<?xml version="1.0"?>
<!--
    Licensed to the Apache Software Foundation (ASF) under one or more
    contributor license agreements.  See the NOTICE file distributed with
    this work for additional information regarding copyright ownership.
    The ASF licenses this file to You 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

    https://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.
  -->
<antlib>
  <taskdef
     name="un7z"
     classname="org.apache.ant.compress.taskdefs.Un7z"
     />
  <taskdef
     name="unar"
     classname="org.apache.ant.compress.taskdefs.Unar"
     />
  <taskdef
     name="unarj"
     classname="org.apache.ant.compress.taskdefs.Unarj"
     />
  <taskdef
     name="unbrotli"
     classname="org.apache.ant.compress.taskdefs.UnBrotli"
     />
  <taskdef
     name="uncpio"
     classname="org.apache.ant.compress.taskdefs.Uncpio"
     />
  <taskdef
     name="undeflate"
     classname="org.apache.ant.compress.taskdefs.Undeflate"
     />
  <taskdef
     name="undeflate64"
     classname="org.apache.ant.compress.taskdefs.Undeflate64"
     />
  <taskdef
     name="undump"
     classname="org.apache.ant.compress.taskdefs.Undump"
     />
  <taskdef
     name="untar"
     classname="org.apache.ant.compress.taskdefs.Untar"
     />
  <taskdef
     name="unzip"
     classname="org.apache.ant.compress.taskdefs.Unzip"
     />
  <taskdef
     name="ar"
     classname="org.apache.ant.compress.taskdefs.Ar"
     />
  <taskdef
     name="cpio"
     classname="org.apache.ant.compress.taskdefs.Cpio"
     />
  <taskdef
     name="tar"
     classname="org.apache.ant.compress.taskdefs.Tar"
     />
  <taskdef
     name="zip"
     classname="org.apache.ant.compress.taskdefs.Zip"
     />
  <taskdef
     name="bunzip2"
     classname="org.apache.ant.compress.taskdefs.BUnzip2"
     />
  <taskdef
     name="gunzip"
     classname="org.apache.ant.compress.taskdefs.GUnzip"
     />
  <taskdef
     name="unlz4"
     classname="org.apache.ant.compress.taskdefs.UnLZ4"
     />
  <taskdef
     name="unlzma"
     classname="org.apache.ant.compress.taskdefs.UnLZMA"
     />
  <taskdef
     name="unpack200"
     classname="org.apache.ant.compress.taskdefs.UnPack200"
     />
  <taskdef
     name="unsnappy"
     classname="org.apache.ant.compress.taskdefs.UnSnappy"
     />
  <taskdef
     name="unxz"
     classname="org.apache.ant.compress.taskdefs.UnXZ"
     />
  <taskdef
     name="unz"
     classname="org.apache.ant.compress.taskdefs.UnZ"
     />
  <taskdef
     name="unzstd"
     classname="org.apache.ant.compress.taskdefs.UnZstd"
     />
  <taskdef
     name="bzip2"
     classname="org.apache.ant.compress.taskdefs.BZip2"
     />
  <taskdef
     name="deflate"
     classname="org.apache.ant.compress.taskdefs.Deflate"
     />
  <taskdef
     name="gzip"
     classname="org.apache.ant.compress.taskdefs.GZip"
     />
  <taskdef
     name="pack200"
     classname="org.apache.ant.compress.taskdefs.Pack200"
     />
  <taskdef
     name="pack200normalize"
     classname="org.apache.ant.compress.taskdefs.Pack200Normalize"
     />
  <taskdef
     name="sevenz"
     classname="org.apache.ant.compress.taskdefs.SevenZ"
     />
  <taskdef
     name="snappy"
     classname="org.apache.ant.compress.taskdefs.Snappy"
     />
  <taskdef
     name="xz"
     classname="org.apache.ant.compress.taskdefs.XZ"
     />
  <taskdef
     name="lz4"
     classname="org.apache.ant.compress.taskdefs.LZ4"
     />
  <taskdef
     name="lzma"
     classname="org.apache.ant.compress.taskdefs.LZMA"
     />
  <taskdef
     name="zstd"
     classname="org.apache.ant.compress.taskdefs.Zstd"
     />

  <typedef
     name="arentry"
     classname="org.apache.ant.compress.resources.ArResource"
     />
  <typedef
     name="arjentry"
     classname="org.apache.ant.compress.resources.ArjResource"
     />
  <typedef
     name="cpioentry"
     classname="org.apache.ant.compress.resources.CpioResource"
     />
  <typedef
     name="dumpentry"
     classname="org.apache.ant.compress.resources.DumpResource"
     />
  <typedef
     name="sevenzentry"
     classname="org.apache.ant.compress.resources.SevenZResource"
     />
  <typedef
     name="tarentry"
     classname="org.apache.ant.compress.resources.TarResource"
     />
  <typedef
     name="zipentry"
     classname="org.apache.ant.compress.resources.ZipResource"
     />

  <typedef
     name="arfileset"
     classname="org.apache.ant.compress.resources.ArFileSet"
     />
  <typedef
     name="arjfileset"
     classname="org.apache.ant.compress.resources.ArjFileSet"
     />
  <typedef
     name="cpiofileset"
     classname="org.apache.ant.compress.resources.CpioFileSet"
     />
  <typedef
     name="dumpfileset"
     classname="org.apache.ant.compress.resources.DumpFileSet"
     />
  <typedef
     name="sevenzfileset"
     classname="org.apache.ant.compress.resources.SevenZFileSet"
     />
  <typedef
     name="tarfileset"
     classname="org.apache.ant.compress.resources.TarFileSet"
     />
  <typedef
     name="zipfileset"
     classname="org.apache.ant.compress.resources.ZipFileSet"
     />
  <typedef
     name="archives"
     classname="org.apache.ant.compress.resources.Archives"
     />
  <typedef
     name="brotliresource"
     classname="org.apache.ant.compress.resources.BrotliResource"
     />
  <typedef
     name="bzip2resource"
     classname="org.apache.ant.compress.resources.BZip2Resource"
     />
  <typedef
     name="deflateresource"
     classname="org.apache.ant.compress.resources.DeflateResource"
     />
  <typedef
     name="deflate64resource"
     classname="org.apache.ant.compress.resources.Deflate64Resource"
     />
  <typedef
     name="gzipresource"
     classname="org.apache.ant.compress.resources.GZipResource"
     />
  <typedef
     name="lz4resource"
     classname="org.apache.ant.compress.resources.LZ4Resource"
     />
  <typedef
     name="lzmaresource"
     classname="org.apache.ant.compress.resources.LZMAResource"
     />
  <typedef
     name="pack200resource"
     classname="org.apache.ant.compress.resources.Pack200Resource"
     />
  <typedef
     name="snappyresource"
     classname="org.apache.ant.compress.resources.SnappyResource"
     />
  <typedef
     name="xzresource"
     classname="org.apache.ant.compress.resources.XZResource"
     />
  <typedef
     name="zresource"
     classname="org.apache.ant.compress.resources.ZResource"
     />
  <typedef
     name="zstdresource"
     classname="org.apache.ant.compress.resources.ZstdResource"
     />

  <componentdef
     name="hasusername"
     classname="org.apache.ant.compress.conditions.HasUserName"
     />
  <componentdef
     name="hasgroupname"
     classname="org.apache.ant.compress.conditions.HasGroupName"
     />
  <componentdef
     name="hasuserid"
     classname="org.apache.ant.compress.conditions.HasUserId"
     />
  <componentdef
     name="hasgroupid"
     classname="org.apache.ant.compress.conditions.HasGroupId"
     />
  <componentdef
     name="hasmode"
     classname="org.apache.ant.compress.conditions.HasMode"
     />

  <typedef
     name="devzero"
     classname="org.apache.ant.compress.resources.DevZeroResource"
     />
</antlib>
