PNG  IHDR  8] PLTE S =tRNS   PNG  IHDR  8] PLTE S =tRNS   REDROOM
PHP 7.4.33
Preview: list.tcc Size: 17.63 KB
//opt/rh/gcc-toolset-14/root/usr/include/c++/14/bits/list.tcc

// List implementation (out of line) -*- C++ -*-

// Copyright (C) 2001-2024 Free Software Foundation, Inc.
//
// This file is part of the GNU ISO C++ Library.  This library is free
// software; you can redistribute it and/or modify it under the
// terms of the GNU General Public License as published by the
// Free Software Foundation; either version 3, or (at your option)
// any later version.

// This library is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
// GNU General Public License for more details.

// Under Section 7 of GPL version 3, you are granted additional
// permissions described in the GCC Runtime Library Exception, version
// 3.1, as published by the Free Software Foundation.

// You should have received a copy of the GNU General Public License and
// a copy of the GCC Runtime Library Exception along with this program;
// see the files COPYING3 and COPYING.RUNTIME respectively.  If not, see
// <http://www.gnu.org/licenses/>.

/*
 *
 * Copyright (c) 1994
 * Hewlett-Packard Company
 *
 * Permission to use, copy, modify, distribute and sell this software
 * and its documentation for any purpose is hereby granted without fee,
 * provided that the above copyright notice appear in all copies and
 * that both that copyright notice and this permission notice appear
 * in supporting documentation.  Hewlett-Packard Company makes no
 * representations about the suitability of this software for any
 * purpose.  It is provided "as is" without express or implied warranty.
 *
 *
 * Copyright (c) 1996,1997
 * Silicon Graphics Computer Systems, Inc.
 *
 * Permission to use, copy, modify, distribute and sell this software
 * and its documentation for any purpose is hereby granted without fee,
 * provided that the above copyright notice appear in all copies and
 * that both that copyright notice and this permission notice appear
 * in supporting documentation.  Silicon Graphics makes no
 * representations about the suitability of this software for any
 * purpose.  It is provided "as is" without express or implied warranty.
 */

/** @file bits/list.tcc
 *  This is an internal header file, included by other library headers.
 *  Do not attempt to use it directly. @headername{list}
 */

#ifndef _LIST_TCC
#define _LIST_TCC 1

namespace std _GLIBCXX_VISIBILITY(default)
{
_GLIBCXX_BEGIN_NAMESPACE_VERSION
_GLIBCXX_BEGIN_NAMESPACE_CONTAINER

  template<typename _Tp, typename _Alloc>
    void
    _List_base<_Tp, _Alloc>::
    _M_clear() _GLIBCXX_NOEXCEPT
    {
      typedef _List_node<_Tp>  _Node;
      __detail::_List_node_base* __cur = _M_impl._M_node._M_next;
      while (__cur != &_M_impl._M_node)
	{
	  _Node* __tmp = static_cast<_Node*>(__cur);
	  __cur = __tmp->_M_next;
	  _Tp* __val = __tmp->_M_valptr();
#if __cplusplus >= 201103L
	  _Node_alloc_traits::destroy(_M_get_Node_allocator(), __val);
#else
	  _Tp_alloc_type(_M_get_Node_allocator()).destroy(__val);
#endif
	  _M_put_node(__tmp);
	}
    }

#if __cplusplus >= 201103L
  template<typename _Tp, typename _Alloc>
    template<typename... _Args>
      typename list<_Tp, _Alloc>::iterator
      list<_Tp, _Alloc>::
      emplace(const_iterator __position, _Args&&... __args)
      {
	_Node* __tmp = _M_create_node(std::forward<_Args>(__args)...);
	__tmp->_M_hook(__position._M_const_cast()._M_node);
	this->_M_inc_size(1);
	return iterator(__tmp);
      }
#endif

  template<typename _Tp, typename _Alloc>
    typename list<_Tp, _Alloc>::iterator
    list<_Tp, _Alloc>::
#if __cplusplus >= 201103L
    insert(const_iterator __position, const value_type& __x)
#else
    insert(iterator __position, const value_type& __x)
#endif
    {
      _Node* __tmp = _M_create_node(__x);
      __tmp->_M_hook(__position._M_const_cast()._M_node);
      this->_M_inc_size(1);
      return iterator(__tmp);
    }

#if __cplusplus >= 201103L
  template<typename _Tp, typename _Alloc>
    typename list<_Tp, _Alloc>::iterator
    list<_Tp, _Alloc>::
    insert(const_iterator __position, size_type __n, const value_type& __x)
    {
      if (__n)
	{
	  list __tmp(__n, __x, get_allocator());
	  iterator __it = __tmp.begin();
	  splice(__position, __tmp);
	  return __it;
	}
      return __position._M_const_cast();
    }

