<?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

    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.
  -->
<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="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="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"
     />

  <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="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"
     />

  <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>
