<!--
 Copyright 2020 Google LLC

 Licensed under the Apache License, Version 2.0 (the "License");
 you may not use this file except in compliance with the License.
 You may obtain a copy of the License at

      http://www.apache.org/licenses/LICENSE-2.0

 Unless required by applicable law or agreed to in writing, software
 distributed under the License is distributed on an "AS IS" BASIS,
 WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 See the License for the specific language governing permissions and
 limitations under the License.
-->

<manifest>

  <include name="flaky_repos.xml" />

  <remote  name="cos"
           fetch="https://cos.googlesource.com"
           review="https://cos-review.googlesource.com"  />
  <default remote="cos" revision="refs/heads/master" sync-j="8" />
  <notice>
Your sources have been sync'd successfully.
  </notice>

  <!-- mirrored cros_sdk dependencies -->
  <project path="chromite/infra/proto"
           name="mirrors/cros/chromiumos/infra/proto"
           revision="8a4833a0bfedd1acdb9ebda9b9045970b820d0e6" />
  <project path="chromite/third_party/pyelftools"
           name="mirrors/cros/chromiumos/third_party/pyelftools"
           revision="6fec9f599bef566fe8f6f6ca6c2102508b664792" />
  <project path="src/platform/crostestutils"
           name="mirrors/cros/chromiumos/platform/crostestutils"
           revision="0515327957ce2c1a4d816ed0a68bbdcdddb3d026" />
  <project path="src/third_party/autotest/files"
           name="mirrors/cros/chromiumos/third_party/autotest"
           revision="6311d895c7f41411cb43618793202a42555e60d5" />
  <project path="src/platform/dev"
           name="mirrors/cros/chromiumos/platform/dev-util"
           revision="c20010434ed180b67b404420979023fe3eb0047b" />
  <project path="src/third_party/toolchain-utils"
           name="mirrors/cros/chromiumos/third_party/toolchain-utils"
           revision="a7a19342ac9fe044cbf45a3aa618defca9db413f" />
  <project path="src/third_party/portage_tool"
           name="mirrors/cros/chromiumos/third_party/portage_tool"
           revision="ceeb0e9ff251cf1bdb92358371ec9e5d6d9f751c" />
  <project path="src/chromium/depot_tools"
           name="mirrors/cros/chromium/tools/depot_tools"
           revision="09f358bae36c316e3c4c39cd344de964bd0fed7c" />
  <project path="src/third_party/coreboot"
           name="mirrors/cros/chromiumos/third_party/coreboot"
           revision="925a3a4f5836e2f6f696975cf52c0ff6c86c9309" />
  <project path="src/third_party/modp_b64"
           name="mirrors/cros/aosp/platform/external/modp_b64"
           revision="269b6fb8401617b85e2dff7ae8a7b0f97613e2cd" />
  <project path="src/platform2"
           name="mirrors/cros/chromiumos/platform2"
           revision="65a5b18bfdcd883b6399b922e57a8f0fa9eb88ec" />
  <project path="infra_virtualenv"
           name="mirrors/cros/chromiumos/infra_virtualenv"
           revision="cab8a95f2961561eb56a95d6f2bfc685686db75a" />
  <project path="src/third_party/u-boot/files"
           name="mirrors/cros/chromiumos/third_party/u-boot"
           revision="39ce6d27ad29fd324793a8d0c7db8ae712cc027c" />
  <project path="src/third_party/flashmap"
           name="mirrors/cros/chromiumos/third_party/flashmap"
           revision="9c71c8331ad52a11d29496ffb10cbdb1a51e2ccb" />

  <!-- COS sources -->
  <project path="src/overlays"
           name="cos/overlays/board-overlays" />
  <project path="src/third_party/portage-stable"
           name="third_party/overlays/portage-stable" />
  <project path="src/third_party/eclass-overlay"
           name="third_party/overlays/eclass-overlay" />
  <project path="src/third_party/chromiumos-overlay"
           sync-c="true"
           name="third_party/overlays/chromiumos-overlay" />
  <project path="src/scripts"
           name="third_party/platform/crosutils"
           revision="refs/heads/main" />
  <project path="chromite"
           name="third_party/chromite"
           revision="refs/heads/main" />
  <project path="src/platform/vboot_reference"
           name="third_party/platform/vboot_reference"
           revision="refs/heads/main" />
  <project path="src/compliance"
           name="cos/compliance"
           revision="refs/heads/main" />
  <project path="src/repohooks"
           name="cos/repohooks" />
  <project path="src/platform/cobble"
           name="cos/cobble" />
  <project path="manifest" name="cos/manifest" >
      <copyfile src="LICENSE" dest="LICENSE" />
  </project>
  <project path="src/third_party/policymanager"
           name="cos/policymanager"
           revision="refs/heads/main" />
  <project path="src/third_party/toolbox"
           name="third_party/toolbox"
           revision="refs/heads/main" />
  <project path="src/third_party/kernel/v5.4"
           name="third_party/kernel"
           revision="refs/heads/cos-5.4" />
  <project path="src/third_party/kernel/v5.10"
           name="third_party/kernel"
           revision="refs/heads/cos-5.10" />
  <project path="src/third_party/kernel/v5.15"
           name="third_party/kernel"
           revision="refs/heads/cos-5.15" />

  <repo-hooks enabled-list="pre-upload"
           in-project="cos/repohooks" />

</manifest>