  template<typename _Tp, typename _Alloc>
    template<typename _InputIterator, typename>
      typename list<_Tp, _Alloc>::iterator
      list<_Tp, _Alloc>::
      insert(const_iterator __position, _InputIterator __first,
	     _InputIterator __last)
      {
	list __tmp(__first, __last, get_allocator());
	if (!__tmp.empty())
	  {
	    iterator __it = __tmp.begin();
	    splice(__position, __tmp);
	    return __it;
	  }
	return __position._M_const_cast();
      }
#endif

  template<typename _Tp, typename _Alloc>
    typename list<_Tp, _Alloc>::iterator
    list<_Tp, _Alloc>::
#if __cplusplus >= 201103L
    erase(const_iterator __position) noexcept
#else
    erase(iterator __position)
#endif
    {
      iterator __ret = iterator(__position._M_node->_M_next);
      _M_erase(__position._M_const_cast());
      return __ret;
    }

  // Return a const_iterator indicating the position to start inserting or
  // erasing elements (depending whether the list is growing or shrinking),
  // and set __new_size to the number of new elements that must be appended.
  // Equivalent to the following, but performed optimally:
  // if (__new_size < size()) {
  //   __new_size = 0;
  //   return std::next(begin(), __new_size);
  // } else {
  //   __newsize -= size();
  //   return end();
  // }
  template<typename _Tp, typename _Alloc>
    typename list<_Tp, _Alloc>::const_iterator
    list<_Tp, _Alloc>::
    _M_resize_pos(size_type& __new_size) const
    {
      const_iterator __i;
#if _GLIBCXX_USE_CXX11_ABI
      const size_type __len = size();
      if (__new_size < __len)
	{
	  if (__new_size <= __len / 2)
	    {
	      __i = begin();
	      std::advance(__i, __new_size);
	    }
	  else
	    {
	      __i = end();
	      ptrdiff_t __num_erase = __len - __new_size;
	      std::advance(__i, -__num_erase);
	    }
	  __new_size = 0;
	  return __i;
	}
      else
	__i = end();
#else
      size_type __len = 0;
      for (__i = begin(); __i != end() && __len < __new_size; ++__i, ++__len)
        ;
#endif
      __new_size -= __len;
      return __i;
    }

#if __cplusplus >= 201103L
  template<typename _Tp, typename _Alloc>
    void
    list<_Tp, _Alloc>::
    _M_default_append(size_type __n)
    {
      size_type __i = 0;
      __try
	{
	  for (; __i < __n; ++__i)
	    emplace_back();
	}
      __catch(...)
	{
	  for (; __i; --__i)
	    pop_back();
	  __throw_exception_again;
	}
    }

  template<typename _Tp, typename _Alloc>
    void
    list<_Tp, _Alloc>::
    resize(size_type __new_size)
    {
      const_iterator __i = _M_resize_pos(__new_size);
      if (__new_size)
	_M_default_append(__new_size);
      else
        erase(__i, end());
    }

  template<typename _Tp, typename _Alloc>
    void
    list<_Tp, _Alloc>::
    resize(size_type __new_size, const value_type& __x)
    {
      const_iterator __i = _M_resize_pos(__new_size);
      if (__new_size)
        insert(end(), __new_size, __x);
      else
        erase(__i, end());
    }
#else
  template<typename _Tp, typename _Alloc>
    void
    list<_Tp, _Alloc>::
    resize(size_type __new_size, value_type __x)
    {
      const_iterator __i = _M_resize_pos(__new_size);
      if (__new_size)
        insert(end(), __new_size, __x);
      else
        erase(__i._M_const_cast(), end());
    }
#endif

  template<typename _Tp, typename _Alloc>
    list<_Tp, _Alloc>&
    list<_Tp, _Alloc>::
    operator=(const list& __x)
    {
      if (this != std::__addressof(__x))
	{
#if __cplusplus >= 201103L
	  if (_Node_alloc_traits::_S_propagate_on_copy_assign())
	    {
              auto& __this_alloc = this->_M_get_Node_allocator();
              auto& __that_alloc = __x._M_get_Node_allocator();
              if (!_Node_alloc_traits::_S_always_equal()
	          && __this_alloc != __that_alloc)
	        {
		  // replacement allocator cannot free existing storage
		  clear();
		}
	      std::__alloc_on_copy(__this_alloc, __that_alloc);
            }
#endif
	  _M_assign_dispatch(__x.begin(), __x.end(), __false_type());
	}
      return *this;
    }

  template<typename _Tp, typename _Alloc>
    void
    list<_Tp, _Alloc>::
    _M_fill_assign(size_type __n, const value_type& __val)
    {
      iterator __i = begin();
      for (; __i != end() && __n > 0; ++__i, --__n)
        *__i = __val;
      if (__n > 0)
        insert(end(), __n, __val);
      else
        erase(__i, end());
    }

