DPDK:upgrade to 18.11.0 LTS.
parent
9da1cd9648
commit
8850115bd8
|
@ -3,6 +3,7 @@ doc/guides/cryptodevs/overview_feature_table.txt
|
|||
doc/guides/cryptodevs/overview_cipher_table.txt
|
||||
doc/guides/cryptodevs/overview_auth_table.txt
|
||||
doc/guides/cryptodevs/overview_aead_table.txt
|
||||
doc/guides/compressdevs/overview_feature_table.txt
|
||||
cscope.out.po
|
||||
cscope.out.in
|
||||
cscope.out
|
||||
|
|
|
@ -1,33 +1,5 @@
|
|||
# BSD LICENSE
|
||||
#
|
||||
# Copyright(c) 2010-2015 Intel Corporation. All rights reserved.
|
||||
# All rights reserved.
|
||||
#
|
||||
# Redistribution and use in source and binary forms, with or without
|
||||
# modification, are permitted provided that the following conditions
|
||||
# are met:
|
||||
#
|
||||
# * Redistributions of source code must retain the above copyright
|
||||
# notice, this list of conditions and the following disclaimer.
|
||||
# * Redistributions in binary form must reproduce the above copyright
|
||||
# notice, this list of conditions and the following disclaimer in
|
||||
# the documentation and/or other materials provided with the
|
||||
# distribution.
|
||||
# * Neither the name of Intel Corporation nor the names of its
|
||||
# contributors may be used to endorse or promote products derived
|
||||
# from this software without specific prior written permission.
|
||||
#
|
||||
# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
|
||||
# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
|
||||
# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
|
||||
# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
|
||||
# OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
|
||||
# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
|
||||
# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
|
||||
# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
|
||||
# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
||||
# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
|
||||
# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
# SPDX-License-Identifier: BSD-3-Clause
|
||||
# Copyright(c) 2010-2015 Intel Corporation
|
||||
|
||||
#
|
||||
# Head Makefile for compiling rte SDK
|
||||
|
@ -40,7 +12,7 @@ export RTE_SDK
|
|||
# directory list
|
||||
#
|
||||
|
||||
ROOTDIRS-y := buildtools lib drivers app
|
||||
ROOTDIRS-y := buildtools lib kernel drivers app
|
||||
ROOTDIRS- := test
|
||||
|
||||
include $(RTE_SDK)/mk/rte.sdkroot.mk
|
||||
|
|
339
dpdk/LICENSE.GPL
339
dpdk/LICENSE.GPL
|
@ -1,339 +0,0 @@
|
|||
GNU GENERAL PUBLIC LICENSE
|
||||
Version 2, June 1991
|
||||
|
||||
Copyright (C) 1989, 1991 Free Software Foundation, Inc.,
|
||||
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
|
||||
Everyone is permitted to copy and distribute verbatim copies
|
||||
of this license document, but changing it is not allowed.
|
||||
|
||||
Preamble
|
||||
|
||||
The licenses for most software are designed to take away your
|
||||
freedom to share and change it. By contrast, the GNU General Public
|
||||
License is intended to guarantee your freedom to share and change free
|
||||
software--to make sure the software is free for all its users. This
|
||||
General Public License applies to most of the Free Software
|
||||
Foundation's software and to any other program whose authors commit to
|
||||
using it. (Some other Free Software Foundation software is covered by
|
||||
the GNU Lesser General Public License instead.) You can apply it to
|
||||
your programs, too.
|
||||
|
||||
When we speak of free software, we are referring to freedom, not
|
||||
price. Our General Public Licenses are designed to make sure that you
|
||||
have the freedom to distribute copies of free software (and charge for
|
||||
this service if you wish), that you receive source code or can get it
|
||||
if you want it, that you can change the software or use pieces of it
|
||||
in new free programs; and that you know you can do these things.
|
||||
|
||||
To protect your rights, we need to make restrictions that forbid
|
||||
anyone to deny you these rights or to ask you to surrender the rights.
|
||||
These restrictions translate to certain responsibilities for you if you
|
||||
distribute copies of the software, or if you modify it.
|
||||
|
||||
For example, if you distribute copies of such a program, whether
|
||||
gratis or for a fee, you must give the recipients all the rights that
|
||||
you have. You must make sure that they, too, receive or can get the
|
||||
source code. And you must show them these terms so they know their
|
||||
rights.
|
||||
|
||||
We protect your rights with two steps: (1) copyright the software, and
|
||||
(2) offer you this license which gives you legal permission to copy,
|
||||
distribute and/or modify the software.
|
||||
|
||||
Also, for each author's protection and ours, we want to make certain
|
||||
that everyone understands that there is no warranty for this free
|
||||
software. If the software is modified by someone else and passed on, we
|
||||
want its recipients to know that what they have is not the original, so
|
||||
that any problems introduced by others will not reflect on the original
|
||||
authors' reputations.
|
||||
|
||||
Finally, any free program is threatened constantly by software
|
||||
patents. We wish to avoid the danger that redistributors of a free
|
||||
program will individually obtain patent licenses, in effect making the
|
||||
program proprietary. To prevent this, we have made it clear that any
|
||||
patent must be licensed for everyone's free use or not licensed at all.
|
||||
|
||||
The precise terms and conditions for copying, distribution and
|
||||
modification follow.
|
||||
|
||||
GNU GENERAL PUBLIC LICENSE
|
||||
TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
|
||||
|
||||
0. This License applies to any program or other work which contains
|
||||
a notice placed by the copyright holder saying it may be distributed
|
||||
under the terms of this General Public License. The "Program", below,
|
||||
refers to any such program or work, and a "work based on the Program"
|
||||
means either the Program or any derivative work under copyright law:
|
||||
that is to say, a work containing the Program or a portion of it,
|
||||
either verbatim or with modifications and/or translated into another
|
||||
language. (Hereinafter, translation is included without limitation in
|
||||
the term "modification".) Each licensee is addressed as "you".
|
||||
|
||||
Activities other than copying, distribution and modification are not
|
||||
covered by this License; they are outside its scope. The act of
|
||||
running the Program is not restricted, and the output from the Program
|
||||
is covered only if its contents constitute a work based on the
|
||||
Program (independent of having been made by running the Program).
|
||||
Whether that is true depends on what the Program does.
|
||||
|
||||
1. You may copy and distribute verbatim copies of the Program's
|
||||
source code as you receive it, in any medium, provided that you
|
||||
conspicuously and appropriately publish on each copy an appropriate
|
||||
copyright notice and disclaimer of warranty; keep intact all the
|
||||
notices that refer to this License and to the absence of any warranty;
|
||||
and give any other recipients of the Program a copy of this License
|
||||
along with the Program.
|
||||
|
||||
You may charge a fee for the physical act of transferring a copy, and
|
||||
you may at your option offer warranty protection in exchange for a fee.
|
||||
|
||||
2. You may modify your copy or copies of the Program or any portion
|
||||
of it, thus forming a work based on the Program, and copy and
|
||||
distribute such modifications or work under the terms of Section 1
|
||||
above, provided that you also meet all of these conditions:
|
||||
|
||||
a) You must cause the modified files to carry prominent notices
|
||||
stating that you changed the files and the date of any change.
|
||||
|
||||
b) You must cause any work that you distribute or publish, that in
|
||||
whole or in part contains or is derived from the Program or any
|
||||
part thereof, to be licensed as a whole at no charge to all third
|
||||
parties under the terms of this License.
|
||||
|
||||
c) If the modified program normally reads commands interactively
|
||||
when run, you must cause it, when started running for such
|
||||
interactive use in the most ordinary way, to print or display an
|
||||
announcement including an appropriate copyright notice and a
|
||||
notice that there is no warranty (or else, saying that you provide
|
||||
a warranty) and that users may redistribute the program under
|
||||
these conditions, and telling the user how to view a copy of this
|
||||
License. (Exception: if the Program itself is interactive but
|
||||
does not normally print such an announcement, your work based on
|
||||
the Program is not required to print an announcement.)
|
||||
|
||||
These requirements apply to the modified work as a whole. If
|
||||
identifiable sections of that work are not derived from the Program,
|
||||
and can be reasonably considered independent and separate works in
|
||||
themselves, then this License, and its terms, do not apply to those
|
||||
sections when you distribute them as separate works. But when you
|
||||
distribute the same sections as part of a whole which is a work based
|
||||
on the Program, the distribution of the whole must be on the terms of
|
||||
this License, whose permissions for other licensees extend to the
|
||||
entire whole, and thus to each and every part regardless of who wrote it.
|
||||
|
||||
Thus, it is not the intent of this section to claim rights or contest
|
||||
your rights to work written entirely by you; rather, the intent is to
|
||||
exercise the right to control the distribution of derivative or
|
||||
collective works based on the Program.
|
||||
|
||||
In addition, mere aggregation of another work not based on the Program
|
||||
with the Program (or with a work based on the Program) on a volume of
|
||||
a storage or distribution medium does not bring the other work under
|
||||
the scope of this License.
|
||||
|
||||
3. You may copy and distribute the Program (or a work based on it,
|
||||
under Section 2) in object code or executable form under the terms of
|
||||
Sections 1 and 2 above provided that you also do one of the following:
|
||||
|
||||
a) Accompany it with the complete corresponding machine-readable
|
||||
source code, which must be distributed under the terms of Sections
|
||||
1 and 2 above on a medium customarily used for software interchange; or,
|
||||
|
||||
b) Accompany it with a written offer, valid for at least three
|
||||
years, to give any third party, for a charge no more than your
|
||||
cost of physically performing source distribution, a complete
|
||||
machine-readable copy of the corresponding source code, to be
|
||||
distributed under the terms of Sections 1 and 2 above on a medium
|
||||
customarily used for software interchange; or,
|
||||
|
||||
c) Accompany it with the information you received as to the offer
|
||||
to distribute corresponding source code. (This alternative is
|
||||
allowed only for noncommercial distribution and only if you
|
||||
received the program in object code or executable form with such
|
||||
an offer, in accord with Subsection b above.)
|
||||
|
||||
The source code for a work means the preferred form of the work for
|
||||
making modifications to it. For an executable work, complete source
|
||||
code means all the source code for all modules it contains, plus any
|
||||
associated interface definition files, plus the scripts used to
|
||||
control compilation and installation of the executable. However, as a
|
||||
special exception, the source code distributed need not include
|
||||
anything that is normally distributed (in either source or binary
|
||||
form) with the major components (compiler, kernel, and so on) of the
|
||||
operating system on which the executable runs, unless that component
|
||||
itself accompanies the executable.
|
||||
|
||||
If distribution of executable or object code is made by offering
|
||||
access to copy from a designated place, then offering equivalent
|
||||
access to copy the source code from the same place counts as
|
||||
distribution of the source code, even though third parties are not
|
||||
compelled to copy the source along with the object code.
|
||||
|
||||
4. You may not copy, modify, sublicense, or distribute the Program
|
||||
except as expressly provided under this License. Any attempt
|
||||
otherwise to copy, modify, sublicense or distribute the Program is
|
||||
void, and will automatically terminate your rights under this License.
|
||||
However, parties who have received copies, or rights, from you under
|
||||
this License will not have their licenses terminated so long as such
|
||||
parties remain in full compliance.
|
||||
|
||||
5. You are not required to accept this License, since you have not
|
||||
signed it. However, nothing else grants you permission to modify or
|
||||
distribute the Program or its derivative works. These actions are
|
||||
prohibited by law if you do not accept this License. Therefore, by
|
||||
modifying or distributing the Program (or any work based on the
|
||||
Program), you indicate your acceptance of this License to do so, and
|
||||
all its terms and conditions for copying, distributing or modifying
|
||||
the Program or works based on it.
|
||||
|
||||
6. Each time you redistribute the Program (or any work based on the
|
||||
Program), the recipient automatically receives a license from the
|
||||
original licensor to copy, distribute or modify the Program subject to
|
||||
these terms and conditions. You may not impose any further
|
||||
restrictions on the recipients' exercise of the rights granted herein.
|
||||
You are not responsible for enforcing compliance by third parties to
|
||||
this License.
|
||||
|
||||
7. If, as a consequence of a court judgment or allegation of patent
|
||||
infringement or for any other reason (not limited to patent issues),
|
||||
conditions are imposed on you (whether by court order, agreement or
|
||||
otherwise) that contradict the conditions of this License, they do not
|
||||
excuse you from the conditions of this License. If you cannot
|
||||
distribute so as to satisfy simultaneously your obligations under this
|
||||
License and any other pertinent obligations, then as a consequence you
|
||||
may not distribute the Program at all. For example, if a patent
|
||||
license would not permit royalty-free redistribution of the Program by
|
||||
all those who receive copies directly or indirectly through you, then
|
||||
the only way you could satisfy both it and this License would be to
|
||||
refrain entirely from distribution of the Program.
|
||||
|
||||
If any portion of this section is held invalid or unenforceable under
|
||||
any particular circumstance, the balance of the section is intended to
|
||||
apply and the section as a whole is intended to apply in other
|
||||
circumstances.
|
||||
|
||||
It is not the purpose of this section to induce you to infringe any
|
||||
patents or other property right claims or to contest validity of any
|
||||
such claims; this section has the sole purpose of protecting the
|
||||
integrity of the free software distribution system, which is
|
||||
implemented by public license practices. Many people have made
|
||||
generous contributions to the wide range of software distributed
|
||||
through that system in reliance on consistent application of that
|
||||
system; it is up to the author/donor to decide if he or she is willing
|
||||
to distribute software through any other system and a licensee cannot
|
||||
impose that choice.
|
||||
|
||||
This section is intended to make thoroughly clear what is believed to
|
||||
be a consequence of the rest of this License.
|
||||
|
||||
8. If the distribution and/or use of the Program is restricted in
|
||||
certain countries either by patents or by copyrighted interfaces, the
|
||||
original copyright holder who places the Program under this License
|
||||
may add an explicit geographical distribution limitation excluding
|
||||
those countries, so that distribution is permitted only in or among
|
||||
countries not thus excluded. In such case, this License incorporates
|
||||
the limitation as if written in the body of this License.
|
||||
|
||||
9. The Free Software Foundation may publish revised and/or new versions
|
||||
of the General Public License from time to time. Such new versions will
|
||||
be similar in spirit to the present version, but may differ in detail to
|
||||
address new problems or concerns.
|
||||
|
||||
Each version is given a distinguishing version number. If the Program
|
||||
specifies a version number of this License which applies to it and "any
|
||||
later version", you have the option of following the terms and conditions
|
||||
either of that version or of any later version published by the Free
|
||||
Software Foundation. If the Program does not specify a version number of
|
||||
this License, you may choose any version ever published by the Free Software
|
||||
Foundation.
|
||||
|
||||
10. If you wish to incorporate parts of the Program into other free
|
||||
programs whose distribution conditions are different, write to the author
|
||||
to ask for permission. For software which is copyrighted by the Free
|
||||
Software Foundation, write to the Free Software Foundation; we sometimes
|
||||
make exceptions for this. Our decision will be guided by the two goals
|
||||
of preserving the free status of all derivatives of our free software and
|
||||
of promoting the sharing and reuse of software generally.
|
||||
|
||||
NO WARRANTY
|
||||
|
||||
11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
|
||||
FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN
|
||||
OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
|
||||
PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED
|
||||
OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
|
||||
MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS
|
||||
TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE
|
||||
PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,
|
||||
REPAIR OR CORRECTION.
|
||||
|
||||
12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
|
||||
WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
|
||||
REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,
|
||||
INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING
|
||||
OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED
|
||||
TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY
|
||||
YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER
|
||||
PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
|
||||
POSSIBILITY OF SUCH DAMAGES.
|
||||
|
||||
END OF TERMS AND CONDITIONS
|
||||
|
||||
How to Apply These Terms to Your New Programs
|
||||
|
||||
If you develop a new program, and you want it to be of the greatest
|
||||
possible use to the public, the best way to achieve this is to make it
|
||||
free software which everyone can redistribute and change under these terms.
|
||||
|
||||
To do so, attach the following notices to the program. It is safest
|
||||
to attach them to the start of each source file to most effectively
|
||||
convey the exclusion of warranty; and each file should have at least
|
||||
the "copyright" line and a pointer to where the full notice is found.
|
||||
|
||||
<one line to give the program's name and a brief idea of what it does.>
|
||||
Copyright (C) <year> <name of author>
|
||||
|
||||
This program 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 2 of the License, or
|
||||
(at your option) any later version.
|
||||
|
||||
This program 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.
|
||||
|
||||
You should have received a copy of the GNU General Public License along
|
||||
with this program; if not, write to the Free Software Foundation, Inc.,
|
||||
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
|
||||
|
||||
Also add information on how to contact you by electronic and paper mail.
|
||||
|
||||
If the program is interactive, make it output a short notice like this
|
||||
when it starts in an interactive mode:
|
||||
|
||||
Gnomovision version 69, Copyright (C) year name of author
|
||||
Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
|
||||
This is free software, and you are welcome to redistribute it
|
||||
under certain conditions; type `show c' for details.
|
||||
|
||||
The hypothetical commands `show w' and `show c' should show the appropriate
|
||||
parts of the General Public License. Of course, the commands you use may
|
||||
be called something other than `show w' and `show c'; they could even be
|
||||
mouse-clicks or menu items--whatever suits your program.
|
||||
|
||||
You should also get your employer (if you work as a programmer) or your
|
||||
school, if any, to sign a "copyright disclaimer" for the program, if
|
||||
necessary. Here is a sample; alter the names:
|
||||
|
||||
Yoyodyne, Inc., hereby disclaims all copyright interest in the program
|
||||
`Gnomovision' (which makes passes at compilers) written by James Hacker.
|
||||
|
||||
<signature of Ty Coon>, 1 April 1989
|
||||
Ty Coon, President of Vice
|
||||
|
||||
This General Public License does not permit incorporating your program into
|
||||
proprietary programs. If your program is a subroutine library, you may
|
||||
consider it more useful to permit linking proprietary applications with the
|
||||
library. If this is what you want to do, use the GNU Lesser General
|
||||
Public License instead of this License.
|
|
@ -1,502 +0,0 @@
|
|||
GNU LESSER GENERAL PUBLIC LICENSE
|
||||
Version 2.1, February 1999
|
||||
|
||||
Copyright (C) 1991, 1999 Free Software Foundation, Inc.
|
||||
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
|
||||
Everyone is permitted to copy and distribute verbatim copies
|
||||
of this license document, but changing it is not allowed.
|
||||
|
||||
[This is the first released version of the Lesser GPL. It also counts
|
||||
as the successor of the GNU Library Public License, version 2, hence
|
||||
the version number 2.1.]
|
||||
|
||||
Preamble
|
||||
|
||||
The licenses for most software are designed to take away your
|
||||
freedom to share and change it. By contrast, the GNU General Public
|
||||
Licenses are intended to guarantee your freedom to share and change
|
||||
free software--to make sure the software is free for all its users.
|
||||
|
||||
This license, the Lesser General Public License, applies to some
|
||||
specially designated software packages--typically libraries--of the
|
||||
Free Software Foundation and other authors who decide to use it. You
|
||||
can use it too, but we suggest you first think carefully about whether
|
||||
this license or the ordinary General Public License is the better
|
||||
strategy to use in any particular case, based on the explanations below.
|
||||
|
||||
When we speak of free software, we are referring to freedom of use,
|
||||
not price. Our General Public Licenses are designed to make sure that
|
||||
you have the freedom to distribute copies of free software (and charge
|
||||
for this service if you wish); that you receive source code or can get
|
||||
it if you want it; that you can change the software and use pieces of
|
||||
it in new free programs; and that you are informed that you can do
|
||||
these things.
|
||||
|
||||
To protect your rights, we need to make restrictions that forbid
|
||||
distributors to deny you these rights or to ask you to surrender these
|
||||
rights. These restrictions translate to certain responsibilities for
|
||||
you if you distribute copies of the library or if you modify it.
|
||||
|
||||
For example, if you distribute copies of the library, whether gratis
|
||||
or for a fee, you must give the recipients all the rights that we gave
|
||||
you. You must make sure that they, too, receive or can get the source
|
||||
code. If you link other code with the library, you must provide
|
||||
complete object files to the recipients, so that they can relink them
|
||||
with the library after making changes to the library and recompiling
|
||||
it. And you must show them these terms so they know their rights.
|
||||
|
||||
We protect your rights with a two-step method: (1) we copyright the
|
||||
library, and (2) we offer you this license, which gives you legal
|
||||
permission to copy, distribute and/or modify the library.
|
||||
|
||||
To protect each distributor, we want to make it very clear that
|
||||
there is no warranty for the free library. Also, if the library is
|
||||
modified by someone else and passed on, the recipients should know
|
||||
that what they have is not the original version, so that the original
|
||||
author's reputation will not be affected by problems that might be
|
||||
introduced by others.
|
||||
|
||||
Finally, software patents pose a constant threat to the existence of
|
||||
any free program. We wish to make sure that a company cannot
|
||||
effectively restrict the users of a free program by obtaining a
|
||||
restrictive license from a patent holder. Therefore, we insist that
|
||||
any patent license obtained for a version of the library must be
|
||||
consistent with the full freedom of use specified in this license.
|
||||
|
||||
Most GNU software, including some libraries, is covered by the
|
||||
ordinary GNU General Public License. This license, the GNU Lesser
|
||||
General Public License, applies to certain designated libraries, and
|
||||
is quite different from the ordinary General Public License. We use
|
||||
this license for certain libraries in order to permit linking those
|
||||
libraries into non-free programs.
|
||||
|
||||
When a program is linked with a library, whether statically or using
|
||||
a shared library, the combination of the two is legally speaking a
|
||||
combined work, a derivative of the original library. The ordinary
|
||||
General Public License therefore permits such linking only if the
|
||||
entire combination fits its criteria of freedom. The Lesser General
|
||||
Public License permits more lax criteria for linking other code with
|
||||
the library.
|
||||
|
||||
We call this license the "Lesser" General Public License because it
|
||||
does Less to protect the user's freedom than the ordinary General
|
||||
Public License. It also provides other free software developers Less
|
||||
of an advantage over competing non-free programs. These disadvantages
|
||||
are the reason we use the ordinary General Public License for many
|
||||
libraries. However, the Lesser license provides advantages in certain
|
||||
special circumstances.
|
||||
|
||||
For example, on rare occasions, there may be a special need to
|
||||
encourage the widest possible use of a certain library, so that it becomes
|
||||
a de-facto standard. To achieve this, non-free programs must be
|
||||
allowed to use the library. A more frequent case is that a free
|
||||
library does the same job as widely used non-free libraries. In this
|
||||
case, there is little to gain by limiting the free library to free
|
||||
software only, so we use the Lesser General Public License.
|
||||
|
||||
In other cases, permission to use a particular library in non-free
|
||||
programs enables a greater number of people to use a large body of
|
||||
free software. For example, permission to use the GNU C Library in
|
||||
non-free programs enables many more people to use the whole GNU
|
||||
operating system, as well as its variant, the GNU/Linux operating
|
||||
system.
|
||||
|
||||
Although the Lesser General Public License is Less protective of the
|
||||
users' freedom, it does ensure that the user of a program that is
|
||||
linked with the Library has the freedom and the wherewithal to run
|
||||
that program using a modified version of the Library.
|
||||
|
||||
The precise terms and conditions for copying, distribution and
|
||||
modification follow. Pay close attention to the difference between a
|
||||
"work based on the library" and a "work that uses the library". The
|
||||
former contains code derived from the library, whereas the latter must
|
||||
be combined with the library in order to run.
|
||||
|
||||
GNU LESSER GENERAL PUBLIC LICENSE
|
||||
TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
|
||||
|
||||
0. This License Agreement applies to any software library or other
|
||||
program which contains a notice placed by the copyright holder or
|
||||
other authorized party saying it may be distributed under the terms of
|
||||
this Lesser General Public License (also called "this License").
|
||||
Each licensee is addressed as "you".
|
||||
|
||||
A "library" means a collection of software functions and/or data
|
||||
prepared so as to be conveniently linked with application programs
|
||||
(which use some of those functions and data) to form executables.
|
||||
|
||||
The "Library", below, refers to any such software library or work
|
||||
which has been distributed under these terms. A "work based on the
|
||||
Library" means either the Library or any derivative work under
|
||||
copyright law: that is to say, a work containing the Library or a
|
||||
portion of it, either verbatim or with modifications and/or translated
|
||||
straightforwardly into another language. (Hereinafter, translation is
|
||||
included without limitation in the term "modification".)
|
||||
|
||||
"Source code" for a work means the preferred form of the work for
|
||||
making modifications to it. For a library, complete source code means
|
||||
all the source code for all modules it contains, plus any associated
|
||||
interface definition files, plus the scripts used to control compilation
|
||||
and installation of the library.
|
||||
|
||||
Activities other than copying, distribution and modification are not
|
||||
covered by this License; they are outside its scope. The act of
|
||||
running a program using the Library is not restricted, and output from
|
||||
such a program is covered only if its contents constitute a work based
|
||||
on the Library (independent of the use of the Library in a tool for
|
||||
writing it). Whether that is true depends on what the Library does
|
||||
and what the program that uses the Library does.
|
||||
|
||||
1. You may copy and distribute verbatim copies of the Library's
|
||||
complete source code as you receive it, in any medium, provided that
|
||||
you conspicuously and appropriately publish on each copy an
|
||||
appropriate copyright notice and disclaimer of warranty; keep intact
|
||||
all the notices that refer to this License and to the absence of any
|
||||
warranty; and distribute a copy of this License along with the
|
||||
Library.
|
||||
|
||||
You may charge a fee for the physical act of transferring a copy,
|
||||
and you may at your option offer warranty protection in exchange for a
|
||||
fee.
|
||||
|
||||
2. You may modify your copy or copies of the Library or any portion
|
||||
of it, thus forming a work based on the Library, and copy and
|
||||
distribute such modifications or work under the terms of Section 1
|
||||
above, provided that you also meet all of these conditions:
|
||||
|
||||
a) The modified work must itself be a software library.
|
||||
|
||||
b) You must cause the files modified to carry prominent notices
|
||||
stating that you changed the files and the date of any change.
|
||||
|
||||
c) You must cause the whole of the work to be licensed at no
|
||||
charge to all third parties under the terms of this License.
|
||||
|
||||
d) If a facility in the modified Library refers to a function or a
|
||||
table of data to be supplied by an application program that uses
|
||||
the facility, other than as an argument passed when the facility
|
||||
is invoked, then you must make a good faith effort to ensure that,
|
||||
in the event an application does not supply such function or
|
||||
table, the facility still operates, and performs whatever part of
|
||||
its purpose remains meaningful.
|
||||
|
||||
(For example, a function in a library to compute square roots has
|
||||
a purpose that is entirely well-defined independent of the
|
||||
application. Therefore, Subsection 2d requires that any
|
||||
application-supplied function or table used by this function must
|
||||
be optional: if the application does not supply it, the square
|
||||
root function must still compute square roots.)
|
||||
|
||||
These requirements apply to the modified work as a whole. If
|
||||
identifiable sections of that work are not derived from the Library,
|
||||
and can be reasonably considered independent and separate works in
|
||||
themselves, then this License, and its terms, do not apply to those
|
||||
sections when you distribute them as separate works. But when you
|
||||
distribute the same sections as part of a whole which is a work based
|
||||
on the Library, the distribution of the whole must be on the terms of
|
||||
this License, whose permissions for other licensees extend to the
|
||||
entire whole, and thus to each and every part regardless of who wrote
|
||||
it.
|
||||
|
||||
Thus, it is not the intent of this section to claim rights or contest
|
||||
your rights to work written entirely by you; rather, the intent is to
|
||||
exercise the right to control the distribution of derivative or
|
||||
collective works based on the Library.
|
||||
|
||||
In addition, mere aggregation of another work not based on the Library
|
||||
with the Library (or with a work based on the Library) on a volume of
|
||||
a storage or distribution medium does not bring the other work under
|
||||
the scope of this License.
|
||||
|
||||
3. You may opt to apply the terms of the ordinary GNU General Public
|
||||
License instead of this License to a given copy of the Library. To do
|
||||
this, you must alter all the notices that refer to this License, so
|
||||
that they refer to the ordinary GNU General Public License, version 2,
|
||||
instead of to this License. (If a newer version than version 2 of the
|
||||
ordinary GNU General Public License has appeared, then you can specify
|
||||
that version instead if you wish.) Do not make any other change in
|
||||
these notices.
|
||||
|
||||
Once this change is made in a given copy, it is irreversible for
|
||||
that copy, so the ordinary GNU General Public License applies to all
|
||||
subsequent copies and derivative works made from that copy.
|
||||
|
||||
This option is useful when you wish to copy part of the code of
|
||||
the Library into a program that is not a library.
|
||||
|
||||
4. You may copy and distribute the Library (or a portion or
|
||||
derivative of it, under Section 2) in object code or executable form
|
||||
under the terms of Sections 1 and 2 above provided that you accompany
|
||||
it with the complete corresponding machine-readable source code, which
|
||||
must be distributed under the terms of Sections 1 and 2 above on a
|
||||
medium customarily used for software interchange.
|
||||
|
||||
If distribution of object code is made by offering access to copy
|
||||
from a designated place, then offering equivalent access to copy the
|
||||
source code from the same place satisfies the requirement to
|
||||
distribute the source code, even though third parties are not
|
||||
compelled to copy the source along with the object code.
|
||||
|
||||
5. A program that contains no derivative of any portion of the
|
||||
Library, but is designed to work with the Library by being compiled or
|
||||
linked with it, is called a "work that uses the Library". Such a
|
||||
work, in isolation, is not a derivative work of the Library, and
|
||||
therefore falls outside the scope of this License.
|
||||
|
||||
However, linking a "work that uses the Library" with the Library
|
||||
creates an executable that is a derivative of the Library (because it
|
||||
contains portions of the Library), rather than a "work that uses the
|
||||
library". The executable is therefore covered by this License.
|
||||
Section 6 states terms for distribution of such executables.
|
||||
|
||||
When a "work that uses the Library" uses material from a header file
|
||||
that is part of the Library, the object code for the work may be a
|
||||
derivative work of the Library even though the source code is not.
|
||||
Whether this is true is especially significant if the work can be
|
||||
linked without the Library, or if the work is itself a library. The
|
||||
threshold for this to be true is not precisely defined by law.
|
||||
|
||||
If such an object file uses only numerical parameters, data
|
||||
structure layouts and accessors, and small macros and small inline
|
||||
functions (ten lines or less in length), then the use of the object
|
||||
file is unrestricted, regardless of whether it is legally a derivative
|
||||
work. (Executables containing this object code plus portions of the
|
||||
Library will still fall under Section 6.)
|
||||
|
||||
Otherwise, if the work is a derivative of the Library, you may
|
||||
distribute the object code for the work under the terms of Section 6.
|
||||
Any executables containing that work also fall under Section 6,
|
||||
whether or not they are linked directly with the Library itself.
|
||||
|
||||
6. As an exception to the Sections above, you may also combine or
|
||||
link a "work that uses the Library" with the Library to produce a
|
||||
work containing portions of the Library, and distribute that work
|
||||
under terms of your choice, provided that the terms permit
|
||||
modification of the work for the customer's own use and reverse
|
||||
engineering for debugging such modifications.
|
||||
|
||||
You must give prominent notice with each copy of the work that the
|
||||
Library is used in it and that the Library and its use are covered by
|
||||
this License. You must supply a copy of this License. If the work
|
||||
during execution displays copyright notices, you must include the
|
||||
copyright notice for the Library among them, as well as a reference
|
||||
directing the user to the copy of this License. Also, you must do one
|
||||
of these things:
|
||||
|
||||
a) Accompany the work with the complete corresponding
|
||||
machine-readable source code for the Library including whatever
|
||||
changes were used in the work (which must be distributed under
|
||||
Sections 1 and 2 above); and, if the work is an executable linked
|
||||
with the Library, with the complete machine-readable "work that
|
||||
uses the Library", as object code and/or source code, so that the
|
||||
user can modify the Library and then relink to produce a modified
|
||||
executable containing the modified Library. (It is understood
|
||||
that the user who changes the contents of definitions files in the
|
||||
Library will not necessarily be able to recompile the application
|
||||
to use the modified definitions.)
|
||||
|
||||
b) Use a suitable shared library mechanism for linking with the
|
||||
Library. A suitable mechanism is one that (1) uses at run time a
|
||||
copy of the library already present on the user's computer system,
|
||||
rather than copying library functions into the executable, and (2)
|
||||
will operate properly with a modified version of the library, if
|
||||
the user installs one, as long as the modified version is
|
||||
interface-compatible with the version that the work was made with.
|
||||
|
||||
c) Accompany the work with a written offer, valid for at
|
||||
least three years, to give the same user the materials
|
||||
specified in Subsection 6a, above, for a charge no more
|
||||
than the cost of performing this distribution.
|
||||
|
||||
d) If distribution of the work is made by offering access to copy
|
||||
from a designated place, offer equivalent access to copy the above
|
||||
specified materials from the same place.
|
||||
|
||||
e) Verify that the user has already received a copy of these
|
||||
materials or that you have already sent this user a copy.
|
||||
|
||||
For an executable, the required form of the "work that uses the
|
||||
Library" must include any data and utility programs needed for
|
||||
reproducing the executable from it. However, as a special exception,
|
||||
the materials to be distributed need not include anything that is
|
||||
normally distributed (in either source or binary form) with the major
|
||||
components (compiler, kernel, and so on) of the operating system on
|
||||
which the executable runs, unless that component itself accompanies
|
||||
the executable.
|
||||
|
||||
It may happen that this requirement contradicts the license
|
||||
restrictions of other proprietary libraries that do not normally
|
||||
accompany the operating system. Such a contradiction means you cannot
|
||||
use both them and the Library together in an executable that you
|
||||
distribute.
|
||||
|
||||
7. You may place library facilities that are a work based on the
|
||||
Library side-by-side in a single library together with other library
|
||||
facilities not covered by this License, and distribute such a combined
|
||||
library, provided that the separate distribution of the work based on
|
||||
the Library and of the other library facilities is otherwise
|
||||
permitted, and provided that you do these two things:
|
||||
|
||||
a) Accompany the combined library with a copy of the same work
|
||||
based on the Library, uncombined with any other library
|
||||
facilities. This must be distributed under the terms of the
|
||||
Sections above.
|
||||
|
||||
b) Give prominent notice with the combined library of the fact
|
||||
that part of it is a work based on the Library, and explaining
|
||||
where to find the accompanying uncombined form of the same work.
|
||||
|
||||
8. You may not copy, modify, sublicense, link with, or distribute
|
||||
the Library except as expressly provided under this License. Any
|
||||
attempt otherwise to copy, modify, sublicense, link with, or
|
||||
distribute the Library is void, and will automatically terminate your
|
||||
rights under this License. However, parties who have received copies,
|
||||
or rights, from you under this License will not have their licenses
|
||||
terminated so long as such parties remain in full compliance.
|
||||
|
||||
9. You are not required to accept this License, since you have not
|
||||
signed it. However, nothing else grants you permission to modify or
|
||||
distribute the Library or its derivative works. These actions are
|
||||
prohibited by law if you do not accept this License. Therefore, by
|
||||
modifying or distributing the Library (or any work based on the
|
||||
Library), you indicate your acceptance of this License to do so, and
|
||||
all its terms and conditions for copying, distributing or modifying
|
||||
the Library or works based on it.
|
||||
|
||||
10. Each time you redistribute the Library (or any work based on the
|
||||
Library), the recipient automatically receives a license from the
|
||||
original licensor to copy, distribute, link with or modify the Library
|
||||
subject to these terms and conditions. You may not impose any further
|
||||
restrictions on the recipients' exercise of the rights granted herein.
|
||||
You are not responsible for enforcing compliance by third parties with
|
||||
this License.
|
||||
|
||||
11. If, as a consequence of a court judgment or allegation of patent
|
||||
infringement or for any other reason (not limited to patent issues),
|
||||
conditions are imposed on you (whether by court order, agreement or
|
||||
otherwise) that contradict the conditions of this License, they do not
|
||||
excuse you from the conditions of this License. If you cannot
|
||||
distribute so as to satisfy simultaneously your obligations under this
|
||||
License and any other pertinent obligations, then as a consequence you
|
||||
may not distribute the Library at all. For example, if a patent
|
||||
license would not permit royalty-free redistribution of the Library by
|
||||
all those who receive copies directly or indirectly through you, then
|
||||
the only way you could satisfy both it and this License would be to
|
||||
refrain entirely from distribution of the Library.
|
||||
|
||||
If any portion of this section is held invalid or unenforceable under any
|
||||
particular circumstance, the balance of the section is intended to apply,
|
||||
and the section as a whole is intended to apply in other circumstances.
|
||||
|
||||
It is not the purpose of this section to induce you to infringe any
|
||||
patents or other property right claims or to contest validity of any
|
||||
such claims; this section has the sole purpose of protecting the
|
||||
integrity of the free software distribution system which is
|
||||
implemented by public license practices. Many people have made
|
||||
generous contributions to the wide range of software distributed
|
||||
through that system in reliance on consistent application of that
|
||||
system; it is up to the author/donor to decide if he or she is willing
|
||||
to distribute software through any other system and a licensee cannot
|
||||
impose that choice.
|
||||
|
||||
This section is intended to make thoroughly clear what is believed to
|
||||
be a consequence of the rest of this License.
|
||||
|
||||
12. If the distribution and/or use of the Library is restricted in
|
||||
certain countries either by patents or by copyrighted interfaces, the
|
||||
original copyright holder who places the Library under this License may add
|
||||
an explicit geographical distribution limitation excluding those countries,
|
||||
so that distribution is permitted only in or among countries not thus
|
||||
excluded. In such case, this License incorporates the limitation as if
|
||||
written in the body of this License.
|
||||
|
||||
13. The Free Software Foundation may publish revised and/or new
|
||||
versions of the Lesser General Public License from time to time.
|
||||
Such new versions will be similar in spirit to the present version,
|
||||
but may differ in detail to address new problems or concerns.
|
||||
|
||||
Each version is given a distinguishing version number. If the Library
|
||||
specifies a version number of this License which applies to it and
|
||||
"any later version", you have the option of following the terms and
|
||||
conditions either of that version or of any later version published by
|
||||
the Free Software Foundation. If the Library does not specify a
|
||||
license version number, you may choose any version ever published by
|
||||
the Free Software Foundation.
|
||||
|
||||
14. If you wish to incorporate parts of the Library into other free
|
||||
programs whose distribution conditions are incompatible with these,
|
||||
write to the author to ask for permission. For software which is
|
||||
copyrighted by the Free Software Foundation, write to the Free
|
||||
Software Foundation; we sometimes make exceptions for this. Our
|
||||
decision will be guided by the two goals of preserving the free status
|
||||
of all derivatives of our free software and of promoting the sharing
|
||||
and reuse of software generally.
|
||||
|
||||
NO WARRANTY
|
||||
|
||||
15. BECAUSE THE LIBRARY IS LICENSED FREE OF CHARGE, THERE IS NO
|
||||
WARRANTY FOR THE LIBRARY, TO THE EXTENT PERMITTED BY APPLICABLE LAW.
|
||||
EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR
|
||||
OTHER PARTIES PROVIDE THE LIBRARY "AS IS" WITHOUT WARRANTY OF ANY
|
||||
KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE
|
||||
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
|
||||
PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE
|
||||
LIBRARY IS WITH YOU. SHOULD THE LIBRARY PROVE DEFECTIVE, YOU ASSUME
|
||||
THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
|
||||
|
||||
16. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN
|
||||
WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY
|
||||
AND/OR REDISTRIBUTE THE LIBRARY AS PERMITTED ABOVE, BE LIABLE TO YOU
|
||||
FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR
|
||||
CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE
|
||||
LIBRARY (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING
|
||||
RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A
|
||||
FAILURE OF THE LIBRARY TO OPERATE WITH ANY OTHER SOFTWARE), EVEN IF
|
||||
SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH
|
||||
DAMAGES.
|
||||
|
||||
END OF TERMS AND CONDITIONS
|
||||
|
||||
How to Apply These Terms to Your New Libraries
|
||||
|
||||
If you develop a new library, and you want it to be of the greatest
|
||||
possible use to the public, we recommend making it free software that
|
||||
everyone can redistribute and change. You can do so by permitting
|
||||
redistribution under these terms (or, alternatively, under the terms of the
|
||||
ordinary General Public License).
|
||||
|
||||
To apply these terms, attach the following notices to the library. It is
|
||||
safest to attach them to the start of each source file to most effectively
|
||||
convey the exclusion of warranty; and each file should have at least the
|
||||
"copyright" line and a pointer to where the full notice is found.
|
||||
|
||||
<one line to give the library's name and a brief idea of what it does.>
|
||||
Copyright (C) <year> <name of author>
|
||||
|
||||
This library is free software; you can redistribute it and/or
|
||||
modify it under the terms of the GNU Lesser General Public
|
||||
License as published by the Free Software Foundation; either
|
||||
version 2.1 of the License, 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
|
||||
Lesser General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU Lesser General Public
|
||||
License along with this library; if not, write to the Free Software
|
||||
Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
|
||||
|
||||
Also add information on how to contact you by electronic and paper mail.
|
||||
|
||||
You should also get your employer (if you work as a programmer) or your
|
||||
school, if any, to sign a "copyright disclaimer" for the library, if
|
||||
necessary. Here is a sample; alter the names:
|
||||
|
||||
Yoyodyne, Inc., hereby disclaims all copyright interest in the
|
||||
library `Frob' (a library for tweaking knobs) written by James Random Hacker.
|
||||
|
||||
<signature of Ty Coon>, 1 April 1990
|
||||
Ty Coon, President of Vice
|
||||
|
||||
That's all there is to it!
|
424
dpdk/MAINTAINERS
424
dpdk/MAINTAINERS
|
@ -27,8 +27,44 @@ M: Thomas Monjalon <thomas@monjalon.net>
|
|||
M: Ferruh Yigit <ferruh.yigit@intel.com>
|
||||
T: git://dpdk.org/dpdk
|
||||
|
||||
Next-net Tree
|
||||
M: Ferruh Yigit <ferruh.yigit@intel.com>
|
||||
T: git://dpdk.org/next/dpdk-next-net
|
||||
|
||||
Next-net-intel Tree
|
||||
M: Qi Zhang <qi.z.zhang@intel.com>
|
||||
M: Beilei Xing <beilei.xing@intel.com>
|
||||
T: git://dpdk.org/next/dpdk-next-net-intel
|
||||
|
||||
Next-net-mlx Tree
|
||||
M: Shahaf Shuler <shahafs@mellanox.com>
|
||||
T: git://dpdk.org/next/dpdk-next-net-mlx
|
||||
|
||||
Next-virtio Tree
|
||||
M: Maxime Coquelin <maxime.coquelin@redhat.com>
|
||||
M: Tiwei Bie <tiwei.bie@intel.com>
|
||||
T: git://dpdk.org/next/dpdk-next-virtio
|
||||
|
||||
Next-crypto Tree
|
||||
M: Pablo de Lara <pablo.de.lara.guarch@intel.com>
|
||||
M: Akhil Goyal <akhil.goyal@nxp.com>
|
||||
T: git://dpdk.org/next/dpdk-next-crypto
|
||||
|
||||
Next-eventdev Tree
|
||||
M: Jerin Jacob <jerin.jacob@caviumnetworks.com>
|
||||
T: git://dpdk.org/next/dpdk-next-eventdev
|
||||
|
||||
Next-qos Tree
|
||||
M: Cristian Dumitrescu <cristian.dumitrescu@intel.com>
|
||||
T: git://dpdk.org/next/dpdk-next-qos
|
||||
|
||||
Next-pipeline Tree
|
||||
M: Cristian Dumitrescu <cristian.dumitrescu@intel.com>
|
||||
T: git://dpdk.org/next/dpdk-next-pipeline
|
||||
|
||||
Stable Branches
|
||||
M: Yuanhan Liu <yliu@fridaylinux.org>
|
||||
M: Luca Boccassi <bluca@debian.org>
|
||||
T: git://dpdk.org/dpdk-stable
|
||||
|
||||
Security Issues
|
||||
|
@ -36,6 +72,7 @@ M: maintainers@dpdk.org
|
|||
|
||||
Documentation (with overlaps)
|
||||
M: John McNamara <john.mcnamara@intel.com>
|
||||
M: Marko Kovacevic <marko.kovacevic@intel.com>
|
||||
F: README
|
||||
F: doc/
|
||||
|
||||
|
@ -44,13 +81,17 @@ M: Thomas Monjalon <thomas@monjalon.net>
|
|||
F: MAINTAINERS
|
||||
F: devtools/check-dup-includes.sh
|
||||
F: devtools/check-maintainers.sh
|
||||
F: devtools/check-forbidden-tokens.awk
|
||||
F: devtools/check-git-log.sh
|
||||
F: devtools/check-includes.sh
|
||||
F: devtools/check-symbol-maps.sh
|
||||
F: devtools/checkpatches.sh
|
||||
F: devtools/get-maintainer.sh
|
||||
F: devtools/git-log-fixes.sh
|
||||
F: devtools/load-devel-config
|
||||
F: devtools/test-build.sh
|
||||
F: devtools/test-meson-builds.sh
|
||||
F: license/
|
||||
|
||||
|
||||
Build System
|
||||
|
@ -70,13 +111,25 @@ F: doc/guides/prog_guide/build_app.rst
|
|||
F: doc/guides/prog_guide/dev_kit_*
|
||||
F: doc/guides/prog_guide/ext_app_lib_make_help.rst
|
||||
|
||||
Meson build
|
||||
M: Bruce Richardson <bruce.richardson@intel.com>
|
||||
F: meson.build
|
||||
F: lib/librte_eal/bsdapp/BSDmakefile.meson
|
||||
F: meson_options.txt
|
||||
F: config/rte_config.h
|
||||
F: buildtools/gen-pmdinfo-cfile.sh
|
||||
F: buildtools/symlink-drivers-solibs.sh
|
||||
|
||||
ABI versioning
|
||||
M: Neil Horman <nhorman@tuxdriver.com>
|
||||
F: lib/librte_compat/
|
||||
F: doc/guides/rel_notes/deprecation.rst
|
||||
F: devtools/validate-abi.sh
|
||||
F: devtools/check-symbol-change.sh
|
||||
F: buildtools/check-experimental-syms.sh
|
||||
|
||||
Driver information
|
||||
M: Neil Horman <nhorman@tuxdriver.com>
|
||||
F: buildtools/pmdinfogen/
|
||||
F: usertools/dpdk-pmdinfo.py
|
||||
F: doc/guides/tools/pmdinfo.rst
|
||||
|
@ -93,12 +146,12 @@ F: lib/librte_eal/rte_eal_version.map
|
|||
F: doc/guides/prog_guide/env_abstraction_layer.rst
|
||||
F: test/test/test_alarm.c
|
||||
F: test/test/test_atomic.c
|
||||
F: test/test/test_barrier.c
|
||||
F: test/test/test_byteorder.c
|
||||
F: test/test/test_common.c
|
||||
F: test/test/test_cpuflags.c
|
||||
F: test/test/test_cycles.c
|
||||
F: test/test/test_debug.c
|
||||
F: test/test/test_devargs.c
|
||||
F: test/test/test_eal*
|
||||
F: test/test/test_errno.c
|
||||
F: test/test/test_interrupts.c
|
||||
|
@ -106,6 +159,7 @@ F: test/test/test_logs.c
|
|||
F: test/test/test_memcpy*
|
||||
F: test/test/test_per_lcore.c
|
||||
F: test/test/test_prefetch.c
|
||||
F: test/test/test_reciprocal_division*
|
||||
F: test/test/test_rwlock.c
|
||||
F: test/test/test_spinlock.c
|
||||
F: test/test/test_string_fns.c
|
||||
|
@ -113,14 +167,20 @@ F: test/test/test_tailq.c
|
|||
F: test/test/test_version.c
|
||||
|
||||
Memory Allocation
|
||||
M: Sergio Gonzalez Monroy <sergio.gonzalez.monroy@intel.com>
|
||||
M: Anatoly Burakov <anatoly.burakov@intel.com>
|
||||
F: lib/librte_eal/common/include/rte_fbarray.h
|
||||
F: lib/librte_eal/common/include/rte_mem*
|
||||
F: lib/librte_eal/common/include/rte_malloc.h
|
||||
F: lib/librte_eal/common/*malloc*
|
||||
F: lib/librte_eal/common/eal_common_fbarray.c
|
||||
F: lib/librte_eal/common/eal_common_mem*
|
||||
F: lib/librte_eal/common/eal_hugepages.h
|
||||
F: lib/librte_eal/linuxapp/eal/eal_mem*
|
||||
F: lib/librte_eal/bsdapp/eal/eal_mem*
|
||||
F: doc/guides/prog_guide/env_abstraction_layer.rst
|
||||
F: test/test/test_external_mem.c
|
||||
F: test/test/test_func_reentrancy.c
|
||||
F: test/test/test_fbarray.c
|
||||
F: test/test/test_malloc.c
|
||||
F: test/test/test_memory.c
|
||||
F: test/test/test_memzone.c
|
||||
|
@ -133,14 +193,14 @@ F: examples/l2fwd-keepalive/
|
|||
F: doc/guides/sample_app_ug/keep_alive.rst
|
||||
|
||||
Secondary process
|
||||
M: Sergio Gonzalez Monroy <sergio.gonzalez.monroy@intel.com>
|
||||
M: Anatoly Burakov <anatoly.burakov@intel.com>
|
||||
K: RTE_PROC_
|
||||
F: doc/guides/prog_guide/multi_proc_support.rst
|
||||
F: test/test/test_mp_secondary.c
|
||||
F: examples/multi_process/
|
||||
F: doc/guides/sample_app_ug/multi_process.rst
|
||||
|
||||
Service Cores - EXPERIMENTAL
|
||||
Service Cores
|
||||
M: Harry van Haaren <harry.van.haaren@intel.com>
|
||||
F: lib/librte_eal/common/include/rte_service.h
|
||||
F: lib/librte_eal/common/include/rte_service_component.h
|
||||
|
@ -173,7 +233,7 @@ F: drivers/net/ixgbe/ixgbe_rxtx_vec_neon.c
|
|||
F: drivers/net/i40e/i40e_rxtx_vec_neon.c
|
||||
F: drivers/net/virtio/virtio_rxtx_simple_neon.c
|
||||
|
||||
IBM POWER
|
||||
IBM POWER (alpha)
|
||||
M: Chao Zhu <chaozhu@linux.vnet.ibm.com>
|
||||
F: lib/librte_eal/common/arch/ppc_64/
|
||||
F: lib/librte_eal/common/include/arch/ppc_64/
|
||||
|
@ -193,7 +253,7 @@ F: doc/guides/linux_gsg/
|
|||
|
||||
Linux UIO
|
||||
M: Ferruh Yigit <ferruh.yigit@intel.com>
|
||||
F: lib/librte_eal/linuxapp/igb_uio/
|
||||
F: kernel/linux/igb_uio/
|
||||
F: drivers/bus/pci/linux/*uio*
|
||||
|
||||
Linux VFIO
|
||||
|
@ -203,20 +263,17 @@ F: drivers/bus/pci/linux/*vfio*
|
|||
|
||||
FreeBSD EAL (with overlaps)
|
||||
M: Bruce Richardson <bruce.richardson@intel.com>
|
||||
M: Sergio Gonzalez Monroy <sergio.gonzalez.monroy@intel.com>
|
||||
F: lib/librte_eal/bsdapp/Makefile
|
||||
F: lib/librte_eal/bsdapp/eal/
|
||||
F: doc/guides/freebsd_gsg/
|
||||
|
||||
FreeBSD contigmem
|
||||
M: Bruce Richardson <bruce.richardson@intel.com>
|
||||
M: Sergio Gonzalez Monroy <sergio.gonzalez.monroy@intel.com>
|
||||
F: lib/librte_eal/bsdapp/contigmem/
|
||||
F: kernel/freebsd/contigmem/
|
||||
|
||||
FreeBSD UIO
|
||||
M: Bruce Richardson <bruce.richardson@intel.com>
|
||||
M: Sergio Gonzalez Monroy <sergio.gonzalez.monroy@intel.com>
|
||||
F: lib/librte_eal/bsdapp/nic_uio/
|
||||
F: kernel/freebsd/nic_uio/
|
||||
|
||||
|
||||
Core Libraries
|
||||
|
@ -224,6 +281,7 @@ Core Libraries
|
|||
|
||||
Memory pool
|
||||
M: Olivier Matz <olivier.matz@6wind.com>
|
||||
M: Andrew Rybchenko <arybchenko@solarflare.com>
|
||||
F: lib/librte_mempool/
|
||||
F: drivers/mempool/Makefile
|
||||
F: drivers/mempool/ring/
|
||||
|
@ -247,37 +305,66 @@ F: test/test/test_mbuf.c
|
|||
|
||||
Ethernet API
|
||||
M: Thomas Monjalon <thomas@monjalon.net>
|
||||
M: Ferruh Yigit <ferruh.yigit@intel.com>
|
||||
M: Andrew Rybchenko <arybchenko@solarflare.com>
|
||||
T: git://dpdk.org/next/dpdk-next-net
|
||||
F: lib/librte_ether/
|
||||
F: lib/librte_ethdev/
|
||||
F: devtools/test-null.sh
|
||||
|
||||
Flow API
|
||||
M: Adrien Mazarguil <adrien.mazarguil@6wind.com>
|
||||
T: git://dpdk.org/next/dpdk-next-net
|
||||
F: lib/librte_ether/rte_flow*
|
||||
F: app/test-pmd/cmdline_flow.c
|
||||
F: doc/guides/prog_guide/rte_flow.rst
|
||||
F: lib/librte_ethdev/rte_flow*
|
||||
|
||||
Traffic Management API - EXPERIMENTAL
|
||||
M: Cristian Dumitrescu <cristian.dumitrescu@intel.com>
|
||||
T: git://dpdk.org/next/dpdk-next-tm
|
||||
F: lib/librte_ether/rte_tm*
|
||||
F: lib/librte_ethdev/rte_tm*
|
||||
|
||||
Traffic Metering and Policing API - EXPERIMENTAL
|
||||
M: Cristian Dumitrescu <cristian.dumitrescu@intel.com>
|
||||
F: lib/librte_ether/rte_mtr*
|
||||
F: lib/librte_ethdev/rte_mtr*
|
||||
|
||||
Baseband API - EXPERIMENTAL
|
||||
M: Amr Mokhtar <amr.mokhtar@intel.com>
|
||||
T: git://dpdk.org/next/dpdk-next-crypto
|
||||
F: lib/librte_bbdev/
|
||||
F: doc/guides/prog_guide/bbdev.rst
|
||||
F: drivers/baseband/
|
||||
F: doc/guides/bbdevs/
|
||||
F: app/test-bbdev/
|
||||
F: doc/guides/tools/testbbdev.rst
|
||||
F: examples/bbdev_app/
|
||||
F: doc/guides/sample_app_ug/bbdev_app.rst
|
||||
|
||||
Crypto API
|
||||
M: Pablo de Lara <pablo.de.lara.guarch@intel.com>
|
||||
M: Declan Doherty <declan.doherty@intel.com>
|
||||
T: git://dpdk.org/next/dpdk-next-crypto
|
||||
F: lib/librte_cryptodev/
|
||||
F: test/test/test_cryptodev*
|
||||
F: examples/l2fwd-crypto/
|
||||
|
||||
Security API - EXPERIMENTAL
|
||||
Security API
|
||||
M: Akhil Goyal <akhil.goyal@nxp.com>
|
||||
M: Declan Doherty <declan.doherty@intel.com>
|
||||
T: git://dpdk.org/next/dpdk-next-crypto
|
||||
F: lib/librte_security/
|
||||
F: doc/guides/prog_guide/rte_security.rst
|
||||
|
||||
Compression API - EXPERIMENTAL
|
||||
M: Fiona Trahe <fiona.trahe@intel.com>
|
||||
M: Pablo de Lara <pablo.de.lara.guarch@intel.com>
|
||||
M: Ashish Gupta <ashish.gupta@caviumnetworks.com>
|
||||
T: git://dpdk.org/next/dpdk-next-crypto
|
||||
F: lib/librte_compressdev/
|
||||
F: drivers/compress/
|
||||
F: test/test/test_compressdev*
|
||||
F: doc/guides/prog_guide/compressdev.rst
|
||||
F: doc/guides/compressdevs/features/default.ini
|
||||
|
||||
Eventdev API
|
||||
M: Jerin Jacob <jerin.jacob@caviumnetworks.com>
|
||||
T: git://dpdk.org/next/dpdk-next-eventdev
|
||||
|
@ -292,13 +379,56 @@ F: lib/librte_eventdev/*eth_rx_adapter*
|
|||
F: test/test/test_event_eth_rx_adapter.c
|
||||
F: doc/guides/prog_guide/event_ethernet_rx_adapter.rst
|
||||
|
||||
Eventdev Ethdev Tx Adapter API - EXPERIMENTAL
|
||||
M: Nikhil Rao <nikhil.rao@intel.com>
|
||||
T: git://dpdk.org/next/dpdk-next-eventdev
|
||||
F: lib/librte_eventdev/*eth_tx_adapter*
|
||||
F: test/test/test_event_eth_tx_adapter.c
|
||||
F: doc/guides/prog_guide/event_ethernet_tx_adapter.rst
|
||||
|
||||
Eventdev Timer Adapter API - EXPERIMENTAL
|
||||
M: Erik Gabriel Carrillo <erik.g.carrillo@intel.com>
|
||||
T: git://dpdk.org/next/dpdk-next-eventdev
|
||||
F: lib/librte_eventdev/*timer_adapter*
|
||||
F: test/test/test_event_timer_adapter.c
|
||||
F: doc/guides/prog_guide/event_timer_adapter.rst
|
||||
|
||||
Eventdev Crypto Adapter API - EXPERIMENTAL
|
||||
M: Abhinandan Gujjar <abhinandan.gujjar@intel.com>
|
||||
T: git://dpdk.org/next/dpdk-next-eventdev
|
||||
F: lib/librte_eventdev/*crypto_adapter*
|
||||
F: test/test/test_event_crypto_adapter.c
|
||||
F: doc/guides/prog_guide/event_crypto_adapter.rst
|
||||
|
||||
Raw device API - EXPERIMENTAL
|
||||
M: Shreyansh Jain <shreyansh.jain@nxp.com>
|
||||
M: Hemant Agrawal <hemant.agrawal@nxp.com>
|
||||
F: lib/librte_rawdev/
|
||||
F: drivers/raw/skeleton_rawdev/
|
||||
F: test/test/test_rawdev.c
|
||||
F: doc/guides/prog_guide/rawdev.rst
|
||||
|
||||
|
||||
Memory Pool Drivers
|
||||
-------------------
|
||||
|
||||
Bucket memory pool
|
||||
M: Artem V. Andreev <artem.andreev@oktetlabs.ru>
|
||||
M: Andrew Rybchenko <arybchenko@solarflare.com>
|
||||
F: drivers/mempool/bucket/
|
||||
|
||||
|
||||
Bus Drivers
|
||||
-----------
|
||||
|
||||
Intel FPGA bus
|
||||
M: Rosen Xu <rosen.xu@intel.com>
|
||||
F: drivers/bus/ifpga/
|
||||
|
||||
NXP buses
|
||||
M: Hemant Agrawal <hemant.agrawal@nxp.com>
|
||||
M: Shreyansh Jain <shreyansh.jain@nxp.com>
|
||||
F: drivers/common/dpaax/
|
||||
F: drivers/bus/dpaa/
|
||||
F: drivers/bus/fslmc/
|
||||
|
||||
|
@ -306,9 +436,12 @@ PCI bus driver
|
|||
F: drivers/bus/pci/
|
||||
|
||||
VDEV bus driver
|
||||
M: Jianfeng Tan <jianfeng.tan@intel.com>
|
||||
F: drivers/bus/vdev/
|
||||
|
||||
VMBUS bus driver
|
||||
M: Stephen Hemminger <sthemmin@microsoft.com>
|
||||
F: drivers/bus/vmbus/
|
||||
|
||||
|
||||
Networking Drivers
|
||||
------------------
|
||||
|
@ -318,6 +451,7 @@ F: doc/guides/nics/features/default.ini
|
|||
|
||||
Link bonding
|
||||
M: Declan Doherty <declan.doherty@intel.com>
|
||||
M: Chas Williams <chas3@att.com>
|
||||
F: drivers/net/bonding/
|
||||
F: doc/guides/prog_guide/link_bonding_poll_mode_drv_lib.rst
|
||||
F: test/test/test_link_bonding*
|
||||
|
@ -326,7 +460,7 @@ F: doc/guides/nics/features/bonding.ini
|
|||
|
||||
Linux KNI
|
||||
M: Ferruh Yigit <ferruh.yigit@intel.com>
|
||||
F: lib/librte_eal/linuxapp/kni/
|
||||
F: kernel/linux/kni/
|
||||
F: lib/librte_kni/
|
||||
F: doc/guides/prog_guide/kernel_nic_interface.rst
|
||||
F: test/test/test_kni.c
|
||||
|
@ -347,6 +481,19 @@ F: drivers/net/ena/
|
|||
F: doc/guides/nics/ena.rst
|
||||
F: doc/guides/nics/features/ena.ini
|
||||
|
||||
AMD axgbe
|
||||
M: Ravi Kumar <ravi1.kumar@amd.com>
|
||||
F: drivers/net/axgbe/
|
||||
F: doc/guides/nics/axgbe.rst
|
||||
F: doc/guides/nics/features/axgbe.ini
|
||||
|
||||
Aquantia atlantic
|
||||
M: Igor Russkikh <igor.russkikh@aquantia.com>
|
||||
M: Pavel Belous <pavel.belous@aquantia.com>
|
||||
F: drivers/net/atlantic/
|
||||
F: doc/guides/nics/atlantic.rst
|
||||
F: doc/guides/nics/features/atlantic.ini
|
||||
|
||||
Atomic Rules ARK
|
||||
M: Shepard Siegel <shepard.siegel@atomicrules.com>
|
||||
M: Ed Czeck <ed.czeck@atomicrules.com>
|
||||
|
@ -356,8 +503,8 @@ F: doc/guides/nics/ark.rst
|
|||
F: doc/guides/nics/features/ark.ini
|
||||
|
||||
Broadcom bnxt
|
||||
M: Stephen Hurd <stephen.hurd@broadcom.com>
|
||||
M: Ajit Khaparde <ajit.khaparde@broadcom.com>
|
||||
M: Somnath Kotur <somnath.kotur@broadcom.com>
|
||||
F: drivers/net/bnxt/
|
||||
F: doc/guides/nics/bnxt.rst
|
||||
F: doc/guides/nics/features/bnxt.ini
|
||||
|
@ -376,9 +523,9 @@ F: drivers/net/liquidio/
|
|||
F: doc/guides/nics/liquidio.rst
|
||||
F: doc/guides/nics/features/liquidio.ini
|
||||
|
||||
Cavium OcteonTX
|
||||
M: Santosh Shukla <santosh.shukla@caviumnetworks.com>
|
||||
Cavium OCTEON TX
|
||||
M: Jerin Jacob <jerin.jacob@caviumnetworks.com>
|
||||
F: drivers/common/octeontx/
|
||||
F: drivers/mempool/octeontx/
|
||||
F: drivers/net/octeontx/
|
||||
F: doc/guides/nics/octeontx.rst
|
||||
|
@ -392,13 +539,14 @@ F: doc/guides/nics/features/cxgbe.ini
|
|||
|
||||
Cisco enic
|
||||
M: John Daley <johndale@cisco.com>
|
||||
M: Nelson Escobar <neescoba@cisco.com>
|
||||
M: Hyong Youb Kim <hyonkim@cisco.com>
|
||||
F: drivers/net/enic/
|
||||
F: doc/guides/nics/enic.rst
|
||||
F: doc/guides/nics/features/enic.ini
|
||||
|
||||
Intel e1000
|
||||
M: Wenzhuo Lu <wenzhuo.lu@intel.com>
|
||||
T: git://dpdk.org/next/dpdk-next-net-intel
|
||||
F: drivers/net/e1000/
|
||||
F: doc/guides/nics/e1000em.rst
|
||||
F: doc/guides/nics/intel_vf.rst
|
||||
|
@ -408,14 +556,16 @@ F: doc/guides/nics/features/igb*.ini
|
|||
Intel ixgbe
|
||||
M: Wenzhuo Lu <wenzhuo.lu@intel.com>
|
||||
M: Konstantin Ananyev <konstantin.ananyev@intel.com>
|
||||
T: git://dpdk.org/next/dpdk-next-net-intel
|
||||
F: drivers/net/ixgbe/
|
||||
F: doc/guides/nics/ixgbe.rst
|
||||
F: doc/guides/nics/intel_vf.rst
|
||||
F: doc/guides/nics/features/ixgbe*.ini
|
||||
|
||||
Intel i40e
|
||||
M: Jingjing Wu <jingjing.wu@intel.com>
|
||||
M: Beilei Xing <beilei.xing@intel.com>
|
||||
M: Qi Zhang <qi.z.zhang@intel.com>
|
||||
T: git://dpdk.org/next/dpdk-next-net-intel
|
||||
F: drivers/net/i40e/
|
||||
F: doc/guides/nics/i40e.rst
|
||||
F: doc/guides/nics/intel_vf.rst
|
||||
|
@ -424,12 +574,46 @@ F: doc/guides/nics/features/i40e*.ini
|
|||
Intel fm10k
|
||||
M: Qi Zhang <qi.z.zhang@intel.com>
|
||||
M: Xiao Wang <xiao.w.wang@intel.com>
|
||||
T: git://dpdk.org/next/dpdk-next-net-intel
|
||||
F: drivers/net/fm10k/
|
||||
F: doc/guides/nics/fm10k.rst
|
||||
F: doc/guides/nics/features/fm10k*.ini
|
||||
|
||||
Intel avf
|
||||
M: Jingjing Wu <jingjing.wu@intel.com>
|
||||
M: Wenzhuo Lu <wenzhuo.lu@intel.com>
|
||||
T: git://dpdk.org/next/dpdk-next-net-intel
|
||||
F: drivers/net/avf/
|
||||
F: doc/guides/nics/features/avf*.ini
|
||||
|
||||
Intel ifc
|
||||
M: Xiao Wang <xiao.w.wang@intel.com>
|
||||
T: git://dpdk.org/next/dpdk-next-net-intel
|
||||
F: drivers/net/ifc/
|
||||
F: doc/guides/nics/ifc.rst
|
||||
F: doc/guides/nics/features/ifc*.ini
|
||||
|
||||
Marvell mvpp2
|
||||
M: Tomasz Duszynski <tdu@semihalf.com>
|
||||
M: Dmitri Epshtein <dima@marvell.com>
|
||||
M: Natalie Samsonov <nsamsono@marvell.com>
|
||||
F: drivers/common/mvep/
|
||||
F: drivers/net/mvpp2/
|
||||
F: doc/guides/nics/mvpp2.rst
|
||||
F: doc/guides/nics/features/mvpp2.ini
|
||||
|
||||
Marvell mvneta
|
||||
M: Zyta Szpak <zr@semihalf.com>
|
||||
M: Dmitri Epshtein <dima@marvell.com>
|
||||
M: Natalie Samsonov <nsamsono@marvell.com>
|
||||
F: drivers/net/mvneta/
|
||||
F: doc/guides/nics/mvneta.rst
|
||||
F: doc/guides/nics/features/mvneta.ini
|
||||
|
||||
Mellanox mlx4
|
||||
M: Matan Azrad <matan@mellanox.com>
|
||||
M: Shahaf Shuler <shahafs@mellanox.com>
|
||||
T: git://dpdk.org/next/dpdk-next-net-mlx
|
||||
F: drivers/net/mlx4/
|
||||
F: doc/guides/nics/mlx4.rst
|
||||
F: doc/guides/nics/features/mlx4.ini
|
||||
|
@ -437,21 +621,27 @@ F: doc/guides/nics/features/mlx4.ini
|
|||
Mellanox mlx5
|
||||
M: Shahaf Shuler <shahafs@mellanox.com>
|
||||
M: Yongseok Koh <yskoh@mellanox.com>
|
||||
T: git://dpdk.org/next/dpdk-next-net-mlx
|
||||
F: drivers/net/mlx5/
|
||||
F: doc/guides/nics/mlx5.rst
|
||||
F: doc/guides/nics/features/mlx5.ini
|
||||
|
||||
Marvell mrvl
|
||||
M: Jacek Siuda <jck@semihalf.com>
|
||||
M: Tomasz Duszynski <tdu@semihalf.com>
|
||||
M: Dmitri Epshtein <dima@marvell.com>
|
||||
M: Natalie Samsonov <nsamsono@marvell.com>
|
||||
F: drivers/net/mrvl/
|
||||
F: doc/guides/nics/mrvl.rst
|
||||
F: doc/guides/nics/features/mrvl.ini
|
||||
Microsoft vdev_netvsc - EXPERIMENTAL
|
||||
M: Matan Azrad <matan@mellanox.com>
|
||||
F: drivers/net/vdev_netvsc/
|
||||
F: doc/guides/nics/vdev_netvsc.rst
|
||||
F: doc/guides/nics/features/vdev_netvsc.ini
|
||||
|
||||
Microsoft Hyper-V netvsc - EXPERIMENTAL
|
||||
M: Stephen Hemminger <sthemmin@microsoft.com>
|
||||
M: K. Y. Srinivasan <kys@microsoft.com>
|
||||
M: Haiyang Zhang <haiyangz@microsoft.com>
|
||||
F: drivers/net/netvsc/
|
||||
F: doc/guides/nics/netvsc.rst
|
||||
F: doc/guides/nics/features/netvsc.ini
|
||||
|
||||
Netcope szedata2
|
||||
M: Matej Vido <vido@cesnet.cz>
|
||||
M: Jan Remes <remes@netcope.com>
|
||||
F: drivers/net/szedata2/
|
||||
F: doc/guides/nics/szedata2.rst
|
||||
F: doc/guides/nics/features/szedata2.ini
|
||||
|
@ -478,6 +668,13 @@ F: drivers/net/dpaa2/
|
|||
F: doc/guides/nics/dpaa2.rst
|
||||
F: doc/guides/nics/features/dpaa2.ini
|
||||
|
||||
NXP enetc
|
||||
M: Gagandeep Singh <g.singh@nxp.com>
|
||||
M: Pankaj Chauhan <pankaj.chauhan@nxp.com>
|
||||
F: drivers/net/enetc/
|
||||
F: doc/guides/nics/enetc.rst
|
||||
F: doc/guides/nics/features/enetc.ini
|
||||
|
||||
QLogic bnx2x
|
||||
M: Harish Patil <harish.patil@cavium.com>
|
||||
M: Rasesh Mody <rasesh.mody@cavium.com>
|
||||
|
@ -500,14 +697,15 @@ F: doc/guides/nics/sfc_efx.rst
|
|||
F: doc/guides/nics/features/sfc_efx.ini
|
||||
|
||||
VMware vmxnet3
|
||||
M: Shrikrishna Khare <skhare@vmware.com>
|
||||
M: Yong Wang <yongwang@vmware.com>
|
||||
F: drivers/net/vmxnet3/
|
||||
F: doc/guides/nics/vmxnet3.rst
|
||||
F: doc/guides/nics/features/vmxnet3.ini
|
||||
|
||||
Vhost-user
|
||||
M: Yuanhan Liu <yliu@fridaylinux.org>
|
||||
M: Maxime Coquelin <maxime.coquelin@redhat.com>
|
||||
M: Tiwei Bie <tiwei.bie@intel.com>
|
||||
M: Zhihong Wang <zhihong.wang@intel.com>
|
||||
T: git://dpdk.org/next/dpdk-next-virtio
|
||||
F: lib/librte_vhost/
|
||||
F: doc/guides/prog_guide/vhost_lib.rst
|
||||
|
@ -515,18 +713,23 @@ F: examples/vhost/
|
|||
F: doc/guides/sample_app_ug/vhost.rst
|
||||
F: examples/vhost_scsi/
|
||||
F: doc/guides/sample_app_ug/vhost_scsi.rst
|
||||
F: examples/vhost_crypto/
|
||||
F: examples/vdpa/
|
||||
F: doc/guides/sample_app_ug/vdpa.rst
|
||||
|
||||
Vhost PMD
|
||||
M: Tetsuya Mukawa <mtetsuyah@gmail.com>
|
||||
M: Yuanhan Liu <yliu@fridaylinux.org>
|
||||
M: Maxime Coquelin <maxime.coquelin@redhat.com>
|
||||
M: Tiwei Bie <tiwei.bie@intel.com>
|
||||
M: Zhihong Wang <zhihong.wang@intel.com>
|
||||
T: git://dpdk.org/next/dpdk-next-virtio
|
||||
F: drivers/net/vhost/
|
||||
F: doc/guides/nics/vhost.rst
|
||||
F: doc/guides/nics/features/vhost.ini
|
||||
|
||||
Virtio PMD
|
||||
M: Yuanhan Liu <yliu@fridaylinux.org>
|
||||
M: Maxime Coquelin <maxime.coquelin@redhat.com>
|
||||
M: Tiwei Bie <tiwei.bie@intel.com>
|
||||
M: Zhihong Wang <zhihong.wang@intel.com>
|
||||
T: git://dpdk.org/next/dpdk-next-virtio
|
||||
F: drivers/net/virtio/
|
||||
F: doc/guides/nics/virtio.rst
|
||||
|
@ -546,7 +749,7 @@ F: doc/guides/nics/pcap_ring.rst
|
|||
F: doc/guides/nics/features/pcap.ini
|
||||
|
||||
Tap PMD
|
||||
M: Pascal Mazon <pascal.mazon@6wind.com>
|
||||
M: Keith Wiles <keith.wiles@intel.com>
|
||||
F: drivers/net/tap/
|
||||
F: doc/guides/nics/tap.rst
|
||||
F: doc/guides/nics/features/tap.ini
|
||||
|
@ -574,11 +777,14 @@ Fail-safe PMD
|
|||
M: Gaetan Rivet <gaetan.rivet@6wind.com>
|
||||
F: drivers/net/failsafe/
|
||||
F: doc/guides/nics/fail_safe.rst
|
||||
F: doc/guides/nics/features/failsafe.ini
|
||||
|
||||
Softnic PMD
|
||||
M: Jasvinder Singh <jasvinder.singh@intel.com>
|
||||
M: Cristian Dumitrescu <cristian.dumitrescu@intel.com>
|
||||
F: drivers/net/softnic/
|
||||
F: doc/guides/nics/features/softnic.ini
|
||||
F: doc/guides/nics/softnic.rst
|
||||
|
||||
|
||||
Crypto Drivers
|
||||
|
@ -587,12 +793,25 @@ M: Pablo de Lara <pablo.de.lara.guarch@intel.com>
|
|||
T: git://dpdk.org/next/dpdk-next-crypto
|
||||
F: doc/guides/cryptodevs/features/default.ini
|
||||
|
||||
AMD CCP Crypto
|
||||
M: Ravi Kumar <ravi1.kumar@amd.com>
|
||||
F: drivers/crypto/ccp/
|
||||
F: doc/guides/cryptodevs/ccp.rst
|
||||
F: doc/guides/cryptodevs/features/ccp.ini
|
||||
|
||||
ARMv8 Crypto
|
||||
M: Jerin Jacob <jerin.jacob@caviumnetworks.com>
|
||||
F: drivers/crypto/armv8/
|
||||
F: doc/guides/cryptodevs/armv8.rst
|
||||
F: doc/guides/cryptodevs/features/armv8.ini
|
||||
|
||||
Cavium OCTEON TX crypto
|
||||
M: Anoob Joseph <anoob.joseph@caviumnetworks.com>
|
||||
F: drivers/common/cpt/
|
||||
F: drivers/crypto/octeontx/
|
||||
F: doc/guides/cryptodevs/octeontx.rst
|
||||
F: doc/guides/cryptodevs/features/octeontx.ini
|
||||
|
||||
Crypto Scheduler
|
||||
M: Fan Zhang <roy.fan.zhang@intel.com>
|
||||
F: drivers/crypto/scheduler/
|
||||
|
@ -615,6 +834,7 @@ M: John Griffin <john.griffin@intel.com>
|
|||
M: Fiona Trahe <fiona.trahe@intel.com>
|
||||
M: Deepak Kumar Jain <deepak.k.jain@intel.com>
|
||||
F: drivers/crypto/qat/
|
||||
F: drivers/common/qat/
|
||||
F: doc/guides/cryptodevs/qat.rst
|
||||
F: doc/guides/cryptodevs/features/qat.ini
|
||||
|
||||
|
@ -625,13 +845,12 @@ F: doc/guides/cryptodevs/kasumi.rst
|
|||
F: doc/guides/cryptodevs/features/kasumi.ini
|
||||
|
||||
Marvell Mrvl
|
||||
M: Jacek Siuda <jck@semihalf.com>
|
||||
M: Tomasz Duszynski <tdu@semihalf.com>
|
||||
M: Dmitri Epshtein <dima@marvell.com>
|
||||
M: Natalie Samsonov <nsamsono@marvell.com>
|
||||
F: drivers/crypto/mrvl/
|
||||
F: doc/guides/cryptodevs/mrvl.rst
|
||||
F: doc/guides/cryptodevs/features/mrvl.ini
|
||||
F: drivers/crypto/mvsam/
|
||||
F: doc/guides/cryptodevs/mvsam.rst
|
||||
F: doc/guides/cryptodevs/features/mvsam.ini
|
||||
|
||||
Null Crypto
|
||||
M: Declan Doherty <declan.doherty@intel.com>
|
||||
|
@ -639,6 +858,13 @@ F: drivers/crypto/null/
|
|||
F: doc/guides/cryptodevs/null.rst
|
||||
F: doc/guides/cryptodevs/features/null.ini
|
||||
|
||||
NXP CAAM JR
|
||||
M: Gagandeep Singh <g.singh@nxp.com>
|
||||
M: Hemant Agrawal <hemant.agrawal@nxp.com>
|
||||
F: drivers/crypto/caam_jr/
|
||||
F: doc/guides/cryptodevs/caam_jr.rst
|
||||
F: doc/guides/cryptodevs/features/caam_jr.ini
|
||||
|
||||
NXP DPAA_SEC
|
||||
M: Akhil Goyal <akhil.goyal@nxp.com>
|
||||
M: Hemant Agrawal <hemant.agrawal@nxp.com>
|
||||
|
@ -665,6 +891,12 @@ F: drivers/crypto/snow3g/
|
|||
F: doc/guides/cryptodevs/snow3g.rst
|
||||
F: doc/guides/cryptodevs/features/snow3g.ini
|
||||
|
||||
Virtio
|
||||
M: Jay Zhou <jianjay.zhou@huawei.com>
|
||||
F: drivers/crypto/virtio/
|
||||
F: doc/guides/cryptodevs/virtio.rst
|
||||
F: doc/guides/cryptodevs/features/virtio.ini
|
||||
|
||||
ZUC
|
||||
M: Pablo de Lara <pablo.de.lara.guarch@intel.com>
|
||||
F: drivers/crypto/zuc/
|
||||
|
@ -672,18 +904,55 @@ F: doc/guides/cryptodevs/zuc.rst
|
|||
F: doc/guides/cryptodevs/features/zuc.ini
|
||||
|
||||
|
||||
Compression Drivers
|
||||
-------------------
|
||||
M: Pablo de Lara <pablo.de.lara.guarch@intel.com>
|
||||
T: git://dpdk.org/next/dpdk-next-crypto
|
||||
|
||||
Cavium OCTEON TX zipvf
|
||||
M: Ashish Gupta <ashish.gupta@cavium.com>
|
||||
F: drivers/compress/octeontx/
|
||||
F: doc/guides/compressdevs/octeontx.rst
|
||||
F: doc/guides/compressdevs/features/octeontx.ini
|
||||
|
||||
Intel QuickAssist
|
||||
M: Fiona Trahe <fiona.trahe@intel.com>
|
||||
F: drivers/compress/qat/
|
||||
F: drivers/common/qat/
|
||||
|
||||
ISA-L
|
||||
M: Lee Daly <lee.daly@intel.com>
|
||||
F: drivers/compress/isal/
|
||||
F: doc/guides/compressdevs/isal.rst
|
||||
F: doc/guides/compressdevs/features/isal.ini
|
||||
|
||||
ZLIB
|
||||
M: Sunila Sahu <sunila.sahu@caviumnetworks.com>
|
||||
F: drivers/compress/zlib/
|
||||
F: doc/guides/compressdevs/zlib.rst
|
||||
F: doc/guides/compressdevs/features/zlib.ini
|
||||
|
||||
|
||||
Eventdev Drivers
|
||||
----------------
|
||||
M: Jerin Jacob <jerin.jacob@caviumnetworks.com>
|
||||
T: git://dpdk.org/next/dpdk-next-eventdev
|
||||
|
||||
Cavium OCTEONTX ssovf
|
||||
Cavium OCTEON TX ssovf
|
||||
M: Jerin Jacob <jerin.jacob@caviumnetworks.com>
|
||||
M: Santosh Shukla <santosh.shukla@caviumnetworks.com>
|
||||
F: drivers/event/octeontx/
|
||||
F: test/test/test_eventdev_octeontx.c
|
||||
F: doc/guides/eventdevs/octeontx.rst
|
||||
|
||||
Cavium OCTEON TX timvf
|
||||
M: Pavan Nikhilesh <pbhagavatula@caviumnetworks.com>
|
||||
F: drivers/event/octeontx/timvf_*
|
||||
|
||||
NXP DPAA eventdev
|
||||
M: Hemant Agrawal <hemant.agrawal@nxp.com>
|
||||
M: Sunil Kumar Kori <sunil.kori@nxp.com>
|
||||
F: drivers/event/dpaa/
|
||||
F: doc/guides/eventdevs/dpaa.rst
|
||||
|
||||
NXP DPAA2 eventdev
|
||||
M: Hemant Agrawal <hemant.agrawal@nxp.com>
|
||||
M: Nipun Gupta <nipun.gupta@nxp.com>
|
||||
|
@ -693,10 +962,40 @@ F: doc/guides/eventdevs/dpaa2.rst
|
|||
Software Eventdev PMD
|
||||
M: Harry van Haaren <harry.van.haaren@intel.com>
|
||||
F: drivers/event/sw/
|
||||
F: test/test/test_eventdev_sw.c
|
||||
F: doc/guides/eventdevs/sw.rst
|
||||
F: examples/eventdev_pipeline_sw_pmd/
|
||||
F: doc/guides/sample_app_ug/eventdev_pipeline_sw_pmd.rst
|
||||
F: examples/eventdev_pipeline/
|
||||
F: doc/guides/sample_app_ug/eventdev_pipeline.rst
|
||||
|
||||
Distributed Software Eventdev PMD
|
||||
M: Mattias Rönnblom <mattias.ronnblom@ericsson.com>
|
||||
F: drivers/event/dsw/
|
||||
F: doc/guides/eventdevs/dsw.rst
|
||||
|
||||
Software OPDL Eventdev PMD
|
||||
M: Liang Ma <liang.j.ma@intel.com>
|
||||
M: Peter Mccarthy <peter.mccarthy@intel.com>
|
||||
F: drivers/event/opdl/
|
||||
F: doc/guides/eventdevs/opdl.rst
|
||||
|
||||
|
||||
Rawdev Drivers
|
||||
--------------
|
||||
|
||||
Intel FPGA
|
||||
M: Rosen Xu <rosen.xu@intel.com>
|
||||
M: Tianfei zhang <tianfei.zhang@intel.com>
|
||||
F: drivers/raw/ifpga_rawdev/
|
||||
F: doc/guides/rawdevs/ifpga_rawdev.rst
|
||||
|
||||
NXP DPAA2 QDMA
|
||||
M: Nipun Gupta <nipun.gupta@nxp.com>
|
||||
F: drivers/raw/dpaa2_qdma/
|
||||
F: doc/guides/rawdevs/dpaa2_qdma.rst
|
||||
|
||||
DPAA2 CMDIF
|
||||
M: Nipun Gupta <nipun.gupta@nxp.com>
|
||||
F: drivers/raw/dpaa2_cmdif/
|
||||
F: doc/guides/rawdevs/dpaa2_cmdif.rst
|
||||
|
||||
|
||||
Packet processing
|
||||
|
@ -728,7 +1027,6 @@ F: doc/guides/prog_guide/generic_receive_offload_lib.rst
|
|||
|
||||
Generic Segmentation Offload
|
||||
M: Jiayu Hu <jiayu.hu@intel.com>
|
||||
M: Mark Kavanagh <mark.b.kavanagh@intel.com>
|
||||
F: lib/librte_gso/
|
||||
F: doc/guides/prog_guide/generic_segmentation_offload_lib.rst
|
||||
|
||||
|
@ -773,6 +1071,7 @@ F: doc/guides/prog_guide/pdump_lib.rst
|
|||
F: app/pdump/
|
||||
F: doc/guides/tools/pdump.rst
|
||||
|
||||
|
||||
Packet Framework
|
||||
----------------
|
||||
M: Cristian Dumitrescu <cristian.dumitrescu@intel.com>
|
||||
|
@ -839,6 +1138,7 @@ F: test/test/test_meter.c
|
|||
F: examples/qos_meter/
|
||||
F: doc/guides/sample_app_ug/qos_metering.rst
|
||||
|
||||
|
||||
Other libraries
|
||||
---------------
|
||||
|
||||
|
@ -892,6 +1192,7 @@ F: doc/guides/sample_app_ug/l2_forward_job_stats.rst
|
|||
Metrics
|
||||
M: Remy Horton <remy.horton@intel.com>
|
||||
F: lib/librte_metrics/
|
||||
F: test/test/test_metrics.c
|
||||
|
||||
Bit-rate statistics
|
||||
M: Remy Horton <remy.horton@intel.com>
|
||||
|
@ -901,6 +1202,19 @@ Latency statistics
|
|||
M: Reshma Pattan <reshma.pattan@intel.com>
|
||||
F: lib/librte_latencystats/
|
||||
|
||||
Telemetry - EXPERIMENTAL
|
||||
M: Kevin Laatz <kevin.laatz@intel.com>
|
||||
F: lib/librte_telemetry/
|
||||
F: usertools/dpdk-telemetry-client.py
|
||||
F: doc/guides/howto/telemetry.rst
|
||||
|
||||
BPF - EXPERIMENTAL
|
||||
M: Konstantin Ananyev <konstantin.ananyev@intel.com>
|
||||
F: lib/librte_bpf/
|
||||
F: test/bpf/
|
||||
F: test/test/test_bpf.c
|
||||
F: doc/guides/prog_guide/bpf_lib.rst
|
||||
|
||||
|
||||
Test Applications
|
||||
-----------------
|
||||
|
@ -922,7 +1236,9 @@ F: test/test/virtual_pmd.c
|
|||
F: test/test/virtual_pmd.h
|
||||
|
||||
Driver testing tool
|
||||
M: Wenzhuo Lu <wenzhuo.lu@intel.com>
|
||||
M: Jingjing Wu <jingjing.wu@intel.com>
|
||||
M: Bernard Iremonger <bernard.iremonger@intel.com>
|
||||
F: app/test-pmd/
|
||||
F: doc/guides/testpmd_app_ug/
|
||||
|
||||
|
@ -941,7 +1257,7 @@ F: test/test/test_event_ring.c
|
|||
Procinfo tool
|
||||
M: Maryam Tahhan <maryam.tahhan@intel.com>
|
||||
M: Reshma Pattan <reshma.pattan@intel.com>
|
||||
F: app/proc_info/
|
||||
F: app/proc-info/
|
||||
F: doc/guides/tools/proc_info.rst
|
||||
|
||||
|
||||
|
@ -955,6 +1271,10 @@ F: doc/guides/sample_app_ug/ethtool.rst
|
|||
F: examples/exception_path/
|
||||
F: doc/guides/sample_app_ug/exception_path.rst
|
||||
|
||||
M: Marko Kovacevic <marko.kovacevic@intel.com>
|
||||
F: examples/fips_validation/
|
||||
F: doc/guides/sample_app_ug/fips_validation.rst
|
||||
|
||||
M: Ori Kam <orika@mellanox.com>
|
||||
F: examples/flow_filtering/
|
||||
F: doc/guides/sample_app_ug/flow_filtering.rst
|
||||
|
@ -964,8 +1284,8 @@ M: Pablo de Lara <pablo.de.lara.guarch@intel.com>
|
|||
F: examples/helloworld/
|
||||
F: doc/guides/sample_app_ug/hello_world.rst
|
||||
|
||||
M: Sergio Gonzalez Monroy <sergio.gonzalez.monroy@intel.com>
|
||||
M: Radu Nicolau <radu.nicolau@intel.com>
|
||||
M: Akhil Goyal <akhil.goyal@nxp.com>
|
||||
F: examples/ipsec-secgw/
|
||||
F: doc/guides/sample_app_ug/ipsec_secgw.rst
|
||||
|
||||
|
@ -1021,7 +1341,7 @@ M: John McNamara <john.mcnamara@intel.com>
|
|||
F: examples/skeleton/
|
||||
F: doc/guides/sample_app_ug/skeleton.rst
|
||||
|
||||
M: Jijiang Liu <jijiang.liu@intel.com>
|
||||
M: Xiaoyun Li <xiaoyun.li@intel.com>
|
||||
F: examples/tep_termination/
|
||||
|
||||
F: examples/vmdq/
|
||||
|
|
|
@ -1,33 +1,5 @@
|
|||
# BSD LICENSE
|
||||
#
|
||||
# Copyright(c) 2010-2014 Intel Corporation. All rights reserved.
|
||||
# All rights reserved.
|
||||
#
|
||||
# Redistribution and use in source and binary forms, with or without
|
||||
# modification, are permitted provided that the following conditions
|
||||
# are met:
|
||||
#
|
||||
# * Redistributions of source code must retain the above copyright
|
||||
# notice, this list of conditions and the following disclaimer.
|
||||
# * Redistributions in binary form must reproduce the above copyright
|
||||
# notice, this list of conditions and the following disclaimer in
|
||||
# the documentation and/or other materials provided with the
|
||||
# distribution.
|
||||
# * Neither the name of Intel Corporation nor the names of its
|
||||
# contributors may be used to endorse or promote products derived
|
||||
# from this software without specific prior written permission.
|
||||
#
|
||||
# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
|
||||
# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
|
||||
# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
|
||||
# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
|
||||
# OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
|
||||
# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
|
||||
# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
|
||||
# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
|
||||
# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
||||
# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
|
||||
# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
# SPDX-License-Identifier: BSD-3-Clause
|
||||
# Copyright(c) 2010-2014 Intel Corporation
|
||||
|
||||
.error Error please compile using GNU Make (gmake)
|
||||
|
||||
|
|
|
@ -1,8 +1,8 @@
|
|||
DPDK is a set of libraries and drivers for fast packet processing.
|
||||
It supports many processor architectures and both FreeBSD and Linux.
|
||||
|
||||
The DPDK uses the Open Source BSD license for the core libraries and
|
||||
drivers. The kernel components are GPLv2 licensed.
|
||||
The DPDK uses the Open Source BSD-3-Clause license for the core libraries
|
||||
and drivers. The kernel components are GPL-2.0 licensed.
|
||||
|
||||
Please check the doc directory for release notes,
|
||||
API documentation, and sample application information.
|
||||
|
|
|
@ -1,40 +1,16 @@
|
|||
# BSD LICENSE
|
||||
#
|
||||
# Copyright(c) 2010-2014 Intel Corporation. All rights reserved.
|
||||
# All rights reserved.
|
||||
#
|
||||
# Redistribution and use in source and binary forms, with or without
|
||||
# modification, are permitted provided that the following conditions
|
||||
# are met:
|
||||
#
|
||||
# * Redistributions of source code must retain the above copyright
|
||||
# notice, this list of conditions and the following disclaimer.
|
||||
# * Redistributions in binary form must reproduce the above copyright
|
||||
# notice, this list of conditions and the following disclaimer in
|
||||
# the documentation and/or other materials provided with the
|
||||
# distribution.
|
||||
# * Neither the name of Intel Corporation nor the names of its
|
||||
# contributors may be used to endorse or promote products derived
|
||||
# from this software without specific prior written permission.
|
||||
#
|
||||
# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
|
||||
# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
|
||||
# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
|
||||
# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
|
||||
# OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
|
||||
# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
|
||||
# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
|
||||
# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
|
||||
# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
||||
# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
|
||||
# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
# SPDX-License-Identifier: BSD-3-Clause
|
||||
# Copyright(c) 2010-2014 Intel Corporation
|
||||
|
||||
include $(RTE_SDK)/mk/rte.vars.mk
|
||||
|
||||
DIRS-$(CONFIG_RTE_TEST_PMD) += test-pmd
|
||||
DIRS-$(CONFIG_RTE_PROC_INFO) += proc_info
|
||||
DIRS-$(CONFIG_RTE_PROC_INFO) += proc-info
|
||||
DIRS-$(CONFIG_RTE_LIBRTE_PDUMP) += pdump
|
||||
|
||||
ifeq ($(CONFIG_RTE_LIBRTE_BBDEV),y)
|
||||
DIRS-$(CONFIG_RTE_TEST_BBDEV) += test-bbdev
|
||||
endif
|
||||
|
||||
ifeq ($(CONFIG_RTE_LIBRTE_CRYPTODEV),y)
|
||||
DIRS-$(CONFIG_RTE_APP_CRYPTO_PERF) += test-crypto-perf
|
||||
endif
|
||||
|
|
|
@ -0,0 +1,62 @@
|
|||
# SPDX-License-Identifier: BSD-3-Clause
|
||||
# Copyright(c) 2017 Intel Corporation
|
||||
|
||||
apps = ['pdump',
|
||||
'proc-info',
|
||||
'test-bbdev',
|
||||
'test-crypto-perf',
|
||||
'test-eventdev',
|
||||
'test-pmd']
|
||||
|
||||
# for BSD only
|
||||
lib_execinfo = cc.find_library('execinfo', required: false)
|
||||
|
||||
default_cflags = machine_args
|
||||
|
||||
# specify -D_GNU_SOURCE unconditionally
|
||||
default_cflags += '-D_GNU_SOURCE'
|
||||
|
||||
foreach app:apps
|
||||
build = true
|
||||
name = app
|
||||
allow_experimental_apis = false
|
||||
sources = []
|
||||
includes = []
|
||||
cflags = default_cflags
|
||||
objs = [] # other object files to link against, used e.g. for
|
||||
# instruction-set optimized versions of code
|
||||
|
||||
# use "deps" for internal DPDK dependencies, and "ext_deps" for
|
||||
# external package/library requirements
|
||||
ext_deps = []
|
||||
deps = dpdk_app_link_libraries
|
||||
|
||||
subdir(name)
|
||||
|
||||
if build
|
||||
dep_objs = []
|
||||
foreach d:deps
|
||||
dep_objs += get_variable(get_option('default_library')
|
||||
+ '_rte_' + d)
|
||||
endforeach
|
||||
dep_objs += lib_execinfo
|
||||
|
||||
link_libs = []
|
||||
if get_option('default_library') == 'static'
|
||||
link_libs = dpdk_static_libraries + dpdk_drivers
|
||||
endif
|
||||
|
||||
if allow_experimental_apis
|
||||
cflags += '-DALLOW_EXPERIMENTAL_API'
|
||||
endif
|
||||
|
||||
executable('dpdk-' + name,
|
||||
sources,
|
||||
c_args: cflags,
|
||||
link_whole: link_libs,
|
||||
dependencies: dep_objs,
|
||||
install_rpath: join_paths(get_option('prefix'),
|
||||
driver_install_path),
|
||||
install: true)
|
||||
endif
|
||||
endforeach
|
|
@ -1,33 +1,5 @@
|
|||
# BSD LICENSE
|
||||
#
|
||||
# Copyright(c) 2016 Intel Corporation. All rights reserved.
|
||||
# All rights reserved.
|
||||
#
|
||||
# Redistribution and use in source and binary forms, with or without
|
||||
# modification, are permitted provided that the following conditions
|
||||
# are met:
|
||||
#
|
||||
# * Redistributions of source code must retain the above copyright
|
||||
# notice, this list of conditions and the following disclaimer.
|
||||
# * Redistributions in binary form must reproduce the above copyright
|
||||
# notice, this list of conditions and the following disclaimer in
|
||||
# the documentation and/or other materials provided with the
|
||||
# distribution.
|
||||
# * Neither the name of Intel Corporation nor the names of its
|
||||
# contributors may be used to endorse or promote products derived
|
||||
# from this software without specific prior written permission.
|
||||
#
|
||||
# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
|
||||
# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
|
||||
# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
|
||||
# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
|
||||
# OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
|
||||
# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
|
||||
# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
|
||||
# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
|
||||
# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
||||
# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
|
||||
# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
# SPDX-License-Identifier: BSD-3-Clause
|
||||
# Copyright(c) 2016 Intel Corporation
|
||||
|
||||
include $(RTE_SDK)/mk/rte.vars.mk
|
||||
|
||||
|
@ -35,6 +7,7 @@ ifeq ($(CONFIG_RTE_LIBRTE_PDUMP),y)
|
|||
|
||||
APP = dpdk-pdump
|
||||
|
||||
CFLAGS += -DALLOW_EXPERIMENTAL_API
|
||||
CFLAGS += $(WERROR_FLAGS)
|
||||
|
||||
# all source are stored in SRCS-y
|
||||
|
|
|
@ -1,34 +1,5 @@
|
|||
/*
|
||||
* BSD LICENSE
|
||||
*
|
||||
* Copyright(c) 2016 Intel Corporation. All rights reserved.
|
||||
* All rights reserved.
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
* modification, are permitted provided that the following conditions
|
||||
* are met:
|
||||
*
|
||||
* * Redistributions of source code must retain the above copyright
|
||||
* notice, this list of conditions and the following disclaimer.
|
||||
* * Redistributions in binary form must reproduce the above copyright
|
||||
* notice, this list of conditions and the following disclaimer in
|
||||
* the documentation and/or other materials provided with the
|
||||
* distribution.
|
||||
* * Neither the name of Intel Corporation nor the names of its
|
||||
* contributors may be used to endorse or promote products derived
|
||||
* from this software without specific prior written permission.
|
||||
*
|
||||
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
|
||||
* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
|
||||
* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
|
||||
* A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
|
||||
* OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
|
||||
* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
|
||||
* LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
|
||||
* DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
|
||||
* THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
||||
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
|
||||
* OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
/* SPDX-License-Identifier: BSD-3-Clause
|
||||
* Copyright(c) 2016 Intel Corporation
|
||||
*/
|
||||
|
||||
#include <stdio.h>
|
||||
|
@ -53,6 +24,7 @@
|
|||
#include <rte_kvargs.h>
|
||||
#include <rte_mempool.h>
|
||||
#include <rte_ring.h>
|
||||
#include <rte_string_fns.h>
|
||||
#include <rte_pdump.h>
|
||||
|
||||
#define CMD_LINE_OPT_PDUMP "pdump"
|
||||
|
@ -65,11 +37,10 @@
|
|||
#define PDUMP_RING_SIZE_ARG "ring-size"
|
||||
#define PDUMP_MSIZE_ARG "mbuf-size"
|
||||
#define PDUMP_NUM_MBUFS_ARG "total-num-mbufs"
|
||||
#define CMD_LINE_OPT_SER_SOCK_PATH "server-socket-path"
|
||||
#define CMD_LINE_OPT_CLI_SOCK_PATH "client-socket-path"
|
||||
|
||||
#define VDEV_PCAP "net_pcap_%s_%d,tx_pcap=%s"
|
||||
#define VDEV_IFACE "net_pcap_%s_%d,tx_iface=%s"
|
||||
#define VDEV_NAME_FMT "net_pcap_%s_%d"
|
||||
#define VDEV_PCAP_ARGS_FMT "tx_pcap=%s"
|
||||
#define VDEV_IFACE_ARGS_FMT "tx_iface=%s"
|
||||
#define TX_STREAM_SIZE 64
|
||||
|
||||
#define MP_NAME "pdump_pool_%d"
|
||||
|
@ -110,7 +81,7 @@ enum pdump_by {
|
|||
DEVICE_ID = 2
|
||||
};
|
||||
|
||||
const char *valid_pdump_arguments[] = {
|
||||
static const char * const valid_pdump_arguments[] = {
|
||||
PDUMP_PORT_ARG,
|
||||
PDUMP_PCI_ARG,
|
||||
PDUMP_QUEUE_ARG,
|
||||
|
@ -148,8 +119,8 @@ struct pdump_tuples {
|
|||
|
||||
/* params for packet dumping */
|
||||
enum pdump_by dump_by_type;
|
||||
int rx_vdev_id;
|
||||
int tx_vdev_id;
|
||||
uint16_t rx_vdev_id;
|
||||
uint16_t tx_vdev_id;
|
||||
enum pcap_stream rx_vdev_stream_type;
|
||||
enum pcap_stream tx_vdev_stream_type;
|
||||
bool single_pdump_dev;
|
||||
|
@ -165,11 +136,9 @@ struct parse_val {
|
|||
uint64_t val;
|
||||
};
|
||||
|
||||
int num_tuples;
|
||||
static int num_tuples;
|
||||
static struct rte_eth_conf port_conf_default;
|
||||
volatile uint8_t quit_signal;
|
||||
static char server_socket_path[PATH_MAX];
|
||||
static char client_socket_path[PATH_MAX];
|
||||
static volatile uint8_t quit_signal;
|
||||
|
||||
/**< display usage */
|
||||
static void
|
||||
|
@ -182,11 +151,7 @@ pdump_usage(const char *prgname)
|
|||
" tx-dev=<iface or pcap file>,"
|
||||
"[ring-size=<ring size>default:16384],"
|
||||
"[mbuf-size=<mbuf data size>default:2176],"
|
||||
"[total-num-mbufs=<number of mbufs>default:65535]'\n"
|
||||
"[--server-socket-path=<server socket dir>"
|
||||
"default:/var/run/.dpdk/ (or) ~/.dpdk/]\n"
|
||||
"[--client-socket-path=<client socket dir>"
|
||||
"default:/var/run/.dpdk/ (or) ~/.dpdk/]\n",
|
||||
"[total-num-mbufs=<number of mbufs>default:65535]'\n",
|
||||
prgname);
|
||||
}
|
||||
|
||||
|
@ -301,7 +266,7 @@ parse_pdump(const char *optarg)
|
|||
&parse_uint_value, &v);
|
||||
if (ret < 0)
|
||||
goto free_kvlist;
|
||||
pt->port = (uint8_t) v.val;
|
||||
pt->port = (uint16_t) v.val;
|
||||
pt->dump_by_type = PORT_ID;
|
||||
} else if (cnt2 == 1) {
|
||||
ret = rte_kvargs_process(kvlist, PDUMP_PCI_ARG,
|
||||
|
@ -411,8 +376,6 @@ launch_args_parse(int argc, char **argv, char *prgname)
|
|||
int option_index;
|
||||
static struct option long_option[] = {
|
||||
{"pdump", 1, 0, 0},
|
||||
{"server-socket-path", 1, 0, 0},
|
||||
{"client-socket-path", 1, 0, 0},
|
||||
{NULL, 0, 0, 0}
|
||||
};
|
||||
|
||||
|
@ -433,23 +396,6 @@ launch_args_parse(int argc, char **argv, char *prgname)
|
|||
return -1;
|
||||
}
|
||||
}
|
||||
|
||||
if (!strncmp(long_option[option_index].name,
|
||||
CMD_LINE_OPT_SER_SOCK_PATH,
|
||||
sizeof(CMD_LINE_OPT_SER_SOCK_PATH))) {
|
||||
snprintf(server_socket_path,
|
||||
sizeof(server_socket_path), "%s",
|
||||
optarg);
|
||||
}
|
||||
|
||||
if (!strncmp(long_option[option_index].name,
|
||||
CMD_LINE_OPT_CLI_SOCK_PATH,
|
||||
sizeof(CMD_LINE_OPT_CLI_SOCK_PATH))) {
|
||||
snprintf(client_socket_path,
|
||||
sizeof(client_socket_path), "%s",
|
||||
optarg);
|
||||
}
|
||||
|
||||
break;
|
||||
default:
|
||||
pdump_usage(prgname);
|
||||
|
@ -489,7 +435,7 @@ disable_pdump(struct pdump_tuples *pt)
|
|||
}
|
||||
|
||||
static inline void
|
||||
pdump_rxtx(struct rte_ring *ring, uint8_t vdev_id, struct pdump_stats *stats)
|
||||
pdump_rxtx(struct rte_ring *ring, uint16_t vdev_id, struct pdump_stats *stats)
|
||||
{
|
||||
/* write input packets of port to vdev for pdump */
|
||||
struct rte_mbuf *rxtx_bufs[BURST_SIZE];
|
||||
|
@ -516,7 +462,7 @@ pdump_rxtx(struct rte_ring *ring, uint8_t vdev_id, struct pdump_stats *stats)
|
|||
}
|
||||
|
||||
static void
|
||||
free_ring_data(struct rte_ring *ring, uint8_t vdev_id,
|
||||
free_ring_data(struct rte_ring *ring, uint16_t vdev_id,
|
||||
struct pdump_stats *stats)
|
||||
{
|
||||
while (rte_ring_count(ring))
|
||||
|
@ -583,11 +529,10 @@ configure_vdev(uint16_t port_id)
|
|||
{
|
||||
struct ether_addr addr;
|
||||
const uint16_t rxRings = 0, txRings = 1;
|
||||
const uint8_t nb_ports = rte_eth_dev_count();
|
||||
int ret;
|
||||
uint16_t q;
|
||||
|
||||
if (port_id > nb_ports)
|
||||
if (!rte_eth_dev_is_valid_port(port_id))
|
||||
return -1;
|
||||
|
||||
ret = rte_eth_dev_configure(port_id, rxRings, txRings,
|
||||
|
@ -626,6 +571,7 @@ create_mp_ring_vdev(void)
|
|||
uint16_t portid;
|
||||
struct pdump_tuples *pt = NULL;
|
||||
struct rte_mempool *mbuf_pool = NULL;
|
||||
char vdev_name[SIZE];
|
||||
char vdev_args[SIZE];
|
||||
char ring_name[SIZE];
|
||||
char mempool_name[SIZE];
|
||||
|
@ -675,17 +621,28 @@ create_mp_ring_vdev(void)
|
|||
}
|
||||
|
||||
/* create vdevs */
|
||||
snprintf(vdev_name, sizeof(vdev_name),
|
||||
VDEV_NAME_FMT, RX_STR, i);
|
||||
(pt->rx_vdev_stream_type == IFACE) ?
|
||||
snprintf(vdev_args, SIZE, VDEV_IFACE, RX_STR, i,
|
||||
pt->rx_dev) :
|
||||
snprintf(vdev_args, SIZE, VDEV_PCAP, RX_STR, i,
|
||||
pt->rx_dev);
|
||||
if (rte_eth_dev_attach(vdev_args, &portid) < 0) {
|
||||
snprintf(vdev_args, sizeof(vdev_args),
|
||||
VDEV_IFACE_ARGS_FMT, pt->rx_dev) :
|
||||
snprintf(vdev_args, sizeof(vdev_args),
|
||||
VDEV_PCAP_ARGS_FMT, pt->rx_dev);
|
||||
if (rte_eal_hotplug_add("vdev", vdev_name,
|
||||
vdev_args) < 0) {
|
||||
cleanup_rings();
|
||||
rte_exit(EXIT_FAILURE,
|
||||
"vdev creation failed:%s:%d\n",
|
||||
__func__, __LINE__);
|
||||
}
|
||||
if (rte_eth_dev_get_port_by_name(vdev_name,
|
||||
&portid) != 0) {
|
||||
rte_eal_hotplug_remove("vdev", vdev_name);
|
||||
cleanup_rings();
|
||||
rte_exit(EXIT_FAILURE,
|
||||
"cannot find added vdev %s:%s:%d\n",
|
||||
vdev_name, __func__, __LINE__);
|
||||
}
|
||||
pt->rx_vdev_id = portid;
|
||||
|
||||
/* configure vdev */
|
||||
|
@ -694,18 +651,29 @@ create_mp_ring_vdev(void)
|
|||
if (pt->single_pdump_dev)
|
||||
pt->tx_vdev_id = portid;
|
||||
else {
|
||||
(pt->tx_vdev_stream_type == IFACE) ?
|
||||
snprintf(vdev_args, SIZE, VDEV_IFACE, TX_STR, i,
|
||||
pt->tx_dev) :
|
||||
snprintf(vdev_args, SIZE, VDEV_PCAP, TX_STR, i,
|
||||
pt->tx_dev);
|
||||
if (rte_eth_dev_attach(vdev_args,
|
||||
&portid) < 0) {
|
||||
snprintf(vdev_name, sizeof(vdev_name),
|
||||
VDEV_NAME_FMT, TX_STR, i);
|
||||
(pt->rx_vdev_stream_type == IFACE) ?
|
||||
snprintf(vdev_args, sizeof(vdev_args),
|
||||
VDEV_IFACE_ARGS_FMT, pt->tx_dev) :
|
||||
snprintf(vdev_args, sizeof(vdev_args),
|
||||
VDEV_PCAP_ARGS_FMT, pt->tx_dev);
|
||||
if (rte_eal_hotplug_add("vdev", vdev_name,
|
||||
vdev_args) < 0) {
|
||||
cleanup_rings();
|
||||
rte_exit(EXIT_FAILURE,
|
||||
"vdev creation failed:"
|
||||
"%s:%d\n", __func__, __LINE__);
|
||||
}
|
||||
if (rte_eth_dev_get_port_by_name(vdev_name,
|
||||
&portid) != 0) {
|
||||
rte_eal_hotplug_remove("vdev",
|
||||
vdev_name);
|
||||
cleanup_rings();
|
||||
rte_exit(EXIT_FAILURE,
|
||||
"cannot find added vdev %s:%s:%d\n",
|
||||
vdev_name, __func__, __LINE__);
|
||||
}
|
||||
pt->tx_vdev_id = portid;
|
||||
|
||||
/* configure vdev */
|
||||
|
@ -723,17 +691,28 @@ create_mp_ring_vdev(void)
|
|||
rte_strerror(rte_errno));
|
||||
}
|
||||
|
||||
snprintf(vdev_name, sizeof(vdev_name),
|
||||
VDEV_NAME_FMT, RX_STR, i);
|
||||
(pt->rx_vdev_stream_type == IFACE) ?
|
||||
snprintf(vdev_args, SIZE, VDEV_IFACE, RX_STR, i,
|
||||
pt->rx_dev) :
|
||||
snprintf(vdev_args, SIZE, VDEV_PCAP, RX_STR, i,
|
||||
pt->rx_dev);
|
||||
if (rte_eth_dev_attach(vdev_args, &portid) < 0) {
|
||||
snprintf(vdev_args, sizeof(vdev_args),
|
||||
VDEV_IFACE_ARGS_FMT, pt->rx_dev) :
|
||||
snprintf(vdev_args, sizeof(vdev_args),
|
||||
VDEV_PCAP_ARGS_FMT, pt->rx_dev);
|
||||
if (rte_eal_hotplug_add("vdev", vdev_name,
|
||||
vdev_args) < 0) {
|
||||
cleanup_rings();
|
||||
rte_exit(EXIT_FAILURE,
|
||||
"vdev creation failed:%s:%d\n",
|
||||
__func__, __LINE__);
|
||||
}
|
||||
if (rte_eth_dev_get_port_by_name(vdev_name,
|
||||
&portid) != 0) {
|
||||
rte_eal_hotplug_remove("vdev", vdev_name);
|
||||
cleanup_rings();
|
||||
rte_exit(EXIT_FAILURE,
|
||||
"cannot find added vdev %s:%s:%d\n",
|
||||
vdev_name, __func__, __LINE__);
|
||||
}
|
||||
pt->rx_vdev_id = portid;
|
||||
/* configure vdev */
|
||||
configure_vdev(pt->rx_vdev_id);
|
||||
|
@ -749,16 +728,27 @@ create_mp_ring_vdev(void)
|
|||
rte_strerror(rte_errno));
|
||||
}
|
||||
|
||||
snprintf(vdev_name, sizeof(vdev_name),
|
||||
VDEV_NAME_FMT, TX_STR, i);
|
||||
(pt->tx_vdev_stream_type == IFACE) ?
|
||||
snprintf(vdev_args, SIZE, VDEV_IFACE, TX_STR, i,
|
||||
pt->tx_dev) :
|
||||
snprintf(vdev_args, SIZE, VDEV_PCAP, TX_STR, i,
|
||||
pt->tx_dev);
|
||||
if (rte_eth_dev_attach(vdev_args, &portid) < 0) {
|
||||
snprintf(vdev_args, sizeof(vdev_args),
|
||||
VDEV_IFACE_ARGS_FMT, pt->tx_dev) :
|
||||
snprintf(vdev_args, sizeof(vdev_args),
|
||||
VDEV_PCAP_ARGS_FMT, pt->tx_dev);
|
||||
if (rte_eal_hotplug_add("vdev", vdev_name,
|
||||
vdev_args) < 0) {
|
||||
cleanup_rings();
|
||||
rte_exit(EXIT_FAILURE,
|
||||
"vdev creation failed\n");
|
||||
}
|
||||
if (rte_eth_dev_get_port_by_name(vdev_name,
|
||||
&portid) != 0) {
|
||||
rte_eal_hotplug_remove("vdev", vdev_name);
|
||||
cleanup_rings();
|
||||
rte_exit(EXIT_FAILURE,
|
||||
"cannot find added vdev %s:%s:%d\n",
|
||||
vdev_name, __func__, __LINE__);
|
||||
}
|
||||
pt->tx_vdev_id = portid;
|
||||
|
||||
/* configure vdev */
|
||||
|
@ -774,22 +764,6 @@ enable_pdump(void)
|
|||
struct pdump_tuples *pt;
|
||||
int ret = 0, ret1 = 0;
|
||||
|
||||
if (server_socket_path[0] != 0)
|
||||
ret = rte_pdump_set_socket_dir(server_socket_path,
|
||||
RTE_PDUMP_SOCKET_SERVER);
|
||||
if (ret == 0 && client_socket_path[0] != 0) {
|
||||
ret = rte_pdump_set_socket_dir(client_socket_path,
|
||||
RTE_PDUMP_SOCKET_CLIENT);
|
||||
}
|
||||
if (ret < 0) {
|
||||
cleanup_pdump_resources();
|
||||
rte_exit(EXIT_FAILURE,
|
||||
"failed to set socket paths of server:%s, "
|
||||
"client:%s\n",
|
||||
server_socket_path,
|
||||
client_socket_path);
|
||||
}
|
||||
|
||||
for (i = 0; i < num_tuples; i++) {
|
||||
pt = &pdump_t[i];
|
||||
if (pt->dir == RTE_PDUMP_FLAG_RXTX) {
|
||||
|
@ -892,6 +866,9 @@ main(int argc, char **argv)
|
|||
if (diag < 0)
|
||||
rte_panic("Cannot init EAL\n");
|
||||
|
||||
if (rte_eth_dev_count_avail() == 0)
|
||||
rte_exit(EXIT_FAILURE, "No Ethernet ports - bye\n");
|
||||
|
||||
argc -= diag;
|
||||
argv += (diag - 3);
|
||||
|
||||
|
@ -911,5 +888,9 @@ main(int argc, char **argv)
|
|||
/* dump debug stats */
|
||||
print_pdump_stats();
|
||||
|
||||
ret = rte_eal_cleanup();
|
||||
if (ret)
|
||||
printf("Error from rte_eal_cleanup(), %d\n", ret);
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
|
|
@ -0,0 +1,6 @@
|
|||
# SPDX-License-Identifier: BSD-3-Clause
|
||||
# Copyright(c) 2018 Intel Corporation
|
||||
|
||||
sources = files('main.c')
|
||||
allow_experimental_apis = true
|
||||
deps += ['ethdev', 'kvargs', 'pdump']
|
|
@ -0,0 +1,15 @@
|
|||
# SPDX-License-Identifier: BSD-3-Clause
|
||||
# Copyright(c) 2010-2015 Intel Corporation
|
||||
|
||||
include $(RTE_SDK)/mk/rte.vars.mk
|
||||
|
||||
APP = dpdk-procinfo
|
||||
|
||||
CFLAGS += -DALLOW_EXPERIMENTAL_API
|
||||
CFLAGS += $(WERROR_FLAGS)
|
||||
|
||||
# all source are stored in SRCS-y
|
||||
|
||||
SRCS-y := main.c
|
||||
|
||||
include $(RTE_SDK)/mk/rte.app.mk
|
|
@ -0,0 +1,672 @@
|
|||
/* SPDX-License-Identifier: BSD-3-Clause
|
||||
* Copyright(c) 2010-2017 Intel Corporation
|
||||
*/
|
||||
|
||||
#include <stdio.h>
|
||||
#include <string.h>
|
||||
#include <stdint.h>
|
||||
#include <errno.h>
|
||||
#include <stdarg.h>
|
||||
#include <inttypes.h>
|
||||
#include <sys/queue.h>
|
||||
#include <stdlib.h>
|
||||
#include <getopt.h>
|
||||
#include <unistd.h>
|
||||
|
||||
#include <rte_eal.h>
|
||||
#include <rte_common.h>
|
||||
#include <rte_debug.h>
|
||||
#include <rte_ethdev.h>
|
||||
#include <rte_malloc.h>
|
||||
#include <rte_memory.h>
|
||||
#include <rte_memzone.h>
|
||||
#include <rte_launch.h>
|
||||
#include <rte_tailq.h>
|
||||
#include <rte_per_lcore.h>
|
||||
#include <rte_lcore.h>
|
||||
#include <rte_log.h>
|
||||
#include <rte_atomic.h>
|
||||
#include <rte_branch_prediction.h>
|
||||
#include <rte_string_fns.h>
|
||||
#include <rte_metrics.h>
|
||||
|
||||
/* Maximum long option length for option parsing. */
|
||||
#define MAX_LONG_OPT_SZ 64
|
||||
#define RTE_LOGTYPE_APP RTE_LOGTYPE_USER1
|
||||
|
||||
#define MAX_STRING_LEN 256
|
||||
|
||||
/**< mask of enabled ports */
|
||||
static uint32_t enabled_port_mask;
|
||||
/**< Enable stats. */
|
||||
static uint32_t enable_stats;
|
||||
/**< Enable xstats. */
|
||||
static uint32_t enable_xstats;
|
||||
/**< Enable collectd format*/
|
||||
static uint32_t enable_collectd_format;
|
||||
/**< FD to send collectd format messages to STDOUT*/
|
||||
static int stdout_fd;
|
||||
/**< Host id process is running on */
|
||||
static char host_id[MAX_LONG_OPT_SZ];
|
||||
/**< Enable metrics. */
|
||||
static uint32_t enable_metrics;
|
||||
/**< Enable stats reset. */
|
||||
static uint32_t reset_stats;
|
||||
/**< Enable xstats reset. */
|
||||
static uint32_t reset_xstats;
|
||||
/**< Enable memory info. */
|
||||
static uint32_t mem_info;
|
||||
/**< Enable displaying xstat name. */
|
||||
static uint32_t enable_xstats_name;
|
||||
static char *xstats_name;
|
||||
|
||||
/**< Enable xstats by ids. */
|
||||
#define MAX_NB_XSTATS_IDS 1024
|
||||
static uint32_t nb_xstats_ids;
|
||||
static uint64_t xstats_ids[MAX_NB_XSTATS_IDS];
|
||||
|
||||
/**< display usage */
|
||||
static void
|
||||
proc_info_usage(const char *prgname)
|
||||
{
|
||||
printf("%s [EAL options] -- -p PORTMASK\n"
|
||||
" -m to display DPDK memory zones, segments and TAILQ information\n"
|
||||
" -p PORTMASK: hexadecimal bitmask of ports to retrieve stats for\n"
|
||||
" --stats: to display port statistics, enabled by default\n"
|
||||
" --xstats: to display extended port statistics, disabled by "
|
||||
"default\n"
|
||||
" --metrics: to display derived metrics of the ports, disabled by "
|
||||
"default\n"
|
||||
" --xstats-name NAME: to display single xstat id by NAME\n"
|
||||
" --xstats-ids IDLIST: to display xstat values by id. "
|
||||
"The argument is comma-separated list of xstat ids to print out.\n"
|
||||
" --stats-reset: to reset port statistics\n"
|
||||
" --xstats-reset: to reset port extended statistics\n"
|
||||
" --collectd-format: to print statistics to STDOUT in expected by collectd format\n"
|
||||
" --host-id STRING: host id used to identify the system process is running on\n",
|
||||
prgname);
|
||||
}
|
||||
|
||||
/*
|
||||
* Parse the portmask provided at run time.
|
||||
*/
|
||||
static int
|
||||
parse_portmask(const char *portmask)
|
||||
{
|
||||
char *end = NULL;
|
||||
unsigned long pm;
|
||||
|
||||
errno = 0;
|
||||
|
||||
/* parse hexadecimal string */
|
||||
pm = strtoul(portmask, &end, 16);
|
||||
if ((portmask[0] == '\0') || (end == NULL) || (*end != '\0') ||
|
||||
(errno != 0)) {
|
||||
printf("%s ERROR parsing the port mask\n", __func__);
|
||||
return -1;
|
||||
}
|
||||
|
||||
if (pm == 0)
|
||||
return -1;
|
||||
|
||||
return pm;
|
||||
|
||||
}
|
||||
|
||||
/*
|
||||
* Parse ids value list into array
|
||||
*/
|
||||
static int
|
||||
parse_xstats_ids(char *list, uint64_t *ids, int limit) {
|
||||
int length;
|
||||
char *token;
|
||||
char *ctx = NULL;
|
||||
char *endptr;
|
||||
|
||||
length = 0;
|
||||
token = strtok_r(list, ",", &ctx);
|
||||
while (token != NULL) {
|
||||
ids[length] = strtoull(token, &endptr, 10);
|
||||
if (*endptr != '\0')
|
||||
return -EINVAL;
|
||||
|
||||
length++;
|
||||
if (length >= limit)
|
||||
return -E2BIG;
|
||||
|
||||
token = strtok_r(NULL, ",", &ctx);
|
||||
}
|
||||
|
||||
return length;
|
||||
}
|
||||
|
||||
static int
|
||||
proc_info_preparse_args(int argc, char **argv)
|
||||
{
|
||||
char *prgname = argv[0];
|
||||
int i;
|
||||
|
||||
for (i = 0; i < argc; i++) {
|
||||
/* Print stats or xstats to STDOUT in collectd format */
|
||||
if (!strncmp(argv[i], "--collectd-format", MAX_LONG_OPT_SZ)) {
|
||||
enable_collectd_format = 1;
|
||||
stdout_fd = dup(STDOUT_FILENO);
|
||||
close(STDOUT_FILENO);
|
||||
}
|
||||
if (!strncmp(argv[i], "--host-id", MAX_LONG_OPT_SZ)) {
|
||||
if ((i + 1) == argc) {
|
||||
printf("Invalid host id or not specified\n");
|
||||
proc_info_usage(prgname);
|
||||
return -1;
|
||||
}
|
||||
snprintf(host_id, sizeof(host_id), "%s", argv[i+1]);
|
||||
}
|
||||
}
|
||||
|
||||
if (!strlen(host_id)) {
|
||||
int err = gethostname(host_id, MAX_LONG_OPT_SZ-1);
|
||||
|
||||
if (err)
|
||||
strcpy(host_id, "unknown");
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
/* Parse the argument given in the command line of the application */
|
||||
static int
|
||||
proc_info_parse_args(int argc, char **argv)
|
||||
{
|
||||
int opt;
|
||||
int option_index;
|
||||
char *prgname = argv[0];
|
||||
static struct option long_option[] = {
|
||||
{"stats", 0, NULL, 0},
|
||||
{"stats-reset", 0, NULL, 0},
|
||||
{"xstats", 0, NULL, 0},
|
||||
{"metrics", 0, NULL, 0},
|
||||
{"xstats-reset", 0, NULL, 0},
|
||||
{"xstats-name", required_argument, NULL, 1},
|
||||
{"collectd-format", 0, NULL, 0},
|
||||
{"xstats-ids", 1, NULL, 1},
|
||||
{"host-id", 0, NULL, 0},
|
||||
{NULL, 0, 0, 0}
|
||||
};
|
||||
|
||||
if (argc == 1)
|
||||
proc_info_usage(prgname);
|
||||
|
||||
/* Parse command line */
|
||||
while ((opt = getopt_long(argc, argv, "p:m",
|
||||
long_option, &option_index)) != EOF) {
|
||||
switch (opt) {
|
||||
/* portmask */
|
||||
case 'p':
|
||||
enabled_port_mask = parse_portmask(optarg);
|
||||
if (enabled_port_mask == 0) {
|
||||
printf("invalid portmask\n");
|
||||
proc_info_usage(prgname);
|
||||
return -1;
|
||||
}
|
||||
break;
|
||||
case 'm':
|
||||
mem_info = 1;
|
||||
break;
|
||||
case 0:
|
||||
/* Print stats */
|
||||
if (!strncmp(long_option[option_index].name, "stats",
|
||||
MAX_LONG_OPT_SZ))
|
||||
enable_stats = 1;
|
||||
/* Print xstats */
|
||||
else if (!strncmp(long_option[option_index].name, "xstats",
|
||||
MAX_LONG_OPT_SZ))
|
||||
enable_xstats = 1;
|
||||
else if (!strncmp(long_option[option_index].name,
|
||||
"metrics",
|
||||
MAX_LONG_OPT_SZ))
|
||||
enable_metrics = 1;
|
||||
/* Reset stats */
|
||||
if (!strncmp(long_option[option_index].name, "stats-reset",
|
||||
MAX_LONG_OPT_SZ))
|
||||
reset_stats = 1;
|
||||
/* Reset xstats */
|
||||
else if (!strncmp(long_option[option_index].name, "xstats-reset",
|
||||
MAX_LONG_OPT_SZ))
|
||||
reset_xstats = 1;
|
||||
break;
|
||||
case 1:
|
||||
/* Print xstat single value given by name*/
|
||||
if (!strncmp(long_option[option_index].name,
|
||||
"xstats-name", MAX_LONG_OPT_SZ)) {
|
||||
enable_xstats_name = 1;
|
||||
xstats_name = optarg;
|
||||
printf("name:%s:%s\n",
|
||||
long_option[option_index].name,
|
||||
optarg);
|
||||
} else if (!strncmp(long_option[option_index].name,
|
||||
"xstats-ids",
|
||||
MAX_LONG_OPT_SZ)) {
|
||||
nb_xstats_ids = parse_xstats_ids(optarg,
|
||||
xstats_ids, MAX_NB_XSTATS_IDS);
|
||||
|
||||
if (nb_xstats_ids <= 0) {
|
||||
printf("xstats-id list parse error.\n");
|
||||
return -1;
|
||||
}
|
||||
|
||||
}
|
||||
break;
|
||||
default:
|
||||
proc_info_usage(prgname);
|
||||
return -1;
|
||||
}
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
||||
static void
|
||||
meminfo_display(void)
|
||||
{
|
||||
printf("----------- MEMORY_SEGMENTS -----------\n");
|
||||
rte_dump_physmem_layout(stdout);
|
||||
printf("--------- END_MEMORY_SEGMENTS ---------\n");
|
||||
|
||||
printf("------------ MEMORY_ZONES -------------\n");
|
||||
rte_memzone_dump(stdout);
|
||||
printf("---------- END_MEMORY_ZONES -----------\n");
|
||||
|
||||
printf("------------- TAIL_QUEUES -------------\n");
|
||||
rte_dump_tailq(stdout);
|
||||
printf("---------- END_TAIL_QUEUES ------------\n");
|
||||
}
|
||||
|
||||
static void
|
||||
nic_stats_display(uint16_t port_id)
|
||||
{
|
||||
struct rte_eth_stats stats;
|
||||
uint8_t i;
|
||||
|
||||
static const char *nic_stats_border = "########################";
|
||||
|
||||
rte_eth_stats_get(port_id, &stats);
|
||||
printf("\n %s NIC statistics for port %-2d %s\n",
|
||||
nic_stats_border, port_id, nic_stats_border);
|
||||
|
||||
printf(" RX-packets: %-10"PRIu64" RX-errors: %-10"PRIu64
|
||||
" RX-bytes: %-10"PRIu64"\n", stats.ipackets, stats.ierrors,
|
||||
stats.ibytes);
|
||||
printf(" RX-nombuf: %-10"PRIu64"\n", stats.rx_nombuf);
|
||||
printf(" TX-packets: %-10"PRIu64" TX-errors: %-10"PRIu64
|
||||
" TX-bytes: %-10"PRIu64"\n", stats.opackets, stats.oerrors,
|
||||
stats.obytes);
|
||||
|
||||
printf("\n");
|
||||
for (i = 0; i < RTE_ETHDEV_QUEUE_STAT_CNTRS; i++) {
|
||||
printf(" Stats reg %2d RX-packets: %-10"PRIu64
|
||||
" RX-errors: %-10"PRIu64
|
||||
" RX-bytes: %-10"PRIu64"\n",
|
||||
i, stats.q_ipackets[i], stats.q_errors[i], stats.q_ibytes[i]);
|
||||
}
|
||||
|
||||
printf("\n");
|
||||
for (i = 0; i < RTE_ETHDEV_QUEUE_STAT_CNTRS; i++) {
|
||||
printf(" Stats reg %2d TX-packets: %-10"PRIu64
|
||||
" TX-bytes: %-10"PRIu64"\n",
|
||||
i, stats.q_opackets[i], stats.q_obytes[i]);
|
||||
}
|
||||
|
||||
printf(" %s############################%s\n",
|
||||
nic_stats_border, nic_stats_border);
|
||||
}
|
||||
|
||||
static void
|
||||
nic_stats_clear(uint16_t port_id)
|
||||
{
|
||||
printf("\n Clearing NIC stats for port %d\n", port_id);
|
||||
rte_eth_stats_reset(port_id);
|
||||
printf("\n NIC statistics for port %d cleared\n", port_id);
|
||||
}
|
||||
|
||||
static void collectd_resolve_cnt_type(char *cnt_type, size_t cnt_type_len,
|
||||
const char *cnt_name) {
|
||||
char *type_end = strrchr(cnt_name, '_');
|
||||
|
||||
if ((type_end != NULL) &&
|
||||
(strncmp(cnt_name, "rx_", strlen("rx_")) == 0)) {
|
||||
if (strncmp(type_end, "_errors", strlen("_errors")) == 0)
|
||||
strncpy(cnt_type, "if_rx_errors", cnt_type_len);
|
||||
else if (strncmp(type_end, "_dropped", strlen("_dropped")) == 0)
|
||||
strncpy(cnt_type, "if_rx_dropped", cnt_type_len);
|
||||
else if (strncmp(type_end, "_bytes", strlen("_bytes")) == 0)
|
||||
strncpy(cnt_type, "if_rx_octets", cnt_type_len);
|
||||
else if (strncmp(type_end, "_packets", strlen("_packets")) == 0)
|
||||
strncpy(cnt_type, "if_rx_packets", cnt_type_len);
|
||||
else if (strncmp(type_end, "_placement",
|
||||
strlen("_placement")) == 0)
|
||||
strncpy(cnt_type, "if_rx_errors", cnt_type_len);
|
||||
else if (strncmp(type_end, "_buff", strlen("_buff")) == 0)
|
||||
strncpy(cnt_type, "if_rx_errors", cnt_type_len);
|
||||
else
|
||||
/* Does not fit obvious type: use a more generic one */
|
||||
strncpy(cnt_type, "derive", cnt_type_len);
|
||||
} else if ((type_end != NULL) &&
|
||||
(strncmp(cnt_name, "tx_", strlen("tx_"))) == 0) {
|
||||
if (strncmp(type_end, "_errors", strlen("_errors")) == 0)
|
||||
strncpy(cnt_type, "if_tx_errors", cnt_type_len);
|
||||
else if (strncmp(type_end, "_dropped", strlen("_dropped")) == 0)
|
||||
strncpy(cnt_type, "if_tx_dropped", cnt_type_len);
|
||||
else if (strncmp(type_end, "_bytes", strlen("_bytes")) == 0)
|
||||
strncpy(cnt_type, "if_tx_octets", cnt_type_len);
|
||||
else if (strncmp(type_end, "_packets", strlen("_packets")) == 0)
|
||||
strncpy(cnt_type, "if_tx_packets", cnt_type_len);
|
||||
else
|
||||
/* Does not fit obvious type: use a more generic one */
|
||||
strncpy(cnt_type, "derive", cnt_type_len);
|
||||
} else if ((type_end != NULL) &&
|
||||
(strncmp(cnt_name, "flow_", strlen("flow_"))) == 0) {
|
||||
if (strncmp(type_end, "_filters", strlen("_filters")) == 0)
|
||||
strncpy(cnt_type, "operations", cnt_type_len);
|
||||
else if (strncmp(type_end, "_errors", strlen("_errors")) == 0)
|
||||
strncpy(cnt_type, "errors", cnt_type_len);
|
||||
else if (strncmp(type_end, "_filters", strlen("_filters")) == 0)
|
||||
strncpy(cnt_type, "filter_result", cnt_type_len);
|
||||
} else if ((type_end != NULL) &&
|
||||
(strncmp(cnt_name, "mac_", strlen("mac_"))) == 0) {
|
||||
if (strncmp(type_end, "_errors", strlen("_errors")) == 0)
|
||||
strncpy(cnt_type, "errors", cnt_type_len);
|
||||
} else {
|
||||
/* Does not fit obvious type, or strrchr error: */
|
||||
/* use a more generic type */
|
||||
strncpy(cnt_type, "derive", cnt_type_len);
|
||||
}
|
||||
}
|
||||
|
||||
static void
|
||||
nic_xstats_by_name_display(uint16_t port_id, char *name)
|
||||
{
|
||||
uint64_t id;
|
||||
|
||||
printf("###### NIC statistics for port %-2d, statistic name '%s':\n",
|
||||
port_id, name);
|
||||
|
||||
if (rte_eth_xstats_get_id_by_name(port_id, name, &id) == 0)
|
||||
printf("%s: %"PRIu64"\n", name, id);
|
||||
else
|
||||
printf("Statistic not found...\n");
|
||||
|
||||
}
|
||||
|
||||
static void
|
||||
nic_xstats_by_ids_display(uint16_t port_id, uint64_t *ids, int len)
|
||||
{
|
||||
struct rte_eth_xstat_name *xstats_names;
|
||||
uint64_t *values;
|
||||
int ret, i;
|
||||
static const char *nic_stats_border = "########################";
|
||||
|
||||
values = malloc(sizeof(*values) * len);
|
||||
if (values == NULL) {
|
||||
printf("Cannot allocate memory for xstats\n");
|
||||
return;
|
||||
}
|
||||
|
||||
xstats_names = malloc(sizeof(struct rte_eth_xstat_name) * len);
|
||||
if (xstats_names == NULL) {
|
||||
printf("Cannot allocate memory for xstat names\n");
|
||||
free(values);
|
||||
return;
|
||||
}
|
||||
|
||||
if (len != rte_eth_xstats_get_names_by_id(
|
||||
port_id, xstats_names, len, ids)) {
|
||||
printf("Cannot get xstat names\n");
|
||||
goto err;
|
||||
}
|
||||
|
||||
printf("###### NIC extended statistics for port %-2d #########\n",
|
||||
port_id);
|
||||
printf("%s############################\n", nic_stats_border);
|
||||
ret = rte_eth_xstats_get_by_id(port_id, ids, values, len);
|
||||
if (ret < 0 || ret > len) {
|
||||
printf("Cannot get xstats\n");
|
||||
goto err;
|
||||
}
|
||||
|
||||
for (i = 0; i < len; i++)
|
||||
printf("%s: %"PRIu64"\n",
|
||||
xstats_names[i].name,
|
||||
values[i]);
|
||||
|
||||
printf("%s############################\n", nic_stats_border);
|
||||
err:
|
||||
free(values);
|
||||
free(xstats_names);
|
||||
}
|
||||
|
||||
static void
|
||||
nic_xstats_display(uint16_t port_id)
|
||||
{
|
||||
struct rte_eth_xstat_name *xstats_names;
|
||||
uint64_t *values;
|
||||
int len, ret, i;
|
||||
static const char *nic_stats_border = "########################";
|
||||
|
||||
len = rte_eth_xstats_get_names_by_id(port_id, NULL, 0, NULL);
|
||||
if (len < 0) {
|
||||
printf("Cannot get xstats count\n");
|
||||
return;
|
||||
}
|
||||
values = malloc(sizeof(*values) * len);
|
||||
if (values == NULL) {
|
||||
printf("Cannot allocate memory for xstats\n");
|
||||
return;
|
||||
}
|
||||
|
||||
xstats_names = malloc(sizeof(struct rte_eth_xstat_name) * len);
|
||||
if (xstats_names == NULL) {
|
||||
printf("Cannot allocate memory for xstat names\n");
|
||||
free(values);
|
||||
return;
|
||||
}
|
||||
if (len != rte_eth_xstats_get_names_by_id(
|
||||
port_id, xstats_names, len, NULL)) {
|
||||
printf("Cannot get xstat names\n");
|
||||
goto err;
|
||||
}
|
||||
|
||||
printf("###### NIC extended statistics for port %-2d #########\n",
|
||||
port_id);
|
||||
printf("%s############################\n",
|
||||
nic_stats_border);
|
||||
ret = rte_eth_xstats_get_by_id(port_id, NULL, values, len);
|
||||
if (ret < 0 || ret > len) {
|
||||
printf("Cannot get xstats\n");
|
||||
goto err;
|
||||
}
|
||||
|
||||
for (i = 0; i < len; i++) {
|
||||
if (enable_collectd_format) {
|
||||
char counter_type[MAX_STRING_LEN];
|
||||
char buf[MAX_STRING_LEN];
|
||||
size_t n;
|
||||
|
||||
collectd_resolve_cnt_type(counter_type,
|
||||
sizeof(counter_type),
|
||||
xstats_names[i].name);
|
||||
n = snprintf(buf, MAX_STRING_LEN,
|
||||
"PUTVAL %s/dpdkstat-port.%u/%s-%s N:%"
|
||||
PRIu64"\n", host_id, port_id, counter_type,
|
||||
xstats_names[i].name, values[i]);
|
||||
if (n > sizeof(buf) - 1)
|
||||
n = sizeof(buf) - 1;
|
||||
ret = write(stdout_fd, buf, n);
|
||||
if (ret < 0)
|
||||
goto err;
|
||||
} else {
|
||||
printf("%s: %"PRIu64"\n", xstats_names[i].name,
|
||||
values[i]);
|
||||
}
|
||||
}
|
||||
|
||||
printf("%s############################\n",
|
||||
nic_stats_border);
|
||||
err:
|
||||
free(values);
|
||||
free(xstats_names);
|
||||
}
|
||||
|
||||
static void
|
||||
nic_xstats_clear(uint16_t port_id)
|
||||
{
|
||||
printf("\n Clearing NIC xstats for port %d\n", port_id);
|
||||
rte_eth_xstats_reset(port_id);
|
||||
printf("\n NIC extended statistics for port %d cleared\n", port_id);
|
||||
}
|
||||
|
||||
static void
|
||||
metrics_display(int port_id)
|
||||
{
|
||||
struct rte_metric_value *metrics;
|
||||
struct rte_metric_name *names;
|
||||
int len, ret;
|
||||
static const char *nic_stats_border = "########################";
|
||||
|
||||
len = rte_metrics_get_names(NULL, 0);
|
||||
if (len < 0) {
|
||||
printf("Cannot get metrics count\n");
|
||||
return;
|
||||
}
|
||||
if (len == 0) {
|
||||
printf("No metrics to display (none have been registered)\n");
|
||||
return;
|
||||
}
|
||||
|
||||
metrics = rte_malloc("proc_info_metrics",
|
||||
sizeof(struct rte_metric_value) * len, 0);
|
||||
if (metrics == NULL) {
|
||||
printf("Cannot allocate memory for metrics\n");
|
||||
return;
|
||||
}
|
||||
|
||||
names = rte_malloc(NULL, sizeof(struct rte_metric_name) * len, 0);
|
||||
if (names == NULL) {
|
||||
printf("Cannot allocate memory for metrcis names\n");
|
||||
rte_free(metrics);
|
||||
return;
|
||||
}
|
||||
|
||||
if (len != rte_metrics_get_names(names, len)) {
|
||||
printf("Cannot get metrics names\n");
|
||||
rte_free(metrics);
|
||||
rte_free(names);
|
||||
return;
|
||||
}
|
||||
|
||||
if (port_id == RTE_METRICS_GLOBAL)
|
||||
printf("###### Non port specific metrics #########\n");
|
||||
else
|
||||
printf("###### metrics for port %-2d #########\n", port_id);
|
||||
printf("%s############################\n", nic_stats_border);
|
||||
ret = rte_metrics_get_values(port_id, metrics, len);
|
||||
if (ret < 0 || ret > len) {
|
||||
printf("Cannot get metrics values\n");
|
||||
rte_free(metrics);
|
||||
rte_free(names);
|
||||
return;
|
||||
}
|
||||
|
||||
int i;
|
||||
for (i = 0; i < len; i++)
|
||||
printf("%s: %"PRIu64"\n", names[i].name, metrics[i].value);
|
||||
|
||||
printf("%s############################\n", nic_stats_border);
|
||||
rte_free(metrics);
|
||||
rte_free(names);
|
||||
}
|
||||
|
||||
int
|
||||
main(int argc, char **argv)
|
||||
{
|
||||
int ret;
|
||||
int i;
|
||||
char c_flag[] = "-c1";
|
||||
char n_flag[] = "-n4";
|
||||
char mp_flag[] = "--proc-type=secondary";
|
||||
char *argp[argc + 3];
|
||||
uint16_t nb_ports;
|
||||
|
||||
/* preparse app arguments */
|
||||
ret = proc_info_preparse_args(argc, argv);
|
||||
if (ret < 0) {
|
||||
printf("Failed to parse arguments\n");
|
||||
return -1;
|
||||
}
|
||||
|
||||
argp[0] = argv[0];
|
||||
argp[1] = c_flag;
|
||||
argp[2] = n_flag;
|
||||
argp[3] = mp_flag;
|
||||
|
||||
for (i = 1; i < argc; i++)
|
||||
argp[i + 3] = argv[i];
|
||||
|
||||
argc += 3;
|
||||
|
||||
ret = rte_eal_init(argc, argp);
|
||||
if (ret < 0)
|
||||
rte_panic("Cannot init EAL\n");
|
||||
|
||||
argc -= ret;
|
||||
argv += (ret - 3);
|
||||
|
||||
if (!rte_eal_primary_proc_alive(NULL))
|
||||
rte_exit(EXIT_FAILURE, "No primary DPDK process is running.\n");
|
||||
|
||||
/* parse app arguments */
|
||||
ret = proc_info_parse_args(argc, argv);
|
||||
if (ret < 0)
|
||||
rte_exit(EXIT_FAILURE, "Invalid argument\n");
|
||||
|
||||
if (mem_info) {
|
||||
meminfo_display();
|
||||
return 0;
|
||||
}
|
||||
|
||||
nb_ports = rte_eth_dev_count_avail();
|
||||
if (nb_ports == 0)
|
||||
rte_exit(EXIT_FAILURE, "No Ethernet ports - bye\n");
|
||||
|
||||
/* If no port mask was specified*/
|
||||
if (enabled_port_mask == 0)
|
||||
enabled_port_mask = 0xffff;
|
||||
|
||||
RTE_ETH_FOREACH_DEV(i) {
|
||||
if (enabled_port_mask & (1 << i)) {
|
||||
if (enable_stats)
|
||||
nic_stats_display(i);
|
||||
else if (enable_xstats)
|
||||
nic_xstats_display(i);
|
||||
else if (reset_stats)
|
||||
nic_stats_clear(i);
|
||||
else if (reset_xstats)
|
||||
nic_xstats_clear(i);
|
||||
else if (enable_xstats_name)
|
||||
nic_xstats_by_name_display(i, xstats_name);
|
||||
else if (nb_xstats_ids > 0)
|
||||
nic_xstats_by_ids_display(i, xstats_ids,
|
||||
nb_xstats_ids);
|
||||
else if (enable_metrics)
|
||||
metrics_display(i);
|
||||
}
|
||||
}
|
||||
|
||||
/* print port independent stats */
|
||||
if (enable_metrics)
|
||||
metrics_display(RTE_METRICS_GLOBAL);
|
||||
|
||||
ret = rte_eal_cleanup();
|
||||
if (ret)
|
||||
printf("Error from rte_eal_cleanup(), %d\n", ret);
|
||||
|
||||
return 0;
|
||||
}
|
|
@ -0,0 +1,6 @@
|
|||
# SPDX-License-Identifier: BSD-3-Clause
|
||||
# Copyright(c) 2018 Intel Corporation
|
||||
|
||||
sources = files('main.c')
|
||||
allow_experimental_apis = true
|
||||
deps += ['ethdev', 'metrics']
|
|
@ -1,42 +0,0 @@
|
|||
# BSD LICENSE
|
||||
#
|
||||
# Copyright(c) 2010-2015 Intel Corporation. All rights reserved.
|
||||
# All rights reserved.
|
||||
#
|
||||
# Redistribution and use in source and binary forms, with or without
|
||||
# modification, are permitted provided that the following conditions
|
||||
# are met:
|
||||
#
|
||||
# * Redistributions of source code must retain the above copyright
|
||||
# notice, this list of conditions and the following disclaimer.
|
||||
# * Redistributions in binary form must reproduce the above copyright
|
||||
# notice, this list of conditions and the following disclaimer in
|
||||
# the documentation and/or other materials provided with the
|
||||
# distribution.
|
||||
# * Neither the name of Intel Corporation nor the names of its
|
||||
# contributors may be used to endorse or promote products derived
|
||||
# from this software without specific prior written permission.
|
||||
#
|
||||
# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
|
||||
# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
|
||||
# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
|
||||
# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
|
||||
# OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
|
||||
# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
|
||||
# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
|
||||
# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
|
||||
# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
||||
# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
|
||||
# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
|
||||
include $(RTE_SDK)/mk/rte.vars.mk
|
||||
|
||||
APP = dpdk-procinfo
|
||||
|
||||
CFLAGS += $(WERROR_FLAGS)
|
||||
|
||||
# all source are stored in SRCS-y
|
||||
|
||||
SRCS-y := main.c
|
||||
|
||||
include $(RTE_SDK)/mk/rte.app.mk
|
|
@ -1,693 +0,0 @@
|
|||
/*
|
||||
* BSD LICENSE
|
||||
*
|
||||
* Copyright(c) 2010-2017 Intel Corporation. All rights reserved.
|
||||
* All rights reserved.
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
* modification, are permitted provided that the following conditions
|
||||
* are met:
|
||||
*
|
||||
* * Redistributions of source code must retain the above copyright
|
||||
* notice, this list of conditions and the following disclaimer.
|
||||
* * Redistributions in binary form must reproduce the above copyright
|
||||
* notice, this list of conditions and the following disclaimer in
|
||||
* the documentation and/or other materials provided with the
|
||||
* distribution.
|
||||
* * Neither the name of Intel Corporation nor the names of its
|
||||
* contributors may be used to endorse or promote products derived
|
||||
* from this software without specific prior written permission.
|
||||
*
|
||||
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
|
||||
* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
|
||||
* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
|
||||
* A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
|
||||
* OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
|
||||
* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
|
||||
* LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
|
||||
* DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
|
||||
* THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
||||
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
|
||||
* OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
*/
|
||||
|
||||
#include <stdio.h>
|
||||
#include <string.h>
|
||||
#include <stdint.h>
|
||||
#include <errno.h>
|
||||
#include <stdarg.h>
|
||||
#include <inttypes.h>
|
||||
#include <sys/queue.h>
|
||||
#include <stdlib.h>
|
||||
#include <getopt.h>
|
||||
#include <unistd.h>
|
||||
|
||||
#include <rte_eal.h>
|
||||
#include <rte_common.h>
|
||||
#include <rte_debug.h>
|
||||
#include <rte_ethdev.h>
|
||||
#include <rte_malloc.h>
|
||||
#include <rte_memory.h>
|
||||
#include <rte_memzone.h>
|
||||
#include <rte_launch.h>
|
||||
#include <rte_tailq.h>
|
||||
#include <rte_per_lcore.h>
|
||||
#include <rte_lcore.h>
|
||||
#include <rte_log.h>
|
||||
#include <rte_atomic.h>
|
||||
#include <rte_branch_prediction.h>
|
||||
#include <rte_string_fns.h>
|
||||
#include <rte_metrics.h>
|
||||
|
||||
/* Maximum long option length for option parsing. */
|
||||
#define MAX_LONG_OPT_SZ 64
|
||||
#define RTE_LOGTYPE_APP RTE_LOGTYPE_USER1
|
||||
|
||||
#define MAX_STRING_LEN 256
|
||||
|
||||
/**< mask of enabled ports */
|
||||
static uint32_t enabled_port_mask;
|
||||
/**< Enable stats. */
|
||||
static uint32_t enable_stats;
|
||||
/**< Enable xstats. */
|
||||
static uint32_t enable_xstats;
|
||||
/**< Enable collectd format*/
|
||||
static uint32_t enable_collectd_format;
|
||||
/**< FD to send collectd format messages to STDOUT*/
|
||||
static int stdout_fd;
|
||||
/**< Host id process is running on */
|
||||
static char host_id[MAX_LONG_OPT_SZ];
|
||||
/**< Enable metrics. */
|
||||
static uint32_t enable_metrics;
|
||||
/**< Enable stats reset. */
|
||||
static uint32_t reset_stats;
|
||||
/**< Enable xstats reset. */
|
||||
static uint32_t reset_xstats;
|
||||
/**< Enable memory info. */
|
||||
static uint32_t mem_info;
|
||||
/**< Enable displaying xstat name. */
|
||||
static uint32_t enable_xstats_name;
|
||||
static char *xstats_name;
|
||||
|
||||
/**< Enable xstats by ids. */
|
||||
#define MAX_NB_XSTATS_IDS 1024
|
||||
static uint32_t nb_xstats_ids;
|
||||
static uint64_t xstats_ids[MAX_NB_XSTATS_IDS];
|
||||
|
||||
/**< display usage */
|
||||
static void
|
||||
proc_info_usage(const char *prgname)
|
||||
{
|
||||
printf("%s [EAL options] -- -p PORTMASK\n"
|
||||
" -m to display DPDK memory zones, segments and TAILQ information\n"
|
||||
" -p PORTMASK: hexadecimal bitmask of ports to retrieve stats for\n"
|
||||
" --stats: to display port statistics, enabled by default\n"
|
||||
" --xstats: to display extended port statistics, disabled by "
|
||||
"default\n"
|
||||
" --metrics: to display derived metrics of the ports, disabled by "
|
||||
"default\n"
|
||||
" --xstats-name NAME: to display single xstat id by NAME\n"
|
||||
" --xstats-ids IDLIST: to display xstat values by id. "
|
||||
"The argument is comma-separated list of xstat ids to print out.\n"
|
||||
" --stats-reset: to reset port statistics\n"
|
||||
" --xstats-reset: to reset port extended statistics\n"
|
||||
" --collectd-format: to print statistics to STDOUT in expected by collectd format\n"
|
||||
" --host-id STRING: host id used to identify the system process is running on\n",
|
||||
prgname);
|
||||
}
|
||||
|
||||
/*
|
||||
* Parse the portmask provided at run time.
|
||||
*/
|
||||
static int
|
||||
parse_portmask(const char *portmask)
|
||||
{
|
||||
char *end = NULL;
|
||||
unsigned long pm;
|
||||
|
||||
errno = 0;
|
||||
|
||||
/* parse hexadecimal string */
|
||||
pm = strtoul(portmask, &end, 16);
|
||||
if ((portmask[0] == '\0') || (end == NULL) || (*end != '\0') ||
|
||||
(errno != 0)) {
|
||||
printf("%s ERROR parsing the port mask\n", __func__);
|
||||
return -1;
|
||||
}
|
||||
|
||||
if (pm == 0)
|
||||
return -1;
|
||||
|
||||
return pm;
|
||||
|
||||
}
|
||||
|
||||
/*
|
||||
* Parse ids value list into array
|
||||
*/
|
||||
static int
|
||||
parse_xstats_ids(char *list, uint64_t *ids, int limit) {
|
||||
int length;
|
||||
char *token;
|
||||
char *ctx = NULL;
|
||||
char *endptr;
|
||||
|
||||
length = 0;
|
||||
token = strtok_r(list, ",", &ctx);
|
||||
while (token != NULL) {
|
||||
ids[length] = strtoull(token, &endptr, 10);
|
||||
if (*endptr != '\0')
|
||||
return -EINVAL;
|
||||
|
||||
length++;
|
||||
if (length >= limit)
|
||||
return -E2BIG;
|
||||
|
||||
token = strtok_r(NULL, ",", &ctx);
|
||||
}
|
||||
|
||||
return length;
|
||||
}
|
||||
|
||||
static int
|
||||
proc_info_preparse_args(int argc, char **argv)
|
||||
{
|
||||
char *prgname = argv[0];
|
||||
int i;
|
||||
|
||||
for (i = 0; i < argc; i++) {
|
||||
/* Print stats or xstats to STDOUT in collectd format */
|
||||
if (!strncmp(argv[i], "--collectd-format", MAX_LONG_OPT_SZ)) {
|
||||
enable_collectd_format = 1;
|
||||
stdout_fd = dup(STDOUT_FILENO);
|
||||
close(STDOUT_FILENO);
|
||||
}
|
||||
if (!strncmp(argv[i], "--host-id", MAX_LONG_OPT_SZ)) {
|
||||
if ((i + 1) == argc) {
|
||||
printf("Invalid host id or not specified\n");
|
||||
proc_info_usage(prgname);
|
||||
return -1;
|
||||
}
|
||||
snprintf(host_id, sizeof(host_id), "%s", argv[i+1]);
|
||||
}
|
||||
}
|
||||
|
||||
if (!strlen(host_id)) {
|
||||
int err = gethostname(host_id, MAX_LONG_OPT_SZ-1);
|
||||
|
||||
if (err)
|
||||
strcpy(host_id, "unknown");
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
/* Parse the argument given in the command line of the application */
|
||||
static int
|
||||
proc_info_parse_args(int argc, char **argv)
|
||||
{
|
||||
int opt;
|
||||
int option_index;
|
||||
char *prgname = argv[0];
|
||||
static struct option long_option[] = {
|
||||
{"stats", 0, NULL, 0},
|
||||
{"stats-reset", 0, NULL, 0},
|
||||
{"xstats", 0, NULL, 0},
|
||||
{"metrics", 0, NULL, 0},
|
||||
{"xstats-reset", 0, NULL, 0},
|
||||
{"xstats-name", required_argument, NULL, 1},
|
||||
{"collectd-format", 0, NULL, 0},
|
||||
{"xstats-ids", 1, NULL, 1},
|
||||
{"host-id", 0, NULL, 0},
|
||||
{NULL, 0, 0, 0}
|
||||
};
|
||||
|
||||
if (argc == 1)
|
||||
proc_info_usage(prgname);
|
||||
|
||||
/* Parse command line */
|
||||
while ((opt = getopt_long(argc, argv, "p:m",
|
||||
long_option, &option_index)) != EOF) {
|
||||
switch (opt) {
|
||||
/* portmask */
|
||||
case 'p':
|
||||
enabled_port_mask = parse_portmask(optarg);
|
||||
if (enabled_port_mask == 0) {
|
||||
printf("invalid portmask\n");
|
||||
proc_info_usage(prgname);
|
||||
return -1;
|
||||
}
|
||||
break;
|
||||
case 'm':
|
||||
mem_info = 1;
|
||||
break;
|
||||
case 0:
|
||||
/* Print stats */
|
||||
if (!strncmp(long_option[option_index].name, "stats",
|
||||
MAX_LONG_OPT_SZ))
|
||||
enable_stats = 1;
|
||||
/* Print xstats */
|
||||
else if (!strncmp(long_option[option_index].name, "xstats",
|
||||
MAX_LONG_OPT_SZ))
|
||||
enable_xstats = 1;
|
||||
else if (!strncmp(long_option[option_index].name,
|
||||
"metrics",
|
||||
MAX_LONG_OPT_SZ))
|
||||
enable_metrics = 1;
|
||||
/* Reset stats */
|
||||
if (!strncmp(long_option[option_index].name, "stats-reset",
|
||||
MAX_LONG_OPT_SZ))
|
||||
reset_stats = 1;
|
||||
/* Reset xstats */
|
||||
else if (!strncmp(long_option[option_index].name, "xstats-reset",
|
||||
MAX_LONG_OPT_SZ))
|
||||
reset_xstats = 1;
|
||||
break;
|
||||
case 1:
|
||||
/* Print xstat single value given by name*/
|
||||
if (!strncmp(long_option[option_index].name,
|
||||
"xstats-name", MAX_LONG_OPT_SZ)) {
|
||||
enable_xstats_name = 1;
|
||||
xstats_name = optarg;
|
||||
printf("name:%s:%s\n",
|
||||
long_option[option_index].name,
|
||||
optarg);
|
||||
} else if (!strncmp(long_option[option_index].name,
|
||||
"xstats-ids",
|
||||
MAX_LONG_OPT_SZ)) {
|
||||
nb_xstats_ids = parse_xstats_ids(optarg,
|
||||
xstats_ids, MAX_NB_XSTATS_IDS);
|
||||
|
||||
if (nb_xstats_ids <= 0) {
|
||||
printf("xstats-id list parse error.\n");
|
||||
return -1;
|
||||
}
|
||||
|
||||
}
|
||||
break;
|
||||
default:
|
||||
proc_info_usage(prgname);
|
||||
return -1;
|
||||
}
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
||||
static void
|
||||
meminfo_display(void)
|
||||
{
|
||||
printf("----------- MEMORY_SEGMENTS -----------\n");
|
||||
rte_dump_physmem_layout(stdout);
|
||||
printf("--------- END_MEMORY_SEGMENTS ---------\n");
|
||||
|
||||
printf("------------ MEMORY_ZONES -------------\n");
|
||||
rte_memzone_dump(stdout);
|
||||
printf("---------- END_MEMORY_ZONES -----------\n");
|
||||
|
||||
printf("------------- TAIL_QUEUES -------------\n");
|
||||
rte_dump_tailq(stdout);
|
||||
printf("---------- END_TAIL_QUEUES ------------\n");
|
||||
}
|
||||
|
||||
static void
|
||||
nic_stats_display(uint16_t port_id)
|
||||
{
|
||||
struct rte_eth_stats stats;
|
||||
uint8_t i;
|
||||
|
||||
static const char *nic_stats_border = "########################";
|
||||
|
||||
rte_eth_stats_get(port_id, &stats);
|
||||
printf("\n %s NIC statistics for port %-2d %s\n",
|
||||
nic_stats_border, port_id, nic_stats_border);
|
||||
|
||||
printf(" RX-packets: %-10"PRIu64" RX-errors: %-10"PRIu64
|
||||
" RX-bytes: %-10"PRIu64"\n", stats.ipackets, stats.ierrors,
|
||||
stats.ibytes);
|
||||
printf(" RX-nombuf: %-10"PRIu64"\n", stats.rx_nombuf);
|
||||
printf(" TX-packets: %-10"PRIu64" TX-errors: %-10"PRIu64
|
||||
" TX-bytes: %-10"PRIu64"\n", stats.opackets, stats.oerrors,
|
||||
stats.obytes);
|
||||
|
||||
printf("\n");
|
||||
for (i = 0; i < RTE_ETHDEV_QUEUE_STAT_CNTRS; i++) {
|
||||
printf(" Stats reg %2d RX-packets: %-10"PRIu64
|
||||
" RX-errors: %-10"PRIu64
|
||||
" RX-bytes: %-10"PRIu64"\n",
|
||||
i, stats.q_ipackets[i], stats.q_errors[i], stats.q_ibytes[i]);
|
||||
}
|
||||
|
||||
printf("\n");
|
||||
for (i = 0; i < RTE_ETHDEV_QUEUE_STAT_CNTRS; i++) {
|
||||
printf(" Stats reg %2d TX-packets: %-10"PRIu64
|
||||
" TX-bytes: %-10"PRIu64"\n",
|
||||
i, stats.q_opackets[i], stats.q_obytes[i]);
|
||||
}
|
||||
|
||||
printf(" %s############################%s\n",
|
||||
nic_stats_border, nic_stats_border);
|
||||
}
|
||||
|
||||
static void
|
||||
nic_stats_clear(uint16_t port_id)
|
||||
{
|
||||
printf("\n Clearing NIC stats for port %d\n", port_id);
|
||||
rte_eth_stats_reset(port_id);
|
||||
printf("\n NIC statistics for port %d cleared\n", port_id);
|
||||
}
|
||||
|
||||
static void collectd_resolve_cnt_type(char *cnt_type, size_t cnt_type_len,
|
||||
const char *cnt_name) {
|
||||
char *type_end = strrchr(cnt_name, '_');
|
||||
|
||||
if ((type_end != NULL) &&
|
||||
(strncmp(cnt_name, "rx_", strlen("rx_")) == 0)) {
|
||||
if (strncmp(type_end, "_errors", strlen("_errors")) == 0)
|
||||
strncpy(cnt_type, "if_rx_errors", cnt_type_len);
|
||||
else if (strncmp(type_end, "_dropped", strlen("_dropped")) == 0)
|
||||
strncpy(cnt_type, "if_rx_dropped", cnt_type_len);
|
||||
else if (strncmp(type_end, "_bytes", strlen("_bytes")) == 0)
|
||||
strncpy(cnt_type, "if_rx_octets", cnt_type_len);
|
||||
else if (strncmp(type_end, "_packets", strlen("_packets")) == 0)
|
||||
strncpy(cnt_type, "if_rx_packets", cnt_type_len);
|
||||
else if (strncmp(type_end, "_placement",
|
||||
strlen("_placement")) == 0)
|
||||
strncpy(cnt_type, "if_rx_errors", cnt_type_len);
|
||||
else if (strncmp(type_end, "_buff", strlen("_buff")) == 0)
|
||||
strncpy(cnt_type, "if_rx_errors", cnt_type_len);
|
||||
else
|
||||
/* Does not fit obvious type: use a more generic one */
|
||||
strncpy(cnt_type, "derive", cnt_type_len);
|
||||
} else if ((type_end != NULL) &&
|
||||
(strncmp(cnt_name, "tx_", strlen("tx_"))) == 0) {
|
||||
if (strncmp(type_end, "_errors", strlen("_errors")) == 0)
|
||||
strncpy(cnt_type, "if_tx_errors", cnt_type_len);
|
||||
else if (strncmp(type_end, "_dropped", strlen("_dropped")) == 0)
|
||||
strncpy(cnt_type, "if_tx_dropped", cnt_type_len);
|
||||
else if (strncmp(type_end, "_bytes", strlen("_bytes")) == 0)
|
||||
strncpy(cnt_type, "if_tx_octets", cnt_type_len);
|
||||
else if (strncmp(type_end, "_packets", strlen("_packets")) == 0)
|
||||
strncpy(cnt_type, "if_tx_packets", cnt_type_len);
|
||||
else
|
||||
/* Does not fit obvious type: use a more generic one */
|
||||
strncpy(cnt_type, "derive", cnt_type_len);
|
||||
} else if ((type_end != NULL) &&
|
||||
(strncmp(cnt_name, "flow_", strlen("flow_"))) == 0) {
|
||||
if (strncmp(type_end, "_filters", strlen("_filters")) == 0)
|
||||
strncpy(cnt_type, "operations", cnt_type_len);
|
||||
else if (strncmp(type_end, "_errors", strlen("_errors")) == 0)
|
||||
strncpy(cnt_type, "errors", cnt_type_len);
|
||||
else if (strncmp(type_end, "_filters", strlen("_filters")) == 0)
|
||||
strncpy(cnt_type, "filter_result", cnt_type_len);
|
||||
} else if ((type_end != NULL) &&
|
||||
(strncmp(cnt_name, "mac_", strlen("mac_"))) == 0) {
|
||||
if (strncmp(type_end, "_errors", strlen("_errors")) == 0)
|
||||
strncpy(cnt_type, "errors", cnt_type_len);
|
||||
} else {
|
||||
/* Does not fit obvious type, or strrchr error: */
|
||||
/* use a more generic type */
|
||||
strncpy(cnt_type, "derive", cnt_type_len);
|
||||
}
|
||||
}
|
||||
|
||||
static void
|
||||
nic_xstats_by_name_display(uint16_t port_id, char *name)
|
||||
{
|
||||
uint64_t id;
|
||||
|
||||
printf("###### NIC statistics for port %-2d, statistic name '%s':\n",
|
||||
port_id, name);
|
||||
|
||||
if (rte_eth_xstats_get_id_by_name(port_id, name, &id) == 0)
|
||||
printf("%s: %"PRIu64"\n", name, id);
|
||||
else
|
||||
printf("Statistic not found...\n");
|
||||
|
||||
}
|
||||
|
||||
static void
|
||||
nic_xstats_by_ids_display(uint16_t port_id, uint64_t *ids, int len)
|
||||
{
|
||||
struct rte_eth_xstat_name *xstats_names;
|
||||
uint64_t *values;
|
||||
int ret, i;
|
||||
static const char *nic_stats_border = "########################";
|
||||
|
||||
values = malloc(sizeof(*values) * len);
|
||||
if (values == NULL) {
|
||||
printf("Cannot allocate memory for xstats\n");
|
||||
return;
|
||||
}
|
||||
|
||||
xstats_names = malloc(sizeof(struct rte_eth_xstat_name) * len);
|
||||
if (xstats_names == NULL) {
|
||||
printf("Cannot allocate memory for xstat names\n");
|
||||
free(values);
|
||||
return;
|
||||
}
|
||||
|
||||
if (len != rte_eth_xstats_get_names_by_id(
|
||||
port_id, xstats_names, len, ids)) {
|
||||
printf("Cannot get xstat names\n");
|
||||
goto err;
|
||||
}
|
||||
|
||||
printf("###### NIC extended statistics for port %-2d #########\n",
|
||||
port_id);
|
||||
printf("%s############################\n", nic_stats_border);
|
||||
ret = rte_eth_xstats_get_by_id(port_id, ids, values, len);
|
||||
if (ret < 0 || ret > len) {
|
||||
printf("Cannot get xstats\n");
|
||||
goto err;
|
||||
}
|
||||
|
||||
for (i = 0; i < len; i++)
|
||||
printf("%s: %"PRIu64"\n",
|
||||
xstats_names[i].name,
|
||||
values[i]);
|
||||
|
||||
printf("%s############################\n", nic_stats_border);
|
||||
err:
|
||||
free(values);
|
||||
free(xstats_names);
|
||||
}
|
||||
|
||||
static void
|
||||
nic_xstats_display(uint16_t port_id)
|
||||
{
|
||||
struct rte_eth_xstat_name *xstats_names;
|
||||
uint64_t *values;
|
||||
int len, ret, i;
|
||||
static const char *nic_stats_border = "########################";
|
||||
|
||||
len = rte_eth_xstats_get_names_by_id(port_id, NULL, 0, NULL);
|
||||
if (len < 0) {
|
||||
printf("Cannot get xstats count\n");
|
||||
return;
|
||||
}
|
||||
values = malloc(sizeof(*values) * len);
|
||||
if (values == NULL) {
|
||||
printf("Cannot allocate memory for xstats\n");
|
||||
return;
|
||||
}
|
||||
|
||||
xstats_names = malloc(sizeof(struct rte_eth_xstat_name) * len);
|
||||
if (xstats_names == NULL) {
|
||||
printf("Cannot allocate memory for xstat names\n");
|
||||
free(values);
|
||||
return;
|
||||
}
|
||||
if (len != rte_eth_xstats_get_names_by_id(
|
||||
port_id, xstats_names, len, NULL)) {
|
||||
printf("Cannot get xstat names\n");
|
||||
goto err;
|
||||
}
|
||||
|
||||
printf("###### NIC extended statistics for port %-2d #########\n",
|
||||
port_id);
|
||||
printf("%s############################\n",
|
||||
nic_stats_border);
|
||||
ret = rte_eth_xstats_get_by_id(port_id, NULL, values, len);
|
||||
if (ret < 0 || ret > len) {
|
||||
printf("Cannot get xstats\n");
|
||||
goto err;
|
||||
}
|
||||
|
||||
for (i = 0; i < len; i++) {
|
||||
if (enable_collectd_format) {
|
||||
char counter_type[MAX_STRING_LEN];
|
||||
char buf[MAX_STRING_LEN];
|
||||
|
||||
collectd_resolve_cnt_type(counter_type,
|
||||
sizeof(counter_type),
|
||||
xstats_names[i].name);
|
||||
sprintf(buf, "PUTVAL %s/dpdkstat-port.%u/%s-%s N:%"
|
||||
PRIu64"\n", host_id, port_id, counter_type,
|
||||
xstats_names[i].name, values[i]);
|
||||
ret = write(stdout_fd, buf, strlen(buf));
|
||||
if (ret < 0)
|
||||
goto err;
|
||||
} else {
|
||||
printf("%s: %"PRIu64"\n", xstats_names[i].name,
|
||||
values[i]);
|
||||
}
|
||||
}
|
||||
|
||||
printf("%s############################\n",
|
||||
nic_stats_border);
|
||||
err:
|
||||
free(values);
|
||||
free(xstats_names);
|
||||
}
|
||||
|
||||
static void
|
||||
nic_xstats_clear(uint16_t port_id)
|
||||
{
|
||||
printf("\n Clearing NIC xstats for port %d\n", port_id);
|
||||
rte_eth_xstats_reset(port_id);
|
||||
printf("\n NIC extended statistics for port %d cleared\n", port_id);
|
||||
}
|
||||
|
||||
static void
|
||||
metrics_display(int port_id)
|
||||
{
|
||||
struct rte_metric_value *metrics;
|
||||
struct rte_metric_name *names;
|
||||
int len, ret;
|
||||
static const char *nic_stats_border = "########################";
|
||||
|
||||
len = rte_metrics_get_names(NULL, 0);
|
||||
if (len < 0) {
|
||||
printf("Cannot get metrics count\n");
|
||||
return;
|
||||
}
|
||||
if (len == 0) {
|
||||
printf("No metrics to display (none have been registered)\n");
|
||||
return;
|
||||
}
|
||||
|
||||
metrics = rte_malloc("proc_info_metrics",
|
||||
sizeof(struct rte_metric_value) * len, 0);
|
||||
if (metrics == NULL) {
|
||||
printf("Cannot allocate memory for metrics\n");
|
||||
return;
|
||||
}
|
||||
|
||||
names = rte_malloc(NULL, sizeof(struct rte_metric_name) * len, 0);
|
||||
if (names == NULL) {
|
||||
printf("Cannot allocate memory for metrcis names\n");
|
||||
rte_free(metrics);
|
||||
return;
|
||||
}
|
||||
|
||||
if (len != rte_metrics_get_names(names, len)) {
|
||||
printf("Cannot get metrics names\n");
|
||||
rte_free(metrics);
|
||||
rte_free(names);
|
||||
return;
|
||||
}
|
||||
|
||||
if (port_id == RTE_METRICS_GLOBAL)
|
||||
printf("###### Non port specific metrics #########\n");
|
||||
else
|
||||
printf("###### metrics for port %-2d #########\n", port_id);
|
||||
printf("%s############################\n", nic_stats_border);
|
||||
ret = rte_metrics_get_values(port_id, metrics, len);
|
||||
if (ret < 0 || ret > len) {
|
||||
printf("Cannot get metrics values\n");
|
||||
rte_free(metrics);
|
||||
rte_free(names);
|
||||
return;
|
||||
}
|
||||
|
||||
int i;
|
||||
for (i = 0; i < len; i++)
|
||||
printf("%s: %"PRIu64"\n", names[i].name, metrics[i].value);
|
||||
|
||||
printf("%s############################\n", nic_stats_border);
|
||||
rte_free(metrics);
|
||||
rte_free(names);
|
||||
}
|
||||
|
||||
int
|
||||
main(int argc, char **argv)
|
||||
{
|
||||
int ret;
|
||||
int i;
|
||||
char c_flag[] = "-c1";
|
||||
char n_flag[] = "-n4";
|
||||
char mp_flag[] = "--proc-type=secondary";
|
||||
char *argp[argc + 3];
|
||||
uint16_t nb_ports;
|
||||
|
||||
/* preparse app arguments */
|
||||
ret = proc_info_preparse_args(argc, argv);
|
||||
if (ret < 0) {
|
||||
printf("Failed to parse arguments\n");
|
||||
return -1;
|
||||
}
|
||||
|
||||
argp[0] = argv[0];
|
||||
argp[1] = c_flag;
|
||||
argp[2] = n_flag;
|
||||
argp[3] = mp_flag;
|
||||
|
||||
for (i = 1; i < argc; i++)
|
||||
argp[i + 3] = argv[i];
|
||||
|
||||
argc += 3;
|
||||
|
||||
ret = rte_eal_init(argc, argp);
|
||||
if (ret < 0)
|
||||
rte_panic("Cannot init EAL\n");
|
||||
|
||||
argc -= ret;
|
||||
argv += (ret - 3);
|
||||
|
||||
if (!rte_eal_primary_proc_alive(NULL))
|
||||
rte_exit(EXIT_FAILURE, "No primary DPDK process is running.\n");
|
||||
|
||||
/* parse app arguments */
|
||||
ret = proc_info_parse_args(argc, argv);
|
||||
if (ret < 0)
|
||||
rte_exit(EXIT_FAILURE, "Invalid argument\n");
|
||||
|
||||
if (mem_info) {
|
||||
meminfo_display();
|
||||
return 0;
|
||||
}
|
||||
|
||||
nb_ports = rte_eth_dev_count();
|
||||
if (nb_ports == 0)
|
||||
rte_exit(EXIT_FAILURE, "No Ethernet ports - bye\n");
|
||||
|
||||
/* If no port mask was specified*/
|
||||
if (enabled_port_mask == 0)
|
||||
enabled_port_mask = 0xffff;
|
||||
|
||||
for (i = 0; i < nb_ports; i++) {
|
||||
if (enabled_port_mask & (1 << i)) {
|
||||
if (enable_stats)
|
||||
nic_stats_display(i);
|
||||
else if (enable_xstats)
|
||||
nic_xstats_display(i);
|
||||
else if (reset_stats)
|
||||
nic_stats_clear(i);
|
||||
else if (reset_xstats)
|
||||
nic_xstats_clear(i);
|
||||
else if (enable_xstats_name)
|
||||
nic_xstats_by_name_display(i, xstats_name);
|
||||
else if (nb_xstats_ids > 0)
|
||||
nic_xstats_by_ids_display(i, xstats_ids,
|
||||
nb_xstats_ids);
|
||||
else if (enable_metrics)
|
||||
metrics_display(i);
|
||||
}
|
||||
}
|
||||
|
||||
/* print port independent stats */
|
||||
if (enable_metrics)
|
||||
metrics_display(RTE_METRICS_GLOBAL);
|
||||
|
||||
return 0;
|
||||
}
|
|
@ -0,0 +1,25 @@
|
|||
# SPDX-License-Identifier: BSD-3-Clause
|
||||
# Copyright(c) 2017 Intel Corporation
|
||||
|
||||
include $(RTE_SDK)/mk/rte.vars.mk
|
||||
|
||||
#
|
||||
# library name
|
||||
#
|
||||
APP = testbbdev
|
||||
|
||||
CFLAGS += -DALLOW_EXPERIMENTAL_API
|
||||
CFLAGS += -O3
|
||||
CFLAGS += $(WERROR_FLAGS)
|
||||
|
||||
#
|
||||
# all sources are stored in SRCS-y
|
||||
#
|
||||
SRCS-$(CONFIG_RTE_TEST_BBDEV) += main.c
|
||||
SRCS-$(CONFIG_RTE_TEST_BBDEV) += test_bbdev.c
|
||||
SRCS-$(CONFIG_RTE_TEST_BBDEV) += test_bbdev_perf.c
|
||||
SRCS-$(CONFIG_RTE_TEST_BBDEV) += test_bbdev_vector.c
|
||||
|
||||
LDLIBS += -lm
|
||||
|
||||
include $(RTE_SDK)/mk/rte.app.mk
|
|
@ -0,0 +1,326 @@
|
|||
/* SPDX-License-Identifier: BSD-3-Clause
|
||||
* Copyright(c) 2017 Intel Corporation
|
||||
*/
|
||||
|
||||
#include <getopt.h>
|
||||
#include <inttypes.h>
|
||||
#include <stdio.h>
|
||||
#include <string.h>
|
||||
#include <stdbool.h>
|
||||
|
||||
#include <rte_eal.h>
|
||||
#include <rte_common.h>
|
||||
#include <rte_string_fns.h>
|
||||
#include <rte_cycles.h>
|
||||
#include <rte_lcore.h>
|
||||
|
||||
#include "main.h"
|
||||
|
||||
/* Defines how many testcases can be specified as cmdline args */
|
||||
#define MAX_CMDLINE_TESTCASES 8
|
||||
|
||||
static const char tc_sep = ',';
|
||||
|
||||
static struct test_params {
|
||||
struct test_command *test_to_run[MAX_CMDLINE_TESTCASES];
|
||||
unsigned int num_tests;
|
||||
unsigned int num_ops;
|
||||
unsigned int burst_sz;
|
||||
unsigned int num_lcores;
|
||||
char test_vector_filename[PATH_MAX];
|
||||
} test_params;
|
||||
|
||||
static struct test_commands_list commands_list =
|
||||
TAILQ_HEAD_INITIALIZER(commands_list);
|
||||
|
||||
void
|
||||
add_test_command(struct test_command *t)
|
||||
{
|
||||
TAILQ_INSERT_TAIL(&commands_list, t, next);
|
||||
}
|
||||
|
||||
int
|
||||
unit_test_suite_runner(struct unit_test_suite *suite)
|
||||
{
|
||||
int test_result = TEST_SUCCESS;
|
||||
unsigned int total = 0, skipped = 0, succeeded = 0, failed = 0;
|
||||
uint64_t start, end;
|
||||
|
||||
printf(
|
||||
"\n + ------------------------------------------------------- +\n");
|
||||
printf(" + Starting Test Suite : %s\n", suite->suite_name);
|
||||
|
||||
start = rte_rdtsc_precise();
|
||||
|
||||
if (suite->setup) {
|
||||
test_result = suite->setup();
|
||||
if (test_result == TEST_FAILED) {
|
||||
printf(" + Test suite setup %s failed!\n",
|
||||
suite->suite_name);
|
||||
printf(
|
||||
" + ------------------------------------------------------- +\n");
|
||||
return 1;
|
||||
}
|
||||
if (test_result == TEST_SKIPPED) {
|
||||
printf(" + Test suite setup %s skipped!\n",
|
||||
suite->suite_name);
|
||||
printf(
|
||||
" + ------------------------------------------------------- +\n");
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
|
||||
while (suite->unit_test_cases[total].testcase) {
|
||||
if (suite->unit_test_cases[total].setup)
|
||||
test_result = suite->unit_test_cases[total].setup();
|
||||
|
||||
if (test_result == TEST_SUCCESS)
|
||||
test_result = suite->unit_test_cases[total].testcase();
|
||||
|
||||
if (suite->unit_test_cases[total].teardown)
|
||||
suite->unit_test_cases[total].teardown();
|
||||
|
||||
if (test_result == TEST_SUCCESS) {
|
||||
succeeded++;
|
||||
printf(" + TestCase [%2d] : %s passed\n", total,
|
||||
suite->unit_test_cases[total].name);
|
||||
} else if (test_result == TEST_SKIPPED) {
|
||||
skipped++;
|
||||
printf(" + TestCase [%2d] : %s skipped\n", total,
|
||||
suite->unit_test_cases[total].name);
|
||||
} else {
|
||||
failed++;
|
||||
printf(" + TestCase [%2d] : %s failed\n", total,
|
||||
suite->unit_test_cases[total].name);
|
||||
}
|
||||
|
||||
total++;
|
||||
}
|
||||
|
||||
/* Run test suite teardown */
|
||||
if (suite->teardown)
|
||||
suite->teardown();
|
||||
|
||||
end = rte_rdtsc_precise();
|
||||
|
||||
printf(" + ------------------------------------------------------- +\n");
|
||||
printf(" + Test Suite Summary : %s\n", suite->suite_name);
|
||||
printf(" + Tests Total : %2d\n", total);
|
||||
printf(" + Tests Skipped : %2d\n", skipped);
|
||||
printf(" + Tests Passed : %2d\n", succeeded);
|
||||
printf(" + Tests Failed : %2d\n", failed);
|
||||
printf(" + Tests Lasted : %lg ms\n",
|
||||
((end - start) * 1000) / (double)rte_get_tsc_hz());
|
||||
printf(" + ------------------------------------------------------- +\n");
|
||||
|
||||
return (failed > 0) ? 1 : 0;
|
||||
}
|
||||
|
||||
const char *
|
||||
get_vector_filename(void)
|
||||
{
|
||||
return test_params.test_vector_filename;
|
||||
}
|
||||
|
||||
unsigned int
|
||||
get_num_ops(void)
|
||||
{
|
||||
return test_params.num_ops;
|
||||
}
|
||||
|
||||
unsigned int
|
||||
get_burst_sz(void)
|
||||
{
|
||||
return test_params.burst_sz;
|
||||
}
|
||||
|
||||
unsigned int
|
||||
get_num_lcores(void)
|
||||
{
|
||||
return test_params.num_lcores;
|
||||
}
|
||||
|
||||
static void
|
||||
print_usage(const char *prog_name)
|
||||
{
|
||||
struct test_command *t;
|
||||
|
||||
printf("Usage: %s [EAL params] [-- [-n/--num-ops NUM_OPS]\n"
|
||||
"\t[-b/--burst-size BURST_SIZE]\n"
|
||||
"\t[-v/--test-vector VECTOR_FILE]\n"
|
||||
"\t[-c/--test-cases TEST_CASE[,TEST_CASE,...]]]\n",
|
||||
prog_name);
|
||||
|
||||
printf("Available testcases: ");
|
||||
TAILQ_FOREACH(t, &commands_list, next)
|
||||
printf("%s ", t->command);
|
||||
printf("\n");
|
||||
}
|
||||
|
||||
static int
|
||||
parse_args(int argc, char **argv, struct test_params *tp)
|
||||
{
|
||||
int opt, option_index;
|
||||
unsigned int num_tests = 0;
|
||||
bool test_cases_present = false;
|
||||
bool test_vector_present = false;
|
||||
struct test_command *t;
|
||||
char *tokens[MAX_CMDLINE_TESTCASES];
|
||||
int tc, ret;
|
||||
|
||||
static struct option lgopts[] = {
|
||||
{ "num-ops", 1, 0, 'n' },
|
||||
{ "burst-size", 1, 0, 'b' },
|
||||
{ "test-cases", 1, 0, 'c' },
|
||||
{ "test-vector", 1, 0, 'v' },
|
||||
{ "lcores", 1, 0, 'l' },
|
||||
{ "help", 0, 0, 'h' },
|
||||
{ NULL, 0, 0, 0 }
|
||||
};
|
||||
|
||||
while ((opt = getopt_long(argc, argv, "hn:b:c:v:l:", lgopts,
|
||||
&option_index)) != EOF)
|
||||
switch (opt) {
|
||||
case 'n':
|
||||
TEST_ASSERT(strlen(optarg) > 0,
|
||||
"Num of operations is not provided");
|
||||
tp->num_ops = strtol(optarg, NULL, 10);
|
||||
break;
|
||||
case 'b':
|
||||
TEST_ASSERT(strlen(optarg) > 0,
|
||||
"Burst size is not provided");
|
||||
tp->burst_sz = strtol(optarg, NULL, 10);
|
||||
TEST_ASSERT(tp->burst_sz <= MAX_BURST,
|
||||
"Burst size mustn't be greater than %u",
|
||||
MAX_BURST);
|
||||
break;
|
||||
case 'c':
|
||||
TEST_ASSERT(test_cases_present == false,
|
||||
"Test cases provided more than once");
|
||||
test_cases_present = true;
|
||||
|
||||
ret = rte_strsplit(optarg, strlen(optarg),
|
||||
tokens, MAX_CMDLINE_TESTCASES, tc_sep);
|
||||
|
||||
TEST_ASSERT(ret <= MAX_CMDLINE_TESTCASES,
|
||||
"Too many test cases (max=%d)",
|
||||
MAX_CMDLINE_TESTCASES);
|
||||
|
||||
for (tc = 0; tc < ret; ++tc) {
|
||||
/* Find matching test case */
|
||||
TAILQ_FOREACH(t, &commands_list, next)
|
||||
if (!strcmp(tokens[tc], t->command))
|
||||
tp->test_to_run[num_tests] = t;
|
||||
|
||||
TEST_ASSERT(tp->test_to_run[num_tests] != NULL,
|
||||
"Unknown test case: %s",
|
||||
tokens[tc]);
|
||||
++num_tests;
|
||||
}
|
||||
break;
|
||||
case 'v':
|
||||
TEST_ASSERT(test_vector_present == false,
|
||||
"Test vector provided more than once");
|
||||
test_vector_present = true;
|
||||
|
||||
TEST_ASSERT(strlen(optarg) > 0,
|
||||
"Config file name is null");
|
||||
|
||||
snprintf(tp->test_vector_filename,
|
||||
sizeof(tp->test_vector_filename),
|
||||
"%s", optarg);
|
||||
break;
|
||||
case 'l':
|
||||
TEST_ASSERT(strlen(optarg) > 0,
|
||||
"Num of lcores is not provided");
|
||||
tp->num_lcores = strtol(optarg, NULL, 10);
|
||||
TEST_ASSERT(tp->num_lcores <= RTE_MAX_LCORE,
|
||||
"Num of lcores mustn't be greater than %u",
|
||||
RTE_MAX_LCORE);
|
||||
break;
|
||||
case 'h':
|
||||
print_usage(argv[0]);
|
||||
return 0;
|
||||
default:
|
||||
printf("ERROR: Unknown option: -%c\n", opt);
|
||||
return -1;
|
||||
}
|
||||
|
||||
if (tp->num_ops == 0) {
|
||||
printf(
|
||||
"WARNING: Num of operations was not provided or was set 0. Set to default (%u)\n",
|
||||
DEFAULT_OPS);
|
||||
tp->num_ops = DEFAULT_OPS;
|
||||
}
|
||||
if (tp->burst_sz == 0) {
|
||||
printf(
|
||||
"WARNING: Burst size was not provided or was set 0. Set to default (%u)\n",
|
||||
DEFAULT_BURST);
|
||||
tp->burst_sz = DEFAULT_BURST;
|
||||
}
|
||||
if (tp->num_lcores == 0) {
|
||||
printf(
|
||||
"WARNING: Num of lcores was not provided or was set 0. Set to value from RTE config (%u)\n",
|
||||
rte_lcore_count());
|
||||
tp->num_lcores = rte_lcore_count();
|
||||
}
|
||||
|
||||
TEST_ASSERT(tp->burst_sz <= tp->num_ops,
|
||||
"Burst size (%u) mustn't be greater than num ops (%u)",
|
||||
tp->burst_sz, tp->num_ops);
|
||||
|
||||
tp->num_tests = num_tests;
|
||||
return 0;
|
||||
}
|
||||
|
||||
static int
|
||||
run_all_tests(void)
|
||||
{
|
||||
int ret = TEST_SUCCESS;
|
||||
struct test_command *t;
|
||||
|
||||
TAILQ_FOREACH(t, &commands_list, next)
|
||||
ret |= t->callback();
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
||||
static int
|
||||
run_parsed_tests(struct test_params *tp)
|
||||
{
|
||||
int ret = TEST_SUCCESS;
|
||||
unsigned int i;
|
||||
|
||||
for (i = 0; i < tp->num_tests; ++i)
|
||||
ret |= tp->test_to_run[i]->callback();
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
||||
int
|
||||
main(int argc, char **argv)
|
||||
{
|
||||
int ret;
|
||||
|
||||
/* Init EAL */
|
||||
ret = rte_eal_init(argc, argv);
|
||||
if (ret < 0)
|
||||
return 1;
|
||||
argc -= ret;
|
||||
argv += ret;
|
||||
|
||||
/* Parse application arguments (after the EAL ones) */
|
||||
ret = parse_args(argc, argv, &test_params);
|
||||
if (ret < 0) {
|
||||
print_usage(argv[0]);
|
||||
return 1;
|
||||
}
|
||||
|
||||
rte_log_set_global_level(RTE_LOG_INFO);
|
||||
|
||||
/* If no argument provided - run all tests */
|
||||
if (test_params.num_tests == 0)
|
||||
return run_all_tests();
|
||||
else
|
||||
return run_parsed_tests(&test_params);
|
||||
}
|
|
@ -0,0 +1,120 @@
|
|||
/* SPDX-License-Identifier: BSD-3-Clause
|
||||
* Copyright(c) 2017 Intel Corporation
|
||||
*/
|
||||
|
||||
#ifndef _MAIN_H_
|
||||
#define _MAIN_H_
|
||||
|
||||
#include <stddef.h>
|
||||
#include <sys/queue.h>
|
||||
|
||||
#include <rte_common.h>
|
||||
#include <rte_hexdump.h>
|
||||
#include <rte_log.h>
|
||||
|
||||
#define TEST_SUCCESS 0
|
||||
#define TEST_FAILED -1
|
||||
#define TEST_SKIPPED 1
|
||||
|
||||
#define MAX_BURST 512U
|
||||
#define DEFAULT_BURST 32U
|
||||
#define DEFAULT_OPS 64U
|
||||
|
||||
#define TEST_ASSERT(cond, msg, ...) do { \
|
||||
if (!(cond)) { \
|
||||
printf("TestCase %s() line %d failed: " \
|
||||
msg "\n", __func__, __LINE__, ##__VA_ARGS__); \
|
||||
return TEST_FAILED; \
|
||||
} \
|
||||
} while (0)
|
||||
|
||||
/* Compare two buffers (length in bytes) */
|
||||
#define TEST_ASSERT_BUFFERS_ARE_EQUAL(a, b, len, msg, ...) do { \
|
||||
if (memcmp((a), (b), len)) { \
|
||||
printf("TestCase %s() line %d failed: " \
|
||||
msg "\n", __func__, __LINE__, ##__VA_ARGS__); \
|
||||
rte_memdump(stdout, "Buffer A", (a), len); \
|
||||
rte_memdump(stdout, "Buffer B", (b), len); \
|
||||
return TEST_FAILED; \
|
||||
} \
|
||||
} while (0)
|
||||
|
||||
#define TEST_ASSERT_SUCCESS(val, msg, ...) do { \
|
||||
typeof(val) _val = (val); \
|
||||
if (!(_val == 0)) { \
|
||||
printf("TestCase %s() line %d failed (err %d): " \
|
||||
msg "\n", __func__, __LINE__, _val, \
|
||||
##__VA_ARGS__); \
|
||||
return TEST_FAILED; \
|
||||
} \
|
||||
} while (0)
|
||||
|
||||
#define TEST_ASSERT_FAIL(val, msg, ...) \
|
||||
TEST_ASSERT_SUCCESS(!(val), msg, ##__VA_ARGS__)
|
||||
|
||||
#define TEST_ASSERT_NOT_NULL(val, msg, ...) do { \
|
||||
if ((val) == NULL) { \
|
||||
printf("TestCase %s() line %d failed (null): " \
|
||||
msg "\n", __func__, __LINE__, ##__VA_ARGS__); \
|
||||
return TEST_FAILED; \
|
||||
} \
|
||||
} while (0)
|
||||
|
||||
struct unit_test_case {
|
||||
int (*setup)(void);
|
||||
void (*teardown)(void);
|
||||
int (*testcase)(void);
|
||||
const char *name;
|
||||
};
|
||||
|
||||
#define TEST_CASE(testcase) {NULL, NULL, testcase, #testcase}
|
||||
|
||||
#define TEST_CASE_ST(setup, teardown, testcase) \
|
||||
{setup, teardown, testcase, #testcase}
|
||||
|
||||
#define TEST_CASES_END() {NULL, NULL, NULL, NULL}
|
||||
|
||||
struct unit_test_suite {
|
||||
const char *suite_name;
|
||||
int (*setup)(void);
|
||||
void (*teardown)(void);
|
||||
struct unit_test_case unit_test_cases[];
|
||||
};
|
||||
|
||||
int unit_test_suite_runner(struct unit_test_suite *suite);
|
||||
|
||||
typedef int (test_callback)(void);
|
||||
TAILQ_HEAD(test_commands_list, test_command);
|
||||
struct test_command {
|
||||
TAILQ_ENTRY(test_command) next;
|
||||
const char *command;
|
||||
test_callback *callback;
|
||||
};
|
||||
|
||||
void add_test_command(struct test_command *t);
|
||||
|
||||
/* Register a test function */
|
||||
#define REGISTER_TEST_COMMAND(name, testsuite) \
|
||||
static int test_func_##name(void) \
|
||||
{ \
|
||||
return unit_test_suite_runner(&testsuite); \
|
||||
} \
|
||||
static struct test_command test_struct_##name = { \
|
||||
.command = RTE_STR(name), \
|
||||
.callback = test_func_##name, \
|
||||
}; \
|
||||
static void __attribute__((constructor, used)) \
|
||||
test_register_##name(void) \
|
||||
{ \
|
||||
add_test_command(&test_struct_##name); \
|
||||
}
|
||||
|
||||
const char *get_vector_filename(void);
|
||||
|
||||
unsigned int get_num_ops(void);
|
||||
|
||||
unsigned int get_burst_sz(void);
|
||||
|
||||
unsigned int get_num_lcores(void);
|
||||
|
||||
#endif
|
|
@ -0,0 +1,9 @@
|
|||
# SPDX-License-Identifier: BSD-3-Clause
|
||||
# Copyright(c) 2018 Intel Corporation
|
||||
|
||||
sources = files('main.c',
|
||||
'test_bbdev.c',
|
||||
'test_bbdev_perf.c',
|
||||
'test_bbdev_vector.c')
|
||||
allow_experimental_apis = true
|
||||
deps += ['bbdev', 'bus_vdev']
|
|
@ -0,0 +1,111 @@
|
|||
#!/usr/bin/env python
|
||||
|
||||
# SPDX-License-Identifier: BSD-3-Clause
|
||||
# Copyright(c) 2017 Intel Corporation
|
||||
|
||||
import sys
|
||||
import os
|
||||
import argparse
|
||||
import subprocess
|
||||
import shlex
|
||||
|
||||
from threading import Timer
|
||||
|
||||
def kill(process):
|
||||
print "ERROR: Test app timed out"
|
||||
process.kill()
|
||||
|
||||
if "RTE_SDK" in os.environ:
|
||||
dpdk_path = os.environ["RTE_SDK"]
|
||||
else:
|
||||
dpdk_path = "../.."
|
||||
|
||||
if "RTE_TARGET" in os.environ:
|
||||
dpdk_target = os.environ["RTE_TARGET"]
|
||||
else:
|
||||
dpdk_target = "x86_64-native-linuxapp-gcc"
|
||||
|
||||
parser = argparse.ArgumentParser(
|
||||
description='BBdev Unit Test Application',
|
||||
formatter_class=argparse.ArgumentDefaultsHelpFormatter)
|
||||
parser.add_argument("-p", "--testapp-path",
|
||||
help="specifies path to the bbdev test app",
|
||||
default=dpdk_path + "/" + dpdk_target + "/app/testbbdev")
|
||||
parser.add_argument("-e", "--eal-params",
|
||||
help="EAL arguments which are passed to the test app",
|
||||
default="--vdev=baseband_null0")
|
||||
parser.add_argument("-t", "--timeout",
|
||||
type=int,
|
||||
help="Timeout in seconds",
|
||||
default=300)
|
||||
parser.add_argument("-c", "--test-cases",
|
||||
nargs="+",
|
||||
help="Defines test cases to run. Run all if not specified")
|
||||
parser.add_argument("-v", "--test-vector",
|
||||
nargs="+",
|
||||
help="Specifies paths to the test vector files.",
|
||||
default=[dpdk_path +
|
||||
"/app/test-bbdev/test_vectors/bbdev_null.data"])
|
||||
parser.add_argument("-n", "--num-ops",
|
||||
type=int,
|
||||
help="Number of operations to process on device.",
|
||||
default=32)
|
||||
parser.add_argument("-b", "--burst-size",
|
||||
nargs="+",
|
||||
type=int,
|
||||
help="Operations enqueue/dequeue burst size.",
|
||||
default=[32])
|
||||
parser.add_argument("-l", "--num-lcores",
|
||||
type=int,
|
||||
help="Number of lcores to run.",
|
||||
default=16)
|
||||
|
||||
args = parser.parse_args()
|
||||
|
||||
if not os.path.exists(args.testapp_path):
|
||||
print "No such file: " + args.testapp_path
|
||||
sys.exit(1)
|
||||
|
||||
params = [args.testapp_path]
|
||||
if args.eal_params:
|
||||
params.extend(shlex.split(args.eal_params))
|
||||
|
||||
params.extend(["--"])
|
||||
|
||||
if args.num_ops:
|
||||
params.extend(["-n", str(args.num_ops)])
|
||||
|
||||
if args.num_lcores:
|
||||
params.extend(["-l", str(args.num_lcores)])
|
||||
|
||||
if args.test_cases:
|
||||
params.extend(["-c"])
|
||||
params.extend([",".join(args.test_cases)])
|
||||
|
||||
exit_status = 0
|
||||
for vector in args.test_vector:
|
||||
for burst_size in args.burst_size:
|
||||
call_params = params[:]
|
||||
call_params.extend(["-v", vector])
|
||||
call_params.extend(["-b", str(burst_size)])
|
||||
params_string = " ".join(call_params)
|
||||
|
||||
print("Executing: {}".format(params_string))
|
||||
app_proc = subprocess.Popen(call_params)
|
||||
if args.timeout > 0:
|
||||
timer = Timer(args.timeout, kill, [app_proc])
|
||||
timer.start()
|
||||
|
||||
try:
|
||||
app_proc.communicate()
|
||||
except:
|
||||
print("Error: failed to execute: {}".format(params_string))
|
||||
finally:
|
||||
timer.cancel()
|
||||
|
||||
if app_proc.returncode != 0:
|
||||
exit_status = 1
|
||||
print("ERROR TestCase failed. Failed test for vector {}. Return code: {}".format(
|
||||
vector, app_proc.returncode))
|
||||
|
||||
sys.exit(exit_status)
|
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
|
@ -0,0 +1,939 @@
|
|||
/* SPDX-License-Identifier: BSD-3-Clause
|
||||
* Copyright(c) 2017 Intel Corporation
|
||||
*/
|
||||
|
||||
#ifdef RTE_EXEC_ENV_BSDAPP
|
||||
#define _WITH_GETLINE
|
||||
#endif
|
||||
#include <stdio.h>
|
||||
#include <stdbool.h>
|
||||
#include <rte_malloc.h>
|
||||
|
||||
#include "test_bbdev_vector.h"
|
||||
|
||||
#define VALUE_DELIMITER ","
|
||||
#define ENTRY_DELIMITER "="
|
||||
|
||||
const char *op_data_prefixes[] = {
|
||||
"input",
|
||||
"soft_output",
|
||||
"hard_output",
|
||||
};
|
||||
|
||||
/* trim leading and trailing spaces */
|
||||
static void
|
||||
trim_space(char *str)
|
||||
{
|
||||
char *start, *end;
|
||||
|
||||
for (start = str; *start; start++) {
|
||||
if (!isspace((unsigned char) start[0]))
|
||||
break;
|
||||
}
|
||||
|
||||
for (end = start + strlen(start); end > start + 1; end--) {
|
||||
if (!isspace((unsigned char) end[-1]))
|
||||
break;
|
||||
}
|
||||
|
||||
*end = 0;
|
||||
|
||||
/* Shift from "start" to the beginning of the string */
|
||||
if (start > str)
|
||||
memmove(str, start, (end - start) + 1);
|
||||
}
|
||||
|
||||
static bool
|
||||
starts_with(const char *str, const char *pre)
|
||||
{
|
||||
return strncmp(pre, str, strlen(pre)) == 0;
|
||||
}
|
||||
|
||||
/* tokenization test values separated by a comma */
|
||||
static int
|
||||
parse_values(char *tokens, uint32_t **data, uint32_t *data_length)
|
||||
{
|
||||
uint32_t n_tokens = 0;
|
||||
uint32_t data_size = 32;
|
||||
|
||||
uint32_t *values, *values_resized;
|
||||
char *tok, *error = NULL;
|
||||
|
||||
tok = strtok(tokens, VALUE_DELIMITER);
|
||||
if (tok == NULL)
|
||||
return -1;
|
||||
|
||||
values = (uint32_t *)
|
||||
rte_zmalloc(NULL, sizeof(uint32_t) * data_size, 0);
|
||||
if (values == NULL)
|
||||
return -1;
|
||||
|
||||
while (tok != NULL) {
|
||||
values_resized = NULL;
|
||||
|
||||
if (n_tokens >= data_size) {
|
||||
data_size *= 2;
|
||||
|
||||
values_resized = (uint32_t *) rte_realloc(values,
|
||||
sizeof(uint32_t) * data_size, 0);
|
||||
if (values_resized == NULL) {
|
||||
rte_free(values);
|
||||
return -1;
|
||||
}
|
||||
values = values_resized;
|
||||
}
|
||||
|
||||
values[n_tokens] = (uint32_t) strtoul(tok, &error, 0);
|
||||
if ((error == NULL) || (*error != '\0')) {
|
||||
printf("Failed with convert '%s'\n", tok);
|
||||
rte_free(values);
|
||||
return -1;
|
||||
}
|
||||
|
||||
*data_length = *data_length + (strlen(tok) - strlen("0x"))/2;
|
||||
|
||||
tok = strtok(NULL, VALUE_DELIMITER);
|
||||
if (tok == NULL)
|
||||
break;
|
||||
|
||||
n_tokens++;
|
||||
}
|
||||
|
||||
values_resized = (uint32_t *) rte_realloc(values,
|
||||
sizeof(uint32_t) * (n_tokens + 1), 0);
|
||||
|
||||
if (values_resized == NULL) {
|
||||
rte_free(values);
|
||||
return -1;
|
||||
}
|
||||
|
||||
*data = values_resized;
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
/* convert turbo decoder flag from string to unsigned long int*/
|
||||
static int
|
||||
op_decoder_flag_strtoul(char *token, uint32_t *op_flag_value)
|
||||
{
|
||||
if (!strcmp(token, "RTE_BBDEV_TURBO_SUBBLOCK_DEINTERLEAVE"))
|
||||
*op_flag_value = RTE_BBDEV_TURBO_SUBBLOCK_DEINTERLEAVE;
|
||||
else if (!strcmp(token, "RTE_BBDEV_TURBO_CRC_TYPE_24B"))
|
||||
*op_flag_value = RTE_BBDEV_TURBO_CRC_TYPE_24B;
|
||||
else if (!strcmp(token, "RTE_BBDEV_TURBO_EQUALIZER"))
|
||||
*op_flag_value = RTE_BBDEV_TURBO_EQUALIZER;
|
||||
else if (!strcmp(token, "RTE_BBDEV_TURBO_SOFT_OUT_SATURATE"))
|
||||
*op_flag_value = RTE_BBDEV_TURBO_SOFT_OUT_SATURATE;
|
||||
else if (!strcmp(token, "RTE_BBDEV_TURBO_HALF_ITERATION_EVEN"))
|
||||
*op_flag_value = RTE_BBDEV_TURBO_HALF_ITERATION_EVEN;
|
||||
else if (!strcmp(token, "RTE_BBDEV_TURBO_CONTINUE_CRC_MATCH"))
|
||||
*op_flag_value = RTE_BBDEV_TURBO_CONTINUE_CRC_MATCH;
|
||||
else if (!strcmp(token, "RTE_BBDEV_TURBO_SOFT_OUTPUT"))
|
||||
*op_flag_value = RTE_BBDEV_TURBO_SOFT_OUTPUT;
|
||||
else if (!strcmp(token, "RTE_BBDEV_TURBO_EARLY_TERMINATION"))
|
||||
*op_flag_value = RTE_BBDEV_TURBO_EARLY_TERMINATION;
|
||||
else if (!strcmp(token, "RTE_BBDEV_TURBO_POS_LLR_1_BIT_IN"))
|
||||
*op_flag_value = RTE_BBDEV_TURBO_POS_LLR_1_BIT_IN;
|
||||
else if (!strcmp(token, "RTE_BBDEV_TURBO_NEG_LLR_1_BIT_IN"))
|
||||
*op_flag_value = RTE_BBDEV_TURBO_NEG_LLR_1_BIT_IN;
|
||||
else if (!strcmp(token, "RTE_BBDEV_TURBO_POS_LLR_1_BIT_SOFT_OUT"))
|
||||
*op_flag_value = RTE_BBDEV_TURBO_POS_LLR_1_BIT_SOFT_OUT;
|
||||
else if (!strcmp(token, "RTE_BBDEV_TURBO_NEG_LLR_1_BIT_SOFT_OUT"))
|
||||
*op_flag_value = RTE_BBDEV_TURBO_NEG_LLR_1_BIT_SOFT_OUT;
|
||||
else if (!strcmp(token, "RTE_BBDEV_TURBO_MAP_DEC"))
|
||||
*op_flag_value = RTE_BBDEV_TURBO_MAP_DEC;
|
||||
else if (!strcmp(token, "RTE_BBDEV_TURBO_DEC_SCATTER_GATHER"))
|
||||
*op_flag_value = RTE_BBDEV_TURBO_DEC_SCATTER_GATHER;
|
||||
else if (!strcmp(token, "RTE_BBDEV_TURBO_DEC_TB_CRC_24B_KEEP"))
|
||||
*op_flag_value = RTE_BBDEV_TURBO_DEC_TB_CRC_24B_KEEP;
|
||||
else {
|
||||
printf("The given value is not a turbo decoder flag\n");
|
||||
return -1;
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
/* convert turbo encoder flag from string to unsigned long int*/
|
||||
static int
|
||||
op_encoder_flag_strtoul(char *token, uint32_t *op_flag_value)
|
||||
{
|
||||
if (!strcmp(token, "RTE_BBDEV_TURBO_RV_INDEX_BYPASS"))
|
||||
*op_flag_value = RTE_BBDEV_TURBO_RV_INDEX_BYPASS;
|
||||
else if (!strcmp(token, "RTE_BBDEV_TURBO_RATE_MATCH"))
|
||||
*op_flag_value = RTE_BBDEV_TURBO_RATE_MATCH;
|
||||
else if (!strcmp(token, "RTE_BBDEV_TURBO_CRC_24B_ATTACH"))
|
||||
*op_flag_value = RTE_BBDEV_TURBO_CRC_24B_ATTACH;
|
||||
else if (!strcmp(token, "RTE_BBDEV_TURBO_CRC_24A_ATTACH"))
|
||||
*op_flag_value = RTE_BBDEV_TURBO_CRC_24A_ATTACH;
|
||||
else if (!strcmp(token, "RTE_BBDEV_TURBO_ENC_SCATTER_GATHER"))
|
||||
*op_flag_value = RTE_BBDEV_TURBO_ENC_SCATTER_GATHER;
|
||||
else {
|
||||
printf("The given value is not a turbo encoder flag\n");
|
||||
return -1;
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
/* tokenization turbo decoder/encoder flags values separated by a comma */
|
||||
static int
|
||||
parse_turbo_flags(char *tokens, uint32_t *op_flags,
|
||||
enum rte_bbdev_op_type op_type)
|
||||
{
|
||||
char *tok = NULL;
|
||||
uint32_t op_flag_value = 0;
|
||||
|
||||
tok = strtok(tokens, VALUE_DELIMITER);
|
||||
if (tok == NULL)
|
||||
return -1;
|
||||
|
||||
while (tok != NULL) {
|
||||
trim_space(tok);
|
||||
if (op_type == RTE_BBDEV_OP_TURBO_DEC) {
|
||||
if (op_decoder_flag_strtoul(tok, &op_flag_value) == -1)
|
||||
return -1;
|
||||
} else if (op_type == RTE_BBDEV_OP_TURBO_ENC) {
|
||||
if (op_encoder_flag_strtoul(tok, &op_flag_value) == -1)
|
||||
return -1;
|
||||
} else {
|
||||
return -1;
|
||||
}
|
||||
|
||||
*op_flags = *op_flags | op_flag_value;
|
||||
|
||||
tok = strtok(NULL, VALUE_DELIMITER);
|
||||
if (tok == NULL)
|
||||
break;
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
/* convert turbo encoder/decoder op_type from string to enum*/
|
||||
static int
|
||||
op_turbo_type_strtol(char *token, enum rte_bbdev_op_type *op_type)
|
||||
{
|
||||
trim_space(token);
|
||||
if (!strcmp(token, "RTE_BBDEV_OP_TURBO_DEC"))
|
||||
*op_type = RTE_BBDEV_OP_TURBO_DEC;
|
||||
else if (!strcmp(token, "RTE_BBDEV_OP_TURBO_ENC"))
|
||||
*op_type = RTE_BBDEV_OP_TURBO_ENC;
|
||||
else if (!strcmp(token, "RTE_BBDEV_OP_NONE"))
|
||||
*op_type = RTE_BBDEV_OP_NONE;
|
||||
else {
|
||||
printf("Not valid turbo op_type: '%s'\n", token);
|
||||
return -1;
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
/* tokenization expected status values separated by a comma */
|
||||
static int
|
||||
parse_expected_status(char *tokens, int *status, enum rte_bbdev_op_type op_type)
|
||||
{
|
||||
char *tok = NULL;
|
||||
bool status_ok = false;
|
||||
|
||||
tok = strtok(tokens, VALUE_DELIMITER);
|
||||
if (tok == NULL)
|
||||
return -1;
|
||||
|
||||
while (tok != NULL) {
|
||||
trim_space(tok);
|
||||
if (!strcmp(tok, "OK"))
|
||||
status_ok = true;
|
||||
else if (!strcmp(tok, "DMA"))
|
||||
*status = *status | (1 << RTE_BBDEV_DRV_ERROR);
|
||||
else if (!strcmp(tok, "FCW"))
|
||||
*status = *status | (1 << RTE_BBDEV_DATA_ERROR);
|
||||
else if (!strcmp(tok, "CRC")) {
|
||||
if (op_type == RTE_BBDEV_OP_TURBO_DEC)
|
||||
*status = *status | (1 << RTE_BBDEV_CRC_ERROR);
|
||||
else {
|
||||
printf(
|
||||
"CRC is only a valid value for turbo decoder\n");
|
||||
return -1;
|
||||
}
|
||||
} else {
|
||||
printf("Not valid status: '%s'\n", tok);
|
||||
return -1;
|
||||
}
|
||||
|
||||
tok = strtok(NULL, VALUE_DELIMITER);
|
||||
if (tok == NULL)
|
||||
break;
|
||||
}
|
||||
|
||||
if (status_ok && *status != 0) {
|
||||
printf(
|
||||
"Not valid status values. Cannot be OK and ERROR at the same time.\n");
|
||||
return -1;
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
/* parse ops data entry (there can be more than 1 input entry, each will be
|
||||
* contained in a separate op_data_buf struct)
|
||||
*/
|
||||
static int
|
||||
parse_data_entry(const char *key_token, char *token,
|
||||
struct test_bbdev_vector *vector, enum op_data_type type,
|
||||
const char *prefix)
|
||||
{
|
||||
int ret;
|
||||
uint32_t data_length = 0;
|
||||
uint32_t *data = NULL;
|
||||
unsigned int id;
|
||||
struct op_data_buf *op_data;
|
||||
unsigned int *nb_ops;
|
||||
|
||||
if (type >= DATA_NUM_TYPES) {
|
||||
printf("Unknown op type: %d!\n", type);
|
||||
return -1;
|
||||
}
|
||||
|
||||
op_data = vector->entries[type].segments;
|
||||
nb_ops = &vector->entries[type].nb_segments;
|
||||
|
||||
if (*nb_ops >= RTE_BBDEV_MAX_CODE_BLOCKS) {
|
||||
printf("Too many segments (code blocks defined): %u, max %d!\n",
|
||||
*nb_ops, RTE_BBDEV_MAX_CODE_BLOCKS);
|
||||
return -1;
|
||||
}
|
||||
|
||||
if (sscanf(key_token + strlen(prefix), "%u", &id) != 1) {
|
||||
printf("Missing ID of %s\n", prefix);
|
||||
return -1;
|
||||
}
|
||||
if (id != *nb_ops) {
|
||||
printf(
|
||||
"Please order data entries sequentially, i.e. %s0, %s1, ...\n",
|
||||
prefix, prefix);
|
||||
return -1;
|
||||
}
|
||||
|
||||
/* Clear new op data struct */
|
||||
memset(op_data + *nb_ops, 0, sizeof(struct op_data_buf));
|
||||
|
||||
ret = parse_values(token, &data, &data_length);
|
||||
if (!ret) {
|
||||
op_data[*nb_ops].addr = data;
|
||||
op_data[*nb_ops].length = data_length;
|
||||
++(*nb_ops);
|
||||
}
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
||||
/* parses turbo decoder parameters and assigns to global variable */
|
||||
static int
|
||||
parse_decoder_params(const char *key_token, char *token,
|
||||
struct test_bbdev_vector *vector)
|
||||
{
|
||||
int ret = 0, status = 0;
|
||||
uint32_t op_flags = 0;
|
||||
char *err = NULL;
|
||||
|
||||
struct rte_bbdev_op_turbo_dec *turbo_dec = &vector->turbo_dec;
|
||||
|
||||
/* compare keys */
|
||||
if (starts_with(key_token, op_data_prefixes[DATA_INPUT]))
|
||||
ret = parse_data_entry(key_token, token, vector,
|
||||
DATA_INPUT, op_data_prefixes[DATA_INPUT]);
|
||||
|
||||
else if (starts_with(key_token, op_data_prefixes[DATA_SOFT_OUTPUT]))
|
||||
ret = parse_data_entry(key_token, token, vector,
|
||||
DATA_SOFT_OUTPUT,
|
||||
op_data_prefixes[DATA_SOFT_OUTPUT]);
|
||||
|
||||
else if (starts_with(key_token, op_data_prefixes[DATA_HARD_OUTPUT]))
|
||||
ret = parse_data_entry(key_token, token, vector,
|
||||
DATA_HARD_OUTPUT,
|
||||
op_data_prefixes[DATA_HARD_OUTPUT]);
|
||||
else if (!strcmp(key_token, "e")) {
|
||||
vector->mask |= TEST_BBDEV_VF_E;
|
||||
turbo_dec->cb_params.e = (uint32_t) strtoul(token, &err, 0);
|
||||
} else if (!strcmp(key_token, "ea")) {
|
||||
vector->mask |= TEST_BBDEV_VF_EA;
|
||||
turbo_dec->tb_params.ea = (uint32_t) strtoul(token, &err, 0);
|
||||
ret = ((err == NULL) || (*err != '\0')) ? -1 : 0;
|
||||
} else if (!strcmp(key_token, "eb")) {
|
||||
vector->mask |= TEST_BBDEV_VF_EB;
|
||||
turbo_dec->tb_params.eb = (uint32_t) strtoul(token, &err, 0);
|
||||
ret = ((err == NULL) || (*err != '\0')) ? -1 : 0;
|
||||
} else if (!strcmp(key_token, "k")) {
|
||||
vector->mask |= TEST_BBDEV_VF_K;
|
||||
turbo_dec->cb_params.k = (uint16_t) strtoul(token, &err, 0);
|
||||
ret = ((err == NULL) || (*err != '\0')) ? -1 : 0;
|
||||
} else if (!strcmp(key_token, "k_pos")) {
|
||||
vector->mask |= TEST_BBDEV_VF_K_POS;
|
||||
turbo_dec->tb_params.k_pos = (uint16_t) strtoul(token, &err, 0);
|
||||
ret = ((err == NULL) || (*err != '\0')) ? -1 : 0;
|
||||
} else if (!strcmp(key_token, "k_neg")) {
|
||||
vector->mask |= TEST_BBDEV_VF_K_NEG;
|
||||
turbo_dec->tb_params.k_neg = (uint16_t) strtoul(token, &err, 0);
|
||||
ret = ((err == NULL) || (*err != '\0')) ? -1 : 0;
|
||||
} else if (!strcmp(key_token, "c")) {
|
||||
vector->mask |= TEST_BBDEV_VF_C;
|
||||
turbo_dec->tb_params.c = (uint16_t) strtoul(token, &err, 0);
|
||||
ret = ((err == NULL) || (*err != '\0')) ? -1 : 0;
|
||||
} else if (!strcmp(key_token, "c_neg")) {
|
||||
vector->mask |= TEST_BBDEV_VF_C_NEG;
|
||||
turbo_dec->tb_params.c_neg = (uint16_t) strtoul(token, &err, 0);
|
||||
ret = ((err == NULL) || (*err != '\0')) ? -1 : 0;
|
||||
} else if (!strcmp(key_token, "cab")) {
|
||||
vector->mask |= TEST_BBDEV_VF_CAB;
|
||||
turbo_dec->tb_params.cab = (uint8_t) strtoul(token, &err, 0);
|
||||
ret = ((err == NULL) || (*err != '\0')) ? -1 : 0;
|
||||
} else if (!strcmp(key_token, "rv_index")) {
|
||||
vector->mask |= TEST_BBDEV_VF_RV_INDEX;
|
||||
turbo_dec->rv_index = (uint8_t) strtoul(token, &err, 0);
|
||||
ret = ((err == NULL) || (*err != '\0')) ? -1 : 0;
|
||||
} else if (!strcmp(key_token, "iter_max")) {
|
||||
vector->mask |= TEST_BBDEV_VF_ITER_MAX;
|
||||
turbo_dec->iter_max = (uint8_t) strtoul(token, &err, 0);
|
||||
ret = ((err == NULL) || (*err != '\0')) ? -1 : 0;
|
||||
} else if (!strcmp(key_token, "iter_min")) {
|
||||
vector->mask |= TEST_BBDEV_VF_ITER_MIN;
|
||||
turbo_dec->iter_min = (uint8_t) strtoul(token, &err, 0);
|
||||
ret = ((err == NULL) || (*err != '\0')) ? -1 : 0;
|
||||
} else if (!strcmp(key_token, "expected_iter_count")) {
|
||||
vector->mask |= TEST_BBDEV_VF_EXPECTED_ITER_COUNT;
|
||||
turbo_dec->iter_count = (uint8_t) strtoul(token, &err, 0);
|
||||
ret = ((err == NULL) || (*err != '\0')) ? -1 : 0;
|
||||
} else if (!strcmp(key_token, "ext_scale")) {
|
||||
vector->mask |= TEST_BBDEV_VF_EXT_SCALE;
|
||||
turbo_dec->ext_scale = (uint8_t) strtoul(token, &err, 0);
|
||||
ret = ((err == NULL) || (*err != '\0')) ? -1 : 0;
|
||||
} else if (!strcmp(key_token, "num_maps")) {
|
||||
vector->mask |= TEST_BBDEV_VF_NUM_MAPS;
|
||||
turbo_dec->num_maps = (uint8_t) strtoul(token, &err, 0);
|
||||
ret = ((err == NULL) || (*err != '\0')) ? -1 : 0;
|
||||
} else if (!strcmp(key_token, "code_block_mode")) {
|
||||
vector->mask |= TEST_BBDEV_VF_CODE_BLOCK_MODE;
|
||||
turbo_dec->code_block_mode = (uint8_t) strtoul(token, &err, 0);
|
||||
ret = ((err == NULL) || (*err != '\0')) ? -1 : 0;
|
||||
} else if (!strcmp(key_token, "op_flags")) {
|
||||
vector->mask |= TEST_BBDEV_VF_OP_FLAGS;
|
||||
ret = parse_turbo_flags(token, &op_flags,
|
||||
vector->op_type);
|
||||
if (!ret)
|
||||
turbo_dec->op_flags = op_flags;
|
||||
} else if (!strcmp(key_token, "expected_status")) {
|
||||
vector->mask |= TEST_BBDEV_VF_EXPECTED_STATUS;
|
||||
ret = parse_expected_status(token, &status, vector->op_type);
|
||||
if (!ret)
|
||||
vector->expected_status = status;
|
||||
} else {
|
||||
printf("Not valid dec key: '%s'\n", key_token);
|
||||
return -1;
|
||||
}
|
||||
|
||||
if (ret != 0) {
|
||||
printf("Failed with convert '%s\t%s'\n", key_token, token);
|
||||
return -1;
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
/* parses turbo encoder parameters and assigns to global variable */
|
||||
static int
|
||||
parse_encoder_params(const char *key_token, char *token,
|
||||
struct test_bbdev_vector *vector)
|
||||
{
|
||||
int ret = 0, status = 0;
|
||||
uint32_t op_flags = 0;
|
||||
char *err = NULL;
|
||||
|
||||
|
||||
struct rte_bbdev_op_turbo_enc *turbo_enc = &vector->turbo_enc;
|
||||
|
||||
if (starts_with(key_token, op_data_prefixes[DATA_INPUT]))
|
||||
ret = parse_data_entry(key_token, token, vector,
|
||||
DATA_INPUT, op_data_prefixes[DATA_INPUT]);
|
||||
else if (starts_with(key_token, "output"))
|
||||
ret = parse_data_entry(key_token, token, vector,
|
||||
DATA_HARD_OUTPUT, "output");
|
||||
else if (!strcmp(key_token, "e")) {
|
||||
vector->mask |= TEST_BBDEV_VF_E;
|
||||
turbo_enc->cb_params.e = (uint32_t) strtoul(token, &err, 0);
|
||||
ret = ((err == NULL) || (*err != '\0')) ? -1 : 0;
|
||||
} else if (!strcmp(key_token, "ea")) {
|
||||
vector->mask |= TEST_BBDEV_VF_EA;
|
||||
turbo_enc->tb_params.ea = (uint32_t) strtoul(token, &err, 0);
|
||||
ret = ((err == NULL) || (*err != '\0')) ? -1 : 0;
|
||||
} else if (!strcmp(key_token, "eb")) {
|
||||
vector->mask |= TEST_BBDEV_VF_EB;
|
||||
turbo_enc->tb_params.eb = (uint32_t) strtoul(token, &err, 0);
|
||||
ret = ((err == NULL) || (*err != '\0')) ? -1 : 0;
|
||||
} else if (!strcmp(key_token, "k")) {
|
||||
vector->mask |= TEST_BBDEV_VF_K;
|
||||
turbo_enc->cb_params.k = (uint16_t) strtoul(token, &err, 0);
|
||||
ret = ((err == NULL) || (*err != '\0')) ? -1 : 0;
|
||||
} else if (!strcmp(key_token, "k_neg")) {
|
||||
vector->mask |= TEST_BBDEV_VF_K_NEG;
|
||||
turbo_enc->tb_params.k_neg = (uint16_t) strtoul(token, &err, 0);
|
||||
ret = ((err == NULL) || (*err != '\0')) ? -1 : 0;
|
||||
} else if (!strcmp(key_token, "k_pos")) {
|
||||
vector->mask |= TEST_BBDEV_VF_K_POS;
|
||||
turbo_enc->tb_params.k_pos = (uint16_t) strtoul(token, &err, 0);
|
||||
ret = ((err == NULL) || (*err != '\0')) ? -1 : 0;
|
||||
} else if (!strcmp(key_token, "c_neg")) {
|
||||
vector->mask |= TEST_BBDEV_VF_C_NEG;
|
||||
turbo_enc->tb_params.c_neg = (uint8_t) strtoul(token, &err, 0);
|
||||
ret = ((err == NULL) || (*err != '\0')) ? -1 : 0;
|
||||
} else if (!strcmp(key_token, "c")) {
|
||||
vector->mask |= TEST_BBDEV_VF_C;
|
||||
turbo_enc->tb_params.c = (uint8_t) strtoul(token, &err, 0);
|
||||
ret = ((err == NULL) || (*err != '\0')) ? -1 : 0;
|
||||
} else if (!strcmp(key_token, "cab")) {
|
||||
vector->mask |= TEST_BBDEV_VF_CAB;
|
||||
turbo_enc->tb_params.cab = (uint8_t) strtoul(token, &err, 0);
|
||||
ret = ((err == NULL) || (*err != '\0')) ? -1 : 0;
|
||||
} else if (!strcmp(key_token, "rv_index")) {
|
||||
vector->mask |= TEST_BBDEV_VF_RV_INDEX;
|
||||
turbo_enc->rv_index = (uint8_t) strtoul(token, &err, 0);
|
||||
ret = ((err == NULL) || (*err != '\0')) ? -1 : 0;
|
||||
} else if (!strcmp(key_token, "ncb")) {
|
||||
vector->mask |= TEST_BBDEV_VF_NCB;
|
||||
turbo_enc->cb_params.ncb = (uint16_t) strtoul(token, &err, 0);
|
||||
ret = ((err == NULL) || (*err != '\0')) ? -1 : 0;
|
||||
} else if (!strcmp(key_token, "ncb_neg")) {
|
||||
vector->mask |= TEST_BBDEV_VF_NCB_NEG;
|
||||
turbo_enc->tb_params.ncb_neg =
|
||||
(uint16_t) strtoul(token, &err, 0);
|
||||
ret = ((err == NULL) || (*err != '\0')) ? -1 : 0;
|
||||
} else if (!strcmp(key_token, "ncb_pos")) {
|
||||
vector->mask |= TEST_BBDEV_VF_NCB_POS;
|
||||
turbo_enc->tb_params.ncb_pos =
|
||||
(uint16_t) strtoul(token, &err, 0);
|
||||
ret = ((err == NULL) || (*err != '\0')) ? -1 : 0;
|
||||
} else if (!strcmp(key_token, "r")) {
|
||||
vector->mask |= TEST_BBDEV_VF_R;
|
||||
turbo_enc->tb_params.r = (uint8_t) strtoul(token, &err, 0);
|
||||
ret = ((err == NULL) || (*err != '\0')) ? -1 : 0;
|
||||
} else if (!strcmp(key_token, "code_block_mode")) {
|
||||
vector->mask |= TEST_BBDEV_VF_CODE_BLOCK_MODE;
|
||||
turbo_enc->code_block_mode = (uint8_t) strtoul(token, &err, 0);
|
||||
ret = ((err == NULL) || (*err != '\0')) ? -1 : 0;
|
||||
} else if (!strcmp(key_token, "op_flags")) {
|
||||
vector->mask |= TEST_BBDEV_VF_OP_FLAGS;
|
||||
ret = parse_turbo_flags(token, &op_flags,
|
||||
vector->op_type);
|
||||
if (!ret)
|
||||
turbo_enc->op_flags = op_flags;
|
||||
} else if (!strcmp(key_token, "expected_status")) {
|
||||
vector->mask |= TEST_BBDEV_VF_EXPECTED_STATUS;
|
||||
ret = parse_expected_status(token, &status, vector->op_type);
|
||||
if (!ret)
|
||||
vector->expected_status = status;
|
||||
} else {
|
||||
printf("Not valid enc key: '%s'\n", key_token);
|
||||
return -1;
|
||||
}
|
||||
|
||||
if (ret != 0) {
|
||||
printf("Failed with convert '%s\t%s'\n", key_token, token);
|
||||
return -1;
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
/* checks the type of key and assigns data */
|
||||
static int
|
||||
parse_entry(char *entry, struct test_bbdev_vector *vector)
|
||||
{
|
||||
int ret = 0;
|
||||
char *token, *key_token;
|
||||
enum rte_bbdev_op_type op_type = RTE_BBDEV_OP_NONE;
|
||||
|
||||
if (entry == NULL) {
|
||||
printf("Expected entry value\n");
|
||||
return -1;
|
||||
}
|
||||
|
||||
/* get key */
|
||||
token = strtok(entry, ENTRY_DELIMITER);
|
||||
key_token = token;
|
||||
/* get values for key */
|
||||
token = strtok(NULL, ENTRY_DELIMITER);
|
||||
|
||||
if (key_token == NULL || token == NULL) {
|
||||
printf("Expected 'key = values' but was '%.40s'..\n", entry);
|
||||
return -1;
|
||||
}
|
||||
trim_space(key_token);
|
||||
|
||||
/* first key_token has to specify type of operation */
|
||||
if (vector->op_type == RTE_BBDEV_OP_NONE) {
|
||||
if (!strcmp(key_token, "op_type")) {
|
||||
ret = op_turbo_type_strtol(token, &op_type);
|
||||
if (!ret)
|
||||
vector->op_type = op_type;
|
||||
return (!ret) ? 0 : -1;
|
||||
}
|
||||
printf("First key_token (%s) does not specify op_type\n",
|
||||
key_token);
|
||||
return -1;
|
||||
}
|
||||
|
||||
/* compare keys */
|
||||
if (vector->op_type == RTE_BBDEV_OP_TURBO_DEC) {
|
||||
if (parse_decoder_params(key_token, token, vector) == -1)
|
||||
return -1;
|
||||
} else if (vector->op_type == RTE_BBDEV_OP_TURBO_ENC) {
|
||||
if (parse_encoder_params(key_token, token, vector) == -1)
|
||||
return -1;
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
static int
|
||||
check_decoder_segments(struct test_bbdev_vector *vector)
|
||||
{
|
||||
unsigned char i;
|
||||
struct rte_bbdev_op_turbo_dec *turbo_dec = &vector->turbo_dec;
|
||||
|
||||
if (vector->entries[DATA_INPUT].nb_segments == 0)
|
||||
return -1;
|
||||
|
||||
for (i = 0; i < vector->entries[DATA_INPUT].nb_segments; i++)
|
||||
if (vector->entries[DATA_INPUT].segments[i].addr == NULL)
|
||||
return -1;
|
||||
|
||||
if (vector->entries[DATA_HARD_OUTPUT].nb_segments == 0)
|
||||
return -1;
|
||||
|
||||
for (i = 0; i < vector->entries[DATA_HARD_OUTPUT].nb_segments;
|
||||
i++)
|
||||
if (vector->entries[DATA_HARD_OUTPUT].segments[i].addr == NULL)
|
||||
return -1;
|
||||
|
||||
if ((turbo_dec->op_flags & RTE_BBDEV_TURBO_SOFT_OUTPUT) &&
|
||||
(vector->entries[DATA_SOFT_OUTPUT].nb_segments == 0))
|
||||
return -1;
|
||||
|
||||
for (i = 0; i < vector->entries[DATA_SOFT_OUTPUT].nb_segments;
|
||||
i++)
|
||||
if (vector->entries[DATA_SOFT_OUTPUT].segments[i].addr == NULL)
|
||||
return -1;
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
static int
|
||||
check_decoder_llr_spec(struct test_bbdev_vector *vector)
|
||||
{
|
||||
struct rte_bbdev_op_turbo_dec *turbo_dec = &vector->turbo_dec;
|
||||
|
||||
/* Check input LLR sign formalism specification */
|
||||
if ((turbo_dec->op_flags & RTE_BBDEV_TURBO_POS_LLR_1_BIT_IN) &&
|
||||
(turbo_dec->op_flags &
|
||||
RTE_BBDEV_TURBO_NEG_LLR_1_BIT_IN)) {
|
||||
printf(
|
||||
"Both positive and negative LLR input flags were set!\n");
|
||||
return -1;
|
||||
}
|
||||
if (!(turbo_dec->op_flags & RTE_BBDEV_TURBO_POS_LLR_1_BIT_IN) &&
|
||||
!(turbo_dec->op_flags &
|
||||
RTE_BBDEV_TURBO_NEG_LLR_1_BIT_IN)) {
|
||||
printf(
|
||||
"WARNING: input LLR sign formalism was not specified and will be set to negative LLR for '1' bit\n");
|
||||
turbo_dec->op_flags |= RTE_BBDEV_TURBO_NEG_LLR_1_BIT_IN;
|
||||
}
|
||||
|
||||
if (!(turbo_dec->op_flags & RTE_BBDEV_TURBO_SOFT_OUTPUT))
|
||||
return 0;
|
||||
|
||||
/* Check output LLR sign formalism specification */
|
||||
if ((turbo_dec->op_flags & RTE_BBDEV_TURBO_POS_LLR_1_BIT_SOFT_OUT) &&
|
||||
(turbo_dec->op_flags &
|
||||
RTE_BBDEV_TURBO_NEG_LLR_1_BIT_SOFT_OUT)) {
|
||||
printf(
|
||||
"Both positive and negative LLR output flags were set!\n");
|
||||
return -1;
|
||||
}
|
||||
if (!(turbo_dec->op_flags & RTE_BBDEV_TURBO_POS_LLR_1_BIT_SOFT_OUT) &&
|
||||
!(turbo_dec->op_flags &
|
||||
RTE_BBDEV_TURBO_NEG_LLR_1_BIT_SOFT_OUT)) {
|
||||
printf(
|
||||
"WARNING: soft output LLR sign formalism was not specified and will be set to negative LLR for '1' bit\n");
|
||||
turbo_dec->op_flags |=
|
||||
RTE_BBDEV_TURBO_NEG_LLR_1_BIT_SOFT_OUT;
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
/* checks decoder parameters */
|
||||
static int
|
||||
check_decoder(struct test_bbdev_vector *vector)
|
||||
{
|
||||
struct rte_bbdev_op_turbo_dec *turbo_dec = &vector->turbo_dec;
|
||||
const int mask = vector->mask;
|
||||
|
||||
if (check_decoder_segments(vector) < 0)
|
||||
return -1;
|
||||
|
||||
if (check_decoder_llr_spec(vector) < 0)
|
||||
return -1;
|
||||
|
||||
/* Check which params were set */
|
||||
if (!(mask & TEST_BBDEV_VF_CODE_BLOCK_MODE)) {
|
||||
printf(
|
||||
"WARNING: code_block_mode was not specified in vector file and will be set to 1 (0 - TB Mode, 1 - CB mode)\n");
|
||||
turbo_dec->code_block_mode = 1;
|
||||
}
|
||||
if (turbo_dec->code_block_mode == 0) {
|
||||
if (!(mask & TEST_BBDEV_VF_EA))
|
||||
printf(
|
||||
"WARNING: ea was not specified in vector file and will be set to 0\n");
|
||||
if (!(mask & TEST_BBDEV_VF_EB))
|
||||
printf(
|
||||
"WARNING: eb was not specified in vector file and will be set to 0\n");
|
||||
if (!(mask & TEST_BBDEV_VF_K_NEG))
|
||||
printf(
|
||||
"WARNING: k_neg was not specified in vector file and will be set to 0\n");
|
||||
if (!(mask & TEST_BBDEV_VF_K_POS))
|
||||
printf(
|
||||
"WARNING: k_pos was not specified in vector file and will be set to 0\n");
|
||||
if (!(mask & TEST_BBDEV_VF_C_NEG))
|
||||
printf(
|
||||
"WARNING: c_neg was not specified in vector file and will be set to 0\n");
|
||||
if (!(mask & TEST_BBDEV_VF_C)) {
|
||||
printf(
|
||||
"WARNING: c was not specified in vector file and will be set to 1\n");
|
||||
turbo_dec->tb_params.c = 1;
|
||||
}
|
||||
if (!(mask & TEST_BBDEV_VF_CAB))
|
||||
printf(
|
||||
"WARNING: cab was not specified in vector file and will be set to 0\n");
|
||||
} else {
|
||||
if (!(mask & TEST_BBDEV_VF_E))
|
||||
printf(
|
||||
"WARNING: e was not specified in vector file and will be set to 0\n");
|
||||
if (!(mask & TEST_BBDEV_VF_K))
|
||||
printf(
|
||||
"WARNING: k was not specified in vector file and will be set to 0\n");
|
||||
}
|
||||
if (!(mask & TEST_BBDEV_VF_RV_INDEX))
|
||||
printf(
|
||||
"WARNING: rv_index was not specified in vector file and will be set to 0\n");
|
||||
if (!(mask & TEST_BBDEV_VF_ITER_MIN))
|
||||
printf(
|
||||
"WARNING: iter_min was not specified in vector file and will be set to 0\n");
|
||||
if (!(mask & TEST_BBDEV_VF_ITER_MAX))
|
||||
printf(
|
||||
"WARNING: iter_max was not specified in vector file and will be set to 0\n");
|
||||
if (!(mask & TEST_BBDEV_VF_EXPECTED_ITER_COUNT))
|
||||
printf(
|
||||
"WARNING: expected_iter_count was not specified in vector file and iter_count will not be validated\n");
|
||||
if (!(mask & TEST_BBDEV_VF_EXT_SCALE))
|
||||
printf(
|
||||
"WARNING: ext_scale was not specified in vector file and will be set to 0\n");
|
||||
if (!(mask & TEST_BBDEV_VF_OP_FLAGS)) {
|
||||
printf(
|
||||
"WARNING: op_flags was not specified in vector file and capabilities will not be validated\n");
|
||||
turbo_dec->num_maps = 0;
|
||||
} else if (!(turbo_dec->op_flags & RTE_BBDEV_TURBO_MAP_DEC) &&
|
||||
mask & TEST_BBDEV_VF_NUM_MAPS) {
|
||||
printf(
|
||||
"WARNING: RTE_BBDEV_TURBO_MAP_DEC was not set in vector file and num_maps will be set to 0\n");
|
||||
turbo_dec->num_maps = 0;
|
||||
}
|
||||
if (!(mask & TEST_BBDEV_VF_EXPECTED_STATUS))
|
||||
printf(
|
||||
"WARNING: expected_status was not specified in vector file and will be set to 0\n");
|
||||
return 0;
|
||||
}
|
||||
|
||||
/* checks encoder parameters */
|
||||
static int
|
||||
check_encoder(struct test_bbdev_vector *vector)
|
||||
{
|
||||
unsigned char i;
|
||||
const int mask = vector->mask;
|
||||
|
||||
if (vector->entries[DATA_INPUT].nb_segments == 0)
|
||||
return -1;
|
||||
|
||||
for (i = 0; i < vector->entries[DATA_INPUT].nb_segments; i++)
|
||||
if (vector->entries[DATA_INPUT].segments[i].addr == NULL)
|
||||
return -1;
|
||||
|
||||
if (vector->entries[DATA_HARD_OUTPUT].nb_segments == 0)
|
||||
return -1;
|
||||
|
||||
for (i = 0; i < vector->entries[DATA_HARD_OUTPUT].nb_segments; i++)
|
||||
if (vector->entries[DATA_HARD_OUTPUT].segments[i].addr == NULL)
|
||||
return -1;
|
||||
|
||||
if (!(mask & TEST_BBDEV_VF_CODE_BLOCK_MODE)) {
|
||||
printf(
|
||||
"WARNING: code_block_mode was not specified in vector file and will be set to 1\n");
|
||||
vector->turbo_enc.code_block_mode = 1;
|
||||
}
|
||||
if (vector->turbo_enc.code_block_mode == 0) {
|
||||
if (!(mask & TEST_BBDEV_VF_EA) && (vector->turbo_enc.op_flags &
|
||||
RTE_BBDEV_TURBO_RATE_MATCH))
|
||||
printf(
|
||||
"WARNING: ea was not specified in vector file and will be set to 0\n");
|
||||
if (!(mask & TEST_BBDEV_VF_EB) && (vector->turbo_enc.op_flags &
|
||||
RTE_BBDEV_TURBO_RATE_MATCH))
|
||||
printf(
|
||||
"WARNING: eb was not specified in vector file and will be set to 0\n");
|
||||
if (!(mask & TEST_BBDEV_VF_K_NEG))
|
||||
printf(
|
||||
"WARNING: k_neg was not specified in vector file and will be set to 0\n");
|
||||
if (!(mask & TEST_BBDEV_VF_K_POS))
|
||||
printf(
|
||||
"WARNING: k_pos was not specified in vector file and will be set to 0\n");
|
||||
if (!(mask & TEST_BBDEV_VF_C_NEG))
|
||||
printf(
|
||||
"WARNING: c_neg was not specified in vector file and will be set to 0\n");
|
||||
if (!(mask & TEST_BBDEV_VF_C)) {
|
||||
printf(
|
||||
"WARNING: c was not specified in vector file and will be set to 1\n");
|
||||
vector->turbo_enc.tb_params.c = 1;
|
||||
}
|
||||
if (!(mask & TEST_BBDEV_VF_CAB) && (vector->turbo_enc.op_flags &
|
||||
RTE_BBDEV_TURBO_RATE_MATCH))
|
||||
printf(
|
||||
"WARNING: cab was not specified in vector file and will be set to 0\n");
|
||||
if (!(mask & TEST_BBDEV_VF_NCB_NEG))
|
||||
printf(
|
||||
"WARNING: ncb_neg was not specified in vector file and will be set to 0\n");
|
||||
if (!(mask & TEST_BBDEV_VF_NCB_POS))
|
||||
printf(
|
||||
"WARNING: ncb_pos was not specified in vector file and will be set to 0\n");
|
||||
if (!(mask & TEST_BBDEV_VF_R))
|
||||
printf(
|
||||
"WARNING: r was not specified in vector file and will be set to 0\n");
|
||||
} else {
|
||||
if (!(mask & TEST_BBDEV_VF_E) && (vector->turbo_enc.op_flags &
|
||||
RTE_BBDEV_TURBO_RATE_MATCH))
|
||||
printf(
|
||||
"WARNING: e was not specified in vector file and will be set to 0\n");
|
||||
if (!(mask & TEST_BBDEV_VF_K))
|
||||
printf(
|
||||
"WARNING: k was not specified in vector file and will be set to 0\n");
|
||||
if (!(mask & TEST_BBDEV_VF_NCB))
|
||||
printf(
|
||||
"WARNING: ncb was not specified in vector file and will be set to 0\n");
|
||||
}
|
||||
if (!(mask & TEST_BBDEV_VF_RV_INDEX))
|
||||
printf(
|
||||
"WARNING: rv_index was not specified in vector file and will be set to 0\n");
|
||||
if (!(mask & TEST_BBDEV_VF_OP_FLAGS))
|
||||
printf(
|
||||
"WARNING: op_flags was not specified in vector file and capabilities will not be validated\n");
|
||||
if (!(mask & TEST_BBDEV_VF_EXPECTED_STATUS))
|
||||
printf(
|
||||
"WARNING: expected_status was not specified in vector file and will be set to 0\n");
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
static int
|
||||
bbdev_check_vector(struct test_bbdev_vector *vector)
|
||||
{
|
||||
if (vector->op_type == RTE_BBDEV_OP_TURBO_DEC) {
|
||||
if (check_decoder(vector) == -1)
|
||||
return -1;
|
||||
} else if (vector->op_type == RTE_BBDEV_OP_TURBO_ENC) {
|
||||
if (check_encoder(vector) == -1)
|
||||
return -1;
|
||||
} else if (vector->op_type != RTE_BBDEV_OP_NONE) {
|
||||
printf("Vector was not filled\n");
|
||||
return -1;
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
int
|
||||
test_bbdev_vector_read(const char *filename,
|
||||
struct test_bbdev_vector *vector)
|
||||
{
|
||||
int ret = 0;
|
||||
size_t len = 0;
|
||||
|
||||
FILE *fp = NULL;
|
||||
char *line = NULL;
|
||||
char *entry = NULL;
|
||||
|
||||
fp = fopen(filename, "r");
|
||||
if (fp == NULL) {
|
||||
printf("File %s does not exist\n", filename);
|
||||
return -1;
|
||||
}
|
||||
|
||||
while (getline(&line, &len, fp) != -1) {
|
||||
|
||||
/* ignore comments and new lines */
|
||||
if (line[0] == '#' || line[0] == '/' || line[0] == '\n'
|
||||
|| line[0] == '\r')
|
||||
continue;
|
||||
|
||||
trim_space(line);
|
||||
|
||||
/* buffer for multiline */
|
||||
entry = realloc(entry, strlen(line) + 1);
|
||||
if (entry == NULL) {
|
||||
printf("Fail to realloc %zu bytes\n", strlen(line) + 1);
|
||||
ret = -ENOMEM;
|
||||
goto exit;
|
||||
}
|
||||
|
||||
strcpy(entry, line);
|
||||
|
||||
/* check if entry ends with , or = */
|
||||
if (entry[strlen(entry) - 1] == ','
|
||||
|| entry[strlen(entry) - 1] == '=') {
|
||||
while (getline(&line, &len, fp) != -1) {
|
||||
trim_space(line);
|
||||
|
||||
/* extend entry about length of new line */
|
||||
char *entry_extended = realloc(entry,
|
||||
strlen(line) +
|
||||
strlen(entry) + 1);
|
||||
|
||||
if (entry_extended == NULL) {
|
||||
printf("Fail to allocate %zu bytes\n",
|
||||
strlen(line) +
|
||||
strlen(entry) + 1);
|
||||
ret = -ENOMEM;
|
||||
goto exit;
|
||||
}
|
||||
|
||||
entry = entry_extended;
|
||||
/* entry has been allocated accordingly */
|
||||
strcpy(&entry[strlen(entry)], line);
|
||||
|
||||
if (entry[strlen(entry) - 1] != ',')
|
||||
break;
|
||||
}
|
||||
}
|
||||
ret = parse_entry(entry, vector);
|
||||
if (ret != 0) {
|
||||
printf("An error occurred while parsing!\n");
|
||||
goto exit;
|
||||
}
|
||||
}
|
||||
ret = bbdev_check_vector(vector);
|
||||
if (ret != 0)
|
||||
printf("An error occurred while checking!\n");
|
||||
|
||||
exit:
|
||||
fclose(fp);
|
||||
free(line);
|
||||
free(entry);
|
||||
|
||||
return ret;
|
||||
}
|
|
@ -0,0 +1,71 @@
|
|||
/* SPDX-License-Identifier: BSD-3-Clause
|
||||
* Copyright(c) 2017 Intel Corporation
|
||||
*/
|
||||
|
||||
#ifndef TEST_BBDEV_VECTOR_H_
|
||||
#define TEST_BBDEV_VECTOR_H_
|
||||
|
||||
#include <rte_bbdev_op.h>
|
||||
|
||||
/* Flags which are set when specific parameter is define in vector file */
|
||||
enum {
|
||||
TEST_BBDEV_VF_E = (1ULL << 0),
|
||||
TEST_BBDEV_VF_EA = (1ULL << 1),
|
||||
TEST_BBDEV_VF_EB = (1ULL << 2),
|
||||
TEST_BBDEV_VF_K = (1ULL << 3),
|
||||
TEST_BBDEV_VF_K_NEG = (1ULL << 4),
|
||||
TEST_BBDEV_VF_K_POS = (1ULL << 5),
|
||||
TEST_BBDEV_VF_C_NEG = (1ULL << 6),
|
||||
TEST_BBDEV_VF_C = (1ULL << 7),
|
||||
TEST_BBDEV_VF_CAB = (1ULL << 8),
|
||||
TEST_BBDEV_VF_RV_INDEX = (1ULL << 9),
|
||||
TEST_BBDEV_VF_ITER_MAX = (1ULL << 10),
|
||||
TEST_BBDEV_VF_ITER_MIN = (1ULL << 11),
|
||||
TEST_BBDEV_VF_EXPECTED_ITER_COUNT = (1ULL << 12),
|
||||
TEST_BBDEV_VF_EXT_SCALE = (1ULL << 13),
|
||||
TEST_BBDEV_VF_NUM_MAPS = (1ULL << 14),
|
||||
TEST_BBDEV_VF_NCB = (1ULL << 15),
|
||||
TEST_BBDEV_VF_NCB_NEG = (1ULL << 16),
|
||||
TEST_BBDEV_VF_NCB_POS = (1ULL << 17),
|
||||
TEST_BBDEV_VF_R = (1ULL << 18),
|
||||
TEST_BBDEV_VF_CODE_BLOCK_MODE = (1ULL << 19),
|
||||
TEST_BBDEV_VF_OP_FLAGS = (1ULL << 20),
|
||||
TEST_BBDEV_VF_EXPECTED_STATUS = (1ULL << 21),
|
||||
};
|
||||
|
||||
enum op_data_type {
|
||||
DATA_INPUT = 0,
|
||||
DATA_SOFT_OUTPUT,
|
||||
DATA_HARD_OUTPUT,
|
||||
DATA_NUM_TYPES,
|
||||
};
|
||||
|
||||
struct op_data_buf {
|
||||
uint32_t *addr;
|
||||
uint32_t length;
|
||||
};
|
||||
|
||||
struct op_data_entries {
|
||||
struct op_data_buf segments[RTE_BBDEV_MAX_CODE_BLOCKS];
|
||||
unsigned int nb_segments;
|
||||
};
|
||||
|
||||
struct test_bbdev_vector {
|
||||
enum rte_bbdev_op_type op_type;
|
||||
int expected_status;
|
||||
int mask;
|
||||
union {
|
||||
struct rte_bbdev_op_turbo_dec turbo_dec;
|
||||
struct rte_bbdev_op_turbo_enc turbo_enc;
|
||||
};
|
||||
/* Additional storage for op data entries */
|
||||
struct op_data_entries entries[DATA_NUM_TYPES];
|
||||
};
|
||||
|
||||
/* fills test vector parameters based on test file */
|
||||
int
|
||||
test_bbdev_vector_read(const char *filename,
|
||||
struct test_bbdev_vector *vector);
|
||||
|
||||
|
||||
#endif /* TEST_BBDEV_VECTOR_H_ */
|
|
@ -0,0 +1,5 @@
|
|||
# SPDX-License-Identifier: BSD-3-Clause
|
||||
# Copyright(c) 2017 Intel Corporation
|
||||
|
||||
op_type =
|
||||
RTE_BBDEV_OP_NONE
|
|
@ -0,0 +1,57 @@
|
|||
# SPDX-License-Identifier: BSD-3-Clause
|
||||
# Copyright(c) 2017 Intel Corporation
|
||||
|
||||
op_type =
|
||||
RTE_BBDEV_OP_TURBO_DEC
|
||||
|
||||
input0 =
|
||||
0x7f007f00, 0x7f817f00, 0x767f8100, 0x817f8100, 0x81008100, 0x7f818100, 0x81817f00, 0x7f818100,
|
||||
0x86007f00, 0x7f818100, 0x887f8100, 0x81815200, 0x81008100, 0x817f7f00, 0x7f7f8100, 0x9e817f00,
|
||||
0x7f7f0000, 0xb97f0000, 0xa7810000, 0x7f7f4a7f, 0x7f810000, 0x7f7f7f7f, 0x81720000, 0x40658181,
|
||||
0x84810000, 0x817f0000, 0x81810000, 0x7f818181, 0x7f810000, 0x81815a81, 0x817f0000, 0x7a867f7b,
|
||||
0x817f0000, 0x6b7f0000, 0x7f810000, 0x81818181, 0x817f0000, 0x7f7f817f, 0x7f7f0000, 0xab7f4f7f,
|
||||
0x817f0000, 0x817f6c00, 0x81810000, 0x817f8181, 0x7f810000, 0x81816981, 0x7f7f0000, 0x007f8181
|
||||
|
||||
hard_output0 =
|
||||
0xa7d6732e, 0x61
|
||||
|
||||
soft_output0 =
|
||||
0x7f7f7f7f, 0x81817f7f, 0x7f817f81, 0x817f7f81, 0x81817f81, 0x81817f81, 0x8181817f, 0x7f81817f,
|
||||
0x7f81817f, 0x7f817f7f, 0x81817f7f, 0x817f8181, 0x81818181, 0x817f7f7f, 0x7f818181, 0x817f817f,
|
||||
0x81818181, 0x81817f7f, 0x7f817f81, 0x7f81817f, 0x817f7f7f, 0x817f7f7f, 0x7f81817f, 0x817f817f,
|
||||
0x81817f7f, 0x81817f7f, 0x81817f7f, 0x7f817f7f, 0x817f7f81, 0x7f7f8181, 0x81817f81, 0x817f7f7f,
|
||||
0x7f7f8181
|
||||
|
||||
e =
|
||||
17280
|
||||
|
||||
k =
|
||||
40
|
||||
|
||||
rv_index =
|
||||
1
|
||||
|
||||
iter_max =
|
||||
8
|
||||
|
||||
iter_min =
|
||||
4
|
||||
|
||||
expected_iter_count =
|
||||
8
|
||||
|
||||
ext_scale =
|
||||
15
|
||||
|
||||
num_maps =
|
||||
0
|
||||
|
||||
code_block_mode =
|
||||
1
|
||||
|
||||
op_flags =
|
||||
RTE_BBDEV_TURBO_SOFT_OUTPUT, RTE_BBDEV_TURBO_SUBBLOCK_DEINTERLEAVE,
|
||||
RTE_BBDEV_TURBO_NEG_LLR_1_BIT_IN, RTE_BBDEV_TURBO_NEG_LLR_1_BIT_SOFT_OUT
|
||||
|
||||
expected_status =
|
||||
OK
|
|
@ -0,0 +1,643 @@
|
|||
# SPDX-License-Identifier: BSD-3-Clause
|
||||
# Copyright(c) 2017 Intel Corporation
|
||||
|
||||
op_type =
|
||||
RTE_BBDEV_OP_TURBO_DEC
|
||||
|
||||
input0 =
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0xCE000000, 0x2F00F6D9, 0xCC1AF942, 0x22F8F4E1, 0xBED8FAFF, 0x43DC19B5, 0x35E91CC0, 0x5B070D30,
|
||||
0xF9DACDFD, 0x170121DA, 0x012AEF53, 0x39E7D90E, 0xD5FBEFDD, 0xCCF0FDC8, 0xD62B0D54, 0xEAE601BE,
|
||||
0xE5001328, 0x0CF00DC7, 0x3EE0E4B8, 0xC2D8EB00, 0xBE1EEBF7, 0xCDF5E7E4, 0x4FDFF4FA, 0xF402DA2A,
|
||||
0xFEFEE32B, 0xD62CDA55, 0x17DE0106, 0xF92411B5, 0x301B2142, 0xE50C09E3, 0x51030EDB, 0x48DB2A4C,
|
||||
0x03E420BC, 0x1AE1DCF8, 0xB6EE0D3A, 0xC2FADF22, 0xBF211508, 0x3228E8AF, 0xE0170BEE, 0x26F8091F,
|
||||
0xDBFA02D2, 0xC810FE19, 0xE4DE1005, 0x18FF0D29, 0xE723F04B, 0xFDF2F1E7, 0xCF05DBD3, 0x0412F616,
|
||||
0x00DC234C, 0x1501EDD7, 0xD9EB4FED, 0x1C03BC2B, 0xE2FDF6D4, 0xE9EC10C4, 0x2426034D, 0xEDE33B45,
|
||||
0x05DC2304, 0xEDE81411, 0x11E416BD, 0x03D1DAA8, 0x04F72431, 0x30F15718, 0xF3F33534, 0xED043AD3,
|
||||
0x1CE8BC11, 0xEDE1EBF7, 0x242C0454, 0x0118D740, 0x07F3D01B, 0x0205D623, 0x15233E05, 0xF2EBE5ED,
|
||||
0xED2D3BAC, 0xEBF83CD1, 0xFCF9D421, 0x0B0934E0, 0x0A09E1E0, 0x1AEB0EC4, 0xF8FEDF26, 0xFCE8D53F,
|
||||
0x20E10846, 0xE327F5B1, 0x18E340F5, 0xF71ED0BB, 0x0EF5CBE3, 0xF4F11C36, 0x141BC343, 0xF4E7E5F1,
|
||||
0x30205809, 0x10EAC713, 0x22DBB603, 0x250AFC1E, 0xE4F3BB1A, 0x2316FA12, 0xDEE105F7, 0x12FDC7D4,
|
||||
0xFC212507, 0xDB290300, 0x1500ED00, 0x1EABBA27, 0xF14ECA2D, 0xF2D93625, 0x23F20502, 0xF0B9C8E6,
|
||||
0xEAD83EE1, 0x0C331CFF, 0x23D205F5, 0x0EC61906, 0xF128C9EF, 0xEF3CC800, 0x0B9DCDED, 0xF3C2CC3C,
|
||||
0x23EB04E9, 0x0B51CD13, 0xEADEC3D7, 0x222D06FB, 0xF0331904, 0x16C93F0C, 0xDAE5FE0F, 0x1F14B80C,
|
||||
0x001B28ED, 0x3F3B67F3, 0xEEEDE9EC, 0x1CE94514, 0x1D4145EF, 0xD8BA5019, 0xFC06D41E, 0x17BDC0DF,
|
||||
0x16D712E4, 0xE8041001, 0xEC2AEDDB, 0x11BE3803, 0xEBD2ECE5, 0xEF5A17F9, 0x2BFF52CD, 0xE958C126,
|
||||
0xEE1A1531, 0x0EBF1BF2, 0x18BC401A, 0x2AC2521C, 0xEE4817EA, 0x07482E20, 0x141314E0, 0xF41DCD15,
|
||||
0xDB10B40C, 0xC23700E9, 0x4221EB10, 0x4BE7E607, 0xEEF9DC0E, 0x62AC16DF, 0xE2E1C5D3, 0x27E4F70A,
|
||||
0x3213020D, 0x4ABE0A14, 0xACC1DE1B, 0xD636D416, 0xDFAF020E, 0xCE230828, 0x2615F6FB, 0xEA1002EE,
|
||||
0xD1351117, 0xB71C07F3, 0x03C9DF0C, 0x2B52DB0F, 0xD9AB02D7, 0xD20702D3, 0x48EEFB21, 0x3AE5E116,
|
||||
0xE728EE0E, 0x33C50F00, 0x363EF5EC, 0xD4FBF217, 0xB00FFDDE, 0x2333281A, 0x3624040C, 0x02DB0E04,
|
||||
0x3FDE27FD, 0x173716FB, 0xF20BEFF1, 0x3EF0191E, 0xB6B01719, 0x1BC7DD27, 0xE80AF3EE, 0x20BE101E,
|
||||
0xF42EF8E6, 0x40531BF9, 0x4646172B, 0x44DA1E1D, 0xC7F5E503, 0xF3E8F0E4, 0xA4E2E5EF, 0x42B935F6,
|
||||
0xEB1D1A1E, 0xE500ED0B, 0x2909F2CF, 0xCE0E0037, 0xD1320AA6, 0xEB01F9D9, 0x45E7ECC0, 0x4CFEE3D7,
|
||||
0x0EE024B8, 0xD3F31B1A, 0xE846056E, 0xF522EFFB, 0x5F1AE443, 0xCAF93620, 0x2CE9F23E, 0xDDE604F2,
|
||||
0x3BDDFC04, 0xC8EBEE13, 0xC11FF0F6, 0x18EBE9EC, 0xFAEEF1C7, 0xB6EFDDEA, 0xF8E123F7, 0x4EF4E1CC,
|
||||
0x430C271C, 0x3BE01CB8, 0xABE813EF, 0xCAEED439, 0xC1FAF3D1, 0x4E2F1656, 0x11E4DB0C, 0xDAF816DF,
|
||||
0x44E3FE0C, 0x2B1D1C0B, 0x3300FD28, 0xC320F4F9, 0x2A1DEB0A, 0xEA2502B4, 0x41061322, 0xC81518C2,
|
||||
0x1F2510FD, 0xD1E1F7F7, 0xBD1906F1, 0xF3C9E55F, 0xB3D91A4F, 0x0D0D26CC, 0xBD071B20, 0x41141BC4,
|
||||
0x2A1B19F2, 0x4902FDD5, 0xD6F9DE2E, 0x19190341, 0x09E80F11, 0x31FC1E2C, 0xEC1DF8F4, 0xCC0B14E2,
|
||||
0x51DFF3B7, 0x1AF028C8, 0x0F0E0E37, 0x2B041A25, 0x1A03FD25, 0xC5030FD5, 0xBCFAED22, 0x9A1F1CB9,
|
||||
0xCCE8C2F0, 0xEF1BF4BD, 0x21EC163C, 0xBAED07C6, 0x03F7E3D0, 0xC503DB2A, 0xC20C13E4, 0xD4F8EA30,
|
||||
0x391B0544, 0x59F3EECB, 0xAD0A311D, 0xFE0C2C33, 0x250CDBE4, 0xC5E80341, 0x3B0914CE, 0xC0F2ED36,
|
||||
0xC204182B, 0x3B0C16E5, 0xFFFF1429, 0xC316D8C3, 0xE408EB1F, 0x3713F4C4, 0xE4F2F01A, 0x0A280C01,
|
||||
0xEC0FE318, 0xCB16153E, 0x5C04F2D4, 0x281F35F8, 0xE4D80051, 0x4E0A0CE3, 0xB107DB21, 0xD1DED9FB,
|
||||
0x380AFACE, 0x50CC105C, 0xD9D80100, 0xF40ECCE6, 0xDADC03B4, 0x0AE5E243, 0x0C22E4FA, 0x08CD1F5A,
|
||||
0xE2D1F7A9, 0x12CE39A5, 0xFFDDD7FB, 0x032C2BAC, 0xF1D9E700, 0x14003B28, 0xFC08D420, 0x08093131,
|
||||
0xFEFFD7D7, 0xBB219348, 0x07DC2E4C, 0xDF0DB8CB, 0x22EB06EC, 0x0BE034F8, 0xF10FC819, 0x1623EEFA,
|
||||
0x0D1DE6BA, 0xDA1AB142, 0x1C16F4EE, 0x27F500E2, 0x1137C85E, 0x1C0BF434, 0xF004C924, 0x02EBD9ED,
|
||||
0x1BF943D2, 0xE7F80F30, 0xEFFE39D9, 0x2CFA5323, 0x04242DFB, 0xF420E347, 0x15F43C33, 0xE9F41134,
|
||||
0x20EBB8C2, 0x0205D523, 0xECE03DB8, 0x10F3E935, 0x180BC11E, 0x12E2C7BA, 0xE70B4233, 0xEED8EAB0,
|
||||
0x110E3936, 0xFEE327F5, 0x12E60017, 0xFE4026F3, 0xED26C518, 0xE5E9F2FF, 0x200C08EE, 0xEF1439E4,
|
||||
0xE92010ED, 0xE1B80908, 0x18584021, 0x24FBFC31, 0x00AE2823, 0x040CDC2A, 0xDE34FBE5, 0x1439C30D,
|
||||
0x0DB7E6EF, 0xE6090F21, 0xECAF3C20, 0x10DFE8D8, 0x0CC0CCF9, 0x15061318, 0x043723DD, 0xEA3A3DF0,
|
||||
0xEC18C413, 0xFE2BD611, 0xE3BC45FE, 0x16FCC11D, 0x120E39DC, 0xEC00141B, 0x13F03B27, 0x24D2FC18,
|
||||
0x0917E1FB, 0x113BEAEE, 0xE9FE11EE, 0x2C505427, 0x0D0B3529, 0x15E73E1E, 0x0FD91AF1, 0xDFF8B6FF,
|
||||
0xF413CCE1, 0x1EEFB9EA, 0xDCD04C17, 0xCEC25AF8, 0x1AB2BE17, 0xD8BEAFDA, 0xE6CEBD19, 0xFCC42CF6,
|
||||
0xDE19FA15, 0x250203F2, 0xA90042DB, 0x242A2F1A, 0x004D0401, 0x0B4C2825, 0xACB61DDD, 0x07422CDE,
|
||||
0xCDFEDFE7, 0xAFF8F527, 0x35052820, 0x0B34F2DD, 0xD648E2F3, 0x3DDF02E0, 0xFE42EBF8, 0xC1F6251A,
|
||||
0xBA0DE9E2, 0x442FE2E5, 0xD014E308, 0x2DB409EC, 0x50F8FADC, 0x264BD8E0, 0x2E0FFEDC, 0x1E2D051A,
|
||||
0x0FD20AFB, 0xCE1CE7FA, 0x35CDF6F4, 0xFC49F3F4, 0x642FDCDF, 0x3625C507, 0xDF140FFC, 0xDB21F913,
|
||||
0xC7D5FDF9, 0xCEE112FE, 0xD1D4F7F8, 0x5D410704, 0xD914CC19, 0xCCF800EC, 0xE3E00C1F, 0xCD05F408,
|
||||
0xC952F4DD, 0x444EF02A, 0x1E15E526, 0xD73909ED, 0xFA1900EF, 0xFFB6210F, 0x06EB27DE, 0x0B5BDF13,
|
||||
0x1B4F1D33, 0xCDF5F4D9, 0x00F40C1D, 0xC6031CDC, 0xF91C13F4, 0x061321C6, 0xBFDD2206, 0xEE13193C,
|
||||
0xFF1C17BB, 0xA91E27F5, 0x25ECD13C, 0x0CF90321, 0xBA1FE5B8, 0x50151F3D, 0xE935285D, 0x330A10CE,
|
||||
0x3EE6F542, 0xE80AEA1E, 0x45251103, 0xC014E3EC, 0x2D2C1854, 0x9F0E0536, 0x2E14C7C3, 0xECE50642,
|
||||
0xE6E214F7, 0x1021F208, 0xBCDC19FB, 0x4B281BFF, 0x0CDFDEB7, 0x21E91CEE, 0xC22FF856, 0xA2F3EAE4,
|
||||
0x5810CB18, 0xE416D03E, 0x25E3F40C, 0xF4180340, 0xFE0EE4C9, 0x433C2763, 0x38F11BE7, 0xE5FC11D4,
|
||||
0x1E11F4C6, 0x491D0ABB, 0xC0E72140, 0xB226E84F, 0x122E26AB, 0xEAF116E7, 0xD5E4EE0B, 0xF4FB0323,
|
||||
0xDCE61D42, 0x05F1FCE7, 0x0DDCDDB4, 0xF9E42000, 0x181610EE, 0xE1F246CA, 0xEDEDC53B, 0x14DEC5B6,
|
||||
0x1E02F629, 0xDEE749F0, 0x1C02BDD7, 0x1EF3F5CB, 0x11E8C640, 0xFA272301, 0xF3FC352C, 0xFDD52553,
|
||||
0x09191FF1, 0xDB11FEE9, 0xF7EB1FEE, 0xFFF9292E, 0x0A2032B8, 0x0C1BCDBC, 0xDDFFFBD9, 0x1BEABDEF,
|
||||
0x19F84130, 0xECE5ECF3, 0x271302EB, 0xE7EB423D, 0x1E2146B7, 0x14E13CF7, 0x16FE112B, 0xEB211308,
|
||||
0xDAD802B0, 0x0017D811, 0xFE26D901, 0x0D0ACBE2, 0xF2ED1A3B, 0xFBDED206, 0x18F0F1C8, 0xD1EFA9C6,
|
||||
0xE5E1BDF7, 0x1514C314, 0xF9FCD1D3, 0x02EB2BED, 0x0EEB1BC2, 0x2427B5FF, 0x0B2233FA, 0xFE0FDBE8,
|
||||
0xF7DDCE04, 0x03F42BE3, 0x0525D202, 0xF9B20021, 0xEF0FE926, 0xF505E318, 0xF7DF1F23, 0xEADF12F8,
|
||||
0xF12C3807, 0xDF01FA04, 0x1D23F426, 0xF1231A05, 0x20F549FB, 0xE0F0F9E3, 0xDB67B418, 0xC6E5623F,
|
||||
0x212AF90D, 0xE6C7BD02, 0x24CA4C11, 0xE249F6F1, 0xE8383F21, 0xFC212310, 0xF7561F07, 0x25C4032E,
|
||||
0x070EDE14, 0x1437151A, 0xE93C4010, 0xF10CE615, 0xDB0D4D1C, 0xFAF6221B, 0xF5F3E21E, 0xE2470B1B,
|
||||
0xE71BC01F, 0x07B0220C, 0xF311CAD8, 0xFF052816, 0x1DC20BDC, 0xE7BB40EB, 0xF5DEE21E, 0x013527FB,
|
||||
0x0FF519F2, 0x1AE9BDE4, 0x2B0F53F0, 0x13C6C5E8, 0xF12636ED, 0x10BD38FE, 0xDD0606E4, 0xDA5C4FDE,
|
||||
0x1329C5CC, 0x0DC8CA00, 0xD33956F0, 0x0700D711, 0x31B1DE02, 0x210C09D9, 0x0C2EF81B, 0xF5FFE406,
|
||||
0x27C1E2DA, 0xCB1801E8, 0x38C70EF0, 0x0D1EF0EF, 0x142E1C0B, 0x0B00EB06, 0x5D441DD8, 0x1E4035E5,
|
||||
0xFD3C0AE8, 0x3732DCEC, 0xC8B5F00A, 0xB9BF1023, 0x0AF22018, 0xC6DDE21A, 0x18EF1306, 0x1AC8F1E9,
|
||||
0x1F020EF0, 0xEA0209DB, 0x41CFEEDA, 0x21E31AF8, 0x4BBD070A, 0xEECFDD1A, 0xD4DB15F8, 0x430FFC02,
|
||||
0x15361A18, 0xCF17ECF1, 0xE42009EF, 0xC21CF4F8, 0x3DDFEAF3, 0x3E0916F9, 0xF028151F, 0x03CA1700,
|
||||
0x983B26F1, 0xDE2AC112, 0x209FF9FD, 0x1935F7C6, 0xED18F1F3, 0xBFD0EA0F, 0xC5071908, 0x1F4E13DE,
|
||||
0x17F00926, 0xF80DEE19, 0x4DF01FE6, 0xB7D2DB18, 0x0AF5E0F9, 0x4043E21D, 0x4AD517E5, 0xB0CFDE03,
|
||||
0xFB22D90A, 0xDF5023F9, 0xDABDF828, 0x1911011A, 0xBDF30FE8, 0xCEAA1A1A, 0xB0D2F62D, 0x3AAC28F9,
|
||||
0x42D6ED2D, 0xA83D1B02, 0x1831D1EA, 0xF11D10F7, 0x1D201AF5, 0x394F0C07, 0xB327F0D9, 0x3254DA01,
|
||||
0xEBF40AD5, 0x26A413E4, 0x5113FECC, 0xD4F32915, 0xDDB3FD1A, 0xC0D2FB25, 0x02DEE7FB, 0xC33DDB05,
|
||||
0x01021615, 0x0B1D27DA, 0xCBC2E2F6, 0x193CF3E9, 0x27E2F1EC, 0x5A1BFF0A, 0xE8CF320D, 0xBD4DF0F8,
|
||||
0x0F291A26, 0x1817E7FF, 0xEFCB10F0, 0xD40CE9F3, 0x0606041B, 0xFABC2322, 0xE0E9DEE5, 0x1BD80710,
|
||||
0xC015F301, 0x4718E8EE, 0x69D81E11, 0x19F6BF00, 0xF60F1E00, 0x3002E225, 0x29EA08C1, 0xF4EA00EF,
|
||||
0x3910E5E7, 0xDB0B12E4, 0x2A3E0265, 0x3BE8FE11, 0xBBEFEEE9, 0x151BE2BE, 0x1E2314FB, 0x4C2DF754,
|
||||
0xD5F823E0, 0x10200247, 0x01DB194D, 0x1B17D93F, 0x5806F42E, 0xFA19D040, 0x040BDF1D, 0xFCCB25A4,
|
||||
0x39D9DC00, 0x2C0EEFE7, 0x20F3FDCB, 0xC2E70841, 0x3EEFEAE9, 0x32EDEAC5, 0xAC1BF70D, 0x0C15D4C3,
|
||||
0x4CE7E5BF, 0x26F024E9, 0x061AFE0D, 0xDE13DEC5, 0x09DE0706, 0xFC0C1FE5, 0xD41CDC0B, 0xCC1DFBBB,
|
||||
0xC6020CDB, 0xCD16133E, 0x3FF30CCC, 0x0B2D16AB, 0x3800E3D9, 0x3AFCF0DC, 0xE4FFED27, 0xFCF9F3E0,
|
||||
0x05FF24D9, 0xE1F9DE2F, 0x391908F2, 0xC8F211CB, 0xEAEF003D, 0xDC1C040D, 0x25F74ECF, 0xE41F0CBA,
|
||||
0xDF1708EE, 0xE016F83F, 0x1D124515, 0xF325344D, 0xE114F63C, 0x261FFEB9, 0x02F02739, 0xF12018F8,
|
||||
0xD9124F3A, 0x1E1A45F3, 0x1504142C, 0xDDF506E3, 0xEAEAC113, 0xDE1AFB42, 0xF113C93B, 0x1721C207,
|
||||
0xE3D4BB54, 0x070A2FCE, 0x0C0AE41D, 0xF90D3035, 0xE6DCF2B4, 0xFB15D4C3, 0xFE2425FC, 0x03002B28,
|
||||
0xE50AF433, 0x07EC2FC4, 0x07E921EF, 0xFE09DAE1, 0xE21EF6B9, 0xF3E6360D, 0x17EE3F39, 0xE7FA0E22,
|
||||
0xF5151DED, 0x1EF945DE, 0x0D1236EB, 0x0AFD32D6, 0x0928CFFF, 0xDCDAFD02, 0xFB272D00, 0xCE025B25,
|
||||
0xEA0D3ECB, 0xE3E2BBF5, 0x06D32354, 0xF4DDCCB6, 0xE4002245, 0x213AB706, 0xECCCC3ED, 0x3CED9C0B,
|
||||
0x15D23C14, 0x0BE7E3F9, 0x1FE70A0E, 0xF30D350F, 0x1928F01B, 0xD50AAE01, 0x120AC6E1, 0x0ED4C91E,
|
||||
0xFFF7D804, 0x0D0CCA1F, 0x0433DBE4, 0xEA0DEFF5, 0x36FB5E1C, 0xEB11ECDC, 0x23C0FB17, 0xEBC63C17,
|
||||
0x272800EF, 0xFC34D4FF, 0x0AB8E2F5, 0x01FB2AE0, 0x090630DD, 0xFE0AD522, 0x1B10BD1D, 0xDF520719,
|
||||
0xF12436D5, 0x1D20BAFC, 0xE442BCF8, 0x05E0DDE6, 0x183FF1F8, 0xF816E118, 0xE3C9F4EE, 0xF2F51AF0,
|
||||
0xFE5126E4, 0x1E31F7D7, 0xF9362F09, 0x15E43CF2, 0x0D3EE50C, 0xF74931EA, 0x23EEB621, 0x02B9DAE9,
|
||||
0xDFE5B71F, 0xFD46D50D, 0x103E181F, 0xDF580717, 0x00C3EC31, 0x0CF714EC, 0x4ACCE41E, 0xF2E0DEF4,
|
||||
0xB0431A08, 0xBD38D8E6, 0xEED6E510, 0x41B8EA02, 0xEC36E61F, 0xBEE9EBF3, 0xBE28E712, 0xF6051BFF,
|
||||
0x2FE5E222, 0x2ADCFAF2, 0x3834FF04, 0x2AD1100D, 0xF4C502F8, 0x4DE7E414, 0x07A5DA10, 0xD1A92133,
|
||||
0xB6ACFAD2, 0xCF51222C, 0xCD1BF8D7, 0x3F16F50E, 0xEEF4EA12, 0xA52F161D, 0xC4B3CE07, 0xB622EDDC,
|
||||
0xDE2ADE06, 0x4FC8FB02, 0x6EDED9F1, 0xFC19B9F9, 0xD5B4DDF1, 0xDFC30423, 0xDFFBF9EA, 0x012C07DD,
|
||||
0x12AF2805, 0x1A2EEAD6, 0xF8A1F207, 0xC0BA21CA, 0xFFDCE9E3, 0x36BFDA03, 0x05DD0E19, 0xF905DDFB,
|
||||
0x32AEDF23, 0xFDFB09D5, 0x45D5DA23, 0x4B3E1CFD, 0x0905DDEA, 0xDFE2DE00, 0xB1FB07DD, 0x33EA2813,
|
||||
0x02ECF5C3, 0xED0CD91B, 0x0D1BEABD, 0x4A17E5C0, 0xF707DFDF, 0xEE191F41, 0x19EC15C5, 0x4112F1EB,
|
||||
0xD4F01AE9, 0xBF21FC06, 0x19DCE605, 0x2F0C10E4, 0x181FF947, 0xC00AEF1E, 0xF72EE8AB, 0x42F8E2E1,
|
||||
0xA3EFE7C7, 0x31133514, 0x1EF608E2, 0x0DECF6EC, 0x0CECE5C5, 0x3DD31D54, 0xECE21545, 0xAE0CECE5,
|
||||
0x49202B08, 0x0EFE2026, 0x13F41B35, 0x1B0BEB32, 0x1719F30F, 0xECDAF0FF, 0xECE9ECC0, 0xF212EC3B,
|
||||
0x3DE8E6EF, 0x13F2EB1B, 0xB008EBE0, 0xBAE22845, 0x1A111DEA, 0xDBFC0EDD, 0x3F29FE50, 0xCDF817E0,
|
||||
0x4B030CD5, 0xEADCDE05, 0xC31312C6, 0x272EEAA9, 0x340201DA, 0x17F400EF, 0xED1F1608, 0x24D24B55,
|
||||
0xF4091DCE, 0xF51633C2, 0x03D32B56, 0x2325FA4D, 0xDEDA05FD, 0x01F72831, 0x04F12C19, 0x2716B1C3,
|
||||
0x1B19F3C0, 0x10E2C909, 0x050C2233, 0x03F22519, 0x1C06F422, 0xE7D70EAF, 0x03D725AF, 0x13EC14EB,
|
||||
0xF6F631E3, 0xF900DE28, 0x1FE2F7F6, 0xFBE9D2C1, 0xFBEFDDE9, 0xE110F7C8, 0x1C290C50, 0x27D9FFFF,
|
||||
0x07E421BB, 0x3BE89CF0, 0xF50733D0, 0x2514B2EC, 0xF5EB1DED, 0x0619D241, 0x1FE8B840, 0xEEEA3B3E,
|
||||
0xED1F1648, 0xFF15D73E, 0x0123D805, 0x0310D5E8, 0x010ED819, 0xECE53B43, 0x03E1D547, 0x01D9D6FF,
|
||||
0xDFE3B745, 0x1C14443C, 0xDF0908E1, 0x03FE2ADA, 0x1306C5D2, 0xDD001004, 0x1F3AF818, 0x1A3BF3ED,
|
||||
0x1EBC47EE, 0xF83E1F1B, 0xE21445EA, 0x2101B713, 0xE81AF126, 0x1930BFF3, 0x1533C408, 0xEDBFC60C,
|
||||
0x060F2EE8, 0x06BDD11A, 0x04F524E4, 0xD94C001E, 0x0334DCDD, 0x06F1D30C, 0xFBDBD219, 0x0EBE1A03,
|
||||
0x08D230E5, 0x250B4DFA, 0x0903311C, 0x14233C25, 0x1ABAF205, 0x30C5581D, 0x02FAD712, 0xDF2108DE,
|
||||
0x02DDDB07, 0x1D47F606, 0x0EEF191F, 0x1B3AF2E9, 0xF9E52E12, 0xF0B1C8F4, 0x290CAF28, 0x0013D8E5,
|
||||
0xE1B50AEC, 0x1A224322, 0xFDE8DB06, 0xF8A531EF, 0x0DD1CCCD, 0xE81AC007, 0x201048F3, 0x1800F1E8,
|
||||
0x000BD8D9, 0xEC2A13E2, 0xF3EE3502, 0x282F0117, 0x08F8E006, 0xFE542620, 0x19E9C0D3, 0xDD140412,
|
||||
0x1119C6EB, 0xF6C2E10E, 0x1EC50BEB, 0x15BD13ED, 0x143DC51B, 0xE5F2BE14, 0xF552E41A, 0xE10FF62A,
|
||||
0x2A0B5218, 0xE33A0CE2, 0x02D7D612, 0xE1A7B800, 0xD8C10031, 0x0810E0E9, 0xD93AB0E8, 0xF8113011,
|
||||
0x15B73C17, 0xFE46D520, 0xF6C51EE3, 0xD51A52ED, 0x1A0ABD0E, 0xFBF8DEE2, 0xE245BA20, 0x2225FB1E,
|
||||
0xEC3A3CFD, 0x19340EEE, 0x08FE20F4, 0x1F154727, 0x05F8D213, 0x16F2EEE1, 0x22B6FA1A, 0xF404CCDF,
|
||||
0xE22E4624, 0xFB3FDDFB, 0xE6F7BF17, 0xF0B6E71F, 0xF013E723, 0x17081114, 0x24EBFCE0, 0xFBE52DEC,
|
||||
0xE9C310F3, 0x26F04E15, 0xF145E8E8, 0x122B17E2, 0x0D40CCFD, 0x43CA96E8, 0x421D0F00, 0x27DCE70B,
|
||||
0x233B00FC, 0xCC44FAEE, 0xE0BC0BE3, 0x1BE7071C, 0x01C7F20F, 0xB29B28F0, 0xFB02DBC4, 0x32092326,
|
||||
0xE648F5E2, 0x4707F2DF, 0xDF36E2E0, 0x1CC308F2, 0xBBA50DEB, 0x1DE71D34, 0xCE36F5F1, 0xCDF90AF2,
|
||||
0x0FDE0CE0, 0xCF0C1906, 0xE0E509E4, 0xBC37F9F3, 0xDA06E510, 0x1FD3FDDF, 0xDB09F705, 0xF445031E,
|
||||
0x24311CE2, 0x55EEFDF8, 0x3CEDD216, 0xAFF01516, 0xCA3D29E8, 0xCCAEF1EA, 0xE0F60CD5, 0x4CECF7E2,
|
||||
0xDCD5DBEB, 0xAEC2FC02, 0x4825D7EA, 0x252D2004, 0x24F604FB, 0xD9D7051F, 0x1AF201FF, 0x3DE70EE6,
|
||||
0x43BCEC0F, 0x43D8E5E4, 0x20EB1BFF, 0x2AAFF814, 0x021A02D8, 0xD80C26F2, 0xDB00001C, 0x2BF2FCE6,
|
||||
0x181F0347, 0xAFE8F0F1, 0xE31D2A0B, 0xD015F4C2, 0xEF02072B, 0x361717EF, 0xFA25F2B3, 0xEEFADE22,
|
||||
0xEE21EBF8, 0xD6F5EA1D, 0xBF160212, 0x03E6190F, 0x452126B7, 0x32D91DFF, 0x2D000A28, 0x25F205CA,
|
||||
0xDEED043B, 0x36DCFA04, 0x13EAF112, 0x141915F1, 0xF2F0EC38, 0xBC20E6F8, 0x0BF2E519, 0xD0F11D19,
|
||||
0xC7F6F932, 0xBFE2EFB9, 0xA4F919DF, 0xFFEACCEE, 0x3BDBDAFC, 0x2B1E1245, 0x5CEBFC14, 0xDB10CD18,
|
||||
0xB718FE40, 0x0BE92012, 0x2414E2C5, 0x3B09FCE0, 0x17DF1306, 0x212F12A9, 0xC71407C4, 0x0901EFD7,
|
||||
0x22EAE23F, 0xE7E805C1, 0xC6F21037, 0x4A111218, 0x1AEC22EC, 0x27E30EF6, 0x0C000134, 0x1BF10D37,
|
||||
0xFD1F2A09, 0x1AEFF3E9, 0x160F3EC8, 0xEC173B3F, 0xE8F711E1, 0x050A22CD, 0x15263DB1, 0x07012127,
|
||||
0x1D22BBB7, 0x34E3A5BB, 0x19210FB8, 0x17D41254, 0xD822B1FA, 0xE6DE0E06, 0x1519ED40, 0xDDE54CBE,
|
||||
0x1EFC0BD4, 0xFE0D2A35, 0xE8EF40C7, 0x09E5E1F3, 0xF60631DE, 0xD6EDADC5, 0xE61A0FBE, 0x091C30BC,
|
||||
0x0514DE3C, 0x1D1A45BF, 0x03E0DC08, 0xF4FE1C25, 0x1D260BFF, 0xF6FD3126, 0x1013C8EA, 0xFE18DB3F,
|
||||
0xDF114916, 0x1806BF2D, 0x0E0535DC, 0xE5ED0DEB, 0x1EE445F5, 0x16DC12B4, 0x23FA4B2F, 0xFFD6DAAF,
|
||||
0xECF714E2, 0x273D0066, 0x1B15F313, 0x1D0CF533, 0x17003E28, 0x1FD3F654, 0x00EFB117, 0x1C13BBD9,
|
||||
0xF5C21D15, 0xF1CF3715, 0x244A0309, 0x09321FDD, 0xEFF81609, 0xE1ED091F, 0xFDFA2A16, 0xF742D022,
|
||||
0xDCECB51B, 0x16FAEE14, 0x140C3C21, 0xEA0AED1B, 0x24E94CE2, 0x17E03F12, 0x1E01BAF9, 0xE82E4128,
|
||||
0xEE311506, 0xF7FEE1F6, 0x0661DFD9, 0xDFB1FAC8, 0xFF282928, 0xEA3412FF, 0x104FC80C, 0x00ABD927,
|
||||
0xEE32EA2D, 0x153B3D09, 0xFCB82DEC, 0xE9E8C021, 0x09BECEF0, 0xFCCA2D19, 0xDF09F90F, 0x013F2AE1,
|
||||
0xFC44D4E9, 0xFD24D6E5, 0x1C0CF3FB, 0x2601021C, 0x1AB6BED9, 0x04B7DCDD, 0x102BC8E0, 0x09331EFC,
|
||||
0xE8ACC1F5, 0x222E4BD4, 0xF715E1FA, 0x23484BED, 0xEB3913E0, 0xDFE4B711, 0x0C411B0D, 0x18FEE800,
|
||||
0x42231127, 0x493B19FC, 0x39BCDE12, 0xFB46121B, 0x452DDDE2, 0xEA0DE3FB, 0x2109EF1A, 0x1B3CF81E,
|
||||
0xE228F2EC, 0x48ADF6FF, 0xC2C0202C, 0x9F3FEB19, 0x192BC8E9, 0x2B0F0F04, 0x4F2DFD19, 0x1045D9FB,
|
||||
0x0B3FE8E2, 0xF2FBE316, 0xBC0EE623, 0xB301E419, 0x1F2226D9, 0xBE0009FA, 0x27121A27, 0xF95002EA,
|
||||
0x4714DED8, 0xBAE6E1ED, 0xC5191EF2, 0x3B2E14F1, 0xFB0FEC06, 0xDAB123E7, 0x3DDBFFD9, 0xC318ECFD,
|
||||
0xDFD014EF, 0xB23D0608, 0x11E326EB, 0xC4CAE90B, 0xD847EC0D, 0xDFC3FFE2, 0x55BD0815, 0x17F9D3E5,
|
||||
0x3EE91121, 0xF9C41712, 0x22AFE0ED, 0xCDE7FBD7, 0x1BC9F5F0, 0x0422F4F0, 0x200EDC06, 0xC3F700E6,
|
||||
0x3B20EBF7, 0xD115EDEE, 0xC3ED08EA, 0x5AFEEC29, 0xC21F3247, 0x3315163E, 0xE330F659, 0xEAF5F5CC,
|
||||
0x1716113E, 0x4CE611BF, 0xD517DBC2, 0xB2EF043A, 0x45DD25B5, 0xC0151E13, 0x131CE843, 0xFFE4EB44,
|
||||
0x5FFB27DC, 0x381336EB, 0xB8EFF017, 0xECF720CF, 0x200B131D, 0x0622F805, 0xBA07DD30, 0xD9061FDE,
|
||||
0x30EA013D, 0x40300858, 0x9AD917B2, 0x270FC1C9, 0x1209FFCF, 0x201716EE, 0x2A050723, 0x1BEF0239,
|
||||
0xBF18F310, 0xA83719A0, 0xA9DDD105, 0xE70F3037, 0xDE0D0E1B, 0xE1D4F955, 0x0CF00AC8, 0xE80FE4C9,
|
||||
0x1BE2100A, 0x40FB0EDC, 0xDD1A17BD, 0x4E1604C2, 0x5CE7270F, 0x2BF635E3, 0x00D80350, 0xFD0027DB,
|
||||
0xDD22B54A, 0xEAE11247, 0xF705CE22, 0x01F2D736, 0x1D17443E, 0x1D0145D8, 0x18181111, 0x04FEDCDA,
|
||||
0x01EAD7C3, 0x05DC23B5, 0x1FCFB959, 0x1A0A431E, 0xFCDC2CFC, 0xD61452EC, 0xECF23DCB, 0x31D6A652,
|
||||
0x261BFE0D, 0x0CD73552, 0xEAFB11D3, 0x10291952, 0xF7F41F34, 0xEC1E3CF6, 0x180A41E2, 0x03FBDB23,
|
||||
0x2026F9B3, 0x0C02E42A, 0x08F030C9, 0x0E19E70E, 0x0F1519C4, 0xDCE703F2, 0x100CC833, 0x0105272C,
|
||||
0x01252903, 0x0DCCCB5C, 0xD21AAA0E, 0x2917AFC0, 0x1BEA0E3F, 0x2A1B52BE, 0xF2E8CAC0, 0x1DDDBB4C,
|
||||
0x0215D73D, 0x0DF7E5E1, 0x08E230F5, 0x0EDFCA4A, 0x19FE0ED9, 0xE6EC42C4, 0xFB1D23F4, 0x22090632,
|
||||
0xEA073F21, 0x06ED2115, 0x180BBFCC, 0xE6E20EF6, 0xE512F23A, 0xE21BF7F4, 0xF9F22E37, 0xF82B2F53,
|
||||
0x1CF94421, 0x16D8C2B1, 0xD9F4FF1C, 0x23EC4B14, 0xF5F03339, 0xFE172B40, 0x1C2F0D57, 0x230A0632,
|
||||
0xECDA3CFD, 0x1306C52D, 0x01D3D856, 0x1D2846FF, 0xF9D82150, 0x1B0CF31D, 0xEE03C626, 0x1AFFBED8,
|
||||
0xD605AEDD, 0x2403FD25, 0x01EC28C3, 0xF1E1C8F7, 0x06E7D140, 0x09CF325A, 0xF2151AC3, 0xE7F8F120,
|
||||
0x0A2BE353, 0x23E5FBBD, 0x1C1645C1, 0xF716D011, 0xF6ED1D15, 0xFB2123B7, 0xE2070A2E, 0x16F7C2E0,
|
||||
0xE6100D18, 0xFB19D440, 0x2FF15619, 0x1F0FB938, 0x0101272A, 0xF8F42F35, 0xF3DFE649, 0x21E549F4,
|
||||
0x0D430000, 0x400EE51B, 0x452E181A, 0xF1411DFB, 0xF4DC1919, 0xF247E3FC, 0x33141AE1, 0xF81CF515,
|
||||
0x3115200D, 0x3FCFF713, 0xE9DA17F6, 0x0BF31102, 0x17D1E3E5, 0x0E9712FA, 0x2EAFE6C0, 0x5900F928,
|
||||
0x50D8CE27, 0xCDACD9FF, 0x41BB0B2B, 0x2AC9181E, 0x13E1020F, 0x0708EC08, 0x09D220E1, 0x1EC0E206,
|
||||
0x1F2BF6E9, 0xD23809FD, 0x46D3FBF0, 0xF617E2FB, 0xF4F61EEF, 0x31D71BE2, 0x1AD4F7FE, 0xB534F103,
|
||||
0xDE15DD0C, 0xC7FBFA12, 0x1931F0DC, 0x4AD8F1F7, 0x4937DEFF, 0xF908210F, 0x35D121E0, 0xECCC0EFA,
|
||||
0x34CBEDF5, 0x062A0CF3, 0xE4B12103, 0xD73DF427, 0xDCE8FE15, 0xB4FC04F0, 0x0B06DC23, 0x16391D22,
|
||||
0x23051310, 0xE6FCFADC, 0x1C95F2DB, 0xE3DE0DBD, 0xDB270A05, 0xB4EEFC00, 0x1845DD16, 0x0149F11D,
|
||||
0xC6D52621, 0x1E34EE03, 0x17D20AF4, 0xA10611FA, 0x20F937DE, 0x5D17F8DF, 0xA00435EF, 0x3ECEC7DC,
|
||||
0xF9D8EB0A, 0xFC332200, 0x1DE9DBF5, 0x2E580CEE, 0x3E1AF9D1, 0xC64715F2, 0xD7CB121F, 0xEFF400F2,
|
||||
0x084CEAE4, 0x064DE0DD, 0x2B10DE25, 0xC1FB0218, 0xD4F8EADE, 0x32D6FBE1, 0x0F65F602, 0xEC32E83C,
|
||||
0xD2F613F5, 0xC526F9E1, 0xF0F51302, 0xF5B017E3, 0xFA0FE4D7, 0xFACBDFE8, 0xC0F222F2, 0xD630E81A,
|
||||
0xD6DEFEF8, 0x33A602F9, 0xC826F633, 0x10E51002, 0x0308E9F3, 0xE011251F, 0xBAEAF8EA, 0x26F21E12,
|
||||
0x0000021A, 0xE00E08CB, 0xE0ED0715, 0xE71CC0F4, 0x0A1ECE0A, 0xDB260303, 0xE7E2BEF5, 0xDDE705F0,
|
||||
0xDA0BFEE3, 0xF6D83250, 0xF4FA1CD3, 0x2805FFDC, 0x1DDBBAB4, 0x1611C218, 0x18E13F09, 0x1C1D0DF5,
|
||||
0xDC25B403, 0x2BF6AE32, 0x180F4136, 0x39FC61D3, 0xF3DE1BFA, 0x1AD94100, 0xE8F8BFDF, 0x0826E0FE,
|
||||
0x1AE142B8, 0xF80F20C8, 0x0116D9EE, 0x22E84BF1, 0xEB22C3B6, 0xEE01EBD7, 0x0EE8CA10, 0xD8FA00D1,
|
||||
0xEB073DD1, 0x1EE3BBBB, 0x12EFC639, 0x3708A121, 0xDFDB49B3, 0x28D85000, 0x0C003429, 0x000D28CA,
|
||||
0x12D1C6A9, 0x0D061B2D, 0xEBDCC304, 0xEF05C8D4, 0xDACD02A5, 0xF3F7CAE2, 0xE5144313, 0xFC222B4A,
|
||||
0x23F4B51C, 0x18270FFE, 0xEDDC3CB4, 0xE9213F49, 0x1EF309CB, 0xE3E5BB44, 0x0AF6E333, 0xE1EF473A,
|
||||
0x080DD036, 0x0FEB38EE, 0xFE0629DE, 0xDAFCB224, 0x0DF9CB21, 0x07D3DFAC, 0x06F822D0, 0x1E1ABAF1,
|
||||
0x00F32835, 0xE00AF71E, 0x08E2D009, 0xE003F9D5, 0xD5F2AECA, 0xF4EFCCEA, 0x0B0E33E5, 0x0D271A00,
|
||||
0x1232EB59, 0x07DBDFB4, 0xD2ECAAED, 0x17FC40D4, 0xDAEB0313, 0x07E8E010, 0x07F5201E, 0x13173CC1,
|
||||
0xDBDCFDFD, 0x24ECFBC3, 0xF2D9E6FE, 0x420695DE, 0xFC172C11, 0xDF0F06C9, 0xF413CC3C, 0x1B11F217,
|
||||
0xE01148C7, 0x1EEEBA3B, 0xDDDCFCB3, 0x24E1B4F6, 0xF4DA3303, 0xF1FC192C, 0xEAFC11D4, 0xEAD41354,
|
||||
0x22ED06EC, 0x23090000, 0x0BE7FBE1, 0xE0BFE4F0, 0xF2C4F818, 0xE5BEE6EC, 0xDD3E0DE7, 0xEB360516,
|
||||
0xFBC6ECF2, 0xFCEC23EE, 0x0A20DD13, 0x12211FF8, 0xF23A1706, 0xCC36E6EF, 0x1C26F5F2, 0x2F05F303,
|
||||
0xF540FA23, 0xFE4FE3E9, 0x23CED927, 0x18C2FA0A, 0xD1A411EA, 0x1A4306CB, 0x474E0EE6, 0x21331FDB,
|
||||
0x2C33070B, 0xC60804F6, 0x515A12DF, 0xE8FDD7CE, 0xD7171126, 0x1043FF11, 0x48F8E81C, 0xCF48E021,
|
||||
0xF9CA09E0, 0x2B26210F, 0x1F10FD02, 0xC9ECF8E7, 0xF9D30FED, 0x33222205, 0xC44E0A05, 0x41381425,
|
||||
0xCEC21811, 0xCFFFF5EA, 0xC0E7F727, 0xF5481810, 0xE247E3E1, 0x11150AE0, 0x40C116EE, 0xFDEC18E9,
|
||||
0xCF0F2415, 0x46E5F6E6, 0x430D1DF3, 0x11EEE61A, 0xA45017EA, 0xF1BBCB28, 0x35DC19E3, 0xECBC0CFB,
|
||||
0x3631ED1D, 0x202C0EF8, 0xE7D2F8FC, 0x441910FA, 0xBED4E4F2, 0xCE3DE6FD, 0xD8CB0B15, 0xDE3C01F2,
|
||||
0xD7F1F914, 0xFDCE00E7, 0xBDEF240A, 0x2CC5E616, 0x1C16FCED, 0xE805F412, 0xE4F11023, 0x14110DE8,
|
||||
0xE2ED1418, 0xD7F7F6EC, 0xF8E9001E, 0x18C3E111, 0xAA4BF1EA, 0x2BB02DDE, 0xEB18FDD9, 0xEECFED11,
|
||||
0xAEF8E9F7, 0xB0D129E0, 0x1952D9FA, 0x07D40ED6, 0xB13EDF03, 0xC74C28E9, 0xD7DB12DC, 0x0B11FFFD,
|
||||
0xCEFC1D17, 0xC34CF623, 0x4A011523, 0x0410DDDA, 0xF2072317, 0x33101B21, 0x35F7F4E7, 0xF2CBF3E0,
|
||||
0xAACDE6F4, 0x00002F0B, 0xE51344C5, 0x1211E938, 0x091EE1F6, 0x26CD02A4, 0xE028F84F, 0x2522B206,
|
||||
0x1BFDF3D5, 0x0C23CC06, 0xE809C031, 0x19D30F54, 0x1B0DBD1C, 0x2EE256F5, 0xE11A080E, 0x17DF11B8,
|
||||
0x16E4C20C, 0xEECA3B5F, 0x05EA2D11, 0x140AC432, 0xE0F6481D, 0xE024094B, 0x16F6121D, 0x14083C20,
|
||||
0x200A481F, 0xE1F308E5, 0xFB0623D1, 0xDE1EF946, 0xEE211606, 0x15EC3D13, 0xF402E4DA, 0xF1D8E700,
|
||||
0xE6D0F358, 0xEEF9C621, 0xE3F3BB36, 0x0A171E3F, 0x0D0ACBE1, 0x09071F21, 0x04DDDDB5, 0x051422C4,
|
||||
0x07F2211B, 0xFD1BD5F3, 0xEFFE3926, 0x261602C1, 0xF40F3438, 0xEE07EB21, 0xF4DA1CB2, 0x241EFCBA,
|
||||
0x2600B2D8, 0x11DC174C, 0x1A0542D4, 0xDF1349C6, 0x19E10F47, 0x09131F16, 0x010A27E2, 0x0A12E2C5,
|
||||
0x01E229F5, 0xE3090AE1, 0xDEFEB629, 0x150E1319, 0x221D050B, 0xE3F4F6CD, 0x21F6071D, 0x23FC4C24,
|
||||
0x1312C6EA, 0x12F01738, 0xEFFF3AD7, 0x1FFD48D5, 0x1C0B0CE4, 0xF5F71C30, 0x03F725E0, 0x0D38349F,
|
||||
0xEB0614DE, 0xFB03DCD5, 0xEAC9EDA2, 0xDEF8B6E1, 0xDD0B0532, 0x17ECC2C3, 0x27E1FEB9, 0xEF14EA14,
|
||||
0xF9FC2F2C, 0x160AC232, 0x1C0445DD, 0xE92311FB, 0x06162F3D, 0x03F12538, 0x0AFE1E26, 0x06E72141,
|
||||
0xE1E6F841, 0x3221A5B7, 0x00E6D70D, 0xF8F8E030, 0x24FF4CD8, 0xFB02DCDB, 0x162313FB, 0xEAF1C2CA,
|
||||
0x190CBFCC, 0xEFF4E834, 0x60370000, 0x25C139F2, 0xF731FCEA, 0xF734E009, 0xF10AE00B, 0xD2C81AE2,
|
||||
0x26590710, 0x1ACE0231, 0xF41D0EF5, 0xD62BE4F6, 0xEF340303, 0x0AB9EA0C, 0xBA251EE1, 0xCE6BE204,
|
||||
0xC1530A42, 0xC411E82A, 0xD4CD15E9, 0x35D4040C, 0xBEBE0C04, 0x01D4E7E5, 0xE9CAD9FD, 0x58F1EFF2,
|
||||
0xAC46D1E6, 0x21DED4E2, 0x2C240706, 0xE0330304, 0x4931F80B, 0xF44C2109, 0xB74A1DDB, 0x2AC320DE,
|
||||
0xBC2D02EC, 0x07EEE4FB, 0x2DCB20E9, 0xC910FBF4, 0xAF52F217, 0xD720D72B, 0xDBCC02F8, 0x1342FDF3,
|
||||
0x26B315E7, 0x3D450325, 0xC7C0151E, 0xE9471219, 0x42E4111F, 0x4AA3E60B, 0x5537DF36, 0xB4E92E0F,
|
||||
0xDCFEDC10, 0x18F1FCDA, 0xBFFA10E7, 0xD706E721, 0x2BD20022, 0x16500305, 0x4CC2EF29, 0xD71F2417,
|
||||
0x20120009, 0xE7EC08EA, 0xE520F1EC, 0x42C8F3F8, 0xF23A19F0, 0x34111BEE, 0xCBF00DE8, 0x02F50DE8,
|
||||
0xC3F0DA1C, 0x67CC1518, 0x09463FF4, 0xFCF7E11D, 0x01F6DC20, 0x2F1D27E1, 0x2816F9F4, 0xAA1800EE,
|
||||
0x2E592DF0, 0xF4DC07CE, 0xCF49E504, 0xD33BF6E0, 0x17040514, 0xC445EE25, 0x4C33EB1D, 0xBB39250C,
|
||||
0x4BAFE310, 0x58F8222A, 0xDD34CF1F, 0x4CCBFBF4, 0x32FDDC0D, 0xCF230ADC, 0x2D13F7FC, 0x49D6FA15,
|
||||
0x09E2E002, 0x4425E20A, 0x170D1C02, 0x47DDF0E4, 0x2A441F05, 0xC0B502E4, 0x40B71823, 0xCFEE19DF,
|
||||
0xD34A0917, 0xE7370521, 0x0000F1F1, 0x1CFDBD25, 0x1B080D30, 0xC61F61F7, 0x05122C3A, 0xDEF606CF,
|
||||
0xF805D023, 0xD91D50F6, 0x1E0D0AE6, 0xE111F7E9, 0x1B1F42F7, 0xE9221106, 0xF7101EC8, 0x061C2FBD,
|
||||
0xE8E711F2, 0xFB0E2335, 0x0DFDE6D5, 0x10E7E742, 0xF1FFE62A, 0x04F424CC, 0xF82B1F54, 0x10F8E821,
|
||||
0xF40B1C33, 0xE2F3BA1B, 0xFBFBD32C, 0xF6E531BD, 0x12F7171E, 0x13073BDF, 0xDDEFFAC8, 0xDC1DFB0B,
|
||||
0x0D00E4D9, 0x120AC7E2, 0xFEE1D546, 0xD9EFFEEA, 0x1EF0F737, 0x021225E9, 0xD4DE54FA, 0xF3FC1B2D,
|
||||
0xF80DD1CC, 0x1EE1470A, 0x01E6D7F2, 0xE1E6F70D, 0xF9F0DEE9, 0xFB14D2C5, 0xE603F2D5, 0xD82750FF,
|
||||
0x011AD941, 0xE2040A23, 0xE425BD4C, 0xFC28DC01, 0x22D94BFF, 0x0AE6E242, 0x16EDC2C5, 0xD90B011C,
|
||||
0x050AD232, 0xDB114E18, 0xF2EB3512, 0x1AE642F3, 0xCFF1A7E7, 0xF220C9F8, 0x171FC148, 0x0735225D,
|
||||
0xF2FF1926, 0x14D914FF, 0x0DFC36DC, 0x191BF00E, 0xE50CF3CB, 0x07F5221C, 0x2305FAD4, 0x1FD9094F,
|
||||
0x25FFB4D6, 0x170FC1CA, 0x0FF3C91A, 0x02E82BF0, 0xDFEA07ED, 0xECE9143F, 0xE2E44645, 0xF2F6E71E,
|
||||
0x26FAFE21, 0xFD17DB3F, 0xF0F6181E, 0xF818D0F0, 0xDD24B5B5, 0x00E8D8BF, 0xFE08DA20, 0x1104C6DC,
|
||||
0x22FCB5D4, 0xE5FFF3D7, 0xE4CEF5A6, 0xF1EBE6EC, 0xEC06EBD3, 0xF5E91DC1, 0xE70540D4, 0xFC1A2D0E,
|
||||
0x08E7E10F, 0xFAFE22D9, 0x06F82130, 0x09E80000, 0xF4F51F10, 0x49EE1CE2, 0xEEFADF17, 0x44ECE9DE,
|
||||
0x0ECEE415, 0x354C1AF6, 0xCC020DDC, 0x50100C25, 0x1F362818, 0xCCB6090D, 0xE5C30C21, 0xFDDA0DEC,
|
||||
0x350DDA01, 0x131A0C1A, 0x1AAB15F2, 0x2B590DD2, 0xC4A80331, 0xC517EC30, 0xCED3EEEF, 0xCC44F505,
|
||||
0xF40DF5E3, 0xE2341BE5, 0x20C50AF3, 0xF9D308ED, 0xE345DF06, 0x3DF10CE4, 0x203D15E6, 0x1F4BF8EB,
|
||||
0x1D37F8DD, 0xFEDC0BF1, 0xC14726FC, 0x0EDD1820, 0xCC221A05, 0xC1CB0D06, 0xC1CAE90C, 0x45EC180F,
|
||||
0x9A3AE3EB, 0x15D23EED, 0xABCDEE06, 0x5EB52DF4, 0x19D33523, 0x0C41F1FB, 0xE8F8E4E8, 0xCD24F01F,
|
||||
0x1239F604, 0xE6EA1611, 0xF23E0E11, 0x14F01A16, 0x450F14E8, 0x44BD1DE8, 0x3DE3E41C, 0x13E316F5,
|
||||
0xEABEECF6, 0xEE00121B, 0x3AEEEB28, 0xE33AED15, 0x229AF5ED, 0xBF26FAC1, 0xE7351A02, 0xA6D80FF3,
|
||||
0x5303CEFF, 0xCF082ADB, 0xB7BFF6E1, 0x3521E0E6, 0x07120DFA, 0x25E9E0EA, 0xB423FDEE, 0x0E012305,
|
||||
0x1DF21B28, 0xCE1AF6E6, 0x2AF50AF2, 0xF80602E4, 0x0AB71FDF, 0x1F2A1E21, 0x0316F8FE, 0x0F4F2512,
|
||||
0xEBCE1A27, 0xC0B3EC0A, 0x23E818DA, 0xEB0AFBEF, 0x164F13E3, 0xCDE61326, 0xC4DF0BF3, 0xBE3C14FA,
|
||||
0x51E8E714, 0x10F2D710, 0xD3DB191B, 0xEA1F06FD, 0x344311F7, 0x21D60C1A, 0x301207FE, 0x2FF3F9EA,
|
||||
0xEED1F9E4, 0xD335EAF9, 0xFA0505F3, 0x4B62DDDD, 0xD130DC3A, 0xD1D60708, 0x21D508FD, 0x4112FAFE,
|
||||
0xEE431816, 0xAE0BEAE4, 0x03E0D51D, 0xD0AEDC07, 0x092BF72A, 0x07C92003, 0x20BDDEF1, 0xDC45F9E5,
|
||||
0xCC1905E4, 0x0AE50CF2, 0x53D41E0D, 0xC928D505, 0x48B90F00, 0xF9CCDF1F, 0x3D4D21F4, 0xCB0B15DB,
|
||||
0xF0050D1D, 0xE1F2E8DE, 0x36E5091A, 0x3EF20E0C, 0xD8E6161A, 0x241D00F3, 0xC1E7FD0C, 0xCFB8EA0F,
|
||||
0xE33CF6DF, 0xF1AA0CEB, 0x45F11A2E, 0x3BFDE3E7, 0x28971425, 0x2DDC00BF, 0xE9DFFC03, 0x05B6EE07,
|
||||
0xF1DE23DD, 0xB6E01807, 0x1F31DDF7, 0xEB390A0A, 0xD44B13F0, 0x11E2FC22, 0x5021E80A, 0x072E28FA,
|
||||
0xEEBBDF07, 0xEC30E9E3, 0xD2F2EDF8, 0x3AE8061B, 0x4CB6EF10, 0xCBD2DC23, 0x302F0D07, 0xB73308FA,
|
||||
0xAFE821F6, 0xD63FD6F0, 0x4CF20216, 0xBFEC23E6, 0x17DB19ED, 0xC9E8EF03, 0x3A34F10F, 0x404711F3,
|
||||
0x1814181E, 0xEF17F1EB, 0x551F17EE, 0xD7D62E09, 0xF519FFFD, 0xFC16E4F1, 0x28E62412, 0xDD2600F2,
|
||||
0xFD220501, 0x5DE52407, 0xB9B6CC0E, 0x180220DE, 0x27351026, 0xFA13010D, 0x050222EC, 0x2BE0DDDA,
|
||||
0xCEB2FC08, 0x0CD00A27, 0xC3FBE509, 0xF6F51422, 0xEEAC1EE3, 0x10CFEAD5, 0x1FDBE9F7, 0x47C20AFE,
|
||||
0x3AC8E2E9, 0xC80DEEEF, 0xECD9F1E5, 0x0FCEEC00, 0x1F2CE70B, 0xE5BCF8FC, 0x37B10DE4, 0x4200F1DA,
|
||||
0xFB081A27, 0x385C231F, 0xC7210FCB, 0xFEF610F9, 0x26E30000, 0xEBF8132F, 0x051ADEBF, 0xEDE13CBA,
|
||||
0x1819C0BF, 0xFE0F2AE7, 0xFC1D24F5, 0xDBE90311, 0x02F02918, 0x190FF037, 0x1CE10B46, 0x0AD0CF58,
|
||||
0x170410DD, 0xF72231FA, 0x1D15BBED, 0x16053EDD, 0x0A1D1D45, 0xF412E316, 0x191510EE, 0xE3DE0BF9,
|
||||
0x10113838, 0x02D92AB2, 0xFF07D7E0, 0x21ECF83C, 0xEDEBC4C2, 0xE8EDC13B, 0xF9042025, 0xDB35B4A4,
|
||||
0x1AE3BF45, 0xFEEB2514, 0xEDFAC522, 0x0B08E3E0, 0x13F2151A, 0xF3D7E551, 0x1D110BE8, 0x25170312,
|
||||
0x19C9F1A2, 0xEA0C1234, 0xE3FBF52D, 0xF3DC1BFD, 0x11F518CC, 0xFDF92521, 0xF61E31F6, 0xE0EA47EF,
|
||||
0x09E6E142, 0x09F8E031, 0xDDF9B52F, 0xDAE34EBA, 0x160111D8, 0x1524C34C, 0xF01C170C, 0xDDE14BB9,
|
||||
0xE7EEC0EB, 0x34005CD8, 0x17E1C2F7, 0x0F1B1943, 0xFD11DCEA, 0xD5EF5417, 0x08D73052, 0x1CDAF4B2,
|
||||
0x162AED52, 0xFBE9D3EF, 0xF31C1CBC, 0xF225CA03, 0xEB231405, 0x13FFEC2A, 0xDAF4B135, 0xDC21FDB8,
|
||||
0xDBF90420, 0x0F23184B, 0xE40945E1, 0xFE03DBD4, 0xDF1B48BE, 0x0CE01C49, 0x1200C728, 0xEFF016C7,
|
||||
0xFC12D43A, 0x0AE9CDC1, 0x15101318, 0xDFE949C1, 0x2314B6C4, 0xFADF2349, 0xFCE4D5F4, 0x1EFA462E,
|
||||
0x03DEDBFA, 0x19230F05, 0x210D061B, 0xFF2327FB, 0xDA21B207, 0x1302ECD6, 0xEF14E93D, 0xE4010D27,
|
||||
0xEEE7E942, 0x1B1DF30B, 0x1A180D3F, 0xFF17DAC1, 0x0000F2FA, 0xB1351ADD, 0x4FE626F3, 0x2A12D80E,
|
||||
0x1434FEEA, 0x36F2EC0D, 0x42C6F2E7, 0xB8C1E512, 0xE23821E9, 0x0E3B0AF0, 0xFC3E1BEE, 0xB631DB15,
|
||||
0x0623DDF8, 0xD81B2306, 0x28B5FFF3, 0xEF270023, 0x1718E9FF, 0x33EB110F, 0x30F0F5ED, 0x1426F8E7,
|
||||
0xC727ECFD, 0xB34010FF, 0x3CFFDBE9, 0x44141326, 0x5EA2E4EC, 0x3325CBC9, 0xD8130BFC, 0x0C1E0016,
|
||||
0xF92EE4F7, 0x1109DEFA, 0x2632E9E0, 0x520EFEF6, 0x342ED619, 0x3229F4F9, 0x0D0DF700, 0x1D111BE5,
|
||||
0x15BC0C18, 0xA728ED1B, 0x54283000, 0x47C32B00, 0xCAEE1FEB, 0x11EEF2E9, 0xC00C1717, 0xB215181C,
|
||||
0x030CDA13, 0x480325E4, 0xEDCAE126, 0xD8D915F2, 0x23DAFF01, 0x16240503, 0x374AED04, 0x2904F1DE,
|
||||
0x3D3DFF25, 0xB3CF1516, 0xDE0A25F8, 0x3306F9E2, 0xCDB9F622, 0xBCD0F5E0, 0xEC291DF8, 0xA8DE14FE,
|
||||
0x07FC2F06, 0xCB3CE0DC, 0xFBC4F213, 0x2ED0DE15, 0x35DEFB08, 0x38C8F305, 0xCF36F010, 0x3ACE0A0E,
|
||||
0xEC3A1209, 0x2152EDEF, 0x40440729, 0xCC04E91C, 0x0C56F424, 0xB04A1C2E, 0x28CAD721, 0xCDD8FF0F,
|
||||
0xCC1CF400, 0xE6BDF3F3, 0x0F020E1C, 0xFBFD19D9, 0x3DC12326, 0x00D8EA17, 0xCB2ED900, 0x5008F3FA,
|
||||
0xEF2B28DF, 0xA726E9FE, 0xEAF5CFFD, 0x3FE4EEE3, 0x3F27180B, 0x3C47EA01, 0xC8B5EBE0, 0xBEC1F023,
|
||||
0xD7231A16, 0xE15501FA, 0x40AAF82E, 0x4511E72D, 0xF8DAE317, 0x20030000, 0x0BF7E232, 0x0BF1CDE6,
|
||||
0xCFF25835, 0xFAE12DF7, 0xCFEAA613, 0x22FFF928, 0xE8E93FC1, 0xE327BAFE, 0x1E030A24, 0xDFDFFAF8,
|
||||
0x06F2D3E6, 0x00FED8D6, 0xE7DFF2F8, 0x10FB39DD, 0xDBD74CB0, 0x072BDEAE, 0x1EE90A11, 0x26DB4DFD,
|
||||
0x16E8EEC0, 0x17FEC126, 0xEB03C4DB, 0xFCF924D0, 0xDBD8FC00, 0xE510F3E9, 0xEBF6C4E2, 0xFF2127F8,
|
||||
0x0DE335F6, 0xE1E7B840, 0x1724C203, 0x0D23E5FB, 0xFD1ADB0F, 0x2C0C5434, 0x22EEFBC6, 0xDB130316,
|
||||
0x1EE60A0F, 0x27E94F3F, 0xF7E21F46, 0xF1D837FF, 0xECFB3B22, 0x330FA638, 0x0CE21CF7, 0x22FFB728,
|
||||
0x281AB042, 0xF714CE13, 0x11E0C707, 0x11D9E9FE, 0xD9EBFF3E, 0xF8043023, 0x1C15BCC3, 0xCAC95DA0,
|
||||
0x13ECEB15, 0xDFEDB73B, 0x201CF8BD, 0xF033185B, 0x160B12CD, 0x01092631, 0x0E06192D, 0x0E001BD8,
|
||||
0xEC0FEC37, 0xE4E143B9, 0xDD2405B4, 0x1EDAF501, 0xEFFF16D6, 0xD8F70130, 0xF1EF3738, 0xFBEB2E3D,
|
||||
0x1F0147D6, 0xFAF52EE4, 0x00D92800, 0xE31B440D, 0x02112617, 0xF1DCE6B4, 0x17E3C144, 0xE117B9C1,
|
||||
0x10F1E719, 0x0C15E3EE, 0xE315F53C, 0xE5260D4E, 0x02F8DB31, 0xEA14EF3C, 0x4B178DC1, 0xDC070320,
|
||||
0x0F1CC8F4, 0xEAFB122D, 0xE71042C8, 0xEBE8EC40, 0x0EEDE6C5, 0xEDEF1618, 0xFFDE2AFA, 0x260B4DCE,
|
||||
0xF3D9E600, 0xF816DFC2, 0xEA26EE4E, 0x14F23CCA, 0xD51AAD43, 0x0000133C, 0xFF5116EB, 0xCEF7D9D7,
|
||||
0x3EFCF7E2, 0xE13E16DC, 0x39D5F7EA, 0x583312FD, 0x3FEB2FF6, 0x35B3E9EE, 0xDD01F424, 0x26230528,
|
||||
0x5EB4FFFB, 0xB91E3623, 0x0AE11E09, 0xF6201F09, 0x4CC6E208, 0x1CBA2413, 0xC4370D1E, 0xD1001310,
|
||||
0x35150627, 0x122AF4ED, 0x0BF71502, 0xC618E3E1, 0xF202ED10, 0xF2C31A25, 0xB3F71BEB, 0x2312DB1F,
|
||||
0xC20804EA, 0x11FAEBDF, 0xA8DE18DE, 0x28113006, 0xE9CC0016, 0x4021120C, 0xEFC41908, 0xEB51E9EB,
|
||||
0x331113D7, 0x5ACBF5E8, 0x10C431F4, 0x0927E914, 0xB403E0FE, 0xFBE925DA, 0x1B24DD10, 0xB43B0CFB,
|
||||
0xE7C52413, 0xB94A0F13, 0x1DD7E1DE, 0xE5D10A01, 0xAE560C07, 0x290E292E, 0xF3F3001B, 0x5A131B1B,
|
||||
0xB4E0CE15, 0xBAE6DDF7, 0xC801E20D, 0xEEC61028, 0x16F1EB11, 0x2FC5EEE6, 0x4D2FF814, 0x2DB526FA,
|
||||
0x15B105DD, 0x2932EDD9, 0x0FD1FEF6, 0x2DD719F9, 0x29F30601, 0x3AFFFFE5, 0x44BFEFDA, 0xA437E5E8,
|
||||
0x0E38350F, 0xDF07E510, 0x06AA0821, 0x0052222E, 0xEFEB27D5, 0x1ED11814, 0x0B0E0908, 0x2DA11D1A,
|
||||
0xEB3405C9, 0x161C140C, 0xC2FBEF0D, 0x02E8E923, 0xD5BADAF1, 0x24C303E3, 0x374F04EA, 0xE8F10FD8,
|
||||
0x21B01118, 0xB536F8D9, 0x3BF1DDF2, 0xFD0012E6, 0x2F4FDB28, 0x0D2CF826, 0xBEBC1C04, 0xC64C1A1B,
|
||||
0xC62911DB, 0xF3AAEEFF, 0x40D5E52E, 0xA21C18FC, 0x18ED36F3, 0x00000F15, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000
|
||||
|
||||
hard_output0 =
|
||||
0x7FE75E62, 0xB98D686A, 0x16FBEDEE, 0xB22861F2, 0x0A1180B7, 0x666C4407, 0x1D4C462A, 0xB81A3416,
|
||||
0xC6948E41, 0x3CCAE97E, 0x55352D5A, 0x85474DAC, 0xB8DBF013, 0xB9AF7B16, 0xEABEE865, 0x1EB02EF7,
|
||||
0xBDE86A3E, 0x24EDAAC9, 0x88A3D4B9, 0x8CA15C44, 0x42487190, 0xF4BF8BFF, 0x05EA0214, 0x4708DC42,
|
||||
0x222993B3, 0x24AAA18B, 0x4D49B2EA, 0xBBA8E2B3, 0x40426630, 0x5676818F, 0x1B79CC4B, 0x1595A8CD,
|
||||
0x9088385F, 0x351D2A23, 0x0EDC4446, 0x8F17D03E, 0xEA8B3464, 0x8799E718, 0x79E11F5A, 0xE771403F,
|
||||
0x38C65263, 0xA969930A, 0x59942FBB, 0x74138F31, 0x80518035, 0xB42D7BE0, 0x0C4A7E00, 0x4ACA8CB5,
|
||||
0x76C89CCB, 0xB56F2806, 0x1C8CF4E5, 0xA192BBF1, 0x1139DA94, 0x46B1C7C9, 0x8B630748, 0xA882704B,
|
||||
0x69DA8BE2, 0xF2508EA5, 0x05E4AEAF, 0x5AA0A9C8, 0x6177DDCE, 0x8D06A0E1, 0xECD023CA, 0x34FC0800,
|
||||
0x5AE69AAD, 0xFE8E2F72, 0x5ED3DC49, 0x8B46EB93, 0xC0C3D55F, 0xAC8C8B89, 0x54A20A93, 0x81F6659B,
|
||||
0x412B7086, 0x09D572AB, 0x85891AB0, 0x96DC6C57, 0xD7117C38, 0xFBA06F16, 0x9EAAFCE5, 0x44AD2185,
|
||||
0x618D398E, 0xD9AC89E7, 0x031F1D0B, 0xE7D05975, 0x9E500DF3, 0x06BFEF20, 0x42888C91, 0xD6AF7FA6,
|
||||
0xC839E4C7, 0x0E7B7724, 0x48693BD9, 0xD17B6519, 0x48004F1A, 0xF5A147D5, 0x521C8AD6, 0x26E19AE7,
|
||||
0xAA17116F, 0x7196631D, 0x89643E51, 0x8CE6B02E, 0x128B9CF6, 0x2F45C206, 0x4EB6C731, 0xCFB17835,
|
||||
0xCFE85026, 0xA4B9B9B0, 0xD2C152AC, 0xA4F89035, 0x79ED0C5F, 0xBC030479, 0x51D91130, 0x570C019C,
|
||||
0x4E0306B7, 0x27978CCD, 0x5F8DA612, 0x33C121FE, 0x4407BB22, 0x6FF06E2F, 0x5D7F378B, 0x491B9A93,
|
||||
0xA0BDE688, 0x0EA89618, 0xE91C3661, 0x27C69F6D, 0xC46463FD, 0x67649FE9, 0x8F6E077F, 0x4D456A5F,
|
||||
0x396B7218, 0x0C26C824, 0xA4E8FD71, 0xDCA1C865, 0x6F1CC581, 0x97C974D3, 0x38D0F6FC, 0x04190419,
|
||||
0xED8C7FC5, 0x794BA619, 0x0090798D, 0x3044F72D, 0xBB77EEEF, 0xF9BCFDE1, 0x2C1580F7, 0xC0292305,
|
||||
0x86827E71, 0x356C7D12, 0xA84DBECC, 0xCA53E3D9, 0x236E73F0, 0x9FD2AFBA, 0x652E7A66, 0x744A1147,
|
||||
0xBFE9AF5B, 0x59F2552F, 0xBD77D3C0, 0xCD726524, 0x1D56A0FB, 0x85207831, 0xB6F1861B, 0x369CF946,
|
||||
0x71CA18BD, 0x5EE3F7CF, 0x2C3FC902, 0x4301214D, 0x53A64F16, 0x2956B34F, 0x3DF40618, 0x41A36C68,
|
||||
0xF7BB2B5F, 0x0C5CD46D, 0x3E4354AC, 0xC29AFEF7, 0xC1A310AF, 0xFFEF128F, 0xBE1C8D14, 0x8B123664,
|
||||
0x854B7E00, 0xAE175861, 0xE4067FE2, 0xA264F00A, 0x988634EF, 0xEC9E38E7, 0xFE2968A6, 0x2B30719D,
|
||||
0xFE3DC88D, 0x09E222C8, 0x6B4F1B50, 0x436C7137, 0x161DFE10, 0xA68C403E, 0x12A2856F, 0xAAB8DFF0
|
||||
|
||||
k =
|
||||
6144
|
||||
|
||||
e =
|
||||
10376
|
||||
|
||||
iter_max =
|
||||
8
|
||||
|
||||
iter_min =
|
||||
4
|
||||
|
||||
expected_iter_count =
|
||||
8
|
||||
|
||||
ext_scale =
|
||||
15
|
||||
|
||||
num_maps =
|
||||
0
|
||||
|
||||
code_block_mode =
|
||||
1
|
||||
|
||||
op_flags =
|
||||
RTE_BBDEV_TURBO_SUBBLOCK_DEINTERLEAVE, RTE_BBDEV_TURBO_CRC_TYPE_24B,
|
||||
RTE_BBDEV_TURBO_NEG_LLR_1_BIT_IN
|
||||
|
||||
expected_status =
|
||||
OK
|
|
@ -0,0 +1,643 @@
|
|||
# SPDX-License-Identifier: BSD-3-Clause
|
||||
# Copyright(c) 2017 Intel Corporation
|
||||
|
||||
op_type =
|
||||
RTE_BBDEV_OP_TURBO_DEC
|
||||
|
||||
input0 =
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x16000000, 0x081112e9, 0xcd2d1fac, 0xf9fdf4db, 0x110edf1a, 0x0dd9e84f, 0xdbe9e611, 0x0fde0206,
|
||||
0x43df19f9, 0x071ee4f7, 0x1f1322c5, 0xd4e5f6f3, 0xe3fafcde, 0xd002f52a, 0x4427f801, 0xbadce403,
|
||||
0xce101dc9, 0x09fff729, 0xd5f91f2e, 0xf3f0fee8, 0x4f061cde, 0x4a2b2753, 0x1d24dffb, 0xd3040bdb,
|
||||
0xcaf2fbe6, 0x1cd9f350, 0x00fff42a, 0x49d02759, 0x4005de2d, 0xd3fb1923, 0x36cbfc5c, 0x020a0de1,
|
||||
0x39072621, 0x3b0defe5, 0xb4ebec13, 0xddee2416, 0x24f206e5, 0xd1e1fcb9, 0x0e150713, 0x21f6191f,
|
||||
0x0d0bf9e3, 0xf0061bd2, 0xae2717ff, 0x0de9d740, 0x13031a2b, 0x4c0215d6, 0x4534dc5c, 0xa1f41c1c,
|
||||
0x001b3842, 0xeaf83ecf, 0x2519b4be, 0x1d220afb, 0x05162312, 0xee00ea29, 0x25ef4d39, 0x0cc03398,
|
||||
0x08f5e0ce, 0xb7e68f43, 0x14f7ec31, 0xe7f5f11e, 0xfd29d6ae, 0x0af133c9, 0x03fdd5db, 0x0bca1d5f,
|
||||
0x00172840, 0x061add0e, 0x0516ddee, 0xe10cf735, 0x1709101f, 0xdf0908d0, 0x06fe2dd6, 0x18ed11c6,
|
||||
0xd315ac14, 0x06f0d3c8, 0x1ed9474f, 0xef223806, 0x28f3ffe5, 0x0eeb1aee, 0x080de0cb, 0x29f452e4,
|
||||
0xdbd702b0, 0x041b2cbd, 0x1df30b34, 0x1927f102, 0x2010b719, 0xf0fde8d5, 0xe9eaef3e, 0xf10b36ce,
|
||||
0xdff4fa1b, 0xfd0cd5e4, 0x04f923d0, 0x110f3936, 0x06fe2e26, 0x00e42844, 0x11e839c0, 0x13ecea13,
|
||||
0xf621e349, 0xff332600, 0xe604f1f5, 0x0533d425, 0xf240c9f5, 0x0b5933e8, 0xdf1bf931, 0x02c929f2,
|
||||
0xeee6eb0f, 0x12a2160f, 0xfdde26ca, 0xf016c8f9, 0xdd03b5ee, 0xe2ee09da, 0xfdf4db17, 0xdb0603e4,
|
||||
0xffda2821, 0xf6f9cefd, 0xd5ca5421, 0x12f03af2, 0x182f0fe9, 0x10423808, 0x0c19e41a, 0x27af02f0,
|
||||
0xfc14d42a, 0x08c9d114, 0x274700f2, 0xe8c110e1, 0x0e0f19e9, 0xeb58c3e7, 0xe20fbbd1, 0xe52e0e1a,
|
||||
0xf145e607, 0xe316bc1d, 0xe3e04511, 0xd93c0009, 0x27db01ed, 0x0a30cd03, 0x23434af8, 0xe13f09e6,
|
||||
0xe4d00de9, 0x07202208, 0xdb3ffd07, 0x0955cfea, 0xeae8112c, 0x041324f1, 0x1011e815, 0xf6d01f17,
|
||||
0xe5eb0cf9, 0x17be00ee, 0xa2dbeee6, 0xb2e73603, 0x08ebda0f, 0x250fe0ed, 0xe61a0218, 0xf1dbf2f3,
|
||||
0x420b18fd, 0xa1e9e5e4, 0xd9e1caf0, 0xe7cffe08, 0xeba8f009, 0xc45213d0, 0x20a1ed29, 0x28fa0737,
|
||||
0x1ad900dd, 0x1bc10dfe, 0xab360c18, 0x023bd3f1, 0xacfd2514, 0x4d382c25, 0xf25adbf1, 0x1eda1a32,
|
||||
0xf11e0902, 0x23a5e70a, 0x1f32fcce, 0x0ef0f8f5, 0x2029e6e9, 0xdfda0701, 0x1860fafe, 0xd8e5f139,
|
||||
0x5612010d, 0xf2572d15, 0xba23192f, 0x2ac1e2fb, 0xe91e02e8, 0x44d2100b, 0x08f9e307, 0x5edddfe0,
|
||||
0x240fc906, 0xc1c3fbe7, 0x0f231614, 0xaa111806, 0x1e2d2eea, 0xc6ba0a06, 0xedc9121e, 0x1ffc150e,
|
||||
0xd11b0a23, 0xe800f80d, 0x2f27f101, 0x06110638, 0xd01fdef8, 0x15ee0717, 0xba0e131a, 0xcde51f43,
|
||||
0xd21df6bc, 0x051006c8, 0x2616ddc3, 0x3ef8fee0, 0xf3cde9a4, 0x3bd81b4f, 0x25001229, 0xf6eb023e,
|
||||
0xd81ee3b9, 0x1cecff14, 0x29fef4d9, 0x9f2d0255, 0x121e38f5, 0x18eb16c2, 0x271a1041, 0xf7f700cf,
|
||||
0x28f3e1e4, 0x49e90011, 0x4b0fde1a, 0xd9e723f1, 0x0de402bd, 0x261f1b0a, 0xbe0afe1e, 0x0823e606,
|
||||
0x3d041f2c, 0xf1f21436, 0xec1ae7f1, 0x02ebebc3, 0x52f1da1a, 0xc9e5d60d, 0xa9dc0e04, 0xc504d22d,
|
||||
0x09fd1325, 0x3706e02e, 0x26dc0f4b, 0x2012fe3b, 0xeef109e7, 0xb509161f, 0xf01dde45, 0x13d51853,
|
||||
0xc823ebfb, 0x2d23f0fc, 0xcbf6fbcd, 0xd505f22d, 0xee0afd1e, 0xa6e615bd, 0xa020ce07, 0x411937c0,
|
||||
0xbcd318ab, 0x2a1d1cf5, 0xc400ff28, 0xe32014f7, 0x2bf30b1b, 0x0e03fc25, 0xe1e41bf3, 0x2f1b0943,
|
||||
0x06060721, 0xc601de26, 0xd3faee2e, 0xe51c05bc, 0x0411f4c8, 0xcfe7dcbf, 0x2d12083a, 0x0bedfb3a,
|
||||
0x0efc1d2c, 0xca1f1909, 0x13f80e30, 0x3a21eab7, 0x3c2b1252, 0xf2e4140b, 0x2527e5b1, 0x2ffe03d6,
|
||||
0x44e4f90b, 0xcf21e449, 0xd8e9f6c2, 0xeef8001f, 0xfb151513, 0x48f9de22, 0x2ad6e0ad, 0xe63602a3,
|
||||
0xdae50e0d, 0xe3e5ff0c, 0xc721f449, 0xa0d5efac, 0xe70039d8, 0xc7f71031, 0x2b22eefa, 0xe5fb04d3,
|
||||
0x0021f2f9, 0x2bce28a5, 0xdffefa00, 0x1af642e2, 0x1d190bf1, 0xecf515cd, 0x0af4cf34, 0xf406cbd1,
|
||||
0x08ebd013, 0x14173b40, 0xe40e0bca, 0x29ff51d9, 0xd303abda, 0xe303f5d5, 0xf6facddf, 0xecef3cc8,
|
||||
0x1324ecb4, 0xd213563c, 0xe00ff91a, 0xef121639, 0xf5d2cdaa, 0x1914f013, 0xe80f3fe8, 0xe31c0bbc,
|
||||
0xe3d5bcad, 0xe610be38, 0xe72df155, 0x1cef44c7, 0x13ccc5a3, 0xe1e20909, 0xecf2c337, 0xf2fd35da,
|
||||
0xe5cd435b, 0xdc1304c5, 0x050722d2, 0x121fea46, 0x36f8a1e1, 0x1223c6fb, 0x18040fd4, 0xef1517ee,
|
||||
0xf8e32ff5, 0xf22cc953, 0xfe04d7dc, 0x10e7390e, 0x1ef4091b, 0xdbf2fde6, 0x1afa432e, 0x2211b5e8,
|
||||
0x211eb8ba, 0xff1529c4, 0xdaea004e, 0x11e539ed, 0x13b4eaf2, 0xe10af7db, 0x11e9c81e, 0x1eeef6f0,
|
||||
0x17b73fea, 0x09c61fde, 0xeefdebef, 0xd92fffdc, 0xd7e05007, 0xfe42d9f8, 0xd2feaae6, 0xf3001cd9,
|
||||
0xee12c727, 0xe5d90cea, 0x2c21ac01, 0xe3de0b08, 0x265703fa, 0x1a410d30, 0x2f1f5719, 0xe742bff6,
|
||||
0xfc2e23e5, 0x2746b105, 0x262efe1d, 0xe43ff4fb, 0xf01018e9, 0xd9014e18, 0xef043927, 0x23fb0524,
|
||||
0x27094e23, 0x19ce41e1, 0xf70a200b, 0x1daff5e3, 0x274eb22a, 0xf612cd26, 0xf903df17, 0xe3f1ba25,
|
||||
0xe45bbc18, 0x062a2132, 0x11bfea01, 0xf4fe34e7, 0x0637ddda, 0xede0c510, 0x02022509, 0xfbbf2c26,
|
||||
0xeda8c619, 0xecb0edd0, 0xeb00d0d8, 0xf054edf7, 0x0356182c, 0x5fd3252e, 0xd74e3805, 0xc2100026,
|
||||
0xe4161517, 0xf106f412, 0x26f219df, 0x440bfde5, 0x1b031d1d, 0xe6c4f325, 0xd349f213, 0x2b0605df,
|
||||
0x4bdbfcdf, 0xe32e23fd, 0x49460a07, 0xcff022e3, 0xf9c2f617, 0xdfbc2116, 0xed2f071b, 0xd6a91406,
|
||||
0xc33bfe2f, 0xc623eb12, 0xc2d0ee06, 0x243aeb07, 0x1fe8fb13, 0xffc409f0, 0x1ed6d814, 0xde4bf602,
|
||||
0x31dcfb22, 0xf5da0afd, 0x0afd1e03, 0x1cc01fdc, 0xf82bf4e8, 0xcccce003, 0xfb0f0df4, 0xd2ff23e8,
|
||||
0x0845fbd9, 0x16e821e2, 0xe5c5eef0, 0x14bbf4ec, 0x1cefeb1d, 0xffcd0de9, 0x5bbad90b, 0x0630331d,
|
||||
0xf826dd09, 0xc62c2001, 0x00ed12fc, 0x16e8eb40, 0xf3e4120c, 0xc105e52d, 0xca181610, 0xb9e0f149,
|
||||
0xfc011f28, 0xfc17233f, 0xc5f12318, 0xea1dedbb, 0x37e91240, 0x47d9f0b2, 0x19271e01, 0x09240ffb,
|
||||
0x1edd1f4b, 0x02240ab3, 0xf3e6d90e, 0xfd03e425, 0xb12325b5, 0xb92cd9ac, 0xcee71e41, 0x47fa0bdf,
|
||||
0x0fcb1fa3, 0xd406e7de, 0x31defcfa, 0x300af71e, 0xfa0608dd, 0x10e922c1, 0xb2f3e936, 0xf336265e,
|
||||
0x0610e517, 0x16e72242, 0xab23134b, 0xbaddd34b, 0x1afee225, 0xfc100d38, 0x44e6dcbe, 0x02ede4c4,
|
||||
0xbe19da41, 0x2ff1e6c9, 0xea14f8c3, 0xc21bed0d, 0xac1017e8, 0x35202df8, 0xd9f10dca, 0x03fc02dc,
|
||||
0xf2e425bb, 0x29efe5e9, 0x3ce10046, 0x09153000, 0x0b061d2e, 0x1f1a0abe, 0xfb18d2c0, 0x0008d730,
|
||||
0xf3071b30, 0x17dfeff9, 0xc5d09da8, 0x23d7fbaf, 0x07e921ee, 0x16e4ee45, 0x1624c304, 0x01f828d0,
|
||||
0x20ddb8fb, 0x030325d5, 0x0424d5fc, 0x0216dac3, 0xe5040c23, 0xd71552ec, 0x28ef00e9, 0x16de13fb,
|
||||
0x1520edb8, 0x0416db12, 0xdeee07c7, 0x07fc20d4, 0x08fadf2e, 0xf0f639ce, 0x30f0a7e8, 0xef0d39e6,
|
||||
0x210d071c, 0xf2f235cb, 0x05192242, 0xd6095130, 0x2605ff2d, 0x19f8bf30, 0x1320eb48, 0xfbd72e51,
|
||||
0x01d92701, 0xe127f601, 0xdc0a051f, 0xfdf1dc37, 0x0b0bce1e, 0x09ff1f29, 0x1507c3df, 0xf7e3e1bb,
|
||||
0xdb204df8, 0x11e517bd, 0x3004a7dc, 0x0d1300cc, 0xf42134ea, 0xe9b9c1f8, 0x1fbef720, 0x07bcdfe5,
|
||||
0xeccf3ce5, 0x17301109, 0xf2b4e6f7, 0x1258c723, 0xdaf84dd0, 0xd507ae1f, 0x011d2a22, 0xfd3f25f5,
|
||||
0xfd4edb17, 0xf9cadf26, 0x144dc3f1, 0x09003124, 0xec503b27, 0xfed1d628, 0x0ffbc9f8, 0xf2e619de,
|
||||
0xf832dff1, 0xf3d034f5, 0x1dea0b09, 0xe80e0fef, 0xf1dd38e6, 0xf8fce104, 0xde1f07db, 0x06ccdef7,
|
||||
0x24554b0c, 0xcde0a6d2, 0xe2e0baf8, 0xeae6ef09, 0xe31b440f, 0xe5c6f3f2, 0xf447ccee, 0x1944f2e1,
|
||||
0xe33fbb1b, 0xebad3eea, 0x0b1de32b, 0x0d24e50c, 0x18e711fc, 0x2830b110, 0x14413cf8, 0xe7e7f219,
|
||||
0x1c49bc0e, 0x0734e0df, 0xe255f50c, 0x540045d2, 0xe3c0d3e3, 0xef0ff518, 0x34c017e6, 0x052af517,
|
||||
0xff4e2402, 0xc4eadada, 0x00d3ed12, 0x4bc727fa, 0xaaf62211, 0x28e1d21e, 0x530a00f7, 0xfd40d5e1,
|
||||
0x0dafdbe8, 0x2b0de5d6, 0xc722fce5, 0xca241007, 0xe1eb0efc, 0xfa63f8ee, 0x28dfdec5, 0x07420107,
|
||||
0xccf6dfe7, 0xcb1df4e1, 0xd9def40b, 0x47ef0105, 0x1041e0e9, 0xe849e919, 0x27f10fdf, 0xef2c02e7,
|
||||
0xe74fe805, 0x4cb7f2d9, 0xe7ee2521, 0xee430f17, 0x5b09161b, 0xdce2cd1f, 0x2343050a, 0xc22c05e5,
|
||||
0x5ae7eafc, 0x9749cef1, 0x4dea4221, 0x0e2726ee, 0x24a8e6ff, 0xcc5afcd0, 0xbcd2f432, 0xf514e306,
|
||||
0xbd0ee414, 0xc4dbe41b, 0x310a1302, 0x090cf8e2, 0xd5dce11d, 0x1c13fdfb, 0xeacbf515, 0xc5eeeef3,
|
||||
0x3027eee9, 0x29420701, 0xc01700e6, 0xc4b7e910, 0xaaebec21, 0x129fd2ee, 0x2ec5eac7, 0x0eecf9ec,
|
||||
0xe10b1aec, 0x57b3f7e3, 0x3939d1db, 0xcf42f012, 0x163ef719, 0xd5111217, 0xe92203e9, 0xf13eef05,
|
||||
0xece5e6ea, 0x3301ecf4, 0xfff6f527, 0x39ded9e2, 0x110deffa, 0x262fe91a, 0xb7bd0207, 0x39d8dfe4,
|
||||
0x0a2e1101, 0x2adf1ef9, 0xe52ffef9, 0xb70ff307, 0x1cdd22e7, 0x2b3bf4fb, 0xe4eb02ec, 0xd80bf4ed,
|
||||
0xfebaff1d, 0xcd12271e, 0xfeee0aea, 0xc70726e9, 0x0f4fefdf, 0xd9b6e6da, 0xf5d300df, 0xccbc1dfa,
|
||||
0x34270de4, 0xf0d3f400, 0xc649e7fb, 0x18deeede, 0x4d0f0600, 0x2bdf2549, 0x1f07fe21, 0xf0e6f60f,
|
||||
0x0c1b1743, 0x0f0a1b1d, 0x46efe7e9, 0x0ae6e242, 0x0ff61f33, 0xae21e84a, 0x500ad6e2, 0xfcddd74b,
|
||||
0x4a17ddc2, 0xe9d9dd4f, 0xc7241205, 0xb9e8110f, 0xda111ec7, 0x37e1fe46, 0x39f3f1e5, 0x000512d2,
|
||||
0x0e05d92d, 0xfeec193c, 0xf519daf0, 0x1e291d52, 0x362bf652, 0xbce9f311, 0x30fae5d2, 0xe6fcf7db,
|
||||
0x36ec0fc4, 0xddfa0f23, 0xf1f605e3, 0x1ed1e857, 0xb9def6b6, 0xc0091ee0, 0xcff1e8ca, 0x3fe5090d,
|
||||
0xf3edea15, 0x23111b16, 0x0207fbd2, 0x1d2cdbac, 0xbdf6f6cd, 0x1a311ba8, 0x420af2cd, 0x1bde1ab7,
|
||||
0xc512f217, 0x0fe3edbc, 0x1afe19d6, 0x200bf1e3, 0x100900c8, 0xfe1a29f2, 0x12c51663, 0xdfe606f2,
|
||||
0xf7ea1f12, 0xf841df96, 0xe2f50a33, 0xe9f5efcd, 0x13fdeb25, 0x2524044d, 0x0d1a35be, 0xfaee23c7,
|
||||
0xf0043824, 0xda200108, 0x04f225c9, 0xe101f7d6, 0xf30dcb36, 0x07fb22dd, 0xd1fba92c, 0xdf03f824,
|
||||
0xd0efa8e9, 0xf5dd1d05, 0xfe332a5c, 0xf4221bb6, 0xe5ddbdb5, 0x1401c3d9, 0xfc12d33a, 0x1b14bd3b,
|
||||
0xddf2fb36, 0xf0e13709, 0x12d9c601, 0x0cf7cce1, 0x1b06bc22, 0x22d6b7ae, 0xf7291eae, 0x15f81321,
|
||||
0x1a04f2db, 0xe425f404, 0x05f32435, 0x060f2218, 0x0bd93250, 0x26f9fd20, 0xfe2fd5aa, 0x121deb45,
|
||||
0xf6e731bf, 0xf90c2e1d, 0xe9dbc2b3, 0xfb0edd36, 0x1500b93e, 0x281db01e, 0x061ddff5, 0x2712fe0a,
|
||||
0x0f461ae9, 0xe32f0b1f, 0xed691507, 0xf61d32bf, 0x0d24e5f5, 0xfae422fd, 0x03d126f4, 0xee0ac6f9,
|
||||
0xd8a4b11e, 0xebf51335, 0x15f7c31e, 0x07fd22e1, 0xe40a0cdb, 0xdd04b5e3, 0xd1f25825, 0xec033de6,
|
||||
0x12fee925, 0x292051da, 0xdff54af7, 0x34d0a4e3, 0xf53de209, 0xedeceb14, 0x0f4cca13, 0xe3340b25,
|
||||
0xf023e90c, 0xf6be32fa, 0x2254fae7, 0x07c1212b, 0x31015816, 0x1bd24227, 0x1438edf9, 0x151f3df0,
|
||||
0x02d1270a, 0x0fffc9f9, 0x0d4235da, 0xf638e2e6, 0x241ffc0f, 0x1d380b08, 0x1a93bdf0, 0x1b4f44bb,
|
||||
0xfe57da26, 0x24c8fbd1, 0x1112c711, 0x1f3ef6eb, 0x00173116, 0x100311f8, 0xf2dfe7db, 0x292ce5f8,
|
||||
0x46e1fffb, 0x45c71ef7, 0x2bc31c11, 0x4abcfceb, 0x00e0dd1c, 0x202628f9, 0x42f2f801, 0x0bb41b1a,
|
||||
0x0d16e225, 0xd2f11a12, 0xf6ec06e6, 0x13ef1deb, 0x48c51617, 0x09ff1f13, 0x314b1f28, 0x1ecf0823,
|
||||
0xf9adf6f7, 0xd4da222a, 0xef0f0501, 0xe146e8e8, 0xfe4308e1, 0x4803dbe5, 0x21bc2025, 0x0fc5f9e4,
|
||||
0xd341e813, 0xa9d9fae6, 0xaaf5d1ff, 0xb546d2e3, 0x12e2221f, 0xbee715f6, 0xd325e60f, 0x1adc05fd,
|
||||
0xf533f3fb, 0xf3d0e3f6, 0xcb11e5f7, 0x33fb0ce9, 0xa3be0b23, 0x29b8351a, 0x312f0120, 0xebbb0afa,
|
||||
0xc31a12e3, 0x0c47150d, 0x21c21be2, 0xe1570715, 0x19e0082e, 0xc8f2f800, 0x2a0b11cd, 0xcd3001a8,
|
||||
0x2f1e0bf7, 0x1909071f, 0x1c15f2ed, 0x4612f53b, 0x40021d27, 0x3108e821, 0x0c1108c7, 0xcd0d1ce4,
|
||||
0xe51c0b44, 0xb4ebf412, 0xf1dddc04, 0xd6f7e6e1, 0xc32efe56, 0xfd10ea18, 0xdb2eda55, 0x48ff0329,
|
||||
0xe2fce12c, 0xd5f9f5df, 0x2cda04fe, 0xdf0dfdcb, 0xc5e70741, 0xdf16eec2, 0x3ce1faf7, 0xcc0eec35,
|
||||
0xfa28f450, 0xf1e72210, 0x451de7f5, 0x4dfde324, 0xfdf3db35, 0x31eadc3d, 0x391c09bc, 0xcc09ee1f,
|
||||
0xdaf90dd1, 0xf6e1ff09, 0x22f8e1d0, 0xe70efae5, 0x13faf02e, 0x271e15ba, 0x03df0007, 0x11ff2627,
|
||||
0xb8e9173f, 0x38ecdfec, 0xc4ed0f3b, 0xe4d91402, 0xd5010c29, 0x050400d3, 0x1e01ba26, 0xe3390b60,
|
||||
0xe11d0a0c, 0x2adaaefe, 0x1222e906, 0x0ff6e7ce, 0xebeb3cc4, 0xfd082b31, 0xf52a1e52, 0xf1dde7b4,
|
||||
0x0ee8e6c1, 0x0c2ae352, 0x0df3cbca, 0x131bebf2, 0x23214bf9, 0xd6f5ad1c, 0x21fff8d6, 0xe3e00a48,
|
||||
0xf00119d8, 0x03d02ca7, 0xf1fcc92c, 0x0c0b1b1c, 0xf4daccb1, 0x131ac50f, 0xd6295250, 0xe4f6f3e2,
|
||||
0xe9f91221, 0xe6e0be49, 0xdcebb5c3, 0x1f1bf8f3, 0x27f6b2e3, 0x1a1c0e45, 0x0504d224, 0x0918e20f,
|
||||
0xe4dabb4f, 0x0a001d27, 0xec193b42, 0x08e9d1c2, 0x0c09e51e, 0xff28d700, 0x0d0ae5cf, 0x0704202c,
|
||||
0xfce0d408, 0x0c0b341e, 0x27ee00ea, 0x1206c7d1, 0x1000e9d8, 0xf8000830, 0xe334f5e1, 0x0bc81ef4,
|
||||
0xeed33b10, 0x280050fb, 0x02d1d928, 0x0e3be608, 0xdc130412, 0xf6ffceea, 0x03142a28, 0xfeea2aec,
|
||||
0xfdc4d613, 0xf1151aed, 0x1425c4ee, 0xfdd0db04, 0x10df1807, 0x0af7cd07, 0x20c108e2, 0xf61bce17,
|
||||
0xe6e6f10e, 0x03d0da0e, 0x20edf808, 0x37dc60eb, 0x1bfd0e04, 0x18b73f24, 0xe8f91021, 0x0ed31ade,
|
||||
0x1fe50afc, 0x07e020f3, 0x0c2ccb07, 0xedd91405, 0xf700e202, 0xdce903d9, 0xf4b31c12, 0xfcbbd425,
|
||||
0x08d431e2, 0x1f00b905, 0xd04158d9, 0xd2acabe8, 0x18e911d3, 0xedca3c12, 0xe467bb0f, 0xd9c350c2,
|
||||
0x00c12816, 0x082220e9, 0xfe692bfa, 0xfc322cc0, 0x0d1ae5f5, 0x1de446f2, 0xe136b80d, 0xf2001af2,
|
||||
0x1be3bdd8, 0x013e29f4, 0x272301ea, 0x0a021f04, 0x22d1b5da, 0xedafecfa, 0xf958d0d8, 0xb1f48ad1,
|
||||
0xf816d01b, 0xe7caf2ee, 0xf7e11ef1, 0x0ae31df7, 0x0feb180b, 0xece61513, 0x3f10670e, 0x0baa1c17,
|
||||
0xf233e6d2, 0xce46a7f5, 0xe6c642e2, 0x033225ee, 0x0b3de20a, 0x00f7d814, 0xf8cccf20, 0xe2ee0bf4,
|
||||
0xd93601ea, 0xefdf3a0e, 0x2202fb07, 0xe5c70c25, 0x01da29ee, 0xf8182101, 0xdef7b610, 0xeb0aed1e,
|
||||
0x0017d8e2, 0x2fa4a9ef, 0x0c25cd35, 0x05f62304, 0x08e7e01f, 0xe11409f2, 0xf5e81ded, 0xeefeeb10,
|
||||
0xfe122b25, 0xe9153f16, 0xe34f44ed, 0x1cca0c27, 0xf3dbcb0e, 0x08c231fc, 0xe2cfea00, 0xf031f5f7,
|
||||
0xc7e91809, 0xdfe5ef10, 0x1234fa0e, 0xee28ea0c, 0xc6061700, 0xccb8eede, 0xed190b20, 0x21441510,
|
||||
0xb1e007e5, 0xe1c7d9f9, 0xcacbf611, 0x3acb0f0c, 0xd7e4110d, 0x41c2010c, 0xef0418ea, 0xffc917dc,
|
||||
0xc7e4270f, 0x40e3eff5, 0xaf4c19f6, 0x413f28db, 0x2e12e616, 0xd1e6fbeb, 0x1008f80f, 0x070719e0,
|
||||
0xbdebdfde, 0x16f31b12, 0x2e1c12e6, 0x41eafaf4, 0xccc7e6ef, 0x26ff0bef, 0xc201fed9, 0xe733ead8,
|
||||
0x373cf10a, 0xfdd5f213, 0xe1dcdcfc, 0xa9400904, 0xe432d018, 0x15340c0a, 0xcd3aedf4, 0x24210cef,
|
||||
0x02d90407, 0x43c827ff, 0x27341c11, 0x1226fef4, 0x192cebfe, 0x280cf204, 0x96ff00e4, 0xb5dd4204,
|
||||
0x1a2adc52, 0x1bf00ec8, 0x1d07f320, 0x09ed0a15, 0xb5e3200a, 0x12f7de1f, 0xe915eaee, 0x3bf11219,
|
||||
0x3df1ec19, 0xe3ecec13, 0x1ce6f543, 0x0d18f4ef, 0x21ea1a13, 0xc8f507ce, 0x22e511be, 0x0b1cfaf3,
|
||||
0xcfe8e3f0, 0xc104f6dc, 0x301817f0, 0xb825084d, 0x3fe920c2, 0xeff3171a, 0xc7e01809, 0x2efc10d3,
|
||||
0xb602f92b, 0xdecb215c, 0x0d13053c, 0x3908e5d1, 0xb5efefc7, 0x44e0dcb9, 0xe8161def, 0x1de8f040,
|
||||
0x2f140b3c, 0xc5ec07ec, 0xd403ed25, 0x0aeefce9, 0xd412e23b, 0xf4f804e0, 0xf218e5c1, 0xca17e612,
|
||||
0xc5050ed3, 0x1afc142b, 0x2e2c0dab, 0x39ecfb13, 0x1de6100e, 0xf81ef4ba, 0xf600211d, 0x12c03968,
|
||||
0xe8f90f2e, 0xfbe42c44, 0x260bfee3, 0x051b22be, 0xe50842df, 0xfef6d632, 0x130514d3, 0xe6def24a,
|
||||
0x09213107, 0xdfddfa05, 0x0418d310, 0xf00739d1, 0x0afa1ed3, 0x1bfff4d7, 0xfddc2b4c, 0xf1e0c9b8,
|
||||
0x04e1d4f6, 0xd423acb5, 0x320c5b1b, 0x160eefcb, 0xe11347ec, 0xedfc16d4, 0x10f8c7e0, 0x220e4ae6,
|
||||
0xf0f5c834, 0x272002f8, 0xdf0df9cb, 0xe02ff8a9, 0xd7df5106, 0x152512b2, 0x02fe2bd6, 0x1707112f,
|
||||
0x2519b2bf, 0x051e2eba, 0x0bdbcefd, 0xf1eae8c2, 0x08dee007, 0x02142b3c, 0x001628ef, 0xe21fb9f6,
|
||||
0xe0e9f7c1, 0x31ed593c, 0xe4ff442a, 0x16e1c247, 0xe6e3be0b, 0xdbfc0324, 0x001110c7, 0xda2affe8,
|
||||
0x05b6d302, 0xf94a2023, 0xe5350dde, 0x1ee0f60d, 0x282a00f8, 0x28ba50ff, 0x08e5211f, 0xf1f8190d,
|
||||
0xd5abad20, 0x16fbc22c, 0xf8cc1fdd, 0xda1efe0d, 0xeb0ec3f5, 0x014c26e7, 0xf0e118dc, 0x1d11bb08,
|
||||
0xe4bc44e8, 0xd4d0541d, 0xe43a44f8, 0x28445112, 0xdae0fde5, 0x13e3c6f8, 0xe11b09f4, 0x2ad2520d,
|
||||
0xef59eafb, 0x1dcaf530, 0xde4d06f2, 0xf617e325, 0xf3c5e512, 0xf4b1cc13, 0xf91d2128, 0xd8affff4,
|
||||
0xe54d43d8, 0x1a060fdc, 0xe7c3be22, 0x2441b415, 0xf3171a19, 0x180ff011, 0x30e4a919, 0xfaed2ff4,
|
||||
0xd54253ec, 0xe7df0e1a, 0x232afa08, 0xe9f7effe, 0x1cb5f31f, 0xf4083422, 0xdfd4b620, 0x2223fc00,
|
||||
0xddcf06fb, 0x6cc004f8, 0x041c4418, 0x4b04230d, 0xc6f92225, 0xf61aee22, 0xba001d0d, 0x06c3e2d9,
|
||||
0xd5c2dd15, 0x240ffde9, 0x405a0319, 0xe3a01731, 0xde3c0b37, 0x2206faeb, 0x27fcfb22, 0x33af00dc,
|
||||
0x3ba60a29, 0x2cc913cd, 0x4ef505f1, 0xccbbda1c, 0x203df4e2, 0xe407f815, 0x1a15f321, 0x18d30eed,
|
||||
0x2d1f10fa, 0x3c47fb09, 0x3cf9eb1e, 0x4cf114e0, 0x0caadde6, 0x594ee5d2, 0x1ed6d026, 0x2229f602,
|
||||
0x18f4faff, 0xddf5f0e4, 0xaf07fae3, 0xdc0fd8df, 0x14c3fce7, 0xf2d2edea, 0xb106e6fb, 0xdb0ada22,
|
||||
0xc6bdfce1, 0xcdf111e4, 0x1dcf0ae7, 0x27c4f6f7, 0xe5e5ffeb, 0x20380d0c, 0x4b3e070f, 0x322300e9,
|
||||
0xede80a0f, 0x65f7ebe0, 0xcbddc306, 0x572b0d53, 0xb0082f2f, 0x5d0729e0, 0xbf0f3537, 0x18c2199a,
|
||||
0x57e3110c, 0x4512d23b, 0x18f01e17, 0xf9f3f11a, 0xc6f1df37, 0xeae1ef47, 0x0df111c9, 0x19fce6d4,
|
||||
0xd3f90fd2, 0x08f70520, 0x15f4e0cc, 0xefff12d8, 0xaee6ea0f, 0xc1db2afd, 0x1cdaeab3, 0xbe0bf433,
|
||||
0xe6e01b47, 0x5503f125, 0x30fbd422, 0x3723f7b4, 0xcb1510c3, 0x09fdf4d5, 0xeeee1e39, 0x0ae7ebc0,
|
||||
0x02d81d00, 0xbc33db5a, 0xc501e429, 0x12e0edb8, 0x03f1eac8, 0xf0eb25c4, 0x09e4e7bd, 0xd71de0f6,
|
||||
0xc8ee0017, 0xdf00f0d9, 0x4209f8e2, 0x3100e6d8, 0xe2190942, 0xd5070921, 0x0b0c02e3, 0xee00e4c7,
|
||||
0xf5eaceef, 0x2011f7e9, 0xdf1106c7, 0xfede29fa, 0x1c1f0d0a, 0x1f0d08e6, 0x0d2ccc54, 0xf6e61df3,
|
||||
0x121f1647, 0x1610c3c8, 0xded7b6af, 0x1ef8f61f, 0xf9172ef0, 0x391f60f7, 0xf3ebcced, 0x273050a9,
|
||||
0x1305ebd3, 0x16221206, 0x12e5c6f4, 0x0006d822, 0xecfa152f, 0xf9f92f2e, 0x1fe2470b, 0x2425fc4e,
|
||||
0x33285cb1, 0x070430d3, 0xe421bd48, 0xede1c5b9, 0xf4ea1c12, 0xe1c809a1, 0xfa05d223, 0xedf83a2f,
|
||||
0xc4259d03, 0x1f180810, 0xdb10fee8, 0x11daeab2, 0xec2614fe, 0xb31e74ba, 0x14143b14, 0x07ff2fd7,
|
||||
0xfb23d305, 0x25fffcda, 0xe7dbbefe, 0x13e43abc, 0x070c301c, 0xff0726d1, 0x16dc3eb3, 0x04ee2dc6,
|
||||
0xdeff05d7, 0xf8dfd0fa, 0xde13fb15, 0x0b1acebe, 0xe2f1f6e6, 0xee1d3a0b, 0x3003572b, 0xf9d32fab,
|
||||
0x0420ddb8, 0xcef05919, 0xd126a9b2, 0xdac9fda1, 0xe0ee083a, 0x30e259ba, 0xecf1ed19, 0xd0da58fe,
|
||||
0x071f2e46, 0xe2da4602, 0xf3cecba5, 0xd8e20045, 0x18d6ef53, 0x11dbe9b3, 0x1819c00e, 0x09f930e0,
|
||||
0xf2183640, 0x250bfd1e, 0xcae3a2bb, 0x17d13fa8, 0xefe6c8bf, 0x1ff8f620, 0xfaee22c7, 0x0afdce25,
|
||||
0xd9010029, 0x1727c2ff, 0xf2221bf9, 0xd8e10147, 0x0726224d, 0xe0ea4811, 0x1a2e0ea9, 0x0d3635a3,
|
||||
0xf0f1e7e8, 0x0c0234d9, 0x0ef8c920, 0xecf4151d, 0xe817c112, 0x0e0637dd, 0xddf305cb, 0x16e2ef0b,
|
||||
0xf1c10000, 0xfd2ce717, 0x092ada04, 0xb929e202, 0x2902e1ff, 0xcecaff25, 0xd23c09f2, 0xee2107eb,
|
||||
0xd9c0e908, 0xd3bc0018, 0xb3bc051d, 0x29ab261b, 0x0b0bff2c, 0xdf5ae41c, 0xe6ef07cf, 0x2ea10fea,
|
||||
0x1db5fac8, 0x083a0cde, 0x4ff5e1ee, 0x4643281c, 0x08dee1e6, 0x1a0e1ffa, 0x2a30f11b, 0x0b4a02f8,
|
||||
0xe1f5e321, 0xf5eaf71e, 0x21e3e312, 0xccfffaf6, 0x3932f5d8, 0xe3efeff5, 0x314df518, 0xbdc709db,
|
||||
0x1336e5ef, 0xeb2bec0d, 0xc4a6ec02, 0xe3b2eccf, 0x33210b27, 0x1a2b0a08, 0xb536f304, 0x51f7def2,
|
||||
0xa946d6e1, 0x0f1fd2e2, 0xd5cee6f8, 0xe60303f5, 0xdc25f225, 0xab360303, 0xd9aa2c0f, 0x30f9ffd2,
|
||||
0x611ff8e0, 0xc6fa3909, 0x33241323, 0x023ff505, 0xc3f827e8, 0x1601ebdf, 0x35d91228, 0x0cf70d01,
|
||||
0xbc271ce1, 0xbae8e400, 0xed09e310, 0x13ec16e2, 0xbffb1513, 0x3452e724, 0xff010cd7, 0x53ddd9d8,
|
||||
0x18da2cfc, 0x3b28f102, 0x1ae1ed00, 0x051c0ff7, 0xe16b23f4, 0xfb4f0844, 0x091fdcd8, 0xbea1e109,
|
||||
0xbcdc1a36, 0xd908e5fc, 0xd7f301e1, 0xbd1d02e5, 0x2319e5f4, 0xed0cfbf0, 0xed46eae5, 0x3442ebe2,
|
||||
0x0323f4e6, 0xd62a25fb, 0xbec7fd03, 0x3841e6ee, 0xd3cc1018, 0x4d06faf4, 0x31422521, 0x15b1f8e7,
|
||||
0x354b12d9, 0xe3ca0dde, 0x1fd30cf1, 0x25ddf705, 0xf5e8fdfb, 0x0a121df0, 0x5bc81e17, 0xd8e8cdef,
|
||||
0x000000f1, 0xdfec4a13, 0x0d1e1cba, 0x0ff918d1, 0x00de274a, 0x07242105, 0xe5030cd4, 0xe0f40734,
|
||||
0xee02ead7, 0x15dc3d4d, 0x0de3cc46, 0xe817f1ee, 0xfbe3d40b, 0x0d09cbe2, 0xd22256b6, 0x1904bf2d,
|
||||
0xea17ee10, 0xe019f842, 0x15ebc33d, 0x39ef6217, 0xe6f8f1df, 0xf1001ad8, 0x1cf90dde, 0x19e40fbc,
|
||||
0xe9e6ef0e, 0x0103d72a, 0xeffe3929, 0xf7d83151, 0x11273901, 0x28fdb0dc, 0x07f22f36, 0xddddb505,
|
||||
0xe0e3f8ba, 0xf3dc354d, 0xe613f1eb, 0x09f4e2e3, 0xe70df1cc, 0x28d950b1, 0x001128e9, 0xfe312658,
|
||||
0xf624cdb5, 0xee1217eb, 0x1ac04268, 0xd414ab15, 0x0d191b0f, 0x0e021b26, 0xe10cba1b, 0xfc09d4cf,
|
||||
0x1b2b0c53, 0x0be8343f, 0x04d92c01, 0x01f4d733, 0x0d01cad8, 0x16f2121b, 0xddebfbc4, 0xdff2fa37,
|
||||
0x1dea0bee, 0x1b0cf4cd, 0x2ff7a9cf, 0x13da15fd, 0x35fb5c2d, 0x0b0fcd36, 0x0e19ca40, 0xef1e380b,
|
||||
0x0303d5db, 0x02fdda24, 0xe30845e0, 0x14fc1424, 0xeef115ca, 0x04e5d40e, 0xde2bfaad, 0x2ddaaaff,
|
||||
0xf2e91a3e, 0xd51e530b, 0xdde405f3, 0xd908b11f, 0x0fe0c807, 0xecf0c318, 0x20064723, 0xf814d03c,
|
||||
0xe9081120, 0xe0f808cf, 0xdbf4b235, 0xfdf225e6, 0x10da19fd, 0x170fef19, 0xedc53a64, 0xea133e16,
|
||||
0x1725effd, 0xe4fbbcdc, 0x0208dadf, 0x1ff50933, 0xf706d0d2, 0x0901cfd6, 0x130515d2, 0x1e1e0909,
|
||||
0xe01247e9, 0xbe3f0000, 0x35dbe517, 0xdfcd0d03, 0xff29f9f5, 0xb0c0d900, 0x30eed8e7, 0xdabff816,
|
||||
0xaa4203e7, 0xd9f62f19, 0x5453ff1d, 0xdbd32bd6, 0xec07fd06, 0xeedd14df, 0x462debfc, 0x173e1d04,
|
||||
0xe423efea, 0x4f6cf505, 0xd701da45, 0xb13602d9, 0xa2fd28f3, 0xeec7c9dc, 0xfae21610, 0xd4c9de0a,
|
||||
0xd5db04f0, 0x1503fd03, 0x0360eddb, 0x2abf2639, 0x34fdfde7, 0x462bf5dc, 0x3c1f1e04, 0x1d04ec09,
|
||||
0xbdd20cdd, 0x1c561a06, 0xfb1d0c2e, 0x19b824f6, 0xd1f4f120, 0xbe23061b, 0x1dcb1bfb, 0x22f10cf4,
|
||||
0xc5f8fa18, 0x5227ec20, 0x33d1d501, 0x03caf6f8, 0xd3fc260d, 0xb9150523, 0x5811e114, 0x211bd0e8,
|
||||
0xcd1d08f2, 0x44c2f50b, 0xf3d6e417, 0x0535e5ff, 0xfbccddf2, 0xc102def4, 0xf5d01825, 0xfb27e207,
|
||||
0xeff62300, 0x3a1417e1, 0x17b6efec, 0xddd9ef23, 0x2ddefb02, 0x0a2bfbfb, 0xfb561e03, 0x2ceedd2e,
|
||||
0x17f50416, 0xc4f3efe3, 0xb9e2ece5, 0xe3e71f0b, 0x47e5f4f1, 0xebdbe1f3, 0xe4e514fc, 0xfc280c0d,
|
||||
0xfdbb2501, 0x0508251c, 0x0d0add1f, 0xcb201b1e, 0x2e480df9, 0xf3f2061f, 0xc7181b19, 0xe42310f0,
|
||||
0x32b3f4fc, 0xe5c70b26, 0x1ceef3ee, 0x3def0d16, 0x2309ec18, 0x3544fb1e, 0x5050f3e5, 0x000d29d9,
|
||||
0xef5b271a, 0x57b0ea33, 0xecc6d0d7, 0xd619ecee, 0xc60101f2, 0x3954efd9, 0xf2db11d4, 0xf7b31afc,
|
||||
0x433d20da, 0x0000e515, 0x06f5d234, 0xdef0b6c8, 0xed1dc4f4, 0xe8fef126, 0xe215bb3d, 0x14fcedd5,
|
||||
0x0deb1aed, 0xe528f2b0, 0xe0e84840, 0xdd1ab542, 0xe91ec10b, 0xe11ff648, 0xbf0968e0, 0x0ddccab5,
|
||||
0x0b1ae30e, 0xe6020ed7, 0x07f42f33, 0xf4e91cef, 0xfbe9d3c0, 0x24e4fb44, 0x12fa162f, 0xe9063f21,
|
||||
0x01f6d931, 0x22f806df, 0x1d04f423, 0xdffc4923, 0xe4eff3c8, 0x190af11e, 0x18f4111c, 0x170311da,
|
||||
0x16f73e20, 0xdbcb04a2, 0x0dfc1bdc, 0xedf43a1d, 0x10cfc8a6, 0xfb402d68, 0xf2273500, 0x21fc4a24,
|
||||
0xfae2d345, 0xe7001028, 0xeaf1ed36, 0x00f329e6, 0x0d1234c6, 0xdf27f8ff, 0xecf8eb20, 0x09f432e5,
|
||||
0x0bfacdde, 0xeffbe9de, 0x14e73c40, 0x2007f821, 0xe005b9dc, 0xeafe3eda, 0x0701d0d7, 0x29015027,
|
||||
0xe9fdee24, 0xe31ff408, 0x24244db4, 0x03f5dcce, 0xf3151c3c, 0xf5da1e01, 0xe01b0843, 0x02db2b4c,
|
||||
0xdcf34c35, 0x07f620e1, 0xf40e1b19, 0x0cffcc27, 0xf9112ec8, 0x3c0e9bca, 0x1615123e, 0xf7ddcf04,
|
||||
0xfe0326da, 0x2a26524d, 0x09031fd4, 0xe6dc0dfd, 0xfbf32ecb, 0x18121115, 0x231d050a, 0x011a2abe,
|
||||
0xfc0bdc34, 0x0a0632d1, 0xe3dabbb2, 0xeee2c60a, 0x11eae9ee, 0x031ad6bd, 0xf6131e3a, 0x0d22cbb6,
|
||||
0x13103c18, 0xf5161c3e, 0xf01ae8f2, 0xf306e42d, 0xed04c623, 0xf1211a08, 0xdbf34d34, 0xe9e6eff2,
|
||||
0xd90db1cb, 0x0aedcf3b, 0x3f110000, 0x2dffe818, 0x20fbfbda, 0x08fc07dd, 0xd6182025, 0x9d27fff0,
|
||||
0xb5e63c01, 0x295323f2, 0x06d401d5, 0xa0ee22fd, 0x15ec3816, 0xba24ed14, 0xe13be1fb, 0x39360aed,
|
||||
0xb60f10f3, 0x15e2dee7, 0x174aedf6, 0x1146ee22, 0xee16171e, 0xed1d1512, 0xd7fdec0b, 0x110200db,
|
||||
0xfb5116db, 0xf50923d8, 0xd7bae3e1, 0xc960021e, 0x14400e38, 0x33d01419, 0xc737f407, 0xdc6011f0,
|
||||
0xebfd05c8, 0x120ced25, 0x0845e9e4, 0xfaf620e3, 0x394923e1, 0x5217efde, 0xc1c8d6ef, 0x030fe810,
|
||||
0xf418db19, 0x0ff3e510, 0x0ec7e71c, 0xfbaae5ef, 0x27c823d2, 0xc3c6ff0f, 0x0ed0ecef, 0xbbd11b07,
|
||||
0xb8411cf8, 0x42e6e1e7, 0xafcee50e, 0x29bdd8f7, 0x4cf6ff1b, 0xefe2dc1e, 0xc518e9f5, 0xc313ec10,
|
||||
0x0ccfea14, 0xba27e309, 0x0c9ae201, 0x19d31bc3, 0x4aec0e06, 0xfa0e23ec, 0xeac5211b, 0xe9281313,
|
||||
0xdd711101, 0xed41fab7, 0xbb2f14e7, 0xd6a1e4fa, 0xb6b3fec9, 0xd0b32324, 0xcbdbf8db, 0x4fb60cfc,
|
||||
0x3503d9df, 0x06c3f225, 0xd2c7de15, 0xbefff9ef, 0x0aec1ada, 0xbe401eec, 0xc92fe519, 0xb6bf0ff9,
|
||||
0xddbcde1a, 0x2047fb1b, 0xcbbaf91f, 0xa7fdf3e2, 0x30eed025, 0x435b07e9, 0x2efc1b34, 0x0ac70723,
|
||||
0xbefce311, 0x4ca719dd, 0x1d04db31, 0xead20a24, 0x2a5b12fa, 0xc613ffce, 0xb52c12ea, 0x03bd23fc,
|
||||
0xc9b9dc1b, 0xd0e40e1f, 0x000007f4, 0x0cde354a, 0xd2dcaafc, 0x21d908fe, 0x1bf5f3ce, 0xe40d0d1a,
|
||||
0xcd06a42f, 0x0fe7180f, 0xda0c4e35, 0xfe28db00, 0x13efc5e9, 0x08032024, 0xff35275d, 0x22eeb639,
|
||||
0xeb2bc3ad, 0xe9ec3e14, 0x2523fd06, 0x06f3d1cc, 0xdb2903b0, 0x0fdfc8f9, 0x18e50ff4, 0x0efbcb2e,
|
||||
0x11fae8d3, 0x33e4a545, 0xe22af6ae, 0x1f10ba38, 0xe30bf633, 0x0c06e322, 0x0eeb1b3e, 0x09f1cf18,
|
||||
0x10ef1939, 0xe9f21036, 0xee17e9c2, 0x1aec0f13, 0xeff4ea1c, 0x16dbedb4, 0x03eb253d, 0x1400c5d9,
|
||||
0xfd00db28, 0xdcda03b2, 0xcdff5a28, 0x0bd6ceae, 0x24f8fbd0, 0xfdecd5c4, 0xdfe4faf3, 0x0cedccec,
|
||||
0x0807e030, 0xf6213208, 0xebdfc208, 0xf312cbea, 0x1d21ba49, 0x03f02517, 0xda0e4ee6, 0x14ed3dea,
|
||||
0x090ae132, 0xfdefd5c7, 0xe019f9f2, 0xf4121dc7, 0xe7febfda, 0x27ee0116, 0x18fbbf23, 0xff04d625,
|
||||
0x252d4eab, 0x271d000c, 0xf8ed3116, 0x2009f831, 0x1b17bd3f, 0x201209c6, 0x2af95220, 0xee0816d0,
|
||||
0xd6e352bc, 0x240f04e6, 0xf21d19f6, 0xf41b1cf3, 0x171b3ff4, 0x0c26cd4e, 0xfe05d6d4, 0x021dd7f5,
|
||||
0x22cf4a59, 0x14efec39, 0x1c0abbce, 0x12d3c655, 0xe8fb4023, 0x07e82fc1, 0xdae6b30e, 0x1d0af5e1,
|
||||
0x27f0ffc8, 0x01ed29eb, 0xe625be02, 0xdfe2490b, 0xf11c1945, 0xca21a1f9, 0xe91810c0, 0x20190842,
|
||||
0xf1fec929, 0xe2e9b9ef, 0xe814c0c4, 0x6d0c0000, 0x14d0451b, 0x11aeebf8, 0x393d16d6, 0xa9dbeeec,
|
||||
0xdbf7d103, 0xa45e0320, 0x1ab1cbc9, 0x0b25f2d9, 0xbf111e02, 0x2b2e1818, 0xb2000305, 0x1608dbd8,
|
||||
0x210e1220, 0xfdf1fa1b, 0x2d9e2519, 0x01d0fcc7, 0xd5b8d9f8, 0x08d603df, 0xce25e0fe, 0xea000a03,
|
||||
0x234b12d9, 0xe72ffa23, 0xedf00efa, 0x361614e9, 0x2c3a0e13, 0xe114fd11, 0x2a3a0915, 0xbfe3fdef,
|
||||
0xd95a180b, 0xbd20fece, 0xbd391c07, 0x610de4ee, 0xbb0d38e4, 0xee08e4e5, 0x10fe1720, 0x2f0fe8d9,
|
||||
0xc92af919, 0xdf24f001, 0x64f0f9fc, 0x1551c317, 0xccf61229, 0xbd39f41e, 0xe9ece511, 0xf9f21214,
|
||||
0x1dc5e01a, 0x3ac00aec, 0xbf1012e8, 0x2f00e8e8, 0xdffc07d9, 0x1477f9dc, 0x0c301450, 0xfb0d1cf9,
|
||||
0xd92ddd1b, 0x43df0006, 0xcc541cf9, 0x0de40d2d, 0x043c1b0b, 0x48ec24eb, 0xcc27e0eb, 0x2ea1f401,
|
||||
0x02e00536, 0xec2c25f7, 0x380dec04, 0xe9faf01c, 0xb01b10de, 0x41f527f3, 0x31a6191c, 0xdfeef6ce,
|
||||
0x4632f916, 0x2a2c1ef6, 0xff17fefb, 0x3fc2d9ef, 0xc3e717eb, 0xe70915f2, 0xc7110fe1, 0xe9caf0e9,
|
||||
0x3a26eff2, 0x44361301, 0x40f11b0e, 0xedc81818, 0x09d8ebf1, 0x2013e2ff, 0x35ccf8eb, 0xaa2c0ef4,
|
||||
0xb033d2fd, 0x03dd280b, 0xd0d926fa, 0x4203f7ff, 0xcff31a25, 0xe8cef7e5, 0x403ef00a, 0x0bd8e817,
|
||||
0x30251d00, 0xaa10f8fd, 0x3ea7d218, 0xa708e9ce, 0xdde231e0, 0xc3e5040a, 0xeda7140d, 0xb51715cf,
|
||||
0xd2dc22f0, 0xedb70603, 0xfc19ecdf, 0xb2e2ddf1, 0x1e06d90b, 0x28ee0a21, 0xb3c90117, 0x21212510,
|
||||
0x31b8f8f8, 0xeae0f8df, 0x48bbeef7, 0xd20e20e2, 0xd029f9e6, 0xdd01f9ff, 0x0726fa27, 0x3a0edf01,
|
||||
0x160ced1a, 0x1cb412e3, 0xd24c0b23, 0x01b50624, 0xe1e526dd, 0x321ef7f3, 0x200e0af5, 0x362bf819,
|
||||
0x04130efd, 0x1af72315, 0xc7f3f31f, 0x2ad8f0e4, 0x47f1fe00, 0xa9411fe6, 0x0be92ee7, 0x1f2be4ef,
|
||||
0x14c30804, 0x5c1214ea, 0xf1cd34ea, 0x5535e7f5, 0x3410d30e, 0xfa2e0c18, 0x4218defa, 0xbcbd19f0,
|
||||
0xe6fd1c1c, 0xf5fe0eda, 0xf5e0e426, 0xb1041d08, 0xbf06da24, 0xc0d41823, 0xcfaae8fc, 0x25b0f82e,
|
||||
0xd9d5fc29, 0xc8ccff02, 0xf04cf00b, 0x32d0e725, 0xda090af9, 0x5604ff1f, 0x2fef2edd, 0xdce2f818,
|
||||
0x1fd30409, 0x4c300afb, 0xe018dcf8, 0xb54308f1, 0x281fdde5, 0xc202fff8, 0x3ca11525, 0xc241ecc9,
|
||||
0xc06d15e7, 0xc11ce8bb, 0xf51a180c, 0xb43b1cf2, 0xcd2b2413, 0xefd3f4fc, 0x3e30e8fb, 0x43df1708,
|
||||
0xd44ae4fa, 0xe912fd22, 0xeb16eee9, 0xe1aa12ee, 0xe2be0a2e, 0x24f90a19, 0x02b1fbdf, 0x4f33d9d9,
|
||||
0x1fe4280c, 0x0336f60c, 0x09bc250e, 0x2b36e11d, 0xf2fffd0e, 0xfd33e727, 0xd2ecdb0c, 0xebdc0614,
|
||||
0x16ec13fb, 0x2427ee15, 0x0a5d03ff, 0x2f0a1e36, 0x08e20000, 0xe0eaf813, 0xfe1c2bf5, 0x300c57cc,
|
||||
0x13e8c510, 0xe2e50a43, 0x0cdd35fa, 0x040f2c37, 0x0001d828, 0x4404932d, 0xdaddfe4c, 0x012d29ab,
|
||||
0xee1ec6ba, 0x1b0ef236, 0x16f6121e, 0xd4faab2d, 0xe9e5eef3, 0xe80d4035, 0xe5f642ce, 0xd8010028,
|
||||
0x141d3c0c, 0xe7110fe9, 0x14eac5ee, 0xed1c3af3, 0xd616523f, 0xdef7facf, 0xf2e01b47, 0x2211fa16,
|
||||
0x290cb033, 0x29e05007, 0x300d58e5, 0xf82b30ad, 0xf01c370d, 0xd4ebadc4, 0x080c1fe5, 0x1324eb4c,
|
||||
0xec13c5eb, 0x08fbcfdc, 0xe8ff4029, 0x08e920ee, 0x02fddb2b, 0xf20ce6cd, 0xe6184140, 0xfd1624c2,
|
||||
0x27f0b0e8, 0x1b15423d, 0x151c3d0b, 0x21e0f9f7, 0x16e1c148, 0x11161812, 0x0b0e3435, 0x07fb20dd,
|
||||
0xe30045d7, 0xebecc33c, 0xe10b471d, 0x1ceb0cc3, 0xf020e809, 0xf412e53a, 0xe905c124, 0x2eef56c7,
|
||||
0x10dbc804, 0x13181541, 0x0913cfc5, 0x0be3cef4, 0x34ed5dc5, 0xff10da37, 0xd827ff4f, 0x11d81701,
|
||||
0x13e81540, 0xcddd5a04, 0x090ce233, 0x22db49fd, 0x3d09651f, 0xf5edcc3b, 0x25224c06, 0xf7c8e15f,
|
||||
0x190dc0e4, 0xf81fe009, 0x08272fb1, 0xec11c417, 0xefe7e9f2, 0x13e1eab9, 0xe6fdf325, 0xf1f01918,
|
||||
0x0c27cb01, 0x0e0d36e6, 0x1a0bbf1c, 0x1122c649, 0x0020d9b8, 0x2120f9f9, 0xd50f531a, 0xdbeeb416,
|
||||
0xf0fdc9d5, 0x1ee20bf6, 0x24ebfcec, 0xebf1c31a, 0x00003030, 0xd1570709, 0x5a3707d1, 0x482033f1,
|
||||
0xfb262008, 0xb8fddcfd, 0x33301fdb, 0x39fff4f8, 0xf9ac11d8, 0x0115e0d4, 0x0401d814, 0xda3323d8,
|
||||
0xc72803f5, 0x0bba1100, 0x48e11de2, 0xe81f1f09, 0xfe3af00a, 0xd105da12, 0xacc1fa23, 0x1bc92d16,
|
||||
0x05f90cf1, 0x49f52421, 0x35e6211d, 0xe52f0df3, 0xdf50f3f9, 0xf6c3f9d8, 0xf3df1e15, 0xc45e1bf8,
|
||||
0xf9c6ebcb, 0x07ec2111, 0xace8dfed, 0xc606d311, 0x3f161223, 0x3e071712, 0x5e3ae9de, 0xdef5c912,
|
||||
0x34fcfae2, 0xd0e9f525, 0x0431f9ee, 0xc2bdddf6, 0x0aee161b, 0x0827e217, 0xdf322001, 0xcfbd06f5,
|
||||
0xe0daf71c, 0xde3bf802, 0xe11c0613, 0x013ff7f3, 0x1df1d917, 0x46ecf419, 0x40d41e15, 0xd22618fb,
|
||||
0xa1360702, 0x1d25c8f3, 0xe0310a04, 0x0939f8f7, 0xe8a51e11, 0x1fbe10cd, 0x4126091b, 0x3c2ee6fe,
|
||||
0xdae21406, 0x2624fff6, 0x37380205, 0xb4db0ff1, 0xfddd2504, 0xe51eda05, 0x09c1f30a, 0x15f420e9,
|
||||
0xb138ed1b, 0x26142811, 0xc41e0315, 0xba1eedf7, 0xe3ce1e0a, 0x9cef0b0a, 0xfbe2c4e9, 0x370f23f6,
|
||||
0xc4f9f019, 0xdb5fece0, 0x140f03c8, 0x1ec115e6, 0xbecd0be8, 0xd1cce60b, 0xc3b007f4, 0xe9ca1628,
|
||||
0x1adbf00e, 0xbdbc0efc, 0xc930e51d, 0xb42cf2f9, 0xc2a723fc, 0x35fa17cf, 0x539b0edd, 0xfaffd63d,
|
||||
0xe4b62228, 0xe3fc0d22, 0x4ab40a24, 0x3a0cdd24, 0x13bc121c, 0x15e30000, 0xfcee2c3a, 0xf7f2e1e7,
|
||||
0x1528c2b0, 0xe51c0df4, 0xdc03fbdc, 0xffe12af8, 0x1c294451, 0xfc18db10, 0x1f0048d8, 0xdc06032f,
|
||||
0x0bdee2fa, 0x04162cef, 0x09e7d0c0, 0x0c24e34b, 0xbddc6bb4, 0x09f72032, 0xe11d4746, 0x0bf2e4e6,
|
||||
0x2122fab5, 0xd60653d3, 0x30dda84a, 0xfded2b3a, 0x1de80b10, 0x08ead13f, 0xd3055522, 0x2610fe37,
|
||||
0x34fc5cd4, 0x1fecf614, 0x0cf41ce4, 0x16f7ed1f, 0xe6150e12, 0x0c00e427, 0x11ee3917, 0x0eee363a,
|
||||
0xe3de0cfa, 0x24054c23, 0x2efb5623, 0x27d00058, 0xe71441eb, 0x231b4bbc, 0xf3141c3d, 0xb9f66f32,
|
||||
0xd3ecab3c, 0xeb04122d, 0x1a1ebef7, 0x0c0fcce6, 0xeae81240, 0x14ec3c3c, 0x41ea9711, 0xfeded64a,
|
||||
0x00ccd95c, 0x22fef926, 0xec063b2d, 0xeae93f3f, 0x1ffff827, 0x25264cb3, 0x180a101e, 0xdcfc0523,
|
||||
0xf1dbe7b2, 0xfbe424f4, 0xe9053ed3, 0xdafc4ddc, 0xea23c2b4, 0xf2fe1a26, 0x252403fd, 0xfd0e2537,
|
||||
0xd01b59f3, 0x101be80d, 0xd9dd4fb5, 0x1edf0a08, 0x27e702bf, 0xd9f400cc, 0xf914d214, 0x1debf53e,
|
||||
0x1524ee05, 0x121f3a0a, 0x01dcd604, 0x3901a029, 0x1dfef629, 0x11dc1804, 0x23f00538, 0xfd1124c8,
|
||||
0x32215a07, 0xf7173112, 0xdc0e4dc9, 0xe00008d8, 0x1c1dbc0b, 0x200c09cc, 0x0805e0dc, 0x14e03bb8,
|
||||
0x2bf3ac36, 0x2f0aaacf, 0xeadc124c, 0xff16d8ee, 0x01f3da1a, 0x0000163b, 0xfaf213ed, 0x0a08221a,
|
||||
0xcebf1f20, 0x46dd0a1a, 0x3fcd1e05, 0xe7cee8f5, 0xf23410f6, 0xedf0e50b, 0xef42ec17, 0x08fdeae6,
|
||||
0x975ce0db, 0xca19bf34, 0x241b0df0, 0x27bd04f2, 0xf8f8001b, 0xccbfdfe0, 0xf607f4e6, 0xec4ce3e0,
|
||||
0x17d614db, 0xdfd0effd, 0xf751fa07, 0xc7081fd8, 0x225011e0, 0x16e7fbd8, 0x2af71210, 0xef32fd1e,
|
||||
0xf5e9ea0a, 0x11f2e411, 0x26cceae5, 0x4e00fff3, 0x724f2728, 0x29ea4a26, 0x1aca00ee, 0x460df30e,
|
||||
0x201c1ee4, 0x46dff7f3, 0xd3d41ffa, 0x3beb04fc, 0x4401ed14, 0xd3b3e4da, 0xc03cfb25, 0x1c1de7eb,
|
||||
0xcccc0bf4, 0x2ae10df5, 0x402802f7, 0x0117e901, 0xc201d9f0, 0xf7fc15d9, 0xfedc2024, 0x24c82503,
|
||||
0xc1fafdef, 0xfef2e9de, 0xd4c1da1a, 0xaff104e8, 0xc12a29e6, 0xb625e8fd, 0xd7c72204, 0xb5c4ffef,
|
||||
0xcd45dd15, 0x25330a1d, 0x3ff0030b, 0xa9b2e917, 0x25c12fd9, 0xc23a0218, 0xd2bfea11, 0xe3170518,
|
||||
0x282a0aee, 0xda0300ff, 0xfeb6fe26, 0xebd5db22, 0x1ce6edfd, 0xe4d4f5f2, 0x16f2f404, 0x26c8ee1a,
|
||||
0xe2e9feef, 0xa8fbf5ee, 0x01073123, 0xe843d920, 0x1416f0e6, 0x0b24ebed, 0x5123e204, 0x0000d7fa,
|
||||
0xbd290000, 0xbef21bfe, 0x19eee7e7, 0x0000f1e9, 0x00000000, 0xfa490000, 0x17e0df22, 0x000012f7,
|
||||
0x00000000, 0xbadc0000, 0x0f3fe1fd, 0x00001a17, 0x00000000, 0x31c60000, 0x09ee0000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000
|
||||
|
||||
hard_output0 =
|
||||
0xcddb5769, 0x627f0a91, 0xbcf446fb, 0xc930d133, 0xdd7b82f0, 0xbd591856, 0xb73094b3, 0x32436132,
|
||||
0xac268fdc, 0xeeb03845, 0x0087cc79, 0xd372eb62, 0xb595a1bd, 0x511605f7, 0xa428b83f, 0xfb9380a8,
|
||||
0xe43c2efb, 0x0a04017a, 0x674608a3, 0xc2464812, 0x208bc693, 0xb03d0580, 0xdc62b803, 0xc2808805,
|
||||
0xccaf7f16, 0x848dacef, 0xedf69b49, 0x222d2bd9, 0x78ffa7a5, 0x749cb755, 0x9f4abc69, 0xa27f3a72,
|
||||
0x9652d070, 0x8a83be54, 0xa9820b7f, 0x8b00e52a, 0xb02159e4, 0xeddabc6a, 0x47b69064, 0xf161d47f,
|
||||
0xc243b0df, 0xebb2ac39, 0x4fd6cddb, 0xc0d38ba3, 0xd9ddef17, 0x8c638875, 0xa132cfef, 0x5893a4f6,
|
||||
0x1a29ce5f, 0x9072f3eb, 0x486bda03, 0xf5250cda, 0xdc10edbc, 0x392e6b7f, 0x4664de06, 0xfde2f3f2,
|
||||
0x37c7d442, 0x32b60d29, 0xbcb7c8ff, 0xa1542cd0, 0x91b36e18, 0x231f9e19, 0x97cbc4a6, 0x51ceb1df,
|
||||
0xc02dedf8, 0x4bfd9728, 0x569deda7, 0xc0790501, 0x132e47b0, 0xb8229185, 0x81cbe103, 0xa30dbf5f,
|
||||
0x72c54db6, 0x4abdbdf7, 0x557d21d3, 0x3b75be17, 0xf540476b, 0xc48d78e1, 0x767d44ec, 0x87dc6193,
|
||||
0x7a4c52fc, 0x306c3548, 0xa66e51b3, 0xfc627273, 0x5f349268, 0xf5e74974, 0x232388b6, 0x01d8e49e,
|
||||
0xbf29f75f, 0x378a9d02, 0x59a45656, 0x46fb25b1, 0x75219b62, 0x4f0d6f71, 0x220c6763, 0xdde47b70,
|
||||
0x8c0dce8f, 0x3e3db100, 0xabad4262, 0x800eddcb, 0x32416450, 0x61d260ce, 0x6e2a0fac, 0x73cdb847,
|
||||
0xeee01947, 0xe5a3a37f, 0xa710e211, 0x98ecaa36, 0x69197474, 0x6e73e13f, 0xb2100f2e, 0x7714b2fd,
|
||||
0xec3d81cb, 0xc50e5194, 0x5c69a3d8, 0xce0bdc13, 0x08e7df1c, 0x5fb014a5, 0x75b5801e, 0xf57d3b75,
|
||||
0xac5dd149, 0xa5096b77, 0x4b5da0af, 0x656506d3, 0x3823d675, 0x3840530c, 0x1c0980ba, 0x3bd4150f,
|
||||
0x3df8c0f8, 0xa2834aa4, 0x479ea855, 0x4f4557b5, 0x15d730db, 0xe6809738, 0x0aec8f7d, 0xf5e2188e,
|
||||
0xa9a0fac7, 0x785c3166, 0x049dd244, 0x72cada2a, 0x5655bab3, 0xff73ca65, 0xb3dc51f1, 0x259f555b,
|
||||
0xdaa1933d, 0x0f716b8f, 0x1e29bde6, 0xbe8bf3a9, 0x908b5a60, 0x667636c0, 0xfce80b0b, 0xcf43d154,
|
||||
0xfffc60f5, 0x324b1632, 0x1609e45b, 0xf8e09aed, 0x1a01f6ee, 0x013cea78, 0xdd89ba42, 0xfe5bca8f,
|
||||
0x894e3aef, 0xda292f76, 0x457a93bd, 0x73a9c254, 0x7b5ca9d1, 0x947355ba, 0xb8a797c8, 0x3b5e97f4,
|
||||
0x946889ec, 0xd49316a3, 0xa5383830, 0x55f63bbf, 0x47b3a4ca, 0x415bd007, 0x1227c60a, 0x3610fab0,
|
||||
0xa68c75fc, 0xa1441c62, 0x68a02596, 0x6d083d07, 0xceeb9057, 0x915054bc, 0x6f2c7fa8, 0x62be6166,
|
||||
0x963703a3, 0x5af6e614, 0x5bc3e4f0, 0xf517a95e, 0x408a2bfd, 0xab7fe7a8, 0x37aac030, 0x9956f2f5
|
||||
|
||||
k =
|
||||
6144
|
||||
|
||||
e =
|
||||
10376
|
||||
|
||||
iter_max =
|
||||
8
|
||||
|
||||
iter_min =
|
||||
4
|
||||
|
||||
expected_iter_count =
|
||||
8
|
||||
|
||||
ext_scale =
|
||||
15
|
||||
|
||||
num_maps =
|
||||
0
|
||||
|
||||
code_block_mode =
|
||||
1
|
||||
|
||||
op_flags =
|
||||
RTE_BBDEV_TURBO_SUBBLOCK_DEINTERLEAVE, RTE_BBDEV_TURBO_CRC_TYPE_24B,
|
||||
RTE_BBDEV_TURBO_NEG_LLR_1_BIT_IN
|
||||
|
||||
expected_status =
|
||||
OK
|
|
@ -0,0 +1,645 @@
|
|||
# SPDX-License-Identifier: BSD-3-Clause
|
||||
# Copyright(c) 2017 Intel Corporation
|
||||
|
||||
op_type =
|
||||
RTE_BBDEV_OP_TURBO_DEC
|
||||
|
||||
input0 =
|
||||
0x7f7fb2e1, 0x467f05ef, 0x3cabba6a, 0x1f826cac, 0xbe817fe7, 0x584dab0f, 0xdcb55f81, 0xe47f915f,
|
||||
0x37b1a534, 0x4b478145, 0x9db5727f, 0x7fa6943f, 0x819550ea, 0xd18eb72a, 0xa0ba9c10, 0xcf7f817f,
|
||||
0x915a957f, 0x2c699d0a, 0x89815c0f, 0x7f569358, 0x1002587f, 0x54314130, 0x817f1b7e, 0x81a85e2a,
|
||||
0x5981bdf2, 0x0c81b00f, 0x6781be0e, 0x297fb17f, 0xfd811fb3, 0x7f077fdb, 0xd37fc2ab, 0x817f1024,
|
||||
0x81817f7f, 0x3d848ec6, 0x4486cd9c, 0x7f6d7f81, 0x1d7ffa93, 0x813648ca, 0xdc7f125e, 0xaa81a798,
|
||||
0x60838ef4, 0x815fcdbd, 0x81cb9d93, 0x817f8188, 0xc8c3d697, 0x817af2d6, 0x36888781, 0x818117ee,
|
||||
0x37a67fbf, 0x89f464b2, 0x7f1e7f81, 0x7fe5c17f, 0x8ca1effc, 0xed7f82cf, 0x4a7f5ac6, 0x7fffb8d6,
|
||||
0x427f7f73, 0x747f7f06, 0xdfcd22a9, 0x7fb99981, 0x76f77381, 0x2cd70f12, 0xd8b138e1, 0x81a4ea29,
|
||||
0x222db281, 0xc3a07fd2, 0x217f8177, 0xd1cd87c4, 0xd181679f, 0x7f7fdee2, 0x7c81a72f, 0x6e7f5a7f,
|
||||
0x77b0c96d, 0xff7f8110, 0xe8c6ad46, 0x376ade0a, 0x447f687f, 0x5916d238, 0x88816b81, 0xda7f6d88,
|
||||
0xe2b2b55f, 0x750f7fc8, 0xc624d47f, 0xc6837f79, 0x81de5272, 0xd0847f29, 0x81ad587f, 0x3e7f7f61,
|
||||
0xc803e070, 0x237ff600, 0x8c01815e, 0x814e0e81, 0x81657eef, 0xab2a62bc, 0x73d42cb4, 0xaaf03a8a,
|
||||
0x817fa57f, 0x5e7fe2c3, 0x6deda37f, 0x6e87818d, 0x767f6e4d, 0x5c76819a, 0x8182b6f0, 0xdcd3037f,
|
||||
0x81184c7f, 0x7ff1501c, 0x22c7f159, 0x45a6817f, 0x9b53c5e7, 0x57966a5e, 0x0a7f7f81, 0x4a5c155e,
|
||||
0xf37fff81, 0xad97f8f2, 0x052f397f, 0x79638181, 0x7f7f7f7f, 0x81e3fae4, 0x7659cf03, 0xbd7a5a81,
|
||||
0x46bcab7f, 0xa57f69a1, 0xba818186, 0x38a347a2, 0x91a88ec0, 0xd76087fc, 0x81818b8c, 0x7fa3424e,
|
||||
0x7f89ef7f, 0x81ac183d, 0x3aa8912a, 0xc4937da6, 0x7a4c136b, 0x81568e05, 0x8182812b, 0xebb17f1d,
|
||||
0x84b87f4c, 0xf4eab6c9, 0x81034197, 0x8183bd0a, 0xa1b92676, 0xceca2ef1, 0x9b7f7f7f, 0x5d813181,
|
||||
0x817fea35, 0x0a6c81b0, 0x9a559b4f, 0x93987691, 0xad819510, 0xa47ab324, 0xfa577f7f, 0xbba8ac3e,
|
||||
0x6694b753, 0xee63c4d7, 0x17b4ce81, 0x83c0dc81, 0x6a7f4481, 0x81d87fe0, 0x7f5cc5c0, 0xf828ea77,
|
||||
0xbb817fa3, 0x3e816619, 0x817f6aab, 0x26417f7f, 0x0c40817f, 0x9cf01834, 0x32b37f7f, 0xe74fd0a7,
|
||||
0x7f7f4167, 0x0e7f6ae0, 0x813d81b2, 0x8172027f, 0x4ea6c275, 0x814525de, 0x46817f7f, 0x7fcb2cd1,
|
||||
0x7f8198ca, 0x3d7f60aa, 0x8d7fac81, 0xe2c081ed, 0x656f8181, 0xb2ae9365, 0x6ddd8d81, 0x86e0be65,
|
||||
0x5495ec58, 0xcb981829, 0x429ee669, 0x81445fc5, 0xd3435724, 0xce51b323, 0x92b16972, 0xf0137f8e,
|
||||
0x7f199a7f, 0x81be813c, 0x8155817f, 0xd481037f, 0x167f8181, 0x5ad131d4, 0x7fbc4149, 0x81046d60,
|
||||
0x87174b9c, 0x94bc63ba, 0x68817c7f, 0x12ef7f8d, 0x7a81f4f6, 0x7f7f6db9, 0x4823417e, 0xa4989a48,
|
||||
0x7e4c787f, 0xa47f8123, 0x819afb20, 0xbf7f447f, 0x8d95af5c, 0x33a6812e, 0x07c75cd5, 0x337f8151,
|
||||
0xa2e5e15a, 0x847f7209, 0xf9f4b934, 0x72a77f2f, 0x1a9f2f7e, 0xac224bb2, 0x81467f0c, 0x3f8fd28d,
|
||||
0x4a78b07a, 0x5269a71e, 0x4fd57fb2, 0x0b5262bf, 0xea39ca0a, 0x577f3d1e, 0x509481d7, 0xb7816b48,
|
||||
0x35c31d7f, 0x818bdc1d, 0x24087fb9, 0x7fe27f07, 0x55866481, 0x7f9edd28, 0x07811ed1, 0x1b317fb2,
|
||||
0x8cb19dee, 0x396920a6, 0xd965dd85, 0x9ed5ff47, 0xc97f7f7f, 0x7f8c1d55, 0x06a69701, 0x9e348881,
|
||||
0x7f6cb281, 0x388181d1, 0xd07d61ac, 0x7fdef7f1, 0x08177f7f, 0xd87fa1c0, 0xfe9ebeb5, 0x813d3430,
|
||||
0x2181811e, 0xf4dab306, 0xa36bbb7f, 0x05e87f7f, 0x957ff3cd, 0xe4814219, 0x7fbf3f81, 0x818a7fab,
|
||||
0x43e081d9, 0x87c08729, 0x0db52785, 0x8181b0da, 0x4c94697e, 0x817fa9b2, 0x7f7f81d9, 0x8bda8193,
|
||||
0xb6811781, 0x81796220, 0xdb082ac1, 0x2c7f5d3b, 0x8c8103f3, 0x4dcbd01e, 0x7fc1a87f, 0x457f7f23,
|
||||
0x5e26bad6, 0x7f8174f3, 0x30109f08, 0xef8526cc, 0xe8690849, 0xd2b981b0, 0x7f7f7fb5, 0x8156ef7f,
|
||||
0x921a7f98, 0x7fe6681e, 0x244e497c, 0x5ef68149, 0xbfbcaa7f, 0xf5011204, 0xfe7f8163, 0x8cd08f31,
|
||||
0xc88a6b43, 0x7c8105b6, 0xf6d881aa, 0x074c2c2d, 0xd6815c7f, 0x1d15d265, 0xce816f0c, 0x14c77f2e,
|
||||
0x9a7f08c4, 0x1a8b8ed2, 0xbe9637ed, 0xb59fac5a, 0xa4d07f91, 0x7f847fab, 0xd981597f, 0x7328575d,
|
||||
0xb83af760, 0xb536b941, 0x81c1937f, 0x16b7814d, 0x3f7fb081, 0x7f41e102, 0x727f77ea, 0x9558c381,
|
||||
0x48ac819e, 0xa87f99f2, 0x819e7f05, 0x92816eb0, 0x59447f81, 0x4f6cb056, 0x818163a8, 0xe00a64e2,
|
||||
0x81bb7fa3, 0x7f816de7, 0x86ac6a50, 0x48a277b0, 0x8e37cd81, 0x7f88e646, 0x023351d8, 0x1ee7a64b,
|
||||
0x8145f239, 0x81810859, 0x557f7f7f, 0x6971d292, 0x813d7fdf, 0xe86cade7, 0xdab67f7f, 0x6d4f247f,
|
||||
0x9df2297f, 0x1e8172ec, 0x3f81a56d, 0x907f02d3, 0x45663970, 0x817f46a4, 0x817fd1ce, 0x9843b181,
|
||||
0x7fdf817f, 0x784881da, 0xd8a281c2, 0xd77f88d8, 0x8c81817f, 0xeb625633, 0x73fe4eae, 0x57787f19,
|
||||
0x7f81ea7f, 0xca8143c8, 0x767cbf1d, 0x7fbc81e1, 0x7f9bbeb5, 0x7fea8a12, 0x7f5c7fde, 0xb5fe1685,
|
||||
0xa4da81c8, 0x7f6b542e, 0x81814b7f, 0x6252f7d3, 0x55eebb81, 0x6a0824cf, 0x586128f0, 0xded58181,
|
||||
0xe32a819b, 0x79c67f20, 0xf2812781, 0x7f58c369, 0x7ffa2d7f, 0x817f81f4, 0x7ffc2c07, 0x457f9981,
|
||||
0xff4281c7, 0xd78e6955, 0x3e10e57f, 0x632b817f, 0x7f0197d1, 0x813e7feb, 0xf981ac81, 0x8f81317f,
|
||||
0xc37f137d, 0x01918101, 0x81b007a4, 0xaab059ad, 0x7f7f81f7, 0x6ac590a9, 0x817f81a0, 0x68816067,
|
||||
0x0ae08182, 0xb47fb268, 0x33d94a7f, 0xbf43d243, 0xccff8e4e, 0x44ebe23f, 0x0d4cfd2e, 0x7f81947f,
|
||||
0x81d1cee8, 0xda0e16a3, 0x34a74376, 0x117b81ae, 0x1d853f6b, 0x81d6d2ed, 0x8d7f5be6, 0xcf1fb4a0,
|
||||
0x3e1ec13a, 0x7fed0cf4, 0x65d3817f, 0x0a1fec83, 0x7fc4811f, 0x666381c1, 0x8147c754, 0xa9cf7f53,
|
||||
0xa076cf81, 0x4c7a4712, 0x1a814ff5, 0x9e7f8175, 0x8181698b, 0x7f1a7f63, 0x8191f19f, 0xb1037fa8,
|
||||
0x7f52aa2e, 0x42b65c09, 0x94afab7f, 0xbda37dda, 0x81f2d66b, 0x3e737f1f, 0xcb816031, 0xd56181ef,
|
||||
0x2c6ffb81, 0x44852329, 0x1b4b81cc, 0x055a7bb7, 0x4c6f2e1d, 0xb14ae1b7, 0x7f43c2c4, 0x2368b80d,
|
||||
0x7f7ffb9f, 0x990b0523, 0x74b33ea5, 0xd64c8199, 0x98ed81a2, 0x311bc8e9, 0x599963cf, 0xb0eeed4c,
|
||||
0x8181ed70, 0x42023428, 0xd00270bc, 0x812a7fd3, 0x7fc4101a, 0x3448d8db, 0x068814a8, 0xfeb5701c,
|
||||
0x46db1481, 0x3cc5b001, 0x8181c2b3, 0x9c3d7f7f, 0x7f13e346, 0x2b75819c, 0xf57fcfe1, 0xfdaac581,
|
||||
0x7f814c6f, 0x7f186b39, 0x7f818150, 0xea7f5b7f, 0x816776b0, 0xb8657f57, 0x7f447f5e, 0xc3628122,
|
||||
0x84849d7f, 0x7f8cb914, 0x92813dd5, 0x81557a3a, 0x6b4cbf7f, 0xc6818b94, 0x7fbb7f98, 0x3c88812d,
|
||||
0x8de4267f, 0x8dee81fd, 0x37f98131, 0x3d8164d2, 0xd97f8181, 0x3ccaebf9, 0x8165cb7f, 0x63cb81d3,
|
||||
0x817fea94, 0x48817fa1, 0x4ea0b16b, 0x3cb5ab6f, 0x3148f975, 0x8c7f1ab5, 0x7fae5a87, 0xad06c881,
|
||||
0x0681c187, 0x81a5a11b, 0xe29ea383, 0xf07f536d, 0x81b0e702, 0xc37fbb59, 0x9e6167e8, 0x3f55c9be,
|
||||
0x819a40a9, 0x6450b823, 0x15927b65, 0x72a149d4, 0x6c280b5c, 0x5d7fd8f3, 0x998d831a, 0xbb7f817f,
|
||||
0x10ab3f81, 0x96f65101, 0x257f743a, 0x7f04a024, 0xe0c981b4, 0x81163a22, 0x8e197481, 0x21addfdc,
|
||||
0x7f2dcdaa, 0x787f4407, 0x6b7f81ce, 0x9fd252c5, 0x85e8979b, 0xb049819d, 0x8f7f7f4d, 0xbe284c7f,
|
||||
0x78135181, 0x5d33db0a, 0x8123817f, 0x81496a7f, 0x81889281, 0x8145bf37, 0x2e9f7fdf, 0xe4543a2d,
|
||||
0x811e6024, 0x7f62e6ba, 0xaad07f1f, 0x4f73894f, 0x4c7f8181, 0x57817f06, 0xd27feb81, 0xcf1a815c,
|
||||
0xa57fbe7f, 0x684f7fdc, 0x81f6cbc0, 0xb72bf82f, 0xda6d448f, 0xc6157f36, 0x7f81407f, 0x9a8c4719,
|
||||
0x5fdf81dd, 0xaf817f0f, 0x813c11da, 0xd7ec1181, 0x570186e7, 0x8181f41e, 0xe5b8a2bb, 0x819051f3,
|
||||
0x2a7fd68f, 0x37a13ac3, 0x5b81fd38, 0x6342817f, 0x84697f6e, 0x7f5eddfa, 0x6abc81d1, 0x8151d9d8,
|
||||
0x3e5c6c53, 0x2b397fc6, 0x60d58548, 0xc540b213, 0x67815781, 0x89983030, 0x767c7f81, 0x71effe3a,
|
||||
0x817feb42, 0x05818897, 0x810ea318, 0x99bb0e8a, 0xf1dd4b7b, 0xae6dcbae, 0x8155adc0, 0x15b4c0c1,
|
||||
0x81ac9b14, 0x895057be, 0x9599d781, 0x38968fcd, 0x8171e981, 0x7a62d80c, 0x8681509a, 0x7f5d489b,
|
||||
0xa381467f, 0x7fa12952, 0xa07f8109, 0x5acd5d7f, 0xbb7fc77f, 0x531f3429, 0x7fb77f5a, 0x566d89f6,
|
||||
0x817d4c23, 0x406a81e6, 0x1381c99c, 0xad89d258, 0xa67f0cad, 0x510b916e, 0x7ffa81a1, 0x0b6a11e1,
|
||||
0x2be02284, 0x7f4e4338, 0x817fd023, 0x058174bf, 0x677f950a, 0x97a6a01d, 0x81817f81, 0x136881da,
|
||||
0x717f7f9a, 0xbf811404, 0x6714c965, 0x51828181, 0xcaf329a1, 0x8881bc0a, 0x7f7d8305, 0x2c7f5a7f,
|
||||
0x7f7f63e9, 0x797fced4, 0x818154f5, 0xf13681c4, 0xc04b1d81, 0x0e81d244, 0xbf3f66bf, 0x5a3f2d7f,
|
||||
0xfa931714, 0xce485844, 0x263ae55b, 0x7fd37f81, 0x79477ee4, 0x7f8187e0, 0x81ab8144, 0x7f8d7f7f,
|
||||
0x6f715068, 0x7f5577f6, 0x7f487f41, 0x81813b84, 0x33431981, 0x81a181c6, 0xca1b667f, 0xe75a7f71,
|
||||
0x168128b0, 0xe0a092d5, 0x6e8164de, 0x2e817f61, 0xc4b1818d, 0xea7f8a32, 0x1098817f, 0x14a18156,
|
||||
0xdd568862, 0xd3176a4b, 0x81308181, 0x697b3faa, 0xe256cecb, 0x697f1691, 0x4e228c05, 0x7fa6682a,
|
||||
0x7449816e, 0x4558a15f, 0x9f513638, 0x7f7f819c, 0x7fb77aa1, 0x5eaf4912, 0x14817f7f, 0x0853817c,
|
||||
0xa47fbe41, 0xdfd77f0e, 0x81371d7f, 0xc9cd7299, 0x81d0673a, 0xb133492f, 0xfd7f4003, 0x897f7f1c,
|
||||
0x1990d405, 0x9f3ee2bd, 0xc168817f, 0xc6f57fa4, 0x83ee483e, 0x90f781f6, 0x81dcb39d, 0xd37fe881,
|
||||
0x28819181, 0x83da81d4, 0x7251dc7a, 0x7928ffc3, 0x7bca8181, 0x7f7f817b, 0xf6fa907f, 0x37916bd4,
|
||||
0x0d3fbc7b, 0xde81bdd0, 0xa0147fdc, 0xbf0f7f0b, 0x25958132, 0x7f6c9931, 0x7f44812c, 0xd4868181,
|
||||
0x6d9622ad, 0x817f30b6, 0x3c7f817f, 0x81238823, 0x7f2d5c81, 0x6f81531b, 0x947faff2, 0xa5ea038c,
|
||||
0x4268817f, 0x814f8cfc, 0x81481809, 0x814d7f1a, 0x3c87507f, 0xa47f1219, 0x4f65f27f, 0x5d7f2c21,
|
||||
0x7f4631a5, 0x5a81475a, 0x7f81ef60, 0x73aaa890, 0x327f7f7f, 0x81b614c1, 0x7fc6477f, 0xe5b7a6be,
|
||||
0x55816e73, 0x7ffaffb1, 0xb93d1b81, 0x3ce80fe2, 0x37ec6194, 0xe681e2db, 0x81c1d37f, 0x33a2bad3,
|
||||
0x582b8181, 0x7fdc7f25, 0x81978169, 0x9733486f, 0x3de13ef3, 0x247fd5cf, 0xa91d817f, 0x606a7f56,
|
||||
0x817f8178, 0xe61d7b08, 0x7fa08181, 0x058bd29b, 0x28237fbf, 0x4f81b057, 0x488d8103, 0xe1817fa5,
|
||||
0x81666297, 0xfabc75c8, 0x7ff75edb, 0x4a62fab5, 0x687fad84, 0xa7221c28, 0x773a5a6e, 0xf27f8581,
|
||||
0x7f7f9569, 0xa31d812f, 0x81d48457, 0x7f88bcfe, 0xd743b981, 0x7f608102, 0x18de2185, 0x81d77fc4,
|
||||
0x937f337f, 0xe67fe52e, 0x95d481da, 0x887f6071, 0x81301872, 0xd9088132, 0x7f7f5a81, 0x8181aba8,
|
||||
0x7f9a7fcd, 0x7f7f4136, 0x3d87d3a8, 0xd581d381, 0x5d306ed0, 0x615b98dc, 0x812b3281, 0xdbe5c443,
|
||||
0x817f7fe9, 0x815462da, 0x8122da0a, 0xb5817d81, 0xe12bd56c, 0xfa819a68, 0x907f8183, 0x236aa83f,
|
||||
0x1b576c9b, 0x5b6424ab, 0x3f3e3953, 0xec81507f, 0xddb43aa9, 0x818134f1, 0x81c37fb0, 0xbf4a7fcf,
|
||||
0x810b7f7c, 0x705b81d5, 0x23636581, 0x3caf7f9d, 0xbe765d81, 0x189a11ae, 0x8194cabc, 0x6063c5b0,
|
||||
0x0e3c5353, 0x388235bb, 0x81904632, 0x2b9781d3, 0xd78db758, 0x953fe437, 0x7423f22d, 0x81ad9c95,
|
||||
0x7fd74748, 0x329b582d, 0xe0e07f7f, 0x7f81ae8e, 0x962fe50c, 0x3b7faf1d, 0xcaeb8e37, 0x7f54276a,
|
||||
0x927f6c9a, 0x828143c1, 0x90456105, 0x7f757ff6, 0x796681eb, 0x7478b225, 0x70d852bb, 0x7f280bdb,
|
||||
0x56597f47, 0x51e6fff8, 0x1e7f818d, 0xdc4a8175, 0x10712985, 0x2ee6daa1, 0x81c7d046, 0xa1a36e79,
|
||||
0x9adf7f7f, 0x812ee70d, 0x91bc1062, 0x443b7fa9, 0x818f47b3, 0x7f817f3b, 0x7981a09c, 0x7f9c817f,
|
||||
0x1b46d2cc, 0x786179de, 0xd97f61f2, 0x81b4f213, 0xd381874a, 0x7f4f7fc4, 0x9c81c3d5, 0x17d59842,
|
||||
0x7fc9a8fc, 0x996840b5, 0xd5a79281, 0x88378181, 0x7fd4ca81, 0x81ba7fee, 0x5dae297b, 0xc8fa0e5c,
|
||||
0x987a5757, 0x5debc016, 0xa64eb973, 0x61a51b81, 0x66509c7f, 0xeb7ad965, 0x7ada817f, 0x4d5bf7bc,
|
||||
0x8876b8a4, 0x7d73b4d0, 0x762cb5ad, 0x6ec14d66, 0x6bfdad7f, 0x7f7f810e, 0x81bc2b15, 0x0f817f9c,
|
||||
0xc72fe940, 0xc9168b0c, 0x7f6e8d79, 0x7f81fadd, 0x706181f6, 0x678181e7, 0x3f68c5e8, 0xa06d8195,
|
||||
0x78d73d7f, 0x7295109a, 0x05897f55, 0xbdc07281, 0x81817fe3, 0xcd157f30, 0x489ca757, 0x53468119,
|
||||
0x3f6a81b8, 0x03fe7c43, 0xb511cda3, 0xe581a17f, 0x5e3e3ec9, 0x7f507f96, 0xbe12a481, 0x81006ddd,
|
||||
0x49322cb4, 0x27f7a81e, 0xc6085618, 0x8148d270, 0x68668181, 0xec5ed498, 0xa011833a, 0x81475300,
|
||||
0x071d3a63, 0xa2c55142, 0x7fe9767f, 0x6e3c21fe, 0xeb63814a, 0x7fd57ffd, 0x9f91630b, 0x475f219f,
|
||||
0xbbb5c7bc, 0x686de142, 0xb652909f, 0x6b8e5a7f, 0x7f885858, 0x7f027ee1, 0x7f818191, 0x818881d4,
|
||||
0x1b7c017e, 0x8581aac9, 0x627fa790, 0xaf837f7f, 0x69064681, 0x311d32e9, 0x6f7f0ba1, 0x7b81a1c5,
|
||||
0x7f4f8144, 0x81e38144, 0x528daa3d, 0x1c098175, 0xba6b0ac7, 0x732614ab, 0x5b2c5d7f, 0x81815ce8,
|
||||
0xb37f7fbb, 0xc87f8ec5, 0x81b08181, 0x5bcb8136, 0x7f2524c5, 0xf5e881d8, 0x50ceaf7f, 0xf72387a1,
|
||||
0xd4c74e74, 0x663f7fe8, 0x26ae4a7f, 0x5d7f6358, 0x8178bbdb, 0x46f38102, 0xb0327f53, 0xa019f297,
|
||||
0xeff57f12, 0x7f7f79e2, 0x8120817f, 0x73e4b322, 0x999c6349, 0x92ba973e, 0x7f7fbc5c, 0x81946449,
|
||||
0xaf4b817f, 0xca523d00, 0x81817fbf, 0x3b145a81, 0xec54886e, 0x81cb173e, 0x5f02667f, 0x967a8181,
|
||||
0x8a817f81, 0x3cb93c41, 0xfa811336, 0x74feb5a9, 0x821b9081, 0xaea865af, 0xf17f4e71, 0x52810059,
|
||||
0xaebc3b36, 0x6a8f7fd2, 0x109de3eb, 0x4c555f48, 0x8166cc78, 0x7f4c7b48, 0xc7d1d381, 0x1381537f,
|
||||
0xa0ab5c1f, 0xa00d0039, 0x81157f81, 0x2f206f81, 0xacb45b81, 0x2ec382f3, 0x7ff0383e, 0x44dc5aeb,
|
||||
0xc37f81cd, 0x43553306, 0xa63d7f81, 0x7f7f8140, 0x7f7f818a, 0x7d82bd27, 0x817f8b7f, 0xa3579535,
|
||||
0xc2e47871, 0x81815a0b, 0x49977081, 0x724cc372, 0xc681c27f, 0x2b7cabf0, 0x3081a6ac, 0xec7f964e,
|
||||
0x7fda3ad3, 0x422671a4, 0x60008158, 0x7f738e7f, 0x538e6f81, 0xb73e0ab0, 0x796a6551, 0x81ad178b,
|
||||
0x19731c7f, 0x1bf8c26a, 0x4acb7fd4, 0x5121b547, 0xda547fff, 0x7e505ff7, 0x817fff48, 0xa0813934,
|
||||
0x3d4f77d1, 0x83f327ef, 0xc7937f6b, 0x357c4a84, 0xc183ca7f, 0xbd6081db, 0x30e0d783, 0x492aa57f,
|
||||
0xbba6671e, 0xb062baef, 0x7f817f20, 0x7f267f58, 0x7fb94b3f, 0x447f5b21, 0xb864997f, 0x7fb057f8,
|
||||
0xb1401a7f, 0x7fb57f9d, 0xefbb8175, 0x66892581, 0x7f06fa7f, 0x817a90f0, 0x7bd5793b, 0xc37ead24,
|
||||
0x6feaa4be, 0x3a548cde, 0x8e81f98c, 0x81b78199, 0xe6c11940, 0x4d647f2f, 0xbc5c8181, 0x8175fa91,
|
||||
0x8188864b, 0x85591890, 0x47ce5d57, 0x38a4efb7, 0xce5e739f, 0x81737fd4, 0x6d7f635e, 0x9c861774,
|
||||
0x89818262, 0x45bc8114, 0xd1552a89, 0xc68174f8, 0xaf9081d8, 0xcb08e35b, 0xf5c404b2, 0x2ce96576,
|
||||
0x11895a36, 0xcf20e0ea, 0x2548e7dc, 0x8f774c59, 0xf85a8f56, 0x7f81ddae, 0x7f7f627f, 0x1481491c,
|
||||
0x7f97661b, 0x787f81e0, 0xa2192f7f, 0x6cb37fb0, 0x8181ae27, 0x3f7fafec, 0xce7f5a86, 0xae067f7f,
|
||||
0x3c1c8181, 0x817eb443, 0x8e741041, 0x5a4ef2ba, 0x61029de4, 0x9d637e34, 0x819d7fca, 0x8181cd7f,
|
||||
0x8175b96c, 0xbc4f6ecf, 0xf826aead, 0x567fa36d, 0x81968197, 0x9f9dcf3e, 0x265c8131, 0x81d9deab,
|
||||
0xc21cf772, 0x7f6bd907, 0x313f795b, 0x817f197f, 0x09ecfe43, 0x6114402f, 0xe0995a81, 0x5f263281,
|
||||
0xbe7f8158, 0x7f7f26dd, 0xfd7f7f7f, 0x3da2c609, 0x6ce3810d, 0x7f81cd1b, 0x81d68809, 0x42be9c6c,
|
||||
0xf3d37f5c, 0x7f81e031, 0x774e0c30, 0x7f8f468f, 0x9ebb42b2, 0x7f817fc0, 0x1376817f, 0x25f78181,
|
||||
0x7f8eb3be, 0x20228505, 0x229fe181, 0x81ac277f, 0x4f308129, 0xb8818111, 0x81d47fc7, 0x818181f0,
|
||||
0xc27fd34a, 0x9dbc810a, 0x8481d981, 0x61817581, 0x8a2c817f, 0xe7815625, 0x96a7946f, 0x3a7f5d5d,
|
||||
0x835f2fc1, 0xb6082dd7, 0x567f687f, 0x838181b6, 0xc663e9ad, 0x517f7fbb, 0xa570adb0, 0x12cfc2b4,
|
||||
0xc1587f39, 0xbd8140ba, 0x7f814366, 0xd00981ec, 0xc27f217f, 0x5cd1b2ad, 0x81992c7f, 0xb1b57f62,
|
||||
0x3bb9b1de, 0x9213cd8a, 0x814f136e, 0xa5c27fc3, 0x947f7f59, 0x8ef30ddd, 0xd3f290e9, 0x39bc7f8c,
|
||||
0x7f814e81, 0x5381ff22, 0x7f81f04f, 0x0adde113, 0x5b93867f, 0x687f8111, 0x7f7f1c60, 0xb856814f,
|
||||
0x7f8e8196, 0x5cfb66fc, 0x20310ab4, 0xa2599964, 0x973f0065, 0x817f95d6, 0xa43b7f7f, 0x816bb1c3,
|
||||
0x7c7581e9, 0x521770cf, 0x81456be1, 0x5e26818d, 0x3b54057f, 0xd4e231d6, 0x977f0346, 0xe777814e,
|
||||
0x81b6095a, 0x7b337fd7, 0x18bb202b, 0x219b7cf9, 0x2bdeaa81, 0x55dcd1d2, 0x8123905c, 0xe463fd74,
|
||||
0xd16ec17b, 0xd90f4e3b, 0x817fd97f, 0x817f7f7f, 0x816afd35, 0x3dd87f51, 0xa62f0e5f, 0x9f4766ce,
|
||||
0xa933c505, 0x81049129, 0x627f3e7f, 0x025ea181, 0x7b5e4119, 0x0d11aff9, 0x817faaa2, 0xe3bc817f,
|
||||
0x7fb27f81, 0xc07bc500, 0x9451c181, 0x1fc6811e, 0x7f9f9e3b, 0x7f4c1a91, 0x7f1f7148, 0x8358819a,
|
||||
0x81119a81, 0x16d55f0c, 0xc07f7f2e, 0x467f9991, 0x237f8c7f, 0x81638101, 0x2aacb9ae, 0x4f439f32,
|
||||
0xc65e96aa, 0x7f826508, 0x7fa86ab6, 0x602ddbc4, 0xd07fd00a, 0xb0e381dd, 0xca81cc2e, 0x7f7b7f15,
|
||||
0x7f81b9bd, 0x21627f38, 0xa481ed5c, 0xeee8d79b, 0x64369481, 0xb97f81b1, 0xf443d7e8, 0x50a410b8,
|
||||
0xd87ffbbe, 0x18589760, 0x814998d5, 0xc1814b2f, 0x7fc33b7f, 0xd25b7335, 0xb6b2987f, 0x988a7f48,
|
||||
0x9aa4fb81, 0x597fd920, 0x7f4e7f9a, 0x7f819892, 0x81daeac9, 0x7f538fcf, 0xac7f8198, 0xd2529c90,
|
||||
0x0ff00ba8, 0x765cb53e, 0x7f0fd3ab, 0x0d81cb33, 0x81989961, 0xc13c7f25, 0x20d6a6bf, 0x7f817fd0,
|
||||
0x6f6594db, 0xec8c68eb, 0x638194a0, 0x3b89815c, 0x81734c65, 0xaeb69ec3, 0xd20b6440, 0x2f71b6dc,
|
||||
0xc990816e, 0xb6077fda, 0x7f4cc48a, 0x816aa8e8, 0x817f397a, 0xfb8181b7, 0xe64d11e2, 0xe97f1576,
|
||||
0x10706f7f, 0x9b935d4c, 0xaf7f3547, 0x7f175ec9, 0x7632a981, 0x2f61d4f4, 0x7a597f81, 0x499e7f00,
|
||||
0x7f81315e, 0x81c4230c, 0x8cb66a2e, 0xe76a8105, 0x81817fc6, 0x7f0e50bd, 0x83ba337f, 0x81009281,
|
||||
0xcac68465, 0x617fd326, 0x893981e4, 0x7f8ed9b3, 0x59467f7f, 0x0181e258, 0x7f81b281, 0xc9816629,
|
||||
0x7fbc8181, 0x08e1cadd, 0xa8328181, 0x76b6e071, 0xb36d7feb, 0x505490d7, 0x09d5dd31, 0xba81632d,
|
||||
0x7f7f6fd0, 0x9e45813c, 0x7c4c4f70, 0xd97f5090, 0x247f335c, 0x357fbb4d, 0x267fd5c8, 0x26d08181,
|
||||
0x51447fa8, 0x81358efb, 0xb9197f52, 0x40aadca1, 0x7f6781aa, 0xaf272a09, 0x8177a4b2, 0x497fb515,
|
||||
0x819b7f7f, 0x8b817f41, 0x257f7f92, 0xa8d2244e, 0x477af9ef, 0xa8817f36, 0x5ca681f5, 0x7f1a76cb,
|
||||
0x8181c5f1, 0xc4ddc7aa, 0x81a1c2bc, 0x7f466fa2, 0x625c237f, 0x3ddd1f44, 0x4f54fdde, 0xa281f2d5,
|
||||
0x95d14e95, 0xf26e7fd4, 0x9a813a90, 0x8154361c, 0x327f7f42, 0x7fa2983b, 0xd9c28197, 0xf00d1898,
|
||||
0xb95848d4, 0x387f81f0, 0x9f8e7f4a, 0x1c5cb9ec, 0x1f63b5fc, 0x187f7dcd, 0x7f1c7f05, 0xa855e2cc,
|
||||
0x5a747f98, 0x7fa1b4ee, 0xe8e51aaa, 0x7f81ec81, 0x38818175, 0x81815f07, 0x84888181, 0x81810852,
|
||||
0x316e0060, 0x819b1c6e, 0x3d814577, 0x5ecc5d81, 0x5e81814c, 0x7f76914d, 0xfc7f814b, 0xd2819d96,
|
||||
0x70a34ad0, 0x7fd544f3, 0x71e51581, 0x817d45a4, 0x7f479a68, 0x42447fae, 0x9a974f7f, 0x817fbbd2,
|
||||
0x989f367f, 0x78fa30c0, 0xbb902e75, 0x7fda7f02, 0x7f82c5b8, 0x33c325c4, 0xdf89815c, 0x81c37f33,
|
||||
0x52f37ffc, 0x7fcc4702, 0x81488124, 0x7f548196, 0x4214a4a3, 0xa034b302, 0x6a817e04, 0xc67f795e,
|
||||
0x17a98157, 0x7f7f7f5b, 0x7f7f4c56, 0x7fe0b181, 0x7f907fba, 0x42f82fd9, 0x223ea236, 0x3d2025d1,
|
||||
0x097f81b1, 0x81a35969, 0x373cb170, 0x44a57c3b, 0x26bc5a7f, 0x34657ff6, 0xc83b3d3f, 0x99be6c2c,
|
||||
0x1c811f7f, 0x5c7f81ac, 0x33fa49f6, 0xa5c38181, 0x81ed8144, 0xc88a652a, 0x7f817fe3, 0x953cfc91,
|
||||
0x466681d3, 0x366f16d6, 0x187f2ff5, 0x077ff351, 0xbe1b817f, 0x3884ec81, 0xb17f8181, 0x9a39437f,
|
||||
0x476fac61, 0x7f911514, 0x24b0038f, 0x5647567d, 0x8143c7ae, 0x81b03a31, 0xec7f085e, 0xc10d7f55,
|
||||
0x0a50b9f6, 0x7f1fd244, 0x7f81a1c7, 0xc48148ca, 0x877fc97f, 0x81115e37, 0x827ffdf3, 0x48b741c2,
|
||||
0x7f9fc5c0, 0xf87f81ce, 0x43a1029c, 0x2a78427f, 0xff9a164d, 0x7ff981f6, 0x1b7f81aa, 0x6f48ca6a,
|
||||
0x547f7f2a, 0xa9ce5cf0, 0xc07f7f7f, 0x7f6fa54d, 0x58817fbb, 0x7f96fa32, 0xfdc18381, 0x7abd7e7f,
|
||||
0xc604b981, 0x64217ffe, 0x8893bd7d, 0x7f140281, 0x7759b9e3, 0xcc648129, 0x81c981c6, 0xaf2ba351,
|
||||
0x9ecd819f, 0xac816ff2, 0xb516672e, 0x4157ab81, 0x81d21796, 0x35643433, 0xf13d5a7f, 0x9881d003,
|
||||
0x5081bbd0, 0x7d7fbdcc, 0x6ba50d3a, 0x8170677f, 0x85b29f81, 0x8aa72210, 0xfbaaa381, 0x7f0e8f34,
|
||||
0xcf367b7f, 0xe60399ab, 0x7f7f7f01, 0x817f7f11, 0x81818932, 0xe39a6e31, 0x8d3b8181, 0x107d2bc1,
|
||||
0x908164f7, 0xe41a7fc5, 0xe944503a, 0xeb4b6559, 0x22817f81, 0x816ea8ff, 0x1557e37f, 0xaa7f701c,
|
||||
0x817f828e, 0x738106c4, 0x7e0e7f05, 0xac768181, 0x17898158, 0xc081ea33, 0x827f9958, 0x3b7fd4fc,
|
||||
0x16181f7f, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x0c7f3a86, 0x7750813d, 0xd2b385bc, 0x6f7f7f72, 0x7d487fa8, 0x7f7f8d65, 0xb6578196, 0x4d93815a,
|
||||
0xf9a54748, 0x317d6469, 0xe0466f8a, 0xef869693, 0x3da5a9e2, 0x7f7f05a1, 0x14c68157, 0xc2148135,
|
||||
0xad9ed181, 0x7a7f6081, 0xf10d659b, 0x4a38dce0, 0x114d7f2a, 0x2bc7f79f, 0x0f7881f1, 0x423e5553,
|
||||
0x9c2b817f, 0xde7ffb85, 0xe18117ca, 0x67fd7f7f, 0x3fbbf57f, 0x9b34ad7a, 0x487a543f, 0xf06322f8,
|
||||
0x9ce93023, 0x3581818a, 0x6a7f4d69, 0xad3d627f, 0xbd812c92, 0x8be4cc7f, 0x23b47fc4, 0xc87f819b,
|
||||
0x104d6e7f, 0xcfcb8134, 0x0d8152cf, 0x467f7f19, 0x113f1ec5, 0x589bff9e, 0x457fa8c8, 0x2a1246d0,
|
||||
0x731e257f, 0x40e460e8, 0x13d3057f, 0x817c8de1, 0xc09dc798, 0xab81d4f1, 0xa1a49d8c, 0xbf50df7f,
|
||||
0xbc8192f7, 0x73aa4d5a, 0x1c817f43, 0x428fd6fc, 0xc282884e, 0xb9f67fd8, 0xd7777f4d, 0x1aa2d89a,
|
||||
0xa5537f81, 0x8878b631, 0x4bdfd881, 0x7f21b57f, 0xcd7f7f7c, 0x4d2aa1d0, 0x3e138144, 0x3c7fe433,
|
||||
0x146e5fe3, 0xa53b7f85, 0xa9537ffd, 0x819eda1c, 0xf93e2881, 0xc3814f7f, 0x018d69b4, 0xf87fa19f,
|
||||
0xb09f9144, 0x6ec23f94, 0xdf7f39c6, 0x48087f7f, 0xfc818184, 0x18815bc3, 0xc764598b, 0x11ed68c7,
|
||||
0x81df81bd, 0x7feceb38, 0xc90a473a, 0x81817f81, 0xef3a537f, 0x7f4d3873, 0xf45c846f, 0xfeb68afc,
|
||||
0xd326d181, 0x7fe4ae7f, 0x3e817fb5, 0x81c95de9, 0xbebdcd7f, 0x23053726, 0xdd8d8181, 0x1d545233,
|
||||
0xe37c933d, 0x81e52c1d, 0xc0ab2d81, 0x81e2667f, 0xcf2e70db, 0x9370319c, 0x21add116, 0xe6c34081,
|
||||
0x076912e7, 0xa781aca0, 0xd6f5a5d0, 0xa9af5d7f, 0x2e817c77, 0x81e1661c, 0xd5308181, 0xae7f6ec4,
|
||||
0x45815295, 0x2dbc2581, 0x50bde53d, 0xcd8cb1bc, 0x2e67977f, 0x32fc789f, 0x2b81ca3f, 0xef7f7f61,
|
||||
0x19a7d611, 0x81427f81, 0xe98181fc, 0xd4397d7f, 0xd9ab7fb7, 0x819c8c92, 0xd5478339, 0xf0555aae,
|
||||
0xfe09f481, 0x8128527f, 0x337f1081, 0x6dae3aa2, 0xccb67f81, 0xb1d8d87f, 0xc2d3dd02, 0x97af814d,
|
||||
0x812f1c5a, 0xc50c8181, 0xcd70610a, 0x7f555df4, 0x567f7f23, 0x0a0d917f, 0x4b81815c, 0x184a5b8e,
|
||||
0x5054c67f, 0x7f7f8ced, 0xf0b31f7f, 0x11698131, 0xe0ac5442, 0x57ffc57f, 0xb681cc02, 0xb78c8193,
|
||||
0xa629b48c, 0xf2a8d43b, 0x59167d37, 0x81818bf2, 0xc87c817f, 0xbf7f8e7f, 0xcdbc2243, 0x2ed78e74,
|
||||
0xfe817d61, 0xa3613c01, 0x25e281af, 0xbd6a7f36, 0xe57f4b7f, 0x81898161, 0x2a415081, 0x50b07fb6,
|
||||
0xe77f9c72, 0xd43681aa, 0xd07fb648, 0x3c7fbd5b, 0xa555c475, 0x8169dc64, 0x09106247, 0xf9b660ab,
|
||||
0x389542ac, 0x7fa22c4e, 0x81304e71, 0x29208c90, 0x317fa43a, 0x8281819d, 0x7f212065, 0xc0682681,
|
||||
0x3f2b5dc7, 0x87d86d81, 0x5c7f4192, 0x7f54332b, 0xc564a449, 0x7f817f58, 0x3c6576aa, 0x147f816d,
|
||||
0x4957d091, 0xbdaba3a7, 0xa17fa381, 0x49628138, 0x372f815b, 0x81676748, 0x8dba817f, 0xc89e8129,
|
||||
0x866fc855, 0x43ba4a81, 0x8f4b7ec2, 0xa47f054d, 0xc3b07185, 0x7f8d3ad0, 0x2c7f9f8e, 0xc17f27d3,
|
||||
0x33956381, 0x8e12a081, 0x7be52e32, 0x44b28122, 0xe4947f6d, 0x6eae4f7f, 0x34df816a, 0xd7938168,
|
||||
0xa7a9528b, 0x7f81ec45, 0x41857f6f, 0xbc28817f, 0xcbd67c06, 0xaeb678d2, 0x529a547f, 0x44813b6e,
|
||||
0xd44f247f, 0xbe1b9879, 0x877f4996, 0x5b9a8dcd, 0x2e558281, 0x1d817f84, 0xda7f8186, 0xdda9f4a6,
|
||||
0xe698ae70, 0x7fb54c8a, 0x0aae8550, 0x857ff8fb, 0x1ac42e8e, 0x3f27814b, 0xe27fdc2d, 0x2db1eb81,
|
||||
0xca817e5a, 0xec7f62e2, 0xc7dea079, 0x7f7a7f26, 0x7fdfbf81, 0x7fe89da8, 0xa9187264, 0xf98192c9,
|
||||
0x6af88181, 0x667e3981, 0xf97f3c48, 0x7fdf817f, 0x3b9bbc81, 0x55bfbc81, 0x096fa6e1, 0x1b75a67f,
|
||||
0x357f83ed, 0x7f7f6f7f, 0xf3b43812, 0x9d4c0d92, 0xa8817f4d, 0xb96c877f, 0x34818178, 0x5d7f997f,
|
||||
0xdb7f5c7f, 0x39b056a4, 0x33bcffaf, 0xb398b57f, 0x285a4bf1, 0xb181574b, 0xc1e56d31, 0x4b717fd2,
|
||||
0x56337f81, 0xed938157, 0x7f4b7f47, 0x49a3812b, 0x2e667fcd, 0xcd817240, 0x8b5470e6, 0xf693814e,
|
||||
0xd3e07f7a, 0x7f7a4781, 0xf44cd60c, 0xfd546281, 0xef995981, 0x81e70628, 0xd3b97f47, 0x07819aa8,
|
||||
0x707f447f, 0x9181c079, 0x72ae8173, 0x988d2a78, 0x7f814478, 0xb57fa076, 0xde7fb260, 0x17817f3b,
|
||||
0xf045c31b, 0x7f7feb13, 0xbee5d07f, 0x5f8192ae, 0x0c9381f7, 0x28817f7b, 0x985964d5, 0x81817d81,
|
||||
0xb381b799, 0x38b0817f, 0x3a887f0f, 0xf353fe81, 0x53817fdb, 0x5c814d56, 0x39b415ff, 0xc9c78c59,
|
||||
0xb2817fad, 0x5884bec5, 0xd629b07f, 0xb67f81cb, 0xcb81abe9, 0xab7f9b7f, 0x35815781, 0x85878181,
|
||||
0xb0b2177f, 0x86223495, 0x32cd7f69, 0x3c664743, 0x1d7981c2, 0x817f817f, 0x16cadc06, 0x03786a7f,
|
||||
0x03818107, 0x5a8dd1d1, 0x58e57f20, 0x7f818152, 0x444c50f0, 0x3d81810c, 0x66ae7f62, 0x39d01614,
|
||||
0xbd817f81, 0x789b7fa6, 0xadcd819c, 0xd37f8171, 0x291ebf81, 0xd5923ac9, 0xc37f63bf, 0x1c7981ae,
|
||||
0xda5e969d, 0x248c5899, 0x8fbdc4b3, 0x6c50d2cb, 0x2a5fab0b, 0xc42d818d, 0xa4776781, 0xaa6281fd,
|
||||
0x20534bc6, 0xb729727f, 0x6481de5c, 0xffc8a5e9, 0x707f25f2, 0xc674ba57, 0xe2ff9cb8, 0x02433e79,
|
||||
0x108e223b, 0x617f9cd7, 0xb5507f81, 0xa6f63ee6, 0x09b45856, 0x7e7fe581, 0xe4f8417f, 0xe11d98be,
|
||||
0x44817f7f, 0xc9c581df, 0xf7817fb0, 0xac6da566, 0xc681ed7f, 0x3249810f, 0xab55b281, 0x35e64c81,
|
||||
0x61e9b982, 0x8d8c4781, 0x4eafd663, 0x7fb8302e, 0x40a9bcb1, 0x17b17f9e, 0x817f92c0, 0xe35d2fb3,
|
||||
0x4ca815dd, 0x817086b9, 0x389b817f, 0x3c0d955f, 0x447f7f1a, 0x7f11307f, 0xada0815a, 0xafca7f7f,
|
||||
0xce48b124, 0x7fd94e81, 0x2edc81a4, 0xaa098a97, 0x14030263, 0x97813a7f, 0x8181d97f, 0x2581c9e6,
|
||||
0xe57f7f05, 0x16880f81, 0xa6e88184, 0x818490a2, 0xd5a87f94, 0x8b81a081, 0x38813781, 0x14a59a5a,
|
||||
0x486b8c40, 0x893449c7, 0x1f03d659, 0x81bb2831, 0xe0d8c66b, 0xa1bb7066, 0x1b7f8c71, 0x07815581,
|
||||
0x3820cb84, 0x8d3926b5, 0x81f27fd2, 0x46ff3a84, 0xfddc057f, 0x16d21ad1, 0xdbc27852, 0xf9817f34,
|
||||
0x7f81397f, 0x6c0f8101, 0xf22a100c, 0x7c998171, 0x4b68bad6, 0x7f588114, 0xc3465c81, 0x439e037f,
|
||||
0xd9817f52, 0xf1bd5594, 0xf93f9f81, 0x39447f7f, 0x46dca006, 0x93f30f7f, 0x6e215e81, 0x092ffdc3,
|
||||
0xad49e8a0, 0x7f4e7fba, 0x9b9c4fc6, 0x8131f77f, 0x0700b27f, 0xf0de61ab, 0x258181fb, 0xd8e8bb56,
|
||||
0x36932155, 0x9c7f2981, 0xb2bfe055, 0x7f0095b9, 0xaf73327f, 0x70817fbb, 0xb3a281d6, 0xfac08a53,
|
||||
0x24e4727f, 0xcbb5dbbb, 0x38be99fa, 0xbcb94e7f, 0xdf2653d0, 0x93df5efe, 0xfcdc697f, 0xe754909d,
|
||||
0xc6810060, 0x7f0ce4d1, 0xaec4a5ca, 0x4a7f81bd, 0xc17f817a, 0x7feecc3f, 0x2981285d, 0x3e0e6e81,
|
||||
0xab81814f, 0xbf27187f, 0x12409322, 0x1c9dc451, 0xc48e03e7, 0x64013b81, 0xb5847aa7, 0x350a1b84,
|
||||
0x27458181, 0xa1237f61, 0x9714287f, 0x817f8170, 0x1a7f7f09, 0xf07fecc7, 0xd686d4c9, 0x9abd7fa9,
|
||||
0x449dc0bc, 0xc1177f9d, 0x7f547f9a, 0x7fbd7fe3, 0xcab19d2b, 0xc981b27f, 0xdc8ba548, 0xe95304a6,
|
||||
0x22225820, 0xd29262ec, 0xf27f9f78, 0x1b94427f, 0x4738a436, 0x7f814fe0, 0x52817f7f, 0x1d818181,
|
||||
0xf8d92d89, 0x24817fa3, 0x66d6aadb, 0x4e55b9ca, 0x7f81de8c, 0x7f814e64, 0x24141e31, 0xa5232778,
|
||||
0x34e27f81, 0xdc87c78f, 0xc016dfb1, 0xce91829c, 0xe662c230, 0xda74e681, 0xcfb57bb8, 0xf18179ff,
|
||||
0xcc818481, 0x4736ed45, 0xcc6ee881, 0x3a815a81, 0x81b77fb2, 0x56816f2f, 0xe82bcb89, 0x3875ad5f,
|
||||
0xe05197e1, 0x1a7bc17f, 0x31a3f841, 0x7f90a77f, 0x1df3b910, 0x583f815b, 0x257f814c, 0xee7f7f8e,
|
||||
0x7dbdc37f, 0xb6810a1c, 0xce816d85, 0x459bf72d, 0xd4fe0481, 0x0d49024c, 0xbfa3a055, 0xed9baf30,
|
||||
0xf27f7f7f, 0x7dd24f9b, 0xc481817e, 0x7f899052, 0x074d5bdb, 0x2335c3fe, 0x00759f7f, 0x251bacbb,
|
||||
0x147fc935, 0x0b180994, 0x9f7fa637, 0x387ff150, 0xcbac8967, 0xf37f60cb, 0xe4c216be, 0x7829816a,
|
||||
0xd7b89981, 0xf8ae2592, 0xbeca818c, 0xf3817a81, 0xc681017f, 0x2f2f2e8f, 0xfe577f1b, 0xd503d778,
|
||||
0x2d7f7f67, 0xb281c0f0, 0xf7d7812c, 0x817f9598, 0x1af6fb36, 0x157f3781, 0x5e31a27f, 0x038181ae,
|
||||
0xf9fb81ad, 0x7a8eec81, 0xc8652e7f, 0xc67ba487, 0xbfce7f7f, 0xdf02a27f, 0xf9c1813d, 0xcaac0f90,
|
||||
0xdc448181, 0xb17f921f, 0x99be8181, 0x7fc09993, 0x11ad1bc3, 0x5c7532bf, 0x25a8ce28, 0x0ab6a823,
|
||||
0xc3c29055, 0xad55b6ea, 0xed81e0dd, 0x8caa6553, 0xff817fc8, 0x7f70d513, 0x433671dc, 0x5db37f6d,
|
||||
0x7f318170, 0x55bd4dd5, 0x00c181b7, 0x41c3bb90, 0x441a818e, 0x84e78140, 0xad8a2c81, 0x2bc38158,
|
||||
0x82654c81, 0x29d6600e, 0x227f7fc8, 0xa43d577f, 0x2b8364a3, 0x144e2a57, 0x07817f1c, 0x4a8171cd,
|
||||
0x47d5a981, 0x3c7d0781, 0xba636c7f, 0x2c7a7f7f, 0x90cf187a, 0x6b4c3671, 0x3a2c436d, 0xef81de81,
|
||||
0x4a828117, 0x814dabc0, 0xf930e17f, 0x4c3265c0, 0xe5ef7a7f, 0x819b8504, 0xd5427f81, 0xd881e992,
|
||||
0x946a45fe, 0x310162a7, 0x14819c81, 0x7f817f4a, 0x552fcf42, 0x7f707f18, 0xb9dc4881, 0xa17f81c2,
|
||||
0x9e476d98, 0x7f7f7ff0, 0x37662d4e, 0xdb7f99cc, 0xf9fe8cc1, 0x1f4c7fd1, 0x3588817f, 0x547abea9,
|
||||
0x356e7f7f, 0xab1e857f, 0xda0e7f5c, 0x9d777f7f, 0x451f1bb6, 0xa82e087f, 0xb71d347f, 0x0916d881,
|
||||
0x177e817e, 0x7f5a66a4, 0x237f2e6e, 0x816dafde, 0x2f8124c1, 0xcee67158, 0x067f667f, 0xe1258187,
|
||||
0x3a3165f7, 0x1f7fac81, 0xf636364d, 0xf2818e36, 0x0b9e207f, 0xed2d7e81, 0xaa6e2281, 0xcb50b6a3,
|
||||
0x237f72c6, 0x95819fa0, 0xd7d0c888, 0x39988141, 0xc8b07f8d, 0x5a43c942, 0xf3cd687f, 0xa2e77aec,
|
||||
0x9909bb1b, 0x7ff8e681, 0x5d39837c, 0x5625817f, 0xa9738110, 0x8b604bb2, 0xf3ffa881, 0x5f359eb5,
|
||||
0x07bf7f49, 0x7f63c67f, 0xc9db7fcb, 0xa65881c5, 0xf2818130, 0xa5817f81, 0x26b4174f, 0xc06f817f,
|
||||
0x3b8181c2, 0xbfeb4d6f, 0x9e857f91, 0x58a9a1b7, 0x67147fdc, 0xcd257081, 0xb78d4081, 0x3749ebb8,
|
||||
0x22ac7f89, 0x4af84134, 0xe3f97943, 0x2d8187c6, 0x027c8181, 0x81c1bfef, 0xc32b2267, 0x42257f81,
|
||||
0xb49b3eb3, 0xa3d47fc2, 0x27ff4d81, 0x69b4a46e, 0x81818181, 0x7fd5817f, 0x00a97d91, 0x10897f7f,
|
||||
0xd87f0d3b, 0xcbec8b7f, 0x7f814de6, 0x8286209d, 0x06e2bf7c, 0x81e28881, 0xae64afdd, 0xabc5667f,
|
||||
0xee22bee0, 0xe157d171, 0xb39a5bd6, 0xabb6d1c0, 0x53c19d81, 0x447fdb81, 0xfc086996, 0xd65f0481,
|
||||
0xc87f4d35, 0x313a12db, 0x5d81a1a0, 0x01231072, 0x327f81d6, 0x7eb1ba7b, 0xe9485dad, 0x5781767f,
|
||||
0x047f2481, 0x817f5b50, 0xda064bd7, 0x7ff07b3c, 0xfde4a68a, 0x7f83816b, 0xe67f7f34, 0x1a56f181,
|
||||
0xe2bbb681, 0xe4687f74, 0xd5a20bd8, 0x81d581a6, 0xb2395342, 0x977f0fa3, 0x81e3b5dd, 0xf1cd8147,
|
||||
0xe34f48a1, 0x258142c3, 0xe24d510b, 0x46d6816a, 0x2a608ae6, 0x5781ef81, 0xcce97f0d, 0x677f7f81,
|
||||
0xaa2381bc, 0xbde77f4d, 0xefa38185, 0x81a67f75, 0x6cceb856, 0x4976bb25, 0x3efc977f, 0x86cdf691,
|
||||
0x13497f81, 0x7fe7730a, 0xd71d8163, 0x8c7f7fbd, 0x1bec817a, 0x8154b897, 0xc71e45b6, 0xbed568c3,
|
||||
0x256c6514, 0xd481af7f, 0x19ad697f, 0x817f745f, 0xd27fa187, 0xd5e769d9, 0xd816cf7f, 0x1aa4815b,
|
||||
0x035e7ff6, 0x85de810b, 0x3ea73657, 0x216281b2, 0xe48144b7, 0x3277dfe8, 0xf8c57f20, 0x907f5091,
|
||||
0xf481b081, 0x9d8152cf, 0x0e6a81c0, 0x7fff7f06, 0xf8884d81, 0x687f81b3, 0x2657ba35, 0x527fc24c,
|
||||
0x9945694c, 0x1faa4e5b, 0x37819334, 0x57f52a7f, 0xec7f817f, 0x817fa0a8, 0xe3a8818a, 0x16beacdb,
|
||||
0x2ad2b97f, 0xb981245b, 0x359a8181, 0x7f97265e, 0x9de4387f, 0xed7f058a, 0x0e817f81, 0x4e69bdb5,
|
||||
0xc5e38552, 0x77482e81, 0x6c817542, 0x447f2990, 0x07b1f9dc, 0xc4247f82, 0x077f7f81, 0xe58bdca6,
|
||||
0x55e07f74, 0x0e7fe47f, 0x04883e81, 0x4981f87f, 0x7d7fce29, 0xe07f7d7f, 0xee817fa6, 0x7262da81,
|
||||
0xe158813b, 0xe35e41b9, 0xf17f6d65, 0xef7560ea, 0xae408493, 0x97812300, 0xf29f816e, 0x557fd5aa,
|
||||
0x328bb778, 0xa27f7f25, 0xde7fb5cb, 0x03577f0b, 0x577f18a5, 0xb9816d20, 0xe28d2a7f, 0x248c7fb9,
|
||||
0xff5fb965, 0x93b27f9c, 0x2d817581, 0x41958195, 0x3a7ff044, 0x7f7f6faa, 0xdb81b784, 0x5081603d,
|
||||
0x363ff38d, 0xc747d8b3, 0x537f812b, 0x8176a97f, 0x1d8181d3, 0x81811929, 0xe893d4c7, 0x3c7fcf7f,
|
||||
0xf6385c81, 0xaa63b42e, 0x81c3a781, 0x488142a7, 0xcbef89be, 0x3f748159, 0x50c52932, 0x298198d7,
|
||||
0x14c68e7f, 0x7fd8a798, 0x085a632f, 0x7f1d7f7f, 0xb2e34289, 0x88c3b262, 0xb044817b, 0xbf7f238a,
|
||||
0x5ae6b554, 0x9e833081, 0x607f985d, 0x0203226c, 0x333f63fb, 0xc77f8181, 0xe8297f7f, 0x9dea7f33,
|
||||
0x6f2e1f54, 0x2e41327f, 0xff0f7f81, 0x7ffa7f30, 0x343f74a6, 0x81f59f81, 0xaac67dbb, 0x6f81da1f,
|
||||
0x79ec8153, 0x78eae674, 0xec7f6e71, 0xa46a48bf, 0xe5810efa, 0x0f41b9a7, 0x3a1124a5, 0x5ff97f7f,
|
||||
0x0bd5be75, 0x7f8181f0, 0x242f409e, 0xf47ac606, 0x1e96d94f, 0x43a66a81, 0x18fc815c, 0xa51a7f7f,
|
||||
0x1185d27f, 0xa00c810f, 0x078ae481, 0x71d7866c, 0xd47ff796, 0x813cf240, 0x45814d48, 0xbc6c3618,
|
||||
0xa8b937ea, 0x838e7f7d, 0x19b3817f, 0x7f73be95, 0x00fa46b3, 0x4c43655a, 0x20f67fc2, 0x98fdda7f,
|
||||
0xe879817f, 0x4c9e7f2d, 0xcd7fefc2, 0x9681a909, 0x1e59e7b3, 0x35818136, 0x9e3a977f, 0xaf7f207e,
|
||||
0x9633227f, 0x44450e81, 0xc2c25f7f, 0x7f1a3f81, 0x08acf783, 0xd083a838, 0xd2627f59, 0x6d327f32,
|
||||
0x362c2b5e, 0xee8e507f, 0x48b431c5, 0x00816381, 0x1e6c1150, 0x7df48149, 0x36f94f81, 0xc5667844,
|
||||
0xf7cbf52c, 0x520081b8, 0xc6967f7f, 0xc88981b8, 0x328181ee, 0x697fa9f2, 0xc99a7f81, 0xb5a08181,
|
||||
0x1d74dc89, 0x643ab5cb, 0xeb81f9be, 0x987f277f, 0xad38747f, 0x61778c52, 0x59817de7, 0x05ae8144,
|
||||
0x217aa1de, 0xc0817fe9, 0xa1a6b4dc, 0xece08189, 0x4118207f, 0x9a8181a8, 0xcf0f81c9, 0xba81d081,
|
||||
0x138181b8, 0xd537957f, 0xfc7f9b8e, 0x7fc9607f, 0x16c085fe, 0x81fa7fb6, 0xf7847f66, 0xc20ee0fd,
|
||||
0xf983ec97, 0xce209f7f, 0xe2815922, 0x39b07aa8, 0xd3a82353, 0x6ee38287, 0xc60d7f29, 0xcf478f57,
|
||||
0x594d731b, 0x0e8c42fc, 0x6a702ce3, 0x7b81b301, 0x3181a450, 0x7fe94481, 0xe581b66f, 0xd87f7f2a,
|
||||
0xc1b385ee, 0x81816964, 0xbb7f5093, 0x8151817f, 0x51e3547f, 0xb3fa7549, 0xca81b044, 0x258143bf,
|
||||
0xb18181c8, 0x7f54eb08, 0xd4c9db57, 0x68a981b2, 0x4ef17f69, 0x917f977f, 0xda38865e, 0xe97f3e5f,
|
||||
0x0bbc63dc, 0xec34daaf, 0x1dc38186, 0xb381810e, 0xcbacafd2, 0xdb3ec56a, 0x22817381, 0xbc44cc4d,
|
||||
0xd681d0b0, 0xe614c8a9, 0x53577f7f, 0xdabc3012, 0x353ecdc2, 0x81728179, 0xb660cf7f, 0xef49ca49,
|
||||
0xc645dd7f, 0xd16a7f81, 0x1fb99d7f, 0x7d36d57b, 0x04ce7f46, 0x602adede, 0x1142cbb1, 0x60de427f,
|
||||
0x29814ccb, 0xe9ad7d99, 0x127b2881, 0x5c5aa08f, 0x38c0db9f, 0x7f76d981, 0x63b32381, 0xdd41ce81,
|
||||
0xce14e57f, 0x74ed7398, 0xdd81e6eb, 0xb6f2d581, 0xa581b77f, 0x468c81d7, 0x5f2d88b8, 0xf481fd21,
|
||||
0x6ec1e381, 0x71568485, 0xcbfa7f6c, 0xa02e0c9b, 0xd9a09a7f, 0x813d8176, 0xcf43c52b, 0x31a8bca1,
|
||||
0x2432dce5, 0x78277f94, 0x474e592e, 0xdefb7f81, 0xff147f51, 0xbb7f3858, 0x25f1e591, 0x36fad833,
|
||||
0x0ac87f39, 0x815d9781, 0xaebaaa81, 0x4981815f, 0xd7817781, 0xb44838b5, 0x32626981, 0x417fe2f6,
|
||||
0xdf638c92, 0x8624067f, 0x4432e69f, 0xd8688a7f, 0x06815215, 0x25bbbb7f, 0x5b5b6f63, 0x417b5b81,
|
||||
0xcc4a7b7f, 0x6ea47fd3, 0xe866b481, 0xc630c9aa, 0x083781ed, 0x69de817f, 0x0381f9f2, 0x84812ce2,
|
||||
0x027f4dd9, 0x7f5a9e81, 0x00ea319c, 0x222b9a9b, 0x34a143f0, 0x7fefd1d0, 0xb4947981, 0x11474bc1,
|
||||
0xcd44df7f, 0xa2878439, 0xd6f040b9, 0x6f86817f, 0xc67f7f81, 0x7f693443, 0x8d21b1ce, 0xdab1aed5,
|
||||
0x3f17ae71, 0x45b7ba7f, 0x05229255, 0xb181d8f5, 0x688681e3, 0xea81e181, 0xf57f817f, 0x7fdc5881,
|
||||
0x6e817f7f, 0x817f537a, 0x3987247f, 0x300a7f05, 0x3128057f, 0xe731b77f, 0x4881b50b, 0xb86dae65,
|
||||
0x00c015a0, 0x81397552, 0xb9bcab24, 0xf5818181, 0x57d18190, 0x81c3648d, 0xed813a67, 0x4c5d3a06,
|
||||
0x3581a4e3, 0x64db6467, 0x21af7d27, 0x5adf7f57, 0x66d9c99f, 0x5b183375, 0xbf4c41e5, 0x577f7ff0,
|
||||
0x4e818181, 0xf295493c, 0xd2c28170, 0x5c3a7f8e, 0x09c18181, 0x7f7f7f9c, 0xae675fa9, 0xf6d781a4,
|
||||
0x66ba10dc, 0x7f882981, 0xfe7f7f7f, 0x7f7ffea4, 0x2798d845, 0x899cb6fb, 0x4982bcd9, 0xc0815ab0,
|
||||
0x558181aa, 0x52110702, 0xd179e3c5, 0x482923bd, 0x187f8181, 0x81b3f6d9, 0xfd96a581, 0x2c5d1a81,
|
||||
0x6fde23dd, 0x9e815063, 0xfba49bcc, 0xfa775f4d, 0xb1b8b681, 0x81894f1b, 0x3c8163fa, 0x2d7f3d81,
|
||||
0xc57f6681, 0xbd7f7e81, 0x137f7f81, 0x6b3d6f81, 0xe5e2610d, 0xb4683186, 0x7f6e817f, 0x90c12abc,
|
||||
0x13a3502a, 0xdddeaa8c, 0x07a67f79, 0x1a5481ce, 0xb87fb01b, 0x0a4b1e7f, 0xd77ffcb7, 0x03535781,
|
||||
0x5a5f697f, 0x02ca7966, 0x379638bb, 0xc507c941, 0x5e7fdf8e, 0x7ce0c99b, 0xa162ccfd, 0xff8196cc,
|
||||
0xd43aa081, 0x67798185, 0xd6277f2e, 0x7f6dcb7f, 0x217fcd76, 0x2c88fb91, 0x06815b8f, 0xe37f7dae,
|
||||
0xe937257f, 0x648181ae, 0x21652c4f, 0xbf81685b, 0x36abe921, 0x3cb5de30, 0xa88e8162, 0xd87f812b,
|
||||
0xb981d14d, 0x75c181a7, 0xf7c08aa1, 0x57904e7f, 0xf6f688d8, 0x7fcf6281, 0xd33dbf7f, 0xc07f9a73,
|
||||
0x197f8135, 0xcabf8bc6, 0x3f81c37f, 0x487fac4f, 0x8ddc924b, 0x50257f7a, 0xf75e1496, 0x28d2d48f,
|
||||
0xcd91817f, 0x2a7f81b2, 0xbd7fb67f, 0x3b877fe1, 0x407fd8fd, 0xbc815f20, 0x7f50e581, 0x8bdfae4d,
|
||||
0xb1eb7f81, 0x07819f40, 0x3765274c, 0xde7fd081, 0xa0817f7f, 0x8dbe5081, 0xfa436f7f, 0x4848463b,
|
||||
0xc5c45cdb, 0x7f8b1865, 0x5bf381b6, 0x45aa497f, 0x7f813694, 0x54f15918, 0x72886c49, 0xe3fb31b0,
|
||||
0x0db1a582, 0x4aadce1b, 0x39926d8b, 0x9a30a85f, 0x1b606181, 0x1c6d165b, 0xfb057f4b, 0xcd7f81ec,
|
||||
0x12bf7ffb, 0x7f5f91d4, 0xca8158b7, 0x86134234, 0xf0f17f3c, 0x7f4e05c4, 0x34814f7f, 0xe5c1106a,
|
||||
0x2d50c67f, 0xb57fa18b, 0xb7816481, 0x7fffaadb, 0x607f817f, 0x5048ea81, 0x82495d02, 0x17819b7b,
|
||||
0xaba67981, 0xb5817f7f, 0xee57a2b6, 0x3591a602, 0x2885a153, 0x429ba160, 0x757fd0f5, 0x344e9d7f,
|
||||
0xc77a7f8d, 0x2a7f8160, 0x3198b27f, 0x81c552bd, 0x0374e058, 0x31605de1, 0x40d0817f, 0xb281a37c,
|
||||
0x156ce27f, 0x91893090, 0x06f58181, 0xc4487f6d, 0x0a7f7f9d, 0xc3a17141, 0xc03c39c5, 0xb581b2b5,
|
||||
0x526a7f7f, 0x7f7f7f4e, 0x7fec7f7f, 0x95cead7f, 0x161ba8d2, 0x8ad0d081, 0xe4f19557, 0x5bb6fca9,
|
||||
0x2d813a6d, 0xddbb7f81, 0x1cb1e281, 0xc2b43734, 0xd07f4641, 0x7f81bb39, 0xae9b1b81, 0xbe817f36,
|
||||
0x1caf7f81, 0x7f704922, 0x108f777f, 0x81662d7f, 0x479ca35b, 0x818513c2, 0xa41d8607, 0xd081b235,
|
||||
0xf6817fcb, 0x7f015960, 0xadb15f5b, 0x81be2abf, 0xf2b0e29f, 0x81819224, 0x38a7407f, 0xc9817b09,
|
||||
0xf307556c, 0x7f818181, 0x0281817f, 0x3fce810c, 0x18b47cd4, 0x81e2a53c, 0xe359840f, 0xe27f81ad,
|
||||
0xa1665081, 0x7ae062b6, 0xe0b27f35, 0xcd376e73, 0xd9a6d373, 0x817ffe7f, 0x02810946, 0x06498116,
|
||||
0x9b7fbb1b, 0x8d2b812a, 0xff14f781, 0x937de081, 0xb77ff44b, 0x4b2732c7, 0x0720bd96, 0x9e647f13,
|
||||
0xb831d474, 0x811d8183, 0xa5db837f, 0x8aa1b04a, 0xd4377cfd, 0x7f814241, 0xee8fec39, 0xcc81d881,
|
||||
0x2e29d770, 0x7ff76366, 0x7fbd363b, 0x74bbd13e, 0x2e817192, 0x9f6b81db, 0x44913bb3, 0x327f0de1,
|
||||
0x2d7f8881, 0x54f2afaa, 0x107f513c, 0x4c8191d1, 0x117fe67f, 0xffa21764, 0x2c931727, 0xd09ba693,
|
||||
0xf74e4882, 0x51ed8bc6, 0x3a23d683, 0x47437f70, 0x7fad8181, 0x9a610813, 0xa57ff47f, 0xbe1b5b9a,
|
||||
0xf4bf8c33, 0x43074944, 0xe4ef729b, 0x1e7165d6, 0x74e081c6, 0xe281810c, 0x2a4b81e4, 0x10ede221,
|
||||
0xc8375d7f, 0x81c07f81, 0x49cb7f83, 0x5f589c22, 0x276441a9, 0x7fe67f0b, 0x4d7f1d7f, 0x1872814a,
|
||||
0x05b6a577, 0x8140fa5d, 0xe47f9bc3, 0x44166064, 0x73896729, 0xb5c0867f, 0x247f445f, 0xccc92994,
|
||||
0x29611b37, 0x27531258, 0xeac27f9c, 0xd43f4e7f, 0xc27f170f, 0x6d9bfc37, 0xfc819181, 0x077f598a,
|
||||
0xe0c5d398, 0x7f23182f, 0xed171743, 0x20bff85d, 0xb0d0be7f, 0xb8938149, 0x45017f32, 0xcf2cc65d,
|
||||
0xdf7fc481, 0x7f380777, 0x81b8f0dc, 0xf6696596, 0xff007f29, 0x896e1abf, 0xfaac2d81, 0x5bc357ba,
|
||||
0x6a397f2e, 0xbfaeb45a, 0xd64e2b7f, 0xe49b4587, 0x565c6c51, 0x7f206a7f, 0xc381540b, 0xfc3d7f73,
|
||||
0xd4ec9f39, 0x887b7f27, 0xe3c1e07f, 0xb721523e, 0x0310819f, 0xc0c793ce, 0x387da141, 0x814f61ac,
|
||||
0xd1347fbe, 0x19244c1f, 0x8d3d58f9, 0x813a7fc9, 0xfae27f54, 0x7f39f481, 0xe37f818d, 0x034632d9,
|
||||
0x5b06c07f, 0x65ab8b36, 0x127f34b5, 0x18a681ad, 0x73510e20, 0x2f2ffa85, 0x6814ca9e, 0x5b7f7ead,
|
||||
0x08da93da, 0xc826da54, 0xc1686fd2, 0xb6f00fbc, 0x28bb5dbb, 0x7fe5297a, 0xb5ed8181, 0xccd9067f,
|
||||
0x177f1561, 0x71b41a19, 0xd9817f7f, 0x505b50c5, 0x309dc978, 0xb97f4f81, 0x4e81c219, 0x2d81d04a,
|
||||
0xdf3d5fa1, 0xfc6e5c30, 0xf7869481, 0xfc81e47f, 0x67b5817f, 0x7f72577f, 0x2c938136, 0xd576ad7f,
|
||||
0x63beb36f, 0x7fb3817f, 0xce56ca81, 0xd801e58d, 0x425f2522, 0x8a25817a, 0xdc7673c9, 0xd7b57fca,
|
||||
0x927fbe2a, 0x149b9881, 0x9ad781a9, 0x214b9d4d, 0x2dae1287, 0xfa772ca4, 0x3b7fdd35, 0xf59e4174,
|
||||
0xad3a28f5, 0x8144698d, 0x1ca792df, 0xdb7c7fd1, 0xe96d497f, 0x567fa7d9, 0x489b70cb, 0x3442de7f,
|
||||
0xa2554c37, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x4dc76c95, 0x29b78ec8, 0x3d927f7f, 0x307f93c2, 0x8181da7f, 0x99f741df, 0x6e1d417f, 0x1bbda834,
|
||||
0x954b5a9f, 0xc6817f07, 0x7fc01005, 0x3b5a81e4, 0x73cd7f5b, 0x7f817f3c, 0x8e7f812b, 0x59d48a03,
|
||||
0x982475ef, 0x65a1c068, 0x400cc79b, 0x81f231fe, 0x840329e0, 0x1f6054eb, 0xf8813d3a, 0x7f4a9296,
|
||||
0xbff677c5, 0x7f3c6f0c, 0x7f2890cd, 0xe0aaaad6, 0x81ae9428, 0x7f8117f1, 0x7f097f88, 0x7f27cfcc,
|
||||
0xca67205e, 0x815f7f37, 0x7f0ac07f, 0x717f95d2, 0x7f9232a7, 0x2bb803d4, 0x3c12c7e7, 0x937c81ea,
|
||||
0x7f1cdd3b, 0x0622b6c0, 0x62d71247, 0x811cb00b, 0xaef9e981, 0x0f818ff5, 0x740e6f53, 0x30616410,
|
||||
0x81fed3e0, 0x49167f3a, 0x4577315b, 0xe49130fa, 0x817c7f23, 0x7ffef7ec, 0x4fb47f17, 0xb365b1f8,
|
||||
0x81a09c38, 0x7f818134, 0x9568e717, 0x4ead1921, 0x8ebd9806, 0x7f911cf8, 0x8c7f5efc, 0xf29114a8,
|
||||
0x90bc6ae9, 0x0b5f26c1, 0x81bc9281, 0xf0fb5532, 0xc89ab77f, 0x7ec0b9d4, 0xf00bdcf7, 0x7f7f7a24,
|
||||
0x097ff51e, 0x64d62dfc, 0x7f7f819e, 0x34c05cc3, 0xa2957f19, 0x81101e05, 0x7fd68181, 0x1dff81af,
|
||||
0x7f81dc24, 0x7b3c6769, 0x7ac490dc, 0x814032c5, 0x9d81747f, 0x7fb46342, 0x72607faa, 0xd40c8161,
|
||||
0xa5ab574f, 0xf0838bba, 0x33fd7f47, 0x289f81be, 0x817f480f, 0x4bfa552d, 0x8ca1d5d5, 0x817f492b,
|
||||
0x418125e0, 0xe45d5af0, 0x811b1751, 0xe04d81f8, 0x7ff2917f, 0x65811a53, 0xe65da37f, 0xbafdd439,
|
||||
0x53818189, 0x752c7ebb, 0xc301567f, 0xb0816f27, 0x708166db, 0xc0b57f49, 0x3a818169, 0x4f16189c,
|
||||
0x13d6e83b, 0xd258a20d, 0x7fadbdb2, 0x7f93560d, 0x81fd5399, 0x6014dab2, 0x9cf45f1b, 0x107f71d5,
|
||||
0x352e8109, 0x5a5d6efa, 0xb458ef47, 0xb4a96098, 0x7ab91c37, 0x81bd762e, 0x816cb0d7, 0x3f9819d4,
|
||||
0x8113b97f, 0x7f09fa33, 0x9e7ffa99, 0xe98181ce, 0x4ffb3064, 0x7f0681ea, 0x81ef06ad, 0x385abdf5,
|
||||
0x1414457f, 0x18dabc5a, 0xc27e0d7f, 0xd87f8115, 0x703f7fcb, 0x300b7ff1, 0xb081f55d, 0x024d78f8,
|
||||
0x72949a16, 0x90603c38, 0x7fba6fd4, 0x4820e44f, 0xd57f81af, 0x9c7f7ef9, 0x61c6b27f, 0x81b6141f,
|
||||
0x7c52514a, 0x5f817f78, 0x668119a7, 0xe441aa7f, 0x53819553, 0x7f721521, 0xbd7f7f17, 0x593081de,
|
||||
0x8b252de8, 0x7f7f81c1, 0xaca9436e, 0xb5e0b104, 0x81e49d81, 0x75b48102, 0x5c278118, 0x9f6c36c9,
|
||||
0x509481fa, 0x53d1e640, 0x52108181, 0xeb7f7fff, 0xde417381, 0xa781cb33, 0x4fab55f4, 0x3e7d75f1,
|
||||
0xf17f0c1a, 0xe8e1817f, 0xcf1f7f81, 0x96d8ba40, 0x1318fc72, 0xd7ae3d1d, 0xf7e88126, 0x32bfe432,
|
||||
0x453f694b, 0x7f7fbab6, 0xeae7de30, 0x3d81d7d1, 0x438d9cc7, 0x387f4a05, 0x7f46ab81, 0x635bdf10,
|
||||
0xc281ae24, 0xc5c67fc4, 0x81acb53d, 0xba4f4d04, 0x424f72cc, 0xbf7faa1f, 0x55de1de8, 0x81429a1d,
|
||||
0xdec94147, 0xff007f42, 0x3fa74821, 0x0cb74e9c, 0xff81627e, 0x6343810f, 0xf7393529, 0x7f44ad81,
|
||||
0x7f811f39, 0x81e981a0, 0x8c8c4421, 0xc4819190, 0x81816881, 0x7f7fd234, 0x3688c16c, 0x9c34b357,
|
||||
0x6046e3f6, 0x86123bdc, 0xbd45957f, 0xe6cd777f, 0xe0951ce7, 0x9b7f63a6, 0x817f29c1, 0x7f5a81ca,
|
||||
0xde7ffcbe, 0x812c3207, 0xa099537b, 0x2a2f81d0, 0x16817f9a, 0xbb81817c, 0x7f81e538, 0x957a4200,
|
||||
0x81753bab, 0xaf63a506, 0x3081691c, 0xb0a47f2c, 0x0f157feb, 0x8e4330fe, 0x635b8189, 0x7f81ee34,
|
||||
0x7f40caae, 0xbce88e05, 0xabb52199, 0xd2ba102f, 0x7f7f8173, 0x810b32ab, 0x2e222781, 0x7f819951,
|
||||
0xfbc73dca, 0x5d81d181, 0x7fb09d81, 0x7faa3098, 0x7e81435b, 0x61e995d6, 0x7f7974f3, 0x7fef81f9,
|
||||
0x402faba7, 0x7a647f3c, 0x815c6826, 0xba2b2ffe, 0x7f095b7f, 0x7f9236b9, 0x9953636b, 0x344c64d2,
|
||||
0xd784acc0, 0x7f818426, 0x61ab43f8, 0xd5813c70, 0x7f817f81, 0xc9867fa8, 0x6f4b4181, 0x3881b1df,
|
||||
0x69813f27, 0x81d0780c, 0x17c84a36, 0xbf908ccc, 0x7f5e812b, 0x317f7fea, 0x7f817881, 0xf731c537,
|
||||
0x7fb221e7, 0xbae09bf7, 0xcc5d947f, 0xcfc13926, 0x6e0db67f, 0xdf17be28, 0xcaa4ea2f, 0x9870810f,
|
||||
0x357f701d, 0xa281815d, 0x91497468, 0x5fbcbeb0, 0x7fd54d81, 0x7d5e91f3, 0x8d6555f9, 0x35d416e3,
|
||||
0x9a7f8c11, 0xd875779b, 0x6b7c6681, 0x24f77f50, 0x288bd781, 0x7fad2b50, 0x637f1a23, 0x527f2ea7,
|
||||
0x277f7fc3, 0x819c13cb, 0xe1bb65f1, 0x48151c1b, 0x8e7fd27f, 0x7f7065ac, 0xfe0bb14d, 0x588e7f0c,
|
||||
0x819d7f34, 0x81c455a5, 0x4f6b7fae, 0x7fb56506, 0x7fcfd5a2, 0x3e6981dd, 0xcc814569, 0xc5fb811a,
|
||||
0xc0e07fbc, 0x817f8153, 0xac356315, 0xc94db6d8, 0x7f88e57f, 0x81e57fd0, 0x7f1f6c0f, 0x78d581e1,
|
||||
0x7f2137f6, 0x1c57815a, 0x627f55c0, 0x69e4dbcb, 0xa68181c3, 0xb9907fea, 0x55897fa0, 0x7f54a91d,
|
||||
0x3e7bb314, 0x7f167f5f, 0x75cc8181, 0x177f2fd0, 0x6d39f7e9, 0x7f817fd3, 0x7f6eb0ea, 0x817fc7ad,
|
||||
0xae5b5b04, 0x86cd281f, 0x3528fe7f, 0x87217fff, 0x87860479, 0x8b7f4510, 0x7faa816c, 0xb9d62c33,
|
||||
0xdd1c6ccc, 0xb48104fd, 0xbf508f81, 0x34994944, 0x8181b843, 0x74e47f47, 0xc6baf38e, 0x624b06cc,
|
||||
0xfdadfaeb, 0x948189ac, 0x7f7f992d, 0x813edf00, 0x81c3587f, 0x5eb2819f, 0xcee54cef, 0x277f38d9,
|
||||
0x8a187fb6, 0x9736ed05, 0xed70487f, 0x4f307fa9, 0x81ba975e, 0x81dd81ed, 0xd0da7f88, 0xf24881cc,
|
||||
0x12e656d0, 0x7f9b6a1f, 0xcf7fcf7f, 0x78787ebd, 0x7f8319f2, 0x7c7fe9ed, 0x29b381ae, 0xfa4f81cb,
|
||||
0x13cc81e2, 0x9a2aa0a8, 0x817f8112, 0xfda22318, 0x7f65e85a, 0x727f6812, 0x7f814b0b, 0xcfe2bcd5,
|
||||
0x6b816ce3, 0xb2965ab7, 0x819981bf, 0x73799635, 0x82854b71, 0xbc3e8132, 0x91c714a2, 0x81817f2e,
|
||||
0x2cc55af1, 0xb87fb038, 0x7f7f1718, 0x02ba14fe, 0x5e348128, 0x817ff97f, 0x81d03daa, 0xde37813b,
|
||||
0x443781c0, 0x0e4e32e2, 0x85a7ad81, 0xba276c16, 0xb61ed9c6, 0x81ca27d3, 0x7f762e7f, 0x4181d581,
|
||||
0x7f7f5508, 0x6eb1b250, 0x5ad47f4a, 0x7fd56756, 0xbc817f81, 0xd481a9ba, 0xf8a74db3, 0x7d1aae25,
|
||||
0x81397f36, 0x7f62a402, 0xab3b3081, 0x4c45c301, 0x3eb57f88, 0x6d2e7fdd, 0xeb1ac681, 0x813881c0,
|
||||
0x7fd127b4, 0x67e57f90, 0x4fcb6d3a, 0xc566afe7, 0xc58bdb7f, 0xe0486a7a, 0x363f8181, 0x7fdd8191,
|
||||
0x67149cc2, 0xfe7fcf00, 0x7feeb9dc, 0xccabbd95, 0x7fab347f, 0x98eda0d8, 0x7faf81a3, 0x3b8c7f0a,
|
||||
0x1c387fa7, 0x7f055ed9, 0x567fbd7f, 0x4d7f7244, 0xbb8175af, 0xef7f7f5f, 0xa9a58119, 0xada9eec7,
|
||||
0x592da3bd, 0xb5a98177, 0xe17f813e, 0x94816af7, 0x69ec7fc5, 0x7f29dd4a, 0x9481c981, 0x5d3198da,
|
||||
0xf84e81bb, 0x41817f7c, 0x7fb31b60, 0x7f7f5e03, 0xea81c490, 0x7681571c, 0x9b54b581, 0x812d993b,
|
||||
0x7fefd381, 0x7f907fe3, 0x7f81a862, 0x758181bc, 0x46d6507f, 0xae81a50a, 0xd1562a1d, 0x3dcb58d2,
|
||||
0x489e40fd, 0x7f8fa98a, 0xb07f7f81, 0x238b7b40, 0x49686384, 0xca817f4f, 0x607f7fd7, 0x3a0d81ab,
|
||||
0xb0fa42e3, 0x7f81563d, 0x829a817f, 0x51d48167, 0xcc817781, 0xd54f5638, 0x7fee1218, 0x81a49e22,
|
||||
0x0081ec2f, 0x5f5eecf5, 0x6bbc9ce7, 0xa28138d6, 0x86811081, 0x7f0283cf, 0xfff67fb7, 0x81c2814a,
|
||||
0xc7817f52, 0x85818146, 0x8781a77f, 0x8181e9f6, 0x4731f881, 0xf51a35d8, 0x236931b2, 0x6eaefadb,
|
||||
0x7f81c61c, 0x947f3d7f, 0xbcf43b52, 0xd5814849, 0x17b6e07f, 0x7f6a81b6, 0x817f8163, 0x817f595f,
|
||||
0x7fa5ae33, 0x2b63a90a, 0x77627e81, 0x81816660, 0xae7f6281, 0x26c6dedd, 0x757ff9c4, 0x7f7fce30,
|
||||
0xab9d7800, 0x68fc444b, 0x3d7ff681, 0x93264a1d, 0x81361db5, 0x817fb6d3, 0x1681136f, 0xc5655027,
|
||||
0x792781e2, 0xeaada9c7, 0x34d1817f, 0x81687fc6, 0xa88d451a, 0xdce97f0d, 0x443935cd, 0x810a68b9,
|
||||
0x73ef4023, 0x66372979, 0x9a31076e, 0x81813dee, 0x56b11a7f, 0xc76a81da, 0xe0e48181, 0x6681b8b7,
|
||||
0xa99858ec, 0x7fb38de5, 0x7f6f817f, 0x92168381, 0x53819b02, 0xc3c27f2d, 0x5299d77f, 0x81e47f60,
|
||||
0x687ffbc6, 0x7f5f9df9, 0x0ab4c09d, 0x44856927, 0x5e63405f, 0x7f9fe864, 0x8c884d25, 0x794dd01f,
|
||||
0x7f81fb68, 0x31bed5f5, 0x3e658638, 0x3e7f8151, 0x7f7ba8e4, 0x7f304a8b, 0x37c18157, 0x7fb2c6fe,
|
||||
0x7fa39bef, 0xa37ff9a1, 0x29983fc2, 0x777facc9, 0x547ff37b, 0xe6815b17, 0xec5a457f, 0xacade303,
|
||||
0x7f2603dc, 0x697fcd23, 0x7f7fd042, 0x4a81a54d, 0xd481bf87, 0x7f4e7f0c, 0x0d5c9d05, 0x26ca3c2c,
|
||||
0x4f817fe3, 0xc9368b0f, 0xaddb8181, 0xc210e075, 0x248f7f81, 0x697f7f11, 0x817f2f81, 0xef697ff1,
|
||||
0xd98181b9, 0x810a4f50, 0xbb9e045a, 0x8ea3771d, 0x787f6931, 0xfbb9812d, 0xb778f981, 0x7f354b27,
|
||||
0xfc813658, 0x25818137, 0x7f3402a1, 0x27eabd01, 0x81c18181, 0xfd7fa22c, 0x9784817f, 0x7fa57fb3,
|
||||
0xd881f3ce, 0x887f60bf, 0xdc816b0c, 0x3890b818, 0xc37fa281, 0x8f4681f5, 0xb07fb08b, 0x82ad24d0,
|
||||
0xc189ab02, 0xe3fddb8f, 0x7f744610, 0x435781b0, 0x8104f653, 0x41bb81be, 0x9a4c717f, 0xf9d4c1e4,
|
||||
0xbdc36404, 0x8ff9818a, 0x54d3ab9c, 0x24aec8ef, 0x81ac5bc8, 0x81908100, 0x74f05a0f, 0x0c5b7f2d,
|
||||
0x5279a3e3, 0x2d8169b9, 0x7fdc4897, 0x7f5f89bb, 0x9f457581, 0xde817fd7, 0x59813d7f, 0x67817fe7,
|
||||
0x7f817fd5, 0x7f5978ca, 0x23ab813a, 0x70819ce8, 0x41575433, 0xb17fa99e, 0x697f7f7f, 0x60aeb15a,
|
||||
0x7fa5a9df, 0x39818181, 0x818ea205, 0xbd819fb2, 0x7f0fa491, 0x814981d8, 0xb9c186e4, 0x817f29e5,
|
||||
0x81afcd17, 0x842f81ce, 0x058b8e1d, 0xea3da29e, 0x379f5ab7, 0x223c84c9, 0x93bcd8bc, 0xc895baea,
|
||||
0x6b7d3cc9, 0x7f2b8152, 0x7feccb81, 0x7f71634c, 0x810f7f29, 0x89c14aff, 0xc0ce05d7, 0x7aed49e1,
|
||||
0x817f4d0c, 0xeeaa0afb, 0xd7817f81, 0x6681d76a, 0xa37f4881, 0x38708103, 0x7f8181cb, 0x0a8f6639,
|
||||
0x8581aec3, 0xe82836d2, 0xda7f4781, 0x40d67ff3, 0xcc335f7f, 0xce207f44, 0xff9181f8, 0xbae52614,
|
||||
0xfccdf700, 0x9dc19f54, 0x5d7faefc, 0x5bcc2357, 0x817f7fb1, 0x6f5a9dd7, 0x81af5633, 0x810a7f59,
|
||||
0x551c8a18, 0x4b816452, 0xe981d940, 0x81d175f6, 0xee7f5746, 0x276f51b7, 0x16ae817e, 0x652063ba,
|
||||
0xd84e5e44, 0x7f385f2a, 0xa2e1b28f, 0x7f817fd2, 0xd8477f34, 0x508f31fc, 0x7e357fc7, 0x7fa07f7f,
|
||||
0x7f6d7f52, 0x7f717038, 0x7f819c3a, 0x2f973937, 0x71ac7d7f, 0x790950c2, 0x9aa97f81, 0x7f427ffe,
|
||||
0xf3f974a1, 0x8107812c, 0x817fb77f, 0x4d458151, 0xc93d2395, 0xb497d049, 0x4b955c87, 0x047eaef1,
|
||||
0xcc6c07cc, 0x5eff94ad, 0x3bed1246, 0x74d8c531, 0x815afc81, 0xaccf6eca, 0xbe4e3f64, 0x079b37b9,
|
||||
0xa0898136, 0xfe8a81b9, 0xb7df45fc, 0x7f7f7157, 0x725581a3, 0x7f0c56ec, 0xe6430781, 0x4356def3,
|
||||
0x54ca7fc7, 0x234f3eee, 0x7f270367, 0x704981c1, 0xfe623836, 0x816d2725, 0x7b9d9e81, 0x3b49d3ae,
|
||||
0xd2925440, 0x819a7fa5, 0xb025c9a5, 0xbbd77fc1, 0x81737f81, 0xbcb891ae, 0x442ab466, 0x812e41cd,
|
||||
0xbdb081a8, 0x8e7f5c2d, 0x8458dfb7, 0xd77f8130, 0x9bcbbc47, 0x783a7f5f, 0x27c4d502, 0xadf8cb31,
|
||||
0xa51e9baa, 0x814d812f, 0x7f1a7f8c, 0x1874f4be, 0x4ac57f81, 0xc7b67f37, 0xc0817ff9, 0x8c81e1ae,
|
||||
0x6f7f9331, 0xa17f7f9f, 0x7bec5242, 0x81b79554, 0xa27f7f7f, 0x181da812, 0x52e681f5, 0x5c3781fb,
|
||||
0x895981ae, 0x7f7fa003, 0x9555817f, 0x32391fdf, 0x0c7fff6a, 0xb681981d, 0x1b93a683, 0x7fc3d495,
|
||||
0x83f5810b, 0x854399a0, 0x997fd57f, 0xe87f6929, 0x7fbafb81, 0x7fe201e3, 0x7f7234b3, 0xb6889ebb,
|
||||
0x8ea7cdcf, 0xd27fab96, 0x9a562c7f, 0x6c7f7fd8, 0x2277467f, 0xb3108ed9, 0x818d0171, 0x81bc477f,
|
||||
0x650719f9, 0xba7fe501, 0x7b5796ca, 0x3fc581eb, 0x9a90469b, 0x7f041112, 0x527f7947, 0x8d3d4657,
|
||||
0x7f627fdd, 0x64053a56, 0x817739c6, 0x812268ee, 0x69ed9b7f, 0x3d7f7f1a, 0x7f2264f4, 0xb76c55f2,
|
||||
0xd06981fa, 0xa72359d6, 0x3708812f, 0x7f7a4c29, 0x467a227f, 0x685eb4c5, 0xeeeb81c1, 0x2999b5e3,
|
||||
0x7f7fa0be, 0x73586e92, 0xc7817f0a, 0xc32e7f4f, 0x819b9046, 0x8179acee, 0x29b1a517, 0x557f0ef9,
|
||||
0x8116589d, 0x557f26f3, 0x861970dd, 0xcb817fef, 0x9bb6ba72, 0xaee4ddfa, 0xd17f81c9, 0x257f76bf,
|
||||
0xb04b4df4, 0x8f7f8124, 0x818181fc, 0x4fcc8f06, 0x2f7cc181, 0x4900141a, 0xf0709c16, 0x6865b5fd,
|
||||
0xd9ab9128, 0xa2321900, 0xa1a6de7f, 0x58e47f23, 0x54ac4a45, 0x1af1e618, 0xed633c24, 0xde7f7ff7,
|
||||
0xd48139b1, 0x5a640dcf, 0x63d9de7f, 0x81669358, 0x4f4571bb, 0x7f7fa692, 0x7debaf85, 0x9d7f7f10,
|
||||
0xd9c34e9a, 0x708981e8, 0xfc838ac6, 0x430bf6b2, 0x81a1a4ee, 0x7f8181ad, 0x35e98d7b, 0x4e3681de,
|
||||
0x7f7256e9, 0x7fa3b47f, 0x5a813e7f, 0x8128aa15, 0xff42357c, 0x581e98a3, 0x81534281, 0xe58196fb,
|
||||
0x11b90c6b, 0x7f81e5e5, 0x7473f57f, 0xa9475b2c, 0x24d77fa7, 0xa27f591e, 0x7fba81a5, 0xc9f19310,
|
||||
0x3c64d05f, 0x86aca9f0, 0x69b57f01, 0xbb747fb6, 0xdd81e923, 0xbe814a26, 0xe6811b22, 0x7f817fdf,
|
||||
0x7f81e46a, 0x647f8170, 0xf2812d9b, 0x7f765fa5, 0x812dfe0e, 0x2584ed72, 0x811a7f7f, 0x417f7fee,
|
||||
0x81d28138, 0x7f8e7fff, 0x9c7e28d0, 0xa71eb5f5, 0x65993e7c, 0x927ff0e8, 0x7f5cd4ce, 0x2886b35e,
|
||||
0x7f81d3bf, 0xc2d1441e, 0x2f2cbadd, 0x8c9c4cb4, 0x34dba16b, 0xaa37c5c8, 0x5881ec6f, 0xfc7f64a4,
|
||||
0x81bb8128, 0x7395489a, 0x7f647f7f, 0x44ef7f9a, 0xc3b4d6a1, 0x8693af02, 0x87fab099, 0x7f7f2f05,
|
||||
0x0191d5f8, 0x0b4281cb, 0x615b990b, 0x554b7f4c, 0x7f7f66a2, 0x817f793b, 0x5681aa97, 0x21aea0bc,
|
||||
0x81925b0b, 0x81c69839, 0xb115814b, 0x9e81d8b0, 0xc70c6f7f, 0x8f14de16, 0x3f81b4bc, 0xaa0c25dd,
|
||||
0x81f8346b, 0x6981226b, 0x81b1817f, 0x7f2081e4, 0xa2848117, 0xe4cbcc32, 0x817081d5, 0x817dbf75,
|
||||
0x157f2614, 0x5a0477d6, 0x8b818105, 0x9e7f34d4, 0x48da3235, 0x397ff6d2, 0xa02f7092, 0x817f8b13,
|
||||
0x307b35ca, 0x783c7fe6, 0xa2c29081, 0x555b8101, 0xf764ee86, 0x463a8149, 0x577f837e, 0xb1948151,
|
||||
0xbd2f86f5, 0x6e5fc338, 0x7f67a373, 0x55817003, 0xa1e17f77, 0x8a817fff, 0x49365e44, 0x817f8933,
|
||||
0x209ba8a9, 0x7f311515, 0x7f519140, 0xa9549352, 0xbd817f8a, 0xafc4a005, 0x620d407f, 0x88302fd2,
|
||||
0x5cf481f2, 0xbd7fff40, 0x7f7f9cfb, 0x91ae81fc, 0x73f15c81, 0x93814581, 0xc7e8818c, 0xc481a1fa,
|
||||
0x99818124, 0x7fecdbf3, 0x207d8d39, 0x64818328, 0x7f9dbf5d, 0x2181f9c2, 0x817f7f8c, 0x367c1801,
|
||||
0x2a019011, 0x815f5d39, 0x81817fb8, 0x7f22815e, 0xb3ceca8f, 0xa6560501, 0xfb548181, 0x2b7ffe18,
|
||||
0x5394bb1c, 0x7f9981d9, 0x7f7fce32, 0x815ba6e4, 0xabd0d732, 0x7f5c81fa, 0x7f369f77, 0xa42b7f51,
|
||||
0x900db9cd, 0x9993bde1, 0x7fc8819a, 0x116f9310, 0x8ef767b0, 0x7a817f02, 0x56819b81, 0x29aee511,
|
||||
0x7f2b8d3a, 0x818a442a, 0x555c3ff5, 0x1d6c4929, 0x7ea9697f, 0x780b8fa6, 0x097fa426, 0x9b7f89d9,
|
||||
0x165081de, 0x45a184c0, 0x405c7fc7, 0x6bbcd6d3, 0x7b81837f, 0x33867f12, 0x878f7f62, 0xc6cf1002,
|
||||
0xad819f7f, 0x3df9422a, 0x77ca9e81, 0x684f7fca, 0x30847f81, 0x81817fda, 0xedc6a081, 0x682c00eb,
|
||||
0xca767fdd, 0x1f7fb0e3, 0x377f8a7f, 0x5e85d200, 0xb9237f1f, 0xf2817f2d, 0x0dd88132, 0x81cc0037,
|
||||
0x739b39bb, 0xb47fb83c, 0xdf7f8181, 0x7f54f610, 0xbc9e3f06, 0x5762b272, 0x81ebc628, 0x7f9845b9,
|
||||
0x7d901f63, 0x81ce7f36, 0x0ebd8e7d, 0x9a81d963, 0x644c3f81, 0x227fbdeb, 0x8e2d5f81, 0x54efc59a,
|
||||
0x94ed5511, 0x817f944b, 0x38393d81, 0x592f7ad2, 0x75814881, 0x63275d7c, 0x4a65de10, 0xeb818ff6,
|
||||
0x70f93fc1, 0xbbe83610, 0x7d94beba, 0xfd077f2f, 0x7f818181, 0xbb7f47d1, 0x4c8f7f6d, 0x587fa2fb,
|
||||
0xbd817f02, 0xae7f8123, 0x4fb981ac, 0x3fd2c446, 0x817f7fa1, 0xb28d81ce, 0x7f813fbf, 0x5a8181a8,
|
||||
0x2f6355c9, 0x75624fb5, 0x811842d0, 0x70a38146, 0xea52aef5, 0x7fffa3f0, 0x8f7fdcb0, 0xe31d81e5,
|
||||
0x7fe15a51, 0x21894817, 0x9c810f41, 0xe9428145, 0x7f819edc, 0x7feb1761, 0x81368181, 0x2c71f15e,
|
||||
0x26813c54, 0xf09c69aa, 0xd17751da, 0x25a1c23c, 0x7f812281, 0x4317b30f, 0x66908149, 0x81869b95,
|
||||
0x062874c1, 0x843481a4, 0x81743c89, 0x813e9cae, 0xd8397fd1, 0x7b495f55, 0x7f7f7f53, 0xc0b419e7,
|
||||
0xacf11d1b, 0x90a51003, 0x9efa5bb6, 0x77b8989f, 0x8b1ea17f, 0xc46537c3, 0xcca93d93, 0xa955d1db,
|
||||
0xc42743ed, 0x7f8a6442, 0x79ab8152, 0xfea48ff7, 0xfbbb819c, 0xa1be81ed, 0xa481da42, 0x477f7fd0,
|
||||
0xcc1acdfb, 0x767f1533, 0x99cdda46, 0xfb9c8109, 0x7f757f7f, 0x747f88d6, 0xb5404df1, 0x8b69b739,
|
||||
0xc762670a, 0x8125bded, 0x6481a452, 0x943e5aef, 0x7fe3557f, 0x8181bfc5, 0xb14d907f, 0x7f747f9c,
|
||||
0x54b4ff28, 0xe19d7fc2, 0x7f25887f, 0x7f6cc0b5, 0x34653ba1, 0xacd70015, 0x7901cc3b, 0xb081815e,
|
||||
0x812781fd, 0x871cd81d, 0xd1818494, 0xa97fc1ed, 0x81817f86, 0x9f3cf7da, 0x9857bb81, 0x9d1661d1,
|
||||
0x167f5814, 0x037fd0e4, 0x7f337f7f, 0x7fd40904, 0x376a4a69, 0x7f77a308, 0x73b61d36, 0xb4a318cc,
|
||||
0x7f9cc3e7, 0xe0d55532, 0xab58707f, 0x9c467f07, 0x8c7f2581, 0x60155a41, 0x7f3fd21d, 0x7f7f59a3,
|
||||
0x38176d64, 0xf77fd7a6, 0x0ed2ae81, 0x7f81cdec, 0x3c0f81a2, 0x747d9be6, 0x818c5f83, 0x432e7cfb,
|
||||
0x4a44b96b, 0xc8748423, 0x6b818181, 0xe34914d7, 0x980b64bb, 0x7fbe165f, 0x7f104bbd, 0x5c7f9d02,
|
||||
0x7f307fcc, 0x8399c1a3, 0x7233316c, 0x92aae7a6, 0x81deda79, 0x812805f0, 0x7f566985, 0xdeffbea8,
|
||||
0x2bbf427f, 0x7f819e05, 0x90811687, 0x817f81a0, 0xb581c481, 0xa05cfdd4, 0xe4983e52, 0x813e81e7,
|
||||
0x2b5ba42c, 0xf75aaf0c, 0x4bbc8181, 0x817fa502, 0x1a7f2d7f, 0xe97f0700, 0x724a5029, 0xe3700308,
|
||||
0xae7fb93c, 0x7f9581ba, 0x819d7f3d, 0x2b2ef875, 0x341c52ae, 0x21b23dfc, 0x6a82a2e1, 0xaa81ecc7,
|
||||
0xcf817ff6, 0x7fa17fb5, 0x1fc21a81, 0x817f895d, 0x54973cd6, 0x81a8c919, 0x9f4c7f38, 0x89817fd1,
|
||||
0x325d7fea, 0x959581c9, 0x711638c8, 0x07bb81c4, 0x1bf0818c, 0x346b81aa, 0x5d55817f, 0x7f7f8192,
|
||||
0x3b7f81d5, 0xe783f367, 0x863038b6, 0x7f53589b, 0x7f4de47f, 0x128165ac, 0x7fa6ccfa, 0xc19f8132,
|
||||
0xc3b3483e, 0xa63d628e, 0x2d707fd1, 0xd93a1319, 0x9197277f, 0xd77f0fbf, 0x8156da7f, 0x88819a98,
|
||||
0x3eb240f2, 0x81007fbe, 0x067fe653, 0xd3aa8150, 0xa625819b, 0x767ab13b, 0x937f817b, 0xd08181e1,
|
||||
0xa47f81b9, 0x3481bd4a, 0x65507fa7, 0xb79181d1, 0xbf1d7d3e, 0xb2818178, 0x8f329d1c, 0x2081b481,
|
||||
0x7b84a853, 0x7b679ce3, 0x9ba49881, 0x695ab122, 0x23be9081, 0xd7322a4a, 0x21db3fad, 0x81fc8145,
|
||||
0x84a1bad2, 0x9f307bb8, 0x81815581, 0xb84f1450, 0x6d3acdb7, 0xfd64811d, 0x7f8132e6, 0xd7458fee,
|
||||
0x81c54610, 0x7f7f73d1, 0x81a5c3bf, 0xe15f7fa0, 0x3c7f517f, 0x047f7fd0, 0x261e438d, 0xb3c47f34,
|
||||
0x5c81a1f6, 0xa2c62f5a, 0xe67f9255, 0x4df92530, 0x58877578, 0x817fdbd6, 0x9381d867, 0xb3815eec,
|
||||
0x3d8b8ad4, 0x814aab55, 0xa5477f7b, 0xed7f98d4, 0xae7f3681, 0x3b938138, 0x58e37f90, 0x7356b00c,
|
||||
0x754181fd, 0x3181503e, 0xc58dc451, 0x818b9cbe, 0x747fcbc4, 0x0918d1f1, 0x5b5ae00e, 0x761d6116,
|
||||
0x535ba62c, 0x8c0f22b4, 0xc98fb9ad, 0xad7f6d1d, 0x4f7fec7f, 0x1b437f35, 0x9004b258, 0x787c8d15,
|
||||
0xd04b81e6, 0x703d10f0, 0x7f7f8b89, 0x1674b61c, 0x9789ac81, 0xac6c7f58, 0x0e81ac48, 0x0881812d,
|
||||
0x117f7cc2, 0xa6bd8145, 0x59817f7f, 0x89cbb4fb, 0x697f9a81, 0x813e5281, 0xf57f4898, 0xee994b1d,
|
||||
0x60228cc5, 0x4c341db8, 0x7f6e7f63, 0x107f8151, 0x14397f55, 0x81a951d6, 0xb762ed40, 0x81c39dd6,
|
||||
0x546a0438, 0x7f8e88d7, 0x81810e7f, 0x7f7f654c, 0x3b412da8, 0x8aabcfe0, 0x4b83444b, 0x65bea3ee,
|
||||
0x507fb43f, 0x16c3c7c5, 0xe322a2d9, 0xfd5a0fd9, 0xc757577f, 0x6cd0b9af, 0xc6078100, 0x3256b728,
|
||||
0xc47fdc2f, 0x81dc4bb9, 0xd8d02073, 0xc38671f2, 0xbb9104b4, 0x7fb281b6, 0xcb817f81, 0x819f44af,
|
||||
0x29f781bc, 0xdfc231b9, 0x7fae7f43, 0x575b7f79, 0xf4c4414e, 0xe807d15c, 0xd08181ae, 0x8e81cd9f,
|
||||
0x942472c9, 0x816362dc, 0x9cba9281, 0xdc6fce74, 0x2b7f7f35, 0x37810c4f, 0xe8709e85, 0x5c7f984d,
|
||||
0x8153bc24, 0xbfe581bd, 0x9a7f9c84, 0x3be9e533, 0xb6938127, 0x82ca63d5, 0x08eeb19f, 0x59ebeb0f,
|
||||
0x4d7f14f7, 0x3c558f40, 0x62d26981, 0x8181f3a8, 0xe42585ea, 0x7f08817f, 0xaf8181a0, 0x0c5d16cd,
|
||||
0xa4dfee3d, 0x3a8182fa, 0x6381883a, 0x7fe9d01c, 0x5e659f90, 0x7f7f812f, 0x4a9d8179, 0xb1e4acf3,
|
||||
0x1b8189f9, 0xd983a4d8, 0x817f81df, 0xa2cf1f55, 0x817f337f, 0x7fa3564e, 0x14ae7c44, 0x4ca3859d,
|
||||
0x81b37fa2, 0xf8a0b7b1, 0x7f79c0cc, 0x7f3010f6, 0xa5be8c16, 0x2420b129, 0x7f7898f1, 0x7e818139,
|
||||
0x7fc919eb, 0x61819a67, 0x88928b15, 0x7eade0d3, 0x4e7fc323, 0x8deb5fe6, 0x7f3f7f9c, 0x81817fbf,
|
||||
0x989026db, 0xef81c203, 0x81e4a1e1, 0x35939d41, 0xbbaae870, 0x3d217fca, 0xddd9a1ce, 0x7f7f81a3,
|
||||
0x5bf18122, 0x81c55a52, 0xc95c450c, 0x7f5a03e6, 0x65654a14, 0x75d401f6, 0xe0cb297f, 0x5f3c8132,
|
||||
0xf7a312d3, 0x81c6d3af, 0x978e8181, 0x1476539f, 0x502534be, 0xd2909112, 0x6ad663ad, 0x7f7fbbac,
|
||||
0x8b70da23, 0x4d78af31, 0x7f8159f5, 0x81bad147, 0x348151dd, 0x5e68eace, 0xc2737fa0, 0xf97fa32e,
|
||||
0x7e7f81de, 0xa68baddb, 0xbb39817f, 0x7f9bc454, 0x6d09c327, 0xc37f3c33, 0x0a865f7f, 0xba8281e1,
|
||||
0x1a3ff406, 0x652c3fd1, 0x94af367b, 0xb381d8cb, 0x4045cce5, 0x7f7fd613, 0x795f7f42, 0xb1818193,
|
||||
0x7f371d3c, 0xef816b41, 0x2ca91acc, 0x48b5aa83, 0xaae807de, 0x26813f13, 0x81817f2a, 0x6083604f,
|
||||
0xd29e81f6, 0x7fb218ca, 0x4aa50170, 0xc2d74a22, 0x4f4971a3, 0xe9dc5f10, 0x7fb8bedf, 0x1f93814a,
|
||||
0xa97f7f0e, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000
|
||||
|
||||
hard_output0=
|
||||
0xb5bc6ac8, 0xf5373664, 0x1310345c, 0xd5bae4e7, 0x1fc9e83e, 0xebfdfded, 0x84bd86ab, 0xb7aabe00,
|
||||
0x60b44fea, 0xb9067464, 0x30325378, 0xa9195955, 0xf70c6e5c, 0x90922632, 0xc90b1cdb, 0xf2f5fb69,
|
||||
0x73056b63, 0x1a33bf3f, 0x17755b5c, 0xc58bff6d, 0x2f4390b2, 0x2869d508, 0xe7c7dfe8, 0x38552963,
|
||||
0x21da5367, 0x07282b9b, 0xa4767105, 0x1e294251, 0xe350a940, 0xb8a6aa27, 0xed12d778, 0xf10d9ece,
|
||||
0xab93527f, 0xcf2da7e7, 0x68f6d0b1, 0x811f4bca, 0x577b06b2, 0x3234f13e, 0x30bab7df, 0x8dc47655,
|
||||
0xbb843bed, 0x86da3aba, 0x30950c97, 0xdd096d7a, 0xa871fd6c, 0x8bee4e6b, 0x8fea30d0, 0x6c05b4d2,
|
||||
0xf3e144d3, 0xd24ebb1f, 0x065635e5, 0x8d3f2cf9, 0x536c6c6a, 0xfbb0a5d0, 0x3d707b42, 0xc44d5982,
|
||||
0xa5f4ad8f, 0xf32c0970, 0x1bccf1a6, 0x05916020, 0xa64fb176, 0x5ede6a35, 0xaf4966da, 0x9df5e0e7,
|
||||
0x75042abc, 0x9ef10481, 0x11ddcbc8, 0xa0f5518c, 0xd5c23418, 0x2393d558, 0xfbe7dfeb, 0xed1c64c2,
|
||||
0x86a36508, 0xde2dfb1e, 0xb8d0fef9, 0x24505232, 0xc894e71c, 0xbcc752a0, 0x40b74e83, 0x90d23c8c,
|
||||
0x728e4a61, 0x108f0b08, 0x66f522ee, 0xc258d851, 0x35a31c44, 0x11311b5b, 0xfd3d5be9, 0x5ae448ff,
|
||||
0x4f64994b, 0x5b8247a9, 0x4021114d, 0x2f0b6e82, 0x5eaa9828, 0x50ac71c0, 0xfb86ee52, 0x0dc1ac9b,
|
||||
0xbbd47645, 0x8f357115, 0x978ceea0, 0xd557db99, 0x99b30388, 0xfc9a8a1c, 0x0f75be1a, 0x50143e22,
|
||||
0x8840989b, 0x738ec50e, 0xe6b2783d, 0xf67899c8, 0x27ebed69, 0x6c415a16, 0x3a6cc2dc, 0xcd4e4e5d,
|
||||
0x6cb12b2e, 0xdb88d7c0, 0x79cd1582, 0xbc422413, 0xe72ad2f4, 0x8eaac30f, 0x0bd86747, 0x6d87f69d,
|
||||
0x15d62038, 0x4b375630, 0x0d51b859, 0x16db2cb2, 0xf210603a, 0x0abeb833, 0x55c694d0, 0xe57ca43b,
|
||||
0x0ba94428, 0x1398a406, 0xe47d3889, 0x5a20203d, 0x250d7a1a, 0xd930ffec, 0x03992e79, 0xf2759376,
|
||||
0x024ec121, 0x91fc3a2c, 0xb7e11cc5, 0x4ff7d459, 0xb8700134, 0xd6e61758, 0x4eba0a32, 0xb747e3ec,
|
||||
0x7073fad7, 0xded80f99, 0x331e2f1b, 0xfa1f1bed, 0x056424a2, 0x1d1d95e0, 0x550b9ec8, 0x51ee2a38,
|
||||
0x19525153, 0xd70c4cd5, 0x0d6cd7ad, 0xe44d1cf2, 0x30dfecda, 0xdacd7fe8, 0x7321d795, 0xddf48ef4,
|
||||
0xe271e6a4, 0x9c1feecb, 0x951fcd7b, 0x8acc5a03, 0x3fb83527, 0xe306de74, 0x7b9cd6ee, 0x8e140885,
|
||||
0xd4c91e8d, 0xe8c39733, 0x0f02f87f, 0xfb06b1b9, 0x0dc9349c, 0xf76bae8e, 0x4f642a07, 0x3d48a9aa,
|
||||
0xe3ea323a, 0xa1cd5c8a, 0x40aa0e70, 0x132042d3, 0xa9732f6c, 0xd15a00c4, 0x43d3b046, 0x9a51ebd4,
|
||||
0xc46ee0ed, 0xe2a2148b, 0xf5c478f0, 0x1fb01cf3, 0xf4f321ec, 0xd973811f, 0x11ad11b9, 0x5c67adda
|
||||
|
||||
e =
|
||||
34560
|
||||
|
||||
k =
|
||||
6144
|
||||
|
||||
rv_index =
|
||||
0
|
||||
|
||||
iter_max =
|
||||
8
|
||||
|
||||
iter_min =
|
||||
4
|
||||
|
||||
expected_iter_count =
|
||||
8
|
||||
|
||||
ext_scale =
|
||||
15
|
||||
|
||||
num_maps =
|
||||
0
|
||||
|
||||
code_block_mode =
|
||||
1
|
||||
|
||||
op_flags =
|
||||
RTE_BBDEV_TURBO_NEG_LLR_1_BIT_IN
|
||||
|
||||
expected_status =
|
||||
OK
|
|
@ -0,0 +1,645 @@
|
|||
# SPDX-License-Identifier: BSD-3-Clause
|
||||
# Copyright(c) 2017 Intel Corporation
|
||||
|
||||
op_type =
|
||||
RTE_BBDEV_OP_TURBO_DEC
|
||||
|
||||
input0 =
|
||||
0x81814e1f, 0xba81fb11, 0xc4554696, 0xe17e9454, 0x427f8119, 0xa8b355f1, 0x244ba17f, 0x1c816fa1,
|
||||
0xc94f5bcc, 0xb5b97fbb, 0x634b8e81, 0x815a6cc1, 0x7f6bb016, 0x2f7249d6, 0x604664f0, 0x31817f81,
|
||||
0x6fa66b81, 0xd49763f6, 0x777fa4f1, 0x81aa6da8, 0xf0fea881, 0xaccfbfd0, 0x7f81e582, 0x7f58a2d6,
|
||||
0xa77f430e, 0xf47f50f1, 0x997f42f2, 0xd7814f81, 0x037fe14d, 0x81f98125, 0x2d813e55, 0x7f81f0dc,
|
||||
0x7f7f8181, 0xc37c723a, 0xbc7a3364, 0x8193817f, 0xe381066d, 0x7fcab836, 0x2481eea2, 0x567f5968,
|
||||
0xa07d720c, 0x7fa13343, 0x7f35636d, 0x7f817f78, 0x383d2a69, 0x7f860e2a, 0xca78797f, 0x7f7fe912,
|
||||
0xc95a8141, 0x770c9c4e, 0x81e2817f, 0x811b3f81, 0x745f1104, 0x13817e31, 0xb681a63a, 0x8101482a,
|
||||
0xbe81818d, 0x8c8181fa, 0x2133de57, 0x8147677f, 0x8a098d7f, 0xd429f1ee, 0x284fc81f, 0x7f5c16d7,
|
||||
0xded34e7f, 0x3d60812e, 0xdf817f89, 0x2f33793c, 0x2f7f9961, 0x8181221e, 0x847f59d1, 0x9281a681,
|
||||
0x89503793, 0x01817ff0, 0x183a53ba, 0xc99622f6, 0xbc819881, 0xa7ea2ec8, 0x787f957f, 0x26819378,
|
||||
0x1e4e4ba1, 0x8bf18138, 0x3adc2c81, 0x3a7d8187, 0x7f22ae8e, 0x307c81d7, 0x7f53a881, 0xc281819f,
|
||||
0x38fd2090, 0xdd810a00, 0x74ff7fa2, 0x7fb2f27f, 0x7f9b8211, 0x55d69e44, 0x8d2cd44c, 0x5610c676,
|
||||
0x7f815b81, 0xa2811e3d, 0x93135d81, 0x92797f73, 0x8a8192b3, 0xa48a7f66, 0x7f7e4a10, 0x242dfd81,
|
||||
0x7fe8b481, 0x810fb0e4, 0xde390fa7, 0xbb5a7f81, 0x65ad3b19, 0xa96a96a2, 0xf681817f, 0xb6a4eba2,
|
||||
0x0d81017f, 0x5369080e, 0xfbd1c781, 0x879d7f7f, 0x81818181, 0x7f1d061c, 0x8aa731fd, 0x4386a67f,
|
||||
0xba445581, 0x5b81975f, 0x467f7f7a, 0xc85db95e, 0x6f587240, 0x29a07904, 0x7f7f7574, 0x815dbeb2,
|
||||
0x81771181, 0x7f54e8c3, 0xc6586fd6, 0x3c6d835a, 0x86b4ed95, 0x7faa72fb, 0x7f7e7fd5, 0x154f81e3,
|
||||
0x7c4881b4, 0x0c164a37, 0x7ffdbf69, 0x7f7d43f6, 0x5f47da8a, 0x3236d20f, 0x65818181, 0xa37fcf7f,
|
||||
0x7f8116cb, 0xf6947f50, 0x66ab65b1, 0x6d688a6f, 0x537f6bf0, 0x5c864ddc, 0x06a98181, 0x455854c2,
|
||||
0x9a6c49ad, 0x129d3c29, 0xe94c327f, 0x7d40247f, 0x9681bc7f, 0x7f288120, 0x81a43b40, 0x08d81689,
|
||||
0x457f815d, 0xc27f9ae7, 0x7f819655, 0xdabf8181, 0xf4c07f81, 0x6410e8cc, 0xce4d8181, 0x19b13059,
|
||||
0x8181bf99, 0xf2819620, 0x7fc37f4e, 0x7f8efe81, 0xb25a3e8b, 0x7fbbdb22, 0xba7f8181, 0x8135d42f,
|
||||
0x817f6836, 0xc381a056, 0x7381547f, 0x1e407f13, 0x9b917f7f, 0x4e526d9b, 0x9323737f, 0x7a20429b,
|
||||
0xac6b14a8, 0x3568e8d7, 0xbe621a97, 0x7fbca13b, 0x2dbda9dc, 0x32af4ddd, 0x6e4f978e, 0x10ed8172,
|
||||
0x81e76681, 0x7f427fc4, 0x7fab7f81, 0x2c7ffd81, 0xea817f7f, 0xa62fcf2c, 0x8144bfb7, 0x7ffc93a0,
|
||||
0x79e9b564, 0x6c449d46, 0x987f8481, 0xee118173, 0x867f0c0a, 0x81819347, 0xb8ddbf82, 0x5c6866b8,
|
||||
0x82b48881, 0x5c817fdd, 0x7f6605e0, 0x4181bc81, 0x736b51a4, 0xcd5a7fd2, 0xf939a42b, 0xcd817faf,
|
||||
0x5e1b1fa6, 0x7c818ef7, 0x070c47cc, 0x8e5981d1, 0xe661d182, 0x54deb54e, 0x7fba81f4, 0xc1712e73,
|
||||
0xb6885086, 0xae9759e2, 0xb12b814e, 0xf5ae9e41, 0x16c736f6, 0xa981c3e2, 0xb06c7f29, 0x497f95b8,
|
||||
0xcb3de381, 0x7f7524e3, 0xdcf88147, 0x811e81f9, 0xab7a9c7f, 0x816223d8, 0xf97fe22f, 0xe5cf814e,
|
||||
0x744f6312, 0xc797e05a, 0x279b237b, 0x622b01b9, 0x37818181, 0x8174e3ab, 0xfa5a69ff, 0x62cc787f,
|
||||
0x81944e7f, 0xc87f7f2f, 0x30839f54, 0x8122090f, 0xf8e98181, 0x28815f40, 0x0262424b, 0x7fc3ccd0,
|
||||
0xdf7f7fe2, 0x0c264dfa, 0x5d954581, 0xfb188181, 0x6b810d33, 0x1c7fbee7, 0x8141c17f, 0x7f768155,
|
||||
0xbd207f27, 0x794079d7, 0xf34bd97b, 0x7f7f5026, 0xb46c9782, 0x7f81574e, 0x81817f27, 0x75267f6d,
|
||||
0x4a7fe97f, 0x7f879ee0, 0x25f8d63f, 0xd481a3c5, 0x747ffd0d, 0xb33530e2, 0x813f5881, 0xbb8181dd,
|
||||
0xa2da462a, 0x817f8c0d, 0xd0f061f8, 0x117bda34, 0x1897f8b7, 0x2e477f50, 0x8181814b, 0x7faa1181,
|
||||
0x6ee68168, 0x811a98e2, 0xdcb2b784, 0xa20a7fb7, 0x41445681, 0x0bffeefc, 0x02817f9d, 0x743071cf,
|
||||
0x387695bd, 0x847ffb4a, 0x0a287f56, 0xf9b4d4d3, 0x2a7fa481, 0xe3eb2e9b, 0x327f91f4, 0xec3981d2,
|
||||
0x6681f83c, 0xe675722e, 0x426ac913, 0x4b6154a6, 0x5c30816f, 0x817c8155, 0x277fa781, 0x8dd8a9a3,
|
||||
0x48c609a0, 0x4bca47bf, 0x7f3f6d81, 0xea497fb3, 0xc181507f, 0x81bf1ffe, 0x8e818916, 0x6ba83d7f,
|
||||
0xb8547f62, 0x5881670e, 0x7f6281fb, 0x6e7f9250, 0xa7bc817f, 0xb19450aa, 0x7f7f9d58, 0x20f69c1e,
|
||||
0x7f45815d, 0x817f9319, 0x7a5496b0, 0xb85e8950, 0x72c9337f, 0x81781aba, 0xfecdaf28, 0xe2195ab5,
|
||||
0x7fbb0ec7, 0x7f7ff8a7, 0xab818181, 0x978f2e6e, 0x7fc38121, 0x18945319, 0x264a8181, 0x93b1dc81,
|
||||
0x630ed781, 0xe27f8e14, 0xc17f5b93, 0x7081fe2d, 0xbb9ac790, 0x7f81ba5c, 0x7f812f32, 0x68bd4f7f,
|
||||
0x81217f81, 0x88b87f26, 0x285e7f3e, 0x29817828, 0x747f7f81, 0x159eaacd, 0x8d02b252, 0xa98881e7,
|
||||
0x817f1681, 0x367fbd38, 0x8a8441e3, 0x81447f1f, 0x8165424b, 0x811676ee, 0x81a48122, 0x4b02ea7b,
|
||||
0x5c267f38, 0x8195acd2, 0x7f7fb581, 0x9eae092d, 0xab12457f, 0x96f8dc31, 0xa89fd810, 0x222b7f7f,
|
||||
0x1dd67f65, 0x873a81e0, 0x0e7fd97f, 0x81a83d97, 0x8106d381, 0x7f817f0c, 0x8104d4f9, 0xbb81677f,
|
||||
0x01be7f39, 0x297297ab, 0xc2f01b81, 0x9dd57f81, 0x81ff692f, 0x7fc28115, 0x077f547f, 0x717fcf81,
|
||||
0x3d81ed83, 0xff6f7fff, 0x7f50f95c, 0x5650a753, 0x81817f09, 0x963b7057, 0x7f817f60, 0x987fa099,
|
||||
0xf6207f7e, 0x4c814e98, 0xcd27b681, 0x41bd2ebd, 0x340172b2, 0xbc151ec1, 0xf3b403d2, 0x817f6c81,
|
||||
0x7f2f3218, 0x26f2ea5d, 0xcc59bd8a, 0xef857f52, 0xe37bc195, 0x7f2a2e13, 0x7381a51a, 0x31e14c60,
|
||||
0xc2e23fc6, 0x8113f40c, 0x9b2d7f81, 0xf6e1147d, 0x813c7fe1, 0x9a9d7f3f, 0x7fb939ac, 0x573181ad,
|
||||
0x608a317f, 0xb486b9ee, 0xe67fb10b, 0x62817f8b, 0x7f7f9775, 0x81e6819d, 0x7f6f0f61, 0x4ffd8158,
|
||||
0x81ae56d2, 0xbe4aa4f7, 0x6c515581, 0x435d8326, 0x7f0e2a95, 0xc28d81e1, 0x357fa0cf, 0x2b9f7f11,
|
||||
0xd491057f, 0xbc7bddd7, 0xe5b57f34, 0xfba68549, 0xb491d2e3, 0x4fb61f49, 0x81bd3e3c, 0xdd9848f3,
|
||||
0x81810561, 0x67f5fbdd, 0x8c4dc25b, 0x2ab47f67, 0x68137f5e, 0xcfe53817, 0xa7679d31, 0x501213b4,
|
||||
0x7f7f1390, 0xbefeccd8, 0x30fe9044, 0x7fd6812d, 0x813cf0e6, 0xccb82825, 0xfa78ec58, 0x024b90e4,
|
||||
0xba25ec7f, 0xc43b50ff, 0x7f7f3e4d, 0x64c38181, 0x81ed1dba, 0xd58b7f64, 0x0b81311f, 0x03563b7f,
|
||||
0x817fb491, 0x81e895c7, 0x817f7fb0, 0x1681a581, 0x7f998a50, 0x489b81a9, 0x81bc81a2, 0x3d9e7fde,
|
||||
0x7c7c6381, 0x817447ec, 0x6e7fc32b, 0x7fab86c6, 0x95b44181, 0x3a7f756c, 0x81458168, 0xc4787fd3,
|
||||
0x731cda81, 0x73127f03, 0xc9077fcf, 0xc37f9c2e, 0x27817f7f, 0xc4361507, 0x7f9b3581, 0x9d357f2d,
|
||||
0x7f81166c, 0xb87f815f, 0xb2604f95, 0xc44b5591, 0xcfb8078b, 0x7481e64b, 0x8152a679, 0x53fa387f,
|
||||
0xfa7f3f79, 0x7f5b5fe5, 0x1e625d7d, 0x1081ad93, 0x7f5019fe, 0x3d8145a7, 0x629f9918, 0xc1ab3742,
|
||||
0x7f66c057, 0x9cb048dd, 0xeb6e859b, 0x8e5fb72c, 0x94d8f5a4, 0xa381280d, 0x67737de6, 0x45817f81,
|
||||
0xf055c17f, 0x6a0aafff, 0xdb818cc6, 0x81fc60dc, 0x20377f4c, 0x7feac6de, 0x72e78c7f, 0xdf532124,
|
||||
0x81d33356, 0x8881bcf9, 0x95817f32, 0x612eae3b, 0x7b186965, 0x50b77f63, 0x718181b3, 0x42d8b481,
|
||||
0x88edaf7f, 0xa3cd25f6, 0x7fdd7f81, 0x7fb79681, 0x7f786e7f, 0x7fbb41c9, 0xd2618121, 0x1cacc6d3,
|
||||
0x7fe2a0dc, 0x819e1a46, 0x563081e1, 0xb18d77b1, 0xb4817f7f, 0xa97f81fa, 0x2e81157f, 0x31e67fa4,
|
||||
0x5b814281, 0x98b18124, 0x7f0a3540, 0x49d508d1, 0x2693bc71, 0x3aeb81ca, 0x817fc081, 0x6674b9e7,
|
||||
0xa1217f23, 0x517f81f1, 0x7fc4ef26, 0x2914ef7f, 0xa9ff7a19, 0x7f7f0ce2, 0x1b485e45, 0x7f70af0d,
|
||||
0xd6812a71, 0xc95fc63d, 0xa57f03c8, 0x9dbe7f81, 0x7c978192, 0x81a22306, 0x96447f2f, 0x7faf2728,
|
||||
0xc2a494ad, 0xd5c7813a, 0xa02b7bb8, 0x3bc04eed, 0x997fa97f, 0x7768d0d0, 0x8a84817f, 0x8f1102c6,
|
||||
0x7f8115be, 0xfb7f7869, 0x7ff25de8, 0x6745f276, 0x0f23b585, 0x52933552, 0x7fab5340, 0xeb4c403f,
|
||||
0x7f5465ec, 0x77b0a942, 0x6b67297f, 0xc86a7133, 0x7f8f177f, 0x869e28f4, 0x7a7fb066, 0x81a3b865,
|
||||
0x5d7fba81, 0x815fd7ae, 0x60817ff7, 0xa633a381, 0x45813981, 0xade1ccd7, 0x814981a6, 0xaa93770a,
|
||||
0x7f83b4dd, 0xc0967f1a, 0xed7f3764, 0x53772ea8, 0x5a81f453, 0xaff56f92, 0x81067f5f, 0xf596ef1f,
|
||||
0xd520de7c, 0x81b2bdc8, 0x7f8130dd, 0xfb7f8c41, 0x99816bf6, 0x695a60e3, 0x7f7f817f, 0xed987f26,
|
||||
0x8f818166, 0x417fecfc, 0x99ec379b, 0xaf7e7f7f, 0x360dd75f, 0x787f44f6, 0x81837dfb, 0xd481a681,
|
||||
0x81819d17, 0x8781322c, 0x7f7fac0b, 0x0fca7f3c, 0x40b5e37f, 0xf27f2ebc, 0x41c19a41, 0xa6c1d381,
|
||||
0x066de9ec, 0x32b8a8bc, 0xdac61ba5, 0x812d817f, 0x87b9821c, 0x817f7920, 0x7f557fbc, 0x81738181,
|
||||
0x918fb098, 0x81ab890a, 0x81b881bf, 0x7f7fc57c, 0xcdbde77f, 0x7f5f7f3a, 0x36e59a81, 0x19a6818f,
|
||||
0xea7fd850, 0x20606e2b, 0x927f9c22, 0xd27f819f, 0x3c4f7f73, 0x168176ce, 0xf0687f81, 0xec5f7faa,
|
||||
0x23aa789e, 0x2de996b5, 0x7fd07f7f, 0x9785c156, 0x1eaa3235, 0x9781ea6f, 0xb2de74fb, 0x815a98d6,
|
||||
0x8cb77f92, 0xbba85fa1, 0x61afcac8, 0x81817f64, 0x8149865f, 0xa251b7ee, 0xec7f8181, 0xf8ad7f84,
|
||||
0x5c8142bf, 0x212981f2, 0x7fc9e381, 0x37338e67, 0x7f3099c6, 0x4fcdb7d1, 0x0381c0fd, 0x778181e4,
|
||||
0xe7702cfb, 0x61c21e43, 0x3f987f81, 0x3a0b815c, 0x7d12b8c2, 0x70097f0a, 0x7f244d63, 0x2d81187f,
|
||||
0xd87f6f7f, 0x7d267f2c, 0x8eaf2486, 0x87d8013d, 0x85367f7f, 0x81817f85, 0x0a067081, 0xc96f952c,
|
||||
0xf3c14485, 0x227f4330, 0x60ec8124, 0x41f181f5, 0xdb6b7fce, 0x819467cf, 0x81bc7fd4, 0x2c7a7f7f,
|
||||
0x936ade53, 0x7f81d04a, 0xc4817f81, 0x7fdd78dd, 0x81d3a47f, 0x917fade5, 0x6c81510e, 0x5b16fd74,
|
||||
0xbe987f81, 0x7fb17404, 0x7fb8e8f7, 0x7fb381e6, 0xc479b081, 0x5c81eee7, 0xb19b0e81, 0xa381d4df,
|
||||
0x81bacf5b, 0xa67fb9a6, 0x817f11a0, 0x8d565870, 0xce818181, 0x7f4aec3f, 0x813ab981, 0x1b495a42,
|
||||
0xab7f928d, 0x8106014f, 0x47c3e57f, 0xc418f11e, 0xc9149f6c, 0x1a7f1e25, 0x7f3f2d81, 0xcd5e462d,
|
||||
0xa8d57f7f, 0x812481db, 0x7f697f97, 0x69cdb891, 0xc31fc20d, 0xdc812b31, 0x57e37f81, 0xa09681aa,
|
||||
0x7f817f88, 0x1ae385f8, 0x81607f7f, 0xfb752e65, 0xd8dd8141, 0xb17f50a9, 0xb8737ffd, 0x1f7f815b,
|
||||
0x7f9a9e69, 0x06448b38, 0x8109a225, 0xb69e064b, 0x9881537c, 0x59dee4d8, 0x89c6a692, 0x0e817b7f,
|
||||
0x81816b97, 0x5de37fd1, 0x7f2c7ca9, 0x81784402, 0x29bd477f, 0x81a07ffe, 0xe822df7b, 0x7f29813c,
|
||||
0x6d81cd81, 0x1a811bd2, 0x6b2c7f26, 0x7881a08f, 0x7fd0e88e, 0x27f87fce, 0x8181a67f, 0x7f7f5558,
|
||||
0x81668133, 0x8181bfca, 0xc3792d58, 0x2b7f2d7f, 0xa3d09230, 0x9fa56824, 0x7fd5ce7f, 0x251b3cbd,
|
||||
0x7f818117, 0x7fac9e26, 0x7fde26f6, 0x4b7f837f, 0x1fd52b94, 0x067f6698, 0x70817f7d, 0xdd9658c1,
|
||||
0xe5a99465, 0xa59cdc55, 0xc1c2c7ad, 0x147fb081, 0x234cc657, 0x7f7fcc0f, 0x7f3d8150, 0x41b68131,
|
||||
0x7ff58184, 0x90a57f2b, 0xdd9d9b7f, 0xc4518163, 0x428aa37f, 0xe866ef52, 0x7f6c3644, 0xa09d3b50,
|
||||
0xf2c4adad, 0xc87ecb45, 0x7f70bace, 0xd5697f2d, 0x297349a8, 0x6bc11cc9, 0x8cdd0ed3, 0x7f53646b,
|
||||
0x8129b9b8, 0xce65a8d3, 0x20208181, 0x817f5272, 0x6ad11bf4, 0xc58151e3, 0x361572c9, 0x81acd996,
|
||||
0x6e819466, 0x7e7fbd3f, 0x70bb9ffb, 0x818b810a, 0x879a7f15, 0x8c884edb, 0x9028ae45, 0x81d8f525,
|
||||
0xaaa781b9, 0xaf1a0108, 0xe2817f73, 0x24b67f8b, 0xf08fd77b, 0xd21a265f, 0x7f3930ba, 0x5f5d9287,
|
||||
0x66218181, 0x7fd219f3, 0x6f44f09e, 0xbcc58157, 0x7f71b94d, 0x817f81c5, 0x877f6064, 0x81647f81,
|
||||
0xe5ba2e34, 0x889f8722, 0x27819f0e, 0x7f4c0eed, 0x2d7f79b6, 0x81b1813c, 0x647f3d2b, 0xe92b68be,
|
||||
0x81375804, 0x6798c04b, 0x2b596e7f, 0x78c97f7f, 0x812c367f, 0x7f468112, 0xa352d785, 0x3806f2a4,
|
||||
0x6886a9a9, 0xa31540ea, 0x5ab2478d, 0x9f5be57f, 0x9ab06481, 0x1586279b, 0x86267f81, 0xb3a50944,
|
||||
0x788a485c, 0x838d4c30, 0x8ad44b53, 0x923fb39a, 0x95035381, 0x81817ff2, 0x7f44d5eb, 0xf17f8164,
|
||||
0x39d117c0, 0x37ea75f4, 0x81927387, 0x817f0623, 0x909f7f0a, 0x997f7f19, 0xc1983b18, 0x60937f6b,
|
||||
0x8829c381, 0x8e6bf066, 0xfb7781ab, 0x43408e7f, 0x7f7f811d, 0x33eb81d0, 0xb86459a9, 0xadba7fe7,
|
||||
0xc1967f48, 0xfd0284bd, 0x4bef335d, 0x1b7f5f81, 0xa2c2c237, 0x81b0816a, 0x42ee5c7f, 0x7f009323,
|
||||
0xb7ced44c, 0xd90958e2, 0x3af8aae8, 0x7fb82e90, 0x989a7f7f, 0x14a22c68, 0x60ef7dc6, 0x7fb9ad00,
|
||||
0xf9e3c69d, 0x5e3bafbe, 0x81178a81, 0x92c4df02, 0x159d7fb6, 0x812b8103, 0x616f9df5, 0xb9a1df61,
|
||||
0x454b3944, 0x98931fbe, 0x4aae7061, 0x9572a681, 0x8178a8a8, 0x81fe821f, 0x817f7f6f, 0x7f787f2c,
|
||||
0xe584ff82, 0x7b7f5637, 0x9e815970, 0x517d8181, 0x97faba7f, 0xcfe3ce17, 0x9181f55f, 0x857f5f3b,
|
||||
0x81b17fbc, 0x7f1d7fbc, 0xae7356c3, 0xe4f77f8b, 0x4695f639, 0x8ddaec55, 0xa5d4a381, 0x7f7fa418,
|
||||
0x4d818145, 0x3881723b, 0x7f507f7f, 0xa5357fca, 0x81dbdc3b, 0x0b187f28, 0xb0325181, 0x09dd795f,
|
||||
0x2c39b28c, 0x9ac18118, 0xda52b681, 0xa3819da8, 0x7f884525, 0xba0d7ffe, 0x50ce81ad, 0x60e70e69,
|
||||
0x110b81ee, 0x8181871e, 0x7fe07f81, 0x8d1c4dde, 0x67649db7, 0x6e4669c2, 0x818144a4, 0x7f6c9cb7,
|
||||
0x51b57f81, 0x36aec300, 0x7f7f8141, 0xc5eca67f, 0x14ac7892, 0x7f35e9c2, 0xa1fe9a81, 0x6a867f7f,
|
||||
0x767f817f, 0xc447c4bf, 0x067fedca, 0x8c024b57, 0x7ee5707f, 0x52589b51, 0x0f81b28f, 0xae7f00a7,
|
||||
0x5244c5ca, 0x9671812e, 0xf0631d15, 0xb4aba1b8, 0x7f9a3488, 0x81b485b8, 0x392f2d7f, 0xed7fad81,
|
||||
0x6055a4e1, 0x60f300c7, 0x7feb817f, 0xd1e0917f, 0x544ca57f, 0xd23d7e0d, 0x8110c8c2, 0xbc24a615,
|
||||
0x3d817f33, 0xbdabcdfa, 0x5ac3817f, 0x81817fc0, 0x81817f76, 0x837e43d9, 0x7f817581, 0x5da96bcb,
|
||||
0x3e1c888f, 0x7f7fa6f5, 0xb769907f, 0x8eb43d8e, 0x3a7f3e81, 0xd5845510, 0xd07f5a54, 0x14816ab2,
|
||||
0x8126c62d, 0xbeda8f5c, 0xa0007fa8, 0x818d7281, 0xad72917f, 0x49c2f650, 0x87969baf, 0x7f53e975,
|
||||
0xe78de481, 0xe5083e96, 0xb635812c, 0xafdf4bb9, 0x26ac8101, 0x82b0a109, 0x7f8101b8, 0x607fc7cc,
|
||||
0xc3b1892f, 0x7d0dd911, 0x396d8195, 0xcb84b67c, 0x3f7d3681, 0x43a07f25, 0xd020297d, 0xb7d65b81,
|
||||
0x455a99e2, 0x509e4611, 0x817f81e0, 0x81da81a8, 0x8147b5c1, 0xbc81a5df, 0x489c6781, 0x8150a908,
|
||||
0x4fc0e681, 0x814b8163, 0x11457f8b, 0x9a77db7f, 0x81fa0681, 0x7f867010, 0x852b87c5, 0x3d8253dc,
|
||||
0x91165c42, 0xc6ac7422, 0x727f0774, 0x7f497f67, 0x1a3fe7c0, 0xb39c81d1, 0x44a47f7f, 0x7f8b066f,
|
||||
0x7f787ab5, 0x7ba7e870, 0xb932a3a9, 0xc85c1149, 0x32a28d61, 0x7f8d812c, 0x93819da2, 0x647ae98c,
|
||||
0x777f7e9e, 0xbb447fec, 0x2fabd677, 0x3a7f8c08, 0x51707f28, 0x35f81da5, 0x0b3cfc4e, 0xd4179b8a,
|
||||
0xef77a6ca, 0x31e02016, 0xdbb81924, 0x7189b4a7, 0x08a671aa, 0x817f2352, 0x81819e81, 0xec7fb7e4,
|
||||
0x81699ae5, 0x88817f20, 0x5ee7d181, 0x944d8150, 0x7f7f52d9, 0xc1815114, 0x3281a67a, 0x52fa8181,
|
||||
0xc4e47f7f, 0x7f824cbd, 0x728cf0bf, 0xa6b20e46, 0x9ffe631c, 0x639d82cc, 0x7f638136, 0x7f7f3381,
|
||||
0x7f8b4794, 0x44b19231, 0x08da5253, 0xaa815d93, 0x7f6a7f69, 0x616331c2, 0xdaa47fcf, 0x7f272255,
|
||||
0x3ee4098e, 0x819527f9, 0xcfc187a5, 0x7f81e781, 0xf71402bd, 0x9fecc0d1, 0x2067a67f, 0xa1dace7f,
|
||||
0x42817fa8, 0x8181da23, 0x03818181, 0xc35e3af7, 0x941d7ff3, 0x817f33e5, 0x7f2a78f7, 0xbe426494,
|
||||
0x0d2d81a4, 0x817f20cf, 0x89b2f4d0, 0x8171ba71, 0x6245be4e, 0x817f8140, 0xed8a7f81, 0xdb097f7f,
|
||||
0x81724d42, 0xe0de7bfb, 0xde611f7f, 0x7f54d981, 0xb1d07fd7, 0x487f7fef, 0x7f2c8139, 0x7f7f7f10,
|
||||
0x3e812db6, 0x63447ff6, 0x7c7f277f, 0x9f7f8b7f, 0x76d47f81, 0x197faadb, 0x6a596c91, 0xc681a3a3,
|
||||
0x7da1d13f, 0x4af8d329, 0xaa819881, 0x7d7f7f4a, 0x3a9d1753, 0xaf818145, 0x5b905350, 0xee313e4c,
|
||||
0x3fa881c7, 0x437fc046, 0x817fbd9a, 0x30f77f14, 0x3e81df81, 0xa42f4e53, 0x7f67d481, 0x4f4b819e,
|
||||
0xc5474f22, 0x6eed3376, 0x7fb1ed92, 0x5b3e813d, 0x6c8181a7, 0x720df323, 0x2d0e7017, 0xc7448174,
|
||||
0x817fb27f, 0xad7f01de, 0x817f10b1, 0xf6231fed, 0xa56d7a81, 0x98817fef, 0x8181e4a0, 0x48aa7fb1,
|
||||
0x81727f6a, 0xa4059a04, 0xe0cff64c, 0x5ea7679c, 0x69c1009b, 0x7f816b2a, 0x5cc58181, 0x7f954f3d,
|
||||
0x848b7f17, 0xaee99031, 0x7fbb951f, 0xa2da7f73, 0xc5acfb81, 0x2c1ecf2a, 0x6981fdba, 0x19897fb2,
|
||||
0x7f4af7a6, 0x85cd8129, 0xe845e0d5, 0xdf658407, 0xd522567f, 0xab242f2e, 0x7fdd70a4, 0x1c9d038c,
|
||||
0x2f923f85, 0x27f1b2c5, 0x7f812781, 0x7f818181, 0x7f9603cb, 0xc32881af, 0x5ad1f2a1, 0x61b99a32,
|
||||
0x57cd3bfb, 0x7ffc6fd7, 0x9e81c281, 0xfea25f7f, 0x85a2bfe7, 0xf3ef5107, 0x7f81565e, 0x1d447f81,
|
||||
0x814e817f, 0x40853b00, 0x6caf3f7f, 0xe13a7fe2, 0x816162c5, 0x81b4e66f, 0x81e18fb8, 0x7da87f66,
|
||||
0x7fef667f, 0xea2ba1f4, 0x408181d2, 0xba81676f, 0xdd817481, 0x7f9d7fff, 0xd6544752, 0xb1bd61ce,
|
||||
0x3aa26a56, 0x817e9bf8, 0x8158964a, 0xa0d3253c, 0x308130f6, 0x501d7f23, 0x367f34d2, 0x818581eb,
|
||||
0x817f4743, 0xdf9e81c8, 0x5c7f13a4, 0x12182965, 0x9cca6c7f, 0x47817f4f, 0x0cbd2918, 0xb05cf048,
|
||||
0x28810542, 0xe8a869a0, 0x7fb7682b, 0x3f7fb5d1, 0x813dc581, 0x2ea58dcb, 0x4a4e6881, 0x687681b8,
|
||||
0x665c057f, 0xa78127e0, 0x81b28166, 0x817f686e, 0x7f261637, 0x81ad7131, 0x54817f68, 0x2eae6470,
|
||||
0xf110f558, 0x8aa44bc2, 0x81f12d55, 0xf37f35cd, 0x7f68679f, 0x3fc481db, 0xe02a5a41, 0x817f8130,
|
||||
0x919b6c25, 0x14749815, 0x9d7f6c60, 0xc5777fa4, 0x7f8db49b, 0x524a623d, 0x2ef59cc0, 0xd18f4a24,
|
||||
0x37707f92, 0x4af98126, 0x81b43c76, 0x7f965818, 0x7f81c786, 0x057f7f49, 0x1ab3ef1e, 0x1781eb8a,
|
||||
0xf0909181, 0x656da3b4, 0x5181cbb9, 0x81e9a237, 0x8ace577f, 0xd19f2c0c, 0x86a7817f, 0xb7628100,
|
||||
0x817fcfa2, 0x7f3cddf4, 0x744a96d2, 0x19967ffb, 0x7f7f813a, 0x81f2b043, 0x7d46cd81, 0x7f006e7f,
|
||||
0x363a7c9b, 0x9f812dda, 0x77c77f1c, 0x8172274d, 0xa7ba8181, 0xff7f1ea8, 0x817f4e7f, 0x377f9ad7,
|
||||
0x81447f7f, 0xf81f3623, 0x58ce7f7f, 0x8a4a208f, 0x4d938115, 0xb0ac7029, 0xf72b23cf, 0x467f9dd3,
|
||||
0x81819130, 0x62bb7fc4, 0x84b4b190, 0x2781b070, 0xdc81cda4, 0xcb8145b3, 0xda812b38, 0xda307f7f,
|
||||
0xafbc8158, 0x7fcb7205, 0x47e781ae, 0xc056245f, 0x81997f56, 0x51d9d6f7, 0x7f895c4e, 0xb7814beb,
|
||||
0x7f658181, 0x757f81bf, 0xdb81816e, 0x582edcb2, 0xb9860711, 0x587f81ca, 0xa45a7f0b, 0x81e68a35,
|
||||
0x7f7f3b0f, 0x3c233956, 0x7f5f3e44, 0x81ba915e, 0x9ea4dd81, 0xc323e1bc, 0xb1ac0322, 0x5e7f0e2b,
|
||||
0x6b2fb26b, 0x0e92812c, 0x667fc670, 0x7faccae4, 0xce8181be, 0x815e68c5, 0x273e7f69, 0x10f3e868,
|
||||
0x47a8b82c, 0xc8817f10, 0x617281b6, 0xe4a44714, 0xe19d4b04, 0xe8818333, 0x81e481fb, 0x58ab1e34,
|
||||
0xa68c8168, 0x815f4c12, 0x181be656, 0x817f147f, 0xc87f7f8b, 0x7f7fa1f9, 0x7c787f7f, 0x7f7ff8ae,
|
||||
0xcf9200a0, 0x7f65e492, 0xc37fbb89, 0xa234a37f, 0xa27f7fb4, 0x818a6fb3, 0x04817fb5, 0x2e7f636a,
|
||||
0x905db630, 0x812bbc0d, 0x8f1beb7f, 0x7f83bb5c, 0x81b96698, 0xbebc8152, 0x6669b181, 0x7f81452e,
|
||||
0x6861ca81, 0x8806d040, 0x4570d28b, 0x812681fe, 0x817e3b48, 0xcd3ddb3c, 0x21777fa4, 0x7f3d81cd,
|
||||
0xae0d8104, 0x8134b9fe, 0x7fb87fdc, 0x81ac7f6a, 0xbeec5c5d, 0x60cc4dfe, 0x967f82fc, 0x3a8187a2,
|
||||
0xe9577fa9, 0x818181a5, 0x8181b4aa, 0x81204f7f, 0x81708146, 0xbe08d127, 0xdec25eca, 0xc3e0db2f,
|
||||
0xf7817f4f, 0x7f5da797, 0xc9c44f90, 0xbc5b84c5, 0xda44a681, 0xcc9b810a, 0x38c5c3c1, 0x674294d4,
|
||||
0xe47fe181, 0xa4817f54, 0xcd06b70a, 0x5b3d7f7f, 0x7f137fbc, 0x38769bd6, 0x817f811d, 0x6bc4046f,
|
||||
0xba9a7f2d, 0xca91ea2a, 0xe881d10b, 0xf9810daf, 0x42e57f81, 0xc87c147f, 0x4f817f7f, 0x66c7bd81,
|
||||
0xb991549f, 0x816febec, 0xdc50fd71, 0xaab9aa83, 0x7fbd3952, 0x7f50c6cf, 0x1481f8a2, 0x3ff381ab,
|
||||
0xf6b0470a, 0x81e12ebc, 0x817f5f39, 0x3c7fb836, 0x79813781, 0x7fefa2c9, 0x7e81030d, 0xb849bf3e,
|
||||
0x81613b40, 0x08817f32, 0xbd5ffe64, 0xd688be81, 0x0166eab3, 0x81077f0a, 0xe5817f56, 0x91b83696,
|
||||
0xac8181d6, 0x5732a410, 0x40818181, 0x81915bb3, 0xa87f8145, 0x816a06ce, 0x033f7d7f, 0x86438281,
|
||||
0x3afc477f, 0x9cdf8102, 0x786d4383, 0x81ecfe7f, 0x89a7471d, 0x349c7fd7, 0x7f377f3a, 0x51d55daf,
|
||||
0x62337f61, 0x547f910e, 0x4bea99d2, 0xbfa9557f, 0x7f2ee96a, 0xcb9ccccd, 0x0fc3a681, 0x687f30fd,
|
||||
0xb07f4530, 0x83814334, 0x955bf3c6, 0x7f909981, 0x7b4e617f, 0x7659def0, 0x05565d7f, 0x81f271cc,
|
||||
0x31ca8581, 0x1afd6755, 0x818181ff, 0x7f8181ef, 0x7f7f77ce, 0x1d6692cf, 0x73c57f7f, 0xf083d53f,
|
||||
0x707f9c09, 0x1ce6813b, 0x17bcb0c6, 0x15b59ba7, 0xde7f817f, 0x7f925801, 0xeba91d81, 0x568190e4,
|
||||
0x7f817e72, 0x8d7ffa3c, 0x82f281fb, 0x548a7f7f, 0xe9777fa8, 0x407f16cd, 0x7e8167a8, 0xc5812c04,
|
||||
0xeae8e181, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0xf481c67a, 0x89b07fc3, 0x2e4d7b44, 0x9181818e, 0x83b88158, 0x8181739b, 0x4aa97f6a, 0xb36d7fa6,
|
||||
0x075bb9b8, 0xcf839c97, 0x20ba9176, 0x117a6a6d, 0xc35b571e, 0x8181fb5f, 0xec3a7fa9, 0x3eec7fcb,
|
||||
0x53622f7f, 0x8681a07f, 0x0ff39b65, 0xb6c82420, 0xefb381d6, 0xd5390961, 0xf1887f0f, 0xbec2abad,
|
||||
0x64d57f81, 0x2281057b, 0x1f7fe936, 0x99038181, 0xc1450b81, 0x65cc5386, 0xb886acc1, 0x109dde08,
|
||||
0x6417d0dd, 0xcb7f7f76, 0x9681b397, 0x53c39e81, 0x437fd46e, 0x751c3481, 0xdd4c813c, 0x38817f65,
|
||||
0xf0b39281, 0x31357fcc, 0xf37fae31, 0xba8181e7, 0xefc1e23b, 0xa8650162, 0xbb815838, 0xd6eeba30,
|
||||
0x8de2db81, 0xc01ca018, 0xed2dfb81, 0x7f84731f, 0x40633968, 0x557f2c0f, 0x5f5c6374, 0x41b02181,
|
||||
0x447f6e09, 0x8d56b3a6, 0xe47f81bd, 0xbe712a04, 0x3e7e78b2, 0x470a8128, 0x298981b3, 0xe65e2866,
|
||||
0x5bad817f, 0x78884acf, 0xb521287f, 0x81df4b81, 0x33818184, 0xb3d65f30, 0xc2ed7fbc, 0xc4811ccd,
|
||||
0xec92a11d, 0x5bc5817b, 0x57ad8103, 0x7f6226e4, 0x07c2d87f, 0x3d7fb181, 0xff73974c, 0x08815f61,
|
||||
0x50616fbc, 0x923ec16c, 0x2181c73a, 0xb8f88181, 0x047f7f7c, 0xe87fa53d, 0x399ca775, 0xef139839,
|
||||
0x7f217f43, 0x811415c8, 0x37f6b9c6, 0x7f7f817f, 0x11c6ad81, 0x81b3c88d, 0x0ca47c91, 0x024a7604,
|
||||
0x2dda2f7f, 0x811c5281, 0xc27f814b, 0x7f37a317, 0x42433381, 0xddfbc9da, 0x23737f7f, 0xe3acaecd,
|
||||
0x1d846dc3, 0x7f1bd4e3, 0x4055d37f, 0x7f1e9a81, 0x31d29025, 0x6d90cf64, 0xdf532fea, 0x1a3dc07f,
|
||||
0xf997ee19, 0x597f5460, 0x2a0b5b30, 0x5751a381, 0xd27f8489, 0x7f1f9ae4, 0x2bd07f7f, 0x5281923c,
|
||||
0xbb7fae6b, 0xd344db7f, 0xb0431bc3, 0x33744f44, 0xd2996981, 0xce048861, 0xd57f36c1, 0x1181819f,
|
||||
0xe7592aef, 0x7fbe817f, 0x177f7f04, 0x2cc78381, 0x27558149, 0x7f64746e, 0x2bb97dc7, 0x10aba652,
|
||||
0x02f70c7f, 0x7fd8ae81, 0xcd81f07f, 0x9352c65e, 0x344a817f, 0x4f282881, 0x3e2d23fe, 0x69517fb3,
|
||||
0x7fd1e4a6, 0x3bf47f7f, 0x33909ff6, 0x81aba30c, 0xaa8181dd, 0xf6f36f81, 0xb57f7fa4, 0xe8b6a572,
|
||||
0xb0ac3a81, 0x81817413, 0x104de181, 0xef977fcf, 0x2054acbe, 0xa9013b81, 0x4a7f34fe, 0x49747f6d,
|
||||
0x5ad74c74, 0x0e582cc5, 0xa7ea83c9, 0x7f7f750e, 0x38847f81, 0x41817281, 0x3344debd, 0xd229728c,
|
||||
0x027f839f, 0x5d9fc4ff, 0xdb1e7f51, 0x439681ca, 0x1b81b581, 0x7f777f9f, 0xd6bfb07f, 0xb050814a,
|
||||
0x1981648e, 0x2cca7f56, 0x30814ab8, 0xc48143a5, 0x5bab3c8b, 0x7f97249c, 0xf7f09eb9, 0x074aa055,
|
||||
0xc86bbe54, 0x815ed4b2, 0x7fd0b28f, 0xd7e07470, 0xcf815cc6, 0x7e7f7f63, 0x81dfe09b, 0x4098da7f,
|
||||
0xc1d5a339, 0x7928937f, 0xa481bf6e, 0x81accdd5, 0x3b9c5cb7, 0x817f81a8, 0xc49b8a56, 0xec817f93,
|
||||
0xb7a9306f, 0x43555d59, 0x5f815d7f, 0xb79e7fc8, 0xc9d17fa5, 0x7f9999b8, 0x73467f81, 0x38627fd7,
|
||||
0x7a9138ab, 0xbd46b67f, 0x71b5823e, 0x5c81fbb3, 0x3d508f7b, 0x8173c630, 0xd4816172, 0x3f81d92d,
|
||||
0xcd6b9d7f, 0x72ee607f, 0x851bd2ce, 0xbc4e7fde, 0x1c6c8193, 0x9252b181, 0xcc217f96, 0x296d7f98,
|
||||
0x5957ae75, 0x817f14bb, 0xbf7b8191, 0x44d87f81, 0x352a84fa, 0x524a882e, 0xae66ac81, 0xbc7fc592,
|
||||
0x2cb1dc81, 0x42e56887, 0x7981b76a, 0xa5667333, 0xd2ab7e7f, 0xe37f817c, 0x26817f7a, 0x23570c5a,
|
||||
0x1a685290, 0x814bb476, 0xf6527bb0, 0x7b810805, 0xe63cd272, 0xc1d97fb5, 0x1e8124d3, 0xd34f157f,
|
||||
0x367f82a6, 0x14819e1e, 0x39226087, 0x818681da, 0x8121417f, 0x81186358, 0x57e88e9c, 0x077f6e37,
|
||||
0x96087f7f, 0x9a82c77f, 0x0781c4b8, 0x81217f81, 0xc565447f, 0xab41447f, 0xf7915a1f, 0xe58b5a81,
|
||||
0xcb817d13, 0x81819181, 0x0d4cc8ee, 0x63b4f36e, 0x587f81b3, 0x47947981, 0xcc7f7f88, 0xa3816781,
|
||||
0x2581a481, 0xc750aa5c, 0xcd440151, 0x4d684b81, 0xd8a6b50f, 0x4f7fa9b5, 0x3f1b93cf, 0xb58f812e,
|
||||
0xaacd817f, 0x136d7fa9, 0x81b581b9, 0xb75d7fd5, 0xd29a8133, 0x337f8ec0, 0x75ac901a, 0x0a6d7fb2,
|
||||
0x2d208186, 0x8186b97f, 0x0cb42af4, 0x03ac9e7f, 0x1167a77f, 0x7f19fad8, 0x2d4781b9, 0xf97f6658,
|
||||
0x9081bc81, 0x6f7f4087, 0x8e527f8d, 0x6873d688, 0x817fbc88, 0x4b81608a, 0x22814ea0, 0xe97f81c5,
|
||||
0x10bb3de5, 0x818115ed, 0x421b3081, 0xa17f6e52, 0xf46d7f09, 0xd87f8185, 0x68a79c2b, 0x7f7f837f,
|
||||
0x4d7f4967, 0xc8507f81, 0xc67881f1, 0x0dad027f, 0xad7f8125, 0xa47fb3aa, 0xc74ceb01, 0x373974a7,
|
||||
0x4e7f8153, 0xa87c423b, 0x2ad75081, 0x4a817f35, 0x357f5517, 0x55816581, 0xcb7fa97f, 0x7b797f7f,
|
||||
0x504ee981, 0x7adecc6b, 0xce338197, 0xc49ab9bd, 0xe3877f3e, 0x7f817f81, 0xea3624fa, 0xfd889681,
|
||||
0xfd7f7ff9, 0xa6732f2f, 0xa81b81e0, 0x817f7fae, 0xbcb4b010, 0xc37f7ff4, 0x9a52819e, 0xc730eaec,
|
||||
0x437f817f, 0x8865815a, 0x53337f64, 0x2d817f8f, 0xd7e2417f, 0x2b6ec637, 0x3d819d41, 0xe4877f52,
|
||||
0x26a26a63, 0xdc74a867, 0x71433c4d, 0x94b02e35, 0xd6a155f5, 0x3cd37f73, 0x5c89997f, 0x569e7f03,
|
||||
0xe0adb53a, 0x49d78e81, 0x9c7f22a4, 0x01385b17, 0x9081db0e, 0x3a8c46a9, 0x1e016448, 0xfebdc287,
|
||||
0xf072dec5, 0x9f816429, 0x4bb0817f, 0x5a0ac21a, 0xf74ca8aa, 0x82811b7f, 0x1c08bf81, 0x1fe36842,
|
||||
0xbc7f8181, 0x373b7f21, 0x097f8150, 0x54935b9a, 0x3a7f1381, 0xceb77ff1, 0x55ab4e7f, 0xcb1ab47f,
|
||||
0x9f17477e, 0x7374b97f, 0xb2512a9d, 0x8148d0d2, 0xc057444f, 0xe94f8162, 0x7f816e40, 0x1da3d14d,
|
||||
0xb458eb23, 0x7f907a47, 0xc8657f81, 0xc4f36ba1, 0xbc8181e6, 0x81efd081, 0x53607fa6, 0x51368181,
|
||||
0x32b84fdc, 0x8127b27f, 0xd2247f5c, 0x56f77669, 0xecfdfe9d, 0x697fc681, 0x7f7f2781, 0xdb7f371a,
|
||||
0x1b8181fb, 0xea78f17f, 0x5a187f7c, 0x7f7c705e, 0x2b58816c, 0x757f607f, 0xc87fc97f, 0xec5b66a6,
|
||||
0xb89574c0, 0x77ccb739, 0xe1fd2aa7, 0x7f45d8cf, 0x20283a95, 0x5f45909a, 0xe581748f, 0xf97fab7f,
|
||||
0xc8e0357c, 0x73c7da4b, 0x7f0e812e, 0xba01c67c, 0x0324fb81, 0xea2ee62f, 0x253e88ae, 0x077f81cc,
|
||||
0x817fc781, 0x94f17fff, 0x0ed6f0f4, 0x84677f8f, 0xb598462a, 0x81a87fec, 0x3dbaa47f, 0xbd62fd81,
|
||||
0x277f81ae, 0x0f43ab6c, 0x07c1617f, 0xc7bc8181, 0xba2460fa, 0x6d0df181, 0x92dfa27f, 0xf7d1033d,
|
||||
0x53b71860, 0x81b28146, 0x6564b13a, 0x7fcf0981, 0xf9004e81, 0x10229f55, 0xdb7f7f05, 0x281845aa,
|
||||
0xca6ddfab, 0x6481d77f, 0x4e4120ab, 0x81006b47, 0x518dce81, 0x907f8145, 0x4d5e7f2a, 0x064076ad,
|
||||
0xdc1c8e81, 0x354b2545, 0xc8426706, 0x4447b281, 0x21daad30, 0x6d21a202, 0x04249781, 0x19ac7063,
|
||||
0x3a7f00a0, 0x81f41c2f, 0x523c5b36, 0xb6817f43, 0x3f817f86, 0x811234c1, 0xd77fd8a3, 0xc2f2927f,
|
||||
0x557f7fb1, 0x41d9e881, 0xeec06dde, 0xe4633caf, 0x3c72fd19, 0x9cffc57f, 0x4b7c8659, 0xcbf6e57c,
|
||||
0xd9bb7f7f, 0x5fdd819f, 0x69ecd881, 0x7f817f90, 0xe68181f7, 0x10811439, 0x2a7a2c37, 0x66438157,
|
||||
0xbc634044, 0x3fe98163, 0x81ac8166, 0x8143811d, 0x364f63d5, 0x377f4e81, 0x24755bb8, 0x17adfc5a,
|
||||
0xdedea8e0, 0x2e6e9e14, 0x0e816188, 0xe56cbe81, 0xb9c85cca, 0x817fb120, 0xae7f8181, 0xe37f7f7f,
|
||||
0x0827d377, 0xdc7f815d, 0x9a2a5625, 0xb2ab4736, 0x817f2274, 0x817fb29c, 0xdcece2cf, 0x5bddd988,
|
||||
0xcc1e817f, 0x24793971, 0x40ea214f, 0x326f7e64, 0x1a9e3ed0, 0x268c1a7f, 0x314b8548, 0x0f7f8701,
|
||||
0x347f7c7f, 0xb9ca13bb, 0x3492187f, 0xc67fa67f, 0x7f49814e, 0xaa7f91d1, 0x18d53577, 0xc88b53a1,
|
||||
0x20af691f, 0xe6853f81, 0xcf5d08bf, 0x81705981, 0xe30d47f0, 0xa8c17fa5, 0xdb817fb4, 0x12818172,
|
||||
0x83433d81, 0x4a7ff6e4, 0x327f937b, 0xbb6509d3, 0x2c02fc7f, 0xf3b7feb4, 0x415d60ab, 0x136551d0,
|
||||
0x0e818181, 0x832eb165, 0x3c7f7f82, 0x817770ae, 0xf9b3a525, 0xddcb3d02, 0x008b6181, 0xdbe55445,
|
||||
0xec8137cb, 0xf5e8f76c, 0x61815ac9, 0xc8810fb0, 0x35547799, 0x0d81a035, 0x1c3eea42, 0x88d77f96,
|
||||
0x2948677f, 0x0852db6e, 0x42367f74, 0x0d7f867f, 0x3a7fff81, 0xd1d1d271, 0x02a981e5, 0x2bfd2988,
|
||||
0xd3818199, 0x4e7f4010, 0x09297fd4, 0x7f816b68, 0xe60a05ca, 0xeb81c97f, 0xa2cf5e81, 0xfd7f7f52,
|
||||
0x07057f53, 0x8672147f, 0x389bd281, 0x3a855c79, 0x41328181, 0x21fe5e81, 0x073f7fc3, 0x3654f170,
|
||||
0x24bc7f7f, 0x4f816ee1, 0x67427f7f, 0x8140676d, 0xef53e53d, 0xa48bce41, 0xdb5832d8, 0xf64a58dd,
|
||||
0x3d3e70ab, 0x53ab4a16, 0x137f2023, 0x74569bad, 0x017f8138, 0x81902bed, 0xbdca8f24, 0xa34d8193,
|
||||
0x81cf7f90, 0xab43b32b, 0x003f7f49, 0xbf3d4570, 0xbce67f72, 0x7c197fc0, 0x5376d47f, 0xd53d7fa8,
|
||||
0x7e9bb47f, 0xd72aa0f2, 0xde818138, 0x5cc3a981, 0xd57d9c5d, 0xecb2d6a9, 0xf97f81e4, 0xb67f8f33,
|
||||
0xb92b577f, 0xc483f97f, 0x469d9481, 0xd4868181, 0x7031e886, 0x95b4ca8f, 0xc6d4bd93, 0x117f227f,
|
||||
0xb67e7fe9, 0x7fb35540, 0x07d01f81, 0xb4ce9b40, 0x1b118681, 0x7f657bfc, 0x2bbe817f, 0x287f176e,
|
||||
0x6c96bb02, 0xcfff9e59, 0xec7f647f, 0x817f81b6, 0xabd131be, 0x819081e8, 0x4724b87f, 0x5f817f3e,
|
||||
0x62b99368, 0x81818110, 0xc99ad3b2, 0x25816734, 0x0702743f, 0xe1b4812f, 0xcb787f81, 0xac864257,
|
||||
0xcb928181, 0x55e27b81, 0x26f281a4, 0x63898181, 0xbbe1e54a, 0x58d2f881, 0x49e3cc81, 0xf7ea287f,
|
||||
0xe9827f82, 0x81a69a5c, 0xdd81d292, 0x7f935122, 0xd17fdc3f, 0x321a8fa8, 0xfa819a81, 0x1fdb7f79,
|
||||
0xc6cf9b09, 0xe181547f, 0x0acacab3, 0x0e7f72ca, 0xf562e081, 0x13d3827f, 0x5692de7f, 0x35b04a5d,
|
||||
0xdd818e3a, 0x6b7f6160, 0x29303878, 0xc7687fbf, 0x38508173, 0xa6bd37be, 0x0d339881, 0x5e198614,
|
||||
0x67f745e5, 0x81081a7f, 0xa3c77d84, 0xaadb7f81, 0x578d7ff0, 0x75a0b54e, 0x0d01587f, 0xa1cb624b,
|
||||
0xf94181b7, 0x819d3a81, 0x37258135, 0x5aa87f3b, 0x0e7f7fd0, 0x5b7f817f, 0xda4ce9b1, 0x40917f81,
|
||||
0xc57f7f3e, 0x4115b391, 0x627b816f, 0xa8575f49, 0x99ec8124, 0x33db907f, 0x4973c07f, 0xc9b71548,
|
||||
0xde548177, 0xb608bfcc, 0x1d0787bd, 0xd37f793a, 0xfe847f7f, 0x7f3f4111, 0x3dd5de99, 0xbedb817f,
|
||||
0x4c65c24d, 0x5d2c813e, 0xd901b37f, 0x974c5c92, 0x7f7f7f7f, 0x812b7f81, 0x0057836f, 0xf0778181,
|
||||
0x2881f3c5, 0x35147581, 0x817fb31a, 0x7e7ae063, 0xfa1e4184, 0x7f1e787f, 0x529c5123, 0x553b9a81,
|
||||
0x12de4220, 0x1fa92f8f, 0x4d66a52a, 0x554a2f40, 0xad3f637f, 0xbc81257f, 0x04f8976a, 0x2aa1fc7f,
|
||||
0x3881b3cb, 0xcfc6ee25, 0xa37f5f60, 0xffddf08e, 0xce817f2a, 0x824f4685, 0x17b8a353, 0xa97f8a81,
|
||||
0xfc81dc7f, 0x7f81a5b0, 0x26fab529, 0x811085c4, 0x031c5a76, 0x817d7f95, 0x1a8181cc, 0xe6aa0f7f,
|
||||
0x1e454a7f, 0x1c98818c, 0x2b5ef528, 0x7f2b7f5a, 0x4ec7adbe, 0x6981f15d, 0x7f1d4b23, 0x0f337fb9,
|
||||
0x1db1b85f, 0xdb7fbe3d, 0x1eb3aff5, 0xba2a7f96, 0xd6a0761a, 0xa97f117f, 0x341781f3, 0x9981817f,
|
||||
0x56dd7f44, 0x431981b3, 0x115d7f7b, 0x7f5a818b, 0x943248aa, 0xb78a45db, 0xc2046981, 0x7a330a6f,
|
||||
0xedb7817f, 0x81198df6, 0x29e37f9d, 0x74818143, 0xe5147f86, 0x7fac4869, 0x39e2bb4a, 0x422b983d,
|
||||
0xdb949bec, 0x2c7f5181, 0xe7539781, 0x7f818ca1, 0x2e815f79, 0x2b199727, 0x28ea3181, 0xe65c7fa5,
|
||||
0xfda2810a, 0x7b227ff5, 0xc259caa9, 0xdf9e7f4e, 0x1c7fbc49, 0xce892118, 0x083b81e0, 0x7081b06f,
|
||||
0x0c7f507f, 0x637fae31, 0xf2967f40, 0x810181fa, 0x0878b37f, 0x98817f4d, 0xdaa946cb, 0xae813eb4,
|
||||
0x67bb97b4, 0xe156b2a5, 0xc97f6dcc, 0xa90bd681, 0x14817f81, 0x7f816058, 0x1d587f76, 0xea425425,
|
||||
0xd62e4781, 0x477fdca5, 0xcb667f7f, 0x8169daa2, 0x631cc881, 0x1381fb76, 0xf27f817f, 0xb297434b,
|
||||
0x3b1d7bae, 0x89b8d27f, 0x947f8bbe, 0xbc81d770, 0xf94f0724, 0x3cdc817e, 0xf981817f, 0x1b75245a,
|
||||
0xab20818c, 0xf2811c81, 0xfc78c27f, 0xb77f0881, 0x838132d7, 0x20818381, 0x127f815a, 0x8e9e267f,
|
||||
0x1fa87fc5, 0x1da2bf47, 0x0f81939b, 0x118ba016, 0x52c07c6d, 0x697fdd00, 0x0e617f92, 0xab812b56,
|
||||
0xce754988, 0x5e8181db, 0x22814b35, 0xfda981f5, 0xa981e85b, 0x477f93e0, 0x1e73d681, 0xdc748147,
|
||||
0x01a1479b, 0x6d4e8164, 0xd37f8b7f, 0xbf6b7f6b, 0xc68110bc, 0x81819156, 0x257f497c, 0xb07fa0c3,
|
||||
0xcac10d73, 0x39b9284d, 0xad817fd5, 0x7f8a5781, 0xe37f7f2d, 0x7f7fe7d7, 0x186d2c39, 0xc4813181,
|
||||
0x0ac8a47f, 0x569d4cd2, 0x7f3d597f, 0xb87fbe59, 0x35117742, 0xc18c7fa7, 0xb03bd7ce, 0xd77f6829,
|
||||
0xec3a7281, 0x81285968, 0xf8a69dd1, 0x81e38181, 0x4e1dbe77, 0x783d4e9e, 0x50bc7f85, 0x4181dd76,
|
||||
0xa61a4bac, 0x627dd07f, 0xa08168a3, 0xfefdde94, 0xcdc19d05, 0x39817f7f, 0x18d78181, 0x631681cd,
|
||||
0x91d2e1ac, 0xd2bfce81, 0x01f1817f, 0x810681d0, 0xccc18c5a, 0x7f0b617f, 0x563a8345, 0x917f26e1,
|
||||
0x87147fad, 0x88161a8c, 0x1481928f, 0x5c96b841, 0x1b7ff206, 0xf1bf4759, 0xc6efdc5b, 0xa1078181,
|
||||
0xf52b428b, 0x817f7f10, 0xdcd1c062, 0x0c863afa, 0xe26a27b1, 0xbd5a967f, 0xe8047fa4, 0x5be68181,
|
||||
0xef7b2e81, 0x60f47ff1, 0xf9761c7f, 0x8f297a94, 0x2c81096a, 0x7fc40ec0, 0xbb7fb3b8, 0x4494cae8,
|
||||
0x5847c916, 0x7d728183, 0xe74d7f81, 0x818d426b, 0x0006ba4d, 0xb4bd9ba6, 0xe00a813e, 0x68032681,
|
||||
0x18877f81, 0xb46281d3, 0x3381113e, 0x6a7f57f7, 0xe2a7194d, 0xcb7f7fca, 0x62c66981, 0x5181e082,
|
||||
0x6acdde81, 0xbcbbf27f, 0x3e3ea181, 0x81e6c17f, 0xf854097d, 0x307d58c8, 0x2e9e81a7, 0x93ce81ce,
|
||||
0xcad4d5a2, 0x1272b081, 0xb84ccf3b, 0x007f9d7f, 0xe294efb0, 0x830c7fb7, 0xca07b17f, 0x3b9a88bc,
|
||||
0x09350bd4, 0xae007f48, 0x3a6a8181, 0x38777f48, 0xce7f7f12, 0x9781570e, 0x3766817f, 0x4b607f7f,
|
||||
0xe38c2477, 0x9cc64b35, 0x157f0742, 0x6881d981, 0x53c88c81, 0x9f8974ae, 0xa77f8319, 0xfb527fbc,
|
||||
0xdf865f22, 0x407f8117, 0x5f5a4c24, 0x14207f77, 0xbfe8e081, 0x667f7f58, 0x31f17f37, 0x467f307f,
|
||||
0xed7f7f48, 0x2bc96b81, 0x04816572, 0x8137a081, 0xea407b02, 0x7f06814a, 0x097c819a, 0x3ef22003,
|
||||
0x077d1469, 0x32e06181, 0x1e7fa7de, 0xc7508658, 0x2d58ddad, 0x921d7e79, 0x3af381d7, 0x31b971a9,
|
||||
0xa7b38de5, 0xf274be04, 0x9690d41d, 0x857f4dff, 0xcf7f5cb0, 0x8117bc7f, 0x1b7f4a91, 0x288181d6,
|
||||
0x3f4d7b12, 0x7f7f979c, 0x4581b06d, 0x7faf7f81, 0xaf1dac81, 0x4d068bb7, 0x367f50bc, 0xdb7fbd41,
|
||||
0x4f7f7f38, 0x81ac15f8, 0x2c3725a9, 0x98577f4e, 0xb20f8197, 0x6f816981, 0x26c87aa2, 0x1781c2a1,
|
||||
0xf5449d24, 0x14cc2651, 0xe33d7f7a, 0x4d7f7ff2, 0x3554512e, 0x25c23b96, 0xde7f8d7f, 0x44bc34b3,
|
||||
0x2a7f3050, 0x1aec3857, 0xada98181, 0x2644d0ee, 0xcbc2333e, 0x7f8e7f87, 0x4aa03181, 0x11b736b7,
|
||||
0x3abb2381, 0x2f96817f, 0xe1476381, 0x83ca2b85, 0xfc3281ba, 0xa0d62222, 0xefbe354f, 0xa022be81,
|
||||
0xd77fb435, 0x17538367, 0xee85d87f, 0xa4a66071, 0xc8402561, 0x818a277f, 0x9d4ddd7f, 0x23bf327f,
|
||||
0x32ec1b81, 0x8c138d68, 0x237f1a15, 0x4a0e2b7f, 0x5b7f4981, 0xba747f29, 0xa1d37848, 0x0c7f03df,
|
||||
0x923f1d7f, 0x8faa7c7b, 0x35068194, 0x60d2f465, 0x27606681, 0x7fc37f8a, 0x31bd3bd5, 0xcf58445f,
|
||||
0xdcce241b, 0x88d9816c, 0xb9b2a7d2, 0x2205817f, 0x01ec81af, 0x4581c8a8, 0xdb0f1b6f, 0xca0628cd,
|
||||
0xf63881c7, 0x7fa3697f, 0x5246567f, 0xb77f7fa1, 0x297f897f, 0x4cb8c84b, 0xce9e977f, 0xbf811e0a,
|
||||
0x219d746e, 0x7adcfa81, 0xbcce1a61, 0x28987681, 0xfa7faeeb, 0xdb454581, 0xa5a5919d, 0xbf85a57f,
|
||||
0x34b68581, 0x925c812d, 0x189a4c7f, 0x3ad03756, 0xf8c97f13, 0x97227f81, 0xfd7f070e, 0x7c7fd41e,
|
||||
0xfe81b327, 0x81a6627f, 0x0016cf64, 0xded56665, 0xcc5fbd10, 0x81112f30, 0x4c6c877f, 0xefb9b53f,
|
||||
0x33bc2181, 0x5e797cc7, 0x2a10c047, 0x917a7f81, 0x3a81817f, 0x8197ccbd, 0x73df4f32, 0x264f522b,
|
||||
0xc1e9528f, 0xbb494681, 0xfbde6eab, 0x4f7f280b, 0x987a7f1d, 0x167f1f7f, 0x0b817f81, 0x8124a87f,
|
||||
0x927f8181, 0x7f81ad86, 0xc779dc81, 0xd0f681fb, 0xcfd8fb81, 0x19cf4981, 0xb87f4bf5, 0x4893529b,
|
||||
0x0040eb60, 0x7fc78bae, 0x474455dc, 0x0b7f7f7f, 0xa92f7f70, 0x7f3d9c73, 0x137fc699, 0xb4a3c6fa,
|
||||
0xcb7f5c1d, 0x9c259c99, 0xdf5183d9, 0xa62181a9, 0x9a273761, 0xa5e8cd8b, 0x41b4bf1b, 0xa9818110,
|
||||
0xb27f7f7f, 0x0e6bb7c4, 0x2e3e7f90, 0xa4c68172, 0xf73f7f7f, 0x81818164, 0x5299a157, 0x0a297f5c,
|
||||
0x9a46f024, 0x8178d77f, 0x02818181, 0x8181025c, 0xd96828bb, 0x77644a05, 0xb77e4427, 0x407fa650,
|
||||
0xab7f7f56, 0xaeeff9fe, 0x2f871d3b, 0xb8d7dd43, 0xe8817f7f, 0x7f4d0a27, 0x036a5b7f, 0xd4a3e67f,
|
||||
0x9122dd23, 0x627fb09d, 0x055c6534, 0x0689a1b3, 0x4f484a7f, 0x7f77b1e5, 0xc47f9d06, 0xd381c37f,
|
||||
0x3b819a7f, 0x4381827f, 0xed81817f, 0x95c3917f, 0x1b1e9ff3, 0x4c98cf7a, 0x81927f81, 0x703fd644,
|
||||
0xed5db0d6, 0x23225674, 0xf95a8187, 0xe6ac7f32, 0x488150e5, 0xf6b5e281, 0x29810449, 0xfdada97f,
|
||||
0xa6a19781, 0xfe36879a, 0xc96ac845, 0x3bf937bf, 0xa2812172, 0x84203765, 0x5f9e3403, 0x017f6a34,
|
||||
0x2cc6607f, 0x99877f7b, 0x2ad981d2, 0x81933581, 0xdf81338a, 0xd478056f, 0xfa7fa571, 0x1d818352,
|
||||
0x17c9db81, 0x9c7f7f52, 0xdf9bd4b1, 0x417f98a5, 0xca5517df, 0xc44b22d0, 0x58727f9e, 0x28817fd5,
|
||||
0x477f2fb3, 0x8b3f7f59, 0x0940765f, 0xa970b281, 0x0a0a7828, 0x81319e7f, 0x2dc34181, 0x4081668d,
|
||||
0xe7817fcb, 0x3641753a, 0xc17f3d81, 0xb88154b1, 0x73246eb5, 0xb0db8186, 0x09a2ec6a, 0xd82e2c71,
|
||||
0x336f7f81, 0xd6817f4e, 0x43814a81, 0xc579811f, 0xc0812803, 0x447fa1e0, 0x81b01b7f, 0x752152b3,
|
||||
0x4f15817f, 0xf97f61c0, 0xc99bd9b4, 0x2281307f, 0x607f8181, 0x7342b07f, 0x06bd9181, 0xb8b8bac5,
|
||||
0x3b3ca425, 0x8175e89b, 0xa50d7f4a, 0xbb56b781, 0x817fca6c, 0xac0fa7e8, 0x8e7894b7, 0x1d05cf50,
|
||||
0xf34f5b7e, 0xb65332e5, 0xc76e9375, 0x66d058a1, 0xe5a09f7f, 0xe493eaa5, 0x05fb81b5, 0x33817f14,
|
||||
0xee418105, 0x81a16f2c, 0x367fa849, 0x7aedbecc, 0x100f81c4, 0x81b2fb3c, 0xcc7fb181, 0x1b3ff096,
|
||||
0xd3b03a81, 0x4b815f75, 0x497f9c7f, 0x81015625, 0xa0817f81, 0xb0b8167f, 0x7eb7a3fe, 0xe97f6585,
|
||||
0x555a877f, 0x4b7f8181, 0x12a95e4a, 0xcb6f5afe, 0xd87b5fad, 0xbe655fa0, 0x8b81300b, 0xccb26381,
|
||||
0x39868173, 0xd6817fa0, 0xcf684e81, 0x7f3bae43, 0xfd8c20a8, 0xcfa0a31f, 0xc0307f81, 0x4e7f5d84,
|
||||
0xeb941e81, 0x6f77d070, 0xfa0b7f7f, 0x3cb88193, 0xf6818163, 0x3d5f8fbf, 0x40c4c73b, 0x4b7f4e4b,
|
||||
0xae968181, 0x818181b2, 0x81148181, 0x6b325381, 0xeae5582e, 0x7630307f, 0x1c0f6ba9, 0xa54a0457,
|
||||
0xd37fc693, 0x2345817f, 0xe44f1e7f, 0x3e4cc9cc, 0x3081babf, 0x817f45c7, 0x5265e57f, 0x427f81ca,
|
||||
0xe451817f, 0x8190b7de, 0xf0718981, 0x7f9ad381, 0xb9645da5, 0x7f7bed3e, 0x5ce37af9, 0x307f4ecb,
|
||||
0x0a7f8135, 0x81ffa7a0, 0x534fa1a5, 0x7f42d641, 0x0e501e61, 0x7f7f6edc, 0xc859c081, 0x377f85f7,
|
||||
0x0df9ab94, 0x817f7f7f, 0xfe7f7f81, 0xc1327ff4, 0xe84c842c, 0x7f1e5bc4, 0x1da77cf1, 0x1e817f53,
|
||||
0x5f9ab07f, 0x86209e4a, 0x204e81cb, 0x33c9928d, 0x275a2d8d, 0x7f810281, 0xfe7ff7ba, 0xfab77fea,
|
||||
0x658145e5, 0x73d57fd6, 0x01ec097f, 0x6d83207f, 0x49810cb5, 0xb5d9ce39, 0xf9e0436a, 0x629c81ed,
|
||||
0x48cf2c8c, 0x7fe37f7d, 0x5b257d81, 0x765f50b6, 0x2cc98403, 0x817fbebf, 0x127114c7, 0x347f287f,
|
||||
0xd2d72990, 0x81099d9a, 0x8143cac5, 0x8c452fc2, 0xd27f8f6e, 0x61957f25, 0xbc6fc54d, 0xce81f31f,
|
||||
0xd381787f, 0xac0e5156, 0xf081afc4, 0xb47f6f2f, 0xef811a81, 0x015ee99c, 0xd46de9d9, 0x30655a6d,
|
||||
0x09b2b87e, 0xaf13753a, 0xc6dd2a7d, 0xb9bd8190, 0x81537f7f, 0x669ff8ed, 0x5b810c81, 0x42e5a566,
|
||||
0x0c4174cd, 0xbdf9b7bc, 0x1c118e65, 0xe28f9b2a, 0x8c207f3a, 0x1e7f7ff4, 0xd6b57f1c, 0xf0131edf,
|
||||
0x38c9a381, 0x7f40817f, 0xb735817d, 0xa1a864de, 0xd99cbf57, 0x811a81f5, 0xb381e381, 0xe88e7fb6,
|
||||
0xfb4a5b89, 0x7fc006a3, 0x1c81653d, 0xbceaa09c, 0x8d7799d7, 0x4b407a81, 0xdc81bca1, 0x3437d76c,
|
||||
0xd79fe5c9, 0xd9adeea8, 0x163e8164, 0x2cc1b281, 0x3e81e9f1, 0x936504c9, 0x047f6f7f, 0xf981a776,
|
||||
0x203b2d68, 0x81dde8d1, 0x13e9e9bd, 0xe04108a3, 0x50304281, 0x486d7fb7, 0xbbff81ce, 0x31d43aa3,
|
||||
0x21813c7f, 0x81c8f989, 0x7f481024, 0x0a979b6a, 0x010081d7, 0x7792e641, 0x0654d37f, 0xa53da946,
|
||||
0x96c781d2, 0x41524ca6, 0x2ab2d581, 0x1c65bb79, 0xaaa494af, 0x81e09681, 0x3d7facf5, 0x04c3818d,
|
||||
0x2c1461c7, 0x788581d9, 0x1d3f2081, 0x49dfaec2, 0xfdf07f61, 0x40396d32, 0xc8835fbf, 0x7fb19f54,
|
||||
0x2fcc8142, 0xe7dcb4e1, 0x73c3a807, 0x7fc68137, 0x061e81ac, 0x81c70c7f, 0x1d817f73, 0xfdbace27,
|
||||
0xa5fa4081, 0x9b5575ca, 0xee81cc4b, 0xe85a7f53, 0x8daff2e0, 0xd1d1067b, 0x98ec3662, 0xa5818253,
|
||||
0xf8266d26, 0x38da26ac, 0x3f98912e, 0x4a10f144, 0xd845a345, 0x811bd786, 0x4b137f7f, 0x3427fa81,
|
||||
0xe981eb9f, 0x8f4ce6e7, 0x277f8181, 0xb0a5b03b, 0xd0633788, 0x4781b17f, 0xb27f3ee7, 0xd37f30b6,
|
||||
0x21c3a15f, 0x0492a4d0, 0x097a6c7f, 0x047f1c81, 0x994b7f81, 0x818ea981, 0xd46d7fca, 0x2b8a5381,
|
||||
0x9d424d91, 0x814d7f81, 0x32aa367f, 0x28ff1b73, 0xbea1dbde, 0x76db7f86, 0x248a8d37, 0x294b8136,
|
||||
0x6e8142d6, 0xec65687f, 0x66297f57, 0xdfb563b3, 0xd352ee79, 0x0689d45c, 0xc58123cb, 0x0b62bf8c,
|
||||
0x53c6d80b, 0x7fbc9773, 0xe4596e21, 0x2584812f, 0x1793b781, 0xaa815927, 0xb8659035, 0xccbe2281,
|
||||
0x5eabb4c9, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0xb339946b, 0xd7497238, 0xc36e8181, 0xd0816d3e, 0x7f7f2681, 0x6709bf21, 0x92e3bf81, 0xe54358cc,
|
||||
0x6bb5a661, 0x3a7f81f9, 0x8140f0fb, 0xc5a67f1c, 0x8d3381a5, 0x817f81c4, 0x72817fd5, 0xa72c76fd,
|
||||
0x68dc8b11, 0x9b5f4098, 0xc0f43965, 0x7f0ecf02, 0x7cfdd720, 0xe1a0ac15, 0x087fc3c6, 0x81b66e6a,
|
||||
0x410a893b, 0x81c491f4, 0x81d87033, 0x2056562a, 0x7f526cd8, 0x817fe90f, 0x81f78178, 0x81d93134,
|
||||
0x3699e0a2, 0x7fa181c9, 0x81f64081, 0x8f816b2e, 0x816ece59, 0xd548fd2c, 0xc4ee3919, 0x6d847f16,
|
||||
0x81e423c5, 0xfade4a40, 0x9e29eeb9, 0x7fe450f5, 0x5207177f, 0xf17f710b, 0x8cf291ad, 0xd09f9cf0,
|
||||
0x7f022d20, 0xb7ea81c6, 0xbb89cfa5, 0x1c6fd006, 0x7f8481dd, 0x81020914, 0xb14c81e9, 0x4d9b4f08,
|
||||
0x7f6064c8, 0x817f7fcc, 0x6b9819e9, 0xb253e7df, 0x724368fa, 0x816fe408, 0x7481a204, 0x0e6fec58,
|
||||
0x70449617, 0xf5a1da3f, 0x7f446e7f, 0x1005abce, 0x38664981, 0x8240472c, 0x10f52409, 0x818186dc,
|
||||
0xf7810be2, 0x9c2ad304, 0x81817f62, 0xcc40a43d, 0x5e6b81e7, 0x7ff0e2fb, 0x812a7f7f, 0xe3017f51,
|
||||
0x817f24dc, 0x85c49997, 0x863c7024, 0x7fc0ce3b, 0x637f8c81, 0x814c9dbe, 0x8ea08156, 0x2cf47f9f,
|
||||
0x5b55a9b1, 0x107d7546, 0xcd0381b9, 0xd8617f42, 0x7f81b8f1, 0xb506abd3, 0x745f2b2b, 0x7f81b7d5,
|
||||
0xbf7fdb20, 0x1ca3a610, 0x7fe5e9af, 0x20b37f08, 0x810e6f81, 0x9b7fe6ad, 0x1aa35d81, 0x46032cc7,
|
||||
0xad7f7f77, 0x8bd48245, 0x3dffaa81, 0x507f91d9, 0x907f9a25, 0x404b81b7, 0xc67f7f97, 0xb1eae864,
|
||||
0xed2a18c5, 0x2ea85ef3, 0x8153434e, 0x816daaf3, 0x7f03ad67, 0xa0ec264e, 0x640ca1e5, 0xf0818f2b,
|
||||
0xcbd27ff7, 0xa6a39206, 0x4ca811b9, 0x4c57a068, 0x8647e4c9, 0x7f438ad2, 0x7f945029, 0xc168e72c,
|
||||
0x7fed4781, 0x81f706cd, 0x62810667, 0x177f7f32, 0xb105d09c, 0x81fa7f16, 0x7f11fa53, 0xc8a6430b,
|
||||
0xececbb81, 0xe82644a6, 0x3e82f381, 0x28817feb, 0x90c18135, 0xd0f5810f, 0x507f0ba3, 0xfeb38808,
|
||||
0x8e6c66ea, 0x70a0c4c8, 0x8146912c, 0xb8e01cb1, 0x2b817f51, 0x64818207, 0x9f3a4e81, 0x7f4aece1,
|
||||
0x84aeafb6, 0xa17f8188, 0x9a7fe759, 0x1cbf5681, 0xad7f6bad, 0x818eebdf, 0x438181e9, 0xa7d07f22,
|
||||
0x75dbd318, 0x81817f3f, 0x5457bd92, 0x4b204ffc, 0x7f1c637f, 0x8b4c7ffe, 0xa4d97fe8, 0x6194ca37,
|
||||
0xb06c7f06, 0xad2f1ac0, 0xaef07f7f, 0x15818101, 0x22bf8d7f, 0x597f35cd, 0xb155ab0c, 0xc2838b0f,
|
||||
0x0f81f4e6, 0x181f7f81, 0x31e1817f, 0x6a2846c0, 0xede8048e, 0x2952c3e3, 0x09187fda, 0xce411cce,
|
||||
0xbbc197b5, 0x8181464a, 0x161922d0, 0xc37f292f, 0xbd736439, 0xc881b6fb, 0x81ba557f, 0x9da521f0,
|
||||
0x3e7f52dc, 0x3b3a813c, 0x7f544bc3, 0x46b1b3fc, 0xbeb18e34, 0x418156e1, 0xab22e318, 0x7fbe66e3,
|
||||
0x2237bfb9, 0x010081be, 0xc159b8df, 0xf449b264, 0x017f9e82, 0x9dbd7ff1, 0x09c7cbd7, 0x81bc537f,
|
||||
0x817fe1c7, 0x7f177f60, 0x7474bcdf, 0x3c7f6f70, 0x7f7f987f, 0x81812ecc, 0xca783f94, 0x64cc4da9,
|
||||
0xa0ba1d0a, 0x7aeec524, 0x43bb6b81, 0x1a338981, 0x206be419, 0x65819d5a, 0x7f81d73f, 0x81a67f36,
|
||||
0x22810442, 0x7fd4cef9, 0x6067ad85, 0xd6d17f30, 0xea7f8166, 0x457f7f84, 0x817f1bc8, 0x6b86be00,
|
||||
0x7f8bc555, 0x519d5bfa, 0xd07f97e4, 0x505c81d4, 0xf1eb8115, 0x72bdd002, 0x9da57f77, 0x817f12cc,
|
||||
0x81c03652, 0x441872fb, 0x554bdf67, 0x2e46f0d1, 0x81817f8d, 0x7ff5ce55, 0xd2ded97f, 0x817f67af,
|
||||
0x0539c336, 0xa37f2f7f, 0x8150637f, 0x8156d068, 0x827fbda5, 0x9f176b2a, 0x81878c0d, 0x81117f07,
|
||||
0xc0d15559, 0x869c81c4, 0x7fa498da, 0x46d5d102, 0x81f7a581, 0x816eca47, 0x67ad9d95, 0xccb49c2e,
|
||||
0x297c5440, 0x817f7cda, 0x9f55bd08, 0x2b7fc490, 0x817f817f, 0x377a8158, 0x91b5bf7f, 0xc87f4f21,
|
||||
0x977fc1d9, 0x7f3088f4, 0xe938b6ca, 0x41707434, 0x81a27fd5, 0xcf818116, 0x817f887f, 0x09cf3bc9,
|
||||
0x814edf19, 0x46206509, 0x34a36c81, 0x313fc7da, 0x92f34a81, 0x21e942d8, 0x365c16d1, 0x68907ff1,
|
||||
0xcb8190e3, 0x5e7f7fa3, 0x6fb78c98, 0xa1444250, 0x812bb37f, 0x83a26f0d, 0x739bab07, 0xcb2cea1d,
|
||||
0x668174ef, 0x288b8965, 0x95849a7f, 0xdc0981b0, 0xd875297f, 0x8153d5b0, 0x9d81e6dd, 0xae81d259,
|
||||
0xd981813d, 0x7f64ed35, 0x1f459b0f, 0xb8ebe4e5, 0x72812e81, 0x81909b54, 0x02f54fb3, 0xa87281f4,
|
||||
0x7f6381cc, 0x7f3cab5b, 0xb1958152, 0x814b9bfa, 0x81312b5e, 0xc2977f23, 0x347fbb97, 0x3b057fe6,
|
||||
0x40208144, 0x7f817fad, 0x54cb9deb, 0x37b34a28, 0x81781b81, 0x7f1b8130, 0x81e194f1, 0x882b7f1f,
|
||||
0x81dfc90a, 0xe4a97fa6, 0x9e81ab40, 0x971c2535, 0x5a7f7f3d, 0x47708116, 0xab778160, 0x81ac57e3,
|
||||
0xc2854dec, 0x81ea81a1, 0x8b347f7f, 0xe981d130, 0x93c70917, 0x817f812d, 0x81925016, 0x7f813953,
|
||||
0x52a5a5fc, 0x7a33d8e1, 0xcbd80281, 0x79df8101, 0x797afc87, 0x7581bbf0, 0x81567f94, 0x472ad4cd,
|
||||
0x23e49434, 0x4c7ffc03, 0x41b0717f, 0xcc67b7bc, 0x7f7f48bd, 0x8c1c81b9, 0x3a460d72, 0x9eb5fa34,
|
||||
0x03530615, 0x6c7f7754, 0x818167d3, 0x7fc22100, 0x7f3da881, 0xa24e7f61, 0x321bb411, 0xd981c827,
|
||||
0x76e8814a, 0x69ca13fb, 0x1390b881, 0xb1d08157, 0x7f4669a2, 0x7f237f13, 0x30268178, 0x0eb87f34,
|
||||
0xee1aaa30, 0x816596e1, 0x31813181, 0x88888243, 0x817de70e, 0x84811713, 0xd74d7f52, 0x06b17f35,
|
||||
0xed347f1e, 0x66d66058, 0x7f817fee, 0x035edde8, 0x819b18a6, 0x8e8198ee, 0x817fb5f5, 0x311e442b,
|
||||
0x957f941d, 0x4e6aa649, 0x7f677f41, 0x8d876acb, 0x7e7bb58f, 0x44c27fce, 0x6f39ec5e, 0x7f7f81d2,
|
||||
0xd43ba60f, 0x488150c8, 0x8181e9e8, 0xfe46ec02, 0xa2cc7fd8, 0x7f810781, 0x7f30c356, 0x22c97fc5,
|
||||
0xbcc97f40, 0xf2b2ce1e, 0x7b59537f, 0x46d994ea, 0x4ae2273a, 0x7f36d92d, 0x818ad281, 0xbf7f2b7f,
|
||||
0x8181abf8, 0x924f4eb0, 0xa62c81b6, 0x812b99aa, 0x447f817f, 0x2c7f5746, 0x0859b34d, 0x83e652db,
|
||||
0x7fc781ca, 0x819e5cfe, 0x55c5d07f, 0xb4bb3dff, 0xc24b8178, 0x93d28123, 0x15e63a7f, 0x7fc87f40,
|
||||
0x812fd94c, 0x991b8170, 0xb13593c6, 0x3b9a5119, 0x3b752581, 0x20b89686, 0xcac17f7f, 0x81237f6f,
|
||||
0x99ec643e, 0x02813100, 0x81124724, 0x3455436b, 0x8155cc81, 0x68136028, 0x81517f5d, 0xc57481f6,
|
||||
0xe4c88159, 0x81fba227, 0xaa814381, 0xb3818ebc, 0x457f8b51, 0x118181a1, 0x575b7fe7, 0x53571239,
|
||||
0xa7d35d43, 0x4b577f89, 0x1f817fc2, 0x6c7f9609, 0x9714813b, 0x81d723b6, 0x6c7f377f, 0xa3cf6826,
|
||||
0x08b27f45, 0xbf7f8184, 0x814de5a0, 0x8181a2fd, 0x167f3c70, 0x8a7fa9e4, 0x65ac4b7f, 0x7fd367c5,
|
||||
0x81112d7f, 0x8170811d, 0x817f589e, 0x8b7f7f44, 0xba2ab081, 0x527f5bf6, 0x2faad6e3, 0xc335a82e,
|
||||
0xb862c003, 0x81715776, 0x5081817f, 0xdd7585c0, 0xb7989d7c, 0x367f81b1, 0xa0818129, 0xc6f37f55,
|
||||
0x5006be1d, 0x817faac3, 0x7e667f81, 0xaf2c7f99, 0x347f897f, 0x2bb1aac8, 0x8112eee8, 0x7f5c62de,
|
||||
0x007f14d1, 0xa1a2140b, 0x95446419, 0x5e7fc82a, 0x7a7ff07f, 0x81fe7d31, 0x010a8149, 0x7f3e7fb6,
|
||||
0x397f81ae, 0x7b7f7fba, 0x797f5981, 0x7f7f170a, 0xb9cf087f, 0x0be6cb28, 0xdd97cf4e, 0x92520625,
|
||||
0x817f3ae4, 0x6c81c381, 0x440cc5ae, 0x2b7fb8b7, 0xe94a2081, 0x81967f4a, 0x7f817f9d, 0x7f81a7a1,
|
||||
0x815b52cd, 0xd59d57f6, 0x899e827f, 0x7f7f9aa0, 0x52819e7f, 0xda3a2223, 0x8b81073c, 0x818132d0,
|
||||
0x55638800, 0x9804bcb5, 0xc3810a7f, 0x6ddab6e3, 0x7fcae34b, 0x7f814a2d, 0xea7fed91, 0x3b9bb0d9,
|
||||
0x87d97f1e, 0x16535739, 0xcc2f7f81, 0x7f98813a, 0x5873bbe6, 0x241781f3, 0xbcc7cb33, 0x7ff69847,
|
||||
0x8d11c0dd, 0x9ac9d787, 0x66cff992, 0x7f7fc312, 0xaa4fe681, 0x39967f26, 0x201c7f7f, 0x9a7f4849,
|
||||
0x5768a814, 0x814d731b, 0x81917f81, 0x6eea7d7f, 0xad7f65fe, 0x3d3e81d3, 0xae672981, 0x7f1c81a0,
|
||||
0x9881053a, 0x81a16307, 0xf64c4063, 0xbc7b97d9, 0xa29dc0a1, 0x8161189c, 0x7478b3db, 0x87b330e1,
|
||||
0x817f0598, 0xcf422b0b, 0xc29b7ac8, 0xc2817faf, 0x8185581c, 0x81d0b675, 0xc93f7fa9, 0x814e3a02,
|
||||
0x815d6511, 0x5d81075f, 0xd768c13e, 0x89815437, 0xac810d85, 0x1a7fa5e9, 0x14a6bb81, 0x54531dfd,
|
||||
0x81dafd24, 0x978133dd, 0x818130be, 0xb67f5bb3, 0x2c7f4179, 0x81b281f4, 0xf3a463fb, 0xda36c4d4,
|
||||
0xb17f811d, 0x37ca75f1, 0x53257f7f, 0x3ef0208b, 0xdc71817f, 0x978181ef, 0x7f81d17f, 0x1197810f,
|
||||
0x277f7f47, 0x7ff6b1b0, 0x4562fca6, 0x725d89e3, 0x888197cf, 0x05477fd3, 0x4988077f, 0x81cbb5d9,
|
||||
0x047fcaa8, 0xdb7f7fc9, 0x81ccfe5f, 0xd91643ff, 0x7f3f7f7f, 0x03815ed4, 0x697c7f81, 0x815b814d,
|
||||
0x287f0d32, 0x7881a041, 0x247f95f4, 0xc87048e8, 0x3d815e7f, 0x71ba7f0b, 0x50815075, 0x7e53dc30,
|
||||
0x3f7755fe, 0x1d032571, 0x818cbaf0, 0xbda97f50, 0x7ffc0aad, 0xbf457f42, 0x66b48f81, 0x072c3f1c,
|
||||
0x433d9cfc, 0x71077f76, 0xac2d5564, 0xdc523811, 0x7f54a538, 0x7f707f00, 0x8c10a6f1, 0xf4a581d3,
|
||||
0xae875d1d, 0xd37f9747, 0x8124b869, 0x81a17745, 0x61bb8b7f, 0x227f8129, 0xa77fc381, 0x997f8119,
|
||||
0x817f812b, 0x81a78836, 0xdd557fc6, 0x907f6418, 0xbfa9accd, 0x4f815762, 0x97818181, 0xa0524fa6,
|
||||
0x815b5721, 0xc77f7f7f, 0x7f725efb, 0x437f614e, 0x81f15c6f, 0x7fb77f28, 0x473f7a1c, 0x7f81d71b,
|
||||
0x7f5133e9, 0x7cd17f32, 0xfb7572e3, 0x16c35e62, 0xc961a649, 0xdec47c37, 0x6d442844, 0x386b4616,
|
||||
0x9583c437, 0x81d57fae, 0x8114357f, 0x818f9db4, 0x7ff181d7, 0x773fb601, 0x4032fb29, 0x8613b71f,
|
||||
0x7f81b3f4, 0x1256f605, 0x297f817f, 0x9a7f2996, 0x5d81b87f, 0xc8907ffd, 0x817f7f35, 0xf6719ac7,
|
||||
0x7b7f523d, 0x18d8ca2e, 0x2681b97f, 0xc02a810d, 0x34cda181, 0x32e081bc, 0x016f7f08, 0x461bdaec,
|
||||
0x04330900, 0x633f61ac, 0xa3815204, 0xa534dda9, 0x7f81814f, 0x91a66329, 0x7f51aacd, 0x7ff681a7,
|
||||
0xabe476e8, 0xb57f9cae, 0x177f27c0, 0x7f2f8b0a, 0x1281a9ba, 0xd991af49, 0xea527f82, 0x9be09d46,
|
||||
0x28b2a2bc, 0x81c8a1d6, 0x5e1f4e71, 0x817f812e, 0x28b981cc, 0xb071cf04, 0x82cb8139, 0x81608181,
|
||||
0x819381ae, 0x818f90c8, 0x817f64c6, 0xd169c7c9, 0x8f548381, 0x87f7b03e, 0x6657817f, 0x81be8102,
|
||||
0x0d078c5f, 0x7ff97fd4, 0x7f814981, 0xb3bb7faf, 0x37c3dd6b, 0x4c6930b7, 0xb56ba479, 0xfc82520f,
|
||||
0x3494f934, 0xa2016c53, 0xc513eeba, 0x8c283bcf, 0x7fa6047f, 0x54319236, 0x42b2c19c, 0xf965c947,
|
||||
0x60777fca, 0x02767f47, 0x4921bb04, 0x81818fa9, 0x8eab7f5d, 0x81f4aa14, 0x1abdf97f, 0xbdaa220d,
|
||||
0xac368139, 0xddb1c212, 0x81d9fd99, 0x90b77f3f, 0x029ec8ca, 0x7f93d9db, 0x8563627f, 0xc5b72d52,
|
||||
0x2e6eacc0, 0x7f66815b, 0x50db375b, 0x4529813f, 0x7f8d817f, 0x44486f52, 0xbcd64c9a, 0x7fd2bf33,
|
||||
0x43507f58, 0x7281a4d3, 0x7ca82149, 0x29817fd0, 0x653544b9, 0x88c681a1, 0xd93c2bfe, 0x530835cf,
|
||||
0x5be26556, 0x7fb37fd1, 0x81e68174, 0xe88c0c42, 0xb63b817f, 0x394a81c9, 0x407f8107, 0x747f1f52,
|
||||
0x91816dcf, 0x5f818161, 0x8514aebe, 0x7f496bac, 0x5e818181, 0xe8e358ee, 0xae1a7f0b, 0xa4c97f05,
|
||||
0x77a77f52, 0x818160fd, 0x6bab7f81, 0xcec7e121, 0xf4810196, 0x4a7f68e3, 0xe56d5a7d, 0x813d2c6b,
|
||||
0x7d0b7ff5, 0x7bbd6760, 0x67812b81, 0x188197d7, 0x8146057f, 0x811eff1d, 0x818ecc4d, 0x4a786245,
|
||||
0x72593331, 0x2e81556a, 0x66aad481, 0x94818128, 0xde89ba81, 0x4df07227, 0x7f73ff8f, 0x7f44b981,
|
||||
0x9bf9e707, 0x46811bff, 0x85a96a36, 0xc13b7f15, 0x6670ba65, 0x81fcefee, 0xae8187b9, 0x73c3baa9,
|
||||
0x819e8123, 0x9cfbc6aa, 0x7f89c73a, 0x7fde9812, 0x97136581, 0xc38181e6, 0x81de9c0c, 0x4994ab0e,
|
||||
0x30977f06, 0x59dda72a, 0xc9f87fd1, 0x8186b4d7, 0xba86de81, 0x98a24c3b, 0x12157f3f, 0xd7674b1d,
|
||||
0x81816042, 0x8da8926e, 0x397f81f6, 0x3dd281b1, 0x7f6570ba, 0x7f875412, 0xd74f5be9, 0xab81f207,
|
||||
0x7feaa863, 0xab81da0d, 0x7ae79023, 0x357f8111, 0x654a468e, 0x521c2306, 0x2f817f37, 0xdb818a41,
|
||||
0x50b5b30c, 0x71817fdc, 0x7f7f7f04, 0xb13471fa, 0xd1843f7f, 0xb700ece6, 0x109064ea, 0x989b4b03,
|
||||
0x27556fd8, 0x5ecee700, 0x5f5a2281, 0xa81c81dd, 0xac54b6bb, 0xe60f1ae8, 0x139dc4dc, 0x22818109,
|
||||
0x2c7fc74f, 0xa69cf331, 0x9d272281, 0x7f9a6da8, 0xb1bb8f45, 0x81815a6e, 0x8315517b, 0x638181f0,
|
||||
0x273db266, 0x90777f18, 0x047d763a, 0xbdf50a4e, 0x7f5f5c12, 0x817f7f53, 0xcb177385, 0xb2ca7f22,
|
||||
0x818eaa17, 0x815d4c81, 0xa67fc281, 0x7fd856eb, 0x01becb84, 0xa8e2685d, 0x7fadbe7f, 0x1b7f6a05,
|
||||
0xef47f495, 0x817f1b1b, 0x8c8d0b81, 0x57b9a5d4, 0xdc298159, 0x5e81a7e2, 0x81467f5b, 0x370f6df0,
|
||||
0xc49c30a1, 0x7a545710, 0x974b81ff, 0x458c814a, 0x237f17dd, 0x427fb6da, 0x1a7fe5de, 0x817f8121,
|
||||
0x817f1c96, 0x9c817f90, 0x0e7fd365, 0x818aa15b, 0x7fd302f2, 0xdb7c138e, 0x7fe68181, 0xbf818112,
|
||||
0x7f2e7fc8, 0x81728101, 0x6482d830, 0x59e24b0b, 0x9b67c284, 0x6e811018, 0x81a42c32, 0xd87a4da2,
|
||||
0x817f2d41, 0x3e2fbce2, 0xd1d44623, 0x7464b44c, 0xcc255f95, 0x56c93b38, 0xa87f1491, 0x04819c5c,
|
||||
0x7f457fd8, 0x8d6bb866, 0x819c8181, 0xbc118166, 0x3d4c2a5f, 0x7a6d51fe, 0x79065067, 0x8181d1fb,
|
||||
0xff6f2b08, 0xf5be7f35, 0x9fa567f5, 0xabb581b4, 0x81819a5e, 0x7f8187c5, 0xaa7f5669, 0xdf526044,
|
||||
0x7f6ea5f5, 0x7f3a68c7, 0x4feb7fb5, 0x627f2850, 0x39f49181, 0x71ec22ea, 0xc17f4c44, 0x56f4db23,
|
||||
0x7f08cc95, 0x977fde95, 0x7f4f7f81, 0x81e07f1c, 0x5e7c7fe9, 0x1c3534ce, 0x7f907f2b, 0x7f83418b,
|
||||
0xeb81daec, 0xa6fc892a, 0x757f7ffb, 0x6281cc2c, 0xb826cecb, 0xc7810a2e, 0x60d1906e, 0x7f8175ed,
|
||||
0xd085cb36, 0x88c4811a, 0x5e3e707f, 0xaba57fff, 0x099c127a, 0xbac67fb7, 0xa9817d82, 0x4f6c7faf,
|
||||
0x43d17a0b, 0x92a13dc8, 0x81995d8d, 0xab7f90fd, 0x5f1f8189, 0x767f8101, 0xb7caa2bc, 0x7f8177cd,
|
||||
0xe0655857, 0x81cfebeb, 0x81af6fc0, 0x57ac6dae, 0x437f8176, 0x513c60fb, 0x9ef3c081, 0x78d0d12e,
|
||||
0xa40c7f0e, 0x438101c0, 0x81816405, 0x6f527f04, 0x8d0fa47f, 0x6d7fbb7f, 0x39187f74, 0x3c7f5f06,
|
||||
0x677f7fdc, 0x8114250d, 0xe08373c7, 0x9c7f7dd8, 0x816341a3, 0xdf7f073e, 0x7f818174, 0xca84e8ff,
|
||||
0xd6ff70ef, 0x7fa1a3c7, 0x7f7f8148, 0x81de7fa2, 0x4d323671, 0x5aaafbff, 0x05ac7f7f, 0xd58102e8,
|
||||
0xad6c45e4, 0x81677f27, 0x818132ce, 0x7fa55a1c, 0x553029ce, 0x81a47f06, 0x81ca6189, 0x5cd581af,
|
||||
0x70f34733, 0x676d431f, 0x81387f66, 0xef916df0, 0x72099950, 0x867f81fe, 0xaa7f657f, 0xd7521bef,
|
||||
0x81d573c6, 0x7f76bcd6, 0xaba4c10b, 0xe394b7d7, 0x82579781, 0x88f5715a, 0xf7815cda, 0x65817727,
|
||||
0xeab07f22, 0xbb5f7c40, 0xc0a48139, 0x95442a2d, 0x857f7d81, 0xcd7a81ee, 0x7971819e, 0x3a31f0fe,
|
||||
0x537f6181, 0xc307bed6, 0x8936627f, 0x98b18136, 0xd07c817f, 0x7f7f8126, 0x133a607f, 0x98d40015,
|
||||
0x368a8123, 0xe181501d, 0xc9817681, 0xa27b2e00, 0x47dd81e1, 0x0e7f81d3, 0xf3287fce, 0x7f3400c9,
|
||||
0x8d65c745, 0x4c8148c4, 0x21817f7f, 0x81ac0af0, 0x4462c1fa, 0xa99e4e8e, 0x7f153ad8, 0x8168bb47,
|
||||
0x8370e19d, 0x7f3281ca, 0xf2437283, 0x667f279d, 0x9cb4c17f, 0xde814315, 0x72d3a17f, 0xac113b66,
|
||||
0x6c13abef, 0x7f816cb5, 0xc8c7c37f, 0xa7d1862e, 0x8b7fb87f, 0x9dd9a384, 0xb69b22f0, 0x157f710a,
|
||||
0x9007c13f, 0x4518caf0, 0x836c4246, 0x03f981d1, 0x817f7f7f, 0x4581b92f, 0xb4718193, 0xa8815e05,
|
||||
0x437f81fe, 0x52817fdd, 0xb1477f54, 0xc12e3cba, 0x7f81815f, 0x4e737f32, 0x817fc141, 0xa67f7f58,
|
||||
0xd19dab37, 0x8b9eb14b, 0x7fe8be30, 0x905d7fba, 0x16ae520b, 0x81015d10, 0x71812450, 0x1de37f1b,
|
||||
0x811fa6af, 0xdf77b8e9, 0x647ff1bf, 0x17be7fbb, 0x817f6224, 0x8115e99f, 0x7fca7f7f, 0xd48f0fa2,
|
||||
0xda7fc4ac, 0x10649756, 0x2f89af26, 0xdb5f3ec4, 0x817fde7f, 0xbde94df1, 0x9a707fb7, 0x7f7a656b,
|
||||
0xfad88c3f, 0x7ccc7f5c, 0x7f8cc477, 0x7fc26452, 0x28c7812f, 0x85b7a1ab, 0x818181ad, 0x404ce719,
|
||||
0x540fe3e5, 0x705bf0fd, 0x6206a54a, 0x89486861, 0x75e25f81, 0x3c9bc93d, 0x3457c36d, 0x57ab2f25,
|
||||
0x3cd9bd13, 0x81769cbe, 0x87557fae, 0x025c7109, 0x05457f64, 0x5f427f13, 0x5c7f26be, 0xb9818130,
|
||||
0x34e63305, 0x8a81ebcd, 0x673326ba, 0x05647ff7, 0x818b8181, 0x8c81782a, 0x4bc0b30f, 0x759749c7,
|
||||
0x399e99f6, 0x7fdb4313, 0x9c7f5cae, 0x6cc2a611, 0x811dab81, 0x7f7f413b, 0x4fb37081, 0x818c8164,
|
||||
0xac4c01d8, 0x1f63813e, 0x81db7881, 0x8194404b, 0xcc9bc55f, 0x542900eb, 0x87ff34c5, 0x507f7fa2,
|
||||
0x7fd97f03, 0x79e428e3, 0x2f7f7c6c, 0x57813f13, 0x7f7f817a, 0x61c40926, 0x68a9457f, 0x63ea9f2f,
|
||||
0xea81a8ec, 0xfd81301c, 0x81cd8181, 0x812cf7fc, 0xc996b697, 0x81895df8, 0x8d4ae3ca, 0x4c5de834,
|
||||
0x81643d19, 0x202babce, 0x55a89081, 0x64ba81f9, 0x7481db7f, 0xa0eba6bf, 0x81c12ee3, 0x8181a75d,
|
||||
0xc8e9939c, 0x0981295a, 0xf22e527f, 0x817f3314, 0xc4f17f5e, 0x8c83651a, 0x7f74a17d, 0xbdd28405,
|
||||
0xb6bc4795, 0x388c7cdd, 0x957f7f7f, 0x1db7ec29, 0x68f59c45, 0x8142eaa1, 0x81f0b543, 0xa48163fe,
|
||||
0x81d08134, 0x7d673f5d, 0x8ecdcf94, 0x6e56195a, 0x7f222687, 0x7fd8fb10, 0x81aa977b, 0x22014258,
|
||||
0xd541be81, 0x817f62fb, 0x707fea79, 0x7f817f60, 0x4b7f3c7f, 0x60a4032c, 0x1c68c2ae, 0x7fc27f19,
|
||||
0xd5a55cd4, 0x09a651f4, 0xb5447f7f, 0x7f815bfe, 0xe681d381, 0x1781f900, 0x8eb6b0d7, 0x1d90fdf8,
|
||||
0x528147c4, 0x816b7f46, 0x7f6381c3, 0xd5d2088b, 0xcce4ae52, 0xdf4ec304, 0x967e5e1f, 0x567f1439,
|
||||
0x317f810a, 0x815f814b, 0xe13ee67f, 0x7f8177a3, 0xac69c42a, 0x7f5837e7, 0x61b481c8, 0x777f812f,
|
||||
0xcea38116, 0x6b6b7f37, 0x8feac838, 0xf9457f3c, 0xe5107f74, 0xcc957f56, 0xa3ab7f81, 0x81817f6e,
|
||||
0xc5817f2b, 0x197d0d99, 0x7ad0c84a, 0x81ada865, 0x81b31c81, 0xee7f9b54, 0x815a3406, 0x3f617fce,
|
||||
0x3d4db8c2, 0x5ac39e72, 0xd390812f, 0x27c6ede7, 0x6f69d981, 0x2981f141, 0x7faa2681, 0x787f6668,
|
||||
0xc24ec00e, 0x7f008142, 0xfa811aad, 0x2d567fb0, 0x5adb7f65, 0x8a864fc5, 0x6d817f85, 0x307f7f1f,
|
||||
0x5c817f47, 0xcc7f43b6, 0x9bb08159, 0x496f7f2f, 0x41e383c2, 0x4e7f7f88, 0x71ce63e4, 0xe07f4c7f,
|
||||
0x857c58ad, 0x8599641d, 0x655c687f, 0x97a64fde, 0xdd42707f, 0x29ced6b6, 0xdf25c153, 0x7f047fbb,
|
||||
0x7c5f462e, 0x61d08548, 0x7f7fab7f, 0x48b1ecb0, 0x93c63349, 0x039c7fe3, 0x817fce1a, 0x29bb7112,
|
||||
0x7f3bbaf0, 0x81818d2f, 0x7f5b3d41, 0x1fa18160, 0xc481af81, 0xfc818130, 0xdae2bd73, 0x4d3c81cc,
|
||||
0xa47f5f0a, 0x5e3ad1a6, 0x1a816eab, 0xb307dbd0, 0xa8798b88, 0x7f81252a, 0x6d7f2899, 0x4d7fa214,
|
||||
0xc375762c, 0x7fb655ab, 0x5bb98185, 0x1381682c, 0x5281ca7f, 0xc56d7fc8, 0xa81d8170, 0x8daa50f4,
|
||||
0x8bbf7f03, 0xcf7fb0c2, 0x3b733caf, 0x7f756442, 0x8c81353c, 0xf7e82f0f, 0xa5a620f2, 0x8ae39fea,
|
||||
0xada55ad4, 0x74f1de4c, 0x37714753, 0x538193e3, 0xb1811481, 0xe5bd81cb, 0x70fc4ea8, 0x888473eb,
|
||||
0x30b57f1a, 0x90c3f010, 0x81817577, 0xea8c4ae4, 0x6977547f, 0x549481a8, 0xf27f54b8, 0xf87f7fd3,
|
||||
0xef81843e, 0x5a437fbb, 0xa77f8181, 0x77354c05, 0x9781667f, 0x7fc2ae7f, 0x0b81b868, 0x1267b5e3,
|
||||
0xa0de743b, 0xb4cce348, 0x8192819d, 0xf0817faf, 0xecc781ab, 0x7f57af2a, 0x499e13c0, 0x7f3d632a,
|
||||
0xac96fcc8, 0x81727829, 0x7f7ff281, 0x81819bb4, 0xc5bfd358, 0x76553120, 0xb57dbcb5, 0x9b425d12,
|
||||
0xb0814cc1, 0xea3d393b, 0x1dde5e27, 0x03a6f127, 0x39a9a981, 0x94304751, 0x3af97f00, 0xceaa49d8,
|
||||
0x3c8124d1, 0x7f24b547, 0x2830e08d, 0x3d7a8f0e, 0x456ffc4c, 0x814e7f4a, 0x357f817f, 0x7f61bc51,
|
||||
0xd7097f44, 0x213ecf47, 0x815281bd, 0xa9a58187, 0x0c3cbfb2, 0x18f92fa4, 0x307f7f52, 0x727f3361,
|
||||
0x6cdc8e37, 0x7f9d9e24, 0x64466e7f, 0x2491328c, 0xd58181cb, 0xc97ff4b1, 0x1890627b, 0xa48168b3,
|
||||
0x7fad44dc, 0x411b7f43, 0x6681647c, 0xc5171bcd, 0x4a6d7fd9, 0x7e369d2b, 0xf8124f61, 0xa71515f1,
|
||||
0xb381ec09, 0xc4ab71c0, 0x9e2e977f, 0x7f7f0d58, 0x1cdb7b16, 0x81f87f81, 0x517f7f60, 0xf4a3ea33,
|
||||
0x5c2112c3, 0xc67f7e06, 0x9d7f78c6, 0x811730e4, 0xa29b6170, 0x81817fd1, 0xb6637f87, 0x4f1c540d,
|
||||
0xe57f7707, 0x277d5c28, 0x7f817f21, 0x5e31e1ab, 0x7f81cd81, 0x815daab2, 0xec5284bc, 0xb45d7b63,
|
||||
0x7f4d815e, 0x0860494f, 0x81874034, 0x81d0f00a, 0x5b4274ea, 0xdce04fd7, 0x8188680f, 0x827f7fc7,
|
||||
0x8137e715, 0x9f7f6699, 0x786e75eb, 0x8253202d, 0xb2813ddd, 0x7315a11a, 0x81c18164, 0x7f7f8141,
|
||||
0x6870da25, 0x117f3efd, 0x7f1c5f1f, 0xcb6d63bf, 0x45561890, 0xc3df8136, 0x23275f32, 0x81817f5d,
|
||||
0xa50f7fde, 0x7f3ba6ae, 0x37a4bbf4, 0x81a6fd1a, 0x9b9bb6ec, 0x8b2cff0a, 0x2035d781, 0xa1c47fce,
|
||||
0x095dee2d, 0x7f3a2d51, 0x69727f7f, 0xec8aad61, 0xb0dbcc42, 0x2e706fee, 0x962a9d53, 0x81814554,
|
||||
0x759026dd, 0xb38851cf, 0x817fa70b, 0x7f462fb9, 0xcc7faf23, 0xa2981632, 0x3e8d8160, 0x07815dd2,
|
||||
0x82817f22, 0x5a755325, 0x45c77f81, 0x81653cac, 0x93f73dd9, 0x3d81c4cd, 0xf67aa181, 0x467e7f1f,
|
||||
0xe6c10cfa, 0x9bd4c12f, 0x6c51ca85, 0x4d7f2835, 0xc0bb341b, 0x81812aed, 0x87a181be, 0x4f7f7f6d,
|
||||
0x81c9e3c4, 0x117f95bf, 0xd457e634, 0xb84b567d, 0x5618f922, 0xda7fc1ed, 0x7f7f81d6, 0xa07da0b1,
|
||||
0x2e627f0a, 0x814ee836, 0xb65bff90, 0x3e29b6de, 0xb1b78f5d, 0x1724a1f0, 0x81484221, 0xe16d7fb6,
|
||||
0x578181f2, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000
|
||||
|
||||
hard_output0=
|
||||
0xb5bc6ac8, 0xf5373664, 0x1310345c, 0xd5bae4e7, 0x1fc9e83e, 0xebfdfded, 0x84bd86ab, 0xb7aabe00,
|
||||
0x60b44fea, 0xb9067464, 0x30325378, 0xa9195955, 0xf70c6e5c, 0x90922632, 0xc90b1cdb, 0xf2f5fb69,
|
||||
0x73056b63, 0x1a33bf3f, 0x17755b5c, 0xc58bff6d, 0x2f4390b2, 0x2869d508, 0xe7c7dfe8, 0x38552963,
|
||||
0x21da5367, 0x07282b9b, 0xa4767105, 0x1e294251, 0xe350a940, 0xb8a6aa27, 0xed12d778, 0xf10d9ece,
|
||||
0xab93527f, 0xcf2da7e7, 0x68f6d0b1, 0x811f4bca, 0x577b06b2, 0x3234f13e, 0x30bab7df, 0x8dc47655,
|
||||
0xbb843bed, 0x86da3aba, 0x30950c97, 0xdd096d7a, 0xa871fd6c, 0x8bee4e6b, 0x8fea30d0, 0x6c05b4d2,
|
||||
0xf3e144d3, 0xd24ebb1f, 0x065635e5, 0x8d3f2cf9, 0x536c6c6a, 0xfbb0a5d0, 0x3d707b42, 0xc44d5982,
|
||||
0xa5f4ad8f, 0xf32c0970, 0x1bccf1a6, 0x05916020, 0xa64fb176, 0x5ede6a35, 0xaf4966da, 0x9df5e0e7,
|
||||
0x75042abc, 0x9ef10481, 0x11ddcbc8, 0xa0f5518c, 0xd5c23418, 0x2393d558, 0xfbe7dfeb, 0xed1c64c2,
|
||||
0x86a36508, 0xde2dfb1e, 0xb8d0fef9, 0x24505232, 0xc894e71c, 0xbcc752a0, 0x40b74e83, 0x90d23c8c,
|
||||
0x728e4a61, 0x108f0b08, 0x66f522ee, 0xc258d851, 0x35a31c44, 0x11311b5b, 0xfd3d5be9, 0x5ae448ff,
|
||||
0x4f64994b, 0x5b8247a9, 0x4021114d, 0x2f0b6e82, 0x5eaa9828, 0x50ac71c0, 0xfb86ee52, 0x0dc1ac9b,
|
||||
0xbbd47645, 0x8f357115, 0x978ceea0, 0xd557db99, 0x99b30388, 0xfc9a8a1c, 0x0f75be1a, 0x50143e22,
|
||||
0x8840989b, 0x738ec50e, 0xe6b2783d, 0xf67899c8, 0x27ebed69, 0x6c415a16, 0x3a6cc2dc, 0xcd4e4e5d,
|
||||
0x6cb12b2e, 0xdb88d7c0, 0x79cd1582, 0xbc422413, 0xe72ad2f4, 0x8eaac30f, 0x0bd86747, 0x6d87f69d,
|
||||
0x15d62038, 0x4b375630, 0x0d51b859, 0x16db2cb2, 0xf210603a, 0x0abeb833, 0x55c694d0, 0xe57ca43b,
|
||||
0x0ba94428, 0x1398a406, 0xe47d3889, 0x5a20203d, 0x250d7a1a, 0xd930ffec, 0x03992e79, 0xf2759376,
|
||||
0x024ec121, 0x91fc3a2c, 0xb7e11cc5, 0x4ff7d459, 0xb8700134, 0xd6e61758, 0x4eba0a32, 0xb747e3ec,
|
||||
0x7073fad7, 0xded80f99, 0x331e2f1b, 0xfa1f1bed, 0x056424a2, 0x1d1d95e0, 0x550b9ec8, 0x51ee2a38,
|
||||
0x19525153, 0xd70c4cd5, 0x0d6cd7ad, 0xe44d1cf2, 0x30dfecda, 0xdacd7fe8, 0x7321d795, 0xddf48ef4,
|
||||
0xe271e6a4, 0x9c1feecb, 0x951fcd7b, 0x8acc5a03, 0x3fb83527, 0xe306de74, 0x7b9cd6ee, 0x8e140885,
|
||||
0xd4c91e8d, 0xe8c39733, 0x0f02f87f, 0xfb06b1b9, 0x0dc9349c, 0xf76bae8e, 0x4f642a07, 0x3d48a9aa,
|
||||
0xe3ea323a, 0xa1cd5c8a, 0x40aa0e70, 0x132042d3, 0xa9732f6c, 0xd15a00c4, 0x43d3b046, 0x9a51ebd4,
|
||||
0xc46ee0ed, 0xe2a2148b, 0xf5c478f0, 0x1fb01cf3, 0xf4f321ec, 0xd973811f, 0x11ad11b9, 0x5c67adda
|
||||
|
||||
e =
|
||||
34560
|
||||
|
||||
k =
|
||||
6144
|
||||
|
||||
rv_index =
|
||||
0
|
||||
|
||||
iter_max =
|
||||
8
|
||||
|
||||
iter_min =
|
||||
4
|
||||
|
||||
expected_iter_count =
|
||||
8
|
||||
|
||||
ext_scale =
|
||||
15
|
||||
|
||||
num_maps =
|
||||
0
|
||||
|
||||
code_block_mode =
|
||||
1
|
||||
|
||||
op_flags =
|
||||
RTE_BBDEV_TURBO_POS_LLR_1_BIT_IN
|
||||
|
||||
expected_status =
|
||||
OK
|
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
|
@ -0,0 +1,676 @@
|
|||
# SPDX-License-Identifier: BSD-3-Clause
|
||||
# Copyright(c) 2017 Intel Corporation
|
||||
|
||||
op_type =
|
||||
RTE_BBDEV_OP_TURBO_DEC
|
||||
|
||||
input0 =
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0xD0000000, 0x33CDC8CE, 0x4FAEE4CC, 0xC7DC23C3, 0xC306D6CA, 0x2B360A24, 0xE91C423D,
|
||||
0x1F323427, 0x4B1C33B6, 0x3EC9D0E7, 0x39204DD1, 0xCCD73C37, 0xC6F6D8E1, 0x1DF828F3, 0xDEE34025,
|
||||
0xC41EC235, 0xD035E1D8, 0x3CC32843, 0x29B60C3C, 0xE92E122E, 0x454BD4C8, 0x35D02543, 0x33E4D0AC,
|
||||
0x07AF2228, 0x38C62DD1, 0x233800C5, 0x3CC02DD1, 0x35E73B19, 0xDEBED026, 0x33C5EDD9, 0x33E51527,
|
||||
0x1F21EA18, 0xCC3E3BD2, 0x013CC14C, 0x3724D23B, 0x23CDED2D, 0x21424630, 0xC5B0E64D, 0xCFC03BEF,
|
||||
0x24294241, 0x46C526BC, 0xD82F334C, 0x1E283DCB, 0x3F3F33C7, 0x4A14D2A1, 0xD92F2AF3, 0xCFA820CC,
|
||||
0xDD30C6CB, 0x2B3ACAB7, 0x4AFE29CD, 0x25BD3200, 0x2D293323, 0xD32A3B29, 0x29E64D0C, 0xBE4BFB3C,
|
||||
0xB1DD242D, 0x0427F11D, 0x3046CFDA, 0xD633C0D5, 0xC0DDBE01, 0xDA3DD9B4, 0x3BCE3638, 0x23262CC6,
|
||||
0x432BD2AE, 0x23A9E1C7, 0x1BE45609, 0x22CD35AA, 0x32D6371F, 0xCE27352A, 0xE2B73F40, 0xC2D0CE2C,
|
||||
0xE72E3A3E, 0x2FF52147, 0xEFCF2E33, 0x003103CA, 0xC6C14A33, 0x45CAC0CF, 0x011E1FD3, 0x23D3C72B,
|
||||
0x2EB644C4, 0x484BD930, 0x3AC22E1A, 0x1AB6DD42, 0xCEDDE232, 0x3ACCCC31, 0xB830CA2D, 0xC930D2D7,
|
||||
0xD0E049BB, 0xE6243524, 0x3EF53914, 0xCB083BE3, 0x411EDBE9, 0x30C3C3E8, 0x3721F5E7, 0xBBDF3FD9,
|
||||
0x2AD21F33, 0xEE402858, 0xD3AFD237, 0x3D39401D, 0x30003623, 0x4734DC46, 0x192ACD32, 0x3324CAC2,
|
||||
0xD714D4B5, 0xDC2E21D0, 0x2327CDBA, 0x15B739C3, 0x31C9EEB8, 0xFAB5372E, 0xC239B5DA, 0xE628440F,
|
||||
0x34D425C6, 0x293BE6FD, 0xBDC04BBC, 0xE0DDB7CF, 0xD627BC34, 0xA5422FCB, 0x13211ABC, 0x1708E51C,
|
||||
0xCE33DAD1, 0x51AEC731, 0x2E383824, 0xC722D0D3, 0xCB32292B, 0xCECC402B, 0x1B312EF0, 0x34CF46CA,
|
||||
0xE3BD252C, 0x0C21EC36, 0x4ADFECBE, 0xC4D2E62C, 0xADE5BAD3, 0xDDCC1D18, 0x521AC135, 0x3F302D37,
|
||||
0x22CE2DCC, 0x262A1BCF, 0x4EE7D7CA, 0xD43D3526, 0x1840E020, 0xC3201F2F, 0x3ACB453E, 0x41EAD5B6,
|
||||
0xB6C4CF17, 0x243A55D4, 0xC7501E28, 0x351DCD1C, 0xE3A8D502, 0x3235271C, 0xAC342F00, 0x34B4E3D8,
|
||||
0x36473AE4, 0xAE403CEB, 0xBC3FDA3F, 0x552CDBEC, 0xE7C42B5C, 0xE743E13D, 0x18D44650, 0xBA2EDF31,
|
||||
0xB5C3EC42, 0x432EBE2E, 0xADDE4F2A, 0x401BCAD6, 0x03D6EAEB, 0xD0DEB133, 0x153FC4D4, 0x30DA2FD3,
|
||||
0xEE282FD9, 0x242ADC39, 0xD72B42D9, 0x44C7E0D5, 0xC72CB3C7, 0x27C9472B, 0x0036DFB6, 0xD9C53112,
|
||||
0xC0360E0E, 0x4EEA0E27, 0xEDCF27C1, 0x1739D5DC, 0x22DE2CE1, 0xDCCAF633, 0x31D02417, 0xD7DCD0DA,
|
||||
0xDE1DE0DC, 0xD827DD22, 0x1CDBD7EC, 0xCE171BCB, 0xEE2347CF, 0xC22C312D, 0xDBCC2A38, 0xBE0ADED4,
|
||||
0xDC20CC2D, 0xD5380DB2, 0x2A32C701, 0x3EC7D41E, 0xCDD7D74C, 0xE83E2A44, 0xC12B26E6, 0xE70046D7,
|
||||
0xD626D1EC, 0x35DDE41D, 0x303F27BD, 0xC94D4517, 0x31D1E229, 0xAD3529BF, 0x3AC5D21C, 0xCF1DB731,
|
||||
0x2738DBEB, 0x1F382B33, 0x1ED52213, 0xFCE22CD2, 0x1330331E, 0x4A30BA0F, 0x1F38B42A, 0x2E34CB1F,
|
||||
0xE3E125D5, 0x3AC72D17, 0xBD3C342C, 0x37272810, 0x1D34E4C7, 0xE5CC2EF8, 0x1E2FF1DF, 0xB9294236,
|
||||
0x26F10017, 0xBDE3FBD1, 0xB7DB52D0, 0x2E3CB8E9, 0xB3343D3C, 0x3E3BDFDD, 0x1F46393A, 0x25FA20C1,
|
||||
0x2D194CD1, 0xE9471D26, 0x34C3242E, 0xAE012034, 0xC8F3FED7, 0xB825362B, 0x322DC136, 0x42F41511,
|
||||
0x181855C2, 0x4937D5EB, 0xE13CDC23, 0x08242A28, 0x2DCCDFC0, 0x13CEC64F, 0xB3E6F7ED, 0xD93401EE,
|
||||
0x3D02DEE0, 0xCFC52300, 0xD2F1BE38, 0x2D092924, 0x253E2AF0, 0x37DACAD0, 0xDB1ECFE7, 0x40CED84D,
|
||||
0x3706C42A, 0x4231D91A, 0xDD30471D, 0xBD272DC8, 0xCB1941D9, 0xC22FC7C5, 0x333F3C0C, 0x3F3D2518,
|
||||
0xDDCCD143, 0xB3D834D5, 0xD231BEE4, 0x2BDB3B3D, 0x2F2754E7, 0xEAF3CE64, 0x3632E4C0, 0xD83324C2,
|
||||
0x11A4D5CC, 0x00D627D3, 0xD51F2731, 0x17C92BE2, 0x1AD62E1E, 0x16DB2418, 0x16B83823, 0x2711D54B,
|
||||
0xDFB02BDF, 0x28CDA600, 0x2AE9ED3E, 0xD314CD20, 0xD04F272D, 0xD0F9CD37, 0xCC1735E5, 0xD328EC37,
|
||||
0xA7D31A26, 0x214BD9A5, 0xCFCB4226, 0x233C4AD5, 0x26EF37D8, 0xD83E3230, 0x3EC8C93C, 0x07B9282B,
|
||||
0xD1E6DAF2, 0x31C52EDD, 0x3A0038A5, 0x56C1E0DF, 0x22E437C0, 0xDBC8143B, 0xCF1DB03F, 0x1D4BE636,
|
||||
0xB8D3C23A, 0xBCC3372E, 0xAF284228, 0xDCE02F1E, 0xB9D4E3D4, 0x56D3D0D8, 0x494816C1, 0xFB1240C3,
|
||||
0x23B1BDD2, 0x1236322E, 0xC2CBCB47, 0x102FE7C8, 0xBB0AE1D9, 0x3831BC29, 0x39AECBD9, 0xC7CF1ED2,
|
||||
0x0AE43913, 0xDDD62F2C, 0x4FD522E6, 0x3CB90A55, 0x2101C8EC, 0x432604BD, 0x29E3E31E, 0xC25B3C29,
|
||||
0x20E927D4, 0xD4300C41, 0xD9AECBD5, 0x48D8E143, 0x2CEE272F, 0xD2C11FBA, 0x2F2DB8D7, 0x1CF4DFE6,
|
||||
0xCCDCCEBF, 0xE052D0EA, 0xDADDEB1E, 0xC72ACB3A, 0x332E2B1B, 0x2D26E827, 0x2A29E6A6, 0xE614D6D5,
|
||||
0x221D1CC5, 0x51102031, 0x1735C248, 0x31D4DCD5, 0x3C20DC00, 0x2D231732, 0xE54AD9CD, 0x1D24D826,
|
||||
0xE936373A, 0x20C0D3C9, 0x2B231520, 0xD6CED133, 0xDFC8C7B5, 0xDC2FE8B8, 0x3332249B, 0xC6E6E11F,
|
||||
0xB7DA17AF, 0x1FD91321, 0xEE29CD41, 0xE1262FEF, 0xB6181DC6, 0x24F618C6, 0x3BE5DA2D, 0xFC2C35C8,
|
||||
0x51C232CC, 0x36183EDF, 0x2B2CD6EF, 0x2F2DBDB9, 0x00D03413, 0xCDC9CBC4, 0xDB3309CC, 0x264EB22C,
|
||||
0xCED1EAC9, 0x38D53F27, 0x2EE7D6F3, 0xC7232C23, 0xCCD42515, 0xC9C8C8E3, 0x231E3930, 0x5BBEDFCA,
|
||||
0x34D7E5D7, 0x25CCE9A7, 0xCD4BF1E8, 0x5E2542E6, 0x38DCE43E, 0xDA34F0CA, 0x2EBFF841, 0xDA422D3E,
|
||||
0x13CA2231, 0xD5C6DA27, 0xBAC0C6B6, 0xC82C49FF, 0x31312123, 0xBF00DFBF, 0xE8F23819, 0x2C34E81E,
|
||||
0xDC4C2B0C, 0x3A5650F2, 0x2CCB0FD0, 0xC42D4C28, 0x4F19DA4B, 0xF63DE630, 0x29F51C1F, 0xD6BE14C4,
|
||||
0xD2DDCDD6, 0xE0D02825, 0x2FE0E3D1, 0x41342FE8, 0x25D547ED, 0xC5A732B5, 0x19BD503F, 0x4CD9DA3D,
|
||||
0x24D013BF, 0x4FE93FCA, 0x12DBE8B9, 0x33DF151F, 0x1E24AECD, 0x2E2E3656, 0x133500AD, 0x3641403C,
|
||||
0xBDDF2BD4, 0xE33130E0, 0x3DC02726, 0x18390C3C, 0x26C04DC9, 0xDBF22D35, 0xC3E1EC45, 0xCED12623,
|
||||
0x1CE92E39, 0xCF2FD222, 0xD8DE31E6, 0x1EE916D1, 0x35DCB621, 0x19C2EB54, 0x41B34ED4, 0xD9373BDF,
|
||||
0x203ED6D8, 0x2CD4A8C8, 0x14E0C6C6, 0xDF242131, 0xCDD921CF, 0x33AACBCC, 0x2AD1A5C6, 0x3ED42B00,
|
||||
0xBF181FD0, 0xC0CC2329, 0x1BD1EDC9, 0x3A2D47CB, 0xDD27D8CB, 0xD8E8BAE6, 0xD5DE3FF5, 0x2C30D641,
|
||||
0xDCDCDF26, 0xC2C34433, 0x2837F53D, 0x29D8E12D, 0xBF3FEBD0, 0x34CACC45, 0x30E1DA21, 0x39DDDCB3,
|
||||
0x30193518, 0xC0132E19, 0x313D3736, 0xB2D4FF34, 0xF4D92945, 0xC70D3AEA, 0x3E3034F0, 0x00DA2F07,
|
||||
0x1DD415EB, 0xCC1AC4B2, 0x232EB21C, 0xD7431E16, 0x2FCE0835, 0xCF39242C, 0x1BCA2CD4, 0xD8B6D0FA,
|
||||
0x18C3262F, 0x2CE3BDCB, 0xD839DC38, 0x26161D24, 0x1223B3DC, 0xD6D63515, 0xCFBABFC6, 0xC1BF18C7,
|
||||
0x2637C715, 0x264020EA, 0xD024D3C4, 0x4126A11D, 0x2E34442D, 0x32BB1CC9, 0x36E7DD40, 0x3113C3C5,
|
||||
0xD100C8CE, 0xD21651E8, 0xC3CFCDD9, 0x403139F1, 0xD3D02119, 0x32171AC8, 0xD2F9B62E, 0xB5B335D4,
|
||||
0xC1462835, 0x1F1C2C35, 0xD8DDBF35, 0x422D2DDA, 0x38ED19D7, 0x3326BD2F, 0x4534DFCE, 0x46403132,
|
||||
0x19CDD51E, 0xCBC3CBC0, 0xE3CF2139, 0xC646ECD8, 0x29E7C7DD, 0xE94CCAF8, 0xB8C6EA37, 0xEC2B09DA,
|
||||
0xC8C82738, 0xC6CCDDFB, 0x3FCA3B4D, 0xC6482BD1, 0x2DE1D333, 0x3530BB3A, 0xBF4838EA, 0xE4411ACB,
|
||||
0x3514D939, 0xCD372B27, 0x4BEC1C39, 0xAB21C221, 0xD8D83F37, 0xCCE0512D, 0xDA4640C2, 0x36AE1CD6,
|
||||
0xBC2F303B, 0x20C3B8CD, 0xBFE6D4E0, 0xBECCC4EB, 0xC7CC1E4E, 0xCC2BD03C, 0x3738C518, 0x23B824CC,
|
||||
0x2BECD0BC, 0x2107B945, 0x2AC21B00, 0xBE49F2EB, 0x31D2E3DC, 0xDAD23F11, 0xCDED3137, 0x3ABADA3A,
|
||||
0xD9C0C12C, 0x36CEE8CF, 0xD0D5BDD3, 0x2AC9CFCC, 0xE61FD747, 0xC7B7B12A, 0x2BD520DF, 0xD5BC1D31,
|
||||
0xE6D8423B, 0xCC21EB43, 0x1F46292D, 0x171EE038, 0xDFA5E244, 0x1BD5C4AD, 0xC622C2B5, 0x4E33CFD3,
|
||||
0x3F263F30, 0x34E4CF15, 0x0041CC36, 0x4021DB29, 0xD62E2231, 0x2C22AE21, 0x1A201F44, 0xC6D7C100,
|
||||
0x3A335125, 0x42473A2A, 0xDF32DA1F, 0xE5D8B51F, 0x3049E832, 0xE6DED531, 0x315DD01E, 0xDDD92034,
|
||||
0x2EBF0AEB, 0x4B4639DD, 0xBED6C8DA, 0xDABA3714, 0xDD133BD7, 0xC934EACF, 0x0D35C3E2, 0xB4CCC213,
|
||||
0x37EE202B, 0x0AD21AD9, 0x28D2C9CD, 0xD800DB2D, 0xD34B274A, 0xBDD33644, 0x38EFF1CC, 0xBDABD734,
|
||||
0xB11E3E32, 0x2F1C23DC, 0xE80BD7DE, 0xDBE7D6F7, 0x240248BF, 0x23CEF1F6, 0x1F56E634, 0x33CD2230,
|
||||
0xB4DB182F, 0xD338BA36, 0x33392B24, 0xBB3B3649, 0x282F30E7, 0x45CC35B1, 0x46261B30, 0x1FD9A722,
|
||||
0x3BE3E1C3, 0x25334FF0, 0xB8BB28C0, 0xD751E2CC, 0x403600E1, 0x461FC3ED, 0xCB30C202, 0xD8D2B92A,
|
||||
0x2923D71B, 0xB9DDE6CC, 0xB935CB0A, 0xEF37D723, 0xD1DA06CD, 0x303CE928, 0xF8B9BA27, 0x37370A1F,
|
||||
0xD6C1DDD9, 0x18B6463F, 0x28C71FC3, 0x38D8B53A, 0xD22DE9A1, 0x18DDB236, 0x0A28D515, 0x363B263D,
|
||||
0x1F3A122D, 0x202AE323, 0xC72337E8, 0x32ED08CC, 0x2658C347, 0xC6F4E200, 0x45D1C2C3, 0xF92D343A,
|
||||
0x3EBE1E65, 0x10EB2FD3, 0xC64FD5E5, 0xC5D3F521, 0xE9CA1A37, 0xD736CDD6, 0xDCC7C233, 0xC9C8E2D4,
|
||||
0x2B99D60A, 0x1EE3DA0D, 0x30BDD8E1, 0x16D3BE1F, 0x1C4524D4, 0xC8D5D432, 0x19AEDA3D, 0xCDD4CAD5,
|
||||
0xD835332E, 0x2412DA1B, 0xD0CBEBD7, 0xC3CEF425, 0xD1D743E3, 0x000A163B, 0x23DC3129, 0x202332D1,
|
||||
0x322F2216, 0x28F5131A, 0xD316CF0D, 0xD0344C30, 0x423325D7, 0x37204237, 0xEEDDC721, 0x2038E805,
|
||||
0xD525C522, 0xBEDDE327, 0x3AC8BCC5, 0x45402E27, 0x34DFC1D9, 0x2DB0D049, 0x322F2ACF, 0xDB3AC3C5,
|
||||
0xD8D0EB4F, 0x2A1DCCCC, 0xD0D33DC2, 0x1349DC45, 0x39CBBC32, 0x30301EBF, 0x2C00DFC0, 0x5DD0CA11,
|
||||
0xD0220C3A, 0xC527CD1A, 0x31CD372C, 0x2E0ED7DC, 0xC6F92338, 0xF537E8D0, 0x3626DBBF, 0xC9C3C6C3,
|
||||
0x30DDBE17, 0x50394C39, 0x3A11343B, 0x27E8DC2E, 0x0DDB303F, 0x1818BCF0, 0xC5DC17DB, 0x24C53A26,
|
||||
0xECB0E7E2, 0xC21B1928, 0x15D7C920, 0x4126AACE, 0xE214D8C7, 0xD40BCD42, 0xB2CBD018, 0x554436DB,
|
||||
0x3C2D25D9, 0x21CEC0DC, 0xE9251919, 0xE41ACDC3, 0xDECF67C3, 0xEDDE3225, 0xCA30EEDD, 0xCFE01E37,
|
||||
0xD231BF41, 0x34DF1EBD, 0x1DD2CC2C, 0x21142E29, 0xEA322B37, 0xCEC311DE, 0xF0F738DD, 0xEBED1A40,
|
||||
0xDCE640E8, 0xD0D1BA2B, 0xE906D6DB, 0xC71938B1, 0x13C59F39, 0x1ED6DBB6, 0x231BD3A9, 0x2C2B30DC,
|
||||
0x0ED50000, 0x2DD4EED6, 0xD9D21BEE, 0xE1442E36, 0x38CEC4AE, 0xC626CCF4, 0xC2CD3F36, 0xD71F2BD9,
|
||||
0x2F421837, 0x31B11A23, 0xD4D5282D, 0xD0E6BED7, 0x30D737CB, 0xC8142A09, 0xD8D2CFDC, 0xC22D3C44,
|
||||
0xF62DF1C9, 0x3D38DBC9, 0xBFC2E5D3, 0xDCE42128, 0x3A304038, 0xDBE6D626, 0x28250FE0, 0x27B52BCF,
|
||||
0xE0D8DC3C, 0xC8DA09DA, 0x2DF02FD4, 0xE539D7D1, 0xCDE729C2, 0x4816E313, 0x4E392AC5, 0x112CF50F,
|
||||
0x3AD94924, 0x4B22273A, 0x43D2DE9E, 0xDA22DE30, 0x3FE324DB, 0xD9CC2811, 0x29D253D4, 0xE2BC353C,
|
||||
0x0CC92147, 0xB8F0C6F5, 0x3D35DEBF, 0xED4ACBEB, 0xAC34E532, 0xEA2AC526, 0xEAC0BFC8, 0x4431D9DD,
|
||||
0xC0CE4E21, 0x0000F2DD, 0xE0D8C7BA, 0xDDDC2E36, 0xDA42C22B, 0x2B312614, 0xDC391EF4, 0xCC2E31D8,
|
||||
0x3DF4D630, 0xC72C21D9, 0xDB2BD531, 0xD916DB3C, 0xBEC11DD2, 0xD1D5CEA4, 0xBA072ED7, 0x402F2829,
|
||||
0xE3C0F627, 0xC7CC3CBD, 0xF41D3345, 0xD706DB14, 0xB2DF36AC, 0xEBC4551F, 0x32B01929, 0xC5B6DDEC,
|
||||
0xD91DE130, 0xE1213222, 0x4126D927, 0xAF52300D, 0x291B301C, 0x241A1843, 0xE43C1FDC, 0xBBCC191C,
|
||||
0x2C25E011, 0xBD3EE9DB, 0xC9BF1345, 0x2F333AD2, 0x1CD822DB, 0x23BE43EA, 0x2527EADC, 0xB52E1C1E,
|
||||
0x391CCF17, 0xD2C82C0C, 0x242E3830, 0xD328D808, 0x35CEF4CD, 0xD81BE035, 0xD0DF38DA, 0xD1D3C42E,
|
||||
0x3A2C1EEA, 0xC6D03AD2, 0x1E362E4E, 0xE6080000, 0xD018C312, 0xEFAA323B, 0xD1294BD2, 0xBAD52C3B,
|
||||
0xE0373E10, 0x260CDDE2, 0xC902E040, 0x30472BD5, 0x534BE7D2, 0x20CCB523, 0x21CCD843, 0x2259E24E,
|
||||
0xDE35FDD1, 0xD4D91D3E, 0xCFCA11D5, 0x35D724BD, 0x3C3F0CB8, 0x3EC447CB, 0xE835DDC4, 0xC3C73E31,
|
||||
0xDD432B2F, 0x2FDCBDC2, 0x2D3CCE17, 0x25B8AB31, 0x2ACCFFE5, 0x40E03C2B, 0xE7DA1841, 0x17E53020,
|
||||
0xD44E0B2F, 0x46DA22EC, 0x33422425, 0x211840C5, 0x23C1CFD5, 0xC8350BE5, 0xD833CDD0, 0xE63DC528,
|
||||
0x292ADC17, 0xD8BCD3C1, 0xCD39F02E, 0xA71EC343, 0xD6CC3A3E, 0x2E12D2CF, 0xC40B1FB1, 0x37DCDC33,
|
||||
0x20E52EEA, 0x271629E5, 0xC4BEE0C2, 0x1B3CDBD6, 0x00004934, 0x18E145C7, 0x4BE93522, 0x3029C309,
|
||||
0x31D1D50F, 0x3DB42C1A, 0x21A643B2, 0x3E26D8C2, 0xCDDE28D1, 0x44E835E1, 0xEDC4DED1, 0xC4F9C9ED,
|
||||
0xC5E1BBCC, 0x4426C1D4, 0xD9BB372B, 0x37232E0D, 0xE5D0D0AE, 0xC9D23CC5, 0xF638E2C7, 0x2DB6E6D9,
|
||||
0xC0C9B72D, 0xDF28E6D0, 0x11E2DCC8, 0xD8E2F31C, 0xEA3937DE, 0x2741B953, 0x19D5CEE6, 0x33DDC22D,
|
||||
0x2BF72326, 0x2143363C, 0x13CA1A1F, 0xB9D7DAC9, 0x22C6B72E, 0xC5DA2631, 0xCB32ECCF, 0x032D15D4,
|
||||
0xBB1EE613, 0x38C42452, 0xDBCD2726, 0x1AF44039, 0x22CF2EC6, 0xCAEDE6B4, 0x2823D423, 0xDCC61C39,
|
||||
0xC12D19BF, 0xC612C31B, 0x31F1D32D, 0x3E1C09E4, 0xD824C5E7, 0xDFFC2839, 0x2AD40000, 0xDFCCBBBC,
|
||||
0x3FC9CC12, 0xEF2626E1, 0x0FCDEA2A, 0xEBD735CF, 0x4E1A2834, 0xCDEDE1D5, 0x31CCCD29, 0x2F4618DF,
|
||||
0x48C11936, 0x29DADE41, 0xD71C1AE0, 0xDDD2285A, 0xB13DCDC8, 0xF020B8DB, 0xD0B837C2, 0xDC3B48E8,
|
||||
0x18C3C530, 0x192C2940, 0x2ADA3AE4, 0xEA34C55A, 0xDAB2BED4, 0x1A51E838, 0xC832AEBE, 0x10DE2DE2,
|
||||
0x3B2408CC, 0x22CEBD1E, 0xC919D6BE, 0x21D2D128, 0xCFE03A2A, 0xB7DEDC3B, 0x33C630ED, 0x5A0EEAD1,
|
||||
0x3CB03FCE, 0x24EC15E4, 0xD0385BBF, 0x20CB4E4B, 0x30E0C535, 0x301BCD3C, 0x3642DDD3, 0xD90FDC50,
|
||||
0xCA35BBCC, 0x393B3B2F, 0xE2BE352D, 0x362BE3BF, 0x1922B73D, 0xDE3448BD, 0xF7C0C02D, 0x00002F43,
|
||||
0x2FCAD0E4, 0xDE412A34, 0xFBF339DA, 0x2BB94330, 0x39B521D5, 0x2DE31F43, 0x382C4F23, 0x35314C2D,
|
||||
0x2DE3DBDC, 0x3A18EAB9, 0xD0DF131C, 0x45EA41E0, 0x48BBC1BF, 0x2220D7E4, 0x29C8D0C5, 0x3C0527CA,
|
||||
0xC1ED061C, 0xCB48CA3E, 0xE846E633, 0x0EB2D7CF, 0x44C42335, 0x27F0D440, 0x332FD847, 0xD72F2CE3,
|
||||
0xD7ECD6C9, 0x4026D51F, 0xD334BEE6, 0xE01B40C5, 0xD62BDA2F, 0xDEEA36AF, 0xABD039C7, 0x2E123FCE,
|
||||
0xFD3924A8, 0xD0C6D529, 0xD52AEED4, 0x211D2A35, 0x1EE9C5F1, 0xCECAF921, 0x38C92740, 0x3E4E2A1A,
|
||||
0xB8FAC7C3, 0xF11F1C36, 0xD4DA163A, 0x2701DC38, 0x0E3019D5, 0x57DB23E1, 0x43CD26D0, 0xADCC4934,
|
||||
0xE0D3D706, 0x403A0000, 0xDECED5E1, 0xDAE6CF1D, 0xD5E33C40, 0x35B3D038, 0x24D73231, 0x2EC01D40,
|
||||
0xC2D23CDC, 0x44C20BC6, 0x44C1D7A8, 0xE9D1C745, 0x36E5C2C6, 0xB81B2D42, 0x413917CC, 0xD8E031BA,
|
||||
0xCE3CC1C4, 0x3EC91AC5, 0x0DE406CE, 0x35D1DA27, 0xC8E5CAE3, 0x313EC127, 0xB61631CA, 0xD73B3444,
|
||||
0xD834C850, 0x37D31DE2, 0xCCC9153D, 0xBF41E9CA, 0xD649F9DC, 0x3A31D501, 0x50CD1DE3, 0xC8E54012,
|
||||
0x4432D4D5, 0xCBB93023, 0xE8FCD6C2, 0xCEE0CAD1, 0xE41B2E39, 0x28CC0E40, 0xDFEAEFFD, 0xB3EA2723,
|
||||
0x3534B935, 0x42D12A09, 0xED3DCA0A, 0x263C352B, 0xAD224EDF, 0x2CDF2A10, 0xF0BE4CAD, 0xBD45D8D5,
|
||||
0x263F27D4, 0xE2372FB4, 0xC35240DF, 0x1EF3DCDA, 0x3AD0D224, 0x27DAD527, 0x303A2CBE, 0xCDDCC829,
|
||||
0xE22B35C9, 0xD5DC222F, 0xEEBDCB63, 0x2042DAD8, 0x06CC3524, 0xD11BBB3E, 0xAE2229E6, 0x1FC81E1F,
|
||||
0xEF4B12DA, 0xE1D846DD, 0xBA3B1CDA, 0xE154C801, 0xD6092CD2, 0xD0F132CB, 0x3A40D027, 0x123530BB,
|
||||
0x1EC5B4DC, 0xD11825CB, 0xC603DECC, 0x28BCC5ED, 0x2C03E1CD, 0xE9AA12A5, 0xDB2DD53A, 0xCA32D01E,
|
||||
0x2F4A09C5, 0xFE411E26, 0x1354CEC8, 0x3736C5F4, 0xC62F3C3B, 0x252DDFB9, 0xD0353723, 0xD8DDC21E,
|
||||
0xE3DF21ED, 0xDAE33AC0, 0x2ADA323E, 0xDC43E1D9, 0x3A23463E, 0xD71934F8, 0xDB1037C8, 0x38B7BCCC,
|
||||
0xDA2C1CC1, 0x3EEEE349, 0x2ACB2A26, 0xD4BCBCD8, 0x4AB50000, 0x9EC941D8, 0x3824C9D0, 0x203CCD36,
|
||||
0x0DCDEDD8, 0x5B333036, 0x3125C7DD, 0xD7383F30, 0xD6C72617, 0xE1C245DD, 0xBDD3E818, 0x3210422F,
|
||||
0xD00ECF2E, 0x44411A3A, 0x02E72E22, 0xF106D24C, 0xCFC847CF, 0x0421AFCF, 0xD2C525A9, 0x3CBCE63A,
|
||||
0xE02A1E36, 0xE036E3E4, 0xDDC22B25, 0x2EC7452E, 0xE1E3EFE3, 0xD82ED6CE, 0x36C1E115, 0xD129E026,
|
||||
0x251E1C44, 0xE8E5D7CA, 0xDDE7D40F, 0xC5D8D9D8, 0xA1C52550, 0x3ACDDA25, 0x3548C4E1, 0x2913D9C8,
|
||||
0x1E28243A, 0xCA3324E2, 0xD0D7D1C0, 0xBDE9D0C4, 0x35BF4FE0, 0xCA42E33C, 0xBBFA33DA, 0xD753C9CD,
|
||||
0xDA2CE11D, 0xD9BEE407, 0xE31DD4C1, 0xCBCCD51B, 0x3BB8D6C9, 0x0000DDDD, 0x28D3CDDC, 0xD62445B5,
|
||||
0xB3211F13, 0xD7B9BF29, 0xD429D5E5, 0xB9C23CCE, 0xC219EDC1, 0x211E0B34, 0xB8F0E1C1, 0x33C0EF4C,
|
||||
0xD8D6C7D0, 0x30E8D3D8, 0xB06514D1, 0x21B9D915, 0xE2323DCD, 0xDA41311F, 0xE24AB11F, 0xE9B92BE7,
|
||||
0x33EA23C3, 0x04C430C0, 0xE849EF0D, 0xD1232C2C, 0x260FD13E, 0x002DCBDD, 0xEB3129E2, 0x20B4C7C6,
|
||||
0x25D32335, 0x2CCB39D0, 0xEA13DAC6, 0xCDEE2E14, 0xCDAA2CD0, 0xE1D339E6, 0x36DCD03B, 0xF5453114,
|
||||
0x34D428ED, 0xEAEDF458, 0xD226CC2D, 0xEDD03AD8, 0xEE1CC83D, 0x10DBB5E5, 0xF018CBDB, 0x5E33E31E,
|
||||
0xC6D9232B, 0x1A373130, 0xDFE7DDCB, 0xB21FC5C6, 0xC1CDB1B7, 0x3F2DF128, 0x482BB426, 0x323E0000,
|
||||
0xF5D43741, 0xCC1C1FB9, 0x00004E2E, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x13000000, 0xC9112F26, 0xE3DF1FED, 0x284020CF, 0xC6ED13CA, 0x38B1E217, 0xD90FE8DB,
|
||||
0xD7C0C3B7, 0x341336CE, 0x45E2D239, 0x3E22F0D8, 0x461D2C29, 0x3825D628, 0xD733E5F1, 0xD7B6C532,
|
||||
0xC62B28C7, 0xD0BF3024, 0xF0BA3A26, 0x2D1D2836, 0x1BCF2DDE, 0xD02B251A, 0xB938CD2C, 0x34E220D9,
|
||||
0xC2BEC23B, 0xCC2908CD, 0x1D080039, 0x42BB25C5, 0x32EB3206, 0x36D3D1E0, 0xC32E10C3, 0x243B13E6,
|
||||
0xC02A1FF0, 0xC325D6DD, 0x23E33D2C, 0xDCD7DED5, 0x9C23C21D, 0x32E62056, 0x06314421, 0xE9E4ED24,
|
||||
0xC0C9C233, 0x44BE3FDD, 0xD25134E5, 0x292EE2E7, 0x4EE0D1DF, 0x29C82E3A, 0xF5392A22, 0x4BE2D133,
|
||||
0x58C2C4C8, 0xD2212920, 0x2935D4DB, 0xDECF4400, 0x31D7CCC9, 0x12DCFB2D, 0x2B2F0723, 0x2DE7B54E,
|
||||
0x2AD24ADA, 0x261E2931, 0xD538CEDF, 0xE12A1C2C, 0x33DDEDE9, 0x2FFC36C4, 0xE61823CE, 0xC225E1DF,
|
||||
0xC2102FEF, 0xCFD22617, 0x3EFBDA37, 0xDAD6BCD8, 0x110623E7, 0x3320E2D1, 0x1932B8D5, 0xCCEBBFC9,
|
||||
0x47234011, 0x0A2B45D8, 0x25C11244, 0x00EF3221, 0xC634CC38, 0x0F34D0E6, 0x1A3F40EA, 0x2DEDC82D,
|
||||
0xFFD2C8BD, 0x40E321CD, 0x24441BD3, 0xD932EDDD, 0x48362127, 0x1230EADE, 0x39E632F9, 0xD0D451DC,
|
||||
0x18DD2DC0, 0xC22AC72E, 0xD71E172E, 0xAFDED12B, 0x1DBAA948, 0xF927B647, 0xD7C31C23, 0x3328E73B,
|
||||
0xDBD72DD9, 0x3E23D424, 0xCB09E025, 0x16BA21CF, 0xDD00B9CB, 0x29E3CAD7, 0x3A19D011, 0xEA0EC4E0,
|
||||
0xD51CDDBF, 0x2AD1C640, 0x2CD6CBD3, 0x36D6D43C, 0xA72851C2, 0xE7EE3C3F, 0x432A4721, 0x46C726E5,
|
||||
0x253FD426, 0xD03B2C27, 0x1AEC343B, 0x5A2BC735, 0xCE31D2D2, 0xCFEDF30D, 0x492B4141, 0x20DC1BAD,
|
||||
0xDAF81CD9, 0xD6EAD21D, 0x2339CD25, 0xA31546BB, 0xD0C0F63F, 0x382BE719, 0xDA34BFDB, 0x1EDBBADF,
|
||||
0x5151E646, 0xC164D5E2, 0xD8292FCA, 0x33CF1F3B, 0x3FF531F4, 0xD3EB3453, 0xD433E236, 0x1B102B1C,
|
||||
0xC6C320E8, 0xD8393C2E, 0x17EAB7EB, 0xE0C42CE5, 0x313720CC, 0x3F39C42D, 0x33374AD5, 0xCE1ED41E,
|
||||
0xF7D2BE0D, 0xF114311E, 0xE22CD6EB, 0x4E23CA2A, 0xCDCF36D3, 0x463B1EC4, 0x312DE400, 0x1A1219CE,
|
||||
0x0CD1E2C3, 0x3850CBEA, 0x31D7CCCD, 0x3F2D3936, 0xC518E33E, 0xC31F31B7, 0xC0AED6C9, 0x2AC6E5D9,
|
||||
0xC334B8BF, 0x35EFD72E, 0xD72B3AD8, 0x31073AD7, 0x25E22D38, 0xF0CD4A64, 0x28DFDB2D, 0x22D9E714,
|
||||
0xB8E43935, 0x35FCBFEC, 0x1DC1391E, 0xD6E731A5, 0xBBC8B837, 0xBD3FBE3A, 0x00BADC53, 0x28C43F33,
|
||||
0x1CE0BAC2, 0xE0E125D9, 0x3BD6CB3D, 0x313230BE, 0xC4243D34, 0x1F24D2B1, 0x2058384C, 0x2AE9192D,
|
||||
0x302CCCEE, 0xD435C4C7, 0xB0D53217, 0xE52D32D9, 0xE0AF2127, 0x3E47D0CA, 0x4112BFCA, 0x27D0D0BD,
|
||||
0xE81E5CF9, 0xD50CBCE5, 0x2DC9B4F7, 0x3FBA33BC, 0xCBCC2821, 0xDFD51326, 0xD20ADA3A, 0x2000C3BB,
|
||||
0xC4DC4BE5, 0xCD39D7A7, 0xC40FF54F, 0xCC3BD1CC, 0x2C19EACC, 0xCD2E2129, 0x44D9F0DB, 0x2B40E11C,
|
||||
0x31343F4C, 0x0E142817, 0xD0104135, 0xE304CAC7, 0x259A1FD4, 0xC3EAED3C, 0x1A311AD7, 0xD8242BEE,
|
||||
0x20BF4EFD, 0x3FCA16C5, 0xDDEED03A, 0x0A22C52E, 0xD53B2D3A, 0xE22A2CB5, 0x291D3228, 0x2CCC2E45,
|
||||
0x48BA00D5, 0x4FE12D1D, 0xD8D91DD1, 0xCEDBEC31, 0xFBD526B9, 0x3C1DE845, 0xAFDCE91C, 0xD622D31E,
|
||||
0xCF2620D9, 0x28D63427, 0x362C3DDF, 0xD72C2530, 0xD6A7C203, 0x442C3233, 0x29B24E3F, 0xDD21412C,
|
||||
0x400BD6D0, 0xC8D4B831, 0x171EF12A, 0x34FFC9D0, 0x3B3ED02D, 0x0BC7E2CB, 0xC43D28C6, 0x42F6C948,
|
||||
0xD24AD429, 0xCB2C2A00, 0x43E2A236, 0xBC353312, 0xD91324B5, 0x30B4D013, 0xC92FDE2F, 0xBFD6D432,
|
||||
0xC82DCABC, 0xC032DC1D, 0x30C9D2CB, 0xE0341DC5, 0xDDCEBE39, 0x2CC41D58, 0xE213BF14, 0xDFCDCBD9,
|
||||
0x2E3C36DD, 0xE5262833, 0xF841291D, 0x15E324F5, 0x0315D732, 0xD1C5C5CA, 0xD73144D3, 0x2ABEBA1A,
|
||||
0xBCF42E2C, 0x00E1E53B, 0x4423AD2C, 0xB021CF20, 0xD8D5EEB6, 0xBD35BCCD, 0xE6D85334, 0xD549DF2D,
|
||||
0x35C74D19, 0x3F4BBE3D, 0x1F3FA3EB, 0xCEB2B335, 0x35D0BCBA, 0xD5D8CF27, 0xB11DCFC4, 0x24D3D408,
|
||||
0x183B35D0, 0x1C14D619, 0x35D445BB, 0xDE452444, 0xC83315C5, 0x3F2122D0, 0xB623C737, 0x33321DD0,
|
||||
0xD6DF33DE, 0xDE39AA20, 0xCF00F239, 0x412410D5, 0xC5DC2339, 0x1D3BD1B6, 0xC0E3481E, 0x1030451A,
|
||||
0x30EA30D1, 0xC6DCB9C7, 0x2C36DC17, 0xCBB0ED30, 0x26C20FBE, 0x35D6D528, 0xD6CC2242, 0xEDE4241E,
|
||||
0xC036DED9, 0x26303627, 0xB6B6371B, 0x26E3D6DF, 0x0D36C729, 0xBEEE4FD7, 0xE3C839D1, 0xC0313031,
|
||||
0xAEAD2828, 0x36323D23, 0x13342728, 0x2904EE20, 0x261DDCD6, 0x0CBCE1E1, 0xD2CBD5C3, 0xFD1C4B2C,
|
||||
0x1CD8CDDB, 0xD4BE53B1, 0x2BD6CDDE, 0xC61A01E1, 0x3D41BED3, 0xE0333BD0, 0x4040E821, 0xC4A32449,
|
||||
0xD3D3A8BF, 0x36E11C2C, 0x3CC1321B, 0xC5D03E1C, 0xB813D9DD, 0xD6C51838, 0xCEBED141, 0x1FEA3813,
|
||||
0x3611CAC0, 0xD12EE2C6, 0xE1BFD22D, 0xD0DAE9CC, 0x0E03DB00, 0xBC37393F, 0x422BC916, 0x49C4D72A,
|
||||
0xBFC0243B, 0xC1C2F1C3, 0xDF36CC32, 0x49E53EE4, 0xBFC02CDF, 0x2BEE2BE1, 0xC23224C5, 0xD63F16DA,
|
||||
0x15DBC21F, 0x49E4CC57, 0xBE272CC7, 0x274E0643, 0x5C1DDBE7, 0x34B73DF0, 0xCD2D2EB9, 0x1AD43BCD,
|
||||
0xFD3047D3, 0xDAC53936, 0x1328DCC8, 0xBC32331D, 0x001F2634, 0xC845410F, 0xDBDB1C2B, 0xD1D819D0,
|
||||
0xEBDDE12D, 0x37E335D7, 0xCDA84635, 0x0F362FBE, 0x30C229C4, 0xBC1DC43E, 0x3CD02F3D, 0x2EF5F5F4,
|
||||
0x462D15E6, 0x362F1FC5, 0xC0C9CD49, 0x14C92639, 0x2BD135D0, 0x49C6B8DA, 0xDBC7E1D9, 0xC6382328,
|
||||
0xEDC217BC, 0xE4D1331C, 0xDCC741CF, 0x283A341C, 0x38B93420, 0x46001BE7, 0x3E1030C4, 0x42A8C1CD,
|
||||
0xBB3339C5, 0xE538DD20, 0xDF3F2602, 0xE52BE5C1, 0xBE2B41BA, 0x3BD4D337, 0x2D39C3DB, 0xC3BB36F0,
|
||||
0xD12CCF17, 0x4130B93A, 0xE31DEAEC, 0xF9DEF52D, 0xADD35231, 0xD62ED0EF, 0xBE303521, 0x1E2ADB41,
|
||||
0x310AC62F, 0x22DA2DC5, 0x26E1D9D0, 0x1F4D2AC1, 0xC8E6DCE1, 0xC6B3D62E, 0xD6D20019, 0x4EDC2D39,
|
||||
0x342AE224, 0x07CBD4CB, 0xE43FB3BE, 0x1BE53748, 0xDD44C8A2, 0xBC34B7BA, 0xA1DD1D43, 0x23D31827,
|
||||
0x3519E93F, 0xC83B3720, 0x1BF0B72A, 0xEAC7DCC0, 0xCA4B28EC, 0xD54D242F, 0xF35435D1, 0x3DDEC824,
|
||||
0xC31128CE, 0x0B0FD136, 0x442D1E2B, 0xCBD1C3EC, 0xD635341B, 0xDD1F2931, 0x3442CDD0, 0xDADD3600,
|
||||
0xC31E40E3, 0xB0BD1B22, 0x38CA1F0D, 0xD42D3043, 0xE65127E4, 0x2F15C9D6, 0x3E360B30, 0xB2CB1524,
|
||||
0xC7BBC4DF, 0x38D244C7, 0x483B31C0, 0xDB43C8D1, 0x43DCDBBC, 0xDCC7571D, 0x24BAC2C6, 0x3B4ED6DC,
|
||||
0x3AE03245, 0x0C40E1E2, 0x493724C0, 0xD4ECC537, 0x36CC30BA, 0x1C303FC6, 0xD12F27D5, 0x00C4272F,
|
||||
0xFFFD061D, 0xC2D9251D, 0xC1D7D625, 0xBFCD3AD3, 0xB42E11D4, 0xC7230E1E, 0x24CD2C21, 0x0BD436F9,
|
||||
0xCECCD331, 0xE6BDE0D5, 0xD2C6C941, 0xE1D1D3EF, 0xEB4123CD, 0xDA1755E5, 0xCEE4C529, 0xDC43C5D1,
|
||||
0xD8FDDFEA, 0x1AC9C317, 0x22E13DCE, 0x01D7BA29, 0x1551E449, 0x43CD363E, 0xC6281B24, 0xCBD23725,
|
||||
0x3200D61C, 0x35D6CCBC, 0x262CB22C, 0xE2E43DB1, 0x26493335, 0x3AD72ACA, 0xC4244430, 0x3AD7C9C3,
|
||||
0xC91ED8D1, 0x40EAD2AC, 0x38C9CDAC, 0x413BC137, 0xCD304B1F, 0xEFCA2323, 0xAC3FE4CD, 0x3616F6E0,
|
||||
0x41C2272A, 0xDCD7B2E2, 0x27D9E018, 0xDEE2D943, 0xD5C01F22, 0xB0D93540, 0xB411C13D, 0xDE39CBE0,
|
||||
0xE2C6F126, 0x31450828, 0xD2BC2927, 0xBACA1DD1, 0x34DDCDC3, 0xD8302AD5, 0xE2D02824, 0x0B2BE03E,
|
||||
0x3BCAFD2C, 0x2E461D45, 0xBBF6F32E, 0x31E5DED2, 0x2ED4E847, 0x3BDDCD29, 0x231331D8, 0xF521CF2E,
|
||||
0xD024C718, 0x20D91011, 0xDB1E0F34, 0xD931C0BB, 0xBB310837, 0x29B7C5CB, 0x3B31DEE0, 0x0836B926,
|
||||
0x28CB1FD4, 0x31072A30, 0xEE41F300, 0x35CB501E, 0x603A2B47, 0x2C2739CE, 0xC0CFC4D9, 0xE0CED43C,
|
||||
0x22BDC9CA, 0xBAEC122D, 0x4D16F2C5, 0xB6E5C3DA, 0x19D5C9D0, 0x1D1DDFC2, 0x223A23FB, 0xCD382B09,
|
||||
0x3025C2E6, 0x3918BDD5, 0x33DFEF0E, 0x291A302B, 0x14184930, 0xD414D233, 0x473CCED7, 0xD2D318B7,
|
||||
0x3E2738D2, 0x2928D537, 0x002E14BB, 0xE2E03734, 0x1B1EDFD1, 0xCF483FD8, 0x3D043844, 0xD52E1C4C,
|
||||
0x2823EAD6, 0x1F2D241A, 0xBC4B22E6, 0x2EE7DFB8, 0x3424E2F0, 0xD41BD7CB, 0x2BBCDF1E, 0x155B5033,
|
||||
0xB527D543, 0xE3C5E9F4, 0xD9B5C92B, 0xD3CAE0DF, 0x31C4CED7, 0x0BD33B25, 0xCF3B111D, 0xE62F241F,
|
||||
0x22D93D22, 0xCF27EF43, 0xDAD2C5DD, 0xC60019BE, 0x2935D5C3, 0x2D0BCD22, 0x224714EA, 0xE7CAB817,
|
||||
0xD1282222, 0x3C25EBD0, 0x45F0A8DC, 0x3ACFB92D, 0x34B4E7E6, 0xE93523E0, 0x2C292FCA, 0x44D4C7AC,
|
||||
0xEA22C3FE, 0xEF37E524, 0x313ADCDA, 0x2212D846, 0x1BE0FF4B, 0x1CBC2E34, 0x174AF041, 0xD245223E,
|
||||
0xE1DB2BDC, 0xF2E9A515, 0xE3C33BCC, 0x43DBD5CE, 0xF11700DB, 0xDE44DD36, 0x26E1D604, 0xC2ACE419,
|
||||
0xB9D8C7D4, 0x37EFE21E, 0xE2BAC2D1, 0x3926E91A, 0xD013E8BC, 0x2C43ECD9, 0x232B30F8, 0xD6C9E0BD,
|
||||
0x26A718BC, 0xEFF6C840, 0xC13332C2, 0xC4B9BD36, 0x1B4921BD, 0xD0EBECE0, 0xBCE4D647, 0x35D4DCD5,
|
||||
0x1BBE4C27, 0xECC1B7CB, 0xD820284D, 0x0BC33DBF, 0x34D03140, 0x38EC3900, 0x29EBDBC9, 0xD43A3041,
|
||||
0x3AE0DD0C, 0x09CFCFDB, 0x44E0C7CE, 0x20DBC4E3, 0x26DC41DE, 0xBA3AD2E5, 0x2ABA34E1, 0xD70FBEB7,
|
||||
0x40E03FE2, 0xF8D62041, 0xBD47B7EA, 0xD2E03E34, 0x1FC6D2DE, 0xCF1CD155, 0x32D52630, 0x3C463D2C,
|
||||
0x253130E3, 0x1ED8BB4A, 0x411BDFDD, 0x3FD8EE35, 0x33D02BBB, 0x002ECAAE, 0xDF1FDFEB, 0x2CD8DA3C,
|
||||
0xB6352D59, 0xD5BDD3B9, 0x1946630D, 0xD9181731, 0xD419D31F, 0xCE2FB7D0, 0x32EFE3C3, 0xCDDB2FD3,
|
||||
0xD247BB3E, 0xBA41DECA, 0x23244AD2, 0xDEAAF2B2, 0xB8D525F2, 0xD327A4D0, 0x3718C0E2, 0x2D3E20D9,
|
||||
0x24CFDF12, 0x26D0BE1C, 0xC8D9282E, 0xEB54CADF, 0x44DB1AED, 0xC927BF29, 0x2E002B39, 0xBB2625E4,
|
||||
0xBB4421D2, 0x18CBAA3A, 0x213ECD37, 0x0F33163C, 0x3622E432, 0xE5C7C62B, 0xDE39E7C7, 0xF3151CCA,
|
||||
0x2ACED6D2, 0x2ADADFC4, 0xD6241ACC, 0xB92F0622, 0x1BC639E4, 0x33D92BC4, 0xAF14E0DD, 0xE6EEC2C9,
|
||||
0x16BDCAE3, 0x272E1AC3, 0x292E1EBE, 0xDCE439B1, 0x4225E1C6, 0xCD372420, 0x27D716B1, 0xD83EE339,
|
||||
0xDBCAD4B3, 0x26385033, 0xC5373528, 0x2DD2C936, 0xF9D5BAE6, 0x2E2DC7C2, 0xCD4BD045, 0x1DDF2DE8,
|
||||
0x0E3740CE, 0xE5D82C36, 0x29D1360A, 0xCD03C8C6, 0x37CCCCD8, 0xD83AD330, 0xBFD619CD, 0xDEDDC432,
|
||||
0xD0DADAEC, 0xD3E14F26, 0xA8CD35D9, 0xA3F325BD, 0xBC1626D7, 0x3AB81BD5, 0xBBFF1832, 0xC9DB2126,
|
||||
0x16250000, 0xE003BB39, 0x35D533CE, 0x1801C610, 0xD9D44644, 0x474BD3C3, 0x1C30C51E, 0x2E3342C6,
|
||||
0xB7D6B3E9, 0x5AE44BD2, 0x46D62830, 0xDBDD4B0C, 0x38CF2F1D, 0x2D331ACB, 0x36CCDED6, 0x10D7DA10,
|
||||
0xD42246E0, 0x0FC73FC0, 0x2C3E1E37, 0x2CF0D1B8, 0x17412EDD, 0x2630D0DD, 0xDBD535E4, 0xD927DA43,
|
||||
0xB636C11E, 0x25CBE2D8, 0x4711F64B, 0xBC2C2029, 0xD0E3F538, 0xB92C27DF, 0x272DE2D2, 0x0CC5BCEB,
|
||||
0xC0BC2EDF, 0x26D131C9, 0x1F092FEE, 0x2D342B34, 0x31B825D5, 0xC6BBC9C1, 0x38F1D0E4, 0xCBF7FDC7,
|
||||
0xC3CAC9B6, 0xDBC436C6, 0x19DC1FD8, 0x28CCAED1, 0x1921BDB4, 0x24BCBF33, 0x301EE244, 0x36BDBDE1,
|
||||
0x31C5B724, 0x00003ECD, 0x220B1EE7, 0xDEBAD3DC, 0x21CAB942, 0xC9193B33, 0xE3CD3A0A, 0x0DC22CC3,
|
||||
0x3EC0C7CB, 0x43F2BFE4, 0x0ECFE9C6, 0x3ECA2FD5, 0xCB492DD9, 0x23E7BDC9, 0xD33DC151, 0xFCBE2933,
|
||||
0x5ACEC51E, 0xF2172E1C, 0x3C24DE23, 0x3320D4D5, 0x2AB53C20, 0xC328323A, 0x45EA4133, 0x24391A32,
|
||||
0xC7D8DA2B, 0xF4EAAF39, 0xDFCA36E3, 0xDEBED5C8, 0x36252C36, 0x04D7DBC7, 0x30CAC23D, 0xB60BF73D,
|
||||
0xEACA2A30, 0x34C12ABE, 0xE2D747D8, 0x19D21FE3, 0x1DFD24EC, 0xB6B5D9C4, 0xBF2C1DD2, 0xD2B442E0,
|
||||
0x37CCE1BD, 0x2AD1E1CC, 0x18DAC6BD, 0x213AD93E, 0x2031D8CB, 0xD82F2D12, 0xD112D2F2, 0x19CD43F1,
|
||||
0x36BCB9CA, 0xD7C5DDFC, 0x34011D28, 0x3BDB0000, 0xCD00E1AA, 0x5228252C, 0x3512CA34, 0x0EE53A41,
|
||||
0x242CD2C2, 0xF425DD2A, 0xF02FDDF8, 0xD82026D3, 0x4ABEE7B8, 0x2DC9DDDC, 0x3BEECD3C, 0x2ED1442A,
|
||||
0xC713E92A, 0x310CC12B, 0xE128D520, 0x48E5C1CF, 0xC91CE3ED, 0xCCCBC72F, 0x0B23E3E9, 0xC1D2C8B6,
|
||||
0x511ED534, 0x2AC7D4C3, 0xCFDCE335, 0xD4C9F643, 0xD433EBF1, 0x1BF8DA31, 0x223FC515, 0xCC2F13C2,
|
||||
0xF825FFC8, 0x35E51633, 0x36293C4A, 0xC72ACA36, 0x4544E736, 0x1BD9315C, 0xCF16DFD4, 0xD0AFEFC3,
|
||||
0xCECBBDE2, 0x05D6AA32, 0xD851F045, 0x240FD948, 0x3D35B2E6, 0x17D7C7EE, 0x0B22DACE, 0xF53AD637,
|
||||
0xB2372DDB, 0xF6DF14CB, 0xBED95B24, 0xD4D5190B, 0x0000CB29, 0x3DC1ECF5, 0x30C6B34F, 0x1D2629B6,
|
||||
0xD429D1CC, 0xD50716E3, 0xD0C3C2CC, 0xC82CC7D4, 0x5F27C718, 0xE6201BE4, 0xDACFD42F, 0x2E2EE9D4,
|
||||
0x3AD036C0, 0x3828DB20, 0x27D63439, 0xD21026DE, 0xD60710BC, 0x13AEB9E9, 0x28C41944, 0x49D5E3D7,
|
||||
0x27163429, 0x1BBAD528, 0xB12A14BC, 0xC72FD9E2, 0x1F43213A, 0x133B3EE5, 0x3622FE21, 0xD438DCBE,
|
||||
0x41CB25E8, 0xD0D83E2C, 0x32BFC2CE, 0x362BE1DA, 0xC3CBCE24, 0x22DECDC2, 0x30CBD5CD, 0xD42DBC26,
|
||||
0xDDF6AAD0, 0xCADC0EC8, 0xDC333434, 0x333114F5, 0xCE24361A, 0xB1C5D123, 0x4B25380B, 0x2FEC3634,
|
||||
0x3EE2A610, 0xB4CEE72F, 0x29BCC721, 0xB23850CD, 0xA51AE4DD, 0xC81BBC2F, 0xD4DF0000, 0x2DE5D1E8,
|
||||
0x2E0A28D0, 0x29E3C1E1, 0x56F62DD6, 0x3828DD4B, 0xC41ACFDF, 0xD2390A3A, 0xDF3028CC, 0xE8C5E22B,
|
||||
0xD11CDCC1, 0x44D1CBEC, 0x33C73DDC, 0x1D25B7DC, 0xE7DD0525, 0x2743C41A, 0x2AE2D3DC, 0x21D6E82A,
|
||||
0x133CBAC7, 0x593F34B0, 0xDA5FE339, 0x5206252C, 0x394FD5BD, 0x21D2C92C, 0x292426E0, 0x48E0362B,
|
||||
0xCC272DE4, 0xC815C4DE, 0x49BD5D37, 0x1912342F, 0x2CE9E01B, 0x30D8D2D9, 0xDEBF46E8, 0x392F473A,
|
||||
0x3A18D324, 0x2FE31FD0, 0x2B2B2710, 0xB53B2AC7, 0xB3481CFF, 0x2DD7CFBC, 0x2232351A, 0xD7C91C16,
|
||||
0x1CB4DA16, 0x1BCBDF3C, 0xD2213822, 0x2121DB1F, 0xDBD1C02A, 0x27DA33C7, 0x351FC4CD, 0x0000B9D8,
|
||||
0xC2142C29, 0x38B9DD31, 0x54E60CDF, 0x2A4A42DB, 0x35CF2BB5, 0x0CEA3323, 0xC2D8BEE2, 0xC61F3B33,
|
||||
0x10CE11D0, 0x3336CE2E, 0x303ADD25, 0x3347B7D9, 0x33222C1A, 0x1A43E4C1, 0x4326E019, 0x2AE2E92E,
|
||||
0xD2C5DC40, 0xBA45D7D6, 0xDF341BDC, 0x3A361925, 0xD4FEF4D2, 0x3018DA31, 0xDDC12817, 0x3038DE24,
|
||||
0xEDC0292B, 0x3E3E3336, 0xCB1BEF17, 0xE10B2EBF, 0x2B20BABF, 0xC80C421B, 0xC2411D21, 0xECD8C7D6,
|
||||
0xC824E4AD, 0x65B53DD7, 0x304325D4, 0xDD1DEAE6, 0xD33131CF, 0x2F36452B, 0x23B219E9, 0xC1C23529,
|
||||
0x21DC3836, 0xD618E933, 0x393E2C14, 0x362ACA3A, 0xD6E2C237, 0xD6085111, 0xD721FCB1, 0xCCE6DEBC,
|
||||
0xD1DCD920, 0xC3320000, 0xEA26CB19, 0x18BB26B7, 0x233BDF4F, 0xDE23FD3F, 0x2ADA1ECB, 0x3122E839,
|
||||
0xEF42D7D7, 0xCAC7202D, 0xCD4CDED1, 0x2633C824, 0xD0123E4E, 0x104429B6, 0xC8CD4B00, 0x5136B738,
|
||||
0xCFC8202B, 0x163135DD, 0x2C3821E8, 0x29314CE0, 0x0F3CE4EC, 0xE5432DAF, 0xC63AE340, 0x4639DB18,
|
||||
0xDF282511, 0x25B5CBD3, 0xCAF50F37, 0x1E443B33, 0xE32CD32D, 0x10DA47B9, 0xDA410526, 0x34F0E4EA,
|
||||
0xCEED3134, 0xC0B31AA7, 0xD12B1AD3, 0xC722C743, 0xBFBEDD1F, 0xD328D52B, 0xCC384024, 0x18B43FB8,
|
||||
0x281742BB, 0xD8322FD2, 0xB5D628C6, 0xE420C0CB, 0xC9EB391D, 0x41E6B419, 0xBCC543E1, 0x2C37DDEF,
|
||||
0x1F2D41E9, 0xD0F0D205, 0x1FEAE5C5, 0x15DF14B8, 0x47E327D9, 0xD328CE25, 0x36DB2E24, 0xD92E1EBF,
|
||||
0x2B3230F4, 0xD1EAD5D9, 0xC7212ADA, 0xCD1235DC, 0xC519D5DB, 0xBFC631DF, 0xD5222B35, 0x35B6DEC6,
|
||||
0x153C4428, 0xC5C3E42F, 0x1B2E2D2A, 0x3CD422A6, 0xC22842CC, 0xCADAC43D, 0x2C10DAD2, 0x18C708B5,
|
||||
0x36D636BD, 0xCD29C5D3, 0xBFED433A, 0xE0384939, 0x005629F2, 0x36E2C425, 0x2830DF1C, 0xC9CB351C,
|
||||
0xB0D7D3E6, 0xF3CEC214, 0xDC25D1C7, 0x1BD5CBCC, 0x19DD21C9, 0xC854EE30, 0x4FE14EE3, 0x38D5D3E8,
|
||||
0xC9D126E4, 0x2FDD2130, 0xCE2130D1, 0xCFCAB0C9, 0xC71F0E1A, 0x2627D4DE, 0xCBE9DACD, 0xE7121F22,
|
||||
0x2CC8E435, 0x3838391D, 0xDD37242E, 0xEBBE2F10, 0x233C0000, 0xAFC91CE7, 0xCE3536F6, 0x0F25D248,
|
||||
0x2D04EBE4, 0x3FF634E5, 0xE929CE26, 0x24E0BABE, 0x302CD52B, 0xD1E2073F, 0x4333D11C, 0xDA48C2D1,
|
||||
0x2D33F315, 0x29B2C8C3, 0x3B26E3EB, 0x3821C6DA, 0x32163DD6, 0x1DC737BC, 0x463CCD24, 0x19D63DDD,
|
||||
0x200BDDB7, 0xBDD41E22, 0xC40A444F, 0x34BF49ED, 0xD4C0C0F4, 0xA41FB721, 0xBEDF51E8, 0x15D82A17,
|
||||
0x383FDF21, 0x2B2918D0, 0xE6EB4718, 0x244530DB, 0x25DD3919, 0x3BA819BE, 0xDAEFBE38, 0xEB3FCCD9,
|
||||
0xD1DF2E1C, 0x2520C3E3, 0x32D0BFD5, 0x37312BD5, 0xDC29D0C9, 0xBED02432, 0x310C3A18, 0x411ED8D7,
|
||||
0xA4E5CE22, 0x163CBD30, 0xC3E2BE45, 0xCFBBAAC3, 0xC8C0E4CF, 0x0000CEFC, 0xE8CC2433, 0x39ED223F,
|
||||
0x243AD83B, 0xD44D39C6, 0xCABF24DE, 0x252050EB, 0x29C73B40, 0xD4F434CF, 0xCAE4D5DF, 0xC5F2EEF1,
|
||||
0x2919C8D2, 0x2FC4D20B, 0x1CBF5528, 0x3DBBD52D, 0xE03AD031, 0x3D2CCA17, 0xBE23BDB8, 0xE7DA3B30,
|
||||
0xD1D2D331, 0xCC1825EA, 0x2F2D39D2, 0xF9313526, 0xCFBCC2E1, 0xE5BE3AD4, 0xBF59BE1C, 0x22FFC8B5,
|
||||
0x32B14015, 0x31D6BEE6, 0x46DF3843, 0xDCD1D8B2, 0xE728C8BE, 0xEA1E2A28, 0xD1D8C7D2, 0x30CAF134,
|
||||
0xEDD0EADA, 0x13C1E3D0, 0xB9D7DC29, 0xEAB93624, 0x24E49F38, 0x2E3FDEDC, 0xE6D0D23D, 0x1FBB3ED2,
|
||||
0x23D540DD, 0xD727D92B, 0x251E33E6, 0x4BA7EECE, 0xC1CD203C, 0xC5CFED32, 0xB9CF35C3, 0x29710000,
|
||||
0x29D7C636, 0x3A3ED1D0, 0xCC1B271F, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000
|
||||
|
||||
hard_output0 =
|
||||
0x42441F44, 0x006DFAE9, 0xDBB63AC2, 0xA3365CB3, 0xFA44372B, 0xC2603862, 0xA6C86E09, 0x416F0BF7,
|
||||
0x8E58011D, 0x47C54B99, 0x269AD14C, 0x0B286902, 0x093E4C64, 0x8D84D8E1, 0xB8AE0993, 0x49567118,
|
||||
0x8CEAABD2, 0x12D33409, 0xE3358237, 0x130176F6, 0x0986718F, 0xA18C83B5, 0x04EEF058, 0x59704040,
|
||||
0x7478FE81, 0x01D27193, 0xEA1AD7F3, 0x21E6C2B9, 0x6478A1FF, 0xED9959AD, 0xE39E57BE, 0x4D859105,
|
||||
0x056EF72D, 0xBD170BB7, 0xF01F9ADD, 0x99BF0C05, 0x44BAD09F, 0xF6ABDD61, 0xC0F8F116, 0x2972B53C,
|
||||
0x0FEC944B, 0xD1675432, 0x0025F563, 0xF42B2EA8, 0x808E5C37, 0xB6E79AD5, 0x3706284D, 0xB9C0AFA5,
|
||||
0xFF0E7E28, 0x5FA45C6F, 0x9CD5244E, 0xA013DDEA, 0x0D27D1A2, 0x2AE414AD, 0x41614379, 0xE6B68872,
|
||||
0x5585D926, 0x5098D45B, 0xF8980ABD, 0x65821418, 0xEF8968A3, 0x301DEC3A, 0x57EF2A7F, 0xC17BE446,
|
||||
0x94B65D62, 0xC9E6F350, 0x2E6130BC, 0x235F2E5E, 0xF1C13241, 0x94B291D6, 0x8C342458, 0x175B1FCA,
|
||||
0xE07310FD, 0xD24934DD, 0x3CE8D053, 0x5C8F243D, 0x945B0AB3, 0x50EB8CC1, 0x8EF499D4, 0xA67801BF,
|
||||
0x1680F061, 0x283FE705, 0xB8D7E773, 0x13AD3D2F, 0x4A6C305B, 0x1C1E5B12, 0x6F57D880, 0x8A666E5E,
|
||||
0x26511296, 0xFFC09750, 0xFF91760A, 0xAC26795C, 0x75F321FD, 0x4221B9CB, 0x2E119188, 0x0772A832,
|
||||
0x74D6036B, 0xA001B764, 0xF0D72816, 0xCBE119F5, 0xC5D6B248, 0x1BBAB091, 0x1BBE518E, 0xC647DCB1,
|
||||
0x240CE252, 0x3F8AAE65, 0xE0CDEAAB, 0xBE724062, 0x5720636C, 0xC816E67F, 0x8E5A6C7F, 0x9E2738B3,
|
||||
0x2419CBDF, 0xA6BF9B75, 0x48B21FC3, 0x8C4AED8D, 0xC1D8BCA8, 0x01353DE3, 0xA99D7D85, 0x9C6DDD20,
|
||||
0xA650398D, 0x4E7E5777, 0x623FA183, 0xF02B261F, 0xF0BBA66C, 0x35AC701F, 0xD818E590, 0x7CA713BE,
|
||||
0x01153743, 0xD1302B91, 0x55459E3C, 0x63FDA677, 0xECF93759, 0xBBE0E349, 0x73FD4FDE, 0x5C48C9E8,
|
||||
0x70F46F73, 0x0B15437C, 0x9F4159A0, 0x7C343E78, 0xB3D085E1, 0x04266351, 0x1933DAD9, 0x83AF8C77,
|
||||
0x2AC11BE1, 0x76C25CF6, 0x083E6CF7, 0x00DDBA22, 0x6AD2F284, 0xF87DBC6D, 0x7D40B45D, 0x6EBF21BD,
|
||||
0x972E8535, 0x632B51D8, 0x5BFBA23A, 0xCDF1D44D, 0x11749158, 0x06DC45D1, 0x93D63A59, 0x9D0552F7,
|
||||
0x61C8048F, 0xBFDE9FD2, 0x77827B70, 0xFFB130DC, 0xF18BBCE9, 0xD50C324F, 0x15521E17, 0x7D2470C3,
|
||||
0x5EE34C4C, 0x2AC0C8AB, 0xB2283269, 0x4107FE15, 0xE6DA1ED3, 0x66A2A3A7, 0xB204B429, 0x0E02F9D0,
|
||||
0xE5A45550, 0xEAF94102, 0x18F57A81, 0x8EEC9C68, 0xD575F397, 0xFC1BE8BF, 0x104E073F, 0xDF219F97,
|
||||
0x2EC93D4A, 0x6033EE18, 0xC1351A38, 0x420C6A87, 0x0B5DC831, 0xD90D23E2, 0x13B9E883, 0xCD65BE3C,
|
||||
0xDB17A9CC, 0xC73C2A7E, 0x3281
|
||||
|
||||
c =
|
||||
2
|
||||
|
||||
cab =
|
||||
1
|
||||
|
||||
ea =
|
||||
4918
|
||||
|
||||
eb =
|
||||
4920
|
||||
|
||||
c_neg =
|
||||
0
|
||||
|
||||
k_neg =
|
||||
3072
|
||||
|
||||
k_pos =
|
||||
3136
|
||||
|
||||
rv_index =
|
||||
0
|
||||
|
||||
iter_max =
|
||||
8
|
||||
|
||||
iter_min =
|
||||
4
|
||||
|
||||
expected_iter_count =
|
||||
8
|
||||
|
||||
ext_scale =
|
||||
15
|
||||
|
||||
num_maps =
|
||||
0
|
||||
|
||||
code_block_mode =
|
||||
0
|
||||
|
||||
op_flags =
|
||||
RTE_BBDEV_TURBO_SUBBLOCK_DEINTERLEAVE, RTE_BBDEV_TURBO_NEG_LLR_1_BIT_IN
|
||||
|
||||
expected_status =
|
||||
OK
|
|
@ -0,0 +1,677 @@
|
|||
# SPDX-License-Identifier: BSD-3-Clause
|
||||
# Copyright(c) 2017 Intel Corporation
|
||||
|
||||
op_type =
|
||||
RTE_BBDEV_OP_TURBO_DEC
|
||||
|
||||
input0 =
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0xD0000000, 0x33CDC8CE, 0x4FAEE4CC, 0xC7DC23C3, 0xC306D6CA, 0x2B360A24, 0xE91C423D,
|
||||
0x1F323427, 0x4B1C33B6, 0x3EC9D0E7, 0x39204DD1, 0xCCD73C37, 0xC6F6D8E1, 0x1DF828F3, 0xDEE34025,
|
||||
0xC41EC235, 0xD035E1D8, 0x3CC32843, 0x29B60C3C, 0xE92E122E, 0x454BD4C8, 0x35D02543, 0x33E4D0AC,
|
||||
0x07AF2228, 0x38C62DD1, 0x233800C5, 0x3CC02DD1, 0x35E73B19, 0xDEBED026, 0x33C5EDD9, 0x33E51527,
|
||||
0x1F21EA18, 0xCC3E3BD2, 0x013CC14C, 0x3724D23B, 0x23CDED2D, 0x21424630, 0xC5B0E64D, 0xCFC03BEF,
|
||||
0x24294241, 0x46C526BC, 0xD82F334C, 0x1E283DCB, 0x3F3F33C7, 0x4A14D2A1, 0xD92F2AF3, 0xCFA820CC,
|
||||
0xDD30C6CB, 0x2B3ACAB7, 0x4AFE29CD, 0x25BD3200, 0x2D293323, 0xD32A3B29, 0x29E64D0C, 0xBE4BFB3C,
|
||||
0xB1DD242D, 0x0427F11D, 0x3046CFDA, 0xD633C0D5, 0xC0DDBE01, 0xDA3DD9B4, 0x3BCE3638, 0x23262CC6,
|
||||
0x432BD2AE, 0x23A9E1C7, 0x1BE45609, 0x22CD35AA, 0x32D6371F, 0xCE27352A, 0xE2B73F40, 0xC2D0CE2C,
|
||||
0xE72E3A3E, 0x2FF52147, 0xEFCF2E33, 0x003103CA, 0xC6C14A33, 0x45CAC0CF, 0x011E1FD3, 0x23D3C72B,
|
||||
0x2EB644C4, 0x484BD930, 0x3AC22E1A, 0x1AB6DD42, 0xCEDDE232, 0x3ACCCC31, 0xB830CA2D, 0xC930D2D7,
|
||||
0xD0E049BB, 0xE6243524, 0x3EF53914, 0xCB083BE3, 0x411EDBE9, 0x30C3C3E8, 0x3721F5E7, 0xBBDF3FD9,
|
||||
0x2AD21F33, 0xEE402858, 0xD3AFD237, 0x3D39401D, 0x30003623, 0x4734DC46, 0x192ACD32, 0x3324CAC2,
|
||||
0xD714D4B5, 0xDC2E21D0, 0x2327CDBA, 0x15B739C3, 0x31C9EEB8, 0xFAB5372E, 0xC239B5DA, 0xE628440F,
|
||||
0x34D425C6, 0x293BE6FD, 0xBDC04BBC, 0xE0DDB7CF, 0xD627BC34, 0xA5422FCB, 0x13211ABC, 0x1708E51C,
|
||||
0xCE33DAD1, 0x51AEC731, 0x2E383824, 0xC722D0D3, 0xCB32292B, 0xCECC402B, 0x1B312EF0, 0x34CF46CA,
|
||||
0xE3BD252C, 0x0C21EC36, 0x4ADFECBE, 0xC4D2E62C, 0xADE5BAD3, 0xDDCC1D18, 0x521AC135, 0x3F302D37,
|
||||
0x22CE2DCC, 0x262A1BCF, 0x4EE7D7CA, 0xD43D3526, 0x1840E020, 0xC3201F2F, 0x3ACB453E, 0x41EAD5B6,
|
||||
0xB6C4CF17, 0x243A55D4, 0xC7501E28, 0x351DCD1C, 0xE3A8D502, 0x3235271C, 0xAC342F00, 0x34B4E3D8,
|
||||
0x36473AE4, 0xAE403CEB, 0xBC3FDA3F, 0x552CDBEC, 0xE7C42B5C, 0xE743E13D, 0x18D44650, 0xBA2EDF31,
|
||||
0xB5C3EC42, 0x432EBE2E, 0xADDE4F2A, 0x401BCAD6, 0x03D6EAEB, 0xD0DEB133, 0x153FC4D4, 0x30DA2FD3,
|
||||
0xEE282FD9, 0x242ADC39, 0xD72B42D9, 0x44C7E0D5, 0xC72CB3C7, 0x27C9472B, 0x0036DFB6, 0xD9C53112,
|
||||
0xC0360E0E, 0x4EEA0E27, 0xEDCF27C1, 0x1739D5DC, 0x22DE2CE1, 0xDCCAF633, 0x31D02417, 0xD7DCD0DA,
|
||||
0xDE1DE0DC, 0xD827DD22, 0x1CDBD7EC, 0xCE171BCB, 0xEE2347CF, 0xC22C312D, 0xDBCC2A38, 0xBE0ADED4,
|
||||
0xDC20CC2D, 0xD5380DB2, 0x2A32C701, 0x3EC7D41E, 0xCDD7D74C, 0xE83E2A44, 0xC12B26E6, 0xE70046D7,
|
||||
0xD626D1EC, 0x35DDE41D, 0x303F27BD, 0xC94D4517, 0x31D1E229, 0xAD3529BF, 0x3AC5D21C, 0xCF1DB731,
|
||||
0x2738DBEB, 0x1F382B33, 0x1ED52213, 0xFCE22CD2, 0x1330331E, 0x4A30BA0F, 0x1F38B42A, 0x2E34CB1F,
|
||||
0xE3E125D5, 0x3AC72D17, 0xBD3C342C, 0x37272810, 0x1D34E4C7, 0xE5CC2EF8, 0x1E2FF1DF, 0xB9294236,
|
||||
0x26F10017, 0xBDE3FBD1, 0xB7DB52D0, 0x2E3CB8E9, 0xB3343D3C, 0x3E3BDFDD, 0x1F46393A, 0x25FA20C1,
|
||||
0x2D194CD1, 0xE9471D26, 0x34C3242E, 0xAE012034, 0xC8F3FED7, 0xB825362B, 0x322DC136, 0x42F41511,
|
||||
0x181855C2, 0x4937D5EB, 0xE13CDC23, 0x08242A28, 0x2DCCDFC0, 0x13CEC64F, 0xB3E6F7ED, 0xD93401EE,
|
||||
0x3D02DEE0, 0xCFC52300, 0xD2F1BE38, 0x2D092924, 0x253E2AF0, 0x37DACAD0, 0xDB1ECFE7, 0x40CED84D,
|
||||
0x3706C42A, 0x4231D91A, 0xDD30471D, 0xBD272DC8, 0xCB1941D9, 0xC22FC7C5, 0x333F3C0C, 0x3F3D2518,
|
||||
0xDDCCD143, 0xB3D834D5, 0xD231BEE4, 0x2BDB3B3D, 0x2F2754E7, 0xEAF3CE64, 0x3632E4C0, 0xD83324C2,
|
||||
0x11A4D5CC, 0x00D627D3, 0xD51F2731, 0x17C92BE2, 0x1AD62E1E, 0x16DB2418, 0x16B83823, 0x2711D54B,
|
||||
0xDFB02BDF, 0x28CDA600, 0x2AE9ED3E, 0xD314CD20, 0xD04F272D, 0xD0F9CD37, 0xCC1735E5, 0xD328EC37,
|
||||
0xA7D31A26, 0x214BD9A5, 0xCFCB4226, 0x233C4AD5, 0x26EF37D8, 0xD83E3230, 0x3EC8C93C, 0x07B9282B,
|
||||
0xD1E6DAF2, 0x31C52EDD, 0x3A0038A5, 0x56C1E0DF, 0x22E437C0, 0xDBC8143B, 0xCF1DB03F, 0x1D4BE636,
|
||||
0xB8D3C23A, 0xBCC3372E, 0xAF284228, 0xDCE02F1E, 0xB9D4E3D4, 0x56D3D0D8, 0x494816C1, 0xFB1240C3,
|
||||
0x23B1BDD2, 0x1236322E, 0xC2CBCB47, 0x102FE7C8, 0xBB0AE1D9, 0x3831BC29, 0x39AECBD9, 0xC7CF1ED2,
|
||||
0x0AE43913, 0xDDD62F2C, 0x4FD522E6, 0x3CB90A55, 0x2101C8EC, 0x432604BD, 0x29E3E31E, 0xC25B3C29,
|
||||
0x20E927D4, 0xD4300C41, 0xD9AECBD5, 0x48D8E143, 0x2CEE272F, 0xD2C11FBA, 0x2F2DB8D7, 0x1CF4DFE6,
|
||||
0xCCDCCEBF, 0xE052D0EA, 0xDADDEB1E, 0xC72ACB3A, 0x332E2B1B, 0x2D26E827, 0x2A29E6A6, 0xE614D6D5,
|
||||
0x221D1CC5, 0x51102031, 0x1735C248, 0x31D4DCD5, 0x3C20DC00, 0x2D231732, 0xE54AD9CD, 0x1D24D826,
|
||||
0xE936373A, 0x20C0D3C9, 0x2B231520, 0xD6CED133, 0xDFC8C7B5, 0xDC2FE8B8, 0x3332249B, 0xC6E6E11F,
|
||||
0xB7DA17AF, 0x1FD91321, 0xEE29CD41, 0xE1262FEF, 0xB6181DC6, 0x24F618C6, 0x3BE5DA2D, 0xFC2C35C8,
|
||||
0x51C232CC, 0x36183EDF, 0x2B2CD6EF, 0x2F2DBDB9, 0x00D03413, 0xCDC9CBC4, 0xDB3309CC, 0x264EB22C,
|
||||
0xCED1EAC9, 0x38D53F27, 0x2EE7D6F3, 0xC7232C23, 0xCCD42515, 0xC9C8C8E3, 0x231E3930, 0x5BBEDFCA,
|
||||
0x34D7E5D7, 0x25CCE9A7, 0xCD4BF1E8, 0x5E2542E6, 0x38DCE43E, 0xDA34F0CA, 0x2EBFF841, 0xDA422D3E,
|
||||
0x13CA2231, 0xD5C6DA27, 0xBAC0C6B6, 0xC82C49FF, 0x31312123, 0xBF00DFBF, 0xE8F23819, 0x2C34E81E,
|
||||
0xDC4C2B0C, 0x3A5650F2, 0x2CCB0FD0, 0xC42D4C28, 0x4F19DA4B, 0xF63DE630, 0x29F51C1F, 0xD6BE14C4,
|
||||
0xD2DDCDD6, 0xE0D02825, 0x2FE0E3D1, 0x41342FE8, 0x25D547ED, 0xC5A732B5, 0x19BD503F, 0x4CD9DA3D,
|
||||
0x24D013BF, 0x4FE93FCA, 0x12DBE8B9, 0x33DF151F, 0x1E24AECD, 0x2E2E3656, 0x133500AD, 0x3641403C,
|
||||
0xBDDF2BD4, 0xE33130E0, 0x3DC02726, 0x18390C3C, 0x26C04DC9, 0xDBF22D35, 0xC3E1EC45, 0xCED12623,
|
||||
0x1CE92E39, 0xCF2FD222, 0xD8DE31E6, 0x1EE916D1, 0x35DCB621, 0x19C2EB54, 0x41B34ED4, 0xD9373BDF,
|
||||
0x203ED6D8, 0x2CD4A8C8, 0x14E0C6C6, 0xDF242131, 0xCDD921CF, 0x33AACBCC, 0x2AD1A5C6, 0x3ED42B00,
|
||||
0xBF181FD0, 0xC0CC2329, 0x1BD1EDC9, 0x3A2D47CB, 0xDD27D8CB, 0xD8E8BAE6, 0xD5DE3FF5, 0x2C30D641,
|
||||
0xDCDCDF26, 0xC2C34433, 0x2837F53D, 0x29D8E12D, 0xBF3FEBD0, 0x34CACC45, 0x30E1DA21, 0x39DDDCB3,
|
||||
0x30193518, 0xC0132E19, 0x313D3736, 0xB2D4FF34, 0xF4D92945, 0xC70D3AEA, 0x3E3034F0, 0x00DA2F07,
|
||||
0x1DD415EB, 0xCC1AC4B2, 0x232EB21C, 0xD7431E16, 0x2FCE0835, 0xCF39242C, 0x1BCA2CD4, 0xD8B6D0FA,
|
||||
0x18C3262F, 0x2CE3BDCB, 0xD839DC38, 0x26161D24, 0x1223B3DC, 0xD6D63515, 0xCFBABFC6, 0xC1BF18C7,
|
||||
0x2637C715, 0x264020EA, 0xD024D3C4, 0x4126A11D, 0x2E34442D, 0x32BB1CC9, 0x36E7DD40, 0x3113C3C5,
|
||||
0xD100C8CE, 0xD21651E8, 0xC3CFCDD9, 0x403139F1, 0xD3D02119, 0x32171AC8, 0xD2F9B62E, 0xB5B335D4,
|
||||
0xC1462835, 0x1F1C2C35, 0xD8DDBF35, 0x422D2DDA, 0x38ED19D7, 0x3326BD2F, 0x4534DFCE, 0x46403132,
|
||||
0x19CDD51E, 0xCBC3CBC0, 0xE3CF2139, 0xC646ECD8, 0x29E7C7DD, 0xE94CCAF8, 0xB8C6EA37, 0xEC2B09DA,
|
||||
0xC8C82738, 0xC6CCDDFB, 0x3FCA3B4D, 0xC6482BD1, 0x2DE1D333, 0x3530BB3A, 0xBF4838EA, 0xE4411ACB,
|
||||
0x3514D939, 0xCD372B27, 0x4BEC1C39, 0xAB21C221, 0xD8D83F37, 0xCCE0512D, 0xDA4640C2, 0x36AE1CD6,
|
||||
0xBC2F303B, 0x20C3B8CD, 0xBFE6D4E0, 0xBECCC4EB, 0xC7CC1E4E, 0xCC2BD03C, 0x3738C518, 0x23B824CC,
|
||||
0x2BECD0BC, 0x2107B945, 0x2AC21B00, 0xBE49F2EB, 0x31D2E3DC, 0xDAD23F11, 0xCDED3137, 0x3ABADA3A,
|
||||
0xD9C0C12C, 0x36CEE8CF, 0xD0D5BDD3, 0x2AC9CFCC, 0xE61FD747, 0xC7B7B12A, 0x2BD520DF, 0xD5BC1D31,
|
||||
0xE6D8423B, 0xCC21EB43, 0x1F46292D, 0x171EE038, 0xDFA5E244, 0x1BD5C4AD, 0xC622C2B5, 0x4E33CFD3,
|
||||
0x3F263F30, 0x34E4CF15, 0x0041CC36, 0x4021DB29, 0xD62E2231, 0x2C22AE21, 0x1A201F44, 0xC6D7C100,
|
||||
0x3A335125, 0x42473A2A, 0xDF32DA1F, 0xE5D8B51F, 0x3049E832, 0xE6DED531, 0x315DD01E, 0xDDD92034,
|
||||
0x2EBF0AEB, 0x4B4639DD, 0xBED6C8DA, 0xDABA3714, 0xDD133BD7, 0xC934EACF, 0x0D35C3E2, 0xB4CCC213,
|
||||
0x37EE202B, 0x0AD21AD9, 0x28D2C9CD, 0xD800DB2D, 0xD34B274A, 0xBDD33644, 0x38EFF1CC, 0xBDABD734,
|
||||
0xB11E3E32, 0x2F1C23DC, 0xE80BD7DE, 0xDBE7D6F7, 0x240248BF, 0x23CEF1F6, 0x1F56E634, 0x33CD2230,
|
||||
0xB4DB182F, 0xD338BA36, 0x33392B24, 0xBB3B3649, 0x282F30E7, 0x45CC35B1, 0x46261B30, 0x1FD9A722,
|
||||
0x3BE3E1C3, 0x25334FF0, 0xB8BB28C0, 0xD751E2CC, 0x403600E1, 0x461FC3ED, 0xCB30C202, 0xD8D2B92A,
|
||||
0x2923D71B, 0xB9DDE6CC, 0xB935CB0A, 0xEF37D723, 0xD1DA06CD, 0x303CE928, 0xF8B9BA27, 0x37370A1F,
|
||||
0xD6C1DDD9, 0x18B6463F, 0x28C71FC3, 0x38D8B53A, 0xD22DE9A1, 0x18DDB236, 0x0A28D515, 0x363B263D,
|
||||
0x1F3A122D, 0x202AE323, 0xC72337E8, 0x32ED08CC, 0x2658C347, 0xC6F4E200, 0x45D1C2C3, 0xF92D343A,
|
||||
0x3EBE1E65, 0x10EB2FD3, 0xC64FD5E5, 0xC5D3F521, 0xE9CA1A37, 0xD736CDD6, 0xDCC7C233, 0xC9C8E2D4,
|
||||
0x2B99D60A, 0x1EE3DA0D, 0x30BDD8E1, 0x16D3BE1F, 0x1C4524D4, 0xC8D5D432, 0x19AEDA3D, 0xCDD4CAD5,
|
||||
0xD835332E, 0x2412DA1B, 0xD0CBEBD7, 0xC3CEF425, 0xD1D743E3, 0x000A163B, 0x23DC3129, 0x202332D1,
|
||||
0x322F2216, 0x28F5131A, 0xD316CF0D, 0xD0344C30, 0x423325D7, 0x37204237, 0xEEDDC721, 0x2038E805,
|
||||
0xD525C522, 0xBEDDE327, 0x3AC8BCC5, 0x45402E27, 0x34DFC1D9, 0x2DB0D049, 0x322F2ACF, 0xDB3AC3C5,
|
||||
0xD8D0EB4F, 0x2A1DCCCC, 0xD0D33DC2, 0x1349DC45, 0x39CBBC32, 0x30301EBF, 0x2C00DFC0, 0x5DD0CA11,
|
||||
0xD0220C3A, 0xC527CD1A, 0x31CD372C, 0x2E0ED7DC, 0xC6F92338, 0xF537E8D0, 0x3626DBBF, 0xC9C3C6C3,
|
||||
0x30DDBE17, 0x50394C39, 0x3A11343B, 0x27E8DC2E, 0x0DDB303F, 0x1818BCF0, 0xC5DC17DB, 0x24C53A26,
|
||||
0xECB0E7E2, 0xC21B1928, 0x15D7C920, 0x4126AACE, 0xE214D8C7, 0xD40BCD42, 0xB2CBD018, 0x554436DB,
|
||||
0x3C2D25D9, 0x21CEC0DC, 0xE9251919, 0xE41ACDC3, 0xDECF67C3, 0xEDDE3225, 0xCA30EEDD, 0xCFE01E37,
|
||||
0xD231BF41, 0x34DF1EBD, 0x1DD2CC2C, 0x21142E29, 0xEA322B37, 0xCEC311DE, 0xF0F738DD, 0xEBED1A40,
|
||||
0xDCE640E8, 0xD0D1BA2B, 0xE906D6DB, 0xC71938B1, 0x13C59F39, 0x1ED6DBB6, 0x231BD3A9, 0x2C2B30DC,
|
||||
0x0ED50000, 0x2DD4EED6, 0xD9D21BEE, 0xE1442E36, 0x38CEC4AE, 0xC626CCF4, 0xC2CD3F36, 0xD71F2BD9,
|
||||
0x2F421837, 0x31B11A23, 0xD4D5282D, 0xD0E6BED7, 0x30D737CB, 0xC8142A09, 0xD8D2CFDC, 0xC22D3C44,
|
||||
0xF62DF1C9, 0x3D38DBC9, 0xBFC2E5D3, 0xDCE42128, 0x3A304038, 0xDBE6D626, 0x28250FE0, 0x27B52BCF,
|
||||
0xE0D8DC3C, 0xC8DA09DA, 0x2DF02FD4, 0xE539D7D1, 0xCDE729C2, 0x4816E313, 0x4E392AC5, 0x112CF50F,
|
||||
0x3AD94924, 0x4B22273A, 0x43D2DE9E, 0xDA22DE30, 0x3FE324DB, 0xD9CC2811, 0x29D253D4, 0xE2BC353C,
|
||||
0x0CC92147, 0xB8F0C6F5, 0x3D35DEBF, 0xED4ACBEB, 0xAC34E532, 0xEA2AC526, 0xEAC0BFC8, 0x4431D9DD,
|
||||
0xC0CE4E21, 0x0000F2DD, 0xE0D8C7BA, 0xDDDC2E36, 0xDA42C22B, 0x2B312614, 0xDC391EF4, 0xCC2E31D8,
|
||||
0x3DF4D630, 0xC72C21D9, 0xDB2BD531, 0xD916DB3C, 0xBEC11DD2, 0xD1D5CEA4, 0xBA072ED7, 0x402F2829,
|
||||
0xE3C0F627, 0xC7CC3CBD, 0xF41D3345, 0xD706DB14, 0xB2DF36AC, 0xEBC4551F, 0x32B01929, 0xC5B6DDEC,
|
||||
0xD91DE130, 0xE1213222, 0x4126D927, 0xAF52300D, 0x291B301C, 0x241A1843, 0xE43C1FDC, 0xBBCC191C,
|
||||
0x2C25E011, 0xBD3EE9DB, 0xC9BF1345, 0x2F333AD2, 0x1CD822DB, 0x23BE43EA, 0x2527EADC, 0xB52E1C1E,
|
||||
0x391CCF17, 0xD2C82C0C, 0x242E3830, 0xD328D808, 0x35CEF4CD, 0xD81BE035, 0xD0DF38DA, 0xD1D3C42E,
|
||||
0x3A2C1EEA, 0xC6D03AD2, 0x1E362E4E, 0xE6080000, 0xD018C312, 0xEFAA323B, 0xD1294BD2, 0xBAD52C3B,
|
||||
0xE0373E10, 0x260CDDE2, 0xC902E040, 0x30472BD5, 0x534BE7D2, 0x20CCB523, 0x21CCD843, 0x2259E24E,
|
||||
0xDE35FDD1, 0xD4D91D3E, 0xCFCA11D5, 0x35D724BD, 0x3C3F0CB8, 0x3EC447CB, 0xE835DDC4, 0xC3C73E31,
|
||||
0xDD432B2F, 0x2FDCBDC2, 0x2D3CCE17, 0x25B8AB31, 0x2ACCFFE5, 0x40E03C2B, 0xE7DA1841, 0x17E53020,
|
||||
0xD44E0B2F, 0x46DA22EC, 0x33422425, 0x211840C5, 0x23C1CFD5, 0xC8350BE5, 0xD833CDD0, 0xE63DC528,
|
||||
0x292ADC17, 0xD8BCD3C1, 0xCD39F02E, 0xA71EC343, 0xD6CC3A3E, 0x2E12D2CF, 0xC40B1FB1, 0x37DCDC33,
|
||||
0x20E52EEA, 0x271629E5, 0xC4BEE0C2, 0x1B3CDBD6, 0x00004934, 0x18E145C7, 0x4BE93522, 0x3029C309,
|
||||
0x31D1D50F, 0x3DB42C1A, 0x21A643B2, 0x3E26D8C2, 0xCDDE28D1, 0x44E835E1, 0xEDC4DED1, 0xC4F9C9ED,
|
||||
0xC5E1BBCC, 0x4426C1D4, 0xD9BB372B, 0x37232E0D, 0xE5D0D0AE, 0xC9D23CC5, 0xF638E2C7, 0x2DB6E6D9,
|
||||
0xC0C9B72D, 0xDF28E6D0, 0x11E2DCC8, 0xD8E2F31C, 0xEA3937DE, 0x2741B953, 0x19D5CEE6, 0x33DDC22D,
|
||||
0x2BF72326, 0x2143363C, 0x13CA1A1F, 0xB9D7DAC9, 0x22C6B72E, 0xC5DA2631, 0xCB32ECCF, 0x032D15D4,
|
||||
0xBB1EE613, 0x38C42452, 0xDBCD2726, 0x1AF44039, 0x22CF2EC6, 0xCAEDE6B4, 0x2823D423, 0xDCC61C39,
|
||||
0xC12D19BF, 0xC612C31B, 0x31F1D32D, 0x3E1C09E4, 0xD824C5E7, 0xDFFC2839, 0x2AD40000, 0xDFCCBBBC,
|
||||
0x3FC9CC12, 0xEF2626E1, 0x0FCDEA2A, 0xEBD735CF, 0x4E1A2834, 0xCDEDE1D5, 0x31CCCD29, 0x2F4618DF,
|
||||
0x48C11936, 0x29DADE41, 0xD71C1AE0, 0xDDD2285A, 0xB13DCDC8, 0xF020B8DB, 0xD0B837C2, 0xDC3B48E8,
|
||||
0x18C3C530, 0x192C2940, 0x2ADA3AE4, 0xEA34C55A, 0xDAB2BED4, 0x1A51E838, 0xC832AEBE, 0x10DE2DE2,
|
||||
0x3B2408CC, 0x22CEBD1E, 0xC919D6BE, 0x21D2D128, 0xCFE03A2A, 0xB7DEDC3B, 0x33C630ED, 0x5A0EEAD1,
|
||||
0x3CB03FCE, 0x24EC15E4, 0xD0385BBF, 0x20CB4E4B, 0x30E0C535, 0x301BCD3C, 0x3642DDD3, 0xD90FDC50,
|
||||
0xCA35BBCC, 0x393B3B2F, 0xE2BE352D, 0x362BE3BF, 0x1922B73D, 0xDE3448BD, 0xF7C0C02D, 0x00002F43,
|
||||
0x2FCAD0E4, 0xDE412A34, 0xFBF339DA, 0x2BB94330, 0x39B521D5, 0x2DE31F43, 0x382C4F23, 0x35314C2D,
|
||||
0x2DE3DBDC, 0x3A18EAB9, 0xD0DF131C, 0x45EA41E0, 0x48BBC1BF, 0x2220D7E4, 0x29C8D0C5, 0x3C0527CA,
|
||||
0xC1ED061C, 0xCB48CA3E, 0xE846E633, 0x0EB2D7CF, 0x44C42335, 0x27F0D440, 0x332FD847, 0xD72F2CE3,
|
||||
0xD7ECD6C9, 0x4026D51F, 0xD334BEE6, 0xE01B40C5, 0xD62BDA2F, 0xDEEA36AF, 0xABD039C7, 0x2E123FCE,
|
||||
0xFD3924A8, 0xD0C6D529, 0xD52AEED4, 0x211D2A35, 0x1EE9C5F1, 0xCECAF921, 0x38C92740, 0x3E4E2A1A,
|
||||
0xB8FAC7C3, 0xF11F1C36, 0xD4DA163A, 0x2701DC38, 0x0E3019D5, 0x57DB23E1, 0x43CD26D0, 0xADCC4934,
|
||||
0xE0D3D706, 0x403A0000, 0xDECED5E1, 0xDAE6CF1D, 0xD5E33C40, 0x35B3D038, 0x24D73231, 0x2EC01D40,
|
||||
0xC2D23CDC, 0x44C20BC6, 0x44C1D7A8, 0xE9D1C745, 0x36E5C2C6, 0xB81B2D42, 0x413917CC, 0xD8E031BA,
|
||||
0xCE3CC1C4, 0x3EC91AC5, 0x0DE406CE, 0x35D1DA27, 0xC8E5CAE3, 0x313EC127, 0xB61631CA, 0xD73B3444,
|
||||
0xD834C850, 0x37D31DE2, 0xCCC9153D, 0xBF41E9CA, 0xD649F9DC, 0x3A31D501, 0x50CD1DE3, 0xC8E54012,
|
||||
0x4432D4D5, 0xCBB93023, 0xE8FCD6C2, 0xCEE0CAD1, 0xE41B2E39, 0x28CC0E40, 0xDFEAEFFD, 0xB3EA2723,
|
||||
0x3534B935, 0x42D12A09, 0xED3DCA0A, 0x263C352B, 0xAD224EDF, 0x2CDF2A10, 0xF0BE4CAD, 0xBD45D8D5,
|
||||
0x263F27D4, 0xE2372FB4, 0xC35240DF, 0x1EF3DCDA, 0x3AD0D224, 0x27DAD527, 0x303A2CBE, 0xCDDCC829,
|
||||
0xE22B35C9, 0xD5DC222F, 0xEEBDCB63, 0x2042DAD8, 0x06CC3524, 0xD11BBB3E, 0xAE2229E6, 0x1FC81E1F,
|
||||
0xEF4B12DA, 0xE1D846DD, 0xBA3B1CDA, 0xE154C801, 0xD6092CD2, 0xD0F132CB, 0x3A40D027, 0x123530BB,
|
||||
0x1EC5B4DC, 0xD11825CB, 0xC603DECC, 0x28BCC5ED, 0x2C03E1CD, 0xE9AA12A5, 0xDB2DD53A, 0xCA32D01E,
|
||||
0x2F4A09C5, 0xFE411E26, 0x1354CEC8, 0x3736C5F4, 0xC62F3C3B, 0x252DDFB9, 0xD0353723, 0xD8DDC21E,
|
||||
0xE3DF21ED, 0xDAE33AC0, 0x2ADA323E, 0xDC43E1D9, 0x3A23463E, 0xD71934F8, 0xDB1037C8, 0x38B7BCCC,
|
||||
0xDA2C1CC1, 0x3EEEE349, 0x2ACB2A26, 0xD4BCBCD8, 0x4AB50000, 0x9EC941D8, 0x3824C9D0, 0x203CCD36,
|
||||
0x0DCDEDD8, 0x5B333036, 0x3125C7DD, 0xD7383F30, 0xD6C72617, 0xE1C245DD, 0xBDD3E818, 0x3210422F,
|
||||
0xD00ECF2E, 0x44411A3A, 0x02E72E22, 0xF106D24C, 0xCFC847CF, 0x0421AFCF, 0xD2C525A9, 0x3CBCE63A,
|
||||
0xE02A1E36, 0xE036E3E4, 0xDDC22B25, 0x2EC7452E, 0xE1E3EFE3, 0xD82ED6CE, 0x36C1E115, 0xD129E026,
|
||||
0x251E1C44, 0xE8E5D7CA, 0xDDE7D40F, 0xC5D8D9D8, 0xA1C52550, 0x3ACDDA25, 0x3548C4E1, 0x2913D9C8,
|
||||
0x1E28243A, 0xCA3324E2, 0xD0D7D1C0, 0xBDE9D0C4, 0x35BF4FE0, 0xCA42E33C, 0xBBFA33DA, 0xD753C9CD,
|
||||
0xDA2CE11D, 0xD9BEE407, 0xE31DD4C1, 0xCBCCD51B, 0x3BB8D6C9, 0x0000DDDD, 0x28D3CDDC, 0xD62445B5,
|
||||
0xB3211F13, 0xD7B9BF29, 0xD429D5E5, 0xB9C23CCE, 0xC219EDC1, 0x211E0B34, 0xB8F0E1C1, 0x33C0EF4C,
|
||||
0xD8D6C7D0, 0x30E8D3D8, 0xB06514D1, 0x21B9D915, 0xE2323DCD, 0xDA41311F, 0xE24AB11F, 0xE9B92BE7,
|
||||
0x33EA23C3, 0x04C430C0, 0xE849EF0D, 0xD1232C2C, 0x260FD13E, 0x002DCBDD, 0xEB3129E2, 0x20B4C7C6,
|
||||
0x25D32335, 0x2CCB39D0, 0xEA13DAC6, 0xCDEE2E14, 0xCDAA2CD0, 0xE1D339E6, 0x36DCD03B, 0xF5453114,
|
||||
0x34D428ED, 0xEAEDF458, 0xD226CC2D, 0xEDD03AD8, 0xEE1CC83D, 0x10DBB5E5, 0xF018CBDB, 0x5E33E31E,
|
||||
0xC6D9232B, 0x1A373130, 0xDFE7DDCB, 0xB21FC5C6, 0xC1CDB1B7, 0x3F2DF128, 0x482BB426, 0x323E0000,
|
||||
0xF5D43741, 0xCC1C1FB9, 0x00004E2E, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x13000000, 0xC9112F26, 0xE3DF1FED, 0x284020CF, 0xC6ED13CA, 0x38B1E217, 0xD90FE8DB,
|
||||
0xD7C0C3B7, 0x341336CE, 0x45E2D239, 0x3E22F0D8, 0x461D2C29, 0x3825D628, 0xD733E5F1, 0xD7B6C532,
|
||||
0xC62B28C7, 0xD0BF3024, 0xF0BA3A26, 0x2D1D2836, 0x1BCF2DDE, 0xD02B251A, 0xB938CD2C, 0x34E220D9,
|
||||
0xC2BEC23B, 0xCC2908CD, 0x1D080039, 0x42BB25C5, 0x32EB3206, 0x36D3D1E0, 0xC32E10C3, 0x243B13E6,
|
||||
0xC02A1FF0, 0xC325D6DD, 0x23E33D2C, 0xDCD7DED5, 0x9C23C21D, 0x32E62056, 0x06314421, 0xE9E4ED24,
|
||||
0xC0C9C233, 0x44BE3FDD, 0xD25134E5, 0x292EE2E7, 0x4EE0D1DF, 0x29C82E3A, 0xF5392A22, 0x4BE2D133,
|
||||
0x58C2C4C8, 0xD2212920, 0x2935D4DB, 0xDECF4400, 0x31D7CCC9, 0x12DCFB2D, 0x2B2F0723, 0x2DE7B54E,
|
||||
0x2AD24ADA, 0x261E2931, 0xD538CEDF, 0xE12A1C2C, 0x33DDEDE9, 0x2FFC36C4, 0xE61823CE, 0xC225E1DF,
|
||||
0xC2102FEF, 0xCFD22617, 0x3EFBDA37, 0xDAD6BCD8, 0x110623E7, 0x3320E2D1, 0x1932B8D5, 0xCCEBBFC9,
|
||||
0x47234011, 0x0A2B45D8, 0x25C11244, 0x00EF3221, 0xC634CC38, 0x0F34D0E6, 0x1A3F40EA, 0x2DEDC82D,
|
||||
0xFFD2C8BD, 0x40E321CD, 0x24441BD3, 0xD932EDDD, 0x48362127, 0x1230EADE, 0x39E632F9, 0xD0D451DC,
|
||||
0x18DD2DC0, 0xC22AC72E, 0xD71E172E, 0xAFDED12B, 0x1DBAA948, 0xF927B647, 0xD7C31C23, 0x3328E73B,
|
||||
0xDBD72DD9, 0x3E23D424, 0xCB09E025, 0x16BA21CF, 0xDD00B9CB, 0x29E3CAD7, 0x3A19D011, 0xEA0EC4E0,
|
||||
0xD51CDDBF, 0x2AD1C640, 0x2CD6CBD3, 0x36D6D43C, 0xA72851C2, 0xE7EE3C3F, 0x432A4721, 0x46C726E5,
|
||||
0x253FD426, 0xD03B2C27, 0x1AEC343B, 0x5A2BC735, 0xCE31D2D2, 0xCFEDF30D, 0x492B4141, 0x20DC1BAD,
|
||||
0xDAF81CD9, 0xD6EAD21D, 0x2339CD25, 0xA31546BB, 0xD0C0F63F, 0x382BE719, 0xDA34BFDB, 0x1EDBBADF,
|
||||
0x5151E646, 0xC164D5E2, 0xD8292FCA, 0x33CF1F3B, 0x3FF531F4, 0xD3EB3453, 0xD433E236, 0x1B102B1C,
|
||||
0xC6C320E8, 0xD8393C2E, 0x17EAB7EB, 0xE0C42CE5, 0x313720CC, 0x3F39C42D, 0x33374AD5, 0xCE1ED41E,
|
||||
0xF7D2BE0D, 0xF114311E, 0xE22CD6EB, 0x4E23CA2A, 0xCDCF36D3, 0x463B1EC4, 0x312DE400, 0x1A1219CE,
|
||||
0x0CD1E2C3, 0x3850CBEA, 0x31D7CCCD, 0x3F2D3936, 0xC518E33E, 0xC31F31B7, 0xC0AED6C9, 0x2AC6E5D9,
|
||||
0xC334B8BF, 0x35EFD72E, 0xD72B3AD8, 0x31073AD7, 0x25E22D38, 0xF0CD4A64, 0x28DFDB2D, 0x22D9E714,
|
||||
0xB8E43935, 0x35FCBFEC, 0x1DC1391E, 0xD6E731A5, 0xBBC8B837, 0xBD3FBE3A, 0x00BADC53, 0x28C43F33,
|
||||
0x1CE0BAC2, 0xE0E125D9, 0x3BD6CB3D, 0x313230BE, 0xC4243D34, 0x1F24D2B1, 0x2058384C, 0x2AE9192D,
|
||||
0x302CCCEE, 0xD435C4C7, 0xB0D53217, 0xE52D32D9, 0xE0AF2127, 0x3E47D0CA, 0x4112BFCA, 0x27D0D0BD,
|
||||
0xE81E5CF9, 0xD50CBCE5, 0x2DC9B4F7, 0x3FBA33BC, 0xCBCC2821, 0xDFD51326, 0xD20ADA3A, 0x2000C3BB,
|
||||
0xC4DC4BE5, 0xCD39D7A7, 0xC40FF54F, 0xCC3BD1CC, 0x2C19EACC, 0xCD2E2129, 0x44D9F0DB, 0x2B40E11C,
|
||||
0x31343F4C, 0x0E142817, 0xD0104135, 0xE304CAC7, 0x259A1FD4, 0xC3EAED3C, 0x1A311AD7, 0xD8242BEE,
|
||||
0x20BF4EFD, 0x3FCA16C5, 0xDDEED03A, 0x0A22C52E, 0xD53B2D3A, 0xE22A2CB5, 0x291D3228, 0x2CCC2E45,
|
||||
0x48BA00D5, 0x4FE12D1D, 0xD8D91DD1, 0xCEDBEC31, 0xFBD526B9, 0x3C1DE845, 0xAFDCE91C, 0xD622D31E,
|
||||
0xCF2620D9, 0x28D63427, 0x362C3DDF, 0xD72C2530, 0xD6A7C203, 0x442C3233, 0x29B24E3F, 0xDD21412C,
|
||||
0x400BD6D0, 0xC8D4B831, 0x171EF12A, 0x34FFC9D0, 0x3B3ED02D, 0x0BC7E2CB, 0xC43D28C6, 0x42F6C948,
|
||||
0xD24AD429, 0xCB2C2A00, 0x43E2A236, 0xBC353312, 0xD91324B5, 0x30B4D013, 0xC92FDE2F, 0xBFD6D432,
|
||||
0xC82DCABC, 0xC032DC1D, 0x30C9D2CB, 0xE0341DC5, 0xDDCEBE39, 0x2CC41D58, 0xE213BF14, 0xDFCDCBD9,
|
||||
0x2E3C36DD, 0xE5262833, 0xF841291D, 0x15E324F5, 0x0315D732, 0xD1C5C5CA, 0xD73144D3, 0x2ABEBA1A,
|
||||
0xBCF42E2C, 0x00E1E53B, 0x4423AD2C, 0xB021CF20, 0xD8D5EEB6, 0xBD35BCCD, 0xE6D85334, 0xD549DF2D,
|
||||
0x35C74D19, 0x3F4BBE3D, 0x1F3FA3EB, 0xCEB2B335, 0x35D0BCBA, 0xD5D8CF27, 0xB11DCFC4, 0x24D3D408,
|
||||
0x183B35D0, 0x1C14D619, 0x35D445BB, 0xDE452444, 0xC83315C5, 0x3F2122D0, 0xB623C737, 0x33321DD0,
|
||||
0xD6DF33DE, 0xDE39AA20, 0xCF00F239, 0x412410D5, 0xC5DC2339, 0x1D3BD1B6, 0xC0E3481E, 0x1030451A,
|
||||
0x30EA30D1, 0xC6DCB9C7, 0x2C36DC17, 0xCBB0ED30, 0x26C20FBE, 0x35D6D528, 0xD6CC2242, 0xEDE4241E,
|
||||
0xC036DED9, 0x26303627, 0xB6B6371B, 0x26E3D6DF, 0x0D36C729, 0xBEEE4FD7, 0xE3C839D1, 0xC0313031,
|
||||
0xAEAD2828, 0x36323D23, 0x13342728, 0x2904EE20, 0x261DDCD6, 0x0CBCE1E1, 0xD2CBD5C3, 0xFD1C4B2C,
|
||||
0x1CD8CDDB, 0xD4BE53B1, 0x2BD6CDDE, 0xC61A01E1, 0x3D41BED3, 0xE0333BD0, 0x4040E821, 0xC4A32449,
|
||||
0xD3D3A8BF, 0x36E11C2C, 0x3CC1321B, 0xC5D03E1C, 0xB813D9DD, 0xD6C51838, 0xCEBED141, 0x1FEA3813,
|
||||
0x3611CAC0, 0xD12EE2C6, 0xE1BFD22D, 0xD0DAE9CC, 0x0E03DB00, 0xBC37393F, 0x422BC916, 0x49C4D72A,
|
||||
0xBFC0243B, 0xC1C2F1C3, 0xDF36CC32, 0x49E53EE4, 0xBFC02CDF, 0x2BEE2BE1, 0xC23224C5, 0xD63F16DA,
|
||||
0x15DBC21F, 0x49E4CC57, 0xBE272CC7, 0x274E0643, 0x5C1DDBE7, 0x34B73DF0, 0xCD2D2EB9, 0x1AD43BCD,
|
||||
0xFD3047D3, 0xDAC53936, 0x1328DCC8, 0xBC32331D, 0x001F2634, 0xC845410F, 0xDBDB1C2B, 0xD1D819D0,
|
||||
0xEBDDE12D, 0x37E335D7, 0xCDA84635, 0x0F362FBE, 0x30C229C4, 0xBC1DC43E, 0x3CD02F3D, 0x2EF5F5F4,
|
||||
0x462D15E6, 0x362F1FC5, 0xC0C9CD49, 0x14C92639, 0x2BD135D0, 0x49C6B8DA, 0xDBC7E1D9, 0xC6382328,
|
||||
0xEDC217BC, 0xE4D1331C, 0xDCC741CF, 0x283A341C, 0x38B93420, 0x46001BE7, 0x3E1030C4, 0x42A8C1CD,
|
||||
0xBB3339C5, 0xE538DD20, 0xDF3F2602, 0xE52BE5C1, 0xBE2B41BA, 0x3BD4D337, 0x2D39C3DB, 0xC3BB36F0,
|
||||
0xD12CCF17, 0x4130B93A, 0xE31DEAEC, 0xF9DEF52D, 0xADD35231, 0xD62ED0EF, 0xBE303521, 0x1E2ADB41,
|
||||
0x310AC62F, 0x22DA2DC5, 0x26E1D9D0, 0x1F4D2AC1, 0xC8E6DCE1, 0xC6B3D62E, 0xD6D20019, 0x4EDC2D39,
|
||||
0x342AE224, 0x07CBD4CB, 0xE43FB3BE, 0x1BE53748, 0xDD44C8A2, 0xBC34B7BA, 0xA1DD1D43, 0x23D31827,
|
||||
0x3519E93F, 0xC83B3720, 0x1BF0B72A, 0xEAC7DCC0, 0xCA4B28EC, 0xD54D242F, 0xF35435D1, 0x3DDEC824,
|
||||
0xC31128CE, 0x0B0FD136, 0x442D1E2B, 0xCBD1C3EC, 0xD635341B, 0xDD1F2931, 0x3442CDD0, 0xDADD3600,
|
||||
0xC31E40E3, 0xB0BD1B22, 0x38CA1F0D, 0xD42D3043, 0xE65127E4, 0x2F15C9D6, 0x3E360B30, 0xB2CB1524,
|
||||
0xC7BBC4DF, 0x38D244C7, 0x483B31C0, 0xDB43C8D1, 0x43DCDBBC, 0xDCC7571D, 0x24BAC2C6, 0x3B4ED6DC,
|
||||
0x3AE03245, 0x0C40E1E2, 0x493724C0, 0xD4ECC537, 0x36CC30BA, 0x1C303FC6, 0xD12F27D5, 0x00C4272F,
|
||||
0xFFFD061D, 0xC2D9251D, 0xC1D7D625, 0xBFCD3AD3, 0xB42E11D4, 0xC7230E1E, 0x24CD2C21, 0x0BD436F9,
|
||||
0xCECCD331, 0xE6BDE0D5, 0xD2C6C941, 0xE1D1D3EF, 0xEB4123CD, 0xDA1755E5, 0xCEE4C529, 0xDC43C5D1,
|
||||
0xD8FDDFEA, 0x1AC9C317, 0x22E13DCE, 0x01D7BA29, 0x1551E449, 0x43CD363E, 0xC6281B24, 0xCBD23725,
|
||||
0x3200D61C, 0x35D6CCBC, 0x262CB22C, 0xE2E43DB1, 0x26493335, 0x3AD72ACA, 0xC4244430, 0x3AD7C9C3,
|
||||
0xC91ED8D1, 0x40EAD2AC, 0x38C9CDAC, 0x413BC137, 0xCD304B1F, 0xEFCA2323, 0xAC3FE4CD, 0x3616F6E0,
|
||||
0x41C2272A, 0xDCD7B2E2, 0x27D9E018, 0xDEE2D943, 0xD5C01F22, 0xB0D93540, 0xB411C13D, 0xDE39CBE0,
|
||||
0xE2C6F126, 0x31450828, 0xD2BC2927, 0xBACA1DD1, 0x34DDCDC3, 0xD8302AD5, 0xE2D02824, 0x0B2BE03E,
|
||||
0x3BCAFD2C, 0x2E461D45, 0xBBF6F32E, 0x31E5DED2, 0x2ED4E847, 0x3BDDCD29, 0x231331D8, 0xF521CF2E,
|
||||
0xD024C718, 0x20D91011, 0xDB1E0F34, 0xD931C0BB, 0xBB310837, 0x29B7C5CB, 0x3B31DEE0, 0x0836B926,
|
||||
0x28CB1FD4, 0x31072A30, 0xEE41F300, 0x35CB501E, 0x603A2B47, 0x2C2739CE, 0xC0CFC4D9, 0xE0CED43C,
|
||||
0x22BDC9CA, 0xBAEC122D, 0x4D16F2C5, 0xB6E5C3DA, 0x19D5C9D0, 0x1D1DDFC2, 0x223A23FB, 0xCD382B09,
|
||||
0x3025C2E6, 0x3918BDD5, 0x33DFEF0E, 0x291A302B, 0x14184930, 0xD414D233, 0x473CCED7, 0xD2D318B7,
|
||||
0x3E2738D2, 0x2928D537, 0x002E14BB, 0xE2E03734, 0x1B1EDFD1, 0xCF483FD8, 0x3D043844, 0xD52E1C4C,
|
||||
0x2823EAD6, 0x1F2D241A, 0xBC4B22E6, 0x2EE7DFB8, 0x3424E2F0, 0xD41BD7CB, 0x2BBCDF1E, 0x155B5033,
|
||||
0xB527D543, 0xE3C5E9F4, 0xD9B5C92B, 0xD3CAE0DF, 0x31C4CED7, 0x0BD33B25, 0xCF3B111D, 0xE62F241F,
|
||||
0x22D93D22, 0xCF27EF43, 0xDAD2C5DD, 0xC60019BE, 0x2935D5C3, 0x2D0BCD22, 0x224714EA, 0xE7CAB817,
|
||||
0xD1282222, 0x3C25EBD0, 0x45F0A8DC, 0x3ACFB92D, 0x34B4E7E6, 0xE93523E0, 0x2C292FCA, 0x44D4C7AC,
|
||||
0xEA22C3FE, 0xEF37E524, 0x313ADCDA, 0x2212D846, 0x1BE0FF4B, 0x1CBC2E34, 0x174AF041, 0xD245223E,
|
||||
0xE1DB2BDC, 0xF2E9A515, 0xE3C33BCC, 0x43DBD5CE, 0xF11700DB, 0xDE44DD36, 0x26E1D604, 0xC2ACE419,
|
||||
0xB9D8C7D4, 0x37EFE21E, 0xE2BAC2D1, 0x3926E91A, 0xD013E8BC, 0x2C43ECD9, 0x232B30F8, 0xD6C9E0BD,
|
||||
0x26A718BC, 0xEFF6C840, 0xC13332C2, 0xC4B9BD36, 0x1B4921BD, 0xD0EBECE0, 0xBCE4D647, 0x35D4DCD5,
|
||||
0x1BBE4C27, 0xECC1B7CB, 0xD820284D, 0x0BC33DBF, 0x34D03140, 0x38EC3900, 0x29EBDBC9, 0xD43A3041,
|
||||
0x3AE0DD0C, 0x09CFCFDB, 0x44E0C7CE, 0x20DBC4E3, 0x26DC41DE, 0xBA3AD2E5, 0x2ABA34E1, 0xD70FBEB7,
|
||||
0x40E03FE2, 0xF8D62041, 0xBD47B7EA, 0xD2E03E34, 0x1FC6D2DE, 0xCF1CD155, 0x32D52630, 0x3C463D2C,
|
||||
0x253130E3, 0x1ED8BB4A, 0x411BDFDD, 0x3FD8EE35, 0x33D02BBB, 0x002ECAAE, 0xDF1FDFEB, 0x2CD8DA3C,
|
||||
0xB6352D59, 0xD5BDD3B9, 0x1946630D, 0xD9181731, 0xD419D31F, 0xCE2FB7D0, 0x32EFE3C3, 0xCDDB2FD3,
|
||||
0xD247BB3E, 0xBA41DECA, 0x23244AD2, 0xDEAAF2B2, 0xB8D525F2, 0xD327A4D0, 0x3718C0E2, 0x2D3E20D9,
|
||||
0x24CFDF12, 0x26D0BE1C, 0xC8D9282E, 0xEB54CADF, 0x44DB1AED, 0xC927BF29, 0x2E002B39, 0xBB2625E4,
|
||||
0xBB4421D2, 0x18CBAA3A, 0x213ECD37, 0x0F33163C, 0x3622E432, 0xE5C7C62B, 0xDE39E7C7, 0xF3151CCA,
|
||||
0x2ACED6D2, 0x2ADADFC4, 0xD6241ACC, 0xB92F0622, 0x1BC639E4, 0x33D92BC4, 0xAF14E0DD, 0xE6EEC2C9,
|
||||
0x16BDCAE3, 0x272E1AC3, 0x292E1EBE, 0xDCE439B1, 0x4225E1C6, 0xCD372420, 0x27D716B1, 0xD83EE339,
|
||||
0xDBCAD4B3, 0x26385033, 0xC5373528, 0x2DD2C936, 0xF9D5BAE6, 0x2E2DC7C2, 0xCD4BD045, 0x1DDF2DE8,
|
||||
0x0E3740CE, 0xE5D82C36, 0x29D1360A, 0xCD03C8C6, 0x37CCCCD8, 0xD83AD330, 0xBFD619CD, 0xDEDDC432,
|
||||
0xD0DADAEC, 0xD3E14F26, 0xA8CD35D9, 0xA3F325BD, 0xBC1626D7, 0x3AB81BD5, 0xBBFF1832, 0xC9DB2126,
|
||||
0x16250000, 0xE003BB39, 0x35D533CE, 0x1801C610, 0xD9D44644, 0x474BD3C3, 0x1C30C51E, 0x2E3342C6,
|
||||
0xB7D6B3E9, 0x5AE44BD2, 0x46D62830, 0xDBDD4B0C, 0x38CF2F1D, 0x2D331ACB, 0x36CCDED6, 0x10D7DA10,
|
||||
0xD42246E0, 0x0FC73FC0, 0x2C3E1E37, 0x2CF0D1B8, 0x17412EDD, 0x2630D0DD, 0xDBD535E4, 0xD927DA43,
|
||||
0xB636C11E, 0x25CBE2D8, 0x4711F64B, 0xBC2C2029, 0xD0E3F538, 0xB92C27DF, 0x272DE2D2, 0x0CC5BCEB,
|
||||
0xC0BC2EDF, 0x26D131C9, 0x1F092FEE, 0x2D342B34, 0x31B825D5, 0xC6BBC9C1, 0x38F1D0E4, 0xCBF7FDC7,
|
||||
0xC3CAC9B6, 0xDBC436C6, 0x19DC1FD8, 0x28CCAED1, 0x1921BDB4, 0x24BCBF33, 0x301EE244, 0x36BDBDE1,
|
||||
0x31C5B724, 0x00003ECD, 0x220B1EE7, 0xDEBAD3DC, 0x21CAB942, 0xC9193B33, 0xE3CD3A0A, 0x0DC22CC3,
|
||||
0x3EC0C7CB, 0x43F2BFE4, 0x0ECFE9C6, 0x3ECA2FD5, 0xCB492DD9, 0x23E7BDC9, 0xD33DC151, 0xFCBE2933,
|
||||
0x5ACEC51E, 0xF2172E1C, 0x3C24DE23, 0x3320D4D5, 0x2AB53C20, 0xC328323A, 0x45EA4133, 0x24391A32,
|
||||
0xC7D8DA2B, 0xF4EAAF39, 0xDFCA36E3, 0xDEBED5C8, 0x36252C36, 0x04D7DBC7, 0x30CAC23D, 0xB60BF73D,
|
||||
0xEACA2A30, 0x34C12ABE, 0xE2D747D8, 0x19D21FE3, 0x1DFD24EC, 0xB6B5D9C4, 0xBF2C1DD2, 0xD2B442E0,
|
||||
0x37CCE1BD, 0x2AD1E1CC, 0x18DAC6BD, 0x213AD93E, 0x2031D8CB, 0xD82F2D12, 0xD112D2F2, 0x19CD43F1,
|
||||
0x36BCB9CA, 0xD7C5DDFC, 0x34011D28, 0x3BDB0000, 0xCD00E1AA, 0x5228252C, 0x3512CA34, 0x0EE53A41,
|
||||
0x242CD2C2, 0xF425DD2A, 0xF02FDDF8, 0xD82026D3, 0x4ABEE7B8, 0x2DC9DDDC, 0x3BEECD3C, 0x2ED1442A,
|
||||
0xC713E92A, 0x310CC12B, 0xE128D520, 0x48E5C1CF, 0xC91CE3ED, 0xCCCBC72F, 0x0B23E3E9, 0xC1D2C8B6,
|
||||
0x511ED534, 0x2AC7D4C3, 0xCFDCE335, 0xD4C9F643, 0xD433EBF1, 0x1BF8DA31, 0x223FC515, 0xCC2F13C2,
|
||||
0xF825FFC8, 0x35E51633, 0x36293C4A, 0xC72ACA36, 0x4544E736, 0x1BD9315C, 0xCF16DFD4, 0xD0AFEFC3,
|
||||
0xCECBBDE2, 0x05D6AA32, 0xD851F045, 0x240FD948, 0x3D35B2E6, 0x17D7C7EE, 0x0B22DACE, 0xF53AD637,
|
||||
0xB2372DDB, 0xF6DF14CB, 0xBED95B24, 0xD4D5190B, 0x0000CB29, 0x3DC1ECF5, 0x30C6B34F, 0x1D2629B6,
|
||||
0xD429D1CC, 0xD50716E3, 0xD0C3C2CC, 0xC82CC7D4, 0x5F27C718, 0xE6201BE4, 0xDACFD42F, 0x2E2EE9D4,
|
||||
0x3AD036C0, 0x3828DB20, 0x27D63439, 0xD21026DE, 0xD60710BC, 0x13AEB9E9, 0x28C41944, 0x49D5E3D7,
|
||||
0x27163429, 0x1BBAD528, 0xB12A14BC, 0xC72FD9E2, 0x1F43213A, 0x133B3EE5, 0x3622FE21, 0xD438DCBE,
|
||||
0x41CB25E8, 0xD0D83E2C, 0x32BFC2CE, 0x362BE1DA, 0xC3CBCE24, 0x22DECDC2, 0x30CBD5CD, 0xD42DBC26,
|
||||
0xDDF6AAD0, 0xCADC0EC8, 0xDC333434, 0x333114F5, 0xCE24361A, 0xB1C5D123, 0x4B25380B, 0x2FEC3634,
|
||||
0x3EE2A610, 0xB4CEE72F, 0x29BCC721, 0xB23850CD, 0xA51AE4DD, 0xC81BBC2F, 0xD4DF0000, 0x2DE5D1E8,
|
||||
0x2E0A28D0, 0x29E3C1E1, 0x56F62DD6, 0x3828DD4B, 0xC41ACFDF, 0xD2390A3A, 0xDF3028CC, 0xE8C5E22B,
|
||||
0xD11CDCC1, 0x44D1CBEC, 0x33C73DDC, 0x1D25B7DC, 0xE7DD0525, 0x2743C41A, 0x2AE2D3DC, 0x21D6E82A,
|
||||
0x133CBAC7, 0x593F34B0, 0xDA5FE339, 0x5206252C, 0x394FD5BD, 0x21D2C92C, 0x292426E0, 0x48E0362B,
|
||||
0xCC272DE4, 0xC815C4DE, 0x49BD5D37, 0x1912342F, 0x2CE9E01B, 0x30D8D2D9, 0xDEBF46E8, 0x392F473A,
|
||||
0x3A18D324, 0x2FE31FD0, 0x2B2B2710, 0xB53B2AC7, 0xB3481CFF, 0x2DD7CFBC, 0x2232351A, 0xD7C91C16,
|
||||
0x1CB4DA16, 0x1BCBDF3C, 0xD2213822, 0x2121DB1F, 0xDBD1C02A, 0x27DA33C7, 0x351FC4CD, 0x0000B9D8,
|
||||
0xC2142C29, 0x38B9DD31, 0x54E60CDF, 0x2A4A42DB, 0x35CF2BB5, 0x0CEA3323, 0xC2D8BEE2, 0xC61F3B33,
|
||||
0x10CE11D0, 0x3336CE2E, 0x303ADD25, 0x3347B7D9, 0x33222C1A, 0x1A43E4C1, 0x4326E019, 0x2AE2E92E,
|
||||
0xD2C5DC40, 0xBA45D7D6, 0xDF341BDC, 0x3A361925, 0xD4FEF4D2, 0x3018DA31, 0xDDC12817, 0x3038DE24,
|
||||
0xEDC0292B, 0x3E3E3336, 0xCB1BEF17, 0xE10B2EBF, 0x2B20BABF, 0xC80C421B, 0xC2411D21, 0xECD8C7D6,
|
||||
0xC824E4AD, 0x65B53DD7, 0x304325D4, 0xDD1DEAE6, 0xD33131CF, 0x2F36452B, 0x23B219E9, 0xC1C23529,
|
||||
0x21DC3836, 0xD618E933, 0x393E2C14, 0x362ACA3A, 0xD6E2C237, 0xD6085111, 0xD721FCB1, 0xCCE6DEBC,
|
||||
0xD1DCD920, 0xC3320000, 0xEA26CB19, 0x18BB26B7, 0x233BDF4F, 0xDE23FD3F, 0x2ADA1ECB, 0x3122E839,
|
||||
0xEF42D7D7, 0xCAC7202D, 0xCD4CDED1, 0x2633C824, 0xD0123E4E, 0x104429B6, 0xC8CD4B00, 0x5136B738,
|
||||
0xCFC8202B, 0x163135DD, 0x2C3821E8, 0x29314CE0, 0x0F3CE4EC, 0xE5432DAF, 0xC63AE340, 0x4639DB18,
|
||||
0xDF282511, 0x25B5CBD3, 0xCAF50F37, 0x1E443B33, 0xE32CD32D, 0x10DA47B9, 0xDA410526, 0x34F0E4EA,
|
||||
0xCEED3134, 0xC0B31AA7, 0xD12B1AD3, 0xC722C743, 0xBFBEDD1F, 0xD328D52B, 0xCC384024, 0x18B43FB8,
|
||||
0x281742BB, 0xD8322FD2, 0xB5D628C6, 0xE420C0CB, 0xC9EB391D, 0x41E6B419, 0xBCC543E1, 0x2C37DDEF,
|
||||
0x1F2D41E9, 0xD0F0D205, 0x1FEAE5C5, 0x15DF14B8, 0x47E327D9, 0xD328CE25, 0x36DB2E24, 0xD92E1EBF,
|
||||
0x2B3230F4, 0xD1EAD5D9, 0xC7212ADA, 0xCD1235DC, 0xC519D5DB, 0xBFC631DF, 0xD5222B35, 0x35B6DEC6,
|
||||
0x153C4428, 0xC5C3E42F, 0x1B2E2D2A, 0x3CD422A6, 0xC22842CC, 0xCADAC43D, 0x2C10DAD2, 0x18C708B5,
|
||||
0x36D636BD, 0xCD29C5D3, 0xBFED433A, 0xE0384939, 0x005629F2, 0x36E2C425, 0x2830DF1C, 0xC9CB351C,
|
||||
0xB0D7D3E6, 0xF3CEC214, 0xDC25D1C7, 0x1BD5CBCC, 0x19DD21C9, 0xC854EE30, 0x4FE14EE3, 0x38D5D3E8,
|
||||
0xC9D126E4, 0x2FDD2130, 0xCE2130D1, 0xCFCAB0C9, 0xC71F0E1A, 0x2627D4DE, 0xCBE9DACD, 0xE7121F22,
|
||||
0x2CC8E435, 0x3838391D, 0xDD37242E, 0xEBBE2F10, 0x233C0000, 0xAFC91CE7, 0xCE3536F6, 0x0F25D248,
|
||||
0x2D04EBE4, 0x3FF634E5, 0xE929CE26, 0x24E0BABE, 0x302CD52B, 0xD1E2073F, 0x4333D11C, 0xDA48C2D1,
|
||||
0x2D33F315, 0x29B2C8C3, 0x3B26E3EB, 0x3821C6DA, 0x32163DD6, 0x1DC737BC, 0x463CCD24, 0x19D63DDD,
|
||||
0x200BDDB7, 0xBDD41E22, 0xC40A444F, 0x34BF49ED, 0xD4C0C0F4, 0xA41FB721, 0xBEDF51E8, 0x15D82A17,
|
||||
0x383FDF21, 0x2B2918D0, 0xE6EB4718, 0x244530DB, 0x25DD3919, 0x3BA819BE, 0xDAEFBE38, 0xEB3FCCD9,
|
||||
0xD1DF2E1C, 0x2520C3E3, 0x32D0BFD5, 0x37312BD5, 0xDC29D0C9, 0xBED02432, 0x310C3A18, 0x411ED8D7,
|
||||
0xA4E5CE22, 0x163CBD30, 0xC3E2BE45, 0xCFBBAAC3, 0xC8C0E4CF, 0x0000CEFC, 0xE8CC2433, 0x39ED223F,
|
||||
0x243AD83B, 0xD44D39C6, 0xCABF24DE, 0x252050EB, 0x29C73B40, 0xD4F434CF, 0xCAE4D5DF, 0xC5F2EEF1,
|
||||
0x2919C8D2, 0x2FC4D20B, 0x1CBF5528, 0x3DBBD52D, 0xE03AD031, 0x3D2CCA17, 0xBE23BDB8, 0xE7DA3B30,
|
||||
0xD1D2D331, 0xCC1825EA, 0x2F2D39D2, 0xF9313526, 0xCFBCC2E1, 0xE5BE3AD4, 0xBF59BE1C, 0x22FFC8B5,
|
||||
0x32B14015, 0x31D6BEE6, 0x46DF3843, 0xDCD1D8B2, 0xE728C8BE, 0xEA1E2A28, 0xD1D8C7D2, 0x30CAF134,
|
||||
0xEDD0EADA, 0x13C1E3D0, 0xB9D7DC29, 0xEAB93624, 0x24E49F38, 0x2E3FDEDC, 0xE6D0D23D, 0x1FBB3ED2,
|
||||
0x23D540DD, 0xD727D92B, 0x251E33E6, 0x4BA7EECE, 0xC1CD203C, 0xC5CFED32, 0xB9CF35C3, 0x29710000,
|
||||
0x29D7C636, 0x3A3ED1D0, 0xCC1B271F, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000
|
||||
|
||||
hard_output0 =
|
||||
0x42441F44, 0x006DFAE9, 0xDBB63AC2, 0xA3365CB3, 0xFA44372B, 0xC2603862, 0xA6C86E09, 0x416F0BF7,
|
||||
0x8E58011D, 0x47C54B99, 0x269AD14C, 0x0B286902, 0x093E4C64, 0x8D84D8E1, 0xB8AE0993, 0x49567118,
|
||||
0x8CEAABD2, 0x12D33409, 0xE3358237, 0x130176F6, 0x0986718F, 0xA18C83B5, 0x04EEF058, 0x59704040,
|
||||
0x7478FE81, 0x01D27193, 0xEA1AD7F3, 0x21E6C2B9, 0x6478A1FF, 0xED9959AD, 0xE39E57BE, 0x4D859105,
|
||||
0x056EF72D, 0xBD170BB7, 0xF01F9ADD, 0x99BF0C05, 0x44BAD09F, 0xF6ABDD61, 0xC0F8F116, 0x2972B53C,
|
||||
0x0FEC944B, 0xD1675432, 0x0025F563, 0xF42B2EA8, 0x808E5C37, 0xB6E79AD5, 0x3706284D, 0xB9C0AFA5,
|
||||
0xFF0E7E28, 0x5FA45C6F, 0x9CD5244E, 0xA013DDEA, 0x0D27D1A2, 0x2AE414AD, 0x41614379, 0xE6B68872,
|
||||
0x5585D926, 0x5098D45B, 0xF8980ABD, 0x65821418, 0xEF8968A3, 0x301DEC3A, 0x57EF2A7F, 0xC17BE446,
|
||||
0x94B65D62, 0xC9E6F350, 0x2E6130BC, 0x235F2E5E, 0xF1C13241, 0x94B291D6, 0x8C342458, 0x175B1FCA,
|
||||
0xE07310FD, 0xD24934DD, 0x3CE8D053, 0x5C8F243D, 0x945B0AB3, 0x50EB8CC1, 0x8EF499D4, 0xA67801BF,
|
||||
0x1680F061, 0x283FE705, 0xB8D7E773, 0x13AD3D2F, 0x4A6C305B, 0x1C1E5B12, 0x6F57D880, 0x8A666E5E,
|
||||
0x26511296, 0xFFC09750, 0xFF91760A, 0xAC26795C, 0x75F321FD, 0x4221B9CB, 0x2E119188, 0x0772A832,
|
||||
0x74D6036B, 0x505D6D64, 0x16A001B7, 0xF5F0D728, 0x48CBE119, 0x91C5D6B2, 0x8E1BBAB0, 0xB11BBE51,
|
||||
0x52C647DC, 0x65240CE2, 0xAB3F8AAE, 0x62E0CDEA, 0x6CBE7240, 0x7F572063, 0x7FC816E6, 0xB38E5A6C,
|
||||
0xDF9E2738, 0x752419CB, 0xC3A6BF9B, 0x8D48B21F, 0xA88C4AED, 0xE3C1D8BC, 0x8501353D, 0x20A99D7D,
|
||||
0x8D9C6DDD, 0x77A65039, 0x834E7E57, 0x1F623FA1, 0x6CF02B26, 0x1FF0BBA6, 0x9035AC70, 0xBED818E5,
|
||||
0x437CA713, 0x91011537, 0x3CD1302B, 0x7755459E, 0x5963FDA6, 0x49ECF937, 0xDEBBE0E3, 0xE873FD4F,
|
||||
0x735C48C9, 0x7C70F46F, 0xA00B1543, 0x789F4159, 0xE17C343E, 0x51B3D085, 0xD9042663, 0x771933DA,
|
||||
0xE183AF8C, 0xF62AC11B, 0xF776C25C, 0x22083E6C, 0x8400DDBA, 0x6D6AD2F2, 0x5DF87DBC, 0xBD7D40B4,
|
||||
0x356EBF21, 0xD8972E85, 0x3A632B51, 0x4D5BFBA2, 0x58CDF1D4, 0xD1117491, 0x5906DC45, 0xF793D63A,
|
||||
0x8F9D0552, 0xD261C804, 0x70BFDE9F, 0xDC77827B, 0xE9FFB130, 0x4FF18BBC, 0x17D50C32, 0xC315521E,
|
||||
0x4C7D2470, 0xAB5EE34C, 0x692AC0C8, 0x15B22832, 0xD34107FE, 0xA7E6DA1E, 0x2966A2A3, 0xD0B204B4,
|
||||
0x500E02F9, 0x02E5A455, 0x81EAF941, 0x6818F57A, 0x978EEC9C, 0xBFD575F3, 0x3FFC1BE8, 0x97104E07,
|
||||
0x4ADF219F, 0x182EC93D, 0x386033EE, 0x87C1351A, 0x31420C6A, 0xE20B5DC8, 0x83D90D23, 0x3C13B9E8,
|
||||
0xCCCD65BE, 0x7EDB17A9, 0x81C73C2A, 0xE202E332
|
||||
|
||||
c =
|
||||
2
|
||||
|
||||
cab =
|
||||
1
|
||||
|
||||
ea =
|
||||
4918
|
||||
|
||||
eb =
|
||||
4920
|
||||
|
||||
c_neg =
|
||||
0
|
||||
|
||||
k_neg =
|
||||
3072
|
||||
|
||||
k_pos =
|
||||
3136
|
||||
|
||||
rv_index =
|
||||
0
|
||||
|
||||
iter_max =
|
||||
8
|
||||
|
||||
iter_min =
|
||||
4
|
||||
|
||||
expected_iter_count =
|
||||
8
|
||||
|
||||
ext_scale =
|
||||
15
|
||||
|
||||
num_maps =
|
||||
0
|
||||
|
||||
code_block_mode =
|
||||
0
|
||||
|
||||
op_flags =
|
||||
RTE_BBDEV_TURBO_SUBBLOCK_DEINTERLEAVE, RTE_BBDEV_TURBO_NEG_LLR_1_BIT_IN,
|
||||
RTE_BBDEV_TURBO_DEC_TB_CRC_24B_KEEP
|
||||
|
||||
expected_status =
|
||||
OK
|
|
@ -0,0 +1,36 @@
|
|||
# SPDX-License-Identifier: BSD-3-Clause
|
||||
# Copyright(c) 2017 Intel Corporation
|
||||
|
||||
op_type =
|
||||
RTE_BBDEV_OP_TURBO_ENC
|
||||
|
||||
input0 =
|
||||
0x11D2BCAC, 0x4D
|
||||
|
||||
output0 =
|
||||
0xD2399179, 0x640EB999, 0x2CBAF577, 0xAF224AE2, 0x9D139927, 0xE6909B29, 0xA25B7F47, 0x2AA224CE,
|
||||
0x399179F2, 0x0EB999D2, 0xBAF57764, 0x224AE22C, 0x139927AF, 0x909B299D, 0x5B7F47E6, 0xA224CEA2,
|
||||
0x9179F22A, 0xB999D239, 0xF577640E, 0x4AE22CBA, 0x9927AF22, 0x9B299D13, 0x7F47E690, 0x24CEA25B,
|
||||
0x79F22AA2, 0x99D23991, 0x77640EB9, 0xE22CBAF5, 0x27AF224A, 0x299D1399, 0x47E6909B, 0xCEA25B7F,
|
||||
0xF22AA224, 0xD2399179, 0x640EB999, 0x2CBAF577, 0xAF224AE2, 0x24
|
||||
|
||||
e =
|
||||
1190
|
||||
|
||||
k =
|
||||
40
|
||||
|
||||
ncb =
|
||||
192
|
||||
|
||||
rv_index =
|
||||
0
|
||||
|
||||
code_block_mode =
|
||||
1
|
||||
|
||||
op_flags =
|
||||
RTE_BBDEV_TURBO_RATE_MATCH
|
||||
|
||||
expected_status =
|
||||
OK
|
|
@ -0,0 +1,36 @@
|
|||
# SPDX-License-Identifier: BSD-3-Clause
|
||||
# Copyright(c) 2017 Intel Corporation
|
||||
|
||||
op_type =
|
||||
RTE_BBDEV_OP_TURBO_ENC
|
||||
|
||||
input0 =
|
||||
0x11D2BCAC, 0x4D
|
||||
|
||||
output0 =
|
||||
0xB3E8D6DF, 0xBC8A2889, 0x744E649E, 0x99436EA6, 0x8B6EFD1D, 0xAB889238, 0xE744E6C9, 0x39E4664A,
|
||||
0xE8D6DF91, 0x8A2889B3, 0x4E649EBC, 0x436EA674, 0x6EFD1D99, 0x8892388B, 0x44E6C9AB, 0xE4664AE7,
|
||||
0xD6DF9139, 0x2889B3E8, 0x649EBC8A, 0x6EA6744E, 0xFD1D9943, 0x92388B6E, 0xE6C9AB88, 0x664AE744,
|
||||
0xDF9139E4, 0x89B3E8D6, 0x9EBC8A28, 0xA6744E64, 0x1D99436E, 0x388B6EFD, 0xC9AB8892, 0x4AE744E6,
|
||||
0x9139E466, 0xB3E8D6DF, 0xBC8A2889, 0x744E649E, 0x99436EA6, 0xC01D
|
||||
|
||||
e =
|
||||
1194
|
||||
|
||||
k =
|
||||
40
|
||||
|
||||
ncb =
|
||||
192
|
||||
|
||||
rv_index =
|
||||
2
|
||||
|
||||
code_block_mode =
|
||||
1
|
||||
|
||||
op_flags =
|
||||
RTE_BBDEV_TURBO_RATE_MATCH
|
||||
|
||||
expected_status =
|
||||
OK
|
|
@ -0,0 +1,36 @@
|
|||
# SPDX-License-Identifier: BSD-3-Clause
|
||||
# Copyright(c) 2017 Intel Corporation
|
||||
|
||||
op_type =
|
||||
RTE_BBDEV_OP_TURBO_ENC
|
||||
|
||||
input0 =
|
||||
0x11D2BCAC, 0x4D
|
||||
|
||||
output0 =
|
||||
0xBC8A2889, 0x744E649E, 0x99436EA6, 0x8B6EFD1D, 0xAB889238, 0xE744E6C9, 0x39E4664A, 0xE8D6DF91,
|
||||
0x8A2889B3, 0x4E649EBC, 0x436EA674, 0x6EFD1D99, 0x8892388B, 0x44E6C9AB, 0xE4664AE7, 0xD6DF9139,
|
||||
0x2889B3E8, 0x649EBC8A, 0x6EA6744E, 0xFD1D9943, 0x92388B6E, 0xE6C9AB88, 0x664AE744, 0xDF9139E4,
|
||||
0x89B3E8D6, 0x9EBC8A28, 0xA6744E64, 0x1D99436E, 0x388B6EFD, 0xC9AB8892, 0x4AE744E6, 0x9139E466,
|
||||
0xB3E8D6DF, 0xBC8A2889, 0x744E649E, 0x99436EA6, 0x8B6EFD1D, 0x9038
|
||||
|
||||
e =
|
||||
1196
|
||||
|
||||
k =
|
||||
40
|
||||
|
||||
ncb =
|
||||
192
|
||||
|
||||
rv_index =
|
||||
3
|
||||
|
||||
code_block_mode =
|
||||
1
|
||||
|
||||
op_flags =
|
||||
RTE_BBDEV_TURBO_RATE_MATCH
|
||||
|
||||
expected_status =
|
||||
OK
|
|
@ -0,0 +1,33 @@
|
|||
# SPDX-License-Identifier: BSD-3-Clause
|
||||
# Copyright(c) 2017 Intel Corporation
|
||||
|
||||
op_type =
|
||||
RTE_BBDEV_OP_TURBO_ENC
|
||||
|
||||
input0 =
|
||||
0x11d2bcac, 0x4d
|
||||
|
||||
output0 =
|
||||
0xd2399179, 0x640eb999, 0x2cbaf577, 0xaf224ae2, 0x9d139927, 0xe6909b29, 0xa25b7f47, 0x2aa224ce,
|
||||
0x79f2
|
||||
|
||||
e =
|
||||
272
|
||||
|
||||
k =
|
||||
40
|
||||
|
||||
ncb =
|
||||
192
|
||||
|
||||
rv_index =
|
||||
0
|
||||
|
||||
code_block_mode =
|
||||
1
|
||||
|
||||
op_flags =
|
||||
RTE_BBDEV_TURBO_RATE_MATCH
|
||||
|
||||
expected_status =
|
||||
OK
|
|
@ -0,0 +1,63 @@
|
|||
# SPDX-License-Identifier: BSD-3-Clause
|
||||
# Copyright(c) 2017 Intel Corporation
|
||||
|
||||
op_type =
|
||||
RTE_BBDEV_OP_TURBO_ENC
|
||||
|
||||
input0 =
|
||||
0x11d2bcac, 0x7715ae4d, 0xc9f4dbc6, 0x2fda3c1a, 0x09349b16, 0x2cd3c189,
|
||||
0xe5650429, 0xc73c42c1, 0xe7336bb7, 0xbb7de593, 0x83f986aa, 0xc0ade12e,
|
||||
0x6730b095, 0x78f7c059, 0xaa907199, 0x75c323d1, 0x7061f9ba, 0x97e067bf,
|
||||
0xc155cd55, 0x6a4cb08d, 0x4260e2fa, 0xff35e496, 0x37f251d3, 0x02fd9f9e,
|
||||
0x6f53345c, 0x790cda6d, 0x3b8549e4, 0x56d0c6ea, 0x70a38006, 0xfff18223,
|
||||
0x6f2035b5, 0x6cf508d3, 0x98a0a308, 0x432353fc, 0x0eb818eb, 0xdd9a128b,
|
||||
0xf92431b2, 0xad788286, 0xda07d5de, 0x44b4b3a8, 0xbe62fd67, 0x61a4eb54,
|
||||
0x90d7ac9f, 0xc4d9a930, 0xfddc3c24, 0xf5e3b1c8, 0x38143538, 0xcb1d3062,
|
||||
0xcae36df3, 0x50a73437, 0x542dcab7, 0x875973a0, 0x34690309, 0x49cb1ddb,
|
||||
0xf8a62b92, 0x82af6103, 0xc9f8c928, 0x3835b822, 0x16b044a6, 0xdae89096,
|
||||
0xa5be47d4, 0xaf61189e, 0x5cd70faf, 0x037331cf, 0xef7fa5f6, 0xb2f2b41a,
|
||||
0xa6f222c6, 0xdb60fe4c, 0x2a857a9a, 0x0b821f9d, 0x348afd17, 0x7eecbaeb,
|
||||
0x92bb9509, 0x8a3cec24, 0xd02549a2, 0x155ffa81, 0x2b7feac6, 0x3ee461e7,
|
||||
0xc981f936, 0x89b544c7, 0x9a431e36, 0x62511734, 0x769f9647, 0x211a747e,
|
||||
0x567abef4, 0xad87e2b4, 0xa3e0c3bf, 0x6d325dd5, 0xf561cc46, 0x39925735,
|
||||
0x3d8abbfd, 0xc3724c88, 0x8bdf03c9, 0x1b02a12a, 0x4f233a0c, 0x9ca9444a,
|
||||
0xc5d1f7e6, 0x4d995f37, 0xd9aefb32, 0xd0465248, 0x0f3a3b21, 0x62ea8c0c,
|
||||
0x91f8d54e, 0x5cf75514, 0x14618a01, 0x8fe9b87e, 0xf2b424f9, 0x49724ce2,
|
||||
0xa1464587, 0x5e00dc83, 0x59475455, 0x444119b1, 0x4fb9f036, 0x65fcbc1a,
|
||||
0x1c63a990, 0x767a6114, 0xb0ede06a, 0xcfb91ae3, 0x7874af5f, 0xf78772a3,
|
||||
0xa2932c81, 0x77f2759d, 0x930dc8f1, 0x95ce14a5, 0x134363ee, 0x61ee143f,
|
||||
0xf0034b35, 0xfdc75fce, 0x3be2dcf3, 0xff3a07eb, 0xdc43f0eb, 0x23ba73bb,
|
||||
0x45f7649e, 0xcacc297c, 0xa3dd98db, 0x058d46a9, 0x6bcfc154, 0x7be8e1e6,
|
||||
0x618a4754, 0x8d193c46, 0xba39e1ce, 0xc3b85cfc, 0xd80d853b, 0x38d6440d,
|
||||
0x9c1a6185, 0x90c9dfcb, 0x01c6e841, 0xeedfe6ac, 0x7b61a3ae, 0xad3924dd,
|
||||
0x514bc1a8, 0x6ed60d7e, 0x1b74b79b, 0xea295947, 0x5f9a5d33, 0xcd24311f,
|
||||
0x0bd3d10c, 0xd214ecfe, 0xcb37035d, 0x8ce95168, 0x7020cb52, 0xe432107d,
|
||||
0x042d63ac, 0x6201c8dd, 0x4bea65a2, 0x1a3cf453, 0x5b8e868d, 0x3d653bb0,
|
||||
0x24c1967e, 0x37f183a9, 0x3700e703, 0xb168a02b, 0x2592cd82, 0x5c0cdb66,
|
||||
0x70b64ebd, 0xf8dcb9a7, 0x634a8335, 0x06642398, 0xfe2f4497, 0x2e775256,
|
||||
0x30f85cbe, 0xf4d2fdaf, 0x46ca6c9d, 0x022097d6, 0xcedeb03e, 0x3d8353bc,
|
||||
0x0d005559, 0xd457eb38, 0xb1931313, 0xd4f12824, 0xcc444f1b, 0xfaa42c5f
|
||||
|
||||
output0 =
|
||||
0xd0d936d6, 0x870c26f3, 0x3f12805d, 0x4a6016
|
||||
|
||||
e =
|
||||
120
|
||||
|
||||
k =
|
||||
6144
|
||||
|
||||
ncb =
|
||||
18528
|
||||
|
||||
rv_index =
|
||||
1
|
||||
|
||||
code_block_mode =
|
||||
1
|
||||
|
||||
op_flags =
|
||||
RTE_BBDEV_TURBO_RATE_MATCH, RTE_BBDEV_TURBO_RV_INDEX_BYPASS
|
||||
|
||||
expected_status =
|
||||
OK
|
|
@ -0,0 +1,156 @@
|
|||
# SPDX-License-Identifier: BSD-3-Clause
|
||||
# Copyright(c) 2017 Intel Corporation
|
||||
|
||||
op_type =
|
||||
RTE_BBDEV_OP_TURBO_ENC
|
||||
|
||||
input0 =
|
||||
0x11d2bcac, 0x7715ae4d, 0xc9f4dbc6, 0x2fda3c1a, 0x09349b16, 0x2cd3c189,
|
||||
0xe5650429, 0xc73c42c1, 0xe7336bb7, 0xbb7de593, 0x83f986aa, 0xc0ade12e,
|
||||
0x6730b095, 0x78f7c059, 0xaa907199, 0x75c323d1, 0x7061f9ba, 0x97e067bf,
|
||||
0xc155cd55, 0x6a4cb08d, 0x4260e2fa, 0xff35e496, 0x37f251d3, 0x02fd9f9e,
|
||||
0x6f53345c, 0x790cda6d, 0x3b8549e4, 0x56d0c6ea, 0x70a38006, 0xfff18223,
|
||||
0x6f2035b5, 0x6cf508d3, 0x98a0a308, 0x432353fc, 0x0eb818eb, 0xdd9a128b,
|
||||
0xf92431b2, 0xad788286, 0xda07d5de, 0x44b4b3a8, 0xbe62fd67, 0x61a4eb54,
|
||||
0x90d7ac9f, 0xc4d9a930, 0xfddc3c24, 0xf5e3b1c8, 0x38143538, 0xcb1d3062,
|
||||
0xcae36df3, 0x50a73437, 0x542dcab7, 0x875973a0, 0x34690309, 0x49cb1ddb,
|
||||
0xf8a62b92, 0x82af6103, 0xc9f8c928, 0x3835b822, 0x16b044a6, 0xdae89096,
|
||||
0xa5be47d4, 0xaf61189e, 0x5cd70faf, 0x037331cf, 0xef7fa5f6, 0xb2f2b41a,
|
||||
0xa6f222c6, 0xdb60fe4c, 0x2a857a9a, 0x0b821f9d, 0x348afd17, 0x7eecbaeb,
|
||||
0x92bb9509, 0x8a3cec24, 0xd02549a2, 0x155ffa81, 0x2b7feac6, 0x3ee461e7,
|
||||
0xc981f936, 0x89b544c7, 0x9a431e36, 0x62511734, 0x769f9647, 0x211a747e,
|
||||
0x567abef4, 0xad87e2b4, 0xa3e0c3bf, 0x6d325dd5, 0xf561cc46, 0x39925735,
|
||||
0x3d8abbfd, 0xc3724c88, 0x8bdf03c9, 0x1b02a12a, 0x4f233a0c, 0x9ca9444a,
|
||||
0xc5d1f7e6, 0x4d995f37, 0xd9aefb32, 0xd0465248, 0x0f3a3b21, 0x62ea8c0c,
|
||||
0x91f8d54e, 0x5cf75514, 0x14618a01, 0x8fe9b87e, 0xf2b424f9, 0x49724ce2,
|
||||
0xa1464587, 0x5e00dc83, 0x59475455, 0x444119b1, 0x4fb9f036, 0x65fcbc1a,
|
||||
0x1c63a990, 0x767a6114, 0xb0ede06a, 0xcfb91ae3, 0x7874af5f, 0xf78772a3,
|
||||
0xa2932c81, 0x77f2759d, 0x930dc8f1, 0x95ce14a5, 0x134363ee, 0x61ee143f,
|
||||
0xf0034b35, 0xfdc75fce, 0x3be2dcf3, 0xff3a07eb, 0xdc43f0eb, 0x23ba73bb,
|
||||
0x45f7649e, 0xcacc297c, 0xa3dd98db, 0x058d46a9, 0x6bcfc154, 0x7be8e1e6,
|
||||
0x618a4754, 0x8d193c46, 0xba39e1ce, 0xc3b85cfc, 0xd80d853b, 0x38d6440d,
|
||||
0x9c1a6185, 0x90c9dfcb, 0x01c6e841, 0xeedfe6ac, 0x7b61a3ae, 0xad3924dd,
|
||||
0x514bc1a8, 0x6ed60d7e, 0x1b74b79b, 0xea295947, 0x5f9a5d33, 0xcd24311f,
|
||||
0x0bd3d10c, 0xd214ecfe, 0xcb37035d, 0x8ce95168, 0x7020cb52, 0xe432107d,
|
||||
0x042d63ac, 0x6201c8dd, 0x4bea65a2, 0x1a3cf453, 0x5b8e868d, 0x3d653bb0,
|
||||
0x24c1967e, 0x37f183a9, 0x3700e703, 0xb168a02b, 0x2592cd82, 0x5c0cdb66,
|
||||
0x70b64ebd, 0xf8dcb9a7, 0x634a8335, 0x06642398, 0xfe2f4497, 0x2e775256,
|
||||
0x30f85cbe, 0xf4d2fdaf, 0x46ca6c9d, 0x022097d6, 0xcedeb03e, 0x3d8353bc,
|
||||
0x0d005559, 0xd457eb38, 0xb1931313, 0xd4f12824, 0xcc444f1b, 0xfaa42c5f
|
||||
|
||||
output0 =
|
||||
0x11d2bcac, 0x7715ae4d, 0xc9f4dbc6, 0x2fda3c1a, 0x09349b16, 0x2cd3c189,
|
||||
0xe5650429, 0xc73c42c1, 0xe7336bb7, 0xbb7de593, 0x83f986aa, 0xc0ade12e,
|
||||
0x6730b095, 0x78f7c059, 0xaa907199, 0x75c323d1, 0x7061f9ba, 0x97e067bf,
|
||||
0xc155cd55, 0x6a4cb08d, 0x4260e2fa, 0xff35e496, 0x37f251d3, 0x02fd9f9e,
|
||||
0x6f53345c, 0x790cda6d, 0x3b8549e4, 0x56d0c6ea, 0x70a38006, 0xfff18223,
|
||||
0x6f2035b5, 0x6cf508d3, 0x98a0a308, 0x432353fc, 0x0eb818eb, 0xdd9a128b,
|
||||
0xf92431b2, 0xad788286, 0xda07d5de, 0x44b4b3a8, 0xbe62fd67, 0x61a4eb54,
|
||||
0x90d7ac9f, 0xc4d9a930, 0xfddc3c24, 0xf5e3b1c8, 0x38143538, 0xcb1d3062,
|
||||
0xcae36df3, 0x50a73437, 0x542dcab7, 0x875973a0, 0x34690309, 0x49cb1ddb,
|
||||
0xf8a62b92, 0x82af6103, 0xc9f8c928, 0x3835b822, 0x16b044a6, 0xdae89096,
|
||||
0xa5be47d4, 0xaf61189e, 0x5cd70faf, 0x037331cf, 0xef7fa5f6, 0xb2f2b41a,
|
||||
0xa6f222c6, 0xdb60fe4c, 0x2a857a9a, 0x0b821f9d, 0x348afd17, 0x7eecbaeb,
|
||||
0x92bb9509, 0x8a3cec24, 0xd02549a2, 0x155ffa81, 0x2b7feac6, 0x3ee461e7,
|
||||
0xc981f936, 0x89b544c7, 0x9a431e36, 0x62511734, 0x769f9647, 0x211a747e,
|
||||
0x567abef4, 0xad87e2b4, 0xa3e0c3bf, 0x6d325dd5, 0xf561cc46, 0x39925735,
|
||||
0x3d8abbfd, 0xc3724c88, 0x8bdf03c9, 0x1b02a12a, 0x4f233a0c, 0x9ca9444a,
|
||||
0xc5d1f7e6, 0x4d995f37, 0xd9aefb32, 0xd0465248, 0x0f3a3b21, 0x62ea8c0c,
|
||||
0x91f8d54e, 0x5cf75514, 0x14618a01, 0x8fe9b87e, 0xf2b424f9, 0x49724ce2,
|
||||
0xa1464587, 0x5e00dc83, 0x59475455, 0x444119b1, 0x4fb9f036, 0x65fcbc1a,
|
||||
0x1c63a990, 0x767a6114, 0xb0ede06a, 0xcfb91ae3, 0x7874af5f, 0xf78772a3,
|
||||
0xa2932c81, 0x77f2759d, 0x930dc8f1, 0x95ce14a5, 0x134363ee, 0x61ee143f,
|
||||
0xf0034b35, 0xfdc75fce, 0x3be2dcf3, 0xff3a07eb, 0xdc43f0eb, 0x23ba73bb,
|
||||
0x45f7649e, 0xcacc297c, 0xa3dd98db, 0x058d46a9, 0x6bcfc154, 0x7be8e1e6,
|
||||
0x618a4754, 0x8d193c46, 0xba39e1ce, 0xc3b85cfc, 0xd80d853b, 0x38d6440d,
|
||||
0x9c1a6185, 0x90c9dfcb, 0x01c6e841, 0xeedfe6ac, 0x7b61a3ae, 0xad3924dd,
|
||||
0x514bc1a8, 0x6ed60d7e, 0x1b74b79b, 0xea295947, 0x5f9a5d33, 0xcd24311f,
|
||||
0x0bd3d10c, 0xd214ecfe, 0xcb37035d, 0x8ce95168, 0x7020cb52, 0xe432107d,
|
||||
0x042d63ac, 0x6201c8dd, 0x4bea65a2, 0x1a3cf453, 0x5b8e868d, 0x3d653bb0,
|
||||
0x24c1967e, 0x37f183a9, 0x3700e703, 0xb168a02b, 0x2592cd82, 0x5c0cdb66,
|
||||
0x70b64ebd, 0xf8dcb9a7, 0x634a8335, 0x06642398, 0xfe2f4497, 0x2e775256,
|
||||
0x30f85cbe, 0xf4d2fdaf, 0x46ca6c9d, 0x022097d6, 0xcedeb03e, 0x3d8353bc,
|
||||
0x0d005559, 0xd457eb38, 0xb1931313, 0xd4f12824, 0xcc444f1b, 0xfaa42c5f,
|
||||
0x4fde636c, 0x10ea20a0, 0xe6da8721, 0xbfde5b08, 0x9c3739da, 0xb6dc015a,
|
||||
0x427db088, 0xdfdb8e6f, 0x756be6c1, 0x21f5297b, 0x06135665, 0xc1602b7d,
|
||||
0x049536c5, 0xbbb3b801, 0x0cdb0c19, 0x7b2ad622, 0xfee8218f, 0xc5c7f123,
|
||||
0x8abd3301, 0xa15b534d, 0x29dd2053, 0xd409abf9, 0x3ef19d6b, 0x70a3cbc2,
|
||||
0x7a51423a, 0x4505b2ad, 0xdc74c75e, 0x068751a9, 0xb0b56437, 0x14a10371,
|
||||
0x76af806f, 0xa8a47e19, 0x7c97a26e, 0x7998a3d6, 0xdc1ad1e2, 0xb532a301,
|
||||
0xca8a3e7d, 0xd0aef374, 0x204990c0, 0xc7011aec, 0xa69151ea, 0x53390026,
|
||||
0x7bf0d762, 0x735c2202, 0x64159e54, 0x5a3b1a56, 0x9ef1def2, 0x0ab8a961,
|
||||
0x587b0886, 0xb8cc5975, 0x2a5a0f23, 0x069d05be, 0x9cc3c207, 0x40ef1a02,
|
||||
0x4fae3f5b, 0x1f127aae, 0xd4e6d411, 0x17ac43ef, 0xe4bf891b, 0xfbb21765,
|
||||
0x2c560c7e, 0x8561988c, 0x73a01032, 0x0cfef73a, 0x694c4991, 0x885d7a3f,
|
||||
0x4218d1ff, 0xc2efaffb, 0xaf9d9715, 0xf76de6b2, 0xcce8e8ff, 0x370e3800,
|
||||
0x493675eb, 0xd8fbcbda, 0xa5b382c2, 0x86c8f1ea, 0x3d724ea4, 0xb067034c,
|
||||
0x6491d87e, 0x1a745ce4, 0xbb27180b, 0x1a2f0acc, 0xac4b7b3b, 0xe324578b,
|
||||
0xc87928df, 0x9c1de566, 0x0ce2a17d, 0xaf2e13ce, 0x146a8659, 0x8727f6ae,
|
||||
0xe2df7d03, 0x1a8e4cb4, 0xfa590976, 0x13a7c236, 0xc07489d0, 0xbe905e17,
|
||||
0xafeb3d4b, 0x201e73f2, 0x5bdca12e, 0x3e15a852, 0xbcfc3271, 0x5d398410,
|
||||
0x6bfacc15, 0x011fc61f, 0x43e43fd7, 0x0640717c, 0x96bfb3ff, 0x158eac19,
|
||||
0x3b852e91, 0x74f9ceda, 0xcac71326, 0xfc0e312a, 0x20e8137b, 0xa1162611,
|
||||
0x239ac7fe, 0xb9d00f8a, 0xea0b5241, 0x019f0d25, 0xc5153264, 0xb48a5547,
|
||||
0xe54e339f, 0x17a6cca5, 0x5065af0d, 0x5ce648b9, 0xb457b342, 0xc1cb3f0e,
|
||||
0x28d03c8b, 0x5144ed7a, 0xdb80779f, 0x53ce1b87, 0xbc071147, 0xbfe46c11,
|
||||
0x7296785e, 0x83e4a63e, 0xc58982e9, 0x9538c5b9, 0xf14abaaa, 0xd915124c,
|
||||
0x73540cd6, 0xe333696b, 0x58f9e00a, 0xd4dad10f, 0xc0de1420, 0x355e2bdc,
|
||||
0xb2faa8fd, 0xbe6a12f1, 0x45d415cc, 0x47f5aed9, 0x4754e770, 0x2bb07385,
|
||||
0x41374352, 0xf80beb47, 0xef02f35c, 0xc9c1b86e, 0x94b5785b, 0xba33123f,
|
||||
0x7e39f0c9, 0x028a9286, 0x7d52c9f1, 0x06f04da6, 0xbc6a68d1, 0xfc70bace,
|
||||
0x95b6a129, 0xfff224bb, 0x701ef3fb, 0x3309286f, 0x544ae8c1, 0xdca62c4a,
|
||||
0xf8862ee2, 0xf9e3cd29, 0x2c07cce2, 0x8d93652a, 0xf47e4611, 0x4635f586,
|
||||
0x1c03e0f4, 0x819724c7, 0x96b2a3f0, 0xeeb1ad95, 0xff08e517, 0xbd4ba6ed,
|
||||
0x49ddb12d, 0x365734b5, 0x5edf7459, 0x2ee117a9, 0x067b9462, 0xb703685f,
|
||||
0x72499876, 0xb71dd772, 0x5d02b478, 0x4b6fed1d, 0x2df232c1, 0x733eaaff,
|
||||
0x1618c029, 0x0adda94b, 0xd271e560, 0xd120ba30, 0x6dfecc73, 0x4e751af7,
|
||||
0x0e7a6b63, 0xa1ad5dad, 0xb41201b1, 0x245f3e86, 0x3a5114ac, 0x5cd532c9,
|
||||
0x27ff9c3a, 0x7a847392, 0x6b2d0514, 0x82d0cc45, 0x0c779ba2, 0x8690f3ef,
|
||||
0x0c058474, 0x47a8ee9a, 0xac4c2475, 0x496b67a5, 0x033f43f5, 0x6e6ce3c9,
|
||||
0x644f5163, 0x8f4b92d9, 0x217798ee, 0x4b8e5368, 0xce751989, 0x7ab05365,
|
||||
0xe227cee3, 0xf35e2851, 0x6f304c87, 0x1389c81d, 0x6ebc3989, 0x2b32ac3e,
|
||||
0x59c5d111, 0xa8e8699c, 0xa5b15150, 0x8cacebe8, 0x40c2ede6, 0x71ea78c9,
|
||||
0xa9e40f49, 0x58309eab, 0xd2eb879c, 0x54b9086f, 0xce206d93, 0x47e7087a,
|
||||
0xac1e1dd9, 0x1d3a7bf1, 0x07d21fd4, 0x3a84a2a7, 0xe3ce33de, 0x55c94ddf,
|
||||
0xd827c1ea, 0x3b4dcf5a, 0x7d5fbeb6, 0xd71ccdae, 0x516a9035, 0x33b3bee0,
|
||||
0x61201364, 0xcf344f8d, 0x8c887934, 0x1998c127, 0xe24f1190, 0x75e8ea20,
|
||||
0x8a379eda, 0x8a894b14, 0xa3d7c264, 0xa62b0119, 0x87f4d316, 0xecdc5f2b,
|
||||
0xbc2424ec, 0x71169a71, 0x61aa2d5d, 0xb5f5f160, 0xc15a4969, 0xc5419315,
|
||||
0xbf84483e, 0x2b1687c1, 0xd1aa06df, 0x22d5befd, 0x8b09b15f, 0xa88ffc01,
|
||||
0xbb33617f, 0xb01a3e2e, 0x912a939c, 0xc649d802, 0xeba14b11, 0x3c902b57,
|
||||
0xbcf35a8d, 0x45a964a1, 0x0c9416ef, 0xec9ae2d1, 0xc5e56fee, 0x88bfa336,
|
||||
0x653cfe85, 0x92d21037, 0x96bc60e4, 0xf5317c1e, 0x5e7118f4, 0x91a9e04b,
|
||||
0x43f0cfec, 0xb763dc3c, 0xad6bac40, 0x21685f69, 0x5e4d6f70, 0xd8d5a4c4,
|
||||
0x15ed5efe, 0x3bbefa38, 0xbf7cf912, 0xb1427ffd, 0x652235ff, 0x927a7046,
|
||||
0x8806625f, 0x56967b59, 0x6ec3dba6, 0x0ee31e0f, 0x25111a51, 0x091c763e,
|
||||
0x1867732b, 0x28365594, 0xa589c975, 0x585b906f, 0xb85c4f20, 0xced98475,
|
||||
0x52f29d16, 0x1ca0de39, 0xede3c4c8, 0xda808e91, 0x449784ab, 0xe3caf590,
|
||||
0xabf23939, 0xe97f259a, 0x0a879f81, 0x5c6268ac, 0x0a4f1b62, 0xfe15825e,
|
||||
0xbea5e6f9, 0x0d2db98f, 0xeec8cd64, 0x1747ddf5, 0x8b4f161c, 0xd236c9f6,
|
||||
0x1a5b5a2f, 0x08918e6d, 0xdde43ad9, 0x8c316d0f, 0x7f1b3342, 0x3e385cee,
|
||||
0x55ff6f87, 0x89bbe534, 0x67c23afe, 0x250dc97a, 0x06b3b332, 0x61a03930,
|
||||
0x2ca17159, 0x3260c4f6, 0x3c810bde, 0x28d94372, 0xa9701f5a, 0x3880475b,
|
||||
0x352ff389, 0x2bf653e0, 0xa4a6cc35, 0x4d211cfc, 0xeda0b37d, 0x14c0e6d8,
|
||||
0xe457aaea, 0x1c6ed15f, 0x155d3b90, 0x7f43aed4, 0x289a98f9, 0x42246910,
|
||||
0x62d047f5, 0x75714462, 0xe2c2a4df, 0x9dfc0f13, 0x03361f4c, 0xc55b5ca7,
|
||||
0x9dd89720, 0x17376073, 0xfb6ee849, 0x280e697e, 0x57b24f3a, 0x2089b956,
|
||||
0xa8baa602, 0x5b7ab88c, 0xd69f8b56, 0x64f80d52, 0x223427b9, 0xfd393c95,
|
||||
0xb074
|
||||
|
||||
e =
|
||||
18444
|
||||
|
||||
k =
|
||||
6144
|
||||
|
||||
ncb =
|
||||
18528
|
||||
|
||||
rv_index =
|
||||
0
|
||||
|
||||
code_block_mode =
|
||||
1
|
||||
|
||||
expected_status =
|
||||
OK
|
|
@ -0,0 +1,159 @@
|
|||
# SPDX-License-Identifier: BSD-3-Clause
|
||||
# Copyright(c) 2017 Intel Corporation
|
||||
|
||||
op_type =
|
||||
RTE_BBDEV_OP_TURBO_ENC
|
||||
|
||||
input0 =
|
||||
0x11d2bcac, 0x7715ae4d, 0xc9f4dbc6, 0x2fda3c1a, 0x09349b16, 0x2cd3c189,
|
||||
0xe5650429, 0xc73c42c1, 0xe7336bb7, 0xbb7de593, 0x83f986aa, 0xc0ade12e,
|
||||
0x6730b095, 0x78f7c059, 0xaa907199, 0x75c323d1, 0x7061f9ba, 0x97e067bf,
|
||||
0xc155cd55, 0x6a4cb08d, 0x4260e2fa, 0xff35e496, 0x37f251d3, 0x02fd9f9e,
|
||||
0x6f53345c, 0x790cda6d, 0x3b8549e4, 0x56d0c6ea, 0x70a38006, 0xfff18223,
|
||||
0x6f2035b5, 0x6cf508d3, 0x98a0a308, 0x432353fc, 0x0eb818eb, 0xdd9a128b,
|
||||
0xf92431b2, 0xad788286, 0xda07d5de, 0x44b4b3a8, 0xbe62fd67, 0x61a4eb54,
|
||||
0x90d7ac9f, 0xc4d9a930, 0xfddc3c24, 0xf5e3b1c8, 0x38143538, 0xcb1d3062,
|
||||
0xcae36df3, 0x50a73437, 0x542dcab7, 0x875973a0, 0x34690309, 0x49cb1ddb,
|
||||
0xf8a62b92, 0x82af6103, 0xc9f8c928, 0x3835b822, 0x16b044a6, 0xdae89096,
|
||||
0xa5be47d4, 0xaf61189e, 0x5cd70faf, 0x037331cf, 0xef7fa5f6, 0xb2f2b41a,
|
||||
0xa6f222c6, 0xdb60fe4c, 0x2a857a9a, 0x0b821f9d, 0x348afd17, 0x7eecbaeb,
|
||||
0x92bb9509, 0x8a3cec24, 0xd02549a2, 0x155ffa81, 0x2b7feac6, 0x3ee461e7,
|
||||
0xc981f936, 0x89b544c7, 0x9a431e36, 0x62511734, 0x769f9647, 0x211a747e,
|
||||
0x567abef4, 0xad87e2b4, 0xa3e0c3bf, 0x6d325dd5, 0xf561cc46, 0x39925735,
|
||||
0x3d8abbfd, 0xc3724c88, 0x8bdf03c9, 0x1b02a12a, 0x4f233a0c, 0x9ca9444a,
|
||||
0xc5d1f7e6, 0x4d995f37, 0xd9aefb32, 0xd0465248, 0x0f3a3b21, 0x62ea8c0c,
|
||||
0x91f8d54e, 0x5cf75514, 0x14618a01, 0x8fe9b87e, 0xf2b424f9, 0x49724ce2,
|
||||
0xa1464587, 0x5e00dc83, 0x59475455, 0x444119b1, 0x4fb9f036, 0x65fcbc1a,
|
||||
0x1c63a990, 0x767a6114, 0xb0ede06a, 0xcfb91ae3, 0x7874af5f, 0xf78772a3,
|
||||
0xa2932c81, 0x77f2759d, 0x930dc8f1, 0x95ce14a5, 0x134363ee, 0x61ee143f,
|
||||
0xf0034b35, 0xfdc75fce, 0x3be2dcf3, 0xff3a07eb, 0xdc43f0eb, 0x23ba73bb,
|
||||
0x45f7649e, 0xcacc297c, 0xa3dd98db, 0x058d46a9, 0x6bcfc154, 0x7be8e1e6,
|
||||
0x618a4754, 0x8d193c46, 0xba39e1ce, 0xc3b85cfc, 0xd80d853b, 0x38d6440d,
|
||||
0x9c1a6185, 0x90c9dfcb, 0x01c6e841, 0xeedfe6ac, 0x7b61a3ae, 0xad3924dd,
|
||||
0x514bc1a8, 0x6ed60d7e, 0x1b74b79b, 0xea295947, 0x5f9a5d33, 0xcd24311f,
|
||||
0x0bd3d10c, 0xd214ecfe, 0xcb37035d, 0x8ce95168, 0x7020cb52, 0xe432107d,
|
||||
0x042d63ac, 0x6201c8dd, 0x4bea65a2, 0x1a3cf453, 0x5b8e868d, 0x3d653bb0,
|
||||
0x24c1967e, 0x37f183a9, 0x3700e703, 0xb168a02b, 0x2592cd82, 0x5c0cdb66,
|
||||
0x70b64ebd, 0xf8dcb9a7, 0x634a8335, 0x06642398, 0xfe2f4497, 0x2e775256,
|
||||
0x30f85cbe, 0xf4d2fdaf, 0x46ca6c9d, 0x022097d6, 0xcedeb03e, 0x3d8353bc,
|
||||
0x0d005559, 0xd457eb38, 0xb1931313, 0xd4f12824, 0xcc444f1b, 0x5f
|
||||
|
||||
output0 =
|
||||
0x11d2bcac, 0x7715ae4d, 0xc9f4dbc6, 0x2fda3c1a, 0x09349b16, 0x2cd3c189,
|
||||
0xe5650429, 0xc73c42c1, 0xe7336bb7, 0xbb7de593, 0x83f986aa, 0xc0ade12e,
|
||||
0x6730b095, 0x78f7c059, 0xaa907199, 0x75c323d1, 0x7061f9ba, 0x97e067bf,
|
||||
0xc155cd55, 0x6a4cb08d, 0x4260e2fa, 0xff35e496, 0x37f251d3, 0x02fd9f9e,
|
||||
0x6f53345c, 0x790cda6d, 0x3b8549e4, 0x56d0c6ea, 0x70a38006, 0xfff18223,
|
||||
0x6f2035b5, 0x6cf508d3, 0x98a0a308, 0x432353fc, 0x0eb818eb, 0xdd9a128b,
|
||||
0xf92431b2, 0xad788286, 0xda07d5de, 0x44b4b3a8, 0xbe62fd67, 0x61a4eb54,
|
||||
0x90d7ac9f, 0xc4d9a930, 0xfddc3c24, 0xf5e3b1c8, 0x38143538, 0xcb1d3062,
|
||||
0xcae36df3, 0x50a73437, 0x542dcab7, 0x875973a0, 0x34690309, 0x49cb1ddb,
|
||||
0xf8a62b92, 0x82af6103, 0xc9f8c928, 0x3835b822, 0x16b044a6, 0xdae89096,
|
||||
0xa5be47d4, 0xaf61189e, 0x5cd70faf, 0x037331cf, 0xef7fa5f6, 0xb2f2b41a,
|
||||
0xa6f222c6, 0xdb60fe4c, 0x2a857a9a, 0x0b821f9d, 0x348afd17, 0x7eecbaeb,
|
||||
0x92bb9509, 0x8a3cec24, 0xd02549a2, 0x155ffa81, 0x2b7feac6, 0x3ee461e7,
|
||||
0xc981f936, 0x89b544c7, 0x9a431e36, 0x62511734, 0x769f9647, 0x211a747e,
|
||||
0x567abef4, 0xad87e2b4, 0xa3e0c3bf, 0x6d325dd5, 0xf561cc46, 0x39925735,
|
||||
0x3d8abbfd, 0xc3724c88, 0x8bdf03c9, 0x1b02a12a, 0x4f233a0c, 0x9ca9444a,
|
||||
0xc5d1f7e6, 0x4d995f37, 0xd9aefb32, 0xd0465248, 0x0f3a3b21, 0x62ea8c0c,
|
||||
0x91f8d54e, 0x5cf75514, 0x14618a01, 0x8fe9b87e, 0xf2b424f9, 0x49724ce2,
|
||||
0xa1464587, 0x5e00dc83, 0x59475455, 0x444119b1, 0x4fb9f036, 0x65fcbc1a,
|
||||
0x1c63a990, 0x767a6114, 0xb0ede06a, 0xcfb91ae3, 0x7874af5f, 0xf78772a3,
|
||||
0xa2932c81, 0x77f2759d, 0x930dc8f1, 0x95ce14a5, 0x134363ee, 0x61ee143f,
|
||||
0xf0034b35, 0xfdc75fce, 0x3be2dcf3, 0xff3a07eb, 0xdc43f0eb, 0x23ba73bb,
|
||||
0x45f7649e, 0xcacc297c, 0xa3dd98db, 0x058d46a9, 0x6bcfc154, 0x7be8e1e6,
|
||||
0x618a4754, 0x8d193c46, 0xba39e1ce, 0xc3b85cfc, 0xd80d853b, 0x38d6440d,
|
||||
0x9c1a6185, 0x90c9dfcb, 0x01c6e841, 0xeedfe6ac, 0x7b61a3ae, 0xad3924dd,
|
||||
0x514bc1a8, 0x6ed60d7e, 0x1b74b79b, 0xea295947, 0x5f9a5d33, 0xcd24311f,
|
||||
0x0bd3d10c, 0xd214ecfe, 0xcb37035d, 0x8ce95168, 0x7020cb52, 0xe432107d,
|
||||
0x042d63ac, 0x6201c8dd, 0x4bea65a2, 0x1a3cf453, 0x5b8e868d, 0x3d653bb0,
|
||||
0x24c1967e, 0x37f183a9, 0x3700e703, 0xb168a02b, 0x2592cd82, 0x5c0cdb66,
|
||||
0x70b64ebd, 0xf8dcb9a7, 0x634a8335, 0x06642398, 0xfe2f4497, 0x2e775256,
|
||||
0x30f85cbe, 0xf4d2fdaf, 0x46ca6c9d, 0x022097d6, 0xcedeb03e, 0x3d8353bc,
|
||||
0x0d005559, 0xd457eb38, 0xb1931313, 0xd4f12824, 0xcc444f1b, 0xa533d85f,
|
||||
0x4fde63ac, 0x10ea20a0, 0xe6da8721, 0xbfde5b08, 0x9c3739da, 0xb6dc015a,
|
||||
0x427db088, 0xdfdb8e6f, 0x756be6c1, 0x21f5297b, 0x06135665, 0xc1602b7d,
|
||||
0x049536c5, 0xbbb3b801, 0x0cdb0c19, 0x7b2ad622, 0xfee8218f, 0xc5c7f123,
|
||||
0x8abd3301, 0xa15b534d, 0x29dd2053, 0xd409abf9, 0x3ef19d6b, 0x70a3cbc2,
|
||||
0x7a51423a, 0x4505b2ad, 0xdc74c75e, 0x068751a9, 0xb0b56437, 0x14a10371,
|
||||
0x76af806f, 0xa8a47e19, 0x7c97a26e, 0x7998a3d6, 0xdc1ad1e2, 0xb532a301,
|
||||
0xca8a3e7d, 0xd0aef374, 0x204990c0, 0xc7011aec, 0xa69151ea, 0x53390026,
|
||||
0x7bf0d762, 0x735c2202, 0x64159e54, 0x5a3b1a56, 0x9ef1def2, 0x0ab8a961,
|
||||
0x587b0886, 0xb8cc5975, 0x2a5a0f23, 0x069d05be, 0x9cc3c207, 0x40ef1a02,
|
||||
0x4fae3f5b, 0x1f127aae, 0xd4e6d411, 0x17ac43ef, 0xe4bf891b, 0xfbb21765,
|
||||
0x2c560c7e, 0x8561988c, 0x73a01032, 0x0cfef73a, 0x694c4991, 0x885d7a3f,
|
||||
0x4218d1ff, 0xc2efaffb, 0xaf9d9715, 0xf76de6b2, 0xcce8e8ff, 0x370e3800,
|
||||
0x493675eb, 0xd8fbcbda, 0xa5b382c2, 0x86c8f1ea, 0x3d724ea4, 0xb067034c,
|
||||
0x6491d87e, 0x1a745ce4, 0xbb27180b, 0x1a2f0acc, 0xac4b7b3b, 0xe324578b,
|
||||
0xc87928df, 0x9c1de566, 0x0ce2a17d, 0xaf2e13ce, 0x146a8659, 0x8727f6ae,
|
||||
0xe2df7d03, 0x1a8e4cb4, 0xfa590976, 0x13a7c236, 0xc07489d0, 0xbe905e17,
|
||||
0xafeb3d4b, 0x201e73f2, 0x5bdca12e, 0x3e15a852, 0xbcfc3271, 0x5d398410,
|
||||
0x6bfacc15, 0x011fc61f, 0x43e43fd7, 0x0640717c, 0x96bfb3ff, 0x158eac19,
|
||||
0x3b852e91, 0x74f9ceda, 0xcac71326, 0xfc0e312a, 0x20e8137b, 0xa1162611,
|
||||
0x239ac7fe, 0xb9d00f8a, 0xea0b5241, 0x019f0d25, 0xc5153264, 0xb48a5547,
|
||||
0xe54e339f, 0x17a6cca5, 0x5065af0d, 0x5ce648b9, 0xb457b342, 0xc1cb3f0e,
|
||||
0x28d03c8b, 0x5144ed7a, 0xdb80779f, 0x53ce1b87, 0xbc071147, 0xbfe46c11,
|
||||
0x7296785e, 0x83e4a63e, 0xc58982e9, 0x9538c5b9, 0xf14abaaa, 0xd915124c,
|
||||
0x73540cd6, 0xe333696b, 0x58f9e00a, 0xd4dad10f, 0xc0de1420, 0x355e2bdc,
|
||||
0xb2faa8fd, 0xbe6a12f1, 0x45d415cc, 0x47f5aed9, 0x4754e770, 0x2bb07385,
|
||||
0x41374352, 0xf80beb47, 0xef02f35c, 0xc9c1b86e, 0x94b5785b, 0xba33123f,
|
||||
0x7e39f0c9, 0x028a9286, 0x7d52c9f1, 0x06f04da6, 0xbc6a68d1, 0xfc70bace,
|
||||
0x95b6a129, 0xfff224bb, 0x701ef3fb, 0x3309286f, 0x544ae8c1, 0xdca62c4a,
|
||||
0xf8862ee2, 0xf9e3cd29, 0x2c07cce2, 0x8d93652a, 0xf47e4611, 0x4635f586,
|
||||
0x1c03e0f4, 0x819724c7, 0x96b2a3f0, 0xeeb1ad95, 0xff08e517, 0xbd4ba6ed,
|
||||
0x49ddb12d, 0x365734b5, 0x5edf7459, 0x2ee117a9, 0x067b9462, 0xb703685f,
|
||||
0x72499876, 0xb71dd772, 0x5d02b478, 0x4b6fed1d, 0x2df232c1, 0xb9dea0ff,
|
||||
0x1618c046, 0x0adda94b, 0xd271e560, 0xd120ba30, 0x6dfecc73, 0x4e751af7,
|
||||
0x0e7a6b63, 0xa1ad5dad, 0xb41201b1, 0x245f3e86, 0x3a5114ac, 0x5cd532c9,
|
||||
0x27ff9c3a, 0x7a847392, 0x6b2d0514, 0x82d0cc45, 0x30779ba2, 0x3f0c8156,
|
||||
0x9bce6106, 0x3511b2b4, 0x82dbef90, 0xac19def9, 0x5f11d43e, 0xa5899170,
|
||||
0xdd137ff4, 0x188077ab, 0x53cec4c0, 0x6519988d, 0x2b07a0d5, 0x269ec4ae,
|
||||
0x29c2bc5a, 0x4a0206c6, 0xf8fba9f5, 0x61309433, 0x402bf26c, 0xce401562,
|
||||
0xf7eb46da, 0x4d9ad0c0, 0xf99fc69b, 0x1b670e56, 0x327bb1c8, 0x5f7db32c,
|
||||
0x4c96b615, 0x041e0960, 0x190ef525, 0xede526f8, 0x59eb88e1, 0x355e5454,
|
||||
0x8289d63c, 0xf848c2ad, 0x5bfc881f, 0xf161d01e, 0x5a921d49, 0xc202a8ad,
|
||||
0xaa9e9dc4, 0x8211e14d, 0xea945bc4, 0xa5a59180, 0x7ffd5bd0, 0xd6c107bc,
|
||||
0x3d0e84af, 0x04d13d34, 0xa21f54a3, 0xfcea787b, 0xbe61865b, 0xbe0d9899,
|
||||
0x336bb04d, 0xf843ae66, 0x8d400981, 0x4359b845, 0xdbda44dd, 0x27392d92,
|
||||
0x05780a7b, 0xe6dd7f03, 0x13137173, 0x9b623a85, 0x2428f035, 0x996f04de,
|
||||
0x74613a87, 0x924aa956, 0x4661e3ad, 0x506ce2d3, 0xa59e7aba, 0x34fd455d,
|
||||
0x70d613c6, 0x094610b9, 0x06e176ee, 0xb4f0842c, 0xc53680f4, 0xd9e2920b,
|
||||
0xe0ddcd46, 0x8e4c1618, 0xb5c83878, 0x7b5107a3, 0xb75c33c0, 0xa62868d3,
|
||||
0x804e47d9, 0xcefc87fc, 0xca5e125d, 0x3ed40ea7, 0xe72d3663, 0x06620539,
|
||||
0x314993c2, 0x99f417d9, 0x4819151c, 0x7d46c8a2, 0x95a81dc9, 0x61898a53,
|
||||
0x8226bb8c, 0x4907a616, 0x91eb32f7, 0x5430c6a1, 0x390ca234, 0x599f02ff,
|
||||
0x315a4cc8, 0xc15d9e2b, 0x1c7a8788, 0x2074d5ea, 0xc063a30d, 0x5532e1f5,
|
||||
0xd3820192, 0x916a7b03, 0x32422c07, 0x2ae2cc41, 0x96cb84c5, 0x2bab3d29,
|
||||
0x0edc0add, 0x408e4981, 0x2606b671, 0x63dca006, 0x8f4261d9, 0xbfe4623b,
|
||||
0x60174b80, 0x50230b0d, 0x9d4c7af3, 0x2edb3482, 0x24d8d087, 0x1b673b02,
|
||||
0xe28b7132, 0xc6c8cb36, 0x5794e3f3, 0x808c3887, 0xf9f64a32, 0xfca10213,
|
||||
0xff29e373, 0x54bf19a6, 0x16014860, 0x356d4398, 0xe8d0d630, 0x4c8100c0,
|
||||
0x7b68a462, 0x6cc95c68, 0x3becad35, 0xb2c6b4c3, 0x740aef1c, 0x4f37f2d5,
|
||||
0xc9d3c805, 0x6e4e533d, 0xf7647967, 0x91856de5, 0x87e7e428, 0xddf2fe07,
|
||||
0x69016442, 0xe0132159, 0x1afae2a2, 0x63b6d719, 0x08d20a21, 0x48ee7113,
|
||||
0x2fb2d853, 0xa532ffc8, 0x8296dee2, 0x0dfaf2fa, 0x060d531c, 0xa756d04c,
|
||||
0x3efed03e, 0xbe9436db, 0x5b9e8a48, 0x0a37ea61, 0x718f4362, 0xebcc9742,
|
||||
0x78aa2e7c, 0x4b19f7b8, 0x308b9af0, 0x915247e9, 0xc079aa48, 0x5230e578,
|
||||
0x862d6de7, 0xbe0801d0, 0x8ab11c9d, 0xaf1d7feb, 0xe9d15530, 0x44651202,
|
||||
0xc006
|
||||
|
||||
e =
|
||||
18448
|
||||
|
||||
k =
|
||||
6144
|
||||
|
||||
ncb =
|
||||
18528
|
||||
|
||||
rv_index =
|
||||
0
|
||||
|
||||
code_block_mode =
|
||||
1
|
||||
|
||||
op_flags =
|
||||
RTE_BBDEV_TURBO_CRC_24A_ATTACH
|
||||
|
||||
expected_status =
|
||||
OK
|
|
@ -0,0 +1,180 @@
|
|||
# SPDX-License-Identifier: BSD-3-Clause
|
||||
# Copyright(c) 2017 Intel Corporation
|
||||
|
||||
op_type =
|
||||
RTE_BBDEV_OP_TURBO_ENC
|
||||
|
||||
input0 =
|
||||
0xe5e0a392, 0x6f5468f1, 0xc8f1c505, 0x4502caf2, 0x23df5578, 0xc2f29afe, 0x06838d34, 0x264eab9b,
|
||||
0x1e97c133, 0xabad27aa, 0x684fa9b4, 0x0fed735e, 0x6ab6bcad, 0x9c3e401a, 0x66a63035, 0xa72f7f6b,
|
||||
0x509d2953, 0xf03c574a, 0x48f12185, 0x27318395, 0x008fc1ce, 0x7efcf19d, 0x0120de12, 0x6ed28bff,
|
||||
0x2044547a, 0x04d95124, 0x6baf2e1e, 0x60d93509, 0x299aa27f, 0x8b67d93a, 0xc33d9631, 0xe468dbe1,
|
||||
0x1a82d0b6, 0x8ee2ff7b, 0x39298170, 0x33a90b6a, 0x273d17f7, 0xb4368615, 0x60c390b8, 0x24696570,
|
||||
0xa1f4abcc, 0x08b68dd0, 0x91f8c883, 0xc9ceed85, 0x6467da9b, 0x48dfae24, 0xf4ff4992, 0x8c8200cf,
|
||||
0xaac02792, 0xf506f71d, 0x096df98a, 0x3074be38, 0x9b675626, 0x4ccace33, 0x50f0f60d, 0xf4b59cc4,
|
||||
0x748a8799, 0x9032c151, 0x1fb945f6, 0x01bd098a, 0x90a7907b, 0xe086172c, 0x7ed3dc8d, 0xea0dd126,
|
||||
0xf9b35bc1, 0x8ad4e233, 0x37b5e1a1, 0x95bf8c3a, 0x9d288b43, 0x23a860f1, 0x4e993fc3, 0x3c774bd4,
|
||||
0xe411be48, 0x22ab80c7, 0x9dd09a47, 0xc9e6988e, 0xb4cbf0b2, 0xb9e2a389, 0xf1494438, 0x2c87638b,
|
||||
0x892468ec, 0x7915d1aa, 0x4d9cb9c4, 0x643a388e, 0x48c4358f, 0x937ad5a1, 0xdae53508, 0xa1305607,
|
||||
0xbfb63a5c, 0xb4bb9324, 0x71daab0b, 0xa582346b, 0x0e5402e1, 0x75af83e7, 0x2b241b17, 0xfa17aca1,
|
||||
0x9637cb2e, 0xc61fe511, 0x093934f7, 0x4b703b44, 0x992ab229, 0x4ddc99b5, 0xe2be6b60, 0xa2217861,
|
||||
0x8f621931, 0x272c0ec6, 0x23a4d5b2, 0xc6f4e002, 0xb76397c0, 0xc00e3c01, 0xb89d29b3, 0x5e9bc984,
|
||||
0x00391d56, 0x55fae02f, 0x4bc4bc9d, 0x9a147b22, 0x0fb492ed, 0x753dc9a6, 0x9f493eec, 0x6e135dc2,
|
||||
0x0eeca515, 0x1c1512f9, 0xb88075e3, 0x326a97f0, 0xc755faf5, 0x06b7961b, 0xbd50fd69, 0x5f071c92,
|
||||
0x2806c099, 0xe364f4ab, 0x2c4a114a, 0x7655b100, 0xf5e66750, 0xf9212705, 0x245e3b8d, 0xb0f1fb0d,
|
||||
0xd7be9558, 0x27030e24, 0x9ea9b62e, 0xbde9be45, 0xce0adae6, 0xc28780a4, 0x1664ccde, 0xa7a62e3f,
|
||||
0xa4f8ec00, 0x964e813c, 0x108c95e0, 0x097fe10b, 0x08da3505, 0xde413158, 0x046a31c0, 0xd9cdd804,
|
||||
0xdfbdff9a, 0xfd77493f, 0xdffb2388, 0xe2ffa111, 0x29eb6ac7, 0xf9e1ac68, 0xc2ed68c7, 0x34d65405,
|
||||
0x25f187ba, 0x3df23a2c, 0x96a2a5a9, 0x2bef4b26, 0x28d1c41d, 0xf380c0f1, 0xc4d5456e, 0x6b699c28,
|
||||
0x0aafd6b3, 0xf88f3078, 0x114438d0, 0x93836544, 0xebd5767d, 0x9185b5c2, 0x593e4fe7, 0x29d3348c,
|
||||
0x881f16c4, 0x77e33d03, 0x6794bbf5, 0x6b6c38f3, 0xa860673a, 0xb1d2d152, 0x08f9f310, 0x82c37500,
|
||||
0xce0ae34c, 0xd5478e86, 0xcfe1adfc, 0xfaf06d37, 0xf7e21bfc, 0x3b077287, 0x45b33c08, 0x41
|
||||
|
||||
output0 =
|
||||
0x25832957, 0x1235fe50, 0xa3b0b09b, 0x0bb7c797, 0xce815b03, 0x7b702251, 0x2c25fc60, 0x23ac55e0,
|
||||
0x8bea35cb, 0xe33b833c, 0xec1d38a4, 0xb59acb59, 0x0f1fa8b7, 0xcb77fce6, 0x6564fc78, 0x9e6c39cc,
|
||||
0x94f1bed1, 0xe02684ad, 0x074045a4, 0x4dc9b344, 0xd187bed8, 0x2a129ecb, 0xf6c5bd4d, 0xf98d5c26,
|
||||
0x78addaae, 0xbe87f7d2, 0xf42a7df6, 0xa4683306, 0xbfa9b509, 0x3a67ddfe, 0x013d68d5, 0xb2a1fb8a,
|
||||
0x0dfc5da7, 0x792f6b24, 0xaa220ec2, 0x6cb0a7a4, 0xd6e5ea4a, 0x1cd6156c, 0x9bac3cad, 0x926a3950,
|
||||
0x658815b0, 0x2a2e4349, 0x9684d70f, 0x67a62f63, 0x7a8aae48, 0x8aa046e5, 0x3cad66d5, 0xe7e269b8,
|
||||
0x95a9a8ca, 0x426f46ae, 0xf780d265, 0x2e0d244d, 0x5480bc07, 0x66554568, 0x938aeda7, 0x1144006c,
|
||||
0x450320b3, 0xce9dfce9, 0x59a277a8, 0xde38cc1a, 0x1cd2bd60, 0x0079ca20, 0x58dd4633, 0x55398bbd,
|
||||
0x5fcf982f, 0xdbbd3e30, 0xdcaab5e4, 0xc368c59f, 0xfba8e7d2, 0x9902b581, 0x2ec0a87f, 0x0ebea4ee,
|
||||
0x13bb2fd2, 0xbc1df5be, 0xe34baa5e, 0x4a66fc5d, 0x7fc9d926, 0x1d2dc178, 0xe780752f, 0x160e82fd,
|
||||
0x2e6205ba, 0x3d2fd1d7, 0x22b03620, 0x1c1ce57b, 0x5a8f8e09, 0xc9522523, 0x712e5cc0, 0xa27b10ad,
|
||||
0x52d2df01, 0x3fe886d6, 0x29f37f12, 0x479e3783, 0xa37a445c, 0x338f9df1, 0x74dca176, 0x11acbbc4,
|
||||
0xac50920a, 0xe9375593, 0xc483a084, 0xed281b58, 0x21ea3cd3, 0x5cf2e76a, 0x50c5e5f4, 0x68d14253,
|
||||
0x374cea8e, 0xf3533631, 0xb8f1bece, 0x3a188078, 0xb15325de, 0x989b4e70, 0x40f142f9, 0x4a55cc30,
|
||||
0x72a442b2, 0xe583a6c7, 0x4cb90a7d, 0xe19187c0, 0x899ea4e0, 0x42598555, 0x7d012357, 0x3e9cd281,
|
||||
0x75094cbb, 0x80afef50, 0x8a834f90, 0xa6182605, 0xdfb7c49e, 0xde57caf6, 0x62720457, 0x5a40705e,
|
||||
0x2728f823, 0xde22d20c, 0x8389268a, 0x2aad9f81, 0xa376314c, 0xd9288769, 0xa7a1cc5d, 0x1dcdb0ed,
|
||||
0x0b23e2d8, 0x024e9165, 0x0e375ea5, 0x27c561c7, 0x48687976, 0xe97021bc, 0xbf82aea2, 0x6cb87bd3,
|
||||
0xaa3f7ed5, 0x1e5c3aaf, 0xccad60b5, 0xb672d5da, 0xde0ff047, 0xf7cd4216, 0x45220a3b, 0x060d16c7,
|
||||
0xb6dc8617, 0xc10d9dc7, 0x3d229a69, 0x8deea79a, 0xda6883e1, 0x610f41f9, 0xfa0f57f0, 0x6f97b547,
|
||||
0xf00577ee, 0xe1be3d28, 0x809810e0, 0x7d4b8416, 0xdcc82557, 0xce6a01b1, 0xbc4cb663, 0x8bc88eac,
|
||||
0xab9e918d, 0x6ec29c41, 0xbd0e745e, 0xa97bc23e, 0x1e1370c2, 0xc2744139, 0xf5d2f67b, 0x9d5ae9dd,
|
||||
0x1040a10a, 0x1b54944c, 0x9a6810b1, 0xc7079d11, 0x8c89d60d, 0xc9523c76, 0x304b7adc, 0x2fd915eb,
|
||||
0x076192e8, 0x8cbd3bc1, 0x90440a9c, 0x81961a26, 0x6a53f026, 0xd2b07ce5, 0xc72e767a, 0x9d47c3d9,
|
||||
0xab2b7cb3, 0xf4b3aeec, 0x18441c12, 0x56b3007f, 0x81c3cfff, 0x128b72ed, 0x214dee41, 0xc735baeb,
|
||||
0x89cf54e7, 0xcdfce851, 0x77cc0a00, 0x57cc6e0a, 0x7ffc8dad, 0xb036445b, 0x0699a9f7, 0x8781d7b5,
|
||||
0xdd0f9d01, 0x43f01de8, 0x6a2e7dee, 0xf802d6b3, 0x10094fc1, 0x954cf6ad, 0xd7aee91a, 0x1e3369c8,
|
||||
0x2acd8c15, 0x3303a61d, 0x79344e4d, 0x1253cd91, 0x34c34c77, 0xbd075dce, 0xe0fdd1cc, 0xf9015c56,
|
||||
0x931b9096, 0x604f4bbf, 0x3b1d991a, 0x24007891, 0x7c0c1709, 0xe0d43230, 0x11821166, 0xf21e2558,
|
||||
0x2c37009d, 0x98718786, 0xa9a112e6, 0xd7e20b10, 0xfe917f72, 0xb76101ff, 0x42a8d327, 0x9039f71b,
|
||||
0x6d1628cb, 0xfd01251c, 0x6f0572a2, 0xb36a7e7a, 0x2b1a4556, 0xe679b027, 0x313573d0, 0xb5f7c20c,
|
||||
0xc8d1530a, 0x338e756e, 0xe6befc47, 0xfe12dccd, 0x6ad1e5b7, 0x40b078ff, 0x96aaacba, 0xedfdeb8f,
|
||||
0x8da3673a, 0xc965882e, 0xa4dec6e9, 0x7bace08f, 0xf144852a, 0xd5d787d0, 0x204d32e6, 0x733098aa,
|
||||
0x12f3a53a, 0xe060086d, 0x3ab1739a, 0xd391e860, 0xc23d9687, 0x0d3a84e0, 0x855ea4cf, 0x0d0ea5b7,
|
||||
0xfd082430, 0x70df7cb4, 0xe712f026, 0x84ce32ac, 0x67b04602, 0xac0b1faa, 0xed119dcd, 0x184afb0b,
|
||||
0x9abbefd2, 0x41b3e2f9, 0xe18d5703, 0x6e5f4de7, 0xb47380a2, 0x239a3714, 0x810bb522, 0x5ad95c77,
|
||||
0xe4b37e0c, 0x1cc200a6, 0x404c4390, 0x90533af1, 0xb49f2403, 0x1dada65f, 0x96f86d1b, 0x58f679a9,
|
||||
0x1fe3c66d, 0xcc5eb28d, 0x504b7aff, 0x7c18a397, 0x47ad4d5f, 0x348f12c5, 0x80bac6e0, 0x47bb3c74,
|
||||
0xccf16f02, 0xa932a5af, 0x51ebb452, 0x25808fcc, 0x47d14a43, 0xf0c2a0af, 0x30f938b5, 0x428420c7,
|
||||
0x61a66d9c, 0x082caa4f, 0xd9c74e3d, 0xb4d161b9, 0xb409f331, 0x14245a44, 0xddb67f1e, 0x1018c62c,
|
||||
0xc1e58e6d, 0x4ba86bd6, 0xf4a282aa, 0x4a85f90d, 0xbf0efb7b, 0x03706f08, 0xbe06a5f2, 0xe37f45f1,
|
||||
0xcbc4001c, 0x14decb05, 0xf3c6050f, 0xd1df33d7, 0xdab729c7, 0x8898dad3, 0x4a44a313, 0x30bee51e,
|
||||
0xd67b07ef, 0xf233eb19, 0x4c52bca3, 0x5d824a4b, 0x275faf2b, 0x428f8a95, 0x03f70c8b, 0x609e4036,
|
||||
0x59ce2147, 0xc7eecc6b, 0xa22d21c2, 0xc5764d9a, 0xb4524bc6, 0x6d9bdfc9, 0x0918b4f7, 0x62bb8022,
|
||||
0x7a98bdcc, 0xc963131d, 0x949036b8, 0x649ae51d, 0x93038d33, 0xe26cb45e, 0x4813516a, 0xc06c759c,
|
||||
0xfa6a9793, 0xdd59c686, 0x37b4b5b0, 0x66a02fac, 0xde159ecf, 0x90cdb66e, 0x1c9f7f94, 0x3a31f69e,
|
||||
0xcd93bc45, 0x32744ee0, 0x0f6ae2b1, 0x3bc9e963, 0x8cddbae4, 0x8f9517ff, 0x7d304ec1, 0x344e0357,
|
||||
0x7cd2ed30, 0x1f9fa3a4, 0x9dbeb67b, 0x59253b51, 0x41b6911a, 0x12b574af, 0x62a777da, 0x9a6c834a,
|
||||
0xaa16081d, 0x3f105c37, 0x6eac5dc0, 0x76e56fd1, 0x67bffbfb, 0xce069b80, 0x8fe970b1, 0x61945ee0,
|
||||
0xaf9d44c2, 0xf2cd16cc, 0x07a768c5, 0xd6eecaa6, 0x6e8ce063, 0x4b30b443, 0x360822c9, 0xa6442b33,
|
||||
0xf02d09a0, 0x22056421, 0xc552aa94, 0x1346ea1a, 0xab6c54a1, 0x35a69bdf, 0xfc6095ea, 0xbde0d55a,
|
||||
0x1b433ec0, 0x137483a0, 0x8c1cb29d, 0xf2bc4e17, 0x45df6882, 0xbd702bc9, 0xabbead61, 0xc97ef61d,
|
||||
0x01b68438, 0xbdd10231, 0x2e046323, 0x80e619bd, 0xa5126a2a, 0x74106e0d, 0x9e57b499, 0xcb275127,
|
||||
0x9e01f21e, 0xbaf4a744, 0x38604f7e, 0xa85493d6, 0x9a4b4541, 0x3f397269, 0xdde71734, 0x157dfe98,
|
||||
0x40334ad9, 0xc889f52f, 0xbddf4d23, 0xd2200018, 0x2a4b7180, 0x8a1a357f, 0xcd6af7e4, 0x1426b52b,
|
||||
0x2a45481f, 0xfc38394c, 0x05123e4e, 0xa0215834, 0xe2c2306e, 0x4ee9fe1a, 0x6bbbf30c, 0x19a39072,
|
||||
0x846b0bdf, 0xde4ef7f9, 0x47f1d67c, 0xf507e9e8, 0x14c1f617, 0xaa756ccf, 0xececc02a, 0x183cd616,
|
||||
0x9d4bac81, 0xd959d1ea, 0xefb81e2b, 0xd8ca27fc, 0x5c7e9eb4, 0x64d5d550, 0x32ed3c41, 0x8f62e8a8,
|
||||
0x5e2b65c5, 0x0a7e5e1b, 0x88abb657, 0x781ee74a, 0x840c27fd, 0xec83df4c, 0x163acaf0, 0xb2649960,
|
||||
0x2a706f9a, 0x5226c811, 0x5bcb501c, 0xb87caa99, 0xecb4a37e, 0x8927c424, 0xfea9ac62, 0x17da41d1,
|
||||
0x571c5987, 0x4217ea55, 0x5043b664, 0x18fb3ece, 0xfb2d13b9, 0xb6599d4b, 0xbb8a536d, 0xa719683f,
|
||||
0x81cc2d0f, 0xc888f1d3, 0xccb0a428, 0xd2cdff48, 0x0b3440e6, 0x45700619, 0xcea80987, 0xa5ad1cc3,
|
||||
0xd29deaf7, 0x4a8c95af, 0x9ac63a98, 0xf46d26b0, 0xf9a09352, 0x5f8b3fb7, 0x367c8da1, 0x3244b6a2,
|
||||
0x9634b973, 0x27292ae5, 0xc4f7ae33, 0x9b73a4f7, 0x086a8bb4, 0x616cd17b, 0x74fdb210, 0x5f483d60,
|
||||
0xf7666630, 0x107cd026, 0xfa2a4a07, 0x171b319e, 0x509d50c8, 0xf2d15061, 0x981d5759, 0xf23bc5c6,
|
||||
0xe9befe22, 0x1e784009, 0x7cda3751, 0x1c5b2b69, 0x3ba09115, 0x756f1ef5, 0x2b47353b, 0x553a33d9,
|
||||
0x1f029262, 0x6393d0ee, 0x97e01180, 0x0c53980c, 0x5da79e34, 0x1e0b53c4, 0x06a9f2ba, 0x622181b0,
|
||||
0x4898ac50, 0x874c780e, 0xf8cc5072, 0x4a5a63ca, 0xf6dea6a2, 0xc3134004, 0x4505bae6, 0xc3f4b638,
|
||||
0x0dda8e07, 0x0c4135bf, 0x61e80f25, 0x4b31a76c, 0xd91f0d09, 0x4ba0d577, 0xc95d0086, 0x21a61725,
|
||||
0x16862c1f, 0x9588795d, 0x6ecde7c4, 0x353288cd, 0x94e4647e, 0xeceaba51, 0x7c602ff8, 0xbba48cef,
|
||||
0x6556c6bf, 0xde912190, 0x86602d55, 0xf549554a, 0xd4d52081, 0x9728c5db, 0x7d09e129, 0x068008ab,
|
||||
0x353a6ea4, 0x90b44e4e, 0x5c97a08a, 0x6293b3c7, 0xa3e4114b, 0x7ce44646, 0x8f2b0269, 0x291ca1bb,
|
||||
0x98721528, 0xe30f5532, 0x0bbb2951, 0x7b7c390a, 0xb835b070, 0x2712e51c, 0xc20fb607, 0x5a05ce52,
|
||||
0x5eb33cc2, 0x33c8b3a8, 0x81433abe, 0xb99cc5de, 0x817a5bab, 0xc76ffef0, 0xc68fb77c, 0x96c35c46,
|
||||
0xef1bedc9, 0x42d84a19, 0x54440a6e, 0x3c4b7400, 0xe88bdd94, 0xe1b91c7d, 0xdcdba422, 0xc865625f,
|
||||
0xaaed9adf, 0x782f8dd7, 0xd267ef7b, 0x366340af, 0x5a9b408a, 0xd6edff9b, 0x8356ad73, 0xbaaf18d0,
|
||||
0xdf752a1b, 0xb246d2c0, 0xe2209cf7, 0x7b4aaa2a, 0xaeaec406, 0x5dc1665d, 0xcad3ca61, 0x9603b5c9,
|
||||
0x58012ba9, 0x32945486, 0x78fda0e2, 0xfa326649, 0xe88a7466, 0x6a54aea7, 0x6a56ad08, 0x9e86cbd3,
|
||||
0x8aaa7c2e, 0x66e45a99, 0x285d26f4, 0x40d2740f, 0xc87be0d2, 0x55844605, 0xd87e6a56, 0x04c036a9,
|
||||
0x00321b41, 0xc99f5e34, 0x7a87eadc, 0xc3ac9125, 0xdd0be68d, 0xa70cc221, 0x6d340390, 0xb3d88bd5,
|
||||
0x8cf95295, 0xeb03f3f5, 0x5a4bbedd, 0x56fcc9ad, 0x7a2e3d8c, 0x501bb88f, 0x8cfa9729, 0x4beaee02,
|
||||
0xfb22ede0, 0x51ef3bb1, 0xa4eac5db, 0xc6df35be, 0x9c6da264, 0x128cf797, 0x58f7d2d1, 0x20d87f0e,
|
||||
0x56a06be1, 0x127ded22, 0x6b03d2f3, 0x51be2702, 0xe898c0c1, 0x5532a2f5, 0xc2059c2c, 0x07d11ae7,
|
||||
0xfd1d20ba, 0x6e682d25, 0xff27f183, 0x79339832, 0x47c475e4, 0xd8193faa, 0x1d6a37f3, 0xba4b4cc7,
|
||||
0x25a910c1, 0x5335c90a, 0x084a987e, 0xb281453c, 0xce33dd8e, 0x7fae16a2, 0x5c4ecf25, 0x2d340555,
|
||||
0xa4ee8816, 0x651373c3, 0xefeb3c3f, 0x0188871b, 0x55e2ad83, 0xe904173b, 0x2f948fb9, 0xc50c0314,
|
||||
0x2a24ab54, 0x687a2c47, 0xabd0573e, 0x7908cc94, 0x490a1e1e, 0x555895e8, 0x30722594, 0x291dd817,
|
||||
0xc0b4ebc3, 0xfa0e5597, 0xf80409f8, 0x6152a038, 0x4bec698a, 0xa56cff7d, 0x4770e57d, 0x04e72526,
|
||||
0x823fa205, 0x22cd7082, 0x68a2e82d, 0xfa193898, 0x17c3a4d2, 0x7298366a, 0xcadc958d, 0x0cdb7e1a,
|
||||
0x228eddd1, 0x1459b630, 0xe3552ae0, 0x1c76ec70, 0x96677752, 0x17c28b84, 0xe82a9a0e, 0xbb37fd2b,
|
||||
0xe357cd86, 0xa5f3aafa, 0x0a56ebc1, 0x57adcddc, 0x007f642b, 0x2c64e1fd, 0xa2b073df, 0x60715c24,
|
||||
0x6d7861d0, 0xd0796ccb, 0xa29916dc, 0x7eaad923, 0x3618dee8, 0x1094af8d, 0x70051ff6, 0x597ba4ff,
|
||||
0x70e7fe76, 0xdb83025f, 0x09011eee, 0x44680188, 0x5c72d5b7, 0x1610cb8d, 0x643be6ac, 0xecc8cacb,
|
||||
0x19d9b888, 0xcc19b4ea, 0x40e7e526, 0x27ecd3eb, 0x01279cba, 0x1794e331, 0x6dbf274c, 0x95de5d2f,
|
||||
0x14aad0a9, 0x45c90401, 0x0611bb41, 0xd019a189, 0x68dd707c, 0xc563c798, 0xa4c79d2c, 0x5db10eb3,
|
||||
0x2689fe92, 0xbb137c10, 0xa4c0c9d8, 0xa9610249, 0x056f1268, 0xcb57ae36, 0x62a7270d, 0x349c7dec,
|
||||
0xc237db79, 0xebcabeba, 0xc421413f, 0x0bf08741, 0xfcfc6f35, 0x28d71e38, 0xe41e24b1, 0xa3bb1ed2,
|
||||
0x4c757e5c, 0x8f1e95f8, 0xac00d0cc, 0xeca670c7, 0xdfd87ac5, 0x43b4f5c7, 0x997a0f6b, 0x785d6b90,
|
||||
0xd0197018, 0xdf81defd, 0xd2e73e04, 0x603dabe6, 0xf0148c2f, 0x64df0a91, 0x9aae51c9, 0x93867ced,
|
||||
0xcc58e131, 0x60daa1d2, 0xe3d43433, 0xd51c9947, 0xcc742731, 0xd0e54c33, 0x1fcddc7b, 0xc06505de,
|
||||
0x0169991f, 0xb4f43bb9, 0x91a901f6, 0x8017b9d3, 0x70914002, 0x2d03c3c7, 0x1861064e, 0x51821521,
|
||||
0x03d029ef, 0x7768c872, 0x2a618e19, 0xbe00911a, 0xf927772d, 0x16f0ef1f, 0x3a7d721b, 0x73bf2184,
|
||||
0x81b20c99, 0x50c2d166, 0x2027da1f, 0xe6a7f756, 0x516435ab, 0x077bb2a2, 0x33076d9e, 0x2fcc1053,
|
||||
0x3da5507b, 0x58e7861c, 0xcb7f34e3, 0xc1dd6cee, 0x5d7eeb2f, 0x8bf7af16, 0xcaaa0b04, 0xbffe68a9,
|
||||
0x7aa6d3de, 0x86e8d238, 0x6d9c9e5c, 0x0afe48ea, 0x54a8b2c7, 0x7d081d4f, 0x24635e7d, 0x83a90ad2,
|
||||
0x5faa3307, 0x86d02631, 0x3ba7090e, 0x890ea613, 0x6379381d, 0x43082edc, 0x45fadca0, 0x507a5be8,
|
||||
0x4002d3e0, 0xcd47db8f, 0x016f02f7, 0x2cc37a2e, 0x6b2440e8, 0xf0a17a06, 0xd1d9ccba, 0xb4bfd01e,
|
||||
0xfb2e8da1, 0x2b9eafb9, 0x78351034, 0xd5741ede, 0x0728eaf6, 0x7943413b, 0x502b32a2, 0xcd7517b8,
|
||||
0xebc7a095, 0x0c604a3e, 0x3404c921, 0xa5130fc4, 0x49320039, 0x6afa45fb, 0xdfb6d1d1, 0x9f976a89,
|
||||
0x6edc8665, 0x25dbf831, 0xa4f7cfec, 0x317a09b5, 0xdaf4c587, 0x28517cd4, 0x6b0c4ef3, 0xcb4307a8,
|
||||
0xff2670b4, 0x53faca1c, 0x4e2b952a, 0xf8c81cb5, 0xad345402, 0x0cfa7a14, 0x8f530b2f, 0x08720c93,
|
||||
0xdac62944, 0xa2fa1466, 0xecd483c0, 0x1d969b7d, 0x301f431b, 0xa245449b, 0xfbe74141, 0x61ccd26d,
|
||||
0xeed80681, 0xba661d5c, 0x2aa8ba84, 0x98df402f, 0xb0bfa754, 0xf786f0eb, 0x502a3f00, 0x5714ef6b,
|
||||
0x0cc031fe, 0xbd5cb04c, 0x5cf040e1, 0x3d733d6f, 0x9b721cfd, 0xa93dad7d, 0x343a8188, 0x5beea144,
|
||||
0x77f00ee3, 0xb39e61bd, 0xc53b2a3f, 0xa8b4c424, 0xf5bad225, 0xa85879f2, 0xcfb028f4, 0x09643370,
|
||||
0x1c7204e6, 0xcebc96e5, 0x12227cec, 0xd7a429da, 0xb5645c6c, 0xf99d4c2b, 0x417bdfb6, 0x0b289280,
|
||||
0xd9cb2cb6, 0x36d1a187, 0x69839b3c, 0x59de4109, 0xd03843a6, 0x46eb3539, 0x11a526ce, 0x56c78934,
|
||||
0x763909cc, 0x656ca8af, 0x5b0bdb9d, 0xfac27a43, 0xe1f96c06, 0x6cebe65d, 0xf94709d9, 0x63efc9f1,
|
||||
0xc95ba413, 0xe704de3c, 0x261e2b43, 0x9c3ef6a0, 0xad4bbe93, 0x79f1cfd8, 0xe314fc58, 0x3470d507,
|
||||
0xdd0e43e3, 0x394aca27, 0x6bbbf7f1, 0xb213d5e9, 0x1ba99155, 0x4bf71a64, 0x7aa72d51, 0x36a82476,
|
||||
0x81d0a1c9, 0xc175a36a, 0xda05fc03, 0xfe16edc6, 0xbbbf6f57, 0xb00978f6, 0x0e17eb6c, 0xe905fe98,
|
||||
0x49241c46, 0x6cc1fcda, 0x8a562cdf, 0xae6c7a70, 0x083e66ed, 0x433be4c6, 0x2092bc04, 0xb4326383,
|
||||
0x92006a4a, 0x401602df, 0xa54a2952, 0xa4ae512c, 0x46153a61, 0xbaf9bdca, 0x56a95e63, 0x5eadc50f,
|
||||
0xe403dc0b, 0x3708ba31, 0x21db3941, 0xeb74c1c8, 0x8d2628cf, 0xb7925cf4, 0xdb1ad60b, 0x67dfb1ea,
|
||||
0x4b8893ec, 0x2d101360, 0x3036d21b, 0x9ed1eb42, 0xa1a60268, 0xe1d6502a, 0x459b4907, 0x1275e279,
|
||||
0x20efb17c, 0x7f4ae419, 0xf6e4a74b, 0x35698d03, 0x5414844a, 0x2397a6b9, 0x7e41f393, 0xe78fd97d
|
||||
|
||||
e =
|
||||
32256
|
||||
|
||||
k =
|
||||
6144
|
||||
|
||||
ncb =
|
||||
18528
|
||||
|
||||
rv_index =
|
||||
0
|
||||
|
||||
code_block_mode =
|
||||
1
|
||||
|
||||
op_flags =
|
||||
RTE_BBDEV_TURBO_RATE_MATCH, RTE_BBDEV_TURBO_CRC_24B_ATTACH
|
||||
|
||||
expected_status =
|
||||
OK
|
|
@ -0,0 +1,300 @@
|
|||
# SPDX-License-Identifier: BSD-3-Clause
|
||||
# Copyright(c) 2017 Intel Corporation
|
||||
|
||||
op_type =
|
||||
RTE_BBDEV_OP_TURBO_ENC
|
||||
|
||||
input0 =
|
||||
0x11d2bcac, 0x7715ae4d, 0xc9f4dbc6, 0x2fda3c1a, 0x09349b16, 0x2cd3c189,
|
||||
0xe5650429, 0xc73c42c1, 0xe7336bb7, 0xbb7de593, 0x83f986aa, 0xc0ade12e,
|
||||
0x6730b095, 0x78f7c059, 0xaa907199, 0x75c323d1, 0x7061f9ba, 0x97e067bf,
|
||||
0xc155cd55, 0x6a4cb08d, 0x4260e2fa, 0xff35e496, 0x37f251d3, 0x02fd9f9e,
|
||||
0x6f53345c, 0x790cda6d, 0x3b8549e4, 0x56d0c6ea, 0x70a38006, 0xfff18223,
|
||||
0x6f2035b5, 0x6cf508d3, 0x98a0a308, 0x432353fc, 0x0eb818eb, 0xdd9a128b,
|
||||
0xf92431b2, 0xad788286, 0xda07d5de, 0x44b4b3a8, 0xbe62fd67, 0x61a4eb54,
|
||||
0x90d7ac9f, 0xc4d9a930, 0xfddc3c24, 0xf5e3b1c8, 0x38143538, 0xcb1d3062,
|
||||
0xcae36df3, 0x50a73437, 0x542dcab7, 0x875973a0, 0x34690309, 0x49cb1ddb,
|
||||
0xf8a62b92, 0x82af6103, 0xc9f8c928, 0x3835b822, 0x16b044a6, 0xdae89096,
|
||||
0xa5be47d4, 0xaf61189e, 0x5cd70faf, 0x037331cf, 0xef7fa5f6, 0xb2f2b41a,
|
||||
0xa6f222c6, 0xdb60fe4c, 0x2a857a9a, 0x0b821f9d, 0x348afd17, 0x7eecbaeb,
|
||||
0x92bb9509, 0x8a3cec24, 0xd02549a2, 0x155ffa81, 0x2b7feac6, 0x3ee461e7,
|
||||
0xc981f936, 0x89b544c7, 0x9a431e36, 0x62511734, 0x769f9647, 0x211a747e,
|
||||
0x567abef4, 0xad87e2b4, 0xa3e0c3bf, 0x6d325dd5, 0xf561cc46, 0x39925735,
|
||||
0x3d8abbfd, 0xc3724c88, 0x8bdf03c9, 0x1b02a12a, 0x4f233a0c, 0x9ca9444a,
|
||||
0xc5d1f7e6, 0x4d995f37, 0xd9aefb32, 0xd0465248, 0x0f3a3b21, 0x62ea8c0c,
|
||||
0x91f8d54e, 0x5cf75514, 0x14618a01, 0x8fe9b87e, 0xf2b424f9, 0x49724ce2,
|
||||
0xa1464587, 0x5e00dc83, 0x59475455, 0x444119b1, 0x4fb9f036, 0x65fcbc1a,
|
||||
0x1c63a990, 0x767a6114, 0xb0ede06a, 0xcfb91ae3, 0x7874af5f, 0xf78772a3,
|
||||
0xa2932c81, 0x77f2759d, 0x930dc8f1, 0x95ce14a5, 0x134363ee, 0x61ee143f,
|
||||
0xf0034b35, 0xfdc75fce, 0x3be2dcf3, 0xff3a07eb, 0xdc43f0eb, 0x23ba73bb,
|
||||
0x45f7649e, 0xcacc297c, 0xa3dd98db, 0x058d46a9, 0x6bcfc154, 0x7be8e1e6,
|
||||
0x618a4754, 0x8d193c46, 0xba39e1ce, 0xc3b85cfc, 0xd80d853b, 0x38d6440d,
|
||||
0x9c1a6185, 0x90c9dfcb, 0x01c6e841, 0xeedfe6ac, 0x7b61a3ae, 0xad3924dd,
|
||||
0x514bc1a8, 0x6ed60d7e, 0x1b74b79b, 0xea295947, 0x5f9a5d33, 0xcd24311f,
|
||||
0x0bd3d10c, 0xd214ecfe, 0xcb37035d, 0x8ce95168, 0x7020cb52, 0xe432107d,
|
||||
0x042d63ac, 0x6201c8dd, 0x4bea65a2, 0x1a3cf453, 0x5b8e868d, 0x3d653bb0,
|
||||
0x24c1967e, 0x37f183a9, 0x3700e703, 0xb168a02b, 0x2592cd82, 0x5c0cdb66,
|
||||
0x70b64ebd, 0xf8dcb9a7, 0x634a8335, 0x06642398, 0xfe2f4497, 0x2e775256,
|
||||
0x30f85cbe, 0xf4d2fdaf, 0x46ca6c9d, 0x022097d6, 0xcedeb03e, 0xaf9437bc,
|
||||
0x341f8045, 0x93f6ff86, 0x2e019ec9, 0xc80116e8, 0xf984ff34, 0xe4f1be20,
|
||||
0xfe455510, 0xc561cdba, 0x2d6f560f, 0xb239fd9d, 0xd254e343, 0x8090448a,
|
||||
0xa724c4f1, 0xa00fe4f0, 0xf0379ac6, 0x0c61b383, 0x44b2228e, 0x9d223bc0,
|
||||
0xe7cfbc38, 0x62ae6a40, 0x6f8d445c, 0xc6045eaf, 0x8507df18, 0xe64c057e,
|
||||
0x4e589113, 0x3ba3bf55, 0x6a702b19, 0xea23af7d, 0xa1b98022, 0x7096c45c,
|
||||
0xace3b8c1, 0x47ed7bb4, 0x198a2b8f, 0x586b57db, 0xbf9d24d4, 0x96054c66,
|
||||
0x13f26306, 0x2a43524b, 0x1ecd419b, 0xb3a24852, 0x4ed7765f, 0x4c99fbe3,
|
||||
0x6c3b9ebb, 0x1ef7bfeb, 0x0daf1256, 0xe9c90c7f, 0xbe067ed7, 0x469102ba,
|
||||
0xedccc098, 0x96691fb1, 0x2a9b850f, 0x58aba5f2, 0x0bcad31d, 0x90b1f25b,
|
||||
0x78a55fe4, 0xdd41e626, 0xdcba3e83, 0x2209d8a9, 0x6ee2f76f, 0x55643570,
|
||||
0xd181a0ef, 0xd1b2790a, 0xc7793587, 0x3aebe10c, 0xbbde5fe0, 0x5c308948,
|
||||
0x01439ece, 0x5319fbef, 0x10b0de1b, 0x6595f4f3, 0xa3e6a7c9, 0xf97b2e10,
|
||||
0x4513cf3d, 0x8ded3394, 0x0949a772, 0x934f2269, 0x2b636628, 0x92101c68,
|
||||
0x804dfd94, 0x178315be, 0x384adf65, 0xe64d11d3, 0xc44881c0, 0x7a8e7886,
|
||||
0xb721c0c8, 0x6d0d0fc0, 0x97f0cc5a, 0x3c67c31f, 0x4906dd09, 0x6202c01a,
|
||||
0xad8d6c5b, 0x53158056, 0x13704ed5, 0xa1dfeaaa, 0xb35e4b40, 0xd9c3e6fa,
|
||||
0x0c9650ce, 0xbdfe5c22, 0x874bedb3, 0xbd07d0bd, 0x4eef4a4f, 0x2970d932,
|
||||
0xfdd003ac, 0x609fbea4, 0xad817794, 0xb4ee9f96, 0x559b3faa, 0x1edcf35f,
|
||||
0x8342e9fb, 0x69a73981, 0x5fc86a07, 0x929b45aa, 0x5c32e847, 0x43421484,
|
||||
0x9962abf5, 0x8cf07ae4, 0xba7b556d, 0x2da42ac1, 0xac0eef6f, 0xdc118ef8,
|
||||
0x6061597a, 0xc5f7a007, 0xb9b92c51, 0x87049008, 0x72c9da8a, 0x54dc48c6,
|
||||
0xb4c4b392, 0x50204c8d, 0x00b2ef59, 0xcdac687c, 0xb2158dc3, 0x4f1c65e3,
|
||||
0x8af22286, 0x4444ee49, 0x2d8921ce, 0x3c0a8d11, 0xb97325da, 0x056aec7b,
|
||||
0xa96ca31b, 0x71a5febb, 0xa3166c47, 0x5e920dcd, 0xa58b2e61, 0x4d3b392f,
|
||||
0x1b9b177b, 0x058b0dfa, 0x4bdc16ab, 0x8a4eeac3, 0xfbf2d2fc, 0x636f04a6,
|
||||
0x75a14bda, 0xa28f1947, 0xf2f248e4, 0x934e7dd6, 0xeb4401cb, 0x37f693a2,
|
||||
0xd1cb7e16, 0xbd5d9abb, 0x6f613f63, 0x9bfb5fd5, 0x6b70c5ea, 0xbdcc6c7a,
|
||||
0x41efaee1, 0xf45d3965, 0x0499b12b, 0x7820873a, 0xed53961f, 0x303c4f04,
|
||||
0x2e4bd363, 0x1bcdd589, 0xf7317de0, 0x7ba3d53a, 0x61fb36a8, 0x23e55b43,
|
||||
0x0ef838e9, 0x7b9d91a3, 0x3cd7d835, 0x5f28e517, 0xa100fad7, 0xff39800d,
|
||||
0xd7894433, 0xb61a62cd, 0xde618b70, 0x8560d770, 0xed02
|
||||
|
||||
output0 =
|
||||
0x11d2bcac, 0x7715ae4d, 0xc9f4dbc6, 0x2fda3c1a, 0x09349b16, 0x2cd3c189,
|
||||
0xe5650429, 0xc73c42c1, 0xe7336bb7, 0xbb7de593, 0x83f986aa, 0xc0ade12e,
|
||||
0x6730b095, 0x78f7c059, 0xaa907199, 0x75c323d1, 0x7061f9ba, 0x97e067bf,
|
||||
0xc155cd55, 0x6a4cb08d, 0x4260e2fa, 0xff35e496, 0x37f251d3, 0x02fd9f9e,
|
||||
0x6f53345c, 0x790cda6d, 0x3b8549e4, 0x56d0c6ea, 0x70a38006, 0xfff18223,
|
||||
0x6f2035b5, 0x6cf508d3, 0x98a0a308, 0x432353fc, 0x0eb818eb, 0xdd9a128b,
|
||||
0xf92431b2, 0xad788286, 0xda07d5de, 0x44b4b3a8, 0xbe62fd67, 0x61a4eb54,
|
||||
0x90d7ac9f, 0xc4d9a930, 0xfddc3c24, 0xf5e3b1c8, 0x38143538, 0xcb1d3062,
|
||||
0xcae36df3, 0x50a73437, 0x542dcab7, 0x875973a0, 0x34690309, 0x49cb1ddb,
|
||||
0xf8a62b92, 0x82af6103, 0xc9f8c928, 0x3835b822, 0x16b044a6, 0xdae89096,
|
||||
0xa5be47d4, 0xaf61189e, 0x5cd70faf, 0x037331cf, 0xef7fa5f6, 0xb2f2b41a,
|
||||
0xa6f222c6, 0xdb60fe4c, 0x2a857a9a, 0x0b821f9d, 0x348afd17, 0x7eecbaeb,
|
||||
0x92bb9509, 0x8a3cec24, 0xd02549a2, 0x155ffa81, 0x2b7feac6, 0x3ee461e7,
|
||||
0xc981f936, 0x89b544c7, 0x9a431e36, 0x62511734, 0x769f9647, 0x211a747e,
|
||||
0x567abef4, 0xad87e2b4, 0xa3e0c3bf, 0x6d325dd5, 0xf561cc46, 0x39925735,
|
||||
0x3d8abbfd, 0xc3724c88, 0x8bdf03c9, 0x1b02a12a, 0x4f233a0c, 0x9ca9444a,
|
||||
0xc5d1f7e6, 0x4d995f37, 0xd9aefb32, 0xd0465248, 0x0f3a3b21, 0x62ea8c0c,
|
||||
0x91f8d54e, 0x5cf75514, 0x14618a01, 0x8fe9b87e, 0xf2b424f9, 0x49724ce2,
|
||||
0xa1464587, 0x5e00dc83, 0x59475455, 0x444119b1, 0x4fb9f036, 0x65fcbc1a,
|
||||
0x1c63a990, 0x767a6114, 0xb0ede06a, 0xcfb91ae3, 0x7874af5f, 0xf78772a3,
|
||||
0xa2932c81, 0x77f2759d, 0x930dc8f1, 0x95ce14a5, 0x134363ee, 0x61ee143f,
|
||||
0xf0034b35, 0xfdc75fce, 0x3be2dcf3, 0xff3a07eb, 0xdc43f0eb, 0x23ba73bb,
|
||||
0x45f7649e, 0xcacc297c, 0xa3dd98db, 0x058d46a9, 0x6bcfc154, 0x7be8e1e6,
|
||||
0x618a4754, 0x8d193c46, 0xba39e1ce, 0xc3b85cfc, 0xd80d853b, 0x38d6440d,
|
||||
0x9c1a6185, 0x90c9dfcb, 0x01c6e841, 0xeedfe6ac, 0x7b61a3ae, 0xad3924dd,
|
||||
0x514bc1a8, 0x6ed60d7e, 0x1b74b79b, 0xea295947, 0x5f9a5d33, 0xcd24311f,
|
||||
0x0bd3d10c, 0xd214ecfe, 0xcb37035d, 0x8ce95168, 0x7020cb52, 0xe432107d,
|
||||
0x042d63ac, 0x6201c8dd, 0x4bea65a2, 0x1a3cf453, 0x5b8e868d, 0x3d653bb0,
|
||||
0x24c1967e, 0x37f183a9, 0x3700e703, 0xb168a02b, 0x2592cd82, 0x5c0cdb66,
|
||||
0x70b64ebd, 0xf8dcb9a7, 0x634a8335, 0x06642398, 0xfe2f4497, 0x2e775256,
|
||||
0x30f85cbe, 0xf4d2fdaf, 0x46ca6c9d, 0x022097d6, 0xcedeb03e, 0xb4ca20bc,
|
||||
0x4fde636c, 0x10ea20a0, 0xe6da8721, 0xbfde5b08, 0x9c3739da, 0xb6dc015a,
|
||||
0x427db088, 0xdfdb8e6f, 0x756be6c1, 0x21f5297b, 0x06135665, 0xc1602b7d,
|
||||
0x049536c5, 0xbbb3b801, 0x0cdb0c19, 0x7b2ad622, 0xfee8218f, 0xc5c7f123,
|
||||
0x8abd3301, 0xa15b534d, 0x29dd2053, 0xd409abf9, 0x3ef19d6b, 0x70a3cbc2,
|
||||
0x7a51423a, 0x4505b2ad, 0xdc74c75e, 0x068751a9, 0xb0b56437, 0x14a10371,
|
||||
0x76af806f, 0xa8a47e19, 0x7c97a26e, 0x7998a3d6, 0xdc1ad1e2, 0xb532a301,
|
||||
0xca8a3e7d, 0xd0aef374, 0x204990c0, 0xc7011aec, 0xa69151ea, 0x53390026,
|
||||
0x7bf0d762, 0x735c2202, 0x64159e54, 0x5a3b1a56, 0x9ef1def2, 0x0ab8a961,
|
||||
0x587b0886, 0xb8cc5975, 0x2a5a0f23, 0x069d05be, 0x9cc3c207, 0x40ef1a02,
|
||||
0x4fae3f5b, 0x1f127aae, 0xd4e6d411, 0x17ac43ef, 0xe4bf891b, 0xfbb21765,
|
||||
0x2c560c7e, 0x8561988c, 0x73a01032, 0x0cfef73a, 0x694c4991, 0x885d7a3f,
|
||||
0x4218d1ff, 0xc2efaffb, 0xaf9d9715, 0xf76de6b2, 0xcce8e8ff, 0x370e3800,
|
||||
0x493675eb, 0xd8fbcbda, 0xa5b382c2, 0x86c8f1ea, 0x3d724ea4, 0xb067034c,
|
||||
0x6491d87e, 0x1a745ce4, 0xbb27180b, 0x1a2f0acc, 0xac4b7b3b, 0xe324578b,
|
||||
0xc87928df, 0x9c1de566, 0x0ce2a17d, 0xaf2e13ce, 0x146a8659, 0x8727f6ae,
|
||||
0xe2df7d03, 0x1a8e4cb4, 0xfa590976, 0x13a7c236, 0xc07489d0, 0xbe905e17,
|
||||
0xafeb3d4b, 0x201e73f2, 0x5bdca12e, 0x3e15a852, 0xbcfc3271, 0x5d398410,
|
||||
0x6bfacc15, 0x011fc61f, 0x43e43fd7, 0x0640717c, 0x96bfb3ff, 0x158eac19,
|
||||
0x3b852e91, 0x74f9ceda, 0xcac71326, 0xfc0e312a, 0x20e8137b, 0xa1162611,
|
||||
0x239ac7fe, 0xb9d00f8a, 0xea0b5241, 0x019f0d25, 0xc5153264, 0xb48a5547,
|
||||
0xe54e339f, 0x17a6cca5, 0x5065af0d, 0x5ce648b9, 0xb457b342, 0xc1cb3f0e,
|
||||
0x28d03c8b, 0x5144ed7a, 0xdb80779f, 0x53ce1b87, 0xbc071147, 0xbfe46c11,
|
||||
0x7296785e, 0x83e4a63e, 0xc58982e9, 0x9538c5b9, 0xf14abaaa, 0xd915124c,
|
||||
0x73540cd6, 0xe333696b, 0x58f9e00a, 0xd4dad10f, 0xc0de1420, 0x355e2bdc,
|
||||
0xb2faa8fd, 0xbe6a12f1, 0x45d415cc, 0x47f5aed9, 0x4754e770, 0x2bb07385,
|
||||
0x41374352, 0xf80beb47, 0xef02f35c, 0xc9c1b86e, 0x94b5785b, 0xba33123f,
|
||||
0x7e39f0c9, 0x028a9286, 0x7d52c9f1, 0x06f04da6, 0xbc6a68d1, 0xfc70bace,
|
||||
0x95b6a129, 0xfff224bb, 0x701ef3fb, 0x3309286f, 0x544ae8c1, 0xdca62c4a,
|
||||
0xf8862ee2, 0xf9e3cd29, 0x2c07cce2, 0x8d93652a, 0xf47e4611, 0x4635f586,
|
||||
0x1c03e0f4, 0x819724c7, 0x96b2a3f0, 0xeeb1ad95, 0xff08e517, 0xbd4ba6ed,
|
||||
0x49ddb12d, 0x365734b5, 0x5edf7459, 0x2ee117a9, 0x067b9462, 0x549f6d5f,
|
||||
0xe1dd8309, 0x12bb8e0a, 0x4382fe0f, 0x57fce11b, 0x1bc1c809, 0xd2741876,
|
||||
0xcffd36b9, 0x45a64a67, 0xb77955d5, 0xb5825f24, 0x86eef2a8, 0xb66cac3b,
|
||||
0xfec661f8, 0x531d5963, 0xa0a2f109, 0xe1795b68, 0x6bfd44e0, 0x0849af41,
|
||||
0xf56d7d73, 0x3eab025f, 0xd109b015, 0xec24d23b, 0x8b3f603c, 0x648f421f,
|
||||
0xc833f32a, 0x53cbda14, 0xb9b3fee4, 0xcf9ac8ab, 0x300f0548, 0xfe0bc595,
|
||||
0x4f437a1a, 0xdacfae1f, 0x284e4a6d, 0x57815e28, 0x15d32b39, 0x68f85b97,
|
||||
0x18b21602, 0x941259ef, 0x68598d90, 0x6dfd81db, 0xa8fc9a55, 0x60fef2b3,
|
||||
0xcf07961b, 0x11b96588, 0xd9928a88, 0x2bbc72fd, 0x025f81b4, 0x44794d6d,
|
||||
0x6a7420aa, 0xa73d4d89, 0x25b523ff, 0x521dbea3, 0xdacde374, 0xbf41776f,
|
||||
0x9c1e3cb6, 0xb7b3499b, 0x8e154ed3, 0x1ac8f8c8, 0x4f2cf203, 0xa293c979,
|
||||
0x2792a2e1, 0x329ca1dd, 0x01e1aa4a, 0x01a78d3e, 0x100c74ed, 0xb0db13c7,
|
||||
0x99d53541, 0xd435a3b9, 0x898bd713, 0x069287bd, 0xe3175d24, 0xb09dc7fb,
|
||||
0x7340d7d3, 0x81369cc3, 0x8f16a7a8, 0x43963d57, 0x58e0f6a3, 0x39803b6c,
|
||||
0xa419a5ac, 0xf45fd6fa, 0xec389d5b, 0x636ce34f, 0x71405df6, 0xfc504724,
|
||||
0xa3a3b192, 0x19df1379, 0xaf028f42, 0x3e1838e8, 0x6b7a64a9, 0xaa90ffee,
|
||||
0x238ee398, 0x67eae4bd, 0x0a549a15, 0x125873d3, 0x00ece005, 0x9f7b2b8f,
|
||||
0x7571f73c, 0x98940ab4, 0x192ed328, 0x8fae66da, 0x9063b323, 0x2542f666,
|
||||
0x07ac7c8e, 0xce92857a, 0x3ded4b69, 0x50204cb4, 0x2a81cd17, 0xfd6ac536,
|
||||
0xafb46424, 0xe802147b, 0x30a37858, 0x90697235, 0x1606e767, 0x26c1048e,
|
||||
0x3a20df7b, 0xe127de97, 0x481abd6c, 0xc3a61d15, 0xbb2e929c, 0xd2ec0d65,
|
||||
0xc0e53693, 0x500c2e9a, 0x316d0f4b, 0x18354452, 0xb2dd7728, 0x5a874b3e,
|
||||
0x6dcf6f9c, 0x9d7c15ce, 0x1b25566d, 0xe13d6e7a, 0x9d9d06ae, 0x4d0e7d23,
|
||||
0x33100e24, 0x7c20e0f8, 0x2cfc95bf, 0xb8e702a0, 0x5e60215b, 0xa516093e,
|
||||
0x4cf3bed7, 0x4a0d6f56, 0xaf4901cc, 0xaeb7137e, 0x07d3c34d, 0x38641bc6,
|
||||
0xf7366ca3, 0x6e01bd0d, 0x86818282, 0xf0f8712a, 0x431f57ad, 0x46b832c3,
|
||||
0xec1893b8, 0xfa43c94f, 0x8b4c382a, 0x84cc0cec, 0x3f1016f3, 0xdbc7b88d,
|
||||
0xa3c34e52, 0x50691492, 0x8b10e709, 0x5c5db670, 0xcda5888b, 0xa1ef2917,
|
||||
0x1d4689ba, 0xc6470dcc, 0x7010373d, 0x4f27b426, 0x06b0de9d, 0xba83e005,
|
||||
0x97cd5aad, 0xc1d0f41a, 0x01bae35a, 0xb30c805e, 0x8d7982eb, 0xe1a7b51d,
|
||||
0x88a9f4d2, 0x7a6742a8, 0x0d9cb569, 0x06e9bc87, 0xf8c93b93, 0x89f3e80a,
|
||||
0x96b971de, 0xcd548ef1, 0x5fbeb12a, 0x39c798e3, 0x90183352, 0x9b2476a7,
|
||||
0x9437b0ae, 0x1f8045af, 0xf6ff8634, 0x019ec993, 0x0116e82e, 0x84ff34c8,
|
||||
0xf1be20f9, 0x455510e4, 0x61cdbafe, 0x6f560fc5, 0x39fd9d2d, 0x54e343b2,
|
||||
0x90448ad2, 0x24c4f180, 0x0fe4f0a7, 0x379ac6a0, 0x61b383f0, 0xb2228e0c,
|
||||
0x223bc044, 0xcfbc389d, 0xae6a40e7, 0x8d445c62, 0x045eaf6f, 0x07df18c6,
|
||||
0x4c057e85, 0x589113e6, 0xa3bf554e, 0x702b193b, 0x23af7d6a, 0xb98022ea,
|
||||
0x96c45ca1, 0xe3b8c170, 0xed7bb4ac, 0x8a2b8f47, 0x6b57db19, 0x9d24d458,
|
||||
0x054c66bf, 0xf2630696, 0x43524b13, 0xcd419b2a, 0xa248521e, 0xd7765fb3,
|
||||
0x99fbe34e, 0x3b9ebb4c, 0xf7bfeb6c, 0xaf12561e, 0xc90c7f0d, 0x067ed7e9,
|
||||
0x9102babe, 0xccc09846, 0x691fb1ed, 0x9b850f96, 0xaba5f22a, 0xcad31d58,
|
||||
0xb1f25b0b, 0xa55fe490, 0x41e62678, 0xba3e83dd, 0x09d8a9dc, 0xe2f76f22,
|
||||
0x6435706e, 0x81a0ef55, 0xb2790ad1, 0x793587d1, 0xebe10cc7, 0xde5fe03a,
|
||||
0x308948bb, 0x439ece5c, 0x19fbef01, 0xb0de1b53, 0x95f4f310, 0xe6a7c965,
|
||||
0x7b2e10a3, 0x13cf3df9, 0xed339445, 0x49a7728d, 0x4f226909, 0x63662893,
|
||||
0x101c682b, 0x4dfd9492, 0x8315be80, 0x4adf6517, 0x4d11d338, 0x4881c0e6,
|
||||
0x8e7886c4, 0x21c0c87a, 0x0d0fc0b7, 0xf0cc5a6d, 0x67c31f97, 0x06dd093c,
|
||||
0x02c01a49, 0x8d6c5b62, 0x158056ad, 0x704ed553, 0xdfeaaa13, 0x5e4b40a1,
|
||||
0xc3e6fab3, 0x9650ced9, 0xfe5c220c, 0x4bedb3bd, 0x07d0bd87, 0xef4a4fbd,
|
||||
0x70d9324e, 0xd003ac29, 0x9fbea4fd, 0x81779460, 0xee9f96ad, 0x9b3faab4,
|
||||
0xdcf35f55, 0x42e9fb1e, 0xa7398183, 0xc86a0769, 0x9b45aa5f, 0x32e84792,
|
||||
0x4214845c, 0x62abf543, 0xf07ae499, 0x7b556d8c, 0xa42ac1ba, 0x0eef6f2d,
|
||||
0x118ef8ac, 0x61597adc, 0xf7a00760, 0xb92c51c5, 0x049008b9, 0xc9da8a87,
|
||||
0xdc48c672, 0xc4b39254, 0x204c8db4, 0xb2ef5950, 0xac687c00, 0x158dc3cd,
|
||||
0x1c65e3b2, 0xf222864f, 0x44ee498a, 0x8921ce44, 0x0a8d112d, 0x7325da3c,
|
||||
0x6aec7bb9, 0x6ca31b05, 0xa5febba9, 0x166c4771, 0x920dcda3, 0x8b2e615e,
|
||||
0x3b392fa5, 0x9b177b4d, 0x8b0dfa1b, 0xdc16ab05, 0x4eeac34b, 0xf2d2fc8a,
|
||||
0x6f04a6fb, 0xa14bda63, 0x8f194775, 0xf248e4a2, 0x4e7dd6f2, 0x4401cb93,
|
||||
0xf693a2eb, 0xcb7e1637, 0x5d9abbd1, 0x613f63bd, 0xfb5fd56f, 0x70c5ea9b,
|
||||
0xcc6c7a6b, 0xefaee1bd, 0x5d396541, 0x99b12bf4, 0x20873a04, 0x53961f78,
|
||||
0x3c4f04ed, 0x4bd36330, 0xcdd5892e, 0x317de01b, 0xa3d53af7, 0xfb36a87b,
|
||||
0xe55b4361, 0xf838e923, 0x9d91a30e, 0xd7d8357b, 0x28e5173c, 0x00fad75f,
|
||||
0x39800da1, 0x894433ff, 0x1a62cdd7, 0x618b70b6, 0x60d770de, 0xbaed0285,
|
||||
0x7bd24f54, 0x96a33975, 0x6884bd60, 0xeb75cf39, 0x19dd058a, 0xd4b8f064,
|
||||
0x045178ca, 0xd9e3c1de, 0x91b494a6, 0x3316ac81, 0xb926c7d8, 0xc190f058,
|
||||
0xce70a42c, 0x54f3b3c4, 0x79b20d90, 0x75177ad7, 0x9f010f51, 0x889a4fd5,
|
||||
0x8fbbc8f0, 0xf1340040, 0xc22acb69, 0xe1473a0a, 0x52ddd7e3, 0x4cd54494,
|
||||
0x4eb7a9ed, 0xd35e6a65, 0x3236b14c, 0x89786899, 0x3dc59704, 0x51d674be,
|
||||
0xbcf13659, 0x6ef6266e, 0xf50ef497, 0x141354bc, 0xc8a42e76, 0x59b14233,
|
||||
0x8b6cad7d, 0x061d8efe, 0xaca42513, 0x161cee21, 0xfeac5471, 0x4c499d31,
|
||||
0xac2892cb, 0x9bacf4c5, 0xfff36588, 0x898f7a06, 0xad87be87, 0xebe7cb95,
|
||||
0xa52b5fdf, 0x9f1f3945, 0xad435317, 0x1b316bcc, 0x8e6c0fd3, 0x767981d6,
|
||||
0x1f86412b, 0x32b457f5, 0x30ab14db, 0x7120e8ae, 0x3972f57e, 0x2268af9d,
|
||||
0xf45e5738, 0xc48bd523, 0x76726cae, 0x10bcdaa2, 0x49dcbe96, 0x8e28c545,
|
||||
0x25fd1cc8, 0xc272f106, 0x1a34497e, 0x5f850d98, 0x92e324e4, 0x7e59f811,
|
||||
0x0bba7ff0, 0x86b3b23f, 0x29558cee, 0xcbd55b0d, 0x15c10dc2, 0xd6617dd5,
|
||||
0x41168898, 0x920132eb, 0xd10f51c6, 0xdc6eba51, 0xa07f89cc, 0xfcea8627,
|
||||
0x44a52afa, 0x03d4230b, 0xdbb998d8, 0xf30d2a06, 0x08d35aeb, 0x9597f9bc,
|
||||
0x720d2689, 0xf64314dd, 0xcadd04c5, 0x9cab9213, 0x22205cca, 0xd6cc196e,
|
||||
0xa820e3c8, 0x7c262f92, 0xaf481f6b, 0xcecc0fe6, 0x2ec0b33a, 0x20aebc0a,
|
||||
0xb5699b4b, 0xe0a559ba, 0xb9cd5224, 0x9f7ceb48, 0x35807e3c, 0x30be0794,
|
||||
0x05463d41, 0x0e10046f, 0x776e71d6, 0xc6bac22d, 0xfee7f911, 0x3bc76715,
|
||||
0x5024f666, 0x88a07482, 0x7dc55ed7, 0x3ee1d3b6, 0xec419af3, 0x4cd0e39f,
|
||||
0x988f3802, 0x23baa080, 0xef9ce568, 0xf46ff60f, 0x2efcb093, 0x23b5b12a,
|
||||
0xd5fb68c7, 0x58d45968, 0x6dce76cd, 0xf82c5a91, 0xfe6a2bf7, 0x0303b383,
|
||||
0xf1b1196a, 0xa18d6d69, 0xb0025e33, 0x3f51e6c7, 0x0263bac1, 0x87743b29,
|
||||
0x8f62b573, 0x7a80ad05, 0x95869387, 0x33e6a0f5, 0x50950449, 0x5da456ad,
|
||||
0xb2ab1617, 0x7b345bf9, 0x7f923fd1, 0x4ca337fe, 0x95ccf61b, 0xfd8221ca,
|
||||
0x0f19808f, 0x80029266, 0x915a3c47, 0x415045d7, 0x92f91b36, 0xd23576e5,
|
||||
0x74a5652e, 0xe3d7288c, 0xba8213f7, 0x3a0ecd53, 0xa34fa01a, 0x62b4db3b,
|
||||
0x3a96a793, 0xcef7b0da, 0xb64b8d17, 0x8716c3ed, 0xbd0ab055, 0xa6896492,
|
||||
0x1250e75b, 0xb2bce1a7, 0x4100ca8f, 0x2e05625f, 0x8eb5bc83, 0x3dac8027,
|
||||
0x62b3376d, 0xd6b2cc64, 0x4c9502dc, 0x6c1cfcbe, 0x380c1dce, 0x2b238ea8,
|
||||
0x7051d59b, 0x580b122d, 0x6174b6e5, 0x4353d726, 0xba555765, 0xb645490f,
|
||||
0x58427e5f, 0x06fc96e1, 0xae8f4528, 0xab0fee5e, 0x5de960b3, 0x63e79c19,
|
||||
0x8552eeb8, 0x9344db26, 0x3326d17c, 0xa4174885, 0x6fe45472, 0x7bd20a9e,
|
||||
0xa5e4aba0, 0x77b509af, 0x22f64240, 0x40bc5144, 0x57ca1b2d, 0xc1260090,
|
||||
0x008997aa, 0xe8029716, 0x6efb01f3, 0xc73e1366, 0x9de737ff, 0x1b5fabe8,
|
||||
0x957bb682, 0x5e27f5a5, 0x7777491a, 0x9b6fc6c1, 0xb0802205, 0x16e94d46,
|
||||
0x58079aee, 0x2b24c4c4, 0xfffb2e7b, 0x7c5560e1, 0xe1ad3009, 0x6a0c0027,
|
||||
0x09aea741, 0x9af375a6, 0x7106b7bf, 0x1cdcff69, 0xa007f9c2, 0x6f7729c0,
|
||||
0xeac4297f, 0x8622ede7, 0x89346bfa, 0xc24674b5, 0xd1eabf00, 0xfa6b2d39,
|
||||
0x04b0c153, 0x6adf49dc, 0x48ea0937, 0xae771ea6, 0xd4208255, 0x4052586d,
|
||||
0x9c6aa640, 0x9adbb652, 0x017d8661, 0xb20855f0, 0x1e2ed7b6, 0x70af7f25,
|
||||
0x354df0de, 0xf2fdfde7, 0x0844478c, 0x63993fb2, 0xc49e71ae, 0x1e15ae81,
|
||||
0x932ad241, 0xba83cf8f, 0xc7e227f3, 0xd1171a85, 0x63ea34a0, 0xe74f042b,
|
||||
0xd88173d9, 0xba7d8443, 0x9d47c6c4, 0xbe282a93, 0x6142fbac, 0x69307e44,
|
||||
0xbb86a7f1, 0x9fa3418f, 0x3a3eadce, 0x9804167b, 0x2d5eb47a, 0x5aa2372d,
|
||||
0x66eb8e1c, 0xf56da1fd, 0x3753eee9, 0xac78c709, 0x787ae648, 0x42d4fa7f,
|
||||
0x5a036af5, 0xfc6dfa54, 0x269f1195, 0xef1c698d, 0x2932b2d6, 0xba10b26c,
|
||||
0xf9b58396, 0x8f04a38a, 0x31c1264d, 0xf11c5ac6, 0x693d8ef6, 0x25b1d015,
|
||||
0x01c06e8f, 0x9c250a6f, 0x4b8fffcd, 0x1eff0743, 0x5a4974ec, 0x9d2d24c1,
|
||||
0x5562b2ae, 0x2a5b2deb, 0xd4a32596, 0x8ec43665, 0xde3ae654, 0x99e979d0,
|
||||
0xb6250c7c, 0x478a2891, 0xe1d6c035, 0x1dc453e8, 0xc7490c8d, 0xd4e85297,
|
||||
0x8fa94952, 0xc863cde8, 0x724dbbc8, 0x89ba9607, 0x0144ba1b, 0x3fed833c,
|
||||
0xd16278d4, 0x0080f227, 0xfbe241c5, 0x61892e7f, 0x503dced0, 0xa54d6ea5,
|
||||
0xcb5024a3, 0x591e11d1, 0xabeb85db, 0xc8314e58, 0xfb7792cb, 0xc70e5ada,
|
||||
0xcc07e739, 0xdb3ad4d6, 0x7a2d24e8, 0x2a0e216a, 0xa04aa774, 0x1762ac59,
|
||||
0xed53f5f9, 0x261a791e, 0x7a4102ae, 0x4650dcc9, 0xffa48ffa, 0x35a8f4e1,
|
||||
0x98e0f041, 0x3e3a9a83, 0xfb43c8e9, 0x7e0e6a1e, 0x06f718e5, 0x6812c114,
|
||||
0xaf21e4a1, 0x10ce04ca, 0x6e465a05, 0x250758f2, 0xfdf02f68, 0x426ec74c,
|
||||
0x51e44567, 0x17e637cc, 0x9da657e4, 0x39ecef6e, 0xd31c4423, 0x12bc06b4,
|
||||
0x35af82e0, 0x76379d09, 0x7fb7aa1e, 0x0b73e469, 0x7b3697a4, 0x6bbbca38,
|
||||
0x018d2e07, 0x8d74a290, 0x02e00314, 0xdc9d1f4f, 0x62cbdd73, 0xd1173c86,
|
||||
0x62c1d5f2, 0xdfb16100, 0x37cc28e8, 0x43954e64, 0xeaa699d9, 0x0cd0a997,
|
||||
0xa0f26045
|
||||
|
||||
ea =
|
||||
17868
|
||||
|
||||
eb =
|
||||
17868
|
||||
|
||||
cab =
|
||||
2
|
||||
|
||||
c =
|
||||
2
|
||||
|
||||
c_neg =
|
||||
0
|
||||
|
||||
k_pos =
|
||||
5952
|
||||
|
||||
k_neg =
|
||||
5888
|
||||
|
||||
ncb_pos =
|
||||
17952
|
||||
|
||||
ncb_neg =
|
||||
17760
|
||||
|
||||
r =
|
||||
0
|
||||
|
||||
rv_index =
|
||||
0
|
||||
|
||||
code_block_mode =
|
||||
0
|
||||
|
||||
op_flags =
|
||||
RTE_BBDEV_TURBO_CRC_24B_ATTACH
|
||||
|
||||
expected_status =
|
||||
OK
|
|
@ -0,0 +1,153 @@
|
|||
# SPDX-License-Identifier: BSD-3-Clause
|
||||
# Copyright(c) 2017 Intel Corporation
|
||||
|
||||
op_type =
|
||||
RTE_BBDEV_OP_TURBO_ENC
|
||||
|
||||
input0 =
|
||||
0xb0fe86aa, 0xffbf2968, 0x4f55a631, 0xf2152dbc, 0x195a49a5, 0xa4aa7c6c,
|
||||
0x48a7be38, 0xd32c84f2, 0xb040da60, 0xb39eb07c, 0x3443aad6, 0x19f52e13,
|
||||
0xb2914341, 0x0d5dfdb3, 0x1ba8aec0, 0x62d0c7be, 0x1d55475c, 0x10f7dd79,
|
||||
0x967e5333, 0xc0d524c1, 0xdca8da87, 0x1146ecf7, 0xfa09a85c, 0x83be800f,
|
||||
0x11b814cc, 0x362a4704, 0x4f22e7ce, 0x9985a0e2, 0x9de4be72, 0x488a45b3,
|
||||
0x6996ade2, 0xdb18c09a, 0x487d62a3, 0x94f82d13, 0xa0743f83, 0x75d2f5dd,
|
||||
0x0e470346, 0x6e2ec2e5, 0x1a67fe5f, 0xc369330d, 0x860e8766, 0x42c110f6,
|
||||
0x804a9985, 0x55db02b4, 0xb899fc5c, 0x57811d20, 0xda4f1f9d, 0x2a2efc30,
|
||||
0x953e7487, 0x4b0c3065, 0x247d5d47, 0xdde382e7, 0x1d6d2ad7, 0x4358ac24,
|
||||
0x2d0fd97f, 0x1483821e, 0xf6c74ee5, 0x23b5c2f4, 0x95d4a5fc, 0x486f370b,
|
||||
0x8dbae43d, 0x248f17d5, 0x2df76099, 0xd19ec872, 0xf592aa0e, 0x8de04c3c,
|
||||
0x3ada94fb, 0x9dd001a3, 0x2b4db6d1, 0x791cf495, 0x57dc764b, 0x21789f1f,
|
||||
0x0d38adf5, 0xd8cefdc2, 0xed98f8bf, 0x024bc4ed, 0x4f9d3062, 0x332d27c5,
|
||||
0xde70ad4e, 0xd85872d2, 0x5d0e29c0, 0xa4fd1887, 0x3fa67ba1, 0x46b9b008,
|
||||
0x055bbf61, 0xf78e59f0, 0x287d2e3b, 0x5b473fe7, 0xd7ad6e04, 0x9cdf4986,
|
||||
0x830432ae, 0xffded1ba, 0x35c00f77, 0xcf0a6648, 0x196c03aa, 0xba4e2dd3,
|
||||
0xdaf70fe4, 0x883de2cd, 0xedc3b52e, 0x14e638c1, 0xe607103a, 0xc4cfb700,
|
||||
0x4ed9843d, 0xc442a0cb, 0xc0d3bba2, 0x36789ba8, 0x9c9b7a24, 0xb943b6a4,
|
||||
0x8f2c6879, 0x0fb16a0c, 0x2677bada, 0xd14f2f7e, 0x662ec398, 0x1e37b7ae,
|
||||
0x8ad0312d, 0x21adb6a1, 0x072a11fd, 0x7ae828d1, 0xb510655f, 0x09f7b477,
|
||||
0x10a175fc, 0xb7086f51, 0x24546af3, 0xfae81b50, 0xcb328832, 0x63693615,
|
||||
0xa37c3678, 0x15fb6364, 0xb5f75a78, 0xfa9aa5f6, 0x03804a0e, 0x1d245890,
|
||||
0x06d6cdcd, 0x7485a3c7, 0x35a008ae, 0x1abeaf1c, 0xd9c55966, 0x2b694666,
|
||||
0x5341f2df, 0xcb647280, 0xfb88d81e, 0xf99a44d0, 0xb0585534, 0x0877b530,
|
||||
0x752ab39a, 0xd493d8bc, 0xfaa6a57a, 0xccb7c008, 0x9c35994b, 0xb8
|
||||
|
||||
output0 =
|
||||
0xb0fe86aa, 0xffbf2968, 0x4f55a631, 0xf2152dbc, 0x195a49a5, 0xa4aa7c6c,
|
||||
0x48a7be38, 0xd32c84f2, 0xb040da60, 0xb39eb07c, 0x3443aad6, 0x19f52e13,
|
||||
0xb2914341, 0x0d5dfdb3, 0x1ba8aec0, 0x62d0c7be, 0x1d55475c, 0x10f7dd79,
|
||||
0x967e5333, 0xc0d524c1, 0xdca8da87, 0x1146ecf7, 0xfa09a85c, 0x83be800f,
|
||||
0x11b814cc, 0x362a4704, 0x4f22e7ce, 0x9985a0e2, 0x9de4be72, 0x488a45b3,
|
||||
0x6996ade2, 0xdb18c09a, 0x487d62a3, 0x94f82d13, 0xa0743f83, 0x75d2f5dd,
|
||||
0x0e470346, 0x6e2ec2e5, 0x1a67fe5f, 0xc369330d, 0x860e8766, 0x42c110f6,
|
||||
0x804a9985, 0x55db02b4, 0xb899fc5c, 0x57811d20, 0xda4f1f9d, 0x2a2efc30,
|
||||
0x953e7487, 0x4b0c3065, 0x247d5d47, 0xdde382e7, 0x1d6d2ad7, 0x4358ac24,
|
||||
0x2d0fd97f, 0x1483821e, 0xf6c74ee5, 0x23b5c2f4, 0x95d4a5fc, 0x486f370b,
|
||||
0x8dbae43d, 0x248f17d5, 0x2df76099, 0xd19ec872, 0xf592aa0e, 0x8de04c3c,
|
||||
0x3ada94fb, 0x9dd001a3, 0x2b4db6d1, 0x791cf495, 0x57dc764b, 0x21789f1f,
|
||||
0x0d38adf5, 0xd8cefdc2, 0xed98f8bf, 0x024bc4ed, 0x4f9d3062, 0x332d27c5,
|
||||
0xde70ad4e, 0xd85872d2, 0x5d0e29c0, 0xa4fd1887, 0x3fa67ba1, 0x46b9b008,
|
||||
0x055bbf61, 0xf78e59f0, 0x287d2e3b, 0x5b473fe7, 0xd7ad6e04, 0x9cdf4986,
|
||||
0x830432ae, 0xffded1ba, 0x35c00f77, 0xcf0a6648, 0x196c03aa, 0xba4e2dd3,
|
||||
0xdaf70fe4, 0x883de2cd, 0xedc3b52e, 0x14e638c1, 0xe607103a, 0xc4cfb700,
|
||||
0x4ed9843d, 0xc442a0cb, 0xc0d3bba2, 0x36789ba8, 0x9c9b7a24, 0xb943b6a4,
|
||||
0x8f2c6879, 0x0fb16a0c, 0x2677bada, 0xd14f2f7e, 0x662ec398, 0x1e37b7ae,
|
||||
0x8ad0312d, 0x21adb6a1, 0x072a11fd, 0x7ae828d1, 0xb510655f, 0x09f7b477,
|
||||
0x10a175fc, 0xb7086f51, 0x24546af3, 0xfae81b50, 0xcb328832, 0x63693615,
|
||||
0xa37c3678, 0x15fb6364, 0xb5f75a78, 0xfa9aa5f6, 0x03804a0e, 0x1d245890,
|
||||
0x06d6cdcd, 0x7485a3c7, 0x35a008ae, 0x1abeaf1c, 0xd9c55966, 0x2b694666,
|
||||
0x5341f2df, 0xcb647280, 0xfb88d81e, 0xf99a44d0, 0xb0585534, 0x0877b530,
|
||||
0x752ab39a, 0xd493d8bc, 0xfaa6a57a, 0xccb7c008, 0x9c35994b, 0x47ee26b8,
|
||||
0x94f624ac, 0xa3bd4876, 0xf7d4854e, 0x8871d433, 0x9321d942, 0x7b626be8,
|
||||
0x72c934b0, 0x3b7af8a4, 0x5102c29f, 0x710e4dbc, 0x99708292, 0x1458c4c1,
|
||||
0x61026bc5, 0xe776e388, 0x4a0222b3, 0x760e5aaf, 0x662f3583, 0x5ab1005b,
|
||||
0xe527ef70, 0x4170d611, 0x307bebc4, 0xfdd00caf, 0xbaae1044, 0xcab4d459,
|
||||
0x38281dcf, 0x90580c89, 0x49cf5986, 0xa27da769, 0xceced49b, 0x5ea37953,
|
||||
0x8a7e6c1c, 0x1e01b4e2, 0xe08026ae, 0x3754534a, 0x903b0ecf, 0x65f97a55,
|
||||
0x90798ed9, 0x9d1133bc, 0xe356a39f, 0xe47acbce, 0x01ccf326, 0x1954fd3d,
|
||||
0x240e69f8, 0x1da20bb4, 0xe1ab1684, 0x44c65d48, 0xd265e6c2, 0x51d4ef07,
|
||||
0x000970ef, 0xfeb939f4, 0x5dcc0132, 0x2bd27ae5, 0xba5dbd25, 0xa9d190e4,
|
||||
0x61556bec, 0x7fd6caba, 0x7fe312cb, 0xdd319413, 0x92a5dbbf, 0x17e61915,
|
||||
0x56067b67, 0x3dc348c0, 0x58c17fe0, 0xbe6bffcc, 0xd379026c, 0xc4174780,
|
||||
0xcce7f026, 0xb74b7eb0, 0xe4d5f625, 0x6bc16d3b, 0xff3e300e, 0x83f0d55a,
|
||||
0xf2e537df, 0x75c18f78, 0xa5458d1a, 0x47c778b0, 0x92eb8716, 0xcb5816fd,
|
||||
0xc2cc7079, 0xa7f1dc75, 0xed9e5ffa, 0xb7d6747f, 0xa2dc6907, 0x99b4d187,
|
||||
0x69f3138a, 0xbd285a1f, 0xb8ee18e0, 0x734b77a5, 0xc0700f69, 0x6c72a77a,
|
||||
0x76609ba9, 0xcfae9b73, 0x2cd329f0, 0x0d45aa12, 0x419fbcd7, 0x03e00f00,
|
||||
0x0effee99, 0x7f879eb4, 0x29a4c8df, 0x4432400a, 0x22b9cf55, 0xa1c4c645,
|
||||
0x200251b0, 0xff293906, 0xe11288e2, 0xde1e8ec7, 0x675752d1, 0x9630743e,
|
||||
0xd848c67e, 0x1eedfda9, 0x58b954fc, 0xa0dc7f1c, 0x0aea313e, 0x062b9449,
|
||||
0x0f17e57f, 0x96def6ec, 0x2ba45f14, 0xd9a5f8c5, 0x231483c8, 0x29b8783e,
|
||||
0xa6d24594, 0x1a62ffcd, 0x54c87a7f, 0x6fa9ca9a, 0xfff0f890, 0x51d6ae46,
|
||||
0xa96e82b0, 0x68cd9808, 0x56214df5, 0x2169defa, 0x72c1ecce, 0x2448e3c9,
|
||||
0x8eb2b3b3, 0x62c89c11, 0xbba20ee2, 0xea33f53a, 0x8b96a6b8, 0x9d33d551,
|
||||
0x363bd14e, 0x5fdd2b5f, 0xf8187546, 0xb692beab, 0x8df6b4c0, 0x753e2302,
|
||||
0xb90f7a37, 0x2b6bac6a, 0x13a07bc5, 0xb67f6d2b, 0x47b21569, 0xc2ab143f,
|
||||
0xf86ce30a, 0xde2dab70, 0x6f258860, 0x2878735c, 0x2aaeac20, 0xda80fb3e,
|
||||
0xe7a8ccf6, 0xbf011844, 0x40a610f8, 0x82f3fdf7, 0xadc4ec2c, 0xb8551030,
|
||||
0x76004380, 0xa384ff18, 0x080cf587, 0x6c4991d3, 0x2daea9aa, 0xa92d0c4f,
|
||||
0x4a9d117e, 0x2761f025, 0x96b40443, 0x57a82be4, 0x62374c44, 0x55dc64ae,
|
||||
0x28aa9f0c, 0x03a3b963, 0x41dbaa26, 0xb3c23735, 0x971cbd31, 0x939a9f80,
|
||||
0x76439fdc, 0xa9df79d6, 0x926ae3e2, 0x5ee75745, 0xf2396e52, 0xe18bd816,
|
||||
0x3f9834b9, 0x816a07bc, 0x8f873310, 0x45cf9b96, 0x0ce634dd, 0xe64a16d9,
|
||||
0x2733775a, 0x2b648c7e, 0xe600ee8e, 0xd99d8ae3, 0x10dadf2a, 0x904d3f87,
|
||||
0x3963e9e7, 0x47fcce89, 0xc256c898, 0x7db6cb66, 0xe1611a8b, 0xed81b10d,
|
||||
0x75eff974, 0x8a0a3d67, 0xa44311ff, 0x6f876783, 0x43dc93ce, 0x88616a33,
|
||||
0xa8706e8f, 0x33a2cbed, 0x3a6d20c3, 0x55175086, 0x39680945, 0x2d779a7b,
|
||||
0x0818a4ce, 0x55558918, 0xf7c08d35, 0x980a3038, 0x9cf068db, 0x3385d333,
|
||||
0xd81b33fb, 0x188018d5, 0x47c57bd3, 0x9ec2324f, 0x6901cd77, 0xc3bac44f,
|
||||
0x4d96aba8, 0x9094da5b, 0xa67a1353, 0x1fdfc4db, 0xa2fbeefa, 0xab4828e3,
|
||||
0x37d1db45, 0x0d33b3e9, 0x1ad72bb9, 0x7257bf9c, 0x2ec35167, 0xa4488b7f,
|
||||
0xf9dae588, 0x1038905a, 0x88ddf410, 0xaac11693, 0x24ac025d, 0x56cefbb5,
|
||||
0x6afe7f59, 0xc7f989e8, 0x15872570, 0x1bf16cdb, 0xfe9c93ce, 0x1fc9a076,
|
||||
0x85d37185, 0x1078cd31, 0xe1cd0327, 0x6d5315bc, 0x298cd836, 0xc8e21f06,
|
||||
0xe561c32d, 0x8ec404b4, 0x4d39bfbb, 0x24ede8c8, 0x451d6034, 0x3bafeea2,
|
||||
0x202f0ccf, 0x1fad37ce, 0xf04b5693, 0xeee57cd9, 0x5ef70007, 0x018e8a4f,
|
||||
0xfa61c9a9, 0x09989fcf, 0xe66b558b, 0x966efd48, 0x7525021d, 0xe7978b5e,
|
||||
0x7eb1d6dc, 0xa10c5e5b, 0xb7815e69, 0x7d486cfb, 0xcffdeb2a, 0x7375cb32,
|
||||
0x599008dc, 0xff91c796, 0x560ed4ad, 0x14e9a876, 0xfccf6a66, 0xa58be028,
|
||||
0xea9d408b, 0x3afc373b, 0xee008458, 0x19b6042e, 0x84806314, 0x431a4ba4,
|
||||
0x009ad6a1, 0xd7c62bf4, 0x1bebecba, 0x5c662f69, 0x83bfdea1, 0x45872a9a,
|
||||
0x00c9
|
||||
|
||||
|
||||
ea =
|
||||
14412
|
||||
|
||||
eb =
|
||||
14412
|
||||
|
||||
cab =
|
||||
4
|
||||
|
||||
c =
|
||||
4
|
||||
|
||||
c_neg =
|
||||
0
|
||||
|
||||
k_pos =
|
||||
4800
|
||||
|
||||
k_neg =
|
||||
4736
|
||||
|
||||
ncb_pos =
|
||||
14496
|
||||
|
||||
ncb_neg =
|
||||
14304
|
||||
|
||||
r =
|
||||
2
|
||||
|
||||
rv_index =
|
||||
0
|
||||
|
||||
code_block_mode =
|
||||
0
|
||||
|
||||
op_flags =
|
||||
RTE_BBDEV_TURBO_CRC_24B_ATTACH
|
||||
|
||||
expected_status =
|
||||
OK
|
|
@ -0,0 +1,252 @@
|
|||
# SPDX-License-Identifier: BSD-3-Clause
|
||||
# Copyright(c) 2017 Intel Corporation
|
||||
|
||||
op_type =
|
||||
RTE_BBDEV_OP_TURBO_ENC
|
||||
|
||||
input0 =
|
||||
0xb0fe86aa, 0xffbf2968, 0x4f55a631, 0xf2152dbc, 0x195a49a5, 0xa4aa7c6c,
|
||||
0x48a7be38, 0xd32c84f2, 0xb040da60, 0xb39eb07c, 0x3443aad6, 0x19f52e13,
|
||||
0xb2914341, 0x0d5dfdb3, 0x1ba8aec0, 0x62d0c7be, 0x1d55475c, 0x10f7dd79,
|
||||
0x967e5333, 0xc0d524c1, 0xdca8da87, 0x1146ecf7, 0xfa09a85c, 0x83be800f,
|
||||
0x11b814cc, 0x362a4704, 0x4f22e7ce, 0x9985a0e2, 0x9de4be72, 0x488a45b3,
|
||||
0x6996ade2, 0xdb18c09a, 0x487d62a3, 0x94f82d13, 0xa0743f83, 0x75d2f5dd,
|
||||
0x0e470346, 0x6e2ec2e5, 0x1a67fe5f, 0xc369330d, 0x860e8766, 0x42c110f6,
|
||||
0x804a9985, 0x55db02b4, 0xb899fc5c, 0x57811d20, 0xda4f1f9d, 0x2a2efc30,
|
||||
0x953e7487, 0x4b0c3065, 0x247d5d47, 0xdde382e7, 0x1d6d2ad7, 0x4358ac24,
|
||||
0x2d0fd97f, 0x1483821e, 0xf6c74ee5, 0x23b5c2f4, 0x95d4a5fc, 0x486f370b,
|
||||
0x8dbae43d, 0x248f17d5, 0x2df76099, 0xd19ec872, 0xf592aa0e, 0x8de04c3c,
|
||||
0x3ada94fb, 0x9dd001a3, 0x2b4db6d1, 0x791cf495, 0x57dc764b, 0x21789f1f,
|
||||
0x0d38adf5, 0xd8cefdc2, 0xed98f8bf, 0x024bc4ed, 0x4f9d3062, 0x332d27c5,
|
||||
0xde70ad4e, 0xd85872d2, 0x5d0e29c0, 0xa4fd1887, 0x3fa67ba1, 0x46b9b008,
|
||||
0x055bbf61, 0xf78e59f0, 0x287d2e3b, 0x5b473fe7, 0xd7ad6e04, 0x9cdf4986,
|
||||
0x830432ae, 0xffded1ba, 0x35c00f77, 0xcf0a6648, 0x196c03aa, 0xba4e2dd3,
|
||||
0xdaf70fe4, 0x883de2cd, 0xedc3b52e, 0x14e638c1, 0xe607103a, 0xc4cfb700,
|
||||
0x4ed9843d, 0xc442a0cb, 0xc0d3bba2, 0x36789ba8, 0x9c9b7a24, 0xb943b6a4,
|
||||
0x8f2c6879, 0x0fb16a0c, 0x2677bada, 0xd14f2f7e, 0x662ec398, 0x1e37b7ae,
|
||||
0x8ad0312d, 0x21adb6a1, 0x072a11fd, 0x7ae828d1, 0xb510655f, 0x09f7b477,
|
||||
0x10a175fc, 0xb7086f51, 0x24546af3, 0xfae81b50, 0xcb328832, 0x63693615,
|
||||
0xa37c3678, 0x15fb6364, 0xb5f75a78, 0xfa9aa5f6, 0x03804a0e, 0x1d245890,
|
||||
0x06d6cdcd, 0x7485a3c7, 0x35a008ae, 0x1abeaf1c, 0xd9c55966, 0x2b694666,
|
||||
0x5341f2df, 0xcb647280, 0xfb88d81e, 0xf99a44d0, 0xb0585534, 0x0877b530,
|
||||
0x752ab39a, 0xd493d8bc, 0xfaa6a57a, 0xccb7c008, 0x9c35994b, 0x9cca47b8,
|
||||
0xff47dda2, 0xa557841a, 0x7459fb6a, 0x93ec6495, 0x0ef7e6d2, 0xa8a6e6d4,
|
||||
0x46364f91, 0xd52c5776, 0x4dfd0d25, 0xd458c769, 0x24864930, 0xf7789991,
|
||||
0xfcc231f2, 0xc8e4cfd0, 0x50975038, 0x989398d1, 0x04504b14, 0x5e529570,
|
||||
0xf8c17202, 0xaf459a8a, 0xac2fecb2, 0x0eb3a176, 0xf6bac24f, 0x6fbddade,
|
||||
0x42456542, 0x83c10198, 0xbea4efaf, 0xff2f2966, 0x5edae82b, 0x09c27f13,
|
||||
0xa094c3b4, 0xc53b810e, 0x7f1cc39d, 0x25731c8a, 0x8d34b6ee, 0x5fb78b80,
|
||||
0x2980eef8, 0x7b76a9fb, 0x37bfacb9, 0x80f7a0ea, 0xd1e3e69d, 0xcda19b8b,
|
||||
0x9af26246, 0xf55495cf, 0x6f45ad1b, 0xfe2cb329, 0xc33cb7e6, 0x67bbde4a,
|
||||
0x32310c7b, 0x80e6b00a, 0xdd4004d2, 0x0e0eb8b6, 0x6f8d951f, 0xb196cb40,
|
||||
0x6dbe29dd, 0xa138a375, 0xd4f5b058, 0x69ea638f, 0x50438a7a, 0xe5530eb3,
|
||||
0x527cb218, 0xbfa67b9d, 0x7efb86df, 0x724ed65b, 0x38006782, 0x6a9924a4,
|
||||
0x749955c2, 0x5cb82627, 0xa74ceecb, 0x89eb103d, 0x89a12973, 0x660613c4,
|
||||
0x8bdf96ae, 0xf08afcce, 0xa4023081, 0x79c6786c, 0x8026bdf0, 0x621f29a1,
|
||||
0xa8d8d3ec, 0x4ee5d537, 0xda83c99f, 0x9a69d0a8, 0xae027f9a, 0x639d9cc9,
|
||||
0xe80e2be1, 0x89d78cfb, 0x862fabb7, 0xb248c138, 0x3fe35f29, 0xf8b74cc6,
|
||||
0x27741dcf, 0xf9236485, 0x05225155, 0x4ed40ee6, 0xb30e4a95, 0x7d890ee0,
|
||||
0x0a97eb0d, 0xe7877652, 0x3de6fa67, 0xa3a5961e, 0x1bdf2af5, 0x5a7dcbbe,
|
||||
0x1641f1af, 0x4db5845b, 0x735761f2, 0x32a1431e, 0xab1e00b1, 0x495ddeb7,
|
||||
0xb480f29c, 0x47d83714, 0x8ba04129, 0x8c96062e, 0x657e7f7f, 0x30dfba23,
|
||||
0xfd4ee1bc, 0x9ffe10b1, 0xc917d2db, 0x18f0bd8d, 0x4b6c35d7, 0x54896222,
|
||||
0x7ce0f6c6, 0xb7813f4a, 0x71c52b4b, 0xac65da3a, 0x9aef9b4e, 0x85f9657e,
|
||||
0x62ba1965, 0xa1e39267, 0x40f66fb2, 0x10433b94, 0x851df333, 0xf0c6aa26,
|
||||
0xe0e19368, 0x5a706636, 0xf5de1e8c, 0x5ebc735a, 0x0967ef39, 0xf76c1fb7,
|
||||
0xe53f7f16, 0x51f2c4eb, 0x047dda3d, 0x73518b4a, 0x3ad90dd3, 0xaee51fc1,
|
||||
0x78f01060, 0x98d1502c, 0x990d5499, 0x7a19453c, 0x104c
|
||||
|
||||
output0 =
|
||||
0xb0fe86aa, 0xffbf2968, 0x4f55a631, 0xf2152dbc, 0x195a49a5, 0xa4aa7c6c,
|
||||
0x48a7be38, 0xd32c84f2, 0xb040da60, 0xb39eb07c, 0x3443aad6, 0x19f52e13,
|
||||
0xb2914341, 0x0d5dfdb3, 0x1ba8aec0, 0x62d0c7be, 0x1d55475c, 0x10f7dd79,
|
||||
0x967e5333, 0xc0d524c1, 0xdca8da87, 0x1146ecf7, 0xfa09a85c, 0x83be800f,
|
||||
0x11b814cc, 0x362a4704, 0x4f22e7ce, 0x9985a0e2, 0x9de4be72, 0x488a45b3,
|
||||
0x6996ade2, 0xdb18c09a, 0x487d62a3, 0x94f82d13, 0xa0743f83, 0x75d2f5dd,
|
||||
0x0e470346, 0x6e2ec2e5, 0x1a67fe5f, 0xc369330d, 0x860e8766, 0x42c110f6,
|
||||
0x804a9985, 0x55db02b4, 0xb899fc5c, 0x57811d20, 0xda4f1f9d, 0x2a2efc30,
|
||||
0x953e7487, 0x4b0c3065, 0x247d5d47, 0xdde382e7, 0x1d6d2ad7, 0x4358ac24,
|
||||
0x2d0fd97f, 0x1483821e, 0xf6c74ee5, 0x23b5c2f4, 0x95d4a5fc, 0x486f370b,
|
||||
0x8dbae43d, 0x248f17d5, 0x2df76099, 0xd19ec872, 0xf592aa0e, 0x8de04c3c,
|
||||
0x3ada94fb, 0x9dd001a3, 0x2b4db6d1, 0x791cf495, 0x57dc764b, 0x21789f1f,
|
||||
0x0d38adf5, 0xd8cefdc2, 0xed98f8bf, 0x024bc4ed, 0x4f9d3062, 0x332d27c5,
|
||||
0xde70ad4e, 0xd85872d2, 0x5d0e29c0, 0xa4fd1887, 0x3fa67ba1, 0x46b9b008,
|
||||
0x055bbf61, 0xf78e59f0, 0x287d2e3b, 0x5b473fe7, 0xd7ad6e04, 0x9cdf4986,
|
||||
0x830432ae, 0xffded1ba, 0x35c00f77, 0xcf0a6648, 0x196c03aa, 0xba4e2dd3,
|
||||
0xdaf70fe4, 0x883de2cd, 0xedc3b52e, 0x14e638c1, 0xe607103a, 0xc4cfb700,
|
||||
0x4ed9843d, 0xc442a0cb, 0xc0d3bba2, 0x36789ba8, 0x9c9b7a24, 0xb943b6a4,
|
||||
0x8f2c6879, 0x0fb16a0c, 0x2677bada, 0xd14f2f7e, 0x662ec398, 0x1e37b7ae,
|
||||
0x8ad0312d, 0x21adb6a1, 0x072a11fd, 0x7ae828d1, 0xb510655f, 0x09f7b477,
|
||||
0x10a175fc, 0xb7086f51, 0x24546af3, 0xfae81b50, 0xcb328832, 0x63693615,
|
||||
0xa37c3678, 0x15fb6364, 0xb5f75a78, 0xfa9aa5f6, 0x03804a0e, 0x1d245890,
|
||||
0x06d6cdcd, 0x7485a3c7, 0x35a008ae, 0x1abeaf1c, 0xd9c55966, 0x2b694666,
|
||||
0x5341f2df, 0xcb647280, 0xfb88d81e, 0xf99a44d0, 0xb0585534, 0x0877b530,
|
||||
0x752ab39a, 0xd493d8bc, 0xfaa6a57a, 0xccb7c008, 0x9c35994b, 0x47ee26b8,
|
||||
0x94f624ac, 0xa3bd4876, 0xf7d4854e, 0x8871d433, 0x9321d942, 0x7b626be8,
|
||||
0x72c934b0, 0x3b7af8a4, 0x5102c29f, 0x710e4dbc, 0x99708292, 0x1458c4c1,
|
||||
0x61026bc5, 0xe776e388, 0x4a0222b3, 0x760e5aaf, 0x662f3583, 0x5ab1005b,
|
||||
0xe527ef70, 0x4170d611, 0x307bebc4, 0xfdd00caf, 0xbaae1044, 0xcab4d459,
|
||||
0x38281dcf, 0x90580c89, 0x49cf5986, 0xa27da769, 0xceced49b, 0x5ea37953,
|
||||
0x8a7e6c1c, 0x1e01b4e2, 0xe08026ae, 0x3754534a, 0x903b0ecf, 0x65f97a55,
|
||||
0x90798ed9, 0x9d1133bc, 0xe356a39f, 0xe47acbce, 0x01ccf326, 0x1954fd3d,
|
||||
0x240e69f8, 0x1da20bb4, 0xe1ab1684, 0x44c65d48, 0xd265e6c2, 0x51d4ef07,
|
||||
0x000970ef, 0xfeb939f4, 0x5dcc0132, 0x2bd27ae5, 0xba5dbd25, 0xa9d190e4,
|
||||
0x61556bec, 0x7fd6caba, 0x7fe312cb, 0xdd319413, 0x92a5dbbf, 0x17e61915,
|
||||
0x56067b67, 0x3dc348c0, 0x58c17fe0, 0xbe6bffcc, 0xd379026c, 0xc4174780,
|
||||
0xcce7f026, 0xb74b7eb0, 0xe4d5f625, 0x6bc16d3b, 0xff3e300e, 0x83f0d55a,
|
||||
0xf2e537df, 0x75c18f78, 0xa5458d1a, 0x47c778b0, 0x92eb8716, 0xcb5816fd,
|
||||
0xc2cc7079, 0xa7f1dc75, 0xed9e5ffa, 0xb7d6747f, 0xa2dc6907, 0x99b4d187,
|
||||
0x69f3138a, 0xbd285a1f, 0xb8ee18e0, 0x734b77a5, 0xc0700f69, 0x6c72a77a,
|
||||
0x76609ba9, 0xcfae9b73, 0x2cd329f0, 0x0d45aa12, 0x419fbcd7, 0x03e00f00,
|
||||
0x0effee99, 0x7f879eb4, 0x29a4c8df, 0x4432400a, 0x22b9cf55, 0xa1c4c645,
|
||||
0x200251b0, 0xff293906, 0xe11288e2, 0xde1e8ec7, 0x675752d1, 0x9630743e,
|
||||
0xd848c67e, 0x1eedfda9, 0x58b954fc, 0xa0dc7f1c, 0x0aea313e, 0x062b9449,
|
||||
0x0f17e57f, 0x96def6ec, 0x2ba45f14, 0xd9a5f8c5, 0x231483c8, 0x29b8783e,
|
||||
0xa6d24594, 0x1a62ffcd, 0x54c87a7f, 0x6fa9ca9a, 0xfff0f890, 0x51d6ae46,
|
||||
0xa96e82b0, 0x68cd9808, 0x56214df5, 0x2169defa, 0x72c1ecce, 0x2448e3c9,
|
||||
0x8eb2b3b3, 0x62c89c11, 0xbba20ee2, 0xea33f53a, 0x8b96a6b8, 0x9d33d551,
|
||||
0x363bd14e, 0x5fdd2b5f, 0xf8187546, 0xb692beab, 0x8df6b4c0, 0x753e2302,
|
||||
0xb90f7a37, 0x2b6bac6a, 0x13a07bc5, 0xb67f6d2b, 0x47b21569, 0xc2ab143f,
|
||||
0xf86ce30a, 0xde2dab70, 0x6f258860, 0x2878735c, 0x2aaeac20, 0xda80fb3e,
|
||||
0xe7a8ccf6, 0xbf011844, 0x40a610f8, 0x82f3fdf7, 0xadc4ec2c, 0xb8551030,
|
||||
0x76004380, 0xa384ff18, 0x080cf587, 0x6c4991d3, 0x2daea9aa, 0xa92d0c4f,
|
||||
0x4a9d117e, 0x2761f025, 0x96b40443, 0x57a82be4, 0x62374c44, 0x55dc64ae,
|
||||
0x28aa9f0c, 0x03a3b963, 0x41dbaa26, 0xb3c23735, 0x971cbd31, 0x939a9f80,
|
||||
0x76439fdc, 0xa9df79d6, 0x926ae3e2, 0x5ee75745, 0xf2396e52, 0xe18bd816,
|
||||
0x3f9834b9, 0x816a07bc, 0x8f873310, 0x45cf9b96, 0x0ce634dd, 0xe64a16d9,
|
||||
0x2733775a, 0x2b648c7e, 0xe600ee8e, 0xd99d8ae3, 0x10dadf2a, 0x904d3f87,
|
||||
0x3963e9e7, 0x47fcce89, 0xc256c898, 0x7db6cb66, 0xe1611a8b, 0xed81b10d,
|
||||
0x75eff974, 0x8a0a3d67, 0xa44311ff, 0x6f876783, 0x43dc93ce, 0x88616a33,
|
||||
0xa8706e8f, 0x33a2cbed, 0x3a6d20c3, 0x55175086, 0x39680945, 0x2d779a7b,
|
||||
0x0818a4ce, 0x55558918, 0xf7c08d35, 0x980a3038, 0x9cf068db, 0x3385d333,
|
||||
0xd81b33fb, 0x188018d5, 0x47c57bd3, 0x9ec2324f, 0x6901cd77, 0xc3bac44f,
|
||||
0x4d96aba8, 0x9094da5b, 0xa67a1353, 0x1fdfc4db, 0xa2fbeefa, 0xab4828e3,
|
||||
0x37d1db45, 0x0d33b3e9, 0x1ad72bb9, 0x7257bf9c, 0x2ec35167, 0xa4488b7f,
|
||||
0xf9dae588, 0x1038905a, 0x88ddf410, 0xaac11693, 0x24ac025d, 0x56cefbb5,
|
||||
0x6afe7f59, 0xc7f989e8, 0x15872570, 0x1bf16cdb, 0xfe9c93ce, 0x1fc9a076,
|
||||
0x85d37185, 0x1078cd31, 0xe1cd0327, 0x6d5315bc, 0x298cd836, 0xc8e21f06,
|
||||
0xe561c32d, 0x8ec404b4, 0x4d39bfbb, 0x24ede8c8, 0x451d6034, 0x3bafeea2,
|
||||
0x202f0ccf, 0x1fad37ce, 0xf04b5693, 0xeee57cd9, 0x5ef70007, 0x018e8a4f,
|
||||
0xfa61c9a9, 0x09989fcf, 0xe66b558b, 0x966efd48, 0x7525021d, 0xe7978b5e,
|
||||
0x7eb1d6dc, 0xa10c5e5b, 0xb7815e69, 0x7d486cfb, 0xcffdeb2a, 0x7375cb32,
|
||||
0x599008dc, 0xff91c796, 0x560ed4ad, 0x14e9a876, 0xfccf6a66, 0xa58be028,
|
||||
0xea9d408b, 0x3afc373b, 0xee008458, 0x19b6042e, 0x84806314, 0x431a4ba4,
|
||||
0x009ad6a1, 0xd7c62bf4, 0x1bebecba, 0x5c662f69, 0x83bfdea1, 0x45872a9a,
|
||||
0xca4700c9, 0x47dda29c, 0x57841aff, 0x59fb6aa5, 0xec649574, 0xf7e6d293,
|
||||
0xa6e6d40e, 0x364f91a8, 0x2c577646, 0xfd0d25d5, 0x58c7694d, 0x864930d4,
|
||||
0x78999124, 0xc231f2f7, 0xe4cfd0fc, 0x975038c8, 0x9398d150, 0x504b1498,
|
||||
0x52957004, 0xc172025e, 0x459a8af8, 0x2fecb2af, 0xb3a176ac, 0xbac24f0e,
|
||||
0xbddadef6, 0x4565426f, 0xc1019842, 0xa4efaf83, 0x2f2966be, 0xdae82bff,
|
||||
0xc27f135e, 0x94c3b409, 0x3b810ea0, 0x1cc39dc5, 0x731c8a7f, 0x34b6ee25,
|
||||
0xb78b808d, 0x80eef85f, 0x76a9fb29, 0xbfacb97b, 0xf7a0ea37, 0xe3e69d80,
|
||||
0xa19b8bd1, 0xf26246cd, 0x5495cf9a, 0x45ad1bf5, 0x2cb3296f, 0x3cb7e6fe,
|
||||
0xbbde4ac3, 0x310c7b67, 0xe6b00a32, 0x4004d280, 0x0eb8b6dd, 0x8d951f0e,
|
||||
0x96cb406f, 0xbe29ddb1, 0x38a3756d, 0xf5b058a1, 0xea638fd4, 0x438a7a69,
|
||||
0x530eb350, 0x7cb218e5, 0xa67b9d52, 0xfb86dfbf, 0x4ed65b7e, 0x00678272,
|
||||
0x9924a438, 0x9955c26a, 0xb8262774, 0x4ceecb5c, 0xeb103da7, 0xa1297389,
|
||||
0x0613c489, 0xdf96ae66, 0x8afcce8b, 0x023081f0, 0xc6786ca4, 0x26bdf079,
|
||||
0x1f29a180, 0xd8d3ec62, 0xe5d537a8, 0x83c99f4e, 0x69d0a8da, 0x027f9a9a,
|
||||
0x9d9cc9ae, 0x0e2be163, 0xd78cfbe8, 0x2fabb789, 0x48c13886, 0xe35f29b2,
|
||||
0xb74cc63f, 0x741dcff8, 0x23648527, 0x225155f9, 0xd40ee605, 0x0e4a954e,
|
||||
0x890ee0b3, 0x97eb0d7d, 0x8776520a, 0xe6fa67e7, 0xa5961e3d, 0xdf2af5a3,
|
||||
0x7dcbbe1b, 0x41f1af5a, 0xb5845b16, 0x5761f24d, 0xa1431e73, 0x1e00b132,
|
||||
0x5ddeb7ab, 0x80f29c49, 0xd83714b4, 0xa0412947, 0x96062e8b, 0x7e7f7f8c,
|
||||
0xdfba2365, 0x4ee1bc30, 0xfe10b1fd, 0x17d2db9f, 0xf0bd8dc9, 0x6c35d718,
|
||||
0x8962224b, 0xe0f6c654, 0x813f4a7c, 0xc52b4bb7, 0x65da3a71, 0xef9b4eac,
|
||||
0xf9657e9a, 0xba196585, 0xe3926762, 0xf66fb2a1, 0x433b9440, 0x1df33310,
|
||||
0xc6aa2685, 0xe19368f0, 0x706636e0, 0xde1e8c5a, 0xbc735af5, 0x67ef395e,
|
||||
0x6c1fb709, 0x3f7f16f7, 0xf2c4ebe5, 0x7dda3d51, 0x518b4a04, 0xd90dd373,
|
||||
0xe51fc13a, 0xf01060ae, 0xd1502c78, 0x0d549998, 0x19453c99, 0x52104c7a,
|
||||
0xc477d443, 0xce6910c0, 0x0dc163b4, 0x1dc4dab2, 0x5c4dbc0c, 0x6145ced9,
|
||||
0xf02e295b, 0x60196b15, 0x2aa68b89, 0x9ff0dd3b, 0xe4b874ce, 0x9175ec6c,
|
||||
0x9b629234, 0x644ce81d, 0x359fac36, 0x5211675f, 0xd24c092f, 0x1de9385e,
|
||||
0x1352b7e5, 0x8d650e83, 0x7057d366, 0x43371dd2, 0x61678e6e, 0xd436279b,
|
||||
0x267562b6, 0xabaf1706, 0x814bd74e, 0x3269cbda, 0x0a34b3cd, 0xa74c3d1a,
|
||||
0xd3b098c8, 0x02030412, 0xd75d7207, 0x519d1b3d, 0x1958436b, 0x69ba4221,
|
||||
0x81b6b4cf, 0xb83234e4, 0x7e652d03, 0x63bcf36e, 0xefecb5f7, 0x60550e08,
|
||||
0x394963ce, 0xfd6f2b38, 0x1342c68b, 0xbc39f1ca, 0x21bdd863, 0x59ade0af,
|
||||
0x2d0c793a, 0xa74702d4, 0xc00885f9, 0xc73c27af, 0x6566ea9e, 0xa31e0f7c,
|
||||
0x499f1706, 0xe19617ad, 0x0e19900a, 0x0a8d3669, 0xcc482af9, 0x5eb35096,
|
||||
0x269b51c1, 0x80d1145b, 0x4be232ff, 0x3d31fc83, 0x89127a6c, 0x90af3379,
|
||||
0x7726d002, 0x35f15151, 0x8393c3b5, 0x27a9ada8, 0x25940510, 0x05c49bf1,
|
||||
0xc7c1b886, 0xdb00826f, 0xf658f61f, 0xe5d77d98, 0xa637b6fb, 0x2f515fa5,
|
||||
0xb1f80c38, 0xe082d248, 0x4220acd0, 0x06360060, 0xcf42c277, 0xf5972529,
|
||||
0xf7e274fb, 0xfe41cc28, 0xde661de0, 0xa157bd26, 0x8e1f4788, 0x35c4111a,
|
||||
0x11a7360e, 0x751188e8, 0x544d9fc3, 0x33d853cd, 0x754542f7, 0x05d9979b,
|
||||
0x73e59071, 0x4909bb7e, 0x64ae94be, 0x0eb4c8e9, 0xacb903fe, 0xc716288e,
|
||||
0x1e914aa8, 0x19d127bd, 0x913a6dd4, 0x6af354d9, 0x72c29a95, 0x2fa731a5,
|
||||
0x9f206402, 0xa44abe92, 0xeb090ab4, 0x85b7584c, 0xf27cd398, 0x3b828e38,
|
||||
0x0cb8dd56, 0x37657f3c, 0x78fa0f2a, 0x3df7a0cb, 0x2621740f, 0x4d92422f,
|
||||
0x334a8fa2, 0x124f947d, 0x31be3505, 0xf6a1e561, 0x5d0c4087, 0x62971b45,
|
||||
0x312472a7, 0x933af4e3, 0x45c28196, 0x8ddd4f00, 0xa5ec20fb, 0x9acde751,
|
||||
0x23ac64e8, 0xbea00461, 0xf9d65eac, 0xe21db306, 0xcacb4f76, 0x83950ca3,
|
||||
0x66069329, 0xf7d72838, 0x5d13a747, 0x5c9ca583, 0x1d9d225e, 0xb2c705fe,
|
||||
0xd0fac625, 0x0a73b38e, 0xec8d6692, 0x0bb64587, 0xf147c00c, 0xcdd6020c,
|
||||
0x1608cede, 0xb531a423, 0x1c8b1b08, 0xdd74f03e, 0x6d3076fb, 0x2dcaaa44,
|
||||
0xe869582b, 0x0f19cde9, 0x44d15927, 0xee751f17, 0x655f24c4, 0x7508164e,
|
||||
0xab414b0d, 0x381d3525, 0x7a18cb74, 0xc91e435a, 0xb3397aa0, 0xa5567595,
|
||||
0x1da36e52, 0xb43ba598, 0x3ef0d4fd, 0x11d348c4, 0xfcb4cbfa, 0xa3dee1a7,
|
||||
0x8c6be341, 0xefafff59, 0xeaa95a58, 0x01ba74bb, 0x5b1d3193, 0x2ac942bb,
|
||||
0xbb5816ca, 0xe79720dd, 0x1683bbad, 0xea2f3992, 0xa89cdd39, 0x3a389386,
|
||||
0xc54d671f, 0xe8564365, 0x373196e0, 0xc08acfd2, 0x32f556b2, 0x15340220,
|
||||
0x817d0d1b, 0x4b9afaa3, 0xd3bbf932, 0x6c9ddf75, 0x0fca9bea, 0x2cd2d913,
|
||||
0x026e3647, 0x6e769b35, 0xdab34e6e, 0xc9b75a74, 0xfdc90304, 0xc6442959,
|
||||
0xa8f44fb4, 0x73fb26de, 0x833d2d60, 0x8cf7a461, 0xdc5c4bf9, 0x1bce371f,
|
||||
0xd1d6b743, 0xc1124cae, 0xf4d33161, 0x696956a5, 0xa5ce9c72, 0x5f84e109,
|
||||
0xa0dae0ff, 0xdfdf169e, 0xb734307c, 0x25843b5d, 0x0b710ae4, 0xafd25b2b,
|
||||
0xc013b89b, 0x5246e064, 0xeb28ab92, 0x4f92747c, 0x2f3c0c8b, 0x3268720d,
|
||||
0xef638533, 0xd0fc40ab, 0x5d29c943, 0x3fd9b311, 0x6833bf43, 0xa188ad03,
|
||||
0xacba3ad2, 0x9696f4da, 0x07b1b2fa, 0xb8f925f6, 0x082573f4, 0x506b5c0e,
|
||||
0xe290e707, 0x80933f06, 0x38dcad25, 0x276ab82f, 0x788f3a2c, 0x4b0e14bc,
|
||||
0xc1b38b43, 0x962a0efe, 0x77f19522, 0xd5bd951b, 0x90415ed2, 0x67a6a806,
|
||||
0x82d0503f, 0x814e505f, 0x6448341a, 0x2c88ba72, 0x1f783411, 0x5dcfc5d9,
|
||||
0x15cea1e2, 0x351ebdaa, 0xff083e5e, 0x173297d6, 0xbdadb9f2, 0xe82ebe50,
|
||||
0x33fff936, 0xaed0e402, 0xcd08e297, 0xeefee410, 0x023aedc0, 0x493fdd4c,
|
||||
0xd4454937, 0xa4c21893, 0xf9740292, 0x14308130, 0x2aa05568, 0xbd88a714,
|
||||
0x3f264976, 0x62203300, 0x5d9aa0bf, 0x3b9be4b0, 0xcb1c6dff, 0xe7f5ded8,
|
||||
0xb6ce0ec7, 0xdc1f094b, 0x0f93747c, 0x1768e49a, 0x1d7ebe93, 0x25d53887,
|
||||
0x144a1fe2, 0x32bc280c, 0x1d0b7884, 0x106b8928, 0x5aa38780, 0x87ca0d93,
|
||||
0x11a81f71, 0xe0957877, 0xb21fb0f7, 0x1e5a7ac0, 0x09db53a1, 0x5210dd59,
|
||||
0xa0566364
|
||||
|
||||
ea =
|
||||
14412
|
||||
|
||||
eb =
|
||||
14412
|
||||
|
||||
cab =
|
||||
4
|
||||
|
||||
c =
|
||||
4
|
||||
|
||||
c_neg =
|
||||
0
|
||||
|
||||
k_pos =
|
||||
4800
|
||||
|
||||
k_neg =
|
||||
4736
|
||||
|
||||
ncb_pos =
|
||||
14496
|
||||
|
||||
ncb_neg =
|
||||
14304
|
||||
|
||||
r =
|
||||
2
|
||||
|
||||
rv_index =
|
||||
0
|
||||
|
||||
code_block_mode =
|
||||
0
|
||||
|
||||
op_flags =
|
||||
RTE_BBDEV_TURBO_CRC_24B_ATTACH
|
||||
|
||||
expected_status =
|
||||
OK
|
|
@ -0,0 +1 @@
|
|||
test_vectors/turbo_dec_c1_k6144_r0_e10376_crc24b_sbd_negllr_high_snr.data
|
|
@ -0,0 +1 @@
|
|||
test_vectors/turbo_enc_c1_k6144_r0_e32256_crc24b_rm.data
|
|
@ -1,32 +1,5 @@
|
|||
# BSD LICENSE
|
||||
#
|
||||
# Copyright(c) 2016-2017 Intel Corporation. All rights reserved.
|
||||
#
|
||||
# Redistribution and use in source and binary forms, with or without
|
||||
# modification, are permitted provided that the following conditions
|
||||
# are met:
|
||||
#
|
||||
# * Redistributions of source code must retain the above copyright
|
||||
# notice, this list of conditions and the following disclaimer.
|
||||
# * Redistributions in binary form must reproduce the above copyright
|
||||
# notice, this list of conditions and the following disclaimer in
|
||||
# the documentation and/or other materials provided with the
|
||||
# distribution.
|
||||
# * Neither the name of Intel Corporation nor the names of its
|
||||
# contributors may be used to endorse or promote products derived
|
||||
# from this software without specific prior written permission.
|
||||
#
|
||||
# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
|
||||
# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
|
||||
# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
|
||||
# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
|
||||
# OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
|
||||
# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
|
||||
# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
|
||||
# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
|
||||
# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
||||
# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
|
||||
# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
# SPDX-License-Identifier: BSD-3-Clause
|
||||
# Copyright(c) 2016-2017 Intel Corporation
|
||||
|
||||
include $(RTE_SDK)/mk/rte.vars.mk
|
||||
|
||||
|
@ -34,6 +7,8 @@ include $(RTE_SDK)/mk/rte.vars.mk
|
|||
APP = dpdk-test-crypto-perf
|
||||
|
||||
CFLAGS += $(WERROR_FLAGS)
|
||||
CFLAGS += -DALLOW_EXPERIMENTAL_API
|
||||
CFLAGS += -O3
|
||||
|
||||
# all source are stored in SRCS-y
|
||||
SRCS-y := main.c
|
||||
|
|
|
@ -1,33 +1,5 @@
|
|||
/*-
|
||||
* BSD LICENSE
|
||||
*
|
||||
* Copyright(c) 2016-2017 Intel Corporation. All rights reserved.
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
* modification, are permitted provided that the following conditions
|
||||
* are met:
|
||||
*
|
||||
* * Redistributions of source code must retain the above copyright
|
||||
* notice, this list of conditions and the following disclaimer.
|
||||
* * Redistributions in binary form must reproduce the above copyright
|
||||
* notice, this list of conditions and the following disclaimer in
|
||||
* the documentation and/or other materials provided with the
|
||||
* distribution.
|
||||
* * Neither the name of Intel Corporation nor the names of its
|
||||
* contributors may be used to endorse or promote products derived
|
||||
* from this software without specific prior written permission.
|
||||
*
|
||||
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
|
||||
* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
|
||||
* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
|
||||
* A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
|
||||
* OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
|
||||
* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
|
||||
* LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
|
||||
* DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
|
||||
* THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
||||
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
|
||||
* OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
/* SPDX-License-Identifier: BSD-3-Clause
|
||||
* Copyright(c) 2016-2017 Intel Corporation
|
||||
*/
|
||||
|
||||
#ifndef _CPERF_
|
||||
|
|
|
@ -1,33 +1,5 @@
|
|||
/*-
|
||||
* BSD LICENSE
|
||||
*
|
||||
* Copyright(c) 2016-2017 Intel Corporation. All rights reserved.
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
* modification, are permitted provided that the following conditions
|
||||
* are met:
|
||||
*
|
||||
* * Redistributions of source code must retain the above copyright
|
||||
* notice, this list of conditions and the following disclaimer.
|
||||
* * Redistributions in binary form must reproduce the above copyright
|
||||
* notice, this list of conditions and the following disclaimer in
|
||||
* the documentation and/or other materials provided with the
|
||||
* distribution.
|
||||
* * Neither the name of Intel Corporation nor the names of its
|
||||
* contributors may be used to endorse or promote products derived
|
||||
* from this software without specific prior written permission.
|
||||
*
|
||||
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
|
||||
* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
|
||||
* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
|
||||
* A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
|
||||
* OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
|
||||
* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
|
||||
* LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
|
||||
* DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
|
||||
* THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
||||
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
|
||||
* OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
/* SPDX-License-Identifier: BSD-3-Clause
|
||||
* Copyright(c) 2016-2017 Intel Corporation
|
||||
*/
|
||||
|
||||
#include <rte_cryptodev.h>
|
||||
|
@ -41,7 +13,7 @@ cperf_set_ops_null_cipher(struct rte_crypto_op **ops,
|
|||
uint16_t nb_ops, struct rte_cryptodev_sym_session *sess,
|
||||
const struct cperf_options *options,
|
||||
const struct cperf_test_vector *test_vector __rte_unused,
|
||||
uint16_t iv_offset __rte_unused)
|
||||
uint16_t iv_offset __rte_unused, uint32_t *imix_idx)
|
||||
{
|
||||
uint16_t i;
|
||||
|
||||
|
@ -62,7 +34,12 @@ cperf_set_ops_null_cipher(struct rte_crypto_op **ops,
|
|||
dst_buf_offset);
|
||||
|
||||
/* cipher parameters */
|
||||
sym_op->cipher.data.length = options->test_buffer_size;
|
||||
if (options->imix_distribution_count) {
|
||||
sym_op->cipher.data.length =
|
||||
options->imix_buffer_sizes[*imix_idx];
|
||||
*imix_idx = (*imix_idx + 1) % options->pool_sz;
|
||||
} else
|
||||
sym_op->cipher.data.length = options->test_buffer_size;
|
||||
sym_op->cipher.data.offset = 0;
|
||||
}
|
||||
|
||||
|
@ -75,7 +52,7 @@ cperf_set_ops_null_auth(struct rte_crypto_op **ops,
|
|||
uint16_t nb_ops, struct rte_cryptodev_sym_session *sess,
|
||||
const struct cperf_options *options,
|
||||
const struct cperf_test_vector *test_vector __rte_unused,
|
||||
uint16_t iv_offset __rte_unused)
|
||||
uint16_t iv_offset __rte_unused, uint32_t *imix_idx)
|
||||
{
|
||||
uint16_t i;
|
||||
|
||||
|
@ -96,7 +73,12 @@ cperf_set_ops_null_auth(struct rte_crypto_op **ops,
|
|||
dst_buf_offset);
|
||||
|
||||
/* auth parameters */
|
||||
sym_op->auth.data.length = options->test_buffer_size;
|
||||
if (options->imix_distribution_count) {
|
||||
sym_op->auth.data.length =
|
||||
options->imix_buffer_sizes[*imix_idx];
|
||||
*imix_idx = (*imix_idx + 1) % options->pool_sz;
|
||||
} else
|
||||
sym_op->auth.data.length = options->test_buffer_size;
|
||||
sym_op->auth.data.offset = 0;
|
||||
}
|
||||
|
||||
|
@ -109,7 +91,7 @@ cperf_set_ops_cipher(struct rte_crypto_op **ops,
|
|||
uint16_t nb_ops, struct rte_cryptodev_sym_session *sess,
|
||||
const struct cperf_options *options,
|
||||
const struct cperf_test_vector *test_vector,
|
||||
uint16_t iv_offset)
|
||||
uint16_t iv_offset, uint32_t *imix_idx)
|
||||
{
|
||||
uint16_t i;
|
||||
|
||||
|
@ -130,12 +112,17 @@ cperf_set_ops_cipher(struct rte_crypto_op **ops,
|
|||
dst_buf_offset);
|
||||
|
||||
/* cipher parameters */
|
||||
if (options->imix_distribution_count) {
|
||||
sym_op->cipher.data.length =
|
||||
options->imix_buffer_sizes[*imix_idx];
|
||||
*imix_idx = (*imix_idx + 1) % options->pool_sz;
|
||||
} else
|
||||
sym_op->cipher.data.length = options->test_buffer_size;
|
||||
|
||||
if (options->cipher_algo == RTE_CRYPTO_CIPHER_SNOW3G_UEA2 ||
|
||||
options->cipher_algo == RTE_CRYPTO_CIPHER_KASUMI_F8 ||
|
||||
options->cipher_algo == RTE_CRYPTO_CIPHER_ZUC_EEA3)
|
||||
sym_op->cipher.data.length = options->test_buffer_size << 3;
|
||||
else
|
||||
sym_op->cipher.data.length = options->test_buffer_size;
|
||||
sym_op->cipher.data.length <<= 3;
|
||||
|
||||
sym_op->cipher.data.offset = 0;
|
||||
}
|
||||
|
@ -160,7 +147,7 @@ cperf_set_ops_auth(struct rte_crypto_op **ops,
|
|||
uint16_t nb_ops, struct rte_cryptodev_sym_session *sess,
|
||||
const struct cperf_options *options,
|
||||
const struct cperf_test_vector *test_vector,
|
||||
uint16_t iv_offset)
|
||||
uint16_t iv_offset, uint32_t *imix_idx)
|
||||
{
|
||||
uint16_t i;
|
||||
|
||||
|
@ -225,12 +212,17 @@ cperf_set_ops_auth(struct rte_crypto_op **ops,
|
|||
|
||||
}
|
||||
|
||||
if (options->imix_distribution_count) {
|
||||
sym_op->auth.data.length =
|
||||
options->imix_buffer_sizes[*imix_idx];
|
||||
*imix_idx = (*imix_idx + 1) % options->pool_sz;
|
||||
} else
|
||||
sym_op->auth.data.length = options->test_buffer_size;
|
||||
|
||||
if (options->auth_algo == RTE_CRYPTO_AUTH_SNOW3G_UIA2 ||
|
||||
options->auth_algo == RTE_CRYPTO_AUTH_KASUMI_F9 ||
|
||||
options->auth_algo == RTE_CRYPTO_AUTH_ZUC_EIA3)
|
||||
sym_op->auth.data.length = options->test_buffer_size << 3;
|
||||
else
|
||||
sym_op->auth.data.length = options->test_buffer_size;
|
||||
sym_op->auth.data.length <<= 3;
|
||||
|
||||
sym_op->auth.data.offset = 0;
|
||||
}
|
||||
|
@ -255,7 +247,7 @@ cperf_set_ops_cipher_auth(struct rte_crypto_op **ops,
|
|||
uint16_t nb_ops, struct rte_cryptodev_sym_session *sess,
|
||||
const struct cperf_options *options,
|
||||
const struct cperf_test_vector *test_vector,
|
||||
uint16_t iv_offset)
|
||||
uint16_t iv_offset, uint32_t *imix_idx)
|
||||
{
|
||||
uint16_t i;
|
||||
|
||||
|
@ -276,12 +268,17 @@ cperf_set_ops_cipher_auth(struct rte_crypto_op **ops,
|
|||
dst_buf_offset);
|
||||
|
||||
/* cipher parameters */
|
||||
if (options->imix_distribution_count) {
|
||||
sym_op->cipher.data.length =
|
||||
options->imix_buffer_sizes[*imix_idx];
|
||||
*imix_idx = (*imix_idx + 1) % options->pool_sz;
|
||||
} else
|
||||
sym_op->cipher.data.length = options->test_buffer_size;
|
||||
|
||||
if (options->cipher_algo == RTE_CRYPTO_CIPHER_SNOW3G_UEA2 ||
|
||||
options->cipher_algo == RTE_CRYPTO_CIPHER_KASUMI_F8 ||
|
||||
options->cipher_algo == RTE_CRYPTO_CIPHER_ZUC_EEA3)
|
||||
sym_op->cipher.data.length = options->test_buffer_size << 3;
|
||||
else
|
||||
sym_op->cipher.data.length = options->test_buffer_size;
|
||||
sym_op->cipher.data.length <<= 3;
|
||||
|
||||
sym_op->cipher.data.offset = 0;
|
||||
|
||||
|
@ -321,12 +318,17 @@ cperf_set_ops_cipher_auth(struct rte_crypto_op **ops,
|
|||
rte_pktmbuf_iova_offset(buf, offset);
|
||||
}
|
||||
|
||||
if (options->imix_distribution_count) {
|
||||
sym_op->auth.data.length =
|
||||
options->imix_buffer_sizes[*imix_idx];
|
||||
*imix_idx = (*imix_idx + 1) % options->pool_sz;
|
||||
} else
|
||||
sym_op->auth.data.length = options->test_buffer_size;
|
||||
|
||||
if (options->auth_algo == RTE_CRYPTO_AUTH_SNOW3G_UIA2 ||
|
||||
options->auth_algo == RTE_CRYPTO_AUTH_KASUMI_F9 ||
|
||||
options->auth_algo == RTE_CRYPTO_AUTH_ZUC_EIA3)
|
||||
sym_op->auth.data.length = options->test_buffer_size << 3;
|
||||
else
|
||||
sym_op->auth.data.length = options->test_buffer_size;
|
||||
sym_op->auth.data.length <<= 3;
|
||||
|
||||
sym_op->auth.data.offset = 0;
|
||||
}
|
||||
|
@ -360,7 +362,7 @@ cperf_set_ops_aead(struct rte_crypto_op **ops,
|
|||
uint16_t nb_ops, struct rte_cryptodev_sym_session *sess,
|
||||
const struct cperf_options *options,
|
||||
const struct cperf_test_vector *test_vector,
|
||||
uint16_t iv_offset)
|
||||
uint16_t iv_offset, uint32_t *imix_idx)
|
||||
{
|
||||
uint16_t i;
|
||||
/* AAD is placed after the IV */
|
||||
|
@ -384,7 +386,12 @@ cperf_set_ops_aead(struct rte_crypto_op **ops,
|
|||
dst_buf_offset);
|
||||
|
||||
/* AEAD parameters */
|
||||
sym_op->aead.data.length = options->test_buffer_size;
|
||||
if (options->imix_distribution_count) {
|
||||
sym_op->aead.data.length =
|
||||
options->imix_buffer_sizes[*imix_idx];
|
||||
*imix_idx = (*imix_idx + 1) % options->pool_sz;
|
||||
} else
|
||||
sym_op->aead.data.length = options->test_buffer_size;
|
||||
sym_op->aead.data.offset = 0;
|
||||
|
||||
sym_op->aead.aad.data = rte_crypto_op_ctod_offset(ops[i],
|
||||
|
|
|
@ -1,33 +1,5 @@
|
|||
/*-
|
||||
* BSD LICENSE
|
||||
*
|
||||
* Copyright(c) 2016-2017 Intel Corporation. All rights reserved.
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
* modification, are permitted provided that the following conditions
|
||||
* are met:
|
||||
*
|
||||
* * Redistributions of source code must retain the above copyright
|
||||
* notice, this list of conditions and the following disclaimer.
|
||||
* * Redistributions in binary form must reproduce the above copyright
|
||||
* notice, this list of conditions and the following disclaimer in
|
||||
* the documentation and/or other materials provided with the
|
||||
* distribution.
|
||||
* * Neither the name of Intel Corporation nor the names of its
|
||||
* contributors may be used to endorse or promote products derived
|
||||
* from this software without specific prior written permission.
|
||||
*
|
||||
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
|
||||
* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
|
||||
* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
|
||||
* A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
|
||||
* OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
|
||||
* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
|
||||
* LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
|
||||
* DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
|
||||
* THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
||||
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
|
||||
* OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
/* SPDX-License-Identifier: BSD-3-Clause
|
||||
* Copyright(c) 2016-2017 Intel Corporation
|
||||
*/
|
||||
|
||||
#ifndef _CPERF_OPS_
|
||||
|
@ -51,7 +23,7 @@ typedef int (*cperf_populate_ops_t)(struct rte_crypto_op **ops,
|
|||
uint16_t nb_ops, struct rte_cryptodev_sym_session *sess,
|
||||
const struct cperf_options *options,
|
||||
const struct cperf_test_vector *test_vector,
|
||||
uint16_t iv_offset);
|
||||
uint16_t iv_offset, uint32_t *imix_idx);
|
||||
|
||||
struct cperf_op_fns {
|
||||
cperf_sessions_create_t sess_create;
|
||||
|
|
|
@ -1,8 +1,12 @@
|
|||
/* SPDX-License-Identifier: BSD-3-Clause
|
||||
* Copyright(c) 2018 Intel Corporation
|
||||
*/
|
||||
|
||||
#ifndef _CPERF_OPTIONS_
|
||||
#define _CPERF_OPTIONS_
|
||||
|
||||
#include <rte_crypto.h>
|
||||
#include <rte_cryptodev.h>
|
||||
|
||||
#define CPERF_PTEST_TYPE ("ptest")
|
||||
#define CPERF_SILENT ("silent")
|
||||
|
@ -13,6 +17,7 @@
|
|||
#define CPERF_BUFFER_SIZE ("buffer-sz")
|
||||
#define CPERF_SEGMENT_SIZE ("segment-sz")
|
||||
#define CPERF_DESC_NB ("desc-nb")
|
||||
#define CPERF_IMIX ("imix")
|
||||
|
||||
#define CPERF_DEVTYPE ("devtype")
|
||||
#define CPERF_OPTYPE ("optype")
|
||||
|
@ -71,8 +76,11 @@ struct cperf_options {
|
|||
|
||||
uint32_t pool_sz;
|
||||
uint32_t total_ops;
|
||||
uint32_t headroom_sz;
|
||||
uint32_t tailroom_sz;
|
||||
uint32_t segment_sz;
|
||||
uint32_t test_buffer_size;
|
||||
uint32_t *imix_buffer_sizes;
|
||||
uint32_t nb_descriptors;
|
||||
uint16_t nb_qps;
|
||||
|
||||
|
@ -102,7 +110,7 @@ struct cperf_options {
|
|||
|
||||
uint16_t digest_sz;
|
||||
|
||||
char device_type[RTE_CRYPTODEV_NAME_LEN];
|
||||
char device_type[RTE_CRYPTODEV_NAME_MAX_LEN];
|
||||
enum cperf_op_type op_type;
|
||||
|
||||
char *test_file;
|
||||
|
@ -122,6 +130,8 @@ struct cperf_options {
|
|||
|
||||
/* pmd-cyclecount specific options */
|
||||
uint32_t pmdcc_delay;
|
||||
uint32_t imix_distribution_list[MAX_LIST];
|
||||
uint8_t imix_distribution_count;
|
||||
};
|
||||
|
||||
void
|
||||
|
|
|
@ -1,33 +1,5 @@
|
|||
/*-
|
||||
* BSD LICENSE
|
||||
*
|
||||
* Copyright(c) 2016-2017 Intel Corporation. All rights reserved.
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
* modification, are permitted provided that the following conditions
|
||||
* are met:
|
||||
*
|
||||
* * Redistributions of source code must retain the above copyright
|
||||
* notice, this list of conditions and the following disclaimer.
|
||||
* * Redistributions in binary form must reproduce the above copyright
|
||||
* notice, this list of conditions and the following disclaimer in
|
||||
* the documentation and/or other materials provided with the
|
||||
* distribution.
|
||||
* * Neither the name of Intel Corporation nor the names of its
|
||||
* contributors may be used to endorse or promote products derived
|
||||
* from this software without specific prior written permission.
|
||||
*
|
||||
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
|
||||
* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
|
||||
* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
|
||||
* A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
|
||||
* OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
|
||||
* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
|
||||
* LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
|
||||
* DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
|
||||
* THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
||||
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
|
||||
* OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
/* SPDX-License-Identifier: BSD-3-Clause
|
||||
* Copyright(c) 2016-2017 Intel Corporation
|
||||
*/
|
||||
|
||||
#include <getopt.h>
|
||||
|
@ -57,6 +29,7 @@ usage(char *progname)
|
|||
" --total-ops N: set the number of total operations performed\n"
|
||||
" --burst-sz N: set the number of packets per burst\n"
|
||||
" --buffer-sz N: set the size of a single packet\n"
|
||||
" --imix N: set the distribution of packet sizes\n"
|
||||
" --segment-sz N: set the size of the segment to use\n"
|
||||
" --desc-nb N: set number of descriptors for each crypto device\n"
|
||||
" --devtype TYPE: set crypto device type to use\n"
|
||||
|
@ -243,6 +216,8 @@ parse_list(const char *arg, uint32_t *list, uint32_t *min, uint32_t *max)
|
|||
char *token;
|
||||
uint32_t number;
|
||||
uint8_t count = 0;
|
||||
uint32_t temp_min;
|
||||
uint32_t temp_max;
|
||||
|
||||
char *copy_arg = strdup(arg);
|
||||
|
||||
|
@ -261,8 +236,8 @@ parse_list(const char *arg, uint32_t *list, uint32_t *min, uint32_t *max)
|
|||
goto err_list;
|
||||
|
||||
list[count++] = number;
|
||||
*min = number;
|
||||
*max = number;
|
||||
temp_min = number;
|
||||
temp_max = number;
|
||||
} else
|
||||
goto err_list;
|
||||
|
||||
|
@ -283,14 +258,19 @@ parse_list(const char *arg, uint32_t *list, uint32_t *min, uint32_t *max)
|
|||
|
||||
list[count++] = number;
|
||||
|
||||
if (number < *min)
|
||||
*min = number;
|
||||
if (number > *max)
|
||||
*max = number;
|
||||
if (number < temp_min)
|
||||
temp_min = number;
|
||||
if (number > temp_max)
|
||||
temp_max = number;
|
||||
|
||||
token = strtok(NULL, ",");
|
||||
}
|
||||
|
||||
if (min)
|
||||
*min = temp_min;
|
||||
if (max)
|
||||
*max = temp_max;
|
||||
|
||||
free(copy_arg);
|
||||
return count;
|
||||
|
||||
|
@ -386,6 +366,29 @@ parse_segment_sz(struct cperf_options *opts, const char *arg)
|
|||
return 0;
|
||||
}
|
||||
|
||||
static int
|
||||
parse_imix(struct cperf_options *opts, const char *arg)
|
||||
{
|
||||
int ret;
|
||||
|
||||
ret = parse_list(arg, opts->imix_distribution_list,
|
||||
NULL, NULL);
|
||||
if (ret < 0) {
|
||||
RTE_LOG(ERR, USER1, "failed to parse imix distribution\n");
|
||||
return -1;
|
||||
}
|
||||
|
||||
opts->imix_distribution_count = ret;
|
||||
|
||||
if (opts->imix_distribution_count <= 1) {
|
||||
RTE_LOG(ERR, USER1, "imix distribution should have "
|
||||
"at least two entries\n");
|
||||
return -1;
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
static int
|
||||
parse_desc_nb(struct cperf_options *opts, const char *arg)
|
||||
{
|
||||
|
@ -722,6 +725,7 @@ static struct option lgopts[] = {
|
|||
{ CPERF_SEGMENT_SIZE, required_argument, 0, 0 },
|
||||
{ CPERF_DESC_NB, required_argument, 0, 0 },
|
||||
|
||||
{ CPERF_IMIX, required_argument, 0, 0 },
|
||||
{ CPERF_DEVTYPE, required_argument, 0, 0 },
|
||||
{ CPERF_OPTYPE, required_argument, 0, 0 },
|
||||
|
||||
|
@ -786,6 +790,7 @@ cperf_options_default(struct cperf_options *opts)
|
|||
*/
|
||||
opts->segment_sz = 0;
|
||||
|
||||
opts->imix_distribution_count = 0;
|
||||
strncpy(opts->device_type, "crypto_aesni_mb",
|
||||
sizeof(opts->device_type));
|
||||
opts->nb_qps = 1;
|
||||
|
@ -835,6 +840,7 @@ cperf_opts_parse_long(int opt_idx, struct cperf_options *opts)
|
|||
{ CPERF_OPTYPE, parse_op_type },
|
||||
{ CPERF_SESSIONLESS, parse_sessionless },
|
||||
{ CPERF_OUT_OF_PLACE, parse_out_of_place },
|
||||
{ CPERF_IMIX, parse_imix },
|
||||
{ CPERF_TEST_FILE, parse_test_file },
|
||||
{ CPERF_TEST_NAME, parse_test_name },
|
||||
{ CPERF_CIPHER_ALGO, parse_cipher_algo },
|
||||
|
@ -973,6 +979,14 @@ cperf_options_check(struct cperf_options *options)
|
|||
return -EINVAL;
|
||||
}
|
||||
|
||||
if ((options->imix_distribution_count != 0) &&
|
||||
(options->imix_distribution_count !=
|
||||
options->buffer_size_count)) {
|
||||
RTE_LOG(ERR, USER1, "IMIX distribution must have the same "
|
||||
"number of buffer sizes\n");
|
||||
return -EINVAL;
|
||||
}
|
||||
|
||||
if (options->test == CPERF_TEST_TYPE_VERIFY &&
|
||||
options->test_file == NULL) {
|
||||
RTE_LOG(ERR, USER1, "Define path to the file with test"
|
||||
|
@ -1025,6 +1039,13 @@ cperf_options_check(struct cperf_options *options)
|
|||
return -EINVAL;
|
||||
}
|
||||
|
||||
if (options->test == CPERF_TEST_TYPE_VERIFY &&
|
||||
options->imix_distribution_count > 0) {
|
||||
RTE_LOG(ERR, USER1, "IMIX is not allowed when "
|
||||
"using the verify test.\n");
|
||||
return -EINVAL;
|
||||
}
|
||||
|
||||
if (options->op_type == CPERF_CIPHER_THEN_AUTH) {
|
||||
if (options->cipher_op != RTE_CRYPTO_CIPHER_OP_ENCRYPT &&
|
||||
options->auth_op !=
|
||||
|
|
|
@ -1,36 +1,9 @@
|
|||
/*-
|
||||
* BSD LICENSE
|
||||
*
|
||||
* Copyright(c) 2017 Intel Corporation. All rights reserved.
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
* modification, are permitted provided that the following conditions
|
||||
* are met:
|
||||
*
|
||||
* * Redistributions of source code must retain the above copyright
|
||||
* notice, this list of conditions and the following disclaimer.
|
||||
* * Redistributions in binary form must reproduce the above copyright
|
||||
* notice, this list of conditions and the following disclaimer in
|
||||
* the documentation and/or other materials provided with the
|
||||
* distribution.
|
||||
* * Neither the name of Intel Corporation nor the names of its
|
||||
* contributors may be used to endorse or promote products derived
|
||||
* from this software without specific prior written permission.
|
||||
*
|
||||
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
|
||||
* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
|
||||
* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
|
||||
* A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
|
||||
* OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
|
||||
* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
|
||||
* LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
|
||||
* DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
|
||||
* THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
||||
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
|
||||
* OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
/* SPDX-License-Identifier: BSD-3-Clause
|
||||
* Copyright(c) 2017 Intel Corporation
|
||||
*/
|
||||
|
||||
#include <rte_malloc.h>
|
||||
#include <rte_mbuf_pool_ops.h>
|
||||
|
||||
#include "cperf_test_common.h"
|
||||
|
||||
|
@ -38,12 +11,15 @@ struct obj_params {
|
|||
uint32_t src_buf_offset;
|
||||
uint32_t dst_buf_offset;
|
||||
uint16_t segment_sz;
|
||||
uint16_t headroom_sz;
|
||||
uint16_t data_len;
|
||||
uint16_t segments_nb;
|
||||
};
|
||||
|
||||
static void
|
||||
fill_single_seg_mbuf(struct rte_mbuf *m, struct rte_mempool *mp,
|
||||
void *obj, uint32_t mbuf_offset, uint16_t segment_sz)
|
||||
void *obj, uint32_t mbuf_offset, uint16_t segment_sz,
|
||||
uint16_t headroom, uint16_t data_len)
|
||||
{
|
||||
uint32_t mbuf_hdr_size = sizeof(struct rte_mbuf);
|
||||
|
||||
|
@ -53,10 +29,10 @@ fill_single_seg_mbuf(struct rte_mbuf *m, struct rte_mempool *mp,
|
|||
m->buf_iova = rte_mempool_virt2iova(obj) +
|
||||
mbuf_offset + mbuf_hdr_size;
|
||||
m->buf_len = segment_sz;
|
||||
m->data_len = segment_sz;
|
||||
m->data_len = data_len;
|
||||
|
||||
/* No headroom needed for the buffer */
|
||||
m->data_off = 0;
|
||||
/* Use headroom specified for the buffer */
|
||||
m->data_off = headroom;
|
||||
|
||||
/* init some constant fields */
|
||||
m->pool = mp;
|
||||
|
@ -69,7 +45,7 @@ fill_single_seg_mbuf(struct rte_mbuf *m, struct rte_mempool *mp,
|
|||
static void
|
||||
fill_multi_seg_mbuf(struct rte_mbuf *m, struct rte_mempool *mp,
|
||||
void *obj, uint32_t mbuf_offset, uint16_t segment_sz,
|
||||
uint16_t segments_nb)
|
||||
uint16_t headroom, uint16_t data_len, uint16_t segments_nb)
|
||||
{
|
||||
uint16_t mbuf_hdr_size = sizeof(struct rte_mbuf);
|
||||
uint16_t remaining_segments = segments_nb;
|
||||
|
@ -84,10 +60,10 @@ fill_multi_seg_mbuf(struct rte_mbuf *m, struct rte_mempool *mp,
|
|||
m->buf_iova = next_seg_phys_addr;
|
||||
next_seg_phys_addr += mbuf_hdr_size + segment_sz;
|
||||
m->buf_len = segment_sz;
|
||||
m->data_len = segment_sz;
|
||||
m->data_len = data_len;
|
||||
|
||||
/* No headroom needed for the buffer */
|
||||
m->data_off = 0;
|
||||
/* Use headroom specified for the buffer */
|
||||
m->data_off = headroom;
|
||||
|
||||
/* init some constant fields */
|
||||
m->pool = mp;
|
||||
|
@ -126,10 +102,12 @@ mempool_obj_init(struct rte_mempool *mp,
|
|||
op->sym->m_src = m;
|
||||
if (params->segments_nb == 1)
|
||||
fill_single_seg_mbuf(m, mp, obj, params->src_buf_offset,
|
||||
params->segment_sz);
|
||||
params->segment_sz, params->headroom_sz,
|
||||
params->data_len);
|
||||
else
|
||||
fill_multi_seg_mbuf(m, mp, obj, params->src_buf_offset,
|
||||
params->segment_sz, params->segments_nb);
|
||||
params->segment_sz, params->headroom_sz,
|
||||
params->data_len, params->segments_nb);
|
||||
|
||||
|
||||
/* Set destination buffer */
|
||||
|
@ -137,7 +115,8 @@ mempool_obj_init(struct rte_mempool *mp,
|
|||
m = (struct rte_mbuf *) ((uint8_t *) obj +
|
||||
params->dst_buf_offset);
|
||||
fill_single_seg_mbuf(m, mp, obj, params->dst_buf_offset,
|
||||
params->segment_sz);
|
||||
params->segment_sz, params->headroom_sz,
|
||||
params->data_len);
|
||||
op->sym->m_dst = m;
|
||||
} else
|
||||
op->sym->m_dst = NULL;
|
||||
|
@ -152,6 +131,7 @@ cperf_alloc_common_memory(const struct cperf_options *options,
|
|||
uint32_t *dst_buf_offset,
|
||||
struct rte_mempool **pool)
|
||||
{
|
||||
const char *mp_ops_name;
|
||||
char pool_name[32] = "";
|
||||
int ret;
|
||||
|
||||
|
@ -198,6 +178,11 @@ cperf_alloc_common_memory(const struct cperf_options *options,
|
|||
|
||||
struct obj_params params = {
|
||||
.segment_sz = options->segment_sz,
|
||||
.headroom_sz = options->headroom_sz,
|
||||
/* Data len = segment size - (headroom + tailroom) */
|
||||
.data_len = options->segment_sz -
|
||||
options->headroom_sz -
|
||||
options->tailroom_sz,
|
||||
.segments_nb = segments_nb,
|
||||
.src_buf_offset = crypto_op_total_size_padded,
|
||||
.dst_buf_offset = 0
|
||||
|
@ -221,8 +206,10 @@ cperf_alloc_common_memory(const struct cperf_options *options,
|
|||
return -1;
|
||||
}
|
||||
|
||||
mp_ops_name = rte_mbuf_best_mempool_ops();
|
||||
|
||||
ret = rte_mempool_set_ops_byname(*pool,
|
||||
RTE_MBUF_DEFAULT_MEMPOOL_OPS, NULL);
|
||||
mp_ops_name, NULL);
|
||||
if (ret != 0) {
|
||||
RTE_LOG(ERR, USER1,
|
||||
"Error setting mempool handler for device %u\n",
|
||||
|
|
|
@ -1,33 +1,5 @@
|
|||
/*-
|
||||
* BSD LICENSE
|
||||
*
|
||||
* Copyright(c) 2017 Intel Corporation. All rights reserved.
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
* modification, are permitted provided that the following conditions
|
||||
* are met:
|
||||
*
|
||||
* * Redistributions of source code must retain the above copyright
|
||||
* notice, this list of conditions and the following disclaimer.
|
||||
* * Redistributions in binary form must reproduce the above copyright
|
||||
* notice, this list of conditions and the following disclaimer in
|
||||
* the documentation and/or other materials provided with the
|
||||
* distribution.
|
||||
* * Neither the name of Intel Corporation nor the names of its
|
||||
* contributors may be used to endorse or promote products derived
|
||||
* from this software without specific prior written permission.
|
||||
*
|
||||
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
|
||||
* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
|
||||
* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
|
||||
* A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
|
||||
* OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
|
||||
* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
|
||||
* LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
|
||||
* DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
|
||||
* THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
||||
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
|
||||
* OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
/* SPDX-License-Identifier: BSD-3-Clause
|
||||
* Copyright(c) 2017 Intel Corporation
|
||||
*/
|
||||
|
||||
#ifndef _CPERF_TEST_COMMON_H_
|
||||
|
|
|
@ -1,33 +1,5 @@
|
|||
/*-
|
||||
* BSD LICENSE
|
||||
*
|
||||
* Copyright(c) 2016-2017 Intel Corporation. All rights reserved.
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
* modification, are permitted provided that the following conditions
|
||||
* are met:
|
||||
*
|
||||
* * Redistributions of source code must retain the above copyright
|
||||
* notice, this list of conditions and the following disclaimer.
|
||||
* * Redistributions in binary form must reproduce the above copyright
|
||||
* notice, this list of conditions and the following disclaimer in
|
||||
* the documentation and/or other materials provided with the
|
||||
* distribution.
|
||||
* * Neither the name of Intel Corporation nor the names of its
|
||||
* contributors may be used to endorse or promote products derived
|
||||
* from this software without specific prior written permission.
|
||||
*
|
||||
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
|
||||
* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
|
||||
* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
|
||||
* A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
|
||||
* OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
|
||||
* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
|
||||
* LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
|
||||
* DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
|
||||
* THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
||||
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
|
||||
* OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
/* SPDX-License-Identifier: BSD-3-Clause
|
||||
* Copyright(c) 2016-2017 Intel Corporation
|
||||
*/
|
||||
|
||||
#include <rte_malloc.h>
|
||||
|
@ -154,6 +126,7 @@ cperf_latency_test_runner(void *arg)
|
|||
struct cperf_latency_ctx *ctx = arg;
|
||||
uint16_t test_burst_size;
|
||||
uint8_t burst_size_idx = 0;
|
||||
uint32_t imix_idx = 0;
|
||||
|
||||
static int only_once;
|
||||
|
||||
|
@ -218,7 +191,7 @@ cperf_latency_test_runner(void *arg)
|
|||
burst_size) != 0) {
|
||||
RTE_LOG(ERR, USER1,
|
||||
"Failed to allocate more crypto operations "
|
||||
"from the the crypto operation pool.\n"
|
||||
"from the crypto operation pool.\n"
|
||||
"Consider increasing the pool size "
|
||||
"with --pool-sz\n");
|
||||
return -1;
|
||||
|
@ -228,7 +201,8 @@ cperf_latency_test_runner(void *arg)
|
|||
(ctx->populate_ops)(ops, ctx->src_buf_offset,
|
||||
ctx->dst_buf_offset,
|
||||
burst_size, ctx->sess, ctx->options,
|
||||
ctx->test_vector, iv_offset);
|
||||
ctx->test_vector, iv_offset,
|
||||
&imix_idx);
|
||||
|
||||
tsc_start = rte_rdtsc_precise();
|
||||
|
||||
|
|
|
@ -1,33 +1,5 @@
|
|||
/*-
|
||||
* BSD LICENSE
|
||||
*
|
||||
* Copyright(c) 2016-2017 Intel Corporation. All rights reserved.
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
* modification, are permitted provided that the following conditions
|
||||
* are met:
|
||||
*
|
||||
* * Redistributions of source code must retain the above copyright
|
||||
* notice, this list of conditions and the following disclaimer.
|
||||
* * Redistributions in binary form must reproduce the above copyright
|
||||
* notice, this list of conditions and the following disclaimer in
|
||||
* the documentation and/or other materials provided with the
|
||||
* distribution.
|
||||
* * Neither the name of Intel Corporation nor the names of its
|
||||
* contributors may be used to endorse or promote products derived
|
||||
* from this software without specific prior written permission.
|
||||
*
|
||||
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
|
||||
* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
|
||||
* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
|
||||
* A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
|
||||
* OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
|
||||
* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
|
||||
* LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
|
||||
* DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
|
||||
* THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
||||
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
|
||||
* OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
/* SPDX-License-Identifier: BSD-3-Clause
|
||||
* Copyright(c) 2016-2017 Intel Corporation
|
||||
*/
|
||||
|
||||
#ifndef _CPERF_LATENCY_
|
||||
|
|
|
@ -1,33 +1,5 @@
|
|||
/*-
|
||||
* BSD LICENSE
|
||||
*
|
||||
* Copyright(c) 2017 Intel Corporation. All rights reserved.
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
* modification, are permitted provided that the following conditions
|
||||
* are met:
|
||||
*
|
||||
* * Redistributions of source code must retain the above copyright
|
||||
* notice, this list of conditions and the following disclaimer.
|
||||
* * Redistributions in binary form must reproduce the above copyright
|
||||
* notice, this list of conditions and the following disclaimer in
|
||||
* the documentation and/or other materials provided with the
|
||||
* distribution.
|
||||
* * Neither the name of Intel Corporation nor the names of its
|
||||
* contributors may be used to endorse or promote products derived
|
||||
* from this software without specific prior written permission.
|
||||
*
|
||||
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
|
||||
* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
|
||||
* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
|
||||
* A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
|
||||
* OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
|
||||
* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
|
||||
* LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
|
||||
* DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
|
||||
* THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
||||
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
|
||||
* OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
/* SPDX-License-Identifier: BSD-3-Clause
|
||||
* Copyright(c) 2017 Intel Corporation
|
||||
*/
|
||||
|
||||
#include <stdbool.h>
|
||||
|
@ -169,10 +141,11 @@ pmd_cyclecount_bench_ops(struct pmd_cyclecount_state *state, uint32_t cur_op,
|
|||
uint32_t iter_ops_needed =
|
||||
RTE_MIN(state->opts->nb_descriptors, iter_ops_left);
|
||||
uint32_t cur_iter_op;
|
||||
uint32_t imix_idx = 0;
|
||||
|
||||
for (cur_iter_op = 0; cur_iter_op < iter_ops_needed;
|
||||
cur_iter_op += test_burst_size) {
|
||||
uint32_t burst_size = RTE_MIN(state->opts->total_ops - cur_op,
|
||||
uint32_t burst_size = RTE_MIN(iter_ops_needed - cur_iter_op,
|
||||
test_burst_size);
|
||||
struct rte_crypto_op **ops = &state->ctx->ops[cur_iter_op];
|
||||
|
||||
|
@ -181,7 +154,7 @@ pmd_cyclecount_bench_ops(struct pmd_cyclecount_state *state, uint32_t cur_op,
|
|||
burst_size) != 0) {
|
||||
RTE_LOG(ERR, USER1,
|
||||
"Failed to allocate more crypto operations "
|
||||
"from the the crypto operation pool.\n"
|
||||
"from the crypto operation pool.\n"
|
||||
"Consider increasing the pool size "
|
||||
"with --pool-sz\n");
|
||||
return -1;
|
||||
|
@ -193,7 +166,8 @@ pmd_cyclecount_bench_ops(struct pmd_cyclecount_state *state, uint32_t cur_op,
|
|||
state->ctx->dst_buf_offset,
|
||||
burst_size,
|
||||
state->ctx->sess, state->opts,
|
||||
state->ctx->test_vector, iv_offset);
|
||||
state->ctx->test_vector, iv_offset,
|
||||
&imix_idx);
|
||||
|
||||
#ifdef CPERF_LINEARIZATION_ENABLE
|
||||
/* Check if source mbufs require coalescing */
|
||||
|
@ -218,6 +192,7 @@ pmd_cyclecount_build_ops(struct pmd_cyclecount_state *state,
|
|||
uint32_t iter_ops_needed, uint16_t test_burst_size)
|
||||
{
|
||||
uint32_t cur_iter_op;
|
||||
uint32_t imix_idx = 0;
|
||||
|
||||
for (cur_iter_op = 0; cur_iter_op < iter_ops_needed;
|
||||
cur_iter_op += test_burst_size) {
|
||||
|
@ -230,7 +205,7 @@ pmd_cyclecount_build_ops(struct pmd_cyclecount_state *state,
|
|||
burst_size) != 0) {
|
||||
RTE_LOG(ERR, USER1,
|
||||
"Failed to allocate more crypto operations "
|
||||
"from the the crypto operation pool.\n"
|
||||
"from the crypto operation pool.\n"
|
||||
"Consider increasing the pool size "
|
||||
"with --pool-sz\n");
|
||||
return -1;
|
||||
|
@ -242,7 +217,8 @@ pmd_cyclecount_build_ops(struct pmd_cyclecount_state *state,
|
|||
state->ctx->dst_buf_offset,
|
||||
burst_size,
|
||||
state->ctx->sess, state->opts,
|
||||
state->ctx->test_vector, iv_offset);
|
||||
state->ctx->test_vector, iv_offset,
|
||||
&imix_idx);
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
|
|
@ -1,33 +1,5 @@
|
|||
/*-
|
||||
* BSD LICENSE
|
||||
*
|
||||
* Copyright(c) 2017 Intel Corporation. All rights reserved.
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
* modification, are permitted provided that the following conditions
|
||||
* are met:
|
||||
*
|
||||
* * Redistributions of source code must retain the above copyright
|
||||
* notice, this list of conditions and the following disclaimer.
|
||||
* * Redistributions in binary form must reproduce the above copyright
|
||||
* notice, this list of conditions and the following disclaimer in
|
||||
* the documentation and/or other materials provided with the
|
||||
* distribution.
|
||||
* * Neither the name of Intel Corporation nor the names of its
|
||||
* contributors may be used to endorse or promote products derived
|
||||
* from this software without specific prior written permission.
|
||||
*
|
||||
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
|
||||
* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
|
||||
* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
|
||||
* A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
|
||||
* OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
|
||||
* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
|
||||
* LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
|
||||
* DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
|
||||
* THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
||||
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
|
||||
* OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
/* SPDX-License-Identifier: BSD-3-Clause
|
||||
* Copyright(c) 2017 Intel Corporation
|
||||
*/
|
||||
|
||||
#ifndef _CPERF_TEST_PMD_CYCLECOUNT_H_
|
||||
|
|
|
@ -1,33 +1,5 @@
|
|||
/*-
|
||||
* BSD LICENSE
|
||||
*
|
||||
* Copyright(c) 2016-2017 Intel Corporation. All rights reserved.
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
* modification, are permitted provided that the following conditions
|
||||
* are met:
|
||||
*
|
||||
* * Redistributions of source code must retain the above copyright
|
||||
* notice, this list of conditions and the following disclaimer.
|
||||
* * Redistributions in binary form must reproduce the above copyright
|
||||
* notice, this list of conditions and the following disclaimer in
|
||||
* the documentation and/or other materials provided with the
|
||||
* distribution.
|
||||
* * Neither the name of Intel Corporation nor the names of its
|
||||
* contributors may be used to endorse or promote products derived
|
||||
* from this software without specific prior written permission.
|
||||
*
|
||||
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
|
||||
* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
|
||||
* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
|
||||
* A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
|
||||
* OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
|
||||
* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
|
||||
* LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
|
||||
* DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
|
||||
* THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
||||
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
|
||||
* OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
/* SPDX-License-Identifier: BSD-3-Clause
|
||||
* Copyright(c) 2016-2017 Intel Corporation
|
||||
*/
|
||||
|
||||
#include <rte_malloc.h>
|
||||
|
@ -120,6 +92,7 @@ cperf_throughput_test_runner(void *test_ctx)
|
|||
struct cperf_throughput_ctx *ctx = test_ctx;
|
||||
uint16_t test_burst_size;
|
||||
uint8_t burst_size_idx = 0;
|
||||
uint32_t imix_idx = 0;
|
||||
|
||||
static int only_once;
|
||||
|
||||
|
@ -182,7 +155,7 @@ cperf_throughput_test_runner(void *test_ctx)
|
|||
ops_needed) != 0) {
|
||||
RTE_LOG(ERR, USER1,
|
||||
"Failed to allocate more crypto operations "
|
||||
"from the the crypto operation pool.\n"
|
||||
"from the crypto operation pool.\n"
|
||||
"Consider increasing the pool size "
|
||||
"with --pool-sz\n");
|
||||
return -1;
|
||||
|
@ -193,7 +166,7 @@ cperf_throughput_test_runner(void *test_ctx)
|
|||
ctx->dst_buf_offset,
|
||||
ops_needed, ctx->sess,
|
||||
ctx->options, ctx->test_vector,
|
||||
iv_offset);
|
||||
iv_offset, &imix_idx);
|
||||
|
||||
/**
|
||||
* When ops_needed is smaller than ops_enqd, the
|
||||
|
|
|
@ -1,33 +1,5 @@
|
|||
/*-
|
||||
* BSD LICENSE
|
||||
*
|
||||
* Copyright(c) 2016-2017 Intel Corporation. All rights reserved.
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
* modification, are permitted provided that the following conditions
|
||||
* are met:
|
||||
*
|
||||
* * Redistributions of source code must retain the above copyright
|
||||
* notice, this list of conditions and the following disclaimer.
|
||||
* * Redistributions in binary form must reproduce the above copyright
|
||||
* notice, this list of conditions and the following disclaimer in
|
||||
* the documentation and/or other materials provided with the
|
||||
* distribution.
|
||||
* * Neither the name of Intel Corporation nor the names of its
|
||||
* contributors may be used to endorse or promote products derived
|
||||
* from this software without specific prior written permission.
|
||||
*
|
||||
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
|
||||
* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
|
||||
* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
|
||||
* A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
|
||||
* OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
|
||||
* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
|
||||
* LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
|
||||
* DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
|
||||
* THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
||||
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
|
||||
* OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
/* SPDX-License-Identifier: BSD-3-Clause
|
||||
* Copyright(c) 2016-2017 Intel Corporation
|
||||
*/
|
||||
|
||||
#ifndef _CPERF_THROUGHPUT_
|
||||
|
|
|
@ -1,33 +1,5 @@
|
|||
/*-
|
||||
* BSD LICENSE
|
||||
*
|
||||
* Copyright(c) 2016-2017 Intel Corporation. All rights reserved.
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
* modification, are permitted provided that the following conditions
|
||||
* are met:
|
||||
*
|
||||
* * Redistributions of source code must retain the above copyright
|
||||
* notice, this list of conditions and the following disclaimer.
|
||||
* * Redistributions in binary form must reproduce the above copyright
|
||||
* notice, this list of conditions and the following disclaimer in
|
||||
* the documentation and/or other materials provided with the
|
||||
* distribution.
|
||||
* * Neither the name of Intel Corporation nor the names of its
|
||||
* contributors may be used to endorse or promote products derived
|
||||
* from this software without specific prior written permission.
|
||||
*
|
||||
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
|
||||
* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
|
||||
* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
|
||||
* A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
|
||||
* OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
|
||||
* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
|
||||
* LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
|
||||
* DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
|
||||
* THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
||||
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
|
||||
* OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
/* SPDX-License-Identifier: BSD-3-Clause
|
||||
* Copyright(c) 2016-2017 Intel Corporation
|
||||
*/
|
||||
#ifdef RTE_EXEC_ENV_BSDAPP
|
||||
#define _WITH_GETLINE
|
||||
|
|
|
@ -1,33 +1,5 @@
|
|||
/*-
|
||||
* BSD LICENSE
|
||||
*
|
||||
* Copyright(c) 2016-2017 Intel Corporation. All rights reserved.
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
* modification, are permitted provided that the following conditions
|
||||
* are met:
|
||||
*
|
||||
* * Redistributions of source code must retain the above copyright
|
||||
* notice, this list of conditions and the following disclaimer.
|
||||
* * Redistributions in binary form must reproduce the above copyright
|
||||
* notice, this list of conditions and the following disclaimer in
|
||||
* the documentation and/or other materials provided with the
|
||||
* distribution.
|
||||
* * Neither the name of Intel Corporation nor the names of its
|
||||
* contributors may be used to endorse or promote products derived
|
||||
* from this software without specific prior written permission.
|
||||
*
|
||||
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
|
||||
* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
|
||||
* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
|
||||
* A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
|
||||
* OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
|
||||
* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
|
||||
* LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
|
||||
* DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
|
||||
* THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
||||
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
|
||||
* OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
/* SPDX-License-Identifier: BSD-3-Clause
|
||||
* Copyright(c) 2016-2017 Intel Corporation
|
||||
*/
|
||||
|
||||
#ifndef APP_CRYPTO_PERF_CPERF_TEST_VECTOR_PARSING_H_
|
||||
|
|
|
@ -1,33 +1,5 @@
|
|||
/*-
|
||||
* BSD LICENSE
|
||||
*
|
||||
* Copyright(c) 2016-2017 Intel Corporation. All rights reserved.
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
* modification, are permitted provided that the following conditions
|
||||
* are met:
|
||||
*
|
||||
* * Redistributions of source code must retain the above copyright
|
||||
* notice, this list of conditions and the following disclaimer.
|
||||
* * Redistributions in binary form must reproduce the above copyright
|
||||
* notice, this list of conditions and the following disclaimer in
|
||||
* the documentation and/or other materials provided with the
|
||||
* distribution.
|
||||
* * Neither the name of Intel Corporation nor the names of its
|
||||
* contributors may be used to endorse or promote products derived
|
||||
* from this software without specific prior written permission.
|
||||
*
|
||||
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
|
||||
* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
|
||||
* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
|
||||
* A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
|
||||
* OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
|
||||
* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
|
||||
* LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
|
||||
* DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
|
||||
* THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
||||
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
|
||||
* OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
/* SPDX-License-Identifier: BSD-3-Clause
|
||||
* Copyright(c) 2016-2017 Intel Corporation
|
||||
*/
|
||||
|
||||
#include <rte_crypto.h>
|
||||
|
@ -447,13 +419,19 @@ cperf_test_vector_get_dummy(struct cperf_options *options)
|
|||
t_vec->cipher_key.length = 0;
|
||||
t_vec->ciphertext.data = plaintext;
|
||||
t_vec->cipher_key.data = NULL;
|
||||
t_vec->cipher_iv.data = NULL;
|
||||
} else {
|
||||
t_vec->cipher_key.length = options->cipher_key_sz;
|
||||
t_vec->ciphertext.data = ciphertext;
|
||||
t_vec->cipher_key.data = cipher_key;
|
||||
t_vec->cipher_iv.data = rte_malloc(NULL, options->cipher_iv_sz,
|
||||
16);
|
||||
}
|
||||
|
||||
/* Init IV data ptr */
|
||||
t_vec->cipher_iv.data = NULL;
|
||||
|
||||
if (options->cipher_iv_sz != 0) {
|
||||
/* Set IV parameters */
|
||||
t_vec->cipher_iv.data = rte_malloc(NULL,
|
||||
options->cipher_iv_sz, 16);
|
||||
if (t_vec->cipher_iv.data == NULL) {
|
||||
rte_free(t_vec);
|
||||
return NULL;
|
||||
|
@ -461,17 +439,7 @@ cperf_test_vector_get_dummy(struct cperf_options *options)
|
|||
memcpy(t_vec->cipher_iv.data, iv, options->cipher_iv_sz);
|
||||
}
|
||||
t_vec->ciphertext.length = options->max_buffer_size;
|
||||
|
||||
/* Set IV parameters */
|
||||
t_vec->cipher_iv.data = rte_malloc(NULL, options->cipher_iv_sz,
|
||||
16);
|
||||
if (options->cipher_iv_sz && t_vec->cipher_iv.data == NULL) {
|
||||
rte_free(t_vec);
|
||||
return NULL;
|
||||
}
|
||||
memcpy(t_vec->cipher_iv.data, iv, options->cipher_iv_sz);
|
||||
t_vec->cipher_iv.length = options->cipher_iv_sz;
|
||||
|
||||
t_vec->data.cipher_offset = 0;
|
||||
t_vec->data.cipher_length = options->max_buffer_size;
|
||||
|
||||
|
|
|
@ -1,33 +1,5 @@
|
|||
/*-
|
||||
* BSD LICENSE
|
||||
*
|
||||
* Copyright(c) 2016-2017 Intel Corporation. All rights reserved.
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
* modification, are permitted provided that the following conditions
|
||||
* are met:
|
||||
*
|
||||
* * Redistributions of source code must retain the above copyright
|
||||
* notice, this list of conditions and the following disclaimer.
|
||||
* * Redistributions in binary form must reproduce the above copyright
|
||||
* notice, this list of conditions and the following disclaimer in
|
||||
* the documentation and/or other materials provided with the
|
||||
* distribution.
|
||||
* * Neither the name of Intel Corporation nor the names of its
|
||||
* contributors may be used to endorse or promote products derived
|
||||
* from this software without specific prior written permission.
|
||||
*
|
||||
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
|
||||
* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
|
||||
* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
|
||||
* A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
|
||||
* OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
|
||||
* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
|
||||
* LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
|
||||
* DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
|
||||
* THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
||||
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
|
||||
* OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
/* SPDX-License-Identifier: BSD-3-Clause
|
||||
* Copyright(c) 2016-2017 Intel Corporation
|
||||
*/
|
||||
|
||||
#ifndef _CPERF_TEST_VECTRORS_
|
||||
|
|
|
@ -1,33 +1,5 @@
|
|||
/*-
|
||||
* BSD LICENSE
|
||||
*
|
||||
* Copyright(c) 2016-2017 Intel Corporation. All rights reserved.
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
* modification, are permitted provided that the following conditions
|
||||
* are met:
|
||||
*
|
||||
* * Redistributions of source code must retain the above copyright
|
||||
* notice, this list of conditions and the following disclaimer.
|
||||
* * Redistributions in binary form must reproduce the above copyright
|
||||
* notice, this list of conditions and the following disclaimer in
|
||||
* the documentation and/or other materials provided with the
|
||||
* distribution.
|
||||
* * Neither the name of Intel Corporation nor the names of its
|
||||
* contributors may be used to endorse or promote products derived
|
||||
* from this software without specific prior written permission.
|
||||
*
|
||||
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
|
||||
* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
|
||||
* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
|
||||
* A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
|
||||
* OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
|
||||
* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
|
||||
* LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
|
||||
* DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
|
||||
* THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
||||
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
|
||||
* OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
/* SPDX-License-Identifier: BSD-3-Clause
|
||||
* Copyright(c) 2016-2017 Intel Corporation
|
||||
*/
|
||||
|
||||
#include <rte_malloc.h>
|
||||
|
@ -264,6 +236,7 @@ cperf_verify_test_runner(void *test_ctx)
|
|||
|
||||
uint64_t i;
|
||||
uint16_t ops_unused = 0;
|
||||
uint32_t imix_idx = 0;
|
||||
|
||||
struct rte_crypto_op *ops[ctx->options->max_burst_size];
|
||||
struct rte_crypto_op *ops_processed[ctx->options->max_burst_size];
|
||||
|
@ -307,7 +280,7 @@ cperf_verify_test_runner(void *test_ctx)
|
|||
ops_needed) != 0) {
|
||||
RTE_LOG(ERR, USER1,
|
||||
"Failed to allocate more crypto operations "
|
||||
"from the the crypto operation pool.\n"
|
||||
"from the crypto operation pool.\n"
|
||||
"Consider increasing the pool size "
|
||||
"with --pool-sz\n");
|
||||
return -1;
|
||||
|
@ -317,7 +290,7 @@ cperf_verify_test_runner(void *test_ctx)
|
|||
(ctx->populate_ops)(ops, ctx->src_buf_offset,
|
||||
ctx->dst_buf_offset,
|
||||
ops_needed, ctx->sess, ctx->options,
|
||||
ctx->test_vector, iv_offset);
|
||||
ctx->test_vector, iv_offset, &imix_idx);
|
||||
|
||||
|
||||
/* Populate the mbuf with the test vector, for verification */
|
||||
|
|
|
@ -1,33 +1,5 @@
|
|||
/*-
|
||||
* BSD LICENSE
|
||||
*
|
||||
* Copyright(c) 2016-2017 Intel Corporation. All rights reserved.
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
* modification, are permitted provided that the following conditions
|
||||
* are met:
|
||||
*
|
||||
* * Redistributions of source code must retain the above copyright
|
||||
* notice, this list of conditions and the following disclaimer.
|
||||
* * Redistributions in binary form must reproduce the above copyright
|
||||
* notice, this list of conditions and the following disclaimer in
|
||||
* the documentation and/or other materials provided with the
|
||||
* distribution.
|
||||
* * Neither the name of Intel Corporation nor the names of its
|
||||
* contributors may be used to endorse or promote products derived
|
||||
* from this software without specific prior written permission.
|
||||
*
|
||||
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
|
||||
* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
|
||||
* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
|
||||
* A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
|
||||
* OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
|
||||
* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
|
||||
* LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
|
||||
* DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
|
||||
* THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
||||
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
|
||||
* OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
/* SPDX-License-Identifier: BSD-3-Clause
|
||||
* Copyright(c) 2016-2017 Intel Corporation
|
||||
*/
|
||||
|
||||
#ifndef _CPERF_VERIFY_
|
||||
|
|
|
@ -1,38 +1,12 @@
|
|||
/*-
|
||||
* BSD LICENSE
|
||||
*
|
||||
* Copyright(c) 2016-2017 Intel Corporation. All rights reserved.
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
* modification, are permitted provided that the following conditions
|
||||
* are met:
|
||||
*
|
||||
* * Redistributions of source code must retain the above copyright
|
||||
* notice, this list of conditions and the following disclaimer.
|
||||
* * Redistributions in binary form must reproduce the above copyright
|
||||
* notice, this list of conditions and the following disclaimer in
|
||||
* the documentation and/or other materials provided with the
|
||||
* distribution.
|
||||
* * Neither the name of Intel Corporation nor the names of its
|
||||
* contributors may be used to endorse or promote products derived
|
||||
* from this software without specific prior written permission.
|
||||
*
|
||||
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
|
||||
* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
|
||||
* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
|
||||
* A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
|
||||
* OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
|
||||
* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
|
||||
* LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
|
||||
* DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
|
||||
* THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
||||
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
|
||||
* OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
/* SPDX-License-Identifier: BSD-3-Clause
|
||||
* Copyright(c) 2016-2017 Intel Corporation
|
||||
*/
|
||||
|
||||
#include <stdio.h>
|
||||
#include <unistd.h>
|
||||
|
||||
#include <rte_malloc.h>
|
||||
#include <rte_random.h>
|
||||
#include <rte_eal.h>
|
||||
#include <rte_cryptodev.h>
|
||||
#ifdef RTE_LIBRTE_PMD_CRYPTO_SCHEDULER
|
||||
|
@ -47,8 +21,6 @@
|
|||
#include "cperf_test_verify.h"
|
||||
#include "cperf_test_pmd_cyclecount.h"
|
||||
|
||||
#define NUM_SESSIONS 2048
|
||||
#define SESS_MEMPOOL_CACHE_SIZE 64
|
||||
|
||||
const char *cperf_test_type_strs[] = {
|
||||
[CPERF_TEST_TYPE_THROUGHPUT] = "throughput",
|
||||
|
@ -93,6 +65,7 @@ cperf_initialize_cryptodev(struct cperf_options *opts, uint8_t *enabled_cdevs,
|
|||
struct rte_mempool *session_pool_socket[])
|
||||
{
|
||||
uint8_t enabled_cdev_count = 0, nb_lcores, cdev_id;
|
||||
uint32_t sessions_needed = 0;
|
||||
unsigned int i, j;
|
||||
int ret;
|
||||
|
||||
|
@ -123,7 +96,7 @@ cperf_initialize_cryptodev(struct cperf_options *opts, uint8_t *enabled_cdevs,
|
|||
uint32_t max_sess_size = 0, sess_size;
|
||||
|
||||
for (cdev_id = 0; cdev_id < rte_cryptodev_count(); cdev_id++) {
|
||||
sess_size = rte_cryptodev_get_private_session_size(cdev_id);
|
||||
sess_size = rte_cryptodev_sym_get_private_session_size(cdev_id);
|
||||
if (sess_size > max_sess_size)
|
||||
max_sess_size = sess_size;
|
||||
}
|
||||
|
@ -175,17 +148,62 @@ cperf_initialize_cryptodev(struct cperf_options *opts, uint8_t *enabled_cdevs,
|
|||
.nb_descriptors = opts->nb_descriptors
|
||||
};
|
||||
|
||||
/**
|
||||
* Device info specifies the min headroom and tailroom
|
||||
* requirement for the crypto PMD. This need to be honoured
|
||||
* by the application, while creating mbuf.
|
||||
*/
|
||||
if (opts->headroom_sz < cdev_info.min_mbuf_headroom_req) {
|
||||
/* Update headroom */
|
||||
opts->headroom_sz = cdev_info.min_mbuf_headroom_req;
|
||||
}
|
||||
if (opts->tailroom_sz < cdev_info.min_mbuf_tailroom_req) {
|
||||
/* Update tailroom */
|
||||
opts->tailroom_sz = cdev_info.min_mbuf_tailroom_req;
|
||||
}
|
||||
|
||||
/* Update segment size to include headroom & tailroom */
|
||||
opts->segment_sz += (opts->headroom_sz + opts->tailroom_sz);
|
||||
|
||||
uint32_t dev_max_nb_sess = cdev_info.sym.max_nb_sessions;
|
||||
/*
|
||||
* Two sessions objects are required for each session
|
||||
* (one for the header, one for the private data)
|
||||
*/
|
||||
if (!strcmp((const char *)opts->device_type,
|
||||
"crypto_scheduler")) {
|
||||
#ifdef RTE_LIBRTE_PMD_CRYPTO_SCHEDULER
|
||||
uint32_t nb_slaves =
|
||||
rte_cryptodev_scheduler_slaves_get(cdev_id,
|
||||
NULL);
|
||||
|
||||
sessions_needed = 2 * enabled_cdev_count *
|
||||
opts->nb_qps * nb_slaves;
|
||||
#endif
|
||||
} else
|
||||
sessions_needed = 2 * enabled_cdev_count *
|
||||
opts->nb_qps;
|
||||
|
||||
/*
|
||||
* A single session is required per queue pair
|
||||
* in each device
|
||||
*/
|
||||
if (dev_max_nb_sess != 0 && dev_max_nb_sess < opts->nb_qps) {
|
||||
RTE_LOG(ERR, USER1,
|
||||
"Device does not support at least "
|
||||
"%u sessions\n", opts->nb_qps);
|
||||
return -ENOTSUP;
|
||||
}
|
||||
if (session_pool_socket[socket_id] == NULL) {
|
||||
char mp_name[RTE_MEMPOOL_NAMESIZE];
|
||||
struct rte_mempool *sess_mp;
|
||||
|
||||
snprintf(mp_name, RTE_MEMPOOL_NAMESIZE,
|
||||
"sess_mp_%u", socket_id);
|
||||
|
||||
sess_mp = rte_mempool_create(mp_name,
|
||||
NUM_SESSIONS,
|
||||
sessions_needed,
|
||||
max_sess_size,
|
||||
SESS_MEMPOOL_CACHE_SIZE,
|
||||
0,
|
||||
0, NULL, NULL, NULL,
|
||||
NULL, socket_id,
|
||||
0);
|
||||
|
@ -324,7 +342,9 @@ cperf_check_test_vector(struct cperf_options *opts,
|
|||
return -1;
|
||||
if (test_vec->ciphertext.length < opts->max_buffer_size)
|
||||
return -1;
|
||||
if (test_vec->cipher_iv.data == NULL)
|
||||
/* Cipher IV is only required for some algorithms */
|
||||
if (opts->cipher_iv_sz &&
|
||||
test_vec->cipher_iv.data == NULL)
|
||||
return -1;
|
||||
if (test_vec->cipher_iv.length != opts->cipher_iv_sz)
|
||||
return -1;
|
||||
|
@ -339,7 +359,9 @@ cperf_check_test_vector(struct cperf_options *opts,
|
|||
return -1;
|
||||
if (test_vec->plaintext.length < opts->max_buffer_size)
|
||||
return -1;
|
||||
if (test_vec->auth_key.data == NULL)
|
||||
/* Auth key is only required for some algorithms */
|
||||
if (opts->auth_key_sz &&
|
||||
test_vec->auth_key.data == NULL)
|
||||
return -1;
|
||||
if (test_vec->auth_key.length != opts->auth_key_sz)
|
||||
return -1;
|
||||
|
@ -403,6 +425,10 @@ cperf_check_test_vector(struct cperf_options *opts,
|
|||
return -1;
|
||||
if (test_vec->ciphertext.length < opts->max_buffer_size)
|
||||
return -1;
|
||||
if (test_vec->aead_key.data == NULL)
|
||||
return -1;
|
||||
if (test_vec->aead_key.length != opts->aead_key_sz)
|
||||
return -1;
|
||||
if (test_vec->aead_iv.data == NULL)
|
||||
return -1;
|
||||
if (test_vec->aead_iv.length != opts->aead_iv_sz)
|
||||
|
@ -542,13 +568,45 @@ main(int argc, char **argv)
|
|||
i++;
|
||||
}
|
||||
|
||||
/* Get first size from range or list */
|
||||
if (opts.inc_buffer_size != 0)
|
||||
opts.test_buffer_size = opts.min_buffer_size;
|
||||
else
|
||||
opts.test_buffer_size = opts.buffer_size_list[0];
|
||||
if (opts.imix_distribution_count != 0) {
|
||||
uint8_t buffer_size_count = opts.buffer_size_count;
|
||||
uint16_t distribution_total[buffer_size_count];
|
||||
uint32_t op_idx;
|
||||
uint32_t test_average_size = 0;
|
||||
const uint32_t *buffer_size_list = opts.buffer_size_list;
|
||||
const uint32_t *imix_distribution_list = opts.imix_distribution_list;
|
||||
|
||||
opts.imix_buffer_sizes = rte_malloc(NULL,
|
||||
sizeof(uint32_t) * opts.pool_sz,
|
||||
0);
|
||||
/*
|
||||
* Calculate accumulated distribution of
|
||||
* probabilities per packet size
|
||||
*/
|
||||
distribution_total[0] = imix_distribution_list[0];
|
||||
for (i = 1; i < buffer_size_count; i++)
|
||||
distribution_total[i] = imix_distribution_list[i] +
|
||||
distribution_total[i-1];
|
||||
|
||||
/* Calculate a random sequence of packet sizes, based on distribution */
|
||||
for (op_idx = 0; op_idx < opts.pool_sz; op_idx++) {
|
||||
uint16_t random_number = rte_rand() %
|
||||
distribution_total[buffer_size_count - 1];
|
||||
for (i = 0; i < buffer_size_count; i++)
|
||||
if (random_number < distribution_total[i])
|
||||
break;
|
||||
|
||||
opts.imix_buffer_sizes[op_idx] = buffer_size_list[i];
|
||||
}
|
||||
|
||||
/* Calculate average buffer size for the IMIX distribution */
|
||||
for (i = 0; i < buffer_size_count; i++)
|
||||
test_average_size += buffer_size_list[i] *
|
||||
imix_distribution_list[i];
|
||||
|
||||
opts.test_buffer_size = test_average_size /
|
||||
distribution_total[buffer_size_count - 1];
|
||||
|
||||
while (opts.test_buffer_size <= opts.max_buffer_size) {
|
||||
i = 0;
|
||||
RTE_LCORE_FOREACH_SLAVE(lcore_id) {
|
||||
|
||||
|
@ -567,14 +625,43 @@ main(int argc, char **argv)
|
|||
rte_eal_wait_lcore(lcore_id);
|
||||
i++;
|
||||
}
|
||||
} else {
|
||||
|
||||
/* Get next size from range or list */
|
||||
if (opts.inc_buffer_size != 0)
|
||||
opts.test_buffer_size += opts.inc_buffer_size;
|
||||
else {
|
||||
if (++buffer_size_idx == opts.buffer_size_count)
|
||||
break;
|
||||
opts.test_buffer_size = opts.buffer_size_list[buffer_size_idx];
|
||||
opts.test_buffer_size = opts.min_buffer_size;
|
||||
else
|
||||
opts.test_buffer_size = opts.buffer_size_list[0];
|
||||
|
||||
while (opts.test_buffer_size <= opts.max_buffer_size) {
|
||||
i = 0;
|
||||
RTE_LCORE_FOREACH_SLAVE(lcore_id) {
|
||||
|
||||
if (i == total_nb_qps)
|
||||
break;
|
||||
|
||||
rte_eal_remote_launch(cperf_testmap[opts.test].runner,
|
||||
ctx[i], lcore_id);
|
||||
i++;
|
||||
}
|
||||
i = 0;
|
||||
RTE_LCORE_FOREACH_SLAVE(lcore_id) {
|
||||
|
||||
if (i == total_nb_qps)
|
||||
break;
|
||||
rte_eal_wait_lcore(lcore_id);
|
||||
i++;
|
||||
}
|
||||
|
||||
/* Get next size from range or list */
|
||||
if (opts.inc_buffer_size != 0)
|
||||
opts.test_buffer_size += opts.inc_buffer_size;
|
||||
else {
|
||||
if (++buffer_size_idx == opts.buffer_size_count)
|
||||
break;
|
||||
opts.test_buffer_size =
|
||||
opts.buffer_size_list[buffer_size_idx];
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -603,8 +690,6 @@ err:
|
|||
if (i == total_nb_qps)
|
||||
break;
|
||||
|
||||
cdev_id = enabled_cdevs[i];
|
||||
|
||||
if (ctx[i] && cperf_testmap[opts.test].destructor)
|
||||
cperf_testmap[opts.test].destructor(ctx[i]);
|
||||
i++;
|
||||
|
@ -613,7 +698,7 @@ err:
|
|||
for (i = 0; i < nb_cryptodevs &&
|
||||
i < RTE_CRYPTO_MAX_DEVS; i++)
|
||||
rte_cryptodev_stop(enabled_cdevs[i]);
|
||||
|
||||
rte_free(opts.imix_buffer_sizes);
|
||||
free_test_vector(t_vec, &opts);
|
||||
|
||||
printf("\n");
|
||||
|
|
|
@ -0,0 +1,15 @@
|
|||
# SPDX-License-Identifier: BSD-3-Clause
|
||||
# Copyright(c) 2018 Intel Corporation
|
||||
|
||||
allow_experimental_apis = true
|
||||
sources = files('cperf_ops.c',
|
||||
'cperf_options_parsing.c',
|
||||
'cperf_test_common.c',
|
||||
'cperf_test_latency.c',
|
||||
'cperf_test_pmd_cyclecount.c',
|
||||
'cperf_test_throughput.c',
|
||||
'cperf_test_vector_parsing.c',
|
||||
'cperf_test_vectors.c',
|
||||
'cperf_test_verify.c',
|
||||
'main.c')
|
||||
deps += ['cryptodev']
|
|
@ -1,37 +1,12 @@
|
|||
# BSD LICENSE
|
||||
# SPDX-License-Identifier: BSD-3-Clause
|
||||
# Copyright(c) 2017 Cavium, Inc
|
||||
#
|
||||
# Copyright(c) 2017 Cavium, Inc. All rights reserved.
|
||||
#
|
||||
# Redistribution and use in source and binary forms, with or without
|
||||
# modification, are permitted provided that the following conditions
|
||||
# are met:
|
||||
#
|
||||
# * Redistributions of source code must retain the above copyright
|
||||
# notice, this list of conditions and the following disclaimer.
|
||||
# * Redistributions in binary form must reproduce the above copyright
|
||||
# notice, this list of conditions and the following disclaimer in
|
||||
# the documentation and/or other materials provided with the
|
||||
# distribution.
|
||||
# * Neither the name of Cavium, Inc nor the names of its
|
||||
# contributors may be used to endorse or promote products derived
|
||||
# from this software without specific prior written permission.
|
||||
#
|
||||
# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
|
||||
# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
|
||||
# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
|
||||
# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
|
||||
# OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
|
||||
# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
|
||||
# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
|
||||
# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
|
||||
# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
||||
# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
|
||||
# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
|
||||
include $(RTE_SDK)/mk/rte.vars.mk
|
||||
|
||||
APP = dpdk-test-eventdev
|
||||
|
||||
CFLAGS += -DALLOW_EXPERIMENTAL_API
|
||||
CFLAGS += -O3
|
||||
CFLAGS += $(WERROR_FLAGS)
|
||||
|
||||
|
@ -51,4 +26,8 @@ SRCS-y += test_perf_common.c
|
|||
SRCS-y += test_perf_queue.c
|
||||
SRCS-y += test_perf_atq.c
|
||||
|
||||
SRCS-y += test_pipeline_common.c
|
||||
SRCS-y += test_pipeline_queue.c
|
||||
SRCS-y += test_pipeline_atq.c
|
||||
|
||||
include $(RTE_SDK)/mk/rte.app.mk
|
||||
|
|
|
@ -1,33 +1,5 @@
|
|||
/*
|
||||
* BSD LICENSE
|
||||
*
|
||||
* Copyright (C) Cavium, Inc 2017.
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
* modification, are permitted provided that the following conditions
|
||||
* are met:
|
||||
*
|
||||
* * Redistributions of source code must retain the above copyright
|
||||
* notice, this list of conditions and the following disclaimer.
|
||||
* * Redistributions in binary form must reproduce the above copyright
|
||||
* notice, this list of conditions and the following disclaimer in
|
||||
* the documentation and/or other materials provided with the
|
||||
* distribution.
|
||||
* * Neither the name of Cavium, Inc nor the names of its
|
||||
* contributors may be used to endorse or promote products derived
|
||||
* from this software without specific prior written permission.
|
||||
*
|
||||
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
|
||||
* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
|
||||
* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
|
||||
* A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
|
||||
* OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
|
||||
* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
|
||||
* LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
|
||||
* DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
|
||||
* THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
||||
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
|
||||
* OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
/* SPDX-License-Identifier: BSD-3-Clause
|
||||
* Copyright(c) 2017 Cavium, Inc
|
||||
*/
|
||||
|
||||
#ifndef _EVT_COMMON_
|
||||
|
@ -94,41 +66,36 @@ evt_has_all_types_queue(uint8_t dev_id)
|
|||
}
|
||||
|
||||
static inline int
|
||||
evt_service_setup(uint8_t dev_id)
|
||||
evt_service_setup(uint32_t service_id)
|
||||
{
|
||||
uint32_t service_id;
|
||||
int32_t core_cnt;
|
||||
unsigned int lcore = 0;
|
||||
uint32_t core_array[RTE_MAX_LCORE];
|
||||
uint8_t cnt;
|
||||
uint8_t min_cnt = UINT8_MAX;
|
||||
|
||||
if (evt_has_distributed_sched(dev_id))
|
||||
return 0;
|
||||
|
||||
if (!rte_service_lcore_count())
|
||||
return -ENOENT;
|
||||
|
||||
if (!rte_event_dev_service_id_get(dev_id, &service_id)) {
|
||||
core_cnt = rte_service_lcore_list(core_array,
|
||||
RTE_MAX_LCORE);
|
||||
if (core_cnt < 0)
|
||||
return -ENOENT;
|
||||
/* Get the core which has least number of services running. */
|
||||
while (core_cnt--) {
|
||||
/* Reset default mapping */
|
||||
rte_service_map_lcore_set(service_id,
|
||||
core_array[core_cnt], 0);
|
||||
cnt = rte_service_lcore_count_services(
|
||||
core_array[core_cnt]);
|
||||
if (cnt < min_cnt) {
|
||||
lcore = core_array[core_cnt];
|
||||
min_cnt = cnt;
|
||||
}
|
||||
core_cnt = rte_service_lcore_list(core_array,
|
||||
RTE_MAX_LCORE);
|
||||
if (core_cnt < 0)
|
||||
return -ENOENT;
|
||||
/* Get the core which has least number of services running. */
|
||||
while (core_cnt--) {
|
||||
/* Reset default mapping */
|
||||
rte_service_map_lcore_set(service_id,
|
||||
core_array[core_cnt], 0);
|
||||
cnt = rte_service_lcore_count_services(
|
||||
core_array[core_cnt]);
|
||||
if (cnt < min_cnt) {
|
||||
lcore = core_array[core_cnt];
|
||||
min_cnt = cnt;
|
||||
}
|
||||
if (rte_service_map_lcore_set(service_id, lcore, 1))
|
||||
return -ENOENT;
|
||||
}
|
||||
if (rte_service_map_lcore_set(service_id, lcore, 1))
|
||||
return -ENOENT;
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
|
|
@ -1,33 +1,5 @@
|
|||
/*
|
||||
* BSD LICENSE
|
||||
*
|
||||
* Copyright (C) Cavium, Inc 2017.
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
* modification, are permitted provided that the following conditions
|
||||
* are met:
|
||||
*
|
||||
* * Redistributions of source code must retain the above copyright
|
||||
* notice, this list of conditions and the following disclaimer.
|
||||
* * Redistributions in binary form must reproduce the above copyright
|
||||
* notice, this list of conditions and the following disclaimer in
|
||||
* the documentation and/or other materials provided with the
|
||||
* distribution.
|
||||
* * Neither the name of Cavium, Inc nor the names of its
|
||||
* contributors may be used to endorse or promote products derived
|
||||
* from this software without specific prior written permission.
|
||||
*
|
||||
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
|
||||
* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
|
||||
* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
|
||||
* A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
|
||||
* OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
|
||||
* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
|
||||
* LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
|
||||
* DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
|
||||
* THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
||||
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
|
||||
* OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
/* SPDX-License-Identifier: BSD-3-Clause
|
||||
* Copyright(c) 2017 Cavium, Inc
|
||||
*/
|
||||
|
||||
#include <stdio.h>
|
||||
|
@ -48,26 +20,41 @@ struct evt_test *test;
|
|||
static void
|
||||
signal_handler(int signum)
|
||||
{
|
||||
if (signum == SIGINT || signum == SIGTERM) {
|
||||
int i;
|
||||
static uint8_t once;
|
||||
|
||||
if ((signum == SIGINT || signum == SIGTERM) && !once) {
|
||||
once = true;
|
||||
printf("\nSignal %d received, preparing to exit...\n",
|
||||
signum);
|
||||
/* request all lcores to exit from the main loop */
|
||||
*(int *)test->test_priv = true;
|
||||
rte_wmb();
|
||||
|
||||
rte_eal_mp_wait_lcore();
|
||||
if (test != NULL) {
|
||||
/* request all lcores to exit from the main loop */
|
||||
*(int *)test->test_priv = true;
|
||||
rte_wmb();
|
||||
|
||||
if (test->ops.eventdev_destroy)
|
||||
test->ops.eventdev_destroy(test, &opt);
|
||||
if (test->ops.ethdev_destroy)
|
||||
test->ops.ethdev_destroy(test, &opt);
|
||||
|
||||
if (test->ops.ethdev_destroy)
|
||||
test->ops.ethdev_destroy(test, &opt);
|
||||
rte_eal_mp_wait_lcore();
|
||||
|
||||
if (test->ops.mempool_destroy)
|
||||
test->ops.mempool_destroy(test, &opt);
|
||||
if (test->ops.test_result)
|
||||
test->ops.test_result(test, &opt);
|
||||
|
||||
if (test->ops.test_destroy)
|
||||
test->ops.test_destroy(test, &opt);
|
||||
if (opt.prod_type == EVT_PROD_TYPE_ETH_RX_ADPTR) {
|
||||
RTE_ETH_FOREACH_DEV(i)
|
||||
rte_eth_dev_close(i);
|
||||
}
|
||||
|
||||
if (test->ops.eventdev_destroy)
|
||||
test->ops.eventdev_destroy(test, &opt);
|
||||
|
||||
if (test->ops.mempool_destroy)
|
||||
test->ops.mempool_destroy(test, &opt);
|
||||
|
||||
if (test->ops.test_destroy)
|
||||
test->ops.test_destroy(test, &opt);
|
||||
}
|
||||
|
||||
/* exit with the expected status */
|
||||
signal(signum, SIG_DFL);
|
||||
|
|
|
@ -1,33 +1,5 @@
|
|||
/*
|
||||
* BSD LICENSE
|
||||
*
|
||||
* Copyright (C) Cavium, Inc 2017.
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
* modification, are permitted provided that the following conditions
|
||||
* are met:
|
||||
*
|
||||
* * Redistributions of source code must retain the above copyright
|
||||
* notice, this list of conditions and the following disclaimer.
|
||||
* * Redistributions in binary form must reproduce the above copyright
|
||||
* notice, this list of conditions and the following disclaimer in
|
||||
* the documentation and/or other materials provided with the
|
||||
* distribution.
|
||||
* * Neither the name of Cavium, Inc nor the names of its
|
||||
* contributors may be used to endorse or promote products derived
|
||||
* from this software without specific prior written permission.
|
||||
*
|
||||
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
|
||||
* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
|
||||
* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
|
||||
* A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
|
||||
* OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
|
||||
* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
|
||||
* LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
|
||||
* DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
|
||||
* THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
||||
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
|
||||
* OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
/* SPDX-License-Identifier: BSD-3-Clause
|
||||
* Copyright(c) 2017 Cavium, Inc
|
||||
*/
|
||||
|
||||
#include <stdio.h>
|
||||
|
@ -55,6 +27,12 @@ evt_options_default(struct evt_options *opt)
|
|||
opt->pool_sz = 16 * 1024;
|
||||
opt->wkr_deq_dep = 16;
|
||||
opt->nb_pkts = (1ULL << 26); /* do ~64M packets */
|
||||
opt->nb_timers = 1E8;
|
||||
opt->nb_timer_adptrs = 1;
|
||||
opt->timer_tick_nsec = 1E3; /* 1000ns ~ 1us */
|
||||
opt->max_tmo_nsec = 1E5; /* 100000ns ~100us */
|
||||
opt->expiry_nsec = 1E4; /* 10000ns ~10us */
|
||||
opt->prod_type = EVT_PROD_TYPE_SYNT;
|
||||
}
|
||||
|
||||
typedef int (*option_parser_t)(struct evt_options *opt,
|
||||
|
@ -106,6 +84,29 @@ evt_parse_queue_priority(struct evt_options *opt, const char *arg __rte_unused)
|
|||
return 0;
|
||||
}
|
||||
|
||||
static int
|
||||
evt_parse_eth_prod_type(struct evt_options *opt, const char *arg __rte_unused)
|
||||
{
|
||||
opt->prod_type = EVT_PROD_TYPE_ETH_RX_ADPTR;
|
||||
return 0;
|
||||
}
|
||||
|
||||
static int
|
||||
evt_parse_timer_prod_type(struct evt_options *opt, const char *arg __rte_unused)
|
||||
{
|
||||
opt->prod_type = EVT_PROD_TYPE_EVENT_TIMER_ADPTR;
|
||||
return 0;
|
||||
}
|
||||
|
||||
static int
|
||||
evt_parse_timer_prod_type_burst(struct evt_options *opt,
|
||||
const char *arg __rte_unused)
|
||||
{
|
||||
opt->prod_type = EVT_PROD_TYPE_EVENT_TIMER_ADPTR;
|
||||
opt->timdev_use_burst = 1;
|
||||
return 0;
|
||||
}
|
||||
|
||||
static int
|
||||
evt_parse_test_name(struct evt_options *opt, const char *arg)
|
||||
{
|
||||
|
@ -139,6 +140,56 @@ evt_parse_nb_pkts(struct evt_options *opt, const char *arg)
|
|||
return ret;
|
||||
}
|
||||
|
||||
static int
|
||||
evt_parse_nb_timers(struct evt_options *opt, const char *arg)
|
||||
{
|
||||
int ret;
|
||||
|
||||
ret = parser_read_uint64(&(opt->nb_timers), arg);
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
||||
static int
|
||||
evt_parse_timer_tick_nsec(struct evt_options *opt, const char *arg)
|
||||
{
|
||||
int ret;
|
||||
|
||||
ret = parser_read_uint64(&(opt->timer_tick_nsec), arg);
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
||||
static int
|
||||
evt_parse_max_tmo_nsec(struct evt_options *opt, const char *arg)
|
||||
{
|
||||
int ret;
|
||||
|
||||
ret = parser_read_uint64(&(opt->max_tmo_nsec), arg);
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
||||
static int
|
||||
evt_parse_expiry_nsec(struct evt_options *opt, const char *arg)
|
||||
{
|
||||
int ret;
|
||||
|
||||
ret = parser_read_uint64(&(opt->expiry_nsec), arg);
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
||||
static int
|
||||
evt_parse_nb_timer_adptrs(struct evt_options *opt, const char *arg)
|
||||
{
|
||||
int ret;
|
||||
|
||||
ret = parser_read_uint8(&(opt->nb_timer_adptrs), arg);
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
||||
static int
|
||||
evt_parse_pool_sz(struct evt_options *opt, const char *arg)
|
||||
{
|
||||
|
@ -189,6 +240,17 @@ usage(char *program)
|
|||
"\t--worker_deq_depth : dequeue depth of the worker\n"
|
||||
"\t--fwd_latency : perform fwd_latency measurement\n"
|
||||
"\t--queue_priority : enable queue priority\n"
|
||||
"\t--prod_type_ethdev : use ethernet device as producer.\n"
|
||||
"\t--prod_type_timerdev : use event timer device as producer.\n"
|
||||
"\t expity_nsec would be the timeout\n"
|
||||
"\t in ns.\n"
|
||||
"\t--prod_type_timerdev_burst : use timer device as producer\n"
|
||||
"\t burst mode.\n"
|
||||
"\t--nb_timers : number of timers to arm.\n"
|
||||
"\t--nb_timer_adptrs : number of timer adapters to use.\n"
|
||||
"\t--timer_tick_nsec : timer tick interval in ns.\n"
|
||||
"\t--max_tmo_nsec : max timeout interval in ns.\n"
|
||||
"\t--expiry_nsec : event timer expiry ns.\n"
|
||||
);
|
||||
printf("available tests:\n");
|
||||
evt_test_dump_names();
|
||||
|
@ -236,21 +298,29 @@ evt_parse_sched_type_list(struct evt_options *opt, const char *arg)
|
|||
}
|
||||
|
||||
static struct option lgopts[] = {
|
||||
{ EVT_NB_FLOWS, 1, 0, 0 },
|
||||
{ EVT_DEVICE, 1, 0, 0 },
|
||||
{ EVT_VERBOSE, 1, 0, 0 },
|
||||
{ EVT_TEST, 1, 0, 0 },
|
||||
{ EVT_PROD_LCORES, 1, 0, 0 },
|
||||
{ EVT_WORK_LCORES, 1, 0, 0 },
|
||||
{ EVT_SOCKET_ID, 1, 0, 0 },
|
||||
{ EVT_POOL_SZ, 1, 0, 0 },
|
||||
{ EVT_NB_PKTS, 1, 0, 0 },
|
||||
{ EVT_WKR_DEQ_DEP, 1, 0, 0 },
|
||||
{ EVT_SCHED_TYPE_LIST, 1, 0, 0 },
|
||||
{ EVT_FWD_LATENCY, 0, 0, 0 },
|
||||
{ EVT_QUEUE_PRIORITY, 0, 0, 0 },
|
||||
{ EVT_HELP, 0, 0, 0 },
|
||||
{ NULL, 0, 0, 0 }
|
||||
{ EVT_NB_FLOWS, 1, 0, 0 },
|
||||
{ EVT_DEVICE, 1, 0, 0 },
|
||||
{ EVT_VERBOSE, 1, 0, 0 },
|
||||
{ EVT_TEST, 1, 0, 0 },
|
||||
{ EVT_PROD_LCORES, 1, 0, 0 },
|
||||
{ EVT_WORK_LCORES, 1, 0, 0 },
|
||||
{ EVT_SOCKET_ID, 1, 0, 0 },
|
||||
{ EVT_POOL_SZ, 1, 0, 0 },
|
||||
{ EVT_NB_PKTS, 1, 0, 0 },
|
||||
{ EVT_WKR_DEQ_DEP, 1, 0, 0 },
|
||||
{ EVT_SCHED_TYPE_LIST, 1, 0, 0 },
|
||||
{ EVT_FWD_LATENCY, 0, 0, 0 },
|
||||
{ EVT_QUEUE_PRIORITY, 0, 0, 0 },
|
||||
{ EVT_PROD_ETHDEV, 0, 0, 0 },
|
||||
{ EVT_PROD_TIMERDEV, 0, 0, 0 },
|
||||
{ EVT_PROD_TIMERDEV_BURST, 0, 0, 0 },
|
||||
{ EVT_NB_TIMERS, 1, 0, 0 },
|
||||
{ EVT_NB_TIMER_ADPTRS, 1, 0, 0 },
|
||||
{ EVT_TIMER_TICK_NSEC, 1, 0, 0 },
|
||||
{ EVT_MAX_TMO_NSEC, 1, 0, 0 },
|
||||
{ EVT_EXPIRY_NSEC, 1, 0, 0 },
|
||||
{ EVT_HELP, 0, 0, 0 },
|
||||
{ NULL, 0, 0, 0 }
|
||||
};
|
||||
|
||||
static int
|
||||
|
@ -272,11 +342,19 @@ evt_opts_parse_long(int opt_idx, struct evt_options *opt)
|
|||
{ EVT_SCHED_TYPE_LIST, evt_parse_sched_type_list},
|
||||
{ EVT_FWD_LATENCY, evt_parse_fwd_latency},
|
||||
{ EVT_QUEUE_PRIORITY, evt_parse_queue_priority},
|
||||
{ EVT_PROD_ETHDEV, evt_parse_eth_prod_type},
|
||||
{ EVT_PROD_TIMERDEV, evt_parse_timer_prod_type},
|
||||
{ EVT_PROD_TIMERDEV_BURST, evt_parse_timer_prod_type_burst},
|
||||
{ EVT_NB_TIMERS, evt_parse_nb_timers},
|
||||
{ EVT_NB_TIMER_ADPTRS, evt_parse_nb_timer_adptrs},
|
||||
{ EVT_TIMER_TICK_NSEC, evt_parse_timer_tick_nsec},
|
||||
{ EVT_MAX_TMO_NSEC, evt_parse_max_tmo_nsec},
|
||||
{ EVT_EXPIRY_NSEC, evt_parse_expiry_nsec},
|
||||
};
|
||||
|
||||
for (i = 0; i < RTE_DIM(parsermap); i++) {
|
||||
if (strncmp(lgopts[opt_idx].name, parsermap[i].lgopt_name,
|
||||
strlen(parsermap[i].lgopt_name)) == 0)
|
||||
strlen(lgopts[opt_idx].name)) == 0)
|
||||
return parsermap[i].parser_fn(opt, optarg);
|
||||
}
|
||||
|
||||
|
@ -322,6 +400,7 @@ evt_options_dump(struct evt_options *opt)
|
|||
evt_dump("pool_sz", "%d", opt->pool_sz);
|
||||
evt_dump("master lcore", "%d", rte_get_master_lcore());
|
||||
evt_dump("nb_pkts", "%"PRIu64, opt->nb_pkts);
|
||||
evt_dump("nb_timers", "%"PRIu64, opt->nb_timers);
|
||||
evt_dump_begin("available lcores");
|
||||
RTE_LCORE_FOREACH(lcore_id)
|
||||
printf("%d ", lcore_id);
|
||||
|
|
|
@ -1,33 +1,5 @@
|
|||
/*
|
||||
* BSD LICENSE
|
||||
*
|
||||
* Copyright (C) Cavium, Inc 2017.
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
* modification, are permitted provided that the following conditions
|
||||
* are met:
|
||||
*
|
||||
* * Redistributions of source code must retain the above copyright
|
||||
* notice, this list of conditions and the following disclaimer.
|
||||
* * Redistributions in binary form must reproduce the above copyright
|
||||
* notice, this list of conditions and the following disclaimer in
|
||||
* the documentation and/or other materials provided with the
|
||||
* distribution.
|
||||
* * Neither the name of Cavium, Inc nor the names of its
|
||||
* contributors may be used to endorse or promote products derived
|
||||
* from this software without specific prior written permission.
|
||||
*
|
||||
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
|
||||
* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
|
||||
* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
|
||||
* A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
|
||||
* OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
|
||||
* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
|
||||
* LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
|
||||
* DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
|
||||
* THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
||||
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
|
||||
* OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
/* SPDX-License-Identifier: BSD-3-Clause
|
||||
* Copyright(c) 2017 Cavium, Inc
|
||||
*/
|
||||
|
||||
#ifndef _EVT_OPTIONS_
|
||||
|
@ -37,6 +9,7 @@
|
|||
#include <stdbool.h>
|
||||
|
||||
#include <rte_common.h>
|
||||
#include <rte_ethdev.h>
|
||||
#include <rte_eventdev.h>
|
||||
#include <rte_lcore.h>
|
||||
|
||||
|
@ -58,8 +31,24 @@
|
|||
#define EVT_SCHED_TYPE_LIST ("stlist")
|
||||
#define EVT_FWD_LATENCY ("fwd_latency")
|
||||
#define EVT_QUEUE_PRIORITY ("queue_priority")
|
||||
#define EVT_PROD_ETHDEV ("prod_type_ethdev")
|
||||
#define EVT_PROD_TIMERDEV ("prod_type_timerdev")
|
||||
#define EVT_PROD_TIMERDEV_BURST ("prod_type_timerdev_burst")
|
||||
#define EVT_NB_TIMERS ("nb_timers")
|
||||
#define EVT_NB_TIMER_ADPTRS ("nb_timer_adptrs")
|
||||
#define EVT_TIMER_TICK_NSEC ("timer_tick_nsec")
|
||||
#define EVT_MAX_TMO_NSEC ("max_tmo_nsec")
|
||||
#define EVT_EXPIRY_NSEC ("expiry_nsec")
|
||||
#define EVT_HELP ("help")
|
||||
|
||||
enum evt_prod_type {
|
||||
EVT_PROD_TYPE_NONE,
|
||||
EVT_PROD_TYPE_SYNT, /* Producer type Synthetic i.e. CPU. */
|
||||
EVT_PROD_TYPE_ETH_RX_ADPTR, /* Producer type Eth Rx Adapter. */
|
||||
EVT_PROD_TYPE_EVENT_TIMER_ADPTR, /* Producer type Timer Adapter. */
|
||||
EVT_PROD_TYPE_MAX,
|
||||
};
|
||||
|
||||
struct evt_options {
|
||||
#define EVT_TEST_NAME_MAX_LEN 32
|
||||
char test_name[EVT_TEST_NAME_MAX_LEN];
|
||||
|
@ -72,10 +61,19 @@ struct evt_options {
|
|||
int nb_stages;
|
||||
int verbose_level;
|
||||
uint64_t nb_pkts;
|
||||
uint8_t nb_timer_adptrs;
|
||||
uint64_t nb_timers;
|
||||
uint64_t timer_tick_nsec;
|
||||
uint64_t optm_timer_tick_nsec;
|
||||
uint64_t max_tmo_nsec;
|
||||
uint64_t expiry_nsec;
|
||||
uint16_t wkr_deq_dep;
|
||||
uint8_t dev_id;
|
||||
uint32_t fwd_latency:1;
|
||||
uint32_t q_priority:1;
|
||||
enum evt_prod_type prod_type;
|
||||
uint8_t timdev_use_burst;
|
||||
uint8_t timdev_cnt;
|
||||
};
|
||||
|
||||
void evt_options_default(struct evt_options *opt);
|
||||
|
@ -266,4 +264,42 @@ evt_dump_sched_type_list(struct evt_options *opt)
|
|||
evt_dump_end;
|
||||
}
|
||||
|
||||
#define EVT_PROD_MAX_NAME_LEN 50
|
||||
static inline void
|
||||
evt_dump_producer_type(struct evt_options *opt)
|
||||
{
|
||||
char name[EVT_PROD_MAX_NAME_LEN];
|
||||
|
||||
switch (opt->prod_type) {
|
||||
default:
|
||||
case EVT_PROD_TYPE_SYNT:
|
||||
snprintf(name, EVT_PROD_MAX_NAME_LEN,
|
||||
"Synthetic producer lcores");
|
||||
break;
|
||||
case EVT_PROD_TYPE_ETH_RX_ADPTR:
|
||||
snprintf(name, EVT_PROD_MAX_NAME_LEN,
|
||||
"Ethdev Rx Adapter producers");
|
||||
evt_dump("nb_ethdev", "%d", rte_eth_dev_count_avail());
|
||||
break;
|
||||
case EVT_PROD_TYPE_EVENT_TIMER_ADPTR:
|
||||
if (opt->timdev_use_burst)
|
||||
snprintf(name, EVT_PROD_MAX_NAME_LEN,
|
||||
"Event timer adapter burst mode producer");
|
||||
else
|
||||
snprintf(name, EVT_PROD_MAX_NAME_LEN,
|
||||
"Event timer adapter producer");
|
||||
evt_dump("nb_timer_adapters", "%d", opt->nb_timer_adptrs);
|
||||
evt_dump("max_tmo_nsec", "%"PRIu64"", opt->max_tmo_nsec);
|
||||
evt_dump("expiry_nsec", "%"PRIu64"", opt->expiry_nsec);
|
||||
if (opt->optm_timer_tick_nsec)
|
||||
evt_dump("optm_timer_tick_nsec", "%"PRIu64"",
|
||||
opt->optm_timer_tick_nsec);
|
||||
else
|
||||
evt_dump("timer_tick_nsec", "%"PRIu64"",
|
||||
opt->timer_tick_nsec);
|
||||
break;
|
||||
}
|
||||
evt_dump("prod_type", "%s", name);
|
||||
}
|
||||
|
||||
#endif /* _EVT_OPTIONS_ */
|
||||
|
|
|
@ -1,33 +1,5 @@
|
|||
/*
|
||||
* BSD LICENSE
|
||||
*
|
||||
* Copyright (C) Cavium, Inc. 2017.
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
* modification, are permitted provided that the following conditions
|
||||
* are met:
|
||||
*
|
||||
* * Redistributions of source code must retain the above copyright
|
||||
* notice, this list of conditions and the following disclaimer.
|
||||
* * Redistributions in binary form must reproduce the above copyright
|
||||
* notice, this list of conditions and the following disclaimer in
|
||||
* the documentation and/or other materials provided with the
|
||||
* distribution.
|
||||
* * Neither the name of Cavium, Inc nor the names of its
|
||||
* contributors may be used to endorse or promote products derived
|
||||
* from this software without specific prior written permission.
|
||||
*
|
||||
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
|
||||
* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
|
||||
* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
|
||||
* A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
|
||||
* OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
|
||||
* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
|
||||
* LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
|
||||
* DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
|
||||
* THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
||||
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
|
||||
* OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
/* SPDX-License-Identifier: BSD-3-Clause
|
||||
* Copyright(c) 2017 Cavium, Inc
|
||||
*/
|
||||
|
||||
#include <stdio.h>
|
||||
|
|
|
@ -1,33 +1,5 @@
|
|||
/*
|
||||
* BSD LICENSE
|
||||
*
|
||||
* Copyright (C) Cavium, Inc 2017.
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
* modification, are permitted provided that the following conditions
|
||||
* are met:
|
||||
*
|
||||
* * Redistributions of source code must retain the above copyright
|
||||
* notice, this list of conditions and the following disclaimer.
|
||||
* * Redistributions in binary form must reproduce the above copyright
|
||||
* notice, this list of conditions and the following disclaimer in
|
||||
* the documentation and/or other materials provided with the
|
||||
* distribution.
|
||||
* * Neither the name of Cavium, Inc nor the names of its
|
||||
* contributors may be used to endorse or promote products derived
|
||||
* from this software without specific prior written permission.
|
||||
*
|
||||
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
|
||||
* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
|
||||
* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
|
||||
* A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
|
||||
* OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
|
||||
* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
|
||||
* LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
|
||||
* DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
|
||||
* THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
||||
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
|
||||
* OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
/* SPDX-License-Identifier: BSD-3-Clause
|
||||
* Copyright(c) 2017 Cavium, Inc
|
||||
*/
|
||||
|
||||
#ifndef _EVT_TEST_
|
||||
|
@ -105,8 +77,7 @@ void evt_test_dump_names(void);
|
|||
|
||||
#define EVT_TEST_REGISTER(nm) \
|
||||
static struct evt_test_entry _evt_test_entry_ ##nm; \
|
||||
RTE_INIT(evt_test_ ##nm); \
|
||||
static void evt_test_ ##nm(void) \
|
||||
RTE_INIT(evt_test_ ##nm) \
|
||||
{ \
|
||||
_evt_test_entry_ ##nm.test.name = RTE_STR(nm);\
|
||||
memcpy(&_evt_test_entry_ ##nm.test.ops, &nm, \
|
||||
|
|
|
@ -0,0 +1,15 @@
|
|||
# SPDX-License-Identifier: BSD-3-Clause
|
||||
# Copyright(c) 2017 Cavium, Inc
|
||||
|
||||
allow_experimental_apis = true
|
||||
sources = files('evt_main.c',
|
||||
'evt_options.c',
|
||||
'evt_test.c',
|
||||
'parser.c',
|
||||
'test_order_common.c',
|
||||
'test_order_atq.c',
|
||||
'test_order_queue.c',
|
||||
'test_perf_common.c',
|
||||
'test_perf_atq.c',
|
||||
'test_perf_queue.c')
|
||||
deps += 'eventdev'
|
|
@ -1,34 +1,5 @@
|
|||
/*-
|
||||
* BSD LICENSE
|
||||
*
|
||||
* Copyright(c) 2010-2016 Intel Corporation. All rights reserved.
|
||||
* All rights reserved.
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
* modification, are permitted provided that the following conditions
|
||||
* are met:
|
||||
*
|
||||
* * Redistributions of source code must retain the above copyright
|
||||
* notice, this list of conditions and the following disclaimer.
|
||||
* * Redistributions in binary form must reproduce the above copyright
|
||||
* notice, this list of conditions and the following disclaimer in
|
||||
* the documentation and/or other materials provided with the
|
||||
* distribution.
|
||||
* * Neither the name of Intel Corporation nor the names of its
|
||||
* contributors may be used to endorse or promote products derived
|
||||
* from this software without specific prior written permission.
|
||||
*
|
||||
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
|
||||
* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
|
||||
* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
|
||||
* A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
|
||||
* OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
|
||||
* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
|
||||
* LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
|
||||
* DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
|
||||
* THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
||||
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
|
||||
* OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
/* SPDX-License-Identifier: BSD-3-Clause
|
||||
* Copyright(c) 2010-2016 Intel Corporation
|
||||
*/
|
||||
|
||||
#ifndef __INCLUDE_PARSER_H__
|
||||
|
|
|
@ -1,33 +1,5 @@
|
|||
/*
|
||||
* BSD LICENSE
|
||||
*
|
||||
* Copyright (C) Cavium, Inc 2017.
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
* modification, are permitted provided that the following conditions
|
||||
* are met:
|
||||
*
|
||||
* * Redistributions of source code must retain the above copyright
|
||||
* notice, this list of conditions and the following disclaimer.
|
||||
* * Redistributions in binary form must reproduce the above copyright
|
||||
* notice, this list of conditions and the following disclaimer in
|
||||
* the documentation and/or other materials provided with the
|
||||
* distribution.
|
||||
* * Neither the name of Cavium, Inc nor the names of its
|
||||
* contributors may be used to endorse or promote products derived
|
||||
* from this software without specific prior written permission.
|
||||
*
|
||||
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
|
||||
* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
|
||||
* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
|
||||
* A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
|
||||
* OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
|
||||
* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
|
||||
* LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
|
||||
* DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
|
||||
* THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
||||
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
|
||||
* OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
/* SPDX-License-Identifier: BSD-3-Clause
|
||||
* Copyright(c) 2017 Cavium, Inc
|
||||
*/
|
||||
|
||||
#include <stdio.h>
|
||||
|
@ -35,7 +7,7 @@
|
|||
|
||||
#include "test_order_common.h"
|
||||
|
||||
/* See http://dpdk.org/doc/guides/tools/testeventdev.html for test details */
|
||||
/* See http://doc.dpdk.org/guides/tools/testeventdev.html for test details */
|
||||
|
||||
static inline __attribute__((always_inline)) void
|
||||
order_atq_process_stage_0(struct rte_event *const ev)
|
||||
|
@ -179,10 +151,14 @@ order_atq_eventdev_setup(struct evt_test *test, struct evt_options *opt)
|
|||
if (ret)
|
||||
return ret;
|
||||
|
||||
ret = evt_service_setup(opt->dev_id);
|
||||
if (ret) {
|
||||
evt_err("No service lcore found to run event dev.");
|
||||
return ret;
|
||||
if (!evt_has_distributed_sched(opt->dev_id)) {
|
||||
uint32_t service_id;
|
||||
rte_event_dev_service_id_get(opt->dev_id, &service_id);
|
||||
ret = evt_service_setup(service_id);
|
||||
if (ret) {
|
||||
evt_err("No service lcore found to run event dev.");
|
||||
return ret;
|
||||
}
|
||||
}
|
||||
|
||||
ret = rte_event_dev_start(opt->dev_id);
|
||||
|
|
|
@ -1,33 +1,5 @@
|
|||
/*
|
||||
* BSD LICENSE
|
||||
*
|
||||
* Copyright (C) Cavium, Inc 2017.
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
* modification, are permitted provided that the following conditions
|
||||
* are met:
|
||||
*
|
||||
* * Redistributions of source code must retain the above copyright
|
||||
* notice, this list of conditions and the following disclaimer.
|
||||
* * Redistributions in binary form must reproduce the above copyright
|
||||
* notice, this list of conditions and the following disclaimer in
|
||||
* the documentation and/or other materials provided with the
|
||||
* distribution.
|
||||
* * Neither the name of Cavium, Inc nor the names of its
|
||||
* contributors may be used to endorse or promote products derived
|
||||
* from this software without specific prior written permission.
|
||||
*
|
||||
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
|
||||
* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
|
||||
* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
|
||||
* A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
|
||||
* OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
|
||||
* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
|
||||
* LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
|
||||
* DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
|
||||
* THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
||||
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
|
||||
* OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
/* SPDX-License-Identifier: BSD-3-Clause
|
||||
* Copyright(c) 2017 Cavium, Inc
|
||||
*/
|
||||
|
||||
#include "test_order_common.h"
|
||||
|
|
|
@ -1,33 +1,5 @@
|
|||
/*
|
||||
* BSD LICENSE
|
||||
*
|
||||
* Copyright (C) Cavium, Inc 2017.
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
* modification, are permitted provided that the following conditions
|
||||
* are met:
|
||||
*
|
||||
* * Redistributions of source code must retain the above copyright
|
||||
* notice, this list of conditions and the following disclaimer.
|
||||
* * Redistributions in binary form must reproduce the above copyright
|
||||
* notice, this list of conditions and the following disclaimer in
|
||||
* the documentation and/or other materials provided with the
|
||||
* distribution.
|
||||
* * Neither the name of Cavium, Inc nor the names of its
|
||||
* contributors may be used to endorse or promote products derived
|
||||
* from this software without specific prior written permission.
|
||||
*
|
||||
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
|
||||
* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
|
||||
* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
|
||||
* A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
|
||||
* OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
|
||||
* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
|
||||
* LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
|
||||
* DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
|
||||
* THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
||||
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
|
||||
* OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
/* SPDX-License-Identifier: BSD-3-Clause
|
||||
* Copyright(c) 2017 Cavium, Inc
|
||||
*/
|
||||
|
||||
#ifndef _TEST_ORDER_COMMON_
|
||||
|
|
|
@ -1,33 +1,5 @@
|
|||
/*
|
||||
* BSD LICENSE
|
||||
*
|
||||
* Copyright (C) Cavium, Inc 2017.
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
* modification, are permitted provided that the following conditions
|
||||
* are met:
|
||||
*
|
||||
* * Redistributions of source code must retain the above copyright
|
||||
* notice, this list of conditions and the following disclaimer.
|
||||
* * Redistributions in binary form must reproduce the above copyright
|
||||
* notice, this list of conditions and the following disclaimer in
|
||||
* the documentation and/or other materials provided with the
|
||||
* distribution.
|
||||
* * Neither the name of Cavium, Inc nor the names of its
|
||||
* contributors may be used to endorse or promote products derived
|
||||
* from this software without specific prior written permission.
|
||||
*
|
||||
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
|
||||
* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
|
||||
* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
|
||||
* A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
|
||||
* OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
|
||||
* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
|
||||
* LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
|
||||
* DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
|
||||
* THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
||||
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
|
||||
* OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
/* SPDX-License-Identifier: BSD-3-Clause
|
||||
* Copyright(c) 2017 Cavium, Inc
|
||||
*/
|
||||
|
||||
#include <stdio.h>
|
||||
|
@ -35,7 +7,7 @@
|
|||
|
||||
#include "test_order_common.h"
|
||||
|
||||
/* See http://dpdk.org/doc/guides/tools/testeventdev.html for test details */
|
||||
/* See http://doc.dpdk.org/guides/tools/testeventdev.html for test details */
|
||||
|
||||
static inline __attribute__((always_inline)) void
|
||||
order_queue_process_stage_0(struct rte_event *const ev)
|
||||
|
@ -192,10 +164,14 @@ order_queue_eventdev_setup(struct evt_test *test, struct evt_options *opt)
|
|||
if (ret)
|
||||
return ret;
|
||||
|
||||
ret = evt_service_setup(opt->dev_id);
|
||||
if (ret) {
|
||||
evt_err("No service lcore found to run event dev.");
|
||||
return ret;
|
||||
if (!evt_has_distributed_sched(opt->dev_id)) {
|
||||
uint32_t service_id;
|
||||
rte_event_dev_service_id_get(opt->dev_id, &service_id);
|
||||
ret = evt_service_setup(service_id);
|
||||
if (ret) {
|
||||
evt_err("No service lcore found to run event dev.");
|
||||
return ret;
|
||||
}
|
||||
}
|
||||
|
||||
ret = rte_event_dev_start(opt->dev_id);
|
||||
|
|
|
@ -1,44 +1,17 @@
|
|||
/*
|
||||
* BSD LICENSE
|
||||
*
|
||||
* Copyright (C) Cavium, Inc 2017.
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
* modification, are permitted provided that the following conditions
|
||||
* are met:
|
||||
*
|
||||
* * Redistributions of source code must retain the above copyright
|
||||
* notice, this list of conditions and the following disclaimer.
|
||||
* * Redistributions in binary form must reproduce the above copyright
|
||||
* notice, this list of conditions and the following disclaimer in
|
||||
* the documentation and/or other materials provided with the
|
||||
* distribution.
|
||||
* * Neither the name of Cavium, Inc nor the names of its
|
||||
* contributors may be used to endorse or promote products derived
|
||||
* from this software without specific prior written permission.
|
||||
*
|
||||
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
|
||||
* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
|
||||
* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
|
||||
* A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
|
||||
* OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
|
||||
* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
|
||||
* LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
|
||||
* DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
|
||||
* THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
||||
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
|
||||
* OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
/* SPDX-License-Identifier: BSD-3-Clause
|
||||
* Copyright(c) 2017 Cavium, Inc
|
||||
*/
|
||||
|
||||
#include "test_perf_common.h"
|
||||
|
||||
/* See http://dpdk.org/doc/guides/tools/testeventdev.html for test details */
|
||||
/* See http://doc.dpdk.org/guides/tools/testeventdev.html for test details */
|
||||
|
||||
static inline int
|
||||
atq_nb_event_queues(struct evt_options *opt)
|
||||
{
|
||||
/* nb_queues = number of producers */
|
||||
return evt_nr_active_lcores(opt->plcores);
|
||||
return opt->prod_type == EVT_PROD_TYPE_ETH_RX_ADPTR ?
|
||||
rte_eth_dev_count_avail() : evt_nr_active_lcores(opt->plcores);
|
||||
}
|
||||
|
||||
static inline __attribute__((always_inline)) void
|
||||
|
@ -70,15 +43,12 @@ perf_atq_worker(void *arg, const int enable_fwd_latency)
|
|||
while (t->done == false) {
|
||||
uint16_t event = rte_event_dequeue_burst(dev, port, &ev, 1, 0);
|
||||
|
||||
if (enable_fwd_latency)
|
||||
rte_prefetch0(ev.event_ptr);
|
||||
|
||||
if (!event) {
|
||||
rte_pause();
|
||||
continue;
|
||||
}
|
||||
|
||||
if (enable_fwd_latency)
|
||||
if (enable_fwd_latency && !prod_timer_type)
|
||||
/* first stage in pipeline, mark ts to compute fwd latency */
|
||||
atq_mark_fwd_latency(&ev);
|
||||
|
||||
|
@ -117,7 +87,7 @@ perf_atq_worker_burst(void *arg, const int enable_fwd_latency)
|
|||
}
|
||||
|
||||
for (i = 0; i < nb_rx; i++) {
|
||||
if (enable_fwd_latency) {
|
||||
if (enable_fwd_latency && !prod_timer_type) {
|
||||
rte_prefetch0(ev[i+1].event_ptr);
|
||||
/* first stage in pipeline.
|
||||
* mark time stamp to compute fwd latency
|
||||
|
@ -185,14 +155,33 @@ perf_atq_eventdev_setup(struct evt_test *test, struct evt_options *opt)
|
|||
{
|
||||
int ret;
|
||||
uint8_t queue;
|
||||
uint8_t nb_queues;
|
||||
uint8_t nb_ports;
|
||||
struct rte_event_dev_info dev_info;
|
||||
|
||||
nb_ports = evt_nr_active_lcores(opt->wlcores);
|
||||
nb_ports += (opt->prod_type == EVT_PROD_TYPE_ETH_RX_ADPTR ||
|
||||
opt->prod_type == EVT_PROD_TYPE_EVENT_TIMER_ADPTR) ? 0 :
|
||||
evt_nr_active_lcores(opt->plcores);
|
||||
|
||||
nb_queues = atq_nb_event_queues(opt);
|
||||
|
||||
memset(&dev_info, 0, sizeof(struct rte_event_dev_info));
|
||||
ret = rte_event_dev_info_get(opt->dev_id, &dev_info);
|
||||
if (ret) {
|
||||
evt_err("failed to get eventdev info %d", opt->dev_id);
|
||||
return ret;
|
||||
}
|
||||
|
||||
const struct rte_event_dev_config config = {
|
||||
.nb_event_queues = atq_nb_event_queues(opt),
|
||||
.nb_event_ports = perf_nb_event_ports(opt),
|
||||
.nb_events_limit = 4096,
|
||||
.nb_event_queues = nb_queues,
|
||||
.nb_event_ports = nb_ports,
|
||||
.nb_events_limit = dev_info.max_num_events,
|
||||
.nb_event_queue_flows = opt->nb_flows,
|
||||
.nb_event_port_dequeue_depth = 128,
|
||||
.nb_event_port_enqueue_depth = 128,
|
||||
.nb_event_port_dequeue_depth =
|
||||
dev_info.max_event_port_dequeue_depth,
|
||||
.nb_event_port_enqueue_depth =
|
||||
dev_info.max_event_port_enqueue_depth,
|
||||
};
|
||||
|
||||
ret = rte_event_dev_configure(opt->dev_id, &config);
|
||||
|
@ -208,7 +197,7 @@ perf_atq_eventdev_setup(struct evt_test *test, struct evt_options *opt)
|
|||
.nb_atomic_order_sequences = opt->nb_flows,
|
||||
};
|
||||
/* queue configurations */
|
||||
for (queue = 0; queue < atq_nb_event_queues(opt); queue++) {
|
||||
for (queue = 0; queue < nb_queues; queue++) {
|
||||
ret = rte_event_queue_setup(opt->dev_id, queue, &q_conf);
|
||||
if (ret) {
|
||||
evt_err("failed to setup queue=%d", queue);
|
||||
|
@ -216,15 +205,29 @@ perf_atq_eventdev_setup(struct evt_test *test, struct evt_options *opt)
|
|||
}
|
||||
}
|
||||
|
||||
ret = perf_event_dev_port_setup(test, opt, 1 /* stride */,
|
||||
atq_nb_event_queues(opt));
|
||||
if (opt->wkr_deq_dep > dev_info.max_event_port_dequeue_depth)
|
||||
opt->wkr_deq_dep = dev_info.max_event_port_dequeue_depth;
|
||||
|
||||
/* port configuration */
|
||||
const struct rte_event_port_conf p_conf = {
|
||||
.dequeue_depth = opt->wkr_deq_dep,
|
||||
.enqueue_depth = dev_info.max_event_port_dequeue_depth,
|
||||
.new_event_threshold = dev_info.max_num_events,
|
||||
};
|
||||
|
||||
ret = perf_event_dev_port_setup(test, opt, 1 /* stride */, nb_queues,
|
||||
&p_conf);
|
||||
if (ret)
|
||||
return ret;
|
||||
|
||||
ret = evt_service_setup(opt->dev_id);
|
||||
if (ret) {
|
||||
evt_err("No service lcore found to run event dev.");
|
||||
return ret;
|
||||
if (!evt_has_distributed_sched(opt->dev_id)) {
|
||||
uint32_t service_id;
|
||||
rte_event_dev_service_id_get(opt->dev_id, &service_id);
|
||||
ret = evt_service_setup(service_id);
|
||||
if (ret) {
|
||||
evt_err("No service lcore found to run event dev.");
|
||||
return ret;
|
||||
}
|
||||
}
|
||||
|
||||
ret = rte_event_dev_start(opt->dev_id);
|
||||
|
@ -271,11 +274,13 @@ static const struct evt_test_ops perf_atq = {
|
|||
.opt_check = perf_atq_opt_check,
|
||||
.opt_dump = perf_atq_opt_dump,
|
||||
.test_setup = perf_test_setup,
|
||||
.ethdev_setup = perf_ethdev_setup,
|
||||
.mempool_setup = perf_mempool_setup,
|
||||
.eventdev_setup = perf_atq_eventdev_setup,
|
||||
.launch_lcores = perf_atq_launch_lcores,
|
||||
.eventdev_destroy = perf_eventdev_destroy,
|
||||
.mempool_destroy = perf_mempool_destroy,
|
||||
.ethdev_destroy = perf_ethdev_destroy,
|
||||
.test_result = perf_test_result,
|
||||
.test_destroy = perf_test_destroy,
|
||||
};
|
||||
|
|
|
@ -1,33 +1,5 @@
|
|||
/*
|
||||
* BSD LICENSE
|
||||
*
|
||||
* Copyright (C) Cavium, Inc 2017.
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
* modification, are permitted provided that the following conditions
|
||||
* are met:
|
||||
*
|
||||
* * Redistributions of source code must retain the above copyright
|
||||
* notice, this list of conditions and the following disclaimer.
|
||||
* * Redistributions in binary form must reproduce the above copyright
|
||||
* notice, this list of conditions and the following disclaimer in
|
||||
* the documentation and/or other materials provided with the
|
||||
* distribution.
|
||||
* * Neither the name of Cavium, Inc nor the names of its
|
||||
* contributors may be used to endorse or promote products derived
|
||||
* from this software without specific prior written permission.
|
||||
*
|
||||
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
|
||||
* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
|
||||
* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
|
||||
* A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
|
||||
* OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
|
||||
* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
|
||||
* LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
|
||||
* DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
|
||||
* THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
||||
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
|
||||
* OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
/* SPDX-License-Identifier: BSD-3-Clause
|
||||
* Copyright(c) 2017 Cavium, Inc
|
||||
*/
|
||||
|
||||
#include "test_perf_common.h"
|
||||
|
@ -36,8 +8,20 @@ int
|
|||
perf_test_result(struct evt_test *test, struct evt_options *opt)
|
||||
{
|
||||
RTE_SET_USED(opt);
|
||||
int i;
|
||||
uint64_t total = 0;
|
||||
struct test_perf *t = evt_test_priv(test);
|
||||
|
||||
printf("Packet distribution across worker cores :\n");
|
||||
for (i = 0; i < t->nb_workers; i++)
|
||||
total += t->worker[i].processed_pkts;
|
||||
for (i = 0; i < t->nb_workers; i++)
|
||||
printf("Worker %d packets: "CLGRN"%"PRIx64" "CLNRM"percentage:"
|
||||
CLGRN" %3.2f\n"CLNRM, i,
|
||||
t->worker[i].processed_pkts,
|
||||
(((double)t->worker[i].processed_pkts)/total)
|
||||
* 100);
|
||||
|
||||
return t->result;
|
||||
}
|
||||
|
||||
|
@ -88,6 +72,145 @@ perf_producer(void *arg)
|
|||
return 0;
|
||||
}
|
||||
|
||||
static inline int
|
||||
perf_event_timer_producer(void *arg)
|
||||
{
|
||||
struct prod_data *p = arg;
|
||||
struct test_perf *t = p->t;
|
||||
struct evt_options *opt = t->opt;
|
||||
uint32_t flow_counter = 0;
|
||||
uint64_t count = 0;
|
||||
uint64_t arm_latency = 0;
|
||||
const uint8_t nb_timer_adptrs = opt->nb_timer_adptrs;
|
||||
const uint32_t nb_flows = t->nb_flows;
|
||||
const uint64_t nb_timers = opt->nb_timers;
|
||||
struct rte_mempool *pool = t->pool;
|
||||
struct perf_elt *m;
|
||||
struct rte_event_timer_adapter **adptr = t->timer_adptr;
|
||||
struct rte_event_timer tim;
|
||||
uint64_t timeout_ticks = opt->expiry_nsec / opt->timer_tick_nsec;
|
||||
|
||||
memset(&tim, 0, sizeof(struct rte_event_timer));
|
||||
timeout_ticks = opt->optm_timer_tick_nsec ?
|
||||
(timeout_ticks * opt->timer_tick_nsec)
|
||||
/ opt->optm_timer_tick_nsec : timeout_ticks;
|
||||
timeout_ticks += timeout_ticks ? 0 : 1;
|
||||
tim.ev.event_type = RTE_EVENT_TYPE_TIMER;
|
||||
tim.ev.op = RTE_EVENT_OP_NEW;
|
||||
tim.ev.sched_type = t->opt->sched_type_list[0];
|
||||
tim.ev.queue_id = p->queue_id;
|
||||
tim.ev.priority = RTE_EVENT_DEV_PRIORITY_NORMAL;
|
||||
tim.state = RTE_EVENT_TIMER_NOT_ARMED;
|
||||
tim.timeout_ticks = timeout_ticks;
|
||||
|
||||
if (opt->verbose_level > 1)
|
||||
printf("%s(): lcore %d\n", __func__, rte_lcore_id());
|
||||
|
||||
while (count < nb_timers && t->done == false) {
|
||||
if (rte_mempool_get(pool, (void **)&m) < 0)
|
||||
continue;
|
||||
|
||||
m->tim = tim;
|
||||
m->tim.ev.flow_id = flow_counter++ % nb_flows;
|
||||
m->tim.ev.event_ptr = m;
|
||||
m->timestamp = rte_get_timer_cycles();
|
||||
while (rte_event_timer_arm_burst(
|
||||
adptr[flow_counter % nb_timer_adptrs],
|
||||
(struct rte_event_timer **)&m, 1) != 1) {
|
||||
if (t->done)
|
||||
break;
|
||||
rte_pause();
|
||||
m->timestamp = rte_get_timer_cycles();
|
||||
}
|
||||
arm_latency += rte_get_timer_cycles() - m->timestamp;
|
||||
count++;
|
||||
}
|
||||
fflush(stdout);
|
||||
rte_delay_ms(1000);
|
||||
printf("%s(): lcore %d Average event timer arm latency = %.3f us\n",
|
||||
__func__, rte_lcore_id(), (float)(arm_latency / count) /
|
||||
(rte_get_timer_hz() / 1000000));
|
||||
return 0;
|
||||
}
|
||||
|
||||
static inline int
|
||||
perf_event_timer_producer_burst(void *arg)
|
||||
{
|
||||
int i;
|
||||
struct prod_data *p = arg;
|
||||
struct test_perf *t = p->t;
|
||||
struct evt_options *opt = t->opt;
|
||||
uint32_t flow_counter = 0;
|
||||
uint64_t count = 0;
|
||||
uint64_t arm_latency = 0;
|
||||
const uint8_t nb_timer_adptrs = opt->nb_timer_adptrs;
|
||||
const uint32_t nb_flows = t->nb_flows;
|
||||
const uint64_t nb_timers = opt->nb_timers;
|
||||
struct rte_mempool *pool = t->pool;
|
||||
struct perf_elt *m[BURST_SIZE + 1] = {NULL};
|
||||
struct rte_event_timer_adapter **adptr = t->timer_adptr;
|
||||
struct rte_event_timer tim;
|
||||
uint64_t timeout_ticks = opt->expiry_nsec / opt->timer_tick_nsec;
|
||||
|
||||
memset(&tim, 0, sizeof(struct rte_event_timer));
|
||||
timeout_ticks = opt->optm_timer_tick_nsec ?
|
||||
(timeout_ticks * opt->timer_tick_nsec)
|
||||
/ opt->optm_timer_tick_nsec : timeout_ticks;
|
||||
timeout_ticks += timeout_ticks ? 0 : 1;
|
||||
tim.ev.event_type = RTE_EVENT_TYPE_TIMER;
|
||||
tim.ev.op = RTE_EVENT_OP_NEW;
|
||||
tim.ev.sched_type = t->opt->sched_type_list[0];
|
||||
tim.ev.queue_id = p->queue_id;
|
||||
tim.ev.priority = RTE_EVENT_DEV_PRIORITY_NORMAL;
|
||||
tim.state = RTE_EVENT_TIMER_NOT_ARMED;
|
||||
tim.timeout_ticks = timeout_ticks;
|
||||
|
||||
if (opt->verbose_level > 1)
|
||||
printf("%s(): lcore %d\n", __func__, rte_lcore_id());
|
||||
|
||||
while (count < nb_timers && t->done == false) {
|
||||
if (rte_mempool_get_bulk(pool, (void **)m, BURST_SIZE) < 0)
|
||||
continue;
|
||||
for (i = 0; i < BURST_SIZE; i++) {
|
||||
rte_prefetch0(m[i + 1]);
|
||||
m[i]->tim = tim;
|
||||
m[i]->tim.ev.flow_id = flow_counter++ % nb_flows;
|
||||
m[i]->tim.ev.event_ptr = m[i];
|
||||
m[i]->timestamp = rte_get_timer_cycles();
|
||||
}
|
||||
rte_event_timer_arm_tmo_tick_burst(
|
||||
adptr[flow_counter % nb_timer_adptrs],
|
||||
(struct rte_event_timer **)m,
|
||||
tim.timeout_ticks,
|
||||
BURST_SIZE);
|
||||
arm_latency += rte_get_timer_cycles() - m[i - 1]->timestamp;
|
||||
count += BURST_SIZE;
|
||||
}
|
||||
fflush(stdout);
|
||||
rte_delay_ms(1000);
|
||||
printf("%s(): lcore %d Average event timer arm latency = %.3f us\n",
|
||||
__func__, rte_lcore_id(), (float)(arm_latency / count) /
|
||||
(rte_get_timer_hz() / 1000000));
|
||||
return 0;
|
||||
}
|
||||
|
||||
static int
|
||||
perf_producer_wrapper(void *arg)
|
||||
{
|
||||
struct prod_data *p = arg;
|
||||
struct test_perf *t = p->t;
|
||||
/* Launch the producer function only in case of synthetic producer. */
|
||||
if (t->opt->prod_type == EVT_PROD_TYPE_SYNT)
|
||||
return perf_producer(arg);
|
||||
else if (t->opt->prod_type == EVT_PROD_TYPE_EVENT_TIMER_ADPTR &&
|
||||
!t->opt->timdev_use_burst)
|
||||
return perf_event_timer_producer(arg);
|
||||
else if (t->opt->prod_type == EVT_PROD_TYPE_EVENT_TIMER_ADPTR &&
|
||||
t->opt->timdev_use_burst)
|
||||
return perf_event_timer_producer_burst(arg);
|
||||
return 0;
|
||||
}
|
||||
|
||||
static inline uint64_t
|
||||
processed_pkts(struct test_perf *t)
|
||||
{
|
||||
|
@ -142,8 +265,8 @@ perf_launch_lcores(struct evt_test *test, struct evt_options *opt,
|
|||
if (!(opt->plcores[lcore_id]))
|
||||
continue;
|
||||
|
||||
ret = rte_eal_remote_launch(perf_producer, &t->prod[port_idx],
|
||||
lcore_id);
|
||||
ret = rte_eal_remote_launch(perf_producer_wrapper,
|
||||
&t->prod[port_idx], lcore_id);
|
||||
if (ret) {
|
||||
evt_err("failed to launch perf_producer %d", lcore_id);
|
||||
return ret;
|
||||
|
@ -151,8 +274,7 @@ perf_launch_lcores(struct evt_test *test, struct evt_options *opt,
|
|||
port_idx++;
|
||||
}
|
||||
|
||||
const uint64_t total_pkts = opt->nb_pkts *
|
||||
evt_nr_active_lcores(opt->plcores);
|
||||
const uint64_t total_pkts = t->outstand_pkts;
|
||||
|
||||
uint64_t dead_lock_cycles = rte_get_timer_cycles();
|
||||
int64_t dead_lock_remaining = total_pkts;
|
||||
|
@ -193,14 +315,19 @@ perf_launch_lcores(struct evt_test *test, struct evt_options *opt,
|
|||
fflush(stdout);
|
||||
|
||||
if (remaining <= 0) {
|
||||
t->done = true;
|
||||
t->result = EVT_TEST_SUCCESS;
|
||||
rte_smp_wmb();
|
||||
break;
|
||||
if (opt->prod_type == EVT_PROD_TYPE_SYNT ||
|
||||
opt->prod_type ==
|
||||
EVT_PROD_TYPE_EVENT_TIMER_ADPTR) {
|
||||
t->done = true;
|
||||
rte_smp_wmb();
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (new_cycles - dead_lock_cycles > dead_lock_sample) {
|
||||
if (new_cycles - dead_lock_cycles > dead_lock_sample &&
|
||||
opt->prod_type == EVT_PROD_TYPE_SYNT) {
|
||||
remaining = t->outstand_pkts - processed_pkts(t);
|
||||
if (dead_lock_remaining == remaining) {
|
||||
rte_event_dev_dump(opt->dev_id, stdout);
|
||||
|
@ -217,21 +344,142 @@ perf_launch_lcores(struct evt_test *test, struct evt_options *opt,
|
|||
return 0;
|
||||
}
|
||||
|
||||
static int
|
||||
perf_event_rx_adapter_setup(struct evt_options *opt, uint8_t stride,
|
||||
struct rte_event_port_conf prod_conf)
|
||||
{
|
||||
int ret = 0;
|
||||
uint16_t prod;
|
||||
struct rte_event_eth_rx_adapter_queue_conf queue_conf;
|
||||
|
||||
memset(&queue_conf, 0,
|
||||
sizeof(struct rte_event_eth_rx_adapter_queue_conf));
|
||||
queue_conf.ev.sched_type = opt->sched_type_list[0];
|
||||
RTE_ETH_FOREACH_DEV(prod) {
|
||||
uint32_t cap;
|
||||
|
||||
ret = rte_event_eth_rx_adapter_caps_get(opt->dev_id,
|
||||
prod, &cap);
|
||||
if (ret) {
|
||||
evt_err("failed to get event rx adapter[%d]"
|
||||
" capabilities",
|
||||
opt->dev_id);
|
||||
return ret;
|
||||
}
|
||||
queue_conf.ev.queue_id = prod * stride;
|
||||
ret = rte_event_eth_rx_adapter_create(prod, opt->dev_id,
|
||||
&prod_conf);
|
||||
if (ret) {
|
||||
evt_err("failed to create rx adapter[%d]", prod);
|
||||
return ret;
|
||||
}
|
||||
ret = rte_event_eth_rx_adapter_queue_add(prod, prod, -1,
|
||||
&queue_conf);
|
||||
if (ret) {
|
||||
evt_err("failed to add rx queues to adapter[%d]", prod);
|
||||
return ret;
|
||||
}
|
||||
|
||||
if (!(cap & RTE_EVENT_ETH_RX_ADAPTER_CAP_INTERNAL_PORT)) {
|
||||
uint32_t service_id;
|
||||
|
||||
rte_event_eth_rx_adapter_service_id_get(prod,
|
||||
&service_id);
|
||||
ret = evt_service_setup(service_id);
|
||||
if (ret) {
|
||||
evt_err("Failed to setup service core"
|
||||
" for Rx adapter\n");
|
||||
return ret;
|
||||
}
|
||||
}
|
||||
|
||||
ret = rte_eth_dev_start(prod);
|
||||
if (ret) {
|
||||
evt_err("Ethernet dev [%d] failed to start."
|
||||
" Using synthetic producer", prod);
|
||||
return ret;
|
||||
}
|
||||
|
||||
ret = rte_event_eth_rx_adapter_start(prod);
|
||||
if (ret) {
|
||||
evt_err("Rx adapter[%d] start failed", prod);
|
||||
return ret;
|
||||
}
|
||||
printf("%s: Port[%d] using Rx adapter[%d] started\n", __func__,
|
||||
prod, prod);
|
||||
}
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
||||
static int
|
||||
perf_event_timer_adapter_setup(struct test_perf *t)
|
||||
{
|
||||
int i;
|
||||
int ret;
|
||||
struct rte_event_timer_adapter_info adapter_info;
|
||||
struct rte_event_timer_adapter *wl;
|
||||
uint8_t nb_producers = evt_nr_active_lcores(t->opt->plcores);
|
||||
uint8_t flags = RTE_EVENT_TIMER_ADAPTER_F_ADJUST_RES;
|
||||
|
||||
if (nb_producers == 1)
|
||||
flags |= RTE_EVENT_TIMER_ADAPTER_F_SP_PUT;
|
||||
|
||||
for (i = 0; i < t->opt->nb_timer_adptrs; i++) {
|
||||
struct rte_event_timer_adapter_conf config = {
|
||||
.event_dev_id = t->opt->dev_id,
|
||||
.timer_adapter_id = i,
|
||||
.timer_tick_ns = t->opt->timer_tick_nsec,
|
||||
.max_tmo_ns = t->opt->max_tmo_nsec,
|
||||
.nb_timers = 2 * 1024 * 1024,
|
||||
.flags = flags,
|
||||
};
|
||||
|
||||
wl = rte_event_timer_adapter_create(&config);
|
||||
if (wl == NULL) {
|
||||
evt_err("failed to create event timer ring %d", i);
|
||||
return rte_errno;
|
||||
}
|
||||
|
||||
memset(&adapter_info, 0,
|
||||
sizeof(struct rte_event_timer_adapter_info));
|
||||
rte_event_timer_adapter_get_info(wl, &adapter_info);
|
||||
t->opt->optm_timer_tick_nsec = adapter_info.min_resolution_ns;
|
||||
|
||||
if (!(adapter_info.caps &
|
||||
RTE_EVENT_TIMER_ADAPTER_CAP_INTERNAL_PORT)) {
|
||||
uint32_t service_id;
|
||||
|
||||
rte_event_timer_adapter_service_id_get(wl,
|
||||
&service_id);
|
||||
ret = evt_service_setup(service_id);
|
||||
if (ret) {
|
||||
evt_err("Failed to setup service core"
|
||||
" for timer adapter\n");
|
||||
return ret;
|
||||
}
|
||||
rte_service_runstate_set(service_id, 1);
|
||||
}
|
||||
|
||||
ret = rte_event_timer_adapter_start(wl);
|
||||
if (ret) {
|
||||
evt_err("failed to Start event timer adapter %d", i);
|
||||
return ret;
|
||||
}
|
||||
t->timer_adptr[i] = wl;
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
||||
int
|
||||
perf_event_dev_port_setup(struct evt_test *test, struct evt_options *opt,
|
||||
uint8_t stride, uint8_t nb_queues)
|
||||
uint8_t stride, uint8_t nb_queues,
|
||||
const struct rte_event_port_conf *port_conf)
|
||||
{
|
||||
struct test_perf *t = evt_test_priv(test);
|
||||
uint8_t port, prod;
|
||||
uint16_t port, prod;
|
||||
int ret = -1;
|
||||
|
||||
/* port configuration */
|
||||
const struct rte_event_port_conf wkr_p_conf = {
|
||||
.dequeue_depth = opt->wkr_deq_dep,
|
||||
.enqueue_depth = 64,
|
||||
.new_event_threshold = 4096,
|
||||
};
|
||||
|
||||
/* setup one port per worker, linking to all queues */
|
||||
for (port = 0; port < evt_nr_active_lcores(opt->wlcores);
|
||||
port++) {
|
||||
|
@ -243,7 +491,7 @@ perf_event_dev_port_setup(struct evt_test *test, struct evt_options *opt,
|
|||
w->processed_pkts = 0;
|
||||
w->latency = 0;
|
||||
|
||||
ret = rte_event_port_setup(opt->dev_id, port, &wkr_p_conf);
|
||||
ret = rte_event_port_setup(opt->dev_id, port, port_conf);
|
||||
if (ret) {
|
||||
evt_err("failed to setup port %d", port);
|
||||
return ret;
|
||||
|
@ -257,26 +505,45 @@ perf_event_dev_port_setup(struct evt_test *test, struct evt_options *opt,
|
|||
}
|
||||
|
||||
/* port for producers, no links */
|
||||
const struct rte_event_port_conf prod_conf = {
|
||||
.dequeue_depth = 8,
|
||||
.enqueue_depth = 32,
|
||||
.new_event_threshold = 1200,
|
||||
};
|
||||
prod = 0;
|
||||
for ( ; port < perf_nb_event_ports(opt); port++) {
|
||||
struct prod_data *p = &t->prod[port];
|
||||
|
||||
p->dev_id = opt->dev_id;
|
||||
p->port_id = port;
|
||||
p->queue_id = prod * stride;
|
||||
p->t = t;
|
||||
|
||||
ret = rte_event_port_setup(opt->dev_id, port, &prod_conf);
|
||||
if (ret) {
|
||||
evt_err("failed to setup port %d", port);
|
||||
return ret;
|
||||
if (opt->prod_type == EVT_PROD_TYPE_ETH_RX_ADPTR) {
|
||||
for ( ; port < perf_nb_event_ports(opt); port++) {
|
||||
struct prod_data *p = &t->prod[port];
|
||||
p->t = t;
|
||||
}
|
||||
|
||||
ret = perf_event_rx_adapter_setup(opt, stride, *port_conf);
|
||||
if (ret)
|
||||
return ret;
|
||||
} else if (opt->prod_type == EVT_PROD_TYPE_EVENT_TIMER_ADPTR) {
|
||||
prod = 0;
|
||||
for ( ; port < perf_nb_event_ports(opt); port++) {
|
||||
struct prod_data *p = &t->prod[port];
|
||||
p->queue_id = prod * stride;
|
||||
p->t = t;
|
||||
prod++;
|
||||
}
|
||||
|
||||
ret = perf_event_timer_adapter_setup(t);
|
||||
if (ret)
|
||||
return ret;
|
||||
} else {
|
||||
prod = 0;
|
||||
for ( ; port < perf_nb_event_ports(opt); port++) {
|
||||
struct prod_data *p = &t->prod[port];
|
||||
|
||||
p->dev_id = opt->dev_id;
|
||||
p->port_id = port;
|
||||
p->queue_id = prod * stride;
|
||||
p->t = t;
|
||||
|
||||
ret = rte_event_port_setup(opt->dev_id, port,
|
||||
port_conf);
|
||||
if (ret) {
|
||||
evt_err("failed to setup port %d", port);
|
||||
return ret;
|
||||
}
|
||||
prod++;
|
||||
}
|
||||
prod++;
|
||||
}
|
||||
|
||||
return ret;
|
||||
|
@ -287,8 +554,10 @@ perf_opt_check(struct evt_options *opt, uint64_t nb_queues)
|
|||
{
|
||||
unsigned int lcores;
|
||||
|
||||
/* N producer + N worker + 1 master */
|
||||
lcores = 3;
|
||||
/* N producer + N worker + 1 master when producer cores are used
|
||||
* Else N worker + 1 master when Rx adapter is used
|
||||
*/
|
||||
lcores = opt->prod_type == EVT_PROD_TYPE_SYNT ? 3 : 2;
|
||||
|
||||
if (rte_lcore_count() < lcores) {
|
||||
evt_err("test need minimum %d lcores", lcores);
|
||||
|
@ -313,18 +582,21 @@ perf_opt_check(struct evt_options *opt, uint64_t nb_queues)
|
|||
return -1;
|
||||
}
|
||||
|
||||
/* Validate producer lcores */
|
||||
if (evt_lcores_has_overlap(opt->plcores, rte_get_master_lcore())) {
|
||||
evt_err("producer lcores overlaps with master lcore");
|
||||
return -1;
|
||||
}
|
||||
if (evt_has_disabled_lcore(opt->plcores)) {
|
||||
evt_err("one or more producer lcores are not enabled");
|
||||
return -1;
|
||||
}
|
||||
if (!evt_has_active_lcore(opt->plcores)) {
|
||||
evt_err("minimum one producer is required");
|
||||
return -1;
|
||||
if (opt->prod_type == EVT_PROD_TYPE_SYNT) {
|
||||
/* Validate producer lcores */
|
||||
if (evt_lcores_has_overlap(opt->plcores,
|
||||
rte_get_master_lcore())) {
|
||||
evt_err("producer lcores overlaps with master lcore");
|
||||
return -1;
|
||||
}
|
||||
if (evt_has_disabled_lcore(opt->plcores)) {
|
||||
evt_err("one or more producer lcores are not enabled");
|
||||
return -1;
|
||||
}
|
||||
if (!evt_has_active_lcore(opt->plcores)) {
|
||||
evt_err("minimum one producer is required");
|
||||
return -1;
|
||||
}
|
||||
}
|
||||
|
||||
if (evt_has_invalid_stage(opt))
|
||||
|
@ -343,10 +615,13 @@ perf_opt_check(struct evt_options *opt, uint64_t nb_queues)
|
|||
}
|
||||
|
||||
/* Fixups */
|
||||
if (opt->nb_stages == 1 && opt->fwd_latency) {
|
||||
if ((opt->nb_stages == 1 &&
|
||||
opt->prod_type != EVT_PROD_TYPE_EVENT_TIMER_ADPTR) &&
|
||||
opt->fwd_latency) {
|
||||
evt_info("fwd_latency is valid when nb_stages > 1, disabling");
|
||||
opt->fwd_latency = 0;
|
||||
}
|
||||
|
||||
if (opt->fwd_latency && !opt->q_priority) {
|
||||
evt_info("enabled queue priority for latency measurement");
|
||||
opt->q_priority = 1;
|
||||
|
@ -369,13 +644,19 @@ perf_opt_dump(struct evt_options *opt, uint8_t nb_queues)
|
|||
evt_dump("nb_evdev_queues", "%d", nb_queues);
|
||||
evt_dump_queue_priority(opt);
|
||||
evt_dump_sched_type_list(opt);
|
||||
evt_dump_producer_type(opt);
|
||||
}
|
||||
|
||||
void
|
||||
perf_eventdev_destroy(struct evt_test *test, struct evt_options *opt)
|
||||
{
|
||||
RTE_SET_USED(test);
|
||||
int i;
|
||||
struct test_perf *t = evt_test_priv(test);
|
||||
|
||||
if (opt->prod_type == EVT_PROD_TYPE_EVENT_TIMER_ADPTR) {
|
||||
for (i = 0; i < opt->nb_timer_adptrs; i++)
|
||||
rte_event_timer_adapter_stop(t->timer_adptr[i]);
|
||||
}
|
||||
rte_event_dev_stop(opt->dev_id);
|
||||
rte_event_dev_close(opt->dev_id);
|
||||
}
|
||||
|
@ -387,18 +668,115 @@ perf_elt_init(struct rte_mempool *mp, void *arg __rte_unused,
|
|||
memset(obj, 0, mp->elt_size);
|
||||
}
|
||||
|
||||
#define NB_RX_DESC 128
|
||||
#define NB_TX_DESC 512
|
||||
int
|
||||
perf_ethdev_setup(struct evt_test *test, struct evt_options *opt)
|
||||
{
|
||||
uint16_t i;
|
||||
struct test_perf *t = evt_test_priv(test);
|
||||
struct rte_eth_conf port_conf = {
|
||||
.rxmode = {
|
||||
.mq_mode = ETH_MQ_RX_RSS,
|
||||
.max_rx_pkt_len = ETHER_MAX_LEN,
|
||||
.split_hdr_size = 0,
|
||||
},
|
||||
.rx_adv_conf = {
|
||||
.rss_conf = {
|
||||
.rss_key = NULL,
|
||||
.rss_hf = ETH_RSS_IP,
|
||||
},
|
||||
},
|
||||
};
|
||||
|
||||
if (opt->prod_type == EVT_PROD_TYPE_SYNT ||
|
||||
opt->prod_type == EVT_PROD_TYPE_EVENT_TIMER_ADPTR)
|
||||
return 0;
|
||||
|
||||
if (!rte_eth_dev_count_avail()) {
|
||||
evt_err("No ethernet ports found.");
|
||||
return -ENODEV;
|
||||
}
|
||||
|
||||
RTE_ETH_FOREACH_DEV(i) {
|
||||
struct rte_eth_dev_info dev_info;
|
||||
struct rte_eth_conf local_port_conf = port_conf;
|
||||
|
||||
rte_eth_dev_info_get(i, &dev_info);
|
||||
|
||||
local_port_conf.rx_adv_conf.rss_conf.rss_hf &=
|
||||
dev_info.flow_type_rss_offloads;
|
||||
if (local_port_conf.rx_adv_conf.rss_conf.rss_hf !=
|
||||
port_conf.rx_adv_conf.rss_conf.rss_hf) {
|
||||
evt_info("Port %u modified RSS hash function based on hardware support,"
|
||||
"requested:%#"PRIx64" configured:%#"PRIx64"\n",
|
||||
i,
|
||||
port_conf.rx_adv_conf.rss_conf.rss_hf,
|
||||
local_port_conf.rx_adv_conf.rss_conf.rss_hf);
|
||||
}
|
||||
|
||||
if (rte_eth_dev_configure(i, 1, 1, &local_port_conf) < 0) {
|
||||
evt_err("Failed to configure eth port [%d]", i);
|
||||
return -EINVAL;
|
||||
}
|
||||
|
||||
if (rte_eth_rx_queue_setup(i, 0, NB_RX_DESC,
|
||||
rte_socket_id(), NULL, t->pool) < 0) {
|
||||
evt_err("Failed to setup eth port [%d] rx_queue: %d.",
|
||||
i, 0);
|
||||
return -EINVAL;
|
||||
}
|
||||
|
||||
if (rte_eth_tx_queue_setup(i, 0, NB_TX_DESC,
|
||||
rte_socket_id(), NULL) < 0) {
|
||||
evt_err("Failed to setup eth port [%d] tx_queue: %d.",
|
||||
i, 0);
|
||||
return -EINVAL;
|
||||
}
|
||||
|
||||
rte_eth_promiscuous_enable(i);
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
void perf_ethdev_destroy(struct evt_test *test, struct evt_options *opt)
|
||||
{
|
||||
uint16_t i;
|
||||
RTE_SET_USED(test);
|
||||
|
||||
if (opt->prod_type == EVT_PROD_TYPE_ETH_RX_ADPTR) {
|
||||
RTE_ETH_FOREACH_DEV(i) {
|
||||
rte_event_eth_rx_adapter_stop(i);
|
||||
rte_eth_dev_stop(i);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
int
|
||||
perf_mempool_setup(struct evt_test *test, struct evt_options *opt)
|
||||
{
|
||||
struct test_perf *t = evt_test_priv(test);
|
||||
|
||||
t->pool = rte_mempool_create(test->name, /* mempool name */
|
||||
if (opt->prod_type == EVT_PROD_TYPE_SYNT ||
|
||||
opt->prod_type == EVT_PROD_TYPE_EVENT_TIMER_ADPTR) {
|
||||
t->pool = rte_mempool_create(test->name, /* mempool name */
|
||||
opt->pool_sz, /* number of elements*/
|
||||
sizeof(struct perf_elt), /* element size*/
|
||||
512, /* cache size*/
|
||||
0, NULL, NULL,
|
||||
perf_elt_init, /* obj constructor */
|
||||
NULL, opt->socket_id, 0); /* flags */
|
||||
} else {
|
||||
t->pool = rte_pktmbuf_pool_create(test->name, /* mempool name */
|
||||
opt->pool_sz, /* number of elements*/
|
||||
512, /* cache size*/
|
||||
0,
|
||||
RTE_MBUF_DEFAULT_BUF_SIZE,
|
||||
opt->socket_id); /* flags */
|
||||
|
||||
}
|
||||
|
||||
if (t->pool == NULL) {
|
||||
evt_err("failed to create mempool");
|
||||
return -ENOMEM;
|
||||
|
@ -431,10 +809,18 @@ perf_test_setup(struct evt_test *test, struct evt_options *opt)
|
|||
|
||||
struct test_perf *t = evt_test_priv(test);
|
||||
|
||||
t->outstand_pkts = opt->nb_pkts * evt_nr_active_lcores(opt->plcores);
|
||||
if (opt->prod_type == EVT_PROD_TYPE_EVENT_TIMER_ADPTR) {
|
||||
t->outstand_pkts = opt->nb_timers *
|
||||
evt_nr_active_lcores(opt->plcores);
|
||||
t->nb_pkts = opt->nb_timers;
|
||||
} else {
|
||||
t->outstand_pkts = opt->nb_pkts *
|
||||
evt_nr_active_lcores(opt->plcores);
|
||||
t->nb_pkts = opt->nb_pkts;
|
||||
}
|
||||
|
||||
t->nb_workers = evt_nr_active_lcores(opt->wlcores);
|
||||
t->done = false;
|
||||
t->nb_pkts = opt->nb_pkts;
|
||||
t->nb_flows = opt->nb_flows;
|
||||
t->result = EVT_TEST_FAILED;
|
||||
t->opt = opt;
|
||||
|
|
|
@ -1,33 +1,5 @@
|
|||
/*
|
||||
* BSD LICENSE
|
||||
*
|
||||
* Copyright (C) Cavium, Inc 2017.
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
* modification, are permitted provided that the following conditions
|
||||
* are met:
|
||||
*
|
||||
* * Redistributions of source code must retain the above copyright
|
||||
* notice, this list of conditions and the following disclaimer.
|
||||
* * Redistributions in binary form must reproduce the above copyright
|
||||
* notice, this list of conditions and the following disclaimer in
|
||||
* the documentation and/or other materials provided with the
|
||||
* distribution.
|
||||
* * Neither the name of Cavium, Inc nor the names of its
|
||||
* contributors may be used to endorse or promote products derived
|
||||
* from this software without specific prior written permission.
|
||||
*
|
||||
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
|
||||
* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
|
||||
* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
|
||||
* A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
|
||||
* OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
|
||||
* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
|
||||
* LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
|
||||
* DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
|
||||
* THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
||||
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
|
||||
* OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
/* SPDX-License-Identifier: BSD-3-Clause
|
||||
* Copyright(c) 2017 Cavium, Inc
|
||||
*/
|
||||
|
||||
#ifndef _TEST_PERF_COMMON_
|
||||
|
@ -38,7 +10,10 @@
|
|||
#include <unistd.h>
|
||||
|
||||
#include <rte_cycles.h>
|
||||
#include <rte_ethdev.h>
|
||||
#include <rte_eventdev.h>
|
||||
#include <rte_event_eth_rx_adapter.h>
|
||||
#include <rte_event_timer_adapter.h>
|
||||
#include <rte_lcore.h>
|
||||
#include <rte_malloc.h>
|
||||
#include <rte_mempool.h>
|
||||
|
@ -65,6 +40,7 @@ struct prod_data {
|
|||
struct test_perf *t;
|
||||
} __rte_cache_aligned;
|
||||
|
||||
|
||||
struct test_perf {
|
||||
/* Don't change the offset of "done". Signal handler use this memory
|
||||
* to terminate all lcores work.
|
||||
|
@ -80,10 +56,18 @@ struct test_perf {
|
|||
struct worker_data worker[EVT_MAX_PORTS];
|
||||
struct evt_options *opt;
|
||||
uint8_t sched_type_list[EVT_MAX_STAGES] __rte_cache_aligned;
|
||||
struct rte_event_timer_adapter *timer_adptr[
|
||||
RTE_EVENT_TIMER_ADAPTER_NUM_MAX] __rte_cache_aligned;
|
||||
} __rte_cache_aligned;
|
||||
|
||||
struct perf_elt {
|
||||
uint64_t timestamp;
|
||||
union {
|
||||
struct rte_event_timer tim;
|
||||
struct {
|
||||
char pad[offsetof(struct rte_event_timer, user_meta)];
|
||||
uint64_t timestamp;
|
||||
};
|
||||
};
|
||||
} __rte_cache_aligned;
|
||||
|
||||
#define BURST_SIZE 16
|
||||
|
@ -94,6 +78,8 @@ struct perf_elt {
|
|||
struct evt_options *opt = t->opt;\
|
||||
const uint8_t dev = w->dev_id;\
|
||||
const uint8_t port = w->port_id;\
|
||||
const uint8_t prod_timer_type = \
|
||||
opt->prod_type == EVT_PROD_TYPE_EVENT_TIMER_ADPTR;\
|
||||
uint8_t *const sched_type_list = &t->sched_type_list[0];\
|
||||
struct rte_mempool *const pool = t->pool;\
|
||||
const uint8_t nb_stages = t->opt->nb_stages;\
|
||||
|
@ -156,15 +142,18 @@ perf_nb_event_ports(struct evt_options *opt)
|
|||
int perf_test_result(struct evt_test *test, struct evt_options *opt);
|
||||
int perf_opt_check(struct evt_options *opt, uint64_t nb_queues);
|
||||
int perf_test_setup(struct evt_test *test, struct evt_options *opt);
|
||||
int perf_ethdev_setup(struct evt_test *test, struct evt_options *opt);
|
||||
int perf_mempool_setup(struct evt_test *test, struct evt_options *opt);
|
||||
int perf_event_dev_port_setup(struct evt_test *test, struct evt_options *opt,
|
||||
uint8_t stride, uint8_t nb_queues);
|
||||
uint8_t stride, uint8_t nb_queues,
|
||||
const struct rte_event_port_conf *port_conf);
|
||||
int perf_event_dev_service_setup(uint8_t dev_id);
|
||||
int perf_launch_lcores(struct evt_test *test, struct evt_options *opt,
|
||||
int (*worker)(void *));
|
||||
void perf_opt_dump(struct evt_options *opt, uint8_t nb_queues);
|
||||
void perf_test_destroy(struct evt_test *test, struct evt_options *opt);
|
||||
void perf_eventdev_destroy(struct evt_test *test, struct evt_options *opt);
|
||||
void perf_ethdev_destroy(struct evt_test *test, struct evt_options *opt);
|
||||
void perf_mempool_destroy(struct evt_test *test, struct evt_options *opt);
|
||||
|
||||
#endif /* _TEST_PERF_COMMON_ */
|
||||
|
|
|
@ -1,44 +1,18 @@
|
|||
/*
|
||||
* BSD LICENSE
|
||||
*
|
||||
* Copyright (C) Cavium, Inc 2017.
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
* modification, are permitted provided that the following conditions
|
||||
* are met:
|
||||
*
|
||||
* * Redistributions of source code must retain the above copyright
|
||||
* notice, this list of conditions and the following disclaimer.
|
||||
* * Redistributions in binary form must reproduce the above copyright
|
||||
* notice, this list of conditions and the following disclaimer in
|
||||
* the documentation and/or other materials provided with the
|
||||
* distribution.
|
||||
* * Neither the name of Cavium, Inc nor the names of its
|
||||
* contributors may be used to endorse or promote products derived
|
||||
* from this software without specific prior written permission.
|
||||
*
|
||||
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
|
||||
* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
|
||||
* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
|
||||
* A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
|
||||
* OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
|
||||
* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
|
||||
* LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
|
||||
* DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
|
||||
* THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
||||
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
|
||||
* OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
/* SPDX-License-Identifier: BSD-3-Clause
|
||||
* Copyright(c) 2017 Cavium, Inc
|
||||
*/
|
||||
|
||||
#include "test_perf_common.h"
|
||||
|
||||
/* See http://dpdk.org/doc/guides/tools/testeventdev.html for test details */
|
||||
/* See http://doc.dpdk.org/guides/tools/testeventdev.html for test details */
|
||||
|
||||
static inline int
|
||||
perf_queue_nb_event_queues(struct evt_options *opt)
|
||||
{
|
||||
/* nb_queues = number of producers * number of stages */
|
||||
return evt_nr_active_lcores(opt->plcores) * opt->nb_stages;
|
||||
uint8_t nb_prod = opt->prod_type == EVT_PROD_TYPE_ETH_RX_ADPTR ?
|
||||
rte_eth_dev_count_avail() : evt_nr_active_lcores(opt->plcores);
|
||||
return nb_prod * opt->nb_stages;
|
||||
}
|
||||
|
||||
static inline __attribute__((always_inline)) void
|
||||
|
@ -75,7 +49,7 @@ perf_queue_worker(void *arg, const int enable_fwd_latency)
|
|||
rte_pause();
|
||||
continue;
|
||||
}
|
||||
if (enable_fwd_latency)
|
||||
if (enable_fwd_latency && !prod_timer_type)
|
||||
/* first q in pipeline, mark timestamp to compute fwd latency */
|
||||
mark_fwd_latency(&ev, nb_stages);
|
||||
|
||||
|
@ -114,7 +88,7 @@ perf_queue_worker_burst(void *arg, const int enable_fwd_latency)
|
|||
}
|
||||
|
||||
for (i = 0; i < nb_rx; i++) {
|
||||
if (enable_fwd_latency) {
|
||||
if (enable_fwd_latency && !prod_timer_type) {
|
||||
rte_prefetch0(ev[i+1].event_ptr);
|
||||
/* first queue in pipeline.
|
||||
* mark time stamp to compute fwd latency
|
||||
|
@ -182,14 +156,33 @@ perf_queue_eventdev_setup(struct evt_test *test, struct evt_options *opt)
|
|||
uint8_t queue;
|
||||
int nb_stages = opt->nb_stages;
|
||||
int ret;
|
||||
int nb_ports;
|
||||
int nb_queues;
|
||||
struct rte_event_dev_info dev_info;
|
||||
|
||||
nb_ports = evt_nr_active_lcores(opt->wlcores);
|
||||
nb_ports += opt->prod_type == EVT_PROD_TYPE_ETH_RX_ADPTR ||
|
||||
opt->prod_type == EVT_PROD_TYPE_EVENT_TIMER_ADPTR ? 0 :
|
||||
evt_nr_active_lcores(opt->plcores);
|
||||
|
||||
nb_queues = perf_queue_nb_event_queues(opt);
|
||||
|
||||
memset(&dev_info, 0, sizeof(struct rte_event_dev_info));
|
||||
ret = rte_event_dev_info_get(opt->dev_id, &dev_info);
|
||||
if (ret) {
|
||||
evt_err("failed to get eventdev info %d", opt->dev_id);
|
||||
return ret;
|
||||
}
|
||||
|
||||
const struct rte_event_dev_config config = {
|
||||
.nb_event_queues = perf_queue_nb_event_queues(opt),
|
||||
.nb_event_ports = perf_nb_event_ports(opt),
|
||||
.nb_events_limit = 4096,
|
||||
.nb_event_queues = nb_queues,
|
||||
.nb_event_ports = nb_ports,
|
||||
.nb_events_limit = dev_info.max_num_events,
|
||||
.nb_event_queue_flows = opt->nb_flows,
|
||||
.nb_event_port_dequeue_depth = 128,
|
||||
.nb_event_port_enqueue_depth = 128,
|
||||
.nb_event_port_dequeue_depth =
|
||||
dev_info.max_event_port_dequeue_depth,
|
||||
.nb_event_port_enqueue_depth =
|
||||
dev_info.max_event_port_enqueue_depth,
|
||||
};
|
||||
|
||||
ret = rte_event_dev_configure(opt->dev_id, &config);
|
||||
|
@ -204,7 +197,7 @@ perf_queue_eventdev_setup(struct evt_test *test, struct evt_options *opt)
|
|||
.nb_atomic_order_sequences = opt->nb_flows,
|
||||
};
|
||||
/* queue configurations */
|
||||
for (queue = 0; queue < perf_queue_nb_event_queues(opt); queue++) {
|
||||
for (queue = 0; queue < nb_queues; queue++) {
|
||||
q_conf.schedule_type =
|
||||
(opt->sched_type_list[queue % nb_stages]);
|
||||
|
||||
|
@ -227,15 +220,29 @@ perf_queue_eventdev_setup(struct evt_test *test, struct evt_options *opt)
|
|||
}
|
||||
}
|
||||
|
||||
if (opt->wkr_deq_dep > dev_info.max_event_port_dequeue_depth)
|
||||
opt->wkr_deq_dep = dev_info.max_event_port_dequeue_depth;
|
||||
|
||||
/* port configuration */
|
||||
const struct rte_event_port_conf p_conf = {
|
||||
.dequeue_depth = opt->wkr_deq_dep,
|
||||
.enqueue_depth = dev_info.max_event_port_dequeue_depth,
|
||||
.new_event_threshold = dev_info.max_num_events,
|
||||
};
|
||||
|
||||
ret = perf_event_dev_port_setup(test, opt, nb_stages /* stride */,
|
||||
perf_queue_nb_event_queues(opt));
|
||||
nb_queues, &p_conf);
|
||||
if (ret)
|
||||
return ret;
|
||||
|
||||
ret = evt_service_setup(opt->dev_id);
|
||||
if (ret) {
|
||||
evt_err("No service lcore found to run event dev.");
|
||||
return ret;
|
||||
if (!evt_has_distributed_sched(opt->dev_id)) {
|
||||
uint32_t service_id;
|
||||
rte_event_dev_service_id_get(opt->dev_id, &service_id);
|
||||
ret = evt_service_setup(service_id);
|
||||
if (ret) {
|
||||
evt_err("No service lcore found to run event dev.");
|
||||
return ret;
|
||||
}
|
||||
}
|
||||
|
||||
ret = rte_event_dev_start(opt->dev_id);
|
||||
|
@ -283,10 +290,12 @@ static const struct evt_test_ops perf_queue = {
|
|||
.opt_dump = perf_queue_opt_dump,
|
||||
.test_setup = perf_test_setup,
|
||||
.mempool_setup = perf_mempool_setup,
|
||||
.ethdev_setup = perf_ethdev_setup,
|
||||
.eventdev_setup = perf_queue_eventdev_setup,
|
||||
.launch_lcores = perf_queue_launch_lcores,
|
||||
.eventdev_destroy = perf_eventdev_destroy,
|
||||
.mempool_destroy = perf_mempool_destroy,
|
||||
.ethdev_destroy = perf_ethdev_destroy,
|
||||
.test_result = perf_test_result,
|
||||
.test_destroy = perf_test_destroy,
|
||||
};
|
||||
|
|
|
@ -0,0 +1,527 @@
|
|||
/*
|
||||
* SPDX-License-Identifier: BSD-3-Clause
|
||||
* Copyright 2017 Cavium, Inc.
|
||||
*/
|
||||
|
||||
#include "test_pipeline_common.h"
|
||||
|
||||
/* See http://doc.dpdk.org/guides/tools/testeventdev.html for test details */
|
||||
|
||||
static __rte_always_inline int
|
||||
pipeline_atq_nb_event_queues(struct evt_options *opt)
|
||||
{
|
||||
RTE_SET_USED(opt);
|
||||
|
||||
return rte_eth_dev_count_avail();
|
||||
}
|
||||
|
||||
static __rte_noinline int
|
||||
pipeline_atq_worker_single_stage_tx(void *arg)
|
||||
{
|
||||
PIPELINE_WORKER_SINGLE_STAGE_INIT;
|
||||
|
||||
while (t->done == false) {
|
||||
uint16_t event = rte_event_dequeue_burst(dev, port, &ev, 1, 0);
|
||||
|
||||
if (!event) {
|
||||
rte_pause();
|
||||
continue;
|
||||
}
|
||||
|
||||
pipeline_event_tx(dev, port, &ev);
|
||||
w->processed_pkts++;
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
static __rte_noinline int
|
||||
pipeline_atq_worker_single_stage_fwd(void *arg)
|
||||
{
|
||||
PIPELINE_WORKER_SINGLE_STAGE_INIT;
|
||||
const uint8_t *tx_queue = t->tx_evqueue_id;
|
||||
|
||||
while (t->done == false) {
|
||||
uint16_t event = rte_event_dequeue_burst(dev, port, &ev, 1, 0);
|
||||
|
||||
if (!event) {
|
||||
rte_pause();
|
||||
continue;
|
||||
}
|
||||
|
||||
ev.queue_id = tx_queue[ev.mbuf->port];
|
||||
pipeline_fwd_event(&ev, RTE_SCHED_TYPE_ATOMIC);
|
||||
pipeline_event_enqueue(dev, port, &ev);
|
||||
w->processed_pkts++;
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
static __rte_noinline int
|
||||
pipeline_atq_worker_single_stage_burst_tx(void *arg)
|
||||
{
|
||||
PIPELINE_WORKER_SINGLE_STAGE_BURST_INIT;
|
||||
|
||||
while (t->done == false) {
|
||||
uint16_t nb_rx = rte_event_dequeue_burst(dev, port, ev,
|
||||
BURST_SIZE, 0);
|
||||
|
||||
if (!nb_rx) {
|
||||
rte_pause();
|
||||
continue;
|
||||
}
|
||||
|
||||
for (i = 0; i < nb_rx; i++) {
|
||||
rte_prefetch0(ev[i + 1].mbuf);
|
||||
rte_event_eth_tx_adapter_txq_set(ev[i].mbuf, 0);
|
||||
}
|
||||
|
||||
pipeline_event_tx_burst(dev, port, ev, nb_rx);
|
||||
w->processed_pkts += nb_rx;
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
static __rte_noinline int
|
||||
pipeline_atq_worker_single_stage_burst_fwd(void *arg)
|
||||
{
|
||||
PIPELINE_WORKER_SINGLE_STAGE_BURST_INIT;
|
||||
const uint8_t *tx_queue = t->tx_evqueue_id;
|
||||
|
||||
while (t->done == false) {
|
||||
uint16_t nb_rx = rte_event_dequeue_burst(dev, port, ev,
|
||||
BURST_SIZE, 0);
|
||||
|
||||
if (!nb_rx) {
|
||||
rte_pause();
|
||||
continue;
|
||||
}
|
||||
|
||||
for (i = 0; i < nb_rx; i++) {
|
||||
rte_prefetch0(ev[i + 1].mbuf);
|
||||
rte_event_eth_tx_adapter_txq_set(ev[i].mbuf, 0);
|
||||
ev[i].queue_id = tx_queue[ev[i].mbuf->port];
|
||||
pipeline_fwd_event(&ev[i], RTE_SCHED_TYPE_ATOMIC);
|
||||
}
|
||||
|
||||
pipeline_event_enqueue_burst(dev, port, ev, nb_rx);
|
||||
w->processed_pkts += nb_rx;
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
static __rte_noinline int
|
||||
pipeline_atq_worker_multi_stage_tx(void *arg)
|
||||
{
|
||||
PIPELINE_WORKER_MULTI_STAGE_INIT;
|
||||
|
||||
while (t->done == false) {
|
||||
uint16_t event = rte_event_dequeue_burst(dev, port, &ev, 1, 0);
|
||||
|
||||
if (!event) {
|
||||
rte_pause();
|
||||
continue;
|
||||
}
|
||||
|
||||
cq_id = ev.sub_event_type % nb_stages;
|
||||
|
||||
if (cq_id == last_queue) {
|
||||
pipeline_event_tx(dev, port, &ev);
|
||||
w->processed_pkts++;
|
||||
continue;
|
||||
}
|
||||
|
||||
ev.sub_event_type++;
|
||||
pipeline_fwd_event(&ev, sched_type_list[cq_id]);
|
||||
pipeline_event_enqueue(dev, port, &ev);
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
static __rte_noinline int
|
||||
pipeline_atq_worker_multi_stage_fwd(void *arg)
|
||||
{
|
||||
PIPELINE_WORKER_MULTI_STAGE_INIT;
|
||||
const uint8_t *tx_queue = t->tx_evqueue_id;
|
||||
|
||||
while (t->done == false) {
|
||||
uint16_t event = rte_event_dequeue_burst(dev, port, &ev, 1, 0);
|
||||
|
||||
if (!event) {
|
||||
rte_pause();
|
||||
continue;
|
||||
}
|
||||
|
||||
cq_id = ev.sub_event_type % nb_stages;
|
||||
|
||||
if (cq_id == last_queue) {
|
||||
ev.queue_id = tx_queue[ev.mbuf->port];
|
||||
pipeline_fwd_event(&ev, RTE_SCHED_TYPE_ATOMIC);
|
||||
w->processed_pkts++;
|
||||
} else {
|
||||
ev.sub_event_type++;
|
||||
pipeline_fwd_event(&ev, sched_type_list[cq_id]);
|
||||
}
|
||||
|
||||
pipeline_event_enqueue(dev, port, &ev);
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
static __rte_noinline int
|
||||
pipeline_atq_worker_multi_stage_burst_tx(void *arg)
|
||||
{
|
||||
PIPELINE_WORKER_MULTI_STAGE_BURST_INIT;
|
||||
|
||||
while (t->done == false) {
|
||||
uint16_t nb_rx = rte_event_dequeue_burst(dev, port, ev,
|
||||
BURST_SIZE, 0);
|
||||
|
||||
if (!nb_rx) {
|
||||
rte_pause();
|
||||
continue;
|
||||
}
|
||||
|
||||
for (i = 0; i < nb_rx; i++) {
|
||||
rte_prefetch0(ev[i + 1].mbuf);
|
||||
cq_id = ev[i].sub_event_type % nb_stages;
|
||||
|
||||
if (cq_id == last_queue) {
|
||||
pipeline_event_tx(dev, port, &ev[i]);
|
||||
ev[i].op = RTE_EVENT_OP_RELEASE;
|
||||
w->processed_pkts++;
|
||||
continue;
|
||||
}
|
||||
|
||||
ev[i].sub_event_type++;
|
||||
pipeline_fwd_event(&ev[i], sched_type_list[cq_id]);
|
||||
}
|
||||
|
||||
pipeline_event_enqueue_burst(dev, port, ev, nb_rx);
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
static __rte_noinline int
|
||||
pipeline_atq_worker_multi_stage_burst_fwd(void *arg)
|
||||
{
|
||||
PIPELINE_WORKER_MULTI_STAGE_BURST_INIT;
|
||||
const uint8_t *tx_queue = t->tx_evqueue_id;
|
||||
|
||||
while (t->done == false) {
|
||||
uint16_t nb_rx = rte_event_dequeue_burst(dev, port, ev,
|
||||
BURST_SIZE, 0);
|
||||
|
||||
if (!nb_rx) {
|
||||
rte_pause();
|
||||
continue;
|
||||
}
|
||||
|
||||
for (i = 0; i < nb_rx; i++) {
|
||||
rte_prefetch0(ev[i + 1].mbuf);
|
||||
cq_id = ev[i].sub_event_type % nb_stages;
|
||||
|
||||
if (cq_id == last_queue) {
|
||||
w->processed_pkts++;
|
||||
ev[i].queue_id = tx_queue[ev[i].mbuf->port];
|
||||
pipeline_fwd_event(&ev[i],
|
||||
RTE_SCHED_TYPE_ATOMIC);
|
||||
} else {
|
||||
ev[i].sub_event_type++;
|
||||
pipeline_fwd_event(&ev[i],
|
||||
sched_type_list[cq_id]);
|
||||
}
|
||||
}
|
||||
|
||||
pipeline_event_enqueue_burst(dev, port, ev, nb_rx);
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
static int
|
||||
worker_wrapper(void *arg)
|
||||
{
|
||||
struct worker_data *w = arg;
|
||||
struct evt_options *opt = w->t->opt;
|
||||
const bool burst = evt_has_burst_mode(w->dev_id);
|
||||
const bool internal_port = w->t->internal_port;
|
||||
const uint8_t nb_stages = opt->nb_stages;
|
||||
RTE_SET_USED(opt);
|
||||
|
||||
if (nb_stages == 1) {
|
||||
if (!burst && internal_port)
|
||||
return pipeline_atq_worker_single_stage_tx(arg);
|
||||
else if (!burst && !internal_port)
|
||||
return pipeline_atq_worker_single_stage_fwd(arg);
|
||||
else if (burst && internal_port)
|
||||
return pipeline_atq_worker_single_stage_burst_tx(arg);
|
||||
else if (burst && !internal_port)
|
||||
return pipeline_atq_worker_single_stage_burst_fwd(arg);
|
||||
} else {
|
||||
if (!burst && internal_port)
|
||||
return pipeline_atq_worker_multi_stage_tx(arg);
|
||||
else if (!burst && !internal_port)
|
||||
return pipeline_atq_worker_multi_stage_fwd(arg);
|
||||
if (burst && internal_port)
|
||||
return pipeline_atq_worker_multi_stage_burst_tx(arg);
|
||||
else if (burst && !internal_port)
|
||||
return pipeline_atq_worker_multi_stage_burst_fwd(arg);
|
||||
}
|
||||
|
||||
rte_panic("invalid worker\n");
|
||||
}
|
||||
|
||||
static int
|
||||
pipeline_atq_launch_lcores(struct evt_test *test, struct evt_options *opt)
|
||||
{
|
||||
return pipeline_launch_lcores(test, opt, worker_wrapper);
|
||||
}
|
||||
|
||||
static int
|
||||
pipeline_atq_eventdev_setup(struct evt_test *test, struct evt_options *opt)
|
||||
{
|
||||
int ret;
|
||||
int nb_ports;
|
||||
int nb_queues;
|
||||
uint8_t queue;
|
||||
uint8_t tx_evqueue_id[RTE_MAX_ETHPORTS];
|
||||
uint8_t queue_arr[RTE_EVENT_MAX_QUEUES_PER_DEV];
|
||||
uint8_t nb_worker_queues = 0;
|
||||
uint8_t tx_evport_id = 0;
|
||||
uint16_t prod = 0;
|
||||
struct rte_event_dev_info info;
|
||||
struct test_pipeline *t = evt_test_priv(test);
|
||||
|
||||
nb_ports = evt_nr_active_lcores(opt->wlcores);
|
||||
nb_queues = rte_eth_dev_count_avail();
|
||||
|
||||
memset(tx_evqueue_id, 0, sizeof(uint8_t) * RTE_MAX_ETHPORTS);
|
||||
memset(queue_arr, 0, sizeof(uint8_t) * RTE_EVENT_MAX_QUEUES_PER_DEV);
|
||||
/* One queue for Tx adapter per port */
|
||||
if (!t->internal_port) {
|
||||
RTE_ETH_FOREACH_DEV(prod) {
|
||||
tx_evqueue_id[prod] = nb_queues;
|
||||
nb_queues++;
|
||||
}
|
||||
}
|
||||
|
||||
rte_event_dev_info_get(opt->dev_id, &info);
|
||||
|
||||
const struct rte_event_dev_config config = {
|
||||
.nb_event_queues = nb_queues,
|
||||
.nb_event_ports = nb_ports,
|
||||
.nb_events_limit = info.max_num_events,
|
||||
.nb_event_queue_flows = opt->nb_flows,
|
||||
.nb_event_port_dequeue_depth =
|
||||
info.max_event_port_dequeue_depth,
|
||||
.nb_event_port_enqueue_depth =
|
||||
info.max_event_port_enqueue_depth,
|
||||
};
|
||||
ret = rte_event_dev_configure(opt->dev_id, &config);
|
||||
if (ret) {
|
||||
evt_err("failed to configure eventdev %d", opt->dev_id);
|
||||
return ret;
|
||||
}
|
||||
|
||||
struct rte_event_queue_conf q_conf = {
|
||||
.priority = RTE_EVENT_DEV_PRIORITY_NORMAL,
|
||||
.nb_atomic_flows = opt->nb_flows,
|
||||
.nb_atomic_order_sequences = opt->nb_flows,
|
||||
};
|
||||
/* queue configurations */
|
||||
for (queue = 0; queue < nb_queues; queue++) {
|
||||
q_conf.event_queue_cfg = RTE_EVENT_QUEUE_CFG_ALL_TYPES;
|
||||
|
||||
if (!t->internal_port) {
|
||||
RTE_ETH_FOREACH_DEV(prod) {
|
||||
if (queue == tx_evqueue_id[prod]) {
|
||||
q_conf.event_queue_cfg =
|
||||
RTE_EVENT_QUEUE_CFG_SINGLE_LINK;
|
||||
} else {
|
||||
queue_arr[nb_worker_queues] = queue;
|
||||
nb_worker_queues++;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
ret = rte_event_queue_setup(opt->dev_id, queue, &q_conf);
|
||||
if (ret) {
|
||||
evt_err("failed to setup queue=%d", queue);
|
||||
return ret;
|
||||
}
|
||||
}
|
||||
|
||||
if (opt->wkr_deq_dep > info.max_event_port_dequeue_depth)
|
||||
opt->wkr_deq_dep = info.max_event_port_dequeue_depth;
|
||||
|
||||
/* port configuration */
|
||||
const struct rte_event_port_conf p_conf = {
|
||||
.dequeue_depth = opt->wkr_deq_dep,
|
||||
.enqueue_depth = info.max_event_port_dequeue_depth,
|
||||
.new_event_threshold = info.max_num_events,
|
||||
};
|
||||
|
||||
if (!t->internal_port)
|
||||
ret = pipeline_event_port_setup(test, opt, queue_arr,
|
||||
nb_worker_queues, p_conf);
|
||||
else
|
||||
ret = pipeline_event_port_setup(test, opt, NULL, nb_queues,
|
||||
p_conf);
|
||||
|
||||
if (ret)
|
||||
return ret;
|
||||
|
||||
/*
|
||||
* The pipelines are setup in the following manner:
|
||||
*
|
||||
* eth_dev_count = 2, nb_stages = 2, atq mode
|
||||
*
|
||||
* eth0, eth1 have Internal port capability :
|
||||
* queues = 2
|
||||
* stride = 1
|
||||
*
|
||||
* event queue pipelines:
|
||||
* eth0 -> q0 ->Tx
|
||||
* eth1 -> q1 ->Tx
|
||||
*
|
||||
* q0, q1 are configured as ATQ so, all the different stages can
|
||||
* be enqueued on the same queue.
|
||||
*
|
||||
* eth0, eth1 use Tx adapters service core :
|
||||
* queues = 4
|
||||
* stride = 1
|
||||
*
|
||||
* event queue pipelines:
|
||||
* eth0 -> q0 -> q2 -> Tx
|
||||
* eth1 -> q1 -> q3 -> Tx
|
||||
*
|
||||
* q0, q1 are configured as stated above.
|
||||
* q2, q3 configured as SINGLE_LINK.
|
||||
*/
|
||||
ret = pipeline_event_rx_adapter_setup(opt, 1, p_conf);
|
||||
if (ret)
|
||||
return ret;
|
||||
ret = pipeline_event_tx_adapter_setup(opt, p_conf);
|
||||
if (ret)
|
||||
return ret;
|
||||
|
||||
if (!evt_has_distributed_sched(opt->dev_id)) {
|
||||
uint32_t service_id;
|
||||
rte_event_dev_service_id_get(opt->dev_id, &service_id);
|
||||
ret = evt_service_setup(service_id);
|
||||
if (ret) {
|
||||
evt_err("No service lcore found to run event dev.");
|
||||
return ret;
|
||||
}
|
||||
}
|
||||
|
||||
/* Connect the tx_evqueue_id to the Tx adapter port */
|
||||
if (!t->internal_port) {
|
||||
RTE_ETH_FOREACH_DEV(prod) {
|
||||
ret = rte_event_eth_tx_adapter_event_port_get(prod,
|
||||
&tx_evport_id);
|
||||
if (ret) {
|
||||
evt_err("Unable to get Tx adapter[%d]", prod);
|
||||
return ret;
|
||||
}
|
||||
|
||||
if (rte_event_port_link(opt->dev_id, tx_evport_id,
|
||||
&tx_evqueue_id[prod],
|
||||
NULL, 1) != 1) {
|
||||
evt_err("Unable to link Tx adptr[%d] evprt[%d]",
|
||||
prod, tx_evport_id);
|
||||
return ret;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
RTE_ETH_FOREACH_DEV(prod) {
|
||||
ret = rte_eth_dev_start(prod);
|
||||
if (ret) {
|
||||
evt_err("Ethernet dev [%d] failed to start."
|
||||
" Using synthetic producer", prod);
|
||||
return ret;
|
||||
}
|
||||
}
|
||||
|
||||
ret = rte_event_dev_start(opt->dev_id);
|
||||
if (ret) {
|
||||
evt_err("failed to start eventdev %d", opt->dev_id);
|
||||
return ret;
|
||||
}
|
||||
|
||||
RTE_ETH_FOREACH_DEV(prod) {
|
||||
ret = rte_event_eth_rx_adapter_start(prod);
|
||||
if (ret) {
|
||||
evt_err("Rx adapter[%d] start failed", prod);
|
||||
return ret;
|
||||
}
|
||||
|
||||
ret = rte_event_eth_tx_adapter_start(prod);
|
||||
if (ret) {
|
||||
evt_err("Tx adapter[%d] start failed", prod);
|
||||
return ret;
|
||||
}
|
||||
}
|
||||
|
||||
memcpy(t->tx_evqueue_id, tx_evqueue_id, sizeof(uint8_t) *
|
||||
RTE_MAX_ETHPORTS);
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
static void
|
||||
pipeline_atq_opt_dump(struct evt_options *opt)
|
||||
{
|
||||
pipeline_opt_dump(opt, pipeline_atq_nb_event_queues(opt));
|
||||
}
|
||||
|
||||
static int
|
||||
pipeline_atq_opt_check(struct evt_options *opt)
|
||||
{
|
||||
return pipeline_opt_check(opt, pipeline_atq_nb_event_queues(opt));
|
||||
}
|
||||
|
||||
static bool
|
||||
pipeline_atq_capability_check(struct evt_options *opt)
|
||||
{
|
||||
struct rte_event_dev_info dev_info;
|
||||
|
||||
rte_event_dev_info_get(opt->dev_id, &dev_info);
|
||||
if (dev_info.max_event_queues < pipeline_atq_nb_event_queues(opt) ||
|
||||
dev_info.max_event_ports <
|
||||
evt_nr_active_lcores(opt->wlcores)) {
|
||||
evt_err("not enough eventdev queues=%d/%d or ports=%d/%d",
|
||||
pipeline_atq_nb_event_queues(opt),
|
||||
dev_info.max_event_queues,
|
||||
evt_nr_active_lcores(opt->wlcores),
|
||||
dev_info.max_event_ports);
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
static const struct evt_test_ops pipeline_atq = {
|
||||
.cap_check = pipeline_atq_capability_check,
|
||||
.opt_check = pipeline_atq_opt_check,
|
||||
.opt_dump = pipeline_atq_opt_dump,
|
||||
.test_setup = pipeline_test_setup,
|
||||
.mempool_setup = pipeline_mempool_setup,
|
||||
.ethdev_setup = pipeline_ethdev_setup,
|
||||
.eventdev_setup = pipeline_atq_eventdev_setup,
|
||||
.launch_lcores = pipeline_atq_launch_lcores,
|
||||
.eventdev_destroy = pipeline_eventdev_destroy,
|
||||
.mempool_destroy = pipeline_mempool_destroy,
|
||||
.ethdev_destroy = pipeline_ethdev_destroy,
|
||||
.test_result = pipeline_test_result,
|
||||
.test_destroy = pipeline_test_destroy,
|
||||
};
|
||||
|
||||
EVT_TEST_REGISTER(pipeline_atq);
|
|
@ -0,0 +1,467 @@
|
|||
/*
|
||||
* SPDX-License-Identifier: BSD-3-Clause
|
||||
* Copyright 2017 Cavium, Inc.
|
||||
*/
|
||||
|
||||
#include "test_pipeline_common.h"
|
||||
|
||||
int
|
||||
pipeline_test_result(struct evt_test *test, struct evt_options *opt)
|
||||
{
|
||||
RTE_SET_USED(opt);
|
||||
int i;
|
||||
uint64_t total = 0;
|
||||
struct test_pipeline *t = evt_test_priv(test);
|
||||
|
||||
evt_info("Packet distribution across worker cores :");
|
||||
for (i = 0; i < t->nb_workers; i++)
|
||||
total += t->worker[i].processed_pkts;
|
||||
for (i = 0; i < t->nb_workers; i++)
|
||||
evt_info("Worker %d packets: "CLGRN"%"PRIx64""CLNRM" percentage:"
|
||||
CLGRN" %3.2f"CLNRM, i,
|
||||
t->worker[i].processed_pkts,
|
||||
(((double)t->worker[i].processed_pkts)/total)
|
||||
* 100);
|
||||
return t->result;
|
||||
}
|
||||
|
||||
void
|
||||
pipeline_opt_dump(struct evt_options *opt, uint8_t nb_queues)
|
||||
{
|
||||
evt_dump("nb_worker_lcores", "%d", evt_nr_active_lcores(opt->wlcores));
|
||||
evt_dump_worker_lcores(opt);
|
||||
evt_dump_nb_stages(opt);
|
||||
evt_dump("nb_evdev_ports", "%d", pipeline_nb_event_ports(opt));
|
||||
evt_dump("nb_evdev_queues", "%d", nb_queues);
|
||||
evt_dump_queue_priority(opt);
|
||||
evt_dump_sched_type_list(opt);
|
||||
evt_dump_producer_type(opt);
|
||||
}
|
||||
|
||||
static inline uint64_t
|
||||
processed_pkts(struct test_pipeline *t)
|
||||
{
|
||||
uint8_t i;
|
||||
uint64_t total = 0;
|
||||
|
||||
rte_smp_rmb();
|
||||
for (i = 0; i < t->nb_workers; i++)
|
||||
total += t->worker[i].processed_pkts;
|
||||
|
||||
return total;
|
||||
}
|
||||
|
||||
int
|
||||
pipeline_launch_lcores(struct evt_test *test, struct evt_options *opt,
|
||||
int (*worker)(void *))
|
||||
{
|
||||
int ret, lcore_id;
|
||||
struct test_pipeline *t = evt_test_priv(test);
|
||||
|
||||
int port_idx = 0;
|
||||
/* launch workers */
|
||||
RTE_LCORE_FOREACH_SLAVE(lcore_id) {
|
||||
if (!(opt->wlcores[lcore_id]))
|
||||
continue;
|
||||
|
||||
ret = rte_eal_remote_launch(worker,
|
||||
&t->worker[port_idx], lcore_id);
|
||||
if (ret) {
|
||||
evt_err("failed to launch worker %d", lcore_id);
|
||||
return ret;
|
||||
}
|
||||
port_idx++;
|
||||
}
|
||||
|
||||
uint64_t perf_cycles = rte_get_timer_cycles();
|
||||
const uint64_t perf_sample = rte_get_timer_hz();
|
||||
|
||||
static float total_mpps;
|
||||
static uint64_t samples;
|
||||
|
||||
uint64_t prev_pkts = 0;
|
||||
|
||||
while (t->done == false) {
|
||||
const uint64_t new_cycles = rte_get_timer_cycles();
|
||||
|
||||
if ((new_cycles - perf_cycles) > perf_sample) {
|
||||
const uint64_t curr_pkts = processed_pkts(t);
|
||||
|
||||
float mpps = (float)(curr_pkts - prev_pkts)/1000000;
|
||||
|
||||
prev_pkts = curr_pkts;
|
||||
perf_cycles = new_cycles;
|
||||
total_mpps += mpps;
|
||||
++samples;
|
||||
printf(CLGRN"\r%.3f mpps avg %.3f mpps"CLNRM,
|
||||
mpps, total_mpps/samples);
|
||||
fflush(stdout);
|
||||
}
|
||||
}
|
||||
printf("\n");
|
||||
return 0;
|
||||
}
|
||||
|
||||
int
|
||||
pipeline_opt_check(struct evt_options *opt, uint64_t nb_queues)
|
||||
{
|
||||
unsigned int lcores;
|
||||
/*
|
||||
* N worker + 1 master
|
||||
*/
|
||||
lcores = 2;
|
||||
|
||||
if (!rte_eth_dev_count_avail()) {
|
||||
evt_err("test needs minimum 1 ethernet dev");
|
||||
return -1;
|
||||
}
|
||||
|
||||
if (rte_lcore_count() < lcores) {
|
||||
evt_err("test need minimum %d lcores", lcores);
|
||||
return -1;
|
||||
}
|
||||
|
||||
/* Validate worker lcores */
|
||||
if (evt_lcores_has_overlap(opt->wlcores, rte_get_master_lcore())) {
|
||||
evt_err("worker lcores overlaps with master lcore");
|
||||
return -1;
|
||||
}
|
||||
if (evt_has_disabled_lcore(opt->wlcores)) {
|
||||
evt_err("one or more workers lcores are not enabled");
|
||||
return -1;
|
||||
}
|
||||
if (!evt_has_active_lcore(opt->wlcores)) {
|
||||
evt_err("minimum one worker is required");
|
||||
return -1;
|
||||
}
|
||||
|
||||
if (nb_queues > EVT_MAX_QUEUES) {
|
||||
evt_err("number of queues exceeds %d", EVT_MAX_QUEUES);
|
||||
return -1;
|
||||
}
|
||||
if (pipeline_nb_event_ports(opt) > EVT_MAX_PORTS) {
|
||||
evt_err("number of ports exceeds %d", EVT_MAX_PORTS);
|
||||
return -1;
|
||||
}
|
||||
|
||||
if (evt_has_invalid_stage(opt))
|
||||
return -1;
|
||||
|
||||
if (evt_has_invalid_sched_type(opt))
|
||||
return -1;
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
#define NB_RX_DESC 128
|
||||
#define NB_TX_DESC 512
|
||||
int
|
||||
pipeline_ethdev_setup(struct evt_test *test, struct evt_options *opt)
|
||||
{
|
||||
uint16_t i;
|
||||
uint8_t nb_queues = 1;
|
||||
struct test_pipeline *t = evt_test_priv(test);
|
||||
struct rte_eth_rxconf rx_conf;
|
||||
struct rte_eth_conf port_conf = {
|
||||
.rxmode = {
|
||||
.mq_mode = ETH_MQ_RX_RSS,
|
||||
.max_rx_pkt_len = ETHER_MAX_LEN,
|
||||
},
|
||||
.rx_adv_conf = {
|
||||
.rss_conf = {
|
||||
.rss_key = NULL,
|
||||
.rss_hf = ETH_RSS_IP,
|
||||
},
|
||||
},
|
||||
};
|
||||
|
||||
RTE_SET_USED(opt);
|
||||
if (!rte_eth_dev_count_avail()) {
|
||||
evt_err("No ethernet ports found.");
|
||||
return -ENODEV;
|
||||
}
|
||||
|
||||
t->internal_port = 1;
|
||||
RTE_ETH_FOREACH_DEV(i) {
|
||||
struct rte_eth_dev_info dev_info;
|
||||
struct rte_eth_conf local_port_conf = port_conf;
|
||||
uint32_t caps = 0;
|
||||
|
||||
rte_event_eth_tx_adapter_caps_get(opt->dev_id, i, &caps);
|
||||
if (!(caps & RTE_EVENT_ETH_TX_ADAPTER_CAP_INTERNAL_PORT))
|
||||
t->internal_port = 0;
|
||||
|
||||
rte_eth_dev_info_get(i, &dev_info);
|
||||
rx_conf = dev_info.default_rxconf;
|
||||
rx_conf.offloads = port_conf.rxmode.offloads;
|
||||
|
||||
local_port_conf.rx_adv_conf.rss_conf.rss_hf &=
|
||||
dev_info.flow_type_rss_offloads;
|
||||
if (local_port_conf.rx_adv_conf.rss_conf.rss_hf !=
|
||||
port_conf.rx_adv_conf.rss_conf.rss_hf) {
|
||||
evt_info("Port %u modified RSS hash function based on hardware support,"
|
||||
"requested:%#"PRIx64" configured:%#"PRIx64"",
|
||||
i,
|
||||
port_conf.rx_adv_conf.rss_conf.rss_hf,
|
||||
local_port_conf.rx_adv_conf.rss_conf.rss_hf);
|
||||
}
|
||||
|
||||
if (rte_eth_dev_configure(i, nb_queues, nb_queues,
|
||||
&local_port_conf)
|
||||
< 0) {
|
||||
evt_err("Failed to configure eth port [%d]", i);
|
||||
return -EINVAL;
|
||||
}
|
||||
|
||||
if (rte_eth_rx_queue_setup(i, 0, NB_RX_DESC,
|
||||
rte_socket_id(), &rx_conf, t->pool) < 0) {
|
||||
evt_err("Failed to setup eth port [%d] rx_queue: %d.",
|
||||
i, 0);
|
||||
return -EINVAL;
|
||||
}
|
||||
if (rte_eth_tx_queue_setup(i, 0, NB_TX_DESC,
|
||||
rte_socket_id(), NULL) < 0) {
|
||||
evt_err("Failed to setup eth port [%d] tx_queue: %d.",
|
||||
i, 0);
|
||||
return -EINVAL;
|
||||
}
|
||||
|
||||
rte_eth_promiscuous_enable(i);
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
int
|
||||
pipeline_event_port_setup(struct evt_test *test, struct evt_options *opt,
|
||||
uint8_t *queue_arr, uint8_t nb_queues,
|
||||
const struct rte_event_port_conf p_conf)
|
||||
{
|
||||
int ret;
|
||||
uint8_t port;
|
||||
struct test_pipeline *t = evt_test_priv(test);
|
||||
|
||||
|
||||
/* setup one port per worker, linking to all queues */
|
||||
for (port = 0; port < evt_nr_active_lcores(opt->wlcores); port++) {
|
||||
struct worker_data *w = &t->worker[port];
|
||||
|
||||
w->dev_id = opt->dev_id;
|
||||
w->port_id = port;
|
||||
w->t = t;
|
||||
w->processed_pkts = 0;
|
||||
|
||||
ret = rte_event_port_setup(opt->dev_id, port, &p_conf);
|
||||
if (ret) {
|
||||
evt_err("failed to setup port %d", port);
|
||||
return ret;
|
||||
}
|
||||
|
||||
if (rte_event_port_link(opt->dev_id, port, queue_arr, NULL,
|
||||
nb_queues) != nb_queues)
|
||||
goto link_fail;
|
||||
}
|
||||
|
||||
return 0;
|
||||
|
||||
link_fail:
|
||||
evt_err("failed to link queues to port %d", port);
|
||||
return -EINVAL;
|
||||
}
|
||||
|
||||
int
|
||||
pipeline_event_rx_adapter_setup(struct evt_options *opt, uint8_t stride,
|
||||
struct rte_event_port_conf prod_conf)
|
||||
{
|
||||
int ret = 0;
|
||||
uint16_t prod;
|
||||
struct rte_event_eth_rx_adapter_queue_conf queue_conf;
|
||||
|
||||
memset(&queue_conf, 0,
|
||||
sizeof(struct rte_event_eth_rx_adapter_queue_conf));
|
||||
queue_conf.ev.sched_type = opt->sched_type_list[0];
|
||||
RTE_ETH_FOREACH_DEV(prod) {
|
||||
uint32_t cap;
|
||||
|
||||
ret = rte_event_eth_rx_adapter_caps_get(opt->dev_id,
|
||||
prod, &cap);
|
||||
if (ret) {
|
||||
evt_err("failed to get event rx adapter[%d]"
|
||||
" capabilities",
|
||||
opt->dev_id);
|
||||
return ret;
|
||||
}
|
||||
queue_conf.ev.queue_id = prod * stride;
|
||||
ret = rte_event_eth_rx_adapter_create(prod, opt->dev_id,
|
||||
&prod_conf);
|
||||
if (ret) {
|
||||
evt_err("failed to create rx adapter[%d]", prod);
|
||||
return ret;
|
||||
}
|
||||
ret = rte_event_eth_rx_adapter_queue_add(prod, prod, -1,
|
||||
&queue_conf);
|
||||
if (ret) {
|
||||
evt_err("failed to add rx queues to adapter[%d]", prod);
|
||||
return ret;
|
||||
}
|
||||
|
||||
if (!(cap & RTE_EVENT_ETH_RX_ADAPTER_CAP_INTERNAL_PORT)) {
|
||||
uint32_t service_id;
|
||||
|
||||
rte_event_eth_rx_adapter_service_id_get(prod,
|
||||
&service_id);
|
||||
ret = evt_service_setup(service_id);
|
||||
if (ret) {
|
||||
evt_err("Failed to setup service core"
|
||||
" for Rx adapter");
|
||||
return ret;
|
||||
}
|
||||
}
|
||||
|
||||
evt_info("Port[%d] using Rx adapter[%d] configured", prod,
|
||||
prod);
|
||||
}
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
||||
int
|
||||
pipeline_event_tx_adapter_setup(struct evt_options *opt,
|
||||
struct rte_event_port_conf port_conf)
|
||||
{
|
||||
int ret = 0;
|
||||
uint16_t consm;
|
||||
|
||||
RTE_ETH_FOREACH_DEV(consm) {
|
||||
uint32_t cap;
|
||||
|
||||
ret = rte_event_eth_tx_adapter_caps_get(opt->dev_id,
|
||||
consm, &cap);
|
||||
if (ret) {
|
||||
evt_err("failed to get event tx adapter[%d] caps",
|
||||
consm);
|
||||
return ret;
|
||||
}
|
||||
|
||||
ret = rte_event_eth_tx_adapter_create(consm, opt->dev_id,
|
||||
&port_conf);
|
||||
if (ret) {
|
||||
evt_err("failed to create tx adapter[%d]", consm);
|
||||
return ret;
|
||||
}
|
||||
|
||||
ret = rte_event_eth_tx_adapter_queue_add(consm, consm, -1);
|
||||
if (ret) {
|
||||
evt_err("failed to add tx queues to adapter[%d]",
|
||||
consm);
|
||||
return ret;
|
||||
}
|
||||
|
||||
if (!(cap & RTE_EVENT_ETH_TX_ADAPTER_CAP_INTERNAL_PORT)) {
|
||||
uint32_t service_id;
|
||||
|
||||
rte_event_eth_tx_adapter_service_id_get(consm,
|
||||
&service_id);
|
||||
ret = evt_service_setup(service_id);
|
||||
if (ret) {
|
||||
evt_err("Failed to setup service core"
|
||||
" for Tx adapter\n");
|
||||
return ret;
|
||||
}
|
||||
}
|
||||
|
||||
evt_info("Port[%d] using Tx adapter[%d] Configured", consm,
|
||||
consm);
|
||||
}
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
||||
void
|
||||
pipeline_ethdev_destroy(struct evt_test *test, struct evt_options *opt)
|
||||
{
|
||||
uint16_t i;
|
||||
RTE_SET_USED(test);
|
||||
RTE_SET_USED(opt);
|
||||
|
||||
RTE_ETH_FOREACH_DEV(i) {
|
||||
rte_event_eth_rx_adapter_stop(i);
|
||||
rte_event_eth_tx_adapter_stop(i);
|
||||
rte_eth_dev_stop(i);
|
||||
}
|
||||
}
|
||||
|
||||
void
|
||||
pipeline_eventdev_destroy(struct evt_test *test, struct evt_options *opt)
|
||||
{
|
||||
RTE_SET_USED(test);
|
||||
|
||||
rte_event_dev_close(opt->dev_id);
|
||||
}
|
||||
|
||||
int
|
||||
pipeline_mempool_setup(struct evt_test *test, struct evt_options *opt)
|
||||
{
|
||||
struct test_pipeline *t = evt_test_priv(test);
|
||||
|
||||
t->pool = rte_pktmbuf_pool_create(test->name, /* mempool name */
|
||||
opt->pool_sz, /* number of elements*/
|
||||
512, /* cache size*/
|
||||
0,
|
||||
RTE_MBUF_DEFAULT_BUF_SIZE,
|
||||
opt->socket_id); /* flags */
|
||||
|
||||
if (t->pool == NULL) {
|
||||
evt_err("failed to create mempool");
|
||||
return -ENOMEM;
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
void
|
||||
pipeline_mempool_destroy(struct evt_test *test, struct evt_options *opt)
|
||||
{
|
||||
RTE_SET_USED(opt);
|
||||
struct test_pipeline *t = evt_test_priv(test);
|
||||
|
||||
rte_mempool_free(t->pool);
|
||||
}
|
||||
|
||||
int
|
||||
pipeline_test_setup(struct evt_test *test, struct evt_options *opt)
|
||||
{
|
||||
void *test_pipeline;
|
||||
|
||||
test_pipeline = rte_zmalloc_socket(test->name,
|
||||
sizeof(struct test_pipeline), RTE_CACHE_LINE_SIZE,
|
||||
opt->socket_id);
|
||||
if (test_pipeline == NULL) {
|
||||
evt_err("failed to allocate test_pipeline memory");
|
||||
goto nomem;
|
||||
}
|
||||
test->test_priv = test_pipeline;
|
||||
|
||||
struct test_pipeline *t = evt_test_priv(test);
|
||||
|
||||
t->nb_workers = evt_nr_active_lcores(opt->wlcores);
|
||||
t->outstand_pkts = opt->nb_pkts * evt_nr_active_lcores(opt->wlcores);
|
||||
t->done = false;
|
||||
t->nb_flows = opt->nb_flows;
|
||||
t->result = EVT_TEST_FAILED;
|
||||
t->opt = opt;
|
||||
opt->prod_type = EVT_PROD_TYPE_ETH_RX_ADPTR;
|
||||
memcpy(t->sched_type_list, opt->sched_type_list,
|
||||
sizeof(opt->sched_type_list));
|
||||
return 0;
|
||||
nomem:
|
||||
return -ENOMEM;
|
||||
}
|
||||
|
||||
void
|
||||
pipeline_test_destroy(struct evt_test *test, struct evt_options *opt)
|
||||
{
|
||||
RTE_SET_USED(opt);
|
||||
|
||||
rte_free(test->test_priv);
|
||||
}
|
|
@ -0,0 +1,173 @@
|
|||
/*
|
||||
* SPDX-License-Identifier: BSD-3-Clause
|
||||
* Copyright 2017 Cavium, Inc.
|
||||
*/
|
||||
|
||||
#ifndef _TEST_PIPELINE_COMMON_
|
||||
#define _TEST_PIPELINE_COMMON_
|
||||
|
||||
#include <stdio.h>
|
||||
#include <stdbool.h>
|
||||
#include <unistd.h>
|
||||
|
||||
#include <rte_cycles.h>
|
||||
#include <rte_ethdev.h>
|
||||
#include <rte_eventdev.h>
|
||||
#include <rte_event_eth_rx_adapter.h>
|
||||
#include <rte_event_eth_tx_adapter.h>
|
||||
#include <rte_lcore.h>
|
||||
#include <rte_malloc.h>
|
||||
#include <rte_mempool.h>
|
||||
#include <rte_prefetch.h>
|
||||
#include <rte_spinlock.h>
|
||||
#include <rte_service.h>
|
||||
#include <rte_service_component.h>
|
||||
|
||||
#include "evt_common.h"
|
||||
#include "evt_options.h"
|
||||
#include "evt_test.h"
|
||||
|
||||
struct test_pipeline;
|
||||
|
||||
struct worker_data {
|
||||
uint64_t processed_pkts;
|
||||
uint8_t dev_id;
|
||||
uint8_t port_id;
|
||||
struct test_pipeline *t;
|
||||
} __rte_cache_aligned;
|
||||
|
||||
struct test_pipeline {
|
||||
/* Don't change the offset of "done". Signal handler use this memory
|
||||
* to terminate all lcores work.
|
||||
*/
|
||||
int done;
|
||||
uint8_t nb_workers;
|
||||
uint8_t internal_port;
|
||||
uint8_t tx_evqueue_id[RTE_MAX_ETHPORTS];
|
||||
enum evt_test_result result;
|
||||
uint32_t nb_flows;
|
||||
uint64_t outstand_pkts;
|
||||
struct rte_mempool *pool;
|
||||
struct worker_data worker[EVT_MAX_PORTS];
|
||||
struct evt_options *opt;
|
||||
uint8_t sched_type_list[EVT_MAX_STAGES] __rte_cache_aligned;
|
||||
} __rte_cache_aligned;
|
||||
|
||||
#define BURST_SIZE 16
|
||||
|
||||
#define PIPELINE_WORKER_SINGLE_STAGE_INIT \
|
||||
struct worker_data *w = arg; \
|
||||
struct test_pipeline *t = w->t; \
|
||||
const uint8_t dev = w->dev_id; \
|
||||
const uint8_t port = w->port_id; \
|
||||
struct rte_event ev __rte_cache_aligned
|
||||
|
||||
#define PIPELINE_WORKER_SINGLE_STAGE_BURST_INIT \
|
||||
int i; \
|
||||
struct worker_data *w = arg; \
|
||||
struct test_pipeline *t = w->t; \
|
||||
const uint8_t dev = w->dev_id; \
|
||||
const uint8_t port = w->port_id; \
|
||||
struct rte_event ev[BURST_SIZE + 1] __rte_cache_aligned
|
||||
|
||||
#define PIPELINE_WORKER_MULTI_STAGE_INIT \
|
||||
struct worker_data *w = arg; \
|
||||
struct test_pipeline *t = w->t; \
|
||||
uint8_t cq_id; \
|
||||
const uint8_t dev = w->dev_id; \
|
||||
const uint8_t port = w->port_id; \
|
||||
const uint8_t last_queue = t->opt->nb_stages - 1; \
|
||||
uint8_t *const sched_type_list = &t->sched_type_list[0]; \
|
||||
const uint8_t nb_stages = t->opt->nb_stages + 1; \
|
||||
struct rte_event ev __rte_cache_aligned
|
||||
|
||||
#define PIPELINE_WORKER_MULTI_STAGE_BURST_INIT \
|
||||
int i; \
|
||||
struct worker_data *w = arg; \
|
||||
struct test_pipeline *t = w->t; \
|
||||
uint8_t cq_id; \
|
||||
const uint8_t dev = w->dev_id; \
|
||||
const uint8_t port = w->port_id; \
|
||||
const uint8_t last_queue = t->opt->nb_stages - 1; \
|
||||
uint8_t *const sched_type_list = &t->sched_type_list[0]; \
|
||||
const uint8_t nb_stages = t->opt->nb_stages + 1; \
|
||||
struct rte_event ev[BURST_SIZE + 1] __rte_cache_aligned
|
||||
|
||||
static __rte_always_inline void
|
||||
pipeline_fwd_event(struct rte_event *ev, uint8_t sched)
|
||||
{
|
||||
ev->event_type = RTE_EVENT_TYPE_CPU;
|
||||
ev->op = RTE_EVENT_OP_FORWARD;
|
||||
ev->sched_type = sched;
|
||||
}
|
||||
|
||||
static __rte_always_inline void
|
||||
pipeline_event_tx(const uint8_t dev, const uint8_t port,
|
||||
struct rte_event * const ev)
|
||||
{
|
||||
rte_event_eth_tx_adapter_txq_set(ev->mbuf, 0);
|
||||
while (!rte_event_eth_tx_adapter_enqueue(dev, port, ev, 1))
|
||||
rte_pause();
|
||||
}
|
||||
|
||||
static __rte_always_inline void
|
||||
pipeline_event_tx_burst(const uint8_t dev, const uint8_t port,
|
||||
struct rte_event *ev, const uint16_t nb_rx)
|
||||
{
|
||||
uint16_t enq;
|
||||
|
||||
enq = rte_event_eth_tx_adapter_enqueue(dev, port, ev, nb_rx);
|
||||
while (enq < nb_rx) {
|
||||
enq += rte_event_eth_tx_adapter_enqueue(dev, port,
|
||||
ev + enq, nb_rx - enq);
|
||||
}
|
||||
}
|
||||
|
||||
static __rte_always_inline void
|
||||
pipeline_event_enqueue(const uint8_t dev, const uint8_t port,
|
||||
struct rte_event *ev)
|
||||
{
|
||||
while (rte_event_enqueue_burst(dev, port, ev, 1) != 1)
|
||||
rte_pause();
|
||||
}
|
||||
|
||||
static __rte_always_inline void
|
||||
pipeline_event_enqueue_burst(const uint8_t dev, const uint8_t port,
|
||||
struct rte_event *ev, const uint16_t nb_rx)
|
||||
{
|
||||
uint16_t enq;
|
||||
|
||||
enq = rte_event_enqueue_burst(dev, port, ev, nb_rx);
|
||||
while (enq < nb_rx) {
|
||||
enq += rte_event_enqueue_burst(dev, port,
|
||||
ev + enq, nb_rx - enq);
|
||||
}
|
||||
}
|
||||
|
||||
static inline int
|
||||
pipeline_nb_event_ports(struct evt_options *opt)
|
||||
{
|
||||
return evt_nr_active_lcores(opt->wlcores);
|
||||
}
|
||||
|
||||
int pipeline_test_result(struct evt_test *test, struct evt_options *opt);
|
||||
int pipeline_opt_check(struct evt_options *opt, uint64_t nb_queues);
|
||||
int pipeline_test_setup(struct evt_test *test, struct evt_options *opt);
|
||||
int pipeline_ethdev_setup(struct evt_test *test, struct evt_options *opt);
|
||||
int pipeline_event_rx_adapter_setup(struct evt_options *opt, uint8_t stride,
|
||||
struct rte_event_port_conf prod_conf);
|
||||
int pipeline_event_tx_adapter_setup(struct evt_options *opt,
|
||||
struct rte_event_port_conf prod_conf);
|
||||
int pipeline_mempool_setup(struct evt_test *test, struct evt_options *opt);
|
||||
int pipeline_event_port_setup(struct evt_test *test, struct evt_options *opt,
|
||||
uint8_t *queue_arr, uint8_t nb_queues,
|
||||
const struct rte_event_port_conf p_conf);
|
||||
int pipeline_launch_lcores(struct evt_test *test, struct evt_options *opt,
|
||||
int (*worker)(void *));
|
||||
void pipeline_opt_dump(struct evt_options *opt, uint8_t nb_queues);
|
||||
void pipeline_test_destroy(struct evt_test *test, struct evt_options *opt);
|
||||
void pipeline_eventdev_destroy(struct evt_test *test, struct evt_options *opt);
|
||||
void pipeline_ethdev_destroy(struct evt_test *test, struct evt_options *opt);
|
||||
void pipeline_mempool_destroy(struct evt_test *test, struct evt_options *opt);
|
||||
|
||||
#endif /* _TEST_PIPELINE_COMMON_ */
|
|
@ -0,0 +1,542 @@
|
|||
/*
|
||||
* SPDX-License-Identifier: BSD-3-Clause
|
||||
* Copyright 2017 Cavium, Inc.
|
||||
*/
|
||||
|
||||
#include "test_pipeline_common.h"
|
||||
|
||||
/* See http://doc.dpdk.org/guides/tools/testeventdev.html for test details */
|
||||
|
||||
static __rte_always_inline int
|
||||
pipeline_queue_nb_event_queues(struct evt_options *opt)
|
||||
{
|
||||
uint16_t eth_count = rte_eth_dev_count_avail();
|
||||
|
||||
return (eth_count * opt->nb_stages) + eth_count;
|
||||
}
|
||||
|
||||
static __rte_noinline int
|
||||
pipeline_queue_worker_single_stage_tx(void *arg)
|
||||
{
|
||||
PIPELINE_WORKER_SINGLE_STAGE_INIT;
|
||||
|
||||
while (t->done == false) {
|
||||
uint16_t event = rte_event_dequeue_burst(dev, port, &ev, 1, 0);
|
||||
|
||||
if (!event) {
|
||||
rte_pause();
|
||||
continue;
|
||||
}
|
||||
|
||||
if (ev.sched_type == RTE_SCHED_TYPE_ATOMIC) {
|
||||
pipeline_event_tx(dev, port, &ev);
|
||||
w->processed_pkts++;
|
||||
} else {
|
||||
ev.queue_id++;
|
||||
pipeline_fwd_event(&ev, RTE_SCHED_TYPE_ATOMIC);
|
||||
pipeline_event_enqueue(dev, port, &ev);
|
||||
}
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
static __rte_noinline int
|
||||
pipeline_queue_worker_single_stage_fwd(void *arg)
|
||||
{
|
||||
PIPELINE_WORKER_SINGLE_STAGE_INIT;
|
||||
const uint8_t *tx_queue = t->tx_evqueue_id;
|
||||
|
||||
while (t->done == false) {
|
||||
uint16_t event = rte_event_dequeue_burst(dev, port, &ev, 1, 0);
|
||||
|
||||
if (!event) {
|
||||
rte_pause();
|
||||
continue;
|
||||
}
|
||||
|
||||
ev.queue_id = tx_queue[ev.mbuf->port];
|
||||
rte_event_eth_tx_adapter_txq_set(ev.mbuf, 0);
|
||||
pipeline_fwd_event(&ev, RTE_SCHED_TYPE_ATOMIC);
|
||||
pipeline_event_enqueue(dev, port, &ev);
|
||||
w->processed_pkts++;
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
static __rte_noinline int
|
||||
pipeline_queue_worker_single_stage_burst_tx(void *arg)
|
||||
{
|
||||
PIPELINE_WORKER_SINGLE_STAGE_BURST_INIT;
|
||||
|
||||
while (t->done == false) {
|
||||
uint16_t nb_rx = rte_event_dequeue_burst(dev, port, ev,
|
||||
BURST_SIZE, 0);
|
||||
|
||||
if (!nb_rx) {
|
||||
rte_pause();
|
||||
continue;
|
||||
}
|
||||
|
||||
for (i = 0; i < nb_rx; i++) {
|
||||
rte_prefetch0(ev[i + 1].mbuf);
|
||||
if (ev[i].sched_type == RTE_SCHED_TYPE_ATOMIC) {
|
||||
pipeline_event_tx(dev, port, &ev[i]);
|
||||
ev[i].op = RTE_EVENT_OP_RELEASE;
|
||||
w->processed_pkts++;
|
||||
} else {
|
||||
ev[i].queue_id++;
|
||||
pipeline_fwd_event(&ev[i],
|
||||
RTE_SCHED_TYPE_ATOMIC);
|
||||
}
|
||||
}
|
||||
|
||||
pipeline_event_enqueue_burst(dev, port, ev, nb_rx);
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
static __rte_noinline int
|
||||
pipeline_queue_worker_single_stage_burst_fwd(void *arg)
|
||||
{
|
||||
PIPELINE_WORKER_SINGLE_STAGE_BURST_INIT;
|
||||
const uint8_t *tx_queue = t->tx_evqueue_id;
|
||||
|
||||
while (t->done == false) {
|
||||
uint16_t nb_rx = rte_event_dequeue_burst(dev, port, ev,
|
||||
BURST_SIZE, 0);
|
||||
|
||||
if (!nb_rx) {
|
||||
rte_pause();
|
||||
continue;
|
||||
}
|
||||
|
||||
for (i = 0; i < nb_rx; i++) {
|
||||
rte_prefetch0(ev[i + 1].mbuf);
|
||||
ev[i].queue_id = tx_queue[ev[i].mbuf->port];
|
||||
rte_event_eth_tx_adapter_txq_set(ev[i].mbuf, 0);
|
||||
pipeline_fwd_event(&ev[i], RTE_SCHED_TYPE_ATOMIC);
|
||||
}
|
||||
|
||||
pipeline_event_enqueue_burst(dev, port, ev, nb_rx);
|
||||
w->processed_pkts += nb_rx;
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
||||
static __rte_noinline int
|
||||
pipeline_queue_worker_multi_stage_tx(void *arg)
|
||||
{
|
||||
PIPELINE_WORKER_MULTI_STAGE_INIT;
|
||||
const uint8_t *tx_queue = t->tx_evqueue_id;
|
||||
|
||||
while (t->done == false) {
|
||||
uint16_t event = rte_event_dequeue_burst(dev, port, &ev, 1, 0);
|
||||
|
||||
if (!event) {
|
||||
rte_pause();
|
||||
continue;
|
||||
}
|
||||
|
||||
cq_id = ev.queue_id % nb_stages;
|
||||
|
||||
if (ev.queue_id == tx_queue[ev.mbuf->port]) {
|
||||
pipeline_event_tx(dev, port, &ev);
|
||||
w->processed_pkts++;
|
||||
continue;
|
||||
}
|
||||
|
||||
ev.queue_id++;
|
||||
pipeline_fwd_event(&ev, cq_id != last_queue ?
|
||||
sched_type_list[cq_id] :
|
||||
RTE_SCHED_TYPE_ATOMIC);
|
||||
pipeline_event_enqueue(dev, port, &ev);
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
static __rte_noinline int
|
||||
pipeline_queue_worker_multi_stage_fwd(void *arg)
|
||||
{
|
||||
PIPELINE_WORKER_MULTI_STAGE_INIT;
|
||||
const uint8_t *tx_queue = t->tx_evqueue_id;
|
||||
|
||||
while (t->done == false) {
|
||||
uint16_t event = rte_event_dequeue_burst(dev, port, &ev, 1, 0);
|
||||
|
||||
if (!event) {
|
||||
rte_pause();
|
||||
continue;
|
||||
}
|
||||
|
||||
cq_id = ev.queue_id % nb_stages;
|
||||
|
||||
if (cq_id == last_queue) {
|
||||
ev.queue_id = tx_queue[ev.mbuf->port];
|
||||
rte_event_eth_tx_adapter_txq_set(ev.mbuf, 0);
|
||||
pipeline_fwd_event(&ev, RTE_SCHED_TYPE_ATOMIC);
|
||||
w->processed_pkts++;
|
||||
} else {
|
||||
ev.queue_id++;
|
||||
pipeline_fwd_event(&ev, sched_type_list[cq_id]);
|
||||
}
|
||||
|
||||
pipeline_event_enqueue(dev, port, &ev);
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
static __rte_noinline int
|
||||
pipeline_queue_worker_multi_stage_burst_tx(void *arg)
|
||||
{
|
||||
PIPELINE_WORKER_MULTI_STAGE_BURST_INIT;
|
||||
const uint8_t *tx_queue = t->tx_evqueue_id;
|
||||
|
||||
while (t->done == false) {
|
||||
uint16_t nb_rx = rte_event_dequeue_burst(dev, port, ev,
|
||||
BURST_SIZE, 0);
|
||||
|
||||
if (!nb_rx) {
|
||||
rte_pause();
|
||||
continue;
|
||||
}
|
||||
|
||||
for (i = 0; i < nb_rx; i++) {
|
||||
rte_prefetch0(ev[i + 1].mbuf);
|
||||
cq_id = ev[i].queue_id % nb_stages;
|
||||
|
||||
if (ev[i].queue_id == tx_queue[ev[i].mbuf->port]) {
|
||||
pipeline_event_tx(dev, port, &ev[i]);
|
||||
ev[i].op = RTE_EVENT_OP_RELEASE;
|
||||
w->processed_pkts++;
|
||||
continue;
|
||||
}
|
||||
|
||||
ev[i].queue_id++;
|
||||
pipeline_fwd_event(&ev[i], cq_id != last_queue ?
|
||||
sched_type_list[cq_id] :
|
||||
RTE_SCHED_TYPE_ATOMIC);
|
||||
}
|
||||
|
||||
pipeline_event_enqueue_burst(dev, port, ev, nb_rx);
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
static __rte_noinline int
|
||||
pipeline_queue_worker_multi_stage_burst_fwd(void *arg)
|
||||
{
|
||||
PIPELINE_WORKER_MULTI_STAGE_BURST_INIT;
|
||||
const uint8_t *tx_queue = t->tx_evqueue_id;
|
||||
|
||||
while (t->done == false) {
|
||||
uint16_t nb_rx = rte_event_dequeue_burst(dev, port, ev,
|
||||
BURST_SIZE, 0);
|
||||
|
||||
if (!nb_rx) {
|
||||
rte_pause();
|
||||
continue;
|
||||
}
|
||||
|
||||
for (i = 0; i < nb_rx; i++) {
|
||||
rte_prefetch0(ev[i + 1].mbuf);
|
||||
cq_id = ev[i].queue_id % nb_stages;
|
||||
|
||||
if (cq_id == last_queue) {
|
||||
ev[i].queue_id = tx_queue[ev[i].mbuf->port];
|
||||
rte_event_eth_tx_adapter_txq_set(ev[i].mbuf, 0);
|
||||
pipeline_fwd_event(&ev[i],
|
||||
RTE_SCHED_TYPE_ATOMIC);
|
||||
w->processed_pkts++;
|
||||
} else {
|
||||
ev[i].queue_id++;
|
||||
pipeline_fwd_event(&ev[i],
|
||||
sched_type_list[cq_id]);
|
||||
}
|
||||
}
|
||||
|
||||
pipeline_event_enqueue_burst(dev, port, ev, nb_rx);
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
static int
|
||||
worker_wrapper(void *arg)
|
||||
{
|
||||
struct worker_data *w = arg;
|
||||
struct evt_options *opt = w->t->opt;
|
||||
const bool burst = evt_has_burst_mode(w->dev_id);
|
||||
const bool internal_port = w->t->internal_port;
|
||||
const uint8_t nb_stages = opt->nb_stages;
|
||||
RTE_SET_USED(opt);
|
||||
|
||||
if (nb_stages == 1) {
|
||||
if (!burst && internal_port)
|
||||
return pipeline_queue_worker_single_stage_tx(arg);
|
||||
else if (!burst && !internal_port)
|
||||
return pipeline_queue_worker_single_stage_fwd(arg);
|
||||
else if (burst && internal_port)
|
||||
return pipeline_queue_worker_single_stage_burst_tx(arg);
|
||||
else if (burst && !internal_port)
|
||||
return pipeline_queue_worker_single_stage_burst_fwd(
|
||||
arg);
|
||||
} else {
|
||||
if (!burst && internal_port)
|
||||
return pipeline_queue_worker_multi_stage_tx(arg);
|
||||
else if (!burst && !internal_port)
|
||||
return pipeline_queue_worker_multi_stage_fwd(arg);
|
||||
else if (burst && internal_port)
|
||||
return pipeline_queue_worker_multi_stage_burst_tx(arg);
|
||||
else if (burst && !internal_port)
|
||||
return pipeline_queue_worker_multi_stage_burst_fwd(arg);
|
||||
|
||||
}
|
||||
rte_panic("invalid worker\n");
|
||||
}
|
||||
|
||||
static int
|
||||
pipeline_queue_launch_lcores(struct evt_test *test, struct evt_options *opt)
|
||||
{
|
||||
return pipeline_launch_lcores(test, opt, worker_wrapper);
|
||||
}
|
||||
|
||||
static int
|
||||
pipeline_queue_eventdev_setup(struct evt_test *test, struct evt_options *opt)
|
||||
{
|
||||
int ret;
|
||||
int nb_ports;
|
||||
int nb_queues;
|
||||
int nb_stages = opt->nb_stages;
|
||||
uint8_t queue;
|
||||
uint8_t tx_evport_id = 0;
|
||||
uint8_t tx_evqueue_id[RTE_MAX_ETHPORTS];
|
||||
uint8_t queue_arr[RTE_EVENT_MAX_QUEUES_PER_DEV];
|
||||
uint8_t nb_worker_queues = 0;
|
||||
uint16_t prod = 0;
|
||||
struct rte_event_dev_info info;
|
||||
struct test_pipeline *t = evt_test_priv(test);
|
||||
|
||||
nb_ports = evt_nr_active_lcores(opt->wlcores);
|
||||
nb_queues = rte_eth_dev_count_avail() * (nb_stages);
|
||||
|
||||
/* One queue for Tx adapter per port */
|
||||
nb_queues += rte_eth_dev_count_avail();
|
||||
|
||||
memset(tx_evqueue_id, 0, sizeof(uint8_t) * RTE_MAX_ETHPORTS);
|
||||
memset(queue_arr, 0, sizeof(uint8_t) * RTE_EVENT_MAX_QUEUES_PER_DEV);
|
||||
|
||||
rte_event_dev_info_get(opt->dev_id, &info);
|
||||
const struct rte_event_dev_config config = {
|
||||
.nb_event_queues = nb_queues,
|
||||
.nb_event_ports = nb_ports,
|
||||
.nb_events_limit = info.max_num_events,
|
||||
.nb_event_queue_flows = opt->nb_flows,
|
||||
.nb_event_port_dequeue_depth =
|
||||
info.max_event_port_dequeue_depth,
|
||||
.nb_event_port_enqueue_depth =
|
||||
info.max_event_port_enqueue_depth,
|
||||
};
|
||||
ret = rte_event_dev_configure(opt->dev_id, &config);
|
||||
if (ret) {
|
||||
evt_err("failed to configure eventdev %d", opt->dev_id);
|
||||
return ret;
|
||||
}
|
||||
|
||||
struct rte_event_queue_conf q_conf = {
|
||||
.priority = RTE_EVENT_DEV_PRIORITY_NORMAL,
|
||||
.nb_atomic_flows = opt->nb_flows,
|
||||
.nb_atomic_order_sequences = opt->nb_flows,
|
||||
};
|
||||
/* queue configurations */
|
||||
for (queue = 0; queue < nb_queues; queue++) {
|
||||
uint8_t slot;
|
||||
|
||||
q_conf.event_queue_cfg = 0;
|
||||
slot = queue % (nb_stages + 1);
|
||||
if (slot == nb_stages) {
|
||||
q_conf.schedule_type = RTE_SCHED_TYPE_ATOMIC;
|
||||
if (!t->internal_port) {
|
||||
q_conf.event_queue_cfg =
|
||||
RTE_EVENT_QUEUE_CFG_SINGLE_LINK;
|
||||
}
|
||||
tx_evqueue_id[prod++] = queue;
|
||||
} else {
|
||||
q_conf.schedule_type = opt->sched_type_list[slot];
|
||||
queue_arr[nb_worker_queues] = queue;
|
||||
nb_worker_queues++;
|
||||
}
|
||||
|
||||
ret = rte_event_queue_setup(opt->dev_id, queue, &q_conf);
|
||||
if (ret) {
|
||||
evt_err("failed to setup queue=%d", queue);
|
||||
return ret;
|
||||
}
|
||||
}
|
||||
|
||||
if (opt->wkr_deq_dep > info.max_event_port_dequeue_depth)
|
||||
opt->wkr_deq_dep = info.max_event_port_dequeue_depth;
|
||||
|
||||
/* port configuration */
|
||||
const struct rte_event_port_conf p_conf = {
|
||||
.dequeue_depth = opt->wkr_deq_dep,
|
||||
.enqueue_depth = info.max_event_port_dequeue_depth,
|
||||
.new_event_threshold = info.max_num_events,
|
||||
};
|
||||
|
||||
if (!t->internal_port) {
|
||||
ret = pipeline_event_port_setup(test, opt, queue_arr,
|
||||
nb_worker_queues, p_conf);
|
||||
if (ret)
|
||||
return ret;
|
||||
} else
|
||||
ret = pipeline_event_port_setup(test, opt, NULL, nb_queues,
|
||||
p_conf);
|
||||
|
||||
if (ret)
|
||||
return ret;
|
||||
/*
|
||||
* The pipelines are setup in the following manner:
|
||||
*
|
||||
* eth_dev_count = 2, nb_stages = 2.
|
||||
*
|
||||
* queues = 6
|
||||
* stride = 3
|
||||
*
|
||||
* event queue pipelines:
|
||||
* eth0 -> q0 -> q1 -> (q2->tx)
|
||||
* eth1 -> q3 -> q4 -> (q5->tx)
|
||||
*
|
||||
* q2, q5 configured as ATOMIC | SINGLE_LINK
|
||||
*
|
||||
*/
|
||||
ret = pipeline_event_rx_adapter_setup(opt, nb_stages + 1, p_conf);
|
||||
if (ret)
|
||||
return ret;
|
||||
|
||||
ret = pipeline_event_tx_adapter_setup(opt, p_conf);
|
||||
if (ret)
|
||||
return ret;
|
||||
|
||||
if (!evt_has_distributed_sched(opt->dev_id)) {
|
||||
uint32_t service_id;
|
||||
rte_event_dev_service_id_get(opt->dev_id, &service_id);
|
||||
ret = evt_service_setup(service_id);
|
||||
if (ret) {
|
||||
evt_err("No service lcore found to run event dev.");
|
||||
return ret;
|
||||
}
|
||||
}
|
||||
|
||||
/* Connect the tx_evqueue_id to the Tx adapter port */
|
||||
if (!t->internal_port) {
|
||||
RTE_ETH_FOREACH_DEV(prod) {
|
||||
ret = rte_event_eth_tx_adapter_event_port_get(prod,
|
||||
&tx_evport_id);
|
||||
if (ret) {
|
||||
evt_err("Unable to get Tx adptr[%d] evprt[%d]",
|
||||
prod, tx_evport_id);
|
||||
return ret;
|
||||
}
|
||||
|
||||
if (rte_event_port_link(opt->dev_id, tx_evport_id,
|
||||
&tx_evqueue_id[prod],
|
||||
NULL, 1) != 1) {
|
||||
evt_err("Unable to link Tx adptr[%d] evprt[%d]",
|
||||
prod, tx_evport_id);
|
||||
return ret;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
RTE_ETH_FOREACH_DEV(prod) {
|
||||
ret = rte_eth_dev_start(prod);
|
||||
if (ret) {
|
||||
evt_err("Ethernet dev [%d] failed to start."
|
||||
" Using synthetic producer", prod);
|
||||
return ret;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
ret = rte_event_dev_start(opt->dev_id);
|
||||
if (ret) {
|
||||
evt_err("failed to start eventdev %d", opt->dev_id);
|
||||
return ret;
|
||||
}
|
||||
|
||||
RTE_ETH_FOREACH_DEV(prod) {
|
||||
ret = rte_event_eth_rx_adapter_start(prod);
|
||||
if (ret) {
|
||||
evt_err("Rx adapter[%d] start failed", prod);
|
||||
return ret;
|
||||
}
|
||||
|
||||
ret = rte_event_eth_tx_adapter_start(prod);
|
||||
if (ret) {
|
||||
evt_err("Tx adapter[%d] start failed", prod);
|
||||
return ret;
|
||||
}
|
||||
}
|
||||
|
||||
memcpy(t->tx_evqueue_id, tx_evqueue_id, sizeof(uint8_t) *
|
||||
RTE_MAX_ETHPORTS);
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
static void
|
||||
pipeline_queue_opt_dump(struct evt_options *opt)
|
||||
{
|
||||
pipeline_opt_dump(opt, pipeline_queue_nb_event_queues(opt));
|
||||
}
|
||||
|
||||
static int
|
||||
pipeline_queue_opt_check(struct evt_options *opt)
|
||||
{
|
||||
return pipeline_opt_check(opt, pipeline_queue_nb_event_queues(opt));
|
||||
}
|
||||
|
||||
static bool
|
||||
pipeline_queue_capability_check(struct evt_options *opt)
|
||||
{
|
||||
struct rte_event_dev_info dev_info;
|
||||
|
||||
rte_event_dev_info_get(opt->dev_id, &dev_info);
|
||||
if (dev_info.max_event_queues < pipeline_queue_nb_event_queues(opt) ||
|
||||
dev_info.max_event_ports <
|
||||
evt_nr_active_lcores(opt->wlcores)) {
|
||||
evt_err("not enough eventdev queues=%d/%d or ports=%d/%d",
|
||||
pipeline_queue_nb_event_queues(opt),
|
||||
dev_info.max_event_queues,
|
||||
evt_nr_active_lcores(opt->wlcores),
|
||||
dev_info.max_event_ports);
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
static const struct evt_test_ops pipeline_queue = {
|
||||
.cap_check = pipeline_queue_capability_check,
|
||||
.opt_check = pipeline_queue_opt_check,
|
||||
.opt_dump = pipeline_queue_opt_dump,
|
||||
.test_setup = pipeline_test_setup,
|
||||
.mempool_setup = pipeline_mempool_setup,
|
||||
.ethdev_setup = pipeline_ethdev_setup,
|
||||
.eventdev_setup = pipeline_queue_eventdev_setup,
|
||||
.launch_lcores = pipeline_queue_launch_lcores,
|
||||
.eventdev_destroy = pipeline_eventdev_destroy,
|
||||
.mempool_destroy = pipeline_mempool_destroy,
|
||||
.ethdev_destroy = pipeline_ethdev_destroy,
|
||||
.test_result = pipeline_test_result,
|
||||
.test_destroy = pipeline_test_destroy,
|
||||
};
|
||||
|
||||
EVT_TEST_REGISTER(pipeline_queue);
|
|
@ -1,33 +1,5 @@
|
|||
# BSD LICENSE
|
||||
#
|
||||
# Copyright(c) 2010-2015 Intel Corporation. All rights reserved.
|
||||
# All rights reserved.
|
||||
#
|
||||
# Redistribution and use in source and binary forms, with or without
|
||||
# modification, are permitted provided that the following conditions
|
||||
# are met:
|
||||
#
|
||||
# * Redistributions of source code must retain the above copyright
|
||||
# notice, this list of conditions and the following disclaimer.
|
||||
# * Redistributions in binary form must reproduce the above copyright
|
||||
# notice, this list of conditions and the following disclaimer in
|
||||
# the documentation and/or other materials provided with the
|
||||
# distribution.
|
||||
# * Neither the name of Intel Corporation nor the names of its
|
||||
# contributors may be used to endorse or promote products derived
|
||||
# from this software without specific prior written permission.
|
||||
#
|
||||
# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
|
||||
# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
|
||||
# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
|
||||
# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
|
||||
# OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
|
||||
# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
|
||||
# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
|
||||
# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
|
||||
# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
||||
# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
|
||||
# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
# SPDX-License-Identifier: BSD-3-Clause
|
||||
# Copyright(c) 2010-2015 Intel Corporation
|
||||
|
||||
include $(RTE_SDK)/mk/rte.vars.mk
|
||||
|
||||
|
@ -38,8 +10,10 @@ ifeq ($(CONFIG_RTE_TEST_PMD),y)
|
|||
#
|
||||
APP = testpmd
|
||||
|
||||
CFLAGS += -DALLOW_EXPERIMENTAL_API
|
||||
CFLAGS += -O3
|
||||
CFLAGS += $(WERROR_FLAGS)
|
||||
CFLAGS += -Wno-deprecated-declarations
|
||||
|
||||
#
|
||||
# all source are stored in SRCS-y
|
||||
|
@ -59,10 +33,13 @@ SRCS-y += rxonly.c
|
|||
SRCS-y += txonly.c
|
||||
SRCS-y += csumonly.c
|
||||
SRCS-y += icmpecho.c
|
||||
SRCS-y += noisy_vnf.c
|
||||
SRCS-$(CONFIG_RTE_LIBRTE_IEEE1588) += ieee1588fwd.c
|
||||
SRCS-$(CONFIG_RTE_LIBRTE_BPF) += bpf_cmd.c
|
||||
SRCS-y += util.c
|
||||
|
||||
ifeq ($(CONFIG_RTE_LIBRTE_PMD_SOFTNIC)$(CONFIG_RTE_LIBRTE_SCHED),yy)
|
||||
SRCS-y += tm.c
|
||||
ifeq ($(CONFIG_RTE_LIBRTE_PMD_SOFTNIC), y)
|
||||
SRCS-y += softnicfwd.c
|
||||
endif
|
||||
|
||||
ifeq ($(CONFIG_RTE_BUILD_SHARED_LIB),y)
|
||||
|
@ -71,6 +48,12 @@ ifeq ($(CONFIG_RTE_LIBRTE_PMD_BOND),y)
|
|||
LDLIBS += -lrte_pmd_bond
|
||||
endif
|
||||
|
||||
ifeq ($(CONFIG_RTE_LIBRTE_DPAA_BUS)$(CONFIG_RTE_LIBRTE_DPAA_PMD),yy)
|
||||
LDLIBS += -lrte_pmd_dpaa
|
||||
LDLIBS += -lrte_bus_dpaa
|
||||
LDLIBS += -lrte_mempool_dpaa
|
||||
endif
|
||||
|
||||
ifeq ($(CONFIG_RTE_LIBRTE_IXGBE_PMD),y)
|
||||
LDLIBS += -lrte_pmd_ixgbe
|
||||
endif
|
||||
|
@ -89,8 +72,6 @@ endif
|
|||
|
||||
endif
|
||||
|
||||
CFLAGS_cmdline.o := -D_GNU_SOURCE
|
||||
|
||||
include $(RTE_SDK)/mk/rte.app.mk
|
||||
|
||||
endif
|
||||
|
|
|
@ -0,0 +1,198 @@
|
|||
/* SPDX-License-Identifier: BSD-3-Clause
|
||||
* Copyright(c) 2018 Intel Corporation
|
||||
*/
|
||||
|
||||
#include <stdio.h>
|
||||
#include <rte_mbuf.h>
|
||||
#include <rte_ethdev.h>
|
||||
#include <rte_flow.h>
|
||||
#include <rte_bpf_ethdev.h>
|
||||
|
||||
#include <cmdline.h>
|
||||
#include <cmdline_parse.h>
|
||||
#include <cmdline_parse_num.h>
|
||||
#include <cmdline_parse_string.h>
|
||||
|
||||
#include "testpmd.h"
|
||||
|
||||
static const struct rte_bpf_xsym bpf_xsym[] = {
|
||||
{
|
||||
.name = RTE_STR(stdout),
|
||||
.type = RTE_BPF_XTYPE_VAR,
|
||||
.var = {
|
||||
.val = &stdout,
|
||||
.desc = {
|
||||
.type = RTE_BPF_ARG_PTR,
|
||||
.size = sizeof(stdout),
|
||||
},
|
||||
},
|
||||
},
|
||||
{
|
||||
.name = RTE_STR(rte_pktmbuf_dump),
|
||||
.type = RTE_BPF_XTYPE_FUNC,
|
||||
.func = {
|
||||
.val = (void *)rte_pktmbuf_dump,
|
||||
.nb_args = 3,
|
||||
.args = {
|
||||
[0] = {
|
||||
.type = RTE_BPF_ARG_RAW,
|
||||
.size = sizeof(uintptr_t),
|
||||
},
|
||||
[1] = {
|
||||
.type = RTE_BPF_ARG_PTR_MBUF,
|
||||
.size = sizeof(struct rte_mbuf),
|
||||
},
|
||||
[2] = {
|
||||
.type = RTE_BPF_ARG_RAW,
|
||||
.size = sizeof(uint32_t),
|
||||
},
|
||||
},
|
||||
},
|
||||
},
|
||||
};
|
||||
|
||||
/* *** load BPF program *** */
|
||||
struct cmd_bpf_ld_result {
|
||||
cmdline_fixed_string_t bpf;
|
||||
cmdline_fixed_string_t dir;
|
||||
uint8_t port;
|
||||
uint16_t queue;
|
||||
cmdline_fixed_string_t op;
|
||||
cmdline_fixed_string_t flags;
|
||||
cmdline_fixed_string_t prm;
|
||||
};
|
||||
|
||||
static void
|
||||
bpf_parse_flags(const char *str, struct rte_bpf_arg *arg, uint32_t *flags)
|
||||
{
|
||||
uint32_t i, v;
|
||||
|
||||
*flags = RTE_BPF_ETH_F_NONE;
|
||||
arg->type = RTE_BPF_ARG_PTR;
|
||||
arg->size = mbuf_data_size;
|
||||
|
||||
for (i = 0; str[i] != 0; i++) {
|
||||
v = toupper(str[i]);
|
||||
if (v == 'J')
|
||||
*flags |= RTE_BPF_ETH_F_JIT;
|
||||
else if (v == 'M') {
|
||||
arg->type = RTE_BPF_ARG_PTR_MBUF;
|
||||
arg->size = sizeof(struct rte_mbuf);
|
||||
arg->buf_size = mbuf_data_size;
|
||||
} else if (v == '-')
|
||||
continue;
|
||||
else
|
||||
printf("unknown flag: \'%c\'", v);
|
||||
}
|
||||
}
|
||||
|
||||
static void cmd_operate_bpf_ld_parsed(void *parsed_result,
|
||||
__attribute__((unused)) struct cmdline *cl,
|
||||
__attribute__((unused)) void *data)
|
||||
{
|
||||
int32_t rc;
|
||||
uint32_t flags;
|
||||
struct cmd_bpf_ld_result *res;
|
||||
struct rte_bpf_prm prm;
|
||||
const char *fname, *sname;
|
||||
|
||||
res = parsed_result;
|
||||
memset(&prm, 0, sizeof(prm));
|
||||
prm.xsym = bpf_xsym;
|
||||
prm.nb_xsym = RTE_DIM(bpf_xsym);
|
||||
|
||||
bpf_parse_flags(res->flags, &prm.prog_arg, &flags);
|
||||
fname = res->prm;
|
||||
sname = ".text";
|
||||
|
||||
if (strcmp(res->dir, "rx") == 0) {
|
||||
rc = rte_bpf_eth_rx_elf_load(res->port, res->queue, &prm,
|
||||
fname, sname, flags);
|
||||
printf("%d:%s\n", rc, strerror(-rc));
|
||||
} else if (strcmp(res->dir, "tx") == 0) {
|
||||
rc = rte_bpf_eth_tx_elf_load(res->port, res->queue, &prm,
|
||||
fname, sname, flags);
|
||||
printf("%d:%s\n", rc, strerror(-rc));
|
||||
} else
|
||||
printf("invalid value: %s\n", res->dir);
|
||||
}
|
||||
|
||||
cmdline_parse_token_string_t cmd_load_bpf_start =
|
||||
TOKEN_STRING_INITIALIZER(struct cmd_bpf_ld_result,
|
||||
bpf, "bpf-load");
|
||||
cmdline_parse_token_string_t cmd_load_bpf_dir =
|
||||
TOKEN_STRING_INITIALIZER(struct cmd_bpf_ld_result,
|
||||
dir, "rx#tx");
|
||||
cmdline_parse_token_num_t cmd_load_bpf_port =
|
||||
TOKEN_NUM_INITIALIZER(struct cmd_bpf_ld_result, port, UINT8);
|
||||
cmdline_parse_token_num_t cmd_load_bpf_queue =
|
||||
TOKEN_NUM_INITIALIZER(struct cmd_bpf_ld_result, queue, UINT16);
|
||||
cmdline_parse_token_string_t cmd_load_bpf_flags =
|
||||
TOKEN_STRING_INITIALIZER(struct cmd_bpf_ld_result,
|
||||
flags, NULL);
|
||||
cmdline_parse_token_string_t cmd_load_bpf_prm =
|
||||
TOKEN_STRING_INITIALIZER(struct cmd_bpf_ld_result,
|
||||
prm, NULL);
|
||||
|
||||
cmdline_parse_inst_t cmd_operate_bpf_ld_parse = {
|
||||
.f = cmd_operate_bpf_ld_parsed,
|
||||
.data = NULL,
|
||||
.help_str = "bpf-load rx|tx <port> <queue> <J|M|B> <file_name>",
|
||||
.tokens = {
|
||||
(void *)&cmd_load_bpf_start,
|
||||
(void *)&cmd_load_bpf_dir,
|
||||
(void *)&cmd_load_bpf_port,
|
||||
(void *)&cmd_load_bpf_queue,
|
||||
(void *)&cmd_load_bpf_flags,
|
||||
(void *)&cmd_load_bpf_prm,
|
||||
NULL,
|
||||
},
|
||||
};
|
||||
|
||||
/* *** unload BPF program *** */
|
||||
struct cmd_bpf_unld_result {
|
||||
cmdline_fixed_string_t bpf;
|
||||
cmdline_fixed_string_t dir;
|
||||
uint8_t port;
|
||||
uint16_t queue;
|
||||
};
|
||||
|
||||
static void cmd_operate_bpf_unld_parsed(void *parsed_result,
|
||||
__attribute__((unused)) struct cmdline *cl,
|
||||
__attribute__((unused)) void *data)
|
||||
{
|
||||
struct cmd_bpf_unld_result *res;
|
||||
|
||||
res = parsed_result;
|
||||
|
||||
if (strcmp(res->dir, "rx") == 0)
|
||||
rte_bpf_eth_rx_unload(res->port, res->queue);
|
||||
else if (strcmp(res->dir, "tx") == 0)
|
||||
rte_bpf_eth_tx_unload(res->port, res->queue);
|
||||
else
|
||||
printf("invalid value: %s\n", res->dir);
|
||||
}
|
||||
|
||||
cmdline_parse_token_string_t cmd_unload_bpf_start =
|
||||
TOKEN_STRING_INITIALIZER(struct cmd_bpf_unld_result,
|
||||
bpf, "bpf-unload");
|
||||
cmdline_parse_token_string_t cmd_unload_bpf_dir =
|
||||
TOKEN_STRING_INITIALIZER(struct cmd_bpf_unld_result,
|
||||
dir, "rx#tx");
|
||||
cmdline_parse_token_num_t cmd_unload_bpf_port =
|
||||
TOKEN_NUM_INITIALIZER(struct cmd_bpf_unld_result, port, UINT8);
|
||||
cmdline_parse_token_num_t cmd_unload_bpf_queue =
|
||||
TOKEN_NUM_INITIALIZER(struct cmd_bpf_unld_result, queue, UINT16);
|
||||
|
||||
cmdline_parse_inst_t cmd_operate_bpf_unld_parse = {
|
||||
.f = cmd_operate_bpf_unld_parsed,
|
||||
.data = NULL,
|
||||
.help_str = "bpf-unload rx|tx <port> <queue>",
|
||||
.tokens = {
|
||||
(void *)&cmd_unload_bpf_start,
|
||||
(void *)&cmd_unload_bpf_dir,
|
||||
(void *)&cmd_unload_bpf_port,
|
||||
(void *)&cmd_unload_bpf_queue,
|
||||
NULL,
|
||||
},
|
||||
};
|
|
@ -0,0 +1,16 @@
|
|||
/* SPDX-License-Identifier: BSD-3-Clause
|
||||
* Copyright(c) 2018 Intel Corporation
|
||||
*/
|
||||
|
||||
#ifndef _BPF_CMD_H_
|
||||
#define _BPF_CMD_H_
|
||||
|
||||
#ifdef RTE_LIBRTE_BPF
|
||||
|
||||
/* BPF CLI */
|
||||
extern cmdline_parse_inst_t cmd_operate_bpf_ld_parse;
|
||||
extern cmdline_parse_inst_t cmd_operate_bpf_unld_parse;
|
||||
|
||||
#endif /* RTE_LIBRTE_BPF */
|
||||
|
||||
#endif /* _BPF_CMD_H_ */
|
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
|
@ -1,34 +1,5 @@
|
|||
/*-
|
||||
* BSD LICENSE
|
||||
*
|
||||
* Copyright(c) 2017 Intel Corporation. All rights reserved.
|
||||
* All rights reserved.
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
* modification, are permitted provided that the following conditions
|
||||
* are met:
|
||||
*
|
||||
* * Redistributions of source code must retain the above copyright
|
||||
* notice, this list of conditions and the following disclaimer.
|
||||
* * Redistributions in binary form must reproduce the above copyright
|
||||
* notice, this list of conditions and the following disclaimer in
|
||||
* the documentation and/or other materials provided with the
|
||||
* distribution.
|
||||
* * Neither the name of Intel Corporation nor the names of its
|
||||
* contributors may be used to endorse or promote products derived
|
||||
* from this software without specific prior written permission.
|
||||
*
|
||||
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
|
||||
* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
|
||||
* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
|
||||
* A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
|
||||
* OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
|
||||
* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
|
||||
* LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
|
||||
* DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
|
||||
* THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
||||
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
|
||||
* OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
/* SPDX-License-Identifier: BSD-3-Clause
|
||||
* Copyright(c) 2017 Intel Corporation
|
||||
*/
|
||||
|
||||
#include <cmdline_parse.h>
|
||||
|
@ -42,6 +13,9 @@
|
|||
#include "testpmd.h"
|
||||
#include "cmdline_mtr.h"
|
||||
|
||||
#define PARSE_DELIMITER " \f\n\r\t\v"
|
||||
#define MAX_DSCP_TABLE_ENTRIES 64
|
||||
|
||||
/** Display Meter Error Message */
|
||||
static void
|
||||
print_err_msg(struct rte_mtr_error *error)
|
||||
|
@ -82,24 +56,273 @@ print_err_msg(struct rte_mtr_error *error)
|
|||
error->type);
|
||||
}
|
||||
|
||||
static int
|
||||
parse_uint(uint64_t *value, const char *str)
|
||||
{
|
||||
char *next = NULL;
|
||||
uint64_t n;
|
||||
|
||||
errno = 0;
|
||||
/* Parse number string */
|
||||
n = strtol(str, &next, 10);
|
||||
if (errno != 0 || str == next || *next != '\0')
|
||||
return -1;
|
||||
|
||||
*value = n;
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
static int
|
||||
parse_dscp_table_entries(char *str, enum rte_mtr_color **dscp_table)
|
||||
{
|
||||
char *token;
|
||||
int i = 0;
|
||||
|
||||
token = strtok_r(str, PARSE_DELIMITER, &str);
|
||||
if (token == NULL)
|
||||
return 0;
|
||||
|
||||
/* Allocate memory for dscp table */
|
||||
*dscp_table = (enum rte_mtr_color *)malloc(MAX_DSCP_TABLE_ENTRIES *
|
||||
sizeof(enum rte_mtr_color));
|
||||
if (*dscp_table == NULL)
|
||||
return -1;
|
||||
|
||||
while (1) {
|
||||
if (strcmp(token, "G") == 0 ||
|
||||
strcmp(token, "g") == 0)
|
||||
*dscp_table[i++] = RTE_MTR_GREEN;
|
||||
else if (strcmp(token, "Y") == 0 ||
|
||||
strcmp(token, "y") == 0)
|
||||
*dscp_table[i++] = RTE_MTR_YELLOW;
|
||||
else if (strcmp(token, "R") == 0 ||
|
||||
strcmp(token, "r") == 0)
|
||||
*dscp_table[i++] = RTE_MTR_RED;
|
||||
else {
|
||||
free(*dscp_table);
|
||||
return -1;
|
||||
}
|
||||
if (i == MAX_DSCP_TABLE_ENTRIES)
|
||||
break;
|
||||
|
||||
token = strtok_r(str, PARSE_DELIMITER, &str);
|
||||
if (token == NULL) {
|
||||
free(*dscp_table);
|
||||
return -1;
|
||||
}
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
||||
static int
|
||||
parse_meter_color_str(char *c_str, uint32_t *use_prev_meter_color,
|
||||
enum rte_mtr_color **dscp_table)
|
||||
{
|
||||
char *token;
|
||||
uint64_t previous_mtr_color = 0;
|
||||
int ret;
|
||||
|
||||
/* First token: use previous meter color */
|
||||
token = strtok_r(c_str, PARSE_DELIMITER, &c_str);
|
||||
if (token == NULL)
|
||||
return -1;
|
||||
|
||||
ret = parse_uint(&previous_mtr_color, token);
|
||||
if (ret != 0)
|
||||
return -1;
|
||||
|
||||
/* Check if previous meter color to be used */
|
||||
if (previous_mtr_color) {
|
||||
*use_prev_meter_color = previous_mtr_color;
|
||||
return 0;
|
||||
}
|
||||
|
||||
/* Parse dscp table entries */
|
||||
ret = parse_dscp_table_entries(c_str, dscp_table);
|
||||
if (ret != 0)
|
||||
return -1;
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
static int
|
||||
string_to_policer_action(char *s)
|
||||
{
|
||||
if (strcmp(s, "G") == 0)
|
||||
if ((strcmp(s, "G") == 0) || (strcmp(s, "g") == 0))
|
||||
return MTR_POLICER_ACTION_COLOR_GREEN;
|
||||
|
||||
if (strcmp(s, "Y") == 0)
|
||||
if ((strcmp(s, "Y") == 0) || (strcmp(s, "y") == 0))
|
||||
return MTR_POLICER_ACTION_COLOR_YELLOW;
|
||||
|
||||
if (strcmp(s, "R") == 0)
|
||||
if ((strcmp(s, "R") == 0) || (strcmp(s, "r") == 0))
|
||||
return MTR_POLICER_ACTION_COLOR_RED;
|
||||
|
||||
if (strcmp(s, "D") == 0)
|
||||
if ((strcmp(s, "D") == 0) || (strcmp(s, "d") == 0))
|
||||
return MTR_POLICER_ACTION_DROP;
|
||||
|
||||
return -1;
|
||||
}
|
||||
|
||||
static int
|
||||
parse_policer_action_string(char *p_str, uint32_t action_mask,
|
||||
enum rte_mtr_policer_action actions[])
|
||||
{
|
||||
char *token;
|
||||
int count = __builtin_popcount(action_mask);
|
||||
int g_color = 0, y_color = 0, action, i;
|
||||
|
||||
for (i = 0; i < count; i++) {
|
||||
token = strtok_r(p_str, PARSE_DELIMITER, &p_str);
|
||||
if (token == NULL)
|
||||
return -1;
|
||||
|
||||
action = string_to_policer_action(token);
|
||||
if (action == -1)
|
||||
return -1;
|
||||
|
||||
if (g_color == 0 && (action_mask & 0x1)) {
|
||||
actions[RTE_MTR_GREEN] = action;
|
||||
g_color = 1;
|
||||
} else if (y_color == 0 && (action_mask & 0x2)) {
|
||||
actions[RTE_MTR_YELLOW] = action;
|
||||
y_color = 1;
|
||||
} else
|
||||
actions[RTE_MTR_RED] = action;
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
||||
static int
|
||||
parse_multi_token_string(char *t_str, uint16_t *port_id,
|
||||
uint32_t *mtr_id, enum rte_mtr_color **dscp_table)
|
||||
{
|
||||
char *token;
|
||||
uint64_t val;
|
||||
int ret;
|
||||
|
||||
/* First token: port id */
|
||||
token = strtok_r(t_str, PARSE_DELIMITER, &t_str);
|
||||
if (token == NULL)
|
||||
return -1;
|
||||
|
||||
ret = parse_uint(&val, token);
|
||||
if (ret != 0 || val > UINT16_MAX)
|
||||
return -1;
|
||||
|
||||
*port_id = val;
|
||||
|
||||
/* Second token: meter id */
|
||||
token = strtok_r(t_str, PARSE_DELIMITER, &t_str);
|
||||
if (token == NULL)
|
||||
return 0;
|
||||
|
||||
ret = parse_uint(&val, token);
|
||||
if (ret != 0 || val > UINT32_MAX)
|
||||
return -1;
|
||||
|
||||
*mtr_id = val;
|
||||
|
||||
ret = parse_dscp_table_entries(t_str, dscp_table);
|
||||
if (ret != 0)
|
||||
return -1;
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
/* *** Show Port Meter Capabilities *** */
|
||||
struct cmd_show_port_meter_cap_result {
|
||||
cmdline_fixed_string_t show;
|
||||
cmdline_fixed_string_t port;
|
||||
cmdline_fixed_string_t meter;
|
||||
cmdline_fixed_string_t cap;
|
||||
uint16_t port_id;
|
||||
};
|
||||
|
||||
cmdline_parse_token_string_t cmd_show_port_meter_cap_show =
|
||||
TOKEN_STRING_INITIALIZER(
|
||||
struct cmd_show_port_meter_cap_result, show, "show");
|
||||
cmdline_parse_token_string_t cmd_show_port_meter_cap_port =
|
||||
TOKEN_STRING_INITIALIZER(
|
||||
struct cmd_show_port_meter_cap_result, port, "port");
|
||||
cmdline_parse_token_string_t cmd_show_port_meter_cap_meter =
|
||||
TOKEN_STRING_INITIALIZER(
|
||||
struct cmd_show_port_meter_cap_result, meter, "meter");
|
||||
cmdline_parse_token_string_t cmd_show_port_meter_cap_cap =
|
||||
TOKEN_STRING_INITIALIZER(
|
||||
struct cmd_show_port_meter_cap_result, cap, "cap");
|
||||
cmdline_parse_token_num_t cmd_show_port_meter_cap_port_id =
|
||||
TOKEN_NUM_INITIALIZER(
|
||||
struct cmd_show_port_meter_cap_result, port_id, UINT16);
|
||||
|
||||
static void cmd_show_port_meter_cap_parsed(void *parsed_result,
|
||||
__attribute__((unused)) struct cmdline *cl,
|
||||
__attribute__((unused)) void *data)
|
||||
{
|
||||
struct cmd_show_port_meter_cap_result *res = parsed_result;
|
||||
struct rte_mtr_capabilities cap;
|
||||
struct rte_mtr_error error;
|
||||
uint16_t port_id = res->port_id;
|
||||
int ret;
|
||||
|
||||
if (port_id_is_invalid(port_id, ENABLED_WARN))
|
||||
return;
|
||||
|
||||
memset(&cap, 0, sizeof(struct rte_mtr_capabilities));
|
||||
ret = rte_mtr_capabilities_get(port_id, &cap, &error);
|
||||
if (ret) {
|
||||
print_err_msg(&error);
|
||||
return;
|
||||
}
|
||||
|
||||
printf("\n**** Port Meter Object Capabilities ****\n\n");
|
||||
printf("cap.n_max %" PRIu32 "\n", cap.n_max);
|
||||
printf("cap.n_shared_max %" PRIu32 "\n", cap.n_shared_max);
|
||||
printf("cap.identical %" PRId32 "\n", cap.identical);
|
||||
printf("cap.shared_identical %" PRId32 "\n",
|
||||
cap.shared_identical);
|
||||
printf("cap.shared_n_flows_per_mtr_max %" PRIu32 "\n",
|
||||
cap.shared_n_flows_per_mtr_max);
|
||||
printf("cap.chaining_n_mtrs_per_flow_max %" PRIu32 "\n",
|
||||
cap.chaining_n_mtrs_per_flow_max);
|
||||
printf("cap.chaining_use_prev_mtr_color_supported %" PRId32 "\n",
|
||||
cap.chaining_use_prev_mtr_color_supported);
|
||||
printf("cap.chaining_use_prev_mtr_color_enforced %" PRId32 "\n",
|
||||
cap.chaining_use_prev_mtr_color_enforced);
|
||||
printf("cap.meter_srtcm_rfc2697_n_max %" PRIu32 "\n",
|
||||
cap.meter_srtcm_rfc2697_n_max);
|
||||
printf("cap.meter_trtcm_rfc2698_n_max %" PRIu32 "\n",
|
||||
cap.meter_trtcm_rfc2698_n_max);
|
||||
printf("cap.meter_trtcm_rfc4115_n_max %" PRIu32 "\n",
|
||||
cap.meter_trtcm_rfc4115_n_max);
|
||||
printf("cap.meter_rate_max %" PRIu64 "\n", cap.meter_rate_max);
|
||||
printf("cap.color_aware_srtcm_rfc2697_supported %" PRId32 "\n",
|
||||
cap.color_aware_srtcm_rfc2697_supported);
|
||||
printf("cap.color_aware_trtcm_rfc2698_supported %" PRId32 "\n",
|
||||
cap.color_aware_trtcm_rfc2698_supported);
|
||||
printf("cap.color_aware_trtcm_rfc4115_supported %" PRId32 "\n",
|
||||
cap.color_aware_trtcm_rfc4115_supported);
|
||||
printf("cap.policer_action_recolor_supported %" PRId32 "\n",
|
||||
cap.policer_action_recolor_supported);
|
||||
printf("cap.policer_action_drop_supported %" PRId32 "\n",
|
||||
cap.policer_action_drop_supported);
|
||||
printf("cap.stats_mask %" PRIx64 "\n", cap.stats_mask);
|
||||
}
|
||||
|
||||
cmdline_parse_inst_t cmd_show_port_meter_cap = {
|
||||
.f = cmd_show_port_meter_cap_parsed,
|
||||
.data = NULL,
|
||||
.help_str = "Show port meter cap",
|
||||
.tokens = {
|
||||
(void *)&cmd_show_port_meter_cap_show,
|
||||
(void *)&cmd_show_port_meter_cap_port,
|
||||
(void *)&cmd_show_port_meter_cap_meter,
|
||||
(void *)&cmd_show_port_meter_cap_cap,
|
||||
(void *)&cmd_show_port_meter_cap_port_id,
|
||||
NULL,
|
||||
},
|
||||
};
|
||||
|
||||
/* *** Add Port Meter Profile srtcm_rfc2697 *** */
|
||||
struct cmd_add_port_meter_profile_srtcm_result {
|
||||
cmdline_fixed_string_t add;
|
||||
|
@ -112,7 +335,6 @@ struct cmd_add_port_meter_profile_srtcm_result {
|
|||
uint64_t cir;
|
||||
uint64_t cbs;
|
||||
uint64_t ebs;
|
||||
uint8_t color_aware;
|
||||
};
|
||||
|
||||
cmdline_parse_token_string_t cmd_add_port_meter_profile_srtcm_add =
|
||||
|
@ -171,7 +393,7 @@ static void cmd_add_port_meter_profile_srtcm_parsed(void *parsed_result,
|
|||
|
||||
/* Private shaper profile params */
|
||||
memset(&mp, 0, sizeof(struct rte_mtr_meter_profile));
|
||||
mp.alg = 0;
|
||||
mp.alg = RTE_MTR_SRTCM_RFC2697;
|
||||
mp.srtcm_rfc2697.cir = res->cir;
|
||||
mp.srtcm_rfc2697.cbs = res->cbs;
|
||||
mp.srtcm_rfc2697.ebs = res->ebs;
|
||||
|
@ -192,9 +414,9 @@ cmdline_parse_inst_t cmd_add_port_meter_profile_srtcm = {
|
|||
(void *)&cmd_add_port_meter_profile_srtcm_port,
|
||||
(void *)&cmd_add_port_meter_profile_srtcm_meter,
|
||||
(void *)&cmd_add_port_meter_profile_srtcm_profile,
|
||||
(void *)&cmd_add_port_meter_profile_srtcm_srtcm_rfc2697,
|
||||
(void *)&cmd_add_port_meter_profile_srtcm_port_id,
|
||||
(void *)&cmd_add_port_meter_profile_srtcm_profile_id,
|
||||
(void *)&cmd_add_port_meter_profile_srtcm_srtcm_rfc2697,
|
||||
(void *)&cmd_add_port_meter_profile_srtcm_cir,
|
||||
(void *)&cmd_add_port_meter_profile_srtcm_cbs,
|
||||
(void *)&cmd_add_port_meter_profile_srtcm_ebs,
|
||||
|
@ -277,7 +499,7 @@ static void cmd_add_port_meter_profile_trtcm_parsed(void *parsed_result,
|
|||
|
||||
/* Private shaper profile params */
|
||||
memset(&mp, 0, sizeof(struct rte_mtr_meter_profile));
|
||||
mp.alg = 0;
|
||||
mp.alg = RTE_MTR_TRTCM_RFC2698;
|
||||
mp.trtcm_rfc2698.cir = res->cir;
|
||||
mp.trtcm_rfc2698.pir = res->pir;
|
||||
mp.trtcm_rfc2698.cbs = res->cbs;
|
||||
|
@ -299,9 +521,9 @@ cmdline_parse_inst_t cmd_add_port_meter_profile_trtcm = {
|
|||
(void *)&cmd_add_port_meter_profile_trtcm_port,
|
||||
(void *)&cmd_add_port_meter_profile_trtcm_meter,
|
||||
(void *)&cmd_add_port_meter_profile_trtcm_profile,
|
||||
(void *)&cmd_add_port_meter_profile_trtcm_trtcm_rfc2698,
|
||||
(void *)&cmd_add_port_meter_profile_trtcm_port_id,
|
||||
(void *)&cmd_add_port_meter_profile_trtcm_profile_id,
|
||||
(void *)&cmd_add_port_meter_profile_trtcm_trtcm_rfc2698,
|
||||
(void *)&cmd_add_port_meter_profile_trtcm_cir,
|
||||
(void *)&cmd_add_port_meter_profile_trtcm_pir,
|
||||
(void *)&cmd_add_port_meter_profile_trtcm_cbs,
|
||||
|
@ -389,7 +611,7 @@ static void cmd_add_port_meter_profile_trtcm_rfc4115_parsed(
|
|||
|
||||
/* Private shaper profile params */
|
||||
memset(&mp, 0, sizeof(struct rte_mtr_meter_profile));
|
||||
mp.alg = 0;
|
||||
mp.alg = RTE_MTR_TRTCM_RFC4115;
|
||||
mp.trtcm_rfc4115.cir = res->cir;
|
||||
mp.trtcm_rfc4115.eir = res->eir;
|
||||
mp.trtcm_rfc4115.cbs = res->cbs;
|
||||
|
@ -411,9 +633,9 @@ cmdline_parse_inst_t cmd_add_port_meter_profile_trtcm_rfc4115 = {
|
|||
(void *)&cmd_add_port_meter_profile_trtcm_rfc4115_port,
|
||||
(void *)&cmd_add_port_meter_profile_trtcm_rfc4115_meter,
|
||||
(void *)&cmd_add_port_meter_profile_trtcm_rfc4115_profile,
|
||||
(void *)&cmd_add_port_meter_profile_trtcm_rfc4115_trtcm_rfc4115,
|
||||
(void *)&cmd_add_port_meter_profile_trtcm_rfc4115_port_id,
|
||||
(void *)&cmd_add_port_meter_profile_trtcm_rfc4115_profile_id,
|
||||
(void *)&cmd_add_port_meter_profile_trtcm_rfc4115_trtcm_rfc4115,
|
||||
(void *)&cmd_add_port_meter_profile_trtcm_rfc4115_cir,
|
||||
(void *)&cmd_add_port_meter_profile_trtcm_rfc4115_eir,
|
||||
(void *)&cmd_add_port_meter_profile_trtcm_rfc4115_cbs,
|
||||
|
@ -493,65 +715,75 @@ cmdline_parse_inst_t cmd_del_port_meter_profile = {
|
|||
};
|
||||
|
||||
/* *** Create Port Meter Object *** */
|
||||
struct cmd_set_port_meter_result {
|
||||
cmdline_fixed_string_t set;
|
||||
struct cmd_create_port_meter_result {
|
||||
cmdline_fixed_string_t create;
|
||||
cmdline_fixed_string_t port;
|
||||
cmdline_fixed_string_t meter;
|
||||
uint16_t port_id;
|
||||
uint32_t mtr_id;
|
||||
uint32_t profile_id;
|
||||
cmdline_fixed_string_t meter_enable;
|
||||
cmdline_fixed_string_t g_action;
|
||||
cmdline_fixed_string_t y_action;
|
||||
cmdline_fixed_string_t r_action;
|
||||
uint64_t statistics_mask;
|
||||
uint32_t shared;
|
||||
cmdline_multi_string_t meter_input_color;
|
||||
};
|
||||
|
||||
cmdline_parse_token_string_t cmd_set_port_meter_set =
|
||||
cmdline_parse_token_string_t cmd_create_port_meter_create =
|
||||
TOKEN_STRING_INITIALIZER(
|
||||
struct cmd_set_port_meter_result, set, "set");
|
||||
cmdline_parse_token_string_t cmd_set_port_meter_port =
|
||||
struct cmd_create_port_meter_result, create, "create");
|
||||
cmdline_parse_token_string_t cmd_create_port_meter_port =
|
||||
TOKEN_STRING_INITIALIZER(
|
||||
struct cmd_set_port_meter_result, port, "port");
|
||||
cmdline_parse_token_string_t cmd_set_port_meter_meter =
|
||||
struct cmd_create_port_meter_result, port, "port");
|
||||
cmdline_parse_token_string_t cmd_create_port_meter_meter =
|
||||
TOKEN_STRING_INITIALIZER(
|
||||
struct cmd_set_port_meter_result, meter, "meter");
|
||||
cmdline_parse_token_num_t cmd_set_port_meter_port_id =
|
||||
struct cmd_create_port_meter_result, meter, "meter");
|
||||
cmdline_parse_token_num_t cmd_create_port_meter_port_id =
|
||||
TOKEN_NUM_INITIALIZER(
|
||||
struct cmd_set_port_meter_result, port_id, UINT16);
|
||||
cmdline_parse_token_num_t cmd_set_port_meter_mtr_id =
|
||||
struct cmd_create_port_meter_result, port_id, UINT16);
|
||||
cmdline_parse_token_num_t cmd_create_port_meter_mtr_id =
|
||||
TOKEN_NUM_INITIALIZER(
|
||||
struct cmd_set_port_meter_result, mtr_id, UINT32);
|
||||
cmdline_parse_token_num_t cmd_set_port_meter_profile_id =
|
||||
struct cmd_create_port_meter_result, mtr_id, UINT32);
|
||||
cmdline_parse_token_num_t cmd_create_port_meter_profile_id =
|
||||
TOKEN_NUM_INITIALIZER(
|
||||
struct cmd_set_port_meter_result, profile_id, UINT32);
|
||||
cmdline_parse_token_string_t cmd_set_port_meter_g_action =
|
||||
TOKEN_STRING_INITIALIZER(struct cmd_set_port_meter_result,
|
||||
g_action, "R#Y#G#D");
|
||||
cmdline_parse_token_string_t cmd_set_port_meter_y_action =
|
||||
TOKEN_STRING_INITIALIZER(struct cmd_set_port_meter_result,
|
||||
y_action, "R#Y#G#D");
|
||||
cmdline_parse_token_string_t cmd_set_port_meter_r_action =
|
||||
TOKEN_STRING_INITIALIZER(struct cmd_set_port_meter_result,
|
||||
r_action, "R#Y#G#D");
|
||||
cmdline_parse_token_num_t cmd_set_port_meter_statistics_mask =
|
||||
TOKEN_NUM_INITIALIZER(struct cmd_set_port_meter_result,
|
||||
struct cmd_create_port_meter_result, profile_id, UINT32);
|
||||
cmdline_parse_token_string_t cmd_create_port_meter_meter_enable =
|
||||
TOKEN_STRING_INITIALIZER(struct cmd_create_port_meter_result,
|
||||
meter_enable, "yes#no");
|
||||
cmdline_parse_token_string_t cmd_create_port_meter_g_action =
|
||||
TOKEN_STRING_INITIALIZER(struct cmd_create_port_meter_result,
|
||||
g_action, "R#Y#G#D#r#y#g#d");
|
||||
cmdline_parse_token_string_t cmd_create_port_meter_y_action =
|
||||
TOKEN_STRING_INITIALIZER(struct cmd_create_port_meter_result,
|
||||
y_action, "R#Y#G#D#r#y#g#d");
|
||||
cmdline_parse_token_string_t cmd_create_port_meter_r_action =
|
||||
TOKEN_STRING_INITIALIZER(struct cmd_create_port_meter_result,
|
||||
r_action, "R#Y#G#D#r#y#g#d");
|
||||
cmdline_parse_token_num_t cmd_create_port_meter_statistics_mask =
|
||||
TOKEN_NUM_INITIALIZER(struct cmd_create_port_meter_result,
|
||||
statistics_mask, UINT64);
|
||||
cmdline_parse_token_num_t cmd_set_port_meter_shared =
|
||||
TOKEN_NUM_INITIALIZER(struct cmd_set_port_meter_result,
|
||||
cmdline_parse_token_num_t cmd_create_port_meter_shared =
|
||||
TOKEN_NUM_INITIALIZER(struct cmd_create_port_meter_result,
|
||||
shared, UINT32);
|
||||
cmdline_parse_token_string_t cmd_create_port_meter_input_color =
|
||||
TOKEN_STRING_INITIALIZER(struct cmd_create_port_meter_result,
|
||||
meter_input_color, TOKEN_STRING_MULTI);
|
||||
|
||||
static void cmd_set_port_meter_parsed(void *parsed_result,
|
||||
static void cmd_create_port_meter_parsed(void *parsed_result,
|
||||
__attribute__((unused)) struct cmdline *cl,
|
||||
__attribute__((unused)) void *data)
|
||||
{
|
||||
struct cmd_set_port_meter_result *res = parsed_result;
|
||||
struct cmd_create_port_meter_result *res = parsed_result;
|
||||
struct rte_mtr_error error;
|
||||
struct rte_mtr_params params;
|
||||
uint32_t mtr_id = res->mtr_id;
|
||||
uint32_t shared = res->shared;
|
||||
uint32_t use_prev_meter_color = 0;
|
||||
uint16_t port_id = res->port_id;
|
||||
|
||||
enum rte_mtr_color *dscp_table = NULL;
|
||||
char *c_str = res->meter_input_color;
|
||||
int ret;
|
||||
|
||||
if (port_id_is_invalid(port_id, ENABLED_WARN))
|
||||
|
@ -560,9 +792,22 @@ static void cmd_set_port_meter_parsed(void *parsed_result,
|
|||
/* Meter params */
|
||||
memset(¶ms, 0, sizeof(struct rte_mtr_params));
|
||||
params.meter_profile_id = res->profile_id;
|
||||
params.use_prev_mtr_color = 1;
|
||||
params.dscp_table = NULL;
|
||||
params.meter_enable = 1;
|
||||
|
||||
/* Parse meter input color string params */
|
||||
ret = parse_meter_color_str(c_str, &use_prev_meter_color, &dscp_table);
|
||||
if (ret) {
|
||||
printf(" Meter input color params string parse error\n");
|
||||
return;
|
||||
}
|
||||
|
||||
params.use_prev_mtr_color = use_prev_meter_color;
|
||||
params.dscp_table = dscp_table;
|
||||
|
||||
if (strcmp(res->meter_enable, "yes") == 0)
|
||||
params.meter_enable = 1;
|
||||
else
|
||||
params.meter_enable = 0;
|
||||
|
||||
params.action[RTE_MTR_GREEN] =
|
||||
string_to_policer_action(res->g_action);
|
||||
params.action[RTE_MTR_YELLOW] =
|
||||
|
@ -573,27 +818,152 @@ static void cmd_set_port_meter_parsed(void *parsed_result,
|
|||
|
||||
ret = rte_mtr_create(port_id, mtr_id, ¶ms, shared, &error);
|
||||
if (ret != 0) {
|
||||
free(dscp_table);
|
||||
print_err_msg(&error);
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
cmdline_parse_inst_t cmd_set_port_meter = {
|
||||
.f = cmd_set_port_meter_parsed,
|
||||
cmdline_parse_inst_t cmd_create_port_meter = {
|
||||
.f = cmd_create_port_meter_parsed,
|
||||
.data = NULL,
|
||||
.help_str = "Set port meter",
|
||||
.help_str = "Create port meter",
|
||||
.tokens = {
|
||||
(void *)&cmd_set_port_meter_set,
|
||||
(void *)&cmd_set_port_meter_port,
|
||||
(void *)&cmd_set_port_meter_meter,
|
||||
(void *)&cmd_set_port_meter_port_id,
|
||||
(void *)&cmd_set_port_meter_mtr_id,
|
||||
(void *)&cmd_set_port_meter_profile_id,
|
||||
(void *)&cmd_set_port_meter_g_action,
|
||||
(void *)&cmd_set_port_meter_y_action,
|
||||
(void *)&cmd_set_port_meter_r_action,
|
||||
(void *)&cmd_set_port_meter_statistics_mask,
|
||||
(void *)&cmd_set_port_meter_shared,
|
||||
(void *)&cmd_create_port_meter_create,
|
||||
(void *)&cmd_create_port_meter_port,
|
||||
(void *)&cmd_create_port_meter_meter,
|
||||
(void *)&cmd_create_port_meter_port_id,
|
||||
(void *)&cmd_create_port_meter_mtr_id,
|
||||
(void *)&cmd_create_port_meter_profile_id,
|
||||
(void *)&cmd_create_port_meter_meter_enable,
|
||||
(void *)&cmd_create_port_meter_g_action,
|
||||
(void *)&cmd_create_port_meter_y_action,
|
||||
(void *)&cmd_create_port_meter_r_action,
|
||||
(void *)&cmd_create_port_meter_statistics_mask,
|
||||
(void *)&cmd_create_port_meter_shared,
|
||||
(void *)&cmd_create_port_meter_input_color,
|
||||
NULL,
|
||||
},
|
||||
};
|
||||
|
||||
/* *** Enable Meter of MTR Object *** */
|
||||
struct cmd_enable_port_meter_result {
|
||||
cmdline_fixed_string_t enable;
|
||||
cmdline_fixed_string_t port;
|
||||
cmdline_fixed_string_t meter;
|
||||
uint16_t port_id;
|
||||
uint32_t mtr_id;
|
||||
};
|
||||
|
||||
cmdline_parse_token_string_t cmd_enable_port_meter_enable =
|
||||
TOKEN_STRING_INITIALIZER(
|
||||
struct cmd_enable_port_meter_result, enable, "enable");
|
||||
cmdline_parse_token_string_t cmd_enable_port_meter_port =
|
||||
TOKEN_STRING_INITIALIZER(
|
||||
struct cmd_enable_port_meter_result, port, "port");
|
||||
cmdline_parse_token_string_t cmd_enable_port_meter_meter =
|
||||
TOKEN_STRING_INITIALIZER(
|
||||
struct cmd_enable_port_meter_result, meter, "meter");
|
||||
cmdline_parse_token_num_t cmd_enable_port_meter_port_id =
|
||||
TOKEN_NUM_INITIALIZER(
|
||||
struct cmd_enable_port_meter_result, port_id, UINT16);
|
||||
cmdline_parse_token_num_t cmd_enable_port_meter_mtr_id =
|
||||
TOKEN_NUM_INITIALIZER(
|
||||
struct cmd_enable_port_meter_result, mtr_id, UINT32);
|
||||
|
||||
static void cmd_enable_port_meter_parsed(void *parsed_result,
|
||||
__attribute__((unused)) struct cmdline *cl,
|
||||
__attribute__((unused)) void *data)
|
||||
{
|
||||
struct cmd_enable_port_meter_result *res = parsed_result;
|
||||
struct rte_mtr_error error;
|
||||
uint32_t mtr_id = res->mtr_id;
|
||||
uint16_t port_id = res->port_id;
|
||||
|
||||
int ret;
|
||||
|
||||
if (port_id_is_invalid(port_id, ENABLED_WARN))
|
||||
return;
|
||||
|
||||
/* Enable Meter */
|
||||
ret = rte_mtr_meter_enable(port_id, mtr_id, &error);
|
||||
if (ret != 0) {
|
||||
print_err_msg(&error);
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
cmdline_parse_inst_t cmd_enable_port_meter = {
|
||||
.f = cmd_enable_port_meter_parsed,
|
||||
.data = NULL,
|
||||
.help_str = "Enable port meter",
|
||||
.tokens = {
|
||||
(void *)&cmd_enable_port_meter_enable,
|
||||
(void *)&cmd_enable_port_meter_port,
|
||||
(void *)&cmd_enable_port_meter_meter,
|
||||
(void *)&cmd_enable_port_meter_port_id,
|
||||
(void *)&cmd_enable_port_meter_mtr_id,
|
||||
NULL,
|
||||
},
|
||||
};
|
||||
|
||||
/* *** Disable Meter of MTR Object *** */
|
||||
struct cmd_disable_port_meter_result {
|
||||
cmdline_fixed_string_t disable;
|
||||
cmdline_fixed_string_t port;
|
||||
cmdline_fixed_string_t meter;
|
||||
uint16_t port_id;
|
||||
uint32_t mtr_id;
|
||||
};
|
||||
|
||||
cmdline_parse_token_string_t cmd_disable_port_meter_disable =
|
||||
TOKEN_STRING_INITIALIZER(
|
||||
struct cmd_disable_port_meter_result, disable, "disable");
|
||||
cmdline_parse_token_string_t cmd_disable_port_meter_port =
|
||||
TOKEN_STRING_INITIALIZER(
|
||||
struct cmd_disable_port_meter_result, port, "port");
|
||||
cmdline_parse_token_string_t cmd_disable_port_meter_meter =
|
||||
TOKEN_STRING_INITIALIZER(
|
||||
struct cmd_disable_port_meter_result, meter, "meter");
|
||||
cmdline_parse_token_num_t cmd_disable_port_meter_port_id =
|
||||
TOKEN_NUM_INITIALIZER(
|
||||
struct cmd_disable_port_meter_result, port_id, UINT16);
|
||||
cmdline_parse_token_num_t cmd_disable_port_meter_mtr_id =
|
||||
TOKEN_NUM_INITIALIZER(
|
||||
struct cmd_disable_port_meter_result, mtr_id, UINT32);
|
||||
|
||||
static void cmd_disable_port_meter_parsed(void *parsed_result,
|
||||
__attribute__((unused)) struct cmdline *cl,
|
||||
__attribute__((unused)) void *data)
|
||||
{
|
||||
struct cmd_disable_port_meter_result *res = parsed_result;
|
||||
struct rte_mtr_error error;
|
||||
uint32_t mtr_id = res->mtr_id;
|
||||
uint16_t port_id = res->port_id;
|
||||
|
||||
int ret;
|
||||
|
||||
if (port_id_is_invalid(port_id, ENABLED_WARN))
|
||||
return;
|
||||
|
||||
/* Disable Meter */
|
||||
ret = rte_mtr_meter_disable(port_id, mtr_id, &error);
|
||||
if (ret != 0) {
|
||||
print_err_msg(&error);
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
cmdline_parse_inst_t cmd_disable_port_meter = {
|
||||
.f = cmd_disable_port_meter_parsed,
|
||||
.data = NULL,
|
||||
.help_str = "Disable port meter",
|
||||
.tokens = {
|
||||
(void *)&cmd_disable_port_meter_disable,
|
||||
(void *)&cmd_disable_port_meter_port,
|
||||
(void *)&cmd_disable_port_meter_meter,
|
||||
(void *)&cmd_disable_port_meter_port_id,
|
||||
(void *)&cmd_disable_port_meter_mtr_id,
|
||||
NULL,
|
||||
},
|
||||
};
|
||||
|
@ -732,6 +1102,78 @@ cmdline_parse_inst_t cmd_set_port_meter_profile = {
|
|||
},
|
||||
};
|
||||
|
||||
/* *** Set Port Meter DSCP Table *** */
|
||||
struct cmd_set_port_meter_dscp_table_result {
|
||||
cmdline_fixed_string_t set;
|
||||
cmdline_fixed_string_t port;
|
||||
cmdline_fixed_string_t meter;
|
||||
cmdline_fixed_string_t dscp_table;
|
||||
cmdline_multi_string_t token_string;
|
||||
};
|
||||
|
||||
cmdline_parse_token_string_t cmd_set_port_meter_dscp_table_set =
|
||||
TOKEN_STRING_INITIALIZER(
|
||||
struct cmd_set_port_meter_dscp_table_result, set, "set");
|
||||
cmdline_parse_token_string_t cmd_set_port_meter_dscp_table_port =
|
||||
TOKEN_STRING_INITIALIZER(
|
||||
struct cmd_set_port_meter_dscp_table_result, port, "port");
|
||||
cmdline_parse_token_string_t cmd_set_port_meter_dscp_table_meter =
|
||||
TOKEN_STRING_INITIALIZER(
|
||||
struct cmd_set_port_meter_dscp_table_result, meter, "meter");
|
||||
cmdline_parse_token_string_t cmd_set_port_meter_dscp_table_dscp_table =
|
||||
TOKEN_STRING_INITIALIZER(
|
||||
struct cmd_set_port_meter_dscp_table_result,
|
||||
dscp_table, "dscp table");
|
||||
cmdline_parse_token_string_t cmd_set_port_meter_dscp_table_token_string =
|
||||
TOKEN_STRING_INITIALIZER(struct cmd_set_port_meter_dscp_table_result,
|
||||
token_string, TOKEN_STRING_MULTI);
|
||||
|
||||
static void cmd_set_port_meter_dscp_table_parsed(void *parsed_result,
|
||||
__attribute__((unused)) struct cmdline *cl,
|
||||
__attribute__((unused)) void *data)
|
||||
{
|
||||
struct cmd_set_port_meter_dscp_table_result *res = parsed_result;
|
||||
struct rte_mtr_error error;
|
||||
enum rte_mtr_color *dscp_table = NULL;
|
||||
char *t_str = res->token_string;
|
||||
uint32_t mtr_id = 0;
|
||||
uint16_t port_id;
|
||||
int ret;
|
||||
|
||||
/* Parse string */
|
||||
ret = parse_multi_token_string(t_str, &port_id, &mtr_id, &dscp_table);
|
||||
if (ret) {
|
||||
printf(" Multi token string parse error\n");
|
||||
return;
|
||||
}
|
||||
|
||||
if (port_id_is_invalid(port_id, ENABLED_WARN))
|
||||
goto free_table;
|
||||
|
||||
/* Update Meter DSCP Table*/
|
||||
ret = rte_mtr_meter_dscp_table_update(port_id, mtr_id,
|
||||
dscp_table, &error);
|
||||
if (ret != 0)
|
||||
print_err_msg(&error);
|
||||
|
||||
free_table:
|
||||
free(dscp_table);
|
||||
}
|
||||
|
||||
cmdline_parse_inst_t cmd_set_port_meter_dscp_table = {
|
||||
.f = cmd_set_port_meter_dscp_table_parsed,
|
||||
.data = NULL,
|
||||
.help_str = "Update port meter dscp table",
|
||||
.tokens = {
|
||||
(void *)&cmd_set_port_meter_dscp_table_set,
|
||||
(void *)&cmd_set_port_meter_dscp_table_port,
|
||||
(void *)&cmd_set_port_meter_dscp_table_meter,
|
||||
(void *)&cmd_set_port_meter_dscp_table_dscp_table,
|
||||
(void *)&cmd_set_port_meter_dscp_table_token_string,
|
||||
NULL,
|
||||
},
|
||||
};
|
||||
|
||||
/* *** Set Port Meter Policer Action *** */
|
||||
struct cmd_set_port_meter_policer_action_result {
|
||||
cmdline_fixed_string_t set;
|
||||
|
@ -741,8 +1183,8 @@ struct cmd_set_port_meter_policer_action_result {
|
|||
cmdline_fixed_string_t action;
|
||||
uint16_t port_id;
|
||||
uint32_t mtr_id;
|
||||
cmdline_fixed_string_t color;
|
||||
cmdline_fixed_string_t policer_action;
|
||||
uint32_t action_mask;
|
||||
cmdline_multi_string_t policer_action;
|
||||
};
|
||||
|
||||
cmdline_parse_token_string_t cmd_set_port_meter_policer_action_set =
|
||||
|
@ -771,56 +1213,60 @@ cmdline_parse_token_num_t cmd_set_port_meter_policer_action_mtr_id =
|
|||
TOKEN_NUM_INITIALIZER(
|
||||
struct cmd_set_port_meter_policer_action_result, mtr_id,
|
||||
UINT32);
|
||||
cmdline_parse_token_string_t cmd_set_port_meter_policer_action_color =
|
||||
TOKEN_STRING_INITIALIZER(
|
||||
struct cmd_set_port_meter_policer_action_result, color,
|
||||
"G#Y#R");
|
||||
cmdline_parse_token_num_t cmd_set_port_meter_policer_action_action_mask =
|
||||
TOKEN_NUM_INITIALIZER(
|
||||
struct cmd_set_port_meter_policer_action_result, action_mask,
|
||||
UINT32);
|
||||
cmdline_parse_token_string_t cmd_set_port_meter_policer_action_policer_action =
|
||||
TOKEN_STRING_INITIALIZER(
|
||||
struct cmd_set_port_meter_policer_action_result,
|
||||
policer_action, "G#Y#R#D");
|
||||
policer_action, TOKEN_STRING_MULTI);
|
||||
|
||||
static void cmd_set_port_meter_policer_action_parsed(void *parsed_result,
|
||||
__attribute__((unused)) struct cmdline *cl,
|
||||
__attribute__((unused)) void *data)
|
||||
{
|
||||
struct cmd_set_port_meter_policer_action_result *res = parsed_result;
|
||||
enum rte_mtr_color color;
|
||||
enum rte_mtr_policer_action action[RTE_MTR_COLORS];
|
||||
enum rte_mtr_policer_action *actions;
|
||||
struct rte_mtr_error error;
|
||||
uint32_t mtr_id = res->mtr_id;
|
||||
uint32_t action_mask = res->action_mask;
|
||||
uint16_t port_id = res->port_id;
|
||||
char *c = res->color;
|
||||
char *a = res->policer_action;
|
||||
char *p_str = res->policer_action;
|
||||
int ret;
|
||||
|
||||
if (port_id_is_invalid(port_id, ENABLED_WARN))
|
||||
return;
|
||||
|
||||
/* Color */
|
||||
if (strcmp(c, "G") == 0)
|
||||
color = RTE_MTR_GREEN;
|
||||
else if (strcmp(c, "Y") == 0)
|
||||
color = RTE_MTR_YELLOW;
|
||||
else
|
||||
color = RTE_MTR_RED;
|
||||
/* Check: action mask */
|
||||
if (action_mask == 0 || (action_mask & (~0x7UL))) {
|
||||
printf(" Policer action mask not correct (error)\n");
|
||||
return;
|
||||
}
|
||||
|
||||
/* Action */
|
||||
if (strcmp(a, "G") == 0)
|
||||
action[color] = MTR_POLICER_ACTION_COLOR_GREEN;
|
||||
else if (strcmp(a, "Y") == 0)
|
||||
action[color] = MTR_POLICER_ACTION_COLOR_YELLOW;
|
||||
else if (strcmp(a, "R") == 0)
|
||||
action[color] = MTR_POLICER_ACTION_COLOR_RED;
|
||||
else
|
||||
action[color] = MTR_POLICER_ACTION_DROP;
|
||||
/* Allocate memory for policer actions */
|
||||
actions = (enum rte_mtr_policer_action *)malloc(RTE_MTR_COLORS *
|
||||
sizeof(enum rte_mtr_policer_action));
|
||||
if (actions == NULL) {
|
||||
printf("Memory for policer actions not allocated (error)\n");
|
||||
return;
|
||||
}
|
||||
/* Parse policer action string */
|
||||
ret = parse_policer_action_string(p_str, action_mask, actions);
|
||||
if (ret) {
|
||||
printf(" Policer action string parse error\n");
|
||||
free(actions);
|
||||
return;
|
||||
}
|
||||
|
||||
ret = rte_mtr_policer_actions_update(port_id, mtr_id,
|
||||
1 << color, action, &error);
|
||||
action_mask, actions, &error);
|
||||
if (ret != 0) {
|
||||
print_err_msg(&error);
|
||||
return;
|
||||
}
|
||||
|
||||
free(actions);
|
||||
}
|
||||
|
||||
cmdline_parse_inst_t cmd_set_port_meter_policer_action = {
|
||||
|
@ -835,7 +1281,7 @@ cmdline_parse_inst_t cmd_set_port_meter_policer_action = {
|
|||
(void *)&cmd_set_port_meter_policer_action_action,
|
||||
(void *)&cmd_set_port_meter_policer_action_port_id,
|
||||
(void *)&cmd_set_port_meter_policer_action_mtr_id,
|
||||
(void *)&cmd_set_port_meter_policer_action_color,
|
||||
(void *)&cmd_set_port_meter_policer_action_action_mask,
|
||||
(void *)&cmd_set_port_meter_policer_action_policer_action,
|
||||
NULL,
|
||||
},
|
||||
|
@ -925,7 +1371,7 @@ struct cmd_show_port_meter_stats_result {
|
|||
cmdline_fixed_string_t stats;
|
||||
uint16_t port_id;
|
||||
uint32_t mtr_id;
|
||||
uint32_t clear;
|
||||
cmdline_fixed_string_t clear;
|
||||
};
|
||||
|
||||
cmdline_parse_token_string_t cmd_show_port_meter_stats_show =
|
||||
|
@ -946,9 +1392,9 @@ cmdline_parse_token_num_t cmd_show_port_meter_stats_port_id =
|
|||
cmdline_parse_token_num_t cmd_show_port_meter_stats_mtr_id =
|
||||
TOKEN_NUM_INITIALIZER(
|
||||
struct cmd_show_port_meter_stats_result, mtr_id, UINT32);
|
||||
cmdline_parse_token_num_t cmd_show_port_meter_stats_clear =
|
||||
TOKEN_NUM_INITIALIZER(
|
||||
struct cmd_show_port_meter_stats_result, clear, UINT32);
|
||||
cmdline_parse_token_string_t cmd_show_port_meter_stats_clear =
|
||||
TOKEN_STRING_INITIALIZER(
|
||||
struct cmd_show_port_meter_stats_result, clear, "yes#no");
|
||||
|
||||
static void cmd_show_port_meter_stats_parsed(void *parsed_result,
|
||||
__attribute__((unused)) struct cmdline *cl,
|
||||
|
@ -959,13 +1405,16 @@ static void cmd_show_port_meter_stats_parsed(void *parsed_result,
|
|||
uint64_t stats_mask = 0;
|
||||
struct rte_mtr_error error;
|
||||
uint32_t mtr_id = res->mtr_id;
|
||||
uint32_t clear = res->clear;
|
||||
uint32_t clear = 0;
|
||||
uint16_t port_id = res->port_id;
|
||||
int ret;
|
||||
|
||||
if (port_id_is_invalid(port_id, ENABLED_WARN))
|
||||
return;
|
||||
|
||||
if (strcmp(res->clear, "yes") == 0)
|
||||
clear = 1;
|
||||
|
||||
memset(&stats, 0, sizeof(struct rte_mtr_stats));
|
||||
ret = rte_mtr_stats_read(port_id, mtr_id, &stats,
|
||||
&stats_mask, clear, &error);
|
||||
|
@ -991,7 +1440,7 @@ static void cmd_show_port_meter_stats_parsed(void *parsed_result,
|
|||
printf("\tPkts R: %" PRIu64 "\n",
|
||||
stats.n_pkts[RTE_MTR_RED]);
|
||||
if (stats_mask & RTE_MTR_STATS_N_BYTES_RED)
|
||||
printf("\tBytes Y: %" PRIu64 "\n",
|
||||
printf("\tBytes R: %" PRIu64 "\n",
|
||||
stats.n_bytes[RTE_MTR_RED]);
|
||||
if (stats_mask & RTE_MTR_STATS_N_PKTS_DROPPED)
|
||||
printf("\tPkts DROPPED: %" PRIu64 "\n",
|
||||
|
|
|
@ -1,47 +1,22 @@
|
|||
/*-
|
||||
* BSD LICENSE
|
||||
*
|
||||
* Copyright(c) 2017 Intel Corporation. All rights reserved.
|
||||
* All rights reserved.
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
* modification, are permitted provided that the following conditions
|
||||
* are met:
|
||||
*
|
||||
* * Redistributions of source code must retain the above copyright
|
||||
* notice, this list of conditions and the following disclaimer.
|
||||
* * Redistributions in binary form must reproduce the above copyright
|
||||
* notice, this list of conditions and the following disclaimer in
|
||||
* the documentation and/or other materials provided with the
|
||||
* distribution.
|
||||
* * Neither the name of Intel Corporation nor the names of its
|
||||
* contributors may be used to endorse or promote products derived
|
||||
* from this software without specific prior written permission.
|
||||
*
|
||||
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
|
||||
* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
|
||||
* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
|
||||
* A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
|
||||
* OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
|
||||
* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
|
||||
* LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
|
||||
* DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
|
||||
* THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
||||
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
|
||||
* OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
/* SPDX-License-Identifier: BSD-3-Clause
|
||||
* Copyright(c) 2017 Intel Corporation
|
||||
*/
|
||||
|
||||
#ifndef _CMDLINE_MTR_H_
|
||||
#define _CMDLINE_MTR_H_
|
||||
|
||||
/* Traffic Metering and Policing */
|
||||
extern cmdline_parse_inst_t cmd_show_port_meter_cap;
|
||||
extern cmdline_parse_inst_t cmd_add_port_meter_profile_srtcm;
|
||||
extern cmdline_parse_inst_t cmd_add_port_meter_profile_trtcm;
|
||||
extern cmdline_parse_inst_t cmd_add_port_meter_profile_trtcm_rfc4115;
|
||||
extern cmdline_parse_inst_t cmd_del_port_meter_profile;
|
||||
extern cmdline_parse_inst_t cmd_set_port_meter;
|
||||
extern cmdline_parse_inst_t cmd_create_port_meter;
|
||||
extern cmdline_parse_inst_t cmd_enable_port_meter;
|
||||
extern cmdline_parse_inst_t cmd_disable_port_meter;
|
||||
extern cmdline_parse_inst_t cmd_del_port_meter;
|
||||
extern cmdline_parse_inst_t cmd_set_port_meter_profile;
|
||||
extern cmdline_parse_inst_t cmd_set_port_meter_dscp_table;
|
||||
extern cmdline_parse_inst_t cmd_set_port_meter_policer_action;
|
||||
extern cmdline_parse_inst_t cmd_set_port_meter_stats_mask;
|
||||
extern cmdline_parse_inst_t cmd_show_port_meter_stats;
|
||||
|
|
|
@ -1,34 +1,5 @@
|
|||
/*-
|
||||
* BSD LICENSE
|
||||
*
|
||||
* Copyright(c) 2017 Intel Corporation. All rights reserved.
|
||||
* All rights reserved.
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
* modification, are permitted provided that the following conditions
|
||||
* are met:
|
||||
*
|
||||
* * Redistributions of source code must retain the above copyright
|
||||
* notice, this list of conditions and the following disclaimer.
|
||||
* * Redistributions in binary form must reproduce the above copyright
|
||||
* notice, this list of conditions and the following disclaimer in
|
||||
* the documentation and/or other materials provided with the
|
||||
* distribution.
|
||||
* * Neither the name of Intel Corporation nor the names of its
|
||||
* contributors may be used to endorse or promote products derived
|
||||
* from this software without specific prior written permission.
|
||||
*
|
||||
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
|
||||
* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
|
||||
* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
|
||||
* A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
|
||||
* OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
|
||||
* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
|
||||
* LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
|
||||
* DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
|
||||
* THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
||||
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
|
||||
* OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
/* SPDX-License-Identifier: BSD-3-Clause
|
||||
* Copyright(c) 2017 Intel Corporation
|
||||
*/
|
||||
|
||||
#include <cmdline_parse.h>
|
||||
|
@ -263,6 +234,7 @@ static void cmd_show_port_tm_cap_parsed(void *parsed_result,
|
|||
return;
|
||||
|
||||
memset(&cap, 0, sizeof(struct rte_tm_capabilities));
|
||||
memset(&error, 0, sizeof(struct rte_tm_error));
|
||||
ret = rte_tm_capabilities_get(port_id, &cap, &error);
|
||||
if (ret) {
|
||||
print_err_msg(&error);
|
||||
|
@ -403,6 +375,7 @@ static void cmd_show_port_tm_level_cap_parsed(void *parsed_result,
|
|||
return;
|
||||
|
||||
memset(&lcap, 0, sizeof(struct rte_tm_level_capabilities));
|
||||
memset(&error, 0, sizeof(struct rte_tm_error));
|
||||
ret = rte_tm_level_capabilities_get(port_id, level_id, &lcap, &error);
|
||||
if (ret) {
|
||||
print_err_msg(&error);
|
||||
|
@ -527,6 +500,7 @@ static void cmd_show_port_tm_node_cap_parsed(void *parsed_result,
|
|||
if (port_id_is_invalid(port_id, ENABLED_WARN))
|
||||
return;
|
||||
|
||||
memset(&error, 0, sizeof(struct rte_tm_error));
|
||||
/* Node id must be valid */
|
||||
ret = rte_tm_node_type_get(port_id, node_id, &is_leaf, &error);
|
||||
if (ret != 0) {
|
||||
|
@ -644,6 +618,7 @@ static void cmd_show_port_tm_node_stats_parsed(void *parsed_result,
|
|||
if (port_id_is_invalid(port_id, ENABLED_WARN))
|
||||
return;
|
||||
|
||||
memset(&error, 0, sizeof(struct rte_tm_error));
|
||||
/* Port status */
|
||||
if (!port_is_started(port_id)) {
|
||||
printf(" Port %u not started (error)\n", port_id);
|
||||
|
@ -756,6 +731,7 @@ static void cmd_show_port_tm_node_type_parsed(void *parsed_result,
|
|||
if (port_id_is_invalid(port_id, ENABLED_WARN))
|
||||
return;
|
||||
|
||||
memset(&error, 0, sizeof(struct rte_tm_error));
|
||||
ret = rte_tm_node_type_get(port_id, node_id, &is_leaf, &error);
|
||||
if (ret != 0) {
|
||||
print_err_msg(&error);
|
||||
|
@ -795,8 +771,10 @@ struct cmd_add_port_tm_node_shaper_profile_result {
|
|||
cmdline_fixed_string_t profile;
|
||||
uint16_t port_id;
|
||||
uint32_t shaper_id;
|
||||
uint64_t tb_rate;
|
||||
uint64_t tb_size;
|
||||
uint64_t cmit_tb_rate;
|
||||
uint64_t cmit_tb_size;
|
||||
uint64_t peak_tb_rate;
|
||||
uint64_t peak_tb_size;
|
||||
uint32_t pktlen_adjust;
|
||||
};
|
||||
|
||||
|
@ -831,14 +809,22 @@ cmdline_parse_token_num_t cmd_add_port_tm_node_shaper_profile_shaper_id =
|
|||
TOKEN_NUM_INITIALIZER(
|
||||
struct cmd_add_port_tm_node_shaper_profile_result,
|
||||
shaper_id, UINT32);
|
||||
cmdline_parse_token_num_t cmd_add_port_tm_node_shaper_profile_tb_rate =
|
||||
cmdline_parse_token_num_t cmd_add_port_tm_node_shaper_profile_cmit_tb_rate =
|
||||
TOKEN_NUM_INITIALIZER(
|
||||
struct cmd_add_port_tm_node_shaper_profile_result,
|
||||
tb_rate, UINT64);
|
||||
cmdline_parse_token_num_t cmd_add_port_tm_node_shaper_profile_tb_size =
|
||||
cmit_tb_rate, UINT64);
|
||||
cmdline_parse_token_num_t cmd_add_port_tm_node_shaper_profile_cmit_tb_size =
|
||||
TOKEN_NUM_INITIALIZER(
|
||||
struct cmd_add_port_tm_node_shaper_profile_result,
|
||||
tb_size, UINT64);
|
||||
cmit_tb_size, UINT64);
|
||||
cmdline_parse_token_num_t cmd_add_port_tm_node_shaper_profile_peak_tb_rate =
|
||||
TOKEN_NUM_INITIALIZER(
|
||||
struct cmd_add_port_tm_node_shaper_profile_result,
|
||||
peak_tb_rate, UINT64);
|
||||
cmdline_parse_token_num_t cmd_add_port_tm_node_shaper_profile_peak_tb_size =
|
||||
TOKEN_NUM_INITIALIZER(
|
||||
struct cmd_add_port_tm_node_shaper_profile_result,
|
||||
peak_tb_size, UINT64);
|
||||
cmdline_parse_token_num_t cmd_add_port_tm_node_shaper_profile_pktlen_adjust =
|
||||
TOKEN_NUM_INITIALIZER(
|
||||
struct cmd_add_port_tm_node_shaper_profile_result,
|
||||
|
@ -861,8 +847,11 @@ static void cmd_add_port_tm_node_shaper_profile_parsed(void *parsed_result,
|
|||
|
||||
/* Private shaper profile params */
|
||||
memset(&sp, 0, sizeof(struct rte_tm_shaper_params));
|
||||
sp.peak.rate = res->tb_rate;
|
||||
sp.peak.size = res->tb_size;
|
||||
memset(&error, 0, sizeof(struct rte_tm_error));
|
||||
sp.committed.rate = res->cmit_tb_rate;
|
||||
sp.committed.size = res->cmit_tb_size;
|
||||
sp.peak.rate = res->peak_tb_rate;
|
||||
sp.peak.size = res->peak_tb_size;
|
||||
sp.pkt_length_adjust = pkt_len_adjust;
|
||||
|
||||
ret = rte_tm_shaper_profile_add(port_id, shaper_id, &sp, &error);
|
||||
|
@ -885,8 +874,10 @@ cmdline_parse_inst_t cmd_add_port_tm_node_shaper_profile = {
|
|||
(void *)&cmd_add_port_tm_node_shaper_profile_profile,
|
||||
(void *)&cmd_add_port_tm_node_shaper_profile_port_id,
|
||||
(void *)&cmd_add_port_tm_node_shaper_profile_shaper_id,
|
||||
(void *)&cmd_add_port_tm_node_shaper_profile_tb_rate,
|
||||
(void *)&cmd_add_port_tm_node_shaper_profile_tb_size,
|
||||
(void *)&cmd_add_port_tm_node_shaper_profile_cmit_tb_rate,
|
||||
(void *)&cmd_add_port_tm_node_shaper_profile_cmit_tb_size,
|
||||
(void *)&cmd_add_port_tm_node_shaper_profile_peak_tb_rate,
|
||||
(void *)&cmd_add_port_tm_node_shaper_profile_peak_tb_size,
|
||||
(void *)&cmd_add_port_tm_node_shaper_profile_pktlen_adjust,
|
||||
NULL,
|
||||
},
|
||||
|
@ -948,6 +939,7 @@ static void cmd_del_port_tm_node_shaper_profile_parsed(void *parsed_result,
|
|||
if (port_id_is_invalid(port_id, ENABLED_WARN))
|
||||
return;
|
||||
|
||||
memset(&error, 0, sizeof(struct rte_tm_error));
|
||||
ret = rte_tm_shaper_profile_delete(port_id, shaper_id, &error);
|
||||
if (ret != 0) {
|
||||
print_err_msg(&error);
|
||||
|
@ -1033,6 +1025,7 @@ static void cmd_add_port_tm_node_shared_shaper_parsed(void *parsed_result,
|
|||
if (port_id_is_invalid(port_id, ENABLED_WARN))
|
||||
return;
|
||||
|
||||
memset(&error, 0, sizeof(struct rte_tm_error));
|
||||
/* Command type: add */
|
||||
if ((strcmp(res->cmd_type, "add") == 0) &&
|
||||
(port_is_started(port_id))) {
|
||||
|
@ -1127,6 +1120,7 @@ static void cmd_del_port_tm_node_shared_shaper_parsed(void *parsed_result,
|
|||
if (port_id_is_invalid(port_id, ENABLED_WARN))
|
||||
return;
|
||||
|
||||
memset(&error, 0, sizeof(struct rte_tm_error));
|
||||
ret = rte_tm_shared_shaper_delete(port_id, shared_shaper_id, &error);
|
||||
if (ret != 0) {
|
||||
print_err_msg(&error);
|
||||
|
@ -1283,6 +1277,7 @@ static void cmd_add_port_tm_node_wred_profile_parsed(void *parsed_result,
|
|||
return;
|
||||
|
||||
memset(&wp, 0, sizeof(struct rte_tm_wred_params));
|
||||
memset(&error, 0, sizeof(struct rte_tm_error));
|
||||
|
||||
/* WRED Params (Green Color)*/
|
||||
color = RTE_TM_GREEN;
|
||||
|
@ -1398,6 +1393,7 @@ static void cmd_del_port_tm_node_wred_profile_parsed(void *parsed_result,
|
|||
if (port_id_is_invalid(port_id, ENABLED_WARN))
|
||||
return;
|
||||
|
||||
memset(&error, 0, sizeof(struct rte_tm_error));
|
||||
ret = rte_tm_wred_profile_delete(port_id, wred_profile_id, &error);
|
||||
if (ret != 0) {
|
||||
print_err_msg(&error);
|
||||
|
@ -1484,6 +1480,7 @@ static void cmd_set_port_tm_node_shaper_profile_parsed(void *parsed_result,
|
|||
if (port_id_is_invalid(port_id, ENABLED_WARN))
|
||||
return;
|
||||
|
||||
memset(&error, 0, sizeof(struct rte_tm_error));
|
||||
/* Port status */
|
||||
if (!port_is_started(port_id)) {
|
||||
printf(" Port %u not started (error)\n", port_id);
|
||||
|
@ -1529,7 +1526,7 @@ struct cmd_add_port_tm_nonleaf_node_result {
|
|||
uint32_t priority;
|
||||
uint32_t weight;
|
||||
uint32_t level_id;
|
||||
uint32_t shaper_profile_id;
|
||||
int32_t shaper_profile_id;
|
||||
uint32_t n_sp_priorities;
|
||||
uint64_t stats_mask;
|
||||
cmdline_multi_string_t multi_shared_shaper_id;
|
||||
|
@ -1571,7 +1568,7 @@ cmdline_parse_token_num_t cmd_add_port_tm_nonleaf_node_level_id =
|
|||
level_id, UINT32);
|
||||
cmdline_parse_token_num_t cmd_add_port_tm_nonleaf_node_shaper_profile_id =
|
||||
TOKEN_NUM_INITIALIZER(struct cmd_add_port_tm_nonleaf_node_result,
|
||||
shaper_profile_id, UINT32);
|
||||
shaper_profile_id, INT32);
|
||||
cmdline_parse_token_num_t cmd_add_port_tm_nonleaf_node_n_sp_priorities =
|
||||
TOKEN_NUM_INITIALIZER(struct cmd_add_port_tm_nonleaf_node_result,
|
||||
n_sp_priorities, UINT32);
|
||||
|
@ -1600,6 +1597,7 @@ static void cmd_add_port_tm_nonleaf_node_parsed(void *parsed_result,
|
|||
return;
|
||||
|
||||
memset(&np, 0, sizeof(struct rte_tm_node_params));
|
||||
memset(&error, 0, sizeof(struct rte_tm_error));
|
||||
|
||||
/* Node parameters */
|
||||
if (res->parent_node_id < 0)
|
||||
|
@ -1622,7 +1620,11 @@ static void cmd_add_port_tm_nonleaf_node_parsed(void *parsed_result,
|
|||
return;
|
||||
}
|
||||
|
||||
np.shaper_profile_id = res->shaper_profile_id;
|
||||
if (res->shaper_profile_id < 0)
|
||||
np.shaper_profile_id = UINT32_MAX;
|
||||
else
|
||||
np.shaper_profile_id = res->shaper_profile_id;
|
||||
|
||||
np.n_shared_shapers = n_shared_shapers;
|
||||
if (np.n_shared_shapers) {
|
||||
np.shared_shaper_id = &shared_shaper_id[0];
|
||||
|
@ -1682,7 +1684,7 @@ struct cmd_add_port_tm_leaf_node_result {
|
|||
uint32_t priority;
|
||||
uint32_t weight;
|
||||
uint32_t level_id;
|
||||
uint32_t shaper_profile_id;
|
||||
int32_t shaper_profile_id;
|
||||
uint32_t cman_mode;
|
||||
uint32_t wred_profile_id;
|
||||
uint64_t stats_mask;
|
||||
|
@ -1724,7 +1726,7 @@ cmdline_parse_token_num_t cmd_add_port_tm_leaf_node_level_id =
|
|||
level_id, UINT32);
|
||||
cmdline_parse_token_num_t cmd_add_port_tm_leaf_node_shaper_profile_id =
|
||||
TOKEN_NUM_INITIALIZER(struct cmd_add_port_tm_leaf_node_result,
|
||||
shaper_profile_id, UINT32);
|
||||
shaper_profile_id, INT32);
|
||||
cmdline_parse_token_num_t cmd_add_port_tm_leaf_node_cman_mode =
|
||||
TOKEN_NUM_INITIALIZER(struct cmd_add_port_tm_leaf_node_result,
|
||||
cman_mode, UINT32);
|
||||
|
@ -1756,6 +1758,7 @@ static void cmd_add_port_tm_leaf_node_parsed(void *parsed_result,
|
|||
return;
|
||||
|
||||
memset(&np, 0, sizeof(struct rte_tm_node_params));
|
||||
memset(&error, 0, sizeof(struct rte_tm_error));
|
||||
|
||||
/* Node parameters */
|
||||
if (res->parent_node_id < 0)
|
||||
|
@ -1778,7 +1781,11 @@ static void cmd_add_port_tm_leaf_node_parsed(void *parsed_result,
|
|||
return;
|
||||
}
|
||||
|
||||
np.shaper_profile_id = res->shaper_profile_id;
|
||||
if (res->shaper_profile_id < 0)
|
||||
np.shaper_profile_id = UINT32_MAX;
|
||||
else
|
||||
np.shaper_profile_id = res->shaper_profile_id;
|
||||
|
||||
np.n_shared_shapers = n_shared_shapers;
|
||||
|
||||
if (np.n_shared_shapers) {
|
||||
|
@ -1869,6 +1876,7 @@ static void cmd_del_port_tm_node_parsed(void *parsed_result,
|
|||
if (port_id_is_invalid(port_id, ENABLED_WARN))
|
||||
return;
|
||||
|
||||
memset(&error, 0, sizeof(struct rte_tm_error));
|
||||
/* Port status */
|
||||
if (port_is_started(port_id)) {
|
||||
printf(" Port %u not stopped (error)\n", port_id);
|
||||
|
@ -1958,6 +1966,7 @@ static void cmd_set_port_tm_node_parent_parsed(void *parsed_result,
|
|||
if (port_id_is_invalid(port_id, ENABLED_WARN))
|
||||
return;
|
||||
|
||||
memset(&error, 0, sizeof(struct rte_tm_error));
|
||||
/* Port status */
|
||||
if (!port_is_started(port_id)) {
|
||||
printf(" Port %u not started (error)\n", port_id);
|
||||
|
@ -1991,6 +2000,136 @@ cmdline_parse_inst_t cmd_set_port_tm_node_parent = {
|
|||
},
|
||||
};
|
||||
|
||||
/* *** Suspend Port TM Node *** */
|
||||
struct cmd_suspend_port_tm_node_result {
|
||||
cmdline_fixed_string_t suspend;
|
||||
cmdline_fixed_string_t port;
|
||||
cmdline_fixed_string_t tm;
|
||||
cmdline_fixed_string_t node;
|
||||
uint16_t port_id;
|
||||
uint32_t node_id;
|
||||
};
|
||||
|
||||
cmdline_parse_token_string_t cmd_suspend_port_tm_node_suspend =
|
||||
TOKEN_STRING_INITIALIZER(
|
||||
struct cmd_suspend_port_tm_node_result, suspend, "suspend");
|
||||
cmdline_parse_token_string_t cmd_suspend_port_tm_node_port =
|
||||
TOKEN_STRING_INITIALIZER(
|
||||
struct cmd_suspend_port_tm_node_result, port, "port");
|
||||
cmdline_parse_token_string_t cmd_suspend_port_tm_node_tm =
|
||||
TOKEN_STRING_INITIALIZER(
|
||||
struct cmd_suspend_port_tm_node_result, tm, "tm");
|
||||
cmdline_parse_token_string_t cmd_suspend_port_tm_node_node =
|
||||
TOKEN_STRING_INITIALIZER(
|
||||
struct cmd_suspend_port_tm_node_result, node, "node");
|
||||
cmdline_parse_token_num_t cmd_suspend_port_tm_node_port_id =
|
||||
TOKEN_NUM_INITIALIZER(
|
||||
struct cmd_suspend_port_tm_node_result, port_id, UINT16);
|
||||
cmdline_parse_token_num_t cmd_suspend_port_tm_node_node_id =
|
||||
TOKEN_NUM_INITIALIZER(
|
||||
struct cmd_suspend_port_tm_node_result, node_id, UINT32);
|
||||
|
||||
static void cmd_suspend_port_tm_node_parsed(void *parsed_result,
|
||||
__attribute__((unused)) struct cmdline *cl,
|
||||
__attribute__((unused)) void *data)
|
||||
{
|
||||
struct cmd_suspend_port_tm_node_result *res = parsed_result;
|
||||
struct rte_tm_error error;
|
||||
uint32_t node_id = res->node_id;
|
||||
portid_t port_id = res->port_id;
|
||||
int ret;
|
||||
|
||||
if (port_id_is_invalid(port_id, ENABLED_WARN))
|
||||
return;
|
||||
|
||||
memset(&error, 0, sizeof(struct rte_tm_error));
|
||||
ret = rte_tm_node_suspend(port_id, node_id, &error);
|
||||
if (ret != 0) {
|
||||
print_err_msg(&error);
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
cmdline_parse_inst_t cmd_suspend_port_tm_node = {
|
||||
.f = cmd_suspend_port_tm_node_parsed,
|
||||
.data = NULL,
|
||||
.help_str = "Suspend port tm node",
|
||||
.tokens = {
|
||||
(void *)&cmd_suspend_port_tm_node_suspend,
|
||||
(void *)&cmd_suspend_port_tm_node_port,
|
||||
(void *)&cmd_suspend_port_tm_node_tm,
|
||||
(void *)&cmd_suspend_port_tm_node_node,
|
||||
(void *)&cmd_suspend_port_tm_node_port_id,
|
||||
(void *)&cmd_suspend_port_tm_node_node_id,
|
||||
NULL,
|
||||
},
|
||||
};
|
||||
|
||||
/* *** Resume Port TM Node *** */
|
||||
struct cmd_resume_port_tm_node_result {
|
||||
cmdline_fixed_string_t resume;
|
||||
cmdline_fixed_string_t port;
|
||||
cmdline_fixed_string_t tm;
|
||||
cmdline_fixed_string_t node;
|
||||
uint16_t port_id;
|
||||
uint32_t node_id;
|
||||
};
|
||||
|
||||
cmdline_parse_token_string_t cmd_resume_port_tm_node_resume =
|
||||
TOKEN_STRING_INITIALIZER(
|
||||
struct cmd_resume_port_tm_node_result, resume, "resume");
|
||||
cmdline_parse_token_string_t cmd_resume_port_tm_node_port =
|
||||
TOKEN_STRING_INITIALIZER(
|
||||
struct cmd_resume_port_tm_node_result, port, "port");
|
||||
cmdline_parse_token_string_t cmd_resume_port_tm_node_tm =
|
||||
TOKEN_STRING_INITIALIZER(
|
||||
struct cmd_resume_port_tm_node_result, tm, "tm");
|
||||
cmdline_parse_token_string_t cmd_resume_port_tm_node_node =
|
||||
TOKEN_STRING_INITIALIZER(
|
||||
struct cmd_resume_port_tm_node_result, node, "node");
|
||||
cmdline_parse_token_num_t cmd_resume_port_tm_node_port_id =
|
||||
TOKEN_NUM_INITIALIZER(
|
||||
struct cmd_resume_port_tm_node_result, port_id, UINT16);
|
||||
cmdline_parse_token_num_t cmd_resume_port_tm_node_node_id =
|
||||
TOKEN_NUM_INITIALIZER(
|
||||
struct cmd_resume_port_tm_node_result, node_id, UINT32);
|
||||
|
||||
static void cmd_resume_port_tm_node_parsed(void *parsed_result,
|
||||
__attribute__((unused)) struct cmdline *cl,
|
||||
__attribute__((unused)) void *data)
|
||||
{
|
||||
struct cmd_resume_port_tm_node_result *res = parsed_result;
|
||||
struct rte_tm_error error;
|
||||
uint32_t node_id = res->node_id;
|
||||
portid_t port_id = res->port_id;
|
||||
int ret;
|
||||
|
||||
if (port_id_is_invalid(port_id, ENABLED_WARN))
|
||||
return;
|
||||
|
||||
memset(&error, 0, sizeof(struct rte_tm_error));
|
||||
ret = rte_tm_node_resume(port_id, node_id, &error);
|
||||
if (ret != 0) {
|
||||
print_err_msg(&error);
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
cmdline_parse_inst_t cmd_resume_port_tm_node = {
|
||||
.f = cmd_resume_port_tm_node_parsed,
|
||||
.data = NULL,
|
||||
.help_str = "Resume port tm node",
|
||||
.tokens = {
|
||||
(void *)&cmd_resume_port_tm_node_resume,
|
||||
(void *)&cmd_resume_port_tm_node_port,
|
||||
(void *)&cmd_resume_port_tm_node_tm,
|
||||
(void *)&cmd_resume_port_tm_node_node,
|
||||
(void *)&cmd_resume_port_tm_node_port_id,
|
||||
(void *)&cmd_resume_port_tm_node_node_id,
|
||||
NULL,
|
||||
},
|
||||
};
|
||||
|
||||
/* *** Port TM Hierarchy Commit *** */
|
||||
struct cmd_port_tm_hierarchy_commit_result {
|
||||
cmdline_fixed_string_t port;
|
||||
|
@ -2040,6 +2179,7 @@ static void cmd_port_tm_hierarchy_commit_parsed(void *parsed_result,
|
|||
else
|
||||
clean_on_fail = 0;
|
||||
|
||||
memset(&error, 0, sizeof(struct rte_tm_error));
|
||||
ret = rte_tm_hierarchy_commit(port_id, clean_on_fail, &error);
|
||||
if (ret != 0) {
|
||||
print_err_msg(&error);
|
||||
|
@ -2050,7 +2190,7 @@ static void cmd_port_tm_hierarchy_commit_parsed(void *parsed_result,
|
|||
cmdline_parse_inst_t cmd_port_tm_hierarchy_commit = {
|
||||
.f = cmd_port_tm_hierarchy_commit_parsed,
|
||||
.data = NULL,
|
||||
.help_str = "Set port tm node shaper profile",
|
||||
.help_str = "Commit port tm hierarchy",
|
||||
.tokens = {
|
||||
(void *)&cmd_port_tm_hierarchy_commit_port,
|
||||
(void *)&cmd_port_tm_hierarchy_commit_tm,
|
||||
|
@ -2061,3 +2201,263 @@ cmdline_parse_inst_t cmd_port_tm_hierarchy_commit = {
|
|||
NULL,
|
||||
},
|
||||
};
|
||||
|
||||
/* *** Port TM Mark IP ECN *** */
|
||||
struct cmd_port_tm_mark_ip_ecn_result {
|
||||
cmdline_fixed_string_t set;
|
||||
cmdline_fixed_string_t port;
|
||||
cmdline_fixed_string_t tm;
|
||||
cmdline_fixed_string_t mark;
|
||||
cmdline_fixed_string_t ip_ecn;
|
||||
uint16_t port_id;
|
||||
uint16_t green;
|
||||
uint16_t yellow;
|
||||
uint16_t red;
|
||||
};
|
||||
|
||||
cmdline_parse_token_string_t cmd_port_tm_mark_ip_ecn_set =
|
||||
TOKEN_STRING_INITIALIZER(struct cmd_port_tm_mark_ip_ecn_result,
|
||||
set, "set");
|
||||
|
||||
cmdline_parse_token_string_t cmd_port_tm_mark_ip_ecn_port =
|
||||
TOKEN_STRING_INITIALIZER(struct cmd_port_tm_mark_ip_ecn_result,
|
||||
port, "port");
|
||||
|
||||
cmdline_parse_token_string_t cmd_port_tm_mark_ip_ecn_tm =
|
||||
TOKEN_STRING_INITIALIZER(struct cmd_port_tm_mark_ip_ecn_result, tm,
|
||||
"tm");
|
||||
|
||||
cmdline_parse_token_string_t cmd_port_tm_mark_ip_ecn_mark =
|
||||
TOKEN_STRING_INITIALIZER(struct cmd_port_tm_mark_ip_ecn_result,
|
||||
mark, "mark");
|
||||
|
||||
cmdline_parse_token_string_t cmd_port_tm_mark_ip_ecn_ip_ecn =
|
||||
TOKEN_STRING_INITIALIZER(struct cmd_port_tm_mark_ip_ecn_result,
|
||||
ip_ecn, "ip_ecn");
|
||||
cmdline_parse_token_num_t cmd_port_tm_mark_ip_ecn_port_id =
|
||||
TOKEN_NUM_INITIALIZER(struct cmd_port_tm_mark_ip_ecn_result,
|
||||
port_id, UINT16);
|
||||
|
||||
cmdline_parse_token_num_t cmd_port_tm_mark_ip_ecn_green =
|
||||
TOKEN_NUM_INITIALIZER(struct cmd_port_tm_mark_ip_ecn_result,
|
||||
green, UINT16);
|
||||
cmdline_parse_token_num_t cmd_port_tm_mark_ip_ecn_yellow =
|
||||
TOKEN_NUM_INITIALIZER(struct cmd_port_tm_mark_ip_ecn_result,
|
||||
yellow, UINT16);
|
||||
cmdline_parse_token_num_t cmd_port_tm_mark_ip_ecn_red =
|
||||
TOKEN_NUM_INITIALIZER(struct cmd_port_tm_mark_ip_ecn_result,
|
||||
red, UINT16);
|
||||
|
||||
static void cmd_port_tm_mark_ip_ecn_parsed(void *parsed_result,
|
||||
__attribute__((unused)) struct cmdline *cl,
|
||||
__attribute__((unused)) void *data)
|
||||
{
|
||||
struct cmd_port_tm_mark_ip_ecn_result *res = parsed_result;
|
||||
struct rte_tm_error error;
|
||||
portid_t port_id = res->port_id;
|
||||
int green = res->green;
|
||||
int yellow = res->yellow;
|
||||
int red = res->red;
|
||||
int ret;
|
||||
if (port_id_is_invalid(port_id, ENABLED_WARN))
|
||||
return;
|
||||
|
||||
memset(&error, 0, sizeof(struct rte_tm_error));
|
||||
ret = rte_tm_mark_ip_ecn(port_id, green, yellow, red, &error);
|
||||
if (ret != 0) {
|
||||
print_err_msg(&error);
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
cmdline_parse_inst_t cmd_port_tm_mark_ip_ecn = {
|
||||
.f = cmd_port_tm_mark_ip_ecn_parsed,
|
||||
.data = NULL,
|
||||
.help_str = "set port tm mark ip_ecn <port> <green> <yellow> <red>",
|
||||
.tokens = {
|
||||
(void *)&cmd_port_tm_mark_ip_ecn_set,
|
||||
(void *)&cmd_port_tm_mark_ip_ecn_port,
|
||||
(void *)&cmd_port_tm_mark_ip_ecn_tm,
|
||||
(void *)&cmd_port_tm_mark_ip_ecn_mark,
|
||||
(void *)&cmd_port_tm_mark_ip_ecn_ip_ecn,
|
||||
(void *)&cmd_port_tm_mark_ip_ecn_port_id,
|
||||
(void *)&cmd_port_tm_mark_ip_ecn_green,
|
||||
(void *)&cmd_port_tm_mark_ip_ecn_yellow,
|
||||
(void *)&cmd_port_tm_mark_ip_ecn_red,
|
||||
NULL,
|
||||
},
|
||||
};
|
||||
|
||||
|
||||
/* *** Port TM Mark IP DSCP *** */
|
||||
struct cmd_port_tm_mark_ip_dscp_result {
|
||||
cmdline_fixed_string_t set;
|
||||
cmdline_fixed_string_t port;
|
||||
cmdline_fixed_string_t tm;
|
||||
cmdline_fixed_string_t mark;
|
||||
cmdline_fixed_string_t ip_dscp;
|
||||
uint16_t port_id;
|
||||
uint16_t green;
|
||||
uint16_t yellow;
|
||||
uint16_t red;
|
||||
};
|
||||
|
||||
cmdline_parse_token_string_t cmd_port_tm_mark_ip_dscp_set =
|
||||
TOKEN_STRING_INITIALIZER(struct cmd_port_tm_mark_ip_dscp_result,
|
||||
set, "set");
|
||||
|
||||
cmdline_parse_token_string_t cmd_port_tm_mark_ip_dscp_port =
|
||||
TOKEN_STRING_INITIALIZER(struct cmd_port_tm_mark_ip_dscp_result,
|
||||
port, "port");
|
||||
|
||||
cmdline_parse_token_string_t cmd_port_tm_mark_ip_dscp_tm =
|
||||
TOKEN_STRING_INITIALIZER(struct cmd_port_tm_mark_ip_dscp_result, tm,
|
||||
"tm");
|
||||
|
||||
cmdline_parse_token_string_t cmd_port_tm_mark_ip_dscp_mark =
|
||||
TOKEN_STRING_INITIALIZER(struct cmd_port_tm_mark_ip_dscp_result,
|
||||
mark, "mark");
|
||||
|
||||
cmdline_parse_token_string_t cmd_port_tm_mark_ip_dscp_ip_dscp =
|
||||
TOKEN_STRING_INITIALIZER(struct cmd_port_tm_mark_ip_dscp_result,
|
||||
ip_dscp, "ip_dscp");
|
||||
cmdline_parse_token_num_t cmd_port_tm_mark_ip_dscp_port_id =
|
||||
TOKEN_NUM_INITIALIZER(struct cmd_port_tm_mark_ip_dscp_result,
|
||||
port_id, UINT16);
|
||||
|
||||
cmdline_parse_token_num_t cmd_port_tm_mark_ip_dscp_green =
|
||||
TOKEN_NUM_INITIALIZER(struct cmd_port_tm_mark_ip_dscp_result,
|
||||
green, UINT16);
|
||||
cmdline_parse_token_num_t cmd_port_tm_mark_ip_dscp_yellow =
|
||||
TOKEN_NUM_INITIALIZER(struct cmd_port_tm_mark_ip_dscp_result,
|
||||
yellow, UINT16);
|
||||
cmdline_parse_token_num_t cmd_port_tm_mark_ip_dscp_red =
|
||||
TOKEN_NUM_INITIALIZER(struct cmd_port_tm_mark_ip_dscp_result,
|
||||
red, UINT16);
|
||||
|
||||
static void cmd_port_tm_mark_ip_dscp_parsed(void *parsed_result,
|
||||
__attribute__((unused)) struct cmdline *cl,
|
||||
__attribute__((unused)) void *data)
|
||||
{
|
||||
struct cmd_port_tm_mark_ip_dscp_result *res = parsed_result;
|
||||
struct rte_tm_error error;
|
||||
portid_t port_id = res->port_id;
|
||||
int green = res->green;
|
||||
int yellow = res->yellow;
|
||||
int red = res->red;
|
||||
int ret;
|
||||
if (port_id_is_invalid(port_id, ENABLED_WARN))
|
||||
return;
|
||||
|
||||
memset(&error, 0, sizeof(struct rte_tm_error));
|
||||
ret = rte_tm_mark_ip_dscp(port_id, green, yellow, red, &error);
|
||||
if (ret != 0) {
|
||||
print_err_msg(&error);
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
cmdline_parse_inst_t cmd_port_tm_mark_ip_dscp = {
|
||||
.f = cmd_port_tm_mark_ip_dscp_parsed,
|
||||
.data = NULL,
|
||||
.help_str = "set port tm mark ip_dscp <port> <green> <yellow> <red>",
|
||||
.tokens = {
|
||||
(void *)&cmd_port_tm_mark_ip_dscp_set,
|
||||
(void *)&cmd_port_tm_mark_ip_dscp_port,
|
||||
(void *)&cmd_port_tm_mark_ip_dscp_tm,
|
||||
(void *)&cmd_port_tm_mark_ip_dscp_mark,
|
||||
(void *)&cmd_port_tm_mark_ip_dscp_ip_dscp,
|
||||
(void *)&cmd_port_tm_mark_ip_dscp_port_id,
|
||||
(void *)&cmd_port_tm_mark_ip_dscp_green,
|
||||
(void *)&cmd_port_tm_mark_ip_dscp_yellow,
|
||||
(void *)&cmd_port_tm_mark_ip_dscp_red,
|
||||
NULL,
|
||||
},
|
||||
};
|
||||
|
||||
|
||||
/* *** Port TM Mark VLAN_DEI *** */
|
||||
struct cmd_port_tm_mark_vlan_dei_result {
|
||||
cmdline_fixed_string_t set;
|
||||
cmdline_fixed_string_t port;
|
||||
cmdline_fixed_string_t tm;
|
||||
cmdline_fixed_string_t mark;
|
||||
cmdline_fixed_string_t vlan_dei;
|
||||
uint16_t port_id;
|
||||
uint16_t green;
|
||||
uint16_t yellow;
|
||||
uint16_t red;
|
||||
};
|
||||
|
||||
cmdline_parse_token_string_t cmd_port_tm_mark_vlan_dei_set =
|
||||
TOKEN_STRING_INITIALIZER(struct cmd_port_tm_mark_vlan_dei_result,
|
||||
set, "set");
|
||||
|
||||
cmdline_parse_token_string_t cmd_port_tm_mark_vlan_dei_port =
|
||||
TOKEN_STRING_INITIALIZER(struct cmd_port_tm_mark_vlan_dei_result,
|
||||
port, "port");
|
||||
|
||||
cmdline_parse_token_string_t cmd_port_tm_mark_vlan_dei_tm =
|
||||
TOKEN_STRING_INITIALIZER(struct cmd_port_tm_mark_vlan_dei_result, tm,
|
||||
"tm");
|
||||
|
||||
cmdline_parse_token_string_t cmd_port_tm_mark_vlan_dei_mark =
|
||||
TOKEN_STRING_INITIALIZER(struct cmd_port_tm_mark_vlan_dei_result,
|
||||
mark, "mark");
|
||||
|
||||
cmdline_parse_token_string_t cmd_port_tm_mark_vlan_dei_vlan_dei =
|
||||
TOKEN_STRING_INITIALIZER(struct cmd_port_tm_mark_vlan_dei_result,
|
||||
vlan_dei, "vlan_dei");
|
||||
cmdline_parse_token_num_t cmd_port_tm_mark_vlan_dei_port_id =
|
||||
TOKEN_NUM_INITIALIZER(struct cmd_port_tm_mark_vlan_dei_result,
|
||||
port_id, UINT16);
|
||||
|
||||
cmdline_parse_token_num_t cmd_port_tm_mark_vlan_dei_green =
|
||||
TOKEN_NUM_INITIALIZER(struct cmd_port_tm_mark_vlan_dei_result,
|
||||
green, UINT16);
|
||||
cmdline_parse_token_num_t cmd_port_tm_mark_vlan_dei_yellow =
|
||||
TOKEN_NUM_INITIALIZER(struct cmd_port_tm_mark_vlan_dei_result,
|
||||
yellow, UINT16);
|
||||
cmdline_parse_token_num_t cmd_port_tm_mark_vlan_dei_red =
|
||||
TOKEN_NUM_INITIALIZER(struct cmd_port_tm_mark_vlan_dei_result,
|
||||
red, UINT16);
|
||||
|
||||
static void cmd_port_tm_mark_vlan_dei_parsed(void *parsed_result,
|
||||
__attribute__((unused)) struct cmdline *cl,
|
||||
__attribute__((unused)) void *data)
|
||||
{
|
||||
struct cmd_port_tm_mark_vlan_dei_result *res = parsed_result;
|
||||
struct rte_tm_error error;
|
||||
portid_t port_id = res->port_id;
|
||||
int green = res->green;
|
||||
int yellow = res->yellow;
|
||||
int red = res->red;
|
||||
int ret;
|
||||
if (port_id_is_invalid(port_id, ENABLED_WARN))
|
||||
return;
|
||||
|
||||
memset(&error, 0, sizeof(struct rte_tm_error));
|
||||
ret = rte_tm_mark_vlan_dei(port_id, green, yellow, red, &error);
|
||||
if (ret != 0) {
|
||||
print_err_msg(&error);
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
cmdline_parse_inst_t cmd_port_tm_mark_vlan_dei = {
|
||||
.f = cmd_port_tm_mark_vlan_dei_parsed,
|
||||
.data = NULL,
|
||||
.help_str = "set port tm mark vlan_dei <port> <green> <yellow> <red>",
|
||||
.tokens = {
|
||||
(void *)&cmd_port_tm_mark_vlan_dei_set,
|
||||
(void *)&cmd_port_tm_mark_vlan_dei_port,
|
||||
(void *)&cmd_port_tm_mark_vlan_dei_tm,
|
||||
(void *)&cmd_port_tm_mark_vlan_dei_mark,
|
||||
(void *)&cmd_port_tm_mark_vlan_dei_vlan_dei,
|
||||
(void *)&cmd_port_tm_mark_vlan_dei_port_id,
|
||||
(void *)&cmd_port_tm_mark_vlan_dei_green,
|
||||
(void *)&cmd_port_tm_mark_vlan_dei_yellow,
|
||||
(void *)&cmd_port_tm_mark_vlan_dei_red,
|
||||
NULL,
|
||||
},
|
||||
};
|
||||
|
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue