ACPI so close I can almost taste it...

Previous message: [thread] [date] [author]
Next message: [thread] [date] [author]
From: STeve Andre'
Date: Wednesday, April 7, 2010 - 6:13 pm

Looking at a recent cvs commit I saw a comment about acpi changes
for an mp kernel, and it dawned on me that my attempts to play with
suspend/resume were never on an sp kernel.  So I updated and built
an sp kernel to test.

   This is a W500 Thinkpad.  Upon hitting Fn-F4 or doing a zzz the
suspended!  First time I've ever seen the moon on this laptop.  I
can't wake up however--Fn-F4's, the power button and everything
else is ignored.  I ran apmd first, thought that didn't seem to make
a difference.

   I figure that a huge amount of acpi is working and some aml 
table isn't correct, etc.  If I'm missing something obvious feel free
to use the clue stick.

Following is the output of apcidump and /var/run/dmesg.boot.
Upon reading aml docs, I can only appreciate the work thats gone
into this project...

--STeve Andre'

------- apcidump
/*
RSD PTR: Checksum=162, OEMID=LENOVO, RsdtAddress=0x7ed6a472
 */
/*
RSDT: Length=88, Revision=1, Checksum=226,
	OEMID=LENOVO, OEM Table ID=TP-6F, OEM Revision=0x1160,
	Creator ID= LTP, Creator Revision=0x0
 */
/*
	Entries={ 0x7ed6a700, 0x7ed6a781, 0x7ed79b6b, 0x7ed79bbd, 0x7ed79c35, 
0x7ed79c71, 0x7ed79dc2, 0x7ed79f38, 0x7ed79f60, 0x7ed8d213, 0x7ead4000, 
0x7ead3000, 0x7ead2000 }
 */
/*
	DSDT=0x7ed6a9db
	INT_MODEL=PIC
	SCI_INT=9
	SMI_CMD=0xb2, ACPI_ENABLE=0xf0, ACPI_DISABLE=0xf1, S4BIOS_REQ=0x0
	PM1a_EVT_BLK=0x1000-0x1003
	PM1a_CNT_BLK=0x1004-0x1005
	PM2_CNT_BLK=0x1050-0x1050
	PM2_TMR_BLK=0x1008-0x100b
	PM2_GPE0_BLK=0x1020-0x102f
	P_LVL2_LAT=1ms, P_LVL3_LAT=85ms
	FLUSH_SIZE=0, FLUSH_STRIDE=0
	DUTY_OFFSET=1, DUTY_WIDTH=3
	DAY_ALRM=13, MON_ALRM=0, CENTURY=50
	Flags={WBINVD,PROC_C1,P_LVL2_UP,SLP_BUTTON,RTC_S4,DCK_CAP}
 */
/*
DSDT: Length=61840, Revision=1, Checksum=109,
	OEMID=LENOVO, OEM Table ID=TP-6F, OEM Revision=0x1160,
	Creator ID=MSFT, Creator Revision=0x3000000
 */
DefinitionBlock (
"acpi_dsdt.aml",	//Output filename
"DSDT",			//Signature
0x1,			//DSDT Revision
"LENOVO",			//OEMID
"TP-6F",		//TABLE ID
0x1160			//OEM Revision
)

{
Scope(\_PR_) {
    Processor(CPU0, 0, 0x1010, 0x6) {
    }
    Processor(CPU1, 1, 0x1010, 0x6) {
    }
    Processor(CPU2, 2, 0x1010, 0x6) {
    }
    Processor(CPU3, 3, 0x1010, 0x6) {
    }
}
OperationRegion(MNVS, SystemMemory, 0x7ed8e000, 0x1000)
Field(MNVS, DWordAcc, NoLock, Preserve) {
    Offset(0xe00),
    GAPA,	32,
    GAPL,	32,
    DCKI,	32,
    DCKS,	32,
    VCDL,	1,
    VCDC,	1,
    VCDT,	1,
    VCDD,	1,
    VIGD,	1,
    VCSS,	1,
    VCDB,	1,
    VCIN,	1,
    VPDF,	1,
    Offset(0xe12),
    VLID,	4,
    VVPO,	4,
    BRLV,	4,
    BRFQ,	2,
    BRHB,	1,
    BREV,	1,
    CDFL,	8,
    CDAH,	8,
    PMOD,	2,
    PDIR,	1,
    PDMA,	1,
    Offset(0xe17),
    LFDC,	1,
    Offset(0xe18),
    C2NA,	1,
    C3NA,	1,
    C4NA,	1,
    C6NA,	1,
    Offset(0xe19),
    Offset(0xe1a),
    ,	2,
    OSSS,	1,
    NHPS,	1,
    NPME,	1,
    Offset(0xe1b),
    UOPT,	8,
    BTID,	32,
    Offset(0xe21),
    Offset(0xe22),
    TCRT,	16,
    TPSV,	16,
    TTC1,	16,
    TTC2,	16,
    TTSP,	16,
    SRAH,	8,
    SRHE,	8,
    SRE0,	8,
    SRE1,	8,
    SRE2,	8,
    SRE3,	8,
    SRE4,	8,
    SRE5,	8,
    SRU0,	8,
    SRU1,	8,
    SRU2,	8,
    SRU7,	8,
    SRU3,	8,
    SRU4,	8,
    SRU8,	8,
    SRPB,	8,
    SRLP,	8,
    SRSA,	8,
    SRSM,	8,
    CWAC,	1,
    CWAS,	1,
    CWUE,	1,
    CWUS,	1,
    Offset(0xe40),
    CWAP,	16,
    CWAT,	16,
    DBGC,	1,
    Offset(0xe45),
    FS1L,	16,
    FS1M,	16,
    FS1H,	16,
    FS2L,	16,
    FS2M,	16,
    FS2H,	16,
    FS3L,	16,
    FS3M,	16,
    FS3H,	16,
    TATC,	1,
    ,	6,
    TATL,	1,
    TATW,	8,
    TNFT,	4,
    TNTT,	4,
    TDFA,	4,
    TDTA,	4,
    TDFD,	4,
    TDTD,	4,
    TCFA,	4,
    TCTA,	4,
    TCFD,	4,
    TCTD,	4,
    TSFT,	4,
    TSTT,	4,
    TIT0,	8,
    TCR0,	16,
    TPS0,	16,
    TIT1,	8,
    TCR1,	16,
    TPS1,	16,
    TIT2,	8,
    TCR2,	16,
    TPS2,	16,
    TIF0,	8,
    TIF1,	8,
    TIF2,	8,
    Offset(0xe75),
    TCZ1,	8,
    TCZ2,	8,
    TCZ3,	8,
    BTHI,	1,
    Offset(0xe79),
    HDIR,	1,
    HDEH,	1,
    HDSP,	1,
    HDPP,	1,
    HDUB,	1,
    Offset(0xe7a),
    TPMP,	1,
    TPMS,	1,
    Offset(0xe7b),
    BIDE,	4,
    IDET,	4,
    ,	1,
    DTSE,	1,
    Offset(0xe7d),
    DTS0,	8,
    DTS1,	8,
    DT00,	1,
    DT01,	1,
    DT02,	1,
    DT03,	1,
    Offset(0xe80),
    LIDB,	1,
    C4WR,	1,
    C4AC,	1,
    ODDX,	1,
    Offset(0xe81),
    PH01,	8,
    PH02,	8,
    PH03,	8,
    PPRQ,	8,
    PPLO,	8,
    PPRP,	8,
    PPOR,	8,
    TPRS,	8,
    TPMV,	8,
    MOR_,	8,
    RSV0,	8,
    IPAT,	4,
    IPSC,	1,
    IDMM,	1,
    IDMS,	2,
    HVCO,	3,
    IF1E,	1,
    ISSC,	1,
    LIDS,	1,
    IBIA,	2,
    IBTT,	8,
    ITVF,	4,
    ITVM,	4,
    TCG0,	1,
    TCG1,	1,
    Offset(0xe91),
    SWGP,	8,
    IPMS,	8,
    IPMB,	120,
    IPMR,	24,
    IPMO,	24,
    IPMA,	8,
    ASLB,	32,
    ASFT,	8,
    Offset(0xeb0),
    CHKC,	32,
    CHKE,	32,
    ATRB,	32,
    DKLG,	1,
    Offset(0xebd),
    PPCR,	8,
    TPCR,	5,
    Offset(0xebf),
    ATMB,	128,
    PPCA,	8,
    TPCA,	5,
    Offset(0xed1)
}
Field(MNVS, ByteAcc, NoLock, Preserve) {
    Offset(0xc00),
    WITM,	8,
    WSEL,	8,
    WLS0,	8,
    WLS1,	8,
    WLS2,	8,
    WLS3,	8,
    WLS4,	8,
    WLS5,	8,
    WLS6,	8,
    WLS7,	8,
    WENC,	8,
    WKBD,	8,
    WPTY,	8,
    WPAS,	1032,
    WPNW,	1032,
    WSPM,	8,
    WSPS,	8,
    WSMN,	8,
    WSMX,	8,
    WSEN,	8,
    WSKB,	8
}
Field(MNVS, ByteAcc, NoLock, Preserve) {
    Offset(0xb00),
    DBGS,	1024
}
OperationRegion(GNVS, SystemMemory, 0x7ed7b013, 0x0200)
Field(GNVS, AnyAcc, Lock, Preserve) {
    OSYS,	16,
    SMIF,	8,
    PRM0,	8,
    PRM1,	8,
    Offset(0x10),
    PWRS,	8,
    Offset(0x1e),
    Offset(0x28),
    APIC,	8,
    MPEN,	8,
    PCP0,	8,
    PCP1,	8,
    PPCM,	8,
    PPMF,	32,
    Offset(0x32),
    Offset(0x3c),
    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,
    BDSP,	8,
    PTY1,	8,
    PTY2,	8,
    PSCL,	8,
    TVF1,	8,
    TVF2,	8,
    GETM,	8,
    BLCS,	8,
    BRTL,	8,
    ALSE,	8,
    ALAF,	8,
    LLOW,	8,
    LHIH,	8,
    Offset(0xdf),
    PAVP,	8,
    Offset(0x100),
    VIDH,	16,
    VIDM,	16,
    VIDL,	16,
    BUSH,	16,
    BUSM,	16,
    BUSL,	16,
    HIST,	8,
    LPST,	8,
    LWST,	8,
    FREH,	16,
    FREL,	16,
    SVST,	8,
    GVEN,	8,
    GVAC,	8,
    GVDC,	8,
    STCL,	8,
    APCL,	8,
    OSPX,	1,
    OSC4,	1,
    Offset(0x11a),
    SPEN,	1,
    ,	1,
    ,	1,
    ,	1,
    Offset(0x11b)
}
Scope(\_SB_) {
    Method(_INI) {
        If(LEqual(\SCMP(\_OS_, "Microsoft Windows"), Zero)) {
            Store(0x1, \W98F)
        }
        Else {
            If(CondRefOf(\_OSI, Local0)) {
                If(\_OSI) {
                    "Windows 2001"
                    Store(0x1, \WNTF)
                    Store(0x1, \WXPF)
                    Store(0x0, \WSPV)
                }
                If(\_OSI) {
                    "Windows 2001 SP1"
                    Store(0x1, \WSPV)
                }
                If(\_OSI) {
                    "Windows 2001 SP2"
                    Store(0x2, \WSPV)
                }
                If(\_OSI) {
                    "Windows 2006"
                    Store(0x1, \WVIS)
                }
                If(\_OSI) {
                    "Linux"
                    Store(0x1, \LNUX)
                }
                If(\_OSI) {
                    "FreeBSD"
                    Store(0x1, \LNUX)
                }
            }
            Else {
                If(LEqual(\SCMP(\_OS_, "Microsoft Windows NT"), Zero)) {
                    Store(0x1, \WNTF)
                }
                Else {
                    If(LEqual(\SCMP(\_OS_, "Microsoft WindowsME: Millennium 
Edition"), Zero)) {
                        Store(0x1, \WMEF)
                        Store(0x1, \W98F)
                    }
                }
            }
        }
        If(LNot(LLess(\_REV, 0x2))) {
            Store(0x1, \H8DR)
        }
        Store(0x1, \OSIF)
        Store(\_SB_.PCI0.LPC_.EC__.AC__._PSR(), \PWRS)
        If(And(\PPMF, 0x0100)) {
            TRAZ(0x1, 0x2b)
        }
        If(LAnd(\WXPF, LNot(LLess(\WSPV, 0x1)))) {
            TRAZ(0x1, 0x50)
        }
        \_SB_.PCI0.LPC_.MOU_.MHID()
        If(\LNUX) {
            \_SB_.PCI0.LPC_.EC__.SAUM(0x2)
            \UCMS(0x1c)
        }
        Store(\SRAH, \_SB_.PCI0.RID_)
        If(VIGD) {
            Store(\SRHE, \_SB_.PCI0.VID_.RID_)
        }
        Else {
            Store(\SRHE, \_SB_.PCI0.AGP_.RID_)
        }
        Store(\SRE0, \_SB_.PCI0.EXP0.RID_)
        Store(\SRE1, \_SB_.PCI0.EXP1.RID_)
        Store(\SRE2, \_SB_.PCI0.EXP2.RID_)
        Store(\SRE3, \_SB_.PCI0.EXP3.RID_)
        Store(\SRU0, \_SB_.PCI0.USB0.RID_)
        Store(\SRU1, \_SB_.PCI0.USB1.RID_)
        Store(\SRU3, \_SB_.PCI0.USB3.RID_)
        Store(\SRU7, \_SB_.PCI0.EHC0.RID_)
        Store(\SRU3, \_SB_.PCI0.USB3.RID_)
        Store(\SRU4, \_SB_.PCI0.USB4.RID_)
        Store(\SRU8, \_SB_.PCI0.EHC1.RID_)
        Store(\SRPB, \_SB_.PCI0.PCI1.RID_)
        Store(\SRLP, \_SB_.PCI0.LPC_.RID_)
        Store(\SRSA, \_SB_.PCI0.SATA.RID_)
        Store(\SRSM, \_SB_.PCI0.SMBU.RID_)
        Store(\VHYB(0x5, 0x0), Local1)
        If(And(Local1, 0x80)) {
            If(\WVIS) {
                If(LNot(LEqual(And(Local1, 0x3), 0x3))) {
                    \VHYB(0x6, 0x3)
                }
            }
            Else {
                If(LEqual(And(Local1, 0x3), 0x3)) {
                    \VHYB(0x6, 0x2)
                }
            }
        }
    }
    Device(LNKA) {
        Name(_HID, 0x0f0cd041)
        Name(_UID, 0x1)
        Method(_STA) {
            If(LNot(VPIR(\_SB_.PCI0.LPC_.PIRA))) {
                Return(0x9)
            }
            Else {
                Return(0xb)
            }
        }
        Name(_PRS, Buffer(0x6) {0x23, 0xf8, 0xe, 0x18, 0x79, 0x0 })
        Method(_DIS) {
            Or(\_SB_.PCI0.LPC_.PIRA, 0x80, \_SB_.PCI0.LPC_.PIRA)
        }
        Name(BUFA, Buffer(0x6) {0x23, 0x0, 0x0, 0x18, 0x79, 0x0 })
        CreateWordField(BUFA, 0x1, IRA1)
        Method(_CRS) {
            And(\_SB_.PCI0.LPC_.PIRA, 0x8f, Local0)
            If(VPIR(Local0)) {
                ShiftLeft(0x1, Local0, IRA1)
            }
            Else {
                Store(0x0, IRA1)
            }
            Return(BUFA)
        }
        Method(_SRS, 1) {
            CreateWordField(Arg0, 0x1, IRA2)
            FindSetRightBit(IRA2, Local0)
            And(\_SB_.PCI0.LPC_.PIRA, 0x70, Local1)
            Or(Local1, Decrement(Local0), Local1)
            Store(Local1, \_SB_.PCI0.LPC_.PIRA)
        }
    }
    Device(LNKB) {
        Name(_HID, 0x0f0cd041)
        Name(_UID, 0x2)
        Method(_STA) {
            If(LNot(VPIR(\_SB_.PCI0.LPC_.PIRB))) {
                Return(0x9)
            }
            Else {
                Return(0xb)
            }
        }
        Name(_PRS, Buffer(0x6) {0x23, 0xf8, 0xe, 0x18, 0x79, 0x0 })
        Method(_DIS) {
            Or(\_SB_.PCI0.LPC_.PIRB, 0x80, \_SB_.PCI0.LPC_.PIRB)
        }
        Name(BUFB, Buffer(0x6) {0x23, 0x0, 0x0, 0x18, 0x79, 0x0 })
        CreateWordField(BUFB, 0x1, IRB1)
        Method(_CRS) {
            And(\_SB_.PCI0.LPC_.PIRB, 0x8f, Local0)
            If(VPIR(Local0)) {
                ShiftLeft(0x1, Local0, IRB1)
            }
            Else {
                Store(0x0, IRB1)
            }
            Return(BUFB)
        }
        Method(_SRS, 1) {
            CreateWordField(Arg0, 0x1, IRB2)
            FindSetRightBit(IRB2, Local0)
            And(\_SB_.PCI0.LPC_.PIRB, 0x70, Local1)
            Or(Local1, Decrement(Local0), Local1)
            Store(Local1, \_SB_.PCI0.LPC_.PIRB)
        }
    }
    Device(LNKC) {
        Name(_HID, 0x0f0cd041)
        Name(_UID, 0x3)
        Method(_STA) {
            If(LNot(VPIR(\_SB_.PCI0.LPC_.PIRC))) {
                Return(0x9)
            }
            Else {
                Return(0xb)
            }
        }
        Name(_PRS, Buffer(0x6) {0x23, 0xf8, 0xe, 0x18, 0x79, 0x0 })
        Method(_DIS) {
            Or(\_SB_.PCI0.LPC_.PIRC, 0x80, \_SB_.PCI0.LPC_.PIRC)
        }
        Name(BUFC, Buffer(0x6) {0x23, 0x0, 0x0, 0x18, 0x79, 0x0 })
        CreateWordField(BUFC, 0x1, IRC1)
        Method(_CRS) {
            And(\_SB_.PCI0.LPC_.PIRC, 0x8f, Local0)
            If(VPIR(Local0)) {
                ShiftLeft(0x1, Local0, IRC1)
            }
            Else {
                Store(0x0, IRC1)
            }
            Return(BUFC)
        }
        Method(_SRS, 1) {
            CreateWordField(Arg0, 0x1, IRC2)
            FindSetRightBit(IRC2, Local0)
            And(\_SB_.PCI0.LPC_.PIRC, 0x70, Local1)
            Or(Local1, Decrement(Local0), Local1)
            Store(Local1, \_SB_.PCI0.LPC_.PIRC)
        }
    }
    Device(LNKD) {
        Name(_HID, 0x0f0cd041)
        Name(_UID, 0x4)
        Method(_STA) {
            If(LNot(VPIR(\_SB_.PCI0.LPC_.PIRD))) {
                Return(0x9)
            }
            Else {
                Return(0xb)
            }
        }
        Name(_PRS, Buffer(0x6) {0x23, 0xf8, 0xe, 0x18, 0x79, 0x0 })
        Method(_DIS) {
            Or(\_SB_.PCI0.LPC_.PIRD, 0x80, \_SB_.PCI0.LPC_.PIRD)
        }
        Name(BUFD, Buffer(0x6) {0x23, 0x0, 0x0, 0x18, 0x79, 0x0 })
        CreateWordField(BUFD, 0x1, IRD1)
        Method(_CRS) {
            And(\_SB_.PCI0.LPC_.PIRD, 0x8f, Local0)
            If(VPIR(Local0)) {
                ShiftLeft(0x1, Local0, IRD1)
            }
            Else {
                Store(0x0, IRD1)
            }
            Return(BUFD)
        }
        Method(_SRS, 1) {
            CreateWordField(Arg0, 0x1, IRD2)
            FindSetRightBit(IRD2, Local0)
            And(\_SB_.PCI0.LPC_.PIRD, 0x70, Local1)
            Or(Local1, Decrement(Local0), Local1)
            Store(Local1, \_SB_.PCI0.LPC_.PIRD)
        }
    }
    Device(LNKE) {
        Name(_HID, 0x0f0cd041)
        Name(_UID, 0x5)
        Method(_STA) {
            If(LNot(VPIR(\_SB_.PCI0.LPC_.PIRE))) {
                Return(0x9)
            }
            Else {
                Return(0xb)
            }
        }
        Name(_PRS, Buffer(0x6) {0x23, 0xf8, 0xe, 0x18, 0x79, 0x0 })
        Method(_DIS) {
            Or(\_SB_.PCI0.LPC_.PIRE, 0x80, \_SB_.PCI0.LPC_.PIRE)
        }
        Name(BUFE, Buffer(0x6) {0x23, 0x0, 0x0, 0x18, 0x79, 0x0 })
        CreateWordField(BUFE, 0x1, IRE1)
        Method(_CRS) {
            And(\_SB_.PCI0.LPC_.PIRE, 0x8f, Local0)
            If(VPIR(Local0)) {
                ShiftLeft(0x1, Local0, IRE1)
            }
            Else {
                Store(0x0, IRE1)
            }
            Return(BUFE)
        }
        Method(_SRS, 1) {
            CreateWordField(Arg0, 0x1, IRE2)
            FindSetRightBit(IRE2, Local0)
            And(\_SB_.PCI0.LPC_.PIRE, 0x70, Local1)
            Or(Local1, Decrement(Local0), Local1)
            Store(Local1, \_SB_.PCI0.LPC_.PIRE)
        }
    }
    Device(LNKF) {
        Name(_HID, 0x0f0cd041)
        Name(_UID, 0x6)
        Method(_STA) {
            If(LNot(VPIR(\_SB_.PCI0.LPC_.PIRF))) {
                Return(0x9)
            }
            Else {
                Return(0xb)
            }
        }
        Name(_PRS, Buffer(0x6) {0x23, 0xf8, 0xe, 0x18, 0x79, 0x0 })
        Method(_DIS) {
            Or(\_SB_.PCI0.LPC_.PIRF, 0x80, \_SB_.PCI0.LPC_.PIRF)
        }
        Name(BUFF, Buffer(0x6) {0x23, 0x0, 0x0, 0x18, 0x79, 0x0 })
        CreateWordField(BUFF, 0x1, IRF1)
        Method(_CRS) {
            And(\_SB_.PCI0.LPC_.PIRF, 0x8f, Local0)
            If(VPIR(Local0)) {
                ShiftLeft(0x1, Local0, IRF1)
            }
            Else {
                Store(0x0, IRF1)
            }
            Return(BUFF)
        }
        Method(_SRS, 1) {
            CreateWordField(Arg0, 0x1, IRF2)
            FindSetRightBit(IRF2, Local0)
            And(\_SB_.PCI0.LPC_.PIRF, 0x70, Local1)
            Or(Local1, Decrement(Local0), Local1)
            Store(Local1, \_SB_.PCI0.LPC_.PIRF)
        }
    }
    Device(LNKG) {
        Name(_HID, 0x0f0cd041)
        Name(_UID, 0x7)
        Method(_STA) {
            If(LNot(VPIR(\_SB_.PCI0.LPC_.PIRG))) {
                Return(0x9)
            }
            Else {
                Return(0xb)
            }
        }
        Name(_PRS, Buffer(0x6) {0x23, 0xf8, 0xe, 0x18, 0x79, 0x0 })
        Method(_DIS) {
            Or(\_SB_.PCI0.LPC_.PIRG, 0x80, \_SB_.PCI0.LPC_.PIRG)
        }
        Name(BUFG, Buffer(0x6) {0x23, 0x0, 0x0, 0x18, 0x79, 0x0 })
        CreateWordField(BUFG, 0x1, IRG1)
        Method(_CRS) {
            And(\_SB_.PCI0.LPC_.PIRG, 0x8f, Local0)
            If(VPIR(Local0)) {
                ShiftLeft(0x1, Local0, IRG1)
            }
            Else {
                Store(0x0, IRG1)
            }
            Return(BUFG)
        }
        Method(_SRS, 1) {
            CreateWordField(Arg0, 0x1, IRG2)
            FindSetRightBit(IRG2, Local0)
            And(\_SB_.PCI0.LPC_.PIRG, 0x70, Local1)
            Or(Local1, Decrement(Local0), Local1)
            Store(Local1, \_SB_.PCI0.LPC_.PIRG)
        }
    }
    Device(LNKH) {
        Name(_HID, 0x0f0cd041)
        Name(_UID, 0x8)
        Method(_STA) {
            If(LNot(VPIR(\_SB_.PCI0.LPC_.PIRH))) {
                Return(0x9)
            }
            Else {
                Return(0xb)
            }
        }
        Name(_PRS, Buffer(0x6) {0x23, 0xf8, 0xe, 0x18, 0x79, 0x0 })
        Method(_DIS) {
            Or(\_SB_.PCI0.LPC_.PIRH, 0x80, \_SB_.PCI0.LPC_.PIRH)
        }
        Name(BUFH, Buffer(0x6) {0x23, 0x0, 0x0, 0x18, 0x79, 0x0 })
        CreateWordField(BUFH, 0x1, IRH1)
        Method(_CRS) {
            And(\_SB_.PCI0.LPC_.PIRH, 0x8f, Local0)
            If(VPIR(Local0)) {
                ShiftLeft(0x1, Local0, IRH1)
            }
            Else {
                Store(0x0, IRH1)
            }
            Return(BUFH)
        }
        Method(_SRS, 1) {
            CreateWordField(Arg0, 0x1, IRH2)
            FindSetRightBit(IRH2, Local0)
            And(\_SB_.PCI0.LPC_.PIRH, 0x70, Local1)
            Or(Local1, Decrement(Local0), Local1)
            Store(Local1, \_SB_.PCI0.LPC_.PIRH)
        }
    }
    Method(VPIR, 1) {
        Store(0x1, Local0)
        If(And(Arg0, 0x80)) {
            Store(0x0, Local0)
        }
        Else {
            And(Arg0, 0xf, Local1)
            If(LLess(Local1, 0x3)) {
                Store(0x0, Local0)
            }
            Else {
                If(LOr(LEqual(Local1, 0x8), LEqual(Local1, 0xd))) {
                    Store(0x0, Local0)
                }
            }
        }
        Return(Local0)
    }
    Device(MEM_) {
        Name(_HID, 0x010cd041)
        Name(ME98, Buffer(0x3e) {0x86, 0x9, 0x0, 0x1, 0x0, 0x0, 0x0, 0x0, 0x0, 
0x0, 0xa, 0x0, 0x86, 0x9, 0x0, 0x0, 0x0, 0x0, 0xe, 0x0, 0x0, 0x0, 0x2, 0x0, 
0x86, 0x9, 0x0, 0x1, 0x0, 0x0, 0x10, 0x0, 0x0, 0x0, 0xee, 0x1, 0x86, 0x9, 
0x0, 0x0, 0x0, 0x0, 0xc0, 0xfe, 0x0, 0x0, 0x14, 0x0, 0x86, 0x9, 0x0, 0x0, 
0x0, 0xc0, 0xd4, 0xfe, 0x0, 0x40, 0x2b, 0x1, 0x79, 0x0 })
        CreateDWordField(ME98, 0x1c, MEB0)
        CreateDWordField(ME98, 0x20, MEL0)
        Name(MGAP, Buffer(0xe) {0x86, 0x9, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 
0x0, 0x0, 0x0, 0x79, 0x0 })
        CreateDWordField(MGAP, 0x4, MGPB)
        CreateDWordField(MGAP, 0x8, MGPL)
        Name(MEMS, Buffer(0xce) {0x86, 0x9, 0x0, 0x1, 0x0, 0x0, 0x0, 0x0, 0x0, 
0x0, 0xa, 0x0, 0x86, 0x9, 0x0, 0x0, 0x0, 0x0, 0xc, 0x0, 0x0, 0x0, 0x0, 0x0, 
0x86, 0x9, 0x0, 0x0, 0x0, 0x40, 0xc, 0x0, 0x0, 0x0, 0x0, 0x0, 0x86, 0x9, 0x0, 
0x0, 0x0, 0x80, 0xc, 0x0, 0x0, 0x0, 0x0, 0x0, 0x86, 0x9, 0x0, 0x0, 0x0, 0xc0, 
0xc, 0x0, 0x0, 0x0, 0x0, 0x0, 0x86, 0x9, 0x0, 0x0, 0x0, 0x0, 0xd, 0x0, 0x0, 
0x0, 0x0, 0x0, 0x86, 0x9, 0x0, 0x0, 0x0, 0x40, 0xd, 0x0, 0x0, 0x0, 0x0, 0x0, 
0x86, 0x9, 0x0, 0x0, 0x0, 0x80, 0xd, 0x0, 0x0, 0x0, 0x0, 0x0, 0x86, 0x9, 0x0, 
0x0, 0x0, 0xc0, 0xd, 0x0, 0x0, 0x0, 0x0, 0x0, 0x86, 0x9, 0x0, 0x0, 0x0, 0x0, 
0xe, 0x0, 0x0, 0x0, 0x0, 0x0, 0x86, 0x9, 0x0, 0x0, 0x0, 0x40, 0xe, 0x0, 0x0, 
0x0, 0x0, 0x0, 0x86, 0x9, 0x0, 0x0, 0x0, 0x80, 0xe, 0x0, 0x0, 0x0, 0x0, 0x0, 
0x86, 0x9, 0x0, 0x0, 0x0, 0xc0, 0xe, 0x0, 0x0, 0x0, 0x0, 0x0, 0x86, 0x9, 0x0, 
0x0, 0x0, 0x0, 0xf, 0x0, 0x0, 0x0, 0x1, 0x0, 0x86, 0x9, 0x0, 0x1, 0x0, 0x0, 
0x10, 0x0, 0x0, 0x0, 0xee, 0x1, 0x86, 0x9, 0x0, 0x0, 0x0, 0x0, 0xc0, 0xfe, 
0x0, 0x0, 0x14, 0x0, 0x86, 0x9, 0x0, 0x0, 0x0, 0xc0, 0xd4, 0xfe, 0x0, 0x40, 
0x2b, 0x1, 0x79, 0x0 })
        CreateDWordField(MEMS, 0x14, MC0L)
        CreateDWordField(MEMS, 0x20, MC4L)
        CreateDWordField(MEMS, 0x2c, MC8L)
        CreateDWordField(MEMS, 0x38, MCCL)
        CreateDWordField(MEMS, 0x44, MD0L)
        CreateDWordField(MEMS, 0x50, MD4L)
        CreateDWordField(MEMS, 0x5c, MD8L)
        CreateDWordField(MEMS, 0x68, MDCL)
        CreateDWordField(MEMS, 0x74, ME0L)
        CreateDWordField(MEMS, 0x80, ME4L)
        CreateDWordField(MEMS, 0x8c, ME8L)
        CreateDWordField(MEMS, 0x98, MECL)
        CreateBitField(MEMS, 0x78, MC0W)
        CreateBitField(MEMS, 0xd8, MC4W)
        CreateBitField(MEMS, 0x0138, MC8W)
        CreateBitField(MEMS, 0x0198, MCCW)
        CreateBitField(MEMS, 0x01f8, MD0W)
        CreateBitField(MEMS, 0x0258, MD4W)
        CreateBitField(MEMS, 0x02b8, MD8W)
        CreateBitField(MEMS, 0x0318, MDCW)
        CreateBitField(MEMS, 0x0378, ME0W)
        CreateBitField(MEMS, 0x03d8, ME4W)
        CreateBitField(MEMS, 0x0438, ME8W)
        CreateBitField(MEMS, 0x0498, MECW)
        CreateDWordField(MEMS, 0xac, MEB1)
        CreateDWordField(MEMS, 0xb0, MEL1)
        CreateDWordField(MEMS, 0xbc, MEL2)
        CreateDWordField(MEMS, 0xc8, MEL3)
        Method(_CRS) {
            If(\W98F) {
                Subtract(\MEMX, MEB0, MEL0)
                Store(\GAPA, MGPB)
                Store(\GAPL, MGPL)
                If(LAnd(MGPB, MGPL)) {
                    Subtract(SizeOf(ME98), 0x2, Local0)
                    Name(MBF0, Buffer(Local0) { })
                    Add(Local0, SizeOf(MGAP), Local0)
                    Name(MBF1, Buffer(Local0) { })
                    Store(ME98, MBF0)
                    Concatenate(MBF0, MGAP, MBF1)
                    If(LNot(LEqual(\_SB_.PCI0.LPC_.TPM_._STA(), 0xf))) {
                        Subtract(SizeOf(MBF1), 0x2, Local0)
                        Name(MBF2, Buffer(Local0) { })
                        Add(Local0, SizeOf(\_SB_.PCI0.LPC_.TPM_.BUF1), Local0)
                        Name(MBF3, Buffer(Local0) { })
                        Store(MBF1, MBF2)
                        Concatenate(MBF2, \_SB_.PCI0.LPC_.TPM_.BUF1, MBF3)
                        Return(MBF3)
                    }
                    Else {
                        Return(MBF1)
                    }
                }
                Else {
                    If(LNot(LEqual(\_SB_.PCI0.LPC_.TPM_._STA(), 0xf))) {
                        Subtract(SizeOf(ME98), 0x2, Local0)
                        Name(MBF4, Buffer(Local0) { })
                        Add(Local0, SizeOf(\_SB_.PCI0.LPC_.TPM_.BUF1), Local0)
                        Name(MBF5, Buffer(Local0) { })
                        Store(ME98, MBF4)
                        Concatenate(MBF4, \_SB_.PCI0.LPC_.TPM_.BUF1, MBF5)
                        Return(MBF5)
                    }
                    Else {
                        Return(ME98)
                    }
                }
            }
            And(\_SB_.PCI0.PAM1, 0x3, Local0)
            If(Local0) {
                Store(0x4000, MC0L)
                If(And(Local0, 0x2)) {
                    Store(0x1, MC0W)
                }
            }
            And(\_SB_.PCI0.PAM1, 0x30, Local0)
            If(Local0) {
                Store(0x4000, MC4L)
                If(And(Local0, 0x20)) {
                    Store(0x1, MC4W)
                }
            }
            And(\_SB_.PCI0.PAM2, 0x3, Local0)
            If(Local0) {
                Store(0x4000, MC8L)
                If(And(Local0, 0x2)) {
                    Store(0x1, MC8W)
                }
            }
            And(\_SB_.PCI0.PAM2, 0x30, Local0)
            If(Local0) {
                Store(0x4000, MCCL)
                If(And(Local0, 0x20)) {
                    Store(0x1, MCCW)
                }
            }
            And(\_SB_.PCI0.PAM3, 0x3, Local0)
            If(Local0) {
                Store(0x4000, MD0L)
                If(And(Local0, 0x2)) {
                    Store(0x1, MD0W)
                }
            }
            And(\_SB_.PCI0.PAM3, 0x30, Local0)
            If(Local0) {
                Store(0x4000, MD4L)
                If(And(Local0, 0x20)) {
                    Store(0x1, MD4W)
                }
            }
            And(\_SB_.PCI0.PAM4, 0x3, Local0)
            If(Local0) {
                Store(0x4000, MD8L)
                If(And(Local0, 0x2)) {
                    Store(0x1, MD8W)
                }
            }
            And(\_SB_.PCI0.PAM4, 0x30, Local0)
            If(Local0) {
                Store(0x4000, MDCL)
                If(And(Local0, 0x20)) {
                    Store(0x1, MDCW)
                }
            }
            And(\_SB_.PCI0.PAM5, 0x3, Local0)
            If(Local0) {
                Store(0x4000, ME0L)
                If(And(Local0, 0x2)) {
                    Store(0x1, ME0W)
                }
            }
            And(\_SB_.PCI0.PAM5, 0x30, Local0)
            If(Local0) {
                Store(0x4000, ME4L)
                If(And(Local0, 0x20)) {
                    Store(0x1, ME4W)
                }
            }
            And(\_SB_.PCI0.PAM6, 0x3, Local0)
            If(Local0) {
                Store(0x4000, ME8L)
                If(And(Local0, 0x2)) {
                    Store(0x1, ME8W)
                }
            }
            And(\_SB_.PCI0.PAM6, 0x30, Local0)
            If(Local0) {
                Store(0x4000, MECL)
                If(And(Local0, 0x20)) {
                    Store(0x1, MECW)
                }
            }
            Subtract(\MEMX, MEB1, MEL1)
            If(LNot(LEqual(\_SB_.PCI0.LPC_.TPM_._STA(), 0xf))) {
                Store(0x01400000, MEL2)
                Store(0x0, MEL3)
            }
            Return(MEMS)
        }
    }
    Device(LID_) {
        Name(_HID, 0x0d0cd041)
        Method(_LID) {
            If(\H8DR) {
                Return(\_SB_.PCI0.LPC_.EC__.HPLD)
            }
            Else {
                If(And(\RBEC(0x46), 0x4)) {
                    Return(0x1)
                }
                Else {
                    Return(0x0)
                }
            }
        }
        Method(_PRW) {
            If(LAnd(\W98F, LNot(\WMEF))) {
                Return(Package(0x2) {
                    0x18,
                    0x4,
                })
            }
            Else {
                Return(Package(0x2) {
                    0x18,
                    0x3,
                })
            }
        }
        Method(_PSW, 1) {
            If(\H8DR) {
                If(Arg0) {
                    Store(0x1, \_SB_.PCI0.LPC_.EC__.HWLO)
                }
                Else {
                    Store(0x0, \_SB_.PCI0.LPC_.EC__.HWLO)
                }
            }
            Else {
                If(Arg0) {
                    \MBEC(0x32, 0xff, 0x4)
                }
                Else {
                    \MBEC(0x32, 0xfb, 0x0)
                }
            }
        }
    }
    Device(SLPB) {
        Name(_HID, 0x0e0cd041)
        Method(_PRW) {
            If(LAnd(\W98F, LNot(\WMEF))) {
                Return(Package(0x2) {
                    0x18,
                    0x4,
                })
            }
            Else {
                Return(Package(0x2) {
                    0x18,
                    0x3,
                })
            }
        }
        Method(_PSW, 1) {
            If(\H8DR) {
                If(Arg0) {
                    Store(0x1, \_SB_.PCI0.LPC_.EC__.HWFN)
                }
                Else {
                    Store(0x0, \_SB_.PCI0.LPC_.EC__.HWFN)
                }
            }
            Else {
                If(Arg0) {
                    \MBEC(0x32, 0xff, 0x10)
                }
                Else {
                    \MBEC(0x32, 0xef, 0x0)
                }
            }
        }
    }
    Device(PCI0) {
        Device(LPC_) {
            Name(_ADR, 0x001f0000)
            Name(_S3D, 0x3)
            Name(RID_, 0x0)
            Device(SIO_) {
                Name(_HID, 0x020cd041)
                Name(_UID, 0x0)
                Name(SCRS, Buffer(0x0112) {0x47, 0x1, 0x10, 0x0, 0x10, 0x0, 
0x1, 0x10, 0x47, 0x1, 0x90, 0x0, 0x90, 0x0, 0x1, 0x10, 0x47, 0x1, 0x24, 0x0, 
0x24, 0x0, 0x1, 0x2, 0x47, 0x1, 0x28, 0x0, 0x28, 0x0, 0x1, 0x2, 0x47, 0x1, 
0x2c, 0x0, 0x2c, 0x0, 0x1, 0x2, 0x47, 0x1, 0x30, 0x0, 0x30, 0x0, 0x1, 0x2, 
0x47, 0x1, 0x34, 0x0, 0x34, 0x0, 0x1, 0x2, 0x47, 0x1, 0x38, 0x0, 0x38, 0x0, 
0x1, 0x2, 0x47, 0x1, 0x3c, 0x0, 0x3c, 0x0, 0x1, 0x2, 0x47, 0x1, 0xa4, 0x0, 
0xa4, 0x0, 0x1, 0x2, 0x47, 0x1, 0xa8, 0x0, 0xa8, 0x0, 0x1, 0x2, 0x47, 0x1, 
0xac, 0x0, 0xac, 0x0, 0x1, 0x2, 0x47, 0x1, 0xb0, 0x0, 0xb0, 0x0, 0x1, 0x6, 
0x47, 0x1, 0xb8, 0x0, 0xb8, 0x0, 0x1, 0x2, 0x47, 0x1, 0xbc, 0x0, 0xbc, 0x0, 
0x1, 0x2, 0x47, 0x1, 0x50, 0x0, 0x50, 0x0, 0x1, 0x4, 0x47, 0x1, 0x72, 0x0, 
0x72, 0x0, 0x1, 0x6, 0x47, 0x1, 0x4e, 0x16, 0x4e, 0x16, 0x1, 0x2, 0x47, 0x1, 
0x2e, 0x0, 0x2e, 0x0, 0x1, 0x2, 0x47, 0x1, 0x0, 0x10, 0x0, 0x10, 0x1, 0x80, 
0x47, 0x1, 0x80, 0x11, 0x80, 0x11, 0x1, 0x80, 0x47, 0x1, 0x0, 0x8, 0x0, 0x8, 
0x1, 0x10, 0x47, 0x1, 0xe0, 0x15, 0xe0, 0x15, 0x1, 0x10, 0x47, 0x1, 0x0, 
0x16, 0x0, 0x16, 0x1, 0x42, 0x47, 0x1, 0x0, 0x16, 0x0, 0x16, 0x1, 0x1c, 0x86, 
0x9, 0x0, 0x1, 0x0, 0x0, 0x0, 0xe0, 0x0, 0x0, 0x0, 0x10, 0x86, 0x9, 0x0, 0x1, 
0x0, 0xc0, 0xd1, 0xfe, 0x0, 0x40, 0x0, 0x0, 0x86, 0x9, 0x0, 0x1, 0x0, 0x0, 
0xd1, 0xfe, 0x0, 0x40, 0x0, 0x0, 0x86, 0x9, 0x0, 0x1, 0x0, 0x80, 0xd1, 0xfe, 
0x0, 0x10, 0x0, 0x0, 0x86, 0x9, 0x0, 0x1, 0x0, 0x90, 0xd1, 0xfe, 0x0, 0x10, 
0x0, 0x0, 0x86, 0x9, 0x0, 0x1, 0x0, 0x50, 0xd4, 0xfe, 0x0, 0x70, 0x0, 0x0, 
0x79, 0x0 })
                Method(_CRS) {
                    If(LEqual(\_SB_.PCI0.LPC_.TPM_._STA(), 0xf)) {
                        Return(SCRS)
                    }
                    Else {
                        Subtract(SizeOf(SCRS), 0x2, Local0)
                        Name(BUF0, Buffer(Local0) { })
                        Add(Local0, SizeOf(\_SB_.PCI0.LPC_.TPM_.BUF1), Local0)
                        Name(BUF1, Buffer(Local0) { })
                        Store(SCRS, BUF0)
                        Concatenate(BUF0, \_SB_.PCI0.LPC_.TPM_.BUF1, BUF1)
                        Return(BUF1)
                    }
                }
            }
            OperationRegion(LPCS, PCI_Config, 0x0, 0x0100)
            Field(LPCS, AnyAcc, NoLock, Preserve) {
                Offset(0x60),
                PIRA,	8,
                PIRB,	8,
                PIRC,	8,
                PIRD,	8,
                SERQ,	8,
                Offset(0x68),
                PIRE,	8,
                PIRF,	8,
                PIRG,	8,
                PIRH,	8,
                Offset(0x80),
                XU1A,	3,
                ,	1,
                XU2A,	3,
                Offset(0x81),
                XPA_,	2,
                ,	2,
                XFA_,	1,
                Offset(0x82),
                XU1E,	1,
                XU2E,	1,
                XPE_,	1,
                XFE_,	1,
                Offset(0x84),
                XG1E,	1,
                ,	1,
                XG1A,	14,
                Offset(0x88),
                XG2E,	1,
                ,	1,
                XG2A,	14,
                Offset(0xa0),
                ,	2,
                CLKR,	1,
                GYEN,	1,
                ,	3,
                C4C3,	1,
                ,	2,
                EXPE,	1,
                Offset(0xa2)
            }
            OperationRegion(LPIO, SystemIO, 0x1180, 0x80)
            Field(LPIO, DWordAcc, NoLock, Preserve) {
                GU00,	8,
                GU01,	8,
                GU02,	8,
                GU03,	8,
                GI00,	8,
                GI01,	8,
                GI02,	8,
                GI03,	8,
                Offset(0xc),
                GL00,	8,
                GL01,	8,
                GL02,	8,
                GL03,	8,
                Offset(0x18),
                GB00,	8,
                GB01,	8,
                GB02,	8,
                GB03,	8,
                Offset(0x2c),
                GV00,	8,
                GV01,	8,
                GV02,	8,
                GV03,	8,
                GU04,	8,
                GU05,	8,
                GU06,	8,
                GU07,	8,
                GI04,	8,
                GI05,	8,
                GI06,	8,
                GI07,	8,
                GL04,	8,
                GL05,	8,
                GL06,	8,
                GL07,	8
            }
            Field(LPIO, DWordAcc, NoLock, Preserve) {
                Offset(0xc),
                ,	6,
                LCDP,	1,
                Offset(0xe)
            }
            OperationRegion(PMIO, SystemIO, 0x1000, 0x80)
            Field(PMIO, AnyAcc, NoLock, Preserve) {
                Offset(0x42),
                ,	1,
                SWGE,	1,
                Offset(0x64),
                ,	9,
                SCIS,	1,
                Offset(0x66)
            }
            OperationRegion(IO_T, SystemIO, 0x0800, 0x10)
            Field(IO_T, ByteAcc, NoLock, Preserve) {
                TRPI,	16,
                Offset(0x4),
                Offset(0x6),
                Offset(0x8),
                TRP0,	8,
                Offset(0xa),
                Offset(0xb),
                Offset(0xc),
                Offset(0xd),
                Offset(0xe),
                Offset(0xf),
                Offset(0x10)
            }
            Device(PIC_) {
                Name(_HID, 0xd041)
                Name(_CRS, Buffer(0x1d) {0x47, 0x1, 0x20, 0x0, 0x20, 0x0, 0x1, 
0x2, 0x47, 0x1, 0xa0, 0x0, 0xa0, 0x0, 0x1, 0x2, 0x47, 0x1, 0xd0, 0x4, 0xd0, 
0x4, 0x1, 0x2, 0x22, 0x4, 0x0, 0x79, 0x0 })
            }
            Device(TIMR) {
                Name(_HID, 0x0001d041)
                Name(_CRS, Buffer(0xd) {0x47, 0x1, 0x40, 0x0, 0x40, 0x0, 0x1, 
0x4, 0x22, 0x1, 0x0, 0x79, 0x0 })
            }
            Device(HPET) {
                Name(_HID, 0x0301d041)
                Method(_STA) {
                    If(W98F) {
                        Return(0x0)
                    }
                    Else {
                        If(LAnd(\WNTF, LNot(\WXPF))) {
                            Return(0x0)
                        }
                        Else {
                            Return(0xf)
                        }
                    }
                    Return(0x0)
                }
                Name(_CRS, Buffer(0xe) {0x86, 0x9, 0x0, 0x0, 0x0, 0x0, 0xd0, 
0xfe, 0x0, 0x4, 0x0, 0x0, 0x79, 0x0 })
            }
            Device(DMAC) {
                Name(_HID, 0x0002d041)
                Name(_CRS, Buffer(0x1d) {0x47, 0x1, 0x0, 0x0, 0x0, 0x0, 0x1, 
0x10, 0x47, 0x1, 0x80, 0x0, 0x80, 0x0, 0x1, 0x10, 0x47, 0x1, 0xc0, 0x0, 0xc0, 
0x0, 0x1, 0x20, 0x2a, 0x10, 0x5, 0x79, 0x0 })
            }
            Device(SPKR) {
                Name(_HID, 0x0008d041)
                Name(_CRS, Buffer(0xa) {0x47, 0x1, 0x61, 0x0, 0x61, 0x0, 0x1, 
0x1, 0x79, 0x0 })
            }
            Device(FPU_) {
                Name(_HID, 0x040cd041)
                Name(_CRS, Buffer(0xd) {0x47, 0x1, 0xf0, 0x0, 0xf0, 0x0, 0x1, 
0x1, 0x22, 0x0, 0x20, 0x79, 0x0 })
            }
            Device(RTC_) {
                Name(_HID, 0x000bd041)
                Name(_CRS, Buffer(0xd) {0x47, 0x1, 0x70, 0x0, 0x70, 0x0, 0x1, 
0x2, 0x22, 0x0, 0x1, 0x79, 0x0 })
            }
            Device(KBD_) {
                Name(_HID, 0x0303d041)
                Name(_CRS, Buffer(0x15) {0x47, 0x1, 0x60, 0x0, 0x60, 0x0, 0x1, 
0x1, 0x47, 0x1, 0x64, 0x0, 0x64, 0x0, 0x1, 0x1, 0x22, 0x2, 0x0, 0x79, 0x0 })
            }
            Device(MOU_) {
                Name(_HID, 0x80374d24)
                Name(_CID, 0x130fd041)
                Name(_CRS, Buffer(0x5) {0x22, 0x0, 0x10, 0x79, 0x0 })
                Method(MHID) {
                    If(\_SB_.PCI0.LPC_.PADD) {
                        Store(0x80374d24, _HID)
                    }
                    Else {
                        Store(0x57004d24, _HID)
                    }
                }
            }
            OperationRegion(IMGA, SystemIO, 0x15e0, 0x10)
            Field(IMGA, ByteAcc, NoLock, Preserve) {
                Offset(0x1),
                Offset(0x2),
                Offset(0x3),
                WAKR,	16,
                Offset(0xc),
                GAIX,	8,
                Offset(0xe),
                GADT,	8,
                Offset(0x10)
            }
            IndexField(GAIX, GADT, ByteAcc, NoLock, Preserve) {
                Offset(0x41),
                VAUX,	2,
                ,	1,
                WOLE,	1,
                Offset(0x42),
                Offset(0x50),
                ,	1,
                CBPW,	1,
                CBSL,	1,
                VDPW,	1,
                PDNE,	1,
                BLPL,	1,
                ,	1,
                LEDS,	1,
                TP4R,	1,
                PADR,	1,
                BPAD,	1,
                ,	1,
                ,	1,
                PADD,	1,
                Offset(0x53),
                DLAN,	1,
                Offset(0x60),
                BUSC,	1,
                BUSD,	1,
                ,	1,
                DSCI,	1,
                Offset(0x61),
                EPWG,	1,
                ,	2,
                DSCS,	1,
                Offset(0x62),
                CSON,	1,
                URST,	1,
                Offset(0x70),
                GDR0,	1,
                GDR1,	1,
                GDR2,	1,
                Offset(0x71),
                GDT0,	1,
                GDT1,	1,
                GDT2,	1,
                Offset(0xc2),
                GAID,	8
            }
            OperationRegion(NCFG, SystemIO, 0x2e, 0x2)
            Field(NCFG, ByteAcc, NoLock, Preserve) {
                INDX,	8,
                DATA,	8
            }
            IndexField(INDX, DATA, ByteAcc, NoLock, Preserve) {
                Offset(0x7),
                LDN_,	8,
                Offset(0x20),
                SIOD,	8,
                Offset(0x22),
                SCF2,	8,
                Offset(0x24),
                SCF4,	8,
                ,	2,
                PPSE,	1,
                ,	4,
                PNF_,	1,
                FDCD,	1,
                PPD_,	1,
                SP2D,	1,
                SP1D,	1,
                ,	1,
                GPSR,	2,
                Offset(0x27),
                SRID,	8,
                Offset(0x29),
                SCF9,	8,
                Offset(0x2b),
                Offset(0x30),
                LDA_,	1,
                Offset(0x31),
                Offset(0x60),
                IOHI,	8,
                IOLW,	8,
                Offset(0x70),
                IRQN,	4,
                IRQW,	1,
                Offset(0x71),
                IRQT,	1,
                IRQL,	1,
                Offset(0x72),
                Offset(0x74),
                DMA0,	3,
                Offset(0x75),
                DMA1,	3,
                Offset(0x76)
            }
            IndexField(INDX, DATA, ByteAcc, NoLock, Preserve) {
                Offset(0xf0),
                PTRS,	1,
                PPMC,	1,
                ,	2,
                PERA,	1,
                PMDS,	3
            }
            IndexField(INDX, DATA, ByteAcc, NoLock, Preserve) {
                Offset(0xf0),
                STRS,	1,
                SPMC,	1,
                SBSY,	1,
                ,	4,
                SBSE,	1
            }
            IndexField(INDX, DATA, ByteAcc, NoLock, Preserve) {
                Offset(0xf0),
                GPPS,	8,
                GPPC,	8,
                GPER,	8
            }
            OperationRegion(CFGS, SystemIO, 0x164e, 0x2)
            Field(CFGS, ByteAcc, NoLock, Preserve) {
                NDXS,	8,
                ATAS,	8
            }
            IndexField(NDXS, ATAS, ByteAcc, NoLock, Preserve) {
                Offset(0x7),
                LDNS,	8,
                Offset(0x20),
                Offset(0x21),
                Offset(0x22),
                Offset(0x23),
                Offset(0x24),
                Offset(0x25),
                ,	2,
                PSES,	1,
                ,	4,
                PNFS,	1,
                DCDS,	1,
                PPDS,	1,
                SP2S,	1,
                SP1S,	1,
                ,	1,
                PSRS,	2,
                Offset(0x27),
                RIDS,	8,
                Offset(0x29),
                CCSS,	2,
                CCES,	1,
                MCSS,	1,
                MESS,	1,
                Offset(0x2a),
                Offset(0x2b),
                Offset(0x30),
                LDAS,	1,
                Offset(0x31),
                Offset(0x60),
                OHIS,	8,
                OLWS,	8,
                Offset(0x70),
                RQNS,	4,
                RQWS,	1,
                Offset(0x71),
                RQTS,	1,
                RQLS,	1,
                Offset(0x72),
                Offset(0x74),
                MA0S,	3,
                Offset(0x75),
                MA1S,	3,
                Offset(0x76)
            }
            IndexField(NDXS, ATAS, ByteAcc, NoLock, Preserve) {
                Offset(0xf0),
                TRSS,	1,
                PMCS,	1,
                BSYS,	1,
                ,	4,
                SESS,	1
            }
            OperationRegion(NSDL, SystemIO, 0x164c, 0x1)
            Field(NSDL, ByteAcc, NoLock, Preserve) {
                DLPC,	8
            }
            OperationRegion(NSIO, SystemIO, 0x1680, 0xc)
            Field(NSIO, ByteAcc, NoLock, Preserve) {
                DRST,	1,
                DLPD,	1,
                ULRT,	1,
                ULPD,	1,
                Offset(0x1),
                ,	4,
                DKI0,	1,
                Offset(0x2),
                Offset(0x9),
                DKI1,	1,
                DKI2,	1
            }
            OperationRegion(DSIO, SystemIO, 0x1620, 0xc)
            Field(DSIO, ByteAcc, NoLock, Preserve) {
                ,	1,
                DUSB,	1,
                Offset(0x1)
            }
            Device(UART) {
                Name(_HID, 0x0105d041)
                Name(_PRW, Package(0x2) {
                    0x18,
                    0x3,
                })
                Method(_PSW, 1) {
                    If(\H8DR) {
                        If(Arg0) {
                            Store(0x1, \_SB_.PCI0.LPC_.EC__.HWRI)
                        }
                        Else {
                            Store(0x0, \_SB_.PCI0.LPC_.EC__.HWRI)
                        }
                    }
                    Else {
                        If(Arg0) {
                            \MBEC(0x32, 0xff, 0x40)
                        }
                        Else {
                            \MBEC(0x32, 0xbf, 0x0)
                        }
                    }
                }
                Method(_STA) {
                    If(LEqual(SIOD, 0xff)) {
                        Return(0x0)
                    }
                    Else {
                        If(XU1E) {
                            Return(0xf)
                        }
                        Else {
                            Return(0xd)
                        }
                    }
                }
                Method(_DIS) {
                    Store(0x0, XU1E)
                    Store(0x3, LDN_)
                    Store(0x0, IRQN)
                    Store(0x0, LDA_)
                    Store(0x1, SP1D)
                }
                Name(U1BF, Buffer(0xd) {0x47, 0x1, 0x0, 0x0, 0x0, 0x0, 0x1, 
0x8, 0x22, 0x0, 0x0, 0x79, 0x0 })
                CreateWordField(U1BF, 0x2, U1MN)
                CreateWordField(U1BF, 0x4, U1MX)
                CreateWordField(U1BF, 0x9, U1IQ)
                Method(_CRS) {
                    Store(0x3, LDN_)
                    Or(ShiftLeft(IOHI, 0x8), IOLW, Local0)
                    Store(Local0, U1MN)
                    Store(Local0, U1MX)
                    Store(IRQN, Local0)
                    If(Local0) {
                        ShiftLeft(0x1, IRQN, U1IQ)
                    }
                    Else {
                        Store(0x0, U1IQ)
                    }
                    Return(U1BF)
                }
                Name(_PRS, Buffer(0x6b) {0x31, 0x0, 0x47, 0x1, 0xf8, 0x3, 
0xf8, 0x3, 0x1, 0x8, 0x22, 0x10, 0x0, 0x31, 0x1, 0x47, 0x1, 0xf8, 0x2, 0xf8, 
0x2, 0x1, 0x8, 0x22, 0x8, 0x0, 0x31, 0x1, 0x47, 0x1, 0xe8, 0x3, 0xe8, 0x3, 
0x1, 0x8, 0x22, 0x10, 0x0, 0x31, 0x1, 0x47, 0x1, 0xe8, 0x2, 0xe8, 0x2, 0x1, 
0x8, 0x22, 0x8, 0x0, 0x31, 0x2, 0x47, 0x1, 0xf8, 0x3, 0xf8, 0x3, 0x1, 0x8, 
0x22, 0xa8, 0x0, 0x31, 0x2, 0x47, 0x1, 0xf8, 0x2, 0xf8, 0x2, 0x1, 0x8, 0x22, 
0xb0, 0x0, 0x31, 0x2, 0x47, 0x1, 0xe8, 0x3, 0xe8, 0x3, 0x1, 0x8, 0x22, 0xa8, 
0x0, 0x31, 0x2, 0x47, 0x1, 0xe8, 0x2, 0xe8, 0x2, 0x1, 0x8, 0x22, 0xb0, 0x0, 
0x38, 0x79, 0x0 })
                Method(_SRS, 1) {
                    CreateByteField(Arg0, 0x2, RUIL)
                    CreateByteField(Arg0, 0x3, RUIH)
                    CreateWordField(Arg0, 0x2, RUIO)
                    CreateWordField(Arg0, 0x9, RUIQ)
                    Store(0x3, LDN_)
                    Store(0x0, LDA_)
                    Store(RUIL, IOLW)
                    Store(RUIH, IOHI)
                    If(RUIQ) {
                        FindSetRightBit(RUIQ, Local0)
                        Store(Decrement(Local0), IRQN)
                    }
                    Else {
                        Store(0x0, IRQN)
                    }
                    Store(0x0, SP1D)
                    Store(0x1, LDA_)
                    If(LEqual(RUIO, 0x03f8)) {
                        Store(0x0, XU1A)
                    }
                    Else {
                        If(LEqual(RUIO, 0x02f8)) {
                            Store(0x1, XU1A)
                        }
                        Else {
                            If(LEqual(RUIO, 0x03e8)) {
                                Store(0x7, XU1A)
                            }
                            Else {
                                If(LEqual(RUIO, 0x02e8)) {
                                    Store(0x5, XU1A)
                                }
                                Else {
                                    Fatal(0x2, 0x90020000, 0x01aa)
                                }
                            }
                        }
                    }
                    Store(0x1, XU1E)
                }
                Method(_PSC) {
                    Store(0x3, LDN_)
                    If(LDA_) {
                        Return(0x0)
                    }
                    Else {
                        Return(0x3)
                    }
                }
                Method(_PS0) {
                }
                Method(_PS3) {
                }
            }
            Device(LPT_) {
                Name(_HID, 0x0004d041)
                Method(_STA) {
                    If(LEqual(SIOD, 0xff)) {
                        Return(0x0)
                    }
                    Else {
                        If(LNot(LEqual(\PMOD, 0x3))) {
                            If(XPE_) {
                                Return(0xf)
                            }
                            Else {
                                Return(0xd)
                            }
                        }
                        Else {
                            Return(0x0)
                        }
                    }
                }
                Method(_DIS) {
                    Store(0x0, XPE_)
                    Store(0x1, LDN_)
                    Store(0x0, IRQN)
                    Store(0x0, LDA_)
                    Store(0x1, PPD_)
                }
                Name(PPBF, Buffer(0xd) {0x47, 0x1, 0x0, 0x0, 0x0, 0x0, 0x1, 
0x0, 0x22, 0x0, 0x0, 0x79, 0x0 })
                CreateWordField(PPBF, 0x2, LPN0)
                CreateWordField(PPBF, 0x4, LPX0)
                CreateByteField(PPBF, 0x7, LPL0)
                CreateWordField(PPBF, 0x9, LPIQ)
                Method(_CRS) {
                    If(LEqual(\PMOD, 0x3)) {
                        Return(PPBF)
                    }
                    Store(0x1, LDN_)
                    Or(ShiftLeft(IOHI, 0x8), IOLW, Local0)
                    Store(Local0, LPN0)
                    Store(Local0, LPX0)
                    If(LEqual(Local0, 0x03bc)) {
                        Store(0x3, LPL0)
                    }
                    Else {
                        Store(0x8, LPL0)
                    }
                    Store(IRQN, Local0)
                    If(Local0) {
                        ShiftLeft(0x1, IRQN, LPIQ)
                    }
                    Else {
                        Store(0x0, LPIQ)
                    }
                    Return(PPBF)
                }
                Method(_PRS) {
                    If(\PMOD) {
                        Return(PEPP)
                    }
                    Else {
                        Return(PLPT)
                    }
                }
                Name(PLPT, Buffer(0x4b) {0x30, 0x47, 0x1, 0xbc, 0x3, 0xbc, 
0x3, 0x1, 0x3, 0x22, 0x80, 0x0, 0x30, 0x47, 0x1, 0x78, 0x3, 0x78, 0x3, 0x1, 
0x8, 0x22, 0x80, 0x0, 0x30, 0x47, 0x1, 0x78, 0x2, 0x78, 0x2, 0x1, 0x8, 0x22, 
0x20, 0x0, 0x30, 0x47, 0x1, 0xbc, 0x3, 0xbc, 0x3, 0x1, 0x3, 0x22, 0x20, 0x0, 
0x30, 0x47, 0x1, 0x78, 0x3, 0x78, 0x3, 0x1, 0x8, 0x22, 0x20, 0x0, 0x30, 0x47, 
0x1, 0x78, 0x2, 0x78, 0x2, 0x1, 0x8, 0x22, 0x80, 0x0, 0x38, 0x79, 0x0 })
                Name(PEPP, Buffer(0x33) {0x30, 0x47, 0x1, 0x78, 0x3, 0x78, 
0x3, 0x1, 0x8, 0x22, 0x80, 0x0, 0x30, 0x47, 0x1, 0x78, 0x2, 0x78, 0x2, 0x1, 
0x8, 0x22, 0x20, 0x0, 0x30, 0x47, 0x1, 0x78, 0x3, 0x78, 0x3, 0x1, 0x8, 0x22, 
0x20, 0x0, 0x30, 0x47, 0x1, 0x78, 0x2, 0x78, 0x2, 0x1, 0x8, 0x22, 0x80, 0x0, 
0x38, 0x79, 0x0 })
                Method(_SRS, 1) {
                    CreateByteField(Arg0, 0x2, RLIL)
                    CreateByteField(Arg0, 0x3, RLIH)
                    CreateWordField(Arg0, 0x2, RLIO)
                    CreateWordField(Arg0, 0x9, RLIQ)
                    Store(0x1, LDN_)
                    Store(0x0, LDA_)
                    Store(RLIL, IOLW)
                    Store(RLIH, IOHI)
                    If(RLIQ) {
                        FindSetRightBit(RLIQ, Local0)
                        Store(Decrement(Local0), IRQN)
                    }
                    Else {
                        Store(0x0, IRQN)
                    }
                    If(LEqual(\PMOD, 0x0)) {
                        If(\PDIR) {
                            Store(0x1, PMDS)
                        }
                        Else {
                            Store(0x0, PMDS)
                        }
                    }
                    Else {
                        If(LEqual(\PMOD, 0x1)) {
                            Store(0x2, PMDS)
                        }
                        Else {
                            Store(0x3, PMDS)
                        }
                    }
                    Store(0x0, PPD_)
                    Store(0x1, LDA_)
                    If(LEqual(RLIO, 0x0378)) {
                        Store(0x0, XPA_)
                    }
                    Else {
                        If(LEqual(RLIO, 0x0278)) {
                            Store(0x1, XPA_)
                        }
                        Else {
                            If(LEqual(RLIO, 0x03bc)) {
                                Store(0x2, XPA_)
                            }
                            Else {
                                Fatal(0x2, 0x90020000, 0x01cf)
                            }
                        }
                    }
                    Store(0x1, XPE_)
                }
                Method(_PSC) {
                    Store(0x1, LDN_)
                    If(LDA_) {
                        Return(0x0)
                    }
                    Else {
                        Return(0x3)
                    }
                }
                Method(_PS0) {
                    Store(0x1, LDN_)
                    Store(0x1, LDA_)
                }
                Method(_PS3) {
                    Store(0x1, LDN_)
                    Store(0x0, LDA_)
                }
            }
            Device(ECP_) {
                Name(_HID, 0x0104d041)
                Method(_STA) {
                    If(LEqual(SIOD, 0xff)) {
                        Return(0x0)
                    }
                    Else {
                        If(LEqual(\PMOD, 0x3)) {
                            If(XPE_) {
                                Return(0xf)
                            }
                            Else {
                                Return(0xd)
                            }
                        }
                        Else {
                            Return(0x0)
                        }
                    }
                }
                Method(_DIS) {
                    Store(0x0, XPE_)
                    Store(0x1, LDN_)
                    Store(0x0, IRQN)
                    Store(0x0, LDA_)
                    Store(0x1, PPD_)
                }
                Name(EPBF, Buffer(0x18) {0x47, 0x1, 0x0, 0x0, 0x0, 0x0, 0x1, 
0x0, 0x47, 0x1, 0x0, 0x0, 0x0, 0x0, 0x1, 0x0, 0x22, 0x0, 0x0, 0x2a, 0x0, 0x0, 
0x79, 0x0 })
                CreateWordField(EPBF, 0x2, ECN0)
                CreateWordField(EPBF, 0x4, ECX0)
                CreateByteField(EPBF, 0x7, ECL0)
                CreateWordField(EPBF, 0xa, ECN1)
                CreateWordField(EPBF, 0xc, ECX1)
                CreateByteField(EPBF, 0xf, ECL1)
                CreateWordField(EPBF, 0x11, ECIQ)
                CreateWordField(EPBF, 0x14, ECDQ)
                Method(_CRS) {
                    If(LNot(LEqual(\PMOD, 0x3))) {
                        Return(EPBF)
                    }
                    Store(0x1, LDN_)
                    Or(ShiftLeft(IOHI, 0x8), IOLW, Local0)
                    Store(Local0, ECN0)
                    Store(Local0, ECX0)
                    Add(Local0, 0x0400, ECN1)
                    Add(Local0, 0x0400, ECX1)
                    If(LEqual(Local0, 0x03bc)) {
                        Store(0x3, ECL0)
                        Store(0x3, ECL1)
                    }
                    Else {
                        Store(0x8, ECL0)
                        Store(0x8, ECL1)
                    }
                    Store(IRQN, Local0)
                    If(Local0) {
                        ShiftLeft(0x1, IRQN, ECIQ)
                    }
                    Else {
                        Store(0x0, ECIQ)
                    }
                    Store(DMA0, Local0)
                    If(LLess(Local0, 0x4)) {
                        ShiftLeft(0x1, Local0, ECDQ)
                    }
                    Else {
                        Store(0x0, ECDQ)
                    }
                    Return(EPBF)
                }
                Name(_PRS, Buffer(0x8d) {0x30, 0x47, 0x1, 0x78, 0x3, 0x78, 
0x3, 0x1, 0x8, 0x47, 0x1, 0x78, 0x7, 0x78, 0x7, 0x1, 0x8, 0x22, 0x80, 0x0, 
0x2a, 0xb, 0x0, 0x30, 0x47, 0x1, 0x78, 0x2, 0x78, 0x2, 0x1, 0x8, 0x47, 0x1, 
0x78, 0x6, 0x78, 0x6, 0x1, 0x8, 0x22, 0x20, 0x0, 0x2a, 0xb, 0x0, 0x30, 0x47, 
0x1, 0xbc, 0x3, 0xbc, 0x3, 0x1, 0x3, 0x47, 0x1, 0xbc, 0x7, 0xbc, 0x7, 0x1, 
0x3, 0x22, 0x80, 0x0, 0x2a, 0xb, 0x0, 0x30, 0x47, 0x1, 0x78, 0x3, 0x78, 0x3, 
0x1, 0x8, 0x47, 0x1, 0x78, 0x7, 0x78, 0x7, 0x1, 0x8, 0x22, 0x20, 0x0, 0x2a, 
0xb, 0x0, 0x30, 0x47, 0x1, 0x78, 0x2, 0x78, 0x2, 0x1, 0x8, 0x47, 0x1, 0x78, 
0x6, 0x78, 0x6, 0x1, 0x8, 0x22, 0x80, 0x0, 0x2a, 0xb, 0x0, 0x30, 0x47, 0x1, 
0xbc, 0x3, 0xbc, 0x3, 0x1, 0x3, 0x47, 0x1, 0xbc, 0x7, 0xbc, 0x7, 0x1, 0x3, 
0x22, 0x20, 0x0, 0x2a, 0xb, 0x0, 0x38, 0x79, 0x0 })
                Method(_SRS, 1) {
                    CreateByteField(Arg0, 0x2, RLIL)
                    CreateByteField(Arg0, 0x3, RLIH)
                    CreateWordField(Arg0, 0x2, RLIO)
                    CreateWordField(Arg0, 0x11, RLIQ)
                    CreateByteField(Arg0, 0x14, RLDQ)
                    Store(0x1, LDN_)
                    Store(0x0, LDA_)
                    Store(0x7, PMDS)
                    Store(0x1, PERA)
                    Store(RLIL, IOLW)
                    Store(RLIH, IOHI)
                    If(RLIQ) {
                        FindSetRightBit(RLIQ, Local0)
                        Store(Decrement(Local0), IRQN)
                    }
                    Else {
                        Store(0x0, IRQN)
                    }
                    If(And(RLDQ, 0xf)) {
                        FindSetRightBit(RLDQ, Local0)
                        Store(Decrement(Local0), DMA0)
                    }
                    Else {
                        Store(0x4, DMA0)
                    }
                    Store(0x0, PPD_)
                    Store(0x1, LDA_)
                    If(LEqual(RLIO, 0x0378)) {
                        Store(0x0, XPA_)
                    }
                    Else {
                        If(LEqual(RLIO, 0x0278)) {
                            Store(0x1, XPA_)
                        }
                        Else {
                            If(LEqual(RLIO, 0x03bc)) {
                                Store(0x2, XPA_)
                            }
                            Else {
                                Fatal(0x2, 0x90020000, 0x039f)
                            }
                        }
                    }
                    Store(0x1, XPE_)
                }
                Method(_PSC) {
                    Store(0x1, LDN_)
                    If(LDA_) {
                        Return(0x0)
                    }
                    Else {
                        Return(0x3)
                    }
                }
                Method(_PS0) {
                    Store(0x1, LDN_)
                    Store(0x1, LDA_)
                }
                Method(_PS3) {
                    Store(0x1, LDN_)
                    Store(0x0, LDA_)
                }
            }
            Scope(\_SB_.PCI0.LPC_) {
                Method(LCON, 1) {
                    If(Arg0) {
                        If(EPWG) {
                            Store(0x1, DLPD)
                            Store(0x7, DLPC)
                            While(LNot(And(0x8, DLPC))) {
                                Sleep(0x1)
                            }
                            Store(0x1, DRST)
                            If(LNot(LEqual(SIOD, 0xff))) {
                                Or(SCF9, 0xa0, SCF9)
                                While(LNot(And(0x10, SCF9))) {
                                    Sleep(0x1)
                                }
                                Or(SCF2, 0xeb, SCF2)
                                Store(0x7, LDN_)
                                And(0x1620, 0xff, Local0)
                                Store(Local0, IOLW)
                                ShiftRight(0x1620, 0x8, Local0)
                                And(Local0, 0xff, IOHI)
                                Store(0x1, LDA_)
                                Store(0x1, GPPS)
                                Store(0x3, GPPC)
                                Store(0x2, GPPS)
                                Store(0x3, GPPC)
                                Store(0x0, DUSB)
                                If(And(\DKLG, 0x1)) {
                                    If(LEqual(\_SB_.GDCK.GGID(), 0x1)) {
                                        Store(0x0, DLPD)
                                        Store(0x0, DLPC)
                                    }
                                }
                            }
                        }
                    }
                    Else {
                        Store(0x1, DUSB)
                        Store(0x0, DRST)
                        Store(0x0, DLPD)
                        Store(0x0, DLPC)
                    }
                }
            }
            Device(TPM_) {
                Method(_HID) {
                    TPHY(0x0)
                    If(LEqual(TPMV, 0x1)) {
                        Return(0x0201d824)
                    }
                    If(LEqual(TPMV, 0x2)) {
                        Return(0x0435cf4d)
                    }
                    If(LEqual(TPMV, 0x3)) {
                        Return(0x02016d08)
                    }
                    If(LEqual(TPMV, 0x4)) {
                        Return(0x01016d08)
                    }
                    If(LOr(LEqual(TPMV, 0x5), LEqual(TPMV, 0x6))) {
                        Return(0x0010a35c)
                    }
                    If(LEqual(TPMV, 0x8)) {
                        Return(0x00128d06)
                    }
                    If(LEqual(TPMV, 0x9)) {
                        Return("INTC0102")
                    }
                    Return(0x310cd041)
                }
                Name(_CID, 0x310cd041)
                Name(_UID, 0x1)
                Method(_STA) {
                    TPHY(0x0)
                    If(TPRS) {
                        Return(0xf)
                    }
                    Return(0x0)
                }
                Name(BUF1, Buffer(0xe) {0x86, 0x9, 0x0, 0x0, 0x0, 0x0, 0xd4, 
0xfe, 0x0, 0x50, 0x0, 0x0, 0x79, 0x0 })
                Method(_CRS, 0, Serialized) {
                    Return(BUF1)
                }
                Method(UCMP, 2) {
                    If(LNot(LEqual(0x10, SizeOf(Arg0)))) {
                        Return(0x0)
                    }
                    If(LNot(LEqual(0x10, SizeOf(Arg1)))) {
                        Return(0x0)
                    }
                    Store(0x0, Local0)
                    While(LLess(Local0, 0x10)) {
                        If(LNot(LEqual(DerefOf(Index(Arg0, Local0)), 
DerefOf(Index(Arg1, Local0))))) {
                            Return(0x0)
                        }
                        Increment(Local0)
                    }
                    Return(0x1)
                }
                Method(_DSM, 4, Serialized) {
                    Name(PPRC, 0x0)
                    Name(RQS1, Package(0x2) {
                        0xc,
                        0xd,
                    })
                    Name(TTMP, Buffer(0x1) {0x0 })
                    CreateByteField(TTMP, 0x0, TMPV)
                    If(LEqual(UCMP(Arg0, Buffer(0x10) {0xa6, 0xfa, 0xdd, 0x3d, 
0x1b, 0x36, 0xb4, 0x4e, 0xa4, 0x24, 0x8d, 0x10, 0x8, 0x9d, 0x16, 0x53 }), 
0x1)) {
                        If(LEqual(Arg2, 0x0)) {
                            Return(Buffer(0x1) {0x7f })
                        }
                        If(LEqual(Arg2, 0x1)) {
                            Return(Buffer(0x4) {0x31, 0x2e, 0x30, 0x0 })
                        }
                        If(LEqual(Arg2, 0x2)) {
                            If(TPRS) {
                                Store(0x0, PPRC)
                                If(LFLS()) {
                                    Store(0x2, PPRC)
                                }
                                Else {
                                    If(LEqual(DerefOf(Index(Arg3, 0x0)), 0x0)) 
{
                                        Store(0x0, PPRQ)
                                    }
                                    If(LEqual(DerefOf(Index(Arg3, 0x0)), 0x1)) 
{
                                        Store(0x1, PPRQ)
                                    }
                                    If(LEqual(DerefOf(Index(Arg3, 0x0)), 0x2)) 
{
                                        Store(0x2, PPRQ)
                                    }
                                    If(LEqual(DerefOf(Index(Arg3, 0x0)), 0x3)) 
{
                                        Store(0x3, PPRQ)
                                    }
                                    If(LEqual(DerefOf(Index(Arg3, 0x0)), 0x4)) 
{
                                        Store(0x4, PPRQ)
                                    }
                                    If(LEqual(DerefOf(Index(Arg3, 0x0)), 0x5)) 
{
                                        Store(0x5, PPRQ)
                                    }
                                    If(LEqual(DerefOf(Index(Arg3, 0x0)), 0x6)) 
{
                                        Store(0x6, PPRQ)
                                    }
                                    If(LEqual(DerefOf(Index(Arg3, 0x0)), 0x7)) 
{
                                        Store(0x7, PPRQ)
                                    }
                                    If(LEqual(DerefOf(Index(Arg3, 0x0)), 0x8)) 
{
                                        Store(0x8, PPRQ)
                                    }
                                    If(LEqual(DerefOf(Index(Arg3, 0x0)), 0x9)) 
{
                                        Store(0x9, PPRQ)
                                    }
                                    If(LEqual(DerefOf(Index(Arg3, 0x0)), 0xa)) 
{
                                        Store(0xa, PPRQ)
                                    }
                                    If(LEqual(DerefOf(Index(Arg3, 0x0)), 0xb)) 
{
                                        Store(0xb, PPRQ)
                                    }
                                    If(LEqual(DerefOf(Index(Arg3, 0x0)), 0xc)) 
{
                                        Store(0xc, PPRQ)
                                        Return(0x1)
                                    }
                                    If(LEqual(DerefOf(Index(Arg3, 0x0)), 0xd)) 
{
                                        Store(0xd, PPRQ)
                                        Return(0x1)
                                    }
                                    If(LEqual(DerefOf(Index(Arg3, 0x0)), 0xe)) 
{
                                        Store(0xe, PPRQ)
                                    }
                                    If(LNot(LLess(DerefOf(Index(Arg3, 0x0)), 
0xf))) {
                                        Return(0x1)
                                    }
                                    SFLS()
                                    Return(PPRC)
                                }
                            }
                            Return(0x1)
                        }
                        If(LEqual(Arg2, 0x3)) {
                            Name(TMP1, Package(0x2) {
                                0x0,
                                0xffffffff,
                            })
                            If(LFLS()) {
                                Store(0x1, Index(TMP1, 0x0))
                                Return(TMP1)
                            }
                            Store(PPRQ, Index(TMP1, 0x1))
                            Return(TMP1)
                        }
                        If(LEqual(Arg2, 0x4)) {
                            Return(0x1)
                        }
                        If(LEqual(Arg2, 0x5)) {
                            Name(TMP2, Package(0x3) {
                                0x0,
                                0xffffffff,
                                0xffffffff,
                            })
                            If(LFLS()) {
                                Store(0x1, Index(TMP2, 0x0))
                                Return(TMP2)
                            }
                            Store(PPLO, Index(TMP2, 0x1))
                            If(LGreater(PPLO, 0xe)) {
                                Store(0xfffffff1, Index(TMP2, 0x2))
                                Return(TMP2)
                            }
                            If(LEqual(PPRQ, 0x1f)) {
                                Store(0xfffffff1, Index(TMP2, 0x2))
                                Return(TMP2)
                            }
                            If(PPOR) {
                                Store(0xfffffff0, Index(TMP2, 0x2))
                                Return(TMP2)
                            }
                            Store(0x0, Index(TMP2, 0x2))
                            Return(TMP2)
                        }
                        If(LEqual(Arg2, 0x6)) {
                            CreateByteField(Arg3, 0x4, LAN0)
                            CreateByteField(Arg3, 0x5, LAN1)
                            If(LOr(LEqual(LAN0, 0x65), LEqual(LAN0, 0x45))) {
                                If(LOr(LEqual(LAN1, 0x6e), LEqual(LAN1, 
0x4e))) {
                                    Return(0x0)
                                }
                            }
                            Return(0x1)
                        }
                        Return(0x1)
                    }
                    If(LEqual(UCMP(Arg0, Buffer(0x10) {0xed, 0x54, 0x60, 0x37, 
0x13, 0xcc, 0x75, 0x46, 0x90, 0x1c, 0x47, 0x56, 0xd7, 0xf2, 0xd4, 0x5d }), 
0x1)) {
                        If(LEqual(Arg2, 0x0)) {
                            Return(Buffer(0x1) {0x1 })
                        }
                        If(LEqual(Arg2, 0x1)) {
                            If(LEqual(DerefOf(Index(Arg3, 0x0)), 0x0)) {
                                If(LFLS()) {
                                    Return(0x2)
                                }
                                Store(0x0, MOR_)
                                SFLS()
                                Return(0x0)
                            }
                            If(LEqual(DerefOf(Index(Arg3, 0x0)), 0x1)) {
                                If(LFLS()) {
                                    Return(0x2)
                                }
                                Store(0x1, MOR_)
                                SFLS()
                                Return(0x0)
                            }
                        }
                        Return(0x1)
                    }
                    Return(Buffer(0x1) {0x0 })
                }
                Method(LFLS) {
                    Name(TMPB, Buffer(0x2) {0x0, 0x0 })
                    CreateByteField(TMPB, 0x0, LPCT)
                    CreateByteField(TMPB, 0x1, SSUM)
                    TPHY(0x0)
                    Store(PH02, LPCT)
                    If(LPCT) {
                        Store(0x0, SSUM)
                        Add(SSUM, PH01, SSUM)
                        Add(SSUM, PH02, SSUM)
                        Add(SSUM, PH03, SSUM)
                        Add(SSUM, PPRQ, SSUM)
                        Add(SSUM, PPLO, SSUM)
                        Add(SSUM, PPRP, SSUM)
                        Add(SSUM, PPOR, SSUM)
                        Add(SSUM, TPRS, SSUM)
                        Add(SSUM, TPMV, SSUM)
                        Add(SSUM, MOR_, SSUM)
                        Add(SSUM, RSV0, SSUM)
                        If(SSUM) {
                        }
                        Else {
                            Return(0x0)
                        }
                        Return(0x2)
                    }
                }
                Method(SFLS) {
                    Name(TMPB, Buffer(0x2) {0x0, 0x0 })
                    CreateByteField(TMPB, 0x0, LPCT)
                    CreateByteField(TMPB, 0x1, SSUM)
                    Store(PH02, LPCT)
                    If(LPCT) {
                        Store(0x0, SSUM)
                        Add(SSUM, PH01, SSUM)
                        Add(SSUM, PH02, SSUM)
                        Add(SSUM, PH03, SSUM)
                        Add(SSUM, PPRQ, SSUM)
                        Add(SSUM, PPLO, SSUM)
                        Add(SSUM, PPRP, SSUM)
                        Add(SSUM, PPOR, SSUM)
                        Add(SSUM, TPRS, SSUM)
                        Add(SSUM, TPMV, SSUM)
                        Add(SSUM, MOR_, SSUM)
                        Add(SSUM, RSV0, SSUM)
                        Subtract(0x0, SSUM, PH03)
                        TPHY(0x1)
                        Return(0x0)
                    }
                    Else {
                        Return(0x2)
                    }
                }
            }
            Device(EC__) {
                Name(_HID, 0x090cd041)
                Name(_UID, 0x0)
                Name(_GPE, 0x11)
                Method(_REG, 2) {
                    If(LEqual(Arg0, 0x3)) {
                        Store(Arg1, \H8DR)
                    }
                }
                OperationRegion(ECOR, EmbeddedControl, 0x0, 0x0100)
                Field(ECOR, ByteAcc, NoLock, Preserve) {
                    HDBM,	1,
                    ,	1,
                    ,	1,
                    HFNE,	1,
                    ,	1,
                    ,	1,
                    HLDM,	1,
                    Offset(0x1),
                    ,	1,
                    BTCM,	1,
                    ,	1,
                    ,	1,
                    ,	1,
                    HBPR,	1,
                    BTPC,	1,
                    Offset(0x2),
                    HDUE,	1,
                    Offset(0x3),
                    ,	1,
                    HETE,	1,
                    ,	3,
                    HAUM,	2,
                    Offset(0x5),
                    HSPA,	1,
                    Offset(0x6),
                    HSUN,	8,
                    HSRP,	8,
                    Offset(0xc),
                    HLCL,	8,
                    Offset(0xe),
                    HFNS,	2,
                    Offset(0xf),
                    ,	4,
                    HAAA,	3,
                    Offset(0x10),
                    HAM0,	8,
                    HAM1,	8,
                    HAM2,	8,
                    HAM3,	8,
                    HAM4,	8,
                    HAM5,	8,
                    HAM6,	8,
                    HAM7,	8,
                    HAM8,	8,
                    HAM9,	8,
                    HAMA,	8,
                    HAMB,	8,
                    HAMC,	8,
                    HAMD,	8,
                    HAME,	8,
                    HAMF,	8,
                    HT00,	1,
                    HT01,	1,
                    HT02,	1,
                    HT03,	1,
                    HT10,	1,
                    HT11,	1,
                    HT12,	1,
                    HT13,	1,
                    Offset(0x23),
                    HANT,	8,
                    Offset(0x26),
                    ,	1,
                    ,	1,
                    HANA,	2,
                    ,	1,
                    ,	1,
                    Offset(0x2a),
                    HATR,	8,
                    HT0H,	8,
                    HT0L,	8,
                    HT1H,	8,
                    HT1L,	8,
                    HFSP,	8,
                    ,	6,
                    HMUT,	1,
                    Offset(0x31),
                    ,	2,
                    HUWB,	1,
                    Offset(0x32),
                    HWPM,	1,
                    HWLB,	1,
                    HWLO,	1,
                    HWDK,	1,
                    HWFN,	1,
                    HWBT,	1,
                    HWRI,	1,
                    HWBU,	1,
                    HWLU,	1,
                    Offset(0x34),
                    ,	7,
                    HPLO,	1,
                    Offset(0x36),
                    Offset(0x38),
                    HB0S,	7,
                    HB0A,	1,
                    HB1S,	7,
                    HB1A,	1,
                    HCMU,	1,
                    ,	2,
                    OVRQ,	1,
                    DCBD,	1,
                    DCWL,	1,
                    DCWW,	1,
                    HB1I,	1,
                    ,	1,
                    KBLT,	1,
                    BTPW,	1,
                    BTDT,	1,
                    HUBS,	1,
                    BDPW,	1,
                    BDDT,	1,
                    HUBB,	1,
                    Offset(0x46),
                    ,	1,
                    BTWK,	1,
                    HPLD,	1,
                    ,	1,
                    HPAC,	1,
                    BTST,	1,
                    Offset(0x47),
                    HPBU,	1,
                    ,	1,
                    HBID,	1,
                    ,	3,
                    HBCS,	1,
                    HPNF,	1,
                    ,	1,
                    GSTS,	1,
                    ,	2,
                    HLBU,	1,
                    BDST,	1,
                    HCBL,	1,
                    Offset(0x4e),
                    HWAK,	16,
                    Offset(0x78),
                    TMP0,	8,
                    TMP1,	8,
                    TMP2,	8,
                    TMP3,	8,
                    TMP4,	8,
                    TMP5,	8,
                    TMP6,	8,
                    TMP7,	8,
                    Offset(0x81),
                    HIID,	8,
                    Offset(0x83),
                    HFNI,	8,
                    HSPD,	16,
                    Offset(0x88),
                    HDEC,	8,
                    HDEO,	8,
                    Offset(0x8d),
                    HDAA,	3,
                    HDAB,	3,
                    HDAC,	2,
                    Offset(0xb0),
                    HDEN,	32,
                    HDEP,	32,
                    HDEM,	8,
                    HDES,	8,
                    Offset(0xc0),
                    Offset(0xc1),
                    TMP9,	8,
                    TMPA,	8,
                    Offset(0xc8),
                    ATMX,	8,
                    HWAT,	8,
                    Offset(0xed),
                    ,	4,
                    HDDD,	1
                }
                Method(_INI) {
                    If(\H8DR) {
                        Store(0x0, HSPA)
                    }
                    Else {
                        \MBEC(0x5, 0xfe, 0x0)
                    }
                    BINI()
                    \_SB_.PCI0.LPC_.EC__.HKEY.WGIN()
                }
                Name(_CRS, Buffer(0x12) {0x47, 0x1, 0x62, 0x0, 0x62, 0x0, 0x1, 
0x1, 0x47, 0x1, 0x66, 0x0, 0x66, 0x0, 0x1, 0x1, 0x79, 0x0 })
                Method(LED_, 2) {
                    Or(Arg0, Arg1, Local0)
                    If(\H8DR) {
                        Store(Local0, HLCL)
                    }
                    Else {
                        \WBEC(0xc, Local0)
                    }
                }
                Name(BAON, 0x0)
                Name(WBON, 0x0)
                Method(BEEP, 1) {
                    If(LEqual(Arg0, 0x5)) {
                        Store(0x0, WBON)
                    }
                    Store(WBON, Local2)
                    If(BAON) {
                        If(LEqual(Arg0, 0x0)) {
                            Store(0x0, BAON)
                            If(WBON) {
                                Store(0x3, Local0)
                                Store(0x8, Local1)
                            }
                            Else {
                                Store(0x0, Local0)
                                Store(0x0, Local1)
                            }
                        }
                        Else {
                            Store(0xff, Local0)
                            Store(0xff, Local1)
                            If(LEqual(Arg0, 0x11)) {
                                Store(0x0, WBON)
                            }
                            If(LEqual(Arg0, 0x10)) {
                                Store(0x1, WBON)
                            }
                        }
                    }
                    Else {
                        Store(Arg0, Local0)
                        Store(0xff, Local1)
                        If(LEqual(Arg0, 0xf)) {
                            Store(Arg0, Local0)
                            Store(0x8, Local1)
                            Store(0x1, BAON)
                        }
                        If(LEqual(Arg0, 0x11)) {
                            Store(0x0, Local0)
                            Store(0x0, Local1)
                            Store(0x0, WBON)
                        }
                        If(LEqual(Arg0, 0x10)) {
                            Store(0x3, Local0)
                            Store(0x8, Local1)
                            Store(0x1, WBON)
                        }
                    }
                    If(LEqual(Arg0, 0x3)) {
                        Store(0x0, WBON)
                        If(Local2) {
                            Store(0x7, Local0)
                            If(LOr(LEqual(\SPS_, 0x3), LEqual(\SPS_, 0x4))) {
                                Store(0x0, Local2)
                                Store(0xff, Local0)
                                Store(0xff, Local1)
                            }
                        }
                    }
                    If(LEqual(Arg0, 0x7)) {
                        If(Local2) {
                            Store(0x0, Local2)
                            Store(0xff, Local0)
                            Store(0xff, Local1)
                        }
                    }
                    If(LAnd(\H8DR, LNot(\W98F))) {
                        If(LAnd(Local2, LNot(WBON))) {
                            Store(0x0, HSRP)
                            Store(0x0, HSUN)
                            Sleep(0x64)
                        }
                        If(LNot(LEqual(Local1, 0xff))) {
                            Store(Local1, HSRP)
                        }
                        If(LNot(LEqual(Local0, 0xff))) {
                            Store(Local0, HSUN)
                        }
                    }
                    Else {
                        If(LAnd(Local2, LNot(WBON))) {
                            \WBEC(0x7, 0x0)
                            \WBEC(0x6, 0x0)
                            Sleep(0x64)
                        }
                        If(LNot(LEqual(Local1, 0xff))) {
                            \WBEC(0x7, Local1)
                        }
                        If(LNot(LEqual(Local0, 0xff))) {
                            \WBEC(0x6, Local0)
                        }
                    }
                    If(LEqual(Arg0, 0x3)) {
                    }
                    If(LEqual(Arg0, 0x7)) {
                        Sleep(0x01f4)
                    }
                }
                Method(EVNT, 1) {
                    If(\H8DR) {
                        If(Arg0) {
                            Or(HAM7, 0x1, HAM7)
                            Or(HAM5, 0x4, HAM5)
                        }
                        Else {
                            And(HAM7, 0xfe, HAM7)
                            And(HAM5, 0xfb, HAM5)
                        }
                    }
                    Else {
                        If(Arg0) {
                            \MBEC(0x17, 0xff, 0x1)
                            \MBEC(0x15, 0xff, 0x4)
                            If(\W98F) {
                                \WBEC(0x18, 0xff)
                            }
                        }
                        Else {
                            \MBEC(0x17, 0xfe, 0x0)
                            \MBEC(0x15, 0xfb, 0x0)
                            If(\W98F) {
                                \WBEC(0x18, 0x0)
                            }
                        }
                    }
                }
                PowerResource(PUBS, 3, 0) {
                    Method(_STA) {
                        If(\H8DR) {
                            Store(HUBS, Local0)
                        }
                        Else {
                            And(\RBEC(0x3b), 0x10, Local0)
                        }
                        If(Local0) {
                            Return(0x1)
                        }
                        Else {
                            Return(0x0)
                        }
                    }
                    Method(_ON_) {
                        If(\H8DR) {
                            Store(0x1, HUBS)
                        }
                        Else {
                            \MBEC(0x3b, 0xff, 0x10)
                        }
                    }
                    Method(_OFF) {
                        If(\H8DR) {
                            Store(0x0, HUBS)
                        }
                        Else {
                            \MBEC(0x3b, 0xef, 0x0)
                        }
                    }
                }
                Method(LPMD) {
                    Store(0x0, Local0)
                    Store(0x0, Local1)
                    Store(0x0, Local2)
                    If(\H8DR) {
                        If(HPAC) {
                            If(HPLO) {
                                Store(\LPST, Local0)
                            }
                            Else {
                                If(LLess(HWAT, 0x5a)) {
                                    If(HB0A) {
                                        If(LOr(And(HB0S, 0x10), 
LLess(And(HB0S, 0xf), 0x2))) {
                                            Store(0x1, Local1)
                                        }
                                    }
                                    Else {
                                        Store(0x1, Local1)
                                    }
                                    If(HB1A) {
                                        If(LOr(And(HB1S, 0x10), 
LLess(And(HB1S, 0xf), 0x2))) {
                                            Store(0x1, Local2)
                                        }
                                    }
                                    Else {
                                        Store(0x1, Local2)
                                    }
                                    If(LAnd(Local1, Local2)) {
                                        Store(\LPST, Local0)
                                    }
                                }
                            }
                        }
                    }
                    Else {
                        If(And(\RBEC(0x46), 0x10)) {
                            If(And(\RBEC(0x34), 0x80)) {
                                Store(\LPST, Local0)
                            }
                            Else {
                                If(LLess(\RBEC(0xc9), 0x5a)) {
                                    Store(\RBEC(0x38), Local3)
                                    If(And(Local3, 0x80)) {
                                        If(LOr(And(Local3, 0x10), 
LLess(And(Local3, 0xf), 0x2))) {
                                            Store(0x1, Local1)
                                        }
                                    }
                                    Else {
                                        Store(0x1, Local2)
                                    }
                                    Store(\RBEC(0x39), Local3)
                                    If(And(Local3, 0x80)) {
                                        If(LOr(And(Local3, 0x10), 
LLess(And(Local3, 0xf), 0x2))) {
                                            Store(0x1, Local1)
                                        }
                                    }
                                    Else {
                                        Store(0x1, Local2)
                                    }
                                    If(LAnd(Local1, Local2)) {
                                        Store(\LPST, Local0)
                                    }
                                }
                            }
                        }
                    }
                    Return(Local0)
                }
                Method(CLPM) {
                    If(And(\PPMF, 0x1)) {
                        If(\OSPX) {
                            Notify(\_PR_.CPU0, 0x80)
                            If(And(\PPMF, 0x01000000)) {
                                Notify(\_PR_.CPU1, 0x80)
                            }
                        }
                        Else {
                            Store(LPMD(), Local0)
                            If(Local0) {
                                \STEP(0x4)
                            }
                            Else {
                                \STEP(0x5)
                            }
                        }
                    }
                }
                Mutex(MCPU, 7)
                Method(_Q10) {
                    If(\_SB_.PCI0.LPC_.EC__.HKEY.MHKK(0x1)) {
                        \_SB_.PCI0.LPC_.EC__.HKEY.MHKQ(0x1001)
                    }
                }
                Method(_Q11) {
                    If(\_SB_.PCI0.LPC_.EC__.HKEY.MHKK(0x2)) {
                        \_SB_.PCI0.LPC_.EC__.HKEY.MHKQ(0x1002)
                    }
                    Else {
                        Noop
                    }
                }
                Method(_Q12) {
                    \_SB_.PCI0.LPC_.EC__.HKEY.MHKQ(0x1003)
                }
                Method(_Q13) {
                    If(\_SB_.PCI0.LPC_.EC__.HKEY.DHKC) {
                        \_SB_.PCI0.LPC_.EC__.HKEY.MHKQ(0x1004)
                    }
                    Else {
                        Notify(\_SB_.SLPB, 0x80)
                    }
                }
                Method(_Q64) {
                    If(\_SB_.PCI0.LPC_.EC__.HKEY.MHKK(0x10)) {
                        \_SB_.PCI0.LPC_.EC__.HKEY.MHKQ(0x1005)
                    }
                }
                Method(_Q65) {
                    If(\_SB_.PCI0.LPC_.EC__.HKEY.MHKK(0x20)) {
                        \_SB_.PCI0.LPC_.EC__.HKEY.MHKQ(0x1006)
                    }
                }
                Method(_Q16) {
                    If(\VPDF) {
                        Store(0x0, \VPDF)
                        If(VIGD) {
                            \_SB_.PCI0.VID_.VSPD()
                        }
                    }
                    Else {
                        If(\_SB_.PCI0.LPC_.EC__.HKEY.MHKK(0x40)) {
                            \_SB_.PCI0.LPC_.EC__.HKEY.MHKQ(0x1007)
                        }
                        Else {
                            If(VIGD) {
                                \_SB_.PCI0.VID_.VSWT()
                            }
                            Else {
                                \_SB_.PCI0.AGP_.VID_.VSWT()
                            }
                        }
                    }
                }
                Method(_Q17) {
                    If(\_SB_.PCI0.LPC_.EC__.HKEY.MHKK(0x80)) {
                        \_SB_.PCI0.LPC_.EC__.HKEY.MHKQ(0x1008)
                    }
                    Else {
                        If(LNot(\WNTF)) {
                            VEXP()
                        }
                    }
                }
                Method(_Q18) {
                    If(\_SB_.PCI0.LPC_.EC__.HKEY.MHKK(0x0100)) {
                        \_SB_.PCI0.LPC_.EC__.HKEY.MHKQ(0x1009)
                    }
                    Noop
                }
                Method(_Q66) {
                    If(\_SB_.PCI0.LPC_.EC__.HKEY.MHKK(0x0200)) {
                        \_SB_.PCI0.LPC_.EC__.HKEY.MHKQ(0x100a)
                    }
                }
                Method(_Q1A) {
                    If(\_SB_.PCI0.LPC_.EC__.HKEY.MHKK(0x0400)) {
                        \_SB_.PCI0.LPC_.EC__.HKEY.MHKQ(0x100b)
                    }
                }
                Method(_Q1B) {
                    \_SB_.PCI0.LPC_.EC__.HKEY.MHKQ(0x100c)
                }
                Method(_Q62) {
                    If(\_SB_.PCI0.LPC_.EC__.HKEY.MHKK(0x1000)) {
                        \_SB_.PCI0.LPC_.EC__.HKEY.MHKQ(0x100d)
                    }
                }
                Method(_Q60) {
                    If(\_SB_.PCI0.LPC_.EC__.HKEY.MHKK(0x2000)) {
                        \_SB_.PCI0.LPC_.EC__.HKEY.MHKQ(0x100e)
                    }
                }
                Method(_Q61) {
                    If(\_SB_.PCI0.LPC_.EC__.HKEY.MHKK(0x4000)) {
                        \_SB_.PCI0.LPC_.EC__.HKEY.MHKQ(0x100f)
                    }
                }
                Method(_Q1F) {
                    If(\_SB_.PCI0.LPC_.EC__.HKEY.MHKK(0x00020000)) {
                        \_SB_.PCI0.LPC_.EC__.HKEY.MHKQ(0x1012)
                    }
                    \UCMS(0xe)
                }
                Method(_Q67) {
                    If(\_SB_.PCI0.LPC_.EC__.HKEY.MHKK(0x00040000)) {
                        \_SB_.PCI0.LPC_.EC__.HKEY.MHKQ(0x1013)
                    }
                }
                Method(_Q1C) {
                    If(\_SB_.PCI0.LPC_.EC__.HKEY.MHKK(0x01000000)) {
                        \_SB_.PCI0.LPC_.EC__.HKEY.MHKQ(0x1019)
                    }
                }
                Method(_Q1D) {
                    If(\_SB_.PCI0.LPC_.EC__.HKEY.MHKK(0x02000000)) {
                        \_SB_.PCI0.LPC_.EC__.HKEY.MHKQ(0x101a)
                    }
                }
                Method(_Q26) {
                    If(VIGD) {
                        If(\WVIS) {
                            \VBTD()
                        }
                        \_SB_.PCI0.LPC_.EC__.BRNS()
                    }
                    Else {
                        \UCMS(0x12)
                    }
                    Sleep(0x01f4)
                    Notify(AC__, 0x80)
                    Notify(\_TZ_.THM0, 0x80)
                    Notify(\_TZ_.THM1, 0x80)
                    If(\WXPF) {
                        Acquire(MCPU, 0xffff)
                    }
                    Store(0x1, PWRS)
                    If(And(\PPMF, 0x0100)) {
                        TRAZ(0x1, 0x2b)
                    }
                    If(And(\PPMF, 0x1)) {
                        If(\OSPX) {
                            Notify(\_PR_.CPU0, 0x80)
                            If(And(\PPMF, 0x01000000)) {
                                Notify(\_PR_.CPU1, 0x80)
                            }
                        }
                        Else {
                            \STEP(0x0)
                        }
                    }
                    If(\WXPF) {
                        Sleep(0x64)
                    }
                    If(\OSC4) {
                        Notify(\_PR_.CPU0, 0x81)
                        If(And(\PPMF, 0x01000000)) {
                            Notify(\_PR_.CPU1, 0x81)
                        }
                    }
                    If(\WXPF) {
                        Release(MCPU)
                    }
                    If(LAnd(LNot(\WXPF), \WNTF)) {
                        If(LNot(\C4AC)) {
                            Store(0x0, \_SB_.PCI0.LPC_.C4C3)
                        }
                    }
                    ATMC()
                }
                Method(_Q27) {
                    If(VIGD) {
                        If(\WVIS) {
                            \VBTD()
                        }
                        \_SB_.PCI0.LPC_.EC__.BRNS()
                        \_SB_.PCI0.VID_.VDSP()
                    }
                    Else {
                        \UCMS(0x12)
                    }
                    Sleep(0x01f4)
                    Notify(AC__, 0x80)
                    Notify(\_TZ_.THM0, 0x80)
                    Notify(\_TZ_.THM1, 0x80)
                    If(\WXPF) {
                        Acquire(MCPU, 0xffff)
                    }
                    Store(0x0, PWRS)
                    If(And(\PPMF, 0x0100)) {
                        TRAZ(0x1, 0x2b)
                    }
                    If(And(\PPMF, 0x1)) {
                        If(\OSPX) {
                            Notify(\_PR_.CPU0, 0x80)
                            If(And(\PPMF, 0x01000000)) {
                                Notify(\_PR_.CPU1, 0x80)
                            }
                        }
                        Else {
                            \STEP(0x1)
                        }
                    }
                    If(\WXPF) {
                        Sleep(0x64)
                    }
                    If(\OSC4) {
                        Notify(\_PR_.CPU0, 0x81)
                        If(And(\PPMF, 0x01000000)) {
                            Notify(\_PR_.CPU1, 0x81)
                        }
                    }
                    If(\WXPF) {
                        Release(MCPU)
                    }
                    If(LAnd(LNot(\WXPF), \WNTF)) {
                        If(LNot(\_SB_.PCI0.LPC_.EC__.HKEY.CKC4(0x0))) {
                            Store(0x1, \_SB_.PCI0.LPC_.C4C3)
                        }
                    }
                    ATMC()
                    If(LOr(LEqual(\_SB_.GDCK.GDID(), 0x4c004d24), 
LEqual(\_SB_.GDCK.GDID(), 0x44004d24))) {
                        Notify(\_SB_.GDCK, 0x1)
                    }
                }
                Method(_Q2A) {
                    If(VIGD) {
                        \_SB_.PCI0.VID_.GLIS(0x1)
                    }
                    Else {
                        If(\WVIS) {
                            \_SB_.PCI0.VID_.GLIS(0x1)
                        }
                    }
                    If(VIGD) {
                        \_SB_.PCI0.VID_.VLOC(0x1)
                    }
                    Else {
                        \_SB_.PCI0.AGP_.VID_.VLOC(0x1)
                    }
                    \_SB_.PCI0.LPC_.EC__.HKEY.MHKQ(0x5002)
                    Notify(\_SB_.LID_, 0x80)
                }
                Method(_Q2B) {
                    If(VIGD) {
                        \_SB_.PCI0.VID_.GLIS(0x0)
                    }
                    \_SB_.PCI0.LPC_.EC__.HKEY.MHKQ(0x5001)
                    \UCMS(0xd)
                    Notify(\_SB_.LID_, 0x80)
                }
                Method(_Q3D) {
                }
                Method(_Q48) {
                    If(And(\PPMF, 0x1)) {
                        If(\OSPX) {
                            Notify(\_PR_.CPU0, 0x80)
                            If(And(\PPMF, 0x01000000)) {
                                Notify(\_PR_.CPU1, 0x80)
                            }
                        }
                        Else {
                            \STEP(0x4)
                        }
                    }
                }
                Method(_Q49) {
                    If(And(\PPMF, 0x1)) {
                        If(\OSPX) {
                            Notify(\_PR_.CPU0, 0x80)
                            If(And(\PPMF, 0x01000000)) {
                                Notify(\_PR_.CPU1, 0x80)
                            }
                        }
                        Else {
                            \STEP(0x5)
                        }
                    }
                }
                Method(_Q7F) {
                    Fatal(0x1, 0x80010000, 0x0395)
                }
                Method(_Q4E) {
                    \_SB_.PCI0.LPC_.EC__.HKEY.MHKQ(0x6011)
                }
                Method(_Q4F) {
                    \_SB_.PCI0.LPC_.EC__.HKEY.MHKQ(0x6012)
                }
                Method(_Q46) {
                    \_SB_.PCI0.LPC_.EC__.HKEY.MHKQ(0x6012)
                }
                Method(_Q22) {
                    CLPM()
                    If(HB0A) {
                        Notify(BAT0, 0x80)
                    }
                    If(HB1A) {
                        Notify(BAT1, 0x80)
                    }
                }
                Method(_Q4A) {
                    CLPM()
                    Notify(BAT0, 0x81)
                }
                Method(_Q4B) {
                    Notify(BAT0, 0x80)
                }
                Method(_Q4C) {
                    CLPM()
                    _Q38()
                }
                Method(_Q4D) {
                    If(And(^BAT1.B1ST, ^BAT1.XB1S)) {
                        Notify(BAT1, 0x80)
                    }
                }
                Method(_Q24) {
                    CLPM()
                    Notify(BAT0, 0x80)
                }
                Method(_Q25) {
                    If(And(^BAT1.B1ST, ^BAT1.XB1S)) {
                        CLPM()
                        Notify(BAT1, 0x80)
                    }
                }
                Field(ECOR, ByteAcc, NoLock, Preserve) {
                    Offset(0xa0),
                    SBRC,	16,
                    SBFC,	16,
                    SBAE,	16,
                    SBRS,	16,
                    SBAC,	16,
                    SBVO,	16,
                    SBAF,	16,
                    SBBS,	16
                }
                Field(ECOR, ByteAcc, NoLock, Preserve) {
                    Offset(0xa0),
                    ,	15,
                    SBCM,	1,
                    SBMD,	16,
                    SBCC,	16
                }
                Field(ECOR, ByteAcc, NoLock, Preserve) {
                    Offset(0xa0),
                    SBDC,	16,
                    SBDV,	16,
                    SBOM,	16,
                    SBSI,	16,
                    SBDT,	16,
                    SBSN,	16
                }
                Field(ECOR, ByteAcc, NoLock, Preserve) {
                    Offset(0xa0),
                    SBCH,	32
                }
                Field(ECOR, ByteAcc, NoLock, Preserve) {
                    Offset(0xa0),
                    SBMN,	128
                }
                Field(ECOR, ByteAcc, NoLock, Preserve) {
                    Offset(0xa0),
                    SBDN,	128
                }
                Mutex(BATM, 7)
                Method(GBIF, 3) {
                    Acquire(BATM, 0xffff)
                    If(Arg2) {
                        Or(Arg0, 0x1, HIID)
                        Store(SBCM, Local7)
                        XOr(Local7, 0x1, Index(Arg1, 0x0))
                        Store(Arg0, HIID)
                        If(Local7) {
                            Multiply(SBFC, 0xa, Local1)
                        }
                        Else {
                            Store(SBFC, Local1)
                        }
                        Store(Local1, Index(Arg1, 0x2))
                        Or(Arg0, 0x2, HIID)
                        If(Local7) {
                            Multiply(SBDC, 0xa, Local0)
                        }
                        Else {
                            Store(SBDC, Local0)
                        }
                        Store(Local0, Index(Arg1, 0x1))
                        Divide(Local1, 0x14, Local2, Index(Arg1, 0x5))
                        If(Local7) {
                            Store(0xc8, Index(Arg1, 0x6))
                        }
                        Else {
                            If(SBDV) {
                                Divide(0x00030d40, SBDV, Local2, Index(Arg1, 
0x6))
                            }
                            Else {
                                Store(0x0, Index(Arg1, 0x6))
                            }
                        }
                        Store(SBDV, Index(Arg1, 0x4))
                        Store(SBSN, Local0)
                        Name(SERN, Buffer(0x6) {0x20, 0x20, 0x20, 0x20, 0x20, 
0x0 })
                        Store(0x4, Local2)
                        While(Local0) {
                            Divide(Local0, 0xa, Local1, Local0)
                            Add(Local1, 0x30, Index(SERN, Local2))
                            Decrement(Local2)
                        }
                        Store(SERN, Index(Arg1, 0xa))
                        Or(Arg0, 0x6, HIID)
                        Store(SBDN, Index(Arg1, 0x9))
                        Or(Arg0, 0x4, HIID)
                        Name(BTYP, Buffer(0x5) {0x0, 0x0, 0x0, 0x0, 0x0 })
                        Store(SBCH, BTYP)
                        Store(BTYP, Index(Arg1, 0xb))
                        Or(Arg0, 0x5, HIID)
                        Store(SBMN, Index(Arg1, 0xc))
                    }
                    Else {
                        Store(0xffffffff, Index(Arg1, 0x1))
                        Store(0x0, Index(Arg1, 0x5))
                        Store(0x0, Index(Arg1, 0x6))
                        Store(0xffffffff, Index(Arg1, 0x2))
                    }
                    Release(BATM)
                    Return(Arg1)
                }
                Method(GBST, 4) {
                    Acquire(BATM, 0xffff)
                    If(And(Arg1, 0x20)) {
                        Store(0x2, Local0)
                    }
                    Else {
                        If(And(Arg1, 0x40)) {
                            Store(0x1, Local0)
                        }
                        Else {
                            Store(0x0, Local0)
                        }
                    }
                    If(And(Arg1, 0xf)) {
                    }
                    Else {
                        Or(Local0, 0x4, Local0)
                    }
                    If(LEqual(And(Arg1, 0xf), 0xf)) {
                        Store(0x4, Local0)
                        Store(0x0, Local1)
                        Store(0x0, Local2)
                        Store(0x0, Local3)
                    }
                    Else {
                        Store(Arg0, HIID)
                        Store(SBVO, Local3)
                        If(Arg2) {
                            Multiply(SBRC, 0xa, Local2)
                        }
                        Else {
                            Store(SBRC, Local2)
                        }
                        Store(SBAC, Local1)
                        If(LNot(LLess(Local1, 0x8000))) {
                            If(And(Local0, 0x1)) {
                                Subtract(0x00010000, Local1, Local1)
                            }
                            Else {
                                Store(0x0, Local1)
                            }
                        }
                        Else {
                            If(LNot(And(Local0, 0x2))) {
                                Store(0x0, Local1)
                            }
                        }
                        If(Arg2) {
                            Multiply(Local3, Local1, Local1)
                            Divide(Local1, 0x03e8, Local7, Local1)
                        }
                    }
                    Store(Local0, Index(Arg3, 0x0))
                    Store(Local1, Index(Arg3, 0x1))
                    Store(Local2, Index(Arg3, 0x2))
                    Store(Local3, Index(Arg3, 0x3))
                    Release(BATM)
                    Return(Arg3)
                }
                Device(BAT0) {
                    Name(_HID, 0x0a0cd041)
                    Name(_UID, 0x0)
                    Name(_PCL, Package(0x1) {
                        \_SB_,
                    })
                    Name(B0ST, 0x0)
                    Name(BT0I, Package(0xd) {
                        0x0,
                        0xffffffff,
                        0xffffffff,
                        0x1,
                        0x2a30,
                        0x0,
                        0x0,
                        0x1,
                        0x1,
                        "",
                        "",
                        "",
                        "",
                    })
                    Name(BT0P, Package(0x4) {
                    })
                    Method(_STA) {
                        If(\H8DR) {
                            Store(HB0A, B0ST)
                        }
                        Else {
                            If(And(\RBEC(0x38), 0x80)) {
                                Store(0x1, B0ST)
                            }
                            Else {
                                Store(0x0, B0ST)
                            }
                        }
                        If(B0ST) {
                            Return(0x1f)
                        }
                        Else {
                            Return(0xf)
                        }
                    }
                    Method(_BIF) {
                        Store(0x0, Local7)
                        Store(0xa, Local6)
                        While(LAnd(LNot(Local7), Local6)) {
                            If(HB0A) {
                                If(LEqual(And(HB0S, 0xf), 0xf)) {
                                    Sleep(0x03e8)
                                    Decrement(Local6)
                                }
                                Else {
                                    Store(0x1, Local7)
                                }
                            }
                            Else {
                                Store(0x0, Local6)
                            }
                        }
                        Return(GBIF(0x0, BT0I, Local7))
                    }
                    Method(_BST) {
                        XOr(DerefOf(Index(BT0I, 0x0)), 0x1, Local0)
                        Return(GBST(0x0, HB0S, Local0, BT0P))
                    }
                    Method(_BTP, 1) {
                        And(HAM4, 0xef, HAM4)
                        If(Arg0) {
                            Store(Arg0, Local1)
                            If(LNot(DerefOf(Index(BT0I, 0x0)))) {
                                Divide(Local1, 0xa, Local0, Local1)
                            }
                            And(Local1, 0xff, HT0L)
                            And(ShiftRight(Local1, 0x8), 0xff, HT0H)
                            Or(HAM4, 0x10, HAM4)
                        }
                    }
                }
                Device(BAT1) {
                    Name(_HID, 0x0a0cd041)
                    Name(_UID, 0x1)
                    Name(_PCL, Package(0x1) {
                        \_SB_,
                    })
                    Name(B1ST, 0x0)
                    Name(XB1S, 0x1)
                    Name(BT1I, Package(0xd) {
                        0x0,
                        0xffffffff,
                        0xffffffff,
                        0x1,
                        0x2a30,
                        0x0,
                        0x0,
                        0x1,
                        0x1,
                        "",
                        "",
                        "",
                        "",
                    })
                    Name(BT1P, Package(0x4) {
                    })
                    Method(_STA) {
                        If(\H8DR) {
                            Store(HB1A, B1ST)
                        }
                        Else {
                            If(And(\RBEC(0x39), 0x80)) {
                                Store(0x1, B1ST)
                            }
                            Else {
                                Store(0x0, B1ST)
                            }
                        }
                        If(B1ST) {
                            If(XB1S) {
                                Return(0x1f)
                            }
                            Else {
                                If(\WNTF) {
                                    Return(0x0)
                                }
                                Else {
                                    Return(0x1f)
                                }
                            }
                        }
                        Else {
                            If(\WNTF) {
                                Return(0x0)
                            }
                            Else {
                                Return(0xf)
                            }
                        }
                    }
                    Method(_BIF) {
                        Store(0x0, Local7)
                        Store(0xa, Local6)
                        While(LAnd(LNot(Local7), Local6)) {
                            If(HB1A) {
                                If(LEqual(And(HB1S, 0xf), 0xf)) {
                                    Sleep(0x03e8)
                                    Decrement(Local6)
                                }
                                Else {
                                    Store(0x1, Local7)
                                }
                            }
                            Else {
                                Store(0x0, Local6)
                            }
                        }
                        Return(GBIF(0x10, BT1I, Local7))
                    }
                    Method(_BST) {
                        XOr(DerefOf(Index(BT1I, 0x0)), 0x1, Local0)
                        Return(GBST(0x10, HB1S, Local0, BT1P))
                    }
                    Method(_BTP, 1) {
                        And(HAM4, 0xdf, HAM4)
                        If(Arg0) {
                            Store(Arg0, Local1)
                            If(LNot(DerefOf(Index(BT1I, 0x0)))) {
                                Divide(Local1, 0xa, Local0, Local1)
                            }
                            And(Local1, 0xff, HT1L)
                            And(ShiftRight(Local1, 0x8), 0xff, HT1H)
                            Or(HAM4, 0x20, HAM4)
                        }
                    }
                }
                Device(AC__) {
                    Name(_HID, "ACPI0003")
                    Name(_UID, 0x0)
                    Name(_PCL, Package(0x1) {
                        \_SB_,
                    })
                    Method(_PSR) {
                        If(\H8DR) {
                            Return(HPAC)
                        }
                        Else {
                            If(And(\RBEC(0x46), 0x10)) {
                                Return(0x1)
                            }
                            Else {
                                Return(0x0)
                            }
                        }
                    }
                    Method(_STA) {
                        Return(0xf)
                    }
                }
                Device(HKEY) {
                    Name(_HID, 0x68004d24)
                    Method(_STA) {
                        Return(0xf)
                    }
                    Method(MHKV) {
                        Return(0x0100)
                    }
                    Name(DHKC, 0x0)
                    Name(DHKB, 0x1)
                    Mutex(XDHK, 7)
                    Name(DHKH, 0x0)
                    Name(DHKW, 0x0)
                    Name(DHKS, 0x0)
                    Name(DHKD, 0x0)
                    Name(DHKN, 0x080c)
                    Name(DHKT, 0x0)
                    Name(DHWW, 0x0)
                    Method(MHKA) {
                        Return(0x03ffffff)
                    }
                    Method(MHKN) {
                        Return(DHKN)
                    }
                    Method(MHKK, 1) {
                        If(DHKC) {
                            Return(And(DHKN, Arg0))
                        }
                        Else {
                            Return(Zero)
                        }
                    }
                    Method(MHKM, 2) {
                        Acquire(XDHK, 0xffff)
                        If(LGreater(Arg0, 0x20)) {
                            Noop
                        }
                        Else {
                            ShiftLeft(One, Decrement(Arg0), Local0)
                            If(And(Local0, 0x03ffffff)) {
                                If(Arg1) {
                                    Or(Local0, DHKN, DHKN)
                                }
                                Else {
                                    And(DHKN, XOr(Local0, 0xffffffff), DHKN)
                                }
                            }
                            Else {
                                Noop
                            }
                        }
                        Release(XDHK)
                    }
                    Method(MHKS) {
                        Notify(\_SB_.SLPB, 0x80)
                    }
                    Method(MHKC, 1) {
                        Store(Arg0, DHKC)
                    }
                    Method(MHKP) {
                        Acquire(XDHK, 0xffff)
                        If(DHWW) {
                            Store(DHWW, Local1)
                            Store(Zero, DHWW)
                        }
                        Else {
                            If(DHKW) {
                                Store(DHKW, Local1)
                                Store(Zero, DHKW)
                            }
                            Else {
                                If(DHKD) {
                                    Store(DHKD, Local1)
                                    Store(Zero, DHKD)
                                }
                                Else {
                                    If(DHKS) {
                                        Store(DHKS, Local1)
                                        Store(Zero, DHKS)
                                    }
                                    Else {
                                        If(DHKT) {
                                            Store(DHKT, Local1)
                                            Store(Zero, DHKT)
                                        }
                                        Else {
                                            Store(DHKH, Local1)
                                            Store(Zero, DHKH)
                                        }
                                    }
                                }
                            }
                        }
                        Release(XDHK)
                        Return(Local1)
                    }
                    Method(MHKE, 1) {
                        Store(Arg0, DHKB)
                        Acquire(XDHK, 0xffff)
                        Store(Zero, DHKH)
                        Store(Zero, DHKW)
                        Store(Zero, DHKS)
                        Store(Zero, DHKD)
                        Store(Zero, DHKT)
                        Store(Zero, DHWW)
                        Release(XDHK)
                    }
                    Method(MHKQ, 1) {
                        If(DHKB) {
                            If(DHKC) {
                                Acquire(XDHK, 0xffff)
                                If(LLess(Arg0, 0x1000)) {
                                }
                                Else {
                                    If(LLess(Arg0, 0x2000)) {
                                        Store(Arg0, DHKH)
                                    }
                                    Else {
                                        If(LLess(Arg0, 0x3000)) {
                                            Store(Arg0, DHKW)
                                        }
                                        Else {
                                            If(LLess(Arg0, 0x4000)) {
                                                Store(Arg0, DHKS)
                                            }
                                            Else {
                                                If(LLess(Arg0, 0x5000)) {
                                                    Store(Arg0, DHKD)
                                                }
                                                Else {
                                                    If(LLess(Arg0, 0x6000)) {
                                                        Store(Arg0, DHKH)
                                                    }
                                                    Else {
                                                        If(LLess(Arg0, 
0x7000)) {
                                                            Store(Arg0, DHKT)
                                                        }
                                                        Else {
                                                            If(LLess(Arg0, 
0x8000)) {
                                                                Store(Arg0, 
DHWW)
                                                            }
                                                            Else {
                                                            }
                                                        }
                                                    }
                                                }
                                            }
                                        }
                                    }
                                }
                                Release(XDHK)
                                Notify(HKEY, 0x80)
                            }
                            Else {
                                If(LEqual(Arg0, 0x1004)) {
                                    Notify(\_SB_.SLPB, 0x80)
                                }
                            }
                        }
                    }
                    Method(MHKB, 1) {
                        If(LEqual(Arg0, 0x0)) {
                            \_SB_.PCI0.LPC_.EC__.BEEP(0x11)
                            Store(0x0, \LIDB)
                        }
                        Else {
                            If(LEqual(Arg0, 0x1)) {
                                \_SB_.PCI0.LPC_.EC__.BEEP(0x10)
                                Store(0x1, \LIDB)
                            }
                            Else {
                            }
                        }
                    }
                    Method(MHKD) {
                        If(VIGD) {
                            \_SB_.PCI0.VID_.VLOC(0x0)
                        }
                        Else {
                            \_SB_.PCI0.AGP_.VID_.VLOC(0x0)
                        }
                    }
                    Method(MHQC, 1) {
                        If(\WNTF) {
                            If(LEqual(Arg0, 0x0)) {
                                Return(\CWAC)
                            }
                            Else {
                                If(LEqual(Arg0, 0x1)) {
                                    Return(\CWAP)
                                }
                                Else {
                                    If(LEqual(Arg0, 0x2)) {
                                        Return(\CWAT)
                                    }
                                    Else {
                                        Noop
                                    }
                                }
                            }
                        }
                        Else {
                            Noop
                        }
                        Return(0x0)
                    }
                    Method(MHGC) {
                        If(\WNTF) {
                            Acquire(XDHK, 0xffff)
                            If(CKC4(0x0)) {
                                Store(0x3, Local0)
                            }
                            Else {
                                Store(0x4, Local0)
                            }
                            Release(XDHK)
                            Return(Local0)
                        }
                        Else {
                            Noop
                        }
                        Return(0x0)
                    }
                    Method(MHSC, 1) {
                        If(LAnd(\CWAC, \WNTF)) {
                            Acquire(XDHK, 0xffff)
                            If(\OSC4) {
                                If(LEqual(Arg0, 0x3)) {
                                    If(LNot(\CWAS)) {
                                        Notify(\_PR_.CPU0, 0x81)
                                        If(And(\PPMF, 0x01000000)) {
                                            Notify(\_PR_.CPU1, 0x81)
                                        }
                                        Store(0x1, \CWAS)
                                    }
                                }
                                Else {
                                    If(LEqual(Arg0, 0x4)) {
                                        If(\CWAS) {
                                            Notify(\_PR_.CPU0, 0x81)
                                            If(And(\PPMF, 0x01000000)) {
                                                Notify(\_PR_.CPU1, 0x81)
                                            }
                                            Store(0x0, \CWAS)
                                        }
                                    }
                                    Else {
                                        Noop
                                    }
                                }
                            }
                            Else {
                                If(LEqual(Arg0, 0x3)) {
                                    If(LNot(\CWAS)) {
                                        Store(0x0, \_SB_.PCI0.LPC_.C4C3)
                                        Store(0x1, \CWAS)
                                    }
                                }
                                Else {
                                    If(LEqual(Arg0, 0x4)) {
                                        If(\CWAS) {
                                            Store(0x0, \CWAS)
                                            If(LNot(CKC4(0x0))) {
                                                Store(0x1, 
\_SB_.PCI0.LPC_.C4C3)
                                            }
                                        }
                                    }
                                    Else {
                                        Noop
                                    }
                                }
                            }
                            Release(XDHK)
                        }
                        Else {
                            Noop
                        }
                    }
                    Method(CKC4, 1) {
                        Store(0x0, Local0)
                        If(\C4WR) {
                            If(LNot(\C4AC)) {
                                Or(Local0, 0x1, Local0)
                            }
                        }
                        If(\C4NA) {
                            Or(Local0, 0x2, Local0)
                        }
                        If(LAnd(\CWAC, \CWAS)) {
                            Or(Local0, 0x4, Local0)
                        }
                        If(LAnd(\CWUE, \CWUS)) {
                            Or(Local0, 0x8, Local0)
                        }
                        And(Local0, Not(Arg0), Local0)
                        Return(Local0)
                    }
                    Method(MHQE) {
                        Return(\C4WR)
                    }
                    Method(MHGE) {
                        If(LAnd(\C4WR, \C4AC)) {
                            Return(0x4)
                        }
                        Return(0x3)
                    }
                    Method(MHSE, 1) {
                        If(\C4WR) {
                            Store(\C4AC, Local0)
                            If(LEqual(Arg0, 0x3)) {
                                Store(0x0, \C4AC)
                                If(XOr(Local0, \C4AC)) {
                                    If(\OSC4) {
                                        Notify(\_PR_.CPU0, 0x81)
                                        If(And(\PPMF, 0x01000000)) {
                                            Notify(\_PR_.CPU1, 0x81)
                                        }
                                    }
                                    Else {
                                        Store(0x0, \_SB_.PCI0.LPC_.C4C3)
                                    }
                                }
                            }
                            Else {
                                If(LEqual(Arg0, 0x4)) {
                                    Store(0x1, \C4AC)
                                    If(XOr(Local0, \C4AC)) {
                                        If(\OSC4) {
                                            Notify(\_PR_.CPU0, 0x81)
                                            If(And(\PPMF, 0x01000000)) {
                                                Notify(\_PR_.CPU1, 0x81)
                                            }
                                        }
                                        Else {
                                            If(LNot(CKC4(0x0))) {
                                                Store(0x1, 
\_SB_.PCI0.LPC_.C4C3)
                                            }
                                        }
                                    }
                                }
                            }
                        }
                    }
                }
                Scope(\_SB_.PCI0.LPC_.EC__.HKEY) {
                    Method(TDSC, 1) {
                        Store(0x1, Local0)
                        While(Local0) {
                            Store(\_SB_.PCI0.LPC_.EC__.HANT, Local0)
                        }
                        Store(Arg0, \_SB_.PCI0.LPC_.EC__.HANT)
                        If(LEqual(Arg0, 0x21)) {
                            \ATCC(0x0)
                        }
                    }
                    Method(TDSS, 1) {
                        \ATCC(Arg0)
                    }
                    Method(TDSG, 1) {
                        And(Arg0, 0xff, Local0)
                        Store(Local0, \_SB_.PCI0.LPC_.EC__.HDAA)
                        ShiftRight(Arg0, 0x8, Local0)
                        And(Local0, 0xff, Local1)
                        Store(Local1, \_SB_.PCI0.LPC_.EC__.HDAB)
                        ShiftRight(Arg0, 0x10, Local0)
                        And(Local0, 0xff, Local1)
                        Store(Local1, \_SB_.PCI0.LPC_.EC__.HDAC)
                        ShiftRight(Arg0, 0x18, Local0)
                        And(Local0, 0xff, Local1)
                        Store(Local1, \_SB_.PCI0.LPC_.EC__.HANA)
                    }
                    Method(TDGC) {
                        Store(\_SB_.PCI0.LPC_.EC__.HDDD, Local0)
                        Return(Local0)
                    }
                    Method(TDGS) {
                        Store(\_SB_.PCI0.LPC_.EC__.HAAA, Local0)
                        Return(Local0)
                    }
                }
                Scope(\_SB_.PCI0.LPC_.EC__.HKEY) {
                    Name(INDV, 0x0)
                    Method(MHQI) {
                        If(And(\IPMS, 0x1)) {
                            Or(INDV, 0x1, INDV)
                        }
                        If(And(\IPMS, 0x2)) {
                            Or(INDV, 0x2, INDV)
                        }
                        If(And(\IPMS, 0x4)) {
                            Or(INDV, 0x0100, INDV)
                        }
                        If(And(\IPMS, 0x8)) {
                            Or(INDV, 0x0200, INDV)
                        }
                        If(And(\IPMS, 0x10)) {
                            Or(INDV, 0x4, INDV)
                        }
                        Return(INDV)
                    }
                    Method(MHGI, 1) {
                        Name(RETB, Buffer(0x10) { })
                        CreateByteField(RETB, 0x0, MHGS)
                        ShiftLeft(0x1, Arg0, Local0)
                        If(And(INDV, Local0)) {
                            If(LEqual(Arg0, 0x0)) {
                                CreateField(RETB, 0x8, 0x78, BRBU)
                                Store(\IPMB, BRBU)
                                Store(0x10, MHGS)
                            }
                            Else {
                                If(LEqual(Arg0, 0x1)) {
                                    CreateField(RETB, 0x8, 0x18, RRBU)
                                    Store(\IPMR, RRBU)
                                    Store(0x4, MHGS)
                                }
                                Else {
                                    If(LEqual(Arg0, 0x8)) {
                                        CreateField(RETB, 0x10, 0x18, ODBU)
                                        CreateByteField(RETB, 0x1, MHGZ)
                                        Store(\IPMO, ODBU)
                                        If(LEqual(^^BDEV, 0x3)) {
                                            If(\H8DR) {
                                                Store(^^HPBU, Local1)
                                            }
                                            Else {
                                                And(\RBEC(0x47), 0x1, Local1)
                                            }
                                            If(LNot(Local1)) {
                                                Or(0x4, MHGZ, MHGZ)
                                            }
                                            If(LEqual(^^BSTS, 0x0)) {
                                                Or(0x1, MHGZ, MHGZ)
                                                Or(0x2, MHGZ, MHGZ)
                                            }
                                        }
                                        Store(0x5, MHGS)
                                    }
                                    Else {
                                        If(LEqual(Arg0, 0x9)) {
                                            CreateField(RETB, 0x10, 0x8, AUBU)
                                            Store(\IPMA, AUBU)
                                            Store(0x1, Index(RETB, 0x1))
                                            Store(0x3, MHGS)
                                        }
                                        Else {
                                            If(LEqual(Arg0, 0x2)) {
                                                Store(\VDYN(0x0, 0x0), Local1)
                                                And(Local1, 0xf, Index(RETB, 
0x2))
                                                ShiftRight(Local1, 0x4, 
Local1)
                                                And(Local1, 0xf, Index(RETB, 
0x1))
                                                Store(0x3, MHGS)
                                            }
                                        }
                                    }
                                }
                            }
                        }
                        Return(RETB)
                    }
                    Method(MHSI, 2) {
                        ShiftLeft(0x1, Arg0, Local0)
                        If(And(INDV, Local0)) {
                            If(LEqual(Arg0, 0x8)) {
                                If(Arg1) {
                                    If(\H8DR) {
                                        Store(^^HPBU, Local1)
                                    }
                                    Else {
                                        And(\RBEC(0x47), 0x1, Local1)
                                    }
                                    If(LNot(Local1)) {
                                        Store(^^BGID(0x0), ^^BDEV)
                                        ^^NBIN(Local1)
                                    }
                                }
                            }
                            Else {
                                If(LEqual(Arg0, 0x2)) {
                                    \VDYN(0x1, Arg1)
                                }
                            }
                        }
                    }
                }
            }
        }
        Name(_ADR, 0x0)
        Name(_S3D, 0x2)
        Name(RID_, 0x0)
        Name(LRRT, Package(0x17) {
            Package(0x4) {
                0x0001ffff,
                0x0,
                \_SB_.LNKA,
                0x0,
            },
            Package(0x4) {
                0x0002ffff,
                0x0,
                \_SB_.LNKA,
                0x0,
            },
            Package(0x4) {
                0x0003ffff,
                0x0,
                \_SB_.LNKA,
                0x0,
            },
            Package(0x4) {
                0x0003ffff,
                0x1,
                \_SB_.LNKB,
                0x0,
            },
            Package(0x4) {
                0x0003ffff,
                0x2,
                \_SB_.LNKC,
                0x0,
            },
            Package(0x4) {
                0x0003ffff,
                0x3,
                \_SB_.LNKD,
                0x0,
            },
            Package(0x4) {
                0x0019ffff,
                0x0,
                \_SB_.LNKE,
                0x0,
            },
            Package(0x4) {
                0x001affff,
                0x0,
                \_SB_.LNKE,
                0x0,
            },
            Package(0x4) {
                0x001affff,
                0x1,
                \_SB_.LNKF,
                0x0,
            },
            Package(0x4) {
                0x001affff,
                0x2,
                \_SB_.LNKG,
                0x0,
            },
            Package(0x4) {
                0x001affff,
                0x3,
                \_SB_.LNKH,
                0x0,
            },
            Package(0x4) {
                0x001bffff,
                0x1,
                \_SB_.LNKB,
                0x0,
            },
            Package(0x4) {
                0x001cffff,
                0x0,
                \_SB_.LNKE,
                0x0,
            },
            Package(0x4) {
                0x001cffff,
                0x1,
                \_SB_.LNKF,
                0x0,
            },
            Package(0x4) {
                0x001cffff,
                0x2,
                \_SB_.LNKG,
                0x0,
            },
            Package(0x4) {
                0x001cffff,
                0x3,
                \_SB_.LNKH,
                0x0,
            },
            Package(0x4) {
                0x001dffff,
                0x0,
                \_SB_.LNKA,
                0x0,
            },
            Package(0x4) {
                0x001dffff,
                0x1,
                \_SB_.LNKB,
                0x0,
            },
            Package(0x4) {
                0x001dffff,
                0x2,
                \_SB_.LNKC,
                0x0,
            },
            Package(0x4) {
                0x001dffff,
                0x3,
                \_SB_.LNKD,
                0x0,
            },
            Package(0x4) {
                0x001fffff,
                0x0,
                \_SB_.LNKH,
                0x0,
            },
            Package(0x4) {
                0x001fffff,
                0x2,
                \_SB_.LNKA,
                0x0,
            },
            Package(0x4) {
                0x001fffff,
                0x1,
                \_SB_.LNKA,
                0x0,
            },
        })
        Name(ARRT, Package(0x17) {
            Package(0x4) {
                0x0001ffff,
                0x0,
                0x0,
                0x10,
            },
            Package(0x4) {
                0x0002ffff,
                0x0,
                0x0,
                0x10,
            },
            Package(0x4) {
                0x0003ffff,
                0x0,
                0x0,
                0x10,
            },
            Package(0x4) {
                0x0003ffff,
                0x1,
                0x0,
                0x11,
            },
            Package(0x4) {
                0x0003ffff,
                0x2,
                0x0,
                0x12,
            },
            Package(0x4) {
                0x0003ffff,
                0x3,
                0x0,
                0x13,
            },
            Package(0x4) {
                0x0019ffff,
                0x0,
                0x0,
                0x14,
            },
            Package(0x4) {
                0x001affff,
                0x0,
                0x0,
                0x14,
            },
            Package(0x4) {
                0x001affff,
                0x1,
                0x0,
                0x15,
            },
            Package(0x4) {
                0x001affff,
                0x2,
                0x0,
                0x16,
            },
            Package(0x4) {
                0x001affff,
                0x3,
                0x0,
                0x17,
            },
            Package(0x4) {
                0x001bffff,
                0x1,
                0x0,
                0x11,
            },
            Package(0x4) {
                0x001cffff,
                0x0,
                0x0,
                0x14,
            },
            Package(0x4) {
                0x001cffff,
                0x1,
                0x0,
                0x15,
            },
            Package(0x4) {
                0x001cffff,
                0x2,
                0x0,
                0x16,
            },
            Package(0x4) {
                0x001cffff,
                0x3,
                0x0,
                0x17,
            },
            Package(0x4) {
                0x001dffff,
                0x0,
                0x0,
                0x10,
            },
            Package(0x4) {
                0x001dffff,
                0x1,
                0x0,
                0x11,
            },
            Package(0x4) {
                0x001dffff,
                0x2,
                0x0,
                0x12,
            },
            Package(0x4) {
                0x001dffff,
                0x3,
                0x0,
                0x13,
            },
            Package(0x4) {
                0x001fffff,
                0x0,
                0x0,
                0x17,
            },
            Package(0x4) {
                0x001fffff,
                0x2,
                0x0,
                0x10,
            },
            Package(0x4) {
                0x001fffff,
                0x1,
                0x0,
                0x10,
            },
        })
        Method(_PRT) {
            If(\GPIC) {
                Return(ARRT)
            }
            Else {
                Return(LRRT)
            }
        }
        Name(_HID, 0x080ad041)
        Name(_CID, 0x030ad041)
        Name(_BBN, 0x0)
        OperationRegion(MHCS, PCI_Config, 0x0, 0x0100)
        Field(MHCS, DWordAcc, NoLock, Preserve) {
            Offset(0x90),
            PAM0,	8,
            PAM1,	8,
            PAM2,	8,
            PAM3,	8,
            PAM4,	8,
            PAM5,	8,
            PAM6,	8,
            Offset(0xb0),
            ,	4,
            TOUD,	12
        }
        Name(_CRS, Buffer(0x01c0) {0x88, 0xd, 0x0, 0x2, 0xc, 0x0, 0x0, 0x0, 
0x0, 0x0, 0xff, 0x0, 0x0, 0x0, 0x0, 0x1, 0x47, 0x1, 0xf8, 0xc, 0xf8, 0xc, 
0x1, 0x8, 0x88, 0xd, 0x0, 0x1, 0xc, 0x3, 0x0, 0x0, 0x0, 0x0, 0xf7, 0xc, 0x0, 
0x0, 0xf8, 0xc, 0x88, 0xd, 0x0, 0x1, 0xc, 0x3, 0x0, 0x0, 0x0, 0xd, 0xff, 
0xff, 0x0, 0x0, 0x0, 0xf3, 0x87, 0x17, 0x0, 0x0, 0xc, 0x3, 0x0, 0x0, 0x0, 
0x0, 0x0, 0x0, 0xa, 0x0, 0xff, 0xff, 0xb, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 
0x2, 0x0, 0x87, 0x17, 0x0, 0x0, 0xc, 0x3, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xc, 
0x0, 0xff, 0x3f, 0xc, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x40, 0x0, 0x0, 0x87, 
0x17, 0x0, 0x0, 0xc, 0x3, 0x0, 0x0, 0x0, 0x0, 0x0, 0x40, 0xc, 0x0, 0xff, 
0x7f, 0xc, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x40, 0x0, 0x0, 0x87, 0x17, 0x0, 
0x0, 0xc, 0x3, 0x0, 0x0, 0x0, 0x0, 0x0, 0x80, 0xc, 0x0, 0xff, 0xbf, 0xc, 0x0, 
0x0, 0x0, 0x0, 0x0, 0x0, 0x40, 0x0, 0x0, 0x87, 0x17, 0x0, 0x0, 0xc, 0x3, 0x0, 
0x0, 0x0, 0x0, 0x0, 0xc0, 0xc, 0x0, 0xff, 0xff, 0xc, 0x0, 0x0, 0x0, 0x0, 0x0, 
0x0, 0x40, 0x0, 0x0, 0x87, 0x17, 0x0, 0x0, 0xc, 0x3, 0x0, 0x0, 0x0, 0x0, 0x0, 
0x0, 0xd, 0x0, 0xff, 0x3f, 0xd, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x40, 0x0, 0x0, 
0x87, 0x17, 0x0, 0x0, 0xc, 0x3, 0x0, 0x0, 0x0, 0x0, 0x0, 0x40, 0xd, 0x0, 
0xff, 0x7f, 0xd, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x40, 0x0, 0x0, 0x87, 0x17, 
0x0, 0x0, 0xc, 0x3, 0x0, 0x0, 0x0, 0x0, 0x0, 0x80, 0xd, 0x0, 0xff, 0xbf, 0xd, 
0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x40, 0x0, 0x0, 0x87, 0x17, 0x0, 0x0, 0xc, 0x3, 
0x0, 0x0, 0x0, 0x0, 0x0, 0xc0, 0xd, 0x0, 0xff, 0xff, 0xd, 0x0, 0x0, 0x0, 0x0, 
0x0, 0x0, 0x40, 0x0, 0x0, 0x87, 0x17, 0x0, 0x0, 0xc, 0x3, 0x0, 0x0, 0x0, 0x0, 
0x0, 0x0, 0xe, 0x0, 0xff, 0x3f, 0xe, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x40, 0x0, 
0x0, 0x87, 0x17, 0x0, 0x0, 0xc, 0x3, 0x0, 0x0, 0x0, 0x0, 0x0, 0x40, 0xe, 0x0, 
0xff, 0x7f, 0xe, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x40, 0x0, 0x0, 0x87, 0x17, 
0x0, 0x0, 0xc, 0x3, 0x0, 0x0, 0x0, 0x0, 0x0, 0x80, 0xe, 0x0, 0xff, 0xbf, 0xe, 
0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x40, 0x0, 0x0, 0x87, 0x17, 0x0, 0x0, 0xc, 0x3, 
0x0, 0x0, 0x0, 0x0, 0x0, 0xc0, 0xe, 0x0, 0xff, 0xff, 0xe, 0x0, 0x0, 0x0, 0x0, 
0x0, 0x0, 0x40, 0x0, 0x0, 0x87, 0x17, 0x0, 0x0, 0xc, 0x3, 0x0, 0x0, 0x0, 0x0, 
0x0, 0x0, 0x10, 0x0, 0xff, 0xff, 0xbf, 0xfe, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 
0xb0, 0xfe, 0x87, 0x17, 0x0, 0x0, 0xc, 0x3, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 
0xd4, 0xfe, 0xff, 0xbf, 0xd4, 0xfe, 0x0, 0x0, 0x0, 0x0, 0x0, 0xc0, 0x0, 0x0, 
0x79, 0x0 })
        CreateDWordField(_CRS, 0x68, C0LN)
        CreateDWordField(_CRS, 0x82, C4LN)
        CreateDWordField(_CRS, 0x9c, C8LN)
        CreateDWordField(_CRS, 0xb6, CCLN)
        CreateDWordField(_CRS, 0xd0, D0LN)
        CreateDWordField(_CRS, 0xea, D4LN)
        CreateDWordField(_CRS, 0x0104, D8LN)
        CreateDWordField(_CRS, 0x011e, DCLN)
        CreateDWordField(_CRS, 0x0138, E0LN)
        CreateDWordField(_CRS, 0x0152, E4LN)
        CreateDWordField(_CRS, 0x016c, E8LN)
        CreateDWordField(_CRS, 0x0186, ECLN)
        CreateDWordField(_CRS, 0x0194, XXMN)
        CreateDWordField(_CRS, 0x0198, XXMX)
        CreateDWordField(_CRS, 0x01a0, XXLN)
        CreateDWordField(_CRS, 0x01ae, F4MN)
        CreateDWordField(_CRS, 0x01b2, F4MX)
        CreateDWordField(_CRS, 0x01ba, F4LN)
        Method(_INI, 0, Serialized) {
            If(LNot(\OSIF)) {
                \_SB_._INI()
            }
            ShiftLeft(TOUD, 0x14, Local0)
            Store(Local0, \MEMX)
            Store(Local0, XXMN)
            Add(Subtract(XXMX, XXMN), 0x1, XXLN)
            If(LNot(LEqual(And(\TPRS, 0x1), 0x1))) {
                Store(0x0, F4LN)
            }
            If(And(PAM1, 0x3)) {
                Store(0x0, C0LN)
            }
            If(And(PAM1, 0x30)) {
                Store(0x0, C4LN)
            }
            If(And(PAM2, 0x3)) {
                Store(0x0, C8LN)
            }
            If(And(PAM2, 0x30)) {
                Store(0x0, CCLN)
            }
            If(And(PAM3, 0x3)) {
                Store(0x0, D0LN)
            }
            If(And(PAM3, 0x30)) {
                Store(0x0, D4LN)
            }
            If(And(PAM4, 0x3)) {
                Store(0x0, D8LN)
            }
            If(And(PAM4, 0x30)) {
                Store(0x0, DCLN)
            }
            If(And(PAM5, 0x3)) {
                Store(0x0, E0LN)
            }
            If(And(PAM5, 0x30)) {
                Store(0x0, E4LN)
            }
            If(And(PAM6, 0x3)) {
                Store(0x0, E8LN)
            }
            If(And(PAM6, 0x30)) {
                Store(0x0, ECLN)
            }
        }
        Name(SUPP, 0x0)
        Name(CTRL, 0x0)
        Method(_OSC, 4) {
            CreateDWordField(Arg3, 0x0, CDW1)
            CreateDWordField(Arg3, 0x4, CDW2)
            CreateDWordField(Arg3, 0x8, CDW3)
            CreateDWordField(Arg0, 0x0, IID0)
            CreateDWordField(Arg0, 0x4, IID1)
            CreateDWordField(Arg0, 0x8, IID2)
            CreateDWordField(Arg0, 0xc, IID3)
            Name(UID0, Buffer(0x10) {0x5b, 0x4d, 0xdb, 0x33, 0xf7, 0x1f, 0x1c, 
0x40, 0x96, 0x57, 0x74, 0x41, 0xc0, 0x3d, 0xd7, 0x66 })
            CreateDWordField(UID0, 0x0, EID0)
            CreateDWordField(UID0, 0x4, EID1)
            CreateDWordField(UID0, 0x8, EID2)
            CreateDWordField(UID0, 0xc, EID3)
            If(LAnd(LAnd(LEqual(IID0, EID0), LEqual(IID1, EID1)), 
LAnd(LEqual(IID2, EID2), LEqual(IID3, EID3)))) {
                Store(CDW2, SUPP)
                Store(CDW3, CTRL)
                And(CTRL, 0x1d, CTRL)
                If(Not(And(CDW1, 0x1))) {
                    If(And(CTRL, 0x1)) {
                        If(LNot(\VIGD)) {
                            Store(0x0, \_SB_.PCI0.AGP_.HPGP)
                            Store(0x0, \_SB_.PCI0.AGP_.GMGP)
                        }
                        Store(0x0, \_SB_.PCI0.EXP3.HPCE)
                        Store(0x1, \_SB_.PCI0.EXP3.HPCS)
                        Store(0x1, \_SB_.PCI0.EXP3.ABP_)
                        Store(0x1, \_SB_.PCI0.EXP3.PDS_)
                        Store(0x1, \NHPS)
                    }
                    If(And(CTRL, 0x4)) {
                        If(LNot(\VIGD)) {
                            Store(0x0, \_SB_.PCI0.AGP_.PMGP)
                            Store(0x0, \_SB_.PCI0.AGP_.GMGP)
                        }
                        Store(0x0, \_SB_.PCI0.EXP3.PMCE)
                        Store(0x1, \_SB_.PCI0.EXP3.PMCS)
                        Store(0x0, \_SB_.PCI0.LPC_.EXPE)
                        Store(0x1, \NPME)
                    }
                }
                If(LNot(LEqual(Arg1, 0x1))) {
                    Or(CDW1, 0xa, CDW1)
                }
                If(LNot(LEqual(CDW3, CTRL))) {
                    Or(CDW1, 0x10, CDW1)
                }
                Store(CTRL, CDW3)
            }
            Else {
                Or(CDW1, 0x6, CDW1)
            }
            Return(Arg3)
        }
        Mutex(MDGS, 7)
        Name(VDEE, 0x1)
        Name(VDDA, Buffer(0x2) { })
        CreateBitField(VDDA, 0x0, VUPC)
        CreateBitField(VDDA, 0x1, VQDL)
        CreateBitField(VDDA, 0x2, VQDC)
        CreateBitField(VDDA, 0x3, VQD0)
        CreateBitField(VDDA, 0x4, VQD1)
        CreateBitField(VDDA, 0x5, VQD2)
        CreateBitField(VDDA, 0x6, VSDL)
        CreateBitField(VDDA, 0x7, VSDC)
        CreateBitField(VDDA, 0x8, VSD0)
        CreateBitField(VDDA, 0x9, VSD1)
        CreateBitField(VDDA, 0xa, VSD2)
        CreateBitField(VDDA, 0xb, MSWT)
        Name(VDPU, 0x0)
        Name(\VHCC, 0x0)
        Device(VID_) {
            Name(_ADR, 0x00020000)
            Name(RID_, 0x0)
            OperationRegion(VPCG, PCI_Config, 0x0, 0x0100)
            Field(VPCG, DWordAcc, NoLock, Preserve) {
                Offset(0xd4),
                VPWR,	8
            }
            Name(_S3D, 0x3)
            Method(_INI) {
                \VUPS(0x2)
                Store(\VCDL, VQDL)
                Store(\VCDC, VQDC)
                Store(\VCDT, VQD0)
                Store(\VCDT, VQD1)
                Store(\VCDD, VQD2)
            }
            Method(_PS0) {
                Noop
            }
            Method(_PS1) {
                Noop
            }
            Method(_PS2) {
                Noop
            }
            Method(_PS3) {
                Noop
            }
            Method(VSWT) {
                If(LNot(LEqual(NADL, 0x0))) {
                    Store(VAHL(NADL), Local1)
                }
                If(LNot(LEqual(NDL2, 0x0))) {
                    Or(VAHL(NDL2), Local1, Local1)
                }
                If(LNot(LEqual(NDL3, 0x0))) {
                    Or(VAHL(NDL3), Local1, Local1)
                }
                If(LNot(LEqual(NDL4, 0x0))) {
                    Or(VAHL(NDL4), Local1, Local1)
                }
                If(LNot(LEqual(NDL5, 0x0))) {
                    Or(VAHL(NDL5), Local1, Local1)
                }
                If(Local1) {
                    ASWT(Local1, 0x1)
                    GHDS(0x1)
                }
            }
            Method(VAHL, 1) {
                If(LEqual(And(Arg0, 0x0f0f), 0x0400)) {
                    Return(0x1)
                }
                If(LEqual(And(Arg0, 0x0f0f), 0x0100)) {
                    Return(0x2)
                }
                If(LEqual(And(Arg0, 0x0f0f), 0x0300)) {
                    Return(0x4)
                }
                If(LEqual(And(Arg0, 0x0f0f), 0x0301)) {
                    Return(0x8)
                }
                If(LEqual(And(Arg0, 0x0f0f), 0x0302)) {
                    Return(0x10)
                }
                Return(0x0)
            }
            Method(VCAD, 1) {
                Store(0x0, Local0)
                If(LEqual(And(DIDL, 0x0f0f), Arg0)) {
                    Store(0xd, Local0)
                }
                If(LEqual(And(DDL2, 0x0f0f), Arg0)) {
                    Store(0xd, Local0)
                }
                If(LEqual(And(DDL3, 0x0f0f), Arg0)) {
                    Store(0xd, Local0)
                }
                If(LEqual(And(DDL4, 0x0f0f), Arg0)) {
                    Store(0xd, Local0)
                }
                If(LEqual(And(DDL5, 0x0f0f), Arg0)) {
                    Store(0xd, Local0)
                }
                If(LEqual(And(CPDL, 0x0f0f), Arg0)) {
                    Or(0x10, Local0, Local0)
                }
                If(LEqual(And(CPL2, 0x0f0f), Arg0)) {
                    Or(0x10, Local0, Local0)
                }
                If(LEqual(And(CPL3, 0x0f0f), Arg0)) {
                    Or(0x10, Local0, Local0)
                }
                If(LEqual(And(CPL4, 0x0f0f), Arg0)) {
                    Or(0x10, Local0, Local0)
                }
                If(LEqual(And(CPL5, 0x0f0f), Arg0)) {
                    Or(0x10, Local0, Local0)
                }
                If(LEqual(And(CADL, 0x0f0f), Arg0)) {
                    Or(0x2, Local0, Local0)
                }
                If(LEqual(And(CAL2, 0x0f0f), Arg0)) {
                    Or(0x2, Local0, Local0)
                }
                If(LEqual(And(CAL3, 0x0f0f), Arg0)) {
                    Or(0x2, Local0, Local0)
                }
                If(LEqual(And(CAL4, 0x0f0f), Arg0)) {
                    Or(0x2, Local0, Local0)
                }
                If(LEqual(And(CAL5, 0x0f0f), Arg0)) {
                    Or(0x2, Local0, Local0)
                }
                Return(Local0)
            }
            Method(VLOC, 1) {
                If(LEqual(Arg0, \_SB_.LID_._LID())) {
                    \VSLD(Arg0)
                    If(LEqual(VPWR, 0x0)) {
                        If(Arg0) {
                            Store(\VEVT(0x1), Local0)
                        }
                        Else {
                            Store(\VEVT(0x2), Local0)
                            If(EXTD) {
                                Store(0x0, Local0)
                            }
                        }
                        And(0xf, Local0, Local1)
                        If(Local1) {
                            ASWT(Local1, 0x0)
                            Store(Arg0, CLID)
                            GNOT(0x2, 0x0)
                        }
                    }
                }
            }
            Method(_DOS, 1) {
                And(Arg0, 0x3, Arg0)
                If(LEqual(Arg0, 0x2)) {
                    Store(0x14, Local0)
                    While(Local0) {
                        Decrement(Local0)
                        Acquire(MDGS, 0xffff)
                        If(LEqual(0x0, MSWT)) {
                            Store(0x1, MSWT)
                            Store(0x0, Local0)
                            Store(Arg0, VDEE)
                        }
                        Release(MDGS)
                        Sleep(0xc8)
                    }
                }
                Else {
                    Acquire(MDGS, 0xffff)
                    If(LEqual(VDEE, 0x2)) {
                        Store(0x0, MSWT)
                    }
                    If(LGreater(Arg0, 0x2)) {
                        Store(0x1, VDEE)
                    }
                    Else {
                        Store(Arg0, VDEE)
                    }
                    Release(MDGS)
                }
            }
            Method(_DOD) {
                Store(0x0, NDID)
                If(LNot(LEqual(DIDL, 0x0))) {
                    Increment(NDID)
                }
                If(LNot(LEqual(DDL2, 0x0))) {
                    Increment(NDID)
                }
                If(LNot(LEqual(DDL3, 0x0))) {
                    Increment(NDID)
                }
                If(LNot(LEqual(DDL4, 0x0))) {
                    Increment(NDID)
                }
                If(LNot(LEqual(DDL5, 0x0))) {
                    Increment(NDID)
                }
                If(LEqual(NDID, 0x1)) {
                    Name(TMP1, Package(0x1) {
                        0xffffffff,
                    })
                    Store(Or(0x00010000, And(0x0f0f, DIDL)), Index(TMP1, 0x0))
                    Return(TMP1)
                }
                If(LEqual(NDID, 0x2)) {
                    Name(TMP2, Package(0x2) {
                        0xffffffff,
                        0xffffffff,
                    })
                    Store(Or(0x00010000, And(0x0f0f, DIDL)), Index(TMP2, 0x0))
                    Store(Or(0x00010000, And(0x0f0f, DDL2)), Index(TMP2, 0x1))
                    Return(TMP2)
                }
                If(LEqual(NDID, 0x3)) {
                    Name(TMP3, Package(0x3) {
                        0xffffffff,
                        0xffffffff,
                        0xffffffff,
                    })
                    Store(Or(0x00010000, And(0x0f0f, DIDL)), Index(TMP3, 0x0))
                    Store(Or(0x00010000, And(0x0f0f, DDL2)), Index(TMP3, 0x1))
                    Store(Or(0x00010000, And(0x0f0f, DDL3)), Index(TMP3, 0x2))
                    Return(TMP3)
                }
                If(LEqual(NDID, 0x4)) {
                    Name(TMP4, Package(0x4) {
                        0xffffffff,
                        0xffffffff,
                        0xffffffff,
                        0xffffffff,
                    })
                    Store(Or(0x00010000, And(0x0f0f, DIDL)), Index(TMP4, 0x0))
                    Store(Or(0x00010000, And(0x0f0f, DDL2)), Index(TMP4, 0x1))
                    Store(Or(0x00010000, And(0x0f0f, DDL3)), Index(TMP4, 0x2))
                    Store(Or(0x00010000, And(0x0f0f, DDL4)), Index(TMP4, 0x3))
                    Return(TMP4)
                }
                If(LGreater(NDID, 0x4)) {
                    Name(TMP5, Package(0x5) {
                        0xffffffff,
                        0xffffffff,
                        0xffffffff,
                        0xffffffff,
                        0xffffffff,
                    })
                    Store(Or(0x00010000, And(0x0f0f, DIDL)), Index(TMP5, 0x0))
                    Store(Or(0x00010000, And(0x0f0f, DDL2)), Index(TMP5, 0x1))
                    Store(Or(0x00010000, And(0x0f0f, DDL3)), Index(TMP5, 0x2))
                    Store(Or(0x00010000, And(0x0f0f, DDL4)), Index(TMP5, 0x3))
                    Store(Or(0x00010000, And(0x0f0f, DDL5)), Index(TMP5, 0x4))
                    Return(TMP5)
                }
                Return(Package(0x1) {
                    0x0400,
                })
            }
            Method(ASWT, 2) {
                If(LEqual(0x1, VDEE)) {
                    And(0x1, Arg1, Local1)
                    \VSDS(Arg0, Local1)
                }
                Else {
                    Store(0x14, Local0)
                    While(Local0) {
                        Decrement(Local0)
                        Acquire(MDGS, 0xffff)
                        If(LEqual(0x0, MSWT)) {
                            Store(0x0, Local0)
                            If(And(0x1, Arg1)) {
                                Store(0x1, VUPC)
                            }
                            Else {
                                Store(0x0, VUPC)
                            }
                            If(And(0x1, Arg0)) {
                                Store(0x1, VQDL)
                            }
                            Else {
                                Store(0x0, VQDL)
                            }
                            If(And(0x2, Arg0)) {
                                Store(0x1, VQDC)
                            }
                            Else {
                                Store(0x0, VQDC)
                            }
                            If(And(0x4, Arg0)) {
                                Store(0x1, VQD0)
                            }
                            Else {
                                Store(0x0, VQD0)
                            }
                            If(And(0x8, Arg0)) {
                                Store(0x1, VQD1)
                            }
                            Else {
                                Store(0x0, VQD1)
                            }
                            If(And(0x10, Arg0)) {
                                Store(0x1, VQD2)
                            }
                            Else {
                                Store(0x0, VQD2)
                            }
                        }
                        Release(MDGS)
                        Sleep(0xc8)
                    }
                }
            }
            Method(VDSW, 1) {
                If(LEqual(VPWR, 0x0)) {
                    If(Arg0) {
                        Store(0x0, VDPU)
                        Store(\VEVT(0x3), Local0)
                        And(0xf, Local0, Local1)
                        If(Local1) {
                            ASWT(Local1, 0x0)
                            GDCK(Arg0)
                        }
                    }
                    Else {
                        Store(0x1, VDPU)
                        Store(\VEVT(0x4), Local0)
                        ASWT(0x1, 0x0)
                        GDCK(Arg0)
                    }
                }
            }
            Method(VDSP) {
                If(LEqual(VPWR, 0x0)) {
                    If(LEqual(VDPU, 0x1)) {
                        Store(0x0, VDPU)
                        If(\_SB_.LID_._LID()) {
                            ASWT(0x1, 0x0)
                            GLID(0x1)
                        }
                    }
                }
            }
            Method(VSPD) {
                Store(\VEVT(0x6), Local0)
                And(0xf, Local0, Local1)
                If(Local1) {
                    ASWT(Local1, 0x1)
                    GHDS(0x0)
                }
            }
            Device(LCD0) {
                Name(_ADR, 0x0400)
                Method(_DCS) {
                    If(DRDY) {
                        Return(VCAD(0x0400))
                    }
                    Else {
                        \VUPS(0x0)
                        If(\VCDL) {
                            Return(0x1f)
                        }
                        Else {
                            Return(0x1d)
                        }
                    }
                }
                Method(_DGS) {
                    Return(VQDL)
                }
                Method(_DSS, 1) {
                    And(Arg0, 0x1, VSDL)
                    If(And(Arg0, 0x80000000)) {
                        If(And(Arg0, 0x40000000)) {
                            DSWT(0x2)
                        }
                        Else {
                            DSWT(0x1)
                        }
                    }
                }
            }
            Device(CRT0) {
                Name(_ADR, 0x0100)
                Method(_DCS) {
                    If(DRDY) {
                        Return(VCAD(0x0100))
                    }
                    Else {
                        \VUPS(0x1)
                        If(\VCSS) {
                            If(\VCDC) {
                                Return(0x1f)
                            }
                            Else {
                                Return(0x1d)
                            }
                        }
                        Else {
                            If(\VCDC) {
                                Return(0xf)
                            }
                            Else {
                                Return(0xd)
                            }
                        }
                    }
                }
                Method(_DGS) {
                    Return(VQDC)
                }
                Method(_DSS, 1) {
                    And(Arg0, 0x1, VSDC)
                    If(And(Arg0, 0x80000000)) {
                        If(And(Arg0, 0x40000000)) {
                            DSWT(0x2)
                        }
                        Else {
                            DSWT(0x1)
                        }
                    }
                }
            }
            Device(DVI0) {
                Name(_ADR, 0x0300)
                Method(_DCS) {
                    If(DRDY) {
                        Return(VCAD(0x0300))
                    }
                    Else {
                        \VUPS(0x0)
                        If(\VCDT) {
                            Return(0x1f)
                        }
                        Else {
                            Return(0x1d)
                        }
                    }
                }
                Method(_DGS) {
                    Return(VQD0)
                }
                Method(_DSS, 1) {
                    And(Arg0, 0x1, VSD0)
                    If(And(Arg0, 0x80000000)) {
                        If(And(Arg0, 0x40000000)) {
                            DSWT(0x2)
                        }
                        Else {
                            DSWT(0x1)
                        }
                    }
                }
            }
            Device(DVI1) {
                Name(_ADR, 0x0301)
                Method(_DCS) {
                    If(DRDY) {
                        Return(VCAD(0x0301))
                    }
                    Else {
                        \VUPS(0x0)
                        If(\VCDT) {
                            Return(0x1f)
                        }
                        Else {
                            Return(0x1d)
                        }
                    }
                }
                Method(_DGS) {
                    Return(VQD1)
                }
                Method(_DSS, 1) {
                    And(Arg0, 0x1, VSD1)
                    If(And(Arg0, 0x80000000)) {
                        If(And(Arg0, 0x40000000)) {
                            DSWT(0x2)
                        }
                        Else {
                            DSWT(0x1)
                        }
                    }
                }
            }
            Device(DVI2) {
                Name(_ADR, 0x0302)
                Method(_DCS) {
                    If(DRDY) {
                        Return(VCAD(0x0302))
                    }
                    Else {
                        \VUPS(0x0)
                        If(\VCDD) {
                            Return(0x1f)
                        }
                        Else {
                            Return(0x1d)
                        }
                    }
                }
                Method(_DGS) {
                    Return(VQD2)
                }
                Method(_DSS, 1) {
                    And(Arg0, 0x1, VSD2)
                    If(And(Arg0, 0x80000000)) {
                        If(And(Arg0, 0x40000000)) {
                            DSWT(0x2)
                        }
                        Else {
                            DSWT(0x1)
                        }
                    }
                }
            }
            Method(DSWT, 1) {
                If(VSDL) {
                    Store(0x1, Local0)
                }
                Else {
                    Store(0x0, Local0)
                }
                If(VSDC) {
                    Or(0x2, Local0, Local0)
                }
                If(VSD0) {
                    Or(0x4, Local0, Local0)
                }
                If(VSD1) {
                    Or(0x4, Local0, Local0)
                }
                If(VSD2) {
                    Or(0x8, Local0, Local0)
                }
                If(Local0) {
                    If(VUPC) {
                        \VSDS(Local0, Arg0)
                    }
                }
                Else {
                    Noop
                }
            }
            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,
                DDCV,	32,
                Offset(0x400),
                GVD1,	49152,
                PHED,	32,
                BDDC,	2048
            }
            Name(DBTB, Package(0x15) {
                0x0,
                0x7,
                0x38,
                0x01c0,
                0x0e00,
                0x3f,
                0x01c7,
                0x0e07,
                0x01f8,
                0x0e38,
                0x0fc0,
                0x0,
                0x0,
                0x0,
                0x0,
                0x0,
                0x7000,
                0x7007,
                0x7038,
                0x71c0,
                0x7e00,
            })
            Name(DBTC, Package(0x15) {
                0x0,
                0x2,
                0x1,
                0x8,
                0x0,
                0x3,
                0xa,
                0x0,
                0x9,
                0x0,
                0x0,
                0x0,
                0x0,
                0x0,
                0x0,
                0x0,
                0x4,
                0x6,
                0x5,
                0xc,
                0x0,
            })
            Name(CDCT, Package(0x5) {
                Package(0x2) {
                    0xe4,
                    0x0140,
                },
                Package(0x2) {
                    0xde,
                    0x014d,
                },
                Package(0x2) {
                    0xde,
                    0x014d,
                },
                Package(0x2) {
                    0x0,
                    0x0,
                },
                Package(0x2) {
                    0xde,
                    0x014d,
                },
            })
            Name(SUCC, 0x1)
            Name(NVLD, 0x2)
            Name(CRIT, 0x4)
            Name(NCRT, 0x6)
            Method(GSCI, 0, Serialized) {
                If(LEqual(GEFC, 0x4)) {
                    Store(GBDA(), GXFC)
                }
                If(LEqual(GEFC, 0x6)) {
                    Store(SBCB(), GXFC)
                }
                Store(0x0, GEFC)
                Store(0x1, \_SB_.PCI0.LPC_.SCIS)
                Store(0x0, GSSE)
                Store(0x0, SCIE)
                Return(Zero)
            }
            Method(GBDA, 0, Serialized) {
                If(LEqual(GESF, 0x0)) {
                    Store(0x0679, PARM)
                    Store(Zero, GESF)
                    Return(SUCC)
                }
                If(LEqual(GESF, 0x1)) {
                    Store(0x00010672, PARM)
                    Store(Zero, GESF)
                    Return(SUCC)
                }
                If(LEqual(GESF, 0x4)) {
                    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, 0x5)) {
                    If(\_SB_.LID_._LID()) {
                        Store(0x1, LIDS)
                    }
                    Else {
                        Store(0x0, LIDS)
                    }
                    Store(IPSC, PARM)
                    Add(PARM, 0x1, PARM)
                    Add(PARM, 0x0300, PARM)
                    Add(PARM, 0x00010000, PARM)
                    Or(PARM, ShiftLeft(LIDS, 0x10), PARM)
                    Or(PARM, ShiftLeft(IBIA, 0x14), PARM)
                    Store(Zero, GESF)
                    Return(SUCC)
                }
                If(LEqual(GESF, 0x6)) {
                    Store(ITVF, PARM)
                    Or(PARM, ShiftLeft(ITVM, 0x4), PARM)
                    Store(Zero, GESF)
                    Return(SUCC)
                }
                If(LEqual(GESF, 0x7)) {
                    Store(GIVD, PARM)
                    XOr(PARM, 0x1, PARM)
                    Or(PARM, ShiftLeft(GMFN, 0x1), PARM)
                    Or(PARM, ShiftLeft(0x3, 0xb), PARM)
                    Or(PARM, ShiftLeft(IDMS, 0x11), PARM)
                    Or(ShiftLeft(DerefOf(Index(DerefOf(Index(CDCT, HVCO)), 
CDVL)), 0x15), PARM, PARM)
                    Store(0x1, GESF)
                    Return(SUCC)
                }
                If(LEqual(GESF, 0xa)) {
                    Store(0x0, PARM)
                    If(ISSC) {
                        Or(PARM, ISSC, PARM)
                        Or(PARM, 0x00640000, PARM)
                    }
                    Store(0x0, GESF)
                    Return(SUCC)
                }
                If(LEqual(GESF, 0xb)) {
                    Store(KSV0, PARM)
                    Store(KSV1, GESF)
                    Return(SUCC)
                }
                Store(Zero, GESF)
                Return(CRIT)
            }
            Name(DSFS, 0x0)
            Name(EXTD, 0x0)
            Method(SBCB, 0, Serialized) {
                If(LEqual(GESF, 0x0)) {
                    Store(0x8339, PARM)
                    Store(Zero, GESF)
                    Return(SUCC)
                }
                If(LEqual(GESF, 0x1)) {
                    Store(Zero, GESF)
                    Store(Zero, PARM)
                    Return(SUCC)
                }
                If(LEqual(GESF, 0x3)) {
                    Store(Zero, GESF)
                    Store(Zero, PARM)
                    Return(SUCC)
                }
                If(LEqual(GESF, 0x4)) {
                    And(PARM, 0xffff, PARM)
                    If(LGreater(PARM, 0x13)) {
                        Store(0x0, DSFS)
                    }
                    Else {
                        Store(0x1, DSFS)
                    }
                    Store(Zero, GESF)
                    Store(Zero, PARM)
                    Return(SUCC)
                }
                If(LEqual(GESF, 0x5)) {
                    Store(Zero, GESF)
                    Store(Zero, PARM)
                    Return(SUCC)
                }
                If(LEqual(GESF, 0x6)) {
                    Store(And(PARM, 0xf), ITVF)
                    Store(ShiftRight(And(PARM, 0xf0), 0x4), ITVM)
                    \UCMS(0x19)
                    Store(Zero, GESF)
                    Store(Zero, PARM)
                    Return(SUCC)
                }
                If(LEqual(GESF, 0x7)) {
                    Store(Zero, GESF)
                    Store(Zero, PARM)
                    Return(SUCC)
                }
                If(LEqual(GESF, 0x8)) {
                    Store(Zero, GESF)
                    Store(Zero, PARM)
                    Return(SUCC)
                }
                If(LEqual(GESF, 0x9)) {
                    And(PARM, 0x80000000, EXTD)
                    And(PARM, 0xff, Local0)
                    If(LNot(LGreater(Local0, 0x14))) {
                        Store(DerefOf(Index(DBTC, Local0)), IBTT)
                    }
                    Else {
                        Store(0x0, IBTT)
                    }
                    If(IBTT) {
                        \UCMS(0x17)
                    }
                    And(PARM, 0xff, IBTT)
                    Store(Zero, GESF)
                    Store(Zero, PARM)
                    Return(SUCC)
                }
                If(LEqual(GESF, 0xa)) {
                    Store(Subtract(And(PARM, 0x3), 0x1), IPSC)
                    \UCMS(0x1a)
                    If(And(ShiftRight(PARM, 0x8), 0xff)) {
                        And(ShiftRight(PARM, 0x8), 0xff, IPAT)
                        Decrement(IPAT)
                    }
                    And(ShiftRight(PARM, 0x14), 0x7, IBIA)
                    Store(Zero, GESF)
                    Store(Zero, PARM)
                    Return(SUCC)
                }
                If(LEqual(GESF, 0xb)) {
                    And(ShiftRight(PARM, 0x1), 0x1, IF1E)
                    If(And(PARM, ShiftLeft(0xf, 0xd))) {
                        And(ShiftRight(PARM, 0xd), 0xf, IDMS)
                        Store(0x0, IDMM)
                    }
                    Else {
                        And(ShiftRight(PARM, 0x11), 0xf, IDMS)
                        Store(0x1, IDMM)
                    }
                    Store(Zero, GESF)
                    Store(Zero, PARM)
                    Return(SUCC)
                }
                If(LEqual(GESF, 0x10)) {
                    And(PARM, 0x1, PARM)
                    XOr(PARM, 0x1, PARM)
                    Store(PARM, DSFS)
                    Store(Zero, GESF)
                    Store(Zero, PARM)
                    Return(SUCC)
                }
                If(LEqual(GESF, 0x11)) {
                    Store(ShiftLeft(LIDS, 0x8), PARM)
                    Add(PARM, 0x0100, PARM)
                    Store(Zero, GESF)
                    Return(SUCC)
                }
                If(LEqual(GESF, 0x12)) {
                    If(And(PARM, 0x1)) {
                        If(LEqual(ShiftRight(PARM, 0x1), 0x1)) {
                            Store(0x1, ISSC)
                        }
                        Else {
                            Store(Zero, GESF)
                            Return(CRIT)
                        }
                    }
                    Else {
                        Store(0x0, 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, 0xf, PAVP)
                    Store(Zero, GESF)
                    Store(Zero, PARM)
                    Return(SUCC)
                }
                Store(Zero, GESF)
                Return(SUCC)
            }
            Method(PDRD) {
                If(LNot(DRDY)) {
                    Sleep(ASLP)
                }
                Return(LNot(DRDY))
            }
            Method(PSTS) {
                If(LGreater(CSTS, 0x2)) {
                    Sleep(ASLP)
                }
                Return(LEqual(CSTS, 0x3))
            }
            Method(GNOT, 2) {
                If(PDRD()) {
                    Return(0x1)
                }
                Store(Arg0, CEVT)
                Store(0x3, CSTS)
                If(LAnd(LEqual(CHPD, 0x0), LEqual(Arg1, 0x0))) {
                    If(LNot(LEqual(Arg0, 0x1))) {
                        If(LAnd(\WXPF, LNot(\WVIS))) {
                            Notify(\_SB_.PCI0, Arg1)
                        }
                        Else {
                            Notify(\_SB_.PCI0.VID_, Arg1)
                        }
                    }
                }
                Notify(\_SB_.PCI0.VID_, 0x80)
                Return(0x0)
            }
            Method(GHDS, 1) {
                Store(Arg0, TIDX)
                Return(GNOT(0x1, 0x0))
            }
            Method(GLID, 1) {
                Store(Arg0, CLID)
                Return(GNOT(0x2, 0x0))
            }
            Method(GLIS, 1) {
                Store(Arg0, CLID)
                Return(0x0)
            }
            Method(GDCK, 1) {
                Store(Arg0, CDCK)
                Return(GNOT(0x4, 0x80))
            }
            Method(GDCS, 1) {
                Store(Arg0, CDCK)
            }
            Method(PARD) {
                If(LNot(ARDY)) {
                    Sleep(ASLP)
                }
                Return(LNot(ARDY))
            }
            Method(AINT, 2) {
                If(LNot(And(TCHE, ShiftLeft(0x1, Arg0)))) {
                    Return(0x1)
                }
                If(PARD()) {
                    Return(0x1)
                }
                If(LEqual(Arg0, 0x2)) {
                    XOr(PFIT, 0x7, PFIT)
                    Or(PFIT, 0x80000000, PFIT)
                    Store(0x4, ASLC)
                }
                Else {
                    If(LEqual(Arg0, 0x1)) {
                        Store(Arg1, BCLP)
                        Or(BCLP, 0x80000000, BCLP)
                        Store(0xa, ASLC)
                    }
                    Else {
                        If(LEqual(Arg0, 0x3)) {
                            Store(Arg1, PFMB)
                            Or(PFMB, 0x80000100, PFMB)
                        }
                        Else {
                            If(LEqual(Arg0, 0x0)) {
                                Store(Arg1, ALSI)
                                Store(0x1, ASLC)
                            }
                            Else {
                                Return(0x1)
                            }
                        }
                    }
                }
                Store(0x0, LBPC)
                Return(0x0)
            }
            Name(ATPB, Buffer(0x0100) { })
            CreateWordField(ATPB, 0x0, SSZE)
            CreateWordField(ATPB, 0x2, VERN)
            CreateDWordField(ATPB, 0x2, VMSK)
            CreateDWordField(ATPB, 0x4, SFUN)
            CreateDWordField(ATPB, 0x6, FLGS)
            Method(ATPX, 2) {
                If(LEqual(Arg0, 0x0)) {
                    Store(0x8, SSZE)
                    Store(0x1, VERN)
                    Store(0xf, SFUN)
                    Return(ATPB)
                }
                If(LEqual(Arg0, 0x1)) {
                    Store(0xa, SSZE)
                    Store(0xf, VMSK)
                    Store(0x8, FLGS)
                    Return(ATPB)
                }
                If(LEqual(Arg0, 0x2)) {
                    CreateByteField(Arg1, 0x2, PWST)
                    Store(PWST, Local0)
                    And(Local0, 0x1, Local0)
                    If(Local0) {
                        \VHYB(0x2, 0x0)
                        \VHYB(0x0, 0x1)
                        Sleep(0x32)
                        \VHYB(0x2, 0x1)
                        Sleep(0xc8)
                        \SWTT(0x1)
                        \VHYB(0x4, 0x0)
                    }
                    Else {
                        \SWTT(0x0)
                        \VHYB(0x2, 0x0)
                        \VHYB(0x0, 0x0)
                    }
                }
                If(LEqual(Arg0, 0x3)) {
                    CreateWordField(Arg1, 0x2, DMUX)
                    Store(DMUX, Local0)
                    And(Local0, 0x1, Local0)
                    \VHYB(0x1, Local0)
                    Store(XOr(Local0, 0x1), VIGD)
                }
                If(LEqual(Arg0, 0x4)) {
                    CreateByteField(Arg1, 0x2, MI2C)
                    Store(MI2C, Local0)
                    And(Local0, 0x1, Local0)
                }
            }
            OperationRegion(ATRP, SystemMemory, \ATRB, 0x00010000)
            Field(ATRP, AnyAcc, Lock, Preserve) {
                IDX0,	262144,
                IDX1,	262144
            }
            Method(ATRM, 2, Serialized) {
                If(LNot(LLess(Arg0, 0x8000))) {
                    Return(GETB(Subtract(Arg0, 0x8000), Arg1, IDX1))
                }
                If(LGreater(Add(Arg0, Arg1), 0x8000)) {
                    Subtract(0x8000, Arg0, Local0)
                    Subtract(Arg1, Local0, Local1)
                    Store(GETB(Arg0, Local0, IDX0), Local3)
                    Store(GETB(0x0, Local1, IDX1), Local4)
                    Concatenate(Local3, Local4, Local5)
                    Return(Local5)
                }
                Return(GETB(Arg0, Arg1, IDX0))
            }
            Method(GETB, 3, Serialized) {
                Multiply(Arg0, 0x8, Local0)
                Multiply(Arg1, 0x8, Local1)
                CreateField(Arg2, Local0, Local1, TBF3)
                Return(TBF3)
            }
            CreateDWordField(ATPB, 0x4, SNTF)
            CreateDWordField(ATPB, 0x6, IFLG)
            CreateDWordField(ATPB, 0x8, ISFN)
            CreateWordField(ATPB, 0xa, IFPW)
            Name(SWRL, Buffer(0x7) {0x1, 0x2, 0x3, 0x80, 0x81, 0x8, 0x9 })
            Method(ATIF, 2) {
                If(LEqual(Arg0, 0x0)) {
                    Store(0xc, SSZE)
                    Store(0x1, VERN)
                    Store(0x1, SNTF)
                    Store(0x7, ISFN)
                    Return(ATPB)
                }
                If(LEqual(Arg0, 0x1)) {
                    Store(0xa, SSZE)
                    Store(0x3, VMSK)
                    Store(0x1, IFLG)
                    Return(ATPB)
                }
                If(LEqual(Arg0, 0x2)) {
                    Store(0xc, SSZE)
                    Store(0x1, VMSK)
                    Store(0x0, IFLG)
                    Store(0x0, IFPW)
                    Return(ATPB)
                }
                If(LEqual(Arg0, 0x3)) {
                    CreateWordField(Arg1, 0x2, SELD)
                    CreateWordField(Arg1, 0x4, COND)
                    Store(0x7, Local1)
                    Store(0x0, Local3)
                    While(Local1) {
                        Decrement(Local1)
                        Store(DerefOf(Index(SWRL, Local1)), Local2)
                        If(LEqual(SELD, Local2)) {
                            Store(0x1, Local3)
                            Break
                        }
                    }
                    If(LEqual(0x0, Local3)) {
                        Store(0x6, Local1)
                    }
                    Store(0x1, Local0)
                    Store(0x6, Local3)
                    Store(COND, Local4)
                    If(\_SB_.LID_._LID()) {
                        Increment(Local4)
                    }
                    While(Local3) {
                        Decrement(Local3)
                        Increment(Local1)
                        If(LNot(LLess(Local1, 0x7))) {
                            Store(0x0, Local1)
                        }
                        Store(DerefOf(Index(SWRL, Local1)), Local2)
                        If(LEqual(And(Local4, Local2), Local2)) {
                            Store(Local2, Local0)
                            Break
                        }
                    }
                    Store(0x4, SSZE)
                    Store(Local0, VERN)
                    Return(ATPB)
                }
            }
        }
        Device(AGP_) {
            Name(_ADR, 0x00010000)
            Name(_S3D, 0x3)
            Name(RID_, 0x0)
            Name(LART, Package(0x2) {
                Package(0x4) {
                    0xffff,
                    0x0,
                    \_SB_.LNKA,
                    0x0,
                },
                Package(0x4) {
                    0xffff,
                    0x1,
                    \_SB_.LNKB,
                    0x0,
                },
            })
            Name(AART, Package(0x2) {
                Package(0x4) {
                    0xffff,
                    0x0,
                    0x0,
                    0x10,
                },
                Package(0x4) {
                    0xffff,
                    0x1,
                    0x0,
                    0x11,
                },
            })
            Method(_PRT) {
                If(\GPIC) {
                    Return(AART)
                }
                Else {
                    Return(LART)
                }
            }
            Mutex(MDGS, 7)
            Name(VDEE, 0x1)
            Name(VDDA, Buffer(0x2) { })
            CreateBitField(VDDA, 0x0, VUPC)
            CreateBitField(VDDA, 0x1, VQDL)
            CreateBitField(VDDA, 0x2, VQDC)
            CreateBitField(VDDA, 0x3, VQDT)
            CreateBitField(VDDA, 0x4, VQDD)
            CreateBitField(VDDA, 0x5, VSDL)
            CreateBitField(VDDA, 0x6, VSDC)
            CreateBitField(VDDA, 0x7, VSDT)
            CreateBitField(VDDA, 0x8, VSDD)
            CreateBitField(VDDA, 0xa, MSWT)
            CreateBitField(VDDA, 0xb, VWST)
            Device(VID_) {
                Name(_ADR, 0x0)
                OperationRegion(VPCG, PCI_Config, 0x0, 0x0100)
                Field(VPCG, DWordAcc, NoLock, Preserve) {
                    Offset(0x54),
                    VPWR,	8
                }
                Name(_S3D, 0x3)
                Method(_INI) {
                    \VUPS(0x2)
                    Store(\VCDL, VQDL)
                    Store(\VCDC, VQDC)
                    Store(\VCDT, VQDT)
                    Store(\VCDD, VQDD)
                }
                Method(_PS0) {
                    Noop
                }
                Method(_PS1) {
                    Noop
                }
                Method(_PS2) {
                    Noop
                }
                Method(_PS3) {
                    Noop
                }
                Method(VSWT) {
                    If(\WVIS) {
                        If(LEqual(\VHYB(0x3, 0x0), 0x3)) {
                            Notify(\_SB_.PCI0.VID_, 0x81)
                            Store(0x0, Local0)
                        }
                        Else {
                            Store(\VEVT(0x7), Local0)
                        }
                    }
                    Else {
                        Store(\VEVT(0x5), Local0)
                    }
                    And(0xf, Local0, Local1)
                    If(Local1) {
                        ASWT(Local1, 0x1)
                    }
                }
                Method(VLOC, 1) {
                    If(LEqual(Arg0, \_SB_.LID_._LID())) {
                        \VSLD(Arg0)
                        If(LEqual(VPWR, 0x0)) {
                            If(Arg0) {
                                Store(\VEVT(0x1), Local0)
                            }
                            Else {
                                Store(\VEVT(0x2), Local0)
                            }
                            And(0xf, Local0, Local1)
                            If(Local1) {
                                ASWT(Local1, 0x0)
                            }
                        }
                    }
                }
                Method(_DOS, 1) {
                    If(LEqual(Arg0, 0x2)) {
                        Store(0x14, Local0)
                        While(Local0) {
                            Decrement(Local0)
                            Acquire(MDGS, 0xffff)
                            If(LEqual(0x0, MSWT)) {
                                Store(0x1, MSWT)
                                Store(0x0, Local0)
                                Store(Arg0, VDEE)
                            }
                            Release(MDGS)
                            Sleep(0xc8)
                        }
                    }
                    Else {
                        Acquire(MDGS, 0xffff)
                        If(LEqual(VDEE, 0x2)) {
                            Store(0x0, MSWT)
                        }
                        If(LGreater(Arg0, 0x2)) {
                            Store(0x1, VDEE)
                        }
                        Else {
                            Store(Arg0, VDEE)
                        }
                        Release(MDGS)
                    }
                }
                Method(_DOD) {
                    Return(Package(0x4) {
                        0x0100,
                        0x0210,
                        0x0220,
                        0x0110,
                    })
                }
                Method(ASWT, 2) {
                    If(LEqual(0x1, VDEE)) {
                        And(0x1, Arg1, Local1)
                        \VSDS(Arg0, Local1)
                    }
                    Else {
                        Store(0x14, Local0)
                        While(Local0) {
                            Decrement(Local0)
                            Acquire(MDGS, 0xffff)
                            If(LEqual(0x0, MSWT)) {
                                Store(0x0, Local0)
                                If(And(0x1, Arg1)) {
                                    Store(0x1, VUPC)
                                }
                                Else {
                                    Store(0x0, VUPC)
                                }
                                If(And(0x1, Arg0)) {
                                    Store(0x1, VQDL)
                                }
                                Else {
                                    Store(0x0, VQDL)
                                }
                                If(And(0x2, Arg0)) {
                                    Store(0x1, VQDC)
                                }
                                Else {
                                    Store(0x0, VQDC)
                                }
                                If(And(0x4, Arg0)) {
                                    Store(0x1, VQDT)
                                }
                                Else {
                                    Store(0x0, VQDT)
                                }
                                If(And(0x8, Arg0)) {
                                    Store(0x1, VQDD)
                                }
                                Else {
                                    Store(0x0, VQDD)
                                }
                            }
                            Release(MDGS)
                            Sleep(0xc8)
                        }
                        If(And(0x2, Arg1)) {
                            Notify(VID_, 0x81)
                        }
                        Else {
                            Notify(VID_, 0x80)
                        }
                    }
                }
                Method(VDSW, 1) {
                    If(LEqual(VPWR, 0x0)) {
                        If(Arg0) {
                            Store(\VEVT(0x3), Local0)
                        }
                        Else {
                            Store(\VEVT(0x4), Local0)
                        }
                        And(0xf, Local0, Local1)
                        If(Local1) {
                            ASWT(Local1, 0x0)
                        }
                    }
                }
                Device(LCD0) {
                    Name(_ADR, 0x0110)
                    Method(_DCS) {
                        \VUPS(0x0)
                        If(\VCDL) {
                            Return(0x1f)
                        }
                        Else {
                            Return(0x1d)
                        }
                    }
                    Method(_DGS) {
                        Return(VQDL)
                    }
                    Method(_DSS, 1) {
                        And(Arg0, 0x1, VSDL)
                        If(And(Arg0, 0x80000000)) {
                            If(And(Arg0, 0x40000000)) {
                                DSWT(0x2)
                            }
                            Else {
                                DSWT(0x1)
                            }
                        }
                    }
                }
                Device(CRT0) {
                    Name(_ADR, 0x0100)
                    Method(_DCS) {
                        \VUPS(0x1)
                        If(\VCSS) {
                            If(\VCDC) {
                                Return(0x1f)
                            }
                            Else {
                                Return(0x1d)
                            }
                        }
                        Else {
                            If(\VCDC) {
                                Return(0xf)
                            }
                            Else {
                                Return(0xd)
                            }
                        }
                    }
                    Method(_DGS) {
                        Return(VQDC)
                    }
                    Method(_DSS, 1) {
                        And(Arg0, 0x1, VSDC)
                        If(And(Arg0, 0x80000000)) {
                            If(And(Arg0, 0x40000000)) {
                                DSWT(0x2)
                            }
                            Else {
                                DSWT(0x1)
                            }
                        }
                    }
                }
                Device(DVI0) {
                    Name(_ADR, 0x0210)
                    Method(_DCS) {
                        \VUPS(0x0)
                        If(\VCDD) {
                            Return(0x1f)
                        }
                        Else {
                            Return(0x1d)
                        }
                    }
                    Method(_DGS) {
                        Return(VQDD)
                    }
                    Method(_DSS, 1) {
                        And(Arg0, 0x1, VSDD)
                        If(And(Arg0, 0x80000000)) {
                            If(And(Arg0, 0x40000000)) {
                                DSWT(0x2)
                            }
                            Else {
                                DSWT(0x1)
                            }
                        }
                    }
                }
                Device(DP0_) {
                    Name(_ADR, 0x0220)
                    Method(_DCS) {
                        \VUPS(0x0)
                        If(\VCDT) {
                            Return(0x1f)
                        }
                        Else {
                            Return(0x1d)
                        }
                    }
                    Method(_DGS) {
                        Return(VQDT)
                    }
                    Method(_DSS, 1) {
                        And(Arg0, 0x1, VSDT)
                        If(And(Arg0, 0x80000000)) {
                            If(And(Arg0, 0x40000000)) {
                                DSWT(0x2)
                            }
                            Else {
                                DSWT(0x1)
                            }
                        }
                    }
                }
                Method(DSWT, 1) {
                    If(VSDL) {
                        Store(0x1, Local0)
                    }
                    Else {
                        Store(0x0, Local0)
                    }
                    If(VSDC) {
                        Or(0x2, Local0, Local0)
                    }
                    If(VSDD) {
                        Or(0x8, Local0, Local0)
                    }
                    If(Local0) {
                        If(VUPC) {
                            \VSDS(Local0, Arg0)
                        }
                    }
                    Else {
                        Noop
                    }
                }
            }
            OperationRegion(PEGC, PCI_Config, 0x0, 0x0100)
            Field(PEGC, DWordAcc, NoLock, Preserve) {
                Offset(0xec),
                GMGP,	1,
                HPGP,	1,
                PMGP,	1
            }
        }
        Device(IGBE) {
            Name(_ADR, 0x00190000)
            Name(_S3D, 0x3)
            Name(RID_, 0x0)
            Name(_PRW, Package(0x2) {
                0xd,
                0x4,
            })
        }
        Device(EXP0) {
            Name(_ADR, 0x001c0000)
            Name(RID_, 0x0)
            OperationRegion(P0CS, PCI_Config, 0x0, 0x0100)
            Field(P0CS, DWordAcc, NoLock, Preserve) {
                Offset(0x60),
                RID0,	16,
                PSP0,	1,
                PPP0,	1
            }
            Name(_PRW, Package(0x2) {
                0x9,
                0x4,
            })
            Name(LPRT, Package(0x4) {
                Package(0x4) {
                    0xffff,
                    0x0,
                    \_SB_.LNKA,
                    0x0,
                },
                Package(0x4) {
                    0xffff,
                    0x1,
                    \_SB_.LNKB,
                    0x0,
                },
                Package(0x4) {
                    0xffff,
                    0x2,
                    \_SB_.LNKC,
                    0x0,
                },
                Package(0x4) {
                    0xffff,
                    0x3,
                    \_SB_.LNKD,
                    0x0,
                },
            })
            Name(APRT, Package(0x4) {
                Package(0x4) {
                    0xffff,
                    0x0,
                    0x0,
                    0x10,
                },
                Package(0x4) {
                    0xffff,
                    0x1,
                    0x0,
                    0x11,
                },
                Package(0x4) {
                    0xffff,
                    0x2,
                    0x0,
                    0x12,
                },
                Package(0x4) {
                    0xffff,
                    0x3,
                    0x0,
                    0x13,
                },
            })
            Method(_PRT) {
                If(\GPIC) {
                    Return(APRT)
                }
                Else {
                    Return(LPRT)
                }
            }
        }
        Device(EXP1) {
            Name(_ADR, 0x001c0001)
            Name(RID_, 0x0)
            OperationRegion(P1CS, PCI_Config, 0x0, 0x0100)
            Field(P1CS, DWordAcc, NoLock, Preserve) {
                Offset(0x60),
                RID1,	16,
                PSP1,	1,
                PPP1,	1
            }
            Name(_PRW, Package(0x2) {
                0x9,
                0x4,
            })
            Name(LPRT, Package(0x4) {
                Package(0x4) {
                    0xffff,
                    0x0,
                    \_SB_.LNKB,
                    0x0,
                },
                Package(0x4) {
                    0xffff,
                    0x1,
                    \_SB_.LNKC,
                    0x0,
                },
                Package(0x4) {
                    0xffff,
                    0x2,
                    \_SB_.LNKD,
                    0x0,
                },
                Package(0x4) {
                    0xffff,
                    0x3,
                    \_SB_.LNKA,
                    0x0,
                },
            })
            Name(APRT, Package(0x4) {
                Package(0x4) {
                    0xffff,
                    0x0,
                    0x0,
                    0x11,
                },
                Package(0x4) {
                    0xffff,
                    0x1,
                    0x0,
                    0x12,
                },
                Package(0x4) {
                    0xffff,
                    0x2,
                    0x0,
                    0x13,
                },
                Package(0x4) {
                    0xffff,
                    0x3,
                    0x0,
                    0x10,
                },
            })
            Method(_PRT) {
                If(\GPIC) {
                    Return(APRT)
                }
                Else {
                    Return(LPRT)
                }
            }
        }
        Device(EXP2) {
            Name(_ADR, 0x001c0002)
            Name(RID_, 0x0)
            OperationRegion(P2CS, PCI_Config, 0x0, 0x0100)
            Field(P2CS, DWordAcc, NoLock, Preserve) {
                Offset(0x60),
                RID2,	16,
                PSP2,	1,
                PPP2,	1
            }
            Name(_PRW, Package(0x2) {
                0x9,
                0x4,
            })
            Name(LPRT, Package(0x4) {
                Package(0x4) {
                    0xffff,
                    0x0,
                    \_SB_.LNKC,
                    0x0,
                },
                Package(0x4) {
                    0xffff,
                    0x1,
                    \_SB_.LNKD,
                    0x0,
                },
                Package(0x4) {
                    0xffff,
                    0x2,
                    \_SB_.LNKA,
                    0x0,
                },
                Package(0x4) {
                    0xffff,
                    0x3,
                    \_SB_.LNKB,
                    0x0,
                },
            })
            Name(APRT, Package(0x4) {
                Package(0x4) {
                    0xffff,
                    0x0,
                    0x0,
                    0x12,
                },
                Package(0x4) {
                    0xffff,
                    0x1,
                    0x0,
                    0x13,
                },
                Package(0x4) {
                    0xffff,
                    0x2,
                    0x0,
                    0x10,
                },
                Package(0x4) {
                    0xffff,
                    0x3,
                    0x0,
                    0x11,
                },
            })
            Method(_PRT) {
                If(\GPIC) {
                    Return(APRT)
                }
                Else {
                    Return(LPRT)
                }
            }
        }
        Device(EXP3) {
            Name(_ADR, 0x001c0003)
            Name(RID_, 0x0)
            Name(XCPF, 0x0)
            OperationRegion(P3CS, PCI_Config, 0x0, 0x0100)
            Field(P3CS, DWordAcc, NoLock, Preserve) {
                Offset(0x5a),
                ABP_,	1,
                ,	2,
                PDC_,	1,
                ,	2,
                PDS_,	1,
                Offset(0x5b),
                Offset(0x60),
                RID3,	16,
                PSP3,	1,
                PPP3,	1,
                Offset(0xdb),
                ,	6,
                HPCE,	1,
                PMCE,	1,
                Offset(0xdf),
                ,	6,
                HPCS,	1,
                PMCS,	1
            }
            Name(_PRW, Package(0x2) {
                0x9,
                0x4,
            })
            Name(LPRT, Package(0x4) {
                Package(0x4) {
                    0xffff,
                    0x0,
                    \_SB_.LNKD,
                    0x0,
                },
                Package(0x4) {
                    0xffff,
                    0x1,
                    \_SB_.LNKA,
                    0x0,
                },
                Package(0x4) {
                    0xffff,
                    0x2,
                    \_SB_.LNKB,
                    0x0,
                },
                Package(0x4) {
                    0xffff,
                    0x3,
                    \_SB_.LNKC,
                    0x0,
                },
            })
            Name(APRT, Package(0x4) {
                Package(0x4) {
                    0xffff,
                    0x0,
                    0x0,
                    0x13,
                },
                Package(0x4) {
                    0xffff,
                    0x1,
                    0x0,
                    0x10,
                },
                Package(0x4) {
                    0xffff,
                    0x2,
                    0x0,
                    0x11,
                },
                Package(0x4) {
                    0xffff,
                    0x3,
                    0x0,
                    0x12,
                },
            })
            Method(_PRT) {
                If(\GPIC) {
                    Return(APRT)
                }
                Else {
                    Return(LPRT)
                }
            }
            Device(EXUP) {
                Name(_ADR, 0x0)
                Method(_RMV) {
                    Return(0x1)
                }
            }
        }
        Device(EXP4) {
            Name(_ADR, 0x001c0004)
            Name(RID_, 0x0)
            OperationRegion(P4CS, PCI_Config, 0x0, 0x0100)
            Field(P4CS, DWordAcc, NoLock, Preserve) {
                Offset(0x60),
                RID4,	16,
                PSP4,	1,
                PPP4,	1,
                Offset(0xdf),
                ,	6,
                HPS4,	1,
                PMS4,	1
            }
            Name(_PRW, Package(0x2) {
                0x9,
                0x4,
            })
            Name(LPRT, Package(0x4) {
                Package(0x4) {
                    0xffff,
                    0x0,
                    \_SB_.LNKA,
                    0x0,
                },
                Package(0x4) {
                    0xffff,
                    0x1,
                    \_SB_.LNKB,
                    0x0,
                },
                Package(0x4) {
                    0xffff,
                    0x2,
                    \_SB_.LNKC,
                    0x0,
                },
                Package(0x4) {
                    0xffff,
                    0x3,
                    \_SB_.LNKD,
                    0x0,
                },
            })
            Name(APRT, Package(0x4) {
                Package(0x4) {
                    0xffff,
                    0x0,
                    0x0,
                    0x10,
                },
                Package(0x4) {
                    0xffff,
                    0x1,
                    0x0,
                    0x11,
                },
                Package(0x4) {
                    0xffff,
                    0x2,
                    0x0,
                    0x12,
                },
                Package(0x4) {
                    0xffff,
                    0x3,
                    0x0,
                    0x13,
                },
            })
            Method(_PRT) {
                If(\GPIC) {
                    Return(APRT)
                }
                Else {
                    Return(LPRT)
                }
            }
            Device(EXPD) {
                Name(_ADR, 0x0)
            }
        }
        Device(PCI1) {
            Name(_ADR, 0x001e0000)
            Name(_S3D, 0x2)
            Name(RID_, 0x0)
            Name(LPRT, Package(0x8) {
                Package(0x4) {
                    0xffff,
                    0x0,
                    \_SB_.LNKA,
                    0x0,
                },
                Package(0x4) {
                    0xffff,
                    0x1,
                    \_SB_.LNKB,
                    0x0,
                },
                Package(0x4) {
                    0xffff,
                    0x2,
                    \_SB_.LNKC,
                    0x0,
                },
                Package(0x4) {
                    0xffff,
                    0x3,
                    \_SB_.LNKD,
                    0x0,
                },
                Package(0x4) {
                    0x0001ffff,
                    0x0,
                    \_SB_.LNKA,
                    0x0,
                },
                Package(0x4) {
                    0x0002ffff,
                    0x0,
                    \_SB_.LNKF,
                    0x0,
                },
                Package(0x4) {
                    0x0002ffff,
                    0x1,
                    \_SB_.LNKG,
                    0x0,
                },
                Package(0x4) {
                    0x0008ffff,
                    0x0,
                    \_SB_.LNKE,
                    0x0,
                },
            })
            Name(APRT, Package(0x8) {
                Package(0x4) {
                    0xffff,
                    0x0,
                    0x0,
                    0x10,
                },
                Package(0x4) {
                    0xffff,
                    0x1,
                    0x0,
                    0x11,
                },
                Package(0x4) {
                    0xffff,
                    0x2,
                    0x0,
                    0x12,
                },
                Package(0x4) {
                    0xffff,
                    0x3,
                    0x0,
                    0x13,
                },
                Package(0x4) {
                    0x0001ffff,
                    0x0,
                    0x0,
                    0x10,
                },
                Package(0x4) {
                    0x0002ffff,
                    0x0,
                    0x0,
                    0x15,
                },
                Package(0x4) {
                    0x0002ffff,
                    0x1,
                    0x0,
                    0x16,
                },
                Package(0x4) {
                    0x0008ffff,
                    0x0,
                    0x0,
                    0x14,
                },
            })
            Method(_PRT) {
                If(\GPIC) {
                    Return(APRT)
                }
                Else {
                    Return(LPRT)
                }
            }
            Name(_PRW, Package(0x2) {
                0xb,
                0x4,
            })
            Device(CDBS) {
                Name(_ADR, 0x0)
                Method(_S3D) {
                    If(\WMEF) {
                        Return(0x2)
                    }
                    Return(0x3)
                }
                Name(_SUN, 0x1)
            }
        }
        Device(SATA) {
            Name(_ADR, 0x001f0002)
            Name(_S3D, 0x3)
            Name(RID_, 0x0)
            OperationRegion(IDCS, PCI_Config, 0x0, 0x0100)
            Field(IDCS, DWordAcc, NoLock, Preserve) {
                Offset(0x40),
                ,	15,
                PIDE,	1,
                ,	15,
                SIDE,	1,
                Offset(0x92),
                Offset(0x93),
                ,	1,
                P1P_,	1
            }
        }
        Device(SMBU) {
            Name(_ADR, 0x001f0003)
            Name(_S3D, 0x3)
            Name(RID_, 0x0)
        }
        Device(USB0) {
            Name(_ADR, 0x001d0000)
            Name(_S3D, 0x2)
            Name(RID_, 0x0)
            OperationRegion(U0CS, PCI_Config, 0xc4, 0x4)
            Field(U0CS, DWordAcc, NoLock, Preserve) {
                U0EN,	2,
                Offset(0x4)
            }
            Name(_PR0, Package(0x1) {
                \_SB_.PCI0.LPC_.EC__.PUBS,
            })
            Name(_PR1, Package(0x1) {
                \_SB_.PCI0.LPC_.EC__.PUBS,
            })
            Name(_PR2, Package(0x1) {
                \_SB_.PCI0.LPC_.EC__.PUBS,
            })
            Name(_PRW, Package(0x3) {
                0x3,
                0x3,
                \_SB_.PCI0.LPC_.EC__.PUBS,
            })
            Method(_PSW, 1) {
                If(Arg0) {
                    Store(0x3, U0EN)
                }
                Else {
                    Store(0x0, U0EN)
                }
            }
        }
        Device(USB1) {
            Name(_ADR, 0x001d0001)
            Name(_S3D, 0x2)
            Name(RID_, 0x0)
            OperationRegion(U1CS, PCI_Config, 0xc4, 0x4)
            Field(U1CS, DWordAcc, NoLock, Preserve) {
                U1EN,	2,
                Offset(0x4)
            }
            Name(_PRW, Package(0x2) {
                0x4,
                0x3,
            })
            Method(_PSW, 1) {
                If(Arg0) {
                    Store(0x3, U1EN)
                }
                Else {
                    Store(0x0, U1EN)
                }
            }
        }
        Device(USB2) {
            Name(_ADR, 0x001d0002)
            Name(_S3D, 0x2)
            Name(RID_, 0x0)
            OperationRegion(U2CS, PCI_Config, 0xc4, 0x4)
            Field(U2CS, DWordAcc, NoLock, Preserve) {
                U2EN,	2,
                Offset(0x4)
            }
            Name(_PRW, Package(0x2) {
                0xc,
                0x3,
            })
            Method(_PSW, 1) {
                If(Arg0) {
                    Store(0x3, U2EN)
                }
                Else {
                    Store(0x0, U2EN)
                }
            }
        }
        Device(USB3) {
            Name(_ADR, 0x001a0000)
            Name(_S3D, 0x2)
            Name(RID_, 0x0)
            OperationRegion(U3CS, PCI_Config, 0xc4, 0x4)
            Field(U3CS, DWordAcc, NoLock, Preserve) {
                U3EN,	2,
                Offset(0x4)
            }
            Name(_PR0, Package(0x1) {
                \_SB_.PCI0.LPC_.EC__.PUBS,
            })
            Name(_PR1, Package(0x1) {
                \_SB_.PCI0.LPC_.EC__.PUBS,
            })
            Name(_PR2, Package(0x1) {
                \_SB_.PCI0.LPC_.EC__.PUBS,
            })
            Name(_PRW, Package(0x3) {
                0xe,
                0x3,
                \_SB_.PCI0.LPC_.EC__.PUBS,
            })
            Method(_PSW, 1) {
                If(Arg0) {
                    Store(0x3, U3EN)
                }
                Else {
                    Store(0x0, U3EN)
                }
            }
            Device(URTH) {
                Name(_ADR, 0x0)
                Device(UPEX) {
                    Name(_ADR, 0x2)
                }
            }
        }
        Device(USB4) {
            Name(_ADR, 0x001a0001)
            Name(_S3D, 0x2)
            Name(RID_, 0x0)
            OperationRegion(U4CS, PCI_Config, 0xc4, 0x4)
            Field(U4CS, DWordAcc, NoLock, Preserve) {
                U4EN,	2,
                Offset(0x4)
            }
            Name(_PRW, Package(0x2) {
                0x5,
                0x3,
            })
            Method(_PSW, 1) {
                If(Arg0) {
                    Store(0x3, U4EN)
                }
                Else {
                    Store(0x0, U4EN)
                }
            }
        }
        Device(USB5) {
            Name(_ADR, 0x001a0002)
            Name(_S3D, 0x2)
            Name(RID_, 0x0)
            OperationRegion(U5CS, PCI_Config, 0xc4, 0x4)
            Field(U5CS, DWordAcc, NoLock, Preserve) {
                U5EN,	2,
                Offset(0x4)
            }
            Name(_PR0, Package(0x1) {
                \_SB_.PCI0.LPC_.EC__.PUBS,
            })
            Name(_PR1, Package(0x1) {
                \_SB_.PCI0.LPC_.EC__.PUBS,
            })
            Name(_PR2, Package(0x1) {
                \_SB_.PCI0.LPC_.EC__.PUBS,
            })
            Name(_PRW, Package(0x3) {
                0x20,
                0x3,
                \_SB_.PCI0.LPC_.EC__.PUBS,
            })
            Method(_PSW, 1) {
                If(Arg0) {
                    Store(0x3, U5EN)
                }
                Else {
                    Store(0x0, U5EN)
                }
            }
            Device(URTH) {
                Name(_ADR, 0x0)
                Device(UPDK) {
                    Name(_ADR, 0x1)
                }
            }
        }
        Device(EHC0) {
            Name(_ADR, 0x001d0007)
            Name(_S3D, 0x3)
            Name(RID_, 0x0)
            OperationRegion(U7CS, PCI_Config, 0x60, 0x4)
            Field(U7CS, DWordAcc, NoLock, Preserve) {
                Offset(0x2),
                PWKI,	1,
                PWUC,	6,
                Offset(0x4)
            }
            Name(_PR0, Package(0x1) {
                \_SB_.PCI0.LPC_.EC__.PUBS,
            })
            Name(_PR1, Package(0x1) {
                \_SB_.PCI0.LPC_.EC__.PUBS,
            })
            Name(_PR2, Package(0x1) {
                \_SB_.PCI0.LPC_.EC__.PUBS,
            })
            Method(_INI) {
                Store(0x1, PWKI)
                Store(0xf, PWUC)
            }
            Name(_PRW, Package(0x3) {
                0xd,
                0x3,
                \_SB_.PCI0.LPC_.EC__.PUBS,
            })
        }
        Device(EHC1) {
            Name(_ADR, 0x001a0007)
            Name(_S3D, 0x3)
            Name(RID_, 0x0)
            OperationRegion(U8CS, PCI_Config, 0x60, 0x4)
            Field(U8CS, DWordAcc, NoLock, Preserve) {
                Offset(0x2),
                PWKI,	1,
                PWUC,	4,
                Offset(0x4)
            }
            Name(_PR0, Package(0x1) {
                \_SB_.PCI0.LPC_.EC__.PUBS,
            })
            Name(_PR1, Package(0x1) {
                \_SB_.PCI0.LPC_.EC__.PUBS,
            })
            Name(_PR2, Package(0x1) {
                \_SB_.PCI0.LPC_.EC__.PUBS,
            })
            Method(_INI) {
                Store(0x1, PWKI)
                Store(0xf, PWUC)
            }
            Name(_PRW, Package(0x3) {
                0xd,
                0x3,
                \_SB_.PCI0.LPC_.EC__.PUBS,
            })
            Device(URTH) {
                Name(_ADR, 0x0)
                Device(UPEX) {
                    Name(_ADR, 0x2)
                }
                Device(UPDK) {
                    Name(_ADR, 0x5)
                }
            }
        }
        Device(HDEF) {
            Name(_ADR, 0x001b0000)
            Name(_S3D, 0x3)
            Name(RID_, 0x0)
            Name(_PRW, Package(0x2) {
                0xd,
                0x4,
            })
            Method(_PSW, 1) {
                Noop
            }
        }
    }
    Scope(\_SB_.PCI0.LPC_.EC__) {
        Name(BDEV, 0xff)
        Name(BSTS, 0x0)
        Name(BHKE, 0x0)
        Method(_Q2C) {
            If(LEqual(BSTS, 0x0)) {
                Store(BGID(0x0), BDEV)
                NBRE(BDEV)
            }
        }
        Method(_Q2D) {
            Store(BGID(0x0), BDEV)
            NBIN(BDEV)
        }
        Method(_Q38) {
            Store(BGID(0x0), Local0)
            If(LEqual(Local0, 0xf)) {
                BDIS()
                NBEJ(BDEV)
                Store(Local0, BDEV)
                If(LEqual(\BIDE, 0x3)) {
                    Store(0x0, \_SB_.PCI0.SATA.PRIM.GTME)
                    Store(0x0, \_SB_.PCI0.SATA.SCND.GTME)
                }
            }
            Else {
                If(HPBU) {
                }
                Else {
                    Store(Local0, BDEV)
                    NBIN(Local0)
                }
            }
        }
        Name(ODEJ, 0x0)
        Method(_Q44) {
            If(\_SB_.PCI0.LPC_.CSON) {
                Store(0x1, ODEJ)
                Store(BGID(0x0), BDEV)
                NBIN(BDEV)
                Store(0x0, ODEJ)
                \_SB_.PCI0.LPC_.EC__.HKEY.MHKQ(0x3006)
            }
        }
        Method(NBRE, 1) {
            If(LLess(Arg0, 0xc)) {
                If(LEqual(\BIDE, 0x3)) {
                    Notify(\_SB_.PCI0.SATA.SCND.MSTR, 0x3)
                }
                Else {
                    Notify(\_SB_.PCI0.SATA.PRT1, 0x3)
                }
            }
            If(LEqual(Arg0, 0x10)) {
                If(LOr(HPAC, HB0A)) {
                    If(\WNTF) {
                        Notify(\_SB_.PCI0.LPC_.EC__.BAT1, 0x3)
                    }
                }
                Else {
                    LED_(0x4, 0xc0)
                    BEEP(0xf)
                    Store(0x2, BSTS)
                }
            }
        }
        Method(NBEJ, 1) {
            If(LEqual(BSTS, 0x0)) {
                If(LLess(Arg0, 0xc)) {
                    If(LEqual(\BIDE, 0x3)) {
                        Notify(\_SB_.PCI0.SATA.SCND.MSTR, 0x1)
                    }
                    Else {
                        Notify(\_SB_.PCI0.SATA.PRT1, 0x1)
                    }
                }
                If(LEqual(Arg0, 0x10)) {
                    If(\WNTF) {
                        Notify(\_SB_.PCI0.LPC_.EC__.BAT1, 0x1)
                    }
                    Else {
                        Notify(\_SB_.PCI0.LPC_.EC__.BAT1, 0x81)
                    }
                }
            }
            LED_(0x4, 0x0)
            BEEP(0x0)
            Store(0x0, BSTS)
        }
        Method(NBIN, 1) {
            If(LLess(Arg0, 0xc)) {
                BEN_(0x1)
                LED_(0x4, 0x80)
                If(LEqual(\BIDE, 0x3)) {
                    Notify(\_SB_.PCI0.SATA.SCND.MSTR, 0x1)
                }
                Else {
                    Notify(\_SB_.PCI0.SATA.PRT1, 0x1)
                }
            }
            If(LEqual(Arg0, 0x10)) {
                LED_(0x4, 0x80)
                If(\WNTF) {
                    Store(0x1, \_SB_.PCI0.LPC_.EC__.BAT1.XB1S)
                    Notify(\_SB_.PCI0.LPC_.EC__.BAT1, 0x1)
                }
                Else {
                    Notify(\_SB_.PCI0.LPC_.EC__.BAT1, 0x81)
                }
            }
            BEEP(0x0)
            Store(0x0, BSTS)
        }
        Method(BEJ0, 1) {
            If(Arg0) {
                BDIS()
                LED_(0x4, 0x0)
                \BHDP(0x1, 0x0)
                Store(0x1, BSTS)
                If(BHKE) {
                    Store(0x0, BHKE)
                    \_SB_.PCI0.LPC_.EC__.HKEY.MHKQ(0x3003)
                }
            }
            Else {
                LED_(0x4, 0x80)
                Store(0x0, BSTS)
            }
        }
        Method(BEJ3, 1) {
            If(Arg0) {
                BDIS()
                Store(0x1, BSTS)
            }
            Else {
                Store(0x0, BSTS)
            }
        }
        Method(BPTS, 1) {
            Store(0x1, HDBM)
            If(LNot(LEqual(BSTS, 0x0))) {
                Store(0xf, BDEV)
                Store(0x0, BSTS)
            }
            Store(0x0, BHKE)
            Store(0x1, Local0)
            If(LNot(LEqual(BDEV, 0xf))) {
            }
            Else {
                Store(0x0, Local0)
            }
            If(LNot(LLess(Arg0, 0x4))) {
                Store(0x0, Local0)
            }
            If(Local0) {
                BUWK(0x1)
            }
            Else {
                LED_(0x4, 0x0)
                BUWK(0x0)
            }
        }
        Method(BWAK, 1) {
            BUWK(0x0)
            Store(BGID(0x0), Local0)
            If(LEqual(BSTS, 0x0)) {
                If(LNot(LEqual(Local0, BDEV))) {
                    NBEJ(BDEV)
                    Store(Local0, BDEV)
                    NBIN(Local0)
                }
                Else {
                    If(LOr(\LFDC, LNot(LEqual(BDEV, 0xd)))) {
                        If(LNot(LEqual(Local0, 0xf))) {
                            LED_(0x4, 0x80)
                            If(HPBU) {
                                Or(ShiftLeft(Arg0, 0x8), 0x2005, BHKE)
                                \_SB_.PCI0.LPC_.EC__.HKEY.MHKQ(BHKE)
                                If(LNot(LGreater(Arg0, 0x2))) {
                                }
                                Else {
                                    NBRE(Local0)
                                }
                            }
                        }
                    }
                }
            }
        }
        Method(BDIS) {
            If(LNot(\_SB_.PCI0.LPC_.CSON)) {
                Store(0x1, \_SB_.PCI0.LPC_.CSON)
                Store(0xf, \IDET)
            }
        }
        Method(BPON, 1) {
            If(\_SB_.PCI0.LPC_.CSON) {
                Store(0x0, \_SB_.PCI0.LPC_.CSON)
            }
        }
        Method(BEN_, 1) {
            If(\_SB_.PCI0.LPC_.CSON) {
                BPON(Arg0)
                If(LAnd(Arg0, LEqual(ODEJ, 0x1))) {
                    Store(0x9, \_SB_.PCI0.LPC_.EC__.HANT)
                }
                If(Arg0) {
                    \BYRS()
                    IRDY()
                }
            }
        }
        Method(BSTA, 1) {
            If(\_SB_.PCI0.LPC_.CSON) {
                Return(0x0)
            }
            BINI()
            If(LEqual(Arg0, 0x1)) {
                Return(LLess(BDEV, 0xc))
            }
            Return(0x0)
        }
        Method(BUWK, 1) {
            If(\H8DR) {
                If(Arg0) {
                    Store(0x1, \_SB_.PCI0.LPC_.EC__.HWBU)
                }
                Else {
                    Store(0x0, \_SB_.PCI0.LPC_.EC__.HWBU)
                }
            }
            Else {
                If(Arg0) {
                    \MBEC(0x32, 0xff, 0x80)
                }
                Else {
                    \MBEC(0x32, 0x7f, 0x0)
                }
            }
        }
        Method(BINI) {
            If(LEqual(BDEV, 0xff)) {
                Store(BGID(0x0), BDEV)
            }
        }
        Method(BGID, 1) {
            If(Arg0) {
                Store(0xff, Local0)
            }
            Else {
                If(\H8DR) {
                    Store(HPBU, Local1)
                    Store(HBID, Local2)
                }
                Else {
                    Store(RBEC(0x47), Local2)
                    And(Local2, 0x1, Local1)
                    ShiftRight(Local2, 0x2, Local2)
                }
                If(Local2) {
                    Store(0xf, Local0)
                }
                Else {
                    If(HDUB) {
                        Store(0xf, Local0)
                    }
                    Else {
                        If(LOr(LEqual(\IDET, 0x3), LEqual(\IDET, 0x6))) {
                            Store(\IDET, Local0)
                        }
                        Else {
                            Store(0x7, Local0)
                        }
                    }
                }
                If(LEqual(Local0, 0xf)) {
                    If(\H8DR) {
                        If(HB1A) {
                            Store(0x10, Local0)
                        }
                    }
                    Else {
                        If(And(\RBEC(0x39), 0x80)) {
                            Store(0x10, Local0)
                        }
                    }
                }
                If(LEqual(Local0, 0xf)) {
                }
            }
            If(LAnd(\HDUB, LLess(Local0, 0xc))) {
                Store(0xf, Local0)
            }
            Return(Local0)
        }
        Method(IRDY) {
            Store(0x01f4, Local0)
            Store(0x3c, Local1)
            Store(Zero, Local2)
            While(Local1) {
                Sleep(Local0)
                Store(\BCHK(), Local3)
                If(LNot(Local3)) {
                    Break
                }
                If(LEqual(Local3, 0x2)) {
                    Store(One, Local2)
                    Break
                }
                Decrement(Local1)
            }
            Return(Local2)
        }
    }
    Scope(\_SB_.PCI0.LPC_.EC__.BAT1) {
        Method(_EJ0, 1) {
            Store(0x0, B1ST)
            Store(0x0, XB1S)
            \_SB_.PCI0.LPC_.EC__.BEJ0(Arg0)
        }
    }
    Scope(\_SB_) {
        Device(GDCK) {
            Name(_HID, 0x79004d24)
            Name(_CID, 0x150cd041)
            Name(DOID, 0xffffffff)
            Name(DIDB, 0xffffffff)
            Name(FLAG, 0x0)
            Name(WUCT, 0x0)
            Name(DHKE, 0x0)
            Event(DEVT)
            Method(DSTA) {
                UDCK()
                UDKT()
                If(LOr(LEqual(GDID(), 0x4c004d24), LEqual(GDID(), 
0x44004d24))) {
                    Store(0xf, Local0)
                }
                Else {
                    If(LNot(\W98F)) {
                        Store(0x0, Local0)
                    }
                    Else {
                        Store(0xc, Local0)
                    }
                }
                Return(Local0)
            }
            Method(DPTS, 1) {
                If(LAnd(LNot(LLess(Arg0, 0x1)), LNot(LGreater(Arg0, 0x4)))) {
                    Store(0x0, DHKE)
                    If(DFLG(0x2, 0x2)) {
                        Store(0x0, DOID)
                        DFLG(0x1, 0x2)
                    }
                    If(LOr(LEqual(GDID(), 0x4c004d24), LEqual(GDID(), 
0x44004d24))) {
                        \_SB_.PCI0.LPC_.EC__.DDWK(0x1)
                    }
                    Store(GDID(), DIDB)
                    DFLG(0x0, 0x0100)
                }
            }
            Name(DDTM, 0x0)
            Method(DWAK, 1) {
                Store(0xffffffff, DOID)
                If(LAnd(LNot(LLess(Arg0, 0x1)), LNot(LGreater(Arg0, 0x4)))) {
                    Store(0x0, DDTM)
                    If(LOr(LEqual(DIDB, 0x4c004d24), LEqual(DIDB, 
0x44004d24))) {
                        Store(0x1, DDTM)
                    }
                    If(DDTM) {
                        Store(0x0, DDTM)
                        If(LEqual(GDID(), 0x4c004d24)) {
                            Store(0x1, DDTM)
                        }
                        If(LEqual(GDID(), 0x44004d24)) {
                            Store(0x1, DDTM)
                        }
                        If(DDTM) {
                            If(LEqual(Arg0, 0x4)) {
                                If(And(\_SB_.PCI0.LPC_.WAKR, 0x8)) {
                                    DGPE()
                                }
                            }
                            ShiftLeft(Arg0, 0x8, DHKE)
                            If(LNot(DFLG(0x2, 0x8))) {
                            }
                        }
                        Else {
                            Store(0x1, \_SB_.PCI0.LPC_.BUSD)
                            \_SB_.PCI0.LPC_.EC__.DATT(0x0, 0x1)
                            \_SB_.PCI0.LPC_.EC__.DATT(0x1, 0x0)
                            Notify(\_SB_.GDCK, 0x0)
                            \DHDP(0x0)
                        }
                    }
                    Else {
                        Store(0x0, DDTM)
                        If(LEqual(GDID(), 0x4c004d24)) {
                            Store(0x1, DDTM)
                        }
                        If(LEqual(GDID(), 0x44004d24)) {
                            Store(0x1, DDTM)
                        }
                        If(DDTM) {
                            WDCK()
                        }
                        Else {
                            Noop
                        }
                    }
                    DFLG(0x1, 0x0100)
                    DFLG(0x1, 0x2)
                    DFLG(0x1, 0x10)
                    DFLG(0x1, 0x20)
                    Store(0x1, \_SB_.PCI0.LPC_.DSCI)
                }
            }
            Method(DGPE) {
                DFLG(0x0, 0x8)
            }
            Method(DDCK, 1) {
                If(Arg0) {
                    \_SB_.PCI0.LPC_.EC__.LED_(0x8, 0x0)
                    \_SB_.PCI0.LPC_.EC__.LED_(0x9, 0x80)
                    \_SB_.PCI0.LPC_.LCON(0x1)
                    BCON(0x1)
                    \_SB_.PCI0.LPC_.EC__.DATT(0x0, 0x0)
                    \_SB_.PCI0.LPC_.EC__.DATT(0x1, 0x1)
                }
                Else {
                    \_SB_.PCI0.LPC_.EC__.LED_(0x8, 0x80)
                    \_SB_.PCI0.LPC_.EC__.LED_(0x9, 0xc0)
                    DFLG(0x0, 0x2)
                    \DHDP(0x0)
                    BCON(0x0)
                    \_SB_.PCI0.LPC_.LCON(0x0)
                    \_SB_.PCI0.LPC_.EC__.DATT(0x0, 0x1)
                    \_SB_.PCI0.LPC_.EC__.DATT(0x1, 0x0)
                }
                Return(0x1)
            }
            Method(DEJ0, 1) {
                If(Arg0) {
                    Store(0x0, DOID)
                    UDKI()
                }
                DFLG(0x1, 0x2)
                \_SB_.PCI0.LPC_.EC__.LED_(0x8, 0x0)
                \_SB_.PCI0.LPC_.EC__.LED_(0x9, 0x0)
            }
            Method(DEJ3, 1) {
                If(Arg0) {
                    DFLG(0x0, 0x10)
                    If(LEqual(\SPS_, 0x3)) {
                        PDE3()
                    }
                }
            }
            Method(DEJ4, 1) {
                If(Arg0) {
                    DFLG(0x0, 0x20)
                }
            }
            Method(PDE3) {
                Noop
            }
            Name(HIDE, 0x0)
            Method(WDCK) {
                If(LOr(DFLG(0x2, 0x10), DFLG(0x2, 0x20))) {
                    DDCK(0x1)
                    If(\W98F) {
                        DFLG(0x0, 0x0200)
                        Store(0x5, HIDE)
                    }
                }
                Else {
                    Notify(\_SB_.GDCK, 0x0)
                }
            }
            Method(UDCK) {
                If(DFLG(0x2, 0x8)) {
                    If(LNot(DFLG(0x2, 0x0100))) {
                        \_SB_.PCI0.LPC_.EC__.LED_(0x8, 0x80)
                        \_SB_.PCI0.LPC_.EC__.LED_(0x9, 0xc0)
                        Or(DHKE, 0x2004, DHKE)
                        If(LEqual(\UOPT, 0x0)) {
                            \_SB_.PCI0.LPC_.EC__.HKEY.MHKQ(DHKE)
                        }
                        If(\W98F) {
                            Notify(\_SB_.GDCK, 0x1)
                        }
                        Else {
                            Notify(\_SB_.GDCK, 0x3)
                        }
                        DFLG(0x1, 0x8)
                    }
                }
            }
            Method(UDKI) {
                If(\WNTF) {
                    Store(0x1, WUCT)
                }
                Else {
                    Store(0x5, WUCT)
                }
            }
            Method(UDKT) {
                If(And(DHKE, 0x2004)) {
                    If(LEqual(GDID(), 0x0)) {
                        If(LNot(Decrement(WUCT))) {
                            Store(0x0, DHKE)
                            If(LEqual(\UOPT, 0x0)) {
                                \_SB_.PCI0.LPC_.EC__.HKEY.MHKQ(0x4003)
                            }
                        }
                    }
                }
            }
            Method(GDID) {
                If(LEqual(DOID, 0xffffffff)) {
                    Store(0xffffffff, \_SB_.GDCK.G_ID)
                    Store(RDID(), DOID)
                }
                Return(DOID)
            }
            Method(RDID) {
                Store(0x0, Local0)
                If(\_SB_.PCI0.LPC_.EPWG) {
                    If(LEqual(\_SB_.GDCK.GGID(), 0x0)) {
                        If(\H8DR) {
                            If(\_SB_.PCI0.LPC_.EC__.EEPR()) {
                                Store(\_SB_.PCI0.LPC_.EC__.HDEP, Local0)
                            }
                            Else {
                                Store(0x4c004d24, Local0)
                            }
                        }
                        Else {
                            Store(\DCKI, Local0)
                        }
                    }
                    If(LEqual(\_SB_.GDCK.GGID(), 0x1)) {
                        Store(0x44004d24, Local0)
                    }
                }
                Return(Local0)
            }
            Method(RDSR) {
                Store(0x0, Local0)
                If(LNot(LEqual(GDID(), 0x0))) {
                    If(LEqual(\_SB_.GDCK.GGID(), 0x0)) {
                        If(\H8DR) {
                            If(\_SB_.PCI0.LPC_.EC__.EEPR()) {
                                Store(\_SB_.PCI0.LPC_.EC__.HDEN, Local0)
                            }
                        }
                        Else {
                            Store(\DCKS, Local0)
                        }
                    }
                    If(LEqual(\_SB_.GDCK.GGID(), 0x1)) {
                        Store(0x0, Local0)
                    }
                }
                Return(Local0)
            }
            Method(BCON, 1) {
                Store(\_SB_.PCI0.LPC_.EC__.DATT(0x0, 0x2), Local0)
                \_SB_.PCI0.LPC_.EC__.DATT(0x0, 0x1)
                Or(\_SB_.PCI0.LPC_.SERQ, 0x40, \_SB_.PCI0.LPC_.SERQ)
                And(\_SB_.PCI0.LPC_.SERQ, 0x7f, \_SB_.PCI0.LPC_.SERQ)
                Store(\_SB_.PCI0.LPC_.CLKR, Local1)
                If(Arg0) {
                    Store(0x0, \_SB_.PCI0.LPC_.CLKR)
                    Store(0x1, \_SB_.PCI0.LPC_.BUSC)
                }
                Else {
                    Store(0x1, \_SB_.PCI0.LPC_.BUSD)
                }
                Store(Local1, \_SB_.PCI0.LPC_.CLKR)
                Or(\_SB_.PCI0.LPC_.SERQ, 0xc0, \_SB_.PCI0.LPC_.SERQ)
                And(\_SB_.PCI0.LPC_.SERQ, 0xbf, \_SB_.PCI0.LPC_.SERQ)
                If(LEqual(Local0, 0x0)) {
                    \_SB_.PCI0.LPC_.EC__.DATT(0x0, 0x0)
                }
            }
            Method(DFLG, 2) {
                If(LEqual(Arg0, 0x0)) {
                    Or(FLAG, Arg1, FLAG)
                }
                If(LEqual(Arg0, 0x1)) {
                    And(FLAG, Not(Arg1), FLAG)
                }
                If(And(FLAG, Arg1)) {
                    Return(0x1)
                }
                Else {
                    Return(0x0)
                }
            }
            Scope(\_SB_.PCI0.LPC_.EC__) {
                Method(_Q37) {
                    If(\_SB_.PCI0.LPC_.EPWG) {
                        Store(0x07d0, Local0)
                        Sleep(0x64)
                        Store(0xffffffff, \_SB_.GDCK.G_ID)
                        While(LAnd(LEqual(\_SB_.GDCK.GGID(), 0x7), Local0)) {
                            Sleep(0x1)
                            Store(0xffffffff, \_SB_.GDCK.G_ID)
                            Decrement(Local0)
                        }
                        Store(0xffffffff, \_SB_.GDCK.DOID)
                        If(LOr(LEqual(\_SB_.GDCK.GDID(), 0x4c004d24), 
LEqual(\_SB_.GDCK.GDID(), 0x44004d24))) {
                            If(HPAC) {
                                Store(0x0, \_SB_.PCI0.LPC_.DRST)
                                Notify(\_SB_.GDCK, 0x0)
                            }
                        }
                    }
                }
                Method(EEPR) {
                    Store(0x0, Local0)
                    If(\H8DR) {
                        Store(0x0, HDEO)
                        Store(0xa, HDEC)
                        While(LNot(And(HDEC, 0xc0))) {
                            Sleep(0x1)
                        }
                        If(LNot(And(HDEC, 0x40))) {
                            Store(0x0, Local1)
                            Store(HDEN, Local2)
                            Store(0x4, Local3)
                            While(Local3) {
                                Add(Local1, And(Local2, 0xff), Local1)
                                ShiftRight(Local2, 0x8, Local2)
                                Decrement(Local3)
                            }
                            Store(HDEP, Local2)
                            Store(0x4, Local3)
                            While(Local3) {
                                Add(Local1, And(Local2, 0xff), Local1)
                                ShiftRight(Local2, 0x8, Local2)
                                Decrement(Local3)
                            }
                            Add(Local1, HDEM, Local1)
                            Add(Local1, HDES, Local1)
                            If(LNot(And(Local1, 0xff))) {
                                Store(0x1, Local0)
                            }
                        }
                    }
                    Return(Local0)
                }
            }
            Method(_STA) {
                Store(GGID(), Local0)
                If(LNot(\W98F)) {
                    Store(0x0, Local1)
                }
                Else {
                    Store(0xc, Local1)
                }
                If(LOr(LEqual(Local0, 0x0), LEqual(Local0, 0x1))) {
                    Store(\_SB_.GDCK.DSTA(), Local1)
                }
                If(LEqual(Local0, 0x2)) {
                    Noop
                }
                Return(Local1)
            }
            Method(_INI) {
                \_SB_.PCI0.LPC_.EC__.DATT(0x2, 0x1)
                If(LEqual(GGID(), 0x7)) {
                    \_SB_.PCI0.LPC_.EC__.DATT(0x1, 0x0)
                    \_SB_.PCI0.LPC_.EC__.DATT(0x0, 0x1)
                }
                Else {
                    \_SB_.PCI0.LPC_.EC__.DATT(0x1, 0x1)
                    \_SB_.PCI0.LPC_.EC__.DATT(0x0, 0x0)
                }
                \_SB_.PCI0.LPC_.EC__.DDWK(0x0)
                Store(0x1, \_SB_.PCI0.LPC_.DSCI)
            }
            Method(_DCK, 1) {
                Store(0x0, Local0)
                If(LOr(LEqual(GGID(), 0x0), LEqual(GGID(), 0x1))) {
                    Store(\_SB_.GDCK.DDCK(Arg0), Local0)
                }
                If(\VIGD) {
                    \_SB_.PCI0.VID_.VDSW(Arg0)
                }
                Else {
                    If(\WVIS) {
                        \_SB_.PCI0.VID_.GDCS(Arg0)
                    }
                }
                Return(Local0)
            }
            Name(UDOP, 0x0)
            Method(_EJ0, 1) {
                If(LEqual(GGID(), 0x0)) {
                    \_SB_.GDCK.DEJ0(Arg0)
                }
                If(LEqual(GGID(), 0x1)) {
                    \_SB_.GDCK.DEJ0(Arg0)
                }
            }
            Method(XEJ3, 1) {
                If(LEqual(GGID(), 0x0)) {
                    \_SB_.GDCK.DEJ3(Arg0)
                }
                If(LEqual(GGID(), 0x1)) {
                    \_SB_.GDCK.DEJ3(Arg0)
                }
            }
            Method(_EJ4, 1) {
                If(LEqual(GGID(), 0x0)) {
                    \_SB_.GDCK.DEJ4(Arg0)
                }
                If(LEqual(GGID(), 0x1)) {
                    \_SB_.GDCK.DEJ4(Arg0)
                }
            }
            Method(PEJ3) {
                If(LEqual(GGID(), 0x0)) {
                    \_SB_.GDCK.PDE3()
                }
                If(LEqual(GGID(), 0x1)) {
                    \_SB_.GDCK.PDE3()
                }
            }
            Method(_BDN) {
                Store(0x0, Local0)
                If(LEqual(GGID(), 0x0)) {
                    Store(\_SB_.GDCK.RDID(), Local0)
                }
                If(LEqual(GGID(), 0x1)) {
                    Store(\_SB_.GDCK.RDID(), Local0)
                }
                Return(Local0)
            }
            Method(_UID) {
                Store(0x0, Local0)
                If(LEqual(GGID(), 0x0)) {
                    Store(\_SB_.GDCK.RDSR(), Local0)
                }
                If(LEqual(GGID(), 0x1)) {
                    Store(\_SB_.GDCK.RDSR(), Local0)
                }
                Return(Local0)
            }
            Method(GPTS, 1) {
                \_SB_.GDCK.DPTS(Arg0)
                \_SB_.PCI0.LPC_.EC__.RPTS(Arg0)
            }
            Method(GWAK, 1) {
                \_SB_.GDCK.DWAK(Arg0)
                \_SB_.PCI0.LPC_.EC__.RWAK(Arg0)
                \_SB_.PCI0.LPC_.EC__.DDWK(0x0)
            }
            Method(GGPE) {
                If(LEqual(GGID(), 0x0)) {
                    \_SB_.GDCK.DGPE()
                }
                If(LEqual(GGID(), 0x1)) {
                    \_SB_.GDCK.DGPE()
                }
            }
            Name(G_ID, 0xffffffff)
            Method(GGID) {
                Store(G_ID, Local0)
                If(LEqual(Local0, 0xffffffff)) {
                    Store(\_SB_.PCI0.LPC_.DKI0, Local0)
                    Store(\_SB_.PCI0.LPC_.DKI1, Local1)
                    Store(\_SB_.PCI0.LPC_.DKI2, Local2)
                    Or(Local0, ShiftLeft(Local1, 0x1), Local0)
                    Or(Local0, ShiftLeft(Local2, 0x2), Local0)
                    Store(Local0, G_ID)
                }
                Return(Local0)
            }
        }
    }
    Scope(\_SB_.PCI0.LPC_.EC__) {
        Method(_Q50) {
            Store(\_SB_.GDCK.GGID(), Local0)
            If(LOr(LEqual(Local0, 0x0), LEqual(Local0, 0x1))) {
                \_SB_.PCI0.LPC_.EC__.LED_(0x8, 0x80)
                \_SB_.PCI0.LPC_.EC__.LED_(0x9, 0xc0)
                If(\W98F) {
                    Notify(\_SB_.GDCK, 0x1)
                }
                Else {
                    Notify(\_SB_.GDCK, 0x3)
                }
            }
        }
        Method(DATT, 2) {
            Store(0x0, Local0)
            If(LEqual(Arg0, 0x0)) {
                If(LEqual(Arg1, 0x1)) {
                    If(\H8DR) {
                        Or(HAM6, 0x80, HAM6)
                    }
                    Else {
                        \MBEC(0x16, 0xff, 0x80)
                    }
                    Store(0x1, Local0)
                }
                If(LEqual(Arg1, 0x0)) {
                    If(\H8DR) {
                        And(HAM6, 0x7f, HAM6)
                    }
                    Else {
                        \MBEC(0x16, 0x7f, 0x0)
                    }
                }
                If(LEqual(Arg1, 0x2)) {
                    If(\H8DR) {
                        If(And(HAM6, 0x80)) {
                            Store(0x1, Local0)
                        }
                    }
                    Else {
                        If(And(\RBEC(0x16), 0x80)) {
                            Store(0x1, Local0)
                        }
                    }
                }
            }
            If(LEqual(Arg0, 0x1)) {
                If(LEqual(Arg1, 0x1)) {
                    If(\H8DR) {
                        Or(HAMA, 0x1, HAMA)
                    }
                    Else {
                        \MBEC(0x1a, 0xff, 0x1)
                    }
                    Store(0x1, Local0)
                }
                If(LEqual(Arg1, 0x0)) {
                    If(\H8DR) {
                        And(HAMA, 0xfe, HAMA)
                    }
                    Else {
                        \MBEC(0x1a, 0xfe, 0x0)
                    }
                }
                If(LEqual(Arg1, 0x2)) {
                    If(\H8DR) {
                        If(And(HAMA, 0x1)) {
                            Store(0x1, Local0)
                        }
                    }
                    Else {
                        If(And(\RBEC(0x1a), 0x1)) {
                            Store(0x1, Local0)
                        }
                    }
                }
            }
            If(LEqual(Arg0, 0x2)) {
                If(LEqual(Arg1, 0x1)) {
                    If(\H8DR) {
                        Or(HAMB, 0x1, HAMB)
                    }
                    Else {
                        \MBEC(0x1b, 0xff, 0x1)
                    }
                    Store(0x1, Local0)
                }
                If(LEqual(Arg1, 0x0)) {
                    If(\H8DR) {
                        And(HAMB, 0xfe, HAMB)
                    }
                    Else {
                        \MBEC(0x1a, 0xfe, 0x0)
                    }
                }
                If(LEqual(Arg1, 0x2)) {
                    If(\H8DR) {
                        If(And(HAMB, 0x1)) {
                            Store(0x1, Local0)
                        }
                    }
                    Else {
                        If(And(\RBEC(0x1b), 0x1)) {
                            Store(0x1, Local0)
                        }
                    }
                }
            }
            Return(Local0)
        }
        Method(DDWK, 1) {
            Store(0x0, Local0)
            If(LEqual(Arg0, 0x1)) {
                If(\H8DR) {
                    Store(One, HWDK)
                }
                Else {
                    \MBEC(0x32, 0xff, 0x8)
                }
                Store(0x1, Local0)
            }
            If(LEqual(Arg0, 0x0)) {
                If(\H8DR) {
                    Store(Zero, HWDK)
                }
                Else {
                    \MBEC(0x32, 0xf7, 0x0)
                }
            }
            If(LEqual(Arg0, 0x2)) {
                If(\H8DR) {
                    If(HWDK) {
                        Store(0x1, Local0)
                    }
                }
                Else {
                    If(And(\RBEC(0x32), 0x8)) {
                        Store(0x1, Local0)
                    }
                }
            }
            Return(Local0)
        }
    }
    Scope(\_SB_.PCI0.LPC_.EC__) {
        Method(RPTS, 1) {
            Noop
        }
        Method(RWAK, 1) {
        }
    }
    Scope(\_SB_.PCI0.LPC_.EC__) {
        Method(_Q43) {
            \UCMS(0x18)
        }
        Method(SAUM, 1) {
            If(LGreater(Arg0, 0x3)) {
                Noop
            }
            Else {
                If(\H8DR) {
                    Store(Arg0, HAUM)
                }
                Else {
                    \MBEC(0x3, 0x9f, ShiftLeft(Arg0, 0x5))
                }
            }
        }
    }
    Scope(\_SB_.PCI0.LPC_.EC__) {
        Name(BRTB, Package(0x3) {
            Package(0x10) {
                0x17,
                0x33,
                0x3e,
                0x48,
                0x52,
                0x5b,
                0x64,
                0x6d,
                0x75,
                0x7d,
                0x85,
                0x8c,
                0x9b,
                0xb2,
                0xcf,
                0xff,
            },
            Package(0x10) {
                0x17,
                0x33,
                0x3e,
                0x48,
                0x52,
                0x5b,
                0x64,
                0x6d,
                0x75,
                0x7d,
                0x85,
                0x8c,
                0x9b,
                0xb2,
                0xcf,
                0xff,
            },
            Package(0x5) {
                0x64,
                0xdc,
                0x33,
                0x17,
                0x33,
            },
        })
        Name(BRTF, 0x1)
        Method(_Q14) {
            If(\_SB_.PCI0.LPC_.EC__.HKEY.MHKK(0x8000)) {
                \_SB_.PCI0.LPC_.EC__.HKEY.MHKQ(0x1010)
            }
            If(\NBCF) {
                If(\WVIS) {
                    If(LEqual(\VHYB(0x3, 0x0), 0x3)) {
                        Notify(\_SB_.PCI0.VID_.LCD0, 0x86)
                    }
                }
                If(\VIGD) {
                    Notify(\_SB_.PCI0.VID_.LCD0, 0x86)
                }
                Else {
                    Notify(\_SB_.PCI0.AGP_.VID_.LCD0, 0x86)
                }
            }
            Else {
                If(\VIGD) {
                    Store(\UCMS(0x15), \BRLV)
                    Store(\BRLV, Local0)
                    If(LNot(LEqual(Local0, 0xf))) {
                        Increment(Local0)
                        Store(Local0, \BRLV)
                    }
                    \UCMS(0x16)
                    \_SB_.PCI0.LPC_.EC__.BRNS()
                }
                Else {
                    \UCMS(0x4)
                }
            }
        }
        Method(_Q15) {
            If(\VCDB) {
                Store(0x0, \VCDB)
                Store(\UCMS(0x15), \BRLV)
                \UCMS(0x16)
                \_SB_.PCI0.LPC_.EC__.BRNS()
                Return(0x0)
            }
            If(\_SB_.PCI0.LPC_.EC__.HKEY.MHKK(0x00010000)) {
                \_SB_.PCI0.LPC_.EC__.HKEY.MHKQ(0x1011)
            }
            If(\NBCF) {
                If(\WVIS) {
                    If(LEqual(\VHYB(0x3, 0x0), 0x3)) {
                        Notify(\_SB_.PCI0.VID_.LCD0, 0x87)
                    }
                }
                If(\VIGD) {
                    Notify(\_SB_.PCI0.VID_.LCD0, 0x87)
                }
                Else {
                    Notify(\_SB_.PCI0.AGP_.VID_.LCD0, 0x87)
                }
            }
            Else {
                If(\VIGD) {
                    Store(\UCMS(0x15), \BRLV)
                    Store(\BRLV, Local0)
                    If(Local0) {
                        Decrement(Local0)
                        Store(Local0, \BRLV)
                    }
                    \UCMS(0x16)
                    \_SB_.PCI0.LPC_.EC__.BRNS()
                }
                Else {
                    \UCMS(0x5)
                }
            }
        }
        Method(BRNS) {
            Store(\BRLV, Local0)
            If(\_SB_.PCI0.VID_.DRDY) {
                If(LEqual(0x0, Local0)) {
                    Store(DerefOf(Index(DerefOf(Index(BRTB, 0x2)), 0x3)), 
Local1)
                    Store(DerefOf(Index(DerefOf(Index(BRTB, 0x2)), 0x0)), 
Local2)
                }
                Else {
                    Store(DerefOf(Index(DerefOf(Index(BRTB, 0x2)), 0x4)), 
Local1)
                    Store(DerefOf(Index(DerefOf(Index(BRTB, 0x2)), 0x1)), 
Local2)
                }
                Or(Local1, ShiftLeft(Local2, 0x9), Local2)
                \_SB_.PCI0.VID_.AINT(0x3, Local2)
                Store(0x0, Local1)
                If(\BRHB) {
                    Store(0x1, Local1)
                }
                Store(DerefOf(Index(DerefOf(Index(BRTB, Local1)), Local0)), 
Local2)
                \_SB_.PCI0.VID_.AINT(0x1, Local2)
            }
            Else {
                \UCMS(0x12)
            }
        }
    }
    Scope(\_SB_.PCI0.LPC_.EC__) {
        Method(_Q19) {
            If(\_SB_.PCI0.LPC_.EC__.HKEY.MHKK(0x00800000)) {
                \_SB_.PCI0.LPC_.EC__.HKEY.MHKQ(0x1018)
            }
            \UCMS(0x3)
        }
    }
    Scope(\_SB_.PCI0.LPC_.EC__) {
        Method(_Q63) {
            If(\_SB_.PCI0.LPC_.EC__.HKEY.MHKK(0x00080000)) {
                \_SB_.PCI0.LPC_.EC__.HKEY.MHKQ(0x1014)
            }
            \UCMS(0xb)
        }
    }
    Scope(\_SB_.PCI0.LPC_.EC__) {
        Method(_Q70) {
            FNST()
        }
        Method(_Q72) {
            FNST()
        }
        Method(_Q73) {
            FNST()
        }
        Method(FNST) {
            If(\H8DR) {
                Store(HFNS, Local0)
                Store(HFNE, Local1)
            }
            Else {
                And(\RBEC(0xe), 0x3, Local0)
                And(\RBEC(0x0), 0x8, Local1)
            }
            If(Local1) {
                If(LEqual(Local0, 0x0)) {
                    \UCMS(0x11)
                }
                If(LEqual(Local0, 0x1)) {
                    \UCMS(0xf)
                }
                If(LEqual(Local0, 0x2)) {
                    \UCMS(0x10)
                }
            }
        }
    }
    Scope(\_SB_.PCI0.LPC_.EC__.HKEY) {
        Name(WGFL, 0x0)
        Method(WLSW) {
            Return(\_SB_.PCI0.LPC_.EC__.GSTS)
        }
        Method(GWAN) {
            Store(0x0, Local0)
            If(And(WGFL, 0x1)) {
                Or(Local0, 0x1, Local0)
            }
            If(And(WGFL, 0x8)) {
                Return(Local0)
            }
            If(WPWS()) {
                Or(Local0, 0x2, Local0)
            }
            If(And(WGFL, 0x4)) {
                Or(Local0, 0x4, Local0)
            }
            Return(Local0)
        }
        Method(SWAN, 1) {
            If(And(Arg0, 0x2)) {
                WPWC(0x1)
            }
            Else {
                WPWC(0x0)
            }
            If(And(Arg0, 0x4)) {
                Or(WGFL, 0x4, WGFL)
                \WGSV(0x2)
            }
            Else {
                And(WGFL, Not(0x4), WGFL)
                \WGSV(0x3)
            }
        }
        Method(GBDC) {
            Store(0x0, Local0)
            If(And(WGFL, 0x10)) {
                Or(Local0, 0x1, Local0)
            }
            If(And(WGFL, 0x80)) {
                Return(Local0)
            }
            If(BPWS()) {
                Or(Local0, 0x2, Local0)
            }
            If(And(WGFL, 0x40)) {
                Or(Local0, 0x4, Local0)
            }
            Return(Local0)
        }
        Method(SBDC, 1) {
            If(And(Arg0, 0x2)) {
                BPWC(0x1)
            }
            Else {
                BPWC(0x0)
            }
            If(And(Arg0, 0x4)) {
                Or(WGFL, 0x40, WGFL)
                \BLTH(0x2)
            }
            Else {
                And(WGFL, Not(0x40), WGFL)
                \BLTH(0x3)
            }
        }
        Method(GUWB) {
            Store(0x0, Local0)
            If(And(WGFL, 0x0100)) {
                Or(Local0, 0x1, Local0)
            }
            If(UPWS()) {
                Or(Local0, 0x2, Local0)
            }
            Return(Local0)
        }
        Method(SUWB, 1) {
            If(And(Arg0, 0x2)) {
                UPWC(0x1)
            }
            Else {
                UPWC(0x0)
            }
        }
        Method(WPWS) {
            If(\H8DR) {
                Store(\_SB_.PCI0.LPC_.EC__.DCWW, Local0)
            }
            Else {
                Store(ShiftRight(And(\RBEC(0x3a), 0x40), 0x6), Local0)
            }
            Return(Local0)
        }
        Method(WTGL) {
            If(And(WGFL, 0x1)) {
                WPWC(LNot(WPWS()))
            }
        }
        Method(WPWC, 1) {
            If(LAnd(Arg0, LAnd(And(WGFL, 0x1), LNot(And(WGFL, 0x8))))) {
                If(\H8DR) {
                    Store(One, \_SB_.PCI0.LPC_.EC__.DCWW)
                }
                Else {
                    \MBEC(0x3a, 0xff, 0x40)
                }
                Or(WGFL, 0x2, WGFL)
            }
            Else {
                If(\H8DR) {
                    Store(Zero, \_SB_.PCI0.LPC_.EC__.DCWW)
                }
                Else {
                    \MBEC(0x3a, 0xbf, 0x0)
                }
                And(WGFL, Not(0x2), WGFL)
            }
        }
        Method(BPWS) {
            If(\H8DR) {
                Store(\_SB_.PCI0.LPC_.EC__.DCBD, Local0)
            }
            Else {
                Store(ShiftRight(And(\RBEC(0x3a), 0x10), 0x4), Local0)
            }
            Return(Local0)
        }
        Method(BTGL) {
            If(And(WGFL, 0x10)) {
                BPWC(LNot(BPWS()))
            }
        }
        Method(BPWC, 1) {
            If(LAnd(Arg0, LAnd(And(WGFL, 0x10), LNot(And(WGFL, 0x80))))) {
                If(\H8DR) {
                    Store(One, \_SB_.PCI0.LPC_.EC__.DCBD)
                }
                Else {
                    \MBEC(0x3a, 0xff, 0x10)
                }
                Or(WGFL, 0x20, WGFL)
            }
            Else {
                If(\H8DR) {
                    Store(Zero, \_SB_.PCI0.LPC_.EC__.DCBD)
                }
                Else {
                    \MBEC(0x3a, 0xef, 0x0)
                }
                And(WGFL, Not(0x20), WGFL)
            }
        }
        Method(UPWS) {
            If(\H8DR) {
                Store(\_SB_.PCI0.LPC_.EC__.HUWB, Local0)
            }
            Else {
                Store(ShiftRight(And(\RBEC(0x31), 0x4), 0x2), Local0)
            }
            Return(Local0)
        }
        Method(UPWC, 1) {
            If(LAnd(Arg0, And(WGFL, 0x0100))) {
                If(\H8DR) {
                    Store(One, \_SB_.PCI0.LPC_.EC__.HUWB)
                }
                Else {
                    \MBEC(0x31, 0xff, 0x4)
                }
                Or(WGFL, 0x0200, WGFL)
            }
            Else {
                If(\H8DR) {
                    Store(Zero, \_SB_.PCI0.LPC_.EC__.HUWB)
                }
                Else {
                    \MBEC(0x31, 0xfb, 0x0)
                }
                And(WGFL, Not(0x0200), WGFL)
            }
            \UCMS(0x1b)
        }
        Method(WGIN) {
            Store(0x0, WGFL)
            Store(\WGSV(0x1), WGFL)
            If(WPWS()) {
                Or(WGFL, 0x2, WGFL)
            }
            If(BPWS()) {
                Or(WGFL, 0x20, WGFL)
            }
            If(UPWS()) {
                Or(WGFL, 0x0200, WGFL)
            }
        }
        Method(WGPS, 1) {
            If(LNot(LLess(Arg0, 0x4))) {
                \BLTH(0x5)
            }
            If(LNot(And(WGFL, 0x4))) {
                WPWC(0x0)
            }
            If(LNot(And(WGFL, 0x40))) {
                BPWC(0x0)
            }
        }
        Method(WGWK, 1) {
            If(And(WGFL, 0x20)) {
                BPWC(0x1)
            }
            If(And(WGFL, 0x2)) {
                WPWC(0x1)
            }
        }
    }
    Scope(\_SB_.PCI0.LPC_.EC__) {
        Method(_Q41) {
            \_SB_.PCI0.LPC_.EC__.HKEY.MHKQ(0x7000)
        }
    }
    Device(WMI1) {
        Name(_HID, 0x140cd041)
        Name(_UID, 0x1)
        Name(_WDG, Buffer(0xa0) {0xe, 0x23, 0xf5, 0x51, 0x77, 0x96, 0xcd, 
0x46, 0xa1, 0xcf, 0xc0, 0xb2, 0x3e, 0xe3, 0x4d, 0xb7, 0x41, 0x30, 0x5a, 0x5, 
0x64, 0x9a, 0x47, 0x98, 0xf5, 0x33, 0x33, 0x4e, 0xa7, 0x7, 0x8e, 0x25, 0x1e, 
0xbb, 0xc3, 0xa1, 0x41, 0x31, 0x1, 0x6, 0xef, 0x54, 0x4b, 0x6a, 0xed, 0xa5, 
0x33, 0x4d, 0x94, 0x55, 0xb0, 0xd9, 0xb4, 0x8d, 0xf4, 0xb3, 0x41, 0x32, 0x1, 
0x6, 0xb6, 0xeb, 0xf1, 0x74, 0x7a, 0x92, 0x7d, 0x4c, 0x95, 0xdf, 0x69, 0x8e, 
0x21, 0xe8, 0xe, 0xb5, 0x41, 0x33, 0x1, 0x6, 0xff, 0x4, 0xef, 0x7e, 0x28, 
0x43, 0x7c, 0x44, 0xb5, 0xbb, 0xd4, 0x49, 0x92, 0x5d, 0x53, 0x8d, 0x41, 0x34, 
0x1, 0x6, 0x9e, 0x15, 0xdb, 0x8a, 0x32, 0x1e, 0x5c, 0x45, 0xbc, 0x93, 0x30, 
0x8a, 0x7e, 0xd9, 0x82, 0x46, 0x41, 0x35, 0x1, 0x1, 0xfd, 0xd9, 0x51, 0x26, 
0x1c, 0x91, 0x69, 0x4b, 0xb9, 0x4e, 0xd0, 0xde, 0xd5, 0x96, 0x3b, 0xd7, 0x41, 
0x36, 0x1, 0x6, 0x21, 0x12, 0x90, 0x5, 0x66, 0xd5, 0xd1, 0x11, 0xb2, 0xf0, 
0x0, 0xa0, 0xc9, 0x6, 0x29, 0x10, 0x42, 0x41, 0x1, 0x0 })
        Name(RETN, Package(0x5) {
            "Success",
            "Not Supported",
            "Invalid Parameter",
            "Access Denied",
            "System Busy",
        })
        Name(ITEM, Package(0x5c) {
            Package(0x2) {
                0x0,
                "WakeOnLAN",
            },
            Package(0x2) {
                0x0,
                "FlashOverLAN",
            },
            Package(0x2) {
                0x1,
                "EthernetLANOptionROM",
            },
            Package(0x2) {
                0x0,
                "HarddriveDMA",
            },
            Package(0x2) {
                0x4,
                "WirelessLANandWiMAXRadios",
            },
            Package(0x2) {
                0x18,
                "SerialPort",
            },
            Package(0x2) {
                0x10,
                "SerialPortIO",
            },
            Package(0x2) {
                0x6,
                "SerialPortIRQ",
            },
            Package(0x2) {
                0x18,
                "ParallelPort",
            },
            Package(0x2) {
                0x9,
                "ParallelPortMode",
            },
            Package(0x2) {
                0x11,
                "ParallelPortIO",
            },
            Package(0x2) {
                0x7,
                "ParallelPortIRQ",
            },
            Package(0x2) {
                0x8,
                "ParallelPortDMA",
            },
            Package(0x2) {
                0x12,
                "PCIINTA",
            },
            Package(0x2) {
                0x12,
                "PCIINTB",
            },
            Package(0x2) {
                0x12,
                "PCIINTC",
            },
            Package(0x2) {
                0x12,
                "PCIINTD",
            },
            Package(0x2) {
                0x12,
                "PCIINTE",
            },
            Package(0x2) {
                0x12,
                "PCIINTF",
            },
            Package(0x2) {
                0x12,
                "PCIINTG",
            },
            Package(0x2) {
                0x12,
                "PCIINTH",
            },
            Package(0x2) {
                0x0,
                "USBBIOSSupport",
            },
            Package(0x2) {
                0x0,
                "AlwaysOnUSB",
            },
            Package(0x2) {
                0x19,
                "TrackPoint",
            },
            Package(0x2) {
                0x2,
                "TouchPad",
            },
            Package(0x2) {
                0x0,
                "FnKeyLock",
            },
            Package(0x2) {
                0xa,
                "ThinkPadNumLock",
            },
            Package(0x2) {
                0x17,
                "PowerOnNumLock",
            },
            Package(0x2) {
                0xb,
                "PrimaryVideo",
            },
            Package(0x2) {
                0xc,
                "BootDisplayDevice",
            },
            Package(0x2) {
                0x5,
                "LCDBrightness",
            },
            Package(0x2) {
                0x0,
                "TimerWakeWithBattery",
            },
            Package(0x2) {
                0x0,
                "SpeedStep",
            },
            Package(0x2) {
                0x13,
                "SpeedStepModeAC",
            },
            Package(0x2) {
                0x13,
                "SpeedStepModeBattery",
            },
            Package(0x2) {
                0x14,
                "AdaptiveThermalManagementAC",
            },
            Package(0x2) {
                0x14,
                "AdaptiveThermalManagementBattery",
            },
            Package(0x2) {
                0xd,
                "CDROMSpeed",
            },
            Package(0x2) {
                0x2,
                "CPUPowerManagement",
            },
            Package(0x2) {
                0x2,
                "PCIPowerManagement",
            },
            Package(0x2) {
                0x0,
                "PowerControlBeep",
            },
            Package(0x2) {
                0x0,
                "LowBatteryAlarm",
            },
            Package(0x2) {
                0x0,
                "PasswordBeep",
            },
            Package(0x2) {
                0x0,
                "KeyboardBeep",
            },
            Package(0x2) {
                0x1,
                "ExtendedMemoryTest",
            },
            Package(0x2) {
                0xe,
                "SATAControllerMode",
            },
            Package(0x2) {
                0x0,
                "CoreMultiProcessing",
            },
            Package(0x2) {
                0x0,
                "VirtualizationTechnology",
            },
            Package(0x2) {
                0x1,
                "LegacyDevicesOnMiniDock",
            },
            Package(0x2) {
                0x0,
                "Passphrase",
            },
            Package(0x2) {
                0x0,
                "LockBIOSSetting",
            },
            Package(0x2) {
                0x16,
                "MinimumPasswordLength",
            },
            Package(0x2) {
                0x0,
                "BIOSPasswordAtUnattendedBoot",
            },
            Package(0x2) {
                0x0,
                "PasswordResetService",
            },
            Package(0x2) {
                0x0,
                "FingerprintPredesktopAuthentication",
            },
            Package(0x2) {
                0xf,
                "FingerprintReaderPriority",
            },
            Package(0x2) {
                0x5,
                "FingerprintSecurityMode",
            },
            Package(0x2) {
                0x3,
                "SecurityChip",
            },
            Package(0x2) {
                0x0,
                "BIOSUpdateByEndUsers",
            },
            Package(0x2) {
                0x1,
                "DataExecutionPrevention",
            },
            Package(0x2) {
                0x1,
                "EthernetLANAccess",
            },
            Package(0x2) {
                0x1,
                "WirelessLANAccess",
            },
            Package(0x2) {
                0x1,
                "WirelessWANAccess",
            },
            Package(0x2) {
                0x1,
                "BluetoothAccess",
            },
            Package(0x2) {
                0x1,
                "WirelessUSBAccess",
            },
            Package(0x2) {
                0x1,
                "ModemAccess",
            },
            Package(0x2) {
                0x1,
                "USBPortAccess",
            },
            Package(0x2) {
                0x1,
                "IEEE1394Access",
            },
            Package(0x2) {
                0x1,
                "SerialPortAccess",
            },
            Package(0x2) {
                0x1,
                "ParallelPortAccess",
            },
            Package(0x2) {
                0x1,
                "CardBusSlotAccess",
            },
            Package(0x2) {
                0x1,
                "ExpressCardAccess",
            },
            Package(0x2) {
                0x1,
                "PCIExpressSlotAccess",
            },
            Package(0x2) {
                0x1,
                "UltrabayAccess",
            },
            Package(0x2) {
                0x1,
                "MemoryCardSlotAccess",
            },
            Package(0x2) {
                0x1,
                "SmartCardSlotAccess",
            },
            Package(0x2) {
                0x1,
                "IntegratedCameraAccess",
            },
            Package(0x2) {
                0x1,
                "MicrophoneAccess",
            },
            Package(0x2) {
                0x15,
                "BootMode",
            },
            Package(0x2) {
                0x1,
                "StartupOptionKeys",
            },
            Package(0x2) {
                0x1,
                "BootDeviceListF12Option",
            },
            Package(0x2) {
                0x64,
                "BootOrder",
            },
            Package(0x2) {
                0x64,
                "NetworkBootOrder",
            },
            Package(0x2) {
                0x1,
                "WiMAXAccess",
            },
            Package(0x2) {
                0x1a,
                "GraphicsDevice",
            },
            Package(0x2) {
                0x0,
                "TXTFeature",
            },
            Package(0x2) {
                0x0,
                "VTdFeature",
            },
            Package(0x2) {
                0x0,
                "AMTControl",
            },
            Package(0x2) {
                0x0,
                "FingerprintPasswordAuthentication",
            },
            Package(0x2) {
                0x1,
                "FingerprintReaderAccess",
            },
            Package(0x2) {
                0x0,
                "OsDetectionForSwitchableGraphics",
            },
            Package(0x2) {
                0x1,
                "ComputraceModuleActivation",
            },
        })
        Name(VSEL, Package(0x1b) {
            Package(0x2) {
                "Disable",
                "Enable",
            },
            Package(0x2) {
                "Enable",
                "Disable",
            },
            Package(0x2) {
                "Disable",
                "Automatic",
            },
            Package(0x4) {
                "Inactive",
                "Disable",
                "Active",
                "",
            },
            Package(0x4) {
                "On",
                "",
                "Off",
                "",
            },
            Package(0x2) {
                "Normal",
                "High",
            },
            Package(0x4) {
                "3",
                "4",
                "5",
                "7",
            },
            Package(0x2) {
                "5",
                "7",
            },
            Package(0x3) {
                "0",
                "1",
                "3",
            },
            Package(0x3) {
                "OutputOnly",
                "BiDirectional",
                "ECP",
            },
            Package(0x2) {
                "Independent",
                "Synchronized",
            },
            Package(0x2) {
                "PCIExpress",
                "Internal",
            },
            Package(0x11) {
                "",
                "LCD",
                "VGA",
                "",
                "DisplayPort",
                "",
                "",
                "",
                "DVI",
                "",
                "",
                "",
                "",
                "",
                "",
                "",
                "",
            },
            Package(0x4) {
                "",
                "High",
                "Normal",
                "Silent",
            },
            Package(0x2) {
                "Compatibility",
                "AHCI",
            },
            Package(0x2) {
                "External",
                "InternalOnly",
            },
            Package(0x4) {
                "3F8",
                "2F8",
                "3E8",
                "2E8",
            },
            Package(0x3) {
                "378",
                "278",
                "3BC",
            },
            Package(0x10) {
                "Disable",
                "AutoSelect",
                "",
                "3",
                "4",
                "5",
                "6",
                "7",
                "",
                "9",
                "10",
                "11",
                "",
                "",
                "",
                "",
            },
            Package(0x4) {
                "MaximumPerformance",
                "BatteryOptimized",
                "MaximumBattery",
                "Automatic",
            },
            Package(0x4) {
                "",
                "",
                "MaximizePerformance",
                "Balanced",
            },
            Package(0x2) {
                "Quick",
                "Diagnostics",
            },
            Package(0xd) {
                "Disable",
                "",
                "",
                "",
                "4",
                "5",
                "6",
                "7",
                "8",
                "9",
                "10",
                "11",
                "12",
            },
            Package(0x4) {
                "Auto",
                "On",
                "Off",
                "",
            },
            Package(0x4) {
                "",
                "Enable",
                "Disable",
                "",
            },
            Package(0x4) {
                "Disable",
                "",
                "Automatic",
                "",
            },
            Package(0x4) {
                "",
                "IntegratedGfx",
                "DiscreteGfx",
                "SwitchableGfx",
            },
        })
        Name(VLST, Package(0xf) {
            "HDD0",
            "HDD1",
            "HDD2",
            "PCILAN",
            "ATAPICD0",
            "ATAPICD1",
            "",
            "USBFDD",
            "USBCD",
            "USBHDD",
            "",
            "",
            "",
            "",
            "NODEV",
        })
        Name(PENC, Package(0x2) {
            "ascii",
            "scancode",
        })
        Name(PKBD, Package(0x3) {
            "us",
            "fr",
            "gr",
        })
        Name(PTYP, Package(0x8) {
            "pap",
            "pop",
            "uhdp1",
            "mhdp1",
            "uhdp2",
            "mhdp2",
            "uhdp3",
            "mhdp3",
        })
        Mutex(MWMI, 7)
        Name(PCFG, Buffer(0x18) { })
        Name(IBUF, Buffer(0x0100) { })
        Name(ILEN, 0x0)
        Name(PSTR, Buffer(0x81) { })
        Method(WQA0, 1) {
            Acquire(MWMI, 0xffff)
            If(LNot(LEqual(\WMIS(0x0, Arg0), 0x0))) {
                Release(MWMI)
                Return("")
            }
            Store(DerefOf(Index(ITEM, \WITM)), Local0)
            Store(DerefOf(Index(Local0, 0x0)), Local1)
            Store(DerefOf(Index(Local0, 0x1)), Local2)
            If(LLess(Local1, 0x64)) {
                Concatenate(Local2, ",", Local6)
                Store(DerefOf(Index(VSEL, Local1)), Local3)
                Concatenate(Local6, DerefOf(Index(Local3, \WSEL)), Local7)
            }
            Else {
                Store(SizeOf(VLST), Local3)
                If(LNot(LGreater(\WLS0, Local3))) {
                    Concatenate(Local2, ",", Local7)
                    Concatenate(Local7, DerefOf(Index(VLST, \WLS0)), Local2)
                }
                If(LNot(LGreater(\WLS1, Local3))) {
                    Concatenate(Local2, ":", Local7)
                    Concatenate(Local7, DerefOf(Index(VLST, \WLS1)), Local2)
                }
                If(LNot(LGreater(\WLS2, Local3))) {
                    Concatenate(Local2, ":", Local7)
                    Concatenate(Local7, DerefOf(Index(VLST, \WLS2)), Local2)
                }
                If(LNot(LGreater(\WLS3, Local3))) {
                    Concatenate(Local2, ":", Local7)
                    Concatenate(Local7, DerefOf(Index(VLST, \WLS3)), Local2)
                }
                If(LNot(LGreater(\WLS4, Local3))) {
                    Concatenate(Local2, ":", Local7)
                    Concatenate(Local7, DerefOf(Index(VLST, \WLS4)), Local2)
                }
                If(LNot(LGreater(\WLS5, Local3))) {
                    Concatenate(Local2, ":", Local7)
                    Concatenate(Local7, DerefOf(Index(VLST, \WLS5)), Local2)
                }
                If(LNot(LGreater(\WLS6, Local3))) {
                    Concatenate(Local2, ":", Local7)
                    Concatenate(Local7, DerefOf(Index(VLST, \WLS6)), Local2)
                }
                If(LNot(LGreater(\WLS7, Local3))) {
                    Concatenate(Local2, ":", Local7)
                    Concatenate(Local7, DerefOf(Index(VLST, \WLS7)), Local2)
                }
                Store(Local2, Local7)
            }
            Release(MWMI)
            Return(Local7)
        }
        Method(WMA1, 3) {
            Acquire(MWMI, 0xffff)
            If(LEqual(SizeOf(Arg2), 0x0)) {
                Store(0x2, Local0)
            }
            Else {
                Store(CARG(Arg2), Local0)
                If(LEqual(Local0, 0x0)) {
                    Store(WSET(), Local0)
                }
            }
            Release(MWMI)
            Return(DerefOf(Index(RETN, Local0)))
        }
        Method(WMA2, 3) {
            Acquire(MWMI, 0xffff)
            Store(CARG(Arg2), Local0)
            If(LEqual(Local0, 0x0)) {
                If(LNot(LEqual(ILEN, 0x0))) {
                    Store(CPAS(IBUF, 0x0), Local0)
                }
                If(LEqual(Local0, 0x0)) {
                    Store(\WMIS(0x2, 0x0), Local0)
                }
            }
            Release(MWMI)
            Return(DerefOf(Index(RETN, Local0)))
        }
        Method(WMA3, 3) {
            Acquire(MWMI, 0xffff)
            Store(CARG(Arg2), Local0)
            If(LEqual(Local0, 0x0)) {
                If(LNot(LEqual(ILEN, 0x0))) {
                    Store(CPAS(IBUF, 0x0), Local0)
                }
                If(LEqual(Local0, 0x0)) {
                    Store(\WMIS(0x3, 0x0), Local0)
                }
            }
            Release(MWMI)
            Return(DerefOf(Index(RETN, Local0)))
        }
        Method(WMA4, 3) {
            Acquire(MWMI, 0xffff)
            Store(CARG(Arg2), Local0)
            If(LEqual(Local0, 0x0)) {
                If(LNot(LEqual(ILEN, 0x0))) {
                    Store(CPAS(IBUF, 0x0), Local0)
                }
                If(LEqual(Local0, 0x0)) {
                    Store(\WMIS(0x4, 0x0), Local0)
                }
            }
            Release(MWMI)
            Return(DerefOf(Index(RETN, Local0)))
        }
        Method(WQA5, 1) {
            Acquire(MWMI, 0xffff)
            Store(\WMIS(0x5, 0x0), Local0)
            Store(\WSPM, Index(PCFG, 0x0))
            Store(\WSPS, Index(PCFG, 0x4))
            Store(\WSMN, Index(PCFG, 0x8))
            Store(\WSMX, Index(PCFG, 0xc))
            Store(\WSEN, Index(PCFG, 0x10))
            Store(\WSKB, Index(PCFG, 0x14))
            Release(MWMI)
            Return(PCFG)
        }
        Method(WMA6, 3) {
            Acquire(MWMI, 0xffff)
            If(LEqual(SizeOf(Arg2), 0x0)) {
                Store(0x2, Local0)
            }
            Else {
                Store(CARG(Arg2), Local0)
                If(LEqual(Local0, 0x0)) {
                    If(LNot(LEqual(ILEN, 0x0))) {
                        Store(SPAS(IBUF), Local0)
                    }
                    If(LEqual(Local0, 0x0)) {
                        Store(\WMIS(0x6, 0x0), Local0)
                    }
                }
            }
            Release(MWMI)
            Return(DerefOf(Index(RETN, Local0)))
        }
        Method(CARG, 1) {
            Store(SizeOf(Arg0), Local0)
            If(LEqual(Local0, 0x0)) {
                Store(0x0, IBUF)
                Store(0x0, ILEN)
                Return(0x0)
            }
            If(LNot(LEqual(ObjectType(Arg0), 0x2))) {
                Return(0x2)
            }
            If(LNot(LLess(Local0, 0xff))) {
                Return(0x2)
            }
            Store(Arg0, IBUF)
            Decrement(Local0)
            Store(DerefOf(Index(IBUF, Local0)), Local1)
            If(LOr(LEqual(Local1, 0x3b), LEqual(Local1, 0x2a))) {
                Store(0x0, Index(IBUF, Local0))
                Store(Local0, ILEN)
            }
            Else {
                Store(SizeOf(Arg0), ILEN)
            }
            Return(0x0)
        }
        Method(SCMP, 3) {
            Store(SizeOf(Arg0), Local0)
            If(LEqual(Local0, 0x0)) {
                Return(0x0)
            }
            Increment(Local0)
            Name(STR1, Buffer(Local0) { })
            Store(Arg0, STR1)
            Decrement(Local0)
            Store(0x0, Local1)
            Store(Arg2, Local2)
            While(LLess(Local1, Local0)) {
                Store(DerefOf(Index(STR1, Local1)), Local3)
                Store(DerefOf(Index(Arg1, Local2)), Local4)
                If(LNot(LEqual(Local3, Local4))) {
                    Return(0x0)
                }
                Increment(Local1)
                Increment(Local2)
            }
            Store(DerefOf(Index(Arg1, Local2)), Local4)
            If(LEqual(Local4, 0x0)) {
                Return(0x1)
            }
            If(LOr(LEqual(Local4, 0x2c), LEqual(Local4, 0x3a))) {
                Return(0x1)
            }
            Return(0x0)
        }
        Method(GITM, 1) {
            Store(0x0, Local0)
            Store(SizeOf(ITEM), Local1)
            While(LLess(Local0, Local1)) {
                Store(DerefOf(Index(DerefOf(Index(ITEM, Local0)), 0x1)), 
Local3)
                If(SCMP(Local3, Arg0, 0x0)) {
                    Return(Local0)
                }
                Increment(Local0)
            }
            Return(Ones)
        }
        Method(GSEL, 3) {
            Store(0x0, Local0)
            Store(SizeOf(Arg0), Local1)
            While(LLess(Local0, Local1)) {
                Store(DerefOf(Index(Arg0, Local0)), Local2)
                If(SCMP(Local2, Arg1, Arg2)) {
                    Return(Local0)
                }
                Increment(Local0)
            }
            Return(Ones)
        }
        Method(SLEN, 2) {
            Store(DerefOf(Index(Arg0, Arg1)), Local0)
            Return(SizeOf(Local0))
        }
        Method(CLRP) {
            Store(0x0, \WPAS)
            Store(0x0, \WPNW)
        }
        Method(GPAS, 2) {
            Store(Arg1, Local0)
            Store(0x0, Local1)
            While(LNot(LGreater(Local1, 0x80))) {
                Store(DerefOf(Index(Arg0, Local0)), Local2)
                If(LOr(LEqual(Local2, 0x2c), LEqual(Local2, 0x0))) {
                    Store(0x0, Index(PSTR, Local1))
                    Return(Local1)
                }
                Store(Local2, Index(PSTR, Local1))
                Increment(Local0)
                Increment(Local1)
            }
            Store(0x0, Index(PSTR, Local1))
            Return(Ones)
        }
        Method(CPAS, 2) {
            CLRP()
            Store(Arg1, Local0)
            Store(GPAS(Arg0, Local0), Local1)
            If(LEqual(Local1, Ones)) {
                Return(0x2)
            }
            If(LEqual(Local1, 0x0)) {
                Return(0x2)
            }
            Store(PSTR, \WPAS)
            Add(Local0, Local1, Local0)
            Increment(Local0)
            Store(GSEL(PENC, Arg0, Local0), Local6)
            If(LEqual(Local6, Ones)) {
                Return(0x2)
            }
            Store(Local6, \WENC)
            If(LEqual(Local6, 0x0)) {
                Add(Local0, SLEN(PENC, 0x0), Local0)
                If(LNot(LEqual(DerefOf(Index(Arg0, Local0)), 0x2c))) {
                    Return(0x2)
                }
                Increment(Local0)
                Store(GSEL(PKBD, Arg0, Local0), Local6)
                If(LEqual(Local6, Ones)) {
                    Return(0x2)
                }
                Store(Local6, \WKBD)
            }
            Return(0x0)
        }
        Method(SPAS, 1) {
            CLRP()
            Store(GSEL(PTYP, Arg0, 0x0), Local6)
            If(LEqual(Local6, Ones)) {
                Return(0x2)
            }
            Store(Local6, \WPTY)
            Store(SLEN(PTYP, Local6), Local0)
            If(LNot(LEqual(DerefOf(Index(Arg0, Local0)), 0x2c))) {
                Return(0x2)
            }
            Increment(Local0)
            Store(GPAS(Arg0, Local0), Local1)
            If(LOr(LEqual(Local1, Ones), LEqual(Local1, 0x0))) {
                Return(0x2)
            }
            Store(PSTR, \WPAS)
            Add(Local0, Local1, Local0)
            If(LNot(LEqual(DerefOf(Index(Arg0, Local0)), 0x2c))) {
                Return(0x2)
            }
            Increment(Local0)
            Store(GPAS(Arg0, Local0), Local1)
            If(LEqual(Local1, Ones)) {
                Return(0x2)
            }
            If(LEqual(Local1, 0x0)) {
                Store(0x0, PSTR)
            }
            Store(PSTR, \WPNW)
            Add(Local0, Local1, Local0)
            Increment(Local0)
            Store(GSEL(PENC, Arg0, Local0), Local6)
            If(LEqual(Local6, Ones)) {
                Return(0x2)
            }
            Store(Local6, \WENC)
            If(LEqual(Local6, 0x0)) {
                Add(Local0, SLEN(PENC, 0x0), Local0)
                If(LNot(LEqual(DerefOf(Index(Arg0, Local0)), 0x2c))) {
                    Return(0x2)
                }
                Increment(Local0)
                Store(GSEL(PKBD, Arg0, Local0), Local6)
                If(LEqual(Local6, Ones)) {
                    Return(0x2)
                }
                Store(Local6, \WKBD)
            }
            Return(0x0)
        }
        Method(WSET) {
            Store(ILEN, Local0)
            Increment(Local0)
            Store(GITM(IBUF), Local1)
            If(LEqual(Local1, Ones)) {
                Return(0x2)
            }
            Store(Local1, \WITM)
            Store(DerefOf(Index(ITEM, Local1)), Local3)
            Store(DerefOf(Index(Local3, 0x1)), Local4)
            Store(SizeOf(Local4), Local2)
            Increment(Local2)
            Store(DerefOf(Index(Local3, 0x0)), Local4)
            If(LLess(Local4, 0x64)) {
                Store(DerefOf(Index(VSEL, Local4)), Local5)
                Store(GSEL(Local5, IBUF, Local2), Local6)
                If(LEqual(Local6, Ones)) {
                    Return(0x2)
                }
                Store(Local6, \WSEL)
                Add(Local2, SLEN(Local5, Local6), Local2)
                Store(DerefOf(Index(IBUF, Local2)), Local4)
            }
            Else {
                Store(0x3f, \WLS0)
                Store(0x3f, \WLS1)
                Store(0x3f, \WLS2)
                Store(0x3f, \WLS3)
                Store(0x3f, \WLS4)
                Store(0x3f, \WLS5)
                Store(0x3f, \WLS6)
                Store(0x3f, \WLS7)
                Store(GSEL(VLST, IBUF, Local2), Local6)
                If(LEqual(Local6, Ones)) {
                    Return(0x2)
                }
                Store(Local6, \WLS0)
                Add(Local2, SLEN(VLST, Local6), Local2)
                Store(DerefOf(Index(IBUF, Local2)), Local4)
                If(LAnd(LLess(Local2, Local0), LEqual(Local4, 0x3a))) {
                    Increment(Local2)
                    Store(GSEL(VLST, IBUF, Local2), Local6)
                    If(LEqual(Local6, Ones)) {
                        Return(0x2)
                    }
                    Store(Local6, \WLS1)
                    Add(Local2, SLEN(VLST, Local6), Local2)
                    Store(DerefOf(Index(IBUF, Local2)), Local4)
                }
                If(LAnd(LLess(Local2, Local0), LEqual(Local4, 0x3a))) {
                    Increment(Local2)
                    Store(GSEL(VLST, IBUF, Local2), Local6)
                    If(LEqual(Local6, Ones)) {
                        Return(0x2)
                    }
                    Store(Local6, \WLS2)
                    Add(Local2, SLEN(VLST, Local6), Local2)
                    Store(DerefOf(Index(IBUF, Local2)), Local4)
                }
                If(LAnd(LLess(Local2, Local0), LEqual(Local4, 0x3a))) {
                    Increment(Local2)
                    Store(GSEL(VLST, IBUF, Local2), Local6)
                    If(LEqual(Local6, Ones)) {
                        Return(0x2)
                    }
                    Store(Local6, \WLS3)
                    Add(Local2, SLEN(VLST, Local6), Local2)
                    Store(DerefOf(Index(IBUF, Local2)), Local4)
                }
                If(LAnd(LLess(Local2, Local0), LEqual(Local4, 0x3a))) {
                    Increment(Local2)
                    Store(GSEL(VLST, IBUF, Local2), Local6)
                    If(LEqual(Local6, Ones)) {
                        Return(0x2)
                    }
                    Store(Local6, \WLS4)
                    Add(Local2, SLEN(VLST, Local6), Local2)
                    Store(DerefOf(Index(IBUF, Local2)), Local4)
                }
                If(LAnd(LLess(Local2, Local0), LEqual(Local4, 0x3a))) {
                    Increment(Local2)
                    Store(GSEL(VLST, IBUF, Local2), Local6)
                    If(LEqual(Local6, Ones)) {
                        Return(0x2)
                    }
                    Store(Local6, \WLS5)
                    Add(Local2, SLEN(VLST, Local6), Local2)
                    Store(DerefOf(Index(IBUF, Local2)), Local4)
                }
                If(LAnd(LLess(Local2, Local0), LEqual(Local4, 0x3a))) {
                    Increment(Local2)
                    Store(GSEL(VLST, IBUF, Local2), Local6)
                    If(LEqual(Local6, Ones)) {
                        Return(0x2)
                    }
                    Store(Local6, \WLS6)
                    Add(Local2, SLEN(VLST, Local6), Local2)
                    Store(DerefOf(Index(IBUF, Local2)), Local4)
                }
                If(LAnd(LLess(Local2, Local0), LEqual(Local4, 0x3a))) {
                    Increment(Local2)
                    Store(GSEL(VLST, IBUF, Local2), Local6)
                    If(LEqual(Local6, Ones)) {
                        Return(0x2)
                    }
                    Store(Local6, \WLS7)
                    Add(Local2, SLEN(VLST, Local6), Local2)
                    Store(DerefOf(Index(IBUF, Local2)), Local4)
                }
            }
            If(LAnd(LEqual(Local4, 0x2c), LLess(Local2, Local0))) {
                Increment(Local2)
                Store(CPAS(IBUF, Local2), Local0)
                If(LNot(LEqual(Local0, 0x0))) {
                    Return(Local0)
                }
            }
            Return(\WMIS(0x1, 0x0))
        }
        Name(WQBA, Buffer(0x07c1) {0x46, 0x4f, 0x4d, 0x42, 0x1, 0x0, 0x0, 0x0, 
0xb1, 0x7, 0x0, 0x0, 0x5a, 0x30, 0x0, 0x0, 0x44, 0x53, 0x0, 0x1, 0x1a, 0x7d, 
0xda, 0x54, 0x98, 0x51, 0x97, 0x0, 0x1, 0x6, 0x18, 0x42, 0x10, 0x11, 0x10, 
0xa, 0xd, 0x21, 0x2, 0xb, 0x83, 0x50, 0x4c, 0x18, 0x14, 0xa0, 0x45, 0x41, 
0xc8, 0x5, 0x14, 0x95, 0x2, 0x21, 0xc3, 0x2, 0x14, 0xb, 0x70, 0x2e, 0x40, 
0xba, 0x0, 0xe5, 0x28, 0x72, 0xc, 0x22, 0x2, 0xf7, 0xef, 0xf, 0x31, 0xe, 
0x88, 0x14, 0x40, 0x48, 0xe6, 0x28, 0x28, 0x81, 0x85, 0xc0, 0x11, 0x82, 0x7e, 
0x5, 0x20, 0x74, 0x88, 0x26, 0x83, 0x2, 0x9c, 0x22, 0x8, 0xd2, 0x96, 0x5, 
0xe8, 0x16, 0xe0, 0x5b, 0x80, 0x76, 0x8, 0xa1, 0x55, 0x28, 0xc0, 0xa4, 0x0, 
0x9f, 0x60, 0xb2, 0x28, 0x40, 0x36, 0x98, 0x6c, 0xc3, 0x91, 0x61, 0x30, 0x91, 
0x63, 0x40, 0x89, 0x19, 0x3, 0x4a, 0xe7, 0x14, 0x64, 0x13, 0x58, 0xd0, 0x85, 
0xa2, 0x68, 0x1a, 0x51, 0x12, 0x1c, 0xd4, 0x31, 0x44, 0x8, 0x5e, 0xae, 0x0, 
0xc9, 0x13, 0x90, 0xe6, 0x79, 0xc9, 0xfa, 0x20, 0x34, 0x4, 0x36, 0x2, 0x1e, 
0x45, 0x2, 0x8, 0x8b, 0xb1, 0x4c, 0x89, 0x87, 0x41, 0x79, 0x0, 0x91, 0x9c, 
0xa1, 0xa2, 0x80, 0xed, 0x75, 0x22, 0x1a, 0xd6, 0x71, 0x32, 0x49, 0x70, 0xa8, 
0x51, 0x5a, 0xa2, 0x0, 0xf3, 0x23, 0xd3, 0x44, 0x8e, 0xad, 0xe9, 0x11, 0xb, 
0x92, 0x49, 0x1b, 0xa, 0x6a, 0xe8, 0x9e, 0xd6, 0x49, 0x79, 0xa2, 0x11, 0xf, 
0xca, 0x30, 0x9, 0x3c, 0xa, 0x86, 0xc6, 0x9, 0xca, 0x82, 0x90, 0x83, 0x81, 
0xa2, 0x0, 0x4f, 0xc2, 0x73, 0x2c, 0x5e, 0x80, 0xf0, 0x19, 0x93, 0xa3, 0x40, 
0x8c, 0x4, 0x3e, 0x12, 0x78, 0x34, 0xc7, 0x8c, 0x5, 0xa, 0x17, 0xf0, 0x7c, 
0x8e, 0x21, 0x72, 0xdc, 0x43, 0x8d, 0x71, 0x14, 0x91, 0x13, 0xbc, 0x3, 0x44, 
0x31, 0x5a, 0x41, 0xf3, 0x16, 0x62, 0xb0, 0x68, 0x6, 0xeb, 0x19, 0x9c, 0xc, 
0x3a, 0xc1, 0xff, 0xff, 0x8, 0xb8, 0xc, 0x8, 0x79, 0x14, 0x60, 0x75, 0x50, 
0x9a, 0x86, 0x9, 0xba, 0x17, 0x60, 0x4d, 0x80, 0x31, 0x1, 0x1a, 0x31, 0xa4, 
0x4c, 0x80, 0xb3, 0xfb, 0x82, 0x66, 0xd4, 0x96, 0x0, 0x73, 0x2, 0xb4, 0x9, 
0xf0, 0x86, 0x20, 0x94, 0xf3, 0x8c, 0x72, 0x2c, 0xa7, 0x18, 0xe5, 0x61, 0x20, 
0xe6, 0xcb, 0x40, 0xd0, 0x28, 0x31, 0x62, 0x9e, 0x4b, 0x5c, 0xc3, 0x46, 0x88, 
0x11, 0xf2, 0x14, 0x2, 0xc5, 0x6d, 0x7f, 0x10, 0x64, 0xd0, 0xb8, 0xd1, 0xfb, 
0xb4, 0x70, 0x56, 0x27, 0x70, 0xf4, 0x4f, 0xa, 0x26, 0xf0, 0x94, 0xf, 0xec, 
0xd9, 0xe0, 0x4, 0x8e, 0x35, 0x6a, 0x8c, 0x53, 0x49, 0xe0, 0xd8, 0xf, 0x8, 
0x69, 0x0, 0x51, 0x24, 0x78, 0xd4, 0x69, 0xc1, 0xe7, 0x2, 0xf, 0xed, 0xa0, 
0x3d, 0xc7, 0x13, 0x8, 0x72, 0x8, 0x47, 0xf0, 0xc4, 0xf0, 0x40, 0xe0, 0x31, 
0xb0, 0x9b, 0x82, 0x8f, 0x0, 0x3e, 0x21, 0xe0, 0x5d, 0x3, 0xea, 0x6a, 0xf0, 
0x60, 0xc0, 0x6, 0x1d, 0xe, 0x33, 0x5e, 0xf, 0x3f, 0xdc, 0x9, 0x9c, 0xe4, 
0x3, 0x6, 0x3f, 0x6c, 0x78, 0x70, 0xb8, 0x79, 0x9e, 0xcc, 0x91, 0x95, 0x2a, 
0xc0, 0xec, 0xe1, 0x40, 0x7, 0x9, 0x9f, 0x36, 0xd8, 0x19, 0x0, 0x23, 0x7f, 
0x10, 0xa8, 0x91, 0x19, 0xda, 0xe3, 0x7e, 0xe9, 0x30, 0xe4, 0x73, 0xc2, 0x61, 
0x31, 0xb1, 0xa7, 0xe, 0x3a, 0x1e, 0xf0, 0x5f, 0x46, 0x9e, 0x33, 0x3c, 0x7d, 
0xcf, 0xd7, 0x4, 0xc3, 0xe, 0x1c, 0x3d, 0x10, 0x43, 0x3f, 0x6c, 0x1c, 0xc6, 
0x69, 0xf8, 0xfe, 0xe1, 0xf3, 0x2, 0x8c, 0x53, 0x80, 0x47, 0xee, 0xff, 0xff, 
0x21, 0xc5, 0xa7, 0x9, 0x7e, 0xb4, 0xf0, 0x69, 0x82, 0x5d, 0xf, 0x4e, 0xe3, 
0x39, 0xc0, 0xc3, 0x39, 0x2b, 0x1f, 0x26, 0xc0, 0x76, 0x3f, 0x61, 0x23, 0x7a, 
0xb7, 0xf0, 0x68, 0xb0, 0xa7, 0x0, 0xf0, 0x9d, 0x5f, 0xc0, 0x79, 0xd7, 0x60, 
0x83, 0x85, 0x71, 0x7e, 0x1, 0x1e, 0x27, 0x4, 0xf, 0x81, 0x1f, 0x24, 0x3c, 
0x4, 0x3e, 0x80, 0xe7, 0x8f, 0x33, 0xb4, 0xd2, 0x79, 0x21, 0x7, 0x6, 0xef, 
0x9c, 0x3, 0x63, 0x14, 0x3c, 0xcf, 0x63, 0xc3, 0x4, 0xa, 0xf2, 0x1a, 0x50, 
0xa8, 0x67, 0x1, 0x85, 0xf1, 0xa9, 0x6, 0x78, 0xfd, 0xff, 0x4f, 0x35, 0xc0, 
0xe5, 0x70, 0x80, 0x3b, 0x39, 0xc0, 0xbd, 0x17, 0xb0, 0x8b, 0xc3, 0x73, 0xd, 
0x5c, 0xd1, 0xe7, 0x1a, 0xa8, 0xf7, 0x96, 0xe2, 0xc6, 0xa8, 0x6b, 0x4c, 0x90, 
0x47, 0x81, 0x47, 0x9a, 0x28, 0xcf, 0x33, 0xef, 0x32, 0x11, 0x9e, 0x6d, 0x7c, 
0xad, 0xf1, 0x14, 0xe2, 0xf8, 0x5a, 0x63, 0xc4, 0x97, 0x89, 0x77, 0x1b, 0xe3, 
0x1e, 0xdc, 0x63, 0xcd, 0x43, 0x8e, 0x41, 0x8e, 0x26, 0xc2, 0x8b, 0x41, 0xc0, 
0xc7, 0x1b, 0x1f, 0x6b, 0xc0, 0x2b, 0xe6, 0x85, 0x22, 0xb, 0xc7, 0x1a, 0x40, 
0xe3, 0xff, 0xff, 0x58, 0x3, 0xdc, 0xb0, 0x1e, 0x50, 0xc0, 0x77, 0x64, 0x60, 
0x37, 0x14, 0x78, 0x27, 0x14, 0xc0, 0x4f, 0xe2, 0x17, 0x80, 0x8e, 0x1c, 0x4e, 
0xb, 0x22, 0x1b, 0x6f, 0x0, 0x9f, 0x2, 0xa8, 0x1a, 0x20, 0x4d, 0x13, 0x36, 
0xc1, 0xf4, 0xe4, 0x82, 0xf7, 0x91, 0xc0, 0xb9, 0x49, 0x94, 0x7c, 0x58, 0x14, 
0xce, 0x59, 0xf, 0x22, 0x14, 0xc4, 0x80, 0xe, 0x72, 0x9c, 0x40, 0x9f, 0x51, 
0x7c, 0x10, 0x39, 0xd1, 0x27, 0x42, 0xf, 0xca, 0xc3, 0x78, 0x47, 0x61, 0x27, 
0x10, 0x1f, 0x26, 0x3c, 0x76, 0x1f, 0x13, 0xf8, 0x3f, 0xc6, 0xb3, 0x31, 0xba, 
0xd5, 0x60, 0xe8, 0xff, 0x7f, 0x4e, 0xe1, 0x60, 0x3e, 0x88, 0x70, 0x82, 0x8f, 
0x46, 0xdd, 0x24, 0x40, 0xa5, 0xef, 0xa8, 0x0, 0xa, 0x20, 0xdf, 0xb, 0x7c, 
0xe, 0x78, 0x36, 0x60, 0x63, 0x78, 0x14, 0x30, 0x9a, 0xd1, 0x79, 0xf8, 0xc9, 
0xa2, 0xe2, 0x4e, 0x96, 0x82, 0x78, 0xb2, 0x8e, 0x32, 0x59, 0xf4, 0x4c, 0x7c, 
0xaf, 0xf0, 0x8c, 0xde, 0xb4, 0x3c, 0x47, 0x4f, 0xd8, 0xf7, 0x10, 0x58, 0x87, 
0x81, 0x90, 0xf, 0x6, 0x9e, 0x86, 0xe1, 0x3c, 0x59, 0xe, 0xe7, 0xc9, 0xf2, 
0xb1, 0xf8, 0x1a, 0x2, 0x3e, 0x81, 0xb3, 0x5, 0x39, 0x3c, 0x26, 0xd6, 0xa8, 
0xe8, 0x55, 0xc8, 0xc3, 0xe3, 0x97, 0x3, 0xcf, 0xe7, 0x19, 0xe1, 0x28, 0x9f, 
0x24, 0x70, 0x18, 0xcf, 0x24, 0x1e, 0xa2, 0x6f, 0x45, 0xb0, 0x26, 0x72, 0xd2, 
0xbe, 0x2d, 0x9c, 0x6c, 0xd0, 0xd7, 0x33, 0xcc, 0xad, 0x8, 0xf6, 0xff, 0xff, 
0x56, 0x4, 0xe7, 0x82, 0x6, 0x33, 0xd3, 0xbd, 0xa, 0x15, 0xeb, 0x5e, 0x5, 
0x88, 0x1d, 0xd6, 0x6b, 0x8f, 0xf, 0x56, 0x70, 0xef, 0x55, 0x70, 0x2f, 0x55, 
0xcf, 0xa, 0xc7, 0x18, 0xfe, 0x61, 0x2a, 0xc6, 0x29, 0xbd, 0x76, 0x1a, 0x28, 
0x4c, 0x94, 0x78, 0xef, 0x55, 0x1e, 0xe3, 0x7b, 0x15, 0xbb, 0x42, 0x85, 0x89, 
0xf5, 0x72, 0x65, 0xd4, 0xd7, 0x89, 0x70, 0x81, 0x82, 0x44, 0x7a, 0xb5, 0x8a, 
0x12, 0x39, 0xbe, 0x21, 0xdf, 0xab, 0xc0, 0x2b, 0xe7, 0x5e, 0x5, 0xb2, 0xff, 
0xff, 0xbd, 0xa, 0x30, 0x8f, 0xf6, 0x5e, 0x5, 0xc6, 0x6b, 0x3, 0xbb, 0x21, 
0xc1, 0x2, 0x7a, 0xb1, 0x2, 0xc, 0x65, 0xbe, 0x58, 0xd1, 0xbc, 0x17, 0x2b, 
0xc4, 0xff, 0xff, 0x5c, 0xc2, 0xf4, 0x5c, 0xac, 0xc8, 0x3c, 0xe1, 0xdf, 0xac, 
0x0, 0x4e, 0xff, 0xff, 0x6f, 0x56, 0x80, 0xb1, 0x7b, 0x11, 0xe6, 0x68, 0x5, 
0x2f, 0xe5, 0xcd, 0x8a, 0xc6, 0x59, 0x86, 0x2, 0x2e, 0x88, 0xc2, 0xf8, 0x66, 
0x5, 0x38, 0xba, 0xae, 0xe0, 0x86, 0xc, 0x17, 0x2c, 0x4a, 0x30, 0x1f, 0x42, 
0x3c, 0x9d, 0x23, 0x7e, 0x48, 0x78, 0x9, 0x78, 0xcc, 0xf1, 0x80, 0x1f, 0x8, 
0x7c, 0xb9, 0x2, 0xd3, 0xff, 0x9f, 0xc0, 0x27, 0xdf, 0xb3, 0x7c, 0x9b, 0x7a, 
0xef, 0xe5, 0x7, 0xac, 0xf7, 0x2a, 0x1f, 0x7e, 0x63, 0xbd, 0x33, 0xbc, 0x5c, 
0x79, 0x24, 0x51, 0x4e, 0x22, 0x94, 0xef, 0x56, 0xef, 0x55, 0x46, 0x89, 0xf8, 
0x42, 0xec, 0x53, 0xb0, 0xa1, 0x8d, 0xf2, 0x54, 0x11, 0xdd, 0x78, 0x2f, 0x57, 
0xe0, 0x95, 0x74, 0xb9, 0x2, 0x68, 0x32, 0xfc, 0x97, 0x2b, 0xf0, 0xdd, 0x1c, 
0xb0, 0xd7, 0x24, 0x38, 0xff, 0xff, 0x6b, 0x12, 0xbf, 0x5e, 0x1, 0x7e, 0xb2, 
0x5f, 0xaf, 0x68, 0xee, 0xeb, 0x15, 0x4a, 0x14, 0x84, 0x14, 0x1, 0x69, 0xa6, 
0xe0, 0xb9, 0x5f, 0x1, 0x9c, 0xf8, 0xff, 0xdf, 0xaf, 0x0, 0xcb, 0xe1, 0xee, 
0x57, 0x40, 0xef, 0x76, 0x4, 0x5e, 0x94, 0xb7, 0x23, 0xec, 0x15, 0xb, 0x9f, 
0xf1, 0x8a, 0x45, 0xc3, 0xac, 0x44, 0xf1, 0xd6, 0x44, 0x61, 0x7c, 0xc5, 0x2, 
0x26, 0xff, 0xff, 0x2b, 0x16, 0x30, 0x3b, 0x88, 0xe2, 0x46, 0xd, 0xf7, 0xe2, 
0xe4, 0x5b, 0x8f, 0xe7, 0x1b, 0xd1, 0x77, 0x18, 0xcc, 0x9, 0xb, 0xc6, 0xd, 
0xb, 0xfe, 0x90, 0x1e, 0x86, 0x7d, 0x92, 0x78, 0xc7, 0xf2, 0xd1, 0xca, 0x20, 
0x6f, 0xc0, 0x4f, 0x56, 0xf, 0x56, 0x51, 0x8c, 0x10, 0xf0, 0x78, 0xde, 0x85, 
0x7d, 0xb4, 0x7a, 0xd3, 0x32, 0x4a, 0xec, 0x58, 0xbe, 0x50, 0x3d, 0x6b, 0xf9, 
0x9a, 0x65, 0x88, 0xb8, 0xf, 0xc4, 0xbe, 0x61, 0x1, 0xb6, 0xff, 0xff, 0x37, 
0x2c, 0xc0, 0xd1, 0xc5, 0x81, 0x1f, 0x1c, 0xb0, 0x37, 0x2c, 0xc0, 0xe7, 0x4c, 
0xc1, 0x73, 0xc3, 0x2, 0x36, 0xff, 0xff, 0x1b, 0x16, 0xc0, 0xff, 0xff, 0xff, 
0xd, 0xb, 0x38, 0xdc, 0xae, 0xb0, 0xb7, 0x2c, 0xec, 0xed, 0x85, 0xac, 0x82, 
0x86, 0x5a, 0x89, 0x82, 0x7f, 0xaf, 0xc, 0x43, 0x6f, 0x58, 0x80, 0xa3, 0x71, 
0x7b, 0xd4, 0xe0, 0x38, 0x1b, 0x3c, 0x49, 0x60, 0xce, 0xd5, 0xb8, 0xd9, 0x1c, 
0x5c, 0xe0, 0x8, 0xbd, 0x83, 0x6a, 0xee, 0xec, 0x92, 0x2, 0xe3, 0x96, 0x5, 
0xf7, 0x52, 0xf5, 0xd0, 0x10, 0xe5, 0x20, 0x5e, 0x85, 0x1f, 0xac, 0x1e, 0xa5, 
0x8e, 0xec, 0xf1, 0xea, 0x69, 0xd8, 0xc7, 0x2c, 0xdf, 0xb2, 0xc, 0x15, 0xe1, 
0x2d, 0x8b, 0x9d, 0x21, 0xe2, 0xc5, 0x8a, 0x12, 0xe2, 0xbd, 0x22, 0xb4, 0xef, 
0x5c, 0x6, 0x7f, 0x34, 0x36, 0x6a, 0xd0, 0x97, 0xe3, 0xb7, 0x2c, 0x78, 0xff, 
0xff, 0x5b, 0x16, 0x7c, 0x91, 0x7f, 0x15, 0x9d, 0x8, 0x7c, 0xcb, 0x2, 0xf8, 
0x11, 0xc, 0x42, 0x4e, 0x6, 0x8e, 0x3e, 0x2f, 0xe0, 0x7, 0xf0, 0x30, 0xe2, 
0x21, 0xb1, 0x0, 0x3, 0xa7, 0xf7, 0x25, 0x9f, 0x29, 0xf8, 0x1, 0xc3, 0x67, 
0xa, 0x76, 0x3d, 0x88, 0xfe, 0x18, 0xe0, 0x73, 0x9, 0x66, 0x70, 0xe0, 0xbf, 
0x56, 0x1c, 0xba, 0x47, 0xf1, 0xfa, 0x60, 0x2, 0xf, 0x8e, 0xff, 0xff, 0x7, 
0x7, 0xf7, 0xce, 0x70, 0x44, 0xbe, 0xc3, 0x78, 0x70, 0x60, 0x3b, 0x8, 0x0, 
0x87, 0xc1, 0xe1, 0x43, 0xd, 0xe, 0x3d, 0x1e, 0x3, 0x87, 0xf4, 0x79, 0x8c, 
0x5d, 0x18, 0x1e, 0x72, 0x3c, 0x34, 0xb0, 0x1, 0x7a, 0x68, 0xc0, 0x72, 0x12, 
0x4f, 0x21, 0x87, 0x6, 0x66, 0x9, 0x43, 0x3, 0x4a, 0xf1, 0x86, 0x46, 0xff, 
0xff, 0x43, 0xe3, 0x43, 0xf2, 0x61, 0x21, 0xe6, 0x53, 0x4e, 0x84, 0xf7, 0x5, 
0x9f, 0xa0, 0x18, 0xfa, 0x6b, 0x8a, 0x6f, 0x17, 0xbe, 0x9, 0xe2, 0xc6, 0x7, 
0xae, 0x4b, 0xa7, 0xc7, 0x7, 0x7c, 0x8e, 0x5c, 0x1e, 0x1f, 0xee, 0xe8, 0xe4, 
0xf1, 0xc1, 0x70, 0x79, 0x95, 0x21, 0x47, 0x13, 0x1f, 0xad, 0xd8, 0xf0, 0xc0, 
0x76, 0xd3, 0xf3, 0xf0, 0x80, 0xcf, 0x75, 0x13, 0x8c, 0x57, 0x48, 0x7e, 0x2d, 
0x81, 0x71, 0x82, 0xc2, 0x5f, 0x37, 0xc1, 0xfb, 0xff, 0xbf, 0x6e, 0x2, 0xcf, 
0x51, 0x70, 0xad, 0x97, 0x6c, 0x1a, 0xe4, 0x95, 0xa3, 0x58, 0x2f, 0x2, 0xa, 
0xe3, 0x33, 0x1b, 0xe0, 0x68, 0xac, 0xcf, 0x6c, 0x60, 0xb9, 0x17, 0xb0, 0x1b, 
0x1b, 0xdc, 0xd3, 0x1a, 0xec, 0xbb, 0xc3, 0xc3, 0xd9, 0x63, 0xda, 0xa3, 0xda, 
0x3, 0x9a, 0x8f, 0xd8, 0x31, 0xde, 0xd2, 0x82, 0xc4, 0x89, 0xf0, 0x3a, 0xf0, 
0xb4, 0xe6, 0x4b, 0x46, 0xbc, 0x40, 0x4f, 0x6b, 0xc6, 0x88, 0xf3, 0xd2, 0x66, 
0xc4, 0x57, 0x8a, 0x10, 0xf, 0x6b, 0x3e, 0xb9, 0x19, 0xef, 0x61, 0x22, 0x5c, 
0x98, 0x17, 0xb6, 0xa7, 0x35, 0x70, 0xfc, 0xff, 0x4f, 0x6b, 0x70, 0xe4, 0x5c, 
0xb1, 0x1, 0x9a, 0x5c, 0xf4, 0x71, 0x87, 0x14, 0xb0, 0x5c, 0x1b, 0xd8, 0x2d, 
0x5, 0xde, 0x5, 0x1b, 0x38, 0xff, 0xff, 0x8f, 0x28, 0xe0, 0xcb, 0x72, 0xc1, 
0xa6, 0x39, 0x2e, 0xd8, 0x28, 0xe, 0xab, 0x1, 0xd2, 0x3c, 0xe1, 0x5f, 0xaf, 
0xc1, 0x3f, 0x9, 0x5f, 0xaf, 0x1, 0xdb, 0xb7, 0x58, 0xdc, 0xf5, 0x1a, 0x58, 
0xfd, 0xff, 0xaf, 0xd7, 0xc0, 0x52, 0xf0, 0x48, 0xe9, 0x9d, 0x1a, 0x5c, 0x37, 
0x6d, 0x3c, 0xe8, 0x9b, 0x36, 0x4c, 0x85, 0x36, 0x7d, 0x6a, 0x34, 0x6a, 0xd5, 
0xa0, 0x4c, 0x8d, 0x32, 0xd, 0x6a, 0xf5, 0xa9, 0xd4, 0x98, 0xb1, 0xa1, 0x5a, 
0xda, 0x5d, 0x82, 0x8a, 0x59, 0x8c, 0x46, 0xe3, 0x28, 0x20, 0x54, 0xf6, 0x1f, 
0x50, 0x20, 0xe, 0xf9, 0xd1, 0x11, 0xa0, 0x83, 0x7d, 0xa7, 0x74, 0xb, 0x27, 
0x6b, 0x13, 0x88, 0xe3, 0x9b, 0x80, 0x68, 0x4, 0x44, 0x5a, 0x54, 0x0, 0xb1, 
0xdc, 0x20, 0x2, 0xb2, 0x8a, 0x35, 0x9, 0xc8, 0x9a, 0xbf, 0x2f, 0x2, 0xb7, 
0x4e, 0x1d, 0x40, 0x2c, 0x25, 0x8, 0x4d, 0xb4, 0x70, 0x81, 0x3a, 0x1e, 0x88, 
0x6, 0x43, 0x68, 0x4, 0xe4, 0x60, 0x14, 0x2, 0xb2, 0x8c, 0xcf, 0x9d, 0xc0, 
0x2d, 0xc0, 0xa, 0x10, 0x93, 0xf, 0x42, 0x5, 0x7b, 0x1, 0x65, 0xea, 0x41, 
0x4, 0x64, 0xa5, 0x6b, 0x15, 0x90, 0x75, 0x83, 0x8, 0xc8, 0x59, 0xcd, 0x80, 
0xb3, 0x8c, 0x6e, 0x80, 0x98, 0xc2, 0x87, 0x82, 0x40, 0xac, 0x49, 0xf, 0x28, 
0x13, 0x8, 0xa2, 0xb, 0x7, 0xf1, 0x3, 0xc4, 0xa4, 0x81, 0x8, 0xc8, 0x71, 
0x7e, 0x25, 0x2, 0x77, 0x1c, 0x45, 0x80, 0xd4, 0xd1, 0x70, 0x29, 0x8, 0x15, 
0xff, 0x9, 0x13, 0xc8, 0xff, 0xff, 0xfd, 0x44, 0x96, 0xc0, 0x28, 0x8, 0x8d, 
0xa0, 0x9, 0x84, 0xc9, 0xf3, 0x4, 0xc2, 0x42, 0xfd, 0xfd, 0x34, 0x4, 0x7, 
0x51, 0x35, 0x44, 0xea, 0xa, 0x84, 0x5, 0x7e, 0x18, 0x68, 0x30, 0x4e, 0xf, 
0x22, 0x20, 0x27, 0x7d, 0x52, 0x5, 0x22, 0xb9, 0x41, 0x4, 0xe4, 0xff, 0x3f })
    }
}
Scope(\_SB_.PCI0.EXP4.EXPD) {
    Name(_EJD, "_SB.GDCK")
}
Scope(\_SB_.PCI0.LPC_.UART) {
    Name(_EJD, "_SB.GDCK")
}
Scope(\_SB_.PCI0.LPC_.LPT_) {
    Name(_EJD, "_SB.GDCK")
}
Scope(\_SB_.PCI0.LPC_.ECP_) {
    Name(_EJD, "_SB.GDCK")
}
Scope(\_SB_.PCI0.USB5.URTH.UPDK) {
    Name(_EJD, "_SB.GDCK")
}
Scope(\_SB_.PCI0.EHC1.URTH.UPDK) {
    Name(_EJD, "_SB.GDCK")
}
Scope(\_SB_.PCI0.USB3.URTH.UPEX) {
    Name(_EJD, "_SB.PCI0.EXP3.EXUP")
}
Scope(\_SB_.PCI0.EHC1.URTH.UPEX) {
    Name(_EJD, "_SB.PCI0.EXP3.EXUP")
}
Scope(\_SB_.PCI0.EXP3.EXUP) {
    Name(_EJD, "_SB.PCI0.EHC1.URTH.UPEX")
}
Name(\_S0_, Package(0x4) {
    0x0,
    0x0,
    0x0,
    0x0,
})
Name(\_S3_, Package(0x4) {
    0x5,
    0x5,
    0x0,
    0x0,
})
Name(\_S4_, Package(0x4) {
    0x6,
    0x6,
    0x0,
    0x0,
})
Name(\_S5_, Package(0x4) {
    0x7,
    0x7,
    0x0,
    0x0,
})
Method(\_PTS, 1) {
    Store(0x1, Local0)
    If(LEqual(Arg0, \SPS_)) {
        Store(0x0, Local0)
    }
    If(LOr(LEqual(Arg0, 0x0), LNot(LLess(Arg0, 0x6)))) {
        Store(0x0, Local0)
    }
    If(Local0) {
        Store(Arg0, \SPS_)
        \_SB_.PCI0.LPC_.EC__.HKEY.MHKE(0x0)
        If(\_SB_.PCI0.LPC_.EC__.KBLT) {
            \UCMS(0xd)
        }
        If(LEqual(Arg0, 0x1)) {
            Store(\_SB_.PCI0.LPC_.EC__.HFNI, \FNID)
            Store(0x0, \_SB_.PCI0.LPC_.EC__.HFNI)
            Store(0x0, \_SB_.PCI0.LPC_.EC__.HFSP)
        }
        If(LEqual(Arg0, 0x3)) {
            \VVPD(0x3)
            Store(\VHYB(0x7, 0x0), \VHCC)
            \TRAP()
            Store(\_SB_.PCI0.LPC_.EC__.AC__._PSR(), \ACST)
        }
        If(LEqual(Arg0, 0x4)) {
            Store(\VHYB(0x7, 0x0), \VHCC)
            \_SB_.SLPB._PSW(0x0)
            If(And(\PPMF, 0x1)) {
                \STEP(0x7)
            }
            \TRAP()
            TPHY(0x2)
        }
        If(LEqual(Arg0, 0x5)) {
            \TRAP()
            TPHY(0x2)
        }
        \_SB_.PCI0.LPC_.EC__.BPTS(Arg0)
        If(LNot(LLess(Arg0, 0x4))) {
            Store(0x0, \_SB_.PCI0.LPC_.EC__.HWLB)
        }
        Else {
            Store(0x1, \_SB_.PCI0.LPC_.EC__.HWLB)
        }
        If(LNot(LEqual(Arg0, 0x5))) {
            Store(0x1, \_SB_.PCI0.LPC_.EC__.HCMU)
            \_SB_.GDCK.GPTS(Arg0)
            If(\W98F) {
                \CBRI()
            }
        }
        \_SB_.PCI0.LPC_.EC__.HKEY.WGPS(Arg0)
    }
}
Name(WAKI, Package(0x2) {
    0x0,
    0x0,
})
Method(\_WAK, 1) {
    If(LOr(LEqual(Arg0, 0x0), LNot(LLess(Arg0, 0x5)))) {
        Return(WAKI)
    }
    Store(0x0, \SPS_)
    Store(0x0, \_SB_.PCI0.LPC_.EC__.HCMU)
    \_SB_.PCI0.LPC_.EC__.EVNT(0x1)
    \_SB_.PCI0.LPC_.EC__.HKEY.MHKE(0x1)
    \_SB_.PCI0.LPC_.EC__.FNST()
    \UCMS(0xd)
    Store(0x0, \LIDB)
    If(LEqual(Arg0, 0x1)) {
        Store(\_SB_.PCI0.LPC_.EC__.HFNI, \FNID)
    }
    If(LEqual(Arg0, 0x3)) {
        THRM(0x0)
        Store(\_SB_.PCI0.LPC_.EC__.AC__._PSR(), \PWRS)
        If(And(\PPMF, 0x0100)) {
            TRAZ(0x1, 0x2b)
        }
        If(\OSC4) {
            Store(0x0, \_SB_.PCI0.LPC_.C4C3)
            Notify(\_PR_.CPU0, 0x81)
            If(And(\PPMF, 0x01000000)) {
                Notify(\_PR_.CPU1, 0x81)
            }
        }
        Else {
            If(\WNTF) {
                If(\_SB_.PCI0.LPC_.EC__.HKEY.CKC4(0x0)) {
                    Store(0x0, \_SB_.PCI0.LPC_.C4C3)
                }
                Else {
                    Store(0x1, \_SB_.PCI0.LPC_.C4C3)
                }
            }
        }
        If(LNot(LEqual(\ACST, \_SB_.PCI0.LPC_.EC__.AC__._PSR()))) {
            \_SB_.PCI0.LPC_.EC__.ATMC()
        }
        If(LAnd(\WXPF, LNot(LLess(\WSPV, 0x1)))) {
            TRAZ(0x1, 0x50)
        }
        If(LAnd(And(\CFGD, 0x01000000), LAnd(\WXPF, LNot(LGreater(\WSPV, 
0x1))))) {
            If(And(\CFGD, 0xf0)) {
                TRAZ(0x1, 0x48)
            }
        }
        \VHYB(0x6, \VHCC)
        If(\VIGD) {
            \_SB_.PCI0.VID_.GLIS(\_SB_.LID_._LID())
            Store(\_SB_.GDCK.GGID(), Local0)
            If(LOr(LEqual(Local0, 0x0), LEqual(Local0, 0x1))) {
                \_SB_.PCI0.VID_.GDCS(0x1)
            }
            Else {
                \_SB_.PCI0.VID_.GDCS(0x0)
            }
            If(\WVIS) {
                \VBTD()
            }
        }
        Else {
            If(\WVIS) {
                \_SB_.PCI0.VID_.GLIS(\_SB_.LID_._LID())
                Store(\_SB_.GDCK.GGID(), Local0)
                If(LOr(LEqual(Local0, 0x0), LEqual(Local0, 0x1))) {
                    \_SB_.PCI0.VID_.GDCS(0x1)
                }
                Else {
                    \_SB_.PCI0.VID_.GDCS(0x0)
                }
                \VBTD()
            }
        }
    }
    If(LEqual(Arg0, 0x4)) {
        \NVSS(0x0)
        If(DTSE) {
            THRM(0x2)
        }
        If(\W98F) {
            Notify(\_SB_.SLPB, 0x2)
        }
        If(\WMEF) {
            \_SB_.PCI0.LPC_.EC__.BEEP(0x5)
        }
        If(LNot(\W98F)) {
            Store(0x0, \_SB_.PCI0.LPC_.EC__.HSPA)
        }
        Store(\_SB_.PCI0.LPC_.EC__.AC__._PSR(), \PWRS)
        If(And(\PPMF, 0x0100)) {
            TRAZ(0x1, 0x2b)
        }
        If(\OSC4) {
            Notify(\_PR_.CPU0, 0x81)
            If(And(\PPMF, 0x01000000)) {
                Notify(\_PR_.CPU1, 0x81)
            }
        }
        Else {
            If(\WNTF) {
                If(\_SB_.PCI0.LPC_.EC__.HKEY.CKC4(0x0)) {
                    Store(0x0, \_SB_.PCI0.LPC_.C4C3)
                }
                Else {
                    Store(0x1, \_SB_.PCI0.LPC_.C4C3)
                }
            }
        }
        If(And(\PPMF, 0x1)) {
            \STEP(0x8)
        }
        \_SB_.PCI0.LPC_.EC__.ATMC()
        If(LAnd(And(\CFGD, 0x01000000), LAnd(\WXPF, LNot(LGreater(\WSPV, 
0x1))))) {
            If(And(\CFGD, 0xf0)) {
                TRAZ(0x1, 0x48)
            }
        }
        \VHYB(0x6, \VHCC)
    }
    If(XOr(\_SB_.PCI0.EXP3.PDS_, \_SB_.PCI0.EXP3.XCPF)) {
        If(\_SB_.PCI0.EXP3.PDS_) {
            Store(0x1, \_SB_.PCI0.EXP3.XCPF)
        }
        Else {
            Store(0x0, \_SB_.PCI0.EXP3.XCPF)
        }
        Notify(\_SB_.PCI0.EXP3, 0x0)
    }
    \_SB_.GDCK.GWAK(Arg0)
    \_SB_.PCI0.LPC_.EC__.BWAK(Arg0)
    \_SB_.PCI0.LPC_.EC__.HKEY.WGWK(Arg0)
    Notify(\_TZ_.THM0, 0x80)
    Notify(\_TZ_.THM1, 0x80)
    \VSLD(\_SB_.LID_._LID())
    If(\VIGD) {
        \_SB_.PCI0.VID_.GLIS(\_SB_.LID_._LID())
    }
    Else {
        If(\WVIS) {
            \_SB_.PCI0.VID_.GLIS(\_SB_.LID_._LID())
        }
    }
    If(LAnd(\W98F, LNot(\WMEF))) {
        Notify(\_SB_.PCI0.USB0, 0x0)
        Notify(\_SB_.PCI0.USB1, 0x0)
    }
    If(LLess(Arg0, 0x4)) {
        If(And(\RRBF, 0x2)) {
            ShiftLeft(Arg0, 0x8, Local0)
            Store(Or(0x2013, Local0), Local0)
            \_SB_.PCI0.LPC_.EC__.HKEY.MHKQ(Local0)
        }
    }
    If(LEqual(Arg0, 0x4)) {
        Store(0x0, Local0)
        Store(\CSUM(0x0), Local1)
        If(LNot(LEqual(Local1, \CHKC))) {
            Store(0x1, Local0)
            Store(Local1, \CHKC)
        }
        Store(\CSUM(0x1), Local1)
        If(LNot(LEqual(Local1, \CHKE))) {
            Store(0x1, Local0)
            Store(Local1, \CHKE)
        }
        If(Local0) {
            Notify(\_SB_, 0x0)
        }
    }
    Store(Zero, \RRBF)
    Return(WAKI)
}
Scope(\_SI_) {
    Method(_SST, 1) {
        If(LEqual(Arg0, 0x0)) {
            \_SB_.PCI0.LPC_.EC__.LED_(0x0, 0x0)
            \_SB_.PCI0.LPC_.EC__.LED_(0x7, 0x0)
        }
        If(LEqual(Arg0, 0x1)) {
            If(LOr(\SPS_, \WNTF)) {
                \_SB_.PCI0.LPC_.EC__.BEEP(0x5)
            }
            \_SB_.PCI0.LPC_.EC__.LED_(0x0, 0x80)
            \_SB_.PCI0.LPC_.EC__.LED_(0x7, 0x0)
        }
        If(LEqual(Arg0, 0x2)) {
            \_SB_.PCI0.LPC_.EC__.LED_(0x0, 0x80)
            \_SB_.PCI0.LPC_.EC__.LED_(0x7, 0xc0)
        }
        If(LEqual(Arg0, 0x3)) {
            If(LGreater(\SPS_, 0x3)) {
                \_SB_.PCI0.LPC_.EC__.BEEP(0x7)
            }
            Else {
                If(LEqual(\SPS_, 0x3)) {
                    \_SB_.PCI0.LPC_.EC__.BEEP(0x3)
                    \_SB_.GDCK.PEJ3()
                }
                Else {
                    \_SB_.PCI0.LPC_.EC__.BEEP(0x4)
                }
            }
            If(LEqual(\SPS_, 0x3)) {
            }
            Else {
                \_SB_.PCI0.LPC_.EC__.LED_(0x0, 0x80)
            }
            \_SB_.PCI0.LPC_.EC__.LED_(0x7, 0xc0)
        }
        If(LEqual(Arg0, 0x4)) {
            \_SB_.PCI0.LPC_.EC__.BEEP(0x3)
            \_SB_.PCI0.LPC_.EC__.LED_(0x7, 0xc0)
        }
    }
}
Scope(\_GPE) {
    Method(_L18) {
        Store(\_SB_.PCI0.LPC_.EC__.HWAK, Local0)
        Store(Local0, \RRBF)
        Sleep(0xa)
        If(And(Local0, 0x2)) {
        }
        If(And(Local0, 0x4)) {
            If(\W98F) {
                Notify(\_SB_.SLPB, 0x2)
            }
            Else {
                Notify(\_SB_.LID_, 0x2)
            }
        }
        If(And(Local0, 0x8)) {
            \_SB_.GDCK.GGPE()
            Notify(\_SB_.SLPB, 0x2)
        }
        If(And(Local0, 0x10)) {
            Notify(\_SB_.SLPB, 0x2)
        }
        If(And(Local0, 0x40)) {
        }
        If(And(Local0, 0x80)) {
            Notify(\_SB_.SLPB, 0x2)
        }
    }
    Method(_L09) {
        If(\_SB_.PCI0.EXP0.PSP0) {
            Store(0x1, \_SB_.PCI0.EXP0.PSP0)
            Notify(\_SB_.PCI0.EXP0, 0x2)
        }
        If(\_SB_.PCI0.EXP1.PSP1) {
            Store(0x1, \_SB_.PCI0.EXP1.PSP1)
            Notify(\_SB_.PCI0.EXP1, 0x2)
        }
        If(\_SB_.PCI0.EXP2.PSP2) {
            Store(0x1, \_SB_.PCI0.EXP2.PSP2)
            Notify(\_SB_.PCI0.EXP2, 0x2)
        }
        If(\_SB_.PCI0.EXP3.PSP3) {
            Store(0x1, \_SB_.PCI0.EXP3.PSP3)
            Notify(\_SB_.PCI0.EXP3, 0x2)
        }
        If(\_SB_.PCI0.EXP4.PSP4) {
            Store(0x1, \_SB_.PCI0.EXP4.PSP4)
            Store(0x1, \_SB_.PCI0.EXP4.PMS4)
            Notify(\_SB_.PCI0.EXP4, 0x2)
        }
    }
    Method(_L01) {
        If(\_SB_.PCI0.EXP3.HPCS) {
            Store(0x1, \_SB_.PCI0.EXP3.HPCS)
            If(\_SB_.PCI0.EXP3.ABP_) {
                Store(0x1, \_SB_.PCI0.EXP3.ABP_)
            }
            If(\_SB_.PCI0.EXP3.PDC_) {
                Store(0x1, \_SB_.PCI0.EXP3.PDC_)
                Store(0x0, \_SB_.PCI0.EXP3.XCPF)
                Notify(\_SB_.PCI0.EXP3, 0x0)
                If(\_SB_.PCI0.EXP3.PDS_) {
                    Store(0x1, \_SB_.PCI0.EXP3.XCPF)
                    Sleep(0x64)
                    Notify(\_SB_.PCI0.EXP3.EXUP, 0x1)
                }
            }
        }
    }
    Method(_L02) {
        Store(0x0, \_SB_.PCI0.LPC_.SWGE)
        If(And(\SWGP, 0x1)) {
            And(\SWGP, Not(0x1), \SWGP)
            If(\_SB_.PCI0.LPC_.EC__.HKEY.DHKC) {
                If(DT02) {
                    \_SB_.PCI0.LPC_.EC__.HKEY.MHKQ(0x6022)
                }
            }
            Notify(\_TZ_.THM1, 0x80)
            If(And(\PPMF, 0x1)) {
                If(\OSPX) {
                    Notify(\_PR_.CPU0, 0x80)
                    If(And(\PPMF, 0x01000000)) {
                        Notify(\_PR_.CPU1, 0x80)
                    }
                }
                Else {
                    If(DT00) {
                        \STEP(0x9)
                    }
                    Else {
                        \STEP(0xa)
                    }
                }
            }
        }
        If(LAnd(\CWUE, And(\SWGP, 0x2))) {
            And(\SWGP, Not(0x2), \SWGP)
            If(\OSC4) {
                Notify(\_PR_.CPU0, 0x81)
                If(And(\PPMF, 0x01000000)) {
                    Notify(\_PR_.CPU1, 0x81)
                }
            }
            Else {
                If(\_SB_.PCI0.LPC_.EC__.HKEY.CKC4(0x0)) {
                    Store(0x0, \_SB_.PCI0.LPC_.C4C3)
                }
                Else {
                    Store(0x1, \_SB_.PCI0.LPC_.C4C3)
                }
            }
        }
    }
    Method(_L06) {
        If(\_SB_.PCI0.VID_.GSSE) {
            \_SB_.PCI0.VID_.GSCI()
        }
        Else {
            Store(0x1, \_SB_.PCI0.LPC_.SCIS)
        }
    }
}
Scope(\_SB_.PCI0.LPC_.EC__.HKEY) {
    Method(MHQT, 1) {
        If(LAnd(\WNTF, \TATC)) {
            If(LEqual(Arg0, 0x0)) {
                Store(\TATC, Local0)
                Return(Local0)
            }
            Else {
                If(LEqual(Arg0, 0x1)) {
                    Store(\TDFA, Local0)
                    Add(Local0, ShiftLeft(\TDTA, 0x4), Local0)
                    Add(Local0, ShiftLeft(\TDFD, 0x8), Local0)
                    Add(Local0, ShiftLeft(\TDTD, 0xc), Local0)
                    Add(Local0, ShiftLeft(\TNFT, 0x10), Local0)
                    Add(Local0, ShiftLeft(\TNTT, 0x14), Local0)
                    Return(Local0)
                }
                Else {
                    If(LEqual(Arg0, 0x2)) {
                        Store(\TCFA, Local0)
                        Add(Local0, ShiftLeft(\TCTA, 0x4), Local0)
                        Add(Local0, ShiftLeft(\TCFD, 0x8), Local0)
                        Add(Local0, ShiftLeft(\TCTD, 0xc), Local0)
                        Return(Local0)
                    }
                    Else {
                        If(LEqual(Arg0, 0x3)) {
                        }
                        Else {
                            If(LEqual(Arg0, 0x4)) {
                                Store(\TATW, Local0)
                                Return(Local0)
                            }
                            Else {
                                Noop
                            }
                        }
                    }
                }
            }
        }
        Return(0x0)
    }
    Method(MHAT, 1) {
        If(LAnd(\WNTF, \TATC)) {
            Store(And(Arg0, 0xff), Local0)
            If(LNot(ATMV(Local0))) {
                Return(0x0)
            }
            Store(And(ShiftRight(Arg0, 0x8), 0xff), Local0)
            If(LNot(ATMV(Local0))) {
                Return(0x0)
            }
            Store(And(Arg0, 0xf), \TCFA)
            Store(And(ShiftRight(Arg0, 0x4), 0xf), \TCTA)
            Store(And(ShiftRight(Arg0, 0x8), 0xf), \TCFD)
            Store(And(ShiftRight(Arg0, 0xc), 0xf), \TCTD)
            ATMC()
            Return(0x1)
        }
        Return(0x0)
    }
    Method(MHGT, 1) {
        If(LAnd(\WNTF, \TATC)) {
            Store(ShiftLeft(\TSFT, 0x10), Local0)
            Add(Local0, ShiftLeft(\TSTT, 0x14), Local0)
            Store(And(Arg0, 0xff), Local1)
            If(LNot(ATMV(Local1))) {
                Return(0xffff)
            }
            Store(And(Arg0, 0xf), Local1)
            If(LEqual(Local1, 0x0)) {
                Add(Local0, \TIF0, Local0)
            }
            Else {
                If(LEqual(Local1, 0x1)) {
                    Add(Local0, \TIF1, Local0)
                }
                Else {
                    If(LEqual(Local1, 0x2)) {
                        Add(Local0, \TIF2, Local0)
                    }
                    Else {
                        Add(Local0, 0xff, Local0)
                    }
                }
            }
            Store(And(ShiftRight(Arg0, 0x4), 0xf), Local1)
            If(LEqual(Local1, 0x0)) {
                Add(Local0, ShiftLeft(\TIT0, 0x8), Local0)
            }
            Else {
                If(LEqual(Local1, 0x1)) {
                    Add(Local0, ShiftLeft(\TIT1, 0x8), Local0)
                }
                Else {
                    If(LEqual(Local1, 0x2)) {
                        Add(Local0, ShiftLeft(\TIT2, 0x8), Local0)
                    }
                    Else {
                        Add(Local0, ShiftLeft(0xff, 0x8), Local0)
                    }
                }
            }
            Return(Local0)
        }
        Return(0x0)
    }
    Method(ATMV, 1) {
        Store(And(Arg0, 0xf), Local1)
        Store(\TNFT, Local0)
        If(LNot(LLess(Local1, Local0))) {
            Return(0x0)
        }
        Store(And(ShiftRight(Arg0, 0x4), 0xf), Local2)
        Store(\TNTT, Local0)
        If(LNot(LLess(Local2, Local0))) {
            Return(0x0)
        }
        If(\TATL) {
            If(XOr(Local1, Local2)) {
                Return(0x0)
            }
        }
        Return(0x1)
    }
    Method(MHST) {
        Store(\_SB_.PCI0.LPC_.EC__.HSPD, Local0)
        Return(Local0)
    }
    Method(MHTT) {
        If(\VIGD) {
            Store(0x0, Local0)
        }
        Else {
            Store(\_SB_.PCI0.LPC_.EC__.TMP3, Local0)
            ShiftLeft(Local0, 0x8, Local0)
        }
        Or(Local0, \_SB_.PCI0.LPC_.EC__.TMP9, Local0)
        ShiftLeft(Local0, 0x8, Local0)
        Or(Local0, \_SB_.PCI0.LPC_.EC__.TMP0, Local0)
        Return(Local0)
    }
    Method(MHBT) {
        Name(ABUF, Buffer(0x10) { })
        ATMS(0x0)
        Store(\ATMB, ABUF)
        Return(ABUF)
    }
    Method(MHFT, 1) {
        FSCT(Arg0)
    }
    Method(MHCT, 1) {
        Store(0x0, Local0)
        If(\SPEN) {
            Store(\LWST, Local0)
            Increment(Local0)
            ShiftLeft(Local0, 0x8, Local0)
        }
        Store(0x8, Local1)
        ShiftLeft(Local1, 0x8, Local1)
        If(LEqual(Arg0, 0xffffffff)) {
            Or(Local1, \TPCR, Local1)
            If(\SPEN) {
                Or(Local0, \PPCR, Local0)
                If(LNot(LAnd(\PPMF, 0x02000000))) {
                    Or(Local1, 0x80, Local1)
                }
                If(LNot(LAnd(\PPMF, 0x08000000))) {
                    Or(Local1, 0x40, Local1)
                }
            }
            Else {
                Or(Local1, 0xc0, Local1)
            }
        }
        Else {
            If(LAnd(\OSPX, \SPEN)) {
                And(Arg0, 0x00ff0000, Local2)
                ShiftRight(Local2, 0x10, Local2)
                Or(Local0, Local2, Local0)
                If(XOr(Local2, \PPCR)) {
                    Store(Local2, \PPCA)
                    Notify(\_PR_.CPU0, 0x80)
                    If(\MPEN) {
                        Notify(\_PR_.CPU1, 0x80)
                    }
                }
            }
            If(\WVIS) {
                And(Arg0, 0x1f, Local2)
                Or(Local1, Local2, Local1)
                If(XOr(Local2, \TPCR)) {
                    Store(Local2, \TPCA)
                    Notify(\_PR_.CPU0, 0x82)
                    If(\MPEN) {
                        Notify(\_PR_.CPU1, 0x82)
                    }
                }
            }
        }
        ShiftLeft(Local0, 0x10, Local0)
        Or(Local0, Local1, Local0)
        Return(Local0)
    }
}
Scope(\_SB_.PCI0.LPC_.EC__) {
    Method(ATMC) {
        If(LAnd(\WNTF, \TATC)) {
            If(HPAC) {
                Store(\TCFA, Local0)
                Store(\TCTA, Local1)
                Store(Or(ShiftLeft(Local1, 0x4), Local0), Local2)
                XOr(Local2, ATMX, Local3)
                Store(Local2, ATMX)
                If(LEqual(\TCTA, 0x0)) {
                    Store(\TCR0, \TCRT)
                    Store(\TPS0, \TPSV)
                }
                Else {
                    If(LEqual(\TCTA, 0x1)) {
                        Store(\TCR1, \TCRT)
                        Store(\TPS1, \TPSV)
                    }
                    Else {
                    }
                }
            }
            Else {
                Store(\TCFD, Local0)
                Store(\TCTD, Local1)
                Store(Or(ShiftLeft(Local1, 0x4), Local0), Local2)
                XOr(Local2, ATMX, Local3)
                Store(Local2, ATMX)
                If(LEqual(\TCTD, 0x0)) {
                    Store(\TCR0, \TCRT)
                    Store(\TPS0, \TPSV)
                }
                Else {
                    If(LEqual(\TCTD, 0x1)) {
                        Store(\TCR1, \TCRT)
                        Store(\TPS1, \TPSV)
                    }
                    Else {
                    }
                }
            }
            If(Local3) {
                If(\_SB_.PCI0.LPC_.EC__.HKEY.DHKC) {
                    \_SB_.PCI0.LPC_.EC__.HKEY.MHKQ(0x6030)
                }
            }
            Notify(\_TZ_.THM0, 0x81)
            THRM(0x1)
        }
    }
}
Scope(\_TZ_) {
    ThermalZone(THM0) {
        Method(_CRT) {
            Return(C2K_(0x7f))
        }
        Method(_TMP) {
            If(\H8DR) {
                Store(\_SB_.PCI0.LPC_.EC__.TMP0, Local0)
                Store(\_SB_.PCI0.LPC_.EC__.HT12, Local1)
                Store(\_SB_.PCI0.LPC_.EC__.HT13, Local2)
            }
            Else {
                Store(\RBEC(0x78), Local0)
                Store(And(\RBEC(0x20), 0x40), Local1)
                Store(And(\RBEC(0x20), 0x80), Local2)
            }
            If(Local2) {
                Return(C2K_(0x80))
            }
            If(LNot(\_SB_.PCI0.LPC_.EC__.HKEY.DHKC)) {
                If(Local1) {
                    Return(C2K_(0x80))
                }
            }
            Return(C2K_(Local0))
        }
    }
    ThermalZone(THM1) {
        Method(_PSL) {
            If(And(\PPMF, 0x01000000)) {
                Return(Package(0x2) {
                    \_PR_.CPU0,
                    \_PR_.CPU1,
                })
            }
            Return(Package(0x1) {
                \_PR_.CPU0,
            })
        }
        Method(_CRT) {
            Return(\TCRT)
        }
        Method(_PSV) {
            Return(\TPSV)
        }
        Method(_TC1) {
            Return(\TTC1)
        }
        Method(_TC2) {
            Return(\TTC2)
        }
        Method(_TSP) {
            Return(\TTSP)
        }
        Method(_TMP) {
            If(\DTSE) {
                THRM(0x2)
                Store(DTS1, Local0)
                If(LNot(LLess(DTS0, DTS1))) {
                    Store(DTS0, Local0)
                }
                If(LNot(\_SB_.PCI0.LPC_.EC__.HKEY.DHKC)) {
                    If(DT02) {
                        Add(\TCRT, 0x1, Local0)
                        Return(Local0)
                    }
                }
                Return(C2K_(Local0))
            }
            Else {
                Return(\_TZ_.THM0._TMP())
            }
        }
    }
    Method(C2K_, 1) {
        Add(Multiply(Arg0, 0xa), 0x0aac, Local0)
        If(LNot(LGreater(Local0, 0x0aac))) {
            Store(0x0bb8, Local0)
        }
        If(LGreater(Local0, 0x0fac)) {
            Store(0x0bb8, Local0)
        }
        Return(Local0)
    }
}
Scope(\_SB_.PCI0.LPC_.EC__) {
    Method(_Q40) {
        Notify(\_TZ_.THM0, 0x80)
        If(\H8DR) {
            Store(\_SB_.PCI0.LPC_.EC__.HT11, Local0)
            Store(\_SB_.PCI0.LPC_.EC__.HT12, Local1)
        }
        Else {
            Store(And(\RBEC(0x20), 0x20), Local0)
            Store(And(\RBEC(0x20), 0x40), Local1)
        }
        If(\_SB_.PCI0.LPC_.EC__.HKEY.DHKC) {
            If(Local1) {
                \_SB_.PCI0.LPC_.EC__.HKEY.MHKQ(0x6022)
            }
        }
        If(VIGD) {
            Noop
        }
        Else {
            \VTHR()
        }
        If(And(\PPMF, 0x1)) {
            If(\OSPX) {
                Notify(\_PR_.CPU0, 0x80)
                If(And(\PPMF, 0x01000000)) {
                    Notify(\_PR_.CPU1, 0x80)
                }
            }
            Else {
                If(LOr(\_SB_.PCI0.LPC_.EC__.HT00, \_SB_.PCI0.LPC_.EC__.HT10)) 
{
                    \STEP(0x9)
                }
                Else {
                    \STEP(0xa)
                }
            }
        }
    }
}
Name(GPIC, 0x0)
Method(_PIC, 1) {
    Store(Arg0, \GPIC)
}
OperationRegion(SMI0, SystemIO, 0xb2, 0x1)
Field(SMI0, ByteAcc, NoLock, Preserve) {
    APMC,	8
}
Field(MNVS, AnyAcc, NoLock, Preserve) {
    Offset(0xfc0),
    CMD_,	8,
    ERR_,	32,
    PAR0,	32,
    PAR1,	32,
    PAR2,	32,
    PAR3,	32
}
Mutex(MSMI, 7)
Method(SMI_, 5) {
    Acquire(MSMI, 0xffff)
    Store(Arg0, CMD_)
    Store(Arg1, PAR0)
    Store(Arg2, PAR1)
    Store(Arg3, PAR2)
    Store(Arg4, PAR3)
    Store(0xf5, APMC)
    While(LEqual(ERR_, 0x1)) {
        Sleep(0x64)
        Store(0xf5, APMC)
    }
    Store(PAR0, Local0)
    Release(MSMI)
    Return(Local0)
}
Method(RPCI, 1) {
    Return(SMI_(0x0, 0x0, Arg0, 0x0, 0x0))
}
Method(WPCI, 2) {
    SMI_(0x0, 0x1, Arg0, Arg1, 0x0)
}
Method(MPCI, 3) {
    SMI_(0x0, 0x2, Arg0, Arg1, Arg2)
}
Method(RBEC, 1) {
    Return(SMI_(0x0, 0x3, Arg0, 0x0, 0x0))
}
Method(WBEC, 2) {
    SMI_(0x0, 0x4, Arg0, Arg1, 0x0)
}
Method(MBEC, 3) {
    SMI_(0x0, 0x5, Arg0, Arg1, Arg2)
}
Method(RISA, 1) {
    Return(SMI_(0x0, 0x6, Arg0, 0x0, 0x0))
}
Method(WISA, 2) {
    SMI_(0x0, 0x7, Arg0, Arg1, 0x0)
}
Method(MISA, 3) {
    SMI_(0x0, 0x8, Arg0, Arg1, Arg2)
}
Method(VEXP) {
    SMI_(0x1, 0x0, 0x0, 0x0, 0x0)
}
Method(VUPS, 1) {
    SMI_(0x1, 0x1, Arg0, 0x0, 0x0)
}
Method(VSDS, 2) {
    SMI_(0x1, 0x2, Arg0, Arg1, 0x0)
}
Method(VDDC) {
    SMI_(0x1, 0x3, 0x0, 0x0, 0x0)
}
Method(VVPD, 1) {
    SMI_(0x1, 0x4, Arg0, 0x0, 0x0)
}
Method(VNRS, 1) {
    SMI_(0x1, 0x5, Arg0, 0x0, 0x0)
}
Method(GLPW) {
    Return(SMI_(0x1, 0x6, 0x0, 0x0, 0x0))
}
Method(VSLD, 1) {
    SMI_(0x1, 0x7, Arg0, 0x0, 0x0)
}
Method(VEVT, 1) {
    Return(SMI_(0x1, 0x8, Arg0, 0x0, 0x0))
}
Method(VTHR) {
    Return(SMI_(0x1, 0x9, 0x0, 0x0, 0x0))
}
Method(VBRC, 1) {
    SMI_(0x1, 0xa, Arg0, 0x0, 0x0)
}
Method(VBRG) {
    Return(SMI_(0x1, 0xe, 0x0, 0x0, 0x0))
}
Method(VBTD) {
    Return(SMI_(0x1, 0xf, 0x0, 0x0, 0x0))
}
Method(VHYB, 2) {
    Return(SMI_(0x1, 0x10, Arg0, Arg1, 0x0))
}
Method(VDYN, 2) {
    Return(SMI_(0x1, 0x11, Arg0, Arg1, 0x0))
}
Method(UCMS, 1) {
    Return(SMI_(0x2, Arg0, 0x0, 0x0, 0x0))
}
Method(BHDP, 2) {
    Return(SMI_(0x3, 0x0, Arg0, Arg1, 0x0))
}
Method(DHDP, 1) {
    Return(SMI_(0x3, 0x1, Arg0, 0x0, 0x0))
}
Method(STEP, 1) {
    SMI_(0x4, Arg0, 0x0, 0x0, 0x0)
}
Method(TRAP) {
    SMI_(0x5, 0x0, 0x0, 0x0, 0x0)
}
Method(CBRI) {
    SMI_(0x5, 0x1, 0x0, 0x0, 0x0)
}
Method(BCHK) {
    Return(SMI_(0x5, 0x4, 0x0, 0x0, 0x0))
}
Method(BYRS) {
    SMI_(0x5, 0x5, 0x0, 0x0, 0x0)
}
Method(BLTH, 1) {
    Return(SMI_(0x6, Arg0, 0x0, 0x0, 0x0))
}
Method(FISP) {
    SMI_(0x7, 0x0, 0x0, 0x0, 0x0)
}
Method(ATCC, 1) {
    SMI_(0x8, Arg0, 0x0, 0x0, 0x0)
}
Method(WGSV, 1) {
    Return(SMI_(0x9, Arg0, 0x0, 0x0, 0x0))
}
Method(THRM, 1) {
    Return(SMI_(0xa, Arg0, 0x0, 0x0, 0x0))
}
Method(ATMS, 1) {
    Return(SMI_(0xa, 0x3, 0x0, 0x0, 0x0))
}
Method(FSCT, 1) {
    Return(SMI_(0xa, 0x4, Arg0, 0x0, 0x0))
}
Method(SWTT, 1) {
    If(SMI_(0xa, 0x5, Arg0, 0x0, 0x0)) {
        If(\_SB_.PCI0.LPC_.EC__.HKEY.DHKC) {
            \_SB_.PCI0.LPC_.EC__.HKEY.MHKQ(0x6030)
        }
    }
}
Method(PPMS, 1) {
    Return(SMI_(0xb, Arg0, 0x0, 0x0, 0x0))
}
Method(TRAZ, 2) {
    Store(Arg1, SMIF)
    If(LEqual(Arg0, 0x1)) {
        Store(0x0, \_SB_.PCI0.LPC_.TRPI)
    }
    Return(SMIF)
}
Method(TPHY, 1) {
    SMI_(0xc, Arg0, 0x0, 0x0, 0x0)
}
Method(CSUM, 1) {
    Return(SMI_(0xe, Arg0, 0x0, 0x0, 0x0))
}
Method(NVSS, 1) {
    Return(SMI_(0xf, Arg0, 0x0, 0x0, 0x0))
}
Method(WMIS, 2) {
    Return(SMI_(0x10, Arg0, Arg1, 0x0, 0x0))
}
Method(PMON, 2) {
    Store(SizeOf(Arg0), Local0)
    Name(TSTR, Buffer(Local0) { })
    Store(Arg0, TSTR)
    Store(TSTR, \DBGS)
    SMI_(0x11, Arg1, 0x0, 0x0, 0x0)
}
Method(DPIO, 2) {
    If(LNot(Arg0)) {
        Return(0x0)
    }
    If(LGreater(Arg0, 0xf0)) {
        Return(0x0)
    }
    If(LGreater(Arg0, 0xb4)) {
        If(Arg1) {
            Return(0x2)
        }
        Else {
            Return(0x1)
        }
    }
    If(LGreater(Arg0, 0x78)) {
        Return(0x3)
    }
    Return(0x4)
}
Method(DUDM, 2) {
    If(LNot(Arg1)) {
        Return(0xff)
    }
    If(LGreater(Arg0, 0x5a)) {
        Return(0x0)
    }
    If(LGreater(Arg0, 0x3c)) {
        Return(0x1)
    }
    If(LGreater(Arg0, 0x2d)) {
        Return(0x2)
    }
    If(LGreater(Arg0, 0x1e)) {
        Return(0x3)
    }
    If(LGreater(Arg0, 0x14)) {
        Return(0x4)
    }
    Return(0x5)
}
Method(DMDM, 2) {
    If(Arg1) {
        Return(0x0)
    }
    If(LNot(Arg0)) {
        Return(0x0)
    }
    If(LGreater(Arg0, 0x96)) {
        Return(0x1)
    }
    If(LGreater(Arg0, 0x78)) {
        Return(0x2)
    }
    Return(0x3)
}
Method(UUDM, 2) {
    If(LNot(And(Arg0, 0x4))) {
        Return(0x0)
    }
    If(And(Arg1, 0x20)) {
        Return(0x14)
    }
    If(And(Arg1, 0x10)) {
        Return(0x1e)
    }
    If(And(Arg1, 0x8)) {
        Return(0x2d)
    }
    If(And(Arg1, 0x4)) {
        Return(0x3c)
    }
    If(And(Arg1, 0x2)) {
        Return(0x5a)
    }
    If(And(Arg1, 0x1)) {
        Return(0x78)
    }
    Return(0x0)
}
Method(UMDM, 4) {
    If(LNot(And(Arg0, 0x2))) {
        Return(0x0)
    }
    If(And(Arg1, 0x4)) {
        Return(Arg3)
    }
    If(And(Arg1, 0x2)) {
        If(LNot(LGreater(Arg3, 0x78))) {
            Return(0xb4)
        }
        Else {
            Return(Arg3)
        }
    }
    If(And(Arg2, 0x4)) {
        If(LNot(LGreater(Arg3, 0xb4))) {
            Return(0xf0)
        }
        Else {
            Return(Arg3)
        }
    }
    Return(0x0)
}
Method(UPIO, 4) {
    If(LNot(And(Arg0, 0x2))) {
        If(LEqual(Arg2, 0x2)) {
            Return(0xf0)
        }
        Else {
            Return(0x0384)
        }
    }
    If(And(Arg1, 0x2)) {
        Return(Arg3)
    }
    If(And(Arg1, 0x1)) {
        If(LNot(LGreater(Arg3, 0x78))) {
            Return(0xb4)
        }
        Else {
            Return(Arg3)
        }
    }
    If(LEqual(Arg2, 0x2)) {
        Return(0xf0)
    }
    Else {
        Return(0x0384)
    }
}
Method(FDMA, 2) {
    If(LNot(LEqual(Arg1, 0xff))) {
        Return(Or(Arg1, 0x40))
    }
    If(LNot(LLess(Arg0, 0x3))) {
        Return(Or(Subtract(Arg0, 0x2), 0x20))
    }
    If(Arg0) {
        Return(0x12)
    }
    Return(0x0)
}
Method(FPIO, 1) {
    If(LNot(LLess(Arg0, 0x3))) {
        Return(Or(Arg0, 0x8))
    }
    If(LEqual(Arg0, 0x1)) {
        Return(0x1)
    }
    Return(0x0)
}
Method(SCMP, 2) {
    Store(SizeOf(Arg0), Local0)
    If(LNot(LEqual(Local0, SizeOf(Arg1)))) {
        Return(One)
    }
    Increment(Local0)
    Name(STR1, Buffer(Local0) { })
    Name(STR2, Buffer(Local0) { })
    Store(Arg0, STR1)
    Store(Arg1, STR2)
    Store(Zero, Local1)
    While(LLess(Local1, Local0)) {
        Store(DerefOf(Index(STR1, Local1)), Local2)
        Store(DerefOf(Index(STR2, Local1)), Local3)
        If(LNot(LEqual(Local2, Local3))) {
            Return(One)
        }
        Increment(Local1)
    }
    Return(Zero)
}
Name(SPS_, 0x0)
Name(OSIF, 0x0)
Name(W98F, 0x0)
Name(WNTF, 0x0)
Name(WMEF, 0x0)
Name(WXPF, 0x0)
Name(WVIS, 0x0)
Name(WSPV, 0x0)
Name(LNUX, 0x0)
Name(H8DR, 0x0)
Name(MEMX, 0x0)
Name(ACST, 0x0)
Name(FNID, 0x0)
Name(RRBF, 0x0)
Name(NBCF, 0x0)

}
/*
SSDT: Length=51, Revision=1, Checksum=190,
	OEMID=LENOVO, OEM Table ID=TP-6F, OEM Revision=0x1160,
	Creator ID=MSFT, Creator Revision=0x3000000
 */
/*
ECDT: Length=82, Revision=1, Checksum=36,
	OEMID=LENOVO, OEM Table ID=TP-6F, OEM Revision=0x1160,
	Creator ID=LNVO, Creator Revision=0x1
 */
/*
APIC: Length=120, Revision=1, Checksum=6,
	OEMID=LENOVO, OEM Table ID=TP-6F, OEM Revision=0x1160,
	Creator ID=LNVO, Creator Revision=0x1
 */
/*
MCFG: Length=60, Revision=1, Checksum=86,
	OEMID=LENOVO, OEM Table ID=TP-6F, OEM Revision=0x1160,
	Creator ID=LNVO, Creator Revision=0x1
 */
/*
HPET: Length=56, Revision=1, Checksum=110,
	OEMID=LENOVO, OEM Table ID=TP-6F, OEM Revision=0x1160,
	Creator ID=LNVO, Creator Revision=0x1
 */
/*
SLIC: Length=374, Revision=1, Checksum=130,
	OEMID=LENOVO, OEM Table ID=TP-6F, OEM Revision=0x1160,
	Creator ID= LTP, Creator Revision=0x0
 */
/*
BOOT: Length=40, Revision=1, Checksum=108,
	OEMID=LENOVO, OEM Table ID=TP-6F, OEM Revision=0x1160,
	Creator ID= LTP, Creator Revision=0x1
 */
/*
ASF!: Length=160, Revision=16, Checksum=0,
	OEMID=LENOVO, OEM Table ID=TP-6F, OEM Revision=0x1160,
	Creator ID=PTL, Creator Revision=0x1
 */
/*
SSDT: Length=1359, Revision=1, Checksum=224,
	OEMID=LENOVO, OEM Table ID=TP-6F, OEM Revision=0x1160,
	Creator ID=INTL, Creator Revision=0x20050513
 */
/*
SSDT: Length=1621, Revision=1, Checksum=40,
	OEMID=PmRef, OEM Table ID=CpuPm, OEM Revision=0x3000,
	Creator ID=INTL, Creator Revision=0x20050624
 */
/*
SSDT: Length=628, Revision=1, Checksum=15,
	OEMID=PmRef, OEM Table ID=Cpu0Tst, OEM Revision=0x3000,
	Creator ID=INTL, Creator Revision=0x20050624
 */
/*
SSDT: Length=578, Revision=1, Checksum=238,
	OEMID=PmRef, OEM Table ID=ApTst, OEM Revision=0x3000,
	Creator ID=INTL, Creator Revision=0x20050624
 */

------- dmesg
OpenBSD 4.7-current (GENERIC.MP) #5: Sun Apr  4 21:07:56 EDT 2010
    
root@paladin.hsd1.mi.comcast.net.:/usr/src/sys/arch/i386/compile/GENERIC.MP
cpu0: Intel(R) Core(TM)2 Duo CPU T9600 @ 2.80GHz ("GenuineIntel" 686-class) 
2.80 GHz
cpu0: 
FPU,V86,DE,PSE,TSC,MSR,PAE,MCE,CX8,APIC,SEP,MTRR,PGE,MCA,CMOV,PAT,PSE36,CFLUSH,DS,ACPI,MMX,FXSR,SSE,SSE2,SS,HTT,TM,SBF,SSE3,MWAIT,DS-CPL,VMX,SMX,EST,TM2,SSSE3,CX16,xTPR,PDCM,SSE4.1
real mem  = 2123657216 (2025MB)
avail mem = 2048634880 (1953MB)
mainbus0 at root
bios0 at mainbus0: AT/286+ BIOS, date 09/24/08, BIOS32 rev. 0 @ 0xfdc80, 
SMBIOS rev. 2.4 @ 0xe0010 (74 entries)
bios0: vendor LENOVO version "6FET46WW (1.16 )" date 09/24/2008
bios0: LENOVO 4061CTO
acpi0 at bios0: rev 2
acpi0: tables DSDT FACP SSDT ECDT APIC MCFG HPET SLIC BOOT ASF! SSDT SSDT SSDT 
SSDT
acpi0: wakeup devices LID_(S3) SLPB(S3) UART(S3) IGBE(S4) EXP0(S4) EXP1(S4) 
EXP2(S4) EXP3(S4) EXP4(S4) PCI1(S4) USB0(S3) USB1(S3) USB2(S3) USB3(S3) USB4
(S3) USB5(S3) EHC0(S3) EHC1(S3) HDEF(S4)
acpitimer0 at acpi0: 3579545 Hz, 24 bits
acpimadt0 at acpi0 addr 0xfee00000: PC-AT compat
cpu0 at mainbus0: apid 0 (boot processor)
cpu0: apic clock running at 265MHz
cpu1 at mainbus0: apid 1 (application processor)
cpu1: Intel(R) Core(TM)2 Duo CPU T9600 @ 2.80GHz ("GenuineIntel" 686-class) 
2.80 GHz
cpu1: 
FPU,V86,DE,PSE,TSC,MSR,PAE,MCE,CX8,APIC,SEP,MTRR,PGE,MCA,CMOV,PAT,PSE36,CFLUSH,DS,ACPI,MMX,FXSR,SSE,SSE2,SS,HTT,TM,SBF,SSE3,MWAIT,DS-CPL,VMX,SMX,EST,TM2,SSSE3,CX16,xTPR,PDCM,SSE4.1
ioapic0 at mainbus0: apid 1 pa 0xfec00000, version 20, 24 pins
ioapic0: misconfigured as apic 2, remapped to apid 1
acpihpet0 at acpi0: 14318179 Hz
acpiprt0 at acpi0: bus 0 (PCI0)
acpiprt1 at acpi0: bus 1 (AGP_)
acpiprt2 at acpi0: bus 2 (EXP0)
acpiprt3 at acpi0: bus 3 (EXP1)
acpiprt4 at acpi0: bus -1 (EXP2)
acpiprt5 at acpi0: bus 5 (EXP3)
acpiprt6 at acpi0: bus 13 (EXP4)
acpiprt7 at acpi0: bus 21 (PCI1)
acpiec0 at acpi0
acpicpu0 at acpi0: C3, C2, C1, PSS
acpicpu1 at acpi0: C3, C2, C1, PSS
acpipwrres0 at acpi0: PUBS
acpitz0 at acpi0: critical temperature 127 degC
acpitz1 at acpi0: critical temperature 100 degC
acpibtn0 at acpi0: LID_
acpibtn1 at acpi0: SLPB
acpibat0 at acpi0: BAT0 model "42T4619" serial 30781 type LION oem "SANYO"
acpibat1 at acpi0: BAT1 not present
acpiac0 at acpi0: AC unit online
acpithinkpad0 at acpi0
acpidock0 at acpi0: GDCK not docked (0)
bios0: ROM list: 0xc0000/0xfc00 0xd0000/0x1000 0xd1000/0x1000 0xd2000/0x1000 
0xde000/0x1800! 0xe0000/0x10000
cpu0: Enhanced SpeedStep 2793 MHz: speeds: 2801, 2800, 2133, 1600, 800 MHz
pci0 at mainbus0 bus 0: configuration mode 1 (bios)
pchb0 at pci0 dev 0 function 0 "Intel GM45 Host" rev 0x07
ppb0 at pci0 dev 1 function 0 "Intel GM45 PCIE" rev 0x07: apic 1 int 16 (irq 
11)
pci1 at ppb0 bus 1
vga1 at pci1 dev 0 function 0 "ATI Mobility Radeon HD 3650" rev 0x00
wsdisplay0 at vga1 mux 1: console (80x25, vt100 emulation)
wsdisplay0: screen 1-5 added (80x25, vt100 emulation)
radeondrm0 at vga1: apic 1 int 16 (irq 11)
drm0 at radeondrm0
"Intel GM45 HECI" rev 0x07 at pci0 dev 3 function 0 not configured
pciide0 at pci0 dev 3 function 2 "Intel GM45 PT IDER" rev 0x07: DMA 
(unsupported), channel 0 wired to native-PCI, channel 1 wired to native-PCI
pciide0: using apic 1 int 18 (irq 11) for native-PCI interrupt
pciide0: channel 0 ignored (not responding; disabled or no drives?)
pciide0: channel 1 ignored (not responding; disabled or no drives?)
"Intel GM45 AMT SOL" rev 0x07 at pci0 dev 3 function 3 not configured
em0 at pci0 dev 25 function 0 "Intel ICH9 IGP M AMT" rev 0x03: apic 1 int 20 
(irq 11), address 00:1c:25:99:d7:77
uhci0 at pci0 dev 26 function 0 "Intel 82801I USB" rev 0x03: apic 1 int 20 
(irq 11)
uhci1 at pci0 dev 26 function 1 "Intel 82801I USB" rev 0x03: apic 1 int 21 
(irq 11)
uhci2 at pci0 dev 26 function 2 "Intel 82801I USB" rev 0x03: apic 1 int 22 
(irq 11)
ehci0 at pci0 dev 26 function 7 "Intel 82801I USB" rev 0x03: apic 1 int 23 
(irq 11)
usb0 at ehci0: USB revision 2.0
uhub0 at usb0 "Intel EHCI root hub" rev 2.00/1.00 addr 1
azalia0 at pci0 dev 27 function 0 "Intel 82801I HD Audio" rev 0x03: apic 1 int 
17 (irq 11)
azalia0: codecs: Conexant CX20561, Conexant/0x2c06, using Conexant CX20561
audio0 at azalia0
ppb1 at pci0 dev 28 function 0 "Intel 82801I PCIE" rev 0x03: apic 1 int 20 
(irq 11)
pci2 at ppb1 bus 2
ppb2 at pci0 dev 28 function 1 "Intel 82801I PCIE" rev 0x03: apic 1 int 21 
(irq 11)
pci3 at ppb2 bus 3
iwn0 at pci3 dev 0 function 0 "Intel WiFi Link 5300" rev 0x00: apic 1 int 17 
(irq 11), MIMO 3T3R, MoW, address 00:21:6a:01:d0:b6
ppb3 at pci0 dev 28 function 3 "Intel 82801I PCIE" rev 0x03: apic 1 int 23 
(irq 11)
pci4 at ppb3 bus 5
ppb4 at pci0 dev 28 function 4 "Intel 82801I PCIE" rev 0x03: apic 1 int 20 
(irq 11)
pci5 at ppb4 bus 13
uhci3 at pci0 dev 29 function 0 "Intel 82801I USB" rev 0x03: apic 1 int 16 
(irq 11)
uhci4 at pci0 dev 29 function 1 "Intel 82801I USB" rev 0x03: apic 1 int 17 
(irq 11)
uhci5 at pci0 dev 29 function 2 "Intel 82801I USB" rev 0x03: apic 1 int 18 
(irq 11)
ehci1 at pci0 dev 29 function 7 "Intel 82801I USB" rev 0x03: apic 1 int 19 
(irq 11)
usb1 at ehci1: USB revision 2.0
uhub1 at usb1 "Intel EHCI root hub" rev 2.00/1.00 addr 1
ppb5 at pci0 dev 30 function 0 "Intel 82801BAM Hub-to-PCI" rev 0x93
pci6 at ppb5 bus 21
cbb0 at pci6 dev 0 function 0 "Ricoh 5C476 CardBus" rev 0xba: apic 1 int 16 
(irq 11)
"Ricoh 5C832 Firewire" rev 0x04 at pci6 dev 0 function 1 not configured
sdhc0 at pci6 dev 0 function 2 "Ricoh 5C822 SD/MMC" rev 0x21: apic 1 int 18 
(irq 11)
sdmmc0 at sdhc0
"Ricoh 5C843 MMC" rev 0x11 at pci6 dev 0 function 3 not configured
"Ricoh 5C592 Memory Stick" rev 0x11 at pci6 dev 0 function 4 not configured
"Ricoh 5C852 xD" rev 0x11 at pci6 dev 0 function 5 not configured
cardslot0 at cbb0 slot 0 flags 0
cardbus0 at cardslot0: bus 22 device 0 cacheline 0x0, lattimer 0xb0
pcmcia0 at cardslot0
pcib0 at pci0 dev 31 function 0 "Intel 82801IEM LPC" rev 0x03
ahci0 at pci0 dev 31 function 2 "Intel 82801I AHCI" rev 0x03: apic 1 int 16 
(irq 11), AHCI 1.2
scsibus0 at ahci0: 32 targets
sd0 at scsibus0 targ 0 lun 0: <ATA, ST9500420AS, 0002> SCSI3 0/direct fixed
sd0: 476940MB, 512 bytes/sec, 976773168 sec total
sd1 at scsibus0 targ 1 lun 0: <ATA, WDC WD6400BEVT-0, 01.0> SCSI3 0/direct 
fixed
sd1: 610480MB, 512 bytes/sec, 1250263728 sec total
ichiic0 at pci0 dev 31 function 3 "Intel 82801I SMBus" rev 0x03: apic 1 int 23 
(irq 11)
iic0 at ichiic0
usb2 at uhci0: USB revision 1.0
uhub2 at usb2 "Intel UHCI root hub" rev 1.00/1.00 addr 1
usb3 at uhci1: USB revision 1.0
uhub3 at usb3 "Intel UHCI root hub" rev 1.00/1.00 addr 1
usb4 at uhci2: USB revision 1.0
uhub4 at usb4 "Intel UHCI root hub" rev 1.00/1.00 addr 1
usb5 at uhci3: USB revision 1.0
uhub5 at usb5 "Intel UHCI root hub" rev 1.00/1.00 addr 1
usb6 at uhci4: USB revision 1.0
uhub6 at usb6 "Intel UHCI root hub" rev 1.00/1.00 addr 1
usb7 at uhci5: USB revision 1.0
uhub7 at usb7 "Intel UHCI root hub" rev 1.00/1.00 addr 1
isa0 at pcib0
isadma0 at isa0
pckbc0 at isa0 port 0x60/5
pckbd0 at pckbc0 (kbd slot)
pckbc0: using irq 1 for kbd slot
wskbd0 at pckbd0: console keyboard, using wsdisplay0
pms0 at pckbc0 (aux slot)
pckbc0: using irq 12 for aux slot
wsmouse0 at pms0 mux 0
pcppi0 at isa0 port 0x61
midi0 at pcppi0: <PC speaker>
spkr0 at pcppi0
aps0 at isa0 port 0x1600/31
npx0 at isa0 port 0xf0/16: reported by CPUID; using exception 16
mtrr: Pentium Pro MTRR support
com3 at pcmcia0 function 0 "U.S. Robotics, XJ/CC1560, Megahertz 56kbps Modem" 
port 0x53f8/8: ns16550a, 16 byte fifo
scsibus1 at sdmmc0: 2 targets, initiator 0
sd2 at scsibus1 targ 1 lun 0: <SD/MMC, Drive #01, > SCSI2 0/direct fixed
sd2: 15534MB, 512 bytes/sec, 31813632 sec total
ubt0 at uhub3 port 2 "Lenovo Computer Corp ThinkPad Bluetooth with Enhanced 
Data Rate II" rev 2.00/3.52 addr 2
vscsi0 at root
scsibus2 at vscsi0: 256 targets
softraid0 at root
root on sd0a swap on sd0b dump on sd0b
WARNING: / was not properly unmounted
syncing disks... done
uhci3: host controller halted
rebooting...
OpenBSD 4.7-current (GENERIC) #6: Wed Apr  7 20:46:26 EDT 2010
    root@paladin.hsd1.mi.comcast.net.:/usr/src/sys/arch/i386/compile/GENERIC
cpu0: Intel(R) Core(TM)2 Duo CPU T9600 @ 2.80GHz ("GenuineIntel" 686-class) 
2.80 GHz
cpu0: 
FPU,V86,DE,PSE,TSC,MSR,PAE,MCE,CX8,APIC,SEP,MTRR,PGE,MCA,CMOV,PAT,PSE36,CFLUSH,DS,ACPI,MMX,FXSR,SSE,SSE2,SS,HTT,TM,SBF,SSE3,MWAIT,DS-CPL,VMX,SMX,EST,TM2,SSSE3,CX16,xTPR,PDCM,SSE4.1
real mem  = 2123657216 (2025MB)
avail mem = 2048655360 (1953MB)
mainbus0 at root
bios0 at mainbus0: AT/286+ BIOS, date 09/24/08, BIOS32 rev. 0 @ 0xfdc80, 
SMBIOS rev. 2.4 @ 0xe0010 (74 entries)
bios0: vendor LENOVO version "6FET46WW (1.16 )" date 09/24/2008
bios0: LENOVO 4061CTO
acpi0 at bios0: rev 2
acpi0: tables DSDT FACP SSDT ECDT APIC MCFG HPET SLIC BOOT ASF! SSDT SSDT SSDT 
SSDT
acpi0: wakeup devices LID_(S3) SLPB(S3) UART(S3) IGBE(S4) EXP0(S4) EXP1(S4) 
EXP2(S4) EXP3(S4) EXP4(S4) PCI1(S4) USB0(S3) USB1(S3) USB2(S3) USB3(S3) USB4
(S3) USB5(S3) EHC0(S3) EHC1(S3) HDEF(S4)
acpitimer0 at acpi0: 3579545 Hz, 24 bits
acpimadt0 at acpi0 addr 0xfee00000: PC-AT compat
cpu0 at mainbus0: apid 0 (boot processor)
cpu0: apic clock running at 266MHz
cpu at mainbus0: not configured
ioapic0 at mainbus0: apid 1 pa 0xfec00000, version 20, 24 pins
ioapic0: misconfigured as apic 2, remapped to apid 1
acpihpet0 at acpi0: 14318179 Hz
acpiprt0 at acpi0: bus 0 (PCI0)
acpiprt1 at acpi0: bus 1 (AGP_)
acpiprt2 at acpi0: bus 2 (EXP0)
acpiprt3 at acpi0: bus 3 (EXP1)
acpiprt4 at acpi0: bus -1 (EXP2)
acpiprt5 at acpi0: bus 5 (EXP3)
acpiprt6 at acpi0: bus 13 (EXP4)
acpiprt7 at acpi0: bus 21 (PCI1)
acpiec0 at acpi0
acpicpu0 at acpi0: C3, C2, C1, PSS
acpipwrres0 at acpi0: PUBS
acpitz0 at acpi0: critical temperature 127 degC
acpitz1 at acpi0: critical temperature 100 degC
acpibtn0 at acpi0: LID_
acpibtn1 at acpi0: SLPB
acpibat0 at acpi0: BAT0 model "42T4619" serial 30781 type LION oem "SANYO"
acpibat1 at acpi0: BAT1 not present
acpiac0 at acpi0: AC unit online
acpithinkpad0 at acpi0
acpidock0 at acpi0: GDCK not docked (0)
bios0: ROM list: 0xc0000/0xfc00 0xd0000/0x1000 0xd1000/0x1000 0xd2000/0x1000 
0xde000/0x1800! 0xe0000/0x10000
cpu0: Enhanced SpeedStep 2794 MHz: speeds: 2801, 2800, 2133, 1600, 800 MHz
pci0 at mainbus0 bus 0: configuration mode 1 (bios)
pchb0 at pci0 dev 0 function 0 "Intel GM45 Host" rev 0x07
ppb0 at pci0 dev 1 function 0 "Intel GM45 PCIE" rev 0x07: apic 1 int 16 (irq 
11)
pci1 at ppb0 bus 1
vga1 at pci1 dev 0 function 0 "ATI Mobility Radeon HD 3650" rev 0x00
wsdisplay0 at vga1 mux 1: console (80x25, vt100 emulation)
wsdisplay0: screen 1-5 added (80x25, vt100 emulation)
radeondrm0 at vga1: apic 1 int 16 (irq 11)
drm0 at radeondrm0
"Intel GM45 HECI" rev 0x07 at pci0 dev 3 function 0 not configured
pciide0 at pci0 dev 3 function 2 "Intel GM45 PT IDER" rev 0x07: DMA 
(unsupported), channel 0 wired to native-PCI, channel 1 wired to native-PCI
pciide0: using apic 1 int 18 (irq 11) for native-PCI interrupt
pciide0: channel 0 ignored (not responding; disabled or no drives?)
pciide0: channel 1 ignored (not responding; disabled or no drives?)
"Intel GM45 AMT SOL" rev 0x07 at pci0 dev 3 function 3 not configured
em0 at pci0 dev 25 function 0 "Intel ICH9 IGP M AMT" rev 0x03: apic 1 int 20 
(irq 11), address 00:1c:25:99:d7:77
uhci0 at pci0 dev 26 function 0 "Intel 82801I USB" rev 0x03: apic 1 int 20 
(irq 11)
uhci1 at pci0 dev 26 function 1 "Intel 82801I USB" rev 0x03: apic 1 int 21 
(irq 11)
uhci2 at pci0 dev 26 function 2 "Intel 82801I USB" rev 0x03: apic 1 int 22 
(irq 11)
ehci0 at pci0 dev 26 function 7 "Intel 82801I USB" rev 0x03: apic 1 int 23 
(irq 11)
usb0 at ehci0: USB revision 2.0
uhub0 at usb0 "Intel EHCI root hub" rev 2.00/1.00 addr 1
azalia0 at pci0 dev 27 function 0 "Intel 82801I HD Audio" rev 0x03: apic 1 int 
17 (irq 11)
azalia0: codecs: Conexant CX20561, Conexant/0x2c06, using Conexant CX20561
audio0 at azalia0
ppb1 at pci0 dev 28 function 0 "Intel 82801I PCIE" rev 0x03: apic 1 int 20 
(irq 11)
pci2 at ppb1 bus 2
ppb2 at pci0 dev 28 function 1 "Intel 82801I PCIE" rev 0x03: apic 1 int 21 
(irq 11)
pci3 at ppb2 bus 3
iwn0 at pci3 dev 0 function 0 "Intel WiFi Link 5300" rev 0x00: apic 1 int 17 
(irq 11), MIMO 3T3R, MoW, address 00:21:6a:01:d0:b6
ppb3 at pci0 dev 28 function 3 "Intel 82801I PCIE" rev 0x03: apic 1 int 23 
(irq 11)
pci4 at ppb3 bus 5
ppb4 at pci0 dev 28 function 4 "Intel 82801I PCIE" rev 0x03: apic 1 int 20 
(irq 11)
pci5 at ppb4 bus 13
uhci3 at pci0 dev 29 function 0 "Intel 82801I USB" rev 0x03: apic 1 int 16 
(irq 11)
uhci4 at pci0 dev 29 function 1 "Intel 82801I USB" rev 0x03: apic 1 int 17 
(irq 11)
uhci5 at pci0 dev 29 function 2 "Intel 82801I USB" rev 0x03: apic 1 int 18 
(irq 11)
ehci1 at pci0 dev 29 function 7 "Intel 82801I USB" rev 0x03: apic 1 int 19 
(irq 11)
usb1 at ehci1: USB revision 2.0
uhub1 at usb1 "Intel EHCI root hub" rev 2.00/1.00 addr 1
ppb5 at pci0 dev 30 function 0 "Intel 82801BAM Hub-to-PCI" rev 0x93
pci6 at ppb5 bus 21
cbb0 at pci6 dev 0 function 0 "Ricoh 5C476 CardBus" rev 0xba: apic 1 int 16 
(irq 11)
"Ricoh 5C832 Firewire" rev 0x04 at pci6 dev 0 function 1 not configured
sdhc0 at pci6 dev 0 function 2 "Ricoh 5C822 SD/MMC" rev 0x21: apic 1 int 18 
(irq 11)
sdmmc0 at sdhc0
"Ricoh 5C843 MMC" rev 0x11 at pci6 dev 0 function 3 not configured
"Ricoh 5C592 Memory Stick" rev 0x11 at pci6 dev 0 function 4 not configured
"Ricoh 5C852 xD" rev 0x11 at pci6 dev 0 function 5 not configured
cardslot0 at cbb0 slot 0 flags 0
cardbus0 at cardslot0: bus 22 device 0 cacheline 0x0, lattimer 0xb0
pcmcia0 at cardslot0
pcib0 at pci0 dev 31 function 0 "Intel 82801IEM LPC" rev 0x03
ahci0 at pci0 dev 31 function 2 "Intel 82801I AHCI" rev 0x03: apic 1 int 16 
(irq 11), AHCI 1.2
scsibus0 at ahci0: 32 targets
sd0 at scsibus0 targ 0 lun 0: <ATA, ST9500420AS, 0002> SCSI3 0/direct fixed
sd0: 476940MB, 512 bytes/sec, 976773168 sec total
sd1 at scsibus0 targ 1 lun 0: <ATA, WDC WD6400BEVT-0, 01.0> SCSI3 0/direct 
fixed
sd1: 610480MB, 512 bytes/sec, 1250263728 sec total
ichiic0 at pci0 dev 31 function 3 "Intel 82801I SMBus" rev 0x03: apic 1 int 23 
(irq 11)
iic0 at ichiic0
usb2 at uhci0: USB revision 1.0
uhub2 at usb2 "Intel UHCI root hub" rev 1.00/1.00 addr 1
usb3 at uhci1: USB revision 1.0
uhub3 at usb3 "Intel UHCI root hub" rev 1.00/1.00 addr 1
usb4 at uhci2: USB revision 1.0
uhub4 at usb4 "Intel UHCI root hub" rev 1.00/1.00 addr 1
usb5 at uhci3: USB revision 1.0
uhub5 at usb5 "Intel UHCI root hub" rev 1.00/1.00 addr 1
usb6 at uhci4: USB revision 1.0
uhub6 at usb6 "Intel UHCI root hub" rev 1.00/1.00 addr 1
usb7 at uhci5: USB revision 1.0
uhub7 at usb7 "Intel UHCI root hub" rev 1.00/1.00 addr 1
isa0 at pcib0
isadma0 at isa0
pckbc0 at isa0 port 0x60/5
pckbd0 at pckbc0 (kbd slot)
pckbc0: using irq 1 for kbd slot
wskbd0 at pckbd0: console keyboard, using wsdisplay0
pms0 at pckbc0 (aux slot)
pckbc0: using irq 12 for aux slot
wsmouse0 at pms0 mux 0
pcppi0 at isa0 port 0x61
midi0 at pcppi0: <PC speaker>
spkr0 at pcppi0
aps0 at isa0 port 0x1600/31
npx0 at isa0 port 0xf0/16: reported by CPUID; using exception 16
mtrr: Pentium Pro MTRR support
com3 at pcmcia0 function 0 "U.S. Robotics, XJ/CC1560, Megahertz 56kbps Modem" 
port 0x53f8/8: ns16550a, 16 byte fifo
scsibus1 at sdmmc0: 2 targets, initiator 0
sd2 at scsibus1 targ 1 lun 0: <SD/MMC, Drive #01, > SCSI2 0/direct fixed
sd2: 15534MB, 512 bytes/sec, 31813632 sec total
ubt0 at uhub3 port 2 "Lenovo Computer Corp ThinkPad Bluetooth with Enhanced 
Data Rate II" rev 2.00/3.52 addr 2
vscsi0 at root
scsibus2 at vscsi0: 256 targets
softraid0 at root
root on sd0a swap on sd0b dump on sd0b
Previous message: [thread] [date] [author]
Next message: [thread] [date] [author]

Messages in current thread:
ACPI so close I can almost taste it..., STeve Andre', (Wed Apr 7, 6:13 pm)
Re: ACPI so close I can almost taste it..., STeve Andre', (Thu Apr 8, 8:29 am)
Re: ACPI so close I can almost taste it..., Kurt Mosiejczuk, (Thu Apr 8, 10:10 am)
Re: ACPI so close I can almost taste it..., STeve Andre', (Thu Apr 8, 11:17 am)
Re: ACPI so close I can almost taste it..., Kurt Mosiejczuk, (Thu Apr 8, 12:22 pm)
Re: ACPI so close I can almost taste it..., Stuart Henderson, (Thu Apr 8, 1:23 pm)
Re: ACPI so close I can almost taste it..., STeve Andre', (Thu Apr 8, 5:53 pm)
Re: ACPI so close I can almost taste it..., Josh Rickmar, (Fri Apr 9, 12:37 am)
Re: ACPI so close I can almost taste it..., STeve Andre', (Fri Apr 9, 12:44 pm)
Re: ACPI so close I can almost taste it..., Josh Rickmar, (Fri Apr 9, 11:36 pm)
Re: ACPI so close I can almost taste it..., Pau, (Sat Apr 10, 5:32 am)
Re: ACPI so close I can almost taste it..., Pau, (Sat Apr 10, 9:26 am)
Re: ACPI so close I can almost taste it..., Gabriel Kihlman, (Sun Apr 11, 9:15 am)
Re: ACPI so close I can almost taste it..., Pau, (Sun Apr 11, 11:40 am)
Re: ACPI so close I can almost taste it..., Josh Grosse, (Sun Apr 11, 11:52 am)
Re: ACPI so close I can almost taste it..., Pau, (Mon Apr 12, 4:27 pm)
Re: ACPI so close I can almost taste it..., Jean-Michel Bessot, (Fri Apr 16, 11:14 pm)
Re: ACPI so close I can almost taste it..., Pau, (Sat Apr 17, 8:13 am)
Re: ACPI so close I can almost taste it..., Marco Peereboom, (Sat Apr 17, 8:36 am)
Re: ACPI so close I can almost taste it..., Pau, (Sat Apr 17, 10:25 am)
Re: ACPI so close I can almost taste it..., Neal Hogan, (Sun Apr 18, 7:03 am)
Re: ACPI so close I can almost taste it..., Neal Hogan, (Mon Apr 19, 4:38 am)
Re: ACPI so close I can almost taste it..., Pau, (Mon Apr 19, 5:50 am)