  template<typename _Tp, typename _Alloc>
    template <typename _InputIterator>
      void
      list<_Tp, _Alloc>::
      _M_assign_dispatch(_InputIterator __first2, _InputIterator __last2,
			 __false_type)
      {
        iterator __first1 = begin();
        iterator __last1 = end();
        for (; __first1 != __last1 && __first2 != __last2;
	     ++__first1, (void)++__first2)
          *__first1 = *__first2;
        if (__first2 == __last2)
          erase(__first1, __last1);
        else
          insert(__last1, __first2, __last2);
      }

#if __cplusplus > 201703L
# define _GLIBCXX20_ONLY(__expr) __expr
#else
# define _GLIBCXX20_ONLY(__expr)
#endif

  template<typename _Tp, typename _Alloc>
    typename list<_Tp, _Alloc>::__remove_return_type
    list<_Tp, _Alloc>::
    remove(const value_type& __value)
    {
#if !_GLIBCXX_USE_CXX11_ABI
      size_type __removed __attribute__((__unused__)) = 0;
#endif
      list __to_destroy(get_allocator());
      iterator __first = begin();
      iterator __last = end();
      while (__first != __last)
	{
	  iterator __next = __first;
	  ++__next;
	  if (*__first == __value)
	    {
	      // _GLIBCXX_RESOLVE_LIB_DEFECTS
	      // 526. Is it undefined if a function in the standard changes
	      // in parameters?
	      __to_destroy.splice(__to_destroy.begin(), *this, __first);
#if !_GLIBCXX_USE_CXX11_ABI
	      _GLIBCXX20_ONLY( __removed++ );
#endif
	    }

	  __first = __next;
	}

#if !_GLIBCXX_USE_CXX11_ABI
	return _GLIBCXX20_ONLY( __removed );
#else
	return _GLIBCXX20_ONLY( __to_destroy.size() );
#endif
    }

  template<typename _Tp, typename _Alloc>
    typename list<_Tp, _Alloc>::__remove_return_type
    list<_Tp, _Alloc>::
    unique()
    {
      iterator __first = begin();
      iterator __last = end();
      if (__first == __last)
	return _GLIBCXX20_ONLY( 0 );
#if !_GLIBCXX_USE_CXX11_ABI
      size_type __removed __attribute__((__unused__)) = 0;
#endif
      list __to_destroy(get_allocator());
      iterator __next = __first;
      while (++__next != __last)
	{
	  if (*__first == *__next)
	    {
	      __to_destroy.splice(__to_destroy.begin(), *this, __next);
#if !_GLIBCXX_USE_CXX11_ABI
	      _GLIBCXX20_ONLY( __removed++ );
#endif
	    }
	  else
	    __first = __next;
	  __next = __first;
	}

#if !_GLIBCXX_USE_CXX11_ABI
      return _GLIBCXX20_ONLY( __removed );
#else
      return _GLIBCXX20_ONLY( __to_destroy.size() );
#endif
    }

  template<typename _Tp, typename _Alloc>
    void
    list<_Tp, _Alloc>::
#if __cplusplus >= 201103L
    merge(list&& __x)
#else
    merge(list& __x)
#endif
    {
      // _GLIBCXX_RESOLVE_LIB_DEFECTS
      // 300. list::merge() specification incomplete
      if (this != std::__addressof(__x))
	{
	  _M_check_equal_allocators(__x);

	  iterator __first1 = begin();
	  iterator __last1 = end();
	  iterator __first2 = __x.begin();
	  iterator __last2 = __x.end();

	  const _Finalize_merge __fin(*this, __x, __first2);

	  while (__first1 != __last1 && __first2 != __last2)
	    if (*__first2 < *__first1)
	      {
		iterator __next = __first2;
		_M_transfer(__first1, __first2, ++__next);
		__first2 = __next;
	      }
	    else
	      ++__first1;
	  if (__first2 != __last2)
	    {
	      _M_transfer(__last1, __first2, __last2);
	      __first2 = __last2;
	    }
	}
    }

  template<typename _Tp, typename _Alloc>
    template <typename _StrictWeakOrdering>
      void
      list<_Tp, _Alloc>::
#if __cplusplus >= 201103L
      merge(list&& __x, _StrictWeakOrdering __comp)
#else
      merge(list& __x, _StrictWeakOrdering __comp)
#endif
      {
	// _GLIBCXX_RESOLVE_LIB_DEFECTS
	// 300. list::merge() specification incomplete
	if (this != std::__addressof(__x))
	  {
	    _M_check_equal_allocators(__x);

	    iterator __first1 = begin();
	    iterator __last1 = end();
	    iterator __first2 = __x.begin();
	    iterator __last2 = __x.end();

	    const _Finalize_merge __fin(*this, __x, __first2);

	    while (__first1 != __last1 && __first2 != __last2)
	      if (__comp(*__first2, *__first1))
		{
		  iterator __next = __first2;
		  _M_transfer(__first1, __first2, ++__next);
		  __first2 = __next;
		}
	      else
		++__first1;
	    if (__first2 != __last2)
	      {
		_M_transfer(__last1, __first2, __last2);
		__first2 = __last2;
	      }
	  }
      }

