<?xml version='1.0' encoding='utf-8' standalone='yes'?>
<assembly
    xmlns="urn:schemas-microsoft-com:asm.v3"
    xmlns:xsd="http://www.w3.org/2001/XMLSchema"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    manifestVersion="1.0"
    >
  <assemblyIdentity
      language="neutral"
      name="Microsoft-Windows-AppX-Deployment-Server"
      processorArchitecture="*"
      version="0.0.0.0"
      />
  <migration settingsVersion="3"
    replacementSettingsVersionRange="1-3">
    <!-- rules specifying what files and registry entries to collect -->
    <migXml xmlns="">
      <plugin
          classId="{AE27C1A6-25F2-45FD-9A28-081B81F29E0A}"
          file="Microsoft-Windows-AppX-Deployment-Server\AppxUpgradeMigrationPlugin.dll"
          />
      <rules context="System">
        <include>
          <objectSet>
            <!-- single instance store -->
            <pattern type="File">%ProgramFiles%\WindowsApps\*[*]</pattern>
            <!-- backup manifests -->
            <pattern type="File">%ProgramData%\Microsoft\Windows\AppRepository [*.xml]</pattern>
            <!-- OEM DISM-installed apps -->
            <pattern type="File">%windir%\InfusedApps\*[*]</pattern>
            <!-- migrate group policies for app deployment -->
            <pattern type="Registry">HKLM\Software\Policies\Microsoft\Windows\Appx [*]</pattern>
            <!-- migrate sideload settings for app deployment -->
            <pattern type="Registry">HKLM\Software\Microsoft\Windows\CurrentVersion\AppModelUnlock [*]</pattern>
            <!-- migrate known package volumes -->
            <pattern type="Registry">HKLM\Software\Microsoft\Windows\CurrentVersion\Appx\PackageVolumes\* [*]</pattern>
            <!-- migrate purge list -->
            <pattern type="Registry">HKLM\Software\Microsoft\Windows\CurrentVersion\Appx\PurgeList\* [*]</pattern>
            <pattern type="Registry">HKCU\Software\Microsoft\Windows\CurrentVersion\Appx\PurgeList\* [*]</pattern>
            <!-- migrate downlevel staterepository machine database -->
            <pattern type="File">%ProgramData%\Microsoft\Windows\AppRepository [StateRepository-Machine*]</pattern>
          </objectSet>
        </include>
        <exclude>
          <objectSet>
            <!-- deleted packages -->
            <pattern type="File">%ProgramFiles%\WindowsApps\Deleted\*[*]</pattern>
            <!-- backup manifests for inbox packages -->
            <pattern type="File">%ProgramData%\Microsoft\Windows\AppRepository [winstore_*_cw5n1h2txyewy.xml]</pattern>
            <pattern type="File">%ProgramData%\Microsoft\Windows\AppRepository [windows.immersivecontrolpanel_*_cw5n1h2txyewy.xml]</pattern>
            <pattern type="File">%ProgramData%\Microsoft\Windows\AppRepository [CheckPoint.VPN_*_cw5n1h2txyewy.xml]</pattern>
            <pattern type="File">%ProgramData%\Microsoft\Windows\AppRepository [f5.vpn.client_*_cw5n1h2txyewy.xml]</pattern>
            <pattern type="File">%ProgramData%\Microsoft\Windows\AppRepository [FileManager_*_cw5n1h2txyewy.xml]</pattern>
            <pattern type="File">%ProgramData%\Microsoft\Windows\AppRepository [JuniperNetworks.JunosPulseVpn_*_cw5n1h2txyewy.xml]</pattern>
            <pattern type="File">%ProgramData%\Microsoft\Windows\AppRepository [Microsoft.MoCamera_*_cw5n1h2txyewy.xml]</pattern>
            <pattern type="File">%ProgramData%\Microsoft\Windows\AppRepository [SonicWALL.MobileConnect_*_cw5n1h2txyewy.xml]</pattern>
            <!-- downlevel staterepository should not be migrated -->
            <pattern type="File">%ProgramData%\Microsoft\Windows\AppRepository\Downlevel\*[*]</pattern>
            <!-- System Volume Flags value should not be migrated. The legacy value is inaccurate. Always write fresh value in image -->
            <pattern type="Registry">HKLM\Software\Microsoft\Windows\CurrentVersion\Appx\PackageVolumes\1 [flags]</pattern>
          </objectSet>
        </exclude>
        <!-- migrate old state repository machine database for package policy preservation across os upgrade -->
        <locationModify script="MigXmlHelper.RelativeMove(&apos;%ProgramData%\Microsoft\Windows\AppRepository&apos;,&apos;%ProgramData%\Microsoft\Windows\AppRepository\Downlevel&apos;)">
          <objectSet>
            <pattern type="File">%ProgramData%\Microsoft\Windows\AppRepository [StateRepository-Machine*]</pattern>
          </objectSet>
        </locationModify>
        <merge script="MigXmlHelper.DestinationPriority()">
          <objectSet>
            <!-- backup manifests -->
            <pattern type="File">%ProgramData%\Microsoft\Windows\AppRepository [*.xml]</pattern>
          </objectSet>
        </merge>
      </rules>
    </migXml>
  </migration>
</assembly>
