diff mbox series

[PULL,v4,45/48] tests/acpi: update golden master DSDT binary table blobs for q35

Message ID 20200929071948.281157-46-mst@redhat.com (mailing list archive)
State New, archived
Headers show
Series [PULL,v4,01/48] linux headers: sync to 5.9-rc4 | expand

Commit Message

Michael S. Tsirkin Sept. 29, 2020, 7:22 a.m. UTC
From: Ani Sinha <ani@anisinha.ca>

In the previously applied commit ("piix4: don't reserve hw resources when
hotplug is off globally"), we make changes to the ACPI DSDT tables
such that some ACPI code are not generated when bsel is absent. Since
as of this point in time, in q35 machines, we do not use bsel for pci
buses, we need to update the DSDT table blobs.
This patch updates the DSDT golden master tables for q35 machines.
At the same time, we clear bios-tables-test-allowed-diff.h for future
changes which update tables.

Following is a typical diff between the q35 acpi DSDT table blobs:

@@ -1,30 +1,30 @@
 /*
  * Intel ACPI Component Architecture
  * AML/ASL+ Disassembler version 20180105 (64-bit version)
  * Copyright (c) 2000 - 2018 Intel Corporation
  *
  * Disassembling to symbolic ASL+ operators
  *
- * Disassembly of tests/data/acpi/q35/DSDT, Tue Sep 15 18:52:47 2020
+ * Disassembly of /tmp/aml-3O0DR0, Tue Sep 15 18:52:47 2020
  *
  * Original Table Header:
  *     Signature        "DSDT"
- *     Length           0x00001DFE (7678)
+ *     Length           0x00001DF6 (7670)
  *     Revision         0x01 **** 32-bit table (V1), no 64-bit math support
- *     Checksum         0xAC
+ *     Checksum         0x17
  *     OEM ID           "BOCHS "
  *     OEM Table ID     "BXPCDSDT"
  *     OEM Revision     0x00000001 (1)
  *     Compiler ID      "BXPC"
  *     Compiler Version 0x00000001 (1)
  */
 DefinitionBlock ("", "DSDT", 1, "BOCHS ", "BXPCDSDT", 0x00000001)
 {
     Scope (\)
     {
         OperationRegion (DBG, SystemIO, 0x0402, One)
         Field (DBG, ByteAcc, NoLock, Preserve)
         {
             DBGB,   8
         }

@@ -3113,24 +3113,20 @@
                 Name (_ADR, 0x00010000)  // _ADR: Address
                 Method (_S1D, 0, NotSerialized)  // _S1D: S1 Device State
                 {
                     Return (Zero)
                 }

                 Method (_S2D, 0, NotSerialized)  // _S2D: S2 Device State
                 {
                     Return (Zero)
                 }

                 Method (_S3D, 0, NotSerialized)  // _S3D: S3 Device State
                 {
                     Return (Zero)
                 }
             }
-
-            Method (PCNT, 0, NotSerialized)
-            {
-            }
         }
     }
 }

Signed-off-by: Ani Sinha <ani@anisinha.ca>
Acked-by: Igor Mammedov <imammedo@redhat.com>
Message-Id: <20200918084111.15339-12-ani@anisinha.ca>
Reviewed-by: Michael S. Tsirkin <mst@redhat.com>
Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
---
 tests/qtest/bios-tables-test-allowed-diff.h   |   10 -
 tests/test-qapi-event.c                       |  198 +
 tests/test-qmp-introspect.c                   |   58 +
 tests/test-qmp-marshal.c                      |  383 ++
 tests/.vhost-user-test.c.swo                  |  Bin 0 -> 16384 bytes
 tests/Makefile.include.orig                   | 1012 +++++
 tests/Makefile.orig                           |  569 +++
 tests/bios-tables-test.c.orig                 |  925 +++++
 tests/data/acpi/diff-aml.sh                   |    0
 tests/data/acpi/disassemle-aml.py             |   21 +
 tests/data/acpi/microvm/APIC.dsl              |   56 +
 tests/data/acpi/microvm/DSDT.dsl              |  121 +
 tests/data/acpi/microvm/FACP.dsl              |  196 +
 tests/data/acpi/pc/APIC.acpihmat.dsl          |  112 +
 tests/data/acpi/pc/APIC.bridge                |  Bin 0 -> 120 bytes
 tests/data/acpi/pc/APIC.bridge.dsl            |  104 +
 tests/data/acpi/pc/APIC.cphp.dsl              |  146 +
 tests/data/acpi/pc/APIC.dimmpxm.dsl           |  129 +
 tests/data/acpi/pc/APIC.dsl                   |  104 +
 tests/data/acpi/pc/APIC.hpbridge              |  Bin 0 -> 120 bytes
 tests/data/acpi/pc/APIC.ipmikcs               |  Bin 0 -> 120 bytes
 tests/data/acpi/pc/APIC.ipmikcs.dsl           |  104 +
 tests/data/acpi/pc/APIC.memhp                 |  Bin 0 -> 120 bytes
 tests/data/acpi/pc/APIC.memhp.dsl             |  104 +
 tests/data/acpi/pc/APIC.numamem               |  Bin 0 -> 120 bytes
 tests/data/acpi/pc/APIC.numamem.dsl           |  104 +
 tests/data/acpi/pc/APIC.roothp                |  Bin 0 -> 120 bytes
 tests/data/acpi/pc/DSDT.acpihmat.dsl          | 1619 ++++++++
 tests/data/acpi/pc/DSDT.bridge.dsl            | 1800 +++++++++
 tests/data/acpi/pc/DSDT.cphp.dsl              | 1466 +++++++
 tests/data/acpi/pc/DSDT.dimmpxm.dsl           | 1719 ++++++++
 tests/data/acpi/pc/DSDT.dsl                   | 1407 +++++++
 tests/data/acpi/pc/DSDT.hpbridge              |  Bin 4895 -> 5021 bytes
 tests/data/acpi/pc/DSDT.ipmikcs.dsl           | 1337 +++++++
 tests/data/acpi/pc/DSDT.memhp.dsl             | 1625 ++++++++
 tests/data/acpi/pc/DSDT.numamem.dsl           | 1321 ++++++
 tests/data/acpi/pc/DSDT.roothp                |  Bin 5130 -> 5256 bytes
 tests/data/acpi/pc/FACP.acpihmat              |  Bin 0 -> 116 bytes
 tests/data/acpi/pc/FACP.acpihmat.dsl          |   99 +
 tests/data/acpi/pc/FACP.bridge                |  Bin 0 -> 116 bytes
 tests/data/acpi/pc/FACP.bridge.dsl            |   99 +
 tests/data/acpi/pc/FACP.cphp                  |  Bin 0 -> 116 bytes
 tests/data/acpi/pc/FACP.cphp.dsl              |   99 +
 tests/data/acpi/pc/FACP.dimmpxm               |  Bin 0 -> 116 bytes
 tests/data/acpi/pc/FACP.dimmpxm.dsl           |   99 +
 tests/data/acpi/pc/FACP.dsl                   |   99 +
 tests/data/acpi/pc/FACP.hpbridge              |  Bin 0 -> 116 bytes
 tests/data/acpi/pc/FACP.ipmikcs               |  Bin 0 -> 116 bytes
 tests/data/acpi/pc/FACP.ipmikcs.dsl           |   99 +
 tests/data/acpi/pc/FACP.memhp                 |  Bin 0 -> 116 bytes
 tests/data/acpi/pc/FACP.memhp.dsl             |   99 +
 tests/data/acpi/pc/FACP.numamem               |  Bin 0 -> 116 bytes
 tests/data/acpi/pc/FACP.numamem.dsl           |   99 +
 tests/data/acpi/pc/FACP.roothp                |  Bin 0 -> 116 bytes
 tests/data/acpi/pc/FACS.acpihmat              |  Bin 0 -> 64 bytes
 tests/data/acpi/pc/FACS.acpihmat.dsl          |   32 +
 tests/data/acpi/pc/FACS.bridge                |  Bin 0 -> 64 bytes
 tests/data/acpi/pc/FACS.bridge.dsl            |   32 +
 tests/data/acpi/pc/FACS.cphp                  |  Bin 0 -> 64 bytes
 tests/data/acpi/pc/FACS.cphp.dsl              |   32 +
 tests/data/acpi/pc/FACS.dimmpxm               |  Bin 0 -> 64 bytes
 tests/data/acpi/pc/FACS.dimmpxm.dsl           |   32 +
 tests/data/acpi/pc/FACS.dsl                   |   32 +
 tests/data/acpi/pc/FACS.hpbridge              |  Bin 0 -> 64 bytes
 tests/data/acpi/pc/FACS.ipmikcs               |  Bin 0 -> 64 bytes
 tests/data/acpi/pc/FACS.ipmikcs.dsl           |   32 +
 tests/data/acpi/pc/FACS.memhp                 |  Bin 0 -> 64 bytes
 tests/data/acpi/pc/FACS.memhp.dsl             |   32 +
 tests/data/acpi/pc/FACS.numamem               |  Bin 0 -> 64 bytes
 tests/data/acpi/pc/FACS.numamem.dsl           |   32 +
 tests/data/acpi/pc/FACS.roothp                |  Bin 0 -> 64 bytes
 tests/data/acpi/pc/HMAT.acpihmat.dsl          |  132 +
 tests/data/acpi/pc/HMAT.dsl                   |  132 +
 tests/data/acpi/pc/HPET.acpihmat              |  Bin 0 -> 56 bytes
 tests/data/acpi/pc/HPET.acpihmat.dsl          |   43 +
 tests/data/acpi/pc/HPET.bridge                |  Bin 0 -> 56 bytes
 tests/data/acpi/pc/HPET.bridge.dsl            |   43 +
 tests/data/acpi/pc/HPET.cphp                  |  Bin 0 -> 56 bytes
 tests/data/acpi/pc/HPET.cphp.dsl              |   43 +
 tests/data/acpi/pc/HPET.dimmpxm               |  Bin 0 -> 56 bytes
 tests/data/acpi/pc/HPET.dimmpxm.dsl           |   43 +
 tests/data/acpi/pc/HPET.dsl                   |   43 +
 tests/data/acpi/pc/HPET.hpbridge              |  Bin 0 -> 56 bytes
 tests/data/acpi/pc/HPET.ipmikcs               |  Bin 0 -> 56 bytes
 tests/data/acpi/pc/HPET.ipmikcs.dsl           |   43 +
 tests/data/acpi/pc/HPET.memhp                 |  Bin 0 -> 56 bytes
 tests/data/acpi/pc/HPET.memhp.dsl             |   43 +
 tests/data/acpi/pc/HPET.numamem               |  Bin 0 -> 56 bytes
 tests/data/acpi/pc/HPET.numamem.dsl           |   43 +
 tests/data/acpi/pc/HPET.roothp                |  Bin 0 -> 56 bytes
 tests/data/acpi/pc/NFIT.dimmpxm.dsl           |  115 +
 tests/data/acpi/pc/NFIT.dsl                   |  115 +
 tests/data/acpi/pc/SLIT.cphp.dsl              |   31 +
 tests/data/acpi/pc/SLIT.dsl                   |   31 +
 tests/data/acpi/pc/SLIT.memhp.dsl             |   31 +
 tests/data/acpi/pc/SRAT.acpihmat.dsl          |  137 +
 tests/data/acpi/pc/SRAT.cphp.dsl              |  168 +
 tests/data/acpi/pc/SRAT.dimmpxm.dsl           |  194 +
 tests/data/acpi/pc/SRAT.dsl                   |  108 +
 tests/data/acpi/pc/SRAT.memhp.dsl             |  125 +
 tests/data/acpi/pc/SRAT.numamem.dsl           |  108 +
 tests/data/acpi/pc/SSDT.dsl                   |  205 +
 tests/data/acpi/pc/WAET.acpihmat              |  Bin 0 -> 40 bytes
 tests/data/acpi/pc/WAET.acpihmat.dsl          |   31 +
 tests/data/acpi/pc/WAET.bridge                |  Bin 0 -> 40 bytes
 tests/data/acpi/pc/WAET.bridge.dsl            |   31 +
 tests/data/acpi/pc/WAET.cphp                  |  Bin 0 -> 40 bytes
 tests/data/acpi/pc/WAET.cphp.dsl              |   31 +
 tests/data/acpi/pc/WAET.dimmpxm               |  Bin 0 -> 40 bytes
 tests/data/acpi/pc/WAET.dimmpxm.dsl           |   31 +
 tests/data/acpi/pc/WAET.dsl                   |   31 +
 tests/data/acpi/pc/WAET.hpbridge              |  Bin 0 -> 40 bytes
 tests/data/acpi/pc/WAET.ipmikcs               |  Bin 0 -> 40 bytes
 tests/data/acpi/pc/WAET.ipmikcs.dsl           |   31 +
 tests/data/acpi/pc/WAET.memhp                 |  Bin 0 -> 40 bytes
 tests/data/acpi/pc/WAET.memhp.dsl             |   31 +
 tests/data/acpi/pc/WAET.numamem               |  Bin 0 -> 40 bytes
 tests/data/acpi/pc/WAET.numamem.dsl           |   31 +
 tests/data/acpi/pc/WAET.roothp                |  Bin 0 -> 40 bytes
 tests/data/acpi/q35/APIC.acpihmat.dsl         |  112 +
 tests/data/acpi/q35/APIC.bridge               |  Bin 0 -> 120 bytes
 tests/data/acpi/q35/APIC.bridge.dsl           |  104 +
 tests/data/acpi/q35/APIC.cphp.dsl             |  146 +
 tests/data/acpi/q35/APIC.dimmpxm.dsl          |  129 +
 tests/data/acpi/q35/APIC.dsl                  |  104 +
 tests/data/acpi/q35/APIC.ipmibt               |  Bin 0 -> 120 bytes
 tests/data/acpi/q35/APIC.ipmibt.dsl           |  104 +
 tests/data/acpi/q35/APIC.memhp                |  Bin 0 -> 120 bytes
 tests/data/acpi/q35/APIC.memhp.dsl            |  104 +
 tests/data/acpi/q35/APIC.mmio64               |  Bin 0 -> 120 bytes
 tests/data/acpi/q35/APIC.mmio64.dsl           |  104 +
 tests/data/acpi/q35/APIC.numamem              |  Bin 0 -> 120 bytes
 tests/data/acpi/q35/APIC.numamem.dsl          |  104 +
 tests/data/acpi/q35/APIC.tis                  |  Bin 0 -> 120 bytes
 tests/data/acpi/q35/APIC.tis.dsl              |  104 +
 tests/data/acpi/q35/DSDT                      |  Bin 7804 -> 7796 bytes
 tests/data/acpi/q35/DSDT.acpihmat             |  Bin 9129 -> 9121 bytes
 tests/data/acpi/q35/DSDT.acpihmat.dsl         | 3436 ++++++++++++++++
 tests/data/acpi/q35/DSDT.bridge               |  Bin 7821 -> 7814 bytes
 tests/data/acpi/q35/DSDT.bridge.dsl           | 3141 +++++++++++++++
 tests/data/acpi/q35/DSDT.cphp                 |  Bin 8268 -> 8260 bytes
 tests/data/acpi/q35/DSDT.cphp.dsl             | 3283 +++++++++++++++
 tests/data/acpi/q35/DSDT.dimmpxm              |  Bin 9458 -> 9450 bytes
 tests/data/acpi/q35/DSDT.dimmpxm.dsl          | 3535 +++++++++++++++++
 tests/data/acpi/q35/DSDT.dsl                  | 3351 ++++++++++++++++
 tests/data/acpi/q35/DSDT.ipmibt               |  Bin 7879 -> 7871 bytes
 tests/data/acpi/q35/DSDT.ipmibt.dsl           | 3156 +++++++++++++++
 tests/data/acpi/q35/DSDT.memhp                |  Bin 9163 -> 9155 bytes
 tests/data/acpi/q35/DSDT.memhp.dsl            | 3442 ++++++++++++++++
 tests/data/acpi/q35/DSDT.mmio64               |  Bin 8934 -> 8927 bytes
 tests/data/acpi/q35/DSDT.mmio64.dsl           | 3377 ++++++++++++++++
 tests/data/acpi/q35/DSDT.numamem              |  Bin 7810 -> 7802 bytes
 tests/data/acpi/q35/DSDT.numamem.dsl          | 3138 +++++++++++++++
 tests/data/acpi/q35/DSDT.tis                  |  Bin 8409 -> 8402 bytes
 tests/data/acpi/q35/DSDT.tis.dsl              | 3321 ++++++++++++++++
 tests/data/acpi/q35/FACP.acpihmat             |  Bin 0 -> 244 bytes
 tests/data/acpi/q35/FACP.acpihmat.dsl         |  179 +
 tests/data/acpi/q35/FACP.bridge               |  Bin 0 -> 244 bytes
 tests/data/acpi/q35/FACP.bridge.dsl           |  179 +
 tests/data/acpi/q35/FACP.cphp                 |  Bin 0 -> 244 bytes
 tests/data/acpi/q35/FACP.cphp.dsl             |  179 +
 tests/data/acpi/q35/FACP.dimmpxm              |  Bin 0 -> 244 bytes
 tests/data/acpi/q35/FACP.dimmpxm.dsl          |  179 +
 tests/data/acpi/q35/FACP.dsl                  |  179 +
 tests/data/acpi/q35/FACP.ipmibt               |  Bin 0 -> 244 bytes
 tests/data/acpi/q35/FACP.ipmibt.dsl           |  179 +
 tests/data/acpi/q35/FACP.memhp                |  Bin 0 -> 244 bytes
 tests/data/acpi/q35/FACP.memhp.dsl            |  179 +
 tests/data/acpi/q35/FACP.mmio64               |  Bin 0 -> 244 bytes
 tests/data/acpi/q35/FACP.mmio64.dsl           |  179 +
 tests/data/acpi/q35/FACP.numamem              |  Bin 0 -> 244 bytes
 tests/data/acpi/q35/FACP.numamem.dsl          |  179 +
 tests/data/acpi/q35/FACP.tis                  |  Bin 0 -> 244 bytes
 tests/data/acpi/q35/FACP.tis.dsl              |  179 +
 tests/data/acpi/q35/FACS.acpihmat             |  Bin 0 -> 64 bytes
 tests/data/acpi/q35/FACS.acpihmat.dsl         |   32 +
 tests/data/acpi/q35/FACS.bridge               |  Bin 0 -> 64 bytes
 tests/data/acpi/q35/FACS.bridge.dsl           |   32 +
 tests/data/acpi/q35/FACS.cphp                 |  Bin 0 -> 64 bytes
 tests/data/acpi/q35/FACS.cphp.dsl             |   32 +
 tests/data/acpi/q35/FACS.dimmpxm              |  Bin 0 -> 64 bytes
 tests/data/acpi/q35/FACS.dimmpxm.dsl          |   32 +
 tests/data/acpi/q35/FACS.dsl                  |   32 +
 tests/data/acpi/q35/FACS.ipmibt               |  Bin 0 -> 64 bytes
 tests/data/acpi/q35/FACS.ipmibt.dsl           |   32 +
 tests/data/acpi/q35/FACS.memhp                |  Bin 0 -> 64 bytes
 tests/data/acpi/q35/FACS.memhp.dsl            |   32 +
 tests/data/acpi/q35/FACS.mmio64               |  Bin 0 -> 64 bytes
 tests/data/acpi/q35/FACS.mmio64.dsl           |   32 +
 tests/data/acpi/q35/FACS.numamem              |  Bin 0 -> 64 bytes
 tests/data/acpi/q35/FACS.numamem.dsl          |   32 +
 tests/data/acpi/q35/FACS.tis                  |  Bin 0 -> 64 bytes
 tests/data/acpi/q35/FACS.tis.dsl              |   32 +
 tests/data/acpi/q35/HMAT.acpihmat.dsl         |  132 +
 tests/data/acpi/q35/HMAT.dsl                  |  132 +
 tests/data/acpi/q35/HPET.acpihmat             |  Bin 0 -> 56 bytes
 tests/data/acpi/q35/HPET.acpihmat.dsl         |   43 +
 tests/data/acpi/q35/HPET.bridge               |  Bin 0 -> 56 bytes
 tests/data/acpi/q35/HPET.bridge.dsl           |   43 +
 tests/data/acpi/q35/HPET.cphp                 |  Bin 0 -> 56 bytes
 tests/data/acpi/q35/HPET.cphp.dsl             |   43 +
 tests/data/acpi/q35/HPET.dimmpxm              |  Bin 0 -> 56 bytes
 tests/data/acpi/q35/HPET.dimmpxm.dsl          |   43 +
 tests/data/acpi/q35/HPET.dsl                  |   43 +
 tests/data/acpi/q35/HPET.ipmibt               |  Bin 0 -> 56 bytes
 tests/data/acpi/q35/HPET.ipmibt.dsl           |   43 +
 tests/data/acpi/q35/HPET.memhp                |  Bin 0 -> 56 bytes
 tests/data/acpi/q35/HPET.memhp.dsl            |   43 +
 tests/data/acpi/q35/HPET.mmio64               |  Bin 0 -> 56 bytes
 tests/data/acpi/q35/HPET.mmio64.dsl           |   43 +
 tests/data/acpi/q35/HPET.numamem              |  Bin 0 -> 56 bytes
 tests/data/acpi/q35/HPET.numamem.dsl          |   43 +
 tests/data/acpi/q35/HPET.tis                  |  Bin 0 -> 56 bytes
 tests/data/acpi/q35/HPET.tis.dsl              |   43 +
 tests/data/acpi/q35/MCFG.acpihmat             |  Bin 0 -> 60 bytes
 tests/data/acpi/q35/MCFG.acpihmat.dsl         |   36 +
 tests/data/acpi/q35/MCFG.bridge               |  Bin 0 -> 60 bytes
 tests/data/acpi/q35/MCFG.bridge.dsl           |   36 +
 tests/data/acpi/q35/MCFG.cphp                 |  Bin 0 -> 60 bytes
 tests/data/acpi/q35/MCFG.cphp.dsl             |   36 +
 tests/data/acpi/q35/MCFG.dimmpxm              |  Bin 0 -> 60 bytes
 tests/data/acpi/q35/MCFG.dimmpxm.dsl          |   36 +
 tests/data/acpi/q35/MCFG.dsl                  |   36 +
 tests/data/acpi/q35/MCFG.ipmibt               |  Bin 0 -> 60 bytes
 tests/data/acpi/q35/MCFG.ipmibt.dsl           |   36 +
 tests/data/acpi/q35/MCFG.memhp                |  Bin 0 -> 60 bytes
 tests/data/acpi/q35/MCFG.memhp.dsl            |   36 +
 tests/data/acpi/q35/MCFG.mmio64               |  Bin 0 -> 60 bytes
 tests/data/acpi/q35/MCFG.mmio64.dsl           |   36 +
 tests/data/acpi/q35/MCFG.numamem              |  Bin 0 -> 60 bytes
 tests/data/acpi/q35/MCFG.numamem.dsl          |   36 +
 tests/data/acpi/q35/MCFG.tis                  |  Bin 0 -> 60 bytes
 tests/data/acpi/q35/MCFG.tis.dsl              |   36 +
 tests/data/acpi/q35/NFIT.dimmpxm.dsl          |  115 +
 tests/data/acpi/q35/NFIT.dsl                  |  115 +
 tests/data/acpi/q35/SLIT.cphp.dsl             |   31 +
 tests/data/acpi/q35/SLIT.dsl                  |   31 +
 tests/data/acpi/q35/SLIT.memhp.dsl            |   31 +
 tests/data/acpi/q35/SRAT.acpihmat.dsl         |  137 +
 tests/data/acpi/q35/SRAT.cphp.dsl             |  168 +
 tests/data/acpi/q35/SRAT.dimmpxm.dsl          |  194 +
 tests/data/acpi/q35/SRAT.dsl                  |  108 +
 tests/data/acpi/q35/SRAT.memhp.dsl            |  125 +
 tests/data/acpi/q35/SRAT.mmio64.dsl           |  108 +
 tests/data/acpi/q35/SRAT.numamem.dsl          |  108 +
 tests/data/acpi/q35/SSDT.dsl                  |  205 +
 tests/data/acpi/q35/TPM2.dsl                  |   38 +
 tests/data/acpi/q35/TPM2.tis.dsl              |   38 +
 tests/data/acpi/q35/WAET.acpihmat             |  Bin 0 -> 40 bytes
 tests/data/acpi/q35/WAET.acpihmat.dsl         |   31 +
 tests/data/acpi/q35/WAET.bridge               |  Bin 0 -> 40 bytes
 tests/data/acpi/q35/WAET.bridge.dsl           |   31 +
 tests/data/acpi/q35/WAET.cphp                 |  Bin 0 -> 40 bytes
 tests/data/acpi/q35/WAET.cphp.dsl             |   31 +
 tests/data/acpi/q35/WAET.dimmpxm              |  Bin 0 -> 40 bytes
 tests/data/acpi/q35/WAET.dimmpxm.dsl          |   31 +
 tests/data/acpi/q35/WAET.dsl                  |   31 +
 tests/data/acpi/q35/WAET.ipmibt               |  Bin 0 -> 40 bytes
 tests/data/acpi/q35/WAET.ipmibt.dsl           |   31 +
 tests/data/acpi/q35/WAET.memhp                |  Bin 0 -> 40 bytes
 tests/data/acpi/q35/WAET.memhp.dsl            |   31 +
 tests/data/acpi/q35/WAET.mmio64               |  Bin 0 -> 40 bytes
 tests/data/acpi/q35/WAET.mmio64.dsl           |   31 +
 tests/data/acpi/q35/WAET.numamem              |  Bin 0 -> 40 bytes
 tests/data/acpi/q35/WAET.numamem.dsl          |   31 +
 tests/data/acpi/q35/WAET.tis                  |  Bin 0 -> 40 bytes
 tests/data/acpi/q35/WAET.tis.dsl              |   31 +
 tests/data/acpi/virt/APIC.dsl                 |   78 +
 tests/data/acpi/virt/APIC.memhp.dsl           |   78 +
 tests/data/acpi/virt/APIC.numamem.dsl         |   78 +
 tests/data/acpi/virt/DSDT.dsl                 | 1906 +++++++++
 tests/data/acpi/virt/DSDT.memhp.dsl           | 2215 +++++++++++
 tests/data/acpi/virt/DSDT.numamem.dsl         | 1906 +++++++++
 tests/data/acpi/virt/FACP.dsl                 |  196 +
 tests/data/acpi/virt/FACP.memhp.dsl           |  196 +
 tests/data/acpi/virt/FACP.numamem.dsl         |  196 +
 tests/data/acpi/virt/GTDT.dsl                 |   61 +
 tests/data/acpi/virt/GTDT.memhp.dsl           |   61 +
 tests/data/acpi/virt/GTDT.numamem.dsl         |   61 +
 tests/data/acpi/virt/MCFG.dsl                 |   36 +
 tests/data/acpi/virt/MCFG.memhp.dsl           |   36 +
 tests/data/acpi/virt/MCFG.numamem.dsl         |   36 +
 tests/data/acpi/virt/NFIT.dsl                 |  103 +
 tests/data/acpi/virt/NFIT.memhp.dsl           |  103 +
 tests/data/acpi/virt/SLIT.dsl                 |   31 +
 tests/data/acpi/virt/SLIT.memhp.dsl           |   31 +
 tests/data/acpi/virt/SPCR.dsl                 |   57 +
 tests/data/acpi/virt/SPCR.memhp.dsl           |   57 +
 tests/data/acpi/virt/SPCR.numamem.dsl         |   57 +
 tests/data/acpi/virt/SRAT.dsl                 |   57 +
 tests/data/acpi/virt/SRAT.memhp.dsl           |  107 +
 tests/data/acpi/virt/SRAT.numamem.dsl         |   57 +
 tests/data/acpi/virt/SSDT.dsl                 |  205 +
 .../bios-tables-test.x86_64.iso.raw           |  Bin 0 -> 425984 bytes
 tests/libqtest.c.orig                         | 1106 ++++++
 tests/qemu-iotests/core.12067                 |  Bin 0 -> 22716416 bytes
 .../bios-tables-test-allowed-diff.h.orig      |   18 +
 .../qtest/bios-tables-test-allowed-diff.h.rej |    9 +
 tests/qtest/bios-tables-test.c.orig           | 1200 ++++++
 tests/qtest/bios-tables-test.c.rej            |   22 +
 tests/vhost-user-bridge                       |  Bin 0 -> 83120 bytes
 tests/vhost-user-bridge.c.orig                | 1432 +++++++
 tests/vhost-user-test.c.orig                  |  364 ++
 303 files changed, 71489 insertions(+), 10 deletions(-)
 create mode 100644 tests/test-qapi-event.c
 create mode 100644 tests/test-qmp-introspect.c
 create mode 100644 tests/test-qmp-marshal.c
 create mode 100644 tests/.vhost-user-test.c.swo
 create mode 100644 tests/Makefile.include.orig
 create mode 100644 tests/Makefile.orig
 create mode 100644 tests/bios-tables-test.c.orig
 create mode 100644 tests/data/acpi/diff-aml.sh
 create mode 100644 tests/data/acpi/disassemle-aml.py
 create mode 100644 tests/data/acpi/microvm/APIC.dsl
 create mode 100644 tests/data/acpi/microvm/DSDT.dsl
 create mode 100644 tests/data/acpi/microvm/FACP.dsl
 create mode 100644 tests/data/acpi/pc/APIC.acpihmat.dsl
 create mode 100644 tests/data/acpi/pc/APIC.bridge
 create mode 100644 tests/data/acpi/pc/APIC.bridge.dsl
 create mode 100644 tests/data/acpi/pc/APIC.cphp.dsl
 create mode 100644 tests/data/acpi/pc/APIC.dimmpxm.dsl
 create mode 100644 tests/data/acpi/pc/APIC.dsl
 create mode 100644 tests/data/acpi/pc/APIC.hpbridge
 create mode 100644 tests/data/acpi/pc/APIC.ipmikcs
 create mode 100644 tests/data/acpi/pc/APIC.ipmikcs.dsl
 create mode 100644 tests/data/acpi/pc/APIC.memhp
 create mode 100644 tests/data/acpi/pc/APIC.memhp.dsl
 create mode 100644 tests/data/acpi/pc/APIC.numamem
 create mode 100644 tests/data/acpi/pc/APIC.numamem.dsl
 create mode 100644 tests/data/acpi/pc/APIC.roothp
 create mode 100644 tests/data/acpi/pc/DSDT.acpihmat.dsl
 create mode 100644 tests/data/acpi/pc/DSDT.bridge.dsl
 create mode 100644 tests/data/acpi/pc/DSDT.cphp.dsl
 create mode 100644 tests/data/acpi/pc/DSDT.dimmpxm.dsl
 create mode 100644 tests/data/acpi/pc/DSDT.dsl
 create mode 100644 tests/data/acpi/pc/DSDT.ipmikcs.dsl
 create mode 100644 tests/data/acpi/pc/DSDT.memhp.dsl
 create mode 100644 tests/data/acpi/pc/DSDT.numamem.dsl
 create mode 100644 tests/data/acpi/pc/FACP.acpihmat
 create mode 100644 tests/data/acpi/pc/FACP.acpihmat.dsl
 create mode 100644 tests/data/acpi/pc/FACP.bridge
 create mode 100644 tests/data/acpi/pc/FACP.bridge.dsl
 create mode 100644 tests/data/acpi/pc/FACP.cphp
 create mode 100644 tests/data/acpi/pc/FACP.cphp.dsl
 create mode 100644 tests/data/acpi/pc/FACP.dimmpxm
 create mode 100644 tests/data/acpi/pc/FACP.dimmpxm.dsl
 create mode 100644 tests/data/acpi/pc/FACP.dsl
 create mode 100644 tests/data/acpi/pc/FACP.hpbridge
 create mode 100644 tests/data/acpi/pc/FACP.ipmikcs
 create mode 100644 tests/data/acpi/pc/FACP.ipmikcs.dsl
 create mode 100644 tests/data/acpi/pc/FACP.memhp
 create mode 100644 tests/data/acpi/pc/FACP.memhp.dsl
 create mode 100644 tests/data/acpi/pc/FACP.numamem
 create mode 100644 tests/data/acpi/pc/FACP.numamem.dsl
 create mode 100644 tests/data/acpi/pc/FACP.roothp
 create mode 100644 tests/data/acpi/pc/FACS.acpihmat
 create mode 100644 tests/data/acpi/pc/FACS.acpihmat.dsl
 create mode 100644 tests/data/acpi/pc/FACS.bridge
 create mode 100644 tests/data/acpi/pc/FACS.bridge.dsl
 create mode 100644 tests/data/acpi/pc/FACS.cphp
 create mode 100644 tests/data/acpi/pc/FACS.cphp.dsl
 create mode 100644 tests/data/acpi/pc/FACS.dimmpxm
 create mode 100644 tests/data/acpi/pc/FACS.dimmpxm.dsl
 create mode 100644 tests/data/acpi/pc/FACS.dsl
 create mode 100644 tests/data/acpi/pc/FACS.hpbridge
 create mode 100644 tests/data/acpi/pc/FACS.ipmikcs
 create mode 100644 tests/data/acpi/pc/FACS.ipmikcs.dsl
 create mode 100644 tests/data/acpi/pc/FACS.memhp
 create mode 100644 tests/data/acpi/pc/FACS.memhp.dsl
 create mode 100644 tests/data/acpi/pc/FACS.numamem
 create mode 100644 tests/data/acpi/pc/FACS.numamem.dsl
 create mode 100644 tests/data/acpi/pc/FACS.roothp
 create mode 100644 tests/data/acpi/pc/HMAT.acpihmat.dsl
 create mode 100644 tests/data/acpi/pc/HMAT.dsl
 create mode 100644 tests/data/acpi/pc/HPET.acpihmat
 create mode 100644 tests/data/acpi/pc/HPET.acpihmat.dsl
 create mode 100644 tests/data/acpi/pc/HPET.bridge
 create mode 100644 tests/data/acpi/pc/HPET.bridge.dsl
 create mode 100644 tests/data/acpi/pc/HPET.cphp
 create mode 100644 tests/data/acpi/pc/HPET.cphp.dsl
 create mode 100644 tests/data/acpi/pc/HPET.dimmpxm
 create mode 100644 tests/data/acpi/pc/HPET.dimmpxm.dsl
 create mode 100644 tests/data/acpi/pc/HPET.dsl
 create mode 100644 tests/data/acpi/pc/HPET.hpbridge
 create mode 100644 tests/data/acpi/pc/HPET.ipmikcs
 create mode 100644 tests/data/acpi/pc/HPET.ipmikcs.dsl
 create mode 100644 tests/data/acpi/pc/HPET.memhp
 create mode 100644 tests/data/acpi/pc/HPET.memhp.dsl
 create mode 100644 tests/data/acpi/pc/HPET.numamem
 create mode 100644 tests/data/acpi/pc/HPET.numamem.dsl
 create mode 100644 tests/data/acpi/pc/HPET.roothp
 create mode 100644 tests/data/acpi/pc/NFIT.dimmpxm.dsl
 create mode 100644 tests/data/acpi/pc/NFIT.dsl
 create mode 100644 tests/data/acpi/pc/SLIT.cphp.dsl
 create mode 100644 tests/data/acpi/pc/SLIT.dsl
 create mode 100644 tests/data/acpi/pc/SLIT.memhp.dsl
 create mode 100644 tests/data/acpi/pc/SRAT.acpihmat.dsl
 create mode 100644 tests/data/acpi/pc/SRAT.cphp.dsl
 create mode 100644 tests/data/acpi/pc/SRAT.dimmpxm.dsl
 create mode 100644 tests/data/acpi/pc/SRAT.dsl
 create mode 100644 tests/data/acpi/pc/SRAT.memhp.dsl
 create mode 100644 tests/data/acpi/pc/SRAT.numamem.dsl
 create mode 100644 tests/data/acpi/pc/SSDT.dsl
 create mode 100644 tests/data/acpi/pc/WAET.acpihmat
 create mode 100644 tests/data/acpi/pc/WAET.acpihmat.dsl
 create mode 100644 tests/data/acpi/pc/WAET.bridge
 create mode 100644 tests/data/acpi/pc/WAET.bridge.dsl
 create mode 100644 tests/data/acpi/pc/WAET.cphp
 create mode 100644 tests/data/acpi/pc/WAET.cphp.dsl
 create mode 100644 tests/data/acpi/pc/WAET.dimmpxm
 create mode 100644 tests/data/acpi/pc/WAET.dimmpxm.dsl
 create mode 100644 tests/data/acpi/pc/WAET.dsl
 create mode 100644 tests/data/acpi/pc/WAET.hpbridge
 create mode 100644 tests/data/acpi/pc/WAET.ipmikcs
 create mode 100644 tests/data/acpi/pc/WAET.ipmikcs.dsl
 create mode 100644 tests/data/acpi/pc/WAET.memhp
 create mode 100644 tests/data/acpi/pc/WAET.memhp.dsl
 create mode 100644 tests/data/acpi/pc/WAET.numamem
 create mode 100644 tests/data/acpi/pc/WAET.numamem.dsl
 create mode 100644 tests/data/acpi/pc/WAET.roothp
 create mode 100644 tests/data/acpi/q35/APIC.acpihmat.dsl
 create mode 100644 tests/data/acpi/q35/APIC.bridge
 create mode 100644 tests/data/acpi/q35/APIC.bridge.dsl
 create mode 100644 tests/data/acpi/q35/APIC.cphp.dsl
 create mode 100644 tests/data/acpi/q35/APIC.dimmpxm.dsl
 create mode 100644 tests/data/acpi/q35/APIC.dsl
 create mode 100644 tests/data/acpi/q35/APIC.ipmibt
 create mode 100644 tests/data/acpi/q35/APIC.ipmibt.dsl
 create mode 100644 tests/data/acpi/q35/APIC.memhp
 create mode 100644 tests/data/acpi/q35/APIC.memhp.dsl
 create mode 100644 tests/data/acpi/q35/APIC.mmio64
 create mode 100644 tests/data/acpi/q35/APIC.mmio64.dsl
 create mode 100644 tests/data/acpi/q35/APIC.numamem
 create mode 100644 tests/data/acpi/q35/APIC.numamem.dsl
 create mode 100644 tests/data/acpi/q35/APIC.tis
 create mode 100644 tests/data/acpi/q35/APIC.tis.dsl
 create mode 100644 tests/data/acpi/q35/DSDT.acpihmat.dsl
 create mode 100644 tests/data/acpi/q35/DSDT.bridge.dsl
 create mode 100644 tests/data/acpi/q35/DSDT.cphp.dsl
 create mode 100644 tests/data/acpi/q35/DSDT.dimmpxm.dsl
 create mode 100644 tests/data/acpi/q35/DSDT.dsl
 create mode 100644 tests/data/acpi/q35/DSDT.ipmibt.dsl
 create mode 100644 tests/data/acpi/q35/DSDT.memhp.dsl
 create mode 100644 tests/data/acpi/q35/DSDT.mmio64.dsl
 create mode 100644 tests/data/acpi/q35/DSDT.numamem.dsl
 create mode 100644 tests/data/acpi/q35/DSDT.tis.dsl
 create mode 100644 tests/data/acpi/q35/FACP.acpihmat
 create mode 100644 tests/data/acpi/q35/FACP.acpihmat.dsl
 create mode 100644 tests/data/acpi/q35/FACP.bridge
 create mode 100644 tests/data/acpi/q35/FACP.bridge.dsl
 create mode 100644 tests/data/acpi/q35/FACP.cphp
 create mode 100644 tests/data/acpi/q35/FACP.cphp.dsl
 create mode 100644 tests/data/acpi/q35/FACP.dimmpxm
 create mode 100644 tests/data/acpi/q35/FACP.dimmpxm.dsl
 create mode 100644 tests/data/acpi/q35/FACP.dsl
 create mode 100644 tests/data/acpi/q35/FACP.ipmibt
 create mode 100644 tests/data/acpi/q35/FACP.ipmibt.dsl
 create mode 100644 tests/data/acpi/q35/FACP.memhp
 create mode 100644 tests/data/acpi/q35/FACP.memhp.dsl
 create mode 100644 tests/data/acpi/q35/FACP.mmio64
 create mode 100644 tests/data/acpi/q35/FACP.mmio64.dsl
 create mode 100644 tests/data/acpi/q35/FACP.numamem
 create mode 100644 tests/data/acpi/q35/FACP.numamem.dsl
 create mode 100644 tests/data/acpi/q35/FACP.tis
 create mode 100644 tests/data/acpi/q35/FACP.tis.dsl
 create mode 100644 tests/data/acpi/q35/FACS.acpihmat
 create mode 100644 tests/data/acpi/q35/FACS.acpihmat.dsl
 create mode 100644 tests/data/acpi/q35/FACS.bridge
 create mode 100644 tests/data/acpi/q35/FACS.bridge.dsl
 create mode 100644 tests/data/acpi/q35/FACS.cphp
 create mode 100644 tests/data/acpi/q35/FACS.cphp.dsl
 create mode 100644 tests/data/acpi/q35/FACS.dimmpxm
 create mode 100644 tests/data/acpi/q35/FACS.dimmpxm.dsl
 create mode 100644 tests/data/acpi/q35/FACS.dsl
 create mode 100644 tests/data/acpi/q35/FACS.ipmibt
 create mode 100644 tests/data/acpi/q35/FACS.ipmibt.dsl
 create mode 100644 tests/data/acpi/q35/FACS.memhp
 create mode 100644 tests/data/acpi/q35/FACS.memhp.dsl
 create mode 100644 tests/data/acpi/q35/FACS.mmio64
 create mode 100644 tests/data/acpi/q35/FACS.mmio64.dsl
 create mode 100644 tests/data/acpi/q35/FACS.numamem
 create mode 100644 tests/data/acpi/q35/FACS.numamem.dsl
 create mode 100644 tests/data/acpi/q35/FACS.tis
 create mode 100644 tests/data/acpi/q35/FACS.tis.dsl
 create mode 100644 tests/data/acpi/q35/HMAT.acpihmat.dsl
 create mode 100644 tests/data/acpi/q35/HMAT.dsl
 create mode 100644 tests/data/acpi/q35/HPET.acpihmat
 create mode 100644 tests/data/acpi/q35/HPET.acpihmat.dsl
 create mode 100644 tests/data/acpi/q35/HPET.bridge
 create mode 100644 tests/data/acpi/q35/HPET.bridge.dsl
 create mode 100644 tests/data/acpi/q35/HPET.cphp
 create mode 100644 tests/data/acpi/q35/HPET.cphp.dsl
 create mode 100644 tests/data/acpi/q35/HPET.dimmpxm
 create mode 100644 tests/data/acpi/q35/HPET.dimmpxm.dsl
 create mode 100644 tests/data/acpi/q35/HPET.dsl
 create mode 100644 tests/data/acpi/q35/HPET.ipmibt
 create mode 100644 tests/data/acpi/q35/HPET.ipmibt.dsl
 create mode 100644 tests/data/acpi/q35/HPET.memhp
 create mode 100644 tests/data/acpi/q35/HPET.memhp.dsl
 create mode 100644 tests/data/acpi/q35/HPET.mmio64
 create mode 100644 tests/data/acpi/q35/HPET.mmio64.dsl
 create mode 100644 tests/data/acpi/q35/HPET.numamem
 create mode 100644 tests/data/acpi/q35/HPET.numamem.dsl
 create mode 100644 tests/data/acpi/q35/HPET.tis
 create mode 100644 tests/data/acpi/q35/HPET.tis.dsl
 create mode 100644 tests/data/acpi/q35/MCFG.acpihmat
 create mode 100644 tests/data/acpi/q35/MCFG.acpihmat.dsl
 create mode 100644 tests/data/acpi/q35/MCFG.bridge
 create mode 100644 tests/data/acpi/q35/MCFG.bridge.dsl
 create mode 100644 tests/data/acpi/q35/MCFG.cphp
 create mode 100644 tests/data/acpi/q35/MCFG.cphp.dsl
 create mode 100644 tests/data/acpi/q35/MCFG.dimmpxm
 create mode 100644 tests/data/acpi/q35/MCFG.dimmpxm.dsl
 create mode 100644 tests/data/acpi/q35/MCFG.dsl
 create mode 100644 tests/data/acpi/q35/MCFG.ipmibt
 create mode 100644 tests/data/acpi/q35/MCFG.ipmibt.dsl
 create mode 100644 tests/data/acpi/q35/MCFG.memhp
 create mode 100644 tests/data/acpi/q35/MCFG.memhp.dsl
 create mode 100644 tests/data/acpi/q35/MCFG.mmio64
 create mode 100644 tests/data/acpi/q35/MCFG.mmio64.dsl
 create mode 100644 tests/data/acpi/q35/MCFG.numamem
 create mode 100644 tests/data/acpi/q35/MCFG.numamem.dsl
 create mode 100644 tests/data/acpi/q35/MCFG.tis
 create mode 100644 tests/data/acpi/q35/MCFG.tis.dsl
 create mode 100644 tests/data/acpi/q35/NFIT.dimmpxm.dsl
 create mode 100644 tests/data/acpi/q35/NFIT.dsl
 create mode 100644 tests/data/acpi/q35/SLIT.cphp.dsl
 create mode 100644 tests/data/acpi/q35/SLIT.dsl
 create mode 100644 tests/data/acpi/q35/SLIT.memhp.dsl
 create mode 100644 tests/data/acpi/q35/SRAT.acpihmat.dsl
 create mode 100644 tests/data/acpi/q35/SRAT.cphp.dsl
 create mode 100644 tests/data/acpi/q35/SRAT.dimmpxm.dsl
 create mode 100644 tests/data/acpi/q35/SRAT.dsl
 create mode 100644 tests/data/acpi/q35/SRAT.memhp.dsl
 create mode 100644 tests/data/acpi/q35/SRAT.mmio64.dsl
 create mode 100644 tests/data/acpi/q35/SRAT.numamem.dsl
 create mode 100644 tests/data/acpi/q35/SSDT.dsl
 create mode 100644 tests/data/acpi/q35/TPM2.dsl
 create mode 100644 tests/data/acpi/q35/TPM2.tis.dsl
 create mode 100644 tests/data/acpi/q35/WAET.acpihmat
 create mode 100644 tests/data/acpi/q35/WAET.acpihmat.dsl
 create mode 100644 tests/data/acpi/q35/WAET.bridge
 create mode 100644 tests/data/acpi/q35/WAET.bridge.dsl
 create mode 100644 tests/data/acpi/q35/WAET.cphp
 create mode 100644 tests/data/acpi/q35/WAET.cphp.dsl
 create mode 100644 tests/data/acpi/q35/WAET.dimmpxm
 create mode 100644 tests/data/acpi/q35/WAET.dimmpxm.dsl
 create mode 100644 tests/data/acpi/q35/WAET.dsl
 create mode 100644 tests/data/acpi/q35/WAET.ipmibt
 create mode 100644 tests/data/acpi/q35/WAET.ipmibt.dsl
 create mode 100644 tests/data/acpi/q35/WAET.memhp
 create mode 100644 tests/data/acpi/q35/WAET.memhp.dsl
 create mode 100644 tests/data/acpi/q35/WAET.mmio64
 create mode 100644 tests/data/acpi/q35/WAET.mmio64.dsl
 create mode 100644 tests/data/acpi/q35/WAET.numamem
 create mode 100644 tests/data/acpi/q35/WAET.numamem.dsl
 create mode 100644 tests/data/acpi/q35/WAET.tis
 create mode 100644 tests/data/acpi/q35/WAET.tis.dsl
 create mode 100644 tests/data/acpi/virt/APIC.dsl
 create mode 100644 tests/data/acpi/virt/APIC.memhp.dsl
 create mode 100644 tests/data/acpi/virt/APIC.numamem.dsl
 create mode 100644 tests/data/acpi/virt/DSDT.dsl
 create mode 100644 tests/data/acpi/virt/DSDT.memhp.dsl
 create mode 100644 tests/data/acpi/virt/DSDT.numamem.dsl
 create mode 100644 tests/data/acpi/virt/FACP.dsl
 create mode 100644 tests/data/acpi/virt/FACP.memhp.dsl
 create mode 100644 tests/data/acpi/virt/FACP.numamem.dsl
 create mode 100644 tests/data/acpi/virt/GTDT.dsl
 create mode 100644 tests/data/acpi/virt/GTDT.memhp.dsl
 create mode 100644 tests/data/acpi/virt/GTDT.numamem.dsl
 create mode 100644 tests/data/acpi/virt/MCFG.dsl
 create mode 100644 tests/data/acpi/virt/MCFG.memhp.dsl
 create mode 100644 tests/data/acpi/virt/MCFG.numamem.dsl
 create mode 100644 tests/data/acpi/virt/NFIT.dsl
 create mode 100644 tests/data/acpi/virt/NFIT.memhp.dsl
 create mode 100644 tests/data/acpi/virt/SLIT.dsl
 create mode 100644 tests/data/acpi/virt/SLIT.memhp.dsl
 create mode 100644 tests/data/acpi/virt/SPCR.dsl
 create mode 100644 tests/data/acpi/virt/SPCR.memhp.dsl
 create mode 100644 tests/data/acpi/virt/SPCR.numamem.dsl
 create mode 100644 tests/data/acpi/virt/SRAT.dsl
 create mode 100644 tests/data/acpi/virt/SRAT.memhp.dsl
 create mode 100644 tests/data/acpi/virt/SRAT.numamem.dsl
 create mode 100644 tests/data/acpi/virt/SSDT.dsl
 create mode 100644 tests/data/uefi-boot-images/bios-tables-test.x86_64.iso.raw
 create mode 100644 tests/libqtest.c.orig
 create mode 100644 tests/qemu-iotests/core.12067
 create mode 100644 tests/qtest/bios-tables-test-allowed-diff.h.orig
 create mode 100644 tests/qtest/bios-tables-test-allowed-diff.h.rej
 create mode 100644 tests/qtest/bios-tables-test.c.orig
 create mode 100644 tests/qtest/bios-tables-test.c.rej
 create mode 100755 tests/vhost-user-bridge
 create mode 100644 tests/vhost-user-bridge.c.orig
 create mode 100644 tests/vhost-user-test.c.orig
diff mbox series

Patch

diff --git a/tests/qtest/bios-tables-test-allowed-diff.h b/tests/qtest/bios-tables-test-allowed-diff.h
index 631703142c..dfb8523c8b 100644
--- a/tests/qtest/bios-tables-test-allowed-diff.h
+++ b/tests/qtest/bios-tables-test-allowed-diff.h
@@ -1,11 +1 @@ 
 /* List of comma-separated changed AML files to ignore */
-"tests/data/acpi/q35/DSDT",
-"tests/data/acpi/q35/DSDT.acpihmat",
-"tests/data/acpi/q35/DSDT.bridge",
-"tests/data/acpi/q35/DSDT.cphp",
-"tests/data/acpi/q35/DSDT.dimmpxm",
-"tests/data/acpi/q35/DSDT.ipmibt",
-"tests/data/acpi/q35/DSDT.memhp",
-"tests/data/acpi/q35/DSDT.mmio64",
-"tests/data/acpi/q35/DSDT.numamem",
-"tests/data/acpi/q35/DSDT.tis",
diff --git a/tests/test-qapi-event.c b/tests/test-qapi-event.c
new file mode 100644
index 0000000000..bdeb9095d4
--- /dev/null
+++ b/tests/test-qapi-event.c
@@ -0,0 +1,198 @@ 
+/* AUTOMATICALLY GENERATED, DO NOT MODIFY */
+
+/*
+ * schema-defined QAPI event functions
+ *
+ * Copyright (c) 2014 Wenchao Xia
+ *
+ * Authors:
+ *  Wenchao Xia   <wenchaoqemu@gmail.com>
+ *
+ * This work is licensed under the terms of the GNU LGPL, version 2.1 or later.
+ * See the COPYING.LIB file in the top-level directory.
+ *
+ */
+
+#include "qemu/osdep.h"
+#include "qemu-common.h"
+#include "test-qapi-event.h"
+#include "test-qapi-visit.h"
+#include "qapi/qmp-output-visitor.h"
+#include "qapi/qmp-event.h"
+
+
+void qapi_event_send_event_a(Error **errp)
+{
+    QDict *qmp;
+    Error *err = NULL;
+    QMPEventFuncEmit emit;
+
+    emit = qmp_event_get_func_emit();
+    if (!emit) {
+        return;
+    }
+
+    qmp = qmp_event_build_dict("EVENT_A");
+
+    emit(TEST_QAPI_EVENT_EVENT_A, qmp, &err);
+
+    error_propagate(errp, err);
+    QDECREF(qmp);
+}
+
+void qapi_event_send_event_b(Error **errp)
+{
+    QDict *qmp;
+    Error *err = NULL;
+    QMPEventFuncEmit emit;
+
+    emit = qmp_event_get_func_emit();
+    if (!emit) {
+        return;
+    }
+
+    qmp = qmp_event_build_dict("EVENT_B");
+
+    emit(TEST_QAPI_EVENT_EVENT_B, qmp, &err);
+
+    error_propagate(errp, err);
+    QDECREF(qmp);
+}
+
+void qapi_event_send_event_c(bool has_a, int64_t a, bool has_b, UserDefOne *b, const char *c, Error **errp)
+{
+    QDict *qmp;
+    Error *err = NULL;
+    QMPEventFuncEmit emit;
+    QmpOutputVisitor *qov;
+    Visitor *v;
+    q_obj_EVENT_C_arg param = {
+        has_a, a, has_b, b, (char *)c
+    };
+
+    emit = qmp_event_get_func_emit();
+    if (!emit) {
+        return;
+    }
+
+    qmp = qmp_event_build_dict("EVENT_C");
+
+    qov = qmp_output_visitor_new();
+    v = qmp_output_get_visitor(qov);
+
+    visit_start_struct(v, "EVENT_C", NULL, 0, &err);
+    if (err) {
+        goto out;
+    }
+    visit_type_q_obj_EVENT_C_arg_members(v, &param, &err);
+    if (!err) {
+        visit_check_struct(v, &err);
+    }
+    visit_end_struct(v);
+    if (err) {
+        goto out;
+    }
+
+    qdict_put_obj(qmp, "data", qmp_output_get_qobject(qov));
+    emit(TEST_QAPI_EVENT_EVENT_C, qmp, &err);
+
+out:
+    qmp_output_visitor_cleanup(qov);
+    error_propagate(errp, err);
+    QDECREF(qmp);
+}
+
+void qapi_event_send_event_d(EventStructOne *a, const char *b, bool has_c, const char *c, bool has_enum3, EnumOne enum3, Error **errp)
+{
+    QDict *qmp;
+    Error *err = NULL;
+    QMPEventFuncEmit emit;
+    QmpOutputVisitor *qov;
+    Visitor *v;
+    q_obj_EVENT_D_arg param = {
+        a, (char *)b, has_c, (char *)c, has_enum3, enum3
+    };
+
+    emit = qmp_event_get_func_emit();
+    if (!emit) {
+        return;
+    }
+
+    qmp = qmp_event_build_dict("EVENT_D");
+
+    qov = qmp_output_visitor_new();
+    v = qmp_output_get_visitor(qov);
+
+    visit_start_struct(v, "EVENT_D", NULL, 0, &err);
+    if (err) {
+        goto out;
+    }
+    visit_type_q_obj_EVENT_D_arg_members(v, &param, &err);
+    if (!err) {
+        visit_check_struct(v, &err);
+    }
+    visit_end_struct(v);
+    if (err) {
+        goto out;
+    }
+
+    qdict_put_obj(qmp, "data", qmp_output_get_qobject(qov));
+    emit(TEST_QAPI_EVENT_EVENT_D, qmp, &err);
+
+out:
+    qmp_output_visitor_cleanup(qov);
+    error_propagate(errp, err);
+    QDECREF(qmp);
+}
+
+void qapi_event_send___org_qemu_x_event(__org_qemu_x_Enum __org_qemu_x_member1, const char *__org_qemu_x_member2, bool has_q_wchar_t, int64_t q_wchar_t, Error **errp)
+{
+    QDict *qmp;
+    Error *err = NULL;
+    QMPEventFuncEmit emit;
+    QmpOutputVisitor *qov;
+    Visitor *v;
+    __org_qemu_x_Struct param = {
+        __org_qemu_x_member1, (char *)__org_qemu_x_member2, has_q_wchar_t, q_wchar_t
+    };
+
+    emit = qmp_event_get_func_emit();
+    if (!emit) {
+        return;
+    }
+
+    qmp = qmp_event_build_dict("__ORG.QEMU_X-EVENT");
+
+    qov = qmp_output_visitor_new();
+    v = qmp_output_get_visitor(qov);
+
+    visit_start_struct(v, "__ORG.QEMU_X-EVENT", NULL, 0, &err);
+    if (err) {
+        goto out;
+    }
+    visit_type___org_qemu_x_Struct_members(v, &param, &err);
+    if (!err) {
+        visit_check_struct(v, &err);
+    }
+    visit_end_struct(v);
+    if (err) {
+        goto out;
+    }
+
+    qdict_put_obj(qmp, "data", qmp_output_get_qobject(qov));
+    emit(TEST_QAPI_EVENT___ORG_QEMU_X_EVENT, qmp, &err);
+
+out:
+    qmp_output_visitor_cleanup(qov);
+    error_propagate(errp, err);
+    QDECREF(qmp);
+}
+
+const char *const test_QAPIEvent_lookup[] = {
+    [TEST_QAPI_EVENT_EVENT_A] = "EVENT_A",
+    [TEST_QAPI_EVENT_EVENT_B] = "EVENT_B",
+    [TEST_QAPI_EVENT_EVENT_C] = "EVENT_C",
+    [TEST_QAPI_EVENT_EVENT_D] = "EVENT_D",
+    [TEST_QAPI_EVENT___ORG_QEMU_X_EVENT] = "__ORG.QEMU_X-EVENT",
+    [TEST_QAPI_EVENT__MAX] = NULL,
+};
diff --git a/tests/test-qmp-introspect.c b/tests/test-qmp-introspect.c
new file mode 100644
index 0000000000..edae06c64e
--- /dev/null
+++ b/tests/test-qmp-introspect.c
@@ -0,0 +1,58 @@ 
+/* AUTOMATICALLY GENERATED, DO NOT MODIFY */
+
+/*
+ * QAPI/QMP schema introspection
+ *
+ * Copyright (C) 2015 Red Hat, Inc.
+ *
+ * This work is licensed under the terms of the GNU LGPL, version 2.1 or later.
+ * See the COPYING.LIB file in the top-level directory.
+ *
+ */
+
+#include "qemu/osdep.h"
+#include "test-qmp-introspect.h"
+
+const char test_qmp_schema_json[] = "["
+    "{\"arg-type\": \"0\", \"meta-type\": \"event\", \"name\": \"EVENT_A\"}, "
+    "{\"arg-type\": \"0\", \"meta-type\": \"event\", \"name\": \"EVENT_B\"}, "
+    "{\"arg-type\": \"1\", \"meta-type\": \"event\", \"name\": \"EVENT_C\"}, "
+    "{\"arg-type\": \"2\", \"meta-type\": \"event\", \"name\": \"EVENT_D\"}, "
+    "{\"arg-type\": \"3\", \"meta-type\": \"event\", \"name\": \"__ORG.QEMU_X-EVENT\"}, "
+    "{\"arg-type\": \"4\", \"meta-type\": \"command\", \"name\": \"__org.qemu_x-command\", \"ret-type\": \"5\"}, "
+    "{\"arg-type\": \"6\", \"meta-type\": \"command\", \"name\": \"guest-get-time\", \"ret-type\": \"int\"}, "
+    "{\"arg-type\": \"7\", \"meta-type\": \"command\", \"name\": \"guest-sync\", \"ret-type\": \"any\"}, "
+    "{\"arg-type\": \"0\", \"meta-type\": \"command\", \"name\": \"user_def_cmd\", \"ret-type\": \"0\"}, "
+    "{\"arg-type\": \"8\", \"meta-type\": \"command\", \"name\": \"user_def_cmd0\", \"ret-type\": \"8\"}, "
+    "{\"arg-type\": \"9\", \"meta-type\": \"command\", \"name\": \"user_def_cmd1\", \"ret-type\": \"0\"}, "
+    "{\"arg-type\": \"10\", \"meta-type\": \"command\", \"name\": \"user_def_cmd2\", \"ret-type\": \"11\"}, "
+    "{\"members\": [], \"meta-type\": \"object\", \"name\": \"0\"}, "
+    "{\"members\": [{\"default\": null, \"name\": \"a\", \"type\": \"int\"}, {\"default\": null, \"name\": \"b\", \"type\": \"12\"}, {\"name\": \"c\", \"type\": \"str\"}], \"meta-type\": \"object\", \"name\": \"1\"}, "
+    "{\"members\": [{\"name\": \"a\", \"type\": \"13\"}, {\"name\": \"b\", \"type\": \"str\"}, {\"default\": null, \"name\": \"c\", \"type\": \"str\"}, {\"default\": null, \"name\": \"enum3\", \"type\": \"14\"}], \"meta-type\": \"object\", \"name\": \"2\"}, "
+    "{\"members\": [{\"name\": \"__org.qemu_x-member1\", \"type\": \"15\"}, {\"name\": \"__org.qemu_x-member2\", \"type\": \"str\"}, {\"default\": null, \"name\": \"wchar-t\", \"type\": \"int\"}], \"meta-type\": \"object\", \"name\": \"3\"}, "
+    "{\"members\": [{\"name\": \"a\", \"type\": \"[15]\"}, {\"name\": \"b\", \"type\": \"[3]\"}, {\"name\": \"c\", \"type\": \"16\"}, {\"name\": \"d\", \"type\": \"17\"}], \"meta-type\": \"object\", \"name\": \"4\"}, "
+    "{\"members\": [{\"name\": \"type\", \"type\": \"18\"}], \"meta-type\": \"object\", \"name\": \"5\", \"tag\": \"type\", \"variants\": [{\"case\": \"__org.qemu_x-branch\", \"type\": \"19\"}]}, "
+    "{\"members\": [{\"name\": \"a\", \"type\": \"int\"}, {\"default\": null, \"name\": \"b\", \"type\": \"int\"}], \"meta-type\": \"object\", \"name\": \"6\"}, "
+    "{\"json-type\": \"int\", \"meta-type\": \"builtin\", \"name\": \"int\"}, "
+    "{\"members\": [{\"name\": \"arg\", \"type\": \"any\"}], \"meta-type\": \"object\", \"name\": \"7\"}, "
+    "{\"json-type\": \"value\", \"meta-type\": \"builtin\", \"name\": \"any\"}, "
+    "{\"members\": [], \"meta-type\": \"object\", \"name\": \"8\"}, "
+    "{\"members\": [{\"name\": \"ud1a\", \"type\": \"12\"}], \"meta-type\": \"object\", \"name\": \"9\"}, "
+    "{\"members\": [{\"name\": \"ud1a\", \"type\": \"12\"}, {\"default\": null, \"name\": \"ud1b\", \"type\": \"12\"}], \"meta-type\": \"object\", \"name\": \"10\"}, "
+    "{\"members\": [{\"name\": \"string0\", \"type\": \"str\"}, {\"name\": \"dict1\", \"type\": \"20\"}], \"meta-type\": \"object\", \"name\": \"11\"}, "
+    "{\"members\": [{\"name\": \"integer\", \"type\": \"int\"}, {\"name\": \"string\", \"type\": \"str\"}, {\"default\": null, \"name\": \"enum1\", \"type\": \"14\"}], \"meta-type\": \"object\", \"name\": \"12\"}, "
+    "{\"json-type\": \"string\", \"meta-type\": \"builtin\", \"name\": \"str\"}, "
+    "{\"members\": [{\"name\": \"struct1\", \"type\": \"12\"}, {\"name\": \"string\", \"type\": \"str\"}, {\"default\": null, \"name\": \"enum2\", \"type\": \"14\"}], \"meta-type\": \"object\", \"name\": \"13\"}, "
+    "{\"meta-type\": \"enum\", \"name\": \"14\", \"values\": [\"value1\", \"value2\", \"value3\"]}, "
+    "{\"meta-type\": \"enum\", \"name\": \"15\", \"values\": [\"__org.qemu_x-value\"]}, "
+    "{\"element-type\": \"15\", \"meta-type\": \"array\", \"name\": \"[15]\"}, "
+    "{\"element-type\": \"3\", \"meta-type\": \"array\", \"name\": \"[3]\"}, "
+    "{\"members\": [{\"name\": \"__org.qemu_x-member1\", \"type\": \"15\"}], \"meta-type\": \"object\", \"name\": \"16\", \"tag\": \"__org.qemu_x-member1\", \"variants\": [{\"case\": \"__org.qemu_x-value\", \"type\": \"21\"}]}, "
+    "{\"members\": [{\"type\": \"str\"}, {\"type\": \"22\"}], \"meta-type\": \"alternate\", \"name\": \"17\"}, "
+    "{\"meta-type\": \"enum\", \"name\": \"18\", \"values\": [\"__org.qemu_x-branch\"]}, "
+    "{\"members\": [{\"name\": \"data\", \"type\": \"str\"}], \"meta-type\": \"object\", \"name\": \"19\"}, "
+    "{\"members\": [{\"name\": \"string1\", \"type\": \"str\"}, {\"name\": \"dict2\", \"type\": \"23\"}, {\"default\": null, \"name\": \"dict3\", \"type\": \"23\"}], \"meta-type\": \"object\", \"name\": \"20\"}, "
+    "{\"members\": [{\"name\": \"array\", \"type\": \"[5]\"}], \"meta-type\": \"object\", \"name\": \"21\"}, "
+    "{\"members\": [{\"name\": \"__org.qemu_x-member1\", \"type\": \"15\"}], \"meta-type\": \"object\", \"name\": \"22\"}, "
+    "{\"members\": [{\"name\": \"userdef\", \"type\": \"12\"}, {\"name\": \"string\", \"type\": \"str\"}], \"meta-type\": \"object\", \"name\": \"23\"}, "
+    "{\"element-type\": \"5\", \"meta-type\": \"array\", \"name\": \"[5]\"}]";
diff --git a/tests/test-qmp-marshal.c b/tests/test-qmp-marshal.c
new file mode 100644
index 0000000000..54e3952d35
--- /dev/null
+++ b/tests/test-qmp-marshal.c
@@ -0,0 +1,383 @@ 
+/* AUTOMATICALLY GENERATED, DO NOT MODIFY */
+
+/*
+ * schema-defined QMP->QAPI command dispatch
+ *
+ * Copyright IBM, Corp. 2011
+ *
+ * Authors:
+ *  Anthony Liguori   <aliguori@us.ibm.com>
+ *
+ * This work is licensed under the terms of the GNU LGPL, version 2.1 or later.
+ * See the COPYING.LIB file in the top-level directory.
+ *
+ */
+
+#include "qemu/osdep.h"
+#include "qemu-common.h"
+#include "qemu/module.h"
+#include "qapi/qmp/types.h"
+#include "qapi/qmp/dispatch.h"
+#include "qapi/visitor.h"
+#include "qapi/qmp-output-visitor.h"
+#include "qapi/qmp-input-visitor.h"
+#include "qapi/dealloc-visitor.h"
+#include "test-qapi-types.h"
+#include "test-qapi-visit.h"
+#include "test-qmp-commands.h"
+
+
+static void qmp_marshal_output___org_qemu_x_Union1(__org_qemu_x_Union1 *ret_in, QObject **ret_out, Error **errp)
+{
+    Error *err = NULL;
+    QmpOutputVisitor *qov = qmp_output_visitor_new();
+    QapiDeallocVisitor *qdv;
+    Visitor *v;
+
+    v = qmp_output_get_visitor(qov);
+    visit_type___org_qemu_x_Union1(v, "unused", &ret_in, &err);
+    if (err) {
+        goto out;
+    }
+    *ret_out = qmp_output_get_qobject(qov);
+
+out:
+    error_propagate(errp, err);
+    qmp_output_visitor_cleanup(qov);
+    qdv = qapi_dealloc_visitor_new();
+    v = qapi_dealloc_get_visitor(qdv);
+    visit_type___org_qemu_x_Union1(v, "unused", &ret_in, NULL);
+    qapi_dealloc_visitor_cleanup(qdv);
+}
+
+static void qmp_marshal___org_qemu_x_command(QDict *args, QObject **ret, Error **errp)
+{
+    Error *err = NULL;
+    __org_qemu_x_Union1 *retval;
+    QmpInputVisitor *qiv = qmp_input_visitor_new(QOBJECT(args), true);
+    QapiDeallocVisitor *qdv;
+    Visitor *v;
+    q_obj___org_qemu_x_command_arg arg = {0};
+
+    v = qmp_input_get_visitor(qiv);
+    visit_start_struct(v, NULL, NULL, 0, &err);
+    if (err) {
+        goto out;
+    }
+    visit_type_q_obj___org_qemu_x_command_arg_members(v, &arg, &err);
+    if (!err) {
+        visit_check_struct(v, &err);
+    }
+    visit_end_struct(v);
+    if (err) {
+        goto out;
+    }
+
+    retval = qmp___org_qemu_x_command(arg.a, arg.b, arg.c, arg.d, &err);
+    if (err) {
+        goto out;
+    }
+
+    qmp_marshal_output___org_qemu_x_Union1(retval, ret, &err);
+
+out:
+    error_propagate(errp, err);
+    qmp_input_visitor_cleanup(qiv);
+    qdv = qapi_dealloc_visitor_new();
+    v = qapi_dealloc_get_visitor(qdv);
+    visit_start_struct(v, NULL, NULL, 0, NULL);
+    visit_type_q_obj___org_qemu_x_command_arg_members(v, &arg, NULL);
+    visit_end_struct(v);
+    qapi_dealloc_visitor_cleanup(qdv);
+}
+
+static void qmp_marshal_output_int(int64_t ret_in, QObject **ret_out, Error **errp)
+{
+    Error *err = NULL;
+    QmpOutputVisitor *qov = qmp_output_visitor_new();
+    QapiDeallocVisitor *qdv;
+    Visitor *v;
+
+    v = qmp_output_get_visitor(qov);
+    visit_type_int(v, "unused", &ret_in, &err);
+    if (err) {
+        goto out;
+    }
+    *ret_out = qmp_output_get_qobject(qov);
+
+out:
+    error_propagate(errp, err);
+    qmp_output_visitor_cleanup(qov);
+    qdv = qapi_dealloc_visitor_new();
+    v = qapi_dealloc_get_visitor(qdv);
+    visit_type_int(v, "unused", &ret_in, NULL);
+    qapi_dealloc_visitor_cleanup(qdv);
+}
+
+static void qmp_marshal_guest_get_time(QDict *args, QObject **ret, Error **errp)
+{
+    Error *err = NULL;
+    int64_t retval;
+    QmpInputVisitor *qiv = qmp_input_visitor_new(QOBJECT(args), true);
+    QapiDeallocVisitor *qdv;
+    Visitor *v;
+    q_obj_guest_get_time_arg arg = {0};
+
+    v = qmp_input_get_visitor(qiv);
+    visit_start_struct(v, NULL, NULL, 0, &err);
+    if (err) {
+        goto out;
+    }
+    visit_type_q_obj_guest_get_time_arg_members(v, &arg, &err);
+    if (!err) {
+        visit_check_struct(v, &err);
+    }
+    visit_end_struct(v);
+    if (err) {
+        goto out;
+    }
+
+    retval = qmp_guest_get_time(arg.a, arg.has_b, arg.b, &err);
+    if (err) {
+        goto out;
+    }
+
+    qmp_marshal_output_int(retval, ret, &err);
+
+out:
+    error_propagate(errp, err);
+    qmp_input_visitor_cleanup(qiv);
+    qdv = qapi_dealloc_visitor_new();
+    v = qapi_dealloc_get_visitor(qdv);
+    visit_start_struct(v, NULL, NULL, 0, NULL);
+    visit_type_q_obj_guest_get_time_arg_members(v, &arg, NULL);
+    visit_end_struct(v);
+    qapi_dealloc_visitor_cleanup(qdv);
+}
+
+static void qmp_marshal_output_any(QObject *ret_in, QObject **ret_out, Error **errp)
+{
+    Error *err = NULL;
+    QmpOutputVisitor *qov = qmp_output_visitor_new();
+    QapiDeallocVisitor *qdv;
+    Visitor *v;
+
+    v = qmp_output_get_visitor(qov);
+    visit_type_any(v, "unused", &ret_in, &err);
+    if (err) {
+        goto out;
+    }
+    *ret_out = qmp_output_get_qobject(qov);
+
+out:
+    error_propagate(errp, err);
+    qmp_output_visitor_cleanup(qov);
+    qdv = qapi_dealloc_visitor_new();
+    v = qapi_dealloc_get_visitor(qdv);
+    visit_type_any(v, "unused", &ret_in, NULL);
+    qapi_dealloc_visitor_cleanup(qdv);
+}
+
+static void qmp_marshal_guest_sync(QDict *args, QObject **ret, Error **errp)
+{
+    Error *err = NULL;
+    QObject *retval;
+    QmpInputVisitor *qiv = qmp_input_visitor_new(QOBJECT(args), true);
+    QapiDeallocVisitor *qdv;
+    Visitor *v;
+    q_obj_guest_sync_arg arg = {0};
+
+    v = qmp_input_get_visitor(qiv);
+    visit_start_struct(v, NULL, NULL, 0, &err);
+    if (err) {
+        goto out;
+    }
+    visit_type_q_obj_guest_sync_arg_members(v, &arg, &err);
+    if (!err) {
+        visit_check_struct(v, &err);
+    }
+    visit_end_struct(v);
+    if (err) {
+        goto out;
+    }
+
+    retval = qmp_guest_sync(arg.arg, &err);
+    if (err) {
+        goto out;
+    }
+
+    qmp_marshal_output_any(retval, ret, &err);
+
+out:
+    error_propagate(errp, err);
+    qmp_input_visitor_cleanup(qiv);
+    qdv = qapi_dealloc_visitor_new();
+    v = qapi_dealloc_get_visitor(qdv);
+    visit_start_struct(v, NULL, NULL, 0, NULL);
+    visit_type_q_obj_guest_sync_arg_members(v, &arg, NULL);
+    visit_end_struct(v);
+    qapi_dealloc_visitor_cleanup(qdv);
+}
+
+static void qmp_marshal_user_def_cmd(QDict *args, QObject **ret, Error **errp)
+{
+    Error *err = NULL;
+
+    (void)args;
+
+    qmp_user_def_cmd(&err);
+    error_propagate(errp, err);
+}
+
+static void qmp_marshal_output_Empty2(Empty2 *ret_in, QObject **ret_out, Error **errp)
+{
+    Error *err = NULL;
+    QmpOutputVisitor *qov = qmp_output_visitor_new();
+    QapiDeallocVisitor *qdv;
+    Visitor *v;
+
+    v = qmp_output_get_visitor(qov);
+    visit_type_Empty2(v, "unused", &ret_in, &err);
+    if (err) {
+        goto out;
+    }
+    *ret_out = qmp_output_get_qobject(qov);
+
+out:
+    error_propagate(errp, err);
+    qmp_output_visitor_cleanup(qov);
+    qdv = qapi_dealloc_visitor_new();
+    v = qapi_dealloc_get_visitor(qdv);
+    visit_type_Empty2(v, "unused", &ret_in, NULL);
+    qapi_dealloc_visitor_cleanup(qdv);
+}
+
+static void qmp_marshal_user_def_cmd0(QDict *args, QObject **ret, Error **errp)
+{
+    Error *err = NULL;
+    Empty2 *retval;
+
+    (void)args;
+
+    retval = qmp_user_def_cmd0(&err);
+    if (err) {
+        goto out;
+    }
+
+    qmp_marshal_output_Empty2(retval, ret, &err);
+
+out:
+    error_propagate(errp, err);
+}
+
+static void qmp_marshal_user_def_cmd1(QDict *args, QObject **ret, Error **errp)
+{
+    Error *err = NULL;
+    QmpInputVisitor *qiv = qmp_input_visitor_new(QOBJECT(args), true);
+    QapiDeallocVisitor *qdv;
+    Visitor *v;
+    q_obj_user_def_cmd1_arg arg = {0};
+
+    v = qmp_input_get_visitor(qiv);
+    visit_start_struct(v, NULL, NULL, 0, &err);
+    if (err) {
+        goto out;
+    }
+    visit_type_q_obj_user_def_cmd1_arg_members(v, &arg, &err);
+    if (!err) {
+        visit_check_struct(v, &err);
+    }
+    visit_end_struct(v);
+    if (err) {
+        goto out;
+    }
+
+    qmp_user_def_cmd1(arg.ud1a, &err);
+
+out:
+    error_propagate(errp, err);
+    qmp_input_visitor_cleanup(qiv);
+    qdv = qapi_dealloc_visitor_new();
+    v = qapi_dealloc_get_visitor(qdv);
+    visit_start_struct(v, NULL, NULL, 0, NULL);
+    visit_type_q_obj_user_def_cmd1_arg_members(v, &arg, NULL);
+    visit_end_struct(v);
+    qapi_dealloc_visitor_cleanup(qdv);
+}
+
+static void qmp_marshal_output_UserDefTwo(UserDefTwo *ret_in, QObject **ret_out, Error **errp)
+{
+    Error *err = NULL;
+    QmpOutputVisitor *qov = qmp_output_visitor_new();
+    QapiDeallocVisitor *qdv;
+    Visitor *v;
+
+    v = qmp_output_get_visitor(qov);
+    visit_type_UserDefTwo(v, "unused", &ret_in, &err);
+    if (err) {
+        goto out;
+    }
+    *ret_out = qmp_output_get_qobject(qov);
+
+out:
+    error_propagate(errp, err);
+    qmp_output_visitor_cleanup(qov);
+    qdv = qapi_dealloc_visitor_new();
+    v = qapi_dealloc_get_visitor(qdv);
+    visit_type_UserDefTwo(v, "unused", &ret_in, NULL);
+    qapi_dealloc_visitor_cleanup(qdv);
+}
+
+static void qmp_marshal_user_def_cmd2(QDict *args, QObject **ret, Error **errp)
+{
+    Error *err = NULL;
+    UserDefTwo *retval;
+    QmpInputVisitor *qiv = qmp_input_visitor_new(QOBJECT(args), true);
+    QapiDeallocVisitor *qdv;
+    Visitor *v;
+    q_obj_user_def_cmd2_arg arg = {0};
+
+    v = qmp_input_get_visitor(qiv);
+    visit_start_struct(v, NULL, NULL, 0, &err);
+    if (err) {
+        goto out;
+    }
+    visit_type_q_obj_user_def_cmd2_arg_members(v, &arg, &err);
+    if (!err) {
+        visit_check_struct(v, &err);
+    }
+    visit_end_struct(v);
+    if (err) {
+        goto out;
+    }
+
+    retval = qmp_user_def_cmd2(arg.ud1a, arg.has_ud1b, arg.ud1b, &err);
+    if (err) {
+        goto out;
+    }
+
+    qmp_marshal_output_UserDefTwo(retval, ret, &err);
+
+out:
+    error_propagate(errp, err);
+    qmp_input_visitor_cleanup(qiv);
+    qdv = qapi_dealloc_visitor_new();
+    v = qapi_dealloc_get_visitor(qdv);
+    visit_start_struct(v, NULL, NULL, 0, NULL);
+    visit_type_q_obj_user_def_cmd2_arg_members(v, &arg, NULL);
+    visit_end_struct(v);
+    qapi_dealloc_visitor_cleanup(qdv);
+}
+
+static void qmp_init_marshal(void)
+{
+    qmp_register_command("__org.qemu_x-command", qmp_marshal___org_qemu_x_command, QCO_NO_OPTIONS);
+    qmp_register_command("guest-get-time", qmp_marshal_guest_get_time, QCO_NO_OPTIONS);
+    qmp_register_command("guest-sync", qmp_marshal_guest_sync, QCO_NO_OPTIONS);
+    qmp_register_command("user_def_cmd", qmp_marshal_user_def_cmd, QCO_NO_OPTIONS);
+    qmp_register_command("user_def_cmd0", qmp_marshal_user_def_cmd0, QCO_NO_OPTIONS);
+    qmp_register_command("user_def_cmd1", qmp_marshal_user_def_cmd1, QCO_NO_OPTIONS);
+    qmp_register_command("user_def_cmd2", qmp_marshal_user_def_cmd2, QCO_NO_OPTIONS);
+}
+
+qapi_init(qmp_init_marshal);
diff --git a/tests/.vhost-user-test.c.swo b/tests/.vhost-user-test.c.swo
new file mode 100644
index 0000000000000000000000000000000000000000..5545d2bef350c4c4197c70c9789465cfee8f84ce
GIT binary patch
literal 16384
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
XoRgvmQlLSjGu=TNt&UM~TJ!!55Am^f

literal 0
HcmV?d00001

diff --git a/tests/Makefile.include.orig b/tests/Makefile.include.orig
new file mode 100644
index 0000000000..ba82235bd4
--- /dev/null
+++ b/tests/Makefile.include.orig
@@ -0,0 +1,1012 @@ 
+
+.PHONY: check-help
+check-help:
+	@echo "Regression testing targets:"
+	@echo
+	@echo " $(MAKE) check                Run all tests"
+	@echo " $(MAKE) check-qtest-TARGET   Run qtest tests for given target"
+	@echo " $(MAKE) check-qtest          Run qtest tests"
+	@echo " $(MAKE) check-unit           Run qobject tests"
+	@echo " $(MAKE) check-speed          Run qobject speed tests"
+	@echo " $(MAKE) check-qapi-schema    Run QAPI schema tests"
+	@echo " $(MAKE) check-block          Run block tests"
+	@echo " $(MAKE) check-tcg            Run TCG tests"
+	@echo " $(MAKE) check-acceptance     Run all acceptance (functional) tests"
+	@echo " $(MAKE) check-report.html    Generates an HTML test report"
+	@echo " $(MAKE) check-venv           Creates a Python venv for tests"
+	@echo " $(MAKE) check-clean          Clean the tests"
+	@echo
+	@echo "Please note that HTML reports do not regenerate if the unit tests"
+	@echo "has not changed."
+	@echo
+	@echo "The variable SPEED can be set to control the gtester speed setting."
+	@echo "Default options are -k and (for $(MAKE) V=1) --verbose; they can be"
+	@echo "changed with variable GTESTER_OPTIONS."
+
+ifneq ($(wildcard config-host.mak),)
+export SRC_PATH
+
+# TODO don't duplicate $(SRC_PATH)/Makefile's qapi-py here
+qapi-py = $(SRC_PATH)/scripts/qapi/commands.py \
+$(SRC_PATH)/scripts/qapi/events.py \
+$(SRC_PATH)/scripts/qapi/introspect.py \
+$(SRC_PATH)/scripts/qapi/types.py \
+$(SRC_PATH)/scripts/qapi/visit.py \
+$(SRC_PATH)/scripts/qapi/common.py \
+$(SRC_PATH)/scripts/qapi/doc.py \
+$(SRC_PATH)/scripts/qapi-gen.py
+
+# Get the list of all supported sysemu targets
+SYSEMU_TARGET_LIST := $(subst -softmmu.mak,,$(notdir \
+   $(wildcard $(SRC_PATH)/default-configs/*-softmmu.mak)))
+
+check-unit-y += tests/check-qdict$(EXESUF)
+check-unit-y += tests/check-block-qdict$(EXESUF)
+check-unit-y += tests/test-char$(EXESUF)
+check-unit-y += tests/check-qnum$(EXESUF)
+check-unit-y += tests/check-qstring$(EXESUF)
+check-unit-y += tests/check-qlist$(EXESUF)
+check-unit-y += tests/check-qnull$(EXESUF)
+check-unit-y += tests/check-qobject$(EXESUF)
+check-unit-y += tests/check-qjson$(EXESUF)
+check-unit-y += tests/check-qlit$(EXESUF)
+check-unit-y += tests/test-qobject-output-visitor$(EXESUF)
+check-unit-y += tests/test-clone-visitor$(EXESUF)
+check-unit-y += tests/test-qobject-input-visitor$(EXESUF)
+check-unit-y += tests/test-qmp-cmds$(EXESUF)
+check-unit-y += tests/test-string-input-visitor$(EXESUF)
+check-unit-y += tests/test-string-output-visitor$(EXESUF)
+check-unit-y += tests/test-qmp-event$(EXESUF)
+check-unit-y += tests/test-opts-visitor$(EXESUF)
+check-unit-y += tests/test-coroutine$(EXESUF)
+check-unit-y += tests/test-visitor-serialization$(EXESUF)
+check-unit-y += tests/test-iov$(EXESUF)
+check-unit-y += tests/test-aio$(EXESUF)
+check-unit-y += tests/test-aio-multithread$(EXESUF)
+check-unit-y += tests/test-throttle$(EXESUF)
+check-unit-y += tests/test-thread-pool$(EXESUF)
+check-unit-y += tests/test-hbitmap$(EXESUF)
+check-unit-y += tests/test-bdrv-drain$(EXESUF)
+check-unit-y += tests/test-blockjob$(EXESUF)
+check-unit-y += tests/test-blockjob-txn$(EXESUF)
+check-unit-y += tests/test-block-backend$(EXESUF)
+check-unit-y += tests/test-image-locking$(EXESUF)
+check-unit-y += tests/test-x86-cpuid$(EXESUF)
+# all code tested by test-x86-cpuid is inside topology.h
+ifeq ($(CONFIG_SOFTMMU),y)
+check-unit-y += tests/test-xbzrle$(EXESUF)
+check-unit-$(CONFIG_POSIX) += tests/test-vmstate$(EXESUF)
+endif
+check-unit-y += tests/test-cutils$(EXESUF)
+check-unit-y += tests/test-shift128$(EXESUF)
+check-unit-y += tests/test-mul64$(EXESUF)
+check-unit-y += tests/test-int128$(EXESUF)
+# all code tested by test-int128 is inside int128.h
+check-unit-y += tests/rcutorture$(EXESUF)
+check-unit-y += tests/test-rcu-list$(EXESUF)
+check-unit-y += tests/test-rcu-simpleq$(EXESUF)
+check-unit-y += tests/test-rcu-tailq$(EXESUF)
+check-unit-y += tests/test-qdist$(EXESUF)
+check-unit-y += tests/test-qht$(EXESUF)
+# FIXME: {test-qht-par + gprof} often break on Travis CI
+check-unit-$(call lnot,$(CONFIG_GPROF)) += tests/test-qht-par$(EXESUF)
+check-unit-y += tests/test-bitops$(EXESUF)
+check-unit-y += tests/test-bitcnt$(EXESUF)
+check-unit-y += tests/test-qdev-global-props$(EXESUF)
+check-unit-y += tests/check-qom-interface$(EXESUF)
+check-unit-y += tests/check-qom-proplist$(EXESUF)
+check-unit-y += tests/test-qemu-opts$(EXESUF)
+check-unit-y += tests/test-keyval$(EXESUF)
+check-unit-y += tests/test-write-threshold$(EXESUF)
+check-unit-y += tests/test-crypto-hash$(EXESUF)
+check-speed-y += tests/benchmark-crypto-hash$(EXESUF)
+check-unit-y += tests/test-crypto-hmac$(EXESUF)
+check-speed-y += tests/benchmark-crypto-hmac$(EXESUF)
+check-unit-y += tests/test-crypto-cipher$(EXESUF)
+check-speed-y += tests/benchmark-crypto-cipher$(EXESUF)
+check-unit-y += tests/test-crypto-secret$(EXESUF)
+check-unit-$(CONFIG_GNUTLS) += tests/test-crypto-tlscredsx509$(EXESUF)
+check-unit-$(CONFIG_GNUTLS) += tests/test-crypto-tlssession$(EXESUF)
+ifneq (,$(findstring qemu-ga,$(TOOLS)))
+check-unit-$(CONFIG_LINUX) += tests/test-qga$(EXESUF)
+endif
+check-unit-y += tests/test-timed-average$(EXESUF)
+check-unit-y += tests/test-util-sockets$(EXESUF)
+check-unit-y += tests/test-io-task$(EXESUF)
+check-unit-y += tests/test-io-channel-socket$(EXESUF)
+check-unit-y += tests/test-io-channel-file$(EXESUF)
+check-unit-$(CONFIG_GNUTLS) += tests/test-io-channel-tls$(EXESUF)
+check-unit-y += tests/test-io-channel-command$(EXESUF)
+check-unit-y += tests/test-io-channel-buffer$(EXESUF)
+check-unit-y += tests/test-base64$(EXESUF)
+check-unit-$(if $(CONFIG_NETTLE),y,$(CONFIG_GCRYPT)) += tests/test-crypto-pbkdf$(EXESUF)
+check-unit-y += tests/test-crypto-ivgen$(EXESUF)
+check-unit-y += tests/test-crypto-afsplit$(EXESUF)
+check-unit-y += tests/test-crypto-xts$(EXESUF)
+check-unit-y += tests/test-crypto-block$(EXESUF)
+check-unit-y += tests/test-logging$(EXESUF)
+check-unit-$(CONFIG_REPLICATION) += tests/test-replication$(EXESUF)
+check-unit-y += tests/test-bufferiszero$(EXESUF)
+check-unit-y += tests/test-uuid$(EXESUF)
+check-unit-y += tests/ptimer-test$(EXESUF)
+check-unit-y += tests/test-qapi-util$(EXESUF)
+
+check-block-$(CONFIG_POSIX) += tests/qemu-iotests-quick.sh
+
+# All QTests for now are POSIX-only, but the dependencies are
+# really in libqtest, not in the testcases themselves.
+
+check-qtest-generic-y += tests/qmp-test$(EXESUF)
+check-qtest-generic-y += tests/qmp-cmd-test$(EXESUF)
+
+check-qtest-generic-y += tests/device-introspect-test$(EXESUF)
+check-qtest-generic-y += tests/cdrom-test$(EXESUF)
+
+check-qtest-ipack-y += tests/ipoctal232-test$(EXESUF)
+
+check-qtest-virtioserial-y += tests/virtio-console-test$(EXESUF)
+
+check-qtest-virtio-y += tests/virtio-net-test$(EXESUF)
+check-qtest-virtio-$(CONFIG_VIRTIO_BALLOON) += tests/virtio-balloon-test$(EXESUF)
+check-qtest-virtio-y += tests/virtio-blk-test$(EXESUF)
+check-qtest-virtio-$(CONFIG_VIRTIO_RNG) += tests/virtio-rng-test$(EXESUF)
+check-qtest-virtio-$(CONFIG_VIRTIO_SCSI) += tests/virtio-scsi-test$(EXESUF)
+ifeq ($(CONFIG_VIRTIO)$(CONFIG_VIRTFS)$(CONFIG_PCI),yyy)
+check-qtest-virtio-$(CONFIG_VIRTIO_9P) += tests/virtio-9p-test$(EXESUF)
+endif
+check-qtest-virtio-y += tests/virtio-serial-test$(EXESUF)
+check-qtest-virtio-y += $(check-qtest-virtioserial-y)
+
+check-qtest-pci-y += tests/e1000-test$(EXESUF)
+check-qtest-pci-y += tests/e1000e-test$(EXESUF)
+check-qtest-pci-$(CONFIG_RTL8139_PCI) += tests/rtl8139-test$(EXESUF)
+check-qtest-pci-$(CONFIG_PCNET_PCI) += tests/pcnet-test$(EXESUF)
+check-qtest-pci-$(CONFIG_EEPRO100_PCI) += tests/eepro100-test$(EXESUF)
+check-qtest-pci-$(CONFIG_NE2000_PCI) += tests/ne2000-test$(EXESUF)
+check-qtest-pci-$(CONFIG_NVME_PCI) += tests/nvme-test$(EXESUF)
+check-qtest-pci-$(CONFIG_AC97) += tests/ac97-test$(EXESUF)
+check-qtest-pci-$(CONFIG_ES1370) += tests/es1370-test$(EXESUF)
+check-qtest-pci-y += $(check-qtest-virtio-y)
+check-qtest-pci-$(CONFIG_IPACK) += tests/tpci200-test$(EXESUF)
+check-qtest-pci-$(CONFIG_IPACK) += $(check-qtest-ipack-y)
+check-qtest-pci-y += tests/display-vga-test$(EXESUF)
+check-qtest-pci-$(CONFIG_HDA) += tests/intel-hda-test$(EXESUF)
+check-qtest-pci-$(CONFIG_IVSHMEM_DEVICE) += tests/ivshmem-test$(EXESUF)
+check-qtest-pci-y += tests/megasas-test$(EXESUF)
+
+check-qtest-i386-$(CONFIG_ISA_TESTDEV) = tests/endianness-test$(EXESUF)
+check-qtest-i386-y += tests/fdc-test$(EXESUF)
+check-qtest-i386-y += tests/ide-test$(EXESUF)
+check-qtest-i386-y += tests/ahci-test$(EXESUF)
+check-qtest-i386-y += tests/hd-geo-test$(EXESUF)
+check-qtest-i386-y += tests/boot-order-test$(EXESUF)
+check-qtest-i386-y += tests/bios-tables-test$(EXESUF)
+check-qtest-i386-$(CONFIG_SGA) += tests/boot-serial-test$(EXESUF)
+check-qtest-i386-$(CONFIG_SLIRP) += tests/pxe-test$(EXESUF)
+check-qtest-i386-y += tests/rtc-test$(EXESUF)
+check-qtest-i386-y += tests/ipmi-kcs-test$(EXESUF)
+check-qtest-i386-y += tests/ipmi-bt-test$(EXESUF)
+check-qtest-i386-y += tests/i440fx-test$(EXESUF)
+check-qtest-i386-y += tests/fw_cfg-test$(EXESUF)
+check-qtest-i386-y += tests/drive_del-test$(EXESUF)
+check-qtest-i386-$(CONFIG_WDT_IB700) += tests/wdt_ib700-test$(EXESUF)
+check-qtest-i386-y += tests/tco-test$(EXESUF)
+check-qtest-i386-y += $(check-qtest-pci-y)
+check-qtest-i386-$(CONFIG_VMXNET3_PCI) += tests/vmxnet3-test$(EXESUF)
+check-qtest-i386-$(CONFIG_PVPANIC) += tests/pvpanic-test$(EXESUF)
+check-qtest-i386-$(CONFIG_I82801B11) += tests/i82801b11-test$(EXESUF)
+check-qtest-i386-$(CONFIG_IOH3420) += tests/ioh3420-test$(EXESUF)
+check-qtest-i386-$(CONFIG_USB_OHCI) += tests/usb-hcd-ohci-test$(EXESUF)
+check-qtest-i386-$(CONFIG_USB_UHCI) += tests/usb-hcd-uhci-test$(EXESUF)
+ifeq ($(CONFIG_USB_ECHI)$(CONFIG_USB_UHCI),yy)
+check-qtest-i386-y += tests/usb-hcd-ehci-test$(EXESUF)
+endif
+check-qtest-i386-$(CONFIG_USB_XHCI_NEC) += tests/usb-hcd-xhci-test$(EXESUF)
+check-qtest-i386-y += tests/cpu-plug-test$(EXESUF)
+check-qtest-i386-y += tests/q35-test$(EXESUF)
+check-qtest-i386-y += tests/vmgenid-test$(EXESUF)
+check-qtest-i386-$(CONFIG_VHOST_USER_NET_TEST_i386) += tests/vhost-user-test$(EXESUF)
+ifeq ($(CONFIG_VHOST_USER_NET_TEST_i386),)
+check-qtest-x86_64-$(CONFIG_VHOST_USER_NET_TEST_x86_64) += tests/vhost-user-test$(EXESUF)
+endif
+check-qtest-i386-$(CONFIG_TPM_CRB) += tests/tpm-crb-swtpm-test$(EXESUF)
+check-qtest-i386-$(CONFIG_TPM_CRB) += tests/tpm-crb-test$(EXESUF)
+check-qtest-i386-$(CONFIG_TPM_TIS) += tests/tpm-tis-swtpm-test$(EXESUF)
+check-qtest-i386-$(CONFIG_TPM_TIS) += tests/tpm-tis-test$(EXESUF)
+check-qtest-i386-$(CONFIG_SLIRP) += tests/test-netfilter$(EXESUF)
+check-qtest-i386-$(CONFIG_POSIX) += tests/test-filter-mirror$(EXESUF)
+check-qtest-i386-$(CONFIG_RTL8139_PCI) += tests/test-filter-redirector$(EXESUF)
+check-qtest-i386-y += tests/migration-test$(EXESUF)
+check-qtest-i386-y += tests/test-x86-cpuid-compat$(EXESUF)
+check-qtest-i386-y += tests/numa-test$(EXESUF)
+check-qtest-x86_64-y += $(check-qtest-i386-y)
+check-qtest-x86_64-$(CONFIG_SDHCI) += tests/sdhci-test$(EXESUF)
+
+check-qtest-alpha-y += tests/boot-serial-test$(EXESUF)
+check-qtest-alpha-$(CONFIG_VGA) += tests/display-vga-test$(EXESUF)
+
+check-qtest-hppa-y += tests/boot-serial-test$(EXESUF)
+check-qtest-hppa-$(CONFIG_VGA) += tests/display-vga-test$(EXESUF)
+
+check-qtest-m68k-y = tests/boot-serial-test$(EXESUF)
+
+check-qtest-microblaze-y += tests/boot-serial-test$(EXESUF)
+
+check-qtest-mips-$(CONFIG_ISA_TESTDEV) = tests/endianness-test$(EXESUF)
+check-qtest-mips-$(CONFIG_VGA) += tests/display-vga-test$(EXESUF)
+
+check-qtest-mips64-$(CONFIG_ISA_TESTDEV) = tests/endianness-test$(EXESUF)
+check-qtest-mips64-$(CONFIG_VGA) += tests/display-vga-test$(EXESUF)
+
+check-qtest-mips64el-$(CONFIG_ISA_TESTDEV) = tests/endianness-test$(EXESUF)
+check-qtest-mips64el-$(CONFIG_VGA) += tests/display-vga-test$(EXESUF)
+
+check-qtest-moxie-y += tests/boot-serial-test$(EXESUF)
+
+check-qtest-ppc-$(CONFIG_ISA_TESTDEV) = tests/endianness-test$(EXESUF)
+check-qtest-ppc-y += tests/boot-order-test$(EXESUF)
+check-qtest-ppc-y += tests/prom-env-test$(EXESUF)
+check-qtest-ppc-y += tests/drive_del-test$(EXESUF)
+check-qtest-ppc-y += tests/boot-serial-test$(EXESUF)
+check-qtest-ppc-y += tests/m48t59-test$(EXESUF)
+
+check-qtest-ppc64-y += $(check-qtest-ppc-y)
+check-qtest-ppc64-y += tests/spapr-phb-test$(EXESUF)
+check-qtest-ppc64-y += tests/pnv-xscom-test$(EXESUF)
+check-qtest-ppc64-y += tests/migration-test$(EXESUF)
+check-qtest-ppc64-y += tests/rtas-test$(EXESUF)
+check-qtest-ppc64-$(CONFIG_SLIRP) += tests/pxe-test$(EXESUF)
+check-qtest-ppc64-$(CONFIG_USB_OHCI) += tests/usb-hcd-ohci-test$(EXESUF)
+check-qtest-ppc64-$(CONFIG_USB_UHCI) += tests/usb-hcd-uhci-test$(EXESUF)
+check-qtest-ppc64-$(CONFIG_USB_XHCI_NEC) += tests/usb-hcd-xhci-test$(EXESUF)
+check-qtest-ppc64-y += $(check-qtest-virtio-y)
+check-qtest-ppc64-$(CONFIG_SLIRP) += tests/test-netfilter$(EXESUF)
+check-qtest-ppc64-$(CONFIG_POSIX) += tests/test-filter-mirror$(EXESUF)
+check-qtest-ppc64-$(CONFIG_RTL8139_PCI) += tests/test-filter-redirector$(EXESUF)
+check-qtest-ppc64-y += tests/display-vga-test$(EXESUF)
+check-qtest-ppc64-y += tests/numa-test$(EXESUF)
+check-qtest-ppc64-$(CONFIG_IVSHMEM_DEVICE) += tests/ivshmem-test$(EXESUF)
+check-qtest-ppc64-y += tests/cpu-plug-test$(EXESUF)
+
+check-qtest-sh4-$(CONFIG_ISA_TESTDEV) = tests/endianness-test$(EXESUF)
+
+check-qtest-sh4eb-$(CONFIG_ISA_TESTDEV) = tests/endianness-test$(EXESUF)
+
+check-qtest-sparc-y += tests/prom-env-test$(EXESUF)
+check-qtest-sparc-y += tests/m48t59-test$(EXESUF)
+check-qtest-sparc-y += tests/boot-serial-test$(EXESUF)
+
+check-qtest-sparc64-$(CONFIG_ISA_TESTDEV) = tests/endianness-test$(EXESUF)
+check-qtest-sparc64-y += tests/prom-env-test$(EXESUF)
+check-qtest-sparc64-y += tests/boot-serial-test$(EXESUF)
+
+check-qtest-arm-y += tests/tmp105-test$(EXESUF)
+check-qtest-arm-y += tests/pca9552-test$(EXESUF)
+check-qtest-arm-y += tests/ds1338-test$(EXESUF)
+check-qtest-arm-y += tests/microbit-test$(EXESUF)
+check-qtest-arm-y += tests/m25p80-test$(EXESUF)
+check-qtest-arm-y += tests/virtio-blk-test$(EXESUF)
+check-qtest-arm-y += tests/test-arm-mptimer$(EXESUF)
+check-qtest-arm-y += tests/boot-serial-test$(EXESUF)
+check-qtest-arm-$(CONFIG_SDHCI) += tests/sdhci-test$(EXESUF)
+check-qtest-arm-y += tests/hexloader-test$(EXESUF)
+
+check-qtest-aarch64-y = tests/numa-test$(EXESUF)
+check-qtest-aarch64-$(CONFIG_SDHCI) += tests/sdhci-test$(EXESUF)
+check-qtest-aarch64-y += tests/boot-serial-test$(EXESUF)
+check-qtest-aarch64-y += tests/migration-test$(EXESUF)
+
+check-qtest-microblazeel-y += $(check-qtest-microblaze-y)
+
+check-qtest-xtensaeb-y += $(check-qtest-xtensa-y)
+
+check-qtest-s390x-y = tests/boot-serial-test$(EXESUF)
+check-qtest-s390x-$(CONFIG_SLIRP) += tests/pxe-test$(EXESUF)
+check-qtest-s390x-$(CONFIG_SLIRP) += tests/test-netfilter$(EXESUF)
+check-qtest-s390x-$(CONFIG_POSIX) += tests/test-filter-mirror$(EXESUF)
+check-qtest-s390x-$(CONFIG_POSIX) += tests/test-filter-redirector$(EXESUF)
+check-qtest-s390x-y += tests/drive_del-test$(EXESUF)
+check-qtest-s390x-y += tests/virtio-ccw-test$(EXESUF)
+check-qtest-s390x-y += tests/cpu-plug-test$(EXESUF)
+check-qtest-s390x-y += tests/migration-test$(EXESUF)
+
+check-qtest-generic-y += tests/machine-none-test$(EXESUF)
+check-qtest-generic-y += tests/qom-test$(EXESUF)
+check-qtest-generic-y += tests/test-hmp$(EXESUF)
+
+qapi-schema += alternate-any.json
+qapi-schema += alternate-array.json
+qapi-schema += alternate-base.json
+qapi-schema += alternate-clash.json
+qapi-schema += alternate-conflict-dict.json
+qapi-schema += alternate-conflict-enum-bool.json
+qapi-schema += alternate-conflict-enum-int.json
+qapi-schema += alternate-conflict-string.json
+qapi-schema += alternate-conflict-bool-string.json
+qapi-schema += alternate-conflict-num-string.json
+qapi-schema += alternate-empty.json
+qapi-schema += alternate-invalid-dict.json
+qapi-schema += alternate-nested.json
+qapi-schema += alternate-unknown.json
+qapi-schema += args-alternate.json
+qapi-schema += args-any.json
+qapi-schema += args-array-empty.json
+qapi-schema += args-array-unknown.json
+qapi-schema += args-bad-boxed.json
+qapi-schema += args-boxed-anon.json
+qapi-schema += args-boxed-empty.json
+qapi-schema += args-boxed-string.json
+qapi-schema += args-int.json
+qapi-schema += args-invalid.json
+qapi-schema += args-member-array-bad.json
+qapi-schema += args-member-case.json
+qapi-schema += args-member-unknown.json
+qapi-schema += args-name-clash.json
+qapi-schema += args-union.json
+qapi-schema += args-unknown.json
+qapi-schema += bad-base.json
+qapi-schema += bad-data.json
+qapi-schema += bad-ident.json
+qapi-schema += bad-if.json
+qapi-schema += bad-if-empty.json
+qapi-schema += bad-if-empty-list.json
+qapi-schema += bad-if-list.json
+qapi-schema += bad-type-bool.json
+qapi-schema += bad-type-dict.json
+qapi-schema += bad-type-int.json
+qapi-schema += base-cycle-direct.json
+qapi-schema += base-cycle-indirect.json
+qapi-schema += command-int.json
+qapi-schema += comments.json
+qapi-schema += doc-bad-alternate-member.json
+qapi-schema += doc-bad-command-arg.json
+qapi-schema += doc-bad-section.json
+qapi-schema += doc-bad-symbol.json
+qapi-schema += doc-bad-union-member.json
+qapi-schema += doc-before-include.json
+qapi-schema += doc-before-pragma.json
+qapi-schema += doc-duplicated-arg.json
+qapi-schema += doc-duplicated-return.json
+qapi-schema += doc-duplicated-since.json
+qapi-schema += doc-empty-arg.json
+qapi-schema += doc-empty-section.json
+qapi-schema += doc-empty-symbol.json
+qapi-schema += doc-good.json
+qapi-schema += doc-interleaved-section.json
+qapi-schema += doc-invalid-end.json
+qapi-schema += doc-invalid-end2.json
+qapi-schema += doc-invalid-return.json
+qapi-schema += doc-invalid-section.json
+qapi-schema += doc-invalid-start.json
+qapi-schema += doc-missing-colon.json
+qapi-schema += doc-missing-expr.json
+qapi-schema += doc-missing-space.json
+qapi-schema += doc-missing.json
+qapi-schema += doc-no-symbol.json
+qapi-schema += double-data.json
+qapi-schema += double-type.json
+qapi-schema += duplicate-key.json
+qapi-schema += empty.json
+qapi-schema += enum-bad-member.json
+qapi-schema += enum-bad-name.json
+qapi-schema += enum-bad-prefix.json
+qapi-schema += enum-clash-member.json
+qapi-schema += enum-dict-member-unknown.json
+qapi-schema += enum-if-invalid.json
+qapi-schema += enum-int-member.json
+qapi-schema += enum-member-case.json
+qapi-schema += enum-missing-data.json
+qapi-schema += enum-wrong-data.json
+qapi-schema += escape-outside-string.json
+qapi-schema += escape-too-big.json
+qapi-schema += escape-too-short.json
+qapi-schema += event-boxed-empty.json
+qapi-schema += event-case.json
+qapi-schema += event-member-invalid-dict.json
+qapi-schema += event-nest-struct.json
+qapi-schema += flat-union-array-branch.json
+qapi-schema += flat-union-bad-base.json
+qapi-schema += flat-union-bad-discriminator.json
+qapi-schema += flat-union-base-any.json
+qapi-schema += flat-union-base-union.json
+qapi-schema += flat-union-clash-member.json
+qapi-schema += flat-union-empty.json
+qapi-schema += flat-union-inline.json
+qapi-schema += flat-union-inline-invalid-dict.json
+qapi-schema += flat-union-int-branch.json
+qapi-schema += flat-union-invalid-branch-key.json
+qapi-schema += flat-union-invalid-discriminator.json
+qapi-schema += flat-union-invalid-if-discriminator.json
+qapi-schema += flat-union-no-base.json
+qapi-schema += flat-union-optional-discriminator.json
+qapi-schema += flat-union-string-discriminator.json
+qapi-schema += funny-char.json
+qapi-schema += ident-with-escape.json
+qapi-schema += include-before-err.json
+qapi-schema += include-cycle.json
+qapi-schema += include-extra-junk.json
+qapi-schema += include-format-err.json
+qapi-schema += include-nested-err.json
+qapi-schema += include-no-file.json
+qapi-schema += include-non-file.json
+qapi-schema += include-relpath.json
+qapi-schema += include-repetition.json
+qapi-schema += include-self-cycle.json
+qapi-schema += include-simple.json
+qapi-schema += indented-expr.json
+qapi-schema += leading-comma-list.json
+qapi-schema += leading-comma-object.json
+qapi-schema += missing-colon.json
+qapi-schema += missing-comma-list.json
+qapi-schema += missing-comma-object.json
+qapi-schema += missing-type.json
+qapi-schema += nested-struct-data.json
+qapi-schema += nested-struct-data-invalid-dict.json
+qapi-schema += non-objects.json
+qapi-schema += oob-test.json
+qapi-schema += allow-preconfig-test.json
+qapi-schema += pragma-doc-required-crap.json
+qapi-schema += pragma-extra-junk.json
+qapi-schema += pragma-name-case-whitelist-crap.json
+qapi-schema += pragma-non-dict.json
+qapi-schema += pragma-returns-whitelist-crap.json
+qapi-schema += qapi-schema-test.json
+qapi-schema += quoted-structural-chars.json
+qapi-schema += redefined-builtin.json
+qapi-schema += redefined-command.json
+qapi-schema += redefined-event.json
+qapi-schema += redefined-type.json
+qapi-schema += reserved-command-q.json
+qapi-schema += reserved-enum-q.json
+qapi-schema += reserved-member-has.json
+qapi-schema += reserved-member-q.json
+qapi-schema += reserved-member-u.json
+qapi-schema += reserved-member-underscore.json
+qapi-schema += reserved-type-kind.json
+qapi-schema += reserved-type-list.json
+qapi-schema += returns-alternate.json
+qapi-schema += returns-array-bad.json
+qapi-schema += returns-dict.json
+qapi-schema += returns-unknown.json
+qapi-schema += returns-whitelist.json
+qapi-schema += struct-base-clash-deep.json
+qapi-schema += struct-base-clash.json
+qapi-schema += struct-data-invalid.json
+qapi-schema += struct-member-invalid-dict.json
+qapi-schema += struct-member-invalid.json
+qapi-schema += trailing-comma-list.json
+qapi-schema += trailing-comma-object.json
+qapi-schema += type-bypass-bad-gen.json
+qapi-schema += unclosed-list.json
+qapi-schema += unclosed-object.json
+qapi-schema += unclosed-string.json
+qapi-schema += unicode-str.json
+qapi-schema += union-base-empty.json
+qapi-schema += union-base-no-discriminator.json
+qapi-schema += union-branch-case.json
+qapi-schema += union-branch-invalid-dict.json
+qapi-schema += union-clash-branches.json
+qapi-schema += union-empty.json
+qapi-schema += union-invalid-base.json
+qapi-schema += union-optional-branch.json
+qapi-schema += union-unknown.json
+qapi-schema += unknown-escape.json
+qapi-schema += unknown-expr-key.json
+
+
+check-qapi-schema-y := $(addprefix tests/qapi-schema/, $(qapi-schema))
+
+GENERATED_FILES += tests/test-qapi-types.h tests/test-qapi-visit.h \
+	tests/test-qapi-commands.h tests/test-qapi-events.h \
+	tests/test-qapi-introspect.h
+
+test-obj-y = tests/check-qnum.o tests/check-qstring.o tests/check-qdict.o \
+	tests/check-qlist.o tests/check-qnull.o tests/check-qobject.o \
+	tests/check-qjson.o tests/check-qlit.o \
+	tests/check-block-qtest.o \
+	tests/test-coroutine.o tests/test-string-output-visitor.o \
+	tests/test-string-input-visitor.o tests/test-qobject-output-visitor.o \
+	tests/test-clone-visitor.o \
+	tests/test-qobject-input-visitor.o \
+	tests/test-qmp-cmds.o tests/test-visitor-serialization.o \
+	tests/test-x86-cpuid.o tests/test-mul64.o tests/test-int128.o \
+	tests/test-opts-visitor.o tests/test-qmp-event.o \
+	tests/rcutorture.o tests/test-rcu-list.o \
+	tests/test-rcu-simpleq.o \
+	tests/test-rcu-tailq.o \
+	tests/test-qdist.o tests/test-shift128.o \
+	tests/test-qht.o tests/qht-bench.o tests/test-qht-par.o \
+	tests/atomic_add-bench.o tests/atomic64-bench.o
+
+$(test-obj-y): QEMU_INCLUDES += -Itests
+QEMU_CFLAGS += -I$(SRC_PATH)/tests
+
+
+# Deps that are common to various different sets of tests below
+test-util-obj-y = libqemuutil.a
+test-qom-obj-y = $(qom-obj-y) $(test-util-obj-y)
+test-qapi-obj-y = tests/test-qapi-visit.o tests/test-qapi-types.o \
+	tests/test-qapi-events.o tests/test-qapi-introspect.o \
+	$(test-qom-obj-y)
+benchmark-crypto-obj-y = $(crypto-obj-y) $(test-qom-obj-y)
+test-crypto-obj-y = $(crypto-obj-y) $(test-qom-obj-y)
+test-io-obj-y = $(io-obj-y) $(test-crypto-obj-y)
+test-block-obj-y = $(block-obj-y) $(test-io-obj-y) tests/iothread.o
+
+tests/check-qnum$(EXESUF): tests/check-qnum.o $(test-util-obj-y)
+tests/check-qstring$(EXESUF): tests/check-qstring.o $(test-util-obj-y)
+tests/check-qdict$(EXESUF): tests/check-qdict.o $(test-util-obj-y)
+tests/check-block-qdict$(EXESUF): tests/check-block-qdict.o $(test-util-obj-y)
+tests/check-qlist$(EXESUF): tests/check-qlist.o $(test-util-obj-y)
+tests/check-qnull$(EXESUF): tests/check-qnull.o $(test-util-obj-y)
+tests/check-qobject$(EXESUF): tests/check-qobject.o $(test-util-obj-y)
+tests/check-qjson$(EXESUF): tests/check-qjson.o $(test-util-obj-y)
+tests/check-qlit$(EXESUF): tests/check-qlit.o $(test-util-obj-y)
+tests/check-qom-interface$(EXESUF): tests/check-qom-interface.o $(test-qom-obj-y)
+tests/check-qom-proplist$(EXESUF): tests/check-qom-proplist.o $(test-qom-obj-y)
+
+tests/test-char$(EXESUF): tests/test-char.o $(test-util-obj-y) $(qtest-obj-y) $(test-io-obj-y) $(chardev-obj-y)
+tests/test-coroutine$(EXESUF): tests/test-coroutine.o $(test-block-obj-y)
+tests/test-aio$(EXESUF): tests/test-aio.o $(test-block-obj-y)
+tests/test-aio-multithread$(EXESUF): tests/test-aio-multithread.o $(test-block-obj-y)
+tests/test-throttle$(EXESUF): tests/test-throttle.o $(test-block-obj-y)
+tests/test-bdrv-drain$(EXESUF): tests/test-bdrv-drain.o $(test-block-obj-y) $(test-util-obj-y)
+tests/test-blockjob$(EXESUF): tests/test-blockjob.o $(test-block-obj-y) $(test-util-obj-y)
+tests/test-blockjob-txn$(EXESUF): tests/test-blockjob-txn.o $(test-block-obj-y) $(test-util-obj-y)
+tests/test-block-backend$(EXESUF): tests/test-block-backend.o $(test-block-obj-y) $(test-util-obj-y)
+tests/test-image-locking$(EXESUF): tests/test-image-locking.o $(test-block-obj-y) $(test-util-obj-y)
+tests/test-thread-pool$(EXESUF): tests/test-thread-pool.o $(test-block-obj-y)
+tests/test-iov$(EXESUF): tests/test-iov.o $(test-util-obj-y)
+tests/test-hbitmap$(EXESUF): tests/test-hbitmap.o $(test-util-obj-y) $(test-crypto-obj-y)
+tests/test-x86-cpuid$(EXESUF): tests/test-x86-cpuid.o
+tests/test-xbzrle$(EXESUF): tests/test-xbzrle.o migration/xbzrle.o migration/page_cache.o $(test-util-obj-y)
+tests/test-cutils$(EXESUF): tests/test-cutils.o util/cutils.o $(test-util-obj-y)
+tests/test-int128$(EXESUF): tests/test-int128.o
+tests/rcutorture$(EXESUF): tests/rcutorture.o $(test-util-obj-y)
+tests/test-rcu-list$(EXESUF): tests/test-rcu-list.o $(test-util-obj-y)
+tests/test-rcu-simpleq$(EXESUF): tests/test-rcu-simpleq.o $(test-util-obj-y)
+tests/test-rcu-tailq$(EXESUF): tests/test-rcu-tailq.o $(test-util-obj-y)
+tests/test-qdist$(EXESUF): tests/test-qdist.o $(test-util-obj-y)
+tests/test-qht$(EXESUF): tests/test-qht.o $(test-util-obj-y)
+tests/test-qht-par$(EXESUF): tests/test-qht-par.o tests/qht-bench$(EXESUF) $(test-util-obj-y)
+tests/qht-bench$(EXESUF): tests/qht-bench.o $(test-util-obj-y)
+tests/test-bufferiszero$(EXESUF): tests/test-bufferiszero.o $(test-util-obj-y)
+tests/atomic_add-bench$(EXESUF): tests/atomic_add-bench.o $(test-util-obj-y)
+tests/atomic64-bench$(EXESUF): tests/atomic64-bench.o $(test-util-obj-y)
+
+tests/fp/%:
+	$(MAKE) -C $(dir $@) $(notdir $@)
+
+tests/test-qdev-global-props$(EXESUF): tests/test-qdev-global-props.o \
+	hw/core/qdev.o hw/core/qdev-properties.o hw/core/hotplug.o\
+	hw/core/bus.o \
+	hw/core/irq.o \
+	hw/core/fw-path-provider.o \
+	hw/core/reset.o \
+	$(test-qapi-obj-y)
+tests/test-vmstate$(EXESUF): tests/test-vmstate.o \
+	migration/vmstate.o migration/vmstate-types.o migration/qemu-file.o \
+        migration/qemu-file-channel.o migration/qjson.o \
+	$(test-io-obj-y)
+tests/test-timed-average$(EXESUF): tests/test-timed-average.o $(test-util-obj-y)
+tests/test-base64$(EXESUF): tests/test-base64.o $(test-util-obj-y)
+tests/ptimer-test$(EXESUF): tests/ptimer-test.o tests/ptimer-test-stubs.o hw/core/ptimer.o
+
+tests/test-logging$(EXESUF): tests/test-logging.o $(test-util-obj-y)
+
+tests/test-replication$(EXESUF): tests/test-replication.o $(test-util-obj-y) \
+	$(test-block-obj-y)
+
+tests/test-qapi-types.c tests/test-qapi-types.h \
+tests/test-qapi-visit.c tests/test-qapi-visit.h \
+tests/test-qapi-commands.h tests/test-qapi-commands.c \
+tests/test-qapi-events.c tests/test-qapi-events.h \
+tests/test-qapi-introspect.c tests/test-qapi-introspect.h: \
+tests/test-qapi-gen-timestamp ;
+tests/test-qapi-gen-timestamp: $(SRC_PATH)/tests/qapi-schema/qapi-schema-test.json $(qapi-py)
+	$(call quiet-command,$(PYTHON) $(SRC_PATH)/scripts/qapi-gen.py \
+		-o tests -p "test-" $<, \
+		"GEN","$(@:%-timestamp=%)")
+	@>$@
+
+tests/qapi-schema/doc-good.test.texi: $(SRC_PATH)/tests/qapi-schema/doc-good.json $(qapi-py)
+	$(call quiet-command,$(PYTHON) $(SRC_PATH)/scripts/qapi-gen.py \
+		-o tests/qapi-schema -p "doc-good-" $<, \
+		"GEN","$@")
+	@mv tests/qapi-schema/doc-good-qapi-doc.texi $@
+	@rm -f tests/qapi-schema/doc-good-qapi-*.[ch] tests/qapi-schema/doc-good-qmp-*.[ch]
+
+tests/test-string-output-visitor$(EXESUF): tests/test-string-output-visitor.o $(test-qapi-obj-y)
+tests/test-string-input-visitor$(EXESUF): tests/test-string-input-visitor.o $(test-qapi-obj-y)
+tests/test-qmp-event$(EXESUF): tests/test-qmp-event.o $(test-qapi-obj-y)
+tests/test-qobject-output-visitor$(EXESUF): tests/test-qobject-output-visitor.o $(test-qapi-obj-y)
+tests/test-clone-visitor$(EXESUF): tests/test-clone-visitor.o $(test-qapi-obj-y)
+tests/test-qobject-input-visitor$(EXESUF): tests/test-qobject-input-visitor.o $(test-qapi-obj-y)
+tests/test-qmp-cmds$(EXESUF): tests/test-qmp-cmds.o tests/test-qapi-commands.o $(test-qapi-obj-y)
+tests/test-visitor-serialization$(EXESUF): tests/test-visitor-serialization.o $(test-qapi-obj-y)
+tests/test-opts-visitor$(EXESUF): tests/test-opts-visitor.o $(test-qapi-obj-y)
+
+tests/test-shift128$(EXESUF): tests/test-shift128.o $(test-util-obj-y)
+tests/test-mul64$(EXESUF): tests/test-mul64.o $(test-util-obj-y)
+tests/test-bitops$(EXESUF): tests/test-bitops.o $(test-util-obj-y)
+tests/test-bitcnt$(EXESUF): tests/test-bitcnt.o $(test-util-obj-y)
+tests/test-crypto-hash$(EXESUF): tests/test-crypto-hash.o $(test-crypto-obj-y)
+tests/benchmark-crypto-hash$(EXESUF): tests/benchmark-crypto-hash.o $(test-crypto-obj-y)
+tests/test-crypto-hmac$(EXESUF): tests/test-crypto-hmac.o $(test-crypto-obj-y)
+tests/benchmark-crypto-hmac$(EXESUF): tests/benchmark-crypto-hmac.o $(test-crypto-obj-y)
+tests/test-crypto-cipher$(EXESUF): tests/test-crypto-cipher.o $(test-crypto-obj-y)
+tests/benchmark-crypto-cipher$(EXESUF): tests/benchmark-crypto-cipher.o $(test-crypto-obj-y)
+tests/test-crypto-secret$(EXESUF): tests/test-crypto-secret.o $(test-crypto-obj-y)
+tests/test-crypto-xts$(EXESUF): tests/test-crypto-xts.o $(test-crypto-obj-y)
+
+tests/crypto-tls-x509-helpers.o-cflags := $(TASN1_CFLAGS)
+tests/crypto-tls-x509-helpers.o-libs := $(TASN1_LIBS)
+tests/pkix_asn1_tab.o-cflags := $(TASN1_CFLAGS)
+
+tests/test-crypto-tlscredsx509.o-cflags := $(TASN1_CFLAGS)
+tests/test-crypto-tlscredsx509$(EXESUF): tests/test-crypto-tlscredsx509.o \
+	tests/crypto-tls-x509-helpers.o tests/pkix_asn1_tab.o $(test-crypto-obj-y)
+
+tests/test-crypto-tlssession.o-cflags := $(TASN1_CFLAGS)
+tests/test-crypto-tlssession$(EXESUF): tests/test-crypto-tlssession.o \
+	tests/crypto-tls-x509-helpers.o tests/pkix_asn1_tab.o \
+	tests/crypto-tls-psk-helpers.o \
+        $(test-crypto-obj-y)
+tests/test-util-sockets$(EXESUF): tests/test-util-sockets.o \
+	tests/socket-helpers.o $(test-util-obj-y)
+tests/test-io-task$(EXESUF): tests/test-io-task.o $(test-io-obj-y)
+tests/test-io-channel-socket$(EXESUF): tests/test-io-channel-socket.o \
+        tests/io-channel-helpers.o tests/socket-helpers.o $(test-io-obj-y)
+tests/tpm-crb-swtpm-test$(EXESUF): tests/tpm-crb-swtpm-test.o tests/tpm-emu.o \
+	tests/tpm-util.o tests/tpm-tests.o $(test-io-obj-y)
+tests/tpm-crb-test$(EXESUF): tests/tpm-crb-test.o tests/tpm-emu.o $(test-io-obj-y)
+tests/tpm-tis-swtpm-test$(EXESUF): tests/tpm-tis-swtpm-test.o tests/tpm-emu.o \
+	tests/tpm-util.o tests/tpm-tests.o $(test-io-obj-y)
+tests/tpm-tis-test$(EXESUF): tests/tpm-tis-test.o tests/tpm-emu.o $(test-io-obj-y)
+tests/test-io-channel-file$(EXESUF): tests/test-io-channel-file.o \
+        tests/io-channel-helpers.o $(test-io-obj-y)
+tests/test-io-channel-tls$(EXESUF): tests/test-io-channel-tls.o \
+	tests/crypto-tls-x509-helpers.o tests/pkix_asn1_tab.o \
+	tests/io-channel-helpers.o $(test-io-obj-y)
+tests/test-io-channel-command$(EXESUF): tests/test-io-channel-command.o \
+        tests/io-channel-helpers.o $(test-io-obj-y)
+tests/test-io-channel-buffer$(EXESUF): tests/test-io-channel-buffer.o \
+        tests/io-channel-helpers.o $(test-io-obj-y)
+tests/test-crypto-pbkdf$(EXESUF): tests/test-crypto-pbkdf.o $(test-crypto-obj-y)
+tests/test-crypto-ivgen$(EXESUF): tests/test-crypto-ivgen.o $(test-crypto-obj-y)
+tests/test-crypto-afsplit$(EXESUF): tests/test-crypto-afsplit.o $(test-crypto-obj-y)
+tests/test-crypto-block$(EXESUF): tests/test-crypto-block.o $(test-crypto-obj-y)
+
+libqos-obj-y = tests/libqos/pci.o tests/libqos/fw_cfg.o tests/libqos/malloc.o
+libqos-obj-y += tests/libqos/i2c.o tests/libqos/libqos.o
+libqos-spapr-obj-y = $(libqos-obj-y) tests/libqos/malloc-spapr.o
+libqos-spapr-obj-y += tests/libqos/libqos-spapr.o
+libqos-spapr-obj-y += tests/libqos/rtas.o
+libqos-spapr-obj-y += tests/libqos/pci-spapr.o
+libqos-pc-obj-y = $(libqos-obj-y) tests/libqos/pci-pc.o
+libqos-pc-obj-y += tests/libqos/malloc-pc.o tests/libqos/libqos-pc.o
+libqos-pc-obj-y += tests/libqos/ahci.o
+libqos-omap-obj-y = $(libqos-obj-y) tests/libqos/i2c-omap.o
+libqos-imx-obj-y = $(libqos-obj-y) tests/libqos/i2c-imx.o
+libqos-usb-obj-y = $(libqos-spapr-obj-y) $(libqos-pc-obj-y) tests/libqos/usb.o
+libqos-virtio-obj-y = $(libqos-spapr-obj-y) $(libqos-pc-obj-y) tests/libqos/virtio.o tests/libqos/virtio-pci.o tests/libqos/virtio-mmio.o tests/libqos/malloc-generic.o
+
+tests/qmp-test$(EXESUF): tests/qmp-test.o
+tests/qmp-cmd-test$(EXESUF): tests/qmp-cmd-test.o
+tests/device-introspect-test$(EXESUF): tests/device-introspect-test.o
+tests/rtc-test$(EXESUF): tests/rtc-test.o
+tests/m48t59-test$(EXESUF): tests/m48t59-test.o
+tests/hexloader-test$(EXESUF): tests/hexloader-test.o
+tests/endianness-test$(EXESUF): tests/endianness-test.o
+tests/spapr-phb-test$(EXESUF): tests/spapr-phb-test.o $(libqos-obj-y)
+tests/prom-env-test$(EXESUF): tests/prom-env-test.o $(libqos-obj-y)
+tests/rtas-test$(EXESUF): tests/rtas-test.o $(libqos-spapr-obj-y)
+tests/fdc-test$(EXESUF): tests/fdc-test.o
+tests/ide-test$(EXESUF): tests/ide-test.o $(libqos-pc-obj-y)
+tests/ahci-test$(EXESUF): tests/ahci-test.o $(libqos-pc-obj-y)
+tests/ipmi-kcs-test$(EXESUF): tests/ipmi-kcs-test.o
+tests/ipmi-bt-test$(EXESUF): tests/ipmi-bt-test.o
+tests/hd-geo-test$(EXESUF): tests/hd-geo-test.o
+tests/boot-order-test$(EXESUF): tests/boot-order-test.o $(libqos-obj-y)
+tests/boot-serial-test$(EXESUF): tests/boot-serial-test.o $(libqos-obj-y)
+tests/bios-tables-test$(EXESUF): tests/bios-tables-test.o \
+	tests/boot-sector.o tests/acpi-utils.o $(libqos-obj-y)
+tests/pxe-test$(EXESUF): tests/pxe-test.o tests/boot-sector.o $(libqos-obj-y)
+tests/tmp105-test$(EXESUF): tests/tmp105-test.o $(libqos-omap-obj-y)
+tests/pca9552-test$(EXESUF): tests/pca9552-test.o $(libqos-omap-obj-y)
+tests/ds1338-test$(EXESUF): tests/ds1338-test.o $(libqos-imx-obj-y)
+tests/microbit-test$(EXESUF): tests/microbit-test.o
+tests/m25p80-test$(EXESUF): tests/m25p80-test.o
+tests/i440fx-test$(EXESUF): tests/i440fx-test.o $(libqos-pc-obj-y)
+tests/q35-test$(EXESUF): tests/q35-test.o $(libqos-pc-obj-y)
+tests/fw_cfg-test$(EXESUF): tests/fw_cfg-test.o $(libqos-pc-obj-y)
+tests/e1000-test$(EXESUF): tests/e1000-test.o
+tests/e1000e-test$(EXESUF): tests/e1000e-test.o $(libqos-pc-obj-y)
+tests/rtl8139-test$(EXESUF): tests/rtl8139-test.o $(libqos-pc-obj-y)
+tests/pcnet-test$(EXESUF): tests/pcnet-test.o
+tests/pnv-xscom-test$(EXESUF): tests/pnv-xscom-test.o
+tests/eepro100-test$(EXESUF): tests/eepro100-test.o
+tests/vmxnet3-test$(EXESUF): tests/vmxnet3-test.o
+tests/ne2000-test$(EXESUF): tests/ne2000-test.o
+tests/wdt_ib700-test$(EXESUF): tests/wdt_ib700-test.o
+tests/tco-test$(EXESUF): tests/tco-test.o $(libqos-pc-obj-y)
+tests/virtio-balloon-test$(EXESUF): tests/virtio-balloon-test.o $(libqos-virtio-obj-y)
+tests/virtio-blk-test$(EXESUF): tests/virtio-blk-test.o $(libqos-virtio-obj-y)
+tests/virtio-ccw-test$(EXESUF): tests/virtio-ccw-test.o
+tests/virtio-net-test$(EXESUF): tests/virtio-net-test.o $(libqos-pc-obj-y) $(libqos-virtio-obj-y)
+tests/virtio-rng-test$(EXESUF): tests/virtio-rng-test.o $(libqos-pc-obj-y)
+tests/virtio-scsi-test$(EXESUF): tests/virtio-scsi-test.o $(libqos-virtio-obj-y)
+tests/virtio-9p-test$(EXESUF): tests/virtio-9p-test.o $(libqos-virtio-obj-y)
+tests/virtio-serial-test$(EXESUF): tests/virtio-serial-test.o $(libqos-virtio-obj-y)
+tests/virtio-console-test$(EXESUF): tests/virtio-console-test.o $(libqos-virtio-obj-y)
+tests/tpci200-test$(EXESUF): tests/tpci200-test.o
+tests/display-vga-test$(EXESUF): tests/display-vga-test.o
+tests/ipoctal232-test$(EXESUF): tests/ipoctal232-test.o
+tests/qom-test$(EXESUF): tests/qom-test.o
+tests/test-hmp$(EXESUF): tests/test-hmp.o
+tests/machine-none-test$(EXESUF): tests/machine-none-test.o
+tests/drive_del-test$(EXESUF): tests/drive_del-test.o $(libqos-virtio-obj-y)
+tests/qdev-monitor-test$(EXESUF): tests/qdev-monitor-test.o $(libqos-pc-obj-y)
+tests/nvme-test$(EXESUF): tests/nvme-test.o $(libqos-pc-obj-y)
+tests/pvpanic-test$(EXESUF): tests/pvpanic-test.o
+tests/i82801b11-test$(EXESUF): tests/i82801b11-test.o
+tests/ac97-test$(EXESUF): tests/ac97-test.o
+tests/es1370-test$(EXESUF): tests/es1370-test.o
+tests/intel-hda-test$(EXESUF): tests/intel-hda-test.o
+tests/ioh3420-test$(EXESUF): tests/ioh3420-test.o
+tests/usb-hcd-ohci-test$(EXESUF): tests/usb-hcd-ohci-test.o $(libqos-usb-obj-y)
+tests/usb-hcd-uhci-test$(EXESUF): tests/usb-hcd-uhci-test.o $(libqos-usb-obj-y)
+tests/usb-hcd-ehci-test$(EXESUF): tests/usb-hcd-ehci-test.o $(libqos-usb-obj-y)
+tests/usb-hcd-xhci-test$(EXESUF): tests/usb-hcd-xhci-test.o $(libqos-usb-obj-y)
+tests/cpu-plug-test$(EXESUF): tests/cpu-plug-test.o
+tests/migration-test$(EXESUF): tests/migration-test.o
+tests/vhost-user-test$(EXESUF): tests/vhost-user-test.o $(test-util-obj-y) \
+	$(qtest-obj-y) $(test-io-obj-y) $(libqos-virtio-obj-y) $(libqos-pc-obj-y) \
+	$(chardev-obj-y)
+tests/qemu-iotests/socket_scm_helper$(EXESUF): tests/qemu-iotests/socket_scm_helper.o
+tests/test-qemu-opts$(EXESUF): tests/test-qemu-opts.o $(test-util-obj-y)
+tests/test-keyval$(EXESUF): tests/test-keyval.o $(test-util-obj-y) $(test-qapi-obj-y)
+tests/test-write-threshold$(EXESUF): tests/test-write-threshold.o $(test-block-obj-y)
+tests/test-netfilter$(EXESUF): tests/test-netfilter.o $(qtest-obj-y)
+tests/test-filter-mirror$(EXESUF): tests/test-filter-mirror.o $(qtest-obj-y)
+tests/test-filter-redirector$(EXESUF): tests/test-filter-redirector.o $(qtest-obj-y)
+tests/test-x86-cpuid-compat$(EXESUF): tests/test-x86-cpuid-compat.o $(qtest-obj-y)
+tests/ivshmem-test$(EXESUF): tests/ivshmem-test.o contrib/ivshmem-server/ivshmem-server.o $(libqos-pc-obj-y) $(libqos-spapr-obj-y)
+tests/megasas-test$(EXESUF): tests/megasas-test.o $(libqos-spapr-obj-y) $(libqos-pc-obj-y)
+tests/vhost-user-bridge$(EXESUF): tests/vhost-user-bridge.o $(test-util-obj-y) libvhost-user.a
+tests/test-uuid$(EXESUF): tests/test-uuid.o $(test-util-obj-y)
+tests/test-arm-mptimer$(EXESUF): tests/test-arm-mptimer.o
+tests/test-qapi-util$(EXESUF): tests/test-qapi-util.o $(test-util-obj-y)
+tests/numa-test$(EXESUF): tests/numa-test.o
+tests/vmgenid-test$(EXESUF): tests/vmgenid-test.o tests/boot-sector.o tests/acpi-utils.o
+tests/sdhci-test$(EXESUF): tests/sdhci-test.o $(libqos-pc-obj-y)
+tests/cdrom-test$(EXESUF): tests/cdrom-test.o tests/boot-sector.o $(libqos-obj-y)
+
+tests/migration/stress$(EXESUF): tests/migration/stress.o
+	$(call quiet-command, $(LINKPROG) -static -O3 $(PTHREAD_LIB) -o $@ $< ,"LINK","$(TARGET_DIR)$@")
+
+INITRD_WORK_DIR=tests/migration/initrd
+
+tests/migration/initrd-stress.img: tests/migration/stress$(EXESUF)
+	mkdir -p $(INITRD_WORK_DIR)
+	cp $< $(INITRD_WORK_DIR)/init
+	(cd $(INITRD_WORK_DIR) && (find | cpio --quiet -o -H newc | gzip -9)) > $@
+	rm $(INITRD_WORK_DIR)/init
+	rmdir $(INITRD_WORK_DIR)
+
+ifeq ($(CONFIG_POSIX),y)
+LIBS += -lutil
+endif
+
+# QTest rules
+
+TARGETS=$(patsubst %-softmmu,%, $(filter %-softmmu,$(TARGET_DIRS)))
+ifeq ($(CONFIG_POSIX),y)
+QTEST_TARGETS = $(TARGETS)
+check-qtest-y=$(foreach TARGET,$(TARGETS), $(check-qtest-$(TARGET)-y))
+check-qtest-y += $(check-qtest-generic-y)
+else
+QTEST_TARGETS =
+endif
+
+qtest-obj-y = tests/libqtest.o $(test-util-obj-y)
+$(check-qtest-y): $(qtest-obj-y)
+
+tests/test-qga$(EXESUF): qemu-ga$(EXESUF)
+tests/test-qga$(EXESUF): tests/test-qga.o $(qtest-obj-y)
+
+SPEED = quick
+
+# gtester tests, possibly with verbose output
+# do_test_tap runs all tests, even if some of them fail, while do_test_human
+# stops at the first failure unless -k is given on the command line
+
+define do_test_human_k
+        $(quiet-@)rc=0; $(foreach COMMAND, $1, \
+          $(call quiet-command-run, \
+            export MALLOC_PERTURB_=$${MALLOC_PERTURB_:-$$(( $${RANDOM:-0} % 255 + 1))} $2; \
+              $(COMMAND) -m=$(SPEED) -k --tap < /dev/null \
+              | ./scripts/tap-driver.pl --test-name="$(notdir $(COMMAND))" $(if $(V),, --show-failures-only) \
+              || rc=$$?;, "TEST", "$@: $(COMMAND)")) exit $$rc
+endef
+define do_test_human_no_k
+        $(foreach COMMAND, $1, \
+          $(call quiet-command, \
+            MALLOC_PERTURB_=$${MALLOC_PERTURB_:-$$(( $${RANDOM:-0} % 255 + 1))} $2 \
+              $(COMMAND) -m=$(SPEED) -k --tap < /dev/null \
+              | ./scripts/tap-driver.pl --test-name="$(notdir $(COMMAND))" $(if $(V),, --show-failures-only), \
+              "TEST", "$@: $(COMMAND)")
+)
+endef
+do_test_human = \
+        $(if $(findstring k, $(MAKEFLAGS)), $(do_test_human_k), $(do_test_human_no_k))
+
+define do_test_tap
+	$(call quiet-command, \
+          { export MALLOC_PERTURB_=$${MALLOC_PERTURB_:-$$(( $${RANDOM:-0} % 255 + 1))} $2; \
+            $(foreach COMMAND, $1, \
+	      $(COMMAND) -m=$(SPEED) -k --tap < /dev/null \
+	      | sed "s/^[a-z][a-z]* [0-9]* /&$(notdir $(COMMAND)) /" || true; ) } \
+	      | ./scripts/tap-merge.pl | tee "$@" \
+	      | ./scripts/tap-driver.pl $(if $(V),, --show-failures-only), \
+	  "TAP","$@")
+endef
+
+.PHONY: $(patsubst %, check-qtest-%, $(QTEST_TARGETS))
+$(patsubst %, check-qtest-%, $(QTEST_TARGETS)): check-qtest-%: subdir-%-softmmu $(check-qtest-y)
+	$(call do_test_human,$(check-qtest-$*-y) $(check-qtest-generic-y), \
+	  QTEST_QEMU_BINARY=$*-softmmu/qemu-system-$* \
+	  QTEST_QEMU_IMG=qemu-img$(EXESUF))
+
+check-unit: $(check-unit-y)
+	$(call do_test_human, $^)
+
+check-speed: $(check-speed-y)
+	$(call do_test_human, $^)
+
+# gtester tests with TAP output
+
+$(patsubst %, check-report-qtest-%.tap, $(QTEST_TARGETS)): check-report-qtest-%.tap: $(check-qtest-y)
+	$(call do_test_tap, $(check-qtest-$*-y) $(check-qtest-generic-y), \
+	  QTEST_QEMU_BINARY=$*-softmmu/qemu-system-$* \
+	  QTEST_QEMU_IMG=qemu-img$(EXESUF))
+
+check-report-unit.tap: $(check-unit-y)
+	$(call do_test_tap,$^)
+
+# Reports and overall runs
+
+check-report.tap: $(patsubst %,check-report-qtest-%.tap, $(QTEST_TARGETS)) check-report-unit.tap
+	$(call quiet-command,./scripts/tap-merge.py $^ > $@,"GEN","$@")
+
+# Per guest TCG tests
+
+LINUX_USER_TARGETS=$(filter %-linux-user,$(TARGET_DIRS))
+BUILD_TCG_TARGET_RULES=$(patsubst %,build-tcg-tests-%, $(LINUX_USER_TARGETS))
+CLEAN_TCG_TARGET_RULES=$(patsubst %,clean-tcg-tests-%, $(LINUX_USER_TARGETS))
+RUN_TCG_TARGET_RULES=$(patsubst %,run-tcg-tests-%, $(LINUX_USER_TARGETS))
+
+ifeq ($(HAVE_USER_DOCKER),y)
+# Probe for the Docker Builds needed for each build
+$(foreach PROBE_TARGET,$(TARGET_DIRS), 				\
+	$(eval -include $(SRC_PATH)/tests/tcg/Makefile.probe) 	\
+	$(if $(DOCKER_PREREQ), 					\
+		$(eval build-tcg-tests-$(PROBE_TARGET): $(DOCKER_PREREQ))))
+endif
+
+build-tcg-tests-%:
+	$(call quiet-command,$(MAKE) $(SUBDIR_MAKEFLAGS) -C $* V="$(V)" \
+		SKIP_DOCKER_BUILD=1 TARGET_DIR="$*/" guest-tests, \
+		"BUILD", "TCG tests for $*")
+
+run-tcg-tests-%: % build-tcg-tests-%
+	$(call quiet-command,$(MAKE) $(SUBDIR_MAKEFLAGS) -C $* V="$(V)" \
+		SKIP_DOCKER_BUILD=1 TARGET_DIR="$*/" run-guest-tests, \
+		"RUN", "TCG tests for $*")
+
+clean-tcg-tests-%:
+	$(call quiet-command,$(MAKE) $(SUBDIR_MAKEFLAGS) -C $* V="$(V)" TARGET_DIR="$*/" clean-guest-tests,)
+
+.PHONY: build-tcg
+build-tcg: $(BUILD_TCG_TARGET_RULES)
+
+.PHONY: check-tcg
+check-tcg: $(RUN_TCG_TARGET_RULES)
+
+.PHONY: clean-tcg
+clean-tcg: $(CLEAN_TCG_TARGET_RULES)
+
+# Other tests
+
+QEMU_IOTESTS_HELPERS-$(call land,$(CONFIG_SOFTMMU),$(CONFIG_LINUX)) = tests/qemu-iotests/socket_scm_helper$(EXESUF)
+
+.PHONY: check-tests/qemu-iotests-quick.sh
+check-tests/qemu-iotests-quick.sh: tests/qemu-iotests-quick.sh qemu-img$(EXESUF) qemu-io$(EXESUF) $(QEMU_IOTESTS_HELPERS-y)
+	$<
+
+.PHONY: $(patsubst %, check-%, $(check-qapi-schema-y))
+$(patsubst %, check-%, $(check-qapi-schema-y)): check-%.json: $(SRC_PATH)/%.json
+	$(call quiet-command, PYTHONPATH=$(SRC_PATH)/scripts \
+		$(PYTHON) $(SRC_PATH)/tests/qapi-schema/test-qapi.py \
+		$^ >$*.test.out 2>$*.test.err; \
+		echo $$? >$*.test.exit, \
+		"TEST","$*.out")
+	@# Sanitize error messages (make them independent of build directory)
+	@perl -p -e 's|\Q$(SRC_PATH)\E/||g' $*.test.err | diff -u $(SRC_PATH)/$*.err -
+	@diff -u $(SRC_PATH)/$*.out $*.test.out
+	@diff -u $(SRC_PATH)/$*.exit $*.test.exit
+
+.PHONY: check-tests/qapi-schema/doc-good.texi
+check-tests/qapi-schema/doc-good.texi: tests/qapi-schema/doc-good.test.texi
+	@diff -u $(SRC_PATH)/tests/qapi-schema/doc-good.texi $<
+
+.PHONY: check-decodetree
+check-decodetree:
+	$(call quiet-command, \
+	  cd $(SRC_PATH)/tests/decode && \
+          ./check.sh "$(PYTHON)" "$(SRC_PATH)/scripts/decodetree.py", \
+          TEST, decodetree.py)
+
+# Python venv for running tests
+
+.PHONY: check-venv check-acceptance
+
+TESTS_VENV_DIR=$(BUILD_DIR)/tests/venv
+TESTS_VENV_REQ=$(SRC_PATH)/tests/requirements.txt
+TESTS_RESULTS_DIR=$(BUILD_DIR)/tests/results
+# Controls the output generated by Avocado when running tests.
+# Any number of command separated loggers are accepted.  For more
+# information please refer to "avocado --help".
+AVOCADO_SHOW=none
+
+PYTHON3 = $(shell $(PYTHON) -c 'import sys; print(1 if sys.version_info >= (3, 0) else 0)')
+ifeq ($(PYTHON3), 1)
+$(TESTS_VENV_DIR): $(TESTS_VENV_REQ)
+	$(call quiet-command, \
+            $(PYTHON) -m venv --system-site-packages $@, \
+            VENV, $@)
+	$(call quiet-command, \
+            $(TESTS_VENV_DIR)/bin/python -m pip -q install -r $(TESTS_VENV_REQ), \
+            PIP, $(TESTS_VENV_REQ))
+	$(call quiet-command, touch $@)
+else
+$(TESTS_VENV_DIR):
+	$(error "venv directory for tests requires Python 3")
+endif
+
+$(TESTS_RESULTS_DIR):
+	$(call quiet-command, mkdir -p $@, \
+            MKDIR, $@)
+
+check-venv: $(TESTS_VENV_DIR)
+
+check-acceptance: check-venv $(TESTS_RESULTS_DIR)
+	$(call quiet-command, \
+            $(TESTS_VENV_DIR)/bin/python -m avocado \
+            --show=$(AVOCADO_SHOW) run --job-results-dir=$(TESTS_RESULTS_DIR) \
+            --failfast=on $(SRC_PATH)/tests/acceptance, \
+            "AVOCADO", "tests/acceptance")
+
+# Consolidated targets
+
+.PHONY: check-qapi-schema check-qtest check-unit check check-clean
+check-qapi-schema: $(patsubst %,check-%, $(check-qapi-schema-y)) check-tests/qapi-schema/doc-good.texi
+check-qtest: $(patsubst %,check-qtest-%, $(QTEST_TARGETS))
+check-block: $(patsubst %,check-%, $(check-block-y))
+check: check-qapi-schema check-unit check-qtest check-decodetree
+check-clean:
+	rm -rf $(check-unit-y) tests/*.o $(QEMU_IOTESTS_HELPERS-y)
+	rm -rf $(sort $(foreach target,$(SYSEMU_TARGET_LIST), $(check-qtest-$(target)-y)) $(check-qtest-generic-y))
+	rm -f tests/test-qapi-gen-timestamp
+	rm -rf $(TESTS_VENV_DIR) $(TESTS_RESULTS_DIR)
+
+clean: check-clean
+
+# Build the help program automatically
+
+all: $(QEMU_IOTESTS_HELPERS-y)
+
+-include $(wildcard tests/*.d)
+-include $(wildcard tests/libqos/*.d)
+
+endif
diff --git a/tests/Makefile.orig b/tests/Makefile.orig
new file mode 100644
index 0000000000..e6474ba31b
--- /dev/null
+++ b/tests/Makefile.orig
@@ -0,0 +1,569 @@ 
+export SRC_PATH
+
+qapi-py = $(SRC_PATH)/scripts/qapi.py $(SRC_PATH)/scripts/ordereddict.py
+
+# Get the list of all supported sysemu targets
+SYSEMU_TARGET_LIST := $(subst -softmmu.mak,,$(notdir \
+   $(wildcard $(SRC_PATH)/default-configs/*-softmmu.mak)))
+
+check-unit-y = tests/check-qdict$(EXESUF)
+gcov-files-check-qdict-y = qobject/qdict.c
+check-unit-y += tests/check-qfloat$(EXESUF)
+gcov-files-check-qfloat-y = qobject/qfloat.c
+check-unit-y += tests/check-qint$(EXESUF)
+gcov-files-check-qint-y = qobject/qint.c
+check-unit-y += tests/check-qstring$(EXESUF)
+gcov-files-check-qstring-y = qobject/qstring.c
+check-unit-y += tests/check-qlist$(EXESUF)
+gcov-files-check-qlist-y = qobject/qlist.c
+check-unit-y += tests/check-qjson$(EXESUF)
+gcov-files-check-qjson-y = qobject/qjson.c
+check-unit-y += tests/test-qmp-output-visitor$(EXESUF)
+gcov-files-test-qmp-output-visitor-y = qapi/qmp-output-visitor.c
+check-unit-y += tests/test-qmp-input-visitor$(EXESUF)
+gcov-files-test-qmp-input-visitor-y = qapi/qmp-input-visitor.c
+check-unit-y += tests/test-qmp-input-strict$(EXESUF)
+check-unit-y += tests/test-qmp-commands$(EXESUF)
+gcov-files-test-qmp-commands-y = qapi/qmp-dispatch.c
+check-unit-y += tests/test-string-input-visitor$(EXESUF)
+gcov-files-test-string-input-visitor-y = qapi/string-input-visitor.c
+check-unit-y += tests/test-string-output-visitor$(EXESUF)
+gcov-files-test-string-output-visitor-y = qapi/string-output-visitor.c
+check-unit-y += tests/test-qmp-event$(EXESUF)
+gcov-files-test-qmp-event-y += qapi/qmp-event.c
+check-unit-y += tests/test-opts-visitor$(EXESUF)
+gcov-files-test-opts-visitor-y = qapi/opts-visitor.c
+check-unit-y += tests/test-coroutine$(EXESUF)
+gcov-files-test-coroutine-y = coroutine-$(CONFIG_COROUTINE_BACKEND).c
+check-unit-y += tests/test-visitor-serialization$(EXESUF)
+check-unit-y += tests/test-iov$(EXESUF)
+gcov-files-test-iov-y = util/iov.c
+check-unit-y += tests/test-aio$(EXESUF)
+check-unit-$(CONFIG_POSIX) += tests/test-rfifolock$(EXESUF)
+check-unit-y += tests/test-throttle$(EXESUF)
+gcov-files-test-aio-$(CONFIG_WIN32) = aio-win32.c
+gcov-files-test-aio-$(CONFIG_POSIX) = aio-posix.c
+check-unit-y += tests/test-thread-pool$(EXESUF)
+gcov-files-test-thread-pool-y = thread-pool.c
+gcov-files-test-hbitmap-y = util/hbitmap.c
+check-unit-y += tests/test-hbitmap$(EXESUF)
+check-unit-y += tests/test-x86-cpuid$(EXESUF)
+# all code tested by test-x86-cpuid is inside topology.h
+gcov-files-test-x86-cpuid-y =
+ifeq ($(CONFIG_SOFTMMU),y)
+check-unit-y += tests/test-xbzrle$(EXESUF)
+gcov-files-test-xbzrle-y = migration/xbzrle.c
+check-unit-$(CONFIG_POSIX) += tests/test-vmstate$(EXESUF)
+endif
+check-unit-y += tests/test-cutils$(EXESUF)
+gcov-files-test-cutils-y += util/cutils.c
+check-unit-y += tests/test-mul64$(EXESUF)
+gcov-files-test-mul64-y = util/host-utils.c
+check-unit-y += tests/test-int128$(EXESUF)
+# all code tested by test-int128 is inside int128.h
+gcov-files-test-int128-y =
+check-unit-y += tests/rcutorture$(EXESUF)
+gcov-files-rcutorture-y = util/rcu.c
+check-unit-y += tests/test-rcu-list$(EXESUF)
+gcov-files-test-rcu-list-y = util/rcu.c
+check-unit-y += tests/test-bitops$(EXESUF)
+check-unit-$(CONFIG_HAS_GLIB_SUBPROCESS_TESTS) += tests/test-qdev-global-props$(EXESUF)
+check-unit-y += tests/check-qom-interface$(EXESUF)
+gcov-files-check-qom-interface-y = qom/object.c
+check-unit-y += tests/check-qom-proplist$(EXESUF)
+gcov-files-check-qom-proplist-y = qom/object.c
+check-unit-y += tests/test-qemu-opts$(EXESUF)
+gcov-files-test-qemu-opts-y = qom/test-qemu-opts.c
+check-unit-y += tests/test-write-threshold$(EXESUF)
+gcov-files-test-write-threshold-y = block/write-threshold.c
+check-unit-$(CONFIG_GNUTLS_HASH) += tests/test-crypto-hash$(EXESUF)
+check-unit-y += tests/test-crypto-cipher$(EXESUF)
+check-unit-$(CONFIG_GNUTLS) += tests/test-crypto-tlscredsx509$(EXESUF)
+check-unit-$(CONFIG_GNUTLS) += tests/test-crypto-tlssession$(EXESUF)
+
+check-block-$(CONFIG_POSIX) += tests/qemu-iotests-quick.sh
+
+# All QTests for now are POSIX-only, but the dependencies are
+# really in libqtest, not in the testcases themselves.
+
+gcov-files-ipack-y += hw/ipack/ipack.c
+check-qtest-ipack-y += tests/ipoctal232-test$(EXESUF)
+gcov-files-ipack-y += hw/char/ipoctal232.c
+
+check-qtest-virtioserial-y += tests/virtio-console-test$(EXESUF)
+gcov-files-virtioserial-y += hw/char/virtio-console.c
+
+gcov-files-virtio-y += i386-softmmu/hw/virtio/virtio.c
+check-qtest-virtio-y += tests/virtio-net-test$(EXESUF)
+gcov-files-virtio-y += i386-softmmu/hw/net/virtio-net.c
+check-qtest-virtio-y += tests/virtio-balloon-test$(EXESUF)
+gcov-files-virtio-y += i386-softmmu/hw/virtio/virtio-balloon.c
+check-qtest-virtio-y += tests/virtio-blk-test$(EXESUF)
+gcov-files-virtio-y += i386-softmmu/hw/block/virtio-blk.c
+check-qtest-virtio-y += tests/virtio-rng-test$(EXESUF)
+gcov-files-virtio-y += hw/virtio/virtio-rng.c
+check-qtest-virtio-y += tests/virtio-scsi-test$(EXESUF)
+gcov-files-virtio-y += i386-softmmu/hw/scsi/virtio-scsi.c
+ifeq ($(CONFIG_VIRTIO)$(CONFIG_VIRTFS)$(CONFIG_PCI),yyy)
+check-qtest-virtio-y += tests/virtio-9p-test$(EXESUF)
+gcov-files-virtio-y += hw/9pfs/virtio-9p.c
+gcov-files-virtio-y += i386-softmmu/hw/9pfs/virtio-9p-device.c
+endif
+check-qtest-virtio-y += tests/virtio-serial-test$(EXESUF)
+gcov-files-virtio-y += i386-softmmu/hw/char/virtio-serial-bus.c
+check-qtest-virtio-y += $(check-qtest-virtioserial-y)
+gcov-files-virtio-y += $(gcov-files-virtioserial-y)
+
+check-qtest-pci-y += tests/e1000-test$(EXESUF)
+gcov-files-pci-y += hw/net/e1000.c
+check-qtest-pci-y += tests/rtl8139-test$(EXESUF)
+gcov-files-pci-y += hw/net/rtl8139.c
+check-qtest-pci-y += tests/pcnet-test$(EXESUF)
+gcov-files-pci-y += hw/net/pcnet.c
+gcov-files-pci-y += hw/net/pcnet-pci.c
+check-qtest-pci-y += tests/eepro100-test$(EXESUF)
+gcov-files-pci-y += hw/net/eepro100.c
+check-qtest-pci-y += tests/ne2000-test$(EXESUF)
+gcov-files-pci-y += hw/net/ne2000.c
+check-qtest-pci-y += tests/nvme-test$(EXESUF)
+gcov-files-pci-y += hw/block/nvme.c
+check-qtest-pci-y += tests/ac97-test$(EXESUF)
+gcov-files-pci-y += hw/audio/ac97.c
+check-qtest-pci-y += tests/es1370-test$(EXESUF)
+gcov-files-pci-y += hw/audio/es1370.c
+check-qtest-pci-y += $(check-qtest-virtio-y)
+gcov-files-pci-y += $(gcov-files-virtio-y) hw/virtio/virtio-pci.c
+check-qtest-pci-y += tests/tpci200-test$(EXESUF)
+gcov-files-pci-y += hw/ipack/tpci200.c
+check-qtest-pci-y += $(check-qtest-ipack-y)
+gcov-files-pci-y += $(gcov-files-ipack-y)
+check-qtest-pci-y += tests/display-vga-test$(EXESUF)
+gcov-files-pci-y += hw/display/vga.c
+gcov-files-pci-y += hw/display/cirrus_vga.c
+gcov-files-pci-y += hw/display/vga-pci.c
+gcov-files-pci-y += hw/display/virtio-gpu.c
+gcov-files-pci-y += hw/display/virtio-gpu-pci.c
+gcov-files-pci-$(CONFIG_VIRTIO_VGA) += hw/display/virtio-vga.c
+check-qtest-pci-y += tests/intel-hda-test$(EXESUF)
+gcov-files-pci-y += hw/audio/intel-hda.c hw/audio/hda-codec.c
+
+check-qtest-i386-y = tests/endianness-test$(EXESUF)
+check-qtest-i386-y += tests/fdc-test$(EXESUF)
+gcov-files-i386-y = hw/block/fdc.c
+check-qtest-i386-y += tests/ide-test$(EXESUF)
+check-qtest-i386-y += tests/ahci-test$(EXESUF)
+check-qtest-i386-y += tests/hd-geo-test$(EXESUF)
+gcov-files-i386-y += hw/block/hd-geometry.c
+check-qtest-i386-y += tests/boot-order-test$(EXESUF)
+check-qtest-i386-y += tests/bios-tables-test$(EXESUF)
+check-qtest-i386-y += tests/rtc-test$(EXESUF)
+check-qtest-i386-y += tests/i440fx-test$(EXESUF)
+check-qtest-i386-y += tests/fw_cfg-test$(EXESUF)
+check-qtest-i386-y += tests/drive_del-test$(EXESUF)
+check-qtest-i386-y += tests/wdt_ib700-test$(EXESUF)
+check-qtest-i386-y += tests/tco-test$(EXESUF)
+gcov-files-i386-y += hw/watchdog/watchdog.c hw/watchdog/wdt_ib700.c
+check-qtest-i386-y += $(check-qtest-pci-y)
+gcov-files-i386-y += $(gcov-files-pci-y)
+check-qtest-i386-y += tests/vmxnet3-test$(EXESUF)
+gcov-files-i386-y += hw/net/vmxnet3.c
+gcov-files-i386-y += hw/net/vmxnet_rx_pkt.c
+gcov-files-i386-y += hw/net/vmxnet_tx_pkt.c
+check-qtest-i386-y += tests/pvpanic-test$(EXESUF)
+gcov-files-i386-y += i386-softmmu/hw/misc/pvpanic.c
+check-qtest-i386-y += tests/i82801b11-test$(EXESUF)
+gcov-files-i386-y += hw/pci-bridge/i82801b11.c
+check-qtest-i386-y += tests/ioh3420-test$(EXESUF)
+gcov-files-i386-y += hw/pci-bridge/ioh3420.c
+check-qtest-i386-y += tests/usb-hcd-ohci-test$(EXESUF)
+gcov-files-i386-y += hw/usb/hcd-ohci.c
+check-qtest-i386-y += tests/usb-hcd-uhci-test$(EXESUF)
+gcov-files-i386-y += hw/usb/hcd-uhci.c
+check-qtest-i386-y += tests/usb-hcd-ehci-test$(EXESUF)
+gcov-files-i386-y += hw/usb/hcd-ehci.c
+gcov-files-i386-y += hw/usb/dev-hid.c
+gcov-files-i386-y += hw/usb/dev-storage.c
+check-qtest-i386-y += tests/usb-hcd-xhci-test$(EXESUF)
+gcov-files-i386-y += hw/usb/hcd-xhci.c
+check-qtest-i386-y += tests/pc-cpu-test$(EXESUF)
+check-qtest-i386-y += tests/q35-test$(EXESUF)
+gcov-files-i386-y += hw/pci-host/q35.c
+ifeq ($(CONFIG_VHOST_NET),y)
+check-qtest-i386-$(CONFIG_LINUX) += tests/vhost-user-test$(EXESUF)
+endif
+check-qtest-x86_64-y = $(check-qtest-i386-y)
+gcov-files-i386-y += i386-softmmu/hw/timer/mc146818rtc.c
+gcov-files-x86_64-y = $(subst i386-softmmu/,x86_64-softmmu/,$(gcov-files-i386-y))
+check-qtest-mips-y = tests/endianness-test$(EXESUF)
+check-qtest-mips64-y = tests/endianness-test$(EXESUF)
+check-qtest-mips64el-y = tests/endianness-test$(EXESUF)
+check-qtest-ppc-y = tests/endianness-test$(EXESUF)
+check-qtest-ppc64-y = tests/endianness-test$(EXESUF)
+check-qtest-sh4-y = tests/endianness-test$(EXESUF)
+check-qtest-sh4eb-y = tests/endianness-test$(EXESUF)
+check-qtest-sparc64-y = tests/endianness-test$(EXESUF)
+#check-qtest-sparc-y = tests/m48t59-test$(EXESUF)
+#check-qtest-sparc64-y += tests/m48t59-test$(EXESUF)
+gcov-files-sparc-y += hw/timer/m48t59.c
+gcov-files-sparc64-y += hw/timer/m48t59.c
+check-qtest-arm-y = tests/tmp105-test$(EXESUF)
+check-qtest-arm-y = tests/ds1338-test$(EXESUF)
+gcov-files-arm-y += hw/misc/tmp105.c
+check-qtest-arm-y += tests/virtio-blk-test$(EXESUF)
+gcov-files-arm-y += arm-softmmu/hw/block/virtio-blk.c
+check-qtest-ppc-y += tests/boot-order-test$(EXESUF)
+check-qtest-ppc64-y += tests/boot-order-test$(EXESUF)
+check-qtest-ppc64-y += tests/spapr-phb-test$(EXESUF)
+gcov-files-ppc64-y += ppc64-softmmu/hw/ppc/spapr_pci.c
+check-qtest-microblazeel-y = $(check-qtest-microblaze-y)
+check-qtest-xtensaeb-y = $(check-qtest-xtensa-y)
+
+# qom-test works for all sysemu architectures:
+$(foreach target,$(SYSEMU_TARGET_LIST), \
+	$(if $(findstring tests/qom-test$(EXESUF), $(check-qtest-$(target)-y)),, \
+		$(eval check-qtest-$(target)-y += tests/qom-test$(EXESUF))))
+
+check-qapi-schema-y := $(addprefix tests/qapi-schema/, \
+	comments.json empty.json enum-empty.json enum-missing-data.json \
+	enum-wrong-data.json enum-int-member.json enum-dict-member.json \
+	enum-clash-member.json enum-max-member.json enum-union-clash.json \
+	enum-bad-name.json enum-bad-prefix.json \
+	funny-char.json indented-expr.json \
+	missing-type.json bad-ident.json ident-with-escape.json \
+	escape-outside-string.json unknown-escape.json \
+	escape-too-short.json escape-too-big.json unicode-str.json \
+	double-type.json bad-base.json bad-type-bool.json bad-type-int.json \
+	bad-type-dict.json double-data.json unknown-expr-key.json \
+	redefined-type.json redefined-command.json redefined-builtin.json \
+	redefined-event.json command-int.json bad-data.json event-max.json \
+	type-bypass-bad-gen.json \
+	args-invalid.json \
+	args-array-empty.json args-array-unknown.json args-int.json \
+	args-unknown.json args-member-unknown.json args-member-array.json \
+	args-member-array-bad.json args-alternate.json args-union.json \
+	args-any.json \
+	returns-array-bad.json returns-int.json returns-dict.json \
+	returns-unknown.json returns-alternate.json returns-whitelist.json \
+	missing-colon.json missing-comma-list.json missing-comma-object.json \
+	struct-data-invalid.json struct-member-invalid.json \
+	nested-struct-data.json non-objects.json \
+	qapi-schema-test.json quoted-structural-chars.json \
+	leading-comma-list.json leading-comma-object.json \
+	trailing-comma-list.json trailing-comma-object.json \
+	unclosed-list.json unclosed-object.json unclosed-string.json \
+	duplicate-key.json union-invalid-base.json union-bad-branch.json \
+	union-optional-branch.json union-unknown.json union-max.json \
+	flat-union-optional-discriminator.json flat-union-no-base.json \
+	flat-union-invalid-discriminator.json flat-union-inline.json \
+	flat-union-invalid-branch-key.json flat-union-reverse-define.json \
+	flat-union-string-discriminator.json union-base-no-discriminator.json \
+	flat-union-bad-discriminator.json flat-union-bad-base.json \
+	flat-union-base-any.json \
+	flat-union-array-branch.json flat-union-int-branch.json \
+	flat-union-base-union.json flat-union-branch-clash.json \
+	alternate-nested.json alternate-unknown.json alternate-clash.json \
+	alternate-good.json alternate-base.json alternate-array.json \
+	alternate-conflict-string.json alternate-conflict-dict.json \
+	include-simple.json include-relpath.json include-format-err.json \
+	include-non-file.json include-no-file.json include-before-err.json \
+	include-nested-err.json include-self-cycle.json include-cycle.json \
+	include-repetition.json event-nest-struct.json event-case.json \
+	struct-base-clash.json struct-base-clash-deep.json )
+
+GENERATED_HEADERS += tests/test-qapi-types.h tests/test-qapi-visit.h \
+	tests/test-qmp-commands.h tests/test-qapi-event.h \
+	tests/test-qmp-introspect.h
+
+test-obj-y = tests/check-qint.o tests/check-qstring.o tests/check-qdict.o \
+	tests/check-qlist.o tests/check-qfloat.o tests/check-qjson.o \
+	tests/test-coroutine.o tests/test-string-output-visitor.o \
+	tests/test-string-input-visitor.o tests/test-qmp-output-visitor.o \
+	tests/test-qmp-input-visitor.o tests/test-qmp-input-strict.o \
+	tests/test-qmp-commands.o tests/test-visitor-serialization.o \
+	tests/test-x86-cpuid.o tests/test-mul64.o tests/test-int128.o \
+	tests/test-opts-visitor.o tests/test-qmp-event.o \
+	tests/rcutorture.o tests/test-rcu-list.o
+
+$(test-obj-y): QEMU_INCLUDES += -Itests
+QEMU_CFLAGS += -I$(SRC_PATH)/tests
+
+
+# Deps that are common to various different sets of tests below
+test-util-obj-y = libqemuutil.a libqemustub.a
+test-qom-obj-y = $(qom-obj-y) $(test-util-obj-y)
+test-qapi-obj-y = tests/test-qapi-visit.o tests/test-qapi-types.o \
+	tests/test-qapi-event.o tests/test-qmp-introspect.o \
+	$(test-qom-obj-y)
+test-crypto-obj-y = $(crypto-obj-y) $(test-qom-obj-y)
+test-block-obj-y = $(block-obj-y) $(test-crypto-obj-y)
+
+tests/check-qint$(EXESUF): tests/check-qint.o $(test-util-obj-y)
+tests/check-qstring$(EXESUF): tests/check-qstring.o $(test-util-obj-y)
+tests/check-qdict$(EXESUF): tests/check-qdict.o $(test-util-obj-y)
+tests/check-qlist$(EXESUF): tests/check-qlist.o $(test-util-obj-y)
+tests/check-qfloat$(EXESUF): tests/check-qfloat.o $(test-util-obj-y)
+tests/check-qjson$(EXESUF): tests/check-qjson.o $(test-util-obj-y)
+tests/check-qom-interface$(EXESUF): tests/check-qom-interface.o $(test-qom-obj-y)
+tests/check-qom-proplist$(EXESUF): tests/check-qom-proplist.o $(test-qom-obj-y)
+tests/test-coroutine$(EXESUF): tests/test-coroutine.o $(test-block-obj-y)
+tests/test-aio$(EXESUF): tests/test-aio.o $(test-block-obj-y)
+tests/test-rfifolock$(EXESUF): tests/test-rfifolock.o $(test-util-obj-y)
+tests/test-throttle$(EXESUF): tests/test-throttle.o $(test-block-obj-y)
+tests/test-thread-pool$(EXESUF): tests/test-thread-pool.o $(test-block-obj-y)
+tests/test-iov$(EXESUF): tests/test-iov.o $(test-util-obj-y)
+tests/test-hbitmap$(EXESUF): tests/test-hbitmap.o $(test-util-obj-y)
+tests/test-x86-cpuid$(EXESUF): tests/test-x86-cpuid.o
+tests/test-xbzrle$(EXESUF): tests/test-xbzrle.o migration/xbzrle.o page_cache.o $(test-util-obj-y)
+tests/test-cutils$(EXESUF): tests/test-cutils.o util/cutils.o
+tests/test-int128$(EXESUF): tests/test-int128.o
+tests/rcutorture$(EXESUF): tests/rcutorture.o $(test-util-obj-y)
+tests/test-rcu-list$(EXESUF): tests/test-rcu-list.o $(test-util-obj-y)
+
+tests/test-qdev-global-props$(EXESUF): tests/test-qdev-global-props.o \
+	hw/core/qdev.o hw/core/qdev-properties.o hw/core/hotplug.o\
+	hw/core/irq.o \
+	hw/core/fw-path-provider.o \
+	$(test-qapi-obj-y)
+tests/test-vmstate$(EXESUF): tests/test-vmstate.o \
+	migration/vmstate.o migration/qemu-file.o migration/qemu-file-buf.o \
+        migration/qemu-file-unix.o qjson.o \
+	$(test-qom-obj-y)
+
+tests/test-qapi-types.c tests/test-qapi-types.h :\
+$(SRC_PATH)/tests/qapi-schema/qapi-schema-test.json $(SRC_PATH)/scripts/qapi-types.py $(qapi-py)
+	$(call quiet-command,$(PYTHON) $(SRC_PATH)/scripts/qapi-types.py \
+		$(gen-out-type) -o tests -p "test-" $<, \
+		"  GEN   $@")
+tests/test-qapi-visit.c tests/test-qapi-visit.h :\
+$(SRC_PATH)/tests/qapi-schema/qapi-schema-test.json $(SRC_PATH)/scripts/qapi-visit.py $(qapi-py)
+	$(call quiet-command,$(PYTHON) $(SRC_PATH)/scripts/qapi-visit.py \
+		$(gen-out-type) -o tests -p "test-" $<, \
+		"  GEN   $@")
+tests/test-qmp-commands.h tests/test-qmp-marshal.c :\
+$(SRC_PATH)/tests/qapi-schema/qapi-schema-test.json $(SRC_PATH)/scripts/qapi-commands.py $(qapi-py)
+	$(call quiet-command,$(PYTHON) $(SRC_PATH)/scripts/qapi-commands.py \
+		$(gen-out-type) -o tests -p "test-" $<, \
+		"  GEN   $@")
+tests/test-qapi-event.c tests/test-qapi-event.h :\
+$(SRC_PATH)/tests/qapi-schema/qapi-schema-test.json $(SRC_PATH)/scripts/qapi-event.py $(qapi-py)
+	$(call quiet-command,$(PYTHON) $(SRC_PATH)/scripts/qapi-event.py \
+		$(gen-out-type) -o tests -p "test-" $<, \
+		"  GEN   $@")
+tests/test-qmp-introspect.c tests/test-qmp-introspect.h :\
+$(SRC_PATH)/tests/qapi-schema/qapi-schema-test.json $(SRC_PATH)/scripts/qapi-introspect.py $(qapi-py)
+	$(call quiet-command,$(PYTHON) $(SRC_PATH)/scripts/qapi-introspect.py \
+		$(gen-out-type) -o tests -p "test-" $<, \
+		"  GEN   $@")
+
+tests/test-string-output-visitor$(EXESUF): tests/test-string-output-visitor.o $(test-qapi-obj-y)
+tests/test-string-input-visitor$(EXESUF): tests/test-string-input-visitor.o $(test-qapi-obj-y)
+tests/test-qmp-event$(EXESUF): tests/test-qmp-event.o $(test-qapi-obj-y)
+tests/test-qmp-output-visitor$(EXESUF): tests/test-qmp-output-visitor.o $(test-qapi-obj-y)
+tests/test-qmp-input-visitor$(EXESUF): tests/test-qmp-input-visitor.o $(test-qapi-obj-y)
+tests/test-qmp-input-strict$(EXESUF): tests/test-qmp-input-strict.o $(test-qapi-obj-y)
+tests/test-qmp-commands$(EXESUF): tests/test-qmp-commands.o tests/test-qmp-marshal.o $(test-qapi-obj-y)
+tests/test-visitor-serialization$(EXESUF): tests/test-visitor-serialization.o $(test-qapi-obj-y)
+tests/test-opts-visitor$(EXESUF): tests/test-opts-visitor.o $(test-qapi-obj-y)
+
+tests/test-mul64$(EXESUF): tests/test-mul64.o $(test-util-obj-y)
+tests/test-bitops$(EXESUF): tests/test-bitops.o $(test-util-obj-y)
+tests/test-crypto-hash$(EXESUF): tests/test-crypto-hash.o $(test-crypto-obj-y)
+tests/test-crypto-cipher$(EXESUF): tests/test-crypto-cipher.o $(test-crypto-obj-y)
+tests/test-crypto-tlscredsx509$(EXESUF): tests/test-crypto-tlscredsx509.o \
+	tests/crypto-tls-x509-helpers.o tests/pkix_asn1_tab.o $(test-crypto-obj-y)
+tests/test-crypto-tlssession$(EXESUF): tests/test-crypto-tlssession.o \
+	tests/crypto-tls-x509-helpers.o tests/pkix_asn1_tab.o $(test-crypto-obj-y)
+
+libqos-obj-y = tests/libqos/pci.o tests/libqos/fw_cfg.o tests/libqos/malloc.o
+libqos-obj-y += tests/libqos/i2c.o tests/libqos/libqos.o
+libqos-pc-obj-y = $(libqos-obj-y) tests/libqos/pci-pc.o
+libqos-pc-obj-y += tests/libqos/malloc-pc.o tests/libqos/libqos-pc.o
+libqos-pc-obj-y += tests/libqos/ahci.o
+libqos-omap-obj-y = $(libqos-obj-y) tests/libqos/i2c-omap.o
+libqos-imx-obj-y = $(libqos-obj-y) tests/libqos/i2c-imx.o
+libqos-usb-obj-y = $(libqos-pc-obj-y) tests/libqos/usb.o
+libqos-virtio-obj-y = $(libqos-pc-obj-y) tests/libqos/virtio.o tests/libqos/virtio-pci.o tests/libqos/virtio-mmio.o tests/libqos/malloc-generic.o
+
+tests/rtc-test$(EXESUF): tests/rtc-test.o
+tests/m48t59-test$(EXESUF): tests/m48t59-test.o
+tests/endianness-test$(EXESUF): tests/endianness-test.o
+tests/spapr-phb-test$(EXESUF): tests/spapr-phb-test.o $(libqos-obj-y)
+tests/fdc-test$(EXESUF): tests/fdc-test.o
+tests/ide-test$(EXESUF): tests/ide-test.o $(libqos-pc-obj-y)
+tests/ahci-test$(EXESUF): tests/ahci-test.o $(libqos-pc-obj-y)
+tests/hd-geo-test$(EXESUF): tests/hd-geo-test.o
+tests/boot-order-test$(EXESUF): tests/boot-order-test.o $(libqos-obj-y)
+tests/bios-tables-test$(EXESUF): tests/bios-tables-test.o $(libqos-obj-y)
+tests/tmp105-test$(EXESUF): tests/tmp105-test.o $(libqos-omap-obj-y)
+tests/ds1338-test$(EXESUF): tests/ds1338-test.o $(libqos-imx-obj-y)
+tests/i440fx-test$(EXESUF): tests/i440fx-test.o $(libqos-pc-obj-y)
+tests/q35-test$(EXESUF): tests/q35-test.o $(libqos-pc-obj-y)
+tests/fw_cfg-test$(EXESUF): tests/fw_cfg-test.o $(libqos-pc-obj-y)
+tests/e1000-test$(EXESUF): tests/e1000-test.o
+tests/rtl8139-test$(EXESUF): tests/rtl8139-test.o $(libqos-pc-obj-y)
+tests/pcnet-test$(EXESUF): tests/pcnet-test.o
+tests/eepro100-test$(EXESUF): tests/eepro100-test.o
+tests/vmxnet3-test$(EXESUF): tests/vmxnet3-test.o
+tests/ne2000-test$(EXESUF): tests/ne2000-test.o
+tests/wdt_ib700-test$(EXESUF): tests/wdt_ib700-test.o
+tests/tco-test$(EXESUF): tests/tco-test.o $(libqos-pc-obj-y)
+tests/virtio-balloon-test$(EXESUF): tests/virtio-balloon-test.o
+tests/virtio-blk-test$(EXESUF): tests/virtio-blk-test.o $(libqos-virtio-obj-y)
+tests/virtio-net-test$(EXESUF): tests/virtio-net-test.o $(libqos-pc-obj-y) $(libqos-virtio-obj-y)
+tests/virtio-rng-test$(EXESUF): tests/virtio-rng-test.o $(libqos-pc-obj-y)
+tests/virtio-scsi-test$(EXESUF): tests/virtio-scsi-test.o $(libqos-virtio-obj-y)
+tests/virtio-9p-test$(EXESUF): tests/virtio-9p-test.o
+tests/virtio-serial-test$(EXESUF): tests/virtio-serial-test.o
+tests/virtio-console-test$(EXESUF): tests/virtio-console-test.o
+tests/tpci200-test$(EXESUF): tests/tpci200-test.o
+tests/display-vga-test$(EXESUF): tests/display-vga-test.o
+tests/ipoctal232-test$(EXESUF): tests/ipoctal232-test.o
+tests/qom-test$(EXESUF): tests/qom-test.o
+tests/drive_del-test$(EXESUF): tests/drive_del-test.o $(libqos-pc-obj-y)
+tests/qdev-monitor-test$(EXESUF): tests/qdev-monitor-test.o $(libqos-pc-obj-y)
+tests/nvme-test$(EXESUF): tests/nvme-test.o
+tests/pvpanic-test$(EXESUF): tests/pvpanic-test.o
+tests/i82801b11-test$(EXESUF): tests/i82801b11-test.o
+tests/ac97-test$(EXESUF): tests/ac97-test.o
+tests/es1370-test$(EXESUF): tests/es1370-test.o
+tests/intel-hda-test$(EXESUF): tests/intel-hda-test.o
+tests/ioh3420-test$(EXESUF): tests/ioh3420-test.o
+tests/usb-hcd-ohci-test$(EXESUF): tests/usb-hcd-ohci-test.o $(libqos-usb-obj-y)
+tests/usb-hcd-uhci-test$(EXESUF): tests/usb-hcd-uhci-test.o $(libqos-usb-obj-y)
+tests/usb-hcd-ehci-test$(EXESUF): tests/usb-hcd-ehci-test.o $(libqos-usb-obj-y)
+tests/usb-hcd-xhci-test$(EXESUF): tests/usb-hcd-xhci-test.o $(libqos-usb-obj-y)
+tests/pc-cpu-test$(EXESUF): tests/pc-cpu-test.o
+tests/vhost-user-test$(EXESUF): tests/vhost-user-test.o qemu-char.o qemu-timer.o $(qtest-obj-y)
+tests/qemu-iotests/socket_scm_helper$(EXESUF): tests/qemu-iotests/socket_scm_helper.o
+tests/test-qemu-opts$(EXESUF): tests/test-qemu-opts.o $(test-util-obj-y)
+tests/test-write-threshold$(EXESUF): tests/test-write-threshold.o $(test-block-obj-y)
+
+ifeq ($(CONFIG_POSIX),y)
+LIBS += -lutil
+endif
+LIBS += $(TEST_LIBS)
+CFLAGS += $(TEST_CFLAGS)
+
+# QTest rules
+
+TARGETS=$(patsubst %-softmmu,%, $(filter %-softmmu,$(TARGET_DIRS)))
+ifeq ($(CONFIG_POSIX),y)
+QTEST_TARGETS=$(foreach TARGET,$(TARGETS), $(if $(check-qtest-$(TARGET)-y), $(TARGET),))
+check-qtest-y=$(foreach TARGET,$(TARGETS), $(check-qtest-$(TARGET)-y))
+endif
+
+qtest-obj-y = tests/libqtest.o $(test-util-obj-y)
+$(check-qtest-y): $(qtest-obj-y)
+
+.PHONY: check-help
+check-help:
+	@echo "Regression testing targets:"
+	@echo
+	@echo " make check                Run all tests"
+	@echo " make check-qtest-TARGET   Run qtest tests for given target"
+	@echo " make check-qtest          Run qtest tests"
+	@echo " make check-unit           Run qobject tests"
+	@echo " make check-qapi-schema    Run QAPI schema tests"
+	@echo " make check-block          Run block tests"
+	@echo " make check-report.html    Generates an HTML test report"
+	@echo " make check-clean          Clean the tests"
+	@echo
+	@echo "Please note that HTML reports do not regenerate if the unit tests"
+	@echo "has not changed."
+	@echo
+	@echo "The variable SPEED can be set to control the gtester speed setting."
+	@echo "Default options are -k and (for make V=1) --verbose; they can be"
+	@echo "changed with variable GTESTER_OPTIONS."
+
+SPEED = quick
+GTESTER_OPTIONS = -k $(if $(V),--verbose,-q)
+GCOV_OPTIONS = -n $(if $(V),-f,)
+
+# gtester tests, possibly with verbose output
+
+.PHONY: $(patsubst %, check-qtest-%, $(QTEST_TARGETS))
+$(patsubst %, check-qtest-%, $(QTEST_TARGETS)): check-qtest-%: $(check-qtest-y)
+	$(if $(CONFIG_GCOV),@rm -f *.gcda */*.gcda */*/*.gcda */*/*/*.gcda,)
+	$(call quiet-command,QTEST_QEMU_BINARY=$*-softmmu/qemu-system-$* \
+		QTEST_QEMU_IMG=qemu-img$(EXESUF) \
+		MALLOC_PERTURB_=$${MALLOC_PERTURB_:-$$((RANDOM % 255 + 1))} \
+		gtester $(GTESTER_OPTIONS) -m=$(SPEED) $(check-qtest-$*-y),"GTESTER $@")
+	$(if $(CONFIG_GCOV),@for f in $(gcov-files-$*-y); do \
+	  echo Gcov report for $$f:;\
+	  $(GCOV) $(GCOV_OPTIONS) $$f -o `dirname $$f`; \
+	done,)
+
+.PHONY: $(patsubst %, check-%, $(check-unit-y))
+$(patsubst %, check-%, $(check-unit-y)): check-%: %
+	$(if $(CONFIG_GCOV),@rm -f *.gcda */*.gcda */*/*.gcda */*/*/*.gcda,)
+	$(call quiet-command, \
+		MALLOC_PERTURB_=$${MALLOC_PERTURB_:-$$((RANDOM % 255 + 1))} \
+		gtester $(GTESTER_OPTIONS) -m=$(SPEED) $*,"GTESTER $*")
+	$(if $(CONFIG_GCOV),@for f in $(gcov-files-$(subst tests/,,$*)-y); do \
+	  echo Gcov report for $$f:;\
+	  $(GCOV) $(GCOV_OPTIONS) $$f -o `dirname $$f`; \
+	done,)
+
+# gtester tests with XML output
+
+$(patsubst %, check-report-qtest-%.xml, $(QTEST_TARGETS)): check-report-qtest-%.xml: $(check-qtest-y)
+	$(call quiet-command,QTEST_QEMU_BINARY=$*-softmmu/qemu-system-$* \
+		QTEST_QEMU_IMG=qemu-img$(EXESUF) \
+	  gtester -q $(GTESTER_OPTIONS) -o $@ -m=$(SPEED) $(check-qtest-$*-y),"GTESTER $@")
+
+check-report-unit.xml: $(check-unit-y)
+	$(call quiet-command,gtester -q $(GTESTER_OPTIONS) -o $@ -m=$(SPEED) $^, "GTESTER $@")
+
+# Reports and overall runs
+
+check-report.xml: $(patsubst %,check-report-qtest-%.xml, $(QTEST_TARGETS)) check-report-unit.xml
+	$(call quiet-command,$(SRC_PATH)/scripts/gtester-cat $^ > $@, "  GEN   $@")
+
+check-report.html: check-report.xml
+	$(call quiet-command,gtester-report $< > $@, "  GEN   $@")
+
+
+# Other tests
+
+QEMU_IOTESTS_HELPERS-$(CONFIG_LINUX) = tests/qemu-iotests/socket_scm_helper$(EXESUF)
+
+.PHONY: check-tests/qemu-iotests-quick.sh
+check-tests/qemu-iotests-quick.sh: tests/qemu-iotests-quick.sh qemu-img$(EXESUF) qemu-io$(EXESUF) $(QEMU_IOTESTS_HELPERS-y)
+	$<
+
+.PHONY: check-tests/test-qapi.py
+check-tests/test-qapi.py: tests/test-qapi.py
+
+.PHONY: $(patsubst %, check-%, $(check-qapi-schema-y))
+$(patsubst %, check-%, $(check-qapi-schema-y)): check-%.json: $(SRC_PATH)/%.json
+	$(call quiet-command, PYTHONPATH=$(SRC_PATH)/scripts \
+		$(PYTHON) $(SRC_PATH)/tests/qapi-schema/test-qapi.py \
+		$^ >$*.test.out 2>$*.test.err; \
+		echo $$? >$*.test.exit, \
+		"  TEST  $*.out")
+	@diff -q $(SRC_PATH)/$*.out $*.test.out
+	@# Sanitize error messages (make them independent of build directory)
+	@perl -p -e 's|\Q$(SRC_PATH)\E/||g' $*.test.err | diff -q $(SRC_PATH)/$*.err -
+	@diff -q $(SRC_PATH)/$*.exit $*.test.exit
+
+# Consolidated targets
+
+.PHONY: check-qapi-schema check-qtest check-unit check check-clean
+check-qapi-schema: $(patsubst %,check-%, $(check-qapi-schema-y))
+check-qtest: $(patsubst %,check-qtest-%, $(QTEST_TARGETS))
+check-unit: $(patsubst %,check-%, $(check-unit-y))
+check-block: $(patsubst %,check-%, $(check-block-y))
+check: check-qapi-schema check-unit check-qtest
+check-clean:
+	$(MAKE) -C tests/tcg clean
+	rm -rf $(check-unit-y) tests/*.o $(QEMU_IOTESTS_HELPERS-y)
+	rm -rf $(sort $(foreach target,$(SYSEMU_TARGET_LIST), $(check-qtest-$(target)-y)))
+
+clean: check-clean
+
+# Build the help program automatically
+
+all: $(QEMU_IOTESTS_HELPERS-y)
+
+-include $(wildcard tests/*.d)
+-include $(wildcard tests/libqos/*.d)
diff --git a/tests/bios-tables-test.c.orig b/tests/bios-tables-test.c.orig
new file mode 100644
index 0000000000..d455b2abfc
--- /dev/null
+++ b/tests/bios-tables-test.c.orig
@@ -0,0 +1,925 @@ 
+/*
+ * Boot order test cases.
+ *
+ * Copyright (c) 2013 Red Hat Inc.
+ *
+ * Authors:
+ *  Michael S. Tsirkin <mst@redhat.com>,
+ *
+ * This work is licensed under the terms of the GNU GPL, version 2 or later.
+ * See the COPYING file in the top-level directory.
+ */
+
+#include "qemu/osdep.h"
+#include <glib/gstdio.h>
+#include "qemu-common.h"
+#include "hw/firmware/smbios.h"
+#include "qemu/bitmap.h"
+#include "acpi-utils.h"
+#include "boot-sector.h"
+
+#define MACHINE_PC "pc"
+#define MACHINE_Q35 "q35"
+
+#define ACPI_REBUILD_EXPECTED_AML "TEST_ACPI_REBUILD_AML"
+
+typedef struct {
+    const char *machine;
+    const char *variant;
+    uint32_t rsdp_addr;
+    uint8_t rsdp_table[36 /* ACPI 2.0+ RSDP size */];
+    AcpiRsdtDescriptorRev1 rsdt_table;
+    uint32_t dsdt_addr;
+    uint32_t facs_addr;
+    AcpiFacsDescriptorRev1 facs_table;
+    uint32_t *rsdt_tables_addr;
+    int rsdt_tables_nr;
+    GArray *tables;
+    uint32_t smbios_ep_addr;
+    struct smbios_21_entry_point smbios_ep_table;
+    uint8_t *required_struct_types;
+    int required_struct_types_len;
+    QTestState *qts;
+} test_data;
+
+static char disk[] = "tests/acpi-test-disk-XXXXXX";
+static const char *data_dir = "tests/data/acpi";
+#ifdef CONFIG_IASL
+static const char *iasl = stringify(CONFIG_IASL);
+#else
+static const char *iasl;
+#endif
+
+static void free_test_data(test_data *data)
+{
+    AcpiSdtTable *temp;
+    int i;
+
+    g_free(data->rsdt_tables_addr);
+
+    for (i = 0; i < data->tables->len; ++i) {
+        temp = &g_array_index(data->tables, AcpiSdtTable, i);
+        g_free(temp->aml);
+        if (temp->aml_file &&
+            !temp->tmp_files_retain &&
+            g_strstr_len(temp->aml_file, -1, "aml-")) {
+            unlink(temp->aml_file);
+        }
+        g_free(temp->aml_file);
+        g_free(temp->asl);
+        if (temp->asl_file &&
+            !temp->tmp_files_retain) {
+            unlink(temp->asl_file);
+        }
+        g_free(temp->asl_file);
+    }
+
+    g_array_free(data->tables, true);
+}
+
+static void test_acpi_rsdp_address(test_data *data)
+{
+    uint32_t off = acpi_find_rsdp_address(data->qts);
+    g_assert_cmphex(off, <, 0x100000);
+    data->rsdp_addr = off;
+}
+
+static void test_acpi_rsdp_table(test_data *data)
+{
+    uint8_t *rsdp_table = data->rsdp_table, revision;
+    uint32_t addr = data->rsdp_addr;
+
+    acpi_parse_rsdp_table(data->qts, addr, rsdp_table);
+    revision = rsdp_table[15 /* Revision offset */];
+
+    switch (revision) {
+    case 0: /* ACPI 1.0 RSDP */
+        /* With rev 1, checksum is only for the first 20 bytes */
+        g_assert(!acpi_calc_checksum(rsdp_table,  20));
+        break;
+    case 2: /* ACPI 2.0+ RSDP */
+        /* With revision 2, we have 2 checksums */
+        g_assert(!acpi_calc_checksum(rsdp_table, 20));
+        g_assert(!acpi_calc_checksum(rsdp_table, 36));
+        break;
+    default:
+        g_assert_not_reached();
+    }
+}
+
+static void test_acpi_rsdt_table(test_data *data)
+{
+    AcpiRsdtDescriptorRev1 *rsdt_table = &data->rsdt_table;
+    uint32_t addr = acpi_get_rsdt_address(data->rsdp_table);
+    uint32_t *tables;
+    int tables_nr;
+    uint8_t checksum;
+    uint32_t rsdt_table_length;
+
+    /* read the header */
+    ACPI_READ_TABLE_HEADER(data->qts, rsdt_table, addr);
+    ACPI_ASSERT_CMP(rsdt_table->signature, "RSDT");
+
+    rsdt_table_length = le32_to_cpu(rsdt_table->length);
+
+    /* compute the table entries in rsdt */
+    tables_nr = (rsdt_table_length - sizeof(AcpiRsdtDescriptorRev1)) /
+                sizeof(uint32_t);
+    g_assert(tables_nr > 0);
+
+    /* get the addresses of the tables pointed by rsdt */
+    tables = g_new0(uint32_t, tables_nr);
+    ACPI_READ_ARRAY_PTR(data->qts, tables, tables_nr, addr);
+
+    checksum = acpi_calc_checksum((uint8_t *)rsdt_table, rsdt_table_length) +
+               acpi_calc_checksum((uint8_t *)tables,
+                                  tables_nr * sizeof(uint32_t));
+    g_assert(!checksum);
+
+   /* SSDT tables after FADT */
+    data->rsdt_tables_addr = tables;
+    data->rsdt_tables_nr = tables_nr;
+}
+
+static void fadt_fetch_facs_and_dsdt_ptrs(test_data *data)
+{
+    uint32_t addr;
+    AcpiTableHeader hdr;
+
+    /* FADT table comes first */
+    addr = le32_to_cpu(data->rsdt_tables_addr[0]);
+    ACPI_READ_TABLE_HEADER(data->qts, &hdr, addr);
+    ACPI_ASSERT_CMP(hdr.signature, "FACP");
+
+    ACPI_READ_FIELD(data->qts, data->facs_addr, addr);
+    ACPI_READ_FIELD(data->qts, data->dsdt_addr, addr);
+}
+
+static void sanitize_fadt_ptrs(test_data *data)
+{
+    /* fixup pointers in FADT */
+    int i;
+
+    for (i = 0; i < data->tables->len; i++) {
+        AcpiSdtTable *sdt = &g_array_index(data->tables, AcpiSdtTable, i);
+
+        if (memcmp(&sdt->header.signature, "FACP", 4)) {
+            continue;
+        }
+
+        /* check original FADT checksum before sanitizing table */
+        g_assert(!(uint8_t)(
+            acpi_calc_checksum((uint8_t *)sdt, sizeof(AcpiTableHeader)) +
+            acpi_calc_checksum((uint8_t *)sdt->aml, sdt->aml_len)
+        ));
+
+        /* sdt->aml field offset := spec offset - header size */
+        memset(sdt->aml + 0, 0, 4); /* sanitize FIRMWARE_CTRL(36) ptr */
+        memset(sdt->aml + 4, 0, 4); /* sanitize DSDT(40) ptr */
+        if (sdt->header.revision >= 3) {
+            memset(sdt->aml + 96, 0, 8); /* sanitize X_FIRMWARE_CTRL(132) ptr */
+            memset(sdt->aml + 104, 0, 8); /* sanitize X_DSDT(140) ptr */
+        }
+
+        /* update checksum */
+        sdt->header.checksum = 0;
+        sdt->header.checksum -=
+            acpi_calc_checksum((uint8_t *)sdt, sizeof(AcpiTableHeader)) +
+            acpi_calc_checksum((uint8_t *)sdt->aml, sdt->aml_len);
+        break;
+    }
+}
+
+static void test_acpi_facs_table(test_data *data)
+{
+    AcpiFacsDescriptorRev1 *facs_table = &data->facs_table;
+    uint32_t addr = le32_to_cpu(data->facs_addr);
+
+    ACPI_READ_FIELD(data->qts, facs_table->signature, addr);
+    ACPI_READ_FIELD(data->qts, facs_table->length, addr);
+    ACPI_READ_FIELD(data->qts, facs_table->hardware_signature, addr);
+    ACPI_READ_FIELD(data->qts, facs_table->firmware_waking_vector, addr);
+    ACPI_READ_FIELD(data->qts, facs_table->global_lock, addr);
+    ACPI_READ_FIELD(data->qts, facs_table->flags, addr);
+    ACPI_READ_ARRAY(data->qts, facs_table->resverved3, addr);
+
+    ACPI_ASSERT_CMP(facs_table->signature, "FACS");
+}
+
+/** fetch_table
+ *   load ACPI table at @addr into table descriptor @sdt_table
+ *   and check that header checksum matches actual one.
+ */
+static void fetch_table(QTestState *qts, AcpiSdtTable *sdt_table, uint32_t addr)
+{
+    uint8_t checksum;
+
+    memset(sdt_table, 0, sizeof(*sdt_table));
+    ACPI_READ_TABLE_HEADER(qts, &sdt_table->header, addr);
+
+    sdt_table->aml_len = le32_to_cpu(sdt_table->header.length)
+                         - sizeof(AcpiTableHeader);
+    sdt_table->aml = g_malloc0(sdt_table->aml_len);
+    ACPI_READ_ARRAY_PTR(qts, sdt_table->aml, sdt_table->aml_len, addr);
+
+    checksum = acpi_calc_checksum((uint8_t *)sdt_table,
+                                  sizeof(AcpiTableHeader)) +
+               acpi_calc_checksum((uint8_t *)sdt_table->aml,
+                                  sdt_table->aml_len);
+    g_assert(!checksum);
+}
+
+static void test_acpi_dsdt_table(test_data *data)
+{
+    AcpiSdtTable dsdt_table;
+    uint32_t addr = le32_to_cpu(data->dsdt_addr);
+
+    fetch_table(data->qts, &dsdt_table, addr);
+    ACPI_ASSERT_CMP(dsdt_table.header.signature, "DSDT");
+
+    /* Since DSDT isn't in RSDT, add DSDT to ASL test tables list manually */
+    g_array_append_val(data->tables, dsdt_table);
+}
+
+/* Load all tables and add to test list directly RSDT referenced tables */
+static void fetch_rsdt_referenced_tables(test_data *data)
+{
+    int tables_nr = data->rsdt_tables_nr;
+    int i;
+
+    for (i = 0; i < tables_nr; i++) {
+        AcpiSdtTable ssdt_table;
+        uint32_t addr;
+
+        addr = le32_to_cpu(data->rsdt_tables_addr[i]);
+        fetch_table(data->qts, &ssdt_table, addr);
+
+        /* Add table to ASL test tables list */
+        g_array_append_val(data->tables, ssdt_table);
+    }
+}
+
+static void dump_aml_files(test_data *data, bool rebuild)
+{
+    AcpiSdtTable *sdt;
+    GError *error = NULL;
+    gchar *aml_file = NULL;
+    gint fd;
+    ssize_t ret;
+    int i;
+
+    for (i = 0; i < data->tables->len; ++i) {
+        const char *ext = data->variant ? data->variant : "";
+        sdt = &g_array_index(data->tables, AcpiSdtTable, i);
+        g_assert(sdt->aml);
+
+        if (rebuild) {
+            aml_file = g_strdup_printf("%s/%s/%.4s%s", data_dir, data->machine,
+                                       (gchar *)&sdt->header.signature, ext);
+            fd = g_open(aml_file, O_WRONLY|O_TRUNC|O_CREAT,
+                        S_IRUSR|S_IWUSR|S_IRGRP|S_IWGRP|S_IROTH);
+        } else {
+            fd = g_file_open_tmp("aml-XXXXXX", &sdt->aml_file, &error);
+            g_assert_no_error(error);
+        }
+        g_assert(fd >= 0);
+
+        ret = qemu_write_full(fd, sdt, sizeof(AcpiTableHeader));
+        g_assert(ret == sizeof(AcpiTableHeader));
+        ret = qemu_write_full(fd, sdt->aml, sdt->aml_len);
+        g_assert(ret == sdt->aml_len);
+
+        close(fd);
+
+        g_free(aml_file);
+    }
+}
+
+static bool compare_signature(AcpiSdtTable *sdt, const char *signature)
+{
+   return !memcmp(&sdt->header.signature, signature, 4);
+}
+
+static bool load_asl(GArray *sdts, AcpiSdtTable *sdt)
+{
+    AcpiSdtTable *temp;
+    GError *error = NULL;
+    GString *command_line = g_string_new(iasl);
+    gint fd;
+    gchar *out, *out_err;
+    gboolean ret;
+    int i;
+
+    fd = g_file_open_tmp("asl-XXXXXX.dsl", &sdt->asl_file, &error);
+    g_assert_no_error(error);
+    close(fd);
+
+    /* build command line */
+    g_string_append_printf(command_line, " -p %s ", sdt->asl_file);
+    if (compare_signature(sdt, "DSDT") ||
+        compare_signature(sdt, "SSDT")) {
+        for (i = 0; i < sdts->len; ++i) {
+            temp = &g_array_index(sdts, AcpiSdtTable, i);
+            if (compare_signature(temp, "DSDT") ||
+                compare_signature(temp, "SSDT")) {
+                g_string_append_printf(command_line, "-e %s ", temp->aml_file);
+            }
+        }
+    }
+    g_string_append_printf(command_line, "-d %s", sdt->aml_file);
+
+    /* pass 'out' and 'out_err' in order to be redirected */
+    ret = g_spawn_command_line_sync(command_line->str, &out, &out_err, NULL, &error);
+    g_assert_no_error(error);
+    if (ret) {
+        ret = g_file_get_contents(sdt->asl_file, &sdt->asl,
+                                  &sdt->asl_len, &error);
+        g_assert(ret);
+        g_assert_no_error(error);
+        ret = (sdt->asl_len > 0);
+    }
+
+    g_free(out);
+    g_free(out_err);
+    g_string_free(command_line, true);
+
+    return !ret;
+}
+
+#define COMMENT_END "*/"
+#define DEF_BLOCK "DefinitionBlock ("
+#define BLOCK_NAME_END ","
+
+static GString *normalize_asl(gchar *asl_code)
+{
+    GString *asl = g_string_new(asl_code);
+    gchar *comment, *block_name;
+
+    /* strip comments (different generation days) */
+    comment = g_strstr_len(asl->str, asl->len, COMMENT_END);
+    if (comment) {
+        comment += strlen(COMMENT_END);
+        while (*comment == '\n') {
+            comment++;
+        }
+        asl = g_string_erase(asl, 0, comment - asl->str);
+    }
+
+    /* strip def block name (it has file path in it) */
+    if (g_str_has_prefix(asl->str, DEF_BLOCK)) {
+        block_name = g_strstr_len(asl->str, asl->len, BLOCK_NAME_END);
+        g_assert(block_name);
+        asl = g_string_erase(asl, 0,
+                             block_name + sizeof(BLOCK_NAME_END) - asl->str);
+    }
+
+    return asl;
+}
+
+static GArray *load_expected_aml(test_data *data)
+{
+    int i;
+    AcpiSdtTable *sdt;
+    GError *error = NULL;
+    gboolean ret;
+
+    GArray *exp_tables = g_array_new(false, true, sizeof(AcpiSdtTable));
+    if (getenv("V")) {
+        fputc('\n', stderr);
+    }
+    for (i = 0; i < data->tables->len; ++i) {
+        AcpiSdtTable exp_sdt;
+        gchar *aml_file = NULL;
+        const char *ext = data->variant ? data->variant : "";
+
+        sdt = &g_array_index(data->tables, AcpiSdtTable, i);
+
+        memset(&exp_sdt, 0, sizeof(exp_sdt));
+        exp_sdt.header.signature = sdt->header.signature;
+
+try_again:
+        aml_file = g_strdup_printf("%s/%s/%.4s%s", data_dir, data->machine,
+                                   (gchar *)&sdt->header.signature, ext);
+        if (getenv("V")) {
+            fprintf(stderr, "Looking for expected file '%s'\n", aml_file);
+        }
+        if (g_file_test(aml_file, G_FILE_TEST_EXISTS)) {
+            exp_sdt.aml_file = aml_file;
+        } else if (*ext != '\0') {
+            /* try fallback to generic (extension less) expected file */
+            ext = "";
+            g_free(aml_file);
+            goto try_again;
+        }
+        g_assert(exp_sdt.aml_file);
+        if (getenv("V")) {
+            fprintf(stderr, "Using expected file '%s'\n", aml_file);
+        }
+        ret = g_file_get_contents(aml_file, &exp_sdt.aml,
+                                  &exp_sdt.aml_len, &error);
+        g_assert(ret);
+        g_assert_no_error(error);
+        g_assert(exp_sdt.aml);
+        g_assert(exp_sdt.aml_len);
+
+        g_array_append_val(exp_tables, exp_sdt);
+    }
+
+    return exp_tables;
+}
+
+/* test the list of tables in @data->tables against reference tables */
+static void test_acpi_asl(test_data *data)
+{
+    int i;
+    AcpiSdtTable *sdt, *exp_sdt;
+    test_data exp_data;
+    gboolean exp_err, err;
+
+    memset(&exp_data, 0, sizeof(exp_data));
+    exp_data.tables = load_expected_aml(data);
+    dump_aml_files(data, false);
+    for (i = 0; i < data->tables->len; ++i) {
+        GString *asl, *exp_asl;
+
+        sdt = &g_array_index(data->tables, AcpiSdtTable, i);
+        exp_sdt = &g_array_index(exp_data.tables, AcpiSdtTable, i);
+
+        err = load_asl(data->tables, sdt);
+        asl = normalize_asl(sdt->asl);
+
+        exp_err = load_asl(exp_data.tables, exp_sdt);
+        exp_asl = normalize_asl(exp_sdt->asl);
+
+        /* TODO: check for warnings */
+        g_assert(!err || exp_err);
+
+        if (g_strcmp0(asl->str, exp_asl->str)) {
+            if (exp_err) {
+                fprintf(stderr,
+                        "Warning! iasl couldn't parse the expected aml\n");
+            } else {
+                uint32_t signature = cpu_to_le32(exp_sdt->header.signature);
+                sdt->tmp_files_retain = true;
+                exp_sdt->tmp_files_retain = true;
+                fprintf(stderr,
+                        "acpi-test: Warning! %.4s mismatch. "
+                        "Actual [asl:%s, aml:%s], Expected [asl:%s, aml:%s].\n",
+                        (gchar *)&signature,
+                        sdt->asl_file, sdt->aml_file,
+                        exp_sdt->asl_file, exp_sdt->aml_file);
+                if (getenv("V")) {
+                    const char *diff_cmd = getenv("DIFF");
+                    if (diff_cmd) {
+                        int ret G_GNUC_UNUSED;
+                        char *diff = g_strdup_printf("%s %s %s", diff_cmd,
+                            exp_sdt->asl_file, sdt->asl_file);
+                        ret = system(diff) ;
+                        g_free(diff);
+                    } else {
+                        fprintf(stderr, "acpi-test: Warning. not showing "
+                            "difference since no diff utility is specified. "
+                            "Set 'DIFF' environment variable to a preferred "
+                            "diff utility and run 'make V=1 check' again to "
+                            "see ASL difference.");
+                    }
+                }
+          }
+        }
+        g_string_free(asl, true);
+        g_string_free(exp_asl, true);
+    }
+
+    free_test_data(&exp_data);
+}
+
+static bool smbios_ep_table_ok(test_data *data)
+{
+    struct smbios_21_entry_point *ep_table = &data->smbios_ep_table;
+    uint32_t addr = data->smbios_ep_addr;
+
+    ACPI_READ_ARRAY(data->qts, ep_table->anchor_string, addr);
+    if (memcmp(ep_table->anchor_string, "_SM_", 4)) {
+        return false;
+    }
+    ACPI_READ_FIELD(data->qts, ep_table->checksum, addr);
+    ACPI_READ_FIELD(data->qts, ep_table->length, addr);
+    ACPI_READ_FIELD(data->qts, ep_table->smbios_major_version, addr);
+    ACPI_READ_FIELD(data->qts, ep_table->smbios_minor_version, addr);
+    ACPI_READ_FIELD(data->qts, ep_table->max_structure_size, addr);
+    ACPI_READ_FIELD(data->qts, ep_table->entry_point_revision, addr);
+    ACPI_READ_ARRAY(data->qts, ep_table->formatted_area, addr);
+    ACPI_READ_ARRAY(data->qts, ep_table->intermediate_anchor_string, addr);
+    if (memcmp(ep_table->intermediate_anchor_string, "_DMI_", 5)) {
+        return false;
+    }
+    ACPI_READ_FIELD(data->qts, ep_table->intermediate_checksum, addr);
+    ACPI_READ_FIELD(data->qts, ep_table->structure_table_length, addr);
+    if (ep_table->structure_table_length == 0) {
+        return false;
+    }
+    ACPI_READ_FIELD(data->qts, ep_table->structure_table_address, addr);
+    ACPI_READ_FIELD(data->qts, ep_table->number_of_structures, addr);
+    if (ep_table->number_of_structures == 0) {
+        return false;
+    }
+    ACPI_READ_FIELD(data->qts, ep_table->smbios_bcd_revision, addr);
+    if (acpi_calc_checksum((uint8_t *)ep_table, sizeof *ep_table) ||
+        acpi_calc_checksum((uint8_t *)ep_table + 0x10,
+                           sizeof *ep_table - 0x10)) {
+        return false;
+    }
+    return true;
+}
+
+static void test_smbios_entry_point(test_data *data)
+{
+    uint32_t off;
+
+    /* find smbios entry point structure */
+    for (off = 0xf0000; off < 0x100000; off += 0x10) {
+        uint8_t sig[] = "_SM_";
+        int i;
+
+        for (i = 0; i < sizeof sig - 1; ++i) {
+            sig[i] = qtest_readb(data->qts, off + i);
+        }
+
+        if (!memcmp(sig, "_SM_", sizeof sig)) {
+            /* signature match, but is this a valid entry point? */
+            data->smbios_ep_addr = off;
+            if (smbios_ep_table_ok(data)) {
+                break;
+            }
+        }
+    }
+
+    g_assert_cmphex(off, <, 0x100000);
+}
+
+static inline bool smbios_single_instance(uint8_t type)
+{
+    switch (type) {
+    case 0:
+    case 1:
+    case 2:
+    case 3:
+    case 16:
+    case 32:
+    case 127:
+        return true;
+    default:
+        return false;
+    }
+}
+
+static void test_smbios_structs(test_data *data)
+{
+    DECLARE_BITMAP(struct_bitmap, SMBIOS_MAX_TYPE+1) = { 0 };
+    struct smbios_21_entry_point *ep_table = &data->smbios_ep_table;
+    uint32_t addr = le32_to_cpu(ep_table->structure_table_address);
+    int i, len, max_len = 0;
+    uint8_t type, prv, crt;
+
+    /* walk the smbios tables */
+    for (i = 0; i < le16_to_cpu(ep_table->number_of_structures); i++) {
+
+        /* grab type and formatted area length from struct header */
+        type = qtest_readb(data->qts, addr);
+        g_assert_cmpuint(type, <=, SMBIOS_MAX_TYPE);
+        len = qtest_readb(data->qts, addr + 1);
+
+        /* single-instance structs must not have been encountered before */
+        if (smbios_single_instance(type)) {
+            g_assert(!test_bit(type, struct_bitmap));
+        }
+        set_bit(type, struct_bitmap);
+
+        /* seek to end of unformatted string area of this struct ("\0\0") */
+        prv = crt = 1;
+        while (prv || crt) {
+            prv = crt;
+            crt = qtest_readb(data->qts, addr + len);
+            len++;
+        }
+
+        /* keep track of max. struct size */
+        if (max_len < len) {
+            max_len = len;
+            g_assert_cmpuint(max_len, <=, ep_table->max_structure_size);
+        }
+
+        /* start of next structure */
+        addr += len;
+    }
+
+    /* total table length and max struct size must match entry point values */
+    g_assert_cmpuint(le16_to_cpu(ep_table->structure_table_length), ==,
+                     addr - le32_to_cpu(ep_table->structure_table_address));
+    g_assert_cmpuint(le16_to_cpu(ep_table->max_structure_size), ==, max_len);
+
+    /* required struct types must all be present */
+    for (i = 0; i < data->required_struct_types_len; i++) {
+        g_assert(test_bit(data->required_struct_types[i], struct_bitmap));
+    }
+}
+
+static void test_acpi_one(const char *params, test_data *data)
+{
+    char *args;
+
+    /* Disable kernel irqchip to be able to override apic irq0. */
+    args = g_strdup_printf("-machine %s,accel=%s,kernel-irqchip=off "
+                           "-net none -display none %s "
+                           "-drive id=hd0,if=none,file=%s,format=raw "
+                           "-device ide-hd,drive=hd0 ",
+                           data->machine, "kvm:tcg",
+                           params ? params : "", disk);
+
+    data->qts = qtest_init(args);
+
+    boot_sector_test(data->qts);
+
+    data->tables = g_array_new(false, true, sizeof(AcpiSdtTable));
+    test_acpi_rsdp_address(data);
+    test_acpi_rsdp_table(data);
+    test_acpi_rsdt_table(data);
+    fadt_fetch_facs_and_dsdt_ptrs(data);
+    test_acpi_facs_table(data);
+    test_acpi_dsdt_table(data);
+    fetch_rsdt_referenced_tables(data);
+
+    sanitize_fadt_ptrs(data);
+
+    if (iasl) {
+        if (getenv(ACPI_REBUILD_EXPECTED_AML)) {
+            dump_aml_files(data, true);
+        } else {
+            test_acpi_asl(data);
+        }
+    }
+
+    test_smbios_entry_point(data);
+    test_smbios_structs(data);
+
+    assert(!global_qtest);
+    qtest_quit(data->qts);
+    g_free(args);
+}
+
+static uint8_t base_required_struct_types[] = {
+    0, 1, 3, 4, 16, 17, 19, 32, 127
+};
+
+static void test_acpi_piix4_tcg(void)
+{
+    test_data data;
+
+    /* Supplying -machine accel argument overrides the default (qtest).
+     * This is to make guest actually run.
+     */
+    memset(&data, 0, sizeof(data));
+    data.machine = MACHINE_PC;
+    data.required_struct_types = base_required_struct_types;
+    data.required_struct_types_len = ARRAY_SIZE(base_required_struct_types);
+    test_acpi_one(NULL, &data);
+    free_test_data(&data);
+}
+
+static void test_acpi_piix4_tcg_bridge(void)
+{
+    test_data data;
+
+    memset(&data, 0, sizeof(data));
+    data.machine = MACHINE_PC;
+    data.variant = ".bridge";
+    data.required_struct_types = base_required_struct_types;
+    data.required_struct_types_len = ARRAY_SIZE(base_required_struct_types);
+    test_acpi_one("-device pci-bridge,chassis_nr=1", &data);
+    free_test_data(&data);
+}
+
+static void test_acpi_q35_tcg(void)
+{
+    test_data data;
+
+    memset(&data, 0, sizeof(data));
+    data.machine = MACHINE_Q35;
+    data.required_struct_types = base_required_struct_types;
+    data.required_struct_types_len = ARRAY_SIZE(base_required_struct_types);
+    test_acpi_one(NULL, &data);
+    free_test_data(&data);
+}
+
+static void test_acpi_q35_tcg_bridge(void)
+{
+    test_data data;
+
+    memset(&data, 0, sizeof(data));
+    data.machine = MACHINE_Q35;
+    data.variant = ".bridge";
+    data.required_struct_types = base_required_struct_types;
+    data.required_struct_types_len = ARRAY_SIZE(base_required_struct_types);
+    test_acpi_one("-device pci-bridge,chassis_nr=1",
+                  &data);
+    free_test_data(&data);
+}
+
+static void test_acpi_q35_tcg_mmio64(void)
+{
+    test_data data = {
+        .machine = MACHINE_Q35,
+        .variant = ".mmio64",
+        .required_struct_types = base_required_struct_types,
+        .required_struct_types_len = ARRAY_SIZE(base_required_struct_types)
+    };
+
+    test_acpi_one("-m 128M,slots=1,maxmem=2G "
+                  "-device pci-testdev,membar=2G",
+                  &data);
+    free_test_data(&data);
+}
+
+static void test_acpi_piix4_tcg_cphp(void)
+{
+    test_data data;
+
+    memset(&data, 0, sizeof(data));
+    data.machine = MACHINE_PC;
+    data.variant = ".cphp";
+    test_acpi_one("-smp 2,cores=3,sockets=2,maxcpus=6"
+                  " -numa node -numa node"
+                  " -numa dist,src=0,dst=1,val=21",
+                  &data);
+    free_test_data(&data);
+}
+
+static void test_acpi_q35_tcg_cphp(void)
+{
+    test_data data;
+
+    memset(&data, 0, sizeof(data));
+    data.machine = MACHINE_Q35;
+    data.variant = ".cphp";
+    test_acpi_one(" -smp 2,cores=3,sockets=2,maxcpus=6"
+                  " -numa node -numa node"
+                  " -numa dist,src=0,dst=1,val=21",
+                  &data);
+    free_test_data(&data);
+}
+
+static uint8_t ipmi_required_struct_types[] = {
+    0, 1, 3, 4, 16, 17, 19, 32, 38, 127
+};
+
+static void test_acpi_q35_tcg_ipmi(void)
+{
+    test_data data;
+
+    memset(&data, 0, sizeof(data));
+    data.machine = MACHINE_Q35;
+    data.variant = ".ipmibt";
+    data.required_struct_types = ipmi_required_struct_types;
+    data.required_struct_types_len = ARRAY_SIZE(ipmi_required_struct_types);
+    test_acpi_one("-device ipmi-bmc-sim,id=bmc0"
+                  " -device isa-ipmi-bt,bmc=bmc0",
+                  &data);
+    free_test_data(&data);
+}
+
+static void test_acpi_piix4_tcg_ipmi(void)
+{
+    test_data data;
+
+    /* Supplying -machine accel argument overrides the default (qtest).
+     * This is to make guest actually run.
+     */
+    memset(&data, 0, sizeof(data));
+    data.machine = MACHINE_PC;
+    data.variant = ".ipmikcs";
+    data.required_struct_types = ipmi_required_struct_types;
+    data.required_struct_types_len = ARRAY_SIZE(ipmi_required_struct_types);
+    test_acpi_one("-device ipmi-bmc-sim,id=bmc0"
+                  " -device isa-ipmi-kcs,irq=0,bmc=bmc0",
+                  &data);
+    free_test_data(&data);
+}
+
+static void test_acpi_q35_tcg_memhp(void)
+{
+    test_data data;
+
+    memset(&data, 0, sizeof(data));
+    data.machine = MACHINE_Q35;
+    data.variant = ".memhp";
+    test_acpi_one(" -m 128,slots=3,maxmem=1G"
+                  " -numa node -numa node"
+                  " -numa dist,src=0,dst=1,val=21",
+                  &data);
+    free_test_data(&data);
+}
+
+static void test_acpi_piix4_tcg_memhp(void)
+{
+    test_data data;
+
+    memset(&data, 0, sizeof(data));
+    data.machine = MACHINE_PC;
+    data.variant = ".memhp";
+    test_acpi_one(" -m 128,slots=3,maxmem=1G"
+                  " -numa node -numa node"
+                  " -numa dist,src=0,dst=1,val=21",
+                  &data);
+    free_test_data(&data);
+}
+
+static void test_acpi_q35_tcg_numamem(void)
+{
+    test_data data;
+
+    memset(&data, 0, sizeof(data));
+    data.machine = MACHINE_Q35;
+    data.variant = ".numamem";
+    test_acpi_one(" -numa node -numa node,mem=128", &data);
+    free_test_data(&data);
+}
+
+static void test_acpi_piix4_tcg_numamem(void)
+{
+    test_data data;
+
+    memset(&data, 0, sizeof(data));
+    data.machine = MACHINE_PC;
+    data.variant = ".numamem";
+    test_acpi_one(" -numa node -numa node,mem=128", &data);
+    free_test_data(&data);
+}
+
+static void test_acpi_tcg_dimm_pxm(const char *machine)
+{
+    test_data data;
+
+    memset(&data, 0, sizeof(data));
+    data.machine = machine;
+    data.variant = ".dimmpxm";
+    test_acpi_one(" -machine nvdimm=on,nvdimm-persistence=cpu"
+                  " -smp 4,sockets=4"
+                  " -m 128M,slots=3,maxmem=1G"
+                  " -numa node,mem=32M,nodeid=0"
+                  " -numa node,mem=32M,nodeid=1"
+                  " -numa node,mem=32M,nodeid=2"
+                  " -numa node,mem=32M,nodeid=3"
+                  " -numa cpu,node-id=0,socket-id=0"
+                  " -numa cpu,node-id=1,socket-id=1"
+                  " -numa cpu,node-id=2,socket-id=2"
+                  " -numa cpu,node-id=3,socket-id=3"
+                  " -object memory-backend-ram,id=ram0,size=128M"
+                  " -object memory-backend-ram,id=nvm0,size=128M"
+                  " -device pc-dimm,id=dimm0,memdev=ram0,node=1"
+                  " -device nvdimm,id=dimm1,memdev=nvm0,node=2",
+                  &data);
+    free_test_data(&data);
+}
+
+static void test_acpi_q35_tcg_dimm_pxm(void)
+{
+    test_acpi_tcg_dimm_pxm(MACHINE_Q35);
+}
+
+static void test_acpi_piix4_tcg_dimm_pxm(void)
+{
+    test_acpi_tcg_dimm_pxm(MACHINE_PC);
+}
+
+int main(int argc, char *argv[])
+{
+    const char *arch = qtest_get_arch();
+    int ret;
+
+    ret = boot_sector_init(disk);
+    if(ret)
+        return ret;
+
+    g_test_init(&argc, &argv, NULL);
+
+    if (strcmp(arch, "i386") == 0 || strcmp(arch, "x86_64") == 0) {
+        qtest_add_func("acpi/piix4", test_acpi_piix4_tcg);
+        qtest_add_func("acpi/piix4/bridge", test_acpi_piix4_tcg_bridge);
+        qtest_add_func("acpi/q35", test_acpi_q35_tcg);
+        qtest_add_func("acpi/q35/bridge", test_acpi_q35_tcg_bridge);
+        qtest_add_func("acpi/q35/mmio64", test_acpi_q35_tcg_mmio64);
+        qtest_add_func("acpi/piix4/ipmi", test_acpi_piix4_tcg_ipmi);
+        qtest_add_func("acpi/q35/ipmi", test_acpi_q35_tcg_ipmi);
+        qtest_add_func("acpi/piix4/cpuhp", test_acpi_piix4_tcg_cphp);
+        qtest_add_func("acpi/q35/cpuhp", test_acpi_q35_tcg_cphp);
+        qtest_add_func("acpi/piix4/memhp", test_acpi_piix4_tcg_memhp);
+        qtest_add_func("acpi/q35/memhp", test_acpi_q35_tcg_memhp);
+        qtest_add_func("acpi/piix4/numamem", test_acpi_piix4_tcg_numamem);
+        qtest_add_func("acpi/q35/numamem", test_acpi_q35_tcg_numamem);
+        qtest_add_func("acpi/piix4/dimmpxm", test_acpi_piix4_tcg_dimm_pxm);
+        qtest_add_func("acpi/q35/dimmpxm", test_acpi_q35_tcg_dimm_pxm);
+    }
+    ret = g_test_run();
+    boot_sector_cleanup(disk);
+    return ret;
+}
diff --git a/tests/data/acpi/diff-aml.sh b/tests/data/acpi/diff-aml.sh
new file mode 100644
index 0000000000..e69de29bb2
diff --git a/tests/data/acpi/disassemle-aml.py b/tests/data/acpi/disassemle-aml.py
new file mode 100644
index 0000000000..0398fada63
--- /dev/null
+++ b/tests/data/acpi/disassemle-aml.py
@@ -0,0 +1,21 @@ 
+#!/usr/bin/python
+
+import os, re
+root = "tests/data/acpi"
+for machine in os.listdir(root):
+    machine_root = os.path.join(root, machine)
+    if not os.path.isdir(machine_root):
+        continue
+    files = os.listdir(machine_root):
+    for file in files:
+        if file.endswith(".dsl"):
+            continue
+        extension_prefix = "^[^.]*\."
+        if re.match(extension_prefix, file):
+            variant = re.sub(extension_prefix, "", file)
+
+
+for dirpath, dirnames, filenames in os.walk("tests/data/acpi"):
+    for file in files:
+        if file.endswith(".txt"):
+             print(os.path.join(root, file))
diff --git a/tests/data/acpi/microvm/APIC.dsl b/tests/data/acpi/microvm/APIC.dsl
new file mode 100644
index 0000000000..02f56dce43
--- /dev/null
+++ b/tests/data/acpi/microvm/APIC.dsl
@@ -0,0 +1,56 @@ 
+/*
+ * Intel ACPI Component Architecture
+ * AML/ASL+ Disassembler version 20190509 (64-bit version)
+ * Copyright (c) 2000 - 2019 Intel Corporation
+ * 
+ * Disassembly of tests/data/acpi/microvm/APIC, Mon Sep 28 17:24:38 2020
+ *
+ * ACPI Data Table [APIC]
+ *
+ * Format: [HexOffset DecimalOffset ByteLength]  FieldName : FieldValue
+ */
+
+[000h 0000   4]                    Signature : "APIC"    [Multiple APIC Description Table (MADT)]
+[004h 0004   4]                 Table Length : 00000046
+[008h 0008   1]                     Revision : 01
+[009h 0009   1]                     Checksum : D7
+[00Ah 0010   6]                       Oem ID : "BOCHS "
+[010h 0016   8]                 Oem Table ID : "BXPCAPIC"
+[018h 0024   4]                 Oem Revision : 00000001
+[01Ch 0028   4]              Asl Compiler ID : "BXPC"
+[020h 0032   4]        Asl Compiler Revision : 00000001
+
+[024h 0036   4]           Local Apic Address : FEE00000
+[028h 0040   4]        Flags (decoded below) : 00000001
+                         PC-AT Compatibility : 1
+
+[02Ch 0044   1]                Subtable Type : 00 [Processor Local APIC]
+[02Dh 0045   1]                       Length : 08
+[02Eh 0046   1]                 Processor ID : 00
+[02Fh 0047   1]                Local Apic ID : 00
+[030h 0048   4]        Flags (decoded below) : 00000001
+                           Processor Enabled : 1
+                      Runtime Online Capable : 0
+
+[034h 0052   1]                Subtable Type : 01 [I/O APIC]
+[035h 0053   1]                       Length : 0C
+[036h 0054   1]                  I/O Apic ID : 00
+[037h 0055   1]                     Reserved : 00
+[038h 0056   4]                      Address : FEC00000
+[03Ch 0060   4]                    Interrupt : 00000000
+
+[040h 0064   1]                Subtable Type : 04 [Local APIC NMI]
+[041h 0065   1]                       Length : 06
+[042h 0066   1]                 Processor ID : FF
+[043h 0067   2]        Flags (decoded below) : 0000
+                                    Polarity : 0
+                                Trigger Mode : 0
+[045h 0069   1]         Interrupt Input LINT : 01
+
+Raw Table Data: Length 70 (0x46)
+
+    0000: 41 50 49 43 46 00 00 00 01 D7 42 4F 43 48 53 20  // APICF.....BOCHS 
+    0010: 42 58 50 43 41 50 49 43 01 00 00 00 42 58 50 43  // BXPCAPIC....BXPC
+    0020: 01 00 00 00 00 00 E0 FE 01 00 00 00 00 08 00 00  // ................
+    0030: 01 00 00 00 01 0C 00 00 00 00 C0 FE 00 00 00 00  // ................
+    0040: 04 06 FF 00 00 01                                // ......
diff --git a/tests/data/acpi/microvm/DSDT.dsl b/tests/data/acpi/microvm/DSDT.dsl
new file mode 100644
index 0000000000..fd53f08128
--- /dev/null
+++ b/tests/data/acpi/microvm/DSDT.dsl
@@ -0,0 +1,121 @@ 
+/*
+ * Intel ACPI Component Architecture
+ * AML/ASL+ Disassembler version 20190509 (64-bit version)
+ * Copyright (c) 2000 - 2019 Intel Corporation
+ * 
+ * Disassembling to symbolic ASL+ operators
+ *
+ * Disassembly of tests/data/acpi/microvm/DSDT, Mon Sep 28 17:24:38 2020
+ *
+ * Original Table Header:
+ *     Signature        "DSDT"
+ *     Length           0x0000016D (365)
+ *     Revision         0x02
+ *     Checksum         0x62
+ *     OEM ID           "BOCHS "
+ *     OEM Table ID     "BXPCDSDT"
+ *     OEM Revision     0x00000001 (1)
+ *     Compiler ID      "BXPC"
+ *     Compiler Version 0x00000001 (1)
+ */
+DefinitionBlock ("", "DSDT", 2, "BOCHS ", "BXPCDSDT", 0x00000001)
+{
+    Scope (_SB)
+    {
+        Device (FWCF)
+        {
+            Name (_HID, "QEMU0002")  // _HID: Hardware ID
+            Name (_STA, 0x0B)  // _STA: Status
+            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+            {
+                IO (Decode16,
+                    0x0510,             // Range Minimum
+                    0x0510,             // Range Maximum
+                    0x01,               // Alignment
+                    0x0C,               // Length
+                    )
+            })
+        }
+
+        Device (COM1)
+        {
+            Name (_HID, EisaId ("PNP0501") /* 16550A-compatible COM Serial Port */)  // _HID: Hardware ID
+            Name (_UID, One)  // _UID: Unique ID
+            Name (_STA, 0x0F)  // _STA: Status
+            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+            {
+                IO (Decode16,
+                    0x03F8,             // Range Minimum
+                    0x03F8,             // Range Maximum
+                    0x00,               // Alignment
+                    0x08,               // Length
+                    )
+                IRQNoFlags ()
+                    {4}
+            })
+        }
+
+        Device (GED)
+        {
+            Name (_HID, "ACPI0013" /* Generic Event Device */)  // _HID: Hardware ID
+            Name (_UID, "GED")  // _UID: Unique ID
+            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+            {
+                Interrupt (ResourceConsumer, Edge, ActiveHigh, Exclusive, ,, )
+                {
+                    0x00000009,
+                }
+            })
+            OperationRegion (EREG, SystemMemory, 0xFEA00000, 0x04)
+            Field (EREG, DWordAcc, NoLock, WriteAsZeros)
+            {
+                ESEL,   32
+            }
+
+            Method (_EVT, 1, Serialized)  // _EVT: Event
+            {
+                Local0 = ESEL /* \_SB_.GED_.ESEL */
+                If (((Local0 & 0x02) == 0x02))
+                {
+                    Notify (PWRB, 0x80) // Status Change
+                }
+            }
+        }
+
+        Device (PWRB)
+        {
+            Name (_HID, "PNP0C0C" /* Power Button Device */)  // _HID: Hardware ID
+            Name (_UID, Zero)  // _UID: Unique ID
+        }
+
+        Device (VR07)
+        {
+            Name (_HID, "LNRO0005")  // _HID: Hardware ID
+            Name (_UID, 0x07)  // _UID: Unique ID
+            Name (_CCA, One)  // _CCA: Cache Coherency Attribute
+            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+            {
+                Memory32Fixed (ReadWrite,
+                    0xFEB00E00,         // Address Base
+                    0x00000200,         // Address Length
+                    )
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Exclusive, ,, )
+                {
+                    0x00000017,
+                }
+            })
+        }
+    }
+
+    Scope (\)
+    {
+        Name (_S5, Package (0x04)  // _S5_: S5 System State
+        {
+            0x05, 
+            Zero, 
+            Zero, 
+            Zero
+        })
+    }
+}
+
diff --git a/tests/data/acpi/microvm/FACP.dsl b/tests/data/acpi/microvm/FACP.dsl
new file mode 100644
index 0000000000..4cf780caec
--- /dev/null
+++ b/tests/data/acpi/microvm/FACP.dsl
@@ -0,0 +1,196 @@ 
+/*
+ * Intel ACPI Component Architecture
+ * AML/ASL+ Disassembler version 20190509 (64-bit version)
+ * Copyright (c) 2000 - 2019 Intel Corporation
+ * 
+ * Disassembly of tests/data/acpi/microvm/FACP, Mon Sep 28 17:24:38 2020
+ *
+ * ACPI Data Table [FACP]
+ *
+ * Format: [HexOffset DecimalOffset ByteLength]  FieldName : FieldValue
+ */
+
+[000h 0000   4]                    Signature : "FACP"    [Fixed ACPI Description Table (FADT)]
+[004h 0004   4]                 Table Length : 0000010C
+[008h 0008   1]                     Revision : 05
+[009h 0009   1]                     Checksum : 7E
+[00Ah 0010   6]                       Oem ID : "BOCHS "
+[010h 0016   8]                 Oem Table ID : "BXPCFACP"
+[018h 0024   4]                 Oem Revision : 00000001
+[01Ch 0028   4]              Asl Compiler ID : "BXPC"
+[020h 0032   4]        Asl Compiler Revision : 00000001
+
+[024h 0036   4]                 FACS Address : 00000000
+[028h 0040   4]                 DSDT Address : 00000000
+[02Ch 0044   1]                        Model : 00
+[02Dh 0045   1]                   PM Profile : 00 [Unspecified]
+[02Eh 0046   2]                SCI Interrupt : 0000
+[030h 0048   4]             SMI Command Port : 00000000
+[034h 0052   1]            ACPI Enable Value : 00
+[035h 0053   1]           ACPI Disable Value : 00
+[036h 0054   1]               S4BIOS Command : 00
+[037h 0055   1]              P-State Control : 00
+[038h 0056   4]     PM1A Event Block Address : 00000000
+[03Ch 0060   4]     PM1B Event Block Address : 00000000
+[040h 0064   4]   PM1A Control Block Address : 00000000
+[044h 0068   4]   PM1B Control Block Address : 00000000
+[048h 0072   4]    PM2 Control Block Address : 00000000
+[04Ch 0076   4]       PM Timer Block Address : 00000000
+[050h 0080   4]           GPE0 Block Address : 00000000
+[054h 0084   4]           GPE1 Block Address : 00000000
+[058h 0088   1]       PM1 Event Block Length : 00
+[059h 0089   1]     PM1 Control Block Length : 00
+[05Ah 0090   1]     PM2 Control Block Length : 00
+[05Bh 0091   1]        PM Timer Block Length : 00
+[05Ch 0092   1]            GPE0 Block Length : 00
+[05Dh 0093   1]            GPE1 Block Length : 00
+[05Eh 0094   1]             GPE1 Base Offset : 00
+[05Fh 0095   1]                 _CST Support : 00
+[060h 0096   2]                   C2 Latency : 0000
+[062h 0098   2]                   C3 Latency : 0000
+[064h 0100   2]               CPU Cache Size : 0000
+[066h 0102   2]           Cache Flush Stride : 0000
+[068h 0104   1]            Duty Cycle Offset : 00
+[069h 0105   1]             Duty Cycle Width : 00
+[06Ah 0106   1]          RTC Day Alarm Index : 00
+[06Bh 0107   1]        RTC Month Alarm Index : 00
+[06Ch 0108   1]            RTC Century Index : 00
+[06Dh 0109   2]   Boot Flags (decoded below) : 0000
+               Legacy Devices Supported (V2) : 0
+            8042 Present on ports 60/64 (V2) : 0
+                        VGA Not Present (V4) : 0
+                      MSI Not Supported (V4) : 0
+                PCIe ASPM Not Supported (V4) : 0
+                   CMOS RTC Not Present (V5) : 0
+[06Fh 0111   1]                     Reserved : 00
+[070h 0112   4]        Flags (decoded below) : 00100400
+      WBINVD instruction is operational (V1) : 0
+              WBINVD flushes all caches (V1) : 0
+                    All CPUs support C1 (V1) : 0
+                  C2 works on MP system (V1) : 0
+            Control Method Power Button (V1) : 0
+            Control Method Sleep Button (V1) : 0
+        RTC wake not in fixed reg space (V1) : 0
+            RTC can wake system from S4 (V1) : 0
+                        32-bit PM Timer (V1) : 0
+                      Docking Supported (V1) : 0
+               Reset Register Supported (V2) : 1
+                            Sealed Case (V3) : 0
+                    Headless - No Video (V3) : 0
+        Use native instr after SLP_TYPx (V3) : 0
+              PCIEXP_WAK Bits Supported (V4) : 0
+                     Use Platform Timer (V4) : 0
+               RTC_STS valid on S4 wake (V4) : 0
+                Remote Power-on capable (V4) : 0
+                 Use APIC Cluster Model (V4) : 0
+     Use APIC Physical Destination Mode (V4) : 0
+                       Hardware Reduced (V5) : 1
+                      Low Power S0 Idle (V5) : 0
+
+[074h 0116  12]               Reset Register : [Generic Address Structure]
+[074h 0116   1]                     Space ID : 00 [SystemMemory]
+[075h 0117   1]                    Bit Width : 08
+[076h 0118   1]                   Bit Offset : 00
+[077h 0119   1]         Encoded Access Width : 00 [Undefined/Legacy]
+[078h 0120   8]                      Address : 00000000FEA00202
+
+[080h 0128   1]         Value to cause reset : 42
+[081h 0129   2]    ARM Flags (decoded below) : 0000
+                              PSCI Compliant : 0
+                       Must use HVC for PSCI : 0
+
+[083h 0131   1]          FADT Minor Revision : 00
+[084h 0132   8]                 FACS Address : 0000000000000000
+[08Ch 0140   8]                 DSDT Address : 0000000000000000
+[094h 0148  12]             PM1A Event Block : [Generic Address Structure]
+[094h 0148   1]                     Space ID : 00 [SystemMemory]
+[095h 0149   1]                    Bit Width : 00
+[096h 0150   1]                   Bit Offset : 00
+[097h 0151   1]         Encoded Access Width : 00 [Undefined/Legacy]
+[098h 0152   8]                      Address : 0000000000000000
+
+[0A0h 0160  12]             PM1B Event Block : [Generic Address Structure]
+[0A0h 0160   1]                     Space ID : 00 [SystemMemory]
+[0A1h 0161   1]                    Bit Width : 00
+[0A2h 0162   1]                   Bit Offset : 00
+[0A3h 0163   1]         Encoded Access Width : 00 [Undefined/Legacy]
+[0A4h 0164   8]                      Address : 0000000000000000
+
+[0ACh 0172  12]           PM1A Control Block : [Generic Address Structure]
+[0ACh 0172   1]                     Space ID : 00 [SystemMemory]
+[0ADh 0173   1]                    Bit Width : 00
+[0AEh 0174   1]                   Bit Offset : 00
+[0AFh 0175   1]         Encoded Access Width : 00 [Undefined/Legacy]
+[0B0h 0176   8]                      Address : 0000000000000000
+
+[0B8h 0184  12]           PM1B Control Block : [Generic Address Structure]
+[0B8h 0184   1]                     Space ID : 00 [SystemMemory]
+[0B9h 0185   1]                    Bit Width : 00
+[0BAh 0186   1]                   Bit Offset : 00
+[0BBh 0187   1]         Encoded Access Width : 00 [Undefined/Legacy]
+[0BCh 0188   8]                      Address : 0000000000000000
+
+[0C4h 0196  12]            PM2 Control Block : [Generic Address Structure]
+[0C4h 0196   1]                     Space ID : 00 [SystemMemory]
+[0C5h 0197   1]                    Bit Width : 00
+[0C6h 0198   1]                   Bit Offset : 00
+[0C7h 0199   1]         Encoded Access Width : 00 [Undefined/Legacy]
+[0C8h 0200   8]                      Address : 0000000000000000
+
+[0D0h 0208  12]               PM Timer Block : [Generic Address Structure]
+[0D0h 0208   1]                     Space ID : 00 [SystemMemory]
+[0D1h 0209   1]                    Bit Width : 00
+[0D2h 0210   1]                   Bit Offset : 00
+[0D3h 0211   1]         Encoded Access Width : 00 [Undefined/Legacy]
+[0D4h 0212   8]                      Address : 0000000000000000
+
+[0DCh 0220  12]                   GPE0 Block : [Generic Address Structure]
+[0DCh 0220   1]                     Space ID : 00 [SystemMemory]
+[0DDh 0221   1]                    Bit Width : 00
+[0DEh 0222   1]                   Bit Offset : 00
+[0DFh 0223   1]         Encoded Access Width : 00 [Undefined/Legacy]
+[0E0h 0224   8]                      Address : 0000000000000000
+
+[0E8h 0232  12]                   GPE1 Block : [Generic Address Structure]
+[0E8h 0232   1]                     Space ID : 00 [SystemMemory]
+[0E9h 0233   1]                    Bit Width : 00
+[0EAh 0234   1]                   Bit Offset : 00
+[0EBh 0235   1]         Encoded Access Width : 00 [Undefined/Legacy]
+[0ECh 0236   8]                      Address : 0000000000000000
+
+
+[0F4h 0244  12]       Sleep Control Register : [Generic Address Structure]
+[0F4h 0244   1]                     Space ID : 00 [SystemMemory]
+[0F5h 0245   1]                    Bit Width : 08
+[0F6h 0246   1]                   Bit Offset : 00
+[0F7h 0247   1]         Encoded Access Width : 00 [Undefined/Legacy]
+[0F8h 0248   8]                      Address : 00000000FEA00200
+
+[100h 0256  12]        Sleep Status Register : [Generic Address Structure]
+[100h 0256   1]                     Space ID : 00 [SystemMemory]
+[101h 0257   1]                    Bit Width : 08
+[102h 0258   1]                   Bit Offset : 00
+[103h 0259   1]         Encoded Access Width : 00 [Undefined/Legacy]
+[104h 0260   8]                      Address : 00000000FEA00201
+
+/**** ACPI table terminates in the middle of a data structure! (dump table) */
+
+Raw Table Data: Length 268 (0x10C)
+
+    0000: 46 41 43 50 0C 01 00 00 05 7E 42 4F 43 48 53 20  // FACP.....~BOCHS 
+    0010: 42 58 50 43 46 41 43 50 01 00 00 00 42 58 50 43  // BXPCFACP....BXPC
+    0020: 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  // ................
+    0030: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  // ................
+    0040: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  // ................
+    0050: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  // ................
+    0060: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  // ................
+    0070: 00 04 10 00 00 08 00 00 02 02 A0 FE 00 00 00 00  // ................
+    0080: 42 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  // B...............
+    0090: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  // ................
+    00A0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  // ................
+    00B0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  // ................
+    00C0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  // ................
+    00D0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  // ................
+    00E0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  // ................
+    00F0: 00 00 00 00 00 08 00 00 00 02 A0 FE 00 00 00 00  // ................
+    0100: 00 08 00 00 01 02 A0 FE 00 00 00 00              // ............
diff --git a/tests/data/acpi/pc/APIC.acpihmat.dsl b/tests/data/acpi/pc/APIC.acpihmat.dsl
new file mode 100644
index 0000000000..15155cac55
--- /dev/null
+++ b/tests/data/acpi/pc/APIC.acpihmat.dsl
@@ -0,0 +1,112 @@ 
+/*
+ * Intel ACPI Component Architecture
+ * AML/ASL+ Disassembler version 20190509 (64-bit version)
+ * Copyright (c) 2000 - 2019 Intel Corporation
+ * 
+ * Disassembly of tests/data/acpi/pc/APIC.acpihmat, Tue Aug  4 11:14:15 2020
+ *
+ * ACPI Data Table [APIC]
+ *
+ * Format: [HexOffset DecimalOffset ByteLength]  FieldName : FieldValue
+ */
+
+[000h 0000   4]                    Signature : "APIC"    [Multiple APIC Description Table (MADT)]
+[004h 0004   4]                 Table Length : 00000080
+[008h 0008   1]                     Revision : 01
+[009h 0009   1]                     Checksum : DA
+[00Ah 0010   6]                       Oem ID : "BOCHS "
+[010h 0016   8]                 Oem Table ID : "BXPCAPIC"
+[018h 0024   4]                 Oem Revision : 00000001
+[01Ch 0028   4]              Asl Compiler ID : "BXPC"
+[020h 0032   4]        Asl Compiler Revision : 00000001
+
+[024h 0036   4]           Local Apic Address : FEE00000
+[028h 0040   4]        Flags (decoded below) : 00000001
+                         PC-AT Compatibility : 1
+
+[02Ch 0044   1]                Subtable Type : 00 [Processor Local APIC]
+[02Dh 0045   1]                       Length : 08
+[02Eh 0046   1]                 Processor ID : 00
+[02Fh 0047   1]                Local Apic ID : 00
+[030h 0048   4]        Flags (decoded below) : 00000001
+                           Processor Enabled : 1
+                      Runtime Online Capable : 0
+
+[034h 0052   1]                Subtable Type : 00 [Processor Local APIC]
+[035h 0053   1]                       Length : 08
+[036h 0054   1]                 Processor ID : 01
+[037h 0055   1]                Local Apic ID : 01
+[038h 0056   4]        Flags (decoded below) : 00000001
+                           Processor Enabled : 1
+                      Runtime Online Capable : 0
+
+[03Ch 0060   1]                Subtable Type : 01 [I/O APIC]
+[03Dh 0061   1]                       Length : 0C
+[03Eh 0062   1]                  I/O Apic ID : 00
+[03Fh 0063   1]                     Reserved : 00
+[040h 0064   4]                      Address : FEC00000
+[044h 0068   4]                    Interrupt : 00000000
+
+[048h 0072   1]                Subtable Type : 02 [Interrupt Source Override]
+[049h 0073   1]                       Length : 0A
+[04Ah 0074   1]                          Bus : 00
+[04Bh 0075   1]                       Source : 00
+[04Ch 0076   4]                    Interrupt : 00000002
+[050h 0080   2]        Flags (decoded below) : 0000
+                                    Polarity : 0
+                                Trigger Mode : 0
+
+[052h 0082   1]                Subtable Type : 02 [Interrupt Source Override]
+[053h 0083   1]                       Length : 0A
+[054h 0084   1]                          Bus : 00
+[055h 0085   1]                       Source : 05
+[056h 0086   4]                    Interrupt : 00000005
+[05Ah 0090   2]        Flags (decoded below) : 000D
+                                    Polarity : 1
+                                Trigger Mode : 3
+
+[05Ch 0092   1]                Subtable Type : 02 [Interrupt Source Override]
+[05Dh 0093   1]                       Length : 0A
+[05Eh 0094   1]                          Bus : 00
+[05Fh 0095   1]                       Source : 09
+[060h 0096   4]                    Interrupt : 00000009
+[064h 0100   2]        Flags (decoded below) : 000D
+                                    Polarity : 1
+                                Trigger Mode : 3
+
+[066h 0102   1]                Subtable Type : 02 [Interrupt Source Override]
+[067h 0103   1]                       Length : 0A
+[068h 0104   1]                          Bus : 00
+[069h 0105   1]                       Source : 0A
+[06Ah 0106   4]                    Interrupt : 0000000A
+[06Eh 0110   2]        Flags (decoded below) : 000D
+                                    Polarity : 1
+                                Trigger Mode : 3
+
+[070h 0112   1]                Subtable Type : 02 [Interrupt Source Override]
+[071h 0113   1]                       Length : 0A
+[072h 0114   1]                          Bus : 00
+[073h 0115   1]                       Source : 0B
+[074h 0116   4]                    Interrupt : 0000000B
+[078h 0120   2]        Flags (decoded below) : 000D
+                                    Polarity : 1
+                                Trigger Mode : 3
+
+[07Ah 0122   1]                Subtable Type : 04 [Local APIC NMI]
+[07Bh 0123   1]                       Length : 06
+[07Ch 0124   1]                 Processor ID : FF
+[07Dh 0125   2]        Flags (decoded below) : 0000
+                                    Polarity : 0
+                                Trigger Mode : 0
+[07Fh 0127   1]         Interrupt Input LINT : 01
+
+Raw Table Data: Length 128 (0x80)
+
+    0000: 41 50 49 43 80 00 00 00 01 DA 42 4F 43 48 53 20  // APIC......BOCHS 
+    0010: 42 58 50 43 41 50 49 43 01 00 00 00 42 58 50 43  // BXPCAPIC....BXPC
+    0020: 01 00 00 00 00 00 E0 FE 01 00 00 00 00 08 00 00  // ................
+    0030: 01 00 00 00 00 08 01 01 01 00 00 00 01 0C 00 00  // ................
+    0040: 00 00 C0 FE 00 00 00 00 02 0A 00 00 02 00 00 00  // ................
+    0050: 00 00 02 0A 00 05 05 00 00 00 0D 00 02 0A 00 09  // ................
+    0060: 09 00 00 00 0D 00 02 0A 00 0A 0A 00 00 00 0D 00  // ................
+    0070: 02 0A 00 0B 0B 00 00 00 0D 00 04 06 FF 00 00 01  // ................
diff --git a/tests/data/acpi/pc/APIC.bridge b/tests/data/acpi/pc/APIC.bridge
new file mode 100644
index 0000000000000000000000000000000000000000..84509e0ae4cabeb5ead3e42a4edfa50abddbc17d
GIT binary patch
literal 120
zcmZ<^@N}+VU|?W;>*Vk35v<@85#a0y6k`O6f!H9Lf#JbFFwFr}2jnsGfW!{`1CdNz
hKn!AlSgfo-nis_4<b<)ffC?aD+}vOm3)_F75db|X4FLcE

literal 0
HcmV?d00001

diff --git a/tests/data/acpi/pc/APIC.bridge.dsl b/tests/data/acpi/pc/APIC.bridge.dsl
new file mode 100644
index 0000000000..2828370063
--- /dev/null
+++ b/tests/data/acpi/pc/APIC.bridge.dsl
@@ -0,0 +1,104 @@ 
+/*
+ * Intel ACPI Component Architecture
+ * AML/ASL+ Disassembler version 20190509 (64-bit version)
+ * Copyright (c) 2000 - 2019 Intel Corporation
+ * 
+ * Disassembly of tests/data/acpi/pc/APIC.bridge, Tue Aug  4 11:14:15 2020
+ *
+ * ACPI Data Table [APIC]
+ *
+ * Format: [HexOffset DecimalOffset ByteLength]  FieldName : FieldValue
+ */
+
+[000h 0000   4]                    Signature : "APIC"    [Multiple APIC Description Table (MADT)]
+[004h 0004   4]                 Table Length : 00000078
+[008h 0008   1]                     Revision : 01
+[009h 0009   1]                     Checksum : ED
+[00Ah 0010   6]                       Oem ID : "BOCHS "
+[010h 0016   8]                 Oem Table ID : "BXPCAPIC"
+[018h 0024   4]                 Oem Revision : 00000001
+[01Ch 0028   4]              Asl Compiler ID : "BXPC"
+[020h 0032   4]        Asl Compiler Revision : 00000001
+
+[024h 0036   4]           Local Apic Address : FEE00000
+[028h 0040   4]        Flags (decoded below) : 00000001
+                         PC-AT Compatibility : 1
+
+[02Ch 0044   1]                Subtable Type : 00 [Processor Local APIC]
+[02Dh 0045   1]                       Length : 08
+[02Eh 0046   1]                 Processor ID : 00
+[02Fh 0047   1]                Local Apic ID : 00
+[030h 0048   4]        Flags (decoded below) : 00000001
+                           Processor Enabled : 1
+                      Runtime Online Capable : 0
+
+[034h 0052   1]                Subtable Type : 01 [I/O APIC]
+[035h 0053   1]                       Length : 0C
+[036h 0054   1]                  I/O Apic ID : 00
+[037h 0055   1]                     Reserved : 00
+[038h 0056   4]                      Address : FEC00000
+[03Ch 0060   4]                    Interrupt : 00000000
+
+[040h 0064   1]                Subtable Type : 02 [Interrupt Source Override]
+[041h 0065   1]                       Length : 0A
+[042h 0066   1]                          Bus : 00
+[043h 0067   1]                       Source : 00
+[044h 0068   4]                    Interrupt : 00000002
+[048h 0072   2]        Flags (decoded below) : 0000
+                                    Polarity : 0
+                                Trigger Mode : 0
+
+[04Ah 0074   1]                Subtable Type : 02 [Interrupt Source Override]
+[04Bh 0075   1]                       Length : 0A
+[04Ch 0076   1]                          Bus : 00
+[04Dh 0077   1]                       Source : 05
+[04Eh 0078   4]                    Interrupt : 00000005
+[052h 0082   2]        Flags (decoded below) : 000D
+                                    Polarity : 1
+                                Trigger Mode : 3
+
+[054h 0084   1]                Subtable Type : 02 [Interrupt Source Override]
+[055h 0085   1]                       Length : 0A
+[056h 0086   1]                          Bus : 00
+[057h 0087   1]                       Source : 09
+[058h 0088   4]                    Interrupt : 00000009
+[05Ch 0092   2]        Flags (decoded below) : 000D
+                                    Polarity : 1
+                                Trigger Mode : 3
+
+[05Eh 0094   1]                Subtable Type : 02 [Interrupt Source Override]
+[05Fh 0095   1]                       Length : 0A
+[060h 0096   1]                          Bus : 00
+[061h 0097   1]                       Source : 0A
+[062h 0098   4]                    Interrupt : 0000000A
+[066h 0102   2]        Flags (decoded below) : 000D
+                                    Polarity : 1
+                                Trigger Mode : 3
+
+[068h 0104   1]                Subtable Type : 02 [Interrupt Source Override]
+[069h 0105   1]                       Length : 0A
+[06Ah 0106   1]                          Bus : 00
+[06Bh 0107   1]                       Source : 0B
+[06Ch 0108   4]                    Interrupt : 0000000B
+[070h 0112   2]        Flags (decoded below) : 000D
+                                    Polarity : 1
+                                Trigger Mode : 3
+
+[072h 0114   1]                Subtable Type : 04 [Local APIC NMI]
+[073h 0115   1]                       Length : 06
+[074h 0116   1]                 Processor ID : FF
+[075h 0117   2]        Flags (decoded below) : 0000
+                                    Polarity : 0
+                                Trigger Mode : 0
+[077h 0119   1]         Interrupt Input LINT : 01
+
+Raw Table Data: Length 120 (0x78)
+
+    0000: 41 50 49 43 78 00 00 00 01 ED 42 4F 43 48 53 20  // APICx.....BOCHS 
+    0010: 42 58 50 43 41 50 49 43 01 00 00 00 42 58 50 43  // BXPCAPIC....BXPC
+    0020: 01 00 00 00 00 00 E0 FE 01 00 00 00 00 08 00 00  // ................
+    0030: 01 00 00 00 01 0C 00 00 00 00 C0 FE 00 00 00 00  // ................
+    0040: 02 0A 00 00 02 00 00 00 00 00 02 0A 00 05 05 00  // ................
+    0050: 00 00 0D 00 02 0A 00 09 09 00 00 00 0D 00 02 0A  // ................
+    0060: 00 0A 0A 00 00 00 0D 00 02 0A 00 0B 0B 00 00 00  // ................
+    0070: 0D 00 04 06 FF 00 00 01                          // ........
diff --git a/tests/data/acpi/pc/APIC.cphp.dsl b/tests/data/acpi/pc/APIC.cphp.dsl
new file mode 100644
index 0000000000..b4b043229a
--- /dev/null
+++ b/tests/data/acpi/pc/APIC.cphp.dsl
@@ -0,0 +1,146 @@ 
+/*
+ * Intel ACPI Component Architecture
+ * AML/ASL+ Disassembler version 20190509 (64-bit version)
+ * Copyright (c) 2000 - 2019 Intel Corporation
+ * 
+ * Disassembly of tests/data/acpi/pc/APIC.cphp, Tue Aug  4 11:14:15 2020
+ *
+ * ACPI Data Table [APIC]
+ *
+ * Format: [HexOffset DecimalOffset ByteLength]  FieldName : FieldValue
+ */
+
+[000h 0000   4]                    Signature : "APIC"    [Multiple APIC Description Table (MADT)]
+[004h 0004   4]                 Table Length : 000000A0
+[008h 0008   1]                     Revision : 01
+[009h 0009   1]                     Checksum : 7B
+[00Ah 0010   6]                       Oem ID : "BOCHS "
+[010h 0016   8]                 Oem Table ID : "BXPCAPIC"
+[018h 0024   4]                 Oem Revision : 00000001
+[01Ch 0028   4]              Asl Compiler ID : "BXPC"
+[020h 0032   4]        Asl Compiler Revision : 00000001
+
+[024h 0036   4]           Local Apic Address : FEE00000
+[028h 0040   4]        Flags (decoded below) : 00000001
+                         PC-AT Compatibility : 1
+
+[02Ch 0044   1]                Subtable Type : 00 [Processor Local APIC]
+[02Dh 0045   1]                       Length : 08
+[02Eh 0046   1]                 Processor ID : 00
+[02Fh 0047   1]                Local Apic ID : 00
+[030h 0048   4]        Flags (decoded below) : 00000001
+                           Processor Enabled : 1
+                      Runtime Online Capable : 0
+
+[034h 0052   1]                Subtable Type : 00 [Processor Local APIC]
+[035h 0053   1]                       Length : 08
+[036h 0054   1]                 Processor ID : 01
+[037h 0055   1]                Local Apic ID : 01
+[038h 0056   4]        Flags (decoded below) : 00000001
+                           Processor Enabled : 1
+                      Runtime Online Capable : 0
+
+[03Ch 0060   1]                Subtable Type : 00 [Processor Local APIC]
+[03Dh 0061   1]                       Length : 08
+[03Eh 0062   1]                 Processor ID : 02
+[03Fh 0063   1]                Local Apic ID : 02
+[040h 0064   4]        Flags (decoded below) : 00000000
+                           Processor Enabled : 0
+                      Runtime Online Capable : 0
+
+[044h 0068   1]                Subtable Type : 00 [Processor Local APIC]
+[045h 0069   1]                       Length : 08
+[046h 0070   1]                 Processor ID : 03
+[047h 0071   1]                Local Apic ID : 04
+[048h 0072   4]        Flags (decoded below) : 00000000
+                           Processor Enabled : 0
+                      Runtime Online Capable : 0
+
+[04Ch 0076   1]                Subtable Type : 00 [Processor Local APIC]
+[04Dh 0077   1]                       Length : 08
+[04Eh 0078   1]                 Processor ID : 04
+[04Fh 0079   1]                Local Apic ID : 05
+[050h 0080   4]        Flags (decoded below) : 00000000
+                           Processor Enabled : 0
+                      Runtime Online Capable : 0
+
+[054h 0084   1]                Subtable Type : 00 [Processor Local APIC]
+[055h 0085   1]                       Length : 08
+[056h 0086   1]                 Processor ID : 05
+[057h 0087   1]                Local Apic ID : 06
+[058h 0088   4]        Flags (decoded below) : 00000000
+                           Processor Enabled : 0
+                      Runtime Online Capable : 0
+
+[05Ch 0092   1]                Subtable Type : 01 [I/O APIC]
+[05Dh 0093   1]                       Length : 0C
+[05Eh 0094   1]                  I/O Apic ID : 00
+[05Fh 0095   1]                     Reserved : 00
+[060h 0096   4]                      Address : FEC00000
+[064h 0100   4]                    Interrupt : 00000000
+
+[068h 0104   1]                Subtable Type : 02 [Interrupt Source Override]
+[069h 0105   1]                       Length : 0A
+[06Ah 0106   1]                          Bus : 00
+[06Bh 0107   1]                       Source : 00
+[06Ch 0108   4]                    Interrupt : 00000002
+[070h 0112   2]        Flags (decoded below) : 0000
+                                    Polarity : 0
+                                Trigger Mode : 0
+
+[072h 0114   1]                Subtable Type : 02 [Interrupt Source Override]
+[073h 0115   1]                       Length : 0A
+[074h 0116   1]                          Bus : 00
+[075h 0117   1]                       Source : 05
+[076h 0118   4]                    Interrupt : 00000005
+[07Ah 0122   2]        Flags (decoded below) : 000D
+                                    Polarity : 1
+                                Trigger Mode : 3
+
+[07Ch 0124   1]                Subtable Type : 02 [Interrupt Source Override]
+[07Dh 0125   1]                       Length : 0A
+[07Eh 0126   1]                          Bus : 00
+[07Fh 0127   1]                       Source : 09
+[080h 0128   4]                    Interrupt : 00000009
+[084h 0132   2]        Flags (decoded below) : 000D
+                                    Polarity : 1
+                                Trigger Mode : 3
+
+[086h 0134   1]                Subtable Type : 02 [Interrupt Source Override]
+[087h 0135   1]                       Length : 0A
+[088h 0136   1]                          Bus : 00
+[089h 0137   1]                       Source : 0A
+[08Ah 0138   4]                    Interrupt : 0000000A
+[08Eh 0142   2]        Flags (decoded below) : 000D
+                                    Polarity : 1
+                                Trigger Mode : 3
+
+[090h 0144   1]                Subtable Type : 02 [Interrupt Source Override]
+[091h 0145   1]                       Length : 0A
+[092h 0146   1]                          Bus : 00
+[093h 0147   1]                       Source : 0B
+[094h 0148   4]                    Interrupt : 0000000B
+[098h 0152   2]        Flags (decoded below) : 000D
+                                    Polarity : 1
+                                Trigger Mode : 3
+
+[09Ah 0154   1]                Subtable Type : 04 [Local APIC NMI]
+[09Bh 0155   1]                       Length : 06
+[09Ch 0156   1]                 Processor ID : FF
+[09Dh 0157   2]        Flags (decoded below) : 0000
+                                    Polarity : 0
+                                Trigger Mode : 0
+[09Fh 0159   1]         Interrupt Input LINT : 01
+
+Raw Table Data: Length 160 (0xA0)
+
+    0000: 41 50 49 43 A0 00 00 00 01 7B 42 4F 43 48 53 20  // APIC.....{BOCHS 
+    0010: 42 58 50 43 41 50 49 43 01 00 00 00 42 58 50 43  // BXPCAPIC....BXPC
+    0020: 01 00 00 00 00 00 E0 FE 01 00 00 00 00 08 00 00  // ................
+    0030: 01 00 00 00 00 08 01 01 01 00 00 00 00 08 02 02  // ................
+    0040: 00 00 00 00 00 08 03 04 00 00 00 00 00 08 04 05  // ................
+    0050: 00 00 00 00 00 08 05 06 00 00 00 00 01 0C 00 00  // ................
+    0060: 00 00 C0 FE 00 00 00 00 02 0A 00 00 02 00 00 00  // ................
+    0070: 00 00 02 0A 00 05 05 00 00 00 0D 00 02 0A 00 09  // ................
+    0080: 09 00 00 00 0D 00 02 0A 00 0A 0A 00 00 00 0D 00  // ................
+    0090: 02 0A 00 0B 0B 00 00 00 0D 00 04 06 FF 00 00 01  // ................
diff --git a/tests/data/acpi/pc/APIC.dimmpxm.dsl b/tests/data/acpi/pc/APIC.dimmpxm.dsl
new file mode 100644
index 0000000000..adabdcc603
--- /dev/null
+++ b/tests/data/acpi/pc/APIC.dimmpxm.dsl
@@ -0,0 +1,129 @@ 
+/*
+ * Intel ACPI Component Architecture
+ * AML/ASL+ Disassembler version 20190509 (64-bit version)
+ * Copyright (c) 2000 - 2019 Intel Corporation
+ * 
+ * Disassembly of tests/data/acpi/pc/APIC.dimmpxm, Tue Aug  4 11:14:15 2020
+ *
+ * ACPI Data Table [APIC]
+ *
+ * Format: [HexOffset DecimalOffset ByteLength]  FieldName : FieldValue
+ */
+
+[000h 0000   4]                    Signature : "APIC"    [Multiple APIC Description Table (MADT)]
+[004h 0004   4]                 Table Length : 00000090
+[008h 0008   1]                     Revision : 01
+[009h 0009   1]                     Checksum : AE
+[00Ah 0010   6]                       Oem ID : "BOCHS "
+[010h 0016   8]                 Oem Table ID : "BXPCAPIC"
+[018h 0024   4]                 Oem Revision : 00000001
+[01Ch 0028   4]              Asl Compiler ID : "BXPC"
+[020h 0032   4]        Asl Compiler Revision : 00000001
+
+[024h 0036   4]           Local Apic Address : FEE00000
+[028h 0040   4]        Flags (decoded below) : 00000001
+                         PC-AT Compatibility : 1
+
+[02Ch 0044   1]                Subtable Type : 00 [Processor Local APIC]
+[02Dh 0045   1]                       Length : 08
+[02Eh 0046   1]                 Processor ID : 00
+[02Fh 0047   1]                Local Apic ID : 00
+[030h 0048   4]        Flags (decoded below) : 00000001
+                           Processor Enabled : 1
+                      Runtime Online Capable : 0
+
+[034h 0052   1]                Subtable Type : 00 [Processor Local APIC]
+[035h 0053   1]                       Length : 08
+[036h 0054   1]                 Processor ID : 01
+[037h 0055   1]                Local Apic ID : 01
+[038h 0056   4]        Flags (decoded below) : 00000001
+                           Processor Enabled : 1
+                      Runtime Online Capable : 0
+
+[03Ch 0060   1]                Subtable Type : 00 [Processor Local APIC]
+[03Dh 0061   1]                       Length : 08
+[03Eh 0062   1]                 Processor ID : 02
+[03Fh 0063   1]                Local Apic ID : 02
+[040h 0064   4]        Flags (decoded below) : 00000001
+                           Processor Enabled : 1
+                      Runtime Online Capable : 0
+
+[044h 0068   1]                Subtable Type : 00 [Processor Local APIC]
+[045h 0069   1]                       Length : 08
+[046h 0070   1]                 Processor ID : 03
+[047h 0071   1]                Local Apic ID : 03
+[048h 0072   4]        Flags (decoded below) : 00000001
+                           Processor Enabled : 1
+                      Runtime Online Capable : 0
+
+[04Ch 0076   1]                Subtable Type : 01 [I/O APIC]
+[04Dh 0077   1]                       Length : 0C
+[04Eh 0078   1]                  I/O Apic ID : 00
+[04Fh 0079   1]                     Reserved : 00
+[050h 0080   4]                      Address : FEC00000
+[054h 0084   4]                    Interrupt : 00000000
+
+[058h 0088   1]                Subtable Type : 02 [Interrupt Source Override]
+[059h 0089   1]                       Length : 0A
+[05Ah 0090   1]                          Bus : 00
+[05Bh 0091   1]                       Source : 00
+[05Ch 0092   4]                    Interrupt : 00000002
+[060h 0096   2]        Flags (decoded below) : 0000
+                                    Polarity : 0
+                                Trigger Mode : 0
+
+[062h 0098   1]                Subtable Type : 02 [Interrupt Source Override]
+[063h 0099   1]                       Length : 0A
+[064h 0100   1]                          Bus : 00
+[065h 0101   1]                       Source : 05
+[066h 0102   4]                    Interrupt : 00000005
+[06Ah 0106   2]        Flags (decoded below) : 000D
+                                    Polarity : 1
+                                Trigger Mode : 3
+
+[06Ch 0108   1]                Subtable Type : 02 [Interrupt Source Override]
+[06Dh 0109   1]                       Length : 0A
+[06Eh 0110   1]                          Bus : 00
+[06Fh 0111   1]                       Source : 09
+[070h 0112   4]                    Interrupt : 00000009
+[074h 0116   2]        Flags (decoded below) : 000D
+                                    Polarity : 1
+                                Trigger Mode : 3
+
+[076h 0118   1]                Subtable Type : 02 [Interrupt Source Override]
+[077h 0119   1]                       Length : 0A
+[078h 0120   1]                          Bus : 00
+[079h 0121   1]                       Source : 0A
+[07Ah 0122   4]                    Interrupt : 0000000A
+[07Eh 0126   2]        Flags (decoded below) : 000D
+                                    Polarity : 1
+                                Trigger Mode : 3
+
+[080h 0128   1]                Subtable Type : 02 [Interrupt Source Override]
+[081h 0129   1]                       Length : 0A
+[082h 0130   1]                          Bus : 00
+[083h 0131   1]                       Source : 0B
+[084h 0132   4]                    Interrupt : 0000000B
+[088h 0136   2]        Flags (decoded below) : 000D
+                                    Polarity : 1
+                                Trigger Mode : 3
+
+[08Ah 0138   1]                Subtable Type : 04 [Local APIC NMI]
+[08Bh 0139   1]                       Length : 06
+[08Ch 0140   1]                 Processor ID : FF
+[08Dh 0141   2]        Flags (decoded below) : 0000
+                                    Polarity : 0
+                                Trigger Mode : 0
+[08Fh 0143   1]         Interrupt Input LINT : 01
+
+Raw Table Data: Length 144 (0x90)
+
+    0000: 41 50 49 43 90 00 00 00 01 AE 42 4F 43 48 53 20  // APIC......BOCHS 
+    0010: 42 58 50 43 41 50 49 43 01 00 00 00 42 58 50 43  // BXPCAPIC....BXPC
+    0020: 01 00 00 00 00 00 E0 FE 01 00 00 00 00 08 00 00  // ................
+    0030: 01 00 00 00 00 08 01 01 01 00 00 00 00 08 02 02  // ................
+    0040: 01 00 00 00 00 08 03 03 01 00 00 00 01 0C 00 00  // ................
+    0050: 00 00 C0 FE 00 00 00 00 02 0A 00 00 02 00 00 00  // ................
+    0060: 00 00 02 0A 00 05 05 00 00 00 0D 00 02 0A 00 09  // ................
+    0070: 09 00 00 00 0D 00 02 0A 00 0A 0A 00 00 00 0D 00  // ................
+    0080: 02 0A 00 0B 0B 00 00 00 0D 00 04 06 FF 00 00 01  // ................
diff --git a/tests/data/acpi/pc/APIC.dsl b/tests/data/acpi/pc/APIC.dsl
new file mode 100644
index 0000000000..d9516fc1f2
--- /dev/null
+++ b/tests/data/acpi/pc/APIC.dsl
@@ -0,0 +1,104 @@ 
+/*
+ * Intel ACPI Component Architecture
+ * AML/ASL+ Disassembler version 20190509 (64-bit version)
+ * Copyright (c) 2000 - 2019 Intel Corporation
+ * 
+ * Disassembly of tests/data/acpi/pc/APIC.roothp, Mon Sep 28 17:24:38 2020
+ *
+ * ACPI Data Table [APIC]
+ *
+ * Format: [HexOffset DecimalOffset ByteLength]  FieldName : FieldValue
+ */
+
+[000h 0000   4]                    Signature : "APIC"    [Multiple APIC Description Table (MADT)]
+[004h 0004   4]                 Table Length : 00000078
+[008h 0008   1]                     Revision : 01
+[009h 0009   1]                     Checksum : ED
+[00Ah 0010   6]                       Oem ID : "BOCHS "
+[010h 0016   8]                 Oem Table ID : "BXPCAPIC"
+[018h 0024   4]                 Oem Revision : 00000001
+[01Ch 0028   4]              Asl Compiler ID : "BXPC"
+[020h 0032   4]        Asl Compiler Revision : 00000001
+
+[024h 0036   4]           Local Apic Address : FEE00000
+[028h 0040   4]        Flags (decoded below) : 00000001
+                         PC-AT Compatibility : 1
+
+[02Ch 0044   1]                Subtable Type : 00 [Processor Local APIC]
+[02Dh 0045   1]                       Length : 08
+[02Eh 0046   1]                 Processor ID : 00
+[02Fh 0047   1]                Local Apic ID : 00
+[030h 0048   4]        Flags (decoded below) : 00000001
+                           Processor Enabled : 1
+                      Runtime Online Capable : 0
+
+[034h 0052   1]                Subtable Type : 01 [I/O APIC]
+[035h 0053   1]                       Length : 0C
+[036h 0054   1]                  I/O Apic ID : 00
+[037h 0055   1]                     Reserved : 00
+[038h 0056   4]                      Address : FEC00000
+[03Ch 0060   4]                    Interrupt : 00000000
+
+[040h 0064   1]                Subtable Type : 02 [Interrupt Source Override]
+[041h 0065   1]                       Length : 0A
+[042h 0066   1]                          Bus : 00
+[043h 0067   1]                       Source : 00
+[044h 0068   4]                    Interrupt : 00000002
+[048h 0072   2]        Flags (decoded below) : 0000
+                                    Polarity : 0
+                                Trigger Mode : 0
+
+[04Ah 0074   1]                Subtable Type : 02 [Interrupt Source Override]
+[04Bh 0075   1]                       Length : 0A
+[04Ch 0076   1]                          Bus : 00
+[04Dh 0077   1]                       Source : 05
+[04Eh 0078   4]                    Interrupt : 00000005
+[052h 0082   2]        Flags (decoded below) : 000D
+                                    Polarity : 1
+                                Trigger Mode : 3
+
+[054h 0084   1]                Subtable Type : 02 [Interrupt Source Override]
+[055h 0085   1]                       Length : 0A
+[056h 0086   1]                          Bus : 00
+[057h 0087   1]                       Source : 09
+[058h 0088   4]                    Interrupt : 00000009
+[05Ch 0092   2]        Flags (decoded below) : 000D
+                                    Polarity : 1
+                                Trigger Mode : 3
+
+[05Eh 0094   1]                Subtable Type : 02 [Interrupt Source Override]
+[05Fh 0095   1]                       Length : 0A
+[060h 0096   1]                          Bus : 00
+[061h 0097   1]                       Source : 0A
+[062h 0098   4]                    Interrupt : 0000000A
+[066h 0102   2]        Flags (decoded below) : 000D
+                                    Polarity : 1
+                                Trigger Mode : 3
+
+[068h 0104   1]                Subtable Type : 02 [Interrupt Source Override]
+[069h 0105   1]                       Length : 0A
+[06Ah 0106   1]                          Bus : 00
+[06Bh 0107   1]                       Source : 0B
+[06Ch 0108   4]                    Interrupt : 0000000B
+[070h 0112   2]        Flags (decoded below) : 000D
+                                    Polarity : 1
+                                Trigger Mode : 3
+
+[072h 0114   1]                Subtable Type : 04 [Local APIC NMI]
+[073h 0115   1]                       Length : 06
+[074h 0116   1]                 Processor ID : FF
+[075h 0117   2]        Flags (decoded below) : 0000
+                                    Polarity : 0
+                                Trigger Mode : 0
+[077h 0119   1]         Interrupt Input LINT : 01
+
+Raw Table Data: Length 120 (0x78)
+
+    0000: 41 50 49 43 78 00 00 00 01 ED 42 4F 43 48 53 20  // APICx.....BOCHS 
+    0010: 42 58 50 43 41 50 49 43 01 00 00 00 42 58 50 43  // BXPCAPIC....BXPC
+    0020: 01 00 00 00 00 00 E0 FE 01 00 00 00 00 08 00 00  // ................
+    0030: 01 00 00 00 01 0C 00 00 00 00 C0 FE 00 00 00 00  // ................
+    0040: 02 0A 00 00 02 00 00 00 00 00 02 0A 00 05 05 00  // ................
+    0050: 00 00 0D 00 02 0A 00 09 09 00 00 00 0D 00 02 0A  // ................
+    0060: 00 0A 0A 00 00 00 0D 00 02 0A 00 0B 0B 00 00 00  // ................
+    0070: 0D 00 04 06 FF 00 00 01                          // ........
diff --git a/tests/data/acpi/pc/APIC.hpbridge b/tests/data/acpi/pc/APIC.hpbridge
new file mode 100644
index 0000000000000000000000000000000000000000..84509e0ae4cabeb5ead3e42a4edfa50abddbc17d
GIT binary patch
literal 120
zcmZ<^@N}+VU|?W;>*Vk35v<@85#a0y6k`O6f!H9Lf#JbFFwFr}2jnsGfW!{`1CdNz
hKn!AlSgfo-nis_4<b<)ffC?aD+}vOm3)_F75db|X4FLcE

literal 0
HcmV?d00001

diff --git a/tests/data/acpi/pc/APIC.ipmikcs b/tests/data/acpi/pc/APIC.ipmikcs
new file mode 100644
index 0000000000000000000000000000000000000000..84509e0ae4cabeb5ead3e42a4edfa50abddbc17d
GIT binary patch
literal 120
zcmZ<^@N}+VU|?W;>*Vk35v<@85#a0y6k`O6f!H9Lf#JbFFwFr}2jnsGfW!{`1CdNz
hKn!AlSgfo-nis_4<b<)ffC?aD+}vOm3)_F75db|X4FLcE

literal 0
HcmV?d00001

diff --git a/tests/data/acpi/pc/APIC.ipmikcs.dsl b/tests/data/acpi/pc/APIC.ipmikcs.dsl
new file mode 100644
index 0000000000..28198bed68
--- /dev/null
+++ b/tests/data/acpi/pc/APIC.ipmikcs.dsl
@@ -0,0 +1,104 @@ 
+/*
+ * Intel ACPI Component Architecture
+ * AML/ASL+ Disassembler version 20190509 (64-bit version)
+ * Copyright (c) 2000 - 2019 Intel Corporation
+ * 
+ * Disassembly of tests/data/acpi/pc/APIC.ipmikcs, Tue Aug  4 11:14:15 2020
+ *
+ * ACPI Data Table [APIC]
+ *
+ * Format: [HexOffset DecimalOffset ByteLength]  FieldName : FieldValue
+ */
+
+[000h 0000   4]                    Signature : "APIC"    [Multiple APIC Description Table (MADT)]
+[004h 0004   4]                 Table Length : 00000078
+[008h 0008   1]                     Revision : 01
+[009h 0009   1]                     Checksum : ED
+[00Ah 0010   6]                       Oem ID : "BOCHS "
+[010h 0016   8]                 Oem Table ID : "BXPCAPIC"
+[018h 0024   4]                 Oem Revision : 00000001
+[01Ch 0028   4]              Asl Compiler ID : "BXPC"
+[020h 0032   4]        Asl Compiler Revision : 00000001
+
+[024h 0036   4]           Local Apic Address : FEE00000
+[028h 0040   4]        Flags (decoded below) : 00000001
+                         PC-AT Compatibility : 1
+
+[02Ch 0044   1]                Subtable Type : 00 [Processor Local APIC]
+[02Dh 0045   1]                       Length : 08
+[02Eh 0046   1]                 Processor ID : 00
+[02Fh 0047   1]                Local Apic ID : 00
+[030h 0048   4]        Flags (decoded below) : 00000001
+                           Processor Enabled : 1
+                      Runtime Online Capable : 0
+
+[034h 0052   1]                Subtable Type : 01 [I/O APIC]
+[035h 0053   1]                       Length : 0C
+[036h 0054   1]                  I/O Apic ID : 00
+[037h 0055   1]                     Reserved : 00
+[038h 0056   4]                      Address : FEC00000
+[03Ch 0060   4]                    Interrupt : 00000000
+
+[040h 0064   1]                Subtable Type : 02 [Interrupt Source Override]
+[041h 0065   1]                       Length : 0A
+[042h 0066   1]                          Bus : 00
+[043h 0067   1]                       Source : 00
+[044h 0068   4]                    Interrupt : 00000002
+[048h 0072   2]        Flags (decoded below) : 0000
+                                    Polarity : 0
+                                Trigger Mode : 0
+
+[04Ah 0074   1]                Subtable Type : 02 [Interrupt Source Override]
+[04Bh 0075   1]                       Length : 0A
+[04Ch 0076   1]                          Bus : 00
+[04Dh 0077   1]                       Source : 05
+[04Eh 0078   4]                    Interrupt : 00000005
+[052h 0082   2]        Flags (decoded below) : 000D
+                                    Polarity : 1
+                                Trigger Mode : 3
+
+[054h 0084   1]                Subtable Type : 02 [Interrupt Source Override]
+[055h 0085   1]                       Length : 0A
+[056h 0086   1]                          Bus : 00
+[057h 0087   1]                       Source : 09
+[058h 0088   4]                    Interrupt : 00000009
+[05Ch 0092   2]        Flags (decoded below) : 000D
+                                    Polarity : 1
+                                Trigger Mode : 3
+
+[05Eh 0094   1]                Subtable Type : 02 [Interrupt Source Override]
+[05Fh 0095   1]                       Length : 0A
+[060h 0096   1]                          Bus : 00
+[061h 0097   1]                       Source : 0A
+[062h 0098   4]                    Interrupt : 0000000A
+[066h 0102   2]        Flags (decoded below) : 000D
+                                    Polarity : 1
+                                Trigger Mode : 3
+
+[068h 0104   1]                Subtable Type : 02 [Interrupt Source Override]
+[069h 0105   1]                       Length : 0A
+[06Ah 0106   1]                          Bus : 00
+[06Bh 0107   1]                       Source : 0B
+[06Ch 0108   4]                    Interrupt : 0000000B
+[070h 0112   2]        Flags (decoded below) : 000D
+                                    Polarity : 1
+                                Trigger Mode : 3
+
+[072h 0114   1]                Subtable Type : 04 [Local APIC NMI]
+[073h 0115   1]                       Length : 06
+[074h 0116   1]                 Processor ID : FF
+[075h 0117   2]        Flags (decoded below) : 0000
+                                    Polarity : 0
+                                Trigger Mode : 0
+[077h 0119   1]         Interrupt Input LINT : 01
+
+Raw Table Data: Length 120 (0x78)
+
+    0000: 41 50 49 43 78 00 00 00 01 ED 42 4F 43 48 53 20  // APICx.....BOCHS 
+    0010: 42 58 50 43 41 50 49 43 01 00 00 00 42 58 50 43  // BXPCAPIC....BXPC
+    0020: 01 00 00 00 00 00 E0 FE 01 00 00 00 00 08 00 00  // ................
+    0030: 01 00 00 00 01 0C 00 00 00 00 C0 FE 00 00 00 00  // ................
+    0040: 02 0A 00 00 02 00 00 00 00 00 02 0A 00 05 05 00  // ................
+    0050: 00 00 0D 00 02 0A 00 09 09 00 00 00 0D 00 02 0A  // ................
+    0060: 00 0A 0A 00 00 00 0D 00 02 0A 00 0B 0B 00 00 00  // ................
+    0070: 0D 00 04 06 FF 00 00 01                          // ........
diff --git a/tests/data/acpi/pc/APIC.memhp b/tests/data/acpi/pc/APIC.memhp
new file mode 100644
index 0000000000000000000000000000000000000000..84509e0ae4cabeb5ead3e42a4edfa50abddbc17d
GIT binary patch
literal 120
zcmZ<^@N}+VU|?W;>*Vk35v<@85#a0y6k`O6f!H9Lf#JbFFwFr}2jnsGfW!{`1CdNz
hKn!AlSgfo-nis_4<b<)ffC?aD+}vOm3)_F75db|X4FLcE

literal 0
HcmV?d00001

diff --git a/tests/data/acpi/pc/APIC.memhp.dsl b/tests/data/acpi/pc/APIC.memhp.dsl
new file mode 100644
index 0000000000..b8449c0bde
--- /dev/null
+++ b/tests/data/acpi/pc/APIC.memhp.dsl
@@ -0,0 +1,104 @@ 
+/*
+ * Intel ACPI Component Architecture
+ * AML/ASL+ Disassembler version 20190509 (64-bit version)
+ * Copyright (c) 2000 - 2019 Intel Corporation
+ * 
+ * Disassembly of tests/data/acpi/pc/APIC.memhp, Tue Aug  4 11:14:15 2020
+ *
+ * ACPI Data Table [APIC]
+ *
+ * Format: [HexOffset DecimalOffset ByteLength]  FieldName : FieldValue
+ */
+
+[000h 0000   4]                    Signature : "APIC"    [Multiple APIC Description Table (MADT)]
+[004h 0004   4]                 Table Length : 00000078
+[008h 0008   1]                     Revision : 01
+[009h 0009   1]                     Checksum : ED
+[00Ah 0010   6]                       Oem ID : "BOCHS "
+[010h 0016   8]                 Oem Table ID : "BXPCAPIC"
+[018h 0024   4]                 Oem Revision : 00000001
+[01Ch 0028   4]              Asl Compiler ID : "BXPC"
+[020h 0032   4]        Asl Compiler Revision : 00000001
+
+[024h 0036   4]           Local Apic Address : FEE00000
+[028h 0040   4]        Flags (decoded below) : 00000001
+                         PC-AT Compatibility : 1
+
+[02Ch 0044   1]                Subtable Type : 00 [Processor Local APIC]
+[02Dh 0045   1]                       Length : 08
+[02Eh 0046   1]                 Processor ID : 00
+[02Fh 0047   1]                Local Apic ID : 00
+[030h 0048   4]        Flags (decoded below) : 00000001
+                           Processor Enabled : 1
+                      Runtime Online Capable : 0
+
+[034h 0052   1]                Subtable Type : 01 [I/O APIC]
+[035h 0053   1]                       Length : 0C
+[036h 0054   1]                  I/O Apic ID : 00
+[037h 0055   1]                     Reserved : 00
+[038h 0056   4]                      Address : FEC00000
+[03Ch 0060   4]                    Interrupt : 00000000
+
+[040h 0064   1]                Subtable Type : 02 [Interrupt Source Override]
+[041h 0065   1]                       Length : 0A
+[042h 0066   1]                          Bus : 00
+[043h 0067   1]                       Source : 00
+[044h 0068   4]                    Interrupt : 00000002
+[048h 0072   2]        Flags (decoded below) : 0000
+                                    Polarity : 0
+                                Trigger Mode : 0
+
+[04Ah 0074   1]                Subtable Type : 02 [Interrupt Source Override]
+[04Bh 0075   1]                       Length : 0A
+[04Ch 0076   1]                          Bus : 00
+[04Dh 0077   1]                       Source : 05
+[04Eh 0078   4]                    Interrupt : 00000005
+[052h 0082   2]        Flags (decoded below) : 000D
+                                    Polarity : 1
+                                Trigger Mode : 3
+
+[054h 0084   1]                Subtable Type : 02 [Interrupt Source Override]
+[055h 0085   1]                       Length : 0A
+[056h 0086   1]                          Bus : 00
+[057h 0087   1]                       Source : 09
+[058h 0088   4]                    Interrupt : 00000009
+[05Ch 0092   2]        Flags (decoded below) : 000D
+                                    Polarity : 1
+                                Trigger Mode : 3
+
+[05Eh 0094   1]                Subtable Type : 02 [Interrupt Source Override]
+[05Fh 0095   1]                       Length : 0A
+[060h 0096   1]                          Bus : 00
+[061h 0097   1]                       Source : 0A
+[062h 0098   4]                    Interrupt : 0000000A
+[066h 0102   2]        Flags (decoded below) : 000D
+                                    Polarity : 1
+                                Trigger Mode : 3
+
+[068h 0104   1]                Subtable Type : 02 [Interrupt Source Override]
+[069h 0105   1]                       Length : 0A
+[06Ah 0106   1]                          Bus : 00
+[06Bh 0107   1]                       Source : 0B
+[06Ch 0108   4]                    Interrupt : 0000000B
+[070h 0112   2]        Flags (decoded below) : 000D
+                                    Polarity : 1
+                                Trigger Mode : 3
+
+[072h 0114   1]                Subtable Type : 04 [Local APIC NMI]
+[073h 0115   1]                       Length : 06
+[074h 0116   1]                 Processor ID : FF
+[075h 0117   2]        Flags (decoded below) : 0000
+                                    Polarity : 0
+                                Trigger Mode : 0
+[077h 0119   1]         Interrupt Input LINT : 01
+
+Raw Table Data: Length 120 (0x78)
+
+    0000: 41 50 49 43 78 00 00 00 01 ED 42 4F 43 48 53 20  // APICx.....BOCHS 
+    0010: 42 58 50 43 41 50 49 43 01 00 00 00 42 58 50 43  // BXPCAPIC....BXPC
+    0020: 01 00 00 00 00 00 E0 FE 01 00 00 00 00 08 00 00  // ................
+    0030: 01 00 00 00 01 0C 00 00 00 00 C0 FE 00 00 00 00  // ................
+    0040: 02 0A 00 00 02 00 00 00 00 00 02 0A 00 05 05 00  // ................
+    0050: 00 00 0D 00 02 0A 00 09 09 00 00 00 0D 00 02 0A  // ................
+    0060: 00 0A 0A 00 00 00 0D 00 02 0A 00 0B 0B 00 00 00  // ................
+    0070: 0D 00 04 06 FF 00 00 01                          // ........
diff --git a/tests/data/acpi/pc/APIC.numamem b/tests/data/acpi/pc/APIC.numamem
new file mode 100644
index 0000000000000000000000000000000000000000..84509e0ae4cabeb5ead3e42a4edfa50abddbc17d
GIT binary patch
literal 120
zcmZ<^@N}+VU|?W;>*Vk35v<@85#a0y6k`O6f!H9Lf#JbFFwFr}2jnsGfW!{`1CdNz
hKn!AlSgfo-nis_4<b<)ffC?aD+}vOm3)_F75db|X4FLcE

literal 0
HcmV?d00001

diff --git a/tests/data/acpi/pc/APIC.numamem.dsl b/tests/data/acpi/pc/APIC.numamem.dsl
new file mode 100644
index 0000000000..d75e4283d1
--- /dev/null
+++ b/tests/data/acpi/pc/APIC.numamem.dsl
@@ -0,0 +1,104 @@ 
+/*
+ * Intel ACPI Component Architecture
+ * AML/ASL+ Disassembler version 20190509 (64-bit version)
+ * Copyright (c) 2000 - 2019 Intel Corporation
+ * 
+ * Disassembly of tests/data/acpi/pc/APIC.numamem, Tue Aug  4 11:14:15 2020
+ *
+ * ACPI Data Table [APIC]
+ *
+ * Format: [HexOffset DecimalOffset ByteLength]  FieldName : FieldValue
+ */
+
+[000h 0000   4]                    Signature : "APIC"    [Multiple APIC Description Table (MADT)]
+[004h 0004   4]                 Table Length : 00000078
+[008h 0008   1]                     Revision : 01
+[009h 0009   1]                     Checksum : ED
+[00Ah 0010   6]                       Oem ID : "BOCHS "
+[010h 0016   8]                 Oem Table ID : "BXPCAPIC"
+[018h 0024   4]                 Oem Revision : 00000001
+[01Ch 0028   4]              Asl Compiler ID : "BXPC"
+[020h 0032   4]        Asl Compiler Revision : 00000001
+
+[024h 0036   4]           Local Apic Address : FEE00000
+[028h 0040   4]        Flags (decoded below) : 00000001
+                         PC-AT Compatibility : 1
+
+[02Ch 0044   1]                Subtable Type : 00 [Processor Local APIC]
+[02Dh 0045   1]                       Length : 08
+[02Eh 0046   1]                 Processor ID : 00
+[02Fh 0047   1]                Local Apic ID : 00
+[030h 0048   4]        Flags (decoded below) : 00000001
+                           Processor Enabled : 1
+                      Runtime Online Capable : 0
+
+[034h 0052   1]                Subtable Type : 01 [I/O APIC]
+[035h 0053   1]                       Length : 0C
+[036h 0054   1]                  I/O Apic ID : 00
+[037h 0055   1]                     Reserved : 00
+[038h 0056   4]                      Address : FEC00000
+[03Ch 0060   4]                    Interrupt : 00000000
+
+[040h 0064   1]                Subtable Type : 02 [Interrupt Source Override]
+[041h 0065   1]                       Length : 0A
+[042h 0066   1]                          Bus : 00
+[043h 0067   1]                       Source : 00
+[044h 0068   4]                    Interrupt : 00000002
+[048h 0072   2]        Flags (decoded below) : 0000
+                                    Polarity : 0
+                                Trigger Mode : 0
+
+[04Ah 0074   1]                Subtable Type : 02 [Interrupt Source Override]
+[04Bh 0075   1]                       Length : 0A
+[04Ch 0076   1]                          Bus : 00
+[04Dh 0077   1]                       Source : 05
+[04Eh 0078   4]                    Interrupt : 00000005
+[052h 0082   2]        Flags (decoded below) : 000D
+                                    Polarity : 1
+                                Trigger Mode : 3
+
+[054h 0084   1]                Subtable Type : 02 [Interrupt Source Override]
+[055h 0085   1]                       Length : 0A
+[056h 0086   1]                          Bus : 00
+[057h 0087   1]                       Source : 09
+[058h 0088   4]                    Interrupt : 00000009
+[05Ch 0092   2]        Flags (decoded below) : 000D
+                                    Polarity : 1
+                                Trigger Mode : 3
+
+[05Eh 0094   1]                Subtable Type : 02 [Interrupt Source Override]
+[05Fh 0095   1]                       Length : 0A
+[060h 0096   1]                          Bus : 00
+[061h 0097   1]                       Source : 0A
+[062h 0098   4]                    Interrupt : 0000000A
+[066h 0102   2]        Flags (decoded below) : 000D
+                                    Polarity : 1
+                                Trigger Mode : 3
+
+[068h 0104   1]                Subtable Type : 02 [Interrupt Source Override]
+[069h 0105   1]                       Length : 0A
+[06Ah 0106   1]                          Bus : 00
+[06Bh 0107   1]                       Source : 0B
+[06Ch 0108   4]                    Interrupt : 0000000B
+[070h 0112   2]        Flags (decoded below) : 000D
+                                    Polarity : 1
+                                Trigger Mode : 3
+
+[072h 0114   1]                Subtable Type : 04 [Local APIC NMI]
+[073h 0115   1]                       Length : 06
+[074h 0116   1]                 Processor ID : FF
+[075h 0117   2]        Flags (decoded below) : 0000
+                                    Polarity : 0
+                                Trigger Mode : 0
+[077h 0119   1]         Interrupt Input LINT : 01
+
+Raw Table Data: Length 120 (0x78)
+
+    0000: 41 50 49 43 78 00 00 00 01 ED 42 4F 43 48 53 20  // APICx.....BOCHS 
+    0010: 42 58 50 43 41 50 49 43 01 00 00 00 42 58 50 43  // BXPCAPIC....BXPC
+    0020: 01 00 00 00 00 00 E0 FE 01 00 00 00 00 08 00 00  // ................
+    0030: 01 00 00 00 01 0C 00 00 00 00 C0 FE 00 00 00 00  // ................
+    0040: 02 0A 00 00 02 00 00 00 00 00 02 0A 00 05 05 00  // ................
+    0050: 00 00 0D 00 02 0A 00 09 09 00 00 00 0D 00 02 0A  // ................
+    0060: 00 0A 0A 00 00 00 0D 00 02 0A 00 0B 0B 00 00 00  // ................
+    0070: 0D 00 04 06 FF 00 00 01                          // ........
diff --git a/tests/data/acpi/pc/APIC.roothp b/tests/data/acpi/pc/APIC.roothp
new file mode 100644
index 0000000000000000000000000000000000000000..84509e0ae4cabeb5ead3e42a4edfa50abddbc17d
GIT binary patch
literal 120
zcmZ<^@N}+VU|?W;>*Vk35v<@85#a0y6k`O6f!H9Lf#JbFFwFr}2jnsGfW!{`1CdNz
hKn!AlSgfo-nis_4<b<)ffC?aD+}vOm3)_F75db|X4FLcE

literal 0
HcmV?d00001

diff --git a/tests/data/acpi/pc/DSDT.acpihmat.dsl b/tests/data/acpi/pc/DSDT.acpihmat.dsl
new file mode 100644
index 0000000000..b2a4b1bd7f
--- /dev/null
+++ b/tests/data/acpi/pc/DSDT.acpihmat.dsl
@@ -0,0 +1,1619 @@ 
+/*
+ * Intel ACPI Component Architecture
+ * AML/ASL+ Disassembler version 20190509 (64-bit version)
+ * Copyright (c) 2000 - 2019 Intel Corporation
+ * 
+ * Disassembling to symbolic ASL+ operators
+ *
+ * Disassembly of tests/data/acpi/pc/DSDT.acpihmat, Tue Aug  4 11:14:15 2020
+ *
+ * Original Table Header:
+ *     Signature        "DSDT"
+ *     Length           0x00001872 (6258)
+ *     Revision         0x01 **** 32-bit table (V1), no 64-bit math support
+ *     Checksum         0x8E
+ *     OEM ID           "BOCHS "
+ *     OEM Table ID     "BXPCDSDT"
+ *     OEM Revision     0x00000001 (1)
+ *     Compiler ID      "BXPC"
+ *     Compiler Version 0x00000001 (1)
+ */
+DefinitionBlock ("", "DSDT", 1, "BOCHS ", "BXPCDSDT", 0x00000001)
+{
+    Scope (\)
+    {
+        OperationRegion (DBG, SystemIO, 0x0402, One)
+        Field (DBG, ByteAcc, NoLock, Preserve)
+        {
+            DBGB,   8
+        }
+
+        Method (DBUG, 1, NotSerialized)
+        {
+            ToHexString (Arg0, Local0)
+            ToBuffer (Local0, Local0)
+            Local1 = (SizeOf (Local0) - One)
+            Local2 = Zero
+            While ((Local2 < Local1))
+            {
+                DBGB = DerefOf (Local0 [Local2])
+                Local2++
+            }
+
+            DBGB = 0x0A
+        }
+    }
+
+    Scope (_SB)
+    {
+        Device (PCI0)
+        {
+            Name (_HID, EisaId ("PNP0A03") /* PCI Bus */)  // _HID: Hardware ID
+            Name (_ADR, Zero)  // _ADR: Address
+            Name (_UID, Zero)  // _UID: Unique ID
+        }
+    }
+
+    Scope (_SB)
+    {
+        Device (HPET)
+        {
+            Name (_HID, EisaId ("PNP0103") /* HPET System Timer */)  // _HID: Hardware ID
+            Name (_UID, Zero)  // _UID: Unique ID
+            OperationRegion (HPTM, SystemMemory, 0xFED00000, 0x0400)
+            Field (HPTM, DWordAcc, Lock, Preserve)
+            {
+                VEND,   32, 
+                PRD,    32
+            }
+
+            Method (_STA, 0, NotSerialized)  // _STA: Status
+            {
+                Local0 = VEND /* \_SB_.HPET.VEND */
+                Local1 = PRD /* \_SB_.HPET.PRD_ */
+                Local0 >>= 0x10
+                If (((Local0 == Zero) || (Local0 == 0xFFFF)))
+                {
+                    Return (Zero)
+                }
+
+                If (((Local1 == Zero) || (Local1 > 0x05F5E100)))
+                {
+                    Return (Zero)
+                }
+
+                Return (0x0F)
+            }
+
+            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+            {
+                Memory32Fixed (ReadOnly,
+                    0xFED00000,         // Address Base
+                    0x00000400,         // Address Length
+                    )
+            })
+        }
+    }
+
+    Scope (_SB.PCI0)
+    {
+        Device (ISA)
+        {
+            Name (_ADR, 0x00010000)  // _ADR: Address
+            OperationRegion (P40C, PCI_Config, 0x60, 0x04)
+        }
+    }
+
+    Scope (_SB.PCI0.ISA)
+    {
+        Device (KBD)
+        {
+            Name (_HID, EisaId ("PNP0303") /* IBM Enhanced Keyboard (101/102-key, PS/2 Mouse) */)  // _HID: Hardware ID
+            Name (_STA, 0x0F)  // _STA: Status
+            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+            {
+                IO (Decode16,
+                    0x0060,             // Range Minimum
+                    0x0060,             // Range Maximum
+                    0x01,               // Alignment
+                    0x01,               // Length
+                    )
+                IO (Decode16,
+                    0x0064,             // Range Minimum
+                    0x0064,             // Range Maximum
+                    0x01,               // Alignment
+                    0x01,               // Length
+                    )
+                IRQNoFlags ()
+                    {1}
+            })
+        }
+
+        Device (MOU)
+        {
+            Name (_HID, EisaId ("PNP0F13") /* PS/2 Mouse */)  // _HID: Hardware ID
+            Name (_STA, 0x0F)  // _STA: Status
+            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+            {
+                IRQNoFlags ()
+                    {12}
+            })
+        }
+
+        Device (FDC0)
+        {
+            Name (_HID, EisaId ("PNP0700"))  // _HID: Hardware ID
+            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+            {
+                IO (Decode16,
+                    0x03F2,             // Range Minimum
+                    0x03F2,             // Range Maximum
+                    0x00,               // Alignment
+                    0x04,               // Length
+                    )
+                IO (Decode16,
+                    0x03F7,             // Range Minimum
+                    0x03F7,             // Range Maximum
+                    0x00,               // Alignment
+                    0x01,               // Length
+                    )
+                IRQNoFlags ()
+                    {6}
+                DMA (Compatibility, NotBusMaster, Transfer8, )
+                    {2}
+            })
+            Device (FLPA)
+            {
+                Name (_ADR, Zero)  // _ADR: Address
+                Name (_FDI, Package (0x10)  // _FDI: Floppy Drive Information
+                {
+                    Zero, 
+                    0x05, 
+                    0x4F, 
+                    0x30, 
+                    One, 
+                    0xAF, 
+                    0x02, 
+                    0x25, 
+                    0x02, 
+                    0x12, 
+                    0x1B, 
+                    0xFF, 
+                    0x6C, 
+                    0xF6, 
+                    0x0F, 
+                    0x08
+                })
+            }
+
+            Name (_FDE, Buffer (0x14)  // _FDE: Floppy Disk Enumerate
+            {
+                /* 0000 */  0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,  // ........
+                /* 0008 */  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,  // ........
+                /* 0010 */  0x02, 0x00, 0x00, 0x00                           // ....
+            })
+        }
+
+        Device (LPT1)
+        {
+            Name (_HID, EisaId ("PNP0400") /* Standard LPT Parallel Port */)  // _HID: Hardware ID
+            Name (_UID, One)  // _UID: Unique ID
+            Name (_STA, 0x0F)  // _STA: Status
+            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+            {
+                IO (Decode16,
+                    0x0378,             // Range Minimum
+                    0x0378,             // Range Maximum
+                    0x08,               // Alignment
+                    0x08,               // Length
+                    )
+                IRQNoFlags ()
+                    {7}
+            })
+        }
+
+        Device (COM1)
+        {
+            Name (_HID, EisaId ("PNP0501") /* 16550A-compatible COM Serial Port */)  // _HID: Hardware ID
+            Name (_UID, One)  // _UID: Unique ID
+            Name (_STA, 0x0F)  // _STA: Status
+            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+            {
+                IO (Decode16,
+                    0x03F8,             // Range Minimum
+                    0x03F8,             // Range Maximum
+                    0x00,               // Alignment
+                    0x08,               // Length
+                    )
+                IRQNoFlags ()
+                    {4}
+            })
+        }
+
+        Device (RTC)
+        {
+            Name (_HID, EisaId ("PNP0B00") /* AT Real-Time Clock */)  // _HID: Hardware ID
+            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+            {
+                IO (Decode16,
+                    0x0070,             // Range Minimum
+                    0x0070,             // Range Maximum
+                    0x01,               // Alignment
+                    0x08,               // Length
+                    )
+                IRQNoFlags ()
+                    {8}
+            })
+        }
+    }
+
+    Scope (_SB.PCI0)
+    {
+        OperationRegion (PCST, SystemIO, 0xAE00, 0x08)
+        Field (PCST, DWordAcc, NoLock, WriteAsZeros)
+        {
+            PCIU,   32, 
+            PCID,   32
+        }
+
+        OperationRegion (SEJ, SystemIO, 0xAE08, 0x04)
+        Field (SEJ, DWordAcc, NoLock, WriteAsZeros)
+        {
+            B0EJ,   32
+        }
+
+        OperationRegion (BNMR, SystemIO, 0xAE10, 0x04)
+        Field (BNMR, DWordAcc, NoLock, WriteAsZeros)
+        {
+            BNUM,   32
+        }
+
+        Mutex (BLCK, 0x00)
+        Method (PCEJ, 2, NotSerialized)
+        {
+            Acquire (BLCK, 0xFFFF)
+            BNUM = Arg0
+            B0EJ = (One << Arg1)
+            Release (BLCK)
+            Return (Zero)
+        }
+    }
+
+    Scope (_SB)
+    {
+        Scope (PCI0)
+        {
+            Method (_PRT, 0, NotSerialized)  // _PRT: PCI Routing Table
+            {
+                Local0 = Package (0x80){}
+                Local1 = Zero
+                While ((Local1 < 0x80))
+                {
+                    Local2 = (Local1 >> 0x02)
+                    Local3 = ((Local1 + Local2) & 0x03)
+                    If ((Local3 == Zero))
+                    {
+                        Local4 = Package (0x04)
+                            {
+                                Zero, 
+                                Zero, 
+                                LNKD, 
+                                Zero
+                            }
+                    }
+
+                    If ((Local3 == One))
+                    {
+                        If ((Local1 == 0x04))
+                        {
+                            Local4 = Package (0x04)
+                                {
+                                    Zero, 
+                                    Zero, 
+                                    LNKS, 
+                                    Zero
+                                }
+                        }
+                        Else
+                        {
+                            Local4 = Package (0x04)
+                                {
+                                    Zero, 
+                                    Zero, 
+                                    LNKA, 
+                                    Zero
+                                }
+                        }
+                    }
+
+                    If ((Local3 == 0x02))
+                    {
+                        Local4 = Package (0x04)
+                            {
+                                Zero, 
+                                Zero, 
+                                LNKB, 
+                                Zero
+                            }
+                    }
+
+                    If ((Local3 == 0x03))
+                    {
+                        Local4 = Package (0x04)
+                            {
+                                Zero, 
+                                Zero, 
+                                LNKC, 
+                                Zero
+                            }
+                    }
+
+                    Local4 [Zero] = ((Local2 << 0x10) | 0xFFFF)
+                    Local4 [One] = (Local1 & 0x03)
+                    Local0 [Local1] = Local4
+                    Local1++
+                }
+
+                Return (Local0)
+            }
+        }
+
+        Field (PCI0.ISA.P40C, ByteAcc, NoLock, Preserve)
+        {
+            PRQ0,   8, 
+            PRQ1,   8, 
+            PRQ2,   8, 
+            PRQ3,   8
+        }
+
+        Method (IQST, 1, NotSerialized)
+        {
+            If ((0x80 & Arg0))
+            {
+                Return (0x09)
+            }
+
+            Return (0x0B)
+        }
+
+        Method (IQCR, 1, Serialized)
+        {
+            Name (PRR0, ResourceTemplate ()
+            {
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, _Y00)
+                {
+                    0x00000000,
+                }
+            })
+            CreateDWordField (PRR0, \_SB.IQCR._Y00._INT, PRRI)  // _INT: Interrupts
+            If ((Arg0 < 0x80))
+            {
+                PRRI = Arg0
+            }
+
+            Return (PRR0) /* \_SB_.IQCR.PRR0 */
+        }
+
+        Device (LNKA)
+        {
+            Name (_HID, EisaId ("PNP0C0F") /* PCI Interrupt Link Device */)  // _HID: Hardware ID
+            Name (_UID, Zero)  // _UID: Unique ID
+            Name (_PRS, ResourceTemplate ()  // _PRS: Possible Resource Settings
+            {
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, )
+                {
+                    0x00000005,
+                    0x0000000A,
+                    0x0000000B,
+                }
+            })
+            Method (_STA, 0, NotSerialized)  // _STA: Status
+            {
+                Return (IQST (PRQ0))
+            }
+
+            Method (_DIS, 0, NotSerialized)  // _DIS: Disable Device
+            {
+                PRQ0 |= 0x80
+            }
+
+            Method (_CRS, 0, NotSerialized)  // _CRS: Current Resource Settings
+            {
+                Return (IQCR (PRQ0))
+            }
+
+            Method (_SRS, 1, NotSerialized)  // _SRS: Set Resource Settings
+            {
+                CreateDWordField (Arg0, 0x05, PRRI)
+                PRQ0 = PRRI /* \_SB_.LNKA._SRS.PRRI */
+            }
+        }
+
+        Device (LNKB)
+        {
+            Name (_HID, EisaId ("PNP0C0F") /* PCI Interrupt Link Device */)  // _HID: Hardware ID
+            Name (_UID, One)  // _UID: Unique ID
+            Name (_PRS, ResourceTemplate ()  // _PRS: Possible Resource Settings
+            {
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, )
+                {
+                    0x00000005,
+                    0x0000000A,
+                    0x0000000B,
+                }
+            })
+            Method (_STA, 0, NotSerialized)  // _STA: Status
+            {
+                Return (IQST (PRQ1))
+            }
+
+            Method (_DIS, 0, NotSerialized)  // _DIS: Disable Device
+            {
+                PRQ1 |= 0x80
+            }
+
+            Method (_CRS, 0, NotSerialized)  // _CRS: Current Resource Settings
+            {
+                Return (IQCR (PRQ1))
+            }
+
+            Method (_SRS, 1, NotSerialized)  // _SRS: Set Resource Settings
+            {
+                CreateDWordField (Arg0, 0x05, PRRI)
+                PRQ1 = PRRI /* \_SB_.LNKB._SRS.PRRI */
+            }
+        }
+
+        Device (LNKC)
+        {
+            Name (_HID, EisaId ("PNP0C0F") /* PCI Interrupt Link Device */)  // _HID: Hardware ID
+            Name (_UID, 0x02)  // _UID: Unique ID
+            Name (_PRS, ResourceTemplate ()  // _PRS: Possible Resource Settings
+            {
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, )
+                {
+                    0x00000005,
+                    0x0000000A,
+                    0x0000000B,
+                }
+            })
+            Method (_STA, 0, NotSerialized)  // _STA: Status
+            {
+                Return (IQST (PRQ2))
+            }
+
+            Method (_DIS, 0, NotSerialized)  // _DIS: Disable Device
+            {
+                PRQ2 |= 0x80
+            }
+
+            Method (_CRS, 0, NotSerialized)  // _CRS: Current Resource Settings
+            {
+                Return (IQCR (PRQ2))
+            }
+
+            Method (_SRS, 1, NotSerialized)  // _SRS: Set Resource Settings
+            {
+                CreateDWordField (Arg0, 0x05, PRRI)
+                PRQ2 = PRRI /* \_SB_.LNKC._SRS.PRRI */
+            }
+        }
+
+        Device (LNKD)
+        {
+            Name (_HID, EisaId ("PNP0C0F") /* PCI Interrupt Link Device */)  // _HID: Hardware ID
+            Name (_UID, 0x03)  // _UID: Unique ID
+            Name (_PRS, ResourceTemplate ()  // _PRS: Possible Resource Settings
+            {
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, )
+                {
+                    0x00000005,
+                    0x0000000A,
+                    0x0000000B,
+                }
+            })
+            Method (_STA, 0, NotSerialized)  // _STA: Status
+            {
+                Return (IQST (PRQ3))
+            }
+
+            Method (_DIS, 0, NotSerialized)  // _DIS: Disable Device
+            {
+                PRQ3 |= 0x80
+            }
+
+            Method (_CRS, 0, NotSerialized)  // _CRS: Current Resource Settings
+            {
+                Return (IQCR (PRQ3))
+            }
+
+            Method (_SRS, 1, NotSerialized)  // _SRS: Set Resource Settings
+            {
+                CreateDWordField (Arg0, 0x05, PRRI)
+                PRQ3 = PRRI /* \_SB_.LNKD._SRS.PRRI */
+            }
+        }
+
+        Device (LNKS)
+        {
+            Name (_HID, EisaId ("PNP0C0F") /* PCI Interrupt Link Device */)  // _HID: Hardware ID
+            Name (_UID, 0x04)  // _UID: Unique ID
+            Name (_PRS, ResourceTemplate ()  // _PRS: Possible Resource Settings
+            {
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, )
+                {
+                    0x00000009,
+                }
+            })
+            Method (_STA, 0, NotSerialized)  // _STA: Status
+            {
+                Return (0x0B)
+            }
+
+            Method (_DIS, 0, NotSerialized)  // _DIS: Disable Device
+            {
+            }
+
+            Method (_CRS, 0, NotSerialized)  // _CRS: Current Resource Settings
+            {
+                Return (_PRS) /* \_SB_.LNKS._PRS */
+            }
+
+            Method (_SRS, 1, NotSerialized)  // _SRS: Set Resource Settings
+            {
+            }
+        }
+    }
+
+    Scope (_SB)
+    {
+        Device (\_SB.PCI0.PRES)
+        {
+            Name (_HID, EisaId ("PNP0A06") /* Generic Container Device */)  // _HID: Hardware ID
+            Name (_UID, "CPU Hotplug resources")  // _UID: Unique ID
+            Mutex (CPLK, 0x00)
+            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+            {
+                IO (Decode16,
+                    0xAF00,             // Range Minimum
+                    0xAF00,             // Range Maximum
+                    0x01,               // Alignment
+                    0x0C,               // Length
+                    )
+            })
+            OperationRegion (PRST, SystemIO, 0xAF00, 0x0C)
+            Field (PRST, ByteAcc, NoLock, WriteAsZeros)
+            {
+                Offset (0x04), 
+                CPEN,   1, 
+                CINS,   1, 
+                CRMV,   1, 
+                CEJ0,   1, 
+                Offset (0x05), 
+                CCMD,   8
+            }
+
+            Field (PRST, DWordAcc, NoLock, Preserve)
+            {
+                CSEL,   32, 
+                Offset (0x08), 
+                CDAT,   32
+            }
+
+            Method (_INI, 0, Serialized)  // _INI: Initialize
+            {
+                CSEL = Zero
+            }
+        }
+
+        Device (\_SB.CPUS)
+        {
+            Name (_HID, "ACPI0010" /* Processor Container Device */)  // _HID: Hardware ID
+            Name (_CID, EisaId ("PNP0A05") /* Generic Container Device */)  // _CID: Compatible ID
+            Method (CTFY, 2, NotSerialized)
+            {
+                If ((Arg0 == Zero))
+                {
+                    Notify (C000, Arg1)
+                }
+
+                If ((Arg0 == One))
+                {
+                    Notify (C001, Arg1)
+                }
+            }
+
+            Method (CSTA, 1, Serialized)
+            {
+                Acquire (\_SB.PCI0.PRES.CPLK, 0xFFFF)
+                \_SB.PCI0.PRES.CSEL = Arg0
+                Local0 = Zero
+                If ((\_SB.PCI0.PRES.CPEN == One))
+                {
+                    Local0 = 0x0F
+                }
+
+                Release (\_SB.PCI0.PRES.CPLK)
+                Return (Local0)
+            }
+
+            Method (CEJ0, 1, Serialized)
+            {
+                Acquire (\_SB.PCI0.PRES.CPLK, 0xFFFF)
+                \_SB.PCI0.PRES.CSEL = Arg0
+                \_SB.PCI0.PRES.CEJ0 = One
+                Release (\_SB.PCI0.PRES.CPLK)
+            }
+
+            Method (CSCN, 0, Serialized)
+            {
+                Acquire (\_SB.PCI0.PRES.CPLK, 0xFFFF)
+                Local0 = One
+                While ((Local0 == One))
+                {
+                    Local0 = Zero
+                    \_SB.PCI0.PRES.CCMD = Zero
+                    If ((\_SB.PCI0.PRES.CINS == One))
+                    {
+                        CTFY (\_SB.PCI0.PRES.CDAT, One)
+                        \_SB.PCI0.PRES.CINS = One
+                        Local0 = One
+                    }
+                    ElseIf ((\_SB.PCI0.PRES.CRMV == One))
+                    {
+                        CTFY (\_SB.PCI0.PRES.CDAT, 0x03)
+                        \_SB.PCI0.PRES.CRMV = One
+                        Local0 = One
+                    }
+                }
+
+                Release (\_SB.PCI0.PRES.CPLK)
+            }
+
+            Method (COST, 4, Serialized)
+            {
+                Acquire (\_SB.PCI0.PRES.CPLK, 0xFFFF)
+                \_SB.PCI0.PRES.CSEL = Arg0
+                \_SB.PCI0.PRES.CCMD = One
+                \_SB.PCI0.PRES.CDAT = Arg1
+                \_SB.PCI0.PRES.CCMD = 0x02
+                \_SB.PCI0.PRES.CDAT = Arg2
+                Release (\_SB.PCI0.PRES.CPLK)
+            }
+
+            Processor (C000, 0x00, 0x00000000, 0x00)
+            {
+                Method (_STA, 0, Serialized)  // _STA: Status
+                {
+                    Return (CSTA (Zero))
+                }
+
+                Name (_MAT, Buffer (0x08)  // _MAT: Multiple APIC Table Entry
+                {
+                     0x00, 0x08, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00   // ........
+                })
+                Method (_OST, 3, Serialized)  // _OST: OSPM Status Indication
+                {
+                    COST (Zero, Arg0, Arg1, Arg2)
+                }
+
+                Name (_PXM, Zero)  // _PXM: Device Proximity
+            }
+
+            Processor (C001, 0x01, 0x00000000, 0x00)
+            {
+                Method (_STA, 0, Serialized)  // _STA: Status
+                {
+                    Return (CSTA (One))
+                }
+
+                Name (_MAT, Buffer (0x08)  // _MAT: Multiple APIC Table Entry
+                {
+                     0x00, 0x08, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00   // ........
+                })
+                Method (_EJ0, 1, NotSerialized)  // _EJx: Eject Device, x=0-9
+                {
+                    CEJ0 (One)
+                }
+
+                Method (_OST, 3, Serialized)  // _OST: OSPM Status Indication
+                {
+                    COST (One, Arg0, Arg1, Arg2)
+                }
+
+                Name (_PXM, Zero)  // _PXM: Device Proximity
+            }
+        }
+    }
+
+    Method (\_GPE._E02, 0, NotSerialized)  // _Exx: Edge-Triggered GPE, xx=0x00-0xFF
+    {
+        \_SB.CPUS.CSCN ()
+    }
+
+    Device (\_SB.PCI0.MHPD)
+    {
+        Name (_HID, "PNP0A06" /* Generic Container Device */)  // _HID: Hardware ID
+        Name (_UID, "Memory hotplug resources")  // _UID: Unique ID
+        Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+        {
+            IO (Decode16,
+                0x0A00,             // Range Minimum
+                0x0A00,             // Range Maximum
+                0x00,               // Alignment
+                0x18,               // Length
+                )
+        })
+        OperationRegion (HPMR, SystemIO, 0x0A00, 0x18)
+    }
+
+    Device (\_SB.MHPC)
+    {
+        Name (_HID, "PNP0A06" /* Generic Container Device */)  // _HID: Hardware ID
+        Name (_UID, "DIMM devices")  // _UID: Unique ID
+        Name (MDNR, 0x02)
+        Field (\_SB.PCI0.MHPD.HPMR, DWordAcc, NoLock, Preserve)
+        {
+            MRBL,   32, 
+            MRBH,   32, 
+            MRLL,   32, 
+            MRLH,   32, 
+            MPX,    32
+        }
+
+        Field (\_SB.PCI0.MHPD.HPMR, ByteAcc, NoLock, WriteAsZeros)
+        {
+            Offset (0x14), 
+            MES,    1, 
+            MINS,   1, 
+            MRMV,   1, 
+            MEJ,    1
+        }
+
+        Field (\_SB.PCI0.MHPD.HPMR, DWordAcc, NoLock, Preserve)
+        {
+            MSEL,   32, 
+            MOEV,   32, 
+            MOSC,   32
+        }
+
+        Method (_STA, 0, NotSerialized)  // _STA: Status
+        {
+            If ((MDNR == Zero))
+            {
+                Return (Zero)
+            }
+
+            Return (0x0B)
+        }
+
+        Mutex (MLCK, 0x00)
+        Method (MSCN, 0, NotSerialized)
+        {
+            If ((MDNR == Zero))
+            {
+                Return (Zero)
+            }
+
+            Local0 = Zero
+            Acquire (MLCK, 0xFFFF)
+            While ((Local0 < MDNR))
+            {
+                MSEL = Local0
+                If ((MINS == One))
+                {
+                    MTFY (Local0, One)
+                    MINS = One
+                }
+                ElseIf ((MRMV == One))
+                {
+                    MTFY (Local0, 0x03)
+                    MRMV = One
+                }
+
+                Local0 += One
+            }
+
+            Release (MLCK)
+            Return (One)
+        }
+
+        Method (MRST, 1, NotSerialized)
+        {
+            Local0 = Zero
+            Acquire (MLCK, 0xFFFF)
+            MSEL = ToInteger (Arg0)
+            If ((MES == One))
+            {
+                Local0 = 0x0F
+            }
+
+            Release (MLCK)
+            Return (Local0)
+        }
+
+        Method (MCRS, 1, Serialized)
+        {
+            Acquire (MLCK, 0xFFFF)
+            MSEL = ToInteger (Arg0)
+            Name (MR64, ResourceTemplate ()
+            {
+                QWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, Cacheable, ReadWrite,
+                    0x0000000000000000, // Granularity
+                    0x0000000000000000, // Range Minimum
+                    0xFFFFFFFFFFFFFFFE, // Range Maximum
+                    0x0000000000000000, // Translation Offset
+                    0xFFFFFFFFFFFFFFFF, // Length
+                    ,, _Y01, AddressRangeMemory, TypeStatic)
+            })
+            CreateDWordField (MR64, \_SB.MHPC.MCRS._Y01._MIN, MINL)  // _MIN: Minimum Base Address
+            CreateDWordField (MR64, 0x12, MINH)
+            CreateDWordField (MR64, \_SB.MHPC.MCRS._Y01._LEN, LENL)  // _LEN: Length
+            CreateDWordField (MR64, 0x2A, LENH)
+            CreateDWordField (MR64, \_SB.MHPC.MCRS._Y01._MAX, MAXL)  // _MAX: Maximum Base Address
+            CreateDWordField (MR64, 0x1A, MAXH)
+            MINH = MRBH /* \_SB_.MHPC.MRBH */
+            MINL = MRBL /* \_SB_.MHPC.MRBL */
+            LENH = MRLH /* \_SB_.MHPC.MRLH */
+            LENL = MRLL /* \_SB_.MHPC.MRLL */
+            MAXL = (MINL + LENL) /* \_SB_.MHPC.MCRS.LENL */
+            MAXH = (MINH + LENH) /* \_SB_.MHPC.MCRS.LENH */
+            If ((MAXL < MINL))
+            {
+                MAXH += One
+            }
+
+            If ((MAXL < One))
+            {
+                MAXH -= One
+            }
+
+            MAXL -= One
+            If ((MAXH == Zero))
+            {
+                Name (MR32, ResourceTemplate ()
+                {
+                    DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, Cacheable, ReadWrite,
+                        0x00000000,         // Granularity
+                        0x00000000,         // Range Minimum
+                        0xFFFFFFFE,         // Range Maximum
+                        0x00000000,         // Translation Offset
+                        0xFFFFFFFF,         // Length
+                        ,, _Y02, AddressRangeMemory, TypeStatic)
+                })
+                CreateDWordField (MR32, \_SB.MHPC.MCRS._Y02._MIN, MIN)  // _MIN: Minimum Base Address
+                CreateDWordField (MR32, \_SB.MHPC.MCRS._Y02._MAX, MAX)  // _MAX: Maximum Base Address
+                CreateDWordField (MR32, \_SB.MHPC.MCRS._Y02._LEN, LEN)  // _LEN: Length
+                MIN = MINL /* \_SB_.MHPC.MCRS.MINL */
+                MAX = MAXL /* \_SB_.MHPC.MCRS.MAXL */
+                LEN = LENL /* \_SB_.MHPC.MCRS.LENL */
+                Release (MLCK)
+                Return (MR32) /* \_SB_.MHPC.MCRS.MR32 */
+            }
+
+            Release (MLCK)
+            Return (MR64) /* \_SB_.MHPC.MCRS.MR64 */
+        }
+
+        Method (MPXM, 1, NotSerialized)
+        {
+            Acquire (MLCK, 0xFFFF)
+            MSEL = ToInteger (Arg0)
+            Local0 = MPX /* \_SB_.MHPC.MPX_ */
+            Release (MLCK)
+            Return (Local0)
+        }
+
+        Method (MOST, 4, NotSerialized)
+        {
+            Acquire (MLCK, 0xFFFF)
+            MSEL = ToInteger (Arg0)
+            MOEV = Arg1
+            MOSC = Arg2
+            Release (MLCK)
+        }
+
+        Method (MEJ0, 2, NotSerialized)
+        {
+            Acquire (MLCK, 0xFFFF)
+            MSEL = ToInteger (Arg0)
+            MEJ = One
+            Release (MLCK)
+        }
+
+        Device (MP00)
+        {
+            Name (_UID, "0x00")  // _UID: Unique ID
+            Name (_HID, EisaId ("PNP0C80") /* Memory Device */)  // _HID: Hardware ID
+            Method (_CRS, 0, NotSerialized)  // _CRS: Current Resource Settings
+            {
+                Return (MCRS (_UID))
+            }
+
+            Method (_STA, 0, NotSerialized)  // _STA: Status
+            {
+                Return (MRST (_UID))
+            }
+
+            Method (_PXM, 0, NotSerialized)  // _PXM: Device Proximity
+            {
+                Return (MPXM (_UID))
+            }
+
+            Method (_OST, 3, NotSerialized)  // _OST: OSPM Status Indication
+            {
+                MOST (_UID, Arg0, Arg1, Arg2)
+            }
+
+            Method (_EJ0, 1, NotSerialized)  // _EJx: Eject Device, x=0-9
+            {
+                MEJ0 (_UID, Arg0)
+            }
+        }
+
+        Device (MP01)
+        {
+            Name (_UID, "0x01")  // _UID: Unique ID
+            Name (_HID, EisaId ("PNP0C80") /* Memory Device */)  // _HID: Hardware ID
+            Method (_CRS, 0, NotSerialized)  // _CRS: Current Resource Settings
+            {
+                Return (MCRS (_UID))
+            }
+
+            Method (_STA, 0, NotSerialized)  // _STA: Status
+            {
+                Return (MRST (_UID))
+            }
+
+            Method (_PXM, 0, NotSerialized)  // _PXM: Device Proximity
+            {
+                Return (MPXM (_UID))
+            }
+
+            Method (_OST, 3, NotSerialized)  // _OST: OSPM Status Indication
+            {
+                MOST (_UID, Arg0, Arg1, Arg2)
+            }
+
+            Method (_EJ0, 1, NotSerialized)  // _EJx: Eject Device, x=0-9
+            {
+                MEJ0 (_UID, Arg0)
+            }
+        }
+
+        Method (MTFY, 2, NotSerialized)
+        {
+            If ((Arg0 == Zero))
+            {
+                Notify (MP00, Arg1)
+            }
+
+            If ((Arg0 == One))
+            {
+                Notify (MP01, Arg1)
+            }
+        }
+    }
+
+    Method (\_GPE._E03, 0, NotSerialized)  // _Exx: Edge-Triggered GPE, xx=0x00-0xFF
+    {
+        \_SB.MHPC.MSCN ()
+    }
+
+    Scope (_GPE)
+    {
+        Name (_HID, "ACPI0006" /* GPE Block Device */)  // _HID: Hardware ID
+        Method (_E01, 0, NotSerialized)  // _Exx: Edge-Triggered GPE, xx=0x00-0xFF
+        {
+            Acquire (\_SB.PCI0.BLCK, 0xFFFF)
+            \_SB.PCI0.PCNT ()
+            Release (\_SB.PCI0.BLCK)
+        }
+    }
+
+    Scope (\_SB.PCI0)
+    {
+        Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+        {
+            WordBusNumber (ResourceProducer, MinFixed, MaxFixed, PosDecode,
+                0x0000,             // Granularity
+                0x0000,             // Range Minimum
+                0x00FF,             // Range Maximum
+                0x0000,             // Translation Offset
+                0x0100,             // Length
+                ,, )
+            IO (Decode16,
+                0x0CF8,             // Range Minimum
+                0x0CF8,             // Range Maximum
+                0x01,               // Alignment
+                0x08,               // Length
+                )
+            WordIO (ResourceProducer, MinFixed, MaxFixed, PosDecode, EntireRange,
+                0x0000,             // Granularity
+                0x0000,             // Range Minimum
+                0x0CF7,             // Range Maximum
+                0x0000,             // Translation Offset
+                0x0CF8,             // Length
+                ,, , TypeStatic, DenseTranslation)
+            WordIO (ResourceProducer, MinFixed, MaxFixed, PosDecode, EntireRange,
+                0x0000,             // Granularity
+                0x0D00,             // Range Minimum
+                0xFFFF,             // Range Maximum
+                0x0000,             // Translation Offset
+                0xF300,             // Length
+                ,, , TypeStatic, DenseTranslation)
+            DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, Cacheable, ReadWrite,
+                0x00000000,         // Granularity
+                0x000A0000,         // Range Minimum
+                0x000BFFFF,         // Range Maximum
+                0x00000000,         // Translation Offset
+                0x00020000,         // Length
+                ,, , AddressRangeMemory, TypeStatic)
+            DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, NonCacheable, ReadWrite,
+                0x00000000,         // Granularity
+                0x08000000,         // Range Minimum
+                0xFEBFFFFF,         // Range Maximum
+                0x00000000,         // Translation Offset
+                0xF6C00000,         // Length
+                ,, , AddressRangeMemory, TypeStatic)
+            QWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, Cacheable, ReadWrite,
+                0x0000000000000000, // Granularity
+                0x00000001C0000000, // Range Minimum
+                0x000000023FFFFFFF, // Range Maximum
+                0x0000000000000000, // Translation Offset
+                0x0000000080000000, // Length
+                ,, , AddressRangeMemory, TypeStatic)
+        })
+        Device (GPE0)
+        {
+            Name (_HID, "PNP0A06" /* Generic Container Device */)  // _HID: Hardware ID
+            Name (_UID, "GPE0 resources")  // _UID: Unique ID
+            Name (_STA, 0x0B)  // _STA: Status
+            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+            {
+                IO (Decode16,
+                    0xAFE0,             // Range Minimum
+                    0xAFE0,             // Range Maximum
+                    0x01,               // Alignment
+                    0x04,               // Length
+                    )
+            })
+        }
+
+        Device (PHPR)
+        {
+            Name (_HID, "PNP0A06" /* Generic Container Device */)  // _HID: Hardware ID
+            Name (_UID, "PCI Hotplug resources")  // _UID: Unique ID
+            Name (_STA, 0x0B)  // _STA: Status
+            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+            {
+                IO (Decode16,
+                    0xAE00,             // Range Minimum
+                    0xAE00,             // Range Maximum
+                    0x01,               // Alignment
+                    0x14,               // Length
+                    )
+            })
+        }
+    }
+
+    Scope (\)
+    {
+        Name (_S3, Package (0x04)  // _S3_: S3 System State
+        {
+            One, 
+            One, 
+            Zero, 
+            Zero
+        })
+        Name (_S4, Package (0x04)  // _S4_: S4 System State
+        {
+            0x02, 
+            0x02, 
+            Zero, 
+            Zero
+        })
+        Name (_S5, Package (0x04)  // _S5_: S5 System State
+        {
+            Zero, 
+            Zero, 
+            Zero, 
+            Zero
+        })
+    }
+
+    Scope (\_SB.PCI0)
+    {
+        Device (FWCF)
+        {
+            Name (_HID, "QEMU0002")  // _HID: Hardware ID
+            Name (_STA, 0x0B)  // _STA: Status
+            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+            {
+                IO (Decode16,
+                    0x0510,             // Range Minimum
+                    0x0510,             // Range Maximum
+                    0x01,               // Alignment
+                    0x0C,               // Length
+                    )
+            })
+        }
+    }
+
+    Scope (\_SB)
+    {
+        Scope (PCI0)
+        {
+            Name (BSEL, Zero)
+            Device (S00)
+            {
+                Name (_ADR, Zero)  // _ADR: Address
+            }
+
+            Device (S10)
+            {
+                Name (_ADR, 0x00020000)  // _ADR: Address
+                Method (_S1D, 0, NotSerialized)  // _S1D: S1 Device State
+                {
+                    Return (Zero)
+                }
+
+                Method (_S2D, 0, NotSerialized)  // _S2D: S2 Device State
+                {
+                    Return (Zero)
+                }
+
+                Method (_S3D, 0, NotSerialized)  // _S3D: S3 Device State
+                {
+                    Return (Zero)
+                }
+            }
+
+            Device (S18)
+            {
+                Name (_SUN, 0x03)  // _SUN: Slot User Number
+                Name (_ADR, 0x00030000)  // _ADR: Address
+                Method (_EJ0, 1, NotSerialized)  // _EJx: Eject Device, x=0-9
+                {
+                    PCEJ (BSEL, _SUN)
+                }
+            }
+
+            Device (S20)
+            {
+                Name (_SUN, 0x04)  // _SUN: Slot User Number
+                Name (_ADR, 0x00040000)  // _ADR: Address
+                Method (_EJ0, 1, NotSerialized)  // _EJx: Eject Device, x=0-9
+                {
+                    PCEJ (BSEL, _SUN)
+                }
+            }
+
+            Device (S28)
+            {
+                Name (_SUN, 0x05)  // _SUN: Slot User Number
+                Name (_ADR, 0x00050000)  // _ADR: Address
+                Method (_EJ0, 1, NotSerialized)  // _EJx: Eject Device, x=0-9
+                {
+                    PCEJ (BSEL, _SUN)
+                }
+            }
+
+            Device (S30)
+            {
+                Name (_SUN, 0x06)  // _SUN: Slot User Number
+                Name (_ADR, 0x00060000)  // _ADR: Address
+                Method (_EJ0, 1, NotSerialized)  // _EJx: Eject Device, x=0-9
+                {
+                    PCEJ (BSEL, _SUN)
+                }
+            }
+
+            Device (S38)
+            {
+                Name (_SUN, 0x07)  // _SUN: Slot User Number
+                Name (_ADR, 0x00070000)  // _ADR: Address
+                Method (_EJ0, 1, NotSerialized)  // _EJx: Eject Device, x=0-9
+                {
+                    PCEJ (BSEL, _SUN)
+                }
+            }
+
+            Device (S40)
+            {
+                Name (_SUN, 0x08)  // _SUN: Slot User Number
+                Name (_ADR, 0x00080000)  // _ADR: Address
+                Method (_EJ0, 1, NotSerialized)  // _EJx: Eject Device, x=0-9
+                {
+                    PCEJ (BSEL, _SUN)
+                }
+            }
+
+            Device (S48)
+            {
+                Name (_SUN, 0x09)  // _SUN: Slot User Number
+                Name (_ADR, 0x00090000)  // _ADR: Address
+                Method (_EJ0, 1, NotSerialized)  // _EJx: Eject Device, x=0-9
+                {
+                    PCEJ (BSEL, _SUN)
+                }
+            }
+
+            Device (S50)
+            {
+                Name (_SUN, 0x0A)  // _SUN: Slot User Number
+                Name (_ADR, 0x000A0000)  // _ADR: Address
+                Method (_EJ0, 1, NotSerialized)  // _EJx: Eject Device, x=0-9
+                {
+                    PCEJ (BSEL, _SUN)
+                }
+            }
+
+            Device (S58)
+            {
+                Name (_SUN, 0x0B)  // _SUN: Slot User Number
+                Name (_ADR, 0x000B0000)  // _ADR: Address
+                Method (_EJ0, 1, NotSerialized)  // _EJx: Eject Device, x=0-9
+                {
+                    PCEJ (BSEL, _SUN)
+                }
+            }
+
+            Device (S60)
+            {
+                Name (_SUN, 0x0C)  // _SUN: Slot User Number
+                Name (_ADR, 0x000C0000)  // _ADR: Address
+                Method (_EJ0, 1, NotSerialized)  // _EJx: Eject Device, x=0-9
+                {
+                    PCEJ (BSEL, _SUN)
+                }
+            }
+
+            Device (S68)
+            {
+                Name (_SUN, 0x0D)  // _SUN: Slot User Number
+                Name (_ADR, 0x000D0000)  // _ADR: Address
+                Method (_EJ0, 1, NotSerialized)  // _EJx: Eject Device, x=0-9
+                {
+                    PCEJ (BSEL, _SUN)
+                }
+            }
+
+            Device (S70)
+            {
+                Name (_SUN, 0x0E)  // _SUN: Slot User Number
+                Name (_ADR, 0x000E0000)  // _ADR: Address
+                Method (_EJ0, 1, NotSerialized)  // _EJx: Eject Device, x=0-9
+                {
+                    PCEJ (BSEL, _SUN)
+                }
+            }
+
+            Device (S78)
+            {
+                Name (_SUN, 0x0F)  // _SUN: Slot User Number
+                Name (_ADR, 0x000F0000)  // _ADR: Address
+                Method (_EJ0, 1, NotSerialized)  // _EJx: Eject Device, x=0-9
+                {
+                    PCEJ (BSEL, _SUN)
+                }
+            }
+
+            Device (S80)
+            {
+                Name (_SUN, 0x10)  // _SUN: Slot User Number
+                Name (_ADR, 0x00100000)  // _ADR: Address
+                Method (_EJ0, 1, NotSerialized)  // _EJx: Eject Device, x=0-9
+                {
+                    PCEJ (BSEL, _SUN)
+                }
+            }
+
+            Device (S88)
+            {
+                Name (_SUN, 0x11)  // _SUN: Slot User Number
+                Name (_ADR, 0x00110000)  // _ADR: Address
+                Method (_EJ0, 1, NotSerialized)  // _EJx: Eject Device, x=0-9
+                {
+                    PCEJ (BSEL, _SUN)
+                }
+            }
+
+            Device (S90)
+            {
+                Name (_SUN, 0x12)  // _SUN: Slot User Number
+                Name (_ADR, 0x00120000)  // _ADR: Address
+                Method (_EJ0, 1, NotSerialized)  // _EJx: Eject Device, x=0-9
+                {
+                    PCEJ (BSEL, _SUN)
+                }
+            }
+
+            Device (S98)
+            {
+                Name (_SUN, 0x13)  // _SUN: Slot User Number
+                Name (_ADR, 0x00130000)  // _ADR: Address
+                Method (_EJ0, 1, NotSerialized)  // _EJx: Eject Device, x=0-9
+                {
+                    PCEJ (BSEL, _SUN)
+                }
+            }
+
+            Device (SA0)
+            {
+                Name (_SUN, 0x14)  // _SUN: Slot User Number
+                Name (_ADR, 0x00140000)  // _ADR: Address
+                Method (_EJ0, 1, NotSerialized)  // _EJx: Eject Device, x=0-9
+                {
+                    PCEJ (BSEL, _SUN)
+                }
+            }
+
+            Device (SA8)
+            {
+                Name (_SUN, 0x15)  // _SUN: Slot User Number
+                Name (_ADR, 0x00150000)  // _ADR: Address
+                Method (_EJ0, 1, NotSerialized)  // _EJx: Eject Device, x=0-9
+                {
+                    PCEJ (BSEL, _SUN)
+                }
+            }
+
+            Device (SB0)
+            {
+                Name (_SUN, 0x16)  // _SUN: Slot User Number
+                Name (_ADR, 0x00160000)  // _ADR: Address
+                Method (_EJ0, 1, NotSerialized)  // _EJx: Eject Device, x=0-9
+                {
+                    PCEJ (BSEL, _SUN)
+                }
+            }
+
+            Device (SB8)
+            {
+                Name (_SUN, 0x17)  // _SUN: Slot User Number
+                Name (_ADR, 0x00170000)  // _ADR: Address
+                Method (_EJ0, 1, NotSerialized)  // _EJx: Eject Device, x=0-9
+                {
+                    PCEJ (BSEL, _SUN)
+                }
+            }
+
+            Device (SC0)
+            {
+                Name (_SUN, 0x18)  // _SUN: Slot User Number
+                Name (_ADR, 0x00180000)  // _ADR: Address
+                Method (_EJ0, 1, NotSerialized)  // _EJx: Eject Device, x=0-9
+                {
+                    PCEJ (BSEL, _SUN)
+                }
+            }
+
+            Device (SC8)
+            {
+                Name (_SUN, 0x19)  // _SUN: Slot User Number
+                Name (_ADR, 0x00190000)  // _ADR: Address
+                Method (_EJ0, 1, NotSerialized)  // _EJx: Eject Device, x=0-9
+                {
+                    PCEJ (BSEL, _SUN)
+                }
+            }
+
+            Device (SD0)
+            {
+                Name (_SUN, 0x1A)  // _SUN: Slot User Number
+                Name (_ADR, 0x001A0000)  // _ADR: Address
+                Method (_EJ0, 1, NotSerialized)  // _EJx: Eject Device, x=0-9
+                {
+                    PCEJ (BSEL, _SUN)
+                }
+            }
+
+            Device (SD8)
+            {
+                Name (_SUN, 0x1B)  // _SUN: Slot User Number
+                Name (_ADR, 0x001B0000)  // _ADR: Address
+                Method (_EJ0, 1, NotSerialized)  // _EJx: Eject Device, x=0-9
+                {
+                    PCEJ (BSEL, _SUN)
+                }
+            }
+
+            Device (SE0)
+            {
+                Name (_SUN, 0x1C)  // _SUN: Slot User Number
+                Name (_ADR, 0x001C0000)  // _ADR: Address
+                Method (_EJ0, 1, NotSerialized)  // _EJx: Eject Device, x=0-9
+                {
+                    PCEJ (BSEL, _SUN)
+                }
+            }
+
+            Device (SE8)
+            {
+                Name (_SUN, 0x1D)  // _SUN: Slot User Number
+                Name (_ADR, 0x001D0000)  // _ADR: Address
+                Method (_EJ0, 1, NotSerialized)  // _EJx: Eject Device, x=0-9
+                {
+                    PCEJ (BSEL, _SUN)
+                }
+            }
+
+            Device (SF0)
+            {
+                Name (_SUN, 0x1E)  // _SUN: Slot User Number
+                Name (_ADR, 0x001E0000)  // _ADR: Address
+                Method (_EJ0, 1, NotSerialized)  // _EJx: Eject Device, x=0-9
+                {
+                    PCEJ (BSEL, _SUN)
+                }
+            }
+
+            Device (SF8)
+            {
+                Name (_SUN, 0x1F)  // _SUN: Slot User Number
+                Name (_ADR, 0x001F0000)  // _ADR: Address
+                Method (_EJ0, 1, NotSerialized)  // _EJx: Eject Device, x=0-9
+                {
+                    PCEJ (BSEL, _SUN)
+                }
+            }
+
+            Method (DVNT, 2, NotSerialized)
+            {
+                If ((Arg0 & 0x08))
+                {
+                    Notify (S18, Arg1)
+                }
+
+                If ((Arg0 & 0x10))
+                {
+                    Notify (S20, Arg1)
+                }
+
+                If ((Arg0 & 0x20))
+                {
+                    Notify (S28, Arg1)
+                }
+
+                If ((Arg0 & 0x40))
+                {
+                    Notify (S30, Arg1)
+                }
+
+                If ((Arg0 & 0x80))
+                {
+                    Notify (S38, Arg1)
+                }
+
+                If ((Arg0 & 0x0100))
+                {
+                    Notify (S40, Arg1)
+                }
+
+                If ((Arg0 & 0x0200))
+                {
+                    Notify (S48, Arg1)
+                }
+
+                If ((Arg0 & 0x0400))
+                {
+                    Notify (S50, Arg1)
+                }
+
+                If ((Arg0 & 0x0800))
+                {
+                    Notify (S58, Arg1)
+                }
+
+                If ((Arg0 & 0x1000))
+                {
+                    Notify (S60, Arg1)
+                }
+
+                If ((Arg0 & 0x2000))
+                {
+                    Notify (S68, Arg1)
+                }
+
+                If ((Arg0 & 0x4000))
+                {
+                    Notify (S70, Arg1)
+                }
+
+                If ((Arg0 & 0x8000))
+                {
+                    Notify (S78, Arg1)
+                }
+
+                If ((Arg0 & 0x00010000))
+                {
+                    Notify (S80, Arg1)
+                }
+
+                If ((Arg0 & 0x00020000))
+                {
+                    Notify (S88, Arg1)
+                }
+
+                If ((Arg0 & 0x00040000))
+                {
+                    Notify (S90, Arg1)
+                }
+
+                If ((Arg0 & 0x00080000))
+                {
+                    Notify (S98, Arg1)
+                }
+
+                If ((Arg0 & 0x00100000))
+                {
+                    Notify (SA0, Arg1)
+                }
+
+                If ((Arg0 & 0x00200000))
+                {
+                    Notify (SA8, Arg1)
+                }
+
+                If ((Arg0 & 0x00400000))
+                {
+                    Notify (SB0, Arg1)
+                }
+
+                If ((Arg0 & 0x00800000))
+                {
+                    Notify (SB8, Arg1)
+                }
+
+                If ((Arg0 & 0x01000000))
+                {
+                    Notify (SC0, Arg1)
+                }
+
+                If ((Arg0 & 0x02000000))
+                {
+                    Notify (SC8, Arg1)
+                }
+
+                If ((Arg0 & 0x04000000))
+                {
+                    Notify (SD0, Arg1)
+                }
+
+                If ((Arg0 & 0x08000000))
+                {
+                    Notify (SD8, Arg1)
+                }
+
+                If ((Arg0 & 0x10000000))
+                {
+                    Notify (SE0, Arg1)
+                }
+
+                If ((Arg0 & 0x20000000))
+                {
+                    Notify (SE8, Arg1)
+                }
+
+                If ((Arg0 & 0x40000000))
+                {
+                    Notify (SF0, Arg1)
+                }
+
+                If ((Arg0 & 0x80000000))
+                {
+                    Notify (SF8, Arg1)
+                }
+            }
+
+            Method (PCNT, 0, NotSerialized)
+            {
+                BNUM = Zero
+                DVNT (PCIU, One)
+                DVNT (PCID, 0x03)
+            }
+        }
+    }
+}
+
diff --git a/tests/data/acpi/pc/DSDT.bridge.dsl b/tests/data/acpi/pc/DSDT.bridge.dsl
new file mode 100644
index 0000000000..3311b57ecb
--- /dev/null
+++ b/tests/data/acpi/pc/DSDT.bridge.dsl
@@ -0,0 +1,1800 @@ 
+/*
+ * Intel ACPI Component Architecture
+ * AML/ASL+ Disassembler version 20190509 (64-bit version)
+ * Copyright (c) 2000 - 2019 Intel Corporation
+ * 
+ * Disassembling to symbolic ASL+ operators
+ *
+ * Disassembly of tests/data/acpi/pc/DSDT.bridge, Tue Aug  4 11:14:15 2020
+ *
+ * Original Table Header:
+ *     Signature        "DSDT"
+ *     Length           0x00001A89 (6793)
+ *     Revision         0x01 **** 32-bit table (V1), no 64-bit math support
+ *     Checksum         0x09
+ *     OEM ID           "BOCHS "
+ *     OEM Table ID     "BXPCDSDT"
+ *     OEM Revision     0x00000001 (1)
+ *     Compiler ID      "BXPC"
+ *     Compiler Version 0x00000001 (1)
+ */
+DefinitionBlock ("", "DSDT", 1, "BOCHS ", "BXPCDSDT", 0x00000001)
+{
+    Scope (\)
+    {
+        OperationRegion (DBG, SystemIO, 0x0402, One)
+        Field (DBG, ByteAcc, NoLock, Preserve)
+        {
+            DBGB,   8
+        }
+
+        Method (DBUG, 1, NotSerialized)
+        {
+            ToHexString (Arg0, Local0)
+            ToBuffer (Local0, Local0)
+            Local1 = (SizeOf (Local0) - One)
+            Local2 = Zero
+            While ((Local2 < Local1))
+            {
+                DBGB = DerefOf (Local0 [Local2])
+                Local2++
+            }
+
+            DBGB = 0x0A
+        }
+    }
+
+    Scope (_SB)
+    {
+        Device (PCI0)
+        {
+            Name (_HID, EisaId ("PNP0A03") /* PCI Bus */)  // _HID: Hardware ID
+            Name (_ADR, Zero)  // _ADR: Address
+            Name (_UID, Zero)  // _UID: Unique ID
+        }
+    }
+
+    Scope (_SB)
+    {
+        Device (HPET)
+        {
+            Name (_HID, EisaId ("PNP0103") /* HPET System Timer */)  // _HID: Hardware ID
+            Name (_UID, Zero)  // _UID: Unique ID
+            OperationRegion (HPTM, SystemMemory, 0xFED00000, 0x0400)
+            Field (HPTM, DWordAcc, Lock, Preserve)
+            {
+                VEND,   32, 
+                PRD,    32
+            }
+
+            Method (_STA, 0, NotSerialized)  // _STA: Status
+            {
+                Local0 = VEND /* \_SB_.HPET.VEND */
+                Local1 = PRD /* \_SB_.HPET.PRD_ */
+                Local0 >>= 0x10
+                If (((Local0 == Zero) || (Local0 == 0xFFFF)))
+                {
+                    Return (Zero)
+                }
+
+                If (((Local1 == Zero) || (Local1 > 0x05F5E100)))
+                {
+                    Return (Zero)
+                }
+
+                Return (0x0F)
+            }
+
+            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+            {
+                Memory32Fixed (ReadOnly,
+                    0xFED00000,         // Address Base
+                    0x00000400,         // Address Length
+                    )
+            })
+        }
+    }
+
+    Scope (_SB.PCI0)
+    {
+        Device (ISA)
+        {
+            Name (_ADR, 0x00010000)  // _ADR: Address
+            OperationRegion (P40C, PCI_Config, 0x60, 0x04)
+        }
+    }
+
+    Scope (_SB.PCI0.ISA)
+    {
+        Device (KBD)
+        {
+            Name (_HID, EisaId ("PNP0303") /* IBM Enhanced Keyboard (101/102-key, PS/2 Mouse) */)  // _HID: Hardware ID
+            Name (_STA, 0x0F)  // _STA: Status
+            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+            {
+                IO (Decode16,
+                    0x0060,             // Range Minimum
+                    0x0060,             // Range Maximum
+                    0x01,               // Alignment
+                    0x01,               // Length
+                    )
+                IO (Decode16,
+                    0x0064,             // Range Minimum
+                    0x0064,             // Range Maximum
+                    0x01,               // Alignment
+                    0x01,               // Length
+                    )
+                IRQNoFlags ()
+                    {1}
+            })
+        }
+
+        Device (MOU)
+        {
+            Name (_HID, EisaId ("PNP0F13") /* PS/2 Mouse */)  // _HID: Hardware ID
+            Name (_STA, 0x0F)  // _STA: Status
+            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+            {
+                IRQNoFlags ()
+                    {12}
+            })
+        }
+
+        Device (FDC0)
+        {
+            Name (_HID, EisaId ("PNP0700"))  // _HID: Hardware ID
+            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+            {
+                IO (Decode16,
+                    0x03F2,             // Range Minimum
+                    0x03F2,             // Range Maximum
+                    0x00,               // Alignment
+                    0x04,               // Length
+                    )
+                IO (Decode16,
+                    0x03F7,             // Range Minimum
+                    0x03F7,             // Range Maximum
+                    0x00,               // Alignment
+                    0x01,               // Length
+                    )
+                IRQNoFlags ()
+                    {6}
+                DMA (Compatibility, NotBusMaster, Transfer8, )
+                    {2}
+            })
+            Device (FLPA)
+            {
+                Name (_ADR, Zero)  // _ADR: Address
+                Name (_FDI, Package (0x10)  // _FDI: Floppy Drive Information
+                {
+                    Zero, 
+                    0x05, 
+                    0x4F, 
+                    0x30, 
+                    One, 
+                    0xAF, 
+                    0x02, 
+                    0x25, 
+                    0x02, 
+                    0x12, 
+                    0x1B, 
+                    0xFF, 
+                    0x6C, 
+                    0xF6, 
+                    0x0F, 
+                    0x08
+                })
+            }
+
+            Name (_FDE, Buffer (0x14)  // _FDE: Floppy Disk Enumerate
+            {
+                /* 0000 */  0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,  // ........
+                /* 0008 */  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,  // ........
+                /* 0010 */  0x02, 0x00, 0x00, 0x00                           // ....
+            })
+        }
+
+        Device (LPT1)
+        {
+            Name (_HID, EisaId ("PNP0400") /* Standard LPT Parallel Port */)  // _HID: Hardware ID
+            Name (_UID, One)  // _UID: Unique ID
+            Name (_STA, 0x0F)  // _STA: Status
+            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+            {
+                IO (Decode16,
+                    0x0378,             // Range Minimum
+                    0x0378,             // Range Maximum
+                    0x08,               // Alignment
+                    0x08,               // Length
+                    )
+                IRQNoFlags ()
+                    {7}
+            })
+        }
+
+        Device (COM1)
+        {
+            Name (_HID, EisaId ("PNP0501") /* 16550A-compatible COM Serial Port */)  // _HID: Hardware ID
+            Name (_UID, One)  // _UID: Unique ID
+            Name (_STA, 0x0F)  // _STA: Status
+            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+            {
+                IO (Decode16,
+                    0x03F8,             // Range Minimum
+                    0x03F8,             // Range Maximum
+                    0x00,               // Alignment
+                    0x08,               // Length
+                    )
+                IRQNoFlags ()
+                    {4}
+            })
+        }
+
+        Device (RTC)
+        {
+            Name (_HID, EisaId ("PNP0B00") /* AT Real-Time Clock */)  // _HID: Hardware ID
+            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+            {
+                IO (Decode16,
+                    0x0070,             // Range Minimum
+                    0x0070,             // Range Maximum
+                    0x01,               // Alignment
+                    0x08,               // Length
+                    )
+                IRQNoFlags ()
+                    {8}
+            })
+        }
+    }
+
+    Scope (_SB.PCI0)
+    {
+        OperationRegion (PCST, SystemIO, 0xAE00, 0x08)
+        Field (PCST, DWordAcc, NoLock, WriteAsZeros)
+        {
+            PCIU,   32, 
+            PCID,   32
+        }
+
+        OperationRegion (SEJ, SystemIO, 0xAE08, 0x04)
+        Field (SEJ, DWordAcc, NoLock, WriteAsZeros)
+        {
+            B0EJ,   32
+        }
+
+        OperationRegion (BNMR, SystemIO, 0xAE10, 0x04)
+        Field (BNMR, DWordAcc, NoLock, WriteAsZeros)
+        {
+            BNUM,   32
+        }
+
+        Mutex (BLCK, 0x00)
+        Method (PCEJ, 2, NotSerialized)
+        {
+            Acquire (BLCK, 0xFFFF)
+            BNUM = Arg0
+            B0EJ = (One << Arg1)
+            Release (BLCK)
+            Return (Zero)
+        }
+    }
+
+    Scope (_SB)
+    {
+        Scope (PCI0)
+        {
+            Method (_PRT, 0, NotSerialized)  // _PRT: PCI Routing Table
+            {
+                Local0 = Package (0x80){}
+                Local1 = Zero
+                While ((Local1 < 0x80))
+                {
+                    Local2 = (Local1 >> 0x02)
+                    Local3 = ((Local1 + Local2) & 0x03)
+                    If ((Local3 == Zero))
+                    {
+                        Local4 = Package (0x04)
+                            {
+                                Zero, 
+                                Zero, 
+                                LNKD, 
+                                Zero
+                            }
+                    }
+
+                    If ((Local3 == One))
+                    {
+                        If ((Local1 == 0x04))
+                        {
+                            Local4 = Package (0x04)
+                                {
+                                    Zero, 
+                                    Zero, 
+                                    LNKS, 
+                                    Zero
+                                }
+                        }
+                        Else
+                        {
+                            Local4 = Package (0x04)
+                                {
+                                    Zero, 
+                                    Zero, 
+                                    LNKA, 
+                                    Zero
+                                }
+                        }
+                    }
+
+                    If ((Local3 == 0x02))
+                    {
+                        Local4 = Package (0x04)
+                            {
+                                Zero, 
+                                Zero, 
+                                LNKB, 
+                                Zero
+                            }
+                    }
+
+                    If ((Local3 == 0x03))
+                    {
+                        Local4 = Package (0x04)
+                            {
+                                Zero, 
+                                Zero, 
+                                LNKC, 
+                                Zero
+                            }
+                    }
+
+                    Local4 [Zero] = ((Local2 << 0x10) | 0xFFFF)
+                    Local4 [One] = (Local1 & 0x03)
+                    Local0 [Local1] = Local4
+                    Local1++
+                }
+
+                Return (Local0)
+            }
+        }
+
+        Field (PCI0.ISA.P40C, ByteAcc, NoLock, Preserve)
+        {
+            PRQ0,   8, 
+            PRQ1,   8, 
+            PRQ2,   8, 
+            PRQ3,   8
+        }
+
+        Method (IQST, 1, NotSerialized)
+        {
+            If ((0x80 & Arg0))
+            {
+                Return (0x09)
+            }
+
+            Return (0x0B)
+        }
+
+        Method (IQCR, 1, Serialized)
+        {
+            Name (PRR0, ResourceTemplate ()
+            {
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, _Y00)
+                {
+                    0x00000000,
+                }
+            })
+            CreateDWordField (PRR0, \_SB.IQCR._Y00._INT, PRRI)  // _INT: Interrupts
+            If ((Arg0 < 0x80))
+            {
+                PRRI = Arg0
+            }
+
+            Return (PRR0) /* \_SB_.IQCR.PRR0 */
+        }
+
+        Device (LNKA)
+        {
+            Name (_HID, EisaId ("PNP0C0F") /* PCI Interrupt Link Device */)  // _HID: Hardware ID
+            Name (_UID, Zero)  // _UID: Unique ID
+            Name (_PRS, ResourceTemplate ()  // _PRS: Possible Resource Settings
+            {
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, )
+                {
+                    0x00000005,
+                    0x0000000A,
+                    0x0000000B,
+                }
+            })
+            Method (_STA, 0, NotSerialized)  // _STA: Status
+            {
+                Return (IQST (PRQ0))
+            }
+
+            Method (_DIS, 0, NotSerialized)  // _DIS: Disable Device
+            {
+                PRQ0 |= 0x80
+            }
+
+            Method (_CRS, 0, NotSerialized)  // _CRS: Current Resource Settings
+            {
+                Return (IQCR (PRQ0))
+            }
+
+            Method (_SRS, 1, NotSerialized)  // _SRS: Set Resource Settings
+            {
+                CreateDWordField (Arg0, 0x05, PRRI)
+                PRQ0 = PRRI /* \_SB_.LNKA._SRS.PRRI */
+            }
+        }
+
+        Device (LNKB)
+        {
+            Name (_HID, EisaId ("PNP0C0F") /* PCI Interrupt Link Device */)  // _HID: Hardware ID
+            Name (_UID, One)  // _UID: Unique ID
+            Name (_PRS, ResourceTemplate ()  // _PRS: Possible Resource Settings
+            {
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, )
+                {
+                    0x00000005,
+                    0x0000000A,
+                    0x0000000B,
+                }
+            })
+            Method (_STA, 0, NotSerialized)  // _STA: Status
+            {
+                Return (IQST (PRQ1))
+            }
+
+            Method (_DIS, 0, NotSerialized)  // _DIS: Disable Device
+            {
+                PRQ1 |= 0x80
+            }
+
+            Method (_CRS, 0, NotSerialized)  // _CRS: Current Resource Settings
+            {
+                Return (IQCR (PRQ1))
+            }
+
+            Method (_SRS, 1, NotSerialized)  // _SRS: Set Resource Settings
+            {
+                CreateDWordField (Arg0, 0x05, PRRI)
+                PRQ1 = PRRI /* \_SB_.LNKB._SRS.PRRI */
+            }
+        }
+
+        Device (LNKC)
+        {
+            Name (_HID, EisaId ("PNP0C0F") /* PCI Interrupt Link Device */)  // _HID: Hardware ID
+            Name (_UID, 0x02)  // _UID: Unique ID
+            Name (_PRS, ResourceTemplate ()  // _PRS: Possible Resource Settings
+            {
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, )
+                {
+                    0x00000005,
+                    0x0000000A,
+                    0x0000000B,
+                }
+            })
+            Method (_STA, 0, NotSerialized)  // _STA: Status
+            {
+                Return (IQST (PRQ2))
+            }
+
+            Method (_DIS, 0, NotSerialized)  // _DIS: Disable Device
+            {
+                PRQ2 |= 0x80
+            }
+
+            Method (_CRS, 0, NotSerialized)  // _CRS: Current Resource Settings
+            {
+                Return (IQCR (PRQ2))
+            }
+
+            Method (_SRS, 1, NotSerialized)  // _SRS: Set Resource Settings
+            {
+                CreateDWordField (Arg0, 0x05, PRRI)
+                PRQ2 = PRRI /* \_SB_.LNKC._SRS.PRRI */
+            }
+        }
+
+        Device (LNKD)
+        {
+            Name (_HID, EisaId ("PNP0C0F") /* PCI Interrupt Link Device */)  // _HID: Hardware ID
+            Name (_UID, 0x03)  // _UID: Unique ID
+            Name (_PRS, ResourceTemplate ()  // _PRS: Possible Resource Settings
+            {
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, )
+                {
+                    0x00000005,
+                    0x0000000A,
+                    0x0000000B,
+                }
+            })
+            Method (_STA, 0, NotSerialized)  // _STA: Status
+            {
+                Return (IQST (PRQ3))
+            }
+
+            Method (_DIS, 0, NotSerialized)  // _DIS: Disable Device
+            {
+                PRQ3 |= 0x80
+            }
+
+            Method (_CRS, 0, NotSerialized)  // _CRS: Current Resource Settings
+            {
+                Return (IQCR (PRQ3))
+            }
+
+            Method (_SRS, 1, NotSerialized)  // _SRS: Set Resource Settings
+            {
+                CreateDWordField (Arg0, 0x05, PRRI)
+                PRQ3 = PRRI /* \_SB_.LNKD._SRS.PRRI */
+            }
+        }
+
+        Device (LNKS)
+        {
+            Name (_HID, EisaId ("PNP0C0F") /* PCI Interrupt Link Device */)  // _HID: Hardware ID
+            Name (_UID, 0x04)  // _UID: Unique ID
+            Name (_PRS, ResourceTemplate ()  // _PRS: Possible Resource Settings
+            {
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, )
+                {
+                    0x00000009,
+                }
+            })
+            Method (_STA, 0, NotSerialized)  // _STA: Status
+            {
+                Return (0x0B)
+            }
+
+            Method (_DIS, 0, NotSerialized)  // _DIS: Disable Device
+            {
+            }
+
+            Method (_CRS, 0, NotSerialized)  // _CRS: Current Resource Settings
+            {
+                Return (_PRS) /* \_SB_.LNKS._PRS */
+            }
+
+            Method (_SRS, 1, NotSerialized)  // _SRS: Set Resource Settings
+            {
+            }
+        }
+    }
+
+    Scope (_SB)
+    {
+        Device (\_SB.PCI0.PRES)
+        {
+            Name (_HID, EisaId ("PNP0A06") /* Generic Container Device */)  // _HID: Hardware ID
+            Name (_UID, "CPU Hotplug resources")  // _UID: Unique ID
+            Mutex (CPLK, 0x00)
+            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+            {
+                IO (Decode16,
+                    0xAF00,             // Range Minimum
+                    0xAF00,             // Range Maximum
+                    0x01,               // Alignment
+                    0x0C,               // Length
+                    )
+            })
+            OperationRegion (PRST, SystemIO, 0xAF00, 0x0C)
+            Field (PRST, ByteAcc, NoLock, WriteAsZeros)
+            {
+                Offset (0x04), 
+                CPEN,   1, 
+                CINS,   1, 
+                CRMV,   1, 
+                CEJ0,   1, 
+                Offset (0x05), 
+                CCMD,   8
+            }
+
+            Field (PRST, DWordAcc, NoLock, Preserve)
+            {
+                CSEL,   32, 
+                Offset (0x08), 
+                CDAT,   32
+            }
+
+            Method (_INI, 0, Serialized)  // _INI: Initialize
+            {
+                CSEL = Zero
+            }
+        }
+
+        Device (\_SB.CPUS)
+        {
+            Name (_HID, "ACPI0010" /* Processor Container Device */)  // _HID: Hardware ID
+            Name (_CID, EisaId ("PNP0A05") /* Generic Container Device */)  // _CID: Compatible ID
+            Method (CTFY, 2, NotSerialized)
+            {
+                If ((Arg0 == Zero))
+                {
+                    Notify (C000, Arg1)
+                }
+            }
+
+            Method (CSTA, 1, Serialized)
+            {
+                Acquire (\_SB.PCI0.PRES.CPLK, 0xFFFF)
+                \_SB.PCI0.PRES.CSEL = Arg0
+                Local0 = Zero
+                If ((\_SB.PCI0.PRES.CPEN == One))
+                {
+                    Local0 = 0x0F
+                }
+
+                Release (\_SB.PCI0.PRES.CPLK)
+                Return (Local0)
+            }
+
+            Method (CEJ0, 1, Serialized)
+            {
+                Acquire (\_SB.PCI0.PRES.CPLK, 0xFFFF)
+                \_SB.PCI0.PRES.CSEL = Arg0
+                \_SB.PCI0.PRES.CEJ0 = One
+                Release (\_SB.PCI0.PRES.CPLK)
+            }
+
+            Method (CSCN, 0, Serialized)
+            {
+                Acquire (\_SB.PCI0.PRES.CPLK, 0xFFFF)
+                Local0 = One
+                While ((Local0 == One))
+                {
+                    Local0 = Zero
+                    \_SB.PCI0.PRES.CCMD = Zero
+                    If ((\_SB.PCI0.PRES.CINS == One))
+                    {
+                        CTFY (\_SB.PCI0.PRES.CDAT, One)
+                        \_SB.PCI0.PRES.CINS = One
+                        Local0 = One
+                    }
+                    ElseIf ((\_SB.PCI0.PRES.CRMV == One))
+                    {
+                        CTFY (\_SB.PCI0.PRES.CDAT, 0x03)
+                        \_SB.PCI0.PRES.CRMV = One
+                        Local0 = One
+                    }
+                }
+
+                Release (\_SB.PCI0.PRES.CPLK)
+            }
+
+            Method (COST, 4, Serialized)
+            {
+                Acquire (\_SB.PCI0.PRES.CPLK, 0xFFFF)
+                \_SB.PCI0.PRES.CSEL = Arg0
+                \_SB.PCI0.PRES.CCMD = One
+                \_SB.PCI0.PRES.CDAT = Arg1
+                \_SB.PCI0.PRES.CCMD = 0x02
+                \_SB.PCI0.PRES.CDAT = Arg2
+                Release (\_SB.PCI0.PRES.CPLK)
+            }
+
+            Processor (C000, 0x00, 0x00000000, 0x00)
+            {
+                Method (_STA, 0, Serialized)  // _STA: Status
+                {
+                    Return (CSTA (Zero))
+                }
+
+                Name (_MAT, Buffer (0x08)  // _MAT: Multiple APIC Table Entry
+                {
+                     0x00, 0x08, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00   // ........
+                })
+                Method (_OST, 3, Serialized)  // _OST: OSPM Status Indication
+                {
+                    COST (Zero, Arg0, Arg1, Arg2)
+                }
+            }
+        }
+    }
+
+    Method (\_GPE._E02, 0, NotSerialized)  // _Exx: Edge-Triggered GPE, xx=0x00-0xFF
+    {
+        \_SB.CPUS.CSCN ()
+    }
+
+    Scope (_GPE)
+    {
+        Name (_HID, "ACPI0006" /* GPE Block Device */)  // _HID: Hardware ID
+        Method (_E01, 0, NotSerialized)  // _Exx: Edge-Triggered GPE, xx=0x00-0xFF
+        {
+            Acquire (\_SB.PCI0.BLCK, 0xFFFF)
+            \_SB.PCI0.PCNT ()
+            Release (\_SB.PCI0.BLCK)
+        }
+    }
+
+    Scope (\_SB.PCI0)
+    {
+        Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+        {
+            WordBusNumber (ResourceProducer, MinFixed, MaxFixed, PosDecode,
+                0x0000,             // Granularity
+                0x0000,             // Range Minimum
+                0x00FF,             // Range Maximum
+                0x0000,             // Translation Offset
+                0x0100,             // Length
+                ,, )
+            IO (Decode16,
+                0x0CF8,             // Range Minimum
+                0x0CF8,             // Range Maximum
+                0x01,               // Alignment
+                0x08,               // Length
+                )
+            WordIO (ResourceProducer, MinFixed, MaxFixed, PosDecode, EntireRange,
+                0x0000,             // Granularity
+                0x0000,             // Range Minimum
+                0x0CF7,             // Range Maximum
+                0x0000,             // Translation Offset
+                0x0CF8,             // Length
+                ,, , TypeStatic, DenseTranslation)
+            WordIO (ResourceProducer, MinFixed, MaxFixed, PosDecode, EntireRange,
+                0x0000,             // Granularity
+                0x0D00,             // Range Minimum
+                0xFFFF,             // Range Maximum
+                0x0000,             // Translation Offset
+                0xF300,             // Length
+                ,, , TypeStatic, DenseTranslation)
+            DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, Cacheable, ReadWrite,
+                0x00000000,         // Granularity
+                0x000A0000,         // Range Minimum
+                0x000BFFFF,         // Range Maximum
+                0x00000000,         // Translation Offset
+                0x00020000,         // Length
+                ,, , AddressRangeMemory, TypeStatic)
+            DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, NonCacheable, ReadWrite,
+                0x00000000,         // Granularity
+                0x08000000,         // Range Minimum
+                0xFEBFFFFF,         // Range Maximum
+                0x00000000,         // Translation Offset
+                0xF6C00000,         // Length
+                ,, , AddressRangeMemory, TypeStatic)
+            QWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, Cacheable, ReadWrite,
+                0x0000000000000000, // Granularity
+                0x0000000100000000, // Range Minimum
+                0x000000017FFFFFFF, // Range Maximum
+                0x0000000000000000, // Translation Offset
+                0x0000000080000000, // Length
+                ,, , AddressRangeMemory, TypeStatic)
+        })
+        Device (GPE0)
+        {
+            Name (_HID, "PNP0A06" /* Generic Container Device */)  // _HID: Hardware ID
+            Name (_UID, "GPE0 resources")  // _UID: Unique ID
+            Name (_STA, 0x0B)  // _STA: Status
+            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+            {
+                IO (Decode16,
+                    0xAFE0,             // Range Minimum
+                    0xAFE0,             // Range Maximum
+                    0x01,               // Alignment
+                    0x04,               // Length
+                    )
+            })
+        }
+
+        Device (PHPR)
+        {
+            Name (_HID, "PNP0A06" /* Generic Container Device */)  // _HID: Hardware ID
+            Name (_UID, "PCI Hotplug resources")  // _UID: Unique ID
+            Name (_STA, 0x0B)  // _STA: Status
+            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+            {
+                IO (Decode16,
+                    0xAE00,             // Range Minimum
+                    0xAE00,             // Range Maximum
+                    0x01,               // Alignment
+                    0x14,               // Length
+                    )
+            })
+        }
+    }
+
+    Scope (\)
+    {
+        Name (_S3, Package (0x04)  // _S3_: S3 System State
+        {
+            One, 
+            One, 
+            Zero, 
+            Zero
+        })
+        Name (_S4, Package (0x04)  // _S4_: S4 System State
+        {
+            0x02, 
+            0x02, 
+            Zero, 
+            Zero
+        })
+        Name (_S5, Package (0x04)  // _S5_: S5 System State
+        {
+            Zero, 
+            Zero, 
+            Zero, 
+            Zero
+        })
+    }
+
+    Scope (\_SB.PCI0)
+    {
+        Device (FWCF)
+        {
+            Name (_HID, "QEMU0002")  // _HID: Hardware ID
+            Name (_STA, 0x0B)  // _STA: Status
+            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+            {
+                IO (Decode16,
+                    0x0510,             // Range Minimum
+                    0x0510,             // Range Maximum
+                    0x01,               // Alignment
+                    0x0C,               // Length
+                    )
+            })
+        }
+    }
+
+    Scope (\_SB)
+    {
+        Scope (PCI0)
+        {
+            Name (BSEL, Zero)
+            Device (S00)
+            {
+                Name (_ADR, Zero)  // _ADR: Address
+            }
+
+            Device (S10)
+            {
+                Name (_ADR, 0x00020000)  // _ADR: Address
+                Method (_S1D, 0, NotSerialized)  // _S1D: S1 Device State
+                {
+                    Return (Zero)
+                }
+
+                Method (_S2D, 0, NotSerialized)  // _S2D: S2 Device State
+                {
+                    Return (Zero)
+                }
+
+                Method (_S3D, 0, NotSerialized)  // _S3D: S3 Device State
+                {
+                    Return (Zero)
+                }
+            }
+
+            Device (S18)
+            {
+                Name (_ADR, 0x00030000)  // _ADR: Address
+                Name (BSEL, One)
+                Device (S00)
+                {
+                    Name (_SUN, Zero)  // _SUN: Slot User Number
+                    Name (_ADR, Zero)  // _ADR: Address
+                    Method (_EJ0, 1, NotSerialized)  // _EJx: Eject Device, x=0-9
+                    {
+                        PCEJ (BSEL, _SUN)
+                    }
+                }
+
+                Device (S08)
+                {
+                    Name (_SUN, One)  // _SUN: Slot User Number
+                    Name (_ADR, 0x00010000)  // _ADR: Address
+                    Method (_EJ0, 1, NotSerialized)  // _EJx: Eject Device, x=0-9
+                    {
+                        PCEJ (BSEL, _SUN)
+                    }
+                }
+
+                Device (S10)
+                {
+                    Name (_SUN, 0x02)  // _SUN: Slot User Number
+                    Name (_ADR, 0x00020000)  // _ADR: Address
+                    Method (_EJ0, 1, NotSerialized)  // _EJx: Eject Device, x=0-9
+                    {
+                        PCEJ (BSEL, _SUN)
+                    }
+                }
+
+                Device (S18)
+                {
+                    Name (_SUN, 0x03)  // _SUN: Slot User Number
+                    Name (_ADR, 0x00030000)  // _ADR: Address
+                    Method (_EJ0, 1, NotSerialized)  // _EJx: Eject Device, x=0-9
+                    {
+                        PCEJ (BSEL, _SUN)
+                    }
+                }
+
+                Device (S20)
+                {
+                    Name (_SUN, 0x04)  // _SUN: Slot User Number
+                    Name (_ADR, 0x00040000)  // _ADR: Address
+                    Method (_EJ0, 1, NotSerialized)  // _EJx: Eject Device, x=0-9
+                    {
+                        PCEJ (BSEL, _SUN)
+                    }
+                }
+
+                Device (S28)
+                {
+                    Name (_SUN, 0x05)  // _SUN: Slot User Number
+                    Name (_ADR, 0x00050000)  // _ADR: Address
+                    Method (_EJ0, 1, NotSerialized)  // _EJx: Eject Device, x=0-9
+                    {
+                        PCEJ (BSEL, _SUN)
+                    }
+                }
+
+                Device (S30)
+                {
+                    Name (_SUN, 0x06)  // _SUN: Slot User Number
+                    Name (_ADR, 0x00060000)  // _ADR: Address
+                    Method (_EJ0, 1, NotSerialized)  // _EJx: Eject Device, x=0-9
+                    {
+                        PCEJ (BSEL, _SUN)
+                    }
+                }
+
+                Device (S38)
+                {
+                    Name (_SUN, 0x07)  // _SUN: Slot User Number
+                    Name (_ADR, 0x00070000)  // _ADR: Address
+                    Method (_EJ0, 1, NotSerialized)  // _EJx: Eject Device, x=0-9
+                    {
+                        PCEJ (BSEL, _SUN)
+                    }
+                }
+
+                Device (S40)
+                {
+                    Name (_SUN, 0x08)  // _SUN: Slot User Number
+                    Name (_ADR, 0x00080000)  // _ADR: Address
+                    Method (_EJ0, 1, NotSerialized)  // _EJx: Eject Device, x=0-9
+                    {
+                        PCEJ (BSEL, _SUN)
+                    }
+                }
+
+                Device (S48)
+                {
+                    Name (_SUN, 0x09)  // _SUN: Slot User Number
+                    Name (_ADR, 0x00090000)  // _ADR: Address
+                    Method (_EJ0, 1, NotSerialized)  // _EJx: Eject Device, x=0-9
+                    {
+                        PCEJ (BSEL, _SUN)
+                    }
+                }
+
+                Device (S50)
+                {
+                    Name (_SUN, 0x0A)  // _SUN: Slot User Number
+                    Name (_ADR, 0x000A0000)  // _ADR: Address
+                    Method (_EJ0, 1, NotSerialized)  // _EJx: Eject Device, x=0-9
+                    {
+                        PCEJ (BSEL, _SUN)
+                    }
+                }
+
+                Device (S58)
+                {
+                    Name (_SUN, 0x0B)  // _SUN: Slot User Number
+                    Name (_ADR, 0x000B0000)  // _ADR: Address
+                    Method (_EJ0, 1, NotSerialized)  // _EJx: Eject Device, x=0-9
+                    {
+                        PCEJ (BSEL, _SUN)
+                    }
+                }
+
+                Device (S60)
+                {
+                    Name (_SUN, 0x0C)  // _SUN: Slot User Number
+                    Name (_ADR, 0x000C0000)  // _ADR: Address
+                    Method (_EJ0, 1, NotSerialized)  // _EJx: Eject Device, x=0-9
+                    {
+                        PCEJ (BSEL, _SUN)
+                    }
+                }
+
+                Device (S68)
+                {
+                    Name (_SUN, 0x0D)  // _SUN: Slot User Number
+                    Name (_ADR, 0x000D0000)  // _ADR: Address
+                    Method (_EJ0, 1, NotSerialized)  // _EJx: Eject Device, x=0-9
+                    {
+                        PCEJ (BSEL, _SUN)
+                    }
+                }
+
+                Device (S70)
+                {
+                    Name (_SUN, 0x0E)  // _SUN: Slot User Number
+                    Name (_ADR, 0x000E0000)  // _ADR: Address
+                    Method (_EJ0, 1, NotSerialized)  // _EJx: Eject Device, x=0-9
+                    {
+                        PCEJ (BSEL, _SUN)
+                    }
+                }
+
+                Device (S78)
+                {
+                    Name (_SUN, 0x0F)  // _SUN: Slot User Number
+                    Name (_ADR, 0x000F0000)  // _ADR: Address
+                    Method (_EJ0, 1, NotSerialized)  // _EJx: Eject Device, x=0-9
+                    {
+                        PCEJ (BSEL, _SUN)
+                    }
+                }
+
+                Device (S80)
+                {
+                    Name (_SUN, 0x10)  // _SUN: Slot User Number
+                    Name (_ADR, 0x00100000)  // _ADR: Address
+                    Method (_EJ0, 1, NotSerialized)  // _EJx: Eject Device, x=0-9
+                    {
+                        PCEJ (BSEL, _SUN)
+                    }
+                }
+
+                Device (S88)
+                {
+                    Name (_SUN, 0x11)  // _SUN: Slot User Number
+                    Name (_ADR, 0x00110000)  // _ADR: Address
+                    Method (_EJ0, 1, NotSerialized)  // _EJx: Eject Device, x=0-9
+                    {
+                        PCEJ (BSEL, _SUN)
+                    }
+                }
+
+                Device (S90)
+                {
+                    Name (_SUN, 0x12)  // _SUN: Slot User Number
+                    Name (_ADR, 0x00120000)  // _ADR: Address
+                    Method (_EJ0, 1, NotSerialized)  // _EJx: Eject Device, x=0-9
+                    {
+                        PCEJ (BSEL, _SUN)
+                    }
+                }
+
+                Device (S98)
+                {
+                    Name (_SUN, 0x13)  // _SUN: Slot User Number
+                    Name (_ADR, 0x00130000)  // _ADR: Address
+                    Method (_EJ0, 1, NotSerialized)  // _EJx: Eject Device, x=0-9
+                    {
+                        PCEJ (BSEL, _SUN)
+                    }
+                }
+
+                Device (SA0)
+                {
+                    Name (_SUN, 0x14)  // _SUN: Slot User Number
+                    Name (_ADR, 0x00140000)  // _ADR: Address
+                    Method (_EJ0, 1, NotSerialized)  // _EJx: Eject Device, x=0-9
+                    {
+                        PCEJ (BSEL, _SUN)
+                    }
+                }
+
+                Device (SA8)
+                {
+                    Name (_SUN, 0x15)  // _SUN: Slot User Number
+                    Name (_ADR, 0x00150000)  // _ADR: Address
+                    Method (_EJ0, 1, NotSerialized)  // _EJx: Eject Device, x=0-9
+                    {
+                        PCEJ (BSEL, _SUN)
+                    }
+                }
+
+                Device (SB0)
+                {
+                    Name (_SUN, 0x16)  // _SUN: Slot User Number
+                    Name (_ADR, 0x00160000)  // _ADR: Address
+                    Method (_EJ0, 1, NotSerialized)  // _EJx: Eject Device, x=0-9
+                    {
+                        PCEJ (BSEL, _SUN)
+                    }
+                }
+
+                Device (SB8)
+                {
+                    Name (_SUN, 0x17)  // _SUN: Slot User Number
+                    Name (_ADR, 0x00170000)  // _ADR: Address
+                    Method (_EJ0, 1, NotSerialized)  // _EJx: Eject Device, x=0-9
+                    {
+                        PCEJ (BSEL, _SUN)
+                    }
+                }
+
+                Device (SC0)
+                {
+                    Name (_SUN, 0x18)  // _SUN: Slot User Number
+                    Name (_ADR, 0x00180000)  // _ADR: Address
+                    Method (_EJ0, 1, NotSerialized)  // _EJx: Eject Device, x=0-9
+                    {
+                        PCEJ (BSEL, _SUN)
+                    }
+                }
+
+                Device (SC8)
+                {
+                    Name (_SUN, 0x19)  // _SUN: Slot User Number
+                    Name (_ADR, 0x00190000)  // _ADR: Address
+                    Method (_EJ0, 1, NotSerialized)  // _EJx: Eject Device, x=0-9
+                    {
+                        PCEJ (BSEL, _SUN)
+                    }
+                }
+
+                Device (SD0)
+                {
+                    Name (_SUN, 0x1A)  // _SUN: Slot User Number
+                    Name (_ADR, 0x001A0000)  // _ADR: Address
+                    Method (_EJ0, 1, NotSerialized)  // _EJx: Eject Device, x=0-9
+                    {
+                        PCEJ (BSEL, _SUN)
+                    }
+                }
+
+                Device (SD8)
+                {
+                    Name (_SUN, 0x1B)  // _SUN: Slot User Number
+                    Name (_ADR, 0x001B0000)  // _ADR: Address
+                    Method (_EJ0, 1, NotSerialized)  // _EJx: Eject Device, x=0-9
+                    {
+                        PCEJ (BSEL, _SUN)
+                    }
+                }
+
+                Device (SE0)
+                {
+                    Name (_SUN, 0x1C)  // _SUN: Slot User Number
+                    Name (_ADR, 0x001C0000)  // _ADR: Address
+                    Method (_EJ0, 1, NotSerialized)  // _EJx: Eject Device, x=0-9
+                    {
+                        PCEJ (BSEL, _SUN)
+                    }
+                }
+
+                Device (SE8)
+                {
+                    Name (_SUN, 0x1D)  // _SUN: Slot User Number
+                    Name (_ADR, 0x001D0000)  // _ADR: Address
+                    Method (_EJ0, 1, NotSerialized)  // _EJx: Eject Device, x=0-9
+                    {
+                        PCEJ (BSEL, _SUN)
+                    }
+                }
+
+                Device (SF0)
+                {
+                    Name (_SUN, 0x1E)  // _SUN: Slot User Number
+                    Name (_ADR, 0x001E0000)  // _ADR: Address
+                    Method (_EJ0, 1, NotSerialized)  // _EJx: Eject Device, x=0-9
+                    {
+                        PCEJ (BSEL, _SUN)
+                    }
+                }
+
+                Device (SF8)
+                {
+                    Name (_SUN, 0x1F)  // _SUN: Slot User Number
+                    Name (_ADR, 0x001F0000)  // _ADR: Address
+                    Method (_EJ0, 1, NotSerialized)  // _EJx: Eject Device, x=0-9
+                    {
+                        PCEJ (BSEL, _SUN)
+                    }
+                }
+
+                Method (DVNT, 2, NotSerialized)
+                {
+                    If ((Arg0 & One))
+                    {
+                        Notify (S00, Arg1)
+                    }
+
+                    If ((Arg0 & 0x02))
+                    {
+                        Notify (S08, Arg1)
+                    }
+
+                    If ((Arg0 & 0x04))
+                    {
+                        Notify (S10, Arg1)
+                    }
+
+                    If ((Arg0 & 0x08))
+                    {
+                        Notify (S18, Arg1)
+                    }
+
+                    If ((Arg0 & 0x10))
+                    {
+                        Notify (S20, Arg1)
+                    }
+
+                    If ((Arg0 & 0x20))
+                    {
+                        Notify (S28, Arg1)
+                    }
+
+                    If ((Arg0 & 0x40))
+                    {
+                        Notify (S30, Arg1)
+                    }
+
+                    If ((Arg0 & 0x80))
+                    {
+                        Notify (S38, Arg1)
+                    }
+
+                    If ((Arg0 & 0x0100))
+                    {
+                        Notify (S40, Arg1)
+                    }
+
+                    If ((Arg0 & 0x0200))
+                    {
+                        Notify (S48, Arg1)
+                    }
+
+                    If ((Arg0 & 0x0400))
+                    {
+                        Notify (S50, Arg1)
+                    }
+
+                    If ((Arg0 & 0x0800))
+                    {
+                        Notify (S58, Arg1)
+                    }
+
+                    If ((Arg0 & 0x1000))
+                    {
+                        Notify (S60, Arg1)
+                    }
+
+                    If ((Arg0 & 0x2000))
+                    {
+                        Notify (S68, Arg1)
+                    }
+
+                    If ((Arg0 & 0x4000))
+                    {
+                        Notify (S70, Arg1)
+                    }
+
+                    If ((Arg0 & 0x8000))
+                    {
+                        Notify (S78, Arg1)
+                    }
+
+                    If ((Arg0 & 0x00010000))
+                    {
+                        Notify (S80, Arg1)
+                    }
+
+                    If ((Arg0 & 0x00020000))
+                    {
+                        Notify (S88, Arg1)
+                    }
+
+                    If ((Arg0 & 0x00040000))
+                    {
+                        Notify (S90, Arg1)
+                    }
+
+                    If ((Arg0 & 0x00080000))
+                    {
+                        Notify (S98, Arg1)
+                    }
+
+                    If ((Arg0 & 0x00100000))
+                    {
+                        Notify (SA0, Arg1)
+                    }
+
+                    If ((Arg0 & 0x00200000))
+                    {
+                        Notify (SA8, Arg1)
+                    }
+
+                    If ((Arg0 & 0x00400000))
+                    {
+                        Notify (SB0, Arg1)
+                    }
+
+                    If ((Arg0 & 0x00800000))
+                    {
+                        Notify (SB8, Arg1)
+                    }
+
+                    If ((Arg0 & 0x01000000))
+                    {
+                        Notify (SC0, Arg1)
+                    }
+
+                    If ((Arg0 & 0x02000000))
+                    {
+                        Notify (SC8, Arg1)
+                    }
+
+                    If ((Arg0 & 0x04000000))
+                    {
+                        Notify (SD0, Arg1)
+                    }
+
+                    If ((Arg0 & 0x08000000))
+                    {
+                        Notify (SD8, Arg1)
+                    }
+
+                    If ((Arg0 & 0x10000000))
+                    {
+                        Notify (SE0, Arg1)
+                    }
+
+                    If ((Arg0 & 0x20000000))
+                    {
+                        Notify (SE8, Arg1)
+                    }
+
+                    If ((Arg0 & 0x40000000))
+                    {
+                        Notify (SF0, Arg1)
+                    }
+
+                    If ((Arg0 & 0x80000000))
+                    {
+                        Notify (SF8, Arg1)
+                    }
+                }
+
+                Method (PCNT, 0, NotSerialized)
+                {
+                    BNUM = One
+                    DVNT (PCIU, One)
+                    DVNT (PCID, 0x03)
+                }
+            }
+
+            Device (S20)
+            {
+                Name (_SUN, 0x04)  // _SUN: Slot User Number
+                Name (_ADR, 0x00040000)  // _ADR: Address
+                Method (_EJ0, 1, NotSerialized)  // _EJx: Eject Device, x=0-9
+                {
+                    PCEJ (BSEL, _SUN)
+                }
+            }
+
+            Device (S28)
+            {
+                Name (_SUN, 0x05)  // _SUN: Slot User Number
+                Name (_ADR, 0x00050000)  // _ADR: Address
+                Method (_EJ0, 1, NotSerialized)  // _EJx: Eject Device, x=0-9
+                {
+                    PCEJ (BSEL, _SUN)
+                }
+            }
+
+            Device (S30)
+            {
+                Name (_SUN, 0x06)  // _SUN: Slot User Number
+                Name (_ADR, 0x00060000)  // _ADR: Address
+                Method (_EJ0, 1, NotSerialized)  // _EJx: Eject Device, x=0-9
+                {
+                    PCEJ (BSEL, _SUN)
+                }
+            }
+
+            Device (S38)
+            {
+                Name (_SUN, 0x07)  // _SUN: Slot User Number
+                Name (_ADR, 0x00070000)  // _ADR: Address
+                Method (_EJ0, 1, NotSerialized)  // _EJx: Eject Device, x=0-9
+                {
+                    PCEJ (BSEL, _SUN)
+                }
+            }
+
+            Device (S40)
+            {
+                Name (_SUN, 0x08)  // _SUN: Slot User Number
+                Name (_ADR, 0x00080000)  // _ADR: Address
+                Method (_EJ0, 1, NotSerialized)  // _EJx: Eject Device, x=0-9
+                {
+                    PCEJ (BSEL, _SUN)
+                }
+            }
+
+            Device (S48)
+            {
+                Name (_SUN, 0x09)  // _SUN: Slot User Number
+                Name (_ADR, 0x00090000)  // _ADR: Address
+                Method (_EJ0, 1, NotSerialized)  // _EJx: Eject Device, x=0-9
+                {
+                    PCEJ (BSEL, _SUN)
+                }
+            }
+
+            Device (S50)
+            {
+                Name (_SUN, 0x0A)  // _SUN: Slot User Number
+                Name (_ADR, 0x000A0000)  // _ADR: Address
+                Method (_EJ0, 1, NotSerialized)  // _EJx: Eject Device, x=0-9
+                {
+                    PCEJ (BSEL, _SUN)
+                }
+            }
+
+            Device (S58)
+            {
+                Name (_SUN, 0x0B)  // _SUN: Slot User Number
+                Name (_ADR, 0x000B0000)  // _ADR: Address
+                Method (_EJ0, 1, NotSerialized)  // _EJx: Eject Device, x=0-9
+                {
+                    PCEJ (BSEL, _SUN)
+                }
+            }
+
+            Device (S60)
+            {
+                Name (_SUN, 0x0C)  // _SUN: Slot User Number
+                Name (_ADR, 0x000C0000)  // _ADR: Address
+                Method (_EJ0, 1, NotSerialized)  // _EJx: Eject Device, x=0-9
+                {
+                    PCEJ (BSEL, _SUN)
+                }
+            }
+
+            Device (S68)
+            {
+                Name (_SUN, 0x0D)  // _SUN: Slot User Number
+                Name (_ADR, 0x000D0000)  // _ADR: Address
+                Method (_EJ0, 1, NotSerialized)  // _EJx: Eject Device, x=0-9
+                {
+                    PCEJ (BSEL, _SUN)
+                }
+            }
+
+            Device (S70)
+            {
+                Name (_SUN, 0x0E)  // _SUN: Slot User Number
+                Name (_ADR, 0x000E0000)  // _ADR: Address
+                Method (_EJ0, 1, NotSerialized)  // _EJx: Eject Device, x=0-9
+                {
+                    PCEJ (BSEL, _SUN)
+                }
+            }
+
+            Device (S78)
+            {
+                Name (_SUN, 0x0F)  // _SUN: Slot User Number
+                Name (_ADR, 0x000F0000)  // _ADR: Address
+                Method (_EJ0, 1, NotSerialized)  // _EJx: Eject Device, x=0-9
+                {
+                    PCEJ (BSEL, _SUN)
+                }
+            }
+
+            Device (S80)
+            {
+                Name (_SUN, 0x10)  // _SUN: Slot User Number
+                Name (_ADR, 0x00100000)  // _ADR: Address
+                Method (_EJ0, 1, NotSerialized)  // _EJx: Eject Device, x=0-9
+                {
+                    PCEJ (BSEL, _SUN)
+                }
+            }
+
+            Device (S88)
+            {
+                Name (_SUN, 0x11)  // _SUN: Slot User Number
+                Name (_ADR, 0x00110000)  // _ADR: Address
+                Method (_EJ0, 1, NotSerialized)  // _EJx: Eject Device, x=0-9
+                {
+                    PCEJ (BSEL, _SUN)
+                }
+            }
+
+            Device (S90)
+            {
+                Name (_SUN, 0x12)  // _SUN: Slot User Number
+                Name (_ADR, 0x00120000)  // _ADR: Address
+                Method (_EJ0, 1, NotSerialized)  // _EJx: Eject Device, x=0-9
+                {
+                    PCEJ (BSEL, _SUN)
+                }
+            }
+
+            Device (S98)
+            {
+                Name (_SUN, 0x13)  // _SUN: Slot User Number
+                Name (_ADR, 0x00130000)  // _ADR: Address
+                Method (_EJ0, 1, NotSerialized)  // _EJx: Eject Device, x=0-9
+                {
+                    PCEJ (BSEL, _SUN)
+                }
+            }
+
+            Device (SA0)
+            {
+                Name (_SUN, 0x14)  // _SUN: Slot User Number
+                Name (_ADR, 0x00140000)  // _ADR: Address
+                Method (_EJ0, 1, NotSerialized)  // _EJx: Eject Device, x=0-9
+                {
+                    PCEJ (BSEL, _SUN)
+                }
+            }
+
+            Device (SA8)
+            {
+                Name (_SUN, 0x15)  // _SUN: Slot User Number
+                Name (_ADR, 0x00150000)  // _ADR: Address
+                Method (_EJ0, 1, NotSerialized)  // _EJx: Eject Device, x=0-9
+                {
+                    PCEJ (BSEL, _SUN)
+                }
+            }
+
+            Device (SB0)
+            {
+                Name (_SUN, 0x16)  // _SUN: Slot User Number
+                Name (_ADR, 0x00160000)  // _ADR: Address
+                Method (_EJ0, 1, NotSerialized)  // _EJx: Eject Device, x=0-9
+                {
+                    PCEJ (BSEL, _SUN)
+                }
+            }
+
+            Device (SB8)
+            {
+                Name (_SUN, 0x17)  // _SUN: Slot User Number
+                Name (_ADR, 0x00170000)  // _ADR: Address
+                Method (_EJ0, 1, NotSerialized)  // _EJx: Eject Device, x=0-9
+                {
+                    PCEJ (BSEL, _SUN)
+                }
+            }
+
+            Device (SC0)
+            {
+                Name (_SUN, 0x18)  // _SUN: Slot User Number
+                Name (_ADR, 0x00180000)  // _ADR: Address
+                Method (_EJ0, 1, NotSerialized)  // _EJx: Eject Device, x=0-9
+                {
+                    PCEJ (BSEL, _SUN)
+                }
+            }
+
+            Device (SC8)
+            {
+                Name (_SUN, 0x19)  // _SUN: Slot User Number
+                Name (_ADR, 0x00190000)  // _ADR: Address
+                Method (_EJ0, 1, NotSerialized)  // _EJx: Eject Device, x=0-9
+                {
+                    PCEJ (BSEL, _SUN)
+                }
+            }
+
+            Device (SD0)
+            {
+                Name (_SUN, 0x1A)  // _SUN: Slot User Number
+                Name (_ADR, 0x001A0000)  // _ADR: Address
+                Method (_EJ0, 1, NotSerialized)  // _EJx: Eject Device, x=0-9
+                {
+                    PCEJ (BSEL, _SUN)
+                }
+            }
+
+            Device (SD8)
+            {
+                Name (_SUN, 0x1B)  // _SUN: Slot User Number
+                Name (_ADR, 0x001B0000)  // _ADR: Address
+                Method (_EJ0, 1, NotSerialized)  // _EJx: Eject Device, x=0-9
+                {
+                    PCEJ (BSEL, _SUN)
+                }
+            }
+
+            Device (SE0)
+            {
+                Name (_SUN, 0x1C)  // _SUN: Slot User Number
+                Name (_ADR, 0x001C0000)  // _ADR: Address
+                Method (_EJ0, 1, NotSerialized)  // _EJx: Eject Device, x=0-9
+                {
+                    PCEJ (BSEL, _SUN)
+                }
+            }
+
+            Device (SE8)
+            {
+                Name (_SUN, 0x1D)  // _SUN: Slot User Number
+                Name (_ADR, 0x001D0000)  // _ADR: Address
+                Method (_EJ0, 1, NotSerialized)  // _EJx: Eject Device, x=0-9
+                {
+                    PCEJ (BSEL, _SUN)
+                }
+            }
+
+            Device (SF0)
+            {
+                Name (_SUN, 0x1E)  // _SUN: Slot User Number
+                Name (_ADR, 0x001E0000)  // _ADR: Address
+                Method (_EJ0, 1, NotSerialized)  // _EJx: Eject Device, x=0-9
+                {
+                    PCEJ (BSEL, _SUN)
+                }
+            }
+
+            Device (SF8)
+            {
+                Name (_SUN, 0x1F)  // _SUN: Slot User Number
+                Name (_ADR, 0x001F0000)  // _ADR: Address
+                Method (_EJ0, 1, NotSerialized)  // _EJx: Eject Device, x=0-9
+                {
+                    PCEJ (BSEL, _SUN)
+                }
+            }
+
+            Method (DVNT, 2, NotSerialized)
+            {
+                If ((Arg0 & 0x10))
+                {
+                    Notify (S20, Arg1)
+                }
+
+                If ((Arg0 & 0x20))
+                {
+                    Notify (S28, Arg1)
+                }
+
+                If ((Arg0 & 0x40))
+                {
+                    Notify (S30, Arg1)
+                }
+
+                If ((Arg0 & 0x80))
+                {
+                    Notify (S38, Arg1)
+                }
+
+                If ((Arg0 & 0x0100))
+                {
+                    Notify (S40, Arg1)
+                }
+
+                If ((Arg0 & 0x0200))
+                {
+                    Notify (S48, Arg1)
+                }
+
+                If ((Arg0 & 0x0400))
+                {
+                    Notify (S50, Arg1)
+                }
+
+                If ((Arg0 & 0x0800))
+                {
+                    Notify (S58, Arg1)
+                }
+
+                If ((Arg0 & 0x1000))
+                {
+                    Notify (S60, Arg1)
+                }
+
+                If ((Arg0 & 0x2000))
+                {
+                    Notify (S68, Arg1)
+                }
+
+                If ((Arg0 & 0x4000))
+                {
+                    Notify (S70, Arg1)
+                }
+
+                If ((Arg0 & 0x8000))
+                {
+                    Notify (S78, Arg1)
+                }
+
+                If ((Arg0 & 0x00010000))
+                {
+                    Notify (S80, Arg1)
+                }
+
+                If ((Arg0 & 0x00020000))
+                {
+                    Notify (S88, Arg1)
+                }
+
+                If ((Arg0 & 0x00040000))
+                {
+                    Notify (S90, Arg1)
+                }
+
+                If ((Arg0 & 0x00080000))
+                {
+                    Notify (S98, Arg1)
+                }
+
+                If ((Arg0 & 0x00100000))
+                {
+                    Notify (SA0, Arg1)
+                }
+
+                If ((Arg0 & 0x00200000))
+                {
+                    Notify (SA8, Arg1)
+                }
+
+                If ((Arg0 & 0x00400000))
+                {
+                    Notify (SB0, Arg1)
+                }
+
+                If ((Arg0 & 0x00800000))
+                {
+                    Notify (SB8, Arg1)
+                }
+
+                If ((Arg0 & 0x01000000))
+                {
+                    Notify (SC0, Arg1)
+                }
+
+                If ((Arg0 & 0x02000000))
+                {
+                    Notify (SC8, Arg1)
+                }
+
+                If ((Arg0 & 0x04000000))
+                {
+                    Notify (SD0, Arg1)
+                }
+
+                If ((Arg0 & 0x08000000))
+                {
+                    Notify (SD8, Arg1)
+                }
+
+                If ((Arg0 & 0x10000000))
+                {
+                    Notify (SE0, Arg1)
+                }
+
+                If ((Arg0 & 0x20000000))
+                {
+                    Notify (SE8, Arg1)
+                }
+
+                If ((Arg0 & 0x40000000))
+                {
+                    Notify (SF0, Arg1)
+                }
+
+                If ((Arg0 & 0x80000000))
+                {
+                    Notify (SF8, Arg1)
+                }
+            }
+
+            Method (PCNT, 0, NotSerialized)
+            {
+                BNUM = Zero
+                DVNT (PCIU, One)
+                DVNT (PCID, 0x03)
+                ^S18.PCNT ()
+            }
+        }
+    }
+}
+
diff --git a/tests/data/acpi/pc/DSDT.cphp.dsl b/tests/data/acpi/pc/DSDT.cphp.dsl
new file mode 100644
index 0000000000..22ed37d7dc
--- /dev/null
+++ b/tests/data/acpi/pc/DSDT.cphp.dsl
@@ -0,0 +1,1466 @@ 
+/*
+ * Intel ACPI Component Architecture
+ * AML/ASL+ Disassembler version 20190509 (64-bit version)
+ * Copyright (c) 2000 - 2019 Intel Corporation
+ * 
+ * Disassembling to symbolic ASL+ operators
+ *
+ * Disassembly of tests/data/acpi/pc/DSDT.cphp, Tue Aug  4 11:14:15 2020
+ *
+ * Original Table Header:
+ *     Signature        "DSDT"
+ *     Length           0x00001515 (5397)
+ *     Revision         0x01 **** 32-bit table (V1), no 64-bit math support
+ *     Checksum         0x39
+ *     OEM ID           "BOCHS "
+ *     OEM Table ID     "BXPCDSDT"
+ *     OEM Revision     0x00000001 (1)
+ *     Compiler ID      "BXPC"
+ *     Compiler Version 0x00000001 (1)
+ */
+DefinitionBlock ("", "DSDT", 1, "BOCHS ", "BXPCDSDT", 0x00000001)
+{
+    Scope (\)
+    {
+        OperationRegion (DBG, SystemIO, 0x0402, One)
+        Field (DBG, ByteAcc, NoLock, Preserve)
+        {
+            DBGB,   8
+        }
+
+        Method (DBUG, 1, NotSerialized)
+        {
+            ToHexString (Arg0, Local0)
+            ToBuffer (Local0, Local0)
+            Local1 = (SizeOf (Local0) - One)
+            Local2 = Zero
+            While ((Local2 < Local1))
+            {
+                DBGB = DerefOf (Local0 [Local2])
+                Local2++
+            }
+
+            DBGB = 0x0A
+        }
+    }
+
+    Scope (_SB)
+    {
+        Device (PCI0)
+        {
+            Name (_HID, EisaId ("PNP0A03") /* PCI Bus */)  // _HID: Hardware ID
+            Name (_ADR, Zero)  // _ADR: Address
+            Name (_UID, Zero)  // _UID: Unique ID
+        }
+    }
+
+    Scope (_SB)
+    {
+        Device (HPET)
+        {
+            Name (_HID, EisaId ("PNP0103") /* HPET System Timer */)  // _HID: Hardware ID
+            Name (_UID, Zero)  // _UID: Unique ID
+            OperationRegion (HPTM, SystemMemory, 0xFED00000, 0x0400)
+            Field (HPTM, DWordAcc, Lock, Preserve)
+            {
+                VEND,   32, 
+                PRD,    32
+            }
+
+            Method (_STA, 0, NotSerialized)  // _STA: Status
+            {
+                Local0 = VEND /* \_SB_.HPET.VEND */
+                Local1 = PRD /* \_SB_.HPET.PRD_ */
+                Local0 >>= 0x10
+                If (((Local0 == Zero) || (Local0 == 0xFFFF)))
+                {
+                    Return (Zero)
+                }
+
+                If (((Local1 == Zero) || (Local1 > 0x05F5E100)))
+                {
+                    Return (Zero)
+                }
+
+                Return (0x0F)
+            }
+
+            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+            {
+                Memory32Fixed (ReadOnly,
+                    0xFED00000,         // Address Base
+                    0x00000400,         // Address Length
+                    )
+            })
+        }
+    }
+
+    Scope (_SB.PCI0)
+    {
+        Device (ISA)
+        {
+            Name (_ADR, 0x00010000)  // _ADR: Address
+            OperationRegion (P40C, PCI_Config, 0x60, 0x04)
+        }
+    }
+
+    Scope (_SB.PCI0.ISA)
+    {
+        Device (KBD)
+        {
+            Name (_HID, EisaId ("PNP0303") /* IBM Enhanced Keyboard (101/102-key, PS/2 Mouse) */)  // _HID: Hardware ID
+            Name (_STA, 0x0F)  // _STA: Status
+            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+            {
+                IO (Decode16,
+                    0x0060,             // Range Minimum
+                    0x0060,             // Range Maximum
+                    0x01,               // Alignment
+                    0x01,               // Length
+                    )
+                IO (Decode16,
+                    0x0064,             // Range Minimum
+                    0x0064,             // Range Maximum
+                    0x01,               // Alignment
+                    0x01,               // Length
+                    )
+                IRQNoFlags ()
+                    {1}
+            })
+        }
+
+        Device (MOU)
+        {
+            Name (_HID, EisaId ("PNP0F13") /* PS/2 Mouse */)  // _HID: Hardware ID
+            Name (_STA, 0x0F)  // _STA: Status
+            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+            {
+                IRQNoFlags ()
+                    {12}
+            })
+        }
+
+        Device (FDC0)
+        {
+            Name (_HID, EisaId ("PNP0700"))  // _HID: Hardware ID
+            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+            {
+                IO (Decode16,
+                    0x03F2,             // Range Minimum
+                    0x03F2,             // Range Maximum
+                    0x00,               // Alignment
+                    0x04,               // Length
+                    )
+                IO (Decode16,
+                    0x03F7,             // Range Minimum
+                    0x03F7,             // Range Maximum
+                    0x00,               // Alignment
+                    0x01,               // Length
+                    )
+                IRQNoFlags ()
+                    {6}
+                DMA (Compatibility, NotBusMaster, Transfer8, )
+                    {2}
+            })
+            Device (FLPA)
+            {
+                Name (_ADR, Zero)  // _ADR: Address
+                Name (_FDI, Package (0x10)  // _FDI: Floppy Drive Information
+                {
+                    Zero, 
+                    0x05, 
+                    0x4F, 
+                    0x30, 
+                    One, 
+                    0xAF, 
+                    0x02, 
+                    0x25, 
+                    0x02, 
+                    0x12, 
+                    0x1B, 
+                    0xFF, 
+                    0x6C, 
+                    0xF6, 
+                    0x0F, 
+                    0x08
+                })
+            }
+
+            Name (_FDE, Buffer (0x14)  // _FDE: Floppy Disk Enumerate
+            {
+                /* 0000 */  0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,  // ........
+                /* 0008 */  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,  // ........
+                /* 0010 */  0x02, 0x00, 0x00, 0x00                           // ....
+            })
+        }
+
+        Device (LPT1)
+        {
+            Name (_HID, EisaId ("PNP0400") /* Standard LPT Parallel Port */)  // _HID: Hardware ID
+            Name (_UID, One)  // _UID: Unique ID
+            Name (_STA, 0x0F)  // _STA: Status
+            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+            {
+                IO (Decode16,
+                    0x0378,             // Range Minimum
+                    0x0378,             // Range Maximum
+                    0x08,               // Alignment
+                    0x08,               // Length
+                    )
+                IRQNoFlags ()
+                    {7}
+            })
+        }
+
+        Device (COM1)
+        {
+            Name (_HID, EisaId ("PNP0501") /* 16550A-compatible COM Serial Port */)  // _HID: Hardware ID
+            Name (_UID, One)  // _UID: Unique ID
+            Name (_STA, 0x0F)  // _STA: Status
+            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+            {
+                IO (Decode16,
+                    0x03F8,             // Range Minimum
+                    0x03F8,             // Range Maximum
+                    0x00,               // Alignment
+                    0x08,               // Length
+                    )
+                IRQNoFlags ()
+                    {4}
+            })
+        }
+
+        Device (RTC)
+        {
+            Name (_HID, EisaId ("PNP0B00") /* AT Real-Time Clock */)  // _HID: Hardware ID
+            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+            {
+                IO (Decode16,
+                    0x0070,             // Range Minimum
+                    0x0070,             // Range Maximum
+                    0x01,               // Alignment
+                    0x08,               // Length
+                    )
+                IRQNoFlags ()
+                    {8}
+            })
+        }
+    }
+
+    Scope (_SB.PCI0)
+    {
+        OperationRegion (PCST, SystemIO, 0xAE00, 0x08)
+        Field (PCST, DWordAcc, NoLock, WriteAsZeros)
+        {
+            PCIU,   32, 
+            PCID,   32
+        }
+
+        OperationRegion (SEJ, SystemIO, 0xAE08, 0x04)
+        Field (SEJ, DWordAcc, NoLock, WriteAsZeros)
+        {
+            B0EJ,   32
+        }
+
+        OperationRegion (BNMR, SystemIO, 0xAE10, 0x04)
+        Field (BNMR, DWordAcc, NoLock, WriteAsZeros)
+        {
+            BNUM,   32
+        }
+
+        Mutex (BLCK, 0x00)
+        Method (PCEJ, 2, NotSerialized)
+        {
+            Acquire (BLCK, 0xFFFF)
+            BNUM = Arg0
+            B0EJ = (One << Arg1)
+            Release (BLCK)
+            Return (Zero)
+        }
+    }
+
+    Scope (_SB)
+    {
+        Scope (PCI0)
+        {
+            Method (_PRT, 0, NotSerialized)  // _PRT: PCI Routing Table
+            {
+                Local0 = Package (0x80){}
+                Local1 = Zero
+                While ((Local1 < 0x80))
+                {
+                    Local2 = (Local1 >> 0x02)
+                    Local3 = ((Local1 + Local2) & 0x03)
+                    If ((Local3 == Zero))
+                    {
+                        Local4 = Package (0x04)
+                            {
+                                Zero, 
+                                Zero, 
+                                LNKD, 
+                                Zero
+                            }
+                    }
+
+                    If ((Local3 == One))
+                    {
+                        If ((Local1 == 0x04))
+                        {
+                            Local4 = Package (0x04)
+                                {
+                                    Zero, 
+                                    Zero, 
+                                    LNKS, 
+                                    Zero
+                                }
+                        }
+                        Else
+                        {
+                            Local4 = Package (0x04)
+                                {
+                                    Zero, 
+                                    Zero, 
+                                    LNKA, 
+                                    Zero
+                                }
+                        }
+                    }
+
+                    If ((Local3 == 0x02))
+                    {
+                        Local4 = Package (0x04)
+                            {
+                                Zero, 
+                                Zero, 
+                                LNKB, 
+                                Zero
+                            }
+                    }
+
+                    If ((Local3 == 0x03))
+                    {
+                        Local4 = Package (0x04)
+                            {
+                                Zero, 
+                                Zero, 
+                                LNKC, 
+                                Zero
+                            }
+                    }
+
+                    Local4 [Zero] = ((Local2 << 0x10) | 0xFFFF)
+                    Local4 [One] = (Local1 & 0x03)
+                    Local0 [Local1] = Local4
+                    Local1++
+                }
+
+                Return (Local0)
+            }
+        }
+
+        Field (PCI0.ISA.P40C, ByteAcc, NoLock, Preserve)
+        {
+            PRQ0,   8, 
+            PRQ1,   8, 
+            PRQ2,   8, 
+            PRQ3,   8
+        }
+
+        Method (IQST, 1, NotSerialized)
+        {
+            If ((0x80 & Arg0))
+            {
+                Return (0x09)
+            }
+
+            Return (0x0B)
+        }
+
+        Method (IQCR, 1, Serialized)
+        {
+            Name (PRR0, ResourceTemplate ()
+            {
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, _Y00)
+                {
+                    0x00000000,
+                }
+            })
+            CreateDWordField (PRR0, \_SB.IQCR._Y00._INT, PRRI)  // _INT: Interrupts
+            If ((Arg0 < 0x80))
+            {
+                PRRI = Arg0
+            }
+
+            Return (PRR0) /* \_SB_.IQCR.PRR0 */
+        }
+
+        Device (LNKA)
+        {
+            Name (_HID, EisaId ("PNP0C0F") /* PCI Interrupt Link Device */)  // _HID: Hardware ID
+            Name (_UID, Zero)  // _UID: Unique ID
+            Name (_PRS, ResourceTemplate ()  // _PRS: Possible Resource Settings
+            {
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, )
+                {
+                    0x00000005,
+                    0x0000000A,
+                    0x0000000B,
+                }
+            })
+            Method (_STA, 0, NotSerialized)  // _STA: Status
+            {
+                Return (IQST (PRQ0))
+            }
+
+            Method (_DIS, 0, NotSerialized)  // _DIS: Disable Device
+            {
+                PRQ0 |= 0x80
+            }
+
+            Method (_CRS, 0, NotSerialized)  // _CRS: Current Resource Settings
+            {
+                Return (IQCR (PRQ0))
+            }
+
+            Method (_SRS, 1, NotSerialized)  // _SRS: Set Resource Settings
+            {
+                CreateDWordField (Arg0, 0x05, PRRI)
+                PRQ0 = PRRI /* \_SB_.LNKA._SRS.PRRI */
+            }
+        }
+
+        Device (LNKB)
+        {
+            Name (_HID, EisaId ("PNP0C0F") /* PCI Interrupt Link Device */)  // _HID: Hardware ID
+            Name (_UID, One)  // _UID: Unique ID
+            Name (_PRS, ResourceTemplate ()  // _PRS: Possible Resource Settings
+            {
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, )
+                {
+                    0x00000005,
+                    0x0000000A,
+                    0x0000000B,
+                }
+            })
+            Method (_STA, 0, NotSerialized)  // _STA: Status
+            {
+                Return (IQST (PRQ1))
+            }
+
+            Method (_DIS, 0, NotSerialized)  // _DIS: Disable Device
+            {
+                PRQ1 |= 0x80
+            }
+
+            Method (_CRS, 0, NotSerialized)  // _CRS: Current Resource Settings
+            {
+                Return (IQCR (PRQ1))
+            }
+
+            Method (_SRS, 1, NotSerialized)  // _SRS: Set Resource Settings
+            {
+                CreateDWordField (Arg0, 0x05, PRRI)
+                PRQ1 = PRRI /* \_SB_.LNKB._SRS.PRRI */
+            }
+        }
+
+        Device (LNKC)
+        {
+            Name (_HID, EisaId ("PNP0C0F") /* PCI Interrupt Link Device */)  // _HID: Hardware ID
+            Name (_UID, 0x02)  // _UID: Unique ID
+            Name (_PRS, ResourceTemplate ()  // _PRS: Possible Resource Settings
+            {
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, )
+                {
+                    0x00000005,
+                    0x0000000A,
+                    0x0000000B,
+                }
+            })
+            Method (_STA, 0, NotSerialized)  // _STA: Status
+            {
+                Return (IQST (PRQ2))
+            }
+
+            Method (_DIS, 0, NotSerialized)  // _DIS: Disable Device
+            {
+                PRQ2 |= 0x80
+            }
+
+            Method (_CRS, 0, NotSerialized)  // _CRS: Current Resource Settings
+            {
+                Return (IQCR (PRQ2))
+            }
+
+            Method (_SRS, 1, NotSerialized)  // _SRS: Set Resource Settings
+            {
+                CreateDWordField (Arg0, 0x05, PRRI)
+                PRQ2 = PRRI /* \_SB_.LNKC._SRS.PRRI */
+            }
+        }
+
+        Device (LNKD)
+        {
+            Name (_HID, EisaId ("PNP0C0F") /* PCI Interrupt Link Device */)  // _HID: Hardware ID
+            Name (_UID, 0x03)  // _UID: Unique ID
+            Name (_PRS, ResourceTemplate ()  // _PRS: Possible Resource Settings
+            {
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, )
+                {
+                    0x00000005,
+                    0x0000000A,
+                    0x0000000B,
+                }
+            })
+            Method (_STA, 0, NotSerialized)  // _STA: Status
+            {
+                Return (IQST (PRQ3))
+            }
+
+            Method (_DIS, 0, NotSerialized)  // _DIS: Disable Device
+            {
+                PRQ3 |= 0x80
+            }
+
+            Method (_CRS, 0, NotSerialized)  // _CRS: Current Resource Settings
+            {
+                Return (IQCR (PRQ3))
+            }
+
+            Method (_SRS, 1, NotSerialized)  // _SRS: Set Resource Settings
+            {
+                CreateDWordField (Arg0, 0x05, PRRI)
+                PRQ3 = PRRI /* \_SB_.LNKD._SRS.PRRI */
+            }
+        }
+
+        Device (LNKS)
+        {
+            Name (_HID, EisaId ("PNP0C0F") /* PCI Interrupt Link Device */)  // _HID: Hardware ID
+            Name (_UID, 0x04)  // _UID: Unique ID
+            Name (_PRS, ResourceTemplate ()  // _PRS: Possible Resource Settings
+            {
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, )
+                {
+                    0x00000009,
+                }
+            })
+            Method (_STA, 0, NotSerialized)  // _STA: Status
+            {
+                Return (0x0B)
+            }
+
+            Method (_DIS, 0, NotSerialized)  // _DIS: Disable Device
+            {
+            }
+
+            Method (_CRS, 0, NotSerialized)  // _CRS: Current Resource Settings
+            {
+                Return (_PRS) /* \_SB_.LNKS._PRS */
+            }
+
+            Method (_SRS, 1, NotSerialized)  // _SRS: Set Resource Settings
+            {
+            }
+        }
+    }
+
+    Scope (_SB)
+    {
+        Device (\_SB.PCI0.PRES)
+        {
+            Name (_HID, EisaId ("PNP0A06") /* Generic Container Device */)  // _HID: Hardware ID
+            Name (_UID, "CPU Hotplug resources")  // _UID: Unique ID
+            Mutex (CPLK, 0x00)
+            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+            {
+                IO (Decode16,
+                    0xAF00,             // Range Minimum
+                    0xAF00,             // Range Maximum
+                    0x01,               // Alignment
+                    0x0C,               // Length
+                    )
+            })
+            OperationRegion (PRST, SystemIO, 0xAF00, 0x0C)
+            Field (PRST, ByteAcc, NoLock, WriteAsZeros)
+            {
+                Offset (0x04), 
+                CPEN,   1, 
+                CINS,   1, 
+                CRMV,   1, 
+                CEJ0,   1, 
+                Offset (0x05), 
+                CCMD,   8
+            }
+
+            Field (PRST, DWordAcc, NoLock, Preserve)
+            {
+                CSEL,   32, 
+                Offset (0x08), 
+                CDAT,   32
+            }
+
+            Method (_INI, 0, Serialized)  // _INI: Initialize
+            {
+                CSEL = Zero
+            }
+        }
+
+        Device (\_SB.CPUS)
+        {
+            Name (_HID, "ACPI0010" /* Processor Container Device */)  // _HID: Hardware ID
+            Name (_CID, EisaId ("PNP0A05") /* Generic Container Device */)  // _CID: Compatible ID
+            Method (CTFY, 2, NotSerialized)
+            {
+                If ((Arg0 == Zero))
+                {
+                    Notify (C000, Arg1)
+                }
+
+                If ((Arg0 == One))
+                {
+                    Notify (C001, Arg1)
+                }
+
+                If ((Arg0 == 0x02))
+                {
+                    Notify (C002, Arg1)
+                }
+
+                If ((Arg0 == 0x03))
+                {
+                    Notify (C003, Arg1)
+                }
+
+                If ((Arg0 == 0x04))
+                {
+                    Notify (C004, Arg1)
+                }
+
+                If ((Arg0 == 0x05))
+                {
+                    Notify (C005, Arg1)
+                }
+            }
+
+            Method (CSTA, 1, Serialized)
+            {
+                Acquire (\_SB.PCI0.PRES.CPLK, 0xFFFF)
+                \_SB.PCI0.PRES.CSEL = Arg0
+                Local0 = Zero
+                If ((\_SB.PCI0.PRES.CPEN == One))
+                {
+                    Local0 = 0x0F
+                }
+
+                Release (\_SB.PCI0.PRES.CPLK)
+                Return (Local0)
+            }
+
+            Method (CEJ0, 1, Serialized)
+            {
+                Acquire (\_SB.PCI0.PRES.CPLK, 0xFFFF)
+                \_SB.PCI0.PRES.CSEL = Arg0
+                \_SB.PCI0.PRES.CEJ0 = One
+                Release (\_SB.PCI0.PRES.CPLK)
+            }
+
+            Method (CSCN, 0, Serialized)
+            {
+                Acquire (\_SB.PCI0.PRES.CPLK, 0xFFFF)
+                Local0 = One
+                While ((Local0 == One))
+                {
+                    Local0 = Zero
+                    \_SB.PCI0.PRES.CCMD = Zero
+                    If ((\_SB.PCI0.PRES.CINS == One))
+                    {
+                        CTFY (\_SB.PCI0.PRES.CDAT, One)
+                        \_SB.PCI0.PRES.CINS = One
+                        Local0 = One
+                    }
+                    ElseIf ((\_SB.PCI0.PRES.CRMV == One))
+                    {
+                        CTFY (\_SB.PCI0.PRES.CDAT, 0x03)
+                        \_SB.PCI0.PRES.CRMV = One
+                        Local0 = One
+                    }
+                }
+
+                Release (\_SB.PCI0.PRES.CPLK)
+            }
+
+            Method (COST, 4, Serialized)
+            {
+                Acquire (\_SB.PCI0.PRES.CPLK, 0xFFFF)
+                \_SB.PCI0.PRES.CSEL = Arg0
+                \_SB.PCI0.PRES.CCMD = One
+                \_SB.PCI0.PRES.CDAT = Arg1
+                \_SB.PCI0.PRES.CCMD = 0x02
+                \_SB.PCI0.PRES.CDAT = Arg2
+                Release (\_SB.PCI0.PRES.CPLK)
+            }
+
+            Processor (C000, 0x00, 0x00000000, 0x00)
+            {
+                Method (_STA, 0, Serialized)  // _STA: Status
+                {
+                    Return (CSTA (Zero))
+                }
+
+                Name (_MAT, Buffer (0x08)  // _MAT: Multiple APIC Table Entry
+                {
+                     0x00, 0x08, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00   // ........
+                })
+                Method (_OST, 3, Serialized)  // _OST: OSPM Status Indication
+                {
+                    COST (Zero, Arg0, Arg1, Arg2)
+                }
+
+                Name (_PXM, Zero)  // _PXM: Device Proximity
+            }
+
+            Processor (C001, 0x01, 0x00000000, 0x00)
+            {
+                Method (_STA, 0, Serialized)  // _STA: Status
+                {
+                    Return (CSTA (One))
+                }
+
+                Name (_MAT, Buffer (0x08)  // _MAT: Multiple APIC Table Entry
+                {
+                     0x00, 0x08, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00   // ........
+                })
+                Method (_EJ0, 1, NotSerialized)  // _EJx: Eject Device, x=0-9
+                {
+                    CEJ0 (One)
+                }
+
+                Method (_OST, 3, Serialized)  // _OST: OSPM Status Indication
+                {
+                    COST (One, Arg0, Arg1, Arg2)
+                }
+
+                Name (_PXM, Zero)  // _PXM: Device Proximity
+            }
+
+            Processor (C002, 0x02, 0x00000000, 0x00)
+            {
+                Method (_STA, 0, Serialized)  // _STA: Status
+                {
+                    Return (CSTA (0x02))
+                }
+
+                Name (_MAT, Buffer (0x08)  // _MAT: Multiple APIC Table Entry
+                {
+                     0x00, 0x08, 0x02, 0x02, 0x01, 0x00, 0x00, 0x00   // ........
+                })
+                Method (_EJ0, 1, NotSerialized)  // _EJx: Eject Device, x=0-9
+                {
+                    CEJ0 (0x02)
+                }
+
+                Method (_OST, 3, Serialized)  // _OST: OSPM Status Indication
+                {
+                    COST (0x02, Arg0, Arg1, Arg2)
+                }
+
+                Name (_PXM, Zero)  // _PXM: Device Proximity
+            }
+
+            Processor (C003, 0x03, 0x00000000, 0x00)
+            {
+                Method (_STA, 0, Serialized)  // _STA: Status
+                {
+                    Return (CSTA (0x03))
+                }
+
+                Name (_MAT, Buffer (0x08)  // _MAT: Multiple APIC Table Entry
+                {
+                     0x00, 0x08, 0x03, 0x04, 0x01, 0x00, 0x00, 0x00   // ........
+                })
+                Method (_EJ0, 1, NotSerialized)  // _EJx: Eject Device, x=0-9
+                {
+                    CEJ0 (0x03)
+                }
+
+                Method (_OST, 3, Serialized)  // _OST: OSPM Status Indication
+                {
+                    COST (0x03, Arg0, Arg1, Arg2)
+                }
+
+                Name (_PXM, One)  // _PXM: Device Proximity
+            }
+
+            Processor (C004, 0x04, 0x00000000, 0x00)
+            {
+                Method (_STA, 0, Serialized)  // _STA: Status
+                {
+                    Return (CSTA (0x04))
+                }
+
+                Name (_MAT, Buffer (0x08)  // _MAT: Multiple APIC Table Entry
+                {
+                     0x00, 0x08, 0x04, 0x05, 0x01, 0x00, 0x00, 0x00   // ........
+                })
+                Method (_EJ0, 1, NotSerialized)  // _EJx: Eject Device, x=0-9
+                {
+                    CEJ0 (0x04)
+                }
+
+                Method (_OST, 3, Serialized)  // _OST: OSPM Status Indication
+                {
+                    COST (0x04, Arg0, Arg1, Arg2)
+                }
+
+                Name (_PXM, One)  // _PXM: Device Proximity
+            }
+
+            Processor (C005, 0x05, 0x00000000, 0x00)
+            {
+                Method (_STA, 0, Serialized)  // _STA: Status
+                {
+                    Return (CSTA (0x05))
+                }
+
+                Name (_MAT, Buffer (0x08)  // _MAT: Multiple APIC Table Entry
+                {
+                     0x00, 0x08, 0x05, 0x06, 0x01, 0x00, 0x00, 0x00   // ........
+                })
+                Method (_EJ0, 1, NotSerialized)  // _EJx: Eject Device, x=0-9
+                {
+                    CEJ0 (0x05)
+                }
+
+                Method (_OST, 3, Serialized)  // _OST: OSPM Status Indication
+                {
+                    COST (0x05, Arg0, Arg1, Arg2)
+                }
+
+                Name (_PXM, One)  // _PXM: Device Proximity
+            }
+        }
+    }
+
+    Method (\_GPE._E02, 0, NotSerialized)  // _Exx: Edge-Triggered GPE, xx=0x00-0xFF
+    {
+        \_SB.CPUS.CSCN ()
+    }
+
+    Scope (_GPE)
+    {
+        Name (_HID, "ACPI0006" /* GPE Block Device */)  // _HID: Hardware ID
+        Method (_E01, 0, NotSerialized)  // _Exx: Edge-Triggered GPE, xx=0x00-0xFF
+        {
+            Acquire (\_SB.PCI0.BLCK, 0xFFFF)
+            \_SB.PCI0.PCNT ()
+            Release (\_SB.PCI0.BLCK)
+        }
+    }
+
+    Scope (\_SB.PCI0)
+    {
+        Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+        {
+            WordBusNumber (ResourceProducer, MinFixed, MaxFixed, PosDecode,
+                0x0000,             // Granularity
+                0x0000,             // Range Minimum
+                0x00FF,             // Range Maximum
+                0x0000,             // Translation Offset
+                0x0100,             // Length
+                ,, )
+            IO (Decode16,
+                0x0CF8,             // Range Minimum
+                0x0CF8,             // Range Maximum
+                0x01,               // Alignment
+                0x08,               // Length
+                )
+            WordIO (ResourceProducer, MinFixed, MaxFixed, PosDecode, EntireRange,
+                0x0000,             // Granularity
+                0x0000,             // Range Minimum
+                0x0CF7,             // Range Maximum
+                0x0000,             // Translation Offset
+                0x0CF8,             // Length
+                ,, , TypeStatic, DenseTranslation)
+            WordIO (ResourceProducer, MinFixed, MaxFixed, PosDecode, EntireRange,
+                0x0000,             // Granularity
+                0x0D00,             // Range Minimum
+                0xFFFF,             // Range Maximum
+                0x0000,             // Translation Offset
+                0xF300,             // Length
+                ,, , TypeStatic, DenseTranslation)
+            DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, Cacheable, ReadWrite,
+                0x00000000,         // Granularity
+                0x000A0000,         // Range Minimum
+                0x000BFFFF,         // Range Maximum
+                0x00000000,         // Translation Offset
+                0x00020000,         // Length
+                ,, , AddressRangeMemory, TypeStatic)
+            DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, NonCacheable, ReadWrite,
+                0x00000000,         // Granularity
+                0x08000000,         // Range Minimum
+                0xFEBFFFFF,         // Range Maximum
+                0x00000000,         // Translation Offset
+                0xF6C00000,         // Length
+                ,, , AddressRangeMemory, TypeStatic)
+            QWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, Cacheable, ReadWrite,
+                0x0000000000000000, // Granularity
+                0x0000000100000000, // Range Minimum
+                0x000000017FFFFFFF, // Range Maximum
+                0x0000000000000000, // Translation Offset
+                0x0000000080000000, // Length
+                ,, , AddressRangeMemory, TypeStatic)
+        })
+        Device (GPE0)
+        {
+            Name (_HID, "PNP0A06" /* Generic Container Device */)  // _HID: Hardware ID
+            Name (_UID, "GPE0 resources")  // _UID: Unique ID
+            Name (_STA, 0x0B)  // _STA: Status
+            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+            {
+                IO (Decode16,
+                    0xAFE0,             // Range Minimum
+                    0xAFE0,             // Range Maximum
+                    0x01,               // Alignment
+                    0x04,               // Length
+                    )
+            })
+        }
+
+        Device (PHPR)
+        {
+            Name (_HID, "PNP0A06" /* Generic Container Device */)  // _HID: Hardware ID
+            Name (_UID, "PCI Hotplug resources")  // _UID: Unique ID
+            Name (_STA, 0x0B)  // _STA: Status
+            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+            {
+                IO (Decode16,
+                    0xAE00,             // Range Minimum
+                    0xAE00,             // Range Maximum
+                    0x01,               // Alignment
+                    0x14,               // Length
+                    )
+            })
+        }
+    }
+
+    Scope (\)
+    {
+        Name (_S3, Package (0x04)  // _S3_: S3 System State
+        {
+            One, 
+            One, 
+            Zero, 
+            Zero
+        })
+        Name (_S4, Package (0x04)  // _S4_: S4 System State
+        {
+            0x02, 
+            0x02, 
+            Zero, 
+            Zero
+        })
+        Name (_S5, Package (0x04)  // _S5_: S5 System State
+        {
+            Zero, 
+            Zero, 
+            Zero, 
+            Zero
+        })
+    }
+
+    Scope (\_SB.PCI0)
+    {
+        Device (FWCF)
+        {
+            Name (_HID, "QEMU0002")  // _HID: Hardware ID
+            Name (_STA, 0x0B)  // _STA: Status
+            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+            {
+                IO (Decode16,
+                    0x0510,             // Range Minimum
+                    0x0510,             // Range Maximum
+                    0x01,               // Alignment
+                    0x0C,               // Length
+                    )
+            })
+        }
+    }
+
+    Scope (\_SB)
+    {
+        Scope (PCI0)
+        {
+            Name (BSEL, Zero)
+            Device (S00)
+            {
+                Name (_ADR, Zero)  // _ADR: Address
+            }
+
+            Device (S10)
+            {
+                Name (_ADR, 0x00020000)  // _ADR: Address
+                Method (_S1D, 0, NotSerialized)  // _S1D: S1 Device State
+                {
+                    Return (Zero)
+                }
+
+                Method (_S2D, 0, NotSerialized)  // _S2D: S2 Device State
+                {
+                    Return (Zero)
+                }
+
+                Method (_S3D, 0, NotSerialized)  // _S3D: S3 Device State
+                {
+                    Return (Zero)
+                }
+            }
+
+            Device (S18)
+            {
+                Name (_SUN, 0x03)  // _SUN: Slot User Number
+                Name (_ADR, 0x00030000)  // _ADR: Address
+                Method (_EJ0, 1, NotSerialized)  // _EJx: Eject Device, x=0-9
+                {
+                    PCEJ (BSEL, _SUN)
+                }
+            }
+
+            Device (S20)
+            {
+                Name (_SUN, 0x04)  // _SUN: Slot User Number
+                Name (_ADR, 0x00040000)  // _ADR: Address
+                Method (_EJ0, 1, NotSerialized)  // _EJx: Eject Device, x=0-9
+                {
+                    PCEJ (BSEL, _SUN)
+                }
+            }
+
+            Device (S28)
+            {
+                Name (_SUN, 0x05)  // _SUN: Slot User Number
+                Name (_ADR, 0x00050000)  // _ADR: Address
+                Method (_EJ0, 1, NotSerialized)  // _EJx: Eject Device, x=0-9
+                {
+                    PCEJ (BSEL, _SUN)
+                }
+            }
+
+            Device (S30)
+            {
+                Name (_SUN, 0x06)  // _SUN: Slot User Number
+                Name (_ADR, 0x00060000)  // _ADR: Address
+                Method (_EJ0, 1, NotSerialized)  // _EJx: Eject Device, x=0-9
+                {
+                    PCEJ (BSEL, _SUN)
+                }
+            }
+
+            Device (S38)
+            {
+                Name (_SUN, 0x07)  // _SUN: Slot User Number
+                Name (_ADR, 0x00070000)  // _ADR: Address
+                Method (_EJ0, 1, NotSerialized)  // _EJx: Eject Device, x=0-9
+                {
+                    PCEJ (BSEL, _SUN)
+                }
+            }
+
+            Device (S40)
+            {
+                Name (_SUN, 0x08)  // _SUN: Slot User Number
+                Name (_ADR, 0x00080000)  // _ADR: Address
+                Method (_EJ0, 1, NotSerialized)  // _EJx: Eject Device, x=0-9
+                {
+                    PCEJ (BSEL, _SUN)
+                }
+            }
+
+            Device (S48)
+            {
+                Name (_SUN, 0x09)  // _SUN: Slot User Number
+                Name (_ADR, 0x00090000)  // _ADR: Address
+                Method (_EJ0, 1, NotSerialized)  // _EJx: Eject Device, x=0-9
+                {
+                    PCEJ (BSEL, _SUN)
+                }
+            }
+
+            Device (S50)
+            {
+                Name (_SUN, 0x0A)  // _SUN: Slot User Number
+                Name (_ADR, 0x000A0000)  // _ADR: Address
+                Method (_EJ0, 1, NotSerialized)  // _EJx: Eject Device, x=0-9
+                {
+                    PCEJ (BSEL, _SUN)
+                }
+            }
+
+            Device (S58)
+            {
+                Name (_SUN, 0x0B)  // _SUN: Slot User Number
+                Name (_ADR, 0x000B0000)  // _ADR: Address
+                Method (_EJ0, 1, NotSerialized)  // _EJx: Eject Device, x=0-9
+                {
+                    PCEJ (BSEL, _SUN)
+                }
+            }
+
+            Device (S60)
+            {
+                Name (_SUN, 0x0C)  // _SUN: Slot User Number
+                Name (_ADR, 0x000C0000)  // _ADR: Address
+                Method (_EJ0, 1, NotSerialized)  // _EJx: Eject Device, x=0-9
+                {
+                    PCEJ (BSEL, _SUN)
+                }
+            }
+
+            Device (S68)
+            {
+                Name (_SUN, 0x0D)  // _SUN: Slot User Number
+                Name (_ADR, 0x000D0000)  // _ADR: Address
+                Method (_EJ0, 1, NotSerialized)  // _EJx: Eject Device, x=0-9
+                {
+                    PCEJ (BSEL, _SUN)
+                }
+            }
+
+            Device (S70)
+            {
+                Name (_SUN, 0x0E)  // _SUN: Slot User Number
+                Name (_ADR, 0x000E0000)  // _ADR: Address
+                Method (_EJ0, 1, NotSerialized)  // _EJx: Eject Device, x=0-9
+                {
+                    PCEJ (BSEL, _SUN)
+                }
+            }
+
+            Device (S78)
+            {
+                Name (_SUN, 0x0F)  // _SUN: Slot User Number
+                Name (_ADR, 0x000F0000)  // _ADR: Address
+                Method (_EJ0, 1, NotSerialized)  // _EJx: Eject Device, x=0-9
+                {
+                    PCEJ (BSEL, _SUN)
+                }
+            }
+
+            Device (S80)
+            {
+                Name (_SUN, 0x10)  // _SUN: Slot User Number
+                Name (_ADR, 0x00100000)  // _ADR: Address
+                Method (_EJ0, 1, NotSerialized)  // _EJx: Eject Device, x=0-9
+                {
+                    PCEJ (BSEL, _SUN)
+                }
+            }
+
+            Device (S88)
+            {
+                Name (_SUN, 0x11)  // _SUN: Slot User Number
+                Name (_ADR, 0x00110000)  // _ADR: Address
+                Method (_EJ0, 1, NotSerialized)  // _EJx: Eject Device, x=0-9
+                {
+                    PCEJ (BSEL, _SUN)
+                }
+            }
+
+            Device (S90)
+            {
+                Name (_SUN, 0x12)  // _SUN: Slot User Number
+                Name (_ADR, 0x00120000)  // _ADR: Address
+                Method (_EJ0, 1, NotSerialized)  // _EJx: Eject Device, x=0-9
+                {
+                    PCEJ (BSEL, _SUN)
+                }
+            }
+
+            Device (S98)
+            {
+                Name (_SUN, 0x13)  // _SUN: Slot User Number
+                Name (_ADR, 0x00130000)  // _ADR: Address
+                Method (_EJ0, 1, NotSerialized)  // _EJx: Eject Device, x=0-9
+                {
+                    PCEJ (BSEL, _SUN)
+                }
+            }
+
+            Device (SA0)
+            {
+                Name (_SUN, 0x14)  // _SUN: Slot User Number
+                Name (_ADR, 0x00140000)  // _ADR: Address
+                Method (_EJ0, 1, NotSerialized)  // _EJx: Eject Device, x=0-9
+                {
+                    PCEJ (BSEL, _SUN)
+                }
+            }
+
+            Device (SA8)
+            {
+                Name (_SUN, 0x15)  // _SUN: Slot User Number
+                Name (_ADR, 0x00150000)  // _ADR: Address
+                Method (_EJ0, 1, NotSerialized)  // _EJx: Eject Device, x=0-9
+                {
+                    PCEJ (BSEL, _SUN)
+                }
+            }
+
+            Device (SB0)
+            {
+                Name (_SUN, 0x16)  // _SUN: Slot User Number
+                Name (_ADR, 0x00160000)  // _ADR: Address
+                Method (_EJ0, 1, NotSerialized)  // _EJx: Eject Device, x=0-9
+                {
+                    PCEJ (BSEL, _SUN)
+                }
+            }
+
+            Device (SB8)
+            {
+                Name (_SUN, 0x17)  // _SUN: Slot User Number
+                Name (_ADR, 0x00170000)  // _ADR: Address
+                Method (_EJ0, 1, NotSerialized)  // _EJx: Eject Device, x=0-9
+                {
+                    PCEJ (BSEL, _SUN)
+                }
+            }
+
+            Device (SC0)
+            {
+                Name (_SUN, 0x18)  // _SUN: Slot User Number
+                Name (_ADR, 0x00180000)  // _ADR: Address
+                Method (_EJ0, 1, NotSerialized)  // _EJx: Eject Device, x=0-9
+                {
+                    PCEJ (BSEL, _SUN)
+                }
+            }
+
+            Device (SC8)
+            {
+                Name (_SUN, 0x19)  // _SUN: Slot User Number
+                Name (_ADR, 0x00190000)  // _ADR: Address
+                Method (_EJ0, 1, NotSerialized)  // _EJx: Eject Device, x=0-9
+                {
+                    PCEJ (BSEL, _SUN)
+                }
+            }
+
+            Device (SD0)
+            {
+                Name (_SUN, 0x1A)  // _SUN: Slot User Number
+                Name (_ADR, 0x001A0000)  // _ADR: Address
+                Method (_EJ0, 1, NotSerialized)  // _EJx: Eject Device, x=0-9
+                {
+                    PCEJ (BSEL, _SUN)
+                }
+            }
+
+            Device (SD8)
+            {
+                Name (_SUN, 0x1B)  // _SUN: Slot User Number
+                Name (_ADR, 0x001B0000)  // _ADR: Address
+                Method (_EJ0, 1, NotSerialized)  // _EJx: Eject Device, x=0-9
+                {
+                    PCEJ (BSEL, _SUN)
+                }
+            }
+
+            Device (SE0)
+            {
+                Name (_SUN, 0x1C)  // _SUN: Slot User Number
+                Name (_ADR, 0x001C0000)  // _ADR: Address
+                Method (_EJ0, 1, NotSerialized)  // _EJx: Eject Device, x=0-9
+                {
+                    PCEJ (BSEL, _SUN)
+                }
+            }
+
+            Device (SE8)
+            {
+                Name (_SUN, 0x1D)  // _SUN: Slot User Number
+                Name (_ADR, 0x001D0000)  // _ADR: Address
+                Method (_EJ0, 1, NotSerialized)  // _EJx: Eject Device, x=0-9
+                {
+                    PCEJ (BSEL, _SUN)
+                }
+            }
+
+            Device (SF0)
+            {
+                Name (_SUN, 0x1E)  // _SUN: Slot User Number
+                Name (_ADR, 0x001E0000)  // _ADR: Address
+                Method (_EJ0, 1, NotSerialized)  // _EJx: Eject Device, x=0-9
+                {
+                    PCEJ (BSEL, _SUN)
+                }
+            }
+
+            Device (SF8)
+            {
+                Name (_SUN, 0x1F)  // _SUN: Slot User Number
+                Name (_ADR, 0x001F0000)  // _ADR: Address
+                Method (_EJ0, 1, NotSerialized)  // _EJx: Eject Device, x=0-9
+                {
+                    PCEJ (BSEL, _SUN)
+                }
+            }
+
+            Method (DVNT, 2, NotSerialized)
+            {
+                If ((Arg0 & 0x08))
+                {
+                    Notify (S18, Arg1)
+                }
+
+                If ((Arg0 & 0x10))
+                {
+                    Notify (S20, Arg1)
+                }
+
+                If ((Arg0 & 0x20))
+                {
+                    Notify (S28, Arg1)
+                }
+
+                If ((Arg0 & 0x40))
+                {
+                    Notify (S30, Arg1)
+                }
+
+                If ((Arg0 & 0x80))
+                {
+                    Notify (S38, Arg1)
+                }
+
+                If ((Arg0 & 0x0100))
+                {
+                    Notify (S40, Arg1)
+                }
+
+                If ((Arg0 & 0x0200))
+                {
+                    Notify (S48, Arg1)
+                }
+
+                If ((Arg0 & 0x0400))
+                {
+                    Notify (S50, Arg1)
+                }
+
+                If ((Arg0 & 0x0800))
+                {
+                    Notify (S58, Arg1)
+                }
+
+                If ((Arg0 & 0x1000))
+                {
+                    Notify (S60, Arg1)
+                }
+
+                If ((Arg0 & 0x2000))
+                {
+                    Notify (S68, Arg1)
+                }
+
+                If ((Arg0 & 0x4000))
+                {
+                    Notify (S70, Arg1)
+                }
+
+                If ((Arg0 & 0x8000))
+                {
+                    Notify (S78, Arg1)
+                }
+
+                If ((Arg0 & 0x00010000))
+                {
+                    Notify (S80, Arg1)
+                }
+
+                If ((Arg0 & 0x00020000))
+                {
+                    Notify (S88, Arg1)
+                }
+
+                If ((Arg0 & 0x00040000))
+                {
+                    Notify (S90, Arg1)
+                }
+
+                If ((Arg0 & 0x00080000))
+                {
+                    Notify (S98, Arg1)
+                }
+
+                If ((Arg0 & 0x00100000))
+                {
+                    Notify (SA0, Arg1)
+                }
+
+                If ((Arg0 & 0x00200000))
+                {
+                    Notify (SA8, Arg1)
+                }
+
+                If ((Arg0 & 0x00400000))
+                {
+                    Notify (SB0, Arg1)
+                }
+
+                If ((Arg0 & 0x00800000))
+                {
+                    Notify (SB8, Arg1)
+                }
+
+                If ((Arg0 & 0x01000000))
+                {
+                    Notify (SC0, Arg1)
+                }
+
+                If ((Arg0 & 0x02000000))
+                {
+                    Notify (SC8, Arg1)
+                }
+
+                If ((Arg0 & 0x04000000))
+                {
+                    Notify (SD0, Arg1)
+                }
+
+                If ((Arg0 & 0x08000000))
+                {
+                    Notify (SD8, Arg1)
+                }
+
+                If ((Arg0 & 0x10000000))
+                {
+                    Notify (SE0, Arg1)
+                }
+
+                If ((Arg0 & 0x20000000))
+                {
+                    Notify (SE8, Arg1)
+                }
+
+                If ((Arg0 & 0x40000000))
+                {
+                    Notify (SF0, Arg1)
+                }
+
+                If ((Arg0 & 0x80000000))
+                {
+                    Notify (SF8, Arg1)
+                }
+            }
+
+            Method (PCNT, 0, NotSerialized)
+            {
+                BNUM = Zero
+                DVNT (PCIU, One)
+                DVNT (PCID, 0x03)
+            }
+        }
+    }
+}
+
diff --git a/tests/data/acpi/pc/DSDT.dimmpxm.dsl b/tests/data/acpi/pc/DSDT.dimmpxm.dsl
new file mode 100644
index 0000000000..798056147b
--- /dev/null
+++ b/tests/data/acpi/pc/DSDT.dimmpxm.dsl
@@ -0,0 +1,1719 @@ 
+/*
+ * Intel ACPI Component Architecture
+ * AML/ASL+ Disassembler version 20190509 (64-bit version)
+ * Copyright (c) 2000 - 2019 Intel Corporation
+ * 
+ * Disassembling to symbolic ASL+ operators
+ *
+ * Disassembly of tests/data/acpi/pc/DSDT.dimmpxm, Tue Aug  4 11:14:15 2020
+ *
+ * Original Table Header:
+ *     Signature        "DSDT"
+ *     Length           0x000019BB (6587)
+ *     Revision         0x01 **** 32-bit table (V1), no 64-bit math support
+ *     Checksum         0x21
+ *     OEM ID           "BOCHS "
+ *     OEM Table ID     "BXPCDSDT"
+ *     OEM Revision     0x00000001 (1)
+ *     Compiler ID      "BXPC"
+ *     Compiler Version 0x00000001 (1)
+ */
+DefinitionBlock ("", "DSDT", 1, "BOCHS ", "BXPCDSDT", 0x00000001)
+{
+    External (_SB_.NVDR, UnknownObj)
+
+    Scope (\)
+    {
+        OperationRegion (DBG, SystemIO, 0x0402, One)
+        Field (DBG, ByteAcc, NoLock, Preserve)
+        {
+            DBGB,   8
+        }
+
+        Method (DBUG, 1, NotSerialized)
+        {
+            ToHexString (Arg0, Local0)
+            ToBuffer (Local0, Local0)
+            Local1 = (SizeOf (Local0) - One)
+            Local2 = Zero
+            While ((Local2 < Local1))
+            {
+                DBGB = DerefOf (Local0 [Local2])
+                Local2++
+            }
+
+            DBGB = 0x0A
+        }
+    }
+
+    Scope (_SB)
+    {
+        Device (PCI0)
+        {
+            Name (_HID, EisaId ("PNP0A03") /* PCI Bus */)  // _HID: Hardware ID
+            Name (_ADR, Zero)  // _ADR: Address
+            Name (_UID, Zero)  // _UID: Unique ID
+        }
+    }
+
+    Scope (_SB)
+    {
+        Device (HPET)
+        {
+            Name (_HID, EisaId ("PNP0103") /* HPET System Timer */)  // _HID: Hardware ID
+            Name (_UID, Zero)  // _UID: Unique ID
+            OperationRegion (HPTM, SystemMemory, 0xFED00000, 0x0400)
+            Field (HPTM, DWordAcc, Lock, Preserve)
+            {
+                VEND,   32, 
+                PRD,    32
+            }
+
+            Method (_STA, 0, NotSerialized)  // _STA: Status
+            {
+                Local0 = VEND /* \_SB_.HPET.VEND */
+                Local1 = PRD /* \_SB_.HPET.PRD_ */
+                Local0 >>= 0x10
+                If (((Local0 == Zero) || (Local0 == 0xFFFF)))
+                {
+                    Return (Zero)
+                }
+
+                If (((Local1 == Zero) || (Local1 > 0x05F5E100)))
+                {
+                    Return (Zero)
+                }
+
+                Return (0x0F)
+            }
+
+            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+            {
+                Memory32Fixed (ReadOnly,
+                    0xFED00000,         // Address Base
+                    0x00000400,         // Address Length
+                    )
+            })
+        }
+    }
+
+    Scope (_SB.PCI0)
+    {
+        Device (ISA)
+        {
+            Name (_ADR, 0x00010000)  // _ADR: Address
+            OperationRegion (P40C, PCI_Config, 0x60, 0x04)
+        }
+    }
+
+    Scope (_SB.PCI0.ISA)
+    {
+        Device (KBD)
+        {
+            Name (_HID, EisaId ("PNP0303") /* IBM Enhanced Keyboard (101/102-key, PS/2 Mouse) */)  // _HID: Hardware ID
+            Name (_STA, 0x0F)  // _STA: Status
+            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+            {
+                IO (Decode16,
+                    0x0060,             // Range Minimum
+                    0x0060,             // Range Maximum
+                    0x01,               // Alignment
+                    0x01,               // Length
+                    )
+                IO (Decode16,
+                    0x0064,             // Range Minimum
+                    0x0064,             // Range Maximum
+                    0x01,               // Alignment
+                    0x01,               // Length
+                    )
+                IRQNoFlags ()
+                    {1}
+            })
+        }
+
+        Device (MOU)
+        {
+            Name (_HID, EisaId ("PNP0F13") /* PS/2 Mouse */)  // _HID: Hardware ID
+            Name (_STA, 0x0F)  // _STA: Status
+            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+            {
+                IRQNoFlags ()
+                    {12}
+            })
+        }
+
+        Device (FDC0)
+        {
+            Name (_HID, EisaId ("PNP0700"))  // _HID: Hardware ID
+            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+            {
+                IO (Decode16,
+                    0x03F2,             // Range Minimum
+                    0x03F2,             // Range Maximum
+                    0x00,               // Alignment
+                    0x04,               // Length
+                    )
+                IO (Decode16,
+                    0x03F7,             // Range Minimum
+                    0x03F7,             // Range Maximum
+                    0x00,               // Alignment
+                    0x01,               // Length
+                    )
+                IRQNoFlags ()
+                    {6}
+                DMA (Compatibility, NotBusMaster, Transfer8, )
+                    {2}
+            })
+            Device (FLPA)
+            {
+                Name (_ADR, Zero)  // _ADR: Address
+                Name (_FDI, Package (0x10)  // _FDI: Floppy Drive Information
+                {
+                    Zero, 
+                    0x05, 
+                    0x4F, 
+                    0x30, 
+                    One, 
+                    0xAF, 
+                    0x02, 
+                    0x25, 
+                    0x02, 
+                    0x12, 
+                    0x1B, 
+                    0xFF, 
+                    0x6C, 
+                    0xF6, 
+                    0x0F, 
+                    0x08
+                })
+            }
+
+            Name (_FDE, Buffer (0x14)  // _FDE: Floppy Disk Enumerate
+            {
+                /* 0000 */  0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,  // ........
+                /* 0008 */  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,  // ........
+                /* 0010 */  0x02, 0x00, 0x00, 0x00                           // ....
+            })
+        }
+
+        Device (LPT1)
+        {
+            Name (_HID, EisaId ("PNP0400") /* Standard LPT Parallel Port */)  // _HID: Hardware ID
+            Name (_UID, One)  // _UID: Unique ID
+            Name (_STA, 0x0F)  // _STA: Status
+            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+            {
+                IO (Decode16,
+                    0x0378,             // Range Minimum
+                    0x0378,             // Range Maximum
+                    0x08,               // Alignment
+                    0x08,               // Length
+                    )
+                IRQNoFlags ()
+                    {7}
+            })
+        }
+
+        Device (COM1)
+        {
+            Name (_HID, EisaId ("PNP0501") /* 16550A-compatible COM Serial Port */)  // _HID: Hardware ID
+            Name (_UID, One)  // _UID: Unique ID
+            Name (_STA, 0x0F)  // _STA: Status
+            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+            {
+                IO (Decode16,
+                    0x03F8,             // Range Minimum
+                    0x03F8,             // Range Maximum
+                    0x00,               // Alignment
+                    0x08,               // Length
+                    )
+                IRQNoFlags ()
+                    {4}
+            })
+        }
+
+        Device (RTC)
+        {
+            Name (_HID, EisaId ("PNP0B00") /* AT Real-Time Clock */)  // _HID: Hardware ID
+            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+            {
+                IO (Decode16,
+                    0x0070,             // Range Minimum
+                    0x0070,             // Range Maximum
+                    0x01,               // Alignment
+                    0x08,               // Length
+                    )
+                IRQNoFlags ()
+                    {8}
+            })
+        }
+    }
+
+    Scope (_SB.PCI0)
+    {
+        OperationRegion (PCST, SystemIO, 0xAE00, 0x08)
+        Field (PCST, DWordAcc, NoLock, WriteAsZeros)
+        {
+            PCIU,   32, 
+            PCID,   32
+        }
+
+        OperationRegion (SEJ, SystemIO, 0xAE08, 0x04)
+        Field (SEJ, DWordAcc, NoLock, WriteAsZeros)
+        {
+            B0EJ,   32
+        }
+
+        OperationRegion (BNMR, SystemIO, 0xAE10, 0x04)
+        Field (BNMR, DWordAcc, NoLock, WriteAsZeros)
+        {
+            BNUM,   32
+        }
+
+        Mutex (BLCK, 0x00)
+        Method (PCEJ, 2, NotSerialized)
+        {
+            Acquire (BLCK, 0xFFFF)
+            BNUM = Arg0
+            B0EJ = (One << Arg1)
+            Release (BLCK)
+            Return (Zero)
+        }
+    }
+
+    Scope (_SB)
+    {
+        Scope (PCI0)
+        {
+            Method (_PRT, 0, NotSerialized)  // _PRT: PCI Routing Table
+            {
+                Local0 = Package (0x80){}
+                Local1 = Zero
+                While ((Local1 < 0x80))
+                {
+                    Local2 = (Local1 >> 0x02)
+                    Local3 = ((Local1 + Local2) & 0x03)
+                    If ((Local3 == Zero))
+                    {
+                        Local4 = Package (0x04)
+                            {
+                                Zero, 
+                                Zero, 
+                                LNKD, 
+                                Zero
+                            }
+                    }
+
+                    If ((Local3 == One))
+                    {
+                        If ((Local1 == 0x04))
+                        {
+                            Local4 = Package (0x04)
+                                {
+                                    Zero, 
+                                    Zero, 
+                                    LNKS, 
+                                    Zero
+                                }
+                        }
+                        Else
+                        {
+                            Local4 = Package (0x04)
+                                {
+                                    Zero, 
+                                    Zero, 
+                                    LNKA, 
+                                    Zero
+                                }
+                        }
+                    }
+
+                    If ((Local3 == 0x02))
+                    {
+                        Local4 = Package (0x04)
+                            {
+                                Zero, 
+                                Zero, 
+                                LNKB, 
+                                Zero
+                            }
+                    }
+
+                    If ((Local3 == 0x03))
+                    {
+                        Local4 = Package (0x04)
+                            {
+                                Zero, 
+                                Zero, 
+                                LNKC, 
+                                Zero
+                            }
+                    }
+
+                    Local4 [Zero] = ((Local2 << 0x10) | 0xFFFF)
+                    Local4 [One] = (Local1 & 0x03)
+                    Local0 [Local1] = Local4
+                    Local1++
+                }
+
+                Return (Local0)
+            }
+        }
+
+        Field (PCI0.ISA.P40C, ByteAcc, NoLock, Preserve)
+        {
+            PRQ0,   8, 
+            PRQ1,   8, 
+            PRQ2,   8, 
+            PRQ3,   8
+        }
+
+        Method (IQST, 1, NotSerialized)
+        {
+            If ((0x80 & Arg0))
+            {
+                Return (0x09)
+            }
+
+            Return (0x0B)
+        }
+
+        Method (IQCR, 1, Serialized)
+        {
+            Name (PRR0, ResourceTemplate ()
+            {
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, _Y00)
+                {
+                    0x00000000,
+                }
+            })
+            CreateDWordField (PRR0, \_SB.IQCR._Y00._INT, PRRI)  // _INT: Interrupts
+            If ((Arg0 < 0x80))
+            {
+                PRRI = Arg0
+            }
+
+            Return (PRR0) /* \_SB_.IQCR.PRR0 */
+        }
+
+        Device (LNKA)
+        {
+            Name (_HID, EisaId ("PNP0C0F") /* PCI Interrupt Link Device */)  // _HID: Hardware ID
+            Name (_UID, Zero)  // _UID: Unique ID
+            Name (_PRS, ResourceTemplate ()  // _PRS: Possible Resource Settings
+            {
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, )
+                {
+                    0x00000005,
+                    0x0000000A,
+                    0x0000000B,
+                }
+            })
+            Method (_STA, 0, NotSerialized)  // _STA: Status
+            {
+                Return (IQST (PRQ0))
+            }
+
+            Method (_DIS, 0, NotSerialized)  // _DIS: Disable Device
+            {
+                PRQ0 |= 0x80
+            }
+
+            Method (_CRS, 0, NotSerialized)  // _CRS: Current Resource Settings
+            {
+                Return (IQCR (PRQ0))
+            }
+
+            Method (_SRS, 1, NotSerialized)  // _SRS: Set Resource Settings
+            {
+                CreateDWordField (Arg0, 0x05, PRRI)
+                PRQ0 = PRRI /* \_SB_.LNKA._SRS.PRRI */
+            }
+        }
+
+        Device (LNKB)
+        {
+            Name (_HID, EisaId ("PNP0C0F") /* PCI Interrupt Link Device */)  // _HID: Hardware ID
+            Name (_UID, One)  // _UID: Unique ID
+            Name (_PRS, ResourceTemplate ()  // _PRS: Possible Resource Settings
+            {
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, )
+                {
+                    0x00000005,
+                    0x0000000A,
+                    0x0000000B,
+                }
+            })
+            Method (_STA, 0, NotSerialized)  // _STA: Status
+            {
+                Return (IQST (PRQ1))
+            }
+
+            Method (_DIS, 0, NotSerialized)  // _DIS: Disable Device
+            {
+                PRQ1 |= 0x80
+            }
+
+            Method (_CRS, 0, NotSerialized)  // _CRS: Current Resource Settings
+            {
+                Return (IQCR (PRQ1))
+            }
+
+            Method (_SRS, 1, NotSerialized)  // _SRS: Set Resource Settings
+            {
+                CreateDWordField (Arg0, 0x05, PRRI)
+                PRQ1 = PRRI /* \_SB_.LNKB._SRS.PRRI */
+            }
+        }
+
+        Device (LNKC)
+        {
+            Name (_HID, EisaId ("PNP0C0F") /* PCI Interrupt Link Device */)  // _HID: Hardware ID
+            Name (_UID, 0x02)  // _UID: Unique ID
+            Name (_PRS, ResourceTemplate ()  // _PRS: Possible Resource Settings
+            {
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, )
+                {
+                    0x00000005,
+                    0x0000000A,
+                    0x0000000B,
+                }
+            })
+            Method (_STA, 0, NotSerialized)  // _STA: Status
+            {
+                Return (IQST (PRQ2))
+            }
+
+            Method (_DIS, 0, NotSerialized)  // _DIS: Disable Device
+            {
+                PRQ2 |= 0x80
+            }
+
+            Method (_CRS, 0, NotSerialized)  // _CRS: Current Resource Settings
+            {
+                Return (IQCR (PRQ2))
+            }
+
+            Method (_SRS, 1, NotSerialized)  // _SRS: Set Resource Settings
+            {
+                CreateDWordField (Arg0, 0x05, PRRI)
+                PRQ2 = PRRI /* \_SB_.LNKC._SRS.PRRI */
+            }
+        }
+
+        Device (LNKD)
+        {
+            Name (_HID, EisaId ("PNP0C0F") /* PCI Interrupt Link Device */)  // _HID: Hardware ID
+            Name (_UID, 0x03)  // _UID: Unique ID
+            Name (_PRS, ResourceTemplate ()  // _PRS: Possible Resource Settings
+            {
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, )
+                {
+                    0x00000005,
+                    0x0000000A,
+                    0x0000000B,
+                }
+            })
+            Method (_STA, 0, NotSerialized)  // _STA: Status
+            {
+                Return (IQST (PRQ3))
+            }
+
+            Method (_DIS, 0, NotSerialized)  // _DIS: Disable Device
+            {
+                PRQ3 |= 0x80
+            }
+
+            Method (_CRS, 0, NotSerialized)  // _CRS: Current Resource Settings
+            {
+                Return (IQCR (PRQ3))
+            }
+
+            Method (_SRS, 1, NotSerialized)  // _SRS: Set Resource Settings
+            {
+                CreateDWordField (Arg0, 0x05, PRRI)
+                PRQ3 = PRRI /* \_SB_.LNKD._SRS.PRRI */
+            }
+        }
+
+        Device (LNKS)
+        {
+            Name (_HID, EisaId ("PNP0C0F") /* PCI Interrupt Link Device */)  // _HID: Hardware ID
+            Name (_UID, 0x04)  // _UID: Unique ID
+            Name (_PRS, ResourceTemplate ()  // _PRS: Possible Resource Settings
+            {
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, )
+                {
+                    0x00000009,
+                }
+            })
+            Method (_STA, 0, NotSerialized)  // _STA: Status
+            {
+                Return (0x0B)
+            }
+
+            Method (_DIS, 0, NotSerialized)  // _DIS: Disable Device
+            {
+            }
+
+            Method (_CRS, 0, NotSerialized)  // _CRS: Current Resource Settings
+            {
+                Return (_PRS) /* \_SB_.LNKS._PRS */
+            }
+
+            Method (_SRS, 1, NotSerialized)  // _SRS: Set Resource Settings
+            {
+            }
+        }
+    }
+
+    Scope (_SB)
+    {
+        Device (\_SB.PCI0.PRES)
+        {
+            Name (_HID, EisaId ("PNP0A06") /* Generic Container Device */)  // _HID: Hardware ID
+            Name (_UID, "CPU Hotplug resources")  // _UID: Unique ID
+            Mutex (CPLK, 0x00)
+            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+            {
+                IO (Decode16,
+                    0xAF00,             // Range Minimum
+                    0xAF00,             // Range Maximum
+                    0x01,               // Alignment
+                    0x0C,               // Length
+                    )
+            })
+            OperationRegion (PRST, SystemIO, 0xAF00, 0x0C)
+            Field (PRST, ByteAcc, NoLock, WriteAsZeros)
+            {
+                Offset (0x04), 
+                CPEN,   1, 
+                CINS,   1, 
+                CRMV,   1, 
+                CEJ0,   1, 
+                Offset (0x05), 
+                CCMD,   8
+            }
+
+            Field (PRST, DWordAcc, NoLock, Preserve)
+            {
+                CSEL,   32, 
+                Offset (0x08), 
+                CDAT,   32
+            }
+
+            Method (_INI, 0, Serialized)  // _INI: Initialize
+            {
+                CSEL = Zero
+            }
+        }
+
+        Device (\_SB.CPUS)
+        {
+            Name (_HID, "ACPI0010" /* Processor Container Device */)  // _HID: Hardware ID
+            Name (_CID, EisaId ("PNP0A05") /* Generic Container Device */)  // _CID: Compatible ID
+            Method (CTFY, 2, NotSerialized)
+            {
+                If ((Arg0 == Zero))
+                {
+                    Notify (C000, Arg1)
+                }
+
+                If ((Arg0 == One))
+                {
+                    Notify (C001, Arg1)
+                }
+
+                If ((Arg0 == 0x02))
+                {
+                    Notify (C002, Arg1)
+                }
+
+                If ((Arg0 == 0x03))
+                {
+                    Notify (C003, Arg1)
+                }
+            }
+
+            Method (CSTA, 1, Serialized)
+            {
+                Acquire (\_SB.PCI0.PRES.CPLK, 0xFFFF)
+                \_SB.PCI0.PRES.CSEL = Arg0
+                Local0 = Zero
+                If ((\_SB.PCI0.PRES.CPEN == One))
+                {
+                    Local0 = 0x0F
+                }
+
+                Release (\_SB.PCI0.PRES.CPLK)
+                Return (Local0)
+            }
+
+            Method (CEJ0, 1, Serialized)
+            {
+                Acquire (\_SB.PCI0.PRES.CPLK, 0xFFFF)
+                \_SB.PCI0.PRES.CSEL = Arg0
+                \_SB.PCI0.PRES.CEJ0 = One
+                Release (\_SB.PCI0.PRES.CPLK)
+            }
+
+            Method (CSCN, 0, Serialized)
+            {
+                Acquire (\_SB.PCI0.PRES.CPLK, 0xFFFF)
+                Local0 = One
+                While ((Local0 == One))
+                {
+                    Local0 = Zero
+                    \_SB.PCI0.PRES.CCMD = Zero
+                    If ((\_SB.PCI0.PRES.CINS == One))
+                    {
+                        CTFY (\_SB.PCI0.PRES.CDAT, One)
+                        \_SB.PCI0.PRES.CINS = One
+                        Local0 = One
+                    }
+                    ElseIf ((\_SB.PCI0.PRES.CRMV == One))
+                    {
+                        CTFY (\_SB.PCI0.PRES.CDAT, 0x03)
+                        \_SB.PCI0.PRES.CRMV = One
+                        Local0 = One
+                    }
+                }
+
+                Release (\_SB.PCI0.PRES.CPLK)
+            }
+
+            Method (COST, 4, Serialized)
+            {
+                Acquire (\_SB.PCI0.PRES.CPLK, 0xFFFF)
+                \_SB.PCI0.PRES.CSEL = Arg0
+                \_SB.PCI0.PRES.CCMD = One
+                \_SB.PCI0.PRES.CDAT = Arg1
+                \_SB.PCI0.PRES.CCMD = 0x02
+                \_SB.PCI0.PRES.CDAT = Arg2
+                Release (\_SB.PCI0.PRES.CPLK)
+            }
+
+            Processor (C000, 0x00, 0x00000000, 0x00)
+            {
+                Method (_STA, 0, Serialized)  // _STA: Status
+                {
+                    Return (CSTA (Zero))
+                }
+
+                Name (_MAT, Buffer (0x08)  // _MAT: Multiple APIC Table Entry
+                {
+                     0x00, 0x08, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00   // ........
+                })
+                Method (_OST, 3, Serialized)  // _OST: OSPM Status Indication
+                {
+                    COST (Zero, Arg0, Arg1, Arg2)
+                }
+
+                Name (_PXM, Zero)  // _PXM: Device Proximity
+            }
+
+            Processor (C001, 0x01, 0x00000000, 0x00)
+            {
+                Method (_STA, 0, Serialized)  // _STA: Status
+                {
+                    Return (CSTA (One))
+                }
+
+                Name (_MAT, Buffer (0x08)  // _MAT: Multiple APIC Table Entry
+                {
+                     0x00, 0x08, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00   // ........
+                })
+                Method (_EJ0, 1, NotSerialized)  // _EJx: Eject Device, x=0-9
+                {
+                    CEJ0 (One)
+                }
+
+                Method (_OST, 3, Serialized)  // _OST: OSPM Status Indication
+                {
+                    COST (One, Arg0, Arg1, Arg2)
+                }
+
+                Name (_PXM, One)  // _PXM: Device Proximity
+            }
+
+            Processor (C002, 0x02, 0x00000000, 0x00)
+            {
+                Method (_STA, 0, Serialized)  // _STA: Status
+                {
+                    Return (CSTA (0x02))
+                }
+
+                Name (_MAT, Buffer (0x08)  // _MAT: Multiple APIC Table Entry
+                {
+                     0x00, 0x08, 0x02, 0x02, 0x01, 0x00, 0x00, 0x00   // ........
+                })
+                Method (_EJ0, 1, NotSerialized)  // _EJx: Eject Device, x=0-9
+                {
+                    CEJ0 (0x02)
+                }
+
+                Method (_OST, 3, Serialized)  // _OST: OSPM Status Indication
+                {
+                    COST (0x02, Arg0, Arg1, Arg2)
+                }
+
+                Name (_PXM, 0x02)  // _PXM: Device Proximity
+            }
+
+            Processor (C003, 0x03, 0x00000000, 0x00)
+            {
+                Method (_STA, 0, Serialized)  // _STA: Status
+                {
+                    Return (CSTA (0x03))
+                }
+
+                Name (_MAT, Buffer (0x08)  // _MAT: Multiple APIC Table Entry
+                {
+                     0x00, 0x08, 0x03, 0x03, 0x01, 0x00, 0x00, 0x00   // ........
+                })
+                Method (_EJ0, 1, NotSerialized)  // _EJx: Eject Device, x=0-9
+                {
+                    CEJ0 (0x03)
+                }
+
+                Method (_OST, 3, Serialized)  // _OST: OSPM Status Indication
+                {
+                    COST (0x03, Arg0, Arg1, Arg2)
+                }
+
+                Name (_PXM, 0x03)  // _PXM: Device Proximity
+            }
+        }
+    }
+
+    Method (\_GPE._E02, 0, NotSerialized)  // _Exx: Edge-Triggered GPE, xx=0x00-0xFF
+    {
+        \_SB.CPUS.CSCN ()
+    }
+
+    Device (\_SB.PCI0.MHPD)
+    {
+        Name (_HID, "PNP0A06" /* Generic Container Device */)  // _HID: Hardware ID
+        Name (_UID, "Memory hotplug resources")  // _UID: Unique ID
+        Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+        {
+            IO (Decode16,
+                0x0A00,             // Range Minimum
+                0x0A00,             // Range Maximum
+                0x00,               // Alignment
+                0x18,               // Length
+                )
+        })
+        OperationRegion (HPMR, SystemIO, 0x0A00, 0x18)
+    }
+
+    Device (\_SB.MHPC)
+    {
+        Name (_HID, "PNP0A06" /* Generic Container Device */)  // _HID: Hardware ID
+        Name (_UID, "DIMM devices")  // _UID: Unique ID
+        Name (MDNR, 0x03)
+        Field (\_SB.PCI0.MHPD.HPMR, DWordAcc, NoLock, Preserve)
+        {
+            MRBL,   32, 
+            MRBH,   32, 
+            MRLL,   32, 
+            MRLH,   32, 
+            MPX,    32
+        }
+
+        Field (\_SB.PCI0.MHPD.HPMR, ByteAcc, NoLock, WriteAsZeros)
+        {
+            Offset (0x14), 
+            MES,    1, 
+            MINS,   1, 
+            MRMV,   1, 
+            MEJ,    1
+        }
+
+        Field (\_SB.PCI0.MHPD.HPMR, DWordAcc, NoLock, Preserve)
+        {
+            MSEL,   32, 
+            MOEV,   32, 
+            MOSC,   32
+        }
+
+        Method (_STA, 0, NotSerialized)  // _STA: Status
+        {
+            If ((MDNR == Zero))
+            {
+                Return (Zero)
+            }
+
+            Return (0x0B)
+        }
+
+        Mutex (MLCK, 0x00)
+        Method (MSCN, 0, NotSerialized)
+        {
+            If ((MDNR == Zero))
+            {
+                Return (Zero)
+            }
+
+            Local0 = Zero
+            Acquire (MLCK, 0xFFFF)
+            While ((Local0 < MDNR))
+            {
+                MSEL = Local0
+                If ((MINS == One))
+                {
+                    MTFY (Local0, One)
+                    MINS = One
+                }
+                ElseIf ((MRMV == One))
+                {
+                    MTFY (Local0, 0x03)
+                    MRMV = One
+                }
+
+                Local0 += One
+            }
+
+            Release (MLCK)
+            Return (One)
+        }
+
+        Method (MRST, 1, NotSerialized)
+        {
+            Local0 = Zero
+            Acquire (MLCK, 0xFFFF)
+            MSEL = ToInteger (Arg0)
+            If ((MES == One))
+            {
+                Local0 = 0x0F
+            }
+
+            Release (MLCK)
+            Return (Local0)
+        }
+
+        Method (MCRS, 1, Serialized)
+        {
+            Acquire (MLCK, 0xFFFF)
+            MSEL = ToInteger (Arg0)
+            Name (MR64, ResourceTemplate ()
+            {
+                QWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, Cacheable, ReadWrite,
+                    0x0000000000000000, // Granularity
+                    0x0000000000000000, // Range Minimum
+                    0xFFFFFFFFFFFFFFFE, // Range Maximum
+                    0x0000000000000000, // Translation Offset
+                    0xFFFFFFFFFFFFFFFF, // Length
+                    ,, _Y01, AddressRangeMemory, TypeStatic)
+            })
+            CreateDWordField (MR64, \_SB.MHPC.MCRS._Y01._MIN, MINL)  // _MIN: Minimum Base Address
+            CreateDWordField (MR64, 0x12, MINH)
+            CreateDWordField (MR64, \_SB.MHPC.MCRS._Y01._LEN, LENL)  // _LEN: Length
+            CreateDWordField (MR64, 0x2A, LENH)
+            CreateDWordField (MR64, \_SB.MHPC.MCRS._Y01._MAX, MAXL)  // _MAX: Maximum Base Address
+            CreateDWordField (MR64, 0x1A, MAXH)
+            MINH = MRBH /* \_SB_.MHPC.MRBH */
+            MINL = MRBL /* \_SB_.MHPC.MRBL */
+            LENH = MRLH /* \_SB_.MHPC.MRLH */
+            LENL = MRLL /* \_SB_.MHPC.MRLL */
+            MAXL = (MINL + LENL) /* \_SB_.MHPC.MCRS.LENL */
+            MAXH = (MINH + LENH) /* \_SB_.MHPC.MCRS.LENH */
+            If ((MAXL < MINL))
+            {
+                MAXH += One
+            }
+
+            If ((MAXL < One))
+            {
+                MAXH -= One
+            }
+
+            MAXL -= One
+            If ((MAXH == Zero))
+            {
+                Name (MR32, ResourceTemplate ()
+                {
+                    DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, Cacheable, ReadWrite,
+                        0x00000000,         // Granularity
+                        0x00000000,         // Range Minimum
+                        0xFFFFFFFE,         // Range Maximum
+                        0x00000000,         // Translation Offset
+                        0xFFFFFFFF,         // Length
+                        ,, _Y02, AddressRangeMemory, TypeStatic)
+                })
+                CreateDWordField (MR32, \_SB.MHPC.MCRS._Y02._MIN, MIN)  // _MIN: Minimum Base Address
+                CreateDWordField (MR32, \_SB.MHPC.MCRS._Y02._MAX, MAX)  // _MAX: Maximum Base Address
+                CreateDWordField (MR32, \_SB.MHPC.MCRS._Y02._LEN, LEN)  // _LEN: Length
+                MIN = MINL /* \_SB_.MHPC.MCRS.MINL */
+                MAX = MAXL /* \_SB_.MHPC.MCRS.MAXL */
+                LEN = LENL /* \_SB_.MHPC.MCRS.LENL */
+                Release (MLCK)
+                Return (MR32) /* \_SB_.MHPC.MCRS.MR32 */
+            }
+
+            Release (MLCK)
+            Return (MR64) /* \_SB_.MHPC.MCRS.MR64 */
+        }
+
+        Method (MPXM, 1, NotSerialized)
+        {
+            Acquire (MLCK, 0xFFFF)
+            MSEL = ToInteger (Arg0)
+            Local0 = MPX /* \_SB_.MHPC.MPX_ */
+            Release (MLCK)
+            Return (Local0)
+        }
+
+        Method (MOST, 4, NotSerialized)
+        {
+            Acquire (MLCK, 0xFFFF)
+            MSEL = ToInteger (Arg0)
+            MOEV = Arg1
+            MOSC = Arg2
+            Release (MLCK)
+        }
+
+        Method (MEJ0, 2, NotSerialized)
+        {
+            Acquire (MLCK, 0xFFFF)
+            MSEL = ToInteger (Arg0)
+            MEJ = One
+            Release (MLCK)
+        }
+
+        Device (MP00)
+        {
+            Name (_UID, "0x00")  // _UID: Unique ID
+            Name (_HID, EisaId ("PNP0C80") /* Memory Device */)  // _HID: Hardware ID
+            Method (_CRS, 0, NotSerialized)  // _CRS: Current Resource Settings
+            {
+                Return (MCRS (_UID))
+            }
+
+            Method (_STA, 0, NotSerialized)  // _STA: Status
+            {
+                Return (MRST (_UID))
+            }
+
+            Method (_PXM, 0, NotSerialized)  // _PXM: Device Proximity
+            {
+                Return (MPXM (_UID))
+            }
+
+            Method (_OST, 3, NotSerialized)  // _OST: OSPM Status Indication
+            {
+                MOST (_UID, Arg0, Arg1, Arg2)
+            }
+
+            Method (_EJ0, 1, NotSerialized)  // _EJx: Eject Device, x=0-9
+            {
+                MEJ0 (_UID, Arg0)
+            }
+        }
+
+        Device (MP01)
+        {
+            Name (_UID, "0x01")  // _UID: Unique ID
+            Name (_HID, EisaId ("PNP0C80") /* Memory Device */)  // _HID: Hardware ID
+            Method (_CRS, 0, NotSerialized)  // _CRS: Current Resource Settings
+            {
+                Return (MCRS (_UID))
+            }
+
+            Method (_STA, 0, NotSerialized)  // _STA: Status
+            {
+                Return (MRST (_UID))
+            }
+
+            Method (_PXM, 0, NotSerialized)  // _PXM: Device Proximity
+            {
+                Return (MPXM (_UID))
+            }
+
+            Method (_OST, 3, NotSerialized)  // _OST: OSPM Status Indication
+            {
+                MOST (_UID, Arg0, Arg1, Arg2)
+            }
+
+            Method (_EJ0, 1, NotSerialized)  // _EJx: Eject Device, x=0-9
+            {
+                MEJ0 (_UID, Arg0)
+            }
+        }
+
+        Device (MP02)
+        {
+            Name (_UID, "0x02")  // _UID: Unique ID
+            Name (_HID, EisaId ("PNP0C80") /* Memory Device */)  // _HID: Hardware ID
+            Method (_CRS, 0, NotSerialized)  // _CRS: Current Resource Settings
+            {
+                Return (MCRS (_UID))
+            }
+
+            Method (_STA, 0, NotSerialized)  // _STA: Status
+            {
+                Return (MRST (_UID))
+            }
+
+            Method (_PXM, 0, NotSerialized)  // _PXM: Device Proximity
+            {
+                Return (MPXM (_UID))
+            }
+
+            Method (_OST, 3, NotSerialized)  // _OST: OSPM Status Indication
+            {
+                MOST (_UID, Arg0, Arg1, Arg2)
+            }
+
+            Method (_EJ0, 1, NotSerialized)  // _EJx: Eject Device, x=0-9
+            {
+                MEJ0 (_UID, Arg0)
+            }
+        }
+
+        Method (MTFY, 2, NotSerialized)
+        {
+            If ((Arg0 == Zero))
+            {
+                Notify (MP00, Arg1)
+            }
+
+            If ((Arg0 == One))
+            {
+                Notify (MP01, Arg1)
+            }
+
+            If ((Arg0 == 0x02))
+            {
+                Notify (MP02, Arg1)
+            }
+        }
+    }
+
+    Method (\_GPE._E03, 0, NotSerialized)  // _Exx: Edge-Triggered GPE, xx=0x00-0xFF
+    {
+        \_SB.MHPC.MSCN ()
+    }
+
+    Scope (_GPE)
+    {
+        Name (_HID, "ACPI0006" /* GPE Block Device */)  // _HID: Hardware ID
+        Method (_E01, 0, NotSerialized)  // _Exx: Edge-Triggered GPE, xx=0x00-0xFF
+        {
+            Acquire (\_SB.PCI0.BLCK, 0xFFFF)
+            \_SB.PCI0.PCNT ()
+            Release (\_SB.PCI0.BLCK)
+        }
+
+        Method (_E04, 0, NotSerialized)  // _Exx: Edge-Triggered GPE, xx=0x00-0xFF
+        {
+            Notify (\_SB.NVDR, 0x80) // Status Change
+        }
+    }
+
+    Scope (\_SB.PCI0)
+    {
+        Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+        {
+            WordBusNumber (ResourceProducer, MinFixed, MaxFixed, PosDecode,
+                0x0000,             // Granularity
+                0x0000,             // Range Minimum
+                0x00FF,             // Range Maximum
+                0x0000,             // Translation Offset
+                0x0100,             // Length
+                ,, )
+            IO (Decode16,
+                0x0CF8,             // Range Minimum
+                0x0CF8,             // Range Maximum
+                0x01,               // Alignment
+                0x08,               // Length
+                )
+            WordIO (ResourceProducer, MinFixed, MaxFixed, PosDecode, EntireRange,
+                0x0000,             // Granularity
+                0x0000,             // Range Minimum
+                0x0CF7,             // Range Maximum
+                0x0000,             // Translation Offset
+                0x0CF8,             // Length
+                ,, , TypeStatic, DenseTranslation)
+            WordIO (ResourceProducer, MinFixed, MaxFixed, PosDecode, EntireRange,
+                0x0000,             // Granularity
+                0x0D00,             // Range Minimum
+                0xFFFF,             // Range Maximum
+                0x0000,             // Translation Offset
+                0xF300,             // Length
+                ,, , TypeStatic, DenseTranslation)
+            DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, Cacheable, ReadWrite,
+                0x00000000,         // Granularity
+                0x000A0000,         // Range Minimum
+                0x000BFFFF,         // Range Maximum
+                0x00000000,         // Translation Offset
+                0x00020000,         // Length
+                ,, , AddressRangeMemory, TypeStatic)
+            DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, NonCacheable, ReadWrite,
+                0x00000000,         // Granularity
+                0x08000000,         // Range Minimum
+                0xFEBFFFFF,         // Range Maximum
+                0x00000000,         // Translation Offset
+                0xF6C00000,         // Length
+                ,, , AddressRangeMemory, TypeStatic)
+            QWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, Cacheable, ReadWrite,
+                0x0000000000000000, // Granularity
+                0x0000000200000000, // Range Minimum
+                0x000000027FFFFFFF, // Range Maximum
+                0x0000000000000000, // Translation Offset
+                0x0000000080000000, // Length
+                ,, , AddressRangeMemory, TypeStatic)
+        })
+        Device (GPE0)
+        {
+            Name (_HID, "PNP0A06" /* Generic Container Device */)  // _HID: Hardware ID
+            Name (_UID, "GPE0 resources")  // _UID: Unique ID
+            Name (_STA, 0x0B)  // _STA: Status
+            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+            {
+                IO (Decode16,
+                    0xAFE0,             // Range Minimum
+                    0xAFE0,             // Range Maximum
+                    0x01,               // Alignment
+                    0x04,               // Length
+                    )
+            })
+        }
+
+        Device (PHPR)
+        {
+            Name (_HID, "PNP0A06" /* Generic Container Device */)  // _HID: Hardware ID
+            Name (_UID, "PCI Hotplug resources")  // _UID: Unique ID
+            Name (_STA, 0x0B)  // _STA: Status
+            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+            {
+                IO (Decode16,
+                    0xAE00,             // Range Minimum
+                    0xAE00,             // Range Maximum
+                    0x01,               // Alignment
+                    0x14,               // Length
+                    )
+            })
+        }
+    }
+
+    Scope (\)
+    {
+        Name (_S3, Package (0x04)  // _S3_: S3 System State
+        {
+            One, 
+            One, 
+            Zero, 
+            Zero
+        })
+        Name (_S4, Package (0x04)  // _S4_: S4 System State
+        {
+            0x02, 
+            0x02, 
+            Zero, 
+            Zero
+        })
+        Name (_S5, Package (0x04)  // _S5_: S5 System State
+        {
+            Zero, 
+            Zero, 
+            Zero, 
+            Zero
+        })
+    }
+
+    Scope (\_SB.PCI0)
+    {
+        Device (FWCF)
+        {
+            Name (_HID, "QEMU0002")  // _HID: Hardware ID
+            Name (_STA, 0x0B)  // _STA: Status
+            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+            {
+                IO (Decode16,
+                    0x0510,             // Range Minimum
+                    0x0510,             // Range Maximum
+                    0x01,               // Alignment
+                    0x0C,               // Length
+                    )
+            })
+        }
+    }
+
+    Scope (\_SB)
+    {
+        Scope (PCI0)
+        {
+            Name (BSEL, Zero)
+            Device (S00)
+            {
+                Name (_ADR, Zero)  // _ADR: Address
+            }
+
+            Device (S10)
+            {
+                Name (_ADR, 0x00020000)  // _ADR: Address
+                Method (_S1D, 0, NotSerialized)  // _S1D: S1 Device State
+                {
+                    Return (Zero)
+                }
+
+                Method (_S2D, 0, NotSerialized)  // _S2D: S2 Device State
+                {
+                    Return (Zero)
+                }
+
+                Method (_S3D, 0, NotSerialized)  // _S3D: S3 Device State
+                {
+                    Return (Zero)
+                }
+            }
+
+            Device (S18)
+            {
+                Name (_SUN, 0x03)  // _SUN: Slot User Number
+                Name (_ADR, 0x00030000)  // _ADR: Address
+                Method (_EJ0, 1, NotSerialized)  // _EJx: Eject Device, x=0-9
+                {
+                    PCEJ (BSEL, _SUN)
+                }
+            }
+
+            Device (S20)
+            {
+                Name (_SUN, 0x04)  // _SUN: Slot User Number
+                Name (_ADR, 0x00040000)  // _ADR: Address
+                Method (_EJ0, 1, NotSerialized)  // _EJx: Eject Device, x=0-9
+                {
+                    PCEJ (BSEL, _SUN)
+                }
+            }
+
+            Device (S28)
+            {
+                Name (_SUN, 0x05)  // _SUN: Slot User Number
+                Name (_ADR, 0x00050000)  // _ADR: Address
+                Method (_EJ0, 1, NotSerialized)  // _EJx: Eject Device, x=0-9
+                {
+                    PCEJ (BSEL, _SUN)
+                }
+            }
+
+            Device (S30)
+            {
+                Name (_SUN, 0x06)  // _SUN: Slot User Number
+                Name (_ADR, 0x00060000)  // _ADR: Address
+                Method (_EJ0, 1, NotSerialized)  // _EJx: Eject Device, x=0-9
+                {
+                    PCEJ (BSEL, _SUN)
+                }
+            }
+
+            Device (S38)
+            {
+                Name (_SUN, 0x07)  // _SUN: Slot User Number
+                Name (_ADR, 0x00070000)  // _ADR: Address
+                Method (_EJ0, 1, NotSerialized)  // _EJx: Eject Device, x=0-9
+                {
+                    PCEJ (BSEL, _SUN)
+                }
+            }
+
+            Device (S40)
+            {
+                Name (_SUN, 0x08)  // _SUN: Slot User Number
+                Name (_ADR, 0x00080000)  // _ADR: Address
+                Method (_EJ0, 1, NotSerialized)  // _EJx: Eject Device, x=0-9
+                {
+                    PCEJ (BSEL, _SUN)
+                }
+            }
+
+            Device (S48)
+            {
+                Name (_SUN, 0x09)  // _SUN: Slot User Number
+                Name (_ADR, 0x00090000)  // _ADR: Address
+                Method (_EJ0, 1, NotSerialized)  // _EJx: Eject Device, x=0-9
+                {
+                    PCEJ (BSEL, _SUN)
+                }
+            }
+
+            Device (S50)
+            {
+                Name (_SUN, 0x0A)  // _SUN: Slot User Number
+                Name (_ADR, 0x000A0000)  // _ADR: Address
+                Method (_EJ0, 1, NotSerialized)  // _EJx: Eject Device, x=0-9
+                {
+                    PCEJ (BSEL, _SUN)
+                }
+            }
+
+            Device (S58)
+            {
+                Name (_SUN, 0x0B)  // _SUN: Slot User Number
+                Name (_ADR, 0x000B0000)  // _ADR: Address
+                Method (_EJ0, 1, NotSerialized)  // _EJx: Eject Device, x=0-9
+                {
+                    PCEJ (BSEL, _SUN)
+                }
+            }
+
+            Device (S60)
+            {
+                Name (_SUN, 0x0C)  // _SUN: Slot User Number
+                Name (_ADR, 0x000C0000)  // _ADR: Address
+                Method (_EJ0, 1, NotSerialized)  // _EJx: Eject Device, x=0-9
+                {
+                    PCEJ (BSEL, _SUN)
+                }
+            }
+
+            Device (S68)
+            {
+                Name (_SUN, 0x0D)  // _SUN: Slot User Number
+                Name (_ADR, 0x000D0000)  // _ADR: Address
+                Method (_EJ0, 1, NotSerialized)  // _EJx: Eject Device, x=0-9
+                {
+                    PCEJ (BSEL, _SUN)
+                }
+            }
+
+            Device (S70)
+            {
+                Name (_SUN, 0x0E)  // _SUN: Slot User Number
+                Name (_ADR, 0x000E0000)  // _ADR: Address
+                Method (_EJ0, 1, NotSerialized)  // _EJx: Eject Device, x=0-9
+                {
+                    PCEJ (BSEL, _SUN)
+                }
+            }
+
+            Device (S78)
+            {
+                Name (_SUN, 0x0F)  // _SUN: Slot User Number
+                Name (_ADR, 0x000F0000)  // _ADR: Address
+                Method (_EJ0, 1, NotSerialized)  // _EJx: Eject Device, x=0-9
+                {
+                    PCEJ (BSEL, _SUN)
+                }
+            }
+
+            Device (S80)
+            {
+                Name (_SUN, 0x10)  // _SUN: Slot User Number
+                Name (_ADR, 0x00100000)  // _ADR: Address
+                Method (_EJ0, 1, NotSerialized)  // _EJx: Eject Device, x=0-9
+                {
+                    PCEJ (BSEL, _SUN)
+                }
+            }
+
+            Device (S88)
+            {
+                Name (_SUN, 0x11)  // _SUN: Slot User Number
+                Name (_ADR, 0x00110000)  // _ADR: Address
+                Method (_EJ0, 1, NotSerialized)  // _EJx: Eject Device, x=0-9
+                {
+                    PCEJ (BSEL, _SUN)
+                }
+            }
+
+            Device (S90)
+            {
+                Name (_SUN, 0x12)  // _SUN: Slot User Number
+                Name (_ADR, 0x00120000)  // _ADR: Address
+                Method (_EJ0, 1, NotSerialized)  // _EJx: Eject Device, x=0-9
+                {
+                    PCEJ (BSEL, _SUN)
+                }
+            }
+
+            Device (S98)
+            {
+                Name (_SUN, 0x13)  // _SUN: Slot User Number
+                Name (_ADR, 0x00130000)  // _ADR: Address
+                Method (_EJ0, 1, NotSerialized)  // _EJx: Eject Device, x=0-9
+                {
+                    PCEJ (BSEL, _SUN)
+                }
+            }
+
+            Device (SA0)
+            {
+                Name (_SUN, 0x14)  // _SUN: Slot User Number
+                Name (_ADR, 0x00140000)  // _ADR: Address
+                Method (_EJ0, 1, NotSerialized)  // _EJx: Eject Device, x=0-9
+                {
+                    PCEJ (BSEL, _SUN)
+                }
+            }
+
+            Device (SA8)
+            {
+                Name (_SUN, 0x15)  // _SUN: Slot User Number
+                Name (_ADR, 0x00150000)  // _ADR: Address
+                Method (_EJ0, 1, NotSerialized)  // _EJx: Eject Device, x=0-9
+                {
+                    PCEJ (BSEL, _SUN)
+                }
+            }
+
+            Device (SB0)
+            {
+                Name (_SUN, 0x16)  // _SUN: Slot User Number
+                Name (_ADR, 0x00160000)  // _ADR: Address
+                Method (_EJ0, 1, NotSerialized)  // _EJx: Eject Device, x=0-9
+                {
+                    PCEJ (BSEL, _SUN)
+                }
+            }
+
+            Device (SB8)
+            {
+                Name (_SUN, 0x17)  // _SUN: Slot User Number
+                Name (_ADR, 0x00170000)  // _ADR: Address
+                Method (_EJ0, 1, NotSerialized)  // _EJx: Eject Device, x=0-9
+                {
+                    PCEJ (BSEL, _SUN)
+                }
+            }
+
+            Device (SC0)
+            {
+                Name (_SUN, 0x18)  // _SUN: Slot User Number
+                Name (_ADR, 0x00180000)  // _ADR: Address
+                Method (_EJ0, 1, NotSerialized)  // _EJx: Eject Device, x=0-9
+                {
+                    PCEJ (BSEL, _SUN)
+                }
+            }
+
+            Device (SC8)
+            {
+                Name (_SUN, 0x19)  // _SUN: Slot User Number
+                Name (_ADR, 0x00190000)  // _ADR: Address
+                Method (_EJ0, 1, NotSerialized)  // _EJx: Eject Device, x=0-9
+                {
+                    PCEJ (BSEL, _SUN)
+                }
+            }
+
+            Device (SD0)
+            {
+                Name (_SUN, 0x1A)  // _SUN: Slot User Number
+                Name (_ADR, 0x001A0000)  // _ADR: Address
+                Method (_EJ0, 1, NotSerialized)  // _EJx: Eject Device, x=0-9
+                {
+                    PCEJ (BSEL, _SUN)
+                }
+            }
+
+            Device (SD8)
+            {
+                Name (_SUN, 0x1B)  // _SUN: Slot User Number
+                Name (_ADR, 0x001B0000)  // _ADR: Address
+                Method (_EJ0, 1, NotSerialized)  // _EJx: Eject Device, x=0-9
+                {
+                    PCEJ (BSEL, _SUN)
+                }
+            }
+
+            Device (SE0)
+            {
+                Name (_SUN, 0x1C)  // _SUN: Slot User Number
+                Name (_ADR, 0x001C0000)  // _ADR: Address
+                Method (_EJ0, 1, NotSerialized)  // _EJx: Eject Device, x=0-9
+                {
+                    PCEJ (BSEL, _SUN)
+                }
+            }
+
+            Device (SE8)
+            {
+                Name (_SUN, 0x1D)  // _SUN: Slot User Number
+                Name (_ADR, 0x001D0000)  // _ADR: Address
+                Method (_EJ0, 1, NotSerialized)  // _EJx: Eject Device, x=0-9
+                {
+                    PCEJ (BSEL, _SUN)
+                }
+            }
+
+            Device (SF0)
+            {
+                Name (_SUN, 0x1E)  // _SUN: Slot User Number
+                Name (_ADR, 0x001E0000)  // _ADR: Address
+                Method (_EJ0, 1, NotSerialized)  // _EJx: Eject Device, x=0-9
+                {
+                    PCEJ (BSEL, _SUN)
+                }
+            }
+
+            Device (SF8)
+            {
+                Name (_SUN, 0x1F)  // _SUN: Slot User Number
+                Name (_ADR, 0x001F0000)  // _ADR: Address
+                Method (_EJ0, 1, NotSerialized)  // _EJx: Eject Device, x=0-9
+                {
+                    PCEJ (BSEL, _SUN)
+                }
+            }
+
+            Method (DVNT, 2, NotSerialized)
+            {
+                If ((Arg0 & 0x08))
+                {
+                    Notify (S18, Arg1)
+                }
+
+                If ((Arg0 & 0x10))
+                {
+                    Notify (S20, Arg1)
+                }
+
+                If ((Arg0 & 0x20))
+                {
+                    Notify (S28, Arg1)
+                }
+
+                If ((Arg0 & 0x40))
+                {
+                    Notify (S30, Arg1)
+                }
+
+                If ((Arg0 & 0x80))
+                {
+                    Notify (S38, Arg1)
+                }
+
+                If ((Arg0 & 0x0100))
+                {
+                    Notify (S40, Arg1)
+                }
+
+                If ((Arg0 & 0x0200))
+                {
+                    Notify (S48, Arg1)
+                }
+
+                If ((Arg0 & 0x0400))
+                {
+                    Notify (S50, Arg1)
+                }
+
+                If ((Arg0 & 0x0800))
+                {
+                    Notify (S58, Arg1)
+                }
+
+                If ((Arg0 & 0x1000))
+                {
+                    Notify (S60, Arg1)
+                }
+
+                If ((Arg0 & 0x2000))
+                {
+                    Notify (S68, Arg1)
+                }
+
+                If ((Arg0 & 0x4000))
+                {
+                    Notify (S70, Arg1)
+                }
+
+                If ((Arg0 & 0x8000))
+                {
+                    Notify (S78, Arg1)
+                }
+
+                If ((Arg0 & 0x00010000))
+                {
+                    Notify (S80, Arg1)
+                }
+
+                If ((Arg0 & 0x00020000))
+                {
+                    Notify (S88, Arg1)
+                }
+
+                If ((Arg0 & 0x00040000))
+                {
+                    Notify (S90, Arg1)
+                }
+
+                If ((Arg0 & 0x00080000))
+                {
+                    Notify (S98, Arg1)
+                }
+
+                If ((Arg0 & 0x00100000))
+                {
+                    Notify (SA0, Arg1)
+                }
+
+                If ((Arg0 & 0x00200000))
+                {
+                    Notify (SA8, Arg1)
+                }
+
+                If ((Arg0 & 0x00400000))
+                {
+                    Notify (SB0, Arg1)
+                }
+
+                If ((Arg0 & 0x00800000))
+                {
+                    Notify (SB8, Arg1)
+                }
+
+                If ((Arg0 & 0x01000000))
+                {
+                    Notify (SC0, Arg1)
+                }
+
+                If ((Arg0 & 0x02000000))
+                {
+                    Notify (SC8, Arg1)
+                }
+
+                If ((Arg0 & 0x04000000))
+                {
+                    Notify (SD0, Arg1)
+                }
+
+                If ((Arg0 & 0x08000000))
+                {
+                    Notify (SD8, Arg1)
+                }
+
+                If ((Arg0 & 0x10000000))
+                {
+                    Notify (SE0, Arg1)
+                }
+
+                If ((Arg0 & 0x20000000))
+                {
+                    Notify (SE8, Arg1)
+                }
+
+                If ((Arg0 & 0x40000000))
+                {
+                    Notify (SF0, Arg1)
+                }
+
+                If ((Arg0 & 0x80000000))
+                {
+                    Notify (SF8, Arg1)
+                }
+            }
+
+            Method (PCNT, 0, NotSerialized)
+            {
+                BNUM = Zero
+                DVNT (PCIU, One)
+                DVNT (PCID, 0x03)
+            }
+        }
+    }
+}
+
diff --git a/tests/data/acpi/pc/DSDT.dsl b/tests/data/acpi/pc/DSDT.dsl
new file mode 100644
index 0000000000..da2b413efc
--- /dev/null
+++ b/tests/data/acpi/pc/DSDT.dsl
@@ -0,0 +1,1407 @@ 
+/*
+ * Intel ACPI Component Architecture
+ * AML/ASL+ Disassembler version 20190509 (64-bit version)
+ * Copyright (c) 2000 - 2019 Intel Corporation
+ * 
+ * Disassembling to symbolic ASL+ operators
+ *
+ * Disassembly of tests/data/acpi/pc/DSDT.roothp, Mon Sep 28 17:24:38 2020
+ *
+ * Original Table Header:
+ *     Signature        "DSDT"
+ *     Length           0x00001488 (5256)
+ *     Revision         0x01 **** 32-bit table (V1), no 64-bit math support
+ *     Checksum         0xF2
+ *     OEM ID           "BOCHS "
+ *     OEM Table ID     "BXPCDSDT"
+ *     OEM Revision     0x00000001 (1)
+ *     Compiler ID      "BXPC"
+ *     Compiler Version 0x00000001 (1)
+ */
+DefinitionBlock ("", "DSDT", 1, "BOCHS ", "BXPCDSDT", 0x00000001)
+{
+    Scope (\)
+    {
+        OperationRegion (DBG, SystemIO, 0x0402, One)
+        Field (DBG, ByteAcc, NoLock, Preserve)
+        {
+            DBGB,   8
+        }
+
+        Method (DBUG, 1, NotSerialized)
+        {
+            ToHexString (Arg0, Local0)
+            ToBuffer (Local0, Local0)
+            Local1 = (SizeOf (Local0) - One)
+            Local2 = Zero
+            While ((Local2 < Local1))
+            {
+                DBGB = DerefOf (Local0 [Local2])
+                Local2++
+            }
+
+            DBGB = 0x0A
+        }
+    }
+
+    Scope (_SB)
+    {
+        Device (PCI0)
+        {
+            Name (_HID, EisaId ("PNP0A03") /* PCI Bus */)  // _HID: Hardware ID
+            Name (_ADR, Zero)  // _ADR: Address
+            Name (_UID, Zero)  // _UID: Unique ID
+        }
+    }
+
+    Scope (_SB)
+    {
+        Device (HPET)
+        {
+            Name (_HID, EisaId ("PNP0103") /* HPET System Timer */)  // _HID: Hardware ID
+            Name (_UID, Zero)  // _UID: Unique ID
+            OperationRegion (HPTM, SystemMemory, 0xFED00000, 0x0400)
+            Field (HPTM, DWordAcc, Lock, Preserve)
+            {
+                VEND,   32, 
+                PRD,    32
+            }
+
+            Method (_STA, 0, NotSerialized)  // _STA: Status
+            {
+                Local0 = VEND /* \_SB_.HPET.VEND */
+                Local1 = PRD /* \_SB_.HPET.PRD_ */
+                Local0 >>= 0x10
+                If (((Local0 == Zero) || (Local0 == 0xFFFF)))
+                {
+                    Return (Zero)
+                }
+
+                If (((Local1 == Zero) || (Local1 > 0x05F5E100)))
+                {
+                    Return (Zero)
+                }
+
+                Return (0x0F)
+            }
+
+            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+            {
+                Memory32Fixed (ReadOnly,
+                    0xFED00000,         // Address Base
+                    0x00000400,         // Address Length
+                    )
+            })
+        }
+    }
+
+    Scope (_SB.PCI0)
+    {
+        Device (ISA)
+        {
+            Name (_ADR, 0x00010000)  // _ADR: Address
+            OperationRegion (P40C, PCI_Config, 0x60, 0x04)
+        }
+    }
+
+    Scope (_SB.PCI0.ISA)
+    {
+        Device (KBD)
+        {
+            Name (_HID, EisaId ("PNP0303") /* IBM Enhanced Keyboard (101/102-key, PS/2 Mouse) */)  // _HID: Hardware ID
+            Name (_STA, 0x0F)  // _STA: Status
+            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+            {
+                IO (Decode16,
+                    0x0060,             // Range Minimum
+                    0x0060,             // Range Maximum
+                    0x01,               // Alignment
+                    0x01,               // Length
+                    )
+                IO (Decode16,
+                    0x0064,             // Range Minimum
+                    0x0064,             // Range Maximum
+                    0x01,               // Alignment
+                    0x01,               // Length
+                    )
+                IRQNoFlags ()
+                    {1}
+            })
+        }
+
+        Device (MOU)
+        {
+            Name (_HID, EisaId ("PNP0F13") /* PS/2 Mouse */)  // _HID: Hardware ID
+            Name (_STA, 0x0F)  // _STA: Status
+            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+            {
+                IRQNoFlags ()
+                    {12}
+            })
+        }
+
+        Device (FDC0)
+        {
+            Name (_HID, EisaId ("PNP0700"))  // _HID: Hardware ID
+            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+            {
+                IO (Decode16,
+                    0x03F2,             // Range Minimum
+                    0x03F2,             // Range Maximum
+                    0x00,               // Alignment
+                    0x04,               // Length
+                    )
+                IO (Decode16,
+                    0x03F7,             // Range Minimum
+                    0x03F7,             // Range Maximum
+                    0x00,               // Alignment
+                    0x01,               // Length
+                    )
+                IRQNoFlags ()
+                    {6}
+                DMA (Compatibility, NotBusMaster, Transfer8, )
+                    {2}
+            })
+            Device (FLPA)
+            {
+                Name (_ADR, Zero)  // _ADR: Address
+                Name (_FDI, Package (0x10)  // _FDI: Floppy Drive Information
+                {
+                    Zero, 
+                    0x05, 
+                    0x4F, 
+                    0x30, 
+                    One, 
+                    0xAF, 
+                    0x02, 
+                    0x25, 
+                    0x02, 
+                    0x12, 
+                    0x1B, 
+                    0xFF, 
+                    0x6C, 
+                    0xF6, 
+                    0x0F, 
+                    0x08
+                })
+            }
+
+            Name (_FDE, Buffer (0x14)  // _FDE: Floppy Disk Enumerate
+            {
+                /* 0000 */  0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,  // ........
+                /* 0008 */  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,  // ........
+                /* 0010 */  0x02, 0x00, 0x00, 0x00                           // ....
+            })
+        }
+
+        Device (LPT1)
+        {
+            Name (_HID, EisaId ("PNP0400") /* Standard LPT Parallel Port */)  // _HID: Hardware ID
+            Name (_UID, One)  // _UID: Unique ID
+            Name (_STA, 0x0F)  // _STA: Status
+            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+            {
+                IO (Decode16,
+                    0x0378,             // Range Minimum
+                    0x0378,             // Range Maximum
+                    0x08,               // Alignment
+                    0x08,               // Length
+                    )
+                IRQNoFlags ()
+                    {7}
+            })
+        }
+
+        Device (COM1)
+        {
+            Name (_HID, EisaId ("PNP0501") /* 16550A-compatible COM Serial Port */)  // _HID: Hardware ID
+            Name (_UID, One)  // _UID: Unique ID
+            Name (_STA, 0x0F)  // _STA: Status
+            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+            {
+                IO (Decode16,
+                    0x03F8,             // Range Minimum
+                    0x03F8,             // Range Maximum
+                    0x00,               // Alignment
+                    0x08,               // Length
+                    )
+                IRQNoFlags ()
+                    {4}
+            })
+        }
+
+        Device (RTC)
+        {
+            Name (_HID, EisaId ("PNP0B00") /* AT Real-Time Clock */)  // _HID: Hardware ID
+            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+            {
+                IO (Decode16,
+                    0x0070,             // Range Minimum
+                    0x0070,             // Range Maximum
+                    0x01,               // Alignment
+                    0x08,               // Length
+                    )
+                IRQNoFlags ()
+                    {8}
+            })
+        }
+    }
+
+    Scope (_SB.PCI0)
+    {
+        OperationRegion (PCST, SystemIO, 0xAE00, 0x08)
+        Field (PCST, DWordAcc, NoLock, WriteAsZeros)
+        {
+            PCIU,   32, 
+            PCID,   32
+        }
+
+        OperationRegion (SEJ, SystemIO, 0xAE08, 0x04)
+        Field (SEJ, DWordAcc, NoLock, WriteAsZeros)
+        {
+            B0EJ,   32
+        }
+
+        OperationRegion (BNMR, SystemIO, 0xAE10, 0x04)
+        Field (BNMR, DWordAcc, NoLock, WriteAsZeros)
+        {
+            BNUM,   32
+        }
+
+        Mutex (BLCK, 0x00)
+        Method (PCEJ, 2, NotSerialized)
+        {
+            Acquire (BLCK, 0xFFFF)
+            BNUM = Arg0
+            B0EJ = (One << Arg1)
+            Release (BLCK)
+            Return (Zero)
+        }
+    }
+
+    Scope (_SB)
+    {
+        Scope (PCI0)
+        {
+            Method (_PRT, 0, NotSerialized)  // _PRT: PCI Routing Table
+            {
+                Local0 = Package (0x80){}
+                Local1 = Zero
+                While ((Local1 < 0x80))
+                {
+                    Local2 = (Local1 >> 0x02)
+                    Local3 = ((Local1 + Local2) & 0x03)
+                    If ((Local3 == Zero))
+                    {
+                        Local4 = Package (0x04)
+                            {
+                                Zero, 
+                                Zero, 
+                                LNKD, 
+                                Zero
+                            }
+                    }
+
+                    If ((Local3 == One))
+                    {
+                        If ((Local1 == 0x04))
+                        {
+                            Local4 = Package (0x04)
+                                {
+                                    Zero, 
+                                    Zero, 
+                                    LNKS, 
+                                    Zero
+                                }
+                        }
+                        Else
+                        {
+                            Local4 = Package (0x04)
+                                {
+                                    Zero, 
+                                    Zero, 
+                                    LNKA, 
+                                    Zero
+                                }
+                        }
+                    }
+
+                    If ((Local3 == 0x02))
+                    {
+                        Local4 = Package (0x04)
+                            {
+                                Zero, 
+                                Zero, 
+                                LNKB, 
+                                Zero
+                            }
+                    }
+
+                    If ((Local3 == 0x03))
+                    {
+                        Local4 = Package (0x04)
+                            {
+                                Zero, 
+                                Zero, 
+                                LNKC, 
+                                Zero
+                            }
+                    }
+
+                    Local4 [Zero] = ((Local2 << 0x10) | 0xFFFF)
+                    Local4 [One] = (Local1 & 0x03)
+                    Local0 [Local1] = Local4
+                    Local1++
+                }
+
+                Return (Local0)
+            }
+        }
+
+        Field (PCI0.ISA.P40C, ByteAcc, NoLock, Preserve)
+        {
+            PRQ0,   8, 
+            PRQ1,   8, 
+            PRQ2,   8, 
+            PRQ3,   8
+        }
+
+        Method (IQST, 1, NotSerialized)
+        {
+            If ((0x80 & Arg0))
+            {
+                Return (0x09)
+            }
+
+            Return (0x0B)
+        }
+
+        Method (IQCR, 1, Serialized)
+        {
+            Name (PRR0, ResourceTemplate ()
+            {
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, _Y00)
+                {
+                    0x00000000,
+                }
+            })
+            CreateDWordField (PRR0, \_SB.IQCR._Y00._INT, PRRI)  // _INT: Interrupts
+            If ((Arg0 < 0x80))
+            {
+                PRRI = Arg0
+            }
+
+            Return (PRR0) /* \_SB_.IQCR.PRR0 */
+        }
+
+        Device (LNKA)
+        {
+            Name (_HID, EisaId ("PNP0C0F") /* PCI Interrupt Link Device */)  // _HID: Hardware ID
+            Name (_UID, Zero)  // _UID: Unique ID
+            Name (_PRS, ResourceTemplate ()  // _PRS: Possible Resource Settings
+            {
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, )
+                {
+                    0x00000005,
+                    0x0000000A,
+                    0x0000000B,
+                }
+            })
+            Method (_STA, 0, NotSerialized)  // _STA: Status
+            {
+                Return (IQST (PRQ0))
+            }
+
+            Method (_DIS, 0, NotSerialized)  // _DIS: Disable Device
+            {
+                PRQ0 |= 0x80
+            }
+
+            Method (_CRS, 0, NotSerialized)  // _CRS: Current Resource Settings
+            {
+                Return (IQCR (PRQ0))
+            }
+
+            Method (_SRS, 1, NotSerialized)  // _SRS: Set Resource Settings
+            {
+                CreateDWordField (Arg0, 0x05, PRRI)
+                PRQ0 = PRRI /* \_SB_.LNKA._SRS.PRRI */
+            }
+        }
+
+        Device (LNKB)
+        {
+            Name (_HID, EisaId ("PNP0C0F") /* PCI Interrupt Link Device */)  // _HID: Hardware ID
+            Name (_UID, One)  // _UID: Unique ID
+            Name (_PRS, ResourceTemplate ()  // _PRS: Possible Resource Settings
+            {
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, )
+                {
+                    0x00000005,
+                    0x0000000A,
+                    0x0000000B,
+                }
+            })
+            Method (_STA, 0, NotSerialized)  // _STA: Status
+            {
+                Return (IQST (PRQ1))
+            }
+
+            Method (_DIS, 0, NotSerialized)  // _DIS: Disable Device
+            {
+                PRQ1 |= 0x80
+            }
+
+            Method (_CRS, 0, NotSerialized)  // _CRS: Current Resource Settings
+            {
+                Return (IQCR (PRQ1))
+            }
+
+            Method (_SRS, 1, NotSerialized)  // _SRS: Set Resource Settings
+            {
+                CreateDWordField (Arg0, 0x05, PRRI)
+                PRQ1 = PRRI /* \_SB_.LNKB._SRS.PRRI */
+            }
+        }
+
+        Device (LNKC)
+        {
+            Name (_HID, EisaId ("PNP0C0F") /* PCI Interrupt Link Device */)  // _HID: Hardware ID
+            Name (_UID, 0x02)  // _UID: Unique ID
+            Name (_PRS, ResourceTemplate ()  // _PRS: Possible Resource Settings
+            {
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, )
+                {
+                    0x00000005,
+                    0x0000000A,
+                    0x0000000B,
+                }
+            })
+            Method (_STA, 0, NotSerialized)  // _STA: Status
+            {
+                Return (IQST (PRQ2))
+            }
+
+            Method (_DIS, 0, NotSerialized)  // _DIS: Disable Device
+            {
+                PRQ2 |= 0x80
+            }
+
+            Method (_CRS, 0, NotSerialized)  // _CRS: Current Resource Settings
+            {
+                Return (IQCR (PRQ2))
+            }
+
+            Method (_SRS, 1, NotSerialized)  // _SRS: Set Resource Settings
+            {
+                CreateDWordField (Arg0, 0x05, PRRI)
+                PRQ2 = PRRI /* \_SB_.LNKC._SRS.PRRI */
+            }
+        }
+
+        Device (LNKD)
+        {
+            Name (_HID, EisaId ("PNP0C0F") /* PCI Interrupt Link Device */)  // _HID: Hardware ID
+            Name (_UID, 0x03)  // _UID: Unique ID
+            Name (_PRS, ResourceTemplate ()  // _PRS: Possible Resource Settings
+            {
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, )
+                {
+                    0x00000005,
+                    0x0000000A,
+                    0x0000000B,
+                }
+            })
+            Method (_STA, 0, NotSerialized)  // _STA: Status
+            {
+                Return (IQST (PRQ3))
+            }
+
+            Method (_DIS, 0, NotSerialized)  // _DIS: Disable Device
+            {
+                PRQ3 |= 0x80
+            }
+
+            Method (_CRS, 0, NotSerialized)  // _CRS: Current Resource Settings
+            {
+                Return (IQCR (PRQ3))
+            }
+
+            Method (_SRS, 1, NotSerialized)  // _SRS: Set Resource Settings
+            {
+                CreateDWordField (Arg0, 0x05, PRRI)
+                PRQ3 = PRRI /* \_SB_.LNKD._SRS.PRRI */
+            }
+        }
+
+        Device (LNKS)
+        {
+            Name (_HID, EisaId ("PNP0C0F") /* PCI Interrupt Link Device */)  // _HID: Hardware ID
+            Name (_UID, 0x04)  // _UID: Unique ID
+            Name (_PRS, ResourceTemplate ()  // _PRS: Possible Resource Settings
+            {
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, )
+                {
+                    0x00000009,
+                }
+            })
+            Method (_STA, 0, NotSerialized)  // _STA: Status
+            {
+                Return (0x0B)
+            }
+
+            Method (_DIS, 0, NotSerialized)  // _DIS: Disable Device
+            {
+            }
+
+            Method (_CRS, 0, NotSerialized)  // _CRS: Current Resource Settings
+            {
+                Return (_PRS) /* \_SB_.LNKS._PRS */
+            }
+
+            Method (_SRS, 1, NotSerialized)  // _SRS: Set Resource Settings
+            {
+            }
+        }
+    }
+
+    Scope (_SB)
+    {
+        Device (\_SB.PCI0.PRES)
+        {
+            Name (_HID, EisaId ("PNP0A06") /* Generic Container Device */)  // _HID: Hardware ID
+            Name (_UID, "CPU Hotplug resources")  // _UID: Unique ID
+            Mutex (CPLK, 0x00)
+            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+            {
+                IO (Decode16,
+                    0xAF00,             // Range Minimum
+                    0xAF00,             // Range Maximum
+                    0x01,               // Alignment
+                    0x0C,               // Length
+                    )
+            })
+            OperationRegion (PRST, SystemIO, 0xAF00, 0x0C)
+            Field (PRST, ByteAcc, NoLock, WriteAsZeros)
+            {
+                Offset (0x04), 
+                CPEN,   1, 
+                CINS,   1, 
+                CRMV,   1, 
+                CEJ0,   1, 
+                Offset (0x05), 
+                CCMD,   8
+            }
+
+            Field (PRST, DWordAcc, NoLock, Preserve)
+            {
+                CSEL,   32, 
+                Offset (0x08), 
+                CDAT,   32
+            }
+
+            Method (_INI, 0, Serialized)  // _INI: Initialize
+            {
+                CSEL = Zero
+            }
+        }
+
+        Device (\_SB.CPUS)
+        {
+            Name (_HID, "ACPI0010" /* Processor Container Device */)  // _HID: Hardware ID
+            Name (_CID, EisaId ("PNP0A05") /* Generic Container Device */)  // _CID: Compatible ID
+            Method (CTFY, 2, NotSerialized)
+            {
+                If ((Arg0 == Zero))
+                {
+                    Notify (C000, Arg1)
+                }
+            }
+
+            Method (CSTA, 1, Serialized)
+            {
+                Acquire (\_SB.PCI0.PRES.CPLK, 0xFFFF)
+                \_SB.PCI0.PRES.CSEL = Arg0
+                Local0 = Zero
+                If ((\_SB.PCI0.PRES.CPEN == One))
+                {
+                    Local0 = 0x0F
+                }
+
+                Release (\_SB.PCI0.PRES.CPLK)
+                Return (Local0)
+            }
+
+            Method (CEJ0, 1, Serialized)
+            {
+                Acquire (\_SB.PCI0.PRES.CPLK, 0xFFFF)
+                \_SB.PCI0.PRES.CSEL = Arg0
+                \_SB.PCI0.PRES.CEJ0 = One
+                Release (\_SB.PCI0.PRES.CPLK)
+            }
+
+            Method (CSCN, 0, Serialized)
+            {
+                Acquire (\_SB.PCI0.PRES.CPLK, 0xFFFF)
+                Name (CNEW, Package (0xFF){})
+                Local3 = Zero
+                Local4 = One
+                While ((Local4 == One))
+                {
+                    Local4 = Zero
+                    Local0 = One
+                    Local1 = Zero
+                    While (((Local0 == One) && (Local3 < One)))
+                    {
+                        Local0 = Zero
+                        \_SB.PCI0.PRES.CSEL = Local3
+                        \_SB.PCI0.PRES.CCMD = Zero
+                        If ((\_SB.PCI0.PRES.CDAT < Local3))
+                        {
+                            Break
+                        }
+
+                        If ((Local1 == 0xFF))
+                        {
+                            Local4 = One
+                            Break
+                        }
+
+                        Local3 = \_SB.PCI0.PRES.CDAT
+                        If ((\_SB.PCI0.PRES.CINS == One))
+                        {
+                            CNEW [Local1] = Local3
+                            Local1++
+                            Local0 = One
+                        }
+                        ElseIf ((\_SB.PCI0.PRES.CRMV == One))
+                        {
+                            CTFY (Local3, 0x03)
+                            \_SB.PCI0.PRES.CRMV = One
+                            Local0 = One
+                        }
+
+                        Local3++
+                    }
+
+                    Local2 = Zero
+                    While ((Local2 < Local1))
+                    {
+                        Local3 = DerefOf (CNEW [Local2])
+                        CTFY (Local3, One)
+                        Debug = Local3
+                        \_SB.PCI0.PRES.CSEL = Local3
+                        \_SB.PCI0.PRES.CINS = One
+                        Local2++
+                    }
+                }
+
+                Release (\_SB.PCI0.PRES.CPLK)
+            }
+
+            Method (COST, 4, Serialized)
+            {
+                Acquire (\_SB.PCI0.PRES.CPLK, 0xFFFF)
+                \_SB.PCI0.PRES.CSEL = Arg0
+                \_SB.PCI0.PRES.CCMD = One
+                \_SB.PCI0.PRES.CDAT = Arg1
+                \_SB.PCI0.PRES.CCMD = 0x02
+                \_SB.PCI0.PRES.CDAT = Arg2
+                Release (\_SB.PCI0.PRES.CPLK)
+            }
+
+            Processor (C000, 0x00, 0x00000000, 0x00)
+            {
+                Method (_STA, 0, Serialized)  // _STA: Status
+                {
+                    Return (CSTA (Zero))
+                }
+
+                Name (_MAT, Buffer (0x08)  // _MAT: Multiple APIC Table Entry
+                {
+                     0x00, 0x08, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00   // ........
+                })
+                Method (_OST, 3, Serialized)  // _OST: OSPM Status Indication
+                {
+                    COST (Zero, Arg0, Arg1, Arg2)
+                }
+            }
+        }
+    }
+
+    Method (\_GPE._E02, 0, NotSerialized)  // _Exx: Edge-Triggered GPE, xx=0x00-0xFF
+    {
+        \_SB.CPUS.CSCN ()
+    }
+
+    Scope (_GPE)
+    {
+        Name (_HID, "ACPI0006" /* GPE Block Device */)  // _HID: Hardware ID
+        Method (_E01, 0, NotSerialized)  // _Exx: Edge-Triggered GPE, xx=0x00-0xFF
+        {
+            Acquire (\_SB.PCI0.BLCK, 0xFFFF)
+            \_SB.PCI0.PCNT ()
+            Release (\_SB.PCI0.BLCK)
+        }
+    }
+
+    Scope (\_SB.PCI0)
+    {
+        Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+        {
+            WordBusNumber (ResourceProducer, MinFixed, MaxFixed, PosDecode,
+                0x0000,             // Granularity
+                0x0000,             // Range Minimum
+                0x00FF,             // Range Maximum
+                0x0000,             // Translation Offset
+                0x0100,             // Length
+                ,, )
+            IO (Decode16,
+                0x0CF8,             // Range Minimum
+                0x0CF8,             // Range Maximum
+                0x01,               // Alignment
+                0x08,               // Length
+                )
+            WordIO (ResourceProducer, MinFixed, MaxFixed, PosDecode, EntireRange,
+                0x0000,             // Granularity
+                0x0000,             // Range Minimum
+                0x0CF7,             // Range Maximum
+                0x0000,             // Translation Offset
+                0x0CF8,             // Length
+                ,, , TypeStatic, DenseTranslation)
+            WordIO (ResourceProducer, MinFixed, MaxFixed, PosDecode, EntireRange,
+                0x0000,             // Granularity
+                0x0D00,             // Range Minimum
+                0xFFFF,             // Range Maximum
+                0x0000,             // Translation Offset
+                0xF300,             // Length
+                ,, , TypeStatic, DenseTranslation)
+            DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, Cacheable, ReadWrite,
+                0x00000000,         // Granularity
+                0x000A0000,         // Range Minimum
+                0x000BFFFF,         // Range Maximum
+                0x00000000,         // Translation Offset
+                0x00020000,         // Length
+                ,, , AddressRangeMemory, TypeStatic)
+            DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, NonCacheable, ReadWrite,
+                0x00000000,         // Granularity
+                0x08000000,         // Range Minimum
+                0xFEBFFFFF,         // Range Maximum
+                0x00000000,         // Translation Offset
+                0xF6C00000,         // Length
+                ,, , AddressRangeMemory, TypeStatic)
+            QWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, Cacheable, ReadWrite,
+                0x0000000000000000, // Granularity
+                0x0000000100000000, // Range Minimum
+                0x000000017FFFFFFF, // Range Maximum
+                0x0000000000000000, // Translation Offset
+                0x0000000080000000, // Length
+                ,, , AddressRangeMemory, TypeStatic)
+        })
+        Device (GPE0)
+        {
+            Name (_HID, "PNP0A06" /* Generic Container Device */)  // _HID: Hardware ID
+            Name (_UID, "GPE0 resources")  // _UID: Unique ID
+            Name (_STA, 0x0B)  // _STA: Status
+            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+            {
+                IO (Decode16,
+                    0xAFE0,             // Range Minimum
+                    0xAFE0,             // Range Maximum
+                    0x01,               // Alignment
+                    0x04,               // Length
+                    )
+            })
+        }
+
+        Device (PHPR)
+        {
+            Name (_HID, "PNP0A06" /* Generic Container Device */)  // _HID: Hardware ID
+            Name (_UID, "PCI Hotplug resources")  // _UID: Unique ID
+            Name (_STA, 0x0B)  // _STA: Status
+            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+            {
+                IO (Decode16,
+                    0xAE00,             // Range Minimum
+                    0xAE00,             // Range Maximum
+                    0x01,               // Alignment
+                    0x14,               // Length
+                    )
+            })
+        }
+    }
+
+    Scope (\)
+    {
+        Name (_S3, Package (0x04)  // _S3_: S3 System State
+        {
+            One, 
+            One, 
+            Zero, 
+            Zero
+        })
+        Name (_S4, Package (0x04)  // _S4_: S4 System State
+        {
+            0x02, 
+            0x02, 
+            Zero, 
+            Zero
+        })
+        Name (_S5, Package (0x04)  // _S5_: S5 System State
+        {
+            Zero, 
+            Zero, 
+            Zero, 
+            Zero
+        })
+    }
+
+    Scope (\_SB.PCI0)
+    {
+        Device (FWCF)
+        {
+            Name (_HID, "QEMU0002")  // _HID: Hardware ID
+            Name (_STA, 0x0B)  // _STA: Status
+            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+            {
+                IO (Decode16,
+                    0x0510,             // Range Minimum
+                    0x0510,             // Range Maximum
+                    0x01,               // Alignment
+                    0x0C,               // Length
+                    )
+            })
+        }
+    }
+
+    Scope (\_SB)
+    {
+        Scope (PCI0)
+        {
+            Device (S00)
+            {
+                Name (_ADR, Zero)  // _ADR: Address
+            }
+
+            Device (S10)
+            {
+                Name (_ADR, 0x00020000)  // _ADR: Address
+                Method (_S1D, 0, NotSerialized)  // _S1D: S1 Device State
+                {
+                    Return (Zero)
+                }
+
+                Method (_S2D, 0, NotSerialized)  // _S2D: S2 Device State
+                {
+                    Return (Zero)
+                }
+
+                Method (_S3D, 0, NotSerialized)  // _S3D: S3 Device State
+                {
+                    Return (Zero)
+                }
+            }
+
+            Device (S18)
+            {
+                Name (_ADR, 0x00030000)  // _ADR: Address
+                Name (BSEL, Zero)
+                Device (S00)
+                {
+                    Name (_SUN, Zero)  // _SUN: Slot User Number
+                    Name (_ADR, Zero)  // _ADR: Address
+                    Method (_EJ0, 1, NotSerialized)  // _EJx: Eject Device, x=0-9
+                    {
+                        PCEJ (BSEL, _SUN)
+                    }
+                }
+
+                Device (S08)
+                {
+                    Name (_SUN, One)  // _SUN: Slot User Number
+                    Name (_ADR, 0x00010000)  // _ADR: Address
+                    Method (_EJ0, 1, NotSerialized)  // _EJx: Eject Device, x=0-9
+                    {
+                        PCEJ (BSEL, _SUN)
+                    }
+                }
+
+                Device (S10)
+                {
+                    Name (_SUN, 0x02)  // _SUN: Slot User Number
+                    Name (_ADR, 0x00020000)  // _ADR: Address
+                    Method (_EJ0, 1, NotSerialized)  // _EJx: Eject Device, x=0-9
+                    {
+                        PCEJ (BSEL, _SUN)
+                    }
+                }
+
+                Device (S18)
+                {
+                    Name (_SUN, 0x03)  // _SUN: Slot User Number
+                    Name (_ADR, 0x00030000)  // _ADR: Address
+                    Method (_EJ0, 1, NotSerialized)  // _EJx: Eject Device, x=0-9
+                    {
+                        PCEJ (BSEL, _SUN)
+                    }
+                }
+
+                Device (S20)
+                {
+                    Name (_SUN, 0x04)  // _SUN: Slot User Number
+                    Name (_ADR, 0x00040000)  // _ADR: Address
+                    Method (_EJ0, 1, NotSerialized)  // _EJx: Eject Device, x=0-9
+                    {
+                        PCEJ (BSEL, _SUN)
+                    }
+                }
+
+                Device (S28)
+                {
+                    Name (_SUN, 0x05)  // _SUN: Slot User Number
+                    Name (_ADR, 0x00050000)  // _ADR: Address
+                    Method (_EJ0, 1, NotSerialized)  // _EJx: Eject Device, x=0-9
+                    {
+                        PCEJ (BSEL, _SUN)
+                    }
+                }
+
+                Device (S30)
+                {
+                    Name (_SUN, 0x06)  // _SUN: Slot User Number
+                    Name (_ADR, 0x00060000)  // _ADR: Address
+                    Method (_EJ0, 1, NotSerialized)  // _EJx: Eject Device, x=0-9
+                    {
+                        PCEJ (BSEL, _SUN)
+                    }
+                }
+
+                Device (S38)
+                {
+                    Name (_SUN, 0x07)  // _SUN: Slot User Number
+                    Name (_ADR, 0x00070000)  // _ADR: Address
+                    Method (_EJ0, 1, NotSerialized)  // _EJx: Eject Device, x=0-9
+                    {
+                        PCEJ (BSEL, _SUN)
+                    }
+                }
+
+                Device (S40)
+                {
+                    Name (_SUN, 0x08)  // _SUN: Slot User Number
+                    Name (_ADR, 0x00080000)  // _ADR: Address
+                    Method (_EJ0, 1, NotSerialized)  // _EJx: Eject Device, x=0-9
+                    {
+                        PCEJ (BSEL, _SUN)
+                    }
+                }
+
+                Device (S48)
+                {
+                    Name (_SUN, 0x09)  // _SUN: Slot User Number
+                    Name (_ADR, 0x00090000)  // _ADR: Address
+                    Method (_EJ0, 1, NotSerialized)  // _EJx: Eject Device, x=0-9
+                    {
+                        PCEJ (BSEL, _SUN)
+                    }
+                }
+
+                Device (S50)
+                {
+                    Name (_SUN, 0x0A)  // _SUN: Slot User Number
+                    Name (_ADR, 0x000A0000)  // _ADR: Address
+                    Method (_EJ0, 1, NotSerialized)  // _EJx: Eject Device, x=0-9
+                    {
+                        PCEJ (BSEL, _SUN)
+                    }
+                }
+
+                Device (S58)
+                {
+                    Name (_SUN, 0x0B)  // _SUN: Slot User Number
+                    Name (_ADR, 0x000B0000)  // _ADR: Address
+                    Method (_EJ0, 1, NotSerialized)  // _EJx: Eject Device, x=0-9
+                    {
+                        PCEJ (BSEL, _SUN)
+                    }
+                }
+
+                Device (S60)
+                {
+                    Name (_SUN, 0x0C)  // _SUN: Slot User Number
+                    Name (_ADR, 0x000C0000)  // _ADR: Address
+                    Method (_EJ0, 1, NotSerialized)  // _EJx: Eject Device, x=0-9
+                    {
+                        PCEJ (BSEL, _SUN)
+                    }
+                }
+
+                Device (S68)
+                {
+                    Name (_SUN, 0x0D)  // _SUN: Slot User Number
+                    Name (_ADR, 0x000D0000)  // _ADR: Address
+                    Method (_EJ0, 1, NotSerialized)  // _EJx: Eject Device, x=0-9
+                    {
+                        PCEJ (BSEL, _SUN)
+                    }
+                }
+
+                Device (S70)
+                {
+                    Name (_SUN, 0x0E)  // _SUN: Slot User Number
+                    Name (_ADR, 0x000E0000)  // _ADR: Address
+                    Method (_EJ0, 1, NotSerialized)  // _EJx: Eject Device, x=0-9
+                    {
+                        PCEJ (BSEL, _SUN)
+                    }
+                }
+
+                Device (S78)
+                {
+                    Name (_SUN, 0x0F)  // _SUN: Slot User Number
+                    Name (_ADR, 0x000F0000)  // _ADR: Address
+                    Method (_EJ0, 1, NotSerialized)  // _EJx: Eject Device, x=0-9
+                    {
+                        PCEJ (BSEL, _SUN)
+                    }
+                }
+
+                Device (S80)
+                {
+                    Name (_SUN, 0x10)  // _SUN: Slot User Number
+                    Name (_ADR, 0x00100000)  // _ADR: Address
+                    Method (_EJ0, 1, NotSerialized)  // _EJx: Eject Device, x=0-9
+                    {
+                        PCEJ (BSEL, _SUN)
+                    }
+                }
+
+                Device (S88)
+                {
+                    Name (_SUN, 0x11)  // _SUN: Slot User Number
+                    Name (_ADR, 0x00110000)  // _ADR: Address
+                    Method (_EJ0, 1, NotSerialized)  // _EJx: Eject Device, x=0-9
+                    {
+                        PCEJ (BSEL, _SUN)
+                    }
+                }
+
+                Device (S90)
+                {
+                    Name (_SUN, 0x12)  // _SUN: Slot User Number
+                    Name (_ADR, 0x00120000)  // _ADR: Address
+                    Method (_EJ0, 1, NotSerialized)  // _EJx: Eject Device, x=0-9
+                    {
+                        PCEJ (BSEL, _SUN)
+                    }
+                }
+
+                Device (S98)
+                {
+                    Name (_SUN, 0x13)  // _SUN: Slot User Number
+                    Name (_ADR, 0x00130000)  // _ADR: Address
+                    Method (_EJ0, 1, NotSerialized)  // _EJx: Eject Device, x=0-9
+                    {
+                        PCEJ (BSEL, _SUN)
+                    }
+                }
+
+                Device (SA0)
+                {
+                    Name (_SUN, 0x14)  // _SUN: Slot User Number
+                    Name (_ADR, 0x00140000)  // _ADR: Address
+                    Method (_EJ0, 1, NotSerialized)  // _EJx: Eject Device, x=0-9
+                    {
+                        PCEJ (BSEL, _SUN)
+                    }
+                }
+
+                Device (SA8)
+                {
+                    Name (_SUN, 0x15)  // _SUN: Slot User Number
+                    Name (_ADR, 0x00150000)  // _ADR: Address
+                    Method (_EJ0, 1, NotSerialized)  // _EJx: Eject Device, x=0-9
+                    {
+                        PCEJ (BSEL, _SUN)
+                    }
+                }
+
+                Device (SB0)
+                {
+                    Name (_SUN, 0x16)  // _SUN: Slot User Number
+                    Name (_ADR, 0x00160000)  // _ADR: Address
+                    Method (_EJ0, 1, NotSerialized)  // _EJx: Eject Device, x=0-9
+                    {
+                        PCEJ (BSEL, _SUN)
+                    }
+                }
+
+                Device (SB8)
+                {
+                    Name (_SUN, 0x17)  // _SUN: Slot User Number
+                    Name (_ADR, 0x00170000)  // _ADR: Address
+                    Method (_EJ0, 1, NotSerialized)  // _EJx: Eject Device, x=0-9
+                    {
+                        PCEJ (BSEL, _SUN)
+                    }
+                }
+
+                Device (SC0)
+                {
+                    Name (_SUN, 0x18)  // _SUN: Slot User Number
+                    Name (_ADR, 0x00180000)  // _ADR: Address
+                    Method (_EJ0, 1, NotSerialized)  // _EJx: Eject Device, x=0-9
+                    {
+                        PCEJ (BSEL, _SUN)
+                    }
+                }
+
+                Device (SC8)
+                {
+                    Name (_SUN, 0x19)  // _SUN: Slot User Number
+                    Name (_ADR, 0x00190000)  // _ADR: Address
+                    Method (_EJ0, 1, NotSerialized)  // _EJx: Eject Device, x=0-9
+                    {
+                        PCEJ (BSEL, _SUN)
+                    }
+                }
+
+                Device (SD0)
+                {
+                    Name (_SUN, 0x1A)  // _SUN: Slot User Number
+                    Name (_ADR, 0x001A0000)  // _ADR: Address
+                    Method (_EJ0, 1, NotSerialized)  // _EJx: Eject Device, x=0-9
+                    {
+                        PCEJ (BSEL, _SUN)
+                    }
+                }
+
+                Device (SD8)
+                {
+                    Name (_SUN, 0x1B)  // _SUN: Slot User Number
+                    Name (_ADR, 0x001B0000)  // _ADR: Address
+                    Method (_EJ0, 1, NotSerialized)  // _EJx: Eject Device, x=0-9
+                    {
+                        PCEJ (BSEL, _SUN)
+                    }
+                }
+
+                Device (SE0)
+                {
+                    Name (_SUN, 0x1C)  // _SUN: Slot User Number
+                    Name (_ADR, 0x001C0000)  // _ADR: Address
+                    Method (_EJ0, 1, NotSerialized)  // _EJx: Eject Device, x=0-9
+                    {
+                        PCEJ (BSEL, _SUN)
+                    }
+                }
+
+                Device (SE8)
+                {
+                    Name (_SUN, 0x1D)  // _SUN: Slot User Number
+                    Name (_ADR, 0x001D0000)  // _ADR: Address
+                    Method (_EJ0, 1, NotSerialized)  // _EJx: Eject Device, x=0-9
+                    {
+                        PCEJ (BSEL, _SUN)
+                    }
+                }
+
+                Device (SF0)
+                {
+                    Name (_SUN, 0x1E)  // _SUN: Slot User Number
+                    Name (_ADR, 0x001E0000)  // _ADR: Address
+                    Method (_EJ0, 1, NotSerialized)  // _EJx: Eject Device, x=0-9
+                    {
+                        PCEJ (BSEL, _SUN)
+                    }
+                }
+
+                Device (SF8)
+                {
+                    Name (_SUN, 0x1F)  // _SUN: Slot User Number
+                    Name (_ADR, 0x001F0000)  // _ADR: Address
+                    Method (_EJ0, 1, NotSerialized)  // _EJx: Eject Device, x=0-9
+                    {
+                        PCEJ (BSEL, _SUN)
+                    }
+                }
+
+                Method (DVNT, 2, NotSerialized)
+                {
+                    If ((Arg0 & One))
+                    {
+                        Notify (S00, Arg1)
+                    }
+
+                    If ((Arg0 & 0x02))
+                    {
+                        Notify (S08, Arg1)
+                    }
+
+                    If ((Arg0 & 0x04))
+                    {
+                        Notify (S10, Arg1)
+                    }
+
+                    If ((Arg0 & 0x08))
+                    {
+                        Notify (S18, Arg1)
+                    }
+
+                    If ((Arg0 & 0x10))
+                    {
+                        Notify (S20, Arg1)
+                    }
+
+                    If ((Arg0 & 0x20))
+                    {
+                        Notify (S28, Arg1)
+                    }
+
+                    If ((Arg0 & 0x40))
+                    {
+                        Notify (S30, Arg1)
+                    }
+
+                    If ((Arg0 & 0x80))
+                    {
+                        Notify (S38, Arg1)
+                    }
+
+                    If ((Arg0 & 0x0100))
+                    {
+                        Notify (S40, Arg1)
+                    }
+
+                    If ((Arg0 & 0x0200))
+                    {
+                        Notify (S48, Arg1)
+                    }
+
+                    If ((Arg0 & 0x0400))
+                    {
+                        Notify (S50, Arg1)
+                    }
+
+                    If ((Arg0 & 0x0800))
+                    {
+                        Notify (S58, Arg1)
+                    }
+
+                    If ((Arg0 & 0x1000))
+                    {
+                        Notify (S60, Arg1)
+                    }
+
+                    If ((Arg0 & 0x2000))
+                    {
+                        Notify (S68, Arg1)
+                    }
+
+                    If ((Arg0 & 0x4000))
+                    {
+                        Notify (S70, Arg1)
+                    }
+
+                    If ((Arg0 & 0x8000))
+                    {
+                        Notify (S78, Arg1)
+                    }
+
+                    If ((Arg0 & 0x00010000))
+                    {
+                        Notify (S80, Arg1)
+                    }
+
+                    If ((Arg0 & 0x00020000))
+                    {
+                        Notify (S88, Arg1)
+                    }
+
+                    If ((Arg0 & 0x00040000))
+                    {
+                        Notify (S90, Arg1)
+                    }
+
+                    If ((Arg0 & 0x00080000))
+                    {
+                        Notify (S98, Arg1)
+                    }
+
+                    If ((Arg0 & 0x00100000))
+                    {
+                        Notify (SA0, Arg1)
+                    }
+
+                    If ((Arg0 & 0x00200000))
+                    {
+                        Notify (SA8, Arg1)
+                    }
+
+                    If ((Arg0 & 0x00400000))
+                    {
+                        Notify (SB0, Arg1)
+                    }
+
+                    If ((Arg0 & 0x00800000))
+                    {
+                        Notify (SB8, Arg1)
+                    }
+
+                    If ((Arg0 & 0x01000000))
+                    {
+                        Notify (SC0, Arg1)
+                    }
+
+                    If ((Arg0 & 0x02000000))
+                    {
+                        Notify (SC8, Arg1)
+                    }
+
+                    If ((Arg0 & 0x04000000))
+                    {
+                        Notify (SD0, Arg1)
+                    }
+
+                    If ((Arg0 & 0x08000000))
+                    {
+                        Notify (SD8, Arg1)
+                    }
+
+                    If ((Arg0 & 0x10000000))
+                    {
+                        Notify (SE0, Arg1)
+                    }
+
+                    If ((Arg0 & 0x20000000))
+                    {
+                        Notify (SE8, Arg1)
+                    }
+
+                    If ((Arg0 & 0x40000000))
+                    {
+                        Notify (SF0, Arg1)
+                    }
+
+                    If ((Arg0 & 0x80000000))
+                    {
+                        Notify (SF8, Arg1)
+                    }
+                }
+
+                Method (PCNT, 0, NotSerialized)
+                {
+                    BNUM = Zero
+                    DVNT (PCIU, One)
+                    DVNT (PCID, 0x03)
+                }
+            }
+
+            Method (PCNT, 0, NotSerialized)
+            {
+                ^S18.PCNT ()
+            }
+        }
+    }
+}
+
diff --git a/tests/data/acpi/pc/DSDT.hpbridge b/tests/data/acpi/pc/DSDT.hpbridge
index b0751398541bdf88ce405be9742aeba0b375dbc3..56032bcf1ba4e251f16c9028429826090531efdd 100644
GIT binary patch
delta 323
zcmbQQHdmd?CD<iot}p`wBkM-4Eo@9)c9RdVt!DByo}A16m&r|Rat?<~J%_WOYq${8
z{{n{O0>+d@E<%%27z-Fu3K$a#7!nux@JyJTz&JG-D3nl;9HY+?AM6w#;OuD-5ab%{
z9PH{-z<@63?CY{Xd@8!Ai(^Rg(gmE86S@8atyx+Cldp%F1yZm;Wim`0ChX}K%vg}z
z0diy_Lun$=Sqse<m|`dk@(p8j4snZ2=3*{jL^lH{3Dj4bT)>dD$dzSkQer_f*uW%)
eWM^)WCZG+`h6Tx!bvRU6ffkk~ZMNln#0dabbz!Rj

delta 193
zcmbQMK3|Q?CD<iIUYLP_@#jXaEo@9aW|I%Ft!DDqo}A16m&t=~at?<KUjbvnB1i7Y
z35*2{2?Y$34Y`E<7Pzxaj?rg{4|a+VaP~9^2yzW}_Vf#8bPjQgL>G5)3}Gx_L>C3B
l2AaFjn`MCq%VZl)NnLaWKy6&inEHZz!+`oW@8*2O2>_N2HcS8j

diff --git a/tests/data/acpi/pc/DSDT.ipmikcs.dsl b/tests/data/acpi/pc/DSDT.ipmikcs.dsl
new file mode 100644
index 0000000000..2e4b524ab8
--- /dev/null
+++ b/tests/data/acpi/pc/DSDT.ipmikcs.dsl
@@ -0,0 +1,1337 @@ 
+/*
+ * Intel ACPI Component Architecture
+ * AML/ASL+ Disassembler version 20190509 (64-bit version)
+ * Copyright (c) 2000 - 2019 Intel Corporation
+ * 
+ * Disassembling to symbolic ASL+ operators
+ *
+ * Disassembly of tests/data/acpi/pc/DSDT.ipmikcs, Tue Aug  4 11:14:15 2020
+ *
+ * Original Table Header:
+ *     Signature        "DSDT"
+ *     Length           0x0000138E (5006)
+ *     Revision         0x01 **** 32-bit table (V1), no 64-bit math support
+ *     Checksum         0x54
+ *     OEM ID           "BOCHS "
+ *     OEM Table ID     "BXPCDSDT"
+ *     OEM Revision     0x00000001 (1)
+ *     Compiler ID      "BXPC"
+ *     Compiler Version 0x00000001 (1)
+ */
+DefinitionBlock ("", "DSDT", 1, "BOCHS ", "BXPCDSDT", 0x00000001)
+{
+    Scope (\)
+    {
+        OperationRegion (DBG, SystemIO, 0x0402, One)
+        Field (DBG, ByteAcc, NoLock, Preserve)
+        {
+            DBGB,   8
+        }
+
+        Method (DBUG, 1, NotSerialized)
+        {
+            ToHexString (Arg0, Local0)
+            ToBuffer (Local0, Local0)
+            Local1 = (SizeOf (Local0) - One)
+            Local2 = Zero
+            While ((Local2 < Local1))
+            {
+                DBGB = DerefOf (Local0 [Local2])
+                Local2++
+            }
+
+            DBGB = 0x0A
+        }
+    }
+
+    Scope (_SB)
+    {
+        Device (PCI0)
+        {
+            Name (_HID, EisaId ("PNP0A03") /* PCI Bus */)  // _HID: Hardware ID
+            Name (_ADR, Zero)  // _ADR: Address
+            Name (_UID, Zero)  // _UID: Unique ID
+        }
+    }
+
+    Scope (_SB)
+    {
+        Device (HPET)
+        {
+            Name (_HID, EisaId ("PNP0103") /* HPET System Timer */)  // _HID: Hardware ID
+            Name (_UID, Zero)  // _UID: Unique ID
+            OperationRegion (HPTM, SystemMemory, 0xFED00000, 0x0400)
+            Field (HPTM, DWordAcc, Lock, Preserve)
+            {
+                VEND,   32, 
+                PRD,    32
+            }
+
+            Method (_STA, 0, NotSerialized)  // _STA: Status
+            {
+                Local0 = VEND /* \_SB_.HPET.VEND */
+                Local1 = PRD /* \_SB_.HPET.PRD_ */
+                Local0 >>= 0x10
+                If (((Local0 == Zero) || (Local0 == 0xFFFF)))
+                {
+                    Return (Zero)
+                }
+
+                If (((Local1 == Zero) || (Local1 > 0x05F5E100)))
+                {
+                    Return (Zero)
+                }
+
+                Return (0x0F)
+            }
+
+            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+            {
+                Memory32Fixed (ReadOnly,
+                    0xFED00000,         // Address Base
+                    0x00000400,         // Address Length
+                    )
+            })
+        }
+    }
+
+    Scope (_SB.PCI0)
+    {
+        Device (ISA)
+        {
+            Name (_ADR, 0x00010000)  // _ADR: Address
+            OperationRegion (P40C, PCI_Config, 0x60, 0x04)
+        }
+    }
+
+    Scope (_SB.PCI0.ISA)
+    {
+        Device (MI1)
+        {
+            Name (_HID, EisaId ("IPI0001"))  // _HID: Hardware ID
+            Name (_STR, "ipmi_kcs")  // _STR: Description String
+            Name (_UID, One)  // _UID: Unique ID
+            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+            {
+                IO (Decode16,
+                    0x0CA2,             // Range Minimum
+                    0x0CA3,             // Range Maximum
+                    0x01,               // Alignment
+                    0x02,               // Length
+                    )
+            })
+            Name (_IFT, One)  // _IFT: IPMI Interface Type
+            Name (_SRV, 0x0200)  // _SRV: IPMI Spec Revision
+        }
+
+        Device (KBD)
+        {
+            Name (_HID, EisaId ("PNP0303") /* IBM Enhanced Keyboard (101/102-key, PS/2 Mouse) */)  // _HID: Hardware ID
+            Name (_STA, 0x0F)  // _STA: Status
+            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+            {
+                IO (Decode16,
+                    0x0060,             // Range Minimum
+                    0x0060,             // Range Maximum
+                    0x01,               // Alignment
+                    0x01,               // Length
+                    )
+                IO (Decode16,
+                    0x0064,             // Range Minimum
+                    0x0064,             // Range Maximum
+                    0x01,               // Alignment
+                    0x01,               // Length
+                    )
+                IRQNoFlags ()
+                    {1}
+            })
+        }
+
+        Device (MOU)
+        {
+            Name (_HID, EisaId ("PNP0F13") /* PS/2 Mouse */)  // _HID: Hardware ID
+            Name (_STA, 0x0F)  // _STA: Status
+            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+            {
+                IRQNoFlags ()
+                    {12}
+            })
+        }
+
+        Device (FDC0)
+        {
+            Name (_HID, EisaId ("PNP0700"))  // _HID: Hardware ID
+            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+            {
+                IO (Decode16,
+                    0x03F2,             // Range Minimum
+                    0x03F2,             // Range Maximum
+                    0x00,               // Alignment
+                    0x04,               // Length
+                    )
+                IO (Decode16,
+                    0x03F7,             // Range Minimum
+                    0x03F7,             // Range Maximum
+                    0x00,               // Alignment
+                    0x01,               // Length
+                    )
+                IRQNoFlags ()
+                    {6}
+                DMA (Compatibility, NotBusMaster, Transfer8, )
+                    {2}
+            })
+            Device (FLPA)
+            {
+                Name (_ADR, Zero)  // _ADR: Address
+                Name (_FDI, Package (0x10)  // _FDI: Floppy Drive Information
+                {
+                    Zero, 
+                    0x05, 
+                    0x4F, 
+                    0x30, 
+                    One, 
+                    0xAF, 
+                    0x02, 
+                    0x25, 
+                    0x02, 
+                    0x12, 
+                    0x1B, 
+                    0xFF, 
+                    0x6C, 
+                    0xF6, 
+                    0x0F, 
+                    0x08
+                })
+            }
+
+            Name (_FDE, Buffer (0x14)  // _FDE: Floppy Disk Enumerate
+            {
+                /* 0000 */  0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,  // ........
+                /* 0008 */  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,  // ........
+                /* 0010 */  0x02, 0x00, 0x00, 0x00                           // ....
+            })
+        }
+
+        Device (LPT1)
+        {
+            Name (_HID, EisaId ("PNP0400") /* Standard LPT Parallel Port */)  // _HID: Hardware ID
+            Name (_UID, One)  // _UID: Unique ID
+            Name (_STA, 0x0F)  // _STA: Status
+            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+            {
+                IO (Decode16,
+                    0x0378,             // Range Minimum
+                    0x0378,             // Range Maximum
+                    0x08,               // Alignment
+                    0x08,               // Length
+                    )
+                IRQNoFlags ()
+                    {7}
+            })
+        }
+
+        Device (COM1)
+        {
+            Name (_HID, EisaId ("PNP0501") /* 16550A-compatible COM Serial Port */)  // _HID: Hardware ID
+            Name (_UID, One)  // _UID: Unique ID
+            Name (_STA, 0x0F)  // _STA: Status
+            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+            {
+                IO (Decode16,
+                    0x03F8,             // Range Minimum
+                    0x03F8,             // Range Maximum
+                    0x00,               // Alignment
+                    0x08,               // Length
+                    )
+                IRQNoFlags ()
+                    {4}
+            })
+        }
+
+        Device (RTC)
+        {
+            Name (_HID, EisaId ("PNP0B00") /* AT Real-Time Clock */)  // _HID: Hardware ID
+            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+            {
+                IO (Decode16,
+                    0x0070,             // Range Minimum
+                    0x0070,             // Range Maximum
+                    0x01,               // Alignment
+                    0x08,               // Length
+                    )
+                IRQNoFlags ()
+                    {8}
+            })
+        }
+    }
+
+    Scope (_SB.PCI0)
+    {
+        OperationRegion (PCST, SystemIO, 0xAE00, 0x08)
+        Field (PCST, DWordAcc, NoLock, WriteAsZeros)
+        {
+            PCIU,   32, 
+            PCID,   32
+        }
+
+        OperationRegion (SEJ, SystemIO, 0xAE08, 0x04)
+        Field (SEJ, DWordAcc, NoLock, WriteAsZeros)
+        {
+            B0EJ,   32
+        }
+
+        OperationRegion (BNMR, SystemIO, 0xAE10, 0x04)
+        Field (BNMR, DWordAcc, NoLock, WriteAsZeros)
+        {
+            BNUM,   32
+        }
+
+        Mutex (BLCK, 0x00)
+        Method (PCEJ, 2, NotSerialized)
+        {
+            Acquire (BLCK, 0xFFFF)
+            BNUM = Arg0
+            B0EJ = (One << Arg1)
+            Release (BLCK)
+            Return (Zero)
+        }
+    }
+
+    Scope (_SB)
+    {
+        Scope (PCI0)
+        {
+            Method (_PRT, 0, NotSerialized)  // _PRT: PCI Routing Table
+            {
+                Local0 = Package (0x80){}
+                Local1 = Zero
+                While ((Local1 < 0x80))
+                {
+                    Local2 = (Local1 >> 0x02)
+                    Local3 = ((Local1 + Local2) & 0x03)
+                    If ((Local3 == Zero))
+                    {
+                        Local4 = Package (0x04)
+                            {
+                                Zero, 
+                                Zero, 
+                                LNKD, 
+                                Zero
+                            }
+                    }
+
+                    If ((Local3 == One))
+                    {
+                        If ((Local1 == 0x04))
+                        {
+                            Local4 = Package (0x04)
+                                {
+                                    Zero, 
+                                    Zero, 
+                                    LNKS, 
+                                    Zero
+                                }
+                        }
+                        Else
+                        {
+                            Local4 = Package (0x04)
+                                {
+                                    Zero, 
+                                    Zero, 
+                                    LNKA, 
+                                    Zero
+                                }
+                        }
+                    }
+
+                    If ((Local3 == 0x02))
+                    {
+                        Local4 = Package (0x04)
+                            {
+                                Zero, 
+                                Zero, 
+                                LNKB, 
+                                Zero
+                            }
+                    }
+
+                    If ((Local3 == 0x03))
+                    {
+                        Local4 = Package (0x04)
+                            {
+                                Zero, 
+                                Zero, 
+                                LNKC, 
+                                Zero
+                            }
+                    }
+
+                    Local4 [Zero] = ((Local2 << 0x10) | 0xFFFF)
+                    Local4 [One] = (Local1 & 0x03)
+                    Local0 [Local1] = Local4
+                    Local1++
+                }
+
+                Return (Local0)
+            }
+        }
+
+        Field (PCI0.ISA.P40C, ByteAcc, NoLock, Preserve)
+        {
+            PRQ0,   8, 
+            PRQ1,   8, 
+            PRQ2,   8, 
+            PRQ3,   8
+        }
+
+        Method (IQST, 1, NotSerialized)
+        {
+            If ((0x80 & Arg0))
+            {
+                Return (0x09)
+            }
+
+            Return (0x0B)
+        }
+
+        Method (IQCR, 1, Serialized)
+        {
+            Name (PRR0, ResourceTemplate ()
+            {
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, _Y00)
+                {
+                    0x00000000,
+                }
+            })
+            CreateDWordField (PRR0, \_SB.IQCR._Y00._INT, PRRI)  // _INT: Interrupts
+            If ((Arg0 < 0x80))
+            {
+                PRRI = Arg0
+            }
+
+            Return (PRR0) /* \_SB_.IQCR.PRR0 */
+        }
+
+        Device (LNKA)
+        {
+            Name (_HID, EisaId ("PNP0C0F") /* PCI Interrupt Link Device */)  // _HID: Hardware ID
+            Name (_UID, Zero)  // _UID: Unique ID
+            Name (_PRS, ResourceTemplate ()  // _PRS: Possible Resource Settings
+            {
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, )
+                {
+                    0x00000005,
+                    0x0000000A,
+                    0x0000000B,
+                }
+            })
+            Method (_STA, 0, NotSerialized)  // _STA: Status
+            {
+                Return (IQST (PRQ0))
+            }
+
+            Method (_DIS, 0, NotSerialized)  // _DIS: Disable Device
+            {
+                PRQ0 |= 0x80
+            }
+
+            Method (_CRS, 0, NotSerialized)  // _CRS: Current Resource Settings
+            {
+                Return (IQCR (PRQ0))
+            }
+
+            Method (_SRS, 1, NotSerialized)  // _SRS: Set Resource Settings
+            {
+                CreateDWordField (Arg0, 0x05, PRRI)
+                PRQ0 = PRRI /* \_SB_.LNKA._SRS.PRRI */
+            }
+        }
+
+        Device (LNKB)
+        {
+            Name (_HID, EisaId ("PNP0C0F") /* PCI Interrupt Link Device */)  // _HID: Hardware ID
+            Name (_UID, One)  // _UID: Unique ID
+            Name (_PRS, ResourceTemplate ()  // _PRS: Possible Resource Settings
+            {
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, )
+                {
+                    0x00000005,
+                    0x0000000A,
+                    0x0000000B,
+                }
+            })
+            Method (_STA, 0, NotSerialized)  // _STA: Status
+            {
+                Return (IQST (PRQ1))
+            }
+
+            Method (_DIS, 0, NotSerialized)  // _DIS: Disable Device
+            {
+                PRQ1 |= 0x80
+            }
+
+            Method (_CRS, 0, NotSerialized)  // _CRS: Current Resource Settings
+            {
+                Return (IQCR (PRQ1))
+            }
+
+            Method (_SRS, 1, NotSerialized)  // _SRS: Set Resource Settings
+            {
+                CreateDWordField (Arg0, 0x05, PRRI)
+                PRQ1 = PRRI /* \_SB_.LNKB._SRS.PRRI */
+            }
+        }
+
+        Device (LNKC)
+        {
+            Name (_HID, EisaId ("PNP0C0F") /* PCI Interrupt Link Device */)  // _HID: Hardware ID
+            Name (_UID, 0x02)  // _UID: Unique ID
+            Name (_PRS, ResourceTemplate ()  // _PRS: Possible Resource Settings
+            {
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, )
+                {
+                    0x00000005,
+                    0x0000000A,
+                    0x0000000B,
+                }
+            })
+            Method (_STA, 0, NotSerialized)  // _STA: Status
+            {
+                Return (IQST (PRQ2))
+            }
+
+            Method (_DIS, 0, NotSerialized)  // _DIS: Disable Device
+            {
+                PRQ2 |= 0x80
+            }
+
+            Method (_CRS, 0, NotSerialized)  // _CRS: Current Resource Settings
+            {
+                Return (IQCR (PRQ2))
+            }
+
+            Method (_SRS, 1, NotSerialized)  // _SRS: Set Resource Settings
+            {
+                CreateDWordField (Arg0, 0x05, PRRI)
+                PRQ2 = PRRI /* \_SB_.LNKC._SRS.PRRI */
+            }
+        }
+
+        Device (LNKD)
+        {
+            Name (_HID, EisaId ("PNP0C0F") /* PCI Interrupt Link Device */)  // _HID: Hardware ID
+            Name (_UID, 0x03)  // _UID: Unique ID
+            Name (_PRS, ResourceTemplate ()  // _PRS: Possible Resource Settings
+            {
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, )
+                {
+                    0x00000005,
+                    0x0000000A,
+                    0x0000000B,
+                }
+            })
+            Method (_STA, 0, NotSerialized)  // _STA: Status
+            {
+                Return (IQST (PRQ3))
+            }
+
+            Method (_DIS, 0, NotSerialized)  // _DIS: Disable Device
+            {
+                PRQ3 |= 0x80
+            }
+
+            Method (_CRS, 0, NotSerialized)  // _CRS: Current Resource Settings
+            {
+                Return (IQCR (PRQ3))
+            }
+
+            Method (_SRS, 1, NotSerialized)  // _SRS: Set Resource Settings
+            {
+                CreateDWordField (Arg0, 0x05, PRRI)
+                PRQ3 = PRRI /* \_SB_.LNKD._SRS.PRRI */
+            }
+        }
+
+        Device (LNKS)
+        {
+            Name (_HID, EisaId ("PNP0C0F") /* PCI Interrupt Link Device */)  // _HID: Hardware ID
+            Name (_UID, 0x04)  // _UID: Unique ID
+            Name (_PRS, ResourceTemplate ()  // _PRS: Possible Resource Settings
+            {
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, )
+                {
+                    0x00000009,
+                }
+            })
+            Method (_STA, 0, NotSerialized)  // _STA: Status
+            {
+                Return (0x0B)
+            }
+
+            Method (_DIS, 0, NotSerialized)  // _DIS: Disable Device
+            {
+            }
+
+            Method (_CRS, 0, NotSerialized)  // _CRS: Current Resource Settings
+            {
+                Return (_PRS) /* \_SB_.LNKS._PRS */
+            }
+
+            Method (_SRS, 1, NotSerialized)  // _SRS: Set Resource Settings
+            {
+            }
+        }
+    }
+
+    Scope (_SB)
+    {
+        Device (\_SB.PCI0.PRES)
+        {
+            Name (_HID, EisaId ("PNP0A06") /* Generic Container Device */)  // _HID: Hardware ID
+            Name (_UID, "CPU Hotplug resources")  // _UID: Unique ID
+            Mutex (CPLK, 0x00)
+            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+            {
+                IO (Decode16,
+                    0xAF00,             // Range Minimum
+                    0xAF00,             // Range Maximum
+                    0x01,               // Alignment
+                    0x0C,               // Length
+                    )
+            })
+            OperationRegion (PRST, SystemIO, 0xAF00, 0x0C)
+            Field (PRST, ByteAcc, NoLock, WriteAsZeros)
+            {
+                Offset (0x04), 
+                CPEN,   1, 
+                CINS,   1, 
+                CRMV,   1, 
+                CEJ0,   1, 
+                Offset (0x05), 
+                CCMD,   8
+            }
+
+            Field (PRST, DWordAcc, NoLock, Preserve)
+            {
+                CSEL,   32, 
+                Offset (0x08), 
+                CDAT,   32
+            }
+
+            Method (_INI, 0, Serialized)  // _INI: Initialize
+            {
+                CSEL = Zero
+            }
+        }
+
+        Device (\_SB.CPUS)
+        {
+            Name (_HID, "ACPI0010" /* Processor Container Device */)  // _HID: Hardware ID
+            Name (_CID, EisaId ("PNP0A05") /* Generic Container Device */)  // _CID: Compatible ID
+            Method (CTFY, 2, NotSerialized)
+            {
+                If ((Arg0 == Zero))
+                {
+                    Notify (C000, Arg1)
+                }
+            }
+
+            Method (CSTA, 1, Serialized)
+            {
+                Acquire (\_SB.PCI0.PRES.CPLK, 0xFFFF)
+                \_SB.PCI0.PRES.CSEL = Arg0
+                Local0 = Zero
+                If ((\_SB.PCI0.PRES.CPEN == One))
+                {
+                    Local0 = 0x0F
+                }
+
+                Release (\_SB.PCI0.PRES.CPLK)
+                Return (Local0)
+            }
+
+            Method (CEJ0, 1, Serialized)
+            {
+                Acquire (\_SB.PCI0.PRES.CPLK, 0xFFFF)
+                \_SB.PCI0.PRES.CSEL = Arg0
+                \_SB.PCI0.PRES.CEJ0 = One
+                Release (\_SB.PCI0.PRES.CPLK)
+            }
+
+            Method (CSCN, 0, Serialized)
+            {
+                Acquire (\_SB.PCI0.PRES.CPLK, 0xFFFF)
+                Local0 = One
+                While ((Local0 == One))
+                {
+                    Local0 = Zero
+                    \_SB.PCI0.PRES.CCMD = Zero
+                    If ((\_SB.PCI0.PRES.CINS == One))
+                    {
+                        CTFY (\_SB.PCI0.PRES.CDAT, One)
+                        \_SB.PCI0.PRES.CINS = One
+                        Local0 = One
+                    }
+                    ElseIf ((\_SB.PCI0.PRES.CRMV == One))
+                    {
+                        CTFY (\_SB.PCI0.PRES.CDAT, 0x03)
+                        \_SB.PCI0.PRES.CRMV = One
+                        Local0 = One
+                    }
+                }
+
+                Release (\_SB.PCI0.PRES.CPLK)
+            }
+
+            Method (COST, 4, Serialized)
+            {
+                Acquire (\_SB.PCI0.PRES.CPLK, 0xFFFF)
+                \_SB.PCI0.PRES.CSEL = Arg0
+                \_SB.PCI0.PRES.CCMD = One
+                \_SB.PCI0.PRES.CDAT = Arg1
+                \_SB.PCI0.PRES.CCMD = 0x02
+                \_SB.PCI0.PRES.CDAT = Arg2
+                Release (\_SB.PCI0.PRES.CPLK)
+            }
+
+            Processor (C000, 0x00, 0x00000000, 0x00)
+            {
+                Method (_STA, 0, Serialized)  // _STA: Status
+                {
+                    Return (CSTA (Zero))
+                }
+
+                Name (_MAT, Buffer (0x08)  // _MAT: Multiple APIC Table Entry
+                {
+                     0x00, 0x08, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00   // ........
+                })
+                Method (_OST, 3, Serialized)  // _OST: OSPM Status Indication
+                {
+                    COST (Zero, Arg0, Arg1, Arg2)
+                }
+            }
+        }
+    }
+
+    Method (\_GPE._E02, 0, NotSerialized)  // _Exx: Edge-Triggered GPE, xx=0x00-0xFF
+    {
+        \_SB.CPUS.CSCN ()
+    }
+
+    Scope (_GPE)
+    {
+        Name (_HID, "ACPI0006" /* GPE Block Device */)  // _HID: Hardware ID
+        Method (_E01, 0, NotSerialized)  // _Exx: Edge-Triggered GPE, xx=0x00-0xFF
+        {
+            Acquire (\_SB.PCI0.BLCK, 0xFFFF)
+            \_SB.PCI0.PCNT ()
+            Release (\_SB.PCI0.BLCK)
+        }
+    }
+
+    Scope (\_SB.PCI0)
+    {
+        Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+        {
+            WordBusNumber (ResourceProducer, MinFixed, MaxFixed, PosDecode,
+                0x0000,             // Granularity
+                0x0000,             // Range Minimum
+                0x00FF,             // Range Maximum
+                0x0000,             // Translation Offset
+                0x0100,             // Length
+                ,, )
+            IO (Decode16,
+                0x0CF8,             // Range Minimum
+                0x0CF8,             // Range Maximum
+                0x01,               // Alignment
+                0x08,               // Length
+                )
+            WordIO (ResourceProducer, MinFixed, MaxFixed, PosDecode, EntireRange,
+                0x0000,             // Granularity
+                0x0000,             // Range Minimum
+                0x0CF7,             // Range Maximum
+                0x0000,             // Translation Offset
+                0x0CF8,             // Length
+                ,, , TypeStatic, DenseTranslation)
+            WordIO (ResourceProducer, MinFixed, MaxFixed, PosDecode, EntireRange,
+                0x0000,             // Granularity
+                0x0D00,             // Range Minimum
+                0xFFFF,             // Range Maximum
+                0x0000,             // Translation Offset
+                0xF300,             // Length
+                ,, , TypeStatic, DenseTranslation)
+            DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, Cacheable, ReadWrite,
+                0x00000000,         // Granularity
+                0x000A0000,         // Range Minimum
+                0x000BFFFF,         // Range Maximum
+                0x00000000,         // Translation Offset
+                0x00020000,         // Length
+                ,, , AddressRangeMemory, TypeStatic)
+            DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, NonCacheable, ReadWrite,
+                0x00000000,         // Granularity
+                0x08000000,         // Range Minimum
+                0xFEBFFFFF,         // Range Maximum
+                0x00000000,         // Translation Offset
+                0xF6C00000,         // Length
+                ,, , AddressRangeMemory, TypeStatic)
+            QWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, Cacheable, ReadWrite,
+                0x0000000000000000, // Granularity
+                0x0000000100000000, // Range Minimum
+                0x000000017FFFFFFF, // Range Maximum
+                0x0000000000000000, // Translation Offset
+                0x0000000080000000, // Length
+                ,, , AddressRangeMemory, TypeStatic)
+        })
+        Device (GPE0)
+        {
+            Name (_HID, "PNP0A06" /* Generic Container Device */)  // _HID: Hardware ID
+            Name (_UID, "GPE0 resources")  // _UID: Unique ID
+            Name (_STA, 0x0B)  // _STA: Status
+            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+            {
+                IO (Decode16,
+                    0xAFE0,             // Range Minimum
+                    0xAFE0,             // Range Maximum
+                    0x01,               // Alignment
+                    0x04,               // Length
+                    )
+            })
+        }
+
+        Device (PHPR)
+        {
+            Name (_HID, "PNP0A06" /* Generic Container Device */)  // _HID: Hardware ID
+            Name (_UID, "PCI Hotplug resources")  // _UID: Unique ID
+            Name (_STA, 0x0B)  // _STA: Status
+            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+            {
+                IO (Decode16,
+                    0xAE00,             // Range Minimum
+                    0xAE00,             // Range Maximum
+                    0x01,               // Alignment
+                    0x14,               // Length
+                    )
+            })
+        }
+    }
+
+    Scope (\)
+    {
+        Name (_S3, Package (0x04)  // _S3_: S3 System State
+        {
+            One, 
+            One, 
+            Zero, 
+            Zero
+        })
+        Name (_S4, Package (0x04)  // _S4_: S4 System State
+        {
+            0x02, 
+            0x02, 
+            Zero, 
+            Zero
+        })
+        Name (_S5, Package (0x04)  // _S5_: S5 System State
+        {
+            Zero, 
+            Zero, 
+            Zero, 
+            Zero
+        })
+    }
+
+    Scope (\_SB.PCI0)
+    {
+        Device (FWCF)
+        {
+            Name (_HID, "QEMU0002")  // _HID: Hardware ID
+            Name (_STA, 0x0B)  // _STA: Status
+            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+            {
+                IO (Decode16,
+                    0x0510,             // Range Minimum
+                    0x0510,             // Range Maximum
+                    0x01,               // Alignment
+                    0x0C,               // Length
+                    )
+            })
+        }
+    }
+
+    Scope (\_SB)
+    {
+        Scope (PCI0)
+        {
+            Name (BSEL, Zero)
+            Device (S00)
+            {
+                Name (_ADR, Zero)  // _ADR: Address
+            }
+
+            Device (S10)
+            {
+                Name (_ADR, 0x00020000)  // _ADR: Address
+                Method (_S1D, 0, NotSerialized)  // _S1D: S1 Device State
+                {
+                    Return (Zero)
+                }
+
+                Method (_S2D, 0, NotSerialized)  // _S2D: S2 Device State
+                {
+                    Return (Zero)
+                }
+
+                Method (_S3D, 0, NotSerialized)  // _S3D: S3 Device State
+                {
+                    Return (Zero)
+                }
+            }
+
+            Device (S18)
+            {
+                Name (_SUN, 0x03)  // _SUN: Slot User Number
+                Name (_ADR, 0x00030000)  // _ADR: Address
+                Method (_EJ0, 1, NotSerialized)  // _EJx: Eject Device, x=0-9
+                {
+                    PCEJ (BSEL, _SUN)
+                }
+            }
+
+            Device (S20)
+            {
+                Name (_SUN, 0x04)  // _SUN: Slot User Number
+                Name (_ADR, 0x00040000)  // _ADR: Address
+                Method (_EJ0, 1, NotSerialized)  // _EJx: Eject Device, x=0-9
+                {
+                    PCEJ (BSEL, _SUN)
+                }
+            }
+
+            Device (S28)
+            {
+                Name (_SUN, 0x05)  // _SUN: Slot User Number
+                Name (_ADR, 0x00050000)  // _ADR: Address
+                Method (_EJ0, 1, NotSerialized)  // _EJx: Eject Device, x=0-9
+                {
+                    PCEJ (BSEL, _SUN)
+                }
+            }
+
+            Device (S30)
+            {
+                Name (_SUN, 0x06)  // _SUN: Slot User Number
+                Name (_ADR, 0x00060000)  // _ADR: Address
+                Method (_EJ0, 1, NotSerialized)  // _EJx: Eject Device, x=0-9
+                {
+                    PCEJ (BSEL, _SUN)
+                }
+            }
+
+            Device (S38)
+            {
+                Name (_SUN, 0x07)  // _SUN: Slot User Number
+                Name (_ADR, 0x00070000)  // _ADR: Address
+                Method (_EJ0, 1, NotSerialized)  // _EJx: Eject Device, x=0-9
+                {
+                    PCEJ (BSEL, _SUN)
+                }
+            }
+
+            Device (S40)
+            {
+                Name (_SUN, 0x08)  // _SUN: Slot User Number
+                Name (_ADR, 0x00080000)  // _ADR: Address
+                Method (_EJ0, 1, NotSerialized)  // _EJx: Eject Device, x=0-9
+                {
+                    PCEJ (BSEL, _SUN)
+                }
+            }
+
+            Device (S48)
+            {
+                Name (_SUN, 0x09)  // _SUN: Slot User Number
+                Name (_ADR, 0x00090000)  // _ADR: Address
+                Method (_EJ0, 1, NotSerialized)  // _EJx: Eject Device, x=0-9
+                {
+                    PCEJ (BSEL, _SUN)
+                }
+            }
+
+            Device (S50)
+            {
+                Name (_SUN, 0x0A)  // _SUN: Slot User Number
+                Name (_ADR, 0x000A0000)  // _ADR: Address
+                Method (_EJ0, 1, NotSerialized)  // _EJx: Eject Device, x=0-9
+                {
+                    PCEJ (BSEL, _SUN)
+                }
+            }
+
+            Device (S58)
+            {
+                Name (_SUN, 0x0B)  // _SUN: Slot User Number
+                Name (_ADR, 0x000B0000)  // _ADR: Address
+                Method (_EJ0, 1, NotSerialized)  // _EJx: Eject Device, x=0-9
+                {
+                    PCEJ (BSEL, _SUN)
+                }
+            }
+
+            Device (S60)
+            {
+                Name (_SUN, 0x0C)  // _SUN: Slot User Number
+                Name (_ADR, 0x000C0000)  // _ADR: Address
+                Method (_EJ0, 1, NotSerialized)  // _EJx: Eject Device, x=0-9
+                {
+                    PCEJ (BSEL, _SUN)
+                }
+            }
+
+            Device (S68)
+            {
+                Name (_SUN, 0x0D)  // _SUN: Slot User Number
+                Name (_ADR, 0x000D0000)  // _ADR: Address
+                Method (_EJ0, 1, NotSerialized)  // _EJx: Eject Device, x=0-9
+                {
+                    PCEJ (BSEL, _SUN)
+                }
+            }
+
+            Device (S70)
+            {
+                Name (_SUN, 0x0E)  // _SUN: Slot User Number
+                Name (_ADR, 0x000E0000)  // _ADR: Address
+                Method (_EJ0, 1, NotSerialized)  // _EJx: Eject Device, x=0-9
+                {
+                    PCEJ (BSEL, _SUN)
+                }
+            }
+
+            Device (S78)
+            {
+                Name (_SUN, 0x0F)  // _SUN: Slot User Number
+                Name (_ADR, 0x000F0000)  // _ADR: Address
+                Method (_EJ0, 1, NotSerialized)  // _EJx: Eject Device, x=0-9
+                {
+                    PCEJ (BSEL, _SUN)
+                }
+            }
+
+            Device (S80)
+            {
+                Name (_SUN, 0x10)  // _SUN: Slot User Number
+                Name (_ADR, 0x00100000)  // _ADR: Address
+                Method (_EJ0, 1, NotSerialized)  // _EJx: Eject Device, x=0-9
+                {
+                    PCEJ (BSEL, _SUN)
+                }
+            }
+
+            Device (S88)
+            {
+                Name (_SUN, 0x11)  // _SUN: Slot User Number
+                Name (_ADR, 0x00110000)  // _ADR: Address
+                Method (_EJ0, 1, NotSerialized)  // _EJx: Eject Device, x=0-9
+                {
+                    PCEJ (BSEL, _SUN)
+                }
+            }
+
+            Device (S90)
+            {
+                Name (_SUN, 0x12)  // _SUN: Slot User Number
+                Name (_ADR, 0x00120000)  // _ADR: Address
+                Method (_EJ0, 1, NotSerialized)  // _EJx: Eject Device, x=0-9
+                {
+                    PCEJ (BSEL, _SUN)
+                }
+            }
+
+            Device (S98)
+            {
+                Name (_SUN, 0x13)  // _SUN: Slot User Number
+                Name (_ADR, 0x00130000)  // _ADR: Address
+                Method (_EJ0, 1, NotSerialized)  // _EJx: Eject Device, x=0-9
+                {
+                    PCEJ (BSEL, _SUN)
+                }
+            }
+
+            Device (SA0)
+            {
+                Name (_SUN, 0x14)  // _SUN: Slot User Number
+                Name (_ADR, 0x00140000)  // _ADR: Address
+                Method (_EJ0, 1, NotSerialized)  // _EJx: Eject Device, x=0-9
+                {
+                    PCEJ (BSEL, _SUN)
+                }
+            }
+
+            Device (SA8)
+            {
+                Name (_SUN, 0x15)  // _SUN: Slot User Number
+                Name (_ADR, 0x00150000)  // _ADR: Address
+                Method (_EJ0, 1, NotSerialized)  // _EJx: Eject Device, x=0-9
+                {
+                    PCEJ (BSEL, _SUN)
+                }
+            }
+
+            Device (SB0)
+            {
+                Name (_SUN, 0x16)  // _SUN: Slot User Number
+                Name (_ADR, 0x00160000)  // _ADR: Address
+                Method (_EJ0, 1, NotSerialized)  // _EJx: Eject Device, x=0-9
+                {
+                    PCEJ (BSEL, _SUN)
+                }
+            }
+
+            Device (SB8)
+            {
+                Name (_SUN, 0x17)  // _SUN: Slot User Number
+                Name (_ADR, 0x00170000)  // _ADR: Address
+                Method (_EJ0, 1, NotSerialized)  // _EJx: Eject Device, x=0-9
+                {
+                    PCEJ (BSEL, _SUN)
+                }
+            }
+
+            Device (SC0)
+            {
+                Name (_SUN, 0x18)  // _SUN: Slot User Number
+                Name (_ADR, 0x00180000)  // _ADR: Address
+                Method (_EJ0, 1, NotSerialized)  // _EJx: Eject Device, x=0-9
+                {
+                    PCEJ (BSEL, _SUN)
+                }
+            }
+
+            Device (SC8)
+            {
+                Name (_SUN, 0x19)  // _SUN: Slot User Number
+                Name (_ADR, 0x00190000)  // _ADR: Address
+                Method (_EJ0, 1, NotSerialized)  // _EJx: Eject Device, x=0-9
+                {
+                    PCEJ (BSEL, _SUN)
+                }
+            }
+
+            Device (SD0)
+            {
+                Name (_SUN, 0x1A)  // _SUN: Slot User Number
+                Name (_ADR, 0x001A0000)  // _ADR: Address
+                Method (_EJ0, 1, NotSerialized)  // _EJx: Eject Device, x=0-9
+                {
+                    PCEJ (BSEL, _SUN)
+                }
+            }
+
+            Device (SD8)
+            {
+                Name (_SUN, 0x1B)  // _SUN: Slot User Number
+                Name (_ADR, 0x001B0000)  // _ADR: Address
+                Method (_EJ0, 1, NotSerialized)  // _EJx: Eject Device, x=0-9
+                {
+                    PCEJ (BSEL, _SUN)
+                }
+            }
+
+            Device (SE0)
+            {
+                Name (_SUN, 0x1C)  // _SUN: Slot User Number
+                Name (_ADR, 0x001C0000)  // _ADR: Address
+                Method (_EJ0, 1, NotSerialized)  // _EJx: Eject Device, x=0-9
+                {
+                    PCEJ (BSEL, _SUN)
+                }
+            }
+
+            Device (SE8)
+            {
+                Name (_SUN, 0x1D)  // _SUN: Slot User Number
+                Name (_ADR, 0x001D0000)  // _ADR: Address
+                Method (_EJ0, 1, NotSerialized)  // _EJx: Eject Device, x=0-9
+                {
+                    PCEJ (BSEL, _SUN)
+                }
+            }
+
+            Device (SF0)
+            {
+                Name (_SUN, 0x1E)  // _SUN: Slot User Number
+                Name (_ADR, 0x001E0000)  // _ADR: Address
+                Method (_EJ0, 1, NotSerialized)  // _EJx: Eject Device, x=0-9
+                {
+                    PCEJ (BSEL, _SUN)
+                }
+            }
+
+            Device (SF8)
+            {
+                Name (_SUN, 0x1F)  // _SUN: Slot User Number
+                Name (_ADR, 0x001F0000)  // _ADR: Address
+                Method (_EJ0, 1, NotSerialized)  // _EJx: Eject Device, x=0-9
+                {
+                    PCEJ (BSEL, _SUN)
+                }
+            }
+
+            Method (DVNT, 2, NotSerialized)
+            {
+                If ((Arg0 & 0x08))
+                {
+                    Notify (S18, Arg1)
+                }
+
+                If ((Arg0 & 0x10))
+                {
+                    Notify (S20, Arg1)
+                }
+
+                If ((Arg0 & 0x20))
+                {
+                    Notify (S28, Arg1)
+                }
+
+                If ((Arg0 & 0x40))
+                {
+                    Notify (S30, Arg1)
+                }
+
+                If ((Arg0 & 0x80))
+                {
+                    Notify (S38, Arg1)
+                }
+
+                If ((Arg0 & 0x0100))
+                {
+                    Notify (S40, Arg1)
+                }
+
+                If ((Arg0 & 0x0200))
+                {
+                    Notify (S48, Arg1)
+                }
+
+                If ((Arg0 & 0x0400))
+                {
+                    Notify (S50, Arg1)
+                }
+
+                If ((Arg0 & 0x0800))
+                {
+                    Notify (S58, Arg1)
+                }
+
+                If ((Arg0 & 0x1000))
+                {
+                    Notify (S60, Arg1)
+                }
+
+                If ((Arg0 & 0x2000))
+                {
+                    Notify (S68, Arg1)
+                }
+
+                If ((Arg0 & 0x4000))
+                {
+                    Notify (S70, Arg1)
+                }
+
+                If ((Arg0 & 0x8000))
+                {
+                    Notify (S78, Arg1)
+                }
+
+                If ((Arg0 & 0x00010000))
+                {
+                    Notify (S80, Arg1)
+                }
+
+                If ((Arg0 & 0x00020000))
+                {
+                    Notify (S88, Arg1)
+                }
+
+                If ((Arg0 & 0x00040000))
+                {
+                    Notify (S90, Arg1)
+                }
+
+                If ((Arg0 & 0x00080000))
+                {
+                    Notify (S98, Arg1)
+                }
+
+                If ((Arg0 & 0x00100000))
+                {
+                    Notify (SA0, Arg1)
+                }
+
+                If ((Arg0 & 0x00200000))
+                {
+                    Notify (SA8, Arg1)
+                }
+
+                If ((Arg0 & 0x00400000))
+                {
+                    Notify (SB0, Arg1)
+                }
+
+                If ((Arg0 & 0x00800000))
+                {
+                    Notify (SB8, Arg1)
+                }
+
+                If ((Arg0 & 0x01000000))
+                {
+                    Notify (SC0, Arg1)
+                }
+
+                If ((Arg0 & 0x02000000))
+                {
+                    Notify (SC8, Arg1)
+                }
+
+                If ((Arg0 & 0x04000000))
+                {
+                    Notify (SD0, Arg1)
+                }
+
+                If ((Arg0 & 0x08000000))
+                {
+                    Notify (SD8, Arg1)
+                }
+
+                If ((Arg0 & 0x10000000))
+                {
+                    Notify (SE0, Arg1)
+                }
+
+                If ((Arg0 & 0x20000000))
+                {
+                    Notify (SE8, Arg1)
+                }
+
+                If ((Arg0 & 0x40000000))
+                {
+                    Notify (SF0, Arg1)
+                }
+
+                If ((Arg0 & 0x80000000))
+                {
+                    Notify (SF8, Arg1)
+                }
+            }
+
+            Method (PCNT, 0, NotSerialized)
+            {
+                BNUM = Zero
+                DVNT (PCIU, One)
+                DVNT (PCID, 0x03)
+            }
+        }
+    }
+}
+
diff --git a/tests/data/acpi/pc/DSDT.memhp.dsl b/tests/data/acpi/pc/DSDT.memhp.dsl
new file mode 100644
index 0000000000..299315051e
--- /dev/null
+++ b/tests/data/acpi/pc/DSDT.memhp.dsl
@@ -0,0 +1,1625 @@ 
+/*
+ * Intel ACPI Component Architecture
+ * AML/ASL+ Disassembler version 20190509 (64-bit version)
+ * Copyright (c) 2000 - 2019 Intel Corporation
+ * 
+ * Disassembling to symbolic ASL+ operators
+ *
+ * Disassembly of tests/data/acpi/pc/DSDT.memhp, Tue Aug  4 11:14:15 2020
+ *
+ * Original Table Header:
+ *     Signature        "DSDT"
+ *     Length           0x00001895 (6293)
+ *     Revision         0x01 **** 32-bit table (V1), no 64-bit math support
+ *     Checksum         0xB2
+ *     OEM ID           "BOCHS "
+ *     OEM Table ID     "BXPCDSDT"
+ *     OEM Revision     0x00000001 (1)
+ *     Compiler ID      "BXPC"
+ *     Compiler Version 0x00000001 (1)
+ */
+DefinitionBlock ("", "DSDT", 1, "BOCHS ", "BXPCDSDT", 0x00000001)
+{
+    Scope (\)
+    {
+        OperationRegion (DBG, SystemIO, 0x0402, One)
+        Field (DBG, ByteAcc, NoLock, Preserve)
+        {
+            DBGB,   8
+        }
+
+        Method (DBUG, 1, NotSerialized)
+        {
+            ToHexString (Arg0, Local0)
+            ToBuffer (Local0, Local0)
+            Local1 = (SizeOf (Local0) - One)
+            Local2 = Zero
+            While ((Local2 < Local1))
+            {
+                DBGB = DerefOf (Local0 [Local2])
+                Local2++
+            }
+
+            DBGB = 0x0A
+        }
+    }
+
+    Scope (_SB)
+    {
+        Device (PCI0)
+        {
+            Name (_HID, EisaId ("PNP0A03") /* PCI Bus */)  // _HID: Hardware ID
+            Name (_ADR, Zero)  // _ADR: Address
+            Name (_UID, Zero)  // _UID: Unique ID
+        }
+    }
+
+    Scope (_SB)
+    {
+        Device (HPET)
+        {
+            Name (_HID, EisaId ("PNP0103") /* HPET System Timer */)  // _HID: Hardware ID
+            Name (_UID, Zero)  // _UID: Unique ID
+            OperationRegion (HPTM, SystemMemory, 0xFED00000, 0x0400)
+            Field (HPTM, DWordAcc, Lock, Preserve)
+            {
+                VEND,   32, 
+                PRD,    32
+            }
+
+            Method (_STA, 0, NotSerialized)  // _STA: Status
+            {
+                Local0 = VEND /* \_SB_.HPET.VEND */
+                Local1 = PRD /* \_SB_.HPET.PRD_ */
+                Local0 >>= 0x10
+                If (((Local0 == Zero) || (Local0 == 0xFFFF)))
+                {
+                    Return (Zero)
+                }
+
+                If (((Local1 == Zero) || (Local1 > 0x05F5E100)))
+                {
+                    Return (Zero)
+                }
+
+                Return (0x0F)
+            }
+
+            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+            {
+                Memory32Fixed (ReadOnly,
+                    0xFED00000,         // Address Base
+                    0x00000400,         // Address Length
+                    )
+            })
+        }
+    }
+
+    Scope (_SB.PCI0)
+    {
+        Device (ISA)
+        {
+            Name (_ADR, 0x00010000)  // _ADR: Address
+            OperationRegion (P40C, PCI_Config, 0x60, 0x04)
+        }
+    }
+
+    Scope (_SB.PCI0.ISA)
+    {
+        Device (KBD)
+        {
+            Name (_HID, EisaId ("PNP0303") /* IBM Enhanced Keyboard (101/102-key, PS/2 Mouse) */)  // _HID: Hardware ID
+            Name (_STA, 0x0F)  // _STA: Status
+            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+            {
+                IO (Decode16,
+                    0x0060,             // Range Minimum
+                    0x0060,             // Range Maximum
+                    0x01,               // Alignment
+                    0x01,               // Length
+                    )
+                IO (Decode16,
+                    0x0064,             // Range Minimum
+                    0x0064,             // Range Maximum
+                    0x01,               // Alignment
+                    0x01,               // Length
+                    )
+                IRQNoFlags ()
+                    {1}
+            })
+        }
+
+        Device (MOU)
+        {
+            Name (_HID, EisaId ("PNP0F13") /* PS/2 Mouse */)  // _HID: Hardware ID
+            Name (_STA, 0x0F)  // _STA: Status
+            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+            {
+                IRQNoFlags ()
+                    {12}
+            })
+        }
+
+        Device (FDC0)
+        {
+            Name (_HID, EisaId ("PNP0700"))  // _HID: Hardware ID
+            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+            {
+                IO (Decode16,
+                    0x03F2,             // Range Minimum
+                    0x03F2,             // Range Maximum
+                    0x00,               // Alignment
+                    0x04,               // Length
+                    )
+                IO (Decode16,
+                    0x03F7,             // Range Minimum
+                    0x03F7,             // Range Maximum
+                    0x00,               // Alignment
+                    0x01,               // Length
+                    )
+                IRQNoFlags ()
+                    {6}
+                DMA (Compatibility, NotBusMaster, Transfer8, )
+                    {2}
+            })
+            Device (FLPA)
+            {
+                Name (_ADR, Zero)  // _ADR: Address
+                Name (_FDI, Package (0x10)  // _FDI: Floppy Drive Information
+                {
+                    Zero, 
+                    0x05, 
+                    0x4F, 
+                    0x30, 
+                    One, 
+                    0xAF, 
+                    0x02, 
+                    0x25, 
+                    0x02, 
+                    0x12, 
+                    0x1B, 
+                    0xFF, 
+                    0x6C, 
+                    0xF6, 
+                    0x0F, 
+                    0x08
+                })
+            }
+
+            Name (_FDE, Buffer (0x14)  // _FDE: Floppy Disk Enumerate
+            {
+                /* 0000 */  0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,  // ........
+                /* 0008 */  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,  // ........
+                /* 0010 */  0x02, 0x00, 0x00, 0x00                           // ....
+            })
+        }
+
+        Device (LPT1)
+        {
+            Name (_HID, EisaId ("PNP0400") /* Standard LPT Parallel Port */)  // _HID: Hardware ID
+            Name (_UID, One)  // _UID: Unique ID
+            Name (_STA, 0x0F)  // _STA: Status
+            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+            {
+                IO (Decode16,
+                    0x0378,             // Range Minimum
+                    0x0378,             // Range Maximum
+                    0x08,               // Alignment
+                    0x08,               // Length
+                    )
+                IRQNoFlags ()
+                    {7}
+            })
+        }
+
+        Device (COM1)
+        {
+            Name (_HID, EisaId ("PNP0501") /* 16550A-compatible COM Serial Port */)  // _HID: Hardware ID
+            Name (_UID, One)  // _UID: Unique ID
+            Name (_STA, 0x0F)  // _STA: Status
+            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+            {
+                IO (Decode16,
+                    0x03F8,             // Range Minimum
+                    0x03F8,             // Range Maximum
+                    0x00,               // Alignment
+                    0x08,               // Length
+                    )
+                IRQNoFlags ()
+                    {4}
+            })
+        }
+
+        Device (RTC)
+        {
+            Name (_HID, EisaId ("PNP0B00") /* AT Real-Time Clock */)  // _HID: Hardware ID
+            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+            {
+                IO (Decode16,
+                    0x0070,             // Range Minimum
+                    0x0070,             // Range Maximum
+                    0x01,               // Alignment
+                    0x08,               // Length
+                    )
+                IRQNoFlags ()
+                    {8}
+            })
+        }
+    }
+
+    Scope (_SB.PCI0)
+    {
+        OperationRegion (PCST, SystemIO, 0xAE00, 0x08)
+        Field (PCST, DWordAcc, NoLock, WriteAsZeros)
+        {
+            PCIU,   32, 
+            PCID,   32
+        }
+
+        OperationRegion (SEJ, SystemIO, 0xAE08, 0x04)
+        Field (SEJ, DWordAcc, NoLock, WriteAsZeros)
+        {
+            B0EJ,   32
+        }
+
+        OperationRegion (BNMR, SystemIO, 0xAE10, 0x04)
+        Field (BNMR, DWordAcc, NoLock, WriteAsZeros)
+        {
+            BNUM,   32
+        }
+
+        Mutex (BLCK, 0x00)
+        Method (PCEJ, 2, NotSerialized)
+        {
+            Acquire (BLCK, 0xFFFF)
+            BNUM = Arg0
+            B0EJ = (One << Arg1)
+            Release (BLCK)
+            Return (Zero)
+        }
+    }
+
+    Scope (_SB)
+    {
+        Scope (PCI0)
+        {
+            Method (_PRT, 0, NotSerialized)  // _PRT: PCI Routing Table
+            {
+                Local0 = Package (0x80){}
+                Local1 = Zero
+                While ((Local1 < 0x80))
+                {
+                    Local2 = (Local1 >> 0x02)
+                    Local3 = ((Local1 + Local2) & 0x03)
+                    If ((Local3 == Zero))
+                    {
+                        Local4 = Package (0x04)
+                            {
+                                Zero, 
+                                Zero, 
+                                LNKD, 
+                                Zero
+                            }
+                    }
+
+                    If ((Local3 == One))
+                    {
+                        If ((Local1 == 0x04))
+                        {
+                            Local4 = Package (0x04)
+                                {
+                                    Zero, 
+                                    Zero, 
+                                    LNKS, 
+                                    Zero
+                                }
+                        }
+                        Else
+                        {
+                            Local4 = Package (0x04)
+                                {
+                                    Zero, 
+                                    Zero, 
+                                    LNKA, 
+                                    Zero
+                                }
+                        }
+                    }
+
+                    If ((Local3 == 0x02))
+                    {
+                        Local4 = Package (0x04)
+                            {
+                                Zero, 
+                                Zero, 
+                                LNKB, 
+                                Zero
+                            }
+                    }
+
+                    If ((Local3 == 0x03))
+                    {
+                        Local4 = Package (0x04)
+                            {
+                                Zero, 
+                                Zero, 
+                                LNKC, 
+                                Zero
+                            }
+                    }
+
+                    Local4 [Zero] = ((Local2 << 0x10) | 0xFFFF)
+                    Local4 [One] = (Local1 & 0x03)
+                    Local0 [Local1] = Local4
+                    Local1++
+                }
+
+                Return (Local0)
+            }
+        }
+
+        Field (PCI0.ISA.P40C, ByteAcc, NoLock, Preserve)
+        {
+            PRQ0,   8, 
+            PRQ1,   8, 
+            PRQ2,   8, 
+            PRQ3,   8
+        }
+
+        Method (IQST, 1, NotSerialized)
+        {
+            If ((0x80 & Arg0))
+            {
+                Return (0x09)
+            }
+
+            Return (0x0B)
+        }
+
+        Method (IQCR, 1, Serialized)
+        {
+            Name (PRR0, ResourceTemplate ()
+            {
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, _Y00)
+                {
+                    0x00000000,
+                }
+            })
+            CreateDWordField (PRR0, \_SB.IQCR._Y00._INT, PRRI)  // _INT: Interrupts
+            If ((Arg0 < 0x80))
+            {
+                PRRI = Arg0
+            }
+
+            Return (PRR0) /* \_SB_.IQCR.PRR0 */
+        }
+
+        Device (LNKA)
+        {
+            Name (_HID, EisaId ("PNP0C0F") /* PCI Interrupt Link Device */)  // _HID: Hardware ID
+            Name (_UID, Zero)  // _UID: Unique ID
+            Name (_PRS, ResourceTemplate ()  // _PRS: Possible Resource Settings
+            {
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, )
+                {
+                    0x00000005,
+                    0x0000000A,
+                    0x0000000B,
+                }
+            })
+            Method (_STA, 0, NotSerialized)  // _STA: Status
+            {
+                Return (IQST (PRQ0))
+            }
+
+            Method (_DIS, 0, NotSerialized)  // _DIS: Disable Device
+            {
+                PRQ0 |= 0x80
+            }
+
+            Method (_CRS, 0, NotSerialized)  // _CRS: Current Resource Settings
+            {
+                Return (IQCR (PRQ0))
+            }
+
+            Method (_SRS, 1, NotSerialized)  // _SRS: Set Resource Settings
+            {
+                CreateDWordField (Arg0, 0x05, PRRI)
+                PRQ0 = PRRI /* \_SB_.LNKA._SRS.PRRI */
+            }
+        }
+
+        Device (LNKB)
+        {
+            Name (_HID, EisaId ("PNP0C0F") /* PCI Interrupt Link Device */)  // _HID: Hardware ID
+            Name (_UID, One)  // _UID: Unique ID
+            Name (_PRS, ResourceTemplate ()  // _PRS: Possible Resource Settings
+            {
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, )
+                {
+                    0x00000005,
+                    0x0000000A,
+                    0x0000000B,
+                }
+            })
+            Method (_STA, 0, NotSerialized)  // _STA: Status
+            {
+                Return (IQST (PRQ1))
+            }
+
+            Method (_DIS, 0, NotSerialized)  // _DIS: Disable Device
+            {
+                PRQ1 |= 0x80
+            }
+
+            Method (_CRS, 0, NotSerialized)  // _CRS: Current Resource Settings
+            {
+                Return (IQCR (PRQ1))
+            }
+
+            Method (_SRS, 1, NotSerialized)  // _SRS: Set Resource Settings
+            {
+                CreateDWordField (Arg0, 0x05, PRRI)
+                PRQ1 = PRRI /* \_SB_.LNKB._SRS.PRRI */
+            }
+        }
+
+        Device (LNKC)
+        {
+            Name (_HID, EisaId ("PNP0C0F") /* PCI Interrupt Link Device */)  // _HID: Hardware ID
+            Name (_UID, 0x02)  // _UID: Unique ID
+            Name (_PRS, ResourceTemplate ()  // _PRS: Possible Resource Settings
+            {
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, )
+                {
+                    0x00000005,
+                    0x0000000A,
+                    0x0000000B,
+                }
+            })
+            Method (_STA, 0, NotSerialized)  // _STA: Status
+            {
+                Return (IQST (PRQ2))
+            }
+
+            Method (_DIS, 0, NotSerialized)  // _DIS: Disable Device
+            {
+                PRQ2 |= 0x80
+            }
+
+            Method (_CRS, 0, NotSerialized)  // _CRS: Current Resource Settings
+            {
+                Return (IQCR (PRQ2))
+            }
+
+            Method (_SRS, 1, NotSerialized)  // _SRS: Set Resource Settings
+            {
+                CreateDWordField (Arg0, 0x05, PRRI)
+                PRQ2 = PRRI /* \_SB_.LNKC._SRS.PRRI */
+            }
+        }
+
+        Device (LNKD)
+        {
+            Name (_HID, EisaId ("PNP0C0F") /* PCI Interrupt Link Device */)  // _HID: Hardware ID
+            Name (_UID, 0x03)  // _UID: Unique ID
+            Name (_PRS, ResourceTemplate ()  // _PRS: Possible Resource Settings
+            {
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, )
+                {
+                    0x00000005,
+                    0x0000000A,
+                    0x0000000B,
+                }
+            })
+            Method (_STA, 0, NotSerialized)  // _STA: Status
+            {
+                Return (IQST (PRQ3))
+            }
+
+            Method (_DIS, 0, NotSerialized)  // _DIS: Disable Device
+            {
+                PRQ3 |= 0x80
+            }
+
+            Method (_CRS, 0, NotSerialized)  // _CRS: Current Resource Settings
+            {
+                Return (IQCR (PRQ3))
+            }
+
+            Method (_SRS, 1, NotSerialized)  // _SRS: Set Resource Settings
+            {
+                CreateDWordField (Arg0, 0x05, PRRI)
+                PRQ3 = PRRI /* \_SB_.LNKD._SRS.PRRI */
+            }
+        }
+
+        Device (LNKS)
+        {
+            Name (_HID, EisaId ("PNP0C0F") /* PCI Interrupt Link Device */)  // _HID: Hardware ID
+            Name (_UID, 0x04)  // _UID: Unique ID
+            Name (_PRS, ResourceTemplate ()  // _PRS: Possible Resource Settings
+            {
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, )
+                {
+                    0x00000009,
+                }
+            })
+            Method (_STA, 0, NotSerialized)  // _STA: Status
+            {
+                Return (0x0B)
+            }
+
+            Method (_DIS, 0, NotSerialized)  // _DIS: Disable Device
+            {
+            }
+
+            Method (_CRS, 0, NotSerialized)  // _CRS: Current Resource Settings
+            {
+                Return (_PRS) /* \_SB_.LNKS._PRS */
+            }
+
+            Method (_SRS, 1, NotSerialized)  // _SRS: Set Resource Settings
+            {
+            }
+        }
+    }
+
+    Scope (_SB)
+    {
+        Device (\_SB.PCI0.PRES)
+        {
+            Name (_HID, EisaId ("PNP0A06") /* Generic Container Device */)  // _HID: Hardware ID
+            Name (_UID, "CPU Hotplug resources")  // _UID: Unique ID
+            Mutex (CPLK, 0x00)
+            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+            {
+                IO (Decode16,
+                    0xAF00,             // Range Minimum
+                    0xAF00,             // Range Maximum
+                    0x01,               // Alignment
+                    0x0C,               // Length
+                    )
+            })
+            OperationRegion (PRST, SystemIO, 0xAF00, 0x0C)
+            Field (PRST, ByteAcc, NoLock, WriteAsZeros)
+            {
+                Offset (0x04), 
+                CPEN,   1, 
+                CINS,   1, 
+                CRMV,   1, 
+                CEJ0,   1, 
+                Offset (0x05), 
+                CCMD,   8
+            }
+
+            Field (PRST, DWordAcc, NoLock, Preserve)
+            {
+                CSEL,   32, 
+                Offset (0x08), 
+                CDAT,   32
+            }
+
+            Method (_INI, 0, Serialized)  // _INI: Initialize
+            {
+                CSEL = Zero
+            }
+        }
+
+        Device (\_SB.CPUS)
+        {
+            Name (_HID, "ACPI0010" /* Processor Container Device */)  // _HID: Hardware ID
+            Name (_CID, EisaId ("PNP0A05") /* Generic Container Device */)  // _CID: Compatible ID
+            Method (CTFY, 2, NotSerialized)
+            {
+                If ((Arg0 == Zero))
+                {
+                    Notify (C000, Arg1)
+                }
+            }
+
+            Method (CSTA, 1, Serialized)
+            {
+                Acquire (\_SB.PCI0.PRES.CPLK, 0xFFFF)
+                \_SB.PCI0.PRES.CSEL = Arg0
+                Local0 = Zero
+                If ((\_SB.PCI0.PRES.CPEN == One))
+                {
+                    Local0 = 0x0F
+                }
+
+                Release (\_SB.PCI0.PRES.CPLK)
+                Return (Local0)
+            }
+
+            Method (CEJ0, 1, Serialized)
+            {
+                Acquire (\_SB.PCI0.PRES.CPLK, 0xFFFF)
+                \_SB.PCI0.PRES.CSEL = Arg0
+                \_SB.PCI0.PRES.CEJ0 = One
+                Release (\_SB.PCI0.PRES.CPLK)
+            }
+
+            Method (CSCN, 0, Serialized)
+            {
+                Acquire (\_SB.PCI0.PRES.CPLK, 0xFFFF)
+                Local0 = One
+                While ((Local0 == One))
+                {
+                    Local0 = Zero
+                    \_SB.PCI0.PRES.CCMD = Zero
+                    If ((\_SB.PCI0.PRES.CINS == One))
+                    {
+                        CTFY (\_SB.PCI0.PRES.CDAT, One)
+                        \_SB.PCI0.PRES.CINS = One
+                        Local0 = One
+                    }
+                    ElseIf ((\_SB.PCI0.PRES.CRMV == One))
+                    {
+                        CTFY (\_SB.PCI0.PRES.CDAT, 0x03)
+                        \_SB.PCI0.PRES.CRMV = One
+                        Local0 = One
+                    }
+                }
+
+                Release (\_SB.PCI0.PRES.CPLK)
+            }
+
+            Method (COST, 4, Serialized)
+            {
+                Acquire (\_SB.PCI0.PRES.CPLK, 0xFFFF)
+                \_SB.PCI0.PRES.CSEL = Arg0
+                \_SB.PCI0.PRES.CCMD = One
+                \_SB.PCI0.PRES.CDAT = Arg1
+                \_SB.PCI0.PRES.CCMD = 0x02
+                \_SB.PCI0.PRES.CDAT = Arg2
+                Release (\_SB.PCI0.PRES.CPLK)
+            }
+
+            Processor (C000, 0x00, 0x00000000, 0x00)
+            {
+                Method (_STA, 0, Serialized)  // _STA: Status
+                {
+                    Return (CSTA (Zero))
+                }
+
+                Name (_MAT, Buffer (0x08)  // _MAT: Multiple APIC Table Entry
+                {
+                     0x00, 0x08, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00   // ........
+                })
+                Method (_OST, 3, Serialized)  // _OST: OSPM Status Indication
+                {
+                    COST (Zero, Arg0, Arg1, Arg2)
+                }
+
+                Name (_PXM, Zero)  // _PXM: Device Proximity
+            }
+        }
+    }
+
+    Method (\_GPE._E02, 0, NotSerialized)  // _Exx: Edge-Triggered GPE, xx=0x00-0xFF
+    {
+        \_SB.CPUS.CSCN ()
+    }
+
+    Device (\_SB.PCI0.MHPD)
+    {
+        Name (_HID, "PNP0A06" /* Generic Container Device */)  // _HID: Hardware ID
+        Name (_UID, "Memory hotplug resources")  // _UID: Unique ID
+        Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+        {
+            IO (Decode16,
+                0x0A00,             // Range Minimum
+                0x0A00,             // Range Maximum
+                0x00,               // Alignment
+                0x18,               // Length
+                )
+        })
+        OperationRegion (HPMR, SystemIO, 0x0A00, 0x18)
+    }
+
+    Device (\_SB.MHPC)
+    {
+        Name (_HID, "PNP0A06" /* Generic Container Device */)  // _HID: Hardware ID
+        Name (_UID, "DIMM devices")  // _UID: Unique ID
+        Name (MDNR, 0x03)
+        Field (\_SB.PCI0.MHPD.HPMR, DWordAcc, NoLock, Preserve)
+        {
+            MRBL,   32, 
+            MRBH,   32, 
+            MRLL,   32, 
+            MRLH,   32, 
+            MPX,    32
+        }
+
+        Field (\_SB.PCI0.MHPD.HPMR, ByteAcc, NoLock, WriteAsZeros)
+        {
+            Offset (0x14), 
+            MES,    1, 
+            MINS,   1, 
+            MRMV,   1, 
+            MEJ,    1
+        }
+
+        Field (\_SB.PCI0.MHPD.HPMR, DWordAcc, NoLock, Preserve)
+        {
+            MSEL,   32, 
+            MOEV,   32, 
+            MOSC,   32
+        }
+
+        Method (_STA, 0, NotSerialized)  // _STA: Status
+        {
+            If ((MDNR == Zero))
+            {
+                Return (Zero)
+            }
+
+            Return (0x0B)
+        }
+
+        Mutex (MLCK, 0x00)
+        Method (MSCN, 0, NotSerialized)
+        {
+            If ((MDNR == Zero))
+            {
+                Return (Zero)
+            }
+
+            Local0 = Zero
+            Acquire (MLCK, 0xFFFF)
+            While ((Local0 < MDNR))
+            {
+                MSEL = Local0
+                If ((MINS == One))
+                {
+                    MTFY (Local0, One)
+                    MINS = One
+                }
+                ElseIf ((MRMV == One))
+                {
+                    MTFY (Local0, 0x03)
+                    MRMV = One
+                }
+
+                Local0 += One
+            }
+
+            Release (MLCK)
+            Return (One)
+        }
+
+        Method (MRST, 1, NotSerialized)
+        {
+            Local0 = Zero
+            Acquire (MLCK, 0xFFFF)
+            MSEL = ToInteger (Arg0)
+            If ((MES == One))
+            {
+                Local0 = 0x0F
+            }
+
+            Release (MLCK)
+            Return (Local0)
+        }
+
+        Method (MCRS, 1, Serialized)
+        {
+            Acquire (MLCK, 0xFFFF)
+            MSEL = ToInteger (Arg0)
+            Name (MR64, ResourceTemplate ()
+            {
+                QWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, Cacheable, ReadWrite,
+                    0x0000000000000000, // Granularity
+                    0x0000000000000000, // Range Minimum
+                    0xFFFFFFFFFFFFFFFE, // Range Maximum
+                    0x0000000000000000, // Translation Offset
+                    0xFFFFFFFFFFFFFFFF, // Length
+                    ,, _Y01, AddressRangeMemory, TypeStatic)
+            })
+            CreateDWordField (MR64, \_SB.MHPC.MCRS._Y01._MIN, MINL)  // _MIN: Minimum Base Address
+            CreateDWordField (MR64, 0x12, MINH)
+            CreateDWordField (MR64, \_SB.MHPC.MCRS._Y01._LEN, LENL)  // _LEN: Length
+            CreateDWordField (MR64, 0x2A, LENH)
+            CreateDWordField (MR64, \_SB.MHPC.MCRS._Y01._MAX, MAXL)  // _MAX: Maximum Base Address
+            CreateDWordField (MR64, 0x1A, MAXH)
+            MINH = MRBH /* \_SB_.MHPC.MRBH */
+            MINL = MRBL /* \_SB_.MHPC.MRBL */
+            LENH = MRLH /* \_SB_.MHPC.MRLH */
+            LENL = MRLL /* \_SB_.MHPC.MRLL */
+            MAXL = (MINL + LENL) /* \_SB_.MHPC.MCRS.LENL */
+            MAXH = (MINH + LENH) /* \_SB_.MHPC.MCRS.LENH */
+            If ((MAXL < MINL))
+            {
+                MAXH += One
+            }
+
+            If ((MAXL < One))
+            {
+                MAXH -= One
+            }
+
+            MAXL -= One
+            If ((MAXH == Zero))
+            {
+                Name (MR32, ResourceTemplate ()
+                {
+                    DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, Cacheable, ReadWrite,
+                        0x00000000,         // Granularity
+                        0x00000000,         // Range Minimum
+                        0xFFFFFFFE,         // Range Maximum
+                        0x00000000,         // Translation Offset
+                        0xFFFFFFFF,         // Length
+                        ,, _Y02, AddressRangeMemory, TypeStatic)
+                })
+                CreateDWordField (MR32, \_SB.MHPC.MCRS._Y02._MIN, MIN)  // _MIN: Minimum Base Address
+                CreateDWordField (MR32, \_SB.MHPC.MCRS._Y02._MAX, MAX)  // _MAX: Maximum Base Address
+                CreateDWordField (MR32, \_SB.MHPC.MCRS._Y02._LEN, LEN)  // _LEN: Length
+                MIN = MINL /* \_SB_.MHPC.MCRS.MINL */
+                MAX = MAXL /* \_SB_.MHPC.MCRS.MAXL */
+                LEN = LENL /* \_SB_.MHPC.MCRS.LENL */
+                Release (MLCK)
+                Return (MR32) /* \_SB_.MHPC.MCRS.MR32 */
+            }
+
+            Release (MLCK)
+            Return (MR64) /* \_SB_.MHPC.MCRS.MR64 */
+        }
+
+        Method (MPXM, 1, NotSerialized)
+        {
+            Acquire (MLCK, 0xFFFF)
+            MSEL = ToInteger (Arg0)
+            Local0 = MPX /* \_SB_.MHPC.MPX_ */
+            Release (MLCK)
+            Return (Local0)
+        }
+
+        Method (MOST, 4, NotSerialized)
+        {
+            Acquire (MLCK, 0xFFFF)
+            MSEL = ToInteger (Arg0)
+            MOEV = Arg1
+            MOSC = Arg2
+            Release (MLCK)
+        }
+
+        Method (MEJ0, 2, NotSerialized)
+        {
+            Acquire (MLCK, 0xFFFF)
+            MSEL = ToInteger (Arg0)
+            MEJ = One
+            Release (MLCK)
+        }
+
+        Device (MP00)
+        {
+            Name (_UID, "0x00")  // _UID: Unique ID
+            Name (_HID, EisaId ("PNP0C80") /* Memory Device */)  // _HID: Hardware ID
+            Method (_CRS, 0, NotSerialized)  // _CRS: Current Resource Settings
+            {
+                Return (MCRS (_UID))
+            }
+
+            Method (_STA, 0, NotSerialized)  // _STA: Status
+            {
+                Return (MRST (_UID))
+            }
+
+            Method (_PXM, 0, NotSerialized)  // _PXM: Device Proximity
+            {
+                Return (MPXM (_UID))
+            }
+
+            Method (_OST, 3, NotSerialized)  // _OST: OSPM Status Indication
+            {
+                MOST (_UID, Arg0, Arg1, Arg2)
+            }
+
+            Method (_EJ0, 1, NotSerialized)  // _EJx: Eject Device, x=0-9
+            {
+                MEJ0 (_UID, Arg0)
+            }
+        }
+
+        Device (MP01)
+        {
+            Name (_UID, "0x01")  // _UID: Unique ID
+            Name (_HID, EisaId ("PNP0C80") /* Memory Device */)  // _HID: Hardware ID
+            Method (_CRS, 0, NotSerialized)  // _CRS: Current Resource Settings
+            {
+                Return (MCRS (_UID))
+            }
+
+            Method (_STA, 0, NotSerialized)  // _STA: Status
+            {
+                Return (MRST (_UID))
+            }
+
+            Method (_PXM, 0, NotSerialized)  // _PXM: Device Proximity
+            {
+                Return (MPXM (_UID))
+            }
+
+            Method (_OST, 3, NotSerialized)  // _OST: OSPM Status Indication
+            {
+                MOST (_UID, Arg0, Arg1, Arg2)
+            }
+
+            Method (_EJ0, 1, NotSerialized)  // _EJx: Eject Device, x=0-9
+            {
+                MEJ0 (_UID, Arg0)
+            }
+        }
+
+        Device (MP02)
+        {
+            Name (_UID, "0x02")  // _UID: Unique ID
+            Name (_HID, EisaId ("PNP0C80") /* Memory Device */)  // _HID: Hardware ID
+            Method (_CRS, 0, NotSerialized)  // _CRS: Current Resource Settings
+            {
+                Return (MCRS (_UID))
+            }
+
+            Method (_STA, 0, NotSerialized)  // _STA: Status
+            {
+                Return (MRST (_UID))
+            }
+
+            Method (_PXM, 0, NotSerialized)  // _PXM: Device Proximity
+            {
+                Return (MPXM (_UID))
+            }
+
+            Method (_OST, 3, NotSerialized)  // _OST: OSPM Status Indication
+            {
+                MOST (_UID, Arg0, Arg1, Arg2)
+            }
+
+            Method (_EJ0, 1, NotSerialized)  // _EJx: Eject Device, x=0-9
+            {
+                MEJ0 (_UID, Arg0)
+            }
+        }
+
+        Method (MTFY, 2, NotSerialized)
+        {
+            If ((Arg0 == Zero))
+            {
+                Notify (MP00, Arg1)
+            }
+
+            If ((Arg0 == One))
+            {
+                Notify (MP01, Arg1)
+            }
+
+            If ((Arg0 == 0x02))
+            {
+                Notify (MP02, Arg1)
+            }
+        }
+    }
+
+    Method (\_GPE._E03, 0, NotSerialized)  // _Exx: Edge-Triggered GPE, xx=0x00-0xFF
+    {
+        \_SB.MHPC.MSCN ()
+    }
+
+    Scope (_GPE)
+    {
+        Name (_HID, "ACPI0006" /* GPE Block Device */)  // _HID: Hardware ID
+        Method (_E01, 0, NotSerialized)  // _Exx: Edge-Triggered GPE, xx=0x00-0xFF
+        {
+            Acquire (\_SB.PCI0.BLCK, 0xFFFF)
+            \_SB.PCI0.PCNT ()
+            Release (\_SB.PCI0.BLCK)
+        }
+    }
+
+    Scope (\_SB.PCI0)
+    {
+        Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+        {
+            WordBusNumber (ResourceProducer, MinFixed, MaxFixed, PosDecode,
+                0x0000,             // Granularity
+                0x0000,             // Range Minimum
+                0x00FF,             // Range Maximum
+                0x0000,             // Translation Offset
+                0x0100,             // Length
+                ,, )
+            IO (Decode16,
+                0x0CF8,             // Range Minimum
+                0x0CF8,             // Range Maximum
+                0x01,               // Alignment
+                0x08,               // Length
+                )
+            WordIO (ResourceProducer, MinFixed, MaxFixed, PosDecode, EntireRange,
+                0x0000,             // Granularity
+                0x0000,             // Range Minimum
+                0x0CF7,             // Range Maximum
+                0x0000,             // Translation Offset
+                0x0CF8,             // Length
+                ,, , TypeStatic, DenseTranslation)
+            WordIO (ResourceProducer, MinFixed, MaxFixed, PosDecode, EntireRange,
+                0x0000,             // Granularity
+                0x0D00,             // Range Minimum
+                0xFFFF,             // Range Maximum
+                0x0000,             // Translation Offset
+                0xF300,             // Length
+                ,, , TypeStatic, DenseTranslation)
+            DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, Cacheable, ReadWrite,
+                0x00000000,         // Granularity
+                0x000A0000,         // Range Minimum
+                0x000BFFFF,         // Range Maximum
+                0x00000000,         // Translation Offset
+                0x00020000,         // Length
+                ,, , AddressRangeMemory, TypeStatic)
+            DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, NonCacheable, ReadWrite,
+                0x00000000,         // Granularity
+                0x08000000,         // Range Minimum
+                0xFEBFFFFF,         // Range Maximum
+                0x00000000,         // Translation Offset
+                0xF6C00000,         // Length
+                ,, , AddressRangeMemory, TypeStatic)
+            QWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, Cacheable, ReadWrite,
+                0x0000000000000000, // Granularity
+                0x0000000200000000, // Range Minimum
+                0x000000027FFFFFFF, // Range Maximum
+                0x0000000000000000, // Translation Offset
+                0x0000000080000000, // Length
+                ,, , AddressRangeMemory, TypeStatic)
+        })
+        Device (GPE0)
+        {
+            Name (_HID, "PNP0A06" /* Generic Container Device */)  // _HID: Hardware ID
+            Name (_UID, "GPE0 resources")  // _UID: Unique ID
+            Name (_STA, 0x0B)  // _STA: Status
+            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+            {
+                IO (Decode16,
+                    0xAFE0,             // Range Minimum
+                    0xAFE0,             // Range Maximum
+                    0x01,               // Alignment
+                    0x04,               // Length
+                    )
+            })
+        }
+
+        Device (PHPR)
+        {
+            Name (_HID, "PNP0A06" /* Generic Container Device */)  // _HID: Hardware ID
+            Name (_UID, "PCI Hotplug resources")  // _UID: Unique ID
+            Name (_STA, 0x0B)  // _STA: Status
+            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+            {
+                IO (Decode16,
+                    0xAE00,             // Range Minimum
+                    0xAE00,             // Range Maximum
+                    0x01,               // Alignment
+                    0x14,               // Length
+                    )
+            })
+        }
+    }
+
+    Scope (\)
+    {
+        Name (_S3, Package (0x04)  // _S3_: S3 System State
+        {
+            One, 
+            One, 
+            Zero, 
+            Zero
+        })
+        Name (_S4, Package (0x04)  // _S4_: S4 System State
+        {
+            0x02, 
+            0x02, 
+            Zero, 
+            Zero
+        })
+        Name (_S5, Package (0x04)  // _S5_: S5 System State
+        {
+            Zero, 
+            Zero, 
+            Zero, 
+            Zero
+        })
+    }
+
+    Scope (\_SB.PCI0)
+    {
+        Device (FWCF)
+        {
+            Name (_HID, "QEMU0002")  // _HID: Hardware ID
+            Name (_STA, 0x0B)  // _STA: Status
+            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+            {
+                IO (Decode16,
+                    0x0510,             // Range Minimum
+                    0x0510,             // Range Maximum
+                    0x01,               // Alignment
+                    0x0C,               // Length
+                    )
+            })
+        }
+    }
+
+    Scope (\_SB)
+    {
+        Scope (PCI0)
+        {
+            Name (BSEL, Zero)
+            Device (S00)
+            {
+                Name (_ADR, Zero)  // _ADR: Address
+            }
+
+            Device (S10)
+            {
+                Name (_ADR, 0x00020000)  // _ADR: Address
+                Method (_S1D, 0, NotSerialized)  // _S1D: S1 Device State
+                {
+                    Return (Zero)
+                }
+
+                Method (_S2D, 0, NotSerialized)  // _S2D: S2 Device State
+                {
+                    Return (Zero)
+                }
+
+                Method (_S3D, 0, NotSerialized)  // _S3D: S3 Device State
+                {
+                    Return (Zero)
+                }
+            }
+
+            Device (S18)
+            {
+                Name (_SUN, 0x03)  // _SUN: Slot User Number
+                Name (_ADR, 0x00030000)  // _ADR: Address
+                Method (_EJ0, 1, NotSerialized)  // _EJx: Eject Device, x=0-9
+                {
+                    PCEJ (BSEL, _SUN)
+                }
+            }
+
+            Device (S20)
+            {
+                Name (_SUN, 0x04)  // _SUN: Slot User Number
+                Name (_ADR, 0x00040000)  // _ADR: Address
+                Method (_EJ0, 1, NotSerialized)  // _EJx: Eject Device, x=0-9
+                {
+                    PCEJ (BSEL, _SUN)
+                }
+            }
+
+            Device (S28)
+            {
+                Name (_SUN, 0x05)  // _SUN: Slot User Number
+                Name (_ADR, 0x00050000)  // _ADR: Address
+                Method (_EJ0, 1, NotSerialized)  // _EJx: Eject Device, x=0-9
+                {
+                    PCEJ (BSEL, _SUN)
+                }
+            }
+
+            Device (S30)
+            {
+                Name (_SUN, 0x06)  // _SUN: Slot User Number
+                Name (_ADR, 0x00060000)  // _ADR: Address
+                Method (_EJ0, 1, NotSerialized)  // _EJx: Eject Device, x=0-9
+                {
+                    PCEJ (BSEL, _SUN)
+                }
+            }
+
+            Device (S38)
+            {
+                Name (_SUN, 0x07)  // _SUN: Slot User Number
+                Name (_ADR, 0x00070000)  // _ADR: Address
+                Method (_EJ0, 1, NotSerialized)  // _EJx: Eject Device, x=0-9
+                {
+                    PCEJ (BSEL, _SUN)
+                }
+            }
+
+            Device (S40)
+            {
+                Name (_SUN, 0x08)  // _SUN: Slot User Number
+                Name (_ADR, 0x00080000)  // _ADR: Address
+                Method (_EJ0, 1, NotSerialized)  // _EJx: Eject Device, x=0-9
+                {
+                    PCEJ (BSEL, _SUN)
+                }
+            }
+
+            Device (S48)
+            {
+                Name (_SUN, 0x09)  // _SUN: Slot User Number
+                Name (_ADR, 0x00090000)  // _ADR: Address
+                Method (_EJ0, 1, NotSerialized)  // _EJx: Eject Device, x=0-9
+                {
+                    PCEJ (BSEL, _SUN)
+                }
+            }
+
+            Device (S50)
+            {
+                Name (_SUN, 0x0A)  // _SUN: Slot User Number
+                Name (_ADR, 0x000A0000)  // _ADR: Address
+                Method (_EJ0, 1, NotSerialized)  // _EJx: Eject Device, x=0-9
+                {
+                    PCEJ (BSEL, _SUN)
+                }
+            }
+
+            Device (S58)
+            {
+                Name (_SUN, 0x0B)  // _SUN: Slot User Number
+                Name (_ADR, 0x000B0000)  // _ADR: Address
+                Method (_EJ0, 1, NotSerialized)  // _EJx: Eject Device, x=0-9
+                {
+                    PCEJ (BSEL, _SUN)
+                }
+            }
+
+            Device (S60)
+            {
+                Name (_SUN, 0x0C)  // _SUN: Slot User Number
+                Name (_ADR, 0x000C0000)  // _ADR: Address
+                Method (_EJ0, 1, NotSerialized)  // _EJx: Eject Device, x=0-9
+                {
+                    PCEJ (BSEL, _SUN)
+                }
+            }
+
+            Device (S68)
+            {
+                Name (_SUN, 0x0D)  // _SUN: Slot User Number
+                Name (_ADR, 0x000D0000)  // _ADR: Address
+                Method (_EJ0, 1, NotSerialized)  // _EJx: Eject Device, x=0-9
+                {
+                    PCEJ (BSEL, _SUN)
+                }
+            }
+
+            Device (S70)
+            {
+                Name (_SUN, 0x0E)  // _SUN: Slot User Number
+                Name (_ADR, 0x000E0000)  // _ADR: Address
+                Method (_EJ0, 1, NotSerialized)  // _EJx: Eject Device, x=0-9
+                {
+                    PCEJ (BSEL, _SUN)
+                }
+            }
+
+            Device (S78)
+            {
+                Name (_SUN, 0x0F)  // _SUN: Slot User Number
+                Name (_ADR, 0x000F0000)  // _ADR: Address
+                Method (_EJ0, 1, NotSerialized)  // _EJx: Eject Device, x=0-9
+                {
+                    PCEJ (BSEL, _SUN)
+                }
+            }
+
+            Device (S80)
+            {
+                Name (_SUN, 0x10)  // _SUN: Slot User Number
+                Name (_ADR, 0x00100000)  // _ADR: Address
+                Method (_EJ0, 1, NotSerialized)  // _EJx: Eject Device, x=0-9
+                {
+                    PCEJ (BSEL, _SUN)
+                }
+            }
+
+            Device (S88)
+            {
+                Name (_SUN, 0x11)  // _SUN: Slot User Number
+                Name (_ADR, 0x00110000)  // _ADR: Address
+                Method (_EJ0, 1, NotSerialized)  // _EJx: Eject Device, x=0-9
+                {
+                    PCEJ (BSEL, _SUN)
+                }
+            }
+
+            Device (S90)
+            {
+                Name (_SUN, 0x12)  // _SUN: Slot User Number
+                Name (_ADR, 0x00120000)  // _ADR: Address
+                Method (_EJ0, 1, NotSerialized)  // _EJx: Eject Device, x=0-9
+                {
+                    PCEJ (BSEL, _SUN)
+                }
+            }
+
+            Device (S98)
+            {
+                Name (_SUN, 0x13)  // _SUN: Slot User Number
+                Name (_ADR, 0x00130000)  // _ADR: Address
+                Method (_EJ0, 1, NotSerialized)  // _EJx: Eject Device, x=0-9
+                {
+                    PCEJ (BSEL, _SUN)
+                }
+            }
+
+            Device (SA0)
+            {
+                Name (_SUN, 0x14)  // _SUN: Slot User Number
+                Name (_ADR, 0x00140000)  // _ADR: Address
+                Method (_EJ0, 1, NotSerialized)  // _EJx: Eject Device, x=0-9
+                {
+                    PCEJ (BSEL, _SUN)
+                }
+            }
+
+            Device (SA8)
+            {
+                Name (_SUN, 0x15)  // _SUN: Slot User Number
+                Name (_ADR, 0x00150000)  // _ADR: Address
+                Method (_EJ0, 1, NotSerialized)  // _EJx: Eject Device, x=0-9
+                {
+                    PCEJ (BSEL, _SUN)
+                }
+            }
+
+            Device (SB0)
+            {
+                Name (_SUN, 0x16)  // _SUN: Slot User Number
+                Name (_ADR, 0x00160000)  // _ADR: Address
+                Method (_EJ0, 1, NotSerialized)  // _EJx: Eject Device, x=0-9
+                {
+                    PCEJ (BSEL, _SUN)
+                }
+            }
+
+            Device (SB8)
+            {
+                Name (_SUN, 0x17)  // _SUN: Slot User Number
+                Name (_ADR, 0x00170000)  // _ADR: Address
+                Method (_EJ0, 1, NotSerialized)  // _EJx: Eject Device, x=0-9
+                {
+                    PCEJ (BSEL, _SUN)
+                }
+            }
+
+            Device (SC0)
+            {
+                Name (_SUN, 0x18)  // _SUN: Slot User Number
+                Name (_ADR, 0x00180000)  // _ADR: Address
+                Method (_EJ0, 1, NotSerialized)  // _EJx: Eject Device, x=0-9
+                {
+                    PCEJ (BSEL, _SUN)
+                }
+            }
+
+            Device (SC8)
+            {
+                Name (_SUN, 0x19)  // _SUN: Slot User Number
+                Name (_ADR, 0x00190000)  // _ADR: Address
+                Method (_EJ0, 1, NotSerialized)  // _EJx: Eject Device, x=0-9
+                {
+                    PCEJ (BSEL, _SUN)
+                }
+            }
+
+            Device (SD0)
+            {
+                Name (_SUN, 0x1A)  // _SUN: Slot User Number
+                Name (_ADR, 0x001A0000)  // _ADR: Address
+                Method (_EJ0, 1, NotSerialized)  // _EJx: Eject Device, x=0-9
+                {
+                    PCEJ (BSEL, _SUN)
+                }
+            }
+
+            Device (SD8)
+            {
+                Name (_SUN, 0x1B)  // _SUN: Slot User Number
+                Name (_ADR, 0x001B0000)  // _ADR: Address
+                Method (_EJ0, 1, NotSerialized)  // _EJx: Eject Device, x=0-9
+                {
+                    PCEJ (BSEL, _SUN)
+                }
+            }
+
+            Device (SE0)
+            {
+                Name (_SUN, 0x1C)  // _SUN: Slot User Number
+                Name (_ADR, 0x001C0000)  // _ADR: Address
+                Method (_EJ0, 1, NotSerialized)  // _EJx: Eject Device, x=0-9
+                {
+                    PCEJ (BSEL, _SUN)
+                }
+            }
+
+            Device (SE8)
+            {
+                Name (_SUN, 0x1D)  // _SUN: Slot User Number
+                Name (_ADR, 0x001D0000)  // _ADR: Address
+                Method (_EJ0, 1, NotSerialized)  // _EJx: Eject Device, x=0-9
+                {
+                    PCEJ (BSEL, _SUN)
+                }
+            }
+
+            Device (SF0)
+            {
+                Name (_SUN, 0x1E)  // _SUN: Slot User Number
+                Name (_ADR, 0x001E0000)  // _ADR: Address
+                Method (_EJ0, 1, NotSerialized)  // _EJx: Eject Device, x=0-9
+                {
+                    PCEJ (BSEL, _SUN)
+                }
+            }
+
+            Device (SF8)
+            {
+                Name (_SUN, 0x1F)  // _SUN: Slot User Number
+                Name (_ADR, 0x001F0000)  // _ADR: Address
+                Method (_EJ0, 1, NotSerialized)  // _EJx: Eject Device, x=0-9
+                {
+                    PCEJ (BSEL, _SUN)
+                }
+            }
+
+            Method (DVNT, 2, NotSerialized)
+            {
+                If ((Arg0 & 0x08))
+                {
+                    Notify (S18, Arg1)
+                }
+
+                If ((Arg0 & 0x10))
+                {
+                    Notify (S20, Arg1)
+                }
+
+                If ((Arg0 & 0x20))
+                {
+                    Notify (S28, Arg1)
+                }
+
+                If ((Arg0 & 0x40))
+                {
+                    Notify (S30, Arg1)
+                }
+
+                If ((Arg0 & 0x80))
+                {
+                    Notify (S38, Arg1)
+                }
+
+                If ((Arg0 & 0x0100))
+                {
+                    Notify (S40, Arg1)
+                }
+
+                If ((Arg0 & 0x0200))
+                {
+                    Notify (S48, Arg1)
+                }
+
+                If ((Arg0 & 0x0400))
+                {
+                    Notify (S50, Arg1)
+                }
+
+                If ((Arg0 & 0x0800))
+                {
+                    Notify (S58, Arg1)
+                }
+
+                If ((Arg0 & 0x1000))
+                {
+                    Notify (S60, Arg1)
+                }
+
+                If ((Arg0 & 0x2000))
+                {
+                    Notify (S68, Arg1)
+                }
+
+                If ((Arg0 & 0x4000))
+                {
+                    Notify (S70, Arg1)
+                }
+
+                If ((Arg0 & 0x8000))
+                {
+                    Notify (S78, Arg1)
+                }
+
+                If ((Arg0 & 0x00010000))
+                {
+                    Notify (S80, Arg1)
+                }
+
+                If ((Arg0 & 0x00020000))
+                {
+                    Notify (S88, Arg1)
+                }
+
+                If ((Arg0 & 0x00040000))
+                {
+                    Notify (S90, Arg1)
+                }
+
+                If ((Arg0 & 0x00080000))
+                {
+                    Notify (S98, Arg1)
+                }
+
+                If ((Arg0 & 0x00100000))
+                {
+                    Notify (SA0, Arg1)
+                }
+
+                If ((Arg0 & 0x00200000))
+                {
+                    Notify (SA8, Arg1)
+                }
+
+                If ((Arg0 & 0x00400000))
+                {
+                    Notify (SB0, Arg1)
+                }
+
+                If ((Arg0 & 0x00800000))
+                {
+                    Notify (SB8, Arg1)
+                }
+
+                If ((Arg0 & 0x01000000))
+                {
+                    Notify (SC0, Arg1)
+                }
+
+                If ((Arg0 & 0x02000000))
+                {
+                    Notify (SC8, Arg1)
+                }
+
+                If ((Arg0 & 0x04000000))
+                {
+                    Notify (SD0, Arg1)
+                }
+
+                If ((Arg0 & 0x08000000))
+                {
+                    Notify (SD8, Arg1)
+                }
+
+                If ((Arg0 & 0x10000000))
+                {
+                    Notify (SE0, Arg1)
+                }
+
+                If ((Arg0 & 0x20000000))
+                {
+                    Notify (SE8, Arg1)
+                }
+
+                If ((Arg0 & 0x40000000))
+                {
+                    Notify (SF0, Arg1)
+                }
+
+                If ((Arg0 & 0x80000000))
+                {
+                    Notify (SF8, Arg1)
+                }
+            }
+
+            Method (PCNT, 0, NotSerialized)
+            {
+                BNUM = Zero
+                DVNT (PCIU, One)
+                DVNT (PCID, 0x03)
+            }
+        }
+    }
+}
+
diff --git a/tests/data/acpi/pc/DSDT.numamem.dsl b/tests/data/acpi/pc/DSDT.numamem.dsl
new file mode 100644
index 0000000000..3d08447f1e
--- /dev/null
+++ b/tests/data/acpi/pc/DSDT.numamem.dsl
@@ -0,0 +1,1321 @@ 
+/*
+ * Intel ACPI Component Architecture
+ * AML/ASL+ Disassembler version 20190509 (64-bit version)
+ * Copyright (c) 2000 - 2019 Intel Corporation
+ * 
+ * Disassembling to symbolic ASL+ operators
+ *
+ * Disassembly of tests/data/acpi/pc/DSDT.numamem, Tue Aug  4 11:14:15 2020
+ *
+ * Original Table Header:
+ *     Signature        "DSDT"
+ *     Length           0x0000134C (4940)
+ *     Revision         0x01 **** 32-bit table (V1), no 64-bit math support
+ *     Checksum         0x6A
+ *     OEM ID           "BOCHS "
+ *     OEM Table ID     "BXPCDSDT"
+ *     OEM Revision     0x00000001 (1)
+ *     Compiler ID      "BXPC"
+ *     Compiler Version 0x00000001 (1)
+ */
+DefinitionBlock ("", "DSDT", 1, "BOCHS ", "BXPCDSDT", 0x00000001)
+{
+    Scope (\)
+    {
+        OperationRegion (DBG, SystemIO, 0x0402, One)
+        Field (DBG, ByteAcc, NoLock, Preserve)
+        {
+            DBGB,   8
+        }
+
+        Method (DBUG, 1, NotSerialized)
+        {
+            ToHexString (Arg0, Local0)
+            ToBuffer (Local0, Local0)
+            Local1 = (SizeOf (Local0) - One)
+            Local2 = Zero
+            While ((Local2 < Local1))
+            {
+                DBGB = DerefOf (Local0 [Local2])
+                Local2++
+            }
+
+            DBGB = 0x0A
+        }
+    }
+
+    Scope (_SB)
+    {
+        Device (PCI0)
+        {
+            Name (_HID, EisaId ("PNP0A03") /* PCI Bus */)  // _HID: Hardware ID
+            Name (_ADR, Zero)  // _ADR: Address
+            Name (_UID, Zero)  // _UID: Unique ID
+        }
+    }
+
+    Scope (_SB)
+    {
+        Device (HPET)
+        {
+            Name (_HID, EisaId ("PNP0103") /* HPET System Timer */)  // _HID: Hardware ID
+            Name (_UID, Zero)  // _UID: Unique ID
+            OperationRegion (HPTM, SystemMemory, 0xFED00000, 0x0400)
+            Field (HPTM, DWordAcc, Lock, Preserve)
+            {
+                VEND,   32, 
+                PRD,    32
+            }
+
+            Method (_STA, 0, NotSerialized)  // _STA: Status
+            {
+                Local0 = VEND /* \_SB_.HPET.VEND */
+                Local1 = PRD /* \_SB_.HPET.PRD_ */
+                Local0 >>= 0x10
+                If (((Local0 == Zero) || (Local0 == 0xFFFF)))
+                {
+                    Return (Zero)
+                }
+
+                If (((Local1 == Zero) || (Local1 > 0x05F5E100)))
+                {
+                    Return (Zero)
+                }
+
+                Return (0x0F)
+            }
+
+            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+            {
+                Memory32Fixed (ReadOnly,
+                    0xFED00000,         // Address Base
+                    0x00000400,         // Address Length
+                    )
+            })
+        }
+    }
+
+    Scope (_SB.PCI0)
+    {
+        Device (ISA)
+        {
+            Name (_ADR, 0x00010000)  // _ADR: Address
+            OperationRegion (P40C, PCI_Config, 0x60, 0x04)
+        }
+    }
+
+    Scope (_SB.PCI0.ISA)
+    {
+        Device (KBD)
+        {
+            Name (_HID, EisaId ("PNP0303") /* IBM Enhanced Keyboard (101/102-key, PS/2 Mouse) */)  // _HID: Hardware ID
+            Name (_STA, 0x0F)  // _STA: Status
+            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+            {
+                IO (Decode16,
+                    0x0060,             // Range Minimum
+                    0x0060,             // Range Maximum
+                    0x01,               // Alignment
+                    0x01,               // Length
+                    )
+                IO (Decode16,
+                    0x0064,             // Range Minimum
+                    0x0064,             // Range Maximum
+                    0x01,               // Alignment
+                    0x01,               // Length
+                    )
+                IRQNoFlags ()
+                    {1}
+            })
+        }
+
+        Device (MOU)
+        {
+            Name (_HID, EisaId ("PNP0F13") /* PS/2 Mouse */)  // _HID: Hardware ID
+            Name (_STA, 0x0F)  // _STA: Status
+            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+            {
+                IRQNoFlags ()
+                    {12}
+            })
+        }
+
+        Device (FDC0)
+        {
+            Name (_HID, EisaId ("PNP0700"))  // _HID: Hardware ID
+            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+            {
+                IO (Decode16,
+                    0x03F2,             // Range Minimum
+                    0x03F2,             // Range Maximum
+                    0x00,               // Alignment
+                    0x04,               // Length
+                    )
+                IO (Decode16,
+                    0x03F7,             // Range Minimum
+                    0x03F7,             // Range Maximum
+                    0x00,               // Alignment
+                    0x01,               // Length
+                    )
+                IRQNoFlags ()
+                    {6}
+                DMA (Compatibility, NotBusMaster, Transfer8, )
+                    {2}
+            })
+            Device (FLPA)
+            {
+                Name (_ADR, Zero)  // _ADR: Address
+                Name (_FDI, Package (0x10)  // _FDI: Floppy Drive Information
+                {
+                    Zero, 
+                    0x05, 
+                    0x4F, 
+                    0x30, 
+                    One, 
+                    0xAF, 
+                    0x02, 
+                    0x25, 
+                    0x02, 
+                    0x12, 
+                    0x1B, 
+                    0xFF, 
+                    0x6C, 
+                    0xF6, 
+                    0x0F, 
+                    0x08
+                })
+            }
+
+            Name (_FDE, Buffer (0x14)  // _FDE: Floppy Disk Enumerate
+            {
+                /* 0000 */  0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,  // ........
+                /* 0008 */  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,  // ........
+                /* 0010 */  0x02, 0x00, 0x00, 0x00                           // ....
+            })
+        }
+
+        Device (LPT1)
+        {
+            Name (_HID, EisaId ("PNP0400") /* Standard LPT Parallel Port */)  // _HID: Hardware ID
+            Name (_UID, One)  // _UID: Unique ID
+            Name (_STA, 0x0F)  // _STA: Status
+            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+            {
+                IO (Decode16,
+                    0x0378,             // Range Minimum
+                    0x0378,             // Range Maximum
+                    0x08,               // Alignment
+                    0x08,               // Length
+                    )
+                IRQNoFlags ()
+                    {7}
+            })
+        }
+
+        Device (COM1)
+        {
+            Name (_HID, EisaId ("PNP0501") /* 16550A-compatible COM Serial Port */)  // _HID: Hardware ID
+            Name (_UID, One)  // _UID: Unique ID
+            Name (_STA, 0x0F)  // _STA: Status
+            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+            {
+                IO (Decode16,
+                    0x03F8,             // Range Minimum
+                    0x03F8,             // Range Maximum
+                    0x00,               // Alignment
+                    0x08,               // Length
+                    )
+                IRQNoFlags ()
+                    {4}
+            })
+        }
+
+        Device (RTC)
+        {
+            Name (_HID, EisaId ("PNP0B00") /* AT Real-Time Clock */)  // _HID: Hardware ID
+            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+            {
+                IO (Decode16,
+                    0x0070,             // Range Minimum
+                    0x0070,             // Range Maximum
+                    0x01,               // Alignment
+                    0x08,               // Length
+                    )
+                IRQNoFlags ()
+                    {8}
+            })
+        }
+    }
+
+    Scope (_SB.PCI0)
+    {
+        OperationRegion (PCST, SystemIO, 0xAE00, 0x08)
+        Field (PCST, DWordAcc, NoLock, WriteAsZeros)
+        {
+            PCIU,   32, 
+            PCID,   32
+        }
+
+        OperationRegion (SEJ, SystemIO, 0xAE08, 0x04)
+        Field (SEJ, DWordAcc, NoLock, WriteAsZeros)
+        {
+            B0EJ,   32
+        }
+
+        OperationRegion (BNMR, SystemIO, 0xAE10, 0x04)
+        Field (BNMR, DWordAcc, NoLock, WriteAsZeros)
+        {
+            BNUM,   32
+        }
+
+        Mutex (BLCK, 0x00)
+        Method (PCEJ, 2, NotSerialized)
+        {
+            Acquire (BLCK, 0xFFFF)
+            BNUM = Arg0
+            B0EJ = (One << Arg1)
+            Release (BLCK)
+            Return (Zero)
+        }
+    }
+
+    Scope (_SB)
+    {
+        Scope (PCI0)
+        {
+            Method (_PRT, 0, NotSerialized)  // _PRT: PCI Routing Table
+            {
+                Local0 = Package (0x80){}
+                Local1 = Zero
+                While ((Local1 < 0x80))
+                {
+                    Local2 = (Local1 >> 0x02)
+                    Local3 = ((Local1 + Local2) & 0x03)
+                    If ((Local3 == Zero))
+                    {
+                        Local4 = Package (0x04)
+                            {
+                                Zero, 
+                                Zero, 
+                                LNKD, 
+                                Zero
+                            }
+                    }
+
+                    If ((Local3 == One))
+                    {
+                        If ((Local1 == 0x04))
+                        {
+                            Local4 = Package (0x04)
+                                {
+                                    Zero, 
+                                    Zero, 
+                                    LNKS, 
+                                    Zero
+                                }
+                        }
+                        Else
+                        {
+                            Local4 = Package (0x04)
+                                {
+                                    Zero, 
+                                    Zero, 
+                                    LNKA, 
+                                    Zero
+                                }
+                        }
+                    }
+
+                    If ((Local3 == 0x02))
+                    {
+                        Local4 = Package (0x04)
+                            {
+                                Zero, 
+                                Zero, 
+                                LNKB, 
+                                Zero
+                            }
+                    }
+
+                    If ((Local3 == 0x03))
+                    {
+                        Local4 = Package (0x04)
+                            {
+                                Zero, 
+                                Zero, 
+                                LNKC, 
+                                Zero
+                            }
+                    }
+
+                    Local4 [Zero] = ((Local2 << 0x10) | 0xFFFF)
+                    Local4 [One] = (Local1 & 0x03)
+                    Local0 [Local1] = Local4
+                    Local1++
+                }
+
+                Return (Local0)
+            }
+        }
+
+        Field (PCI0.ISA.P40C, ByteAcc, NoLock, Preserve)
+        {
+            PRQ0,   8, 
+            PRQ1,   8, 
+            PRQ2,   8, 
+            PRQ3,   8
+        }
+
+        Method (IQST, 1, NotSerialized)
+        {
+            If ((0x80 & Arg0))
+            {
+                Return (0x09)
+            }
+
+            Return (0x0B)
+        }
+
+        Method (IQCR, 1, Serialized)
+        {
+            Name (PRR0, ResourceTemplate ()
+            {
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, _Y00)
+                {
+                    0x00000000,
+                }
+            })
+            CreateDWordField (PRR0, \_SB.IQCR._Y00._INT, PRRI)  // _INT: Interrupts
+            If ((Arg0 < 0x80))
+            {
+                PRRI = Arg0
+            }
+
+            Return (PRR0) /* \_SB_.IQCR.PRR0 */
+        }
+
+        Device (LNKA)
+        {
+            Name (_HID, EisaId ("PNP0C0F") /* PCI Interrupt Link Device */)  // _HID: Hardware ID
+            Name (_UID, Zero)  // _UID: Unique ID
+            Name (_PRS, ResourceTemplate ()  // _PRS: Possible Resource Settings
+            {
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, )
+                {
+                    0x00000005,
+                    0x0000000A,
+                    0x0000000B,
+                }
+            })
+            Method (_STA, 0, NotSerialized)  // _STA: Status
+            {
+                Return (IQST (PRQ0))
+            }
+
+            Method (_DIS, 0, NotSerialized)  // _DIS: Disable Device
+            {
+                PRQ0 |= 0x80
+            }
+
+            Method (_CRS, 0, NotSerialized)  // _CRS: Current Resource Settings
+            {
+                Return (IQCR (PRQ0))
+            }
+
+            Method (_SRS, 1, NotSerialized)  // _SRS: Set Resource Settings
+            {
+                CreateDWordField (Arg0, 0x05, PRRI)
+                PRQ0 = PRRI /* \_SB_.LNKA._SRS.PRRI */
+            }
+        }
+
+        Device (LNKB)
+        {
+            Name (_HID, EisaId ("PNP0C0F") /* PCI Interrupt Link Device */)  // _HID: Hardware ID
+            Name (_UID, One)  // _UID: Unique ID
+            Name (_PRS, ResourceTemplate ()  // _PRS: Possible Resource Settings
+            {
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, )
+                {
+                    0x00000005,
+                    0x0000000A,
+                    0x0000000B,
+                }
+            })
+            Method (_STA, 0, NotSerialized)  // _STA: Status
+            {
+                Return (IQST (PRQ1))
+            }
+
+            Method (_DIS, 0, NotSerialized)  // _DIS: Disable Device
+            {
+                PRQ1 |= 0x80
+            }
+
+            Method (_CRS, 0, NotSerialized)  // _CRS: Current Resource Settings
+            {
+                Return (IQCR (PRQ1))
+            }
+
+            Method (_SRS, 1, NotSerialized)  // _SRS: Set Resource Settings
+            {
+                CreateDWordField (Arg0, 0x05, PRRI)
+                PRQ1 = PRRI /* \_SB_.LNKB._SRS.PRRI */
+            }
+        }
+
+        Device (LNKC)
+        {
+            Name (_HID, EisaId ("PNP0C0F") /* PCI Interrupt Link Device */)  // _HID: Hardware ID
+            Name (_UID, 0x02)  // _UID: Unique ID
+            Name (_PRS, ResourceTemplate ()  // _PRS: Possible Resource Settings
+            {
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, )
+                {
+                    0x00000005,
+                    0x0000000A,
+                    0x0000000B,
+                }
+            })
+            Method (_STA, 0, NotSerialized)  // _STA: Status
+            {
+                Return (IQST (PRQ2))
+            }
+
+            Method (_DIS, 0, NotSerialized)  // _DIS: Disable Device
+            {
+                PRQ2 |= 0x80
+            }
+
+            Method (_CRS, 0, NotSerialized)  // _CRS: Current Resource Settings
+            {
+                Return (IQCR (PRQ2))
+            }
+
+            Method (_SRS, 1, NotSerialized)  // _SRS: Set Resource Settings
+            {
+                CreateDWordField (Arg0, 0x05, PRRI)
+                PRQ2 = PRRI /* \_SB_.LNKC._SRS.PRRI */
+            }
+        }
+
+        Device (LNKD)
+        {
+            Name (_HID, EisaId ("PNP0C0F") /* PCI Interrupt Link Device */)  // _HID: Hardware ID
+            Name (_UID, 0x03)  // _UID: Unique ID
+            Name (_PRS, ResourceTemplate ()  // _PRS: Possible Resource Settings
+            {
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, )
+                {
+                    0x00000005,
+                    0x0000000A,
+                    0x0000000B,
+                }
+            })
+            Method (_STA, 0, NotSerialized)  // _STA: Status
+            {
+                Return (IQST (PRQ3))
+            }
+
+            Method (_DIS, 0, NotSerialized)  // _DIS: Disable Device
+            {
+                PRQ3 |= 0x80
+            }
+
+            Method (_CRS, 0, NotSerialized)  // _CRS: Current Resource Settings
+            {
+                Return (IQCR (PRQ3))
+            }
+
+            Method (_SRS, 1, NotSerialized)  // _SRS: Set Resource Settings
+            {
+                CreateDWordField (Arg0, 0x05, PRRI)
+                PRQ3 = PRRI /* \_SB_.LNKD._SRS.PRRI */
+            }
+        }
+
+        Device (LNKS)
+        {
+            Name (_HID, EisaId ("PNP0C0F") /* PCI Interrupt Link Device */)  // _HID: Hardware ID
+            Name (_UID, 0x04)  // _UID: Unique ID
+            Name (_PRS, ResourceTemplate ()  // _PRS: Possible Resource Settings
+            {
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, )
+                {
+                    0x00000009,
+                }
+            })
+            Method (_STA, 0, NotSerialized)  // _STA: Status
+            {
+                Return (0x0B)
+            }
+
+            Method (_DIS, 0, NotSerialized)  // _DIS: Disable Device
+            {
+            }
+
+            Method (_CRS, 0, NotSerialized)  // _CRS: Current Resource Settings
+            {
+                Return (_PRS) /* \_SB_.LNKS._PRS */
+            }
+
+            Method (_SRS, 1, NotSerialized)  // _SRS: Set Resource Settings
+            {
+            }
+        }
+    }
+
+    Scope (_SB)
+    {
+        Device (\_SB.PCI0.PRES)
+        {
+            Name (_HID, EisaId ("PNP0A06") /* Generic Container Device */)  // _HID: Hardware ID
+            Name (_UID, "CPU Hotplug resources")  // _UID: Unique ID
+            Mutex (CPLK, 0x00)
+            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+            {
+                IO (Decode16,
+                    0xAF00,             // Range Minimum
+                    0xAF00,             // Range Maximum
+                    0x01,               // Alignment
+                    0x0C,               // Length
+                    )
+            })
+            OperationRegion (PRST, SystemIO, 0xAF00, 0x0C)
+            Field (PRST, ByteAcc, NoLock, WriteAsZeros)
+            {
+                Offset (0x04), 
+                CPEN,   1, 
+                CINS,   1, 
+                CRMV,   1, 
+                CEJ0,   1, 
+                Offset (0x05), 
+                CCMD,   8
+            }
+
+            Field (PRST, DWordAcc, NoLock, Preserve)
+            {
+                CSEL,   32, 
+                Offset (0x08), 
+                CDAT,   32
+            }
+
+            Method (_INI, 0, Serialized)  // _INI: Initialize
+            {
+                CSEL = Zero
+            }
+        }
+
+        Device (\_SB.CPUS)
+        {
+            Name (_HID, "ACPI0010" /* Processor Container Device */)  // _HID: Hardware ID
+            Name (_CID, EisaId ("PNP0A05") /* Generic Container Device */)  // _CID: Compatible ID
+            Method (CTFY, 2, NotSerialized)
+            {
+                If ((Arg0 == Zero))
+                {
+                    Notify (C000, Arg1)
+                }
+            }
+
+            Method (CSTA, 1, Serialized)
+            {
+                Acquire (\_SB.PCI0.PRES.CPLK, 0xFFFF)
+                \_SB.PCI0.PRES.CSEL = Arg0
+                Local0 = Zero
+                If ((\_SB.PCI0.PRES.CPEN == One))
+                {
+                    Local0 = 0x0F
+                }
+
+                Release (\_SB.PCI0.PRES.CPLK)
+                Return (Local0)
+            }
+
+            Method (CEJ0, 1, Serialized)
+            {
+                Acquire (\_SB.PCI0.PRES.CPLK, 0xFFFF)
+                \_SB.PCI0.PRES.CSEL = Arg0
+                \_SB.PCI0.PRES.CEJ0 = One
+                Release (\_SB.PCI0.PRES.CPLK)
+            }
+
+            Method (CSCN, 0, Serialized)
+            {
+                Acquire (\_SB.PCI0.PRES.CPLK, 0xFFFF)
+                Local0 = One
+                While ((Local0 == One))
+                {
+                    Local0 = Zero
+                    \_SB.PCI0.PRES.CCMD = Zero
+                    If ((\_SB.PCI0.PRES.CINS == One))
+                    {
+                        CTFY (\_SB.PCI0.PRES.CDAT, One)
+                        \_SB.PCI0.PRES.CINS = One
+                        Local0 = One
+                    }
+                    ElseIf ((\_SB.PCI0.PRES.CRMV == One))
+                    {
+                        CTFY (\_SB.PCI0.PRES.CDAT, 0x03)
+                        \_SB.PCI0.PRES.CRMV = One
+                        Local0 = One
+                    }
+                }
+
+                Release (\_SB.PCI0.PRES.CPLK)
+            }
+
+            Method (COST, 4, Serialized)
+            {
+                Acquire (\_SB.PCI0.PRES.CPLK, 0xFFFF)
+                \_SB.PCI0.PRES.CSEL = Arg0
+                \_SB.PCI0.PRES.CCMD = One
+                \_SB.PCI0.PRES.CDAT = Arg1
+                \_SB.PCI0.PRES.CCMD = 0x02
+                \_SB.PCI0.PRES.CDAT = Arg2
+                Release (\_SB.PCI0.PRES.CPLK)
+            }
+
+            Processor (C000, 0x00, 0x00000000, 0x00)
+            {
+                Method (_STA, 0, Serialized)  // _STA: Status
+                {
+                    Return (CSTA (Zero))
+                }
+
+                Name (_MAT, Buffer (0x08)  // _MAT: Multiple APIC Table Entry
+                {
+                     0x00, 0x08, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00   // ........
+                })
+                Method (_OST, 3, Serialized)  // _OST: OSPM Status Indication
+                {
+                    COST (Zero, Arg0, Arg1, Arg2)
+                }
+
+                Name (_PXM, Zero)  // _PXM: Device Proximity
+            }
+        }
+    }
+
+    Method (\_GPE._E02, 0, NotSerialized)  // _Exx: Edge-Triggered GPE, xx=0x00-0xFF
+    {
+        \_SB.CPUS.CSCN ()
+    }
+
+    Scope (_GPE)
+    {
+        Name (_HID, "ACPI0006" /* GPE Block Device */)  // _HID: Hardware ID
+        Method (_E01, 0, NotSerialized)  // _Exx: Edge-Triggered GPE, xx=0x00-0xFF
+        {
+            Acquire (\_SB.PCI0.BLCK, 0xFFFF)
+            \_SB.PCI0.PCNT ()
+            Release (\_SB.PCI0.BLCK)
+        }
+    }
+
+    Scope (\_SB.PCI0)
+    {
+        Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+        {
+            WordBusNumber (ResourceProducer, MinFixed, MaxFixed, PosDecode,
+                0x0000,             // Granularity
+                0x0000,             // Range Minimum
+                0x00FF,             // Range Maximum
+                0x0000,             // Translation Offset
+                0x0100,             // Length
+                ,, )
+            IO (Decode16,
+                0x0CF8,             // Range Minimum
+                0x0CF8,             // Range Maximum
+                0x01,               // Alignment
+                0x08,               // Length
+                )
+            WordIO (ResourceProducer, MinFixed, MaxFixed, PosDecode, EntireRange,
+                0x0000,             // Granularity
+                0x0000,             // Range Minimum
+                0x0CF7,             // Range Maximum
+                0x0000,             // Translation Offset
+                0x0CF8,             // Length
+                ,, , TypeStatic, DenseTranslation)
+            WordIO (ResourceProducer, MinFixed, MaxFixed, PosDecode, EntireRange,
+                0x0000,             // Granularity
+                0x0D00,             // Range Minimum
+                0xFFFF,             // Range Maximum
+                0x0000,             // Translation Offset
+                0xF300,             // Length
+                ,, , TypeStatic, DenseTranslation)
+            DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, Cacheable, ReadWrite,
+                0x00000000,         // Granularity
+                0x000A0000,         // Range Minimum
+                0x000BFFFF,         // Range Maximum
+                0x00000000,         // Translation Offset
+                0x00020000,         // Length
+                ,, , AddressRangeMemory, TypeStatic)
+            DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, NonCacheable, ReadWrite,
+                0x00000000,         // Granularity
+                0x08000000,         // Range Minimum
+                0xFEBFFFFF,         // Range Maximum
+                0x00000000,         // Translation Offset
+                0xF6C00000,         // Length
+                ,, , AddressRangeMemory, TypeStatic)
+            QWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, Cacheable, ReadWrite,
+                0x0000000000000000, // Granularity
+                0x0000000100000000, // Range Minimum
+                0x000000017FFFFFFF, // Range Maximum
+                0x0000000000000000, // Translation Offset
+                0x0000000080000000, // Length
+                ,, , AddressRangeMemory, TypeStatic)
+        })
+        Device (GPE0)
+        {
+            Name (_HID, "PNP0A06" /* Generic Container Device */)  // _HID: Hardware ID
+            Name (_UID, "GPE0 resources")  // _UID: Unique ID
+            Name (_STA, 0x0B)  // _STA: Status
+            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+            {
+                IO (Decode16,
+                    0xAFE0,             // Range Minimum
+                    0xAFE0,             // Range Maximum
+                    0x01,               // Alignment
+                    0x04,               // Length
+                    )
+            })
+        }
+
+        Device (PHPR)
+        {
+            Name (_HID, "PNP0A06" /* Generic Container Device */)  // _HID: Hardware ID
+            Name (_UID, "PCI Hotplug resources")  // _UID: Unique ID
+            Name (_STA, 0x0B)  // _STA: Status
+            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+            {
+                IO (Decode16,
+                    0xAE00,             // Range Minimum
+                    0xAE00,             // Range Maximum
+                    0x01,               // Alignment
+                    0x14,               // Length
+                    )
+            })
+        }
+    }
+
+    Scope (\)
+    {
+        Name (_S3, Package (0x04)  // _S3_: S3 System State
+        {
+            One, 
+            One, 
+            Zero, 
+            Zero
+        })
+        Name (_S4, Package (0x04)  // _S4_: S4 System State
+        {
+            0x02, 
+            0x02, 
+            Zero, 
+            Zero
+        })
+        Name (_S5, Package (0x04)  // _S5_: S5 System State
+        {
+            Zero, 
+            Zero, 
+            Zero, 
+            Zero
+        })
+    }
+
+    Scope (\_SB.PCI0)
+    {
+        Device (FWCF)
+        {
+            Name (_HID, "QEMU0002")  // _HID: Hardware ID
+            Name (_STA, 0x0B)  // _STA: Status
+            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+            {
+                IO (Decode16,
+                    0x0510,             // Range Minimum
+                    0x0510,             // Range Maximum
+                    0x01,               // Alignment
+                    0x0C,               // Length
+                    )
+            })
+        }
+    }
+
+    Scope (\_SB)
+    {
+        Scope (PCI0)
+        {
+            Name (BSEL, Zero)
+            Device (S00)
+            {
+                Name (_ADR, Zero)  // _ADR: Address
+            }
+
+            Device (S10)
+            {
+                Name (_ADR, 0x00020000)  // _ADR: Address
+                Method (_S1D, 0, NotSerialized)  // _S1D: S1 Device State
+                {
+                    Return (Zero)
+                }
+
+                Method (_S2D, 0, NotSerialized)  // _S2D: S2 Device State
+                {
+                    Return (Zero)
+                }
+
+                Method (_S3D, 0, NotSerialized)  // _S3D: S3 Device State
+                {
+                    Return (Zero)
+                }
+            }
+
+            Device (S18)
+            {
+                Name (_SUN, 0x03)  // _SUN: Slot User Number
+                Name (_ADR, 0x00030000)  // _ADR: Address
+                Method (_EJ0, 1, NotSerialized)  // _EJx: Eject Device, x=0-9
+                {
+                    PCEJ (BSEL, _SUN)
+                }
+            }
+
+            Device (S20)
+            {
+                Name (_SUN, 0x04)  // _SUN: Slot User Number
+                Name (_ADR, 0x00040000)  // _ADR: Address
+                Method (_EJ0, 1, NotSerialized)  // _EJx: Eject Device, x=0-9
+                {
+                    PCEJ (BSEL, _SUN)
+                }
+            }
+
+            Device (S28)
+            {
+                Name (_SUN, 0x05)  // _SUN: Slot User Number
+                Name (_ADR, 0x00050000)  // _ADR: Address
+                Method (_EJ0, 1, NotSerialized)  // _EJx: Eject Device, x=0-9
+                {
+                    PCEJ (BSEL, _SUN)
+                }
+            }
+
+            Device (S30)
+            {
+                Name (_SUN, 0x06)  // _SUN: Slot User Number
+                Name (_ADR, 0x00060000)  // _ADR: Address
+                Method (_EJ0, 1, NotSerialized)  // _EJx: Eject Device, x=0-9
+                {
+                    PCEJ (BSEL, _SUN)
+                }
+            }
+
+            Device (S38)
+            {
+                Name (_SUN, 0x07)  // _SUN: Slot User Number
+                Name (_ADR, 0x00070000)  // _ADR: Address
+                Method (_EJ0, 1, NotSerialized)  // _EJx: Eject Device, x=0-9
+                {
+                    PCEJ (BSEL, _SUN)
+                }
+            }
+
+            Device (S40)
+            {
+                Name (_SUN, 0x08)  // _SUN: Slot User Number
+                Name (_ADR, 0x00080000)  // _ADR: Address
+                Method (_EJ0, 1, NotSerialized)  // _EJx: Eject Device, x=0-9
+                {
+                    PCEJ (BSEL, _SUN)
+                }
+            }
+
+            Device (S48)
+            {
+                Name (_SUN, 0x09)  // _SUN: Slot User Number
+                Name (_ADR, 0x00090000)  // _ADR: Address
+                Method (_EJ0, 1, NotSerialized)  // _EJx: Eject Device, x=0-9
+                {
+                    PCEJ (BSEL, _SUN)
+                }
+            }
+
+            Device (S50)
+            {
+                Name (_SUN, 0x0A)  // _SUN: Slot User Number
+                Name (_ADR, 0x000A0000)  // _ADR: Address
+                Method (_EJ0, 1, NotSerialized)  // _EJx: Eject Device, x=0-9
+                {
+                    PCEJ (BSEL, _SUN)
+                }
+            }
+
+            Device (S58)
+            {
+                Name (_SUN, 0x0B)  // _SUN: Slot User Number
+                Name (_ADR, 0x000B0000)  // _ADR: Address
+                Method (_EJ0, 1, NotSerialized)  // _EJx: Eject Device, x=0-9
+                {
+                    PCEJ (BSEL, _SUN)
+                }
+            }
+
+            Device (S60)
+            {
+                Name (_SUN, 0x0C)  // _SUN: Slot User Number
+                Name (_ADR, 0x000C0000)  // _ADR: Address
+                Method (_EJ0, 1, NotSerialized)  // _EJx: Eject Device, x=0-9
+                {
+                    PCEJ (BSEL, _SUN)
+                }
+            }
+
+            Device (S68)
+            {
+                Name (_SUN, 0x0D)  // _SUN: Slot User Number
+                Name (_ADR, 0x000D0000)  // _ADR: Address
+                Method (_EJ0, 1, NotSerialized)  // _EJx: Eject Device, x=0-9
+                {
+                    PCEJ (BSEL, _SUN)
+                }
+            }
+
+            Device (S70)
+            {
+                Name (_SUN, 0x0E)  // _SUN: Slot User Number
+                Name (_ADR, 0x000E0000)  // _ADR: Address
+                Method (_EJ0, 1, NotSerialized)  // _EJx: Eject Device, x=0-9
+                {
+                    PCEJ (BSEL, _SUN)
+                }
+            }
+
+            Device (S78)
+            {
+                Name (_SUN, 0x0F)  // _SUN: Slot User Number
+                Name (_ADR, 0x000F0000)  // _ADR: Address
+                Method (_EJ0, 1, NotSerialized)  // _EJx: Eject Device, x=0-9
+                {
+                    PCEJ (BSEL, _SUN)
+                }
+            }
+
+            Device (S80)
+            {
+                Name (_SUN, 0x10)  // _SUN: Slot User Number
+                Name (_ADR, 0x00100000)  // _ADR: Address
+                Method (_EJ0, 1, NotSerialized)  // _EJx: Eject Device, x=0-9
+                {
+                    PCEJ (BSEL, _SUN)
+                }
+            }
+
+            Device (S88)
+            {
+                Name (_SUN, 0x11)  // _SUN: Slot User Number
+                Name (_ADR, 0x00110000)  // _ADR: Address
+                Method (_EJ0, 1, NotSerialized)  // _EJx: Eject Device, x=0-9
+                {
+                    PCEJ (BSEL, _SUN)
+                }
+            }
+
+            Device (S90)
+            {
+                Name (_SUN, 0x12)  // _SUN: Slot User Number
+                Name (_ADR, 0x00120000)  // _ADR: Address
+                Method (_EJ0, 1, NotSerialized)  // _EJx: Eject Device, x=0-9
+                {
+                    PCEJ (BSEL, _SUN)
+                }
+            }
+
+            Device (S98)
+            {
+                Name (_SUN, 0x13)  // _SUN: Slot User Number
+                Name (_ADR, 0x00130000)  // _ADR: Address
+                Method (_EJ0, 1, NotSerialized)  // _EJx: Eject Device, x=0-9
+                {
+                    PCEJ (BSEL, _SUN)
+                }
+            }
+
+            Device (SA0)
+            {
+                Name (_SUN, 0x14)  // _SUN: Slot User Number
+                Name (_ADR, 0x00140000)  // _ADR: Address
+                Method (_EJ0, 1, NotSerialized)  // _EJx: Eject Device, x=0-9
+                {
+                    PCEJ (BSEL, _SUN)
+                }
+            }
+
+            Device (SA8)
+            {
+                Name (_SUN, 0x15)  // _SUN: Slot User Number
+                Name (_ADR, 0x00150000)  // _ADR: Address
+                Method (_EJ0, 1, NotSerialized)  // _EJx: Eject Device, x=0-9
+                {
+                    PCEJ (BSEL, _SUN)
+                }
+            }
+
+            Device (SB0)
+            {
+                Name (_SUN, 0x16)  // _SUN: Slot User Number
+                Name (_ADR, 0x00160000)  // _ADR: Address
+                Method (_EJ0, 1, NotSerialized)  // _EJx: Eject Device, x=0-9
+                {
+                    PCEJ (BSEL, _SUN)
+                }
+            }
+
+            Device (SB8)
+            {
+                Name (_SUN, 0x17)  // _SUN: Slot User Number
+                Name (_ADR, 0x00170000)  // _ADR: Address
+                Method (_EJ0, 1, NotSerialized)  // _EJx: Eject Device, x=0-9
+                {
+                    PCEJ (BSEL, _SUN)
+                }
+            }
+
+            Device (SC0)
+            {
+                Name (_SUN, 0x18)  // _SUN: Slot User Number
+                Name (_ADR, 0x00180000)  // _ADR: Address
+                Method (_EJ0, 1, NotSerialized)  // _EJx: Eject Device, x=0-9
+                {
+                    PCEJ (BSEL, _SUN)
+                }
+            }
+
+            Device (SC8)
+            {
+                Name (_SUN, 0x19)  // _SUN: Slot User Number
+                Name (_ADR, 0x00190000)  // _ADR: Address
+                Method (_EJ0, 1, NotSerialized)  // _EJx: Eject Device, x=0-9
+                {
+                    PCEJ (BSEL, _SUN)
+                }
+            }
+
+            Device (SD0)
+            {
+                Name (_SUN, 0x1A)  // _SUN: Slot User Number
+                Name (_ADR, 0x001A0000)  // _ADR: Address
+                Method (_EJ0, 1, NotSerialized)  // _EJx: Eject Device, x=0-9
+                {
+                    PCEJ (BSEL, _SUN)
+                }
+            }
+
+            Device (SD8)
+            {
+                Name (_SUN, 0x1B)  // _SUN: Slot User Number
+                Name (_ADR, 0x001B0000)  // _ADR: Address
+                Method (_EJ0, 1, NotSerialized)  // _EJx: Eject Device, x=0-9
+                {
+                    PCEJ (BSEL, _SUN)
+                }
+            }
+
+            Device (SE0)
+            {
+                Name (_SUN, 0x1C)  // _SUN: Slot User Number
+                Name (_ADR, 0x001C0000)  // _ADR: Address
+                Method (_EJ0, 1, NotSerialized)  // _EJx: Eject Device, x=0-9
+                {
+                    PCEJ (BSEL, _SUN)
+                }
+            }
+
+            Device (SE8)
+            {
+                Name (_SUN, 0x1D)  // _SUN: Slot User Number
+                Name (_ADR, 0x001D0000)  // _ADR: Address
+                Method (_EJ0, 1, NotSerialized)  // _EJx: Eject Device, x=0-9
+                {
+                    PCEJ (BSEL, _SUN)
+                }
+            }
+
+            Device (SF0)
+            {
+                Name (_SUN, 0x1E)  // _SUN: Slot User Number
+                Name (_ADR, 0x001E0000)  // _ADR: Address
+                Method (_EJ0, 1, NotSerialized)  // _EJx: Eject Device, x=0-9
+                {
+                    PCEJ (BSEL, _SUN)
+                }
+            }
+
+            Device (SF8)
+            {
+                Name (_SUN, 0x1F)  // _SUN: Slot User Number
+                Name (_ADR, 0x001F0000)  // _ADR: Address
+                Method (_EJ0, 1, NotSerialized)  // _EJx: Eject Device, x=0-9
+                {
+                    PCEJ (BSEL, _SUN)
+                }
+            }
+
+            Method (DVNT, 2, NotSerialized)
+            {
+                If ((Arg0 & 0x08))
+                {
+                    Notify (S18, Arg1)
+                }
+
+                If ((Arg0 & 0x10))
+                {
+                    Notify (S20, Arg1)
+                }
+
+                If ((Arg0 & 0x20))
+                {
+                    Notify (S28, Arg1)
+                }
+
+                If ((Arg0 & 0x40))
+                {
+                    Notify (S30, Arg1)
+                }
+
+                If ((Arg0 & 0x80))
+                {
+                    Notify (S38, Arg1)
+                }
+
+                If ((Arg0 & 0x0100))
+                {
+                    Notify (S40, Arg1)
+                }
+
+                If ((Arg0 & 0x0200))
+                {
+                    Notify (S48, Arg1)
+                }
+
+                If ((Arg0 & 0x0400))
+                {
+                    Notify (S50, Arg1)
+                }
+
+                If ((Arg0 & 0x0800))
+                {
+                    Notify (S58, Arg1)
+                }
+
+                If ((Arg0 & 0x1000))
+                {
+                    Notify (S60, Arg1)
+                }
+
+                If ((Arg0 & 0x2000))
+                {
+                    Notify (S68, Arg1)
+                }
+
+                If ((Arg0 & 0x4000))
+                {
+                    Notify (S70, Arg1)
+                }
+
+                If ((Arg0 & 0x8000))
+                {
+                    Notify (S78, Arg1)
+                }
+
+                If ((Arg0 & 0x00010000))
+                {
+                    Notify (S80, Arg1)
+                }
+
+                If ((Arg0 & 0x00020000))
+                {
+                    Notify (S88, Arg1)
+                }
+
+                If ((Arg0 & 0x00040000))
+                {
+                    Notify (S90, Arg1)
+                }
+
+                If ((Arg0 & 0x00080000))
+                {
+                    Notify (S98, Arg1)
+                }
+
+                If ((Arg0 & 0x00100000))
+                {
+                    Notify (SA0, Arg1)
+                }
+
+                If ((Arg0 & 0x00200000))
+                {
+                    Notify (SA8, Arg1)
+                }
+
+                If ((Arg0 & 0x00400000))
+                {
+                    Notify (SB0, Arg1)
+                }
+
+                If ((Arg0 & 0x00800000))
+                {
+                    Notify (SB8, Arg1)
+                }
+
+                If ((Arg0 & 0x01000000))
+                {
+                    Notify (SC0, Arg1)
+                }
+
+                If ((Arg0 & 0x02000000))
+                {
+                    Notify (SC8, Arg1)
+                }
+
+                If ((Arg0 & 0x04000000))
+                {
+                    Notify (SD0, Arg1)
+                }
+
+                If ((Arg0 & 0x08000000))
+                {
+                    Notify (SD8, Arg1)
+                }
+
+                If ((Arg0 & 0x10000000))
+                {
+                    Notify (SE0, Arg1)
+                }
+
+                If ((Arg0 & 0x20000000))
+                {
+                    Notify (SE8, Arg1)
+                }
+
+                If ((Arg0 & 0x40000000))
+                {
+                    Notify (SF0, Arg1)
+                }
+
+                If ((Arg0 & 0x80000000))
+                {
+                    Notify (SF8, Arg1)
+                }
+            }
+
+            Method (PCNT, 0, NotSerialized)
+            {
+                BNUM = Zero
+                DVNT (PCIU, One)
+                DVNT (PCID, 0x03)
+            }
+        }
+    }
+}
+
diff --git a/tests/data/acpi/pc/DSDT.roothp b/tests/data/acpi/pc/DSDT.roothp
index 886a5e6952f6f034bdd80d44d43de5975a1a4b0f..18caa0765fc10adb29e01717390ead6c63cd0f3c 100644
GIT binary patch
delta 323
zcmeCu=+NYH33dtT5Mf|o{Irp43mcP{-Q)votC@U_C+D*NWpWdnoWmhg&*ALn8ZN~2
zzkngRfH7r}i_qj0#sY?v0>*>_hQviaJQF4-FiuSd3MCXI$LO=f2Rp?FIC~ld1i1z~
z2fO+dFrW)M`?@R;pNcN(;uw;=bOGn&M6UlpYnB$k<m+K(ffOuInG6$$348hlGZrLw
zfE<~~P?`vI)<W|IrWneCe8U)>L);>hxtI$W(aiu#0`-+97ce9(a%GvClvvOVHZX}H
e*_j)p31~yKVL|d_9S&7ipoOJLn{7GIasdD>6JkmL

delta 193
zcmeCs?9$+J33dtL5@BFqe72Em3mcP<+2jLktC{?@C+D*NW%A&goWmi*SHPIC$dP+;
z0%HL~LIJ~MLoQ*z1@0`9WAs_#gPr07oIMQ!f?R{0J^g|iokQFr(ZyXHLl_Gf(M5r(
lf#xpsW?A6DGTDYxQWsqTP#YIBroJHGFrdE8yE)Ht0RUaLHR}KX

diff --git a/tests/data/acpi/pc/FACP.acpihmat b/tests/data/acpi/pc/FACP.acpihmat
new file mode 100644
index 0000000000000000000000000000000000000000..261ebdc5d1c3bdf18fb7935314a04fd7f6f92a7a
GIT binary patch
literal 116
zcmZ>BbPgzCU|?We=;ZJ05v<@85#a0w6k`O6f!H7#1{fJQ88!hqA3p#IHi#$-lm_uQ
ffb0kBq2f#oEG$6gfBygc5D^9jBOqgG0|Ns9?p_Z8

literal 0
HcmV?d00001

diff --git a/tests/data/acpi/pc/FACP.acpihmat.dsl b/tests/data/acpi/pc/FACP.acpihmat.dsl
new file mode 100644
index 0000000000..226fd58ec9
--- /dev/null
+++ b/tests/data/acpi/pc/FACP.acpihmat.dsl
@@ -0,0 +1,99 @@ 
+/*
+ * Intel ACPI Component Architecture
+ * AML/ASL+ Disassembler version 20190509 (64-bit version)
+ * Copyright (c) 2000 - 2019 Intel Corporation
+ * 
+ * Disassembly of tests/data/acpi/pc/FACP.acpihmat, Tue Aug  4 11:14:15 2020
+ *
+ * ACPI Data Table [FACP]
+ *
+ * Format: [HexOffset DecimalOffset ByteLength]  FieldName : FieldValue
+ */
+
+[000h 0000   4]                    Signature : "FACP"    [Fixed ACPI Description Table (FADT)]
+[004h 0004   4]                 Table Length : 00000074
+[008h 0008   1]                     Revision : 01
+[009h 0009   1]                     Checksum : A1
+[00Ah 0010   6]                       Oem ID : "BOCHS "
+[010h 0016   8]                 Oem Table ID : "BXPCFACP"
+[018h 0024   4]                 Oem Revision : 00000001
+[01Ch 0028   4]              Asl Compiler ID : "BXPC"
+[020h 0032   4]        Asl Compiler Revision : 00000001
+
+[024h 0036   4]                 FACS Address : 00000000
+[028h 0040   4]                 DSDT Address : 00000000
+[02Ch 0044   1]                        Model : 01
+[02Dh 0045   1]                   PM Profile : 00 [Unspecified]
+[02Eh 0046   2]                SCI Interrupt : 0009
+[030h 0048   4]             SMI Command Port : 000000B2
+[034h 0052   1]            ACPI Enable Value : F1
+[035h 0053   1]           ACPI Disable Value : F0
+[036h 0054   1]               S4BIOS Command : 00
+[037h 0055   1]              P-State Control : 00
+[038h 0056   4]     PM1A Event Block Address : 00000600
+[03Ch 0060   4]     PM1B Event Block Address : 00000000
+[040h 0064   4]   PM1A Control Block Address : 00000604
+[044h 0068   4]   PM1B Control Block Address : 00000000
+[048h 0072   4]    PM2 Control Block Address : 00000000
+[04Ch 0076   4]       PM Timer Block Address : 00000608
+[050h 0080   4]           GPE0 Block Address : 0000AFE0
+[054h 0084   4]           GPE1 Block Address : 00000000
+[058h 0088   1]       PM1 Event Block Length : 04
+[059h 0089   1]     PM1 Control Block Length : 02
+[05Ah 0090   1]     PM2 Control Block Length : 00
+[05Bh 0091   1]        PM Timer Block Length : 04
+[05Ch 0092   1]            GPE0 Block Length : 04
+[05Dh 0093   1]            GPE1 Block Length : 00
+[05Eh 0094   1]             GPE1 Base Offset : 00
+[05Fh 0095   1]                 _CST Support : 00
+[060h 0096   2]                   C2 Latency : 0FFF
+[062h 0098   2]                   C3 Latency : 0FFF
+[064h 0100   2]               CPU Cache Size : 0000
+[066h 0102   2]           Cache Flush Stride : 0000
+[068h 0104   1]            Duty Cycle Offset : 00
+[069h 0105   1]             Duty Cycle Width : 00
+[06Ah 0106   1]          RTC Day Alarm Index : 00
+[06Bh 0107   1]        RTC Month Alarm Index : 00
+[06Ch 0108   1]            RTC Century Index : 32
+[06Dh 0109   2]   Boot Flags (decoded below) : 0000
+               Legacy Devices Supported (V2) : 0
+            8042 Present on ports 60/64 (V2) : 0
+                        VGA Not Present (V4) : 0
+                      MSI Not Supported (V4) : 0
+                PCIe ASPM Not Supported (V4) : 0
+                   CMOS RTC Not Present (V5) : 0
+[06Fh 0111   1]                     Reserved : 00
+[070h 0112   4]        Flags (decoded below) : 000080A5
+      WBINVD instruction is operational (V1) : 1
+              WBINVD flushes all caches (V1) : 0
+                    All CPUs support C1 (V1) : 1
+                  C2 works on MP system (V1) : 0
+            Control Method Power Button (V1) : 0
+            Control Method Sleep Button (V1) : 1
+        RTC wake not in fixed reg space (V1) : 0
+            RTC can wake system from S4 (V1) : 1
+                        32-bit PM Timer (V1) : 0
+                      Docking Supported (V1) : 0
+               Reset Register Supported (V2) : 0
+                            Sealed Case (V3) : 0
+                    Headless - No Video (V3) : 0
+        Use native instr after SLP_TYPx (V3) : 0
+              PCIEXP_WAK Bits Supported (V4) : 0
+                     Use Platform Timer (V4) : 1
+               RTC_STS valid on S4 wake (V4) : 0
+                Remote Power-on capable (V4) : 0
+                 Use APIC Cluster Model (V4) : 0
+     Use APIC Physical Destination Mode (V4) : 0
+                       Hardware Reduced (V5) : 0
+                      Low Power S0 Idle (V5) : 0
+
+Raw Table Data: Length 116 (0x74)
+
+    0000: 46 41 43 50 74 00 00 00 01 A1 42 4F 43 48 53 20  // FACPt.....BOCHS 
+    0010: 42 58 50 43 46 41 43 50 01 00 00 00 42 58 50 43  // BXPCFACP....BXPC
+    0020: 01 00 00 00 00 00 00 00 00 00 00 00 01 00 09 00  // ................
+    0030: B2 00 00 00 F1 F0 00 00 00 06 00 00 00 00 00 00  // ................
+    0040: 04 06 00 00 00 00 00 00 00 00 00 00 08 06 00 00  // ................
+    0050: E0 AF 00 00 00 00 00 00 04 02 00 04 04 00 00 00  // ................
+    0060: FF 0F FF 0F 00 00 00 00 00 00 00 00 32 00 00 00  // ............2...
+    0070: A5 80 00 00                                      // ....
diff --git a/tests/data/acpi/pc/FACP.bridge b/tests/data/acpi/pc/FACP.bridge
new file mode 100644
index 0000000000000000000000000000000000000000..261ebdc5d1c3bdf18fb7935314a04fd7f6f92a7a
GIT binary patch
literal 116
zcmZ>BbPgzCU|?We=;ZJ05v<@85#a0w6k`O6f!H7#1{fJQ88!hqA3p#IHi#$-lm_uQ
ffb0kBq2f#oEG$6gfBygc5D^9jBOqgG0|Ns9?p_Z8

literal 0
HcmV?d00001

diff --git a/tests/data/acpi/pc/FACP.bridge.dsl b/tests/data/acpi/pc/FACP.bridge.dsl
new file mode 100644
index 0000000000..11b371812d
--- /dev/null
+++ b/tests/data/acpi/pc/FACP.bridge.dsl
@@ -0,0 +1,99 @@ 
+/*
+ * Intel ACPI Component Architecture
+ * AML/ASL+ Disassembler version 20190509 (64-bit version)
+ * Copyright (c) 2000 - 2019 Intel Corporation
+ * 
+ * Disassembly of tests/data/acpi/pc/FACP.bridge, Tue Aug  4 11:14:15 2020
+ *
+ * ACPI Data Table [FACP]
+ *
+ * Format: [HexOffset DecimalOffset ByteLength]  FieldName : FieldValue
+ */
+
+[000h 0000   4]                    Signature : "FACP"    [Fixed ACPI Description Table (FADT)]
+[004h 0004   4]                 Table Length : 00000074
+[008h 0008   1]                     Revision : 01
+[009h 0009   1]                     Checksum : A1
+[00Ah 0010   6]                       Oem ID : "BOCHS "
+[010h 0016   8]                 Oem Table ID : "BXPCFACP"
+[018h 0024   4]                 Oem Revision : 00000001
+[01Ch 0028   4]              Asl Compiler ID : "BXPC"
+[020h 0032   4]        Asl Compiler Revision : 00000001
+
+[024h 0036   4]                 FACS Address : 00000000
+[028h 0040   4]                 DSDT Address : 00000000
+[02Ch 0044   1]                        Model : 01
+[02Dh 0045   1]                   PM Profile : 00 [Unspecified]
+[02Eh 0046   2]                SCI Interrupt : 0009
+[030h 0048   4]             SMI Command Port : 000000B2
+[034h 0052   1]            ACPI Enable Value : F1
+[035h 0053   1]           ACPI Disable Value : F0
+[036h 0054   1]               S4BIOS Command : 00
+[037h 0055   1]              P-State Control : 00
+[038h 0056   4]     PM1A Event Block Address : 00000600
+[03Ch 0060   4]     PM1B Event Block Address : 00000000
+[040h 0064   4]   PM1A Control Block Address : 00000604
+[044h 0068   4]   PM1B Control Block Address : 00000000
+[048h 0072   4]    PM2 Control Block Address : 00000000
+[04Ch 0076   4]       PM Timer Block Address : 00000608
+[050h 0080   4]           GPE0 Block Address : 0000AFE0
+[054h 0084   4]           GPE1 Block Address : 00000000
+[058h 0088   1]       PM1 Event Block Length : 04
+[059h 0089   1]     PM1 Control Block Length : 02
+[05Ah 0090   1]     PM2 Control Block Length : 00
+[05Bh 0091   1]        PM Timer Block Length : 04
+[05Ch 0092   1]            GPE0 Block Length : 04
+[05Dh 0093   1]            GPE1 Block Length : 00
+[05Eh 0094   1]             GPE1 Base Offset : 00
+[05Fh 0095   1]                 _CST Support : 00
+[060h 0096   2]                   C2 Latency : 0FFF
+[062h 0098   2]                   C3 Latency : 0FFF
+[064h 0100   2]               CPU Cache Size : 0000
+[066h 0102   2]           Cache Flush Stride : 0000
+[068h 0104   1]            Duty Cycle Offset : 00
+[069h 0105   1]             Duty Cycle Width : 00
+[06Ah 0106   1]          RTC Day Alarm Index : 00
+[06Bh 0107   1]        RTC Month Alarm Index : 00
+[06Ch 0108   1]            RTC Century Index : 32
+[06Dh 0109   2]   Boot Flags (decoded below) : 0000
+               Legacy Devices Supported (V2) : 0
+            8042 Present on ports 60/64 (V2) : 0
+                        VGA Not Present (V4) : 0
+                      MSI Not Supported (V4) : 0
+                PCIe ASPM Not Supported (V4) : 0
+                   CMOS RTC Not Present (V5) : 0
+[06Fh 0111   1]                     Reserved : 00
+[070h 0112   4]        Flags (decoded below) : 000080A5
+      WBINVD instruction is operational (V1) : 1
+              WBINVD flushes all caches (V1) : 0
+                    All CPUs support C1 (V1) : 1
+                  C2 works on MP system (V1) : 0
+            Control Method Power Button (V1) : 0
+            Control Method Sleep Button (V1) : 1
+        RTC wake not in fixed reg space (V1) : 0
+            RTC can wake system from S4 (V1) : 1
+                        32-bit PM Timer (V1) : 0
+                      Docking Supported (V1) : 0
+               Reset Register Supported (V2) : 0
+                            Sealed Case (V3) : 0
+                    Headless - No Video (V3) : 0
+        Use native instr after SLP_TYPx (V3) : 0
+              PCIEXP_WAK Bits Supported (V4) : 0
+                     Use Platform Timer (V4) : 1
+               RTC_STS valid on S4 wake (V4) : 0
+                Remote Power-on capable (V4) : 0
+                 Use APIC Cluster Model (V4) : 0
+     Use APIC Physical Destination Mode (V4) : 0
+                       Hardware Reduced (V5) : 0
+                      Low Power S0 Idle (V5) : 0
+
+Raw Table Data: Length 116 (0x74)
+
+    0000: 46 41 43 50 74 00 00 00 01 A1 42 4F 43 48 53 20  // FACPt.....BOCHS 
+    0010: 42 58 50 43 46 41 43 50 01 00 00 00 42 58 50 43  // BXPCFACP....BXPC
+    0020: 01 00 00 00 00 00 00 00 00 00 00 00 01 00 09 00  // ................
+    0030: B2 00 00 00 F1 F0 00 00 00 06 00 00 00 00 00 00  // ................
+    0040: 04 06 00 00 00 00 00 00 00 00 00 00 08 06 00 00  // ................
+    0050: E0 AF 00 00 00 00 00 00 04 02 00 04 04 00 00 00  // ................
+    0060: FF 0F FF 0F 00 00 00 00 00 00 00 00 32 00 00 00  // ............2...
+    0070: A5 80 00 00                                      // ....
diff --git a/tests/data/acpi/pc/FACP.cphp b/tests/data/acpi/pc/FACP.cphp
new file mode 100644
index 0000000000000000000000000000000000000000..261ebdc5d1c3bdf18fb7935314a04fd7f6f92a7a
GIT binary patch
literal 116
zcmZ>BbPgzCU|?We=;ZJ05v<@85#a0w6k`O6f!H7#1{fJQ88!hqA3p#IHi#$-lm_uQ
ffb0kBq2f#oEG$6gfBygc5D^9jBOqgG0|Ns9?p_Z8

literal 0
HcmV?d00001

diff --git a/tests/data/acpi/pc/FACP.cphp.dsl b/tests/data/acpi/pc/FACP.cphp.dsl
new file mode 100644
index 0000000000..affffe9b64
--- /dev/null
+++ b/tests/data/acpi/pc/FACP.cphp.dsl
@@ -0,0 +1,99 @@ 
+/*
+ * Intel ACPI Component Architecture
+ * AML/ASL+ Disassembler version 20190509 (64-bit version)
+ * Copyright (c) 2000 - 2019 Intel Corporation
+ * 
+ * Disassembly of tests/data/acpi/pc/FACP.cphp, Tue Aug  4 11:14:15 2020
+ *
+ * ACPI Data Table [FACP]
+ *
+ * Format: [HexOffset DecimalOffset ByteLength]  FieldName : FieldValue
+ */
+
+[000h 0000   4]                    Signature : "FACP"    [Fixed ACPI Description Table (FADT)]
+[004h 0004   4]                 Table Length : 00000074
+[008h 0008   1]                     Revision : 01
+[009h 0009   1]                     Checksum : A1
+[00Ah 0010   6]                       Oem ID : "BOCHS "
+[010h 0016   8]                 Oem Table ID : "BXPCFACP"
+[018h 0024   4]                 Oem Revision : 00000001
+[01Ch 0028   4]              Asl Compiler ID : "BXPC"
+[020h 0032   4]        Asl Compiler Revision : 00000001
+
+[024h 0036   4]                 FACS Address : 00000000
+[028h 0040   4]                 DSDT Address : 00000000
+[02Ch 0044   1]                        Model : 01
+[02Dh 0045   1]                   PM Profile : 00 [Unspecified]
+[02Eh 0046   2]                SCI Interrupt : 0009
+[030h 0048   4]             SMI Command Port : 000000B2
+[034h 0052   1]            ACPI Enable Value : F1
+[035h 0053   1]           ACPI Disable Value : F0
+[036h 0054   1]               S4BIOS Command : 00
+[037h 0055   1]              P-State Control : 00
+[038h 0056   4]     PM1A Event Block Address : 00000600
+[03Ch 0060   4]     PM1B Event Block Address : 00000000
+[040h 0064   4]   PM1A Control Block Address : 00000604
+[044h 0068   4]   PM1B Control Block Address : 00000000
+[048h 0072   4]    PM2 Control Block Address : 00000000
+[04Ch 0076   4]       PM Timer Block Address : 00000608
+[050h 0080   4]           GPE0 Block Address : 0000AFE0
+[054h 0084   4]           GPE1 Block Address : 00000000
+[058h 0088   1]       PM1 Event Block Length : 04
+[059h 0089   1]     PM1 Control Block Length : 02
+[05Ah 0090   1]     PM2 Control Block Length : 00
+[05Bh 0091   1]        PM Timer Block Length : 04
+[05Ch 0092   1]            GPE0 Block Length : 04
+[05Dh 0093   1]            GPE1 Block Length : 00
+[05Eh 0094   1]             GPE1 Base Offset : 00
+[05Fh 0095   1]                 _CST Support : 00
+[060h 0096   2]                   C2 Latency : 0FFF
+[062h 0098   2]                   C3 Latency : 0FFF
+[064h 0100   2]               CPU Cache Size : 0000
+[066h 0102   2]           Cache Flush Stride : 0000
+[068h 0104   1]            Duty Cycle Offset : 00
+[069h 0105   1]             Duty Cycle Width : 00
+[06Ah 0106   1]          RTC Day Alarm Index : 00
+[06Bh 0107   1]        RTC Month Alarm Index : 00
+[06Ch 0108   1]            RTC Century Index : 32
+[06Dh 0109   2]   Boot Flags (decoded below) : 0000
+               Legacy Devices Supported (V2) : 0
+            8042 Present on ports 60/64 (V2) : 0
+                        VGA Not Present (V4) : 0
+                      MSI Not Supported (V4) : 0
+                PCIe ASPM Not Supported (V4) : 0
+                   CMOS RTC Not Present (V5) : 0
+[06Fh 0111   1]                     Reserved : 00
+[070h 0112   4]        Flags (decoded below) : 000080A5
+      WBINVD instruction is operational (V1) : 1
+              WBINVD flushes all caches (V1) : 0
+                    All CPUs support C1 (V1) : 1
+                  C2 works on MP system (V1) : 0
+            Control Method Power Button (V1) : 0
+            Control Method Sleep Button (V1) : 1
+        RTC wake not in fixed reg space (V1) : 0
+            RTC can wake system from S4 (V1) : 1
+                        32-bit PM Timer (V1) : 0
+                      Docking Supported (V1) : 0
+               Reset Register Supported (V2) : 0
+                            Sealed Case (V3) : 0
+                    Headless - No Video (V3) : 0
+        Use native instr after SLP_TYPx (V3) : 0
+              PCIEXP_WAK Bits Supported (V4) : 0
+                     Use Platform Timer (V4) : 1
+               RTC_STS valid on S4 wake (V4) : 0
+                Remote Power-on capable (V4) : 0
+                 Use APIC Cluster Model (V4) : 0
+     Use APIC Physical Destination Mode (V4) : 0
+                       Hardware Reduced (V5) : 0
+                      Low Power S0 Idle (V5) : 0
+
+Raw Table Data: Length 116 (0x74)
+
+    0000: 46 41 43 50 74 00 00 00 01 A1 42 4F 43 48 53 20  // FACPt.....BOCHS 
+    0010: 42 58 50 43 46 41 43 50 01 00 00 00 42 58 50 43  // BXPCFACP....BXPC
+    0020: 01 00 00 00 00 00 00 00 00 00 00 00 01 00 09 00  // ................
+    0030: B2 00 00 00 F1 F0 00 00 00 06 00 00 00 00 00 00  // ................
+    0040: 04 06 00 00 00 00 00 00 00 00 00 00 08 06 00 00  // ................
+    0050: E0 AF 00 00 00 00 00 00 04 02 00 04 04 00 00 00  // ................
+    0060: FF 0F FF 0F 00 00 00 00 00 00 00 00 32 00 00 00  // ............2...
+    0070: A5 80 00 00                                      // ....
diff --git a/tests/data/acpi/pc/FACP.dimmpxm b/tests/data/acpi/pc/FACP.dimmpxm
new file mode 100644
index 0000000000000000000000000000000000000000..261ebdc5d1c3bdf18fb7935314a04fd7f6f92a7a
GIT binary patch
literal 116
zcmZ>BbPgzCU|?We=;ZJ05v<@85#a0w6k`O6f!H7#1{fJQ88!hqA3p#IHi#$-lm_uQ
ffb0kBq2f#oEG$6gfBygc5D^9jBOqgG0|Ns9?p_Z8

literal 0
HcmV?d00001

diff --git a/tests/data/acpi/pc/FACP.dimmpxm.dsl b/tests/data/acpi/pc/FACP.dimmpxm.dsl
new file mode 100644
index 0000000000..fd5a5ef375
--- /dev/null
+++ b/tests/data/acpi/pc/FACP.dimmpxm.dsl
@@ -0,0 +1,99 @@ 
+/*
+ * Intel ACPI Component Architecture
+ * AML/ASL+ Disassembler version 20190509 (64-bit version)
+ * Copyright (c) 2000 - 2019 Intel Corporation
+ * 
+ * Disassembly of tests/data/acpi/pc/FACP.dimmpxm, Tue Aug  4 11:14:15 2020
+ *
+ * ACPI Data Table [FACP]
+ *
+ * Format: [HexOffset DecimalOffset ByteLength]  FieldName : FieldValue
+ */
+
+[000h 0000   4]                    Signature : "FACP"    [Fixed ACPI Description Table (FADT)]
+[004h 0004   4]                 Table Length : 00000074
+[008h 0008   1]                     Revision : 01
+[009h 0009   1]                     Checksum : A1
+[00Ah 0010   6]                       Oem ID : "BOCHS "
+[010h 0016   8]                 Oem Table ID : "BXPCFACP"
+[018h 0024   4]                 Oem Revision : 00000001
+[01Ch 0028   4]              Asl Compiler ID : "BXPC"
+[020h 0032   4]        Asl Compiler Revision : 00000001
+
+[024h 0036   4]                 FACS Address : 00000000
+[028h 0040   4]                 DSDT Address : 00000000
+[02Ch 0044   1]                        Model : 01
+[02Dh 0045   1]                   PM Profile : 00 [Unspecified]
+[02Eh 0046   2]                SCI Interrupt : 0009
+[030h 0048   4]             SMI Command Port : 000000B2
+[034h 0052   1]            ACPI Enable Value : F1
+[035h 0053   1]           ACPI Disable Value : F0
+[036h 0054   1]               S4BIOS Command : 00
+[037h 0055   1]              P-State Control : 00
+[038h 0056   4]     PM1A Event Block Address : 00000600
+[03Ch 0060   4]     PM1B Event Block Address : 00000000
+[040h 0064   4]   PM1A Control Block Address : 00000604
+[044h 0068   4]   PM1B Control Block Address : 00000000
+[048h 0072   4]    PM2 Control Block Address : 00000000
+[04Ch 0076   4]       PM Timer Block Address : 00000608
+[050h 0080   4]           GPE0 Block Address : 0000AFE0
+[054h 0084   4]           GPE1 Block Address : 00000000
+[058h 0088   1]       PM1 Event Block Length : 04
+[059h 0089   1]     PM1 Control Block Length : 02
+[05Ah 0090   1]     PM2 Control Block Length : 00
+[05Bh 0091   1]        PM Timer Block Length : 04
+[05Ch 0092   1]            GPE0 Block Length : 04
+[05Dh 0093   1]            GPE1 Block Length : 00
+[05Eh 0094   1]             GPE1 Base Offset : 00
+[05Fh 0095   1]                 _CST Support : 00
+[060h 0096   2]                   C2 Latency : 0FFF
+[062h 0098   2]                   C3 Latency : 0FFF
+[064h 0100   2]               CPU Cache Size : 0000
+[066h 0102   2]           Cache Flush Stride : 0000
+[068h 0104   1]            Duty Cycle Offset : 00
+[069h 0105   1]             Duty Cycle Width : 00
+[06Ah 0106   1]          RTC Day Alarm Index : 00
+[06Bh 0107   1]        RTC Month Alarm Index : 00
+[06Ch 0108   1]            RTC Century Index : 32
+[06Dh 0109   2]   Boot Flags (decoded below) : 0000
+               Legacy Devices Supported (V2) : 0
+            8042 Present on ports 60/64 (V2) : 0
+                        VGA Not Present (V4) : 0
+                      MSI Not Supported (V4) : 0
+                PCIe ASPM Not Supported (V4) : 0
+                   CMOS RTC Not Present (V5) : 0
+[06Fh 0111   1]                     Reserved : 00
+[070h 0112   4]        Flags (decoded below) : 000080A5
+      WBINVD instruction is operational (V1) : 1
+              WBINVD flushes all caches (V1) : 0
+                    All CPUs support C1 (V1) : 1
+                  C2 works on MP system (V1) : 0
+            Control Method Power Button (V1) : 0
+            Control Method Sleep Button (V1) : 1
+        RTC wake not in fixed reg space (V1) : 0
+            RTC can wake system from S4 (V1) : 1
+                        32-bit PM Timer (V1) : 0
+                      Docking Supported (V1) : 0
+               Reset Register Supported (V2) : 0
+                            Sealed Case (V3) : 0
+                    Headless - No Video (V3) : 0
+        Use native instr after SLP_TYPx (V3) : 0
+              PCIEXP_WAK Bits Supported (V4) : 0
+                     Use Platform Timer (V4) : 1
+               RTC_STS valid on S4 wake (V4) : 0
+                Remote Power-on capable (V4) : 0
+                 Use APIC Cluster Model (V4) : 0
+     Use APIC Physical Destination Mode (V4) : 0
+                       Hardware Reduced (V5) : 0
+                      Low Power S0 Idle (V5) : 0
+
+Raw Table Data: Length 116 (0x74)
+
+    0000: 46 41 43 50 74 00 00 00 01 A1 42 4F 43 48 53 20  // FACPt.....BOCHS 
+    0010: 42 58 50 43 46 41 43 50 01 00 00 00 42 58 50 43  // BXPCFACP....BXPC
+    0020: 01 00 00 00 00 00 00 00 00 00 00 00 01 00 09 00  // ................
+    0030: B2 00 00 00 F1 F0 00 00 00 06 00 00 00 00 00 00  // ................
+    0040: 04 06 00 00 00 00 00 00 00 00 00 00 08 06 00 00  // ................
+    0050: E0 AF 00 00 00 00 00 00 04 02 00 04 04 00 00 00  // ................
+    0060: FF 0F FF 0F 00 00 00 00 00 00 00 00 32 00 00 00  // ............2...
+    0070: A5 80 00 00                                      // ....
diff --git a/tests/data/acpi/pc/FACP.dsl b/tests/data/acpi/pc/FACP.dsl
new file mode 100644
index 0000000000..c5e3718772
--- /dev/null
+++ b/tests/data/acpi/pc/FACP.dsl
@@ -0,0 +1,99 @@ 
+/*
+ * Intel ACPI Component Architecture
+ * AML/ASL+ Disassembler version 20190509 (64-bit version)
+ * Copyright (c) 2000 - 2019 Intel Corporation
+ * 
+ * Disassembly of tests/data/acpi/pc/FACP.roothp, Mon Sep 28 17:24:38 2020
+ *
+ * ACPI Data Table [FACP]
+ *
+ * Format: [HexOffset DecimalOffset ByteLength]  FieldName : FieldValue
+ */
+
+[000h 0000   4]                    Signature : "FACP"    [Fixed ACPI Description Table (FADT)]
+[004h 0004   4]                 Table Length : 00000074
+[008h 0008   1]                     Revision : 01
+[009h 0009   1]                     Checksum : A1
+[00Ah 0010   6]                       Oem ID : "BOCHS "
+[010h 0016   8]                 Oem Table ID : "BXPCFACP"
+[018h 0024   4]                 Oem Revision : 00000001
+[01Ch 0028   4]              Asl Compiler ID : "BXPC"
+[020h 0032   4]        Asl Compiler Revision : 00000001
+
+[024h 0036   4]                 FACS Address : 00000000
+[028h 0040   4]                 DSDT Address : 00000000
+[02Ch 0044   1]                        Model : 01
+[02Dh 0045   1]                   PM Profile : 00 [Unspecified]
+[02Eh 0046   2]                SCI Interrupt : 0009
+[030h 0048   4]             SMI Command Port : 000000B2
+[034h 0052   1]            ACPI Enable Value : F1
+[035h 0053   1]           ACPI Disable Value : F0
+[036h 0054   1]               S4BIOS Command : 00
+[037h 0055   1]              P-State Control : 00
+[038h 0056   4]     PM1A Event Block Address : 00000600
+[03Ch 0060   4]     PM1B Event Block Address : 00000000
+[040h 0064   4]   PM1A Control Block Address : 00000604
+[044h 0068   4]   PM1B Control Block Address : 00000000
+[048h 0072   4]    PM2 Control Block Address : 00000000
+[04Ch 0076   4]       PM Timer Block Address : 00000608
+[050h 0080   4]           GPE0 Block Address : 0000AFE0
+[054h 0084   4]           GPE1 Block Address : 00000000
+[058h 0088   1]       PM1 Event Block Length : 04
+[059h 0089   1]     PM1 Control Block Length : 02
+[05Ah 0090   1]     PM2 Control Block Length : 00
+[05Bh 0091   1]        PM Timer Block Length : 04
+[05Ch 0092   1]            GPE0 Block Length : 04
+[05Dh 0093   1]            GPE1 Block Length : 00
+[05Eh 0094   1]             GPE1 Base Offset : 00
+[05Fh 0095   1]                 _CST Support : 00
+[060h 0096   2]                   C2 Latency : 0FFF
+[062h 0098   2]                   C3 Latency : 0FFF
+[064h 0100   2]               CPU Cache Size : 0000
+[066h 0102   2]           Cache Flush Stride : 0000
+[068h 0104   1]            Duty Cycle Offset : 00
+[069h 0105   1]             Duty Cycle Width : 00
+[06Ah 0106   1]          RTC Day Alarm Index : 00
+[06Bh 0107   1]        RTC Month Alarm Index : 00
+[06Ch 0108   1]            RTC Century Index : 32
+[06Dh 0109   2]   Boot Flags (decoded below) : 0000
+               Legacy Devices Supported (V2) : 0
+            8042 Present on ports 60/64 (V2) : 0
+                        VGA Not Present (V4) : 0
+                      MSI Not Supported (V4) : 0
+                PCIe ASPM Not Supported (V4) : 0
+                   CMOS RTC Not Present (V5) : 0
+[06Fh 0111   1]                     Reserved : 00
+[070h 0112   4]        Flags (decoded below) : 000080A5
+      WBINVD instruction is operational (V1) : 1
+              WBINVD flushes all caches (V1) : 0
+                    All CPUs support C1 (V1) : 1
+                  C2 works on MP system (V1) : 0
+            Control Method Power Button (V1) : 0
+            Control Method Sleep Button (V1) : 1
+        RTC wake not in fixed reg space (V1) : 0
+            RTC can wake system from S4 (V1) : 1
+                        32-bit PM Timer (V1) : 0
+                      Docking Supported (V1) : 0
+               Reset Register Supported (V2) : 0
+                            Sealed Case (V3) : 0
+                    Headless - No Video (V3) : 0
+        Use native instr after SLP_TYPx (V3) : 0
+              PCIEXP_WAK Bits Supported (V4) : 0
+                     Use Platform Timer (V4) : 1
+               RTC_STS valid on S4 wake (V4) : 0
+                Remote Power-on capable (V4) : 0
+                 Use APIC Cluster Model (V4) : 0
+     Use APIC Physical Destination Mode (V4) : 0
+                       Hardware Reduced (V5) : 0
+                      Low Power S0 Idle (V5) : 0
+
+Raw Table Data: Length 116 (0x74)
+
+    0000: 46 41 43 50 74 00 00 00 01 A1 42 4F 43 48 53 20  // FACPt.....BOCHS 
+    0010: 42 58 50 43 46 41 43 50 01 00 00 00 42 58 50 43  // BXPCFACP....BXPC
+    0020: 01 00 00 00 00 00 00 00 00 00 00 00 01 00 09 00  // ................
+    0030: B2 00 00 00 F1 F0 00 00 00 06 00 00 00 00 00 00  // ................
+    0040: 04 06 00 00 00 00 00 00 00 00 00 00 08 06 00 00  // ................
+    0050: E0 AF 00 00 00 00 00 00 04 02 00 04 04 00 00 00  // ................
+    0060: FF 0F FF 0F 00 00 00 00 00 00 00 00 32 00 00 00  // ............2...
+    0070: A5 80 00 00                                      // ....
diff --git a/tests/data/acpi/pc/FACP.hpbridge b/tests/data/acpi/pc/FACP.hpbridge
new file mode 100644
index 0000000000000000000000000000000000000000..261ebdc5d1c3bdf18fb7935314a04fd7f6f92a7a
GIT binary patch
literal 116
zcmZ>BbPgzCU|?We=;ZJ05v<@85#a0w6k`O6f!H7#1{fJQ88!hqA3p#IHi#$-lm_uQ
ffb0kBq2f#oEG$6gfBygc5D^9jBOqgG0|Ns9?p_Z8

literal 0
HcmV?d00001

diff --git a/tests/data/acpi/pc/FACP.ipmikcs b/tests/data/acpi/pc/FACP.ipmikcs
new file mode 100644
index 0000000000000000000000000000000000000000..261ebdc5d1c3bdf18fb7935314a04fd7f6f92a7a
GIT binary patch
literal 116
zcmZ>BbPgzCU|?We=;ZJ05v<@85#a0w6k`O6f!H7#1{fJQ88!hqA3p#IHi#$-lm_uQ
ffb0kBq2f#oEG$6gfBygc5D^9jBOqgG0|Ns9?p_Z8

literal 0
HcmV?d00001

diff --git a/tests/data/acpi/pc/FACP.ipmikcs.dsl b/tests/data/acpi/pc/FACP.ipmikcs.dsl
new file mode 100644
index 0000000000..3f1dd018da
--- /dev/null
+++ b/tests/data/acpi/pc/FACP.ipmikcs.dsl
@@ -0,0 +1,99 @@ 
+/*
+ * Intel ACPI Component Architecture
+ * AML/ASL+ Disassembler version 20190509 (64-bit version)
+ * Copyright (c) 2000 - 2019 Intel Corporation
+ * 
+ * Disassembly of tests/data/acpi/pc/FACP.ipmikcs, Tue Aug  4 11:14:15 2020
+ *
+ * ACPI Data Table [FACP]
+ *
+ * Format: [HexOffset DecimalOffset ByteLength]  FieldName : FieldValue
+ */
+
+[000h 0000   4]                    Signature : "FACP"    [Fixed ACPI Description Table (FADT)]
+[004h 0004   4]                 Table Length : 00000074
+[008h 0008   1]                     Revision : 01
+[009h 0009   1]                     Checksum : A1
+[00Ah 0010   6]                       Oem ID : "BOCHS "
+[010h 0016   8]                 Oem Table ID : "BXPCFACP"
+[018h 0024   4]                 Oem Revision : 00000001
+[01Ch 0028   4]              Asl Compiler ID : "BXPC"
+[020h 0032   4]        Asl Compiler Revision : 00000001
+
+[024h 0036   4]                 FACS Address : 00000000
+[028h 0040   4]                 DSDT Address : 00000000
+[02Ch 0044   1]                        Model : 01
+[02Dh 0045   1]                   PM Profile : 00 [Unspecified]
+[02Eh 0046   2]                SCI Interrupt : 0009
+[030h 0048   4]             SMI Command Port : 000000B2
+[034h 0052   1]            ACPI Enable Value : F1
+[035h 0053   1]           ACPI Disable Value : F0
+[036h 0054   1]               S4BIOS Command : 00
+[037h 0055   1]              P-State Control : 00
+[038h 0056   4]     PM1A Event Block Address : 00000600
+[03Ch 0060   4]     PM1B Event Block Address : 00000000
+[040h 0064   4]   PM1A Control Block Address : 00000604
+[044h 0068   4]   PM1B Control Block Address : 00000000
+[048h 0072   4]    PM2 Control Block Address : 00000000
+[04Ch 0076   4]       PM Timer Block Address : 00000608
+[050h 0080   4]           GPE0 Block Address : 0000AFE0
+[054h 0084   4]           GPE1 Block Address : 00000000
+[058h 0088   1]       PM1 Event Block Length : 04
+[059h 0089   1]     PM1 Control Block Length : 02
+[05Ah 0090   1]     PM2 Control Block Length : 00
+[05Bh 0091   1]        PM Timer Block Length : 04
+[05Ch 0092   1]            GPE0 Block Length : 04
+[05Dh 0093   1]            GPE1 Block Length : 00
+[05Eh 0094   1]             GPE1 Base Offset : 00
+[05Fh 0095   1]                 _CST Support : 00
+[060h 0096   2]                   C2 Latency : 0FFF
+[062h 0098   2]                   C3 Latency : 0FFF
+[064h 0100   2]               CPU Cache Size : 0000
+[066h 0102   2]           Cache Flush Stride : 0000
+[068h 0104   1]            Duty Cycle Offset : 00
+[069h 0105   1]             Duty Cycle Width : 00
+[06Ah 0106   1]          RTC Day Alarm Index : 00
+[06Bh 0107   1]        RTC Month Alarm Index : 00
+[06Ch 0108   1]            RTC Century Index : 32
+[06Dh 0109   2]   Boot Flags (decoded below) : 0000
+               Legacy Devices Supported (V2) : 0
+            8042 Present on ports 60/64 (V2) : 0
+                        VGA Not Present (V4) : 0
+                      MSI Not Supported (V4) : 0
+                PCIe ASPM Not Supported (V4) : 0
+                   CMOS RTC Not Present (V5) : 0
+[06Fh 0111   1]                     Reserved : 00
+[070h 0112   4]        Flags (decoded below) : 000080A5
+      WBINVD instruction is operational (V1) : 1
+              WBINVD flushes all caches (V1) : 0
+                    All CPUs support C1 (V1) : 1
+                  C2 works on MP system (V1) : 0
+            Control Method Power Button (V1) : 0
+            Control Method Sleep Button (V1) : 1
+        RTC wake not in fixed reg space (V1) : 0
+            RTC can wake system from S4 (V1) : 1
+                        32-bit PM Timer (V1) : 0
+                      Docking Supported (V1) : 0
+               Reset Register Supported (V2) : 0
+                            Sealed Case (V3) : 0
+                    Headless - No Video (V3) : 0
+        Use native instr after SLP_TYPx (V3) : 0
+              PCIEXP_WAK Bits Supported (V4) : 0
+                     Use Platform Timer (V4) : 1
+               RTC_STS valid on S4 wake (V4) : 0
+                Remote Power-on capable (V4) : 0
+                 Use APIC Cluster Model (V4) : 0
+     Use APIC Physical Destination Mode (V4) : 0
+                       Hardware Reduced (V5) : 0
+                      Low Power S0 Idle (V5) : 0
+
+Raw Table Data: Length 116 (0x74)
+
+    0000: 46 41 43 50 74 00 00 00 01 A1 42 4F 43 48 53 20  // FACPt.....BOCHS 
+    0010: 42 58 50 43 46 41 43 50 01 00 00 00 42 58 50 43  // BXPCFACP....BXPC
+    0020: 01 00 00 00 00 00 00 00 00 00 00 00 01 00 09 00  // ................
+    0030: B2 00 00 00 F1 F0 00 00 00 06 00 00 00 00 00 00  // ................
+    0040: 04 06 00 00 00 00 00 00 00 00 00 00 08 06 00 00  // ................
+    0050: E0 AF 00 00 00 00 00 00 04 02 00 04 04 00 00 00  // ................
+    0060: FF 0F FF 0F 00 00 00 00 00 00 00 00 32 00 00 00  // ............2...
+    0070: A5 80 00 00                                      // ....
diff --git a/tests/data/acpi/pc/FACP.memhp b/tests/data/acpi/pc/FACP.memhp
new file mode 100644
index 0000000000000000000000000000000000000000..261ebdc5d1c3bdf18fb7935314a04fd7f6f92a7a
GIT binary patch
literal 116
zcmZ>BbPgzCU|?We=;ZJ05v<@85#a0w6k`O6f!H7#1{fJQ88!hqA3p#IHi#$-lm_uQ
ffb0kBq2f#oEG$6gfBygc5D^9jBOqgG0|Ns9?p_Z8

literal 0
HcmV?d00001

diff --git a/tests/data/acpi/pc/FACP.memhp.dsl b/tests/data/acpi/pc/FACP.memhp.dsl
new file mode 100644
index 0000000000..b2c466e989
--- /dev/null
+++ b/tests/data/acpi/pc/FACP.memhp.dsl
@@ -0,0 +1,99 @@ 
+/*
+ * Intel ACPI Component Architecture
+ * AML/ASL+ Disassembler version 20190509 (64-bit version)
+ * Copyright (c) 2000 - 2019 Intel Corporation
+ * 
+ * Disassembly of tests/data/acpi/pc/FACP.memhp, Tue Aug  4 11:14:15 2020
+ *
+ * ACPI Data Table [FACP]
+ *
+ * Format: [HexOffset DecimalOffset ByteLength]  FieldName : FieldValue
+ */
+
+[000h 0000   4]                    Signature : "FACP"    [Fixed ACPI Description Table (FADT)]
+[004h 0004   4]                 Table Length : 00000074
+[008h 0008   1]                     Revision : 01
+[009h 0009   1]                     Checksum : A1
+[00Ah 0010   6]                       Oem ID : "BOCHS "
+[010h 0016   8]                 Oem Table ID : "BXPCFACP"
+[018h 0024   4]                 Oem Revision : 00000001
+[01Ch 0028   4]              Asl Compiler ID : "BXPC"
+[020h 0032   4]        Asl Compiler Revision : 00000001
+
+[024h 0036   4]                 FACS Address : 00000000
+[028h 0040   4]                 DSDT Address : 00000000
+[02Ch 0044   1]                        Model : 01
+[02Dh 0045   1]                   PM Profile : 00 [Unspecified]
+[02Eh 0046   2]                SCI Interrupt : 0009
+[030h 0048   4]             SMI Command Port : 000000B2
+[034h 0052   1]            ACPI Enable Value : F1
+[035h 0053   1]           ACPI Disable Value : F0
+[036h 0054   1]               S4BIOS Command : 00
+[037h 0055   1]              P-State Control : 00
+[038h 0056   4]     PM1A Event Block Address : 00000600
+[03Ch 0060   4]     PM1B Event Block Address : 00000000
+[040h 0064   4]   PM1A Control Block Address : 00000604
+[044h 0068   4]   PM1B Control Block Address : 00000000
+[048h 0072   4]    PM2 Control Block Address : 00000000
+[04Ch 0076   4]       PM Timer Block Address : 00000608
+[050h 0080   4]           GPE0 Block Address : 0000AFE0
+[054h 0084   4]           GPE1 Block Address : 00000000
+[058h 0088   1]       PM1 Event Block Length : 04
+[059h 0089   1]     PM1 Control Block Length : 02
+[05Ah 0090   1]     PM2 Control Block Length : 00
+[05Bh 0091   1]        PM Timer Block Length : 04
+[05Ch 0092   1]            GPE0 Block Length : 04
+[05Dh 0093   1]            GPE1 Block Length : 00
+[05Eh 0094   1]             GPE1 Base Offset : 00
+[05Fh 0095   1]                 _CST Support : 00
+[060h 0096   2]                   C2 Latency : 0FFF
+[062h 0098   2]                   C3 Latency : 0FFF
+[064h 0100   2]               CPU Cache Size : 0000
+[066h 0102   2]           Cache Flush Stride : 0000
+[068h 0104   1]            Duty Cycle Offset : 00
+[069h 0105   1]             Duty Cycle Width : 00
+[06Ah 0106   1]          RTC Day Alarm Index : 00
+[06Bh 0107   1]        RTC Month Alarm Index : 00
+[06Ch 0108   1]            RTC Century Index : 32
+[06Dh 0109   2]   Boot Flags (decoded below) : 0000
+               Legacy Devices Supported (V2) : 0
+            8042 Present on ports 60/64 (V2) : 0
+                        VGA Not Present (V4) : 0
+                      MSI Not Supported (V4) : 0
+                PCIe ASPM Not Supported (V4) : 0
+                   CMOS RTC Not Present (V5) : 0
+[06Fh 0111   1]                     Reserved : 00
+[070h 0112   4]        Flags (decoded below) : 000080A5
+      WBINVD instruction is operational (V1) : 1
+              WBINVD flushes all caches (V1) : 0
+                    All CPUs support C1 (V1) : 1
+                  C2 works on MP system (V1) : 0
+            Control Method Power Button (V1) : 0
+            Control Method Sleep Button (V1) : 1
+        RTC wake not in fixed reg space (V1) : 0
+            RTC can wake system from S4 (V1) : 1
+                        32-bit PM Timer (V1) : 0
+                      Docking Supported (V1) : 0
+               Reset Register Supported (V2) : 0
+                            Sealed Case (V3) : 0
+                    Headless - No Video (V3) : 0
+        Use native instr after SLP_TYPx (V3) : 0
+              PCIEXP_WAK Bits Supported (V4) : 0
+                     Use Platform Timer (V4) : 1
+               RTC_STS valid on S4 wake (V4) : 0
+                Remote Power-on capable (V4) : 0
+                 Use APIC Cluster Model (V4) : 0
+     Use APIC Physical Destination Mode (V4) : 0
+                       Hardware Reduced (V5) : 0
+                      Low Power S0 Idle (V5) : 0
+
+Raw Table Data: Length 116 (0x74)
+
+    0000: 46 41 43 50 74 00 00 00 01 A1 42 4F 43 48 53 20  // FACPt.....BOCHS 
+    0010: 42 58 50 43 46 41 43 50 01 00 00 00 42 58 50 43  // BXPCFACP....BXPC
+    0020: 01 00 00 00 00 00 00 00 00 00 00 00 01 00 09 00  // ................
+    0030: B2 00 00 00 F1 F0 00 00 00 06 00 00 00 00 00 00  // ................
+    0040: 04 06 00 00 00 00 00 00 00 00 00 00 08 06 00 00  // ................
+    0050: E0 AF 00 00 00 00 00 00 04 02 00 04 04 00 00 00  // ................
+    0060: FF 0F FF 0F 00 00 00 00 00 00 00 00 32 00 00 00  // ............2...
+    0070: A5 80 00 00                                      // ....
diff --git a/tests/data/acpi/pc/FACP.numamem b/tests/data/acpi/pc/FACP.numamem
new file mode 100644
index 0000000000000000000000000000000000000000..261ebdc5d1c3bdf18fb7935314a04fd7f6f92a7a
GIT binary patch
literal 116
zcmZ>BbPgzCU|?We=;ZJ05v<@85#a0w6k`O6f!H7#1{fJQ88!hqA3p#IHi#$-lm_uQ
ffb0kBq2f#oEG$6gfBygc5D^9jBOqgG0|Ns9?p_Z8

literal 0
HcmV?d00001

diff --git a/tests/data/acpi/pc/FACP.numamem.dsl b/tests/data/acpi/pc/FACP.numamem.dsl
new file mode 100644
index 0000000000..34ed95d536
--- /dev/null
+++ b/tests/data/acpi/pc/FACP.numamem.dsl
@@ -0,0 +1,99 @@ 
+/*
+ * Intel ACPI Component Architecture
+ * AML/ASL+ Disassembler version 20190509 (64-bit version)
+ * Copyright (c) 2000 - 2019 Intel Corporation
+ * 
+ * Disassembly of tests/data/acpi/pc/FACP.numamem, Tue Aug  4 11:14:15 2020
+ *
+ * ACPI Data Table [FACP]
+ *
+ * Format: [HexOffset DecimalOffset ByteLength]  FieldName : FieldValue
+ */
+
+[000h 0000   4]                    Signature : "FACP"    [Fixed ACPI Description Table (FADT)]
+[004h 0004   4]                 Table Length : 00000074
+[008h 0008   1]                     Revision : 01
+[009h 0009   1]                     Checksum : A1
+[00Ah 0010   6]                       Oem ID : "BOCHS "
+[010h 0016   8]                 Oem Table ID : "BXPCFACP"
+[018h 0024   4]                 Oem Revision : 00000001
+[01Ch 0028   4]              Asl Compiler ID : "BXPC"
+[020h 0032   4]        Asl Compiler Revision : 00000001
+
+[024h 0036   4]                 FACS Address : 00000000
+[028h 0040   4]                 DSDT Address : 00000000
+[02Ch 0044   1]                        Model : 01
+[02Dh 0045   1]                   PM Profile : 00 [Unspecified]
+[02Eh 0046   2]                SCI Interrupt : 0009
+[030h 0048   4]             SMI Command Port : 000000B2
+[034h 0052   1]            ACPI Enable Value : F1
+[035h 0053   1]           ACPI Disable Value : F0
+[036h 0054   1]               S4BIOS Command : 00
+[037h 0055   1]              P-State Control : 00
+[038h 0056   4]     PM1A Event Block Address : 00000600
+[03Ch 0060   4]     PM1B Event Block Address : 00000000
+[040h 0064   4]   PM1A Control Block Address : 00000604
+[044h 0068   4]   PM1B Control Block Address : 00000000
+[048h 0072   4]    PM2 Control Block Address : 00000000
+[04Ch 0076   4]       PM Timer Block Address : 00000608
+[050h 0080   4]           GPE0 Block Address : 0000AFE0
+[054h 0084   4]           GPE1 Block Address : 00000000
+[058h 0088   1]       PM1 Event Block Length : 04
+[059h 0089   1]     PM1 Control Block Length : 02
+[05Ah 0090   1]     PM2 Control Block Length : 00
+[05Bh 0091   1]        PM Timer Block Length : 04
+[05Ch 0092   1]            GPE0 Block Length : 04
+[05Dh 0093   1]            GPE1 Block Length : 00
+[05Eh 0094   1]             GPE1 Base Offset : 00
+[05Fh 0095   1]                 _CST Support : 00
+[060h 0096   2]                   C2 Latency : 0FFF
+[062h 0098   2]                   C3 Latency : 0FFF
+[064h 0100   2]               CPU Cache Size : 0000
+[066h 0102   2]           Cache Flush Stride : 0000
+[068h 0104   1]            Duty Cycle Offset : 00
+[069h 0105   1]             Duty Cycle Width : 00
+[06Ah 0106   1]          RTC Day Alarm Index : 00
+[06Bh 0107   1]        RTC Month Alarm Index : 00
+[06Ch 0108   1]            RTC Century Index : 32
+[06Dh 0109   2]   Boot Flags (decoded below) : 0000
+               Legacy Devices Supported (V2) : 0
+            8042 Present on ports 60/64 (V2) : 0
+                        VGA Not Present (V4) : 0
+                      MSI Not Supported (V4) : 0
+                PCIe ASPM Not Supported (V4) : 0
+                   CMOS RTC Not Present (V5) : 0
+[06Fh 0111   1]                     Reserved : 00
+[070h 0112   4]        Flags (decoded below) : 000080A5
+      WBINVD instruction is operational (V1) : 1
+              WBINVD flushes all caches (V1) : 0
+                    All CPUs support C1 (V1) : 1
+                  C2 works on MP system (V1) : 0
+            Control Method Power Button (V1) : 0
+            Control Method Sleep Button (V1) : 1
+        RTC wake not in fixed reg space (V1) : 0
+            RTC can wake system from S4 (V1) : 1
+                        32-bit PM Timer (V1) : 0
+                      Docking Supported (V1) : 0
+               Reset Register Supported (V2) : 0
+                            Sealed Case (V3) : 0
+                    Headless - No Video (V3) : 0
+        Use native instr after SLP_TYPx (V3) : 0
+              PCIEXP_WAK Bits Supported (V4) : 0
+                     Use Platform Timer (V4) : 1
+               RTC_STS valid on S4 wake (V4) : 0
+                Remote Power-on capable (V4) : 0
+                 Use APIC Cluster Model (V4) : 0
+     Use APIC Physical Destination Mode (V4) : 0
+                       Hardware Reduced (V5) : 0
+                      Low Power S0 Idle (V5) : 0
+
+Raw Table Data: Length 116 (0x74)
+
+    0000: 46 41 43 50 74 00 00 00 01 A1 42 4F 43 48 53 20  // FACPt.....BOCHS 
+    0010: 42 58 50 43 46 41 43 50 01 00 00 00 42 58 50 43  // BXPCFACP....BXPC
+    0020: 01 00 00 00 00 00 00 00 00 00 00 00 01 00 09 00  // ................
+    0030: B2 00 00 00 F1 F0 00 00 00 06 00 00 00 00 00 00  // ................
+    0040: 04 06 00 00 00 00 00 00 00 00 00 00 08 06 00 00  // ................
+    0050: E0 AF 00 00 00 00 00 00 04 02 00 04 04 00 00 00  // ................
+    0060: FF 0F FF 0F 00 00 00 00 00 00 00 00 32 00 00 00  // ............2...
+    0070: A5 80 00 00                                      // ....
diff --git a/tests/data/acpi/pc/FACP.roothp b/tests/data/acpi/pc/FACP.roothp
new file mode 100644
index 0000000000000000000000000000000000000000..261ebdc5d1c3bdf18fb7935314a04fd7f6f92a7a
GIT binary patch
literal 116
zcmZ>BbPgzCU|?We=;ZJ05v<@85#a0w6k`O6f!H7#1{fJQ88!hqA3p#IHi#$-lm_uQ
ffb0kBq2f#oEG$6gfBygc5D^9jBOqgG0|Ns9?p_Z8

literal 0
HcmV?d00001

diff --git a/tests/data/acpi/pc/FACS.acpihmat b/tests/data/acpi/pc/FACS.acpihmat
new file mode 100644
index 0000000000000000000000000000000000000000..fc67ecc40782bd7fe8921e430d7de67f0bfaad93
GIT binary patch
literal 64
PcmZ>BbPjf4ARhn#RKNjV

literal 0
HcmV?d00001

diff --git a/tests/data/acpi/pc/FACS.acpihmat.dsl b/tests/data/acpi/pc/FACS.acpihmat.dsl
new file mode 100644
index 0000000000..bff165ba4e
--- /dev/null
+++ b/tests/data/acpi/pc/FACS.acpihmat.dsl
@@ -0,0 +1,32 @@ 
+/*
+ * Intel ACPI Component Architecture
+ * AML/ASL+ Disassembler version 20190509 (64-bit version)
+ * Copyright (c) 2000 - 2019 Intel Corporation
+ * 
+ * Disassembly of tests/data/acpi/pc/FACS.acpihmat, Tue Aug  4 11:14:15 2020
+ *
+ * ACPI Data Table [FACS]
+ *
+ * Format: [HexOffset DecimalOffset ByteLength]  FieldName : FieldValue
+ */
+
+[000h 0000   4]                    Signature : "FACS"
+[004h 0004   4]                       Length : 00000040
+[008h 0008   4]           Hardware Signature : 00000000
+[00Ch 0012   4]    32 Firmware Waking Vector : 00000000
+[010h 0016   4]                  Global Lock : 00000000
+[014h 0020   4]        Flags (decoded below) : 00000000
+                      S4BIOS Support Present : 0
+                  64-bit Wake Supported (V2) : 0
+[018h 0024   8]    64 Firmware Waking Vector : 0000000000000000
+[020h 0032   1]                      Version : 00
+[021h 0033   3]                     Reserved : 000000
+[024h 0036   4]    OspmFlags (decoded below) : 00000000
+               64-bit Wake Env Required (V2) : 0
+
+Raw Table Data: Length 64 (0x40)
+
+    0000: 46 41 43 53 40 00 00 00 00 00 00 00 00 00 00 00  // FACS@...........
+    0010: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  // ................
+    0020: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  // ................
+    0030: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  // ................
diff --git a/tests/data/acpi/pc/FACS.bridge b/tests/data/acpi/pc/FACS.bridge
new file mode 100644
index 0000000000000000000000000000000000000000..fc67ecc40782bd7fe8921e430d7de67f0bfaad93
GIT binary patch
literal 64
PcmZ>BbPjf4ARhn#RKNjV

literal 0
HcmV?d00001

diff --git a/tests/data/acpi/pc/FACS.bridge.dsl b/tests/data/acpi/pc/FACS.bridge.dsl
new file mode 100644
index 0000000000..981354f0f3
--- /dev/null
+++ b/tests/data/acpi/pc/FACS.bridge.dsl
@@ -0,0 +1,32 @@ 
+/*
+ * Intel ACPI Component Architecture
+ * AML/ASL+ Disassembler version 20190509 (64-bit version)
+ * Copyright (c) 2000 - 2019 Intel Corporation
+ * 
+ * Disassembly of tests/data/acpi/pc/FACS.bridge, Tue Aug  4 11:14:15 2020
+ *
+ * ACPI Data Table [FACS]
+ *
+ * Format: [HexOffset DecimalOffset ByteLength]  FieldName : FieldValue
+ */
+
+[000h 0000   4]                    Signature : "FACS"
+[004h 0004   4]                       Length : 00000040
+[008h 0008   4]           Hardware Signature : 00000000
+[00Ch 0012   4]    32 Firmware Waking Vector : 00000000
+[010h 0016   4]                  Global Lock : 00000000
+[014h 0020   4]        Flags (decoded below) : 00000000
+                      S4BIOS Support Present : 0
+                  64-bit Wake Supported (V2) : 0
+[018h 0024   8]    64 Firmware Waking Vector : 0000000000000000
+[020h 0032   1]                      Version : 00
+[021h 0033   3]                     Reserved : 000000
+[024h 0036   4]    OspmFlags (decoded below) : 00000000
+               64-bit Wake Env Required (V2) : 0
+
+Raw Table Data: Length 64 (0x40)
+
+    0000: 46 41 43 53 40 00 00 00 00 00 00 00 00 00 00 00  // FACS@...........
+    0010: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  // ................
+    0020: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  // ................
+    0030: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  // ................
diff --git a/tests/data/acpi/pc/FACS.cphp b/tests/data/acpi/pc/FACS.cphp
new file mode 100644
index 0000000000000000000000000000000000000000..fc67ecc40782bd7fe8921e430d7de67f0bfaad93
GIT binary patch
literal 64
PcmZ>BbPjf4ARhn#RKNjV

literal 0
HcmV?d00001

diff --git a/tests/data/acpi/pc/FACS.cphp.dsl b/tests/data/acpi/pc/FACS.cphp.dsl
new file mode 100644
index 0000000000..bb44e525b9
--- /dev/null
+++ b/tests/data/acpi/pc/FACS.cphp.dsl
@@ -0,0 +1,32 @@ 
+/*
+ * Intel ACPI Component Architecture
+ * AML/ASL+ Disassembler version 20190509 (64-bit version)
+ * Copyright (c) 2000 - 2019 Intel Corporation
+ * 
+ * Disassembly of tests/data/acpi/pc/FACS.cphp, Tue Aug  4 11:14:15 2020
+ *
+ * ACPI Data Table [FACS]
+ *
+ * Format: [HexOffset DecimalOffset ByteLength]  FieldName : FieldValue
+ */
+
+[000h 0000   4]                    Signature : "FACS"
+[004h 0004   4]                       Length : 00000040
+[008h 0008   4]           Hardware Signature : 00000000
+[00Ch 0012   4]    32 Firmware Waking Vector : 00000000
+[010h 0016   4]                  Global Lock : 00000000
+[014h 0020   4]        Flags (decoded below) : 00000000
+                      S4BIOS Support Present : 0
+                  64-bit Wake Supported (V2) : 0
+[018h 0024   8]    64 Firmware Waking Vector : 0000000000000000
+[020h 0032   1]                      Version : 00
+[021h 0033   3]                     Reserved : 000000
+[024h 0036   4]    OspmFlags (decoded below) : 00000000
+               64-bit Wake Env Required (V2) : 0
+
+Raw Table Data: Length 64 (0x40)
+
+    0000: 46 41 43 53 40 00 00 00 00 00 00 00 00 00 00 00  // FACS@...........
+    0010: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  // ................
+    0020: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  // ................
+    0030: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  // ................
diff --git a/tests/data/acpi/pc/FACS.dimmpxm b/tests/data/acpi/pc/FACS.dimmpxm
new file mode 100644
index 0000000000000000000000000000000000000000..fc67ecc40782bd7fe8921e430d7de67f0bfaad93
GIT binary patch
literal 64
PcmZ>BbPjf4ARhn#RKNjV

literal 0
HcmV?d00001

diff --git a/tests/data/acpi/pc/FACS.dimmpxm.dsl b/tests/data/acpi/pc/FACS.dimmpxm.dsl
new file mode 100644
index 0000000000..e7586d3236
--- /dev/null
+++ b/tests/data/acpi/pc/FACS.dimmpxm.dsl
@@ -0,0 +1,32 @@ 
+/*
+ * Intel ACPI Component Architecture
+ * AML/ASL+ Disassembler version 20190509 (64-bit version)
+ * Copyright (c) 2000 - 2019 Intel Corporation
+ * 
+ * Disassembly of tests/data/acpi/pc/FACS.dimmpxm, Tue Aug  4 11:14:15 2020
+ *
+ * ACPI Data Table [FACS]
+ *
+ * Format: [HexOffset DecimalOffset ByteLength]  FieldName : FieldValue
+ */
+
+[000h 0000   4]                    Signature : "FACS"
+[004h 0004   4]                       Length : 00000040
+[008h 0008   4]           Hardware Signature : 00000000
+[00Ch 0012   4]    32 Firmware Waking Vector : 00000000
+[010h 0016   4]                  Global Lock : 00000000
+[014h 0020   4]        Flags (decoded below) : 00000000
+                      S4BIOS Support Present : 0
+                  64-bit Wake Supported (V2) : 0
+[018h 0024   8]    64 Firmware Waking Vector : 0000000000000000
+[020h 0032   1]                      Version : 00
+[021h 0033   3]                     Reserved : 000000
+[024h 0036   4]    OspmFlags (decoded below) : 00000000
+               64-bit Wake Env Required (V2) : 0
+
+Raw Table Data: Length 64 (0x40)
+
+    0000: 46 41 43 53 40 00 00 00 00 00 00 00 00 00 00 00  // FACS@...........
+    0010: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  // ................
+    0020: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  // ................
+    0030: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  // ................
diff --git a/tests/data/acpi/pc/FACS.dsl b/tests/data/acpi/pc/FACS.dsl
new file mode 100644
index 0000000000..11d622cdf7
--- /dev/null
+++ b/tests/data/acpi/pc/FACS.dsl
@@ -0,0 +1,32 @@ 
+/*
+ * Intel ACPI Component Architecture
+ * AML/ASL+ Disassembler version 20190509 (64-bit version)
+ * Copyright (c) 2000 - 2019 Intel Corporation
+ * 
+ * Disassembly of tests/data/acpi/pc/FACS.roothp, Mon Sep 28 17:24:38 2020
+ *
+ * ACPI Data Table [FACS]
+ *
+ * Format: [HexOffset DecimalOffset ByteLength]  FieldName : FieldValue
+ */
+
+[000h 0000   4]                    Signature : "FACS"
+[004h 0004   4]                       Length : 00000040
+[008h 0008   4]           Hardware Signature : 00000000
+[00Ch 0012   4]    32 Firmware Waking Vector : 00000000
+[010h 0016   4]                  Global Lock : 00000000
+[014h 0020   4]        Flags (decoded below) : 00000000
+                      S4BIOS Support Present : 0
+                  64-bit Wake Supported (V2) : 0
+[018h 0024   8]    64 Firmware Waking Vector : 0000000000000000
+[020h 0032   1]                      Version : 00
+[021h 0033   3]                     Reserved : 000000
+[024h 0036   4]    OspmFlags (decoded below) : 00000000
+               64-bit Wake Env Required (V2) : 0
+
+Raw Table Data: Length 64 (0x40)
+
+    0000: 46 41 43 53 40 00 00 00 00 00 00 00 00 00 00 00  // FACS@...........
+    0010: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  // ................
+    0020: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  // ................
+    0030: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  // ................
diff --git a/tests/data/acpi/pc/FACS.hpbridge b/tests/data/acpi/pc/FACS.hpbridge
new file mode 100644
index 0000000000000000000000000000000000000000..fc67ecc40782bd7fe8921e430d7de67f0bfaad93
GIT binary patch
literal 64
PcmZ>BbPjf4ARhn#RKNjV

literal 0
HcmV?d00001

diff --git a/tests/data/acpi/pc/FACS.ipmikcs b/tests/data/acpi/pc/FACS.ipmikcs
new file mode 100644
index 0000000000000000000000000000000000000000..fc67ecc40782bd7fe8921e430d7de67f0bfaad93
GIT binary patch
literal 64
PcmZ>BbPjf4ARhn#RKNjV

literal 0
HcmV?d00001

diff --git a/tests/data/acpi/pc/FACS.ipmikcs.dsl b/tests/data/acpi/pc/FACS.ipmikcs.dsl
new file mode 100644
index 0000000000..f4b7c9718c
--- /dev/null
+++ b/tests/data/acpi/pc/FACS.ipmikcs.dsl
@@ -0,0 +1,32 @@ 
+/*
+ * Intel ACPI Component Architecture
+ * AML/ASL+ Disassembler version 20190509 (64-bit version)
+ * Copyright (c) 2000 - 2019 Intel Corporation
+ * 
+ * Disassembly of tests/data/acpi/pc/FACS.ipmikcs, Tue Aug  4 11:14:15 2020
+ *
+ * ACPI Data Table [FACS]
+ *
+ * Format: [HexOffset DecimalOffset ByteLength]  FieldName : FieldValue
+ */
+
+[000h 0000   4]                    Signature : "FACS"
+[004h 0004   4]                       Length : 00000040
+[008h 0008   4]           Hardware Signature : 00000000
+[00Ch 0012   4]    32 Firmware Waking Vector : 00000000
+[010h 0016   4]                  Global Lock : 00000000
+[014h 0020   4]        Flags (decoded below) : 00000000
+                      S4BIOS Support Present : 0
+                  64-bit Wake Supported (V2) : 0
+[018h 0024   8]    64 Firmware Waking Vector : 0000000000000000
+[020h 0032   1]                      Version : 00
+[021h 0033   3]                     Reserved : 000000
+[024h 0036   4]    OspmFlags (decoded below) : 00000000
+               64-bit Wake Env Required (V2) : 0
+
+Raw Table Data: Length 64 (0x40)
+
+    0000: 46 41 43 53 40 00 00 00 00 00 00 00 00 00 00 00  // FACS@...........
+    0010: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  // ................
+    0020: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  // ................
+    0030: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  // ................
diff --git a/tests/data/acpi/pc/FACS.memhp b/tests/data/acpi/pc/FACS.memhp
new file mode 100644
index 0000000000000000000000000000000000000000..fc67ecc40782bd7fe8921e430d7de67f0bfaad93
GIT binary patch
literal 64
PcmZ>BbPjf4ARhn#RKNjV

literal 0
HcmV?d00001

diff --git a/tests/data/acpi/pc/FACS.memhp.dsl b/tests/data/acpi/pc/FACS.memhp.dsl
new file mode 100644
index 0000000000..da2e230a62
--- /dev/null
+++ b/tests/data/acpi/pc/FACS.memhp.dsl
@@ -0,0 +1,32 @@ 
+/*
+ * Intel ACPI Component Architecture
+ * AML/ASL+ Disassembler version 20190509 (64-bit version)
+ * Copyright (c) 2000 - 2019 Intel Corporation
+ * 
+ * Disassembly of tests/data/acpi/pc/FACS.memhp, Tue Aug  4 11:14:15 2020
+ *
+ * ACPI Data Table [FACS]
+ *
+ * Format: [HexOffset DecimalOffset ByteLength]  FieldName : FieldValue
+ */
+
+[000h 0000   4]                    Signature : "FACS"
+[004h 0004   4]                       Length : 00000040
+[008h 0008   4]           Hardware Signature : 00000000
+[00Ch 0012   4]    32 Firmware Waking Vector : 00000000
+[010h 0016   4]                  Global Lock : 00000000
+[014h 0020   4]        Flags (decoded below) : 00000000
+                      S4BIOS Support Present : 0
+                  64-bit Wake Supported (V2) : 0
+[018h 0024   8]    64 Firmware Waking Vector : 0000000000000000
+[020h 0032   1]                      Version : 00
+[021h 0033   3]                     Reserved : 000000
+[024h 0036   4]    OspmFlags (decoded below) : 00000000
+               64-bit Wake Env Required (V2) : 0
+
+Raw Table Data: Length 64 (0x40)
+
+    0000: 46 41 43 53 40 00 00 00 00 00 00 00 00 00 00 00  // FACS@...........
+    0010: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  // ................
+    0020: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  // ................
+    0030: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  // ................
diff --git a/tests/data/acpi/pc/FACS.numamem b/tests/data/acpi/pc/FACS.numamem
new file mode 100644
index 0000000000000000000000000000000000000000..fc67ecc40782bd7fe8921e430d7de67f0bfaad93
GIT binary patch
literal 64
PcmZ>BbPjf4ARhn#RKNjV

literal 0
HcmV?d00001

diff --git a/tests/data/acpi/pc/FACS.numamem.dsl b/tests/data/acpi/pc/FACS.numamem.dsl
new file mode 100644
index 0000000000..c856f8b230
--- /dev/null
+++ b/tests/data/acpi/pc/FACS.numamem.dsl
@@ -0,0 +1,32 @@ 
+/*
+ * Intel ACPI Component Architecture
+ * AML/ASL+ Disassembler version 20190509 (64-bit version)
+ * Copyright (c) 2000 - 2019 Intel Corporation
+ * 
+ * Disassembly of tests/data/acpi/pc/FACS.numamem, Tue Aug  4 11:14:15 2020
+ *
+ * ACPI Data Table [FACS]
+ *
+ * Format: [HexOffset DecimalOffset ByteLength]  FieldName : FieldValue
+ */
+
+[000h 0000   4]                    Signature : "FACS"
+[004h 0004   4]                       Length : 00000040
+[008h 0008   4]           Hardware Signature : 00000000
+[00Ch 0012   4]    32 Firmware Waking Vector : 00000000
+[010h 0016   4]                  Global Lock : 00000000
+[014h 0020   4]        Flags (decoded below) : 00000000
+                      S4BIOS Support Present : 0
+                  64-bit Wake Supported (V2) : 0
+[018h 0024   8]    64 Firmware Waking Vector : 0000000000000000
+[020h 0032   1]                      Version : 00
+[021h 0033   3]                     Reserved : 000000
+[024h 0036   4]    OspmFlags (decoded below) : 00000000
+               64-bit Wake Env Required (V2) : 0
+
+Raw Table Data: Length 64 (0x40)
+
+    0000: 46 41 43 53 40 00 00 00 00 00 00 00 00 00 00 00  // FACS@...........
+    0010: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  // ................
+    0020: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  // ................
+    0030: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  // ................
diff --git a/tests/data/acpi/pc/FACS.roothp b/tests/data/acpi/pc/FACS.roothp
new file mode 100644
index 0000000000000000000000000000000000000000..fc67ecc40782bd7fe8921e430d7de67f0bfaad93
GIT binary patch
literal 64
PcmZ>BbPjf4ARhn#RKNjV

literal 0
HcmV?d00001

diff --git a/tests/data/acpi/pc/HMAT.acpihmat.dsl b/tests/data/acpi/pc/HMAT.acpihmat.dsl
new file mode 100644
index 0000000000..b55564d383
--- /dev/null
+++ b/tests/data/acpi/pc/HMAT.acpihmat.dsl
@@ -0,0 +1,132 @@ 
+/*
+ * Intel ACPI Component Architecture
+ * AML/ASL+ Disassembler version 20190509 (64-bit version)
+ * Copyright (c) 2000 - 2019 Intel Corporation
+ * 
+ * Disassembly of tests/data/acpi/pc/HMAT.acpihmat, Tue Aug  4 11:14:15 2020
+ *
+ * ACPI Data Table [HMAT]
+ *
+ * Format: [HexOffset DecimalOffset ByteLength]  FieldName : FieldValue
+ */
+
+[000h 0000   4]                    Signature : "HMAT"    [Heterogeneous Memory Attributes Table]
+[004h 0004   4]                 Table Length : 00000118
+[008h 0008   1]                     Revision : 02
+[009h 0009   1]                     Checksum : 98
+[00Ah 0010   6]                       Oem ID : "BOCHS "
+[010h 0016   8]                 Oem Table ID : "BXPCHMAT"
+[018h 0024   4]                 Oem Revision : 00000001
+[01Ch 0028   4]              Asl Compiler ID : "BXPC"
+[020h 0032   4]        Asl Compiler Revision : 00000001
+
+[024h 0036   4]                     Reserved : 00000000
+
+[028h 0040   2]               Structure Type : 0000 [Memory Proximity Domain Attributes]
+[02Ah 0042   2]                     Reserved : 0000
+[02Ch 0044   4]                       Length : 00000028
+[030h 0048   2]        Flags (decoded below) : 0001
+            Processor Proximity Domain Valid : 1
+[032h 0050   2]                    Reserved1 : 0000
+[034h 0052   4]   Processor Proximity Domain : 00000000
+[038h 0056   4]      Memory Proximity Domain : 00000000
+[03Ch 0060   4]                    Reserved2 : 00000000
+[040h 0064   8]                    Reserved3 : 0000000000000000
+[048h 0072   8]                    Reserved4 : 0000000000000000
+
+[050h 0080   2]               Structure Type : 0000 [Memory Proximity Domain Attributes]
+[052h 0082   2]                     Reserved : 0000
+[054h 0084   4]                       Length : 00000028
+[058h 0088   2]        Flags (decoded below) : 0001
+            Processor Proximity Domain Valid : 1
+[05Ah 0090   2]                    Reserved1 : 0000
+[05Ch 0092   4]   Processor Proximity Domain : 00000000
+[060h 0096   4]      Memory Proximity Domain : 00000001
+[064h 0100   4]                    Reserved2 : 00000000
+[068h 0104   8]                    Reserved3 : 0000000000000000
+[070h 0112   8]                    Reserved4 : 0000000000000000
+
+[078h 0120   2]               Structure Type : 0001 [System Locality Latency and Bandwidth Information]
+[07Ah 0122   2]                     Reserved : 0000
+[07Ch 0124   4]                       Length : 00000030
+[080h 0128   1]        Flags (decoded below) : 00
+                            Memory Hierarchy : 0
+[081h 0129   1]                    Data Type : 00
+[082h 0130   2]                    Reserved1 : 0000
+[084h 0132   4] Initiator Proximity Domains # : 00000001
+[088h 0136   4]   Target Proximity Domains # : 00000002
+[08Ch 0140   4]                    Reserved2 : 00000000
+[090h 0144   8]              Entry Base Unit : 00000000000003E8
+[098h 0152   4] Initiator Proximity Domain List : 00000000
+[09Ch 0156   4] Target Proximity Domain List : 00000000
+[0A0h 0160   4] Target Proximity Domain List : 00000001
+[0A4h 0164   2]                        Entry : 0001
+[0A6h 0166   2]                        Entry : FFFE
+
+[0A8h 0168   2]               Structure Type : 0001 [System Locality Latency and Bandwidth Information]
+[0AAh 0170   2]                     Reserved : 0000
+[0ACh 0172   4]                       Length : 00000030
+[0B0h 0176   1]        Flags (decoded below) : 00
+                            Memory Hierarchy : 0
+[0B1h 0177   1]                    Data Type : 03
+[0B2h 0178   2]                    Reserved1 : 0000
+[0B4h 0180   4] Initiator Proximity Domains # : 00000001
+[0B8h 0184   4]   Target Proximity Domains # : 00000002
+[0BCh 0188   4]                    Reserved2 : 00000000
+[0C0h 0192   8]              Entry Base Unit : 0000000000000001
+[0C8h 0200   4] Initiator Proximity Domain List : 00000000
+[0CCh 0204   4] Target Proximity Domain List : 00000000
+[0D0h 0208   4] Target Proximity Domain List : 00000001
+[0D4h 0212   2]                        Entry : FFFE
+[0D6h 0214   2]                        Entry : 7FFF
+
+[0D8h 0216   2]               Structure Type : 0002 [Memory Side Cache Information]
+[0DAh 0218   2]                     Reserved : 0000
+[0DCh 0220   4]                       Length : 00000020
+[0E0h 0224   4]      Memory Proximity Domain : 00000000
+[0E4h 0228   4]                    Reserved1 : 00000000
+[0E8h 0232   8]       Memory Side Cache Size : 0000000000002800
+[0F0h 0240   4] Cache Attributes (decoded below) : 00081111
+                          Total Cache Levels : 1
+                                 Cache Level : 1
+                         Cache Associativity : 1
+                                Write Policy : 1
+                             Cache Line Size : 0008
+[0F4h 0244   2]                    Reserved2 : 0000
+[0F6h 0246   2]              SMBIOS Handle # : 0000
+
+[0F8h 0248   2]               Structure Type : 0002 [Memory Side Cache Information]
+[0FAh 0250   2]                     Reserved : 0000
+[0FCh 0252   4]                       Length : 00000020
+[100h 0256   4]      Memory Proximity Domain : 00000001
+[104h 0260   4]                    Reserved1 : 00000000
+[108h 0264   8]       Memory Side Cache Size : 0000000000002800
+[110h 0272   4] Cache Attributes (decoded below) : 00081111
+                          Total Cache Levels : 1
+                                 Cache Level : 1
+                         Cache Associativity : 1
+                                Write Policy : 1
+                             Cache Line Size : 0008
+[114h 0276   2]                    Reserved2 : 0000
+[116h 0278   2]              SMBIOS Handle # : 0000
+
+Raw Table Data: Length 280 (0x118)
+
+    0000: 48 4D 41 54 18 01 00 00 02 98 42 4F 43 48 53 20  // HMAT......BOCHS 
+    0010: 42 58 50 43 48 4D 41 54 01 00 00 00 42 58 50 43  // BXPCHMAT....BXPC
+    0020: 01 00 00 00 00 00 00 00 00 00 00 00 28 00 00 00  // ............(...
+    0030: 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  // ................
+    0040: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  // ................
+    0050: 00 00 00 00 28 00 00 00 01 00 00 00 00 00 00 00  // ....(...........
+    0060: 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  // ................
+    0070: 00 00 00 00 00 00 00 00 01 00 00 00 30 00 00 00  // ............0...
+    0080: 00 00 00 00 01 00 00 00 02 00 00 00 00 00 00 00  // ................
+    0090: E8 03 00 00 00 00 00 00 00 00 00 00 00 00 00 00  // ................
+    00A0: 01 00 00 00 01 00 FE FF 01 00 00 00 30 00 00 00  // ............0...
+    00B0: 00 03 00 00 01 00 00 00 02 00 00 00 00 00 00 00  // ................
+    00C0: 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  // ................
+    00D0: 01 00 00 00 FE FF FF 7F 02 00 00 00 20 00 00 00  // ............ ...
+    00E0: 00 00 00 00 00 00 00 00 00 28 00 00 00 00 00 00  // .........(......
+    00F0: 11 11 08 00 00 00 00 00 02 00 00 00 20 00 00 00  // ............ ...
+    0100: 01 00 00 00 00 00 00 00 00 28 00 00 00 00 00 00  // .........(......
+    0110: 11 11 08 00 00 00 00 00                          // ........
diff --git a/tests/data/acpi/pc/HMAT.dsl b/tests/data/acpi/pc/HMAT.dsl
new file mode 100644
index 0000000000..8031f62433
--- /dev/null
+++ b/tests/data/acpi/pc/HMAT.dsl
@@ -0,0 +1,132 @@ 
+/*
+ * Intel ACPI Component Architecture
+ * AML/ASL+ Disassembler version 20190509 (64-bit version)
+ * Copyright (c) 2000 - 2019 Intel Corporation
+ * 
+ * Disassembly of tests/data/acpi/pc/HMAT.acpihmat, Mon Sep 28 17:24:38 2020
+ *
+ * ACPI Data Table [HMAT]
+ *
+ * Format: [HexOffset DecimalOffset ByteLength]  FieldName : FieldValue
+ */
+
+[000h 0000   4]                    Signature : "HMAT"    [Heterogeneous Memory Attributes Table]
+[004h 0004   4]                 Table Length : 00000118
+[008h 0008   1]                     Revision : 02
+[009h 0009   1]                     Checksum : 98
+[00Ah 0010   6]                       Oem ID : "BOCHS "
+[010h 0016   8]                 Oem Table ID : "BXPCHMAT"
+[018h 0024   4]                 Oem Revision : 00000001
+[01Ch 0028   4]              Asl Compiler ID : "BXPC"
+[020h 0032   4]        Asl Compiler Revision : 00000001
+
+[024h 0036   4]                     Reserved : 00000000
+
+[028h 0040   2]               Structure Type : 0000 [Memory Proximity Domain Attributes]
+[02Ah 0042   2]                     Reserved : 0000
+[02Ch 0044   4]                       Length : 00000028
+[030h 0048   2]        Flags (decoded below) : 0001
+            Processor Proximity Domain Valid : 1
+[032h 0050   2]                    Reserved1 : 0000
+[034h 0052   4]   Processor Proximity Domain : 00000000
+[038h 0056   4]      Memory Proximity Domain : 00000000
+[03Ch 0060   4]                    Reserved2 : 00000000
+[040h 0064   8]                    Reserved3 : 0000000000000000
+[048h 0072   8]                    Reserved4 : 0000000000000000
+
+[050h 0080   2]               Structure Type : 0000 [Memory Proximity Domain Attributes]
+[052h 0082   2]                     Reserved : 0000
+[054h 0084   4]                       Length : 00000028
+[058h 0088   2]        Flags (decoded below) : 0001
+            Processor Proximity Domain Valid : 1
+[05Ah 0090   2]                    Reserved1 : 0000
+[05Ch 0092   4]   Processor Proximity Domain : 00000000
+[060h 0096   4]      Memory Proximity Domain : 00000001
+[064h 0100   4]                    Reserved2 : 00000000
+[068h 0104   8]                    Reserved3 : 0000000000000000
+[070h 0112   8]                    Reserved4 : 0000000000000000
+
+[078h 0120   2]               Structure Type : 0001 [System Locality Latency and Bandwidth Information]
+[07Ah 0122   2]                     Reserved : 0000
+[07Ch 0124   4]                       Length : 00000030
+[080h 0128   1]        Flags (decoded below) : 00
+                            Memory Hierarchy : 0
+[081h 0129   1]                    Data Type : 00
+[082h 0130   2]                    Reserved1 : 0000
+[084h 0132   4] Initiator Proximity Domains # : 00000001
+[088h 0136   4]   Target Proximity Domains # : 00000002
+[08Ch 0140   4]                    Reserved2 : 00000000
+[090h 0144   8]              Entry Base Unit : 00000000000003E8
+[098h 0152   4] Initiator Proximity Domain List : 00000000
+[09Ch 0156   4] Target Proximity Domain List : 00000000
+[0A0h 0160   4] Target Proximity Domain List : 00000001
+[0A4h 0164   2]                        Entry : 0001
+[0A6h 0166   2]                        Entry : FFFE
+
+[0A8h 0168   2]               Structure Type : 0001 [System Locality Latency and Bandwidth Information]
+[0AAh 0170   2]                     Reserved : 0000
+[0ACh 0172   4]                       Length : 00000030
+[0B0h 0176   1]        Flags (decoded below) : 00
+                            Memory Hierarchy : 0
+[0B1h 0177   1]                    Data Type : 03
+[0B2h 0178   2]                    Reserved1 : 0000
+[0B4h 0180   4] Initiator Proximity Domains # : 00000001
+[0B8h 0184   4]   Target Proximity Domains # : 00000002
+[0BCh 0188   4]                    Reserved2 : 00000000
+[0C0h 0192   8]              Entry Base Unit : 0000000000000001
+[0C8h 0200   4] Initiator Proximity Domain List : 00000000
+[0CCh 0204   4] Target Proximity Domain List : 00000000
+[0D0h 0208   4] Target Proximity Domain List : 00000001
+[0D4h 0212   2]                        Entry : FFFE
+[0D6h 0214   2]                        Entry : 7FFF
+
+[0D8h 0216   2]               Structure Type : 0002 [Memory Side Cache Information]
+[0DAh 0218   2]                     Reserved : 0000
+[0DCh 0220   4]                       Length : 00000020
+[0E0h 0224   4]      Memory Proximity Domain : 00000000
+[0E4h 0228   4]                    Reserved1 : 00000000
+[0E8h 0232   8]       Memory Side Cache Size : 0000000000002800
+[0F0h 0240   4] Cache Attributes (decoded below) : 00081111
+                          Total Cache Levels : 1
+                                 Cache Level : 1
+                         Cache Associativity : 1
+                                Write Policy : 1
+                             Cache Line Size : 0008
+[0F4h 0244   2]                    Reserved2 : 0000
+[0F6h 0246   2]              SMBIOS Handle # : 0000
+
+[0F8h 0248   2]               Structure Type : 0002 [Memory Side Cache Information]
+[0FAh 0250   2]                     Reserved : 0000
+[0FCh 0252   4]                       Length : 00000020
+[100h 0256   4]      Memory Proximity Domain : 00000001
+[104h 0260   4]                    Reserved1 : 00000000
+[108h 0264   8]       Memory Side Cache Size : 0000000000002800
+[110h 0272   4] Cache Attributes (decoded below) : 00081111
+                          Total Cache Levels : 1
+                                 Cache Level : 1
+                         Cache Associativity : 1
+                                Write Policy : 1
+                             Cache Line Size : 0008
+[114h 0276   2]                    Reserved2 : 0000
+[116h 0278   2]              SMBIOS Handle # : 0000
+
+Raw Table Data: Length 280 (0x118)
+
+    0000: 48 4D 41 54 18 01 00 00 02 98 42 4F 43 48 53 20  // HMAT......BOCHS 
+    0010: 42 58 50 43 48 4D 41 54 01 00 00 00 42 58 50 43  // BXPCHMAT....BXPC
+    0020: 01 00 00 00 00 00 00 00 00 00 00 00 28 00 00 00  // ............(...
+    0030: 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  // ................
+    0040: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  // ................
+    0050: 00 00 00 00 28 00 00 00 01 00 00 00 00 00 00 00  // ....(...........
+    0060: 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  // ................
+    0070: 00 00 00 00 00 00 00 00 01 00 00 00 30 00 00 00  // ............0...
+    0080: 00 00 00 00 01 00 00 00 02 00 00 00 00 00 00 00  // ................
+    0090: E8 03 00 00 00 00 00 00 00 00 00 00 00 00 00 00  // ................
+    00A0: 01 00 00 00 01 00 FE FF 01 00 00 00 30 00 00 00  // ............0...
+    00B0: 00 03 00 00 01 00 00 00 02 00 00 00 00 00 00 00  // ................
+    00C0: 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  // ................
+    00D0: 01 00 00 00 FE FF FF 7F 02 00 00 00 20 00 00 00  // ............ ...
+    00E0: 00 00 00 00 00 00 00 00 00 28 00 00 00 00 00 00  // .........(......
+    00F0: 11 11 08 00 00 00 00 00 02 00 00 00 20 00 00 00  // ............ ...
+    0100: 01 00 00 00 00 00 00 00 00 28 00 00 00 00 00 00  // .........(......
+    0110: 11 11 08 00 00 00 00 00                          // ........
diff --git a/tests/data/acpi/pc/HPET.acpihmat b/tests/data/acpi/pc/HPET.acpihmat
new file mode 100644
index 0000000000000000000000000000000000000000..df689b8f99c1c43cfd7d63bdede3bcdfd23b7de1
GIT binary patch
literal 56
xcmeYWa1F6wU|?WmcJg=j2v%^42ypfQiZKGkKx`1rxTviGNCClxe-N610RT2D3IPBB

literal 0
HcmV?d00001

diff --git a/tests/data/acpi/pc/HPET.acpihmat.dsl b/tests/data/acpi/pc/HPET.acpihmat.dsl
new file mode 100644
index 0000000000..9029afb2a2
--- /dev/null
+++ b/tests/data/acpi/pc/HPET.acpihmat.dsl
@@ -0,0 +1,43 @@ 
+/*
+ * Intel ACPI Component Architecture
+ * AML/ASL+ Disassembler version 20190509 (64-bit version)
+ * Copyright (c) 2000 - 2019 Intel Corporation
+ * 
+ * Disassembly of tests/data/acpi/pc/HPET.acpihmat, Tue Aug  4 11:14:15 2020
+ *
+ * ACPI Data Table [HPET]
+ *
+ * Format: [HexOffset DecimalOffset ByteLength]  FieldName : FieldValue
+ */
+
+[000h 0000   4]                    Signature : "HPET"    [High Precision Event Timer table]
+[004h 0004   4]                 Table Length : 00000038
+[008h 0008   1]                     Revision : 01
+[009h 0009   1]                     Checksum : 03
+[00Ah 0010   6]                       Oem ID : "BOCHS "
+[010h 0016   8]                 Oem Table ID : "BXPCHPET"
+[018h 0024   4]                 Oem Revision : 00000001
+[01Ch 0028   4]              Asl Compiler ID : "BXPC"
+[020h 0032   4]        Asl Compiler Revision : 00000001
+
+[024h 0036   4]            Hardware Block ID : 8086A201
+
+[028h 0040  12]         Timer Block Register : [Generic Address Structure]
+[028h 0040   1]                     Space ID : 00 [SystemMemory]
+[029h 0041   1]                    Bit Width : 00
+[02Ah 0042   1]                   Bit Offset : 00
+[02Bh 0043   1]         Encoded Access Width : 00 [Undefined/Legacy]
+[02Ch 0044   8]                      Address : 00000000FED00000
+
+[034h 0052   1]              Sequence Number : 00
+[035h 0053   2]          Minimum Clock Ticks : 0000
+[037h 0055   1]        Flags (decoded below) : 00
+                             4K Page Protect : 0
+                            64K Page Protect : 0
+
+Raw Table Data: Length 56 (0x38)
+
+    0000: 48 50 45 54 38 00 00 00 01 03 42 4F 43 48 53 20  // HPET8.....BOCHS 
+    0010: 42 58 50 43 48 50 45 54 01 00 00 00 42 58 50 43  // BXPCHPET....BXPC
+    0020: 01 00 00 00 01 A2 86 80 00 00 00 00 00 00 D0 FE  // ................
+    0030: 00 00 00 00 00 00 00 00                          // ........
diff --git a/tests/data/acpi/pc/HPET.bridge b/tests/data/acpi/pc/HPET.bridge
new file mode 100644
index 0000000000000000000000000000000000000000..df689b8f99c1c43cfd7d63bdede3bcdfd23b7de1
GIT binary patch
literal 56
xcmeYWa1F6wU|?WmcJg=j2v%^42ypfQiZKGkKx`1rxTviGNCClxe-N610RT2D3IPBB

literal 0
HcmV?d00001

diff --git a/tests/data/acpi/pc/HPET.bridge.dsl b/tests/data/acpi/pc/HPET.bridge.dsl
new file mode 100644
index 0000000000..936616faa8
--- /dev/null
+++ b/tests/data/acpi/pc/HPET.bridge.dsl
@@ -0,0 +1,43 @@ 
+/*
+ * Intel ACPI Component Architecture
+ * AML/ASL+ Disassembler version 20190509 (64-bit version)
+ * Copyright (c) 2000 - 2019 Intel Corporation
+ * 
+ * Disassembly of tests/data/acpi/pc/HPET.bridge, Tue Aug  4 11:14:15 2020
+ *
+ * ACPI Data Table [HPET]
+ *
+ * Format: [HexOffset DecimalOffset ByteLength]  FieldName : FieldValue
+ */
+
+[000h 0000   4]                    Signature : "HPET"    [High Precision Event Timer table]
+[004h 0004   4]                 Table Length : 00000038
+[008h 0008   1]                     Revision : 01
+[009h 0009   1]                     Checksum : 03
+[00Ah 0010   6]                       Oem ID : "BOCHS "
+[010h 0016   8]                 Oem Table ID : "BXPCHPET"
+[018h 0024   4]                 Oem Revision : 00000001
+[01Ch 0028   4]              Asl Compiler ID : "BXPC"
+[020h 0032   4]        Asl Compiler Revision : 00000001
+
+[024h 0036   4]            Hardware Block ID : 8086A201
+
+[028h 0040  12]         Timer Block Register : [Generic Address Structure]
+[028h 0040   1]                     Space ID : 00 [SystemMemory]
+[029h 0041   1]                    Bit Width : 00
+[02Ah 0042   1]                   Bit Offset : 00
+[02Bh 0043   1]         Encoded Access Width : 00 [Undefined/Legacy]
+[02Ch 0044   8]                      Address : 00000000FED00000
+
+[034h 0052   1]              Sequence Number : 00
+[035h 0053   2]          Minimum Clock Ticks : 0000
+[037h 0055   1]        Flags (decoded below) : 00
+                             4K Page Protect : 0
+                            64K Page Protect : 0
+
+Raw Table Data: Length 56 (0x38)
+
+    0000: 48 50 45 54 38 00 00 00 01 03 42 4F 43 48 53 20  // HPET8.....BOCHS 
+    0010: 42 58 50 43 48 50 45 54 01 00 00 00 42 58 50 43  // BXPCHPET....BXPC
+    0020: 01 00 00 00 01 A2 86 80 00 00 00 00 00 00 D0 FE  // ................
+    0030: 00 00 00 00 00 00 00 00                          // ........
diff --git a/tests/data/acpi/pc/HPET.cphp b/tests/data/acpi/pc/HPET.cphp
new file mode 100644
index 0000000000000000000000000000000000000000..df689b8f99c1c43cfd7d63bdede3bcdfd23b7de1
GIT binary patch
literal 56
xcmeYWa1F6wU|?WmcJg=j2v%^42ypfQiZKGkKx`1rxTviGNCClxe-N610RT2D3IPBB

literal 0
HcmV?d00001

diff --git a/tests/data/acpi/pc/HPET.cphp.dsl b/tests/data/acpi/pc/HPET.cphp.dsl
new file mode 100644
index 0000000000..e095a43ee7
--- /dev/null
+++ b/tests/data/acpi/pc/HPET.cphp.dsl
@@ -0,0 +1,43 @@ 
+/*
+ * Intel ACPI Component Architecture
+ * AML/ASL+ Disassembler version 20190509 (64-bit version)
+ * Copyright (c) 2000 - 2019 Intel Corporation
+ * 
+ * Disassembly of tests/data/acpi/pc/HPET.cphp, Tue Aug  4 11:14:15 2020
+ *
+ * ACPI Data Table [HPET]
+ *
+ * Format: [HexOffset DecimalOffset ByteLength]  FieldName : FieldValue
+ */
+
+[000h 0000   4]                    Signature : "HPET"    [High Precision Event Timer table]
+[004h 0004   4]                 Table Length : 00000038
+[008h 0008   1]                     Revision : 01
+[009h 0009   1]                     Checksum : 03
+[00Ah 0010   6]                       Oem ID : "BOCHS "
+[010h 0016   8]                 Oem Table ID : "BXPCHPET"
+[018h 0024   4]                 Oem Revision : 00000001
+[01Ch 0028   4]              Asl Compiler ID : "BXPC"
+[020h 0032   4]        Asl Compiler Revision : 00000001
+
+[024h 0036   4]            Hardware Block ID : 8086A201
+
+[028h 0040  12]         Timer Block Register : [Generic Address Structure]
+[028h 0040   1]                     Space ID : 00 [SystemMemory]
+[029h 0041   1]                    Bit Width : 00
+[02Ah 0042   1]                   Bit Offset : 00
+[02Bh 0043   1]         Encoded Access Width : 00 [Undefined/Legacy]
+[02Ch 0044   8]                      Address : 00000000FED00000
+
+[034h 0052   1]              Sequence Number : 00
+[035h 0053   2]          Minimum Clock Ticks : 0000
+[037h 0055   1]        Flags (decoded below) : 00
+                             4K Page Protect : 0
+                            64K Page Protect : 0
+
+Raw Table Data: Length 56 (0x38)
+
+    0000: 48 50 45 54 38 00 00 00 01 03 42 4F 43 48 53 20  // HPET8.....BOCHS 
+    0010: 42 58 50 43 48 50 45 54 01 00 00 00 42 58 50 43  // BXPCHPET....BXPC
+    0020: 01 00 00 00 01 A2 86 80 00 00 00 00 00 00 D0 FE  // ................
+    0030: 00 00 00 00 00 00 00 00                          // ........
diff --git a/tests/data/acpi/pc/HPET.dimmpxm b/tests/data/acpi/pc/HPET.dimmpxm
new file mode 100644
index 0000000000000000000000000000000000000000..df689b8f99c1c43cfd7d63bdede3bcdfd23b7de1
GIT binary patch
literal 56
xcmeYWa1F6wU|?WmcJg=j2v%^42ypfQiZKGkKx`1rxTviGNCClxe-N610RT2D3IPBB

literal 0
HcmV?d00001

diff --git a/tests/data/acpi/pc/HPET.dimmpxm.dsl b/tests/data/acpi/pc/HPET.dimmpxm.dsl
new file mode 100644
index 0000000000..84ce218492
--- /dev/null
+++ b/tests/data/acpi/pc/HPET.dimmpxm.dsl
@@ -0,0 +1,43 @@ 
+/*
+ * Intel ACPI Component Architecture
+ * AML/ASL+ Disassembler version 20190509 (64-bit version)
+ * Copyright (c) 2000 - 2019 Intel Corporation
+ * 
+ * Disassembly of tests/data/acpi/pc/HPET.dimmpxm, Tue Aug  4 11:14:15 2020
+ *
+ * ACPI Data Table [HPET]
+ *
+ * Format: [HexOffset DecimalOffset ByteLength]  FieldName : FieldValue
+ */
+
+[000h 0000   4]                    Signature : "HPET"    [High Precision Event Timer table]
+[004h 0004   4]                 Table Length : 00000038
+[008h 0008   1]                     Revision : 01
+[009h 0009   1]                     Checksum : 03
+[00Ah 0010   6]                       Oem ID : "BOCHS "
+[010h 0016   8]                 Oem Table ID : "BXPCHPET"
+[018h 0024   4]                 Oem Revision : 00000001
+[01Ch 0028   4]              Asl Compiler ID : "BXPC"
+[020h 0032   4]        Asl Compiler Revision : 00000001
+
+[024h 0036   4]            Hardware Block ID : 8086A201
+
+[028h 0040  12]         Timer Block Register : [Generic Address Structure]
+[028h 0040   1]                     Space ID : 00 [SystemMemory]
+[029h 0041   1]                    Bit Width : 00
+[02Ah 0042   1]                   Bit Offset : 00
+[02Bh 0043   1]         Encoded Access Width : 00 [Undefined/Legacy]
+[02Ch 0044   8]                      Address : 00000000FED00000
+
+[034h 0052   1]              Sequence Number : 00
+[035h 0053   2]          Minimum Clock Ticks : 0000
+[037h 0055   1]        Flags (decoded below) : 00
+                             4K Page Protect : 0
+                            64K Page Protect : 0
+
+Raw Table Data: Length 56 (0x38)
+
+    0000: 48 50 45 54 38 00 00 00 01 03 42 4F 43 48 53 20  // HPET8.....BOCHS 
+    0010: 42 58 50 43 48 50 45 54 01 00 00 00 42 58 50 43  // BXPCHPET....BXPC
+    0020: 01 00 00 00 01 A2 86 80 00 00 00 00 00 00 D0 FE  // ................
+    0030: 00 00 00 00 00 00 00 00                          // ........
diff --git a/tests/data/acpi/pc/HPET.dsl b/tests/data/acpi/pc/HPET.dsl
new file mode 100644
index 0000000000..b392de5c95
--- /dev/null
+++ b/tests/data/acpi/pc/HPET.dsl
@@ -0,0 +1,43 @@ 
+/*
+ * Intel ACPI Component Architecture
+ * AML/ASL+ Disassembler version 20190509 (64-bit version)
+ * Copyright (c) 2000 - 2019 Intel Corporation
+ * 
+ * Disassembly of tests/data/acpi/pc/HPET.roothp, Mon Sep 28 17:24:38 2020
+ *
+ * ACPI Data Table [HPET]
+ *
+ * Format: [HexOffset DecimalOffset ByteLength]  FieldName : FieldValue
+ */
+
+[000h 0000   4]                    Signature : "HPET"    [High Precision Event Timer table]
+[004h 0004   4]                 Table Length : 00000038
+[008h 0008   1]                     Revision : 01
+[009h 0009   1]                     Checksum : 03
+[00Ah 0010   6]                       Oem ID : "BOCHS "
+[010h 0016   8]                 Oem Table ID : "BXPCHPET"
+[018h 0024   4]                 Oem Revision : 00000001
+[01Ch 0028   4]              Asl Compiler ID : "BXPC"
+[020h 0032   4]        Asl Compiler Revision : 00000001
+
+[024h 0036   4]            Hardware Block ID : 8086A201
+
+[028h 0040  12]         Timer Block Register : [Generic Address Structure]
+[028h 0040   1]                     Space ID : 00 [SystemMemory]
+[029h 0041   1]                    Bit Width : 00
+[02Ah 0042   1]                   Bit Offset : 00
+[02Bh 0043   1]         Encoded Access Width : 00 [Undefined/Legacy]
+[02Ch 0044   8]                      Address : 00000000FED00000
+
+[034h 0052   1]              Sequence Number : 00
+[035h 0053   2]          Minimum Clock Ticks : 0000
+[037h 0055   1]        Flags (decoded below) : 00
+                             4K Page Protect : 0
+                            64K Page Protect : 0
+
+Raw Table Data: Length 56 (0x38)
+
+    0000: 48 50 45 54 38 00 00 00 01 03 42 4F 43 48 53 20  // HPET8.....BOCHS 
+    0010: 42 58 50 43 48 50 45 54 01 00 00 00 42 58 50 43  // BXPCHPET....BXPC
+    0020: 01 00 00 00 01 A2 86 80 00 00 00 00 00 00 D0 FE  // ................
+    0030: 00 00 00 00 00 00 00 00                          // ........
diff --git a/tests/data/acpi/pc/HPET.hpbridge b/tests/data/acpi/pc/HPET.hpbridge
new file mode 100644
index 0000000000000000000000000000000000000000..df689b8f99c1c43cfd7d63bdede3bcdfd23b7de1
GIT binary patch
literal 56
xcmeYWa1F6wU|?WmcJg=j2v%^42ypfQiZKGkKx`1rxTviGNCClxe-N610RT2D3IPBB

literal 0
HcmV?d00001

diff --git a/tests/data/acpi/pc/HPET.ipmikcs b/tests/data/acpi/pc/HPET.ipmikcs
new file mode 100644
index 0000000000000000000000000000000000000000..df689b8f99c1c43cfd7d63bdede3bcdfd23b7de1
GIT binary patch
literal 56
xcmeYWa1F6wU|?WmcJg=j2v%^42ypfQiZKGkKx`1rxTviGNCClxe-N610RT2D3IPBB

literal 0
HcmV?d00001

diff --git a/tests/data/acpi/pc/HPET.ipmikcs.dsl b/tests/data/acpi/pc/HPET.ipmikcs.dsl
new file mode 100644
index 0000000000..34d10927dc
--- /dev/null
+++ b/tests/data/acpi/pc/HPET.ipmikcs.dsl
@@ -0,0 +1,43 @@ 
+/*
+ * Intel ACPI Component Architecture
+ * AML/ASL+ Disassembler version 20190509 (64-bit version)
+ * Copyright (c) 2000 - 2019 Intel Corporation
+ * 
+ * Disassembly of tests/data/acpi/pc/HPET.ipmikcs, Tue Aug  4 11:14:15 2020
+ *
+ * ACPI Data Table [HPET]
+ *
+ * Format: [HexOffset DecimalOffset ByteLength]  FieldName : FieldValue
+ */
+
+[000h 0000   4]                    Signature : "HPET"    [High Precision Event Timer table]
+[004h 0004   4]                 Table Length : 00000038
+[008h 0008   1]                     Revision : 01
+[009h 0009   1]                     Checksum : 03
+[00Ah 0010   6]                       Oem ID : "BOCHS "
+[010h 0016   8]                 Oem Table ID : "BXPCHPET"
+[018h 0024   4]                 Oem Revision : 00000001
+[01Ch 0028   4]              Asl Compiler ID : "BXPC"
+[020h 0032   4]        Asl Compiler Revision : 00000001
+
+[024h 0036   4]            Hardware Block ID : 8086A201
+
+[028h 0040  12]         Timer Block Register : [Generic Address Structure]
+[028h 0040   1]                     Space ID : 00 [SystemMemory]
+[029h 0041   1]                    Bit Width : 00
+[02Ah 0042   1]                   Bit Offset : 00
+[02Bh 0043   1]         Encoded Access Width : 00 [Undefined/Legacy]
+[02Ch 0044   8]                      Address : 00000000FED00000
+
+[034h 0052   1]              Sequence Number : 00
+[035h 0053   2]          Minimum Clock Ticks : 0000
+[037h 0055   1]        Flags (decoded below) : 00
+                             4K Page Protect : 0
+                            64K Page Protect : 0
+
+Raw Table Data: Length 56 (0x38)
+
+    0000: 48 50 45 54 38 00 00 00 01 03 42 4F 43 48 53 20  // HPET8.....BOCHS 
+    0010: 42 58 50 43 48 50 45 54 01 00 00 00 42 58 50 43  // BXPCHPET....BXPC
+    0020: 01 00 00 00 01 A2 86 80 00 00 00 00 00 00 D0 FE  // ................
+    0030: 00 00 00 00 00 00 00 00                          // ........
diff --git a/tests/data/acpi/pc/HPET.memhp b/tests/data/acpi/pc/HPET.memhp
new file mode 100644
index 0000000000000000000000000000000000000000..df689b8f99c1c43cfd7d63bdede3bcdfd23b7de1
GIT binary patch
literal 56
xcmeYWa1F6wU|?WmcJg=j2v%^42ypfQiZKGkKx`1rxTviGNCClxe-N610RT2D3IPBB

literal 0
HcmV?d00001

diff --git a/tests/data/acpi/pc/HPET.memhp.dsl b/tests/data/acpi/pc/HPET.memhp.dsl
new file mode 100644
index 0000000000..f9f62dd9c8
--- /dev/null
+++ b/tests/data/acpi/pc/HPET.memhp.dsl
@@ -0,0 +1,43 @@ 
+/*
+ * Intel ACPI Component Architecture
+ * AML/ASL+ Disassembler version 20190509 (64-bit version)
+ * Copyright (c) 2000 - 2019 Intel Corporation
+ * 
+ * Disassembly of tests/data/acpi/pc/HPET.memhp, Tue Aug  4 11:14:15 2020
+ *
+ * ACPI Data Table [HPET]
+ *
+ * Format: [HexOffset DecimalOffset ByteLength]  FieldName : FieldValue
+ */
+
+[000h 0000   4]                    Signature : "HPET"    [High Precision Event Timer table]
+[004h 0004   4]                 Table Length : 00000038
+[008h 0008   1]                     Revision : 01
+[009h 0009   1]                     Checksum : 03
+[00Ah 0010   6]                       Oem ID : "BOCHS "
+[010h 0016   8]                 Oem Table ID : "BXPCHPET"
+[018h 0024   4]                 Oem Revision : 00000001
+[01Ch 0028   4]              Asl Compiler ID : "BXPC"
+[020h 0032   4]        Asl Compiler Revision : 00000001
+
+[024h 0036   4]            Hardware Block ID : 8086A201
+
+[028h 0040  12]         Timer Block Register : [Generic Address Structure]
+[028h 0040   1]                     Space ID : 00 [SystemMemory]
+[029h 0041   1]                    Bit Width : 00
+[02Ah 0042   1]                   Bit Offset : 00
+[02Bh 0043   1]         Encoded Access Width : 00 [Undefined/Legacy]
+[02Ch 0044   8]                      Address : 00000000FED00000
+
+[034h 0052   1]              Sequence Number : 00
+[035h 0053   2]          Minimum Clock Ticks : 0000
+[037h 0055   1]        Flags (decoded below) : 00
+                             4K Page Protect : 0
+                            64K Page Protect : 0
+
+Raw Table Data: Length 56 (0x38)
+
+    0000: 48 50 45 54 38 00 00 00 01 03 42 4F 43 48 53 20  // HPET8.....BOCHS 
+    0010: 42 58 50 43 48 50 45 54 01 00 00 00 42 58 50 43  // BXPCHPET....BXPC
+    0020: 01 00 00 00 01 A2 86 80 00 00 00 00 00 00 D0 FE  // ................
+    0030: 00 00 00 00 00 00 00 00                          // ........
diff --git a/tests/data/acpi/pc/HPET.numamem b/tests/data/acpi/pc/HPET.numamem
new file mode 100644
index 0000000000000000000000000000000000000000..df689b8f99c1c43cfd7d63bdede3bcdfd23b7de1
GIT binary patch
literal 56
xcmeYWa1F6wU|?WmcJg=j2v%^42ypfQiZKGkKx`1rxTviGNCClxe-N610RT2D3IPBB

literal 0
HcmV?d00001

diff --git a/tests/data/acpi/pc/HPET.numamem.dsl b/tests/data/acpi/pc/HPET.numamem.dsl
new file mode 100644
index 0000000000..1f51efad19
--- /dev/null
+++ b/tests/data/acpi/pc/HPET.numamem.dsl
@@ -0,0 +1,43 @@ 
+/*
+ * Intel ACPI Component Architecture
+ * AML/ASL+ Disassembler version 20190509 (64-bit version)
+ * Copyright (c) 2000 - 2019 Intel Corporation
+ * 
+ * Disassembly of tests/data/acpi/pc/HPET.numamem, Tue Aug  4 11:14:15 2020
+ *
+ * ACPI Data Table [HPET]
+ *
+ * Format: [HexOffset DecimalOffset ByteLength]  FieldName : FieldValue
+ */
+
+[000h 0000   4]                    Signature : "HPET"    [High Precision Event Timer table]
+[004h 0004   4]                 Table Length : 00000038
+[008h 0008   1]                     Revision : 01
+[009h 0009   1]                     Checksum : 03
+[00Ah 0010   6]                       Oem ID : "BOCHS "
+[010h 0016   8]                 Oem Table ID : "BXPCHPET"
+[018h 0024   4]                 Oem Revision : 00000001
+[01Ch 0028   4]              Asl Compiler ID : "BXPC"
+[020h 0032   4]        Asl Compiler Revision : 00000001
+
+[024h 0036   4]            Hardware Block ID : 8086A201
+
+[028h 0040  12]         Timer Block Register : [Generic Address Structure]
+[028h 0040   1]                     Space ID : 00 [SystemMemory]
+[029h 0041   1]                    Bit Width : 00
+[02Ah 0042   1]                   Bit Offset : 00
+[02Bh 0043   1]         Encoded Access Width : 00 [Undefined/Legacy]
+[02Ch 0044   8]                      Address : 00000000FED00000
+
+[034h 0052   1]              Sequence Number : 00
+[035h 0053   2]          Minimum Clock Ticks : 0000
+[037h 0055   1]        Flags (decoded below) : 00
+                             4K Page Protect : 0
+                            64K Page Protect : 0
+
+Raw Table Data: Length 56 (0x38)
+
+    0000: 48 50 45 54 38 00 00 00 01 03 42 4F 43 48 53 20  // HPET8.....BOCHS 
+    0010: 42 58 50 43 48 50 45 54 01 00 00 00 42 58 50 43  // BXPCHPET....BXPC
+    0020: 01 00 00 00 01 A2 86 80 00 00 00 00 00 00 D0 FE  // ................
+    0030: 00 00 00 00 00 00 00 00                          // ........
diff --git a/tests/data/acpi/pc/HPET.roothp b/tests/data/acpi/pc/HPET.roothp
new file mode 100644
index 0000000000000000000000000000000000000000..df689b8f99c1c43cfd7d63bdede3bcdfd23b7de1
GIT binary patch
literal 56
xcmeYWa1F6wU|?WmcJg=j2v%^42ypfQiZKGkKx`1rxTviGNCClxe-N610RT2D3IPBB

literal 0
HcmV?d00001

diff --git a/tests/data/acpi/pc/NFIT.dimmpxm.dsl b/tests/data/acpi/pc/NFIT.dimmpxm.dsl
new file mode 100644
index 0000000000..33212b0a17
--- /dev/null
+++ b/tests/data/acpi/pc/NFIT.dimmpxm.dsl
@@ -0,0 +1,115 @@ 
+/*
+ * Intel ACPI Component Architecture
+ * AML/ASL+ Disassembler version 20190509 (64-bit version)
+ * Copyright (c) 2000 - 2019 Intel Corporation
+ * 
+ * Disassembly of tests/data/acpi/pc/NFIT.dimmpxm, Tue Aug  4 11:14:15 2020
+ *
+ * ACPI Data Table [NFIT]
+ *
+ * Format: [HexOffset DecimalOffset ByteLength]  FieldName : FieldValue
+ */
+
+[000h 0000   4]                    Signature : "NFIT"    [NVDIMM Firmware Interface Table]
+[004h 0004   4]                 Table Length : 000000F0
+[008h 0008   1]                     Revision : 01
+[009h 0009   1]                     Checksum : 24
+[00Ah 0010   6]                       Oem ID : "BOCHS "
+[010h 0016   8]                 Oem Table ID : "BXPCNFIT"
+[018h 0024   4]                 Oem Revision : 00000001
+[01Ch 0028   4]              Asl Compiler ID : "BXPC"
+[020h 0032   4]        Asl Compiler Revision : 00000001
+
+[024h 0036   4]                     Reserved : 00000000
+
+[028h 0040   2]                Subtable Type : 0000 [System Physical Address Range]
+[02Ah 0042   2]                       Length : 0038
+
+[02Ch 0044   2]                  Range Index : 0004
+[02Eh 0046   2]        Flags (decoded below) : 0003
+                   Add/Online Operation Only : 1
+                      Proximity Domain Valid : 1
+[030h 0048   4]                     Reserved : 00000000
+[034h 0052   4]             Proximity Domain : 00000002
+[038h 0056  16]             Region Type GUID : 66F0D379-B4F3-4074-AC43-0D3318B78CDB
+[048h 0072   8]           Address Range Base : 0000000108000000
+[050h 0080   8]         Address Range Length : 0000000008000000
+[058h 0088   8]         Memory Map Attribute : 0000000000008008
+
+[060h 0096   2]                Subtable Type : 0001 [Memory Range Map]
+[062h 0098   2]                       Length : 0030
+
+[064h 0100   4]                Device Handle : 00000002
+[068h 0104   2]                  Physical Id : 0000
+[06Ah 0106   2]                    Region Id : 0000
+[06Ch 0108   2]                  Range Index : 0004
+[06Eh 0110   2]         Control Region Index : 0005
+[070h 0112   8]                  Region Size : 0000000008000000
+[078h 0120   8]                Region Offset : 0000000000000000
+[080h 0128   8]          Address Region Base : 0000000000000000
+[088h 0136   2]             Interleave Index : 0000
+[08Ah 0138   2]              Interleave Ways : 0001
+[08Ch 0140   2]                        Flags : 0000
+                       Save to device failed : 0
+                  Restore from device failed : 0
+                       Platform flush failed : 0
+                            Device not armed : 0
+                      Health events observed : 0
+                       Health events enabled : 0
+                              Mapping failed : 0
+[08Eh 0142   2]                     Reserved : 0000
+
+[090h 0144   2]                Subtable Type : 0004 [NVDIMM Control Region]
+[092h 0146   2]                       Length : 0050
+
+[094h 0148   2]                 Region Index : 0005
+[096h 0150   2]                    Vendor Id : 8086
+[098h 0152   2]                    Device Id : 0001
+[09Ah 0154   2]                  Revision Id : 0001
+[09Ch 0156   2]          Subsystem Vendor Id : 0000
+[09Eh 0158   2]          Subsystem Device Id : 0000
+[0A0h 0160   2]        Subsystem Revision Id : 0000
+[0A2h 0162   1]                 Valid Fields : 00
+[0A3h 0163   1]       Manufacturing Location : 00
+[0A4h 0164   2]           Manufacturing Date : 0000
+[0A6h 0166   2]                     Reserved : 0000
+[0A8h 0168   4]                Serial Number : 00123457
+[0ACh 0172   2]                         Code : 0301
+[0AEh 0174   2]                 Window Count : 0000
+[0B0h 0176   8]                  Window Size : 0000000000000000
+[0B8h 0184   8]               Command Offset : 0000000000000000
+[0C0h 0192   8]                 Command Size : 0000000000000000
+[0C8h 0200   8]                Status Offset : 0000000000000000
+[0D0h 0208   8]                  Status Size : 0000000000000000
+[0D8h 0216   2]                        Flags : 0000
+                            Windows buffered : 0
+[0DAh 0218   6]                    Reserved1 : 000000000000
+
+[0E0h 0224   2]                Subtable Type : 0007 [Platform Capabilities]
+[0E2h 0226   2]                       Length : 0010
+
+[0E4h 0228   1]           Highest Capability : 01
+[0E5h 0229   3]                     Reserved : 000000
+[0E8h 0232   4] Capabilities (decoded below) : 00000003
+                       Cache Flush to NVDIMM : 1
+                      Memory Flush to NVDIMM : 1
+                            Memory Mirroring : 0
+[0ECh 0236   4]                     Reserved : 00000000
+
+Raw Table Data: Length 240 (0xF0)
+
+    0000: 4E 46 49 54 F0 00 00 00 01 24 42 4F 43 48 53 20  // NFIT.....$BOCHS 
+    0010: 42 58 50 43 4E 46 49 54 01 00 00 00 42 58 50 43  // BXPCNFIT....BXPC
+    0020: 01 00 00 00 00 00 00 00 00 00 38 00 04 00 03 00  // ..........8.....
+    0030: 00 00 00 00 02 00 00 00 79 D3 F0 66 F3 B4 74 40  // ........y..f..t@
+    0040: AC 43 0D 33 18 B7 8C DB 00 00 00 08 01 00 00 00  // .C.3............
+    0050: 00 00 00 08 00 00 00 00 08 80 00 00 00 00 00 00  // ................
+    0060: 01 00 30 00 02 00 00 00 00 00 00 00 04 00 05 00  // ..0.............
+    0070: 00 00 00 08 00 00 00 00 00 00 00 00 00 00 00 00  // ................
+    0080: 00 00 00 00 00 00 00 00 00 00 01 00 00 00 00 00  // ................
+    0090: 04 00 50 00 05 00 86 80 01 00 01 00 00 00 00 00  // ..P.............
+    00A0: 00 00 00 00 00 00 00 00 57 34 12 00 01 03 00 00  // ........W4......
+    00B0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  // ................
+    00C0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  // ................
+    00D0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  // ................
+    00E0: 07 00 10 00 01 00 00 00 03 00 00 00 00 00 00 00  // ................
diff --git a/tests/data/acpi/pc/NFIT.dsl b/tests/data/acpi/pc/NFIT.dsl
new file mode 100644
index 0000000000..f4a8034f87
--- /dev/null
+++ b/tests/data/acpi/pc/NFIT.dsl
@@ -0,0 +1,115 @@ 
+/*
+ * Intel ACPI Component Architecture
+ * AML/ASL+ Disassembler version 20190509 (64-bit version)
+ * Copyright (c) 2000 - 2019 Intel Corporation
+ * 
+ * Disassembly of tests/data/acpi/pc/NFIT.dimmpxm, Mon Sep 28 17:24:38 2020
+ *
+ * ACPI Data Table [NFIT]
+ *
+ * Format: [HexOffset DecimalOffset ByteLength]  FieldName : FieldValue
+ */
+
+[000h 0000   4]                    Signature : "NFIT"    [NVDIMM Firmware Interface Table]
+[004h 0004   4]                 Table Length : 000000F0
+[008h 0008   1]                     Revision : 01
+[009h 0009   1]                     Checksum : 24
+[00Ah 0010   6]                       Oem ID : "BOCHS "
+[010h 0016   8]                 Oem Table ID : "BXPCNFIT"
+[018h 0024   4]                 Oem Revision : 00000001
+[01Ch 0028   4]              Asl Compiler ID : "BXPC"
+[020h 0032   4]        Asl Compiler Revision : 00000001
+
+[024h 0036   4]                     Reserved : 00000000
+
+[028h 0040   2]                Subtable Type : 0000 [System Physical Address Range]
+[02Ah 0042   2]                       Length : 0038
+
+[02Ch 0044   2]                  Range Index : 0004
+[02Eh 0046   2]        Flags (decoded below) : 0003
+                   Add/Online Operation Only : 1
+                      Proximity Domain Valid : 1
+[030h 0048   4]                     Reserved : 00000000
+[034h 0052   4]             Proximity Domain : 00000002
+[038h 0056  16]             Region Type GUID : 66F0D379-B4F3-4074-AC43-0D3318B78CDB
+[048h 0072   8]           Address Range Base : 0000000108000000
+[050h 0080   8]         Address Range Length : 0000000008000000
+[058h 0088   8]         Memory Map Attribute : 0000000000008008
+
+[060h 0096   2]                Subtable Type : 0001 [Memory Range Map]
+[062h 0098   2]                       Length : 0030
+
+[064h 0100   4]                Device Handle : 00000002
+[068h 0104   2]                  Physical Id : 0000
+[06Ah 0106   2]                    Region Id : 0000
+[06Ch 0108   2]                  Range Index : 0004
+[06Eh 0110   2]         Control Region Index : 0005
+[070h 0112   8]                  Region Size : 0000000008000000
+[078h 0120   8]                Region Offset : 0000000000000000
+[080h 0128   8]          Address Region Base : 0000000000000000
+[088h 0136   2]             Interleave Index : 0000
+[08Ah 0138   2]              Interleave Ways : 0001
+[08Ch 0140   2]                        Flags : 0000
+                       Save to device failed : 0
+                  Restore from device failed : 0
+                       Platform flush failed : 0
+                            Device not armed : 0
+                      Health events observed : 0
+                       Health events enabled : 0
+                              Mapping failed : 0
+[08Eh 0142   2]                     Reserved : 0000
+
+[090h 0144   2]                Subtable Type : 0004 [NVDIMM Control Region]
+[092h 0146   2]                       Length : 0050
+
+[094h 0148   2]                 Region Index : 0005
+[096h 0150   2]                    Vendor Id : 8086
+[098h 0152   2]                    Device Id : 0001
+[09Ah 0154   2]                  Revision Id : 0001
+[09Ch 0156   2]          Subsystem Vendor Id : 0000
+[09Eh 0158   2]          Subsystem Device Id : 0000
+[0A0h 0160   2]        Subsystem Revision Id : 0000
+[0A2h 0162   1]                 Valid Fields : 00
+[0A3h 0163   1]       Manufacturing Location : 00
+[0A4h 0164   2]           Manufacturing Date : 0000
+[0A6h 0166   2]                     Reserved : 0000
+[0A8h 0168   4]                Serial Number : 00123457
+[0ACh 0172   2]                         Code : 0301
+[0AEh 0174   2]                 Window Count : 0000
+[0B0h 0176   8]                  Window Size : 0000000000000000
+[0B8h 0184   8]               Command Offset : 0000000000000000
+[0C0h 0192   8]                 Command Size : 0000000000000000
+[0C8h 0200   8]                Status Offset : 0000000000000000
+[0D0h 0208   8]                  Status Size : 0000000000000000
+[0D8h 0216   2]                        Flags : 0000
+                            Windows buffered : 0
+[0DAh 0218   6]                    Reserved1 : 000000000000
+
+[0E0h 0224   2]                Subtable Type : 0007 [Platform Capabilities]
+[0E2h 0226   2]                       Length : 0010
+
+[0E4h 0228   1]           Highest Capability : 01
+[0E5h 0229   3]                     Reserved : 000000
+[0E8h 0232   4] Capabilities (decoded below) : 00000003
+                       Cache Flush to NVDIMM : 1
+                      Memory Flush to NVDIMM : 1
+                            Memory Mirroring : 0
+[0ECh 0236   4]                     Reserved : 00000000
+
+Raw Table Data: Length 240 (0xF0)
+
+    0000: 4E 46 49 54 F0 00 00 00 01 24 42 4F 43 48 53 20  // NFIT.....$BOCHS 
+    0010: 42 58 50 43 4E 46 49 54 01 00 00 00 42 58 50 43  // BXPCNFIT....BXPC
+    0020: 01 00 00 00 00 00 00 00 00 00 38 00 04 00 03 00  // ..........8.....
+    0030: 00 00 00 00 02 00 00 00 79 D3 F0 66 F3 B4 74 40  // ........y..f..t@
+    0040: AC 43 0D 33 18 B7 8C DB 00 00 00 08 01 00 00 00  // .C.3............
+    0050: 00 00 00 08 00 00 00 00 08 80 00 00 00 00 00 00  // ................
+    0060: 01 00 30 00 02 00 00 00 00 00 00 00 04 00 05 00  // ..0.............
+    0070: 00 00 00 08 00 00 00 00 00 00 00 00 00 00 00 00  // ................
+    0080: 00 00 00 00 00 00 00 00 00 00 01 00 00 00 00 00  // ................
+    0090: 04 00 50 00 05 00 86 80 01 00 01 00 00 00 00 00  // ..P.............
+    00A0: 00 00 00 00 00 00 00 00 57 34 12 00 01 03 00 00  // ........W4......
+    00B0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  // ................
+    00C0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  // ................
+    00D0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  // ................
+    00E0: 07 00 10 00 01 00 00 00 03 00 00 00 00 00 00 00  // ................
diff --git a/tests/data/acpi/pc/SLIT.cphp.dsl b/tests/data/acpi/pc/SLIT.cphp.dsl
new file mode 100644
index 0000000000..20289608db
--- /dev/null
+++ b/tests/data/acpi/pc/SLIT.cphp.dsl
@@ -0,0 +1,31 @@ 
+/*
+ * Intel ACPI Component Architecture
+ * AML/ASL+ Disassembler version 20190509 (64-bit version)
+ * Copyright (c) 2000 - 2019 Intel Corporation
+ * 
+ * Disassembly of tests/data/acpi/pc/SLIT.cphp, Tue Aug  4 11:14:15 2020
+ *
+ * ACPI Data Table [SLIT]
+ *
+ * Format: [HexOffset DecimalOffset ByteLength]  FieldName : FieldValue
+ */
+
+[000h 0000   4]                    Signature : "SLIT"    [System Locality Information Table]
+[004h 0004   4]                 Table Length : 00000030
+[008h 0008   1]                     Revision : 01
+[009h 0009   1]                     Checksum : 2C
+[00Ah 0010   6]                       Oem ID : "BOCHS "
+[010h 0016   8]                 Oem Table ID : "BXPCSLIT"
+[018h 0024   4]                 Oem Revision : 00000001
+[01Ch 0028   4]              Asl Compiler ID : "BXPC"
+[020h 0032   4]        Asl Compiler Revision : 00000001
+
+[024h 0036   8]                   Localities : 0000000000000002
+[02Ch 0044   2]                 Locality   0 : 0A 15
+[02Eh 0046   2]                 Locality   1 : 15 0A
+
+Raw Table Data: Length 48 (0x30)
+
+    0000: 53 4C 49 54 30 00 00 00 01 2C 42 4F 43 48 53 20  // SLIT0....,BOCHS 
+    0010: 42 58 50 43 53 4C 49 54 01 00 00 00 42 58 50 43  // BXPCSLIT....BXPC
+    0020: 01 00 00 00 02 00 00 00 00 00 00 00 0A 15 15 0A  // ................
diff --git a/tests/data/acpi/pc/SLIT.dsl b/tests/data/acpi/pc/SLIT.dsl
new file mode 100644
index 0000000000..8b923249af
--- /dev/null
+++ b/tests/data/acpi/pc/SLIT.dsl
@@ -0,0 +1,31 @@ 
+/*
+ * Intel ACPI Component Architecture
+ * AML/ASL+ Disassembler version 20190509 (64-bit version)
+ * Copyright (c) 2000 - 2019 Intel Corporation
+ * 
+ * Disassembly of tests/data/acpi/pc/SLIT.memhp, Mon Sep 28 17:24:38 2020
+ *
+ * ACPI Data Table [SLIT]
+ *
+ * Format: [HexOffset DecimalOffset ByteLength]  FieldName : FieldValue
+ */
+
+[000h 0000   4]                    Signature : "SLIT"    [System Locality Information Table]
+[004h 0004   4]                 Table Length : 00000030
+[008h 0008   1]                     Revision : 01
+[009h 0009   1]                     Checksum : 2C
+[00Ah 0010   6]                       Oem ID : "BOCHS "
+[010h 0016   8]                 Oem Table ID : "BXPCSLIT"
+[018h 0024   4]                 Oem Revision : 00000001
+[01Ch 0028   4]              Asl Compiler ID : "BXPC"
+[020h 0032   4]        Asl Compiler Revision : 00000001
+
+[024h 0036   8]                   Localities : 0000000000000002
+[02Ch 0044   2]                 Locality   0 : 0A 15
+[02Eh 0046   2]                 Locality   1 : 15 0A
+
+Raw Table Data: Length 48 (0x30)
+
+    0000: 53 4C 49 54 30 00 00 00 01 2C 42 4F 43 48 53 20  // SLIT0....,BOCHS 
+    0010: 42 58 50 43 53 4C 49 54 01 00 00 00 42 58 50 43  // BXPCSLIT....BXPC
+    0020: 01 00 00 00 02 00 00 00 00 00 00 00 0A 15 15 0A  // ................
diff --git a/tests/data/acpi/pc/SLIT.memhp.dsl b/tests/data/acpi/pc/SLIT.memhp.dsl
new file mode 100644
index 0000000000..b3a0170144
--- /dev/null
+++ b/tests/data/acpi/pc/SLIT.memhp.dsl
@@ -0,0 +1,31 @@ 
+/*
+ * Intel ACPI Component Architecture
+ * AML/ASL+ Disassembler version 20190509 (64-bit version)
+ * Copyright (c) 2000 - 2019 Intel Corporation
+ * 
+ * Disassembly of tests/data/acpi/pc/SLIT.memhp, Tue Aug  4 11:14:15 2020
+ *
+ * ACPI Data Table [SLIT]
+ *
+ * Format: [HexOffset DecimalOffset ByteLength]  FieldName : FieldValue
+ */
+
+[000h 0000   4]                    Signature : "SLIT"    [System Locality Information Table]
+[004h 0004   4]                 Table Length : 00000030
+[008h 0008   1]                     Revision : 01
+[009h 0009   1]                     Checksum : 2C
+[00Ah 0010   6]                       Oem ID : "BOCHS "
+[010h 0016   8]                 Oem Table ID : "BXPCSLIT"
+[018h 0024   4]                 Oem Revision : 00000001
+[01Ch 0028   4]              Asl Compiler ID : "BXPC"
+[020h 0032   4]        Asl Compiler Revision : 00000001
+
+[024h 0036   8]                   Localities : 0000000000000002
+[02Ch 0044   2]                 Locality   0 : 0A 15
+[02Eh 0046   2]                 Locality   1 : 15 0A
+
+Raw Table Data: Length 48 (0x30)
+
+    0000: 53 4C 49 54 30 00 00 00 01 2C 42 4F 43 48 53 20  // SLIT0....,BOCHS 
+    0010: 42 58 50 43 53 4C 49 54 01 00 00 00 42 58 50 43  // BXPCSLIT....BXPC
+    0020: 01 00 00 00 02 00 00 00 00 00 00 00 0A 15 15 0A  // ................
diff --git a/tests/data/acpi/pc/SRAT.acpihmat.dsl b/tests/data/acpi/pc/SRAT.acpihmat.dsl
new file mode 100644
index 0000000000..e3c788672f
--- /dev/null
+++ b/tests/data/acpi/pc/SRAT.acpihmat.dsl
@@ -0,0 +1,137 @@ 
+/*
+ * Intel ACPI Component Architecture
+ * AML/ASL+ Disassembler version 20190509 (64-bit version)
+ * Copyright (c) 2000 - 2019 Intel Corporation
+ * 
+ * Disassembly of tests/data/acpi/pc/SRAT.acpihmat, Tue Aug  4 11:14:15 2020
+ *
+ * ACPI Data Table [SRAT]
+ *
+ * Format: [HexOffset DecimalOffset ByteLength]  FieldName : FieldValue
+ */
+
+[000h 0000   4]                    Signature : "SRAT"    [System Resource Affinity Table]
+[004h 0004   4]                 Table Length : 00000118
+[008h 0008   1]                     Revision : 01
+[009h 0009   1]                     Checksum : C0
+[00Ah 0010   6]                       Oem ID : "BOCHS "
+[010h 0016   8]                 Oem Table ID : "BXPCSRAT"
+[018h 0024   4]                 Oem Revision : 00000001
+[01Ch 0028   4]              Asl Compiler ID : "BXPC"
+[020h 0032   4]        Asl Compiler Revision : 00000001
+
+[024h 0036   4]               Table Revision : 00000001
+[028h 0040   8]                     Reserved : 0000000000000000
+
+[030h 0048   1]                Subtable Type : 00 [Processor Local APIC/SAPIC Affinity]
+[031h 0049   1]                       Length : 10
+
+[032h 0050   1]      Proximity Domain Low(8) : 00
+[033h 0051   1]                      Apic ID : 00
+[034h 0052   4]        Flags (decoded below) : 00000001
+                                     Enabled : 1
+[038h 0056   1]              Local Sapic EID : 00
+[039h 0057   3]    Proximity Domain High(24) : 000000
+[03Ch 0060   4]                 Clock Domain : 00000000
+
+[040h 0064   1]                Subtable Type : 00 [Processor Local APIC/SAPIC Affinity]
+[041h 0065   1]                       Length : 10
+
+[042h 0066   1]      Proximity Domain Low(8) : 00
+[043h 0067   1]                      Apic ID : 01
+[044h 0068   4]        Flags (decoded below) : 00000001
+                                     Enabled : 1
+[048h 0072   1]              Local Sapic EID : 00
+[049h 0073   3]    Proximity Domain High(24) : 000000
+[04Ch 0076   4]                 Clock Domain : 00000000
+
+[050h 0080   1]                Subtable Type : 01 [Memory Affinity]
+[051h 0081   1]                       Length : 28
+
+[052h 0082   4]             Proximity Domain : 00000000
+[056h 0086   2]                    Reserved1 : 0000
+[058h 0088   8]                 Base Address : 0000000000000000
+[060h 0096   8]               Address Length : 00000000000A0000
+[068h 0104   4]                    Reserved2 : 00000000
+[06Ch 0108   4]        Flags (decoded below) : 00000001
+                                     Enabled : 1
+                               Hot Pluggable : 0
+                                Non-Volatile : 0
+[070h 0112   8]                    Reserved3 : 0000000000000000
+
+[078h 0120   1]                Subtable Type : 01 [Memory Affinity]
+[079h 0121   1]                       Length : 28
+
+[07Ah 0122   4]             Proximity Domain : 00000000
+[07Eh 0126   2]                    Reserved1 : 0000
+[080h 0128   8]                 Base Address : 0000000000100000
+[088h 0136   8]               Address Length : 0000000003F00000
+[090h 0144   4]                    Reserved2 : 00000000
+[094h 0148   4]        Flags (decoded below) : 00000001
+                                     Enabled : 1
+                               Hot Pluggable : 0
+                                Non-Volatile : 0
+[098h 0152   8]                    Reserved3 : 0000000000000000
+
+[0A0h 0160   1]                Subtable Type : 01 [Memory Affinity]
+[0A1h 0161   1]                       Length : 28
+
+[0A2h 0162   4]             Proximity Domain : 00000001
+[0A6h 0166   2]                    Reserved1 : 0000
+[0A8h 0168   8]                 Base Address : 0000000004000000
+[0B0h 0176   8]               Address Length : 0000000004000000
+[0B8h 0184   4]                    Reserved2 : 00000000
+[0BCh 0188   4]        Flags (decoded below) : 00000001
+                                     Enabled : 1
+                               Hot Pluggable : 0
+                                Non-Volatile : 0
+[0C0h 0192   8]                    Reserved3 : 0000000000000000
+
+[0C8h 0200   1]                Subtable Type : 01 [Memory Affinity]
+[0C9h 0201   1]                       Length : 28
+
+[0CAh 0202   4]             Proximity Domain : 00000000
+[0CEh 0206   2]                    Reserved1 : 0000
+[0D0h 0208   8]                 Base Address : 0000000000000000
+[0D8h 0216   8]               Address Length : 0000000000000000
+[0E0h 0224   4]                    Reserved2 : 00000000
+[0E4h 0228   4]        Flags (decoded below) : 00000000
+                                     Enabled : 0
+                               Hot Pluggable : 0
+                                Non-Volatile : 0
+[0E8h 0232   8]                    Reserved3 : 0000000000000000
+
+[0F0h 0240   1]                Subtable Type : 01 [Memory Affinity]
+[0F1h 0241   1]                       Length : 28
+
+[0F2h 0242   4]             Proximity Domain : 00000001
+[0F6h 0246   2]                    Reserved1 : 0000
+[0F8h 0248   8]                 Base Address : 0000000100000000
+[100h 0256   8]               Address Length : 00000000B8000000
+[108h 0264   4]                    Reserved2 : 00000000
+[10Ch 0268   4]        Flags (decoded below) : 00000003
+                                     Enabled : 1
+                               Hot Pluggable : 1
+                                Non-Volatile : 0
+[110h 0272   8]                    Reserved3 : 0000000000000000
+
+Raw Table Data: Length 280 (0x118)
+
+    0000: 53 52 41 54 18 01 00 00 01 C0 42 4F 43 48 53 20  // SRAT......BOCHS 
+    0010: 42 58 50 43 53 52 41 54 01 00 00 00 42 58 50 43  // BXPCSRAT....BXPC
+    0020: 01 00 00 00 01 00 00 00 00 00 00 00 00 00 00 00  // ................
+    0030: 00 10 00 00 01 00 00 00 00 00 00 00 00 00 00 00  // ................
+    0040: 00 10 00 01 01 00 00 00 00 00 00 00 00 00 00 00  // ................
+    0050: 01 28 00 00 00 00 00 00 00 00 00 00 00 00 00 00  // .(..............
+    0060: 00 00 0A 00 00 00 00 00 00 00 00 00 01 00 00 00  // ................
+    0070: 00 00 00 00 00 00 00 00 01 28 00 00 00 00 00 00  // .........(......
+    0080: 00 00 10 00 00 00 00 00 00 00 F0 03 00 00 00 00  // ................
+    0090: 00 00 00 00 01 00 00 00 00 00 00 00 00 00 00 00  // ................
+    00A0: 01 28 01 00 00 00 00 00 00 00 00 04 00 00 00 00  // .(..............
+    00B0: 00 00 00 04 00 00 00 00 00 00 00 00 01 00 00 00  // ................
+    00C0: 00 00 00 00 00 00 00 00 01 28 00 00 00 00 00 00  // .........(......
+    00D0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  // ................
+    00E0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  // ................
+    00F0: 01 28 01 00 00 00 00 00 00 00 00 00 01 00 00 00  // .(..............
+    0100: 00 00 00 B8 00 00 00 00 00 00 00 00 03 00 00 00  // ................
+    0110: 00 00 00 00 00 00 00 00                          // ........
diff --git a/tests/data/acpi/pc/SRAT.cphp.dsl b/tests/data/acpi/pc/SRAT.cphp.dsl
new file mode 100644
index 0000000000..20c38ee3cc
--- /dev/null
+++ b/tests/data/acpi/pc/SRAT.cphp.dsl
@@ -0,0 +1,168 @@ 
+/*
+ * Intel ACPI Component Architecture
+ * AML/ASL+ Disassembler version 20190509 (64-bit version)
+ * Copyright (c) 2000 - 2019 Intel Corporation
+ * 
+ * Disassembly of tests/data/acpi/pc/SRAT.cphp, Tue Aug  4 11:14:15 2020
+ *
+ * ACPI Data Table [SRAT]
+ *
+ * Format: [HexOffset DecimalOffset ByteLength]  FieldName : FieldValue
+ */
+
+[000h 0000   4]                    Signature : "SRAT"    [System Resource Affinity Table]
+[004h 0004   4]                 Table Length : 00000130
+[008h 0008   1]                     Revision : 01
+[009h 0009   1]                     Checksum : 36
+[00Ah 0010   6]                       Oem ID : "BOCHS "
+[010h 0016   8]                 Oem Table ID : "BXPCSRAT"
+[018h 0024   4]                 Oem Revision : 00000001
+[01Ch 0028   4]              Asl Compiler ID : "BXPC"
+[020h 0032   4]        Asl Compiler Revision : 00000001
+
+[024h 0036   4]               Table Revision : 00000001
+[028h 0040   8]                     Reserved : 0000000000000000
+
+[030h 0048   1]                Subtable Type : 00 [Processor Local APIC/SAPIC Affinity]
+[031h 0049   1]                       Length : 10
+
+[032h 0050   1]      Proximity Domain Low(8) : 00
+[033h 0051   1]                      Apic ID : 00
+[034h 0052   4]        Flags (decoded below) : 00000001
+                                     Enabled : 1
+[038h 0056   1]              Local Sapic EID : 00
+[039h 0057   3]    Proximity Domain High(24) : 000000
+[03Ch 0060   4]                 Clock Domain : 00000000
+
+[040h 0064   1]                Subtable Type : 00 [Processor Local APIC/SAPIC Affinity]
+[041h 0065   1]                       Length : 10
+
+[042h 0066   1]      Proximity Domain Low(8) : 00
+[043h 0067   1]                      Apic ID : 01
+[044h 0068   4]        Flags (decoded below) : 00000001
+                                     Enabled : 1
+[048h 0072   1]              Local Sapic EID : 00
+[049h 0073   3]    Proximity Domain High(24) : 000000
+[04Ch 0076   4]                 Clock Domain : 00000000
+
+[050h 0080   1]                Subtable Type : 00 [Processor Local APIC/SAPIC Affinity]
+[051h 0081   1]                       Length : 10
+
+[052h 0082   1]      Proximity Domain Low(8) : 00
+[053h 0083   1]                      Apic ID : 02
+[054h 0084   4]        Flags (decoded below) : 00000001
+                                     Enabled : 1
+[058h 0088   1]              Local Sapic EID : 00
+[059h 0089   3]    Proximity Domain High(24) : 000000
+[05Ch 0092   4]                 Clock Domain : 00000000
+
+[060h 0096   1]                Subtable Type : 00 [Processor Local APIC/SAPIC Affinity]
+[061h 0097   1]                       Length : 10
+
+[062h 0098   1]      Proximity Domain Low(8) : 01
+[063h 0099   1]                      Apic ID : 04
+[064h 0100   4]        Flags (decoded below) : 00000001
+                                     Enabled : 1
+[068h 0104   1]              Local Sapic EID : 00
+[069h 0105   3]    Proximity Domain High(24) : 000000
+[06Ch 0108   4]                 Clock Domain : 00000000
+
+[070h 0112   1]                Subtable Type : 00 [Processor Local APIC/SAPIC Affinity]
+[071h 0113   1]                       Length : 10
+
+[072h 0114   1]      Proximity Domain Low(8) : 01
+[073h 0115   1]                      Apic ID : 05
+[074h 0116   4]        Flags (decoded below) : 00000001
+                                     Enabled : 1
+[078h 0120   1]              Local Sapic EID : 00
+[079h 0121   3]    Proximity Domain High(24) : 000000
+[07Ch 0124   4]                 Clock Domain : 00000000
+
+[080h 0128   1]                Subtable Type : 00 [Processor Local APIC/SAPIC Affinity]
+[081h 0129   1]                       Length : 10
+
+[082h 0130   1]      Proximity Domain Low(8) : 01
+[083h 0131   1]                      Apic ID : 06
+[084h 0132   4]        Flags (decoded below) : 00000001
+                                     Enabled : 1
+[088h 0136   1]              Local Sapic EID : 00
+[089h 0137   3]    Proximity Domain High(24) : 000000
+[08Ch 0140   4]                 Clock Domain : 00000000
+
+[090h 0144   1]                Subtable Type : 01 [Memory Affinity]
+[091h 0145   1]                       Length : 28
+
+[092h 0146   4]             Proximity Domain : 00000000
+[096h 0150   2]                    Reserved1 : 0000
+[098h 0152   8]                 Base Address : 0000000000000000
+[0A0h 0160   8]               Address Length : 00000000000A0000
+[0A8h 0168   4]                    Reserved2 : 00000000
+[0ACh 0172   4]        Flags (decoded below) : 00000001
+                                     Enabled : 1
+                               Hot Pluggable : 0
+                                Non-Volatile : 0
+[0B0h 0176   8]                    Reserved3 : 0000000000000000
+
+[0B8h 0184   1]                Subtable Type : 01 [Memory Affinity]
+[0B9h 0185   1]                       Length : 28
+
+[0BAh 0186   4]             Proximity Domain : 00000000
+[0BEh 0190   2]                    Reserved1 : 0000
+[0C0h 0192   8]                 Base Address : 0000000000100000
+[0C8h 0200   8]               Address Length : 0000000003F00000
+[0D0h 0208   4]                    Reserved2 : 00000000
+[0D4h 0212   4]        Flags (decoded below) : 00000001
+                                     Enabled : 1
+                               Hot Pluggable : 0
+                                Non-Volatile : 0
+[0D8h 0216   8]                    Reserved3 : 0000000000000000
+
+[0E0h 0224   1]                Subtable Type : 01 [Memory Affinity]
+[0E1h 0225   1]                       Length : 28
+
+[0E2h 0226   4]             Proximity Domain : 00000001
+[0E6h 0230   2]                    Reserved1 : 0000
+[0E8h 0232   8]                 Base Address : 0000000004000000
+[0F0h 0240   8]               Address Length : 0000000004000000
+[0F8h 0248   4]                    Reserved2 : 00000000
+[0FCh 0252   4]        Flags (decoded below) : 00000001
+                                     Enabled : 1
+                               Hot Pluggable : 0
+                                Non-Volatile : 0
+[100h 0256   8]                    Reserved3 : 0000000000000000
+
+[108h 0264   1]                Subtable Type : 01 [Memory Affinity]
+[109h 0265   1]                       Length : 28
+
+[10Ah 0266   4]             Proximity Domain : 00000000
+[10Eh 0270   2]                    Reserved1 : 0000
+[110h 0272   8]                 Base Address : 0000000000000000
+[118h 0280   8]               Address Length : 0000000000000000
+[120h 0288   4]                    Reserved2 : 00000000
+[124h 0292   4]        Flags (decoded below) : 00000000
+                                     Enabled : 0
+                               Hot Pluggable : 0
+                                Non-Volatile : 0
+[128h 0296   8]                    Reserved3 : 0000000000000000
+
+Raw Table Data: Length 304 (0x130)
+
+    0000: 53 52 41 54 30 01 00 00 01 36 42 4F 43 48 53 20  // SRAT0....6BOCHS 
+    0010: 42 58 50 43 53 52 41 54 01 00 00 00 42 58 50 43  // BXPCSRAT....BXPC
+    0020: 01 00 00 00 01 00 00 00 00 00 00 00 00 00 00 00  // ................
+    0030: 00 10 00 00 01 00 00 00 00 00 00 00 00 00 00 00  // ................
+    0040: 00 10 00 01 01 00 00 00 00 00 00 00 00 00 00 00  // ................
+    0050: 00 10 00 02 01 00 00 00 00 00 00 00 00 00 00 00  // ................
+    0060: 00 10 01 04 01 00 00 00 00 00 00 00 00 00 00 00  // ................
+    0070: 00 10 01 05 01 00 00 00 00 00 00 00 00 00 00 00  // ................
+    0080: 00 10 01 06 01 00 00 00 00 00 00 00 00 00 00 00  // ................
+    0090: 01 28 00 00 00 00 00 00 00 00 00 00 00 00 00 00  // .(..............
+    00A0: 00 00 0A 00 00 00 00 00 00 00 00 00 01 00 00 00  // ................
+    00B0: 00 00 00 00 00 00 00 00 01 28 00 00 00 00 00 00  // .........(......
+    00C0: 00 00 10 00 00 00 00 00 00 00 F0 03 00 00 00 00  // ................
+    00D0: 00 00 00 00 01 00 00 00 00 00 00 00 00 00 00 00  // ................
+    00E0: 01 28 01 00 00 00 00 00 00 00 00 04 00 00 00 00  // .(..............
+    00F0: 00 00 00 04 00 00 00 00 00 00 00 00 01 00 00 00  // ................
+    0100: 00 00 00 00 00 00 00 00 01 28 00 00 00 00 00 00  // .........(......
+    0110: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  // ................
+    0120: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  // ................
diff --git a/tests/data/acpi/pc/SRAT.dimmpxm.dsl b/tests/data/acpi/pc/SRAT.dimmpxm.dsl
new file mode 100644
index 0000000000..888fef1b5c
--- /dev/null
+++ b/tests/data/acpi/pc/SRAT.dimmpxm.dsl
@@ -0,0 +1,194 @@ 
+/*
+ * Intel ACPI Component Architecture
+ * AML/ASL+ Disassembler version 20190509 (64-bit version)
+ * Copyright (c) 2000 - 2019 Intel Corporation
+ * 
+ * Disassembly of tests/data/acpi/pc/SRAT.dimmpxm, Tue Aug  4 11:14:15 2020
+ *
+ * ACPI Data Table [SRAT]
+ *
+ * Format: [HexOffset DecimalOffset ByteLength]  FieldName : FieldValue
+ */
+
+[000h 0000   4]                    Signature : "SRAT"    [System Resource Affinity Table]
+[004h 0004   4]                 Table Length : 00000188
+[008h 0008   1]                     Revision : 01
+[009h 0009   1]                     Checksum : 68
+[00Ah 0010   6]                       Oem ID : "BOCHS "
+[010h 0016   8]                 Oem Table ID : "BXPCSRAT"
+[018h 0024   4]                 Oem Revision : 00000001
+[01Ch 0028   4]              Asl Compiler ID : "BXPC"
+[020h 0032   4]        Asl Compiler Revision : 00000001
+
+[024h 0036   4]               Table Revision : 00000001
+[028h 0040   8]                     Reserved : 0000000000000000
+
+[030h 0048   1]                Subtable Type : 00 [Processor Local APIC/SAPIC Affinity]
+[031h 0049   1]                       Length : 10
+
+[032h 0050   1]      Proximity Domain Low(8) : 00
+[033h 0051   1]                      Apic ID : 00
+[034h 0052   4]        Flags (decoded below) : 00000001
+                                     Enabled : 1
+[038h 0056   1]              Local Sapic EID : 00
+[039h 0057   3]    Proximity Domain High(24) : 000000
+[03Ch 0060   4]                 Clock Domain : 00000000
+
+[040h 0064   1]                Subtable Type : 00 [Processor Local APIC/SAPIC Affinity]
+[041h 0065   1]                       Length : 10
+
+[042h 0066   1]      Proximity Domain Low(8) : 01
+[043h 0067   1]                      Apic ID : 01
+[044h 0068   4]        Flags (decoded below) : 00000001
+                                     Enabled : 1
+[048h 0072   1]              Local Sapic EID : 00
+[049h 0073   3]    Proximity Domain High(24) : 000000
+[04Ch 0076   4]                 Clock Domain : 00000000
+
+[050h 0080   1]                Subtable Type : 00 [Processor Local APIC/SAPIC Affinity]
+[051h 0081   1]                       Length : 10
+
+[052h 0082   1]      Proximity Domain Low(8) : 02
+[053h 0083   1]                      Apic ID : 02
+[054h 0084   4]        Flags (decoded below) : 00000001
+                                     Enabled : 1
+[058h 0088   1]              Local Sapic EID : 00
+[059h 0089   3]    Proximity Domain High(24) : 000000
+[05Ch 0092   4]                 Clock Domain : 00000000
+
+[060h 0096   1]                Subtable Type : 00 [Processor Local APIC/SAPIC Affinity]
+[061h 0097   1]                       Length : 10
+
+[062h 0098   1]      Proximity Domain Low(8) : 03
+[063h 0099   1]                      Apic ID : 03
+[064h 0100   4]        Flags (decoded below) : 00000001
+                                     Enabled : 1
+[068h 0104   1]              Local Sapic EID : 00
+[069h 0105   3]    Proximity Domain High(24) : 000000
+[06Ch 0108   4]                 Clock Domain : 00000000
+
+[070h 0112   1]                Subtable Type : 01 [Memory Affinity]
+[071h 0113   1]                       Length : 28
+
+[072h 0114   4]             Proximity Domain : 00000000
+[076h 0118   2]                    Reserved1 : 0000
+[078h 0120   8]                 Base Address : 0000000000000000
+[080h 0128   8]               Address Length : 00000000000A0000
+[088h 0136   4]                    Reserved2 : 00000000
+[08Ch 0140   4]        Flags (decoded below) : 00000001
+                                     Enabled : 1
+                               Hot Pluggable : 0
+                                Non-Volatile : 0
+[090h 0144   8]                    Reserved3 : 0000000000000000
+
+[098h 0152   1]                Subtable Type : 01 [Memory Affinity]
+[099h 0153   1]                       Length : 28
+
+[09Ah 0154   4]             Proximity Domain : 00000000
+[09Eh 0158   2]                    Reserved1 : 0000
+[0A0h 0160   8]                 Base Address : 0000000000100000
+[0A8h 0168   8]               Address Length : 0000000001F00000
+[0B0h 0176   4]                    Reserved2 : 00000000
+[0B4h 0180   4]        Flags (decoded below) : 00000001
+                                     Enabled : 1
+                               Hot Pluggable : 0
+                                Non-Volatile : 0
+[0B8h 0184   8]                    Reserved3 : 0000000000000000
+
+[0C0h 0192   1]                Subtable Type : 01 [Memory Affinity]
+[0C1h 0193   1]                       Length : 28
+
+[0C2h 0194   4]             Proximity Domain : 00000001
+[0C6h 0198   2]                    Reserved1 : 0000
+[0C8h 0200   8]                 Base Address : 0000000002000000
+[0D0h 0208   8]               Address Length : 0000000002000000
+[0D8h 0216   4]                    Reserved2 : 00000000
+[0DCh 0220   4]        Flags (decoded below) : 00000001
+                                     Enabled : 1
+                               Hot Pluggable : 0
+                                Non-Volatile : 0
+[0E0h 0224   8]                    Reserved3 : 0000000000000000
+
+[0E8h 0232   1]                Subtable Type : 01 [Memory Affinity]
+[0E9h 0233   1]                       Length : 28
+
+[0EAh 0234   4]             Proximity Domain : 00000002
+[0EEh 0238   2]                    Reserved1 : 0000
+[0F0h 0240   8]                 Base Address : 0000000004000000
+[0F8h 0248   8]               Address Length : 0000000002000000
+[100h 0256   4]                    Reserved2 : 00000000
+[104h 0260   4]        Flags (decoded below) : 00000001
+                                     Enabled : 1
+                               Hot Pluggable : 0
+                                Non-Volatile : 0
+[108h 0264   8]                    Reserved3 : 0000000000000000
+
+[110h 0272   1]                Subtable Type : 01 [Memory Affinity]
+[111h 0273   1]                       Length : 28
+
+[112h 0274   4]             Proximity Domain : 00000003
+[116h 0278   2]                    Reserved1 : 0000
+[118h 0280   8]                 Base Address : 0000000006000000
+[120h 0288   8]               Address Length : 0000000002000000
+[128h 0296   4]                    Reserved2 : 00000000
+[12Ch 0300   4]        Flags (decoded below) : 00000001
+                                     Enabled : 1
+                               Hot Pluggable : 0
+                                Non-Volatile : 0
+[130h 0304   8]                    Reserved3 : 0000000000000000
+
+[138h 0312   1]                Subtable Type : 01 [Memory Affinity]
+[139h 0313   1]                       Length : 28
+
+[13Ah 0314   4]             Proximity Domain : 00000002
+[13Eh 0318   2]                    Reserved1 : 0000
+[140h 0320   8]                 Base Address : 0000000108000000
+[148h 0328   8]               Address Length : 0000000008000000
+[150h 0336   4]                    Reserved2 : 00000000
+[154h 0340   4]        Flags (decoded below) : 00000005
+                                     Enabled : 1
+                               Hot Pluggable : 0
+                                Non-Volatile : 1
+[158h 0344   8]                    Reserved3 : 0000000000000000
+
+[160h 0352   1]                Subtable Type : 01 [Memory Affinity]
+[161h 0353   1]                       Length : 28
+
+[162h 0354   4]             Proximity Domain : 00000003
+[166h 0358   2]                    Reserved1 : 0000
+[168h 0360   8]                 Base Address : 0000000100000000
+[170h 0368   8]               Address Length : 00000000F8000000
+[178h 0376   4]                    Reserved2 : 00000000
+[17Ch 0380   4]        Flags (decoded below) : 00000003
+                                     Enabled : 1
+                               Hot Pluggable : 1
+                                Non-Volatile : 0
+[180h 0384   8]                    Reserved3 : 0000000000000000
+
+Raw Table Data: Length 392 (0x188)
+
+    0000: 53 52 41 54 88 01 00 00 01 68 42 4F 43 48 53 20  // SRAT.....hBOCHS 
+    0010: 42 58 50 43 53 52 41 54 01 00 00 00 42 58 50 43  // BXPCSRAT....BXPC
+    0020: 01 00 00 00 01 00 00 00 00 00 00 00 00 00 00 00  // ................
+    0030: 00 10 00 00 01 00 00 00 00 00 00 00 00 00 00 00  // ................
+    0040: 00 10 01 01 01 00 00 00 00 00 00 00 00 00 00 00  // ................
+    0050: 00 10 02 02 01 00 00 00 00 00 00 00 00 00 00 00  // ................
+    0060: 00 10 03 03 01 00 00 00 00 00 00 00 00 00 00 00  // ................
+    0070: 01 28 00 00 00 00 00 00 00 00 00 00 00 00 00 00  // .(..............
+    0080: 00 00 0A 00 00 00 00 00 00 00 00 00 01 00 00 00  // ................
+    0090: 00 00 00 00 00 00 00 00 01 28 00 00 00 00 00 00  // .........(......
+    00A0: 00 00 10 00 00 00 00 00 00 00 F0 01 00 00 00 00  // ................
+    00B0: 00 00 00 00 01 00 00 00 00 00 00 00 00 00 00 00  // ................
+    00C0: 01 28 01 00 00 00 00 00 00 00 00 02 00 00 00 00  // .(..............
+    00D0: 00 00 00 02 00 00 00 00 00 00 00 00 01 00 00 00  // ................
+    00E0: 00 00 00 00 00 00 00 00 01 28 02 00 00 00 00 00  // .........(......
+    00F0: 00 00 00 04 00 00 00 00 00 00 00 02 00 00 00 00  // ................
+    0100: 00 00 00 00 01 00 00 00 00 00 00 00 00 00 00 00  // ................
+    0110: 01 28 03 00 00 00 00 00 00 00 00 06 00 00 00 00  // .(..............
+    0120: 00 00 00 02 00 00 00 00 00 00 00 00 01 00 00 00  // ................
+    0130: 00 00 00 00 00 00 00 00 01 28 02 00 00 00 00 00  // .........(......
+    0140: 00 00 00 08 01 00 00 00 00 00 00 08 00 00 00 00  // ................
+    0150: 00 00 00 00 05 00 00 00 00 00 00 00 00 00 00 00  // ................
+    0160: 01 28 03 00 00 00 00 00 00 00 00 00 01 00 00 00  // .(..............
+    0170: 00 00 00 F8 00 00 00 00 00 00 00 00 03 00 00 00  // ................
+    0180: 00 00 00 00 00 00 00 00                          // ........
diff --git a/tests/data/acpi/pc/SRAT.dsl b/tests/data/acpi/pc/SRAT.dsl
new file mode 100644
index 0000000000..77bbfebc81
--- /dev/null
+++ b/tests/data/acpi/pc/SRAT.dsl
@@ -0,0 +1,108 @@ 
+/*
+ * Intel ACPI Component Architecture
+ * AML/ASL+ Disassembler version 20190509 (64-bit version)
+ * Copyright (c) 2000 - 2019 Intel Corporation
+ * 
+ * Disassembly of tests/data/acpi/pc/SRAT.numamem, Mon Sep 28 17:24:38 2020
+ *
+ * ACPI Data Table [SRAT]
+ *
+ * Format: [HexOffset DecimalOffset ByteLength]  FieldName : FieldValue
+ */
+
+[000h 0000   4]                    Signature : "SRAT"    [System Resource Affinity Table]
+[004h 0004   4]                 Table Length : 000000E0
+[008h 0008   1]                     Revision : 01
+[009h 0009   1]                     Checksum : F5
+[00Ah 0010   6]                       Oem ID : "BOCHS "
+[010h 0016   8]                 Oem Table ID : "BXPCSRAT"
+[018h 0024   4]                 Oem Revision : 00000001
+[01Ch 0028   4]              Asl Compiler ID : "BXPC"
+[020h 0032   4]        Asl Compiler Revision : 00000001
+
+[024h 0036   4]               Table Revision : 00000001
+[028h 0040   8]                     Reserved : 0000000000000000
+
+[030h 0048   1]                Subtable Type : 00 [Processor Local APIC/SAPIC Affinity]
+[031h 0049   1]                       Length : 10
+
+[032h 0050   1]      Proximity Domain Low(8) : 00
+[033h 0051   1]                      Apic ID : 00
+[034h 0052   4]        Flags (decoded below) : 00000001
+                                     Enabled : 1
+[038h 0056   1]              Local Sapic EID : 00
+[039h 0057   3]    Proximity Domain High(24) : 000000
+[03Ch 0060   4]                 Clock Domain : 00000000
+
+[040h 0064   1]                Subtable Type : 01 [Memory Affinity]
+[041h 0065   1]                       Length : 28
+
+[042h 0066   4]             Proximity Domain : 00000001
+[046h 0070   2]                    Reserved1 : 0000
+[048h 0072   8]                 Base Address : 0000000000000000
+[050h 0080   8]               Address Length : 00000000000A0000
+[058h 0088   4]                    Reserved2 : 00000000
+[05Ch 0092   4]        Flags (decoded below) : 00000001
+                                     Enabled : 1
+                               Hot Pluggable : 0
+                                Non-Volatile : 0
+[060h 0096   8]                    Reserved3 : 0000000000000000
+
+[068h 0104   1]                Subtable Type : 01 [Memory Affinity]
+[069h 0105   1]                       Length : 28
+
+[06Ah 0106   4]             Proximity Domain : 00000001
+[06Eh 0110   2]                    Reserved1 : 0000
+[070h 0112   8]                 Base Address : 0000000000100000
+[078h 0120   8]               Address Length : 0000000007F00000
+[080h 0128   4]                    Reserved2 : 00000000
+[084h 0132   4]        Flags (decoded below) : 00000001
+                                     Enabled : 1
+                               Hot Pluggable : 0
+                                Non-Volatile : 0
+[088h 0136   8]                    Reserved3 : 0000000000000000
+
+[090h 0144   1]                Subtable Type : 01 [Memory Affinity]
+[091h 0145   1]                       Length : 28
+
+[092h 0146   4]             Proximity Domain : 00000000
+[096h 0150   2]                    Reserved1 : 0000
+[098h 0152   8]                 Base Address : 0000000000000000
+[0A0h 0160   8]               Address Length : 0000000000000000
+[0A8h 0168   4]                    Reserved2 : 00000000
+[0ACh 0172   4]        Flags (decoded below) : 00000000
+                                     Enabled : 0
+                               Hot Pluggable : 0
+                                Non-Volatile : 0
+[0B0h 0176   8]                    Reserved3 : 0000000000000000
+
+[0B8h 0184   1]                Subtable Type : 01 [Memory Affinity]
+[0B9h 0185   1]                       Length : 28
+
+[0BAh 0186   4]             Proximity Domain : 00000000
+[0BEh 0190   2]                    Reserved1 : 0000
+[0C0h 0192   8]                 Base Address : 0000000000000000
+[0C8h 0200   8]               Address Length : 0000000000000000
+[0D0h 0208   4]                    Reserved2 : 00000000
+[0D4h 0212   4]        Flags (decoded below) : 00000000
+                                     Enabled : 0
+                               Hot Pluggable : 0
+                                Non-Volatile : 0
+[0D8h 0216   8]                    Reserved3 : 0000000000000000
+
+Raw Table Data: Length 224 (0xE0)
+
+    0000: 53 52 41 54 E0 00 00 00 01 F5 42 4F 43 48 53 20  // SRAT......BOCHS 
+    0010: 42 58 50 43 53 52 41 54 01 00 00 00 42 58 50 43  // BXPCSRAT....BXPC
+    0020: 01 00 00 00 01 00 00 00 00 00 00 00 00 00 00 00  // ................
+    0030: 00 10 00 00 01 00 00 00 00 00 00 00 00 00 00 00  // ................
+    0040: 01 28 01 00 00 00 00 00 00 00 00 00 00 00 00 00  // .(..............
+    0050: 00 00 0A 00 00 00 00 00 00 00 00 00 01 00 00 00  // ................
+    0060: 00 00 00 00 00 00 00 00 01 28 01 00 00 00 00 00  // .........(......
+    0070: 00 00 10 00 00 00 00 00 00 00 F0 07 00 00 00 00  // ................
+    0080: 00 00 00 00 01 00 00 00 00 00 00 00 00 00 00 00  // ................
+    0090: 01 28 00 00 00 00 00 00 00 00 00 00 00 00 00 00  // .(..............
+    00A0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  // ................
+    00B0: 00 00 00 00 00 00 00 00 01 28 00 00 00 00 00 00  // .........(......
+    00C0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  // ................
+    00D0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  // ................
diff --git a/tests/data/acpi/pc/SRAT.memhp.dsl b/tests/data/acpi/pc/SRAT.memhp.dsl
new file mode 100644
index 0000000000..803f9c8f1a
--- /dev/null
+++ b/tests/data/acpi/pc/SRAT.memhp.dsl
@@ -0,0 +1,125 @@ 
+/*
+ * Intel ACPI Component Architecture
+ * AML/ASL+ Disassembler version 20190509 (64-bit version)
+ * Copyright (c) 2000 - 2019 Intel Corporation
+ * 
+ * Disassembly of tests/data/acpi/pc/SRAT.memhp, Tue Aug  4 11:14:15 2020
+ *
+ * ACPI Data Table [SRAT]
+ *
+ * Format: [HexOffset DecimalOffset ByteLength]  FieldName : FieldValue
+ */
+
+[000h 0000   4]                    Signature : "SRAT"    [System Resource Affinity Table]
+[004h 0004   4]                 Table Length : 00000108
+[008h 0008   1]                     Revision : 01
+[009h 0009   1]                     Checksum : A2
+[00Ah 0010   6]                       Oem ID : "BOCHS "
+[010h 0016   8]                 Oem Table ID : "BXPCSRAT"
+[018h 0024   4]                 Oem Revision : 00000001
+[01Ch 0028   4]              Asl Compiler ID : "BXPC"
+[020h 0032   4]        Asl Compiler Revision : 00000001
+
+[024h 0036   4]               Table Revision : 00000001
+[028h 0040   8]                     Reserved : 0000000000000000
+
+[030h 0048   1]                Subtable Type : 00 [Processor Local APIC/SAPIC Affinity]
+[031h 0049   1]                       Length : 10
+
+[032h 0050   1]      Proximity Domain Low(8) : 00
+[033h 0051   1]                      Apic ID : 00
+[034h 0052   4]        Flags (decoded below) : 00000001
+                                     Enabled : 1
+[038h 0056   1]              Local Sapic EID : 00
+[039h 0057   3]    Proximity Domain High(24) : 000000
+[03Ch 0060   4]                 Clock Domain : 00000000
+
+[040h 0064   1]                Subtable Type : 01 [Memory Affinity]
+[041h 0065   1]                       Length : 28
+
+[042h 0066   4]             Proximity Domain : 00000000
+[046h 0070   2]                    Reserved1 : 0000
+[048h 0072   8]                 Base Address : 0000000000000000
+[050h 0080   8]               Address Length : 00000000000A0000
+[058h 0088   4]                    Reserved2 : 00000000
+[05Ch 0092   4]        Flags (decoded below) : 00000001
+                                     Enabled : 1
+                               Hot Pluggable : 0
+                                Non-Volatile : 0
+[060h 0096   8]                    Reserved3 : 0000000000000000
+
+[068h 0104   1]                Subtable Type : 01 [Memory Affinity]
+[069h 0105   1]                       Length : 28
+
+[06Ah 0106   4]             Proximity Domain : 00000000
+[06Eh 0110   2]                    Reserved1 : 0000
+[070h 0112   8]                 Base Address : 0000000000100000
+[078h 0120   8]               Address Length : 0000000003F00000
+[080h 0128   4]                    Reserved2 : 00000000
+[084h 0132   4]        Flags (decoded below) : 00000001
+                                     Enabled : 1
+                               Hot Pluggable : 0
+                                Non-Volatile : 0
+[088h 0136   8]                    Reserved3 : 0000000000000000
+
+[090h 0144   1]                Subtable Type : 01 [Memory Affinity]
+[091h 0145   1]                       Length : 28
+
+[092h 0146   4]             Proximity Domain : 00000001
+[096h 0150   2]                    Reserved1 : 0000
+[098h 0152   8]                 Base Address : 0000000004000000
+[0A0h 0160   8]               Address Length : 0000000004000000
+[0A8h 0168   4]                    Reserved2 : 00000000
+[0ACh 0172   4]        Flags (decoded below) : 00000001
+                                     Enabled : 1
+                               Hot Pluggable : 0
+                                Non-Volatile : 0
+[0B0h 0176   8]                    Reserved3 : 0000000000000000
+
+[0B8h 0184   1]                Subtable Type : 01 [Memory Affinity]
+[0B9h 0185   1]                       Length : 28
+
+[0BAh 0186   4]             Proximity Domain : 00000000
+[0BEh 0190   2]                    Reserved1 : 0000
+[0C0h 0192   8]                 Base Address : 0000000000000000
+[0C8h 0200   8]               Address Length : 0000000000000000
+[0D0h 0208   4]                    Reserved2 : 00000000
+[0D4h 0212   4]        Flags (decoded below) : 00000000
+                                     Enabled : 0
+                               Hot Pluggable : 0
+                                Non-Volatile : 0
+[0D8h 0216   8]                    Reserved3 : 0000000000000000
+
+[0E0h 0224   1]                Subtable Type : 01 [Memory Affinity]
+[0E1h 0225   1]                       Length : 28
+
+[0E2h 0226   4]             Proximity Domain : 00000001
+[0E6h 0230   2]                    Reserved1 : 0000
+[0E8h 0232   8]                 Base Address : 0000000100000000
+[0F0h 0240   8]               Address Length : 00000000F8000000
+[0F8h 0248   4]                    Reserved2 : 00000000
+[0FCh 0252   4]        Flags (decoded below) : 00000003
+                                     Enabled : 1
+                               Hot Pluggable : 1
+                                Non-Volatile : 0
+[100h 0256   8]                    Reserved3 : 0000000000000000
+
+Raw Table Data: Length 264 (0x108)
+
+    0000: 53 52 41 54 08 01 00 00 01 A2 42 4F 43 48 53 20  // SRAT......BOCHS 
+    0010: 42 58 50 43 53 52 41 54 01 00 00 00 42 58 50 43  // BXPCSRAT....BXPC
+    0020: 01 00 00 00 01 00 00 00 00 00 00 00 00 00 00 00  // ................
+    0030: 00 10 00 00 01 00 00 00 00 00 00 00 00 00 00 00  // ................
+    0040: 01 28 00 00 00 00 00 00 00 00 00 00 00 00 00 00  // .(..............
+    0050: 00 00 0A 00 00 00 00 00 00 00 00 00 01 00 00 00  // ................
+    0060: 00 00 00 00 00 00 00 00 01 28 00 00 00 00 00 00  // .........(......
+    0070: 00 00 10 00 00 00 00 00 00 00 F0 03 00 00 00 00  // ................
+    0080: 00 00 00 00 01 00 00 00 00 00 00 00 00 00 00 00  // ................
+    0090: 01 28 01 00 00 00 00 00 00 00 00 04 00 00 00 00  // .(..............
+    00A0: 00 00 00 04 00 00 00 00 00 00 00 00 01 00 00 00  // ................
+    00B0: 00 00 00 00 00 00 00 00 01 28 00 00 00 00 00 00  // .........(......
+    00C0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  // ................
+    00D0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  // ................
+    00E0: 01 28 01 00 00 00 00 00 00 00 00 00 01 00 00 00  // .(..............
+    00F0: 00 00 00 F8 00 00 00 00 00 00 00 00 03 00 00 00  // ................
+    0100: 00 00 00 00 00 00 00 00                          // ........
diff --git a/tests/data/acpi/pc/SRAT.numamem.dsl b/tests/data/acpi/pc/SRAT.numamem.dsl
new file mode 100644
index 0000000000..74f4382dd1
--- /dev/null
+++ b/tests/data/acpi/pc/SRAT.numamem.dsl
@@ -0,0 +1,108 @@ 
+/*
+ * Intel ACPI Component Architecture
+ * AML/ASL+ Disassembler version 20190509 (64-bit version)
+ * Copyright (c) 2000 - 2019 Intel Corporation
+ * 
+ * Disassembly of tests/data/acpi/pc/SRAT.numamem, Tue Aug  4 11:14:15 2020
+ *
+ * ACPI Data Table [SRAT]
+ *
+ * Format: [HexOffset DecimalOffset ByteLength]  FieldName : FieldValue
+ */
+
+[000h 0000   4]                    Signature : "SRAT"    [System Resource Affinity Table]
+[004h 0004   4]                 Table Length : 000000E0
+[008h 0008   1]                     Revision : 01
+[009h 0009   1]                     Checksum : F5
+[00Ah 0010   6]                       Oem ID : "BOCHS "
+[010h 0016   8]                 Oem Table ID : "BXPCSRAT"
+[018h 0024   4]                 Oem Revision : 00000001
+[01Ch 0028   4]              Asl Compiler ID : "BXPC"
+[020h 0032   4]        Asl Compiler Revision : 00000001
+
+[024h 0036   4]               Table Revision : 00000001
+[028h 0040   8]                     Reserved : 0000000000000000
+
+[030h 0048   1]                Subtable Type : 00 [Processor Local APIC/SAPIC Affinity]
+[031h 0049   1]                       Length : 10
+
+[032h 0050   1]      Proximity Domain Low(8) : 00
+[033h 0051   1]                      Apic ID : 00
+[034h 0052   4]        Flags (decoded below) : 00000001
+                                     Enabled : 1
+[038h 0056   1]              Local Sapic EID : 00
+[039h 0057   3]    Proximity Domain High(24) : 000000
+[03Ch 0060   4]                 Clock Domain : 00000000
+
+[040h 0064   1]                Subtable Type : 01 [Memory Affinity]
+[041h 0065   1]                       Length : 28
+
+[042h 0066   4]             Proximity Domain : 00000001
+[046h 0070   2]                    Reserved1 : 0000
+[048h 0072   8]                 Base Address : 0000000000000000
+[050h 0080   8]               Address Length : 00000000000A0000
+[058h 0088   4]                    Reserved2 : 00000000
+[05Ch 0092   4]        Flags (decoded below) : 00000001
+                                     Enabled : 1
+                               Hot Pluggable : 0
+                                Non-Volatile : 0
+[060h 0096   8]                    Reserved3 : 0000000000000000
+
+[068h 0104   1]                Subtable Type : 01 [Memory Affinity]
+[069h 0105   1]                       Length : 28
+
+[06Ah 0106   4]             Proximity Domain : 00000001
+[06Eh 0110   2]                    Reserved1 : 0000
+[070h 0112   8]                 Base Address : 0000000000100000
+[078h 0120   8]               Address Length : 0000000007F00000
+[080h 0128   4]                    Reserved2 : 00000000
+[084h 0132   4]        Flags (decoded below) : 00000001
+                                     Enabled : 1
+                               Hot Pluggable : 0
+                                Non-Volatile : 0
+[088h 0136   8]                    Reserved3 : 0000000000000000
+
+[090h 0144   1]                Subtable Type : 01 [Memory Affinity]
+[091h 0145   1]                       Length : 28
+
+[092h 0146   4]             Proximity Domain : 00000000
+[096h 0150   2]                    Reserved1 : 0000
+[098h 0152   8]                 Base Address : 0000000000000000
+[0A0h 0160   8]               Address Length : 0000000000000000
+[0A8h 0168   4]                    Reserved2 : 00000000
+[0ACh 0172   4]        Flags (decoded below) : 00000000
+                                     Enabled : 0
+                               Hot Pluggable : 0
+                                Non-Volatile : 0
+[0B0h 0176   8]                    Reserved3 : 0000000000000000
+
+[0B8h 0184   1]                Subtable Type : 01 [Memory Affinity]
+[0B9h 0185   1]                       Length : 28
+
+[0BAh 0186   4]             Proximity Domain : 00000000
+[0BEh 0190   2]                    Reserved1 : 0000
+[0C0h 0192   8]                 Base Address : 0000000000000000
+[0C8h 0200   8]               Address Length : 0000000000000000
+[0D0h 0208   4]                    Reserved2 : 00000000
+[0D4h 0212   4]        Flags (decoded below) : 00000000
+                                     Enabled : 0
+                               Hot Pluggable : 0
+                                Non-Volatile : 0
+[0D8h 0216   8]                    Reserved3 : 0000000000000000
+
+Raw Table Data: Length 224 (0xE0)
+
+    0000: 53 52 41 54 E0 00 00 00 01 F5 42 4F 43 48 53 20  // SRAT......BOCHS 
+    0010: 42 58 50 43 53 52 41 54 01 00 00 00 42 58 50 43  // BXPCSRAT....BXPC
+    0020: 01 00 00 00 01 00 00 00 00 00 00 00 00 00 00 00  // ................
+    0030: 00 10 00 00 01 00 00 00 00 00 00 00 00 00 00 00  // ................
+    0040: 01 28 01 00 00 00 00 00 00 00 00 00 00 00 00 00  // .(..............
+    0050: 00 00 0A 00 00 00 00 00 00 00 00 00 01 00 00 00  // ................
+    0060: 00 00 00 00 00 00 00 00 01 28 01 00 00 00 00 00  // .........(......
+    0070: 00 00 10 00 00 00 00 00 00 00 F0 07 00 00 00 00  // ................
+    0080: 00 00 00 00 01 00 00 00 00 00 00 00 00 00 00 00  // ................
+    0090: 01 28 00 00 00 00 00 00 00 00 00 00 00 00 00 00  // .(..............
+    00A0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  // ................
+    00B0: 00 00 00 00 00 00 00 00 01 28 00 00 00 00 00 00  // .........(......
+    00C0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  // ................
+    00D0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  // ................
diff --git a/tests/data/acpi/pc/SSDT.dsl b/tests/data/acpi/pc/SSDT.dsl
new file mode 100644
index 0000000000..abd64f6133
--- /dev/null
+++ b/tests/data/acpi/pc/SSDT.dsl
@@ -0,0 +1,205 @@ 
+/*
+ * Intel ACPI Component Architecture
+ * AML/ASL+ Disassembler version 20190509 (64-bit version)
+ * Copyright (c) 2000 - 2019 Intel Corporation
+ * 
+ * Disassembling to symbolic ASL+ operators
+ *
+ * Disassembly of tests/data/acpi/pc/SSDT.dimmpxm, Mon Sep 28 17:24:38 2020
+ *
+ * Original Table Header:
+ *     Signature        "SSDT"
+ *     Length           0x000002DE (734)
+ *     Revision         0x01
+ *     Checksum         0x56
+ *     OEM ID           "BOCHS "
+ *     OEM Table ID     "NVDIMM"
+ *     OEM Revision     0x00000001 (1)
+ *     Compiler ID      "BXPC"
+ *     Compiler Version 0x00000001 (1)
+ */
+DefinitionBlock ("", "SSDT", 1, "BOCHS ", "NVDIMM", 0x00000001)
+{
+    Scope (\_SB)
+    {
+        Device (NVDR)
+        {
+            Name (_HID, "ACPI0012" /* NVDIMM Root Device */)  // _HID: Hardware ID
+            Method (NCAL, 5, Serialized)
+            {
+                Local6 = MEMA /* \MEMA */
+                OperationRegion (NPIO, SystemIO, 0x0A18, 0x04)
+                OperationRegion (NRAM, SystemMemory, Local6, 0x1000)
+                Field (NPIO, DWordAcc, NoLock, Preserve)
+                {
+                    NTFI,   32
+                }
+
+                Field (NRAM, DWordAcc, NoLock, Preserve)
+                {
+                    HDLE,   32, 
+                    REVS,   32, 
+                    FUNC,   32, 
+                    FARG,   32672
+                }
+
+                Field (NRAM, DWordAcc, NoLock, Preserve)
+                {
+                    RLEN,   32, 
+                    ODAT,   32736
+                }
+
+                If ((Arg4 == Zero))
+                {
+                    Local0 = ToUUID ("2f10e7a4-9e91-11e4-89d3-123b93f75cba")
+                }
+                ElseIf ((Arg4 == 0x00010000))
+                {
+                    Local0 = ToUUID ("648b9cf2-cda1-4312-8ad9-49c4af32bd62")
+                }
+                Else
+                {
+                    Local0 = ToUUID ("4309ac30-0d11-11e4-9191-0800200c9a66")
+                }
+
+                If (((Local6 == Zero) | (Arg0 != Local0)))
+                {
+                    If ((Arg2 == Zero))
+                    {
+                        Return (Buffer (One)
+                        {
+                             0x00                                             // .
+                        })
+                    }
+
+                    Return (Buffer (One)
+                    {
+                         0x01                                             // .
+                    })
+                }
+
+                HDLE = Arg4
+                REVS = Arg1
+                FUNC = Arg2
+                If (((ObjectType (Arg3) == 0x04) & (SizeOf (Arg3) == One)))
+                {
+                    Local2 = Arg3 [Zero]
+                    Local3 = DerefOf (Local2)
+                    FARG = Local3
+                }
+
+                NTFI = Local6
+                Local1 = (RLEN - 0x04)
+                If ((Local1 < 0x08))
+                {
+                    Local2 = Zero
+                    Name (TBUF, Buffer (One)
+                    {
+                         0x00                                             // .
+                    })
+                    Local7 = Buffer (Zero){}
+                    While ((Local2 < Local1))
+                    {
+                        TBUF [Zero] = DerefOf (ODAT [Local2])
+                        Concatenate (Local7, TBUF, Local7)
+                        Local2++
+                    }
+
+                    Return (Local7)
+                }
+
+                Local1 = (Local1 << 0x03)
+                CreateField (ODAT, Zero, Local1, OBUF)
+                Return (OBUF) /* \_SB_.NVDR.NCAL.OBUF */
+            }
+
+            Method (_DSM, 4, NotSerialized)  // _DSM: Device-Specific Method
+            {
+                Return (NCAL (Arg0, Arg1, Arg2, Arg3, Zero))
+            }
+
+            Name (RSTA, Zero)
+            Method (RFIT, 1, Serialized)
+            {
+                Name (OFST, Zero)
+                OFST = Arg0
+                Local0 = NCAL (ToUUID ("648b9cf2-cda1-4312-8ad9-49c4af32bd62"), One, One, Package (0x01)
+                        {
+                            OFST
+                        }, 0x00010000)
+                CreateDWordField (Local0, Zero, STAU)
+                RSTA = STAU /* \_SB_.NVDR.RFIT.STAU */
+                If ((Zero != STAU))
+                {
+                    Return (Buffer (Zero){})
+                }
+
+                Local1 = SizeOf (Local0)
+                Local1 -= 0x04
+                If ((Local1 == Zero))
+                {
+                    Return (Buffer (Zero){})
+                }
+
+                CreateField (Local0, 0x20, (Local1 << 0x03), BUFF)
+                Return (BUFF) /* \_SB_.NVDR.RFIT.BUFF */
+            }
+
+            Method (_FIT, 0, Serialized)  // _FIT: Firmware Interface Table
+            {
+                Local2 = Buffer (Zero){}
+                Local3 = Zero
+                While (One)
+                {
+                    Local0 = RFIT (Local3)
+                    Local1 = SizeOf (Local0)
+                    If ((RSTA == 0x0100))
+                    {
+                        Local2 = Buffer (Zero){}
+                        Local3 = Zero
+                    }
+                    Else
+                    {
+                        If ((Local1 == Zero))
+                        {
+                            Return (Local2)
+                        }
+
+                        Local3 += Local1
+                        Concatenate (Local2, Local0, Local2)
+                    }
+                }
+            }
+
+            Device (NV00)
+            {
+                Name (_ADR, One)  // _ADR: Address
+                Method (_DSM, 4, NotSerialized)  // _DSM: Device-Specific Method
+                {
+                    Return (NCAL (Arg0, Arg1, Arg2, Arg3, One))
+                }
+            }
+
+            Device (NV01)
+            {
+                Name (_ADR, 0x02)  // _ADR: Address
+                Method (_DSM, 4, NotSerialized)  // _DSM: Device-Specific Method
+                {
+                    Return (NCAL (Arg0, Arg1, Arg2, Arg3, 0x02))
+                }
+            }
+
+            Device (NV02)
+            {
+                Name (_ADR, 0x03)  // _ADR: Address
+                Method (_DSM, 4, NotSerialized)  // _DSM: Device-Specific Method
+                {
+                    Return (NCAL (Arg0, Arg1, Arg2, Arg3, 0x03))
+                }
+            }
+        }
+    }
+
+    Name (MEMA, 0x07FFE000)
+}
+
diff --git a/tests/data/acpi/pc/WAET.acpihmat b/tests/data/acpi/pc/WAET.acpihmat
new file mode 100644
index 0000000000000000000000000000000000000000..c2240f58dff6b2f765386b5a2e506fda4800be3e
GIT binary patch
literal 40
mcmWG{bPds9U|?YEaPoKd2v%^42yhMuiZKGkKx`1r1jGQWX$JuS

literal 0
HcmV?d00001

diff --git a/tests/data/acpi/pc/WAET.acpihmat.dsl b/tests/data/acpi/pc/WAET.acpihmat.dsl
new file mode 100644
index 0000000000..991c8773b8
--- /dev/null
+++ b/tests/data/acpi/pc/WAET.acpihmat.dsl
@@ -0,0 +1,31 @@ 
+/*
+ * Intel ACPI Component Architecture
+ * AML/ASL+ Disassembler version 20190509 (64-bit version)
+ * Copyright (c) 2000 - 2019 Intel Corporation
+ * 
+ * Disassembly of tests/data/acpi/pc/WAET.acpihmat, Tue Aug  4 11:14:15 2020
+ *
+ * ACPI Data Table [WAET]
+ *
+ * Format: [HexOffset DecimalOffset ByteLength]  FieldName : FieldValue
+ */
+
+[000h 0000   4]                    Signature : "WAET"    [Windows ACPI Emulated Devices Table]
+[004h 0004   4]                 Table Length : 00000028
+[008h 0008   1]                     Revision : 01
+[009h 0009   1]                     Checksum : 88
+[00Ah 0010   6]                       Oem ID : "BOCHS "
+[010h 0016   8]                 Oem Table ID : "BXPCWAET"
+[018h 0024   4]                 Oem Revision : 00000001
+[01Ch 0028   4]              Asl Compiler ID : "BXPC"
+[020h 0032   4]        Asl Compiler Revision : 00000001
+
+[024h 0036   4]        Flags (decoded below) : 00000002
+                        RTC needs no INT ack : 0
+                     PM timer, one read only : 1
+
+Raw Table Data: Length 40 (0x28)
+
+    0000: 57 41 45 54 28 00 00 00 01 88 42 4F 43 48 53 20  // WAET(.....BOCHS 
+    0010: 42 58 50 43 57 41 45 54 01 00 00 00 42 58 50 43  // BXPCWAET....BXPC
+    0020: 01 00 00 00 02 00 00 00                          // ........
diff --git a/tests/data/acpi/pc/WAET.bridge b/tests/data/acpi/pc/WAET.bridge
new file mode 100644
index 0000000000000000000000000000000000000000..c2240f58dff6b2f765386b5a2e506fda4800be3e
GIT binary patch
literal 40
mcmWG{bPds9U|?YEaPoKd2v%^42yhMuiZKGkKx`1r1jGQWX$JuS

literal 0
HcmV?d00001

diff --git a/tests/data/acpi/pc/WAET.bridge.dsl b/tests/data/acpi/pc/WAET.bridge.dsl
new file mode 100644
index 0000000000..f47dbb17a7
--- /dev/null
+++ b/tests/data/acpi/pc/WAET.bridge.dsl
@@ -0,0 +1,31 @@ 
+/*
+ * Intel ACPI Component Architecture
+ * AML/ASL+ Disassembler version 20190509 (64-bit version)
+ * Copyright (c) 2000 - 2019 Intel Corporation
+ * 
+ * Disassembly of tests/data/acpi/pc/WAET.bridge, Tue Aug  4 11:14:15 2020
+ *
+ * ACPI Data Table [WAET]
+ *
+ * Format: [HexOffset DecimalOffset ByteLength]  FieldName : FieldValue
+ */
+
+[000h 0000   4]                    Signature : "WAET"    [Windows ACPI Emulated Devices Table]
+[004h 0004   4]                 Table Length : 00000028
+[008h 0008   1]                     Revision : 01
+[009h 0009   1]                     Checksum : 88
+[00Ah 0010   6]                       Oem ID : "BOCHS "
+[010h 0016   8]                 Oem Table ID : "BXPCWAET"
+[018h 0024   4]                 Oem Revision : 00000001
+[01Ch 0028   4]              Asl Compiler ID : "BXPC"
+[020h 0032   4]        Asl Compiler Revision : 00000001
+
+[024h 0036   4]        Flags (decoded below) : 00000002
+                        RTC needs no INT ack : 0
+                     PM timer, one read only : 1
+
+Raw Table Data: Length 40 (0x28)
+
+    0000: 57 41 45 54 28 00 00 00 01 88 42 4F 43 48 53 20  // WAET(.....BOCHS 
+    0010: 42 58 50 43 57 41 45 54 01 00 00 00 42 58 50 43  // BXPCWAET....BXPC
+    0020: 01 00 00 00 02 00 00 00                          // ........
diff --git a/tests/data/acpi/pc/WAET.cphp b/tests/data/acpi/pc/WAET.cphp
new file mode 100644
index 0000000000000000000000000000000000000000..c2240f58dff6b2f765386b5a2e506fda4800be3e
GIT binary patch
literal 40
mcmWG{bPds9U|?YEaPoKd2v%^42yhMuiZKGkKx`1r1jGQWX$JuS

literal 0
HcmV?d00001

diff --git a/tests/data/acpi/pc/WAET.cphp.dsl b/tests/data/acpi/pc/WAET.cphp.dsl
new file mode 100644
index 0000000000..ff077a14eb
--- /dev/null
+++ b/tests/data/acpi/pc/WAET.cphp.dsl
@@ -0,0 +1,31 @@ 
+/*
+ * Intel ACPI Component Architecture
+ * AML/ASL+ Disassembler version 20190509 (64-bit version)
+ * Copyright (c) 2000 - 2019 Intel Corporation
+ * 
+ * Disassembly of tests/data/acpi/pc/WAET.cphp, Tue Aug  4 11:14:15 2020
+ *
+ * ACPI Data Table [WAET]
+ *
+ * Format: [HexOffset DecimalOffset ByteLength]  FieldName : FieldValue
+ */
+
+[000h 0000   4]                    Signature : "WAET"    [Windows ACPI Emulated Devices Table]
+[004h 0004   4]                 Table Length : 00000028
+[008h 0008   1]                     Revision : 01
+[009h 0009   1]                     Checksum : 88
+[00Ah 0010   6]                       Oem ID : "BOCHS "
+[010h 0016   8]                 Oem Table ID : "BXPCWAET"
+[018h 0024   4]                 Oem Revision : 00000001
+[01Ch 0028   4]              Asl Compiler ID : "BXPC"
+[020h 0032   4]        Asl Compiler Revision : 00000001
+
+[024h 0036   4]        Flags (decoded below) : 00000002
+                        RTC needs no INT ack : 0
+                     PM timer, one read only : 1
+
+Raw Table Data: Length 40 (0x28)
+
+    0000: 57 41 45 54 28 00 00 00 01 88 42 4F 43 48 53 20  // WAET(.....BOCHS 
+    0010: 42 58 50 43 57 41 45 54 01 00 00 00 42 58 50 43  // BXPCWAET....BXPC
+    0020: 01 00 00 00 02 00 00 00                          // ........
diff --git a/tests/data/acpi/pc/WAET.dimmpxm b/tests/data/acpi/pc/WAET.dimmpxm
new file mode 100644
index 0000000000000000000000000000000000000000..c2240f58dff6b2f765386b5a2e506fda4800be3e
GIT binary patch
literal 40
mcmWG{bPds9U|?YEaPoKd2v%^42yhMuiZKGkKx`1r1jGQWX$JuS

literal 0
HcmV?d00001

diff --git a/tests/data/acpi/pc/WAET.dimmpxm.dsl b/tests/data/acpi/pc/WAET.dimmpxm.dsl
new file mode 100644
index 0000000000..b8192c8601
--- /dev/null
+++ b/tests/data/acpi/pc/WAET.dimmpxm.dsl
@@ -0,0 +1,31 @@ 
+/*
+ * Intel ACPI Component Architecture
+ * AML/ASL+ Disassembler version 20190509 (64-bit version)
+ * Copyright (c) 2000 - 2019 Intel Corporation
+ * 
+ * Disassembly of tests/data/acpi/pc/WAET.dimmpxm, Tue Aug  4 11:14:15 2020
+ *
+ * ACPI Data Table [WAET]
+ *
+ * Format: [HexOffset DecimalOffset ByteLength]  FieldName : FieldValue
+ */
+
+[000h 0000   4]                    Signature : "WAET"    [Windows ACPI Emulated Devices Table]
+[004h 0004   4]                 Table Length : 00000028
+[008h 0008   1]                     Revision : 01
+[009h 0009   1]                     Checksum : 88
+[00Ah 0010   6]                       Oem ID : "BOCHS "
+[010h 0016   8]                 Oem Table ID : "BXPCWAET"
+[018h 0024   4]                 Oem Revision : 00000001
+[01Ch 0028   4]              Asl Compiler ID : "BXPC"
+[020h 0032   4]        Asl Compiler Revision : 00000001
+
+[024h 0036   4]        Flags (decoded below) : 00000002
+                        RTC needs no INT ack : 0
+                     PM timer, one read only : 1
+
+Raw Table Data: Length 40 (0x28)
+
+    0000: 57 41 45 54 28 00 00 00 01 88 42 4F 43 48 53 20  // WAET(.....BOCHS 
+    0010: 42 58 50 43 57 41 45 54 01 00 00 00 42 58 50 43  // BXPCWAET....BXPC
+    0020: 01 00 00 00 02 00 00 00                          // ........
diff --git a/tests/data/acpi/pc/WAET.dsl b/tests/data/acpi/pc/WAET.dsl
new file mode 100644
index 0000000000..53b6c1dc42
--- /dev/null
+++ b/tests/data/acpi/pc/WAET.dsl
@@ -0,0 +1,31 @@ 
+/*
+ * Intel ACPI Component Architecture
+ * AML/ASL+ Disassembler version 20190509 (64-bit version)
+ * Copyright (c) 2000 - 2019 Intel Corporation
+ * 
+ * Disassembly of tests/data/acpi/pc/WAET.roothp, Mon Sep 28 17:24:38 2020
+ *
+ * ACPI Data Table [WAET]
+ *
+ * Format: [HexOffset DecimalOffset ByteLength]  FieldName : FieldValue
+ */
+
+[000h 0000   4]                    Signature : "WAET"    [Windows ACPI Emulated Devices Table]
+[004h 0004   4]                 Table Length : 00000028
+[008h 0008   1]                     Revision : 01
+[009h 0009   1]                     Checksum : 88
+[00Ah 0010   6]                       Oem ID : "BOCHS "
+[010h 0016   8]                 Oem Table ID : "BXPCWAET"
+[018h 0024   4]                 Oem Revision : 00000001
+[01Ch 0028   4]              Asl Compiler ID : "BXPC"
+[020h 0032   4]        Asl Compiler Revision : 00000001
+
+[024h 0036   4]        Flags (decoded below) : 00000002
+                        RTC needs no INT ack : 0
+                     PM timer, one read only : 1
+
+Raw Table Data: Length 40 (0x28)
+
+    0000: 57 41 45 54 28 00 00 00 01 88 42 4F 43 48 53 20  // WAET(.....BOCHS 
+    0010: 42 58 50 43 57 41 45 54 01 00 00 00 42 58 50 43  // BXPCWAET....BXPC
+    0020: 01 00 00 00 02 00 00 00                          // ........
diff --git a/tests/data/acpi/pc/WAET.hpbridge b/tests/data/acpi/pc/WAET.hpbridge
new file mode 100644
index 0000000000000000000000000000000000000000..c2240f58dff6b2f765386b5a2e506fda4800be3e
GIT binary patch
literal 40
mcmWG{bPds9U|?YEaPoKd2v%^42yhMuiZKGkKx`1r1jGQWX$JuS

literal 0
HcmV?d00001

diff --git a/tests/data/acpi/pc/WAET.ipmikcs b/tests/data/acpi/pc/WAET.ipmikcs
new file mode 100644
index 0000000000000000000000000000000000000000..c2240f58dff6b2f765386b5a2e506fda4800be3e
GIT binary patch
literal 40
mcmWG{bPds9U|?YEaPoKd2v%^42yhMuiZKGkKx`1r1jGQWX$JuS

literal 0
HcmV?d00001

diff --git a/tests/data/acpi/pc/WAET.ipmikcs.dsl b/tests/data/acpi/pc/WAET.ipmikcs.dsl
new file mode 100644
index 0000000000..5144bada0f
--- /dev/null
+++ b/tests/data/acpi/pc/WAET.ipmikcs.dsl
@@ -0,0 +1,31 @@ 
+/*
+ * Intel ACPI Component Architecture
+ * AML/ASL+ Disassembler version 20190509 (64-bit version)
+ * Copyright (c) 2000 - 2019 Intel Corporation
+ * 
+ * Disassembly of tests/data/acpi/pc/WAET.ipmikcs, Tue Aug  4 11:14:15 2020
+ *
+ * ACPI Data Table [WAET]
+ *
+ * Format: [HexOffset DecimalOffset ByteLength]  FieldName : FieldValue
+ */
+
+[000h 0000   4]                    Signature : "WAET"    [Windows ACPI Emulated Devices Table]
+[004h 0004   4]                 Table Length : 00000028
+[008h 0008   1]                     Revision : 01
+[009h 0009   1]                     Checksum : 88
+[00Ah 0010   6]                       Oem ID : "BOCHS "
+[010h 0016   8]                 Oem Table ID : "BXPCWAET"
+[018h 0024   4]                 Oem Revision : 00000001
+[01Ch 0028   4]              Asl Compiler ID : "BXPC"
+[020h 0032   4]        Asl Compiler Revision : 00000001
+
+[024h 0036   4]        Flags (decoded below) : 00000002
+                        RTC needs no INT ack : 0
+                     PM timer, one read only : 1
+
+Raw Table Data: Length 40 (0x28)
+
+    0000: 57 41 45 54 28 00 00 00 01 88 42 4F 43 48 53 20  // WAET(.....BOCHS 
+    0010: 42 58 50 43 57 41 45 54 01 00 00 00 42 58 50 43  // BXPCWAET....BXPC
+    0020: 01 00 00 00 02 00 00 00                          // ........
diff --git a/tests/data/acpi/pc/WAET.memhp b/tests/data/acpi/pc/WAET.memhp
new file mode 100644
index 0000000000000000000000000000000000000000..c2240f58dff6b2f765386b5a2e506fda4800be3e
GIT binary patch
literal 40
mcmWG{bPds9U|?YEaPoKd2v%^42yhMuiZKGkKx`1r1jGQWX$JuS

literal 0
HcmV?d00001

diff --git a/tests/data/acpi/pc/WAET.memhp.dsl b/tests/data/acpi/pc/WAET.memhp.dsl
new file mode 100644
index 0000000000..bfe3a036d7
--- /dev/null
+++ b/tests/data/acpi/pc/WAET.memhp.dsl
@@ -0,0 +1,31 @@ 
+/*
+ * Intel ACPI Component Architecture
+ * AML/ASL+ Disassembler version 20190509 (64-bit version)
+ * Copyright (c) 2000 - 2019 Intel Corporation
+ * 
+ * Disassembly of tests/data/acpi/pc/WAET.memhp, Tue Aug  4 11:14:15 2020
+ *
+ * ACPI Data Table [WAET]
+ *
+ * Format: [HexOffset DecimalOffset ByteLength]  FieldName : FieldValue
+ */
+
+[000h 0000   4]                    Signature : "WAET"    [Windows ACPI Emulated Devices Table]
+[004h 0004   4]                 Table Length : 00000028
+[008h 0008   1]                     Revision : 01
+[009h 0009   1]                     Checksum : 88
+[00Ah 0010   6]                       Oem ID : "BOCHS "
+[010h 0016   8]                 Oem Table ID : "BXPCWAET"
+[018h 0024   4]                 Oem Revision : 00000001
+[01Ch 0028   4]              Asl Compiler ID : "BXPC"
+[020h 0032   4]        Asl Compiler Revision : 00000001
+
+[024h 0036   4]        Flags (decoded below) : 00000002
+                        RTC needs no INT ack : 0
+                     PM timer, one read only : 1
+
+Raw Table Data: Length 40 (0x28)
+
+    0000: 57 41 45 54 28 00 00 00 01 88 42 4F 43 48 53 20  // WAET(.....BOCHS 
+    0010: 42 58 50 43 57 41 45 54 01 00 00 00 42 58 50 43  // BXPCWAET....BXPC
+    0020: 01 00 00 00 02 00 00 00                          // ........
diff --git a/tests/data/acpi/pc/WAET.numamem b/tests/data/acpi/pc/WAET.numamem
new file mode 100644
index 0000000000000000000000000000000000000000..c2240f58dff6b2f765386b5a2e506fda4800be3e
GIT binary patch
literal 40
mcmWG{bPds9U|?YEaPoKd2v%^42yhMuiZKGkKx`1r1jGQWX$JuS

literal 0
HcmV?d00001

diff --git a/tests/data/acpi/pc/WAET.numamem.dsl b/tests/data/acpi/pc/WAET.numamem.dsl
new file mode 100644
index 0000000000..e4c6cf4bf8
--- /dev/null
+++ b/tests/data/acpi/pc/WAET.numamem.dsl
@@ -0,0 +1,31 @@ 
+/*
+ * Intel ACPI Component Architecture
+ * AML/ASL+ Disassembler version 20190509 (64-bit version)
+ * Copyright (c) 2000 - 2019 Intel Corporation
+ * 
+ * Disassembly of tests/data/acpi/pc/WAET.numamem, Tue Aug  4 11:14:15 2020
+ *
+ * ACPI Data Table [WAET]
+ *
+ * Format: [HexOffset DecimalOffset ByteLength]  FieldName : FieldValue
+ */
+
+[000h 0000   4]                    Signature : "WAET"    [Windows ACPI Emulated Devices Table]
+[004h 0004   4]                 Table Length : 00000028
+[008h 0008   1]                     Revision : 01
+[009h 0009   1]                     Checksum : 88
+[00Ah 0010   6]                       Oem ID : "BOCHS "
+[010h 0016   8]                 Oem Table ID : "BXPCWAET"
+[018h 0024   4]                 Oem Revision : 00000001
+[01Ch 0028   4]              Asl Compiler ID : "BXPC"
+[020h 0032   4]        Asl Compiler Revision : 00000001
+
+[024h 0036   4]        Flags (decoded below) : 00000002
+                        RTC needs no INT ack : 0
+                     PM timer, one read only : 1
+
+Raw Table Data: Length 40 (0x28)
+
+    0000: 57 41 45 54 28 00 00 00 01 88 42 4F 43 48 53 20  // WAET(.....BOCHS 
+    0010: 42 58 50 43 57 41 45 54 01 00 00 00 42 58 50 43  // BXPCWAET....BXPC
+    0020: 01 00 00 00 02 00 00 00                          // ........
diff --git a/tests/data/acpi/pc/WAET.roothp b/tests/data/acpi/pc/WAET.roothp
new file mode 100644
index 0000000000000000000000000000000000000000..c2240f58dff6b2f765386b5a2e506fda4800be3e
GIT binary patch
literal 40
mcmWG{bPds9U|?YEaPoKd2v%^42yhMuiZKGkKx`1r1jGQWX$JuS

literal 0
HcmV?d00001

diff --git a/tests/data/acpi/q35/APIC.acpihmat.dsl b/tests/data/acpi/q35/APIC.acpihmat.dsl
new file mode 100644
index 0000000000..5fe9fb4669
--- /dev/null
+++ b/tests/data/acpi/q35/APIC.acpihmat.dsl
@@ -0,0 +1,112 @@ 
+/*
+ * Intel ACPI Component Architecture
+ * AML/ASL+ Disassembler version 20190509 (64-bit version)
+ * Copyright (c) 2000 - 2019 Intel Corporation
+ * 
+ * Disassembly of tests/data/acpi/q35/APIC.acpihmat, Tue Aug  4 11:14:15 2020
+ *
+ * ACPI Data Table [APIC]
+ *
+ * Format: [HexOffset DecimalOffset ByteLength]  FieldName : FieldValue
+ */
+
+[000h 0000   4]                    Signature : "APIC"    [Multiple APIC Description Table (MADT)]
+[004h 0004   4]                 Table Length : 00000080
+[008h 0008   1]                     Revision : 01
+[009h 0009   1]                     Checksum : DA
+[00Ah 0010   6]                       Oem ID : "BOCHS "
+[010h 0016   8]                 Oem Table ID : "BXPCAPIC"
+[018h 0024   4]                 Oem Revision : 00000001
+[01Ch 0028   4]              Asl Compiler ID : "BXPC"
+[020h 0032   4]        Asl Compiler Revision : 00000001
+
+[024h 0036   4]           Local Apic Address : FEE00000
+[028h 0040   4]        Flags (decoded below) : 00000001
+                         PC-AT Compatibility : 1
+
+[02Ch 0044   1]                Subtable Type : 00 [Processor Local APIC]
+[02Dh 0045   1]                       Length : 08
+[02Eh 0046   1]                 Processor ID : 00
+[02Fh 0047   1]                Local Apic ID : 00
+[030h 0048   4]        Flags (decoded below) : 00000001
+                           Processor Enabled : 1
+                      Runtime Online Capable : 0
+
+[034h 0052   1]                Subtable Type : 00 [Processor Local APIC]
+[035h 0053   1]                       Length : 08
+[036h 0054   1]                 Processor ID : 01
+[037h 0055   1]                Local Apic ID : 01
+[038h 0056   4]        Flags (decoded below) : 00000001
+                           Processor Enabled : 1
+                      Runtime Online Capable : 0
+
+[03Ch 0060   1]                Subtable Type : 01 [I/O APIC]
+[03Dh 0061   1]                       Length : 0C
+[03Eh 0062   1]                  I/O Apic ID : 00
+[03Fh 0063   1]                     Reserved : 00
+[040h 0064   4]                      Address : FEC00000
+[044h 0068   4]                    Interrupt : 00000000
+
+[048h 0072   1]                Subtable Type : 02 [Interrupt Source Override]
+[049h 0073   1]                       Length : 0A
+[04Ah 0074   1]                          Bus : 00
+[04Bh 0075   1]                       Source : 00
+[04Ch 0076   4]                    Interrupt : 00000002
+[050h 0080   2]        Flags (decoded below) : 0000
+                                    Polarity : 0
+                                Trigger Mode : 0
+
+[052h 0082   1]                Subtable Type : 02 [Interrupt Source Override]
+[053h 0083   1]                       Length : 0A
+[054h 0084   1]                          Bus : 00
+[055h 0085   1]                       Source : 05
+[056h 0086   4]                    Interrupt : 00000005
+[05Ah 0090   2]        Flags (decoded below) : 000D
+                                    Polarity : 1
+                                Trigger Mode : 3
+
+[05Ch 0092   1]                Subtable Type : 02 [Interrupt Source Override]
+[05Dh 0093   1]                       Length : 0A
+[05Eh 0094   1]                          Bus : 00
+[05Fh 0095   1]                       Source : 09
+[060h 0096   4]                    Interrupt : 00000009
+[064h 0100   2]        Flags (decoded below) : 000D
+                                    Polarity : 1
+                                Trigger Mode : 3
+
+[066h 0102   1]                Subtable Type : 02 [Interrupt Source Override]
+[067h 0103   1]                       Length : 0A
+[068h 0104   1]                          Bus : 00
+[069h 0105   1]                       Source : 0A
+[06Ah 0106   4]                    Interrupt : 0000000A
+[06Eh 0110   2]        Flags (decoded below) : 000D
+                                    Polarity : 1
+                                Trigger Mode : 3
+
+[070h 0112   1]                Subtable Type : 02 [Interrupt Source Override]
+[071h 0113   1]                       Length : 0A
+[072h 0114   1]                          Bus : 00
+[073h 0115   1]                       Source : 0B
+[074h 0116   4]                    Interrupt : 0000000B
+[078h 0120   2]        Flags (decoded below) : 000D
+                                    Polarity : 1
+                                Trigger Mode : 3
+
+[07Ah 0122   1]                Subtable Type : 04 [Local APIC NMI]
+[07Bh 0123   1]                       Length : 06
+[07Ch 0124   1]                 Processor ID : FF
+[07Dh 0125   2]        Flags (decoded below) : 0000
+                                    Polarity : 0
+                                Trigger Mode : 0
+[07Fh 0127   1]         Interrupt Input LINT : 01
+
+Raw Table Data: Length 128 (0x80)
+
+    0000: 41 50 49 43 80 00 00 00 01 DA 42 4F 43 48 53 20  // APIC......BOCHS 
+    0010: 42 58 50 43 41 50 49 43 01 00 00 00 42 58 50 43  // BXPCAPIC....BXPC
+    0020: 01 00 00 00 00 00 E0 FE 01 00 00 00 00 08 00 00  // ................
+    0030: 01 00 00 00 00 08 01 01 01 00 00 00 01 0C 00 00  // ................
+    0040: 00 00 C0 FE 00 00 00 00 02 0A 00 00 02 00 00 00  // ................
+    0050: 00 00 02 0A 00 05 05 00 00 00 0D 00 02 0A 00 09  // ................
+    0060: 09 00 00 00 0D 00 02 0A 00 0A 0A 00 00 00 0D 00  // ................
+    0070: 02 0A 00 0B 0B 00 00 00 0D 00 04 06 FF 00 00 01  // ................
diff --git a/tests/data/acpi/q35/APIC.bridge b/tests/data/acpi/q35/APIC.bridge
new file mode 100644
index 0000000000000000000000000000000000000000..84509e0ae4cabeb5ead3e42a4edfa50abddbc17d
GIT binary patch
literal 120
zcmZ<^@N}+VU|?W;>*Vk35v<@85#a0y6k`O6f!H9Lf#JbFFwFr}2jnsGfW!{`1CdNz
hKn!AlSgfo-nis_4<b<)ffC?aD+}vOm3)_F75db|X4FLcE

literal 0
HcmV?d00001

diff --git a/tests/data/acpi/q35/APIC.bridge.dsl b/tests/data/acpi/q35/APIC.bridge.dsl
new file mode 100644
index 0000000000..2489067401
--- /dev/null
+++ b/tests/data/acpi/q35/APIC.bridge.dsl
@@ -0,0 +1,104 @@ 
+/*
+ * Intel ACPI Component Architecture
+ * AML/ASL+ Disassembler version 20190509 (64-bit version)
+ * Copyright (c) 2000 - 2019 Intel Corporation
+ * 
+ * Disassembly of tests/data/acpi/q35/APIC.bridge, Tue Aug  4 11:14:15 2020
+ *
+ * ACPI Data Table [APIC]
+ *
+ * Format: [HexOffset DecimalOffset ByteLength]  FieldName : FieldValue
+ */
+
+[000h 0000   4]                    Signature : "APIC"    [Multiple APIC Description Table (MADT)]
+[004h 0004   4]                 Table Length : 00000078
+[008h 0008   1]                     Revision : 01
+[009h 0009   1]                     Checksum : ED
+[00Ah 0010   6]                       Oem ID : "BOCHS "
+[010h 0016   8]                 Oem Table ID : "BXPCAPIC"
+[018h 0024   4]                 Oem Revision : 00000001
+[01Ch 0028   4]              Asl Compiler ID : "BXPC"
+[020h 0032   4]        Asl Compiler Revision : 00000001
+
+[024h 0036   4]           Local Apic Address : FEE00000
+[028h 0040   4]        Flags (decoded below) : 00000001
+                         PC-AT Compatibility : 1
+
+[02Ch 0044   1]                Subtable Type : 00 [Processor Local APIC]
+[02Dh 0045   1]                       Length : 08
+[02Eh 0046   1]                 Processor ID : 00
+[02Fh 0047   1]                Local Apic ID : 00
+[030h 0048   4]        Flags (decoded below) : 00000001
+                           Processor Enabled : 1
+                      Runtime Online Capable : 0
+
+[034h 0052   1]                Subtable Type : 01 [I/O APIC]
+[035h 0053   1]                       Length : 0C
+[036h 0054   1]                  I/O Apic ID : 00
+[037h 0055   1]                     Reserved : 00
+[038h 0056   4]                      Address : FEC00000
+[03Ch 0060   4]                    Interrupt : 00000000
+
+[040h 0064   1]                Subtable Type : 02 [Interrupt Source Override]
+[041h 0065   1]                       Length : 0A
+[042h 0066   1]                          Bus : 00
+[043h 0067   1]                       Source : 00
+[044h 0068   4]                    Interrupt : 00000002
+[048h 0072   2]        Flags (decoded below) : 0000
+                                    Polarity : 0
+                                Trigger Mode : 0
+
+[04Ah 0074   1]                Subtable Type : 02 [Interrupt Source Override]
+[04Bh 0075   1]                       Length : 0A
+[04Ch 0076   1]                          Bus : 00
+[04Dh 0077   1]                       Source : 05
+[04Eh 0078   4]                    Interrupt : 00000005
+[052h 0082   2]        Flags (decoded below) : 000D
+                                    Polarity : 1
+                                Trigger Mode : 3
+
+[054h 0084   1]                Subtable Type : 02 [Interrupt Source Override]
+[055h 0085   1]                       Length : 0A
+[056h 0086   1]                          Bus : 00
+[057h 0087   1]                       Source : 09
+[058h 0088   4]                    Interrupt : 00000009
+[05Ch 0092   2]        Flags (decoded below) : 000D
+                                    Polarity : 1
+                                Trigger Mode : 3
+
+[05Eh 0094   1]                Subtable Type : 02 [Interrupt Source Override]
+[05Fh 0095   1]                       Length : 0A
+[060h 0096   1]                          Bus : 00
+[061h 0097   1]                       Source : 0A
+[062h 0098   4]                    Interrupt : 0000000A
+[066h 0102   2]        Flags (decoded below) : 000D
+                                    Polarity : 1
+                                Trigger Mode : 3
+
+[068h 0104   1]                Subtable Type : 02 [Interrupt Source Override]
+[069h 0105   1]                       Length : 0A
+[06Ah 0106   1]                          Bus : 00
+[06Bh 0107   1]                       Source : 0B
+[06Ch 0108   4]                    Interrupt : 0000000B
+[070h 0112   2]        Flags (decoded below) : 000D
+                                    Polarity : 1
+                                Trigger Mode : 3
+
+[072h 0114   1]                Subtable Type : 04 [Local APIC NMI]
+[073h 0115   1]                       Length : 06
+[074h 0116   1]                 Processor ID : FF
+[075h 0117   2]        Flags (decoded below) : 0000
+                                    Polarity : 0
+                                Trigger Mode : 0
+[077h 0119   1]         Interrupt Input LINT : 01
+
+Raw Table Data: Length 120 (0x78)
+
+    0000: 41 50 49 43 78 00 00 00 01 ED 42 4F 43 48 53 20  // APICx.....BOCHS 
+    0010: 42 58 50 43 41 50 49 43 01 00 00 00 42 58 50 43  // BXPCAPIC....BXPC
+    0020: 01 00 00 00 00 00 E0 FE 01 00 00 00 00 08 00 00  // ................
+    0030: 01 00 00 00 01 0C 00 00 00 00 C0 FE 00 00 00 00  // ................
+    0040: 02 0A 00 00 02 00 00 00 00 00 02 0A 00 05 05 00  // ................
+    0050: 00 00 0D 00 02 0A 00 09 09 00 00 00 0D 00 02 0A  // ................
+    0060: 00 0A 0A 00 00 00 0D 00 02 0A 00 0B 0B 00 00 00  // ................
+    0070: 0D 00 04 06 FF 00 00 01                          // ........
diff --git a/tests/data/acpi/q35/APIC.cphp.dsl b/tests/data/acpi/q35/APIC.cphp.dsl
new file mode 100644
index 0000000000..be8daf5f80
--- /dev/null
+++ b/tests/data/acpi/q35/APIC.cphp.dsl
@@ -0,0 +1,146 @@ 
+/*
+ * Intel ACPI Component Architecture
+ * AML/ASL+ Disassembler version 20190509 (64-bit version)
+ * Copyright (c) 2000 - 2019 Intel Corporation
+ * 
+ * Disassembly of tests/data/acpi/q35/APIC.cphp, Tue Aug  4 11:14:15 2020
+ *
+ * ACPI Data Table [APIC]
+ *
+ * Format: [HexOffset DecimalOffset ByteLength]  FieldName : FieldValue
+ */
+
+[000h 0000   4]                    Signature : "APIC"    [Multiple APIC Description Table (MADT)]
+[004h 0004   4]                 Table Length : 000000A0
+[008h 0008   1]                     Revision : 01
+[009h 0009   1]                     Checksum : 7B
+[00Ah 0010   6]                       Oem ID : "BOCHS "
+[010h 0016   8]                 Oem Table ID : "BXPCAPIC"
+[018h 0024   4]                 Oem Revision : 00000001
+[01Ch 0028   4]              Asl Compiler ID : "BXPC"
+[020h 0032   4]        Asl Compiler Revision : 00000001
+
+[024h 0036   4]           Local Apic Address : FEE00000
+[028h 0040   4]        Flags (decoded below) : 00000001
+                         PC-AT Compatibility : 1
+
+[02Ch 0044   1]                Subtable Type : 00 [Processor Local APIC]
+[02Dh 0045   1]                       Length : 08
+[02Eh 0046   1]                 Processor ID : 00
+[02Fh 0047   1]                Local Apic ID : 00
+[030h 0048   4]        Flags (decoded below) : 00000001
+                           Processor Enabled : 1
+                      Runtime Online Capable : 0
+
+[034h 0052   1]                Subtable Type : 00 [Processor Local APIC]
+[035h 0053   1]                       Length : 08
+[036h 0054   1]                 Processor ID : 01
+[037h 0055   1]                Local Apic ID : 01
+[038h 0056   4]        Flags (decoded below) : 00000001
+                           Processor Enabled : 1
+                      Runtime Online Capable : 0
+
+[03Ch 0060   1]                Subtable Type : 00 [Processor Local APIC]
+[03Dh 0061   1]                       Length : 08
+[03Eh 0062   1]                 Processor ID : 02
+[03Fh 0063   1]                Local Apic ID : 02
+[040h 0064   4]        Flags (decoded below) : 00000000
+                           Processor Enabled : 0
+                      Runtime Online Capable : 0
+
+[044h 0068   1]                Subtable Type : 00 [Processor Local APIC]
+[045h 0069   1]                       Length : 08
+[046h 0070   1]                 Processor ID : 03
+[047h 0071   1]                Local Apic ID : 04
+[048h 0072   4]        Flags (decoded below) : 00000000
+                           Processor Enabled : 0
+                      Runtime Online Capable : 0
+
+[04Ch 0076   1]                Subtable Type : 00 [Processor Local APIC]
+[04Dh 0077   1]                       Length : 08
+[04Eh 0078   1]                 Processor ID : 04
+[04Fh 0079   1]                Local Apic ID : 05
+[050h 0080   4]        Flags (decoded below) : 00000000
+                           Processor Enabled : 0
+                      Runtime Online Capable : 0
+
+[054h 0084   1]                Subtable Type : 00 [Processor Local APIC]
+[055h 0085   1]                       Length : 08
+[056h 0086   1]                 Processor ID : 05
+[057h 0087   1]                Local Apic ID : 06
+[058h 0088   4]        Flags (decoded below) : 00000000
+                           Processor Enabled : 0
+                      Runtime Online Capable : 0
+
+[05Ch 0092   1]                Subtable Type : 01 [I/O APIC]
+[05Dh 0093   1]                       Length : 0C
+[05Eh 0094   1]                  I/O Apic ID : 00
+[05Fh 0095   1]                     Reserved : 00
+[060h 0096   4]                      Address : FEC00000
+[064h 0100   4]                    Interrupt : 00000000
+
+[068h 0104   1]                Subtable Type : 02 [Interrupt Source Override]
+[069h 0105   1]                       Length : 0A
+[06Ah 0106   1]                          Bus : 00
+[06Bh 0107   1]                       Source : 00
+[06Ch 0108   4]                    Interrupt : 00000002
+[070h 0112   2]        Flags (decoded below) : 0000
+                                    Polarity : 0
+                                Trigger Mode : 0
+
+[072h 0114   1]                Subtable Type : 02 [Interrupt Source Override]
+[073h 0115   1]                       Length : 0A
+[074h 0116   1]                          Bus : 00
+[075h 0117   1]                       Source : 05
+[076h 0118   4]                    Interrupt : 00000005
+[07Ah 0122   2]        Flags (decoded below) : 000D
+                                    Polarity : 1
+                                Trigger Mode : 3
+
+[07Ch 0124   1]                Subtable Type : 02 [Interrupt Source Override]
+[07Dh 0125   1]                       Length : 0A
+[07Eh 0126   1]                          Bus : 00
+[07Fh 0127   1]                       Source : 09
+[080h 0128   4]                    Interrupt : 00000009
+[084h 0132   2]        Flags (decoded below) : 000D
+                                    Polarity : 1
+                                Trigger Mode : 3
+
+[086h 0134   1]                Subtable Type : 02 [Interrupt Source Override]
+[087h 0135   1]                       Length : 0A
+[088h 0136   1]                          Bus : 00
+[089h 0137   1]                       Source : 0A
+[08Ah 0138   4]                    Interrupt : 0000000A
+[08Eh 0142   2]        Flags (decoded below) : 000D
+                                    Polarity : 1
+                                Trigger Mode : 3
+
+[090h 0144   1]                Subtable Type : 02 [Interrupt Source Override]
+[091h 0145   1]                       Length : 0A
+[092h 0146   1]                          Bus : 00
+[093h 0147   1]                       Source : 0B
+[094h 0148   4]                    Interrupt : 0000000B
+[098h 0152   2]        Flags (decoded below) : 000D
+                                    Polarity : 1
+                                Trigger Mode : 3
+
+[09Ah 0154   1]                Subtable Type : 04 [Local APIC NMI]
+[09Bh 0155   1]                       Length : 06
+[09Ch 0156   1]                 Processor ID : FF
+[09Dh 0157   2]        Flags (decoded below) : 0000
+                                    Polarity : 0
+                                Trigger Mode : 0
+[09Fh 0159   1]         Interrupt Input LINT : 01
+
+Raw Table Data: Length 160 (0xA0)
+
+    0000: 41 50 49 43 A0 00 00 00 01 7B 42 4F 43 48 53 20  // APIC.....{BOCHS 
+    0010: 42 58 50 43 41 50 49 43 01 00 00 00 42 58 50 43  // BXPCAPIC....BXPC
+    0020: 01 00 00 00 00 00 E0 FE 01 00 00 00 00 08 00 00  // ................
+    0030: 01 00 00 00 00 08 01 01 01 00 00 00 00 08 02 02  // ................
+    0040: 00 00 00 00 00 08 03 04 00 00 00 00 00 08 04 05  // ................
+    0050: 00 00 00 00 00 08 05 06 00 00 00 00 01 0C 00 00  // ................
+    0060: 00 00 C0 FE 00 00 00 00 02 0A 00 00 02 00 00 00  // ................
+    0070: 00 00 02 0A 00 05 05 00 00 00 0D 00 02 0A 00 09  // ................
+    0080: 09 00 00 00 0D 00 02 0A 00 0A 0A 00 00 00 0D 00  // ................
+    0090: 02 0A 00 0B 0B 00 00 00 0D 00 04 06 FF 00 00 01  // ................
diff --git a/tests/data/acpi/q35/APIC.dimmpxm.dsl b/tests/data/acpi/q35/APIC.dimmpxm.dsl
new file mode 100644
index 0000000000..798ab91bed
--- /dev/null
+++ b/tests/data/acpi/q35/APIC.dimmpxm.dsl
@@ -0,0 +1,129 @@ 
+/*
+ * Intel ACPI Component Architecture
+ * AML/ASL+ Disassembler version 20190509 (64-bit version)
+ * Copyright (c) 2000 - 2019 Intel Corporation
+ * 
+ * Disassembly of tests/data/acpi/q35/APIC.dimmpxm, Tue Aug  4 11:14:15 2020
+ *
+ * ACPI Data Table [APIC]
+ *
+ * Format: [HexOffset DecimalOffset ByteLength]  FieldName : FieldValue
+ */
+
+[000h 0000   4]                    Signature : "APIC"    [Multiple APIC Description Table (MADT)]
+[004h 0004   4]                 Table Length : 00000090
+[008h 0008   1]                     Revision : 01
+[009h 0009   1]                     Checksum : AE
+[00Ah 0010   6]                       Oem ID : "BOCHS "
+[010h 0016   8]                 Oem Table ID : "BXPCAPIC"
+[018h 0024   4]                 Oem Revision : 00000001
+[01Ch 0028   4]              Asl Compiler ID : "BXPC"
+[020h 0032   4]        Asl Compiler Revision : 00000001
+
+[024h 0036   4]           Local Apic Address : FEE00000
+[028h 0040   4]        Flags (decoded below) : 00000001
+                         PC-AT Compatibility : 1
+
+[02Ch 0044   1]                Subtable Type : 00 [Processor Local APIC]
+[02Dh 0045   1]                       Length : 08
+[02Eh 0046   1]                 Processor ID : 00
+[02Fh 0047   1]                Local Apic ID : 00
+[030h 0048   4]        Flags (decoded below) : 00000001
+                           Processor Enabled : 1
+                      Runtime Online Capable : 0
+
+[034h 0052   1]                Subtable Type : 00 [Processor Local APIC]
+[035h 0053   1]                       Length : 08
+[036h 0054   1]                 Processor ID : 01
+[037h 0055   1]                Local Apic ID : 01
+[038h 0056   4]        Flags (decoded below) : 00000001
+                           Processor Enabled : 1
+                      Runtime Online Capable : 0
+
+[03Ch 0060   1]                Subtable Type : 00 [Processor Local APIC]
+[03Dh 0061   1]                       Length : 08
+[03Eh 0062   1]                 Processor ID : 02
+[03Fh 0063   1]                Local Apic ID : 02
+[040h 0064   4]        Flags (decoded below) : 00000001
+                           Processor Enabled : 1
+                      Runtime Online Capable : 0
+
+[044h 0068   1]                Subtable Type : 00 [Processor Local APIC]
+[045h 0069   1]                       Length : 08
+[046h 0070   1]                 Processor ID : 03
+[047h 0071   1]                Local Apic ID : 03
+[048h 0072   4]        Flags (decoded below) : 00000001
+                           Processor Enabled : 1
+                      Runtime Online Capable : 0
+
+[04Ch 0076   1]                Subtable Type : 01 [I/O APIC]
+[04Dh 0077   1]                       Length : 0C
+[04Eh 0078   1]                  I/O Apic ID : 00
+[04Fh 0079   1]                     Reserved : 00
+[050h 0080   4]                      Address : FEC00000
+[054h 0084   4]                    Interrupt : 00000000
+
+[058h 0088   1]                Subtable Type : 02 [Interrupt Source Override]
+[059h 0089   1]                       Length : 0A
+[05Ah 0090   1]                          Bus : 00
+[05Bh 0091   1]                       Source : 00
+[05Ch 0092   4]                    Interrupt : 00000002
+[060h 0096   2]        Flags (decoded below) : 0000
+                                    Polarity : 0
+                                Trigger Mode : 0
+
+[062h 0098   1]                Subtable Type : 02 [Interrupt Source Override]
+[063h 0099   1]                       Length : 0A
+[064h 0100   1]                          Bus : 00
+[065h 0101   1]                       Source : 05
+[066h 0102   4]                    Interrupt : 00000005
+[06Ah 0106   2]        Flags (decoded below) : 000D
+                                    Polarity : 1
+                                Trigger Mode : 3
+
+[06Ch 0108   1]                Subtable Type : 02 [Interrupt Source Override]
+[06Dh 0109   1]                       Length : 0A
+[06Eh 0110   1]                          Bus : 00
+[06Fh 0111   1]                       Source : 09
+[070h 0112   4]                    Interrupt : 00000009
+[074h 0116   2]        Flags (decoded below) : 000D
+                                    Polarity : 1
+                                Trigger Mode : 3
+
+[076h 0118   1]                Subtable Type : 02 [Interrupt Source Override]
+[077h 0119   1]                       Length : 0A
+[078h 0120   1]                          Bus : 00
+[079h 0121   1]                       Source : 0A
+[07Ah 0122   4]                    Interrupt : 0000000A
+[07Eh 0126   2]        Flags (decoded below) : 000D
+                                    Polarity : 1
+                                Trigger Mode : 3
+
+[080h 0128   1]                Subtable Type : 02 [Interrupt Source Override]
+[081h 0129   1]                       Length : 0A
+[082h 0130   1]                          Bus : 00
+[083h 0131   1]                       Source : 0B
+[084h 0132   4]                    Interrupt : 0000000B
+[088h 0136   2]        Flags (decoded below) : 000D
+                                    Polarity : 1
+                                Trigger Mode : 3
+
+[08Ah 0138   1]                Subtable Type : 04 [Local APIC NMI]
+[08Bh 0139   1]                       Length : 06
+[08Ch 0140   1]                 Processor ID : FF
+[08Dh 0141   2]        Flags (decoded below) : 0000
+                                    Polarity : 0
+                                Trigger Mode : 0
+[08Fh 0143   1]         Interrupt Input LINT : 01
+
+Raw Table Data: Length 144 (0x90)
+
+    0000: 41 50 49 43 90 00 00 00 01 AE 42 4F 43 48 53 20  // APIC......BOCHS 
+    0010: 42 58 50 43 41 50 49 43 01 00 00 00 42 58 50 43  // BXPCAPIC....BXPC
+    0020: 01 00 00 00 00 00 E0 FE 01 00 00 00 00 08 00 00  // ................
+    0030: 01 00 00 00 00 08 01 01 01 00 00 00 00 08 02 02  // ................
+    0040: 01 00 00 00 00 08 03 03 01 00 00 00 01 0C 00 00  // ................
+    0050: 00 00 C0 FE 00 00 00 00 02 0A 00 00 02 00 00 00  // ................
+    0060: 00 00 02 0A 00 05 05 00 00 00 0D 00 02 0A 00 09  // ................
+    0070: 09 00 00 00 0D 00 02 0A 00 0A 0A 00 00 00 0D 00  // ................
+    0080: 02 0A 00 0B 0B 00 00 00 0D 00 04 06 FF 00 00 01  // ................
diff --git a/tests/data/acpi/q35/APIC.dsl b/tests/data/acpi/q35/APIC.dsl
new file mode 100644
index 0000000000..77d2d2c0a5
--- /dev/null
+++ b/tests/data/acpi/q35/APIC.dsl
@@ -0,0 +1,104 @@ 
+/*
+ * Intel ACPI Component Architecture
+ * AML/ASL+ Disassembler version 20190509 (64-bit version)
+ * Copyright (c) 2000 - 2019 Intel Corporation
+ * 
+ * Disassembly of tests/data/acpi/q35/APIC.tis, Mon Sep 28 17:24:38 2020
+ *
+ * ACPI Data Table [APIC]
+ *
+ * Format: [HexOffset DecimalOffset ByteLength]  FieldName : FieldValue
+ */
+
+[000h 0000   4]                    Signature : "APIC"    [Multiple APIC Description Table (MADT)]
+[004h 0004   4]                 Table Length : 00000078
+[008h 0008   1]                     Revision : 01
+[009h 0009   1]                     Checksum : ED
+[00Ah 0010   6]                       Oem ID : "BOCHS "
+[010h 0016   8]                 Oem Table ID : "BXPCAPIC"
+[018h 0024   4]                 Oem Revision : 00000001
+[01Ch 0028   4]              Asl Compiler ID : "BXPC"
+[020h 0032   4]        Asl Compiler Revision : 00000001
+
+[024h 0036   4]           Local Apic Address : FEE00000
+[028h 0040   4]        Flags (decoded below) : 00000001
+                         PC-AT Compatibility : 1
+
+[02Ch 0044   1]                Subtable Type : 00 [Processor Local APIC]
+[02Dh 0045   1]                       Length : 08
+[02Eh 0046   1]                 Processor ID : 00
+[02Fh 0047   1]                Local Apic ID : 00
+[030h 0048   4]        Flags (decoded below) : 00000001
+                           Processor Enabled : 1
+                      Runtime Online Capable : 0
+
+[034h 0052   1]                Subtable Type : 01 [I/O APIC]
+[035h 0053   1]                       Length : 0C
+[036h 0054   1]                  I/O Apic ID : 00
+[037h 0055   1]                     Reserved : 00
+[038h 0056   4]                      Address : FEC00000
+[03Ch 0060   4]                    Interrupt : 00000000
+
+[040h 0064   1]                Subtable Type : 02 [Interrupt Source Override]
+[041h 0065   1]                       Length : 0A
+[042h 0066   1]                          Bus : 00
+[043h 0067   1]                       Source : 00
+[044h 0068   4]                    Interrupt : 00000002
+[048h 0072   2]        Flags (decoded below) : 0000
+                                    Polarity : 0
+                                Trigger Mode : 0
+
+[04Ah 0074   1]                Subtable Type : 02 [Interrupt Source Override]
+[04Bh 0075   1]                       Length : 0A
+[04Ch 0076   1]                          Bus : 00
+[04Dh 0077   1]                       Source : 05
+[04Eh 0078   4]                    Interrupt : 00000005
+[052h 0082   2]        Flags (decoded below) : 000D
+                                    Polarity : 1
+                                Trigger Mode : 3
+
+[054h 0084   1]                Subtable Type : 02 [Interrupt Source Override]
+[055h 0085   1]                       Length : 0A
+[056h 0086   1]                          Bus : 00
+[057h 0087   1]                       Source : 09
+[058h 0088   4]                    Interrupt : 00000009
+[05Ch 0092   2]        Flags (decoded below) : 000D
+                                    Polarity : 1
+                                Trigger Mode : 3
+
+[05Eh 0094   1]                Subtable Type : 02 [Interrupt Source Override]
+[05Fh 0095   1]                       Length : 0A
+[060h 0096   1]                          Bus : 00
+[061h 0097   1]                       Source : 0A
+[062h 0098   4]                    Interrupt : 0000000A
+[066h 0102   2]        Flags (decoded below) : 000D
+                                    Polarity : 1
+                                Trigger Mode : 3
+
+[068h 0104   1]                Subtable Type : 02 [Interrupt Source Override]
+[069h 0105   1]                       Length : 0A
+[06Ah 0106   1]                          Bus : 00
+[06Bh 0107   1]                       Source : 0B
+[06Ch 0108   4]                    Interrupt : 0000000B
+[070h 0112   2]        Flags (decoded below) : 000D
+                                    Polarity : 1
+                                Trigger Mode : 3
+
+[072h 0114   1]                Subtable Type : 04 [Local APIC NMI]
+[073h 0115   1]                       Length : 06
+[074h 0116   1]                 Processor ID : FF
+[075h 0117   2]        Flags (decoded below) : 0000
+                                    Polarity : 0
+                                Trigger Mode : 0
+[077h 0119   1]         Interrupt Input LINT : 01
+
+Raw Table Data: Length 120 (0x78)
+
+    0000: 41 50 49 43 78 00 00 00 01 ED 42 4F 43 48 53 20  // APICx.....BOCHS 
+    0010: 42 58 50 43 41 50 49 43 01 00 00 00 42 58 50 43  // BXPCAPIC....BXPC
+    0020: 01 00 00 00 00 00 E0 FE 01 00 00 00 00 08 00 00  // ................
+    0030: 01 00 00 00 01 0C 00 00 00 00 C0 FE 00 00 00 00  // ................
+    0040: 02 0A 00 00 02 00 00 00 00 00 02 0A 00 05 05 00  // ................
+    0050: 00 00 0D 00 02 0A 00 09 09 00 00 00 0D 00 02 0A  // ................
+    0060: 00 0A 0A 00 00 00 0D 00 02 0A 00 0B 0B 00 00 00  // ................
+    0070: 0D 00 04 06 FF 00 00 01                          // ........
diff --git a/tests/data/acpi/q35/APIC.ipmibt b/tests/data/acpi/q35/APIC.ipmibt
new file mode 100644
index 0000000000000000000000000000000000000000..84509e0ae4cabeb5ead3e42a4edfa50abddbc17d
GIT binary patch
literal 120
zcmZ<^@N}+VU|?W;>*Vk35v<@85#a0y6k`O6f!H9Lf#JbFFwFr}2jnsGfW!{`1CdNz
hKn!AlSgfo-nis_4<b<)ffC?aD+}vOm3)_F75db|X4FLcE

literal 0
HcmV?d00001

diff --git a/tests/data/acpi/q35/APIC.ipmibt.dsl b/tests/data/acpi/q35/APIC.ipmibt.dsl
new file mode 100644
index 0000000000..127e21e2fe
--- /dev/null
+++ b/tests/data/acpi/q35/APIC.ipmibt.dsl
@@ -0,0 +1,104 @@ 
+/*
+ * Intel ACPI Component Architecture
+ * AML/ASL+ Disassembler version 20190509 (64-bit version)
+ * Copyright (c) 2000 - 2019 Intel Corporation
+ * 
+ * Disassembly of tests/data/acpi/q35/APIC.ipmibt, Tue Aug  4 11:14:15 2020
+ *
+ * ACPI Data Table [APIC]
+ *
+ * Format: [HexOffset DecimalOffset ByteLength]  FieldName : FieldValue
+ */
+
+[000h 0000   4]                    Signature : "APIC"    [Multiple APIC Description Table (MADT)]
+[004h 0004   4]                 Table Length : 00000078
+[008h 0008   1]                     Revision : 01
+[009h 0009   1]                     Checksum : ED
+[00Ah 0010   6]                       Oem ID : "BOCHS "
+[010h 0016   8]                 Oem Table ID : "BXPCAPIC"
+[018h 0024   4]                 Oem Revision : 00000001
+[01Ch 0028   4]              Asl Compiler ID : "BXPC"
+[020h 0032   4]        Asl Compiler Revision : 00000001
+
+[024h 0036   4]           Local Apic Address : FEE00000
+[028h 0040   4]        Flags (decoded below) : 00000001
+                         PC-AT Compatibility : 1
+
+[02Ch 0044   1]                Subtable Type : 00 [Processor Local APIC]
+[02Dh 0045   1]                       Length : 08
+[02Eh 0046   1]                 Processor ID : 00
+[02Fh 0047   1]                Local Apic ID : 00
+[030h 0048   4]        Flags (decoded below) : 00000001
+                           Processor Enabled : 1
+                      Runtime Online Capable : 0
+
+[034h 0052   1]                Subtable Type : 01 [I/O APIC]
+[035h 0053   1]                       Length : 0C
+[036h 0054   1]                  I/O Apic ID : 00
+[037h 0055   1]                     Reserved : 00
+[038h 0056   4]                      Address : FEC00000
+[03Ch 0060   4]                    Interrupt : 00000000
+
+[040h 0064   1]                Subtable Type : 02 [Interrupt Source Override]
+[041h 0065   1]                       Length : 0A
+[042h 0066   1]                          Bus : 00
+[043h 0067   1]                       Source : 00
+[044h 0068   4]                    Interrupt : 00000002
+[048h 0072   2]        Flags (decoded below) : 0000
+                                    Polarity : 0
+                                Trigger Mode : 0
+
+[04Ah 0074   1]                Subtable Type : 02 [Interrupt Source Override]
+[04Bh 0075   1]                       Length : 0A
+[04Ch 0076   1]                          Bus : 00
+[04Dh 0077   1]                       Source : 05
+[04Eh 0078   4]                    Interrupt : 00000005
+[052h 0082   2]        Flags (decoded below) : 000D
+                                    Polarity : 1
+                                Trigger Mode : 3
+
+[054h 0084   1]                Subtable Type : 02 [Interrupt Source Override]
+[055h 0085   1]                       Length : 0A
+[056h 0086   1]                          Bus : 00
+[057h 0087   1]                       Source : 09
+[058h 0088   4]                    Interrupt : 00000009
+[05Ch 0092   2]        Flags (decoded below) : 000D
+                                    Polarity : 1
+                                Trigger Mode : 3
+
+[05Eh 0094   1]                Subtable Type : 02 [Interrupt Source Override]
+[05Fh 0095   1]                       Length : 0A
+[060h 0096   1]                          Bus : 00
+[061h 0097   1]                       Source : 0A
+[062h 0098   4]                    Interrupt : 0000000A
+[066h 0102   2]        Flags (decoded below) : 000D
+                                    Polarity : 1
+                                Trigger Mode : 3
+
+[068h 0104   1]                Subtable Type : 02 [Interrupt Source Override]
+[069h 0105   1]                       Length : 0A
+[06Ah 0106   1]                          Bus : 00
+[06Bh 0107   1]                       Source : 0B
+[06Ch 0108   4]                    Interrupt : 0000000B
+[070h 0112   2]        Flags (decoded below) : 000D
+                                    Polarity : 1
+                                Trigger Mode : 3
+
+[072h 0114   1]                Subtable Type : 04 [Local APIC NMI]
+[073h 0115   1]                       Length : 06
+[074h 0116   1]                 Processor ID : FF
+[075h 0117   2]        Flags (decoded below) : 0000
+                                    Polarity : 0
+                                Trigger Mode : 0
+[077h 0119   1]         Interrupt Input LINT : 01
+
+Raw Table Data: Length 120 (0x78)
+
+    0000: 41 50 49 43 78 00 00 00 01 ED 42 4F 43 48 53 20  // APICx.....BOCHS 
+    0010: 42 58 50 43 41 50 49 43 01 00 00 00 42 58 50 43  // BXPCAPIC....BXPC
+    0020: 01 00 00 00 00 00 E0 FE 01 00 00 00 00 08 00 00  // ................
+    0030: 01 00 00 00 01 0C 00 00 00 00 C0 FE 00 00 00 00  // ................
+    0040: 02 0A 00 00 02 00 00 00 00 00 02 0A 00 05 05 00  // ................
+    0050: 00 00 0D 00 02 0A 00 09 09 00 00 00 0D 00 02 0A  // ................
+    0060: 00 0A 0A 00 00 00 0D 00 02 0A 00 0B 0B 00 00 00  // ................
+    0070: 0D 00 04 06 FF 00 00 01                          // ........
diff --git a/tests/data/acpi/q35/APIC.memhp b/tests/data/acpi/q35/APIC.memhp
new file mode 100644
index 0000000000000000000000000000000000000000..84509e0ae4cabeb5ead3e42a4edfa50abddbc17d
GIT binary patch
literal 120
zcmZ<^@N}+VU|?W;>*Vk35v<@85#a0y6k`O6f!H9Lf#JbFFwFr}2jnsGfW!{`1CdNz
hKn!AlSgfo-nis_4<b<)ffC?aD+}vOm3)_F75db|X4FLcE

literal 0
HcmV?d00001

diff --git a/tests/data/acpi/q35/APIC.memhp.dsl b/tests/data/acpi/q35/APIC.memhp.dsl
new file mode 100644
index 0000000000..1c0cb1dad1
--- /dev/null
+++ b/tests/data/acpi/q35/APIC.memhp.dsl
@@ -0,0 +1,104 @@ 
+/*
+ * Intel ACPI Component Architecture
+ * AML/ASL+ Disassembler version 20190509 (64-bit version)
+ * Copyright (c) 2000 - 2019 Intel Corporation
+ * 
+ * Disassembly of tests/data/acpi/q35/APIC.memhp, Tue Aug  4 11:14:15 2020
+ *
+ * ACPI Data Table [APIC]
+ *
+ * Format: [HexOffset DecimalOffset ByteLength]  FieldName : FieldValue
+ */
+
+[000h 0000   4]                    Signature : "APIC"    [Multiple APIC Description Table (MADT)]
+[004h 0004   4]                 Table Length : 00000078
+[008h 0008   1]                     Revision : 01
+[009h 0009   1]                     Checksum : ED
+[00Ah 0010   6]                       Oem ID : "BOCHS "
+[010h 0016   8]                 Oem Table ID : "BXPCAPIC"
+[018h 0024   4]                 Oem Revision : 00000001
+[01Ch 0028   4]              Asl Compiler ID : "BXPC"
+[020h 0032   4]        Asl Compiler Revision : 00000001
+
+[024h 0036   4]           Local Apic Address : FEE00000
+[028h 0040   4]        Flags (decoded below) : 00000001
+                         PC-AT Compatibility : 1
+
+[02Ch 0044   1]                Subtable Type : 00 [Processor Local APIC]
+[02Dh 0045   1]                       Length : 08
+[02Eh 0046   1]                 Processor ID : 00
+[02Fh 0047   1]                Local Apic ID : 00
+[030h 0048   4]        Flags (decoded below) : 00000001
+                           Processor Enabled : 1
+                      Runtime Online Capable : 0
+
+[034h 0052   1]                Subtable Type : 01 [I/O APIC]
+[035h 0053   1]                       Length : 0C
+[036h 0054   1]                  I/O Apic ID : 00
+[037h 0055   1]                     Reserved : 00
+[038h 0056   4]                      Address : FEC00000
+[03Ch 0060   4]                    Interrupt : 00000000
+
+[040h 0064   1]                Subtable Type : 02 [Interrupt Source Override]
+[041h 0065   1]                       Length : 0A
+[042h 0066   1]                          Bus : 00
+[043h 0067   1]                       Source : 00
+[044h 0068   4]                    Interrupt : 00000002
+[048h 0072   2]        Flags (decoded below) : 0000
+                                    Polarity : 0
+                                Trigger Mode : 0
+
+[04Ah 0074   1]                Subtable Type : 02 [Interrupt Source Override]
+[04Bh 0075   1]                       Length : 0A
+[04Ch 0076   1]                          Bus : 00
+[04Dh 0077   1]                       Source : 05
+[04Eh 0078   4]                    Interrupt : 00000005
+[052h 0082   2]        Flags (decoded below) : 000D
+                                    Polarity : 1
+                                Trigger Mode : 3
+
+[054h 0084   1]                Subtable Type : 02 [Interrupt Source Override]
+[055h 0085   1]                       Length : 0A
+[056h 0086   1]                          Bus : 00
+[057h 0087   1]                       Source : 09
+[058h 0088   4]                    Interrupt : 00000009
+[05Ch 0092   2]        Flags (decoded below) : 000D
+                                    Polarity : 1
+                                Trigger Mode : 3
+
+[05Eh 0094   1]                Subtable Type : 02 [Interrupt Source Override]
+[05Fh 0095   1]                       Length : 0A
+[060h 0096   1]                          Bus : 00
+[061h 0097   1]                       Source : 0A
+[062h 0098   4]                    Interrupt : 0000000A
+[066h 0102   2]        Flags (decoded below) : 000D
+                                    Polarity : 1
+                                Trigger Mode : 3
+
+[068h 0104   1]                Subtable Type : 02 [Interrupt Source Override]
+[069h 0105   1]                       Length : 0A
+[06Ah 0106   1]                          Bus : 00
+[06Bh 0107   1]                       Source : 0B
+[06Ch 0108   4]                    Interrupt : 0000000B
+[070h 0112   2]        Flags (decoded below) : 000D
+                                    Polarity : 1
+                                Trigger Mode : 3
+
+[072h 0114   1]                Subtable Type : 04 [Local APIC NMI]
+[073h 0115   1]                       Length : 06
+[074h 0116   1]                 Processor ID : FF
+[075h 0117   2]        Flags (decoded below) : 0000
+                                    Polarity : 0
+                                Trigger Mode : 0
+[077h 0119   1]         Interrupt Input LINT : 01
+
+Raw Table Data: Length 120 (0x78)
+
+    0000: 41 50 49 43 78 00 00 00 01 ED 42 4F 43 48 53 20  // APICx.....BOCHS 
+    0010: 42 58 50 43 41 50 49 43 01 00 00 00 42 58 50 43  // BXPCAPIC....BXPC
+    0020: 01 00 00 00 00 00 E0 FE 01 00 00 00 00 08 00 00  // ................
+    0030: 01 00 00 00 01 0C 00 00 00 00 C0 FE 00 00 00 00  // ................
+    0040: 02 0A 00 00 02 00 00 00 00 00 02 0A 00 05 05 00  // ................
+    0050: 00 00 0D 00 02 0A 00 09 09 00 00 00 0D 00 02 0A  // ................
+    0060: 00 0A 0A 00 00 00 0D 00 02 0A 00 0B 0B 00 00 00  // ................
+    0070: 0D 00 04 06 FF 00 00 01                          // ........
diff --git a/tests/data/acpi/q35/APIC.mmio64 b/tests/data/acpi/q35/APIC.mmio64
new file mode 100644
index 0000000000000000000000000000000000000000..84509e0ae4cabeb5ead3e42a4edfa50abddbc17d
GIT binary patch
literal 120
zcmZ<^@N}+VU|?W;>*Vk35v<@85#a0y6k`O6f!H9Lf#JbFFwFr}2jnsGfW!{`1CdNz
hKn!AlSgfo-nis_4<b<)ffC?aD+}vOm3)_F75db|X4FLcE

literal 0
HcmV?d00001

diff --git a/tests/data/acpi/q35/APIC.mmio64.dsl b/tests/data/acpi/q35/APIC.mmio64.dsl
new file mode 100644
index 0000000000..9a3df90766
--- /dev/null
+++ b/tests/data/acpi/q35/APIC.mmio64.dsl
@@ -0,0 +1,104 @@ 
+/*
+ * Intel ACPI Component Architecture
+ * AML/ASL+ Disassembler version 20190509 (64-bit version)
+ * Copyright (c) 2000 - 2019 Intel Corporation
+ * 
+ * Disassembly of tests/data/acpi/q35/APIC.mmio64, Tue Aug  4 11:14:15 2020
+ *
+ * ACPI Data Table [APIC]
+ *
+ * Format: [HexOffset DecimalOffset ByteLength]  FieldName : FieldValue
+ */
+
+[000h 0000   4]                    Signature : "APIC"    [Multiple APIC Description Table (MADT)]
+[004h 0004   4]                 Table Length : 00000078
+[008h 0008   1]                     Revision : 01
+[009h 0009   1]                     Checksum : ED
+[00Ah 0010   6]                       Oem ID : "BOCHS "
+[010h 0016   8]                 Oem Table ID : "BXPCAPIC"
+[018h 0024   4]                 Oem Revision : 00000001
+[01Ch 0028   4]              Asl Compiler ID : "BXPC"
+[020h 0032   4]        Asl Compiler Revision : 00000001
+
+[024h 0036   4]           Local Apic Address : FEE00000
+[028h 0040   4]        Flags (decoded below) : 00000001
+                         PC-AT Compatibility : 1
+
+[02Ch 0044   1]                Subtable Type : 00 [Processor Local APIC]
+[02Dh 0045   1]                       Length : 08
+[02Eh 0046   1]                 Processor ID : 00
+[02Fh 0047   1]                Local Apic ID : 00
+[030h 0048   4]        Flags (decoded below) : 00000001
+                           Processor Enabled : 1
+                      Runtime Online Capable : 0
+
+[034h 0052   1]                Subtable Type : 01 [I/O APIC]
+[035h 0053   1]                       Length : 0C
+[036h 0054   1]                  I/O Apic ID : 00
+[037h 0055   1]                     Reserved : 00
+[038h 0056   4]                      Address : FEC00000
+[03Ch 0060   4]                    Interrupt : 00000000
+
+[040h 0064   1]                Subtable Type : 02 [Interrupt Source Override]
+[041h 0065   1]                       Length : 0A
+[042h 0066   1]                          Bus : 00
+[043h 0067   1]                       Source : 00
+[044h 0068   4]                    Interrupt : 00000002
+[048h 0072   2]        Flags (decoded below) : 0000
+                                    Polarity : 0
+                                Trigger Mode : 0
+
+[04Ah 0074   1]                Subtable Type : 02 [Interrupt Source Override]
+[04Bh 0075   1]                       Length : 0A
+[04Ch 0076   1]                          Bus : 00
+[04Dh 0077   1]                       Source : 05
+[04Eh 0078   4]                    Interrupt : 00000005
+[052h 0082   2]        Flags (decoded below) : 000D
+                                    Polarity : 1
+                                Trigger Mode : 3
+
+[054h 0084   1]                Subtable Type : 02 [Interrupt Source Override]
+[055h 0085   1]                       Length : 0A
+[056h 0086   1]                          Bus : 00
+[057h 0087   1]                       Source : 09
+[058h 0088   4]                    Interrupt : 00000009
+[05Ch 0092   2]        Flags (decoded below) : 000D
+                                    Polarity : 1
+                                Trigger Mode : 3
+
+[05Eh 0094   1]                Subtable Type : 02 [Interrupt Source Override]
+[05Fh 0095   1]                       Length : 0A
+[060h 0096   1]                          Bus : 00
+[061h 0097   1]                       Source : 0A
+[062h 0098   4]                    Interrupt : 0000000A
+[066h 0102   2]        Flags (decoded below) : 000D
+                                    Polarity : 1
+                                Trigger Mode : 3
+
+[068h 0104   1]                Subtable Type : 02 [Interrupt Source Override]
+[069h 0105   1]                       Length : 0A
+[06Ah 0106   1]                          Bus : 00
+[06Bh 0107   1]                       Source : 0B
+[06Ch 0108   4]                    Interrupt : 0000000B
+[070h 0112   2]        Flags (decoded below) : 000D
+                                    Polarity : 1
+                                Trigger Mode : 3
+
+[072h 0114   1]                Subtable Type : 04 [Local APIC NMI]
+[073h 0115   1]                       Length : 06
+[074h 0116   1]                 Processor ID : FF
+[075h 0117   2]        Flags (decoded below) : 0000
+                                    Polarity : 0
+                                Trigger Mode : 0
+[077h 0119   1]         Interrupt Input LINT : 01
+
+Raw Table Data: Length 120 (0x78)
+
+    0000: 41 50 49 43 78 00 00 00 01 ED 42 4F 43 48 53 20  // APICx.....BOCHS 
+    0010: 42 58 50 43 41 50 49 43 01 00 00 00 42 58 50 43  // BXPCAPIC....BXPC
+    0020: 01 00 00 00 00 00 E0 FE 01 00 00 00 00 08 00 00  // ................
+    0030: 01 00 00 00 01 0C 00 00 00 00 C0 FE 00 00 00 00  // ................
+    0040: 02 0A 00 00 02 00 00 00 00 00 02 0A 00 05 05 00  // ................
+    0050: 00 00 0D 00 02 0A 00 09 09 00 00 00 0D 00 02 0A  // ................
+    0060: 00 0A 0A 00 00 00 0D 00 02 0A 00 0B 0B 00 00 00  // ................
+    0070: 0D 00 04 06 FF 00 00 01                          // ........
diff --git a/tests/data/acpi/q35/APIC.numamem b/tests/data/acpi/q35/APIC.numamem
new file mode 100644
index 0000000000000000000000000000000000000000..84509e0ae4cabeb5ead3e42a4edfa50abddbc17d
GIT binary patch
literal 120
zcmZ<^@N}+VU|?W;>*Vk35v<@85#a0y6k`O6f!H9Lf#JbFFwFr}2jnsGfW!{`1CdNz
hKn!AlSgfo-nis_4<b<)ffC?aD+}vOm3)_F75db|X4FLcE

literal 0
HcmV?d00001

diff --git a/tests/data/acpi/q35/APIC.numamem.dsl b/tests/data/acpi/q35/APIC.numamem.dsl
new file mode 100644
index 0000000000..f4c5480fd6
--- /dev/null
+++ b/tests/data/acpi/q35/APIC.numamem.dsl
@@ -0,0 +1,104 @@ 
+/*
+ * Intel ACPI Component Architecture
+ * AML/ASL+ Disassembler version 20190509 (64-bit version)
+ * Copyright (c) 2000 - 2019 Intel Corporation
+ * 
+ * Disassembly of tests/data/acpi/q35/APIC.numamem, Tue Aug  4 11:14:15 2020
+ *
+ * ACPI Data Table [APIC]
+ *
+ * Format: [HexOffset DecimalOffset ByteLength]  FieldName : FieldValue
+ */
+
+[000h 0000   4]                    Signature : "APIC"    [Multiple APIC Description Table (MADT)]
+[004h 0004   4]                 Table Length : 00000078
+[008h 0008   1]                     Revision : 01
+[009h 0009   1]                     Checksum : ED
+[00Ah 0010   6]                       Oem ID : "BOCHS "
+[010h 0016   8]                 Oem Table ID : "BXPCAPIC"
+[018h 0024   4]                 Oem Revision : 00000001
+[01Ch 0028   4]              Asl Compiler ID : "BXPC"
+[020h 0032   4]        Asl Compiler Revision : 00000001
+
+[024h 0036   4]           Local Apic Address : FEE00000
+[028h 0040   4]        Flags (decoded below) : 00000001
+                         PC-AT Compatibility : 1
+
+[02Ch 0044   1]                Subtable Type : 00 [Processor Local APIC]
+[02Dh 0045   1]                       Length : 08
+[02Eh 0046   1]                 Processor ID : 00
+[02Fh 0047   1]                Local Apic ID : 00
+[030h 0048   4]        Flags (decoded below) : 00000001
+                           Processor Enabled : 1
+                      Runtime Online Capable : 0
+
+[034h 0052   1]                Subtable Type : 01 [I/O APIC]
+[035h 0053   1]                       Length : 0C
+[036h 0054   1]                  I/O Apic ID : 00
+[037h 0055   1]                     Reserved : 00
+[038h 0056   4]                      Address : FEC00000
+[03Ch 0060   4]                    Interrupt : 00000000
+
+[040h 0064   1]                Subtable Type : 02 [Interrupt Source Override]
+[041h 0065   1]                       Length : 0A
+[042h 0066   1]                          Bus : 00
+[043h 0067   1]                       Source : 00
+[044h 0068   4]                    Interrupt : 00000002
+[048h 0072   2]        Flags (decoded below) : 0000
+                                    Polarity : 0
+                                Trigger Mode : 0
+
+[04Ah 0074   1]                Subtable Type : 02 [Interrupt Source Override]
+[04Bh 0075   1]                       Length : 0A
+[04Ch 0076   1]                          Bus : 00
+[04Dh 0077   1]                       Source : 05
+[04Eh 0078   4]                    Interrupt : 00000005
+[052h 0082   2]        Flags (decoded below) : 000D
+                                    Polarity : 1
+                                Trigger Mode : 3
+
+[054h 0084   1]                Subtable Type : 02 [Interrupt Source Override]
+[055h 0085   1]                       Length : 0A
+[056h 0086   1]                          Bus : 00
+[057h 0087   1]                       Source : 09
+[058h 0088   4]                    Interrupt : 00000009
+[05Ch 0092   2]        Flags (decoded below) : 000D
+                                    Polarity : 1
+                                Trigger Mode : 3
+
+[05Eh 0094   1]                Subtable Type : 02 [Interrupt Source Override]
+[05Fh 0095   1]                       Length : 0A
+[060h 0096   1]                          Bus : 00
+[061h 0097   1]                       Source : 0A
+[062h 0098   4]                    Interrupt : 0000000A
+[066h 0102   2]        Flags (decoded below) : 000D
+                                    Polarity : 1
+                                Trigger Mode : 3
+
+[068h 0104   1]                Subtable Type : 02 [Interrupt Source Override]
+[069h 0105   1]                       Length : 0A
+[06Ah 0106   1]                          Bus : 00
+[06Bh 0107   1]                       Source : 0B
+[06Ch 0108   4]                    Interrupt : 0000000B
+[070h 0112   2]        Flags (decoded below) : 000D
+                                    Polarity : 1
+                                Trigger Mode : 3
+
+[072h 0114   1]                Subtable Type : 04 [Local APIC NMI]
+[073h 0115   1]                       Length : 06
+[074h 0116   1]                 Processor ID : FF
+[075h 0117   2]        Flags (decoded below) : 0000
+                                    Polarity : 0
+                                Trigger Mode : 0
+[077h 0119   1]         Interrupt Input LINT : 01
+
+Raw Table Data: Length 120 (0x78)
+
+    0000: 41 50 49 43 78 00 00 00 01 ED 42 4F 43 48 53 20  // APICx.....BOCHS 
+    0010: 42 58 50 43 41 50 49 43 01 00 00 00 42 58 50 43  // BXPCAPIC....BXPC
+    0020: 01 00 00 00 00 00 E0 FE 01 00 00 00 00 08 00 00  // ................
+    0030: 01 00 00 00 01 0C 00 00 00 00 C0 FE 00 00 00 00  // ................
+    0040: 02 0A 00 00 02 00 00 00 00 00 02 0A 00 05 05 00  // ................
+    0050: 00 00 0D 00 02 0A 00 09 09 00 00 00 0D 00 02 0A  // ................
+    0060: 00 0A 0A 00 00 00 0D 00 02 0A 00 0B 0B 00 00 00  // ................
+    0070: 0D 00 04 06 FF 00 00 01                          // ........
diff --git a/tests/data/acpi/q35/APIC.tis b/tests/data/acpi/q35/APIC.tis
new file mode 100644
index 0000000000000000000000000000000000000000..84509e0ae4cabeb5ead3e42a4edfa50abddbc17d
GIT binary patch
literal 120
zcmZ<^@N}+VU|?W;>*Vk35v<@85#a0y6k`O6f!H9Lf#JbFFwFr}2jnsGfW!{`1CdNz
hKn!AlSgfo-nis_4<b<)ffC?aD+}vOm3)_F75db|X4FLcE

literal 0
HcmV?d00001

diff --git a/tests/data/acpi/q35/APIC.tis.dsl b/tests/data/acpi/q35/APIC.tis.dsl
new file mode 100644
index 0000000000..ca2373818e
--- /dev/null
+++ b/tests/data/acpi/q35/APIC.tis.dsl
@@ -0,0 +1,104 @@ 
+/*
+ * Intel ACPI Component Architecture
+ * AML/ASL+ Disassembler version 20190509 (64-bit version)
+ * Copyright (c) 2000 - 2019 Intel Corporation
+ * 
+ * Disassembly of tests/data/acpi/q35/APIC.tis, Tue Aug  4 11:14:15 2020
+ *
+ * ACPI Data Table [APIC]
+ *
+ * Format: [HexOffset DecimalOffset ByteLength]  FieldName : FieldValue
+ */
+
+[000h 0000   4]                    Signature : "APIC"    [Multiple APIC Description Table (MADT)]
+[004h 0004   4]                 Table Length : 00000078
+[008h 0008   1]                     Revision : 01
+[009h 0009   1]                     Checksum : ED
+[00Ah 0010   6]                       Oem ID : "BOCHS "
+[010h 0016   8]                 Oem Table ID : "BXPCAPIC"
+[018h 0024   4]                 Oem Revision : 00000001
+[01Ch 0028   4]              Asl Compiler ID : "BXPC"
+[020h 0032   4]        Asl Compiler Revision : 00000001
+
+[024h 0036   4]           Local Apic Address : FEE00000
+[028h 0040   4]        Flags (decoded below) : 00000001
+                         PC-AT Compatibility : 1
+
+[02Ch 0044   1]                Subtable Type : 00 [Processor Local APIC]
+[02Dh 0045   1]                       Length : 08
+[02Eh 0046   1]                 Processor ID : 00
+[02Fh 0047   1]                Local Apic ID : 00
+[030h 0048   4]        Flags (decoded below) : 00000001
+                           Processor Enabled : 1
+                      Runtime Online Capable : 0
+
+[034h 0052   1]                Subtable Type : 01 [I/O APIC]
+[035h 0053   1]                       Length : 0C
+[036h 0054   1]                  I/O Apic ID : 00
+[037h 0055   1]                     Reserved : 00
+[038h 0056   4]                      Address : FEC00000
+[03Ch 0060   4]                    Interrupt : 00000000
+
+[040h 0064   1]                Subtable Type : 02 [Interrupt Source Override]
+[041h 0065   1]                       Length : 0A
+[042h 0066   1]                          Bus : 00
+[043h 0067   1]                       Source : 00
+[044h 0068   4]                    Interrupt : 00000002
+[048h 0072   2]        Flags (decoded below) : 0000
+                                    Polarity : 0
+                                Trigger Mode : 0
+
+[04Ah 0074   1]                Subtable Type : 02 [Interrupt Source Override]
+[04Bh 0075   1]                       Length : 0A
+[04Ch 0076   1]                          Bus : 00
+[04Dh 0077   1]                       Source : 05
+[04Eh 0078   4]                    Interrupt : 00000005
+[052h 0082   2]        Flags (decoded below) : 000D
+                                    Polarity : 1
+                                Trigger Mode : 3
+
+[054h 0084   1]                Subtable Type : 02 [Interrupt Source Override]
+[055h 0085   1]                       Length : 0A
+[056h 0086   1]                          Bus : 00
+[057h 0087   1]                       Source : 09
+[058h 0088   4]                    Interrupt : 00000009
+[05Ch 0092   2]        Flags (decoded below) : 000D
+                                    Polarity : 1
+                                Trigger Mode : 3
+
+[05Eh 0094   1]                Subtable Type : 02 [Interrupt Source Override]
+[05Fh 0095   1]                       Length : 0A
+[060h 0096   1]                          Bus : 00
+[061h 0097   1]                       Source : 0A
+[062h 0098   4]                    Interrupt : 0000000A
+[066h 0102   2]        Flags (decoded below) : 000D
+                                    Polarity : 1
+                                Trigger Mode : 3
+
+[068h 0104   1]                Subtable Type : 02 [Interrupt Source Override]
+[069h 0105   1]                       Length : 0A
+[06Ah 0106   1]                          Bus : 00
+[06Bh 0107   1]                       Source : 0B
+[06Ch 0108   4]                    Interrupt : 0000000B
+[070h 0112   2]        Flags (decoded below) : 000D
+                                    Polarity : 1
+                                Trigger Mode : 3
+
+[072h 0114   1]                Subtable Type : 04 [Local APIC NMI]
+[073h 0115   1]                       Length : 06
+[074h 0116   1]                 Processor ID : FF
+[075h 0117   2]        Flags (decoded below) : 0000
+                                    Polarity : 0
+                                Trigger Mode : 0
+[077h 0119   1]         Interrupt Input LINT : 01
+
+Raw Table Data: Length 120 (0x78)
+
+    0000: 41 50 49 43 78 00 00 00 01 ED 42 4F 43 48 53 20  // APICx.....BOCHS 
+    0010: 42 58 50 43 41 50 49 43 01 00 00 00 42 58 50 43  // BXPCAPIC....BXPC
+    0020: 01 00 00 00 00 00 E0 FE 01 00 00 00 00 08 00 00  // ................
+    0030: 01 00 00 00 01 0C 00 00 00 00 C0 FE 00 00 00 00  // ................
+    0040: 02 0A 00 00 02 00 00 00 00 00 02 0A 00 05 05 00  // ................
+    0050: 00 00 0D 00 02 0A 00 09 09 00 00 00 0D 00 02 0A  // ................
+    0060: 00 0A 0A 00 00 00 0D 00 02 0A 00 0B 0B 00 00 00  // ................
+    0070: 0D 00 04 06 FF 00 00 01                          // ........
diff --git a/tests/data/acpi/q35/DSDT b/tests/data/acpi/q35/DSDT
index d6c26940b1a68d4184f6f2335924099aa28b130a..e7414e78563372fca4d2aab9d16c58c0ff8468f4 100644
GIT binary patch
delta 33
ocmexk^TmeCCD<jTM2>-hQE4NWiX5jKOH6#QQ@nuPWD7Z40H)^%$^ZZW

delta 42
xcmexj^T&qECD<jTMvj4jar;It6*(?HmYDcpr+5K3mdWOFw(KHo0nUCQ3;+zI3ef-n

diff --git a/tests/data/acpi/q35/DSDT.acpihmat b/tests/data/acpi/q35/DSDT.acpihmat
index 2b67045d6add69574499b97d938cca01949231b4..88434da261212b15264c892976775acd5c954aea 100644
GIT binary patch
delta 33
ocmZ4KzR;b^CD<iop)vyl<Nb|Xfy$h2EHUxHPVoYElT(##0jn<wjQ{`u

delta 42
xcmZ4JzS5n`CD<ior7{BpW64IYKxHmJmYDcpr+5K3mdPo~w(KHo0nUCQ3;_Fv3X}i<

diff --git a/tests/data/acpi/q35/DSDT.acpihmat.dsl b/tests/data/acpi/q35/DSDT.acpihmat.dsl
new file mode 100644
index 0000000000..a9e0d4144e
--- /dev/null
+++ b/tests/data/acpi/q35/DSDT.acpihmat.dsl
@@ -0,0 +1,3436 @@ 
+/*
+ * Intel ACPI Component Architecture
+ * AML/ASL+ Disassembler version 20190509 (64-bit version)
+ * Copyright (c) 2000 - 2019 Intel Corporation
+ * 
+ * Disassembling to symbolic ASL+ operators
+ *
+ * Disassembly of tests/data/acpi/q35/DSDT.acpihmat, Tue Aug  4 11:14:15 2020
+ *
+ * Original Table Header:
+ *     Signature        "DSDT"
+ *     Length           0x0000232A (9002)
+ *     Revision         0x01 **** 32-bit table (V1), no 64-bit math support
+ *     Checksum         0x79
+ *     OEM ID           "BOCHS "
+ *     OEM Table ID     "BXPCDSDT"
+ *     OEM Revision     0x00000001 (1)
+ *     Compiler ID      "BXPC"
+ *     Compiler Version 0x00000001 (1)
+ */
+DefinitionBlock ("", "DSDT", 1, "BOCHS ", "BXPCDSDT", 0x00000001)
+{
+    Scope (\)
+    {
+        OperationRegion (DBG, SystemIO, 0x0402, One)
+        Field (DBG, ByteAcc, NoLock, Preserve)
+        {
+            DBGB,   8
+        }
+
+        Method (DBUG, 1, NotSerialized)
+        {
+            ToHexString (Arg0, Local0)
+            ToBuffer (Local0, Local0)
+            Local1 = (SizeOf (Local0) - One)
+            Local2 = Zero
+            While ((Local2 < Local1))
+            {
+                DBGB = DerefOf (Local0 [Local2])
+                Local2++
+            }
+
+            DBGB = 0x0A
+        }
+    }
+
+    Scope (_SB)
+    {
+        Device (PCI0)
+        {
+            Name (_HID, EisaId ("PNP0A08") /* PCI Express Bus */)  // _HID: Hardware ID
+            Name (_CID, EisaId ("PNP0A03") /* PCI Bus */)  // _CID: Compatible ID
+            Name (_ADR, Zero)  // _ADR: Address
+            Name (_UID, Zero)  // _UID: Unique ID
+            Method (_OSC, 4, NotSerialized)  // _OSC: Operating System Capabilities
+            {
+                CreateDWordField (Arg3, Zero, CDW1)
+                If ((Arg0 == ToUUID ("33db4d5b-1ff7-401c-9657-7441c03dd766") /* PCI Host Bridge Device */))
+                {
+                    CreateDWordField (Arg3, 0x04, CDW2)
+                    CreateDWordField (Arg3, 0x08, CDW3)
+                    Local0 = CDW3 /* \_SB_.PCI0._OSC.CDW3 */
+                    Local0 &= 0x1F
+                    If ((Arg1 != One))
+                    {
+                        CDW1 |= 0x08
+                    }
+
+                    If ((CDW3 != Local0))
+                    {
+                        CDW1 |= 0x10
+                    }
+
+                    CDW3 = Local0
+                }
+                Else
+                {
+                    CDW1 |= 0x04
+                }
+
+                Return (Arg3)
+            }
+        }
+    }
+
+    Scope (_SB)
+    {
+        Device (HPET)
+        {
+            Name (_HID, EisaId ("PNP0103") /* HPET System Timer */)  // _HID: Hardware ID
+            Name (_UID, Zero)  // _UID: Unique ID
+            OperationRegion (HPTM, SystemMemory, 0xFED00000, 0x0400)
+            Field (HPTM, DWordAcc, Lock, Preserve)
+            {
+                VEND,   32, 
+                PRD,    32
+            }
+
+            Method (_STA, 0, NotSerialized)  // _STA: Status
+            {
+                Local0 = VEND /* \_SB_.HPET.VEND */
+                Local1 = PRD /* \_SB_.HPET.PRD_ */
+                Local0 >>= 0x10
+                If (((Local0 == Zero) || (Local0 == 0xFFFF)))
+                {
+                    Return (Zero)
+                }
+
+                If (((Local1 == Zero) || (Local1 > 0x05F5E100)))
+                {
+                    Return (Zero)
+                }
+
+                Return (0x0F)
+            }
+
+            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+            {
+                Memory32Fixed (ReadOnly,
+                    0xFED00000,         // Address Base
+                    0x00000400,         // Address Length
+                    )
+            })
+        }
+    }
+
+    Scope (_SB.PCI0)
+    {
+        Device (ISA)
+        {
+            Name (_ADR, 0x001F0000)  // _ADR: Address
+            OperationRegion (PIRQ, PCI_Config, 0x60, 0x0C)
+        }
+    }
+
+    Scope (_SB.PCI0.ISA)
+    {
+        Device (KBD)
+        {
+            Name (_HID, EisaId ("PNP0303") /* IBM Enhanced Keyboard (101/102-key, PS/2 Mouse) */)  // _HID: Hardware ID
+            Name (_STA, 0x0F)  // _STA: Status
+            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+            {
+                IO (Decode16,
+                    0x0060,             // Range Minimum
+                    0x0060,             // Range Maximum
+                    0x01,               // Alignment
+                    0x01,               // Length
+                    )
+                IO (Decode16,
+                    0x0064,             // Range Minimum
+                    0x0064,             // Range Maximum
+                    0x01,               // Alignment
+                    0x01,               // Length
+                    )
+                IRQNoFlags ()
+                    {1}
+            })
+        }
+
+        Device (MOU)
+        {
+            Name (_HID, EisaId ("PNP0F13") /* PS/2 Mouse */)  // _HID: Hardware ID
+            Name (_STA, 0x0F)  // _STA: Status
+            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+            {
+                IRQNoFlags ()
+                    {12}
+            })
+        }
+
+        Device (LPT1)
+        {
+            Name (_HID, EisaId ("PNP0400") /* Standard LPT Parallel Port */)  // _HID: Hardware ID
+            Name (_UID, One)  // _UID: Unique ID
+            Name (_STA, 0x0F)  // _STA: Status
+            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+            {
+                IO (Decode16,
+                    0x0378,             // Range Minimum
+                    0x0378,             // Range Maximum
+                    0x08,               // Alignment
+                    0x08,               // Length
+                    )
+                IRQNoFlags ()
+                    {7}
+            })
+        }
+
+        Device (COM1)
+        {
+            Name (_HID, EisaId ("PNP0501") /* 16550A-compatible COM Serial Port */)  // _HID: Hardware ID
+            Name (_UID, One)  // _UID: Unique ID
+            Name (_STA, 0x0F)  // _STA: Status
+            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+            {
+                IO (Decode16,
+                    0x03F8,             // Range Minimum
+                    0x03F8,             // Range Maximum
+                    0x00,               // Alignment
+                    0x08,               // Length
+                    )
+                IRQNoFlags ()
+                    {4}
+            })
+        }
+
+        Device (RTC)
+        {
+            Name (_HID, EisaId ("PNP0B00") /* AT Real-Time Clock */)  // _HID: Hardware ID
+            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+            {
+                IO (Decode16,
+                    0x0070,             // Range Minimum
+                    0x0070,             // Range Maximum
+                    0x01,               // Alignment
+                    0x08,               // Length
+                    )
+                IRQNoFlags ()
+                    {8}
+            })
+        }
+    }
+
+    Name (PICF, Zero)
+    Method (_PIC, 1, NotSerialized)  // _PIC: Interrupt Model
+    {
+        PICF = Arg0
+    }
+
+    Scope (_SB)
+    {
+        Scope (PCI0)
+        {
+            Name (PRTP, Package (0x80)
+            {
+                Package (0x04)
+                {
+                    0xFFFF, 
+                    Zero, 
+                    LNKE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0xFFFF, 
+                    One, 
+                    LNKF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0xFFFF, 
+                    0x02, 
+                    LNKG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0xFFFF, 
+                    0x03, 
+                    LNKH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0001FFFF, 
+                    Zero, 
+                    LNKF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0001FFFF, 
+                    One, 
+                    LNKG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0001FFFF, 
+                    0x02, 
+                    LNKH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0001FFFF, 
+                    0x03, 
+                    LNKE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0002FFFF, 
+                    Zero, 
+                    LNKG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0002FFFF, 
+                    One, 
+                    LNKH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0002FFFF, 
+                    0x02, 
+                    LNKE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0002FFFF, 
+                    0x03, 
+                    LNKF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0003FFFF, 
+                    Zero, 
+                    LNKH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0003FFFF, 
+                    One, 
+                    LNKE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0003FFFF, 
+                    0x02, 
+                    LNKF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0003FFFF, 
+                    0x03, 
+                    LNKG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0004FFFF, 
+                    Zero, 
+                    LNKE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0004FFFF, 
+                    One, 
+                    LNKF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0004FFFF, 
+                    0x02, 
+                    LNKG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0004FFFF, 
+                    0x03, 
+                    LNKH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0005FFFF, 
+                    Zero, 
+                    LNKF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0005FFFF, 
+                    One, 
+                    LNKG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0005FFFF, 
+                    0x02, 
+                    LNKH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0005FFFF, 
+                    0x03, 
+                    LNKE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0006FFFF, 
+                    Zero, 
+                    LNKG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0006FFFF, 
+                    One, 
+                    LNKH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0006FFFF, 
+                    0x02, 
+                    LNKE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0006FFFF, 
+                    0x03, 
+                    LNKF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0007FFFF, 
+                    Zero, 
+                    LNKH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0007FFFF, 
+                    One, 
+                    LNKE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0007FFFF, 
+                    0x02, 
+                    LNKF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0007FFFF, 
+                    0x03, 
+                    LNKG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0008FFFF, 
+                    Zero, 
+                    LNKE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0008FFFF, 
+                    One, 
+                    LNKF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0008FFFF, 
+                    0x02, 
+                    LNKG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0008FFFF, 
+                    0x03, 
+                    LNKH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0009FFFF, 
+                    Zero, 
+                    LNKF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0009FFFF, 
+                    One, 
+                    LNKG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0009FFFF, 
+                    0x02, 
+                    LNKH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0009FFFF, 
+                    0x03, 
+                    LNKE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000AFFFF, 
+                    Zero, 
+                    LNKG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000AFFFF, 
+                    One, 
+                    LNKH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000AFFFF, 
+                    0x02, 
+                    LNKE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000AFFFF, 
+                    0x03, 
+                    LNKF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000BFFFF, 
+                    Zero, 
+                    LNKH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000BFFFF, 
+                    One, 
+                    LNKE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000BFFFF, 
+                    0x02, 
+                    LNKF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000BFFFF, 
+                    0x03, 
+                    LNKG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000CFFFF, 
+                    Zero, 
+                    LNKE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000CFFFF, 
+                    One, 
+                    LNKF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000CFFFF, 
+                    0x02, 
+                    LNKG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000CFFFF, 
+                    0x03, 
+                    LNKH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000DFFFF, 
+                    Zero, 
+                    LNKF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000DFFFF, 
+                    One, 
+                    LNKG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000DFFFF, 
+                    0x02, 
+                    LNKH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000DFFFF, 
+                    0x03, 
+                    LNKE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000EFFFF, 
+                    Zero, 
+                    LNKG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000EFFFF, 
+                    One, 
+                    LNKH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000EFFFF, 
+                    0x02, 
+                    LNKE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000EFFFF, 
+                    0x03, 
+                    LNKF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000FFFFF, 
+                    Zero, 
+                    LNKH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000FFFFF, 
+                    One, 
+                    LNKE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000FFFFF, 
+                    0x02, 
+                    LNKF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000FFFFF, 
+                    0x03, 
+                    LNKG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0010FFFF, 
+                    Zero, 
+                    LNKE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0010FFFF, 
+                    One, 
+                    LNKF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0010FFFF, 
+                    0x02, 
+                    LNKG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0010FFFF, 
+                    0x03, 
+                    LNKH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0011FFFF, 
+                    Zero, 
+                    LNKF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0011FFFF, 
+                    One, 
+                    LNKG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0011FFFF, 
+                    0x02, 
+                    LNKH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0011FFFF, 
+                    0x03, 
+                    LNKE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0012FFFF, 
+                    Zero, 
+                    LNKG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0012FFFF, 
+                    One, 
+                    LNKH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0012FFFF, 
+                    0x02, 
+                    LNKE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0012FFFF, 
+                    0x03, 
+                    LNKF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0013FFFF, 
+                    Zero, 
+                    LNKH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0013FFFF, 
+                    One, 
+                    LNKE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0013FFFF, 
+                    0x02, 
+                    LNKF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0013FFFF, 
+                    0x03, 
+                    LNKG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0014FFFF, 
+                    Zero, 
+                    LNKE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0014FFFF, 
+                    One, 
+                    LNKF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0014FFFF, 
+                    0x02, 
+                    LNKG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0014FFFF, 
+                    0x03, 
+                    LNKH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0015FFFF, 
+                    Zero, 
+                    LNKF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0015FFFF, 
+                    One, 
+                    LNKG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0015FFFF, 
+                    0x02, 
+                    LNKH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0015FFFF, 
+                    0x03, 
+                    LNKE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0016FFFF, 
+                    Zero, 
+                    LNKG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0016FFFF, 
+                    One, 
+                    LNKH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0016FFFF, 
+                    0x02, 
+                    LNKE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0016FFFF, 
+                    0x03, 
+                    LNKF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0017FFFF, 
+                    Zero, 
+                    LNKH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0017FFFF, 
+                    One, 
+                    LNKE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0017FFFF, 
+                    0x02, 
+                    LNKF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0017FFFF, 
+                    0x03, 
+                    LNKG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0018FFFF, 
+                    Zero, 
+                    LNKE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0018FFFF, 
+                    One, 
+                    LNKF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0018FFFF, 
+                    0x02, 
+                    LNKG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0018FFFF, 
+                    0x03, 
+                    LNKH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0019FFFF, 
+                    Zero, 
+                    LNKA, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0019FFFF, 
+                    One, 
+                    LNKB, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0019FFFF, 
+                    0x02, 
+                    LNKC, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0019FFFF, 
+                    0x03, 
+                    LNKD, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001AFFFF, 
+                    Zero, 
+                    LNKA, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001AFFFF, 
+                    One, 
+                    LNKB, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001AFFFF, 
+                    0x02, 
+                    LNKC, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001AFFFF, 
+                    0x03, 
+                    LNKD, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001BFFFF, 
+                    Zero, 
+                    LNKA, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001BFFFF, 
+                    One, 
+                    LNKB, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001BFFFF, 
+                    0x02, 
+                    LNKC, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001BFFFF, 
+                    0x03, 
+                    LNKD, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001CFFFF, 
+                    Zero, 
+                    LNKA, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001CFFFF, 
+                    One, 
+                    LNKB, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001CFFFF, 
+                    0x02, 
+                    LNKC, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001CFFFF, 
+                    0x03, 
+                    LNKD, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001DFFFF, 
+                    Zero, 
+                    LNKA, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001DFFFF, 
+                    One, 
+                    LNKB, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001DFFFF, 
+                    0x02, 
+                    LNKC, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001DFFFF, 
+                    0x03, 
+                    LNKD, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001EFFFF, 
+                    Zero, 
+                    LNKE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001EFFFF, 
+                    One, 
+                    LNKF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001EFFFF, 
+                    0x02, 
+                    LNKG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001EFFFF, 
+                    0x03, 
+                    LNKH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001FFFFF, 
+                    Zero, 
+                    LNKA, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001FFFFF, 
+                    One, 
+                    LNKB, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001FFFFF, 
+                    0x02, 
+                    LNKC, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001FFFFF, 
+                    0x03, 
+                    LNKD, 
+                    Zero
+                }
+            })
+            Name (PRTA, Package (0x80)
+            {
+                Package (0x04)
+                {
+                    0xFFFF, 
+                    Zero, 
+                    GSIE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0xFFFF, 
+                    One, 
+                    GSIF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0xFFFF, 
+                    0x02, 
+                    GSIG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0xFFFF, 
+                    0x03, 
+                    GSIH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0001FFFF, 
+                    Zero, 
+                    GSIF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0001FFFF, 
+                    One, 
+                    GSIG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0001FFFF, 
+                    0x02, 
+                    GSIH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0001FFFF, 
+                    0x03, 
+                    GSIE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0002FFFF, 
+                    Zero, 
+                    GSIG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0002FFFF, 
+                    One, 
+                    GSIH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0002FFFF, 
+                    0x02, 
+                    GSIE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0002FFFF, 
+                    0x03, 
+                    GSIF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0003FFFF, 
+                    Zero, 
+                    GSIH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0003FFFF, 
+                    One, 
+                    GSIE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0003FFFF, 
+                    0x02, 
+                    GSIF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0003FFFF, 
+                    0x03, 
+                    GSIG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0004FFFF, 
+                    Zero, 
+                    GSIE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0004FFFF, 
+                    One, 
+                    GSIF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0004FFFF, 
+                    0x02, 
+                    GSIG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0004FFFF, 
+                    0x03, 
+                    GSIH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0005FFFF, 
+                    Zero, 
+                    GSIF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0005FFFF, 
+                    One, 
+                    GSIG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0005FFFF, 
+                    0x02, 
+                    GSIH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0005FFFF, 
+                    0x03, 
+                    GSIE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0006FFFF, 
+                    Zero, 
+                    GSIG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0006FFFF, 
+                    One, 
+                    GSIH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0006FFFF, 
+                    0x02, 
+                    GSIE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0006FFFF, 
+                    0x03, 
+                    GSIF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0007FFFF, 
+                    Zero, 
+                    GSIH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0007FFFF, 
+                    One, 
+                    GSIE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0007FFFF, 
+                    0x02, 
+                    GSIF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0007FFFF, 
+                    0x03, 
+                    GSIG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0008FFFF, 
+                    Zero, 
+                    GSIE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0008FFFF, 
+                    One, 
+                    GSIF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0008FFFF, 
+                    0x02, 
+                    GSIG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0008FFFF, 
+                    0x03, 
+                    GSIH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0009FFFF, 
+                    Zero, 
+                    GSIF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0009FFFF, 
+                    One, 
+                    GSIG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0009FFFF, 
+                    0x02, 
+                    GSIH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0009FFFF, 
+                    0x03, 
+                    GSIE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000AFFFF, 
+                    Zero, 
+                    GSIG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000AFFFF, 
+                    One, 
+                    GSIH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000AFFFF, 
+                    0x02, 
+                    GSIE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000AFFFF, 
+                    0x03, 
+                    GSIF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000BFFFF, 
+                    Zero, 
+                    GSIH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000BFFFF, 
+                    One, 
+                    GSIE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000BFFFF, 
+                    0x02, 
+                    GSIF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000BFFFF, 
+                    0x03, 
+                    GSIG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000CFFFF, 
+                    Zero, 
+                    GSIE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000CFFFF, 
+                    One, 
+                    GSIF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000CFFFF, 
+                    0x02, 
+                    GSIG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000CFFFF, 
+                    0x03, 
+                    GSIH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000DFFFF, 
+                    Zero, 
+                    GSIF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000DFFFF, 
+                    One, 
+                    GSIG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000DFFFF, 
+                    0x02, 
+                    GSIH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000DFFFF, 
+                    0x03, 
+                    GSIE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000EFFFF, 
+                    Zero, 
+                    GSIG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000EFFFF, 
+                    One, 
+                    GSIH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000EFFFF, 
+                    0x02, 
+                    GSIE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000EFFFF, 
+                    0x03, 
+                    GSIF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000FFFFF, 
+                    Zero, 
+                    GSIH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000FFFFF, 
+                    One, 
+                    GSIE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000FFFFF, 
+                    0x02, 
+                    GSIF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000FFFFF, 
+                    0x03, 
+                    GSIG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0010FFFF, 
+                    Zero, 
+                    GSIE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0010FFFF, 
+                    One, 
+                    GSIF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0010FFFF, 
+                    0x02, 
+                    GSIG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0010FFFF, 
+                    0x03, 
+                    GSIH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0011FFFF, 
+                    Zero, 
+                    GSIF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0011FFFF, 
+                    One, 
+                    GSIG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0011FFFF, 
+                    0x02, 
+                    GSIH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0011FFFF, 
+                    0x03, 
+                    GSIE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0012FFFF, 
+                    Zero, 
+                    GSIG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0012FFFF, 
+                    One, 
+                    GSIH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0012FFFF, 
+                    0x02, 
+                    GSIE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0012FFFF, 
+                    0x03, 
+                    GSIF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0013FFFF, 
+                    Zero, 
+                    GSIH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0013FFFF, 
+                    One, 
+                    GSIE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0013FFFF, 
+                    0x02, 
+                    GSIF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0013FFFF, 
+                    0x03, 
+                    GSIG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0014FFFF, 
+                    Zero, 
+                    GSIE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0014FFFF, 
+                    One, 
+                    GSIF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0014FFFF, 
+                    0x02, 
+                    GSIG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0014FFFF, 
+                    0x03, 
+                    GSIH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0015FFFF, 
+                    Zero, 
+                    GSIF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0015FFFF, 
+                    One, 
+                    GSIG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0015FFFF, 
+                    0x02, 
+                    GSIH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0015FFFF, 
+                    0x03, 
+                    GSIE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0016FFFF, 
+                    Zero, 
+                    GSIG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0016FFFF, 
+                    One, 
+                    GSIH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0016FFFF, 
+                    0x02, 
+                    GSIE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0016FFFF, 
+                    0x03, 
+                    GSIF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0017FFFF, 
+                    Zero, 
+                    GSIH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0017FFFF, 
+                    One, 
+                    GSIE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0017FFFF, 
+                    0x02, 
+                    GSIF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0017FFFF, 
+                    0x03, 
+                    GSIG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0018FFFF, 
+                    Zero, 
+                    GSIE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0018FFFF, 
+                    One, 
+                    GSIF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0018FFFF, 
+                    0x02, 
+                    GSIG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0018FFFF, 
+                    0x03, 
+                    GSIH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0019FFFF, 
+                    Zero, 
+                    GSIA, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0019FFFF, 
+                    One, 
+                    GSIB, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0019FFFF, 
+                    0x02, 
+                    GSIC, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0019FFFF, 
+                    0x03, 
+                    GSID, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001AFFFF, 
+                    Zero, 
+                    GSIA, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001AFFFF, 
+                    One, 
+                    GSIB, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001AFFFF, 
+                    0x02, 
+                    GSIC, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001AFFFF, 
+                    0x03, 
+                    GSID, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001BFFFF, 
+                    Zero, 
+                    GSIA, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001BFFFF, 
+                    One, 
+                    GSIB, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001BFFFF, 
+                    0x02, 
+                    GSIC, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001BFFFF, 
+                    0x03, 
+                    GSID, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001CFFFF, 
+                    Zero, 
+                    GSIA, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001CFFFF, 
+                    One, 
+                    GSIB, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001CFFFF, 
+                    0x02, 
+                    GSIC, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001CFFFF, 
+                    0x03, 
+                    GSID, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001DFFFF, 
+                    Zero, 
+                    GSIA, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001DFFFF, 
+                    One, 
+                    GSIB, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001DFFFF, 
+                    0x02, 
+                    GSIC, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001DFFFF, 
+                    0x03, 
+                    GSID, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001EFFFF, 
+                    Zero, 
+                    GSIE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001EFFFF, 
+                    One, 
+                    GSIF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001EFFFF, 
+                    0x02, 
+                    GSIG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001EFFFF, 
+                    0x03, 
+                    GSIH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001FFFFF, 
+                    Zero, 
+                    GSIA, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001FFFFF, 
+                    One, 
+                    GSIB, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001FFFFF, 
+                    0x02, 
+                    GSIC, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001FFFFF, 
+                    0x03, 
+                    GSID, 
+                    Zero
+                }
+            })
+            Method (_PRT, 0, NotSerialized)  // _PRT: PCI Routing Table
+            {
+                If ((PICF == Zero))
+                {
+                    Return (PRTP) /* \_SB_.PCI0.PRTP */
+                }
+                Else
+                {
+                    Return (PRTA) /* \_SB_.PCI0.PRTA */
+                }
+            }
+        }
+
+        Field (PCI0.ISA.PIRQ, ByteAcc, NoLock, Preserve)
+        {
+            PRQA,   8, 
+            PRQB,   8, 
+            PRQC,   8, 
+            PRQD,   8, 
+            Offset (0x08), 
+            PRQE,   8, 
+            PRQF,   8, 
+            PRQG,   8, 
+            PRQH,   8
+        }
+
+        Method (IQST, 1, NotSerialized)
+        {
+            If ((0x80 & Arg0))
+            {
+                Return (0x09)
+            }
+
+            Return (0x0B)
+        }
+
+        Method (IQCR, 1, Serialized)
+        {
+            Name (PRR0, ResourceTemplate ()
+            {
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, _Y00)
+                {
+                    0x00000000,
+                }
+            })
+            CreateDWordField (PRR0, \_SB.IQCR._Y00._INT, PRRI)  // _INT: Interrupts
+            PRRI = (Arg0 & 0x0F)
+            Return (PRR0) /* \_SB_.IQCR.PRR0 */
+        }
+
+        Device (LNKA)
+        {
+            Name (_HID, EisaId ("PNP0C0F") /* PCI Interrupt Link Device */)  // _HID: Hardware ID
+            Name (_UID, Zero)  // _UID: Unique ID
+            Name (_PRS, ResourceTemplate ()  // _PRS: Possible Resource Settings
+            {
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, )
+                {
+                    0x00000005,
+                    0x0000000A,
+                    0x0000000B,
+                }
+            })
+            Method (_STA, 0, NotSerialized)  // _STA: Status
+            {
+                Return (IQST (PRQA))
+            }
+
+            Method (_DIS, 0, NotSerialized)  // _DIS: Disable Device
+            {
+                PRQA |= 0x80
+            }
+
+            Method (_CRS, 0, NotSerialized)  // _CRS: Current Resource Settings
+            {
+                Return (IQCR (PRQA))
+            }
+
+            Method (_SRS, 1, NotSerialized)  // _SRS: Set Resource Settings
+            {
+                CreateDWordField (Arg0, 0x05, PRRI)
+                PRQA = PRRI /* \_SB_.LNKA._SRS.PRRI */
+            }
+        }
+
+        Device (LNKB)
+        {
+            Name (_HID, EisaId ("PNP0C0F") /* PCI Interrupt Link Device */)  // _HID: Hardware ID
+            Name (_UID, One)  // _UID: Unique ID
+            Name (_PRS, ResourceTemplate ()  // _PRS: Possible Resource Settings
+            {
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, )
+                {
+                    0x00000005,
+                    0x0000000A,
+                    0x0000000B,
+                }
+            })
+            Method (_STA, 0, NotSerialized)  // _STA: Status
+            {
+                Return (IQST (PRQB))
+            }
+
+            Method (_DIS, 0, NotSerialized)  // _DIS: Disable Device
+            {
+                PRQB |= 0x80
+            }
+
+            Method (_CRS, 0, NotSerialized)  // _CRS: Current Resource Settings
+            {
+                Return (IQCR (PRQB))
+            }
+
+            Method (_SRS, 1, NotSerialized)  // _SRS: Set Resource Settings
+            {
+                CreateDWordField (Arg0, 0x05, PRRI)
+                PRQB = PRRI /* \_SB_.LNKB._SRS.PRRI */
+            }
+        }
+
+        Device (LNKC)
+        {
+            Name (_HID, EisaId ("PNP0C0F") /* PCI Interrupt Link Device */)  // _HID: Hardware ID
+            Name (_UID, 0x02)  // _UID: Unique ID
+            Name (_PRS, ResourceTemplate ()  // _PRS: Possible Resource Settings
+            {
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, )
+                {
+                    0x00000005,
+                    0x0000000A,
+                    0x0000000B,
+                }
+            })
+            Method (_STA, 0, NotSerialized)  // _STA: Status
+            {
+                Return (IQST (PRQC))
+            }
+
+            Method (_DIS, 0, NotSerialized)  // _DIS: Disable Device
+            {
+                PRQC |= 0x80
+            }
+
+            Method (_CRS, 0, NotSerialized)  // _CRS: Current Resource Settings
+            {
+                Return (IQCR (PRQC))
+            }
+
+            Method (_SRS, 1, NotSerialized)  // _SRS: Set Resource Settings
+            {
+                CreateDWordField (Arg0, 0x05, PRRI)
+                PRQC = PRRI /* \_SB_.LNKC._SRS.PRRI */
+            }
+        }
+
+        Device (LNKD)
+        {
+            Name (_HID, EisaId ("PNP0C0F") /* PCI Interrupt Link Device */)  // _HID: Hardware ID
+            Name (_UID, 0x03)  // _UID: Unique ID
+            Name (_PRS, ResourceTemplate ()  // _PRS: Possible Resource Settings
+            {
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, )
+                {
+                    0x00000005,
+                    0x0000000A,
+                    0x0000000B,
+                }
+            })
+            Method (_STA, 0, NotSerialized)  // _STA: Status
+            {
+                Return (IQST (PRQD))
+            }
+
+            Method (_DIS, 0, NotSerialized)  // _DIS: Disable Device
+            {
+                PRQD |= 0x80
+            }
+
+            Method (_CRS, 0, NotSerialized)  // _CRS: Current Resource Settings
+            {
+                Return (IQCR (PRQD))
+            }
+
+            Method (_SRS, 1, NotSerialized)  // _SRS: Set Resource Settings
+            {
+                CreateDWordField (Arg0, 0x05, PRRI)
+                PRQD = PRRI /* \_SB_.LNKD._SRS.PRRI */
+            }
+        }
+
+        Device (LNKE)
+        {
+            Name (_HID, EisaId ("PNP0C0F") /* PCI Interrupt Link Device */)  // _HID: Hardware ID
+            Name (_UID, 0x04)  // _UID: Unique ID
+            Name (_PRS, ResourceTemplate ()  // _PRS: Possible Resource Settings
+            {
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, )
+                {
+                    0x00000005,
+                    0x0000000A,
+                    0x0000000B,
+                }
+            })
+            Method (_STA, 0, NotSerialized)  // _STA: Status
+            {
+                Return (IQST (PRQE))
+            }
+
+            Method (_DIS, 0, NotSerialized)  // _DIS: Disable Device
+            {
+                PRQE |= 0x80
+            }
+
+            Method (_CRS, 0, NotSerialized)  // _CRS: Current Resource Settings
+            {
+                Return (IQCR (PRQE))
+            }
+
+            Method (_SRS, 1, NotSerialized)  // _SRS: Set Resource Settings
+            {
+                CreateDWordField (Arg0, 0x05, PRRI)
+                PRQE = PRRI /* \_SB_.LNKE._SRS.PRRI */
+            }
+        }
+
+        Device (LNKF)
+        {
+            Name (_HID, EisaId ("PNP0C0F") /* PCI Interrupt Link Device */)  // _HID: Hardware ID
+            Name (_UID, 0x05)  // _UID: Unique ID
+            Name (_PRS, ResourceTemplate ()  // _PRS: Possible Resource Settings
+            {
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, )
+                {
+                    0x00000005,
+                    0x0000000A,
+                    0x0000000B,
+                }
+            })
+            Method (_STA, 0, NotSerialized)  // _STA: Status
+            {
+                Return (IQST (PRQF))
+            }
+
+            Method (_DIS, 0, NotSerialized)  // _DIS: Disable Device
+            {
+                PRQF |= 0x80
+            }
+
+            Method (_CRS, 0, NotSerialized)  // _CRS: Current Resource Settings
+            {
+                Return (IQCR (PRQF))
+            }
+
+            Method (_SRS, 1, NotSerialized)  // _SRS: Set Resource Settings
+            {
+                CreateDWordField (Arg0, 0x05, PRRI)
+                PRQF = PRRI /* \_SB_.LNKF._SRS.PRRI */
+            }
+        }
+
+        Device (LNKG)
+        {
+            Name (_HID, EisaId ("PNP0C0F") /* PCI Interrupt Link Device */)  // _HID: Hardware ID
+            Name (_UID, 0x06)  // _UID: Unique ID
+            Name (_PRS, ResourceTemplate ()  // _PRS: Possible Resource Settings
+            {
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, )
+                {
+                    0x00000005,
+                    0x0000000A,
+                    0x0000000B,
+                }
+            })
+            Method (_STA, 0, NotSerialized)  // _STA: Status
+            {
+                Return (IQST (PRQG))
+            }
+
+            Method (_DIS, 0, NotSerialized)  // _DIS: Disable Device
+            {
+                PRQG |= 0x80
+            }
+
+            Method (_CRS, 0, NotSerialized)  // _CRS: Current Resource Settings
+            {
+                Return (IQCR (PRQG))
+            }
+
+            Method (_SRS, 1, NotSerialized)  // _SRS: Set Resource Settings
+            {
+                CreateDWordField (Arg0, 0x05, PRRI)
+                PRQG = PRRI /* \_SB_.LNKG._SRS.PRRI */
+            }
+        }
+
+        Device (LNKH)
+        {
+            Name (_HID, EisaId ("PNP0C0F") /* PCI Interrupt Link Device */)  // _HID: Hardware ID
+            Name (_UID, 0x07)  // _UID: Unique ID
+            Name (_PRS, ResourceTemplate ()  // _PRS: Possible Resource Settings
+            {
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, )
+                {
+                    0x00000005,
+                    0x0000000A,
+                    0x0000000B,
+                }
+            })
+            Method (_STA, 0, NotSerialized)  // _STA: Status
+            {
+                Return (IQST (PRQH))
+            }
+
+            Method (_DIS, 0, NotSerialized)  // _DIS: Disable Device
+            {
+                PRQH |= 0x80
+            }
+
+            Method (_CRS, 0, NotSerialized)  // _CRS: Current Resource Settings
+            {
+                Return (IQCR (PRQH))
+            }
+
+            Method (_SRS, 1, NotSerialized)  // _SRS: Set Resource Settings
+            {
+                CreateDWordField (Arg0, 0x05, PRRI)
+                PRQH = PRRI /* \_SB_.LNKH._SRS.PRRI */
+            }
+        }
+
+        Device (GSIA)
+        {
+            Name (_HID, EisaId ("PNP0C0F") /* PCI Interrupt Link Device */)  // _HID: Hardware ID
+            Name (_UID, 0x10)  // _UID: Unique ID
+            Name (_PRS, ResourceTemplate ()  // _PRS: Possible Resource Settings
+            {
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, )
+                {
+                    0x00000010,
+                }
+            })
+            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+            {
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, )
+                {
+                    0x00000010,
+                }
+            })
+            Method (_DIS, 0, NotSerialized)  // _DIS: Disable Device
+            {
+            }
+
+            Method (_SRS, 1, NotSerialized)  // _SRS: Set Resource Settings
+            {
+            }
+        }
+
+        Device (GSIB)
+        {
+            Name (_HID, EisaId ("PNP0C0F") /* PCI Interrupt Link Device */)  // _HID: Hardware ID
+            Name (_UID, 0x11)  // _UID: Unique ID
+            Name (_PRS, ResourceTemplate ()  // _PRS: Possible Resource Settings
+            {
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, )
+                {
+                    0x00000011,
+                }
+            })
+            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+            {
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, )
+                {
+                    0x00000011,
+                }
+            })
+            Method (_DIS, 0, NotSerialized)  // _DIS: Disable Device
+            {
+            }
+
+            Method (_SRS, 1, NotSerialized)  // _SRS: Set Resource Settings
+            {
+            }
+        }
+
+        Device (GSIC)
+        {
+            Name (_HID, EisaId ("PNP0C0F") /* PCI Interrupt Link Device */)  // _HID: Hardware ID
+            Name (_UID, 0x12)  // _UID: Unique ID
+            Name (_PRS, ResourceTemplate ()  // _PRS: Possible Resource Settings
+            {
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, )
+                {
+                    0x00000012,
+                }
+            })
+            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+            {
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, )
+                {
+                    0x00000012,
+                }
+            })
+            Method (_DIS, 0, NotSerialized)  // _DIS: Disable Device
+            {
+            }
+
+            Method (_SRS, 1, NotSerialized)  // _SRS: Set Resource Settings
+            {
+            }
+        }
+
+        Device (GSID)
+        {
+            Name (_HID, EisaId ("PNP0C0F") /* PCI Interrupt Link Device */)  // _HID: Hardware ID
+            Name (_UID, 0x13)  // _UID: Unique ID
+            Name (_PRS, ResourceTemplate ()  // _PRS: Possible Resource Settings
+            {
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, )
+                {
+                    0x00000013,
+                }
+            })
+            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+            {
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, )
+                {
+                    0x00000013,
+                }
+            })
+            Method (_DIS, 0, NotSerialized)  // _DIS: Disable Device
+            {
+            }
+
+            Method (_SRS, 1, NotSerialized)  // _SRS: Set Resource Settings
+            {
+            }
+        }
+
+        Device (GSIE)
+        {
+            Name (_HID, EisaId ("PNP0C0F") /* PCI Interrupt Link Device */)  // _HID: Hardware ID
+            Name (_UID, 0x14)  // _UID: Unique ID
+            Name (_PRS, ResourceTemplate ()  // _PRS: Possible Resource Settings
+            {
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, )
+                {
+                    0x00000014,
+                }
+            })
+            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+            {
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, )
+                {
+                    0x00000014,
+                }
+            })
+            Method (_DIS, 0, NotSerialized)  // _DIS: Disable Device
+            {
+            }
+
+            Method (_SRS, 1, NotSerialized)  // _SRS: Set Resource Settings
+            {
+            }
+        }
+
+        Device (GSIF)
+        {
+            Name (_HID, EisaId ("PNP0C0F") /* PCI Interrupt Link Device */)  // _HID: Hardware ID
+            Name (_UID, 0x15)  // _UID: Unique ID
+            Name (_PRS, ResourceTemplate ()  // _PRS: Possible Resource Settings
+            {
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, )
+                {
+                    0x00000015,
+                }
+            })
+            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+            {
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, )
+                {
+                    0x00000015,
+                }
+            })
+            Method (_DIS, 0, NotSerialized)  // _DIS: Disable Device
+            {
+            }
+
+            Method (_SRS, 1, NotSerialized)  // _SRS: Set Resource Settings
+            {
+            }
+        }
+
+        Device (GSIG)
+        {
+            Name (_HID, EisaId ("PNP0C0F") /* PCI Interrupt Link Device */)  // _HID: Hardware ID
+            Name (_UID, 0x16)  // _UID: Unique ID
+            Name (_PRS, ResourceTemplate ()  // _PRS: Possible Resource Settings
+            {
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, )
+                {
+                    0x00000016,
+                }
+            })
+            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+            {
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, )
+                {
+                    0x00000016,
+                }
+            })
+            Method (_DIS, 0, NotSerialized)  // _DIS: Disable Device
+            {
+            }
+
+            Method (_SRS, 1, NotSerialized)  // _SRS: Set Resource Settings
+            {
+            }
+        }
+
+        Device (GSIH)
+        {
+            Name (_HID, EisaId ("PNP0C0F") /* PCI Interrupt Link Device */)  // _HID: Hardware ID
+            Name (_UID, 0x17)  // _UID: Unique ID
+            Name (_PRS, ResourceTemplate ()  // _PRS: Possible Resource Settings
+            {
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, )
+                {
+                    0x00000017,
+                }
+            })
+            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+            {
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, )
+                {
+                    0x00000017,
+                }
+            })
+            Method (_DIS, 0, NotSerialized)  // _DIS: Disable Device
+            {
+            }
+
+            Method (_SRS, 1, NotSerialized)  // _SRS: Set Resource Settings
+            {
+            }
+        }
+    }
+
+    Scope (_SB.PCI0)
+    {
+        Device (SMB0)
+        {
+            Name (_ADR, 0x001F0003)  // _ADR: Address
+        }
+    }
+
+    Scope (_SB)
+    {
+        Device (\_SB.PCI0.PRES)
+        {
+            Name (_HID, EisaId ("PNP0A06") /* Generic Container Device */)  // _HID: Hardware ID
+            Name (_UID, "CPU Hotplug resources")  // _UID: Unique ID
+            Mutex (CPLK, 0x00)
+            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+            {
+                IO (Decode16,
+                    0x0CD8,             // Range Minimum
+                    0x0CD8,             // Range Maximum
+                    0x01,               // Alignment
+                    0x0C,               // Length
+                    )
+            })
+            OperationRegion (PRST, SystemIO, 0x0CD8, 0x0C)
+            Field (PRST, ByteAcc, NoLock, WriteAsZeros)
+            {
+                Offset (0x04), 
+                CPEN,   1, 
+                CINS,   1, 
+                CRMV,   1, 
+                CEJ0,   1, 
+                Offset (0x05), 
+                CCMD,   8
+            }
+
+            Field (PRST, DWordAcc, NoLock, Preserve)
+            {
+                CSEL,   32, 
+                Offset (0x08), 
+                CDAT,   32
+            }
+
+            Method (_INI, 0, Serialized)  // _INI: Initialize
+            {
+                CSEL = Zero
+            }
+        }
+
+        Device (\_SB.CPUS)
+        {
+            Name (_HID, "ACPI0010" /* Processor Container Device */)  // _HID: Hardware ID
+            Name (_CID, EisaId ("PNP0A05") /* Generic Container Device */)  // _CID: Compatible ID
+            Method (CTFY, 2, NotSerialized)
+            {
+                If ((Arg0 == Zero))
+                {
+                    Notify (C000, Arg1)
+                }
+
+                If ((Arg0 == One))
+                {
+                    Notify (C001, Arg1)
+                }
+            }
+
+            Method (CSTA, 1, Serialized)
+            {
+                Acquire (\_SB.PCI0.PRES.CPLK, 0xFFFF)
+                \_SB.PCI0.PRES.CSEL = Arg0
+                Local0 = Zero
+                If ((\_SB.PCI0.PRES.CPEN == One))
+                {
+                    Local0 = 0x0F
+                }
+
+                Release (\_SB.PCI0.PRES.CPLK)
+                Return (Local0)
+            }
+
+            Method (CEJ0, 1, Serialized)
+            {
+                Acquire (\_SB.PCI0.PRES.CPLK, 0xFFFF)
+                \_SB.PCI0.PRES.CSEL = Arg0
+                \_SB.PCI0.PRES.CEJ0 = One
+                Release (\_SB.PCI0.PRES.CPLK)
+            }
+
+            Method (CSCN, 0, Serialized)
+            {
+                Acquire (\_SB.PCI0.PRES.CPLK, 0xFFFF)
+                Local0 = One
+                While ((Local0 == One))
+                {
+                    Local0 = Zero
+                    \_SB.PCI0.PRES.CCMD = Zero
+                    If ((\_SB.PCI0.PRES.CINS == One))
+                    {
+                        CTFY (\_SB.PCI0.PRES.CDAT, One)
+                        \_SB.PCI0.PRES.CINS = One
+                        Local0 = One
+                    }
+                    ElseIf ((\_SB.PCI0.PRES.CRMV == One))
+                    {
+                        CTFY (\_SB.PCI0.PRES.CDAT, 0x03)
+                        \_SB.PCI0.PRES.CRMV = One
+                        Local0 = One
+                    }
+                }
+
+                Release (\_SB.PCI0.PRES.CPLK)
+            }
+
+            Method (COST, 4, Serialized)
+            {
+                Acquire (\_SB.PCI0.PRES.CPLK, 0xFFFF)
+                \_SB.PCI0.PRES.CSEL = Arg0
+                \_SB.PCI0.PRES.CCMD = One
+                \_SB.PCI0.PRES.CDAT = Arg1
+                \_SB.PCI0.PRES.CCMD = 0x02
+                \_SB.PCI0.PRES.CDAT = Arg2
+                Release (\_SB.PCI0.PRES.CPLK)
+            }
+
+            Processor (C000, 0x00, 0x00000000, 0x00)
+            {
+                Method (_STA, 0, Serialized)  // _STA: Status
+                {
+                    Return (CSTA (Zero))
+                }
+
+                Name (_MAT, Buffer (0x08)  // _MAT: Multiple APIC Table Entry
+                {
+                     0x00, 0x08, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00   // ........
+                })
+                Method (_OST, 3, Serialized)  // _OST: OSPM Status Indication
+                {
+                    COST (Zero, Arg0, Arg1, Arg2)
+                }
+
+                Name (_PXM, Zero)  // _PXM: Device Proximity
+            }
+
+            Processor (C001, 0x01, 0x00000000, 0x00)
+            {
+                Method (_STA, 0, Serialized)  // _STA: Status
+                {
+                    Return (CSTA (One))
+                }
+
+                Name (_MAT, Buffer (0x08)  // _MAT: Multiple APIC Table Entry
+                {
+                     0x00, 0x08, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00   // ........
+                })
+                Method (_EJ0, 1, NotSerialized)  // _EJx: Eject Device, x=0-9
+                {
+                    CEJ0 (One)
+                }
+
+                Method (_OST, 3, Serialized)  // _OST: OSPM Status Indication
+                {
+                    COST (One, Arg0, Arg1, Arg2)
+                }
+
+                Name (_PXM, Zero)  // _PXM: Device Proximity
+            }
+        }
+    }
+
+    Method (\_GPE._E02, 0, NotSerialized)  // _Exx: Edge-Triggered GPE, xx=0x00-0xFF
+    {
+        \_SB.CPUS.CSCN ()
+    }
+
+    Device (\_SB.PCI0.MHPD)
+    {
+        Name (_HID, "PNP0A06" /* Generic Container Device */)  // _HID: Hardware ID
+        Name (_UID, "Memory hotplug resources")  // _UID: Unique ID
+        Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+        {
+            IO (Decode16,
+                0x0A00,             // Range Minimum
+                0x0A00,             // Range Maximum
+                0x00,               // Alignment
+                0x18,               // Length
+                )
+        })
+        OperationRegion (HPMR, SystemIO, 0x0A00, 0x18)
+    }
+
+    Device (\_SB.MHPC)
+    {
+        Name (_HID, "PNP0A06" /* Generic Container Device */)  // _HID: Hardware ID
+        Name (_UID, "DIMM devices")  // _UID: Unique ID
+        Name (MDNR, 0x02)
+        Field (\_SB.PCI0.MHPD.HPMR, DWordAcc, NoLock, Preserve)
+        {
+            MRBL,   32, 
+            MRBH,   32, 
+            MRLL,   32, 
+            MRLH,   32, 
+            MPX,    32
+        }
+
+        Field (\_SB.PCI0.MHPD.HPMR, ByteAcc, NoLock, WriteAsZeros)
+        {
+            Offset (0x14), 
+            MES,    1, 
+            MINS,   1, 
+            MRMV,   1, 
+            MEJ,    1
+        }
+
+        Field (\_SB.PCI0.MHPD.HPMR, DWordAcc, NoLock, Preserve)
+        {
+            MSEL,   32, 
+            MOEV,   32, 
+            MOSC,   32
+        }
+
+        Method (_STA, 0, NotSerialized)  // _STA: Status
+        {
+            If ((MDNR == Zero))
+            {
+                Return (Zero)
+            }
+
+            Return (0x0B)
+        }
+
+        Mutex (MLCK, 0x00)
+        Method (MSCN, 0, NotSerialized)
+        {
+            If ((MDNR == Zero))
+            {
+                Return (Zero)
+            }
+
+            Local0 = Zero
+            Acquire (MLCK, 0xFFFF)
+            While ((Local0 < MDNR))
+            {
+                MSEL = Local0
+                If ((MINS == One))
+                {
+                    MTFY (Local0, One)
+                    MINS = One
+                }
+                ElseIf ((MRMV == One))
+                {
+                    MTFY (Local0, 0x03)
+                    MRMV = One
+                }
+
+                Local0 += One
+            }
+
+            Release (MLCK)
+            Return (One)
+        }
+
+        Method (MRST, 1, NotSerialized)
+        {
+            Local0 = Zero
+            Acquire (MLCK, 0xFFFF)
+            MSEL = ToInteger (Arg0)
+            If ((MES == One))
+            {
+                Local0 = 0x0F
+            }
+
+            Release (MLCK)
+            Return (Local0)
+        }
+
+        Method (MCRS, 1, Serialized)
+        {
+            Acquire (MLCK, 0xFFFF)
+            MSEL = ToInteger (Arg0)
+            Name (MR64, ResourceTemplate ()
+            {
+                QWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, Cacheable, ReadWrite,
+                    0x0000000000000000, // Granularity
+                    0x0000000000000000, // Range Minimum
+                    0xFFFFFFFFFFFFFFFE, // Range Maximum
+                    0x0000000000000000, // Translation Offset
+                    0xFFFFFFFFFFFFFFFF, // Length
+                    ,, _Y01, AddressRangeMemory, TypeStatic)
+            })
+            CreateDWordField (MR64, \_SB.MHPC.MCRS._Y01._MIN, MINL)  // _MIN: Minimum Base Address
+            CreateDWordField (MR64, 0x12, MINH)
+            CreateDWordField (MR64, \_SB.MHPC.MCRS._Y01._LEN, LENL)  // _LEN: Length
+            CreateDWordField (MR64, 0x2A, LENH)
+            CreateDWordField (MR64, \_SB.MHPC.MCRS._Y01._MAX, MAXL)  // _MAX: Maximum Base Address
+            CreateDWordField (MR64, 0x1A, MAXH)
+            MINH = MRBH /* \_SB_.MHPC.MRBH */
+            MINL = MRBL /* \_SB_.MHPC.MRBL */
+            LENH = MRLH /* \_SB_.MHPC.MRLH */
+            LENL = MRLL /* \_SB_.MHPC.MRLL */
+            MAXL = (MINL + LENL) /* \_SB_.MHPC.MCRS.LENL */
+            MAXH = (MINH + LENH) /* \_SB_.MHPC.MCRS.LENH */
+            If ((MAXL < MINL))
+            {
+                MAXH += One
+            }
+
+            If ((MAXL < One))
+            {
+                MAXH -= One
+            }
+
+            MAXL -= One
+            If ((MAXH == Zero))
+            {
+                Name (MR32, ResourceTemplate ()
+                {
+                    DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, Cacheable, ReadWrite,
+                        0x00000000,         // Granularity
+                        0x00000000,         // Range Minimum
+                        0xFFFFFFFE,         // Range Maximum
+                        0x00000000,         // Translation Offset
+                        0xFFFFFFFF,         // Length
+                        ,, _Y02, AddressRangeMemory, TypeStatic)
+                })
+                CreateDWordField (MR32, \_SB.MHPC.MCRS._Y02._MIN, MIN)  // _MIN: Minimum Base Address
+                CreateDWordField (MR32, \_SB.MHPC.MCRS._Y02._MAX, MAX)  // _MAX: Maximum Base Address
+                CreateDWordField (MR32, \_SB.MHPC.MCRS._Y02._LEN, LEN)  // _LEN: Length
+                MIN = MINL /* \_SB_.MHPC.MCRS.MINL */
+                MAX = MAXL /* \_SB_.MHPC.MCRS.MAXL */
+                LEN = LENL /* \_SB_.MHPC.MCRS.LENL */
+                Release (MLCK)
+                Return (MR32) /* \_SB_.MHPC.MCRS.MR32 */
+            }
+
+            Release (MLCK)
+            Return (MR64) /* \_SB_.MHPC.MCRS.MR64 */
+        }
+
+        Method (MPXM, 1, NotSerialized)
+        {
+            Acquire (MLCK, 0xFFFF)
+            MSEL = ToInteger (Arg0)
+            Local0 = MPX /* \_SB_.MHPC.MPX_ */
+            Release (MLCK)
+            Return (Local0)
+        }
+
+        Method (MOST, 4, NotSerialized)
+        {
+            Acquire (MLCK, 0xFFFF)
+            MSEL = ToInteger (Arg0)
+            MOEV = Arg1
+            MOSC = Arg2
+            Release (MLCK)
+        }
+
+        Method (MEJ0, 2, NotSerialized)
+        {
+            Acquire (MLCK, 0xFFFF)
+            MSEL = ToInteger (Arg0)
+            MEJ = One
+            Release (MLCK)
+        }
+
+        Device (MP00)
+        {
+            Name (_UID, "0x00")  // _UID: Unique ID
+            Name (_HID, EisaId ("PNP0C80") /* Memory Device */)  // _HID: Hardware ID
+            Method (_CRS, 0, NotSerialized)  // _CRS: Current Resource Settings
+            {
+                Return (MCRS (_UID))
+            }
+
+            Method (_STA, 0, NotSerialized)  // _STA: Status
+            {
+                Return (MRST (_UID))
+            }
+
+            Method (_PXM, 0, NotSerialized)  // _PXM: Device Proximity
+            {
+                Return (MPXM (_UID))
+            }
+
+            Method (_OST, 3, NotSerialized)  // _OST: OSPM Status Indication
+            {
+                MOST (_UID, Arg0, Arg1, Arg2)
+            }
+
+            Method (_EJ0, 1, NotSerialized)  // _EJx: Eject Device, x=0-9
+            {
+                MEJ0 (_UID, Arg0)
+            }
+        }
+
+        Device (MP01)
+        {
+            Name (_UID, "0x01")  // _UID: Unique ID
+            Name (_HID, EisaId ("PNP0C80") /* Memory Device */)  // _HID: Hardware ID
+            Method (_CRS, 0, NotSerialized)  // _CRS: Current Resource Settings
+            {
+                Return (MCRS (_UID))
+            }
+
+            Method (_STA, 0, NotSerialized)  // _STA: Status
+            {
+                Return (MRST (_UID))
+            }
+
+            Method (_PXM, 0, NotSerialized)  // _PXM: Device Proximity
+            {
+                Return (MPXM (_UID))
+            }
+
+            Method (_OST, 3, NotSerialized)  // _OST: OSPM Status Indication
+            {
+                MOST (_UID, Arg0, Arg1, Arg2)
+            }
+
+            Method (_EJ0, 1, NotSerialized)  // _EJx: Eject Device, x=0-9
+            {
+                MEJ0 (_UID, Arg0)
+            }
+        }
+
+        Method (MTFY, 2, NotSerialized)
+        {
+            If ((Arg0 == Zero))
+            {
+                Notify (MP00, Arg1)
+            }
+
+            If ((Arg0 == One))
+            {
+                Notify (MP01, Arg1)
+            }
+        }
+    }
+
+    Method (\_GPE._E03, 0, NotSerialized)  // _Exx: Edge-Triggered GPE, xx=0x00-0xFF
+    {
+        \_SB.MHPC.MSCN ()
+    }
+
+    Scope (_GPE)
+    {
+        Name (_HID, "ACPI0006" /* GPE Block Device */)  // _HID: Hardware ID
+    }
+
+    Scope (\_SB.PCI0)
+    {
+        Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+        {
+            WordBusNumber (ResourceProducer, MinFixed, MaxFixed, PosDecode,
+                0x0000,             // Granularity
+                0x0000,             // Range Minimum
+                0x00FF,             // Range Maximum
+                0x0000,             // Translation Offset
+                0x0100,             // Length
+                ,, )
+            IO (Decode16,
+                0x0CF8,             // Range Minimum
+                0x0CF8,             // Range Maximum
+                0x01,               // Alignment
+                0x08,               // Length
+                )
+            WordIO (ResourceProducer, MinFixed, MaxFixed, PosDecode, EntireRange,
+                0x0000,             // Granularity
+                0x0000,             // Range Minimum
+                0x0CF7,             // Range Maximum
+                0x0000,             // Translation Offset
+                0x0CF8,             // Length
+                ,, , TypeStatic, DenseTranslation)
+            WordIO (ResourceProducer, MinFixed, MaxFixed, PosDecode, EntireRange,
+                0x0000,             // Granularity
+                0x0D00,             // Range Minimum
+                0xFFFF,             // Range Maximum
+                0x0000,             // Translation Offset
+                0xF300,             // Length
+                ,, , TypeStatic, DenseTranslation)
+            DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, Cacheable, ReadWrite,
+                0x00000000,         // Granularity
+                0x000A0000,         // Range Minimum
+                0x000BFFFF,         // Range Maximum
+                0x00000000,         // Translation Offset
+                0x00020000,         // Length
+                ,, , AddressRangeMemory, TypeStatic)
+            DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, NonCacheable, ReadWrite,
+                0x00000000,         // Granularity
+                0x08000000,         // Range Minimum
+                0xAFFFFFFF,         // Range Maximum
+                0x00000000,         // Translation Offset
+                0xA8000000,         // Length
+                ,, , AddressRangeMemory, TypeStatic)
+            DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, NonCacheable, ReadWrite,
+                0x00000000,         // Granularity
+                0xC0000000,         // Range Minimum
+                0xFEBFFFFF,         // Range Maximum
+                0x00000000,         // Translation Offset
+                0x3EC00000,         // Length
+                ,, , AddressRangeMemory, TypeStatic)
+            QWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, Cacheable, ReadWrite,
+                0x0000000000000000, // Granularity
+                0x00000001C0000000, // Range Minimum
+                0x00000009BFFFFFFF, // Range Maximum
+                0x0000000000000000, // Translation Offset
+                0x0000000800000000, // Length
+                ,, , AddressRangeMemory, TypeStatic)
+        })
+        Device (GPE0)
+        {
+            Name (_HID, "PNP0A06" /* Generic Container Device */)  // _HID: Hardware ID
+            Name (_UID, "GPE0 resources")  // _UID: Unique ID
+            Name (_STA, 0x0B)  // _STA: Status
+            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+            {
+                IO (Decode16,
+                    0x0620,             // Range Minimum
+                    0x0620,             // Range Maximum
+                    0x01,               // Alignment
+                    0x10,               // Length
+                    )
+            })
+        }
+    }
+
+    Scope (\)
+    {
+        Name (_S3, Package (0x04)  // _S3_: S3 System State
+        {
+            One, 
+            One, 
+            Zero, 
+            Zero
+        })
+        Name (_S4, Package (0x04)  // _S4_: S4 System State
+        {
+            0x02, 
+            0x02, 
+            Zero, 
+            Zero
+        })
+        Name (_S5, Package (0x04)  // _S5_: S5 System State
+        {
+            Zero, 
+            Zero, 
+            Zero, 
+            Zero
+        })
+    }
+
+    Scope (\_SB.PCI0)
+    {
+        Device (FWCF)
+        {
+            Name (_HID, "QEMU0002")  // _HID: Hardware ID
+            Name (_STA, 0x0B)  // _STA: Status
+            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+            {
+                IO (Decode16,
+                    0x0510,             // Range Minimum
+                    0x0510,             // Range Maximum
+                    0x01,               // Alignment
+                    0x0C,               // Length
+                    )
+            })
+        }
+    }
+
+    Scope (\_SB)
+    {
+        Scope (PCI0)
+        {
+            Device (S00)
+            {
+                Name (_ADR, Zero)  // _ADR: Address
+            }
+
+            Device (S08)
+            {
+                Name (_ADR, 0x00010000)  // _ADR: Address
+                Method (_S1D, 0, NotSerialized)  // _S1D: S1 Device State
+                {
+                    Return (Zero)
+                }
+
+                Method (_S2D, 0, NotSerialized)  // _S2D: S2 Device State
+                {
+                    Return (Zero)
+                }
+
+                Method (_S3D, 0, NotSerialized)  // _S3D: S3 Device State
+                {
+                    Return (Zero)
+                }
+            }
+
+            Method (PCNT, 0, NotSerialized)
+            {
+            }
+        }
+    }
+}
+
diff --git a/tests/data/acpi/q35/DSDT.bridge b/tests/data/acpi/q35/DSDT.bridge
index 0f6c9c68c81cddd2126eea8a7c336b8667202223..118476ff6101e11d6b1f2d3399241d7fd1a6f634 100644
GIT binary patch
delta 33
ocmeCRZL{Ta33dr-lVf0D+`W-YMUK;hH6}jTDPF)~vbmf;0GQ4QumAu6

delta 41
wcmZp(?X~4{33dtTm1AIF4ByD5BFE{^8WSJv6ffXD*<8+_U4$*b*)N0v0NR)dw*UYD

diff --git a/tests/data/acpi/q35/DSDT.bridge.dsl b/tests/data/acpi/q35/DSDT.bridge.dsl
new file mode 100644
index 0000000000..51fbeb729d
--- /dev/null
+++ b/tests/data/acpi/q35/DSDT.bridge.dsl
@@ -0,0 +1,3141 @@ 
+/*
+ * Intel ACPI Component Architecture
+ * AML/ASL+ Disassembler version 20190509 (64-bit version)
+ * Copyright (c) 2000 - 2019 Intel Corporation
+ * 
+ * Disassembling to symbolic ASL+ operators
+ *
+ * Disassembly of tests/data/acpi/q35/DSDT.bridge, Tue Aug  4 11:14:15 2020
+ *
+ * Original Table Header:
+ *     Signature        "DSDT"
+ *     Length           0x00001E0F (7695)
+ *     Revision         0x01 **** 32-bit table (V1), no 64-bit math support
+ *     Checksum         0x4B
+ *     OEM ID           "BOCHS "
+ *     OEM Table ID     "BXPCDSDT"
+ *     OEM Revision     0x00000001 (1)
+ *     Compiler ID      "BXPC"
+ *     Compiler Version 0x00000001 (1)
+ */
+DefinitionBlock ("", "DSDT", 1, "BOCHS ", "BXPCDSDT", 0x00000001)
+{
+    Scope (\)
+    {
+        OperationRegion (DBG, SystemIO, 0x0402, One)
+        Field (DBG, ByteAcc, NoLock, Preserve)
+        {
+            DBGB,   8
+        }
+
+        Method (DBUG, 1, NotSerialized)
+        {
+            ToHexString (Arg0, Local0)
+            ToBuffer (Local0, Local0)
+            Local1 = (SizeOf (Local0) - One)
+            Local2 = Zero
+            While ((Local2 < Local1))
+            {
+                DBGB = DerefOf (Local0 [Local2])
+                Local2++
+            }
+
+            DBGB = 0x0A
+        }
+    }
+
+    Scope (_SB)
+    {
+        Device (PCI0)
+        {
+            Name (_HID, EisaId ("PNP0A08") /* PCI Express Bus */)  // _HID: Hardware ID
+            Name (_CID, EisaId ("PNP0A03") /* PCI Bus */)  // _CID: Compatible ID
+            Name (_ADR, Zero)  // _ADR: Address
+            Name (_UID, Zero)  // _UID: Unique ID
+            Method (_OSC, 4, NotSerialized)  // _OSC: Operating System Capabilities
+            {
+                CreateDWordField (Arg3, Zero, CDW1)
+                If ((Arg0 == ToUUID ("33db4d5b-1ff7-401c-9657-7441c03dd766") /* PCI Host Bridge Device */))
+                {
+                    CreateDWordField (Arg3, 0x04, CDW2)
+                    CreateDWordField (Arg3, 0x08, CDW3)
+                    Local0 = CDW3 /* \_SB_.PCI0._OSC.CDW3 */
+                    Local0 &= 0x1F
+                    If ((Arg1 != One))
+                    {
+                        CDW1 |= 0x08
+                    }
+
+                    If ((CDW3 != Local0))
+                    {
+                        CDW1 |= 0x10
+                    }
+
+                    CDW3 = Local0
+                }
+                Else
+                {
+                    CDW1 |= 0x04
+                }
+
+                Return (Arg3)
+            }
+        }
+    }
+
+    Scope (_SB)
+    {
+        Device (HPET)
+        {
+            Name (_HID, EisaId ("PNP0103") /* HPET System Timer */)  // _HID: Hardware ID
+            Name (_UID, Zero)  // _UID: Unique ID
+            OperationRegion (HPTM, SystemMemory, 0xFED00000, 0x0400)
+            Field (HPTM, DWordAcc, Lock, Preserve)
+            {
+                VEND,   32, 
+                PRD,    32
+            }
+
+            Method (_STA, 0, NotSerialized)  // _STA: Status
+            {
+                Local0 = VEND /* \_SB_.HPET.VEND */
+                Local1 = PRD /* \_SB_.HPET.PRD_ */
+                Local0 >>= 0x10
+                If (((Local0 == Zero) || (Local0 == 0xFFFF)))
+                {
+                    Return (Zero)
+                }
+
+                If (((Local1 == Zero) || (Local1 > 0x05F5E100)))
+                {
+                    Return (Zero)
+                }
+
+                Return (0x0F)
+            }
+
+            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+            {
+                Memory32Fixed (ReadOnly,
+                    0xFED00000,         // Address Base
+                    0x00000400,         // Address Length
+                    )
+            })
+        }
+    }
+
+    Scope (_SB.PCI0)
+    {
+        Device (ISA)
+        {
+            Name (_ADR, 0x001F0000)  // _ADR: Address
+            OperationRegion (PIRQ, PCI_Config, 0x60, 0x0C)
+        }
+    }
+
+    Scope (_SB.PCI0.ISA)
+    {
+        Device (KBD)
+        {
+            Name (_HID, EisaId ("PNP0303") /* IBM Enhanced Keyboard (101/102-key, PS/2 Mouse) */)  // _HID: Hardware ID
+            Name (_STA, 0x0F)  // _STA: Status
+            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+            {
+                IO (Decode16,
+                    0x0060,             // Range Minimum
+                    0x0060,             // Range Maximum
+                    0x01,               // Alignment
+                    0x01,               // Length
+                    )
+                IO (Decode16,
+                    0x0064,             // Range Minimum
+                    0x0064,             // Range Maximum
+                    0x01,               // Alignment
+                    0x01,               // Length
+                    )
+                IRQNoFlags ()
+                    {1}
+            })
+        }
+
+        Device (MOU)
+        {
+            Name (_HID, EisaId ("PNP0F13") /* PS/2 Mouse */)  // _HID: Hardware ID
+            Name (_STA, 0x0F)  // _STA: Status
+            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+            {
+                IRQNoFlags ()
+                    {12}
+            })
+        }
+
+        Device (LPT1)
+        {
+            Name (_HID, EisaId ("PNP0400") /* Standard LPT Parallel Port */)  // _HID: Hardware ID
+            Name (_UID, One)  // _UID: Unique ID
+            Name (_STA, 0x0F)  // _STA: Status
+            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+            {
+                IO (Decode16,
+                    0x0378,             // Range Minimum
+                    0x0378,             // Range Maximum
+                    0x08,               // Alignment
+                    0x08,               // Length
+                    )
+                IRQNoFlags ()
+                    {7}
+            })
+        }
+
+        Device (COM1)
+        {
+            Name (_HID, EisaId ("PNP0501") /* 16550A-compatible COM Serial Port */)  // _HID: Hardware ID
+            Name (_UID, One)  // _UID: Unique ID
+            Name (_STA, 0x0F)  // _STA: Status
+            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+            {
+                IO (Decode16,
+                    0x03F8,             // Range Minimum
+                    0x03F8,             // Range Maximum
+                    0x00,               // Alignment
+                    0x08,               // Length
+                    )
+                IRQNoFlags ()
+                    {4}
+            })
+        }
+
+        Device (RTC)
+        {
+            Name (_HID, EisaId ("PNP0B00") /* AT Real-Time Clock */)  // _HID: Hardware ID
+            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+            {
+                IO (Decode16,
+                    0x0070,             // Range Minimum
+                    0x0070,             // Range Maximum
+                    0x01,               // Alignment
+                    0x08,               // Length
+                    )
+                IRQNoFlags ()
+                    {8}
+            })
+        }
+    }
+
+    Name (PICF, Zero)
+    Method (_PIC, 1, NotSerialized)  // _PIC: Interrupt Model
+    {
+        PICF = Arg0
+    }
+
+    Scope (_SB)
+    {
+        Scope (PCI0)
+        {
+            Name (PRTP, Package (0x80)
+            {
+                Package (0x04)
+                {
+                    0xFFFF, 
+                    Zero, 
+                    LNKE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0xFFFF, 
+                    One, 
+                    LNKF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0xFFFF, 
+                    0x02, 
+                    LNKG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0xFFFF, 
+                    0x03, 
+                    LNKH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0001FFFF, 
+                    Zero, 
+                    LNKF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0001FFFF, 
+                    One, 
+                    LNKG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0001FFFF, 
+                    0x02, 
+                    LNKH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0001FFFF, 
+                    0x03, 
+                    LNKE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0002FFFF, 
+                    Zero, 
+                    LNKG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0002FFFF, 
+                    One, 
+                    LNKH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0002FFFF, 
+                    0x02, 
+                    LNKE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0002FFFF, 
+                    0x03, 
+                    LNKF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0003FFFF, 
+                    Zero, 
+                    LNKH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0003FFFF, 
+                    One, 
+                    LNKE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0003FFFF, 
+                    0x02, 
+                    LNKF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0003FFFF, 
+                    0x03, 
+                    LNKG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0004FFFF, 
+                    Zero, 
+                    LNKE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0004FFFF, 
+                    One, 
+                    LNKF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0004FFFF, 
+                    0x02, 
+                    LNKG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0004FFFF, 
+                    0x03, 
+                    LNKH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0005FFFF, 
+                    Zero, 
+                    LNKF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0005FFFF, 
+                    One, 
+                    LNKG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0005FFFF, 
+                    0x02, 
+                    LNKH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0005FFFF, 
+                    0x03, 
+                    LNKE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0006FFFF, 
+                    Zero, 
+                    LNKG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0006FFFF, 
+                    One, 
+                    LNKH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0006FFFF, 
+                    0x02, 
+                    LNKE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0006FFFF, 
+                    0x03, 
+                    LNKF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0007FFFF, 
+                    Zero, 
+                    LNKH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0007FFFF, 
+                    One, 
+                    LNKE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0007FFFF, 
+                    0x02, 
+                    LNKF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0007FFFF, 
+                    0x03, 
+                    LNKG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0008FFFF, 
+                    Zero, 
+                    LNKE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0008FFFF, 
+                    One, 
+                    LNKF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0008FFFF, 
+                    0x02, 
+                    LNKG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0008FFFF, 
+                    0x03, 
+                    LNKH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0009FFFF, 
+                    Zero, 
+                    LNKF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0009FFFF, 
+                    One, 
+                    LNKG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0009FFFF, 
+                    0x02, 
+                    LNKH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0009FFFF, 
+                    0x03, 
+                    LNKE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000AFFFF, 
+                    Zero, 
+                    LNKG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000AFFFF, 
+                    One, 
+                    LNKH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000AFFFF, 
+                    0x02, 
+                    LNKE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000AFFFF, 
+                    0x03, 
+                    LNKF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000BFFFF, 
+                    Zero, 
+                    LNKH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000BFFFF, 
+                    One, 
+                    LNKE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000BFFFF, 
+                    0x02, 
+                    LNKF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000BFFFF, 
+                    0x03, 
+                    LNKG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000CFFFF, 
+                    Zero, 
+                    LNKE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000CFFFF, 
+                    One, 
+                    LNKF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000CFFFF, 
+                    0x02, 
+                    LNKG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000CFFFF, 
+                    0x03, 
+                    LNKH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000DFFFF, 
+                    Zero, 
+                    LNKF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000DFFFF, 
+                    One, 
+                    LNKG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000DFFFF, 
+                    0x02, 
+                    LNKH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000DFFFF, 
+                    0x03, 
+                    LNKE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000EFFFF, 
+                    Zero, 
+                    LNKG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000EFFFF, 
+                    One, 
+                    LNKH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000EFFFF, 
+                    0x02, 
+                    LNKE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000EFFFF, 
+                    0x03, 
+                    LNKF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000FFFFF, 
+                    Zero, 
+                    LNKH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000FFFFF, 
+                    One, 
+                    LNKE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000FFFFF, 
+                    0x02, 
+                    LNKF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000FFFFF, 
+                    0x03, 
+                    LNKG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0010FFFF, 
+                    Zero, 
+                    LNKE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0010FFFF, 
+                    One, 
+                    LNKF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0010FFFF, 
+                    0x02, 
+                    LNKG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0010FFFF, 
+                    0x03, 
+                    LNKH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0011FFFF, 
+                    Zero, 
+                    LNKF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0011FFFF, 
+                    One, 
+                    LNKG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0011FFFF, 
+                    0x02, 
+                    LNKH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0011FFFF, 
+                    0x03, 
+                    LNKE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0012FFFF, 
+                    Zero, 
+                    LNKG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0012FFFF, 
+                    One, 
+                    LNKH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0012FFFF, 
+                    0x02, 
+                    LNKE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0012FFFF, 
+                    0x03, 
+                    LNKF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0013FFFF, 
+                    Zero, 
+                    LNKH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0013FFFF, 
+                    One, 
+                    LNKE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0013FFFF, 
+                    0x02, 
+                    LNKF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0013FFFF, 
+                    0x03, 
+                    LNKG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0014FFFF, 
+                    Zero, 
+                    LNKE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0014FFFF, 
+                    One, 
+                    LNKF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0014FFFF, 
+                    0x02, 
+                    LNKG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0014FFFF, 
+                    0x03, 
+                    LNKH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0015FFFF, 
+                    Zero, 
+                    LNKF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0015FFFF, 
+                    One, 
+                    LNKG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0015FFFF, 
+                    0x02, 
+                    LNKH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0015FFFF, 
+                    0x03, 
+                    LNKE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0016FFFF, 
+                    Zero, 
+                    LNKG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0016FFFF, 
+                    One, 
+                    LNKH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0016FFFF, 
+                    0x02, 
+                    LNKE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0016FFFF, 
+                    0x03, 
+                    LNKF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0017FFFF, 
+                    Zero, 
+                    LNKH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0017FFFF, 
+                    One, 
+                    LNKE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0017FFFF, 
+                    0x02, 
+                    LNKF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0017FFFF, 
+                    0x03, 
+                    LNKG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0018FFFF, 
+                    Zero, 
+                    LNKE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0018FFFF, 
+                    One, 
+                    LNKF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0018FFFF, 
+                    0x02, 
+                    LNKG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0018FFFF, 
+                    0x03, 
+                    LNKH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0019FFFF, 
+                    Zero, 
+                    LNKA, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0019FFFF, 
+                    One, 
+                    LNKB, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0019FFFF, 
+                    0x02, 
+                    LNKC, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0019FFFF, 
+                    0x03, 
+                    LNKD, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001AFFFF, 
+                    Zero, 
+                    LNKA, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001AFFFF, 
+                    One, 
+                    LNKB, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001AFFFF, 
+                    0x02, 
+                    LNKC, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001AFFFF, 
+                    0x03, 
+                    LNKD, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001BFFFF, 
+                    Zero, 
+                    LNKA, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001BFFFF, 
+                    One, 
+                    LNKB, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001BFFFF, 
+                    0x02, 
+                    LNKC, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001BFFFF, 
+                    0x03, 
+                    LNKD, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001CFFFF, 
+                    Zero, 
+                    LNKA, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001CFFFF, 
+                    One, 
+                    LNKB, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001CFFFF, 
+                    0x02, 
+                    LNKC, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001CFFFF, 
+                    0x03, 
+                    LNKD, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001DFFFF, 
+                    Zero, 
+                    LNKA, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001DFFFF, 
+                    One, 
+                    LNKB, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001DFFFF, 
+                    0x02, 
+                    LNKC, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001DFFFF, 
+                    0x03, 
+                    LNKD, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001EFFFF, 
+                    Zero, 
+                    LNKE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001EFFFF, 
+                    One, 
+                    LNKF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001EFFFF, 
+                    0x02, 
+                    LNKG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001EFFFF, 
+                    0x03, 
+                    LNKH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001FFFFF, 
+                    Zero, 
+                    LNKA, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001FFFFF, 
+                    One, 
+                    LNKB, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001FFFFF, 
+                    0x02, 
+                    LNKC, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001FFFFF, 
+                    0x03, 
+                    LNKD, 
+                    Zero
+                }
+            })
+            Name (PRTA, Package (0x80)
+            {
+                Package (0x04)
+                {
+                    0xFFFF, 
+                    Zero, 
+                    GSIE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0xFFFF, 
+                    One, 
+                    GSIF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0xFFFF, 
+                    0x02, 
+                    GSIG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0xFFFF, 
+                    0x03, 
+                    GSIH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0001FFFF, 
+                    Zero, 
+                    GSIF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0001FFFF, 
+                    One, 
+                    GSIG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0001FFFF, 
+                    0x02, 
+                    GSIH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0001FFFF, 
+                    0x03, 
+                    GSIE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0002FFFF, 
+                    Zero, 
+                    GSIG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0002FFFF, 
+                    One, 
+                    GSIH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0002FFFF, 
+                    0x02, 
+                    GSIE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0002FFFF, 
+                    0x03, 
+                    GSIF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0003FFFF, 
+                    Zero, 
+                    GSIH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0003FFFF, 
+                    One, 
+                    GSIE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0003FFFF, 
+                    0x02, 
+                    GSIF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0003FFFF, 
+                    0x03, 
+                    GSIG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0004FFFF, 
+                    Zero, 
+                    GSIE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0004FFFF, 
+                    One, 
+                    GSIF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0004FFFF, 
+                    0x02, 
+                    GSIG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0004FFFF, 
+                    0x03, 
+                    GSIH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0005FFFF, 
+                    Zero, 
+                    GSIF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0005FFFF, 
+                    One, 
+                    GSIG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0005FFFF, 
+                    0x02, 
+                    GSIH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0005FFFF, 
+                    0x03, 
+                    GSIE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0006FFFF, 
+                    Zero, 
+                    GSIG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0006FFFF, 
+                    One, 
+                    GSIH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0006FFFF, 
+                    0x02, 
+                    GSIE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0006FFFF, 
+                    0x03, 
+                    GSIF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0007FFFF, 
+                    Zero, 
+                    GSIH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0007FFFF, 
+                    One, 
+                    GSIE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0007FFFF, 
+                    0x02, 
+                    GSIF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0007FFFF, 
+                    0x03, 
+                    GSIG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0008FFFF, 
+                    Zero, 
+                    GSIE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0008FFFF, 
+                    One, 
+                    GSIF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0008FFFF, 
+                    0x02, 
+                    GSIG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0008FFFF, 
+                    0x03, 
+                    GSIH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0009FFFF, 
+                    Zero, 
+                    GSIF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0009FFFF, 
+                    One, 
+                    GSIG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0009FFFF, 
+                    0x02, 
+                    GSIH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0009FFFF, 
+                    0x03, 
+                    GSIE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000AFFFF, 
+                    Zero, 
+                    GSIG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000AFFFF, 
+                    One, 
+                    GSIH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000AFFFF, 
+                    0x02, 
+                    GSIE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000AFFFF, 
+                    0x03, 
+                    GSIF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000BFFFF, 
+                    Zero, 
+                    GSIH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000BFFFF, 
+                    One, 
+                    GSIE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000BFFFF, 
+                    0x02, 
+                    GSIF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000BFFFF, 
+                    0x03, 
+                    GSIG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000CFFFF, 
+                    Zero, 
+                    GSIE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000CFFFF, 
+                    One, 
+                    GSIF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000CFFFF, 
+                    0x02, 
+                    GSIG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000CFFFF, 
+                    0x03, 
+                    GSIH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000DFFFF, 
+                    Zero, 
+                    GSIF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000DFFFF, 
+                    One, 
+                    GSIG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000DFFFF, 
+                    0x02, 
+                    GSIH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000DFFFF, 
+                    0x03, 
+                    GSIE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000EFFFF, 
+                    Zero, 
+                    GSIG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000EFFFF, 
+                    One, 
+                    GSIH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000EFFFF, 
+                    0x02, 
+                    GSIE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000EFFFF, 
+                    0x03, 
+                    GSIF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000FFFFF, 
+                    Zero, 
+                    GSIH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000FFFFF, 
+                    One, 
+                    GSIE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000FFFFF, 
+                    0x02, 
+                    GSIF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000FFFFF, 
+                    0x03, 
+                    GSIG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0010FFFF, 
+                    Zero, 
+                    GSIE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0010FFFF, 
+                    One, 
+                    GSIF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0010FFFF, 
+                    0x02, 
+                    GSIG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0010FFFF, 
+                    0x03, 
+                    GSIH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0011FFFF, 
+                    Zero, 
+                    GSIF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0011FFFF, 
+                    One, 
+                    GSIG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0011FFFF, 
+                    0x02, 
+                    GSIH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0011FFFF, 
+                    0x03, 
+                    GSIE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0012FFFF, 
+                    Zero, 
+                    GSIG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0012FFFF, 
+                    One, 
+                    GSIH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0012FFFF, 
+                    0x02, 
+                    GSIE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0012FFFF, 
+                    0x03, 
+                    GSIF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0013FFFF, 
+                    Zero, 
+                    GSIH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0013FFFF, 
+                    One, 
+                    GSIE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0013FFFF, 
+                    0x02, 
+                    GSIF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0013FFFF, 
+                    0x03, 
+                    GSIG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0014FFFF, 
+                    Zero, 
+                    GSIE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0014FFFF, 
+                    One, 
+                    GSIF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0014FFFF, 
+                    0x02, 
+                    GSIG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0014FFFF, 
+                    0x03, 
+                    GSIH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0015FFFF, 
+                    Zero, 
+                    GSIF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0015FFFF, 
+                    One, 
+                    GSIG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0015FFFF, 
+                    0x02, 
+                    GSIH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0015FFFF, 
+                    0x03, 
+                    GSIE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0016FFFF, 
+                    Zero, 
+                    GSIG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0016FFFF, 
+                    One, 
+                    GSIH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0016FFFF, 
+                    0x02, 
+                    GSIE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0016FFFF, 
+                    0x03, 
+                    GSIF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0017FFFF, 
+                    Zero, 
+                    GSIH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0017FFFF, 
+                    One, 
+                    GSIE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0017FFFF, 
+                    0x02, 
+                    GSIF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0017FFFF, 
+                    0x03, 
+                    GSIG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0018FFFF, 
+                    Zero, 
+                    GSIE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0018FFFF, 
+                    One, 
+                    GSIF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0018FFFF, 
+                    0x02, 
+                    GSIG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0018FFFF, 
+                    0x03, 
+                    GSIH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0019FFFF, 
+                    Zero, 
+                    GSIA, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0019FFFF, 
+                    One, 
+                    GSIB, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0019FFFF, 
+                    0x02, 
+                    GSIC, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0019FFFF, 
+                    0x03, 
+                    GSID, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001AFFFF, 
+                    Zero, 
+                    GSIA, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001AFFFF, 
+                    One, 
+                    GSIB, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001AFFFF, 
+                    0x02, 
+                    GSIC, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001AFFFF, 
+                    0x03, 
+                    GSID, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001BFFFF, 
+                    Zero, 
+                    GSIA, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001BFFFF, 
+                    One, 
+                    GSIB, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001BFFFF, 
+                    0x02, 
+                    GSIC, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001BFFFF, 
+                    0x03, 
+                    GSID, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001CFFFF, 
+                    Zero, 
+                    GSIA, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001CFFFF, 
+                    One, 
+                    GSIB, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001CFFFF, 
+                    0x02, 
+                    GSIC, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001CFFFF, 
+                    0x03, 
+                    GSID, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001DFFFF, 
+                    Zero, 
+                    GSIA, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001DFFFF, 
+                    One, 
+                    GSIB, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001DFFFF, 
+                    0x02, 
+                    GSIC, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001DFFFF, 
+                    0x03, 
+                    GSID, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001EFFFF, 
+                    Zero, 
+                    GSIE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001EFFFF, 
+                    One, 
+                    GSIF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001EFFFF, 
+                    0x02, 
+                    GSIG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001EFFFF, 
+                    0x03, 
+                    GSIH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001FFFFF, 
+                    Zero, 
+                    GSIA, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001FFFFF, 
+                    One, 
+                    GSIB, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001FFFFF, 
+                    0x02, 
+                    GSIC, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001FFFFF, 
+                    0x03, 
+                    GSID, 
+                    Zero
+                }
+            })
+            Method (_PRT, 0, NotSerialized)  // _PRT: PCI Routing Table
+            {
+                If ((PICF == Zero))
+                {
+                    Return (PRTP) /* \_SB_.PCI0.PRTP */
+                }
+                Else
+                {
+                    Return (PRTA) /* \_SB_.PCI0.PRTA */
+                }
+            }
+        }
+
+        Field (PCI0.ISA.PIRQ, ByteAcc, NoLock, Preserve)
+        {
+            PRQA,   8, 
+            PRQB,   8, 
+            PRQC,   8, 
+            PRQD,   8, 
+            Offset (0x08), 
+            PRQE,   8, 
+            PRQF,   8, 
+            PRQG,   8, 
+            PRQH,   8
+        }
+
+        Method (IQST, 1, NotSerialized)
+        {
+            If ((0x80 & Arg0))
+            {
+                Return (0x09)
+            }
+
+            Return (0x0B)
+        }
+
+        Method (IQCR, 1, Serialized)
+        {
+            Name (PRR0, ResourceTemplate ()
+            {
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, _Y00)
+                {
+                    0x00000000,
+                }
+            })
+            CreateDWordField (PRR0, \_SB.IQCR._Y00._INT, PRRI)  // _INT: Interrupts
+            PRRI = (Arg0 & 0x0F)
+            Return (PRR0) /* \_SB_.IQCR.PRR0 */
+        }
+
+        Device (LNKA)
+        {
+            Name (_HID, EisaId ("PNP0C0F") /* PCI Interrupt Link Device */)  // _HID: Hardware ID
+            Name (_UID, Zero)  // _UID: Unique ID
+            Name (_PRS, ResourceTemplate ()  // _PRS: Possible Resource Settings
+            {
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, )
+                {
+                    0x00000005,
+                    0x0000000A,
+                    0x0000000B,
+                }
+            })
+            Method (_STA, 0, NotSerialized)  // _STA: Status
+            {
+                Return (IQST (PRQA))
+            }
+
+            Method (_DIS, 0, NotSerialized)  // _DIS: Disable Device
+            {
+                PRQA |= 0x80
+            }
+
+            Method (_CRS, 0, NotSerialized)  // _CRS: Current Resource Settings
+            {
+                Return (IQCR (PRQA))
+            }
+
+            Method (_SRS, 1, NotSerialized)  // _SRS: Set Resource Settings
+            {
+                CreateDWordField (Arg0, 0x05, PRRI)
+                PRQA = PRRI /* \_SB_.LNKA._SRS.PRRI */
+            }
+        }
+
+        Device (LNKB)
+        {
+            Name (_HID, EisaId ("PNP0C0F") /* PCI Interrupt Link Device */)  // _HID: Hardware ID
+            Name (_UID, One)  // _UID: Unique ID
+            Name (_PRS, ResourceTemplate ()  // _PRS: Possible Resource Settings
+            {
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, )
+                {
+                    0x00000005,
+                    0x0000000A,
+                    0x0000000B,
+                }
+            })
+            Method (_STA, 0, NotSerialized)  // _STA: Status
+            {
+                Return (IQST (PRQB))
+            }
+
+            Method (_DIS, 0, NotSerialized)  // _DIS: Disable Device
+            {
+                PRQB |= 0x80
+            }
+
+            Method (_CRS, 0, NotSerialized)  // _CRS: Current Resource Settings
+            {
+                Return (IQCR (PRQB))
+            }
+
+            Method (_SRS, 1, NotSerialized)  // _SRS: Set Resource Settings
+            {
+                CreateDWordField (Arg0, 0x05, PRRI)
+                PRQB = PRRI /* \_SB_.LNKB._SRS.PRRI */
+            }
+        }
+
+        Device (LNKC)
+        {
+            Name (_HID, EisaId ("PNP0C0F") /* PCI Interrupt Link Device */)  // _HID: Hardware ID
+            Name (_UID, 0x02)  // _UID: Unique ID
+            Name (_PRS, ResourceTemplate ()  // _PRS: Possible Resource Settings
+            {
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, )
+                {
+                    0x00000005,
+                    0x0000000A,
+                    0x0000000B,
+                }
+            })
+            Method (_STA, 0, NotSerialized)  // _STA: Status
+            {
+                Return (IQST (PRQC))
+            }
+
+            Method (_DIS, 0, NotSerialized)  // _DIS: Disable Device
+            {
+                PRQC |= 0x80
+            }
+
+            Method (_CRS, 0, NotSerialized)  // _CRS: Current Resource Settings
+            {
+                Return (IQCR (PRQC))
+            }
+
+            Method (_SRS, 1, NotSerialized)  // _SRS: Set Resource Settings
+            {
+                CreateDWordField (Arg0, 0x05, PRRI)
+                PRQC = PRRI /* \_SB_.LNKC._SRS.PRRI */
+            }
+        }
+
+        Device (LNKD)
+        {
+            Name (_HID, EisaId ("PNP0C0F") /* PCI Interrupt Link Device */)  // _HID: Hardware ID
+            Name (_UID, 0x03)  // _UID: Unique ID
+            Name (_PRS, ResourceTemplate ()  // _PRS: Possible Resource Settings
+            {
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, )
+                {
+                    0x00000005,
+                    0x0000000A,
+                    0x0000000B,
+                }
+            })
+            Method (_STA, 0, NotSerialized)  // _STA: Status
+            {
+                Return (IQST (PRQD))
+            }
+
+            Method (_DIS, 0, NotSerialized)  // _DIS: Disable Device
+            {
+                PRQD |= 0x80
+            }
+
+            Method (_CRS, 0, NotSerialized)  // _CRS: Current Resource Settings
+            {
+                Return (IQCR (PRQD))
+            }
+
+            Method (_SRS, 1, NotSerialized)  // _SRS: Set Resource Settings
+            {
+                CreateDWordField (Arg0, 0x05, PRRI)
+                PRQD = PRRI /* \_SB_.LNKD._SRS.PRRI */
+            }
+        }
+
+        Device (LNKE)
+        {
+            Name (_HID, EisaId ("PNP0C0F") /* PCI Interrupt Link Device */)  // _HID: Hardware ID
+            Name (_UID, 0x04)  // _UID: Unique ID
+            Name (_PRS, ResourceTemplate ()  // _PRS: Possible Resource Settings
+            {
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, )
+                {
+                    0x00000005,
+                    0x0000000A,
+                    0x0000000B,
+                }
+            })
+            Method (_STA, 0, NotSerialized)  // _STA: Status
+            {
+                Return (IQST (PRQE))
+            }
+
+            Method (_DIS, 0, NotSerialized)  // _DIS: Disable Device
+            {
+                PRQE |= 0x80
+            }
+
+            Method (_CRS, 0, NotSerialized)  // _CRS: Current Resource Settings
+            {
+                Return (IQCR (PRQE))
+            }
+
+            Method (_SRS, 1, NotSerialized)  // _SRS: Set Resource Settings
+            {
+                CreateDWordField (Arg0, 0x05, PRRI)
+                PRQE = PRRI /* \_SB_.LNKE._SRS.PRRI */
+            }
+        }
+
+        Device (LNKF)
+        {
+            Name (_HID, EisaId ("PNP0C0F") /* PCI Interrupt Link Device */)  // _HID: Hardware ID
+            Name (_UID, 0x05)  // _UID: Unique ID
+            Name (_PRS, ResourceTemplate ()  // _PRS: Possible Resource Settings
+            {
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, )
+                {
+                    0x00000005,
+                    0x0000000A,
+                    0x0000000B,
+                }
+            })
+            Method (_STA, 0, NotSerialized)  // _STA: Status
+            {
+                Return (IQST (PRQF))
+            }
+
+            Method (_DIS, 0, NotSerialized)  // _DIS: Disable Device
+            {
+                PRQF |= 0x80
+            }
+
+            Method (_CRS, 0, NotSerialized)  // _CRS: Current Resource Settings
+            {
+                Return (IQCR (PRQF))
+            }
+
+            Method (_SRS, 1, NotSerialized)  // _SRS: Set Resource Settings
+            {
+                CreateDWordField (Arg0, 0x05, PRRI)
+                PRQF = PRRI /* \_SB_.LNKF._SRS.PRRI */
+            }
+        }
+
+        Device (LNKG)
+        {
+            Name (_HID, EisaId ("PNP0C0F") /* PCI Interrupt Link Device */)  // _HID: Hardware ID
+            Name (_UID, 0x06)  // _UID: Unique ID
+            Name (_PRS, ResourceTemplate ()  // _PRS: Possible Resource Settings
+            {
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, )
+                {
+                    0x00000005,
+                    0x0000000A,
+                    0x0000000B,
+                }
+            })
+            Method (_STA, 0, NotSerialized)  // _STA: Status
+            {
+                Return (IQST (PRQG))
+            }
+
+            Method (_DIS, 0, NotSerialized)  // _DIS: Disable Device
+            {
+                PRQG |= 0x80
+            }
+
+            Method (_CRS, 0, NotSerialized)  // _CRS: Current Resource Settings
+            {
+                Return (IQCR (PRQG))
+            }
+
+            Method (_SRS, 1, NotSerialized)  // _SRS: Set Resource Settings
+            {
+                CreateDWordField (Arg0, 0x05, PRRI)
+                PRQG = PRRI /* \_SB_.LNKG._SRS.PRRI */
+            }
+        }
+
+        Device (LNKH)
+        {
+            Name (_HID, EisaId ("PNP0C0F") /* PCI Interrupt Link Device */)  // _HID: Hardware ID
+            Name (_UID, 0x07)  // _UID: Unique ID
+            Name (_PRS, ResourceTemplate ()  // _PRS: Possible Resource Settings
+            {
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, )
+                {
+                    0x00000005,
+                    0x0000000A,
+                    0x0000000B,
+                }
+            })
+            Method (_STA, 0, NotSerialized)  // _STA: Status
+            {
+                Return (IQST (PRQH))
+            }
+
+            Method (_DIS, 0, NotSerialized)  // _DIS: Disable Device
+            {
+                PRQH |= 0x80
+            }
+
+            Method (_CRS, 0, NotSerialized)  // _CRS: Current Resource Settings
+            {
+                Return (IQCR (PRQH))
+            }
+
+            Method (_SRS, 1, NotSerialized)  // _SRS: Set Resource Settings
+            {
+                CreateDWordField (Arg0, 0x05, PRRI)
+                PRQH = PRRI /* \_SB_.LNKH._SRS.PRRI */
+            }
+        }
+
+        Device (GSIA)
+        {
+            Name (_HID, EisaId ("PNP0C0F") /* PCI Interrupt Link Device */)  // _HID: Hardware ID
+            Name (_UID, 0x10)  // _UID: Unique ID
+            Name (_PRS, ResourceTemplate ()  // _PRS: Possible Resource Settings
+            {
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, )
+                {
+                    0x00000010,
+                }
+            })
+            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+            {
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, )
+                {
+                    0x00000010,
+                }
+            })
+            Method (_DIS, 0, NotSerialized)  // _DIS: Disable Device
+            {
+            }
+
+            Method (_SRS, 1, NotSerialized)  // _SRS: Set Resource Settings
+            {
+            }
+        }
+
+        Device (GSIB)
+        {
+            Name (_HID, EisaId ("PNP0C0F") /* PCI Interrupt Link Device */)  // _HID: Hardware ID
+            Name (_UID, 0x11)  // _UID: Unique ID
+            Name (_PRS, ResourceTemplate ()  // _PRS: Possible Resource Settings
+            {
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, )
+                {
+                    0x00000011,
+                }
+            })
+            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+            {
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, )
+                {
+                    0x00000011,
+                }
+            })
+            Method (_DIS, 0, NotSerialized)  // _DIS: Disable Device
+            {
+            }
+
+            Method (_SRS, 1, NotSerialized)  // _SRS: Set Resource Settings
+            {
+            }
+        }
+
+        Device (GSIC)
+        {
+            Name (_HID, EisaId ("PNP0C0F") /* PCI Interrupt Link Device */)  // _HID: Hardware ID
+            Name (_UID, 0x12)  // _UID: Unique ID
+            Name (_PRS, ResourceTemplate ()  // _PRS: Possible Resource Settings
+            {
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, )
+                {
+                    0x00000012,
+                }
+            })
+            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+            {
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, )
+                {
+                    0x00000012,
+                }
+            })
+            Method (_DIS, 0, NotSerialized)  // _DIS: Disable Device
+            {
+            }
+
+            Method (_SRS, 1, NotSerialized)  // _SRS: Set Resource Settings
+            {
+            }
+        }
+
+        Device (GSID)
+        {
+            Name (_HID, EisaId ("PNP0C0F") /* PCI Interrupt Link Device */)  // _HID: Hardware ID
+            Name (_UID, 0x13)  // _UID: Unique ID
+            Name (_PRS, ResourceTemplate ()  // _PRS: Possible Resource Settings
+            {
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, )
+                {
+                    0x00000013,
+                }
+            })
+            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+            {
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, )
+                {
+                    0x00000013,
+                }
+            })
+            Method (_DIS, 0, NotSerialized)  // _DIS: Disable Device
+            {
+            }
+
+            Method (_SRS, 1, NotSerialized)  // _SRS: Set Resource Settings
+            {
+            }
+        }
+
+        Device (GSIE)
+        {
+            Name (_HID, EisaId ("PNP0C0F") /* PCI Interrupt Link Device */)  // _HID: Hardware ID
+            Name (_UID, 0x14)  // _UID: Unique ID
+            Name (_PRS, ResourceTemplate ()  // _PRS: Possible Resource Settings
+            {
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, )
+                {
+                    0x00000014,
+                }
+            })
+            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+            {
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, )
+                {
+                    0x00000014,
+                }
+            })
+            Method (_DIS, 0, NotSerialized)  // _DIS: Disable Device
+            {
+            }
+
+            Method (_SRS, 1, NotSerialized)  // _SRS: Set Resource Settings
+            {
+            }
+        }
+
+        Device (GSIF)
+        {
+            Name (_HID, EisaId ("PNP0C0F") /* PCI Interrupt Link Device */)  // _HID: Hardware ID
+            Name (_UID, 0x15)  // _UID: Unique ID
+            Name (_PRS, ResourceTemplate ()  // _PRS: Possible Resource Settings
+            {
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, )
+                {
+                    0x00000015,
+                }
+            })
+            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+            {
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, )
+                {
+                    0x00000015,
+                }
+            })
+            Method (_DIS, 0, NotSerialized)  // _DIS: Disable Device
+            {
+            }
+
+            Method (_SRS, 1, NotSerialized)  // _SRS: Set Resource Settings
+            {
+            }
+        }
+
+        Device (GSIG)
+        {
+            Name (_HID, EisaId ("PNP0C0F") /* PCI Interrupt Link Device */)  // _HID: Hardware ID
+            Name (_UID, 0x16)  // _UID: Unique ID
+            Name (_PRS, ResourceTemplate ()  // _PRS: Possible Resource Settings
+            {
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, )
+                {
+                    0x00000016,
+                }
+            })
+            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+            {
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, )
+                {
+                    0x00000016,
+                }
+            })
+            Method (_DIS, 0, NotSerialized)  // _DIS: Disable Device
+            {
+            }
+
+            Method (_SRS, 1, NotSerialized)  // _SRS: Set Resource Settings
+            {
+            }
+        }
+
+        Device (GSIH)
+        {
+            Name (_HID, EisaId ("PNP0C0F") /* PCI Interrupt Link Device */)  // _HID: Hardware ID
+            Name (_UID, 0x17)  // _UID: Unique ID
+            Name (_PRS, ResourceTemplate ()  // _PRS: Possible Resource Settings
+            {
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, )
+                {
+                    0x00000017,
+                }
+            })
+            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+            {
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, )
+                {
+                    0x00000017,
+                }
+            })
+            Method (_DIS, 0, NotSerialized)  // _DIS: Disable Device
+            {
+            }
+
+            Method (_SRS, 1, NotSerialized)  // _SRS: Set Resource Settings
+            {
+            }
+        }
+    }
+
+    Scope (_SB.PCI0)
+    {
+        Device (SMB0)
+        {
+            Name (_ADR, 0x001F0003)  // _ADR: Address
+        }
+    }
+
+    Scope (_SB)
+    {
+        Device (\_SB.PCI0.PRES)
+        {
+            Name (_HID, EisaId ("PNP0A06") /* Generic Container Device */)  // _HID: Hardware ID
+            Name (_UID, "CPU Hotplug resources")  // _UID: Unique ID
+            Mutex (CPLK, 0x00)
+            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+            {
+                IO (Decode16,
+                    0x0CD8,             // Range Minimum
+                    0x0CD8,             // Range Maximum
+                    0x01,               // Alignment
+                    0x0C,               // Length
+                    )
+            })
+            OperationRegion (PRST, SystemIO, 0x0CD8, 0x0C)
+            Field (PRST, ByteAcc, NoLock, WriteAsZeros)
+            {
+                Offset (0x04), 
+                CPEN,   1, 
+                CINS,   1, 
+                CRMV,   1, 
+                CEJ0,   1, 
+                Offset (0x05), 
+                CCMD,   8
+            }
+
+            Field (PRST, DWordAcc, NoLock, Preserve)
+            {
+                CSEL,   32, 
+                Offset (0x08), 
+                CDAT,   32
+            }
+
+            Method (_INI, 0, Serialized)  // _INI: Initialize
+            {
+                CSEL = Zero
+            }
+        }
+
+        Device (\_SB.CPUS)
+        {
+            Name (_HID, "ACPI0010" /* Processor Container Device */)  // _HID: Hardware ID
+            Name (_CID, EisaId ("PNP0A05") /* Generic Container Device */)  // _CID: Compatible ID
+            Method (CTFY, 2, NotSerialized)
+            {
+                If ((Arg0 == Zero))
+                {
+                    Notify (C000, Arg1)
+                }
+            }
+
+            Method (CSTA, 1, Serialized)
+            {
+                Acquire (\_SB.PCI0.PRES.CPLK, 0xFFFF)
+                \_SB.PCI0.PRES.CSEL = Arg0
+                Local0 = Zero
+                If ((\_SB.PCI0.PRES.CPEN == One))
+                {
+                    Local0 = 0x0F
+                }
+
+                Release (\_SB.PCI0.PRES.CPLK)
+                Return (Local0)
+            }
+
+            Method (CEJ0, 1, Serialized)
+            {
+                Acquire (\_SB.PCI0.PRES.CPLK, 0xFFFF)
+                \_SB.PCI0.PRES.CSEL = Arg0
+                \_SB.PCI0.PRES.CEJ0 = One
+                Release (\_SB.PCI0.PRES.CPLK)
+            }
+
+            Method (CSCN, 0, Serialized)
+            {
+                Acquire (\_SB.PCI0.PRES.CPLK, 0xFFFF)
+                Local0 = One
+                While ((Local0 == One))
+                {
+                    Local0 = Zero
+                    \_SB.PCI0.PRES.CCMD = Zero
+                    If ((\_SB.PCI0.PRES.CINS == One))
+                    {
+                        CTFY (\_SB.PCI0.PRES.CDAT, One)
+                        \_SB.PCI0.PRES.CINS = One
+                        Local0 = One
+                    }
+                    ElseIf ((\_SB.PCI0.PRES.CRMV == One))
+                    {
+                        CTFY (\_SB.PCI0.PRES.CDAT, 0x03)
+                        \_SB.PCI0.PRES.CRMV = One
+                        Local0 = One
+                    }
+                }
+
+                Release (\_SB.PCI0.PRES.CPLK)
+            }
+
+            Method (COST, 4, Serialized)
+            {
+                Acquire (\_SB.PCI0.PRES.CPLK, 0xFFFF)
+                \_SB.PCI0.PRES.CSEL = Arg0
+                \_SB.PCI0.PRES.CCMD = One
+                \_SB.PCI0.PRES.CDAT = Arg1
+                \_SB.PCI0.PRES.CCMD = 0x02
+                \_SB.PCI0.PRES.CDAT = Arg2
+                Release (\_SB.PCI0.PRES.CPLK)
+            }
+
+            Processor (C000, 0x00, 0x00000000, 0x00)
+            {
+                Method (_STA, 0, Serialized)  // _STA: Status
+                {
+                    Return (CSTA (Zero))
+                }
+
+                Name (_MAT, Buffer (0x08)  // _MAT: Multiple APIC Table Entry
+                {
+                     0x00, 0x08, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00   // ........
+                })
+                Method (_OST, 3, Serialized)  // _OST: OSPM Status Indication
+                {
+                    COST (Zero, Arg0, Arg1, Arg2)
+                }
+            }
+        }
+    }
+
+    Method (\_GPE._E02, 0, NotSerialized)  // _Exx: Edge-Triggered GPE, xx=0x00-0xFF
+    {
+        \_SB.CPUS.CSCN ()
+    }
+
+    Scope (_GPE)
+    {
+        Name (_HID, "ACPI0006" /* GPE Block Device */)  // _HID: Hardware ID
+    }
+
+    Scope (\_SB.PCI0)
+    {
+        Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+        {
+            WordBusNumber (ResourceProducer, MinFixed, MaxFixed, PosDecode,
+                0x0000,             // Granularity
+                0x0000,             // Range Minimum
+                0x00FF,             // Range Maximum
+                0x0000,             // Translation Offset
+                0x0100,             // Length
+                ,, )
+            IO (Decode16,
+                0x0CF8,             // Range Minimum
+                0x0CF8,             // Range Maximum
+                0x01,               // Alignment
+                0x08,               // Length
+                )
+            WordIO (ResourceProducer, MinFixed, MaxFixed, PosDecode, EntireRange,
+                0x0000,             // Granularity
+                0x0000,             // Range Minimum
+                0x0CF7,             // Range Maximum
+                0x0000,             // Translation Offset
+                0x0CF8,             // Length
+                ,, , TypeStatic, DenseTranslation)
+            WordIO (ResourceProducer, MinFixed, MaxFixed, PosDecode, EntireRange,
+                0x0000,             // Granularity
+                0x0D00,             // Range Minimum
+                0xFFFF,             // Range Maximum
+                0x0000,             // Translation Offset
+                0xF300,             // Length
+                ,, , TypeStatic, DenseTranslation)
+            DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, Cacheable, ReadWrite,
+                0x00000000,         // Granularity
+                0x000A0000,         // Range Minimum
+                0x000BFFFF,         // Range Maximum
+                0x00000000,         // Translation Offset
+                0x00020000,         // Length
+                ,, , AddressRangeMemory, TypeStatic)
+            DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, NonCacheable, ReadWrite,
+                0x00000000,         // Granularity
+                0x08000000,         // Range Minimum
+                0xAFFFFFFF,         // Range Maximum
+                0x00000000,         // Translation Offset
+                0xA8000000,         // Length
+                ,, , AddressRangeMemory, TypeStatic)
+            DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, NonCacheable, ReadWrite,
+                0x00000000,         // Granularity
+                0xC0000000,         // Range Minimum
+                0xFEBFFFFF,         // Range Maximum
+                0x00000000,         // Translation Offset
+                0x3EC00000,         // Length
+                ,, , AddressRangeMemory, TypeStatic)
+            QWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, Cacheable, ReadWrite,
+                0x0000000000000000, // Granularity
+                0x0000000100000000, // Range Minimum
+                0x00000008FFFFFFFF, // Range Maximum
+                0x0000000000000000, // Translation Offset
+                0x0000000800000000, // Length
+                ,, , AddressRangeMemory, TypeStatic)
+        })
+        Device (GPE0)
+        {
+            Name (_HID, "PNP0A06" /* Generic Container Device */)  // _HID: Hardware ID
+            Name (_UID, "GPE0 resources")  // _UID: Unique ID
+            Name (_STA, 0x0B)  // _STA: Status
+            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+            {
+                IO (Decode16,
+                    0x0620,             // Range Minimum
+                    0x0620,             // Range Maximum
+                    0x01,               // Alignment
+                    0x10,               // Length
+                    )
+            })
+        }
+    }
+
+    Scope (\)
+    {
+        Name (_S3, Package (0x04)  // _S3_: S3 System State
+        {
+            One, 
+            One, 
+            Zero, 
+            Zero
+        })
+        Name (_S4, Package (0x04)  // _S4_: S4 System State
+        {
+            0x02, 
+            0x02, 
+            Zero, 
+            Zero
+        })
+        Name (_S5, Package (0x04)  // _S5_: S5 System State
+        {
+            Zero, 
+            Zero, 
+            Zero, 
+            Zero
+        })
+    }
+
+    Scope (\_SB.PCI0)
+    {
+        Device (FWCF)
+        {
+            Name (_HID, "QEMU0002")  // _HID: Hardware ID
+            Name (_STA, 0x0B)  // _STA: Status
+            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+            {
+                IO (Decode16,
+                    0x0510,             // Range Minimum
+                    0x0510,             // Range Maximum
+                    0x01,               // Alignment
+                    0x0C,               // Length
+                    )
+            })
+        }
+    }
+
+    Scope (\_SB)
+    {
+        Scope (PCI0)
+        {
+            Device (S00)
+            {
+                Name (_ADR, Zero)  // _ADR: Address
+            }
+
+            Device (S08)
+            {
+                Name (_ADR, 0x00010000)  // _ADR: Address
+                Method (_S1D, 0, NotSerialized)  // _S1D: S1 Device State
+                {
+                    Return (Zero)
+                }
+
+                Method (_S2D, 0, NotSerialized)  // _S2D: S2 Device State
+                {
+                    Return (Zero)
+                }
+
+                Method (_S3D, 0, NotSerialized)  // _S3D: S3 Device State
+                {
+                    Return (Zero)
+                }
+            }
+
+            Device (S10)
+            {
+                Name (_ADR, 0x00020000)  // _ADR: Address
+            }
+
+            Method (PCNT, 0, NotSerialized)
+            {
+            }
+        }
+    }
+}
+
diff --git a/tests/data/acpi/q35/DSDT.cphp b/tests/data/acpi/q35/DSDT.cphp
index d7bedee7ff638f11b3bb84ef960364b409a49cce..69c5edf620529e995461ccba63b76a083f25b2b6 100644
GIT binary patch
delta 33
ocmX@(aKwSjCD<jzMS+2Vv27#Q7kN%MmYDcpr+5Lo$s7u{0IPfnO8@`>

delta 42
xcmX@&aK?elCD<jzM}dKXQF<fS7kMr}mYDcpr+5K3mdWf2w(KHo0nUCQ3;_Az3Q_<7

diff --git a/tests/data/acpi/q35/DSDT.cphp.dsl b/tests/data/acpi/q35/DSDT.cphp.dsl
new file mode 100644
index 0000000000..d3677e802c
--- /dev/null
+++ b/tests/data/acpi/q35/DSDT.cphp.dsl
@@ -0,0 +1,3283 @@ 
+/*
+ * Intel ACPI Component Architecture
+ * AML/ASL+ Disassembler version 20190509 (64-bit version)
+ * Copyright (c) 2000 - 2019 Intel Corporation
+ * 
+ * Disassembling to symbolic ASL+ operators
+ *
+ * Disassembly of tests/data/acpi/q35/DSDT.cphp, Tue Aug  4 11:14:15 2020
+ *
+ * Original Table Header:
+ *     Signature        "DSDT"
+ *     Length           0x00001FCD (8141)
+ *     Revision         0x01 **** 32-bit table (V1), no 64-bit math support
+ *     Checksum         0x25
+ *     OEM ID           "BOCHS "
+ *     OEM Table ID     "BXPCDSDT"
+ *     OEM Revision     0x00000001 (1)
+ *     Compiler ID      "BXPC"
+ *     Compiler Version 0x00000001 (1)
+ */
+DefinitionBlock ("", "DSDT", 1, "BOCHS ", "BXPCDSDT", 0x00000001)
+{
+    Scope (\)
+    {
+        OperationRegion (DBG, SystemIO, 0x0402, One)
+        Field (DBG, ByteAcc, NoLock, Preserve)
+        {
+            DBGB,   8
+        }
+
+        Method (DBUG, 1, NotSerialized)
+        {
+            ToHexString (Arg0, Local0)
+            ToBuffer (Local0, Local0)
+            Local1 = (SizeOf (Local0) - One)
+            Local2 = Zero
+            While ((Local2 < Local1))
+            {
+                DBGB = DerefOf (Local0 [Local2])
+                Local2++
+            }
+
+            DBGB = 0x0A
+        }
+    }
+
+    Scope (_SB)
+    {
+        Device (PCI0)
+        {
+            Name (_HID, EisaId ("PNP0A08") /* PCI Express Bus */)  // _HID: Hardware ID
+            Name (_CID, EisaId ("PNP0A03") /* PCI Bus */)  // _CID: Compatible ID
+            Name (_ADR, Zero)  // _ADR: Address
+            Name (_UID, Zero)  // _UID: Unique ID
+            Method (_OSC, 4, NotSerialized)  // _OSC: Operating System Capabilities
+            {
+                CreateDWordField (Arg3, Zero, CDW1)
+                If ((Arg0 == ToUUID ("33db4d5b-1ff7-401c-9657-7441c03dd766") /* PCI Host Bridge Device */))
+                {
+                    CreateDWordField (Arg3, 0x04, CDW2)
+                    CreateDWordField (Arg3, 0x08, CDW3)
+                    Local0 = CDW3 /* \_SB_.PCI0._OSC.CDW3 */
+                    Local0 &= 0x1F
+                    If ((Arg1 != One))
+                    {
+                        CDW1 |= 0x08
+                    }
+
+                    If ((CDW3 != Local0))
+                    {
+                        CDW1 |= 0x10
+                    }
+
+                    CDW3 = Local0
+                }
+                Else
+                {
+                    CDW1 |= 0x04
+                }
+
+                Return (Arg3)
+            }
+        }
+    }
+
+    Scope (_SB)
+    {
+        Device (HPET)
+        {
+            Name (_HID, EisaId ("PNP0103") /* HPET System Timer */)  // _HID: Hardware ID
+            Name (_UID, Zero)  // _UID: Unique ID
+            OperationRegion (HPTM, SystemMemory, 0xFED00000, 0x0400)
+            Field (HPTM, DWordAcc, Lock, Preserve)
+            {
+                VEND,   32, 
+                PRD,    32
+            }
+
+            Method (_STA, 0, NotSerialized)  // _STA: Status
+            {
+                Local0 = VEND /* \_SB_.HPET.VEND */
+                Local1 = PRD /* \_SB_.HPET.PRD_ */
+                Local0 >>= 0x10
+                If (((Local0 == Zero) || (Local0 == 0xFFFF)))
+                {
+                    Return (Zero)
+                }
+
+                If (((Local1 == Zero) || (Local1 > 0x05F5E100)))
+                {
+                    Return (Zero)
+                }
+
+                Return (0x0F)
+            }
+
+            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+            {
+                Memory32Fixed (ReadOnly,
+                    0xFED00000,         // Address Base
+                    0x00000400,         // Address Length
+                    )
+            })
+        }
+    }
+
+    Scope (_SB.PCI0)
+    {
+        Device (ISA)
+        {
+            Name (_ADR, 0x001F0000)  // _ADR: Address
+            OperationRegion (PIRQ, PCI_Config, 0x60, 0x0C)
+        }
+    }
+
+    Scope (_SB.PCI0.ISA)
+    {
+        Device (KBD)
+        {
+            Name (_HID, EisaId ("PNP0303") /* IBM Enhanced Keyboard (101/102-key, PS/2 Mouse) */)  // _HID: Hardware ID
+            Name (_STA, 0x0F)  // _STA: Status
+            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+            {
+                IO (Decode16,
+                    0x0060,             // Range Minimum
+                    0x0060,             // Range Maximum
+                    0x01,               // Alignment
+                    0x01,               // Length
+                    )
+                IO (Decode16,
+                    0x0064,             // Range Minimum
+                    0x0064,             // Range Maximum
+                    0x01,               // Alignment
+                    0x01,               // Length
+                    )
+                IRQNoFlags ()
+                    {1}
+            })
+        }
+
+        Device (MOU)
+        {
+            Name (_HID, EisaId ("PNP0F13") /* PS/2 Mouse */)  // _HID: Hardware ID
+            Name (_STA, 0x0F)  // _STA: Status
+            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+            {
+                IRQNoFlags ()
+                    {12}
+            })
+        }
+
+        Device (LPT1)
+        {
+            Name (_HID, EisaId ("PNP0400") /* Standard LPT Parallel Port */)  // _HID: Hardware ID
+            Name (_UID, One)  // _UID: Unique ID
+            Name (_STA, 0x0F)  // _STA: Status
+            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+            {
+                IO (Decode16,
+                    0x0378,             // Range Minimum
+                    0x0378,             // Range Maximum
+                    0x08,               // Alignment
+                    0x08,               // Length
+                    )
+                IRQNoFlags ()
+                    {7}
+            })
+        }
+
+        Device (COM1)
+        {
+            Name (_HID, EisaId ("PNP0501") /* 16550A-compatible COM Serial Port */)  // _HID: Hardware ID
+            Name (_UID, One)  // _UID: Unique ID
+            Name (_STA, 0x0F)  // _STA: Status
+            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+            {
+                IO (Decode16,
+                    0x03F8,             // Range Minimum
+                    0x03F8,             // Range Maximum
+                    0x00,               // Alignment
+                    0x08,               // Length
+                    )
+                IRQNoFlags ()
+                    {4}
+            })
+        }
+
+        Device (RTC)
+        {
+            Name (_HID, EisaId ("PNP0B00") /* AT Real-Time Clock */)  // _HID: Hardware ID
+            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+            {
+                IO (Decode16,
+                    0x0070,             // Range Minimum
+                    0x0070,             // Range Maximum
+                    0x01,               // Alignment
+                    0x08,               // Length
+                    )
+                IRQNoFlags ()
+                    {8}
+            })
+        }
+    }
+
+    Name (PICF, Zero)
+    Method (_PIC, 1, NotSerialized)  // _PIC: Interrupt Model
+    {
+        PICF = Arg0
+    }
+
+    Scope (_SB)
+    {
+        Scope (PCI0)
+        {
+            Name (PRTP, Package (0x80)
+            {
+                Package (0x04)
+                {
+                    0xFFFF, 
+                    Zero, 
+                    LNKE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0xFFFF, 
+                    One, 
+                    LNKF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0xFFFF, 
+                    0x02, 
+                    LNKG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0xFFFF, 
+                    0x03, 
+                    LNKH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0001FFFF, 
+                    Zero, 
+                    LNKF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0001FFFF, 
+                    One, 
+                    LNKG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0001FFFF, 
+                    0x02, 
+                    LNKH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0001FFFF, 
+                    0x03, 
+                    LNKE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0002FFFF, 
+                    Zero, 
+                    LNKG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0002FFFF, 
+                    One, 
+                    LNKH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0002FFFF, 
+                    0x02, 
+                    LNKE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0002FFFF, 
+                    0x03, 
+                    LNKF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0003FFFF, 
+                    Zero, 
+                    LNKH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0003FFFF, 
+                    One, 
+                    LNKE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0003FFFF, 
+                    0x02, 
+                    LNKF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0003FFFF, 
+                    0x03, 
+                    LNKG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0004FFFF, 
+                    Zero, 
+                    LNKE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0004FFFF, 
+                    One, 
+                    LNKF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0004FFFF, 
+                    0x02, 
+                    LNKG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0004FFFF, 
+                    0x03, 
+                    LNKH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0005FFFF, 
+                    Zero, 
+                    LNKF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0005FFFF, 
+                    One, 
+                    LNKG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0005FFFF, 
+                    0x02, 
+                    LNKH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0005FFFF, 
+                    0x03, 
+                    LNKE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0006FFFF, 
+                    Zero, 
+                    LNKG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0006FFFF, 
+                    One, 
+                    LNKH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0006FFFF, 
+                    0x02, 
+                    LNKE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0006FFFF, 
+                    0x03, 
+                    LNKF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0007FFFF, 
+                    Zero, 
+                    LNKH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0007FFFF, 
+                    One, 
+                    LNKE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0007FFFF, 
+                    0x02, 
+                    LNKF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0007FFFF, 
+                    0x03, 
+                    LNKG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0008FFFF, 
+                    Zero, 
+                    LNKE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0008FFFF, 
+                    One, 
+                    LNKF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0008FFFF, 
+                    0x02, 
+                    LNKG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0008FFFF, 
+                    0x03, 
+                    LNKH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0009FFFF, 
+                    Zero, 
+                    LNKF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0009FFFF, 
+                    One, 
+                    LNKG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0009FFFF, 
+                    0x02, 
+                    LNKH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0009FFFF, 
+                    0x03, 
+                    LNKE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000AFFFF, 
+                    Zero, 
+                    LNKG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000AFFFF, 
+                    One, 
+                    LNKH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000AFFFF, 
+                    0x02, 
+                    LNKE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000AFFFF, 
+                    0x03, 
+                    LNKF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000BFFFF, 
+                    Zero, 
+                    LNKH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000BFFFF, 
+                    One, 
+                    LNKE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000BFFFF, 
+                    0x02, 
+                    LNKF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000BFFFF, 
+                    0x03, 
+                    LNKG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000CFFFF, 
+                    Zero, 
+                    LNKE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000CFFFF, 
+                    One, 
+                    LNKF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000CFFFF, 
+                    0x02, 
+                    LNKG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000CFFFF, 
+                    0x03, 
+                    LNKH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000DFFFF, 
+                    Zero, 
+                    LNKF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000DFFFF, 
+                    One, 
+                    LNKG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000DFFFF, 
+                    0x02, 
+                    LNKH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000DFFFF, 
+                    0x03, 
+                    LNKE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000EFFFF, 
+                    Zero, 
+                    LNKG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000EFFFF, 
+                    One, 
+                    LNKH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000EFFFF, 
+                    0x02, 
+                    LNKE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000EFFFF, 
+                    0x03, 
+                    LNKF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000FFFFF, 
+                    Zero, 
+                    LNKH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000FFFFF, 
+                    One, 
+                    LNKE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000FFFFF, 
+                    0x02, 
+                    LNKF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000FFFFF, 
+                    0x03, 
+                    LNKG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0010FFFF, 
+                    Zero, 
+                    LNKE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0010FFFF, 
+                    One, 
+                    LNKF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0010FFFF, 
+                    0x02, 
+                    LNKG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0010FFFF, 
+                    0x03, 
+                    LNKH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0011FFFF, 
+                    Zero, 
+                    LNKF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0011FFFF, 
+                    One, 
+                    LNKG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0011FFFF, 
+                    0x02, 
+                    LNKH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0011FFFF, 
+                    0x03, 
+                    LNKE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0012FFFF, 
+                    Zero, 
+                    LNKG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0012FFFF, 
+                    One, 
+                    LNKH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0012FFFF, 
+                    0x02, 
+                    LNKE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0012FFFF, 
+                    0x03, 
+                    LNKF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0013FFFF, 
+                    Zero, 
+                    LNKH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0013FFFF, 
+                    One, 
+                    LNKE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0013FFFF, 
+                    0x02, 
+                    LNKF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0013FFFF, 
+                    0x03, 
+                    LNKG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0014FFFF, 
+                    Zero, 
+                    LNKE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0014FFFF, 
+                    One, 
+                    LNKF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0014FFFF, 
+                    0x02, 
+                    LNKG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0014FFFF, 
+                    0x03, 
+                    LNKH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0015FFFF, 
+                    Zero, 
+                    LNKF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0015FFFF, 
+                    One, 
+                    LNKG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0015FFFF, 
+                    0x02, 
+                    LNKH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0015FFFF, 
+                    0x03, 
+                    LNKE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0016FFFF, 
+                    Zero, 
+                    LNKG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0016FFFF, 
+                    One, 
+                    LNKH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0016FFFF, 
+                    0x02, 
+                    LNKE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0016FFFF, 
+                    0x03, 
+                    LNKF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0017FFFF, 
+                    Zero, 
+                    LNKH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0017FFFF, 
+                    One, 
+                    LNKE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0017FFFF, 
+                    0x02, 
+                    LNKF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0017FFFF, 
+                    0x03, 
+                    LNKG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0018FFFF, 
+                    Zero, 
+                    LNKE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0018FFFF, 
+                    One, 
+                    LNKF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0018FFFF, 
+                    0x02, 
+                    LNKG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0018FFFF, 
+                    0x03, 
+                    LNKH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0019FFFF, 
+                    Zero, 
+                    LNKA, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0019FFFF, 
+                    One, 
+                    LNKB, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0019FFFF, 
+                    0x02, 
+                    LNKC, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0019FFFF, 
+                    0x03, 
+                    LNKD, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001AFFFF, 
+                    Zero, 
+                    LNKA, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001AFFFF, 
+                    One, 
+                    LNKB, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001AFFFF, 
+                    0x02, 
+                    LNKC, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001AFFFF, 
+                    0x03, 
+                    LNKD, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001BFFFF, 
+                    Zero, 
+                    LNKA, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001BFFFF, 
+                    One, 
+                    LNKB, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001BFFFF, 
+                    0x02, 
+                    LNKC, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001BFFFF, 
+                    0x03, 
+                    LNKD, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001CFFFF, 
+                    Zero, 
+                    LNKA, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001CFFFF, 
+                    One, 
+                    LNKB, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001CFFFF, 
+                    0x02, 
+                    LNKC, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001CFFFF, 
+                    0x03, 
+                    LNKD, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001DFFFF, 
+                    Zero, 
+                    LNKA, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001DFFFF, 
+                    One, 
+                    LNKB, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001DFFFF, 
+                    0x02, 
+                    LNKC, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001DFFFF, 
+                    0x03, 
+                    LNKD, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001EFFFF, 
+                    Zero, 
+                    LNKE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001EFFFF, 
+                    One, 
+                    LNKF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001EFFFF, 
+                    0x02, 
+                    LNKG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001EFFFF, 
+                    0x03, 
+                    LNKH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001FFFFF, 
+                    Zero, 
+                    LNKA, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001FFFFF, 
+                    One, 
+                    LNKB, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001FFFFF, 
+                    0x02, 
+                    LNKC, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001FFFFF, 
+                    0x03, 
+                    LNKD, 
+                    Zero
+                }
+            })
+            Name (PRTA, Package (0x80)
+            {
+                Package (0x04)
+                {
+                    0xFFFF, 
+                    Zero, 
+                    GSIE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0xFFFF, 
+                    One, 
+                    GSIF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0xFFFF, 
+                    0x02, 
+                    GSIG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0xFFFF, 
+                    0x03, 
+                    GSIH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0001FFFF, 
+                    Zero, 
+                    GSIF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0001FFFF, 
+                    One, 
+                    GSIG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0001FFFF, 
+                    0x02, 
+                    GSIH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0001FFFF, 
+                    0x03, 
+                    GSIE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0002FFFF, 
+                    Zero, 
+                    GSIG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0002FFFF, 
+                    One, 
+                    GSIH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0002FFFF, 
+                    0x02, 
+                    GSIE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0002FFFF, 
+                    0x03, 
+                    GSIF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0003FFFF, 
+                    Zero, 
+                    GSIH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0003FFFF, 
+                    One, 
+                    GSIE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0003FFFF, 
+                    0x02, 
+                    GSIF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0003FFFF, 
+                    0x03, 
+                    GSIG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0004FFFF, 
+                    Zero, 
+                    GSIE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0004FFFF, 
+                    One, 
+                    GSIF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0004FFFF, 
+                    0x02, 
+                    GSIG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0004FFFF, 
+                    0x03, 
+                    GSIH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0005FFFF, 
+                    Zero, 
+                    GSIF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0005FFFF, 
+                    One, 
+                    GSIG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0005FFFF, 
+                    0x02, 
+                    GSIH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0005FFFF, 
+                    0x03, 
+                    GSIE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0006FFFF, 
+                    Zero, 
+                    GSIG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0006FFFF, 
+                    One, 
+                    GSIH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0006FFFF, 
+                    0x02, 
+                    GSIE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0006FFFF, 
+                    0x03, 
+                    GSIF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0007FFFF, 
+                    Zero, 
+                    GSIH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0007FFFF, 
+                    One, 
+                    GSIE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0007FFFF, 
+                    0x02, 
+                    GSIF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0007FFFF, 
+                    0x03, 
+                    GSIG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0008FFFF, 
+                    Zero, 
+                    GSIE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0008FFFF, 
+                    One, 
+                    GSIF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0008FFFF, 
+                    0x02, 
+                    GSIG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0008FFFF, 
+                    0x03, 
+                    GSIH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0009FFFF, 
+                    Zero, 
+                    GSIF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0009FFFF, 
+                    One, 
+                    GSIG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0009FFFF, 
+                    0x02, 
+                    GSIH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0009FFFF, 
+                    0x03, 
+                    GSIE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000AFFFF, 
+                    Zero, 
+                    GSIG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000AFFFF, 
+                    One, 
+                    GSIH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000AFFFF, 
+                    0x02, 
+                    GSIE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000AFFFF, 
+                    0x03, 
+                    GSIF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000BFFFF, 
+                    Zero, 
+                    GSIH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000BFFFF, 
+                    One, 
+                    GSIE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000BFFFF, 
+                    0x02, 
+                    GSIF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000BFFFF, 
+                    0x03, 
+                    GSIG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000CFFFF, 
+                    Zero, 
+                    GSIE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000CFFFF, 
+                    One, 
+                    GSIF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000CFFFF, 
+                    0x02, 
+                    GSIG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000CFFFF, 
+                    0x03, 
+                    GSIH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000DFFFF, 
+                    Zero, 
+                    GSIF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000DFFFF, 
+                    One, 
+                    GSIG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000DFFFF, 
+                    0x02, 
+                    GSIH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000DFFFF, 
+                    0x03, 
+                    GSIE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000EFFFF, 
+                    Zero, 
+                    GSIG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000EFFFF, 
+                    One, 
+                    GSIH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000EFFFF, 
+                    0x02, 
+                    GSIE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000EFFFF, 
+                    0x03, 
+                    GSIF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000FFFFF, 
+                    Zero, 
+                    GSIH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000FFFFF, 
+                    One, 
+                    GSIE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000FFFFF, 
+                    0x02, 
+                    GSIF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000FFFFF, 
+                    0x03, 
+                    GSIG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0010FFFF, 
+                    Zero, 
+                    GSIE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0010FFFF, 
+                    One, 
+                    GSIF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0010FFFF, 
+                    0x02, 
+                    GSIG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0010FFFF, 
+                    0x03, 
+                    GSIH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0011FFFF, 
+                    Zero, 
+                    GSIF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0011FFFF, 
+                    One, 
+                    GSIG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0011FFFF, 
+                    0x02, 
+                    GSIH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0011FFFF, 
+                    0x03, 
+                    GSIE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0012FFFF, 
+                    Zero, 
+                    GSIG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0012FFFF, 
+                    One, 
+                    GSIH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0012FFFF, 
+                    0x02, 
+                    GSIE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0012FFFF, 
+                    0x03, 
+                    GSIF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0013FFFF, 
+                    Zero, 
+                    GSIH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0013FFFF, 
+                    One, 
+                    GSIE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0013FFFF, 
+                    0x02, 
+                    GSIF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0013FFFF, 
+                    0x03, 
+                    GSIG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0014FFFF, 
+                    Zero, 
+                    GSIE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0014FFFF, 
+                    One, 
+                    GSIF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0014FFFF, 
+                    0x02, 
+                    GSIG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0014FFFF, 
+                    0x03, 
+                    GSIH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0015FFFF, 
+                    Zero, 
+                    GSIF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0015FFFF, 
+                    One, 
+                    GSIG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0015FFFF, 
+                    0x02, 
+                    GSIH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0015FFFF, 
+                    0x03, 
+                    GSIE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0016FFFF, 
+                    Zero, 
+                    GSIG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0016FFFF, 
+                    One, 
+                    GSIH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0016FFFF, 
+                    0x02, 
+                    GSIE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0016FFFF, 
+                    0x03, 
+                    GSIF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0017FFFF, 
+                    Zero, 
+                    GSIH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0017FFFF, 
+                    One, 
+                    GSIE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0017FFFF, 
+                    0x02, 
+                    GSIF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0017FFFF, 
+                    0x03, 
+                    GSIG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0018FFFF, 
+                    Zero, 
+                    GSIE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0018FFFF, 
+                    One, 
+                    GSIF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0018FFFF, 
+                    0x02, 
+                    GSIG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0018FFFF, 
+                    0x03, 
+                    GSIH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0019FFFF, 
+                    Zero, 
+                    GSIA, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0019FFFF, 
+                    One, 
+                    GSIB, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0019FFFF, 
+                    0x02, 
+                    GSIC, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0019FFFF, 
+                    0x03, 
+                    GSID, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001AFFFF, 
+                    Zero, 
+                    GSIA, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001AFFFF, 
+                    One, 
+                    GSIB, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001AFFFF, 
+                    0x02, 
+                    GSIC, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001AFFFF, 
+                    0x03, 
+                    GSID, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001BFFFF, 
+                    Zero, 
+                    GSIA, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001BFFFF, 
+                    One, 
+                    GSIB, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001BFFFF, 
+                    0x02, 
+                    GSIC, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001BFFFF, 
+                    0x03, 
+                    GSID, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001CFFFF, 
+                    Zero, 
+                    GSIA, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001CFFFF, 
+                    One, 
+                    GSIB, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001CFFFF, 
+                    0x02, 
+                    GSIC, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001CFFFF, 
+                    0x03, 
+                    GSID, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001DFFFF, 
+                    Zero, 
+                    GSIA, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001DFFFF, 
+                    One, 
+                    GSIB, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001DFFFF, 
+                    0x02, 
+                    GSIC, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001DFFFF, 
+                    0x03, 
+                    GSID, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001EFFFF, 
+                    Zero, 
+                    GSIE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001EFFFF, 
+                    One, 
+                    GSIF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001EFFFF, 
+                    0x02, 
+                    GSIG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001EFFFF, 
+                    0x03, 
+                    GSIH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001FFFFF, 
+                    Zero, 
+                    GSIA, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001FFFFF, 
+                    One, 
+                    GSIB, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001FFFFF, 
+                    0x02, 
+                    GSIC, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001FFFFF, 
+                    0x03, 
+                    GSID, 
+                    Zero
+                }
+            })
+            Method (_PRT, 0, NotSerialized)  // _PRT: PCI Routing Table
+            {
+                If ((PICF == Zero))
+                {
+                    Return (PRTP) /* \_SB_.PCI0.PRTP */
+                }
+                Else
+                {
+                    Return (PRTA) /* \_SB_.PCI0.PRTA */
+                }
+            }
+        }
+
+        Field (PCI0.ISA.PIRQ, ByteAcc, NoLock, Preserve)
+        {
+            PRQA,   8, 
+            PRQB,   8, 
+            PRQC,   8, 
+            PRQD,   8, 
+            Offset (0x08), 
+            PRQE,   8, 
+            PRQF,   8, 
+            PRQG,   8, 
+            PRQH,   8
+        }
+
+        Method (IQST, 1, NotSerialized)
+        {
+            If ((0x80 & Arg0))
+            {
+                Return (0x09)
+            }
+
+            Return (0x0B)
+        }
+
+        Method (IQCR, 1, Serialized)
+        {
+            Name (PRR0, ResourceTemplate ()
+            {
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, _Y00)
+                {
+                    0x00000000,
+                }
+            })
+            CreateDWordField (PRR0, \_SB.IQCR._Y00._INT, PRRI)  // _INT: Interrupts
+            PRRI = (Arg0 & 0x0F)
+            Return (PRR0) /* \_SB_.IQCR.PRR0 */
+        }
+
+        Device (LNKA)
+        {
+            Name (_HID, EisaId ("PNP0C0F") /* PCI Interrupt Link Device */)  // _HID: Hardware ID
+            Name (_UID, Zero)  // _UID: Unique ID
+            Name (_PRS, ResourceTemplate ()  // _PRS: Possible Resource Settings
+            {
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, )
+                {
+                    0x00000005,
+                    0x0000000A,
+                    0x0000000B,
+                }
+            })
+            Method (_STA, 0, NotSerialized)  // _STA: Status
+            {
+                Return (IQST (PRQA))
+            }
+
+            Method (_DIS, 0, NotSerialized)  // _DIS: Disable Device
+            {
+                PRQA |= 0x80
+            }
+
+            Method (_CRS, 0, NotSerialized)  // _CRS: Current Resource Settings
+            {
+                Return (IQCR (PRQA))
+            }
+
+            Method (_SRS, 1, NotSerialized)  // _SRS: Set Resource Settings
+            {
+                CreateDWordField (Arg0, 0x05, PRRI)
+                PRQA = PRRI /* \_SB_.LNKA._SRS.PRRI */
+            }
+        }
+
+        Device (LNKB)
+        {
+            Name (_HID, EisaId ("PNP0C0F") /* PCI Interrupt Link Device */)  // _HID: Hardware ID
+            Name (_UID, One)  // _UID: Unique ID
+            Name (_PRS, ResourceTemplate ()  // _PRS: Possible Resource Settings
+            {
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, )
+                {
+                    0x00000005,
+                    0x0000000A,
+                    0x0000000B,
+                }
+            })
+            Method (_STA, 0, NotSerialized)  // _STA: Status
+            {
+                Return (IQST (PRQB))
+            }
+
+            Method (_DIS, 0, NotSerialized)  // _DIS: Disable Device
+            {
+                PRQB |= 0x80
+            }
+
+            Method (_CRS, 0, NotSerialized)  // _CRS: Current Resource Settings
+            {
+                Return (IQCR (PRQB))
+            }
+
+            Method (_SRS, 1, NotSerialized)  // _SRS: Set Resource Settings
+            {
+                CreateDWordField (Arg0, 0x05, PRRI)
+                PRQB = PRRI /* \_SB_.LNKB._SRS.PRRI */
+            }
+        }
+
+        Device (LNKC)
+        {
+            Name (_HID, EisaId ("PNP0C0F") /* PCI Interrupt Link Device */)  // _HID: Hardware ID
+            Name (_UID, 0x02)  // _UID: Unique ID
+            Name (_PRS, ResourceTemplate ()  // _PRS: Possible Resource Settings
+            {
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, )
+                {
+                    0x00000005,
+                    0x0000000A,
+                    0x0000000B,
+                }
+            })
+            Method (_STA, 0, NotSerialized)  // _STA: Status
+            {
+                Return (IQST (PRQC))
+            }
+
+            Method (_DIS, 0, NotSerialized)  // _DIS: Disable Device
+            {
+                PRQC |= 0x80
+            }
+
+            Method (_CRS, 0, NotSerialized)  // _CRS: Current Resource Settings
+            {
+                Return (IQCR (PRQC))
+            }
+
+            Method (_SRS, 1, NotSerialized)  // _SRS: Set Resource Settings
+            {
+                CreateDWordField (Arg0, 0x05, PRRI)
+                PRQC = PRRI /* \_SB_.LNKC._SRS.PRRI */
+            }
+        }
+
+        Device (LNKD)
+        {
+            Name (_HID, EisaId ("PNP0C0F") /* PCI Interrupt Link Device */)  // _HID: Hardware ID
+            Name (_UID, 0x03)  // _UID: Unique ID
+            Name (_PRS, ResourceTemplate ()  // _PRS: Possible Resource Settings
+            {
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, )
+                {
+                    0x00000005,
+                    0x0000000A,
+                    0x0000000B,
+                }
+            })
+            Method (_STA, 0, NotSerialized)  // _STA: Status
+            {
+                Return (IQST (PRQD))
+            }
+
+            Method (_DIS, 0, NotSerialized)  // _DIS: Disable Device
+            {
+                PRQD |= 0x80
+            }
+
+            Method (_CRS, 0, NotSerialized)  // _CRS: Current Resource Settings
+            {
+                Return (IQCR (PRQD))
+            }
+
+            Method (_SRS, 1, NotSerialized)  // _SRS: Set Resource Settings
+            {
+                CreateDWordField (Arg0, 0x05, PRRI)
+                PRQD = PRRI /* \_SB_.LNKD._SRS.PRRI */
+            }
+        }
+
+        Device (LNKE)
+        {
+            Name (_HID, EisaId ("PNP0C0F") /* PCI Interrupt Link Device */)  // _HID: Hardware ID
+            Name (_UID, 0x04)  // _UID: Unique ID
+            Name (_PRS, ResourceTemplate ()  // _PRS: Possible Resource Settings
+            {
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, )
+                {
+                    0x00000005,
+                    0x0000000A,
+                    0x0000000B,
+                }
+            })
+            Method (_STA, 0, NotSerialized)  // _STA: Status
+            {
+                Return (IQST (PRQE))
+            }
+
+            Method (_DIS, 0, NotSerialized)  // _DIS: Disable Device
+            {
+                PRQE |= 0x80
+            }
+
+            Method (_CRS, 0, NotSerialized)  // _CRS: Current Resource Settings
+            {
+                Return (IQCR (PRQE))
+            }
+
+            Method (_SRS, 1, NotSerialized)  // _SRS: Set Resource Settings
+            {
+                CreateDWordField (Arg0, 0x05, PRRI)
+                PRQE = PRRI /* \_SB_.LNKE._SRS.PRRI */
+            }
+        }
+
+        Device (LNKF)
+        {
+            Name (_HID, EisaId ("PNP0C0F") /* PCI Interrupt Link Device */)  // _HID: Hardware ID
+            Name (_UID, 0x05)  // _UID: Unique ID
+            Name (_PRS, ResourceTemplate ()  // _PRS: Possible Resource Settings
+            {
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, )
+                {
+                    0x00000005,
+                    0x0000000A,
+                    0x0000000B,
+                }
+            })
+            Method (_STA, 0, NotSerialized)  // _STA: Status
+            {
+                Return (IQST (PRQF))
+            }
+
+            Method (_DIS, 0, NotSerialized)  // _DIS: Disable Device
+            {
+                PRQF |= 0x80
+            }
+
+            Method (_CRS, 0, NotSerialized)  // _CRS: Current Resource Settings
+            {
+                Return (IQCR (PRQF))
+            }
+
+            Method (_SRS, 1, NotSerialized)  // _SRS: Set Resource Settings
+            {
+                CreateDWordField (Arg0, 0x05, PRRI)
+                PRQF = PRRI /* \_SB_.LNKF._SRS.PRRI */
+            }
+        }
+
+        Device (LNKG)
+        {
+            Name (_HID, EisaId ("PNP0C0F") /* PCI Interrupt Link Device */)  // _HID: Hardware ID
+            Name (_UID, 0x06)  // _UID: Unique ID
+            Name (_PRS, ResourceTemplate ()  // _PRS: Possible Resource Settings
+            {
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, )
+                {
+                    0x00000005,
+                    0x0000000A,
+                    0x0000000B,
+                }
+            })
+            Method (_STA, 0, NotSerialized)  // _STA: Status
+            {
+                Return (IQST (PRQG))
+            }
+
+            Method (_DIS, 0, NotSerialized)  // _DIS: Disable Device
+            {
+                PRQG |= 0x80
+            }
+
+            Method (_CRS, 0, NotSerialized)  // _CRS: Current Resource Settings
+            {
+                Return (IQCR (PRQG))
+            }
+
+            Method (_SRS, 1, NotSerialized)  // _SRS: Set Resource Settings
+            {
+                CreateDWordField (Arg0, 0x05, PRRI)
+                PRQG = PRRI /* \_SB_.LNKG._SRS.PRRI */
+            }
+        }
+
+        Device (LNKH)
+        {
+            Name (_HID, EisaId ("PNP0C0F") /* PCI Interrupt Link Device */)  // _HID: Hardware ID
+            Name (_UID, 0x07)  // _UID: Unique ID
+            Name (_PRS, ResourceTemplate ()  // _PRS: Possible Resource Settings
+            {
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, )
+                {
+                    0x00000005,
+                    0x0000000A,
+                    0x0000000B,
+                }
+            })
+            Method (_STA, 0, NotSerialized)  // _STA: Status
+            {
+                Return (IQST (PRQH))
+            }
+
+            Method (_DIS, 0, NotSerialized)  // _DIS: Disable Device
+            {
+                PRQH |= 0x80
+            }
+
+            Method (_CRS, 0, NotSerialized)  // _CRS: Current Resource Settings
+            {
+                Return (IQCR (PRQH))
+            }
+
+            Method (_SRS, 1, NotSerialized)  // _SRS: Set Resource Settings
+            {
+                CreateDWordField (Arg0, 0x05, PRRI)
+                PRQH = PRRI /* \_SB_.LNKH._SRS.PRRI */
+            }
+        }
+
+        Device (GSIA)
+        {
+            Name (_HID, EisaId ("PNP0C0F") /* PCI Interrupt Link Device */)  // _HID: Hardware ID
+            Name (_UID, 0x10)  // _UID: Unique ID
+            Name (_PRS, ResourceTemplate ()  // _PRS: Possible Resource Settings
+            {
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, )
+                {
+                    0x00000010,
+                }
+            })
+            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+            {
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, )
+                {
+                    0x00000010,
+                }
+            })
+            Method (_DIS, 0, NotSerialized)  // _DIS: Disable Device
+            {
+            }
+
+            Method (_SRS, 1, NotSerialized)  // _SRS: Set Resource Settings
+            {
+            }
+        }
+
+        Device (GSIB)
+        {
+            Name (_HID, EisaId ("PNP0C0F") /* PCI Interrupt Link Device */)  // _HID: Hardware ID
+            Name (_UID, 0x11)  // _UID: Unique ID
+            Name (_PRS, ResourceTemplate ()  // _PRS: Possible Resource Settings
+            {
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, )
+                {
+                    0x00000011,
+                }
+            })
+            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+            {
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, )
+                {
+                    0x00000011,
+                }
+            })
+            Method (_DIS, 0, NotSerialized)  // _DIS: Disable Device
+            {
+            }
+
+            Method (_SRS, 1, NotSerialized)  // _SRS: Set Resource Settings
+            {
+            }
+        }
+
+        Device (GSIC)
+        {
+            Name (_HID, EisaId ("PNP0C0F") /* PCI Interrupt Link Device */)  // _HID: Hardware ID
+            Name (_UID, 0x12)  // _UID: Unique ID
+            Name (_PRS, ResourceTemplate ()  // _PRS: Possible Resource Settings
+            {
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, )
+                {
+                    0x00000012,
+                }
+            })
+            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+            {
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, )
+                {
+                    0x00000012,
+                }
+            })
+            Method (_DIS, 0, NotSerialized)  // _DIS: Disable Device
+            {
+            }
+
+            Method (_SRS, 1, NotSerialized)  // _SRS: Set Resource Settings
+            {
+            }
+        }
+
+        Device (GSID)
+        {
+            Name (_HID, EisaId ("PNP0C0F") /* PCI Interrupt Link Device */)  // _HID: Hardware ID
+            Name (_UID, 0x13)  // _UID: Unique ID
+            Name (_PRS, ResourceTemplate ()  // _PRS: Possible Resource Settings
+            {
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, )
+                {
+                    0x00000013,
+                }
+            })
+            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+            {
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, )
+                {
+                    0x00000013,
+                }
+            })
+            Method (_DIS, 0, NotSerialized)  // _DIS: Disable Device
+            {
+            }
+
+            Method (_SRS, 1, NotSerialized)  // _SRS: Set Resource Settings
+            {
+            }
+        }
+
+        Device (GSIE)
+        {
+            Name (_HID, EisaId ("PNP0C0F") /* PCI Interrupt Link Device */)  // _HID: Hardware ID
+            Name (_UID, 0x14)  // _UID: Unique ID
+            Name (_PRS, ResourceTemplate ()  // _PRS: Possible Resource Settings
+            {
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, )
+                {
+                    0x00000014,
+                }
+            })
+            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+            {
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, )
+                {
+                    0x00000014,
+                }
+            })
+            Method (_DIS, 0, NotSerialized)  // _DIS: Disable Device
+            {
+            }
+
+            Method (_SRS, 1, NotSerialized)  // _SRS: Set Resource Settings
+            {
+            }
+        }
+
+        Device (GSIF)
+        {
+            Name (_HID, EisaId ("PNP0C0F") /* PCI Interrupt Link Device */)  // _HID: Hardware ID
+            Name (_UID, 0x15)  // _UID: Unique ID
+            Name (_PRS, ResourceTemplate ()  // _PRS: Possible Resource Settings
+            {
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, )
+                {
+                    0x00000015,
+                }
+            })
+            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+            {
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, )
+                {
+                    0x00000015,
+                }
+            })
+            Method (_DIS, 0, NotSerialized)  // _DIS: Disable Device
+            {
+            }
+
+            Method (_SRS, 1, NotSerialized)  // _SRS: Set Resource Settings
+            {
+            }
+        }
+
+        Device (GSIG)
+        {
+            Name (_HID, EisaId ("PNP0C0F") /* PCI Interrupt Link Device */)  // _HID: Hardware ID
+            Name (_UID, 0x16)  // _UID: Unique ID
+            Name (_PRS, ResourceTemplate ()  // _PRS: Possible Resource Settings
+            {
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, )
+                {
+                    0x00000016,
+                }
+            })
+            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+            {
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, )
+                {
+                    0x00000016,
+                }
+            })
+            Method (_DIS, 0, NotSerialized)  // _DIS: Disable Device
+            {
+            }
+
+            Method (_SRS, 1, NotSerialized)  // _SRS: Set Resource Settings
+            {
+            }
+        }
+
+        Device (GSIH)
+        {
+            Name (_HID, EisaId ("PNP0C0F") /* PCI Interrupt Link Device */)  // _HID: Hardware ID
+            Name (_UID, 0x17)  // _UID: Unique ID
+            Name (_PRS, ResourceTemplate ()  // _PRS: Possible Resource Settings
+            {
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, )
+                {
+                    0x00000017,
+                }
+            })
+            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+            {
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, )
+                {
+                    0x00000017,
+                }
+            })
+            Method (_DIS, 0, NotSerialized)  // _DIS: Disable Device
+            {
+            }
+
+            Method (_SRS, 1, NotSerialized)  // _SRS: Set Resource Settings
+            {
+            }
+        }
+    }
+
+    Scope (_SB.PCI0)
+    {
+        Device (SMB0)
+        {
+            Name (_ADR, 0x001F0003)  // _ADR: Address
+        }
+    }
+
+    Scope (_SB)
+    {
+        Device (\_SB.PCI0.PRES)
+        {
+            Name (_HID, EisaId ("PNP0A06") /* Generic Container Device */)  // _HID: Hardware ID
+            Name (_UID, "CPU Hotplug resources")  // _UID: Unique ID
+            Mutex (CPLK, 0x00)
+            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+            {
+                IO (Decode16,
+                    0x0CD8,             // Range Minimum
+                    0x0CD8,             // Range Maximum
+                    0x01,               // Alignment
+                    0x0C,               // Length
+                    )
+            })
+            OperationRegion (PRST, SystemIO, 0x0CD8, 0x0C)
+            Field (PRST, ByteAcc, NoLock, WriteAsZeros)
+            {
+                Offset (0x04), 
+                CPEN,   1, 
+                CINS,   1, 
+                CRMV,   1, 
+                CEJ0,   1, 
+                Offset (0x05), 
+                CCMD,   8
+            }
+
+            Field (PRST, DWordAcc, NoLock, Preserve)
+            {
+                CSEL,   32, 
+                Offset (0x08), 
+                CDAT,   32
+            }
+
+            Method (_INI, 0, Serialized)  // _INI: Initialize
+            {
+                CSEL = Zero
+            }
+        }
+
+        Device (\_SB.CPUS)
+        {
+            Name (_HID, "ACPI0010" /* Processor Container Device */)  // _HID: Hardware ID
+            Name (_CID, EisaId ("PNP0A05") /* Generic Container Device */)  // _CID: Compatible ID
+            Method (CTFY, 2, NotSerialized)
+            {
+                If ((Arg0 == Zero))
+                {
+                    Notify (C000, Arg1)
+                }
+
+                If ((Arg0 == One))
+                {
+                    Notify (C001, Arg1)
+                }
+
+                If ((Arg0 == 0x02))
+                {
+                    Notify (C002, Arg1)
+                }
+
+                If ((Arg0 == 0x03))
+                {
+                    Notify (C003, Arg1)
+                }
+
+                If ((Arg0 == 0x04))
+                {
+                    Notify (C004, Arg1)
+                }
+
+                If ((Arg0 == 0x05))
+                {
+                    Notify (C005, Arg1)
+                }
+            }
+
+            Method (CSTA, 1, Serialized)
+            {
+                Acquire (\_SB.PCI0.PRES.CPLK, 0xFFFF)
+                \_SB.PCI0.PRES.CSEL = Arg0
+                Local0 = Zero
+                If ((\_SB.PCI0.PRES.CPEN == One))
+                {
+                    Local0 = 0x0F
+                }
+
+                Release (\_SB.PCI0.PRES.CPLK)
+                Return (Local0)
+            }
+
+            Method (CEJ0, 1, Serialized)
+            {
+                Acquire (\_SB.PCI0.PRES.CPLK, 0xFFFF)
+                \_SB.PCI0.PRES.CSEL = Arg0
+                \_SB.PCI0.PRES.CEJ0 = One
+                Release (\_SB.PCI0.PRES.CPLK)
+            }
+
+            Method (CSCN, 0, Serialized)
+            {
+                Acquire (\_SB.PCI0.PRES.CPLK, 0xFFFF)
+                Local0 = One
+                While ((Local0 == One))
+                {
+                    Local0 = Zero
+                    \_SB.PCI0.PRES.CCMD = Zero
+                    If ((\_SB.PCI0.PRES.CINS == One))
+                    {
+                        CTFY (\_SB.PCI0.PRES.CDAT, One)
+                        \_SB.PCI0.PRES.CINS = One
+                        Local0 = One
+                    }
+                    ElseIf ((\_SB.PCI0.PRES.CRMV == One))
+                    {
+                        CTFY (\_SB.PCI0.PRES.CDAT, 0x03)
+                        \_SB.PCI0.PRES.CRMV = One
+                        Local0 = One
+                    }
+                }
+
+                Release (\_SB.PCI0.PRES.CPLK)
+            }
+
+            Method (COST, 4, Serialized)
+            {
+                Acquire (\_SB.PCI0.PRES.CPLK, 0xFFFF)
+                \_SB.PCI0.PRES.CSEL = Arg0
+                \_SB.PCI0.PRES.CCMD = One
+                \_SB.PCI0.PRES.CDAT = Arg1
+                \_SB.PCI0.PRES.CCMD = 0x02
+                \_SB.PCI0.PRES.CDAT = Arg2
+                Release (\_SB.PCI0.PRES.CPLK)
+            }
+
+            Processor (C000, 0x00, 0x00000000, 0x00)
+            {
+                Method (_STA, 0, Serialized)  // _STA: Status
+                {
+                    Return (CSTA (Zero))
+                }
+
+                Name (_MAT, Buffer (0x08)  // _MAT: Multiple APIC Table Entry
+                {
+                     0x00, 0x08, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00   // ........
+                })
+                Method (_OST, 3, Serialized)  // _OST: OSPM Status Indication
+                {
+                    COST (Zero, Arg0, Arg1, Arg2)
+                }
+
+                Name (_PXM, Zero)  // _PXM: Device Proximity
+            }
+
+            Processor (C001, 0x01, 0x00000000, 0x00)
+            {
+                Method (_STA, 0, Serialized)  // _STA: Status
+                {
+                    Return (CSTA (One))
+                }
+
+                Name (_MAT, Buffer (0x08)  // _MAT: Multiple APIC Table Entry
+                {
+                     0x00, 0x08, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00   // ........
+                })
+                Method (_EJ0, 1, NotSerialized)  // _EJx: Eject Device, x=0-9
+                {
+                    CEJ0 (One)
+                }
+
+                Method (_OST, 3, Serialized)  // _OST: OSPM Status Indication
+                {
+                    COST (One, Arg0, Arg1, Arg2)
+                }
+
+                Name (_PXM, Zero)  // _PXM: Device Proximity
+            }
+
+            Processor (C002, 0x02, 0x00000000, 0x00)
+            {
+                Method (_STA, 0, Serialized)  // _STA: Status
+                {
+                    Return (CSTA (0x02))
+                }
+
+                Name (_MAT, Buffer (0x08)  // _MAT: Multiple APIC Table Entry
+                {
+                     0x00, 0x08, 0x02, 0x02, 0x01, 0x00, 0x00, 0x00   // ........
+                })
+                Method (_EJ0, 1, NotSerialized)  // _EJx: Eject Device, x=0-9
+                {
+                    CEJ0 (0x02)
+                }
+
+                Method (_OST, 3, Serialized)  // _OST: OSPM Status Indication
+                {
+                    COST (0x02, Arg0, Arg1, Arg2)
+                }
+
+                Name (_PXM, Zero)  // _PXM: Device Proximity
+            }
+
+            Processor (C003, 0x03, 0x00000000, 0x00)
+            {
+                Method (_STA, 0, Serialized)  // _STA: Status
+                {
+                    Return (CSTA (0x03))
+                }
+
+                Name (_MAT, Buffer (0x08)  // _MAT: Multiple APIC Table Entry
+                {
+                     0x00, 0x08, 0x03, 0x04, 0x01, 0x00, 0x00, 0x00   // ........
+                })
+                Method (_EJ0, 1, NotSerialized)  // _EJx: Eject Device, x=0-9
+                {
+                    CEJ0 (0x03)
+                }
+
+                Method (_OST, 3, Serialized)  // _OST: OSPM Status Indication
+                {
+                    COST (0x03, Arg0, Arg1, Arg2)
+                }
+
+                Name (_PXM, One)  // _PXM: Device Proximity
+            }
+
+            Processor (C004, 0x04, 0x00000000, 0x00)
+            {
+                Method (_STA, 0, Serialized)  // _STA: Status
+                {
+                    Return (CSTA (0x04))
+                }
+
+                Name (_MAT, Buffer (0x08)  // _MAT: Multiple APIC Table Entry
+                {
+                     0x00, 0x08, 0x04, 0x05, 0x01, 0x00, 0x00, 0x00   // ........
+                })
+                Method (_EJ0, 1, NotSerialized)  // _EJx: Eject Device, x=0-9
+                {
+                    CEJ0 (0x04)
+                }
+
+                Method (_OST, 3, Serialized)  // _OST: OSPM Status Indication
+                {
+                    COST (0x04, Arg0, Arg1, Arg2)
+                }
+
+                Name (_PXM, One)  // _PXM: Device Proximity
+            }
+
+            Processor (C005, 0x05, 0x00000000, 0x00)
+            {
+                Method (_STA, 0, Serialized)  // _STA: Status
+                {
+                    Return (CSTA (0x05))
+                }
+
+                Name (_MAT, Buffer (0x08)  // _MAT: Multiple APIC Table Entry
+                {
+                     0x00, 0x08, 0x05, 0x06, 0x01, 0x00, 0x00, 0x00   // ........
+                })
+                Method (_EJ0, 1, NotSerialized)  // _EJx: Eject Device, x=0-9
+                {
+                    CEJ0 (0x05)
+                }
+
+                Method (_OST, 3, Serialized)  // _OST: OSPM Status Indication
+                {
+                    COST (0x05, Arg0, Arg1, Arg2)
+                }
+
+                Name (_PXM, One)  // _PXM: Device Proximity
+            }
+        }
+    }
+
+    Method (\_GPE._E02, 0, NotSerialized)  // _Exx: Edge-Triggered GPE, xx=0x00-0xFF
+    {
+        \_SB.CPUS.CSCN ()
+    }
+
+    Scope (_GPE)
+    {
+        Name (_HID, "ACPI0006" /* GPE Block Device */)  // _HID: Hardware ID
+    }
+
+    Scope (\_SB.PCI0)
+    {
+        Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+        {
+            WordBusNumber (ResourceProducer, MinFixed, MaxFixed, PosDecode,
+                0x0000,             // Granularity
+                0x0000,             // Range Minimum
+                0x00FF,             // Range Maximum
+                0x0000,             // Translation Offset
+                0x0100,             // Length
+                ,, )
+            IO (Decode16,
+                0x0CF8,             // Range Minimum
+                0x0CF8,             // Range Maximum
+                0x01,               // Alignment
+                0x08,               // Length
+                )
+            WordIO (ResourceProducer, MinFixed, MaxFixed, PosDecode, EntireRange,
+                0x0000,             // Granularity
+                0x0000,             // Range Minimum
+                0x0CF7,             // Range Maximum
+                0x0000,             // Translation Offset
+                0x0CF8,             // Length
+                ,, , TypeStatic, DenseTranslation)
+            WordIO (ResourceProducer, MinFixed, MaxFixed, PosDecode, EntireRange,
+                0x0000,             // Granularity
+                0x0D00,             // Range Minimum
+                0xFFFF,             // Range Maximum
+                0x0000,             // Translation Offset
+                0xF300,             // Length
+                ,, , TypeStatic, DenseTranslation)
+            DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, Cacheable, ReadWrite,
+                0x00000000,         // Granularity
+                0x000A0000,         // Range Minimum
+                0x000BFFFF,         // Range Maximum
+                0x00000000,         // Translation Offset
+                0x00020000,         // Length
+                ,, , AddressRangeMemory, TypeStatic)
+            DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, NonCacheable, ReadWrite,
+                0x00000000,         // Granularity
+                0x08000000,         // Range Minimum
+                0xAFFFFFFF,         // Range Maximum
+                0x00000000,         // Translation Offset
+                0xA8000000,         // Length
+                ,, , AddressRangeMemory, TypeStatic)
+            DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, NonCacheable, ReadWrite,
+                0x00000000,         // Granularity
+                0xC0000000,         // Range Minimum
+                0xFEBFFFFF,         // Range Maximum
+                0x00000000,         // Translation Offset
+                0x3EC00000,         // Length
+                ,, , AddressRangeMemory, TypeStatic)
+            QWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, Cacheable, ReadWrite,
+                0x0000000000000000, // Granularity
+                0x0000000100000000, // Range Minimum
+                0x00000008FFFFFFFF, // Range Maximum
+                0x0000000000000000, // Translation Offset
+                0x0000000800000000, // Length
+                ,, , AddressRangeMemory, TypeStatic)
+        })
+        Device (GPE0)
+        {
+            Name (_HID, "PNP0A06" /* Generic Container Device */)  // _HID: Hardware ID
+            Name (_UID, "GPE0 resources")  // _UID: Unique ID
+            Name (_STA, 0x0B)  // _STA: Status
+            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+            {
+                IO (Decode16,
+                    0x0620,             // Range Minimum
+                    0x0620,             // Range Maximum
+                    0x01,               // Alignment
+                    0x10,               // Length
+                    )
+            })
+        }
+    }
+
+    Scope (\)
+    {
+        Name (_S3, Package (0x04)  // _S3_: S3 System State
+        {
+            One, 
+            One, 
+            Zero, 
+            Zero
+        })
+        Name (_S4, Package (0x04)  // _S4_: S4 System State
+        {
+            0x02, 
+            0x02, 
+            Zero, 
+            Zero
+        })
+        Name (_S5, Package (0x04)  // _S5_: S5 System State
+        {
+            Zero, 
+            Zero, 
+            Zero, 
+            Zero
+        })
+    }
+
+    Scope (\_SB.PCI0)
+    {
+        Device (FWCF)
+        {
+            Name (_HID, "QEMU0002")  // _HID: Hardware ID
+            Name (_STA, 0x0B)  // _STA: Status
+            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+            {
+                IO (Decode16,
+                    0x0510,             // Range Minimum
+                    0x0510,             // Range Maximum
+                    0x01,               // Alignment
+                    0x0C,               // Length
+                    )
+            })
+        }
+    }
+
+    Scope (\_SB)
+    {
+        Scope (PCI0)
+        {
+            Device (S00)
+            {
+                Name (_ADR, Zero)  // _ADR: Address
+            }
+
+            Device (S08)
+            {
+                Name (_ADR, 0x00010000)  // _ADR: Address
+                Method (_S1D, 0, NotSerialized)  // _S1D: S1 Device State
+                {
+                    Return (Zero)
+                }
+
+                Method (_S2D, 0, NotSerialized)  // _S2D: S2 Device State
+                {
+                    Return (Zero)
+                }
+
+                Method (_S3D, 0, NotSerialized)  // _S3D: S3 Device State
+                {
+                    Return (Zero)
+                }
+            }
+
+            Method (PCNT, 0, NotSerialized)
+            {
+            }
+        }
+    }
+}
+
diff --git a/tests/data/acpi/q35/DSDT.dimmpxm b/tests/data/acpi/q35/DSDT.dimmpxm
index 13e80ae2e5c7606a7260d4cb3ab776488d0697d6..af41acba6e0117191ad8495a30ded7b0acc4d2ca 100644
GIT binary patch
delta 33
pcmez5`O1^aCD<k8l?np`W6(yfSt^`vEHUxHPVoYElh>)(0sz0?3UmMf

delta 42
ycmaFm`N@;ZCD<k8lL`X^<MWMNvsAeJSYqOXo#F-DSSGJkv1J!w3vl)eVE_O$8Vq{?

diff --git a/tests/data/acpi/q35/DSDT.dimmpxm.dsl b/tests/data/acpi/q35/DSDT.dimmpxm.dsl
new file mode 100644
index 0000000000..9cab76729e
--- /dev/null
+++ b/tests/data/acpi/q35/DSDT.dimmpxm.dsl
@@ -0,0 +1,3535 @@ 
+/*
+ * Intel ACPI Component Architecture
+ * AML/ASL+ Disassembler version 20190509 (64-bit version)
+ * Copyright (c) 2000 - 2019 Intel Corporation
+ * 
+ * Disassembling to symbolic ASL+ operators
+ *
+ * Disassembly of tests/data/acpi/q35/DSDT.dimmpxm, Tue Aug  4 11:14:15 2020
+ *
+ * Original Table Header:
+ *     Signature        "DSDT"
+ *     Length           0x00002473 (9331)
+ *     Revision         0x01 **** 32-bit table (V1), no 64-bit math support
+ *     Checksum         0xEE
+ *     OEM ID           "BOCHS "
+ *     OEM Table ID     "BXPCDSDT"
+ *     OEM Revision     0x00000001 (1)
+ *     Compiler ID      "BXPC"
+ *     Compiler Version 0x00000001 (1)
+ */
+DefinitionBlock ("", "DSDT", 1, "BOCHS ", "BXPCDSDT", 0x00000001)
+{
+    External (_SB_.NVDR, UnknownObj)
+
+    Scope (\)
+    {
+        OperationRegion (DBG, SystemIO, 0x0402, One)
+        Field (DBG, ByteAcc, NoLock, Preserve)
+        {
+            DBGB,   8
+        }
+
+        Method (DBUG, 1, NotSerialized)
+        {
+            ToHexString (Arg0, Local0)
+            ToBuffer (Local0, Local0)
+            Local1 = (SizeOf (Local0) - One)
+            Local2 = Zero
+            While ((Local2 < Local1))
+            {
+                DBGB = DerefOf (Local0 [Local2])
+                Local2++
+            }
+
+            DBGB = 0x0A
+        }
+    }
+
+    Scope (_SB)
+    {
+        Device (PCI0)
+        {
+            Name (_HID, EisaId ("PNP0A08") /* PCI Express Bus */)  // _HID: Hardware ID
+            Name (_CID, EisaId ("PNP0A03") /* PCI Bus */)  // _CID: Compatible ID
+            Name (_ADR, Zero)  // _ADR: Address
+            Name (_UID, Zero)  // _UID: Unique ID
+            Method (_OSC, 4, NotSerialized)  // _OSC: Operating System Capabilities
+            {
+                CreateDWordField (Arg3, Zero, CDW1)
+                If ((Arg0 == ToUUID ("33db4d5b-1ff7-401c-9657-7441c03dd766") /* PCI Host Bridge Device */))
+                {
+                    CreateDWordField (Arg3, 0x04, CDW2)
+                    CreateDWordField (Arg3, 0x08, CDW3)
+                    Local0 = CDW3 /* \_SB_.PCI0._OSC.CDW3 */
+                    Local0 &= 0x1F
+                    If ((Arg1 != One))
+                    {
+                        CDW1 |= 0x08
+                    }
+
+                    If ((CDW3 != Local0))
+                    {
+                        CDW1 |= 0x10
+                    }
+
+                    CDW3 = Local0
+                }
+                Else
+                {
+                    CDW1 |= 0x04
+                }
+
+                Return (Arg3)
+            }
+        }
+    }
+
+    Scope (_SB)
+    {
+        Device (HPET)
+        {
+            Name (_HID, EisaId ("PNP0103") /* HPET System Timer */)  // _HID: Hardware ID
+            Name (_UID, Zero)  // _UID: Unique ID
+            OperationRegion (HPTM, SystemMemory, 0xFED00000, 0x0400)
+            Field (HPTM, DWordAcc, Lock, Preserve)
+            {
+                VEND,   32, 
+                PRD,    32
+            }
+
+            Method (_STA, 0, NotSerialized)  // _STA: Status
+            {
+                Local0 = VEND /* \_SB_.HPET.VEND */
+                Local1 = PRD /* \_SB_.HPET.PRD_ */
+                Local0 >>= 0x10
+                If (((Local0 == Zero) || (Local0 == 0xFFFF)))
+                {
+                    Return (Zero)
+                }
+
+                If (((Local1 == Zero) || (Local1 > 0x05F5E100)))
+                {
+                    Return (Zero)
+                }
+
+                Return (0x0F)
+            }
+
+            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+            {
+                Memory32Fixed (ReadOnly,
+                    0xFED00000,         // Address Base
+                    0x00000400,         // Address Length
+                    )
+            })
+        }
+    }
+
+    Scope (_SB.PCI0)
+    {
+        Device (ISA)
+        {
+            Name (_ADR, 0x001F0000)  // _ADR: Address
+            OperationRegion (PIRQ, PCI_Config, 0x60, 0x0C)
+        }
+    }
+
+    Scope (_SB.PCI0.ISA)
+    {
+        Device (KBD)
+        {
+            Name (_HID, EisaId ("PNP0303") /* IBM Enhanced Keyboard (101/102-key, PS/2 Mouse) */)  // _HID: Hardware ID
+            Name (_STA, 0x0F)  // _STA: Status
+            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+            {
+                IO (Decode16,
+                    0x0060,             // Range Minimum
+                    0x0060,             // Range Maximum
+                    0x01,               // Alignment
+                    0x01,               // Length
+                    )
+                IO (Decode16,
+                    0x0064,             // Range Minimum
+                    0x0064,             // Range Maximum
+                    0x01,               // Alignment
+                    0x01,               // Length
+                    )
+                IRQNoFlags ()
+                    {1}
+            })
+        }
+
+        Device (MOU)
+        {
+            Name (_HID, EisaId ("PNP0F13") /* PS/2 Mouse */)  // _HID: Hardware ID
+            Name (_STA, 0x0F)  // _STA: Status
+            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+            {
+                IRQNoFlags ()
+                    {12}
+            })
+        }
+
+        Device (LPT1)
+        {
+            Name (_HID, EisaId ("PNP0400") /* Standard LPT Parallel Port */)  // _HID: Hardware ID
+            Name (_UID, One)  // _UID: Unique ID
+            Name (_STA, 0x0F)  // _STA: Status
+            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+            {
+                IO (Decode16,
+                    0x0378,             // Range Minimum
+                    0x0378,             // Range Maximum
+                    0x08,               // Alignment
+                    0x08,               // Length
+                    )
+                IRQNoFlags ()
+                    {7}
+            })
+        }
+
+        Device (COM1)
+        {
+            Name (_HID, EisaId ("PNP0501") /* 16550A-compatible COM Serial Port */)  // _HID: Hardware ID
+            Name (_UID, One)  // _UID: Unique ID
+            Name (_STA, 0x0F)  // _STA: Status
+            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+            {
+                IO (Decode16,
+                    0x03F8,             // Range Minimum
+                    0x03F8,             // Range Maximum
+                    0x00,               // Alignment
+                    0x08,               // Length
+                    )
+                IRQNoFlags ()
+                    {4}
+            })
+        }
+
+        Device (RTC)
+        {
+            Name (_HID, EisaId ("PNP0B00") /* AT Real-Time Clock */)  // _HID: Hardware ID
+            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+            {
+                IO (Decode16,
+                    0x0070,             // Range Minimum
+                    0x0070,             // Range Maximum
+                    0x01,               // Alignment
+                    0x08,               // Length
+                    )
+                IRQNoFlags ()
+                    {8}
+            })
+        }
+    }
+
+    Name (PICF, Zero)
+    Method (_PIC, 1, NotSerialized)  // _PIC: Interrupt Model
+    {
+        PICF = Arg0
+    }
+
+    Scope (_SB)
+    {
+        Scope (PCI0)
+        {
+            Name (PRTP, Package (0x80)
+            {
+                Package (0x04)
+                {
+                    0xFFFF, 
+                    Zero, 
+                    LNKE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0xFFFF, 
+                    One, 
+                    LNKF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0xFFFF, 
+                    0x02, 
+                    LNKG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0xFFFF, 
+                    0x03, 
+                    LNKH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0001FFFF, 
+                    Zero, 
+                    LNKF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0001FFFF, 
+                    One, 
+                    LNKG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0001FFFF, 
+                    0x02, 
+                    LNKH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0001FFFF, 
+                    0x03, 
+                    LNKE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0002FFFF, 
+                    Zero, 
+                    LNKG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0002FFFF, 
+                    One, 
+                    LNKH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0002FFFF, 
+                    0x02, 
+                    LNKE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0002FFFF, 
+                    0x03, 
+                    LNKF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0003FFFF, 
+                    Zero, 
+                    LNKH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0003FFFF, 
+                    One, 
+                    LNKE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0003FFFF, 
+                    0x02, 
+                    LNKF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0003FFFF, 
+                    0x03, 
+                    LNKG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0004FFFF, 
+                    Zero, 
+                    LNKE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0004FFFF, 
+                    One, 
+                    LNKF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0004FFFF, 
+                    0x02, 
+                    LNKG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0004FFFF, 
+                    0x03, 
+                    LNKH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0005FFFF, 
+                    Zero, 
+                    LNKF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0005FFFF, 
+                    One, 
+                    LNKG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0005FFFF, 
+                    0x02, 
+                    LNKH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0005FFFF, 
+                    0x03, 
+                    LNKE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0006FFFF, 
+                    Zero, 
+                    LNKG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0006FFFF, 
+                    One, 
+                    LNKH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0006FFFF, 
+                    0x02, 
+                    LNKE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0006FFFF, 
+                    0x03, 
+                    LNKF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0007FFFF, 
+                    Zero, 
+                    LNKH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0007FFFF, 
+                    One, 
+                    LNKE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0007FFFF, 
+                    0x02, 
+                    LNKF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0007FFFF, 
+                    0x03, 
+                    LNKG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0008FFFF, 
+                    Zero, 
+                    LNKE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0008FFFF, 
+                    One, 
+                    LNKF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0008FFFF, 
+                    0x02, 
+                    LNKG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0008FFFF, 
+                    0x03, 
+                    LNKH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0009FFFF, 
+                    Zero, 
+                    LNKF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0009FFFF, 
+                    One, 
+                    LNKG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0009FFFF, 
+                    0x02, 
+                    LNKH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0009FFFF, 
+                    0x03, 
+                    LNKE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000AFFFF, 
+                    Zero, 
+                    LNKG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000AFFFF, 
+                    One, 
+                    LNKH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000AFFFF, 
+                    0x02, 
+                    LNKE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000AFFFF, 
+                    0x03, 
+                    LNKF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000BFFFF, 
+                    Zero, 
+                    LNKH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000BFFFF, 
+                    One, 
+                    LNKE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000BFFFF, 
+                    0x02, 
+                    LNKF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000BFFFF, 
+                    0x03, 
+                    LNKG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000CFFFF, 
+                    Zero, 
+                    LNKE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000CFFFF, 
+                    One, 
+                    LNKF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000CFFFF, 
+                    0x02, 
+                    LNKG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000CFFFF, 
+                    0x03, 
+                    LNKH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000DFFFF, 
+                    Zero, 
+                    LNKF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000DFFFF, 
+                    One, 
+                    LNKG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000DFFFF, 
+                    0x02, 
+                    LNKH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000DFFFF, 
+                    0x03, 
+                    LNKE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000EFFFF, 
+                    Zero, 
+                    LNKG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000EFFFF, 
+                    One, 
+                    LNKH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000EFFFF, 
+                    0x02, 
+                    LNKE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000EFFFF, 
+                    0x03, 
+                    LNKF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000FFFFF, 
+                    Zero, 
+                    LNKH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000FFFFF, 
+                    One, 
+                    LNKE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000FFFFF, 
+                    0x02, 
+                    LNKF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000FFFFF, 
+                    0x03, 
+                    LNKG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0010FFFF, 
+                    Zero, 
+                    LNKE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0010FFFF, 
+                    One, 
+                    LNKF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0010FFFF, 
+                    0x02, 
+                    LNKG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0010FFFF, 
+                    0x03, 
+                    LNKH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0011FFFF, 
+                    Zero, 
+                    LNKF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0011FFFF, 
+                    One, 
+                    LNKG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0011FFFF, 
+                    0x02, 
+                    LNKH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0011FFFF, 
+                    0x03, 
+                    LNKE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0012FFFF, 
+                    Zero, 
+                    LNKG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0012FFFF, 
+                    One, 
+                    LNKH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0012FFFF, 
+                    0x02, 
+                    LNKE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0012FFFF, 
+                    0x03, 
+                    LNKF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0013FFFF, 
+                    Zero, 
+                    LNKH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0013FFFF, 
+                    One, 
+                    LNKE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0013FFFF, 
+                    0x02, 
+                    LNKF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0013FFFF, 
+                    0x03, 
+                    LNKG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0014FFFF, 
+                    Zero, 
+                    LNKE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0014FFFF, 
+                    One, 
+                    LNKF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0014FFFF, 
+                    0x02, 
+                    LNKG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0014FFFF, 
+                    0x03, 
+                    LNKH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0015FFFF, 
+                    Zero, 
+                    LNKF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0015FFFF, 
+                    One, 
+                    LNKG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0015FFFF, 
+                    0x02, 
+                    LNKH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0015FFFF, 
+                    0x03, 
+                    LNKE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0016FFFF, 
+                    Zero, 
+                    LNKG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0016FFFF, 
+                    One, 
+                    LNKH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0016FFFF, 
+                    0x02, 
+                    LNKE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0016FFFF, 
+                    0x03, 
+                    LNKF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0017FFFF, 
+                    Zero, 
+                    LNKH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0017FFFF, 
+                    One, 
+                    LNKE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0017FFFF, 
+                    0x02, 
+                    LNKF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0017FFFF, 
+                    0x03, 
+                    LNKG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0018FFFF, 
+                    Zero, 
+                    LNKE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0018FFFF, 
+                    One, 
+                    LNKF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0018FFFF, 
+                    0x02, 
+                    LNKG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0018FFFF, 
+                    0x03, 
+                    LNKH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0019FFFF, 
+                    Zero, 
+                    LNKA, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0019FFFF, 
+                    One, 
+                    LNKB, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0019FFFF, 
+                    0x02, 
+                    LNKC, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0019FFFF, 
+                    0x03, 
+                    LNKD, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001AFFFF, 
+                    Zero, 
+                    LNKA, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001AFFFF, 
+                    One, 
+                    LNKB, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001AFFFF, 
+                    0x02, 
+                    LNKC, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001AFFFF, 
+                    0x03, 
+                    LNKD, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001BFFFF, 
+                    Zero, 
+                    LNKA, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001BFFFF, 
+                    One, 
+                    LNKB, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001BFFFF, 
+                    0x02, 
+                    LNKC, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001BFFFF, 
+                    0x03, 
+                    LNKD, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001CFFFF, 
+                    Zero, 
+                    LNKA, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001CFFFF, 
+                    One, 
+                    LNKB, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001CFFFF, 
+                    0x02, 
+                    LNKC, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001CFFFF, 
+                    0x03, 
+                    LNKD, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001DFFFF, 
+                    Zero, 
+                    LNKA, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001DFFFF, 
+                    One, 
+                    LNKB, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001DFFFF, 
+                    0x02, 
+                    LNKC, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001DFFFF, 
+                    0x03, 
+                    LNKD, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001EFFFF, 
+                    Zero, 
+                    LNKE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001EFFFF, 
+                    One, 
+                    LNKF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001EFFFF, 
+                    0x02, 
+                    LNKG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001EFFFF, 
+                    0x03, 
+                    LNKH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001FFFFF, 
+                    Zero, 
+                    LNKA, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001FFFFF, 
+                    One, 
+                    LNKB, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001FFFFF, 
+                    0x02, 
+                    LNKC, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001FFFFF, 
+                    0x03, 
+                    LNKD, 
+                    Zero
+                }
+            })
+            Name (PRTA, Package (0x80)
+            {
+                Package (0x04)
+                {
+                    0xFFFF, 
+                    Zero, 
+                    GSIE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0xFFFF, 
+                    One, 
+                    GSIF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0xFFFF, 
+                    0x02, 
+                    GSIG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0xFFFF, 
+                    0x03, 
+                    GSIH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0001FFFF, 
+                    Zero, 
+                    GSIF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0001FFFF, 
+                    One, 
+                    GSIG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0001FFFF, 
+                    0x02, 
+                    GSIH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0001FFFF, 
+                    0x03, 
+                    GSIE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0002FFFF, 
+                    Zero, 
+                    GSIG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0002FFFF, 
+                    One, 
+                    GSIH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0002FFFF, 
+                    0x02, 
+                    GSIE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0002FFFF, 
+                    0x03, 
+                    GSIF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0003FFFF, 
+                    Zero, 
+                    GSIH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0003FFFF, 
+                    One, 
+                    GSIE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0003FFFF, 
+                    0x02, 
+                    GSIF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0003FFFF, 
+                    0x03, 
+                    GSIG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0004FFFF, 
+                    Zero, 
+                    GSIE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0004FFFF, 
+                    One, 
+                    GSIF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0004FFFF, 
+                    0x02, 
+                    GSIG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0004FFFF, 
+                    0x03, 
+                    GSIH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0005FFFF, 
+                    Zero, 
+                    GSIF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0005FFFF, 
+                    One, 
+                    GSIG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0005FFFF, 
+                    0x02, 
+                    GSIH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0005FFFF, 
+                    0x03, 
+                    GSIE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0006FFFF, 
+                    Zero, 
+                    GSIG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0006FFFF, 
+                    One, 
+                    GSIH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0006FFFF, 
+                    0x02, 
+                    GSIE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0006FFFF, 
+                    0x03, 
+                    GSIF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0007FFFF, 
+                    Zero, 
+                    GSIH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0007FFFF, 
+                    One, 
+                    GSIE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0007FFFF, 
+                    0x02, 
+                    GSIF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0007FFFF, 
+                    0x03, 
+                    GSIG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0008FFFF, 
+                    Zero, 
+                    GSIE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0008FFFF, 
+                    One, 
+                    GSIF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0008FFFF, 
+                    0x02, 
+                    GSIG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0008FFFF, 
+                    0x03, 
+                    GSIH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0009FFFF, 
+                    Zero, 
+                    GSIF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0009FFFF, 
+                    One, 
+                    GSIG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0009FFFF, 
+                    0x02, 
+                    GSIH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0009FFFF, 
+                    0x03, 
+                    GSIE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000AFFFF, 
+                    Zero, 
+                    GSIG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000AFFFF, 
+                    One, 
+                    GSIH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000AFFFF, 
+                    0x02, 
+                    GSIE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000AFFFF, 
+                    0x03, 
+                    GSIF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000BFFFF, 
+                    Zero, 
+                    GSIH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000BFFFF, 
+                    One, 
+                    GSIE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000BFFFF, 
+                    0x02, 
+                    GSIF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000BFFFF, 
+                    0x03, 
+                    GSIG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000CFFFF, 
+                    Zero, 
+                    GSIE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000CFFFF, 
+                    One, 
+                    GSIF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000CFFFF, 
+                    0x02, 
+                    GSIG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000CFFFF, 
+                    0x03, 
+                    GSIH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000DFFFF, 
+                    Zero, 
+                    GSIF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000DFFFF, 
+                    One, 
+                    GSIG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000DFFFF, 
+                    0x02, 
+                    GSIH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000DFFFF, 
+                    0x03, 
+                    GSIE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000EFFFF, 
+                    Zero, 
+                    GSIG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000EFFFF, 
+                    One, 
+                    GSIH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000EFFFF, 
+                    0x02, 
+                    GSIE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000EFFFF, 
+                    0x03, 
+                    GSIF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000FFFFF, 
+                    Zero, 
+                    GSIH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000FFFFF, 
+                    One, 
+                    GSIE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000FFFFF, 
+                    0x02, 
+                    GSIF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000FFFFF, 
+                    0x03, 
+                    GSIG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0010FFFF, 
+                    Zero, 
+                    GSIE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0010FFFF, 
+                    One, 
+                    GSIF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0010FFFF, 
+                    0x02, 
+                    GSIG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0010FFFF, 
+                    0x03, 
+                    GSIH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0011FFFF, 
+                    Zero, 
+                    GSIF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0011FFFF, 
+                    One, 
+                    GSIG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0011FFFF, 
+                    0x02, 
+                    GSIH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0011FFFF, 
+                    0x03, 
+                    GSIE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0012FFFF, 
+                    Zero, 
+                    GSIG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0012FFFF, 
+                    One, 
+                    GSIH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0012FFFF, 
+                    0x02, 
+                    GSIE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0012FFFF, 
+                    0x03, 
+                    GSIF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0013FFFF, 
+                    Zero, 
+                    GSIH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0013FFFF, 
+                    One, 
+                    GSIE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0013FFFF, 
+                    0x02, 
+                    GSIF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0013FFFF, 
+                    0x03, 
+                    GSIG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0014FFFF, 
+                    Zero, 
+                    GSIE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0014FFFF, 
+                    One, 
+                    GSIF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0014FFFF, 
+                    0x02, 
+                    GSIG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0014FFFF, 
+                    0x03, 
+                    GSIH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0015FFFF, 
+                    Zero, 
+                    GSIF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0015FFFF, 
+                    One, 
+                    GSIG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0015FFFF, 
+                    0x02, 
+                    GSIH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0015FFFF, 
+                    0x03, 
+                    GSIE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0016FFFF, 
+                    Zero, 
+                    GSIG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0016FFFF, 
+                    One, 
+                    GSIH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0016FFFF, 
+                    0x02, 
+                    GSIE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0016FFFF, 
+                    0x03, 
+                    GSIF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0017FFFF, 
+                    Zero, 
+                    GSIH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0017FFFF, 
+                    One, 
+                    GSIE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0017FFFF, 
+                    0x02, 
+                    GSIF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0017FFFF, 
+                    0x03, 
+                    GSIG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0018FFFF, 
+                    Zero, 
+                    GSIE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0018FFFF, 
+                    One, 
+                    GSIF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0018FFFF, 
+                    0x02, 
+                    GSIG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0018FFFF, 
+                    0x03, 
+                    GSIH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0019FFFF, 
+                    Zero, 
+                    GSIA, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0019FFFF, 
+                    One, 
+                    GSIB, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0019FFFF, 
+                    0x02, 
+                    GSIC, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0019FFFF, 
+                    0x03, 
+                    GSID, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001AFFFF, 
+                    Zero, 
+                    GSIA, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001AFFFF, 
+                    One, 
+                    GSIB, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001AFFFF, 
+                    0x02, 
+                    GSIC, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001AFFFF, 
+                    0x03, 
+                    GSID, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001BFFFF, 
+                    Zero, 
+                    GSIA, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001BFFFF, 
+                    One, 
+                    GSIB, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001BFFFF, 
+                    0x02, 
+                    GSIC, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001BFFFF, 
+                    0x03, 
+                    GSID, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001CFFFF, 
+                    Zero, 
+                    GSIA, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001CFFFF, 
+                    One, 
+                    GSIB, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001CFFFF, 
+                    0x02, 
+                    GSIC, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001CFFFF, 
+                    0x03, 
+                    GSID, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001DFFFF, 
+                    Zero, 
+                    GSIA, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001DFFFF, 
+                    One, 
+                    GSIB, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001DFFFF, 
+                    0x02, 
+                    GSIC, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001DFFFF, 
+                    0x03, 
+                    GSID, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001EFFFF, 
+                    Zero, 
+                    GSIE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001EFFFF, 
+                    One, 
+                    GSIF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001EFFFF, 
+                    0x02, 
+                    GSIG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001EFFFF, 
+                    0x03, 
+                    GSIH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001FFFFF, 
+                    Zero, 
+                    GSIA, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001FFFFF, 
+                    One, 
+                    GSIB, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001FFFFF, 
+                    0x02, 
+                    GSIC, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001FFFFF, 
+                    0x03, 
+                    GSID, 
+                    Zero
+                }
+            })
+            Method (_PRT, 0, NotSerialized)  // _PRT: PCI Routing Table
+            {
+                If ((PICF == Zero))
+                {
+                    Return (PRTP) /* \_SB_.PCI0.PRTP */
+                }
+                Else
+                {
+                    Return (PRTA) /* \_SB_.PCI0.PRTA */
+                }
+            }
+        }
+
+        Field (PCI0.ISA.PIRQ, ByteAcc, NoLock, Preserve)
+        {
+            PRQA,   8, 
+            PRQB,   8, 
+            PRQC,   8, 
+            PRQD,   8, 
+            Offset (0x08), 
+            PRQE,   8, 
+            PRQF,   8, 
+            PRQG,   8, 
+            PRQH,   8
+        }
+
+        Method (IQST, 1, NotSerialized)
+        {
+            If ((0x80 & Arg0))
+            {
+                Return (0x09)
+            }
+
+            Return (0x0B)
+        }
+
+        Method (IQCR, 1, Serialized)
+        {
+            Name (PRR0, ResourceTemplate ()
+            {
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, _Y00)
+                {
+                    0x00000000,
+                }
+            })
+            CreateDWordField (PRR0, \_SB.IQCR._Y00._INT, PRRI)  // _INT: Interrupts
+            PRRI = (Arg0 & 0x0F)
+            Return (PRR0) /* \_SB_.IQCR.PRR0 */
+        }
+
+        Device (LNKA)
+        {
+            Name (_HID, EisaId ("PNP0C0F") /* PCI Interrupt Link Device */)  // _HID: Hardware ID
+            Name (_UID, Zero)  // _UID: Unique ID
+            Name (_PRS, ResourceTemplate ()  // _PRS: Possible Resource Settings
+            {
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, )
+                {
+                    0x00000005,
+                    0x0000000A,
+                    0x0000000B,
+                }
+            })
+            Method (_STA, 0, NotSerialized)  // _STA: Status
+            {
+                Return (IQST (PRQA))
+            }
+
+            Method (_DIS, 0, NotSerialized)  // _DIS: Disable Device
+            {
+                PRQA |= 0x80
+            }
+
+            Method (_CRS, 0, NotSerialized)  // _CRS: Current Resource Settings
+            {
+                Return (IQCR (PRQA))
+            }
+
+            Method (_SRS, 1, NotSerialized)  // _SRS: Set Resource Settings
+            {
+                CreateDWordField (Arg0, 0x05, PRRI)
+                PRQA = PRRI /* \_SB_.LNKA._SRS.PRRI */
+            }
+        }
+
+        Device (LNKB)
+        {
+            Name (_HID, EisaId ("PNP0C0F") /* PCI Interrupt Link Device */)  // _HID: Hardware ID
+            Name (_UID, One)  // _UID: Unique ID
+            Name (_PRS, ResourceTemplate ()  // _PRS: Possible Resource Settings
+            {
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, )
+                {
+                    0x00000005,
+                    0x0000000A,
+                    0x0000000B,
+                }
+            })
+            Method (_STA, 0, NotSerialized)  // _STA: Status
+            {
+                Return (IQST (PRQB))
+            }
+
+            Method (_DIS, 0, NotSerialized)  // _DIS: Disable Device
+            {
+                PRQB |= 0x80
+            }
+
+            Method (_CRS, 0, NotSerialized)  // _CRS: Current Resource Settings
+            {
+                Return (IQCR (PRQB))
+            }
+
+            Method (_SRS, 1, NotSerialized)  // _SRS: Set Resource Settings
+            {
+                CreateDWordField (Arg0, 0x05, PRRI)
+                PRQB = PRRI /* \_SB_.LNKB._SRS.PRRI */
+            }
+        }
+
+        Device (LNKC)
+        {
+            Name (_HID, EisaId ("PNP0C0F") /* PCI Interrupt Link Device */)  // _HID: Hardware ID
+            Name (_UID, 0x02)  // _UID: Unique ID
+            Name (_PRS, ResourceTemplate ()  // _PRS: Possible Resource Settings
+            {
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, )
+                {
+                    0x00000005,
+                    0x0000000A,
+                    0x0000000B,
+                }
+            })
+            Method (_STA, 0, NotSerialized)  // _STA: Status
+            {
+                Return (IQST (PRQC))
+            }
+
+            Method (_DIS, 0, NotSerialized)  // _DIS: Disable Device
+            {
+                PRQC |= 0x80
+            }
+
+            Method (_CRS, 0, NotSerialized)  // _CRS: Current Resource Settings
+            {
+                Return (IQCR (PRQC))
+            }
+
+            Method (_SRS, 1, NotSerialized)  // _SRS: Set Resource Settings
+            {
+                CreateDWordField (Arg0, 0x05, PRRI)
+                PRQC = PRRI /* \_SB_.LNKC._SRS.PRRI */
+            }
+        }
+
+        Device (LNKD)
+        {
+            Name (_HID, EisaId ("PNP0C0F") /* PCI Interrupt Link Device */)  // _HID: Hardware ID
+            Name (_UID, 0x03)  // _UID: Unique ID
+            Name (_PRS, ResourceTemplate ()  // _PRS: Possible Resource Settings
+            {
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, )
+                {
+                    0x00000005,
+                    0x0000000A,
+                    0x0000000B,
+                }
+            })
+            Method (_STA, 0, NotSerialized)  // _STA: Status
+            {
+                Return (IQST (PRQD))
+            }
+
+            Method (_DIS, 0, NotSerialized)  // _DIS: Disable Device
+            {
+                PRQD |= 0x80
+            }
+
+            Method (_CRS, 0, NotSerialized)  // _CRS: Current Resource Settings
+            {
+                Return (IQCR (PRQD))
+            }
+
+            Method (_SRS, 1, NotSerialized)  // _SRS: Set Resource Settings
+            {
+                CreateDWordField (Arg0, 0x05, PRRI)
+                PRQD = PRRI /* \_SB_.LNKD._SRS.PRRI */
+            }
+        }
+
+        Device (LNKE)
+        {
+            Name (_HID, EisaId ("PNP0C0F") /* PCI Interrupt Link Device */)  // _HID: Hardware ID
+            Name (_UID, 0x04)  // _UID: Unique ID
+            Name (_PRS, ResourceTemplate ()  // _PRS: Possible Resource Settings
+            {
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, )
+                {
+                    0x00000005,
+                    0x0000000A,
+                    0x0000000B,
+                }
+            })
+            Method (_STA, 0, NotSerialized)  // _STA: Status
+            {
+                Return (IQST (PRQE))
+            }
+
+            Method (_DIS, 0, NotSerialized)  // _DIS: Disable Device
+            {
+                PRQE |= 0x80
+            }
+
+            Method (_CRS, 0, NotSerialized)  // _CRS: Current Resource Settings
+            {
+                Return (IQCR (PRQE))
+            }
+
+            Method (_SRS, 1, NotSerialized)  // _SRS: Set Resource Settings
+            {
+                CreateDWordField (Arg0, 0x05, PRRI)
+                PRQE = PRRI /* \_SB_.LNKE._SRS.PRRI */
+            }
+        }
+
+        Device (LNKF)
+        {
+            Name (_HID, EisaId ("PNP0C0F") /* PCI Interrupt Link Device */)  // _HID: Hardware ID
+            Name (_UID, 0x05)  // _UID: Unique ID
+            Name (_PRS, ResourceTemplate ()  // _PRS: Possible Resource Settings
+            {
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, )
+                {
+                    0x00000005,
+                    0x0000000A,
+                    0x0000000B,
+                }
+            })
+            Method (_STA, 0, NotSerialized)  // _STA: Status
+            {
+                Return (IQST (PRQF))
+            }
+
+            Method (_DIS, 0, NotSerialized)  // _DIS: Disable Device
+            {
+                PRQF |= 0x80
+            }
+
+            Method (_CRS, 0, NotSerialized)  // _CRS: Current Resource Settings
+            {
+                Return (IQCR (PRQF))
+            }
+
+            Method (_SRS, 1, NotSerialized)  // _SRS: Set Resource Settings
+            {
+                CreateDWordField (Arg0, 0x05, PRRI)
+                PRQF = PRRI /* \_SB_.LNKF._SRS.PRRI */
+            }
+        }
+
+        Device (LNKG)
+        {
+            Name (_HID, EisaId ("PNP0C0F") /* PCI Interrupt Link Device */)  // _HID: Hardware ID
+            Name (_UID, 0x06)  // _UID: Unique ID
+            Name (_PRS, ResourceTemplate ()  // _PRS: Possible Resource Settings
+            {
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, )
+                {
+                    0x00000005,
+                    0x0000000A,
+                    0x0000000B,
+                }
+            })
+            Method (_STA, 0, NotSerialized)  // _STA: Status
+            {
+                Return (IQST (PRQG))
+            }
+
+            Method (_DIS, 0, NotSerialized)  // _DIS: Disable Device
+            {
+                PRQG |= 0x80
+            }
+
+            Method (_CRS, 0, NotSerialized)  // _CRS: Current Resource Settings
+            {
+                Return (IQCR (PRQG))
+            }
+
+            Method (_SRS, 1, NotSerialized)  // _SRS: Set Resource Settings
+            {
+                CreateDWordField (Arg0, 0x05, PRRI)
+                PRQG = PRRI /* \_SB_.LNKG._SRS.PRRI */
+            }
+        }
+
+        Device (LNKH)
+        {
+            Name (_HID, EisaId ("PNP0C0F") /* PCI Interrupt Link Device */)  // _HID: Hardware ID
+            Name (_UID, 0x07)  // _UID: Unique ID
+            Name (_PRS, ResourceTemplate ()  // _PRS: Possible Resource Settings
+            {
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, )
+                {
+                    0x00000005,
+                    0x0000000A,
+                    0x0000000B,
+                }
+            })
+            Method (_STA, 0, NotSerialized)  // _STA: Status
+            {
+                Return (IQST (PRQH))
+            }
+
+            Method (_DIS, 0, NotSerialized)  // _DIS: Disable Device
+            {
+                PRQH |= 0x80
+            }
+
+            Method (_CRS, 0, NotSerialized)  // _CRS: Current Resource Settings
+            {
+                Return (IQCR (PRQH))
+            }
+
+            Method (_SRS, 1, NotSerialized)  // _SRS: Set Resource Settings
+            {
+                CreateDWordField (Arg0, 0x05, PRRI)
+                PRQH = PRRI /* \_SB_.LNKH._SRS.PRRI */
+            }
+        }
+
+        Device (GSIA)
+        {
+            Name (_HID, EisaId ("PNP0C0F") /* PCI Interrupt Link Device */)  // _HID: Hardware ID
+            Name (_UID, 0x10)  // _UID: Unique ID
+            Name (_PRS, ResourceTemplate ()  // _PRS: Possible Resource Settings
+            {
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, )
+                {
+                    0x00000010,
+                }
+            })
+            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+            {
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, )
+                {
+                    0x00000010,
+                }
+            })
+            Method (_DIS, 0, NotSerialized)  // _DIS: Disable Device
+            {
+            }
+
+            Method (_SRS, 1, NotSerialized)  // _SRS: Set Resource Settings
+            {
+            }
+        }
+
+        Device (GSIB)
+        {
+            Name (_HID, EisaId ("PNP0C0F") /* PCI Interrupt Link Device */)  // _HID: Hardware ID
+            Name (_UID, 0x11)  // _UID: Unique ID
+            Name (_PRS, ResourceTemplate ()  // _PRS: Possible Resource Settings
+            {
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, )
+                {
+                    0x00000011,
+                }
+            })
+            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+            {
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, )
+                {
+                    0x00000011,
+                }
+            })
+            Method (_DIS, 0, NotSerialized)  // _DIS: Disable Device
+            {
+            }
+
+            Method (_SRS, 1, NotSerialized)  // _SRS: Set Resource Settings
+            {
+            }
+        }
+
+        Device (GSIC)
+        {
+            Name (_HID, EisaId ("PNP0C0F") /* PCI Interrupt Link Device */)  // _HID: Hardware ID
+            Name (_UID, 0x12)  // _UID: Unique ID
+            Name (_PRS, ResourceTemplate ()  // _PRS: Possible Resource Settings
+            {
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, )
+                {
+                    0x00000012,
+                }
+            })
+            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+            {
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, )
+                {
+                    0x00000012,
+                }
+            })
+            Method (_DIS, 0, NotSerialized)  // _DIS: Disable Device
+            {
+            }
+
+            Method (_SRS, 1, NotSerialized)  // _SRS: Set Resource Settings
+            {
+            }
+        }
+
+        Device (GSID)
+        {
+            Name (_HID, EisaId ("PNP0C0F") /* PCI Interrupt Link Device */)  // _HID: Hardware ID
+            Name (_UID, 0x13)  // _UID: Unique ID
+            Name (_PRS, ResourceTemplate ()  // _PRS: Possible Resource Settings
+            {
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, )
+                {
+                    0x00000013,
+                }
+            })
+            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+            {
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, )
+                {
+                    0x00000013,
+                }
+            })
+            Method (_DIS, 0, NotSerialized)  // _DIS: Disable Device
+            {
+            }
+
+            Method (_SRS, 1, NotSerialized)  // _SRS: Set Resource Settings
+            {
+            }
+        }
+
+        Device (GSIE)
+        {
+            Name (_HID, EisaId ("PNP0C0F") /* PCI Interrupt Link Device */)  // _HID: Hardware ID
+            Name (_UID, 0x14)  // _UID: Unique ID
+            Name (_PRS, ResourceTemplate ()  // _PRS: Possible Resource Settings
+            {
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, )
+                {
+                    0x00000014,
+                }
+            })
+            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+            {
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, )
+                {
+                    0x00000014,
+                }
+            })
+            Method (_DIS, 0, NotSerialized)  // _DIS: Disable Device
+            {
+            }
+
+            Method (_SRS, 1, NotSerialized)  // _SRS: Set Resource Settings
+            {
+            }
+        }
+
+        Device (GSIF)
+        {
+            Name (_HID, EisaId ("PNP0C0F") /* PCI Interrupt Link Device */)  // _HID: Hardware ID
+            Name (_UID, 0x15)  // _UID: Unique ID
+            Name (_PRS, ResourceTemplate ()  // _PRS: Possible Resource Settings
+            {
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, )
+                {
+                    0x00000015,
+                }
+            })
+            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+            {
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, )
+                {
+                    0x00000015,
+                }
+            })
+            Method (_DIS, 0, NotSerialized)  // _DIS: Disable Device
+            {
+            }
+
+            Method (_SRS, 1, NotSerialized)  // _SRS: Set Resource Settings
+            {
+            }
+        }
+
+        Device (GSIG)
+        {
+            Name (_HID, EisaId ("PNP0C0F") /* PCI Interrupt Link Device */)  // _HID: Hardware ID
+            Name (_UID, 0x16)  // _UID: Unique ID
+            Name (_PRS, ResourceTemplate ()  // _PRS: Possible Resource Settings
+            {
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, )
+                {
+                    0x00000016,
+                }
+            })
+            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+            {
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, )
+                {
+                    0x00000016,
+                }
+            })
+            Method (_DIS, 0, NotSerialized)  // _DIS: Disable Device
+            {
+            }
+
+            Method (_SRS, 1, NotSerialized)  // _SRS: Set Resource Settings
+            {
+            }
+        }
+
+        Device (GSIH)
+        {
+            Name (_HID, EisaId ("PNP0C0F") /* PCI Interrupt Link Device */)  // _HID: Hardware ID
+            Name (_UID, 0x17)  // _UID: Unique ID
+            Name (_PRS, ResourceTemplate ()  // _PRS: Possible Resource Settings
+            {
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, )
+                {
+                    0x00000017,
+                }
+            })
+            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+            {
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, )
+                {
+                    0x00000017,
+                }
+            })
+            Method (_DIS, 0, NotSerialized)  // _DIS: Disable Device
+            {
+            }
+
+            Method (_SRS, 1, NotSerialized)  // _SRS: Set Resource Settings
+            {
+            }
+        }
+    }
+
+    Scope (_SB.PCI0)
+    {
+        Device (SMB0)
+        {
+            Name (_ADR, 0x001F0003)  // _ADR: Address
+        }
+    }
+
+    Scope (_SB)
+    {
+        Device (\_SB.PCI0.PRES)
+        {
+            Name (_HID, EisaId ("PNP0A06") /* Generic Container Device */)  // _HID: Hardware ID
+            Name (_UID, "CPU Hotplug resources")  // _UID: Unique ID
+            Mutex (CPLK, 0x00)
+            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+            {
+                IO (Decode16,
+                    0x0CD8,             // Range Minimum
+                    0x0CD8,             // Range Maximum
+                    0x01,               // Alignment
+                    0x0C,               // Length
+                    )
+            })
+            OperationRegion (PRST, SystemIO, 0x0CD8, 0x0C)
+            Field (PRST, ByteAcc, NoLock, WriteAsZeros)
+            {
+                Offset (0x04), 
+                CPEN,   1, 
+                CINS,   1, 
+                CRMV,   1, 
+                CEJ0,   1, 
+                Offset (0x05), 
+                CCMD,   8
+            }
+
+            Field (PRST, DWordAcc, NoLock, Preserve)
+            {
+                CSEL,   32, 
+                Offset (0x08), 
+                CDAT,   32
+            }
+
+            Method (_INI, 0, Serialized)  // _INI: Initialize
+            {
+                CSEL = Zero
+            }
+        }
+
+        Device (\_SB.CPUS)
+        {
+            Name (_HID, "ACPI0010" /* Processor Container Device */)  // _HID: Hardware ID
+            Name (_CID, EisaId ("PNP0A05") /* Generic Container Device */)  // _CID: Compatible ID
+            Method (CTFY, 2, NotSerialized)
+            {
+                If ((Arg0 == Zero))
+                {
+                    Notify (C000, Arg1)
+                }
+
+                If ((Arg0 == One))
+                {
+                    Notify (C001, Arg1)
+                }
+
+                If ((Arg0 == 0x02))
+                {
+                    Notify (C002, Arg1)
+                }
+
+                If ((Arg0 == 0x03))
+                {
+                    Notify (C003, Arg1)
+                }
+            }
+
+            Method (CSTA, 1, Serialized)
+            {
+                Acquire (\_SB.PCI0.PRES.CPLK, 0xFFFF)
+                \_SB.PCI0.PRES.CSEL = Arg0
+                Local0 = Zero
+                If ((\_SB.PCI0.PRES.CPEN == One))
+                {
+                    Local0 = 0x0F
+                }
+
+                Release (\_SB.PCI0.PRES.CPLK)
+                Return (Local0)
+            }
+
+            Method (CEJ0, 1, Serialized)
+            {
+                Acquire (\_SB.PCI0.PRES.CPLK, 0xFFFF)
+                \_SB.PCI0.PRES.CSEL = Arg0
+                \_SB.PCI0.PRES.CEJ0 = One
+                Release (\_SB.PCI0.PRES.CPLK)
+            }
+
+            Method (CSCN, 0, Serialized)
+            {
+                Acquire (\_SB.PCI0.PRES.CPLK, 0xFFFF)
+                Local0 = One
+                While ((Local0 == One))
+                {
+                    Local0 = Zero
+                    \_SB.PCI0.PRES.CCMD = Zero
+                    If ((\_SB.PCI0.PRES.CINS == One))
+                    {
+                        CTFY (\_SB.PCI0.PRES.CDAT, One)
+                        \_SB.PCI0.PRES.CINS = One
+                        Local0 = One
+                    }
+                    ElseIf ((\_SB.PCI0.PRES.CRMV == One))
+                    {
+                        CTFY (\_SB.PCI0.PRES.CDAT, 0x03)
+                        \_SB.PCI0.PRES.CRMV = One
+                        Local0 = One
+                    }
+                }
+
+                Release (\_SB.PCI0.PRES.CPLK)
+            }
+
+            Method (COST, 4, Serialized)
+            {
+                Acquire (\_SB.PCI0.PRES.CPLK, 0xFFFF)
+                \_SB.PCI0.PRES.CSEL = Arg0
+                \_SB.PCI0.PRES.CCMD = One
+                \_SB.PCI0.PRES.CDAT = Arg1
+                \_SB.PCI0.PRES.CCMD = 0x02
+                \_SB.PCI0.PRES.CDAT = Arg2
+                Release (\_SB.PCI0.PRES.CPLK)
+            }
+
+            Processor (C000, 0x00, 0x00000000, 0x00)
+            {
+                Method (_STA, 0, Serialized)  // _STA: Status
+                {
+                    Return (CSTA (Zero))
+                }
+
+                Name (_MAT, Buffer (0x08)  // _MAT: Multiple APIC Table Entry
+                {
+                     0x00, 0x08, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00   // ........
+                })
+                Method (_OST, 3, Serialized)  // _OST: OSPM Status Indication
+                {
+                    COST (Zero, Arg0, Arg1, Arg2)
+                }
+
+                Name (_PXM, Zero)  // _PXM: Device Proximity
+            }
+
+            Processor (C001, 0x01, 0x00000000, 0x00)
+            {
+                Method (_STA, 0, Serialized)  // _STA: Status
+                {
+                    Return (CSTA (One))
+                }
+
+                Name (_MAT, Buffer (0x08)  // _MAT: Multiple APIC Table Entry
+                {
+                     0x00, 0x08, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00   // ........
+                })
+                Method (_EJ0, 1, NotSerialized)  // _EJx: Eject Device, x=0-9
+                {
+                    CEJ0 (One)
+                }
+
+                Method (_OST, 3, Serialized)  // _OST: OSPM Status Indication
+                {
+                    COST (One, Arg0, Arg1, Arg2)
+                }
+
+                Name (_PXM, One)  // _PXM: Device Proximity
+            }
+
+            Processor (C002, 0x02, 0x00000000, 0x00)
+            {
+                Method (_STA, 0, Serialized)  // _STA: Status
+                {
+                    Return (CSTA (0x02))
+                }
+
+                Name (_MAT, Buffer (0x08)  // _MAT: Multiple APIC Table Entry
+                {
+                     0x00, 0x08, 0x02, 0x02, 0x01, 0x00, 0x00, 0x00   // ........
+                })
+                Method (_EJ0, 1, NotSerialized)  // _EJx: Eject Device, x=0-9
+                {
+                    CEJ0 (0x02)
+                }
+
+                Method (_OST, 3, Serialized)  // _OST: OSPM Status Indication
+                {
+                    COST (0x02, Arg0, Arg1, Arg2)
+                }
+
+                Name (_PXM, 0x02)  // _PXM: Device Proximity
+            }
+
+            Processor (C003, 0x03, 0x00000000, 0x00)
+            {
+                Method (_STA, 0, Serialized)  // _STA: Status
+                {
+                    Return (CSTA (0x03))
+                }
+
+                Name (_MAT, Buffer (0x08)  // _MAT: Multiple APIC Table Entry
+                {
+                     0x00, 0x08, 0x03, 0x03, 0x01, 0x00, 0x00, 0x00   // ........
+                })
+                Method (_EJ0, 1, NotSerialized)  // _EJx: Eject Device, x=0-9
+                {
+                    CEJ0 (0x03)
+                }
+
+                Method (_OST, 3, Serialized)  // _OST: OSPM Status Indication
+                {
+                    COST (0x03, Arg0, Arg1, Arg2)
+                }
+
+                Name (_PXM, 0x03)  // _PXM: Device Proximity
+            }
+        }
+    }
+
+    Method (\_GPE._E02, 0, NotSerialized)  // _Exx: Edge-Triggered GPE, xx=0x00-0xFF
+    {
+        \_SB.CPUS.CSCN ()
+    }
+
+    Device (\_SB.PCI0.MHPD)
+    {
+        Name (_HID, "PNP0A06" /* Generic Container Device */)  // _HID: Hardware ID
+        Name (_UID, "Memory hotplug resources")  // _UID: Unique ID
+        Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+        {
+            IO (Decode16,
+                0x0A00,             // Range Minimum
+                0x0A00,             // Range Maximum
+                0x00,               // Alignment
+                0x18,               // Length
+                )
+        })
+        OperationRegion (HPMR, SystemIO, 0x0A00, 0x18)
+    }
+
+    Device (\_SB.MHPC)
+    {
+        Name (_HID, "PNP0A06" /* Generic Container Device */)  // _HID: Hardware ID
+        Name (_UID, "DIMM devices")  // _UID: Unique ID
+        Name (MDNR, 0x03)
+        Field (\_SB.PCI0.MHPD.HPMR, DWordAcc, NoLock, Preserve)
+        {
+            MRBL,   32, 
+            MRBH,   32, 
+            MRLL,   32, 
+            MRLH,   32, 
+            MPX,    32
+        }
+
+        Field (\_SB.PCI0.MHPD.HPMR, ByteAcc, NoLock, WriteAsZeros)
+        {
+            Offset (0x14), 
+            MES,    1, 
+            MINS,   1, 
+            MRMV,   1, 
+            MEJ,    1
+        }
+
+        Field (\_SB.PCI0.MHPD.HPMR, DWordAcc, NoLock, Preserve)
+        {
+            MSEL,   32, 
+            MOEV,   32, 
+            MOSC,   32
+        }
+
+        Method (_STA, 0, NotSerialized)  // _STA: Status
+        {
+            If ((MDNR == Zero))
+            {
+                Return (Zero)
+            }
+
+            Return (0x0B)
+        }
+
+        Mutex (MLCK, 0x00)
+        Method (MSCN, 0, NotSerialized)
+        {
+            If ((MDNR == Zero))
+            {
+                Return (Zero)
+            }
+
+            Local0 = Zero
+            Acquire (MLCK, 0xFFFF)
+            While ((Local0 < MDNR))
+            {
+                MSEL = Local0
+                If ((MINS == One))
+                {
+                    MTFY (Local0, One)
+                    MINS = One
+                }
+                ElseIf ((MRMV == One))
+                {
+                    MTFY (Local0, 0x03)
+                    MRMV = One
+                }
+
+                Local0 += One
+            }
+
+            Release (MLCK)
+            Return (One)
+        }
+
+        Method (MRST, 1, NotSerialized)
+        {
+            Local0 = Zero
+            Acquire (MLCK, 0xFFFF)
+            MSEL = ToInteger (Arg0)
+            If ((MES == One))
+            {
+                Local0 = 0x0F
+            }
+
+            Release (MLCK)
+            Return (Local0)
+        }
+
+        Method (MCRS, 1, Serialized)
+        {
+            Acquire (MLCK, 0xFFFF)
+            MSEL = ToInteger (Arg0)
+            Name (MR64, ResourceTemplate ()
+            {
+                QWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, Cacheable, ReadWrite,
+                    0x0000000000000000, // Granularity
+                    0x0000000000000000, // Range Minimum
+                    0xFFFFFFFFFFFFFFFE, // Range Maximum
+                    0x0000000000000000, // Translation Offset
+                    0xFFFFFFFFFFFFFFFF, // Length
+                    ,, _Y01, AddressRangeMemory, TypeStatic)
+            })
+            CreateDWordField (MR64, \_SB.MHPC.MCRS._Y01._MIN, MINL)  // _MIN: Minimum Base Address
+            CreateDWordField (MR64, 0x12, MINH)
+            CreateDWordField (MR64, \_SB.MHPC.MCRS._Y01._LEN, LENL)  // _LEN: Length
+            CreateDWordField (MR64, 0x2A, LENH)
+            CreateDWordField (MR64, \_SB.MHPC.MCRS._Y01._MAX, MAXL)  // _MAX: Maximum Base Address
+            CreateDWordField (MR64, 0x1A, MAXH)
+            MINH = MRBH /* \_SB_.MHPC.MRBH */
+            MINL = MRBL /* \_SB_.MHPC.MRBL */
+            LENH = MRLH /* \_SB_.MHPC.MRLH */
+            LENL = MRLL /* \_SB_.MHPC.MRLL */
+            MAXL = (MINL + LENL) /* \_SB_.MHPC.MCRS.LENL */
+            MAXH = (MINH + LENH) /* \_SB_.MHPC.MCRS.LENH */
+            If ((MAXL < MINL))
+            {
+                MAXH += One
+            }
+
+            If ((MAXL < One))
+            {
+                MAXH -= One
+            }
+
+            MAXL -= One
+            If ((MAXH == Zero))
+            {
+                Name (MR32, ResourceTemplate ()
+                {
+                    DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, Cacheable, ReadWrite,
+                        0x00000000,         // Granularity
+                        0x00000000,         // Range Minimum
+                        0xFFFFFFFE,         // Range Maximum
+                        0x00000000,         // Translation Offset
+                        0xFFFFFFFF,         // Length
+                        ,, _Y02, AddressRangeMemory, TypeStatic)
+                })
+                CreateDWordField (MR32, \_SB.MHPC.MCRS._Y02._MIN, MIN)  // _MIN: Minimum Base Address
+                CreateDWordField (MR32, \_SB.MHPC.MCRS._Y02._MAX, MAX)  // _MAX: Maximum Base Address
+                CreateDWordField (MR32, \_SB.MHPC.MCRS._Y02._LEN, LEN)  // _LEN: Length
+                MIN = MINL /* \_SB_.MHPC.MCRS.MINL */
+                MAX = MAXL /* \_SB_.MHPC.MCRS.MAXL */
+                LEN = LENL /* \_SB_.MHPC.MCRS.LENL */
+                Release (MLCK)
+                Return (MR32) /* \_SB_.MHPC.MCRS.MR32 */
+            }
+
+            Release (MLCK)
+            Return (MR64) /* \_SB_.MHPC.MCRS.MR64 */
+        }
+
+        Method (MPXM, 1, NotSerialized)
+        {
+            Acquire (MLCK, 0xFFFF)
+            MSEL = ToInteger (Arg0)
+            Local0 = MPX /* \_SB_.MHPC.MPX_ */
+            Release (MLCK)
+            Return (Local0)
+        }
+
+        Method (MOST, 4, NotSerialized)
+        {
+            Acquire (MLCK, 0xFFFF)
+            MSEL = ToInteger (Arg0)
+            MOEV = Arg1
+            MOSC = Arg2
+            Release (MLCK)
+        }
+
+        Method (MEJ0, 2, NotSerialized)
+        {
+            Acquire (MLCK, 0xFFFF)
+            MSEL = ToInteger (Arg0)
+            MEJ = One
+            Release (MLCK)
+        }
+
+        Device (MP00)
+        {
+            Name (_UID, "0x00")  // _UID: Unique ID
+            Name (_HID, EisaId ("PNP0C80") /* Memory Device */)  // _HID: Hardware ID
+            Method (_CRS, 0, NotSerialized)  // _CRS: Current Resource Settings
+            {
+                Return (MCRS (_UID))
+            }
+
+            Method (_STA, 0, NotSerialized)  // _STA: Status
+            {
+                Return (MRST (_UID))
+            }
+
+            Method (_PXM, 0, NotSerialized)  // _PXM: Device Proximity
+            {
+                Return (MPXM (_UID))
+            }
+
+            Method (_OST, 3, NotSerialized)  // _OST: OSPM Status Indication
+            {
+                MOST (_UID, Arg0, Arg1, Arg2)
+            }
+
+            Method (_EJ0, 1, NotSerialized)  // _EJx: Eject Device, x=0-9
+            {
+                MEJ0 (_UID, Arg0)
+            }
+        }
+
+        Device (MP01)
+        {
+            Name (_UID, "0x01")  // _UID: Unique ID
+            Name (_HID, EisaId ("PNP0C80") /* Memory Device */)  // _HID: Hardware ID
+            Method (_CRS, 0, NotSerialized)  // _CRS: Current Resource Settings
+            {
+                Return (MCRS (_UID))
+            }
+
+            Method (_STA, 0, NotSerialized)  // _STA: Status
+            {
+                Return (MRST (_UID))
+            }
+
+            Method (_PXM, 0, NotSerialized)  // _PXM: Device Proximity
+            {
+                Return (MPXM (_UID))
+            }
+
+            Method (_OST, 3, NotSerialized)  // _OST: OSPM Status Indication
+            {
+                MOST (_UID, Arg0, Arg1, Arg2)
+            }
+
+            Method (_EJ0, 1, NotSerialized)  // _EJx: Eject Device, x=0-9
+            {
+                MEJ0 (_UID, Arg0)
+            }
+        }
+
+        Device (MP02)
+        {
+            Name (_UID, "0x02")  // _UID: Unique ID
+            Name (_HID, EisaId ("PNP0C80") /* Memory Device */)  // _HID: Hardware ID
+            Method (_CRS, 0, NotSerialized)  // _CRS: Current Resource Settings
+            {
+                Return (MCRS (_UID))
+            }
+
+            Method (_STA, 0, NotSerialized)  // _STA: Status
+            {
+                Return (MRST (_UID))
+            }
+
+            Method (_PXM, 0, NotSerialized)  // _PXM: Device Proximity
+            {
+                Return (MPXM (_UID))
+            }
+
+            Method (_OST, 3, NotSerialized)  // _OST: OSPM Status Indication
+            {
+                MOST (_UID, Arg0, Arg1, Arg2)
+            }
+
+            Method (_EJ0, 1, NotSerialized)  // _EJx: Eject Device, x=0-9
+            {
+                MEJ0 (_UID, Arg0)
+            }
+        }
+
+        Method (MTFY, 2, NotSerialized)
+        {
+            If ((Arg0 == Zero))
+            {
+                Notify (MP00, Arg1)
+            }
+
+            If ((Arg0 == One))
+            {
+                Notify (MP01, Arg1)
+            }
+
+            If ((Arg0 == 0x02))
+            {
+                Notify (MP02, Arg1)
+            }
+        }
+    }
+
+    Method (\_GPE._E03, 0, NotSerialized)  // _Exx: Edge-Triggered GPE, xx=0x00-0xFF
+    {
+        \_SB.MHPC.MSCN ()
+    }
+
+    Scope (_GPE)
+    {
+        Name (_HID, "ACPI0006" /* GPE Block Device */)  // _HID: Hardware ID
+        Method (_E04, 0, NotSerialized)  // _Exx: Edge-Triggered GPE, xx=0x00-0xFF
+        {
+            Notify (\_SB.NVDR, 0x80) // Status Change
+        }
+    }
+
+    Scope (\_SB.PCI0)
+    {
+        Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+        {
+            WordBusNumber (ResourceProducer, MinFixed, MaxFixed, PosDecode,
+                0x0000,             // Granularity
+                0x0000,             // Range Minimum
+                0x00FF,             // Range Maximum
+                0x0000,             // Translation Offset
+                0x0100,             // Length
+                ,, )
+            IO (Decode16,
+                0x0CF8,             // Range Minimum
+                0x0CF8,             // Range Maximum
+                0x01,               // Alignment
+                0x08,               // Length
+                )
+            WordIO (ResourceProducer, MinFixed, MaxFixed, PosDecode, EntireRange,
+                0x0000,             // Granularity
+                0x0000,             // Range Minimum
+                0x0CF7,             // Range Maximum
+                0x0000,             // Translation Offset
+                0x0CF8,             // Length
+                ,, , TypeStatic, DenseTranslation)
+            WordIO (ResourceProducer, MinFixed, MaxFixed, PosDecode, EntireRange,
+                0x0000,             // Granularity
+                0x0D00,             // Range Minimum
+                0xFFFF,             // Range Maximum
+                0x0000,             // Translation Offset
+                0xF300,             // Length
+                ,, , TypeStatic, DenseTranslation)
+            DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, Cacheable, ReadWrite,
+                0x00000000,         // Granularity
+                0x000A0000,         // Range Minimum
+                0x000BFFFF,         // Range Maximum
+                0x00000000,         // Translation Offset
+                0x00020000,         // Length
+                ,, , AddressRangeMemory, TypeStatic)
+            DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, NonCacheable, ReadWrite,
+                0x00000000,         // Granularity
+                0x08000000,         // Range Minimum
+                0xAFFFFFFF,         // Range Maximum
+                0x00000000,         // Translation Offset
+                0xA8000000,         // Length
+                ,, , AddressRangeMemory, TypeStatic)
+            DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, NonCacheable, ReadWrite,
+                0x00000000,         // Granularity
+                0xC0000000,         // Range Minimum
+                0xFEBFFFFF,         // Range Maximum
+                0x00000000,         // Translation Offset
+                0x3EC00000,         // Length
+                ,, , AddressRangeMemory, TypeStatic)
+            QWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, Cacheable, ReadWrite,
+                0x0000000000000000, // Granularity
+                0x0000000200000000, // Range Minimum
+                0x00000009FFFFFFFF, // Range Maximum
+                0x0000000000000000, // Translation Offset
+                0x0000000800000000, // Length
+                ,, , AddressRangeMemory, TypeStatic)
+        })
+        Device (GPE0)
+        {
+            Name (_HID, "PNP0A06" /* Generic Container Device */)  // _HID: Hardware ID
+            Name (_UID, "GPE0 resources")  // _UID: Unique ID
+            Name (_STA, 0x0B)  // _STA: Status
+            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+            {
+                IO (Decode16,
+                    0x0620,             // Range Minimum
+                    0x0620,             // Range Maximum
+                    0x01,               // Alignment
+                    0x10,               // Length
+                    )
+            })
+        }
+    }
+
+    Scope (\)
+    {
+        Name (_S3, Package (0x04)  // _S3_: S3 System State
+        {
+            One, 
+            One, 
+            Zero, 
+            Zero
+        })
+        Name (_S4, Package (0x04)  // _S4_: S4 System State
+        {
+            0x02, 
+            0x02, 
+            Zero, 
+            Zero
+        })
+        Name (_S5, Package (0x04)  // _S5_: S5 System State
+        {
+            Zero, 
+            Zero, 
+            Zero, 
+            Zero
+        })
+    }
+
+    Scope (\_SB.PCI0)
+    {
+        Device (FWCF)
+        {
+            Name (_HID, "QEMU0002")  // _HID: Hardware ID
+            Name (_STA, 0x0B)  // _STA: Status
+            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+            {
+                IO (Decode16,
+                    0x0510,             // Range Minimum
+                    0x0510,             // Range Maximum
+                    0x01,               // Alignment
+                    0x0C,               // Length
+                    )
+            })
+        }
+    }
+
+    Scope (\_SB)
+    {
+        Scope (PCI0)
+        {
+            Device (S00)
+            {
+                Name (_ADR, Zero)  // _ADR: Address
+            }
+
+            Device (S08)
+            {
+                Name (_ADR, 0x00010000)  // _ADR: Address
+                Method (_S1D, 0, NotSerialized)  // _S1D: S1 Device State
+                {
+                    Return (Zero)
+                }
+
+                Method (_S2D, 0, NotSerialized)  // _S2D: S2 Device State
+                {
+                    Return (Zero)
+                }
+
+                Method (_S3D, 0, NotSerialized)  // _S3D: S3 Device State
+                {
+                    Return (Zero)
+                }
+            }
+
+            Method (PCNT, 0, NotSerialized)
+            {
+            }
+        }
+    }
+}
+
diff --git a/tests/data/acpi/q35/DSDT.dsl b/tests/data/acpi/q35/DSDT.dsl
new file mode 100644
index 0000000000..5adfe001c7
--- /dev/null
+++ b/tests/data/acpi/q35/DSDT.dsl
@@ -0,0 +1,3351 @@ 
+/*
+ * Intel ACPI Component Architecture
+ * AML/ASL+ Disassembler version 20190509 (64-bit version)
+ * Copyright (c) 2000 - 2019 Intel Corporation
+ * 
+ * Disassembling to symbolic ASL+ operators
+ *
+ * Disassembly of tests/data/acpi/q35/DSDT.tis, Mon Sep 28 17:24:38 2020
+ *
+ * Original Table Header:
+ *     Signature        "DSDT"
+ *     Length           0x000020D2 (8402)
+ *     Revision         0x01 **** 32-bit table (V1), no 64-bit math support
+ *     Checksum         0xF4
+ *     OEM ID           "BOCHS "
+ *     OEM Table ID     "BXPCDSDT"
+ *     OEM Revision     0x00000001 (1)
+ *     Compiler ID      "BXPC"
+ *     Compiler Version 0x00000001 (1)
+ */
+DefinitionBlock ("", "DSDT", 1, "BOCHS ", "BXPCDSDT", 0x00000001)
+{
+    Scope (\)
+    {
+        OperationRegion (DBG, SystemIO, 0x0402, One)
+        Field (DBG, ByteAcc, NoLock, Preserve)
+        {
+            DBGB,   8
+        }
+
+        Method (DBUG, 1, NotSerialized)
+        {
+            ToHexString (Arg0, Local0)
+            ToBuffer (Local0, Local0)
+            Local1 = (SizeOf (Local0) - One)
+            Local2 = Zero
+            While ((Local2 < Local1))
+            {
+                DBGB = DerefOf (Local0 [Local2])
+                Local2++
+            }
+
+            DBGB = 0x0A
+        }
+    }
+
+    Scope (_SB)
+    {
+        Device (PCI0)
+        {
+            Name (_HID, EisaId ("PNP0A08") /* PCI Express Bus */)  // _HID: Hardware ID
+            Name (_CID, EisaId ("PNP0A03") /* PCI Bus */)  // _CID: Compatible ID
+            Name (_ADR, Zero)  // _ADR: Address
+            Name (_UID, Zero)  // _UID: Unique ID
+            Method (_OSC, 4, NotSerialized)  // _OSC: Operating System Capabilities
+            {
+                CreateDWordField (Arg3, Zero, CDW1)
+                If ((Arg0 == ToUUID ("33db4d5b-1ff7-401c-9657-7441c03dd766") /* PCI Host Bridge Device */))
+                {
+                    CreateDWordField (Arg3, 0x04, CDW2)
+                    CreateDWordField (Arg3, 0x08, CDW3)
+                    Local0 = CDW3 /* \_SB_.PCI0._OSC.CDW3 */
+                    Local0 &= 0x1F
+                    If ((Arg1 != One))
+                    {
+                        CDW1 |= 0x08
+                    }
+
+                    If ((CDW3 != Local0))
+                    {
+                        CDW1 |= 0x10
+                    }
+
+                    CDW3 = Local0
+                }
+                Else
+                {
+                    CDW1 |= 0x04
+                }
+
+                Return (Arg3)
+            }
+        }
+    }
+
+    Scope (_SB)
+    {
+        Device (HPET)
+        {
+            Name (_HID, EisaId ("PNP0103") /* HPET System Timer */)  // _HID: Hardware ID
+            Name (_UID, Zero)  // _UID: Unique ID
+            OperationRegion (HPTM, SystemMemory, 0xFED00000, 0x0400)
+            Field (HPTM, DWordAcc, Lock, Preserve)
+            {
+                VEND,   32, 
+                PRD,    32
+            }
+
+            Method (_STA, 0, NotSerialized)  // _STA: Status
+            {
+                Local0 = VEND /* \_SB_.HPET.VEND */
+                Local1 = PRD /* \_SB_.HPET.PRD_ */
+                Local0 >>= 0x10
+                If (((Local0 == Zero) || (Local0 == 0xFFFF)))
+                {
+                    Return (Zero)
+                }
+
+                If (((Local1 == Zero) || (Local1 > 0x05F5E100)))
+                {
+                    Return (Zero)
+                }
+
+                Return (0x0F)
+            }
+
+            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+            {
+                Memory32Fixed (ReadOnly,
+                    0xFED00000,         // Address Base
+                    0x00000400,         // Address Length
+                    )
+            })
+        }
+    }
+
+    Scope (_SB.PCI0)
+    {
+        Device (ISA)
+        {
+            Name (_ADR, 0x001F0000)  // _ADR: Address
+            OperationRegion (PIRQ, PCI_Config, 0x60, 0x0C)
+        }
+    }
+
+    Scope (_SB.PCI0.ISA)
+    {
+        Device (KBD)
+        {
+            Name (_HID, EisaId ("PNP0303") /* IBM Enhanced Keyboard (101/102-key, PS/2 Mouse) */)  // _HID: Hardware ID
+            Name (_STA, 0x0F)  // _STA: Status
+            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+            {
+                IO (Decode16,
+                    0x0060,             // Range Minimum
+                    0x0060,             // Range Maximum
+                    0x01,               // Alignment
+                    0x01,               // Length
+                    )
+                IO (Decode16,
+                    0x0064,             // Range Minimum
+                    0x0064,             // Range Maximum
+                    0x01,               // Alignment
+                    0x01,               // Length
+                    )
+                IRQNoFlags ()
+                    {1}
+            })
+        }
+
+        Device (MOU)
+        {
+            Name (_HID, EisaId ("PNP0F13") /* PS/2 Mouse */)  // _HID: Hardware ID
+            Name (_STA, 0x0F)  // _STA: Status
+            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+            {
+                IRQNoFlags ()
+                    {12}
+            })
+        }
+
+        Device (LPT1)
+        {
+            Name (_HID, EisaId ("PNP0400") /* Standard LPT Parallel Port */)  // _HID: Hardware ID
+            Name (_UID, One)  // _UID: Unique ID
+            Name (_STA, 0x0F)  // _STA: Status
+            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+            {
+                IO (Decode16,
+                    0x0378,             // Range Minimum
+                    0x0378,             // Range Maximum
+                    0x08,               // Alignment
+                    0x08,               // Length
+                    )
+                IRQNoFlags ()
+                    {7}
+            })
+        }
+
+        Device (COM1)
+        {
+            Name (_HID, EisaId ("PNP0501") /* 16550A-compatible COM Serial Port */)  // _HID: Hardware ID
+            Name (_UID, One)  // _UID: Unique ID
+            Name (_STA, 0x0F)  // _STA: Status
+            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+            {
+                IO (Decode16,
+                    0x03F8,             // Range Minimum
+                    0x03F8,             // Range Maximum
+                    0x00,               // Alignment
+                    0x08,               // Length
+                    )
+                IRQNoFlags ()
+                    {4}
+            })
+        }
+
+        Device (RTC)
+        {
+            Name (_HID, EisaId ("PNP0B00") /* AT Real-Time Clock */)  // _HID: Hardware ID
+            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+            {
+                IO (Decode16,
+                    0x0070,             // Range Minimum
+                    0x0070,             // Range Maximum
+                    0x01,               // Alignment
+                    0x08,               // Length
+                    )
+                IRQNoFlags ()
+                    {8}
+            })
+        }
+    }
+
+    Name (PICF, Zero)
+    Method (_PIC, 1, NotSerialized)  // _PIC: Interrupt Model
+    {
+        PICF = Arg0
+    }
+
+    Scope (_SB)
+    {
+        Scope (PCI0)
+        {
+            Name (PRTP, Package (0x80)
+            {
+                Package (0x04)
+                {
+                    0xFFFF, 
+                    Zero, 
+                    LNKE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0xFFFF, 
+                    One, 
+                    LNKF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0xFFFF, 
+                    0x02, 
+                    LNKG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0xFFFF, 
+                    0x03, 
+                    LNKH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0001FFFF, 
+                    Zero, 
+                    LNKF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0001FFFF, 
+                    One, 
+                    LNKG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0001FFFF, 
+                    0x02, 
+                    LNKH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0001FFFF, 
+                    0x03, 
+                    LNKE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0002FFFF, 
+                    Zero, 
+                    LNKG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0002FFFF, 
+                    One, 
+                    LNKH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0002FFFF, 
+                    0x02, 
+                    LNKE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0002FFFF, 
+                    0x03, 
+                    LNKF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0003FFFF, 
+                    Zero, 
+                    LNKH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0003FFFF, 
+                    One, 
+                    LNKE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0003FFFF, 
+                    0x02, 
+                    LNKF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0003FFFF, 
+                    0x03, 
+                    LNKG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0004FFFF, 
+                    Zero, 
+                    LNKE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0004FFFF, 
+                    One, 
+                    LNKF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0004FFFF, 
+                    0x02, 
+                    LNKG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0004FFFF, 
+                    0x03, 
+                    LNKH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0005FFFF, 
+                    Zero, 
+                    LNKF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0005FFFF, 
+                    One, 
+                    LNKG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0005FFFF, 
+                    0x02, 
+                    LNKH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0005FFFF, 
+                    0x03, 
+                    LNKE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0006FFFF, 
+                    Zero, 
+                    LNKG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0006FFFF, 
+                    One, 
+                    LNKH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0006FFFF, 
+                    0x02, 
+                    LNKE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0006FFFF, 
+                    0x03, 
+                    LNKF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0007FFFF, 
+                    Zero, 
+                    LNKH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0007FFFF, 
+                    One, 
+                    LNKE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0007FFFF, 
+                    0x02, 
+                    LNKF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0007FFFF, 
+                    0x03, 
+                    LNKG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0008FFFF, 
+                    Zero, 
+                    LNKE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0008FFFF, 
+                    One, 
+                    LNKF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0008FFFF, 
+                    0x02, 
+                    LNKG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0008FFFF, 
+                    0x03, 
+                    LNKH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0009FFFF, 
+                    Zero, 
+                    LNKF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0009FFFF, 
+                    One, 
+                    LNKG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0009FFFF, 
+                    0x02, 
+                    LNKH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0009FFFF, 
+                    0x03, 
+                    LNKE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000AFFFF, 
+                    Zero, 
+                    LNKG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000AFFFF, 
+                    One, 
+                    LNKH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000AFFFF, 
+                    0x02, 
+                    LNKE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000AFFFF, 
+                    0x03, 
+                    LNKF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000BFFFF, 
+                    Zero, 
+                    LNKH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000BFFFF, 
+                    One, 
+                    LNKE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000BFFFF, 
+                    0x02, 
+                    LNKF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000BFFFF, 
+                    0x03, 
+                    LNKG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000CFFFF, 
+                    Zero, 
+                    LNKE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000CFFFF, 
+                    One, 
+                    LNKF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000CFFFF, 
+                    0x02, 
+                    LNKG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000CFFFF, 
+                    0x03, 
+                    LNKH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000DFFFF, 
+                    Zero, 
+                    LNKF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000DFFFF, 
+                    One, 
+                    LNKG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000DFFFF, 
+                    0x02, 
+                    LNKH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000DFFFF, 
+                    0x03, 
+                    LNKE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000EFFFF, 
+                    Zero, 
+                    LNKG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000EFFFF, 
+                    One, 
+                    LNKH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000EFFFF, 
+                    0x02, 
+                    LNKE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000EFFFF, 
+                    0x03, 
+                    LNKF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000FFFFF, 
+                    Zero, 
+                    LNKH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000FFFFF, 
+                    One, 
+                    LNKE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000FFFFF, 
+                    0x02, 
+                    LNKF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000FFFFF, 
+                    0x03, 
+                    LNKG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0010FFFF, 
+                    Zero, 
+                    LNKE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0010FFFF, 
+                    One, 
+                    LNKF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0010FFFF, 
+                    0x02, 
+                    LNKG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0010FFFF, 
+                    0x03, 
+                    LNKH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0011FFFF, 
+                    Zero, 
+                    LNKF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0011FFFF, 
+                    One, 
+                    LNKG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0011FFFF, 
+                    0x02, 
+                    LNKH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0011FFFF, 
+                    0x03, 
+                    LNKE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0012FFFF, 
+                    Zero, 
+                    LNKG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0012FFFF, 
+                    One, 
+                    LNKH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0012FFFF, 
+                    0x02, 
+                    LNKE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0012FFFF, 
+                    0x03, 
+                    LNKF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0013FFFF, 
+                    Zero, 
+                    LNKH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0013FFFF, 
+                    One, 
+                    LNKE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0013FFFF, 
+                    0x02, 
+                    LNKF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0013FFFF, 
+                    0x03, 
+                    LNKG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0014FFFF, 
+                    Zero, 
+                    LNKE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0014FFFF, 
+                    One, 
+                    LNKF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0014FFFF, 
+                    0x02, 
+                    LNKG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0014FFFF, 
+                    0x03, 
+                    LNKH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0015FFFF, 
+                    Zero, 
+                    LNKF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0015FFFF, 
+                    One, 
+                    LNKG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0015FFFF, 
+                    0x02, 
+                    LNKH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0015FFFF, 
+                    0x03, 
+                    LNKE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0016FFFF, 
+                    Zero, 
+                    LNKG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0016FFFF, 
+                    One, 
+                    LNKH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0016FFFF, 
+                    0x02, 
+                    LNKE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0016FFFF, 
+                    0x03, 
+                    LNKF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0017FFFF, 
+                    Zero, 
+                    LNKH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0017FFFF, 
+                    One, 
+                    LNKE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0017FFFF, 
+                    0x02, 
+                    LNKF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0017FFFF, 
+                    0x03, 
+                    LNKG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0018FFFF, 
+                    Zero, 
+                    LNKE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0018FFFF, 
+                    One, 
+                    LNKF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0018FFFF, 
+                    0x02, 
+                    LNKG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0018FFFF, 
+                    0x03, 
+                    LNKH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0019FFFF, 
+                    Zero, 
+                    LNKA, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0019FFFF, 
+                    One, 
+                    LNKB, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0019FFFF, 
+                    0x02, 
+                    LNKC, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0019FFFF, 
+                    0x03, 
+                    LNKD, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001AFFFF, 
+                    Zero, 
+                    LNKA, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001AFFFF, 
+                    One, 
+                    LNKB, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001AFFFF, 
+                    0x02, 
+                    LNKC, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001AFFFF, 
+                    0x03, 
+                    LNKD, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001BFFFF, 
+                    Zero, 
+                    LNKA, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001BFFFF, 
+                    One, 
+                    LNKB, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001BFFFF, 
+                    0x02, 
+                    LNKC, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001BFFFF, 
+                    0x03, 
+                    LNKD, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001CFFFF, 
+                    Zero, 
+                    LNKA, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001CFFFF, 
+                    One, 
+                    LNKB, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001CFFFF, 
+                    0x02, 
+                    LNKC, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001CFFFF, 
+                    0x03, 
+                    LNKD, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001DFFFF, 
+                    Zero, 
+                    LNKA, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001DFFFF, 
+                    One, 
+                    LNKB, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001DFFFF, 
+                    0x02, 
+                    LNKC, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001DFFFF, 
+                    0x03, 
+                    LNKD, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001EFFFF, 
+                    Zero, 
+                    LNKE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001EFFFF, 
+                    One, 
+                    LNKF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001EFFFF, 
+                    0x02, 
+                    LNKG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001EFFFF, 
+                    0x03, 
+                    LNKH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001FFFFF, 
+                    Zero, 
+                    LNKA, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001FFFFF, 
+                    One, 
+                    LNKB, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001FFFFF, 
+                    0x02, 
+                    LNKC, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001FFFFF, 
+                    0x03, 
+                    LNKD, 
+                    Zero
+                }
+            })
+            Name (PRTA, Package (0x80)
+            {
+                Package (0x04)
+                {
+                    0xFFFF, 
+                    Zero, 
+                    GSIE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0xFFFF, 
+                    One, 
+                    GSIF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0xFFFF, 
+                    0x02, 
+                    GSIG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0xFFFF, 
+                    0x03, 
+                    GSIH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0001FFFF, 
+                    Zero, 
+                    GSIF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0001FFFF, 
+                    One, 
+                    GSIG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0001FFFF, 
+                    0x02, 
+                    GSIH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0001FFFF, 
+                    0x03, 
+                    GSIE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0002FFFF, 
+                    Zero, 
+                    GSIG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0002FFFF, 
+                    One, 
+                    GSIH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0002FFFF, 
+                    0x02, 
+                    GSIE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0002FFFF, 
+                    0x03, 
+                    GSIF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0003FFFF, 
+                    Zero, 
+                    GSIH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0003FFFF, 
+                    One, 
+                    GSIE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0003FFFF, 
+                    0x02, 
+                    GSIF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0003FFFF, 
+                    0x03, 
+                    GSIG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0004FFFF, 
+                    Zero, 
+                    GSIE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0004FFFF, 
+                    One, 
+                    GSIF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0004FFFF, 
+                    0x02, 
+                    GSIG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0004FFFF, 
+                    0x03, 
+                    GSIH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0005FFFF, 
+                    Zero, 
+                    GSIF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0005FFFF, 
+                    One, 
+                    GSIG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0005FFFF, 
+                    0x02, 
+                    GSIH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0005FFFF, 
+                    0x03, 
+                    GSIE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0006FFFF, 
+                    Zero, 
+                    GSIG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0006FFFF, 
+                    One, 
+                    GSIH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0006FFFF, 
+                    0x02, 
+                    GSIE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0006FFFF, 
+                    0x03, 
+                    GSIF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0007FFFF, 
+                    Zero, 
+                    GSIH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0007FFFF, 
+                    One, 
+                    GSIE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0007FFFF, 
+                    0x02, 
+                    GSIF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0007FFFF, 
+                    0x03, 
+                    GSIG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0008FFFF, 
+                    Zero, 
+                    GSIE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0008FFFF, 
+                    One, 
+                    GSIF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0008FFFF, 
+                    0x02, 
+                    GSIG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0008FFFF, 
+                    0x03, 
+                    GSIH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0009FFFF, 
+                    Zero, 
+                    GSIF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0009FFFF, 
+                    One, 
+                    GSIG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0009FFFF, 
+                    0x02, 
+                    GSIH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0009FFFF, 
+                    0x03, 
+                    GSIE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000AFFFF, 
+                    Zero, 
+                    GSIG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000AFFFF, 
+                    One, 
+                    GSIH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000AFFFF, 
+                    0x02, 
+                    GSIE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000AFFFF, 
+                    0x03, 
+                    GSIF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000BFFFF, 
+                    Zero, 
+                    GSIH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000BFFFF, 
+                    One, 
+                    GSIE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000BFFFF, 
+                    0x02, 
+                    GSIF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000BFFFF, 
+                    0x03, 
+                    GSIG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000CFFFF, 
+                    Zero, 
+                    GSIE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000CFFFF, 
+                    One, 
+                    GSIF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000CFFFF, 
+                    0x02, 
+                    GSIG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000CFFFF, 
+                    0x03, 
+                    GSIH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000DFFFF, 
+                    Zero, 
+                    GSIF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000DFFFF, 
+                    One, 
+                    GSIG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000DFFFF, 
+                    0x02, 
+                    GSIH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000DFFFF, 
+                    0x03, 
+                    GSIE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000EFFFF, 
+                    Zero, 
+                    GSIG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000EFFFF, 
+                    One, 
+                    GSIH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000EFFFF, 
+                    0x02, 
+                    GSIE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000EFFFF, 
+                    0x03, 
+                    GSIF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000FFFFF, 
+                    Zero, 
+                    GSIH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000FFFFF, 
+                    One, 
+                    GSIE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000FFFFF, 
+                    0x02, 
+                    GSIF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000FFFFF, 
+                    0x03, 
+                    GSIG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0010FFFF, 
+                    Zero, 
+                    GSIE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0010FFFF, 
+                    One, 
+                    GSIF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0010FFFF, 
+                    0x02, 
+                    GSIG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0010FFFF, 
+                    0x03, 
+                    GSIH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0011FFFF, 
+                    Zero, 
+                    GSIF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0011FFFF, 
+                    One, 
+                    GSIG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0011FFFF, 
+                    0x02, 
+                    GSIH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0011FFFF, 
+                    0x03, 
+                    GSIE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0012FFFF, 
+                    Zero, 
+                    GSIG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0012FFFF, 
+                    One, 
+                    GSIH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0012FFFF, 
+                    0x02, 
+                    GSIE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0012FFFF, 
+                    0x03, 
+                    GSIF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0013FFFF, 
+                    Zero, 
+                    GSIH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0013FFFF, 
+                    One, 
+                    GSIE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0013FFFF, 
+                    0x02, 
+                    GSIF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0013FFFF, 
+                    0x03, 
+                    GSIG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0014FFFF, 
+                    Zero, 
+                    GSIE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0014FFFF, 
+                    One, 
+                    GSIF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0014FFFF, 
+                    0x02, 
+                    GSIG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0014FFFF, 
+                    0x03, 
+                    GSIH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0015FFFF, 
+                    Zero, 
+                    GSIF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0015FFFF, 
+                    One, 
+                    GSIG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0015FFFF, 
+                    0x02, 
+                    GSIH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0015FFFF, 
+                    0x03, 
+                    GSIE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0016FFFF, 
+                    Zero, 
+                    GSIG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0016FFFF, 
+                    One, 
+                    GSIH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0016FFFF, 
+                    0x02, 
+                    GSIE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0016FFFF, 
+                    0x03, 
+                    GSIF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0017FFFF, 
+                    Zero, 
+                    GSIH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0017FFFF, 
+                    One, 
+                    GSIE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0017FFFF, 
+                    0x02, 
+                    GSIF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0017FFFF, 
+                    0x03, 
+                    GSIG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0018FFFF, 
+                    Zero, 
+                    GSIE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0018FFFF, 
+                    One, 
+                    GSIF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0018FFFF, 
+                    0x02, 
+                    GSIG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0018FFFF, 
+                    0x03, 
+                    GSIH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0019FFFF, 
+                    Zero, 
+                    GSIA, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0019FFFF, 
+                    One, 
+                    GSIB, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0019FFFF, 
+                    0x02, 
+                    GSIC, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0019FFFF, 
+                    0x03, 
+                    GSID, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001AFFFF, 
+                    Zero, 
+                    GSIA, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001AFFFF, 
+                    One, 
+                    GSIB, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001AFFFF, 
+                    0x02, 
+                    GSIC, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001AFFFF, 
+                    0x03, 
+                    GSID, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001BFFFF, 
+                    Zero, 
+                    GSIA, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001BFFFF, 
+                    One, 
+                    GSIB, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001BFFFF, 
+                    0x02, 
+                    GSIC, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001BFFFF, 
+                    0x03, 
+                    GSID, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001CFFFF, 
+                    Zero, 
+                    GSIA, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001CFFFF, 
+                    One, 
+                    GSIB, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001CFFFF, 
+                    0x02, 
+                    GSIC, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001CFFFF, 
+                    0x03, 
+                    GSID, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001DFFFF, 
+                    Zero, 
+                    GSIA, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001DFFFF, 
+                    One, 
+                    GSIB, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001DFFFF, 
+                    0x02, 
+                    GSIC, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001DFFFF, 
+                    0x03, 
+                    GSID, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001EFFFF, 
+                    Zero, 
+                    GSIE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001EFFFF, 
+                    One, 
+                    GSIF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001EFFFF, 
+                    0x02, 
+                    GSIG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001EFFFF, 
+                    0x03, 
+                    GSIH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001FFFFF, 
+                    Zero, 
+                    GSIA, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001FFFFF, 
+                    One, 
+                    GSIB, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001FFFFF, 
+                    0x02, 
+                    GSIC, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001FFFFF, 
+                    0x03, 
+                    GSID, 
+                    Zero
+                }
+            })
+            Method (_PRT, 0, NotSerialized)  // _PRT: PCI Routing Table
+            {
+                If ((PICF == Zero))
+                {
+                    Return (PRTP) /* \_SB_.PCI0.PRTP */
+                }
+                Else
+                {
+                    Return (PRTA) /* \_SB_.PCI0.PRTA */
+                }
+            }
+        }
+
+        Field (PCI0.ISA.PIRQ, ByteAcc, NoLock, Preserve)
+        {
+            PRQA,   8, 
+            PRQB,   8, 
+            PRQC,   8, 
+            PRQD,   8, 
+            Offset (0x08), 
+            PRQE,   8, 
+            PRQF,   8, 
+            PRQG,   8, 
+            PRQH,   8
+        }
+
+        Method (IQST, 1, NotSerialized)
+        {
+            If ((0x80 & Arg0))
+            {
+                Return (0x09)
+            }
+
+            Return (0x0B)
+        }
+
+        Method (IQCR, 1, Serialized)
+        {
+            Name (PRR0, ResourceTemplate ()
+            {
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, _Y00)
+                {
+                    0x00000000,
+                }
+            })
+            CreateDWordField (PRR0, \_SB.IQCR._Y00._INT, PRRI)  // _INT: Interrupts
+            PRRI = (Arg0 & 0x0F)
+            Return (PRR0) /* \_SB_.IQCR.PRR0 */
+        }
+
+        Device (LNKA)
+        {
+            Name (_HID, EisaId ("PNP0C0F") /* PCI Interrupt Link Device */)  // _HID: Hardware ID
+            Name (_UID, Zero)  // _UID: Unique ID
+            Name (_PRS, ResourceTemplate ()  // _PRS: Possible Resource Settings
+            {
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, )
+                {
+                    0x00000005,
+                    0x0000000A,
+                    0x0000000B,
+                }
+            })
+            Method (_STA, 0, NotSerialized)  // _STA: Status
+            {
+                Return (IQST (PRQA))
+            }
+
+            Method (_DIS, 0, NotSerialized)  // _DIS: Disable Device
+            {
+                PRQA |= 0x80
+            }
+
+            Method (_CRS, 0, NotSerialized)  // _CRS: Current Resource Settings
+            {
+                Return (IQCR (PRQA))
+            }
+
+            Method (_SRS, 1, NotSerialized)  // _SRS: Set Resource Settings
+            {
+                CreateDWordField (Arg0, 0x05, PRRI)
+                PRQA = PRRI /* \_SB_.LNKA._SRS.PRRI */
+            }
+        }
+
+        Device (LNKB)
+        {
+            Name (_HID, EisaId ("PNP0C0F") /* PCI Interrupt Link Device */)  // _HID: Hardware ID
+            Name (_UID, One)  // _UID: Unique ID
+            Name (_PRS, ResourceTemplate ()  // _PRS: Possible Resource Settings
+            {
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, )
+                {
+                    0x00000005,
+                    0x0000000A,
+                    0x0000000B,
+                }
+            })
+            Method (_STA, 0, NotSerialized)  // _STA: Status
+            {
+                Return (IQST (PRQB))
+            }
+
+            Method (_DIS, 0, NotSerialized)  // _DIS: Disable Device
+            {
+                PRQB |= 0x80
+            }
+
+            Method (_CRS, 0, NotSerialized)  // _CRS: Current Resource Settings
+            {
+                Return (IQCR (PRQB))
+            }
+
+            Method (_SRS, 1, NotSerialized)  // _SRS: Set Resource Settings
+            {
+                CreateDWordField (Arg0, 0x05, PRRI)
+                PRQB = PRRI /* \_SB_.LNKB._SRS.PRRI */
+            }
+        }
+
+        Device (LNKC)
+        {
+            Name (_HID, EisaId ("PNP0C0F") /* PCI Interrupt Link Device */)  // _HID: Hardware ID
+            Name (_UID, 0x02)  // _UID: Unique ID
+            Name (_PRS, ResourceTemplate ()  // _PRS: Possible Resource Settings
+            {
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, )
+                {
+                    0x00000005,
+                    0x0000000A,
+                    0x0000000B,
+                }
+            })
+            Method (_STA, 0, NotSerialized)  // _STA: Status
+            {
+                Return (IQST (PRQC))
+            }
+
+            Method (_DIS, 0, NotSerialized)  // _DIS: Disable Device
+            {
+                PRQC |= 0x80
+            }
+
+            Method (_CRS, 0, NotSerialized)  // _CRS: Current Resource Settings
+            {
+                Return (IQCR (PRQC))
+            }
+
+            Method (_SRS, 1, NotSerialized)  // _SRS: Set Resource Settings
+            {
+                CreateDWordField (Arg0, 0x05, PRRI)
+                PRQC = PRRI /* \_SB_.LNKC._SRS.PRRI */
+            }
+        }
+
+        Device (LNKD)
+        {
+            Name (_HID, EisaId ("PNP0C0F") /* PCI Interrupt Link Device */)  // _HID: Hardware ID
+            Name (_UID, 0x03)  // _UID: Unique ID
+            Name (_PRS, ResourceTemplate ()  // _PRS: Possible Resource Settings
+            {
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, )
+                {
+                    0x00000005,
+                    0x0000000A,
+                    0x0000000B,
+                }
+            })
+            Method (_STA, 0, NotSerialized)  // _STA: Status
+            {
+                Return (IQST (PRQD))
+            }
+
+            Method (_DIS, 0, NotSerialized)  // _DIS: Disable Device
+            {
+                PRQD |= 0x80
+            }
+
+            Method (_CRS, 0, NotSerialized)  // _CRS: Current Resource Settings
+            {
+                Return (IQCR (PRQD))
+            }
+
+            Method (_SRS, 1, NotSerialized)  // _SRS: Set Resource Settings
+            {
+                CreateDWordField (Arg0, 0x05, PRRI)
+                PRQD = PRRI /* \_SB_.LNKD._SRS.PRRI */
+            }
+        }
+
+        Device (LNKE)
+        {
+            Name (_HID, EisaId ("PNP0C0F") /* PCI Interrupt Link Device */)  // _HID: Hardware ID
+            Name (_UID, 0x04)  // _UID: Unique ID
+            Name (_PRS, ResourceTemplate ()  // _PRS: Possible Resource Settings
+            {
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, )
+                {
+                    0x00000005,
+                    0x0000000A,
+                    0x0000000B,
+                }
+            })
+            Method (_STA, 0, NotSerialized)  // _STA: Status
+            {
+                Return (IQST (PRQE))
+            }
+
+            Method (_DIS, 0, NotSerialized)  // _DIS: Disable Device
+            {
+                PRQE |= 0x80
+            }
+
+            Method (_CRS, 0, NotSerialized)  // _CRS: Current Resource Settings
+            {
+                Return (IQCR (PRQE))
+            }
+
+            Method (_SRS, 1, NotSerialized)  // _SRS: Set Resource Settings
+            {
+                CreateDWordField (Arg0, 0x05, PRRI)
+                PRQE = PRRI /* \_SB_.LNKE._SRS.PRRI */
+            }
+        }
+
+        Device (LNKF)
+        {
+            Name (_HID, EisaId ("PNP0C0F") /* PCI Interrupt Link Device */)  // _HID: Hardware ID
+            Name (_UID, 0x05)  // _UID: Unique ID
+            Name (_PRS, ResourceTemplate ()  // _PRS: Possible Resource Settings
+            {
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, )
+                {
+                    0x00000005,
+                    0x0000000A,
+                    0x0000000B,
+                }
+            })
+            Method (_STA, 0, NotSerialized)  // _STA: Status
+            {
+                Return (IQST (PRQF))
+            }
+
+            Method (_DIS, 0, NotSerialized)  // _DIS: Disable Device
+            {
+                PRQF |= 0x80
+            }
+
+            Method (_CRS, 0, NotSerialized)  // _CRS: Current Resource Settings
+            {
+                Return (IQCR (PRQF))
+            }
+
+            Method (_SRS, 1, NotSerialized)  // _SRS: Set Resource Settings
+            {
+                CreateDWordField (Arg0, 0x05, PRRI)
+                PRQF = PRRI /* \_SB_.LNKF._SRS.PRRI */
+            }
+        }
+
+        Device (LNKG)
+        {
+            Name (_HID, EisaId ("PNP0C0F") /* PCI Interrupt Link Device */)  // _HID: Hardware ID
+            Name (_UID, 0x06)  // _UID: Unique ID
+            Name (_PRS, ResourceTemplate ()  // _PRS: Possible Resource Settings
+            {
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, )
+                {
+                    0x00000005,
+                    0x0000000A,
+                    0x0000000B,
+                }
+            })
+            Method (_STA, 0, NotSerialized)  // _STA: Status
+            {
+                Return (IQST (PRQG))
+            }
+
+            Method (_DIS, 0, NotSerialized)  // _DIS: Disable Device
+            {
+                PRQG |= 0x80
+            }
+
+            Method (_CRS, 0, NotSerialized)  // _CRS: Current Resource Settings
+            {
+                Return (IQCR (PRQG))
+            }
+
+            Method (_SRS, 1, NotSerialized)  // _SRS: Set Resource Settings
+            {
+                CreateDWordField (Arg0, 0x05, PRRI)
+                PRQG = PRRI /* \_SB_.LNKG._SRS.PRRI */
+            }
+        }
+
+        Device (LNKH)
+        {
+            Name (_HID, EisaId ("PNP0C0F") /* PCI Interrupt Link Device */)  // _HID: Hardware ID
+            Name (_UID, 0x07)  // _UID: Unique ID
+            Name (_PRS, ResourceTemplate ()  // _PRS: Possible Resource Settings
+            {
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, )
+                {
+                    0x00000005,
+                    0x0000000A,
+                    0x0000000B,
+                }
+            })
+            Method (_STA, 0, NotSerialized)  // _STA: Status
+            {
+                Return (IQST (PRQH))
+            }
+
+            Method (_DIS, 0, NotSerialized)  // _DIS: Disable Device
+            {
+                PRQH |= 0x80
+            }
+
+            Method (_CRS, 0, NotSerialized)  // _CRS: Current Resource Settings
+            {
+                Return (IQCR (PRQH))
+            }
+
+            Method (_SRS, 1, NotSerialized)  // _SRS: Set Resource Settings
+            {
+                CreateDWordField (Arg0, 0x05, PRRI)
+                PRQH = PRRI /* \_SB_.LNKH._SRS.PRRI */
+            }
+        }
+
+        Device (GSIA)
+        {
+            Name (_HID, EisaId ("PNP0C0F") /* PCI Interrupt Link Device */)  // _HID: Hardware ID
+            Name (_UID, 0x10)  // _UID: Unique ID
+            Name (_PRS, ResourceTemplate ()  // _PRS: Possible Resource Settings
+            {
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, )
+                {
+                    0x00000010,
+                }
+            })
+            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+            {
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, )
+                {
+                    0x00000010,
+                }
+            })
+            Method (_DIS, 0, NotSerialized)  // _DIS: Disable Device
+            {
+            }
+
+            Method (_SRS, 1, NotSerialized)  // _SRS: Set Resource Settings
+            {
+            }
+        }
+
+        Device (GSIB)
+        {
+            Name (_HID, EisaId ("PNP0C0F") /* PCI Interrupt Link Device */)  // _HID: Hardware ID
+            Name (_UID, 0x11)  // _UID: Unique ID
+            Name (_PRS, ResourceTemplate ()  // _PRS: Possible Resource Settings
+            {
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, )
+                {
+                    0x00000011,
+                }
+            })
+            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+            {
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, )
+                {
+                    0x00000011,
+                }
+            })
+            Method (_DIS, 0, NotSerialized)  // _DIS: Disable Device
+            {
+            }
+
+            Method (_SRS, 1, NotSerialized)  // _SRS: Set Resource Settings
+            {
+            }
+        }
+
+        Device (GSIC)
+        {
+            Name (_HID, EisaId ("PNP0C0F") /* PCI Interrupt Link Device */)  // _HID: Hardware ID
+            Name (_UID, 0x12)  // _UID: Unique ID
+            Name (_PRS, ResourceTemplate ()  // _PRS: Possible Resource Settings
+            {
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, )
+                {
+                    0x00000012,
+                }
+            })
+            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+            {
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, )
+                {
+                    0x00000012,
+                }
+            })
+            Method (_DIS, 0, NotSerialized)  // _DIS: Disable Device
+            {
+            }
+
+            Method (_SRS, 1, NotSerialized)  // _SRS: Set Resource Settings
+            {
+            }
+        }
+
+        Device (GSID)
+        {
+            Name (_HID, EisaId ("PNP0C0F") /* PCI Interrupt Link Device */)  // _HID: Hardware ID
+            Name (_UID, 0x13)  // _UID: Unique ID
+            Name (_PRS, ResourceTemplate ()  // _PRS: Possible Resource Settings
+            {
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, )
+                {
+                    0x00000013,
+                }
+            })
+            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+            {
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, )
+                {
+                    0x00000013,
+                }
+            })
+            Method (_DIS, 0, NotSerialized)  // _DIS: Disable Device
+            {
+            }
+
+            Method (_SRS, 1, NotSerialized)  // _SRS: Set Resource Settings
+            {
+            }
+        }
+
+        Device (GSIE)
+        {
+            Name (_HID, EisaId ("PNP0C0F") /* PCI Interrupt Link Device */)  // _HID: Hardware ID
+            Name (_UID, 0x14)  // _UID: Unique ID
+            Name (_PRS, ResourceTemplate ()  // _PRS: Possible Resource Settings
+            {
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, )
+                {
+                    0x00000014,
+                }
+            })
+            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+            {
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, )
+                {
+                    0x00000014,
+                }
+            })
+            Method (_DIS, 0, NotSerialized)  // _DIS: Disable Device
+            {
+            }
+
+            Method (_SRS, 1, NotSerialized)  // _SRS: Set Resource Settings
+            {
+            }
+        }
+
+        Device (GSIF)
+        {
+            Name (_HID, EisaId ("PNP0C0F") /* PCI Interrupt Link Device */)  // _HID: Hardware ID
+            Name (_UID, 0x15)  // _UID: Unique ID
+            Name (_PRS, ResourceTemplate ()  // _PRS: Possible Resource Settings
+            {
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, )
+                {
+                    0x00000015,
+                }
+            })
+            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+            {
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, )
+                {
+                    0x00000015,
+                }
+            })
+            Method (_DIS, 0, NotSerialized)  // _DIS: Disable Device
+            {
+            }
+
+            Method (_SRS, 1, NotSerialized)  // _SRS: Set Resource Settings
+            {
+            }
+        }
+
+        Device (GSIG)
+        {
+            Name (_HID, EisaId ("PNP0C0F") /* PCI Interrupt Link Device */)  // _HID: Hardware ID
+            Name (_UID, 0x16)  // _UID: Unique ID
+            Name (_PRS, ResourceTemplate ()  // _PRS: Possible Resource Settings
+            {
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, )
+                {
+                    0x00000016,
+                }
+            })
+            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+            {
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, )
+                {
+                    0x00000016,
+                }
+            })
+            Method (_DIS, 0, NotSerialized)  // _DIS: Disable Device
+            {
+            }
+
+            Method (_SRS, 1, NotSerialized)  // _SRS: Set Resource Settings
+            {
+            }
+        }
+
+        Device (GSIH)
+        {
+            Name (_HID, EisaId ("PNP0C0F") /* PCI Interrupt Link Device */)  // _HID: Hardware ID
+            Name (_UID, 0x17)  // _UID: Unique ID
+            Name (_PRS, ResourceTemplate ()  // _PRS: Possible Resource Settings
+            {
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, )
+                {
+                    0x00000017,
+                }
+            })
+            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+            {
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, )
+                {
+                    0x00000017,
+                }
+            })
+            Method (_DIS, 0, NotSerialized)  // _DIS: Disable Device
+            {
+            }
+
+            Method (_SRS, 1, NotSerialized)  // _SRS: Set Resource Settings
+            {
+            }
+        }
+    }
+
+    Scope (_SB.PCI0)
+    {
+        Device (SMB0)
+        {
+            Name (_ADR, 0x001F0003)  // _ADR: Address
+        }
+    }
+
+    Scope (_SB)
+    {
+        Device (\_SB.PCI0.PRES)
+        {
+            Name (_HID, EisaId ("PNP0A06") /* Generic Container Device */)  // _HID: Hardware ID
+            Name (_UID, "CPU Hotplug resources")  // _UID: Unique ID
+            Mutex (CPLK, 0x00)
+            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+            {
+                IO (Decode16,
+                    0x0CD8,             // Range Minimum
+                    0x0CD8,             // Range Maximum
+                    0x01,               // Alignment
+                    0x0C,               // Length
+                    )
+            })
+            OperationRegion (PRST, SystemIO, 0x0CD8, 0x0C)
+            Field (PRST, ByteAcc, NoLock, WriteAsZeros)
+            {
+                Offset (0x04), 
+                CPEN,   1, 
+                CINS,   1, 
+                CRMV,   1, 
+                CEJ0,   1, 
+                Offset (0x05), 
+                CCMD,   8
+            }
+
+            Field (PRST, DWordAcc, NoLock, Preserve)
+            {
+                CSEL,   32, 
+                Offset (0x08), 
+                CDAT,   32
+            }
+
+            Method (_INI, 0, Serialized)  // _INI: Initialize
+            {
+                CSEL = Zero
+            }
+        }
+
+        Device (\_SB.CPUS)
+        {
+            Name (_HID, "ACPI0010" /* Processor Container Device */)  // _HID: Hardware ID
+            Name (_CID, EisaId ("PNP0A05") /* Generic Container Device */)  // _CID: Compatible ID
+            Method (CTFY, 2, NotSerialized)
+            {
+                If ((Arg0 == Zero))
+                {
+                    Notify (C000, Arg1)
+                }
+            }
+
+            Method (CSTA, 1, Serialized)
+            {
+                Acquire (\_SB.PCI0.PRES.CPLK, 0xFFFF)
+                \_SB.PCI0.PRES.CSEL = Arg0
+                Local0 = Zero
+                If ((\_SB.PCI0.PRES.CPEN == One))
+                {
+                    Local0 = 0x0F
+                }
+
+                Release (\_SB.PCI0.PRES.CPLK)
+                Return (Local0)
+            }
+
+            Method (CEJ0, 1, Serialized)
+            {
+                Acquire (\_SB.PCI0.PRES.CPLK, 0xFFFF)
+                \_SB.PCI0.PRES.CSEL = Arg0
+                \_SB.PCI0.PRES.CEJ0 = One
+                Release (\_SB.PCI0.PRES.CPLK)
+            }
+
+            Method (CSCN, 0, Serialized)
+            {
+                Acquire (\_SB.PCI0.PRES.CPLK, 0xFFFF)
+                Name (CNEW, Package (0xFF){})
+                Local3 = Zero
+                Local4 = One
+                While ((Local4 == One))
+                {
+                    Local4 = Zero
+                    Local0 = One
+                    Local1 = Zero
+                    While (((Local0 == One) && (Local3 < One)))
+                    {
+                        Local0 = Zero
+                        \_SB.PCI0.PRES.CSEL = Local3
+                        \_SB.PCI0.PRES.CCMD = Zero
+                        If ((\_SB.PCI0.PRES.CDAT < Local3))
+                        {
+                            Break
+                        }
+
+                        If ((Local1 == 0xFF))
+                        {
+                            Local4 = One
+                            Break
+                        }
+
+                        Local3 = \_SB.PCI0.PRES.CDAT
+                        If ((\_SB.PCI0.PRES.CINS == One))
+                        {
+                            CNEW [Local1] = Local3
+                            Local1++
+                            Local0 = One
+                        }
+                        ElseIf ((\_SB.PCI0.PRES.CRMV == One))
+                        {
+                            CTFY (Local3, 0x03)
+                            \_SB.PCI0.PRES.CRMV = One
+                            Local0 = One
+                        }
+
+                        Local3++
+                    }
+
+                    Local2 = Zero
+                    While ((Local2 < Local1))
+                    {
+                        Local3 = DerefOf (CNEW [Local2])
+                        CTFY (Local3, One)
+                        Debug = Local3
+                        \_SB.PCI0.PRES.CSEL = Local3
+                        \_SB.PCI0.PRES.CINS = One
+                        Local2++
+                    }
+                }
+
+                Release (\_SB.PCI0.PRES.CPLK)
+            }
+
+            Method (COST, 4, Serialized)
+            {
+                Acquire (\_SB.PCI0.PRES.CPLK, 0xFFFF)
+                \_SB.PCI0.PRES.CSEL = Arg0
+                \_SB.PCI0.PRES.CCMD = One
+                \_SB.PCI0.PRES.CDAT = Arg1
+                \_SB.PCI0.PRES.CCMD = 0x02
+                \_SB.PCI0.PRES.CDAT = Arg2
+                Release (\_SB.PCI0.PRES.CPLK)
+            }
+
+            Processor (C000, 0x00, 0x00000000, 0x00)
+            {
+                Method (_STA, 0, Serialized)  // _STA: Status
+                {
+                    Return (CSTA (Zero))
+                }
+
+                Name (_MAT, Buffer (0x08)  // _MAT: Multiple APIC Table Entry
+                {
+                     0x00, 0x08, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00   // ........
+                })
+                Method (_OST, 3, Serialized)  // _OST: OSPM Status Indication
+                {
+                    COST (Zero, Arg0, Arg1, Arg2)
+                }
+            }
+        }
+    }
+
+    Method (\_GPE._E02, 0, NotSerialized)  // _Exx: Edge-Triggered GPE, xx=0x00-0xFF
+    {
+        \_SB.CPUS.CSCN ()
+    }
+
+    Scope (_GPE)
+    {
+        Name (_HID, "ACPI0006" /* GPE Block Device */)  // _HID: Hardware ID
+    }
+
+    Scope (\_SB.PCI0)
+    {
+        Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+        {
+            WordBusNumber (ResourceProducer, MinFixed, MaxFixed, PosDecode,
+                0x0000,             // Granularity
+                0x0000,             // Range Minimum
+                0x00FF,             // Range Maximum
+                0x0000,             // Translation Offset
+                0x0100,             // Length
+                ,, )
+            IO (Decode16,
+                0x0CF8,             // Range Minimum
+                0x0CF8,             // Range Maximum
+                0x01,               // Alignment
+                0x08,               // Length
+                )
+            WordIO (ResourceProducer, MinFixed, MaxFixed, PosDecode, EntireRange,
+                0x0000,             // Granularity
+                0x0000,             // Range Minimum
+                0x0CF7,             // Range Maximum
+                0x0000,             // Translation Offset
+                0x0CF8,             // Length
+                ,, , TypeStatic, DenseTranslation)
+            WordIO (ResourceProducer, MinFixed, MaxFixed, PosDecode, EntireRange,
+                0x0000,             // Granularity
+                0x0D00,             // Range Minimum
+                0xFFFF,             // Range Maximum
+                0x0000,             // Translation Offset
+                0xF300,             // Length
+                ,, , TypeStatic, DenseTranslation)
+            DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, Cacheable, ReadWrite,
+                0x00000000,         // Granularity
+                0x000A0000,         // Range Minimum
+                0x000BFFFF,         // Range Maximum
+                0x00000000,         // Translation Offset
+                0x00020000,         // Length
+                ,, , AddressRangeMemory, TypeStatic)
+            DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, NonCacheable, ReadWrite,
+                0x00000000,         // Granularity
+                0x08000000,         // Range Minimum
+                0xAFFFFFFF,         // Range Maximum
+                0x00000000,         // Translation Offset
+                0xA8000000,         // Length
+                ,, , AddressRangeMemory, TypeStatic)
+            DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, NonCacheable, ReadWrite,
+                0x00000000,         // Granularity
+                0xC0000000,         // Range Minimum
+                0xFEBFFFFF,         // Range Maximum
+                0x00000000,         // Translation Offset
+                0x3EC00000,         // Length
+                ,, , AddressRangeMemory, TypeStatic)
+            QWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, Cacheable, ReadWrite,
+                0x0000000000000000, // Granularity
+                0x0000000100000000, // Range Minimum
+                0x00000008FFFFFFFF, // Range Maximum
+                0x0000000000000000, // Translation Offset
+                0x0000000800000000, // Length
+                ,, , AddressRangeMemory, TypeStatic)
+            Memory32Fixed (ReadWrite,
+                0xFED40000,         // Address Base
+                0x00005000,         // Address Length
+                )
+        })
+        Device (GPE0)
+        {
+            Name (_HID, "PNP0A06" /* Generic Container Device */)  // _HID: Hardware ID
+            Name (_UID, "GPE0 resources")  // _UID: Unique ID
+            Name (_STA, 0x0B)  // _STA: Status
+            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+            {
+                IO (Decode16,
+                    0x0620,             // Range Minimum
+                    0x0620,             // Range Maximum
+                    0x01,               // Alignment
+                    0x10,               // Length
+                    )
+            })
+        }
+    }
+
+    Scope (\)
+    {
+        Name (_S3, Package (0x04)  // _S3_: S3 System State
+        {
+            One, 
+            One, 
+            Zero, 
+            Zero
+        })
+        Name (_S4, Package (0x04)  // _S4_: S4 System State
+        {
+            0x02, 
+            0x02, 
+            Zero, 
+            Zero
+        })
+        Name (_S5, Package (0x04)  // _S5_: S5 System State
+        {
+            Zero, 
+            Zero, 
+            Zero, 
+            Zero
+        })
+    }
+
+    Scope (\_SB.PCI0)
+    {
+        Device (FWCF)
+        {
+            Name (_HID, "QEMU0002")  // _HID: Hardware ID
+            Name (_STA, 0x0B)  // _STA: Status
+            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+            {
+                IO (Decode16,
+                    0x0510,             // Range Minimum
+                    0x0510,             // Range Maximum
+                    0x01,               // Alignment
+                    0x0C,               // Length
+                    )
+            })
+        }
+    }
+
+    Scope (\_SB)
+    {
+        Scope (PCI0)
+        {
+            Device (S00)
+            {
+                Name (_ADR, Zero)  // _ADR: Address
+            }
+
+            Device (S08)
+            {
+                Name (_ADR, 0x00010000)  // _ADR: Address
+                Method (_S1D, 0, NotSerialized)  // _S1D: S1 Device State
+                {
+                    Return (Zero)
+                }
+
+                Method (_S2D, 0, NotSerialized)  // _S2D: S2 Device State
+                {
+                    Return (Zero)
+                }
+
+                Method (_S3D, 0, NotSerialized)  // _S3D: S3 Device State
+                {
+                    Return (Zero)
+                }
+            }
+
+            Device (TPM)
+            {
+                Name (_HID, "MSFT0101" /* TPM 2.0 Security Device */)  // _HID: Hardware ID
+                Name (_STA, 0x0F)  // _STA: Status
+                Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+                {
+                    Memory32Fixed (ReadWrite,
+                        0xFED40000,         // Address Base
+                        0x00005000,         // Address Length
+                        )
+                })
+                OperationRegion (TPP2, SystemMemory, 0xFED45100, 0x5A)
+                Field (TPP2, AnyAcc, NoLock, Preserve)
+                {
+                    PPIN,   8, 
+                    PPIP,   32, 
+                    PPRP,   32, 
+                    PPRQ,   32, 
+                    PPRM,   32, 
+                    LPPR,   32
+                }
+
+                OperationRegion (TPP3, SystemMemory, 0xFED4515A, One)
+                Field (TPP3, ByteAcc, NoLock, Preserve)
+                {
+                    MOVV,   8
+                }
+
+                Method (TPFN, 1, Serialized)
+                {
+                    If ((Arg0 >= 0x0100))
+                    {
+                        Return (Zero)
+                    }
+
+                    OperationRegion (TPP1, SystemMemory, (0xFED45000 + Arg0), One)
+                    Field (TPP1, ByteAcc, NoLock, Preserve)
+                    {
+                        TPPF,   8
+                    }
+
+                    Return (TPPF) /* \_SB_.PCI0.TPM_.TPFN.TPPF */
+                }
+
+                Name (TPM2, Package (0x02)
+                {
+                    Zero, 
+                    Zero
+                })
+                Name (TPM3, Package (0x03)
+                {
+                    Zero, 
+                    Zero, 
+                    Zero
+                })
+                Method (_DSM, 4, Serialized)  // _DSM: Device-Specific Method
+                {
+                    If ((Arg0 == ToUUID ("3dddfaa6-361b-4eb4-a424-8d10089d1653") /* Physical Presence Interface */))
+                    {
+                        If ((Arg2 == Zero))
+                        {
+                            Return (Buffer (0x02)
+                            {
+                                 0xFF, 0x01                                       // ..
+                            })
+                        }
+
+                        If ((Arg2 == One))
+                        {
+                            Return ("1.3")
+                        }
+
+                        If ((Arg2 == 0x02))
+                        {
+                            Local0 = DerefOf (Arg3 [Zero])
+                            Local1 = TPFN (Local0)
+                            If (((Local1 & 0x07) == Zero))
+                            {
+                                Return (One)
+                            }
+
+                            PPRQ = Local0
+                            PPRM = Zero
+                            Return (Zero)
+                        }
+
+                        If ((Arg2 == 0x03))
+                        {
+                            If ((Arg1 == One))
+                            {
+                                TPM2 [One] = PPRQ /* \_SB_.PCI0.TPM_.PPRQ */
+                                Return (TPM2) /* \_SB_.PCI0.TPM_.TPM2 */
+                            }
+
+                            If ((Arg1 == 0x02))
+                            {
+                                TPM3 [One] = PPRQ /* \_SB_.PCI0.TPM_.PPRQ */
+                                TPM3 [0x02] = PPRM /* \_SB_.PCI0.TPM_.PPRM */
+                                Return (TPM3) /* \_SB_.PCI0.TPM_.TPM3 */
+                            }
+                        }
+
+                        If ((Arg2 == 0x04))
+                        {
+                            Return (0x02)
+                        }
+
+                        If ((Arg2 == 0x05))
+                        {
+                            TPM3 [One] = LPPR /* \_SB_.PCI0.TPM_.LPPR */
+                            TPM3 [0x02] = PPRP /* \_SB_.PCI0.TPM_.PPRP */
+                            Return (TPM3) /* \_SB_.PCI0.TPM_.TPM3 */
+                        }
+
+                        If ((Arg2 == 0x06))
+                        {
+                            Return (0x03)
+                        }
+
+                        If ((Arg2 == 0x07))
+                        {
+                            Local0 = DerefOf (Arg3 [Zero])
+                            Local1 = TPFN (Local0)
+                            If (((Local1 & 0x07) == Zero))
+                            {
+                                Return (One)
+                            }
+
+                            If (((Local1 & 0x07) == 0x02))
+                            {
+                                Return (0x03)
+                            }
+
+                            If ((Arg1 == One))
+                            {
+                                PPRQ = Local0
+                                PPRM = Zero
+                            }
+
+                            If ((Arg1 == 0x02))
+                            {
+                                PPRQ = Local0
+                                PPRM = DerefOf (Arg3 [One])
+                            }
+
+                            Return (Zero)
+                        }
+
+                        If ((Arg2 == 0x08))
+                        {
+                            Local0 = DerefOf (Arg3 [Zero])
+                            Local1 = TPFN (Local0)
+                            Return ((Local1 & 0x07))
+                        }
+
+                        Return (Buffer (One)
+                        {
+                             0x00                                             // .
+                        })
+                    }
+
+                    If ((Arg0 == ToUUID ("376054ed-cc13-4675-901c-4756d7f2d45d")))
+                    {
+                        If ((Arg2 == Zero))
+                        {
+                            Return (Buffer (One)
+                            {
+                                 0x03                                             // .
+                            })
+                        }
+
+                        If ((Arg2 == One))
+                        {
+                            Local0 = DerefOf (Arg3 [Zero])
+                            MOVV = Local0
+                            Return (Zero)
+                        }
+                    }
+                }
+            }
+        }
+    }
+}
+
diff --git a/tests/data/acpi/q35/DSDT.ipmibt b/tests/data/acpi/q35/DSDT.ipmibt
index 9a1b635dab776fb25e378a00e6ca0cadf9902c25..a650c3041ab9d6688eda843a6a2ab418e1a7ce9b 100644
GIT binary patch
delta 33
ocmX?ZyWf_}CD<iozZ?StW7tNnd^t`xmYDcpr+5Lo$<1=M0IFIEcK`qY

delta 42
xcmdmQd)$`GCD<k8xEuom<LixF`Ep!-EHUxHPVoY6ER&n$Y}rNF0-XIq7yuRF3w{6q

diff --git a/tests/data/acpi/q35/DSDT.ipmibt.dsl b/tests/data/acpi/q35/DSDT.ipmibt.dsl
new file mode 100644
index 0000000000..63c1140a61
--- /dev/null
+++ b/tests/data/acpi/q35/DSDT.ipmibt.dsl
@@ -0,0 +1,3156 @@ 
+/*
+ * Intel ACPI Component Architecture
+ * AML/ASL+ Disassembler version 20190509 (64-bit version)
+ * Copyright (c) 2000 - 2019 Intel Corporation
+ * 
+ * Disassembling to symbolic ASL+ operators
+ *
+ * Disassembly of tests/data/acpi/q35/DSDT.ipmibt, Tue Aug  4 11:14:15 2020
+ *
+ * Original Table Header:
+ *     Signature        "DSDT"
+ *     Length           0x00001E49 (7753)
+ *     Revision         0x01 **** 32-bit table (V1), no 64-bit math support
+ *     Checksum         0xDF
+ *     OEM ID           "BOCHS "
+ *     OEM Table ID     "BXPCDSDT"
+ *     OEM Revision     0x00000001 (1)
+ *     Compiler ID      "BXPC"
+ *     Compiler Version 0x00000001 (1)
+ */
+DefinitionBlock ("", "DSDT", 1, "BOCHS ", "BXPCDSDT", 0x00000001)
+{
+    Scope (\)
+    {
+        OperationRegion (DBG, SystemIO, 0x0402, One)
+        Field (DBG, ByteAcc, NoLock, Preserve)
+        {
+            DBGB,   8
+        }
+
+        Method (DBUG, 1, NotSerialized)
+        {
+            ToHexString (Arg0, Local0)
+            ToBuffer (Local0, Local0)
+            Local1 = (SizeOf (Local0) - One)
+            Local2 = Zero
+            While ((Local2 < Local1))
+            {
+                DBGB = DerefOf (Local0 [Local2])
+                Local2++
+            }
+
+            DBGB = 0x0A
+        }
+    }
+
+    Scope (_SB)
+    {
+        Device (PCI0)
+        {
+            Name (_HID, EisaId ("PNP0A08") /* PCI Express Bus */)  // _HID: Hardware ID
+            Name (_CID, EisaId ("PNP0A03") /* PCI Bus */)  // _CID: Compatible ID
+            Name (_ADR, Zero)  // _ADR: Address
+            Name (_UID, Zero)  // _UID: Unique ID
+            Method (_OSC, 4, NotSerialized)  // _OSC: Operating System Capabilities
+            {
+                CreateDWordField (Arg3, Zero, CDW1)
+                If ((Arg0 == ToUUID ("33db4d5b-1ff7-401c-9657-7441c03dd766") /* PCI Host Bridge Device */))
+                {
+                    CreateDWordField (Arg3, 0x04, CDW2)
+                    CreateDWordField (Arg3, 0x08, CDW3)
+                    Local0 = CDW3 /* \_SB_.PCI0._OSC.CDW3 */
+                    Local0 &= 0x1F
+                    If ((Arg1 != One))
+                    {
+                        CDW1 |= 0x08
+                    }
+
+                    If ((CDW3 != Local0))
+                    {
+                        CDW1 |= 0x10
+                    }
+
+                    CDW3 = Local0
+                }
+                Else
+                {
+                    CDW1 |= 0x04
+                }
+
+                Return (Arg3)
+            }
+        }
+    }
+
+    Scope (_SB)
+    {
+        Device (HPET)
+        {
+            Name (_HID, EisaId ("PNP0103") /* HPET System Timer */)  // _HID: Hardware ID
+            Name (_UID, Zero)  // _UID: Unique ID
+            OperationRegion (HPTM, SystemMemory, 0xFED00000, 0x0400)
+            Field (HPTM, DWordAcc, Lock, Preserve)
+            {
+                VEND,   32, 
+                PRD,    32
+            }
+
+            Method (_STA, 0, NotSerialized)  // _STA: Status
+            {
+                Local0 = VEND /* \_SB_.HPET.VEND */
+                Local1 = PRD /* \_SB_.HPET.PRD_ */
+                Local0 >>= 0x10
+                If (((Local0 == Zero) || (Local0 == 0xFFFF)))
+                {
+                    Return (Zero)
+                }
+
+                If (((Local1 == Zero) || (Local1 > 0x05F5E100)))
+                {
+                    Return (Zero)
+                }
+
+                Return (0x0F)
+            }
+
+            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+            {
+                Memory32Fixed (ReadOnly,
+                    0xFED00000,         // Address Base
+                    0x00000400,         // Address Length
+                    )
+            })
+        }
+    }
+
+    Scope (_SB.PCI0)
+    {
+        Device (ISA)
+        {
+            Name (_ADR, 0x001F0000)  // _ADR: Address
+            OperationRegion (PIRQ, PCI_Config, 0x60, 0x0C)
+        }
+    }
+
+    Scope (_SB.PCI0.ISA)
+    {
+        Device (MI1)
+        {
+            Name (_HID, EisaId ("IPI0001"))  // _HID: Hardware ID
+            Name (_STR, "ipmi_bt")  // _STR: Description String
+            Name (_UID, One)  // _UID: Unique ID
+            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+            {
+                IO (Decode16,
+                    0x00E4,             // Range Minimum
+                    0x00E6,             // Range Maximum
+                    0x01,               // Alignment
+                    0x03,               // Length
+                    )
+                IRQNoFlags ()
+                    {5}
+            })
+            Name (_IFT, 0x03)  // _IFT: IPMI Interface Type
+            Name (_SRV, 0x0200)  // _SRV: IPMI Spec Revision
+        }
+
+        Device (KBD)
+        {
+            Name (_HID, EisaId ("PNP0303") /* IBM Enhanced Keyboard (101/102-key, PS/2 Mouse) */)  // _HID: Hardware ID
+            Name (_STA, 0x0F)  // _STA: Status
+            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+            {
+                IO (Decode16,
+                    0x0060,             // Range Minimum
+                    0x0060,             // Range Maximum
+                    0x01,               // Alignment
+                    0x01,               // Length
+                    )
+                IO (Decode16,
+                    0x0064,             // Range Minimum
+                    0x0064,             // Range Maximum
+                    0x01,               // Alignment
+                    0x01,               // Length
+                    )
+                IRQNoFlags ()
+                    {1}
+            })
+        }
+
+        Device (MOU)
+        {
+            Name (_HID, EisaId ("PNP0F13") /* PS/2 Mouse */)  // _HID: Hardware ID
+            Name (_STA, 0x0F)  // _STA: Status
+            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+            {
+                IRQNoFlags ()
+                    {12}
+            })
+        }
+
+        Device (LPT1)
+        {
+            Name (_HID, EisaId ("PNP0400") /* Standard LPT Parallel Port */)  // _HID: Hardware ID
+            Name (_UID, One)  // _UID: Unique ID
+            Name (_STA, 0x0F)  // _STA: Status
+            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+            {
+                IO (Decode16,
+                    0x0378,             // Range Minimum
+                    0x0378,             // Range Maximum
+                    0x08,               // Alignment
+                    0x08,               // Length
+                    )
+                IRQNoFlags ()
+                    {7}
+            })
+        }
+
+        Device (COM1)
+        {
+            Name (_HID, EisaId ("PNP0501") /* 16550A-compatible COM Serial Port */)  // _HID: Hardware ID
+            Name (_UID, One)  // _UID: Unique ID
+            Name (_STA, 0x0F)  // _STA: Status
+            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+            {
+                IO (Decode16,
+                    0x03F8,             // Range Minimum
+                    0x03F8,             // Range Maximum
+                    0x00,               // Alignment
+                    0x08,               // Length
+                    )
+                IRQNoFlags ()
+                    {4}
+            })
+        }
+
+        Device (RTC)
+        {
+            Name (_HID, EisaId ("PNP0B00") /* AT Real-Time Clock */)  // _HID: Hardware ID
+            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+            {
+                IO (Decode16,
+                    0x0070,             // Range Minimum
+                    0x0070,             // Range Maximum
+                    0x01,               // Alignment
+                    0x08,               // Length
+                    )
+                IRQNoFlags ()
+                    {8}
+            })
+        }
+    }
+
+    Name (PICF, Zero)
+    Method (_PIC, 1, NotSerialized)  // _PIC: Interrupt Model
+    {
+        PICF = Arg0
+    }
+
+    Scope (_SB)
+    {
+        Scope (PCI0)
+        {
+            Name (PRTP, Package (0x80)
+            {
+                Package (0x04)
+                {
+                    0xFFFF, 
+                    Zero, 
+                    LNKE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0xFFFF, 
+                    One, 
+                    LNKF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0xFFFF, 
+                    0x02, 
+                    LNKG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0xFFFF, 
+                    0x03, 
+                    LNKH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0001FFFF, 
+                    Zero, 
+                    LNKF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0001FFFF, 
+                    One, 
+                    LNKG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0001FFFF, 
+                    0x02, 
+                    LNKH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0001FFFF, 
+                    0x03, 
+                    LNKE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0002FFFF, 
+                    Zero, 
+                    LNKG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0002FFFF, 
+                    One, 
+                    LNKH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0002FFFF, 
+                    0x02, 
+                    LNKE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0002FFFF, 
+                    0x03, 
+                    LNKF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0003FFFF, 
+                    Zero, 
+                    LNKH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0003FFFF, 
+                    One, 
+                    LNKE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0003FFFF, 
+                    0x02, 
+                    LNKF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0003FFFF, 
+                    0x03, 
+                    LNKG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0004FFFF, 
+                    Zero, 
+                    LNKE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0004FFFF, 
+                    One, 
+                    LNKF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0004FFFF, 
+                    0x02, 
+                    LNKG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0004FFFF, 
+                    0x03, 
+                    LNKH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0005FFFF, 
+                    Zero, 
+                    LNKF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0005FFFF, 
+                    One, 
+                    LNKG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0005FFFF, 
+                    0x02, 
+                    LNKH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0005FFFF, 
+                    0x03, 
+                    LNKE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0006FFFF, 
+                    Zero, 
+                    LNKG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0006FFFF, 
+                    One, 
+                    LNKH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0006FFFF, 
+                    0x02, 
+                    LNKE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0006FFFF, 
+                    0x03, 
+                    LNKF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0007FFFF, 
+                    Zero, 
+                    LNKH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0007FFFF, 
+                    One, 
+                    LNKE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0007FFFF, 
+                    0x02, 
+                    LNKF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0007FFFF, 
+                    0x03, 
+                    LNKG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0008FFFF, 
+                    Zero, 
+                    LNKE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0008FFFF, 
+                    One, 
+                    LNKF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0008FFFF, 
+                    0x02, 
+                    LNKG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0008FFFF, 
+                    0x03, 
+                    LNKH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0009FFFF, 
+                    Zero, 
+                    LNKF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0009FFFF, 
+                    One, 
+                    LNKG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0009FFFF, 
+                    0x02, 
+                    LNKH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0009FFFF, 
+                    0x03, 
+                    LNKE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000AFFFF, 
+                    Zero, 
+                    LNKG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000AFFFF, 
+                    One, 
+                    LNKH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000AFFFF, 
+                    0x02, 
+                    LNKE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000AFFFF, 
+                    0x03, 
+                    LNKF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000BFFFF, 
+                    Zero, 
+                    LNKH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000BFFFF, 
+                    One, 
+                    LNKE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000BFFFF, 
+                    0x02, 
+                    LNKF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000BFFFF, 
+                    0x03, 
+                    LNKG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000CFFFF, 
+                    Zero, 
+                    LNKE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000CFFFF, 
+                    One, 
+                    LNKF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000CFFFF, 
+                    0x02, 
+                    LNKG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000CFFFF, 
+                    0x03, 
+                    LNKH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000DFFFF, 
+                    Zero, 
+                    LNKF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000DFFFF, 
+                    One, 
+                    LNKG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000DFFFF, 
+                    0x02, 
+                    LNKH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000DFFFF, 
+                    0x03, 
+                    LNKE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000EFFFF, 
+                    Zero, 
+                    LNKG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000EFFFF, 
+                    One, 
+                    LNKH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000EFFFF, 
+                    0x02, 
+                    LNKE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000EFFFF, 
+                    0x03, 
+                    LNKF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000FFFFF, 
+                    Zero, 
+                    LNKH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000FFFFF, 
+                    One, 
+                    LNKE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000FFFFF, 
+                    0x02, 
+                    LNKF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000FFFFF, 
+                    0x03, 
+                    LNKG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0010FFFF, 
+                    Zero, 
+                    LNKE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0010FFFF, 
+                    One, 
+                    LNKF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0010FFFF, 
+                    0x02, 
+                    LNKG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0010FFFF, 
+                    0x03, 
+                    LNKH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0011FFFF, 
+                    Zero, 
+                    LNKF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0011FFFF, 
+                    One, 
+                    LNKG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0011FFFF, 
+                    0x02, 
+                    LNKH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0011FFFF, 
+                    0x03, 
+                    LNKE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0012FFFF, 
+                    Zero, 
+                    LNKG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0012FFFF, 
+                    One, 
+                    LNKH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0012FFFF, 
+                    0x02, 
+                    LNKE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0012FFFF, 
+                    0x03, 
+                    LNKF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0013FFFF, 
+                    Zero, 
+                    LNKH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0013FFFF, 
+                    One, 
+                    LNKE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0013FFFF, 
+                    0x02, 
+                    LNKF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0013FFFF, 
+                    0x03, 
+                    LNKG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0014FFFF, 
+                    Zero, 
+                    LNKE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0014FFFF, 
+                    One, 
+                    LNKF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0014FFFF, 
+                    0x02, 
+                    LNKG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0014FFFF, 
+                    0x03, 
+                    LNKH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0015FFFF, 
+                    Zero, 
+                    LNKF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0015FFFF, 
+                    One, 
+                    LNKG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0015FFFF, 
+                    0x02, 
+                    LNKH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0015FFFF, 
+                    0x03, 
+                    LNKE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0016FFFF, 
+                    Zero, 
+                    LNKG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0016FFFF, 
+                    One, 
+                    LNKH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0016FFFF, 
+                    0x02, 
+                    LNKE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0016FFFF, 
+                    0x03, 
+                    LNKF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0017FFFF, 
+                    Zero, 
+                    LNKH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0017FFFF, 
+                    One, 
+                    LNKE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0017FFFF, 
+                    0x02, 
+                    LNKF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0017FFFF, 
+                    0x03, 
+                    LNKG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0018FFFF, 
+                    Zero, 
+                    LNKE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0018FFFF, 
+                    One, 
+                    LNKF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0018FFFF, 
+                    0x02, 
+                    LNKG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0018FFFF, 
+                    0x03, 
+                    LNKH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0019FFFF, 
+                    Zero, 
+                    LNKA, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0019FFFF, 
+                    One, 
+                    LNKB, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0019FFFF, 
+                    0x02, 
+                    LNKC, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0019FFFF, 
+                    0x03, 
+                    LNKD, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001AFFFF, 
+                    Zero, 
+                    LNKA, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001AFFFF, 
+                    One, 
+                    LNKB, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001AFFFF, 
+                    0x02, 
+                    LNKC, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001AFFFF, 
+                    0x03, 
+                    LNKD, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001BFFFF, 
+                    Zero, 
+                    LNKA, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001BFFFF, 
+                    One, 
+                    LNKB, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001BFFFF, 
+                    0x02, 
+                    LNKC, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001BFFFF, 
+                    0x03, 
+                    LNKD, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001CFFFF, 
+                    Zero, 
+                    LNKA, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001CFFFF, 
+                    One, 
+                    LNKB, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001CFFFF, 
+                    0x02, 
+                    LNKC, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001CFFFF, 
+                    0x03, 
+                    LNKD, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001DFFFF, 
+                    Zero, 
+                    LNKA, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001DFFFF, 
+                    One, 
+                    LNKB, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001DFFFF, 
+                    0x02, 
+                    LNKC, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001DFFFF, 
+                    0x03, 
+                    LNKD, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001EFFFF, 
+                    Zero, 
+                    LNKE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001EFFFF, 
+                    One, 
+                    LNKF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001EFFFF, 
+                    0x02, 
+                    LNKG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001EFFFF, 
+                    0x03, 
+                    LNKH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001FFFFF, 
+                    Zero, 
+                    LNKA, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001FFFFF, 
+                    One, 
+                    LNKB, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001FFFFF, 
+                    0x02, 
+                    LNKC, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001FFFFF, 
+                    0x03, 
+                    LNKD, 
+                    Zero
+                }
+            })
+            Name (PRTA, Package (0x80)
+            {
+                Package (0x04)
+                {
+                    0xFFFF, 
+                    Zero, 
+                    GSIE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0xFFFF, 
+                    One, 
+                    GSIF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0xFFFF, 
+                    0x02, 
+                    GSIG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0xFFFF, 
+                    0x03, 
+                    GSIH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0001FFFF, 
+                    Zero, 
+                    GSIF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0001FFFF, 
+                    One, 
+                    GSIG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0001FFFF, 
+                    0x02, 
+                    GSIH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0001FFFF, 
+                    0x03, 
+                    GSIE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0002FFFF, 
+                    Zero, 
+                    GSIG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0002FFFF, 
+                    One, 
+                    GSIH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0002FFFF, 
+                    0x02, 
+                    GSIE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0002FFFF, 
+                    0x03, 
+                    GSIF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0003FFFF, 
+                    Zero, 
+                    GSIH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0003FFFF, 
+                    One, 
+                    GSIE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0003FFFF, 
+                    0x02, 
+                    GSIF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0003FFFF, 
+                    0x03, 
+                    GSIG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0004FFFF, 
+                    Zero, 
+                    GSIE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0004FFFF, 
+                    One, 
+                    GSIF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0004FFFF, 
+                    0x02, 
+                    GSIG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0004FFFF, 
+                    0x03, 
+                    GSIH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0005FFFF, 
+                    Zero, 
+                    GSIF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0005FFFF, 
+                    One, 
+                    GSIG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0005FFFF, 
+                    0x02, 
+                    GSIH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0005FFFF, 
+                    0x03, 
+                    GSIE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0006FFFF, 
+                    Zero, 
+                    GSIG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0006FFFF, 
+                    One, 
+                    GSIH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0006FFFF, 
+                    0x02, 
+                    GSIE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0006FFFF, 
+                    0x03, 
+                    GSIF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0007FFFF, 
+                    Zero, 
+                    GSIH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0007FFFF, 
+                    One, 
+                    GSIE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0007FFFF, 
+                    0x02, 
+                    GSIF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0007FFFF, 
+                    0x03, 
+                    GSIG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0008FFFF, 
+                    Zero, 
+                    GSIE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0008FFFF, 
+                    One, 
+                    GSIF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0008FFFF, 
+                    0x02, 
+                    GSIG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0008FFFF, 
+                    0x03, 
+                    GSIH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0009FFFF, 
+                    Zero, 
+                    GSIF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0009FFFF, 
+                    One, 
+                    GSIG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0009FFFF, 
+                    0x02, 
+                    GSIH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0009FFFF, 
+                    0x03, 
+                    GSIE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000AFFFF, 
+                    Zero, 
+                    GSIG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000AFFFF, 
+                    One, 
+                    GSIH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000AFFFF, 
+                    0x02, 
+                    GSIE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000AFFFF, 
+                    0x03, 
+                    GSIF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000BFFFF, 
+                    Zero, 
+                    GSIH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000BFFFF, 
+                    One, 
+                    GSIE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000BFFFF, 
+                    0x02, 
+                    GSIF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000BFFFF, 
+                    0x03, 
+                    GSIG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000CFFFF, 
+                    Zero, 
+                    GSIE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000CFFFF, 
+                    One, 
+                    GSIF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000CFFFF, 
+                    0x02, 
+                    GSIG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000CFFFF, 
+                    0x03, 
+                    GSIH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000DFFFF, 
+                    Zero, 
+                    GSIF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000DFFFF, 
+                    One, 
+                    GSIG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000DFFFF, 
+                    0x02, 
+                    GSIH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000DFFFF, 
+                    0x03, 
+                    GSIE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000EFFFF, 
+                    Zero, 
+                    GSIG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000EFFFF, 
+                    One, 
+                    GSIH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000EFFFF, 
+                    0x02, 
+                    GSIE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000EFFFF, 
+                    0x03, 
+                    GSIF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000FFFFF, 
+                    Zero, 
+                    GSIH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000FFFFF, 
+                    One, 
+                    GSIE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000FFFFF, 
+                    0x02, 
+                    GSIF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000FFFFF, 
+                    0x03, 
+                    GSIG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0010FFFF, 
+                    Zero, 
+                    GSIE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0010FFFF, 
+                    One, 
+                    GSIF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0010FFFF, 
+                    0x02, 
+                    GSIG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0010FFFF, 
+                    0x03, 
+                    GSIH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0011FFFF, 
+                    Zero, 
+                    GSIF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0011FFFF, 
+                    One, 
+                    GSIG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0011FFFF, 
+                    0x02, 
+                    GSIH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0011FFFF, 
+                    0x03, 
+                    GSIE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0012FFFF, 
+                    Zero, 
+                    GSIG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0012FFFF, 
+                    One, 
+                    GSIH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0012FFFF, 
+                    0x02, 
+                    GSIE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0012FFFF, 
+                    0x03, 
+                    GSIF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0013FFFF, 
+                    Zero, 
+                    GSIH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0013FFFF, 
+                    One, 
+                    GSIE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0013FFFF, 
+                    0x02, 
+                    GSIF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0013FFFF, 
+                    0x03, 
+                    GSIG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0014FFFF, 
+                    Zero, 
+                    GSIE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0014FFFF, 
+                    One, 
+                    GSIF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0014FFFF, 
+                    0x02, 
+                    GSIG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0014FFFF, 
+                    0x03, 
+                    GSIH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0015FFFF, 
+                    Zero, 
+                    GSIF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0015FFFF, 
+                    One, 
+                    GSIG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0015FFFF, 
+                    0x02, 
+                    GSIH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0015FFFF, 
+                    0x03, 
+                    GSIE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0016FFFF, 
+                    Zero, 
+                    GSIG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0016FFFF, 
+                    One, 
+                    GSIH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0016FFFF, 
+                    0x02, 
+                    GSIE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0016FFFF, 
+                    0x03, 
+                    GSIF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0017FFFF, 
+                    Zero, 
+                    GSIH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0017FFFF, 
+                    One, 
+                    GSIE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0017FFFF, 
+                    0x02, 
+                    GSIF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0017FFFF, 
+                    0x03, 
+                    GSIG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0018FFFF, 
+                    Zero, 
+                    GSIE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0018FFFF, 
+                    One, 
+                    GSIF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0018FFFF, 
+                    0x02, 
+                    GSIG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0018FFFF, 
+                    0x03, 
+                    GSIH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0019FFFF, 
+                    Zero, 
+                    GSIA, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0019FFFF, 
+                    One, 
+                    GSIB, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0019FFFF, 
+                    0x02, 
+                    GSIC, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0019FFFF, 
+                    0x03, 
+                    GSID, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001AFFFF, 
+                    Zero, 
+                    GSIA, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001AFFFF, 
+                    One, 
+                    GSIB, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001AFFFF, 
+                    0x02, 
+                    GSIC, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001AFFFF, 
+                    0x03, 
+                    GSID, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001BFFFF, 
+                    Zero, 
+                    GSIA, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001BFFFF, 
+                    One, 
+                    GSIB, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001BFFFF, 
+                    0x02, 
+                    GSIC, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001BFFFF, 
+                    0x03, 
+                    GSID, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001CFFFF, 
+                    Zero, 
+                    GSIA, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001CFFFF, 
+                    One, 
+                    GSIB, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001CFFFF, 
+                    0x02, 
+                    GSIC, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001CFFFF, 
+                    0x03, 
+                    GSID, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001DFFFF, 
+                    Zero, 
+                    GSIA, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001DFFFF, 
+                    One, 
+                    GSIB, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001DFFFF, 
+                    0x02, 
+                    GSIC, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001DFFFF, 
+                    0x03, 
+                    GSID, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001EFFFF, 
+                    Zero, 
+                    GSIE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001EFFFF, 
+                    One, 
+                    GSIF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001EFFFF, 
+                    0x02, 
+                    GSIG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001EFFFF, 
+                    0x03, 
+                    GSIH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001FFFFF, 
+                    Zero, 
+                    GSIA, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001FFFFF, 
+                    One, 
+                    GSIB, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001FFFFF, 
+                    0x02, 
+                    GSIC, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001FFFFF, 
+                    0x03, 
+                    GSID, 
+                    Zero
+                }
+            })
+            Method (_PRT, 0, NotSerialized)  // _PRT: PCI Routing Table
+            {
+                If ((PICF == Zero))
+                {
+                    Return (PRTP) /* \_SB_.PCI0.PRTP */
+                }
+                Else
+                {
+                    Return (PRTA) /* \_SB_.PCI0.PRTA */
+                }
+            }
+        }
+
+        Field (PCI0.ISA.PIRQ, ByteAcc, NoLock, Preserve)
+        {
+            PRQA,   8, 
+            PRQB,   8, 
+            PRQC,   8, 
+            PRQD,   8, 
+            Offset (0x08), 
+            PRQE,   8, 
+            PRQF,   8, 
+            PRQG,   8, 
+            PRQH,   8
+        }
+
+        Method (IQST, 1, NotSerialized)
+        {
+            If ((0x80 & Arg0))
+            {
+                Return (0x09)
+            }
+
+            Return (0x0B)
+        }
+
+        Method (IQCR, 1, Serialized)
+        {
+            Name (PRR0, ResourceTemplate ()
+            {
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, _Y00)
+                {
+                    0x00000000,
+                }
+            })
+            CreateDWordField (PRR0, \_SB.IQCR._Y00._INT, PRRI)  // _INT: Interrupts
+            PRRI = (Arg0 & 0x0F)
+            Return (PRR0) /* \_SB_.IQCR.PRR0 */
+        }
+
+        Device (LNKA)
+        {
+            Name (_HID, EisaId ("PNP0C0F") /* PCI Interrupt Link Device */)  // _HID: Hardware ID
+            Name (_UID, Zero)  // _UID: Unique ID
+            Name (_PRS, ResourceTemplate ()  // _PRS: Possible Resource Settings
+            {
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, )
+                {
+                    0x00000005,
+                    0x0000000A,
+                    0x0000000B,
+                }
+            })
+            Method (_STA, 0, NotSerialized)  // _STA: Status
+            {
+                Return (IQST (PRQA))
+            }
+
+            Method (_DIS, 0, NotSerialized)  // _DIS: Disable Device
+            {
+                PRQA |= 0x80
+            }
+
+            Method (_CRS, 0, NotSerialized)  // _CRS: Current Resource Settings
+            {
+                Return (IQCR (PRQA))
+            }
+
+            Method (_SRS, 1, NotSerialized)  // _SRS: Set Resource Settings
+            {
+                CreateDWordField (Arg0, 0x05, PRRI)
+                PRQA = PRRI /* \_SB_.LNKA._SRS.PRRI */
+            }
+        }
+
+        Device (LNKB)
+        {
+            Name (_HID, EisaId ("PNP0C0F") /* PCI Interrupt Link Device */)  // _HID: Hardware ID
+            Name (_UID, One)  // _UID: Unique ID
+            Name (_PRS, ResourceTemplate ()  // _PRS: Possible Resource Settings
+            {
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, )
+                {
+                    0x00000005,
+                    0x0000000A,
+                    0x0000000B,
+                }
+            })
+            Method (_STA, 0, NotSerialized)  // _STA: Status
+            {
+                Return (IQST (PRQB))
+            }
+
+            Method (_DIS, 0, NotSerialized)  // _DIS: Disable Device
+            {
+                PRQB |= 0x80
+            }
+
+            Method (_CRS, 0, NotSerialized)  // _CRS: Current Resource Settings
+            {
+                Return (IQCR (PRQB))
+            }
+
+            Method (_SRS, 1, NotSerialized)  // _SRS: Set Resource Settings
+            {
+                CreateDWordField (Arg0, 0x05, PRRI)
+                PRQB = PRRI /* \_SB_.LNKB._SRS.PRRI */
+            }
+        }
+
+        Device (LNKC)
+        {
+            Name (_HID, EisaId ("PNP0C0F") /* PCI Interrupt Link Device */)  // _HID: Hardware ID
+            Name (_UID, 0x02)  // _UID: Unique ID
+            Name (_PRS, ResourceTemplate ()  // _PRS: Possible Resource Settings
+            {
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, )
+                {
+                    0x00000005,
+                    0x0000000A,
+                    0x0000000B,
+                }
+            })
+            Method (_STA, 0, NotSerialized)  // _STA: Status
+            {
+                Return (IQST (PRQC))
+            }
+
+            Method (_DIS, 0, NotSerialized)  // _DIS: Disable Device
+            {
+                PRQC |= 0x80
+            }
+
+            Method (_CRS, 0, NotSerialized)  // _CRS: Current Resource Settings
+            {
+                Return (IQCR (PRQC))
+            }
+
+            Method (_SRS, 1, NotSerialized)  // _SRS: Set Resource Settings
+            {
+                CreateDWordField (Arg0, 0x05, PRRI)
+                PRQC = PRRI /* \_SB_.LNKC._SRS.PRRI */
+            }
+        }
+
+        Device (LNKD)
+        {
+            Name (_HID, EisaId ("PNP0C0F") /* PCI Interrupt Link Device */)  // _HID: Hardware ID
+            Name (_UID, 0x03)  // _UID: Unique ID
+            Name (_PRS, ResourceTemplate ()  // _PRS: Possible Resource Settings
+            {
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, )
+                {
+                    0x00000005,
+                    0x0000000A,
+                    0x0000000B,
+                }
+            })
+            Method (_STA, 0, NotSerialized)  // _STA: Status
+            {
+                Return (IQST (PRQD))
+            }
+
+            Method (_DIS, 0, NotSerialized)  // _DIS: Disable Device
+            {
+                PRQD |= 0x80
+            }
+
+            Method (_CRS, 0, NotSerialized)  // _CRS: Current Resource Settings
+            {
+                Return (IQCR (PRQD))
+            }
+
+            Method (_SRS, 1, NotSerialized)  // _SRS: Set Resource Settings
+            {
+                CreateDWordField (Arg0, 0x05, PRRI)
+                PRQD = PRRI /* \_SB_.LNKD._SRS.PRRI */
+            }
+        }
+
+        Device (LNKE)
+        {
+            Name (_HID, EisaId ("PNP0C0F") /* PCI Interrupt Link Device */)  // _HID: Hardware ID
+            Name (_UID, 0x04)  // _UID: Unique ID
+            Name (_PRS, ResourceTemplate ()  // _PRS: Possible Resource Settings
+            {
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, )
+                {
+                    0x00000005,
+                    0x0000000A,
+                    0x0000000B,
+                }
+            })
+            Method (_STA, 0, NotSerialized)  // _STA: Status
+            {
+                Return (IQST (PRQE))
+            }
+
+            Method (_DIS, 0, NotSerialized)  // _DIS: Disable Device
+            {
+                PRQE |= 0x80
+            }
+
+            Method (_CRS, 0, NotSerialized)  // _CRS: Current Resource Settings
+            {
+                Return (IQCR (PRQE))
+            }
+
+            Method (_SRS, 1, NotSerialized)  // _SRS: Set Resource Settings
+            {
+                CreateDWordField (Arg0, 0x05, PRRI)
+                PRQE = PRRI /* \_SB_.LNKE._SRS.PRRI */
+            }
+        }
+
+        Device (LNKF)
+        {
+            Name (_HID, EisaId ("PNP0C0F") /* PCI Interrupt Link Device */)  // _HID: Hardware ID
+            Name (_UID, 0x05)  // _UID: Unique ID
+            Name (_PRS, ResourceTemplate ()  // _PRS: Possible Resource Settings
+            {
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, )
+                {
+                    0x00000005,
+                    0x0000000A,
+                    0x0000000B,
+                }
+            })
+            Method (_STA, 0, NotSerialized)  // _STA: Status
+            {
+                Return (IQST (PRQF))
+            }
+
+            Method (_DIS, 0, NotSerialized)  // _DIS: Disable Device
+            {
+                PRQF |= 0x80
+            }
+
+            Method (_CRS, 0, NotSerialized)  // _CRS: Current Resource Settings
+            {
+                Return (IQCR (PRQF))
+            }
+
+            Method (_SRS, 1, NotSerialized)  // _SRS: Set Resource Settings
+            {
+                CreateDWordField (Arg0, 0x05, PRRI)
+                PRQF = PRRI /* \_SB_.LNKF._SRS.PRRI */
+            }
+        }
+
+        Device (LNKG)
+        {
+            Name (_HID, EisaId ("PNP0C0F") /* PCI Interrupt Link Device */)  // _HID: Hardware ID
+            Name (_UID, 0x06)  // _UID: Unique ID
+            Name (_PRS, ResourceTemplate ()  // _PRS: Possible Resource Settings
+            {
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, )
+                {
+                    0x00000005,
+                    0x0000000A,
+                    0x0000000B,
+                }
+            })
+            Method (_STA, 0, NotSerialized)  // _STA: Status
+            {
+                Return (IQST (PRQG))
+            }
+
+            Method (_DIS, 0, NotSerialized)  // _DIS: Disable Device
+            {
+                PRQG |= 0x80
+            }
+
+            Method (_CRS, 0, NotSerialized)  // _CRS: Current Resource Settings
+            {
+                Return (IQCR (PRQG))
+            }
+
+            Method (_SRS, 1, NotSerialized)  // _SRS: Set Resource Settings
+            {
+                CreateDWordField (Arg0, 0x05, PRRI)
+                PRQG = PRRI /* \_SB_.LNKG._SRS.PRRI */
+            }
+        }
+
+        Device (LNKH)
+        {
+            Name (_HID, EisaId ("PNP0C0F") /* PCI Interrupt Link Device */)  // _HID: Hardware ID
+            Name (_UID, 0x07)  // _UID: Unique ID
+            Name (_PRS, ResourceTemplate ()  // _PRS: Possible Resource Settings
+            {
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, )
+                {
+                    0x00000005,
+                    0x0000000A,
+                    0x0000000B,
+                }
+            })
+            Method (_STA, 0, NotSerialized)  // _STA: Status
+            {
+                Return (IQST (PRQH))
+            }
+
+            Method (_DIS, 0, NotSerialized)  // _DIS: Disable Device
+            {
+                PRQH |= 0x80
+            }
+
+            Method (_CRS, 0, NotSerialized)  // _CRS: Current Resource Settings
+            {
+                Return (IQCR (PRQH))
+            }
+
+            Method (_SRS, 1, NotSerialized)  // _SRS: Set Resource Settings
+            {
+                CreateDWordField (Arg0, 0x05, PRRI)
+                PRQH = PRRI /* \_SB_.LNKH._SRS.PRRI */
+            }
+        }
+
+        Device (GSIA)
+        {
+            Name (_HID, EisaId ("PNP0C0F") /* PCI Interrupt Link Device */)  // _HID: Hardware ID
+            Name (_UID, 0x10)  // _UID: Unique ID
+            Name (_PRS, ResourceTemplate ()  // _PRS: Possible Resource Settings
+            {
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, )
+                {
+                    0x00000010,
+                }
+            })
+            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+            {
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, )
+                {
+                    0x00000010,
+                }
+            })
+            Method (_DIS, 0, NotSerialized)  // _DIS: Disable Device
+            {
+            }
+
+            Method (_SRS, 1, NotSerialized)  // _SRS: Set Resource Settings
+            {
+            }
+        }
+
+        Device (GSIB)
+        {
+            Name (_HID, EisaId ("PNP0C0F") /* PCI Interrupt Link Device */)  // _HID: Hardware ID
+            Name (_UID, 0x11)  // _UID: Unique ID
+            Name (_PRS, ResourceTemplate ()  // _PRS: Possible Resource Settings
+            {
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, )
+                {
+                    0x00000011,
+                }
+            })
+            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+            {
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, )
+                {
+                    0x00000011,
+                }
+            })
+            Method (_DIS, 0, NotSerialized)  // _DIS: Disable Device
+            {
+            }
+
+            Method (_SRS, 1, NotSerialized)  // _SRS: Set Resource Settings
+            {
+            }
+        }
+
+        Device (GSIC)
+        {
+            Name (_HID, EisaId ("PNP0C0F") /* PCI Interrupt Link Device */)  // _HID: Hardware ID
+            Name (_UID, 0x12)  // _UID: Unique ID
+            Name (_PRS, ResourceTemplate ()  // _PRS: Possible Resource Settings
+            {
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, )
+                {
+                    0x00000012,
+                }
+            })
+            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+            {
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, )
+                {
+                    0x00000012,
+                }
+            })
+            Method (_DIS, 0, NotSerialized)  // _DIS: Disable Device
+            {
+            }
+
+            Method (_SRS, 1, NotSerialized)  // _SRS: Set Resource Settings
+            {
+            }
+        }
+
+        Device (GSID)
+        {
+            Name (_HID, EisaId ("PNP0C0F") /* PCI Interrupt Link Device */)  // _HID: Hardware ID
+            Name (_UID, 0x13)  // _UID: Unique ID
+            Name (_PRS, ResourceTemplate ()  // _PRS: Possible Resource Settings
+            {
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, )
+                {
+                    0x00000013,
+                }
+            })
+            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+            {
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, )
+                {
+                    0x00000013,
+                }
+            })
+            Method (_DIS, 0, NotSerialized)  // _DIS: Disable Device
+            {
+            }
+
+            Method (_SRS, 1, NotSerialized)  // _SRS: Set Resource Settings
+            {
+            }
+        }
+
+        Device (GSIE)
+        {
+            Name (_HID, EisaId ("PNP0C0F") /* PCI Interrupt Link Device */)  // _HID: Hardware ID
+            Name (_UID, 0x14)  // _UID: Unique ID
+            Name (_PRS, ResourceTemplate ()  // _PRS: Possible Resource Settings
+            {
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, )
+                {
+                    0x00000014,
+                }
+            })
+            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+            {
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, )
+                {
+                    0x00000014,
+                }
+            })
+            Method (_DIS, 0, NotSerialized)  // _DIS: Disable Device
+            {
+            }
+
+            Method (_SRS, 1, NotSerialized)  // _SRS: Set Resource Settings
+            {
+            }
+        }
+
+        Device (GSIF)
+        {
+            Name (_HID, EisaId ("PNP0C0F") /* PCI Interrupt Link Device */)  // _HID: Hardware ID
+            Name (_UID, 0x15)  // _UID: Unique ID
+            Name (_PRS, ResourceTemplate ()  // _PRS: Possible Resource Settings
+            {
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, )
+                {
+                    0x00000015,
+                }
+            })
+            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+            {
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, )
+                {
+                    0x00000015,
+                }
+            })
+            Method (_DIS, 0, NotSerialized)  // _DIS: Disable Device
+            {
+            }
+
+            Method (_SRS, 1, NotSerialized)  // _SRS: Set Resource Settings
+            {
+            }
+        }
+
+        Device (GSIG)
+        {
+            Name (_HID, EisaId ("PNP0C0F") /* PCI Interrupt Link Device */)  // _HID: Hardware ID
+            Name (_UID, 0x16)  // _UID: Unique ID
+            Name (_PRS, ResourceTemplate ()  // _PRS: Possible Resource Settings
+            {
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, )
+                {
+                    0x00000016,
+                }
+            })
+            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+            {
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, )
+                {
+                    0x00000016,
+                }
+            })
+            Method (_DIS, 0, NotSerialized)  // _DIS: Disable Device
+            {
+            }
+
+            Method (_SRS, 1, NotSerialized)  // _SRS: Set Resource Settings
+            {
+            }
+        }
+
+        Device (GSIH)
+        {
+            Name (_HID, EisaId ("PNP0C0F") /* PCI Interrupt Link Device */)  // _HID: Hardware ID
+            Name (_UID, 0x17)  // _UID: Unique ID
+            Name (_PRS, ResourceTemplate ()  // _PRS: Possible Resource Settings
+            {
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, )
+                {
+                    0x00000017,
+                }
+            })
+            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+            {
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, )
+                {
+                    0x00000017,
+                }
+            })
+            Method (_DIS, 0, NotSerialized)  // _DIS: Disable Device
+            {
+            }
+
+            Method (_SRS, 1, NotSerialized)  // _SRS: Set Resource Settings
+            {
+            }
+        }
+    }
+
+    Scope (_SB.PCI0)
+    {
+        Device (SMB0)
+        {
+            Name (_ADR, 0x001F0003)  // _ADR: Address
+        }
+    }
+
+    Scope (_SB)
+    {
+        Device (\_SB.PCI0.PRES)
+        {
+            Name (_HID, EisaId ("PNP0A06") /* Generic Container Device */)  // _HID: Hardware ID
+            Name (_UID, "CPU Hotplug resources")  // _UID: Unique ID
+            Mutex (CPLK, 0x00)
+            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+            {
+                IO (Decode16,
+                    0x0CD8,             // Range Minimum
+                    0x0CD8,             // Range Maximum
+                    0x01,               // Alignment
+                    0x0C,               // Length
+                    )
+            })
+            OperationRegion (PRST, SystemIO, 0x0CD8, 0x0C)
+            Field (PRST, ByteAcc, NoLock, WriteAsZeros)
+            {
+                Offset (0x04), 
+                CPEN,   1, 
+                CINS,   1, 
+                CRMV,   1, 
+                CEJ0,   1, 
+                Offset (0x05), 
+                CCMD,   8
+            }
+
+            Field (PRST, DWordAcc, NoLock, Preserve)
+            {
+                CSEL,   32, 
+                Offset (0x08), 
+                CDAT,   32
+            }
+
+            Method (_INI, 0, Serialized)  // _INI: Initialize
+            {
+                CSEL = Zero
+            }
+        }
+
+        Device (\_SB.CPUS)
+        {
+            Name (_HID, "ACPI0010" /* Processor Container Device */)  // _HID: Hardware ID
+            Name (_CID, EisaId ("PNP0A05") /* Generic Container Device */)  // _CID: Compatible ID
+            Method (CTFY, 2, NotSerialized)
+            {
+                If ((Arg0 == Zero))
+                {
+                    Notify (C000, Arg1)
+                }
+            }
+
+            Method (CSTA, 1, Serialized)
+            {
+                Acquire (\_SB.PCI0.PRES.CPLK, 0xFFFF)
+                \_SB.PCI0.PRES.CSEL = Arg0
+                Local0 = Zero
+                If ((\_SB.PCI0.PRES.CPEN == One))
+                {
+                    Local0 = 0x0F
+                }
+
+                Release (\_SB.PCI0.PRES.CPLK)
+                Return (Local0)
+            }
+
+            Method (CEJ0, 1, Serialized)
+            {
+                Acquire (\_SB.PCI0.PRES.CPLK, 0xFFFF)
+                \_SB.PCI0.PRES.CSEL = Arg0
+                \_SB.PCI0.PRES.CEJ0 = One
+                Release (\_SB.PCI0.PRES.CPLK)
+            }
+
+            Method (CSCN, 0, Serialized)
+            {
+                Acquire (\_SB.PCI0.PRES.CPLK, 0xFFFF)
+                Local0 = One
+                While ((Local0 == One))
+                {
+                    Local0 = Zero
+                    \_SB.PCI0.PRES.CCMD = Zero
+                    If ((\_SB.PCI0.PRES.CINS == One))
+                    {
+                        CTFY (\_SB.PCI0.PRES.CDAT, One)
+                        \_SB.PCI0.PRES.CINS = One
+                        Local0 = One
+                    }
+                    ElseIf ((\_SB.PCI0.PRES.CRMV == One))
+                    {
+                        CTFY (\_SB.PCI0.PRES.CDAT, 0x03)
+                        \_SB.PCI0.PRES.CRMV = One
+                        Local0 = One
+                    }
+                }
+
+                Release (\_SB.PCI0.PRES.CPLK)
+            }
+
+            Method (COST, 4, Serialized)
+            {
+                Acquire (\_SB.PCI0.PRES.CPLK, 0xFFFF)
+                \_SB.PCI0.PRES.CSEL = Arg0
+                \_SB.PCI0.PRES.CCMD = One
+                \_SB.PCI0.PRES.CDAT = Arg1
+                \_SB.PCI0.PRES.CCMD = 0x02
+                \_SB.PCI0.PRES.CDAT = Arg2
+                Release (\_SB.PCI0.PRES.CPLK)
+            }
+
+            Processor (C000, 0x00, 0x00000000, 0x00)
+            {
+                Method (_STA, 0, Serialized)  // _STA: Status
+                {
+                    Return (CSTA (Zero))
+                }
+
+                Name (_MAT, Buffer (0x08)  // _MAT: Multiple APIC Table Entry
+                {
+                     0x00, 0x08, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00   // ........
+                })
+                Method (_OST, 3, Serialized)  // _OST: OSPM Status Indication
+                {
+                    COST (Zero, Arg0, Arg1, Arg2)
+                }
+            }
+        }
+    }
+
+    Method (\_GPE._E02, 0, NotSerialized)  // _Exx: Edge-Triggered GPE, xx=0x00-0xFF
+    {
+        \_SB.CPUS.CSCN ()
+    }
+
+    Scope (_GPE)
+    {
+        Name (_HID, "ACPI0006" /* GPE Block Device */)  // _HID: Hardware ID
+    }
+
+    Scope (\_SB.PCI0)
+    {
+        Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+        {
+            WordBusNumber (ResourceProducer, MinFixed, MaxFixed, PosDecode,
+                0x0000,             // Granularity
+                0x0000,             // Range Minimum
+                0x00FF,             // Range Maximum
+                0x0000,             // Translation Offset
+                0x0100,             // Length
+                ,, )
+            IO (Decode16,
+                0x0CF8,             // Range Minimum
+                0x0CF8,             // Range Maximum
+                0x01,               // Alignment
+                0x08,               // Length
+                )
+            WordIO (ResourceProducer, MinFixed, MaxFixed, PosDecode, EntireRange,
+                0x0000,             // Granularity
+                0x0000,             // Range Minimum
+                0x0CF7,             // Range Maximum
+                0x0000,             // Translation Offset
+                0x0CF8,             // Length
+                ,, , TypeStatic, DenseTranslation)
+            WordIO (ResourceProducer, MinFixed, MaxFixed, PosDecode, EntireRange,
+                0x0000,             // Granularity
+                0x0D00,             // Range Minimum
+                0xFFFF,             // Range Maximum
+                0x0000,             // Translation Offset
+                0xF300,             // Length
+                ,, , TypeStatic, DenseTranslation)
+            DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, Cacheable, ReadWrite,
+                0x00000000,         // Granularity
+                0x000A0000,         // Range Minimum
+                0x000BFFFF,         // Range Maximum
+                0x00000000,         // Translation Offset
+                0x00020000,         // Length
+                ,, , AddressRangeMemory, TypeStatic)
+            DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, NonCacheable, ReadWrite,
+                0x00000000,         // Granularity
+                0x08000000,         // Range Minimum
+                0xAFFFFFFF,         // Range Maximum
+                0x00000000,         // Translation Offset
+                0xA8000000,         // Length
+                ,, , AddressRangeMemory, TypeStatic)
+            DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, NonCacheable, ReadWrite,
+                0x00000000,         // Granularity
+                0xC0000000,         // Range Minimum
+                0xFEBFFFFF,         // Range Maximum
+                0x00000000,         // Translation Offset
+                0x3EC00000,         // Length
+                ,, , AddressRangeMemory, TypeStatic)
+            QWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, Cacheable, ReadWrite,
+                0x0000000000000000, // Granularity
+                0x0000000100000000, // Range Minimum
+                0x00000008FFFFFFFF, // Range Maximum
+                0x0000000000000000, // Translation Offset
+                0x0000000800000000, // Length
+                ,, , AddressRangeMemory, TypeStatic)
+        })
+        Device (GPE0)
+        {
+            Name (_HID, "PNP0A06" /* Generic Container Device */)  // _HID: Hardware ID
+            Name (_UID, "GPE0 resources")  // _UID: Unique ID
+            Name (_STA, 0x0B)  // _STA: Status
+            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+            {
+                IO (Decode16,
+                    0x0620,             // Range Minimum
+                    0x0620,             // Range Maximum
+                    0x01,               // Alignment
+                    0x10,               // Length
+                    )
+            })
+        }
+    }
+
+    Scope (\)
+    {
+        Name (_S3, Package (0x04)  // _S3_: S3 System State
+        {
+            One, 
+            One, 
+            Zero, 
+            Zero
+        })
+        Name (_S4, Package (0x04)  // _S4_: S4 System State
+        {
+            0x02, 
+            0x02, 
+            Zero, 
+            Zero
+        })
+        Name (_S5, Package (0x04)  // _S5_: S5 System State
+        {
+            Zero, 
+            Zero, 
+            Zero, 
+            Zero
+        })
+    }
+
+    Scope (\_SB.PCI0)
+    {
+        Device (FWCF)
+        {
+            Name (_HID, "QEMU0002")  // _HID: Hardware ID
+            Name (_STA, 0x0B)  // _STA: Status
+            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+            {
+                IO (Decode16,
+                    0x0510,             // Range Minimum
+                    0x0510,             // Range Maximum
+                    0x01,               // Alignment
+                    0x0C,               // Length
+                    )
+            })
+        }
+    }
+
+    Scope (\_SB)
+    {
+        Scope (PCI0)
+        {
+            Device (S00)
+            {
+                Name (_ADR, Zero)  // _ADR: Address
+            }
+
+            Device (S08)
+            {
+                Name (_ADR, 0x00010000)  // _ADR: Address
+                Method (_S1D, 0, NotSerialized)  // _S1D: S1 Device State
+                {
+                    Return (Zero)
+                }
+
+                Method (_S2D, 0, NotSerialized)  // _S2D: S2 Device State
+                {
+                    Return (Zero)
+                }
+
+                Method (_S3D, 0, NotSerialized)  // _S3D: S3 Device State
+                {
+                    Return (Zero)
+                }
+            }
+
+            Method (PCNT, 0, NotSerialized)
+            {
+            }
+        }
+    }
+}
+
diff --git a/tests/data/acpi/q35/DSDT.memhp b/tests/data/acpi/q35/DSDT.memhp
index 55ce4e2293624c2c0725c3bbaaa7ec29acfccfc9..85598ca3f68f437e8d5048e2cb9815f20b332152 100644
GIT binary patch
delta 33
ocmX@@e%PJMCD<k8urdP!qsT_CVr5P@mYDcpr+5Lo$?eLv0IF08YybcN

delta 42
xcmX@?e%hVOCD<k8v@!z&<I0U(#mZcMEHUxHPVoY6ER)-mZP`WG0-XIq7yuP-3v&Pf

diff --git a/tests/data/acpi/q35/DSDT.memhp.dsl b/tests/data/acpi/q35/DSDT.memhp.dsl
new file mode 100644
index 0000000000..18cea090e6
--- /dev/null
+++ b/tests/data/acpi/q35/DSDT.memhp.dsl
@@ -0,0 +1,3442 @@ 
+/*
+ * Intel ACPI Component Architecture
+ * AML/ASL+ Disassembler version 20190509 (64-bit version)
+ * Copyright (c) 2000 - 2019 Intel Corporation
+ * 
+ * Disassembling to symbolic ASL+ operators
+ *
+ * Disassembly of tests/data/acpi/q35/DSDT.memhp, Tue Aug  4 11:14:15 2020
+ *
+ * Original Table Header:
+ *     Signature        "DSDT"
+ *     Length           0x0000234D (9037)
+ *     Revision         0x01 **** 32-bit table (V1), no 64-bit math support
+ *     Checksum         0x9D
+ *     OEM ID           "BOCHS "
+ *     OEM Table ID     "BXPCDSDT"
+ *     OEM Revision     0x00000001 (1)
+ *     Compiler ID      "BXPC"
+ *     Compiler Version 0x00000001 (1)
+ */
+DefinitionBlock ("", "DSDT", 1, "BOCHS ", "BXPCDSDT", 0x00000001)
+{
+    Scope (\)
+    {
+        OperationRegion (DBG, SystemIO, 0x0402, One)
+        Field (DBG, ByteAcc, NoLock, Preserve)
+        {
+            DBGB,   8
+        }
+
+        Method (DBUG, 1, NotSerialized)
+        {
+            ToHexString (Arg0, Local0)
+            ToBuffer (Local0, Local0)
+            Local1 = (SizeOf (Local0) - One)
+            Local2 = Zero
+            While ((Local2 < Local1))
+            {
+                DBGB = DerefOf (Local0 [Local2])
+                Local2++
+            }
+
+            DBGB = 0x0A
+        }
+    }
+
+    Scope (_SB)
+    {
+        Device (PCI0)
+        {
+            Name (_HID, EisaId ("PNP0A08") /* PCI Express Bus */)  // _HID: Hardware ID
+            Name (_CID, EisaId ("PNP0A03") /* PCI Bus */)  // _CID: Compatible ID
+            Name (_ADR, Zero)  // _ADR: Address
+            Name (_UID, Zero)  // _UID: Unique ID
+            Method (_OSC, 4, NotSerialized)  // _OSC: Operating System Capabilities
+            {
+                CreateDWordField (Arg3, Zero, CDW1)
+                If ((Arg0 == ToUUID ("33db4d5b-1ff7-401c-9657-7441c03dd766") /* PCI Host Bridge Device */))
+                {
+                    CreateDWordField (Arg3, 0x04, CDW2)
+                    CreateDWordField (Arg3, 0x08, CDW3)
+                    Local0 = CDW3 /* \_SB_.PCI0._OSC.CDW3 */
+                    Local0 &= 0x1F
+                    If ((Arg1 != One))
+                    {
+                        CDW1 |= 0x08
+                    }
+
+                    If ((CDW3 != Local0))
+                    {
+                        CDW1 |= 0x10
+                    }
+
+                    CDW3 = Local0
+                }
+                Else
+                {
+                    CDW1 |= 0x04
+                }
+
+                Return (Arg3)
+            }
+        }
+    }
+
+    Scope (_SB)
+    {
+        Device (HPET)
+        {
+            Name (_HID, EisaId ("PNP0103") /* HPET System Timer */)  // _HID: Hardware ID
+            Name (_UID, Zero)  // _UID: Unique ID
+            OperationRegion (HPTM, SystemMemory, 0xFED00000, 0x0400)
+            Field (HPTM, DWordAcc, Lock, Preserve)
+            {
+                VEND,   32, 
+                PRD,    32
+            }
+
+            Method (_STA, 0, NotSerialized)  // _STA: Status
+            {
+                Local0 = VEND /* \_SB_.HPET.VEND */
+                Local1 = PRD /* \_SB_.HPET.PRD_ */
+                Local0 >>= 0x10
+                If (((Local0 == Zero) || (Local0 == 0xFFFF)))
+                {
+                    Return (Zero)
+                }
+
+                If (((Local1 == Zero) || (Local1 > 0x05F5E100)))
+                {
+                    Return (Zero)
+                }
+
+                Return (0x0F)
+            }
+
+            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+            {
+                Memory32Fixed (ReadOnly,
+                    0xFED00000,         // Address Base
+                    0x00000400,         // Address Length
+                    )
+            })
+        }
+    }
+
+    Scope (_SB.PCI0)
+    {
+        Device (ISA)
+        {
+            Name (_ADR, 0x001F0000)  // _ADR: Address
+            OperationRegion (PIRQ, PCI_Config, 0x60, 0x0C)
+        }
+    }
+
+    Scope (_SB.PCI0.ISA)
+    {
+        Device (KBD)
+        {
+            Name (_HID, EisaId ("PNP0303") /* IBM Enhanced Keyboard (101/102-key, PS/2 Mouse) */)  // _HID: Hardware ID
+            Name (_STA, 0x0F)  // _STA: Status
+            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+            {
+                IO (Decode16,
+                    0x0060,             // Range Minimum
+                    0x0060,             // Range Maximum
+                    0x01,               // Alignment
+                    0x01,               // Length
+                    )
+                IO (Decode16,
+                    0x0064,             // Range Minimum
+                    0x0064,             // Range Maximum
+                    0x01,               // Alignment
+                    0x01,               // Length
+                    )
+                IRQNoFlags ()
+                    {1}
+            })
+        }
+
+        Device (MOU)
+        {
+            Name (_HID, EisaId ("PNP0F13") /* PS/2 Mouse */)  // _HID: Hardware ID
+            Name (_STA, 0x0F)  // _STA: Status
+            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+            {
+                IRQNoFlags ()
+                    {12}
+            })
+        }
+
+        Device (LPT1)
+        {
+            Name (_HID, EisaId ("PNP0400") /* Standard LPT Parallel Port */)  // _HID: Hardware ID
+            Name (_UID, One)  // _UID: Unique ID
+            Name (_STA, 0x0F)  // _STA: Status
+            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+            {
+                IO (Decode16,
+                    0x0378,             // Range Minimum
+                    0x0378,             // Range Maximum
+                    0x08,               // Alignment
+                    0x08,               // Length
+                    )
+                IRQNoFlags ()
+                    {7}
+            })
+        }
+
+        Device (COM1)
+        {
+            Name (_HID, EisaId ("PNP0501") /* 16550A-compatible COM Serial Port */)  // _HID: Hardware ID
+            Name (_UID, One)  // _UID: Unique ID
+            Name (_STA, 0x0F)  // _STA: Status
+            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+            {
+                IO (Decode16,
+                    0x03F8,             // Range Minimum
+                    0x03F8,             // Range Maximum
+                    0x00,               // Alignment
+                    0x08,               // Length
+                    )
+                IRQNoFlags ()
+                    {4}
+            })
+        }
+
+        Device (RTC)
+        {
+            Name (_HID, EisaId ("PNP0B00") /* AT Real-Time Clock */)  // _HID: Hardware ID
+            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+            {
+                IO (Decode16,
+                    0x0070,             // Range Minimum
+                    0x0070,             // Range Maximum
+                    0x01,               // Alignment
+                    0x08,               // Length
+                    )
+                IRQNoFlags ()
+                    {8}
+            })
+        }
+    }
+
+    Name (PICF, Zero)
+    Method (_PIC, 1, NotSerialized)  // _PIC: Interrupt Model
+    {
+        PICF = Arg0
+    }
+
+    Scope (_SB)
+    {
+        Scope (PCI0)
+        {
+            Name (PRTP, Package (0x80)
+            {
+                Package (0x04)
+                {
+                    0xFFFF, 
+                    Zero, 
+                    LNKE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0xFFFF, 
+                    One, 
+                    LNKF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0xFFFF, 
+                    0x02, 
+                    LNKG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0xFFFF, 
+                    0x03, 
+                    LNKH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0001FFFF, 
+                    Zero, 
+                    LNKF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0001FFFF, 
+                    One, 
+                    LNKG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0001FFFF, 
+                    0x02, 
+                    LNKH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0001FFFF, 
+                    0x03, 
+                    LNKE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0002FFFF, 
+                    Zero, 
+                    LNKG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0002FFFF, 
+                    One, 
+                    LNKH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0002FFFF, 
+                    0x02, 
+                    LNKE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0002FFFF, 
+                    0x03, 
+                    LNKF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0003FFFF, 
+                    Zero, 
+                    LNKH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0003FFFF, 
+                    One, 
+                    LNKE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0003FFFF, 
+                    0x02, 
+                    LNKF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0003FFFF, 
+                    0x03, 
+                    LNKG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0004FFFF, 
+                    Zero, 
+                    LNKE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0004FFFF, 
+                    One, 
+                    LNKF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0004FFFF, 
+                    0x02, 
+                    LNKG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0004FFFF, 
+                    0x03, 
+                    LNKH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0005FFFF, 
+                    Zero, 
+                    LNKF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0005FFFF, 
+                    One, 
+                    LNKG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0005FFFF, 
+                    0x02, 
+                    LNKH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0005FFFF, 
+                    0x03, 
+                    LNKE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0006FFFF, 
+                    Zero, 
+                    LNKG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0006FFFF, 
+                    One, 
+                    LNKH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0006FFFF, 
+                    0x02, 
+                    LNKE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0006FFFF, 
+                    0x03, 
+                    LNKF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0007FFFF, 
+                    Zero, 
+                    LNKH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0007FFFF, 
+                    One, 
+                    LNKE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0007FFFF, 
+                    0x02, 
+                    LNKF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0007FFFF, 
+                    0x03, 
+                    LNKG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0008FFFF, 
+                    Zero, 
+                    LNKE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0008FFFF, 
+                    One, 
+                    LNKF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0008FFFF, 
+                    0x02, 
+                    LNKG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0008FFFF, 
+                    0x03, 
+                    LNKH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0009FFFF, 
+                    Zero, 
+                    LNKF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0009FFFF, 
+                    One, 
+                    LNKG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0009FFFF, 
+                    0x02, 
+                    LNKH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0009FFFF, 
+                    0x03, 
+                    LNKE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000AFFFF, 
+                    Zero, 
+                    LNKG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000AFFFF, 
+                    One, 
+                    LNKH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000AFFFF, 
+                    0x02, 
+                    LNKE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000AFFFF, 
+                    0x03, 
+                    LNKF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000BFFFF, 
+                    Zero, 
+                    LNKH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000BFFFF, 
+                    One, 
+                    LNKE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000BFFFF, 
+                    0x02, 
+                    LNKF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000BFFFF, 
+                    0x03, 
+                    LNKG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000CFFFF, 
+                    Zero, 
+                    LNKE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000CFFFF, 
+                    One, 
+                    LNKF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000CFFFF, 
+                    0x02, 
+                    LNKG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000CFFFF, 
+                    0x03, 
+                    LNKH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000DFFFF, 
+                    Zero, 
+                    LNKF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000DFFFF, 
+                    One, 
+                    LNKG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000DFFFF, 
+                    0x02, 
+                    LNKH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000DFFFF, 
+                    0x03, 
+                    LNKE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000EFFFF, 
+                    Zero, 
+                    LNKG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000EFFFF, 
+                    One, 
+                    LNKH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000EFFFF, 
+                    0x02, 
+                    LNKE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000EFFFF, 
+                    0x03, 
+                    LNKF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000FFFFF, 
+                    Zero, 
+                    LNKH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000FFFFF, 
+                    One, 
+                    LNKE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000FFFFF, 
+                    0x02, 
+                    LNKF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000FFFFF, 
+                    0x03, 
+                    LNKG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0010FFFF, 
+                    Zero, 
+                    LNKE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0010FFFF, 
+                    One, 
+                    LNKF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0010FFFF, 
+                    0x02, 
+                    LNKG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0010FFFF, 
+                    0x03, 
+                    LNKH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0011FFFF, 
+                    Zero, 
+                    LNKF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0011FFFF, 
+                    One, 
+                    LNKG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0011FFFF, 
+                    0x02, 
+                    LNKH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0011FFFF, 
+                    0x03, 
+                    LNKE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0012FFFF, 
+                    Zero, 
+                    LNKG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0012FFFF, 
+                    One, 
+                    LNKH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0012FFFF, 
+                    0x02, 
+                    LNKE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0012FFFF, 
+                    0x03, 
+                    LNKF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0013FFFF, 
+                    Zero, 
+                    LNKH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0013FFFF, 
+                    One, 
+                    LNKE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0013FFFF, 
+                    0x02, 
+                    LNKF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0013FFFF, 
+                    0x03, 
+                    LNKG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0014FFFF, 
+                    Zero, 
+                    LNKE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0014FFFF, 
+                    One, 
+                    LNKF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0014FFFF, 
+                    0x02, 
+                    LNKG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0014FFFF, 
+                    0x03, 
+                    LNKH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0015FFFF, 
+                    Zero, 
+                    LNKF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0015FFFF, 
+                    One, 
+                    LNKG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0015FFFF, 
+                    0x02, 
+                    LNKH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0015FFFF, 
+                    0x03, 
+                    LNKE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0016FFFF, 
+                    Zero, 
+                    LNKG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0016FFFF, 
+                    One, 
+                    LNKH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0016FFFF, 
+                    0x02, 
+                    LNKE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0016FFFF, 
+                    0x03, 
+                    LNKF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0017FFFF, 
+                    Zero, 
+                    LNKH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0017FFFF, 
+                    One, 
+                    LNKE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0017FFFF, 
+                    0x02, 
+                    LNKF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0017FFFF, 
+                    0x03, 
+                    LNKG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0018FFFF, 
+                    Zero, 
+                    LNKE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0018FFFF, 
+                    One, 
+                    LNKF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0018FFFF, 
+                    0x02, 
+                    LNKG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0018FFFF, 
+                    0x03, 
+                    LNKH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0019FFFF, 
+                    Zero, 
+                    LNKA, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0019FFFF, 
+                    One, 
+                    LNKB, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0019FFFF, 
+                    0x02, 
+                    LNKC, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0019FFFF, 
+                    0x03, 
+                    LNKD, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001AFFFF, 
+                    Zero, 
+                    LNKA, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001AFFFF, 
+                    One, 
+                    LNKB, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001AFFFF, 
+                    0x02, 
+                    LNKC, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001AFFFF, 
+                    0x03, 
+                    LNKD, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001BFFFF, 
+                    Zero, 
+                    LNKA, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001BFFFF, 
+                    One, 
+                    LNKB, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001BFFFF, 
+                    0x02, 
+                    LNKC, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001BFFFF, 
+                    0x03, 
+                    LNKD, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001CFFFF, 
+                    Zero, 
+                    LNKA, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001CFFFF, 
+                    One, 
+                    LNKB, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001CFFFF, 
+                    0x02, 
+                    LNKC, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001CFFFF, 
+                    0x03, 
+                    LNKD, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001DFFFF, 
+                    Zero, 
+                    LNKA, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001DFFFF, 
+                    One, 
+                    LNKB, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001DFFFF, 
+                    0x02, 
+                    LNKC, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001DFFFF, 
+                    0x03, 
+                    LNKD, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001EFFFF, 
+                    Zero, 
+                    LNKE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001EFFFF, 
+                    One, 
+                    LNKF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001EFFFF, 
+                    0x02, 
+                    LNKG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001EFFFF, 
+                    0x03, 
+                    LNKH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001FFFFF, 
+                    Zero, 
+                    LNKA, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001FFFFF, 
+                    One, 
+                    LNKB, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001FFFFF, 
+                    0x02, 
+                    LNKC, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001FFFFF, 
+                    0x03, 
+                    LNKD, 
+                    Zero
+                }
+            })
+            Name (PRTA, Package (0x80)
+            {
+                Package (0x04)
+                {
+                    0xFFFF, 
+                    Zero, 
+                    GSIE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0xFFFF, 
+                    One, 
+                    GSIF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0xFFFF, 
+                    0x02, 
+                    GSIG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0xFFFF, 
+                    0x03, 
+                    GSIH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0001FFFF, 
+                    Zero, 
+                    GSIF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0001FFFF, 
+                    One, 
+                    GSIG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0001FFFF, 
+                    0x02, 
+                    GSIH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0001FFFF, 
+                    0x03, 
+                    GSIE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0002FFFF, 
+                    Zero, 
+                    GSIG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0002FFFF, 
+                    One, 
+                    GSIH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0002FFFF, 
+                    0x02, 
+                    GSIE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0002FFFF, 
+                    0x03, 
+                    GSIF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0003FFFF, 
+                    Zero, 
+                    GSIH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0003FFFF, 
+                    One, 
+                    GSIE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0003FFFF, 
+                    0x02, 
+                    GSIF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0003FFFF, 
+                    0x03, 
+                    GSIG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0004FFFF, 
+                    Zero, 
+                    GSIE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0004FFFF, 
+                    One, 
+                    GSIF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0004FFFF, 
+                    0x02, 
+                    GSIG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0004FFFF, 
+                    0x03, 
+                    GSIH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0005FFFF, 
+                    Zero, 
+                    GSIF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0005FFFF, 
+                    One, 
+                    GSIG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0005FFFF, 
+                    0x02, 
+                    GSIH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0005FFFF, 
+                    0x03, 
+                    GSIE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0006FFFF, 
+                    Zero, 
+                    GSIG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0006FFFF, 
+                    One, 
+                    GSIH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0006FFFF, 
+                    0x02, 
+                    GSIE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0006FFFF, 
+                    0x03, 
+                    GSIF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0007FFFF, 
+                    Zero, 
+                    GSIH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0007FFFF, 
+                    One, 
+                    GSIE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0007FFFF, 
+                    0x02, 
+                    GSIF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0007FFFF, 
+                    0x03, 
+                    GSIG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0008FFFF, 
+                    Zero, 
+                    GSIE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0008FFFF, 
+                    One, 
+                    GSIF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0008FFFF, 
+                    0x02, 
+                    GSIG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0008FFFF, 
+                    0x03, 
+                    GSIH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0009FFFF, 
+                    Zero, 
+                    GSIF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0009FFFF, 
+                    One, 
+                    GSIG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0009FFFF, 
+                    0x02, 
+                    GSIH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0009FFFF, 
+                    0x03, 
+                    GSIE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000AFFFF, 
+                    Zero, 
+                    GSIG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000AFFFF, 
+                    One, 
+                    GSIH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000AFFFF, 
+                    0x02, 
+                    GSIE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000AFFFF, 
+                    0x03, 
+                    GSIF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000BFFFF, 
+                    Zero, 
+                    GSIH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000BFFFF, 
+                    One, 
+                    GSIE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000BFFFF, 
+                    0x02, 
+                    GSIF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000BFFFF, 
+                    0x03, 
+                    GSIG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000CFFFF, 
+                    Zero, 
+                    GSIE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000CFFFF, 
+                    One, 
+                    GSIF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000CFFFF, 
+                    0x02, 
+                    GSIG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000CFFFF, 
+                    0x03, 
+                    GSIH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000DFFFF, 
+                    Zero, 
+                    GSIF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000DFFFF, 
+                    One, 
+                    GSIG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000DFFFF, 
+                    0x02, 
+                    GSIH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000DFFFF, 
+                    0x03, 
+                    GSIE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000EFFFF, 
+                    Zero, 
+                    GSIG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000EFFFF, 
+                    One, 
+                    GSIH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000EFFFF, 
+                    0x02, 
+                    GSIE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000EFFFF, 
+                    0x03, 
+                    GSIF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000FFFFF, 
+                    Zero, 
+                    GSIH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000FFFFF, 
+                    One, 
+                    GSIE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000FFFFF, 
+                    0x02, 
+                    GSIF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000FFFFF, 
+                    0x03, 
+                    GSIG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0010FFFF, 
+                    Zero, 
+                    GSIE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0010FFFF, 
+                    One, 
+                    GSIF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0010FFFF, 
+                    0x02, 
+                    GSIG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0010FFFF, 
+                    0x03, 
+                    GSIH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0011FFFF, 
+                    Zero, 
+                    GSIF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0011FFFF, 
+                    One, 
+                    GSIG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0011FFFF, 
+                    0x02, 
+                    GSIH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0011FFFF, 
+                    0x03, 
+                    GSIE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0012FFFF, 
+                    Zero, 
+                    GSIG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0012FFFF, 
+                    One, 
+                    GSIH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0012FFFF, 
+                    0x02, 
+                    GSIE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0012FFFF, 
+                    0x03, 
+                    GSIF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0013FFFF, 
+                    Zero, 
+                    GSIH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0013FFFF, 
+                    One, 
+                    GSIE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0013FFFF, 
+                    0x02, 
+                    GSIF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0013FFFF, 
+                    0x03, 
+                    GSIG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0014FFFF, 
+                    Zero, 
+                    GSIE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0014FFFF, 
+                    One, 
+                    GSIF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0014FFFF, 
+                    0x02, 
+                    GSIG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0014FFFF, 
+                    0x03, 
+                    GSIH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0015FFFF, 
+                    Zero, 
+                    GSIF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0015FFFF, 
+                    One, 
+                    GSIG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0015FFFF, 
+                    0x02, 
+                    GSIH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0015FFFF, 
+                    0x03, 
+                    GSIE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0016FFFF, 
+                    Zero, 
+                    GSIG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0016FFFF, 
+                    One, 
+                    GSIH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0016FFFF, 
+                    0x02, 
+                    GSIE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0016FFFF, 
+                    0x03, 
+                    GSIF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0017FFFF, 
+                    Zero, 
+                    GSIH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0017FFFF, 
+                    One, 
+                    GSIE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0017FFFF, 
+                    0x02, 
+                    GSIF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0017FFFF, 
+                    0x03, 
+                    GSIG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0018FFFF, 
+                    Zero, 
+                    GSIE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0018FFFF, 
+                    One, 
+                    GSIF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0018FFFF, 
+                    0x02, 
+                    GSIG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0018FFFF, 
+                    0x03, 
+                    GSIH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0019FFFF, 
+                    Zero, 
+                    GSIA, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0019FFFF, 
+                    One, 
+                    GSIB, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0019FFFF, 
+                    0x02, 
+                    GSIC, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0019FFFF, 
+                    0x03, 
+                    GSID, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001AFFFF, 
+                    Zero, 
+                    GSIA, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001AFFFF, 
+                    One, 
+                    GSIB, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001AFFFF, 
+                    0x02, 
+                    GSIC, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001AFFFF, 
+                    0x03, 
+                    GSID, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001BFFFF, 
+                    Zero, 
+                    GSIA, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001BFFFF, 
+                    One, 
+                    GSIB, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001BFFFF, 
+                    0x02, 
+                    GSIC, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001BFFFF, 
+                    0x03, 
+                    GSID, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001CFFFF, 
+                    Zero, 
+                    GSIA, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001CFFFF, 
+                    One, 
+                    GSIB, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001CFFFF, 
+                    0x02, 
+                    GSIC, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001CFFFF, 
+                    0x03, 
+                    GSID, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001DFFFF, 
+                    Zero, 
+                    GSIA, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001DFFFF, 
+                    One, 
+                    GSIB, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001DFFFF, 
+                    0x02, 
+                    GSIC, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001DFFFF, 
+                    0x03, 
+                    GSID, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001EFFFF, 
+                    Zero, 
+                    GSIE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001EFFFF, 
+                    One, 
+                    GSIF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001EFFFF, 
+                    0x02, 
+                    GSIG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001EFFFF, 
+                    0x03, 
+                    GSIH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001FFFFF, 
+                    Zero, 
+                    GSIA, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001FFFFF, 
+                    One, 
+                    GSIB, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001FFFFF, 
+                    0x02, 
+                    GSIC, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001FFFFF, 
+                    0x03, 
+                    GSID, 
+                    Zero
+                }
+            })
+            Method (_PRT, 0, NotSerialized)  // _PRT: PCI Routing Table
+            {
+                If ((PICF == Zero))
+                {
+                    Return (PRTP) /* \_SB_.PCI0.PRTP */
+                }
+                Else
+                {
+                    Return (PRTA) /* \_SB_.PCI0.PRTA */
+                }
+            }
+        }
+
+        Field (PCI0.ISA.PIRQ, ByteAcc, NoLock, Preserve)
+        {
+            PRQA,   8, 
+            PRQB,   8, 
+            PRQC,   8, 
+            PRQD,   8, 
+            Offset (0x08), 
+            PRQE,   8, 
+            PRQF,   8, 
+            PRQG,   8, 
+            PRQH,   8
+        }
+
+        Method (IQST, 1, NotSerialized)
+        {
+            If ((0x80 & Arg0))
+            {
+                Return (0x09)
+            }
+
+            Return (0x0B)
+        }
+
+        Method (IQCR, 1, Serialized)
+        {
+            Name (PRR0, ResourceTemplate ()
+            {
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, _Y00)
+                {
+                    0x00000000,
+                }
+            })
+            CreateDWordField (PRR0, \_SB.IQCR._Y00._INT, PRRI)  // _INT: Interrupts
+            PRRI = (Arg0 & 0x0F)
+            Return (PRR0) /* \_SB_.IQCR.PRR0 */
+        }
+
+        Device (LNKA)
+        {
+            Name (_HID, EisaId ("PNP0C0F") /* PCI Interrupt Link Device */)  // _HID: Hardware ID
+            Name (_UID, Zero)  // _UID: Unique ID
+            Name (_PRS, ResourceTemplate ()  // _PRS: Possible Resource Settings
+            {
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, )
+                {
+                    0x00000005,
+                    0x0000000A,
+                    0x0000000B,
+                }
+            })
+            Method (_STA, 0, NotSerialized)  // _STA: Status
+            {
+                Return (IQST (PRQA))
+            }
+
+            Method (_DIS, 0, NotSerialized)  // _DIS: Disable Device
+            {
+                PRQA |= 0x80
+            }
+
+            Method (_CRS, 0, NotSerialized)  // _CRS: Current Resource Settings
+            {
+                Return (IQCR (PRQA))
+            }
+
+            Method (_SRS, 1, NotSerialized)  // _SRS: Set Resource Settings
+            {
+                CreateDWordField (Arg0, 0x05, PRRI)
+                PRQA = PRRI /* \_SB_.LNKA._SRS.PRRI */
+            }
+        }
+
+        Device (LNKB)
+        {
+            Name (_HID, EisaId ("PNP0C0F") /* PCI Interrupt Link Device */)  // _HID: Hardware ID
+            Name (_UID, One)  // _UID: Unique ID
+            Name (_PRS, ResourceTemplate ()  // _PRS: Possible Resource Settings
+            {
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, )
+                {
+                    0x00000005,
+                    0x0000000A,
+                    0x0000000B,
+                }
+            })
+            Method (_STA, 0, NotSerialized)  // _STA: Status
+            {
+                Return (IQST (PRQB))
+            }
+
+            Method (_DIS, 0, NotSerialized)  // _DIS: Disable Device
+            {
+                PRQB |= 0x80
+            }
+
+            Method (_CRS, 0, NotSerialized)  // _CRS: Current Resource Settings
+            {
+                Return (IQCR (PRQB))
+            }
+
+            Method (_SRS, 1, NotSerialized)  // _SRS: Set Resource Settings
+            {
+                CreateDWordField (Arg0, 0x05, PRRI)
+                PRQB = PRRI /* \_SB_.LNKB._SRS.PRRI */
+            }
+        }
+
+        Device (LNKC)
+        {
+            Name (_HID, EisaId ("PNP0C0F") /* PCI Interrupt Link Device */)  // _HID: Hardware ID
+            Name (_UID, 0x02)  // _UID: Unique ID
+            Name (_PRS, ResourceTemplate ()  // _PRS: Possible Resource Settings
+            {
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, )
+                {
+                    0x00000005,
+                    0x0000000A,
+                    0x0000000B,
+                }
+            })
+            Method (_STA, 0, NotSerialized)  // _STA: Status
+            {
+                Return (IQST (PRQC))
+            }
+
+            Method (_DIS, 0, NotSerialized)  // _DIS: Disable Device
+            {
+                PRQC |= 0x80
+            }
+
+            Method (_CRS, 0, NotSerialized)  // _CRS: Current Resource Settings
+            {
+                Return (IQCR (PRQC))
+            }
+
+            Method (_SRS, 1, NotSerialized)  // _SRS: Set Resource Settings
+            {
+                CreateDWordField (Arg0, 0x05, PRRI)
+                PRQC = PRRI /* \_SB_.LNKC._SRS.PRRI */
+            }
+        }
+
+        Device (LNKD)
+        {
+            Name (_HID, EisaId ("PNP0C0F") /* PCI Interrupt Link Device */)  // _HID: Hardware ID
+            Name (_UID, 0x03)  // _UID: Unique ID
+            Name (_PRS, ResourceTemplate ()  // _PRS: Possible Resource Settings
+            {
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, )
+                {
+                    0x00000005,
+                    0x0000000A,
+                    0x0000000B,
+                }
+            })
+            Method (_STA, 0, NotSerialized)  // _STA: Status
+            {
+                Return (IQST (PRQD))
+            }
+
+            Method (_DIS, 0, NotSerialized)  // _DIS: Disable Device
+            {
+                PRQD |= 0x80
+            }
+
+            Method (_CRS, 0, NotSerialized)  // _CRS: Current Resource Settings
+            {
+                Return (IQCR (PRQD))
+            }
+
+            Method (_SRS, 1, NotSerialized)  // _SRS: Set Resource Settings
+            {
+                CreateDWordField (Arg0, 0x05, PRRI)
+                PRQD = PRRI /* \_SB_.LNKD._SRS.PRRI */
+            }
+        }
+
+        Device (LNKE)
+        {
+            Name (_HID, EisaId ("PNP0C0F") /* PCI Interrupt Link Device */)  // _HID: Hardware ID
+            Name (_UID, 0x04)  // _UID: Unique ID
+            Name (_PRS, ResourceTemplate ()  // _PRS: Possible Resource Settings
+            {
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, )
+                {
+                    0x00000005,
+                    0x0000000A,
+                    0x0000000B,
+                }
+            })
+            Method (_STA, 0, NotSerialized)  // _STA: Status
+            {
+                Return (IQST (PRQE))
+            }
+
+            Method (_DIS, 0, NotSerialized)  // _DIS: Disable Device
+            {
+                PRQE |= 0x80
+            }
+
+            Method (_CRS, 0, NotSerialized)  // _CRS: Current Resource Settings
+            {
+                Return (IQCR (PRQE))
+            }
+
+            Method (_SRS, 1, NotSerialized)  // _SRS: Set Resource Settings
+            {
+                CreateDWordField (Arg0, 0x05, PRRI)
+                PRQE = PRRI /* \_SB_.LNKE._SRS.PRRI */
+            }
+        }
+
+        Device (LNKF)
+        {
+            Name (_HID, EisaId ("PNP0C0F") /* PCI Interrupt Link Device */)  // _HID: Hardware ID
+            Name (_UID, 0x05)  // _UID: Unique ID
+            Name (_PRS, ResourceTemplate ()  // _PRS: Possible Resource Settings
+            {
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, )
+                {
+                    0x00000005,
+                    0x0000000A,
+                    0x0000000B,
+                }
+            })
+            Method (_STA, 0, NotSerialized)  // _STA: Status
+            {
+                Return (IQST (PRQF))
+            }
+
+            Method (_DIS, 0, NotSerialized)  // _DIS: Disable Device
+            {
+                PRQF |= 0x80
+            }
+
+            Method (_CRS, 0, NotSerialized)  // _CRS: Current Resource Settings
+            {
+                Return (IQCR (PRQF))
+            }
+
+            Method (_SRS, 1, NotSerialized)  // _SRS: Set Resource Settings
+            {
+                CreateDWordField (Arg0, 0x05, PRRI)
+                PRQF = PRRI /* \_SB_.LNKF._SRS.PRRI */
+            }
+        }
+
+        Device (LNKG)
+        {
+            Name (_HID, EisaId ("PNP0C0F") /* PCI Interrupt Link Device */)  // _HID: Hardware ID
+            Name (_UID, 0x06)  // _UID: Unique ID
+            Name (_PRS, ResourceTemplate ()  // _PRS: Possible Resource Settings
+            {
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, )
+                {
+                    0x00000005,
+                    0x0000000A,
+                    0x0000000B,
+                }
+            })
+            Method (_STA, 0, NotSerialized)  // _STA: Status
+            {
+                Return (IQST (PRQG))
+            }
+
+            Method (_DIS, 0, NotSerialized)  // _DIS: Disable Device
+            {
+                PRQG |= 0x80
+            }
+
+            Method (_CRS, 0, NotSerialized)  // _CRS: Current Resource Settings
+            {
+                Return (IQCR (PRQG))
+            }
+
+            Method (_SRS, 1, NotSerialized)  // _SRS: Set Resource Settings
+            {
+                CreateDWordField (Arg0, 0x05, PRRI)
+                PRQG = PRRI /* \_SB_.LNKG._SRS.PRRI */
+            }
+        }
+
+        Device (LNKH)
+        {
+            Name (_HID, EisaId ("PNP0C0F") /* PCI Interrupt Link Device */)  // _HID: Hardware ID
+            Name (_UID, 0x07)  // _UID: Unique ID
+            Name (_PRS, ResourceTemplate ()  // _PRS: Possible Resource Settings
+            {
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, )
+                {
+                    0x00000005,
+                    0x0000000A,
+                    0x0000000B,
+                }
+            })
+            Method (_STA, 0, NotSerialized)  // _STA: Status
+            {
+                Return (IQST (PRQH))
+            }
+
+            Method (_DIS, 0, NotSerialized)  // _DIS: Disable Device
+            {
+                PRQH |= 0x80
+            }
+
+            Method (_CRS, 0, NotSerialized)  // _CRS: Current Resource Settings
+            {
+                Return (IQCR (PRQH))
+            }
+
+            Method (_SRS, 1, NotSerialized)  // _SRS: Set Resource Settings
+            {
+                CreateDWordField (Arg0, 0x05, PRRI)
+                PRQH = PRRI /* \_SB_.LNKH._SRS.PRRI */
+            }
+        }
+
+        Device (GSIA)
+        {
+            Name (_HID, EisaId ("PNP0C0F") /* PCI Interrupt Link Device */)  // _HID: Hardware ID
+            Name (_UID, 0x10)  // _UID: Unique ID
+            Name (_PRS, ResourceTemplate ()  // _PRS: Possible Resource Settings
+            {
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, )
+                {
+                    0x00000010,
+                }
+            })
+            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+            {
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, )
+                {
+                    0x00000010,
+                }
+            })
+            Method (_DIS, 0, NotSerialized)  // _DIS: Disable Device
+            {
+            }
+
+            Method (_SRS, 1, NotSerialized)  // _SRS: Set Resource Settings
+            {
+            }
+        }
+
+        Device (GSIB)
+        {
+            Name (_HID, EisaId ("PNP0C0F") /* PCI Interrupt Link Device */)  // _HID: Hardware ID
+            Name (_UID, 0x11)  // _UID: Unique ID
+            Name (_PRS, ResourceTemplate ()  // _PRS: Possible Resource Settings
+            {
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, )
+                {
+                    0x00000011,
+                }
+            })
+            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+            {
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, )
+                {
+                    0x00000011,
+                }
+            })
+            Method (_DIS, 0, NotSerialized)  // _DIS: Disable Device
+            {
+            }
+
+            Method (_SRS, 1, NotSerialized)  // _SRS: Set Resource Settings
+            {
+            }
+        }
+
+        Device (GSIC)
+        {
+            Name (_HID, EisaId ("PNP0C0F") /* PCI Interrupt Link Device */)  // _HID: Hardware ID
+            Name (_UID, 0x12)  // _UID: Unique ID
+            Name (_PRS, ResourceTemplate ()  // _PRS: Possible Resource Settings
+            {
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, )
+                {
+                    0x00000012,
+                }
+            })
+            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+            {
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, )
+                {
+                    0x00000012,
+                }
+            })
+            Method (_DIS, 0, NotSerialized)  // _DIS: Disable Device
+            {
+            }
+
+            Method (_SRS, 1, NotSerialized)  // _SRS: Set Resource Settings
+            {
+            }
+        }
+
+        Device (GSID)
+        {
+            Name (_HID, EisaId ("PNP0C0F") /* PCI Interrupt Link Device */)  // _HID: Hardware ID
+            Name (_UID, 0x13)  // _UID: Unique ID
+            Name (_PRS, ResourceTemplate ()  // _PRS: Possible Resource Settings
+            {
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, )
+                {
+                    0x00000013,
+                }
+            })
+            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+            {
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, )
+                {
+                    0x00000013,
+                }
+            })
+            Method (_DIS, 0, NotSerialized)  // _DIS: Disable Device
+            {
+            }
+
+            Method (_SRS, 1, NotSerialized)  // _SRS: Set Resource Settings
+            {
+            }
+        }
+
+        Device (GSIE)
+        {
+            Name (_HID, EisaId ("PNP0C0F") /* PCI Interrupt Link Device */)  // _HID: Hardware ID
+            Name (_UID, 0x14)  // _UID: Unique ID
+            Name (_PRS, ResourceTemplate ()  // _PRS: Possible Resource Settings
+            {
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, )
+                {
+                    0x00000014,
+                }
+            })
+            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+            {
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, )
+                {
+                    0x00000014,
+                }
+            })
+            Method (_DIS, 0, NotSerialized)  // _DIS: Disable Device
+            {
+            }
+
+            Method (_SRS, 1, NotSerialized)  // _SRS: Set Resource Settings
+            {
+            }
+        }
+
+        Device (GSIF)
+        {
+            Name (_HID, EisaId ("PNP0C0F") /* PCI Interrupt Link Device */)  // _HID: Hardware ID
+            Name (_UID, 0x15)  // _UID: Unique ID
+            Name (_PRS, ResourceTemplate ()  // _PRS: Possible Resource Settings
+            {
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, )
+                {
+                    0x00000015,
+                }
+            })
+            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+            {
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, )
+                {
+                    0x00000015,
+                }
+            })
+            Method (_DIS, 0, NotSerialized)  // _DIS: Disable Device
+            {
+            }
+
+            Method (_SRS, 1, NotSerialized)  // _SRS: Set Resource Settings
+            {
+            }
+        }
+
+        Device (GSIG)
+        {
+            Name (_HID, EisaId ("PNP0C0F") /* PCI Interrupt Link Device */)  // _HID: Hardware ID
+            Name (_UID, 0x16)  // _UID: Unique ID
+            Name (_PRS, ResourceTemplate ()  // _PRS: Possible Resource Settings
+            {
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, )
+                {
+                    0x00000016,
+                }
+            })
+            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+            {
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, )
+                {
+                    0x00000016,
+                }
+            })
+            Method (_DIS, 0, NotSerialized)  // _DIS: Disable Device
+            {
+            }
+
+            Method (_SRS, 1, NotSerialized)  // _SRS: Set Resource Settings
+            {
+            }
+        }
+
+        Device (GSIH)
+        {
+            Name (_HID, EisaId ("PNP0C0F") /* PCI Interrupt Link Device */)  // _HID: Hardware ID
+            Name (_UID, 0x17)  // _UID: Unique ID
+            Name (_PRS, ResourceTemplate ()  // _PRS: Possible Resource Settings
+            {
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, )
+                {
+                    0x00000017,
+                }
+            })
+            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+            {
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, )
+                {
+                    0x00000017,
+                }
+            })
+            Method (_DIS, 0, NotSerialized)  // _DIS: Disable Device
+            {
+            }
+
+            Method (_SRS, 1, NotSerialized)  // _SRS: Set Resource Settings
+            {
+            }
+        }
+    }
+
+    Scope (_SB.PCI0)
+    {
+        Device (SMB0)
+        {
+            Name (_ADR, 0x001F0003)  // _ADR: Address
+        }
+    }
+
+    Scope (_SB)
+    {
+        Device (\_SB.PCI0.PRES)
+        {
+            Name (_HID, EisaId ("PNP0A06") /* Generic Container Device */)  // _HID: Hardware ID
+            Name (_UID, "CPU Hotplug resources")  // _UID: Unique ID
+            Mutex (CPLK, 0x00)
+            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+            {
+                IO (Decode16,
+                    0x0CD8,             // Range Minimum
+                    0x0CD8,             // Range Maximum
+                    0x01,               // Alignment
+                    0x0C,               // Length
+                    )
+            })
+            OperationRegion (PRST, SystemIO, 0x0CD8, 0x0C)
+            Field (PRST, ByteAcc, NoLock, WriteAsZeros)
+            {
+                Offset (0x04), 
+                CPEN,   1, 
+                CINS,   1, 
+                CRMV,   1, 
+                CEJ0,   1, 
+                Offset (0x05), 
+                CCMD,   8
+            }
+
+            Field (PRST, DWordAcc, NoLock, Preserve)
+            {
+                CSEL,   32, 
+                Offset (0x08), 
+                CDAT,   32
+            }
+
+            Method (_INI, 0, Serialized)  // _INI: Initialize
+            {
+                CSEL = Zero
+            }
+        }
+
+        Device (\_SB.CPUS)
+        {
+            Name (_HID, "ACPI0010" /* Processor Container Device */)  // _HID: Hardware ID
+            Name (_CID, EisaId ("PNP0A05") /* Generic Container Device */)  // _CID: Compatible ID
+            Method (CTFY, 2, NotSerialized)
+            {
+                If ((Arg0 == Zero))
+                {
+                    Notify (C000, Arg1)
+                }
+            }
+
+            Method (CSTA, 1, Serialized)
+            {
+                Acquire (\_SB.PCI0.PRES.CPLK, 0xFFFF)
+                \_SB.PCI0.PRES.CSEL = Arg0
+                Local0 = Zero
+                If ((\_SB.PCI0.PRES.CPEN == One))
+                {
+                    Local0 = 0x0F
+                }
+
+                Release (\_SB.PCI0.PRES.CPLK)
+                Return (Local0)
+            }
+
+            Method (CEJ0, 1, Serialized)
+            {
+                Acquire (\_SB.PCI0.PRES.CPLK, 0xFFFF)
+                \_SB.PCI0.PRES.CSEL = Arg0
+                \_SB.PCI0.PRES.CEJ0 = One
+                Release (\_SB.PCI0.PRES.CPLK)
+            }
+
+            Method (CSCN, 0, Serialized)
+            {
+                Acquire (\_SB.PCI0.PRES.CPLK, 0xFFFF)
+                Local0 = One
+                While ((Local0 == One))
+                {
+                    Local0 = Zero
+                    \_SB.PCI0.PRES.CCMD = Zero
+                    If ((\_SB.PCI0.PRES.CINS == One))
+                    {
+                        CTFY (\_SB.PCI0.PRES.CDAT, One)
+                        \_SB.PCI0.PRES.CINS = One
+                        Local0 = One
+                    }
+                    ElseIf ((\_SB.PCI0.PRES.CRMV == One))
+                    {
+                        CTFY (\_SB.PCI0.PRES.CDAT, 0x03)
+                        \_SB.PCI0.PRES.CRMV = One
+                        Local0 = One
+                    }
+                }
+
+                Release (\_SB.PCI0.PRES.CPLK)
+            }
+
+            Method (COST, 4, Serialized)
+            {
+                Acquire (\_SB.PCI0.PRES.CPLK, 0xFFFF)
+                \_SB.PCI0.PRES.CSEL = Arg0
+                \_SB.PCI0.PRES.CCMD = One
+                \_SB.PCI0.PRES.CDAT = Arg1
+                \_SB.PCI0.PRES.CCMD = 0x02
+                \_SB.PCI0.PRES.CDAT = Arg2
+                Release (\_SB.PCI0.PRES.CPLK)
+            }
+
+            Processor (C000, 0x00, 0x00000000, 0x00)
+            {
+                Method (_STA, 0, Serialized)  // _STA: Status
+                {
+                    Return (CSTA (Zero))
+                }
+
+                Name (_MAT, Buffer (0x08)  // _MAT: Multiple APIC Table Entry
+                {
+                     0x00, 0x08, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00   // ........
+                })
+                Method (_OST, 3, Serialized)  // _OST: OSPM Status Indication
+                {
+                    COST (Zero, Arg0, Arg1, Arg2)
+                }
+
+                Name (_PXM, Zero)  // _PXM: Device Proximity
+            }
+        }
+    }
+
+    Method (\_GPE._E02, 0, NotSerialized)  // _Exx: Edge-Triggered GPE, xx=0x00-0xFF
+    {
+        \_SB.CPUS.CSCN ()
+    }
+
+    Device (\_SB.PCI0.MHPD)
+    {
+        Name (_HID, "PNP0A06" /* Generic Container Device */)  // _HID: Hardware ID
+        Name (_UID, "Memory hotplug resources")  // _UID: Unique ID
+        Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+        {
+            IO (Decode16,
+                0x0A00,             // Range Minimum
+                0x0A00,             // Range Maximum
+                0x00,               // Alignment
+                0x18,               // Length
+                )
+        })
+        OperationRegion (HPMR, SystemIO, 0x0A00, 0x18)
+    }
+
+    Device (\_SB.MHPC)
+    {
+        Name (_HID, "PNP0A06" /* Generic Container Device */)  // _HID: Hardware ID
+        Name (_UID, "DIMM devices")  // _UID: Unique ID
+        Name (MDNR, 0x03)
+        Field (\_SB.PCI0.MHPD.HPMR, DWordAcc, NoLock, Preserve)
+        {
+            MRBL,   32, 
+            MRBH,   32, 
+            MRLL,   32, 
+            MRLH,   32, 
+            MPX,    32
+        }
+
+        Field (\_SB.PCI0.MHPD.HPMR, ByteAcc, NoLock, WriteAsZeros)
+        {
+            Offset (0x14), 
+            MES,    1, 
+            MINS,   1, 
+            MRMV,   1, 
+            MEJ,    1
+        }
+
+        Field (\_SB.PCI0.MHPD.HPMR, DWordAcc, NoLock, Preserve)
+        {
+            MSEL,   32, 
+            MOEV,   32, 
+            MOSC,   32
+        }
+
+        Method (_STA, 0, NotSerialized)  // _STA: Status
+        {
+            If ((MDNR == Zero))
+            {
+                Return (Zero)
+            }
+
+            Return (0x0B)
+        }
+
+        Mutex (MLCK, 0x00)
+        Method (MSCN, 0, NotSerialized)
+        {
+            If ((MDNR == Zero))
+            {
+                Return (Zero)
+            }
+
+            Local0 = Zero
+            Acquire (MLCK, 0xFFFF)
+            While ((Local0 < MDNR))
+            {
+                MSEL = Local0
+                If ((MINS == One))
+                {
+                    MTFY (Local0, One)
+                    MINS = One
+                }
+                ElseIf ((MRMV == One))
+                {
+                    MTFY (Local0, 0x03)
+                    MRMV = One
+                }
+
+                Local0 += One
+            }
+
+            Release (MLCK)
+            Return (One)
+        }
+
+        Method (MRST, 1, NotSerialized)
+        {
+            Local0 = Zero
+            Acquire (MLCK, 0xFFFF)
+            MSEL = ToInteger (Arg0)
+            If ((MES == One))
+            {
+                Local0 = 0x0F
+            }
+
+            Release (MLCK)
+            Return (Local0)
+        }
+
+        Method (MCRS, 1, Serialized)
+        {
+            Acquire (MLCK, 0xFFFF)
+            MSEL = ToInteger (Arg0)
+            Name (MR64, ResourceTemplate ()
+            {
+                QWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, Cacheable, ReadWrite,
+                    0x0000000000000000, // Granularity
+                    0x0000000000000000, // Range Minimum
+                    0xFFFFFFFFFFFFFFFE, // Range Maximum
+                    0x0000000000000000, // Translation Offset
+                    0xFFFFFFFFFFFFFFFF, // Length
+                    ,, _Y01, AddressRangeMemory, TypeStatic)
+            })
+            CreateDWordField (MR64, \_SB.MHPC.MCRS._Y01._MIN, MINL)  // _MIN: Minimum Base Address
+            CreateDWordField (MR64, 0x12, MINH)
+            CreateDWordField (MR64, \_SB.MHPC.MCRS._Y01._LEN, LENL)  // _LEN: Length
+            CreateDWordField (MR64, 0x2A, LENH)
+            CreateDWordField (MR64, \_SB.MHPC.MCRS._Y01._MAX, MAXL)  // _MAX: Maximum Base Address
+            CreateDWordField (MR64, 0x1A, MAXH)
+            MINH = MRBH /* \_SB_.MHPC.MRBH */
+            MINL = MRBL /* \_SB_.MHPC.MRBL */
+            LENH = MRLH /* \_SB_.MHPC.MRLH */
+            LENL = MRLL /* \_SB_.MHPC.MRLL */
+            MAXL = (MINL + LENL) /* \_SB_.MHPC.MCRS.LENL */
+            MAXH = (MINH + LENH) /* \_SB_.MHPC.MCRS.LENH */
+            If ((MAXL < MINL))
+            {
+                MAXH += One
+            }
+
+            If ((MAXL < One))
+            {
+                MAXH -= One
+            }
+
+            MAXL -= One
+            If ((MAXH == Zero))
+            {
+                Name (MR32, ResourceTemplate ()
+                {
+                    DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, Cacheable, ReadWrite,
+                        0x00000000,         // Granularity
+                        0x00000000,         // Range Minimum
+                        0xFFFFFFFE,         // Range Maximum
+                        0x00000000,         // Translation Offset
+                        0xFFFFFFFF,         // Length
+                        ,, _Y02, AddressRangeMemory, TypeStatic)
+                })
+                CreateDWordField (MR32, \_SB.MHPC.MCRS._Y02._MIN, MIN)  // _MIN: Minimum Base Address
+                CreateDWordField (MR32, \_SB.MHPC.MCRS._Y02._MAX, MAX)  // _MAX: Maximum Base Address
+                CreateDWordField (MR32, \_SB.MHPC.MCRS._Y02._LEN, LEN)  // _LEN: Length
+                MIN = MINL /* \_SB_.MHPC.MCRS.MINL */
+                MAX = MAXL /* \_SB_.MHPC.MCRS.MAXL */
+                LEN = LENL /* \_SB_.MHPC.MCRS.LENL */
+                Release (MLCK)
+                Return (MR32) /* \_SB_.MHPC.MCRS.MR32 */
+            }
+
+            Release (MLCK)
+            Return (MR64) /* \_SB_.MHPC.MCRS.MR64 */
+        }
+
+        Method (MPXM, 1, NotSerialized)
+        {
+            Acquire (MLCK, 0xFFFF)
+            MSEL = ToInteger (Arg0)
+            Local0 = MPX /* \_SB_.MHPC.MPX_ */
+            Release (MLCK)
+            Return (Local0)
+        }
+
+        Method (MOST, 4, NotSerialized)
+        {
+            Acquire (MLCK, 0xFFFF)
+            MSEL = ToInteger (Arg0)
+            MOEV = Arg1
+            MOSC = Arg2
+            Release (MLCK)
+        }
+
+        Method (MEJ0, 2, NotSerialized)
+        {
+            Acquire (MLCK, 0xFFFF)
+            MSEL = ToInteger (Arg0)
+            MEJ = One
+            Release (MLCK)
+        }
+
+        Device (MP00)
+        {
+            Name (_UID, "0x00")  // _UID: Unique ID
+            Name (_HID, EisaId ("PNP0C80") /* Memory Device */)  // _HID: Hardware ID
+            Method (_CRS, 0, NotSerialized)  // _CRS: Current Resource Settings
+            {
+                Return (MCRS (_UID))
+            }
+
+            Method (_STA, 0, NotSerialized)  // _STA: Status
+            {
+                Return (MRST (_UID))
+            }
+
+            Method (_PXM, 0, NotSerialized)  // _PXM: Device Proximity
+            {
+                Return (MPXM (_UID))
+            }
+
+            Method (_OST, 3, NotSerialized)  // _OST: OSPM Status Indication
+            {
+                MOST (_UID, Arg0, Arg1, Arg2)
+            }
+
+            Method (_EJ0, 1, NotSerialized)  // _EJx: Eject Device, x=0-9
+            {
+                MEJ0 (_UID, Arg0)
+            }
+        }
+
+        Device (MP01)
+        {
+            Name (_UID, "0x01")  // _UID: Unique ID
+            Name (_HID, EisaId ("PNP0C80") /* Memory Device */)  // _HID: Hardware ID
+            Method (_CRS, 0, NotSerialized)  // _CRS: Current Resource Settings
+            {
+                Return (MCRS (_UID))
+            }
+
+            Method (_STA, 0, NotSerialized)  // _STA: Status
+            {
+                Return (MRST (_UID))
+            }
+
+            Method (_PXM, 0, NotSerialized)  // _PXM: Device Proximity
+            {
+                Return (MPXM (_UID))
+            }
+
+            Method (_OST, 3, NotSerialized)  // _OST: OSPM Status Indication
+            {
+                MOST (_UID, Arg0, Arg1, Arg2)
+            }
+
+            Method (_EJ0, 1, NotSerialized)  // _EJx: Eject Device, x=0-9
+            {
+                MEJ0 (_UID, Arg0)
+            }
+        }
+
+        Device (MP02)
+        {
+            Name (_UID, "0x02")  // _UID: Unique ID
+            Name (_HID, EisaId ("PNP0C80") /* Memory Device */)  // _HID: Hardware ID
+            Method (_CRS, 0, NotSerialized)  // _CRS: Current Resource Settings
+            {
+                Return (MCRS (_UID))
+            }
+
+            Method (_STA, 0, NotSerialized)  // _STA: Status
+            {
+                Return (MRST (_UID))
+            }
+
+            Method (_PXM, 0, NotSerialized)  // _PXM: Device Proximity
+            {
+                Return (MPXM (_UID))
+            }
+
+            Method (_OST, 3, NotSerialized)  // _OST: OSPM Status Indication
+            {
+                MOST (_UID, Arg0, Arg1, Arg2)
+            }
+
+            Method (_EJ0, 1, NotSerialized)  // _EJx: Eject Device, x=0-9
+            {
+                MEJ0 (_UID, Arg0)
+            }
+        }
+
+        Method (MTFY, 2, NotSerialized)
+        {
+            If ((Arg0 == Zero))
+            {
+                Notify (MP00, Arg1)
+            }
+
+            If ((Arg0 == One))
+            {
+                Notify (MP01, Arg1)
+            }
+
+            If ((Arg0 == 0x02))
+            {
+                Notify (MP02, Arg1)
+            }
+        }
+    }
+
+    Method (\_GPE._E03, 0, NotSerialized)  // _Exx: Edge-Triggered GPE, xx=0x00-0xFF
+    {
+        \_SB.MHPC.MSCN ()
+    }
+
+    Scope (_GPE)
+    {
+        Name (_HID, "ACPI0006" /* GPE Block Device */)  // _HID: Hardware ID
+    }
+
+    Scope (\_SB.PCI0)
+    {
+        Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+        {
+            WordBusNumber (ResourceProducer, MinFixed, MaxFixed, PosDecode,
+                0x0000,             // Granularity
+                0x0000,             // Range Minimum
+                0x00FF,             // Range Maximum
+                0x0000,             // Translation Offset
+                0x0100,             // Length
+                ,, )
+            IO (Decode16,
+                0x0CF8,             // Range Minimum
+                0x0CF8,             // Range Maximum
+                0x01,               // Alignment
+                0x08,               // Length
+                )
+            WordIO (ResourceProducer, MinFixed, MaxFixed, PosDecode, EntireRange,
+                0x0000,             // Granularity
+                0x0000,             // Range Minimum
+                0x0CF7,             // Range Maximum
+                0x0000,             // Translation Offset
+                0x0CF8,             // Length
+                ,, , TypeStatic, DenseTranslation)
+            WordIO (ResourceProducer, MinFixed, MaxFixed, PosDecode, EntireRange,
+                0x0000,             // Granularity
+                0x0D00,             // Range Minimum
+                0xFFFF,             // Range Maximum
+                0x0000,             // Translation Offset
+                0xF300,             // Length
+                ,, , TypeStatic, DenseTranslation)
+            DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, Cacheable, ReadWrite,
+                0x00000000,         // Granularity
+                0x000A0000,         // Range Minimum
+                0x000BFFFF,         // Range Maximum
+                0x00000000,         // Translation Offset
+                0x00020000,         // Length
+                ,, , AddressRangeMemory, TypeStatic)
+            DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, NonCacheable, ReadWrite,
+                0x00000000,         // Granularity
+                0x08000000,         // Range Minimum
+                0xAFFFFFFF,         // Range Maximum
+                0x00000000,         // Translation Offset
+                0xA8000000,         // Length
+                ,, , AddressRangeMemory, TypeStatic)
+            DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, NonCacheable, ReadWrite,
+                0x00000000,         // Granularity
+                0xC0000000,         // Range Minimum
+                0xFEBFFFFF,         // Range Maximum
+                0x00000000,         // Translation Offset
+                0x3EC00000,         // Length
+                ,, , AddressRangeMemory, TypeStatic)
+            QWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, Cacheable, ReadWrite,
+                0x0000000000000000, // Granularity
+                0x0000000200000000, // Range Minimum
+                0x00000009FFFFFFFF, // Range Maximum
+                0x0000000000000000, // Translation Offset
+                0x0000000800000000, // Length
+                ,, , AddressRangeMemory, TypeStatic)
+        })
+        Device (GPE0)
+        {
+            Name (_HID, "PNP0A06" /* Generic Container Device */)  // _HID: Hardware ID
+            Name (_UID, "GPE0 resources")  // _UID: Unique ID
+            Name (_STA, 0x0B)  // _STA: Status
+            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+            {
+                IO (Decode16,
+                    0x0620,             // Range Minimum
+                    0x0620,             // Range Maximum
+                    0x01,               // Alignment
+                    0x10,               // Length
+                    )
+            })
+        }
+    }
+
+    Scope (\)
+    {
+        Name (_S3, Package (0x04)  // _S3_: S3 System State
+        {
+            One, 
+            One, 
+            Zero, 
+            Zero
+        })
+        Name (_S4, Package (0x04)  // _S4_: S4 System State
+        {
+            0x02, 
+            0x02, 
+            Zero, 
+            Zero
+        })
+        Name (_S5, Package (0x04)  // _S5_: S5 System State
+        {
+            Zero, 
+            Zero, 
+            Zero, 
+            Zero
+        })
+    }
+
+    Scope (\_SB.PCI0)
+    {
+        Device (FWCF)
+        {
+            Name (_HID, "QEMU0002")  // _HID: Hardware ID
+            Name (_STA, 0x0B)  // _STA: Status
+            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+            {
+                IO (Decode16,
+                    0x0510,             // Range Minimum
+                    0x0510,             // Range Maximum
+                    0x01,               // Alignment
+                    0x0C,               // Length
+                    )
+            })
+        }
+    }
+
+    Scope (\_SB)
+    {
+        Scope (PCI0)
+        {
+            Device (S00)
+            {
+                Name (_ADR, Zero)  // _ADR: Address
+            }
+
+            Device (S08)
+            {
+                Name (_ADR, 0x00010000)  // _ADR: Address
+                Method (_S1D, 0, NotSerialized)  // _S1D: S1 Device State
+                {
+                    Return (Zero)
+                }
+
+                Method (_S2D, 0, NotSerialized)  // _S2D: S2 Device State
+                {
+                    Return (Zero)
+                }
+
+                Method (_S3D, 0, NotSerialized)  // _S3D: S3 Device State
+                {
+                    Return (Zero)
+                }
+            }
+
+            Method (PCNT, 0, NotSerialized)
+            {
+            }
+        }
+    }
+}
+
diff --git a/tests/data/acpi/q35/DSDT.mmio64 b/tests/data/acpi/q35/DSDT.mmio64
index 99b7b2ae4ba36b8ca7901626c1561d29100087d2..092fdc32628f5a145b510c2a46de8b02222b1951 100644
GIT binary patch
delta 33
pcmaFndf%1HCD<k8z7hii<H?O&wMv{GtTFMyPVoW`lP4(o0|3FB3YP!?

delta 41
wcmccb`plKfCD<k8nGyp7W9mk(S|v_@)|mKUr+5MP$rF_P*+tj_oc%%=01~VVo&W#<

diff --git a/tests/data/acpi/q35/DSDT.mmio64.dsl b/tests/data/acpi/q35/DSDT.mmio64.dsl
new file mode 100644
index 0000000000..a724c886e8
--- /dev/null
+++ b/tests/data/acpi/q35/DSDT.mmio64.dsl
@@ -0,0 +1,3377 @@ 
+/*
+ * Intel ACPI Component Architecture
+ * AML/ASL+ Disassembler version 20190509 (64-bit version)
+ * Copyright (c) 2000 - 2019 Intel Corporation
+ * 
+ * Disassembling to symbolic ASL+ operators
+ *
+ * Disassembly of tests/data/acpi/q35/DSDT.mmio64, Tue Aug  4 11:14:15 2020
+ *
+ * Original Table Header:
+ *     Signature        "DSDT"
+ *     Length           0x00002268 (8808)
+ *     Revision         0x01 **** 32-bit table (V1), no 64-bit math support
+ *     Checksum         0x59
+ *     OEM ID           "BOCHS "
+ *     OEM Table ID     "BXPCDSDT"
+ *     OEM Revision     0x00000001 (1)
+ *     Compiler ID      "BXPC"
+ *     Compiler Version 0x00000001 (1)
+ */
+DefinitionBlock ("", "DSDT", 1, "BOCHS ", "BXPCDSDT", 0x00000001)
+{
+    Scope (\)
+    {
+        OperationRegion (DBG, SystemIO, 0x0402, One)
+        Field (DBG, ByteAcc, NoLock, Preserve)
+        {
+            DBGB,   8
+        }
+
+        Method (DBUG, 1, NotSerialized)
+        {
+            ToHexString (Arg0, Local0)
+            ToBuffer (Local0, Local0)
+            Local1 = (SizeOf (Local0) - One)
+            Local2 = Zero
+            While ((Local2 < Local1))
+            {
+                DBGB = DerefOf (Local0 [Local2])
+                Local2++
+            }
+
+            DBGB = 0x0A
+        }
+    }
+
+    Scope (_SB)
+    {
+        Device (PCI0)
+        {
+            Name (_HID, EisaId ("PNP0A08") /* PCI Express Bus */)  // _HID: Hardware ID
+            Name (_CID, EisaId ("PNP0A03") /* PCI Bus */)  // _CID: Compatible ID
+            Name (_ADR, Zero)  // _ADR: Address
+            Name (_UID, Zero)  // _UID: Unique ID
+            Method (_OSC, 4, NotSerialized)  // _OSC: Operating System Capabilities
+            {
+                CreateDWordField (Arg3, Zero, CDW1)
+                If ((Arg0 == ToUUID ("33db4d5b-1ff7-401c-9657-7441c03dd766") /* PCI Host Bridge Device */))
+                {
+                    CreateDWordField (Arg3, 0x04, CDW2)
+                    CreateDWordField (Arg3, 0x08, CDW3)
+                    Local0 = CDW3 /* \_SB_.PCI0._OSC.CDW3 */
+                    Local0 &= 0x1F
+                    If ((Arg1 != One))
+                    {
+                        CDW1 |= 0x08
+                    }
+
+                    If ((CDW3 != Local0))
+                    {
+                        CDW1 |= 0x10
+                    }
+
+                    CDW3 = Local0
+                }
+                Else
+                {
+                    CDW1 |= 0x04
+                }
+
+                Return (Arg3)
+            }
+        }
+    }
+
+    Scope (_SB)
+    {
+        Device (HPET)
+        {
+            Name (_HID, EisaId ("PNP0103") /* HPET System Timer */)  // _HID: Hardware ID
+            Name (_UID, Zero)  // _UID: Unique ID
+            OperationRegion (HPTM, SystemMemory, 0xFED00000, 0x0400)
+            Field (HPTM, DWordAcc, Lock, Preserve)
+            {
+                VEND,   32, 
+                PRD,    32
+            }
+
+            Method (_STA, 0, NotSerialized)  // _STA: Status
+            {
+                Local0 = VEND /* \_SB_.HPET.VEND */
+                Local1 = PRD /* \_SB_.HPET.PRD_ */
+                Local0 >>= 0x10
+                If (((Local0 == Zero) || (Local0 == 0xFFFF)))
+                {
+                    Return (Zero)
+                }
+
+                If (((Local1 == Zero) || (Local1 > 0x05F5E100)))
+                {
+                    Return (Zero)
+                }
+
+                Return (0x0F)
+            }
+
+            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+            {
+                Memory32Fixed (ReadOnly,
+                    0xFED00000,         // Address Base
+                    0x00000400,         // Address Length
+                    )
+            })
+        }
+    }
+
+    Scope (_SB.PCI0)
+    {
+        Device (ISA)
+        {
+            Name (_ADR, 0x001F0000)  // _ADR: Address
+            OperationRegion (PIRQ, PCI_Config, 0x60, 0x0C)
+        }
+    }
+
+    Scope (_SB.PCI0.ISA)
+    {
+        Device (KBD)
+        {
+            Name (_HID, EisaId ("PNP0303") /* IBM Enhanced Keyboard (101/102-key, PS/2 Mouse) */)  // _HID: Hardware ID
+            Name (_STA, 0x0F)  // _STA: Status
+            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+            {
+                IO (Decode16,
+                    0x0060,             // Range Minimum
+                    0x0060,             // Range Maximum
+                    0x01,               // Alignment
+                    0x01,               // Length
+                    )
+                IO (Decode16,
+                    0x0064,             // Range Minimum
+                    0x0064,             // Range Maximum
+                    0x01,               // Alignment
+                    0x01,               // Length
+                    )
+                IRQNoFlags ()
+                    {1}
+            })
+        }
+
+        Device (MOU)
+        {
+            Name (_HID, EisaId ("PNP0F13") /* PS/2 Mouse */)  // _HID: Hardware ID
+            Name (_STA, 0x0F)  // _STA: Status
+            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+            {
+                IRQNoFlags ()
+                    {12}
+            })
+        }
+
+        Device (LPT1)
+        {
+            Name (_HID, EisaId ("PNP0400") /* Standard LPT Parallel Port */)  // _HID: Hardware ID
+            Name (_UID, One)  // _UID: Unique ID
+            Name (_STA, 0x0F)  // _STA: Status
+            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+            {
+                IO (Decode16,
+                    0x0378,             // Range Minimum
+                    0x0378,             // Range Maximum
+                    0x08,               // Alignment
+                    0x08,               // Length
+                    )
+                IRQNoFlags ()
+                    {7}
+            })
+        }
+
+        Device (COM1)
+        {
+            Name (_HID, EisaId ("PNP0501") /* 16550A-compatible COM Serial Port */)  // _HID: Hardware ID
+            Name (_UID, One)  // _UID: Unique ID
+            Name (_STA, 0x0F)  // _STA: Status
+            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+            {
+                IO (Decode16,
+                    0x03F8,             // Range Minimum
+                    0x03F8,             // Range Maximum
+                    0x00,               // Alignment
+                    0x08,               // Length
+                    )
+                IRQNoFlags ()
+                    {4}
+            })
+        }
+
+        Device (RTC)
+        {
+            Name (_HID, EisaId ("PNP0B00") /* AT Real-Time Clock */)  // _HID: Hardware ID
+            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+            {
+                IO (Decode16,
+                    0x0070,             // Range Minimum
+                    0x0070,             // Range Maximum
+                    0x01,               // Alignment
+                    0x08,               // Length
+                    )
+                IRQNoFlags ()
+                    {8}
+            })
+        }
+    }
+
+    Name (PICF, Zero)
+    Method (_PIC, 1, NotSerialized)  // _PIC: Interrupt Model
+    {
+        PICF = Arg0
+    }
+
+    Scope (_SB)
+    {
+        Scope (PCI0)
+        {
+            Name (PRTP, Package (0x80)
+            {
+                Package (0x04)
+                {
+                    0xFFFF, 
+                    Zero, 
+                    LNKE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0xFFFF, 
+                    One, 
+                    LNKF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0xFFFF, 
+                    0x02, 
+                    LNKG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0xFFFF, 
+                    0x03, 
+                    LNKH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0001FFFF, 
+                    Zero, 
+                    LNKF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0001FFFF, 
+                    One, 
+                    LNKG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0001FFFF, 
+                    0x02, 
+                    LNKH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0001FFFF, 
+                    0x03, 
+                    LNKE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0002FFFF, 
+                    Zero, 
+                    LNKG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0002FFFF, 
+                    One, 
+                    LNKH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0002FFFF, 
+                    0x02, 
+                    LNKE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0002FFFF, 
+                    0x03, 
+                    LNKF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0003FFFF, 
+                    Zero, 
+                    LNKH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0003FFFF, 
+                    One, 
+                    LNKE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0003FFFF, 
+                    0x02, 
+                    LNKF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0003FFFF, 
+                    0x03, 
+                    LNKG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0004FFFF, 
+                    Zero, 
+                    LNKE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0004FFFF, 
+                    One, 
+                    LNKF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0004FFFF, 
+                    0x02, 
+                    LNKG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0004FFFF, 
+                    0x03, 
+                    LNKH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0005FFFF, 
+                    Zero, 
+                    LNKF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0005FFFF, 
+                    One, 
+                    LNKG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0005FFFF, 
+                    0x02, 
+                    LNKH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0005FFFF, 
+                    0x03, 
+                    LNKE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0006FFFF, 
+                    Zero, 
+                    LNKG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0006FFFF, 
+                    One, 
+                    LNKH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0006FFFF, 
+                    0x02, 
+                    LNKE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0006FFFF, 
+                    0x03, 
+                    LNKF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0007FFFF, 
+                    Zero, 
+                    LNKH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0007FFFF, 
+                    One, 
+                    LNKE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0007FFFF, 
+                    0x02, 
+                    LNKF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0007FFFF, 
+                    0x03, 
+                    LNKG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0008FFFF, 
+                    Zero, 
+                    LNKE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0008FFFF, 
+                    One, 
+                    LNKF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0008FFFF, 
+                    0x02, 
+                    LNKG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0008FFFF, 
+                    0x03, 
+                    LNKH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0009FFFF, 
+                    Zero, 
+                    LNKF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0009FFFF, 
+                    One, 
+                    LNKG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0009FFFF, 
+                    0x02, 
+                    LNKH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0009FFFF, 
+                    0x03, 
+                    LNKE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000AFFFF, 
+                    Zero, 
+                    LNKG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000AFFFF, 
+                    One, 
+                    LNKH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000AFFFF, 
+                    0x02, 
+                    LNKE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000AFFFF, 
+                    0x03, 
+                    LNKF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000BFFFF, 
+                    Zero, 
+                    LNKH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000BFFFF, 
+                    One, 
+                    LNKE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000BFFFF, 
+                    0x02, 
+                    LNKF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000BFFFF, 
+                    0x03, 
+                    LNKG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000CFFFF, 
+                    Zero, 
+                    LNKE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000CFFFF, 
+                    One, 
+                    LNKF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000CFFFF, 
+                    0x02, 
+                    LNKG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000CFFFF, 
+                    0x03, 
+                    LNKH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000DFFFF, 
+                    Zero, 
+                    LNKF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000DFFFF, 
+                    One, 
+                    LNKG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000DFFFF, 
+                    0x02, 
+                    LNKH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000DFFFF, 
+                    0x03, 
+                    LNKE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000EFFFF, 
+                    Zero, 
+                    LNKG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000EFFFF, 
+                    One, 
+                    LNKH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000EFFFF, 
+                    0x02, 
+                    LNKE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000EFFFF, 
+                    0x03, 
+                    LNKF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000FFFFF, 
+                    Zero, 
+                    LNKH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000FFFFF, 
+                    One, 
+                    LNKE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000FFFFF, 
+                    0x02, 
+                    LNKF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000FFFFF, 
+                    0x03, 
+                    LNKG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0010FFFF, 
+                    Zero, 
+                    LNKE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0010FFFF, 
+                    One, 
+                    LNKF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0010FFFF, 
+                    0x02, 
+                    LNKG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0010FFFF, 
+                    0x03, 
+                    LNKH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0011FFFF, 
+                    Zero, 
+                    LNKF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0011FFFF, 
+                    One, 
+                    LNKG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0011FFFF, 
+                    0x02, 
+                    LNKH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0011FFFF, 
+                    0x03, 
+                    LNKE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0012FFFF, 
+                    Zero, 
+                    LNKG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0012FFFF, 
+                    One, 
+                    LNKH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0012FFFF, 
+                    0x02, 
+                    LNKE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0012FFFF, 
+                    0x03, 
+                    LNKF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0013FFFF, 
+                    Zero, 
+                    LNKH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0013FFFF, 
+                    One, 
+                    LNKE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0013FFFF, 
+                    0x02, 
+                    LNKF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0013FFFF, 
+                    0x03, 
+                    LNKG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0014FFFF, 
+                    Zero, 
+                    LNKE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0014FFFF, 
+                    One, 
+                    LNKF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0014FFFF, 
+                    0x02, 
+                    LNKG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0014FFFF, 
+                    0x03, 
+                    LNKH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0015FFFF, 
+                    Zero, 
+                    LNKF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0015FFFF, 
+                    One, 
+                    LNKG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0015FFFF, 
+                    0x02, 
+                    LNKH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0015FFFF, 
+                    0x03, 
+                    LNKE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0016FFFF, 
+                    Zero, 
+                    LNKG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0016FFFF, 
+                    One, 
+                    LNKH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0016FFFF, 
+                    0x02, 
+                    LNKE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0016FFFF, 
+                    0x03, 
+                    LNKF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0017FFFF, 
+                    Zero, 
+                    LNKH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0017FFFF, 
+                    One, 
+                    LNKE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0017FFFF, 
+                    0x02, 
+                    LNKF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0017FFFF, 
+                    0x03, 
+                    LNKG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0018FFFF, 
+                    Zero, 
+                    LNKE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0018FFFF, 
+                    One, 
+                    LNKF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0018FFFF, 
+                    0x02, 
+                    LNKG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0018FFFF, 
+                    0x03, 
+                    LNKH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0019FFFF, 
+                    Zero, 
+                    LNKA, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0019FFFF, 
+                    One, 
+                    LNKB, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0019FFFF, 
+                    0x02, 
+                    LNKC, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0019FFFF, 
+                    0x03, 
+                    LNKD, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001AFFFF, 
+                    Zero, 
+                    LNKA, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001AFFFF, 
+                    One, 
+                    LNKB, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001AFFFF, 
+                    0x02, 
+                    LNKC, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001AFFFF, 
+                    0x03, 
+                    LNKD, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001BFFFF, 
+                    Zero, 
+                    LNKA, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001BFFFF, 
+                    One, 
+                    LNKB, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001BFFFF, 
+                    0x02, 
+                    LNKC, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001BFFFF, 
+                    0x03, 
+                    LNKD, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001CFFFF, 
+                    Zero, 
+                    LNKA, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001CFFFF, 
+                    One, 
+                    LNKB, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001CFFFF, 
+                    0x02, 
+                    LNKC, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001CFFFF, 
+                    0x03, 
+                    LNKD, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001DFFFF, 
+                    Zero, 
+                    LNKA, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001DFFFF, 
+                    One, 
+                    LNKB, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001DFFFF, 
+                    0x02, 
+                    LNKC, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001DFFFF, 
+                    0x03, 
+                    LNKD, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001EFFFF, 
+                    Zero, 
+                    LNKE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001EFFFF, 
+                    One, 
+                    LNKF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001EFFFF, 
+                    0x02, 
+                    LNKG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001EFFFF, 
+                    0x03, 
+                    LNKH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001FFFFF, 
+                    Zero, 
+                    LNKA, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001FFFFF, 
+                    One, 
+                    LNKB, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001FFFFF, 
+                    0x02, 
+                    LNKC, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001FFFFF, 
+                    0x03, 
+                    LNKD, 
+                    Zero
+                }
+            })
+            Name (PRTA, Package (0x80)
+            {
+                Package (0x04)
+                {
+                    0xFFFF, 
+                    Zero, 
+                    GSIE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0xFFFF, 
+                    One, 
+                    GSIF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0xFFFF, 
+                    0x02, 
+                    GSIG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0xFFFF, 
+                    0x03, 
+                    GSIH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0001FFFF, 
+                    Zero, 
+                    GSIF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0001FFFF, 
+                    One, 
+                    GSIG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0001FFFF, 
+                    0x02, 
+                    GSIH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0001FFFF, 
+                    0x03, 
+                    GSIE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0002FFFF, 
+                    Zero, 
+                    GSIG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0002FFFF, 
+                    One, 
+                    GSIH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0002FFFF, 
+                    0x02, 
+                    GSIE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0002FFFF, 
+                    0x03, 
+                    GSIF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0003FFFF, 
+                    Zero, 
+                    GSIH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0003FFFF, 
+                    One, 
+                    GSIE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0003FFFF, 
+                    0x02, 
+                    GSIF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0003FFFF, 
+                    0x03, 
+                    GSIG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0004FFFF, 
+                    Zero, 
+                    GSIE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0004FFFF, 
+                    One, 
+                    GSIF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0004FFFF, 
+                    0x02, 
+                    GSIG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0004FFFF, 
+                    0x03, 
+                    GSIH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0005FFFF, 
+                    Zero, 
+                    GSIF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0005FFFF, 
+                    One, 
+                    GSIG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0005FFFF, 
+                    0x02, 
+                    GSIH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0005FFFF, 
+                    0x03, 
+                    GSIE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0006FFFF, 
+                    Zero, 
+                    GSIG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0006FFFF, 
+                    One, 
+                    GSIH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0006FFFF, 
+                    0x02, 
+                    GSIE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0006FFFF, 
+                    0x03, 
+                    GSIF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0007FFFF, 
+                    Zero, 
+                    GSIH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0007FFFF, 
+                    One, 
+                    GSIE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0007FFFF, 
+                    0x02, 
+                    GSIF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0007FFFF, 
+                    0x03, 
+                    GSIG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0008FFFF, 
+                    Zero, 
+                    GSIE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0008FFFF, 
+                    One, 
+                    GSIF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0008FFFF, 
+                    0x02, 
+                    GSIG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0008FFFF, 
+                    0x03, 
+                    GSIH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0009FFFF, 
+                    Zero, 
+                    GSIF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0009FFFF, 
+                    One, 
+                    GSIG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0009FFFF, 
+                    0x02, 
+                    GSIH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0009FFFF, 
+                    0x03, 
+                    GSIE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000AFFFF, 
+                    Zero, 
+                    GSIG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000AFFFF, 
+                    One, 
+                    GSIH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000AFFFF, 
+                    0x02, 
+                    GSIE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000AFFFF, 
+                    0x03, 
+                    GSIF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000BFFFF, 
+                    Zero, 
+                    GSIH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000BFFFF, 
+                    One, 
+                    GSIE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000BFFFF, 
+                    0x02, 
+                    GSIF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000BFFFF, 
+                    0x03, 
+                    GSIG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000CFFFF, 
+                    Zero, 
+                    GSIE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000CFFFF, 
+                    One, 
+                    GSIF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000CFFFF, 
+                    0x02, 
+                    GSIG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000CFFFF, 
+                    0x03, 
+                    GSIH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000DFFFF, 
+                    Zero, 
+                    GSIF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000DFFFF, 
+                    One, 
+                    GSIG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000DFFFF, 
+                    0x02, 
+                    GSIH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000DFFFF, 
+                    0x03, 
+                    GSIE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000EFFFF, 
+                    Zero, 
+                    GSIG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000EFFFF, 
+                    One, 
+                    GSIH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000EFFFF, 
+                    0x02, 
+                    GSIE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000EFFFF, 
+                    0x03, 
+                    GSIF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000FFFFF, 
+                    Zero, 
+                    GSIH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000FFFFF, 
+                    One, 
+                    GSIE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000FFFFF, 
+                    0x02, 
+                    GSIF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000FFFFF, 
+                    0x03, 
+                    GSIG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0010FFFF, 
+                    Zero, 
+                    GSIE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0010FFFF, 
+                    One, 
+                    GSIF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0010FFFF, 
+                    0x02, 
+                    GSIG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0010FFFF, 
+                    0x03, 
+                    GSIH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0011FFFF, 
+                    Zero, 
+                    GSIF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0011FFFF, 
+                    One, 
+                    GSIG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0011FFFF, 
+                    0x02, 
+                    GSIH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0011FFFF, 
+                    0x03, 
+                    GSIE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0012FFFF, 
+                    Zero, 
+                    GSIG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0012FFFF, 
+                    One, 
+                    GSIH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0012FFFF, 
+                    0x02, 
+                    GSIE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0012FFFF, 
+                    0x03, 
+                    GSIF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0013FFFF, 
+                    Zero, 
+                    GSIH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0013FFFF, 
+                    One, 
+                    GSIE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0013FFFF, 
+                    0x02, 
+                    GSIF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0013FFFF, 
+                    0x03, 
+                    GSIG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0014FFFF, 
+                    Zero, 
+                    GSIE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0014FFFF, 
+                    One, 
+                    GSIF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0014FFFF, 
+                    0x02, 
+                    GSIG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0014FFFF, 
+                    0x03, 
+                    GSIH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0015FFFF, 
+                    Zero, 
+                    GSIF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0015FFFF, 
+                    One, 
+                    GSIG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0015FFFF, 
+                    0x02, 
+                    GSIH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0015FFFF, 
+                    0x03, 
+                    GSIE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0016FFFF, 
+                    Zero, 
+                    GSIG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0016FFFF, 
+                    One, 
+                    GSIH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0016FFFF, 
+                    0x02, 
+                    GSIE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0016FFFF, 
+                    0x03, 
+                    GSIF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0017FFFF, 
+                    Zero, 
+                    GSIH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0017FFFF, 
+                    One, 
+                    GSIE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0017FFFF, 
+                    0x02, 
+                    GSIF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0017FFFF, 
+                    0x03, 
+                    GSIG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0018FFFF, 
+                    Zero, 
+                    GSIE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0018FFFF, 
+                    One, 
+                    GSIF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0018FFFF, 
+                    0x02, 
+                    GSIG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0018FFFF, 
+                    0x03, 
+                    GSIH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0019FFFF, 
+                    Zero, 
+                    GSIA, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0019FFFF, 
+                    One, 
+                    GSIB, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0019FFFF, 
+                    0x02, 
+                    GSIC, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0019FFFF, 
+                    0x03, 
+                    GSID, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001AFFFF, 
+                    Zero, 
+                    GSIA, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001AFFFF, 
+                    One, 
+                    GSIB, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001AFFFF, 
+                    0x02, 
+                    GSIC, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001AFFFF, 
+                    0x03, 
+                    GSID, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001BFFFF, 
+                    Zero, 
+                    GSIA, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001BFFFF, 
+                    One, 
+                    GSIB, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001BFFFF, 
+                    0x02, 
+                    GSIC, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001BFFFF, 
+                    0x03, 
+                    GSID, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001CFFFF, 
+                    Zero, 
+                    GSIA, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001CFFFF, 
+                    One, 
+                    GSIB, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001CFFFF, 
+                    0x02, 
+                    GSIC, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001CFFFF, 
+                    0x03, 
+                    GSID, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001DFFFF, 
+                    Zero, 
+                    GSIA, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001DFFFF, 
+                    One, 
+                    GSIB, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001DFFFF, 
+                    0x02, 
+                    GSIC, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001DFFFF, 
+                    0x03, 
+                    GSID, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001EFFFF, 
+                    Zero, 
+                    GSIE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001EFFFF, 
+                    One, 
+                    GSIF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001EFFFF, 
+                    0x02, 
+                    GSIG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001EFFFF, 
+                    0x03, 
+                    GSIH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001FFFFF, 
+                    Zero, 
+                    GSIA, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001FFFFF, 
+                    One, 
+                    GSIB, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001FFFFF, 
+                    0x02, 
+                    GSIC, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001FFFFF, 
+                    0x03, 
+                    GSID, 
+                    Zero
+                }
+            })
+            Method (_PRT, 0, NotSerialized)  // _PRT: PCI Routing Table
+            {
+                If ((PICF == Zero))
+                {
+                    Return (PRTP) /* \_SB_.PCI0.PRTP */
+                }
+                Else
+                {
+                    Return (PRTA) /* \_SB_.PCI0.PRTA */
+                }
+            }
+        }
+
+        Field (PCI0.ISA.PIRQ, ByteAcc, NoLock, Preserve)
+        {
+            PRQA,   8, 
+            PRQB,   8, 
+            PRQC,   8, 
+            PRQD,   8, 
+            Offset (0x08), 
+            PRQE,   8, 
+            PRQF,   8, 
+            PRQG,   8, 
+            PRQH,   8
+        }
+
+        Method (IQST, 1, NotSerialized)
+        {
+            If ((0x80 & Arg0))
+            {
+                Return (0x09)
+            }
+
+            Return (0x0B)
+        }
+
+        Method (IQCR, 1, Serialized)
+        {
+            Name (PRR0, ResourceTemplate ()
+            {
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, _Y00)
+                {
+                    0x00000000,
+                }
+            })
+            CreateDWordField (PRR0, \_SB.IQCR._Y00._INT, PRRI)  // _INT: Interrupts
+            PRRI = (Arg0 & 0x0F)
+            Return (PRR0) /* \_SB_.IQCR.PRR0 */
+        }
+
+        Device (LNKA)
+        {
+            Name (_HID, EisaId ("PNP0C0F") /* PCI Interrupt Link Device */)  // _HID: Hardware ID
+            Name (_UID, Zero)  // _UID: Unique ID
+            Name (_PRS, ResourceTemplate ()  // _PRS: Possible Resource Settings
+            {
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, )
+                {
+                    0x00000005,
+                    0x0000000A,
+                    0x0000000B,
+                }
+            })
+            Method (_STA, 0, NotSerialized)  // _STA: Status
+            {
+                Return (IQST (PRQA))
+            }
+
+            Method (_DIS, 0, NotSerialized)  // _DIS: Disable Device
+            {
+                PRQA |= 0x80
+            }
+
+            Method (_CRS, 0, NotSerialized)  // _CRS: Current Resource Settings
+            {
+                Return (IQCR (PRQA))
+            }
+
+            Method (_SRS, 1, NotSerialized)  // _SRS: Set Resource Settings
+            {
+                CreateDWordField (Arg0, 0x05, PRRI)
+                PRQA = PRRI /* \_SB_.LNKA._SRS.PRRI */
+            }
+        }
+
+        Device (LNKB)
+        {
+            Name (_HID, EisaId ("PNP0C0F") /* PCI Interrupt Link Device */)  // _HID: Hardware ID
+            Name (_UID, One)  // _UID: Unique ID
+            Name (_PRS, ResourceTemplate ()  // _PRS: Possible Resource Settings
+            {
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, )
+                {
+                    0x00000005,
+                    0x0000000A,
+                    0x0000000B,
+                }
+            })
+            Method (_STA, 0, NotSerialized)  // _STA: Status
+            {
+                Return (IQST (PRQB))
+            }
+
+            Method (_DIS, 0, NotSerialized)  // _DIS: Disable Device
+            {
+                PRQB |= 0x80
+            }
+
+            Method (_CRS, 0, NotSerialized)  // _CRS: Current Resource Settings
+            {
+                Return (IQCR (PRQB))
+            }
+
+            Method (_SRS, 1, NotSerialized)  // _SRS: Set Resource Settings
+            {
+                CreateDWordField (Arg0, 0x05, PRRI)
+                PRQB = PRRI /* \_SB_.LNKB._SRS.PRRI */
+            }
+        }
+
+        Device (LNKC)
+        {
+            Name (_HID, EisaId ("PNP0C0F") /* PCI Interrupt Link Device */)  // _HID: Hardware ID
+            Name (_UID, 0x02)  // _UID: Unique ID
+            Name (_PRS, ResourceTemplate ()  // _PRS: Possible Resource Settings
+            {
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, )
+                {
+                    0x00000005,
+                    0x0000000A,
+                    0x0000000B,
+                }
+            })
+            Method (_STA, 0, NotSerialized)  // _STA: Status
+            {
+                Return (IQST (PRQC))
+            }
+
+            Method (_DIS, 0, NotSerialized)  // _DIS: Disable Device
+            {
+                PRQC |= 0x80
+            }
+
+            Method (_CRS, 0, NotSerialized)  // _CRS: Current Resource Settings
+            {
+                Return (IQCR (PRQC))
+            }
+
+            Method (_SRS, 1, NotSerialized)  // _SRS: Set Resource Settings
+            {
+                CreateDWordField (Arg0, 0x05, PRRI)
+                PRQC = PRRI /* \_SB_.LNKC._SRS.PRRI */
+            }
+        }
+
+        Device (LNKD)
+        {
+            Name (_HID, EisaId ("PNP0C0F") /* PCI Interrupt Link Device */)  // _HID: Hardware ID
+            Name (_UID, 0x03)  // _UID: Unique ID
+            Name (_PRS, ResourceTemplate ()  // _PRS: Possible Resource Settings
+            {
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, )
+                {
+                    0x00000005,
+                    0x0000000A,
+                    0x0000000B,
+                }
+            })
+            Method (_STA, 0, NotSerialized)  // _STA: Status
+            {
+                Return (IQST (PRQD))
+            }
+
+            Method (_DIS, 0, NotSerialized)  // _DIS: Disable Device
+            {
+                PRQD |= 0x80
+            }
+
+            Method (_CRS, 0, NotSerialized)  // _CRS: Current Resource Settings
+            {
+                Return (IQCR (PRQD))
+            }
+
+            Method (_SRS, 1, NotSerialized)  // _SRS: Set Resource Settings
+            {
+                CreateDWordField (Arg0, 0x05, PRRI)
+                PRQD = PRRI /* \_SB_.LNKD._SRS.PRRI */
+            }
+        }
+
+        Device (LNKE)
+        {
+            Name (_HID, EisaId ("PNP0C0F") /* PCI Interrupt Link Device */)  // _HID: Hardware ID
+            Name (_UID, 0x04)  // _UID: Unique ID
+            Name (_PRS, ResourceTemplate ()  // _PRS: Possible Resource Settings
+            {
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, )
+                {
+                    0x00000005,
+                    0x0000000A,
+                    0x0000000B,
+                }
+            })
+            Method (_STA, 0, NotSerialized)  // _STA: Status
+            {
+                Return (IQST (PRQE))
+            }
+
+            Method (_DIS, 0, NotSerialized)  // _DIS: Disable Device
+            {
+                PRQE |= 0x80
+            }
+
+            Method (_CRS, 0, NotSerialized)  // _CRS: Current Resource Settings
+            {
+                Return (IQCR (PRQE))
+            }
+
+            Method (_SRS, 1, NotSerialized)  // _SRS: Set Resource Settings
+            {
+                CreateDWordField (Arg0, 0x05, PRRI)
+                PRQE = PRRI /* \_SB_.LNKE._SRS.PRRI */
+            }
+        }
+
+        Device (LNKF)
+        {
+            Name (_HID, EisaId ("PNP0C0F") /* PCI Interrupt Link Device */)  // _HID: Hardware ID
+            Name (_UID, 0x05)  // _UID: Unique ID
+            Name (_PRS, ResourceTemplate ()  // _PRS: Possible Resource Settings
+            {
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, )
+                {
+                    0x00000005,
+                    0x0000000A,
+                    0x0000000B,
+                }
+            })
+            Method (_STA, 0, NotSerialized)  // _STA: Status
+            {
+                Return (IQST (PRQF))
+            }
+
+            Method (_DIS, 0, NotSerialized)  // _DIS: Disable Device
+            {
+                PRQF |= 0x80
+            }
+
+            Method (_CRS, 0, NotSerialized)  // _CRS: Current Resource Settings
+            {
+                Return (IQCR (PRQF))
+            }
+
+            Method (_SRS, 1, NotSerialized)  // _SRS: Set Resource Settings
+            {
+                CreateDWordField (Arg0, 0x05, PRRI)
+                PRQF = PRRI /* \_SB_.LNKF._SRS.PRRI */
+            }
+        }
+
+        Device (LNKG)
+        {
+            Name (_HID, EisaId ("PNP0C0F") /* PCI Interrupt Link Device */)  // _HID: Hardware ID
+            Name (_UID, 0x06)  // _UID: Unique ID
+            Name (_PRS, ResourceTemplate ()  // _PRS: Possible Resource Settings
+            {
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, )
+                {
+                    0x00000005,
+                    0x0000000A,
+                    0x0000000B,
+                }
+            })
+            Method (_STA, 0, NotSerialized)  // _STA: Status
+            {
+                Return (IQST (PRQG))
+            }
+
+            Method (_DIS, 0, NotSerialized)  // _DIS: Disable Device
+            {
+                PRQG |= 0x80
+            }
+
+            Method (_CRS, 0, NotSerialized)  // _CRS: Current Resource Settings
+            {
+                Return (IQCR (PRQG))
+            }
+
+            Method (_SRS, 1, NotSerialized)  // _SRS: Set Resource Settings
+            {
+                CreateDWordField (Arg0, 0x05, PRRI)
+                PRQG = PRRI /* \_SB_.LNKG._SRS.PRRI */
+            }
+        }
+
+        Device (LNKH)
+        {
+            Name (_HID, EisaId ("PNP0C0F") /* PCI Interrupt Link Device */)  // _HID: Hardware ID
+            Name (_UID, 0x07)  // _UID: Unique ID
+            Name (_PRS, ResourceTemplate ()  // _PRS: Possible Resource Settings
+            {
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, )
+                {
+                    0x00000005,
+                    0x0000000A,
+                    0x0000000B,
+                }
+            })
+            Method (_STA, 0, NotSerialized)  // _STA: Status
+            {
+                Return (IQST (PRQH))
+            }
+
+            Method (_DIS, 0, NotSerialized)  // _DIS: Disable Device
+            {
+                PRQH |= 0x80
+            }
+
+            Method (_CRS, 0, NotSerialized)  // _CRS: Current Resource Settings
+            {
+                Return (IQCR (PRQH))
+            }
+
+            Method (_SRS, 1, NotSerialized)  // _SRS: Set Resource Settings
+            {
+                CreateDWordField (Arg0, 0x05, PRRI)
+                PRQH = PRRI /* \_SB_.LNKH._SRS.PRRI */
+            }
+        }
+
+        Device (GSIA)
+        {
+            Name (_HID, EisaId ("PNP0C0F") /* PCI Interrupt Link Device */)  // _HID: Hardware ID
+            Name (_UID, 0x10)  // _UID: Unique ID
+            Name (_PRS, ResourceTemplate ()  // _PRS: Possible Resource Settings
+            {
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, )
+                {
+                    0x00000010,
+                }
+            })
+            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+            {
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, )
+                {
+                    0x00000010,
+                }
+            })
+            Method (_DIS, 0, NotSerialized)  // _DIS: Disable Device
+            {
+            }
+
+            Method (_SRS, 1, NotSerialized)  // _SRS: Set Resource Settings
+            {
+            }
+        }
+
+        Device (GSIB)
+        {
+            Name (_HID, EisaId ("PNP0C0F") /* PCI Interrupt Link Device */)  // _HID: Hardware ID
+            Name (_UID, 0x11)  // _UID: Unique ID
+            Name (_PRS, ResourceTemplate ()  // _PRS: Possible Resource Settings
+            {
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, )
+                {
+                    0x00000011,
+                }
+            })
+            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+            {
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, )
+                {
+                    0x00000011,
+                }
+            })
+            Method (_DIS, 0, NotSerialized)  // _DIS: Disable Device
+            {
+            }
+
+            Method (_SRS, 1, NotSerialized)  // _SRS: Set Resource Settings
+            {
+            }
+        }
+
+        Device (GSIC)
+        {
+            Name (_HID, EisaId ("PNP0C0F") /* PCI Interrupt Link Device */)  // _HID: Hardware ID
+            Name (_UID, 0x12)  // _UID: Unique ID
+            Name (_PRS, ResourceTemplate ()  // _PRS: Possible Resource Settings
+            {
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, )
+                {
+                    0x00000012,
+                }
+            })
+            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+            {
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, )
+                {
+                    0x00000012,
+                }
+            })
+            Method (_DIS, 0, NotSerialized)  // _DIS: Disable Device
+            {
+            }
+
+            Method (_SRS, 1, NotSerialized)  // _SRS: Set Resource Settings
+            {
+            }
+        }
+
+        Device (GSID)
+        {
+            Name (_HID, EisaId ("PNP0C0F") /* PCI Interrupt Link Device */)  // _HID: Hardware ID
+            Name (_UID, 0x13)  // _UID: Unique ID
+            Name (_PRS, ResourceTemplate ()  // _PRS: Possible Resource Settings
+            {
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, )
+                {
+                    0x00000013,
+                }
+            })
+            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+            {
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, )
+                {
+                    0x00000013,
+                }
+            })
+            Method (_DIS, 0, NotSerialized)  // _DIS: Disable Device
+            {
+            }
+
+            Method (_SRS, 1, NotSerialized)  // _SRS: Set Resource Settings
+            {
+            }
+        }
+
+        Device (GSIE)
+        {
+            Name (_HID, EisaId ("PNP0C0F") /* PCI Interrupt Link Device */)  // _HID: Hardware ID
+            Name (_UID, 0x14)  // _UID: Unique ID
+            Name (_PRS, ResourceTemplate ()  // _PRS: Possible Resource Settings
+            {
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, )
+                {
+                    0x00000014,
+                }
+            })
+            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+            {
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, )
+                {
+                    0x00000014,
+                }
+            })
+            Method (_DIS, 0, NotSerialized)  // _DIS: Disable Device
+            {
+            }
+
+            Method (_SRS, 1, NotSerialized)  // _SRS: Set Resource Settings
+            {
+            }
+        }
+
+        Device (GSIF)
+        {
+            Name (_HID, EisaId ("PNP0C0F") /* PCI Interrupt Link Device */)  // _HID: Hardware ID
+            Name (_UID, 0x15)  // _UID: Unique ID
+            Name (_PRS, ResourceTemplate ()  // _PRS: Possible Resource Settings
+            {
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, )
+                {
+                    0x00000015,
+                }
+            })
+            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+            {
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, )
+                {
+                    0x00000015,
+                }
+            })
+            Method (_DIS, 0, NotSerialized)  // _DIS: Disable Device
+            {
+            }
+
+            Method (_SRS, 1, NotSerialized)  // _SRS: Set Resource Settings
+            {
+            }
+        }
+
+        Device (GSIG)
+        {
+            Name (_HID, EisaId ("PNP0C0F") /* PCI Interrupt Link Device */)  // _HID: Hardware ID
+            Name (_UID, 0x16)  // _UID: Unique ID
+            Name (_PRS, ResourceTemplate ()  // _PRS: Possible Resource Settings
+            {
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, )
+                {
+                    0x00000016,
+                }
+            })
+            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+            {
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, )
+                {
+                    0x00000016,
+                }
+            })
+            Method (_DIS, 0, NotSerialized)  // _DIS: Disable Device
+            {
+            }
+
+            Method (_SRS, 1, NotSerialized)  // _SRS: Set Resource Settings
+            {
+            }
+        }
+
+        Device (GSIH)
+        {
+            Name (_HID, EisaId ("PNP0C0F") /* PCI Interrupt Link Device */)  // _HID: Hardware ID
+            Name (_UID, 0x17)  // _UID: Unique ID
+            Name (_PRS, ResourceTemplate ()  // _PRS: Possible Resource Settings
+            {
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, )
+                {
+                    0x00000017,
+                }
+            })
+            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+            {
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, )
+                {
+                    0x00000017,
+                }
+            })
+            Method (_DIS, 0, NotSerialized)  // _DIS: Disable Device
+            {
+            }
+
+            Method (_SRS, 1, NotSerialized)  // _SRS: Set Resource Settings
+            {
+            }
+        }
+    }
+
+    Scope (_SB.PCI0)
+    {
+        Device (SMB0)
+        {
+            Name (_ADR, 0x001F0003)  // _ADR: Address
+        }
+    }
+
+    Scope (_SB)
+    {
+        Device (\_SB.PCI0.PRES)
+        {
+            Name (_HID, EisaId ("PNP0A06") /* Generic Container Device */)  // _HID: Hardware ID
+            Name (_UID, "CPU Hotplug resources")  // _UID: Unique ID
+            Mutex (CPLK, 0x00)
+            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+            {
+                IO (Decode16,
+                    0x0CD8,             // Range Minimum
+                    0x0CD8,             // Range Maximum
+                    0x01,               // Alignment
+                    0x0C,               // Length
+                    )
+            })
+            OperationRegion (PRST, SystemIO, 0x0CD8, 0x0C)
+            Field (PRST, ByteAcc, NoLock, WriteAsZeros)
+            {
+                Offset (0x04), 
+                CPEN,   1, 
+                CINS,   1, 
+                CRMV,   1, 
+                CEJ0,   1, 
+                Offset (0x05), 
+                CCMD,   8
+            }
+
+            Field (PRST, DWordAcc, NoLock, Preserve)
+            {
+                CSEL,   32, 
+                Offset (0x08), 
+                CDAT,   32
+            }
+
+            Method (_INI, 0, Serialized)  // _INI: Initialize
+            {
+                CSEL = Zero
+            }
+        }
+
+        Device (\_SB.CPUS)
+        {
+            Name (_HID, "ACPI0010" /* Processor Container Device */)  // _HID: Hardware ID
+            Name (_CID, EisaId ("PNP0A05") /* Generic Container Device */)  // _CID: Compatible ID
+            Method (CTFY, 2, NotSerialized)
+            {
+                If ((Arg0 == Zero))
+                {
+                    Notify (C000, Arg1)
+                }
+            }
+
+            Method (CSTA, 1, Serialized)
+            {
+                Acquire (\_SB.PCI0.PRES.CPLK, 0xFFFF)
+                \_SB.PCI0.PRES.CSEL = Arg0
+                Local0 = Zero
+                If ((\_SB.PCI0.PRES.CPEN == One))
+                {
+                    Local0 = 0x0F
+                }
+
+                Release (\_SB.PCI0.PRES.CPLK)
+                Return (Local0)
+            }
+
+            Method (CEJ0, 1, Serialized)
+            {
+                Acquire (\_SB.PCI0.PRES.CPLK, 0xFFFF)
+                \_SB.PCI0.PRES.CSEL = Arg0
+                \_SB.PCI0.PRES.CEJ0 = One
+                Release (\_SB.PCI0.PRES.CPLK)
+            }
+
+            Method (CSCN, 0, Serialized)
+            {
+                Acquire (\_SB.PCI0.PRES.CPLK, 0xFFFF)
+                Local0 = One
+                While ((Local0 == One))
+                {
+                    Local0 = Zero
+                    \_SB.PCI0.PRES.CCMD = Zero
+                    If ((\_SB.PCI0.PRES.CINS == One))
+                    {
+                        CTFY (\_SB.PCI0.PRES.CDAT, One)
+                        \_SB.PCI0.PRES.CINS = One
+                        Local0 = One
+                    }
+                    ElseIf ((\_SB.PCI0.PRES.CRMV == One))
+                    {
+                        CTFY (\_SB.PCI0.PRES.CDAT, 0x03)
+                        \_SB.PCI0.PRES.CRMV = One
+                        Local0 = One
+                    }
+                }
+
+                Release (\_SB.PCI0.PRES.CPLK)
+            }
+
+            Method (COST, 4, Serialized)
+            {
+                Acquire (\_SB.PCI0.PRES.CPLK, 0xFFFF)
+                \_SB.PCI0.PRES.CSEL = Arg0
+                \_SB.PCI0.PRES.CCMD = One
+                \_SB.PCI0.PRES.CDAT = Arg1
+                \_SB.PCI0.PRES.CCMD = 0x02
+                \_SB.PCI0.PRES.CDAT = Arg2
+                Release (\_SB.PCI0.PRES.CPLK)
+            }
+
+            Processor (C000, 0x00, 0x00000000, 0x00)
+            {
+                Method (_STA, 0, Serialized)  // _STA: Status
+                {
+                    Return (CSTA (Zero))
+                }
+
+                Name (_MAT, Buffer (0x08)  // _MAT: Multiple APIC Table Entry
+                {
+                     0x00, 0x08, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00   // ........
+                })
+                Method (_OST, 3, Serialized)  // _OST: OSPM Status Indication
+                {
+                    COST (Zero, Arg0, Arg1, Arg2)
+                }
+
+                Name (_PXM, Zero)  // _PXM: Device Proximity
+            }
+        }
+    }
+
+    Method (\_GPE._E02, 0, NotSerialized)  // _Exx: Edge-Triggered GPE, xx=0x00-0xFF
+    {
+        \_SB.CPUS.CSCN ()
+    }
+
+    Device (\_SB.PCI0.MHPD)
+    {
+        Name (_HID, "PNP0A06" /* Generic Container Device */)  // _HID: Hardware ID
+        Name (_UID, "Memory hotplug resources")  // _UID: Unique ID
+        Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+        {
+            IO (Decode16,
+                0x0A00,             // Range Minimum
+                0x0A00,             // Range Maximum
+                0x00,               // Alignment
+                0x18,               // Length
+                )
+        })
+        OperationRegion (HPMR, SystemIO, 0x0A00, 0x18)
+    }
+
+    Device (\_SB.MHPC)
+    {
+        Name (_HID, "PNP0A06" /* Generic Container Device */)  // _HID: Hardware ID
+        Name (_UID, "DIMM devices")  // _UID: Unique ID
+        Name (MDNR, One)
+        Field (\_SB.PCI0.MHPD.HPMR, DWordAcc, NoLock, Preserve)
+        {
+            MRBL,   32, 
+            MRBH,   32, 
+            MRLL,   32, 
+            MRLH,   32, 
+            MPX,    32
+        }
+
+        Field (\_SB.PCI0.MHPD.HPMR, ByteAcc, NoLock, WriteAsZeros)
+        {
+            Offset (0x14), 
+            MES,    1, 
+            MINS,   1, 
+            MRMV,   1, 
+            MEJ,    1
+        }
+
+        Field (\_SB.PCI0.MHPD.HPMR, DWordAcc, NoLock, Preserve)
+        {
+            MSEL,   32, 
+            MOEV,   32, 
+            MOSC,   32
+        }
+
+        Method (_STA, 0, NotSerialized)  // _STA: Status
+        {
+            If ((MDNR == Zero))
+            {
+                Return (Zero)
+            }
+
+            Return (0x0B)
+        }
+
+        Mutex (MLCK, 0x00)
+        Method (MSCN, 0, NotSerialized)
+        {
+            If ((MDNR == Zero))
+            {
+                Return (Zero)
+            }
+
+            Local0 = Zero
+            Acquire (MLCK, 0xFFFF)
+            While ((Local0 < MDNR))
+            {
+                MSEL = Local0
+                If ((MINS == One))
+                {
+                    MTFY (Local0, One)
+                    MINS = One
+                }
+                ElseIf ((MRMV == One))
+                {
+                    MTFY (Local0, 0x03)
+                    MRMV = One
+                }
+
+                Local0 += One
+            }
+
+            Release (MLCK)
+            Return (One)
+        }
+
+        Method (MRST, 1, NotSerialized)
+        {
+            Local0 = Zero
+            Acquire (MLCK, 0xFFFF)
+            MSEL = ToInteger (Arg0)
+            If ((MES == One))
+            {
+                Local0 = 0x0F
+            }
+
+            Release (MLCK)
+            Return (Local0)
+        }
+
+        Method (MCRS, 1, Serialized)
+        {
+            Acquire (MLCK, 0xFFFF)
+            MSEL = ToInteger (Arg0)
+            Name (MR64, ResourceTemplate ()
+            {
+                QWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, Cacheable, ReadWrite,
+                    0x0000000000000000, // Granularity
+                    0x0000000000000000, // Range Minimum
+                    0xFFFFFFFFFFFFFFFE, // Range Maximum
+                    0x0000000000000000, // Translation Offset
+                    0xFFFFFFFFFFFFFFFF, // Length
+                    ,, _Y01, AddressRangeMemory, TypeStatic)
+            })
+            CreateDWordField (MR64, \_SB.MHPC.MCRS._Y01._MIN, MINL)  // _MIN: Minimum Base Address
+            CreateDWordField (MR64, 0x12, MINH)
+            CreateDWordField (MR64, \_SB.MHPC.MCRS._Y01._LEN, LENL)  // _LEN: Length
+            CreateDWordField (MR64, 0x2A, LENH)
+            CreateDWordField (MR64, \_SB.MHPC.MCRS._Y01._MAX, MAXL)  // _MAX: Maximum Base Address
+            CreateDWordField (MR64, 0x1A, MAXH)
+            MINH = MRBH /* \_SB_.MHPC.MRBH */
+            MINL = MRBL /* \_SB_.MHPC.MRBL */
+            LENH = MRLH /* \_SB_.MHPC.MRLH */
+            LENL = MRLL /* \_SB_.MHPC.MRLL */
+            MAXL = (MINL + LENL) /* \_SB_.MHPC.MCRS.LENL */
+            MAXH = (MINH + LENH) /* \_SB_.MHPC.MCRS.LENH */
+            If ((MAXL < MINL))
+            {
+                MAXH += One
+            }
+
+            If ((MAXL < One))
+            {
+                MAXH -= One
+            }
+
+            MAXL -= One
+            If ((MAXH == Zero))
+            {
+                Name (MR32, ResourceTemplate ()
+                {
+                    DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, Cacheable, ReadWrite,
+                        0x00000000,         // Granularity
+                        0x00000000,         // Range Minimum
+                        0xFFFFFFFE,         // Range Maximum
+                        0x00000000,         // Translation Offset
+                        0xFFFFFFFF,         // Length
+                        ,, _Y02, AddressRangeMemory, TypeStatic)
+                })
+                CreateDWordField (MR32, \_SB.MHPC.MCRS._Y02._MIN, MIN)  // _MIN: Minimum Base Address
+                CreateDWordField (MR32, \_SB.MHPC.MCRS._Y02._MAX, MAX)  // _MAX: Maximum Base Address
+                CreateDWordField (MR32, \_SB.MHPC.MCRS._Y02._LEN, LEN)  // _LEN: Length
+                MIN = MINL /* \_SB_.MHPC.MCRS.MINL */
+                MAX = MAXL /* \_SB_.MHPC.MCRS.MAXL */
+                LEN = LENL /* \_SB_.MHPC.MCRS.LENL */
+                Release (MLCK)
+                Return (MR32) /* \_SB_.MHPC.MCRS.MR32 */
+            }
+
+            Release (MLCK)
+            Return (MR64) /* \_SB_.MHPC.MCRS.MR64 */
+        }
+
+        Method (MPXM, 1, NotSerialized)
+        {
+            Acquire (MLCK, 0xFFFF)
+            MSEL = ToInteger (Arg0)
+            Local0 = MPX /* \_SB_.MHPC.MPX_ */
+            Release (MLCK)
+            Return (Local0)
+        }
+
+        Method (MOST, 4, NotSerialized)
+        {
+            Acquire (MLCK, 0xFFFF)
+            MSEL = ToInteger (Arg0)
+            MOEV = Arg1
+            MOSC = Arg2
+            Release (MLCK)
+        }
+
+        Method (MEJ0, 2, NotSerialized)
+        {
+            Acquire (MLCK, 0xFFFF)
+            MSEL = ToInteger (Arg0)
+            MEJ = One
+            Release (MLCK)
+        }
+
+        Device (MP00)
+        {
+            Name (_UID, "0x00")  // _UID: Unique ID
+            Name (_HID, EisaId ("PNP0C80") /* Memory Device */)  // _HID: Hardware ID
+            Method (_CRS, 0, NotSerialized)  // _CRS: Current Resource Settings
+            {
+                Return (MCRS (_UID))
+            }
+
+            Method (_STA, 0, NotSerialized)  // _STA: Status
+            {
+                Return (MRST (_UID))
+            }
+
+            Method (_PXM, 0, NotSerialized)  // _PXM: Device Proximity
+            {
+                Return (MPXM (_UID))
+            }
+
+            Method (_OST, 3, NotSerialized)  // _OST: OSPM Status Indication
+            {
+                MOST (_UID, Arg0, Arg1, Arg2)
+            }
+
+            Method (_EJ0, 1, NotSerialized)  // _EJx: Eject Device, x=0-9
+            {
+                MEJ0 (_UID, Arg0)
+            }
+        }
+
+        Method (MTFY, 2, NotSerialized)
+        {
+            If ((Arg0 == Zero))
+            {
+                Notify (MP00, Arg1)
+            }
+        }
+    }
+
+    Method (\_GPE._E03, 0, NotSerialized)  // _Exx: Edge-Triggered GPE, xx=0x00-0xFF
+    {
+        \_SB.MHPC.MSCN ()
+    }
+
+    Scope (_GPE)
+    {
+        Name (_HID, "ACPI0006" /* GPE Block Device */)  // _HID: Hardware ID
+    }
+
+    Scope (\_SB.PCI0)
+    {
+        Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+        {
+            WordBusNumber (ResourceProducer, MinFixed, MaxFixed, PosDecode,
+                0x0000,             // Granularity
+                0x0000,             // Range Minimum
+                0x00FF,             // Range Maximum
+                0x0000,             // Translation Offset
+                0x0100,             // Length
+                ,, )
+            IO (Decode16,
+                0x0CF8,             // Range Minimum
+                0x0CF8,             // Range Maximum
+                0x01,               // Alignment
+                0x08,               // Length
+                )
+            WordIO (ResourceProducer, MinFixed, MaxFixed, PosDecode, EntireRange,
+                0x0000,             // Granularity
+                0x0000,             // Range Minimum
+                0x0CF7,             // Range Maximum
+                0x0000,             // Translation Offset
+                0x0CF8,             // Length
+                ,, , TypeStatic, DenseTranslation)
+            WordIO (ResourceProducer, MinFixed, MaxFixed, PosDecode, EntireRange,
+                0x0000,             // Granularity
+                0x0D00,             // Range Minimum
+                0xFFFF,             // Range Maximum
+                0x0000,             // Translation Offset
+                0xF300,             // Length
+                ,, , TypeStatic, DenseTranslation)
+            DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, Cacheable, ReadWrite,
+                0x00000000,         // Granularity
+                0x000A0000,         // Range Minimum
+                0x000BFFFF,         // Range Maximum
+                0x00000000,         // Translation Offset
+                0x00020000,         // Length
+                ,, , AddressRangeMemory, TypeStatic)
+            DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, NonCacheable, ReadWrite,
+                0x00000000,         // Granularity
+                0x08000000,         // Range Minimum
+                0xAFFFFFFF,         // Range Maximum
+                0x00000000,         // Translation Offset
+                0xA8000000,         // Length
+                ,, , AddressRangeMemory, TypeStatic)
+            DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, NonCacheable, ReadWrite,
+                0x00000000,         // Granularity
+                0xC0000000,         // Range Minimum
+                0xFEBFFFFF,         // Range Maximum
+                0x00000000,         // Translation Offset
+                0x3EC00000,         // Length
+                ,, , AddressRangeMemory, TypeStatic)
+            QWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, Cacheable, ReadWrite,
+                0x0000000000000000, // Granularity
+                0x0000000200000000, // Range Minimum
+                0x00000009FFFFFFFF, // Range Maximum
+                0x0000000000000000, // Translation Offset
+                0x0000000800000000, // Length
+                ,, , AddressRangeMemory, TypeStatic)
+        })
+        Device (GPE0)
+        {
+            Name (_HID, "PNP0A06" /* Generic Container Device */)  // _HID: Hardware ID
+            Name (_UID, "GPE0 resources")  // _UID: Unique ID
+            Name (_STA, 0x0B)  // _STA: Status
+            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+            {
+                IO (Decode16,
+                    0x0620,             // Range Minimum
+                    0x0620,             // Range Maximum
+                    0x01,               // Alignment
+                    0x10,               // Length
+                    )
+            })
+        }
+    }
+
+    Scope (\)
+    {
+        Name (_S3, Package (0x04)  // _S3_: S3 System State
+        {
+            One, 
+            One, 
+            Zero, 
+            Zero
+        })
+        Name (_S4, Package (0x04)  // _S4_: S4 System State
+        {
+            0x02, 
+            0x02, 
+            Zero, 
+            Zero
+        })
+        Name (_S5, Package (0x04)  // _S5_: S5 System State
+        {
+            Zero, 
+            Zero, 
+            Zero, 
+            Zero
+        })
+    }
+
+    Scope (\_SB.PCI0)
+    {
+        Device (FWCF)
+        {
+            Name (_HID, "QEMU0002")  // _HID: Hardware ID
+            Name (_STA, 0x0B)  // _STA: Status
+            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+            {
+                IO (Decode16,
+                    0x0510,             // Range Minimum
+                    0x0510,             // Range Maximum
+                    0x01,               // Alignment
+                    0x0C,               // Length
+                    )
+            })
+        }
+    }
+
+    Scope (\_SB)
+    {
+        Scope (PCI0)
+        {
+            Device (S00)
+            {
+                Name (_ADR, Zero)  // _ADR: Address
+            }
+
+            Device (S08)
+            {
+                Name (_ADR, 0x00010000)  // _ADR: Address
+                Method (_S1D, 0, NotSerialized)  // _S1D: S1 Device State
+                {
+                    Return (Zero)
+                }
+
+                Method (_S2D, 0, NotSerialized)  // _S2D: S2 Device State
+                {
+                    Return (Zero)
+                }
+
+                Method (_S3D, 0, NotSerialized)  // _S3D: S3 Device State
+                {
+                    Return (Zero)
+                }
+            }
+
+            Device (S10)
+            {
+                Name (_ADR, 0x00020000)  // _ADR: Address
+            }
+
+            Method (PCNT, 0, NotSerialized)
+            {
+            }
+        }
+    }
+}
+
diff --git a/tests/data/acpi/q35/DSDT.numamem b/tests/data/acpi/q35/DSDT.numamem
index 2b2433cc13ec3110abbc8440a0b1ad8c487edb6c..899946255b9111e077e06c5f78be860e863911b9 100644
GIT binary patch
delta 33
ocmZp&{bj@D66_LECC9+PcxEG)mK>)WOH6#QQ@nuPWIH)q0Hvo16951J

delta 42
xcmexm(`3u#66_MvB*(zOn7ENkOODHrB_=-DDPF*hWwNcDExQO?fU{o+0|4^g3K{?a

diff --git a/tests/data/acpi/q35/DSDT.numamem.dsl b/tests/data/acpi/q35/DSDT.numamem.dsl
new file mode 100644
index 0000000000..e76de462f0
--- /dev/null
+++ b/tests/data/acpi/q35/DSDT.numamem.dsl
@@ -0,0 +1,3138 @@ 
+/*
+ * Intel ACPI Component Architecture
+ * AML/ASL+ Disassembler version 20190509 (64-bit version)
+ * Copyright (c) 2000 - 2019 Intel Corporation
+ * 
+ * Disassembling to symbolic ASL+ operators
+ *
+ * Disassembly of tests/data/acpi/q35/DSDT.numamem, Tue Aug  4 11:14:15 2020
+ *
+ * Original Table Header:
+ *     Signature        "DSDT"
+ *     Length           0x00001E04 (7684)
+ *     Revision         0x01 **** 32-bit table (V1), no 64-bit math support
+ *     Checksum         0x55
+ *     OEM ID           "BOCHS "
+ *     OEM Table ID     "BXPCDSDT"
+ *     OEM Revision     0x00000001 (1)
+ *     Compiler ID      "BXPC"
+ *     Compiler Version 0x00000001 (1)
+ */
+DefinitionBlock ("", "DSDT", 1, "BOCHS ", "BXPCDSDT", 0x00000001)
+{
+    Scope (\)
+    {
+        OperationRegion (DBG, SystemIO, 0x0402, One)
+        Field (DBG, ByteAcc, NoLock, Preserve)
+        {
+            DBGB,   8
+        }
+
+        Method (DBUG, 1, NotSerialized)
+        {
+            ToHexString (Arg0, Local0)
+            ToBuffer (Local0, Local0)
+            Local1 = (SizeOf (Local0) - One)
+            Local2 = Zero
+            While ((Local2 < Local1))
+            {
+                DBGB = DerefOf (Local0 [Local2])
+                Local2++
+            }
+
+            DBGB = 0x0A
+        }
+    }
+
+    Scope (_SB)
+    {
+        Device (PCI0)
+        {
+            Name (_HID, EisaId ("PNP0A08") /* PCI Express Bus */)  // _HID: Hardware ID
+            Name (_CID, EisaId ("PNP0A03") /* PCI Bus */)  // _CID: Compatible ID
+            Name (_ADR, Zero)  // _ADR: Address
+            Name (_UID, Zero)  // _UID: Unique ID
+            Method (_OSC, 4, NotSerialized)  // _OSC: Operating System Capabilities
+            {
+                CreateDWordField (Arg3, Zero, CDW1)
+                If ((Arg0 == ToUUID ("33db4d5b-1ff7-401c-9657-7441c03dd766") /* PCI Host Bridge Device */))
+                {
+                    CreateDWordField (Arg3, 0x04, CDW2)
+                    CreateDWordField (Arg3, 0x08, CDW3)
+                    Local0 = CDW3 /* \_SB_.PCI0._OSC.CDW3 */
+                    Local0 &= 0x1F
+                    If ((Arg1 != One))
+                    {
+                        CDW1 |= 0x08
+                    }
+
+                    If ((CDW3 != Local0))
+                    {
+                        CDW1 |= 0x10
+                    }
+
+                    CDW3 = Local0
+                }
+                Else
+                {
+                    CDW1 |= 0x04
+                }
+
+                Return (Arg3)
+            }
+        }
+    }
+
+    Scope (_SB)
+    {
+        Device (HPET)
+        {
+            Name (_HID, EisaId ("PNP0103") /* HPET System Timer */)  // _HID: Hardware ID
+            Name (_UID, Zero)  // _UID: Unique ID
+            OperationRegion (HPTM, SystemMemory, 0xFED00000, 0x0400)
+            Field (HPTM, DWordAcc, Lock, Preserve)
+            {
+                VEND,   32, 
+                PRD,    32
+            }
+
+            Method (_STA, 0, NotSerialized)  // _STA: Status
+            {
+                Local0 = VEND /* \_SB_.HPET.VEND */
+                Local1 = PRD /* \_SB_.HPET.PRD_ */
+                Local0 >>= 0x10
+                If (((Local0 == Zero) || (Local0 == 0xFFFF)))
+                {
+                    Return (Zero)
+                }
+
+                If (((Local1 == Zero) || (Local1 > 0x05F5E100)))
+                {
+                    Return (Zero)
+                }
+
+                Return (0x0F)
+            }
+
+            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+            {
+                Memory32Fixed (ReadOnly,
+                    0xFED00000,         // Address Base
+                    0x00000400,         // Address Length
+                    )
+            })
+        }
+    }
+
+    Scope (_SB.PCI0)
+    {
+        Device (ISA)
+        {
+            Name (_ADR, 0x001F0000)  // _ADR: Address
+            OperationRegion (PIRQ, PCI_Config, 0x60, 0x0C)
+        }
+    }
+
+    Scope (_SB.PCI0.ISA)
+    {
+        Device (KBD)
+        {
+            Name (_HID, EisaId ("PNP0303") /* IBM Enhanced Keyboard (101/102-key, PS/2 Mouse) */)  // _HID: Hardware ID
+            Name (_STA, 0x0F)  // _STA: Status
+            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+            {
+                IO (Decode16,
+                    0x0060,             // Range Minimum
+                    0x0060,             // Range Maximum
+                    0x01,               // Alignment
+                    0x01,               // Length
+                    )
+                IO (Decode16,
+                    0x0064,             // Range Minimum
+                    0x0064,             // Range Maximum
+                    0x01,               // Alignment
+                    0x01,               // Length
+                    )
+                IRQNoFlags ()
+                    {1}
+            })
+        }
+
+        Device (MOU)
+        {
+            Name (_HID, EisaId ("PNP0F13") /* PS/2 Mouse */)  // _HID: Hardware ID
+            Name (_STA, 0x0F)  // _STA: Status
+            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+            {
+                IRQNoFlags ()
+                    {12}
+            })
+        }
+
+        Device (LPT1)
+        {
+            Name (_HID, EisaId ("PNP0400") /* Standard LPT Parallel Port */)  // _HID: Hardware ID
+            Name (_UID, One)  // _UID: Unique ID
+            Name (_STA, 0x0F)  // _STA: Status
+            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+            {
+                IO (Decode16,
+                    0x0378,             // Range Minimum
+                    0x0378,             // Range Maximum
+                    0x08,               // Alignment
+                    0x08,               // Length
+                    )
+                IRQNoFlags ()
+                    {7}
+            })
+        }
+
+        Device (COM1)
+        {
+            Name (_HID, EisaId ("PNP0501") /* 16550A-compatible COM Serial Port */)  // _HID: Hardware ID
+            Name (_UID, One)  // _UID: Unique ID
+            Name (_STA, 0x0F)  // _STA: Status
+            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+            {
+                IO (Decode16,
+                    0x03F8,             // Range Minimum
+                    0x03F8,             // Range Maximum
+                    0x00,               // Alignment
+                    0x08,               // Length
+                    )
+                IRQNoFlags ()
+                    {4}
+            })
+        }
+
+        Device (RTC)
+        {
+            Name (_HID, EisaId ("PNP0B00") /* AT Real-Time Clock */)  // _HID: Hardware ID
+            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+            {
+                IO (Decode16,
+                    0x0070,             // Range Minimum
+                    0x0070,             // Range Maximum
+                    0x01,               // Alignment
+                    0x08,               // Length
+                    )
+                IRQNoFlags ()
+                    {8}
+            })
+        }
+    }
+
+    Name (PICF, Zero)
+    Method (_PIC, 1, NotSerialized)  // _PIC: Interrupt Model
+    {
+        PICF = Arg0
+    }
+
+    Scope (_SB)
+    {
+        Scope (PCI0)
+        {
+            Name (PRTP, Package (0x80)
+            {
+                Package (0x04)
+                {
+                    0xFFFF, 
+                    Zero, 
+                    LNKE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0xFFFF, 
+                    One, 
+                    LNKF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0xFFFF, 
+                    0x02, 
+                    LNKG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0xFFFF, 
+                    0x03, 
+                    LNKH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0001FFFF, 
+                    Zero, 
+                    LNKF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0001FFFF, 
+                    One, 
+                    LNKG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0001FFFF, 
+                    0x02, 
+                    LNKH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0001FFFF, 
+                    0x03, 
+                    LNKE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0002FFFF, 
+                    Zero, 
+                    LNKG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0002FFFF, 
+                    One, 
+                    LNKH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0002FFFF, 
+                    0x02, 
+                    LNKE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0002FFFF, 
+                    0x03, 
+                    LNKF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0003FFFF, 
+                    Zero, 
+                    LNKH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0003FFFF, 
+                    One, 
+                    LNKE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0003FFFF, 
+                    0x02, 
+                    LNKF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0003FFFF, 
+                    0x03, 
+                    LNKG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0004FFFF, 
+                    Zero, 
+                    LNKE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0004FFFF, 
+                    One, 
+                    LNKF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0004FFFF, 
+                    0x02, 
+                    LNKG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0004FFFF, 
+                    0x03, 
+                    LNKH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0005FFFF, 
+                    Zero, 
+                    LNKF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0005FFFF, 
+                    One, 
+                    LNKG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0005FFFF, 
+                    0x02, 
+                    LNKH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0005FFFF, 
+                    0x03, 
+                    LNKE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0006FFFF, 
+                    Zero, 
+                    LNKG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0006FFFF, 
+                    One, 
+                    LNKH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0006FFFF, 
+                    0x02, 
+                    LNKE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0006FFFF, 
+                    0x03, 
+                    LNKF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0007FFFF, 
+                    Zero, 
+                    LNKH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0007FFFF, 
+                    One, 
+                    LNKE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0007FFFF, 
+                    0x02, 
+                    LNKF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0007FFFF, 
+                    0x03, 
+                    LNKG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0008FFFF, 
+                    Zero, 
+                    LNKE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0008FFFF, 
+                    One, 
+                    LNKF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0008FFFF, 
+                    0x02, 
+                    LNKG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0008FFFF, 
+                    0x03, 
+                    LNKH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0009FFFF, 
+                    Zero, 
+                    LNKF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0009FFFF, 
+                    One, 
+                    LNKG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0009FFFF, 
+                    0x02, 
+                    LNKH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0009FFFF, 
+                    0x03, 
+                    LNKE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000AFFFF, 
+                    Zero, 
+                    LNKG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000AFFFF, 
+                    One, 
+                    LNKH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000AFFFF, 
+                    0x02, 
+                    LNKE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000AFFFF, 
+                    0x03, 
+                    LNKF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000BFFFF, 
+                    Zero, 
+                    LNKH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000BFFFF, 
+                    One, 
+                    LNKE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000BFFFF, 
+                    0x02, 
+                    LNKF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000BFFFF, 
+                    0x03, 
+                    LNKG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000CFFFF, 
+                    Zero, 
+                    LNKE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000CFFFF, 
+                    One, 
+                    LNKF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000CFFFF, 
+                    0x02, 
+                    LNKG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000CFFFF, 
+                    0x03, 
+                    LNKH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000DFFFF, 
+                    Zero, 
+                    LNKF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000DFFFF, 
+                    One, 
+                    LNKG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000DFFFF, 
+                    0x02, 
+                    LNKH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000DFFFF, 
+                    0x03, 
+                    LNKE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000EFFFF, 
+                    Zero, 
+                    LNKG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000EFFFF, 
+                    One, 
+                    LNKH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000EFFFF, 
+                    0x02, 
+                    LNKE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000EFFFF, 
+                    0x03, 
+                    LNKF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000FFFFF, 
+                    Zero, 
+                    LNKH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000FFFFF, 
+                    One, 
+                    LNKE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000FFFFF, 
+                    0x02, 
+                    LNKF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000FFFFF, 
+                    0x03, 
+                    LNKG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0010FFFF, 
+                    Zero, 
+                    LNKE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0010FFFF, 
+                    One, 
+                    LNKF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0010FFFF, 
+                    0x02, 
+                    LNKG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0010FFFF, 
+                    0x03, 
+                    LNKH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0011FFFF, 
+                    Zero, 
+                    LNKF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0011FFFF, 
+                    One, 
+                    LNKG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0011FFFF, 
+                    0x02, 
+                    LNKH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0011FFFF, 
+                    0x03, 
+                    LNKE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0012FFFF, 
+                    Zero, 
+                    LNKG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0012FFFF, 
+                    One, 
+                    LNKH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0012FFFF, 
+                    0x02, 
+                    LNKE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0012FFFF, 
+                    0x03, 
+                    LNKF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0013FFFF, 
+                    Zero, 
+                    LNKH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0013FFFF, 
+                    One, 
+                    LNKE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0013FFFF, 
+                    0x02, 
+                    LNKF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0013FFFF, 
+                    0x03, 
+                    LNKG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0014FFFF, 
+                    Zero, 
+                    LNKE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0014FFFF, 
+                    One, 
+                    LNKF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0014FFFF, 
+                    0x02, 
+                    LNKG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0014FFFF, 
+                    0x03, 
+                    LNKH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0015FFFF, 
+                    Zero, 
+                    LNKF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0015FFFF, 
+                    One, 
+                    LNKG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0015FFFF, 
+                    0x02, 
+                    LNKH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0015FFFF, 
+                    0x03, 
+                    LNKE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0016FFFF, 
+                    Zero, 
+                    LNKG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0016FFFF, 
+                    One, 
+                    LNKH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0016FFFF, 
+                    0x02, 
+                    LNKE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0016FFFF, 
+                    0x03, 
+                    LNKF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0017FFFF, 
+                    Zero, 
+                    LNKH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0017FFFF, 
+                    One, 
+                    LNKE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0017FFFF, 
+                    0x02, 
+                    LNKF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0017FFFF, 
+                    0x03, 
+                    LNKG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0018FFFF, 
+                    Zero, 
+                    LNKE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0018FFFF, 
+                    One, 
+                    LNKF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0018FFFF, 
+                    0x02, 
+                    LNKG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0018FFFF, 
+                    0x03, 
+                    LNKH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0019FFFF, 
+                    Zero, 
+                    LNKA, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0019FFFF, 
+                    One, 
+                    LNKB, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0019FFFF, 
+                    0x02, 
+                    LNKC, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0019FFFF, 
+                    0x03, 
+                    LNKD, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001AFFFF, 
+                    Zero, 
+                    LNKA, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001AFFFF, 
+                    One, 
+                    LNKB, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001AFFFF, 
+                    0x02, 
+                    LNKC, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001AFFFF, 
+                    0x03, 
+                    LNKD, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001BFFFF, 
+                    Zero, 
+                    LNKA, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001BFFFF, 
+                    One, 
+                    LNKB, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001BFFFF, 
+                    0x02, 
+                    LNKC, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001BFFFF, 
+                    0x03, 
+                    LNKD, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001CFFFF, 
+                    Zero, 
+                    LNKA, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001CFFFF, 
+                    One, 
+                    LNKB, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001CFFFF, 
+                    0x02, 
+                    LNKC, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001CFFFF, 
+                    0x03, 
+                    LNKD, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001DFFFF, 
+                    Zero, 
+                    LNKA, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001DFFFF, 
+                    One, 
+                    LNKB, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001DFFFF, 
+                    0x02, 
+                    LNKC, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001DFFFF, 
+                    0x03, 
+                    LNKD, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001EFFFF, 
+                    Zero, 
+                    LNKE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001EFFFF, 
+                    One, 
+                    LNKF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001EFFFF, 
+                    0x02, 
+                    LNKG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001EFFFF, 
+                    0x03, 
+                    LNKH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001FFFFF, 
+                    Zero, 
+                    LNKA, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001FFFFF, 
+                    One, 
+                    LNKB, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001FFFFF, 
+                    0x02, 
+                    LNKC, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001FFFFF, 
+                    0x03, 
+                    LNKD, 
+                    Zero
+                }
+            })
+            Name (PRTA, Package (0x80)
+            {
+                Package (0x04)
+                {
+                    0xFFFF, 
+                    Zero, 
+                    GSIE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0xFFFF, 
+                    One, 
+                    GSIF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0xFFFF, 
+                    0x02, 
+                    GSIG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0xFFFF, 
+                    0x03, 
+                    GSIH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0001FFFF, 
+                    Zero, 
+                    GSIF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0001FFFF, 
+                    One, 
+                    GSIG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0001FFFF, 
+                    0x02, 
+                    GSIH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0001FFFF, 
+                    0x03, 
+                    GSIE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0002FFFF, 
+                    Zero, 
+                    GSIG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0002FFFF, 
+                    One, 
+                    GSIH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0002FFFF, 
+                    0x02, 
+                    GSIE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0002FFFF, 
+                    0x03, 
+                    GSIF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0003FFFF, 
+                    Zero, 
+                    GSIH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0003FFFF, 
+                    One, 
+                    GSIE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0003FFFF, 
+                    0x02, 
+                    GSIF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0003FFFF, 
+                    0x03, 
+                    GSIG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0004FFFF, 
+                    Zero, 
+                    GSIE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0004FFFF, 
+                    One, 
+                    GSIF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0004FFFF, 
+                    0x02, 
+                    GSIG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0004FFFF, 
+                    0x03, 
+                    GSIH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0005FFFF, 
+                    Zero, 
+                    GSIF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0005FFFF, 
+                    One, 
+                    GSIG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0005FFFF, 
+                    0x02, 
+                    GSIH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0005FFFF, 
+                    0x03, 
+                    GSIE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0006FFFF, 
+                    Zero, 
+                    GSIG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0006FFFF, 
+                    One, 
+                    GSIH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0006FFFF, 
+                    0x02, 
+                    GSIE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0006FFFF, 
+                    0x03, 
+                    GSIF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0007FFFF, 
+                    Zero, 
+                    GSIH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0007FFFF, 
+                    One, 
+                    GSIE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0007FFFF, 
+                    0x02, 
+                    GSIF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0007FFFF, 
+                    0x03, 
+                    GSIG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0008FFFF, 
+                    Zero, 
+                    GSIE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0008FFFF, 
+                    One, 
+                    GSIF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0008FFFF, 
+                    0x02, 
+                    GSIG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0008FFFF, 
+                    0x03, 
+                    GSIH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0009FFFF, 
+                    Zero, 
+                    GSIF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0009FFFF, 
+                    One, 
+                    GSIG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0009FFFF, 
+                    0x02, 
+                    GSIH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0009FFFF, 
+                    0x03, 
+                    GSIE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000AFFFF, 
+                    Zero, 
+                    GSIG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000AFFFF, 
+                    One, 
+                    GSIH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000AFFFF, 
+                    0x02, 
+                    GSIE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000AFFFF, 
+                    0x03, 
+                    GSIF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000BFFFF, 
+                    Zero, 
+                    GSIH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000BFFFF, 
+                    One, 
+                    GSIE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000BFFFF, 
+                    0x02, 
+                    GSIF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000BFFFF, 
+                    0x03, 
+                    GSIG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000CFFFF, 
+                    Zero, 
+                    GSIE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000CFFFF, 
+                    One, 
+                    GSIF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000CFFFF, 
+                    0x02, 
+                    GSIG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000CFFFF, 
+                    0x03, 
+                    GSIH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000DFFFF, 
+                    Zero, 
+                    GSIF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000DFFFF, 
+                    One, 
+                    GSIG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000DFFFF, 
+                    0x02, 
+                    GSIH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000DFFFF, 
+                    0x03, 
+                    GSIE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000EFFFF, 
+                    Zero, 
+                    GSIG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000EFFFF, 
+                    One, 
+                    GSIH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000EFFFF, 
+                    0x02, 
+                    GSIE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000EFFFF, 
+                    0x03, 
+                    GSIF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000FFFFF, 
+                    Zero, 
+                    GSIH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000FFFFF, 
+                    One, 
+                    GSIE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000FFFFF, 
+                    0x02, 
+                    GSIF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000FFFFF, 
+                    0x03, 
+                    GSIG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0010FFFF, 
+                    Zero, 
+                    GSIE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0010FFFF, 
+                    One, 
+                    GSIF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0010FFFF, 
+                    0x02, 
+                    GSIG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0010FFFF, 
+                    0x03, 
+                    GSIH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0011FFFF, 
+                    Zero, 
+                    GSIF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0011FFFF, 
+                    One, 
+                    GSIG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0011FFFF, 
+                    0x02, 
+                    GSIH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0011FFFF, 
+                    0x03, 
+                    GSIE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0012FFFF, 
+                    Zero, 
+                    GSIG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0012FFFF, 
+                    One, 
+                    GSIH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0012FFFF, 
+                    0x02, 
+                    GSIE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0012FFFF, 
+                    0x03, 
+                    GSIF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0013FFFF, 
+                    Zero, 
+                    GSIH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0013FFFF, 
+                    One, 
+                    GSIE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0013FFFF, 
+                    0x02, 
+                    GSIF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0013FFFF, 
+                    0x03, 
+                    GSIG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0014FFFF, 
+                    Zero, 
+                    GSIE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0014FFFF, 
+                    One, 
+                    GSIF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0014FFFF, 
+                    0x02, 
+                    GSIG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0014FFFF, 
+                    0x03, 
+                    GSIH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0015FFFF, 
+                    Zero, 
+                    GSIF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0015FFFF, 
+                    One, 
+                    GSIG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0015FFFF, 
+                    0x02, 
+                    GSIH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0015FFFF, 
+                    0x03, 
+                    GSIE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0016FFFF, 
+                    Zero, 
+                    GSIG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0016FFFF, 
+                    One, 
+                    GSIH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0016FFFF, 
+                    0x02, 
+                    GSIE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0016FFFF, 
+                    0x03, 
+                    GSIF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0017FFFF, 
+                    Zero, 
+                    GSIH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0017FFFF, 
+                    One, 
+                    GSIE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0017FFFF, 
+                    0x02, 
+                    GSIF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0017FFFF, 
+                    0x03, 
+                    GSIG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0018FFFF, 
+                    Zero, 
+                    GSIE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0018FFFF, 
+                    One, 
+                    GSIF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0018FFFF, 
+                    0x02, 
+                    GSIG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0018FFFF, 
+                    0x03, 
+                    GSIH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0019FFFF, 
+                    Zero, 
+                    GSIA, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0019FFFF, 
+                    One, 
+                    GSIB, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0019FFFF, 
+                    0x02, 
+                    GSIC, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0019FFFF, 
+                    0x03, 
+                    GSID, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001AFFFF, 
+                    Zero, 
+                    GSIA, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001AFFFF, 
+                    One, 
+                    GSIB, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001AFFFF, 
+                    0x02, 
+                    GSIC, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001AFFFF, 
+                    0x03, 
+                    GSID, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001BFFFF, 
+                    Zero, 
+                    GSIA, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001BFFFF, 
+                    One, 
+                    GSIB, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001BFFFF, 
+                    0x02, 
+                    GSIC, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001BFFFF, 
+                    0x03, 
+                    GSID, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001CFFFF, 
+                    Zero, 
+                    GSIA, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001CFFFF, 
+                    One, 
+                    GSIB, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001CFFFF, 
+                    0x02, 
+                    GSIC, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001CFFFF, 
+                    0x03, 
+                    GSID, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001DFFFF, 
+                    Zero, 
+                    GSIA, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001DFFFF, 
+                    One, 
+                    GSIB, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001DFFFF, 
+                    0x02, 
+                    GSIC, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001DFFFF, 
+                    0x03, 
+                    GSID, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001EFFFF, 
+                    Zero, 
+                    GSIE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001EFFFF, 
+                    One, 
+                    GSIF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001EFFFF, 
+                    0x02, 
+                    GSIG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001EFFFF, 
+                    0x03, 
+                    GSIH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001FFFFF, 
+                    Zero, 
+                    GSIA, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001FFFFF, 
+                    One, 
+                    GSIB, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001FFFFF, 
+                    0x02, 
+                    GSIC, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001FFFFF, 
+                    0x03, 
+                    GSID, 
+                    Zero
+                }
+            })
+            Method (_PRT, 0, NotSerialized)  // _PRT: PCI Routing Table
+            {
+                If ((PICF == Zero))
+                {
+                    Return (PRTP) /* \_SB_.PCI0.PRTP */
+                }
+                Else
+                {
+                    Return (PRTA) /* \_SB_.PCI0.PRTA */
+                }
+            }
+        }
+
+        Field (PCI0.ISA.PIRQ, ByteAcc, NoLock, Preserve)
+        {
+            PRQA,   8, 
+            PRQB,   8, 
+            PRQC,   8, 
+            PRQD,   8, 
+            Offset (0x08), 
+            PRQE,   8, 
+            PRQF,   8, 
+            PRQG,   8, 
+            PRQH,   8
+        }
+
+        Method (IQST, 1, NotSerialized)
+        {
+            If ((0x80 & Arg0))
+            {
+                Return (0x09)
+            }
+
+            Return (0x0B)
+        }
+
+        Method (IQCR, 1, Serialized)
+        {
+            Name (PRR0, ResourceTemplate ()
+            {
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, _Y00)
+                {
+                    0x00000000,
+                }
+            })
+            CreateDWordField (PRR0, \_SB.IQCR._Y00._INT, PRRI)  // _INT: Interrupts
+            PRRI = (Arg0 & 0x0F)
+            Return (PRR0) /* \_SB_.IQCR.PRR0 */
+        }
+
+        Device (LNKA)
+        {
+            Name (_HID, EisaId ("PNP0C0F") /* PCI Interrupt Link Device */)  // _HID: Hardware ID
+            Name (_UID, Zero)  // _UID: Unique ID
+            Name (_PRS, ResourceTemplate ()  // _PRS: Possible Resource Settings
+            {
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, )
+                {
+                    0x00000005,
+                    0x0000000A,
+                    0x0000000B,
+                }
+            })
+            Method (_STA, 0, NotSerialized)  // _STA: Status
+            {
+                Return (IQST (PRQA))
+            }
+
+            Method (_DIS, 0, NotSerialized)  // _DIS: Disable Device
+            {
+                PRQA |= 0x80
+            }
+
+            Method (_CRS, 0, NotSerialized)  // _CRS: Current Resource Settings
+            {
+                Return (IQCR (PRQA))
+            }
+
+            Method (_SRS, 1, NotSerialized)  // _SRS: Set Resource Settings
+            {
+                CreateDWordField (Arg0, 0x05, PRRI)
+                PRQA = PRRI /* \_SB_.LNKA._SRS.PRRI */
+            }
+        }
+
+        Device (LNKB)
+        {
+            Name (_HID, EisaId ("PNP0C0F") /* PCI Interrupt Link Device */)  // _HID: Hardware ID
+            Name (_UID, One)  // _UID: Unique ID
+            Name (_PRS, ResourceTemplate ()  // _PRS: Possible Resource Settings
+            {
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, )
+                {
+                    0x00000005,
+                    0x0000000A,
+                    0x0000000B,
+                }
+            })
+            Method (_STA, 0, NotSerialized)  // _STA: Status
+            {
+                Return (IQST (PRQB))
+            }
+
+            Method (_DIS, 0, NotSerialized)  // _DIS: Disable Device
+            {
+                PRQB |= 0x80
+            }
+
+            Method (_CRS, 0, NotSerialized)  // _CRS: Current Resource Settings
+            {
+                Return (IQCR (PRQB))
+            }
+
+            Method (_SRS, 1, NotSerialized)  // _SRS: Set Resource Settings
+            {
+                CreateDWordField (Arg0, 0x05, PRRI)
+                PRQB = PRRI /* \_SB_.LNKB._SRS.PRRI */
+            }
+        }
+
+        Device (LNKC)
+        {
+            Name (_HID, EisaId ("PNP0C0F") /* PCI Interrupt Link Device */)  // _HID: Hardware ID
+            Name (_UID, 0x02)  // _UID: Unique ID
+            Name (_PRS, ResourceTemplate ()  // _PRS: Possible Resource Settings
+            {
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, )
+                {
+                    0x00000005,
+                    0x0000000A,
+                    0x0000000B,
+                }
+            })
+            Method (_STA, 0, NotSerialized)  // _STA: Status
+            {
+                Return (IQST (PRQC))
+            }
+
+            Method (_DIS, 0, NotSerialized)  // _DIS: Disable Device
+            {
+                PRQC |= 0x80
+            }
+
+            Method (_CRS, 0, NotSerialized)  // _CRS: Current Resource Settings
+            {
+                Return (IQCR (PRQC))
+            }
+
+            Method (_SRS, 1, NotSerialized)  // _SRS: Set Resource Settings
+            {
+                CreateDWordField (Arg0, 0x05, PRRI)
+                PRQC = PRRI /* \_SB_.LNKC._SRS.PRRI */
+            }
+        }
+
+        Device (LNKD)
+        {
+            Name (_HID, EisaId ("PNP0C0F") /* PCI Interrupt Link Device */)  // _HID: Hardware ID
+            Name (_UID, 0x03)  // _UID: Unique ID
+            Name (_PRS, ResourceTemplate ()  // _PRS: Possible Resource Settings
+            {
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, )
+                {
+                    0x00000005,
+                    0x0000000A,
+                    0x0000000B,
+                }
+            })
+            Method (_STA, 0, NotSerialized)  // _STA: Status
+            {
+                Return (IQST (PRQD))
+            }
+
+            Method (_DIS, 0, NotSerialized)  // _DIS: Disable Device
+            {
+                PRQD |= 0x80
+            }
+
+            Method (_CRS, 0, NotSerialized)  // _CRS: Current Resource Settings
+            {
+                Return (IQCR (PRQD))
+            }
+
+            Method (_SRS, 1, NotSerialized)  // _SRS: Set Resource Settings
+            {
+                CreateDWordField (Arg0, 0x05, PRRI)
+                PRQD = PRRI /* \_SB_.LNKD._SRS.PRRI */
+            }
+        }
+
+        Device (LNKE)
+        {
+            Name (_HID, EisaId ("PNP0C0F") /* PCI Interrupt Link Device */)  // _HID: Hardware ID
+            Name (_UID, 0x04)  // _UID: Unique ID
+            Name (_PRS, ResourceTemplate ()  // _PRS: Possible Resource Settings
+            {
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, )
+                {
+                    0x00000005,
+                    0x0000000A,
+                    0x0000000B,
+                }
+            })
+            Method (_STA, 0, NotSerialized)  // _STA: Status
+            {
+                Return (IQST (PRQE))
+            }
+
+            Method (_DIS, 0, NotSerialized)  // _DIS: Disable Device
+            {
+                PRQE |= 0x80
+            }
+
+            Method (_CRS, 0, NotSerialized)  // _CRS: Current Resource Settings
+            {
+                Return (IQCR (PRQE))
+            }
+
+            Method (_SRS, 1, NotSerialized)  // _SRS: Set Resource Settings
+            {
+                CreateDWordField (Arg0, 0x05, PRRI)
+                PRQE = PRRI /* \_SB_.LNKE._SRS.PRRI */
+            }
+        }
+
+        Device (LNKF)
+        {
+            Name (_HID, EisaId ("PNP0C0F") /* PCI Interrupt Link Device */)  // _HID: Hardware ID
+            Name (_UID, 0x05)  // _UID: Unique ID
+            Name (_PRS, ResourceTemplate ()  // _PRS: Possible Resource Settings
+            {
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, )
+                {
+                    0x00000005,
+                    0x0000000A,
+                    0x0000000B,
+                }
+            })
+            Method (_STA, 0, NotSerialized)  // _STA: Status
+            {
+                Return (IQST (PRQF))
+            }
+
+            Method (_DIS, 0, NotSerialized)  // _DIS: Disable Device
+            {
+                PRQF |= 0x80
+            }
+
+            Method (_CRS, 0, NotSerialized)  // _CRS: Current Resource Settings
+            {
+                Return (IQCR (PRQF))
+            }
+
+            Method (_SRS, 1, NotSerialized)  // _SRS: Set Resource Settings
+            {
+                CreateDWordField (Arg0, 0x05, PRRI)
+                PRQF = PRRI /* \_SB_.LNKF._SRS.PRRI */
+            }
+        }
+
+        Device (LNKG)
+        {
+            Name (_HID, EisaId ("PNP0C0F") /* PCI Interrupt Link Device */)  // _HID: Hardware ID
+            Name (_UID, 0x06)  // _UID: Unique ID
+            Name (_PRS, ResourceTemplate ()  // _PRS: Possible Resource Settings
+            {
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, )
+                {
+                    0x00000005,
+                    0x0000000A,
+                    0x0000000B,
+                }
+            })
+            Method (_STA, 0, NotSerialized)  // _STA: Status
+            {
+                Return (IQST (PRQG))
+            }
+
+            Method (_DIS, 0, NotSerialized)  // _DIS: Disable Device
+            {
+                PRQG |= 0x80
+            }
+
+            Method (_CRS, 0, NotSerialized)  // _CRS: Current Resource Settings
+            {
+                Return (IQCR (PRQG))
+            }
+
+            Method (_SRS, 1, NotSerialized)  // _SRS: Set Resource Settings
+            {
+                CreateDWordField (Arg0, 0x05, PRRI)
+                PRQG = PRRI /* \_SB_.LNKG._SRS.PRRI */
+            }
+        }
+
+        Device (LNKH)
+        {
+            Name (_HID, EisaId ("PNP0C0F") /* PCI Interrupt Link Device */)  // _HID: Hardware ID
+            Name (_UID, 0x07)  // _UID: Unique ID
+            Name (_PRS, ResourceTemplate ()  // _PRS: Possible Resource Settings
+            {
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, )
+                {
+                    0x00000005,
+                    0x0000000A,
+                    0x0000000B,
+                }
+            })
+            Method (_STA, 0, NotSerialized)  // _STA: Status
+            {
+                Return (IQST (PRQH))
+            }
+
+            Method (_DIS, 0, NotSerialized)  // _DIS: Disable Device
+            {
+                PRQH |= 0x80
+            }
+
+            Method (_CRS, 0, NotSerialized)  // _CRS: Current Resource Settings
+            {
+                Return (IQCR (PRQH))
+            }
+
+            Method (_SRS, 1, NotSerialized)  // _SRS: Set Resource Settings
+            {
+                CreateDWordField (Arg0, 0x05, PRRI)
+                PRQH = PRRI /* \_SB_.LNKH._SRS.PRRI */
+            }
+        }
+
+        Device (GSIA)
+        {
+            Name (_HID, EisaId ("PNP0C0F") /* PCI Interrupt Link Device */)  // _HID: Hardware ID
+            Name (_UID, 0x10)  // _UID: Unique ID
+            Name (_PRS, ResourceTemplate ()  // _PRS: Possible Resource Settings
+            {
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, )
+                {
+                    0x00000010,
+                }
+            })
+            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+            {
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, )
+                {
+                    0x00000010,
+                }
+            })
+            Method (_DIS, 0, NotSerialized)  // _DIS: Disable Device
+            {
+            }
+
+            Method (_SRS, 1, NotSerialized)  // _SRS: Set Resource Settings
+            {
+            }
+        }
+
+        Device (GSIB)
+        {
+            Name (_HID, EisaId ("PNP0C0F") /* PCI Interrupt Link Device */)  // _HID: Hardware ID
+            Name (_UID, 0x11)  // _UID: Unique ID
+            Name (_PRS, ResourceTemplate ()  // _PRS: Possible Resource Settings
+            {
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, )
+                {
+                    0x00000011,
+                }
+            })
+            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+            {
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, )
+                {
+                    0x00000011,
+                }
+            })
+            Method (_DIS, 0, NotSerialized)  // _DIS: Disable Device
+            {
+            }
+
+            Method (_SRS, 1, NotSerialized)  // _SRS: Set Resource Settings
+            {
+            }
+        }
+
+        Device (GSIC)
+        {
+            Name (_HID, EisaId ("PNP0C0F") /* PCI Interrupt Link Device */)  // _HID: Hardware ID
+            Name (_UID, 0x12)  // _UID: Unique ID
+            Name (_PRS, ResourceTemplate ()  // _PRS: Possible Resource Settings
+            {
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, )
+                {
+                    0x00000012,
+                }
+            })
+            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+            {
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, )
+                {
+                    0x00000012,
+                }
+            })
+            Method (_DIS, 0, NotSerialized)  // _DIS: Disable Device
+            {
+            }
+
+            Method (_SRS, 1, NotSerialized)  // _SRS: Set Resource Settings
+            {
+            }
+        }
+
+        Device (GSID)
+        {
+            Name (_HID, EisaId ("PNP0C0F") /* PCI Interrupt Link Device */)  // _HID: Hardware ID
+            Name (_UID, 0x13)  // _UID: Unique ID
+            Name (_PRS, ResourceTemplate ()  // _PRS: Possible Resource Settings
+            {
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, )
+                {
+                    0x00000013,
+                }
+            })
+            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+            {
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, )
+                {
+                    0x00000013,
+                }
+            })
+            Method (_DIS, 0, NotSerialized)  // _DIS: Disable Device
+            {
+            }
+
+            Method (_SRS, 1, NotSerialized)  // _SRS: Set Resource Settings
+            {
+            }
+        }
+
+        Device (GSIE)
+        {
+            Name (_HID, EisaId ("PNP0C0F") /* PCI Interrupt Link Device */)  // _HID: Hardware ID
+            Name (_UID, 0x14)  // _UID: Unique ID
+            Name (_PRS, ResourceTemplate ()  // _PRS: Possible Resource Settings
+            {
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, )
+                {
+                    0x00000014,
+                }
+            })
+            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+            {
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, )
+                {
+                    0x00000014,
+                }
+            })
+            Method (_DIS, 0, NotSerialized)  // _DIS: Disable Device
+            {
+            }
+
+            Method (_SRS, 1, NotSerialized)  // _SRS: Set Resource Settings
+            {
+            }
+        }
+
+        Device (GSIF)
+        {
+            Name (_HID, EisaId ("PNP0C0F") /* PCI Interrupt Link Device */)  // _HID: Hardware ID
+            Name (_UID, 0x15)  // _UID: Unique ID
+            Name (_PRS, ResourceTemplate ()  // _PRS: Possible Resource Settings
+            {
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, )
+                {
+                    0x00000015,
+                }
+            })
+            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+            {
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, )
+                {
+                    0x00000015,
+                }
+            })
+            Method (_DIS, 0, NotSerialized)  // _DIS: Disable Device
+            {
+            }
+
+            Method (_SRS, 1, NotSerialized)  // _SRS: Set Resource Settings
+            {
+            }
+        }
+
+        Device (GSIG)
+        {
+            Name (_HID, EisaId ("PNP0C0F") /* PCI Interrupt Link Device */)  // _HID: Hardware ID
+            Name (_UID, 0x16)  // _UID: Unique ID
+            Name (_PRS, ResourceTemplate ()  // _PRS: Possible Resource Settings
+            {
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, )
+                {
+                    0x00000016,
+                }
+            })
+            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+            {
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, )
+                {
+                    0x00000016,
+                }
+            })
+            Method (_DIS, 0, NotSerialized)  // _DIS: Disable Device
+            {
+            }
+
+            Method (_SRS, 1, NotSerialized)  // _SRS: Set Resource Settings
+            {
+            }
+        }
+
+        Device (GSIH)
+        {
+            Name (_HID, EisaId ("PNP0C0F") /* PCI Interrupt Link Device */)  // _HID: Hardware ID
+            Name (_UID, 0x17)  // _UID: Unique ID
+            Name (_PRS, ResourceTemplate ()  // _PRS: Possible Resource Settings
+            {
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, )
+                {
+                    0x00000017,
+                }
+            })
+            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+            {
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, )
+                {
+                    0x00000017,
+                }
+            })
+            Method (_DIS, 0, NotSerialized)  // _DIS: Disable Device
+            {
+            }
+
+            Method (_SRS, 1, NotSerialized)  // _SRS: Set Resource Settings
+            {
+            }
+        }
+    }
+
+    Scope (_SB.PCI0)
+    {
+        Device (SMB0)
+        {
+            Name (_ADR, 0x001F0003)  // _ADR: Address
+        }
+    }
+
+    Scope (_SB)
+    {
+        Device (\_SB.PCI0.PRES)
+        {
+            Name (_HID, EisaId ("PNP0A06") /* Generic Container Device */)  // _HID: Hardware ID
+            Name (_UID, "CPU Hotplug resources")  // _UID: Unique ID
+            Mutex (CPLK, 0x00)
+            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+            {
+                IO (Decode16,
+                    0x0CD8,             // Range Minimum
+                    0x0CD8,             // Range Maximum
+                    0x01,               // Alignment
+                    0x0C,               // Length
+                    )
+            })
+            OperationRegion (PRST, SystemIO, 0x0CD8, 0x0C)
+            Field (PRST, ByteAcc, NoLock, WriteAsZeros)
+            {
+                Offset (0x04), 
+                CPEN,   1, 
+                CINS,   1, 
+                CRMV,   1, 
+                CEJ0,   1, 
+                Offset (0x05), 
+                CCMD,   8
+            }
+
+            Field (PRST, DWordAcc, NoLock, Preserve)
+            {
+                CSEL,   32, 
+                Offset (0x08), 
+                CDAT,   32
+            }
+
+            Method (_INI, 0, Serialized)  // _INI: Initialize
+            {
+                CSEL = Zero
+            }
+        }
+
+        Device (\_SB.CPUS)
+        {
+            Name (_HID, "ACPI0010" /* Processor Container Device */)  // _HID: Hardware ID
+            Name (_CID, EisaId ("PNP0A05") /* Generic Container Device */)  // _CID: Compatible ID
+            Method (CTFY, 2, NotSerialized)
+            {
+                If ((Arg0 == Zero))
+                {
+                    Notify (C000, Arg1)
+                }
+            }
+
+            Method (CSTA, 1, Serialized)
+            {
+                Acquire (\_SB.PCI0.PRES.CPLK, 0xFFFF)
+                \_SB.PCI0.PRES.CSEL = Arg0
+                Local0 = Zero
+                If ((\_SB.PCI0.PRES.CPEN == One))
+                {
+                    Local0 = 0x0F
+                }
+
+                Release (\_SB.PCI0.PRES.CPLK)
+                Return (Local0)
+            }
+
+            Method (CEJ0, 1, Serialized)
+            {
+                Acquire (\_SB.PCI0.PRES.CPLK, 0xFFFF)
+                \_SB.PCI0.PRES.CSEL = Arg0
+                \_SB.PCI0.PRES.CEJ0 = One
+                Release (\_SB.PCI0.PRES.CPLK)
+            }
+
+            Method (CSCN, 0, Serialized)
+            {
+                Acquire (\_SB.PCI0.PRES.CPLK, 0xFFFF)
+                Local0 = One
+                While ((Local0 == One))
+                {
+                    Local0 = Zero
+                    \_SB.PCI0.PRES.CCMD = Zero
+                    If ((\_SB.PCI0.PRES.CINS == One))
+                    {
+                        CTFY (\_SB.PCI0.PRES.CDAT, One)
+                        \_SB.PCI0.PRES.CINS = One
+                        Local0 = One
+                    }
+                    ElseIf ((\_SB.PCI0.PRES.CRMV == One))
+                    {
+                        CTFY (\_SB.PCI0.PRES.CDAT, 0x03)
+                        \_SB.PCI0.PRES.CRMV = One
+                        Local0 = One
+                    }
+                }
+
+                Release (\_SB.PCI0.PRES.CPLK)
+            }
+
+            Method (COST, 4, Serialized)
+            {
+                Acquire (\_SB.PCI0.PRES.CPLK, 0xFFFF)
+                \_SB.PCI0.PRES.CSEL = Arg0
+                \_SB.PCI0.PRES.CCMD = One
+                \_SB.PCI0.PRES.CDAT = Arg1
+                \_SB.PCI0.PRES.CCMD = 0x02
+                \_SB.PCI0.PRES.CDAT = Arg2
+                Release (\_SB.PCI0.PRES.CPLK)
+            }
+
+            Processor (C000, 0x00, 0x00000000, 0x00)
+            {
+                Method (_STA, 0, Serialized)  // _STA: Status
+                {
+                    Return (CSTA (Zero))
+                }
+
+                Name (_MAT, Buffer (0x08)  // _MAT: Multiple APIC Table Entry
+                {
+                     0x00, 0x08, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00   // ........
+                })
+                Method (_OST, 3, Serialized)  // _OST: OSPM Status Indication
+                {
+                    COST (Zero, Arg0, Arg1, Arg2)
+                }
+
+                Name (_PXM, Zero)  // _PXM: Device Proximity
+            }
+        }
+    }
+
+    Method (\_GPE._E02, 0, NotSerialized)  // _Exx: Edge-Triggered GPE, xx=0x00-0xFF
+    {
+        \_SB.CPUS.CSCN ()
+    }
+
+    Scope (_GPE)
+    {
+        Name (_HID, "ACPI0006" /* GPE Block Device */)  // _HID: Hardware ID
+    }
+
+    Scope (\_SB.PCI0)
+    {
+        Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+        {
+            WordBusNumber (ResourceProducer, MinFixed, MaxFixed, PosDecode,
+                0x0000,             // Granularity
+                0x0000,             // Range Minimum
+                0x00FF,             // Range Maximum
+                0x0000,             // Translation Offset
+                0x0100,             // Length
+                ,, )
+            IO (Decode16,
+                0x0CF8,             // Range Minimum
+                0x0CF8,             // Range Maximum
+                0x01,               // Alignment
+                0x08,               // Length
+                )
+            WordIO (ResourceProducer, MinFixed, MaxFixed, PosDecode, EntireRange,
+                0x0000,             // Granularity
+                0x0000,             // Range Minimum
+                0x0CF7,             // Range Maximum
+                0x0000,             // Translation Offset
+                0x0CF8,             // Length
+                ,, , TypeStatic, DenseTranslation)
+            WordIO (ResourceProducer, MinFixed, MaxFixed, PosDecode, EntireRange,
+                0x0000,             // Granularity
+                0x0D00,             // Range Minimum
+                0xFFFF,             // Range Maximum
+                0x0000,             // Translation Offset
+                0xF300,             // Length
+                ,, , TypeStatic, DenseTranslation)
+            DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, Cacheable, ReadWrite,
+                0x00000000,         // Granularity
+                0x000A0000,         // Range Minimum
+                0x000BFFFF,         // Range Maximum
+                0x00000000,         // Translation Offset
+                0x00020000,         // Length
+                ,, , AddressRangeMemory, TypeStatic)
+            DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, NonCacheable, ReadWrite,
+                0x00000000,         // Granularity
+                0x08000000,         // Range Minimum
+                0xAFFFFFFF,         // Range Maximum
+                0x00000000,         // Translation Offset
+                0xA8000000,         // Length
+                ,, , AddressRangeMemory, TypeStatic)
+            DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, NonCacheable, ReadWrite,
+                0x00000000,         // Granularity
+                0xC0000000,         // Range Minimum
+                0xFEBFFFFF,         // Range Maximum
+                0x00000000,         // Translation Offset
+                0x3EC00000,         // Length
+                ,, , AddressRangeMemory, TypeStatic)
+            QWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, Cacheable, ReadWrite,
+                0x0000000000000000, // Granularity
+                0x0000000100000000, // Range Minimum
+                0x00000008FFFFFFFF, // Range Maximum
+                0x0000000000000000, // Translation Offset
+                0x0000000800000000, // Length
+                ,, , AddressRangeMemory, TypeStatic)
+        })
+        Device (GPE0)
+        {
+            Name (_HID, "PNP0A06" /* Generic Container Device */)  // _HID: Hardware ID
+            Name (_UID, "GPE0 resources")  // _UID: Unique ID
+            Name (_STA, 0x0B)  // _STA: Status
+            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+            {
+                IO (Decode16,
+                    0x0620,             // Range Minimum
+                    0x0620,             // Range Maximum
+                    0x01,               // Alignment
+                    0x10,               // Length
+                    )
+            })
+        }
+    }
+
+    Scope (\)
+    {
+        Name (_S3, Package (0x04)  // _S3_: S3 System State
+        {
+            One, 
+            One, 
+            Zero, 
+            Zero
+        })
+        Name (_S4, Package (0x04)  // _S4_: S4 System State
+        {
+            0x02, 
+            0x02, 
+            Zero, 
+            Zero
+        })
+        Name (_S5, Package (0x04)  // _S5_: S5 System State
+        {
+            Zero, 
+            Zero, 
+            Zero, 
+            Zero
+        })
+    }
+
+    Scope (\_SB.PCI0)
+    {
+        Device (FWCF)
+        {
+            Name (_HID, "QEMU0002")  // _HID: Hardware ID
+            Name (_STA, 0x0B)  // _STA: Status
+            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+            {
+                IO (Decode16,
+                    0x0510,             // Range Minimum
+                    0x0510,             // Range Maximum
+                    0x01,               // Alignment
+                    0x0C,               // Length
+                    )
+            })
+        }
+    }
+
+    Scope (\_SB)
+    {
+        Scope (PCI0)
+        {
+            Device (S00)
+            {
+                Name (_ADR, Zero)  // _ADR: Address
+            }
+
+            Device (S08)
+            {
+                Name (_ADR, 0x00010000)  // _ADR: Address
+                Method (_S1D, 0, NotSerialized)  // _S1D: S1 Device State
+                {
+                    Return (Zero)
+                }
+
+                Method (_S2D, 0, NotSerialized)  // _S2D: S2 Device State
+                {
+                    Return (Zero)
+                }
+
+                Method (_S3D, 0, NotSerialized)  // _S3D: S3 Device State
+                {
+                    Return (Zero)
+                }
+            }
+
+            Method (PCNT, 0, NotSerialized)
+            {
+            }
+        }
+    }
+}
+
diff --git a/tests/data/acpi/q35/DSDT.tis b/tests/data/acpi/q35/DSDT.tis
index dd06ee4c348930b0684827ca05747b4f65dbd6b2..08802fbd12eae6ad99f03a8db9a0bc7f95e77cb4 100644
GIT binary patch
delta 38
ucmccVc*&8=CD<k8k^%z*<Cl$G26CJpnlbUgPVoW`lbz-4Hh0JcG64Ydc?+%p

delta 45
zcmccQc+-)~CD<k8rUC;4<AjY|26CMKnlbUgPVoZnlbz-4*hJU@oc%&JH^>Ds0RTDD
B46OhF

diff --git a/tests/data/acpi/q35/DSDT.tis.dsl b/tests/data/acpi/q35/DSDT.tis.dsl
new file mode 100644
index 0000000000..a43e36bfe3
--- /dev/null
+++ b/tests/data/acpi/q35/DSDT.tis.dsl
@@ -0,0 +1,3321 @@ 
+/*
+ * Intel ACPI Component Architecture
+ * AML/ASL+ Disassembler version 20190509 (64-bit version)
+ * Copyright (c) 2000 - 2019 Intel Corporation
+ * 
+ * Disassembling to symbolic ASL+ operators
+ *
+ * Disassembly of tests/data/acpi/q35/DSDT.tis, Tue Aug  4 11:14:15 2020
+ *
+ * Original Table Header:
+ *     Signature        "DSDT"
+ *     Length           0x0000205B (8283)
+ *     Revision         0x01 **** 32-bit table (V1), no 64-bit math support
+ *     Checksum         0x84
+ *     OEM ID           "BOCHS "
+ *     OEM Table ID     "BXPCDSDT"
+ *     OEM Revision     0x00000001 (1)
+ *     Compiler ID      "BXPC"
+ *     Compiler Version 0x00000001 (1)
+ */
+DefinitionBlock ("", "DSDT", 1, "BOCHS ", "BXPCDSDT", 0x00000001)
+{
+    Scope (\)
+    {
+        OperationRegion (DBG, SystemIO, 0x0402, One)
+        Field (DBG, ByteAcc, NoLock, Preserve)
+        {
+            DBGB,   8
+        }
+
+        Method (DBUG, 1, NotSerialized)
+        {
+            ToHexString (Arg0, Local0)
+            ToBuffer (Local0, Local0)
+            Local1 = (SizeOf (Local0) - One)
+            Local2 = Zero
+            While ((Local2 < Local1))
+            {
+                DBGB = DerefOf (Local0 [Local2])
+                Local2++
+            }
+
+            DBGB = 0x0A
+        }
+    }
+
+    Scope (_SB)
+    {
+        Device (PCI0)
+        {
+            Name (_HID, EisaId ("PNP0A08") /* PCI Express Bus */)  // _HID: Hardware ID
+            Name (_CID, EisaId ("PNP0A03") /* PCI Bus */)  // _CID: Compatible ID
+            Name (_ADR, Zero)  // _ADR: Address
+            Name (_UID, Zero)  // _UID: Unique ID
+            Method (_OSC, 4, NotSerialized)  // _OSC: Operating System Capabilities
+            {
+                CreateDWordField (Arg3, Zero, CDW1)
+                If ((Arg0 == ToUUID ("33db4d5b-1ff7-401c-9657-7441c03dd766") /* PCI Host Bridge Device */))
+                {
+                    CreateDWordField (Arg3, 0x04, CDW2)
+                    CreateDWordField (Arg3, 0x08, CDW3)
+                    Local0 = CDW3 /* \_SB_.PCI0._OSC.CDW3 */
+                    Local0 &= 0x1F
+                    If ((Arg1 != One))
+                    {
+                        CDW1 |= 0x08
+                    }
+
+                    If ((CDW3 != Local0))
+                    {
+                        CDW1 |= 0x10
+                    }
+
+                    CDW3 = Local0
+                }
+                Else
+                {
+                    CDW1 |= 0x04
+                }
+
+                Return (Arg3)
+            }
+        }
+    }
+
+    Scope (_SB)
+    {
+        Device (HPET)
+        {
+            Name (_HID, EisaId ("PNP0103") /* HPET System Timer */)  // _HID: Hardware ID
+            Name (_UID, Zero)  // _UID: Unique ID
+            OperationRegion (HPTM, SystemMemory, 0xFED00000, 0x0400)
+            Field (HPTM, DWordAcc, Lock, Preserve)
+            {
+                VEND,   32, 
+                PRD,    32
+            }
+
+            Method (_STA, 0, NotSerialized)  // _STA: Status
+            {
+                Local0 = VEND /* \_SB_.HPET.VEND */
+                Local1 = PRD /* \_SB_.HPET.PRD_ */
+                Local0 >>= 0x10
+                If (((Local0 == Zero) || (Local0 == 0xFFFF)))
+                {
+                    Return (Zero)
+                }
+
+                If (((Local1 == Zero) || (Local1 > 0x05F5E100)))
+                {
+                    Return (Zero)
+                }
+
+                Return (0x0F)
+            }
+
+            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+            {
+                Memory32Fixed (ReadOnly,
+                    0xFED00000,         // Address Base
+                    0x00000400,         // Address Length
+                    )
+            })
+        }
+    }
+
+    Scope (_SB.PCI0)
+    {
+        Device (ISA)
+        {
+            Name (_ADR, 0x001F0000)  // _ADR: Address
+            OperationRegion (PIRQ, PCI_Config, 0x60, 0x0C)
+        }
+    }
+
+    Scope (_SB.PCI0.ISA)
+    {
+        Device (KBD)
+        {
+            Name (_HID, EisaId ("PNP0303") /* IBM Enhanced Keyboard (101/102-key, PS/2 Mouse) */)  // _HID: Hardware ID
+            Name (_STA, 0x0F)  // _STA: Status
+            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+            {
+                IO (Decode16,
+                    0x0060,             // Range Minimum
+                    0x0060,             // Range Maximum
+                    0x01,               // Alignment
+                    0x01,               // Length
+                    )
+                IO (Decode16,
+                    0x0064,             // Range Minimum
+                    0x0064,             // Range Maximum
+                    0x01,               // Alignment
+                    0x01,               // Length
+                    )
+                IRQNoFlags ()
+                    {1}
+            })
+        }
+
+        Device (MOU)
+        {
+            Name (_HID, EisaId ("PNP0F13") /* PS/2 Mouse */)  // _HID: Hardware ID
+            Name (_STA, 0x0F)  // _STA: Status
+            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+            {
+                IRQNoFlags ()
+                    {12}
+            })
+        }
+
+        Device (LPT1)
+        {
+            Name (_HID, EisaId ("PNP0400") /* Standard LPT Parallel Port */)  // _HID: Hardware ID
+            Name (_UID, One)  // _UID: Unique ID
+            Name (_STA, 0x0F)  // _STA: Status
+            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+            {
+                IO (Decode16,
+                    0x0378,             // Range Minimum
+                    0x0378,             // Range Maximum
+                    0x08,               // Alignment
+                    0x08,               // Length
+                    )
+                IRQNoFlags ()
+                    {7}
+            })
+        }
+
+        Device (COM1)
+        {
+            Name (_HID, EisaId ("PNP0501") /* 16550A-compatible COM Serial Port */)  // _HID: Hardware ID
+            Name (_UID, One)  // _UID: Unique ID
+            Name (_STA, 0x0F)  // _STA: Status
+            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+            {
+                IO (Decode16,
+                    0x03F8,             // Range Minimum
+                    0x03F8,             // Range Maximum
+                    0x00,               // Alignment
+                    0x08,               // Length
+                    )
+                IRQNoFlags ()
+                    {4}
+            })
+        }
+
+        Device (RTC)
+        {
+            Name (_HID, EisaId ("PNP0B00") /* AT Real-Time Clock */)  // _HID: Hardware ID
+            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+            {
+                IO (Decode16,
+                    0x0070,             // Range Minimum
+                    0x0070,             // Range Maximum
+                    0x01,               // Alignment
+                    0x08,               // Length
+                    )
+                IRQNoFlags ()
+                    {8}
+            })
+        }
+    }
+
+    Name (PICF, Zero)
+    Method (_PIC, 1, NotSerialized)  // _PIC: Interrupt Model
+    {
+        PICF = Arg0
+    }
+
+    Scope (_SB)
+    {
+        Scope (PCI0)
+        {
+            Name (PRTP, Package (0x80)
+            {
+                Package (0x04)
+                {
+                    0xFFFF, 
+                    Zero, 
+                    LNKE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0xFFFF, 
+                    One, 
+                    LNKF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0xFFFF, 
+                    0x02, 
+                    LNKG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0xFFFF, 
+                    0x03, 
+                    LNKH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0001FFFF, 
+                    Zero, 
+                    LNKF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0001FFFF, 
+                    One, 
+                    LNKG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0001FFFF, 
+                    0x02, 
+                    LNKH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0001FFFF, 
+                    0x03, 
+                    LNKE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0002FFFF, 
+                    Zero, 
+                    LNKG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0002FFFF, 
+                    One, 
+                    LNKH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0002FFFF, 
+                    0x02, 
+                    LNKE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0002FFFF, 
+                    0x03, 
+                    LNKF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0003FFFF, 
+                    Zero, 
+                    LNKH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0003FFFF, 
+                    One, 
+                    LNKE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0003FFFF, 
+                    0x02, 
+                    LNKF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0003FFFF, 
+                    0x03, 
+                    LNKG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0004FFFF, 
+                    Zero, 
+                    LNKE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0004FFFF, 
+                    One, 
+                    LNKF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0004FFFF, 
+                    0x02, 
+                    LNKG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0004FFFF, 
+                    0x03, 
+                    LNKH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0005FFFF, 
+                    Zero, 
+                    LNKF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0005FFFF, 
+                    One, 
+                    LNKG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0005FFFF, 
+                    0x02, 
+                    LNKH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0005FFFF, 
+                    0x03, 
+                    LNKE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0006FFFF, 
+                    Zero, 
+                    LNKG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0006FFFF, 
+                    One, 
+                    LNKH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0006FFFF, 
+                    0x02, 
+                    LNKE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0006FFFF, 
+                    0x03, 
+                    LNKF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0007FFFF, 
+                    Zero, 
+                    LNKH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0007FFFF, 
+                    One, 
+                    LNKE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0007FFFF, 
+                    0x02, 
+                    LNKF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0007FFFF, 
+                    0x03, 
+                    LNKG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0008FFFF, 
+                    Zero, 
+                    LNKE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0008FFFF, 
+                    One, 
+                    LNKF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0008FFFF, 
+                    0x02, 
+                    LNKG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0008FFFF, 
+                    0x03, 
+                    LNKH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0009FFFF, 
+                    Zero, 
+                    LNKF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0009FFFF, 
+                    One, 
+                    LNKG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0009FFFF, 
+                    0x02, 
+                    LNKH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0009FFFF, 
+                    0x03, 
+                    LNKE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000AFFFF, 
+                    Zero, 
+                    LNKG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000AFFFF, 
+                    One, 
+                    LNKH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000AFFFF, 
+                    0x02, 
+                    LNKE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000AFFFF, 
+                    0x03, 
+                    LNKF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000BFFFF, 
+                    Zero, 
+                    LNKH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000BFFFF, 
+                    One, 
+                    LNKE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000BFFFF, 
+                    0x02, 
+                    LNKF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000BFFFF, 
+                    0x03, 
+                    LNKG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000CFFFF, 
+                    Zero, 
+                    LNKE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000CFFFF, 
+                    One, 
+                    LNKF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000CFFFF, 
+                    0x02, 
+                    LNKG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000CFFFF, 
+                    0x03, 
+                    LNKH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000DFFFF, 
+                    Zero, 
+                    LNKF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000DFFFF, 
+                    One, 
+                    LNKG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000DFFFF, 
+                    0x02, 
+                    LNKH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000DFFFF, 
+                    0x03, 
+                    LNKE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000EFFFF, 
+                    Zero, 
+                    LNKG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000EFFFF, 
+                    One, 
+                    LNKH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000EFFFF, 
+                    0x02, 
+                    LNKE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000EFFFF, 
+                    0x03, 
+                    LNKF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000FFFFF, 
+                    Zero, 
+                    LNKH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000FFFFF, 
+                    One, 
+                    LNKE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000FFFFF, 
+                    0x02, 
+                    LNKF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000FFFFF, 
+                    0x03, 
+                    LNKG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0010FFFF, 
+                    Zero, 
+                    LNKE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0010FFFF, 
+                    One, 
+                    LNKF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0010FFFF, 
+                    0x02, 
+                    LNKG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0010FFFF, 
+                    0x03, 
+                    LNKH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0011FFFF, 
+                    Zero, 
+                    LNKF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0011FFFF, 
+                    One, 
+                    LNKG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0011FFFF, 
+                    0x02, 
+                    LNKH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0011FFFF, 
+                    0x03, 
+                    LNKE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0012FFFF, 
+                    Zero, 
+                    LNKG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0012FFFF, 
+                    One, 
+                    LNKH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0012FFFF, 
+                    0x02, 
+                    LNKE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0012FFFF, 
+                    0x03, 
+                    LNKF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0013FFFF, 
+                    Zero, 
+                    LNKH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0013FFFF, 
+                    One, 
+                    LNKE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0013FFFF, 
+                    0x02, 
+                    LNKF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0013FFFF, 
+                    0x03, 
+                    LNKG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0014FFFF, 
+                    Zero, 
+                    LNKE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0014FFFF, 
+                    One, 
+                    LNKF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0014FFFF, 
+                    0x02, 
+                    LNKG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0014FFFF, 
+                    0x03, 
+                    LNKH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0015FFFF, 
+                    Zero, 
+                    LNKF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0015FFFF, 
+                    One, 
+                    LNKG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0015FFFF, 
+                    0x02, 
+                    LNKH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0015FFFF, 
+                    0x03, 
+                    LNKE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0016FFFF, 
+                    Zero, 
+                    LNKG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0016FFFF, 
+                    One, 
+                    LNKH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0016FFFF, 
+                    0x02, 
+                    LNKE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0016FFFF, 
+                    0x03, 
+                    LNKF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0017FFFF, 
+                    Zero, 
+                    LNKH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0017FFFF, 
+                    One, 
+                    LNKE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0017FFFF, 
+                    0x02, 
+                    LNKF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0017FFFF, 
+                    0x03, 
+                    LNKG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0018FFFF, 
+                    Zero, 
+                    LNKE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0018FFFF, 
+                    One, 
+                    LNKF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0018FFFF, 
+                    0x02, 
+                    LNKG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0018FFFF, 
+                    0x03, 
+                    LNKH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0019FFFF, 
+                    Zero, 
+                    LNKA, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0019FFFF, 
+                    One, 
+                    LNKB, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0019FFFF, 
+                    0x02, 
+                    LNKC, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0019FFFF, 
+                    0x03, 
+                    LNKD, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001AFFFF, 
+                    Zero, 
+                    LNKA, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001AFFFF, 
+                    One, 
+                    LNKB, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001AFFFF, 
+                    0x02, 
+                    LNKC, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001AFFFF, 
+                    0x03, 
+                    LNKD, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001BFFFF, 
+                    Zero, 
+                    LNKA, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001BFFFF, 
+                    One, 
+                    LNKB, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001BFFFF, 
+                    0x02, 
+                    LNKC, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001BFFFF, 
+                    0x03, 
+                    LNKD, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001CFFFF, 
+                    Zero, 
+                    LNKA, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001CFFFF, 
+                    One, 
+                    LNKB, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001CFFFF, 
+                    0x02, 
+                    LNKC, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001CFFFF, 
+                    0x03, 
+                    LNKD, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001DFFFF, 
+                    Zero, 
+                    LNKA, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001DFFFF, 
+                    One, 
+                    LNKB, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001DFFFF, 
+                    0x02, 
+                    LNKC, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001DFFFF, 
+                    0x03, 
+                    LNKD, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001EFFFF, 
+                    Zero, 
+                    LNKE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001EFFFF, 
+                    One, 
+                    LNKF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001EFFFF, 
+                    0x02, 
+                    LNKG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001EFFFF, 
+                    0x03, 
+                    LNKH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001FFFFF, 
+                    Zero, 
+                    LNKA, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001FFFFF, 
+                    One, 
+                    LNKB, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001FFFFF, 
+                    0x02, 
+                    LNKC, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001FFFFF, 
+                    0x03, 
+                    LNKD, 
+                    Zero
+                }
+            })
+            Name (PRTA, Package (0x80)
+            {
+                Package (0x04)
+                {
+                    0xFFFF, 
+                    Zero, 
+                    GSIE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0xFFFF, 
+                    One, 
+                    GSIF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0xFFFF, 
+                    0x02, 
+                    GSIG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0xFFFF, 
+                    0x03, 
+                    GSIH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0001FFFF, 
+                    Zero, 
+                    GSIF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0001FFFF, 
+                    One, 
+                    GSIG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0001FFFF, 
+                    0x02, 
+                    GSIH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0001FFFF, 
+                    0x03, 
+                    GSIE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0002FFFF, 
+                    Zero, 
+                    GSIG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0002FFFF, 
+                    One, 
+                    GSIH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0002FFFF, 
+                    0x02, 
+                    GSIE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0002FFFF, 
+                    0x03, 
+                    GSIF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0003FFFF, 
+                    Zero, 
+                    GSIH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0003FFFF, 
+                    One, 
+                    GSIE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0003FFFF, 
+                    0x02, 
+                    GSIF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0003FFFF, 
+                    0x03, 
+                    GSIG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0004FFFF, 
+                    Zero, 
+                    GSIE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0004FFFF, 
+                    One, 
+                    GSIF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0004FFFF, 
+                    0x02, 
+                    GSIG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0004FFFF, 
+                    0x03, 
+                    GSIH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0005FFFF, 
+                    Zero, 
+                    GSIF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0005FFFF, 
+                    One, 
+                    GSIG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0005FFFF, 
+                    0x02, 
+                    GSIH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0005FFFF, 
+                    0x03, 
+                    GSIE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0006FFFF, 
+                    Zero, 
+                    GSIG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0006FFFF, 
+                    One, 
+                    GSIH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0006FFFF, 
+                    0x02, 
+                    GSIE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0006FFFF, 
+                    0x03, 
+                    GSIF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0007FFFF, 
+                    Zero, 
+                    GSIH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0007FFFF, 
+                    One, 
+                    GSIE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0007FFFF, 
+                    0x02, 
+                    GSIF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0007FFFF, 
+                    0x03, 
+                    GSIG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0008FFFF, 
+                    Zero, 
+                    GSIE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0008FFFF, 
+                    One, 
+                    GSIF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0008FFFF, 
+                    0x02, 
+                    GSIG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0008FFFF, 
+                    0x03, 
+                    GSIH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0009FFFF, 
+                    Zero, 
+                    GSIF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0009FFFF, 
+                    One, 
+                    GSIG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0009FFFF, 
+                    0x02, 
+                    GSIH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0009FFFF, 
+                    0x03, 
+                    GSIE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000AFFFF, 
+                    Zero, 
+                    GSIG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000AFFFF, 
+                    One, 
+                    GSIH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000AFFFF, 
+                    0x02, 
+                    GSIE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000AFFFF, 
+                    0x03, 
+                    GSIF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000BFFFF, 
+                    Zero, 
+                    GSIH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000BFFFF, 
+                    One, 
+                    GSIE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000BFFFF, 
+                    0x02, 
+                    GSIF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000BFFFF, 
+                    0x03, 
+                    GSIG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000CFFFF, 
+                    Zero, 
+                    GSIE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000CFFFF, 
+                    One, 
+                    GSIF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000CFFFF, 
+                    0x02, 
+                    GSIG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000CFFFF, 
+                    0x03, 
+                    GSIH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000DFFFF, 
+                    Zero, 
+                    GSIF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000DFFFF, 
+                    One, 
+                    GSIG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000DFFFF, 
+                    0x02, 
+                    GSIH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000DFFFF, 
+                    0x03, 
+                    GSIE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000EFFFF, 
+                    Zero, 
+                    GSIG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000EFFFF, 
+                    One, 
+                    GSIH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000EFFFF, 
+                    0x02, 
+                    GSIE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000EFFFF, 
+                    0x03, 
+                    GSIF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000FFFFF, 
+                    Zero, 
+                    GSIH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000FFFFF, 
+                    One, 
+                    GSIE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000FFFFF, 
+                    0x02, 
+                    GSIF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000FFFFF, 
+                    0x03, 
+                    GSIG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0010FFFF, 
+                    Zero, 
+                    GSIE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0010FFFF, 
+                    One, 
+                    GSIF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0010FFFF, 
+                    0x02, 
+                    GSIG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0010FFFF, 
+                    0x03, 
+                    GSIH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0011FFFF, 
+                    Zero, 
+                    GSIF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0011FFFF, 
+                    One, 
+                    GSIG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0011FFFF, 
+                    0x02, 
+                    GSIH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0011FFFF, 
+                    0x03, 
+                    GSIE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0012FFFF, 
+                    Zero, 
+                    GSIG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0012FFFF, 
+                    One, 
+                    GSIH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0012FFFF, 
+                    0x02, 
+                    GSIE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0012FFFF, 
+                    0x03, 
+                    GSIF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0013FFFF, 
+                    Zero, 
+                    GSIH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0013FFFF, 
+                    One, 
+                    GSIE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0013FFFF, 
+                    0x02, 
+                    GSIF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0013FFFF, 
+                    0x03, 
+                    GSIG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0014FFFF, 
+                    Zero, 
+                    GSIE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0014FFFF, 
+                    One, 
+                    GSIF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0014FFFF, 
+                    0x02, 
+                    GSIG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0014FFFF, 
+                    0x03, 
+                    GSIH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0015FFFF, 
+                    Zero, 
+                    GSIF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0015FFFF, 
+                    One, 
+                    GSIG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0015FFFF, 
+                    0x02, 
+                    GSIH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0015FFFF, 
+                    0x03, 
+                    GSIE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0016FFFF, 
+                    Zero, 
+                    GSIG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0016FFFF, 
+                    One, 
+                    GSIH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0016FFFF, 
+                    0x02, 
+                    GSIE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0016FFFF, 
+                    0x03, 
+                    GSIF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0017FFFF, 
+                    Zero, 
+                    GSIH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0017FFFF, 
+                    One, 
+                    GSIE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0017FFFF, 
+                    0x02, 
+                    GSIF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0017FFFF, 
+                    0x03, 
+                    GSIG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0018FFFF, 
+                    Zero, 
+                    GSIE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0018FFFF, 
+                    One, 
+                    GSIF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0018FFFF, 
+                    0x02, 
+                    GSIG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0018FFFF, 
+                    0x03, 
+                    GSIH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0019FFFF, 
+                    Zero, 
+                    GSIA, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0019FFFF, 
+                    One, 
+                    GSIB, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0019FFFF, 
+                    0x02, 
+                    GSIC, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0019FFFF, 
+                    0x03, 
+                    GSID, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001AFFFF, 
+                    Zero, 
+                    GSIA, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001AFFFF, 
+                    One, 
+                    GSIB, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001AFFFF, 
+                    0x02, 
+                    GSIC, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001AFFFF, 
+                    0x03, 
+                    GSID, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001BFFFF, 
+                    Zero, 
+                    GSIA, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001BFFFF, 
+                    One, 
+                    GSIB, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001BFFFF, 
+                    0x02, 
+                    GSIC, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001BFFFF, 
+                    0x03, 
+                    GSID, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001CFFFF, 
+                    Zero, 
+                    GSIA, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001CFFFF, 
+                    One, 
+                    GSIB, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001CFFFF, 
+                    0x02, 
+                    GSIC, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001CFFFF, 
+                    0x03, 
+                    GSID, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001DFFFF, 
+                    Zero, 
+                    GSIA, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001DFFFF, 
+                    One, 
+                    GSIB, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001DFFFF, 
+                    0x02, 
+                    GSIC, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001DFFFF, 
+                    0x03, 
+                    GSID, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001EFFFF, 
+                    Zero, 
+                    GSIE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001EFFFF, 
+                    One, 
+                    GSIF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001EFFFF, 
+                    0x02, 
+                    GSIG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001EFFFF, 
+                    0x03, 
+                    GSIH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001FFFFF, 
+                    Zero, 
+                    GSIA, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001FFFFF, 
+                    One, 
+                    GSIB, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001FFFFF, 
+                    0x02, 
+                    GSIC, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001FFFFF, 
+                    0x03, 
+                    GSID, 
+                    Zero
+                }
+            })
+            Method (_PRT, 0, NotSerialized)  // _PRT: PCI Routing Table
+            {
+                If ((PICF == Zero))
+                {
+                    Return (PRTP) /* \_SB_.PCI0.PRTP */
+                }
+                Else
+                {
+                    Return (PRTA) /* \_SB_.PCI0.PRTA */
+                }
+            }
+        }
+
+        Field (PCI0.ISA.PIRQ, ByteAcc, NoLock, Preserve)
+        {
+            PRQA,   8, 
+            PRQB,   8, 
+            PRQC,   8, 
+            PRQD,   8, 
+            Offset (0x08), 
+            PRQE,   8, 
+            PRQF,   8, 
+            PRQG,   8, 
+            PRQH,   8
+        }
+
+        Method (IQST, 1, NotSerialized)
+        {
+            If ((0x80 & Arg0))
+            {
+                Return (0x09)
+            }
+
+            Return (0x0B)
+        }
+
+        Method (IQCR, 1, Serialized)
+        {
+            Name (PRR0, ResourceTemplate ()
+            {
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, _Y00)
+                {
+                    0x00000000,
+                }
+            })
+            CreateDWordField (PRR0, \_SB.IQCR._Y00._INT, PRRI)  // _INT: Interrupts
+            PRRI = (Arg0 & 0x0F)
+            Return (PRR0) /* \_SB_.IQCR.PRR0 */
+        }
+
+        Device (LNKA)
+        {
+            Name (_HID, EisaId ("PNP0C0F") /* PCI Interrupt Link Device */)  // _HID: Hardware ID
+            Name (_UID, Zero)  // _UID: Unique ID
+            Name (_PRS, ResourceTemplate ()  // _PRS: Possible Resource Settings
+            {
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, )
+                {
+                    0x00000005,
+                    0x0000000A,
+                    0x0000000B,
+                }
+            })
+            Method (_STA, 0, NotSerialized)  // _STA: Status
+            {
+                Return (IQST (PRQA))
+            }
+
+            Method (_DIS, 0, NotSerialized)  // _DIS: Disable Device
+            {
+                PRQA |= 0x80
+            }
+
+            Method (_CRS, 0, NotSerialized)  // _CRS: Current Resource Settings
+            {
+                Return (IQCR (PRQA))
+            }
+
+            Method (_SRS, 1, NotSerialized)  // _SRS: Set Resource Settings
+            {
+                CreateDWordField (Arg0, 0x05, PRRI)
+                PRQA = PRRI /* \_SB_.LNKA._SRS.PRRI */
+            }
+        }
+
+        Device (LNKB)
+        {
+            Name (_HID, EisaId ("PNP0C0F") /* PCI Interrupt Link Device */)  // _HID: Hardware ID
+            Name (_UID, One)  // _UID: Unique ID
+            Name (_PRS, ResourceTemplate ()  // _PRS: Possible Resource Settings
+            {
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, )
+                {
+                    0x00000005,
+                    0x0000000A,
+                    0x0000000B,
+                }
+            })
+            Method (_STA, 0, NotSerialized)  // _STA: Status
+            {
+                Return (IQST (PRQB))
+            }
+
+            Method (_DIS, 0, NotSerialized)  // _DIS: Disable Device
+            {
+                PRQB |= 0x80
+            }
+
+            Method (_CRS, 0, NotSerialized)  // _CRS: Current Resource Settings
+            {
+                Return (IQCR (PRQB))
+            }
+
+            Method (_SRS, 1, NotSerialized)  // _SRS: Set Resource Settings
+            {
+                CreateDWordField (Arg0, 0x05, PRRI)
+                PRQB = PRRI /* \_SB_.LNKB._SRS.PRRI */
+            }
+        }
+
+        Device (LNKC)
+        {
+            Name (_HID, EisaId ("PNP0C0F") /* PCI Interrupt Link Device */)  // _HID: Hardware ID
+            Name (_UID, 0x02)  // _UID: Unique ID
+            Name (_PRS, ResourceTemplate ()  // _PRS: Possible Resource Settings
+            {
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, )
+                {
+                    0x00000005,
+                    0x0000000A,
+                    0x0000000B,
+                }
+            })
+            Method (_STA, 0, NotSerialized)  // _STA: Status
+            {
+                Return (IQST (PRQC))
+            }
+
+            Method (_DIS, 0, NotSerialized)  // _DIS: Disable Device
+            {
+                PRQC |= 0x80
+            }
+
+            Method (_CRS, 0, NotSerialized)  // _CRS: Current Resource Settings
+            {
+                Return (IQCR (PRQC))
+            }
+
+            Method (_SRS, 1, NotSerialized)  // _SRS: Set Resource Settings
+            {
+                CreateDWordField (Arg0, 0x05, PRRI)
+                PRQC = PRRI /* \_SB_.LNKC._SRS.PRRI */
+            }
+        }
+
+        Device (LNKD)
+        {
+            Name (_HID, EisaId ("PNP0C0F") /* PCI Interrupt Link Device */)  // _HID: Hardware ID
+            Name (_UID, 0x03)  // _UID: Unique ID
+            Name (_PRS, ResourceTemplate ()  // _PRS: Possible Resource Settings
+            {
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, )
+                {
+                    0x00000005,
+                    0x0000000A,
+                    0x0000000B,
+                }
+            })
+            Method (_STA, 0, NotSerialized)  // _STA: Status
+            {
+                Return (IQST (PRQD))
+            }
+
+            Method (_DIS, 0, NotSerialized)  // _DIS: Disable Device
+            {
+                PRQD |= 0x80
+            }
+
+            Method (_CRS, 0, NotSerialized)  // _CRS: Current Resource Settings
+            {
+                Return (IQCR (PRQD))
+            }
+
+            Method (_SRS, 1, NotSerialized)  // _SRS: Set Resource Settings
+            {
+                CreateDWordField (Arg0, 0x05, PRRI)
+                PRQD = PRRI /* \_SB_.LNKD._SRS.PRRI */
+            }
+        }
+
+        Device (LNKE)
+        {
+            Name (_HID, EisaId ("PNP0C0F") /* PCI Interrupt Link Device */)  // _HID: Hardware ID
+            Name (_UID, 0x04)  // _UID: Unique ID
+            Name (_PRS, ResourceTemplate ()  // _PRS: Possible Resource Settings
+            {
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, )
+                {
+                    0x00000005,
+                    0x0000000A,
+                    0x0000000B,
+                }
+            })
+            Method (_STA, 0, NotSerialized)  // _STA: Status
+            {
+                Return (IQST (PRQE))
+            }
+
+            Method (_DIS, 0, NotSerialized)  // _DIS: Disable Device
+            {
+                PRQE |= 0x80
+            }
+
+            Method (_CRS, 0, NotSerialized)  // _CRS: Current Resource Settings
+            {
+                Return (IQCR (PRQE))
+            }
+
+            Method (_SRS, 1, NotSerialized)  // _SRS: Set Resource Settings
+            {
+                CreateDWordField (Arg0, 0x05, PRRI)
+                PRQE = PRRI /* \_SB_.LNKE._SRS.PRRI */
+            }
+        }
+
+        Device (LNKF)
+        {
+            Name (_HID, EisaId ("PNP0C0F") /* PCI Interrupt Link Device */)  // _HID: Hardware ID
+            Name (_UID, 0x05)  // _UID: Unique ID
+            Name (_PRS, ResourceTemplate ()  // _PRS: Possible Resource Settings
+            {
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, )
+                {
+                    0x00000005,
+                    0x0000000A,
+                    0x0000000B,
+                }
+            })
+            Method (_STA, 0, NotSerialized)  // _STA: Status
+            {
+                Return (IQST (PRQF))
+            }
+
+            Method (_DIS, 0, NotSerialized)  // _DIS: Disable Device
+            {
+                PRQF |= 0x80
+            }
+
+            Method (_CRS, 0, NotSerialized)  // _CRS: Current Resource Settings
+            {
+                Return (IQCR (PRQF))
+            }
+
+            Method (_SRS, 1, NotSerialized)  // _SRS: Set Resource Settings
+            {
+                CreateDWordField (Arg0, 0x05, PRRI)
+                PRQF = PRRI /* \_SB_.LNKF._SRS.PRRI */
+            }
+        }
+
+        Device (LNKG)
+        {
+            Name (_HID, EisaId ("PNP0C0F") /* PCI Interrupt Link Device */)  // _HID: Hardware ID
+            Name (_UID, 0x06)  // _UID: Unique ID
+            Name (_PRS, ResourceTemplate ()  // _PRS: Possible Resource Settings
+            {
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, )
+                {
+                    0x00000005,
+                    0x0000000A,
+                    0x0000000B,
+                }
+            })
+            Method (_STA, 0, NotSerialized)  // _STA: Status
+            {
+                Return (IQST (PRQG))
+            }
+
+            Method (_DIS, 0, NotSerialized)  // _DIS: Disable Device
+            {
+                PRQG |= 0x80
+            }
+
+            Method (_CRS, 0, NotSerialized)  // _CRS: Current Resource Settings
+            {
+                Return (IQCR (PRQG))
+            }
+
+            Method (_SRS, 1, NotSerialized)  // _SRS: Set Resource Settings
+            {
+                CreateDWordField (Arg0, 0x05, PRRI)
+                PRQG = PRRI /* \_SB_.LNKG._SRS.PRRI */
+            }
+        }
+
+        Device (LNKH)
+        {
+            Name (_HID, EisaId ("PNP0C0F") /* PCI Interrupt Link Device */)  // _HID: Hardware ID
+            Name (_UID, 0x07)  // _UID: Unique ID
+            Name (_PRS, ResourceTemplate ()  // _PRS: Possible Resource Settings
+            {
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, )
+                {
+                    0x00000005,
+                    0x0000000A,
+                    0x0000000B,
+                }
+            })
+            Method (_STA, 0, NotSerialized)  // _STA: Status
+            {
+                Return (IQST (PRQH))
+            }
+
+            Method (_DIS, 0, NotSerialized)  // _DIS: Disable Device
+            {
+                PRQH |= 0x80
+            }
+
+            Method (_CRS, 0, NotSerialized)  // _CRS: Current Resource Settings
+            {
+                Return (IQCR (PRQH))
+            }
+
+            Method (_SRS, 1, NotSerialized)  // _SRS: Set Resource Settings
+            {
+                CreateDWordField (Arg0, 0x05, PRRI)
+                PRQH = PRRI /* \_SB_.LNKH._SRS.PRRI */
+            }
+        }
+
+        Device (GSIA)
+        {
+            Name (_HID, EisaId ("PNP0C0F") /* PCI Interrupt Link Device */)  // _HID: Hardware ID
+            Name (_UID, 0x10)  // _UID: Unique ID
+            Name (_PRS, ResourceTemplate ()  // _PRS: Possible Resource Settings
+            {
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, )
+                {
+                    0x00000010,
+                }
+            })
+            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+            {
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, )
+                {
+                    0x00000010,
+                }
+            })
+            Method (_DIS, 0, NotSerialized)  // _DIS: Disable Device
+            {
+            }
+
+            Method (_SRS, 1, NotSerialized)  // _SRS: Set Resource Settings
+            {
+            }
+        }
+
+        Device (GSIB)
+        {
+            Name (_HID, EisaId ("PNP0C0F") /* PCI Interrupt Link Device */)  // _HID: Hardware ID
+            Name (_UID, 0x11)  // _UID: Unique ID
+            Name (_PRS, ResourceTemplate ()  // _PRS: Possible Resource Settings
+            {
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, )
+                {
+                    0x00000011,
+                }
+            })
+            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+            {
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, )
+                {
+                    0x00000011,
+                }
+            })
+            Method (_DIS, 0, NotSerialized)  // _DIS: Disable Device
+            {
+            }
+
+            Method (_SRS, 1, NotSerialized)  // _SRS: Set Resource Settings
+            {
+            }
+        }
+
+        Device (GSIC)
+        {
+            Name (_HID, EisaId ("PNP0C0F") /* PCI Interrupt Link Device */)  // _HID: Hardware ID
+            Name (_UID, 0x12)  // _UID: Unique ID
+            Name (_PRS, ResourceTemplate ()  // _PRS: Possible Resource Settings
+            {
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, )
+                {
+                    0x00000012,
+                }
+            })
+            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+            {
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, )
+                {
+                    0x00000012,
+                }
+            })
+            Method (_DIS, 0, NotSerialized)  // _DIS: Disable Device
+            {
+            }
+
+            Method (_SRS, 1, NotSerialized)  // _SRS: Set Resource Settings
+            {
+            }
+        }
+
+        Device (GSID)
+        {
+            Name (_HID, EisaId ("PNP0C0F") /* PCI Interrupt Link Device */)  // _HID: Hardware ID
+            Name (_UID, 0x13)  // _UID: Unique ID
+            Name (_PRS, ResourceTemplate ()  // _PRS: Possible Resource Settings
+            {
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, )
+                {
+                    0x00000013,
+                }
+            })
+            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+            {
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, )
+                {
+                    0x00000013,
+                }
+            })
+            Method (_DIS, 0, NotSerialized)  // _DIS: Disable Device
+            {
+            }
+
+            Method (_SRS, 1, NotSerialized)  // _SRS: Set Resource Settings
+            {
+            }
+        }
+
+        Device (GSIE)
+        {
+            Name (_HID, EisaId ("PNP0C0F") /* PCI Interrupt Link Device */)  // _HID: Hardware ID
+            Name (_UID, 0x14)  // _UID: Unique ID
+            Name (_PRS, ResourceTemplate ()  // _PRS: Possible Resource Settings
+            {
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, )
+                {
+                    0x00000014,
+                }
+            })
+            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+            {
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, )
+                {
+                    0x00000014,
+                }
+            })
+            Method (_DIS, 0, NotSerialized)  // _DIS: Disable Device
+            {
+            }
+
+            Method (_SRS, 1, NotSerialized)  // _SRS: Set Resource Settings
+            {
+            }
+        }
+
+        Device (GSIF)
+        {
+            Name (_HID, EisaId ("PNP0C0F") /* PCI Interrupt Link Device */)  // _HID: Hardware ID
+            Name (_UID, 0x15)  // _UID: Unique ID
+            Name (_PRS, ResourceTemplate ()  // _PRS: Possible Resource Settings
+            {
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, )
+                {
+                    0x00000015,
+                }
+            })
+            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+            {
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, )
+                {
+                    0x00000015,
+                }
+            })
+            Method (_DIS, 0, NotSerialized)  // _DIS: Disable Device
+            {
+            }
+
+            Method (_SRS, 1, NotSerialized)  // _SRS: Set Resource Settings
+            {
+            }
+        }
+
+        Device (GSIG)
+        {
+            Name (_HID, EisaId ("PNP0C0F") /* PCI Interrupt Link Device */)  // _HID: Hardware ID
+            Name (_UID, 0x16)  // _UID: Unique ID
+            Name (_PRS, ResourceTemplate ()  // _PRS: Possible Resource Settings
+            {
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, )
+                {
+                    0x00000016,
+                }
+            })
+            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+            {
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, )
+                {
+                    0x00000016,
+                }
+            })
+            Method (_DIS, 0, NotSerialized)  // _DIS: Disable Device
+            {
+            }
+
+            Method (_SRS, 1, NotSerialized)  // _SRS: Set Resource Settings
+            {
+            }
+        }
+
+        Device (GSIH)
+        {
+            Name (_HID, EisaId ("PNP0C0F") /* PCI Interrupt Link Device */)  // _HID: Hardware ID
+            Name (_UID, 0x17)  // _UID: Unique ID
+            Name (_PRS, ResourceTemplate ()  // _PRS: Possible Resource Settings
+            {
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, )
+                {
+                    0x00000017,
+                }
+            })
+            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+            {
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, )
+                {
+                    0x00000017,
+                }
+            })
+            Method (_DIS, 0, NotSerialized)  // _DIS: Disable Device
+            {
+            }
+
+            Method (_SRS, 1, NotSerialized)  // _SRS: Set Resource Settings
+            {
+            }
+        }
+    }
+
+    Scope (_SB.PCI0)
+    {
+        Device (SMB0)
+        {
+            Name (_ADR, 0x001F0003)  // _ADR: Address
+        }
+    }
+
+    Scope (_SB)
+    {
+        Device (\_SB.PCI0.PRES)
+        {
+            Name (_HID, EisaId ("PNP0A06") /* Generic Container Device */)  // _HID: Hardware ID
+            Name (_UID, "CPU Hotplug resources")  // _UID: Unique ID
+            Mutex (CPLK, 0x00)
+            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+            {
+                IO (Decode16,
+                    0x0CD8,             // Range Minimum
+                    0x0CD8,             // Range Maximum
+                    0x01,               // Alignment
+                    0x0C,               // Length
+                    )
+            })
+            OperationRegion (PRST, SystemIO, 0x0CD8, 0x0C)
+            Field (PRST, ByteAcc, NoLock, WriteAsZeros)
+            {
+                Offset (0x04), 
+                CPEN,   1, 
+                CINS,   1, 
+                CRMV,   1, 
+                CEJ0,   1, 
+                Offset (0x05), 
+                CCMD,   8
+            }
+
+            Field (PRST, DWordAcc, NoLock, Preserve)
+            {
+                CSEL,   32, 
+                Offset (0x08), 
+                CDAT,   32
+            }
+
+            Method (_INI, 0, Serialized)  // _INI: Initialize
+            {
+                CSEL = Zero
+            }
+        }
+
+        Device (\_SB.CPUS)
+        {
+            Name (_HID, "ACPI0010" /* Processor Container Device */)  // _HID: Hardware ID
+            Name (_CID, EisaId ("PNP0A05") /* Generic Container Device */)  // _CID: Compatible ID
+            Method (CTFY, 2, NotSerialized)
+            {
+                If ((Arg0 == Zero))
+                {
+                    Notify (C000, Arg1)
+                }
+            }
+
+            Method (CSTA, 1, Serialized)
+            {
+                Acquire (\_SB.PCI0.PRES.CPLK, 0xFFFF)
+                \_SB.PCI0.PRES.CSEL = Arg0
+                Local0 = Zero
+                If ((\_SB.PCI0.PRES.CPEN == One))
+                {
+                    Local0 = 0x0F
+                }
+
+                Release (\_SB.PCI0.PRES.CPLK)
+                Return (Local0)
+            }
+
+            Method (CEJ0, 1, Serialized)
+            {
+                Acquire (\_SB.PCI0.PRES.CPLK, 0xFFFF)
+                \_SB.PCI0.PRES.CSEL = Arg0
+                \_SB.PCI0.PRES.CEJ0 = One
+                Release (\_SB.PCI0.PRES.CPLK)
+            }
+
+            Method (CSCN, 0, Serialized)
+            {
+                Acquire (\_SB.PCI0.PRES.CPLK, 0xFFFF)
+                Local0 = One
+                While ((Local0 == One))
+                {
+                    Local0 = Zero
+                    \_SB.PCI0.PRES.CCMD = Zero
+                    If ((\_SB.PCI0.PRES.CINS == One))
+                    {
+                        CTFY (\_SB.PCI0.PRES.CDAT, One)
+                        \_SB.PCI0.PRES.CINS = One
+                        Local0 = One
+                    }
+                    ElseIf ((\_SB.PCI0.PRES.CRMV == One))
+                    {
+                        CTFY (\_SB.PCI0.PRES.CDAT, 0x03)
+                        \_SB.PCI0.PRES.CRMV = One
+                        Local0 = One
+                    }
+                }
+
+                Release (\_SB.PCI0.PRES.CPLK)
+            }
+
+            Method (COST, 4, Serialized)
+            {
+                Acquire (\_SB.PCI0.PRES.CPLK, 0xFFFF)
+                \_SB.PCI0.PRES.CSEL = Arg0
+                \_SB.PCI0.PRES.CCMD = One
+                \_SB.PCI0.PRES.CDAT = Arg1
+                \_SB.PCI0.PRES.CCMD = 0x02
+                \_SB.PCI0.PRES.CDAT = Arg2
+                Release (\_SB.PCI0.PRES.CPLK)
+            }
+
+            Processor (C000, 0x00, 0x00000000, 0x00)
+            {
+                Method (_STA, 0, Serialized)  // _STA: Status
+                {
+                    Return (CSTA (Zero))
+                }
+
+                Name (_MAT, Buffer (0x08)  // _MAT: Multiple APIC Table Entry
+                {
+                     0x00, 0x08, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00   // ........
+                })
+                Method (_OST, 3, Serialized)  // _OST: OSPM Status Indication
+                {
+                    COST (Zero, Arg0, Arg1, Arg2)
+                }
+            }
+        }
+    }
+
+    Method (\_GPE._E02, 0, NotSerialized)  // _Exx: Edge-Triggered GPE, xx=0x00-0xFF
+    {
+        \_SB.CPUS.CSCN ()
+    }
+
+    Scope (_GPE)
+    {
+        Name (_HID, "ACPI0006" /* GPE Block Device */)  // _HID: Hardware ID
+    }
+
+    Scope (\_SB.PCI0)
+    {
+        Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+        {
+            WordBusNumber (ResourceProducer, MinFixed, MaxFixed, PosDecode,
+                0x0000,             // Granularity
+                0x0000,             // Range Minimum
+                0x00FF,             // Range Maximum
+                0x0000,             // Translation Offset
+                0x0100,             // Length
+                ,, )
+            IO (Decode16,
+                0x0CF8,             // Range Minimum
+                0x0CF8,             // Range Maximum
+                0x01,               // Alignment
+                0x08,               // Length
+                )
+            WordIO (ResourceProducer, MinFixed, MaxFixed, PosDecode, EntireRange,
+                0x0000,             // Granularity
+                0x0000,             // Range Minimum
+                0x0CF7,             // Range Maximum
+                0x0000,             // Translation Offset
+                0x0CF8,             // Length
+                ,, , TypeStatic, DenseTranslation)
+            WordIO (ResourceProducer, MinFixed, MaxFixed, PosDecode, EntireRange,
+                0x0000,             // Granularity
+                0x0D00,             // Range Minimum
+                0xFFFF,             // Range Maximum
+                0x0000,             // Translation Offset
+                0xF300,             // Length
+                ,, , TypeStatic, DenseTranslation)
+            DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, Cacheable, ReadWrite,
+                0x00000000,         // Granularity
+                0x000A0000,         // Range Minimum
+                0x000BFFFF,         // Range Maximum
+                0x00000000,         // Translation Offset
+                0x00020000,         // Length
+                ,, , AddressRangeMemory, TypeStatic)
+            DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, NonCacheable, ReadWrite,
+                0x00000000,         // Granularity
+                0x08000000,         // Range Minimum
+                0xAFFFFFFF,         // Range Maximum
+                0x00000000,         // Translation Offset
+                0xA8000000,         // Length
+                ,, , AddressRangeMemory, TypeStatic)
+            DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, NonCacheable, ReadWrite,
+                0x00000000,         // Granularity
+                0xC0000000,         // Range Minimum
+                0xFEBFFFFF,         // Range Maximum
+                0x00000000,         // Translation Offset
+                0x3EC00000,         // Length
+                ,, , AddressRangeMemory, TypeStatic)
+            QWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, Cacheable, ReadWrite,
+                0x0000000000000000, // Granularity
+                0x0000000100000000, // Range Minimum
+                0x00000008FFFFFFFF, // Range Maximum
+                0x0000000000000000, // Translation Offset
+                0x0000000800000000, // Length
+                ,, , AddressRangeMemory, TypeStatic)
+            Memory32Fixed (ReadWrite,
+                0xFED40000,         // Address Base
+                0x00005000,         // Address Length
+                )
+        })
+        Device (GPE0)
+        {
+            Name (_HID, "PNP0A06" /* Generic Container Device */)  // _HID: Hardware ID
+            Name (_UID, "GPE0 resources")  // _UID: Unique ID
+            Name (_STA, 0x0B)  // _STA: Status
+            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+            {
+                IO (Decode16,
+                    0x0620,             // Range Minimum
+                    0x0620,             // Range Maximum
+                    0x01,               // Alignment
+                    0x10,               // Length
+                    )
+            })
+        }
+    }
+
+    Scope (\)
+    {
+        Name (_S3, Package (0x04)  // _S3_: S3 System State
+        {
+            One, 
+            One, 
+            Zero, 
+            Zero
+        })
+        Name (_S4, Package (0x04)  // _S4_: S4 System State
+        {
+            0x02, 
+            0x02, 
+            Zero, 
+            Zero
+        })
+        Name (_S5, Package (0x04)  // _S5_: S5 System State
+        {
+            Zero, 
+            Zero, 
+            Zero, 
+            Zero
+        })
+    }
+
+    Scope (\_SB.PCI0)
+    {
+        Device (FWCF)
+        {
+            Name (_HID, "QEMU0002")  // _HID: Hardware ID
+            Name (_STA, 0x0B)  // _STA: Status
+            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+            {
+                IO (Decode16,
+                    0x0510,             // Range Minimum
+                    0x0510,             // Range Maximum
+                    0x01,               // Alignment
+                    0x0C,               // Length
+                    )
+            })
+        }
+    }
+
+    Scope (\_SB)
+    {
+        Scope (PCI0)
+        {
+            Device (S00)
+            {
+                Name (_ADR, Zero)  // _ADR: Address
+            }
+
+            Device (S08)
+            {
+                Name (_ADR, 0x00010000)  // _ADR: Address
+                Method (_S1D, 0, NotSerialized)  // _S1D: S1 Device State
+                {
+                    Return (Zero)
+                }
+
+                Method (_S2D, 0, NotSerialized)  // _S2D: S2 Device State
+                {
+                    Return (Zero)
+                }
+
+                Method (_S3D, 0, NotSerialized)  // _S3D: S3 Device State
+                {
+                    Return (Zero)
+                }
+            }
+
+            Method (PCNT, 0, NotSerialized)
+            {
+            }
+
+            Device (TPM)
+            {
+                Name (_HID, "MSFT0101" /* TPM 2.0 Security Device */)  // _HID: Hardware ID
+                Name (_STA, 0x0F)  // _STA: Status
+                Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+                {
+                    Memory32Fixed (ReadWrite,
+                        0xFED40000,         // Address Base
+                        0x00005000,         // Address Length
+                        )
+                })
+                OperationRegion (TPP2, SystemMemory, 0xFED45100, 0x5A)
+                Field (TPP2, AnyAcc, NoLock, Preserve)
+                {
+                    PPIN,   8, 
+                    PPIP,   32, 
+                    PPRP,   32, 
+                    PPRQ,   32, 
+                    PPRM,   32, 
+                    LPPR,   32
+                }
+
+                OperationRegion (TPP3, SystemMemory, 0xFED4515A, One)
+                Field (TPP3, ByteAcc, NoLock, Preserve)
+                {
+                    MOVV,   8
+                }
+
+                Method (TPFN, 1, Serialized)
+                {
+                    If ((Arg0 >= 0x0100))
+                    {
+                        Return (Zero)
+                    }
+
+                    OperationRegion (TPP1, SystemMemory, (0xFED45000 + Arg0), One)
+                    Field (TPP1, ByteAcc, NoLock, Preserve)
+                    {
+                        TPPF,   8
+                    }
+
+                    Return (TPPF) /* \_SB_.PCI0.TPM_.TPFN.TPPF */
+                }
+
+                Name (TPM2, Package (0x02)
+                {
+                    Zero, 
+                    Zero
+                })
+                Name (TPM3, Package (0x03)
+                {
+                    Zero, 
+                    Zero, 
+                    Zero
+                })
+                Method (_DSM, 4, Serialized)  // _DSM: Device-Specific Method
+                {
+                    If ((Arg0 == ToUUID ("3dddfaa6-361b-4eb4-a424-8d10089d1653") /* Physical Presence Interface */))
+                    {
+                        If ((Arg2 == Zero))
+                        {
+                            Return (Buffer (0x02)
+                            {
+                                 0xFF, 0x01                                       // ..
+                            })
+                        }
+
+                        If ((Arg2 == One))
+                        {
+                            Return ("1.3")
+                        }
+
+                        If ((Arg2 == 0x02))
+                        {
+                            Local0 = DerefOf (Arg3 [Zero])
+                            Local1 = TPFN (Local0)
+                            If (((Local1 & 0x07) == Zero))
+                            {
+                                Return (One)
+                            }
+
+                            PPRQ = Local0
+                            PPRM = Zero
+                            Return (Zero)
+                        }
+
+                        If ((Arg2 == 0x03))
+                        {
+                            If ((Arg1 == One))
+                            {
+                                TPM2 [One] = PPRQ /* \_SB_.PCI0.TPM_.PPRQ */
+                                Return (TPM2) /* \_SB_.PCI0.TPM_.TPM2 */
+                            }
+
+                            If ((Arg1 == 0x02))
+                            {
+                                TPM3 [One] = PPRQ /* \_SB_.PCI0.TPM_.PPRQ */
+                                TPM3 [0x02] = PPRM /* \_SB_.PCI0.TPM_.PPRM */
+                                Return (TPM3) /* \_SB_.PCI0.TPM_.TPM3 */
+                            }
+                        }
+
+                        If ((Arg2 == 0x04))
+                        {
+                            Return (0x02)
+                        }
+
+                        If ((Arg2 == 0x05))
+                        {
+                            TPM3 [One] = LPPR /* \_SB_.PCI0.TPM_.LPPR */
+                            TPM3 [0x02] = PPRP /* \_SB_.PCI0.TPM_.PPRP */
+                            Return (TPM3) /* \_SB_.PCI0.TPM_.TPM3 */
+                        }
+
+                        If ((Arg2 == 0x06))
+                        {
+                            Return (0x03)
+                        }
+
+                        If ((Arg2 == 0x07))
+                        {
+                            Local0 = DerefOf (Arg3 [Zero])
+                            Local1 = TPFN (Local0)
+                            If (((Local1 & 0x07) == Zero))
+                            {
+                                Return (One)
+                            }
+
+                            If (((Local1 & 0x07) == 0x02))
+                            {
+                                Return (0x03)
+                            }
+
+                            If ((Arg1 == One))
+                            {
+                                PPRQ = Local0
+                                PPRM = Zero
+                            }
+
+                            If ((Arg1 == 0x02))
+                            {
+                                PPRQ = Local0
+                                PPRM = DerefOf (Arg3 [One])
+                            }
+
+                            Return (Zero)
+                        }
+
+                        If ((Arg2 == 0x08))
+                        {
+                            Local0 = DerefOf (Arg3 [Zero])
+                            Local1 = TPFN (Local0)
+                            Return ((Local1 & 0x07))
+                        }
+
+                        Return (Buffer (One)
+                        {
+                             0x00                                             // .
+                        })
+                    }
+
+                    If ((Arg0 == ToUUID ("376054ed-cc13-4675-901c-4756d7f2d45d")))
+                    {
+                        If ((Arg2 == Zero))
+                        {
+                            Return (Buffer (One)
+                            {
+                                 0x03                                             // .
+                            })
+                        }
+
+                        If ((Arg2 == One))
+                        {
+                            Local0 = DerefOf (Arg3 [Zero])
+                            MOVV = Local0
+                            Return (Zero)
+                        }
+                    }
+                }
+            }
+        }
+    }
+}
+
diff --git a/tests/data/acpi/q35/FACP.acpihmat b/tests/data/acpi/q35/FACP.acpihmat
new file mode 100644
index 0000000000000000000000000000000000000000..72c9d97902a4bbf14896023d9ba78e0899d6517b
GIT binary patch
literal 244
zcmZ>BbPo8!z`(#P@8s|75v<@85#a0w6k`O6f!H7#1{fJQ88!hqOw2%n4I;_{r9nIn
zAX@<@&cwhX02KSr|DPYCl7Ybp$XMFKz`)4C!0?j?A_|v;DFV`r3P1wMTp$k&7=Z>N
X+XoXzrWq9=?f{7~HXz&s;==#{<X{c~

literal 0
HcmV?d00001

diff --git a/tests/data/acpi/q35/FACP.acpihmat.dsl b/tests/data/acpi/q35/FACP.acpihmat.dsl
new file mode 100644
index 0000000000..29466227a1
--- /dev/null
+++ b/tests/data/acpi/q35/FACP.acpihmat.dsl
@@ -0,0 +1,179 @@ 
+/*
+ * Intel ACPI Component Architecture
+ * AML/ASL+ Disassembler version 20190509 (64-bit version)
+ * Copyright (c) 2000 - 2019 Intel Corporation
+ * 
+ * Disassembly of tests/data/acpi/q35/FACP.acpihmat, Tue Aug  4 11:14:15 2020
+ *
+ * ACPI Data Table [FACP]
+ *
+ * Format: [HexOffset DecimalOffset ByteLength]  FieldName : FieldValue
+ */
+
+[000h 0000   4]                    Signature : "FACP"    [Fixed ACPI Description Table (FADT)]
+[004h 0004   4]                 Table Length : 000000F4
+[008h 0008   1]                     Revision : 03
+[009h 0009   1]                     Checksum : 1F
+[00Ah 0010   6]                       Oem ID : "BOCHS "
+[010h 0016   8]                 Oem Table ID : "BXPCFACP"
+[018h 0024   4]                 Oem Revision : 00000001
+[01Ch 0028   4]              Asl Compiler ID : "BXPC"
+[020h 0032   4]        Asl Compiler Revision : 00000001
+
+[024h 0036   4]                 FACS Address : 00000000
+[028h 0040   4]                 DSDT Address : 00000000
+[02Ch 0044   1]                        Model : 01
+[02Dh 0045   1]                   PM Profile : 00 [Unspecified]
+[02Eh 0046   2]                SCI Interrupt : 0009
+[030h 0048   4]             SMI Command Port : 000000B2
+[034h 0052   1]            ACPI Enable Value : 02
+[035h 0053   1]           ACPI Disable Value : 03
+[036h 0054   1]               S4BIOS Command : 00
+[037h 0055   1]              P-State Control : 00
+[038h 0056   4]     PM1A Event Block Address : 00000600
+[03Ch 0060   4]     PM1B Event Block Address : 00000000
+[040h 0064   4]   PM1A Control Block Address : 00000604
+[044h 0068   4]   PM1B Control Block Address : 00000000
+[048h 0072   4]    PM2 Control Block Address : 00000000
+[04Ch 0076   4]       PM Timer Block Address : 00000608
+[050h 0080   4]           GPE0 Block Address : 00000620
+[054h 0084   4]           GPE1 Block Address : 00000000
+[058h 0088   1]       PM1 Event Block Length : 04
+[059h 0089   1]     PM1 Control Block Length : 02
+[05Ah 0090   1]     PM2 Control Block Length : 00
+[05Bh 0091   1]        PM Timer Block Length : 04
+[05Ch 0092   1]            GPE0 Block Length : 10
+[05Dh 0093   1]            GPE1 Block Length : 00
+[05Eh 0094   1]             GPE1 Base Offset : 00
+[05Fh 0095   1]                 _CST Support : 00
+[060h 0096   2]                   C2 Latency : 0FFF
+[062h 0098   2]                   C3 Latency : 0FFF
+[064h 0100   2]               CPU Cache Size : 0000
+[066h 0102   2]           Cache Flush Stride : 0000
+[068h 0104   1]            Duty Cycle Offset : 00
+[069h 0105   1]             Duty Cycle Width : 00
+[06Ah 0106   1]          RTC Day Alarm Index : 00
+[06Bh 0107   1]        RTC Month Alarm Index : 00
+[06Ch 0108   1]            RTC Century Index : 32
+[06Dh 0109   2]   Boot Flags (decoded below) : 0000
+               Legacy Devices Supported (V2) : 0
+            8042 Present on ports 60/64 (V2) : 0
+                        VGA Not Present (V4) : 0
+                      MSI Not Supported (V4) : 0
+                PCIe ASPM Not Supported (V4) : 0
+                   CMOS RTC Not Present (V5) : 0
+[06Fh 0111   1]                     Reserved : 00
+[070h 0112   4]        Flags (decoded below) : 000084A5
+      WBINVD instruction is operational (V1) : 1
+              WBINVD flushes all caches (V1) : 0
+                    All CPUs support C1 (V1) : 1
+                  C2 works on MP system (V1) : 0
+            Control Method Power Button (V1) : 0
+            Control Method Sleep Button (V1) : 1
+        RTC wake not in fixed reg space (V1) : 0
+            RTC can wake system from S4 (V1) : 1
+                        32-bit PM Timer (V1) : 0
+                      Docking Supported (V1) : 0
+               Reset Register Supported (V2) : 1
+                            Sealed Case (V3) : 0
+                    Headless - No Video (V3) : 0
+        Use native instr after SLP_TYPx (V3) : 0
+              PCIEXP_WAK Bits Supported (V4) : 0
+                     Use Platform Timer (V4) : 1
+               RTC_STS valid on S4 wake (V4) : 0
+                Remote Power-on capable (V4) : 0
+                 Use APIC Cluster Model (V4) : 0
+     Use APIC Physical Destination Mode (V4) : 0
+                       Hardware Reduced (V5) : 0
+                      Low Power S0 Idle (V5) : 0
+
+[074h 0116  12]               Reset Register : [Generic Address Structure]
+[074h 0116   1]                     Space ID : 01 [SystemIO]
+[075h 0117   1]                    Bit Width : 08
+[076h 0118   1]                   Bit Offset : 00
+[077h 0119   1]         Encoded Access Width : 00 [Undefined/Legacy]
+[078h 0120   8]                      Address : 0000000000000CF9
+
+[080h 0128   1]         Value to cause reset : 0F
+[081h 0129   2]    ARM Flags (decoded below) : 0000
+                              PSCI Compliant : 0
+                       Must use HVC for PSCI : 0
+
+[083h 0131   1]          FADT Minor Revision : 00
+[084h 0132   8]                 FACS Address : 0000000000000000
+[08Ch 0140   8]                 DSDT Address : 0000000000000000
+[094h 0148  12]             PM1A Event Block : [Generic Address Structure]
+[094h 0148   1]                     Space ID : 01 [SystemIO]
+[095h 0149   1]                    Bit Width : 20
+[096h 0150   1]                   Bit Offset : 00
+[097h 0151   1]         Encoded Access Width : 00 [Undefined/Legacy]
+[098h 0152   8]                      Address : 0000000000000600
+
+[0A0h 0160  12]             PM1B Event Block : [Generic Address Structure]
+[0A0h 0160   1]                     Space ID : 00 [SystemMemory]
+[0A1h 0161   1]                    Bit Width : 00
+[0A2h 0162   1]                   Bit Offset : 00
+[0A3h 0163   1]         Encoded Access Width : 00 [Undefined/Legacy]
+[0A4h 0164   8]                      Address : 0000000000000000
+
+[0ACh 0172  12]           PM1A Control Block : [Generic Address Structure]
+[0ACh 0172   1]                     Space ID : 01 [SystemIO]
+[0ADh 0173   1]                    Bit Width : 10
+[0AEh 0174   1]                   Bit Offset : 00
+[0AFh 0175   1]         Encoded Access Width : 00 [Undefined/Legacy]
+[0B0h 0176   8]                      Address : 0000000000000604
+
+[0B8h 0184  12]           PM1B Control Block : [Generic Address Structure]
+[0B8h 0184   1]                     Space ID : 00 [SystemMemory]
+[0B9h 0185   1]                    Bit Width : 00
+[0BAh 0186   1]                   Bit Offset : 00
+[0BBh 0187   1]         Encoded Access Width : 00 [Undefined/Legacy]
+[0BCh 0188   8]                      Address : 0000000000000000
+
+[0C4h 0196  12]            PM2 Control Block : [Generic Address Structure]
+[0C4h 0196   1]                     Space ID : 00 [SystemMemory]
+[0C5h 0197   1]                    Bit Width : 00
+[0C6h 0198   1]                   Bit Offset : 00
+[0C7h 0199   1]         Encoded Access Width : 00 [Undefined/Legacy]
+[0C8h 0200   8]                      Address : 0000000000000000
+
+[0D0h 0208  12]               PM Timer Block : [Generic Address Structure]
+[0D0h 0208   1]                     Space ID : 01 [SystemIO]
+[0D1h 0209   1]                    Bit Width : 20
+[0D2h 0210   1]                   Bit Offset : 00
+[0D3h 0211   1]         Encoded Access Width : 00 [Undefined/Legacy]
+[0D4h 0212   8]                      Address : 0000000000000608
+
+[0DCh 0220  12]                   GPE0 Block : [Generic Address Structure]
+[0DCh 0220   1]                     Space ID : 01 [SystemIO]
+[0DDh 0221   1]                    Bit Width : 80
+[0DEh 0222   1]                   Bit Offset : 00
+[0DFh 0223   1]         Encoded Access Width : 00 [Undefined/Legacy]
+[0E0h 0224   8]                      Address : 0000000000000620
+
+[0E8h 0232  12]                   GPE1 Block : [Generic Address Structure]
+[0E8h 0232   1]                     Space ID : 00 [SystemMemory]
+[0E9h 0233   1]                    Bit Width : 00
+[0EAh 0234   1]                   Bit Offset : 00
+[0EBh 0235   1]         Encoded Access Width : 00 [Undefined/Legacy]
+[0ECh 0236   8]                      Address : 0000000000000000
+
+
+Raw Table Data: Length 244 (0xF4)
+
+    0000: 46 41 43 50 F4 00 00 00 03 1F 42 4F 43 48 53 20  // FACP......BOCHS 
+    0010: 42 58 50 43 46 41 43 50 01 00 00 00 42 58 50 43  // BXPCFACP....BXPC
+    0020: 01 00 00 00 00 00 00 00 00 00 00 00 01 00 09 00  // ................
+    0030: B2 00 00 00 02 03 00 00 00 06 00 00 00 00 00 00  // ................
+    0040: 04 06 00 00 00 00 00 00 00 00 00 00 08 06 00 00  // ................
+    0050: 20 06 00 00 00 00 00 00 04 02 00 04 10 00 00 00  //  ...............
+    0060: FF 0F FF 0F 00 00 00 00 00 00 00 00 32 00 00 00  // ............2...
+    0070: A5 84 00 00 01 08 00 00 F9 0C 00 00 00 00 00 00  // ................
+    0080: 0F 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  // ................
+    0090: 00 00 00 00 01 20 00 00 00 06 00 00 00 00 00 00  // ..... ..........
+    00A0: 00 00 00 00 00 00 00 00 00 00 00 00 01 10 00 00  // ................
+    00B0: 04 06 00 00 00 00 00 00 00 00 00 00 00 00 00 00  // ................
+    00C0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  // ................
+    00D0: 01 20 00 00 08 06 00 00 00 00 00 00 01 80 00 00  // . ..............
+    00E0: 20 06 00 00 00 00 00 00 00 00 00 00 00 00 00 00  //  ...............
+    00F0: 00 00 00 00                                      // ....
diff --git a/tests/data/acpi/q35/FACP.bridge b/tests/data/acpi/q35/FACP.bridge
new file mode 100644
index 0000000000000000000000000000000000000000..72c9d97902a4bbf14896023d9ba78e0899d6517b
GIT binary patch
literal 244
zcmZ>BbPo8!z`(#P@8s|75v<@85#a0w6k`O6f!H7#1{fJQ88!hqOw2%n4I;_{r9nIn
zAX@<@&cwhX02KSr|DPYCl7Ybp$XMFKz`)4C!0?j?A_|v;DFV`r3P1wMTp$k&7=Z>N
X+XoXzrWq9=?f{7~HXz&s;==#{<X{c~

literal 0
HcmV?d00001

diff --git a/tests/data/acpi/q35/FACP.bridge.dsl b/tests/data/acpi/q35/FACP.bridge.dsl
new file mode 100644
index 0000000000..2416f4391a
--- /dev/null
+++ b/tests/data/acpi/q35/FACP.bridge.dsl
@@ -0,0 +1,179 @@ 
+/*
+ * Intel ACPI Component Architecture
+ * AML/ASL+ Disassembler version 20190509 (64-bit version)
+ * Copyright (c) 2000 - 2019 Intel Corporation
+ * 
+ * Disassembly of tests/data/acpi/q35/FACP.bridge, Tue Aug  4 11:14:15 2020
+ *
+ * ACPI Data Table [FACP]
+ *
+ * Format: [HexOffset DecimalOffset ByteLength]  FieldName : FieldValue
+ */
+
+[000h 0000   4]                    Signature : "FACP"    [Fixed ACPI Description Table (FADT)]
+[004h 0004   4]                 Table Length : 000000F4
+[008h 0008   1]                     Revision : 03
+[009h 0009   1]                     Checksum : 1F
+[00Ah 0010   6]                       Oem ID : "BOCHS "
+[010h 0016   8]                 Oem Table ID : "BXPCFACP"
+[018h 0024   4]                 Oem Revision : 00000001
+[01Ch 0028   4]              Asl Compiler ID : "BXPC"
+[020h 0032   4]        Asl Compiler Revision : 00000001
+
+[024h 0036   4]                 FACS Address : 00000000
+[028h 0040   4]                 DSDT Address : 00000000
+[02Ch 0044   1]                        Model : 01
+[02Dh 0045   1]                   PM Profile : 00 [Unspecified]
+[02Eh 0046   2]                SCI Interrupt : 0009
+[030h 0048   4]             SMI Command Port : 000000B2
+[034h 0052   1]            ACPI Enable Value : 02
+[035h 0053   1]           ACPI Disable Value : 03
+[036h 0054   1]               S4BIOS Command : 00
+[037h 0055   1]              P-State Control : 00
+[038h 0056   4]     PM1A Event Block Address : 00000600
+[03Ch 0060   4]     PM1B Event Block Address : 00000000
+[040h 0064   4]   PM1A Control Block Address : 00000604
+[044h 0068   4]   PM1B Control Block Address : 00000000
+[048h 0072   4]    PM2 Control Block Address : 00000000
+[04Ch 0076   4]       PM Timer Block Address : 00000608
+[050h 0080   4]           GPE0 Block Address : 00000620
+[054h 0084   4]           GPE1 Block Address : 00000000
+[058h 0088   1]       PM1 Event Block Length : 04
+[059h 0089   1]     PM1 Control Block Length : 02
+[05Ah 0090   1]     PM2 Control Block Length : 00
+[05Bh 0091   1]        PM Timer Block Length : 04
+[05Ch 0092   1]            GPE0 Block Length : 10
+[05Dh 0093   1]            GPE1 Block Length : 00
+[05Eh 0094   1]             GPE1 Base Offset : 00
+[05Fh 0095   1]                 _CST Support : 00
+[060h 0096   2]                   C2 Latency : 0FFF
+[062h 0098   2]                   C3 Latency : 0FFF
+[064h 0100   2]               CPU Cache Size : 0000
+[066h 0102   2]           Cache Flush Stride : 0000
+[068h 0104   1]            Duty Cycle Offset : 00
+[069h 0105   1]             Duty Cycle Width : 00
+[06Ah 0106   1]          RTC Day Alarm Index : 00
+[06Bh 0107   1]        RTC Month Alarm Index : 00
+[06Ch 0108   1]            RTC Century Index : 32
+[06Dh 0109   2]   Boot Flags (decoded below) : 0000
+               Legacy Devices Supported (V2) : 0
+            8042 Present on ports 60/64 (V2) : 0
+                        VGA Not Present (V4) : 0
+                      MSI Not Supported (V4) : 0
+                PCIe ASPM Not Supported (V4) : 0
+                   CMOS RTC Not Present (V5) : 0
+[06Fh 0111   1]                     Reserved : 00
+[070h 0112   4]        Flags (decoded below) : 000084A5
+      WBINVD instruction is operational (V1) : 1
+              WBINVD flushes all caches (V1) : 0
+                    All CPUs support C1 (V1) : 1
+                  C2 works on MP system (V1) : 0
+            Control Method Power Button (V1) : 0
+            Control Method Sleep Button (V1) : 1
+        RTC wake not in fixed reg space (V1) : 0
+            RTC can wake system from S4 (V1) : 1
+                        32-bit PM Timer (V1) : 0
+                      Docking Supported (V1) : 0
+               Reset Register Supported (V2) : 1
+                            Sealed Case (V3) : 0
+                    Headless - No Video (V3) : 0
+        Use native instr after SLP_TYPx (V3) : 0
+              PCIEXP_WAK Bits Supported (V4) : 0
+                     Use Platform Timer (V4) : 1
+               RTC_STS valid on S4 wake (V4) : 0
+                Remote Power-on capable (V4) : 0
+                 Use APIC Cluster Model (V4) : 0
+     Use APIC Physical Destination Mode (V4) : 0
+                       Hardware Reduced (V5) : 0
+                      Low Power S0 Idle (V5) : 0
+
+[074h 0116  12]               Reset Register : [Generic Address Structure]
+[074h 0116   1]                     Space ID : 01 [SystemIO]
+[075h 0117   1]                    Bit Width : 08
+[076h 0118   1]                   Bit Offset : 00
+[077h 0119   1]         Encoded Access Width : 00 [Undefined/Legacy]
+[078h 0120   8]                      Address : 0000000000000CF9
+
+[080h 0128   1]         Value to cause reset : 0F
+[081h 0129   2]    ARM Flags (decoded below) : 0000
+                              PSCI Compliant : 0
+                       Must use HVC for PSCI : 0
+
+[083h 0131   1]          FADT Minor Revision : 00
+[084h 0132   8]                 FACS Address : 0000000000000000
+[08Ch 0140   8]                 DSDT Address : 0000000000000000
+[094h 0148  12]             PM1A Event Block : [Generic Address Structure]
+[094h 0148   1]                     Space ID : 01 [SystemIO]
+[095h 0149   1]                    Bit Width : 20
+[096h 0150   1]                   Bit Offset : 00
+[097h 0151   1]         Encoded Access Width : 00 [Undefined/Legacy]
+[098h 0152   8]                      Address : 0000000000000600
+
+[0A0h 0160  12]             PM1B Event Block : [Generic Address Structure]
+[0A0h 0160   1]                     Space ID : 00 [SystemMemory]
+[0A1h 0161   1]                    Bit Width : 00
+[0A2h 0162   1]                   Bit Offset : 00
+[0A3h 0163   1]         Encoded Access Width : 00 [Undefined/Legacy]
+[0A4h 0164   8]                      Address : 0000000000000000
+
+[0ACh 0172  12]           PM1A Control Block : [Generic Address Structure]
+[0ACh 0172   1]                     Space ID : 01 [SystemIO]
+[0ADh 0173   1]                    Bit Width : 10
+[0AEh 0174   1]                   Bit Offset : 00
+[0AFh 0175   1]         Encoded Access Width : 00 [Undefined/Legacy]
+[0B0h 0176   8]                      Address : 0000000000000604
+
+[0B8h 0184  12]           PM1B Control Block : [Generic Address Structure]
+[0B8h 0184   1]                     Space ID : 00 [SystemMemory]
+[0B9h 0185   1]                    Bit Width : 00
+[0BAh 0186   1]                   Bit Offset : 00
+[0BBh 0187   1]         Encoded Access Width : 00 [Undefined/Legacy]
+[0BCh 0188   8]                      Address : 0000000000000000
+
+[0C4h 0196  12]            PM2 Control Block : [Generic Address Structure]
+[0C4h 0196   1]                     Space ID : 00 [SystemMemory]
+[0C5h 0197   1]                    Bit Width : 00
+[0C6h 0198   1]                   Bit Offset : 00
+[0C7h 0199   1]         Encoded Access Width : 00 [Undefined/Legacy]
+[0C8h 0200   8]                      Address : 0000000000000000
+
+[0D0h 0208  12]               PM Timer Block : [Generic Address Structure]
+[0D0h 0208   1]                     Space ID : 01 [SystemIO]
+[0D1h 0209   1]                    Bit Width : 20
+[0D2h 0210   1]                   Bit Offset : 00
+[0D3h 0211   1]         Encoded Access Width : 00 [Undefined/Legacy]
+[0D4h 0212   8]                      Address : 0000000000000608
+
+[0DCh 0220  12]                   GPE0 Block : [Generic Address Structure]
+[0DCh 0220   1]                     Space ID : 01 [SystemIO]
+[0DDh 0221   1]                    Bit Width : 80
+[0DEh 0222   1]                   Bit Offset : 00
+[0DFh 0223   1]         Encoded Access Width : 00 [Undefined/Legacy]
+[0E0h 0224   8]                      Address : 0000000000000620
+
+[0E8h 0232  12]                   GPE1 Block : [Generic Address Structure]
+[0E8h 0232   1]                     Space ID : 00 [SystemMemory]
+[0E9h 0233   1]                    Bit Width : 00
+[0EAh 0234   1]                   Bit Offset : 00
+[0EBh 0235   1]         Encoded Access Width : 00 [Undefined/Legacy]
+[0ECh 0236   8]                      Address : 0000000000000000
+
+
+Raw Table Data: Length 244 (0xF4)
+
+    0000: 46 41 43 50 F4 00 00 00 03 1F 42 4F 43 48 53 20  // FACP......BOCHS 
+    0010: 42 58 50 43 46 41 43 50 01 00 00 00 42 58 50 43  // BXPCFACP....BXPC
+    0020: 01 00 00 00 00 00 00 00 00 00 00 00 01 00 09 00  // ................
+    0030: B2 00 00 00 02 03 00 00 00 06 00 00 00 00 00 00  // ................
+    0040: 04 06 00 00 00 00 00 00 00 00 00 00 08 06 00 00  // ................
+    0050: 20 06 00 00 00 00 00 00 04 02 00 04 10 00 00 00  //  ...............
+    0060: FF 0F FF 0F 00 00 00 00 00 00 00 00 32 00 00 00  // ............2...
+    0070: A5 84 00 00 01 08 00 00 F9 0C 00 00 00 00 00 00  // ................
+    0080: 0F 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  // ................
+    0090: 00 00 00 00 01 20 00 00 00 06 00 00 00 00 00 00  // ..... ..........
+    00A0: 00 00 00 00 00 00 00 00 00 00 00 00 01 10 00 00  // ................
+    00B0: 04 06 00 00 00 00 00 00 00 00 00 00 00 00 00 00  // ................
+    00C0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  // ................
+    00D0: 01 20 00 00 08 06 00 00 00 00 00 00 01 80 00 00  // . ..............
+    00E0: 20 06 00 00 00 00 00 00 00 00 00 00 00 00 00 00  //  ...............
+    00F0: 00 00 00 00                                      // ....
diff --git a/tests/data/acpi/q35/FACP.cphp b/tests/data/acpi/q35/FACP.cphp
new file mode 100644
index 0000000000000000000000000000000000000000..72c9d97902a4bbf14896023d9ba78e0899d6517b
GIT binary patch
literal 244
zcmZ>BbPo8!z`(#P@8s|75v<@85#a0w6k`O6f!H7#1{fJQ88!hqOw2%n4I;_{r9nIn
zAX@<@&cwhX02KSr|DPYCl7Ybp$XMFKz`)4C!0?j?A_|v;DFV`r3P1wMTp$k&7=Z>N
X+XoXzrWq9=?f{7~HXz&s;==#{<X{c~

literal 0
HcmV?d00001

diff --git a/tests/data/acpi/q35/FACP.cphp.dsl b/tests/data/acpi/q35/FACP.cphp.dsl
new file mode 100644
index 0000000000..96ee322b53
--- /dev/null
+++ b/tests/data/acpi/q35/FACP.cphp.dsl
@@ -0,0 +1,179 @@ 
+/*
+ * Intel ACPI Component Architecture
+ * AML/ASL+ Disassembler version 20190509 (64-bit version)
+ * Copyright (c) 2000 - 2019 Intel Corporation
+ * 
+ * Disassembly of tests/data/acpi/q35/FACP.cphp, Tue Aug  4 11:14:15 2020
+ *
+ * ACPI Data Table [FACP]
+ *
+ * Format: [HexOffset DecimalOffset ByteLength]  FieldName : FieldValue
+ */
+
+[000h 0000   4]                    Signature : "FACP"    [Fixed ACPI Description Table (FADT)]
+[004h 0004   4]                 Table Length : 000000F4
+[008h 0008   1]                     Revision : 03
+[009h 0009   1]                     Checksum : 1F
+[00Ah 0010   6]                       Oem ID : "BOCHS "
+[010h 0016   8]                 Oem Table ID : "BXPCFACP"
+[018h 0024   4]                 Oem Revision : 00000001
+[01Ch 0028   4]              Asl Compiler ID : "BXPC"
+[020h 0032   4]        Asl Compiler Revision : 00000001
+
+[024h 0036   4]                 FACS Address : 00000000
+[028h 0040   4]                 DSDT Address : 00000000
+[02Ch 0044   1]                        Model : 01
+[02Dh 0045   1]                   PM Profile : 00 [Unspecified]
+[02Eh 0046   2]                SCI Interrupt : 0009
+[030h 0048   4]             SMI Command Port : 000000B2
+[034h 0052   1]            ACPI Enable Value : 02
+[035h 0053   1]           ACPI Disable Value : 03
+[036h 0054   1]               S4BIOS Command : 00
+[037h 0055   1]              P-State Control : 00
+[038h 0056   4]     PM1A Event Block Address : 00000600
+[03Ch 0060   4]     PM1B Event Block Address : 00000000
+[040h 0064   4]   PM1A Control Block Address : 00000604
+[044h 0068   4]   PM1B Control Block Address : 00000000
+[048h 0072   4]    PM2 Control Block Address : 00000000
+[04Ch 0076   4]       PM Timer Block Address : 00000608
+[050h 0080   4]           GPE0 Block Address : 00000620
+[054h 0084   4]           GPE1 Block Address : 00000000
+[058h 0088   1]       PM1 Event Block Length : 04
+[059h 0089   1]     PM1 Control Block Length : 02
+[05Ah 0090   1]     PM2 Control Block Length : 00
+[05Bh 0091   1]        PM Timer Block Length : 04
+[05Ch 0092   1]            GPE0 Block Length : 10
+[05Dh 0093   1]            GPE1 Block Length : 00
+[05Eh 0094   1]             GPE1 Base Offset : 00
+[05Fh 0095   1]                 _CST Support : 00
+[060h 0096   2]                   C2 Latency : 0FFF
+[062h 0098   2]                   C3 Latency : 0FFF
+[064h 0100   2]               CPU Cache Size : 0000
+[066h 0102   2]           Cache Flush Stride : 0000
+[068h 0104   1]            Duty Cycle Offset : 00
+[069h 0105   1]             Duty Cycle Width : 00
+[06Ah 0106   1]          RTC Day Alarm Index : 00
+[06Bh 0107   1]        RTC Month Alarm Index : 00
+[06Ch 0108   1]            RTC Century Index : 32
+[06Dh 0109   2]   Boot Flags (decoded below) : 0000
+               Legacy Devices Supported (V2) : 0
+            8042 Present on ports 60/64 (V2) : 0
+                        VGA Not Present (V4) : 0
+                      MSI Not Supported (V4) : 0
+                PCIe ASPM Not Supported (V4) : 0
+                   CMOS RTC Not Present (V5) : 0
+[06Fh 0111   1]                     Reserved : 00
+[070h 0112   4]        Flags (decoded below) : 000084A5
+      WBINVD instruction is operational (V1) : 1
+              WBINVD flushes all caches (V1) : 0
+                    All CPUs support C1 (V1) : 1
+                  C2 works on MP system (V1) : 0
+            Control Method Power Button (V1) : 0
+            Control Method Sleep Button (V1) : 1
+        RTC wake not in fixed reg space (V1) : 0
+            RTC can wake system from S4 (V1) : 1
+                        32-bit PM Timer (V1) : 0
+                      Docking Supported (V1) : 0
+               Reset Register Supported (V2) : 1
+                            Sealed Case (V3) : 0
+                    Headless - No Video (V3) : 0
+        Use native instr after SLP_TYPx (V3) : 0
+              PCIEXP_WAK Bits Supported (V4) : 0
+                     Use Platform Timer (V4) : 1
+               RTC_STS valid on S4 wake (V4) : 0
+                Remote Power-on capable (V4) : 0
+                 Use APIC Cluster Model (V4) : 0
+     Use APIC Physical Destination Mode (V4) : 0
+                       Hardware Reduced (V5) : 0
+                      Low Power S0 Idle (V5) : 0
+
+[074h 0116  12]               Reset Register : [Generic Address Structure]
+[074h 0116   1]                     Space ID : 01 [SystemIO]
+[075h 0117   1]                    Bit Width : 08
+[076h 0118   1]                   Bit Offset : 00
+[077h 0119   1]         Encoded Access Width : 00 [Undefined/Legacy]
+[078h 0120   8]                      Address : 0000000000000CF9
+
+[080h 0128   1]         Value to cause reset : 0F
+[081h 0129   2]    ARM Flags (decoded below) : 0000
+                              PSCI Compliant : 0
+                       Must use HVC for PSCI : 0
+
+[083h 0131   1]          FADT Minor Revision : 00
+[084h 0132   8]                 FACS Address : 0000000000000000
+[08Ch 0140   8]                 DSDT Address : 0000000000000000
+[094h 0148  12]             PM1A Event Block : [Generic Address Structure]
+[094h 0148   1]                     Space ID : 01 [SystemIO]
+[095h 0149   1]                    Bit Width : 20
+[096h 0150   1]                   Bit Offset : 00
+[097h 0151   1]         Encoded Access Width : 00 [Undefined/Legacy]
+[098h 0152   8]                      Address : 0000000000000600
+
+[0A0h 0160  12]             PM1B Event Block : [Generic Address Structure]
+[0A0h 0160   1]                     Space ID : 00 [SystemMemory]
+[0A1h 0161   1]                    Bit Width : 00
+[0A2h 0162   1]                   Bit Offset : 00
+[0A3h 0163   1]         Encoded Access Width : 00 [Undefined/Legacy]
+[0A4h 0164   8]                      Address : 0000000000000000
+
+[0ACh 0172  12]           PM1A Control Block : [Generic Address Structure]
+[0ACh 0172   1]                     Space ID : 01 [SystemIO]
+[0ADh 0173   1]                    Bit Width : 10
+[0AEh 0174   1]                   Bit Offset : 00
+[0AFh 0175   1]         Encoded Access Width : 00 [Undefined/Legacy]
+[0B0h 0176   8]                      Address : 0000000000000604
+
+[0B8h 0184  12]           PM1B Control Block : [Generic Address Structure]
+[0B8h 0184   1]                     Space ID : 00 [SystemMemory]
+[0B9h 0185   1]                    Bit Width : 00
+[0BAh 0186   1]                   Bit Offset : 00
+[0BBh 0187   1]         Encoded Access Width : 00 [Undefined/Legacy]
+[0BCh 0188   8]                      Address : 0000000000000000
+
+[0C4h 0196  12]            PM2 Control Block : [Generic Address Structure]
+[0C4h 0196   1]                     Space ID : 00 [SystemMemory]
+[0C5h 0197   1]                    Bit Width : 00
+[0C6h 0198   1]                   Bit Offset : 00
+[0C7h 0199   1]         Encoded Access Width : 00 [Undefined/Legacy]
+[0C8h 0200   8]                      Address : 0000000000000000
+
+[0D0h 0208  12]               PM Timer Block : [Generic Address Structure]
+[0D0h 0208   1]                     Space ID : 01 [SystemIO]
+[0D1h 0209   1]                    Bit Width : 20
+[0D2h 0210   1]                   Bit Offset : 00
+[0D3h 0211   1]         Encoded Access Width : 00 [Undefined/Legacy]
+[0D4h 0212   8]                      Address : 0000000000000608
+
+[0DCh 0220  12]                   GPE0 Block : [Generic Address Structure]
+[0DCh 0220   1]                     Space ID : 01 [SystemIO]
+[0DDh 0221   1]                    Bit Width : 80
+[0DEh 0222   1]                   Bit Offset : 00
+[0DFh 0223   1]         Encoded Access Width : 00 [Undefined/Legacy]
+[0E0h 0224   8]                      Address : 0000000000000620
+
+[0E8h 0232  12]                   GPE1 Block : [Generic Address Structure]
+[0E8h 0232   1]                     Space ID : 00 [SystemMemory]
+[0E9h 0233   1]                    Bit Width : 00
+[0EAh 0234   1]                   Bit Offset : 00
+[0EBh 0235   1]         Encoded Access Width : 00 [Undefined/Legacy]
+[0ECh 0236   8]                      Address : 0000000000000000
+
+
+Raw Table Data: Length 244 (0xF4)
+
+    0000: 46 41 43 50 F4 00 00 00 03 1F 42 4F 43 48 53 20  // FACP......BOCHS 
+    0010: 42 58 50 43 46 41 43 50 01 00 00 00 42 58 50 43  // BXPCFACP....BXPC
+    0020: 01 00 00 00 00 00 00 00 00 00 00 00 01 00 09 00  // ................
+    0030: B2 00 00 00 02 03 00 00 00 06 00 00 00 00 00 00  // ................
+    0040: 04 06 00 00 00 00 00 00 00 00 00 00 08 06 00 00  // ................
+    0050: 20 06 00 00 00 00 00 00 04 02 00 04 10 00 00 00  //  ...............
+    0060: FF 0F FF 0F 00 00 00 00 00 00 00 00 32 00 00 00  // ............2...
+    0070: A5 84 00 00 01 08 00 00 F9 0C 00 00 00 00 00 00  // ................
+    0080: 0F 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  // ................
+    0090: 00 00 00 00 01 20 00 00 00 06 00 00 00 00 00 00  // ..... ..........
+    00A0: 00 00 00 00 00 00 00 00 00 00 00 00 01 10 00 00  // ................
+    00B0: 04 06 00 00 00 00 00 00 00 00 00 00 00 00 00 00  // ................
+    00C0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  // ................
+    00D0: 01 20 00 00 08 06 00 00 00 00 00 00 01 80 00 00  // . ..............
+    00E0: 20 06 00 00 00 00 00 00 00 00 00 00 00 00 00 00  //  ...............
+    00F0: 00 00 00 00                                      // ....
diff --git a/tests/data/acpi/q35/FACP.dimmpxm b/tests/data/acpi/q35/FACP.dimmpxm
new file mode 100644
index 0000000000000000000000000000000000000000..72c9d97902a4bbf14896023d9ba78e0899d6517b
GIT binary patch
literal 244
zcmZ>BbPo8!z`(#P@8s|75v<@85#a0w6k`O6f!H7#1{fJQ88!hqOw2%n4I;_{r9nIn
zAX@<@&cwhX02KSr|DPYCl7Ybp$XMFKz`)4C!0?j?A_|v;DFV`r3P1wMTp$k&7=Z>N
X+XoXzrWq9=?f{7~HXz&s;==#{<X{c~

literal 0
HcmV?d00001

diff --git a/tests/data/acpi/q35/FACP.dimmpxm.dsl b/tests/data/acpi/q35/FACP.dimmpxm.dsl
new file mode 100644
index 0000000000..14f7c181b8
--- /dev/null
+++ b/tests/data/acpi/q35/FACP.dimmpxm.dsl
@@ -0,0 +1,179 @@ 
+/*
+ * Intel ACPI Component Architecture
+ * AML/ASL+ Disassembler version 20190509 (64-bit version)
+ * Copyright (c) 2000 - 2019 Intel Corporation
+ * 
+ * Disassembly of tests/data/acpi/q35/FACP.dimmpxm, Tue Aug  4 11:14:15 2020
+ *
+ * ACPI Data Table [FACP]
+ *
+ * Format: [HexOffset DecimalOffset ByteLength]  FieldName : FieldValue
+ */
+
+[000h 0000   4]                    Signature : "FACP"    [Fixed ACPI Description Table (FADT)]
+[004h 0004   4]                 Table Length : 000000F4
+[008h 0008   1]                     Revision : 03
+[009h 0009   1]                     Checksum : 1F
+[00Ah 0010   6]                       Oem ID : "BOCHS "
+[010h 0016   8]                 Oem Table ID : "BXPCFACP"
+[018h 0024   4]                 Oem Revision : 00000001
+[01Ch 0028   4]              Asl Compiler ID : "BXPC"
+[020h 0032   4]        Asl Compiler Revision : 00000001
+
+[024h 0036   4]                 FACS Address : 00000000
+[028h 0040   4]                 DSDT Address : 00000000
+[02Ch 0044   1]                        Model : 01
+[02Dh 0045   1]                   PM Profile : 00 [Unspecified]
+[02Eh 0046   2]                SCI Interrupt : 0009
+[030h 0048   4]             SMI Command Port : 000000B2
+[034h 0052   1]            ACPI Enable Value : 02
+[035h 0053   1]           ACPI Disable Value : 03
+[036h 0054   1]               S4BIOS Command : 00
+[037h 0055   1]              P-State Control : 00
+[038h 0056   4]     PM1A Event Block Address : 00000600
+[03Ch 0060   4]     PM1B Event Block Address : 00000000
+[040h 0064   4]   PM1A Control Block Address : 00000604
+[044h 0068   4]   PM1B Control Block Address : 00000000
+[048h 0072   4]    PM2 Control Block Address : 00000000
+[04Ch 0076   4]       PM Timer Block Address : 00000608
+[050h 0080   4]           GPE0 Block Address : 00000620
+[054h 0084   4]           GPE1 Block Address : 00000000
+[058h 0088   1]       PM1 Event Block Length : 04
+[059h 0089   1]     PM1 Control Block Length : 02
+[05Ah 0090   1]     PM2 Control Block Length : 00
+[05Bh 0091   1]        PM Timer Block Length : 04
+[05Ch 0092   1]            GPE0 Block Length : 10
+[05Dh 0093   1]            GPE1 Block Length : 00
+[05Eh 0094   1]             GPE1 Base Offset : 00
+[05Fh 0095   1]                 _CST Support : 00
+[060h 0096   2]                   C2 Latency : 0FFF
+[062h 0098   2]                   C3 Latency : 0FFF
+[064h 0100   2]               CPU Cache Size : 0000
+[066h 0102   2]           Cache Flush Stride : 0000
+[068h 0104   1]            Duty Cycle Offset : 00
+[069h 0105   1]             Duty Cycle Width : 00
+[06Ah 0106   1]          RTC Day Alarm Index : 00
+[06Bh 0107   1]        RTC Month Alarm Index : 00
+[06Ch 0108   1]            RTC Century Index : 32
+[06Dh 0109   2]   Boot Flags (decoded below) : 0000
+               Legacy Devices Supported (V2) : 0
+            8042 Present on ports 60/64 (V2) : 0
+                        VGA Not Present (V4) : 0
+                      MSI Not Supported (V4) : 0
+                PCIe ASPM Not Supported (V4) : 0
+                   CMOS RTC Not Present (V5) : 0
+[06Fh 0111   1]                     Reserved : 00
+[070h 0112   4]        Flags (decoded below) : 000084A5
+      WBINVD instruction is operational (V1) : 1
+              WBINVD flushes all caches (V1) : 0
+                    All CPUs support C1 (V1) : 1
+                  C2 works on MP system (V1) : 0
+            Control Method Power Button (V1) : 0
+            Control Method Sleep Button (V1) : 1
+        RTC wake not in fixed reg space (V1) : 0
+            RTC can wake system from S4 (V1) : 1
+                        32-bit PM Timer (V1) : 0
+                      Docking Supported (V1) : 0
+               Reset Register Supported (V2) : 1
+                            Sealed Case (V3) : 0
+                    Headless - No Video (V3) : 0
+        Use native instr after SLP_TYPx (V3) : 0
+              PCIEXP_WAK Bits Supported (V4) : 0
+                     Use Platform Timer (V4) : 1
+               RTC_STS valid on S4 wake (V4) : 0
+                Remote Power-on capable (V4) : 0
+                 Use APIC Cluster Model (V4) : 0
+     Use APIC Physical Destination Mode (V4) : 0
+                       Hardware Reduced (V5) : 0
+                      Low Power S0 Idle (V5) : 0
+
+[074h 0116  12]               Reset Register : [Generic Address Structure]
+[074h 0116   1]                     Space ID : 01 [SystemIO]
+[075h 0117   1]                    Bit Width : 08
+[076h 0118   1]                   Bit Offset : 00
+[077h 0119   1]         Encoded Access Width : 00 [Undefined/Legacy]
+[078h 0120   8]                      Address : 0000000000000CF9
+
+[080h 0128   1]         Value to cause reset : 0F
+[081h 0129   2]    ARM Flags (decoded below) : 0000
+                              PSCI Compliant : 0
+                       Must use HVC for PSCI : 0
+
+[083h 0131   1]          FADT Minor Revision : 00
+[084h 0132   8]                 FACS Address : 0000000000000000
+[08Ch 0140   8]                 DSDT Address : 0000000000000000
+[094h 0148  12]             PM1A Event Block : [Generic Address Structure]
+[094h 0148   1]                     Space ID : 01 [SystemIO]
+[095h 0149   1]                    Bit Width : 20
+[096h 0150   1]                   Bit Offset : 00
+[097h 0151   1]         Encoded Access Width : 00 [Undefined/Legacy]
+[098h 0152   8]                      Address : 0000000000000600
+
+[0A0h 0160  12]             PM1B Event Block : [Generic Address Structure]
+[0A0h 0160   1]                     Space ID : 00 [SystemMemory]
+[0A1h 0161   1]                    Bit Width : 00
+[0A2h 0162   1]                   Bit Offset : 00
+[0A3h 0163   1]         Encoded Access Width : 00 [Undefined/Legacy]
+[0A4h 0164   8]                      Address : 0000000000000000
+
+[0ACh 0172  12]           PM1A Control Block : [Generic Address Structure]
+[0ACh 0172   1]                     Space ID : 01 [SystemIO]
+[0ADh 0173   1]                    Bit Width : 10
+[0AEh 0174   1]                   Bit Offset : 00
+[0AFh 0175   1]         Encoded Access Width : 00 [Undefined/Legacy]
+[0B0h 0176   8]                      Address : 0000000000000604
+
+[0B8h 0184  12]           PM1B Control Block : [Generic Address Structure]
+[0B8h 0184   1]                     Space ID : 00 [SystemMemory]
+[0B9h 0185   1]                    Bit Width : 00
+[0BAh 0186   1]                   Bit Offset : 00
+[0BBh 0187   1]         Encoded Access Width : 00 [Undefined/Legacy]
+[0BCh 0188   8]                      Address : 0000000000000000
+
+[0C4h 0196  12]            PM2 Control Block : [Generic Address Structure]
+[0C4h 0196   1]                     Space ID : 00 [SystemMemory]
+[0C5h 0197   1]                    Bit Width : 00
+[0C6h 0198   1]                   Bit Offset : 00
+[0C7h 0199   1]         Encoded Access Width : 00 [Undefined/Legacy]
+[0C8h 0200   8]                      Address : 0000000000000000
+
+[0D0h 0208  12]               PM Timer Block : [Generic Address Structure]
+[0D0h 0208   1]                     Space ID : 01 [SystemIO]
+[0D1h 0209   1]                    Bit Width : 20
+[0D2h 0210   1]                   Bit Offset : 00
+[0D3h 0211   1]         Encoded Access Width : 00 [Undefined/Legacy]
+[0D4h 0212   8]                      Address : 0000000000000608
+
+[0DCh 0220  12]                   GPE0 Block : [Generic Address Structure]
+[0DCh 0220   1]                     Space ID : 01 [SystemIO]
+[0DDh 0221   1]                    Bit Width : 80
+[0DEh 0222   1]                   Bit Offset : 00
+[0DFh 0223   1]         Encoded Access Width : 00 [Undefined/Legacy]
+[0E0h 0224   8]                      Address : 0000000000000620
+
+[0E8h 0232  12]                   GPE1 Block : [Generic Address Structure]
+[0E8h 0232   1]                     Space ID : 00 [SystemMemory]
+[0E9h 0233   1]                    Bit Width : 00
+[0EAh 0234   1]                   Bit Offset : 00
+[0EBh 0235   1]         Encoded Access Width : 00 [Undefined/Legacy]
+[0ECh 0236   8]                      Address : 0000000000000000
+
+
+Raw Table Data: Length 244 (0xF4)
+
+    0000: 46 41 43 50 F4 00 00 00 03 1F 42 4F 43 48 53 20  // FACP......BOCHS 
+    0010: 42 58 50 43 46 41 43 50 01 00 00 00 42 58 50 43  // BXPCFACP....BXPC
+    0020: 01 00 00 00 00 00 00 00 00 00 00 00 01 00 09 00  // ................
+    0030: B2 00 00 00 02 03 00 00 00 06 00 00 00 00 00 00  // ................
+    0040: 04 06 00 00 00 00 00 00 00 00 00 00 08 06 00 00  // ................
+    0050: 20 06 00 00 00 00 00 00 04 02 00 04 10 00 00 00  //  ...............
+    0060: FF 0F FF 0F 00 00 00 00 00 00 00 00 32 00 00 00  // ............2...
+    0070: A5 84 00 00 01 08 00 00 F9 0C 00 00 00 00 00 00  // ................
+    0080: 0F 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  // ................
+    0090: 00 00 00 00 01 20 00 00 00 06 00 00 00 00 00 00  // ..... ..........
+    00A0: 00 00 00 00 00 00 00 00 00 00 00 00 01 10 00 00  // ................
+    00B0: 04 06 00 00 00 00 00 00 00 00 00 00 00 00 00 00  // ................
+    00C0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  // ................
+    00D0: 01 20 00 00 08 06 00 00 00 00 00 00 01 80 00 00  // . ..............
+    00E0: 20 06 00 00 00 00 00 00 00 00 00 00 00 00 00 00  //  ...............
+    00F0: 00 00 00 00                                      // ....
diff --git a/tests/data/acpi/q35/FACP.dsl b/tests/data/acpi/q35/FACP.dsl
new file mode 100644
index 0000000000..1a8893b320
--- /dev/null
+++ b/tests/data/acpi/q35/FACP.dsl
@@ -0,0 +1,179 @@ 
+/*
+ * Intel ACPI Component Architecture
+ * AML/ASL+ Disassembler version 20190509 (64-bit version)
+ * Copyright (c) 2000 - 2019 Intel Corporation
+ * 
+ * Disassembly of tests/data/acpi/q35/FACP.tis, Mon Sep 28 17:24:38 2020
+ *
+ * ACPI Data Table [FACP]
+ *
+ * Format: [HexOffset DecimalOffset ByteLength]  FieldName : FieldValue
+ */
+
+[000h 0000   4]                    Signature : "FACP"    [Fixed ACPI Description Table (FADT)]
+[004h 0004   4]                 Table Length : 000000F4
+[008h 0008   1]                     Revision : 03
+[009h 0009   1]                     Checksum : 1F
+[00Ah 0010   6]                       Oem ID : "BOCHS "
+[010h 0016   8]                 Oem Table ID : "BXPCFACP"
+[018h 0024   4]                 Oem Revision : 00000001
+[01Ch 0028   4]              Asl Compiler ID : "BXPC"
+[020h 0032   4]        Asl Compiler Revision : 00000001
+
+[024h 0036   4]                 FACS Address : 00000000
+[028h 0040   4]                 DSDT Address : 00000000
+[02Ch 0044   1]                        Model : 01
+[02Dh 0045   1]                   PM Profile : 00 [Unspecified]
+[02Eh 0046   2]                SCI Interrupt : 0009
+[030h 0048   4]             SMI Command Port : 000000B2
+[034h 0052   1]            ACPI Enable Value : 02
+[035h 0053   1]           ACPI Disable Value : 03
+[036h 0054   1]               S4BIOS Command : 00
+[037h 0055   1]              P-State Control : 00
+[038h 0056   4]     PM1A Event Block Address : 00000600
+[03Ch 0060   4]     PM1B Event Block Address : 00000000
+[040h 0064   4]   PM1A Control Block Address : 00000604
+[044h 0068   4]   PM1B Control Block Address : 00000000
+[048h 0072   4]    PM2 Control Block Address : 00000000
+[04Ch 0076   4]       PM Timer Block Address : 00000608
+[050h 0080   4]           GPE0 Block Address : 00000620
+[054h 0084   4]           GPE1 Block Address : 00000000
+[058h 0088   1]       PM1 Event Block Length : 04
+[059h 0089   1]     PM1 Control Block Length : 02
+[05Ah 0090   1]     PM2 Control Block Length : 00
+[05Bh 0091   1]        PM Timer Block Length : 04
+[05Ch 0092   1]            GPE0 Block Length : 10
+[05Dh 0093   1]            GPE1 Block Length : 00
+[05Eh 0094   1]             GPE1 Base Offset : 00
+[05Fh 0095   1]                 _CST Support : 00
+[060h 0096   2]                   C2 Latency : 0FFF
+[062h 0098   2]                   C3 Latency : 0FFF
+[064h 0100   2]               CPU Cache Size : 0000
+[066h 0102   2]           Cache Flush Stride : 0000
+[068h 0104   1]            Duty Cycle Offset : 00
+[069h 0105   1]             Duty Cycle Width : 00
+[06Ah 0106   1]          RTC Day Alarm Index : 00
+[06Bh 0107   1]        RTC Month Alarm Index : 00
+[06Ch 0108   1]            RTC Century Index : 32
+[06Dh 0109   2]   Boot Flags (decoded below) : 0000
+               Legacy Devices Supported (V2) : 0
+            8042 Present on ports 60/64 (V2) : 0
+                        VGA Not Present (V4) : 0
+                      MSI Not Supported (V4) : 0
+                PCIe ASPM Not Supported (V4) : 0
+                   CMOS RTC Not Present (V5) : 0
+[06Fh 0111   1]                     Reserved : 00
+[070h 0112   4]        Flags (decoded below) : 000084A5
+      WBINVD instruction is operational (V1) : 1
+              WBINVD flushes all caches (V1) : 0
+                    All CPUs support C1 (V1) : 1
+                  C2 works on MP system (V1) : 0
+            Control Method Power Button (V1) : 0
+            Control Method Sleep Button (V1) : 1
+        RTC wake not in fixed reg space (V1) : 0
+            RTC can wake system from S4 (V1) : 1
+                        32-bit PM Timer (V1) : 0
+                      Docking Supported (V1) : 0
+               Reset Register Supported (V2) : 1
+                            Sealed Case (V3) : 0
+                    Headless - No Video (V3) : 0
+        Use native instr after SLP_TYPx (V3) : 0
+              PCIEXP_WAK Bits Supported (V4) : 0
+                     Use Platform Timer (V4) : 1
+               RTC_STS valid on S4 wake (V4) : 0
+                Remote Power-on capable (V4) : 0
+                 Use APIC Cluster Model (V4) : 0
+     Use APIC Physical Destination Mode (V4) : 0
+                       Hardware Reduced (V5) : 0
+                      Low Power S0 Idle (V5) : 0
+
+[074h 0116  12]               Reset Register : [Generic Address Structure]
+[074h 0116   1]                     Space ID : 01 [SystemIO]
+[075h 0117   1]                    Bit Width : 08
+[076h 0118   1]                   Bit Offset : 00
+[077h 0119   1]         Encoded Access Width : 00 [Undefined/Legacy]
+[078h 0120   8]                      Address : 0000000000000CF9
+
+[080h 0128   1]         Value to cause reset : 0F
+[081h 0129   2]    ARM Flags (decoded below) : 0000
+                              PSCI Compliant : 0
+                       Must use HVC for PSCI : 0
+
+[083h 0131   1]          FADT Minor Revision : 00
+[084h 0132   8]                 FACS Address : 0000000000000000
+[08Ch 0140   8]                 DSDT Address : 0000000000000000
+[094h 0148  12]             PM1A Event Block : [Generic Address Structure]
+[094h 0148   1]                     Space ID : 01 [SystemIO]
+[095h 0149   1]                    Bit Width : 20
+[096h 0150   1]                   Bit Offset : 00
+[097h 0151   1]         Encoded Access Width : 00 [Undefined/Legacy]
+[098h 0152   8]                      Address : 0000000000000600
+
+[0A0h 0160  12]             PM1B Event Block : [Generic Address Structure]
+[0A0h 0160   1]                     Space ID : 00 [SystemMemory]
+[0A1h 0161   1]                    Bit Width : 00
+[0A2h 0162   1]                   Bit Offset : 00
+[0A3h 0163   1]         Encoded Access Width : 00 [Undefined/Legacy]
+[0A4h 0164   8]                      Address : 0000000000000000
+
+[0ACh 0172  12]           PM1A Control Block : [Generic Address Structure]
+[0ACh 0172   1]                     Space ID : 01 [SystemIO]
+[0ADh 0173   1]                    Bit Width : 10
+[0AEh 0174   1]                   Bit Offset : 00
+[0AFh 0175   1]         Encoded Access Width : 00 [Undefined/Legacy]
+[0B0h 0176   8]                      Address : 0000000000000604
+
+[0B8h 0184  12]           PM1B Control Block : [Generic Address Structure]
+[0B8h 0184   1]                     Space ID : 00 [SystemMemory]
+[0B9h 0185   1]                    Bit Width : 00
+[0BAh 0186   1]                   Bit Offset : 00
+[0BBh 0187   1]         Encoded Access Width : 00 [Undefined/Legacy]
+[0BCh 0188   8]                      Address : 0000000000000000
+
+[0C4h 0196  12]            PM2 Control Block : [Generic Address Structure]
+[0C4h 0196   1]                     Space ID : 00 [SystemMemory]
+[0C5h 0197   1]                    Bit Width : 00
+[0C6h 0198   1]                   Bit Offset : 00
+[0C7h 0199   1]         Encoded Access Width : 00 [Undefined/Legacy]
+[0C8h 0200   8]                      Address : 0000000000000000
+
+[0D0h 0208  12]               PM Timer Block : [Generic Address Structure]
+[0D0h 0208   1]                     Space ID : 01 [SystemIO]
+[0D1h 0209   1]                    Bit Width : 20
+[0D2h 0210   1]                   Bit Offset : 00
+[0D3h 0211   1]         Encoded Access Width : 00 [Undefined/Legacy]
+[0D4h 0212   8]                      Address : 0000000000000608
+
+[0DCh 0220  12]                   GPE0 Block : [Generic Address Structure]
+[0DCh 0220   1]                     Space ID : 01 [SystemIO]
+[0DDh 0221   1]                    Bit Width : 80
+[0DEh 0222   1]                   Bit Offset : 00
+[0DFh 0223   1]         Encoded Access Width : 00 [Undefined/Legacy]
+[0E0h 0224   8]                      Address : 0000000000000620
+
+[0E8h 0232  12]                   GPE1 Block : [Generic Address Structure]
+[0E8h 0232   1]                     Space ID : 00 [SystemMemory]
+[0E9h 0233   1]                    Bit Width : 00
+[0EAh 0234   1]                   Bit Offset : 00
+[0EBh 0235   1]         Encoded Access Width : 00 [Undefined/Legacy]
+[0ECh 0236   8]                      Address : 0000000000000000
+
+
+Raw Table Data: Length 244 (0xF4)
+
+    0000: 46 41 43 50 F4 00 00 00 03 1F 42 4F 43 48 53 20  // FACP......BOCHS 
+    0010: 42 58 50 43 46 41 43 50 01 00 00 00 42 58 50 43  // BXPCFACP....BXPC
+    0020: 01 00 00 00 00 00 00 00 00 00 00 00 01 00 09 00  // ................
+    0030: B2 00 00 00 02 03 00 00 00 06 00 00 00 00 00 00  // ................
+    0040: 04 06 00 00 00 00 00 00 00 00 00 00 08 06 00 00  // ................
+    0050: 20 06 00 00 00 00 00 00 04 02 00 04 10 00 00 00  //  ...............
+    0060: FF 0F FF 0F 00 00 00 00 00 00 00 00 32 00 00 00  // ............2...
+    0070: A5 84 00 00 01 08 00 00 F9 0C 00 00 00 00 00 00  // ................
+    0080: 0F 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  // ................
+    0090: 00 00 00 00 01 20 00 00 00 06 00 00 00 00 00 00  // ..... ..........
+    00A0: 00 00 00 00 00 00 00 00 00 00 00 00 01 10 00 00  // ................
+    00B0: 04 06 00 00 00 00 00 00 00 00 00 00 00 00 00 00  // ................
+    00C0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  // ................
+    00D0: 01 20 00 00 08 06 00 00 00 00 00 00 01 80 00 00  // . ..............
+    00E0: 20 06 00 00 00 00 00 00 00 00 00 00 00 00 00 00  //  ...............
+    00F0: 00 00 00 00                                      // ....
diff --git a/tests/data/acpi/q35/FACP.ipmibt b/tests/data/acpi/q35/FACP.ipmibt
new file mode 100644
index 0000000000000000000000000000000000000000..72c9d97902a4bbf14896023d9ba78e0899d6517b
GIT binary patch
literal 244
zcmZ>BbPo8!z`(#P@8s|75v<@85#a0w6k`O6f!H7#1{fJQ88!hqOw2%n4I;_{r9nIn
zAX@<@&cwhX02KSr|DPYCl7Ybp$XMFKz`)4C!0?j?A_|v;DFV`r3P1wMTp$k&7=Z>N
X+XoXzrWq9=?f{7~HXz&s;==#{<X{c~

literal 0
HcmV?d00001

diff --git a/tests/data/acpi/q35/FACP.ipmibt.dsl b/tests/data/acpi/q35/FACP.ipmibt.dsl
new file mode 100644
index 0000000000..b6e56c5af2
--- /dev/null
+++ b/tests/data/acpi/q35/FACP.ipmibt.dsl
@@ -0,0 +1,179 @@ 
+/*
+ * Intel ACPI Component Architecture
+ * AML/ASL+ Disassembler version 20190509 (64-bit version)
+ * Copyright (c) 2000 - 2019 Intel Corporation
+ * 
+ * Disassembly of tests/data/acpi/q35/FACP.ipmibt, Tue Aug  4 11:14:15 2020
+ *
+ * ACPI Data Table [FACP]
+ *
+ * Format: [HexOffset DecimalOffset ByteLength]  FieldName : FieldValue
+ */
+
+[000h 0000   4]                    Signature : "FACP"    [Fixed ACPI Description Table (FADT)]
+[004h 0004   4]                 Table Length : 000000F4
+[008h 0008   1]                     Revision : 03
+[009h 0009   1]                     Checksum : 1F
+[00Ah 0010   6]                       Oem ID : "BOCHS "
+[010h 0016   8]                 Oem Table ID : "BXPCFACP"
+[018h 0024   4]                 Oem Revision : 00000001
+[01Ch 0028   4]              Asl Compiler ID : "BXPC"
+[020h 0032   4]        Asl Compiler Revision : 00000001
+
+[024h 0036   4]                 FACS Address : 00000000
+[028h 0040   4]                 DSDT Address : 00000000
+[02Ch 0044   1]                        Model : 01
+[02Dh 0045   1]                   PM Profile : 00 [Unspecified]
+[02Eh 0046   2]                SCI Interrupt : 0009
+[030h 0048   4]             SMI Command Port : 000000B2
+[034h 0052   1]            ACPI Enable Value : 02
+[035h 0053   1]           ACPI Disable Value : 03
+[036h 0054   1]               S4BIOS Command : 00
+[037h 0055   1]              P-State Control : 00
+[038h 0056   4]     PM1A Event Block Address : 00000600
+[03Ch 0060   4]     PM1B Event Block Address : 00000000
+[040h 0064   4]   PM1A Control Block Address : 00000604
+[044h 0068   4]   PM1B Control Block Address : 00000000
+[048h 0072   4]    PM2 Control Block Address : 00000000
+[04Ch 0076   4]       PM Timer Block Address : 00000608
+[050h 0080   4]           GPE0 Block Address : 00000620
+[054h 0084   4]           GPE1 Block Address : 00000000
+[058h 0088   1]       PM1 Event Block Length : 04
+[059h 0089   1]     PM1 Control Block Length : 02
+[05Ah 0090   1]     PM2 Control Block Length : 00
+[05Bh 0091   1]        PM Timer Block Length : 04
+[05Ch 0092   1]            GPE0 Block Length : 10
+[05Dh 0093   1]            GPE1 Block Length : 00
+[05Eh 0094   1]             GPE1 Base Offset : 00
+[05Fh 0095   1]                 _CST Support : 00
+[060h 0096   2]                   C2 Latency : 0FFF
+[062h 0098   2]                   C3 Latency : 0FFF
+[064h 0100   2]               CPU Cache Size : 0000
+[066h 0102   2]           Cache Flush Stride : 0000
+[068h 0104   1]            Duty Cycle Offset : 00
+[069h 0105   1]             Duty Cycle Width : 00
+[06Ah 0106   1]          RTC Day Alarm Index : 00
+[06Bh 0107   1]        RTC Month Alarm Index : 00
+[06Ch 0108   1]            RTC Century Index : 32
+[06Dh 0109   2]   Boot Flags (decoded below) : 0000
+               Legacy Devices Supported (V2) : 0
+            8042 Present on ports 60/64 (V2) : 0
+                        VGA Not Present (V4) : 0
+                      MSI Not Supported (V4) : 0
+                PCIe ASPM Not Supported (V4) : 0
+                   CMOS RTC Not Present (V5) : 0
+[06Fh 0111   1]                     Reserved : 00
+[070h 0112   4]        Flags (decoded below) : 000084A5
+      WBINVD instruction is operational (V1) : 1
+              WBINVD flushes all caches (V1) : 0
+                    All CPUs support C1 (V1) : 1
+                  C2 works on MP system (V1) : 0
+            Control Method Power Button (V1) : 0
+            Control Method Sleep Button (V1) : 1
+        RTC wake not in fixed reg space (V1) : 0
+            RTC can wake system from S4 (V1) : 1
+                        32-bit PM Timer (V1) : 0
+                      Docking Supported (V1) : 0
+               Reset Register Supported (V2) : 1
+                            Sealed Case (V3) : 0
+                    Headless - No Video (V3) : 0
+        Use native instr after SLP_TYPx (V3) : 0
+              PCIEXP_WAK Bits Supported (V4) : 0
+                     Use Platform Timer (V4) : 1
+               RTC_STS valid on S4 wake (V4) : 0
+                Remote Power-on capable (V4) : 0
+                 Use APIC Cluster Model (V4) : 0
+     Use APIC Physical Destination Mode (V4) : 0
+                       Hardware Reduced (V5) : 0
+                      Low Power S0 Idle (V5) : 0
+
+[074h 0116  12]               Reset Register : [Generic Address Structure]
+[074h 0116   1]                     Space ID : 01 [SystemIO]
+[075h 0117   1]                    Bit Width : 08
+[076h 0118   1]                   Bit Offset : 00
+[077h 0119   1]         Encoded Access Width : 00 [Undefined/Legacy]
+[078h 0120   8]                      Address : 0000000000000CF9
+
+[080h 0128   1]         Value to cause reset : 0F
+[081h 0129   2]    ARM Flags (decoded below) : 0000
+                              PSCI Compliant : 0
+                       Must use HVC for PSCI : 0
+
+[083h 0131   1]          FADT Minor Revision : 00
+[084h 0132   8]                 FACS Address : 0000000000000000
+[08Ch 0140   8]                 DSDT Address : 0000000000000000
+[094h 0148  12]             PM1A Event Block : [Generic Address Structure]
+[094h 0148   1]                     Space ID : 01 [SystemIO]
+[095h 0149   1]                    Bit Width : 20
+[096h 0150   1]                   Bit Offset : 00
+[097h 0151   1]         Encoded Access Width : 00 [Undefined/Legacy]
+[098h 0152   8]                      Address : 0000000000000600
+
+[0A0h 0160  12]             PM1B Event Block : [Generic Address Structure]
+[0A0h 0160   1]                     Space ID : 00 [SystemMemory]
+[0A1h 0161   1]                    Bit Width : 00
+[0A2h 0162   1]                   Bit Offset : 00
+[0A3h 0163   1]         Encoded Access Width : 00 [Undefined/Legacy]
+[0A4h 0164   8]                      Address : 0000000000000000
+
+[0ACh 0172  12]           PM1A Control Block : [Generic Address Structure]
+[0ACh 0172   1]                     Space ID : 01 [SystemIO]
+[0ADh 0173   1]                    Bit Width : 10
+[0AEh 0174   1]                   Bit Offset : 00
+[0AFh 0175   1]         Encoded Access Width : 00 [Undefined/Legacy]
+[0B0h 0176   8]                      Address : 0000000000000604
+
+[0B8h 0184  12]           PM1B Control Block : [Generic Address Structure]
+[0B8h 0184   1]                     Space ID : 00 [SystemMemory]
+[0B9h 0185   1]                    Bit Width : 00
+[0BAh 0186   1]                   Bit Offset : 00
+[0BBh 0187   1]         Encoded Access Width : 00 [Undefined/Legacy]
+[0BCh 0188   8]                      Address : 0000000000000000
+
+[0C4h 0196  12]            PM2 Control Block : [Generic Address Structure]
+[0C4h 0196   1]                     Space ID : 00 [SystemMemory]
+[0C5h 0197   1]                    Bit Width : 00
+[0C6h 0198   1]                   Bit Offset : 00
+[0C7h 0199   1]         Encoded Access Width : 00 [Undefined/Legacy]
+[0C8h 0200   8]                      Address : 0000000000000000
+
+[0D0h 0208  12]               PM Timer Block : [Generic Address Structure]
+[0D0h 0208   1]                     Space ID : 01 [SystemIO]
+[0D1h 0209   1]                    Bit Width : 20
+[0D2h 0210   1]                   Bit Offset : 00
+[0D3h 0211   1]         Encoded Access Width : 00 [Undefined/Legacy]
+[0D4h 0212   8]                      Address : 0000000000000608
+
+[0DCh 0220  12]                   GPE0 Block : [Generic Address Structure]
+[0DCh 0220   1]                     Space ID : 01 [SystemIO]
+[0DDh 0221   1]                    Bit Width : 80
+[0DEh 0222   1]                   Bit Offset : 00
+[0DFh 0223   1]         Encoded Access Width : 00 [Undefined/Legacy]
+[0E0h 0224   8]                      Address : 0000000000000620
+
+[0E8h 0232  12]                   GPE1 Block : [Generic Address Structure]
+[0E8h 0232   1]                     Space ID : 00 [SystemMemory]
+[0E9h 0233   1]                    Bit Width : 00
+[0EAh 0234   1]                   Bit Offset : 00
+[0EBh 0235   1]         Encoded Access Width : 00 [Undefined/Legacy]
+[0ECh 0236   8]                      Address : 0000000000000000
+
+
+Raw Table Data: Length 244 (0xF4)
+
+    0000: 46 41 43 50 F4 00 00 00 03 1F 42 4F 43 48 53 20  // FACP......BOCHS 
+    0010: 42 58 50 43 46 41 43 50 01 00 00 00 42 58 50 43  // BXPCFACP....BXPC
+    0020: 01 00 00 00 00 00 00 00 00 00 00 00 01 00 09 00  // ................
+    0030: B2 00 00 00 02 03 00 00 00 06 00 00 00 00 00 00  // ................
+    0040: 04 06 00 00 00 00 00 00 00 00 00 00 08 06 00 00  // ................
+    0050: 20 06 00 00 00 00 00 00 04 02 00 04 10 00 00 00  //  ...............
+    0060: FF 0F FF 0F 00 00 00 00 00 00 00 00 32 00 00 00  // ............2...
+    0070: A5 84 00 00 01 08 00 00 F9 0C 00 00 00 00 00 00  // ................
+    0080: 0F 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  // ................
+    0090: 00 00 00 00 01 20 00 00 00 06 00 00 00 00 00 00  // ..... ..........
+    00A0: 00 00 00 00 00 00 00 00 00 00 00 00 01 10 00 00  // ................
+    00B0: 04 06 00 00 00 00 00 00 00 00 00 00 00 00 00 00  // ................
+    00C0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  // ................
+    00D0: 01 20 00 00 08 06 00 00 00 00 00 00 01 80 00 00  // . ..............
+    00E0: 20 06 00 00 00 00 00 00 00 00 00 00 00 00 00 00  //  ...............
+    00F0: 00 00 00 00                                      // ....
diff --git a/tests/data/acpi/q35/FACP.memhp b/tests/data/acpi/q35/FACP.memhp
new file mode 100644
index 0000000000000000000000000000000000000000..72c9d97902a4bbf14896023d9ba78e0899d6517b
GIT binary patch
literal 244
zcmZ>BbPo8!z`(#P@8s|75v<@85#a0w6k`O6f!H7#1{fJQ88!hqOw2%n4I;_{r9nIn
zAX@<@&cwhX02KSr|DPYCl7Ybp$XMFKz`)4C!0?j?A_|v;DFV`r3P1wMTp$k&7=Z>N
X+XoXzrWq9=?f{7~HXz&s;==#{<X{c~

literal 0
HcmV?d00001

diff --git a/tests/data/acpi/q35/FACP.memhp.dsl b/tests/data/acpi/q35/FACP.memhp.dsl
new file mode 100644
index 0000000000..2405fcdca8
--- /dev/null
+++ b/tests/data/acpi/q35/FACP.memhp.dsl
@@ -0,0 +1,179 @@ 
+/*
+ * Intel ACPI Component Architecture
+ * AML/ASL+ Disassembler version 20190509 (64-bit version)
+ * Copyright (c) 2000 - 2019 Intel Corporation
+ * 
+ * Disassembly of tests/data/acpi/q35/FACP.memhp, Tue Aug  4 11:14:15 2020
+ *
+ * ACPI Data Table [FACP]
+ *
+ * Format: [HexOffset DecimalOffset ByteLength]  FieldName : FieldValue
+ */
+
+[000h 0000   4]                    Signature : "FACP"    [Fixed ACPI Description Table (FADT)]
+[004h 0004   4]                 Table Length : 000000F4
+[008h 0008   1]                     Revision : 03
+[009h 0009   1]                     Checksum : 1F
+[00Ah 0010   6]                       Oem ID : "BOCHS "
+[010h 0016   8]                 Oem Table ID : "BXPCFACP"
+[018h 0024   4]                 Oem Revision : 00000001
+[01Ch 0028   4]              Asl Compiler ID : "BXPC"
+[020h 0032   4]        Asl Compiler Revision : 00000001
+
+[024h 0036   4]                 FACS Address : 00000000
+[028h 0040   4]                 DSDT Address : 00000000
+[02Ch 0044   1]                        Model : 01
+[02Dh 0045   1]                   PM Profile : 00 [Unspecified]
+[02Eh 0046   2]                SCI Interrupt : 0009
+[030h 0048   4]             SMI Command Port : 000000B2
+[034h 0052   1]            ACPI Enable Value : 02
+[035h 0053   1]           ACPI Disable Value : 03
+[036h 0054   1]               S4BIOS Command : 00
+[037h 0055   1]              P-State Control : 00
+[038h 0056   4]     PM1A Event Block Address : 00000600
+[03Ch 0060   4]     PM1B Event Block Address : 00000000
+[040h 0064   4]   PM1A Control Block Address : 00000604
+[044h 0068   4]   PM1B Control Block Address : 00000000
+[048h 0072   4]    PM2 Control Block Address : 00000000
+[04Ch 0076   4]       PM Timer Block Address : 00000608
+[050h 0080   4]           GPE0 Block Address : 00000620
+[054h 0084   4]           GPE1 Block Address : 00000000
+[058h 0088   1]       PM1 Event Block Length : 04
+[059h 0089   1]     PM1 Control Block Length : 02
+[05Ah 0090   1]     PM2 Control Block Length : 00
+[05Bh 0091   1]        PM Timer Block Length : 04
+[05Ch 0092   1]            GPE0 Block Length : 10
+[05Dh 0093   1]            GPE1 Block Length : 00
+[05Eh 0094   1]             GPE1 Base Offset : 00
+[05Fh 0095   1]                 _CST Support : 00
+[060h 0096   2]                   C2 Latency : 0FFF
+[062h 0098   2]                   C3 Latency : 0FFF
+[064h 0100   2]               CPU Cache Size : 0000
+[066h 0102   2]           Cache Flush Stride : 0000
+[068h 0104   1]            Duty Cycle Offset : 00
+[069h 0105   1]             Duty Cycle Width : 00
+[06Ah 0106   1]          RTC Day Alarm Index : 00
+[06Bh 0107   1]        RTC Month Alarm Index : 00
+[06Ch 0108   1]            RTC Century Index : 32
+[06Dh 0109   2]   Boot Flags (decoded below) : 0000
+               Legacy Devices Supported (V2) : 0
+            8042 Present on ports 60/64 (V2) : 0
+                        VGA Not Present (V4) : 0
+                      MSI Not Supported (V4) : 0
+                PCIe ASPM Not Supported (V4) : 0
+                   CMOS RTC Not Present (V5) : 0
+[06Fh 0111   1]                     Reserved : 00
+[070h 0112   4]        Flags (decoded below) : 000084A5
+      WBINVD instruction is operational (V1) : 1
+              WBINVD flushes all caches (V1) : 0
+                    All CPUs support C1 (V1) : 1
+                  C2 works on MP system (V1) : 0
+            Control Method Power Button (V1) : 0
+            Control Method Sleep Button (V1) : 1
+        RTC wake not in fixed reg space (V1) : 0
+            RTC can wake system from S4 (V1) : 1
+                        32-bit PM Timer (V1) : 0
+                      Docking Supported (V1) : 0
+               Reset Register Supported (V2) : 1
+                            Sealed Case (V3) : 0
+                    Headless - No Video (V3) : 0
+        Use native instr after SLP_TYPx (V3) : 0
+              PCIEXP_WAK Bits Supported (V4) : 0
+                     Use Platform Timer (V4) : 1
+               RTC_STS valid on S4 wake (V4) : 0
+                Remote Power-on capable (V4) : 0
+                 Use APIC Cluster Model (V4) : 0
+     Use APIC Physical Destination Mode (V4) : 0
+                       Hardware Reduced (V5) : 0
+                      Low Power S0 Idle (V5) : 0
+
+[074h 0116  12]               Reset Register : [Generic Address Structure]
+[074h 0116   1]                     Space ID : 01 [SystemIO]
+[075h 0117   1]                    Bit Width : 08
+[076h 0118   1]                   Bit Offset : 00
+[077h 0119   1]         Encoded Access Width : 00 [Undefined/Legacy]
+[078h 0120   8]                      Address : 0000000000000CF9
+
+[080h 0128   1]         Value to cause reset : 0F
+[081h 0129   2]    ARM Flags (decoded below) : 0000
+                              PSCI Compliant : 0
+                       Must use HVC for PSCI : 0
+
+[083h 0131   1]          FADT Minor Revision : 00
+[084h 0132   8]                 FACS Address : 0000000000000000
+[08Ch 0140   8]                 DSDT Address : 0000000000000000
+[094h 0148  12]             PM1A Event Block : [Generic Address Structure]
+[094h 0148   1]                     Space ID : 01 [SystemIO]
+[095h 0149   1]                    Bit Width : 20
+[096h 0150   1]                   Bit Offset : 00
+[097h 0151   1]         Encoded Access Width : 00 [Undefined/Legacy]
+[098h 0152   8]                      Address : 0000000000000600
+
+[0A0h 0160  12]             PM1B Event Block : [Generic Address Structure]
+[0A0h 0160   1]                     Space ID : 00 [SystemMemory]
+[0A1h 0161   1]                    Bit Width : 00
+[0A2h 0162   1]                   Bit Offset : 00
+[0A3h 0163   1]         Encoded Access Width : 00 [Undefined/Legacy]
+[0A4h 0164   8]                      Address : 0000000000000000
+
+[0ACh 0172  12]           PM1A Control Block : [Generic Address Structure]
+[0ACh 0172   1]                     Space ID : 01 [SystemIO]
+[0ADh 0173   1]                    Bit Width : 10
+[0AEh 0174   1]                   Bit Offset : 00
+[0AFh 0175   1]         Encoded Access Width : 00 [Undefined/Legacy]
+[0B0h 0176   8]                      Address : 0000000000000604
+
+[0B8h 0184  12]           PM1B Control Block : [Generic Address Structure]
+[0B8h 0184   1]                     Space ID : 00 [SystemMemory]
+[0B9h 0185   1]                    Bit Width : 00
+[0BAh 0186   1]                   Bit Offset : 00
+[0BBh 0187   1]         Encoded Access Width : 00 [Undefined/Legacy]
+[0BCh 0188   8]                      Address : 0000000000000000
+
+[0C4h 0196  12]            PM2 Control Block : [Generic Address Structure]
+[0C4h 0196   1]                     Space ID : 00 [SystemMemory]
+[0C5h 0197   1]                    Bit Width : 00
+[0C6h 0198   1]                   Bit Offset : 00
+[0C7h 0199   1]         Encoded Access Width : 00 [Undefined/Legacy]
+[0C8h 0200   8]                      Address : 0000000000000000
+
+[0D0h 0208  12]               PM Timer Block : [Generic Address Structure]
+[0D0h 0208   1]                     Space ID : 01 [SystemIO]
+[0D1h 0209   1]                    Bit Width : 20
+[0D2h 0210   1]                   Bit Offset : 00
+[0D3h 0211   1]         Encoded Access Width : 00 [Undefined/Legacy]
+[0D4h 0212   8]                      Address : 0000000000000608
+
+[0DCh 0220  12]                   GPE0 Block : [Generic Address Structure]
+[0DCh 0220   1]                     Space ID : 01 [SystemIO]
+[0DDh 0221   1]                    Bit Width : 80
+[0DEh 0222   1]                   Bit Offset : 00
+[0DFh 0223   1]         Encoded Access Width : 00 [Undefined/Legacy]
+[0E0h 0224   8]                      Address : 0000000000000620
+
+[0E8h 0232  12]                   GPE1 Block : [Generic Address Structure]
+[0E8h 0232   1]                     Space ID : 00 [SystemMemory]
+[0E9h 0233   1]                    Bit Width : 00
+[0EAh 0234   1]                   Bit Offset : 00
+[0EBh 0235   1]         Encoded Access Width : 00 [Undefined/Legacy]
+[0ECh 0236   8]                      Address : 0000000000000000
+
+
+Raw Table Data: Length 244 (0xF4)
+
+    0000: 46 41 43 50 F4 00 00 00 03 1F 42 4F 43 48 53 20  // FACP......BOCHS 
+    0010: 42 58 50 43 46 41 43 50 01 00 00 00 42 58 50 43  // BXPCFACP....BXPC
+    0020: 01 00 00 00 00 00 00 00 00 00 00 00 01 00 09 00  // ................
+    0030: B2 00 00 00 02 03 00 00 00 06 00 00 00 00 00 00  // ................
+    0040: 04 06 00 00 00 00 00 00 00 00 00 00 08 06 00 00  // ................
+    0050: 20 06 00 00 00 00 00 00 04 02 00 04 10 00 00 00  //  ...............
+    0060: FF 0F FF 0F 00 00 00 00 00 00 00 00 32 00 00 00  // ............2...
+    0070: A5 84 00 00 01 08 00 00 F9 0C 00 00 00 00 00 00  // ................
+    0080: 0F 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  // ................
+    0090: 00 00 00 00 01 20 00 00 00 06 00 00 00 00 00 00  // ..... ..........
+    00A0: 00 00 00 00 00 00 00 00 00 00 00 00 01 10 00 00  // ................
+    00B0: 04 06 00 00 00 00 00 00 00 00 00 00 00 00 00 00  // ................
+    00C0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  // ................
+    00D0: 01 20 00 00 08 06 00 00 00 00 00 00 01 80 00 00  // . ..............
+    00E0: 20 06 00 00 00 00 00 00 00 00 00 00 00 00 00 00  //  ...............
+    00F0: 00 00 00 00                                      // ....
diff --git a/tests/data/acpi/q35/FACP.mmio64 b/tests/data/acpi/q35/FACP.mmio64
new file mode 100644
index 0000000000000000000000000000000000000000..72c9d97902a4bbf14896023d9ba78e0899d6517b
GIT binary patch
literal 244
zcmZ>BbPo8!z`(#P@8s|75v<@85#a0w6k`O6f!H7#1{fJQ88!hqOw2%n4I;_{r9nIn
zAX@<@&cwhX02KSr|DPYCl7Ybp$XMFKz`)4C!0?j?A_|v;DFV`r3P1wMTp$k&7=Z>N
X+XoXzrWq9=?f{7~HXz&s;==#{<X{c~

literal 0
HcmV?d00001

diff --git a/tests/data/acpi/q35/FACP.mmio64.dsl b/tests/data/acpi/q35/FACP.mmio64.dsl
new file mode 100644
index 0000000000..9f51c42156
--- /dev/null
+++ b/tests/data/acpi/q35/FACP.mmio64.dsl
@@ -0,0 +1,179 @@ 
+/*
+ * Intel ACPI Component Architecture
+ * AML/ASL+ Disassembler version 20190509 (64-bit version)
+ * Copyright (c) 2000 - 2019 Intel Corporation
+ * 
+ * Disassembly of tests/data/acpi/q35/FACP.mmio64, Tue Aug  4 11:14:15 2020
+ *
+ * ACPI Data Table [FACP]
+ *
+ * Format: [HexOffset DecimalOffset ByteLength]  FieldName : FieldValue
+ */
+
+[000h 0000   4]                    Signature : "FACP"    [Fixed ACPI Description Table (FADT)]
+[004h 0004   4]                 Table Length : 000000F4
+[008h 0008   1]                     Revision : 03
+[009h 0009   1]                     Checksum : 1F
+[00Ah 0010   6]                       Oem ID : "BOCHS "
+[010h 0016   8]                 Oem Table ID : "BXPCFACP"
+[018h 0024   4]                 Oem Revision : 00000001
+[01Ch 0028   4]              Asl Compiler ID : "BXPC"
+[020h 0032   4]        Asl Compiler Revision : 00000001
+
+[024h 0036   4]                 FACS Address : 00000000
+[028h 0040   4]                 DSDT Address : 00000000
+[02Ch 0044   1]                        Model : 01
+[02Dh 0045   1]                   PM Profile : 00 [Unspecified]
+[02Eh 0046   2]                SCI Interrupt : 0009
+[030h 0048   4]             SMI Command Port : 000000B2
+[034h 0052   1]            ACPI Enable Value : 02
+[035h 0053   1]           ACPI Disable Value : 03
+[036h 0054   1]               S4BIOS Command : 00
+[037h 0055   1]              P-State Control : 00
+[038h 0056   4]     PM1A Event Block Address : 00000600
+[03Ch 0060   4]     PM1B Event Block Address : 00000000
+[040h 0064   4]   PM1A Control Block Address : 00000604
+[044h 0068   4]   PM1B Control Block Address : 00000000
+[048h 0072   4]    PM2 Control Block Address : 00000000
+[04Ch 0076   4]       PM Timer Block Address : 00000608
+[050h 0080   4]           GPE0 Block Address : 00000620
+[054h 0084   4]           GPE1 Block Address : 00000000
+[058h 0088   1]       PM1 Event Block Length : 04
+[059h 0089   1]     PM1 Control Block Length : 02
+[05Ah 0090   1]     PM2 Control Block Length : 00
+[05Bh 0091   1]        PM Timer Block Length : 04
+[05Ch 0092   1]            GPE0 Block Length : 10
+[05Dh 0093   1]            GPE1 Block Length : 00
+[05Eh 0094   1]             GPE1 Base Offset : 00
+[05Fh 0095   1]                 _CST Support : 00
+[060h 0096   2]                   C2 Latency : 0FFF
+[062h 0098   2]                   C3 Latency : 0FFF
+[064h 0100   2]               CPU Cache Size : 0000
+[066h 0102   2]           Cache Flush Stride : 0000
+[068h 0104   1]            Duty Cycle Offset : 00
+[069h 0105   1]             Duty Cycle Width : 00
+[06Ah 0106   1]          RTC Day Alarm Index : 00
+[06Bh 0107   1]        RTC Month Alarm Index : 00
+[06Ch 0108   1]            RTC Century Index : 32
+[06Dh 0109   2]   Boot Flags (decoded below) : 0000
+               Legacy Devices Supported (V2) : 0
+            8042 Present on ports 60/64 (V2) : 0
+                        VGA Not Present (V4) : 0
+                      MSI Not Supported (V4) : 0
+                PCIe ASPM Not Supported (V4) : 0
+                   CMOS RTC Not Present (V5) : 0
+[06Fh 0111   1]                     Reserved : 00
+[070h 0112   4]        Flags (decoded below) : 000084A5
+      WBINVD instruction is operational (V1) : 1
+              WBINVD flushes all caches (V1) : 0
+                    All CPUs support C1 (V1) : 1
+                  C2 works on MP system (V1) : 0
+            Control Method Power Button (V1) : 0
+            Control Method Sleep Button (V1) : 1
+        RTC wake not in fixed reg space (V1) : 0
+            RTC can wake system from S4 (V1) : 1
+                        32-bit PM Timer (V1) : 0
+                      Docking Supported (V1) : 0
+               Reset Register Supported (V2) : 1
+                            Sealed Case (V3) : 0
+                    Headless - No Video (V3) : 0
+        Use native instr after SLP_TYPx (V3) : 0
+              PCIEXP_WAK Bits Supported (V4) : 0
+                     Use Platform Timer (V4) : 1
+               RTC_STS valid on S4 wake (V4) : 0
+                Remote Power-on capable (V4) : 0
+                 Use APIC Cluster Model (V4) : 0
+     Use APIC Physical Destination Mode (V4) : 0
+                       Hardware Reduced (V5) : 0
+                      Low Power S0 Idle (V5) : 0
+
+[074h 0116  12]               Reset Register : [Generic Address Structure]
+[074h 0116   1]                     Space ID : 01 [SystemIO]
+[075h 0117   1]                    Bit Width : 08
+[076h 0118   1]                   Bit Offset : 00
+[077h 0119   1]         Encoded Access Width : 00 [Undefined/Legacy]
+[078h 0120   8]                      Address : 0000000000000CF9
+
+[080h 0128   1]         Value to cause reset : 0F
+[081h 0129   2]    ARM Flags (decoded below) : 0000
+                              PSCI Compliant : 0
+                       Must use HVC for PSCI : 0
+
+[083h 0131   1]          FADT Minor Revision : 00
+[084h 0132   8]                 FACS Address : 0000000000000000
+[08Ch 0140   8]                 DSDT Address : 0000000000000000
+[094h 0148  12]             PM1A Event Block : [Generic Address Structure]
+[094h 0148   1]                     Space ID : 01 [SystemIO]
+[095h 0149   1]                    Bit Width : 20
+[096h 0150   1]                   Bit Offset : 00
+[097h 0151   1]         Encoded Access Width : 00 [Undefined/Legacy]
+[098h 0152   8]                      Address : 0000000000000600
+
+[0A0h 0160  12]             PM1B Event Block : [Generic Address Structure]
+[0A0h 0160   1]                     Space ID : 00 [SystemMemory]
+[0A1h 0161   1]                    Bit Width : 00
+[0A2h 0162   1]                   Bit Offset : 00
+[0A3h 0163   1]         Encoded Access Width : 00 [Undefined/Legacy]
+[0A4h 0164   8]                      Address : 0000000000000000
+
+[0ACh 0172  12]           PM1A Control Block : [Generic Address Structure]
+[0ACh 0172   1]                     Space ID : 01 [SystemIO]
+[0ADh 0173   1]                    Bit Width : 10
+[0AEh 0174   1]                   Bit Offset : 00
+[0AFh 0175   1]         Encoded Access Width : 00 [Undefined/Legacy]
+[0B0h 0176   8]                      Address : 0000000000000604
+
+[0B8h 0184  12]           PM1B Control Block : [Generic Address Structure]
+[0B8h 0184   1]                     Space ID : 00 [SystemMemory]
+[0B9h 0185   1]                    Bit Width : 00
+[0BAh 0186   1]                   Bit Offset : 00
+[0BBh 0187   1]         Encoded Access Width : 00 [Undefined/Legacy]
+[0BCh 0188   8]                      Address : 0000000000000000
+
+[0C4h 0196  12]            PM2 Control Block : [Generic Address Structure]
+[0C4h 0196   1]                     Space ID : 00 [SystemMemory]
+[0C5h 0197   1]                    Bit Width : 00
+[0C6h 0198   1]                   Bit Offset : 00
+[0C7h 0199   1]         Encoded Access Width : 00 [Undefined/Legacy]
+[0C8h 0200   8]                      Address : 0000000000000000
+
+[0D0h 0208  12]               PM Timer Block : [Generic Address Structure]
+[0D0h 0208   1]                     Space ID : 01 [SystemIO]
+[0D1h 0209   1]                    Bit Width : 20
+[0D2h 0210   1]                   Bit Offset : 00
+[0D3h 0211   1]         Encoded Access Width : 00 [Undefined/Legacy]
+[0D4h 0212   8]                      Address : 0000000000000608
+
+[0DCh 0220  12]                   GPE0 Block : [Generic Address Structure]
+[0DCh 0220   1]                     Space ID : 01 [SystemIO]
+[0DDh 0221   1]                    Bit Width : 80
+[0DEh 0222   1]                   Bit Offset : 00
+[0DFh 0223   1]         Encoded Access Width : 00 [Undefined/Legacy]
+[0E0h 0224   8]                      Address : 0000000000000620
+
+[0E8h 0232  12]                   GPE1 Block : [Generic Address Structure]
+[0E8h 0232   1]                     Space ID : 00 [SystemMemory]
+[0E9h 0233   1]                    Bit Width : 00
+[0EAh 0234   1]                   Bit Offset : 00
+[0EBh 0235   1]         Encoded Access Width : 00 [Undefined/Legacy]
+[0ECh 0236   8]                      Address : 0000000000000000
+
+
+Raw Table Data: Length 244 (0xF4)
+
+    0000: 46 41 43 50 F4 00 00 00 03 1F 42 4F 43 48 53 20  // FACP......BOCHS 
+    0010: 42 58 50 43 46 41 43 50 01 00 00 00 42 58 50 43  // BXPCFACP....BXPC
+    0020: 01 00 00 00 00 00 00 00 00 00 00 00 01 00 09 00  // ................
+    0030: B2 00 00 00 02 03 00 00 00 06 00 00 00 00 00 00  // ................
+    0040: 04 06 00 00 00 00 00 00 00 00 00 00 08 06 00 00  // ................
+    0050: 20 06 00 00 00 00 00 00 04 02 00 04 10 00 00 00  //  ...............
+    0060: FF 0F FF 0F 00 00 00 00 00 00 00 00 32 00 00 00  // ............2...
+    0070: A5 84 00 00 01 08 00 00 F9 0C 00 00 00 00 00 00  // ................
+    0080: 0F 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  // ................
+    0090: 00 00 00 00 01 20 00 00 00 06 00 00 00 00 00 00  // ..... ..........
+    00A0: 00 00 00 00 00 00 00 00 00 00 00 00 01 10 00 00  // ................
+    00B0: 04 06 00 00 00 00 00 00 00 00 00 00 00 00 00 00  // ................
+    00C0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  // ................
+    00D0: 01 20 00 00 08 06 00 00 00 00 00 00 01 80 00 00  // . ..............
+    00E0: 20 06 00 00 00 00 00 00 00 00 00 00 00 00 00 00  //  ...............
+    00F0: 00 00 00 00                                      // ....
diff --git a/tests/data/acpi/q35/FACP.numamem b/tests/data/acpi/q35/FACP.numamem
new file mode 100644
index 0000000000000000000000000000000000000000..72c9d97902a4bbf14896023d9ba78e0899d6517b
GIT binary patch
literal 244
zcmZ>BbPo8!z`(#P@8s|75v<@85#a0w6k`O6f!H7#1{fJQ88!hqOw2%n4I;_{r9nIn
zAX@<@&cwhX02KSr|DPYCl7Ybp$XMFKz`)4C!0?j?A_|v;DFV`r3P1wMTp$k&7=Z>N
X+XoXzrWq9=?f{7~HXz&s;==#{<X{c~

literal 0
HcmV?d00001

diff --git a/tests/data/acpi/q35/FACP.numamem.dsl b/tests/data/acpi/q35/FACP.numamem.dsl
new file mode 100644
index 0000000000..a5854c1a69
--- /dev/null
+++ b/tests/data/acpi/q35/FACP.numamem.dsl
@@ -0,0 +1,179 @@ 
+/*
+ * Intel ACPI Component Architecture
+ * AML/ASL+ Disassembler version 20190509 (64-bit version)
+ * Copyright (c) 2000 - 2019 Intel Corporation
+ * 
+ * Disassembly of tests/data/acpi/q35/FACP.numamem, Tue Aug  4 11:14:15 2020
+ *
+ * ACPI Data Table [FACP]
+ *
+ * Format: [HexOffset DecimalOffset ByteLength]  FieldName : FieldValue
+ */
+
+[000h 0000   4]                    Signature : "FACP"    [Fixed ACPI Description Table (FADT)]
+[004h 0004   4]                 Table Length : 000000F4
+[008h 0008   1]                     Revision : 03
+[009h 0009   1]                     Checksum : 1F
+[00Ah 0010   6]                       Oem ID : "BOCHS "
+[010h 0016   8]                 Oem Table ID : "BXPCFACP"
+[018h 0024   4]                 Oem Revision : 00000001
+[01Ch 0028   4]              Asl Compiler ID : "BXPC"
+[020h 0032   4]        Asl Compiler Revision : 00000001
+
+[024h 0036   4]                 FACS Address : 00000000
+[028h 0040   4]                 DSDT Address : 00000000
+[02Ch 0044   1]                        Model : 01
+[02Dh 0045   1]                   PM Profile : 00 [Unspecified]
+[02Eh 0046   2]                SCI Interrupt : 0009
+[030h 0048   4]             SMI Command Port : 000000B2
+[034h 0052   1]            ACPI Enable Value : 02
+[035h 0053   1]           ACPI Disable Value : 03
+[036h 0054   1]               S4BIOS Command : 00
+[037h 0055   1]              P-State Control : 00
+[038h 0056   4]     PM1A Event Block Address : 00000600
+[03Ch 0060   4]     PM1B Event Block Address : 00000000
+[040h 0064   4]   PM1A Control Block Address : 00000604
+[044h 0068   4]   PM1B Control Block Address : 00000000
+[048h 0072   4]    PM2 Control Block Address : 00000000
+[04Ch 0076   4]       PM Timer Block Address : 00000608
+[050h 0080   4]           GPE0 Block Address : 00000620
+[054h 0084   4]           GPE1 Block Address : 00000000
+[058h 0088   1]       PM1 Event Block Length : 04
+[059h 0089   1]     PM1 Control Block Length : 02
+[05Ah 0090   1]     PM2 Control Block Length : 00
+[05Bh 0091   1]        PM Timer Block Length : 04
+[05Ch 0092   1]            GPE0 Block Length : 10
+[05Dh 0093   1]            GPE1 Block Length : 00
+[05Eh 0094   1]             GPE1 Base Offset : 00
+[05Fh 0095   1]                 _CST Support : 00
+[060h 0096   2]                   C2 Latency : 0FFF
+[062h 0098   2]                   C3 Latency : 0FFF
+[064h 0100   2]               CPU Cache Size : 0000
+[066h 0102   2]           Cache Flush Stride : 0000
+[068h 0104   1]            Duty Cycle Offset : 00
+[069h 0105   1]             Duty Cycle Width : 00
+[06Ah 0106   1]          RTC Day Alarm Index : 00
+[06Bh 0107   1]        RTC Month Alarm Index : 00
+[06Ch 0108   1]            RTC Century Index : 32
+[06Dh 0109   2]   Boot Flags (decoded below) : 0000
+               Legacy Devices Supported (V2) : 0
+            8042 Present on ports 60/64 (V2) : 0
+                        VGA Not Present (V4) : 0
+                      MSI Not Supported (V4) : 0
+                PCIe ASPM Not Supported (V4) : 0
+                   CMOS RTC Not Present (V5) : 0
+[06Fh 0111   1]                     Reserved : 00
+[070h 0112   4]        Flags (decoded below) : 000084A5
+      WBINVD instruction is operational (V1) : 1
+              WBINVD flushes all caches (V1) : 0
+                    All CPUs support C1 (V1) : 1
+                  C2 works on MP system (V1) : 0
+            Control Method Power Button (V1) : 0
+            Control Method Sleep Button (V1) : 1
+        RTC wake not in fixed reg space (V1) : 0
+            RTC can wake system from S4 (V1) : 1
+                        32-bit PM Timer (V1) : 0
+                      Docking Supported (V1) : 0
+               Reset Register Supported (V2) : 1
+                            Sealed Case (V3) : 0
+                    Headless - No Video (V3) : 0
+        Use native instr after SLP_TYPx (V3) : 0
+              PCIEXP_WAK Bits Supported (V4) : 0
+                     Use Platform Timer (V4) : 1
+               RTC_STS valid on S4 wake (V4) : 0
+                Remote Power-on capable (V4) : 0
+                 Use APIC Cluster Model (V4) : 0
+     Use APIC Physical Destination Mode (V4) : 0
+                       Hardware Reduced (V5) : 0
+                      Low Power S0 Idle (V5) : 0
+
+[074h 0116  12]               Reset Register : [Generic Address Structure]
+[074h 0116   1]                     Space ID : 01 [SystemIO]
+[075h 0117   1]                    Bit Width : 08
+[076h 0118   1]                   Bit Offset : 00
+[077h 0119   1]         Encoded Access Width : 00 [Undefined/Legacy]
+[078h 0120   8]                      Address : 0000000000000CF9
+
+[080h 0128   1]         Value to cause reset : 0F
+[081h 0129   2]    ARM Flags (decoded below) : 0000
+                              PSCI Compliant : 0
+                       Must use HVC for PSCI : 0
+
+[083h 0131   1]          FADT Minor Revision : 00
+[084h 0132   8]                 FACS Address : 0000000000000000
+[08Ch 0140   8]                 DSDT Address : 0000000000000000
+[094h 0148  12]             PM1A Event Block : [Generic Address Structure]
+[094h 0148   1]                     Space ID : 01 [SystemIO]
+[095h 0149   1]                    Bit Width : 20
+[096h 0150   1]                   Bit Offset : 00
+[097h 0151   1]         Encoded Access Width : 00 [Undefined/Legacy]
+[098h 0152   8]                      Address : 0000000000000600
+
+[0A0h 0160  12]             PM1B Event Block : [Generic Address Structure]
+[0A0h 0160   1]                     Space ID : 00 [SystemMemory]
+[0A1h 0161   1]                    Bit Width : 00
+[0A2h 0162   1]                   Bit Offset : 00
+[0A3h 0163   1]         Encoded Access Width : 00 [Undefined/Legacy]
+[0A4h 0164   8]                      Address : 0000000000000000
+
+[0ACh 0172  12]           PM1A Control Block : [Generic Address Structure]
+[0ACh 0172   1]                     Space ID : 01 [SystemIO]
+[0ADh 0173   1]                    Bit Width : 10
+[0AEh 0174   1]                   Bit Offset : 00
+[0AFh 0175   1]         Encoded Access Width : 00 [Undefined/Legacy]
+[0B0h 0176   8]                      Address : 0000000000000604
+
+[0B8h 0184  12]           PM1B Control Block : [Generic Address Structure]
+[0B8h 0184   1]                     Space ID : 00 [SystemMemory]
+[0B9h 0185   1]                    Bit Width : 00
+[0BAh 0186   1]                   Bit Offset : 00
+[0BBh 0187   1]         Encoded Access Width : 00 [Undefined/Legacy]
+[0BCh 0188   8]                      Address : 0000000000000000
+
+[0C4h 0196  12]            PM2 Control Block : [Generic Address Structure]
+[0C4h 0196   1]                     Space ID : 00 [SystemMemory]
+[0C5h 0197   1]                    Bit Width : 00
+[0C6h 0198   1]                   Bit Offset : 00
+[0C7h 0199   1]         Encoded Access Width : 00 [Undefined/Legacy]
+[0C8h 0200   8]                      Address : 0000000000000000
+
+[0D0h 0208  12]               PM Timer Block : [Generic Address Structure]
+[0D0h 0208   1]                     Space ID : 01 [SystemIO]
+[0D1h 0209   1]                    Bit Width : 20
+[0D2h 0210   1]                   Bit Offset : 00
+[0D3h 0211   1]         Encoded Access Width : 00 [Undefined/Legacy]
+[0D4h 0212   8]                      Address : 0000000000000608
+
+[0DCh 0220  12]                   GPE0 Block : [Generic Address Structure]
+[0DCh 0220   1]                     Space ID : 01 [SystemIO]
+[0DDh 0221   1]                    Bit Width : 80
+[0DEh 0222   1]                   Bit Offset : 00
+[0DFh 0223   1]         Encoded Access Width : 00 [Undefined/Legacy]
+[0E0h 0224   8]                      Address : 0000000000000620
+
+[0E8h 0232  12]                   GPE1 Block : [Generic Address Structure]
+[0E8h 0232   1]                     Space ID : 00 [SystemMemory]
+[0E9h 0233   1]                    Bit Width : 00
+[0EAh 0234   1]                   Bit Offset : 00
+[0EBh 0235   1]         Encoded Access Width : 00 [Undefined/Legacy]
+[0ECh 0236   8]                      Address : 0000000000000000
+
+
+Raw Table Data: Length 244 (0xF4)
+
+    0000: 46 41 43 50 F4 00 00 00 03 1F 42 4F 43 48 53 20  // FACP......BOCHS 
+    0010: 42 58 50 43 46 41 43 50 01 00 00 00 42 58 50 43  // BXPCFACP....BXPC
+    0020: 01 00 00 00 00 00 00 00 00 00 00 00 01 00 09 00  // ................
+    0030: B2 00 00 00 02 03 00 00 00 06 00 00 00 00 00 00  // ................
+    0040: 04 06 00 00 00 00 00 00 00 00 00 00 08 06 00 00  // ................
+    0050: 20 06 00 00 00 00 00 00 04 02 00 04 10 00 00 00  //  ...............
+    0060: FF 0F FF 0F 00 00 00 00 00 00 00 00 32 00 00 00  // ............2...
+    0070: A5 84 00 00 01 08 00 00 F9 0C 00 00 00 00 00 00  // ................
+    0080: 0F 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  // ................
+    0090: 00 00 00 00 01 20 00 00 00 06 00 00 00 00 00 00  // ..... ..........
+    00A0: 00 00 00 00 00 00 00 00 00 00 00 00 01 10 00 00  // ................
+    00B0: 04 06 00 00 00 00 00 00 00 00 00 00 00 00 00 00  // ................
+    00C0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  // ................
+    00D0: 01 20 00 00 08 06 00 00 00 00 00 00 01 80 00 00  // . ..............
+    00E0: 20 06 00 00 00 00 00 00 00 00 00 00 00 00 00 00  //  ...............
+    00F0: 00 00 00 00                                      // ....
diff --git a/tests/data/acpi/q35/FACP.tis b/tests/data/acpi/q35/FACP.tis
new file mode 100644
index 0000000000000000000000000000000000000000..72c9d97902a4bbf14896023d9ba78e0899d6517b
GIT binary patch
literal 244
zcmZ>BbPo8!z`(#P@8s|75v<@85#a0w6k`O6f!H7#1{fJQ88!hqOw2%n4I;_{r9nIn
zAX@<@&cwhX02KSr|DPYCl7Ybp$XMFKz`)4C!0?j?A_|v;DFV`r3P1wMTp$k&7=Z>N
X+XoXzrWq9=?f{7~HXz&s;==#{<X{c~

literal 0
HcmV?d00001

diff --git a/tests/data/acpi/q35/FACP.tis.dsl b/tests/data/acpi/q35/FACP.tis.dsl
new file mode 100644
index 0000000000..22f6a34466
--- /dev/null
+++ b/tests/data/acpi/q35/FACP.tis.dsl
@@ -0,0 +1,179 @@ 
+/*
+ * Intel ACPI Component Architecture
+ * AML/ASL+ Disassembler version 20190509 (64-bit version)
+ * Copyright (c) 2000 - 2019 Intel Corporation
+ * 
+ * Disassembly of tests/data/acpi/q35/FACP.tis, Tue Aug  4 11:14:15 2020
+ *
+ * ACPI Data Table [FACP]
+ *
+ * Format: [HexOffset DecimalOffset ByteLength]  FieldName : FieldValue
+ */
+
+[000h 0000   4]                    Signature : "FACP"    [Fixed ACPI Description Table (FADT)]
+[004h 0004   4]                 Table Length : 000000F4
+[008h 0008   1]                     Revision : 03
+[009h 0009   1]                     Checksum : 1F
+[00Ah 0010   6]                       Oem ID : "BOCHS "
+[010h 0016   8]                 Oem Table ID : "BXPCFACP"
+[018h 0024   4]                 Oem Revision : 00000001
+[01Ch 0028   4]              Asl Compiler ID : "BXPC"
+[020h 0032   4]        Asl Compiler Revision : 00000001
+
+[024h 0036   4]                 FACS Address : 00000000
+[028h 0040   4]                 DSDT Address : 00000000
+[02Ch 0044   1]                        Model : 01
+[02Dh 0045   1]                   PM Profile : 00 [Unspecified]
+[02Eh 0046   2]                SCI Interrupt : 0009
+[030h 0048   4]             SMI Command Port : 000000B2
+[034h 0052   1]            ACPI Enable Value : 02
+[035h 0053   1]           ACPI Disable Value : 03
+[036h 0054   1]               S4BIOS Command : 00
+[037h 0055   1]              P-State Control : 00
+[038h 0056   4]     PM1A Event Block Address : 00000600
+[03Ch 0060   4]     PM1B Event Block Address : 00000000
+[040h 0064   4]   PM1A Control Block Address : 00000604
+[044h 0068   4]   PM1B Control Block Address : 00000000
+[048h 0072   4]    PM2 Control Block Address : 00000000
+[04Ch 0076   4]       PM Timer Block Address : 00000608
+[050h 0080   4]           GPE0 Block Address : 00000620
+[054h 0084   4]           GPE1 Block Address : 00000000
+[058h 0088   1]       PM1 Event Block Length : 04
+[059h 0089   1]     PM1 Control Block Length : 02
+[05Ah 0090   1]     PM2 Control Block Length : 00
+[05Bh 0091   1]        PM Timer Block Length : 04
+[05Ch 0092   1]            GPE0 Block Length : 10
+[05Dh 0093   1]            GPE1 Block Length : 00
+[05Eh 0094   1]             GPE1 Base Offset : 00
+[05Fh 0095   1]                 _CST Support : 00
+[060h 0096   2]                   C2 Latency : 0FFF
+[062h 0098   2]                   C3 Latency : 0FFF
+[064h 0100   2]               CPU Cache Size : 0000
+[066h 0102   2]           Cache Flush Stride : 0000
+[068h 0104   1]            Duty Cycle Offset : 00
+[069h 0105   1]             Duty Cycle Width : 00
+[06Ah 0106   1]          RTC Day Alarm Index : 00
+[06Bh 0107   1]        RTC Month Alarm Index : 00
+[06Ch 0108   1]            RTC Century Index : 32
+[06Dh 0109   2]   Boot Flags (decoded below) : 0000
+               Legacy Devices Supported (V2) : 0
+            8042 Present on ports 60/64 (V2) : 0
+                        VGA Not Present (V4) : 0
+                      MSI Not Supported (V4) : 0
+                PCIe ASPM Not Supported (V4) : 0
+                   CMOS RTC Not Present (V5) : 0
+[06Fh 0111   1]                     Reserved : 00
+[070h 0112   4]        Flags (decoded below) : 000084A5
+      WBINVD instruction is operational (V1) : 1
+              WBINVD flushes all caches (V1) : 0
+                    All CPUs support C1 (V1) : 1
+                  C2 works on MP system (V1) : 0
+            Control Method Power Button (V1) : 0
+            Control Method Sleep Button (V1) : 1
+        RTC wake not in fixed reg space (V1) : 0
+            RTC can wake system from S4 (V1) : 1
+                        32-bit PM Timer (V1) : 0
+                      Docking Supported (V1) : 0
+               Reset Register Supported (V2) : 1
+                            Sealed Case (V3) : 0
+                    Headless - No Video (V3) : 0
+        Use native instr after SLP_TYPx (V3) : 0
+              PCIEXP_WAK Bits Supported (V4) : 0
+                     Use Platform Timer (V4) : 1
+               RTC_STS valid on S4 wake (V4) : 0
+                Remote Power-on capable (V4) : 0
+                 Use APIC Cluster Model (V4) : 0
+     Use APIC Physical Destination Mode (V4) : 0
+                       Hardware Reduced (V5) : 0
+                      Low Power S0 Idle (V5) : 0
+
+[074h 0116  12]               Reset Register : [Generic Address Structure]
+[074h 0116   1]                     Space ID : 01 [SystemIO]
+[075h 0117   1]                    Bit Width : 08
+[076h 0118   1]                   Bit Offset : 00
+[077h 0119   1]         Encoded Access Width : 00 [Undefined/Legacy]
+[078h 0120   8]                      Address : 0000000000000CF9
+
+[080h 0128   1]         Value to cause reset : 0F
+[081h 0129   2]    ARM Flags (decoded below) : 0000
+                              PSCI Compliant : 0
+                       Must use HVC for PSCI : 0
+
+[083h 0131   1]          FADT Minor Revision : 00
+[084h 0132   8]                 FACS Address : 0000000000000000
+[08Ch 0140   8]                 DSDT Address : 0000000000000000
+[094h 0148  12]             PM1A Event Block : [Generic Address Structure]
+[094h 0148   1]                     Space ID : 01 [SystemIO]
+[095h 0149   1]                    Bit Width : 20
+[096h 0150   1]                   Bit Offset : 00
+[097h 0151   1]         Encoded Access Width : 00 [Undefined/Legacy]
+[098h 0152   8]                      Address : 0000000000000600
+
+[0A0h 0160  12]             PM1B Event Block : [Generic Address Structure]
+[0A0h 0160   1]                     Space ID : 00 [SystemMemory]
+[0A1h 0161   1]                    Bit Width : 00
+[0A2h 0162   1]                   Bit Offset : 00
+[0A3h 0163   1]         Encoded Access Width : 00 [Undefined/Legacy]
+[0A4h 0164   8]                      Address : 0000000000000000
+
+[0ACh 0172  12]           PM1A Control Block : [Generic Address Structure]
+[0ACh 0172   1]                     Space ID : 01 [SystemIO]
+[0ADh 0173   1]                    Bit Width : 10
+[0AEh 0174   1]                   Bit Offset : 00
+[0AFh 0175   1]         Encoded Access Width : 00 [Undefined/Legacy]
+[0B0h 0176   8]                      Address : 0000000000000604
+
+[0B8h 0184  12]           PM1B Control Block : [Generic Address Structure]
+[0B8h 0184   1]                     Space ID : 00 [SystemMemory]
+[0B9h 0185   1]                    Bit Width : 00
+[0BAh 0186   1]                   Bit Offset : 00
+[0BBh 0187   1]         Encoded Access Width : 00 [Undefined/Legacy]
+[0BCh 0188   8]                      Address : 0000000000000000
+
+[0C4h 0196  12]            PM2 Control Block : [Generic Address Structure]
+[0C4h 0196   1]                     Space ID : 00 [SystemMemory]
+[0C5h 0197   1]                    Bit Width : 00
+[0C6h 0198   1]                   Bit Offset : 00
+[0C7h 0199   1]         Encoded Access Width : 00 [Undefined/Legacy]
+[0C8h 0200   8]                      Address : 0000000000000000
+
+[0D0h 0208  12]               PM Timer Block : [Generic Address Structure]
+[0D0h 0208   1]                     Space ID : 01 [SystemIO]
+[0D1h 0209   1]                    Bit Width : 20
+[0D2h 0210   1]                   Bit Offset : 00
+[0D3h 0211   1]         Encoded Access Width : 00 [Undefined/Legacy]
+[0D4h 0212   8]                      Address : 0000000000000608
+
+[0DCh 0220  12]                   GPE0 Block : [Generic Address Structure]
+[0DCh 0220   1]                     Space ID : 01 [SystemIO]
+[0DDh 0221   1]                    Bit Width : 80
+[0DEh 0222   1]                   Bit Offset : 00
+[0DFh 0223   1]         Encoded Access Width : 00 [Undefined/Legacy]
+[0E0h 0224   8]                      Address : 0000000000000620
+
+[0E8h 0232  12]                   GPE1 Block : [Generic Address Structure]
+[0E8h 0232   1]                     Space ID : 00 [SystemMemory]
+[0E9h 0233   1]                    Bit Width : 00
+[0EAh 0234   1]                   Bit Offset : 00
+[0EBh 0235   1]         Encoded Access Width : 00 [Undefined/Legacy]
+[0ECh 0236   8]                      Address : 0000000000000000
+
+
+Raw Table Data: Length 244 (0xF4)
+
+    0000: 46 41 43 50 F4 00 00 00 03 1F 42 4F 43 48 53 20  // FACP......BOCHS 
+    0010: 42 58 50 43 46 41 43 50 01 00 00 00 42 58 50 43  // BXPCFACP....BXPC
+    0020: 01 00 00 00 00 00 00 00 00 00 00 00 01 00 09 00  // ................
+    0030: B2 00 00 00 02 03 00 00 00 06 00 00 00 00 00 00  // ................
+    0040: 04 06 00 00 00 00 00 00 00 00 00 00 08 06 00 00  // ................
+    0050: 20 06 00 00 00 00 00 00 04 02 00 04 10 00 00 00  //  ...............
+    0060: FF 0F FF 0F 00 00 00 00 00 00 00 00 32 00 00 00  // ............2...
+    0070: A5 84 00 00 01 08 00 00 F9 0C 00 00 00 00 00 00  // ................
+    0080: 0F 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  // ................
+    0090: 00 00 00 00 01 20 00 00 00 06 00 00 00 00 00 00  // ..... ..........
+    00A0: 00 00 00 00 00 00 00 00 00 00 00 00 01 10 00 00  // ................
+    00B0: 04 06 00 00 00 00 00 00 00 00 00 00 00 00 00 00  // ................
+    00C0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  // ................
+    00D0: 01 20 00 00 08 06 00 00 00 00 00 00 01 80 00 00  // . ..............
+    00E0: 20 06 00 00 00 00 00 00 00 00 00 00 00 00 00 00  //  ...............
+    00F0: 00 00 00 00                                      // ....
diff --git a/tests/data/acpi/q35/FACS.acpihmat b/tests/data/acpi/q35/FACS.acpihmat
new file mode 100644
index 0000000000000000000000000000000000000000..fc67ecc40782bd7fe8921e430d7de67f0bfaad93
GIT binary patch
literal 64
PcmZ>BbPjf4ARhn#RKNjV

literal 0
HcmV?d00001

diff --git a/tests/data/acpi/q35/FACS.acpihmat.dsl b/tests/data/acpi/q35/FACS.acpihmat.dsl
new file mode 100644
index 0000000000..0bd98653ce
--- /dev/null
+++ b/tests/data/acpi/q35/FACS.acpihmat.dsl
@@ -0,0 +1,32 @@ 
+/*
+ * Intel ACPI Component Architecture
+ * AML/ASL+ Disassembler version 20190509 (64-bit version)
+ * Copyright (c) 2000 - 2019 Intel Corporation
+ * 
+ * Disassembly of tests/data/acpi/q35/FACS.acpihmat, Tue Aug  4 11:14:15 2020
+ *
+ * ACPI Data Table [FACS]
+ *
+ * Format: [HexOffset DecimalOffset ByteLength]  FieldName : FieldValue
+ */
+
+[000h 0000   4]                    Signature : "FACS"
+[004h 0004   4]                       Length : 00000040
+[008h 0008   4]           Hardware Signature : 00000000
+[00Ch 0012   4]    32 Firmware Waking Vector : 00000000
+[010h 0016   4]                  Global Lock : 00000000
+[014h 0020   4]        Flags (decoded below) : 00000000
+                      S4BIOS Support Present : 0
+                  64-bit Wake Supported (V2) : 0
+[018h 0024   8]    64 Firmware Waking Vector : 0000000000000000
+[020h 0032   1]                      Version : 00
+[021h 0033   3]                     Reserved : 000000
+[024h 0036   4]    OspmFlags (decoded below) : 00000000
+               64-bit Wake Env Required (V2) : 0
+
+Raw Table Data: Length 64 (0x40)
+
+    0000: 46 41 43 53 40 00 00 00 00 00 00 00 00 00 00 00  // FACS@...........
+    0010: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  // ................
+    0020: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  // ................
+    0030: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  // ................
diff --git a/tests/data/acpi/q35/FACS.bridge b/tests/data/acpi/q35/FACS.bridge
new file mode 100644
index 0000000000000000000000000000000000000000..fc67ecc40782bd7fe8921e430d7de67f0bfaad93
GIT binary patch
literal 64
PcmZ>BbPjf4ARhn#RKNjV

literal 0
HcmV?d00001

diff --git a/tests/data/acpi/q35/FACS.bridge.dsl b/tests/data/acpi/q35/FACS.bridge.dsl
new file mode 100644
index 0000000000..116dce1f2d
--- /dev/null
+++ b/tests/data/acpi/q35/FACS.bridge.dsl
@@ -0,0 +1,32 @@ 
+/*
+ * Intel ACPI Component Architecture
+ * AML/ASL+ Disassembler version 20190509 (64-bit version)
+ * Copyright (c) 2000 - 2019 Intel Corporation
+ * 
+ * Disassembly of tests/data/acpi/q35/FACS.bridge, Tue Aug  4 11:14:15 2020
+ *
+ * ACPI Data Table [FACS]
+ *
+ * Format: [HexOffset DecimalOffset ByteLength]  FieldName : FieldValue
+ */
+
+[000h 0000   4]                    Signature : "FACS"
+[004h 0004   4]                       Length : 00000040
+[008h 0008   4]           Hardware Signature : 00000000
+[00Ch 0012   4]    32 Firmware Waking Vector : 00000000
+[010h 0016   4]                  Global Lock : 00000000
+[014h 0020   4]        Flags (decoded below) : 00000000
+                      S4BIOS Support Present : 0
+                  64-bit Wake Supported (V2) : 0
+[018h 0024   8]    64 Firmware Waking Vector : 0000000000000000
+[020h 0032   1]                      Version : 00
+[021h 0033   3]                     Reserved : 000000
+[024h 0036   4]    OspmFlags (decoded below) : 00000000
+               64-bit Wake Env Required (V2) : 0
+
+Raw Table Data: Length 64 (0x40)
+
+    0000: 46 41 43 53 40 00 00 00 00 00 00 00 00 00 00 00  // FACS@...........
+    0010: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  // ................
+    0020: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  // ................
+    0030: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  // ................
diff --git a/tests/data/acpi/q35/FACS.cphp b/tests/data/acpi/q35/FACS.cphp
new file mode 100644
index 0000000000000000000000000000000000000000..fc67ecc40782bd7fe8921e430d7de67f0bfaad93
GIT binary patch
literal 64
PcmZ>BbPjf4ARhn#RKNjV

literal 0
HcmV?d00001

diff --git a/tests/data/acpi/q35/FACS.cphp.dsl b/tests/data/acpi/q35/FACS.cphp.dsl
new file mode 100644
index 0000000000..580d502491
--- /dev/null
+++ b/tests/data/acpi/q35/FACS.cphp.dsl
@@ -0,0 +1,32 @@ 
+/*
+ * Intel ACPI Component Architecture
+ * AML/ASL+ Disassembler version 20190509 (64-bit version)
+ * Copyright (c) 2000 - 2019 Intel Corporation
+ * 
+ * Disassembly of tests/data/acpi/q35/FACS.cphp, Tue Aug  4 11:14:15 2020
+ *
+ * ACPI Data Table [FACS]
+ *
+ * Format: [HexOffset DecimalOffset ByteLength]  FieldName : FieldValue
+ */
+
+[000h 0000   4]                    Signature : "FACS"
+[004h 0004   4]                       Length : 00000040
+[008h 0008   4]           Hardware Signature : 00000000
+[00Ch 0012   4]    32 Firmware Waking Vector : 00000000
+[010h 0016   4]                  Global Lock : 00000000
+[014h 0020   4]        Flags (decoded below) : 00000000
+                      S4BIOS Support Present : 0
+                  64-bit Wake Supported (V2) : 0
+[018h 0024   8]    64 Firmware Waking Vector : 0000000000000000
+[020h 0032   1]                      Version : 00
+[021h 0033   3]                     Reserved : 000000
+[024h 0036   4]    OspmFlags (decoded below) : 00000000
+               64-bit Wake Env Required (V2) : 0
+
+Raw Table Data: Length 64 (0x40)
+
+    0000: 46 41 43 53 40 00 00 00 00 00 00 00 00 00 00 00  // FACS@...........
+    0010: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  // ................
+    0020: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  // ................
+    0030: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  // ................
diff --git a/tests/data/acpi/q35/FACS.dimmpxm b/tests/data/acpi/q35/FACS.dimmpxm
new file mode 100644
index 0000000000000000000000000000000000000000..fc67ecc40782bd7fe8921e430d7de67f0bfaad93
GIT binary patch
literal 64
PcmZ>BbPjf4ARhn#RKNjV

literal 0
HcmV?d00001

diff --git a/tests/data/acpi/q35/FACS.dimmpxm.dsl b/tests/data/acpi/q35/FACS.dimmpxm.dsl
new file mode 100644
index 0000000000..4106387866
--- /dev/null
+++ b/tests/data/acpi/q35/FACS.dimmpxm.dsl
@@ -0,0 +1,32 @@ 
+/*
+ * Intel ACPI Component Architecture
+ * AML/ASL+ Disassembler version 20190509 (64-bit version)
+ * Copyright (c) 2000 - 2019 Intel Corporation
+ * 
+ * Disassembly of tests/data/acpi/q35/FACS.dimmpxm, Tue Aug  4 11:14:15 2020
+ *
+ * ACPI Data Table [FACS]
+ *
+ * Format: [HexOffset DecimalOffset ByteLength]  FieldName : FieldValue
+ */
+
+[000h 0000   4]                    Signature : "FACS"
+[004h 0004   4]                       Length : 00000040
+[008h 0008   4]           Hardware Signature : 00000000
+[00Ch 0012   4]    32 Firmware Waking Vector : 00000000
+[010h 0016   4]                  Global Lock : 00000000
+[014h 0020   4]        Flags (decoded below) : 00000000
+                      S4BIOS Support Present : 0
+                  64-bit Wake Supported (V2) : 0
+[018h 0024   8]    64 Firmware Waking Vector : 0000000000000000
+[020h 0032   1]                      Version : 00
+[021h 0033   3]                     Reserved : 000000
+[024h 0036   4]    OspmFlags (decoded below) : 00000000
+               64-bit Wake Env Required (V2) : 0
+
+Raw Table Data: Length 64 (0x40)
+
+    0000: 46 41 43 53 40 00 00 00 00 00 00 00 00 00 00 00  // FACS@...........
+    0010: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  // ................
+    0020: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  // ................
+    0030: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  // ................
diff --git a/tests/data/acpi/q35/FACS.dsl b/tests/data/acpi/q35/FACS.dsl
new file mode 100644
index 0000000000..0595b4ddb9
--- /dev/null
+++ b/tests/data/acpi/q35/FACS.dsl
@@ -0,0 +1,32 @@ 
+/*
+ * Intel ACPI Component Architecture
+ * AML/ASL+ Disassembler version 20190509 (64-bit version)
+ * Copyright (c) 2000 - 2019 Intel Corporation
+ * 
+ * Disassembly of tests/data/acpi/q35/FACS.tis, Mon Sep 28 17:24:38 2020
+ *
+ * ACPI Data Table [FACS]
+ *
+ * Format: [HexOffset DecimalOffset ByteLength]  FieldName : FieldValue
+ */
+
+[000h 0000   4]                    Signature : "FACS"
+[004h 0004   4]                       Length : 00000040
+[008h 0008   4]           Hardware Signature : 00000000
+[00Ch 0012   4]    32 Firmware Waking Vector : 00000000
+[010h 0016   4]                  Global Lock : 00000000
+[014h 0020   4]        Flags (decoded below) : 00000000
+                      S4BIOS Support Present : 0
+                  64-bit Wake Supported (V2) : 0
+[018h 0024   8]    64 Firmware Waking Vector : 0000000000000000
+[020h 0032   1]                      Version : 00
+[021h 0033   3]                     Reserved : 000000
+[024h 0036   4]    OspmFlags (decoded below) : 00000000
+               64-bit Wake Env Required (V2) : 0
+
+Raw Table Data: Length 64 (0x40)
+
+    0000: 46 41 43 53 40 00 00 00 00 00 00 00 00 00 00 00  // FACS@...........
+    0010: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  // ................
+    0020: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  // ................
+    0030: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  // ................
diff --git a/tests/data/acpi/q35/FACS.ipmibt b/tests/data/acpi/q35/FACS.ipmibt
new file mode 100644
index 0000000000000000000000000000000000000000..fc67ecc40782bd7fe8921e430d7de67f0bfaad93
GIT binary patch
literal 64
PcmZ>BbPjf4ARhn#RKNjV

literal 0
HcmV?d00001

diff --git a/tests/data/acpi/q35/FACS.ipmibt.dsl b/tests/data/acpi/q35/FACS.ipmibt.dsl
new file mode 100644
index 0000000000..8c019f3475
--- /dev/null
+++ b/tests/data/acpi/q35/FACS.ipmibt.dsl
@@ -0,0 +1,32 @@ 
+/*
+ * Intel ACPI Component Architecture
+ * AML/ASL+ Disassembler version 20190509 (64-bit version)
+ * Copyright (c) 2000 - 2019 Intel Corporation
+ * 
+ * Disassembly of tests/data/acpi/q35/FACS.ipmibt, Tue Aug  4 11:14:15 2020
+ *
+ * ACPI Data Table [FACS]
+ *
+ * Format: [HexOffset DecimalOffset ByteLength]  FieldName : FieldValue
+ */
+
+[000h 0000   4]                    Signature : "FACS"
+[004h 0004   4]                       Length : 00000040
+[008h 0008   4]           Hardware Signature : 00000000
+[00Ch 0012   4]    32 Firmware Waking Vector : 00000000
+[010h 0016   4]                  Global Lock : 00000000
+[014h 0020   4]        Flags (decoded below) : 00000000
+                      S4BIOS Support Present : 0
+                  64-bit Wake Supported (V2) : 0
+[018h 0024   8]    64 Firmware Waking Vector : 0000000000000000
+[020h 0032   1]                      Version : 00
+[021h 0033   3]                     Reserved : 000000
+[024h 0036   4]    OspmFlags (decoded below) : 00000000
+               64-bit Wake Env Required (V2) : 0
+
+Raw Table Data: Length 64 (0x40)
+
+    0000: 46 41 43 53 40 00 00 00 00 00 00 00 00 00 00 00  // FACS@...........
+    0010: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  // ................
+    0020: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  // ................
+    0030: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  // ................
diff --git a/tests/data/acpi/q35/FACS.memhp b/tests/data/acpi/q35/FACS.memhp
new file mode 100644
index 0000000000000000000000000000000000000000..fc67ecc40782bd7fe8921e430d7de67f0bfaad93
GIT binary patch
literal 64
PcmZ>BbPjf4ARhn#RKNjV

literal 0
HcmV?d00001

diff --git a/tests/data/acpi/q35/FACS.memhp.dsl b/tests/data/acpi/q35/FACS.memhp.dsl
new file mode 100644
index 0000000000..fb6d84c152
--- /dev/null
+++ b/tests/data/acpi/q35/FACS.memhp.dsl
@@ -0,0 +1,32 @@ 
+/*
+ * Intel ACPI Component Architecture
+ * AML/ASL+ Disassembler version 20190509 (64-bit version)
+ * Copyright (c) 2000 - 2019 Intel Corporation
+ * 
+ * Disassembly of tests/data/acpi/q35/FACS.memhp, Tue Aug  4 11:14:15 2020
+ *
+ * ACPI Data Table [FACS]
+ *
+ * Format: [HexOffset DecimalOffset ByteLength]  FieldName : FieldValue
+ */
+
+[000h 0000   4]                    Signature : "FACS"
+[004h 0004   4]                       Length : 00000040
+[008h 0008   4]           Hardware Signature : 00000000
+[00Ch 0012   4]    32 Firmware Waking Vector : 00000000
+[010h 0016   4]                  Global Lock : 00000000
+[014h 0020   4]        Flags (decoded below) : 00000000
+                      S4BIOS Support Present : 0
+                  64-bit Wake Supported (V2) : 0
+[018h 0024   8]    64 Firmware Waking Vector : 0000000000000000
+[020h 0032   1]                      Version : 00
+[021h 0033   3]                     Reserved : 000000
+[024h 0036   4]    OspmFlags (decoded below) : 00000000
+               64-bit Wake Env Required (V2) : 0
+
+Raw Table Data: Length 64 (0x40)
+
+    0000: 46 41 43 53 40 00 00 00 00 00 00 00 00 00 00 00  // FACS@...........
+    0010: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  // ................
+    0020: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  // ................
+    0030: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  // ................
diff --git a/tests/data/acpi/q35/FACS.mmio64 b/tests/data/acpi/q35/FACS.mmio64
new file mode 100644
index 0000000000000000000000000000000000000000..fc67ecc40782bd7fe8921e430d7de67f0bfaad93
GIT binary patch
literal 64
PcmZ>BbPjf4ARhn#RKNjV

literal 0
HcmV?d00001

diff --git a/tests/data/acpi/q35/FACS.mmio64.dsl b/tests/data/acpi/q35/FACS.mmio64.dsl
new file mode 100644
index 0000000000..1a20060749
--- /dev/null
+++ b/tests/data/acpi/q35/FACS.mmio64.dsl
@@ -0,0 +1,32 @@ 
+/*
+ * Intel ACPI Component Architecture
+ * AML/ASL+ Disassembler version 20190509 (64-bit version)
+ * Copyright (c) 2000 - 2019 Intel Corporation
+ * 
+ * Disassembly of tests/data/acpi/q35/FACS.mmio64, Tue Aug  4 11:14:15 2020
+ *
+ * ACPI Data Table [FACS]
+ *
+ * Format: [HexOffset DecimalOffset ByteLength]  FieldName : FieldValue
+ */
+
+[000h 0000   4]                    Signature : "FACS"
+[004h 0004   4]                       Length : 00000040
+[008h 0008   4]           Hardware Signature : 00000000
+[00Ch 0012   4]    32 Firmware Waking Vector : 00000000
+[010h 0016   4]                  Global Lock : 00000000
+[014h 0020   4]        Flags (decoded below) : 00000000
+                      S4BIOS Support Present : 0
+                  64-bit Wake Supported (V2) : 0
+[018h 0024   8]    64 Firmware Waking Vector : 0000000000000000
+[020h 0032   1]                      Version : 00
+[021h 0033   3]                     Reserved : 000000
+[024h 0036   4]    OspmFlags (decoded below) : 00000000
+               64-bit Wake Env Required (V2) : 0
+
+Raw Table Data: Length 64 (0x40)
+
+    0000: 46 41 43 53 40 00 00 00 00 00 00 00 00 00 00 00  // FACS@...........
+    0010: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  // ................
+    0020: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  // ................
+    0030: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  // ................
diff --git a/tests/data/acpi/q35/FACS.numamem b/tests/data/acpi/q35/FACS.numamem
new file mode 100644
index 0000000000000000000000000000000000000000..fc67ecc40782bd7fe8921e430d7de67f0bfaad93
GIT binary patch
literal 64
PcmZ>BbPjf4ARhn#RKNjV

literal 0
HcmV?d00001

diff --git a/tests/data/acpi/q35/FACS.numamem.dsl b/tests/data/acpi/q35/FACS.numamem.dsl
new file mode 100644
index 0000000000..740e0bca9a
--- /dev/null
+++ b/tests/data/acpi/q35/FACS.numamem.dsl
@@ -0,0 +1,32 @@ 
+/*
+ * Intel ACPI Component Architecture
+ * AML/ASL+ Disassembler version 20190509 (64-bit version)
+ * Copyright (c) 2000 - 2019 Intel Corporation
+ * 
+ * Disassembly of tests/data/acpi/q35/FACS.numamem, Tue Aug  4 11:14:15 2020
+ *
+ * ACPI Data Table [FACS]
+ *
+ * Format: [HexOffset DecimalOffset ByteLength]  FieldName : FieldValue
+ */
+
+[000h 0000   4]                    Signature : "FACS"
+[004h 0004   4]                       Length : 00000040
+[008h 0008   4]           Hardware Signature : 00000000
+[00Ch 0012   4]    32 Firmware Waking Vector : 00000000
+[010h 0016   4]                  Global Lock : 00000000
+[014h 0020   4]        Flags (decoded below) : 00000000
+                      S4BIOS Support Present : 0
+                  64-bit Wake Supported (V2) : 0
+[018h 0024   8]    64 Firmware Waking Vector : 0000000000000000
+[020h 0032   1]                      Version : 00
+[021h 0033   3]                     Reserved : 000000
+[024h 0036   4]    OspmFlags (decoded below) : 00000000
+               64-bit Wake Env Required (V2) : 0
+
+Raw Table Data: Length 64 (0x40)
+
+    0000: 46 41 43 53 40 00 00 00 00 00 00 00 00 00 00 00  // FACS@...........
+    0010: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  // ................
+    0020: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  // ................
+    0030: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  // ................
diff --git a/tests/data/acpi/q35/FACS.tis b/tests/data/acpi/q35/FACS.tis
new file mode 100644
index 0000000000000000000000000000000000000000..fc67ecc40782bd7fe8921e430d7de67f0bfaad93
GIT binary patch
literal 64
PcmZ>BbPjf4ARhn#RKNjV

literal 0
HcmV?d00001

diff --git a/tests/data/acpi/q35/FACS.tis.dsl b/tests/data/acpi/q35/FACS.tis.dsl
new file mode 100644
index 0000000000..cb35bde06c
--- /dev/null
+++ b/tests/data/acpi/q35/FACS.tis.dsl
@@ -0,0 +1,32 @@ 
+/*
+ * Intel ACPI Component Architecture
+ * AML/ASL+ Disassembler version 20190509 (64-bit version)
+ * Copyright (c) 2000 - 2019 Intel Corporation
+ * 
+ * Disassembly of tests/data/acpi/q35/FACS.tis, Tue Aug  4 11:14:15 2020
+ *
+ * ACPI Data Table [FACS]
+ *
+ * Format: [HexOffset DecimalOffset ByteLength]  FieldName : FieldValue
+ */
+
+[000h 0000   4]                    Signature : "FACS"
+[004h 0004   4]                       Length : 00000040
+[008h 0008   4]           Hardware Signature : 00000000
+[00Ch 0012   4]    32 Firmware Waking Vector : 00000000
+[010h 0016   4]                  Global Lock : 00000000
+[014h 0020   4]        Flags (decoded below) : 00000000
+                      S4BIOS Support Present : 0
+                  64-bit Wake Supported (V2) : 0
+[018h 0024   8]    64 Firmware Waking Vector : 0000000000000000
+[020h 0032   1]                      Version : 00
+[021h 0033   3]                     Reserved : 000000
+[024h 0036   4]    OspmFlags (decoded below) : 00000000
+               64-bit Wake Env Required (V2) : 0
+
+Raw Table Data: Length 64 (0x40)
+
+    0000: 46 41 43 53 40 00 00 00 00 00 00 00 00 00 00 00  // FACS@...........
+    0010: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  // ................
+    0020: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  // ................
+    0030: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  // ................
diff --git a/tests/data/acpi/q35/HMAT.acpihmat.dsl b/tests/data/acpi/q35/HMAT.acpihmat.dsl
new file mode 100644
index 0000000000..4abaa94f78
--- /dev/null
+++ b/tests/data/acpi/q35/HMAT.acpihmat.dsl
@@ -0,0 +1,132 @@ 
+/*
+ * Intel ACPI Component Architecture
+ * AML/ASL+ Disassembler version 20190509 (64-bit version)
+ * Copyright (c) 2000 - 2019 Intel Corporation
+ * 
+ * Disassembly of tests/data/acpi/q35/HMAT.acpihmat, Tue Aug  4 11:14:15 2020
+ *
+ * ACPI Data Table [HMAT]
+ *
+ * Format: [HexOffset DecimalOffset ByteLength]  FieldName : FieldValue
+ */
+
+[000h 0000   4]                    Signature : "HMAT"    [Heterogeneous Memory Attributes Table]
+[004h 0004   4]                 Table Length : 00000118
+[008h 0008   1]                     Revision : 02
+[009h 0009   1]                     Checksum : 98
+[00Ah 0010   6]                       Oem ID : "BOCHS "
+[010h 0016   8]                 Oem Table ID : "BXPCHMAT"
+[018h 0024   4]                 Oem Revision : 00000001
+[01Ch 0028   4]              Asl Compiler ID : "BXPC"
+[020h 0032   4]        Asl Compiler Revision : 00000001
+
+[024h 0036   4]                     Reserved : 00000000
+
+[028h 0040   2]               Structure Type : 0000 [Memory Proximity Domain Attributes]
+[02Ah 0042   2]                     Reserved : 0000
+[02Ch 0044   4]                       Length : 00000028
+[030h 0048   2]        Flags (decoded below) : 0001
+            Processor Proximity Domain Valid : 1
+[032h 0050   2]                    Reserved1 : 0000
+[034h 0052   4]   Processor Proximity Domain : 00000000
+[038h 0056   4]      Memory Proximity Domain : 00000000
+[03Ch 0060   4]                    Reserved2 : 00000000
+[040h 0064   8]                    Reserved3 : 0000000000000000
+[048h 0072   8]                    Reserved4 : 0000000000000000
+
+[050h 0080   2]               Structure Type : 0000 [Memory Proximity Domain Attributes]
+[052h 0082   2]                     Reserved : 0000
+[054h 0084   4]                       Length : 00000028
+[058h 0088   2]        Flags (decoded below) : 0001
+            Processor Proximity Domain Valid : 1
+[05Ah 0090   2]                    Reserved1 : 0000
+[05Ch 0092   4]   Processor Proximity Domain : 00000000
+[060h 0096   4]      Memory Proximity Domain : 00000001
+[064h 0100   4]                    Reserved2 : 00000000
+[068h 0104   8]                    Reserved3 : 0000000000000000
+[070h 0112   8]                    Reserved4 : 0000000000000000
+
+[078h 0120   2]               Structure Type : 0001 [System Locality Latency and Bandwidth Information]
+[07Ah 0122   2]                     Reserved : 0000
+[07Ch 0124   4]                       Length : 00000030
+[080h 0128   1]        Flags (decoded below) : 00
+                            Memory Hierarchy : 0
+[081h 0129   1]                    Data Type : 00
+[082h 0130   2]                    Reserved1 : 0000
+[084h 0132   4] Initiator Proximity Domains # : 00000001
+[088h 0136   4]   Target Proximity Domains # : 00000002
+[08Ch 0140   4]                    Reserved2 : 00000000
+[090h 0144   8]              Entry Base Unit : 00000000000003E8
+[098h 0152   4] Initiator Proximity Domain List : 00000000
+[09Ch 0156   4] Target Proximity Domain List : 00000000
+[0A0h 0160   4] Target Proximity Domain List : 00000001
+[0A4h 0164   2]                        Entry : 0001
+[0A6h 0166   2]                        Entry : FFFE
+
+[0A8h 0168   2]               Structure Type : 0001 [System Locality Latency and Bandwidth Information]
+[0AAh 0170   2]                     Reserved : 0000
+[0ACh 0172   4]                       Length : 00000030
+[0B0h 0176   1]        Flags (decoded below) : 00
+                            Memory Hierarchy : 0
+[0B1h 0177   1]                    Data Type : 03
+[0B2h 0178   2]                    Reserved1 : 0000
+[0B4h 0180   4] Initiator Proximity Domains # : 00000001
+[0B8h 0184   4]   Target Proximity Domains # : 00000002
+[0BCh 0188   4]                    Reserved2 : 00000000
+[0C0h 0192   8]              Entry Base Unit : 0000000000000001
+[0C8h 0200   4] Initiator Proximity Domain List : 00000000
+[0CCh 0204   4] Target Proximity Domain List : 00000000
+[0D0h 0208   4] Target Proximity Domain List : 00000001
+[0D4h 0212   2]                        Entry : FFFE
+[0D6h 0214   2]                        Entry : 7FFF
+
+[0D8h 0216   2]               Structure Type : 0002 [Memory Side Cache Information]
+[0DAh 0218   2]                     Reserved : 0000
+[0DCh 0220   4]                       Length : 00000020
+[0E0h 0224   4]      Memory Proximity Domain : 00000000
+[0E4h 0228   4]                    Reserved1 : 00000000
+[0E8h 0232   8]       Memory Side Cache Size : 0000000000002800
+[0F0h 0240   4] Cache Attributes (decoded below) : 00081111
+                          Total Cache Levels : 1
+                                 Cache Level : 1
+                         Cache Associativity : 1
+                                Write Policy : 1
+                             Cache Line Size : 0008
+[0F4h 0244   2]                    Reserved2 : 0000
+[0F6h 0246   2]              SMBIOS Handle # : 0000
+
+[0F8h 0248   2]               Structure Type : 0002 [Memory Side Cache Information]
+[0FAh 0250   2]                     Reserved : 0000
+[0FCh 0252   4]                       Length : 00000020
+[100h 0256   4]      Memory Proximity Domain : 00000001
+[104h 0260   4]                    Reserved1 : 00000000
+[108h 0264   8]       Memory Side Cache Size : 0000000000002800
+[110h 0272   4] Cache Attributes (decoded below) : 00081111
+                          Total Cache Levels : 1
+                                 Cache Level : 1
+                         Cache Associativity : 1
+                                Write Policy : 1
+                             Cache Line Size : 0008
+[114h 0276   2]                    Reserved2 : 0000
+[116h 0278   2]              SMBIOS Handle # : 0000
+
+Raw Table Data: Length 280 (0x118)
+
+    0000: 48 4D 41 54 18 01 00 00 02 98 42 4F 43 48 53 20  // HMAT......BOCHS 
+    0010: 42 58 50 43 48 4D 41 54 01 00 00 00 42 58 50 43  // BXPCHMAT....BXPC
+    0020: 01 00 00 00 00 00 00 00 00 00 00 00 28 00 00 00  // ............(...
+    0030: 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  // ................
+    0040: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  // ................
+    0050: 00 00 00 00 28 00 00 00 01 00 00 00 00 00 00 00  // ....(...........
+    0060: 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  // ................
+    0070: 00 00 00 00 00 00 00 00 01 00 00 00 30 00 00 00  // ............0...
+    0080: 00 00 00 00 01 00 00 00 02 00 00 00 00 00 00 00  // ................
+    0090: E8 03 00 00 00 00 00 00 00 00 00 00 00 00 00 00  // ................
+    00A0: 01 00 00 00 01 00 FE FF 01 00 00 00 30 00 00 00  // ............0...
+    00B0: 00 03 00 00 01 00 00 00 02 00 00 00 00 00 00 00  // ................
+    00C0: 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  // ................
+    00D0: 01 00 00 00 FE FF FF 7F 02 00 00 00 20 00 00 00  // ............ ...
+    00E0: 00 00 00 00 00 00 00 00 00 28 00 00 00 00 00 00  // .........(......
+    00F0: 11 11 08 00 00 00 00 00 02 00 00 00 20 00 00 00  // ............ ...
+    0100: 01 00 00 00 00 00 00 00 00 28 00 00 00 00 00 00  // .........(......
+    0110: 11 11 08 00 00 00 00 00                          // ........
diff --git a/tests/data/acpi/q35/HMAT.dsl b/tests/data/acpi/q35/HMAT.dsl
new file mode 100644
index 0000000000..43bc9adc98
--- /dev/null
+++ b/tests/data/acpi/q35/HMAT.dsl
@@ -0,0 +1,132 @@ 
+/*
+ * Intel ACPI Component Architecture
+ * AML/ASL+ Disassembler version 20190509 (64-bit version)
+ * Copyright (c) 2000 - 2019 Intel Corporation
+ * 
+ * Disassembly of tests/data/acpi/q35/HMAT.acpihmat, Mon Sep 28 17:24:38 2020
+ *
+ * ACPI Data Table [HMAT]
+ *
+ * Format: [HexOffset DecimalOffset ByteLength]  FieldName : FieldValue
+ */
+
+[000h 0000   4]                    Signature : "HMAT"    [Heterogeneous Memory Attributes Table]
+[004h 0004   4]                 Table Length : 00000118
+[008h 0008   1]                     Revision : 02
+[009h 0009   1]                     Checksum : 98
+[00Ah 0010   6]                       Oem ID : "BOCHS "
+[010h 0016   8]                 Oem Table ID : "BXPCHMAT"
+[018h 0024   4]                 Oem Revision : 00000001
+[01Ch 0028   4]              Asl Compiler ID : "BXPC"
+[020h 0032   4]        Asl Compiler Revision : 00000001
+
+[024h 0036   4]                     Reserved : 00000000
+
+[028h 0040   2]               Structure Type : 0000 [Memory Proximity Domain Attributes]
+[02Ah 0042   2]                     Reserved : 0000
+[02Ch 0044   4]                       Length : 00000028
+[030h 0048   2]        Flags (decoded below) : 0001
+            Processor Proximity Domain Valid : 1
+[032h 0050   2]                    Reserved1 : 0000
+[034h 0052   4]   Processor Proximity Domain : 00000000
+[038h 0056   4]      Memory Proximity Domain : 00000000
+[03Ch 0060   4]                    Reserved2 : 00000000
+[040h 0064   8]                    Reserved3 : 0000000000000000
+[048h 0072   8]                    Reserved4 : 0000000000000000
+
+[050h 0080   2]               Structure Type : 0000 [Memory Proximity Domain Attributes]
+[052h 0082   2]                     Reserved : 0000
+[054h 0084   4]                       Length : 00000028
+[058h 0088   2]        Flags (decoded below) : 0001
+            Processor Proximity Domain Valid : 1
+[05Ah 0090   2]                    Reserved1 : 0000
+[05Ch 0092   4]   Processor Proximity Domain : 00000000
+[060h 0096   4]      Memory Proximity Domain : 00000001
+[064h 0100   4]                    Reserved2 : 00000000
+[068h 0104   8]                    Reserved3 : 0000000000000000
+[070h 0112   8]                    Reserved4 : 0000000000000000
+
+[078h 0120   2]               Structure Type : 0001 [System Locality Latency and Bandwidth Information]
+[07Ah 0122   2]                     Reserved : 0000
+[07Ch 0124   4]                       Length : 00000030
+[080h 0128   1]        Flags (decoded below) : 00
+                            Memory Hierarchy : 0
+[081h 0129   1]                    Data Type : 00
+[082h 0130   2]                    Reserved1 : 0000
+[084h 0132   4] Initiator Proximity Domains # : 00000001
+[088h 0136   4]   Target Proximity Domains # : 00000002
+[08Ch 0140   4]                    Reserved2 : 00000000
+[090h 0144   8]              Entry Base Unit : 00000000000003E8
+[098h 0152   4] Initiator Proximity Domain List : 00000000
+[09Ch 0156   4] Target Proximity Domain List : 00000000
+[0A0h 0160   4] Target Proximity Domain List : 00000001
+[0A4h 0164   2]                        Entry : 0001
+[0A6h 0166   2]                        Entry : FFFE
+
+[0A8h 0168   2]               Structure Type : 0001 [System Locality Latency and Bandwidth Information]
+[0AAh 0170   2]                     Reserved : 0000
+[0ACh 0172   4]                       Length : 00000030
+[0B0h 0176   1]        Flags (decoded below) : 00
+                            Memory Hierarchy : 0
+[0B1h 0177   1]                    Data Type : 03
+[0B2h 0178   2]                    Reserved1 : 0000
+[0B4h 0180   4] Initiator Proximity Domains # : 00000001
+[0B8h 0184   4]   Target Proximity Domains # : 00000002
+[0BCh 0188   4]                    Reserved2 : 00000000
+[0C0h 0192   8]              Entry Base Unit : 0000000000000001
+[0C8h 0200   4] Initiator Proximity Domain List : 00000000
+[0CCh 0204   4] Target Proximity Domain List : 00000000
+[0D0h 0208   4] Target Proximity Domain List : 00000001
+[0D4h 0212   2]                        Entry : FFFE
+[0D6h 0214   2]                        Entry : 7FFF
+
+[0D8h 0216   2]               Structure Type : 0002 [Memory Side Cache Information]
+[0DAh 0218   2]                     Reserved : 0000
+[0DCh 0220   4]                       Length : 00000020
+[0E0h 0224   4]      Memory Proximity Domain : 00000000
+[0E4h 0228   4]                    Reserved1 : 00000000
+[0E8h 0232   8]       Memory Side Cache Size : 0000000000002800
+[0F0h 0240   4] Cache Attributes (decoded below) : 00081111
+                          Total Cache Levels : 1
+                                 Cache Level : 1
+                         Cache Associativity : 1
+                                Write Policy : 1
+                             Cache Line Size : 0008
+[0F4h 0244   2]                    Reserved2 : 0000
+[0F6h 0246   2]              SMBIOS Handle # : 0000
+
+[0F8h 0248   2]               Structure Type : 0002 [Memory Side Cache Information]
+[0FAh 0250   2]                     Reserved : 0000
+[0FCh 0252   4]                       Length : 00000020
+[100h 0256   4]      Memory Proximity Domain : 00000001
+[104h 0260   4]                    Reserved1 : 00000000
+[108h 0264   8]       Memory Side Cache Size : 0000000000002800
+[110h 0272   4] Cache Attributes (decoded below) : 00081111
+                          Total Cache Levels : 1
+                                 Cache Level : 1
+                         Cache Associativity : 1
+                                Write Policy : 1
+                             Cache Line Size : 0008
+[114h 0276   2]                    Reserved2 : 0000
+[116h 0278   2]              SMBIOS Handle # : 0000
+
+Raw Table Data: Length 280 (0x118)
+
+    0000: 48 4D 41 54 18 01 00 00 02 98 42 4F 43 48 53 20  // HMAT......BOCHS 
+    0010: 42 58 50 43 48 4D 41 54 01 00 00 00 42 58 50 43  // BXPCHMAT....BXPC
+    0020: 01 00 00 00 00 00 00 00 00 00 00 00 28 00 00 00  // ............(...
+    0030: 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  // ................
+    0040: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  // ................
+    0050: 00 00 00 00 28 00 00 00 01 00 00 00 00 00 00 00  // ....(...........
+    0060: 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  // ................
+    0070: 00 00 00 00 00 00 00 00 01 00 00 00 30 00 00 00  // ............0...
+    0080: 00 00 00 00 01 00 00 00 02 00 00 00 00 00 00 00  // ................
+    0090: E8 03 00 00 00 00 00 00 00 00 00 00 00 00 00 00  // ................
+    00A0: 01 00 00 00 01 00 FE FF 01 00 00 00 30 00 00 00  // ............0...
+    00B0: 00 03 00 00 01 00 00 00 02 00 00 00 00 00 00 00  // ................
+    00C0: 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  // ................
+    00D0: 01 00 00 00 FE FF FF 7F 02 00 00 00 20 00 00 00  // ............ ...
+    00E0: 00 00 00 00 00 00 00 00 00 28 00 00 00 00 00 00  // .........(......
+    00F0: 11 11 08 00 00 00 00 00 02 00 00 00 20 00 00 00  // ............ ...
+    0100: 01 00 00 00 00 00 00 00 00 28 00 00 00 00 00 00  // .........(......
+    0110: 11 11 08 00 00 00 00 00                          // ........
diff --git a/tests/data/acpi/q35/HPET.acpihmat b/tests/data/acpi/q35/HPET.acpihmat
new file mode 100644
index 0000000000000000000000000000000000000000..df689b8f99c1c43cfd7d63bdede3bcdfd23b7de1
GIT binary patch
literal 56
xcmeYWa1F6wU|?WmcJg=j2v%^42ypfQiZKGkKx`1rxTviGNCClxe-N610RT2D3IPBB

literal 0
HcmV?d00001

diff --git a/tests/data/acpi/q35/HPET.acpihmat.dsl b/tests/data/acpi/q35/HPET.acpihmat.dsl
new file mode 100644
index 0000000000..9806b81069
--- /dev/null
+++ b/tests/data/acpi/q35/HPET.acpihmat.dsl
@@ -0,0 +1,43 @@ 
+/*
+ * Intel ACPI Component Architecture
+ * AML/ASL+ Disassembler version 20190509 (64-bit version)
+ * Copyright (c) 2000 - 2019 Intel Corporation
+ * 
+ * Disassembly of tests/data/acpi/q35/HPET.acpihmat, Tue Aug  4 11:14:15 2020
+ *
+ * ACPI Data Table [HPET]
+ *
+ * Format: [HexOffset DecimalOffset ByteLength]  FieldName : FieldValue
+ */
+
+[000h 0000   4]                    Signature : "HPET"    [High Precision Event Timer table]
+[004h 0004   4]                 Table Length : 00000038
+[008h 0008   1]                     Revision : 01
+[009h 0009   1]                     Checksum : 03
+[00Ah 0010   6]                       Oem ID : "BOCHS "
+[010h 0016   8]                 Oem Table ID : "BXPCHPET"
+[018h 0024   4]                 Oem Revision : 00000001
+[01Ch 0028   4]              Asl Compiler ID : "BXPC"
+[020h 0032   4]        Asl Compiler Revision : 00000001
+
+[024h 0036   4]            Hardware Block ID : 8086A201
+
+[028h 0040  12]         Timer Block Register : [Generic Address Structure]
+[028h 0040   1]                     Space ID : 00 [SystemMemory]
+[029h 0041   1]                    Bit Width : 00
+[02Ah 0042   1]                   Bit Offset : 00
+[02Bh 0043   1]         Encoded Access Width : 00 [Undefined/Legacy]
+[02Ch 0044   8]                      Address : 00000000FED00000
+
+[034h 0052   1]              Sequence Number : 00
+[035h 0053   2]          Minimum Clock Ticks : 0000
+[037h 0055   1]        Flags (decoded below) : 00
+                             4K Page Protect : 0
+                            64K Page Protect : 0
+
+Raw Table Data: Length 56 (0x38)
+
+    0000: 48 50 45 54 38 00 00 00 01 03 42 4F 43 48 53 20  // HPET8.....BOCHS 
+    0010: 42 58 50 43 48 50 45 54 01 00 00 00 42 58 50 43  // BXPCHPET....BXPC
+    0020: 01 00 00 00 01 A2 86 80 00 00 00 00 00 00 D0 FE  // ................
+    0030: 00 00 00 00 00 00 00 00                          // ........
diff --git a/tests/data/acpi/q35/HPET.bridge b/tests/data/acpi/q35/HPET.bridge
new file mode 100644
index 0000000000000000000000000000000000000000..df689b8f99c1c43cfd7d63bdede3bcdfd23b7de1
GIT binary patch
literal 56
xcmeYWa1F6wU|?WmcJg=j2v%^42ypfQiZKGkKx`1rxTviGNCClxe-N610RT2D3IPBB

literal 0
HcmV?d00001

diff --git a/tests/data/acpi/q35/HPET.bridge.dsl b/tests/data/acpi/q35/HPET.bridge.dsl
new file mode 100644
index 0000000000..817040df23
--- /dev/null
+++ b/tests/data/acpi/q35/HPET.bridge.dsl
@@ -0,0 +1,43 @@ 
+/*
+ * Intel ACPI Component Architecture
+ * AML/ASL+ Disassembler version 20190509 (64-bit version)
+ * Copyright (c) 2000 - 2019 Intel Corporation
+ * 
+ * Disassembly of tests/data/acpi/q35/HPET.bridge, Tue Aug  4 11:14:15 2020
+ *
+ * ACPI Data Table [HPET]
+ *
+ * Format: [HexOffset DecimalOffset ByteLength]  FieldName : FieldValue
+ */
+
+[000h 0000   4]                    Signature : "HPET"    [High Precision Event Timer table]
+[004h 0004   4]                 Table Length : 00000038
+[008h 0008   1]                     Revision : 01
+[009h 0009   1]                     Checksum : 03
+[00Ah 0010   6]                       Oem ID : "BOCHS "
+[010h 0016   8]                 Oem Table ID : "BXPCHPET"
+[018h 0024   4]                 Oem Revision : 00000001
+[01Ch 0028   4]              Asl Compiler ID : "BXPC"
+[020h 0032   4]        Asl Compiler Revision : 00000001
+
+[024h 0036   4]            Hardware Block ID : 8086A201
+
+[028h 0040  12]         Timer Block Register : [Generic Address Structure]
+[028h 0040   1]                     Space ID : 00 [SystemMemory]
+[029h 0041   1]                    Bit Width : 00
+[02Ah 0042   1]                   Bit Offset : 00
+[02Bh 0043   1]         Encoded Access Width : 00 [Undefined/Legacy]
+[02Ch 0044   8]                      Address : 00000000FED00000
+
+[034h 0052   1]              Sequence Number : 00
+[035h 0053   2]          Minimum Clock Ticks : 0000
+[037h 0055   1]        Flags (decoded below) : 00
+                             4K Page Protect : 0
+                            64K Page Protect : 0
+
+Raw Table Data: Length 56 (0x38)
+
+    0000: 48 50 45 54 38 00 00 00 01 03 42 4F 43 48 53 20  // HPET8.....BOCHS 
+    0010: 42 58 50 43 48 50 45 54 01 00 00 00 42 58 50 43  // BXPCHPET....BXPC
+    0020: 01 00 00 00 01 A2 86 80 00 00 00 00 00 00 D0 FE  // ................
+    0030: 00 00 00 00 00 00 00 00                          // ........
diff --git a/tests/data/acpi/q35/HPET.cphp b/tests/data/acpi/q35/HPET.cphp
new file mode 100644
index 0000000000000000000000000000000000000000..df689b8f99c1c43cfd7d63bdede3bcdfd23b7de1
GIT binary patch
literal 56
xcmeYWa1F6wU|?WmcJg=j2v%^42ypfQiZKGkKx`1rxTviGNCClxe-N610RT2D3IPBB

literal 0
HcmV?d00001

diff --git a/tests/data/acpi/q35/HPET.cphp.dsl b/tests/data/acpi/q35/HPET.cphp.dsl
new file mode 100644
index 0000000000..4134b96873
--- /dev/null
+++ b/tests/data/acpi/q35/HPET.cphp.dsl
@@ -0,0 +1,43 @@ 
+/*
+ * Intel ACPI Component Architecture
+ * AML/ASL+ Disassembler version 20190509 (64-bit version)
+ * Copyright (c) 2000 - 2019 Intel Corporation
+ * 
+ * Disassembly of tests/data/acpi/q35/HPET.cphp, Tue Aug  4 11:14:15 2020
+ *
+ * ACPI Data Table [HPET]
+ *
+ * Format: [HexOffset DecimalOffset ByteLength]  FieldName : FieldValue
+ */
+
+[000h 0000   4]                    Signature : "HPET"    [High Precision Event Timer table]
+[004h 0004   4]                 Table Length : 00000038
+[008h 0008   1]                     Revision : 01
+[009h 0009   1]                     Checksum : 03
+[00Ah 0010   6]                       Oem ID : "BOCHS "
+[010h 0016   8]                 Oem Table ID : "BXPCHPET"
+[018h 0024   4]                 Oem Revision : 00000001
+[01Ch 0028   4]              Asl Compiler ID : "BXPC"
+[020h 0032   4]        Asl Compiler Revision : 00000001
+
+[024h 0036   4]            Hardware Block ID : 8086A201
+
+[028h 0040  12]         Timer Block Register : [Generic Address Structure]
+[028h 0040   1]                     Space ID : 00 [SystemMemory]
+[029h 0041   1]                    Bit Width : 00
+[02Ah 0042   1]                   Bit Offset : 00
+[02Bh 0043   1]         Encoded Access Width : 00 [Undefined/Legacy]
+[02Ch 0044   8]                      Address : 00000000FED00000
+
+[034h 0052   1]              Sequence Number : 00
+[035h 0053   2]          Minimum Clock Ticks : 0000
+[037h 0055   1]        Flags (decoded below) : 00
+                             4K Page Protect : 0
+                            64K Page Protect : 0
+
+Raw Table Data: Length 56 (0x38)
+
+    0000: 48 50 45 54 38 00 00 00 01 03 42 4F 43 48 53 20  // HPET8.....BOCHS 
+    0010: 42 58 50 43 48 50 45 54 01 00 00 00 42 58 50 43  // BXPCHPET....BXPC
+    0020: 01 00 00 00 01 A2 86 80 00 00 00 00 00 00 D0 FE  // ................
+    0030: 00 00 00 00 00 00 00 00                          // ........
diff --git a/tests/data/acpi/q35/HPET.dimmpxm b/tests/data/acpi/q35/HPET.dimmpxm
new file mode 100644
index 0000000000000000000000000000000000000000..df689b8f99c1c43cfd7d63bdede3bcdfd23b7de1
GIT binary patch
literal 56
xcmeYWa1F6wU|?WmcJg=j2v%^42ypfQiZKGkKx`1rxTviGNCClxe-N610RT2D3IPBB

literal 0
HcmV?d00001

diff --git a/tests/data/acpi/q35/HPET.dimmpxm.dsl b/tests/data/acpi/q35/HPET.dimmpxm.dsl
new file mode 100644
index 0000000000..42a7cc5fd6
--- /dev/null
+++ b/tests/data/acpi/q35/HPET.dimmpxm.dsl
@@ -0,0 +1,43 @@ 
+/*
+ * Intel ACPI Component Architecture
+ * AML/ASL+ Disassembler version 20190509 (64-bit version)
+ * Copyright (c) 2000 - 2019 Intel Corporation
+ * 
+ * Disassembly of tests/data/acpi/q35/HPET.dimmpxm, Tue Aug  4 11:14:15 2020
+ *
+ * ACPI Data Table [HPET]
+ *
+ * Format: [HexOffset DecimalOffset ByteLength]  FieldName : FieldValue
+ */
+
+[000h 0000   4]                    Signature : "HPET"    [High Precision Event Timer table]
+[004h 0004   4]                 Table Length : 00000038
+[008h 0008   1]                     Revision : 01
+[009h 0009   1]                     Checksum : 03
+[00Ah 0010   6]                       Oem ID : "BOCHS "
+[010h 0016   8]                 Oem Table ID : "BXPCHPET"
+[018h 0024   4]                 Oem Revision : 00000001
+[01Ch 0028   4]              Asl Compiler ID : "BXPC"
+[020h 0032   4]        Asl Compiler Revision : 00000001
+
+[024h 0036   4]            Hardware Block ID : 8086A201
+
+[028h 0040  12]         Timer Block Register : [Generic Address Structure]
+[028h 0040   1]                     Space ID : 00 [SystemMemory]
+[029h 0041   1]                    Bit Width : 00
+[02Ah 0042   1]                   Bit Offset : 00
+[02Bh 0043   1]         Encoded Access Width : 00 [Undefined/Legacy]
+[02Ch 0044   8]                      Address : 00000000FED00000
+
+[034h 0052   1]              Sequence Number : 00
+[035h 0053   2]          Minimum Clock Ticks : 0000
+[037h 0055   1]        Flags (decoded below) : 00
+                             4K Page Protect : 0
+                            64K Page Protect : 0
+
+Raw Table Data: Length 56 (0x38)
+
+    0000: 48 50 45 54 38 00 00 00 01 03 42 4F 43 48 53 20  // HPET8.....BOCHS 
+    0010: 42 58 50 43 48 50 45 54 01 00 00 00 42 58 50 43  // BXPCHPET....BXPC
+    0020: 01 00 00 00 01 A2 86 80 00 00 00 00 00 00 D0 FE  // ................
+    0030: 00 00 00 00 00 00 00 00                          // ........
diff --git a/tests/data/acpi/q35/HPET.dsl b/tests/data/acpi/q35/HPET.dsl
new file mode 100644
index 0000000000..42c40fd653
--- /dev/null
+++ b/tests/data/acpi/q35/HPET.dsl
@@ -0,0 +1,43 @@ 
+/*
+ * Intel ACPI Component Architecture
+ * AML/ASL+ Disassembler version 20190509 (64-bit version)
+ * Copyright (c) 2000 - 2019 Intel Corporation
+ * 
+ * Disassembly of tests/data/acpi/q35/HPET.tis, Mon Sep 28 17:24:38 2020
+ *
+ * ACPI Data Table [HPET]
+ *
+ * Format: [HexOffset DecimalOffset ByteLength]  FieldName : FieldValue
+ */
+
+[000h 0000   4]                    Signature : "HPET"    [High Precision Event Timer table]
+[004h 0004   4]                 Table Length : 00000038
+[008h 0008   1]                     Revision : 01
+[009h 0009   1]                     Checksum : 03
+[00Ah 0010   6]                       Oem ID : "BOCHS "
+[010h 0016   8]                 Oem Table ID : "BXPCHPET"
+[018h 0024   4]                 Oem Revision : 00000001
+[01Ch 0028   4]              Asl Compiler ID : "BXPC"
+[020h 0032   4]        Asl Compiler Revision : 00000001
+
+[024h 0036   4]            Hardware Block ID : 8086A201
+
+[028h 0040  12]         Timer Block Register : [Generic Address Structure]
+[028h 0040   1]                     Space ID : 00 [SystemMemory]
+[029h 0041   1]                    Bit Width : 00
+[02Ah 0042   1]                   Bit Offset : 00
+[02Bh 0043   1]         Encoded Access Width : 00 [Undefined/Legacy]
+[02Ch 0044   8]                      Address : 00000000FED00000
+
+[034h 0052   1]              Sequence Number : 00
+[035h 0053   2]          Minimum Clock Ticks : 0000
+[037h 0055   1]        Flags (decoded below) : 00
+                             4K Page Protect : 0
+                            64K Page Protect : 0
+
+Raw Table Data: Length 56 (0x38)
+
+    0000: 48 50 45 54 38 00 00 00 01 03 42 4F 43 48 53 20  // HPET8.....BOCHS 
+    0010: 42 58 50 43 48 50 45 54 01 00 00 00 42 58 50 43  // BXPCHPET....BXPC
+    0020: 01 00 00 00 01 A2 86 80 00 00 00 00 00 00 D0 FE  // ................
+    0030: 00 00 00 00 00 00 00 00                          // ........
diff --git a/tests/data/acpi/q35/HPET.ipmibt b/tests/data/acpi/q35/HPET.ipmibt
new file mode 100644
index 0000000000000000000000000000000000000000..df689b8f99c1c43cfd7d63bdede3bcdfd23b7de1
GIT binary patch
literal 56
xcmeYWa1F6wU|?WmcJg=j2v%^42ypfQiZKGkKx`1rxTviGNCClxe-N610RT2D3IPBB

literal 0
HcmV?d00001

diff --git a/tests/data/acpi/q35/HPET.ipmibt.dsl b/tests/data/acpi/q35/HPET.ipmibt.dsl
new file mode 100644
index 0000000000..9637f4cf81
--- /dev/null
+++ b/tests/data/acpi/q35/HPET.ipmibt.dsl
@@ -0,0 +1,43 @@ 
+/*
+ * Intel ACPI Component Architecture
+ * AML/ASL+ Disassembler version 20190509 (64-bit version)
+ * Copyright (c) 2000 - 2019 Intel Corporation
+ * 
+ * Disassembly of tests/data/acpi/q35/HPET.ipmibt, Tue Aug  4 11:14:15 2020
+ *
+ * ACPI Data Table [HPET]
+ *
+ * Format: [HexOffset DecimalOffset ByteLength]  FieldName : FieldValue
+ */
+
+[000h 0000   4]                    Signature : "HPET"    [High Precision Event Timer table]
+[004h 0004   4]                 Table Length : 00000038
+[008h 0008   1]                     Revision : 01
+[009h 0009   1]                     Checksum : 03
+[00Ah 0010   6]                       Oem ID : "BOCHS "
+[010h 0016   8]                 Oem Table ID : "BXPCHPET"
+[018h 0024   4]                 Oem Revision : 00000001
+[01Ch 0028   4]              Asl Compiler ID : "BXPC"
+[020h 0032   4]        Asl Compiler Revision : 00000001
+
+[024h 0036   4]            Hardware Block ID : 8086A201
+
+[028h 0040  12]         Timer Block Register : [Generic Address Structure]
+[028h 0040   1]                     Space ID : 00 [SystemMemory]
+[029h 0041   1]                    Bit Width : 00
+[02Ah 0042   1]                   Bit Offset : 00
+[02Bh 0043   1]         Encoded Access Width : 00 [Undefined/Legacy]
+[02Ch 0044   8]                      Address : 00000000FED00000
+
+[034h 0052   1]              Sequence Number : 00
+[035h 0053   2]          Minimum Clock Ticks : 0000
+[037h 0055   1]        Flags (decoded below) : 00
+                             4K Page Protect : 0
+                            64K Page Protect : 0
+
+Raw Table Data: Length 56 (0x38)
+
+    0000: 48 50 45 54 38 00 00 00 01 03 42 4F 43 48 53 20  // HPET8.....BOCHS 
+    0010: 42 58 50 43 48 50 45 54 01 00 00 00 42 58 50 43  // BXPCHPET....BXPC
+    0020: 01 00 00 00 01 A2 86 80 00 00 00 00 00 00 D0 FE  // ................
+    0030: 00 00 00 00 00 00 00 00                          // ........
diff --git a/tests/data/acpi/q35/HPET.memhp b/tests/data/acpi/q35/HPET.memhp
new file mode 100644
index 0000000000000000000000000000000000000000..df689b8f99c1c43cfd7d63bdede3bcdfd23b7de1
GIT binary patch
literal 56
xcmeYWa1F6wU|?WmcJg=j2v%^42ypfQiZKGkKx`1rxTviGNCClxe-N610RT2D3IPBB

literal 0
HcmV?d00001

diff --git a/tests/data/acpi/q35/HPET.memhp.dsl b/tests/data/acpi/q35/HPET.memhp.dsl
new file mode 100644
index 0000000000..2efab15846
--- /dev/null
+++ b/tests/data/acpi/q35/HPET.memhp.dsl
@@ -0,0 +1,43 @@ 
+/*
+ * Intel ACPI Component Architecture
+ * AML/ASL+ Disassembler version 20190509 (64-bit version)
+ * Copyright (c) 2000 - 2019 Intel Corporation
+ * 
+ * Disassembly of tests/data/acpi/q35/HPET.memhp, Tue Aug  4 11:14:15 2020
+ *
+ * ACPI Data Table [HPET]
+ *
+ * Format: [HexOffset DecimalOffset ByteLength]  FieldName : FieldValue
+ */
+
+[000h 0000   4]                    Signature : "HPET"    [High Precision Event Timer table]
+[004h 0004   4]                 Table Length : 00000038
+[008h 0008   1]                     Revision : 01
+[009h 0009   1]                     Checksum : 03
+[00Ah 0010   6]                       Oem ID : "BOCHS "
+[010h 0016   8]                 Oem Table ID : "BXPCHPET"
+[018h 0024   4]                 Oem Revision : 00000001
+[01Ch 0028   4]              Asl Compiler ID : "BXPC"
+[020h 0032   4]        Asl Compiler Revision : 00000001
+
+[024h 0036   4]            Hardware Block ID : 8086A201
+
+[028h 0040  12]         Timer Block Register : [Generic Address Structure]
+[028h 0040   1]                     Space ID : 00 [SystemMemory]
+[029h 0041   1]                    Bit Width : 00
+[02Ah 0042   1]                   Bit Offset : 00
+[02Bh 0043   1]         Encoded Access Width : 00 [Undefined/Legacy]
+[02Ch 0044   8]                      Address : 00000000FED00000
+
+[034h 0052   1]              Sequence Number : 00
+[035h 0053   2]          Minimum Clock Ticks : 0000
+[037h 0055   1]        Flags (decoded below) : 00
+                             4K Page Protect : 0
+                            64K Page Protect : 0
+
+Raw Table Data: Length 56 (0x38)
+
+    0000: 48 50 45 54 38 00 00 00 01 03 42 4F 43 48 53 20  // HPET8.....BOCHS 
+    0010: 42 58 50 43 48 50 45 54 01 00 00 00 42 58 50 43  // BXPCHPET....BXPC
+    0020: 01 00 00 00 01 A2 86 80 00 00 00 00 00 00 D0 FE  // ................
+    0030: 00 00 00 00 00 00 00 00                          // ........
diff --git a/tests/data/acpi/q35/HPET.mmio64 b/tests/data/acpi/q35/HPET.mmio64
new file mode 100644
index 0000000000000000000000000000000000000000..df689b8f99c1c43cfd7d63bdede3bcdfd23b7de1
GIT binary patch
literal 56
xcmeYWa1F6wU|?WmcJg=j2v%^42ypfQiZKGkKx`1rxTviGNCClxe-N610RT2D3IPBB

literal 0
HcmV?d00001

diff --git a/tests/data/acpi/q35/HPET.mmio64.dsl b/tests/data/acpi/q35/HPET.mmio64.dsl
new file mode 100644
index 0000000000..dba0368678
--- /dev/null
+++ b/tests/data/acpi/q35/HPET.mmio64.dsl
@@ -0,0 +1,43 @@ 
+/*
+ * Intel ACPI Component Architecture
+ * AML/ASL+ Disassembler version 20190509 (64-bit version)
+ * Copyright (c) 2000 - 2019 Intel Corporation
+ * 
+ * Disassembly of tests/data/acpi/q35/HPET.mmio64, Tue Aug  4 11:14:15 2020
+ *
+ * ACPI Data Table [HPET]
+ *
+ * Format: [HexOffset DecimalOffset ByteLength]  FieldName : FieldValue
+ */
+
+[000h 0000   4]                    Signature : "HPET"    [High Precision Event Timer table]
+[004h 0004   4]                 Table Length : 00000038
+[008h 0008   1]                     Revision : 01
+[009h 0009   1]                     Checksum : 03
+[00Ah 0010   6]                       Oem ID : "BOCHS "
+[010h 0016   8]                 Oem Table ID : "BXPCHPET"
+[018h 0024   4]                 Oem Revision : 00000001
+[01Ch 0028   4]              Asl Compiler ID : "BXPC"
+[020h 0032   4]        Asl Compiler Revision : 00000001
+
+[024h 0036   4]            Hardware Block ID : 8086A201
+
+[028h 0040  12]         Timer Block Register : [Generic Address Structure]
+[028h 0040   1]                     Space ID : 00 [SystemMemory]
+[029h 0041   1]                    Bit Width : 00
+[02Ah 0042   1]                   Bit Offset : 00
+[02Bh 0043   1]         Encoded Access Width : 00 [Undefined/Legacy]
+[02Ch 0044   8]                      Address : 00000000FED00000
+
+[034h 0052   1]              Sequence Number : 00
+[035h 0053   2]          Minimum Clock Ticks : 0000
+[037h 0055   1]        Flags (decoded below) : 00
+                             4K Page Protect : 0
+                            64K Page Protect : 0
+
+Raw Table Data: Length 56 (0x38)
+
+    0000: 48 50 45 54 38 00 00 00 01 03 42 4F 43 48 53 20  // HPET8.....BOCHS 
+    0010: 42 58 50 43 48 50 45 54 01 00 00 00 42 58 50 43  // BXPCHPET....BXPC
+    0020: 01 00 00 00 01 A2 86 80 00 00 00 00 00 00 D0 FE  // ................
+    0030: 00 00 00 00 00 00 00 00                          // ........
diff --git a/tests/data/acpi/q35/HPET.numamem b/tests/data/acpi/q35/HPET.numamem
new file mode 100644
index 0000000000000000000000000000000000000000..df689b8f99c1c43cfd7d63bdede3bcdfd23b7de1
GIT binary patch
literal 56
xcmeYWa1F6wU|?WmcJg=j2v%^42ypfQiZKGkKx`1rxTviGNCClxe-N610RT2D3IPBB

literal 0
HcmV?d00001

diff --git a/tests/data/acpi/q35/HPET.numamem.dsl b/tests/data/acpi/q35/HPET.numamem.dsl
new file mode 100644
index 0000000000..e9d18a59fd
--- /dev/null
+++ b/tests/data/acpi/q35/HPET.numamem.dsl
@@ -0,0 +1,43 @@ 
+/*
+ * Intel ACPI Component Architecture
+ * AML/ASL+ Disassembler version 20190509 (64-bit version)
+ * Copyright (c) 2000 - 2019 Intel Corporation
+ * 
+ * Disassembly of tests/data/acpi/q35/HPET.numamem, Tue Aug  4 11:14:15 2020
+ *
+ * ACPI Data Table [HPET]
+ *
+ * Format: [HexOffset DecimalOffset ByteLength]  FieldName : FieldValue
+ */
+
+[000h 0000   4]                    Signature : "HPET"    [High Precision Event Timer table]
+[004h 0004   4]                 Table Length : 00000038
+[008h 0008   1]                     Revision : 01
+[009h 0009   1]                     Checksum : 03
+[00Ah 0010   6]                       Oem ID : "BOCHS "
+[010h 0016   8]                 Oem Table ID : "BXPCHPET"
+[018h 0024   4]                 Oem Revision : 00000001
+[01Ch 0028   4]              Asl Compiler ID : "BXPC"
+[020h 0032   4]        Asl Compiler Revision : 00000001
+
+[024h 0036   4]            Hardware Block ID : 8086A201
+
+[028h 0040  12]         Timer Block Register : [Generic Address Structure]
+[028h 0040   1]                     Space ID : 00 [SystemMemory]
+[029h 0041   1]                    Bit Width : 00
+[02Ah 0042   1]                   Bit Offset : 00
+[02Bh 0043   1]         Encoded Access Width : 00 [Undefined/Legacy]
+[02Ch 0044   8]                      Address : 00000000FED00000
+
+[034h 0052   1]              Sequence Number : 00
+[035h 0053   2]          Minimum Clock Ticks : 0000
+[037h 0055   1]        Flags (decoded below) : 00
+                             4K Page Protect : 0
+                            64K Page Protect : 0
+
+Raw Table Data: Length 56 (0x38)
+
+    0000: 48 50 45 54 38 00 00 00 01 03 42 4F 43 48 53 20  // HPET8.....BOCHS 
+    0010: 42 58 50 43 48 50 45 54 01 00 00 00 42 58 50 43  // BXPCHPET....BXPC
+    0020: 01 00 00 00 01 A2 86 80 00 00 00 00 00 00 D0 FE  // ................
+    0030: 00 00 00 00 00 00 00 00                          // ........
diff --git a/tests/data/acpi/q35/HPET.tis b/tests/data/acpi/q35/HPET.tis
new file mode 100644
index 0000000000000000000000000000000000000000..df689b8f99c1c43cfd7d63bdede3bcdfd23b7de1
GIT binary patch
literal 56
xcmeYWa1F6wU|?WmcJg=j2v%^42ypfQiZKGkKx`1rxTviGNCClxe-N610RT2D3IPBB

literal 0
HcmV?d00001

diff --git a/tests/data/acpi/q35/HPET.tis.dsl b/tests/data/acpi/q35/HPET.tis.dsl
new file mode 100644
index 0000000000..471cb5b940
--- /dev/null
+++ b/tests/data/acpi/q35/HPET.tis.dsl
@@ -0,0 +1,43 @@ 
+/*
+ * Intel ACPI Component Architecture
+ * AML/ASL+ Disassembler version 20190509 (64-bit version)
+ * Copyright (c) 2000 - 2019 Intel Corporation
+ * 
+ * Disassembly of tests/data/acpi/q35/HPET.tis, Tue Aug  4 11:14:15 2020
+ *
+ * ACPI Data Table [HPET]
+ *
+ * Format: [HexOffset DecimalOffset ByteLength]  FieldName : FieldValue
+ */
+
+[000h 0000   4]                    Signature : "HPET"    [High Precision Event Timer table]
+[004h 0004   4]                 Table Length : 00000038
+[008h 0008   1]                     Revision : 01
+[009h 0009   1]                     Checksum : 03
+[00Ah 0010   6]                       Oem ID : "BOCHS "
+[010h 0016   8]                 Oem Table ID : "BXPCHPET"
+[018h 0024   4]                 Oem Revision : 00000001
+[01Ch 0028   4]              Asl Compiler ID : "BXPC"
+[020h 0032   4]        Asl Compiler Revision : 00000001
+
+[024h 0036   4]            Hardware Block ID : 8086A201
+
+[028h 0040  12]         Timer Block Register : [Generic Address Structure]
+[028h 0040   1]                     Space ID : 00 [SystemMemory]
+[029h 0041   1]                    Bit Width : 00
+[02Ah 0042   1]                   Bit Offset : 00
+[02Bh 0043   1]         Encoded Access Width : 00 [Undefined/Legacy]
+[02Ch 0044   8]                      Address : 00000000FED00000
+
+[034h 0052   1]              Sequence Number : 00
+[035h 0053   2]          Minimum Clock Ticks : 0000
+[037h 0055   1]        Flags (decoded below) : 00
+                             4K Page Protect : 0
+                            64K Page Protect : 0
+
+Raw Table Data: Length 56 (0x38)
+
+    0000: 48 50 45 54 38 00 00 00 01 03 42 4F 43 48 53 20  // HPET8.....BOCHS 
+    0010: 42 58 50 43 48 50 45 54 01 00 00 00 42 58 50 43  // BXPCHPET....BXPC
+    0020: 01 00 00 00 01 A2 86 80 00 00 00 00 00 00 D0 FE  // ................
+    0030: 00 00 00 00 00 00 00 00                          // ........
diff --git a/tests/data/acpi/q35/MCFG.acpihmat b/tests/data/acpi/q35/MCFG.acpihmat
new file mode 100644
index 0000000000000000000000000000000000000000..79ceb27a038c6e29d098b98dda2e229495f96b7c
GIT binary patch
literal 60
rcmeZuc5}C3U|?W;@8s|75v<@85#a0#6k`O6f!H7#32cC}|AS}%SE304

literal 0
HcmV?d00001

diff --git a/tests/data/acpi/q35/MCFG.acpihmat.dsl b/tests/data/acpi/q35/MCFG.acpihmat.dsl
new file mode 100644
index 0000000000..8d07f64e9d
--- /dev/null
+++ b/tests/data/acpi/q35/MCFG.acpihmat.dsl
@@ -0,0 +1,36 @@ 
+/*
+ * Intel ACPI Component Architecture
+ * AML/ASL+ Disassembler version 20190509 (64-bit version)
+ * Copyright (c) 2000 - 2019 Intel Corporation
+ * 
+ * Disassembly of tests/data/acpi/q35/MCFG.acpihmat, Tue Aug  4 11:14:15 2020
+ *
+ * ACPI Data Table [MCFG]
+ *
+ * Format: [HexOffset DecimalOffset ByteLength]  FieldName : FieldValue
+ */
+
+[000h 0000   4]                    Signature : "MCFG"    [Memory Mapped Configuration table]
+[004h 0004   4]                 Table Length : 0000003C
+[008h 0008   1]                     Revision : 01
+[009h 0009   1]                     Checksum : EF
+[00Ah 0010   6]                       Oem ID : "BOCHS "
+[010h 0016   8]                 Oem Table ID : "BXPCMCFG"
+[018h 0024   4]                 Oem Revision : 00000001
+[01Ch 0028   4]              Asl Compiler ID : "BXPC"
+[020h 0032   4]        Asl Compiler Revision : 00000001
+
+[024h 0036   8]                     Reserved : 0000000000000000
+
+[02Ch 0044   8]                 Base Address : 00000000B0000000
+[034h 0052   2]         Segment Group Number : 0000
+[036h 0054   1]             Start Bus Number : 00
+[037h 0055   1]               End Bus Number : FF
+[038h 0056   4]                     Reserved : 00000000
+
+Raw Table Data: Length 60 (0x3C)
+
+    0000: 4D 43 46 47 3C 00 00 00 01 EF 42 4F 43 48 53 20  // MCFG<.....BOCHS 
+    0010: 42 58 50 43 4D 43 46 47 01 00 00 00 42 58 50 43  // BXPCMCFG....BXPC
+    0020: 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 B0  // ................
+    0030: 00 00 00 00 00 00 00 FF 00 00 00 00              // ............
diff --git a/tests/data/acpi/q35/MCFG.bridge b/tests/data/acpi/q35/MCFG.bridge
new file mode 100644
index 0000000000000000000000000000000000000000..79ceb27a038c6e29d098b98dda2e229495f96b7c
GIT binary patch
literal 60
rcmeZuc5}C3U|?W;@8s|75v<@85#a0#6k`O6f!H7#32cC}|AS}%SE304

literal 0
HcmV?d00001

diff --git a/tests/data/acpi/q35/MCFG.bridge.dsl b/tests/data/acpi/q35/MCFG.bridge.dsl
new file mode 100644
index 0000000000..6ce54d7228
--- /dev/null
+++ b/tests/data/acpi/q35/MCFG.bridge.dsl
@@ -0,0 +1,36 @@ 
+/*
+ * Intel ACPI Component Architecture
+ * AML/ASL+ Disassembler version 20190509 (64-bit version)
+ * Copyright (c) 2000 - 2019 Intel Corporation
+ * 
+ * Disassembly of tests/data/acpi/q35/MCFG.bridge, Tue Aug  4 11:14:15 2020
+ *
+ * ACPI Data Table [MCFG]
+ *
+ * Format: [HexOffset DecimalOffset ByteLength]  FieldName : FieldValue
+ */
+
+[000h 0000   4]                    Signature : "MCFG"    [Memory Mapped Configuration table]
+[004h 0004   4]                 Table Length : 0000003C
+[008h 0008   1]                     Revision : 01
+[009h 0009   1]                     Checksum : EF
+[00Ah 0010   6]                       Oem ID : "BOCHS "
+[010h 0016   8]                 Oem Table ID : "BXPCMCFG"
+[018h 0024   4]                 Oem Revision : 00000001
+[01Ch 0028   4]              Asl Compiler ID : "BXPC"
+[020h 0032   4]        Asl Compiler Revision : 00000001
+
+[024h 0036   8]                     Reserved : 0000000000000000
+
+[02Ch 0044   8]                 Base Address : 00000000B0000000
+[034h 0052   2]         Segment Group Number : 0000
+[036h 0054   1]             Start Bus Number : 00
+[037h 0055   1]               End Bus Number : FF
+[038h 0056   4]                     Reserved : 00000000
+
+Raw Table Data: Length 60 (0x3C)
+
+    0000: 4D 43 46 47 3C 00 00 00 01 EF 42 4F 43 48 53 20  // MCFG<.....BOCHS 
+    0010: 42 58 50 43 4D 43 46 47 01 00 00 00 42 58 50 43  // BXPCMCFG....BXPC
+    0020: 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 B0  // ................
+    0030: 00 00 00 00 00 00 00 FF 00 00 00 00              // ............
diff --git a/tests/data/acpi/q35/MCFG.cphp b/tests/data/acpi/q35/MCFG.cphp
new file mode 100644
index 0000000000000000000000000000000000000000..79ceb27a038c6e29d098b98dda2e229495f96b7c
GIT binary patch
literal 60
rcmeZuc5}C3U|?W;@8s|75v<@85#a0#6k`O6f!H7#32cC}|AS}%SE304

literal 0
HcmV?d00001

diff --git a/tests/data/acpi/q35/MCFG.cphp.dsl b/tests/data/acpi/q35/MCFG.cphp.dsl
new file mode 100644
index 0000000000..7ffd7f30db
--- /dev/null
+++ b/tests/data/acpi/q35/MCFG.cphp.dsl
@@ -0,0 +1,36 @@ 
+/*
+ * Intel ACPI Component Architecture
+ * AML/ASL+ Disassembler version 20190509 (64-bit version)
+ * Copyright (c) 2000 - 2019 Intel Corporation
+ * 
+ * Disassembly of tests/data/acpi/q35/MCFG.cphp, Tue Aug  4 11:14:15 2020
+ *
+ * ACPI Data Table [MCFG]
+ *
+ * Format: [HexOffset DecimalOffset ByteLength]  FieldName : FieldValue
+ */
+
+[000h 0000   4]                    Signature : "MCFG"    [Memory Mapped Configuration table]
+[004h 0004   4]                 Table Length : 0000003C
+[008h 0008   1]                     Revision : 01
+[009h 0009   1]                     Checksum : EF
+[00Ah 0010   6]                       Oem ID : "BOCHS "
+[010h 0016   8]                 Oem Table ID : "BXPCMCFG"
+[018h 0024   4]                 Oem Revision : 00000001
+[01Ch 0028   4]              Asl Compiler ID : "BXPC"
+[020h 0032   4]        Asl Compiler Revision : 00000001
+
+[024h 0036   8]                     Reserved : 0000000000000000
+
+[02Ch 0044   8]                 Base Address : 00000000B0000000
+[034h 0052   2]         Segment Group Number : 0000
+[036h 0054   1]             Start Bus Number : 00
+[037h 0055   1]               End Bus Number : FF
+[038h 0056   4]                     Reserved : 00000000
+
+Raw Table Data: Length 60 (0x3C)
+
+    0000: 4D 43 46 47 3C 00 00 00 01 EF 42 4F 43 48 53 20  // MCFG<.....BOCHS 
+    0010: 42 58 50 43 4D 43 46 47 01 00 00 00 42 58 50 43  // BXPCMCFG....BXPC
+    0020: 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 B0  // ................
+    0030: 00 00 00 00 00 00 00 FF 00 00 00 00              // ............
diff --git a/tests/data/acpi/q35/MCFG.dimmpxm b/tests/data/acpi/q35/MCFG.dimmpxm
new file mode 100644
index 0000000000000000000000000000000000000000..79ceb27a038c6e29d098b98dda2e229495f96b7c
GIT binary patch
literal 60
rcmeZuc5}C3U|?W;@8s|75v<@85#a0#6k`O6f!H7#32cC}|AS}%SE304

literal 0
HcmV?d00001

diff --git a/tests/data/acpi/q35/MCFG.dimmpxm.dsl b/tests/data/acpi/q35/MCFG.dimmpxm.dsl
new file mode 100644
index 0000000000..dd7373b692
--- /dev/null
+++ b/tests/data/acpi/q35/MCFG.dimmpxm.dsl
@@ -0,0 +1,36 @@ 
+/*
+ * Intel ACPI Component Architecture
+ * AML/ASL+ Disassembler version 20190509 (64-bit version)
+ * Copyright (c) 2000 - 2019 Intel Corporation
+ * 
+ * Disassembly of tests/data/acpi/q35/MCFG.dimmpxm, Tue Aug  4 11:14:15 2020
+ *
+ * ACPI Data Table [MCFG]
+ *
+ * Format: [HexOffset DecimalOffset ByteLength]  FieldName : FieldValue
+ */
+
+[000h 0000   4]                    Signature : "MCFG"    [Memory Mapped Configuration table]
+[004h 0004   4]                 Table Length : 0000003C
+[008h 0008   1]                     Revision : 01
+[009h 0009   1]                     Checksum : EF
+[00Ah 0010   6]                       Oem ID : "BOCHS "
+[010h 0016   8]                 Oem Table ID : "BXPCMCFG"
+[018h 0024   4]                 Oem Revision : 00000001
+[01Ch 0028   4]              Asl Compiler ID : "BXPC"
+[020h 0032   4]        Asl Compiler Revision : 00000001
+
+[024h 0036   8]                     Reserved : 0000000000000000
+
+[02Ch 0044   8]                 Base Address : 00000000B0000000
+[034h 0052   2]         Segment Group Number : 0000
+[036h 0054   1]             Start Bus Number : 00
+[037h 0055   1]               End Bus Number : FF
+[038h 0056   4]                     Reserved : 00000000
+
+Raw Table Data: Length 60 (0x3C)
+
+    0000: 4D 43 46 47 3C 00 00 00 01 EF 42 4F 43 48 53 20  // MCFG<.....BOCHS 
+    0010: 42 58 50 43 4D 43 46 47 01 00 00 00 42 58 50 43  // BXPCMCFG....BXPC
+    0020: 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 B0  // ................
+    0030: 00 00 00 00 00 00 00 FF 00 00 00 00              // ............
diff --git a/tests/data/acpi/q35/MCFG.dsl b/tests/data/acpi/q35/MCFG.dsl
new file mode 100644
index 0000000000..5179d6d707
--- /dev/null
+++ b/tests/data/acpi/q35/MCFG.dsl
@@ -0,0 +1,36 @@ 
+/*
+ * Intel ACPI Component Architecture
+ * AML/ASL+ Disassembler version 20190509 (64-bit version)
+ * Copyright (c) 2000 - 2019 Intel Corporation
+ * 
+ * Disassembly of tests/data/acpi/q35/MCFG.tis, Mon Sep 28 17:24:38 2020
+ *
+ * ACPI Data Table [MCFG]
+ *
+ * Format: [HexOffset DecimalOffset ByteLength]  FieldName : FieldValue
+ */
+
+[000h 0000   4]                    Signature : "MCFG"    [Memory Mapped Configuration table]
+[004h 0004   4]                 Table Length : 0000003C
+[008h 0008   1]                     Revision : 01
+[009h 0009   1]                     Checksum : EF
+[00Ah 0010   6]                       Oem ID : "BOCHS "
+[010h 0016   8]                 Oem Table ID : "BXPCMCFG"
+[018h 0024   4]                 Oem Revision : 00000001
+[01Ch 0028   4]              Asl Compiler ID : "BXPC"
+[020h 0032   4]        Asl Compiler Revision : 00000001
+
+[024h 0036   8]                     Reserved : 0000000000000000
+
+[02Ch 0044   8]                 Base Address : 00000000B0000000
+[034h 0052   2]         Segment Group Number : 0000
+[036h 0054   1]             Start Bus Number : 00
+[037h 0055   1]               End Bus Number : FF
+[038h 0056   4]                     Reserved : 00000000
+
+Raw Table Data: Length 60 (0x3C)
+
+    0000: 4D 43 46 47 3C 00 00 00 01 EF 42 4F 43 48 53 20  // MCFG<.....BOCHS 
+    0010: 42 58 50 43 4D 43 46 47 01 00 00 00 42 58 50 43  // BXPCMCFG....BXPC
+    0020: 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 B0  // ................
+    0030: 00 00 00 00 00 00 00 FF 00 00 00 00              // ............
diff --git a/tests/data/acpi/q35/MCFG.ipmibt b/tests/data/acpi/q35/MCFG.ipmibt
new file mode 100644
index 0000000000000000000000000000000000000000..79ceb27a038c6e29d098b98dda2e229495f96b7c
GIT binary patch
literal 60
rcmeZuc5}C3U|?W;@8s|75v<@85#a0#6k`O6f!H7#32cC}|AS}%SE304

literal 0
HcmV?d00001

diff --git a/tests/data/acpi/q35/MCFG.ipmibt.dsl b/tests/data/acpi/q35/MCFG.ipmibt.dsl
new file mode 100644
index 0000000000..80c372162c
--- /dev/null
+++ b/tests/data/acpi/q35/MCFG.ipmibt.dsl
@@ -0,0 +1,36 @@ 
+/*
+ * Intel ACPI Component Architecture
+ * AML/ASL+ Disassembler version 20190509 (64-bit version)
+ * Copyright (c) 2000 - 2019 Intel Corporation
+ * 
+ * Disassembly of tests/data/acpi/q35/MCFG.ipmibt, Tue Aug  4 11:14:15 2020
+ *
+ * ACPI Data Table [MCFG]
+ *
+ * Format: [HexOffset DecimalOffset ByteLength]  FieldName : FieldValue
+ */
+
+[000h 0000   4]                    Signature : "MCFG"    [Memory Mapped Configuration table]
+[004h 0004   4]                 Table Length : 0000003C
+[008h 0008   1]                     Revision : 01
+[009h 0009   1]                     Checksum : EF
+[00Ah 0010   6]                       Oem ID : "BOCHS "
+[010h 0016   8]                 Oem Table ID : "BXPCMCFG"
+[018h 0024   4]                 Oem Revision : 00000001
+[01Ch 0028   4]              Asl Compiler ID : "BXPC"
+[020h 0032   4]        Asl Compiler Revision : 00000001
+
+[024h 0036   8]                     Reserved : 0000000000000000
+
+[02Ch 0044   8]                 Base Address : 00000000B0000000
+[034h 0052   2]         Segment Group Number : 0000
+[036h 0054   1]             Start Bus Number : 00
+[037h 0055   1]               End Bus Number : FF
+[038h 0056   4]                     Reserved : 00000000
+
+Raw Table Data: Length 60 (0x3C)
+
+    0000: 4D 43 46 47 3C 00 00 00 01 EF 42 4F 43 48 53 20  // MCFG<.....BOCHS 
+    0010: 42 58 50 43 4D 43 46 47 01 00 00 00 42 58 50 43  // BXPCMCFG....BXPC
+    0020: 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 B0  // ................
+    0030: 00 00 00 00 00 00 00 FF 00 00 00 00              // ............
diff --git a/tests/data/acpi/q35/MCFG.memhp b/tests/data/acpi/q35/MCFG.memhp
new file mode 100644
index 0000000000000000000000000000000000000000..79ceb27a038c6e29d098b98dda2e229495f96b7c
GIT binary patch
literal 60
rcmeZuc5}C3U|?W;@8s|75v<@85#a0#6k`O6f!H7#32cC}|AS}%SE304

literal 0
HcmV?d00001

diff --git a/tests/data/acpi/q35/MCFG.memhp.dsl b/tests/data/acpi/q35/MCFG.memhp.dsl
new file mode 100644
index 0000000000..1b1f666833
--- /dev/null
+++ b/tests/data/acpi/q35/MCFG.memhp.dsl
@@ -0,0 +1,36 @@ 
+/*
+ * Intel ACPI Component Architecture
+ * AML/ASL+ Disassembler version 20190509 (64-bit version)
+ * Copyright (c) 2000 - 2019 Intel Corporation
+ * 
+ * Disassembly of tests/data/acpi/q35/MCFG.memhp, Tue Aug  4 11:14:15 2020
+ *
+ * ACPI Data Table [MCFG]
+ *
+ * Format: [HexOffset DecimalOffset ByteLength]  FieldName : FieldValue
+ */
+
+[000h 0000   4]                    Signature : "MCFG"    [Memory Mapped Configuration table]
+[004h 0004   4]                 Table Length : 0000003C
+[008h 0008   1]                     Revision : 01
+[009h 0009   1]                     Checksum : EF
+[00Ah 0010   6]                       Oem ID : "BOCHS "
+[010h 0016   8]                 Oem Table ID : "BXPCMCFG"
+[018h 0024   4]                 Oem Revision : 00000001
+[01Ch 0028   4]              Asl Compiler ID : "BXPC"
+[020h 0032   4]        Asl Compiler Revision : 00000001
+
+[024h 0036   8]                     Reserved : 0000000000000000
+
+[02Ch 0044   8]                 Base Address : 00000000B0000000
+[034h 0052   2]         Segment Group Number : 0000
+[036h 0054   1]             Start Bus Number : 00
+[037h 0055   1]               End Bus Number : FF
+[038h 0056   4]                     Reserved : 00000000
+
+Raw Table Data: Length 60 (0x3C)
+
+    0000: 4D 43 46 47 3C 00 00 00 01 EF 42 4F 43 48 53 20  // MCFG<.....BOCHS 
+    0010: 42 58 50 43 4D 43 46 47 01 00 00 00 42 58 50 43  // BXPCMCFG....BXPC
+    0020: 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 B0  // ................
+    0030: 00 00 00 00 00 00 00 FF 00 00 00 00              // ............
diff --git a/tests/data/acpi/q35/MCFG.mmio64 b/tests/data/acpi/q35/MCFG.mmio64
new file mode 100644
index 0000000000000000000000000000000000000000..79ceb27a038c6e29d098b98dda2e229495f96b7c
GIT binary patch
literal 60
rcmeZuc5}C3U|?W;@8s|75v<@85#a0#6k`O6f!H7#32cC}|AS}%SE304

literal 0
HcmV?d00001

diff --git a/tests/data/acpi/q35/MCFG.mmio64.dsl b/tests/data/acpi/q35/MCFG.mmio64.dsl
new file mode 100644
index 0000000000..79be440f72
--- /dev/null
+++ b/tests/data/acpi/q35/MCFG.mmio64.dsl
@@ -0,0 +1,36 @@ 
+/*
+ * Intel ACPI Component Architecture
+ * AML/ASL+ Disassembler version 20190509 (64-bit version)
+ * Copyright (c) 2000 - 2019 Intel Corporation
+ * 
+ * Disassembly of tests/data/acpi/q35/MCFG.mmio64, Tue Aug  4 11:14:15 2020
+ *
+ * ACPI Data Table [MCFG]
+ *
+ * Format: [HexOffset DecimalOffset ByteLength]  FieldName : FieldValue
+ */
+
+[000h 0000   4]                    Signature : "MCFG"    [Memory Mapped Configuration table]
+[004h 0004   4]                 Table Length : 0000003C
+[008h 0008   1]                     Revision : 01
+[009h 0009   1]                     Checksum : EF
+[00Ah 0010   6]                       Oem ID : "BOCHS "
+[010h 0016   8]                 Oem Table ID : "BXPCMCFG"
+[018h 0024   4]                 Oem Revision : 00000001
+[01Ch 0028   4]              Asl Compiler ID : "BXPC"
+[020h 0032   4]        Asl Compiler Revision : 00000001
+
+[024h 0036   8]                     Reserved : 0000000000000000
+
+[02Ch 0044   8]                 Base Address : 00000000B0000000
+[034h 0052   2]         Segment Group Number : 0000
+[036h 0054   1]             Start Bus Number : 00
+[037h 0055   1]               End Bus Number : FF
+[038h 0056   4]                     Reserved : 00000000
+
+Raw Table Data: Length 60 (0x3C)
+
+    0000: 4D 43 46 47 3C 00 00 00 01 EF 42 4F 43 48 53 20  // MCFG<.....BOCHS 
+    0010: 42 58 50 43 4D 43 46 47 01 00 00 00 42 58 50 43  // BXPCMCFG....BXPC
+    0020: 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 B0  // ................
+    0030: 00 00 00 00 00 00 00 FF 00 00 00 00              // ............
diff --git a/tests/data/acpi/q35/MCFG.numamem b/tests/data/acpi/q35/MCFG.numamem
new file mode 100644
index 0000000000000000000000000000000000000000..79ceb27a038c6e29d098b98dda2e229495f96b7c
GIT binary patch
literal 60
rcmeZuc5}C3U|?W;@8s|75v<@85#a0#6k`O6f!H7#32cC}|AS}%SE304

literal 0
HcmV?d00001

diff --git a/tests/data/acpi/q35/MCFG.numamem.dsl b/tests/data/acpi/q35/MCFG.numamem.dsl
new file mode 100644
index 0000000000..30b37074d3
--- /dev/null
+++ b/tests/data/acpi/q35/MCFG.numamem.dsl
@@ -0,0 +1,36 @@ 
+/*
+ * Intel ACPI Component Architecture
+ * AML/ASL+ Disassembler version 20190509 (64-bit version)
+ * Copyright (c) 2000 - 2019 Intel Corporation
+ * 
+ * Disassembly of tests/data/acpi/q35/MCFG.numamem, Tue Aug  4 11:14:15 2020
+ *
+ * ACPI Data Table [MCFG]
+ *
+ * Format: [HexOffset DecimalOffset ByteLength]  FieldName : FieldValue
+ */
+
+[000h 0000   4]                    Signature : "MCFG"    [Memory Mapped Configuration table]
+[004h 0004   4]                 Table Length : 0000003C
+[008h 0008   1]                     Revision : 01
+[009h 0009   1]                     Checksum : EF
+[00Ah 0010   6]                       Oem ID : "BOCHS "
+[010h 0016   8]                 Oem Table ID : "BXPCMCFG"
+[018h 0024   4]                 Oem Revision : 00000001
+[01Ch 0028   4]              Asl Compiler ID : "BXPC"
+[020h 0032   4]        Asl Compiler Revision : 00000001
+
+[024h 0036   8]                     Reserved : 0000000000000000
+
+[02Ch 0044   8]                 Base Address : 00000000B0000000
+[034h 0052   2]         Segment Group Number : 0000
+[036h 0054   1]             Start Bus Number : 00
+[037h 0055   1]               End Bus Number : FF
+[038h 0056   4]                     Reserved : 00000000
+
+Raw Table Data: Length 60 (0x3C)
+
+    0000: 4D 43 46 47 3C 00 00 00 01 EF 42 4F 43 48 53 20  // MCFG<.....BOCHS 
+    0010: 42 58 50 43 4D 43 46 47 01 00 00 00 42 58 50 43  // BXPCMCFG....BXPC
+    0020: 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 B0  // ................
+    0030: 00 00 00 00 00 00 00 FF 00 00 00 00              // ............
diff --git a/tests/data/acpi/q35/MCFG.tis b/tests/data/acpi/q35/MCFG.tis
new file mode 100644
index 0000000000000000000000000000000000000000..79ceb27a038c6e29d098b98dda2e229495f96b7c
GIT binary patch
literal 60
rcmeZuc5}C3U|?W;@8s|75v<@85#a0#6k`O6f!H7#32cC}|AS}%SE304

literal 0
HcmV?d00001

diff --git a/tests/data/acpi/q35/MCFG.tis.dsl b/tests/data/acpi/q35/MCFG.tis.dsl
new file mode 100644
index 0000000000..0a92d698e9
--- /dev/null
+++ b/tests/data/acpi/q35/MCFG.tis.dsl
@@ -0,0 +1,36 @@ 
+/*
+ * Intel ACPI Component Architecture
+ * AML/ASL+ Disassembler version 20190509 (64-bit version)
+ * Copyright (c) 2000 - 2019 Intel Corporation
+ * 
+ * Disassembly of tests/data/acpi/q35/MCFG.tis, Tue Aug  4 11:14:15 2020
+ *
+ * ACPI Data Table [MCFG]
+ *
+ * Format: [HexOffset DecimalOffset ByteLength]  FieldName : FieldValue
+ */
+
+[000h 0000   4]                    Signature : "MCFG"    [Memory Mapped Configuration table]
+[004h 0004   4]                 Table Length : 0000003C
+[008h 0008   1]                     Revision : 01
+[009h 0009   1]                     Checksum : EF
+[00Ah 0010   6]                       Oem ID : "BOCHS "
+[010h 0016   8]                 Oem Table ID : "BXPCMCFG"
+[018h 0024   4]                 Oem Revision : 00000001
+[01Ch 0028   4]              Asl Compiler ID : "BXPC"
+[020h 0032   4]        Asl Compiler Revision : 00000001
+
+[024h 0036   8]                     Reserved : 0000000000000000
+
+[02Ch 0044   8]                 Base Address : 00000000B0000000
+[034h 0052   2]         Segment Group Number : 0000
+[036h 0054   1]             Start Bus Number : 00
+[037h 0055   1]               End Bus Number : FF
+[038h 0056   4]                     Reserved : 00000000
+
+Raw Table Data: Length 60 (0x3C)
+
+    0000: 4D 43 46 47 3C 00 00 00 01 EF 42 4F 43 48 53 20  // MCFG<.....BOCHS 
+    0010: 42 58 50 43 4D 43 46 47 01 00 00 00 42 58 50 43  // BXPCMCFG....BXPC
+    0020: 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 B0  // ................
+    0030: 00 00 00 00 00 00 00 FF 00 00 00 00              // ............
diff --git a/tests/data/acpi/q35/NFIT.dimmpxm.dsl b/tests/data/acpi/q35/NFIT.dimmpxm.dsl
new file mode 100644
index 0000000000..e29b770dca
--- /dev/null
+++ b/tests/data/acpi/q35/NFIT.dimmpxm.dsl
@@ -0,0 +1,115 @@ 
+/*
+ * Intel ACPI Component Architecture
+ * AML/ASL+ Disassembler version 20190509 (64-bit version)
+ * Copyright (c) 2000 - 2019 Intel Corporation
+ * 
+ * Disassembly of tests/data/acpi/q35/NFIT.dimmpxm, Tue Aug  4 11:14:15 2020
+ *
+ * ACPI Data Table [NFIT]
+ *
+ * Format: [HexOffset DecimalOffset ByteLength]  FieldName : FieldValue
+ */
+
+[000h 0000   4]                    Signature : "NFIT"    [NVDIMM Firmware Interface Table]
+[004h 0004   4]                 Table Length : 000000F0
+[008h 0008   1]                     Revision : 01
+[009h 0009   1]                     Checksum : 24
+[00Ah 0010   6]                       Oem ID : "BOCHS "
+[010h 0016   8]                 Oem Table ID : "BXPCNFIT"
+[018h 0024   4]                 Oem Revision : 00000001
+[01Ch 0028   4]              Asl Compiler ID : "BXPC"
+[020h 0032   4]        Asl Compiler Revision : 00000001
+
+[024h 0036   4]                     Reserved : 00000000
+
+[028h 0040   2]                Subtable Type : 0000 [System Physical Address Range]
+[02Ah 0042   2]                       Length : 0038
+
+[02Ch 0044   2]                  Range Index : 0004
+[02Eh 0046   2]        Flags (decoded below) : 0003
+                   Add/Online Operation Only : 1
+                      Proximity Domain Valid : 1
+[030h 0048   4]                     Reserved : 00000000
+[034h 0052   4]             Proximity Domain : 00000002
+[038h 0056  16]             Region Type GUID : 66F0D379-B4F3-4074-AC43-0D3318B78CDB
+[048h 0072   8]           Address Range Base : 0000000108000000
+[050h 0080   8]         Address Range Length : 0000000008000000
+[058h 0088   8]         Memory Map Attribute : 0000000000008008
+
+[060h 0096   2]                Subtable Type : 0001 [Memory Range Map]
+[062h 0098   2]                       Length : 0030
+
+[064h 0100   4]                Device Handle : 00000002
+[068h 0104   2]                  Physical Id : 0000
+[06Ah 0106   2]                    Region Id : 0000
+[06Ch 0108   2]                  Range Index : 0004
+[06Eh 0110   2]         Control Region Index : 0005
+[070h 0112   8]                  Region Size : 0000000008000000
+[078h 0120   8]                Region Offset : 0000000000000000
+[080h 0128   8]          Address Region Base : 0000000000000000
+[088h 0136   2]             Interleave Index : 0000
+[08Ah 0138   2]              Interleave Ways : 0001
+[08Ch 0140   2]                        Flags : 0000
+                       Save to device failed : 0
+                  Restore from device failed : 0
+                       Platform flush failed : 0
+                            Device not armed : 0
+                      Health events observed : 0
+                       Health events enabled : 0
+                              Mapping failed : 0
+[08Eh 0142   2]                     Reserved : 0000
+
+[090h 0144   2]                Subtable Type : 0004 [NVDIMM Control Region]
+[092h 0146   2]                       Length : 0050
+
+[094h 0148   2]                 Region Index : 0005
+[096h 0150   2]                    Vendor Id : 8086
+[098h 0152   2]                    Device Id : 0001
+[09Ah 0154   2]                  Revision Id : 0001
+[09Ch 0156   2]          Subsystem Vendor Id : 0000
+[09Eh 0158   2]          Subsystem Device Id : 0000
+[0A0h 0160   2]        Subsystem Revision Id : 0000
+[0A2h 0162   1]                 Valid Fields : 00
+[0A3h 0163   1]       Manufacturing Location : 00
+[0A4h 0164   2]           Manufacturing Date : 0000
+[0A6h 0166   2]                     Reserved : 0000
+[0A8h 0168   4]                Serial Number : 00123457
+[0ACh 0172   2]                         Code : 0301
+[0AEh 0174   2]                 Window Count : 0000
+[0B0h 0176   8]                  Window Size : 0000000000000000
+[0B8h 0184   8]               Command Offset : 0000000000000000
+[0C0h 0192   8]                 Command Size : 0000000000000000
+[0C8h 0200   8]                Status Offset : 0000000000000000
+[0D0h 0208   8]                  Status Size : 0000000000000000
+[0D8h 0216   2]                        Flags : 0000
+                            Windows buffered : 0
+[0DAh 0218   6]                    Reserved1 : 000000000000
+
+[0E0h 0224   2]                Subtable Type : 0007 [Platform Capabilities]
+[0E2h 0226   2]                       Length : 0010
+
+[0E4h 0228   1]           Highest Capability : 01
+[0E5h 0229   3]                     Reserved : 000000
+[0E8h 0232   4] Capabilities (decoded below) : 00000003
+                       Cache Flush to NVDIMM : 1
+                      Memory Flush to NVDIMM : 1
+                            Memory Mirroring : 0
+[0ECh 0236   4]                     Reserved : 00000000
+
+Raw Table Data: Length 240 (0xF0)
+
+    0000: 4E 46 49 54 F0 00 00 00 01 24 42 4F 43 48 53 20  // NFIT.....$BOCHS 
+    0010: 42 58 50 43 4E 46 49 54 01 00 00 00 42 58 50 43  // BXPCNFIT....BXPC
+    0020: 01 00 00 00 00 00 00 00 00 00 38 00 04 00 03 00  // ..........8.....
+    0030: 00 00 00 00 02 00 00 00 79 D3 F0 66 F3 B4 74 40  // ........y..f..t@
+    0040: AC 43 0D 33 18 B7 8C DB 00 00 00 08 01 00 00 00  // .C.3............
+    0050: 00 00 00 08 00 00 00 00 08 80 00 00 00 00 00 00  // ................
+    0060: 01 00 30 00 02 00 00 00 00 00 00 00 04 00 05 00  // ..0.............
+    0070: 00 00 00 08 00 00 00 00 00 00 00 00 00 00 00 00  // ................
+    0080: 00 00 00 00 00 00 00 00 00 00 01 00 00 00 00 00  // ................
+    0090: 04 00 50 00 05 00 86 80 01 00 01 00 00 00 00 00  // ..P.............
+    00A0: 00 00 00 00 00 00 00 00 57 34 12 00 01 03 00 00  // ........W4......
+    00B0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  // ................
+    00C0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  // ................
+    00D0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  // ................
+    00E0: 07 00 10 00 01 00 00 00 03 00 00 00 00 00 00 00  // ................
diff --git a/tests/data/acpi/q35/NFIT.dsl b/tests/data/acpi/q35/NFIT.dsl
new file mode 100644
index 0000000000..8da7718431
--- /dev/null
+++ b/tests/data/acpi/q35/NFIT.dsl
@@ -0,0 +1,115 @@ 
+/*
+ * Intel ACPI Component Architecture
+ * AML/ASL+ Disassembler version 20190509 (64-bit version)
+ * Copyright (c) 2000 - 2019 Intel Corporation
+ * 
+ * Disassembly of tests/data/acpi/q35/NFIT.dimmpxm, Mon Sep 28 17:24:38 2020
+ *
+ * ACPI Data Table [NFIT]
+ *
+ * Format: [HexOffset DecimalOffset ByteLength]  FieldName : FieldValue
+ */
+
+[000h 0000   4]                    Signature : "NFIT"    [NVDIMM Firmware Interface Table]
+[004h 0004   4]                 Table Length : 000000F0
+[008h 0008   1]                     Revision : 01
+[009h 0009   1]                     Checksum : 24
+[00Ah 0010   6]                       Oem ID : "BOCHS "
+[010h 0016   8]                 Oem Table ID : "BXPCNFIT"
+[018h 0024   4]                 Oem Revision : 00000001
+[01Ch 0028   4]              Asl Compiler ID : "BXPC"
+[020h 0032   4]        Asl Compiler Revision : 00000001
+
+[024h 0036   4]                     Reserved : 00000000
+
+[028h 0040   2]                Subtable Type : 0000 [System Physical Address Range]
+[02Ah 0042   2]                       Length : 0038
+
+[02Ch 0044   2]                  Range Index : 0004
+[02Eh 0046   2]        Flags (decoded below) : 0003
+                   Add/Online Operation Only : 1
+                      Proximity Domain Valid : 1
+[030h 0048   4]                     Reserved : 00000000
+[034h 0052   4]             Proximity Domain : 00000002
+[038h 0056  16]             Region Type GUID : 66F0D379-B4F3-4074-AC43-0D3318B78CDB
+[048h 0072   8]           Address Range Base : 0000000108000000
+[050h 0080   8]         Address Range Length : 0000000008000000
+[058h 0088   8]         Memory Map Attribute : 0000000000008008
+
+[060h 0096   2]                Subtable Type : 0001 [Memory Range Map]
+[062h 0098   2]                       Length : 0030
+
+[064h 0100   4]                Device Handle : 00000002
+[068h 0104   2]                  Physical Id : 0000
+[06Ah 0106   2]                    Region Id : 0000
+[06Ch 0108   2]                  Range Index : 0004
+[06Eh 0110   2]         Control Region Index : 0005
+[070h 0112   8]                  Region Size : 0000000008000000
+[078h 0120   8]                Region Offset : 0000000000000000
+[080h 0128   8]          Address Region Base : 0000000000000000
+[088h 0136   2]             Interleave Index : 0000
+[08Ah 0138   2]              Interleave Ways : 0001
+[08Ch 0140   2]                        Flags : 0000
+                       Save to device failed : 0
+                  Restore from device failed : 0
+                       Platform flush failed : 0
+                            Device not armed : 0
+                      Health events observed : 0
+                       Health events enabled : 0
+                              Mapping failed : 0
+[08Eh 0142   2]                     Reserved : 0000
+
+[090h 0144   2]                Subtable Type : 0004 [NVDIMM Control Region]
+[092h 0146   2]                       Length : 0050
+
+[094h 0148   2]                 Region Index : 0005
+[096h 0150   2]                    Vendor Id : 8086
+[098h 0152   2]                    Device Id : 0001
+[09Ah 0154   2]                  Revision Id : 0001
+[09Ch 0156   2]          Subsystem Vendor Id : 0000
+[09Eh 0158   2]          Subsystem Device Id : 0000
+[0A0h 0160   2]        Subsystem Revision Id : 0000
+[0A2h 0162   1]                 Valid Fields : 00
+[0A3h 0163   1]       Manufacturing Location : 00
+[0A4h 0164   2]           Manufacturing Date : 0000
+[0A6h 0166   2]                     Reserved : 0000
+[0A8h 0168   4]                Serial Number : 00123457
+[0ACh 0172   2]                         Code : 0301
+[0AEh 0174   2]                 Window Count : 0000
+[0B0h 0176   8]                  Window Size : 0000000000000000
+[0B8h 0184   8]               Command Offset : 0000000000000000
+[0C0h 0192   8]                 Command Size : 0000000000000000
+[0C8h 0200   8]                Status Offset : 0000000000000000
+[0D0h 0208   8]                  Status Size : 0000000000000000
+[0D8h 0216   2]                        Flags : 0000
+                            Windows buffered : 0
+[0DAh 0218   6]                    Reserved1 : 000000000000
+
+[0E0h 0224   2]                Subtable Type : 0007 [Platform Capabilities]
+[0E2h 0226   2]                       Length : 0010
+
+[0E4h 0228   1]           Highest Capability : 01
+[0E5h 0229   3]                     Reserved : 000000
+[0E8h 0232   4] Capabilities (decoded below) : 00000003
+                       Cache Flush to NVDIMM : 1
+                      Memory Flush to NVDIMM : 1
+                            Memory Mirroring : 0
+[0ECh 0236   4]                     Reserved : 00000000
+
+Raw Table Data: Length 240 (0xF0)
+
+    0000: 4E 46 49 54 F0 00 00 00 01 24 42 4F 43 48 53 20  // NFIT.....$BOCHS 
+    0010: 42 58 50 43 4E 46 49 54 01 00 00 00 42 58 50 43  // BXPCNFIT....BXPC
+    0020: 01 00 00 00 00 00 00 00 00 00 38 00 04 00 03 00  // ..........8.....
+    0030: 00 00 00 00 02 00 00 00 79 D3 F0 66 F3 B4 74 40  // ........y..f..t@
+    0040: AC 43 0D 33 18 B7 8C DB 00 00 00 08 01 00 00 00  // .C.3............
+    0050: 00 00 00 08 00 00 00 00 08 80 00 00 00 00 00 00  // ................
+    0060: 01 00 30 00 02 00 00 00 00 00 00 00 04 00 05 00  // ..0.............
+    0070: 00 00 00 08 00 00 00 00 00 00 00 00 00 00 00 00  // ................
+    0080: 00 00 00 00 00 00 00 00 00 00 01 00 00 00 00 00  // ................
+    0090: 04 00 50 00 05 00 86 80 01 00 01 00 00 00 00 00  // ..P.............
+    00A0: 00 00 00 00 00 00 00 00 57 34 12 00 01 03 00 00  // ........W4......
+    00B0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  // ................
+    00C0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  // ................
+    00D0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  // ................
+    00E0: 07 00 10 00 01 00 00 00 03 00 00 00 00 00 00 00  // ................
diff --git a/tests/data/acpi/q35/SLIT.cphp.dsl b/tests/data/acpi/q35/SLIT.cphp.dsl
new file mode 100644
index 0000000000..cb7347fbd4
--- /dev/null
+++ b/tests/data/acpi/q35/SLIT.cphp.dsl
@@ -0,0 +1,31 @@ 
+/*
+ * Intel ACPI Component Architecture
+ * AML/ASL+ Disassembler version 20190509 (64-bit version)
+ * Copyright (c) 2000 - 2019 Intel Corporation
+ * 
+ * Disassembly of tests/data/acpi/q35/SLIT.cphp, Tue Aug  4 11:14:15 2020
+ *
+ * ACPI Data Table [SLIT]
+ *
+ * Format: [HexOffset DecimalOffset ByteLength]  FieldName : FieldValue
+ */
+
+[000h 0000   4]                    Signature : "SLIT"    [System Locality Information Table]
+[004h 0004   4]                 Table Length : 00000030
+[008h 0008   1]                     Revision : 01
+[009h 0009   1]                     Checksum : 2C
+[00Ah 0010   6]                       Oem ID : "BOCHS "
+[010h 0016   8]                 Oem Table ID : "BXPCSLIT"
+[018h 0024   4]                 Oem Revision : 00000001
+[01Ch 0028   4]              Asl Compiler ID : "BXPC"
+[020h 0032   4]        Asl Compiler Revision : 00000001
+
+[024h 0036   8]                   Localities : 0000000000000002
+[02Ch 0044   2]                 Locality   0 : 0A 15
+[02Eh 0046   2]                 Locality   1 : 15 0A
+
+Raw Table Data: Length 48 (0x30)
+
+    0000: 53 4C 49 54 30 00 00 00 01 2C 42 4F 43 48 53 20  // SLIT0....,BOCHS 
+    0010: 42 58 50 43 53 4C 49 54 01 00 00 00 42 58 50 43  // BXPCSLIT....BXPC
+    0020: 01 00 00 00 02 00 00 00 00 00 00 00 0A 15 15 0A  // ................
diff --git a/tests/data/acpi/q35/SLIT.dsl b/tests/data/acpi/q35/SLIT.dsl
new file mode 100644
index 0000000000..89c381bdd0
--- /dev/null
+++ b/tests/data/acpi/q35/SLIT.dsl
@@ -0,0 +1,31 @@ 
+/*
+ * Intel ACPI Component Architecture
+ * AML/ASL+ Disassembler version 20190509 (64-bit version)
+ * Copyright (c) 2000 - 2019 Intel Corporation
+ * 
+ * Disassembly of tests/data/acpi/q35/SLIT.memhp, Mon Sep 28 17:24:38 2020
+ *
+ * ACPI Data Table [SLIT]
+ *
+ * Format: [HexOffset DecimalOffset ByteLength]  FieldName : FieldValue
+ */
+
+[000h 0000   4]                    Signature : "SLIT"    [System Locality Information Table]
+[004h 0004   4]                 Table Length : 00000030
+[008h 0008   1]                     Revision : 01
+[009h 0009   1]                     Checksum : 2C
+[00Ah 0010   6]                       Oem ID : "BOCHS "
+[010h 0016   8]                 Oem Table ID : "BXPCSLIT"
+[018h 0024   4]                 Oem Revision : 00000001
+[01Ch 0028   4]              Asl Compiler ID : "BXPC"
+[020h 0032   4]        Asl Compiler Revision : 00000001
+
+[024h 0036   8]                   Localities : 0000000000000002
+[02Ch 0044   2]                 Locality   0 : 0A 15
+[02Eh 0046   2]                 Locality   1 : 15 0A
+
+Raw Table Data: Length 48 (0x30)
+
+    0000: 53 4C 49 54 30 00 00 00 01 2C 42 4F 43 48 53 20  // SLIT0....,BOCHS 
+    0010: 42 58 50 43 53 4C 49 54 01 00 00 00 42 58 50 43  // BXPCSLIT....BXPC
+    0020: 01 00 00 00 02 00 00 00 00 00 00 00 0A 15 15 0A  // ................
diff --git a/tests/data/acpi/q35/SLIT.memhp.dsl b/tests/data/acpi/q35/SLIT.memhp.dsl
new file mode 100644
index 0000000000..70b233c0e6
--- /dev/null
+++ b/tests/data/acpi/q35/SLIT.memhp.dsl
@@ -0,0 +1,31 @@ 
+/*
+ * Intel ACPI Component Architecture
+ * AML/ASL+ Disassembler version 20190509 (64-bit version)
+ * Copyright (c) 2000 - 2019 Intel Corporation
+ * 
+ * Disassembly of tests/data/acpi/q35/SLIT.memhp, Tue Aug  4 11:14:15 2020
+ *
+ * ACPI Data Table [SLIT]
+ *
+ * Format: [HexOffset DecimalOffset ByteLength]  FieldName : FieldValue
+ */
+
+[000h 0000   4]                    Signature : "SLIT"    [System Locality Information Table]
+[004h 0004   4]                 Table Length : 00000030
+[008h 0008   1]                     Revision : 01
+[009h 0009   1]                     Checksum : 2C
+[00Ah 0010   6]                       Oem ID : "BOCHS "
+[010h 0016   8]                 Oem Table ID : "BXPCSLIT"
+[018h 0024   4]                 Oem Revision : 00000001
+[01Ch 0028   4]              Asl Compiler ID : "BXPC"
+[020h 0032   4]        Asl Compiler Revision : 00000001
+
+[024h 0036   8]                   Localities : 0000000000000002
+[02Ch 0044   2]                 Locality   0 : 0A 15
+[02Eh 0046   2]                 Locality   1 : 15 0A
+
+Raw Table Data: Length 48 (0x30)
+
+    0000: 53 4C 49 54 30 00 00 00 01 2C 42 4F 43 48 53 20  // SLIT0....,BOCHS 
+    0010: 42 58 50 43 53 4C 49 54 01 00 00 00 42 58 50 43  // BXPCSLIT....BXPC
+    0020: 01 00 00 00 02 00 00 00 00 00 00 00 0A 15 15 0A  // ................
diff --git a/tests/data/acpi/q35/SRAT.acpihmat.dsl b/tests/data/acpi/q35/SRAT.acpihmat.dsl
new file mode 100644
index 0000000000..8a1b47e6b0
--- /dev/null
+++ b/tests/data/acpi/q35/SRAT.acpihmat.dsl
@@ -0,0 +1,137 @@ 
+/*
+ * Intel ACPI Component Architecture
+ * AML/ASL+ Disassembler version 20190509 (64-bit version)
+ * Copyright (c) 2000 - 2019 Intel Corporation
+ * 
+ * Disassembly of tests/data/acpi/q35/SRAT.acpihmat, Tue Aug  4 11:14:15 2020
+ *
+ * ACPI Data Table [SRAT]
+ *
+ * Format: [HexOffset DecimalOffset ByteLength]  FieldName : FieldValue
+ */
+
+[000h 0000   4]                    Signature : "SRAT"    [System Resource Affinity Table]
+[004h 0004   4]                 Table Length : 00000118
+[008h 0008   1]                     Revision : 01
+[009h 0009   1]                     Checksum : C0
+[00Ah 0010   6]                       Oem ID : "BOCHS "
+[010h 0016   8]                 Oem Table ID : "BXPCSRAT"
+[018h 0024   4]                 Oem Revision : 00000001
+[01Ch 0028   4]              Asl Compiler ID : "BXPC"
+[020h 0032   4]        Asl Compiler Revision : 00000001
+
+[024h 0036   4]               Table Revision : 00000001
+[028h 0040   8]                     Reserved : 0000000000000000
+
+[030h 0048   1]                Subtable Type : 00 [Processor Local APIC/SAPIC Affinity]
+[031h 0049   1]                       Length : 10
+
+[032h 0050   1]      Proximity Domain Low(8) : 00
+[033h 0051   1]                      Apic ID : 00
+[034h 0052   4]        Flags (decoded below) : 00000001
+                                     Enabled : 1
+[038h 0056   1]              Local Sapic EID : 00
+[039h 0057   3]    Proximity Domain High(24) : 000000
+[03Ch 0060   4]                 Clock Domain : 00000000
+
+[040h 0064   1]                Subtable Type : 00 [Processor Local APIC/SAPIC Affinity]
+[041h 0065   1]                       Length : 10
+
+[042h 0066   1]      Proximity Domain Low(8) : 00
+[043h 0067   1]                      Apic ID : 01
+[044h 0068   4]        Flags (decoded below) : 00000001
+                                     Enabled : 1
+[048h 0072   1]              Local Sapic EID : 00
+[049h 0073   3]    Proximity Domain High(24) : 000000
+[04Ch 0076   4]                 Clock Domain : 00000000
+
+[050h 0080   1]                Subtable Type : 01 [Memory Affinity]
+[051h 0081   1]                       Length : 28
+
+[052h 0082   4]             Proximity Domain : 00000000
+[056h 0086   2]                    Reserved1 : 0000
+[058h 0088   8]                 Base Address : 0000000000000000
+[060h 0096   8]               Address Length : 00000000000A0000
+[068h 0104   4]                    Reserved2 : 00000000
+[06Ch 0108   4]        Flags (decoded below) : 00000001
+                                     Enabled : 1
+                               Hot Pluggable : 0
+                                Non-Volatile : 0
+[070h 0112   8]                    Reserved3 : 0000000000000000
+
+[078h 0120   1]                Subtable Type : 01 [Memory Affinity]
+[079h 0121   1]                       Length : 28
+
+[07Ah 0122   4]             Proximity Domain : 00000000
+[07Eh 0126   2]                    Reserved1 : 0000
+[080h 0128   8]                 Base Address : 0000000000100000
+[088h 0136   8]               Address Length : 0000000003F00000
+[090h 0144   4]                    Reserved2 : 00000000
+[094h 0148   4]        Flags (decoded below) : 00000001
+                                     Enabled : 1
+                               Hot Pluggable : 0
+                                Non-Volatile : 0
+[098h 0152   8]                    Reserved3 : 0000000000000000
+
+[0A0h 0160   1]                Subtable Type : 01 [Memory Affinity]
+[0A1h 0161   1]                       Length : 28
+
+[0A2h 0162   4]             Proximity Domain : 00000001
+[0A6h 0166   2]                    Reserved1 : 0000
+[0A8h 0168   8]                 Base Address : 0000000004000000
+[0B0h 0176   8]               Address Length : 0000000004000000
+[0B8h 0184   4]                    Reserved2 : 00000000
+[0BCh 0188   4]        Flags (decoded below) : 00000001
+                                     Enabled : 1
+                               Hot Pluggable : 0
+                                Non-Volatile : 0
+[0C0h 0192   8]                    Reserved3 : 0000000000000000
+
+[0C8h 0200   1]                Subtable Type : 01 [Memory Affinity]
+[0C9h 0201   1]                       Length : 28
+
+[0CAh 0202   4]             Proximity Domain : 00000000
+[0CEh 0206   2]                    Reserved1 : 0000
+[0D0h 0208   8]                 Base Address : 0000000000000000
+[0D8h 0216   8]               Address Length : 0000000000000000
+[0E0h 0224   4]                    Reserved2 : 00000000
+[0E4h 0228   4]        Flags (decoded below) : 00000000
+                                     Enabled : 0
+                               Hot Pluggable : 0
+                                Non-Volatile : 0
+[0E8h 0232   8]                    Reserved3 : 0000000000000000
+
+[0F0h 0240   1]                Subtable Type : 01 [Memory Affinity]
+[0F1h 0241   1]                       Length : 28
+
+[0F2h 0242   4]             Proximity Domain : 00000001
+[0F6h 0246   2]                    Reserved1 : 0000
+[0F8h 0248   8]                 Base Address : 0000000100000000
+[100h 0256   8]               Address Length : 00000000B8000000
+[108h 0264   4]                    Reserved2 : 00000000
+[10Ch 0268   4]        Flags (decoded below) : 00000003
+                                     Enabled : 1
+                               Hot Pluggable : 1
+                                Non-Volatile : 0
+[110h 0272   8]                    Reserved3 : 0000000000000000
+
+Raw Table Data: Length 280 (0x118)
+
+    0000: 53 52 41 54 18 01 00 00 01 C0 42 4F 43 48 53 20  // SRAT......BOCHS 
+    0010: 42 58 50 43 53 52 41 54 01 00 00 00 42 58 50 43  // BXPCSRAT....BXPC
+    0020: 01 00 00 00 01 00 00 00 00 00 00 00 00 00 00 00  // ................
+    0030: 00 10 00 00 01 00 00 00 00 00 00 00 00 00 00 00  // ................
+    0040: 00 10 00 01 01 00 00 00 00 00 00 00 00 00 00 00  // ................
+    0050: 01 28 00 00 00 00 00 00 00 00 00 00 00 00 00 00  // .(..............
+    0060: 00 00 0A 00 00 00 00 00 00 00 00 00 01 00 00 00  // ................
+    0070: 00 00 00 00 00 00 00 00 01 28 00 00 00 00 00 00  // .........(......
+    0080: 00 00 10 00 00 00 00 00 00 00 F0 03 00 00 00 00  // ................
+    0090: 00 00 00 00 01 00 00 00 00 00 00 00 00 00 00 00  // ................
+    00A0: 01 28 01 00 00 00 00 00 00 00 00 04 00 00 00 00  // .(..............
+    00B0: 00 00 00 04 00 00 00 00 00 00 00 00 01 00 00 00  // ................
+    00C0: 00 00 00 00 00 00 00 00 01 28 00 00 00 00 00 00  // .........(......
+    00D0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  // ................
+    00E0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  // ................
+    00F0: 01 28 01 00 00 00 00 00 00 00 00 00 01 00 00 00  // .(..............
+    0100: 00 00 00 B8 00 00 00 00 00 00 00 00 03 00 00 00  // ................
+    0110: 00 00 00 00 00 00 00 00                          // ........
diff --git a/tests/data/acpi/q35/SRAT.cphp.dsl b/tests/data/acpi/q35/SRAT.cphp.dsl
new file mode 100644
index 0000000000..f0023db38d
--- /dev/null
+++ b/tests/data/acpi/q35/SRAT.cphp.dsl
@@ -0,0 +1,168 @@ 
+/*
+ * Intel ACPI Component Architecture
+ * AML/ASL+ Disassembler version 20190509 (64-bit version)
+ * Copyright (c) 2000 - 2019 Intel Corporation
+ * 
+ * Disassembly of tests/data/acpi/q35/SRAT.cphp, Tue Aug  4 11:14:15 2020
+ *
+ * ACPI Data Table [SRAT]
+ *
+ * Format: [HexOffset DecimalOffset ByteLength]  FieldName : FieldValue
+ */
+
+[000h 0000   4]                    Signature : "SRAT"    [System Resource Affinity Table]
+[004h 0004   4]                 Table Length : 00000130
+[008h 0008   1]                     Revision : 01
+[009h 0009   1]                     Checksum : 36
+[00Ah 0010   6]                       Oem ID : "BOCHS "
+[010h 0016   8]                 Oem Table ID : "BXPCSRAT"
+[018h 0024   4]                 Oem Revision : 00000001
+[01Ch 0028   4]              Asl Compiler ID : "BXPC"
+[020h 0032   4]        Asl Compiler Revision : 00000001
+
+[024h 0036   4]               Table Revision : 00000001
+[028h 0040   8]                     Reserved : 0000000000000000
+
+[030h 0048   1]                Subtable Type : 00 [Processor Local APIC/SAPIC Affinity]
+[031h 0049   1]                       Length : 10
+
+[032h 0050   1]      Proximity Domain Low(8) : 00
+[033h 0051   1]                      Apic ID : 00
+[034h 0052   4]        Flags (decoded below) : 00000001
+                                     Enabled : 1
+[038h 0056   1]              Local Sapic EID : 00
+[039h 0057   3]    Proximity Domain High(24) : 000000
+[03Ch 0060   4]                 Clock Domain : 00000000
+
+[040h 0064   1]                Subtable Type : 00 [Processor Local APIC/SAPIC Affinity]
+[041h 0065   1]                       Length : 10
+
+[042h 0066   1]      Proximity Domain Low(8) : 00
+[043h 0067   1]                      Apic ID : 01
+[044h 0068   4]        Flags (decoded below) : 00000001
+                                     Enabled : 1
+[048h 0072   1]              Local Sapic EID : 00
+[049h 0073   3]    Proximity Domain High(24) : 000000
+[04Ch 0076   4]                 Clock Domain : 00000000
+
+[050h 0080   1]                Subtable Type : 00 [Processor Local APIC/SAPIC Affinity]
+[051h 0081   1]                       Length : 10
+
+[052h 0082   1]      Proximity Domain Low(8) : 00
+[053h 0083   1]                      Apic ID : 02
+[054h 0084   4]        Flags (decoded below) : 00000001
+                                     Enabled : 1
+[058h 0088   1]              Local Sapic EID : 00
+[059h 0089   3]    Proximity Domain High(24) : 000000
+[05Ch 0092   4]                 Clock Domain : 00000000
+
+[060h 0096   1]                Subtable Type : 00 [Processor Local APIC/SAPIC Affinity]
+[061h 0097   1]                       Length : 10
+
+[062h 0098   1]      Proximity Domain Low(8) : 01
+[063h 0099   1]                      Apic ID : 04
+[064h 0100   4]        Flags (decoded below) : 00000001
+                                     Enabled : 1
+[068h 0104   1]              Local Sapic EID : 00
+[069h 0105   3]    Proximity Domain High(24) : 000000
+[06Ch 0108   4]                 Clock Domain : 00000000
+
+[070h 0112   1]                Subtable Type : 00 [Processor Local APIC/SAPIC Affinity]
+[071h 0113   1]                       Length : 10
+
+[072h 0114   1]      Proximity Domain Low(8) : 01
+[073h 0115   1]                      Apic ID : 05
+[074h 0116   4]        Flags (decoded below) : 00000001
+                                     Enabled : 1
+[078h 0120   1]              Local Sapic EID : 00
+[079h 0121   3]    Proximity Domain High(24) : 000000
+[07Ch 0124   4]                 Clock Domain : 00000000
+
+[080h 0128   1]                Subtable Type : 00 [Processor Local APIC/SAPIC Affinity]
+[081h 0129   1]                       Length : 10
+
+[082h 0130   1]      Proximity Domain Low(8) : 01
+[083h 0131   1]                      Apic ID : 06
+[084h 0132   4]        Flags (decoded below) : 00000001
+                                     Enabled : 1
+[088h 0136   1]              Local Sapic EID : 00
+[089h 0137   3]    Proximity Domain High(24) : 000000
+[08Ch 0140   4]                 Clock Domain : 00000000
+
+[090h 0144   1]                Subtable Type : 01 [Memory Affinity]
+[091h 0145   1]                       Length : 28
+
+[092h 0146   4]             Proximity Domain : 00000000
+[096h 0150   2]                    Reserved1 : 0000
+[098h 0152   8]                 Base Address : 0000000000000000
+[0A0h 0160   8]               Address Length : 00000000000A0000
+[0A8h 0168   4]                    Reserved2 : 00000000
+[0ACh 0172   4]        Flags (decoded below) : 00000001
+                                     Enabled : 1
+                               Hot Pluggable : 0
+                                Non-Volatile : 0
+[0B0h 0176   8]                    Reserved3 : 0000000000000000
+
+[0B8h 0184   1]                Subtable Type : 01 [Memory Affinity]
+[0B9h 0185   1]                       Length : 28
+
+[0BAh 0186   4]             Proximity Domain : 00000000
+[0BEh 0190   2]                    Reserved1 : 0000
+[0C0h 0192   8]                 Base Address : 0000000000100000
+[0C8h 0200   8]               Address Length : 0000000003F00000
+[0D0h 0208   4]                    Reserved2 : 00000000
+[0D4h 0212   4]        Flags (decoded below) : 00000001
+                                     Enabled : 1
+                               Hot Pluggable : 0
+                                Non-Volatile : 0
+[0D8h 0216   8]                    Reserved3 : 0000000000000000
+
+[0E0h 0224   1]                Subtable Type : 01 [Memory Affinity]
+[0E1h 0225   1]                       Length : 28
+
+[0E2h 0226   4]             Proximity Domain : 00000001
+[0E6h 0230   2]                    Reserved1 : 0000
+[0E8h 0232   8]                 Base Address : 0000000004000000
+[0F0h 0240   8]               Address Length : 0000000004000000
+[0F8h 0248   4]                    Reserved2 : 00000000
+[0FCh 0252   4]        Flags (decoded below) : 00000001
+                                     Enabled : 1
+                               Hot Pluggable : 0
+                                Non-Volatile : 0
+[100h 0256   8]                    Reserved3 : 0000000000000000
+
+[108h 0264   1]                Subtable Type : 01 [Memory Affinity]
+[109h 0265   1]                       Length : 28
+
+[10Ah 0266   4]             Proximity Domain : 00000000
+[10Eh 0270   2]                    Reserved1 : 0000
+[110h 0272   8]                 Base Address : 0000000000000000
+[118h 0280   8]               Address Length : 0000000000000000
+[120h 0288   4]                    Reserved2 : 00000000
+[124h 0292   4]        Flags (decoded below) : 00000000
+                                     Enabled : 0
+                               Hot Pluggable : 0
+                                Non-Volatile : 0
+[128h 0296   8]                    Reserved3 : 0000000000000000
+
+Raw Table Data: Length 304 (0x130)
+
+    0000: 53 52 41 54 30 01 00 00 01 36 42 4F 43 48 53 20  // SRAT0....6BOCHS 
+    0010: 42 58 50 43 53 52 41 54 01 00 00 00 42 58 50 43  // BXPCSRAT....BXPC
+    0020: 01 00 00 00 01 00 00 00 00 00 00 00 00 00 00 00  // ................
+    0030: 00 10 00 00 01 00 00 00 00 00 00 00 00 00 00 00  // ................
+    0040: 00 10 00 01 01 00 00 00 00 00 00 00 00 00 00 00  // ................
+    0050: 00 10 00 02 01 00 00 00 00 00 00 00 00 00 00 00  // ................
+    0060: 00 10 01 04 01 00 00 00 00 00 00 00 00 00 00 00  // ................
+    0070: 00 10 01 05 01 00 00 00 00 00 00 00 00 00 00 00  // ................
+    0080: 00 10 01 06 01 00 00 00 00 00 00 00 00 00 00 00  // ................
+    0090: 01 28 00 00 00 00 00 00 00 00 00 00 00 00 00 00  // .(..............
+    00A0: 00 00 0A 00 00 00 00 00 00 00 00 00 01 00 00 00  // ................
+    00B0: 00 00 00 00 00 00 00 00 01 28 00 00 00 00 00 00  // .........(......
+    00C0: 00 00 10 00 00 00 00 00 00 00 F0 03 00 00 00 00  // ................
+    00D0: 00 00 00 00 01 00 00 00 00 00 00 00 00 00 00 00  // ................
+    00E0: 01 28 01 00 00 00 00 00 00 00 00 04 00 00 00 00  // .(..............
+    00F0: 00 00 00 04 00 00 00 00 00 00 00 00 01 00 00 00  // ................
+    0100: 00 00 00 00 00 00 00 00 01 28 00 00 00 00 00 00  // .........(......
+    0110: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  // ................
+    0120: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  // ................
diff --git a/tests/data/acpi/q35/SRAT.dimmpxm.dsl b/tests/data/acpi/q35/SRAT.dimmpxm.dsl
new file mode 100644
index 0000000000..2cfe6994f5
--- /dev/null
+++ b/tests/data/acpi/q35/SRAT.dimmpxm.dsl
@@ -0,0 +1,194 @@ 
+/*
+ * Intel ACPI Component Architecture
+ * AML/ASL+ Disassembler version 20190509 (64-bit version)
+ * Copyright (c) 2000 - 2019 Intel Corporation
+ * 
+ * Disassembly of tests/data/acpi/q35/SRAT.dimmpxm, Tue Aug  4 11:14:15 2020
+ *
+ * ACPI Data Table [SRAT]
+ *
+ * Format: [HexOffset DecimalOffset ByteLength]  FieldName : FieldValue
+ */
+
+[000h 0000   4]                    Signature : "SRAT"    [System Resource Affinity Table]
+[004h 0004   4]                 Table Length : 00000188
+[008h 0008   1]                     Revision : 01
+[009h 0009   1]                     Checksum : 68
+[00Ah 0010   6]                       Oem ID : "BOCHS "
+[010h 0016   8]                 Oem Table ID : "BXPCSRAT"
+[018h 0024   4]                 Oem Revision : 00000001
+[01Ch 0028   4]              Asl Compiler ID : "BXPC"
+[020h 0032   4]        Asl Compiler Revision : 00000001
+
+[024h 0036   4]               Table Revision : 00000001
+[028h 0040   8]                     Reserved : 0000000000000000
+
+[030h 0048   1]                Subtable Type : 00 [Processor Local APIC/SAPIC Affinity]
+[031h 0049   1]                       Length : 10
+
+[032h 0050   1]      Proximity Domain Low(8) : 00
+[033h 0051   1]                      Apic ID : 00
+[034h 0052   4]        Flags (decoded below) : 00000001
+                                     Enabled : 1
+[038h 0056   1]              Local Sapic EID : 00
+[039h 0057   3]    Proximity Domain High(24) : 000000
+[03Ch 0060   4]                 Clock Domain : 00000000
+
+[040h 0064   1]                Subtable Type : 00 [Processor Local APIC/SAPIC Affinity]
+[041h 0065   1]                       Length : 10
+
+[042h 0066   1]      Proximity Domain Low(8) : 01
+[043h 0067   1]                      Apic ID : 01
+[044h 0068   4]        Flags (decoded below) : 00000001
+                                     Enabled : 1
+[048h 0072   1]              Local Sapic EID : 00
+[049h 0073   3]    Proximity Domain High(24) : 000000
+[04Ch 0076   4]                 Clock Domain : 00000000
+
+[050h 0080   1]                Subtable Type : 00 [Processor Local APIC/SAPIC Affinity]
+[051h 0081   1]                       Length : 10
+
+[052h 0082   1]      Proximity Domain Low(8) : 02
+[053h 0083   1]                      Apic ID : 02
+[054h 0084   4]        Flags (decoded below) : 00000001
+                                     Enabled : 1
+[058h 0088   1]              Local Sapic EID : 00
+[059h 0089   3]    Proximity Domain High(24) : 000000
+[05Ch 0092   4]                 Clock Domain : 00000000
+
+[060h 0096   1]                Subtable Type : 00 [Processor Local APIC/SAPIC Affinity]
+[061h 0097   1]                       Length : 10
+
+[062h 0098   1]      Proximity Domain Low(8) : 03
+[063h 0099   1]                      Apic ID : 03
+[064h 0100   4]        Flags (decoded below) : 00000001
+                                     Enabled : 1
+[068h 0104   1]              Local Sapic EID : 00
+[069h 0105   3]    Proximity Domain High(24) : 000000
+[06Ch 0108   4]                 Clock Domain : 00000000
+
+[070h 0112   1]                Subtable Type : 01 [Memory Affinity]
+[071h 0113   1]                       Length : 28
+
+[072h 0114   4]             Proximity Domain : 00000000
+[076h 0118   2]                    Reserved1 : 0000
+[078h 0120   8]                 Base Address : 0000000000000000
+[080h 0128   8]               Address Length : 00000000000A0000
+[088h 0136   4]                    Reserved2 : 00000000
+[08Ch 0140   4]        Flags (decoded below) : 00000001
+                                     Enabled : 1
+                               Hot Pluggable : 0
+                                Non-Volatile : 0
+[090h 0144   8]                    Reserved3 : 0000000000000000
+
+[098h 0152   1]                Subtable Type : 01 [Memory Affinity]
+[099h 0153   1]                       Length : 28
+
+[09Ah 0154   4]             Proximity Domain : 00000000
+[09Eh 0158   2]                    Reserved1 : 0000
+[0A0h 0160   8]                 Base Address : 0000000000100000
+[0A8h 0168   8]               Address Length : 0000000001F00000
+[0B0h 0176   4]                    Reserved2 : 00000000
+[0B4h 0180   4]        Flags (decoded below) : 00000001
+                                     Enabled : 1
+                               Hot Pluggable : 0
+                                Non-Volatile : 0
+[0B8h 0184   8]                    Reserved3 : 0000000000000000
+
+[0C0h 0192   1]                Subtable Type : 01 [Memory Affinity]
+[0C1h 0193   1]                       Length : 28
+
+[0C2h 0194   4]             Proximity Domain : 00000001
+[0C6h 0198   2]                    Reserved1 : 0000
+[0C8h 0200   8]                 Base Address : 0000000002000000
+[0D0h 0208   8]               Address Length : 0000000002000000
+[0D8h 0216   4]                    Reserved2 : 00000000
+[0DCh 0220   4]        Flags (decoded below) : 00000001
+                                     Enabled : 1
+                               Hot Pluggable : 0
+                                Non-Volatile : 0
+[0E0h 0224   8]                    Reserved3 : 0000000000000000
+
+[0E8h 0232   1]                Subtable Type : 01 [Memory Affinity]
+[0E9h 0233   1]                       Length : 28
+
+[0EAh 0234   4]             Proximity Domain : 00000002
+[0EEh 0238   2]                    Reserved1 : 0000
+[0F0h 0240   8]                 Base Address : 0000000004000000
+[0F8h 0248   8]               Address Length : 0000000002000000
+[100h 0256   4]                    Reserved2 : 00000000
+[104h 0260   4]        Flags (decoded below) : 00000001
+                                     Enabled : 1
+                               Hot Pluggable : 0
+                                Non-Volatile : 0
+[108h 0264   8]                    Reserved3 : 0000000000000000
+
+[110h 0272   1]                Subtable Type : 01 [Memory Affinity]
+[111h 0273   1]                       Length : 28
+
+[112h 0274   4]             Proximity Domain : 00000003
+[116h 0278   2]                    Reserved1 : 0000
+[118h 0280   8]                 Base Address : 0000000006000000
+[120h 0288   8]               Address Length : 0000000002000000
+[128h 0296   4]                    Reserved2 : 00000000
+[12Ch 0300   4]        Flags (decoded below) : 00000001
+                                     Enabled : 1
+                               Hot Pluggable : 0
+                                Non-Volatile : 0
+[130h 0304   8]                    Reserved3 : 0000000000000000
+
+[138h 0312   1]                Subtable Type : 01 [Memory Affinity]
+[139h 0313   1]                       Length : 28
+
+[13Ah 0314   4]             Proximity Domain : 00000002
+[13Eh 0318   2]                    Reserved1 : 0000
+[140h 0320   8]                 Base Address : 0000000108000000
+[148h 0328   8]               Address Length : 0000000008000000
+[150h 0336   4]                    Reserved2 : 00000000
+[154h 0340   4]        Flags (decoded below) : 00000005
+                                     Enabled : 1
+                               Hot Pluggable : 0
+                                Non-Volatile : 1
+[158h 0344   8]                    Reserved3 : 0000000000000000
+
+[160h 0352   1]                Subtable Type : 01 [Memory Affinity]
+[161h 0353   1]                       Length : 28
+
+[162h 0354   4]             Proximity Domain : 00000003
+[166h 0358   2]                    Reserved1 : 0000
+[168h 0360   8]                 Base Address : 0000000100000000
+[170h 0368   8]               Address Length : 00000000F8000000
+[178h 0376   4]                    Reserved2 : 00000000
+[17Ch 0380   4]        Flags (decoded below) : 00000003
+                                     Enabled : 1
+                               Hot Pluggable : 1
+                                Non-Volatile : 0
+[180h 0384   8]                    Reserved3 : 0000000000000000
+
+Raw Table Data: Length 392 (0x188)
+
+    0000: 53 52 41 54 88 01 00 00 01 68 42 4F 43 48 53 20  // SRAT.....hBOCHS 
+    0010: 42 58 50 43 53 52 41 54 01 00 00 00 42 58 50 43  // BXPCSRAT....BXPC
+    0020: 01 00 00 00 01 00 00 00 00 00 00 00 00 00 00 00  // ................
+    0030: 00 10 00 00 01 00 00 00 00 00 00 00 00 00 00 00  // ................
+    0040: 00 10 01 01 01 00 00 00 00 00 00 00 00 00 00 00  // ................
+    0050: 00 10 02 02 01 00 00 00 00 00 00 00 00 00 00 00  // ................
+    0060: 00 10 03 03 01 00 00 00 00 00 00 00 00 00 00 00  // ................
+    0070: 01 28 00 00 00 00 00 00 00 00 00 00 00 00 00 00  // .(..............
+    0080: 00 00 0A 00 00 00 00 00 00 00 00 00 01 00 00 00  // ................
+    0090: 00 00 00 00 00 00 00 00 01 28 00 00 00 00 00 00  // .........(......
+    00A0: 00 00 10 00 00 00 00 00 00 00 F0 01 00 00 00 00  // ................
+    00B0: 00 00 00 00 01 00 00 00 00 00 00 00 00 00 00 00  // ................
+    00C0: 01 28 01 00 00 00 00 00 00 00 00 02 00 00 00 00  // .(..............
+    00D0: 00 00 00 02 00 00 00 00 00 00 00 00 01 00 00 00  // ................
+    00E0: 00 00 00 00 00 00 00 00 01 28 02 00 00 00 00 00  // .........(......
+    00F0: 00 00 00 04 00 00 00 00 00 00 00 02 00 00 00 00  // ................
+    0100: 00 00 00 00 01 00 00 00 00 00 00 00 00 00 00 00  // ................
+    0110: 01 28 03 00 00 00 00 00 00 00 00 06 00 00 00 00  // .(..............
+    0120: 00 00 00 02 00 00 00 00 00 00 00 00 01 00 00 00  // ................
+    0130: 00 00 00 00 00 00 00 00 01 28 02 00 00 00 00 00  // .........(......
+    0140: 00 00 00 08 01 00 00 00 00 00 00 08 00 00 00 00  // ................
+    0150: 00 00 00 00 05 00 00 00 00 00 00 00 00 00 00 00  // ................
+    0160: 01 28 03 00 00 00 00 00 00 00 00 00 01 00 00 00  // .(..............
+    0170: 00 00 00 F8 00 00 00 00 00 00 00 00 03 00 00 00  // ................
+    0180: 00 00 00 00 00 00 00 00                          // ........
diff --git a/tests/data/acpi/q35/SRAT.dsl b/tests/data/acpi/q35/SRAT.dsl
new file mode 100644
index 0000000000..5f4278994e
--- /dev/null
+++ b/tests/data/acpi/q35/SRAT.dsl
@@ -0,0 +1,108 @@ 
+/*
+ * Intel ACPI Component Architecture
+ * AML/ASL+ Disassembler version 20190509 (64-bit version)
+ * Copyright (c) 2000 - 2019 Intel Corporation
+ * 
+ * Disassembly of tests/data/acpi/q35/SRAT.numamem, Mon Sep 28 17:24:38 2020
+ *
+ * ACPI Data Table [SRAT]
+ *
+ * Format: [HexOffset DecimalOffset ByteLength]  FieldName : FieldValue
+ */
+
+[000h 0000   4]                    Signature : "SRAT"    [System Resource Affinity Table]
+[004h 0004   4]                 Table Length : 000000E0
+[008h 0008   1]                     Revision : 01
+[009h 0009   1]                     Checksum : F5
+[00Ah 0010   6]                       Oem ID : "BOCHS "
+[010h 0016   8]                 Oem Table ID : "BXPCSRAT"
+[018h 0024   4]                 Oem Revision : 00000001
+[01Ch 0028   4]              Asl Compiler ID : "BXPC"
+[020h 0032   4]        Asl Compiler Revision : 00000001
+
+[024h 0036   4]               Table Revision : 00000001
+[028h 0040   8]                     Reserved : 0000000000000000
+
+[030h 0048   1]                Subtable Type : 00 [Processor Local APIC/SAPIC Affinity]
+[031h 0049   1]                       Length : 10
+
+[032h 0050   1]      Proximity Domain Low(8) : 00
+[033h 0051   1]                      Apic ID : 00
+[034h 0052   4]        Flags (decoded below) : 00000001
+                                     Enabled : 1
+[038h 0056   1]              Local Sapic EID : 00
+[039h 0057   3]    Proximity Domain High(24) : 000000
+[03Ch 0060   4]                 Clock Domain : 00000000
+
+[040h 0064   1]                Subtable Type : 01 [Memory Affinity]
+[041h 0065   1]                       Length : 28
+
+[042h 0066   4]             Proximity Domain : 00000001
+[046h 0070   2]                    Reserved1 : 0000
+[048h 0072   8]                 Base Address : 0000000000000000
+[050h 0080   8]               Address Length : 00000000000A0000
+[058h 0088   4]                    Reserved2 : 00000000
+[05Ch 0092   4]        Flags (decoded below) : 00000001
+                                     Enabled : 1
+                               Hot Pluggable : 0
+                                Non-Volatile : 0
+[060h 0096   8]                    Reserved3 : 0000000000000000
+
+[068h 0104   1]                Subtable Type : 01 [Memory Affinity]
+[069h 0105   1]                       Length : 28
+
+[06Ah 0106   4]             Proximity Domain : 00000001
+[06Eh 0110   2]                    Reserved1 : 0000
+[070h 0112   8]                 Base Address : 0000000000100000
+[078h 0120   8]               Address Length : 0000000007F00000
+[080h 0128   4]                    Reserved2 : 00000000
+[084h 0132   4]        Flags (decoded below) : 00000001
+                                     Enabled : 1
+                               Hot Pluggable : 0
+                                Non-Volatile : 0
+[088h 0136   8]                    Reserved3 : 0000000000000000
+
+[090h 0144   1]                Subtable Type : 01 [Memory Affinity]
+[091h 0145   1]                       Length : 28
+
+[092h 0146   4]             Proximity Domain : 00000000
+[096h 0150   2]                    Reserved1 : 0000
+[098h 0152   8]                 Base Address : 0000000000000000
+[0A0h 0160   8]               Address Length : 0000000000000000
+[0A8h 0168   4]                    Reserved2 : 00000000
+[0ACh 0172   4]        Flags (decoded below) : 00000000
+                                     Enabled : 0
+                               Hot Pluggable : 0
+                                Non-Volatile : 0
+[0B0h 0176   8]                    Reserved3 : 0000000000000000
+
+[0B8h 0184   1]                Subtable Type : 01 [Memory Affinity]
+[0B9h 0185   1]                       Length : 28
+
+[0BAh 0186   4]             Proximity Domain : 00000000
+[0BEh 0190   2]                    Reserved1 : 0000
+[0C0h 0192   8]                 Base Address : 0000000000000000
+[0C8h 0200   8]               Address Length : 0000000000000000
+[0D0h 0208   4]                    Reserved2 : 00000000
+[0D4h 0212   4]        Flags (decoded below) : 00000000
+                                     Enabled : 0
+                               Hot Pluggable : 0
+                                Non-Volatile : 0
+[0D8h 0216   8]                    Reserved3 : 0000000000000000
+
+Raw Table Data: Length 224 (0xE0)
+
+    0000: 53 52 41 54 E0 00 00 00 01 F5 42 4F 43 48 53 20  // SRAT......BOCHS 
+    0010: 42 58 50 43 53 52 41 54 01 00 00 00 42 58 50 43  // BXPCSRAT....BXPC
+    0020: 01 00 00 00 01 00 00 00 00 00 00 00 00 00 00 00  // ................
+    0030: 00 10 00 00 01 00 00 00 00 00 00 00 00 00 00 00  // ................
+    0040: 01 28 01 00 00 00 00 00 00 00 00 00 00 00 00 00  // .(..............
+    0050: 00 00 0A 00 00 00 00 00 00 00 00 00 01 00 00 00  // ................
+    0060: 00 00 00 00 00 00 00 00 01 28 01 00 00 00 00 00  // .........(......
+    0070: 00 00 10 00 00 00 00 00 00 00 F0 07 00 00 00 00  // ................
+    0080: 00 00 00 00 01 00 00 00 00 00 00 00 00 00 00 00  // ................
+    0090: 01 28 00 00 00 00 00 00 00 00 00 00 00 00 00 00  // .(..............
+    00A0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  // ................
+    00B0: 00 00 00 00 00 00 00 00 01 28 00 00 00 00 00 00  // .........(......
+    00C0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  // ................
+    00D0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  // ................
diff --git a/tests/data/acpi/q35/SRAT.memhp.dsl b/tests/data/acpi/q35/SRAT.memhp.dsl
new file mode 100644
index 0000000000..a5f27214eb
--- /dev/null
+++ b/tests/data/acpi/q35/SRAT.memhp.dsl
@@ -0,0 +1,125 @@ 
+/*
+ * Intel ACPI Component Architecture
+ * AML/ASL+ Disassembler version 20190509 (64-bit version)
+ * Copyright (c) 2000 - 2019 Intel Corporation
+ * 
+ * Disassembly of tests/data/acpi/q35/SRAT.memhp, Tue Aug  4 11:14:15 2020
+ *
+ * ACPI Data Table [SRAT]
+ *
+ * Format: [HexOffset DecimalOffset ByteLength]  FieldName : FieldValue
+ */
+
+[000h 0000   4]                    Signature : "SRAT"    [System Resource Affinity Table]
+[004h 0004   4]                 Table Length : 00000108
+[008h 0008   1]                     Revision : 01
+[009h 0009   1]                     Checksum : A2
+[00Ah 0010   6]                       Oem ID : "BOCHS "
+[010h 0016   8]                 Oem Table ID : "BXPCSRAT"
+[018h 0024   4]                 Oem Revision : 00000001
+[01Ch 0028   4]              Asl Compiler ID : "BXPC"
+[020h 0032   4]        Asl Compiler Revision : 00000001
+
+[024h 0036   4]               Table Revision : 00000001
+[028h 0040   8]                     Reserved : 0000000000000000
+
+[030h 0048   1]                Subtable Type : 00 [Processor Local APIC/SAPIC Affinity]
+[031h 0049   1]                       Length : 10
+
+[032h 0050   1]      Proximity Domain Low(8) : 00
+[033h 0051   1]                      Apic ID : 00
+[034h 0052   4]        Flags (decoded below) : 00000001
+                                     Enabled : 1
+[038h 0056   1]              Local Sapic EID : 00
+[039h 0057   3]    Proximity Domain High(24) : 000000
+[03Ch 0060   4]                 Clock Domain : 00000000
+
+[040h 0064   1]                Subtable Type : 01 [Memory Affinity]
+[041h 0065   1]                       Length : 28
+
+[042h 0066   4]             Proximity Domain : 00000000
+[046h 0070   2]                    Reserved1 : 0000
+[048h 0072   8]                 Base Address : 0000000000000000
+[050h 0080   8]               Address Length : 00000000000A0000
+[058h 0088   4]                    Reserved2 : 00000000
+[05Ch 0092   4]        Flags (decoded below) : 00000001
+                                     Enabled : 1
+                               Hot Pluggable : 0
+                                Non-Volatile : 0
+[060h 0096   8]                    Reserved3 : 0000000000000000
+
+[068h 0104   1]                Subtable Type : 01 [Memory Affinity]
+[069h 0105   1]                       Length : 28
+
+[06Ah 0106   4]             Proximity Domain : 00000000
+[06Eh 0110   2]                    Reserved1 : 0000
+[070h 0112   8]                 Base Address : 0000000000100000
+[078h 0120   8]               Address Length : 0000000003F00000
+[080h 0128   4]                    Reserved2 : 00000000
+[084h 0132   4]        Flags (decoded below) : 00000001
+                                     Enabled : 1
+                               Hot Pluggable : 0
+                                Non-Volatile : 0
+[088h 0136   8]                    Reserved3 : 0000000000000000
+
+[090h 0144   1]                Subtable Type : 01 [Memory Affinity]
+[091h 0145   1]                       Length : 28
+
+[092h 0146   4]             Proximity Domain : 00000001
+[096h 0150   2]                    Reserved1 : 0000
+[098h 0152   8]                 Base Address : 0000000004000000
+[0A0h 0160   8]               Address Length : 0000000004000000
+[0A8h 0168   4]                    Reserved2 : 00000000
+[0ACh 0172   4]        Flags (decoded below) : 00000001
+                                     Enabled : 1
+                               Hot Pluggable : 0
+                                Non-Volatile : 0
+[0B0h 0176   8]                    Reserved3 : 0000000000000000
+
+[0B8h 0184   1]                Subtable Type : 01 [Memory Affinity]
+[0B9h 0185   1]                       Length : 28
+
+[0BAh 0186   4]             Proximity Domain : 00000000
+[0BEh 0190   2]                    Reserved1 : 0000
+[0C0h 0192   8]                 Base Address : 0000000000000000
+[0C8h 0200   8]               Address Length : 0000000000000000
+[0D0h 0208   4]                    Reserved2 : 00000000
+[0D4h 0212   4]        Flags (decoded below) : 00000000
+                                     Enabled : 0
+                               Hot Pluggable : 0
+                                Non-Volatile : 0
+[0D8h 0216   8]                    Reserved3 : 0000000000000000
+
+[0E0h 0224   1]                Subtable Type : 01 [Memory Affinity]
+[0E1h 0225   1]                       Length : 28
+
+[0E2h 0226   4]             Proximity Domain : 00000001
+[0E6h 0230   2]                    Reserved1 : 0000
+[0E8h 0232   8]                 Base Address : 0000000100000000
+[0F0h 0240   8]               Address Length : 00000000F8000000
+[0F8h 0248   4]                    Reserved2 : 00000000
+[0FCh 0252   4]        Flags (decoded below) : 00000003
+                                     Enabled : 1
+                               Hot Pluggable : 1
+                                Non-Volatile : 0
+[100h 0256   8]                    Reserved3 : 0000000000000000
+
+Raw Table Data: Length 264 (0x108)
+
+    0000: 53 52 41 54 08 01 00 00 01 A2 42 4F 43 48 53 20  // SRAT......BOCHS 
+    0010: 42 58 50 43 53 52 41 54 01 00 00 00 42 58 50 43  // BXPCSRAT....BXPC
+    0020: 01 00 00 00 01 00 00 00 00 00 00 00 00 00 00 00  // ................
+    0030: 00 10 00 00 01 00 00 00 00 00 00 00 00 00 00 00  // ................
+    0040: 01 28 00 00 00 00 00 00 00 00 00 00 00 00 00 00  // .(..............
+    0050: 00 00 0A 00 00 00 00 00 00 00 00 00 01 00 00 00  // ................
+    0060: 00 00 00 00 00 00 00 00 01 28 00 00 00 00 00 00  // .........(......
+    0070: 00 00 10 00 00 00 00 00 00 00 F0 03 00 00 00 00  // ................
+    0080: 00 00 00 00 01 00 00 00 00 00 00 00 00 00 00 00  // ................
+    0090: 01 28 01 00 00 00 00 00 00 00 00 04 00 00 00 00  // .(..............
+    00A0: 00 00 00 04 00 00 00 00 00 00 00 00 01 00 00 00  // ................
+    00B0: 00 00 00 00 00 00 00 00 01 28 00 00 00 00 00 00  // .........(......
+    00C0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  // ................
+    00D0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  // ................
+    00E0: 01 28 01 00 00 00 00 00 00 00 00 00 01 00 00 00  // .(..............
+    00F0: 00 00 00 F8 00 00 00 00 00 00 00 00 03 00 00 00  // ................
+    0100: 00 00 00 00 00 00 00 00                          // ........
diff --git a/tests/data/acpi/q35/SRAT.mmio64.dsl b/tests/data/acpi/q35/SRAT.mmio64.dsl
new file mode 100644
index 0000000000..0065c21de4
--- /dev/null
+++ b/tests/data/acpi/q35/SRAT.mmio64.dsl
@@ -0,0 +1,108 @@ 
+/*
+ * Intel ACPI Component Architecture
+ * AML/ASL+ Disassembler version 20190509 (64-bit version)
+ * Copyright (c) 2000 - 2019 Intel Corporation
+ * 
+ * Disassembly of tests/data/acpi/q35/SRAT.mmio64, Tue Aug  4 11:14:15 2020
+ *
+ * ACPI Data Table [SRAT]
+ *
+ * Format: [HexOffset DecimalOffset ByteLength]  FieldName : FieldValue
+ */
+
+[000h 0000   4]                    Signature : "SRAT"    [System Resource Affinity Table]
+[004h 0004   4]                 Table Length : 000000E0
+[008h 0008   1]                     Revision : 01
+[009h 0009   1]                     Checksum : 3B
+[00Ah 0010   6]                       Oem ID : "BOCHS "
+[010h 0016   8]                 Oem Table ID : "BXPCSRAT"
+[018h 0024   4]                 Oem Revision : 00000001
+[01Ch 0028   4]              Asl Compiler ID : "BXPC"
+[020h 0032   4]        Asl Compiler Revision : 00000001
+
+[024h 0036   4]               Table Revision : 00000001
+[028h 0040   8]                     Reserved : 0000000000000000
+
+[030h 0048   1]                Subtable Type : 00 [Processor Local APIC/SAPIC Affinity]
+[031h 0049   1]                       Length : 10
+
+[032h 0050   1]      Proximity Domain Low(8) : 00
+[033h 0051   1]                      Apic ID : 00
+[034h 0052   4]        Flags (decoded below) : 00000001
+                                     Enabled : 1
+[038h 0056   1]              Local Sapic EID : 00
+[039h 0057   3]    Proximity Domain High(24) : 000000
+[03Ch 0060   4]                 Clock Domain : 00000000
+
+[040h 0064   1]                Subtable Type : 01 [Memory Affinity]
+[041h 0065   1]                       Length : 28
+
+[042h 0066   4]             Proximity Domain : 00000000
+[046h 0070   2]                    Reserved1 : 0000
+[048h 0072   8]                 Base Address : 0000000000000000
+[050h 0080   8]               Address Length : 00000000000A0000
+[058h 0088   4]                    Reserved2 : 00000000
+[05Ch 0092   4]        Flags (decoded below) : 00000001
+                                     Enabled : 1
+                               Hot Pluggable : 0
+                                Non-Volatile : 0
+[060h 0096   8]                    Reserved3 : 0000000000000000
+
+[068h 0104   1]                Subtable Type : 01 [Memory Affinity]
+[069h 0105   1]                       Length : 28
+
+[06Ah 0106   4]             Proximity Domain : 00000000
+[06Eh 0110   2]                    Reserved1 : 0000
+[070h 0112   8]                 Base Address : 0000000000100000
+[078h 0120   8]               Address Length : 0000000007F00000
+[080h 0128   4]                    Reserved2 : 00000000
+[084h 0132   4]        Flags (decoded below) : 00000001
+                                     Enabled : 1
+                               Hot Pluggable : 0
+                                Non-Volatile : 0
+[088h 0136   8]                    Reserved3 : 0000000000000000
+
+[090h 0144   1]                Subtable Type : 01 [Memory Affinity]
+[091h 0145   1]                       Length : 28
+
+[092h 0146   4]             Proximity Domain : 00000000
+[096h 0150   2]                    Reserved1 : 0000
+[098h 0152   8]                 Base Address : 0000000000000000
+[0A0h 0160   8]               Address Length : 0000000000000000
+[0A8h 0168   4]                    Reserved2 : 00000000
+[0ACh 0172   4]        Flags (decoded below) : 00000000
+                                     Enabled : 0
+                               Hot Pluggable : 0
+                                Non-Volatile : 0
+[0B0h 0176   8]                    Reserved3 : 0000000000000000
+
+[0B8h 0184   1]                Subtable Type : 01 [Memory Affinity]
+[0B9h 0185   1]                       Length : 28
+
+[0BAh 0186   4]             Proximity Domain : 00000000
+[0BEh 0190   2]                    Reserved1 : 0000
+[0C0h 0192   8]                 Base Address : 0000000100000000
+[0C8h 0200   8]               Address Length : 00000000B8000000
+[0D0h 0208   4]                    Reserved2 : 00000000
+[0D4h 0212   4]        Flags (decoded below) : 00000003
+                                     Enabled : 1
+                               Hot Pluggable : 1
+                                Non-Volatile : 0
+[0D8h 0216   8]                    Reserved3 : 0000000000000000
+
+Raw Table Data: Length 224 (0xE0)
+
+    0000: 53 52 41 54 E0 00 00 00 01 3B 42 4F 43 48 53 20  // SRAT.....;BOCHS 
+    0010: 42 58 50 43 53 52 41 54 01 00 00 00 42 58 50 43  // BXPCSRAT....BXPC
+    0020: 01 00 00 00 01 00 00 00 00 00 00 00 00 00 00 00  // ................
+    0030: 00 10 00 00 01 00 00 00 00 00 00 00 00 00 00 00  // ................
+    0040: 01 28 00 00 00 00 00 00 00 00 00 00 00 00 00 00  // .(..............
+    0050: 00 00 0A 00 00 00 00 00 00 00 00 00 01 00 00 00  // ................
+    0060: 00 00 00 00 00 00 00 00 01 28 00 00 00 00 00 00  // .........(......
+    0070: 00 00 10 00 00 00 00 00 00 00 F0 07 00 00 00 00  // ................
+    0080: 00 00 00 00 01 00 00 00 00 00 00 00 00 00 00 00  // ................
+    0090: 01 28 00 00 00 00 00 00 00 00 00 00 00 00 00 00  // .(..............
+    00A0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  // ................
+    00B0: 00 00 00 00 00 00 00 00 01 28 00 00 00 00 00 00  // .........(......
+    00C0: 00 00 00 00 01 00 00 00 00 00 00 B8 00 00 00 00  // ................
+    00D0: 00 00 00 00 03 00 00 00 00 00 00 00 00 00 00 00  // ................
diff --git a/tests/data/acpi/q35/SRAT.numamem.dsl b/tests/data/acpi/q35/SRAT.numamem.dsl
new file mode 100644
index 0000000000..e8de953ae2
--- /dev/null
+++ b/tests/data/acpi/q35/SRAT.numamem.dsl
@@ -0,0 +1,108 @@ 
+/*
+ * Intel ACPI Component Architecture
+ * AML/ASL+ Disassembler version 20190509 (64-bit version)
+ * Copyright (c) 2000 - 2019 Intel Corporation
+ * 
+ * Disassembly of tests/data/acpi/q35/SRAT.numamem, Tue Aug  4 11:14:15 2020
+ *
+ * ACPI Data Table [SRAT]
+ *
+ * Format: [HexOffset DecimalOffset ByteLength]  FieldName : FieldValue
+ */
+
+[000h 0000   4]                    Signature : "SRAT"    [System Resource Affinity Table]
+[004h 0004   4]                 Table Length : 000000E0
+[008h 0008   1]                     Revision : 01
+[009h 0009   1]                     Checksum : F5
+[00Ah 0010   6]                       Oem ID : "BOCHS "
+[010h 0016   8]                 Oem Table ID : "BXPCSRAT"
+[018h 0024   4]                 Oem Revision : 00000001
+[01Ch 0028   4]              Asl Compiler ID : "BXPC"
+[020h 0032   4]        Asl Compiler Revision : 00000001
+
+[024h 0036   4]               Table Revision : 00000001
+[028h 0040   8]                     Reserved : 0000000000000000
+
+[030h 0048   1]                Subtable Type : 00 [Processor Local APIC/SAPIC Affinity]
+[031h 0049   1]                       Length : 10
+
+[032h 0050   1]      Proximity Domain Low(8) : 00
+[033h 0051   1]                      Apic ID : 00
+[034h 0052   4]        Flags (decoded below) : 00000001
+                                     Enabled : 1
+[038h 0056   1]              Local Sapic EID : 00
+[039h 0057   3]    Proximity Domain High(24) : 000000
+[03Ch 0060   4]                 Clock Domain : 00000000
+
+[040h 0064   1]                Subtable Type : 01 [Memory Affinity]
+[041h 0065   1]                       Length : 28
+
+[042h 0066   4]             Proximity Domain : 00000001
+[046h 0070   2]                    Reserved1 : 0000
+[048h 0072   8]                 Base Address : 0000000000000000
+[050h 0080   8]               Address Length : 00000000000A0000
+[058h 0088   4]                    Reserved2 : 00000000
+[05Ch 0092   4]        Flags (decoded below) : 00000001
+                                     Enabled : 1
+                               Hot Pluggable : 0
+                                Non-Volatile : 0
+[060h 0096   8]                    Reserved3 : 0000000000000000
+
+[068h 0104   1]                Subtable Type : 01 [Memory Affinity]
+[069h 0105   1]                       Length : 28
+
+[06Ah 0106   4]             Proximity Domain : 00000001
+[06Eh 0110   2]                    Reserved1 : 0000
+[070h 0112   8]                 Base Address : 0000000000100000
+[078h 0120   8]               Address Length : 0000000007F00000
+[080h 0128   4]                    Reserved2 : 00000000
+[084h 0132   4]        Flags (decoded below) : 00000001
+                                     Enabled : 1
+                               Hot Pluggable : 0
+                                Non-Volatile : 0
+[088h 0136   8]                    Reserved3 : 0000000000000000
+
+[090h 0144   1]                Subtable Type : 01 [Memory Affinity]
+[091h 0145   1]                       Length : 28
+
+[092h 0146   4]             Proximity Domain : 00000000
+[096h 0150   2]                    Reserved1 : 0000
+[098h 0152   8]                 Base Address : 0000000000000000
+[0A0h 0160   8]               Address Length : 0000000000000000
+[0A8h 0168   4]                    Reserved2 : 00000000
+[0ACh 0172   4]        Flags (decoded below) : 00000000
+                                     Enabled : 0
+                               Hot Pluggable : 0
+                                Non-Volatile : 0
+[0B0h 0176   8]                    Reserved3 : 0000000000000000
+
+[0B8h 0184   1]                Subtable Type : 01 [Memory Affinity]
+[0B9h 0185   1]                       Length : 28
+
+[0BAh 0186   4]             Proximity Domain : 00000000
+[0BEh 0190   2]                    Reserved1 : 0000
+[0C0h 0192   8]                 Base Address : 0000000000000000
+[0C8h 0200   8]               Address Length : 0000000000000000
+[0D0h 0208   4]                    Reserved2 : 00000000
+[0D4h 0212   4]        Flags (decoded below) : 00000000
+                                     Enabled : 0
+                               Hot Pluggable : 0
+                                Non-Volatile : 0
+[0D8h 0216   8]                    Reserved3 : 0000000000000000
+
+Raw Table Data: Length 224 (0xE0)
+
+    0000: 53 52 41 54 E0 00 00 00 01 F5 42 4F 43 48 53 20  // SRAT......BOCHS 
+    0010: 42 58 50 43 53 52 41 54 01 00 00 00 42 58 50 43  // BXPCSRAT....BXPC
+    0020: 01 00 00 00 01 00 00 00 00 00 00 00 00 00 00 00  // ................
+    0030: 00 10 00 00 01 00 00 00 00 00 00 00 00 00 00 00  // ................
+    0040: 01 28 01 00 00 00 00 00 00 00 00 00 00 00 00 00  // .(..............
+    0050: 00 00 0A 00 00 00 00 00 00 00 00 00 01 00 00 00  // ................
+    0060: 00 00 00 00 00 00 00 00 01 28 01 00 00 00 00 00  // .........(......
+    0070: 00 00 10 00 00 00 00 00 00 00 F0 07 00 00 00 00  // ................
+    0080: 00 00 00 00 01 00 00 00 00 00 00 00 00 00 00 00  // ................
+    0090: 01 28 00 00 00 00 00 00 00 00 00 00 00 00 00 00  // .(..............
+    00A0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  // ................
+    00B0: 00 00 00 00 00 00 00 00 01 28 00 00 00 00 00 00  // .........(......
+    00C0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  // ................
+    00D0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  // ................
diff --git a/tests/data/acpi/q35/SSDT.dsl b/tests/data/acpi/q35/SSDT.dsl
new file mode 100644
index 0000000000..49df22f93d
--- /dev/null
+++ b/tests/data/acpi/q35/SSDT.dsl
@@ -0,0 +1,205 @@ 
+/*
+ * Intel ACPI Component Architecture
+ * AML/ASL+ Disassembler version 20190509 (64-bit version)
+ * Copyright (c) 2000 - 2019 Intel Corporation
+ * 
+ * Disassembling to symbolic ASL+ operators
+ *
+ * Disassembly of tests/data/acpi/q35/SSDT.dimmpxm, Mon Sep 28 17:24:38 2020
+ *
+ * Original Table Header:
+ *     Signature        "SSDT"
+ *     Length           0x000002DE (734)
+ *     Revision         0x01
+ *     Checksum         0x46
+ *     OEM ID           "BOCHS "
+ *     OEM Table ID     "NVDIMM"
+ *     OEM Revision     0x00000001 (1)
+ *     Compiler ID      "BXPC"
+ *     Compiler Version 0x00000001 (1)
+ */
+DefinitionBlock ("", "SSDT", 1, "BOCHS ", "NVDIMM", 0x00000001)
+{
+    Scope (\_SB)
+    {
+        Device (NVDR)
+        {
+            Name (_HID, "ACPI0012" /* NVDIMM Root Device */)  // _HID: Hardware ID
+            Method (NCAL, 5, Serialized)
+            {
+                Local6 = MEMA /* \MEMA */
+                OperationRegion (NPIO, SystemIO, 0x0A18, 0x04)
+                OperationRegion (NRAM, SystemMemory, Local6, 0x1000)
+                Field (NPIO, DWordAcc, NoLock, Preserve)
+                {
+                    NTFI,   32
+                }
+
+                Field (NRAM, DWordAcc, NoLock, Preserve)
+                {
+                    HDLE,   32, 
+                    REVS,   32, 
+                    FUNC,   32, 
+                    FARG,   32672
+                }
+
+                Field (NRAM, DWordAcc, NoLock, Preserve)
+                {
+                    RLEN,   32, 
+                    ODAT,   32736
+                }
+
+                If ((Arg4 == Zero))
+                {
+                    Local0 = ToUUID ("2f10e7a4-9e91-11e4-89d3-123b93f75cba")
+                }
+                ElseIf ((Arg4 == 0x00010000))
+                {
+                    Local0 = ToUUID ("648b9cf2-cda1-4312-8ad9-49c4af32bd62")
+                }
+                Else
+                {
+                    Local0 = ToUUID ("4309ac30-0d11-11e4-9191-0800200c9a66")
+                }
+
+                If (((Local6 == Zero) | (Arg0 != Local0)))
+                {
+                    If ((Arg2 == Zero))
+                    {
+                        Return (Buffer (One)
+                        {
+                             0x00                                             // .
+                        })
+                    }
+
+                    Return (Buffer (One)
+                    {
+                         0x01                                             // .
+                    })
+                }
+
+                HDLE = Arg4
+                REVS = Arg1
+                FUNC = Arg2
+                If (((ObjectType (Arg3) == 0x04) & (SizeOf (Arg3) == One)))
+                {
+                    Local2 = Arg3 [Zero]
+                    Local3 = DerefOf (Local2)
+                    FARG = Local3
+                }
+
+                NTFI = Local6
+                Local1 = (RLEN - 0x04)
+                If ((Local1 < 0x08))
+                {
+                    Local2 = Zero
+                    Name (TBUF, Buffer (One)
+                    {
+                         0x00                                             // .
+                    })
+                    Local7 = Buffer (Zero){}
+                    While ((Local2 < Local1))
+                    {
+                        TBUF [Zero] = DerefOf (ODAT [Local2])
+                        Concatenate (Local7, TBUF, Local7)
+                        Local2++
+                    }
+
+                    Return (Local7)
+                }
+
+                Local1 = (Local1 << 0x03)
+                CreateField (ODAT, Zero, Local1, OBUF)
+                Return (OBUF) /* \_SB_.NVDR.NCAL.OBUF */
+            }
+
+            Method (_DSM, 4, NotSerialized)  // _DSM: Device-Specific Method
+            {
+                Return (NCAL (Arg0, Arg1, Arg2, Arg3, Zero))
+            }
+
+            Name (RSTA, Zero)
+            Method (RFIT, 1, Serialized)
+            {
+                Name (OFST, Zero)
+                OFST = Arg0
+                Local0 = NCAL (ToUUID ("648b9cf2-cda1-4312-8ad9-49c4af32bd62"), One, One, Package (0x01)
+                        {
+                            OFST
+                        }, 0x00010000)
+                CreateDWordField (Local0, Zero, STAU)
+                RSTA = STAU /* \_SB_.NVDR.RFIT.STAU */
+                If ((Zero != STAU))
+                {
+                    Return (Buffer (Zero){})
+                }
+
+                Local1 = SizeOf (Local0)
+                Local1 -= 0x04
+                If ((Local1 == Zero))
+                {
+                    Return (Buffer (Zero){})
+                }
+
+                CreateField (Local0, 0x20, (Local1 << 0x03), BUFF)
+                Return (BUFF) /* \_SB_.NVDR.RFIT.BUFF */
+            }
+
+            Method (_FIT, 0, Serialized)  // _FIT: Firmware Interface Table
+            {
+                Local2 = Buffer (Zero){}
+                Local3 = Zero
+                While (One)
+                {
+                    Local0 = RFIT (Local3)
+                    Local1 = SizeOf (Local0)
+                    If ((RSTA == 0x0100))
+                    {
+                        Local2 = Buffer (Zero){}
+                        Local3 = Zero
+                    }
+                    Else
+                    {
+                        If ((Local1 == Zero))
+                        {
+                            Return (Local2)
+                        }
+
+                        Local3 += Local1
+                        Concatenate (Local2, Local0, Local2)
+                    }
+                }
+            }
+
+            Device (NV00)
+            {
+                Name (_ADR, One)  // _ADR: Address
+                Method (_DSM, 4, NotSerialized)  // _DSM: Device-Specific Method
+                {
+                    Return (NCAL (Arg0, Arg1, Arg2, Arg3, One))
+                }
+            }
+
+            Device (NV01)
+            {
+                Name (_ADR, 0x02)  // _ADR: Address
+                Method (_DSM, 4, NotSerialized)  // _DSM: Device-Specific Method
+                {
+                    Return (NCAL (Arg0, Arg1, Arg2, Arg3, 0x02))
+                }
+            }
+
+            Device (NV02)
+            {
+                Name (_ADR, 0x03)  // _ADR: Address
+                Method (_DSM, 4, NotSerialized)  // _DSM: Device-Specific Method
+                {
+                    Return (NCAL (Arg0, Arg1, Arg2, Arg3, 0x03))
+                }
+            }
+        }
+    }
+
+    Name (MEMA, 0x07FFF000)
+}
+
diff --git a/tests/data/acpi/q35/TPM2.dsl b/tests/data/acpi/q35/TPM2.dsl
new file mode 100644
index 0000000000..8568152ccf
--- /dev/null
+++ b/tests/data/acpi/q35/TPM2.dsl
@@ -0,0 +1,38 @@ 
+/*
+ * Intel ACPI Component Architecture
+ * AML/ASL+ Disassembler version 20190509 (64-bit version)
+ * Copyright (c) 2000 - 2019 Intel Corporation
+ * 
+ * Disassembly of tests/data/acpi/q35/TPM2.tis, Mon Sep 28 17:24:38 2020
+ *
+ * ACPI Data Table [TPM2]
+ *
+ * Format: [HexOffset DecimalOffset ByteLength]  FieldName : FieldValue
+ */
+
+[000h 0000   4]                    Signature : "TPM2"    [Trusted Platform Module hardware interface table]
+[004h 0004   4]                 Table Length : 0000004C
+[008h 0008   1]                     Revision : 04
+[009h 0009   1]                     Checksum : 72
+[00Ah 0010   6]                       Oem ID : "BOCHS "
+[010h 0016   8]                 Oem Table ID : "BXPCTPM2"
+[018h 0024   4]                 Oem Revision : 00000001
+[01Ch 0028   4]              Asl Compiler ID : "BXPC"
+[020h 0032   4]        Asl Compiler Revision : 00000001
+
+[024h 0036   2]               Platform Class : 0000
+[026h 0038   2]                     Reserved : 0000
+[028h 0040   8]              Control Address : 0000000000000000
+[030h 0048   4]                 Start Method : 06 [Memory Mapped I/O]
+
+[034h 0052  12]            Method Parameters : 00 00 00 00 00 00 00 00 00 00 00 00
+[040h 0064   4]           Minimum Log Length : 00010000
+[044h 0068   8]                  Log Address : 0000000007FF0000
+
+Raw Table Data: Length 76 (0x4C)
+
+    0000: 54 50 4D 32 4C 00 00 00 04 72 42 4F 43 48 53 20  // TPM2L....rBOCHS 
+    0010: 42 58 50 43 54 50 4D 32 01 00 00 00 42 58 50 43  // BXPCTPM2....BXPC
+    0020: 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  // ................
+    0030: 06 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  // ................
+    0040: 00 00 01 00 00 00 FF 07 00 00 00 00              // ............
diff --git a/tests/data/acpi/q35/TPM2.tis.dsl b/tests/data/acpi/q35/TPM2.tis.dsl
new file mode 100644
index 0000000000..420643ab2b
--- /dev/null
+++ b/tests/data/acpi/q35/TPM2.tis.dsl
@@ -0,0 +1,38 @@ 
+/*
+ * Intel ACPI Component Architecture
+ * AML/ASL+ Disassembler version 20190509 (64-bit version)
+ * Copyright (c) 2000 - 2019 Intel Corporation
+ * 
+ * Disassembly of tests/data/acpi/q35/TPM2.tis, Tue Aug  4 11:14:15 2020
+ *
+ * ACPI Data Table [TPM2]
+ *
+ * Format: [HexOffset DecimalOffset ByteLength]  FieldName : FieldValue
+ */
+
+[000h 0000   4]                    Signature : "TPM2"    [Trusted Platform Module hardware interface table]
+[004h 0004   4]                 Table Length : 0000004C
+[008h 0008   1]                     Revision : 04
+[009h 0009   1]                     Checksum : 72
+[00Ah 0010   6]                       Oem ID : "BOCHS "
+[010h 0016   8]                 Oem Table ID : "BXPCTPM2"
+[018h 0024   4]                 Oem Revision : 00000001
+[01Ch 0028   4]              Asl Compiler ID : "BXPC"
+[020h 0032   4]        Asl Compiler Revision : 00000001
+
+[024h 0036   2]               Platform Class : 0000
+[026h 0038   2]                     Reserved : 0000
+[028h 0040   8]              Control Address : 0000000000000000
+[030h 0048   4]                 Start Method : 06 [Memory Mapped I/O]
+
+[034h 0052  12]            Method Parameters : 00 00 00 00 00 00 00 00 00 00 00 00
+[040h 0064   4]           Minimum Log Length : 00010000
+[044h 0068   8]                  Log Address : 0000000007FF0000
+
+Raw Table Data: Length 76 (0x4C)
+
+    0000: 54 50 4D 32 4C 00 00 00 04 72 42 4F 43 48 53 20  // TPM2L....rBOCHS 
+    0010: 42 58 50 43 54 50 4D 32 01 00 00 00 42 58 50 43  // BXPCTPM2....BXPC
+    0020: 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  // ................
+    0030: 06 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  // ................
+    0040: 00 00 01 00 00 00 FF 07 00 00 00 00              // ............
diff --git a/tests/data/acpi/q35/WAET.acpihmat b/tests/data/acpi/q35/WAET.acpihmat
new file mode 100644
index 0000000000000000000000000000000000000000..c2240f58dff6b2f765386b5a2e506fda4800be3e
GIT binary patch
literal 40
mcmWG{bPds9U|?YEaPoKd2v%^42yhMuiZKGkKx`1r1jGQWX$JuS

literal 0
HcmV?d00001

diff --git a/tests/data/acpi/q35/WAET.acpihmat.dsl b/tests/data/acpi/q35/WAET.acpihmat.dsl
new file mode 100644
index 0000000000..12a4fced5c
--- /dev/null
+++ b/tests/data/acpi/q35/WAET.acpihmat.dsl
@@ -0,0 +1,31 @@ 
+/*
+ * Intel ACPI Component Architecture
+ * AML/ASL+ Disassembler version 20190509 (64-bit version)
+ * Copyright (c) 2000 - 2019 Intel Corporation
+ * 
+ * Disassembly of tests/data/acpi/q35/WAET.acpihmat, Tue Aug  4 11:14:15 2020
+ *
+ * ACPI Data Table [WAET]
+ *
+ * Format: [HexOffset DecimalOffset ByteLength]  FieldName : FieldValue
+ */
+
+[000h 0000   4]                    Signature : "WAET"    [Windows ACPI Emulated Devices Table]
+[004h 0004   4]                 Table Length : 00000028
+[008h 0008   1]                     Revision : 01
+[009h 0009   1]                     Checksum : 88
+[00Ah 0010   6]                       Oem ID : "BOCHS "
+[010h 0016   8]                 Oem Table ID : "BXPCWAET"
+[018h 0024   4]                 Oem Revision : 00000001
+[01Ch 0028   4]              Asl Compiler ID : "BXPC"
+[020h 0032   4]        Asl Compiler Revision : 00000001
+
+[024h 0036   4]        Flags (decoded below) : 00000002
+                        RTC needs no INT ack : 0
+                     PM timer, one read only : 1
+
+Raw Table Data: Length 40 (0x28)
+
+    0000: 57 41 45 54 28 00 00 00 01 88 42 4F 43 48 53 20  // WAET(.....BOCHS 
+    0010: 42 58 50 43 57 41 45 54 01 00 00 00 42 58 50 43  // BXPCWAET....BXPC
+    0020: 01 00 00 00 02 00 00 00                          // ........
diff --git a/tests/data/acpi/q35/WAET.bridge b/tests/data/acpi/q35/WAET.bridge
new file mode 100644
index 0000000000000000000000000000000000000000..c2240f58dff6b2f765386b5a2e506fda4800be3e
GIT binary patch
literal 40
mcmWG{bPds9U|?YEaPoKd2v%^42yhMuiZKGkKx`1r1jGQWX$JuS

literal 0
HcmV?d00001

diff --git a/tests/data/acpi/q35/WAET.bridge.dsl b/tests/data/acpi/q35/WAET.bridge.dsl
new file mode 100644
index 0000000000..48effe4c6e
--- /dev/null
+++ b/tests/data/acpi/q35/WAET.bridge.dsl
@@ -0,0 +1,31 @@ 
+/*
+ * Intel ACPI Component Architecture
+ * AML/ASL+ Disassembler version 20190509 (64-bit version)
+ * Copyright (c) 2000 - 2019 Intel Corporation
+ * 
+ * Disassembly of tests/data/acpi/q35/WAET.bridge, Tue Aug  4 11:14:15 2020
+ *
+ * ACPI Data Table [WAET]
+ *
+ * Format: [HexOffset DecimalOffset ByteLength]  FieldName : FieldValue
+ */
+
+[000h 0000   4]                    Signature : "WAET"    [Windows ACPI Emulated Devices Table]
+[004h 0004   4]                 Table Length : 00000028
+[008h 0008   1]                     Revision : 01
+[009h 0009   1]                     Checksum : 88
+[00Ah 0010   6]                       Oem ID : "BOCHS "
+[010h 0016   8]                 Oem Table ID : "BXPCWAET"
+[018h 0024   4]                 Oem Revision : 00000001
+[01Ch 0028   4]              Asl Compiler ID : "BXPC"
+[020h 0032   4]        Asl Compiler Revision : 00000001
+
+[024h 0036   4]        Flags (decoded below) : 00000002
+                        RTC needs no INT ack : 0
+                     PM timer, one read only : 1
+
+Raw Table Data: Length 40 (0x28)
+
+    0000: 57 41 45 54 28 00 00 00 01 88 42 4F 43 48 53 20  // WAET(.....BOCHS 
+    0010: 42 58 50 43 57 41 45 54 01 00 00 00 42 58 50 43  // BXPCWAET....BXPC
+    0020: 01 00 00 00 02 00 00 00                          // ........
diff --git a/tests/data/acpi/q35/WAET.cphp b/tests/data/acpi/q35/WAET.cphp
new file mode 100644
index 0000000000000000000000000000000000000000..c2240f58dff6b2f765386b5a2e506fda4800be3e
GIT binary patch
literal 40
mcmWG{bPds9U|?YEaPoKd2v%^42yhMuiZKGkKx`1r1jGQWX$JuS

literal 0
HcmV?d00001

diff --git a/tests/data/acpi/q35/WAET.cphp.dsl b/tests/data/acpi/q35/WAET.cphp.dsl
new file mode 100644
index 0000000000..aadebd53e8
--- /dev/null
+++ b/tests/data/acpi/q35/WAET.cphp.dsl
@@ -0,0 +1,31 @@ 
+/*
+ * Intel ACPI Component Architecture
+ * AML/ASL+ Disassembler version 20190509 (64-bit version)
+ * Copyright (c) 2000 - 2019 Intel Corporation
+ * 
+ * Disassembly of tests/data/acpi/q35/WAET.cphp, Tue Aug  4 11:14:15 2020
+ *
+ * ACPI Data Table [WAET]
+ *
+ * Format: [HexOffset DecimalOffset ByteLength]  FieldName : FieldValue
+ */
+
+[000h 0000   4]                    Signature : "WAET"    [Windows ACPI Emulated Devices Table]
+[004h 0004   4]                 Table Length : 00000028
+[008h 0008   1]                     Revision : 01
+[009h 0009   1]                     Checksum : 88
+[00Ah 0010   6]                       Oem ID : "BOCHS "
+[010h 0016   8]                 Oem Table ID : "BXPCWAET"
+[018h 0024   4]                 Oem Revision : 00000001
+[01Ch 0028   4]              Asl Compiler ID : "BXPC"
+[020h 0032   4]        Asl Compiler Revision : 00000001
+
+[024h 0036   4]        Flags (decoded below) : 00000002
+                        RTC needs no INT ack : 0
+                     PM timer, one read only : 1
+
+Raw Table Data: Length 40 (0x28)
+
+    0000: 57 41 45 54 28 00 00 00 01 88 42 4F 43 48 53 20  // WAET(.....BOCHS 
+    0010: 42 58 50 43 57 41 45 54 01 00 00 00 42 58 50 43  // BXPCWAET....BXPC
+    0020: 01 00 00 00 02 00 00 00                          // ........
diff --git a/tests/data/acpi/q35/WAET.dimmpxm b/tests/data/acpi/q35/WAET.dimmpxm
new file mode 100644
index 0000000000000000000000000000000000000000..c2240f58dff6b2f765386b5a2e506fda4800be3e
GIT binary patch
literal 40
mcmWG{bPds9U|?YEaPoKd2v%^42yhMuiZKGkKx`1r1jGQWX$JuS

literal 0
HcmV?d00001

diff --git a/tests/data/acpi/q35/WAET.dimmpxm.dsl b/tests/data/acpi/q35/WAET.dimmpxm.dsl
new file mode 100644
index 0000000000..7ad316b118
--- /dev/null
+++ b/tests/data/acpi/q35/WAET.dimmpxm.dsl
@@ -0,0 +1,31 @@ 
+/*
+ * Intel ACPI Component Architecture
+ * AML/ASL+ Disassembler version 20190509 (64-bit version)
+ * Copyright (c) 2000 - 2019 Intel Corporation
+ * 
+ * Disassembly of tests/data/acpi/q35/WAET.dimmpxm, Tue Aug  4 11:14:15 2020
+ *
+ * ACPI Data Table [WAET]
+ *
+ * Format: [HexOffset DecimalOffset ByteLength]  FieldName : FieldValue
+ */
+
+[000h 0000   4]                    Signature : "WAET"    [Windows ACPI Emulated Devices Table]
+[004h 0004   4]                 Table Length : 00000028
+[008h 0008   1]                     Revision : 01
+[009h 0009   1]                     Checksum : 88
+[00Ah 0010   6]                       Oem ID : "BOCHS "
+[010h 0016   8]                 Oem Table ID : "BXPCWAET"
+[018h 0024   4]                 Oem Revision : 00000001
+[01Ch 0028   4]              Asl Compiler ID : "BXPC"
+[020h 0032   4]        Asl Compiler Revision : 00000001
+
+[024h 0036   4]        Flags (decoded below) : 00000002
+                        RTC needs no INT ack : 0
+                     PM timer, one read only : 1
+
+Raw Table Data: Length 40 (0x28)
+
+    0000: 57 41 45 54 28 00 00 00 01 88 42 4F 43 48 53 20  // WAET(.....BOCHS 
+    0010: 42 58 50 43 57 41 45 54 01 00 00 00 42 58 50 43  // BXPCWAET....BXPC
+    0020: 01 00 00 00 02 00 00 00                          // ........
diff --git a/tests/data/acpi/q35/WAET.dsl b/tests/data/acpi/q35/WAET.dsl
new file mode 100644
index 0000000000..b48db4efca
--- /dev/null
+++ b/tests/data/acpi/q35/WAET.dsl
@@ -0,0 +1,31 @@ 
+/*
+ * Intel ACPI Component Architecture
+ * AML/ASL+ Disassembler version 20190509 (64-bit version)
+ * Copyright (c) 2000 - 2019 Intel Corporation
+ * 
+ * Disassembly of tests/data/acpi/q35/WAET.tis, Mon Sep 28 17:24:38 2020
+ *
+ * ACPI Data Table [WAET]
+ *
+ * Format: [HexOffset DecimalOffset ByteLength]  FieldName : FieldValue
+ */
+
+[000h 0000   4]                    Signature : "WAET"    [Windows ACPI Emulated Devices Table]
+[004h 0004   4]                 Table Length : 00000028
+[008h 0008   1]                     Revision : 01
+[009h 0009   1]                     Checksum : 88
+[00Ah 0010   6]                       Oem ID : "BOCHS "
+[010h 0016   8]                 Oem Table ID : "BXPCWAET"
+[018h 0024   4]                 Oem Revision : 00000001
+[01Ch 0028   4]              Asl Compiler ID : "BXPC"
+[020h 0032   4]        Asl Compiler Revision : 00000001
+
+[024h 0036   4]        Flags (decoded below) : 00000002
+                        RTC needs no INT ack : 0
+                     PM timer, one read only : 1
+
+Raw Table Data: Length 40 (0x28)
+
+    0000: 57 41 45 54 28 00 00 00 01 88 42 4F 43 48 53 20  // WAET(.....BOCHS 
+    0010: 42 58 50 43 57 41 45 54 01 00 00 00 42 58 50 43  // BXPCWAET....BXPC
+    0020: 01 00 00 00 02 00 00 00                          // ........
diff --git a/tests/data/acpi/q35/WAET.ipmibt b/tests/data/acpi/q35/WAET.ipmibt
new file mode 100644
index 0000000000000000000000000000000000000000..c2240f58dff6b2f765386b5a2e506fda4800be3e
GIT binary patch
literal 40
mcmWG{bPds9U|?YEaPoKd2v%^42yhMuiZKGkKx`1r1jGQWX$JuS

literal 0
HcmV?d00001

diff --git a/tests/data/acpi/q35/WAET.ipmibt.dsl b/tests/data/acpi/q35/WAET.ipmibt.dsl
new file mode 100644
index 0000000000..40cb1d5649
--- /dev/null
+++ b/tests/data/acpi/q35/WAET.ipmibt.dsl
@@ -0,0 +1,31 @@ 
+/*
+ * Intel ACPI Component Architecture
+ * AML/ASL+ Disassembler version 20190509 (64-bit version)
+ * Copyright (c) 2000 - 2019 Intel Corporation
+ * 
+ * Disassembly of tests/data/acpi/q35/WAET.ipmibt, Tue Aug  4 11:14:15 2020
+ *
+ * ACPI Data Table [WAET]
+ *
+ * Format: [HexOffset DecimalOffset ByteLength]  FieldName : FieldValue
+ */
+
+[000h 0000   4]                    Signature : "WAET"    [Windows ACPI Emulated Devices Table]
+[004h 0004   4]                 Table Length : 00000028
+[008h 0008   1]                     Revision : 01
+[009h 0009   1]                     Checksum : 88
+[00Ah 0010   6]                       Oem ID : "BOCHS "
+[010h 0016   8]                 Oem Table ID : "BXPCWAET"
+[018h 0024   4]                 Oem Revision : 00000001
+[01Ch 0028   4]              Asl Compiler ID : "BXPC"
+[020h 0032   4]        Asl Compiler Revision : 00000001
+
+[024h 0036   4]        Flags (decoded below) : 00000002
+                        RTC needs no INT ack : 0
+                     PM timer, one read only : 1
+
+Raw Table Data: Length 40 (0x28)
+
+    0000: 57 41 45 54 28 00 00 00 01 88 42 4F 43 48 53 20  // WAET(.....BOCHS 
+    0010: 42 58 50 43 57 41 45 54 01 00 00 00 42 58 50 43  // BXPCWAET....BXPC
+    0020: 01 00 00 00 02 00 00 00                          // ........
diff --git a/tests/data/acpi/q35/WAET.memhp b/tests/data/acpi/q35/WAET.memhp
new file mode 100644
index 0000000000000000000000000000000000000000..c2240f58dff6b2f765386b5a2e506fda4800be3e
GIT binary patch
literal 40
mcmWG{bPds9U|?YEaPoKd2v%^42yhMuiZKGkKx`1r1jGQWX$JuS

literal 0
HcmV?d00001

diff --git a/tests/data/acpi/q35/WAET.memhp.dsl b/tests/data/acpi/q35/WAET.memhp.dsl
new file mode 100644
index 0000000000..e27f54d4dd
--- /dev/null
+++ b/tests/data/acpi/q35/WAET.memhp.dsl
@@ -0,0 +1,31 @@ 
+/*
+ * Intel ACPI Component Architecture
+ * AML/ASL+ Disassembler version 20190509 (64-bit version)
+ * Copyright (c) 2000 - 2019 Intel Corporation
+ * 
+ * Disassembly of tests/data/acpi/q35/WAET.memhp, Tue Aug  4 11:14:15 2020
+ *
+ * ACPI Data Table [WAET]
+ *
+ * Format: [HexOffset DecimalOffset ByteLength]  FieldName : FieldValue
+ */
+
+[000h 0000   4]                    Signature : "WAET"    [Windows ACPI Emulated Devices Table]
+[004h 0004   4]                 Table Length : 00000028
+[008h 0008   1]                     Revision : 01
+[009h 0009   1]                     Checksum : 88
+[00Ah 0010   6]                       Oem ID : "BOCHS "
+[010h 0016   8]                 Oem Table ID : "BXPCWAET"
+[018h 0024   4]                 Oem Revision : 00000001
+[01Ch 0028   4]              Asl Compiler ID : "BXPC"
+[020h 0032   4]        Asl Compiler Revision : 00000001
+
+[024h 0036   4]        Flags (decoded below) : 00000002
+                        RTC needs no INT ack : 0
+                     PM timer, one read only : 1
+
+Raw Table Data: Length 40 (0x28)
+
+    0000: 57 41 45 54 28 00 00 00 01 88 42 4F 43 48 53 20  // WAET(.....BOCHS 
+    0010: 42 58 50 43 57 41 45 54 01 00 00 00 42 58 50 43  // BXPCWAET....BXPC
+    0020: 01 00 00 00 02 00 00 00                          // ........
diff --git a/tests/data/acpi/q35/WAET.mmio64 b/tests/data/acpi/q35/WAET.mmio64
new file mode 100644
index 0000000000000000000000000000000000000000..c2240f58dff6b2f765386b5a2e506fda4800be3e
GIT binary patch
literal 40
mcmWG{bPds9U|?YEaPoKd2v%^42yhMuiZKGkKx`1r1jGQWX$JuS

literal 0
HcmV?d00001

diff --git a/tests/data/acpi/q35/WAET.mmio64.dsl b/tests/data/acpi/q35/WAET.mmio64.dsl
new file mode 100644
index 0000000000..98f3aaf569
--- /dev/null
+++ b/tests/data/acpi/q35/WAET.mmio64.dsl
@@ -0,0 +1,31 @@ 
+/*
+ * Intel ACPI Component Architecture
+ * AML/ASL+ Disassembler version 20190509 (64-bit version)
+ * Copyright (c) 2000 - 2019 Intel Corporation
+ * 
+ * Disassembly of tests/data/acpi/q35/WAET.mmio64, Tue Aug  4 11:14:15 2020
+ *
+ * ACPI Data Table [WAET]
+ *
+ * Format: [HexOffset DecimalOffset ByteLength]  FieldName : FieldValue
+ */
+
+[000h 0000   4]                    Signature : "WAET"    [Windows ACPI Emulated Devices Table]
+[004h 0004   4]                 Table Length : 00000028
+[008h 0008   1]                     Revision : 01
+[009h 0009   1]                     Checksum : 88
+[00Ah 0010   6]                       Oem ID : "BOCHS "
+[010h 0016   8]                 Oem Table ID : "BXPCWAET"
+[018h 0024   4]                 Oem Revision : 00000001
+[01Ch 0028   4]              Asl Compiler ID : "BXPC"
+[020h 0032   4]        Asl Compiler Revision : 00000001
+
+[024h 0036   4]        Flags (decoded below) : 00000002
+                        RTC needs no INT ack : 0
+                     PM timer, one read only : 1
+
+Raw Table Data: Length 40 (0x28)
+
+    0000: 57 41 45 54 28 00 00 00 01 88 42 4F 43 48 53 20  // WAET(.....BOCHS 
+    0010: 42 58 50 43 57 41 45 54 01 00 00 00 42 58 50 43  // BXPCWAET....BXPC
+    0020: 01 00 00 00 02 00 00 00                          // ........
diff --git a/tests/data/acpi/q35/WAET.numamem b/tests/data/acpi/q35/WAET.numamem
new file mode 100644
index 0000000000000000000000000000000000000000..c2240f58dff6b2f765386b5a2e506fda4800be3e
GIT binary patch
literal 40
mcmWG{bPds9U|?YEaPoKd2v%^42yhMuiZKGkKx`1r1jGQWX$JuS

literal 0
HcmV?d00001

diff --git a/tests/data/acpi/q35/WAET.numamem.dsl b/tests/data/acpi/q35/WAET.numamem.dsl
new file mode 100644
index 0000000000..738c75ca6c
--- /dev/null
+++ b/tests/data/acpi/q35/WAET.numamem.dsl
@@ -0,0 +1,31 @@ 
+/*
+ * Intel ACPI Component Architecture
+ * AML/ASL+ Disassembler version 20190509 (64-bit version)
+ * Copyright (c) 2000 - 2019 Intel Corporation
+ * 
+ * Disassembly of tests/data/acpi/q35/WAET.numamem, Tue Aug  4 11:14:15 2020
+ *
+ * ACPI Data Table [WAET]
+ *
+ * Format: [HexOffset DecimalOffset ByteLength]  FieldName : FieldValue
+ */
+
+[000h 0000   4]                    Signature : "WAET"    [Windows ACPI Emulated Devices Table]
+[004h 0004   4]                 Table Length : 00000028
+[008h 0008   1]                     Revision : 01
+[009h 0009   1]                     Checksum : 88
+[00Ah 0010   6]                       Oem ID : "BOCHS "
+[010h 0016   8]                 Oem Table ID : "BXPCWAET"
+[018h 0024   4]                 Oem Revision : 00000001
+[01Ch 0028   4]              Asl Compiler ID : "BXPC"
+[020h 0032   4]        Asl Compiler Revision : 00000001
+
+[024h 0036   4]        Flags (decoded below) : 00000002
+                        RTC needs no INT ack : 0
+                     PM timer, one read only : 1
+
+Raw Table Data: Length 40 (0x28)
+
+    0000: 57 41 45 54 28 00 00 00 01 88 42 4F 43 48 53 20  // WAET(.....BOCHS 
+    0010: 42 58 50 43 57 41 45 54 01 00 00 00 42 58 50 43  // BXPCWAET....BXPC
+    0020: 01 00 00 00 02 00 00 00                          // ........
diff --git a/tests/data/acpi/q35/WAET.tis b/tests/data/acpi/q35/WAET.tis
new file mode 100644
index 0000000000000000000000000000000000000000..c2240f58dff6b2f765386b5a2e506fda4800be3e
GIT binary patch
literal 40
mcmWG{bPds9U|?YEaPoKd2v%^42yhMuiZKGkKx`1r1jGQWX$JuS

literal 0
HcmV?d00001

diff --git a/tests/data/acpi/q35/WAET.tis.dsl b/tests/data/acpi/q35/WAET.tis.dsl
new file mode 100644
index 0000000000..869ebe2b4a
--- /dev/null
+++ b/tests/data/acpi/q35/WAET.tis.dsl
@@ -0,0 +1,31 @@ 
+/*
+ * Intel ACPI Component Architecture
+ * AML/ASL+ Disassembler version 20190509 (64-bit version)
+ * Copyright (c) 2000 - 2019 Intel Corporation
+ * 
+ * Disassembly of tests/data/acpi/q35/WAET.tis, Tue Aug  4 11:14:15 2020
+ *
+ * ACPI Data Table [WAET]
+ *
+ * Format: [HexOffset DecimalOffset ByteLength]  FieldName : FieldValue
+ */
+
+[000h 0000   4]                    Signature : "WAET"    [Windows ACPI Emulated Devices Table]
+[004h 0004   4]                 Table Length : 00000028
+[008h 0008   1]                     Revision : 01
+[009h 0009   1]                     Checksum : 88
+[00Ah 0010   6]                       Oem ID : "BOCHS "
+[010h 0016   8]                 Oem Table ID : "BXPCWAET"
+[018h 0024   4]                 Oem Revision : 00000001
+[01Ch 0028   4]              Asl Compiler ID : "BXPC"
+[020h 0032   4]        Asl Compiler Revision : 00000001
+
+[024h 0036   4]        Flags (decoded below) : 00000002
+                        RTC needs no INT ack : 0
+                     PM timer, one read only : 1
+
+Raw Table Data: Length 40 (0x28)
+
+    0000: 57 41 45 54 28 00 00 00 01 88 42 4F 43 48 53 20  // WAET(.....BOCHS 
+    0010: 42 58 50 43 57 41 45 54 01 00 00 00 42 58 50 43  // BXPCWAET....BXPC
+    0020: 01 00 00 00 02 00 00 00                          // ........
diff --git a/tests/data/acpi/virt/APIC.dsl b/tests/data/acpi/virt/APIC.dsl
new file mode 100644
index 0000000000..d334cef533
--- /dev/null
+++ b/tests/data/acpi/virt/APIC.dsl
@@ -0,0 +1,78 @@ 
+/*
+ * Intel ACPI Component Architecture
+ * AML/ASL+ Disassembler version 20190509 (64-bit version)
+ * Copyright (c) 2000 - 2019 Intel Corporation
+ * 
+ * Disassembly of tests/data/acpi/virt/APIC.numamem, Mon Sep 28 17:24:38 2020
+ *
+ * ACPI Data Table [APIC]
+ *
+ * Format: [HexOffset DecimalOffset ByteLength]  FieldName : FieldValue
+ */
+
+[000h 0000   4]                    Signature : "APIC"    [Multiple APIC Description Table (MADT)]
+[004h 0004   4]                 Table Length : 000000A8
+[008h 0008   1]                     Revision : 03
+[009h 0009   1]                     Checksum : B3
+[00Ah 0010   6]                       Oem ID : "BOCHS "
+[010h 0016   8]                 Oem Table ID : "BXPCAPIC"
+[018h 0024   4]                 Oem Revision : 00000001
+[01Ch 0028   4]              Asl Compiler ID : "BXPC"
+[020h 0032   4]        Asl Compiler Revision : 00000001
+
+[024h 0036   4]           Local Apic Address : 00000000
+[028h 0040   4]        Flags (decoded below) : 00000000
+                         PC-AT Compatibility : 0
+
+[02Ch 0044   1]                Subtable Type : 0C [Generic Interrupt Distributor]
+[02Dh 0045   1]                       Length : 18
+[02Eh 0046   2]                     Reserved : 0000
+[030h 0048   4]        Local GIC Hardware ID : 00000000
+[034h 0052   8]                 Base Address : 0000000008000000
+[03Ch 0060   4]               Interrupt Base : 00000000
+[040h 0064   1]                      Version : 02
+[041h 0065   3]                     Reserved : 000000
+
+[044h 0068   1]                Subtable Type : 0B [Generic Interrupt Controller]
+[045h 0069   1]                       Length : 4C
+[046h 0070   2]                     Reserved : 0000
+[048h 0072   4]         CPU Interface Number : 00000000
+[04Ch 0076   4]                Processor UID : 00000000
+[050h 0080   4]        Flags (decoded below) : 00000001
+                           Processor Enabled : 1
+          Performance Interrupt Trigger Mode : 0
+          Virtual GIC Interrupt Trigger Mode : 0
+[054h 0084   4]     Parking Protocol Version : 00000000
+[058h 0088   4]        Performance Interrupt : 00000017
+[05Ch 0092   8]               Parked Address : 0000000000000000
+[064h 0100   8]                 Base Address : 0000000008010000
+[06Ch 0108   8]     Virtual GIC Base Address : 0000000008040000
+[074h 0116   8]  Hypervisor GIC Base Address : 0000000008030000
+[07Ch 0124   4]        Virtual GIC Interrupt : 00000000
+[080h 0128   8]   Redistributor Base Address : 0000000000000000
+[088h 0136   8]                    ARM MPIDR : 0000000000000000
+/**** ACPI subtable terminates early - may be older version (dump table) */
+
+[090h 0144   1]                Subtable Type : 0D [Generic MSI Frame]
+[091h 0145   1]                       Length : 18
+[092h 0146   2]                     Reserved : 0000
+[094h 0148   4]                 MSI Frame ID : 00000000
+[098h 0152   8]                 Base Address : 0000000008020000
+[0A0h 0160   4]        Flags (decoded below) : 00000001
+                                  Select SPI : 1
+[0A4h 0164   2]                    SPI Count : 0040
+[0A6h 0166   2]                     SPI Base : 0050
+
+Raw Table Data: Length 168 (0xA8)
+
+    0000: 41 50 49 43 A8 00 00 00 03 B3 42 4F 43 48 53 20  // APIC......BOCHS 
+    0010: 42 58 50 43 41 50 49 43 01 00 00 00 42 58 50 43  // BXPCAPIC....BXPC
+    0020: 01 00 00 00 00 00 00 00 00 00 00 00 0C 18 00 00  // ................
+    0030: 00 00 00 00 00 00 00 08 00 00 00 00 00 00 00 00  // ................
+    0040: 02 00 00 00 0B 4C 00 00 00 00 00 00 00 00 00 00  // .....L..........
+    0050: 01 00 00 00 00 00 00 00 17 00 00 00 00 00 00 00  // ................
+    0060: 00 00 00 00 00 00 01 08 00 00 00 00 00 00 04 08  // ................
+    0070: 00 00 00 00 00 00 03 08 00 00 00 00 00 00 00 00  // ................
+    0080: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  // ................
+    0090: 0D 18 00 00 00 00 00 00 00 00 02 08 00 00 00 00  // ................
+    00A0: 01 00 00 00 40 00 50 00                          // ....@.P.
diff --git a/tests/data/acpi/virt/APIC.memhp.dsl b/tests/data/acpi/virt/APIC.memhp.dsl
new file mode 100644
index 0000000000..9b86f7b984
--- /dev/null
+++ b/tests/data/acpi/virt/APIC.memhp.dsl
@@ -0,0 +1,78 @@ 
+/*
+ * Intel ACPI Component Architecture
+ * AML/ASL+ Disassembler version 20190509 (64-bit version)
+ * Copyright (c) 2000 - 2019 Intel Corporation
+ * 
+ * Disassembly of tests/data/acpi/virt/APIC.memhp, Tue Aug  4 11:14:15 2020
+ *
+ * ACPI Data Table [APIC]
+ *
+ * Format: [HexOffset DecimalOffset ByteLength]  FieldName : FieldValue
+ */
+
+[000h 0000   4]                    Signature : "APIC"    [Multiple APIC Description Table (MADT)]
+[004h 0004   4]                 Table Length : 000000A8
+[008h 0008   1]                     Revision : 03
+[009h 0009   1]                     Checksum : B3
+[00Ah 0010   6]                       Oem ID : "BOCHS "
+[010h 0016   8]                 Oem Table ID : "BXPCAPIC"
+[018h 0024   4]                 Oem Revision : 00000001
+[01Ch 0028   4]              Asl Compiler ID : "BXPC"
+[020h 0032   4]        Asl Compiler Revision : 00000001
+
+[024h 0036   4]           Local Apic Address : 00000000
+[028h 0040   4]        Flags (decoded below) : 00000000
+                         PC-AT Compatibility : 0
+
+[02Ch 0044   1]                Subtable Type : 0C [Generic Interrupt Distributor]
+[02Dh 0045   1]                       Length : 18
+[02Eh 0046   2]                     Reserved : 0000
+[030h 0048   4]        Local GIC Hardware ID : 00000000
+[034h 0052   8]                 Base Address : 0000000008000000
+[03Ch 0060   4]               Interrupt Base : 00000000
+[040h 0064   1]                      Version : 02
+[041h 0065   3]                     Reserved : 000000
+
+[044h 0068   1]                Subtable Type : 0B [Generic Interrupt Controller]
+[045h 0069   1]                       Length : 4C
+[046h 0070   2]                     Reserved : 0000
+[048h 0072   4]         CPU Interface Number : 00000000
+[04Ch 0076   4]                Processor UID : 00000000
+[050h 0080   4]        Flags (decoded below) : 00000001
+                           Processor Enabled : 1
+          Performance Interrupt Trigger Mode : 0
+          Virtual GIC Interrupt Trigger Mode : 0
+[054h 0084   4]     Parking Protocol Version : 00000000
+[058h 0088   4]        Performance Interrupt : 00000017
+[05Ch 0092   8]               Parked Address : 0000000000000000
+[064h 0100   8]                 Base Address : 0000000008010000
+[06Ch 0108   8]     Virtual GIC Base Address : 0000000008040000
+[074h 0116   8]  Hypervisor GIC Base Address : 0000000008030000
+[07Ch 0124   4]        Virtual GIC Interrupt : 00000000
+[080h 0128   8]   Redistributor Base Address : 0000000000000000
+[088h 0136   8]                    ARM MPIDR : 0000000000000000
+/**** ACPI subtable terminates early - may be older version (dump table) */
+
+[090h 0144   1]                Subtable Type : 0D [Generic MSI Frame]
+[091h 0145   1]                       Length : 18
+[092h 0146   2]                     Reserved : 0000
+[094h 0148   4]                 MSI Frame ID : 00000000
+[098h 0152   8]                 Base Address : 0000000008020000
+[0A0h 0160   4]        Flags (decoded below) : 00000001
+                                  Select SPI : 1
+[0A4h 0164   2]                    SPI Count : 0040
+[0A6h 0166   2]                     SPI Base : 0050
+
+Raw Table Data: Length 168 (0xA8)
+
+    0000: 41 50 49 43 A8 00 00 00 03 B3 42 4F 43 48 53 20  // APIC......BOCHS 
+    0010: 42 58 50 43 41 50 49 43 01 00 00 00 42 58 50 43  // BXPCAPIC....BXPC
+    0020: 01 00 00 00 00 00 00 00 00 00 00 00 0C 18 00 00  // ................
+    0030: 00 00 00 00 00 00 00 08 00 00 00 00 00 00 00 00  // ................
+    0040: 02 00 00 00 0B 4C 00 00 00 00 00 00 00 00 00 00  // .....L..........
+    0050: 01 00 00 00 00 00 00 00 17 00 00 00 00 00 00 00  // ................
+    0060: 00 00 00 00 00 00 01 08 00 00 00 00 00 00 04 08  // ................
+    0070: 00 00 00 00 00 00 03 08 00 00 00 00 00 00 00 00  // ................
+    0080: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  // ................
+    0090: 0D 18 00 00 00 00 00 00 00 00 02 08 00 00 00 00  // ................
+    00A0: 01 00 00 00 40 00 50 00                          // ....@.P.
diff --git a/tests/data/acpi/virt/APIC.numamem.dsl b/tests/data/acpi/virt/APIC.numamem.dsl
new file mode 100644
index 0000000000..2d43338766
--- /dev/null
+++ b/tests/data/acpi/virt/APIC.numamem.dsl
@@ -0,0 +1,78 @@ 
+/*
+ * Intel ACPI Component Architecture
+ * AML/ASL+ Disassembler version 20190509 (64-bit version)
+ * Copyright (c) 2000 - 2019 Intel Corporation
+ * 
+ * Disassembly of tests/data/acpi/virt/APIC.numamem, Tue Aug  4 11:14:15 2020
+ *
+ * ACPI Data Table [APIC]
+ *
+ * Format: [HexOffset DecimalOffset ByteLength]  FieldName : FieldValue
+ */
+
+[000h 0000   4]                    Signature : "APIC"    [Multiple APIC Description Table (MADT)]
+[004h 0004   4]                 Table Length : 000000A8
+[008h 0008   1]                     Revision : 03
+[009h 0009   1]                     Checksum : B3
+[00Ah 0010   6]                       Oem ID : "BOCHS "
+[010h 0016   8]                 Oem Table ID : "BXPCAPIC"
+[018h 0024   4]                 Oem Revision : 00000001
+[01Ch 0028   4]              Asl Compiler ID : "BXPC"
+[020h 0032   4]        Asl Compiler Revision : 00000001
+
+[024h 0036   4]           Local Apic Address : 00000000
+[028h 0040   4]        Flags (decoded below) : 00000000
+                         PC-AT Compatibility : 0
+
+[02Ch 0044   1]                Subtable Type : 0C [Generic Interrupt Distributor]
+[02Dh 0045   1]                       Length : 18
+[02Eh 0046   2]                     Reserved : 0000
+[030h 0048   4]        Local GIC Hardware ID : 00000000
+[034h 0052   8]                 Base Address : 0000000008000000
+[03Ch 0060   4]               Interrupt Base : 00000000
+[040h 0064   1]                      Version : 02
+[041h 0065   3]                     Reserved : 000000
+
+[044h 0068   1]                Subtable Type : 0B [Generic Interrupt Controller]
+[045h 0069   1]                       Length : 4C
+[046h 0070   2]                     Reserved : 0000
+[048h 0072   4]         CPU Interface Number : 00000000
+[04Ch 0076   4]                Processor UID : 00000000
+[050h 0080   4]        Flags (decoded below) : 00000001
+                           Processor Enabled : 1
+          Performance Interrupt Trigger Mode : 0
+          Virtual GIC Interrupt Trigger Mode : 0
+[054h 0084   4]     Parking Protocol Version : 00000000
+[058h 0088   4]        Performance Interrupt : 00000017
+[05Ch 0092   8]               Parked Address : 0000000000000000
+[064h 0100   8]                 Base Address : 0000000008010000
+[06Ch 0108   8]     Virtual GIC Base Address : 0000000008040000
+[074h 0116   8]  Hypervisor GIC Base Address : 0000000008030000
+[07Ch 0124   4]        Virtual GIC Interrupt : 00000000
+[080h 0128   8]   Redistributor Base Address : 0000000000000000
+[088h 0136   8]                    ARM MPIDR : 0000000000000000
+/**** ACPI subtable terminates early - may be older version (dump table) */
+
+[090h 0144   1]                Subtable Type : 0D [Generic MSI Frame]
+[091h 0145   1]                       Length : 18
+[092h 0146   2]                     Reserved : 0000
+[094h 0148   4]                 MSI Frame ID : 00000000
+[098h 0152   8]                 Base Address : 0000000008020000
+[0A0h 0160   4]        Flags (decoded below) : 00000001
+                                  Select SPI : 1
+[0A4h 0164   2]                    SPI Count : 0040
+[0A6h 0166   2]                     SPI Base : 0050
+
+Raw Table Data: Length 168 (0xA8)
+
+    0000: 41 50 49 43 A8 00 00 00 03 B3 42 4F 43 48 53 20  // APIC......BOCHS 
+    0010: 42 58 50 43 41 50 49 43 01 00 00 00 42 58 50 43  // BXPCAPIC....BXPC
+    0020: 01 00 00 00 00 00 00 00 00 00 00 00 0C 18 00 00  // ................
+    0030: 00 00 00 00 00 00 00 08 00 00 00 00 00 00 00 00  // ................
+    0040: 02 00 00 00 0B 4C 00 00 00 00 00 00 00 00 00 00  // .....L..........
+    0050: 01 00 00 00 00 00 00 00 17 00 00 00 00 00 00 00  // ................
+    0060: 00 00 00 00 00 00 01 08 00 00 00 00 00 00 04 08  // ................
+    0070: 00 00 00 00 00 00 03 08 00 00 00 00 00 00 00 00  // ................
+    0080: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  // ................
+    0090: 0D 18 00 00 00 00 00 00 00 00 02 08 00 00 00 00  // ................
+    00A0: 01 00 00 00 40 00 50 00                          // ....@.P.
diff --git a/tests/data/acpi/virt/DSDT.dsl b/tests/data/acpi/virt/DSDT.dsl
new file mode 100644
index 0000000000..58368ff44c
--- /dev/null
+++ b/tests/data/acpi/virt/DSDT.dsl
@@ -0,0 +1,1906 @@ 
+/*
+ * Intel ACPI Component Architecture
+ * AML/ASL+ Disassembler version 20190509 (64-bit version)
+ * Copyright (c) 2000 - 2019 Intel Corporation
+ * 
+ * Disassembling to symbolic ASL+ operators
+ *
+ * Disassembly of tests/data/acpi/virt/DSDT.numamem, Mon Sep 28 17:24:38 2020
+ *
+ * Original Table Header:
+ *     Signature        "DSDT"
+ *     Length           0x00001450 (5200)
+ *     Revision         0x02
+ *     Checksum         0xFA
+ *     OEM ID           "BOCHS "
+ *     OEM Table ID     "BXPCDSDT"
+ *     OEM Revision     0x00000001 (1)
+ *     Compiler ID      "BXPC"
+ *     Compiler Version 0x00000001 (1)
+ */
+DefinitionBlock ("", "DSDT", 2, "BOCHS ", "BXPCDSDT", 0x00000001)
+{
+    Scope (\_SB)
+    {
+        Device (C000)
+        {
+            Name (_HID, "ACPI0007" /* Processor Device */)  // _HID: Hardware ID
+            Name (_UID, Zero)  // _UID: Unique ID
+        }
+
+        Device (COM0)
+        {
+            Name (_HID, "ARMH0011")  // _HID: Hardware ID
+            Name (_UID, Zero)  // _UID: Unique ID
+            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+            {
+                Memory32Fixed (ReadWrite,
+                    0x09000000,         // Address Base
+                    0x00001000,         // Address Length
+                    )
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Exclusive, ,, )
+                {
+                    0x00000021,
+                }
+            })
+        }
+
+        Device (FWCF)
+        {
+            Name (_HID, "QEMU0002")  // _HID: Hardware ID
+            Name (_STA, 0x0B)  // _STA: Status
+            Name (_CCA, One)  // _CCA: Cache Coherency Attribute
+            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+            {
+                Memory32Fixed (ReadWrite,
+                    0x09020000,         // Address Base
+                    0x00000018,         // Address Length
+                    )
+            })
+        }
+
+        Device (VR00)
+        {
+            Name (_HID, "LNRO0005")  // _HID: Hardware ID
+            Name (_UID, Zero)  // _UID: Unique ID
+            Name (_CCA, One)  // _CCA: Cache Coherency Attribute
+            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+            {
+                Memory32Fixed (ReadWrite,
+                    0x0A000000,         // Address Base
+                    0x00000200,         // Address Length
+                    )
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Exclusive, ,, )
+                {
+                    0x00000030,
+                }
+            })
+        }
+
+        Device (VR01)
+        {
+            Name (_HID, "LNRO0005")  // _HID: Hardware ID
+            Name (_UID, One)  // _UID: Unique ID
+            Name (_CCA, One)  // _CCA: Cache Coherency Attribute
+            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+            {
+                Memory32Fixed (ReadWrite,
+                    0x0A000200,         // Address Base
+                    0x00000200,         // Address Length
+                    )
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Exclusive, ,, )
+                {
+                    0x00000031,
+                }
+            })
+        }
+
+        Device (VR02)
+        {
+            Name (_HID, "LNRO0005")  // _HID: Hardware ID
+            Name (_UID, 0x02)  // _UID: Unique ID
+            Name (_CCA, One)  // _CCA: Cache Coherency Attribute
+            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+            {
+                Memory32Fixed (ReadWrite,
+                    0x0A000400,         // Address Base
+                    0x00000200,         // Address Length
+                    )
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Exclusive, ,, )
+                {
+                    0x00000032,
+                }
+            })
+        }
+
+        Device (VR03)
+        {
+            Name (_HID, "LNRO0005")  // _HID: Hardware ID
+            Name (_UID, 0x03)  // _UID: Unique ID
+            Name (_CCA, One)  // _CCA: Cache Coherency Attribute
+            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+            {
+                Memory32Fixed (ReadWrite,
+                    0x0A000600,         // Address Base
+                    0x00000200,         // Address Length
+                    )
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Exclusive, ,, )
+                {
+                    0x00000033,
+                }
+            })
+        }
+
+        Device (VR04)
+        {
+            Name (_HID, "LNRO0005")  // _HID: Hardware ID
+            Name (_UID, 0x04)  // _UID: Unique ID
+            Name (_CCA, One)  // _CCA: Cache Coherency Attribute
+            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+            {
+                Memory32Fixed (ReadWrite,
+                    0x0A000800,         // Address Base
+                    0x00000200,         // Address Length
+                    )
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Exclusive, ,, )
+                {
+                    0x00000034,
+                }
+            })
+        }
+
+        Device (VR05)
+        {
+            Name (_HID, "LNRO0005")  // _HID: Hardware ID
+            Name (_UID, 0x05)  // _UID: Unique ID
+            Name (_CCA, One)  // _CCA: Cache Coherency Attribute
+            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+            {
+                Memory32Fixed (ReadWrite,
+                    0x0A000A00,         // Address Base
+                    0x00000200,         // Address Length
+                    )
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Exclusive, ,, )
+                {
+                    0x00000035,
+                }
+            })
+        }
+
+        Device (VR06)
+        {
+            Name (_HID, "LNRO0005")  // _HID: Hardware ID
+            Name (_UID, 0x06)  // _UID: Unique ID
+            Name (_CCA, One)  // _CCA: Cache Coherency Attribute
+            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+            {
+                Memory32Fixed (ReadWrite,
+                    0x0A000C00,         // Address Base
+                    0x00000200,         // Address Length
+                    )
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Exclusive, ,, )
+                {
+                    0x00000036,
+                }
+            })
+        }
+
+        Device (VR07)
+        {
+            Name (_HID, "LNRO0005")  // _HID: Hardware ID
+            Name (_UID, 0x07)  // _UID: Unique ID
+            Name (_CCA, One)  // _CCA: Cache Coherency Attribute
+            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+            {
+                Memory32Fixed (ReadWrite,
+                    0x0A000E00,         // Address Base
+                    0x00000200,         // Address Length
+                    )
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Exclusive, ,, )
+                {
+                    0x00000037,
+                }
+            })
+        }
+
+        Device (VR08)
+        {
+            Name (_HID, "LNRO0005")  // _HID: Hardware ID
+            Name (_UID, 0x08)  // _UID: Unique ID
+            Name (_CCA, One)  // _CCA: Cache Coherency Attribute
+            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+            {
+                Memory32Fixed (ReadWrite,
+                    0x0A001000,         // Address Base
+                    0x00000200,         // Address Length
+                    )
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Exclusive, ,, )
+                {
+                    0x00000038,
+                }
+            })
+        }
+
+        Device (VR09)
+        {
+            Name (_HID, "LNRO0005")  // _HID: Hardware ID
+            Name (_UID, 0x09)  // _UID: Unique ID
+            Name (_CCA, One)  // _CCA: Cache Coherency Attribute
+            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+            {
+                Memory32Fixed (ReadWrite,
+                    0x0A001200,         // Address Base
+                    0x00000200,         // Address Length
+                    )
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Exclusive, ,, )
+                {
+                    0x00000039,
+                }
+            })
+        }
+
+        Device (VR10)
+        {
+            Name (_HID, "LNRO0005")  // _HID: Hardware ID
+            Name (_UID, 0x0A)  // _UID: Unique ID
+            Name (_CCA, One)  // _CCA: Cache Coherency Attribute
+            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+            {
+                Memory32Fixed (ReadWrite,
+                    0x0A001400,         // Address Base
+                    0x00000200,         // Address Length
+                    )
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Exclusive, ,, )
+                {
+                    0x0000003A,
+                }
+            })
+        }
+
+        Device (VR11)
+        {
+            Name (_HID, "LNRO0005")  // _HID: Hardware ID
+            Name (_UID, 0x0B)  // _UID: Unique ID
+            Name (_CCA, One)  // _CCA: Cache Coherency Attribute
+            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+            {
+                Memory32Fixed (ReadWrite,
+                    0x0A001600,         // Address Base
+                    0x00000200,         // Address Length
+                    )
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Exclusive, ,, )
+                {
+                    0x0000003B,
+                }
+            })
+        }
+
+        Device (VR12)
+        {
+            Name (_HID, "LNRO0005")  // _HID: Hardware ID
+            Name (_UID, 0x0C)  // _UID: Unique ID
+            Name (_CCA, One)  // _CCA: Cache Coherency Attribute
+            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+            {
+                Memory32Fixed (ReadWrite,
+                    0x0A001800,         // Address Base
+                    0x00000200,         // Address Length
+                    )
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Exclusive, ,, )
+                {
+                    0x0000003C,
+                }
+            })
+        }
+
+        Device (VR13)
+        {
+            Name (_HID, "LNRO0005")  // _HID: Hardware ID
+            Name (_UID, 0x0D)  // _UID: Unique ID
+            Name (_CCA, One)  // _CCA: Cache Coherency Attribute
+            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+            {
+                Memory32Fixed (ReadWrite,
+                    0x0A001A00,         // Address Base
+                    0x00000200,         // Address Length
+                    )
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Exclusive, ,, )
+                {
+                    0x0000003D,
+                }
+            })
+        }
+
+        Device (VR14)
+        {
+            Name (_HID, "LNRO0005")  // _HID: Hardware ID
+            Name (_UID, 0x0E)  // _UID: Unique ID
+            Name (_CCA, One)  // _CCA: Cache Coherency Attribute
+            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+            {
+                Memory32Fixed (ReadWrite,
+                    0x0A001C00,         // Address Base
+                    0x00000200,         // Address Length
+                    )
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Exclusive, ,, )
+                {
+                    0x0000003E,
+                }
+            })
+        }
+
+        Device (VR15)
+        {
+            Name (_HID, "LNRO0005")  // _HID: Hardware ID
+            Name (_UID, 0x0F)  // _UID: Unique ID
+            Name (_CCA, One)  // _CCA: Cache Coherency Attribute
+            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+            {
+                Memory32Fixed (ReadWrite,
+                    0x0A001E00,         // Address Base
+                    0x00000200,         // Address Length
+                    )
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Exclusive, ,, )
+                {
+                    0x0000003F,
+                }
+            })
+        }
+
+        Device (VR16)
+        {
+            Name (_HID, "LNRO0005")  // _HID: Hardware ID
+            Name (_UID, 0x10)  // _UID: Unique ID
+            Name (_CCA, One)  // _CCA: Cache Coherency Attribute
+            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+            {
+                Memory32Fixed (ReadWrite,
+                    0x0A002000,         // Address Base
+                    0x00000200,         // Address Length
+                    )
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Exclusive, ,, )
+                {
+                    0x00000040,
+                }
+            })
+        }
+
+        Device (VR17)
+        {
+            Name (_HID, "LNRO0005")  // _HID: Hardware ID
+            Name (_UID, 0x11)  // _UID: Unique ID
+            Name (_CCA, One)  // _CCA: Cache Coherency Attribute
+            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+            {
+                Memory32Fixed (ReadWrite,
+                    0x0A002200,         // Address Base
+                    0x00000200,         // Address Length
+                    )
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Exclusive, ,, )
+                {
+                    0x00000041,
+                }
+            })
+        }
+
+        Device (VR18)
+        {
+            Name (_HID, "LNRO0005")  // _HID: Hardware ID
+            Name (_UID, 0x12)  // _UID: Unique ID
+            Name (_CCA, One)  // _CCA: Cache Coherency Attribute
+            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+            {
+                Memory32Fixed (ReadWrite,
+                    0x0A002400,         // Address Base
+                    0x00000200,         // Address Length
+                    )
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Exclusive, ,, )
+                {
+                    0x00000042,
+                }
+            })
+        }
+
+        Device (VR19)
+        {
+            Name (_HID, "LNRO0005")  // _HID: Hardware ID
+            Name (_UID, 0x13)  // _UID: Unique ID
+            Name (_CCA, One)  // _CCA: Cache Coherency Attribute
+            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+            {
+                Memory32Fixed (ReadWrite,
+                    0x0A002600,         // Address Base
+                    0x00000200,         // Address Length
+                    )
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Exclusive, ,, )
+                {
+                    0x00000043,
+                }
+            })
+        }
+
+        Device (VR20)
+        {
+            Name (_HID, "LNRO0005")  // _HID: Hardware ID
+            Name (_UID, 0x14)  // _UID: Unique ID
+            Name (_CCA, One)  // _CCA: Cache Coherency Attribute
+            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+            {
+                Memory32Fixed (ReadWrite,
+                    0x0A002800,         // Address Base
+                    0x00000200,         // Address Length
+                    )
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Exclusive, ,, )
+                {
+                    0x00000044,
+                }
+            })
+        }
+
+        Device (VR21)
+        {
+            Name (_HID, "LNRO0005")  // _HID: Hardware ID
+            Name (_UID, 0x15)  // _UID: Unique ID
+            Name (_CCA, One)  // _CCA: Cache Coherency Attribute
+            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+            {
+                Memory32Fixed (ReadWrite,
+                    0x0A002A00,         // Address Base
+                    0x00000200,         // Address Length
+                    )
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Exclusive, ,, )
+                {
+                    0x00000045,
+                }
+            })
+        }
+
+        Device (VR22)
+        {
+            Name (_HID, "LNRO0005")  // _HID: Hardware ID
+            Name (_UID, 0x16)  // _UID: Unique ID
+            Name (_CCA, One)  // _CCA: Cache Coherency Attribute
+            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+            {
+                Memory32Fixed (ReadWrite,
+                    0x0A002C00,         // Address Base
+                    0x00000200,         // Address Length
+                    )
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Exclusive, ,, )
+                {
+                    0x00000046,
+                }
+            })
+        }
+
+        Device (VR23)
+        {
+            Name (_HID, "LNRO0005")  // _HID: Hardware ID
+            Name (_UID, 0x17)  // _UID: Unique ID
+            Name (_CCA, One)  // _CCA: Cache Coherency Attribute
+            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+            {
+                Memory32Fixed (ReadWrite,
+                    0x0A002E00,         // Address Base
+                    0x00000200,         // Address Length
+                    )
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Exclusive, ,, )
+                {
+                    0x00000047,
+                }
+            })
+        }
+
+        Device (VR24)
+        {
+            Name (_HID, "LNRO0005")  // _HID: Hardware ID
+            Name (_UID, 0x18)  // _UID: Unique ID
+            Name (_CCA, One)  // _CCA: Cache Coherency Attribute
+            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+            {
+                Memory32Fixed (ReadWrite,
+                    0x0A003000,         // Address Base
+                    0x00000200,         // Address Length
+                    )
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Exclusive, ,, )
+                {
+                    0x00000048,
+                }
+            })
+        }
+
+        Device (VR25)
+        {
+            Name (_HID, "LNRO0005")  // _HID: Hardware ID
+            Name (_UID, 0x19)  // _UID: Unique ID
+            Name (_CCA, One)  // _CCA: Cache Coherency Attribute
+            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+            {
+                Memory32Fixed (ReadWrite,
+                    0x0A003200,         // Address Base
+                    0x00000200,         // Address Length
+                    )
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Exclusive, ,, )
+                {
+                    0x00000049,
+                }
+            })
+        }
+
+        Device (VR26)
+        {
+            Name (_HID, "LNRO0005")  // _HID: Hardware ID
+            Name (_UID, 0x1A)  // _UID: Unique ID
+            Name (_CCA, One)  // _CCA: Cache Coherency Attribute
+            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+            {
+                Memory32Fixed (ReadWrite,
+                    0x0A003400,         // Address Base
+                    0x00000200,         // Address Length
+                    )
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Exclusive, ,, )
+                {
+                    0x0000004A,
+                }
+            })
+        }
+
+        Device (VR27)
+        {
+            Name (_HID, "LNRO0005")  // _HID: Hardware ID
+            Name (_UID, 0x1B)  // _UID: Unique ID
+            Name (_CCA, One)  // _CCA: Cache Coherency Attribute
+            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+            {
+                Memory32Fixed (ReadWrite,
+                    0x0A003600,         // Address Base
+                    0x00000200,         // Address Length
+                    )
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Exclusive, ,, )
+                {
+                    0x0000004B,
+                }
+            })
+        }
+
+        Device (VR28)
+        {
+            Name (_HID, "LNRO0005")  // _HID: Hardware ID
+            Name (_UID, 0x1C)  // _UID: Unique ID
+            Name (_CCA, One)  // _CCA: Cache Coherency Attribute
+            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+            {
+                Memory32Fixed (ReadWrite,
+                    0x0A003800,         // Address Base
+                    0x00000200,         // Address Length
+                    )
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Exclusive, ,, )
+                {
+                    0x0000004C,
+                }
+            })
+        }
+
+        Device (VR29)
+        {
+            Name (_HID, "LNRO0005")  // _HID: Hardware ID
+            Name (_UID, 0x1D)  // _UID: Unique ID
+            Name (_CCA, One)  // _CCA: Cache Coherency Attribute
+            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+            {
+                Memory32Fixed (ReadWrite,
+                    0x0A003A00,         // Address Base
+                    0x00000200,         // Address Length
+                    )
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Exclusive, ,, )
+                {
+                    0x0000004D,
+                }
+            })
+        }
+
+        Device (VR30)
+        {
+            Name (_HID, "LNRO0005")  // _HID: Hardware ID
+            Name (_UID, 0x1E)  // _UID: Unique ID
+            Name (_CCA, One)  // _CCA: Cache Coherency Attribute
+            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+            {
+                Memory32Fixed (ReadWrite,
+                    0x0A003C00,         // Address Base
+                    0x00000200,         // Address Length
+                    )
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Exclusive, ,, )
+                {
+                    0x0000004E,
+                }
+            })
+        }
+
+        Device (VR31)
+        {
+            Name (_HID, "LNRO0005")  // _HID: Hardware ID
+            Name (_UID, 0x1F)  // _UID: Unique ID
+            Name (_CCA, One)  // _CCA: Cache Coherency Attribute
+            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+            {
+                Memory32Fixed (ReadWrite,
+                    0x0A003E00,         // Address Base
+                    0x00000200,         // Address Length
+                    )
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Exclusive, ,, )
+                {
+                    0x0000004F,
+                }
+            })
+        }
+
+        Device (PCI0)
+        {
+            Name (_HID, "PNP0A08" /* PCI Express Bus */)  // _HID: Hardware ID
+            Name (_CID, "PNP0A03" /* PCI Bus */)  // _CID: Compatible ID
+            Name (_SEG, Zero)  // _SEG: PCI Segment
+            Name (_BBN, Zero)  // _BBN: BIOS Bus Number
+            Name (_UID, Zero)  // _UID: Unique ID
+            Name (_STR, Unicode ("PCIe 0 Device"))  // _STR: Description String
+            Name (_CCA, One)  // _CCA: Cache Coherency Attribute
+            Name (_PRT, Package (0x80)  // _PRT: PCI Routing Table
+            {
+                Package (0x04)
+                {
+                    0xFFFF, 
+                    Zero, 
+                    GSI0, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0xFFFF, 
+                    One, 
+                    GSI1, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0xFFFF, 
+                    0x02, 
+                    GSI2, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0xFFFF, 
+                    0x03, 
+                    GSI3, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0001FFFF, 
+                    Zero, 
+                    GSI1, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0001FFFF, 
+                    One, 
+                    GSI2, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0001FFFF, 
+                    0x02, 
+                    GSI3, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0001FFFF, 
+                    0x03, 
+                    GSI0, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0002FFFF, 
+                    Zero, 
+                    GSI2, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0002FFFF, 
+                    One, 
+                    GSI3, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0002FFFF, 
+                    0x02, 
+                    GSI0, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0002FFFF, 
+                    0x03, 
+                    GSI1, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0003FFFF, 
+                    Zero, 
+                    GSI3, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0003FFFF, 
+                    One, 
+                    GSI0, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0003FFFF, 
+                    0x02, 
+                    GSI1, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0003FFFF, 
+                    0x03, 
+                    GSI2, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0004FFFF, 
+                    Zero, 
+                    GSI0, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0004FFFF, 
+                    One, 
+                    GSI1, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0004FFFF, 
+                    0x02, 
+                    GSI2, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0004FFFF, 
+                    0x03, 
+                    GSI3, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0005FFFF, 
+                    Zero, 
+                    GSI1, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0005FFFF, 
+                    One, 
+                    GSI2, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0005FFFF, 
+                    0x02, 
+                    GSI3, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0005FFFF, 
+                    0x03, 
+                    GSI0, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0006FFFF, 
+                    Zero, 
+                    GSI2, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0006FFFF, 
+                    One, 
+                    GSI3, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0006FFFF, 
+                    0x02, 
+                    GSI0, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0006FFFF, 
+                    0x03, 
+                    GSI1, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0007FFFF, 
+                    Zero, 
+                    GSI3, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0007FFFF, 
+                    One, 
+                    GSI0, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0007FFFF, 
+                    0x02, 
+                    GSI1, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0007FFFF, 
+                    0x03, 
+                    GSI2, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0008FFFF, 
+                    Zero, 
+                    GSI0, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0008FFFF, 
+                    One, 
+                    GSI1, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0008FFFF, 
+                    0x02, 
+                    GSI2, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0008FFFF, 
+                    0x03, 
+                    GSI3, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0009FFFF, 
+                    Zero, 
+                    GSI1, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0009FFFF, 
+                    One, 
+                    GSI2, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0009FFFF, 
+                    0x02, 
+                    GSI3, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0009FFFF, 
+                    0x03, 
+                    GSI0, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000AFFFF, 
+                    Zero, 
+                    GSI2, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000AFFFF, 
+                    One, 
+                    GSI3, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000AFFFF, 
+                    0x02, 
+                    GSI0, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000AFFFF, 
+                    0x03, 
+                    GSI1, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000BFFFF, 
+                    Zero, 
+                    GSI3, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000BFFFF, 
+                    One, 
+                    GSI0, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000BFFFF, 
+                    0x02, 
+                    GSI1, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000BFFFF, 
+                    0x03, 
+                    GSI2, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000CFFFF, 
+                    Zero, 
+                    GSI0, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000CFFFF, 
+                    One, 
+                    GSI1, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000CFFFF, 
+                    0x02, 
+                    GSI2, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000CFFFF, 
+                    0x03, 
+                    GSI3, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000DFFFF, 
+                    Zero, 
+                    GSI1, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000DFFFF, 
+                    One, 
+                    GSI2, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000DFFFF, 
+                    0x02, 
+                    GSI3, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000DFFFF, 
+                    0x03, 
+                    GSI0, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000EFFFF, 
+                    Zero, 
+                    GSI2, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000EFFFF, 
+                    One, 
+                    GSI3, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000EFFFF, 
+                    0x02, 
+                    GSI0, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000EFFFF, 
+                    0x03, 
+                    GSI1, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000FFFFF, 
+                    Zero, 
+                    GSI3, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000FFFFF, 
+                    One, 
+                    GSI0, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000FFFFF, 
+                    0x02, 
+                    GSI1, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000FFFFF, 
+                    0x03, 
+                    GSI2, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0010FFFF, 
+                    Zero, 
+                    GSI0, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0010FFFF, 
+                    One, 
+                    GSI1, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0010FFFF, 
+                    0x02, 
+                    GSI2, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0010FFFF, 
+                    0x03, 
+                    GSI3, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0011FFFF, 
+                    Zero, 
+                    GSI1, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0011FFFF, 
+                    One, 
+                    GSI2, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0011FFFF, 
+                    0x02, 
+                    GSI3, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0011FFFF, 
+                    0x03, 
+                    GSI0, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0012FFFF, 
+                    Zero, 
+                    GSI2, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0012FFFF, 
+                    One, 
+                    GSI3, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0012FFFF, 
+                    0x02, 
+                    GSI0, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0012FFFF, 
+                    0x03, 
+                    GSI1, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0013FFFF, 
+                    Zero, 
+                    GSI3, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0013FFFF, 
+                    One, 
+                    GSI0, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0013FFFF, 
+                    0x02, 
+                    GSI1, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0013FFFF, 
+                    0x03, 
+                    GSI2, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0014FFFF, 
+                    Zero, 
+                    GSI0, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0014FFFF, 
+                    One, 
+                    GSI1, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0014FFFF, 
+                    0x02, 
+                    GSI2, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0014FFFF, 
+                    0x03, 
+                    GSI3, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0015FFFF, 
+                    Zero, 
+                    GSI1, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0015FFFF, 
+                    One, 
+                    GSI2, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0015FFFF, 
+                    0x02, 
+                    GSI3, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0015FFFF, 
+                    0x03, 
+                    GSI0, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0016FFFF, 
+                    Zero, 
+                    GSI2, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0016FFFF, 
+                    One, 
+                    GSI3, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0016FFFF, 
+                    0x02, 
+                    GSI0, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0016FFFF, 
+                    0x03, 
+                    GSI1, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0017FFFF, 
+                    Zero, 
+                    GSI3, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0017FFFF, 
+                    One, 
+                    GSI0, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0017FFFF, 
+                    0x02, 
+                    GSI1, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0017FFFF, 
+                    0x03, 
+                    GSI2, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0018FFFF, 
+                    Zero, 
+                    GSI0, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0018FFFF, 
+                    One, 
+                    GSI1, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0018FFFF, 
+                    0x02, 
+                    GSI2, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0018FFFF, 
+                    0x03, 
+                    GSI3, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0019FFFF, 
+                    Zero, 
+                    GSI1, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0019FFFF, 
+                    One, 
+                    GSI2, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0019FFFF, 
+                    0x02, 
+                    GSI3, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0019FFFF, 
+                    0x03, 
+                    GSI0, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001AFFFF, 
+                    Zero, 
+                    GSI2, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001AFFFF, 
+                    One, 
+                    GSI3, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001AFFFF, 
+                    0x02, 
+                    GSI0, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001AFFFF, 
+                    0x03, 
+                    GSI1, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001BFFFF, 
+                    Zero, 
+                    GSI3, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001BFFFF, 
+                    One, 
+                    GSI0, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001BFFFF, 
+                    0x02, 
+                    GSI1, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001BFFFF, 
+                    0x03, 
+                    GSI2, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001CFFFF, 
+                    Zero, 
+                    GSI0, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001CFFFF, 
+                    One, 
+                    GSI1, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001CFFFF, 
+                    0x02, 
+                    GSI2, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001CFFFF, 
+                    0x03, 
+                    GSI3, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001DFFFF, 
+                    Zero, 
+                    GSI1, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001DFFFF, 
+                    One, 
+                    GSI2, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001DFFFF, 
+                    0x02, 
+                    GSI3, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001DFFFF, 
+                    0x03, 
+                    GSI0, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001EFFFF, 
+                    Zero, 
+                    GSI2, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001EFFFF, 
+                    One, 
+                    GSI3, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001EFFFF, 
+                    0x02, 
+                    GSI0, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001EFFFF, 
+                    0x03, 
+                    GSI1, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001FFFFF, 
+                    Zero, 
+                    GSI3, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001FFFFF, 
+                    One, 
+                    GSI0, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001FFFFF, 
+                    0x02, 
+                    GSI1, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001FFFFF, 
+                    0x03, 
+                    GSI2, 
+                    Zero
+                }
+            })
+            Device (GSI0)
+            {
+                Name (_HID, "PNP0C0F" /* PCI Interrupt Link Device */)  // _HID: Hardware ID
+                Name (_UID, Zero)  // _UID: Unique ID
+                Name (_PRS, ResourceTemplate ()  // _PRS: Possible Resource Settings
+                {
+                    Interrupt (ResourceConsumer, Level, ActiveHigh, Exclusive, ,, )
+                    {
+                        0x00000023,
+                    }
+                })
+                Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+                {
+                    Interrupt (ResourceConsumer, Level, ActiveHigh, Exclusive, ,, )
+                    {
+                        0x00000023,
+                    }
+                })
+                Method (_SRS, 1, NotSerialized)  // _SRS: Set Resource Settings
+                {
+                }
+            }
+
+            Device (GSI1)
+            {
+                Name (_HID, "PNP0C0F" /* PCI Interrupt Link Device */)  // _HID: Hardware ID
+                Name (_UID, One)  // _UID: Unique ID
+                Name (_PRS, ResourceTemplate ()  // _PRS: Possible Resource Settings
+                {
+                    Interrupt (ResourceConsumer, Level, ActiveHigh, Exclusive, ,, )
+                    {
+                        0x00000024,
+                    }
+                })
+                Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+                {
+                    Interrupt (ResourceConsumer, Level, ActiveHigh, Exclusive, ,, )
+                    {
+                        0x00000024,
+                    }
+                })
+                Method (_SRS, 1, NotSerialized)  // _SRS: Set Resource Settings
+                {
+                }
+            }
+
+            Device (GSI2)
+            {
+                Name (_HID, "PNP0C0F" /* PCI Interrupt Link Device */)  // _HID: Hardware ID
+                Name (_UID, 0x02)  // _UID: Unique ID
+                Name (_PRS, ResourceTemplate ()  // _PRS: Possible Resource Settings
+                {
+                    Interrupt (ResourceConsumer, Level, ActiveHigh, Exclusive, ,, )
+                    {
+                        0x00000025,
+                    }
+                })
+                Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+                {
+                    Interrupt (ResourceConsumer, Level, ActiveHigh, Exclusive, ,, )
+                    {
+                        0x00000025,
+                    }
+                })
+                Method (_SRS, 1, NotSerialized)  // _SRS: Set Resource Settings
+                {
+                }
+            }
+
+            Device (GSI3)
+            {
+                Name (_HID, "PNP0C0F" /* PCI Interrupt Link Device */)  // _HID: Hardware ID
+                Name (_UID, 0x03)  // _UID: Unique ID
+                Name (_PRS, ResourceTemplate ()  // _PRS: Possible Resource Settings
+                {
+                    Interrupt (ResourceConsumer, Level, ActiveHigh, Exclusive, ,, )
+                    {
+                        0x00000026,
+                    }
+                })
+                Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+                {
+                    Interrupt (ResourceConsumer, Level, ActiveHigh, Exclusive, ,, )
+                    {
+                        0x00000026,
+                    }
+                })
+                Method (_SRS, 1, NotSerialized)  // _SRS: Set Resource Settings
+                {
+                }
+            }
+
+            Method (_CBA, 0, NotSerialized)  // _CBA: Configuration Base Address
+            {
+                Return (0x0000004010000000)
+            }
+
+            Method (_CRS, 0, NotSerialized)  // _CRS: Current Resource Settings
+            {
+                Return (ResourceTemplate ()
+                {
+                    WordBusNumber (ResourceProducer, MinFixed, MaxFixed, PosDecode,
+                        0x0000,             // Granularity
+                        0x0000,             // Range Minimum
+                        0x00FF,             // Range Maximum
+                        0x0000,             // Translation Offset
+                        0x0100,             // Length
+                        ,, )
+                    DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, NonCacheable, ReadWrite,
+                        0x00000000,         // Granularity
+                        0x10000000,         // Range Minimum
+                        0x3EFEFFFF,         // Range Maximum
+                        0x00000000,         // Translation Offset
+                        0x2EFF0000,         // Length
+                        ,, , AddressRangeMemory, TypeStatic)
+                    DWordIO (ResourceProducer, MinFixed, MaxFixed, PosDecode, EntireRange,
+                        0x00000000,         // Granularity
+                        0x00000000,         // Range Minimum
+                        0x0000FFFF,         // Range Maximum
+                        0x3EFF0000,         // Translation Offset
+                        0x00010000,         // Length
+                        ,, , TypeStatic, DenseTranslation)
+                    QWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, NonCacheable, ReadWrite,
+                        0x0000000000000000, // Granularity
+                        0x0000008000000000, // Range Minimum
+                        0x000000FFFFFFFFFF, // Range Maximum
+                        0x0000000000000000, // Translation Offset
+                        0x0000008000000000, // Length
+                        ,, , AddressRangeMemory, TypeStatic)
+                })
+            }
+
+            Name (SUPP, Zero)
+            Name (CTRL, Zero)
+            Method (_OSC, 4, NotSerialized)  // _OSC: Operating System Capabilities
+            {
+                CreateDWordField (Arg3, Zero, CDW1)
+                If ((Arg0 == ToUUID ("33db4d5b-1ff7-401c-9657-7441c03dd766") /* PCI Host Bridge Device */))
+                {
+                    CreateDWordField (Arg3, 0x04, CDW2)
+                    CreateDWordField (Arg3, 0x08, CDW3)
+                    SUPP = CDW2 /* \_SB_.PCI0._OSC.CDW2 */
+                    CTRL = CDW3 /* \_SB_.PCI0._OSC.CDW3 */
+                    CTRL &= 0x1F
+                    If ((Arg1 != One))
+                    {
+                        CDW1 |= 0x08
+                    }
+
+                    If ((CDW3 != CTRL))
+                    {
+                        CDW1 |= 0x10
+                    }
+
+                    CDW3 = CTRL /* \_SB_.PCI0.CTRL */
+                    Return (Arg3)
+                }
+                Else
+                {
+                    CDW1 |= 0x04
+                    Return (Arg3)
+                }
+            }
+
+            Method (_DSM, 4, NotSerialized)  // _DSM: Device-Specific Method
+            {
+                If ((Arg0 == ToUUID ("e5c937d0-3553-4d7a-9117-ea4d19c3434d") /* Device Labeling Interface */))
+                {
+                    If ((Arg2 == Zero))
+                    {
+                        Return (Buffer (One)
+                        {
+                             0x01                                             // .
+                        })
+                    }
+                }
+
+                Return (Buffer (One)
+                {
+                     0x00                                             // .
+                })
+            }
+
+            Device (RES0)
+            {
+                Name (_HID, "PNP0C02" /* PNP Motherboard Resources */)  // _HID: Hardware ID
+                Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+                {
+                    QWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, NonCacheable, ReadWrite,
+                        0x0000000000000000, // Granularity
+                        0x0000004010000000, // Range Minimum
+                        0x000000401FFFFFFF, // Range Maximum
+                        0x0000000000000000, // Translation Offset
+                        0x0000000010000000, // Length
+                        ,, , AddressRangeMemory, TypeStatic)
+                })
+            }
+        }
+
+        Device (\_SB.GED)
+        {
+            Name (_HID, "ACPI0013" /* Generic Event Device */)  // _HID: Hardware ID
+            Name (_UID, "GED")  // _UID: Unique ID
+            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+            {
+                Interrupt (ResourceConsumer, Edge, ActiveHigh, Exclusive, ,, )
+                {
+                    0x00000029,
+                }
+            })
+            OperationRegion (EREG, SystemMemory, 0x09080000, 0x04)
+            Field (EREG, DWordAcc, NoLock, WriteAsZeros)
+            {
+                ESEL,   32
+            }
+
+            Method (_EVT, 1, Serialized)  // _EVT: Event
+            {
+                Local0 = ESEL /* \_SB_.GED_.ESEL */
+                If (((Local0 & 0x02) == 0x02))
+                {
+                    Notify (PWRB, 0x80) // Status Change
+                }
+            }
+        }
+
+        Device (PWRB)
+        {
+            Name (_HID, "PNP0C0C" /* Power Button Device */)  // _HID: Hardware ID
+            Name (_UID, Zero)  // _UID: Unique ID
+        }
+    }
+}
+
diff --git a/tests/data/acpi/virt/DSDT.memhp.dsl b/tests/data/acpi/virt/DSDT.memhp.dsl
new file mode 100644
index 0000000000..84f3c51867
--- /dev/null
+++ b/tests/data/acpi/virt/DSDT.memhp.dsl
@@ -0,0 +1,2215 @@ 
+/*
+ * Intel ACPI Component Architecture
+ * AML/ASL+ Disassembler version 20190509 (64-bit version)
+ * Copyright (c) 2000 - 2019 Intel Corporation
+ * 
+ * Disassembling to symbolic ASL+ operators
+ *
+ * Disassembly of tests/data/acpi/virt/DSDT.memhp, Tue Aug  4 11:14:15 2020
+ *
+ * Original Table Header:
+ *     Signature        "DSDT"
+ *     Length           0x000019A6 (6566)
+ *     Revision         0x02
+ *     Checksum         0x02
+ *     OEM ID           "BOCHS "
+ *     OEM Table ID     "BXPCDSDT"
+ *     OEM Revision     0x00000001 (1)
+ *     Compiler ID      "BXPC"
+ *     Compiler Version 0x00000001 (1)
+ */
+DefinitionBlock ("", "DSDT", 2, "BOCHS ", "BXPCDSDT", 0x00000001)
+{
+    External (_SB_.NVDR, UnknownObj)
+
+    Scope (\_SB)
+    {
+        Device (C000)
+        {
+            Name (_HID, "ACPI0007" /* Processor Device */)  // _HID: Hardware ID
+            Name (_UID, Zero)  // _UID: Unique ID
+        }
+
+        Device (COM0)
+        {
+            Name (_HID, "ARMH0011")  // _HID: Hardware ID
+            Name (_UID, Zero)  // _UID: Unique ID
+            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+            {
+                Memory32Fixed (ReadWrite,
+                    0x09000000,         // Address Base
+                    0x00001000,         // Address Length
+                    )
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Exclusive, ,, )
+                {
+                    0x00000021,
+                }
+            })
+        }
+
+        Device (FWCF)
+        {
+            Name (_HID, "QEMU0002")  // _HID: Hardware ID
+            Name (_STA, 0x0B)  // _STA: Status
+            Name (_CCA, One)  // _CCA: Cache Coherency Attribute
+            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+            {
+                Memory32Fixed (ReadWrite,
+                    0x09020000,         // Address Base
+                    0x00000018,         // Address Length
+                    )
+            })
+        }
+
+        Device (VR00)
+        {
+            Name (_HID, "LNRO0005")  // _HID: Hardware ID
+            Name (_UID, Zero)  // _UID: Unique ID
+            Name (_CCA, One)  // _CCA: Cache Coherency Attribute
+            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+            {
+                Memory32Fixed (ReadWrite,
+                    0x0A000000,         // Address Base
+                    0x00000200,         // Address Length
+                    )
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Exclusive, ,, )
+                {
+                    0x00000030,
+                }
+            })
+        }
+
+        Device (VR01)
+        {
+            Name (_HID, "LNRO0005")  // _HID: Hardware ID
+            Name (_UID, One)  // _UID: Unique ID
+            Name (_CCA, One)  // _CCA: Cache Coherency Attribute
+            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+            {
+                Memory32Fixed (ReadWrite,
+                    0x0A000200,         // Address Base
+                    0x00000200,         // Address Length
+                    )
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Exclusive, ,, )
+                {
+                    0x00000031,
+                }
+            })
+        }
+
+        Device (VR02)
+        {
+            Name (_HID, "LNRO0005")  // _HID: Hardware ID
+            Name (_UID, 0x02)  // _UID: Unique ID
+            Name (_CCA, One)  // _CCA: Cache Coherency Attribute
+            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+            {
+                Memory32Fixed (ReadWrite,
+                    0x0A000400,         // Address Base
+                    0x00000200,         // Address Length
+                    )
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Exclusive, ,, )
+                {
+                    0x00000032,
+                }
+            })
+        }
+
+        Device (VR03)
+        {
+            Name (_HID, "LNRO0005")  // _HID: Hardware ID
+            Name (_UID, 0x03)  // _UID: Unique ID
+            Name (_CCA, One)  // _CCA: Cache Coherency Attribute
+            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+            {
+                Memory32Fixed (ReadWrite,
+                    0x0A000600,         // Address Base
+                    0x00000200,         // Address Length
+                    )
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Exclusive, ,, )
+                {
+                    0x00000033,
+                }
+            })
+        }
+
+        Device (VR04)
+        {
+            Name (_HID, "LNRO0005")  // _HID: Hardware ID
+            Name (_UID, 0x04)  // _UID: Unique ID
+            Name (_CCA, One)  // _CCA: Cache Coherency Attribute
+            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+            {
+                Memory32Fixed (ReadWrite,
+                    0x0A000800,         // Address Base
+                    0x00000200,         // Address Length
+                    )
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Exclusive, ,, )
+                {
+                    0x00000034,
+                }
+            })
+        }
+
+        Device (VR05)
+        {
+            Name (_HID, "LNRO0005")  // _HID: Hardware ID
+            Name (_UID, 0x05)  // _UID: Unique ID
+            Name (_CCA, One)  // _CCA: Cache Coherency Attribute
+            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+            {
+                Memory32Fixed (ReadWrite,
+                    0x0A000A00,         // Address Base
+                    0x00000200,         // Address Length
+                    )
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Exclusive, ,, )
+                {
+                    0x00000035,
+                }
+            })
+        }
+
+        Device (VR06)
+        {
+            Name (_HID, "LNRO0005")  // _HID: Hardware ID
+            Name (_UID, 0x06)  // _UID: Unique ID
+            Name (_CCA, One)  // _CCA: Cache Coherency Attribute
+            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+            {
+                Memory32Fixed (ReadWrite,
+                    0x0A000C00,         // Address Base
+                    0x00000200,         // Address Length
+                    )
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Exclusive, ,, )
+                {
+                    0x00000036,
+                }
+            })
+        }
+
+        Device (VR07)
+        {
+            Name (_HID, "LNRO0005")  // _HID: Hardware ID
+            Name (_UID, 0x07)  // _UID: Unique ID
+            Name (_CCA, One)  // _CCA: Cache Coherency Attribute
+            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+            {
+                Memory32Fixed (ReadWrite,
+                    0x0A000E00,         // Address Base
+                    0x00000200,         // Address Length
+                    )
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Exclusive, ,, )
+                {
+                    0x00000037,
+                }
+            })
+        }
+
+        Device (VR08)
+        {
+            Name (_HID, "LNRO0005")  // _HID: Hardware ID
+            Name (_UID, 0x08)  // _UID: Unique ID
+            Name (_CCA, One)  // _CCA: Cache Coherency Attribute
+            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+            {
+                Memory32Fixed (ReadWrite,
+                    0x0A001000,         // Address Base
+                    0x00000200,         // Address Length
+                    )
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Exclusive, ,, )
+                {
+                    0x00000038,
+                }
+            })
+        }
+
+        Device (VR09)
+        {
+            Name (_HID, "LNRO0005")  // _HID: Hardware ID
+            Name (_UID, 0x09)  // _UID: Unique ID
+            Name (_CCA, One)  // _CCA: Cache Coherency Attribute
+            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+            {
+                Memory32Fixed (ReadWrite,
+                    0x0A001200,         // Address Base
+                    0x00000200,         // Address Length
+                    )
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Exclusive, ,, )
+                {
+                    0x00000039,
+                }
+            })
+        }
+
+        Device (VR10)
+        {
+            Name (_HID, "LNRO0005")  // _HID: Hardware ID
+            Name (_UID, 0x0A)  // _UID: Unique ID
+            Name (_CCA, One)  // _CCA: Cache Coherency Attribute
+            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+            {
+                Memory32Fixed (ReadWrite,
+                    0x0A001400,         // Address Base
+                    0x00000200,         // Address Length
+                    )
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Exclusive, ,, )
+                {
+                    0x0000003A,
+                }
+            })
+        }
+
+        Device (VR11)
+        {
+            Name (_HID, "LNRO0005")  // _HID: Hardware ID
+            Name (_UID, 0x0B)  // _UID: Unique ID
+            Name (_CCA, One)  // _CCA: Cache Coherency Attribute
+            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+            {
+                Memory32Fixed (ReadWrite,
+                    0x0A001600,         // Address Base
+                    0x00000200,         // Address Length
+                    )
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Exclusive, ,, )
+                {
+                    0x0000003B,
+                }
+            })
+        }
+
+        Device (VR12)
+        {
+            Name (_HID, "LNRO0005")  // _HID: Hardware ID
+            Name (_UID, 0x0C)  // _UID: Unique ID
+            Name (_CCA, One)  // _CCA: Cache Coherency Attribute
+            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+            {
+                Memory32Fixed (ReadWrite,
+                    0x0A001800,         // Address Base
+                    0x00000200,         // Address Length
+                    )
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Exclusive, ,, )
+                {
+                    0x0000003C,
+                }
+            })
+        }
+
+        Device (VR13)
+        {
+            Name (_HID, "LNRO0005")  // _HID: Hardware ID
+            Name (_UID, 0x0D)  // _UID: Unique ID
+            Name (_CCA, One)  // _CCA: Cache Coherency Attribute
+            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+            {
+                Memory32Fixed (ReadWrite,
+                    0x0A001A00,         // Address Base
+                    0x00000200,         // Address Length
+                    )
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Exclusive, ,, )
+                {
+                    0x0000003D,
+                }
+            })
+        }
+
+        Device (VR14)
+        {
+            Name (_HID, "LNRO0005")  // _HID: Hardware ID
+            Name (_UID, 0x0E)  // _UID: Unique ID
+            Name (_CCA, One)  // _CCA: Cache Coherency Attribute
+            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+            {
+                Memory32Fixed (ReadWrite,
+                    0x0A001C00,         // Address Base
+                    0x00000200,         // Address Length
+                    )
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Exclusive, ,, )
+                {
+                    0x0000003E,
+                }
+            })
+        }
+
+        Device (VR15)
+        {
+            Name (_HID, "LNRO0005")  // _HID: Hardware ID
+            Name (_UID, 0x0F)  // _UID: Unique ID
+            Name (_CCA, One)  // _CCA: Cache Coherency Attribute
+            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+            {
+                Memory32Fixed (ReadWrite,
+                    0x0A001E00,         // Address Base
+                    0x00000200,         // Address Length
+                    )
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Exclusive, ,, )
+                {
+                    0x0000003F,
+                }
+            })
+        }
+
+        Device (VR16)
+        {
+            Name (_HID, "LNRO0005")  // _HID: Hardware ID
+            Name (_UID, 0x10)  // _UID: Unique ID
+            Name (_CCA, One)  // _CCA: Cache Coherency Attribute
+            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+            {
+                Memory32Fixed (ReadWrite,
+                    0x0A002000,         // Address Base
+                    0x00000200,         // Address Length
+                    )
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Exclusive, ,, )
+                {
+                    0x00000040,
+                }
+            })
+        }
+
+        Device (VR17)
+        {
+            Name (_HID, "LNRO0005")  // _HID: Hardware ID
+            Name (_UID, 0x11)  // _UID: Unique ID
+            Name (_CCA, One)  // _CCA: Cache Coherency Attribute
+            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+            {
+                Memory32Fixed (ReadWrite,
+                    0x0A002200,         // Address Base
+                    0x00000200,         // Address Length
+                    )
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Exclusive, ,, )
+                {
+                    0x00000041,
+                }
+            })
+        }
+
+        Device (VR18)
+        {
+            Name (_HID, "LNRO0005")  // _HID: Hardware ID
+            Name (_UID, 0x12)  // _UID: Unique ID
+            Name (_CCA, One)  // _CCA: Cache Coherency Attribute
+            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+            {
+                Memory32Fixed (ReadWrite,
+                    0x0A002400,         // Address Base
+                    0x00000200,         // Address Length
+                    )
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Exclusive, ,, )
+                {
+                    0x00000042,
+                }
+            })
+        }
+
+        Device (VR19)
+        {
+            Name (_HID, "LNRO0005")  // _HID: Hardware ID
+            Name (_UID, 0x13)  // _UID: Unique ID
+            Name (_CCA, One)  // _CCA: Cache Coherency Attribute
+            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+            {
+                Memory32Fixed (ReadWrite,
+                    0x0A002600,         // Address Base
+                    0x00000200,         // Address Length
+                    )
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Exclusive, ,, )
+                {
+                    0x00000043,
+                }
+            })
+        }
+
+        Device (VR20)
+        {
+            Name (_HID, "LNRO0005")  // _HID: Hardware ID
+            Name (_UID, 0x14)  // _UID: Unique ID
+            Name (_CCA, One)  // _CCA: Cache Coherency Attribute
+            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+            {
+                Memory32Fixed (ReadWrite,
+                    0x0A002800,         // Address Base
+                    0x00000200,         // Address Length
+                    )
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Exclusive, ,, )
+                {
+                    0x00000044,
+                }
+            })
+        }
+
+        Device (VR21)
+        {
+            Name (_HID, "LNRO0005")  // _HID: Hardware ID
+            Name (_UID, 0x15)  // _UID: Unique ID
+            Name (_CCA, One)  // _CCA: Cache Coherency Attribute
+            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+            {
+                Memory32Fixed (ReadWrite,
+                    0x0A002A00,         // Address Base
+                    0x00000200,         // Address Length
+                    )
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Exclusive, ,, )
+                {
+                    0x00000045,
+                }
+            })
+        }
+
+        Device (VR22)
+        {
+            Name (_HID, "LNRO0005")  // _HID: Hardware ID
+            Name (_UID, 0x16)  // _UID: Unique ID
+            Name (_CCA, One)  // _CCA: Cache Coherency Attribute
+            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+            {
+                Memory32Fixed (ReadWrite,
+                    0x0A002C00,         // Address Base
+                    0x00000200,         // Address Length
+                    )
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Exclusive, ,, )
+                {
+                    0x00000046,
+                }
+            })
+        }
+
+        Device (VR23)
+        {
+            Name (_HID, "LNRO0005")  // _HID: Hardware ID
+            Name (_UID, 0x17)  // _UID: Unique ID
+            Name (_CCA, One)  // _CCA: Cache Coherency Attribute
+            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+            {
+                Memory32Fixed (ReadWrite,
+                    0x0A002E00,         // Address Base
+                    0x00000200,         // Address Length
+                    )
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Exclusive, ,, )
+                {
+                    0x00000047,
+                }
+            })
+        }
+
+        Device (VR24)
+        {
+            Name (_HID, "LNRO0005")  // _HID: Hardware ID
+            Name (_UID, 0x18)  // _UID: Unique ID
+            Name (_CCA, One)  // _CCA: Cache Coherency Attribute
+            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+            {
+                Memory32Fixed (ReadWrite,
+                    0x0A003000,         // Address Base
+                    0x00000200,         // Address Length
+                    )
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Exclusive, ,, )
+                {
+                    0x00000048,
+                }
+            })
+        }
+
+        Device (VR25)
+        {
+            Name (_HID, "LNRO0005")  // _HID: Hardware ID
+            Name (_UID, 0x19)  // _UID: Unique ID
+            Name (_CCA, One)  // _CCA: Cache Coherency Attribute
+            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+            {
+                Memory32Fixed (ReadWrite,
+                    0x0A003200,         // Address Base
+                    0x00000200,         // Address Length
+                    )
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Exclusive, ,, )
+                {
+                    0x00000049,
+                }
+            })
+        }
+
+        Device (VR26)
+        {
+            Name (_HID, "LNRO0005")  // _HID: Hardware ID
+            Name (_UID, 0x1A)  // _UID: Unique ID
+            Name (_CCA, One)  // _CCA: Cache Coherency Attribute
+            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+            {
+                Memory32Fixed (ReadWrite,
+                    0x0A003400,         // Address Base
+                    0x00000200,         // Address Length
+                    )
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Exclusive, ,, )
+                {
+                    0x0000004A,
+                }
+            })
+        }
+
+        Device (VR27)
+        {
+            Name (_HID, "LNRO0005")  // _HID: Hardware ID
+            Name (_UID, 0x1B)  // _UID: Unique ID
+            Name (_CCA, One)  // _CCA: Cache Coherency Attribute
+            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+            {
+                Memory32Fixed (ReadWrite,
+                    0x0A003600,         // Address Base
+                    0x00000200,         // Address Length
+                    )
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Exclusive, ,, )
+                {
+                    0x0000004B,
+                }
+            })
+        }
+
+        Device (VR28)
+        {
+            Name (_HID, "LNRO0005")  // _HID: Hardware ID
+            Name (_UID, 0x1C)  // _UID: Unique ID
+            Name (_CCA, One)  // _CCA: Cache Coherency Attribute
+            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+            {
+                Memory32Fixed (ReadWrite,
+                    0x0A003800,         // Address Base
+                    0x00000200,         // Address Length
+                    )
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Exclusive, ,, )
+                {
+                    0x0000004C,
+                }
+            })
+        }
+
+        Device (VR29)
+        {
+            Name (_HID, "LNRO0005")  // _HID: Hardware ID
+            Name (_UID, 0x1D)  // _UID: Unique ID
+            Name (_CCA, One)  // _CCA: Cache Coherency Attribute
+            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+            {
+                Memory32Fixed (ReadWrite,
+                    0x0A003A00,         // Address Base
+                    0x00000200,         // Address Length
+                    )
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Exclusive, ,, )
+                {
+                    0x0000004D,
+                }
+            })
+        }
+
+        Device (VR30)
+        {
+            Name (_HID, "LNRO0005")  // _HID: Hardware ID
+            Name (_UID, 0x1E)  // _UID: Unique ID
+            Name (_CCA, One)  // _CCA: Cache Coherency Attribute
+            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+            {
+                Memory32Fixed (ReadWrite,
+                    0x0A003C00,         // Address Base
+                    0x00000200,         // Address Length
+                    )
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Exclusive, ,, )
+                {
+                    0x0000004E,
+                }
+            })
+        }
+
+        Device (VR31)
+        {
+            Name (_HID, "LNRO0005")  // _HID: Hardware ID
+            Name (_UID, 0x1F)  // _UID: Unique ID
+            Name (_CCA, One)  // _CCA: Cache Coherency Attribute
+            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+            {
+                Memory32Fixed (ReadWrite,
+                    0x0A003E00,         // Address Base
+                    0x00000200,         // Address Length
+                    )
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Exclusive, ,, )
+                {
+                    0x0000004F,
+                }
+            })
+        }
+
+        Device (PCI0)
+        {
+            Name (_HID, "PNP0A08" /* PCI Express Bus */)  // _HID: Hardware ID
+            Name (_CID, "PNP0A03" /* PCI Bus */)  // _CID: Compatible ID
+            Name (_SEG, Zero)  // _SEG: PCI Segment
+            Name (_BBN, Zero)  // _BBN: BIOS Bus Number
+            Name (_UID, "PCI0")  // _UID: Unique ID
+            Name (_STR, Unicode ("PCIe 0 Device"))  // _STR: Description String
+            Name (_CCA, One)  // _CCA: Cache Coherency Attribute
+            Name (_PRT, Package (0x80)  // _PRT: PCI Routing Table
+            {
+                Package (0x04)
+                {
+                    0xFFFF, 
+                    Zero, 
+                    GSI0, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0xFFFF, 
+                    One, 
+                    GSI1, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0xFFFF, 
+                    0x02, 
+                    GSI2, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0xFFFF, 
+                    0x03, 
+                    GSI3, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0001FFFF, 
+                    Zero, 
+                    GSI1, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0001FFFF, 
+                    One, 
+                    GSI2, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0001FFFF, 
+                    0x02, 
+                    GSI3, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0001FFFF, 
+                    0x03, 
+                    GSI0, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0002FFFF, 
+                    Zero, 
+                    GSI2, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0002FFFF, 
+                    One, 
+                    GSI3, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0002FFFF, 
+                    0x02, 
+                    GSI0, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0002FFFF, 
+                    0x03, 
+                    GSI1, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0003FFFF, 
+                    Zero, 
+                    GSI3, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0003FFFF, 
+                    One, 
+                    GSI0, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0003FFFF, 
+                    0x02, 
+                    GSI1, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0003FFFF, 
+                    0x03, 
+                    GSI2, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0004FFFF, 
+                    Zero, 
+                    GSI0, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0004FFFF, 
+                    One, 
+                    GSI1, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0004FFFF, 
+                    0x02, 
+                    GSI2, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0004FFFF, 
+                    0x03, 
+                    GSI3, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0005FFFF, 
+                    Zero, 
+                    GSI1, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0005FFFF, 
+                    One, 
+                    GSI2, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0005FFFF, 
+                    0x02, 
+                    GSI3, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0005FFFF, 
+                    0x03, 
+                    GSI0, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0006FFFF, 
+                    Zero, 
+                    GSI2, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0006FFFF, 
+                    One, 
+                    GSI3, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0006FFFF, 
+                    0x02, 
+                    GSI0, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0006FFFF, 
+                    0x03, 
+                    GSI1, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0007FFFF, 
+                    Zero, 
+                    GSI3, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0007FFFF, 
+                    One, 
+                    GSI0, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0007FFFF, 
+                    0x02, 
+                    GSI1, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0007FFFF, 
+                    0x03, 
+                    GSI2, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0008FFFF, 
+                    Zero, 
+                    GSI0, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0008FFFF, 
+                    One, 
+                    GSI1, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0008FFFF, 
+                    0x02, 
+                    GSI2, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0008FFFF, 
+                    0x03, 
+                    GSI3, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0009FFFF, 
+                    Zero, 
+                    GSI1, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0009FFFF, 
+                    One, 
+                    GSI2, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0009FFFF, 
+                    0x02, 
+                    GSI3, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0009FFFF, 
+                    0x03, 
+                    GSI0, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000AFFFF, 
+                    Zero, 
+                    GSI2, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000AFFFF, 
+                    One, 
+                    GSI3, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000AFFFF, 
+                    0x02, 
+                    GSI0, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000AFFFF, 
+                    0x03, 
+                    GSI1, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000BFFFF, 
+                    Zero, 
+                    GSI3, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000BFFFF, 
+                    One, 
+                    GSI0, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000BFFFF, 
+                    0x02, 
+                    GSI1, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000BFFFF, 
+                    0x03, 
+                    GSI2, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000CFFFF, 
+                    Zero, 
+                    GSI0, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000CFFFF, 
+                    One, 
+                    GSI1, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000CFFFF, 
+                    0x02, 
+                    GSI2, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000CFFFF, 
+                    0x03, 
+                    GSI3, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000DFFFF, 
+                    Zero, 
+                    GSI1, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000DFFFF, 
+                    One, 
+                    GSI2, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000DFFFF, 
+                    0x02, 
+                    GSI3, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000DFFFF, 
+                    0x03, 
+                    GSI0, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000EFFFF, 
+                    Zero, 
+                    GSI2, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000EFFFF, 
+                    One, 
+                    GSI3, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000EFFFF, 
+                    0x02, 
+                    GSI0, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000EFFFF, 
+                    0x03, 
+                    GSI1, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000FFFFF, 
+                    Zero, 
+                    GSI3, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000FFFFF, 
+                    One, 
+                    GSI0, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000FFFFF, 
+                    0x02, 
+                    GSI1, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000FFFFF, 
+                    0x03, 
+                    GSI2, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0010FFFF, 
+                    Zero, 
+                    GSI0, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0010FFFF, 
+                    One, 
+                    GSI1, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0010FFFF, 
+                    0x02, 
+                    GSI2, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0010FFFF, 
+                    0x03, 
+                    GSI3, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0011FFFF, 
+                    Zero, 
+                    GSI1, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0011FFFF, 
+                    One, 
+                    GSI2, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0011FFFF, 
+                    0x02, 
+                    GSI3, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0011FFFF, 
+                    0x03, 
+                    GSI0, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0012FFFF, 
+                    Zero, 
+                    GSI2, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0012FFFF, 
+                    One, 
+                    GSI3, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0012FFFF, 
+                    0x02, 
+                    GSI0, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0012FFFF, 
+                    0x03, 
+                    GSI1, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0013FFFF, 
+                    Zero, 
+                    GSI3, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0013FFFF, 
+                    One, 
+                    GSI0, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0013FFFF, 
+                    0x02, 
+                    GSI1, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0013FFFF, 
+                    0x03, 
+                    GSI2, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0014FFFF, 
+                    Zero, 
+                    GSI0, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0014FFFF, 
+                    One, 
+                    GSI1, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0014FFFF, 
+                    0x02, 
+                    GSI2, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0014FFFF, 
+                    0x03, 
+                    GSI3, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0015FFFF, 
+                    Zero, 
+                    GSI1, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0015FFFF, 
+                    One, 
+                    GSI2, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0015FFFF, 
+                    0x02, 
+                    GSI3, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0015FFFF, 
+                    0x03, 
+                    GSI0, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0016FFFF, 
+                    Zero, 
+                    GSI2, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0016FFFF, 
+                    One, 
+                    GSI3, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0016FFFF, 
+                    0x02, 
+                    GSI0, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0016FFFF, 
+                    0x03, 
+                    GSI1, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0017FFFF, 
+                    Zero, 
+                    GSI3, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0017FFFF, 
+                    One, 
+                    GSI0, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0017FFFF, 
+                    0x02, 
+                    GSI1, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0017FFFF, 
+                    0x03, 
+                    GSI2, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0018FFFF, 
+                    Zero, 
+                    GSI0, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0018FFFF, 
+                    One, 
+                    GSI1, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0018FFFF, 
+                    0x02, 
+                    GSI2, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0018FFFF, 
+                    0x03, 
+                    GSI3, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0019FFFF, 
+                    Zero, 
+                    GSI1, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0019FFFF, 
+                    One, 
+                    GSI2, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0019FFFF, 
+                    0x02, 
+                    GSI3, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0019FFFF, 
+                    0x03, 
+                    GSI0, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001AFFFF, 
+                    Zero, 
+                    GSI2, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001AFFFF, 
+                    One, 
+                    GSI3, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001AFFFF, 
+                    0x02, 
+                    GSI0, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001AFFFF, 
+                    0x03, 
+                    GSI1, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001BFFFF, 
+                    Zero, 
+                    GSI3, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001BFFFF, 
+                    One, 
+                    GSI0, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001BFFFF, 
+                    0x02, 
+                    GSI1, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001BFFFF, 
+                    0x03, 
+                    GSI2, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001CFFFF, 
+                    Zero, 
+                    GSI0, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001CFFFF, 
+                    One, 
+                    GSI1, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001CFFFF, 
+                    0x02, 
+                    GSI2, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001CFFFF, 
+                    0x03, 
+                    GSI3, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001DFFFF, 
+                    Zero, 
+                    GSI1, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001DFFFF, 
+                    One, 
+                    GSI2, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001DFFFF, 
+                    0x02, 
+                    GSI3, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001DFFFF, 
+                    0x03, 
+                    GSI0, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001EFFFF, 
+                    Zero, 
+                    GSI2, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001EFFFF, 
+                    One, 
+                    GSI3, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001EFFFF, 
+                    0x02, 
+                    GSI0, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001EFFFF, 
+                    0x03, 
+                    GSI1, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001FFFFF, 
+                    Zero, 
+                    GSI3, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001FFFFF, 
+                    One, 
+                    GSI0, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001FFFFF, 
+                    0x02, 
+                    GSI1, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001FFFFF, 
+                    0x03, 
+                    GSI2, 
+                    Zero
+                }
+            })
+            Device (GSI0)
+            {
+                Name (_HID, "PNP0C0F" /* PCI Interrupt Link Device */)  // _HID: Hardware ID
+                Name (_UID, Zero)  // _UID: Unique ID
+                Name (_PRS, ResourceTemplate ()  // _PRS: Possible Resource Settings
+                {
+                    Interrupt (ResourceConsumer, Level, ActiveHigh, Exclusive, ,, )
+                    {
+                        0x00000023,
+                    }
+                })
+                Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+                {
+                    Interrupt (ResourceConsumer, Level, ActiveHigh, Exclusive, ,, )
+                    {
+                        0x00000023,
+                    }
+                })
+                Method (_SRS, 1, NotSerialized)  // _SRS: Set Resource Settings
+                {
+                }
+            }
+
+            Device (GSI1)
+            {
+                Name (_HID, "PNP0C0F" /* PCI Interrupt Link Device */)  // _HID: Hardware ID
+                Name (_UID, One)  // _UID: Unique ID
+                Name (_PRS, ResourceTemplate ()  // _PRS: Possible Resource Settings
+                {
+                    Interrupt (ResourceConsumer, Level, ActiveHigh, Exclusive, ,, )
+                    {
+                        0x00000024,
+                    }
+                })
+                Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+                {
+                    Interrupt (ResourceConsumer, Level, ActiveHigh, Exclusive, ,, )
+                    {
+                        0x00000024,
+                    }
+                })
+                Method (_SRS, 1, NotSerialized)  // _SRS: Set Resource Settings
+                {
+                }
+            }
+
+            Device (GSI2)
+            {
+                Name (_HID, "PNP0C0F" /* PCI Interrupt Link Device */)  // _HID: Hardware ID
+                Name (_UID, 0x02)  // _UID: Unique ID
+                Name (_PRS, ResourceTemplate ()  // _PRS: Possible Resource Settings
+                {
+                    Interrupt (ResourceConsumer, Level, ActiveHigh, Exclusive, ,, )
+                    {
+                        0x00000025,
+                    }
+                })
+                Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+                {
+                    Interrupt (ResourceConsumer, Level, ActiveHigh, Exclusive, ,, )
+                    {
+                        0x00000025,
+                    }
+                })
+                Method (_SRS, 1, NotSerialized)  // _SRS: Set Resource Settings
+                {
+                }
+            }
+
+            Device (GSI3)
+            {
+                Name (_HID, "PNP0C0F" /* PCI Interrupt Link Device */)  // _HID: Hardware ID
+                Name (_UID, 0x03)  // _UID: Unique ID
+                Name (_PRS, ResourceTemplate ()  // _PRS: Possible Resource Settings
+                {
+                    Interrupt (ResourceConsumer, Level, ActiveHigh, Exclusive, ,, )
+                    {
+                        0x00000026,
+                    }
+                })
+                Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+                {
+                    Interrupt (ResourceConsumer, Level, ActiveHigh, Exclusive, ,, )
+                    {
+                        0x00000026,
+                    }
+                })
+                Method (_SRS, 1, NotSerialized)  // _SRS: Set Resource Settings
+                {
+                }
+            }
+
+            Method (_CBA, 0, NotSerialized)  // _CBA: Configuration Base Address
+            {
+                Return (0x0000004010000000)
+            }
+
+            Method (_CRS, 0, NotSerialized)  // _CRS: Current Resource Settings
+            {
+                Return (ResourceTemplate ()
+                {
+                    WordBusNumber (ResourceProducer, MinFixed, MaxFixed, PosDecode,
+                        0x0000,             // Granularity
+                        0x0000,             // Range Minimum
+                        0x00FF,             // Range Maximum
+                        0x0000,             // Translation Offset
+                        0x0100,             // Length
+                        ,, )
+                    DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, NonCacheable, ReadWrite,
+                        0x00000000,         // Granularity
+                        0x10000000,         // Range Minimum
+                        0x3EFEFFFF,         // Range Maximum
+                        0x00000000,         // Translation Offset
+                        0x2EFF0000,         // Length
+                        ,, , AddressRangeMemory, TypeStatic)
+                    DWordIO (ResourceProducer, MinFixed, MaxFixed, PosDecode, EntireRange,
+                        0x00000000,         // Granularity
+                        0x00000000,         // Range Minimum
+                        0x0000FFFF,         // Range Maximum
+                        0x3EFF0000,         // Translation Offset
+                        0x00010000,         // Length
+                        ,, , TypeStatic, DenseTranslation)
+                    QWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, NonCacheable, ReadWrite,
+                        0x0000000000000000, // Granularity
+                        0x0000008000000000, // Range Minimum
+                        0x000000FFFFFFFFFF, // Range Maximum
+                        0x0000000000000000, // Translation Offset
+                        0x0000008000000000, // Length
+                        ,, , AddressRangeMemory, TypeStatic)
+                })
+            }
+
+            Name (SUPP, Zero)
+            Name (CTRL, Zero)
+            Method (_OSC, 4, NotSerialized)  // _OSC: Operating System Capabilities
+            {
+                CreateDWordField (Arg3, Zero, CDW1)
+                If ((Arg0 == ToUUID ("33db4d5b-1ff7-401c-9657-7441c03dd766") /* PCI Host Bridge Device */))
+                {
+                    CreateDWordField (Arg3, 0x04, CDW2)
+                    CreateDWordField (Arg3, 0x08, CDW3)
+                    SUPP = CDW2 /* \_SB_.PCI0._OSC.CDW2 */
+                    CTRL = CDW3 /* \_SB_.PCI0._OSC.CDW3 */
+                    CTRL &= 0x1F
+                    If ((Arg1 != One))
+                    {
+                        CDW1 |= 0x08
+                    }
+
+                    If ((CDW3 != CTRL))
+                    {
+                        CDW1 |= 0x10
+                    }
+
+                    CDW3 = CTRL /* \_SB_.PCI0.CTRL */
+                    Return (Arg3)
+                }
+                Else
+                {
+                    CDW1 |= 0x04
+                    Return (Arg3)
+                }
+            }
+
+            Method (_DSM, 4, NotSerialized)  // _DSM: Device-Specific Method
+            {
+                If ((Arg0 == ToUUID ("e5c937d0-3553-4d7a-9117-ea4d19c3434d") /* Device Labeling Interface */))
+                {
+                    If ((Arg2 == Zero))
+                    {
+                        Return (Buffer (One)
+                        {
+                             0x01                                             // .
+                        })
+                    }
+                }
+
+                Return (Buffer (One)
+                {
+                     0x00                                             // .
+                })
+            }
+
+            Device (RES0)
+            {
+                Name (_HID, "PNP0C02" /* PNP Motherboard Resources */)  // _HID: Hardware ID
+                Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+                {
+                    QWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, NonCacheable, ReadWrite,
+                        0x0000000000000000, // Granularity
+                        0x0000004010000000, // Range Minimum
+                        0x000000401FFFFFFF, // Range Maximum
+                        0x0000000000000000, // Translation Offset
+                        0x0000000010000000, // Length
+                        ,, , AddressRangeMemory, TypeStatic)
+                })
+            }
+        }
+
+        Device (\_SB.GED)
+        {
+            Name (_HID, "ACPI0013" /* Generic Event Device */)  // _HID: Hardware ID
+            Name (_UID, "GED")  // _UID: Unique ID
+            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+            {
+                Interrupt (ResourceConsumer, Edge, ActiveHigh, Exclusive, ,, )
+                {
+                    0x00000029,
+                }
+            })
+            OperationRegion (EREG, SystemMemory, 0x09080000, 0x04)
+            Field (EREG, DWordAcc, NoLock, WriteAsZeros)
+            {
+                ESEL,   32
+            }
+
+            Method (_EVT, 1, Serialized)  // _EVT: Event
+            {
+                Local0 = ESEL /* \_SB_.GED_.ESEL */
+                If (((Local0 & One) == One))
+                {
+                    \_SB.MHPC.MSCN ()
+                }
+
+                If (((Local0 & 0x02) == 0x02))
+                {
+                    Notify (PWRB, 0x80) // Status Change
+                }
+
+                If (((Local0 & 0x04) == 0x04))
+                {
+                    Notify (\_SB.NVDR, 0x80) // Status Change
+                }
+            }
+        }
+
+        Device (\_SB.MHPD)
+        {
+            Name (_HID, "PNP0A06" /* Generic Container Device */)  // _HID: Hardware ID
+            Name (_UID, "Memory hotplug resources")  // _UID: Unique ID
+            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+            {
+                Memory32Fixed (ReadWrite,
+                    0x09070000,         // Address Base
+                    0x00000018,         // Address Length
+                    )
+            })
+            OperationRegion (HPMR, SystemMemory, 0x09070000, 0x18)
+        }
+
+        Device (\_SB.MHPC)
+        {
+            Name (_HID, "PNP0A06" /* Generic Container Device */)  // _HID: Hardware ID
+            Name (_UID, "DIMM devices")  // _UID: Unique ID
+            Name (MDNR, 0x03)
+            Field (\_SB.MHPD.HPMR, DWordAcc, NoLock, Preserve)
+            {
+                MRBL,   32, 
+                MRBH,   32, 
+                MRLL,   32, 
+                MRLH,   32, 
+                MPX,    32
+            }
+
+            Field (\_SB.MHPD.HPMR, ByteAcc, NoLock, WriteAsZeros)
+            {
+                Offset (0x14), 
+                MES,    1, 
+                MINS,   1, 
+                MRMV,   1, 
+                MEJ,    1
+            }
+
+            Field (\_SB.MHPD.HPMR, DWordAcc, NoLock, Preserve)
+            {
+                MSEL,   32, 
+                MOEV,   32, 
+                MOSC,   32
+            }
+
+            Method (_STA, 0, NotSerialized)  // _STA: Status
+            {
+                If ((MDNR == Zero))
+                {
+                    Return (Zero)
+                }
+
+                Return (0x0B)
+            }
+
+            Mutex (MLCK, 0x00)
+            Method (MSCN, 0, NotSerialized)
+            {
+                If ((MDNR == Zero))
+                {
+                    Return (Zero)
+                }
+
+                Local0 = Zero
+                Acquire (MLCK, 0xFFFF)
+                While ((Local0 < MDNR))
+                {
+                    MSEL = Local0
+                    If ((MINS == One))
+                    {
+                        MTFY (Local0, One)
+                        MINS = One
+                    }
+                    ElseIf ((MRMV == One))
+                    {
+                        MTFY (Local0, 0x03)
+                        MRMV = One
+                    }
+
+                    Local0 += One
+                }
+
+                Release (MLCK)
+                Return (One)
+            }
+
+            Method (MRST, 1, NotSerialized)
+            {
+                Local0 = Zero
+                Acquire (MLCK, 0xFFFF)
+                MSEL = ToInteger (Arg0)
+                If ((MES == One))
+                {
+                    Local0 = 0x0F
+                }
+
+                Release (MLCK)
+                Return (Local0)
+            }
+
+            Method (MCRS, 1, Serialized)
+            {
+                Acquire (MLCK, 0xFFFF)
+                MSEL = ToInteger (Arg0)
+                Name (MR64, ResourceTemplate ()
+                {
+                    QWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, Cacheable, ReadWrite,
+                        0x0000000000000000, // Granularity
+                        0x0000000000000000, // Range Minimum
+                        0xFFFFFFFFFFFFFFFE, // Range Maximum
+                        0x0000000000000000, // Translation Offset
+                        0xFFFFFFFFFFFFFFFF, // Length
+                        ,, _Y00, AddressRangeMemory, TypeStatic)
+                })
+                CreateDWordField (MR64, \_SB.MHPC.MCRS._Y00._MIN, MINL)  // _MIN: Minimum Base Address
+                CreateDWordField (MR64, 0x12, MINH)
+                CreateDWordField (MR64, \_SB.MHPC.MCRS._Y00._LEN, LENL)  // _LEN: Length
+                CreateDWordField (MR64, 0x2A, LENH)
+                CreateDWordField (MR64, \_SB.MHPC.MCRS._Y00._MAX, MAXL)  // _MAX: Maximum Base Address
+                CreateDWordField (MR64, 0x1A, MAXH)
+                MINH = MRBH /* \_SB_.MHPC.MRBH */
+                MINL = MRBL /* \_SB_.MHPC.MRBL */
+                LENH = MRLH /* \_SB_.MHPC.MRLH */
+                LENL = MRLL /* \_SB_.MHPC.MRLL */
+                MAXL = (MINL + LENL) /* \_SB_.MHPC.MCRS.LENL */
+                MAXH = (MINH + LENH) /* \_SB_.MHPC.MCRS.LENH */
+                If ((MAXL < MINL))
+                {
+                    MAXH += One
+                }
+
+                If ((MAXL < One))
+                {
+                    MAXH -= One
+                }
+
+                MAXL -= One
+                If ((MAXH == Zero))
+                {
+                    Name (MR32, ResourceTemplate ()
+                    {
+                        DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, Cacheable, ReadWrite,
+                            0x00000000,         // Granularity
+                            0x00000000,         // Range Minimum
+                            0xFFFFFFFE,         // Range Maximum
+                            0x00000000,         // Translation Offset
+                            0xFFFFFFFF,         // Length
+                            ,, _Y01, AddressRangeMemory, TypeStatic)
+                    })
+                    CreateDWordField (MR32, \_SB.MHPC.MCRS._Y01._MIN, MIN)  // _MIN: Minimum Base Address
+                    CreateDWordField (MR32, \_SB.MHPC.MCRS._Y01._MAX, MAX)  // _MAX: Maximum Base Address
+                    CreateDWordField (MR32, \_SB.MHPC.MCRS._Y01._LEN, LEN)  // _LEN: Length
+                    MIN = MINL /* \_SB_.MHPC.MCRS.MINL */
+                    MAX = MAXL /* \_SB_.MHPC.MCRS.MAXL */
+                    LEN = LENL /* \_SB_.MHPC.MCRS.LENL */
+                    Release (MLCK)
+                    Return (MR32) /* \_SB_.MHPC.MCRS.MR32 */
+                }
+
+                Release (MLCK)
+                Return (MR64) /* \_SB_.MHPC.MCRS.MR64 */
+            }
+
+            Method (MPXM, 1, NotSerialized)
+            {
+                Acquire (MLCK, 0xFFFF)
+                MSEL = ToInteger (Arg0)
+                Local0 = MPX /* \_SB_.MHPC.MPX_ */
+                Release (MLCK)
+                Return (Local0)
+            }
+
+            Method (MOST, 4, NotSerialized)
+            {
+                Acquire (MLCK, 0xFFFF)
+                MSEL = ToInteger (Arg0)
+                MOEV = Arg1
+                MOSC = Arg2
+                Release (MLCK)
+            }
+
+            Method (MEJ0, 2, NotSerialized)
+            {
+                Acquire (MLCK, 0xFFFF)
+                MSEL = ToInteger (Arg0)
+                MEJ = One
+                Release (MLCK)
+            }
+
+            Device (MP00)
+            {
+                Name (_UID, "0x00")  // _UID: Unique ID
+                Name (_HID, EisaId ("PNP0C80") /* Memory Device */)  // _HID: Hardware ID
+                Method (_CRS, 0, NotSerialized)  // _CRS: Current Resource Settings
+                {
+                    Return (MCRS (_UID))
+                }
+
+                Method (_STA, 0, NotSerialized)  // _STA: Status
+                {
+                    Return (MRST (_UID))
+                }
+
+                Method (_PXM, 0, NotSerialized)  // _PXM: Device Proximity
+                {
+                    Return (MPXM (_UID))
+                }
+
+                Method (_OST, 3, NotSerialized)  // _OST: OSPM Status Indication
+                {
+                    MOST (_UID, Arg0, Arg1, Arg2)
+                }
+
+                Method (_EJ0, 1, NotSerialized)  // _EJx: Eject Device, x=0-9
+                {
+                    MEJ0 (_UID, Arg0)
+                }
+            }
+
+            Device (MP01)
+            {
+                Name (_UID, "0x01")  // _UID: Unique ID
+                Name (_HID, EisaId ("PNP0C80") /* Memory Device */)  // _HID: Hardware ID
+                Method (_CRS, 0, NotSerialized)  // _CRS: Current Resource Settings
+                {
+                    Return (MCRS (_UID))
+                }
+
+                Method (_STA, 0, NotSerialized)  // _STA: Status
+                {
+                    Return (MRST (_UID))
+                }
+
+                Method (_PXM, 0, NotSerialized)  // _PXM: Device Proximity
+                {
+                    Return (MPXM (_UID))
+                }
+
+                Method (_OST, 3, NotSerialized)  // _OST: OSPM Status Indication
+                {
+                    MOST (_UID, Arg0, Arg1, Arg2)
+                }
+
+                Method (_EJ0, 1, NotSerialized)  // _EJx: Eject Device, x=0-9
+                {
+                    MEJ0 (_UID, Arg0)
+                }
+            }
+
+            Device (MP02)
+            {
+                Name (_UID, "0x02")  // _UID: Unique ID
+                Name (_HID, EisaId ("PNP0C80") /* Memory Device */)  // _HID: Hardware ID
+                Method (_CRS, 0, NotSerialized)  // _CRS: Current Resource Settings
+                {
+                    Return (MCRS (_UID))
+                }
+
+                Method (_STA, 0, NotSerialized)  // _STA: Status
+                {
+                    Return (MRST (_UID))
+                }
+
+                Method (_PXM, 0, NotSerialized)  // _PXM: Device Proximity
+                {
+                    Return (MPXM (_UID))
+                }
+
+                Method (_OST, 3, NotSerialized)  // _OST: OSPM Status Indication
+                {
+                    MOST (_UID, Arg0, Arg1, Arg2)
+                }
+
+                Method (_EJ0, 1, NotSerialized)  // _EJx: Eject Device, x=0-9
+                {
+                    MEJ0 (_UID, Arg0)
+                }
+            }
+
+            Method (MTFY, 2, NotSerialized)
+            {
+                If ((Arg0 == Zero))
+                {
+                    Notify (MP00, Arg1)
+                }
+
+                If ((Arg0 == One))
+                {
+                    Notify (MP01, Arg1)
+                }
+
+                If ((Arg0 == 0x02))
+                {
+                    Notify (MP02, Arg1)
+                }
+            }
+        }
+
+        Device (PWRB)
+        {
+            Name (_HID, "PNP0C0C" /* Power Button Device */)  // _HID: Hardware ID
+            Name (_UID, Zero)  // _UID: Unique ID
+        }
+    }
+}
+
diff --git a/tests/data/acpi/virt/DSDT.numamem.dsl b/tests/data/acpi/virt/DSDT.numamem.dsl
new file mode 100644
index 0000000000..6603d31a01
--- /dev/null
+++ b/tests/data/acpi/virt/DSDT.numamem.dsl
@@ -0,0 +1,1906 @@ 
+/*
+ * Intel ACPI Component Architecture
+ * AML/ASL+ Disassembler version 20190509 (64-bit version)
+ * Copyright (c) 2000 - 2019 Intel Corporation
+ * 
+ * Disassembling to symbolic ASL+ operators
+ *
+ * Disassembly of tests/data/acpi/virt/DSDT.numamem, Tue Aug  4 11:14:15 2020
+ *
+ * Original Table Header:
+ *     Signature        "DSDT"
+ *     Length           0x00001455 (5205)
+ *     Revision         0x02
+ *     Checksum         0xE1
+ *     OEM ID           "BOCHS "
+ *     OEM Table ID     "BXPCDSDT"
+ *     OEM Revision     0x00000001 (1)
+ *     Compiler ID      "BXPC"
+ *     Compiler Version 0x00000001 (1)
+ */
+DefinitionBlock ("", "DSDT", 2, "BOCHS ", "BXPCDSDT", 0x00000001)
+{
+    Scope (\_SB)
+    {
+        Device (C000)
+        {
+            Name (_HID, "ACPI0007" /* Processor Device */)  // _HID: Hardware ID
+            Name (_UID, Zero)  // _UID: Unique ID
+        }
+
+        Device (COM0)
+        {
+            Name (_HID, "ARMH0011")  // _HID: Hardware ID
+            Name (_UID, Zero)  // _UID: Unique ID
+            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+            {
+                Memory32Fixed (ReadWrite,
+                    0x09000000,         // Address Base
+                    0x00001000,         // Address Length
+                    )
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Exclusive, ,, )
+                {
+                    0x00000021,
+                }
+            })
+        }
+
+        Device (FWCF)
+        {
+            Name (_HID, "QEMU0002")  // _HID: Hardware ID
+            Name (_STA, 0x0B)  // _STA: Status
+            Name (_CCA, One)  // _CCA: Cache Coherency Attribute
+            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+            {
+                Memory32Fixed (ReadWrite,
+                    0x09020000,         // Address Base
+                    0x00000018,         // Address Length
+                    )
+            })
+        }
+
+        Device (VR00)
+        {
+            Name (_HID, "LNRO0005")  // _HID: Hardware ID
+            Name (_UID, Zero)  // _UID: Unique ID
+            Name (_CCA, One)  // _CCA: Cache Coherency Attribute
+            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+            {
+                Memory32Fixed (ReadWrite,
+                    0x0A000000,         // Address Base
+                    0x00000200,         // Address Length
+                    )
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Exclusive, ,, )
+                {
+                    0x00000030,
+                }
+            })
+        }
+
+        Device (VR01)
+        {
+            Name (_HID, "LNRO0005")  // _HID: Hardware ID
+            Name (_UID, One)  // _UID: Unique ID
+            Name (_CCA, One)  // _CCA: Cache Coherency Attribute
+            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+            {
+                Memory32Fixed (ReadWrite,
+                    0x0A000200,         // Address Base
+                    0x00000200,         // Address Length
+                    )
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Exclusive, ,, )
+                {
+                    0x00000031,
+                }
+            })
+        }
+
+        Device (VR02)
+        {
+            Name (_HID, "LNRO0005")  // _HID: Hardware ID
+            Name (_UID, 0x02)  // _UID: Unique ID
+            Name (_CCA, One)  // _CCA: Cache Coherency Attribute
+            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+            {
+                Memory32Fixed (ReadWrite,
+                    0x0A000400,         // Address Base
+                    0x00000200,         // Address Length
+                    )
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Exclusive, ,, )
+                {
+                    0x00000032,
+                }
+            })
+        }
+
+        Device (VR03)
+        {
+            Name (_HID, "LNRO0005")  // _HID: Hardware ID
+            Name (_UID, 0x03)  // _UID: Unique ID
+            Name (_CCA, One)  // _CCA: Cache Coherency Attribute
+            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+            {
+                Memory32Fixed (ReadWrite,
+                    0x0A000600,         // Address Base
+                    0x00000200,         // Address Length
+                    )
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Exclusive, ,, )
+                {
+                    0x00000033,
+                }
+            })
+        }
+
+        Device (VR04)
+        {
+            Name (_HID, "LNRO0005")  // _HID: Hardware ID
+            Name (_UID, 0x04)  // _UID: Unique ID
+            Name (_CCA, One)  // _CCA: Cache Coherency Attribute
+            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+            {
+                Memory32Fixed (ReadWrite,
+                    0x0A000800,         // Address Base
+                    0x00000200,         // Address Length
+                    )
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Exclusive, ,, )
+                {
+                    0x00000034,
+                }
+            })
+        }
+
+        Device (VR05)
+        {
+            Name (_HID, "LNRO0005")  // _HID: Hardware ID
+            Name (_UID, 0x05)  // _UID: Unique ID
+            Name (_CCA, One)  // _CCA: Cache Coherency Attribute
+            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+            {
+                Memory32Fixed (ReadWrite,
+                    0x0A000A00,         // Address Base
+                    0x00000200,         // Address Length
+                    )
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Exclusive, ,, )
+                {
+                    0x00000035,
+                }
+            })
+        }
+
+        Device (VR06)
+        {
+            Name (_HID, "LNRO0005")  // _HID: Hardware ID
+            Name (_UID, 0x06)  // _UID: Unique ID
+            Name (_CCA, One)  // _CCA: Cache Coherency Attribute
+            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+            {
+                Memory32Fixed (ReadWrite,
+                    0x0A000C00,         // Address Base
+                    0x00000200,         // Address Length
+                    )
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Exclusive, ,, )
+                {
+                    0x00000036,
+                }
+            })
+        }
+
+        Device (VR07)
+        {
+            Name (_HID, "LNRO0005")  // _HID: Hardware ID
+            Name (_UID, 0x07)  // _UID: Unique ID
+            Name (_CCA, One)  // _CCA: Cache Coherency Attribute
+            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+            {
+                Memory32Fixed (ReadWrite,
+                    0x0A000E00,         // Address Base
+                    0x00000200,         // Address Length
+                    )
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Exclusive, ,, )
+                {
+                    0x00000037,
+                }
+            })
+        }
+
+        Device (VR08)
+        {
+            Name (_HID, "LNRO0005")  // _HID: Hardware ID
+            Name (_UID, 0x08)  // _UID: Unique ID
+            Name (_CCA, One)  // _CCA: Cache Coherency Attribute
+            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+            {
+                Memory32Fixed (ReadWrite,
+                    0x0A001000,         // Address Base
+                    0x00000200,         // Address Length
+                    )
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Exclusive, ,, )
+                {
+                    0x00000038,
+                }
+            })
+        }
+
+        Device (VR09)
+        {
+            Name (_HID, "LNRO0005")  // _HID: Hardware ID
+            Name (_UID, 0x09)  // _UID: Unique ID
+            Name (_CCA, One)  // _CCA: Cache Coherency Attribute
+            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+            {
+                Memory32Fixed (ReadWrite,
+                    0x0A001200,         // Address Base
+                    0x00000200,         // Address Length
+                    )
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Exclusive, ,, )
+                {
+                    0x00000039,
+                }
+            })
+        }
+
+        Device (VR10)
+        {
+            Name (_HID, "LNRO0005")  // _HID: Hardware ID
+            Name (_UID, 0x0A)  // _UID: Unique ID
+            Name (_CCA, One)  // _CCA: Cache Coherency Attribute
+            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+            {
+                Memory32Fixed (ReadWrite,
+                    0x0A001400,         // Address Base
+                    0x00000200,         // Address Length
+                    )
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Exclusive, ,, )
+                {
+                    0x0000003A,
+                }
+            })
+        }
+
+        Device (VR11)
+        {
+            Name (_HID, "LNRO0005")  // _HID: Hardware ID
+            Name (_UID, 0x0B)  // _UID: Unique ID
+            Name (_CCA, One)  // _CCA: Cache Coherency Attribute
+            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+            {
+                Memory32Fixed (ReadWrite,
+                    0x0A001600,         // Address Base
+                    0x00000200,         // Address Length
+                    )
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Exclusive, ,, )
+                {
+                    0x0000003B,
+                }
+            })
+        }
+
+        Device (VR12)
+        {
+            Name (_HID, "LNRO0005")  // _HID: Hardware ID
+            Name (_UID, 0x0C)  // _UID: Unique ID
+            Name (_CCA, One)  // _CCA: Cache Coherency Attribute
+            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+            {
+                Memory32Fixed (ReadWrite,
+                    0x0A001800,         // Address Base
+                    0x00000200,         // Address Length
+                    )
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Exclusive, ,, )
+                {
+                    0x0000003C,
+                }
+            })
+        }
+
+        Device (VR13)
+        {
+            Name (_HID, "LNRO0005")  // _HID: Hardware ID
+            Name (_UID, 0x0D)  // _UID: Unique ID
+            Name (_CCA, One)  // _CCA: Cache Coherency Attribute
+            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+            {
+                Memory32Fixed (ReadWrite,
+                    0x0A001A00,         // Address Base
+                    0x00000200,         // Address Length
+                    )
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Exclusive, ,, )
+                {
+                    0x0000003D,
+                }
+            })
+        }
+
+        Device (VR14)
+        {
+            Name (_HID, "LNRO0005")  // _HID: Hardware ID
+            Name (_UID, 0x0E)  // _UID: Unique ID
+            Name (_CCA, One)  // _CCA: Cache Coherency Attribute
+            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+            {
+                Memory32Fixed (ReadWrite,
+                    0x0A001C00,         // Address Base
+                    0x00000200,         // Address Length
+                    )
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Exclusive, ,, )
+                {
+                    0x0000003E,
+                }
+            })
+        }
+
+        Device (VR15)
+        {
+            Name (_HID, "LNRO0005")  // _HID: Hardware ID
+            Name (_UID, 0x0F)  // _UID: Unique ID
+            Name (_CCA, One)  // _CCA: Cache Coherency Attribute
+            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+            {
+                Memory32Fixed (ReadWrite,
+                    0x0A001E00,         // Address Base
+                    0x00000200,         // Address Length
+                    )
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Exclusive, ,, )
+                {
+                    0x0000003F,
+                }
+            })
+        }
+
+        Device (VR16)
+        {
+            Name (_HID, "LNRO0005")  // _HID: Hardware ID
+            Name (_UID, 0x10)  // _UID: Unique ID
+            Name (_CCA, One)  // _CCA: Cache Coherency Attribute
+            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+            {
+                Memory32Fixed (ReadWrite,
+                    0x0A002000,         // Address Base
+                    0x00000200,         // Address Length
+                    )
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Exclusive, ,, )
+                {
+                    0x00000040,
+                }
+            })
+        }
+
+        Device (VR17)
+        {
+            Name (_HID, "LNRO0005")  // _HID: Hardware ID
+            Name (_UID, 0x11)  // _UID: Unique ID
+            Name (_CCA, One)  // _CCA: Cache Coherency Attribute
+            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+            {
+                Memory32Fixed (ReadWrite,
+                    0x0A002200,         // Address Base
+                    0x00000200,         // Address Length
+                    )
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Exclusive, ,, )
+                {
+                    0x00000041,
+                }
+            })
+        }
+
+        Device (VR18)
+        {
+            Name (_HID, "LNRO0005")  // _HID: Hardware ID
+            Name (_UID, 0x12)  // _UID: Unique ID
+            Name (_CCA, One)  // _CCA: Cache Coherency Attribute
+            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+            {
+                Memory32Fixed (ReadWrite,
+                    0x0A002400,         // Address Base
+                    0x00000200,         // Address Length
+                    )
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Exclusive, ,, )
+                {
+                    0x00000042,
+                }
+            })
+        }
+
+        Device (VR19)
+        {
+            Name (_HID, "LNRO0005")  // _HID: Hardware ID
+            Name (_UID, 0x13)  // _UID: Unique ID
+            Name (_CCA, One)  // _CCA: Cache Coherency Attribute
+            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+            {
+                Memory32Fixed (ReadWrite,
+                    0x0A002600,         // Address Base
+                    0x00000200,         // Address Length
+                    )
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Exclusive, ,, )
+                {
+                    0x00000043,
+                }
+            })
+        }
+
+        Device (VR20)
+        {
+            Name (_HID, "LNRO0005")  // _HID: Hardware ID
+            Name (_UID, 0x14)  // _UID: Unique ID
+            Name (_CCA, One)  // _CCA: Cache Coherency Attribute
+            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+            {
+                Memory32Fixed (ReadWrite,
+                    0x0A002800,         // Address Base
+                    0x00000200,         // Address Length
+                    )
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Exclusive, ,, )
+                {
+                    0x00000044,
+                }
+            })
+        }
+
+        Device (VR21)
+        {
+            Name (_HID, "LNRO0005")  // _HID: Hardware ID
+            Name (_UID, 0x15)  // _UID: Unique ID
+            Name (_CCA, One)  // _CCA: Cache Coherency Attribute
+            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+            {
+                Memory32Fixed (ReadWrite,
+                    0x0A002A00,         // Address Base
+                    0x00000200,         // Address Length
+                    )
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Exclusive, ,, )
+                {
+                    0x00000045,
+                }
+            })
+        }
+
+        Device (VR22)
+        {
+            Name (_HID, "LNRO0005")  // _HID: Hardware ID
+            Name (_UID, 0x16)  // _UID: Unique ID
+            Name (_CCA, One)  // _CCA: Cache Coherency Attribute
+            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+            {
+                Memory32Fixed (ReadWrite,
+                    0x0A002C00,         // Address Base
+                    0x00000200,         // Address Length
+                    )
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Exclusive, ,, )
+                {
+                    0x00000046,
+                }
+            })
+        }
+
+        Device (VR23)
+        {
+            Name (_HID, "LNRO0005")  // _HID: Hardware ID
+            Name (_UID, 0x17)  // _UID: Unique ID
+            Name (_CCA, One)  // _CCA: Cache Coherency Attribute
+            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+            {
+                Memory32Fixed (ReadWrite,
+                    0x0A002E00,         // Address Base
+                    0x00000200,         // Address Length
+                    )
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Exclusive, ,, )
+                {
+                    0x00000047,
+                }
+            })
+        }
+
+        Device (VR24)
+        {
+            Name (_HID, "LNRO0005")  // _HID: Hardware ID
+            Name (_UID, 0x18)  // _UID: Unique ID
+            Name (_CCA, One)  // _CCA: Cache Coherency Attribute
+            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+            {
+                Memory32Fixed (ReadWrite,
+                    0x0A003000,         // Address Base
+                    0x00000200,         // Address Length
+                    )
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Exclusive, ,, )
+                {
+                    0x00000048,
+                }
+            })
+        }
+
+        Device (VR25)
+        {
+            Name (_HID, "LNRO0005")  // _HID: Hardware ID
+            Name (_UID, 0x19)  // _UID: Unique ID
+            Name (_CCA, One)  // _CCA: Cache Coherency Attribute
+            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+            {
+                Memory32Fixed (ReadWrite,
+                    0x0A003200,         // Address Base
+                    0x00000200,         // Address Length
+                    )
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Exclusive, ,, )
+                {
+                    0x00000049,
+                }
+            })
+        }
+
+        Device (VR26)
+        {
+            Name (_HID, "LNRO0005")  // _HID: Hardware ID
+            Name (_UID, 0x1A)  // _UID: Unique ID
+            Name (_CCA, One)  // _CCA: Cache Coherency Attribute
+            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+            {
+                Memory32Fixed (ReadWrite,
+                    0x0A003400,         // Address Base
+                    0x00000200,         // Address Length
+                    )
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Exclusive, ,, )
+                {
+                    0x0000004A,
+                }
+            })
+        }
+
+        Device (VR27)
+        {
+            Name (_HID, "LNRO0005")  // _HID: Hardware ID
+            Name (_UID, 0x1B)  // _UID: Unique ID
+            Name (_CCA, One)  // _CCA: Cache Coherency Attribute
+            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+            {
+                Memory32Fixed (ReadWrite,
+                    0x0A003600,         // Address Base
+                    0x00000200,         // Address Length
+                    )
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Exclusive, ,, )
+                {
+                    0x0000004B,
+                }
+            })
+        }
+
+        Device (VR28)
+        {
+            Name (_HID, "LNRO0005")  // _HID: Hardware ID
+            Name (_UID, 0x1C)  // _UID: Unique ID
+            Name (_CCA, One)  // _CCA: Cache Coherency Attribute
+            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+            {
+                Memory32Fixed (ReadWrite,
+                    0x0A003800,         // Address Base
+                    0x00000200,         // Address Length
+                    )
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Exclusive, ,, )
+                {
+                    0x0000004C,
+                }
+            })
+        }
+
+        Device (VR29)
+        {
+            Name (_HID, "LNRO0005")  // _HID: Hardware ID
+            Name (_UID, 0x1D)  // _UID: Unique ID
+            Name (_CCA, One)  // _CCA: Cache Coherency Attribute
+            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+            {
+                Memory32Fixed (ReadWrite,
+                    0x0A003A00,         // Address Base
+                    0x00000200,         // Address Length
+                    )
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Exclusive, ,, )
+                {
+                    0x0000004D,
+                }
+            })
+        }
+
+        Device (VR30)
+        {
+            Name (_HID, "LNRO0005")  // _HID: Hardware ID
+            Name (_UID, 0x1E)  // _UID: Unique ID
+            Name (_CCA, One)  // _CCA: Cache Coherency Attribute
+            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+            {
+                Memory32Fixed (ReadWrite,
+                    0x0A003C00,         // Address Base
+                    0x00000200,         // Address Length
+                    )
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Exclusive, ,, )
+                {
+                    0x0000004E,
+                }
+            })
+        }
+
+        Device (VR31)
+        {
+            Name (_HID, "LNRO0005")  // _HID: Hardware ID
+            Name (_UID, 0x1F)  // _UID: Unique ID
+            Name (_CCA, One)  // _CCA: Cache Coherency Attribute
+            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+            {
+                Memory32Fixed (ReadWrite,
+                    0x0A003E00,         // Address Base
+                    0x00000200,         // Address Length
+                    )
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Exclusive, ,, )
+                {
+                    0x0000004F,
+                }
+            })
+        }
+
+        Device (PCI0)
+        {
+            Name (_HID, "PNP0A08" /* PCI Express Bus */)  // _HID: Hardware ID
+            Name (_CID, "PNP0A03" /* PCI Bus */)  // _CID: Compatible ID
+            Name (_SEG, Zero)  // _SEG: PCI Segment
+            Name (_BBN, Zero)  // _BBN: BIOS Bus Number
+            Name (_UID, "PCI0")  // _UID: Unique ID
+            Name (_STR, Unicode ("PCIe 0 Device"))  // _STR: Description String
+            Name (_CCA, One)  // _CCA: Cache Coherency Attribute
+            Name (_PRT, Package (0x80)  // _PRT: PCI Routing Table
+            {
+                Package (0x04)
+                {
+                    0xFFFF, 
+                    Zero, 
+                    GSI0, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0xFFFF, 
+                    One, 
+                    GSI1, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0xFFFF, 
+                    0x02, 
+                    GSI2, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0xFFFF, 
+                    0x03, 
+                    GSI3, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0001FFFF, 
+                    Zero, 
+                    GSI1, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0001FFFF, 
+                    One, 
+                    GSI2, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0001FFFF, 
+                    0x02, 
+                    GSI3, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0001FFFF, 
+                    0x03, 
+                    GSI0, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0002FFFF, 
+                    Zero, 
+                    GSI2, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0002FFFF, 
+                    One, 
+                    GSI3, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0002FFFF, 
+                    0x02, 
+                    GSI0, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0002FFFF, 
+                    0x03, 
+                    GSI1, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0003FFFF, 
+                    Zero, 
+                    GSI3, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0003FFFF, 
+                    One, 
+                    GSI0, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0003FFFF, 
+                    0x02, 
+                    GSI1, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0003FFFF, 
+                    0x03, 
+                    GSI2, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0004FFFF, 
+                    Zero, 
+                    GSI0, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0004FFFF, 
+                    One, 
+                    GSI1, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0004FFFF, 
+                    0x02, 
+                    GSI2, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0004FFFF, 
+                    0x03, 
+                    GSI3, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0005FFFF, 
+                    Zero, 
+                    GSI1, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0005FFFF, 
+                    One, 
+                    GSI2, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0005FFFF, 
+                    0x02, 
+                    GSI3, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0005FFFF, 
+                    0x03, 
+                    GSI0, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0006FFFF, 
+                    Zero, 
+                    GSI2, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0006FFFF, 
+                    One, 
+                    GSI3, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0006FFFF, 
+                    0x02, 
+                    GSI0, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0006FFFF, 
+                    0x03, 
+                    GSI1, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0007FFFF, 
+                    Zero, 
+                    GSI3, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0007FFFF, 
+                    One, 
+                    GSI0, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0007FFFF, 
+                    0x02, 
+                    GSI1, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0007FFFF, 
+                    0x03, 
+                    GSI2, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0008FFFF, 
+                    Zero, 
+                    GSI0, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0008FFFF, 
+                    One, 
+                    GSI1, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0008FFFF, 
+                    0x02, 
+                    GSI2, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0008FFFF, 
+                    0x03, 
+                    GSI3, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0009FFFF, 
+                    Zero, 
+                    GSI1, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0009FFFF, 
+                    One, 
+                    GSI2, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0009FFFF, 
+                    0x02, 
+                    GSI3, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0009FFFF, 
+                    0x03, 
+                    GSI0, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000AFFFF, 
+                    Zero, 
+                    GSI2, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000AFFFF, 
+                    One, 
+                    GSI3, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000AFFFF, 
+                    0x02, 
+                    GSI0, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000AFFFF, 
+                    0x03, 
+                    GSI1, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000BFFFF, 
+                    Zero, 
+                    GSI3, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000BFFFF, 
+                    One, 
+                    GSI0, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000BFFFF, 
+                    0x02, 
+                    GSI1, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000BFFFF, 
+                    0x03, 
+                    GSI2, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000CFFFF, 
+                    Zero, 
+                    GSI0, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000CFFFF, 
+                    One, 
+                    GSI1, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000CFFFF, 
+                    0x02, 
+                    GSI2, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000CFFFF, 
+                    0x03, 
+                    GSI3, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000DFFFF, 
+                    Zero, 
+                    GSI1, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000DFFFF, 
+                    One, 
+                    GSI2, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000DFFFF, 
+                    0x02, 
+                    GSI3, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000DFFFF, 
+                    0x03, 
+                    GSI0, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000EFFFF, 
+                    Zero, 
+                    GSI2, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000EFFFF, 
+                    One, 
+                    GSI3, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000EFFFF, 
+                    0x02, 
+                    GSI0, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000EFFFF, 
+                    0x03, 
+                    GSI1, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000FFFFF, 
+                    Zero, 
+                    GSI3, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000FFFFF, 
+                    One, 
+                    GSI0, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000FFFFF, 
+                    0x02, 
+                    GSI1, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000FFFFF, 
+                    0x03, 
+                    GSI2, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0010FFFF, 
+                    Zero, 
+                    GSI0, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0010FFFF, 
+                    One, 
+                    GSI1, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0010FFFF, 
+                    0x02, 
+                    GSI2, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0010FFFF, 
+                    0x03, 
+                    GSI3, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0011FFFF, 
+                    Zero, 
+                    GSI1, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0011FFFF, 
+                    One, 
+                    GSI2, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0011FFFF, 
+                    0x02, 
+                    GSI3, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0011FFFF, 
+                    0x03, 
+                    GSI0, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0012FFFF, 
+                    Zero, 
+                    GSI2, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0012FFFF, 
+                    One, 
+                    GSI3, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0012FFFF, 
+                    0x02, 
+                    GSI0, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0012FFFF, 
+                    0x03, 
+                    GSI1, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0013FFFF, 
+                    Zero, 
+                    GSI3, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0013FFFF, 
+                    One, 
+                    GSI0, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0013FFFF, 
+                    0x02, 
+                    GSI1, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0013FFFF, 
+                    0x03, 
+                    GSI2, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0014FFFF, 
+                    Zero, 
+                    GSI0, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0014FFFF, 
+                    One, 
+                    GSI1, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0014FFFF, 
+                    0x02, 
+                    GSI2, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0014FFFF, 
+                    0x03, 
+                    GSI3, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0015FFFF, 
+                    Zero, 
+                    GSI1, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0015FFFF, 
+                    One, 
+                    GSI2, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0015FFFF, 
+                    0x02, 
+                    GSI3, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0015FFFF, 
+                    0x03, 
+                    GSI0, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0016FFFF, 
+                    Zero, 
+                    GSI2, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0016FFFF, 
+                    One, 
+                    GSI3, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0016FFFF, 
+                    0x02, 
+                    GSI0, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0016FFFF, 
+                    0x03, 
+                    GSI1, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0017FFFF, 
+                    Zero, 
+                    GSI3, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0017FFFF, 
+                    One, 
+                    GSI0, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0017FFFF, 
+                    0x02, 
+                    GSI1, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0017FFFF, 
+                    0x03, 
+                    GSI2, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0018FFFF, 
+                    Zero, 
+                    GSI0, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0018FFFF, 
+                    One, 
+                    GSI1, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0018FFFF, 
+                    0x02, 
+                    GSI2, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0018FFFF, 
+                    0x03, 
+                    GSI3, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0019FFFF, 
+                    Zero, 
+                    GSI1, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0019FFFF, 
+                    One, 
+                    GSI2, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0019FFFF, 
+                    0x02, 
+                    GSI3, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0019FFFF, 
+                    0x03, 
+                    GSI0, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001AFFFF, 
+                    Zero, 
+                    GSI2, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001AFFFF, 
+                    One, 
+                    GSI3, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001AFFFF, 
+                    0x02, 
+                    GSI0, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001AFFFF, 
+                    0x03, 
+                    GSI1, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001BFFFF, 
+                    Zero, 
+                    GSI3, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001BFFFF, 
+                    One, 
+                    GSI0, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001BFFFF, 
+                    0x02, 
+                    GSI1, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001BFFFF, 
+                    0x03, 
+                    GSI2, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001CFFFF, 
+                    Zero, 
+                    GSI0, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001CFFFF, 
+                    One, 
+                    GSI1, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001CFFFF, 
+                    0x02, 
+                    GSI2, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001CFFFF, 
+                    0x03, 
+                    GSI3, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001DFFFF, 
+                    Zero, 
+                    GSI1, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001DFFFF, 
+                    One, 
+                    GSI2, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001DFFFF, 
+                    0x02, 
+                    GSI3, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001DFFFF, 
+                    0x03, 
+                    GSI0, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001EFFFF, 
+                    Zero, 
+                    GSI2, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001EFFFF, 
+                    One, 
+                    GSI3, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001EFFFF, 
+                    0x02, 
+                    GSI0, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001EFFFF, 
+                    0x03, 
+                    GSI1, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001FFFFF, 
+                    Zero, 
+                    GSI3, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001FFFFF, 
+                    One, 
+                    GSI0, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001FFFFF, 
+                    0x02, 
+                    GSI1, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001FFFFF, 
+                    0x03, 
+                    GSI2, 
+                    Zero
+                }
+            })
+            Device (GSI0)
+            {
+                Name (_HID, "PNP0C0F" /* PCI Interrupt Link Device */)  // _HID: Hardware ID
+                Name (_UID, Zero)  // _UID: Unique ID
+                Name (_PRS, ResourceTemplate ()  // _PRS: Possible Resource Settings
+                {
+                    Interrupt (ResourceConsumer, Level, ActiveHigh, Exclusive, ,, )
+                    {
+                        0x00000023,
+                    }
+                })
+                Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+                {
+                    Interrupt (ResourceConsumer, Level, ActiveHigh, Exclusive, ,, )
+                    {
+                        0x00000023,
+                    }
+                })
+                Method (_SRS, 1, NotSerialized)  // _SRS: Set Resource Settings
+                {
+                }
+            }
+
+            Device (GSI1)
+            {
+                Name (_HID, "PNP0C0F" /* PCI Interrupt Link Device */)  // _HID: Hardware ID
+                Name (_UID, One)  // _UID: Unique ID
+                Name (_PRS, ResourceTemplate ()  // _PRS: Possible Resource Settings
+                {
+                    Interrupt (ResourceConsumer, Level, ActiveHigh, Exclusive, ,, )
+                    {
+                        0x00000024,
+                    }
+                })
+                Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+                {
+                    Interrupt (ResourceConsumer, Level, ActiveHigh, Exclusive, ,, )
+                    {
+                        0x00000024,
+                    }
+                })
+                Method (_SRS, 1, NotSerialized)  // _SRS: Set Resource Settings
+                {
+                }
+            }
+
+            Device (GSI2)
+            {
+                Name (_HID, "PNP0C0F" /* PCI Interrupt Link Device */)  // _HID: Hardware ID
+                Name (_UID, 0x02)  // _UID: Unique ID
+                Name (_PRS, ResourceTemplate ()  // _PRS: Possible Resource Settings
+                {
+                    Interrupt (ResourceConsumer, Level, ActiveHigh, Exclusive, ,, )
+                    {
+                        0x00000025,
+                    }
+                })
+                Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+                {
+                    Interrupt (ResourceConsumer, Level, ActiveHigh, Exclusive, ,, )
+                    {
+                        0x00000025,
+                    }
+                })
+                Method (_SRS, 1, NotSerialized)  // _SRS: Set Resource Settings
+                {
+                }
+            }
+
+            Device (GSI3)
+            {
+                Name (_HID, "PNP0C0F" /* PCI Interrupt Link Device */)  // _HID: Hardware ID
+                Name (_UID, 0x03)  // _UID: Unique ID
+                Name (_PRS, ResourceTemplate ()  // _PRS: Possible Resource Settings
+                {
+                    Interrupt (ResourceConsumer, Level, ActiveHigh, Exclusive, ,, )
+                    {
+                        0x00000026,
+                    }
+                })
+                Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+                {
+                    Interrupt (ResourceConsumer, Level, ActiveHigh, Exclusive, ,, )
+                    {
+                        0x00000026,
+                    }
+                })
+                Method (_SRS, 1, NotSerialized)  // _SRS: Set Resource Settings
+                {
+                }
+            }
+
+            Method (_CBA, 0, NotSerialized)  // _CBA: Configuration Base Address
+            {
+                Return (0x0000004010000000)
+            }
+
+            Method (_CRS, 0, NotSerialized)  // _CRS: Current Resource Settings
+            {
+                Return (ResourceTemplate ()
+                {
+                    WordBusNumber (ResourceProducer, MinFixed, MaxFixed, PosDecode,
+                        0x0000,             // Granularity
+                        0x0000,             // Range Minimum
+                        0x00FF,             // Range Maximum
+                        0x0000,             // Translation Offset
+                        0x0100,             // Length
+                        ,, )
+                    DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, NonCacheable, ReadWrite,
+                        0x00000000,         // Granularity
+                        0x10000000,         // Range Minimum
+                        0x3EFEFFFF,         // Range Maximum
+                        0x00000000,         // Translation Offset
+                        0x2EFF0000,         // Length
+                        ,, , AddressRangeMemory, TypeStatic)
+                    DWordIO (ResourceProducer, MinFixed, MaxFixed, PosDecode, EntireRange,
+                        0x00000000,         // Granularity
+                        0x00000000,         // Range Minimum
+                        0x0000FFFF,         // Range Maximum
+                        0x3EFF0000,         // Translation Offset
+                        0x00010000,         // Length
+                        ,, , TypeStatic, DenseTranslation)
+                    QWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, NonCacheable, ReadWrite,
+                        0x0000000000000000, // Granularity
+                        0x0000008000000000, // Range Minimum
+                        0x000000FFFFFFFFFF, // Range Maximum
+                        0x0000000000000000, // Translation Offset
+                        0x0000008000000000, // Length
+                        ,, , AddressRangeMemory, TypeStatic)
+                })
+            }
+
+            Name (SUPP, Zero)
+            Name (CTRL, Zero)
+            Method (_OSC, 4, NotSerialized)  // _OSC: Operating System Capabilities
+            {
+                CreateDWordField (Arg3, Zero, CDW1)
+                If ((Arg0 == ToUUID ("33db4d5b-1ff7-401c-9657-7441c03dd766") /* PCI Host Bridge Device */))
+                {
+                    CreateDWordField (Arg3, 0x04, CDW2)
+                    CreateDWordField (Arg3, 0x08, CDW3)
+                    SUPP = CDW2 /* \_SB_.PCI0._OSC.CDW2 */
+                    CTRL = CDW3 /* \_SB_.PCI0._OSC.CDW3 */
+                    CTRL &= 0x1F
+                    If ((Arg1 != One))
+                    {
+                        CDW1 |= 0x08
+                    }
+
+                    If ((CDW3 != CTRL))
+                    {
+                        CDW1 |= 0x10
+                    }
+
+                    CDW3 = CTRL /* \_SB_.PCI0.CTRL */
+                    Return (Arg3)
+                }
+                Else
+                {
+                    CDW1 |= 0x04
+                    Return (Arg3)
+                }
+            }
+
+            Method (_DSM, 4, NotSerialized)  // _DSM: Device-Specific Method
+            {
+                If ((Arg0 == ToUUID ("e5c937d0-3553-4d7a-9117-ea4d19c3434d") /* Device Labeling Interface */))
+                {
+                    If ((Arg2 == Zero))
+                    {
+                        Return (Buffer (One)
+                        {
+                             0x01                                             // .
+                        })
+                    }
+                }
+
+                Return (Buffer (One)
+                {
+                     0x00                                             // .
+                })
+            }
+
+            Device (RES0)
+            {
+                Name (_HID, "PNP0C02" /* PNP Motherboard Resources */)  // _HID: Hardware ID
+                Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+                {
+                    QWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, NonCacheable, ReadWrite,
+                        0x0000000000000000, // Granularity
+                        0x0000004010000000, // Range Minimum
+                        0x000000401FFFFFFF, // Range Maximum
+                        0x0000000000000000, // Translation Offset
+                        0x0000000010000000, // Length
+                        ,, , AddressRangeMemory, TypeStatic)
+                })
+            }
+        }
+
+        Device (\_SB.GED)
+        {
+            Name (_HID, "ACPI0013" /* Generic Event Device */)  // _HID: Hardware ID
+            Name (_UID, "GED")  // _UID: Unique ID
+            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+            {
+                Interrupt (ResourceConsumer, Edge, ActiveHigh, Exclusive, ,, )
+                {
+                    0x00000029,
+                }
+            })
+            OperationRegion (EREG, SystemMemory, 0x09080000, 0x04)
+            Field (EREG, DWordAcc, NoLock, WriteAsZeros)
+            {
+                ESEL,   32
+            }
+
+            Method (_EVT, 1, Serialized)  // _EVT: Event
+            {
+                Local0 = ESEL /* \_SB_.GED_.ESEL */
+                If (((Local0 & 0x02) == 0x02))
+                {
+                    Notify (PWRB, 0x80) // Status Change
+                }
+            }
+        }
+
+        Device (PWRB)
+        {
+            Name (_HID, "PNP0C0C" /* Power Button Device */)  // _HID: Hardware ID
+            Name (_UID, Zero)  // _UID: Unique ID
+        }
+    }
+}
+
diff --git a/tests/data/acpi/virt/FACP.dsl b/tests/data/acpi/virt/FACP.dsl
new file mode 100644
index 0000000000..2c73796f89
--- /dev/null
+++ b/tests/data/acpi/virt/FACP.dsl
@@ -0,0 +1,196 @@ 
+/*
+ * Intel ACPI Component Architecture
+ * AML/ASL+ Disassembler version 20190509 (64-bit version)
+ * Copyright (c) 2000 - 2019 Intel Corporation
+ * 
+ * Disassembly of tests/data/acpi/virt/FACP.numamem, Mon Sep 28 17:24:38 2020
+ *
+ * ACPI Data Table [FACP]
+ *
+ * Format: [HexOffset DecimalOffset ByteLength]  FieldName : FieldValue
+ */
+
+[000h 0000   4]                    Signature : "FACP"    [Fixed ACPI Description Table (FADT)]
+[004h 0004   4]                 Table Length : 0000010C
+[008h 0008   1]                     Revision : 05
+[009h 0009   1]                     Checksum : BB
+[00Ah 0010   6]                       Oem ID : "BOCHS "
+[010h 0016   8]                 Oem Table ID : "BXPCFACP"
+[018h 0024   4]                 Oem Revision : 00000001
+[01Ch 0028   4]              Asl Compiler ID : "BXPC"
+[020h 0032   4]        Asl Compiler Revision : 00000001
+
+[024h 0036   4]                 FACS Address : 00000000
+[028h 0040   4]                 DSDT Address : 00000000
+[02Ch 0044   1]                        Model : 00
+[02Dh 0045   1]                   PM Profile : 00 [Unspecified]
+[02Eh 0046   2]                SCI Interrupt : 0000
+[030h 0048   4]             SMI Command Port : 00000000
+[034h 0052   1]            ACPI Enable Value : 00
+[035h 0053   1]           ACPI Disable Value : 00
+[036h 0054   1]               S4BIOS Command : 00
+[037h 0055   1]              P-State Control : 00
+[038h 0056   4]     PM1A Event Block Address : 00000000
+[03Ch 0060   4]     PM1B Event Block Address : 00000000
+[040h 0064   4]   PM1A Control Block Address : 00000000
+[044h 0068   4]   PM1B Control Block Address : 00000000
+[048h 0072   4]    PM2 Control Block Address : 00000000
+[04Ch 0076   4]       PM Timer Block Address : 00000000
+[050h 0080   4]           GPE0 Block Address : 00000000
+[054h 0084   4]           GPE1 Block Address : 00000000
+[058h 0088   1]       PM1 Event Block Length : 00
+[059h 0089   1]     PM1 Control Block Length : 00
+[05Ah 0090   1]     PM2 Control Block Length : 00
+[05Bh 0091   1]        PM Timer Block Length : 00
+[05Ch 0092   1]            GPE0 Block Length : 00
+[05Dh 0093   1]            GPE1 Block Length : 00
+[05Eh 0094   1]             GPE1 Base Offset : 00
+[05Fh 0095   1]                 _CST Support : 00
+[060h 0096   2]                   C2 Latency : 0000
+[062h 0098   2]                   C3 Latency : 0000
+[064h 0100   2]               CPU Cache Size : 0000
+[066h 0102   2]           Cache Flush Stride : 0000
+[068h 0104   1]            Duty Cycle Offset : 00
+[069h 0105   1]             Duty Cycle Width : 00
+[06Ah 0106   1]          RTC Day Alarm Index : 00
+[06Bh 0107   1]        RTC Month Alarm Index : 00
+[06Ch 0108   1]            RTC Century Index : 00
+[06Dh 0109   2]   Boot Flags (decoded below) : 0000
+               Legacy Devices Supported (V2) : 0
+            8042 Present on ports 60/64 (V2) : 0
+                        VGA Not Present (V4) : 0
+                      MSI Not Supported (V4) : 0
+                PCIe ASPM Not Supported (V4) : 0
+                   CMOS RTC Not Present (V5) : 0
+[06Fh 0111   1]                     Reserved : 00
+[070h 0112   4]        Flags (decoded below) : 00100000
+      WBINVD instruction is operational (V1) : 0
+              WBINVD flushes all caches (V1) : 0
+                    All CPUs support C1 (V1) : 0
+                  C2 works on MP system (V1) : 0
+            Control Method Power Button (V1) : 0
+            Control Method Sleep Button (V1) : 0
+        RTC wake not in fixed reg space (V1) : 0
+            RTC can wake system from S4 (V1) : 0
+                        32-bit PM Timer (V1) : 0
+                      Docking Supported (V1) : 0
+               Reset Register Supported (V2) : 0
+                            Sealed Case (V3) : 0
+                    Headless - No Video (V3) : 0
+        Use native instr after SLP_TYPx (V3) : 0
+              PCIEXP_WAK Bits Supported (V4) : 0
+                     Use Platform Timer (V4) : 0
+               RTC_STS valid on S4 wake (V4) : 0
+                Remote Power-on capable (V4) : 0
+                 Use APIC Cluster Model (V4) : 0
+     Use APIC Physical Destination Mode (V4) : 0
+                       Hardware Reduced (V5) : 1
+                      Low Power S0 Idle (V5) : 0
+
+[074h 0116  12]               Reset Register : [Generic Address Structure]
+[074h 0116   1]                     Space ID : 00 [SystemMemory]
+[075h 0117   1]                    Bit Width : 00
+[076h 0118   1]                   Bit Offset : 00
+[077h 0119   1]         Encoded Access Width : 00 [Undefined/Legacy]
+[078h 0120   8]                      Address : 0000000000000000
+
+[080h 0128   1]         Value to cause reset : 00
+[081h 0129   2]    ARM Flags (decoded below) : 0003
+                              PSCI Compliant : 1
+                       Must use HVC for PSCI : 1
+
+[083h 0131   1]          FADT Minor Revision : 01
+[084h 0132   8]                 FACS Address : 0000000000000000
+[08Ch 0140   8]                 DSDT Address : 0000000000000000
+[094h 0148  12]             PM1A Event Block : [Generic Address Structure]
+[094h 0148   1]                     Space ID : 00 [SystemMemory]
+[095h 0149   1]                    Bit Width : 00
+[096h 0150   1]                   Bit Offset : 00
+[097h 0151   1]         Encoded Access Width : 00 [Undefined/Legacy]
+[098h 0152   8]                      Address : 0000000000000000
+
+[0A0h 0160  12]             PM1B Event Block : [Generic Address Structure]
+[0A0h 0160   1]                     Space ID : 00 [SystemMemory]
+[0A1h 0161   1]                    Bit Width : 00
+[0A2h 0162   1]                   Bit Offset : 00
+[0A3h 0163   1]         Encoded Access Width : 00 [Undefined/Legacy]
+[0A4h 0164   8]                      Address : 0000000000000000
+
+[0ACh 0172  12]           PM1A Control Block : [Generic Address Structure]
+[0ACh 0172   1]                     Space ID : 00 [SystemMemory]
+[0ADh 0173   1]                    Bit Width : 00
+[0AEh 0174   1]                   Bit Offset : 00
+[0AFh 0175   1]         Encoded Access Width : 00 [Undefined/Legacy]
+[0B0h 0176   8]                      Address : 0000000000000000
+
+[0B8h 0184  12]           PM1B Control Block : [Generic Address Structure]
+[0B8h 0184   1]                     Space ID : 00 [SystemMemory]
+[0B9h 0185   1]                    Bit Width : 00
+[0BAh 0186   1]                   Bit Offset : 00
+[0BBh 0187   1]         Encoded Access Width : 00 [Undefined/Legacy]
+[0BCh 0188   8]                      Address : 0000000000000000
+
+[0C4h 0196  12]            PM2 Control Block : [Generic Address Structure]
+[0C4h 0196   1]                     Space ID : 00 [SystemMemory]
+[0C5h 0197   1]                    Bit Width : 00
+[0C6h 0198   1]                   Bit Offset : 00
+[0C7h 0199   1]         Encoded Access Width : 00 [Undefined/Legacy]
+[0C8h 0200   8]                      Address : 0000000000000000
+
+[0D0h 0208  12]               PM Timer Block : [Generic Address Structure]
+[0D0h 0208   1]                     Space ID : 00 [SystemMemory]
+[0D1h 0209   1]                    Bit Width : 00
+[0D2h 0210   1]                   Bit Offset : 00
+[0D3h 0211   1]         Encoded Access Width : 00 [Undefined/Legacy]
+[0D4h 0212   8]                      Address : 0000000000000000
+
+[0DCh 0220  12]                   GPE0 Block : [Generic Address Structure]
+[0DCh 0220   1]                     Space ID : 00 [SystemMemory]
+[0DDh 0221   1]                    Bit Width : 00
+[0DEh 0222   1]                   Bit Offset : 00
+[0DFh 0223   1]         Encoded Access Width : 00 [Undefined/Legacy]
+[0E0h 0224   8]                      Address : 0000000000000000
+
+[0E8h 0232  12]                   GPE1 Block : [Generic Address Structure]
+[0E8h 0232   1]                     Space ID : 00 [SystemMemory]
+[0E9h 0233   1]                    Bit Width : 00
+[0EAh 0234   1]                   Bit Offset : 00
+[0EBh 0235   1]         Encoded Access Width : 00 [Undefined/Legacy]
+[0ECh 0236   8]                      Address : 0000000000000000
+
+
+[0F4h 0244  12]       Sleep Control Register : [Generic Address Structure]
+[0F4h 0244   1]                     Space ID : 00 [SystemMemory]
+[0F5h 0245   1]                    Bit Width : 00
+[0F6h 0246   1]                   Bit Offset : 00
+[0F7h 0247   1]         Encoded Access Width : 00 [Undefined/Legacy]
+[0F8h 0248   8]                      Address : 0000000000000000
+
+[100h 0256  12]        Sleep Status Register : [Generic Address Structure]
+[100h 0256   1]                     Space ID : 00 [SystemMemory]
+[101h 0257   1]                    Bit Width : 00
+[102h 0258   1]                   Bit Offset : 00
+[103h 0259   1]         Encoded Access Width : 00 [Undefined/Legacy]
+[104h 0260   8]                      Address : 0000000000000000
+
+/**** ACPI table terminates in the middle of a data structure! (dump table) */
+
+Raw Table Data: Length 268 (0x10C)
+
+    0000: 46 41 43 50 0C 01 00 00 05 BB 42 4F 43 48 53 20  // FACP......BOCHS 
+    0010: 42 58 50 43 46 41 43 50 01 00 00 00 42 58 50 43  // BXPCFACP....BXPC
+    0020: 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  // ................
+    0030: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  // ................
+    0040: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  // ................
+    0050: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  // ................
+    0060: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  // ................
+    0070: 00 00 10 00 00 00 00 00 00 00 00 00 00 00 00 00  // ................
+    0080: 00 03 00 01 00 00 00 00 00 00 00 00 00 00 00 00  // ................
+    0090: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  // ................
+    00A0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  // ................
+    00B0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  // ................
+    00C0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  // ................
+    00D0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  // ................
+    00E0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  // ................
+    00F0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  // ................
+    0100: 00 00 00 00 00 00 00 00 00 00 00 00              // ............
diff --git a/tests/data/acpi/virt/FACP.memhp.dsl b/tests/data/acpi/virt/FACP.memhp.dsl
new file mode 100644
index 0000000000..0083b95ef7
--- /dev/null
+++ b/tests/data/acpi/virt/FACP.memhp.dsl
@@ -0,0 +1,196 @@ 
+/*
+ * Intel ACPI Component Architecture
+ * AML/ASL+ Disassembler version 20190509 (64-bit version)
+ * Copyright (c) 2000 - 2019 Intel Corporation
+ * 
+ * Disassembly of tests/data/acpi/virt/FACP.memhp, Tue Aug  4 11:14:15 2020
+ *
+ * ACPI Data Table [FACP]
+ *
+ * Format: [HexOffset DecimalOffset ByteLength]  FieldName : FieldValue
+ */
+
+[000h 0000   4]                    Signature : "FACP"    [Fixed ACPI Description Table (FADT)]
+[004h 0004   4]                 Table Length : 0000010C
+[008h 0008   1]                     Revision : 05
+[009h 0009   1]                     Checksum : BB
+[00Ah 0010   6]                       Oem ID : "BOCHS "
+[010h 0016   8]                 Oem Table ID : "BXPCFACP"
+[018h 0024   4]                 Oem Revision : 00000001
+[01Ch 0028   4]              Asl Compiler ID : "BXPC"
+[020h 0032   4]        Asl Compiler Revision : 00000001
+
+[024h 0036   4]                 FACS Address : 00000000
+[028h 0040   4]                 DSDT Address : 00000000
+[02Ch 0044   1]                        Model : 00
+[02Dh 0045   1]                   PM Profile : 00 [Unspecified]
+[02Eh 0046   2]                SCI Interrupt : 0000
+[030h 0048   4]             SMI Command Port : 00000000
+[034h 0052   1]            ACPI Enable Value : 00
+[035h 0053   1]           ACPI Disable Value : 00
+[036h 0054   1]               S4BIOS Command : 00
+[037h 0055   1]              P-State Control : 00
+[038h 0056   4]     PM1A Event Block Address : 00000000
+[03Ch 0060   4]     PM1B Event Block Address : 00000000
+[040h 0064   4]   PM1A Control Block Address : 00000000
+[044h 0068   4]   PM1B Control Block Address : 00000000
+[048h 0072   4]    PM2 Control Block Address : 00000000
+[04Ch 0076   4]       PM Timer Block Address : 00000000
+[050h 0080   4]           GPE0 Block Address : 00000000
+[054h 0084   4]           GPE1 Block Address : 00000000
+[058h 0088   1]       PM1 Event Block Length : 00
+[059h 0089   1]     PM1 Control Block Length : 00
+[05Ah 0090   1]     PM2 Control Block Length : 00
+[05Bh 0091   1]        PM Timer Block Length : 00
+[05Ch 0092   1]            GPE0 Block Length : 00
+[05Dh 0093   1]            GPE1 Block Length : 00
+[05Eh 0094   1]             GPE1 Base Offset : 00
+[05Fh 0095   1]                 _CST Support : 00
+[060h 0096   2]                   C2 Latency : 0000
+[062h 0098   2]                   C3 Latency : 0000
+[064h 0100   2]               CPU Cache Size : 0000
+[066h 0102   2]           Cache Flush Stride : 0000
+[068h 0104   1]            Duty Cycle Offset : 00
+[069h 0105   1]             Duty Cycle Width : 00
+[06Ah 0106   1]          RTC Day Alarm Index : 00
+[06Bh 0107   1]        RTC Month Alarm Index : 00
+[06Ch 0108   1]            RTC Century Index : 00
+[06Dh 0109   2]   Boot Flags (decoded below) : 0000
+               Legacy Devices Supported (V2) : 0
+            8042 Present on ports 60/64 (V2) : 0
+                        VGA Not Present (V4) : 0
+                      MSI Not Supported (V4) : 0
+                PCIe ASPM Not Supported (V4) : 0
+                   CMOS RTC Not Present (V5) : 0
+[06Fh 0111   1]                     Reserved : 00
+[070h 0112   4]        Flags (decoded below) : 00100000
+      WBINVD instruction is operational (V1) : 0
+              WBINVD flushes all caches (V1) : 0
+                    All CPUs support C1 (V1) : 0
+                  C2 works on MP system (V1) : 0
+            Control Method Power Button (V1) : 0
+            Control Method Sleep Button (V1) : 0
+        RTC wake not in fixed reg space (V1) : 0
+            RTC can wake system from S4 (V1) : 0
+                        32-bit PM Timer (V1) : 0
+                      Docking Supported (V1) : 0
+               Reset Register Supported (V2) : 0
+                            Sealed Case (V3) : 0
+                    Headless - No Video (V3) : 0
+        Use native instr after SLP_TYPx (V3) : 0
+              PCIEXP_WAK Bits Supported (V4) : 0
+                     Use Platform Timer (V4) : 0
+               RTC_STS valid on S4 wake (V4) : 0
+                Remote Power-on capable (V4) : 0
+                 Use APIC Cluster Model (V4) : 0
+     Use APIC Physical Destination Mode (V4) : 0
+                       Hardware Reduced (V5) : 1
+                      Low Power S0 Idle (V5) : 0
+
+[074h 0116  12]               Reset Register : [Generic Address Structure]
+[074h 0116   1]                     Space ID : 00 [SystemMemory]
+[075h 0117   1]                    Bit Width : 00
+[076h 0118   1]                   Bit Offset : 00
+[077h 0119   1]         Encoded Access Width : 00 [Undefined/Legacy]
+[078h 0120   8]                      Address : 0000000000000000
+
+[080h 0128   1]         Value to cause reset : 00
+[081h 0129   2]    ARM Flags (decoded below) : 0003
+                              PSCI Compliant : 1
+                       Must use HVC for PSCI : 1
+
+[083h 0131   1]          FADT Minor Revision : 01
+[084h 0132   8]                 FACS Address : 0000000000000000
+[08Ch 0140   8]                 DSDT Address : 0000000000000000
+[094h 0148  12]             PM1A Event Block : [Generic Address Structure]
+[094h 0148   1]                     Space ID : 00 [SystemMemory]
+[095h 0149   1]                    Bit Width : 00
+[096h 0150   1]                   Bit Offset : 00
+[097h 0151   1]         Encoded Access Width : 00 [Undefined/Legacy]
+[098h 0152   8]                      Address : 0000000000000000
+
+[0A0h 0160  12]             PM1B Event Block : [Generic Address Structure]
+[0A0h 0160   1]                     Space ID : 00 [SystemMemory]
+[0A1h 0161   1]                    Bit Width : 00
+[0A2h 0162   1]                   Bit Offset : 00
+[0A3h 0163   1]         Encoded Access Width : 00 [Undefined/Legacy]
+[0A4h 0164   8]                      Address : 0000000000000000
+
+[0ACh 0172  12]           PM1A Control Block : [Generic Address Structure]
+[0ACh 0172   1]                     Space ID : 00 [SystemMemory]
+[0ADh 0173   1]                    Bit Width : 00
+[0AEh 0174   1]                   Bit Offset : 00
+[0AFh 0175   1]         Encoded Access Width : 00 [Undefined/Legacy]
+[0B0h 0176   8]                      Address : 0000000000000000
+
+[0B8h 0184  12]           PM1B Control Block : [Generic Address Structure]
+[0B8h 0184   1]                     Space ID : 00 [SystemMemory]
+[0B9h 0185   1]                    Bit Width : 00
+[0BAh 0186   1]                   Bit Offset : 00
+[0BBh 0187   1]         Encoded Access Width : 00 [Undefined/Legacy]
+[0BCh 0188   8]                      Address : 0000000000000000
+
+[0C4h 0196  12]            PM2 Control Block : [Generic Address Structure]
+[0C4h 0196   1]                     Space ID : 00 [SystemMemory]
+[0C5h 0197   1]                    Bit Width : 00
+[0C6h 0198   1]                   Bit Offset : 00
+[0C7h 0199   1]         Encoded Access Width : 00 [Undefined/Legacy]
+[0C8h 0200   8]                      Address : 0000000000000000
+
+[0D0h 0208  12]               PM Timer Block : [Generic Address Structure]
+[0D0h 0208   1]                     Space ID : 00 [SystemMemory]
+[0D1h 0209   1]                    Bit Width : 00
+[0D2h 0210   1]                   Bit Offset : 00
+[0D3h 0211   1]         Encoded Access Width : 00 [Undefined/Legacy]
+[0D4h 0212   8]                      Address : 0000000000000000
+
+[0DCh 0220  12]                   GPE0 Block : [Generic Address Structure]
+[0DCh 0220   1]                     Space ID : 00 [SystemMemory]
+[0DDh 0221   1]                    Bit Width : 00
+[0DEh 0222   1]                   Bit Offset : 00
+[0DFh 0223   1]         Encoded Access Width : 00 [Undefined/Legacy]
+[0E0h 0224   8]                      Address : 0000000000000000
+
+[0E8h 0232  12]                   GPE1 Block : [Generic Address Structure]
+[0E8h 0232   1]                     Space ID : 00 [SystemMemory]
+[0E9h 0233   1]                    Bit Width : 00
+[0EAh 0234   1]                   Bit Offset : 00
+[0EBh 0235   1]         Encoded Access Width : 00 [Undefined/Legacy]
+[0ECh 0236   8]                      Address : 0000000000000000
+
+
+[0F4h 0244  12]       Sleep Control Register : [Generic Address Structure]
+[0F4h 0244   1]                     Space ID : 00 [SystemMemory]
+[0F5h 0245   1]                    Bit Width : 00
+[0F6h 0246   1]                   Bit Offset : 00
+[0F7h 0247   1]         Encoded Access Width : 00 [Undefined/Legacy]
+[0F8h 0248   8]                      Address : 0000000000000000
+
+[100h 0256  12]        Sleep Status Register : [Generic Address Structure]
+[100h 0256   1]                     Space ID : 00 [SystemMemory]
+[101h 0257   1]                    Bit Width : 00
+[102h 0258   1]                   Bit Offset : 00
+[103h 0259   1]         Encoded Access Width : 00 [Undefined/Legacy]
+[104h 0260   8]                      Address : 0000000000000000
+
+/**** ACPI table terminates in the middle of a data structure! (dump table) */
+
+Raw Table Data: Length 268 (0x10C)
+
+    0000: 46 41 43 50 0C 01 00 00 05 BB 42 4F 43 48 53 20  // FACP......BOCHS 
+    0010: 42 58 50 43 46 41 43 50 01 00 00 00 42 58 50 43  // BXPCFACP....BXPC
+    0020: 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  // ................
+    0030: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  // ................
+    0040: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  // ................
+    0050: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  // ................
+    0060: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  // ................
+    0070: 00 00 10 00 00 00 00 00 00 00 00 00 00 00 00 00  // ................
+    0080: 00 03 00 01 00 00 00 00 00 00 00 00 00 00 00 00  // ................
+    0090: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  // ................
+    00A0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  // ................
+    00B0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  // ................
+    00C0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  // ................
+    00D0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  // ................
+    00E0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  // ................
+    00F0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  // ................
+    0100: 00 00 00 00 00 00 00 00 00 00 00 00              // ............
diff --git a/tests/data/acpi/virt/FACP.numamem.dsl b/tests/data/acpi/virt/FACP.numamem.dsl
new file mode 100644
index 0000000000..aee15bd4c2
--- /dev/null
+++ b/tests/data/acpi/virt/FACP.numamem.dsl
@@ -0,0 +1,196 @@ 
+/*
+ * Intel ACPI Component Architecture
+ * AML/ASL+ Disassembler version 20190509 (64-bit version)
+ * Copyright (c) 2000 - 2019 Intel Corporation
+ * 
+ * Disassembly of tests/data/acpi/virt/FACP.numamem, Tue Aug  4 11:14:15 2020
+ *
+ * ACPI Data Table [FACP]
+ *
+ * Format: [HexOffset DecimalOffset ByteLength]  FieldName : FieldValue
+ */
+
+[000h 0000   4]                    Signature : "FACP"    [Fixed ACPI Description Table (FADT)]
+[004h 0004   4]                 Table Length : 0000010C
+[008h 0008   1]                     Revision : 05
+[009h 0009   1]                     Checksum : BB
+[00Ah 0010   6]                       Oem ID : "BOCHS "
+[010h 0016   8]                 Oem Table ID : "BXPCFACP"
+[018h 0024   4]                 Oem Revision : 00000001
+[01Ch 0028   4]              Asl Compiler ID : "BXPC"
+[020h 0032   4]        Asl Compiler Revision : 00000001
+
+[024h 0036   4]                 FACS Address : 00000000
+[028h 0040   4]                 DSDT Address : 00000000
+[02Ch 0044   1]                        Model : 00
+[02Dh 0045   1]                   PM Profile : 00 [Unspecified]
+[02Eh 0046   2]                SCI Interrupt : 0000
+[030h 0048   4]             SMI Command Port : 00000000
+[034h 0052   1]            ACPI Enable Value : 00
+[035h 0053   1]           ACPI Disable Value : 00
+[036h 0054   1]               S4BIOS Command : 00
+[037h 0055   1]              P-State Control : 00
+[038h 0056   4]     PM1A Event Block Address : 00000000
+[03Ch 0060   4]     PM1B Event Block Address : 00000000
+[040h 0064   4]   PM1A Control Block Address : 00000000
+[044h 0068   4]   PM1B Control Block Address : 00000000
+[048h 0072   4]    PM2 Control Block Address : 00000000
+[04Ch 0076   4]       PM Timer Block Address : 00000000
+[050h 0080   4]           GPE0 Block Address : 00000000
+[054h 0084   4]           GPE1 Block Address : 00000000
+[058h 0088   1]       PM1 Event Block Length : 00
+[059h 0089   1]     PM1 Control Block Length : 00
+[05Ah 0090   1]     PM2 Control Block Length : 00
+[05Bh 0091   1]        PM Timer Block Length : 00
+[05Ch 0092   1]            GPE0 Block Length : 00
+[05Dh 0093   1]            GPE1 Block Length : 00
+[05Eh 0094   1]             GPE1 Base Offset : 00
+[05Fh 0095   1]                 _CST Support : 00
+[060h 0096   2]                   C2 Latency : 0000
+[062h 0098   2]                   C3 Latency : 0000
+[064h 0100   2]               CPU Cache Size : 0000
+[066h 0102   2]           Cache Flush Stride : 0000
+[068h 0104   1]            Duty Cycle Offset : 00
+[069h 0105   1]             Duty Cycle Width : 00
+[06Ah 0106   1]          RTC Day Alarm Index : 00
+[06Bh 0107   1]        RTC Month Alarm Index : 00
+[06Ch 0108   1]            RTC Century Index : 00
+[06Dh 0109   2]   Boot Flags (decoded below) : 0000
+               Legacy Devices Supported (V2) : 0
+            8042 Present on ports 60/64 (V2) : 0
+                        VGA Not Present (V4) : 0
+                      MSI Not Supported (V4) : 0
+                PCIe ASPM Not Supported (V4) : 0
+                   CMOS RTC Not Present (V5) : 0
+[06Fh 0111   1]                     Reserved : 00
+[070h 0112   4]        Flags (decoded below) : 00100000
+      WBINVD instruction is operational (V1) : 0
+              WBINVD flushes all caches (V1) : 0
+                    All CPUs support C1 (V1) : 0
+                  C2 works on MP system (V1) : 0
+            Control Method Power Button (V1) : 0
+            Control Method Sleep Button (V1) : 0
+        RTC wake not in fixed reg space (V1) : 0
+            RTC can wake system from S4 (V1) : 0
+                        32-bit PM Timer (V1) : 0
+                      Docking Supported (V1) : 0
+               Reset Register Supported (V2) : 0
+                            Sealed Case (V3) : 0
+                    Headless - No Video (V3) : 0
+        Use native instr after SLP_TYPx (V3) : 0
+              PCIEXP_WAK Bits Supported (V4) : 0
+                     Use Platform Timer (V4) : 0
+               RTC_STS valid on S4 wake (V4) : 0
+                Remote Power-on capable (V4) : 0
+                 Use APIC Cluster Model (V4) : 0
+     Use APIC Physical Destination Mode (V4) : 0
+                       Hardware Reduced (V5) : 1
+                      Low Power S0 Idle (V5) : 0
+
+[074h 0116  12]               Reset Register : [Generic Address Structure]
+[074h 0116   1]                     Space ID : 00 [SystemMemory]
+[075h 0117   1]                    Bit Width : 00
+[076h 0118   1]                   Bit Offset : 00
+[077h 0119   1]         Encoded Access Width : 00 [Undefined/Legacy]
+[078h 0120   8]                      Address : 0000000000000000
+
+[080h 0128   1]         Value to cause reset : 00
+[081h 0129   2]    ARM Flags (decoded below) : 0003
+                              PSCI Compliant : 1
+                       Must use HVC for PSCI : 1
+
+[083h 0131   1]          FADT Minor Revision : 01
+[084h 0132   8]                 FACS Address : 0000000000000000
+[08Ch 0140   8]                 DSDT Address : 0000000000000000
+[094h 0148  12]             PM1A Event Block : [Generic Address Structure]
+[094h 0148   1]                     Space ID : 00 [SystemMemory]
+[095h 0149   1]                    Bit Width : 00
+[096h 0150   1]                   Bit Offset : 00
+[097h 0151   1]         Encoded Access Width : 00 [Undefined/Legacy]
+[098h 0152   8]                      Address : 0000000000000000
+
+[0A0h 0160  12]             PM1B Event Block : [Generic Address Structure]
+[0A0h 0160   1]                     Space ID : 00 [SystemMemory]
+[0A1h 0161   1]                    Bit Width : 00
+[0A2h 0162   1]                   Bit Offset : 00
+[0A3h 0163   1]         Encoded Access Width : 00 [Undefined/Legacy]
+[0A4h 0164   8]                      Address : 0000000000000000
+
+[0ACh 0172  12]           PM1A Control Block : [Generic Address Structure]
+[0ACh 0172   1]                     Space ID : 00 [SystemMemory]
+[0ADh 0173   1]                    Bit Width : 00
+[0AEh 0174   1]                   Bit Offset : 00
+[0AFh 0175   1]         Encoded Access Width : 00 [Undefined/Legacy]
+[0B0h 0176   8]                      Address : 0000000000000000
+
+[0B8h 0184  12]           PM1B Control Block : [Generic Address Structure]
+[0B8h 0184   1]                     Space ID : 00 [SystemMemory]
+[0B9h 0185   1]                    Bit Width : 00
+[0BAh 0186   1]                   Bit Offset : 00
+[0BBh 0187   1]         Encoded Access Width : 00 [Undefined/Legacy]
+[0BCh 0188   8]                      Address : 0000000000000000
+
+[0C4h 0196  12]            PM2 Control Block : [Generic Address Structure]
+[0C4h 0196   1]                     Space ID : 00 [SystemMemory]
+[0C5h 0197   1]                    Bit Width : 00
+[0C6h 0198   1]                   Bit Offset : 00
+[0C7h 0199   1]         Encoded Access Width : 00 [Undefined/Legacy]
+[0C8h 0200   8]                      Address : 0000000000000000
+
+[0D0h 0208  12]               PM Timer Block : [Generic Address Structure]
+[0D0h 0208   1]                     Space ID : 00 [SystemMemory]
+[0D1h 0209   1]                    Bit Width : 00
+[0D2h 0210   1]                   Bit Offset : 00
+[0D3h 0211   1]         Encoded Access Width : 00 [Undefined/Legacy]
+[0D4h 0212   8]                      Address : 0000000000000000
+
+[0DCh 0220  12]                   GPE0 Block : [Generic Address Structure]
+[0DCh 0220   1]                     Space ID : 00 [SystemMemory]
+[0DDh 0221   1]                    Bit Width : 00
+[0DEh 0222   1]                   Bit Offset : 00
+[0DFh 0223   1]         Encoded Access Width : 00 [Undefined/Legacy]
+[0E0h 0224   8]                      Address : 0000000000000000
+
+[0E8h 0232  12]                   GPE1 Block : [Generic Address Structure]
+[0E8h 0232   1]                     Space ID : 00 [SystemMemory]
+[0E9h 0233   1]                    Bit Width : 00
+[0EAh 0234   1]                   Bit Offset : 00
+[0EBh 0235   1]         Encoded Access Width : 00 [Undefined/Legacy]
+[0ECh 0236   8]                      Address : 0000000000000000
+
+
+[0F4h 0244  12]       Sleep Control Register : [Generic Address Structure]
+[0F4h 0244   1]                     Space ID : 00 [SystemMemory]
+[0F5h 0245   1]                    Bit Width : 00
+[0F6h 0246   1]                   Bit Offset : 00
+[0F7h 0247   1]         Encoded Access Width : 00 [Undefined/Legacy]
+[0F8h 0248   8]                      Address : 0000000000000000
+
+[100h 0256  12]        Sleep Status Register : [Generic Address Structure]
+[100h 0256   1]                     Space ID : 00 [SystemMemory]
+[101h 0257   1]                    Bit Width : 00
+[102h 0258   1]                   Bit Offset : 00
+[103h 0259   1]         Encoded Access Width : 00 [Undefined/Legacy]
+[104h 0260   8]                      Address : 0000000000000000
+
+/**** ACPI table terminates in the middle of a data structure! (dump table) */
+
+Raw Table Data: Length 268 (0x10C)
+
+    0000: 46 41 43 50 0C 01 00 00 05 BB 42 4F 43 48 53 20  // FACP......BOCHS 
+    0010: 42 58 50 43 46 41 43 50 01 00 00 00 42 58 50 43  // BXPCFACP....BXPC
+    0020: 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  // ................
+    0030: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  // ................
+    0040: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  // ................
+    0050: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  // ................
+    0060: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  // ................
+    0070: 00 00 10 00 00 00 00 00 00 00 00 00 00 00 00 00  // ................
+    0080: 00 03 00 01 00 00 00 00 00 00 00 00 00 00 00 00  // ................
+    0090: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  // ................
+    00A0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  // ................
+    00B0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  // ................
+    00C0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  // ................
+    00D0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  // ................
+    00E0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  // ................
+    00F0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  // ................
+    0100: 00 00 00 00 00 00 00 00 00 00 00 00              // ............
diff --git a/tests/data/acpi/virt/GTDT.dsl b/tests/data/acpi/virt/GTDT.dsl
new file mode 100644
index 0000000000..1ab06dd3c2
--- /dev/null
+++ b/tests/data/acpi/virt/GTDT.dsl
@@ -0,0 +1,61 @@ 
+/*
+ * Intel ACPI Component Architecture
+ * AML/ASL+ Disassembler version 20190509 (64-bit version)
+ * Copyright (c) 2000 - 2019 Intel Corporation
+ * 
+ * Disassembly of tests/data/acpi/virt/GTDT.numamem, Mon Sep 28 17:24:38 2020
+ *
+ * ACPI Data Table [GTDT]
+ *
+ * Format: [HexOffset DecimalOffset ByteLength]  FieldName : FieldValue
+ */
+
+[000h 0000   4]                    Signature : "GTDT"    [Generic Timer Description Table]
+[004h 0004   4]                 Table Length : 00000060
+[008h 0008   1]                     Revision : 02
+[009h 0009   1]                     Checksum : D9
+[00Ah 0010   6]                       Oem ID : "BOCHS "
+[010h 0016   8]                 Oem Table ID : "BXPCGTDT"
+[018h 0024   4]                 Oem Revision : 00000001
+[01Ch 0028   4]              Asl Compiler ID : "BXPC"
+[020h 0032   4]        Asl Compiler Revision : 00000001
+
+[024h 0036   8]        Counter Block Address : 0000000000000000
+[02Ch 0044   4]                     Reserved : 00000000
+
+[030h 0048   4]         Secure EL1 Interrupt : 0000001D
+[034h 0052   4]    EL1 Flags (decoded below) : 00000000
+                                Trigger Mode : 0
+                                    Polarity : 0
+                                   Always On : 0
+
+[038h 0056   4]     Non-Secure EL1 Interrupt : 0000001E
+[03Ch 0060   4]   NEL1 Flags (decoded below) : 00000004
+                                Trigger Mode : 0
+                                    Polarity : 0
+                                   Always On : 1
+
+[040h 0064   4]      Virtual Timer Interrupt : 0000001B
+[044h 0068   4]     VT Flags (decoded below) : 00000000
+                                Trigger Mode : 0
+                                    Polarity : 0
+                                   Always On : 0
+
+[048h 0072   4]     Non-Secure EL2 Interrupt : 0000001A
+[04Ch 0076   4]   NEL2 Flags (decoded below) : 00000000
+                                Trigger Mode : 0
+                                    Polarity : 0
+                                   Always On : 0
+[050h 0080   8]   Counter Read Block Address : 0000000000000000
+
+[058h 0088   4]         Platform Timer Count : 00000000
+[05Ch 0092   4]        Platform Timer Offset : 00000000
+
+Raw Table Data: Length 96 (0x60)
+
+    0000: 47 54 44 54 60 00 00 00 02 D9 42 4F 43 48 53 20  // GTDT`.....BOCHS 
+    0010: 42 58 50 43 47 54 44 54 01 00 00 00 42 58 50 43  // BXPCGTDT....BXPC
+    0020: 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  // ................
+    0030: 1D 00 00 00 00 00 00 00 1E 00 00 00 04 00 00 00  // ................
+    0040: 1B 00 00 00 00 00 00 00 1A 00 00 00 00 00 00 00  // ................
+    0050: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  // ................
diff --git a/tests/data/acpi/virt/GTDT.memhp.dsl b/tests/data/acpi/virt/GTDT.memhp.dsl
new file mode 100644
index 0000000000..d78bb092c5
--- /dev/null
+++ b/tests/data/acpi/virt/GTDT.memhp.dsl
@@ -0,0 +1,61 @@ 
+/*
+ * Intel ACPI Component Architecture
+ * AML/ASL+ Disassembler version 20190509 (64-bit version)
+ * Copyright (c) 2000 - 2019 Intel Corporation
+ * 
+ * Disassembly of tests/data/acpi/virt/GTDT.memhp, Tue Aug  4 11:14:15 2020
+ *
+ * ACPI Data Table [GTDT]
+ *
+ * Format: [HexOffset DecimalOffset ByteLength]  FieldName : FieldValue
+ */
+
+[000h 0000   4]                    Signature : "GTDT"    [Generic Timer Description Table]
+[004h 0004   4]                 Table Length : 00000060
+[008h 0008   1]                     Revision : 02
+[009h 0009   1]                     Checksum : D9
+[00Ah 0010   6]                       Oem ID : "BOCHS "
+[010h 0016   8]                 Oem Table ID : "BXPCGTDT"
+[018h 0024   4]                 Oem Revision : 00000001
+[01Ch 0028   4]              Asl Compiler ID : "BXPC"
+[020h 0032   4]        Asl Compiler Revision : 00000001
+
+[024h 0036   8]        Counter Block Address : 0000000000000000
+[02Ch 0044   4]                     Reserved : 00000000
+
+[030h 0048   4]         Secure EL1 Interrupt : 0000001D
+[034h 0052   4]    EL1 Flags (decoded below) : 00000000
+                                Trigger Mode : 0
+                                    Polarity : 0
+                                   Always On : 0
+
+[038h 0056   4]     Non-Secure EL1 Interrupt : 0000001E
+[03Ch 0060   4]   NEL1 Flags (decoded below) : 00000004
+                                Trigger Mode : 0
+                                    Polarity : 0
+                                   Always On : 1
+
+[040h 0064   4]      Virtual Timer Interrupt : 0000001B
+[044h 0068   4]     VT Flags (decoded below) : 00000000
+                                Trigger Mode : 0
+                                    Polarity : 0
+                                   Always On : 0
+
+[048h 0072   4]     Non-Secure EL2 Interrupt : 0000001A
+[04Ch 0076   4]   NEL2 Flags (decoded below) : 00000000
+                                Trigger Mode : 0
+                                    Polarity : 0
+                                   Always On : 0
+[050h 0080   8]   Counter Read Block Address : 0000000000000000
+
+[058h 0088   4]         Platform Timer Count : 00000000
+[05Ch 0092   4]        Platform Timer Offset : 00000000
+
+Raw Table Data: Length 96 (0x60)
+
+    0000: 47 54 44 54 60 00 00 00 02 D9 42 4F 43 48 53 20  // GTDT`.....BOCHS 
+    0010: 42 58 50 43 47 54 44 54 01 00 00 00 42 58 50 43  // BXPCGTDT....BXPC
+    0020: 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  // ................
+    0030: 1D 00 00 00 00 00 00 00 1E 00 00 00 04 00 00 00  // ................
+    0040: 1B 00 00 00 00 00 00 00 1A 00 00 00 00 00 00 00  // ................
+    0050: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  // ................
diff --git a/tests/data/acpi/virt/GTDT.numamem.dsl b/tests/data/acpi/virt/GTDT.numamem.dsl
new file mode 100644
index 0000000000..5c3c2a83db
--- /dev/null
+++ b/tests/data/acpi/virt/GTDT.numamem.dsl
@@ -0,0 +1,61 @@ 
+/*
+ * Intel ACPI Component Architecture
+ * AML/ASL+ Disassembler version 20190509 (64-bit version)
+ * Copyright (c) 2000 - 2019 Intel Corporation
+ * 
+ * Disassembly of tests/data/acpi/virt/GTDT.numamem, Tue Aug  4 11:14:15 2020
+ *
+ * ACPI Data Table [GTDT]
+ *
+ * Format: [HexOffset DecimalOffset ByteLength]  FieldName : FieldValue
+ */
+
+[000h 0000   4]                    Signature : "GTDT"    [Generic Timer Description Table]
+[004h 0004   4]                 Table Length : 00000060
+[008h 0008   1]                     Revision : 02
+[009h 0009   1]                     Checksum : D9
+[00Ah 0010   6]                       Oem ID : "BOCHS "
+[010h 0016   8]                 Oem Table ID : "BXPCGTDT"
+[018h 0024   4]                 Oem Revision : 00000001
+[01Ch 0028   4]              Asl Compiler ID : "BXPC"
+[020h 0032   4]        Asl Compiler Revision : 00000001
+
+[024h 0036   8]        Counter Block Address : 0000000000000000
+[02Ch 0044   4]                     Reserved : 00000000
+
+[030h 0048   4]         Secure EL1 Interrupt : 0000001D
+[034h 0052   4]    EL1 Flags (decoded below) : 00000000
+                                Trigger Mode : 0
+                                    Polarity : 0
+                                   Always On : 0
+
+[038h 0056   4]     Non-Secure EL1 Interrupt : 0000001E
+[03Ch 0060   4]   NEL1 Flags (decoded below) : 00000004
+                                Trigger Mode : 0
+                                    Polarity : 0
+                                   Always On : 1
+
+[040h 0064   4]      Virtual Timer Interrupt : 0000001B
+[044h 0068   4]     VT Flags (decoded below) : 00000000
+                                Trigger Mode : 0
+                                    Polarity : 0
+                                   Always On : 0
+
+[048h 0072   4]     Non-Secure EL2 Interrupt : 0000001A
+[04Ch 0076   4]   NEL2 Flags (decoded below) : 00000000
+                                Trigger Mode : 0
+                                    Polarity : 0
+                                   Always On : 0
+[050h 0080   8]   Counter Read Block Address : 0000000000000000
+
+[058h 0088   4]         Platform Timer Count : 00000000
+[05Ch 0092   4]        Platform Timer Offset : 00000000
+
+Raw Table Data: Length 96 (0x60)
+
+    0000: 47 54 44 54 60 00 00 00 02 D9 42 4F 43 48 53 20  // GTDT`.....BOCHS 
+    0010: 42 58 50 43 47 54 44 54 01 00 00 00 42 58 50 43  // BXPCGTDT....BXPC
+    0020: 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  // ................
+    0030: 1D 00 00 00 00 00 00 00 1E 00 00 00 04 00 00 00  // ................
+    0040: 1B 00 00 00 00 00 00 00 1A 00 00 00 00 00 00 00  // ................
+    0050: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  // ................
diff --git a/tests/data/acpi/virt/MCFG.dsl b/tests/data/acpi/virt/MCFG.dsl
new file mode 100644
index 0000000000..f09c86f487
--- /dev/null
+++ b/tests/data/acpi/virt/MCFG.dsl
@@ -0,0 +1,36 @@ 
+/*
+ * Intel ACPI Component Architecture
+ * AML/ASL+ Disassembler version 20190509 (64-bit version)
+ * Copyright (c) 2000 - 2019 Intel Corporation
+ * 
+ * Disassembly of tests/data/acpi/virt/MCFG.numamem, Mon Sep 28 17:24:38 2020
+ *
+ * ACPI Data Table [MCFG]
+ *
+ * Format: [HexOffset DecimalOffset ByteLength]  FieldName : FieldValue
+ */
+
+[000h 0000   4]                    Signature : "MCFG"    [Memory Mapped Configuration table]
+[004h 0004   4]                 Table Length : 0000003C
+[008h 0008   1]                     Revision : 01
+[009h 0009   1]                     Checksum : 4F
+[00Ah 0010   6]                       Oem ID : "BOCHS "
+[010h 0016   8]                 Oem Table ID : "BXPCMCFG"
+[018h 0024   4]                 Oem Revision : 00000001
+[01Ch 0028   4]              Asl Compiler ID : "BXPC"
+[020h 0032   4]        Asl Compiler Revision : 00000001
+
+[024h 0036   8]                     Reserved : 0000000000000000
+
+[02Ch 0044   8]                 Base Address : 0000004010000000
+[034h 0052   2]         Segment Group Number : 0000
+[036h 0054   1]             Start Bus Number : 00
+[037h 0055   1]               End Bus Number : FF
+[038h 0056   4]                     Reserved : 00000000
+
+Raw Table Data: Length 60 (0x3C)
+
+    0000: 4D 43 46 47 3C 00 00 00 01 4F 42 4F 43 48 53 20  // MCFG<....OBOCHS 
+    0010: 42 58 50 43 4D 43 46 47 01 00 00 00 42 58 50 43  // BXPCMCFG....BXPC
+    0020: 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 10  // ................
+    0030: 40 00 00 00 00 00 00 FF 00 00 00 00              // @...........
diff --git a/tests/data/acpi/virt/MCFG.memhp.dsl b/tests/data/acpi/virt/MCFG.memhp.dsl
new file mode 100644
index 0000000000..b03a6384e8
--- /dev/null
+++ b/tests/data/acpi/virt/MCFG.memhp.dsl
@@ -0,0 +1,36 @@ 
+/*
+ * Intel ACPI Component Architecture
+ * AML/ASL+ Disassembler version 20190509 (64-bit version)
+ * Copyright (c) 2000 - 2019 Intel Corporation
+ * 
+ * Disassembly of tests/data/acpi/virt/MCFG.memhp, Tue Aug  4 11:14:15 2020
+ *
+ * ACPI Data Table [MCFG]
+ *
+ * Format: [HexOffset DecimalOffset ByteLength]  FieldName : FieldValue
+ */
+
+[000h 0000   4]                    Signature : "MCFG"    [Memory Mapped Configuration table]
+[004h 0004   4]                 Table Length : 0000003C
+[008h 0008   1]                     Revision : 01
+[009h 0009   1]                     Checksum : 4F
+[00Ah 0010   6]                       Oem ID : "BOCHS "
+[010h 0016   8]                 Oem Table ID : "BXPCMCFG"
+[018h 0024   4]                 Oem Revision : 00000001
+[01Ch 0028   4]              Asl Compiler ID : "BXPC"
+[020h 0032   4]        Asl Compiler Revision : 00000001
+
+[024h 0036   8]                     Reserved : 0000000000000000
+
+[02Ch 0044   8]                 Base Address : 0000004010000000
+[034h 0052   2]         Segment Group Number : 0000
+[036h 0054   1]             Start Bus Number : 00
+[037h 0055   1]               End Bus Number : FF
+[038h 0056   4]                     Reserved : 00000000
+
+Raw Table Data: Length 60 (0x3C)
+
+    0000: 4D 43 46 47 3C 00 00 00 01 4F 42 4F 43 48 53 20  // MCFG<....OBOCHS 
+    0010: 42 58 50 43 4D 43 46 47 01 00 00 00 42 58 50 43  // BXPCMCFG....BXPC
+    0020: 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 10  // ................
+    0030: 40 00 00 00 00 00 00 FF 00 00 00 00              // @...........
diff --git a/tests/data/acpi/virt/MCFG.numamem.dsl b/tests/data/acpi/virt/MCFG.numamem.dsl
new file mode 100644
index 0000000000..303df803f5
--- /dev/null
+++ b/tests/data/acpi/virt/MCFG.numamem.dsl
@@ -0,0 +1,36 @@ 
+/*
+ * Intel ACPI Component Architecture
+ * AML/ASL+ Disassembler version 20190509 (64-bit version)
+ * Copyright (c) 2000 - 2019 Intel Corporation
+ * 
+ * Disassembly of tests/data/acpi/virt/MCFG.numamem, Tue Aug  4 11:14:15 2020
+ *
+ * ACPI Data Table [MCFG]
+ *
+ * Format: [HexOffset DecimalOffset ByteLength]  FieldName : FieldValue
+ */
+
+[000h 0000   4]                    Signature : "MCFG"    [Memory Mapped Configuration table]
+[004h 0004   4]                 Table Length : 0000003C
+[008h 0008   1]                     Revision : 01
+[009h 0009   1]                     Checksum : 4F
+[00Ah 0010   6]                       Oem ID : "BOCHS "
+[010h 0016   8]                 Oem Table ID : "BXPCMCFG"
+[018h 0024   4]                 Oem Revision : 00000001
+[01Ch 0028   4]              Asl Compiler ID : "BXPC"
+[020h 0032   4]        Asl Compiler Revision : 00000001
+
+[024h 0036   8]                     Reserved : 0000000000000000
+
+[02Ch 0044   8]                 Base Address : 0000004010000000
+[034h 0052   2]         Segment Group Number : 0000
+[036h 0054   1]             Start Bus Number : 00
+[037h 0055   1]               End Bus Number : FF
+[038h 0056   4]                     Reserved : 00000000
+
+Raw Table Data: Length 60 (0x3C)
+
+    0000: 4D 43 46 47 3C 00 00 00 01 4F 42 4F 43 48 53 20  // MCFG<....OBOCHS 
+    0010: 42 58 50 43 4D 43 46 47 01 00 00 00 42 58 50 43  // BXPCMCFG....BXPC
+    0020: 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 10  // ................
+    0030: 40 00 00 00 00 00 00 FF 00 00 00 00              // @...........
diff --git a/tests/data/acpi/virt/NFIT.dsl b/tests/data/acpi/virt/NFIT.dsl
new file mode 100644
index 0000000000..947ba0f6a4
--- /dev/null
+++ b/tests/data/acpi/virt/NFIT.dsl
@@ -0,0 +1,103 @@ 
+/*
+ * Intel ACPI Component Architecture
+ * AML/ASL+ Disassembler version 20190509 (64-bit version)
+ * Copyright (c) 2000 - 2019 Intel Corporation
+ * 
+ * Disassembly of tests/data/acpi/virt/NFIT.memhp, Mon Sep 28 17:24:38 2020
+ *
+ * ACPI Data Table [NFIT]
+ *
+ * Format: [HexOffset DecimalOffset ByteLength]  FieldName : FieldValue
+ */
+
+[000h 0000   4]                    Signature : "NFIT"    [NVDIMM Firmware Interface Table]
+[004h 0004   4]                 Table Length : 000000E0
+[008h 0008   1]                     Revision : 01
+[009h 0009   1]                     Checksum : D1
+[00Ah 0010   6]                       Oem ID : "BOCHS "
+[010h 0016   8]                 Oem Table ID : "BXPCNFIT"
+[018h 0024   4]                 Oem Revision : 00000001
+[01Ch 0028   4]              Asl Compiler ID : "BXPC"
+[020h 0032   4]        Asl Compiler Revision : 00000001
+
+[024h 0036   4]                     Reserved : 00000000
+
+[028h 0040   2]                Subtable Type : 0000 [System Physical Address Range]
+[02Ah 0042   2]                       Length : 0038
+
+[02Ch 0044   2]                  Range Index : 0004
+[02Eh 0046   2]        Flags (decoded below) : 0003
+                   Add/Online Operation Only : 1
+                      Proximity Domain Valid : 1
+[030h 0048   4]                     Reserved : 00000000
+[034h 0052   4]             Proximity Domain : 00000001
+[038h 0056  16]             Region Type GUID : 66F0D379-B4F3-4074-AC43-0D3318B78CDB
+[048h 0072   8]           Address Range Base : 0000000088000000
+[050h 0080   8]         Address Range Length : 0000000008000000
+[058h 0088   8]         Memory Map Attribute : 0000000000008008
+
+[060h 0096   2]                Subtable Type : 0001 [Memory Range Map]
+[062h 0098   2]                       Length : 0030
+
+[064h 0100   4]                Device Handle : 00000002
+[068h 0104   2]                  Physical Id : 0000
+[06Ah 0106   2]                    Region Id : 0000
+[06Ch 0108   2]                  Range Index : 0004
+[06Eh 0110   2]         Control Region Index : 0005
+[070h 0112   8]                  Region Size : 0000000008000000
+[078h 0120   8]                Region Offset : 0000000000000000
+[080h 0128   8]          Address Region Base : 0000000000000000
+[088h 0136   2]             Interleave Index : 0000
+[08Ah 0138   2]              Interleave Ways : 0001
+[08Ch 0140   2]                        Flags : 0000
+                       Save to device failed : 0
+                  Restore from device failed : 0
+                       Platform flush failed : 0
+                            Device not armed : 0
+                      Health events observed : 0
+                       Health events enabled : 0
+                              Mapping failed : 0
+[08Eh 0142   2]                     Reserved : 0000
+
+[090h 0144   2]                Subtable Type : 0004 [NVDIMM Control Region]
+[092h 0146   2]                       Length : 0050
+
+[094h 0148   2]                 Region Index : 0005
+[096h 0150   2]                    Vendor Id : 8086
+[098h 0152   2]                    Device Id : 0001
+[09Ah 0154   2]                  Revision Id : 0001
+[09Ch 0156   2]          Subsystem Vendor Id : 0000
+[09Eh 0158   2]          Subsystem Device Id : 0000
+[0A0h 0160   2]        Subsystem Revision Id : 0000
+[0A2h 0162   1]                 Valid Fields : 00
+[0A3h 0163   1]       Manufacturing Location : 00
+[0A4h 0164   2]           Manufacturing Date : 0000
+[0A6h 0166   2]                     Reserved : 0000
+[0A8h 0168   4]                Serial Number : 00123457
+[0ACh 0172   2]                         Code : 0301
+[0AEh 0174   2]                 Window Count : 0000
+[0B0h 0176   8]                  Window Size : 0000000000000000
+[0B8h 0184   8]               Command Offset : 0000000000000000
+[0C0h 0192   8]                 Command Size : 0000000000000000
+[0C8h 0200   8]                Status Offset : 0000000000000000
+[0D0h 0208   8]                  Status Size : 0000000000000000
+[0D8h 0216   2]                        Flags : 0000
+                            Windows buffered : 0
+[0DAh 0218   6]                    Reserved1 : 000000000000
+
+Raw Table Data: Length 224 (0xE0)
+
+    0000: 4E 46 49 54 E0 00 00 00 01 D1 42 4F 43 48 53 20  // NFIT......BOCHS 
+    0010: 42 58 50 43 4E 46 49 54 01 00 00 00 42 58 50 43  // BXPCNFIT....BXPC
+    0020: 01 00 00 00 00 00 00 00 00 00 38 00 04 00 03 00  // ..........8.....
+    0030: 00 00 00 00 01 00 00 00 79 D3 F0 66 F3 B4 74 40  // ........y..f..t@
+    0040: AC 43 0D 33 18 B7 8C DB 00 00 00 88 00 00 00 00  // .C.3............
+    0050: 00 00 00 08 00 00 00 00 08 80 00 00 00 00 00 00  // ................
+    0060: 01 00 30 00 02 00 00 00 00 00 00 00 04 00 05 00  // ..0.............
+    0070: 00 00 00 08 00 00 00 00 00 00 00 00 00 00 00 00  // ................
+    0080: 00 00 00 00 00 00 00 00 00 00 01 00 00 00 00 00  // ................
+    0090: 04 00 50 00 05 00 86 80 01 00 01 00 00 00 00 00  // ..P.............
+    00A0: 00 00 00 00 00 00 00 00 57 34 12 00 01 03 00 00  // ........W4......
+    00B0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  // ................
+    00C0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  // ................
+    00D0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  // ................
diff --git a/tests/data/acpi/virt/NFIT.memhp.dsl b/tests/data/acpi/virt/NFIT.memhp.dsl
new file mode 100644
index 0000000000..84511bff96
--- /dev/null
+++ b/tests/data/acpi/virt/NFIT.memhp.dsl
@@ -0,0 +1,103 @@ 
+/*
+ * Intel ACPI Component Architecture
+ * AML/ASL+ Disassembler version 20190509 (64-bit version)
+ * Copyright (c) 2000 - 2019 Intel Corporation
+ * 
+ * Disassembly of tests/data/acpi/virt/NFIT.memhp, Tue Aug  4 11:14:15 2020
+ *
+ * ACPI Data Table [NFIT]
+ *
+ * Format: [HexOffset DecimalOffset ByteLength]  FieldName : FieldValue
+ */
+
+[000h 0000   4]                    Signature : "NFIT"    [NVDIMM Firmware Interface Table]
+[004h 0004   4]                 Table Length : 000000E0
+[008h 0008   1]                     Revision : 01
+[009h 0009   1]                     Checksum : D1
+[00Ah 0010   6]                       Oem ID : "BOCHS "
+[010h 0016   8]                 Oem Table ID : "BXPCNFIT"
+[018h 0024   4]                 Oem Revision : 00000001
+[01Ch 0028   4]              Asl Compiler ID : "BXPC"
+[020h 0032   4]        Asl Compiler Revision : 00000001
+
+[024h 0036   4]                     Reserved : 00000000
+
+[028h 0040   2]                Subtable Type : 0000 [System Physical Address Range]
+[02Ah 0042   2]                       Length : 0038
+
+[02Ch 0044   2]                  Range Index : 0004
+[02Eh 0046   2]        Flags (decoded below) : 0003
+                   Add/Online Operation Only : 1
+                      Proximity Domain Valid : 1
+[030h 0048   4]                     Reserved : 00000000
+[034h 0052   4]             Proximity Domain : 00000001
+[038h 0056  16]             Region Type GUID : 66F0D379-B4F3-4074-AC43-0D3318B78CDB
+[048h 0072   8]           Address Range Base : 0000000088000000
+[050h 0080   8]         Address Range Length : 0000000008000000
+[058h 0088   8]         Memory Map Attribute : 0000000000008008
+
+[060h 0096   2]                Subtable Type : 0001 [Memory Range Map]
+[062h 0098   2]                       Length : 0030
+
+[064h 0100   4]                Device Handle : 00000002
+[068h 0104   2]                  Physical Id : 0000
+[06Ah 0106   2]                    Region Id : 0000
+[06Ch 0108   2]                  Range Index : 0004
+[06Eh 0110   2]         Control Region Index : 0005
+[070h 0112   8]                  Region Size : 0000000008000000
+[078h 0120   8]                Region Offset : 0000000000000000
+[080h 0128   8]          Address Region Base : 0000000000000000
+[088h 0136   2]             Interleave Index : 0000
+[08Ah 0138   2]              Interleave Ways : 0001
+[08Ch 0140   2]                        Flags : 0000
+                       Save to device failed : 0
+                  Restore from device failed : 0
+                       Platform flush failed : 0
+                            Device not armed : 0
+                      Health events observed : 0
+                       Health events enabled : 0
+                              Mapping failed : 0
+[08Eh 0142   2]                     Reserved : 0000
+
+[090h 0144   2]                Subtable Type : 0004 [NVDIMM Control Region]
+[092h 0146   2]                       Length : 0050
+
+[094h 0148   2]                 Region Index : 0005
+[096h 0150   2]                    Vendor Id : 8086
+[098h 0152   2]                    Device Id : 0001
+[09Ah 0154   2]                  Revision Id : 0001
+[09Ch 0156   2]          Subsystem Vendor Id : 0000
+[09Eh 0158   2]          Subsystem Device Id : 0000
+[0A0h 0160   2]        Subsystem Revision Id : 0000
+[0A2h 0162   1]                 Valid Fields : 00
+[0A3h 0163   1]       Manufacturing Location : 00
+[0A4h 0164   2]           Manufacturing Date : 0000
+[0A6h 0166   2]                     Reserved : 0000
+[0A8h 0168   4]                Serial Number : 00123457
+[0ACh 0172   2]                         Code : 0301
+[0AEh 0174   2]                 Window Count : 0000
+[0B0h 0176   8]                  Window Size : 0000000000000000
+[0B8h 0184   8]               Command Offset : 0000000000000000
+[0C0h 0192   8]                 Command Size : 0000000000000000
+[0C8h 0200   8]                Status Offset : 0000000000000000
+[0D0h 0208   8]                  Status Size : 0000000000000000
+[0D8h 0216   2]                        Flags : 0000
+                            Windows buffered : 0
+[0DAh 0218   6]                    Reserved1 : 000000000000
+
+Raw Table Data: Length 224 (0xE0)
+
+    0000: 4E 46 49 54 E0 00 00 00 01 D1 42 4F 43 48 53 20  // NFIT......BOCHS 
+    0010: 42 58 50 43 4E 46 49 54 01 00 00 00 42 58 50 43  // BXPCNFIT....BXPC
+    0020: 01 00 00 00 00 00 00 00 00 00 38 00 04 00 03 00  // ..........8.....
+    0030: 00 00 00 00 01 00 00 00 79 D3 F0 66 F3 B4 74 40  // ........y..f..t@
+    0040: AC 43 0D 33 18 B7 8C DB 00 00 00 88 00 00 00 00  // .C.3............
+    0050: 00 00 00 08 00 00 00 00 08 80 00 00 00 00 00 00  // ................
+    0060: 01 00 30 00 02 00 00 00 00 00 00 00 04 00 05 00  // ..0.............
+    0070: 00 00 00 08 00 00 00 00 00 00 00 00 00 00 00 00  // ................
+    0080: 00 00 00 00 00 00 00 00 00 00 01 00 00 00 00 00  // ................
+    0090: 04 00 50 00 05 00 86 80 01 00 01 00 00 00 00 00  // ..P.............
+    00A0: 00 00 00 00 00 00 00 00 57 34 12 00 01 03 00 00  // ........W4......
+    00B0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  // ................
+    00C0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  // ................
+    00D0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  // ................
diff --git a/tests/data/acpi/virt/SLIT.dsl b/tests/data/acpi/virt/SLIT.dsl
new file mode 100644
index 0000000000..34276fca96
--- /dev/null
+++ b/tests/data/acpi/virt/SLIT.dsl
@@ -0,0 +1,31 @@ 
+/*
+ * Intel ACPI Component Architecture
+ * AML/ASL+ Disassembler version 20190509 (64-bit version)
+ * Copyright (c) 2000 - 2019 Intel Corporation
+ * 
+ * Disassembly of tests/data/acpi/virt/SLIT.memhp, Mon Sep 28 17:24:38 2020
+ *
+ * ACPI Data Table [SLIT]
+ *
+ * Format: [HexOffset DecimalOffset ByteLength]  FieldName : FieldValue
+ */
+
+[000h 0000   4]                    Signature : "SLIT"    [System Locality Information Table]
+[004h 0004   4]                 Table Length : 00000030
+[008h 0008   1]                     Revision : 01
+[009h 0009   1]                     Checksum : 2C
+[00Ah 0010   6]                       Oem ID : "BOCHS "
+[010h 0016   8]                 Oem Table ID : "BXPCSLIT"
+[018h 0024   4]                 Oem Revision : 00000001
+[01Ch 0028   4]              Asl Compiler ID : "BXPC"
+[020h 0032   4]        Asl Compiler Revision : 00000001
+
+[024h 0036   8]                   Localities : 0000000000000002
+[02Ch 0044   2]                 Locality   0 : 0A 15
+[02Eh 0046   2]                 Locality   1 : 15 0A
+
+Raw Table Data: Length 48 (0x30)
+
+    0000: 53 4C 49 54 30 00 00 00 01 2C 42 4F 43 48 53 20  // SLIT0....,BOCHS 
+    0010: 42 58 50 43 53 4C 49 54 01 00 00 00 42 58 50 43  // BXPCSLIT....BXPC
+    0020: 01 00 00 00 02 00 00 00 00 00 00 00 0A 15 15 0A  // ................
diff --git a/tests/data/acpi/virt/SLIT.memhp.dsl b/tests/data/acpi/virt/SLIT.memhp.dsl
new file mode 100644
index 0000000000..a17f948af2
--- /dev/null
+++ b/tests/data/acpi/virt/SLIT.memhp.dsl
@@ -0,0 +1,31 @@ 
+/*
+ * Intel ACPI Component Architecture
+ * AML/ASL+ Disassembler version 20190509 (64-bit version)
+ * Copyright (c) 2000 - 2019 Intel Corporation
+ * 
+ * Disassembly of tests/data/acpi/virt/SLIT.memhp, Tue Aug  4 11:14:15 2020
+ *
+ * ACPI Data Table [SLIT]
+ *
+ * Format: [HexOffset DecimalOffset ByteLength]  FieldName : FieldValue
+ */
+
+[000h 0000   4]                    Signature : "SLIT"    [System Locality Information Table]
+[004h 0004   4]                 Table Length : 00000030
+[008h 0008   1]                     Revision : 01
+[009h 0009   1]                     Checksum : 2C
+[00Ah 0010   6]                       Oem ID : "BOCHS "
+[010h 0016   8]                 Oem Table ID : "BXPCSLIT"
+[018h 0024   4]                 Oem Revision : 00000001
+[01Ch 0028   4]              Asl Compiler ID : "BXPC"
+[020h 0032   4]        Asl Compiler Revision : 00000001
+
+[024h 0036   8]                   Localities : 0000000000000002
+[02Ch 0044   2]                 Locality   0 : 0A 15
+[02Eh 0046   2]                 Locality   1 : 15 0A
+
+Raw Table Data: Length 48 (0x30)
+
+    0000: 53 4C 49 54 30 00 00 00 01 2C 42 4F 43 48 53 20  // SLIT0....,BOCHS 
+    0010: 42 58 50 43 53 4C 49 54 01 00 00 00 42 58 50 43  // BXPCSLIT....BXPC
+    0020: 01 00 00 00 02 00 00 00 00 00 00 00 0A 15 15 0A  // ................
diff --git a/tests/data/acpi/virt/SPCR.dsl b/tests/data/acpi/virt/SPCR.dsl
new file mode 100644
index 0000000000..3c271412cf
--- /dev/null
+++ b/tests/data/acpi/virt/SPCR.dsl
@@ -0,0 +1,57 @@ 
+/*
+ * Intel ACPI Component Architecture
+ * AML/ASL+ Disassembler version 20190509 (64-bit version)
+ * Copyright (c) 2000 - 2019 Intel Corporation
+ * 
+ * Disassembly of tests/data/acpi/virt/SPCR.numamem, Mon Sep 28 17:24:38 2020
+ *
+ * ACPI Data Table [SPCR]
+ *
+ * Format: [HexOffset DecimalOffset ByteLength]  FieldName : FieldValue
+ */
+
+[000h 0000   4]                    Signature : "SPCR"    [Serial Port Console Redirection table]
+[004h 0004   4]                 Table Length : 00000050
+[008h 0008   1]                     Revision : 02
+[009h 0009   1]                     Checksum : 13
+[00Ah 0010   6]                       Oem ID : "BOCHS "
+[010h 0016   8]                 Oem Table ID : "BXPCSPCR"
+[018h 0024   4]                 Oem Revision : 00000001
+[01Ch 0028   4]              Asl Compiler ID : "BXPC"
+[020h 0032   4]        Asl Compiler Revision : 00000001
+
+[024h 0036   1]               Interface Type : 03
+[025h 0037   3]                     Reserved : 000000
+
+[028h 0040  12]         Serial Port Register : [Generic Address Structure]
+[028h 0040   1]                     Space ID : 00 [SystemMemory]
+[029h 0041   1]                    Bit Width : 08
+[02Ah 0042   1]                   Bit Offset : 00
+[02Bh 0043   1]         Encoded Access Width : 01 [Byte Access:8]
+[02Ch 0044   8]                      Address : 0000000009000000
+
+[034h 0052   1]               Interrupt Type : 08
+[035h 0053   1]          PCAT-compatible IRQ : 00
+[036h 0054   4]                    Interrupt : 00000021
+[03Ah 0058   1]                    Baud Rate : 03
+[03Bh 0059   1]                       Parity : 00
+[03Ch 0060   1]                    Stop Bits : 01
+[03Dh 0061   1]                 Flow Control : 02
+[03Eh 0062   1]                Terminal Type : 00
+[04Ch 0076   1]                     Reserved : 00
+[040h 0064   2]                PCI Device ID : FFFF
+[042h 0066   2]                PCI Vendor ID : FFFF
+[044h 0068   1]                      PCI Bus : 00
+[045h 0069   1]                   PCI Device : 00
+[046h 0070   1]                 PCI Function : 00
+[047h 0071   4]                    PCI Flags : 00000000
+[04Bh 0075   1]                  PCI Segment : 00
+[04Ch 0076   4]                     Reserved : 00000000
+
+Raw Table Data: Length 80 (0x50)
+
+    0000: 53 50 43 52 50 00 00 00 02 13 42 4F 43 48 53 20  // SPCRP.....BOCHS 
+    0010: 42 58 50 43 53 50 43 52 01 00 00 00 42 58 50 43  // BXPCSPCR....BXPC
+    0020: 01 00 00 00 03 00 00 00 00 08 00 01 00 00 00 09  // ................
+    0030: 00 00 00 00 08 00 21 00 00 00 03 00 01 02 00 00  // ......!.........
+    0040: FF FF FF FF 00 00 00 00 00 00 00 00 00 00 00 00  // ................
diff --git a/tests/data/acpi/virt/SPCR.memhp.dsl b/tests/data/acpi/virt/SPCR.memhp.dsl
new file mode 100644
index 0000000000..81e00457cc
--- /dev/null
+++ b/tests/data/acpi/virt/SPCR.memhp.dsl
@@ -0,0 +1,57 @@ 
+/*
+ * Intel ACPI Component Architecture
+ * AML/ASL+ Disassembler version 20190509 (64-bit version)
+ * Copyright (c) 2000 - 2019 Intel Corporation
+ * 
+ * Disassembly of tests/data/acpi/virt/SPCR.memhp, Tue Aug  4 11:14:15 2020
+ *
+ * ACPI Data Table [SPCR]
+ *
+ * Format: [HexOffset DecimalOffset ByteLength]  FieldName : FieldValue
+ */
+
+[000h 0000   4]                    Signature : "SPCR"    [Serial Port Console Redirection table]
+[004h 0004   4]                 Table Length : 00000050
+[008h 0008   1]                     Revision : 02
+[009h 0009   1]                     Checksum : 13
+[00Ah 0010   6]                       Oem ID : "BOCHS "
+[010h 0016   8]                 Oem Table ID : "BXPCSPCR"
+[018h 0024   4]                 Oem Revision : 00000001
+[01Ch 0028   4]              Asl Compiler ID : "BXPC"
+[020h 0032   4]        Asl Compiler Revision : 00000001
+
+[024h 0036   1]               Interface Type : 03
+[025h 0037   3]                     Reserved : 000000
+
+[028h 0040  12]         Serial Port Register : [Generic Address Structure]
+[028h 0040   1]                     Space ID : 00 [SystemMemory]
+[029h 0041   1]                    Bit Width : 08
+[02Ah 0042   1]                   Bit Offset : 00
+[02Bh 0043   1]         Encoded Access Width : 01 [Byte Access:8]
+[02Ch 0044   8]                      Address : 0000000009000000
+
+[034h 0052   1]               Interrupt Type : 08
+[035h 0053   1]          PCAT-compatible IRQ : 00
+[036h 0054   4]                    Interrupt : 00000021
+[03Ah 0058   1]                    Baud Rate : 03
+[03Bh 0059   1]                       Parity : 00
+[03Ch 0060   1]                    Stop Bits : 01
+[03Dh 0061   1]                 Flow Control : 02
+[03Eh 0062   1]                Terminal Type : 00
+[04Ch 0076   1]                     Reserved : 00
+[040h 0064   2]                PCI Device ID : FFFF
+[042h 0066   2]                PCI Vendor ID : FFFF
+[044h 0068   1]                      PCI Bus : 00
+[045h 0069   1]                   PCI Device : 00
+[046h 0070   1]                 PCI Function : 00
+[047h 0071   4]                    PCI Flags : 00000000
+[04Bh 0075   1]                  PCI Segment : 00
+[04Ch 0076   4]                     Reserved : 00000000
+
+Raw Table Data: Length 80 (0x50)
+
+    0000: 53 50 43 52 50 00 00 00 02 13 42 4F 43 48 53 20  // SPCRP.....BOCHS 
+    0010: 42 58 50 43 53 50 43 52 01 00 00 00 42 58 50 43  // BXPCSPCR....BXPC
+    0020: 01 00 00 00 03 00 00 00 00 08 00 01 00 00 00 09  // ................
+    0030: 00 00 00 00 08 00 21 00 00 00 03 00 01 02 00 00  // ......!.........
+    0040: FF FF FF FF 00 00 00 00 00 00 00 00 00 00 00 00  // ................
diff --git a/tests/data/acpi/virt/SPCR.numamem.dsl b/tests/data/acpi/virt/SPCR.numamem.dsl
new file mode 100644
index 0000000000..faf6729797
--- /dev/null
+++ b/tests/data/acpi/virt/SPCR.numamem.dsl
@@ -0,0 +1,57 @@ 
+/*
+ * Intel ACPI Component Architecture
+ * AML/ASL+ Disassembler version 20190509 (64-bit version)
+ * Copyright (c) 2000 - 2019 Intel Corporation
+ * 
+ * Disassembly of tests/data/acpi/virt/SPCR.numamem, Tue Aug  4 11:14:15 2020
+ *
+ * ACPI Data Table [SPCR]
+ *
+ * Format: [HexOffset DecimalOffset ByteLength]  FieldName : FieldValue
+ */
+
+[000h 0000   4]                    Signature : "SPCR"    [Serial Port Console Redirection table]
+[004h 0004   4]                 Table Length : 00000050
+[008h 0008   1]                     Revision : 02
+[009h 0009   1]                     Checksum : 13
+[00Ah 0010   6]                       Oem ID : "BOCHS "
+[010h 0016   8]                 Oem Table ID : "BXPCSPCR"
+[018h 0024   4]                 Oem Revision : 00000001
+[01Ch 0028   4]              Asl Compiler ID : "BXPC"
+[020h 0032   4]        Asl Compiler Revision : 00000001
+
+[024h 0036   1]               Interface Type : 03
+[025h 0037   3]                     Reserved : 000000
+
+[028h 0040  12]         Serial Port Register : [Generic Address Structure]
+[028h 0040   1]                     Space ID : 00 [SystemMemory]
+[029h 0041   1]                    Bit Width : 08
+[02Ah 0042   1]                   Bit Offset : 00
+[02Bh 0043   1]         Encoded Access Width : 01 [Byte Access:8]
+[02Ch 0044   8]                      Address : 0000000009000000
+
+[034h 0052   1]               Interrupt Type : 08
+[035h 0053   1]          PCAT-compatible IRQ : 00
+[036h 0054   4]                    Interrupt : 00000021
+[03Ah 0058   1]                    Baud Rate : 03
+[03Bh 0059   1]                       Parity : 00
+[03Ch 0060   1]                    Stop Bits : 01
+[03Dh 0061   1]                 Flow Control : 02
+[03Eh 0062   1]                Terminal Type : 00
+[04Ch 0076   1]                     Reserved : 00
+[040h 0064   2]                PCI Device ID : FFFF
+[042h 0066   2]                PCI Vendor ID : FFFF
+[044h 0068   1]                      PCI Bus : 00
+[045h 0069   1]                   PCI Device : 00
+[046h 0070   1]                 PCI Function : 00
+[047h 0071   4]                    PCI Flags : 00000000
+[04Bh 0075   1]                  PCI Segment : 00
+[04Ch 0076   4]                     Reserved : 00000000
+
+Raw Table Data: Length 80 (0x50)
+
+    0000: 53 50 43 52 50 00 00 00 02 13 42 4F 43 48 53 20  // SPCRP.....BOCHS 
+    0010: 42 58 50 43 53 50 43 52 01 00 00 00 42 58 50 43  // BXPCSPCR....BXPC
+    0020: 01 00 00 00 03 00 00 00 00 08 00 01 00 00 00 09  // ................
+    0030: 00 00 00 00 08 00 21 00 00 00 03 00 01 02 00 00  // ......!.........
+    0040: FF FF FF FF 00 00 00 00 00 00 00 00 00 00 00 00  // ................
diff --git a/tests/data/acpi/virt/SRAT.dsl b/tests/data/acpi/virt/SRAT.dsl
new file mode 100644
index 0000000000..f267aabc67
--- /dev/null
+++ b/tests/data/acpi/virt/SRAT.dsl
@@ -0,0 +1,57 @@ 
+/*
+ * Intel ACPI Component Architecture
+ * AML/ASL+ Disassembler version 20190509 (64-bit version)
+ * Copyright (c) 2000 - 2019 Intel Corporation
+ * 
+ * Disassembly of tests/data/acpi/virt/SRAT.numamem, Mon Sep 28 17:24:38 2020
+ *
+ * ACPI Data Table [SRAT]
+ *
+ * Format: [HexOffset DecimalOffset ByteLength]  FieldName : FieldValue
+ */
+
+[000h 0000   4]                    Signature : "SRAT"    [System Resource Affinity Table]
+[004h 0004   4]                 Table Length : 0000006A
+[008h 0008   1]                     Revision : 03
+[009h 0009   1]                     Checksum : AB
+[00Ah 0010   6]                       Oem ID : "BOCHS "
+[010h 0016   8]                 Oem Table ID : "BXPCSRAT"
+[018h 0024   4]                 Oem Revision : 00000001
+[01Ch 0028   4]              Asl Compiler ID : "BXPC"
+[020h 0032   4]        Asl Compiler Revision : 00000001
+
+[024h 0036   4]               Table Revision : 00000001
+[028h 0040   8]                     Reserved : 0000000000000000
+
+[030h 0048   1]                Subtable Type : 03 [GICC Affinity]
+[031h 0049   1]                       Length : 12
+
+[032h 0050   4]             Proximity Domain : 00000000
+[036h 0054   4]           Acpi Processor UID : 00000000
+[03Ah 0058   4]        Flags (decoded below) : 00000001
+                                     Enabled : 1
+[03Eh 0062   4]                 Clock Domain : 00000000
+
+[042h 0066   1]                Subtable Type : 01 [Memory Affinity]
+[043h 0067   1]                       Length : 28
+
+[044h 0068   4]             Proximity Domain : 00000000
+[048h 0072   2]                    Reserved1 : 0000
+[04Ah 0074   8]                 Base Address : 0000000040000000
+[052h 0082   8]               Address Length : 0000000008000000
+[05Ah 0090   4]                    Reserved2 : 00000000
+[05Eh 0094   4]        Flags (decoded below) : 00000001
+                                     Enabled : 1
+                               Hot Pluggable : 0
+                                Non-Volatile : 0
+[062h 0098   8]                    Reserved3 : 0000000000000000
+
+Raw Table Data: Length 106 (0x6A)
+
+    0000: 53 52 41 54 6A 00 00 00 03 AB 42 4F 43 48 53 20  // SRATj.....BOCHS 
+    0010: 42 58 50 43 53 52 41 54 01 00 00 00 42 58 50 43  // BXPCSRAT....BXPC
+    0020: 01 00 00 00 01 00 00 00 00 00 00 00 00 00 00 00  // ................
+    0030: 03 12 00 00 00 00 00 00 00 00 01 00 00 00 00 00  // ................
+    0040: 00 00 01 28 00 00 00 00 00 00 00 00 00 40 00 00  // ...(.........@..
+    0050: 00 00 00 00 00 08 00 00 00 00 00 00 00 00 01 00  // ................
+    0060: 00 00 00 00 00 00 00 00 00 00                    // ..........
diff --git a/tests/data/acpi/virt/SRAT.memhp.dsl b/tests/data/acpi/virt/SRAT.memhp.dsl
new file mode 100644
index 0000000000..3f311e6be0
--- /dev/null
+++ b/tests/data/acpi/virt/SRAT.memhp.dsl
@@ -0,0 +1,107 @@ 
+/*
+ * Intel ACPI Component Architecture
+ * AML/ASL+ Disassembler version 20190509 (64-bit version)
+ * Copyright (c) 2000 - 2019 Intel Corporation
+ * 
+ * Disassembly of tests/data/acpi/virt/SRAT.memhp, Tue Aug  4 11:14:15 2020
+ *
+ * ACPI Data Table [SRAT]
+ *
+ * Format: [HexOffset DecimalOffset ByteLength]  FieldName : FieldValue
+ */
+
+[000h 0000   4]                    Signature : "SRAT"    [System Resource Affinity Table]
+[004h 0004   4]                 Table Length : 000000E2
+[008h 0008   1]                     Revision : 03
+[009h 0009   1]                     Checksum : 5C
+[00Ah 0010   6]                       Oem ID : "BOCHS "
+[010h 0016   8]                 Oem Table ID : "BXPCSRAT"
+[018h 0024   4]                 Oem Revision : 00000001
+[01Ch 0028   4]              Asl Compiler ID : "BXPC"
+[020h 0032   4]        Asl Compiler Revision : 00000001
+
+[024h 0036   4]               Table Revision : 00000001
+[028h 0040   8]                     Reserved : 0000000000000000
+
+[030h 0048   1]                Subtable Type : 03 [GICC Affinity]
+[031h 0049   1]                       Length : 12
+
+[032h 0050   4]             Proximity Domain : 00000000
+[036h 0054   4]           Acpi Processor UID : 00000000
+[03Ah 0058   4]        Flags (decoded below) : 00000001
+                                     Enabled : 1
+[03Eh 0062   4]                 Clock Domain : 00000000
+
+[042h 0066   1]                Subtable Type : 01 [Memory Affinity]
+[043h 0067   1]                       Length : 28
+
+[044h 0068   4]             Proximity Domain : 00000000
+[048h 0072   2]                    Reserved1 : 0000
+[04Ah 0074   8]                 Base Address : 0000000040000000
+[052h 0082   8]               Address Length : 0000000008000000
+[05Ah 0090   4]                    Reserved2 : 00000000
+[05Eh 0094   4]        Flags (decoded below) : 00000001
+                                     Enabled : 1
+                               Hot Pluggable : 0
+                                Non-Volatile : 0
+[062h 0098   8]                    Reserved3 : 0000000000000000
+
+[06Ah 0106   1]                Subtable Type : 01 [Memory Affinity]
+[06Bh 0107   1]                       Length : 28
+
+[06Ch 0108   4]             Proximity Domain : 00000001
+[070h 0112   2]                    Reserved1 : 0000
+[072h 0114   8]                 Base Address : 0000000048000000
+[07Ah 0122   8]               Address Length : 0000000008000000
+[082h 0130   4]                    Reserved2 : 00000000
+[086h 0134   4]        Flags (decoded below) : 00000001
+                                     Enabled : 1
+                               Hot Pluggable : 0
+                                Non-Volatile : 0
+[08Ah 0138   8]                    Reserved3 : 0000000000000000
+
+[092h 0146   1]                Subtable Type : 01 [Memory Affinity]
+[093h 0147   1]                       Length : 28
+
+[094h 0148   4]             Proximity Domain : 00000001
+[098h 0152   2]                    Reserved1 : 0000
+[09Ah 0154   8]                 Base Address : 0000000088000000
+[0A2h 0162   8]               Address Length : 0000000008000000
+[0AAh 0170   4]                    Reserved2 : 00000000
+[0AEh 0174   4]        Flags (decoded below) : 00000005
+                                     Enabled : 1
+                               Hot Pluggable : 0
+                                Non-Volatile : 1
+[0B2h 0178   8]                    Reserved3 : 0000000000000000
+
+[0BAh 0186   1]                Subtable Type : 01 [Memory Affinity]
+[0BBh 0187   1]                       Length : 28
+
+[0BCh 0188   4]             Proximity Domain : 00000001
+[0C0h 0192   2]                    Reserved1 : 0000
+[0C2h 0194   8]                 Base Address : 0000000080000000
+[0CAh 0202   8]               Address Length : 00000000F0000000
+[0D2h 0210   4]                    Reserved2 : 00000000
+[0D6h 0214   4]        Flags (decoded below) : 00000003
+                                     Enabled : 1
+                               Hot Pluggable : 1
+                                Non-Volatile : 0
+[0DAh 0218   8]                    Reserved3 : 0000000000000000
+
+Raw Table Data: Length 226 (0xE2)
+
+    0000: 53 52 41 54 E2 00 00 00 03 5C 42 4F 43 48 53 20  // SRAT.....\BOCHS 
+    0010: 42 58 50 43 53 52 41 54 01 00 00 00 42 58 50 43  // BXPCSRAT....BXPC
+    0020: 01 00 00 00 01 00 00 00 00 00 00 00 00 00 00 00  // ................
+    0030: 03 12 00 00 00 00 00 00 00 00 01 00 00 00 00 00  // ................
+    0040: 00 00 01 28 00 00 00 00 00 00 00 00 00 40 00 00  // ...(.........@..
+    0050: 00 00 00 00 00 08 00 00 00 00 00 00 00 00 01 00  // ................
+    0060: 00 00 00 00 00 00 00 00 00 00 01 28 01 00 00 00  // ...........(....
+    0070: 00 00 00 00 00 48 00 00 00 00 00 00 00 08 00 00  // .....H..........
+    0080: 00 00 00 00 00 00 01 00 00 00 00 00 00 00 00 00  // ................
+    0090: 00 00 01 28 01 00 00 00 00 00 00 00 00 88 00 00  // ...(............
+    00A0: 00 00 00 00 00 08 00 00 00 00 00 00 00 00 05 00  // ................
+    00B0: 00 00 00 00 00 00 00 00 00 00 01 28 01 00 00 00  // ...........(....
+    00C0: 00 00 00 00 00 80 00 00 00 00 00 00 00 F0 00 00  // ................
+    00D0: 00 00 00 00 00 00 03 00 00 00 00 00 00 00 00 00  // ................
+    00E0: 00 00                                            // ..
diff --git a/tests/data/acpi/virt/SRAT.numamem.dsl b/tests/data/acpi/virt/SRAT.numamem.dsl
new file mode 100644
index 0000000000..b6e59b1af0
--- /dev/null
+++ b/tests/data/acpi/virt/SRAT.numamem.dsl
@@ -0,0 +1,57 @@ 
+/*
+ * Intel ACPI Component Architecture
+ * AML/ASL+ Disassembler version 20190509 (64-bit version)
+ * Copyright (c) 2000 - 2019 Intel Corporation
+ * 
+ * Disassembly of tests/data/acpi/virt/SRAT.numamem, Tue Aug  4 11:14:15 2020
+ *
+ * ACPI Data Table [SRAT]
+ *
+ * Format: [HexOffset DecimalOffset ByteLength]  FieldName : FieldValue
+ */
+
+[000h 0000   4]                    Signature : "SRAT"    [System Resource Affinity Table]
+[004h 0004   4]                 Table Length : 0000006A
+[008h 0008   1]                     Revision : 03
+[009h 0009   1]                     Checksum : AB
+[00Ah 0010   6]                       Oem ID : "BOCHS "
+[010h 0016   8]                 Oem Table ID : "BXPCSRAT"
+[018h 0024   4]                 Oem Revision : 00000001
+[01Ch 0028   4]              Asl Compiler ID : "BXPC"
+[020h 0032   4]        Asl Compiler Revision : 00000001
+
+[024h 0036   4]               Table Revision : 00000001
+[028h 0040   8]                     Reserved : 0000000000000000
+
+[030h 0048   1]                Subtable Type : 03 [GICC Affinity]
+[031h 0049   1]                       Length : 12
+
+[032h 0050   4]             Proximity Domain : 00000000
+[036h 0054   4]           Acpi Processor UID : 00000000
+[03Ah 0058   4]        Flags (decoded below) : 00000001
+                                     Enabled : 1
+[03Eh 0062   4]                 Clock Domain : 00000000
+
+[042h 0066   1]                Subtable Type : 01 [Memory Affinity]
+[043h 0067   1]                       Length : 28
+
+[044h 0068   4]             Proximity Domain : 00000000
+[048h 0072   2]                    Reserved1 : 0000
+[04Ah 0074   8]                 Base Address : 0000000040000000
+[052h 0082   8]               Address Length : 0000000008000000
+[05Ah 0090   4]                    Reserved2 : 00000000
+[05Eh 0094   4]        Flags (decoded below) : 00000001
+                                     Enabled : 1
+                               Hot Pluggable : 0
+                                Non-Volatile : 0
+[062h 0098   8]                    Reserved3 : 0000000000000000
+
+Raw Table Data: Length 106 (0x6A)
+
+    0000: 53 52 41 54 6A 00 00 00 03 AB 42 4F 43 48 53 20  // SRATj.....BOCHS 
+    0010: 42 58 50 43 53 52 41 54 01 00 00 00 42 58 50 43  // BXPCSRAT....BXPC
+    0020: 01 00 00 00 01 00 00 00 00 00 00 00 00 00 00 00  // ................
+    0030: 03 12 00 00 00 00 00 00 00 00 01 00 00 00 00 00  // ................
+    0040: 00 00 01 28 00 00 00 00 00 00 00 00 00 40 00 00  // ...(.........@..
+    0050: 00 00 00 00 00 08 00 00 00 00 00 00 00 00 01 00  // ................
+    0060: 00 00 00 00 00 00 00 00 00 00                    // ..........
diff --git a/tests/data/acpi/virt/SSDT.dsl b/tests/data/acpi/virt/SSDT.dsl
new file mode 100644
index 0000000000..cb220787b4
--- /dev/null
+++ b/tests/data/acpi/virt/SSDT.dsl
@@ -0,0 +1,205 @@ 
+/*
+ * Intel ACPI Component Architecture
+ * AML/ASL+ Disassembler version 20190509 (64-bit version)
+ * Copyright (c) 2000 - 2019 Intel Corporation
+ * 
+ * Disassembling to symbolic ASL+ operators
+ *
+ * Disassembly of tests/data/acpi/virt/SSDT.memhp, Mon Sep 28 17:24:38 2020
+ *
+ * Original Table Header:
+ *     Signature        "SSDT"
+ *     Length           0x000002E0 (736)
+ *     Revision         0x01
+ *     Checksum         0x3F
+ *     OEM ID           "BOCHS "
+ *     OEM Table ID     "NVDIMM"
+ *     OEM Revision     0x00000001 (1)
+ *     Compiler ID      "BXPC"
+ *     Compiler Version 0x00000001 (1)
+ */
+DefinitionBlock ("", "SSDT", 1, "BOCHS ", "NVDIMM", 0x00000001)
+{
+    Scope (\_SB)
+    {
+        Device (NVDR)
+        {
+            Name (_HID, "ACPI0012" /* NVDIMM Root Device */)  // _HID: Hardware ID
+            Method (NCAL, 5, Serialized)
+            {
+                Local6 = MEMA /* \MEMA */
+                OperationRegion (NPIO, SystemMemory, 0x09090000, 0x04)
+                OperationRegion (NRAM, SystemMemory, Local6, 0x1000)
+                Field (NPIO, DWordAcc, NoLock, Preserve)
+                {
+                    NTFI,   32
+                }
+
+                Field (NRAM, DWordAcc, NoLock, Preserve)
+                {
+                    HDLE,   32, 
+                    REVS,   32, 
+                    FUNC,   32, 
+                    FARG,   32672
+                }
+
+                Field (NRAM, DWordAcc, NoLock, Preserve)
+                {
+                    RLEN,   32, 
+                    ODAT,   32736
+                }
+
+                If ((Arg4 == Zero))
+                {
+                    Local0 = ToUUID ("2f10e7a4-9e91-11e4-89d3-123b93f75cba")
+                }
+                ElseIf ((Arg4 == 0x00010000))
+                {
+                    Local0 = ToUUID ("648b9cf2-cda1-4312-8ad9-49c4af32bd62")
+                }
+                Else
+                {
+                    Local0 = ToUUID ("4309ac30-0d11-11e4-9191-0800200c9a66")
+                }
+
+                If (((Local6 == Zero) | (Arg0 != Local0)))
+                {
+                    If ((Arg2 == Zero))
+                    {
+                        Return (Buffer (One)
+                        {
+                             0x00                                             // .
+                        })
+                    }
+
+                    Return (Buffer (One)
+                    {
+                         0x01                                             // .
+                    })
+                }
+
+                HDLE = Arg4
+                REVS = Arg1
+                FUNC = Arg2
+                If (((ObjectType (Arg3) == 0x04) & (SizeOf (Arg3) == One)))
+                {
+                    Local2 = Arg3 [Zero]
+                    Local3 = DerefOf (Local2)
+                    FARG = Local3
+                }
+
+                NTFI = Local6
+                Local1 = (RLEN - 0x04)
+                If ((Local1 < 0x08))
+                {
+                    Local2 = Zero
+                    Name (TBUF, Buffer (One)
+                    {
+                         0x00                                             // .
+                    })
+                    Local7 = Buffer (Zero){}
+                    While ((Local2 < Local1))
+                    {
+                        TBUF [Zero] = DerefOf (ODAT [Local2])
+                        Concatenate (Local7, TBUF, Local7)
+                        Local2++
+                    }
+
+                    Return (Local7)
+                }
+
+                Local1 = (Local1 << 0x03)
+                CreateField (ODAT, Zero, Local1, OBUF)
+                Return (OBUF) /* \_SB_.NVDR.NCAL.OBUF */
+            }
+
+            Method (_DSM, 4, NotSerialized)  // _DSM: Device-Specific Method
+            {
+                Return (NCAL (Arg0, Arg1, Arg2, Arg3, Zero))
+            }
+
+            Name (RSTA, Zero)
+            Method (RFIT, 1, Serialized)
+            {
+                Name (OFST, Zero)
+                OFST = Arg0
+                Local0 = NCAL (ToUUID ("648b9cf2-cda1-4312-8ad9-49c4af32bd62"), One, One, Package (0x01)
+                        {
+                            OFST
+                        }, 0x00010000)
+                CreateDWordField (Local0, Zero, STAU)
+                RSTA = STAU /* \_SB_.NVDR.RFIT.STAU */
+                If ((Zero != STAU))
+                {
+                    Return (Buffer (Zero){})
+                }
+
+                Local1 = SizeOf (Local0)
+                Local1 -= 0x04
+                If ((Local1 == Zero))
+                {
+                    Return (Buffer (Zero){})
+                }
+
+                CreateField (Local0, 0x20, (Local1 << 0x03), BUFF)
+                Return (BUFF) /* \_SB_.NVDR.RFIT.BUFF */
+            }
+
+            Method (_FIT, 0, Serialized)  // _FIT: Firmware Interface Table
+            {
+                Local2 = Buffer (Zero){}
+                Local3 = Zero
+                While (One)
+                {
+                    Local0 = RFIT (Local3)
+                    Local1 = SizeOf (Local0)
+                    If ((RSTA == 0x0100))
+                    {
+                        Local2 = Buffer (Zero){}
+                        Local3 = Zero
+                    }
+                    Else
+                    {
+                        If ((Local1 == Zero))
+                        {
+                            Return (Local2)
+                        }
+
+                        Local3 += Local1
+                        Concatenate (Local2, Local0, Local2)
+                    }
+                }
+            }
+
+            Device (NV00)
+            {
+                Name (_ADR, One)  // _ADR: Address
+                Method (_DSM, 4, NotSerialized)  // _DSM: Device-Specific Method
+                {
+                    Return (NCAL (Arg0, Arg1, Arg2, Arg3, One))
+                }
+            }
+
+            Device (NV01)
+            {
+                Name (_ADR, 0x02)  // _ADR: Address
+                Method (_DSM, 4, NotSerialized)  // _DSM: Device-Specific Method
+                {
+                    Return (NCAL (Arg0, Arg1, Arg2, Arg3, 0x02))
+                }
+            }
+
+            Device (NV02)
+            {
+                Name (_ADR, 0x03)  // _ADR: Address
+                Method (_DSM, 4, NotSerialized)  // _DSM: Device-Specific Method
+                {
+                    Return (NCAL (Arg0, Arg1, Arg2, Arg3, 0x03))
+                }
+            }
+        }
+    }
+
+    Name (MEMA, 0x43D10000)
+}
+
diff --git a/tests/data/uefi-boot-images/bios-tables-test.x86_64.iso.raw b/tests/data/uefi-boot-images/bios-tables-test.x86_64.iso.raw
new file mode 100644
index 0000000000000000000000000000000000000000..bd43ba50a3b25bdf4108cf920a26acc93cc45555
GIT binary patch
literal 425984
zcmeI*4R}=bo#^p1Kp>zvX%!2$>On)BC?OL-Bq}zO7dS&FBo9eMiwa{hfh<WToy-Wh
z+J<J*WsGUPyLwx<-CcWc`;go9-g>uIE$g+xC@;QTQCn;4R#CB?bg+Wk23)V^{(k42
z$-7n2K5h5;&Z9YR|JTp?znv437zQ5%5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~
z0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**
z5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0
z009ILKmY**5I_I{1Q0*~0R#|0009IL@RXJNd_^837+6zxrTOlkvhuZ6mG6Gp%t#(|
zcHB+o?8L3dFg*Idk)3VKaxTw0V<gy_x_h26*EuuS$kv@~W2HwUO`D<-HNMH`Pb#pg
zVoji?Dp2WPRbk4GS-fnSuh3dqW3CJYD{8K)sja9q%hp!-Ypd3pd1d)#QE~ASvtrRz
zRds7tmHUGgnUfb6EcW@9nX4C7SNPY~RIMpoy{M+l3IwH9uCl}EWesz&DGl*+fm*Y+
z!vBYw;~z(5v9GAuw{-DEMMW1a^<CuiWluQa8}~6Lgzy-DoU)PXUy6V;rtuYlKL-J4
z{;vp{GDZh#tIV3}in74UK$*WbP_^cL7jWMD4oN@+5I_I{1Q7U>3k<o>|9|p=PyhrF
zKmY**5I_I{1Q0*~0R#~EqX~HI@3G5w)A=BP00IagfB*srAb<b@2q1vKe_8?i$$zf?
zb9z1qAb<b@2q1s}0tg_000Iag@Sjy+;?LM`oi^{3Wm(z7KV$!%Av`|gEQd!n`g8e)
z;ie&H_4u^XKvm6#T7T)HmHygGi;RVa`{RQ1GC$WpHvFv8s;b&W@)L*>mJb35Ab<b@
z2z>Mcp4Z<!&F?kVeQ&3Ixg#^fzk6V=Ab<b@2q1vKUyMNdvRhlWG`25l48@Eo(>%r$
zV@ii{!ef|5$*4Nye>wfsrTP?KAW!k~o89C&zG$)hzOB>FeQ^Dacb(T4JLQUdPW#sx
z#uGW$rjIT@{KT10%uByhySb^|l>b^IF*9Ud7m36|*ENUDhNku{i%he+IUH&an@z3l
z;pmv_jm?p^w(Vx9wPE(GwrIG$U3RydTf*DTSj3D)<;tc|Q>(dX(IRuU`<nwtm6Y8N
zB2f3e6GQsR+Gxz^FlOFqoN{#NgTyE7U%CMI|1bRxez@|F8r0=?tUh$@9c%88-}<Io
zC*6vbfz0n!%o%%KUJ&y^009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~
z0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~fsaH$eiKXPGwILw
z%Wql9e8ydOve#eL>IN8hed<S2J`zCy0R#|00D+HQU}SnXC!N3Feg1cT|Buf9S1wy>
z>hB2}`}={W86}r|^yMW*1Q0*~0R#~E@B)>eKlwB|PCn{z%<2lmX!y$5cLhg{MaC(z
zyx4e=VU)PPW-#~ck$sJ9y8r9`=#Q>BGI8GTZ-<qI&-?xyDwc9d=xo`3>V3z0?|_S9
z;cYPqmZ@`QJ36K*mlrjJVj(%Hb-eT9k?rVkC5F+rC>m~#)H`L(lv%f<KN7BV^zq5;
zcW3=#sbTcjSUZkrk%HZ`zr4&ate&fLOM=PrTwky!YpW?IlC`;cRx+4t?lvTtmHc^X
z*%`9!&Z^hoU45~STiqokx--*C{=!P`8LG~{IqL>VyEi8`BlW2>4I@3X*NkPQ?$&ra
z9@gB}_urhgPJ(nE^7LO}CI4@Ym3&4DvRn(2Oyq8~x3}bOmTl^3`8BtRzS!AT*YokY
zQmQx4m1KHm&y>RLzEo<SDwY7L0{PN)G*)8u#I)?U*l7fk&+XPfWMn0e1*HmksrjeN
zL3dWKw9oNHf5R!d6i`dC{#q&F50@Cm!IYM<YxZ|#-+Oyszm+^;C7-nRyq+CMzF9P6
z6(4P%XBGeKrZWPaCp<f|W7EoaTArY%&l=j7e!1UYYbB4?S;?PD1>dqdkNEb^FoHb|
zxeJrOk?bmyhf+0CqVC$<g;Jy43#3#-{Zg=-&-mER)8o%uoe%r0<a6t<@n7A)PI3(<
z4^$K#5U*#0$%iC0(J0TY*1MIRnjsPre(tp!`u*zy$tV3+`0M<&f#mP%g2^XbUP~#u
z2Cd`+xd$b<O6y;Vh%Fu5YsQzRn%=RY=UJW3bt!4q<AS}rR6ycqq?Zg|h|fqbmN>D~
zQWrUKF0AYtip?18FNx=+n<d(e`4VllM3ZVgevaIu+ut4<D(V~f+Q$q-g2sQEextm*
zAh6glD!N{a&)%2F{f-nw!W-%9Q!hzaz2TL`N3Pc!{)}m-laO?F*GQO@B?0u}{`6gv
z%8YTTNF|N5FZIoFseICDHkWHES86I#GN}yIOWPUT=ZUpTYCn{}T%~0?+mb@vElCZ@
z?^V|QTV-DhIIvs3q*mCeSM<a^vApu+8^Pq8sn?`#!Qzx%<a*OC@>4SQ?XK6%ZvTHn
zLvFZ7+;IOmkQO}2a;2N)S;JXM4w)?N+N@4JA@LJ^WAb}`RDNG_@(XExO`6|=k^Fw(
zhWqxwUrT<2`^?yk%C5t)&!%U}#+zuAlUDaVc8kzVzag3HM;c0ONw;%j0z;1nyx)J=
z@*K6K&1i`9+%aJ#p0+6cXd_W8kKcRmCt|bw-UnBC_8iJiPbun~c`(@ht>KLBw}VTB
zZ&>F$)S7s<w$YwM?peB(<NcbX6vI9*gUq>=UC(=OPvoZLeDKn5*@cNN?0CRFVZ_es
z__Zl{XlwE&zJ8h$S92<Q+B*L4175FT?0BVQzMStoG25Hio^9_fh<W9BmbdHtnR0`l
z(UVf64vD58|8BhrdZyPtmVGIZ)-mAOXASM2tfHeT)p?@8n^+)8Y`s`AxxkxPsrz%J
zn|l*^a<Am1=}nv|C)3rkf1x+wk$u@)=uOPjvzN$z@m5p57I{14&b39}#G_iM&J#Xw
zqDDiVA^SmZ;*fK;*_(LQ*=xwCdJ}^ZZmT8XYP^Z3Wai!~U0rIOm?49Q?1{(UPnY_a
zIfo%{;`<UvF4TJy$DO?^y@@*{kpa^Q((X+pHJ$S%P@6Y#y;HWRoXxT$Zt^DPPLtrr
zBv}a(_a?5BAl@$@l9O`0&6}vw)Si~h9ZzNtd{>)d=VP9MZ#g?t2L8_3nKp2<vy(lr
z!`aCh*d{xJ`?BK~c04)7k`6mZZ^}-sbN6x`;q+dm&#}5I>}F&iEzoeE%7hDc=UAP6
z*~+8Q20kMR2D|H|V2@-EoTb^wbk_N(DVbQ_@?VT@5msl)C*_~Hwba^jTW*KMo@IFs
zYD&8QL0U)pp5TQ}f01mwUDuuJMAu}rUXr4ge4tx~8!dqL0{vtnRTMovaGP!Y$^ns+
z3O#0aJk~MT-ysuq{8X#+rMEktC`nJ1BP+ST^H5GaR}JP_-48fcJzKM_`g5)1J@#RG
zp;dp4kv?y1nC^3}PB9QubxLPj-PhPiR`Su#m#0~s|Ka(U3oGUw_8<R=zw@v;xMxba
zx8mi&Jst77K=MFf&%o63o%?e=I}^G8U82WkNugeJyHwZn+s_<)q$K_^tMkAV>-h7#
zb>Zi~ry#vlN}GJaK3tGfA|@*g{pu}$Aw5qzPJD(e2DVR0KEFFhBJ6ci7WW67;Uf7$
zFnL?<b8^W_-jdrV+hForxgD}iZING_9_)55>R_ZNt!^h!W!KYElCI}R-|1M6b)h>5
zjk>!UE7*OPo!f)b0c3OuBnJbYN37$6f&6E!uBU_E@;7uO)Q~zVJz!Vfh|Sf;p(kZL
z8rm<xEst|tkvJSX#Ts%B0z(g3$;bTv+tcx6&fp#y9jfFW5AN}JyH@JXBU8MI6|&Ru
zYPRHao6|%V>WL?(xwp<~)4}e%(M>#^9qewgZ(XG{f?2_yf~E5J96NsfRz=aEEG#OD
z4of4<XjXd5pB?y_c2o(Qt22b&eeZqKwNd71Pfs2llX#BzKIv=Hc`^Z{G?H*8Jtu=;
z&s}!pft%cvr76C5S-pw-L^+ro$lO=GpM6rCRMjam3inh_^C$PFPIdODmwWF!lp2zz
zBm;Au*Lz=IuxIv5QqhW{K3UAR>Dkj{XS43imYt2dbE@oIsXM30PPOjLk{wHTX39>9
z?g*cA&vkuVo@~gKsXvx$%H`!!w%woB0@V%<4Gk11kJHZ_HmiHO)wx$>+<qo~$hFd0
z;CC_$c<-&w$|Nu4z0N7``1(pVS{MmDO>_0$mm?dW98Q&Op7-98DRwEOd}iv=-%Clf
z%Z=;JGsgGk;gW1$VC|Nrkbb^o&40-1SuMlyo95O6S;ZCPYm;w&DlaXa^+c9T9X)gA
z+2<BM6ui`7@phF<O-9w?-nrULq%cBn7i^OHq|TFaPHZRAH}wW*`szTXr2Ih!Rw?8x
zZHPKzdJ{jEuOnmTgf>}li9DqY{6_DZw8jrGv(FyM;_6XZ4Cu7>Zp~jyH1Nd_p4X`A
z%o>%~1iI0~mvr$Bb0oXBwHcgr)xN1W!kwlDzA6WkRc&mxciHd*T@rXg0i{sS%cEfW
zrpd1SP_NWaxRS1(a7vQt(!k4P=SJC?5MXqPCRxKJpIcx!>kyAMPacZyab}Di-?6ub
zM;8G1*p1NIk+9F%j{=<u``nbleL3+@TFDmzJr$lEzcR7~c+{FP9k7l&EjYbF=Yc+f
zm=d=-mK(9EV6n4iXkYAo@Z;80C%ru{XU}}ps(;$*awex(US=}z-fKxo9!eaD?@iyM
ztMUWsQ#C71QrdxiUpr(QEIt_YmdPsQxdomnawt>aA-%jpA6vAY9+ji`wU*3&x~3?X
z=I|Za2J@e`k_TmZ-=|ZNE|ujGA%5}jiuwW_`oEz8lP~_rlx?}psVUi}jvdv<7v~_5
z>`zavD0;pkalo7SFLG7qvt`41j7oXFEZ}3Z2pdi`;C=9Mdxf34QxcSfw1kHw3F|_~
zDU-^?VtTuNF5&cvAaPJ5j3oLapB$&EoCF7cU|$@c>MeHtomBT^DzAKo>40f1<326#
zg_)!)llwCcL2)>txeUCnYYOK;iZ5$2t$cORbBoQXw_j5-;umXDi-)T-Qrckxf9Ij8
zsXHV+^~`otn(j2-K=R-GI}U5vf|oil(N9=A9<Xn#-f(YMt2BoJQ@+S#RbeD_W|3@V
zRiyV>&Q*FW&jWUu<jGIhb9Mzwv{aYwc}eCZ=bi+TCuZ)ES~`zC^#`o;Z?T)dwkW&8
zCw}WJqVzxt8k~BU-54{AoXVcno>)9Ev^UWC&eV9b98Rh54F)g0CAUK&w6E8JNOR7R
zOJU+GwGfwQXq0%NhHy({mqfiaT4nNAHdE9t#i-_2nS7x#`RKq4_7j5J<)nqkp}*rM
zkNCVHy8{RGvfBr=g&mS4Gx<(zVezxIV6ti(ZmxD8Nd5jbx2b-B>B60j1`3V|UuHr2
zyCeEwpIM5=7D#q+Q(k&}X|`0qXZF`*vwNQmQ>hvWm<g6Cj_dNGyyq%9kV(?=ypXy=
zikAr-Og^V;Si6JVVI6-fJzFQ$4ypFQQYneN@Uo=I=u0O5HU4Y;8~XK)k-l!y7fm%m
z>5rX9@=`&&oUwCC^hJrjmHCvsxRL^{kj-u#SyKO!mc*X=Z6KMFrwv){?Jm)?5h;nh
zm&#jz?S^YKC0Qv2bFU2c=okBy+*f6_Apw^6*R7Kboi~A+;Xg~E?8lZzQg`ZZ&l*`i
z?MvNe?|)AA_ojC0e(_%KZGBep+uqycm6)B+{Dar@uL~yk*~!U!#m*yUsz(YZ@032}
zzC%36DSWOLzEF$#``_55F!c@QvGvzV7uYaxr(BT8Io7`N+-%vG<|sSz_z@eFoN`89
zTxxL_IvI%1-Z4JQHH!|3ocdeIqNq;?aDA02ZK|hcsIl|1l}2o~ReZ2L%NpuSzb?a%
zQ;U8LdLVX=JWIsp1$#<|Ixh3b!&9)huYJ0PJSuM@5BB$0cJ=v_Psx)*a=$!-96#ny
z=45u|)o$`JyYjb6&ZFO;o-Ye!xpk}OO3~~^>+yl1p~mj1lC!yfB-&Nuq8*VXwM08z
zqxEQw`Xt(fSm%$6b*~fam!FVWeH!a#iDhM?^*^rp+4smw&Yo+^^_S(kl=eKUbHxlf
zHtd(a0}@^G9@12nXe#BJO7iR%<gH%n?vWTz$gvaSvr<fn@r1@G))*hR^DWzGCA03-
zST~Hs`r2@;vz=I9*I1v`SpSxC8b(py`hIz*ntVrJtI8YQ-@C;wNiBBLnQ!%!4Ov~!
z*`4ESPBOpMWFFLHZr5bwiC~7j1nt#kyW=e*M@Dk#2g|)*X_qq<MXw$2ACmV|!Jhgd
zzxVb>tUc*d?Jg4V{4(`~#831Edaf>zC9%B87M|kt*0ZG_u5z;K)T|!YtS*qCb{Kil
zeV@GTEIJ^=gS>kjs?O7QPCIYV4ku|yPkcoh+3{xrp2vgpUy<o0kpH;<_`_NTdD9)(
zbL7;3=iyjLl4+A<g2|VMs(k_Jc7D4oF{`p`aC=$mr_RxNKa#vVQqMR?XUNmR6;h(g
z<WcARC$vyKS@m*GZpyQ=+}{0jE$mIdmcs0LRVw-$tLM}UgZVG(_ZpUa6CH9@avnTe
z-oRG-tmGr9M<uAVi@y@a?cvn5W3s(^B-<AyZ5e}{Z10pflI;;WC)sY$Y+u%Fr_1@Y
zDe3=LNne3dqkyimXNaqF<u#Ia#*)m?*uU<_G7uX&tW>9t${U%_%gc5h(j=WVl1}nX
zOWp+cl;`FRRhJ0$_L(|z<Vh5J<d8>k8RbT&(I<C8)2Pv2Dv8XrD{EQF{?spjWmmRR
z-*Z^0FE~|qjU&#H8ox0|EBl;N*&j$8?ZQ&wx8%H3xK%dmcQ2VLL;V@<#r5`ZZgrPl
zDgEGX`9@eO>SU$;?Vt1;V|ITlb;PPv%pM?r@~S<0$q3tDQ}ncCaifHlEWUe|Y@Fh+
zmNP@QmT2pi8hp}8*3uf3rM~ZG;*|7%I!9Uq-{=|~lT0M(6;A2PH1mLzD78+`ryi9r
z?zk}Y$xJ!F>XdV?23@T|7fL8akbAejfAoxEcF%cgo?*yv>MgFxw(ggG{d7b>V}IM~
zSn8NCxx3rtU5dTCPiBMEU)e_|G*y|!WE2P_pY_YTt+z7+fle@*ua2?$W<{sR8jaL5
z`z|fmW0Ftm?+!~Hrn{kZD9}*vIK}^phO#?vi-hXVS}27p@7d_7^c)T*UrO!Qw|_#q
zUoL7MLTble@8n@=?58x3LJ1)Kv@&_D(w>D=Me@2!@(Ls$j?J+vG%!@BGuZuF^`O@}
zBr|O4CQV-3P4du4Q@7`TZQJr<L1yam+>JUGZBCUBmtn{*!xrfhQqPCwmf7EGOa1dJ
zl3I6Gg|>?xiR*j=vAeA#)vx_Z`hXZZ%Zo{pe^p{TRdkX+)k!|A$>&MSN(G(de<ea=
zlCMrRj3i$q->2)&dPu``Zu1$jtDIgs=T1A;>~9HJ>MVO0%=!m8W%t=1N$S#1WvuDW
z>ab%zlrvPlQLwh1DW~Fg)Y@Em6ILR_k$#s`>msc|z8{oh*s<-YVciwloqee%-%|QM
zxo`2$Slx3LI9Xq&S-&GCO|94b@1LnRLR#TKgLa$ltkWcz%mnf(uIRO*q2QLb&9e4v
zYYTV=t*#+&;=f5)xu5bDUUuwn-`r~N$eF*<OWkw+k24({x4YGwGB#MrW_cO3&>qv~
z{F8Hanv|k4IiTNvJY6p&|5{cJTjmCn_0kBo<fR&=*>q=}C4+TxYWLLR2jy#4jvO^6
z%ceDUmrXl<(Amp+TN0Ap>2h+qeR6tHUpf{n9`ts$Y5jWUJR%{q6P+XP#pK3Lx4OTW
zBM-+tbMz+Yg{<KVtvP9*T&Q<19Fg}z8Y9@<n3Mj5T==|u;Th+`v|x9uyzt&Tci<(h
zL(iP3T)+8@DLZSYX5TFTAAef+WUVBxg0kZ;rhX&MT;@CZo~o`zoz<>ALOeUXQ2N4g
z#n_kH@RFUij9o)AcKy3^<c_|_oFg5(VlsovO7TY`-;ugV&P$KpA?Kt&{8(N{>^>qF
zQr|qJY07t(f1djCe>lk-W0JpZO!9v_lKh;}$v-Q}Nb=`7$#2x;U)SU>8%e&wP5#?*
zO5ohmYq{jeE&Y;_<nNVvez^2oo#gxFoRr?9$-kk=|MEpGvV8O4jnpprmZFYArB3oy
zI<T)!X}Ly{|A}*?IP2`>-KlA=oVSOVo~(^d7XK*gV!02ye=oTVY}H)c;kAF@e@I6D
znwpBWwdVQ-p=-<qp}YkR`IpFcma#GtZ3)H9`76x4yz3)P4dw;;rZ3+p+#G2M7dD6L
zBkhIl(fY!8TYD@T4z(11A>0x#j7D183&Rat78h1FgsZn~DhxJV7Y#+X7uJOvo65u2
z#W%@`vPf%HJXV-FTvTtA#v2>M(T^&xQu(9F)zPNbnB-NM*$K49!qL`Hv*fm}sUf!6
zyv$s(+{jzm9NN@we%kzEo^PA4$h^^%&2oFQ*k^B+`||V66)Q}ikvAMz!#F4N%^PnN
zpG+#gZ4%rLop0n#Ua8>=HBC2!&C5i0!=~!`h7Bv5wuKw~vC?=`bHfHXQ5o9S)Dmy;
zx7Rl{)x@MWn}XriO|i}SA25Ns)~5PMLwHOQ<^^WE<Q{1>^U5s$+M;Fo=7naFBs^S^
z_vX;h!@=JVh(s8HA6tpbMZvkI#gNhkTI-|XmT+q<-?*$b-rQ_T8xw)cjoF6$J!|Jw
ztf?h@xx2q9-qdip+{{Uv?AW~CQ+zToNkRZy<qp)y-FD2RKREd<e2-f=S%S9rd*A)Z
zqDomZjlwO^`zuB!(nw2spM{thG2d9=TfVJefp6*Xm&Mx__!jGtvon4x5f(QTx?h$y
zn5OPtqF*$rD~+0XeZBk{b7Ng7+A0M!>sq(8Mz*$^tD3jBZ5}>b9&QfD!sg0QQ*%5T
z9zMM;+BC^oxBJybB4$lXsJVGKcug!Me`38{|BYBM5^69jqR~jy2((@wYL-#1Ius4H
zNG?&MuC+bh))tAz!VN~LgmV+rerv3ezt_Gt9BSBZl!vcxst>z~I3=l$Mq=T5jV8mK
zDZOlMxIGe&N(GH8BF*uZuvr#~M&oU<%;8FD;*z9U8E$9_8TMDResidGlO&-zt&GH5
z8w|fqWR{0po9y$NY+FSBHoQh{3AMEeoKY*i!i>aYcD(jj$S%FVSw`rF?b3_f<LjJS
z1<ER`-ICX?tj+9d@gwz-=3$unNK0EN)}()!{)%w4y(!Xa)P(EfqQ2d{qAAiW*W^^$
z+A=prMQelB+Nq5cG90}=++gM{F3vYbj+V$=;s#vV)Epl64@$M;p-o|<Omda!q^Vuv
z+Bd7wdu~FeFvIW_Enc$pqGcB^FZP#~l~=5kfv7I9rglxfDZNx`Sk>s<DjB#xt>d{2
zDfR$<l2g~D(}_$Yqq22+pfkpf&vjI=$%|FqbbV8M#Gd_pCp*1r8FjXkwCa{E-L_=$
z+Hgy#skI>-wF~O<I0bZ2eD>!fpwVn=LXGYWGdjESaC@w&)ovY=<vD!UYV6K2X^_!L
zj9ZE5nCwKHctNAd1bWf~Y$m>>EX_18b9lMw<S6q%zBE{8K`~PIH4y=>x;`9j4z-zf
zB)9eprPJC4lBr^N@^F$`IFh702RqaJNf*5=(zaca(6y8nJ##pw=sKC{C_4$9jEa+-
zmhkRe<HY<EOnD6rQJEknmd)>62uNGsrh>Ar%gZco+-n7w>rTE|IK1k~8+&EF?;2fJ
z<+=3spfRR@$VF*RPWQFfZL(r<0~eZ$<?1R~fJ`jgaKm}eMaN`w>|_lr6Yl-AvgNWu
z`LK;Fli$dqK`NU$`GJ~5CelbsA7c42f1*vG{k=@whnNhBJ9=neaaWyAv&k%p^NkCf
zpwgmz+lqYh0HD3t?b7bupU{Ioc*%wr<C%=5bB!yiQ;tkYKkOV)Cr?35n_9ySGFER2
zw8&g*g<2bAavxWjlg&pT^-3d=SdGm4vNUS14av$uXNh;apyjBkosj*e(wYh9s-?8{
zAaK$%r52(x+!Bdy_czPG{<mi*E!-sMq+GL{r{fLsqnjHl)~>BuYcDZk@pf~CxgeT9
z%a}jmigpn7)yEf^(?%T>$it1h6p^)Kvs0JLWyL9VGDb>c4=_4n__nPa_o)j8%>pyC
z+Hn`8_M_V-d4&H6@88;Zt3F>%dJEs>nrNNm0?T<fplzi(6x%E}!&y`7L1r!LzCRch
zMzU)e2{$HEU973ODc0mPlrb+a*2t6a1g4QxCS1zQ2r}Gf<`li(<rP;1$|^Qg%g-Ea
zs9sxDTUAyS)McOCZFgMIAwy;m88v(|3)^?}BfLAA&Lms=^@dmsFQ(jQ;E8jXET~)C
zBa?J<_x!sI0(n*>+H^ytRUVpT@h*=qy4Y7JdC{R2mM4N(Q~kJ$Qs>g<iSLf;HigQg
zp{?U3Bxu3q_CU0#v?(S}G868@+Q`;GYh%P8jfS@W!Hb!`Q)I|OMGxG!Ftw4j;aEJ{
zn!jR&o?RRMLcA#|Pf-g(mzZt#!XnhV-P{u1ZpI>Jcw19!mVL?XlwrF=ha2pknwM`j
z$^&S)!3k2@6mdql_F9=8RxD^U*S0sb75OrIi*?TlTGMi!1YTUEmz@12&c#36Z(@>e
zdtqG0tpeRGh(#jJ?S=M>BD-5?zVehS=gKQe>sD=8RaUlid7=Ek`Pi%aHg0TT#~<3!
z3;pp}WL3CT+SJ(4#;xbdKX20SIhB-p?f>Pq^H8DpT%*b;>1bS(c{*#nb<Km@r%wOb
zO=Wjq{M!A6_eH-`RPYb!odwT)?C;MsZvD(>_f(e8dHapqzP@nv9gAN5*C)+aZu>%N
z^Uh<3pZVAW=NTRQF59`oH!l2|tG3lX_Tq-pua@rr{)wA+-e5ljj`~vn8RuY&yWQb#
zzu|8Gm%H8PZhzr!Uv;;~-R)HS8;FK+uX}vDdwjOLy};dG;%-0ZZa?pC8{KWh-QMJG
z|Hj?k?ry*BZtrrpKXkWy-0f5D_UG>Qu)BTT-M-^)PnUlbs-I80Tj_Q7XN9}{oV&fs
z-G<%m_3rk>GAI1We3gF%W!x?Q=N3EvuPH6^jZWv!s!5M+$cq}}ZOfRClzgL{xN}$U
zuDf^LzpHQ8{#^%mJ-6%7uGFrhyH4yfdb4|Tdgu0<y?MR9-sQa|y;g5^@0Gn9dpGyC
z^=|9!=-t_SYwtID@9gdEy}S4R-oD=by$5@r>m8E^2M8d500IagfB*srAb<b@2q1s}
z0tg_000IagfB*srAb<b@2q1s}0tg_000IagfB*srAb<b@2q1s}0tg_000IagfB*sr
zAb<b@2q1s}0tg_000IagfB*srAb<b@2q1s}0tg_000IagfB*srAb<b@2q1s}0tg_0
z00IagfB*srAb<b@2q1s}0tg_000IagfB*srAb<b@2q1s}0tg_000IagfB*srAb<b@
z2q1s}0tg_000IagfB*srAb<b@2q1s}0tg_000IagfB*srAb<b@2q1s}0tg_000Iag
zfB*srAb<b@2q1s}0tg_000IagfB*srAb<b@2q1s}0tg_000IagfB*srAb<b@2q1s}
z0tg_000IagfB*srAb<b@2q1s}0tg_000IagfB*srAb<b@2q1s}0tg_000IagfB*sr
zAb<b@2q1s}0tg_000IagfB*srAb<b@2q1s}0tg_000IagfB*srAb<b@2q1s}0tg_0
z00IagfB*srAb<b@2q1s}0tg_000IagfB*srAb<b@2q1s}0tg_000IagfB*srAb<b@
z2q1s}0tg_000IagfB*srAb<b@2q1s}0tg_000IagfB*srAb<b@2q1s}0tg_000Iag
zfB*srAb<b@2q1s}0tg_000IagfB*srAb<b@2q1s}0tg_000IagfB*srAb<b@2q1s}
z0tg_000IagfB*srAb<b@2q1s}0tg_000IagfB*srAb<b@2q1s}0tg_000IagfB*sr
zAb<b@2q1s}0tg_000IagfB*srAb<b@2q1s}0tg_000IagfB*srAb<b@2q1s}0tg_0
z00IagfB*srAb<b@2q1s}0tg_000IagfB*srAb<b@2q1s}0tg_000IagfB*srAb<b@
z2q1s}0tg_000IagfB*srAb<b@2q1s}0tg_000IagfB*srAb<b@2q1s}0tg_000Iag
zfB*srAb<b@2q1s}0tg_000IagfB*srAb<b@2q1s}0tg_000IagfB*srAb<b@2q1s}
z0tg_000IagfB*srAb<b@2q1s}0tg_000IagfB*srAb<b@2q1s}0tg_000IagfB*sr
zAb<b@2q1s}0tg_000IagfB*srAb<b@2q1s}0tg_000IagfB*srAb<b@2q1s}0tg_0
z00IagfB*srAb<b@2q1s}0tg_000IagfB*srAb<b@2q1s}0tg_000IagfB*srAb<b@
z2q1s}0tg_000IagfB*srAb<b@2q1s}0tg_000IagfB*srAb<b@2q1s}0tg_000Iag
zfB*srAb<b@2q1s}0tg_000IagfB*srAb<b@2q1s}0tg_000IagfB*srAb<b@2q1s}
z0tg_000IagfB*srAb<b@2q1s}0tg_000IagfB*srAb<b@2q1s}0tg_000IagfB*sr
zAb<b@2q1s}0tg_000IagfB*srAb<b@2q1s}0tg_000IagfB*srAb<b@2q1s}0tg_0
z00IagfB*srAb<b@2q1s}0tg_000IagfB*srAb<b@2q1s}0tg_000IagfB*srAb<b@
z2q1s}0tg_000IagfB*srAb<b@2q1s}0tg_000IagfB*srAb<b@2q1s}0tg_000Iag
zfB*srAb<b@2q1s}0tg_000IagfB*srAb<b@2q1s}0tg_000IagfB*srAb<b@2q1s}
z0tg_000IagfB*srAb<b@2q1s}0tg_000IagfB*srAb<b@2q1s}0tg_000IagfB*sr
zAb<b@2q1s}0tg_000IagfB*srAb<b@2q1s}0tg_000IagfB*srAb<b@2q1s}0tg_0
z00IagfB*srAb<b@2q1s}0tg_000IagfB*srAb<b@2q1s}0tg_000IagfB*srAb<b@
z2q1s}0tg_000IagfB*srAb<b@2q1s}0tg_000IagfB*srAb<b@2q1s}0tg_000Iag
zfB*srAb<b@2q1s}0tg_000IagfB*srAb<b@2q1s}0tg_000IagfB*srAb<b@2q1s}
z0tg_000IagfB*srAb<b@2q1s}0tg_000IagfB*srAb<b@2q1s}0tg_000Mt@0{<VV
C+DE+r

literal 0
HcmV?d00001

diff --git a/tests/libqtest.c.orig b/tests/libqtest.c.orig
new file mode 100644
index 0000000000..a1d33a1d0c
--- /dev/null
+++ b/tests/libqtest.c.orig
@@ -0,0 +1,1106 @@ 
+/*
+ * QTest
+ *
+ * Copyright IBM, Corp. 2012
+ * Copyright Red Hat, Inc. 2012
+ * Copyright SUSE LINUX Products GmbH 2013
+ *
+ * Authors:
+ *  Anthony Liguori   <aliguori@us.ibm.com>
+ *  Paolo Bonzini     <pbonzini@redhat.com>
+ *  Andreas Färber    <afaerber@suse.de>
+ *
+ * This work is licensed under the terms of the GNU GPL, version 2 or later.
+ * See the COPYING file in the top-level directory.
+ */
+
+#include "qemu/osdep.h"
+
+#include <sys/socket.h>
+#include <sys/wait.h>
+#include <sys/un.h>
+
+#include "libqtest.h"
+#include "qemu/cutils.h"
+#include "qapi/error.h"
+#include "qapi/qmp/json-parser.h"
+#include "qapi/qmp/json-streamer.h"
+#include "qapi/qmp/qdict.h"
+#include "qapi/qmp/qjson.h"
+#include "qapi/qmp/qlist.h"
+#include "qapi/qmp/qstring.h"
+
+#define MAX_IRQ 256
+#define SOCKET_TIMEOUT 50
+
+QTestState *global_qtest;
+
+struct QTestState
+{
+    int fd;
+    int qmp_fd;
+    bool irq_level[MAX_IRQ];
+    GString *rx;
+    pid_t qemu_pid;  /* our child QEMU process */
+    bool big_endian;
+};
+
+static GHookList abrt_hooks;
+static struct sigaction sigact_old;
+
+#define g_assert_no_errno(ret) do { \
+    g_assert_cmpint(ret, !=, -1); \
+} while (0)
+
+static int qtest_query_target_endianness(QTestState *s);
+
+static int init_socket(const char *socket_path)
+{
+    struct sockaddr_un addr;
+    int sock;
+    int ret;
+
+    sock = socket(PF_UNIX, SOCK_STREAM, 0);
+    g_assert_no_errno(sock);
+
+    addr.sun_family = AF_UNIX;
+    snprintf(addr.sun_path, sizeof(addr.sun_path), "%s", socket_path);
+    qemu_set_cloexec(sock);
+
+    do {
+        ret = bind(sock, (struct sockaddr *)&addr, sizeof(addr));
+    } while (ret == -1 && errno == EINTR);
+    g_assert_no_errno(ret);
+    ret = listen(sock, 1);
+    g_assert_no_errno(ret);
+
+    return sock;
+}
+
+static int socket_accept(int sock)
+{
+    struct sockaddr_un addr;
+    socklen_t addrlen;
+    int ret;
+    struct timeval timeout = { .tv_sec = SOCKET_TIMEOUT,
+                               .tv_usec = 0 };
+
+    setsockopt(sock, SOL_SOCKET, SO_RCVTIMEO, (void *)&timeout,
+               sizeof(timeout));
+
+    do {
+        addrlen = sizeof(addr);
+        ret = accept(sock, (struct sockaddr *)&addr, &addrlen);
+    } while (ret == -1 && errno == EINTR);
+    if (ret == -1) {
+        fprintf(stderr, "%s failed: %s\n", __func__, strerror(errno));
+    }
+    close(sock);
+
+    return ret;
+}
+
+static void kill_qemu(QTestState *s)
+{
+    int wstatus = 0;
+
+    if (s->qemu_pid != -1) {
+        kill(s->qemu_pid, SIGTERM);
+        waitpid(s->qemu_pid, &wstatus, 0);
+
+        if (WIFSIGNALED(wstatus)) {
+            assert(!WCOREDUMP(wstatus));
+        }
+    }
+}
+
+static void kill_qemu_hook_func(void *s)
+{
+    kill_qemu(s);
+}
+
+static void sigabrt_handler(int signo)
+{
+    g_hook_list_invoke(&abrt_hooks, FALSE);
+}
+
+static void setup_sigabrt_handler(void)
+{
+    struct sigaction sigact;
+
+    /* Catch SIGABRT to clean up on g_assert() failure */
+    sigact = (struct sigaction){
+        .sa_handler = sigabrt_handler,
+        .sa_flags = SA_RESETHAND,
+    };
+    sigemptyset(&sigact.sa_mask);
+    sigaction(SIGABRT, &sigact, &sigact_old);
+}
+
+static void cleanup_sigabrt_handler(void)
+{
+    sigaction(SIGABRT, &sigact_old, NULL);
+}
+
+void qtest_add_abrt_handler(GHookFunc fn, const void *data)
+{
+    GHook *hook;
+
+    /* Only install SIGABRT handler once */
+    if (!abrt_hooks.is_setup) {
+        g_hook_list_init(&abrt_hooks, sizeof(GHook));
+    }
+    setup_sigabrt_handler();
+
+    hook = g_hook_alloc(&abrt_hooks);
+    hook->func = fn;
+    hook->data = (void *)data;
+
+    g_hook_prepend(&abrt_hooks, hook);
+}
+
+static const char *qtest_qemu_binary(void)
+{
+    const char *qemu_bin;
+
+    qemu_bin = getenv("QTEST_QEMU_BINARY");
+    if (!qemu_bin) {
+        fprintf(stderr, "Environment variable QTEST_QEMU_BINARY required\n");
+        exit(1);
+    }
+
+    return qemu_bin;
+}
+
+QTestState *qtest_init_without_qmp_handshake(bool use_oob,
+                                             const char *extra_args)
+{
+    QTestState *s;
+    int sock, qmpsock, i;
+    gchar *socket_path;
+    gchar *qmp_socket_path;
+    gchar *command;
+    const char *qemu_binary = qtest_qemu_binary();
+
+    s = g_new(QTestState, 1);
+
+    socket_path = g_strdup_printf("/tmp/qtest-%d.sock", getpid());
+    qmp_socket_path = g_strdup_printf("/tmp/qtest-%d.qmp", getpid());
+
+    /* It's possible that if an earlier test run crashed it might
+     * have left a stale unix socket lying around. Delete any
+     * stale old socket to avoid spurious test failures with
+     * tests/libqtest.c:70:init_socket: assertion failed (ret != -1): (-1 != -1)
+     */
+    unlink(socket_path);
+    unlink(qmp_socket_path);
+
+    sock = init_socket(socket_path);
+    qmpsock = init_socket(qmp_socket_path);
+
+    qtest_add_abrt_handler(kill_qemu_hook_func, s);
+
+    s->qemu_pid = fork();
+    if (s->qemu_pid == 0) {
+        setenv("QEMU_AUDIO_DRV", "none", true);
+        command = g_strdup_printf("exec %s "
+                                  "-qtest unix:%s,nowait "
+                                  "-qtest-log %s "
+                                  "-chardev socket,path=%s,nowait,id=char0 "
+                                  "-mon chardev=char0,mode=control%s "
+                                  "-machine accel=qtest "
+                                  "-display none "
+                                  "%s", qemu_binary, socket_path,
+                                  getenv("QTEST_LOG") ? "/dev/fd/2" : "/dev/null",
+                                  qmp_socket_path, use_oob ? ",x-oob=on" : "",
+                                  extra_args ?: "");
+        execlp("/bin/sh", "sh", "-c", command, NULL);
+        exit(1);
+    }
+
+    s->fd = socket_accept(sock);
+    if (s->fd >= 0) {
+        s->qmp_fd = socket_accept(qmpsock);
+    }
+    unlink(socket_path);
+    unlink(qmp_socket_path);
+    g_free(socket_path);
+    g_free(qmp_socket_path);
+
+    g_assert(s->fd >= 0 && s->qmp_fd >= 0);
+
+    s->rx = g_string_new("");
+    for (i = 0; i < MAX_IRQ; i++) {
+        s->irq_level[i] = false;
+    }
+
+    if (getenv("QTEST_STOP")) {
+        kill(s->qemu_pid, SIGSTOP);
+    }
+
+    /* ask endianness of the target */
+
+    s->big_endian = qtest_query_target_endianness(s);
+
+    return s;
+}
+
+QTestState *qtest_init(const char *extra_args)
+{
+    QTestState *s = qtest_init_without_qmp_handshake(false, extra_args);
+
+    /* Read the QMP greeting and then do the handshake */
+    qtest_qmp_discard_response(s, "");
+    qtest_qmp_discard_response(s, "{ 'execute': 'qmp_capabilities' }");
+
+    return s;
+}
+
+QTestState *qtest_vstartf(const char *fmt, va_list ap)
+{
+    char *args = g_strdup_vprintf(fmt, ap);
+    QTestState *s;
+
+    s = qtest_start(args);
+    g_free(args);
+    global_qtest = NULL;
+    return s;
+}
+
+QTestState *qtest_startf(const char *fmt, ...)
+{
+    va_list ap;
+    QTestState *s;
+
+    va_start(ap, fmt);
+    s = qtest_vstartf(fmt, ap);
+    va_end(ap);
+    return s;
+}
+
+void qtest_quit(QTestState *s)
+{
+    g_hook_destroy_link(&abrt_hooks, g_hook_find_data(&abrt_hooks, TRUE, s));
+
+    /* Uninstall SIGABRT handler on last instance */
+    cleanup_sigabrt_handler();
+
+    kill_qemu(s);
+    close(s->fd);
+    close(s->qmp_fd);
+    g_string_free(s->rx, true);
+    g_free(s);
+}
+
+static void socket_send(int fd, const char *buf, size_t size)
+{
+    size_t offset;
+
+    offset = 0;
+    while (offset < size) {
+        ssize_t len;
+
+        len = write(fd, buf + offset, size - offset);
+        if (len == -1 && errno == EINTR) {
+            continue;
+        }
+
+        g_assert_no_errno(len);
+        g_assert_cmpint(len, >, 0);
+
+        offset += len;
+    }
+}
+
+static void socket_sendf(int fd, const char *fmt, va_list ap)
+{
+    gchar *str = g_strdup_vprintf(fmt, ap);
+    size_t size = strlen(str);
+
+    socket_send(fd, str, size);
+    g_free(str);
+}
+
+static void GCC_FMT_ATTR(2, 3) qtest_sendf(QTestState *s, const char *fmt, ...)
+{
+    va_list ap;
+
+    va_start(ap, fmt);
+    socket_sendf(s->fd, fmt, ap);
+    va_end(ap);
+}
+
+static GString *qtest_recv_line(QTestState *s)
+{
+    GString *line;
+    size_t offset;
+    char *eol;
+
+    while ((eol = strchr(s->rx->str, '\n')) == NULL) {
+        ssize_t len;
+        char buffer[1024];
+
+        len = read(s->fd, buffer, sizeof(buffer));
+        if (len == -1 && errno == EINTR) {
+            continue;
+        }
+
+        if (len == -1 || len == 0) {
+            fprintf(stderr, "Broken pipe\n");
+            exit(1);
+        }
+
+        g_string_append_len(s->rx, buffer, len);
+    }
+
+    offset = eol - s->rx->str;
+    line = g_string_new_len(s->rx->str, offset);
+    g_string_erase(s->rx, 0, offset + 1);
+
+    return line;
+}
+
+static gchar **qtest_rsp(QTestState *s, int expected_args)
+{
+    GString *line;
+    gchar **words;
+    int i;
+
+redo:
+    line = qtest_recv_line(s);
+    words = g_strsplit(line->str, " ", 0);
+    g_string_free(line, TRUE);
+
+    if (strcmp(words[0], "IRQ") == 0) {
+        long irq;
+        int ret;
+
+        g_assert(words[1] != NULL);
+        g_assert(words[2] != NULL);
+
+        ret = qemu_strtol(words[2], NULL, 0, &irq);
+        g_assert(!ret);
+        g_assert_cmpint(irq, >=, 0);
+        g_assert_cmpint(irq, <, MAX_IRQ);
+
+        if (strcmp(words[1], "raise") == 0) {
+            s->irq_level[irq] = true;
+        } else {
+            s->irq_level[irq] = false;
+        }
+
+        g_strfreev(words);
+        goto redo;
+    }
+
+    g_assert(words[0] != NULL);
+    g_assert_cmpstr(words[0], ==, "OK");
+
+    if (expected_args) {
+        for (i = 0; i < expected_args; i++) {
+            g_assert(words[i] != NULL);
+        }
+    } else {
+        g_strfreev(words);
+    }
+
+    return words;
+}
+
+static int qtest_query_target_endianness(QTestState *s)
+{
+    gchar **args;
+    int big_endian;
+
+    qtest_sendf(s, "endianness\n");
+    args = qtest_rsp(s, 1);
+    g_assert(strcmp(args[1], "big") == 0 || strcmp(args[1], "little") == 0);
+    big_endian = strcmp(args[1], "big") == 0;
+    g_strfreev(args);
+
+    return big_endian;
+}
+
+typedef struct {
+    JSONMessageParser parser;
+    QDict *response;
+} QMPResponseParser;
+
+static void qmp_response(JSONMessageParser *parser, GQueue *tokens)
+{
+    QMPResponseParser *qmp = container_of(parser, QMPResponseParser, parser);
+    QObject *obj;
+
+    obj = json_parser_parse(tokens, NULL);
+    if (!obj) {
+        fprintf(stderr, "QMP JSON response parsing failed\n");
+        exit(1);
+    }
+
+    g_assert(!qmp->response);
+    qmp->response = qobject_to(QDict, obj);
+    g_assert(qmp->response);
+}
+
+QDict *qmp_fd_receive(int fd)
+{
+    QMPResponseParser qmp;
+    bool log = getenv("QTEST_LOG") != NULL;
+
+    qmp.response = NULL;
+    json_message_parser_init(&qmp.parser, qmp_response);
+    while (!qmp.response) {
+        ssize_t len;
+        char c;
+
+        len = read(fd, &c, 1);
+        if (len == -1 && errno == EINTR) {
+            continue;
+        }
+
+        if (len == -1 || len == 0) {
+            fprintf(stderr, "Broken pipe\n");
+            exit(1);
+        }
+
+        if (log) {
+            len = write(2, &c, 1);
+        }
+        json_message_parser_feed(&qmp.parser, &c, 1);
+    }
+    json_message_parser_destroy(&qmp.parser);
+
+    return qmp.response;
+}
+
+QDict *qtest_qmp_receive(QTestState *s)
+{
+    return qmp_fd_receive(s->qmp_fd);
+}
+
+/**
+ * Allow users to send a message without waiting for the reply,
+ * in the case that they choose to discard all replies up until
+ * a particular EVENT is received.
+ */
+void qmp_fd_sendv(int fd, const char *fmt, va_list ap)
+{
+    va_list ap_copy;
+    QObject *qobj;
+
+    /* qobject_from_jsonv() silently eats leading 0xff as invalid
+     * JSON, but we want to test sending them over the wire to force
+     * resyncs */
+    if (*fmt == '\377') {
+        socket_send(fd, fmt, 1);
+        fmt++;
+    }
+
+    /* Going through qobject ensures we escape strings properly.
+     * This seemingly unnecessary copy is required in case va_list
+     * is an array type.
+     */
+    va_copy(ap_copy, ap);
+    qobj = qobject_from_jsonv(fmt, &ap_copy, &error_abort);
+    va_end(ap_copy);
+
+    /* No need to send anything for an empty QObject.  */
+    if (qobj) {
+        int log = getenv("QTEST_LOG") != NULL;
+        QString *qstr = qobject_to_json(qobj);
+        const char *str;
+
+        /*
+         * BUG: QMP doesn't react to input until it sees a newline, an
+         * object, or an array.  Work-around: give it a newline.
+         */
+        qstring_append_chr(qstr, '\n');
+        str = qstring_get_str(qstr);
+
+        if (log) {
+            fprintf(stderr, "%s", str);
+        }
+        /* Send QMP request */
+        socket_send(fd, str, qstring_get_length(qstr));
+
+        qobject_unref(qstr);
+        qobject_unref(qobj);
+    }
+}
+
+void qtest_async_qmpv(QTestState *s, const char *fmt, va_list ap)
+{
+    qmp_fd_sendv(s->qmp_fd, fmt, ap);
+}
+
+QDict *qmp_fdv(int fd, const char *fmt, va_list ap)
+{
+    qmp_fd_sendv(fd, fmt, ap);
+
+    return qmp_fd_receive(fd);
+}
+
+QDict *qtest_qmpv(QTestState *s, const char *fmt, va_list ap)
+{
+    qtest_async_qmpv(s, fmt, ap);
+
+    /* Receive reply */
+    return qtest_qmp_receive(s);
+}
+
+QDict *qmp_fd(int fd, const char *fmt, ...)
+{
+    va_list ap;
+    QDict *response;
+
+    va_start(ap, fmt);
+    response = qmp_fdv(fd, fmt, ap);
+    va_end(ap);
+    return response;
+}
+
+void qmp_fd_send(int fd, const char *fmt, ...)
+{
+    va_list ap;
+
+    va_start(ap, fmt);
+    qmp_fd_sendv(fd, fmt, ap);
+    va_end(ap);
+}
+
+QDict *qtest_qmp(QTestState *s, const char *fmt, ...)
+{
+    va_list ap;
+    QDict *response;
+
+    va_start(ap, fmt);
+    response = qtest_qmpv(s, fmt, ap);
+    va_end(ap);
+    return response;
+}
+
+void qtest_async_qmp(QTestState *s, const char *fmt, ...)
+{
+    va_list ap;
+
+    va_start(ap, fmt);
+    qtest_async_qmpv(s, fmt, ap);
+    va_end(ap);
+}
+
+void qtest_qmpv_discard_response(QTestState *s, const char *fmt, va_list ap)
+{
+    QDict *response = qtest_qmpv(s, fmt, ap);
+    qobject_unref(response);
+}
+
+void qtest_qmp_discard_response(QTestState *s, const char *fmt, ...)
+{
+    va_list ap;
+    QDict *response;
+
+    va_start(ap, fmt);
+    response = qtest_qmpv(s, fmt, ap);
+    va_end(ap);
+    qobject_unref(response);
+}
+
+QDict *qtest_qmp_eventwait_ref(QTestState *s, const char *event)
+{
+    QDict *response;
+
+    for (;;) {
+        response = qtest_qmp_receive(s);
+        if ((qdict_haskey(response, "event")) &&
+            (strcmp(qdict_get_str(response, "event"), event) == 0)) {
+            return response;
+        }
+        qobject_unref(response);
+    }
+}
+
+void qtest_qmp_eventwait(QTestState *s, const char *event)
+{
+    QDict *response;
+
+    response = qtest_qmp_eventwait_ref(s, event);
+    qobject_unref(response);
+}
+
+char *qtest_hmpv(QTestState *s, const char *fmt, va_list ap)
+{
+    char *cmd;
+    QDict *resp;
+    char *ret;
+
+    cmd = g_strdup_vprintf(fmt, ap);
+    resp = qtest_qmp(s, "{'execute': 'human-monitor-command',"
+                     " 'arguments': {'command-line': %s}}",
+                     cmd);
+    ret = g_strdup(qdict_get_try_str(resp, "return"));
+    while (ret == NULL && qdict_get_try_str(resp, "event")) {
+        /* Ignore asynchronous QMP events */
+        qobject_unref(resp);
+        resp = qtest_qmp_receive(s);
+        ret = g_strdup(qdict_get_try_str(resp, "return"));
+    }
+    g_assert(ret);
+    qobject_unref(resp);
+    g_free(cmd);
+    return ret;
+}
+
+char *qtest_hmp(QTestState *s, const char *fmt, ...)
+{
+    va_list ap;
+    char *ret;
+
+    va_start(ap, fmt);
+    ret = qtest_hmpv(s, fmt, ap);
+    va_end(ap);
+    return ret;
+}
+
+const char *qtest_get_arch(void)
+{
+    const char *qemu = qtest_qemu_binary();
+    const char *end = strrchr(qemu, '/');
+
+    return end + strlen("/qemu-system-");
+}
+
+bool qtest_get_irq(QTestState *s, int num)
+{
+    /* dummy operation in order to make sure irq is up to date */
+    qtest_inb(s, 0);
+
+    return s->irq_level[num];
+}
+
+static int64_t qtest_clock_rsp(QTestState *s)
+{
+    gchar **words;
+    int64_t clock;
+    words = qtest_rsp(s, 2);
+    clock = g_ascii_strtoll(words[1], NULL, 0);
+    g_strfreev(words);
+    return clock;
+}
+
+int64_t qtest_clock_step_next(QTestState *s)
+{
+    qtest_sendf(s, "clock_step\n");
+    return qtest_clock_rsp(s);
+}
+
+int64_t qtest_clock_step(QTestState *s, int64_t step)
+{
+    qtest_sendf(s, "clock_step %"PRIi64"\n", step);
+    return qtest_clock_rsp(s);
+}
+
+int64_t qtest_clock_set(QTestState *s, int64_t val)
+{
+    qtest_sendf(s, "clock_set %"PRIi64"\n", val);
+    return qtest_clock_rsp(s);
+}
+
+void qtest_irq_intercept_out(QTestState *s, const char *qom_path)
+{
+    qtest_sendf(s, "irq_intercept_out %s\n", qom_path);
+    qtest_rsp(s, 0);
+}
+
+void qtest_irq_intercept_in(QTestState *s, const char *qom_path)
+{
+    qtest_sendf(s, "irq_intercept_in %s\n", qom_path);
+    qtest_rsp(s, 0);
+}
+
+static void qtest_out(QTestState *s, const char *cmd, uint16_t addr, uint32_t value)
+{
+    qtest_sendf(s, "%s 0x%x 0x%x\n", cmd, addr, value);
+    qtest_rsp(s, 0);
+}
+
+void qtest_outb(QTestState *s, uint16_t addr, uint8_t value)
+{
+    qtest_out(s, "outb", addr, value);
+}
+
+void qtest_outw(QTestState *s, uint16_t addr, uint16_t value)
+{
+    qtest_out(s, "outw", addr, value);
+}
+
+void qtest_outl(QTestState *s, uint16_t addr, uint32_t value)
+{
+    qtest_out(s, "outl", addr, value);
+}
+
+static uint32_t qtest_in(QTestState *s, const char *cmd, uint16_t addr)
+{
+    gchar **args;
+    int ret;
+    unsigned long value;
+
+    qtest_sendf(s, "%s 0x%x\n", cmd, addr);
+    args = qtest_rsp(s, 2);
+    ret = qemu_strtoul(args[1], NULL, 0, &value);
+    g_assert(!ret && value <= UINT32_MAX);
+    g_strfreev(args);
+
+    return value;
+}
+
+uint8_t qtest_inb(QTestState *s, uint16_t addr)
+{
+    return qtest_in(s, "inb", addr);
+}
+
+uint16_t qtest_inw(QTestState *s, uint16_t addr)
+{
+    return qtest_in(s, "inw", addr);
+}
+
+uint32_t qtest_inl(QTestState *s, uint16_t addr)
+{
+    return qtest_in(s, "inl", addr);
+}
+
+static void qtest_write(QTestState *s, const char *cmd, uint64_t addr,
+                        uint64_t value)
+{
+    qtest_sendf(s, "%s 0x%" PRIx64 " 0x%" PRIx64 "\n", cmd, addr, value);
+    qtest_rsp(s, 0);
+}
+
+void qtest_writeb(QTestState *s, uint64_t addr, uint8_t value)
+{
+    qtest_write(s, "writeb", addr, value);
+}
+
+void qtest_writew(QTestState *s, uint64_t addr, uint16_t value)
+{
+    qtest_write(s, "writew", addr, value);
+}
+
+void qtest_writel(QTestState *s, uint64_t addr, uint32_t value)
+{
+    qtest_write(s, "writel", addr, value);
+}
+
+void qtest_writeq(QTestState *s, uint64_t addr, uint64_t value)
+{
+    qtest_write(s, "writeq", addr, value);
+}
+
+static uint64_t qtest_read(QTestState *s, const char *cmd, uint64_t addr)
+{
+    gchar **args;
+    int ret;
+    uint64_t value;
+
+    qtest_sendf(s, "%s 0x%" PRIx64 "\n", cmd, addr);
+    args = qtest_rsp(s, 2);
+    ret = qemu_strtou64(args[1], NULL, 0, &value);
+    g_assert(!ret);
+    g_strfreev(args);
+
+    return value;
+}
+
+uint8_t qtest_readb(QTestState *s, uint64_t addr)
+{
+    return qtest_read(s, "readb", addr);
+}
+
+uint16_t qtest_readw(QTestState *s, uint64_t addr)
+{
+    return qtest_read(s, "readw", addr);
+}
+
+uint32_t qtest_readl(QTestState *s, uint64_t addr)
+{
+    return qtest_read(s, "readl", addr);
+}
+
+uint64_t qtest_readq(QTestState *s, uint64_t addr)
+{
+    return qtest_read(s, "readq", addr);
+}
+
+static int hex2nib(char ch)
+{
+    if (ch >= '0' && ch <= '9') {
+        return ch - '0';
+    } else if (ch >= 'a' && ch <= 'f') {
+        return 10 + (ch - 'a');
+    } else if (ch >= 'A' && ch <= 'F') {
+        return 10 + (ch - 'a');
+    } else {
+        return -1;
+    }
+}
+
+void qtest_memread(QTestState *s, uint64_t addr, void *data, size_t size)
+{
+    uint8_t *ptr = data;
+    gchar **args;
+    size_t i;
+
+    if (!size) {
+        return;
+    }
+
+    qtest_sendf(s, "read 0x%" PRIx64 " 0x%zx\n", addr, size);
+    args = qtest_rsp(s, 2);
+
+    for (i = 0; i < size; i++) {
+        ptr[i] = hex2nib(args[1][2 + (i * 2)]) << 4;
+        ptr[i] |= hex2nib(args[1][2 + (i * 2) + 1]);
+    }
+
+    g_strfreev(args);
+}
+
+uint64_t qtest_rtas_call(QTestState *s, const char *name,
+                         uint32_t nargs, uint64_t args,
+                         uint32_t nret, uint64_t ret)
+{
+    qtest_sendf(s, "rtas %s %u 0x%"PRIx64" %u 0x%"PRIx64"\n",
+                name, nargs, args, nret, ret);
+    qtest_rsp(s, 0);
+    return 0;
+}
+
+void qtest_add_func(const char *str, void (*fn)(void))
+{
+    gchar *path = g_strdup_printf("/%s/%s", qtest_get_arch(), str);
+    g_test_add_func(path, fn);
+    g_free(path);
+}
+
+void qtest_add_data_func_full(const char *str, void *data,
+                              void (*fn)(const void *),
+                              GDestroyNotify data_free_func)
+{
+    gchar *path = g_strdup_printf("/%s/%s", qtest_get_arch(), str);
+    g_test_add_data_func_full(path, data, fn, data_free_func);
+    g_free(path);
+}
+
+void qtest_add_data_func(const char *str, const void *data,
+                         void (*fn)(const void *))
+{
+    gchar *path = g_strdup_printf("/%s/%s", qtest_get_arch(), str);
+    g_test_add_data_func(path, data, fn);
+    g_free(path);
+}
+
+void qtest_bufwrite(QTestState *s, uint64_t addr, const void *data, size_t size)
+{
+    gchar *bdata;
+
+    bdata = g_base64_encode(data, size);
+    qtest_sendf(s, "b64write 0x%" PRIx64 " 0x%zx ", addr, size);
+    socket_send(s->fd, bdata, strlen(bdata));
+    socket_send(s->fd, "\n", 1);
+    qtest_rsp(s, 0);
+    g_free(bdata);
+}
+
+void qtest_bufread(QTestState *s, uint64_t addr, void *data, size_t size)
+{
+    gchar **args;
+    size_t len;
+
+    qtest_sendf(s, "b64read 0x%" PRIx64 " 0x%zx\n", addr, size);
+    args = qtest_rsp(s, 2);
+
+    g_base64_decode_inplace(args[1], &len);
+    if (size != len) {
+        fprintf(stderr, "bufread: asked for %zu bytes but decoded %zu\n",
+                size, len);
+        len = MIN(len, size);
+    }
+
+    memcpy(data, args[1], len);
+    g_strfreev(args);
+}
+
+void qtest_memwrite(QTestState *s, uint64_t addr, const void *data, size_t size)
+{
+    const uint8_t *ptr = data;
+    size_t i;
+    char *enc;
+
+    if (!size) {
+        return;
+    }
+
+    enc = g_malloc(2 * size + 1);
+
+    for (i = 0; i < size; i++) {
+        sprintf(&enc[i * 2], "%02x", ptr[i]);
+    }
+
+    qtest_sendf(s, "write 0x%" PRIx64 " 0x%zx 0x%s\n", addr, size, enc);
+    qtest_rsp(s, 0);
+    g_free(enc);
+}
+
+void qtest_memset(QTestState *s, uint64_t addr, uint8_t pattern, size_t size)
+{
+    qtest_sendf(s, "memset 0x%" PRIx64 " 0x%zx 0x%02x\n", addr, size, pattern);
+    qtest_rsp(s, 0);
+}
+
+QDict *qmp(const char *fmt, ...)
+{
+    va_list ap;
+    QDict *response;
+
+    va_start(ap, fmt);
+    response = qtest_qmpv(global_qtest, fmt, ap);
+    va_end(ap);
+    return response;
+}
+
+void qmp_async(const char *fmt, ...)
+{
+    va_list ap;
+
+    va_start(ap, fmt);
+    qtest_async_qmpv(global_qtest, fmt, ap);
+    va_end(ap);
+}
+
+void qmp_discard_response(const char *fmt, ...)
+{
+    va_list ap;
+
+    va_start(ap, fmt);
+    qtest_qmpv_discard_response(global_qtest, fmt, ap);
+    va_end(ap);
+}
+char *hmp(const char *fmt, ...)
+{
+    va_list ap;
+    char *ret;
+
+    va_start(ap, fmt);
+    ret = qtest_hmpv(global_qtest, fmt, ap);
+    va_end(ap);
+    return ret;
+}
+
+bool qtest_big_endian(QTestState *s)
+{
+    return s->big_endian;
+}
+
+void qtest_cb_for_every_machine(void (*cb)(const char *machine))
+{
+    QDict *response, *minfo;
+    QList *list;
+    const QListEntry *p;
+    QObject *qobj;
+    QString *qstr;
+    const char *mname;
+
+    qtest_start("-machine none");
+    response = qmp("{ 'execute': 'query-machines' }");
+    g_assert(response);
+    list = qdict_get_qlist(response, "return");
+    g_assert(list);
+
+    for (p = qlist_first(list); p; p = qlist_next(p)) {
+        minfo = qobject_to(QDict, qlist_entry_obj(p));
+        g_assert(minfo);
+        qobj = qdict_get(minfo, "name");
+        g_assert(qobj);
+        qstr = qobject_to(QString, qobj);
+        g_assert(qstr);
+        mname = qstring_get_str(qstr);
+        cb(mname);
+    }
+
+    qtest_end();
+    qobject_unref(response);
+}
+
+/*
+ * Generic hot-plugging test via the device_add QMP command.
+ */
+void qtest_qmp_device_add(const char *driver, const char *id, const char *fmt,
+                          ...)
+{
+    QDict *response;
+    char *cmd, *opts = NULL;
+    va_list va;
+
+    if (fmt) {
+        va_start(va, fmt);
+        opts = g_strdup_vprintf(fmt, va);
+        va_end(va);
+    }
+
+    cmd = g_strdup_printf("{'execute': 'device_add',"
+                          " 'arguments': { 'driver': '%s', 'id': '%s'%s%s }}",
+                          driver, id, opts ? ", " : "", opts ? opts : "");
+    g_free(opts);
+
+    response = qmp(cmd);
+    g_free(cmd);
+    g_assert(response);
+    g_assert(!qdict_haskey(response, "event")); /* We don't expect any events */
+    g_assert(!qdict_haskey(response, "error"));
+    qobject_unref(response);
+}
+
+/*
+ * Generic hot-unplugging test via the device_del QMP command.
+ * Device deletion will get one response and one event. For example:
+ *
+ * {'execute': 'device_del','arguments': { 'id': 'scsi-hd'}}
+ *
+ * will get this one:
+ *
+ * {"timestamp": {"seconds": 1505289667, "microseconds": 569862},
+ *  "event": "DEVICE_DELETED", "data": {"device": "scsi-hd",
+ *  "path": "/machine/peripheral/scsi-hd"}}
+ *
+ * and this one:
+ *
+ * {"return": {}}
+ *
+ * But the order of arrival may vary - so we've got to detect both.
+ */
+void qtest_qmp_device_del(const char *id)
+{
+    QDict *response1, *response2, *event = NULL;
+    char *cmd;
+
+    cmd = g_strdup_printf("{'execute': 'device_del',"
+                          " 'arguments': { 'id': '%s' }}", id);
+    response1 = qmp(cmd);
+    g_free(cmd);
+    g_assert(response1);
+    g_assert(!qdict_haskey(response1, "error"));
+
+    response2 = qmp("");
+    g_assert(response2);
+    g_assert(!qdict_haskey(response2, "error"));
+
+    if (qdict_haskey(response1, "event")) {
+        event = response1;
+    } else if (qdict_haskey(response2, "event")) {
+        event = response2;
+    }
+    g_assert(event);
+    g_assert_cmpstr(qdict_get_str(event, "event"), ==, "DEVICE_DELETED");
+
+    qobject_unref(response1);
+    qobject_unref(response2);
+}
diff --git a/tests/qemu-iotests/core.12067 b/tests/qemu-iotests/core.12067
new file mode 100644
index 0000000000000000000000000000000000000000..0ddb68f76aacbf14f48ba13b2ce9d4d52fab0ebf
GIT binary patch
literal 22716416
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
zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF
z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk
z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs
z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ
zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U
zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7
z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N
z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+
z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly
zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF
z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk
z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs
z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ
zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U
zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7
z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N
z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+
z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly
zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF
z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk
z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs
z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ
zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U
zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7
z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N
z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+
z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly
zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF
z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk
z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs
z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ
zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U
zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7
z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N
z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+
z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly
zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF
z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk
z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs
z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ
zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U
zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7
z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N
z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+
z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly
zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF
z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk
z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs
z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ
zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U
zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7
z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N
z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+
z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly
zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF
z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk
z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs
z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ
zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U
zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7
z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N
z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+
z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly
zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF
z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk
z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs
z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ
zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U
zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7
z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N
z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+
z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly
zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF
z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk
z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs
z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ
zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U
zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7
z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N
z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+
z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly
zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF
z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk
z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs
z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ
zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U
zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7
z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N
z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+
z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly
zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF
z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk
z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs
z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ
zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U
zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7
z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N
z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+
z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly
zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF
z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk
z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs
z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ
zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U
zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7
z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N
z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+
z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly
zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF
z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk
z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs
z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ
zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U
zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7
z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N
z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+
z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly
zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF
z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk
z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs
z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ
zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U
zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7
z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N
z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+
z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly
zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF
z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk
z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs
z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ
zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U
zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7
z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N
z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+
z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly
zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF
z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk
z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs
z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ
zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U
zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7
z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N
z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+
z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly
zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF
z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk
z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs
z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ
zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U
zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7
z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N
z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+
z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk|Chac
zftD++>x6x17zqLr1+*2^1ENMGcGAryjLvu(0;Z+KNH=yAbdpX^cOtowOOsaA$e=_-
zhz>{?84VYmd<a8Ogy^7#i<l9VctHaq#sM)xe-bWh8I;lQ|EoIt)J~;t=hA*_IZv&X
z?04VZ_gByR?p?d~sZ)ml0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs
z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ
zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U
zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7
z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N
z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+
z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly
zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF
z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk
z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs
z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ
zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U
zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7
z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N
z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+
z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly
zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF
z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk
z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs
z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ
zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U
zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7
z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N
z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+
z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly
zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF
z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk
z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs
z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ
zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U
zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7
z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N
z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+
z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly
zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF
z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk
z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs
z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ
zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U
zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7
z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N
z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+
z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly
zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF
z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk
z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs
z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ
zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U
zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7
z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N
z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+
z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly
zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF
z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk
z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs
z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ
zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U
zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7
z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N
z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+
z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly
zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF
z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk
z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs
z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ
zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U
zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7
z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N
z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+
z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly
zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF
z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk
z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs
z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ
zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U
zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7
z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N
z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+
z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly
zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF
z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk
z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs
z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ
zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U
zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7
z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N
z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+
z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly
zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF
z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk
z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs
z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ
zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U
zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7
z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N
z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+
z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly
zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF
z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk
z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs
z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ
zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U
zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7
z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N
z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+
z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly
zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF
z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk
z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs
z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ
zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U
zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7
z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N
z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+
z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly
zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF
z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk
z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs
z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ
zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U
zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7
z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N
z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+
z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly
zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF
z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk
z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs
z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ
zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U
zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7
z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N
z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+
z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly
zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF
z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk
z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs
z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ
zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U
zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7
z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N
z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+
z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly
zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF
z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk
z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs
z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ
zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U
zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7
z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N
z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+
z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly
zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF
z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk
z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs
z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ
zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U
zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7
z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N
z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+
z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly
zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF
z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk
z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs
z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ
zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U
zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7
z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N
z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+
z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly
zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF
z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk
z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs
z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ
zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U
zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7
z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N
z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+
z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly
zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF
z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk
z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs
z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ
zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U
zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7
z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N
z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+
z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly
zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF
z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk
z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs
z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ
zfB*pk1PBlyK!5-N0t5&UAn<>Wz&-x&d8+fz^qTE^cFkV1YyW|3_HW&F&9i5B9h_gK
zK!5-N0t5&UAV7cs0RjXF{2LLtYRvO!?uk6&<G=phgEpOh+iPxl=x@K~maN+_x6Q_y
zuBm0OpIhF)-xu9=;a~cfHS^>0G~4}KpWeHk;IS`#ZO8TB`g8UC2oU)HPvFa|>1+1i
zx&NBm_FuDqcIS@W2M=|^+~?bCl7IF1xCa3O1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+
z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly
zK!Cu%ia@^mDc=v3$4CF{%l;wL+jk#4uyg;^)K6A<<5O<fv^EQu@VM^RAMrgaS6*Jh
zxvzNj#NU1Q#kFg`r|`k`NG-{=T#x%rP0ciQ&CF%m`;b@P(v+KZgQm%Kv9_K5%2(f#
zr+1|O?bx<@@3VGvzh7(6K9eka%F{ph^Ob8}ELm1O^wqblnSS*xlei_<g_peMmQ9sy
zKG*&|lQcbYn>`<U?LDd=W_DJVe2-(CvcvJ3PkG!pNv<8cw%k5D)y<WD+_7zT_kkU^
z?U>!Rde6Swx9r~WgIf;l*t0v;PW<@0FaMWsNUnQTKeThLtNFNHH>RfKiq(a$>UnM3
zvu(^?<5zF{@X?OfEBkVtt@)Tec1#t?b=!`ev%9zKn$4yiuiXb`_wAlNFlN`0t3SW-
z+g8Wx(e-@WUfXLvW|Q<|tgf!{*o?3Jvs(}D+i~E|kqwVo`2`z4^~mIUZ(pvduYUC{
zF?-CI{o|EmabxY@<k~g6b$gAf{k!UXw%ErDZu_;5CfByg(e^r4^D&zwSFA4l!E5Go
zE%_u-Pv(dI`1L<lxu!nfm#gzUYuV$*JmGl7>Tqq_cx~Lb<Blx{W}h;9=hOGsk-Bkq
z-;M<z3HxS`|K`7IwVm_VnR@=KzNUMgXssGpOs@WMzkAPtC(PcqXJ6+)7`WH?g`Yh3
zyMOq#n|s^ke7gBzufF9{{Y$yGW^k#=HC5ZkYdK$sR#b)Ws(LfNV$~!_c}+7jWSU&t
zs^4b!P0i;juj_BCQ^k;7CR+Tqr~cx1^m`qBcsE-+<FLw-YfX*$bC2kauVLFRba}i!
zTUp|j{%iJ6d2KT@WSU&h-n!>G*G~2N@%n=Yw(rRatVaF~&1=#E_5S;RJo)baaeq2v
z{_7_nU;X{~ti{KffA(9pzxPd7ZJwHXMD@cL)zTb?o2q=V{-r$bDaR|v<J4R~F88>9
zTh*I>j8#oKkCZ1F_lIf>och~`{zDCi&h^)prXQa;yYIja`}ZGQ#3Aso>94*yUN?X3
zt8ck~)f=NDRi6I3SKpFc-!{8@cHfqrPpy~bfv+m@N~RUHeUqyeEz2Y0{;tXruk>G2
zY08s~`@OaA@m8+Oyl$$qeLb&(yKY^O+F$(i?7DcJs(P=kK=C?P<z#DT%>1B7ykfPf
zj+1yz*S~aMT^4Sw*P<&@E%*5QmTEVi>ED`k9w}ej%nX?(cPuZ?<<9m0xMOKZRhKQ^
zvi<kpRNoIi(=2S>i>z4HJzksT!=}j<%OkaYGyZNmc<T?$ZauK1c<+1kTi2J<%+9Je
z=aDAY@tV&$Zd~Qb6|3oQ=;f+?Iu{zlp35Z5Km3_Lx%LYNc&)2;Vm7Xh<cig)R<89s
z_7&HjeRtk;VBe12w~wo0;QFunvwyzfOImB<b++2LxTcQ533J72<0E@s2WEH99+*9}
zgj7>gU+_<d&wo|tDC>rc)Anj(>Kp6&zsjx11B>yB)rD5B@3?-`z-<?@aMSZ1eUC4k
zS~2zBsyD}DteX8(UfawJnI>1P4%hQ&#{J&vy#rfr-8s7ivE7fq^pjuR=XI>wSo5fE
ze-4Q=zc{&Kb#-mu<XTRz&sUasrT^v|t@0#Zu{znxb#QmCBlmCFxdgA*ef#%5V7kxi
zOtrCjb$5)-XB<+9SFASF_IHQZqpIF`rT>};DNo`RtMjc~2M^q~ZV6PK=Ku1ouQ>kj
zKCesF#?f!;j<F`=uxY$vb*Q$#JG`D*^~S5ye{&&Hp2VwTbxkkVt-JOvm22v+f9Z{@
zAJ*r!s@gbR|JoTxdBy5PE7x)!k1wiv<CXqvGNe3-*UH*=rd}VKe%!I;F-!LPi`Reh
ztG=?&Yg4t6Z0(Fq*8XY6SFFypaxJIV+p6AprT?0?Q=Y^tR(sd>yymWRuHShem*-7w
z3!8rC%kK4<$}@9w)tl@8<~rv{&FA%TlI#Cit+=+AYurAQBs}w$55MKUt$s|d>1t!+
zb=_-<ado60V|BchYZ?1-=J{1``Y}$)a;oN2o}?dRwXU8=Gw!qhay*jfp;d3)PoK|~
zdgIpWlPtR85wBRCZRHxb&lQynSn!NJfAPrv>%t4w#<Bm{^%}6tWs8z4R@)!l^V)M@
z`|Q5O5BX00Z@>66KXujg)YOetZ@e<D4p;f=$8^Wo^>tHeR4d69tEt+4x%)Bidp}xP
z(x0)aN#~LBnr3FmG`V7Rtd(ouZClq}d+pM|e&avynfl7<UZe3kS#4~1Y+W0-GWNE(
zyp&wAT2tHK9bONrdgGP;Yg$fuZ8I}unq09u)5^8&sW&YRtLl9DFTVJN{a)v*jYE&?
zj<F$e<`*YdtTxy7cZb*dsyANgzoyZYC%F$0t4pn1haSCV&Gp;1?VH^{@D@>1{mALr
zSKjcv`%m{a$@p5iuC80^Upr%Oi_1&#iq+BD{_gNPQ1!+u{nxad@+3cRi`A;f_i}A(
z-fu5ql>N||uleqrzwTG{Hs`OIDxa%=$@R4LPrYgO*#~ELZykJL5U*IBZsls8*HWh|
zR!mL3w(5;n`md=k<wrL&L#D|Ut4;sD=QX=+$Hp!D4&1o}uBq?(^}qRr{_(Z9+F0?;
z-7z*K&ivx!iq*wduKATqEaZIur&Vvf(tk~LDNpkAwpbmh=h2M&dS6>VJ=*oO+5LMC
z?%O)Ms9XG>{H@Qg>_2}UuQt|wOLvSl8HY{d6|3pmzR5Lg+l4NV*S)IVc%}cE{ZpRg
z=ghG>)ylPF<5JIFQ&S&)|6jlA-qTHz?)AjkYGeC<=#H`8n!%-b#cE@1e|LC2y6TNr
z`mafl^5dGBA=BiF)rD5BeY3ak*k3<yo85N9`XRfGU3~2?KkFIyo9=Cv^Zis^6J|*}
zV{ePgOUV_h!?n-d;kB*mjaT}wX*uO}&CHN#a>eTEZ|&t8cP%-js>>F?<KnKP{XcJ8
zQ*9i*zI(lT*~SBAk}FmxTe%M0xp#K;j-`F}<Mz+J^GWskGt)Gg>-v<>R69+%SvP2!
zT(R0P)APDx%g%#?U$q9+FnHOSPo2Ea{ikQ<S0>BmY9kBcHosy>A-Q68zLjgprVCzN
zua7hDs(LfN;*<(5)qKip#?+Qvu{u=!-i-U@>c@Mu+HP`XQRCKHeMK?3I#y5U<?8-O
za!I!*rhf2y-~QBcn)z%!-}e29Rn<=VwDlf!;KgTh#p*;W*Auqv-?8<Hdv@<Xuy0G<
zF(0_!6;H5l!KXIf?+N|K<LPQ+`bphmvTyS%W|M1WZ9ntGp4Zmvuh?wC3$A~6y*3{1
z?G~p^)yBp8mvV2-;8JqM>Rc<=;4K%v^gdG=@!dzP29=v-{nO-%)!y|zuf1CiY`<}K
zcdsY=cbZ`SrSIN-*F9(If_3f@qa)QuX4@H?_5IW2iq(qh_vUyUcMSK}F=#$@d|~~&
ztFqjyrs=<CyOhV>%Sx_T9dG4&;?r(iUoYJIcHDX}pF7;RXAy({hu?Dlr}y8NJ5_B=
zecR;YD^}~C-18duT$<-SYC8Axw3&xiy%}XW4zvBnnooJ{sGVzFykd2>m21o{6R%F5
z3srCKgEhIbbH^=(5s&1G)#38Z_{wJvuIR*Cmd^<cT3(A6^!V9bt9JFD*N#=&8=lg2
z99LQL#_;M5z5d<SKj_9)GGP7B?%J^Hs?GJ<UG;ux)>o#DRlZRFQXa6&Ws8z4hG*w;
zP1pPtUadEn%lf&CI=#HP+RZqKWlcJdl*gSbk~@~$Z|HgMo87X%UcKgOS={6&o_E7r
z;(24$oBIbbJY40gzr9{ptNgT18&BT3<@Uktbox2=wSC5AJ`b{7kIwzi%F;P*(#G5)
zeZ97s88S_-SRHHS+WNE`7y0R^UL${a^M_v_ujf|1xekff$ttIqT$5af#A;0)M|X$U
zgR0(mrT>yCkCZ35pBJk$tz4syi*C*1|9|nX-FJQeegE^-#^$G1zOoxvL;5jRn{VuS
z-F9$i=YweD_8qnUd$;`Yi*w&>ebt+O%z5ol+W3y{Ic}1EjMb%9u2JnRWL?JnhpOK6
zW2~BeQ=a5J5v!y1Jeu*fyM8M8wAr2YO9pq$-n^$?{TFc*?708ed_G<$s@|`tK=C?L
z<z#DT%>1B7`Y~1;s^61qy8bnpGS2GrMhAE7-#)u-?%cbq=iO@XQPpld)4w(8JW`(I
zJQB<EbGdVV8+T5etA6C<i$D9&ClC7k)}?AEwj+10mGO+_q3`VV^OFwcvu>S_mfdt`
zeFEsvxJm}B|JsMVVMqUU-O*~}^v1bkcECREMak8%s_mQcx185?pRFwE$2g_kRn<<)
zlk{V(PPB4m|K)fj&x@+woJX2msW)!bAsY|w+q-9f-G0ro{ztr4*1j{})$<y+Pk$YQ
z=0EX?2fe3#Kc@M4{-$cDopI2<S(aR}I@iiI|9SBncHg$=`mI~*=R6A@XRrLz_igGQ
zUl*&5bvJd#*swg!^5lxu-lz4vmUDdFT=k|u<CHd!)O^a5jIUU&sOQm)`|Q6QkK~!I
zdh<Hk<VwA9%XHKuUa>kgmn-iZx?Q(^cK_CWJNC}~=2_0SgO-n~d(gV~|K&#?(*M5U
zY_&c0^seKeecH>CH-;N;?m2Gh47Kl=t>0D{cnr1oA6EXyyVhKGJY>9O+wIj(Qy#W&
zmM2#XFI<u9#y$0c?S=mO-h5MU|M(AofBN^mRd24p+gak)x(=D&r(H;{SRF3kX53wW
zp!?o_DfdpV-TRSm>hH&6)yC#qCijZf)!*IAmHU(J?29RHKmXBJmDkMYD@#6)opF`P
znrbKI`R9J~;Kt$=tCOu<o%_s#-`=F^i5@?3^dnmy(B87zIFn5Eh+BKrpmK7>YD4)p
z{Wxg5#VpJCdQ{b$d>yB`N>ZNp`tHFu+mkC+=Uchv_Zeb5SN+Jz3qSIZqk~?bE>$~C
zpN^^^xngx_Q_pKY*O2Ejs=j93YajF0=iGm4rkU-04(@2RvFdxeV}E|dkV0~GtZMtF
zAD3&~-=o!L$7yc9U2bi1Suwd{b)uDP-Yflh{qAjxVLSAX({JxTPn@ncE`D!aXQVI3
zJd$f=Z9h}nFSl3D6OX8RJHP)`Z6wO3nonO|_S^?#Os-g+Yvt;kCkAZ0kVW}<RF22D
zRlPYLlcm`|Zu7Z@bVhQ;YVR|8UiJI;TbA_8(N*WY|JR$R>v&8TbRM~0JW_3J{JySN
zvwYYzxni~AnY~;;kQ>XZckJJ@dh6C52Nsub*H8V*18dyR+*MiPmT{E~)74JOlib&c
z)$vxYZA(1Yr~UnBI^WMQ^Zcr}o$FN1$8D0&Ys6|@`8MM|^)AOF=ZS|_z3p77H)fN3
z?j}}eTe)U;ZP~GNi64#l(ht1myYDx(a^;(=-sbnHE~JfHyZtyn?uWdlWPHVH`}g;}
zYGmbUE$PvGzr&4HZ@e<zQ{my7PkHT_+LJ3*Q~#-#Yu9XknQ-;3d$uk9s{wxG(EI-?
z<Nl+4xvs8u;x@^+kJYhOu7k@l?mylg_s^|*^Yf_2>txNxY~7>Rj1-Gktk!JqdDXAp
zY}>zM<ZfeEzH;?1-X~rUs(S192<LNcsQH+!U3=YQ9{u>?)g)J}&a`sveb&|`i{0_=
z&i56}yuRvfkFWDJAG1luSFAQ~>3I!*77JSwuk}@LJJ+F_kJ$*SP9yP()up>9*VKpl
za;4FjP2v@+qjg?s&a15-=XA0!=D*uN`21)0-^V^tZOm-#o+rlD8LwEas_mOx`?l>K
z`Ps~Ib!PoXp7Fk)O8?!j>dpJdoKLenkCZ3+{AX=<x|M6(KHb_!|NoJ1e#w3B+u9`8
z6X&Xpquc8Fw=%XixvUtkSZ&JoRbI}YE5&PX)tmd+>A#wE9_@0otbdwZ9jn=HuIZW|
zcOQGu{q6pG$IXB8O;3JK<(~O$<xW30_w!a&j^rNKXUQGQ6LYz{_p!S_6Ie>VKmED4
z{pJIvrsv})*Xguzd$+IWR}3j6*UCJH+j{-HocHq{QT3+3<CF-SYCh$)nHlj&u2`LG
z<r=a1f>tHZ#i}<yzix7+g1BWm>XBTrI$FLtE~e|>W!Fx9@8fb`ul2nGHMh9Obq{;x
zO#l156P4k}j;`mpT9Z4LtG4(0`M|CFmmKXq>mUA|IWF#3_2&Il#$B?^q@60?{DhlE
zwvk-1Jl)E*f5+{+w;VXQZ}$3~x99s&w(m-f3wzve@8^CYxz1I+52{_8To-FTZsTf8
zu2}6Y-}H0mzHJky^-1pZ?|j~Im5x~dhOd0hH`mXj<{wSoEQsa&iXnyMjp2$P==JY7
z`yo|bw)j0yoPJ9GxSOsvj_&XF?`0bgm`Sb}9&hE!FMBWghV5J%Kl9^j-+IsEy#{j}
zoT@f1Jga+5^wtb6C0DH0)%MH%`gWh{vWHf^InTr@2{zVz%4;$+;*ngjI(s+d%I|}`
zxi43u#BGvXvD&_~=e2)vU)^%qvwz7y-|>nZr-!TF9AoLnY;e5h8@tPP=$naGtfqH$
zb4}NL>x47#dt8?5cunqg)o#u&P40~~pD|dAMm~}|mS^X3k2=5XSlm|%UDp0Ded@0}
z&Tp>vay&PAFVuXj$6cc*Z;ZF^?)87&kK3_riQm8XZF@fb_&DBJ_11ASpX+eV$Fgq2
zjclXS|FzxJo?fo~-S3^b?D;Qr=H)xL?oO_cR*tsU)zwbSCh>~Zu`6?JJb3HQ9b4;%
z%=t0yLUY~lhK-k!>txmY;Fj0fnvdDI`r;L<jeC2?%iQm;56qR<x9<3R`tBX|du)sS
zO_PWIrw4xhRhw(fSG&oO@prh&S3kS{Ri0Wj@{xUFIaS*?ug7zVF8k)R<Xx^u=ksrs
zvAn0^+ti!#+Gb|RG<jouY%XuE_vgmtk{~Z`eDR4mo~(Ks$1_#lysyqBt&Brrb$*T-
z!wt3lzoz4(s=YX-zng3+PjVkEhUe$<#&P!0f!W=;f>^@cq4N)U|JFFZtLn}B<c!Bl
zRZh0#s?YL_Y$NtDJe2F8?4KQ%>5<pzXI8!OO20PMrhHv9Gh~`v9jgPqT%%qOhg5UL
z;#aJF;WO@8=bdK7{QKW(r+F=D)(x5_SFBF7a*aE;52~ks+2iW<qyPH!bhUBuVD}oe
zfBXLV<XTzV&(!u!KQ7nzepdg@JfiANzE#ym+TK+2Dc`(f^f!ehSFFxmo@-gYUo+$C
zZGE|tEpC(Kiq+mbdS2u9N!{Zfw}0@puj;?Qccj`l^_;HPxc%c5s};3<(~k!aY+Z7+
zmv8>eZ$F|n?lZ2EWxCpF%A>L+SFDb=a^2qjF2^Nhd&ZuB`ry~L8g6HaTWi(8Vsgc5
z-Jzb>px4uZJC9iS+|S(g_k%uHxv|=5XB<{Va>eRwE7z#&lVSDrFTddp-+8J3JaM7g
zSo4G3G1k9*|9o=AYWtl%uPx2}fc}jaF#qnWe{pNh6NjtbypM=ec0X40O?gyx$rY=s
z>v=S<=kvEs`tMV8uZ!oe^G4M>Y~B5T<nLbCzE9E47|&t*HOrGXh9~Fp=5=%2Yi+ad
zsOkBKyliX#=Nivc8<&1)a>p2MsO_8c$8z2WeN@$(^KQmlp2y~zPkHUACspg>6|3{D
zTw`{bcy;o;tLn|~w>7!4bKK_pBnt*Sk}Fn+p4;;px6goTu2}TbzyGGU^dF~3tBs34
z()GGxhrR{L)v@~FUar|g2X-&^eM?jQ?>+u^U)BD+RK``-t*UmKa<lEAX>!HtL@QT)
z{PRG4+w9Ik+fTae{NH`~$L@8ww{^0dt~NH6SKNAQ2A7g+Wo<uG+c)EW@Rkc-+WtM$
zI5jo2%gwU>X>!HtTq{@lamdGV`gb2Xf3FAs&e!GV)6JvZca!Fd)!rZNd9|*uZ>(RX
zXsTY&^mU)R?OFZf{z$d4{l_LBU$I(oxR-10{{Esf<q3S?_*>tT*QdKGOMdQ^<1ovo
ztDThR?lBK-BmEew<E>ot_uuAUs8Zv?9?kvzQ&n$XH=A5%Yd&t{YD=zIZ7kohuba)!
zBgR!aVtxPp{U&dAiRFl0JFAj6h8O1Y=5=$N{kS@_{sV`fbH)Arspr-C<0rfQJFbr8
zis9kfr#XKt+x`8SshOtz90w^Mt9F`lvu@Bdxngzof9~a)A9sUxm~dJ8F~`H2syE}V
z$+Ds5<2J6E<cigqxm^ER_kCYq?dAN^<UL>Wv7F>SW(+q!zvp;h`;Prj-@C28CVkwq
z9lrjR|M0lqiR1dJx1H-y&Bt=wo1-|!@KP(+?s|b(YOdFQ_F3P0RgJq3_2pXm<8=)-
zVXjymt?irRVc+Z>d!9ABt@Sdo@EcdRod5p!-FK$vnSMM`ZLB&{*I?CNZ_VIRykfQL
zCwjRCZ@KWL?boe1%~TtyCFOCoC0DFYw{jh<A1t-7##J$J{rLk|y(Hu7T-BRnELPd@
zQq4EzfjiDEOs-fRdO_D~y5?J%2L4<r{oMUsl=X`~Hm-aAUwuJxKeO76Ym@b8&Bt|;
z<Dz3(<DwaVTlejJ((VKM?wr3qU-<Bwdj8A)@EKRl)Zag;9JycG<f>xFbX?u>jOB^G
zTw`vtruvbOec$=>56pes7gfE<mE+=cm9taE-z2$K*7h^?de?Ym-{pAZKJFu`-s;b(
z9H&j4DX(c}hD_rXt8=Yf^OsAl_w_?|AG-J}*53TL?c+7~aW7UIr+#Yk*VS0<ePPdQ
zx$c9s-(ThWBTwQ;wbPV`KB-y}uUM_9=h5`z-Yxs;H?Qjp(iSn^o3{St6Yu!V`_IfY
zvs1}3U2SAR+~!vdDI`~{j<<3xm)AX7ZN{mYZI_#6{nO-%)w&n;yw>mEzxt*fx36Bx
zd#s=Py7%wtA72}*jl(}Zc|XSLY%ABk{_u;KPaW-_Uu3+enhVuVQyx`qykfPzo<}pj
zmN2a5n@Sy(YyQ#B61VvkLkh_itEm_Fa;@J}zc8@7zN&Kxqkr~c-!RkPk5^Y4tA1v3
zuUH*x<=Q*sIV@yx>S*_4##Qz|S?x6CQT4?uR%>3;^IF_rTDiQH)G;X6hH58nmv4RL
zTyn+gOe@#3uiR|GOH#+6T<5Eun2oD2xni~XXwT~h#_cr0`qXjHy3TGkZTjv|wG*>u
z`LJnn#p+Tk*B$w+NauHfYwR!bk1u}lpa1APu9~T9hZ^TO&YN6SoQhedqaMi>s}pnk
z=i0OLbI!h8`JBR_<)i8zwC+BYxBoajU2R|d*~yQG7|zu8^XIkM*+u`Jca!n<-+$>V
z+CK-%c_ZsKRXa_&*>=!0jxjvf%C)zCaQ4JK2lLlR2kkP^vVZ>4T~BPEZ`)boHm;K7
ziq+o#((}se=Hf?Ox5YQU^Tog1-;YPCjg2px+$&ZqUfRobcbsoCu9A4V+G)z&XE6Bx
zc*W{?E7!9JZ@QqRsiS>fYqFfGcH%a!vgC@@y7Fzt{W87|%s1cU%7U29uNYEDu2`LI
z<?4+2eM|b<?Wt>C{_LOslIdQfx$eJEZLE34<oy_{?LXJ^>eaTi(uxPw=l`nSyidw_
zPi=>5KIOGzs*YEzre5C5b!hFiYgcdEx^?x|J=<o->_2Svr$6xNe|+fF^!(~%xw_go
zSO4NRzhX!sxngy!m21eR3ts$%^=rZ>tKP4!J>%3=&@MO2`lrbit4+tcUaM;M;H@Q9
zr`3ITuHIdjjH`Da+*P0K-MYH|3iRy<ws&jjehzTY>g(1%_OYwC?A*J3%e9N*{id1s
z{YCrln#FZ*Wl1ZO=8x&cx%{~gzFd#EuBhYTE33lvb5n1-+$`&##x<rVYyX^22Dx_F
zE>rD(U*vbT{s{TF`?3A)HuEp}zBl|<+cn4cnaZ;HzjlwKX1ih2<d5lw+P*m-*0^Z@
zee~|&Xb*~Em9>^{|KRoa&EMC1RMnf~JLj8bb;@g-nIY5Uis|`QuKHu48J|zD+k}h0
z6Y|D)zvG(r@g1*A)yC1E@17Hf#F<~5T(LS-+qb-$LnpT|>npwcI(vTa;e{W6(+A!h
zuV+@h@k;+STc<pUSI6p=y<F|_wPk00%BS;psuuR{_2D1;<RA8bzG79iap=Ew$5@kb
z*fd_TI?>A2H@>#)Tz#;zEiBiWzq;p_l-JCQs@`~||B~T!&8Iwx*UH*<rk+RBkJ*1Y
z9?7$*>ix2sHn~!7+%g^Yh*zvG&E=Y|`N93zttIE@QR}-~jsO4C&-vRw?>~>M{Dtbb
z`qzFA!)i+ISRSqI8_&W0yuj1Rx%WIN$HjrFH?A3XO@@>w>E~Fk`o&(ZC+^v`YtQb*
zo^iXa|Hzu}xqrP5&oo(b9!Yto+G%HO*7r~26|2*&T=~8C)sI_U-=|%lK|ZjU-x8Rb
z`t)l*^WgsX6X&Xpjj!(ZWq*$T`Q(b#rsF-Yt=&LFz9FK&hQae6dGHr+sQ#PTTlGG$
zHi=WVJW}&bdGMayrO6em6|d^%%KPify}I#oJj~_o?zqVRZ+YjfzuEr#1<5#FZKt|;
zj;l6#V|aWn?{Z$R<nI?ezv|8L5Wi$ORr4vY$;^mHa>a06jfdtqU9SGU?7s9|u0(0v
zM#Spe$B)(7R<61JUBBb@+5L+=9Ht)o+FNhyKOQbr8*5%W`M8VK_Sf{hwsiu{|5Rqw
z(;B+&K0Dv=A96e#u6jG4|ExB$@v)lEu{w0exfSWhSY2JuBmFq)^90?z<7yne{@%M@
z_4xMZr`j3gIePEz&uL<KaxQO<he5~hxO)26UpV#EyW2lMYR<!Fs-1Sm{{5QyIL2_p
zFZKF&E?50XWcTd0`jPIIX5$4+SN+QiueguCx!O4Uy6)H;S5<Pw>U=BLvVFd$#$D5X
zoKn72?KI_P-Jof5#p=*6_q_U!hlO3p%{B7(Uvlnyb37cadLLfPnk=VkK5m1uw3j7U
ztk(VaZmzr!yX^cif4KJEIwWXbFY1r9ZP~k|SKay^uMJQ6eDZIs_VfO{$$zNkV_S<x
zK9WDCm#)nJq{Q2Qu)Z^*K1<SnZP0nWo85O{$8GhA(gU-LvQMzj-u{GjS8cBQ-zU1?
zkC6Ops(hyYr4O>rs7Lb0{$y>R^U-wuYmV<;yqjj5Pe~^Cay|0<dM~YZ%YQ1~O}#0v
zX=a8@lRM@c{-54>uFp*@+OcWoj&o<eJf54Y-ex=>sq%Ck|Lu&;_Wjf3isg#hKAx@d
z-1<1m)8;>Uk`H1w<GH`C#m>j|uF4$OjDx10l-D*hL#D|e)8ljbbH2~#@anC5{r2nP
zdB63AztPEas_K1U)!7_piP6rO`9Y85is{B*>AJSABRl8&CSJzpB<GJoZM2tt;%Q%h
zINy)aJo5Uqz1qI|^^>1(V|ZaMZycBFk$#=39J&6;>rzv1yWA}6pT;qU$7=tK&r#PO
zbB-g=WBv8_&%bnP{nPue<4#uFNB>9nHMM{H{`usM;hHz}j`P{Mv*}Xa*nHuafAN`e
zoY_$IW;~`})Ar_?Z_1e;_DHT6o}bIr8jqKy>%30QEg4qVB+Fm;&Reg&_vYS~$#|*S
z&XRcc)(kEsZwwEWd-{Dj$7ARBU#s4X%lI`3QeM-{44EcZ$MB84TvxvSTzS46Qr-OG
zov*s>=KkY%Rkd-t{!QAyu{zPpHDCD>3!T4%GFL~AgQmK6xmngfjn~S`G;?y4*Autz
z*->9N-@o&S`R85t#y{x)ea=nQ#>M(KX|7nEYvtP7yMP$c^5|9dJxZtBUg^JPk9N6P
z)<2C`toFWXlvnTirhoro^Dmoz-kJXKb)?#u`PJ?i8@6AwJh@`EqPAb|<1xqKbk&>h
zYfJw%ZMMtJvi@mu#p?82uIbFr-QVhUXK#Gv{MP;RDD_2JSA5F0R!;cXx$?1p*8e(j
zt}?88b9W4mt0uW)x#`z>p3C_?EZ<V~CSUqDS@za^%H!@vCRZ#kwsO_a8g^{iSw9u2
zZ#_+2i+Rj_56{$!^2uvYlPh(_ZCstn6{{1qf5zW*{cByIUeS}S>#E-MR_(LU$CrNe
zx3~BA^XbZP^f$Yn<LXQ9SkC-<ub=OZ_tzPB$+D^1Y09IrC08uZwQ}uW;@^l(d)xl_
zz4yp<%EhWTZ8TX{yrquOxs2Iv*dzPI>PT&$e$H5#>%c3%ho$d+z_2PuE^qFS9k2Fs
zecI$bRr9eNxpS>d-WaZXYcKDBTL7K+|DE?G+wyIG3wfoxJi+h0?~^ac`@N0TUgNvH
z%2TK6++3M2-}=hA>=WAyt-KxIPOkjL$nMK<j-Tav<o(@ytG%4(<J#1l@|tF5$TWFl
zd$^uo#zXV|Zn?g{?^xB_?)Q^5-_AHBR;S-%xaKz|>-SFHVU<m=JiixK_eE!#O`CDL
zq1sR1H_L}j;~2v;b9v)<u)gFbw;q==BCq+Hf9Q<I^Hpy%9xo+RJz|;Zs7LmR;h{R8
zUUt0S&ExTz)n3M9$8RoR%4<i3t#!%UG5nvs@i^%C8B@&_t6%!;-+N8}_pGj}Ha5L&
z^7DBNPqcC^=l2V|sOpVZUiT9Ibj_zciPy^7cBY<3bNpWM<QKUhc^*;q=KBSjT&XH<
z^WT}81p^-G$5@?f<?8g~;y?1yY2}~Z{`&vj|Gwm6wQ=dUyIupLT(&5=Vzu|TdS2b@
z!X;m?o-41JBUNv{mp0=n4WFp_rkwd<kK~Hgs(K#j$Labv>N+~FA9LSFmT#iF?6tdA
zP5gM@qff2BYPy0~yZJu4WZhilR1nupM?I1|mgif!=f3Y{V6NqU-FsKHn{gWFCTGfP
znwcTf<c{^B-|3Bmx%V}5!*p@CH`lK|^TYk`1CLf4Gp8pX2OZ1W{_Z%QS5>_^esa7t
zH0^S;tbZD>Se>5B)w;jc^Qvv;-xsW1v%2^Gp}y<wX|wh1gOmUG_r$lX|GWP81?Q^m
zi|_0n>;3uq=aYA3ZNKU5J;%G_eL?y)ZSSpinsR@Z_Iz^1@M0_1+;QCAY{BK``!4^q
z>g~KQoy)c29d!<_@+9v|V|ApqZ^qqRu8mJw+(%eC&*Aeseqm3}i^r?poL?HF(={Kn
zaZfZ}v6`uVZ_bNz=a>2KL2Ad#_}kL_{kFxw4VXH+ZTk0eUVKEgo8L=K?oCy$;#5rM
zU;l=*k=(I7H<x=^@2?ib+p6B2_u`mLd8E9iTO9g-a>a7*yL$aR?zs%DthM6ow)5}q
zKkpr>Hl}}f^5Y^_D{A{@{I#lIQZY_<RhC@G<owZ8mh${_Zx;4V;}xsptz4bgi6Q5=
zzTJn;-t(=O?(9FmovJoY|6cbTH+09j70DH=b?@$Z_3p1O{CwNA_t(F2_Gvj@H&(q5
ztA**mtUFZmO}W{2&@{PXb!jfws+u3=)f~H>>zU?zTIS#24{BlbvgUhbR+eMlcQ%<<
z)qH$M@7;a>5z`a3ea2y4=jP+IF0(GnJFe0Z>-)b~rpcRKVm@Nm&Z>CFdge@T9CW-N
zUw_kV_15iMcIE@$vm3YU-~XIF`zHUjuuuM<KRQ*P#|c5_k)L;Nsx}V4ck*!%!*i`%
z%lY@F-d6Q?&VSWL0$!~796M{fafkjNuUPH<Up=qo{CiV3SH10AM`}K9*A7k8U6EX|
zTJih6T+8|QrtYd7_o_BxloqF}otRDX_oiZXyp?M?|K8N|tKNJbt;uz&=3_R=-<yin
zy7%<FGVb%-mhx!+-qb^@-gZB3tofKtGQMJUwv}rsdD{ElqlWIA`*K~V`It@e_oiaC
zy^i1IetoT6Q#V$<ZLj2x+2h(zU_d$JK2}qI(91P<{#yLWtLpsKZ(RLf`|lH6U2Sam
z!|r)vK$OcCC0DGDwR7#OzsI=c)}6CA)!zr+y|~{t-2M1VKiU4gdCsS4_++)ylrIa?
zH<MhkT2s%X>BoZyZd<p6NSzk`@~y8p{_s{??JRL?tr}QNu2`LE<(liqo%N+UJ3BW6
z2JSg};p=|-FQ3%DFWY=B^nA6`&N!@=<cihi_w~Fwxz?@TxNpZD^-;UUeUblzf9yx^
z>c4(FRBasj<L($6mZw>sT(P>;%5`_VKaEq`TzR(c(ae>b41=c06|1AQeKWrH&O^;#
z2@TqH<g(Ab;P5xr`C;Zn)tl?GCd=uXkK4$dYh`l9YUYo+xkg==_41CZb@=*=TVL^e
z?Qz%S-IVq#^YA^pYmzsH=jQU}{ok^^FWp@4|Ek`+FHNqCRj%SxEa%_P40$C?t{CpE
zaoY56_FaxgehzhW)tlFWI5l;qyr!8MGEJ^nt@x8(uDRoM+*2A-V|Vc*cmCQ9{qIYs
ztBq6juj$iK6(m=zj<<4++I}JH;`IEgH}6Yx-e~qsdHzW^3;U+Y6{~fBdWBbgK5yTh
zd+S5Si#fr)?wh~<yZX;-8>@{|@9&=5`eIx$n_RIv+saj+%TAzrQ@Z%`$2;%%n{Utg
z<3iP&^GEux(|F~YFJF<Sw;;J<b-1?AxF2=?n9IB9-x)}&H$LOJ`QFv3W7S^nd$lvh
zGuw=MBySAY{aH8fbj{Bl5A*%o{*{LL`>yL&4_rU0t@gSXeCFuO+vmOJ^>$<BXg`Pc
zKJ9XH$N21A?wt2JxgWE7+wA_;Pkh1?S9iYFYsl%TUDajf@A>!x?tAafPer<mlj}mY
zarn=>WAn0&2h4Q(zqa3A+b{QdFTZzwW7V7fj#JZo%Ilh$A=6GjXP<MuTrICBt$)&W
zi$YuRvw!mGey^*mjg$4SopDI4&g*Tgj<s?P+jgPL<MrICH(u$#X8)8Y@ru=&4_x83
zWp@ACYu7DGYijD3|MAJ+)9<yR+BjeT+8LXy{nPYgtj@G@^>4G-`FOp)>dp7wr2m?F
zQeOMmW^V8_xni~Xg9E)Df9)c@?)ZUkyTa>G+W3p^7#p0Xw=}t8b*YuBw{~fzczvkq
zjaT}wsV(J6ykd2<o=0<@m^&V8d|msP$1c+A=N@_c6<#N*jhPR1$5@kb*fd_TT2<RO
zxrS}K(B<*EU)3A0^k1`o%9D7->U1mDoY%%DJn5!u7k9Rwn%a5&)+@dj>s+<5?!(<N
z)?^$ujaRHT{bkSVS+jSpua8>Ro4&dfdGf*CTZipDV)+|iH}&sx9kRFT&2>onFPk5!
z`KCN#_s)4WRx9#6YQqVxLn`b|Ter`S{(D2i+I-B^o=4_9J6-Ly^Je>a4%@F;9>*A-
znjr6dzdvRDlNa0ZA3uG^`}?my&sN)~KQg&*Y&ZT@uiy7?*?FLOK8u|`=iKvO(Y~LQ
zak#zOIC;K1Cdbtq#~5B{=h{2FwSM1kNnh4>&1*mP?d|KeSaq^guKDtaaLE;`!?k^L
zUfFYC`|Q4(_8i=|b#}y_qgVa(%f9)Z8F$C3-i*6;mbi`HyZe4WR%`xx{Bg3QzEG}n
zOn1I$Yh2BP*Z;dsFZ#qi>-#C1NBVa|wSB(+wX-+t`=@b?;hDL-x$a%tztJM*Q%Bw(
zzP{?s{ril!rka$;eFiPLVz~K#_xiWagEzLm8mg&oLDRqgz{ehN&zZ};4yBDcPTLuW
zRhnF}y41?GoL(QQdgGP;YcixfiC3(S*7InNhrRo5YpPiE^tO+lzQ<KF^*N=gH^)Q9
zS5sL#W3#M(8n0N*e02Qr&^ZsUy>|7+CvWPnX5#rbf64d#djENNQ?-5JW0RlnVt8&Y
zZ;prMyT6&9?LP9laIxAr@;BYrh-Ue)X&hs?x3+Kk_m1m^Z9Vz&>+YJG%FjV=u6lFc
zi&e9C%Hx_yu2`)o-zL|Vg9o<XwB@$NpM<N<t8e;~$L4xvy6Syk&BrUb*42DFW0nni
zBv-6X&E?AVN@slaeZNiaKkVAFwS7xsP<3OM{g*HLqi?xtrd}`R+H3M=$MkWgqaMi{
z!|i|DJ5HM8;X7LS=I@u}IJvccK3-q8ywH0R$?<{5eg69X<K%F)ee%NO<1w~VwSCj?
z%XPidzAngdo4i+7J54$B!ya*r;jvb(`PbRSK+QFD;W-ca+q}<c9_=h~YnBh2CReQ1
z{9Vs$Q2!3wf7tTxKk$k>`ulN1wQ>3rlY7PLOe<F%55t<9c=^_Myt(uHKIg06Tz_U<
zW#>yZ-;_sH7Oz+x`gq^*@VM3M+uz4Ccl_S8)Jx@G{^zrAZjZYr<I!qAo};p6UGjDe
z%e^@smTlY}P7B>fa;>U1G8fCa#X~2_6~hy)Tthcr;EMay_Ajb>^STkIX7`lWHZwz}
z$+fcfow=*$)f^Ak*Xu`p0a@n@MYb*Qh2%$m{8z8f&zG7<=kq_+#)|)U@^KfdbFExW
zT}z$D>0;H}c|EH(n)-6AHsxW{c*W{SJ&%m9QLkr>W9a67Wq-kEzSsTe{W?FVYx2bL
zc(uLp@4M%gX8Evb^2Ttwwr`GyVcRZrc^ucx)ti28_HUP)W&P9Sis9M0{pTI)^)y~j
z*m8Skm-g#ydwG9-<K|!X)c^LQ{paTk)%KxJcgN(o{gXF_+dtWJymia%H*6cX<Cyg?
zIQGi>w7<71{hD14S36C4R29h;!>Nmx<yy+0@aQ!6x%d5_hqb@=E?KUwHa2{!UeD$-
zj>{FRW361HwqMA)eDB?JtKN*iIA!0HHJ|dDF%`utR%_~cG{?iOTedAjKOVhLuHTzS
zlPmLaYnBh2CReP^T$bzh`5)sh_{1^S&<9`ev0EQ7(`z;Tc)r@ml6J=47MGWjD^{E9
zIBC2t-(vA|>A&?=Z|+ZITs1YNJpaU-g?-cHiq-$e-kre5QPz*+Uk;(DV7Utx2m(^&
zFa^YdAmOxCj&P*~QB!)QK-<uZmO}y}6ag*5AB%tnC|VV;a#lczf>;ow2r39lIfRJH
zCD4Kh|L3#2lWe!yY?_weSM)u7ZD;0ro_U_nyq{-gXE(dEi%a6l&bRTsk?j0YwprEH
z!|%WBpXKL?zW+?G_g?M!@fcP!(>9q`e6D(V2iVPvA3MMFJQ3%u*qJ%0oou<goeQt9
z8t}@JaV_tO;*H<#@!it%M8r~;+K5=ft-F{aFX9TTwvxE2ZPU~II8V$@^~N|0r`Yb{
zv>wYnIZuSuu+;A>x*to=6IomlTjmzam8S3ts~1b+>KONj?BCmApS$gS*X>t6?)$u!
zp6?d-e0+t~jI>RM*TmzNci88?Icx3`<35hVuxU;0WXqMTB0apqs%Fs=aV_t#&%Hk3
zQ%j8dh-FY}BianNn0GftTwyh@B(CntFH2sG`%6>3G48`Dwq20cW4R~eKCJ3fzpv<i
zEFJe*ToGI57R!~U@CvK;lDM*Qf9R+Y6G!#(jK9{1RUarH_qo^8^WDFCKEA@LC2f;=
zP0Gg;cN6RV@W12hqpmMK-^XznHnUPY*>WYTNDr^D>i0%@T+27~SAOvB7fR3f5ld}q
zBOgnOEkEz(zlbZW=9a|OP4Q*QigABosyD`cIK{^E(|RoTWZZ|<;MDIcx*to&eHK^5
z*5MW_6{heCtA!<T<;Q(`|D|_#q%AZwe)}uNmA=oCeNJm}YNw~;E3Bry+38h`Yk5CE
zmjC`~#u0JNOl=H$yKqcq>6PZ;mACqLXIv}p?*_TLtle;m<pHUkY&py8Y94Wg)tr*J
zIzA^@d~+cCE?ZaIS4tax>%x7~c&}?q_4ZGNvRD?T^>C}SU6vkk^-X0P-zs?3r1kQC
zEDbMSk53ujJaNM0Q6thvMB_5OS1(O||B)B+_eGtS+Kt~^iMU(Sa$3xr#=N^J;ttE2
zG%n(J9grTyxDQ`4yv}>(M12weikjl{%B!aK<9rj|S-r75Fk7iGkNCrUUNQdo`&M`E
z6{=Y(`Ae(+?W^U_XA4pr(^kH+$Ky0i>vLCjoCim&!2A9;rF!Fiw>X|7_?EPuEibh*
zB?;jbR=Jf5ado_3)bV$urSAJ*JP-BmW5XNllp7w$Rln5UwyEtb#=&VlJWE3Baxvl!
z!}-N{<N2r9zs19;i}1?6A6kBX=(3?IiO+xOy0=$v>?{=fu`tCHDPiB4)Ads9N0>LJ
z@sm9-c3pDWQ{(vAC)FFrPq=0^#Bz9bH$_}wySOB-W$~?4_d0Kmo)rDwca<v(pLa^n
zKT&o-TF=HnrEMcU;tH!dseE|FIPLh<dRhPW<b0Jj?{;eZ+7(OPm#8hZ{o<-u=8ySq
zH%^%mZy464@>%~@`;0@iIwODB={v0yzss{_syF&K{PO8(J(dT?N;gx)6^0L&#MMpl
zWy*?pZcFvX`%YP0Q9-!%<b9{GYJN|rSN+5Z)27FpPQ7^okA~AUa^{=gDL-$|NNv=w
zUhpcEs{DU=g;k%`I^$~IyMFlOru0#rbjF!9d1Cra;AQ_9+u`#MoLKrfofua&sf~H*
z5zCb$D&$05Vbxj^SG8liTAh&}bwvN2k?LJF&BH3q@>48V8^aM-SPe?P*|<+vHPfco
zPdIMui0Q?emVNev-5#uq@zp=on_j==N{#aUS*4ALE36ij#FZak%Nf`AcYCm{e0;U1
zHu|m6^L`AgramQJd8++~j~_E-_?S`4ZWUWJuGBiY^mT5G_egI^?PSZbUTF%iu*#+V
z=;+7g>%x3f$K7|`@YU-&TP=+x+&Xi*UW&NFYF0^Ho%h!mmG8~5%XCNOLOai&alr%S
zzr!{+wXyiUJ@*Q$+EhOCs&=e&y@yMtX6O6$QoS+$V_Zdv!D&5~2QFEBskQJ5tNA5y
zEmf$O2@%i2RBwF#A&V=j3b&YdH$_}wHSK)`uXsK$9Ex$WpExf6xzUssuPeGrPsz(P
zZPM_S=JMloW@@|7S_Q{yl|{UH!}oXgZ*%^5D7pBkR!JB6<68DVwe&cR@fO7fq;|69
zE;j2(inzjX&Qft5JSF{Xcls1_?_Njl_Ss)w^uD^9j&>rJw$w%>gj+{Og@uT#Zz^B6
zW~bMRJRY`8^~U%MrwCzKT94&{vC_>HafQ{xC2@6Ae3`N$o)=TS@j22guBae$i{(mF
z#1&RE(s+#XN9Xa-(U1A7pw8oA$@EI~R!aZ$hbLTAemu0MwwwC)eB6a$%?CRBw{Sdk
z#x=51<K3j6ztu$-l^zdqd`9s>shw=Oo6Ymr-C;PdB(CGLBcZzutK{wRi<j?SGgsG9
zDq>lX+K7a3>&U3E5d9lg^~pDTeppdnrSF4=Qx-z$a+X#;kGR6By(F%^>kpkWacp_X
zWm`XX$e%7w??2ULTV?Nq=GN|cKZaFHDxZ1957QnvA$@MDm)ArQ%Q?A6K2<*MXQeh4
zu2UHMS-h3z;T2Z>Qu!>d@%fkz8MQp0MqluShPzg-%hlBu>kX%fVQ^Z{mSerr6mf;s
z{Nna;{wP?bxJFG(Z+R5Z;`}jcT64M<A3OQ5QPY<Fg-bDj_0QVtgDcmi??0sW;(EL^
z#_-%{?4;)7hEK29M8q40jq7$gb`@__y)4s)t1S9cdH+sJZPcybbH^}TToPC5k2Nn#
zETv_4IQti8r00ja$5OrF72_@P`>t0Qdp+?AtC^|%lH;!M`vkpuvpBW?@&j*9Dg8WQ
z#5E_i5wV3^%)6VSAH!-u^3CGvuKcp(m3|&MoU(08m$S6;dBhb~Z6$G4GcK>AtMxt3
znY7gJuRNUEn6+`CAG_M7G%ex^t6>{-dW{|a@#VcuQ0~#IU)Xe$Tunz)G2WX~8+|q`
zj{T0Dt`{P%uzIm1t{rM?yDq#8skM#s)B6d1au20?<N7G9vdv?8V75|W9&v@$jI<xw
z_?kL)(%9v@+fy$0(KYTqVT&@a*3`zJe(Bn<B*qG1<*zfsswS1s;#!ejtEPIxEBY^s
zA(ngM6;|^~;yQX<^Ky@`C$9R@cAJ-ZEl6!NZB!UzS&WtD(T`zOpUS@zUOT0F!z=nP
ziy@YK;uTiyC2_5|`*zi2q2%(<Kj|D138gW16ewE=udr%K+q@HABU8QM75$er9m_rO
z3afq}?2PN6y$`J~-bOmBYMJMA7k=-J^5^Z^)W+ieJwJbi)!dS}CLcX%dBe*6{Dn34
zNKSPZrh4OfGS2g{bMw=BEFZSlq20C-{TNn*(|%<AI3a(}o#DsD4Z3^#`xu}6$lAYI
zxiOd9Hq{&N*G4RjX*n(C!mV1}5m#6(EQu?&T@h3Iyh!fORBw#0aLVe8<=Ske!aU*%
zt7)5bdQ~&7P}LI2KfeF&rLOyDrZ(C?ROrVg3U{#*apkQx?Tl-Meg2`fv%whe15z8q
zHY<$%&YZ57BCfESQxaF#C6_&QjWq7hP4z}UhE>$imeymrC;iwrm90zrk&XLhkD%)<
zVtj3x>Me~cN`_lc;tH#WOX8YXxCQ=%iPdh#-gP+n)aQnr@n9T}x21aH`ab&c#k4%5
zrr`DIQR$~y(~pS_uW-AF=*O^XPUYVTuftNk;T7X5&GJ($56o67%p<O_>a%%gTt%<=
zN!$usRZo8TXFt88^mRvg)ucA&rAKLum1>H(!m70-u1aN>H9efpNcE;+mW%$&wvXj*
zPxh%`#1&S9(s?E8$D-H1(<YBfzdV%wW|&pD4D$`HxaRa2U;R_P;TB%?X*sHhxT;ki
zafQ`_lDJ~q6*0x}ctff;+@k-oI%9c<Y^B0H;tH##EjqobJ$F^8YKi1){(Z$K%daO|
zQX4Zr-1GBlSmn0tjB8T%eBJTEgC&~m(Mon7^nR({c%L|)e`3Shw4N<@S5bI{)!brS
z-F*(CBi`;Rtddu}4|-izEQ@h|YCk-)^h)!HHw*`F)#(_2uj|b*P};_KpP&Dc_ceB=
zL|l!jjYtX0&YZ57BCar8SQ1y)C6_%lJ}-M`syB{@aEclhr}bFw$@5cKO-ti6JAW*D
z1YK_t@f?-vjpwH<t|%F9@iB|yZ`?=HQd4;4t+wurtJ=A6sY<#?IP1L4e^!2+4oGdh
zIH2dpLs-ozi7TCNV|Th}t>;N+p0j!W{tV})dei55b8+5?t=rOiEJp)F_NiQ7c=b(X
z>(YK?{WvMzocg#?MYU=t><U$1xVU*zJP&M{>W$}th-Fw>j^g1~t=fnytR60jE4Ez`
zQ#=pcmg<dh7EW26vD}k!A6CsD>GY~*oYmjm{F{p(KEHf?%}8z3Y+LBZ?zWA*@CvIw
zAMK2*Y51h3<#-CnH@V=XDYeO|t|rwR&jT^uBV$ln&zAEAEBqI6h1I-bT-`kn6n;l7
zE<FdQ$SYJ>CHbTs?p)$`7_%4`r1rzJ%I1aZqExnin@-0<T<JdFy$>sQ-<f-DUix|a
zEUu>1PFVINt}tvbiEBmv?r$!Qv*?>Fu81ehdJ<PywWjUk{85u0CFkfafA_cWKFp-%
zbcH#pTK$#s-`jf4QlFQbmtvT;eb2{bSPt5*v!5r9D#Uc?<n(SwFQ53&Ubk*y953~$
z-gQ&(as0+UG^O=yxzavGdK@od*<Oq*`lQq=i!J^>mc_f*^x}`grnF_97UjNjeVnK7
zP3^6fHqOVG45Oa#Jfvt+sf~y?3|rDR+4DziyCSAIPmfIX#(6sYvN~hAC+F!f?Dw(G
zxVm!8>g?%!)7`)P{`GV5iNnGae=n|0ZM5ys^ZpI1xg~K;nlfU<s7aGXPdP5Db=l_+
zthWD-E2VLFVX8O0;y8#}=BM>o?ul1e4X*9<8aMp7_=wY}k;`!b_3Lv_e<<SGHq~1i
zS7TZaw}Dl5HO5z1Ei8#EeU5e1#PP$A+jru`2@|VqUnzTh)3YZ=Tz8hmwK%PZSx;UM
zhSjuzonDhCPTxQMAVhCN%7;4Pg)e?M;yNnTTk174t%uo;m3F9@9$tB?G#<0#F}=Qu
z9vnMyIqnqs<gmYfEaG~lEUp2moiO`&58?`|IVEvT86S5jn=o<giM<c(*pL3Ce~K%2
zZmPG`E5Zr0Dz`VzpKtr7ZR>XI^s08wtFo*4>_xdRUtfMbH!QU=W2eILSgnre$FO?1
zB(CgyU-+g=wHmt4Z@J}&-=^19by;qlw_^Fl)K0dX<#jcWxWcMA?MF7gvbee`-_x|q
z4_N(zc>R)1rLlxtmR@NdafMZ%k9Wqk*YHVWN0grQD{b6O`uB1hj4SWQn$*VpK|S{h
ztJadZ@_+9sTx#_CJDeB4RQH86-s{dt^{$!Xk8u^dF)yvhayEu5H4t85HE8Efua5U&
zmg7Z3_P$YlsyALQWN|g6^>B+AyPG1euxc;H)!plbj(EGPuu5L}`$k#3xlg3mEIo`j
z3|mt9?06XQ4!my^am`9?#O{P;mEFpp*TS%08mC!Y)wbzre!Oq=W{M@wx8W4C+SE=g
z*TzaWQ}l0G&3y;rig+$e^~U=~SzNIgZY8ftB5A29;tH$5yL5V0JBF63q>F@;fByPX
zzlYM8+L-sL!g1QgCQBqmTw%4aB(8Vj?|E@PTb$Y$@X5ltZHXYdSc$m8YTB-yUR@OH
zRZ{#t@2FI7^k-N_B{S1{Ecax5<*m|wyaVGt_exn@5nH(RB(AWUQxaF<d2{5biQT<H
z7Y%eX{ruOBYsK@xxvAd#`=zNLqj+0d53j-)uG~iSW8YM^ZnsXa^gXDNQ%1y>ySr()
zO4gshb?O~krMR+UF}`AXSZXK6Se9OC9&v@$!zFPQye9SHTQi-lT)g)sYnA>zFXDPJ
zwJ~G&^nBjKxWcMAm0!{0E5`d_sowa#sc_1oj^#s(@5xqr*Cf2cs!uwvWN~F))!u8(
z+UaV(!7fkyb>+tN`^PD+a0{=R)JBwzxT@71afMZDNnEk*ikRa4fiqIQ;THXu)fvkJ
zvy}?-h%2lH?a}E~?O3T$)e^~Vzi#~6IwdLb{y=?dWA2_kKd*+>f|9t7o?h|K@g*&F
zzqn}g^N(M-CjI?0)f?xDc>ZZm%Pn<<=b}UQIq=Z<ctQ60>+;&dE3BGQ`D}cZm+9?#
z^yB`i-ss1$%Ib;bp7di_<&tj}*U{6{d$n05y_{dVVB5P_uj$-4y!xd!BBeCO&Js&5
zg;!Y3Dv4{!61`uG@6Df_>J6{xzpSQM?#cTWVO6_Vr&qOeOICk(^HuiSZ`bnINrO`x
z&HEL`S9jY+UU-Go{F1ohI(j*t8uLwlGu<~YIn`aA>W$ZzaU4d*!n7XCab4J58xdDn
zHSXQ%6>(+n!$w`bnO?Z*@~tDTeNw$~Ud`f~me#{9;_9xAh%2lXm&7%>Y3!uKn@6U%
zpn4NgVVg@Aed6}g=j|-6zWbzW(9~YFnj@~TnwiRH$K&`>(<U!(T(e&}c8{$ZJ6n&q
z=A<_2_D$EIslCpeu9qUNuo{rcXK{61a@kYk{Pq4+Zyb-|l+_T+wb@FAdBhb~Z6$FP
z{{C9+nYBWN#pK84e{SD+-kzQ6&BoWmX*seZu4=VMTwygV9l!5{*KVoa@QVJ6m|}|M
zfrZ72|3_S5^<qg})sB^lm6c??aMSRu%b&OVd^(-KKT|kQloai9G2#lV8EKo$Ys`cR
zz4>b467`Sy^KHAVSJRmk=hN2I#-PE4b8BZ#*GmysSk<KRSzKM0T=vxb{f|<;(T`!3
z)ey@)8TVl|uOzOCqoz(cw)bxZ=bQi4@w;3U*EyG_dgD4LycVS8rXlItIJI|3p^b`n
z>Iko}s!!$L39p?}z2O!8muC4XmIr1l73L9FShbhLHD&y<<0qUjzQPtgOWyp(_kKOR
z?oIV(Ub!^pW9x|P@Io8idWBU>+UA|`8ky=1ujs#sDW+KN$#qUx_4{mRT-Ex%P<!|P
zKi7WHcIDSOwW*E8`}h2K46C^%amBbFk-w3^VPh+N?6&)$QtpmZ-#)YSc{|QqvC;h0
zPPW`#B{9CjYH-?*tRFk$I%L%FNfUZC(6+f{wdwIZv~8+4|M~wES7Ta^Si)`ZL-y~s
z@`x*}7M8>n+pdTyp11Ez^~U%Lr>xFc?#cNptfn2%=~eAm$?ETJe)gs#Z%OZ)*JWk0
z?<3Dl?ew%C^Hv9T##PNYYpc8Yb7TI{zx?ms15z9P4l9iP?zWA*=*O^{Qxeyd@spPO
z7wiVkzHhVi_rJPxQ@zoT;S}w)rS(|uNk8^YW$O;=^h&>Pw)cc_>0PjKV|)Dpm3ar%
zJr{9pnd&W#Ygk$jw}BC4H&b|p)x#xmjo5R!!^+M1&MxnbxNa+p>&3JlW<5EthE;QY
zr`Pb&qsJaMw(tvjP3dkxy?F|M@I4<H5pf-s>Miw}k=DbkCx7=2t3C&J#x-e5bGoa@
zsFA&iC+nK~&-~@y5!c_#;;KpQgxOA6!3y)}$FOQGi7P(rk=HtC^g$`Y>=rT=YUn!o
zs2?Bow}|VERBx%*ytE!>J^6clSPeR)(<@%r7C&1%c*1eLyL7$cZ(sUs#MM95TN+n=
zS`V|H{5?Lb7L>#_an!g8Q%CKWj>mK+>zbo#>Lq8i{3znOp)9WUv>s-Is?-qu7*<V(
zc6v3Z-+~=`+^8|5hK`-wG;-qb-du`ZyZ5VuBCh>Yy`^3)X+6w#=|Nm!l}qR0?0I|m
z3OG;9Dx4>BPp3HI`|a6zHNpwAfmKed;T2Z1O5%!lF*|QX*Sincy*c6DrGCd{Zfc`$
zXyJSx@pU&vTwzsvc&Ar72FHz^obG0O=#--;PaM^&zb|aM+b_;rxiS4stXOY6FE*y-
z#pw~t-Nh7n5m#6(%(hSK#qVM*5mkKdZ$(Y<`t8otUW~gi%<7HhD&3opHw>pWbUKcj
zHsZJ`>1?}1z*(g|oNs;HI`@X-%woM^HzzH}=A|)KsxBPEa6lRlaXiH52mW6;zCX1W
zj?v#~mY-sIV75|W9`S}@TQS}lX}zm>D{Njd`Gdnhb7%Q|;vP<I^f{vE<1q|}4eRXR
z6?tE*-BP{b6~}GtL~~k?<(_zj)r%!@RYX|EjELu<RB!zKEsHCv2)8BsBvO~0q94O*
zM)Hkuw{$-)S-z)hwObv1So!PC*3?F9Um9bj`Xa8dsyVVVuA_(d`m(m8nWksXSUY*u
zt(xkM_YGoPMdqNi9?M0qihsC@xWZ~)NnGQ`jvqU2%DAYe*Hiu4E00>GwR7``WkG5q
zcT~CtE5_KFyYy1T6;}11>-1W>RPR#aa}7JCdSjf0Q`FLw)?>LR=i9Jqe+S}<=Yf06
z;)>Y9ttWAXRZH^C#{IbA)0Vp*UtD{oQL8jY6oo1JaaL+0)-t<dR+qEr$FS=6`Odhy
zEZB?0@Om@F68#wCs-uduJg{S>>xGCbtlGcc8P}%|Jp8cz5AC{qPg6gB$`Rl1o8HeT
zo#v%|FJ13$c|~4Vr1L>t)>dsXhPp4LvDAZjB9222-Lrnm(dpJ-%kgL2KU}%nTczjC
zXnTH&;o&c)b50NA7?(Z<b6jt~2vP*NX~A1}rt9Ypk8p^r`V>dDTrAq<EIgX?82e63
zUzkZh$Ju4Es)?6eeDZJNIzF39+YXm3z0y4Em-Lb+{e7|b9dq`XU-)%-zce<cz8TeX
zj}`X$w~~H|aS{98o?^+CD_KN(c)SziBWt^PczXSiV(Bi1ERGd8KI*devN#r}IKm`L
zuQbn()573bu7NuAu?MawJzlanT8>WdIi*-CwV$OI;}|!p+KD*Zpu+sH2YxZ6t2p|M
zNU!OZC5~!us8wh`OFq0p95YiKVUm@rG!Kt-AI1EcV|hsGcly=7U3v5ynXdOzES1{N
z(o5r59+HDA#L=4K2$QV6O7n<g#Dr1l9m^48dwnuZbv!yI_hMHb1JZdcOe(dXrAHhS
z($6bTte=?v<`aKj>)rbyEz{mVd*!<H+Bmfv*I(K3k`{Ae67%k+jZ)@8UBnUbb(P*-
zU0vl(OYxPy4vpvG`qAm!Hm2w2*%kS^^M=%RT(`yZO~m_fT94&w$3}Rps43dtE$x52
z&dlP7y2E8j^GIECTDo7B%<t*iZma!v<?`p@_7qdg*n&s3dLoYW{%3FhT-i~5(-X7L
zFFlT8TtsGbQ(=sB6s)iiab)MW3PpO9{H>?1_&`^2EKYHROSMWOjum)b>1ZzVh=efd
z$f&RoaddorXE|>9zVX1ro-H3AeU3@5p^xo(zYITaO!{))<fi3$MSoYn?~EvYJrUzG
zc70}wC0njQkx$N#)8P}-JJ0EhnY}y3=IeR;Z@;)@&APgdrlReB$s!WMr6Z%lLd3D6
zJks9_I;L>QR!Wz%wDNhxvCr5sqb4oSkJY3)p1$<!PnD040mr5H3&-`mUq<HR=oqc#
zq4sEfjpMG_J)KYM=BBncPFuwIj13p0^=!GjiZ)M~1&@w6mN;s{s}N^*wN%ereca`{
z#Cd<G<P)DmEsZVQ3Nci!r?cO>j<fQXOXfU#%x%97uZ1a&^f`lE_L_WgS}%=h$*nrq
z;(DR02s-2IEZdu<)yG}7OX+<wviMrY7sgh#I`eU?fcFo^r1uX>pAWJ)`b<dI|H-PS
zaV+ntXV&&-EpgwWh+}4oVZia}I7=oyiKDq%p&sN%9i<-O5S#UDPS^j%<?gD9emTCo
z0zJ%&I=YIZHN_Dw)vAd&##AfRgZ!u?#nCa98iYwlMummqI6XAGRa<X=mG|DZAAG<3
zJUlmzjkbwB@0W=cVqBKwsH3!BVtmH-gHjyXa(DHG$8tP9cT^p9l=e$$+u_ntu);#I
zU(&0x<$Ry(yPsd`eXhZi(%(y`_T1y0c%LiAMeO>56ic>Tfg+zA9`D5YBWruu<n)=t
z6iat8L|(-4PMkloI2NWj!lWm0tiba}UDjR}N7Iz_JeOk0(ksow<A_R`%a9&*lpeQP
z951Fg!lYVN`SFnsmTKjy<xl_Z{L@O0+boXQE=;OzA93t6xITNjtya8Z{?tAH@%!@g
zY3_vdx2I{#aJ;+&uZ!cn5kb#Lv1H2?cOqqk$BOzpZ|V5R+U}b?!lk<yA}<>s>5m5a
zr?~WMlw&40RoiOm{GT4O*Me2*I@7Z_A|*^ZbGlxNIQHGUenM}41GBWo6ZZVaSG&4C
zt(o5Qeo1j;<FwaLc>|t5{jPON0*mXyIVpzP6ANRtB&*BC@ED(76_4C|%EYOox-8P8
z#QPt3Y47;^e>R0fSIb#i`MlUK%lmYj+i3I=50)Rd^O8lhR~l1!``LQL(U9IDNVh%C
zl6o~i|0@H3RC>Hbe?&!fCl&gpTBQ+3e6Dc0{>YZ<cyYwVzgl9P7UP(o;>cXOizOe&
za*xtnF5WkZ&vR{ia^XHT;ZdKKA5M=jsdg+x94l&y&->qy+Kt!Y;gHoE%eC1`g?Zj%
zdH*P#>fZ0?xBPgu#?D5<qw$nNETu7ZmRNFWMSI+t+76HCkF2FwuJ(R-yl>LoR5d>}
z`s0%hToiSzlpYbo%uz!Y)s7jGPwShO8%GXV^yI09G8?A+xISq7<B&x&A1RbctNH1T
zVwnxnT9jG%XsRbY3b}><FD#acb40XNfA^3@t@oueY2J7KkVOmb8nS3%F`hMwWpc+1
zS@hy@OV+cvSSD(XxND}QG82a^Y8yXf(cI(Ha+>dON^!s5F2;P`kVQ4;q`a?o)>U7O
zC;kQy@zmXt_V?C8e%nt{OzE-8j}FN1!xkw&_N(^NRL><t7S&&z9#;%m)RN{a7wd`d
z)<ivRHw;<Se0^s-DJl2NmkRO3_dxUe{^PXmbxW4H?&Lz5xR+Euo->o-ms6QjlTAxn
zPV);|3T5Ixk+JW!FQmM`r~P_1#rwAuTl<hj>lDlMEtY9}V#uPp$CJ-v$>-0hY?{x1
zrm$b@7t5qsuJMs2<Ec7+Vxw-Rc%Lfvw>~`<?tF0Gv9;yOp^+YUZ_KBEypTSxm>&IJ
zn!ccz9%H67y}g*eZZW;FSpUq^3iW68w0)vbf4^e-YQ^$ddTlX1B`-BaoLN1s#d;dc
z>dDflRjDW5=ZpBWIOi10hkt2$TQNP3qtf(;yQzPr7%Zm$Spoh3Kil>B9gqHRpP&9l
z`bc`*l^(zAypCx9X6N$%w$gv^-mjFdsTZG>K97G+`W*AGt{l2;+SSJ2UpaKUG#~u)
z!gY1cZ@T_oVe`x@hko$Cm&TqE_@5A{O~<{<!2gM^wvz;w5Li2{#dmC8{NNS&&!5Jd
z2k|wO^xk9s(NTC-`nzX(<kDmAqem=iPLFsGp>!(UF3u<Mm~n3^pB@j#{PrXAuj6C8
z((}!nbR7}(JhzO~!d`CI@BH4iSKrI+X7qBqKHunFoIPa>^XRko3(|Fey4H{F;`Knb
zeO)ixpVrIm=Js;C_FisRllD6dvi<Gpd{{5Ho7v0l`d-+(IIHbX?0dfd|G(7#X^cks
z(*Do3AKc6KTY9<Oyk2hiVlTHFkoLbf<DjvZ+s*3bcKt5uU7T4zmd`u-KOOsV4v74&
z`aj#QzL)LK=;d~8z1(hbFSiSin6mxt>Ab0U?(Av#tXyj^x9d%eS(~Nv+SGo$Hy+1+
zdm59G_mQZ)2UAbWtx;2`th8Or1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ
zfWW&?AU*+bclrY43A;Bp#B$r{QTcf+$CQ1J@ZLAZ=hIKiO~}vZ9<yY*Lh1C|xo;NA
z{qx_2d0V<SL42O@?KEX&-v8S8hNoX0-_SZ@RKwH7a<vneE_Z1vGdVrlQn?>YozQUT
zYAMFnQ4QsvQ9LHaH0NK1_Vy^oSJPCeuk^EwjVZ6LST6VW_=dkeo%ZGQrQ3b^t?>=F
zr5G2ccJF#$bHj(z`pgRZdsuOQ@0c~d;m@hg7e^LcGPktPEelinbLkQLzuyHD8fMg{
z{W!5}zlVzP-Tbrh4MSFGZfKm|b-7%z-QC_>=#RE5mM(YHj?E1%#rn?4`t6LR_jh)x
zYhik{r2So#`s2sx(L8JEay5(7{w+%Tk;*j`_ox2CrOQSCM!A|)Zcx_lm_ommxa3Bs
zynT!L7Z=CD%+zn;R61TxPI&`fN$n=vfyMH573%9>+}|~e<=UE;Y&Y89Eah#G9yO`H
z)r;lkj#|20#L-$D_tR3jkMGdjP&<Cfa#7~Ow<k1gS?rGw7wcP?j-zO+e1Bgl*0)U>
z%lA#6(6HdVrTqpcyMF0Wm;C0RQ0U**uP$9Kj*lqUn94;Q@x9iXxyk&t^!@+mZp^1;
z=?hbOeM;XlJt8fpeEEk)H8iEP-OAGEK0T_TC8Zr!p8m1X4YN|(ab@W<cOKm^H>I6X
zmR`U6=!W?z?b5RJg$<({7N)ct%F-L39^J4wrQKVWKJy=A8v6e9%Arq}r8jTi)G#2W
zzgd>P@Z_e3x|F_NdKC7yu)i&{ni__sv~A1MYk$<#(45ltDNCPuM^nR$ly+2EdhR1*
z8(LG^<nr_b#x~4LY3G)u*WWR=VL?ipU6x+^>#+^(Debnh^cSBR+mQR&l|vsYOP{&J
zF%A7v`rpgaoA*8@-`}gIywd%hJN1}`!6|K68V~V3_n4yJ7o2=dLt{$cDLqQlYg>+K
zn3mG^FH5ig&M^%$Q`*R~^cNpHreRJ>JGm@9_jn<m3ro^>N$s}$a!SXzj99vw7PfWn
zL*&PHvwE;y&D~3HH@64d4eMgN`90WfX4!VHm+Z`-nN#x5d;QX9>mzyd^oZx8KI!{B
z?WNnL@9{<cJ2CY=ePl!H?djf1rR`N{XiiC)_%3}svb477kCZ<sJ(`Q<;<Jg_$t^x_
z80BMJHGXMiNB@p2>Bq;?c6+A$YW?4q#>;?Tr~6}_T8KSu(lM=6ax#tQhnONWuDY^9
zh18|fBR|_b$~P9>W4UyiRv~?6h4eWU(%UMe_xVMkzf0TfYB}PKdla;%^6}l@C=>gi
zm942z&!7tF^%c^aDx|kmNS{?9eQt&H`4!T0cXaR2vHz)Dd$P>-zh8yzYAd7<u8`hX
zA$?kf^qCdX=Tt~<tB~I3&hGa+>)($3Pvv6_Wc#1x*HoxyP=)mR3h7N1(pxH|&#I6<
zw?g{-3hB9DcJI)!|EXMivds3sUxn>zE2Iyuklt7!eOiU|nHAFKR7h{DklrU9%du}+
zKUSJ|?0<akKN)8GpOvqvP|u(W>Gc)Tn<}KYR7j7wV#?yk=5tf|Y`Jtkze0Lfb(C&5
zD{U9gDRJz#C(Fn?Ev?TgKBwfL)6#S4!g~syQD01P&Wz`P?0L6eDii5-#rfdkyuLUe
zR-88$=Pku~Y!mnEX;15M4~DG$8O8jW#rdq_ytO!=Q=HE&&gT{9ZN>Tg;(S4I{%~==
zusF}9wxaErqWz|{-jwpP_WKm``xfW@iu0P{d_ZwtTbvIn&g+Wv!NqxfaXzd#Z!FGR
ziu0`f_O#w!(*BHM{><WhR&m~1oX;uF=N9Mliu1POe137hpg4cHIFI(SDfV??N{@Tr
z#lAPC<w)zvb>QN3{m@u;{Sez#yAG^P*GaRw*sj`jU{l&|LD_b39TeAHxt7jrq1d;$
zPKx^@MSkt>ov+s;Ev6XTJEh0#h1LB3U0p}Ubxhylc*(bu*83H&H%d0`Sd4oS#ba5g
zw#CQ17Td&iWL&eBA8TFJ*LcM2j`17cU(0`oE&0qFHhXBFG_OmKY3VUHJ!1R#E^BsS
z7Cuovd`hn)uP!;pPfp9br2MMak;yU2#C2qLy&c<CeI1eZGs={2S8e>nwQ-aw->%yD
ziR<YoQ@UO3e?I22@sp+36vs|`(Xc1??u{`sD19flwm44WHDAr|i|58P&&FU%&ef!`
z73a~|CLWE?eQr^jbxhGu*%bMu@3Cd+F)u9_WqMLB_B$KXrFE^Jrp;4A+>0%nqU~&2
zJ*|XK%~@0O@4M7*enoztV!z^h)b01BardFZ_o(A{Yuh%tV(842mKJj}H!qCYyl>jB
zrkK9)*v|B<-T}?Chi;X&iAQOBbJ8|hdfeadW0S`<f9&{C<ECskcEaTJix88xJATU8
z5yx(~<G`IiKJa6cw?BTwgcEki#a^wye$+Fs=8B=yitY9pS7<llZrSXLp|vT!Z(1$~
z%pY6nyqGz}IkGO@4<?Gna#vGhmHd_}`K?v*+p6R*tdgI*zx()Ws^r&I$#1NZ-%=&N
zwMu?lmHga-?)NY2v*^RPe_{Ir>G}6}h3CKc{%1{<?dz)KH&)4SsgmDXCBLmo{=zEx
zxwOBr@0mmSyrxQiU6uUCD)}u{@>{Fqw^hl{{kHr4%l0=6^8No{>i;yRB0b;#Rkp9I
zlHXV*zoklkYnA-AD)|em<mb}<cH93|^6RSPH&)4SsgmDXCBLmoe(s^}_iw5GPse_o
z13LP@%Jy|t@*At<w^Ye*t&$&o7gM$$<@1GU`|`BX^<42>SDIG3TvH{#u1bDmmHd_}
z`K?v*+p6SuXH&YLZOJMB`Zpc>?P*L!UcCR;l-^ISEnc@pU8UDcQKoN6UaZG8dwrx8
z)3f)2^J!`Oc+F9l^0GRci{)b5m|Du#XO^wEmaWe%TW>2{Ur@H5`$N~qL+o4J3%5Px
z$Ndi@me~KkW#wzi)@#ew>&n*a%hnsq)|<=LTgujFmaVszt<No6Z!240P_~|XxXS*g
z{PtwlvHxY|Ys%JZ%hv14*6YjG8_U+4%hp@U)@PQjx0bEXEn9CZTVGJNo=bfjeI5H(
zIz?K(|Kr}5$t?2n{a;qTrfj{oY`v~*y}oR{v24A$Y`vvyJ>rTfi?uc7XUj34TejX-
zw!WZjy|k{<dS<3_@fs}pzCD>m-rDJce?al|O>Ac(K!5-N0tEi|1YSzJJhT55L-X(d
zJyp1l3WdQxto|9Bcca$%>5bLwz0R1|<=+%tdQaLeo6<0|VfN6zPo`_9^nP-b=-K<R
zOV=fZ009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5ctm(m^<aFp*|DvpW8no
zBS3%v0RjXF5FkK+009CkQlKt<PoTWM#&rv6O~rY6es9*Z?=588=GW8r7xMFTUyqn?
zarAK$MjShEmmRV~UCggOyb#-k>HeaTU0!b&oAfxT!{U#f-zDj8<24F5^;sze5&um8
zg935?qPx?6FSs$?uedn%IrXaiF*Rp{&SR@j&FEL#W=zT7i)-$dvxi=NfBV~ix%`L`
zS8jalA=!5S*YiEoO>O%=*MCtwhHW@|Xgp&7Og$4=Dcx+V{jdEO#bZ{#*+b*evn`b(
zK;YdhP#5RUlKWG*9QeO}Hq$-<0`IiI;Nm?y-|2SLPvG4q5cg|{d)UPk*8_D6@{3FT
z*LrPwFQa%IxnILlJQ4^HAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!Cu1jX=Mq
z+3wfyU(=g*ga82o1PBlyK!5-N0t5&wyFlOKJrVj9=gVG0^)2$>XDr^YA(rD&xL-r<
zPP<gvJpCr;xyAc5WJU7zWGl-vFaF+V+_Ryzf9Ln?yQ^~Zlo{W>e`r$S-VsNwSJ<v^
zsw2L8x>4kBamCQqBMRx$rWd})AL)a)ykcm)2NU%#KDm&-dD@xyjq+Ua{uS|EkGk}T
zeT+x?I%s}j_u~57g=w>nFNL(s9y;f9vxiPAwim@0r1f0ORYQwq-;T6?6H|L}uZc9(
z<^S*czkWjt@pYY>woU!FN-;BiRXvwhb8qKc$mMEw8q-jh9x3n$J$GvSw+z#TU9??(
zUxci>wvw`a799Cn>3tC%OZP>1>hjl*{ExaXLNV~(d_TD^ZF_!t#P@mzm-KV7%3ja%
zomAX9mg~}^v84Vj({iMjmP@O-Y@A0tjc1Q+m^UnqnR~CymyK~A=`WsDNYCQ^NJ{U!
zS7FR&<1p89)2ro`$M!X6O=*ZW`=#S3eI+^<k0I$1$HGQwgXelVMcfg`!h5b9+Fcb<
z?kB0-dg&2Uw*PTF#d=TYQTG4!RDQh7EgmN?9@%+Z_nCXo688~_<K^kgciHtn>3E5L
z>T`NA=KM)8CA8l1YPo0JKc~CCl=t5+5XbBEG%#w~`!9+|tS{@dOWJ<!v;7w}r*m0%
z+pb+wZdzKNzeX<i*0g_2xaLDUY<R~eum1VUZBE<&&~w^;yx$!s9R1x1J8$^+y$<}r
z)QNX)HScS$?Rs$A)7y+6zSYnThF!e%T1TCA#nAO`s-4>K^0brM-a7gd|Jwe(*Pfnp
z;aat45BS?EyInKwvp>0Hk3Y>n`_YjPZ#R3x&kz3A9q)hht*HkOZNH#($8|sRqiz4x
z`1AE|x@h*#$DDiSF)ttdxh)TG`^9+=9B}rm@dph);K#o{dh5Hsc=+_S>TCbLRqNny
zJ#g>aU%BY?y&v4@y|cEPT>r1ZcRclry6^2dderLo&3oheb({P5yK>Pc_cz^h*(oc1
z?bm1Sa>VDhJ>}5)mMeCiF#fbPwjX};?62H9>*+}^-}2dW&cFTE`-gsIom(C`fAmHl
zoBzVjldoFkPb21Ea`y&fpZw4#{(i&gPd;(;u=`HAVe8EwUHJM_+g|g_aqDe*;_*k`
zGj@X)4%~M8?=<~*`nA6~bIVPC_0-7c?>heEw}<S#&Tn`8+M|2+&pq_|&6EDV$D9F=
z?m4gZ?63B__><GFxnto^zdiBJdq?(dfBw3ShyLK9??1cWuZC@W`<$D<fB9#xzqsbS
zEnXiz>$?X$`p@s~_WCLF*ZSAS=ltZY&ul*SvD;t&{q*16dikr*wSD@yUv2T=PoMki
zfjj=}yq7i^_v`Bpnswo*WB2&R10TBn4}abG*6W|y_~w1ydj8I<CqLi#g+1Q)#{6S9
z-EseQf4}*2=RdOE6Caqn*@j<!{L&59{ovkxkDR*lW4V`a`PDau_I>YTKX~=9pWOPr
zK5HI!$z2be{J9T3{;g|IyYWXme&)sf+xLC;{fqh!9e>C8rcchg@35bK^Wwc<e`@1<
zo|#v_{%T|Ezc}PiTYvha2ao;1?q9ra{+9Lqj$QAtjaEM4{`YLO=E4ha-{-AIuD$Y-
zL3`cV{_>FPcA383HQ(6c>L=$P`_au;-R{U^`aRgE|J8H9baHOLy%)_ob^E5@FSzKb
z+?ZiIFM9p?ruD9A9rfq&Pi=R?!J~h+{}rzfyXnAPpO|-0&9{Dj)rY_M%r3udI`6Je
z9eK|xH{3hw-=}`!$^$mI@XP02u>Qc-6TbJQ+KC&EIPK<bR+;<VF{>Q-#S=!pbl|>^
z-*epglaK!8;?-B0aO>^Ux4-d%HBJ~kWx(K5J~r<YGu9dS$B8F>a-Hqhd~D_4Jpc4(
zChtG=+h1xQ{i_e{IsF$uJotwLM*L;_9Uu7ND#u^)*Sg<reBeVbe*AM^ANSM09(dA;
zPw)HfkB{B;rJMe;!{YNEf9uEVZ2RO5f7tE*8}IqT3Aa7C&5!Px_SzrzzUGhj%>Ui@
zzjM<s|GnnKZ$I*ptL__n!fywi{lQoF+j;HRuG^!2(=BiQ$$%4f{=lWrjl6dBzMuH|
zOOx*Z;#&V)Z<R~exbn?=PJeUyEC1h_W1iXdCtn}(#LNYoKDYOwYajo&pEX}M<MP2D
zy6NvL-TljjcOU-jCvQ1_=T9DR(hsk@@7PQ3I^*c;KJnq5TR;2x(^p&k+<<GITJM`T
zPCe(wYfs(mhFedXve(W(T<^;pyng++7oGj+f_tuhb<K@`cFKG9JL9!ipE&Eup$jJ;
zc*lL8I_$dhzx??tH@W+aon~FO(T(TU4cdP98;-c=oZW}L((gT+jlSW)dv1H^&NT+T
ze%rW%PyF1j3orc8hC_B+<0FTyy2{qCtzWy<mN%{Xo+s~WpVWNMrAOXy)@6MU=ri%A
zo9fSeaE-SI{osOKY9HEk+Ll|MJGkkbrmc3^{*~qheQQ2H;_$_NPdMhy4R74|wpH(5
z`G|4-XRLAN;)8yA`lYY^<fN6SuYKE{Z}+?Y`Dd>B!LOg2dH<2k8?FAAt9L%_=#6fD
z@8!?#(fY0Loq59G(FfNa{KHjVzGK+ezB2Nuzs_iEUT?u_@4M>Rqjnj)#fi`Ee*WDT
zef$g8-L~1$?X7!0bN*R}e*3UrK7R2R7VZ7y++m-7dgPfOzu}deP8@L0>YpF}=PlY#
zsekFd!;U_z{i~yI-)Y!-@B8a@k6r((FRi!k<dr_O>%K!?`p)LR-00Y*Hx8M-$4eVs
zdi`C$+3V=PePKe)=AV7&y9e%A`}C^)_nrLOmoIzI$v<4>oRc=$;+1VLX#U4G3!A=j
z<Qwy^ee~2PZ~WE;&tEXBb+0`RIi&smSLd&O)ejE)z(o&E{bJikf4=(eTVMTT|BWu0
zGVR#&wtry8k0<_Z*4(=;dgkKob06Dh)maBlTK~?|H(&qx`V0R2%oDe6a@FO-{yyQv
z=0E=Hq%)d-y34*B-Spj|S6(~eR}am<=o=Gv+3tH|N1wdWpugSw#+bF9ojGmrfoHw`
z_5p1(4jZ=bHfM~w_RN!O&YAYrPwnx<NuOB#Lob{$c>nvyeDTEd`b}T=sT&?!?O(rm
zt7*;Wet7$|KU}-k*&lg-<Ixvxdftq`@BRE1KRl}b$TRxh`lk<mXQz*DaL%uPaOn4b
zv(9Sw{`In^MQ^Th;l<bf?tr&vKe*?|zIIceAt&9w{_#H^@x<WqPo8w;Kenma>ySr(
zbpD3heC5d7fB4bsKDY86uMPS3VFO>i{M3(}vj2^rn*QEjA24a_wXT^x{lr_hpVfTu
zh5a`D`NcQPJ8842x6}^1?}C%RG3<wDzj4Off8Oks18N%Ue!lJ{YxZ0By<Zu>@^@<9
zI{1ulz2`mK)$j1wt2Z~E_^)lZ9XS2iw<jEY+0;+BKe=w>SGWIs``LRRdCBLu{r*uy
zclgqM{hvDRnD;-m*FQJdId{^G(QAI^v|~1T<=gZB@Td6;pS}F#hP!{zf0dJe_|Y>?
zxv0;s2VK5S<7xYyGv?X3KY8Z0(f@3I=`W|AJ@8W__W0}g`~G<0>~sHEU$@J75A3_z
zOUK-Q(y(dw|8$3!#=P*)>1XeJ)?Lp$_Ro_xx$?KGoO{e={~Wl>m;vh?`1mzr9=hnX
zxeq?|_=mpsY~#-Vyy>8CKD}%G#JQWEaMbt4>~VJMWwSpqdGF0Gy<*73Lw9=b`};q3
z@<03Ceb1K1K7GLZUb*6LpUTZWzINKk8(w+;C#UXn#qgD%U+eBeCyctK{gUmr`owOJ
z9sl$z=e+f~HMYIs%yZwK^!Dz%eEQ%?>wo=%#*c0F$e*V_z1zh%&Dd}D8B-pZcJEJr
zKX#+3uU~(~i>D0!=?5?U&7ZH|b;x^8|K+vUPd)kLzdiKXaj*Vmo%2Wj<niI>pS9z;
zKf8IoeXp7Q_P5{n)2|Qw;GZ5na-W({t}*g^Pn@~Kv6uXL&R_Pu=#Akgp7V_(_T6Tq
zsawwZe!uyzjJfco9p`-c^-W&gW5+vBeQWEt&fM$bV{V;!M&GuJU%T;%@4RQfo1Xab
z7f<=tUw$$0pt@CGKfTXizdv{TjmOkpSaaF=-?;IByB2PL=PeiCcFqTGxoBR${=Yo-
z!=F8U_~=s(x$EUgKfn62eGj|!XRT*H`RyUkPdel8H=Y0QZ~t!ECO7?K*e!d$u;Jgf
zt$Fi<>mU5v19zGCo|V6KXP*t;czKHxH-GQXwp_pMs-0Iq<CizQ{Dn6bUGn))ee&9W
z{Nv6U`}W^y<vI0VfAGP&q5ZDfZO`#dFaGSy-`wZS*-sz-=j$8pZFqBw-|w|;+pk&=
zU;8`zKJxmrBgfr*&&WP^y?3Q=HvQxSPk&^e{r@;(n?v`ye9qfP?DCg?etL(8)_-m4
z)F16QaN~ZL4EWyTH;*3u+?l(dv+~^=oqEN?J8rx8m^}_S_v~pqHXpgl<J&y)_SS#9
z=j215KmFO&PQAL%4O8cDy7Kc6y!xZ#cRu`qo!-84vnT5>IBWLzKlATJJG2bEsQ%@x
za__tOYfoPD#i^G)vj1=XH2STbzjDT|V@|m4iZ%B6-Q!0;)o;@$=Zu)U<|-q8@YGk%
z{L-|U$KC$)nl;y+^zo6WeD>?#o4W4HkALggA6<X?3yrfM{q&&E?z`(Ak3RD3hU=_!
z)}xb;sXP4Z*RA`<HLp72!~0L0zurz83_oShlb+jd%n{GT+ahZh@4FSt@h}k}@a`07
zbU&#cb=<?8dgP?g|DHg)?N+X5zin1{x9IyH$mQmxdmhK5zIpc0cy#wZk~{(g2oNAZ
zfB*pk1PBlyK;WGbn3G<k_lY<63!f)y`S1T^j6JL*utwYe-g{d1m;eC+1PBlyK!5-N
z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+
z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly
zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF
z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7{&NM^sQu54
zt;dnAS}eIzkGD{e009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7
z2oNAZfB*pk1PHt<1=d(Og`Itl{$05Tf?i&M_0x2Bs${{9V;i!%79Kf!Xe`%GzA8VD
z<vxwyeYI`Il!o@ZuN*pe%h^M(zQ6tLr!RlxsVg@=_K?W`PngR0qox@D;?n)7zi5g5
zI4-{*uix>Xv>$8t$>j!|HKifG+7gGTi2#9jr$A#v;avLej9%0P-rWMz{tJ%3)BcaU
zp!~Y3y?8xU|D}@a!@4t<xUTwp{<><TEB}+OtIGGIt{8v6Q%m-vc4`;<vCEhLllEg^
zaXiGed$lRP>b=HZx!iLm0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N
z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5;&|8s$rw$J6}KG%OyJaWHC
z_q<4tYWI(jPk;ac0t5&UAV7cs0Rrz1fyHa4dv~XsNWVLx73Di65N|%Lw5f6MPWk>f
z)ceE-jgS9^ezXq+2oNAZfB*pk|GNT<H}U%af4BEL_dNgle=V=?Iz=p%3dB!}Jn_Eb
z4~v))AV7cs0RjXF5Fqfb7g)J(U%vzRfBq?a0T3WSfB*pk1PBlyK!5-N0t5&UAV7cs
z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ
zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U
zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7
z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N
z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+
z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly
zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF
z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk
z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs
z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ
zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U
zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7
z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N
z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+
z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly
zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF
z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk
z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs
z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ
zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U
zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7
z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N
z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+
z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly
zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF
z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk
z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs
z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ
zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U
zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7
z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N
z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+
z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly
zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF
z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk
z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs
z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ
zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U
zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7
z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N
z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+
z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly
zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF
z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk
z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs
z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ
zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U
zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7
z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N
z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+
z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly
zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF
z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk
z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs
z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ
zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U
zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7
z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N
z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+
z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly
zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF
z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk
z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs
z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ
zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U
zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7
z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N
z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+
z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly
zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF
z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk
z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs
z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ
zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U
zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7
z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N
z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+
z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly
zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF
z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk
z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs
z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ
zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U
zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7
z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N
z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+
z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly
zK!5-N0t5&UAV7cs0RjXF5P0_pv^?8?(IMYkebKaGvxh#H%jE{8M_19;71MJI`!DL#
zO}X-Iv-%gDdR4yuEz9bUy5^=B2BdjydaQBf>Wd<V*e)J(x12rnpgUJzG~>8q^66LK
z-~RT@&wMVw{JB&vrtyVY?zA*tDLuyJHeJ*<V@gAxBW4ec{d)MaarxzlE$WXL&N^>w
z!(Ayo%02kik@@_nrhd}chF3P3`f3*EMkz1KMEucq#B=p0#x~4L_15n&HlLntlkIyL
zMI2i$KIXNiRM$RRud*mx{@2c9^Y!KKyK-pM7296>;X;0F6K%vi+RV3=)?Ykxd_!y>
z>DiRE_5DGG`l9T2Q@Pmg+oz0gn6<&|p}FEVXQcJmc50eO{>+JE8?x<JE>;-p`E6o-
z;PwB=@;{i$Mp72bs%iNfSB=fr7qLcO7I&=IZ8r7Q;a7ClAN53=Svyg-_1Y;7QBO>(
z6=u0?J=@2u{jTP_P9EFPoZ89q9!vX`RdCJaV;k-{WqjVRSat69DTVU+^$4UG%$X@Y
z;yq|iXS`WGS(#`f((;{>HjRDE+O0H?{*NZ|eV*#?=>N1_UVqe=^?zm*{$bXBcVUcV
z{oj!vJCas1|0o-e=>O=$UC-+5|7@Eq*2s^tvHn^rANlXwb=5^#-;ca^$^DC_OaurJ
zAV7cs0RjXF5FkK+z<;m6%6<EG`Cef5UV=FR0t5&UAV7cs0RjXF5FkK+009C72oNAZ
zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U
zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7
z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N
z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+
z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly
zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF
z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk
z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs
z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ
zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U
zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7
z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N
z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+
z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly
zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF
z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk
z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs
z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ
zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U
zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7
z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N
z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+
z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly
zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF
z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk
z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs
z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ
zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U
zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7
z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N
z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+
z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly
zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF
z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk
z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs
z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ
zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U
zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7
z2oNAZfB*pk|3CZo6QWmn?*aVe&vnKM_XbLd(jmAQjGN1iS!f(6cNVTJCBemcmBD)v
zvd9}UL#d8tVOj;5gn%WqAatR$=AEb|4S`5;rwa*Klt^7Pi^2`<!eLs$g2@TENT2U{
z-)Axn@pj$tIdb~^`~7~;b3V_zai|0c5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U
zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7
z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N
z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+
z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly
zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF
z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk
z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs
z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ
zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U
zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7
z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N
z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+
z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly
zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF
z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk
z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs
z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ
zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U
zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7
z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N
z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+
z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly
zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF
z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk
z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs
z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ
zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U
zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7
z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N
z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+
z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly
zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF
z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk
z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs
z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ
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
zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7
z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N
z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+
z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly
zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF
z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk
z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs
z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ
zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U
zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7
z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N
z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+
z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly
zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF
z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk
z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs
z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ
zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U
zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7
z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N
z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+
z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly
zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF
z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk
z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs
z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ
zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U
zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7
z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N
z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+
z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly
zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF
z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk
z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs
z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ
zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U
zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7
z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N
z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+
z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly
zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF
z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk
z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs
z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ
zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U
zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7
z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N
z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+
z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly
zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF
z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk
z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs
z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ
zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U
zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7
z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N
z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+
z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly
zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF
z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk
z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs
z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ
zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U
zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7
z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N
z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+
z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly
zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF
z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk
z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs
z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ
zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U
zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7
z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N
z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXz3%vCC
zO!vfFQ{CmKM}zgIY4(+O^LobTOU!&}kCwN&GSf|$W^>%$cXxK93p@MyEoJS|#Fb}Z
z+%!v*_Jv9NVre(;k^X~|xw}tKb*Y_m<vl+;8tngYsylJya6iB2zhAq0>hXoXe`}4G
zOJ4S0Y<6`YoLFwBpBfGFU6)^9?E8sN{n-+8{MBK5vCJp#vy%t=^)lTYcy`!+^}W}w
zCMNOsm9@m2dU7<#-Z{_NM~3ZtWqe@ou%E9viO&<GoMZO-;cJIVt;cq6>uUe&hlhQ=
z=9ANd)JpET2gd8k$sTF5XVx?Ra%HJae&*{l-f4aPoqgkai9J)|lJ~~3rFQ<utAl2e
z^GX>f_xaM^TiPu@pX!d5^M9xGcT5UqJvq}`o954Dz4>&tUvJ7dPd&@F($Bs0lfN%}
z>>8WroO$QV`^=le_WGr9t-qWswTegf%UWWtT%77sCr@3^ew)|p_y3~A=I%G=|Lyw=
z{W$qqPi*=%|LvbHwy9U=-d`TJyZ^A*zE<WFyXV)#eto6PXZ-CluAa?Z$tus}yZier
zwQfxCbN;%PxsAMW*7$$R_a?o+^Af*t|H-|j{$DSx-Kh6J*|KRKy6{ELwf52YH&X9^
zV?Dc+L2}bgY~I{|?r`q-&HJx8^_*ExY{u70eAe%o+urrRm(m}7ymq6;rcHeh0RjXF
z5FkK+009C72oNA}=L&4yv18-!8=L<opih7R0RjXF5FkK+009C72oNAZfB*pk1PBly
zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF
z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk
z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs
z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ
zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U
zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7
z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N
z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+
z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly
zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF
z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk
z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs
z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ
zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U
zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7
z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N
z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+
z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly
zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF
z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk
z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs
z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ
zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U
zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7
z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N
z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+
z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly
zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF
z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk
z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs
z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ
zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U
zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7
z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N
z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+
z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly
zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF
z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk
z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs
z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ
zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U
zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7
z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N
z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+
z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly
zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF
z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk
z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs
z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ
zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U
zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7
z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N
z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+
z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly
zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF
z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk
z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs
z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ
zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U
zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7
z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N
z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+
z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly
zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF
z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk
z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs
z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ
zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U
zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7
z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N
z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+
z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly
zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF
z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk
z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs
z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ
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
z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly
zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF
z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk
z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs
z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ
zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U
zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7
z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N
z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+
z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly
zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF
z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk
z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs
z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ
zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U
zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7
z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N
z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+
z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly
zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF
z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk
z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs
z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ
zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U
zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7
z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N
z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+
z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly
zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF
z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk
z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs
z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ
zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U
zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7
z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N
z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+
z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly
zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF
z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk
z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs
z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ
zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U
zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7
z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N
z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+
z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly
zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF
z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk
z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs
z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ
zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U
zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7
z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N
z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+
z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly
zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF
z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk
z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs
z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ
zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U
zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7
z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N
z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+
z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly
zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF
z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk
z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs
z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ
zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U
zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7
z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N
z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+
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
z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5V(4Qq7fiKfB*pk1PBly
zK!5-N0=q(B@y=nn`d<cA5FkK+009C72oNAZfB*pk*Sf&g&86Hp^nd@geoxLvfB*pk
z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs
z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ
zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U
zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7
z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N
z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+
z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly
zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF
z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk
z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs
z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ
zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U
zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7
z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N
z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+
z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly
zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF
z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk
z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs
z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ
zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U
zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7
z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N
z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+
z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly
zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF
z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk
z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs
z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ
zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U
zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7
z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N
z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+
z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly
zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF
z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk
z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs
z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ
zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U
zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7
z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N
z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+
z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly
zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF
z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk
z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs
z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ
zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U
zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7
z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N
z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+
z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly
zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF
z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk
z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs
z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ
zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U
zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7
z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N
z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+
z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly
zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF
z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk
z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs
z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ
zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U
zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7
z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N
z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+
z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly
zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF
z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk
z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs
z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ
zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U
zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7
z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N
z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+
z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly
zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF
z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk
z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs
z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ
zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U
zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7
z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N
z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+
z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7c7s6C2oNAZfB*pk
z1PBlyK!5;&T_LbI9G2biTZMNZK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk
z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs
z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ
zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U
zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7
z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N
z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+
z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly
zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF
z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk
z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs
z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ
zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U
zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7
z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N
z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+
z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly
zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF
z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk
z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs
z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ
zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U
zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7
z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N
z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+
z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly
zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF
z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk
z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs
z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ
zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U
zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7
z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N
z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+
z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly
zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF
z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk
z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs
z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ
zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U
zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7
z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N
z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+
z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly
zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF
z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk
z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs
z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ
zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U
zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7
z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N
z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+
z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly
zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF
z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk
z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs
z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ
zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U
zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7
z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N
z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+
z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly
zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF
z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk
z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs
z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ
zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U
zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7
z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N
z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+
z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly
zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF
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
z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk
z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs
z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ
zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U
zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7
z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N
z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+
z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly
zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF
z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk
z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs
z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ
zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U
zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7
z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N
z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+
z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly
zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF
z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk
z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs
z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ
zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U
zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7
z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N
z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+
z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly
zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF
z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk
z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs
z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ
zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U
zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7
z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N
z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+
z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly
zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF
z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk
z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs
z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ
zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U
zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7
z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N
z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+
z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly
zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF
z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk
z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs
z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ
zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U
zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7
z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N
z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+
z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly
zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF
z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk
z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs
z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ
zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U
zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7
z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N
z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+
z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly
zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF
z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk
z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs
z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ
zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U
zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7
z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N
z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+
z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly
zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF
z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk
z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs
z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ
zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U
zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7
z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N
z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+
z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly
zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF
z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk
z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs
z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ
zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U
zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7
z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N
z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+
z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly
zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF
z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk
z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs
z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ
zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U
zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7
z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N
z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+
z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly
zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF
z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk
z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs
z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ
zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U
zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7
z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N
z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+
z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly
zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF
z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk
z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs
z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ
zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U
zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7
z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N
z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+
z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly
zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF
z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk
z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs
z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ
zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U
zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7
z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N
z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+
z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly
zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF
z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk
z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs
z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ
zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U
zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7
z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N
z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+
z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly
zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF
z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk
z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs
z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ
zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U
zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7
z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N
z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+
z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly
zK!5-N0t5&UAV7cs0RjXF5FkK+0D-^Qp#uQ`0000W|JO!HaNxj!0|yQqIB?*=fddB)
z95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c
z2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=
zfddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede
z;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQq
zIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?
z4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!
z0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`
zz<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!K
zaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)
z95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c
z2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=
zfddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede
z;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQq
zIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?
z4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!
z0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`
zz<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!K
zaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)
z95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c
z2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=
zfddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede
z;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQq
zIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?
z4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!
z0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`
zz<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!K
zaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)
z95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c
z2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=
zfddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede
z;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQq
zIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?
z4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!
z0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`
zz<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!K
zaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)
z95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c
z2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=
zfddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede
z;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQq
zIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?
z4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!
z0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`
zz<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!K
zaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)
z95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c
z2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=
zfddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede
z;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQq
zIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?
z4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!
z0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`
zz<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!K
zaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)
z95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c
z2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=
zfddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede
z;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQq
zIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?
z4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!
z0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`
zz<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!K
zaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)
z95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c
z2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=
zfddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede
z;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQq
zIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?
z4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!
z0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`
zz<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!K
zaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)
z95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c
z2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=
zfddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede
z;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQq
zIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?
z4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!
z0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`
zz<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!K
zaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)
z95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c
z2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=
zfddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede
z;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQq
zIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?
z4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!
z0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`
zz<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!K
zaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)
z95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c
z2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=
zfddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede
z;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQq
zIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?
z4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!
z0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`
zz<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!K
zaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)
z95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c
z2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=
zfddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede
z;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQq
zIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?
z4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!
z0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`
zz<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!K
zaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)
z95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c
z2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=
zfddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede
z;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQq
zIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?
z4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!
z0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`
zz<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!K
zaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)
z95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c
z2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=
zfddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede
z;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQq
zIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?
z4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!
z0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`
zz<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!K
zaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)
z95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c
z2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=
zfddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede
z;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQq
zIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?
z4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!
z0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`
zz<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!K
zaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)
z95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c
z2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=
zfddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede
z;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQq
zIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?
z4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!
z0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`
zz<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!K
zaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)
z95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c
z2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=
zfddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede
z;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQq
zIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?
z4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!
z0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`
zz<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!K
zaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)
z95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c
z2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=
zfddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede
z;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQq
zIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?
z4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!
z0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`
zz<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!K
zaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)
z95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c
z2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=
zfddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede
z;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQq
zIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?
z4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!
z0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`
zz<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!K
zaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)
z95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c
z2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=
zfddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede
z;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQq
zIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?
z4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!
z0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`
zz<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!K
zaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)
z95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c
z2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=
zfddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede
z;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQq
zIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?
z4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!
z0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`
zz<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!K
zaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)
z95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c
z2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=
zfddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede
z;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQq
zIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?
z4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!
z0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`
zz<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!K
zaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)
z95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c
z2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=
zfddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede
z;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQq
zIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?
z4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!
z0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`
zz<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!K
zaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)
z95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c
z2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=
zfddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede
z;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQq
zIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?
z4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!
z0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`
zz<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!K
zaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)
z95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c
z2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=
zfddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede
z;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQq
zIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?
z4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!
z0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`
zz<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!K
zaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)
z95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c
z2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=
zfddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede
z;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQq
zIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?
z4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!
z0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`
zz<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!K
zaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)
z95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c
z2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=
zfddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede
z;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQq
zIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?
z4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!
z0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`
zz<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!K
zaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)
z95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c
z2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=
zfddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede
z;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQq
zIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?
z4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!
z0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`
zz<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!K
zaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)
z95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c
z2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=
zfddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede
z;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQq
zIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?
z4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!
z0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`
zz<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!K
zaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)
z95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c
z2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=
zfddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede
z;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQq
zIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?
z4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!
z0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`
zz<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!K
zaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)
z95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c
z2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=
zfddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede
z;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQq
zIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?
z4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!
z0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`
zz<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!K
zaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)
z95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c
z2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=
zfddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede
z;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQq
zIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?
z4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!
z0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`
zz<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!K
zaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)
z95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c
z2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=
zfddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede
z;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQq
zIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?
z4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!
z0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`
zz<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!K
zaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)
z95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c
z2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=
zfddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede
z;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQq
zIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?
z4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!
z0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`
zz<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!K
zaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)
z95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c
z2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=
zfddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede
z;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQq
zIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?
z4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!
z0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`
zz<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!K
zaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)
z95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c
z2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=
zfddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede
z;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQq
zIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?
z4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!
z0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`
zz<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!K
zaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)
z95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c
z2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=
zfddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede
z;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQq
zIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?
z4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!
z0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`
zz<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!K
zaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)
z95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c
z2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=
zfddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede
z;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQq
zIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?
z4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!
z0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`
zz<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!K
zaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)
z95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c
z2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=
zfddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede
z;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQq
zIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?
z4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!
z0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`
zz<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!K
zaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)
z95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c
z2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=
zfddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede
z;J|?c2M!#-zP-R(S=RXiU#5bjC3(S1U^ZUJ^rNV!G!w;3s6}O@Z1GZ>T0(di10_K;
zK!?mLYJ-}JrsgOLH8ewpr8y>uUA$C8sCk*h(v$9G<8A)`wf3`leFx!qj;A?i`mWFC
zalOCw+`sSpuC?}dLx2DQ0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N
z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+
z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly
zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF
z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk
z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs
z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ
zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U
zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7
z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N
z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+
z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly
zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF
z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk
z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs
z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ
zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U
zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7
z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N
z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+
z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly
zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF
z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk
z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs
z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ
zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U
zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7
z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N
z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+
z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly
zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF
z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk
z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs
z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ
zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U
zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7
z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N
z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+
z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly
zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF
z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk
z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs
z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ
zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U
zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7
z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N
z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+
z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly
zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF
z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk
z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs
z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ
zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U
zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7
z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N
z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+
z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly
zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF
z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk
z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs
z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ
zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U
zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7
z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N
z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+
z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly
zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF
z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk
z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs
z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ
zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U
zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7
z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N
z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+
z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly
zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF
z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk
z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs
z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ
zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U
zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7
z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N
z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+
z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly
zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF
z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk
z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs
z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ
zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U
zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7
z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N
z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+
z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly
zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF
z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk
z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs
z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ
zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U
zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7
z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N
z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+
z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly
zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF
z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk
z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs
z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ
zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U
zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7
z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N
z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+
z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly
zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF
z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk
z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs
z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ
zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U
zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7
z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N
z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+
z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly
zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF
z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk
z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs
z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ
zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U
zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7
z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N
z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+
z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly
zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF
z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk
z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs
z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ
zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U
zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7
z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N
z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+
z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly
zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF
z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk
z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs
z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ
zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U
zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7
z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N
z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+
z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly
zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF
z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk
z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs
z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ
zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U
zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7
z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N
z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+
z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly
zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF
z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk
z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs
z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ
zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U
zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7
z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N
z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+
z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly
zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF
z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk
z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs
z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ
zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U
zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7
z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N
z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+
z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly
zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF
z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk
z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs
z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ
zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U
zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7
z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N
z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+
z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly
zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF
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
z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+
z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly
zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF
z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk
z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs
z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ
zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U
zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7
z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N
z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+
z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly
zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF
z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk
z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs
z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ
zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U
zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7
z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N
z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+
z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly
zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF
z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk
z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs
z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ
zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U
zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7
z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N
z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+
z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly
zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF
z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk
z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs
z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ
zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U
zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7
z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N
z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+
z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly
zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF
z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk
z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs
z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ
zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U
zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7
z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N
z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+
z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly
zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF
z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk
z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs
z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ
zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U
zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7
z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N
z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+
z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly
zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF
z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk
z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs
z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ
zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U
zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7
z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N
z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+
z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly
zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF
z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk
z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs
z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ
zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U
zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7
z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N
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%0AJli;P
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%0DJfY
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
G@&5p<io|*V

literal 0
HcmV?d00001

diff --git a/tests/qtest/bios-tables-test-allowed-diff.h.orig b/tests/qtest/bios-tables-test-allowed-diff.h.orig
new file mode 100644
index 0000000000..6a052c5044
--- /dev/null
+++ b/tests/qtest/bios-tables-test-allowed-diff.h.orig
@@ -0,0 +1,18 @@ 
+/* List of comma-separated changed AML files to ignore */
+"tests/data/acpi/pc/DSDT",
+"tests/data/acpi/pc/DSDT.acpihmat",
+"tests/data/acpi/pc/DSDT.bridge",
+"tests/data/acpi/pc/DSDT.cphp",
+"tests/data/acpi/pc/DSDT.dimmpxm",
+"tests/data/acpi/pc/DSDT.ipmikcs",
+"tests/data/acpi/pc/DSDT.memhp",
+"tests/data/acpi/pc/DSDT.numamem",
+"tests/data/acpi/q35/DSDT",
+"tests/data/acpi/q35/DSDT.acpihmat",
+"tests/data/acpi/q35/DSDT.bridge",
+"tests/data/acpi/q35/DSDT.cphp",
+"tests/data/acpi/q35/DSDT.dimmpxm",
+"tests/data/acpi/q35/DSDT.ipmibt",
+"tests/data/acpi/q35/DSDT.memhp",
+"tests/data/acpi/q35/DSDT.mmio64",
+"tests/data/acpi/q35/DSDT.numamem",
diff --git a/tests/qtest/bios-tables-test-allowed-diff.h.rej b/tests/qtest/bios-tables-test-allowed-diff.h.rej
new file mode 100644
index 0000000000..31b3352111
--- /dev/null
+++ b/tests/qtest/bios-tables-test-allowed-diff.h.rej
@@ -0,0 +1,9 @@ 
+--- tests/qtest/bios-tables-test-allowed-diff.h
++++ tests/qtest/bios-tables-test-allowed-diff.h
+@@ -1,6 +1 @@
+ /* List of comma-separated changed AML files to ignore */
+-"tests/data/acpi/pc/SSDT.dimmpxm",
+-"tests/data/acpi/q35/SSDT.dimmpxm",
+-"tests/data/acpi/virt/DSDT.memhp",
+-"tests/data/acpi/virt/SSDT.memhp",
+-"tests/data/acpi/virt/NFIT.memhp",
diff --git a/tests/qtest/bios-tables-test.c.orig b/tests/qtest/bios-tables-test.c.orig
new file mode 100644
index 0000000000..a0b8d81659
--- /dev/null
+++ b/tests/qtest/bios-tables-test.c.orig
@@ -0,0 +1,1200 @@ 
+/*
+ * Boot order test cases.
+ *
+ * Copyright (c) 2013 Red Hat Inc.
+ *
+ * Authors:
+ *  Michael S. Tsirkin <mst@redhat.com>,
+ *
+ * This work is licensed under the terms of the GNU GPL, version 2 or later.
+ * See the COPYING file in the top-level directory.
+ */
+
+/*
+ * How to add or update the tests:
+ * Contributor:
+ * 1. add empty files for new tables, if any, under tests/data/acpi
+ * 2. list any changed files in tests/qtest/bios-tables-test-allowed-diff.h
+ * 3. commit the above *before* making changes that affect the tables
+ *
+ * Contributor or ACPI Maintainer (steps 4-7 need to be redone to resolve conflicts
+ * in binary commit created in step 6):
+ *
+ * After 1-3 above tests will pass but ignore differences with the expected files.
+ * You will also notice that tests/qtest/bios-tables-test-allowed-diff.h lists
+ * a bunch of files. This is your hint that you need to do the below:
+ * 4. Run
+ *      make check V=1
+ * this will produce a bunch of warnings about differences
+ * beween actual and expected ACPI tables. If you have IASL installed,
+ * they will also be disassembled so you can look at the disassembled
+ * output. If not - disassemble them yourself in any way you like.
+ * Look at the differences - make sure they make sense and match what the
+ * changes you are merging are supposed to do.
+ * Save the changes, preferably in form of ASL diff for the commit log in
+ * step 6.
+ *
+ * 5. From build directory, run:
+ *      $(SRC_PATH)/tests/data/acpi/rebuild-expected-aml.sh
+ * 6. Now commit any changes to the expected binary, include diff from step 4
+ *    in commit log.
+ * 7. Before sending patches to the list (Contributor)
+ *    or before doing a pull request (Maintainer), make sure
+ *    tests/qtest/bios-tables-test-allowed-diff.h is empty - this will ensure
+ *    following changes to ACPI tables will be noticed.
+ *
+ * The resulting patchset/pull request then looks like this:
+ * - patch 1: list changed files in tests/qtest/bios-tables-test-allowed-diff.h.
+ * - patches 2 - n: real changes, may contain multiple patches.
+ * - patch n + 1: update golden master binaries and empty
+ *   tests/qtest/bios-tables-test-allowed-diff.h
+ */
+
+#include "qemu/osdep.h"
+#include <glib/gstdio.h>
+#include "qemu-common.h"
+#include "hw/firmware/smbios.h"
+#include "qemu/bitmap.h"
+#include "acpi-utils.h"
+#include "boot-sector.h"
+#include "tpm-emu.h"
+#include "hw/acpi/tpm.h"
+
+
+#define MACHINE_PC "pc"
+#define MACHINE_Q35 "q35"
+
+#define ACPI_REBUILD_EXPECTED_AML "TEST_ACPI_REBUILD_AML"
+
+typedef struct {
+    bool tcg_only;
+    const char *machine;
+    const char *variant;
+    const char *uefi_fl1;
+    const char *uefi_fl2;
+    const char *cd;
+    const uint64_t ram_start;
+    const uint64_t scan_len;
+    uint64_t rsdp_addr;
+    uint8_t rsdp_table[36 /* ACPI 2.0+ RSDP size */];
+    GArray *tables;
+    uint32_t smbios_ep_addr;
+    struct smbios_21_entry_point smbios_ep_table;
+    uint16_t smbios_cpu_max_speed;
+    uint16_t smbios_cpu_curr_speed;
+    uint8_t *required_struct_types;
+    int required_struct_types_len;
+    QTestState *qts;
+} test_data;
+
+static char disk[] = "tests/acpi-test-disk-XXXXXX";
+static const char *data_dir = "tests/data/acpi";
+#ifdef CONFIG_IASL
+static const char *iasl = CONFIG_IASL;
+#else
+static const char *iasl;
+#endif
+
+static bool compare_signature(const AcpiSdtTable *sdt, const char *signature)
+{
+   return !memcmp(sdt->aml, signature, 4);
+}
+
+static void cleanup_table_descriptor(AcpiSdtTable *table)
+{
+    g_free(table->aml);
+    if (table->aml_file &&
+        !table->tmp_files_retain &&
+        g_strstr_len(table->aml_file, -1, "aml-")) {
+        unlink(table->aml_file);
+    }
+    g_free(table->aml_file);
+    g_free(table->asl);
+    if (table->asl_file &&
+        !table->tmp_files_retain) {
+        unlink(table->asl_file);
+    }
+    g_free(table->asl_file);
+}
+
+static void free_test_data(test_data *data)
+{
+    int i;
+
+    for (i = 0; i < data->tables->len; ++i) {
+        cleanup_table_descriptor(&g_array_index(data->tables, AcpiSdtTable, i));
+    }
+
+    g_array_free(data->tables, true);
+}
+
+static void test_acpi_rsdp_table(test_data *data)
+{
+    uint8_t *rsdp_table = data->rsdp_table;
+
+    acpi_fetch_rsdp_table(data->qts, data->rsdp_addr, rsdp_table);
+
+    switch (rsdp_table[15 /* Revision offset */]) {
+    case 0: /* ACPI 1.0 RSDP */
+        /* With rev 1, checksum is only for the first 20 bytes */
+        g_assert(!acpi_calc_checksum(rsdp_table,  20));
+        break;
+    case 2: /* ACPI 2.0+ RSDP */
+        /* With revision 2, we have 2 checksums */
+        g_assert(!acpi_calc_checksum(rsdp_table, 20));
+        g_assert(!acpi_calc_checksum(rsdp_table, 36));
+        break;
+    default:
+        g_assert_not_reached();
+    }
+}
+
+static void test_acpi_rxsdt_table(test_data *data)
+{
+    const char *sig = "RSDT";
+    AcpiSdtTable rsdt = {};
+    int entry_size = 4;
+    int addr_off = 16 /* RsdtAddress */;
+    uint8_t *ent;
+
+    if (data->rsdp_table[15 /* Revision offset */] != 0) {
+        addr_off = 24 /* XsdtAddress */;
+        entry_size = 8;
+        sig = "XSDT";
+    }
+    /* read [RX]SDT table */
+    acpi_fetch_table(data->qts, &rsdt.aml, &rsdt.aml_len,
+                     &data->rsdp_table[addr_off], entry_size, sig, true);
+
+    /* Load all tables and add to test list directly RSDT referenced tables */
+    ACPI_FOREACH_RSDT_ENTRY(rsdt.aml, rsdt.aml_len, ent, entry_size) {
+        AcpiSdtTable ssdt_table = {};
+
+        acpi_fetch_table(data->qts, &ssdt_table.aml, &ssdt_table.aml_len, ent,
+                         entry_size, NULL, true);
+        /* Add table to ASL test tables list */
+        g_array_append_val(data->tables, ssdt_table);
+    }
+    cleanup_table_descriptor(&rsdt);
+}
+
+static void test_acpi_fadt_table(test_data *data)
+{
+    /* FADT table is 1st */
+    AcpiSdtTable table = g_array_index(data->tables, typeof(table), 0);
+    uint8_t *fadt_aml = table.aml;
+    uint32_t fadt_len = table.aml_len;
+    uint32_t val;
+    int dsdt_offset = 40 /* DSDT */;
+    int dsdt_entry_size = 4;
+
+    g_assert(compare_signature(&table, "FACP"));
+
+    /* Since DSDT/FACS isn't in RSDT, add them to ASL test list manually */
+    memcpy(&val, fadt_aml + 112 /* Flags */, 4);
+    val = le32_to_cpu(val);
+    if (!(val & 1UL << 20 /* HW_REDUCED_ACPI */)) {
+        acpi_fetch_table(data->qts, &table.aml, &table.aml_len,
+                         fadt_aml + 36 /* FIRMWARE_CTRL */, 4, "FACS", false);
+        g_array_append_val(data->tables, table);
+    }
+
+    memcpy(&val, fadt_aml + dsdt_offset, 4);
+    val = le32_to_cpu(val);
+    if (!val) {
+        dsdt_offset = 140 /* X_DSDT */;
+        dsdt_entry_size = 8;
+    }
+    acpi_fetch_table(data->qts, &table.aml, &table.aml_len,
+                     fadt_aml + dsdt_offset, dsdt_entry_size, "DSDT", true);
+    g_array_append_val(data->tables, table);
+
+    memset(fadt_aml + 36, 0, 4); /* sanitize FIRMWARE_CTRL ptr */
+    memset(fadt_aml + 40, 0, 4); /* sanitize DSDT ptr */
+    if (fadt_aml[8 /* FADT Major Version */] >= 3) {
+        memset(fadt_aml + 132, 0, 8); /* sanitize X_FIRMWARE_CTRL ptr */
+        memset(fadt_aml + 140, 0, 8); /* sanitize X_DSDT ptr */
+    }
+
+    /* update checksum */
+    fadt_aml[9 /* Checksum */] = 0;
+    fadt_aml[9 /* Checksum */] -= acpi_calc_checksum(fadt_aml, fadt_len);
+}
+
+static void dump_aml_files(test_data *data, bool rebuild)
+{
+    AcpiSdtTable *sdt;
+    GError *error = NULL;
+    gchar *aml_file = NULL;
+    gint fd;
+    ssize_t ret;
+    int i;
+
+    for (i = 0; i < data->tables->len; ++i) {
+        const char *ext = data->variant ? data->variant : "";
+        sdt = &g_array_index(data->tables, AcpiSdtTable, i);
+        g_assert(sdt->aml);
+
+        if (rebuild) {
+            aml_file = g_strdup_printf("%s/%s/%.4s%s", data_dir, data->machine,
+                                       sdt->aml, ext);
+            fd = g_open(aml_file, O_WRONLY|O_TRUNC|O_CREAT,
+                        S_IRUSR|S_IWUSR|S_IRGRP|S_IWGRP|S_IROTH);
+            if (fd < 0) {
+                perror(aml_file);
+            }
+            g_assert(fd >= 0);
+        } else {
+            fd = g_file_open_tmp("aml-XXXXXX", &sdt->aml_file, &error);
+            g_assert_no_error(error);
+        }
+
+        ret = qemu_write_full(fd, sdt->aml, sdt->aml_len);
+        g_assert(ret == sdt->aml_len);
+
+        close(fd);
+
+        g_free(aml_file);
+    }
+}
+
+static bool load_asl(GArray *sdts, AcpiSdtTable *sdt)
+{
+    AcpiSdtTable *temp;
+    GError *error = NULL;
+    GString *command_line = g_string_new(iasl);
+    gint fd;
+    gchar *out, *out_err;
+    gboolean ret;
+    int i;
+
+    fd = g_file_open_tmp("asl-XXXXXX.dsl", &sdt->asl_file, &error);
+    g_assert_no_error(error);
+    close(fd);
+
+    /* build command line */
+    g_string_append_printf(command_line, " -p %s ", sdt->asl_file);
+    if (compare_signature(sdt, "DSDT") ||
+        compare_signature(sdt, "SSDT")) {
+        for (i = 0; i < sdts->len; ++i) {
+            temp = &g_array_index(sdts, AcpiSdtTable, i);
+            if (compare_signature(temp, "DSDT") ||
+                compare_signature(temp, "SSDT")) {
+                g_string_append_printf(command_line, "-e %s ", temp->aml_file);
+            }
+        }
+    }
+    g_string_append_printf(command_line, "-d %s", sdt->aml_file);
+
+    /* pass 'out' and 'out_err' in order to be redirected */
+    ret = g_spawn_command_line_sync(command_line->str, &out, &out_err, NULL, &error);
+    g_assert_no_error(error);
+    if (ret) {
+        ret = g_file_get_contents(sdt->asl_file, &sdt->asl,
+                                  &sdt->asl_len, &error);
+        g_assert(ret);
+        g_assert_no_error(error);
+        ret = (sdt->asl_len > 0);
+    }
+
+    g_free(out);
+    g_free(out_err);
+    g_string_free(command_line, true);
+
+    return !ret;
+}
+
+#define COMMENT_END "*/"
+#define DEF_BLOCK "DefinitionBlock ("
+#define BLOCK_NAME_END ","
+
+static GString *normalize_asl(gchar *asl_code)
+{
+    GString *asl = g_string_new(asl_code);
+    gchar *comment, *block_name;
+
+    /* strip comments (different generation days) */
+    comment = g_strstr_len(asl->str, asl->len, COMMENT_END);
+    if (comment) {
+        comment += strlen(COMMENT_END);
+        while (*comment == '\n') {
+            comment++;
+        }
+        asl = g_string_erase(asl, 0, comment - asl->str);
+    }
+
+    /* strip def block name (it has file path in it) */
+    if (g_str_has_prefix(asl->str, DEF_BLOCK)) {
+        block_name = g_strstr_len(asl->str, asl->len, BLOCK_NAME_END);
+        g_assert(block_name);
+        asl = g_string_erase(asl, 0,
+                             block_name + sizeof(BLOCK_NAME_END) - asl->str);
+    }
+
+    return asl;
+}
+
+static GArray *load_expected_aml(test_data *data)
+{
+    int i;
+    AcpiSdtTable *sdt;
+    GError *error = NULL;
+    gboolean ret;
+    gsize aml_len;
+
+    GArray *exp_tables = g_array_new(false, true, sizeof(AcpiSdtTable));
+    if (getenv("V")) {
+        fputc('\n', stderr);
+    }
+    for (i = 0; i < data->tables->len; ++i) {
+        AcpiSdtTable exp_sdt;
+        gchar *aml_file = NULL;
+        const char *ext = data->variant ? data->variant : "";
+
+        sdt = &g_array_index(data->tables, AcpiSdtTable, i);
+
+        memset(&exp_sdt, 0, sizeof(exp_sdt));
+
+try_again:
+        aml_file = g_strdup_printf("%s/%s/%.4s%s", data_dir, data->machine,
+                                   sdt->aml, ext);
+        if (getenv("V")) {
+            fprintf(stderr, "Looking for expected file '%s'\n", aml_file);
+        }
+        if (g_file_test(aml_file, G_FILE_TEST_EXISTS)) {
+            exp_sdt.aml_file = aml_file;
+        } else if (*ext != '\0') {
+            /* try fallback to generic (extension less) expected file */
+            ext = "";
+            g_free(aml_file);
+            goto try_again;
+        }
+        g_assert(exp_sdt.aml_file);
+        if (getenv("V")) {
+            fprintf(stderr, "Using expected file '%s'\n", aml_file);
+        }
+        ret = g_file_get_contents(aml_file, (gchar **)&exp_sdt.aml,
+                                  &aml_len, &error);
+        exp_sdt.aml_len = aml_len;
+        g_assert(ret);
+        g_assert_no_error(error);
+        g_assert(exp_sdt.aml);
+        if (!exp_sdt.aml_len) {
+            fprintf(stderr, "Warning! zero length expected file '%s'\n",
+                    aml_file);
+        }
+
+        g_array_append_val(exp_tables, exp_sdt);
+    }
+
+    return exp_tables;
+}
+
+static bool test_acpi_find_diff_allowed(AcpiSdtTable *sdt)
+{
+    const gchar *allowed_diff_file[] = {
+#include "bios-tables-test-allowed-diff.h"
+        NULL
+    };
+    const gchar **f;
+
+    for (f = allowed_diff_file; *f; ++f) {
+        if (!g_strcmp0(sdt->aml_file, *f)) {
+            return true;
+        }
+    }
+    return false;
+}
+
+/* test the list of tables in @data->tables against reference tables */
+static void test_acpi_asl(test_data *data)
+{
+    int i;
+    AcpiSdtTable *sdt, *exp_sdt;
+    test_data exp_data;
+    gboolean exp_err, err, all_tables_match = true;
+
+    memset(&exp_data, 0, sizeof(exp_data));
+    exp_data.tables = load_expected_aml(data);
+    dump_aml_files(data, false);
+    for (i = 0; i < data->tables->len; ++i) {
+        GString *asl, *exp_asl;
+
+        sdt = &g_array_index(data->tables, AcpiSdtTable, i);
+        exp_sdt = &g_array_index(exp_data.tables, AcpiSdtTable, i);
+
+        if (sdt->aml_len == exp_sdt->aml_len &&
+            !memcmp(sdt->aml, exp_sdt->aml, sdt->aml_len)) {
+            /* Identical table binaries: no need to disassemble. */
+            continue;
+        }
+
+        fprintf(stderr,
+                "acpi-test: Warning! %.4s binary file mismatch. "
+                "Actual [aml:%s], Expected [aml:%s].\n"
+                "See source file tests/qtest/bios-tables-test.c "
+                "for instructions on how to update expected files.\n",
+                exp_sdt->aml, sdt->aml_file, exp_sdt->aml_file);
+
+        all_tables_match = all_tables_match &&
+            test_acpi_find_diff_allowed(exp_sdt);
+
+        /*
+         *  don't try to decompile if IASL isn't present, in this case user
+         * will just 'get binary file mismatch' warnings and test failure
+         */
+        if (!iasl) {
+            continue;
+        }
+
+        err = load_asl(data->tables, sdt);
+        asl = normalize_asl(sdt->asl);
+
+        exp_err = load_asl(exp_data.tables, exp_sdt);
+        exp_asl = normalize_asl(exp_sdt->asl);
+
+        /* TODO: check for warnings */
+        g_assert(!err || exp_err);
+
+        if (g_strcmp0(asl->str, exp_asl->str)) {
+            sdt->tmp_files_retain = true;
+            if (exp_err) {
+                fprintf(stderr,
+                        "Warning! iasl couldn't parse the expected aml\n");
+            } else {
+                exp_sdt->tmp_files_retain = true;
+                fprintf(stderr,
+                        "acpi-test: Warning! %.4s mismatch. "
+                        "Actual [asl:%s, aml:%s], Expected [asl:%s, aml:%s].\n",
+                        exp_sdt->aml, sdt->asl_file, sdt->aml_file,
+                        exp_sdt->asl_file, exp_sdt->aml_file);
+                fflush(stderr);
+                if (getenv("V")) {
+                    const char *diff_env = getenv("DIFF");
+                    const char *diff_cmd = diff_env ? diff_env : "diff -U 16";
+                    char *diff = g_strdup_printf("%s %s %s", diff_cmd,
+                                                 exp_sdt->asl_file, sdt->asl_file);
+                    int out = dup(STDOUT_FILENO);
+                    int ret G_GNUC_UNUSED;
+
+                    dup2(STDERR_FILENO, STDOUT_FILENO);
+                    ret = system(diff) ;
+                    dup2(out, STDOUT_FILENO);
+                    close(out);
+                    g_free(diff);
+                }
+            }
+        }
+        g_string_free(asl, true);
+        g_string_free(exp_asl, true);
+    }
+    if (!iasl && !all_tables_match) {
+        fprintf(stderr, "to see ASL diff between mismatched files install IASL,"
+                " rebuild QEMU from scratch and re-run tests with V=1"
+                " environment variable set");
+    }
+    g_assert(all_tables_match);
+
+    free_test_data(&exp_data);
+}
+
+static bool smbios_ep_table_ok(test_data *data)
+{
+    struct smbios_21_entry_point *ep_table = &data->smbios_ep_table;
+    uint32_t addr = data->smbios_ep_addr;
+
+    qtest_memread(data->qts, addr, ep_table, sizeof(*ep_table));
+    if (memcmp(ep_table->anchor_string, "_SM_", 4)) {
+        return false;
+    }
+    if (memcmp(ep_table->intermediate_anchor_string, "_DMI_", 5)) {
+        return false;
+    }
+    if (ep_table->structure_table_length == 0) {
+        return false;
+    }
+    if (ep_table->number_of_structures == 0) {
+        return false;
+    }
+    if (acpi_calc_checksum((uint8_t *)ep_table, sizeof *ep_table) ||
+        acpi_calc_checksum((uint8_t *)ep_table + 0x10,
+                           sizeof *ep_table - 0x10)) {
+        return false;
+    }
+    return true;
+}
+
+static void test_smbios_entry_point(test_data *data)
+{
+    uint32_t off;
+
+    /* find smbios entry point structure */
+    for (off = 0xf0000; off < 0x100000; off += 0x10) {
+        uint8_t sig[] = "_SM_";
+        int i;
+
+        for (i = 0; i < sizeof sig - 1; ++i) {
+            sig[i] = qtest_readb(data->qts, off + i);
+        }
+
+        if (!memcmp(sig, "_SM_", sizeof sig)) {
+            /* signature match, but is this a valid entry point? */
+            data->smbios_ep_addr = off;
+            if (smbios_ep_table_ok(data)) {
+                break;
+            }
+        }
+    }
+
+    g_assert_cmphex(off, <, 0x100000);
+}
+
+static inline bool smbios_single_instance(uint8_t type)
+{
+    switch (type) {
+    case 0:
+    case 1:
+    case 2:
+    case 3:
+    case 16:
+    case 32:
+    case 127:
+        return true;
+    default:
+        return false;
+    }
+}
+
+static bool smbios_cpu_test(test_data *data, uint32_t addr)
+{
+    uint16_t expect_speed[2];
+    uint16_t real;
+    int offset[2];
+    int i;
+
+    /* Check CPU speed for backward compatibility */
+    offset[0] = offsetof(struct smbios_type_4, max_speed);
+    offset[1] = offsetof(struct smbios_type_4, current_speed);
+    expect_speed[0] = data->smbios_cpu_max_speed ? : 2000;
+    expect_speed[1] = data->smbios_cpu_curr_speed ? : 2000;
+
+    for (i = 0; i < 2; i++) {
+        real = qtest_readw(data->qts, addr + offset[i]);
+        if (real != expect_speed[i]) {
+            fprintf(stderr, "Unexpected SMBIOS CPU speed: real %u expect %u\n",
+                    real, expect_speed[i]);
+            return false;
+        }
+    }
+
+    return true;
+}
+
+static void test_smbios_structs(test_data *data)
+{
+    DECLARE_BITMAP(struct_bitmap, SMBIOS_MAX_TYPE+1) = { 0 };
+    struct smbios_21_entry_point *ep_table = &data->smbios_ep_table;
+    uint32_t addr = le32_to_cpu(ep_table->structure_table_address);
+    int i, len, max_len = 0;
+    uint8_t type, prv, crt;
+
+    /* walk the smbios tables */
+    for (i = 0; i < le16_to_cpu(ep_table->number_of_structures); i++) {
+
+        /* grab type and formatted area length from struct header */
+        type = qtest_readb(data->qts, addr);
+        g_assert_cmpuint(type, <=, SMBIOS_MAX_TYPE);
+        len = qtest_readb(data->qts, addr + 1);
+
+        /* single-instance structs must not have been encountered before */
+        if (smbios_single_instance(type)) {
+            g_assert(!test_bit(type, struct_bitmap));
+        }
+        set_bit(type, struct_bitmap);
+
+        if (type == 4) {
+            g_assert(smbios_cpu_test(data, addr));
+        }
+
+        /* seek to end of unformatted string area of this struct ("\0\0") */
+        prv = crt = 1;
+        while (prv || crt) {
+            prv = crt;
+            crt = qtest_readb(data->qts, addr + len);
+            len++;
+        }
+
+        /* keep track of max. struct size */
+        if (max_len < len) {
+            max_len = len;
+            g_assert_cmpuint(max_len, <=, ep_table->max_structure_size);
+        }
+
+        /* start of next structure */
+        addr += len;
+    }
+
+    /* total table length and max struct size must match entry point values */
+    g_assert_cmpuint(le16_to_cpu(ep_table->structure_table_length), ==,
+                     addr - le32_to_cpu(ep_table->structure_table_address));
+    g_assert_cmpuint(le16_to_cpu(ep_table->max_structure_size), ==, max_len);
+
+    /* required struct types must all be present */
+    for (i = 0; i < data->required_struct_types_len; i++) {
+        g_assert(test_bit(data->required_struct_types[i], struct_bitmap));
+    }
+}
+
+static void test_acpi_one(const char *params, test_data *data)
+{
+    char *args;
+    bool use_uefi = data->uefi_fl1 && data->uefi_fl2;
+
+    if (use_uefi) {
+        /*
+         * TODO: convert '-drive if=pflash' to new syntax (see e33763be7cd3)
+         * when arm/virt boad starts to support it.
+         */
+        args = g_strdup_printf("-machine %s %s -accel tcg -nodefaults -nographic "
+            "-drive if=pflash,format=raw,file=%s,readonly "
+            "-drive if=pflash,format=raw,file=%s,snapshot=on -cdrom %s %s",
+            data->machine, data->tcg_only ? "" : "-accel kvm",
+            data->uefi_fl1, data->uefi_fl2, data->cd, params ? params : "");
+
+    } else {
+        /* Disable kernel irqchip to be able to override apic irq0. */
+        args = g_strdup_printf("-machine %s,kernel-irqchip=off %s -accel tcg "
+            "-net none -display none %s "
+            "-drive id=hd0,if=none,file=%s,format=raw "
+            "-device ide-hd,drive=hd0 ",
+             data->machine, data->tcg_only ? "" : "-accel kvm",
+             params ? params : "", disk);
+    }
+
+    data->qts = qtest_init(args);
+
+    if (use_uefi) {
+        g_assert(data->scan_len);
+        data->rsdp_addr = acpi_find_rsdp_address_uefi(data->qts,
+            data->ram_start, data->scan_len);
+    } else {
+        boot_sector_test(data->qts);
+        data->rsdp_addr = acpi_find_rsdp_address(data->qts);
+        g_assert_cmphex(data->rsdp_addr, <, 0x100000);
+    }
+
+    data->tables = g_array_new(false, true, sizeof(AcpiSdtTable));
+    test_acpi_rsdp_table(data);
+    test_acpi_rxsdt_table(data);
+    test_acpi_fadt_table(data);
+
+    if (getenv(ACPI_REBUILD_EXPECTED_AML)) {
+        dump_aml_files(data, true);
+    } else {
+        test_acpi_asl(data);
+    }
+
+    /*
+     * TODO: make SMBIOS tests work with UEFI firmware,
+     * Bug on uefi-test-tools to provide entry point:
+     * https://bugs.launchpad.net/qemu/+bug/1821884
+     */
+    if (!use_uefi) {
+        test_smbios_entry_point(data);
+        test_smbios_structs(data);
+    }
+
+    qtest_quit(data->qts);
+    g_free(args);
+}
+
+static uint8_t base_required_struct_types[] = {
+    0, 1, 3, 4, 16, 17, 19, 32, 127
+};
+
+static void test_acpi_piix4_tcg(void)
+{
+    test_data data;
+
+    /* Supplying -machine accel argument overrides the default (qtest).
+     * This is to make guest actually run.
+     */
+    memset(&data, 0, sizeof(data));
+    data.machine = MACHINE_PC;
+    data.required_struct_types = base_required_struct_types;
+    data.required_struct_types_len = ARRAY_SIZE(base_required_struct_types);
+    test_acpi_one(NULL, &data);
+    free_test_data(&data);
+}
+
+static void test_acpi_piix4_tcg_bridge(void)
+{
+    test_data data;
+
+    memset(&data, 0, sizeof(data));
+    data.machine = MACHINE_PC;
+    data.variant = ".bridge";
+    data.required_struct_types = base_required_struct_types;
+    data.required_struct_types_len = ARRAY_SIZE(base_required_struct_types);
+    test_acpi_one("-device pci-bridge,chassis_nr=1", &data);
+    free_test_data(&data);
+}
+
+<<<<<<< HEAD
+static void test_acpi_piix4_bridge_hotplug(void)
+=======
+static void test_acpi_piix4_root_hotplug(void)
+>>>>>>> tests/acpi: add a new unit test to test hotplug off/on feature on the root pci bus
+{
+    test_data data;
+
+    memset(&data, 0, sizeof(data));
+    data.machine = MACHINE_PC;
+<<<<<<< HEAD
+    data.variant = ".hpbridge";
+    data.required_struct_types = base_required_struct_types;
+    data.required_struct_types_len = ARRAY_SIZE(base_required_struct_types);
+    test_acpi_one("-global PIIX4_PM.acpi-pci-hotplug-with-bridge-support=off "
+                  "-device pci-bridge,chassis_nr=1", &data);
+=======
+    data.variant = ".roothp";
+    data.required_struct_types = base_required_struct_types;
+    data.required_struct_types_len = ARRAY_SIZE(base_required_struct_types);
+    test_acpi_one("-global PIIX4_PM.acpi-root-pci-hotplug=off", &data);
+>>>>>>> tests/acpi: add a new unit test to test hotplug off/on feature on the root pci bus
+    free_test_data(&data);
+}
+
+static void test_acpi_q35_tcg(void)
+{
+    test_data data;
+
+    memset(&data, 0, sizeof(data));
+    data.machine = MACHINE_Q35;
+    data.required_struct_types = base_required_struct_types;
+    data.required_struct_types_len = ARRAY_SIZE(base_required_struct_types);
+    test_acpi_one(NULL, &data);
+    free_test_data(&data);
+
+    data.smbios_cpu_max_speed = 3000;
+    data.smbios_cpu_curr_speed = 2600;
+    test_acpi_one("-smbios type=4,max-speed=3000,current-speed=2600", &data);
+    free_test_data(&data);
+}
+
+static void test_acpi_q35_tcg_bridge(void)
+{
+    test_data data;
+
+    memset(&data, 0, sizeof(data));
+    data.machine = MACHINE_Q35;
+    data.variant = ".bridge";
+    data.required_struct_types = base_required_struct_types;
+    data.required_struct_types_len = ARRAY_SIZE(base_required_struct_types);
+    test_acpi_one("-device pci-bridge,chassis_nr=1",
+                  &data);
+    free_test_data(&data);
+}
+
+static void test_acpi_q35_tcg_mmio64(void)
+{
+    test_data data = {
+        .machine = MACHINE_Q35,
+        .variant = ".mmio64",
+        .required_struct_types = base_required_struct_types,
+        .required_struct_types_len = ARRAY_SIZE(base_required_struct_types)
+    };
+
+    test_acpi_one("-m 128M,slots=1,maxmem=2G "
+                  "-object memory-backend-ram,id=ram0,size=128M "
+                  "-numa node,memdev=ram0 "
+                  "-device pci-testdev,membar=2G",
+                  &data);
+    free_test_data(&data);
+}
+
+static void test_acpi_piix4_tcg_cphp(void)
+{
+    test_data data;
+
+    memset(&data, 0, sizeof(data));
+    data.machine = MACHINE_PC;
+    data.variant = ".cphp";
+    test_acpi_one("-smp 2,cores=3,sockets=2,maxcpus=6"
+                  " -object memory-backend-ram,id=ram0,size=64M"
+                  " -object memory-backend-ram,id=ram1,size=64M"
+                  " -numa node,memdev=ram0 -numa node,memdev=ram1"
+                  " -numa dist,src=0,dst=1,val=21",
+                  &data);
+    free_test_data(&data);
+}
+
+static void test_acpi_q35_tcg_cphp(void)
+{
+    test_data data;
+
+    memset(&data, 0, sizeof(data));
+    data.machine = MACHINE_Q35;
+    data.variant = ".cphp";
+    test_acpi_one(" -smp 2,cores=3,sockets=2,maxcpus=6"
+                  " -object memory-backend-ram,id=ram0,size=64M"
+                  " -object memory-backend-ram,id=ram1,size=64M"
+                  " -numa node,memdev=ram0 -numa node,memdev=ram1"
+                  " -numa dist,src=0,dst=1,val=21",
+                  &data);
+    free_test_data(&data);
+}
+
+static uint8_t ipmi_required_struct_types[] = {
+    0, 1, 3, 4, 16, 17, 19, 32, 38, 127
+};
+
+static void test_acpi_q35_tcg_ipmi(void)
+{
+    test_data data;
+
+    memset(&data, 0, sizeof(data));
+    data.machine = MACHINE_Q35;
+    data.variant = ".ipmibt";
+    data.required_struct_types = ipmi_required_struct_types;
+    data.required_struct_types_len = ARRAY_SIZE(ipmi_required_struct_types);
+    test_acpi_one("-device ipmi-bmc-sim,id=bmc0"
+                  " -device isa-ipmi-bt,bmc=bmc0",
+                  &data);
+    free_test_data(&data);
+}
+
+static void test_acpi_piix4_tcg_ipmi(void)
+{
+    test_data data;
+
+    /* Supplying -machine accel argument overrides the default (qtest).
+     * This is to make guest actually run.
+     */
+    memset(&data, 0, sizeof(data));
+    data.machine = MACHINE_PC;
+    data.variant = ".ipmikcs";
+    data.required_struct_types = ipmi_required_struct_types;
+    data.required_struct_types_len = ARRAY_SIZE(ipmi_required_struct_types);
+    test_acpi_one("-device ipmi-bmc-sim,id=bmc0"
+                  " -device isa-ipmi-kcs,irq=0,bmc=bmc0",
+                  &data);
+    free_test_data(&data);
+}
+
+static void test_acpi_q35_tcg_memhp(void)
+{
+    test_data data;
+
+    memset(&data, 0, sizeof(data));
+    data.machine = MACHINE_Q35;
+    data.variant = ".memhp";
+    test_acpi_one(" -m 128,slots=3,maxmem=1G"
+                  " -object memory-backend-ram,id=ram0,size=64M"
+                  " -object memory-backend-ram,id=ram1,size=64M"
+                  " -numa node,memdev=ram0 -numa node,memdev=ram1"
+                  " -numa dist,src=0,dst=1,val=21",
+                  &data);
+    free_test_data(&data);
+}
+
+static void test_acpi_piix4_tcg_memhp(void)
+{
+    test_data data;
+
+    memset(&data, 0, sizeof(data));
+    data.machine = MACHINE_PC;
+    data.variant = ".memhp";
+    test_acpi_one(" -m 128,slots=3,maxmem=1G"
+                  " -object memory-backend-ram,id=ram0,size=64M"
+                  " -object memory-backend-ram,id=ram1,size=64M"
+                  " -numa node,memdev=ram0 -numa node,memdev=ram1"
+                  " -numa dist,src=0,dst=1,val=21",
+                  &data);
+    free_test_data(&data);
+}
+
+static void test_acpi_q35_tcg_numamem(void)
+{
+    test_data data;
+
+    memset(&data, 0, sizeof(data));
+    data.machine = MACHINE_Q35;
+    data.variant = ".numamem";
+    test_acpi_one(" -object memory-backend-ram,id=ram0,size=128M"
+                  " -numa node -numa node,memdev=ram0", &data);
+    free_test_data(&data);
+}
+
+static void test_acpi_piix4_tcg_numamem(void)
+{
+    test_data data;
+
+    memset(&data, 0, sizeof(data));
+    data.machine = MACHINE_PC;
+    data.variant = ".numamem";
+    test_acpi_one(" -object memory-backend-ram,id=ram0,size=128M"
+                  " -numa node -numa node,memdev=ram0", &data);
+    free_test_data(&data);
+}
+
+uint64_t tpm_tis_base_addr;
+
+static void test_acpi_tcg_tpm(const char *machine, const char *tpm_if,
+                              uint64_t base)
+{
+#ifdef CONFIG_TPM
+    gchar *tmp_dir_name = g_strdup_printf("qemu-test_acpi_%s_tcg_%s.XXXXXX",
+                                          machine, tpm_if);
+    char *tmp_path = g_dir_make_tmp(tmp_dir_name, NULL);
+    TestState test;
+    test_data data;
+    GThread *thread;
+    char *args, *variant = g_strdup_printf(".%s", tpm_if);
+
+    tpm_tis_base_addr = base;
+
+    module_call_init(MODULE_INIT_QOM);
+
+    test.addr = g_new0(SocketAddress, 1);
+    test.addr->type = SOCKET_ADDRESS_TYPE_UNIX;
+    test.addr->u.q_unix.path = g_build_filename(tmp_path, "sock", NULL);
+    g_mutex_init(&test.data_mutex);
+    g_cond_init(&test.data_cond);
+    test.data_cond_signal = false;
+
+    thread = g_thread_new(NULL, tpm_emu_ctrl_thread, &test);
+    tpm_emu_test_wait_cond(&test);
+
+    memset(&data, 0, sizeof(data));
+    data.machine = machine;
+    data.variant = variant;
+
+    args = g_strdup_printf(
+        " -chardev socket,id=chr,path=%s"
+        " -tpmdev emulator,id=dev,chardev=chr"
+        " -device tpm-%s,tpmdev=dev",
+        test.addr->u.q_unix.path, tpm_if);
+
+    test_acpi_one(args, &data);
+
+    g_thread_join(thread);
+    g_unlink(test.addr->u.q_unix.path);
+    qapi_free_SocketAddress(test.addr);
+    g_rmdir(tmp_path);
+    g_free(variant);
+    g_free(tmp_path);
+    g_free(tmp_dir_name);
+    g_free(args);
+    free_test_data(&data);
+#else
+    g_test_skip("TPM disabled");
+#endif
+}
+
+static void test_acpi_q35_tcg_tpm_tis(void)
+{
+    test_acpi_tcg_tpm("q35", "tis", 0xFED40000);
+}
+
+static void test_acpi_tcg_dimm_pxm(const char *machine)
+{
+    test_data data;
+
+    memset(&data, 0, sizeof(data));
+    data.machine = machine;
+    data.variant = ".dimmpxm";
+    test_acpi_one(" -machine nvdimm=on,nvdimm-persistence=cpu"
+                  " -smp 4,sockets=4"
+                  " -m 128M,slots=3,maxmem=1G"
+                  " -object memory-backend-ram,id=ram0,size=32M"
+                  " -object memory-backend-ram,id=ram1,size=32M"
+                  " -object memory-backend-ram,id=ram2,size=32M"
+                  " -object memory-backend-ram,id=ram3,size=32M"
+                  " -numa node,memdev=ram0,nodeid=0"
+                  " -numa node,memdev=ram1,nodeid=1"
+                  " -numa node,memdev=ram2,nodeid=2"
+                  " -numa node,memdev=ram3,nodeid=3"
+                  " -numa cpu,node-id=0,socket-id=0"
+                  " -numa cpu,node-id=1,socket-id=1"
+                  " -numa cpu,node-id=2,socket-id=2"
+                  " -numa cpu,node-id=3,socket-id=3"
+                  " -object memory-backend-ram,id=ram4,size=128M"
+                  " -object memory-backend-ram,id=nvm0,size=128M"
+                  " -device pc-dimm,id=dimm0,memdev=ram4,node=1"
+                  " -device nvdimm,id=dimm1,memdev=nvm0,node=2",
+                  &data);
+    free_test_data(&data);
+}
+
+static void test_acpi_q35_tcg_dimm_pxm(void)
+{
+    test_acpi_tcg_dimm_pxm(MACHINE_Q35);
+}
+
+static void test_acpi_piix4_tcg_dimm_pxm(void)
+{
+    test_acpi_tcg_dimm_pxm(MACHINE_PC);
+}
+
+static void test_acpi_virt_tcg_memhp(void)
+{
+    test_data data = {
+        .machine = "virt",
+        .tcg_only = true,
+        .uefi_fl1 = "pc-bios/edk2-aarch64-code.fd",
+        .uefi_fl2 = "pc-bios/edk2-arm-vars.fd",
+        .cd = "tests/data/uefi-boot-images/bios-tables-test.aarch64.iso.qcow2",
+        .ram_start = 0x40000000ULL,
+        .scan_len = 256ULL * 1024 * 1024,
+    };
+
+    data.variant = ".memhp";
+    test_acpi_one(" -machine nvdimm=on"
+                  " -cpu cortex-a57"
+                  " -m 256M,slots=3,maxmem=1G"
+                  " -object memory-backend-ram,id=ram0,size=128M"
+                  " -object memory-backend-ram,id=ram1,size=128M"
+                  " -numa node,memdev=ram0 -numa node,memdev=ram1"
+                  " -numa dist,src=0,dst=1,val=21"
+                  " -object memory-backend-ram,id=ram2,size=128M"
+                  " -object memory-backend-ram,id=nvm0,size=128M"
+                  " -device pc-dimm,id=dimm0,memdev=ram2,node=0"
+                  " -device nvdimm,id=dimm1,memdev=nvm0,node=1",
+                  &data);
+
+    free_test_data(&data);
+
+}
+
+static void test_acpi_virt_tcg_numamem(void)
+{
+    test_data data = {
+        .machine = "virt",
+        .tcg_only = true,
+        .uefi_fl1 = "pc-bios/edk2-aarch64-code.fd",
+        .uefi_fl2 = "pc-bios/edk2-arm-vars.fd",
+        .cd = "tests/data/uefi-boot-images/bios-tables-test.aarch64.iso.qcow2",
+        .ram_start = 0x40000000ULL,
+        .scan_len = 128ULL * 1024 * 1024,
+    };
+
+    data.variant = ".numamem";
+    test_acpi_one(" -cpu cortex-a57"
+                  " -object memory-backend-ram,id=ram0,size=128M"
+                  " -numa node,memdev=ram0",
+                  &data);
+
+    free_test_data(&data);
+
+}
+
+static void test_acpi_tcg_acpi_hmat(const char *machine)
+{
+    test_data data;
+
+    memset(&data, 0, sizeof(data));
+    data.machine = machine;
+    data.variant = ".acpihmat";
+    test_acpi_one(" -machine hmat=on"
+                  " -smp 2,sockets=2"
+                  " -m 128M,slots=2,maxmem=1G"
+                  " -object memory-backend-ram,size=64M,id=m0"
+                  " -object memory-backend-ram,size=64M,id=m1"
+                  " -numa node,nodeid=0,memdev=m0"
+                  " -numa node,nodeid=1,memdev=m1,initiator=0"
+                  " -numa cpu,node-id=0,socket-id=0"
+                  " -numa cpu,node-id=0,socket-id=1"
+                  " -numa hmat-lb,initiator=0,target=0,hierarchy=memory,"
+                  "data-type=access-latency,latency=1"
+                  " -numa hmat-lb,initiator=0,target=0,hierarchy=memory,"
+                  "data-type=access-bandwidth,bandwidth=65534M"
+                  " -numa hmat-lb,initiator=0,target=1,hierarchy=memory,"
+                  "data-type=access-latency,latency=65534"
+                  " -numa hmat-lb,initiator=0,target=1,hierarchy=memory,"
+                  "data-type=access-bandwidth,bandwidth=32767M"
+                  " -numa hmat-cache,node-id=0,size=10K,level=1,"
+                  "associativity=direct,policy=write-back,line=8"
+                  " -numa hmat-cache,node-id=1,size=10K,level=1,"
+                  "associativity=direct,policy=write-back,line=8",
+                  &data);
+    free_test_data(&data);
+}
+
+static void test_acpi_q35_tcg_acpi_hmat(void)
+{
+    test_acpi_tcg_acpi_hmat(MACHINE_Q35);
+}
+
+static void test_acpi_piix4_tcg_acpi_hmat(void)
+{
+    test_acpi_tcg_acpi_hmat(MACHINE_PC);
+}
+
+static void test_acpi_virt_tcg(void)
+{
+    test_data data = {
+        .machine = "virt",
+        .tcg_only = true,
+        .uefi_fl1 = "pc-bios/edk2-aarch64-code.fd",
+        .uefi_fl2 = "pc-bios/edk2-arm-vars.fd",
+        .cd = "tests/data/uefi-boot-images/bios-tables-test.aarch64.iso.qcow2",
+        .ram_start = 0x40000000ULL,
+        .scan_len = 128ULL * 1024 * 1024,
+    };
+
+    test_acpi_one("-cpu cortex-a57", &data);
+    free_test_data(&data);
+
+    data.smbios_cpu_max_speed = 2900;
+    data.smbios_cpu_curr_speed = 2700;
+    test_acpi_one("-cpu cortex-a57 "
+                  "-smbios type=4,max-speed=2900,current-speed=2700", &data);
+    free_test_data(&data);
+}
+
+int main(int argc, char *argv[])
+{
+    const char *arch = qtest_get_arch();
+    int ret;
+
+    g_test_init(&argc, &argv, NULL);
+
+    if (strcmp(arch, "i386") == 0 || strcmp(arch, "x86_64") == 0) {
+        ret = boot_sector_init(disk);
+        if (ret) {
+            return ret;
+        }
+
+        qtest_add_func("acpi/q35/tpm-tis", test_acpi_q35_tcg_tpm_tis);
+        qtest_add_func("acpi/piix4", test_acpi_piix4_tcg);
+        qtest_add_func("acpi/piix4/bridge", test_acpi_piix4_tcg_bridge);
+<<<<<<< HEAD
+        qtest_add_func("acpi/piix4/brhotplug", test_acpi_piix4_bridge_hotplug);
+=======
+        qtest_add_func("acpi/piix4/hotplug", test_acpi_piix4_root_hotplug);
+>>>>>>> tests/acpi: add a new unit test to test hotplug off/on feature on the root pci bus
+        qtest_add_func("acpi/q35", test_acpi_q35_tcg);
+        qtest_add_func("acpi/q35/bridge", test_acpi_q35_tcg_bridge);
+        qtest_add_func("acpi/q35/mmio64", test_acpi_q35_tcg_mmio64);
+        qtest_add_func("acpi/piix4/ipmi", test_acpi_piix4_tcg_ipmi);
+        qtest_add_func("acpi/q35/ipmi", test_acpi_q35_tcg_ipmi);
+        qtest_add_func("acpi/piix4/cpuhp", test_acpi_piix4_tcg_cphp);
+        qtest_add_func("acpi/q35/cpuhp", test_acpi_q35_tcg_cphp);
+        qtest_add_func("acpi/piix4/memhp", test_acpi_piix4_tcg_memhp);
+        qtest_add_func("acpi/q35/memhp", test_acpi_q35_tcg_memhp);
+        qtest_add_func("acpi/piix4/numamem", test_acpi_piix4_tcg_numamem);
+        qtest_add_func("acpi/q35/numamem", test_acpi_q35_tcg_numamem);
+        qtest_add_func("acpi/piix4/dimmpxm", test_acpi_piix4_tcg_dimm_pxm);
+        qtest_add_func("acpi/q35/dimmpxm", test_acpi_q35_tcg_dimm_pxm);
+        qtest_add_func("acpi/piix4/acpihmat", test_acpi_piix4_tcg_acpi_hmat);
+        qtest_add_func("acpi/q35/acpihmat", test_acpi_q35_tcg_acpi_hmat);
+    } else if (strcmp(arch, "aarch64") == 0) {
+        qtest_add_func("acpi/virt", test_acpi_virt_tcg);
+        qtest_add_func("acpi/virt/numamem", test_acpi_virt_tcg_numamem);
+        qtest_add_func("acpi/virt/memhp", test_acpi_virt_tcg_memhp);
+    }
+    ret = g_test_run();
+    boot_sector_cleanup(disk);
+    return ret;
+}
diff --git a/tests/qtest/bios-tables-test.c.rej b/tests/qtest/bios-tables-test.c.rej
new file mode 100644
index 0000000000..aacd6ae220
--- /dev/null
+++ b/tests/qtest/bios-tables-test.c.rej
@@ -0,0 +1,22 @@ 
+--- tests/qtest/bios-tables-test.c
++++ tests/qtest/bios-tables-test.c
+@@ -927,12 +927,17 @@ static void test_acpi_virt_tcg_memhp(void)
+     };
+ 20
+     data.variant =3D ".memhp";
+-    test_acpi_one(" -cpu cortex-a57"
++    test_acpi_one(" -machine nvdimm=3Don"
++                  " -cpu cortex-a57"
+                   " -m 256M,slots=3D3,maxmem=3D1G"
+                   " -object memory-backend-ram,id=3Dram0,size=3D128M"
+                   " -object memory-backend-ram,id=3Dram1,size=3D128M"
+                   " -numa node,memdev=3Dram0 -numa node,memdev=3Dram1"
+-                  " -numa dist,src=3D0,dst=3D1,val=3D21",
++                  " -numa dist,src=3D0,dst=3D1,val=3D21"
++                  " -object memory-backend-ram,id=3Dram2,size=3D128M"
++                  " -object memory-backend-ram,id=3Dnvm0,size=3D128M"
++                  " -device pc-dimm,id=3Ddimm0,memdev=3Dram2,node=3D0"
++                  " -device nvdimm,id=3Ddimm1,memdev=3Dnvm0,node=3D1",
+                   &data);
+ 20
+     free_test_data(&data);
diff --git a/tests/vhost-user-bridge b/tests/vhost-user-bridge
new file mode 100755
index 0000000000000000000000000000000000000000..36d1ece0dc8a198846c3a8bf277c1f7d093736f5
GIT binary patch
literal 83120
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
TKY(+Fsc-Nk$gv~6OY8f;GePBQ

literal 0
HcmV?d00001

diff --git a/tests/vhost-user-bridge.c.orig b/tests/vhost-user-bridge.c.orig
new file mode 100644
index 0000000000..f907ce741f
--- /dev/null
+++ b/tests/vhost-user-bridge.c.orig
@@ -0,0 +1,1432 @@ 
+/*
+ * Vhost User Bridge
+ *
+ * Copyright (c) 2015 Red Hat, Inc.
+ *
+ * Authors:
+ *  Victor Kaplansky <victork@redhat.com>
+ *
+ * This work is licensed under the terms of the GNU GPL, version 2 or
+ * later.  See the COPYING file in the top-level directory.
+ */
+
+/*
+ * TODO:
+ *     - main should get parameters from the command line.
+ *     - implement all request handlers. Still not implemented:
+ *          vubr_get_queue_num_exec()
+ *          vubr_send_rarp_exec()
+ *     - test for broken requests and virtqueue.
+ *     - implement features defined by Virtio 1.0 spec.
+ *     - support mergeable buffers and indirect descriptors.
+ *     - implement clean shutdown.
+ *     - implement non-blocking writes to UDP backend.
+ *     - implement polling strategy.
+ *     - implement clean starting/stopping of vq processing
+ *     - implement clean starting/stopping of used and buffers
+ *       dirty page logging.
+ */
+
+#define _FILE_OFFSET_BITS 64
+
+#include "qemu/osdep.h"
+#include <sys/socket.h>
+#include <sys/un.h>
+#include <sys/unistd.h>
+#include <sys/mman.h>
+#include <sys/eventfd.h>
+#include <arpa/inet.h>
+#include <netdb.h>
+#include <qemu/osdep.h>
+
+#include <linux/vhost.h>
+
+#include "qemu/atomic.h"
+#include "standard-headers/linux/virtio_net.h"
+#include "standard-headers/linux/virtio_ring.h"
+
+#define VHOST_USER_BRIDGE_DEBUG 1
+
+#define DPRINT(...) \
+    do { \
+        if (VHOST_USER_BRIDGE_DEBUG) { \
+            printf(__VA_ARGS__); \
+        } \
+    } while (0)
+
+typedef void (*CallbackFunc)(int sock, void *ctx);
+
+typedef struct Event {
+    void *ctx;
+    CallbackFunc callback;
+} Event;
+
+typedef struct Dispatcher {
+    int max_sock;
+    fd_set fdset;
+    Event events[FD_SETSIZE];
+} Dispatcher;
+
+static void
+vubr_die(const char *s)
+{
+    perror(s);
+    exit(1);
+}
+
+static int
+dispatcher_init(Dispatcher *dispr)
+{
+    FD_ZERO(&dispr->fdset);
+    dispr->max_sock = -1;
+    return 0;
+}
+
+static int
+dispatcher_add(Dispatcher *dispr, int sock, void *ctx, CallbackFunc cb)
+{
+    if (sock >= FD_SETSIZE) {
+        fprintf(stderr,
+                "Error: Failed to add new event. sock %d should be less than %d\n",
+                sock, FD_SETSIZE);
+        return -1;
+    }
+
+    dispr->events[sock].ctx = ctx;
+    dispr->events[sock].callback = cb;
+
+    FD_SET(sock, &dispr->fdset);
+    if (sock > dispr->max_sock) {
+        dispr->max_sock = sock;
+    }
+    DPRINT("Added sock %d for watching. max_sock: %d\n",
+           sock, dispr->max_sock);
+    return 0;
+}
+
+/* dispatcher_remove() is not currently in use but may be useful
+ * in the future. */
+static int
+dispatcher_remove(Dispatcher *dispr, int sock)
+{
+    if (sock >= FD_SETSIZE) {
+        fprintf(stderr,
+                "Error: Failed to remove event. sock %d should be less than %d\n",
+                sock, FD_SETSIZE);
+        return -1;
+    }
+
+    FD_CLR(sock, &dispr->fdset);
+    DPRINT("Sock %d removed from dispatcher watch.\n", sock);
+    return 0;
+}
+
+/* timeout in us */
+static int
+dispatcher_wait(Dispatcher *dispr, uint32_t timeout)
+{
+    struct timeval tv;
+    tv.tv_sec = timeout / 1000000;
+    tv.tv_usec = timeout % 1000000;
+
+    fd_set fdset = dispr->fdset;
+
+    /* wait until some of sockets become readable. */
+    int rc = select(dispr->max_sock + 1, &fdset, 0, 0, &tv);
+
+    if (rc == -1) {
+        vubr_die("select");
+    }
+
+    /* Timeout */
+    if (rc == 0) {
+        return 0;
+    }
+
+    /* Now call callback for every ready socket. */
+
+    int sock;
+    for (sock = 0; sock < dispr->max_sock + 1; sock++) {
+        /* The callback on a socket can remove other sockets from the
+         * dispatcher, thus we have to check that the socket is
+         * still not removed from dispatcher's list
+         */
+        if (FD_ISSET(sock, &fdset) && FD_ISSET(sock, &dispr->fdset)) {
+            Event *e = &dispr->events[sock];
+            e->callback(sock, e->ctx);
+        }
+    }
+
+    return 0;
+}
+
+typedef struct VubrVirtq {
+    int call_fd;
+    int kick_fd;
+    uint32_t size;
+    uint16_t last_avail_index;
+    uint16_t last_used_index;
+    struct vring_desc *desc;
+    struct vring_avail *avail;
+    struct vring_used *used;
+    uint64_t log_guest_addr;
+    int enable;
+} VubrVirtq;
+
+/* Based on qemu/hw/virtio/vhost-user.c */
+
+#define VHOST_MEMORY_MAX_NREGIONS    8
+#define VHOST_USER_F_PROTOCOL_FEATURES 30
+/* v1.0 compliant. */
+#define VIRTIO_F_VERSION_1		32
+
+#define VHOST_LOG_PAGE 4096
+
+enum VhostUserProtocolFeature {
+    VHOST_USER_PROTOCOL_F_MQ = 0,
+    VHOST_USER_PROTOCOL_F_LOG_SHMFD = 1,
+    VHOST_USER_PROTOCOL_F_RARP = 2,
+
+    VHOST_USER_PROTOCOL_F_MAX
+};
+
+#define VHOST_USER_PROTOCOL_FEATURE_MASK ((1 << VHOST_USER_PROTOCOL_F_MAX) - 1)
+
+typedef enum VhostUserRequest {
+    VHOST_USER_NONE = 0,
+    VHOST_USER_GET_FEATURES = 1,
+    VHOST_USER_SET_FEATURES = 2,
+    VHOST_USER_SET_OWNER = 3,
+    VHOST_USER_RESET_OWNER = 4,
+    VHOST_USER_SET_MEM_TABLE = 5,
+    VHOST_USER_SET_LOG_BASE = 6,
+    VHOST_USER_SET_LOG_FD = 7,
+    VHOST_USER_SET_VRING_NUM = 8,
+    VHOST_USER_SET_VRING_ADDR = 9,
+    VHOST_USER_SET_VRING_BASE = 10,
+    VHOST_USER_GET_VRING_BASE = 11,
+    VHOST_USER_SET_VRING_KICK = 12,
+    VHOST_USER_SET_VRING_CALL = 13,
+    VHOST_USER_SET_VRING_ERR = 14,
+    VHOST_USER_GET_PROTOCOL_FEATURES = 15,
+    VHOST_USER_SET_PROTOCOL_FEATURES = 16,
+    VHOST_USER_GET_QUEUE_NUM = 17,
+    VHOST_USER_SET_VRING_ENABLE = 18,
+    VHOST_USER_SEND_RARP = 19,
+    VHOST_USER_MAX
+} VhostUserRequest;
+
+typedef struct VhostUserMemoryRegion {
+    uint64_t guest_phys_addr;
+    uint64_t memory_size;
+    uint64_t userspace_addr;
+    uint64_t mmap_offset;
+} VhostUserMemoryRegion;
+
+typedef struct VhostUserMemory {
+    uint32_t nregions;
+    uint32_t padding;
+    VhostUserMemoryRegion regions[VHOST_MEMORY_MAX_NREGIONS];
+} VhostUserMemory;
+
+typedef struct VhostUserLog {
+    uint64_t mmap_size;
+    uint64_t mmap_offset;
+} VhostUserLog;
+
+typedef struct VhostUserMsg {
+    VhostUserRequest request;
+
+#define VHOST_USER_VERSION_MASK     (0x3)
+#define VHOST_USER_REPLY_MASK       (0x1<<2)
+    uint32_t flags;
+    uint32_t size; /* the following payload size */
+    union {
+#define VHOST_USER_VRING_IDX_MASK   (0xff)
+#define VHOST_USER_VRING_NOFD_MASK  (0x1<<8)
+        uint64_t u64;
+        struct vhost_vring_state state;
+        struct vhost_vring_addr addr;
+        VhostUserMemory memory;
+        VhostUserLog log;
+    } payload;
+    int fds[VHOST_MEMORY_MAX_NREGIONS];
+    int fd_num;
+} QEMU_PACKED VhostUserMsg;
+
+#define VHOST_USER_HDR_SIZE offsetof(VhostUserMsg, payload.u64)
+
+/* The version of the protocol we support */
+#define VHOST_USER_VERSION    (0x1)
+
+#define MAX_NR_VIRTQUEUE (8)
+
+typedef struct VubrDevRegion {
+    /* Guest Physical address. */
+    uint64_t gpa;
+    /* Memory region size. */
+    uint64_t size;
+    /* QEMU virtual address (userspace). */
+    uint64_t qva;
+    /* Starting offset in our mmaped space. */
+    uint64_t mmap_offset;
+    /* Start address of mmaped space. */
+    uint64_t mmap_addr;
+} VubrDevRegion;
+
+typedef struct VubrDev {
+    int sock;
+    Dispatcher dispatcher;
+    uint32_t nregions;
+    VubrDevRegion regions[VHOST_MEMORY_MAX_NREGIONS];
+    VubrVirtq vq[MAX_NR_VIRTQUEUE];
+    int log_call_fd;
+    uint64_t log_size;
+    uint8_t *log_table;
+    int backend_udp_sock;
+    struct sockaddr_in backend_udp_dest;
+    int ready;
+    uint64_t features;
+    int hdrlen;
+} VubrDev;
+
+static const char *vubr_request_str[] = {
+    [VHOST_USER_NONE]                   =  "VHOST_USER_NONE",
+    [VHOST_USER_GET_FEATURES]           =  "VHOST_USER_GET_FEATURES",
+    [VHOST_USER_SET_FEATURES]           =  "VHOST_USER_SET_FEATURES",
+    [VHOST_USER_SET_OWNER]              =  "VHOST_USER_SET_OWNER",
+    [VHOST_USER_RESET_OWNER]           =  "VHOST_USER_RESET_OWNER",
+    [VHOST_USER_SET_MEM_TABLE]          =  "VHOST_USER_SET_MEM_TABLE",
+    [VHOST_USER_SET_LOG_BASE]           =  "VHOST_USER_SET_LOG_BASE",
+    [VHOST_USER_SET_LOG_FD]             =  "VHOST_USER_SET_LOG_FD",
+    [VHOST_USER_SET_VRING_NUM]          =  "VHOST_USER_SET_VRING_NUM",
+    [VHOST_USER_SET_VRING_ADDR]         =  "VHOST_USER_SET_VRING_ADDR",
+    [VHOST_USER_SET_VRING_BASE]         =  "VHOST_USER_SET_VRING_BASE",
+    [VHOST_USER_GET_VRING_BASE]         =  "VHOST_USER_GET_VRING_BASE",
+    [VHOST_USER_SET_VRING_KICK]         =  "VHOST_USER_SET_VRING_KICK",
+    [VHOST_USER_SET_VRING_CALL]         =  "VHOST_USER_SET_VRING_CALL",
+    [VHOST_USER_SET_VRING_ERR]          =  "VHOST_USER_SET_VRING_ERR",
+    [VHOST_USER_GET_PROTOCOL_FEATURES]  =  "VHOST_USER_GET_PROTOCOL_FEATURES",
+    [VHOST_USER_SET_PROTOCOL_FEATURES]  =  "VHOST_USER_SET_PROTOCOL_FEATURES",
+    [VHOST_USER_GET_QUEUE_NUM]          =  "VHOST_USER_GET_QUEUE_NUM",
+    [VHOST_USER_SET_VRING_ENABLE]       =  "VHOST_USER_SET_VRING_ENABLE",
+    [VHOST_USER_SEND_RARP]              =  "VHOST_USER_SEND_RARP",
+    [VHOST_USER_MAX]                    =  "VHOST_USER_MAX",
+};
+
+static void
+print_buffer(uint8_t *buf, size_t len)
+{
+    int i;
+    printf("Raw buffer:\n");
+    for (i = 0; i < len; i++) {
+        if (i % 16 == 0) {
+            printf("\n");
+        }
+        if (i % 4 == 0) {
+            printf("   ");
+        }
+        printf("%02x ", buf[i]);
+    }
+    printf("\n............................................................\n");
+}
+
+/* Translate guest physical address to our virtual address.  */
+static uint64_t
+gpa_to_va(VubrDev *dev, uint64_t guest_addr)
+{
+    int i;
+
+    /* Find matching memory region.  */
+    for (i = 0; i < dev->nregions; i++) {
+        VubrDevRegion *r = &dev->regions[i];
+
+        if ((guest_addr >= r->gpa) && (guest_addr < (r->gpa + r->size))) {
+            return guest_addr - r->gpa + r->mmap_addr + r->mmap_offset;
+        }
+    }
+
+    assert(!"address not found in regions");
+    return 0;
+}
+
+/* Translate qemu virtual address to our virtual address.  */
+static uint64_t
+qva_to_va(VubrDev *dev, uint64_t qemu_addr)
+{
+    int i;
+
+    /* Find matching memory region.  */
+    for (i = 0; i < dev->nregions; i++) {
+        VubrDevRegion *r = &dev->regions[i];
+
+        if ((qemu_addr >= r->qva) && (qemu_addr < (r->qva + r->size))) {
+            return qemu_addr - r->qva + r->mmap_addr + r->mmap_offset;
+        }
+    }
+
+    assert(!"address not found in regions");
+    return 0;
+}
+
+static void
+vubr_message_read(int conn_fd, VhostUserMsg *vmsg)
+{
+    char control[CMSG_SPACE(VHOST_MEMORY_MAX_NREGIONS * sizeof(int))] = { };
+    struct iovec iov = {
+        .iov_base = (char *)vmsg,
+        .iov_len = VHOST_USER_HDR_SIZE,
+    };
+    struct msghdr msg = {
+        .msg_iov = &iov,
+        .msg_iovlen = 1,
+        .msg_control = control,
+        .msg_controllen = sizeof(control),
+    };
+    size_t fd_size;
+    struct cmsghdr *cmsg;
+    int rc;
+
+    rc = recvmsg(conn_fd, &msg, 0);
+
+    if (rc == 0) {
+        vubr_die("recvmsg");
+        fprintf(stderr, "Peer disconnected.\n");
+        exit(1);
+    }
+    if (rc < 0) {
+        vubr_die("recvmsg");
+    }
+
+    vmsg->fd_num = 0;
+    for (cmsg = CMSG_FIRSTHDR(&msg);
+         cmsg != NULL;
+         cmsg = CMSG_NXTHDR(&msg, cmsg))
+    {
+        if (cmsg->cmsg_level == SOL_SOCKET && cmsg->cmsg_type == SCM_RIGHTS) {
+            fd_size = cmsg->cmsg_len - CMSG_LEN(0);
+            vmsg->fd_num = fd_size / sizeof(int);
+            memcpy(vmsg->fds, CMSG_DATA(cmsg), fd_size);
+            break;
+        }
+    }
+
+    if (vmsg->size > sizeof(vmsg->payload)) {
+        fprintf(stderr,
+                "Error: too big message request: %d, size: vmsg->size: %u, "
+                "while sizeof(vmsg->payload) = %zu\n",
+                vmsg->request, vmsg->size, sizeof(vmsg->payload));
+        exit(1);
+    }
+
+    if (vmsg->size) {
+        rc = read(conn_fd, &vmsg->payload, vmsg->size);
+        if (rc == 0) {
+            vubr_die("recvmsg");
+            fprintf(stderr, "Peer disconnected.\n");
+            exit(1);
+        }
+        if (rc < 0) {
+            vubr_die("recvmsg");
+        }
+
+        assert(rc == vmsg->size);
+    }
+}
+
+static void
+vubr_message_write(int conn_fd, VhostUserMsg *vmsg)
+{
+    int rc;
+
+    do {
+        rc = write(conn_fd, vmsg, VHOST_USER_HDR_SIZE + vmsg->size);
+    } while (rc < 0 && errno == EINTR);
+
+    if (rc < 0) {
+        vubr_die("write");
+    }
+}
+
+static void
+vubr_backend_udp_sendbuf(VubrDev *dev, uint8_t *buf, size_t len)
+{
+    int slen = sizeof(struct sockaddr_in);
+
+    if (sendto(dev->backend_udp_sock, buf, len, 0,
+               (struct sockaddr *) &dev->backend_udp_dest, slen) == -1) {
+        vubr_die("sendto()");
+    }
+}
+
+static int
+vubr_backend_udp_recvbuf(VubrDev *dev, uint8_t *buf, size_t buflen)
+{
+    int slen = sizeof(struct sockaddr_in);
+    int rc;
+
+    rc = recvfrom(dev->backend_udp_sock, buf, buflen, 0,
+                  (struct sockaddr *) &dev->backend_udp_dest,
+                  (socklen_t *)&slen);
+    if (rc == -1) {
+        vubr_die("recvfrom()");
+    }
+
+    return rc;
+}
+
+static void
+vubr_consume_raw_packet(VubrDev *dev, uint8_t *buf, uint32_t len)
+{
+    int hdrlen = dev->hdrlen;
+    DPRINT("    hdrlen = %d\n", dev->hdrlen);
+
+    if (VHOST_USER_BRIDGE_DEBUG) {
+        print_buffer(buf, len);
+    }
+    vubr_backend_udp_sendbuf(dev, buf + hdrlen, len - hdrlen);
+}
+
+/* Kick the log_call_fd if required. */
+static void
+vubr_log_kick(VubrDev *dev)
+{
+    if (dev->log_call_fd != -1) {
+        DPRINT("Kicking the QEMU's log...\n");
+        eventfd_write(dev->log_call_fd, 1);
+    }
+}
+
+/* Kick the guest if necessary. */
+static void
+vubr_virtqueue_kick(VubrVirtq *vq)
+{
+    if (!(vq->avail->flags & VRING_AVAIL_F_NO_INTERRUPT)) {
+        DPRINT("Kicking the guest...\n");
+        eventfd_write(vq->call_fd, 1);
+    }
+}
+
+static void
+vubr_log_page(uint8_t *log_table, uint64_t page)
+{
+    DPRINT("Logged dirty guest page: %"PRId64"\n", page);
+    atomic_or(&log_table[page / 8], 1 << (page % 8));
+}
+
+static void
+vubr_log_write(VubrDev *dev, uint64_t address, uint64_t length)
+{
+    uint64_t page;
+
+    if (!(dev->features & (1ULL << VHOST_F_LOG_ALL)) ||
+        !dev->log_table || !length) {
+        return;
+    }
+
+    assert(dev->log_size > ((address + length - 1) / VHOST_LOG_PAGE / 8));
+
+    page = address / VHOST_LOG_PAGE;
+    while (page * VHOST_LOG_PAGE < address + length) {
+        vubr_log_page(dev->log_table, page);
+        page += VHOST_LOG_PAGE;
+    }
+    vubr_log_kick(dev);
+}
+
+static void
+vubr_post_buffer(VubrDev *dev, VubrVirtq *vq, uint8_t *buf, int32_t len)
+{
+    struct vring_desc *desc = vq->desc;
+    struct vring_avail *avail = vq->avail;
+    struct vring_used *used = vq->used;
+    uint64_t log_guest_addr = vq->log_guest_addr;
+    int32_t remaining_len = len;
+
+    unsigned int size = vq->size;
+
+    uint16_t avail_index = atomic_mb_read(&avail->idx);
+
+    /* We check the available descriptors before posting the
+     * buffer, so here we assume that enough available
+     * descriptors. */
+    assert(vq->last_avail_index != avail_index);
+    uint16_t a_index = vq->last_avail_index % size;
+    uint16_t u_index = vq->last_used_index % size;
+    uint16_t d_index = avail->ring[a_index];
+
+    int i = d_index;
+    uint32_t written_len = 0;
+
+    do {
+        DPRINT("Post packet to guest on vq:\n");
+        DPRINT("    size             = %d\n", vq->size);
+        DPRINT("    last_avail_index = %d\n", vq->last_avail_index);
+        DPRINT("    last_used_index  = %d\n", vq->last_used_index);
+        DPRINT("    a_index = %d\n", a_index);
+        DPRINT("    u_index = %d\n", u_index);
+        DPRINT("    d_index = %d\n", d_index);
+        DPRINT("    desc[%d].addr    = 0x%016"PRIx64"\n", i, desc[i].addr);
+        DPRINT("    desc[%d].len     = %d\n", i, desc[i].len);
+        DPRINT("    desc[%d].flags   = %d\n", i, desc[i].flags);
+        DPRINT("    avail->idx = %d\n", avail_index);
+        DPRINT("    used->idx  = %d\n", used->idx);
+
+        if (!(desc[i].flags & VRING_DESC_F_WRITE)) {
+            /* FIXME: we should find writable descriptor. */
+            fprintf(stderr, "Error: descriptor is not writable. Exiting.\n");
+            exit(1);
+        }
+
+        void *chunk_start = (void *)(uintptr_t)gpa_to_va(dev, desc[i].addr);
+        uint32_t chunk_len = desc[i].len;
+        uint32_t chunk_write_len = MIN(remaining_len, chunk_len);
+
+        memcpy(chunk_start, buf + written_len, chunk_write_len);
+        vubr_log_write(dev, desc[i].addr, chunk_write_len);
+        remaining_len -= chunk_write_len;
+        written_len += chunk_write_len;
+
+        if ((remaining_len == 0) || !(desc[i].flags & VRING_DESC_F_NEXT)) {
+            break;
+        }
+
+        i = desc[i].next;
+    } while (1);
+
+    if (remaining_len > 0) {
+            fprintf(stderr,
+                    "Too long packet for RX, remaining_len = %d, Dropping...\n",
+                    remaining_len);
+            return;
+    }
+
+    /* Add descriptor to the used ring. */
+    used->ring[u_index].id = d_index;
+    used->ring[u_index].len = len;
+    vubr_log_write(dev,
+                   log_guest_addr + offsetof(struct vring_used, ring[u_index]),
+                   sizeof(used->ring[u_index]));
+
+    vq->last_avail_index++;
+    vq->last_used_index++;
+
+    atomic_mb_set(&used->idx, vq->last_used_index);
+    vubr_log_write(dev,
+                   log_guest_addr + offsetof(struct vring_used, idx),
+                   sizeof(used->idx));
+
+    /* Kick the guest if necessary. */
+    vubr_virtqueue_kick(vq);
+}
+
+static int
+vubr_process_desc(VubrDev *dev, VubrVirtq *vq)
+{
+    struct vring_desc *desc = vq->desc;
+    struct vring_avail *avail = vq->avail;
+    struct vring_used *used = vq->used;
+    uint64_t log_guest_addr = vq->log_guest_addr;
+
+    unsigned int size = vq->size;
+
+    uint16_t a_index = vq->last_avail_index % size;
+    uint16_t u_index = vq->last_used_index % size;
+    uint16_t d_index = avail->ring[a_index];
+
+    uint32_t i, len = 0;
+    size_t buf_size = 4096;
+    uint8_t buf[4096];
+
+    DPRINT("Chunks: ");
+    i = d_index;
+    do {
+        void *chunk_start = (void *)(uintptr_t)gpa_to_va(dev, desc[i].addr);
+        uint32_t chunk_len = desc[i].len;
+
+        assert(!(desc[i].flags & VRING_DESC_F_WRITE));
+
+        if (len + chunk_len < buf_size) {
+            memcpy(buf + len, chunk_start, chunk_len);
+            DPRINT("%d ", chunk_len);
+        } else {
+            fprintf(stderr, "Error: too long packet. Dropping...\n");
+            break;
+        }
+
+        len += chunk_len;
+
+        if (!(desc[i].flags & VRING_DESC_F_NEXT)) {
+            break;
+        }
+
+        i = desc[i].next;
+    } while (1);
+    DPRINT("\n");
+
+    if (!len) {
+        return -1;
+    }
+
+    /* Add descriptor to the used ring. */
+    used->ring[u_index].id = d_index;
+    used->ring[u_index].len = len;
+    vubr_log_write(dev,
+                   log_guest_addr + offsetof(struct vring_used, ring[u_index]),
+                   sizeof(used->ring[u_index]));
+
+    vubr_consume_raw_packet(dev, buf, len);
+
+    return 0;
+}
+
+static void
+vubr_process_avail(VubrDev *dev, VubrVirtq *vq)
+{
+    struct vring_avail *avail = vq->avail;
+    struct vring_used *used = vq->used;
+    uint64_t log_guest_addr = vq->log_guest_addr;
+
+    while (vq->last_avail_index != atomic_mb_read(&avail->idx)) {
+        vubr_process_desc(dev, vq);
+        vq->last_avail_index++;
+        vq->last_used_index++;
+    }
+
+    atomic_mb_set(&used->idx, vq->last_used_index);
+    vubr_log_write(dev,
+                   log_guest_addr + offsetof(struct vring_used, idx),
+                   sizeof(used->idx));
+}
+
+static void
+vubr_backend_recv_cb(int sock, void *ctx)
+{
+    VubrDev *dev = (VubrDev *) ctx;
+    VubrVirtq *rx_vq = &dev->vq[0];
+    uint8_t buf[4096];
+    struct virtio_net_hdr_v1 *hdr = (struct virtio_net_hdr_v1 *)buf;
+    int hdrlen = dev->hdrlen;
+    int buflen = sizeof(buf);
+    int len;
+
+    if (!dev->ready) {
+        return;
+    }
+
+    DPRINT("\n\n   ***   IN UDP RECEIVE CALLBACK    ***\n\n");
+    DPRINT("    hdrlen = %d\n", hdrlen);
+
+    uint16_t avail_index = atomic_mb_read(&rx_vq->avail->idx);
+
+    /* If there is no available descriptors, just do nothing.
+     * The buffer will be handled by next arrived UDP packet,
+     * or next kick on receive virtq. */
+    if (rx_vq->last_avail_index == avail_index) {
+        DPRINT("Got UDP packet, but no available descriptors on RX virtq.\n");
+        return;
+    }
+
+    memset(buf, 0, hdrlen);
+    /* TODO: support mergeable buffers. */
+    if (hdrlen == 12)
+        hdr->num_buffers = 1;
+    len = vubr_backend_udp_recvbuf(dev, buf + hdrlen, buflen - hdrlen);
+
+    vubr_post_buffer(dev, rx_vq, buf, len + hdrlen);
+}
+
+static void
+vubr_kick_cb(int sock, void *ctx)
+{
+    VubrDev *dev = (VubrDev *) ctx;
+    eventfd_t kick_data;
+    ssize_t rc;
+
+    rc = eventfd_read(sock, &kick_data);
+    if (rc == -1) {
+        vubr_die("eventfd_read()");
+    } else {
+        DPRINT("Got kick_data: %016"PRIx64"\n", kick_data);
+        vubr_process_avail(dev, &dev->vq[1]);
+    }
+}
+
+static int
+vubr_none_exec(VubrDev *dev, VhostUserMsg *vmsg)
+{
+    DPRINT("Function %s() not implemented yet.\n", __func__);
+    return 0;
+}
+
+static int
+vubr_get_features_exec(VubrDev *dev, VhostUserMsg *vmsg)
+{
+    vmsg->payload.u64 =
+            ((1ULL << VIRTIO_NET_F_MRG_RXBUF) |
+             (1ULL << VHOST_F_LOG_ALL) |
+             (1ULL << VIRTIO_NET_F_GUEST_ANNOUNCE) |
+             (1ULL << VHOST_USER_F_PROTOCOL_FEATURES));
+
+    vmsg->size = sizeof(vmsg->payload.u64);
+
+    DPRINT("Sending back to guest u64: 0x%016"PRIx64"\n", vmsg->payload.u64);
+
+    /* Reply */
+    return 1;
+}
+
+static int
+vubr_set_features_exec(VubrDev *dev, VhostUserMsg *vmsg)
+{
+    DPRINT("u64: 0x%016"PRIx64"\n", vmsg->payload.u64);
+
+    dev->features = vmsg->payload.u64;
+    if ((dev->features & (1ULL << VIRTIO_F_VERSION_1)) ||
+        (dev->features & (1ULL << VIRTIO_NET_F_MRG_RXBUF))) {
+        dev->hdrlen = 12;
+    } else {
+        dev->hdrlen = 10;
+    }
+
+    return 0;
+}
+
+static int
+vubr_set_owner_exec(VubrDev *dev, VhostUserMsg *vmsg)
+{
+    return 0;
+}
+
+static void
+vubr_close_log(VubrDev *dev)
+{
+    if (dev->log_table) {
+        if (munmap(dev->log_table, dev->log_size) != 0) {
+            vubr_die("munmap()");
+        }
+
+        dev->log_table = 0;
+    }
+    if (dev->log_call_fd != -1) {
+        close(dev->log_call_fd);
+        dev->log_call_fd = -1;
+    }
+}
+
+static int
+vubr_reset_device_exec(VubrDev *dev, VhostUserMsg *vmsg)
+{
+    vubr_close_log(dev);
+    dev->ready = 0;
+    dev->features = 0;
+    return 0;
+}
+
+static int
+vubr_set_mem_table_exec(VubrDev *dev, VhostUserMsg *vmsg)
+{
+    int i;
+    VhostUserMemory *memory = &vmsg->payload.memory;
+    dev->nregions = memory->nregions;
+
+    DPRINT("Nregions: %d\n", memory->nregions);
+    for (i = 0; i < dev->nregions; i++) {
+        void *mmap_addr;
+        VhostUserMemoryRegion *msg_region = &memory->regions[i];
+        VubrDevRegion *dev_region = &dev->regions[i];
+
+        DPRINT("Region %d\n", i);
+        DPRINT("    guest_phys_addr: 0x%016"PRIx64"\n",
+               msg_region->guest_phys_addr);
+        DPRINT("    memory_size:     0x%016"PRIx64"\n",
+               msg_region->memory_size);
+        DPRINT("    userspace_addr   0x%016"PRIx64"\n",
+               msg_region->userspace_addr);
+        DPRINT("    mmap_offset      0x%016"PRIx64"\n",
+               msg_region->mmap_offset);
+
+        dev_region->gpa = msg_region->guest_phys_addr;
+        dev_region->size = msg_region->memory_size;
+        dev_region->qva = msg_region->userspace_addr;
+        dev_region->mmap_offset = msg_region->mmap_offset;
+
+        /* We don't use offset argument of mmap() since the
+         * mapped address has to be page aligned, and we use huge
+         * pages.  */
+        mmap_addr = mmap(0, dev_region->size + dev_region->mmap_offset,
+                         PROT_READ | PROT_WRITE, MAP_SHARED,
+                         vmsg->fds[i], 0);
+
+        if (mmap_addr == MAP_FAILED) {
+            vubr_die("mmap");
+        }
+        dev_region->mmap_addr = (uint64_t)(uintptr_t)mmap_addr;
+        DPRINT("    mmap_addr:       0x%016"PRIx64"\n", dev_region->mmap_addr);
+
+        close(vmsg->fds[i]);
+    }
+
+    return 0;
+}
+
+static int
+vubr_set_log_base_exec(VubrDev *dev, VhostUserMsg *vmsg)
+{
+    int fd;
+    uint64_t log_mmap_size, log_mmap_offset;
+    void *rc;
+
+    assert(vmsg->fd_num == 1);
+    fd = vmsg->fds[0];
+
+    assert(vmsg->size == sizeof(vmsg->payload.log));
+    log_mmap_offset = vmsg->payload.log.mmap_offset;
+    log_mmap_size = vmsg->payload.log.mmap_size;
+    DPRINT("Log mmap_offset: %"PRId64"\n", log_mmap_offset);
+    DPRINT("Log mmap_size:   %"PRId64"\n", log_mmap_size);
+
+    rc = mmap(0, log_mmap_size, PROT_READ | PROT_WRITE, MAP_SHARED, fd,
+              log_mmap_offset);
+    if (rc == MAP_FAILED) {
+        vubr_die("mmap");
+    }
+    dev->log_table = rc;
+    dev->log_size = log_mmap_size;
+
+    vmsg->size = sizeof(vmsg->payload.u64);
+    /* Reply */
+    return 1;
+}
+
+static int
+vubr_set_log_fd_exec(VubrDev *dev, VhostUserMsg *vmsg)
+{
+    assert(vmsg->fd_num == 1);
+    dev->log_call_fd = vmsg->fds[0];
+    DPRINT("Got log_call_fd: %d\n", vmsg->fds[0]);
+    return 0;
+}
+
+static int
+vubr_set_vring_num_exec(VubrDev *dev, VhostUserMsg *vmsg)
+{
+    unsigned int index = vmsg->payload.state.index;
+    unsigned int num = vmsg->payload.state.num;
+
+    DPRINT("State.index: %d\n", index);
+    DPRINT("State.num:   %d\n", num);
+    dev->vq[index].size = num;
+    return 0;
+}
+
+static int
+vubr_set_vring_addr_exec(VubrDev *dev, VhostUserMsg *vmsg)
+{
+    struct vhost_vring_addr *vra = &vmsg->payload.addr;
+    unsigned int index = vra->index;
+    VubrVirtq *vq = &dev->vq[index];
+
+    DPRINT("vhost_vring_addr:\n");
+    DPRINT("    index:  %d\n", vra->index);
+    DPRINT("    flags:  %d\n", vra->flags);
+    DPRINT("    desc_user_addr:   0x%016llx\n", vra->desc_user_addr);
+    DPRINT("    used_user_addr:   0x%016llx\n", vra->used_user_addr);
+    DPRINT("    avail_user_addr:  0x%016llx\n", vra->avail_user_addr);
+    DPRINT("    log_guest_addr:   0x%016llx\n", vra->log_guest_addr);
+
+    vq->desc = (struct vring_desc *)(uintptr_t)qva_to_va(dev, vra->desc_user_addr);
+    vq->used = (struct vring_used *)(uintptr_t)qva_to_va(dev, vra->used_user_addr);
+    vq->avail = (struct vring_avail *)(uintptr_t)qva_to_va(dev, vra->avail_user_addr);
+    vq->log_guest_addr = vra->log_guest_addr;
+
+    DPRINT("Setting virtq addresses:\n");
+    DPRINT("    vring_desc  at %p\n", vq->desc);
+    DPRINT("    vring_used  at %p\n", vq->used);
+    DPRINT("    vring_avail at %p\n", vq->avail);
+
+    vq->last_used_index = vq->used->idx;
+    return 0;
+}
+
+static int
+vubr_set_vring_base_exec(VubrDev *dev, VhostUserMsg *vmsg)
+{
+    unsigned int index = vmsg->payload.state.index;
+    unsigned int num = vmsg->payload.state.num;
+
+    DPRINT("State.index: %d\n", index);
+    DPRINT("State.num:   %d\n", num);
+    dev->vq[index].last_avail_index = num;
+
+    return 0;
+}
+
+static int
+vubr_get_vring_base_exec(VubrDev *dev, VhostUserMsg *vmsg)
+{
+    unsigned int index = vmsg->payload.state.index;
+
+    DPRINT("State.index: %d\n", index);
+    vmsg->payload.state.num = dev->vq[index].last_avail_index;
+    vmsg->size = sizeof(vmsg->payload.state);
+    /* FIXME: this is a work-around for a bug in QEMU enabling
+     * too early vrings. When protocol features are enabled,
+     * we have to respect * VHOST_USER_SET_VRING_ENABLE request. */
+    dev->ready = 0;
+
+    if (dev->vq[index].call_fd != -1) {
+        close(dev->vq[index].call_fd);
+        dispatcher_remove(&dev->dispatcher, dev->vq[index].call_fd);
+        dev->vq[index].call_fd = -1;
+    }
+    if (dev->vq[index].kick_fd != -1) {
+        close(dev->vq[index].kick_fd);
+        dispatcher_remove(&dev->dispatcher, dev->vq[index].kick_fd);
+        dev->vq[index].kick_fd = -1;
+    }
+
+    /* Reply */
+    return 1;
+}
+
+static int
+vubr_set_vring_kick_exec(VubrDev *dev, VhostUserMsg *vmsg)
+{
+    uint64_t u64_arg = vmsg->payload.u64;
+    int index = u64_arg & VHOST_USER_VRING_IDX_MASK;
+
+    DPRINT("u64: 0x%016"PRIx64"\n", vmsg->payload.u64);
+
+    assert((u64_arg & VHOST_USER_VRING_NOFD_MASK) == 0);
+    assert(vmsg->fd_num == 1);
+
+    if (dev->vq[index].kick_fd != -1) {
+        close(dev->vq[index].kick_fd);
+        dispatcher_remove(&dev->dispatcher, dev->vq[index].kick_fd);
+    }
+    dev->vq[index].kick_fd = vmsg->fds[0];
+    DPRINT("Got kick_fd: %d for vq: %d\n", vmsg->fds[0], index);
+
+    if (index % 2 == 1) {
+        /* TX queue. */
+        dispatcher_add(&dev->dispatcher, dev->vq[index].kick_fd,
+                       dev, vubr_kick_cb);
+
+        DPRINT("Waiting for kicks on fd: %d for vq: %d\n",
+               dev->vq[index].kick_fd, index);
+    }
+    /* We temporarily use this hack to determine that both TX and RX
+     * queues are set up and ready for processing.
+     * FIXME: we need to rely in VHOST_USER_SET_VRING_ENABLE and
+     * actual kicks. */
+    if (dev->vq[0].kick_fd != -1 &&
+        dev->vq[1].kick_fd != -1) {
+        dev->ready = 1;
+        DPRINT("vhost-user-bridge is ready for processing queues.\n");
+    }
+    return 0;
+
+}
+
+static int
+vubr_set_vring_call_exec(VubrDev *dev, VhostUserMsg *vmsg)
+{
+    uint64_t u64_arg = vmsg->payload.u64;
+    int index = u64_arg & VHOST_USER_VRING_IDX_MASK;
+
+    DPRINT("u64: 0x%016"PRIx64"\n", vmsg->payload.u64);
+    assert((u64_arg & VHOST_USER_VRING_NOFD_MASK) == 0);
+    assert(vmsg->fd_num == 1);
+
+    if (dev->vq[index].call_fd != -1) {
+        close(dev->vq[index].call_fd);
+        dispatcher_remove(&dev->dispatcher, dev->vq[index].call_fd);
+    }
+    dev->vq[index].call_fd = vmsg->fds[0];
+    DPRINT("Got call_fd: %d for vq: %d\n", vmsg->fds[0], index);
+
+    return 0;
+}
+
+static int
+vubr_set_vring_err_exec(VubrDev *dev, VhostUserMsg *vmsg)
+{
+    DPRINT("u64: 0x%016"PRIx64"\n", vmsg->payload.u64);
+    return 0;
+}
+
+static int
+vubr_get_protocol_features_exec(VubrDev *dev, VhostUserMsg *vmsg)
+{
+    vmsg->payload.u64 = 1ULL << VHOST_USER_PROTOCOL_F_LOG_SHMFD;
+    DPRINT("u64: 0x%016"PRIx64"\n", vmsg->payload.u64);
+    vmsg->size = sizeof(vmsg->payload.u64);
+
+    /* Reply */
+    return 1;
+}
+
+static int
+vubr_set_protocol_features_exec(VubrDev *dev, VhostUserMsg *vmsg)
+{
+    /* FIXME: unimplented */
+    DPRINT("u64: 0x%016"PRIx64"\n", vmsg->payload.u64);
+    return 0;
+}
+
+static int
+vubr_get_queue_num_exec(VubrDev *dev, VhostUserMsg *vmsg)
+{
+    DPRINT("Function %s() not implemented yet.\n", __func__);
+    return 0;
+}
+
+static int
+vubr_set_vring_enable_exec(VubrDev *dev, VhostUserMsg *vmsg)
+{
+    unsigned int index = vmsg->payload.state.index;
+    unsigned int enable = vmsg->payload.state.num;
+
+    DPRINT("State.index: %d\n", index);
+    DPRINT("State.enable:   %d\n", enable);
+    dev->vq[index].enable = enable;
+    return 0;
+}
+
+static int
+vubr_send_rarp_exec(VubrDev *dev, VhostUserMsg *vmsg)
+{
+    DPRINT("Function %s() not implemented yet.\n", __func__);
+    return 0;
+}
+
+static int
+vubr_execute_request(VubrDev *dev, VhostUserMsg *vmsg)
+{
+    /* Print out generic part of the request. */
+    DPRINT(
+           "==================   Vhost user message from QEMU   ==================\n");
+    DPRINT("Request: %s (%d)\n", vubr_request_str[vmsg->request],
+           vmsg->request);
+    DPRINT("Flags:   0x%x\n", vmsg->flags);
+    DPRINT("Size:    %d\n", vmsg->size);
+
+    if (vmsg->fd_num) {
+        int i;
+        DPRINT("Fds:");
+        for (i = 0; i < vmsg->fd_num; i++) {
+            DPRINT(" %d", vmsg->fds[i]);
+        }
+        DPRINT("\n");
+    }
+
+    switch (vmsg->request) {
+    case VHOST_USER_NONE:
+        return vubr_none_exec(dev, vmsg);
+    case VHOST_USER_GET_FEATURES:
+        return vubr_get_features_exec(dev, vmsg);
+    case VHOST_USER_SET_FEATURES:
+        return vubr_set_features_exec(dev, vmsg);
+    case VHOST_USER_SET_OWNER:
+        return vubr_set_owner_exec(dev, vmsg);
+    case VHOST_USER_RESET_OWNER:
+        return vubr_reset_device_exec(dev, vmsg);
+    case VHOST_USER_SET_MEM_TABLE:
+        return vubr_set_mem_table_exec(dev, vmsg);
+    case VHOST_USER_SET_LOG_BASE:
+        return vubr_set_log_base_exec(dev, vmsg);
+    case VHOST_USER_SET_LOG_FD:
+        return vubr_set_log_fd_exec(dev, vmsg);
+    case VHOST_USER_SET_VRING_NUM:
+        return vubr_set_vring_num_exec(dev, vmsg);
+    case VHOST_USER_SET_VRING_ADDR:
+        return vubr_set_vring_addr_exec(dev, vmsg);
+    case VHOST_USER_SET_VRING_BASE:
+        return vubr_set_vring_base_exec(dev, vmsg);
+    case VHOST_USER_GET_VRING_BASE:
+        return vubr_get_vring_base_exec(dev, vmsg);
+    case VHOST_USER_SET_VRING_KICK:
+        return vubr_set_vring_kick_exec(dev, vmsg);
+    case VHOST_USER_SET_VRING_CALL:
+        return vubr_set_vring_call_exec(dev, vmsg);
+    case VHOST_USER_SET_VRING_ERR:
+        return vubr_set_vring_err_exec(dev, vmsg);
+    case VHOST_USER_GET_PROTOCOL_FEATURES:
+        return vubr_get_protocol_features_exec(dev, vmsg);
+    case VHOST_USER_SET_PROTOCOL_FEATURES:
+        return vubr_set_protocol_features_exec(dev, vmsg);
+    case VHOST_USER_GET_QUEUE_NUM:
+        return vubr_get_queue_num_exec(dev, vmsg);
+    case VHOST_USER_SET_VRING_ENABLE:
+        return vubr_set_vring_enable_exec(dev, vmsg);
+    case VHOST_USER_SEND_RARP:
+        return vubr_send_rarp_exec(dev, vmsg);
+
+    case VHOST_USER_MAX:
+        assert(vmsg->request != VHOST_USER_MAX);
+    }
+    return 0;
+}
+
+static void
+vubr_receive_cb(int sock, void *ctx)
+{
+    VubrDev *dev = (VubrDev *) ctx;
+    VhostUserMsg vmsg;
+    int reply_requested;
+
+    vubr_message_read(sock, &vmsg);
+    reply_requested = vubr_execute_request(dev, &vmsg);
+    if (reply_requested) {
+        /* Set the version in the flags when sending the reply */
+        vmsg.flags &= ~VHOST_USER_VERSION_MASK;
+        vmsg.flags |= VHOST_USER_VERSION;
+        vmsg.flags |= VHOST_USER_REPLY_MASK;
+        vubr_message_write(sock, &vmsg);
+    }
+}
+
+static void
+vubr_accept_cb(int sock, void *ctx)
+{
+    VubrDev *dev = (VubrDev *)ctx;
+    int conn_fd;
+    struct sockaddr_un un;
+    socklen_t len = sizeof(un);
+
+    conn_fd = accept(sock, (struct sockaddr *) &un, &len);
+    if (conn_fd == -1) {
+        vubr_die("accept()");
+    }
+    DPRINT("Got connection from remote peer on sock %d\n", conn_fd);
+    dispatcher_add(&dev->dispatcher, conn_fd, ctx, vubr_receive_cb);
+}
+
+static VubrDev *
+vubr_new(const char *path, bool client)
+{
+    VubrDev *dev = (VubrDev *) calloc(1, sizeof(VubrDev));
+    dev->nregions = 0;
+    int i;
+    struct sockaddr_un un;
+    CallbackFunc cb;
+    size_t len;
+
+    for (i = 0; i < MAX_NR_VIRTQUEUE; i++) {
+        dev->vq[i] = (VubrVirtq) {
+            .call_fd = -1, .kick_fd = -1,
+            .size = 0,
+            .last_avail_index = 0, .last_used_index = 0,
+            .desc = 0, .avail = 0, .used = 0,
+            .enable = 0,
+        };
+    }
+
+    /* Init log */
+    dev->log_call_fd = -1;
+    dev->log_size = 0;
+    dev->log_table = 0;
+    dev->ready = 0;
+    dev->features = 0;
+
+    /* Get a UNIX socket. */
+    dev->sock = socket(AF_UNIX, SOCK_STREAM, 0);
+    if (dev->sock == -1) {
+        vubr_die("socket");
+    }
+
+    un.sun_family = AF_UNIX;
+    strcpy(un.sun_path, path);
+    len = sizeof(un.sun_family) + strlen(path);
+
+    if (!client) {
+        unlink(path);
+
+        if (bind(dev->sock, (struct sockaddr *) &un, len) == -1) {
+            vubr_die("bind");
+        }
+
+        if (listen(dev->sock, 1) == -1) {
+            vubr_die("listen");
+        }
+        cb = vubr_accept_cb;
+    } else {
+        if (connect(dev->sock, (struct sockaddr *)&un, len) == -1) {
+            vubr_die("connect");
+        }
+        cb = vubr_receive_cb;
+    }
+
+    dispatcher_init(&dev->dispatcher);
+    dispatcher_add(&dev->dispatcher, dev->sock, (void *)dev, cb);
+
+    DPRINT("Waiting for connections on UNIX socket %s ...\n", path);
+    return dev;
+}
+
+static void
+vubr_set_host(struct sockaddr_in *saddr, const char *host)
+{
+    if (isdigit(host[0])) {
+        if (!inet_aton(host, &saddr->sin_addr)) {
+            fprintf(stderr, "inet_aton() failed.\n");
+            exit(1);
+        }
+    } else {
+        struct hostent *he = gethostbyname(host);
+
+        if (!he) {
+            fprintf(stderr, "gethostbyname() failed.\n");
+            exit(1);
+        }
+        saddr->sin_addr = *(struct in_addr *)he->h_addr;
+    }
+}
+
+static void
+vubr_backend_udp_setup(VubrDev *dev,
+                       const char *local_host,
+                       const char *local_port,
+                       const char *remote_host,
+                       const char *remote_port)
+{
+    int sock;
+    const char *r;
+
+    int lport, rport;
+
+    lport = strtol(local_port, (char **)&r, 0);
+    if (r == local_port) {
+        fprintf(stderr, "lport parsing failed.\n");
+        exit(1);
+    }
+
+    rport = strtol(remote_port, (char **)&r, 0);
+    if (r == remote_port) {
+        fprintf(stderr, "rport parsing failed.\n");
+        exit(1);
+    }
+
+    struct sockaddr_in si_local = {
+        .sin_family = AF_INET,
+        .sin_port = htons(lport),
+    };
+
+    vubr_set_host(&si_local, local_host);
+
+    /* setup destination for sends */
+    dev->backend_udp_dest = (struct sockaddr_in) {
+        .sin_family = AF_INET,
+        .sin_port = htons(rport),
+    };
+    vubr_set_host(&dev->backend_udp_dest, remote_host);
+
+    sock = socket(AF_INET, SOCK_DGRAM, IPPROTO_UDP);
+    if (sock == -1) {
+        vubr_die("socket");
+    }
+
+    if (bind(sock, (struct sockaddr *)&si_local, sizeof(si_local)) == -1) {
+        vubr_die("bind");
+    }
+
+    dev->backend_udp_sock = sock;
+    dispatcher_add(&dev->dispatcher, sock, dev, vubr_backend_recv_cb);
+    DPRINT("Waiting for data from udp backend on %s:%d...\n",
+           local_host, lport);
+}
+
+static void
+vubr_run(VubrDev *dev)
+{
+    while (1) {
+        /* timeout 200ms */
+        dispatcher_wait(&dev->dispatcher, 200000);
+        /* Here one can try polling strategy. */
+    }
+}
+
+static int
+vubr_parse_host_port(const char **host, const char **port, const char *buf)
+{
+    char *p = strchr(buf, ':');
+
+    if (!p) {
+        return -1;
+    }
+    *p = '\0';
+    *host = strdup(buf);
+    *port = strdup(p + 1);
+    return 0;
+}
+
+#define DEFAULT_UD_SOCKET "/tmp/vubr.sock"
+#define DEFAULT_LHOST "127.0.0.1"
+#define DEFAULT_LPORT "4444"
+#define DEFAULT_RHOST "127.0.0.1"
+#define DEFAULT_RPORT "5555"
+
+static const char *ud_socket_path = DEFAULT_UD_SOCKET;
+static const char *lhost = DEFAULT_LHOST;
+static const char *lport = DEFAULT_LPORT;
+static const char *rhost = DEFAULT_RHOST;
+static const char *rport = DEFAULT_RPORT;
+
+int
+main(int argc, char *argv[])
+{
+    VubrDev *dev;
+    int opt;
+    bool client = false;
+
+    while ((opt = getopt(argc, argv, "l:r:u:c")) != -1) {
+
+        switch (opt) {
+        case 'l':
+            if (vubr_parse_host_port(&lhost, &lport, optarg) < 0) {
+                goto out;
+            }
+            break;
+        case 'r':
+            if (vubr_parse_host_port(&rhost, &rport, optarg) < 0) {
+                goto out;
+            }
+            break;
+        case 'u':
+            ud_socket_path = strdup(optarg);
+            break;
+        case 'c':
+            client = true;
+            break;
+        default:
+            goto out;
+        }
+    }
+
+    DPRINT("ud socket: %s (%s)\n", ud_socket_path,
+           client ? "client" : "server");
+    DPRINT("local:     %s:%s\n", lhost, lport);
+    DPRINT("remote:    %s:%s\n", rhost, rport);
+
+    dev = vubr_new(ud_socket_path, client);
+    if (!dev) {
+        return 1;
+    }
+
+    vubr_backend_udp_setup(dev, lhost, lport, rhost, rport);
+    vubr_run(dev);
+    return 0;
+
+out:
+    fprintf(stderr, "Usage: %s ", argv[0]);
+    fprintf(stderr, "[-u ud_socket_path] [-l lhost:lport] [-r rhost:rport]\n");
+    fprintf(stderr, "\t-u path to unix doman socket. default: %s\n",
+            DEFAULT_UD_SOCKET);
+    fprintf(stderr, "\t-l local host and port. default: %s:%s\n",
+            DEFAULT_LHOST, DEFAULT_LPORT);
+    fprintf(stderr, "\t-r remote host and port. default: %s:%s\n",
+            DEFAULT_RHOST, DEFAULT_RPORT);
+
+    return 1;
+}
diff --git a/tests/vhost-user-test.c.orig b/tests/vhost-user-test.c.orig
new file mode 100644
index 0000000000..b491e6fcb6
--- /dev/null
+++ b/tests/vhost-user-test.c.orig
@@ -0,0 +1,364 @@ 
+/*
+ * QTest testcase for the vhost-user
+ *
+ * Copyright (c) 2014 Virtual Open Systems Sarl.
+ *
+ * This work is licensed under the terms of the GNU GPL, version 2 or later.
+ * See the COPYING file in the top-level directory.
+ *
+ */
+
+#include <glib.h>
+
+#include "libqtest.h"
+#include "qemu/option.h"
+#include "sysemu/char.h"
+#include "sysemu/sysemu.h"
+
+#include <linux/vhost.h>
+#include <sys/mman.h>
+#include <sys/vfs.h>
+#include <qemu/sockets.h>
+
+/* GLIB version compatibility flags */
+#if !GLIB_CHECK_VERSION(2, 26, 0)
+#define G_TIME_SPAN_SECOND              (G_GINT64_CONSTANT(1000000))
+#endif
+
+#if GLIB_CHECK_VERSION(2, 28, 0)
+#define HAVE_MONOTONIC_TIME
+#endif
+
+#define QEMU_CMD_ACCEL  " -machine accel=tcg"
+#define QEMU_CMD_MEM    " -m 512 -object memory-backend-file,id=mem,size=512M,"\
+                        "mem-path=%s,share=on -numa node,memdev=mem"
+#define QEMU_CMD_CHR    " -chardev socket,id=chr0,path=%s"
+#define QEMU_CMD_NETDEV " -netdev vhost-user,id=net0,chardev=chr0,vhostforce"
+#define QEMU_CMD_NET    " -device virtio-net-pci,netdev=net0 "
+#define QEMU_CMD_ROM    " -option-rom ../pc-bios/pxe-virtio.rom"
+
+#define QEMU_CMD        QEMU_CMD_ACCEL QEMU_CMD_MEM QEMU_CMD_CHR \
+                        QEMU_CMD_NETDEV QEMU_CMD_NET QEMU_CMD_ROM
+
+#define HUGETLBFS_MAGIC       0x958458f6
+
+/*********** FROM hw/virtio/vhost-user.c *************************************/
+
+#define VHOST_MEMORY_MAX_NREGIONS    8
+
+#define VHOST_USER_F_PROTOCOL_FEATURES 30
+
+typedef enum VhostUserRequest {
+    VHOST_USER_NONE = 0,
+    VHOST_USER_GET_FEATURES = 1,
+    VHOST_USER_SET_FEATURES = 2,
+    VHOST_USER_SET_OWNER = 3,
+    VHOST_USER_RESET_DEVICE = 4,
+    VHOST_USER_SET_MEM_TABLE = 5,
+    VHOST_USER_SET_LOG_BASE = 6,
+    VHOST_USER_SET_LOG_FD = 7,
+    VHOST_USER_SET_VRING_NUM = 8,
+    VHOST_USER_SET_VRING_ADDR = 9,
+    VHOST_USER_SET_VRING_BASE = 10,
+    VHOST_USER_GET_VRING_BASE = 11,
+    VHOST_USER_SET_VRING_KICK = 12,
+    VHOST_USER_SET_VRING_CALL = 13,
+    VHOST_USER_SET_VRING_ERR = 14,
+    VHOST_USER_GET_PROTOCOL_FEATURES = 15,
+    VHOST_USER_SET_PROTOCOL_FEATURES = 16,
+    VHOST_USER_MAX
+} VhostUserRequest;
+
+typedef struct VhostUserMemoryRegion {
+    uint64_t guest_phys_addr;
+    uint64_t memory_size;
+    uint64_t userspace_addr;
+    uint64_t mmap_offset;
+} VhostUserMemoryRegion;
+
+typedef struct VhostUserMemory {
+    uint32_t nregions;
+    uint32_t padding;
+    VhostUserMemoryRegion regions[VHOST_MEMORY_MAX_NREGIONS];
+} VhostUserMemory;
+
+typedef struct VhostUserMsg {
+    VhostUserRequest request;
+
+#define VHOST_USER_VERSION_MASK     (0x3)
+#define VHOST_USER_REPLY_MASK       (0x1<<2)
+    uint32_t flags;
+    uint32_t size; /* the following payload size */
+    union {
+        uint64_t u64;
+        struct vhost_vring_state state;
+        struct vhost_vring_addr addr;
+        VhostUserMemory memory;
+    };
+} QEMU_PACKED VhostUserMsg;
+
+static VhostUserMsg m __attribute__ ((unused));
+#define VHOST_USER_HDR_SIZE (sizeof(m.request) \
+                            + sizeof(m.flags) \
+                            + sizeof(m.size))
+
+#define VHOST_USER_PAYLOAD_SIZE (sizeof(m) - VHOST_USER_HDR_SIZE)
+
+/* The version of the protocol we support */
+#define VHOST_USER_VERSION    (0x1)
+/*****************************************************************************/
+
+int fds_num = 0, fds[VHOST_MEMORY_MAX_NREGIONS];
+static VhostUserMemory memory;
+static CompatGMutex data_mutex;
+static CompatGCond data_cond;
+
+#if !GLIB_CHECK_VERSION(2, 32, 0)
+static gboolean g_cond_wait_until(CompatGCond cond, CompatGMutex mutex,
+                                  gint64 end_time)
+{
+    gboolean ret = FALSE;
+    end_time -= g_get_monotonic_time();
+    GTimeVal time = { end_time / G_TIME_SPAN_SECOND,
+                      end_time % G_TIME_SPAN_SECOND };
+    ret = g_cond_timed_wait(cond, mutex, &time);
+    return ret;
+}
+#endif
+
+static void wait_for_fds(void)
+{
+    gint64 end_time;
+
+    g_mutex_lock(&data_mutex);
+    end_time = g_get_monotonic_time() + 5 * G_TIME_SPAN_SECOND;
+    while (!fds_num) {
+        if (!g_cond_wait_until(&data_cond, &data_mutex, end_time)) {
+            /* timeout has passed */
+            g_assert(fds_num);
+            break;
+        }
+    }
+
+    /* check for sanity */
+    g_assert_cmpint(fds_num, >, 0);
+    g_assert_cmpint(fds_num, ==, memory.nregions);
+
+    g_mutex_unlock(&data_mutex);
+}
+
+static void read_guest_mem(void)
+{
+    uint32_t *guest_mem;
+    int i, j;
+    size_t size;
+
+    wait_for_fds();
+
+    /* iterate all regions */
+    for (i = 0; i < fds_num; i++) {
+
+        /* We'll check only the region statring at 0x0*/
+        if (memory.regions[i].guest_phys_addr != 0x0) {
+            continue;
+        }
+
+        g_assert_cmpint(memory.regions[i].memory_size, >, 1024);
+
+        size =  memory.regions[i].memory_size + memory.regions[i].mmap_offset;
+
+        guest_mem = mmap(0, size, PROT_READ | PROT_WRITE,
+                         MAP_SHARED, fds[i], 0);
+
+        g_assert(guest_mem != MAP_FAILED);
+        guest_mem += (memory.regions[i].mmap_offset / sizeof(*guest_mem));
+
+        for (j = 0; j < 256; j++) {
+            uint32_t a = readl(memory.regions[i].guest_phys_addr + j*4);
+            uint32_t b = guest_mem[j];
+
+            g_assert_cmpint(a, ==, b);
+        }
+
+        munmap(guest_mem, memory.regions[i].memory_size);
+    }
+
+    g_mutex_unlock(&data_mutex);
+}
+
+static void *thread_function(void *data)
+{
+    GMainLoop *loop;
+    loop = g_main_loop_new(NULL, FALSE);
+    g_main_loop_run(loop);
+    return NULL;
+}
+
+static int chr_can_read(void *opaque)
+{
+    return VHOST_USER_HDR_SIZE;
+}
+
+static void chr_read(void *opaque, const uint8_t *buf, int size)
+{
+    CharDriverState *chr = opaque;
+    VhostUserMsg msg;
+    uint8_t *p = (uint8_t *) &msg;
+    int fd;
+
+    if (size != VHOST_USER_HDR_SIZE) {
+        g_test_message("Wrong message size received %d\n", size);
+        return;
+    }
+
+    g_mutex_lock(&data_mutex);
+    memcpy(p, buf, VHOST_USER_HDR_SIZE);
+
+    if (msg.size) {
+        p += VHOST_USER_HDR_SIZE;
+        qemu_chr_fe_read_all(chr, p, msg.size);
+    }
+
+    switch (msg.request) {
+    case VHOST_USER_GET_FEATURES:
+        /* send back features to qemu */
+        msg.flags |= VHOST_USER_REPLY_MASK;
+        msg.size = sizeof(m.u64);
+        msg.u64 = 0x1ULL << VHOST_USER_F_PROTOCOL_FEATURES;
+        p = (uint8_t *) &msg;
+        qemu_chr_fe_write_all(chr, p, VHOST_USER_HDR_SIZE + msg.size);
+        break;
+
+    case VHOST_USER_SET_FEATURES:
+	g_assert_cmpint(msg.u64 & (0x1ULL << VHOST_USER_F_PROTOCOL_FEATURES),
+			!=, 0ULL);
+        break;
+
+    case VHOST_USER_GET_PROTOCOL_FEATURES:
+        /* send back features to qemu */
+        msg.flags |= VHOST_USER_REPLY_MASK;
+        msg.size = sizeof(m.u64);
+        msg.u64 = 0;
+        p = (uint8_t *) &msg;
+        qemu_chr_fe_write_all(chr, p, VHOST_USER_HDR_SIZE + msg.size);
+        break;
+
+    case VHOST_USER_GET_VRING_BASE:
+        /* send back vring base to qemu */
+        msg.flags |= VHOST_USER_REPLY_MASK;
+        msg.size = sizeof(m.state);
+        msg.state.num = 0;
+        p = (uint8_t *) &msg;
+        qemu_chr_fe_write_all(chr, p, VHOST_USER_HDR_SIZE + msg.size);
+        break;
+
+    case VHOST_USER_SET_MEM_TABLE:
+        /* received the mem table */
+        memcpy(&memory, &msg.memory, sizeof(msg.memory));
+        fds_num = qemu_chr_fe_get_msgfds(chr, fds, sizeof(fds) / sizeof(int));
+
+        /* signal the test that it can continue */
+        g_cond_signal(&data_cond);
+        break;
+
+    case VHOST_USER_SET_VRING_KICK:
+    case VHOST_USER_SET_VRING_CALL:
+        /* consume the fd */
+        qemu_chr_fe_get_msgfds(chr, &fd, 1);
+        /*
+         * This is a non-blocking eventfd.
+         * The receive function forces it to be blocking,
+         * so revert it back to non-blocking.
+         */
+        qemu_set_nonblock(fd);
+        break;
+    default:
+        break;
+    }
+    g_mutex_unlock(&data_mutex);
+}
+
+static const char *init_hugepagefs(void)
+{
+    const char *path;
+    struct statfs fs;
+    int ret;
+
+    path = getenv("QTEST_HUGETLBFS_PATH");
+    if (!path) {
+        path = "/hugetlbfs";
+    }
+
+    if (access(path, R_OK | W_OK | X_OK)) {
+        g_test_message("access on path (%s): %s\n", path, strerror(errno));
+        return NULL;
+    }
+
+    do {
+        ret = statfs(path, &fs);
+    } while (ret != 0 && errno == EINTR);
+
+    if (ret != 0) {
+        g_test_message("statfs on path (%s): %s\n", path, strerror(errno));
+        return NULL;
+    }
+
+    if (fs.f_type != HUGETLBFS_MAGIC) {
+        g_test_message("Warning: path not on HugeTLBFS: %s\n", path);
+        return NULL;
+    }
+
+    return path;
+}
+
+int main(int argc, char **argv)
+{
+    QTestState *s = NULL;
+    CharDriverState *chr = NULL;
+    const char *hugefs = 0;
+    char *socket_path = 0;
+    char *qemu_cmd = 0;
+    char *chr_path = 0;
+    int ret;
+
+    g_test_init(&argc, &argv, NULL);
+
+    module_call_init(MODULE_INIT_QOM);
+
+    hugefs = init_hugepagefs();
+    if (!hugefs) {
+        return 0;
+    }
+
+    socket_path = g_strdup_printf("/tmp/vhost-%d.sock", getpid());
+
+    /* create char dev and add read handlers */
+    qemu_add_opts(&qemu_chardev_opts);
+    chr_path = g_strdup_printf("unix:%s,server,nowait", socket_path);
+    chr = qemu_chr_new("chr0", chr_path, NULL);
+    g_free(chr_path);
+    qemu_chr_add_handlers(chr, chr_can_read, chr_read, NULL, chr);
+
+    /* run the main loop thread so the chardev may operate */
+    g_mutex_init(&data_mutex);
+    g_cond_init(&data_cond);
+    g_thread_new(NULL, thread_function, NULL);
+
+    qemu_cmd = g_strdup_printf(QEMU_CMD, hugefs, socket_path);
+    s = qtest_start(qemu_cmd);
+    g_free(qemu_cmd);
+
+    qtest_add_func("/vhost-user/read-guest-mem", read_guest_mem);
+
+    ret = g_test_run();
+
+    if (s) {
+        qtest_quit(s);
+    }
+
+    /* cleanup */
+    unlink(socket_path);
+    g_free(socket_path);
+
+    return ret;
+}