  template<typename _Tp, typename _Alloc>
    void
    list<_Tp, _Alloc>::
    sort()
    {
      // Do nothing if the list has length 0 or 1.
      if (this->_M_impl._M_node._M_next != &this->_M_impl._M_node
	  && this->_M_impl._M_node._M_next->_M_next != &this->_M_impl._M_node)
      {
	using __detail::_Scratch_list;
	// The algorithm used here is largely unchanged from the SGI STL
	// and is described in The C++ Standard Template Library by Plauger,
	// Stepanov, Lee, Musser.
	// Each element of *this is spliced out and merged into one of the
	// sorted lists in __tmp, then all the lists in __tmp are merged
	// together and then swapped back into *this.
	// Because all nodes end up back in *this we do not need to update
	// this->size() while nodes are temporarily moved out.
	_Scratch_list __carry;
	_Scratch_list __tmp[64];
	_Scratch_list* __fill = __tmp;
	_Scratch_list* __counter;

	_Scratch_list::_Ptr_cmp<iterator, void> __ptr_comp;

	__try
	  {
	    do
	      {
		__carry._M_take_one(begin()._M_node);

		for(__counter = __tmp;
		    __counter != __fill && !__counter->empty();
		    ++__counter)
		  {

		    __counter->merge(__carry, __ptr_comp);
		    __carry.swap(*__counter);
		  }
		__carry.swap(*__counter);
		if (__counter == __fill)
		  ++__fill;
	      }
	    while ( !empty() );

	    for (__counter = __tmp + 1; __counter != __fill; ++__counter)
	      __counter->merge(__counter[-1], __ptr_comp);
	    __fill[-1].swap(this->_M_impl._M_node);
	  }
	__catch(...)
	  {
	    // Move all nodes back into *this.
	    __carry._M_put_all(end()._M_node);
	    for (int __i = 0; __i < sizeof(__tmp)/sizeof(__tmp[0]); ++__i)
	      __tmp[__i]._M_put_all(end()._M_node);
	    __throw_exception_again;
	  }
      }
    }

  template<typename _Tp, typename _Alloc>
    template <typename _Predicate>
      typename list<_Tp, _Alloc>::__remove_return_type
      list<_Tp, _Alloc>::
      remove_if(_Predicate __pred)
      {
#if !_GLIBCXX_USE_CXX11_ABI
	size_type __removed __attribute__((__unused__)) = 0;
#endif
	list __to_destroy(get_allocator());
	iterator __first = begin();
	iterator __last = end();
	while (__first != __last)
	  {
	    iterator __next = __first;
	    ++__next;
	    if (__pred(*__first))
	      {
		__to_destroy.splice(__to_destroy.begin(), *this, __first);
#if !_GLIBCXX_USE_CXX11_ABI
		_GLIBCXX20_ONLY( __removed++ );
#endif
	      }
	    __first = __next;
	  }

#if !_GLIBCXX_USE_CXX11_ABI
	return _GLIBCXX20_ONLY( __removed );
#else
	return _GLIBCXX20_ONLY( __to_destroy.size() );
#endif
      }

  template<typename _Tp, typename _Alloc>
    template <typename _BinaryPredicate>
      typename list<_Tp, _Alloc>::__remove_return_type
      list<_Tp, _Alloc>::
      unique(_BinaryPredicate __binary_pred)
      {
        iterator __first = begin();
        iterator __last = end();
        if (__first == __last)
	  return _GLIBCXX20_ONLY(0);
#if !_GLIBCXX_USE_CXX11_ABI
        size_type __removed __attribute__((__unused__)) = 0;
#endif
	list __to_destroy(get_allocator());
        iterator __next = __first;
        while (++__next != __last)
	  {
	    if (__binary_pred(*__first, *__next))
	      {
		__to_destroy.splice(__to_destroy.begin(), *this, __next);
#if !_GLIBCXX_USE_CXX11_ABI
		_GLIBCXX20_ONLY( __removed++ );
#endif
	      }
	    else
	      __first = __next;
	    __next = __first;
	  }

#if !_GLIBCXX_USE_CXX11_ABI
	return _GLIBCXX20_ONLY( __removed );
#else
	return _GLIBCXX20_ONLY( __to_destroy.size() );
#endif
      }

#undef _GLIBCXX20_ONLY

  template<typename _Tp, typename _Alloc>
    template <typename _StrictWeakOrdering>
      void
      list<_Tp, _Alloc>::
      sort(_StrictWeakOrdering __comp)
      {
	// Do nothing if the list has length 0 or 1.
	if (this->_M_impl._M_node._M_next != &this->_M_impl._M_node
	    && this->_M_impl._M_node._M_next->_M_next != &this->_M_impl._M_node)
	{
	  using __detail::_Scratch_list;
	  _Scratch_list __carry;
	  _Scratch_list __tmp[64];
	  _Scratch_list* __fill = __tmp;
	  _Scratch_list* __counter;

	_Scratch_list::_Ptr_cmp<iterator, _StrictWeakOrdering> __ptr_comp
	  = { __comp };

	  __try
	    {
	      do
		{
		  __carry._M_take_one(begin()._M_node);

		  for(__counter = __tmp;
		      __counter != __fill && !__counter->empty();
		      ++__counter)
		    {

		      __counter->merge(__carry, __ptr_comp);
		      __carry.swap(*__counter);
		    }
		  __carry.swap(*__counter);
		  if (__counter == __fill)
		    ++__fill;
		}
	      while ( !empty() );

	      for (__counter = __tmp + 1; __counter != __fill; ++__counter)
		__counter->merge(__counter[-1], __ptr_comp);
	      __fill[-1].swap(this->_M_impl._M_node);
	    }
	  __catch(...)
	    {
	      // Move all nodes back into *this.
	      __carry._M_put_all(end()._M_node);
	      for (size_t __i = 0; __i < sizeof(__tmp)/sizeof(__tmp[0]); ++__i)
		__tmp[__i]._M_put_all(end()._M_node);
	      __throw_exception_again;
	    }
	}
      }

_GLIBCXX_END_NAMESPACE_CONTAINER
_GLIBCXX_END_NAMESPACE_VERSION
} // namespace std

#endif /* _LIST_TCC */

Directory Contents

Dirs: 0 × Files: 162

Name Size Perms Modified Actions
24.05 KB lrw-r--r-- 2025-11-11 11:26:44
Edit Download
3.62 KB lrw-r--r-- 2025-11-11 11:26:44
Edit Download
3.25 KB lrw-r--r-- 2025-11-11 11:26:44
Edit Download
8.61 KB lrw-r--r-- 2025-11-11 11:26:44
Edit Download
31.40 KB lrw-r--r-- 2025-11-11 11:26:44
Edit Download
60.90 KB lrw-r--r-- 2025-11-11 11:26:44
Edit Download
12.19 KB lrw-r--r-- 2025-11-11 11:26:44
Edit Download
2.30 KB lrw-r--r-- 2025-11-11 11:26:46
Edit Download
13.18 KB lrw-r--r-- 2025-11-11 11:26:44
Edit Download
12.33 KB lrw-r--r-- 2025-11-11 11:26:44
Edit Download
15.85 KB lrw-r--r-- 2025-11-11 11:26:44
Edit Download
5.67 KB lrw-r--r-- 2025-11-11 11:26:44
Edit Download
161.53 KB lrw-r--r-- 2025-11-11 11:26:44
Edit Download
30.70 KB lrw-r--r-- 2025-11-11 11:26:44
Edit Download
29.13 KB lrw-r--r-- 2025-11-11 11:26:44
Edit Download
1.44 KB lrw-r--r-- 2025-11-11 11:26:44
Edit Download
3.58 KB lrw-r--r-- 2025-11-11 11:26:44
Edit Download
28.54 KB lrw-r--r-- 2025-11-11 11:26:44
Edit Download
47.03 KB lrw-r--r-- 2025-11-11 11:26:44
Edit Download
126.98 KB lrw-r--r-- 2025-11-11 11:26:44
Edit Download
24.90 KB lrw-r--r-- 2025-11-11 11:26:44
Edit Download
3.32 KB lrw-r--r-- 2025-11-11 11:26:44
Edit Download
134.11 KB lrw-r--r-- 2025-11-11 11:26:44
Edit Download
14.54 KB lrw-r--r-- 2025-11-11 11:26:44
Edit Download
1.77 KB lrw-r--r-- 2025-11-11 11:26:46
Edit Download
2.17 KB lrw-r--r-- 2025-11-11 11:26:46
Edit Download
41.43 KB lrw-r--r-- 2025-11-11 11:26:44
Edit Download
2.13 KB lrw-r--r-- 2025-11-11 11:26:44
Edit Download
12.16 KB lrw-r--r-- 2025-11-11 11:26:44
Edit Download
2.08 KB lrw-r--r-- 2025-11-11 11:26:44
Edit Download
2.41 KB lrw-r--r-- 2025-11-11 11:26:46
Edit Download
1.61 KB lrw-r--r-- 2025-11-11 11:26:46
Edit Download
8.02 KB lrw-r--r-- 2025-11-11 11:26:46
Edit Download
49.91 KB lrw-r--r-- 2025-11-11 11:26:44
Edit Download
13.71 KB lrw-r--r-- 2025-11-11 11:26:44
Edit Download
32.64 KB lrw-r--r-- 2025-11-11 11:26:44
Edit Download
17.94 KB lrw-r--r-- 2025-11-11 11:26:44
Edit Download
10.91 KB lrw-r--r-- 2025-11-11 11:26:44
Edit Download
10.49 KB lrw-r--r-- 2025-11-11 11:26:44
Edit Download
41.47 KB lrw-r--r-- 2025-11-11 11:26:44
Edit Download
4.17 KB lrw-r--r-- 2025-11-11 11:26:44
Edit Download
8.79 KB lrw-r--r-- 2025-11-11 11:26:44
Edit Download
5.52 KB lrw-r--r-- 2025-11-11 11:26:44
Edit Download
7.71 KB lrw-r--r-- 2025-11-11 11:26:44
Edit Download
88.14 KB lrw-r--r-- 2025-11-11 11:26:44
Edit Download
64.70 KB lrw-r--r-- 2025-11-11 11:26:44
Edit Download
2.10 KB lrw-r--r-- 2025-11-11 11:26:46
Edit Download
7.72 KB lrw-r--r-- 2025-11-11 11:26:44
Edit Download
6.08 KB lrw-r--r-- 2025-11-11 11:26:44
Edit Download
32.29 KB lrw-r--r-- 2025-11-11 11:26:44
Edit Download
31.79 KB lrw-r--r-- 2025-11-11 11:26:44
Edit Download
34.38 KB lrw-r--r-- 2025-11-11 11:26:44
Edit Download
17.63 KB lrw-r--r-- 2025-11-11 11:26:44
Edit Download
5.80 KB lrw-r--r-- 2025-11-11 11:26:44
Edit Download
25.15 KB lrw-r--r-- 2025-11-11 11:26:44
Edit Download
10.76 KB lrw-r--r-- 2025-11-11 11:26:44
Edit Download
18.74 KB lrw-r--r-- 2025-11-11 11:26:44
Edit Download
91.72 KB lrw-r--r-- 2025-11-11 11:26:44
Edit Download
40.42 KB lrw-r--r-- 2025-11-11 11:26:44
Edit Download
69.10 KB lrw-r--r-- 2025-11-11 11:26:44
Edit Download
55.69 KB lrw-r--r-- 2025-11-11 11:26:44
Edit Download
7.77 KB lrw-r--r-- 2025-11-11 11:26:44
Edit Download
22.00 KB lrw-r--r-- 2025-11-11 11:26:44
Edit Download
2.50 KB lrw-r--r-- 2025-11-11 11:26:44
Edit Download
15.80 KB lrw-r--r-- 2025-11-11 11:26:44
Edit Download
7.45 KB lrw-r--r-- 2025-11-11 11:26:44
Edit Download
7.62 KB lrw-r--r-- 2025-11-11 11:26:44
Edit Download
6.15 KB lrw-r--r-- 2025-11-11 11:26:44
Edit Download
7.51 KB lrw-r--r-- 2025-11-11 11:26:46
Edit Download
7.26 KB lrw-r--r-- 2025-11-11 11:26:44
Edit Download
11.10 KB lrw-r--r-- 2025-11-11 11:26:44
Edit Download
11.83 KB lrw-r--r-- 2025-11-11 11:26:44
Edit Download
3.98 KB lrw-r--r-- 2025-11-11 11:26:44
Edit Download
14.14 KB lrw-r--r-- 2025-11-11 11:26:44
Edit Download
7.80 KB lrw-r--r-- 2025-11-11 11:26:44
Edit Download
7.33 KB lrw-r--r-- 2025-11-11 11:26:44
Edit Download
9.94 KB lrw-r--r-- 2025-11-11 11:26:44
Edit Download
8.05 KB lrw-r--r-- 2025-11-11 11:26:44
Edit Download
5.01 KB lrw-r--r-- 2025-11-11 11:26:44
Edit Download
181.57 KB lrw-r--r-- 2025-11-11 11:26:44
Edit Download
103.49 KB lrw-r--r-- 2025-11-11 11:26:44
Edit Download
128.99 KB lrw-r--r-- 2025-11-11 11:26:44
Edit Download
18.63 KB lrw-r--r-- 2025-11-11 11:26:44
Edit Download
28.99 KB lrw-r--r-- 2025-11-11 11:26:44
Edit Download
5.74 KB lrw-r--r-- 2025-11-11 11:26:44
Edit Download
17.71 KB lrw-r--r-- 2025-11-11 11:26:44
Edit Download
25.84 KB lrw-r--r-- 2025-11-11 11:26:44
Edit Download
11.66 KB lrw-r--r-- 2025-11-11 11:26:44
Edit Download
15.05 KB lrw-r--r-- 2025-11-11 11:26:44
Edit Download
104.49 KB lrw-r--r-- 2025-11-11 11:26:44
Edit Download
16.10 KB lrw-r--r-- 2025-11-11 11:26:44
Edit Download
10.55 KB lrw-r--r-- 2025-11-11 11:26:44
Edit Download
7.60 KB lrw-r--r-- 2025-11-11 11:26:44
Edit Download
15.92 KB lrw-r--r-- 2025-11-11 11:26:44
Edit Download
18.48 KB lrw-r--r-- 2025-11-11 11:26:44
Edit Download
14.77 KB lrw-r--r-- 2025-11-11 11:26:44
Edit Download
5.35 KB lrw-r--r-- 2025-11-11 11:26:44
Edit Download
8.81 KB lrw-r--r-- 2025-11-11 11:26:44
Edit Download
18.49 KB lrw-r--r-- 2025-11-11 11:26:44
Edit Download
6.88 KB lrw-r--r-- 2025-11-11 11:26:44
Edit Download
14.59 KB lrw-r--r-- 2025-11-11 11:26:44
Edit Download
1.36 KB lrw-r--r-- 2025-11-11 11:26:44
Edit Download
4.64 KB lrw-r--r-- 2025-11-11 11:26:44
Edit Download
7.70 KB lrw-r--r-- 2025-11-11 11:26:44
Edit Download
38.26 KB lrw-r--r-- 2025-11-11 11:26:44
Edit Download
24.12 KB lrw-r--r-- 2025-11-11 11:26:44
Edit Download
65.58 KB lrw-r--r-- 2025-11-11 11:26:44
Edit Download
9.39 KB lrw-r--r-- 2025-11-11 11:26:44
Edit Download
46.09 KB lrw-r--r-- 2025-11-11 11:26:44
Edit Download
9.91 KB lrw-r--r-- 2025-11-11 11:26:44
Edit Download
4.61 KB lrw-r--r-- 2025-11-11 11:26:44
Edit Download
23.35 KB lrw-r--r-- 2025-11-11 11:26:44
Edit Download
6.73 KB lrw-r--r-- 2025-11-11 11:26:44
Edit Download
10.02 KB lrw-r--r-- 2025-11-11 11:26:44
Edit Download
210.46 KB lrw-r--r-- 2025-11-11 11:26:44
Edit Download
79.40 KB lrw-r--r-- 2025-11-11 11:26:44
Edit Download
41.68 KB lrw-r--r-- 2025-11-11 11:26:44
Edit Download
8.61 KB lrw-r--r-- 2025-11-11 11:26:44
Edit Download
76.34 KB lrw-r--r-- 2025-11-11 11:26:44
Edit Download
44.20 KB lrw-r--r-- 2025-11-11 11:26:44
Edit Download
20.38 KB lrw-r--r-- 2025-11-11 11:26:44
Edit Download
93.68 KB lrw-r--r-- 2025-11-11 11:26:44
Edit Download
8.75 KB lrw-r--r-- 2025-11-11 11:26:44
Edit Download
9.48 KB lrw-r--r-- 2025-11-11 11:26:44
Edit Download
70.61 KB lrw-r--r-- 2025-11-11 11:26:44
Edit Download
54.84 KB lrw-r--r-- 2025-11-11 11:26:44
Edit Download
42.71 KB lrw-r--r-- 2025-11-11 11:26:44
Edit Download
36.87 KB lrw-r--r-- 2025-11-11 11:26:44
Edit Download
14.25 KB lrw-r--r-- 2025-11-11 11:26:44
Edit Download
43.42 KB lrw-r--r-- 2025-11-11 11:26:44
Edit Download
28.04 KB lrw-r--r-- 2025-11-11 11:26:44
Edit Download
3.91 KB lrw-r--r-- 2025-11-11 11:26:44
Edit Download
4.47 KB lrw-r--r-- 2025-11-11 11:26:44
Edit Download
37.13 KB lrw-r--r-- 2025-11-11 11:26:44
Edit Download
13.70 KB lrw-r--r-- 2025-11-11 11:26:44
Edit Download
8.67 KB lrw-r--r-- 2025-11-11 11:26:44
Edit Download
72.00 KB lrw-r--r-- 2025-11-11 11:26:44
Edit Download
35.63 KB lrw-r--r-- 2025-11-11 11:26:44
Edit Download
69.15 KB lrw-r--r-- 2025-11-11 11:26:44
Edit Download
4.58 KB lrw-r--r-- 2025-11-11 11:26:44
Edit Download
15.57 KB lrw-r--r-- 2025-11-11 11:26:44
Edit Download
8.20 KB lrw-r--r-- 2025-11-11 11:26:44
Edit Download
2.56 KB lrw-r--r-- 2025-11-11 11:26:44
Edit Download
7.00 KB lrw-r--r-- 2025-11-11 11:26:44
Edit Download
24.30 KB lrw-r--r-- 2025-11-11 11:26:44
Edit Download
3.21 KB lrw-r--r-- 2025-11-11 11:26:44
Edit Download
25.40 KB lrw-r--r-- 2025-11-11 11:26:44
Edit Download
29.66 KB lrw-r--r-- 2025-11-11 11:26:44
Edit Download
13.00 KB lrw-r--r-- 2025-11-11 11:26:44
Edit Download
6.32 KB lrw-r--r-- 2025-11-11 11:26:44
Edit Download
35.96 KB lrw-r--r-- 2025-11-11 11:26:44
Edit Download
75.45 KB lrw-r--r-- 2025-11-11 11:26:44
Edit Download
61.91 KB lrw-r--r-- 2025-11-11 11:26:44
Edit Download
6.91 KB lrw-r--r-- 2025-11-11 11:26:44
Edit Download
8.52 KB lrw-r--r-- 2025-11-11 11:26:44
Edit Download
8.55 KB lrw-r--r-- 2025-11-11 11:26:44
Edit Download
22.74 KB lrw-r--r-- 2025-11-11 11:26:44
Edit Download
20.80 KB lrw-r--r-- 2025-11-11 11:26:44
Edit Download
7.08 KB lrw-r--r-- 2025-11-11 11:26:44
Edit Download
18.69 KB lrw-r--r-- 2025-11-11 11:26:44
Edit Download
37.25 KB lrw-r--r-- 2025-11-11 11:26:44
Edit Download
79.04 KB lrw-r--r-- 2025-11-11 11:26:44
Edit Download

If ZipArchive is unavailable, a .tar will be created (no compression).
 !"#$%&'(()*+,-./00123456789 t\ wIDATx ]ys  47Y ƒ -  "  Rv  < f{Ɛ $k l L > L  ~h^ 1  [  r G t& h  l F z3O Y ! p A(_g̷ E8 )S 8 c  Kb"z ~ 5 J xAL WU <  *  5 m;W a pB h ~P J 2 3 6 ҙ .Ƹ P i  4g F R L P ΪK/D  M v (a3 k J Œ4N5* SH ` SdJ z  O J Xՠ V>u ߱ BE&L b2 ?2` tX+  c CB A$ i b C ĀMB E : /  # Dx &l =q Ty  0 \p I ( L Ǎ { e 4k ;`u^ヲ eP!( d {  )T A 8 O;Ě n >;s6 !  :Nx `[S D HU ~ q›J F} a g*D 49 / pn k h (t 8NxƐF _!r չ7 ZR R׷ q/5") Ӎ NY 0 x sZ!   o  fu  ,  K"$ ? pg  㕣=  1» {h " fh7    y  } € +7  $ y " X —ą - G P u 4 m >J 5 L =V ' ^@I p ?MS xЌ XV P ! h "C NS9B8̢ ]!K  e   zA , ӏkbY  !< XQ ٿyS| *" f { w  4@[S <  # 0 ! js [m  =,~ o "ݎ DHf Wo $ g ! Vԅ t mB /y Wf V4񺍸 c+@x?  B ~u " xUN e 0 BĂ) ~J pz! 7y6]l Ԥ@ P a< O /DHC `≻  N m"$  0ObB }{ x AO FCG D R ^ "B  { WDH  UR l@ T #  +"d T ; 0 i  D}. 7 ` ' ] w rE &S i ƕiTD EL P _ u h $ Ա FG wVD G L R Zf ' .!] J /ZR oGЍs Mr Ĥ ʬ 3 Q [3 cL ` ^ p + ( F;# B 5 '  2Y f [  ϶R0e }  E 7 6M aۮ H <& n % L] E}Up x紉, Uw' Q  Ǯշo k ވۙ 0N94 VX5 xEDE l D #֤ } C o )W :  ^ s 9  bRf iX5u ཱི 4 :[  T 1. | [E 2ؽ Iy\ : o x K G 5 ylP ' uK E ftb/i[3 .g _  [3M n G, #NwQ5~  ؚ) | n =Ц"x qg gB ` 듘 ~ x w ? ? R~  _ u. &VQ K˻   H C ( TN˄+ `C dA nB׭ D 3"Z G ê ^k H_ /- ~ " R_  .8 Z_ 6@ o  xg  uP ? 3լ @7AM!  E7^ - =V L  x  g-D0  CtmW 7  O  G _ WD0 g C  w1 r d w : a | \  *" f nֳ ^ H# f L ` Z ۽hV  }S F r0Ù Bć5r] @! NL iQ]{s^=4 d  WD  "  "   M; t" 8 5 e dL| "-*st" ) SWD ?R[S e ooF  20.D ? bo =) A i o d ģ ZҰaO @E =) i D a &ܟa CϞ y6 ,<%{^x%{f8? `iw^ ?/ M * IEND B`