You are on page 1of 1030

1

Chapter 1: Introduction
Overview
Background and chapter structure
Java is a young programming language. It was conceived in 1991 and was originally intended for use
in the consumer electronics industry. However, not until it was retargeted at the booming internet
business, in 1994, did it begin to receive widespread attention from the programming community.
Since that time, the popularity of Java has grown beyond all expectations. Just as the C programming
language before rose to dominance with the popularity of the Unix operating system, so Java has
ridden on the back of the internet tide. Of course, the language does have advantages over its
competitors. They are summarized by its authors as follows (Gosling and McGilton, 1996):
simple, object oriented and familiar object-oriented programming is still the dominant
programming paradigm; the Java model is simple and has many similarities with C++;
robust extensive compile-time and run-time checking ensures that programs are highly
reliable;
distributed and secure a language and run-time system designed to operate in a
distributed environment needs to incorporate security features;
interpreted, architecture neutral and portable the use of a virtual machine that
interprets an architecture neutral byte code ensures that programs are portable from one
platform to another;
high performance techniques such as just-in-time compilation allow performance-critical
code to be compiled to native code, counteracting some of the over-heads associated with
interpreting byte codes;
dynamic linking is dynamic; classes are only loaded when needed, and new classes can
be linked as the system evolves;
multithreaded language support for concurrent programming allows portable
multithreaded applications to be constructed.
In recent years, proponents of Java have attempted to extend its influence into the real-time and
embedded systems domains. As many of these systems are now, or will be in the future, networked,
the language seems to provide an ideal basis for their implementation. Unfortunately, Java, for all its
advantages, does have some serious limitations for real-time and embedded programming. This has
led to the development of the Real-Time Specification for Java (RTSJ). This defines a set of
extensions to the Java virtual machine and the class libraries that facilitate real-time programming.
Given the inherently concurrent nature of real-time and embedded systems, much of the RTSJ is
associated with improving the Java threading model.
This book addresses the use of Java and the RTSJ for the development of concurrent real-time
systems. Many real-time systems are also embedded in a larger engineering environment, hence the
facilities provided by the RTSJ are also useful in that domain.
The remainder of this chapter provides an introduction to concurrency and realtime. The book then
considers, in depth, the role that Java and the RTSJ can play in the construction of real-time systems.
Concurrency and real-time are advanced topics in programming, consequently the remaining chapters
assume that the reader is familiar with object-oriented programming in sequential Java. The web site
that accompanies this book provides an introduction to Java suitable for those programmers who
know languages like C or C++ but who are unfamiliar with Java.

1.1 Concurrency
Concurrent programming is the name given to the notations that are used to express (potential)
parallelism in an application program. It also encompasses the techniques for dealing with
communication and synchronization between (potentially) parallel entities.

Motivations for concurrency


There are three main motivations for wanting to write concurrent programs:
To fully utilize the processor Modern processors run at speeds far in excess of the

input and output devices with which they must interact. A sequential program that is waiting
for I/O is unable to perform any other operation. Consider a program that wishes to perform
an I/O intensive operation, for example, a graphical animation, and yet also needs to
calculate the next sequence in the animation. Performing these operations sequentially
would have a drastic effect on the speed at which the animation can run.
To allow more than one processor to solve a problem A sequential program can only
be executed by one processor (unless the compiler has transformed the program into a
concurrent one). A concurrent program is able to exploit true parallelism and obtain faster
execution. In Chapter 6, a concurrent program to search a maze is given. On a
multiprocessor system, this can find all paths through a large maze much more quickly than
its sequential counterpart.
To model parallelism in the real world Real-time and embedded programs have to
control and interface with real-world entities (robots, conveyor belts, etc.) that are inherently
parallel. Reflecting the parallel nature of the system in the structures of the program makes
for a more readable, maintainable and reliable application.

A major problem associated with the production of software for systems that exhibit concurrency is
how to express that concurrency in the structure of the program. One approach is to leave it all up to
the programmer who must construct his/her system so that it involves the cyclic execution of a
program sequence to handle the various concurrent threads. There are several reasons, however,
why this is inadvisable (Burns and Wellings, 2001):
It complicates the programmer's already difficult task and involves him/her in considerations
of structures that are irrelevant to the control of the threads in hand.
The resulting program is more obscure and inelegant.
It makes proving program correctness more difficult.
It makes decomposition of the problem more complex.
Parallel execution of the program on more than one processor is much more difficult to
achieve.
The placement of code to deal with faults is more problematic.
Older languages, for example, Fortran and Pascal, relied on operating system support for
concurrency; C is usually associated with UNIX or POSIX. However, the more modern languages,
such as C#, Ada and Java have direct support for concurrent programming.
Criticisms and new problems
One of the major criticisms of concurrent programming is that it introduces overheads and, therefore,
results in slower execution when the program is running on a single processor system. However, the
software engineering issues outweigh these concerns, just as the efficiency concerns of programming
in a high-level sequential language are outweighed by its advantages over programming with an
assembly language.
Writing concurrent programs introduces new problems that do not exist in their sequential
counterparts. Concurrent activities need to coordinate their actions, if they are to work together to
solve a problem. This coordination can involve intricate patterns of communication and
synchronization. If not properly managed, these can add significant complexity to the programs and
result in new error conditions arising. For example,
deadlock may occur where each concurrent activity is waiting for another to perform an
operation:
interference may occur when two or more concurrent activities attempt to update the same
object; this can result in the object's data becoming corrupt;
starvation may happen where one or more concurrent activities are continually denied
resources as a result of the actions of the others.
The desired behavior of a concurrent program is usually summarized using two properties: safety and
liveness. The safety property expresses the requirement for "nothing bad to happen". In other words,
the concurrent activities do not interfere with each other and cause data corruption. The liveness
property expresses the requirement that "something good will happen". In other words, that all
concurrent activities are able to make progress with their associated computation and do not suffer
from deadlocks or starvation.
Deadlock is the most common problem in concurrent systems. There are four necessary conditions
that must exist if deadlock is to occur. These are usually expressed in terms of resources allocated to
a thread. In Java, for example, the lock associated with an object can be considered as a resource.

The conditions are as follows:


Mutual exclusion only one concurrent activity can use a resource at once (that is, the
resource is nonsharable or at least limited in its concurrent access); using locks as an
example, mutual exclusion locks as opposed to read/write locks are more likely to cause
deadlock.
Hold and wait there must exist concurrent activities that are holding resources while
waiting for others resources to be acquired; with locks, concurrent activities must be holding
locks while waiting to acquire new locks.
No preemption a resource can only be released voluntarily by a concurrent activity; the
locks acquired by a concurrent activity cannot be forcibly taken away from it by another
activity.
Circular wait a circular chain of concurrent activities must exist such that each activity
holds resources (has locked the objects) that are being requested by the next activity in the
chain.
There are three possible approaches to dealing with deadlock:
Deadlock prevention Deadlock can be prevented by ensuring that at least one of the
four conditions required for deadlock never occurs. For example, by using sharable
resources, never holding one resource while waiting for another, making resources
preemptible, or by imposing a strict logical ordering on resource allocation requests so that
all threads request resources in the same order.
Deadlock avoidance If more information on the pattern of resource usage is known, then
it is possible to construct an algorithm that will allow all the four conditions necessary for
deadlock to occur, but which will also ensure that the system never enters a deadlock state.
A deadlock avoidance algorithm will examine dynamically the resource allocation state and
take action to ensure that the system can never enter into deadlock. Any resource allocation
request that is potentially unsafe is denied.
Deadlock detection and recovery In many general-purpose concurrent systems, the
resource allocation usage is a priori unknown. Even if it is known, the cost of deadlock
avoidance is often prohibitive. Consequently, many of these systems will ignore the
problems of deadlock until they enter a deadlock state. They then take some corrective
action (for example, by aborting a concurrent activity and preempting its resources.)
Chapters 2, 3 and 4 review the facilities that Java provides to create concurrent activities and to
manage communication and synchronization, thus facilitating the safety and liveness properties of
concurrent programs.

1.2 Real-time Systems


A major application area of concurrent programming is real-time systems. These are systems that
have to respond to externally generated input stimuli (including the passage of time) within a finite
and specified time interval. They are inherently concurrent because they are often embedded in a
larger engineering system and have to model the parallelism that exists in the real-world objects that
they are monitoring and controlling. Process control, manufacturing support, command and control
are all example application areas where real-time systems have a major role. As computers become
more ubiquitous and pervasive, so they will be embedded in a wide variety of common materials and
components throughout the home or workplace even in the clothes we wear. These computers will
need to react with their environment in a timely fashion. The RTSJ extends the Java concurrency
model to allow it to interact with external events, be they interrupts or the passage of time itself.
As well as being concurrent, real-time systems also have the following additional characteristics
(Burns and Wellings, 2001):
Large and complex. Real-time systems vary from simple single-processor embedded systems
(consisting of a few hundred lines of code) to multiplatform multilanguage distributed systems
(consisting of millions of lines of code). The issue of engineering large and complex systems is an
important topic that Java and its support environment do address. However, consideration of this area
is beyond the scope of this book.
Extremely reliable and safe. Many real-time systems control some of society's critical systems such
as air traffic control or chemical/power plants. The software must, therefore, be engineered to the
highest integrity, and programs must attempt to tolerate faults and continue to operate (albeit perhaps
providing a degraded service). In the worst case, a real-time system should make safe the
environment before shutting down in a controlled manner. Unfortunately, some systems do not have
easily available safe states when they are operational (for example, an unstable aircraft),

consequently, continued operation in the presence of faults or damage is a necessity. Java's design
goals facilitate the design of reliable and robust programs. Its exception handling facility allows error
recovery mechanisms to be activated. The RTSJ extends the Java platform to allow the detection of
common timing-related problems (such as missed deadlines).
Real-time facilities. Response time is crucial in any embedded system. Unfortunately, it is very
difficult to design and implement systems that will guarantee that the appropriate output will be
generated at the appropriate times under all possible conditions. To do this and make full use of all
computing resources at all times is often impossible. For this reason, real-time systems are usually
constructed using processors with considerable spare capacity, thereby ensuring that "worst-case
behavior" does not produce any unwelcome delays during critical periods of the system's operation.
Given adequate processing power, language and run-time support is required to enable the
programmer to
specify times at which actions are to be performed
specify times at which actions are to be completed
respond to situations where all the timing requirements cannot be met
respond to situations where the timing requirements are changed dynamically.
These are called real-time control facilities. They enable the program to synchronize with time itself.
For example, with digital control algorithms, it is necessary to sample readings from sensors at certain
periods of the day, for example, 2 pm, 3 pm, and so on, or at regular intervals, for instance, every 5
seconds (with analog-to-digital converters, sample rates can vary from a few hundred hertz to several
hundred megahertz). As a result of these readings, other actions will need to be performed. In order to
meet response times, it is necessary for a system's behavior to be predictable. Providing these realtime facilities is one of the main goals of the RTSJ.
Interaction with hardware interfaces. The nature of embedded systems requires the computer
components to interact with the external world. They need to monitor sensors and control actuators
for a wide variety of real-world devices. These devices interface to the computer via input and output
registers, and their operational requirements are device and computer dependent. Devices may also
generate interrupts to signal to the processor that certain operations have been performed or that
error conditions have arisen. In the past, the interfacing to devices has either been left under the
control of the operating system or has required the application programmer to resort to assembly
language inserts to control and manipulate the registers and interrupts. Nowadays, because of the
variety of devices and the time-critical nature of their associated interactions, their control must often
be direct, and not through a layer of operating system functions. Furthermore, reliability requirements
argue against the use of low-level programming techniques. The augmented memory management
model of the RTSJ allows memory-mapped device registers to be accessed. Support for
asynchronous event handlers allows interrupts to be handled by a schedulable entity.
Efficient implementation and a predictable execution environment. Since real-time systems are
time-critical, efficiency of implementation will be more important than in other systems. It is interesting
that one of the main benefits of using a high-level language is that it enables the programmer to
abstract away from implementation details and to concentrate on solving the problem at hand.
Unfortunately, embedded computer systems programmers cannot afford this luxury. They must be
constantly concerned with the cost of using particular language features. For example, if a response
to some input is required within a microsecond, there is no point in using a language feature whose
execution takes a millisecond! The RTSJ makes predictability a primary concern in all its design tradeoffs.
Hard and soft real-time systems
It is common to distinguish between hard and soft real-time systems. Hard real-time systems are
those where it is absolutely imperative that responses occur within the specified deadline. Soft realtime systems are those where response times are important, but the system will still function correctly
if deadlines are occasionally missed. Soft systems can be distinguished from interactive ones in which
there are no explicit deadlines. For example, the flight control system of a combat aircraft is a hard
real-time system because a missed deadline could lead to a catastrophic situation and loss of the
aircraft, whereas a data acquisition system for a process control application is soft, as it may be
defined to sample an input sensor at regular intervals but to tolerate intermittent delays. A text editor
is an example of an interactive system. Here, performance is important (a slow editor will not be
used); however, the occasional poor response will not impact on the overall system's performance. Of
course, many systems will have both hard and soft real-time subsystems along with some interactive
components.

Java without the RTSJ is probably best suited for interactive systems, although with an efficient virtual
machine it could be used for some soft real-time systems. The addition of a set of concurrency utilities
in Java 1.5 greatly enhances its applicability in these areas. However, Java programs lack
predictability and, therefore, the language is not ideal for the real-time domain. Java with the RTSJ
allows the programmer to have much more control and, consequently, programs can be made much
more predictable. Thus, this is an ideal combination for large soft real-time systems. Subsets of Java
and the RTSJ are needed if the language is to be used in small embedded real-time systems or those
systems that have high integrity or hard real-time requirements. This topic goes beyond the current
RTSJ and is covered in Chapter 17.

1.3 Summary
This chapter has provided some necessary introductory material for the remainder of the book. The
main motivations for concurrent programming have been outlined, namely, increased processor
utilization, applicability to multiprocessor systems and modelling parallelism in the real world. The
distinction between hard and soft real-time systems has been made. Arguably, Java as it stands is not
predictable enough for reliable use in real-time systems. Java with the Real-Time Specification is
probably best suited for large soft real-time systems. To use the language for hard real-time systems
requires subsets (profiles) to be developed.

Chapter 2: Concurrent Programming in Java


Overview
Introduction and chapter structure
Chapter 1 illustrated the need for concurrent programming. While this need is universally
acknowledged, many different models of concurrent programming can be presented to the
programmer. Furthermore, there is still controversy over whether the mechanisms that support a
particular model should be provided by a programming language or by an operating system.
Languages such as C and C++ are sequential languages and they do not explicitly support concurrent
programming. Concurrent programming in these languages, therefore, requires the use of an
operating system Applications Programmers' Interface (API), such as the pthread library for POSIX
(Butenhof, 1997). In contrast, Java, C# and Ada are concurrent programming languages. They all
explicitly support the notion of concurrency; in Java and C#, concurrent activities are called threads, in
Ada they are called tasks.
The goal of this and the next four chapters is to explore concurrent programming in Java. The focus of
attention is the core language facilities rather than the concurrency utilities. However, particularly
utilities are covered when they address weaknesses in the language model. This chapter places the
Java model in context and examines the Thread class. Chapter 3 deals with communication and
synchronization issues, and Chapter 4 completes the Java model by discussing thread priorities,
interaction with time, thread groups, and some of the concurrency-related utilities. Chapters 5 and 6
then provide detailed examples of the model in use.

2.1 Concurrency Models


Processes versus threads
Concurrent programming has a long history, and consequently the terminology has evolved over the
years. The term process was first introduced to describe a sequence of actions performed by
executing a sequence of instructions. Hence, a concurrent process is a sequential activity that can
(potentially) be performed at the same time as (and independently of) other concurrent processes.
Important note The correctness of a concurrent program should not depend on the order of
execution of its constituent processes by the scheduler. Any required constraints
on the ordering must be explicitly programmed.

All operating systems provide facilities for creating concurrent processes. Usually, each process
executes in its own virtual machine to avoid interference from other unrelated processes. Each
process is, in effect, a single program. However, in recent years there has been a tendency to provide
facilities for processes to be created within programs. Modern operating systems allow processes
created within the same program to have unrestricted access to shared memory; such processes are
called threads (or sometimes tasks). Hence, in operating systems, like those conforming to the POSIX
standards, it is necessary to distinguish between the concurrency between programs (processes) and
the concurrency within a program (threads). Often, there is also a distinction between threads that are
visible to the operating system and those that are supported solely by application-level library
routines. For example, Windows 2000 supports threads and fibers, the latter being invisible to the
kernel. This is illustrated in Figure 2.1.
010009000003e81e01000000917e000000001610000026060f002220574d464301000000000001
00fac0000000000a000000002000008c1e01008c3e0100010000006c0000000000000000000000
d2010000f000000000000000000000006a4000002e21000020454d46000001008c3e01000c0000
00010000000000000000000000000000000005000020030000c40100001a010000000000000000
000000000000e3e306006e4e0400460000002c00000020000000454d462b014001001c00000010
0000000210c0db01000000600000006000000046000000d03f0000c43f0000454d462b224004000
c000000000000001e4009000c00000000000000244001000c00000000000000304002001000000

0040000000000803f214007000c00000000000000084000051c3f0000103f00000210c0db010000
000000000000000000000000000000000001000000ffd8ffe000104a46494600010201004800480
000ffed0a5450686f746f73686f7020332e30003842494d03ed00000000001000480000000100010
0480000000100013842494d040d000000000004000000783842494d03f30000000000080000000
0000000003842494d040a00000000000100003842494d271000000000000a0001000000000000
00013842494d03f5000000000048002f66660001006c66660006000000000001002f6666000100a
1999a0006000000000001003200000001005a00000006000000000001003500000001002d0000
00060000000000013842494d03f80000000000700000ffffffffffffffffffffffffffffffffffffffffffff03e800000000
ffffffffffffffffffffffffffffffffffffffffffff03e800000000ffffffffffffffffffffffffffffffffffffffffffff03e800000000ffffffffffffffffffff
ffffffffffffffffffffffff03e800003842494d0408000000000010000000010000024000000240000000003
842494d0414000000000004000000023842494d040c0000000008c300000001000000700000003
a0000015000004c20000008a700180001ffd8ffe000104a46494600010201004800480000ffee000e
41646f626500648000000001ffdb0084000c08080809080c09090c110b0a0b11150f0c0c0f151813
1315131318110c0c0c0c0c0c110c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0
c010d0b0b0d0e0d100e0e10140e0e0e14140e0e0e0e14110c0c0c0c0c11110c0c0c0c0c0c110c0c
0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0cffc0001108003a007003012200021
101031101ffdd00040007ffc4013f000001050101010101010000000000000003000102040506070
8090a0b0100010501010101010100000000000000010002030405060708090a0b100001040103
0204020507060805030c33010002110304211231054151611322718132061491a1b14223241552
c16233347282d14307259253f0e1f163733516a2b283264493546445c2a3743617d255e265f2b38
4c3d375e3f3462794a485b495c4d4e4f4a5b5c5d5e5f55666768696a6b6c6d6e6f63747576777879
7a7b7c7d7e7f711000202010204040304050607070605350100021103213112044151617122130
532819114a1b14223c152d1f0332462e1728292435315637334f1250616a2b283072635c2d24493
54a317644555367465e2f2b384c3d375e3f34694a485b495c4d4e4f4a5b5c5d5e5f55666768696a6
b6c6d6e6f62737475767778797a7b7c7ffda000c03010002110311003f00f5558f4e1e3bda2fb2aa9
c3d5daf0fada4b8bec7b1ce73e3e96e7d5ff6dffc2ad85998f630d2da0c87bae0f6e9a18b5ef76bfc9f4
1fbd252f9186caee6b71fa6e3dd539a4b9e76308708daddbe9bbe935363530f165981561bdaf68ad
ccdae7104b9aef7318cd9edff00ab56309ce706d85ee7b722b168ddd89d4ed6fe67b5ec6ecff83ff49
ea291beabd8c7d465a2c689823cff003bf3769494d955f32b1631ad2c6d86496b1c0381706bb6fb5c
ac21d9fce55fd63ff52e494e7558f86ebcb698c87576065ec7d55815cb05dee736aa9ccb3d3b697fe
7ff0039ff005d4ace9797ebd8ea8e18a1c7f475bf1f71680d686fbd9657fe137bfe8ffdb6836e260f4cb
7aa758da4b64e4668b1ee735de8d2ddb631af2e656eaaa6ecf6b7ff003dd6ad74eccaf2aa19b8959
7d1915d7630320021ecf598efd2baafd23eab6bfccffae7fa34a6c6134305ac01ad0d7c6d6086cec61
76d6fe6fb95955f0dc1feb3c4c3ac913a1fa15ab0929ab5e262d81ceb29adee2f7cb9cd049f738770a
7f61c2ffb8f57f98dfee53a3e81febbff00ea9c84dea5d39cddcdcaa4b66370b1a44ff9dfc9494ab3131
581af6535b5cd7b36b8340225cd1a1856506c7b2ca58f6383d8e7565ae6990417361cd2119253ffd
0f55583461db6f56e9d94dbf6574d39cc7d3b277b6cba8ff0bbfd9b1f5d4ffe6d6f2cac4ba81918f363
0115e50e40d7d6a652524a5cd7631a9ae24e3e3fa56182087c6ddbfc97fe8f77fdb68cf631b924b44
48a469c686d8d3e8aa1d1b1db4ddd61b7e637246666bec6880d2d6be9c76371c7e92cdfe9d4dad
9f989748ea58bd531c66d3736ddf79c704381918cfb28de180edfd33b7e47b7fc0db524a7690ed20
3ea931ee3ff0052e4441c8358357aa5a1bb8fd2889daefde494e4db9f98eafafb6dc06bebc30463b4
bf70ca3f676deeafd37d5b595fbeba7fc3b3d4f599fe0945993905fd158cc6386cea15939d4343e296
b31dd6328f52af4aaa1f5dceaaaf53d3fd2b2af4d5667ab44b71fed6192f3b5adaed00cde7fed43f7b9
bb2ba3d3f4bfe03fe156a74b7e37d8dbeb3a6c2e797baff004c3c9739d610e153ecadbe9b9de96cfc
cf4d2536f1035a6e6b6035b64340e000cac2b0abe21ac9bcd7b4b7d431b623e8b3f75584948a8fa0
efebbffea9c9998788c6358ca2b6b5821ad0d1000d2068a34df4b5ae6bac6821ef905c27e93913ed
1444fa8c8feb0494b5ad6b6a6b5a035a1cc000d001b9a8aabdb7d0e6b5adb1a497b200709fa4d56
1253fffd1f555999391835f5cc2c4b5cc191914e41aab2d24bb69c77bdd3b76fb5acfce56313d7bf12
8b9f7383adad8f7001b12e687189694cfe9acb332acd7d8f3918f5d9554e86e8db8d2fbbdbb3f7b16
a494d6e8f95d3f3327a98c6732d38f986ab76b48d9632ba6bb19ee6b7ded7d7f9a97d5cbfa4e574f3
774bf49d8e2fb80752cd8d9f51ff9bb2bf76cd8ace374caf15f90fa2c7b1d976faf7e8dd6c2cae8ddf43f
d1d15a587d36bc2a7d0c6b1d5d5becb36c34fbaeb1f936fe67fa5b5e929b899cd6b8438070f02250f
d2b7fd33fee67fe412f4adff4cffb99ff0090494e4fd6dae86f41c873b2d9d2807524e6b985e191754ef
7359b3f9d8f4bfb6b60d349d4b1a7e4155cee974f50c6762663dd6d0f2c7398437535bdb757f99fe9
2b62b1e95bfe99ff00733ff20929235ad68868000ec344e85e95bfe99ff733ff002097a56ffa67fdccff0
0c824a646aac992c6927924059589451ff38ba8bfed755ce7518cc38203775018721cd7be1ee77e9
fd77bfdd4d6b4fd2b7fd33fee67fe41019d36baf32ece658f191915d755af86eada4daea7dbb3f37ed3
6a4a6c8aab06431a08e08014d0bd2b3fd33bee6ffe4146caed6b1ce173a402468cff00c824a7ffd2f4
be9667a6e21f1a2bff00a86ab4b37a77fc9d89fcf7f31571fd46a3ff00dbe929b692a9ff006fa5ff00b10
9290f55c1cdcab2a763ddb18daedadccdce645967a7e865b5d5fd3b313d3b7652efa7ebff00c12a58
d87f5a1c18ebb362b3b5c6b77a42c13adb5daf662db5fd26fe8bd2fe6abb2eaff58fd0dcb4ff00f6213
7fec424a734617d696d4e71cbacde5c1c76905a435ac6fa4d6d98df45ef63dff499fce7f3b5297d93a
e598b8590ebde32686dc725a764bf7eb5eca6b6574fad56d67d9def7b3f47ea5591ebfad62d1ffd88
4bff0062125345f89f591d6877daeb6b0969706100b416b3d7aebdf8d6b1fb2f67e86db1bfd1defa7f
9cfd3ab3d2e8eaf4b9ff00b4721b7835d61b1b74b01b3ed0ef6518dfa37b4d1b3f9c45ff00d884bfedf

494db4954ff00b7d21ffa11f3494db50bbf9a7ff54fe455cffd7d42dfe6ddfd23e89fc8929fffd90038424
94d04060000000000070005000000010100ffee000e41646f626500644000000001ffdb008400040
303030303040303040604030406070504040507080606070606080a0809090909080a0a0c0c0c0
c0c0a0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c010405050807080f0a0a0f140e0e0e1414
0e0e0e0e14110c0c0c0c0c11110c0c0c0c0c0c110c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0
c0c0c0c0c0c0c0cffc000110800b5015e03011100021101031101ffdd0004002cffc401a2000000070
1010101010000000000000000040503020601000708090a0b0100020203010101010100000000
000000010002030405060708090a0b10000201030302040206070304020602730102031104000
52112314151061361227181143291a10715b14223c152d1e1331662f0247282f12543345392a2b2
6373c235442793a3b33617546474c3d2e2082683090a181984944546a4b456d355281af2e3f3c4d
4e4f465758595a5b5c5d5e5f566768696a6b6c6d6e6f637475767778797a7b7c7d7e7f7384858687
88898a8b8c8d8e8f82939495969798999a9b9c9d9e9f92a3a4a5a6a7a8a9aaabacadaeafa110002
020102030505040506040803036d0100021103042112314105511361220671819132a1b1f014c1
d1e1234215526272f1332434438216925325a263b2c20773d235e2448317549308090a18192636
451a2764745537f2a3b3c32829d3e3f38494a4b4c4d4e4f465758595a5b5c5d5e5f5465666768696
a6b6c6d6e6f6475767778797a7b7c7d7e7f738485868788898a8b8c8d8e8f839495969798999a9b
9c9d9e9f92a3a4a5a6a7a8a9aaabacadaeafaffda000c03010002110311003f00f7f62aec55d8abcf3
cc3e5ed0fcd1f98b6fa6f986c96fed22d11ee208a4770a920bb54660aac0548602b8aa5baf7917f2f2
cafadf47d33c970eb5ad4913dd35a473084436ca78fa92492c802f36f8231d5db97eca3b2aa8fd17f
2dbf2af5cd361d4ad3cb70a45316578661224b1cb13b4724722f3346470cac3c7154c07e507e5aae
c3cbb6c06e29593a1353fb78ab6bf945f96c9f63cbb6cbfea99076a767c55bff009549f973c4aff87edf
89142bca5a11e07e3c55c7f293f2e4d49d020a9ea794b53ff0f8ab67f29ff2ec800e83010361569761
edf1e2a8787c9be5af2b7993409bcbf60b6125c4b730cfe93c9478feab23712acc41dd41e9db15677
8abb15762aec55d8ab15f3869b67ac5ff009734cd46333d84f7b37ad0f37456e16570cb5e0ca4d08
e98aa06ff00c91f969a15b1bed4ad2df4fb50427ad35ccb12f26d9541320ab1e800dce2ac65d3f238
b51aca4624d6a2d355615e95a88e98aa61a668ff00935e60ba4b3b482192fdebe8dadcb5ddb4f204
15631c770519c002a4a834c5591ffcab5f24712bfa297891423d69e941ff003d3154bb58f27fe58e83
6ab71abd9476d6cec638f94b72c58d0b90aaae49a282cd41b282c76c55574ef257e5bea0674d36c
e299ad4a457091cf3f28da489265561ea54128e8d43d9862a89ff00955fe43e5cbf43272f1f567aedff
003d3db15406ade4af2ce86fa66a7a4d8fd56fe3d4ac512749a6a8592e511c50b90415620838ab3d
c55d8abb15762aec558d79ee24b8d052d65e460b8d434c867556642d1497f02ba96420d18120d0f
4c554dff2e3c9720e2fa5861e0669ff00eaa62ab3fe559f91e847e895a1ebfbe9fdff00e2cf7c55a1f96
5e465468d748408e6aca259e84fbfef3156ff00e55a791ffead2bd29fdf4fd3a7fbf3155c7f2dfc94c287
4b04787ad3f6ff009e98ab6df971e4b6fb5a583435159a73b9effde62aeff9573e4ca71fd18294a53d6
9fa7fc8cc5528f30fe5d7932cb40d5af6d34b10ddc16971343324d387596389cab0224ea0f4c559d5
a12d690331ab18d0927a925462aad8abb15762afffd0f7f62aec55d8ab0f9180fcd3b74fda6f2fce40f
65bd86bfaf1556f26a2de5c7983cc2c5249b51d4a7b68a451b8b5d2d8d9c71d7b80f1cb27fad2b62a
b74711697e78d7b498c4822d520b6d7230c6b0898f2b49c27f2ff7513b0fe67e5d58e2acb315607f9
9be73d57ca76d670e93044f3ea306aac2ea56de07d3f4cb8bd8d963e2449578802a4aed8ab1fb6fc
e5beb7b08db52f2fbbdd58d95c5febd2c775108e1b7b1b2b1be9654a81ccb457c856314f8959397e
d62a8db8fce38f4d7846b9a14fa7a19596e1fd78e72b6e5d562b844881731c81b90322c5d0aaf26a
02aa02cff0037ee61d5afdb54b55fd133cba38d378c8be9db43aa5afac1e79952839b5154b7eec3b
2a34abc971567fad7fc77fcb5ff0031373ff5072e2a9fe2aec55d8abb15762a90eb8c06b9e5807f6af2
e00ffa41b83fc3154bec6de0d4fcf9ac5ddf4c2e27d161b4b7d36c9c295b64b9432c970a0efce63fbb
e7fcb0f15fdbaaacbb1549fcd1a5d8eafa1de5b5f51152269a1b91f0c96f344a59268dfaabc6c392b0e
98aadf27eab79aef94b41d6f508bd0bfd4b4eb4bcba8402024b710248ea01dc50b1c558efe60f95b5
0f306b1e55d42c2cc5c8d1a7bf9a693eb1f56922facd84d6f198c82093ea3a1a83f0815c55e73aa7e
54fe615ce9b7173a7dc3d9f99e7b18567be8b549d1ae0ae81fa35ed642a40a9bb58ee3d7a5691abf
f00783862a9c5cfe5a79b56e354fd1f2dc5b40d12a68f35bea6e0c3693476fea5ac904c8eb33473c7
2ca0c92fa722cac9ca3e6dc5566d3dbea763e52f2e5a6b0211aa4179a4c575f562fe8fa8b73129e1e
a33353d8b37facdd7156698abb15762aec55d8ab1df3a7fc722dbfeda9a57fdd420c559162aec55d
8abb15762aec55d8aa51e6bdfcafad8ff00970baff932f8aa6165fef1dbff00c624ff00888c555f15762a
ec55ffd1f7f62aec55d8ab0e9bff0026b599ff00bf7aebfea36df1545fe5edbc76fe4cd1fd224acf09bb2
48a12f76ed3b1fa59ce2aa7aa4ed6df981e5d550385e69faa4121efca37b3953f00f8ab2ac552ad7b
cb5e5ff345aad979874db7d4ed50b34715d46b205678da262b5e84a3b29a7ecb118aa06cfc83e4b
b0bc1a8d9e85670df2c6f089d625e7e9c91240ea49ea1a38d1083fb28abfb23155383f2e7c856b15
9436fe5ad3638b4e5e162a2d62fdca89567013e1dbf788aff00eb0c557dbfe5ef91ad1552d3cbba74
0a932dd288ada24fdf2578b1e2a2b4aec3a0c55575bff9483cb3ff0031375ff5072e2a9fe2aec55d8a
bb15762ac7f5d15d77cac7c2fae3fea02e7156f59f2e4b77a847aee8b7a34bf304510b66ba312dc43
3db07e6229e22c85d54962855d1d0b3716a33ab2af3bfcccfcd1f317e5beb3e42d1afae74a927f3ae
bb1e8884db5c208a39226acb5fac9e92b42b4ff2f15671a879735ff3021b0f306ab00d0651c6f6c34e
b6781eea33d629269269488dba3ac6aaccbf0f3a62aca800a02a8a28d801b00062ade2aec55d8ab
1ff0037d7ea5a7d3feaeba67fd46458ab20c55d8abb15762aec558ef9d3fe3916dff6d4d2bfeea16f8a

b22c55d8abb15762aec55d8abb154a3cd5ff0028beb7ff0030175ff265f154c2cbfde3b7ff008c49ff00
1118aabe2aec55d8abffd2f7f62aec55d8ab0db9ff00c9a369e3fe1ebbff00a8db6c5532f22907c97e5
f2bd3f47dad3fe452e2a84d7597fc6de514a0f50aea6c1bbf1581011f492bf762a9ceb9ad5be85642e
e68a4b99a5963b6b4b380069a7b899b8a468188153d49242aa86762154e2a86d07cc0faacb75a7
6a164fa5eb962236bab091d651e94c098e58a44d9e3621979507c68ea47c38aa778abb15762a90
6b7ff001dff002cff00cc4dcffd41cd8aa7f8abb15762aec55d8ab1fd78d35df2b0f1beb81ff72fb9c5590
62afce0ff009cf1d57cede61fcdff002ee97e59d1b56b9b2f2a5bc5f54b9b7b4b89207d56e9beb6de8
b22157658e38abc4d7e06fe5c55f6fd979a75ef3668de5587498db48d4bcc7a5a6adaa5dcd18f5b4
d84c7117458261bcc6497d34122f14e2eeeadc7832a9f43e4eb58a3559355d5e7907da964d4ae43
31f12237451fec540c554af3ca9769109742d7750b1d4a23ca27b99e4bfb6723f62686e19aa87bf06
8e4fe575c5532f2e6aefade910df4f12c1781a5b7bdb746f5162bab691a199036d501d1a87c3154d7
1563fe6f205969e4f4fd2ba60fa4de44062ac8315762aec55d8abb1563be74ff008e45b7fdb534affba
8418ab22c55d8abb15762aec55d8abb154a3cd5ff0028beb7ff0030175ff265f154c2cbfde3b7ff008c
49ff001118aabe2aec55d8abffd3f7f62aec55d8ab0f9bff0026a597fe03f77ff51b6d8aa2bf2fe595fca7
650cebc26b37b9b17522841b2b996dfa7ca3ae2ab350816ebf307426e62ba7e99a94cc9deb712da
46a7db657c5565c40355fcc3b412a31b7f2ee9cd770b06213eb7aa3bc00951b1648a0900f012b62a
bbcc30c761e68f2d79814c713c92cda2de48c28cf6f7b1996350de227863e35fe76a7dac559562ae
c55d8ab1fd6ff00e520f2ceff00f1f375ff00507362ac8315762aec55d8abb154835d04eb9e5723b5f5
c13ff481738aa7f8ab0df3d72fd29e47e248ff009d852b4f0fd1b7f5c5515e62b7d4f4fd5ec7cd5a55a9
bf4b6865b2d56c6300dcc9692b2c82482ac0178992be9ffbb119c2fc7c015574de7ef2c5adbc7757b
3dc59c523471afd6acaf216124cc1110878410cccc142f52db62ad5e79dacd612ba3d85feada93d5
6dace1b4b88559e9b7a934f1a4512d7abbb507bf4c551de56d226d17478ed6ed91f519e59ef75078
41119bbbc99ee26e15df8877216bbf103154e71563fe6e00d969e0ffd5d74d3f75e447156418abb15
762aec55d8ab1df3a7fc722dbfeda9a57fdd42df156458abb15762aec55d8abb15762a9479abfe517
d6ffe602ebfe4cbe2a98597fbc76fff001893fe2231557c55d8abb157ffd4f7f62aec55d8ab0f9bff0026
9d97fe03f77ff51b6d8aaa797273a6f997cc3e5ab869394930d6f4d2e288d6b7a02cca8ddcc770b21
71d544b17f32e2ad7970aeafe69f30f98d62a5b45e86876173c811325899249dd00e804f33c47c5a
1f0a62abfcbaf3cde6df38cb21ac50dcd8da4069d163b18a623fe0a738aaa79eedd26d1209dabcacb
52d2ef2323ad60bf818f5f11518ab26c558e798b5ad5a1bcb5d03cb50c136bd791bdc19af39fd52d6
d6165579651190ce59982471ab2976a9e4a88e71544796f5abbd521b9b5d5add2cf5ed36516da95
b44e64879945912585982b34522b0642ca08f891be246c554b5baff883cb14e9f59baaff00d214d8a
b20c55d8abb15762aec558f6bdcbf4ef9569d3ebd71cbe5fa3eebf8e2ac871561de79e5fa4fc8fc7fea
614afcbf46df57156638abe49ff9cf8fccfbcf22f907cb5a3689742dfcc1aaeb36fa84441fde2c1a332dc
8700784fe862af7887cf52f99bcade50d43cad2c71def9de082e2c6ee5432476d6f25b7d6a794a742
e8838c6adf0faac9cfe1e58aa689e42d2c9692ef52d66eee1c969269356be8ea4efb4704b146a3c15
11547618ab9fc87a72d1ec753d62cae9778ee1355bc9b891d098ee6596271fe4bc6cbed8aa5536a
1a95e6969a6eb2436ada3f9834db2b8ba5508972a2e2de78a70a090a5e39179af4593985f8698ab
3fc55d8abb15762aec558ef9d3fe3916dff006d4d2bfeea1062ac8b15762a926a7e70f2be8ba943a3
eabaadbda6a73889a2b695f8b159dcc5193d8077528a4fda7f87ed62a84b2fcc3f24ea4b672586b7
6d7115ff000faa4b1b168dc4a78c6dce9c42c8df0c6c4f191fe042cdb62ae93f30fc931234926b76ca
893c76ce791f864982142db6c8c244a487f77f12fc5f10c555e3f3b795667448b5389da498dbc6143
9e4e1952aa78ee9c982fa83f77534e58aa7f8aa51e6aff945f5bff980baff00932f8aa6165fef1dbffc62
4ff888c555f15762aec55fffd5f7f62aec55d8ab0f9bff0026a597fe03f77ff51b6d8abca3fe7347cdb6fe
49fc95bcd6e1e51798e6bcb6d3f43bc8657b7b8865b89049371922657e2d0c52075068db72c55ecf
e45d4f48d6fc97e5ed6741863b6d1b51d3ad6f2c6de2a708e2b889645414f0e543ef8aa8f960ff00b9
cf380aee35587f1d32cf155fe7c123795eed623494c96a10f837d6a2a1c5591e2ac4bca97506adaff9
b35788bb7a17d1e8a9ccfc3c74e855df80ec3d59e507c78e2aeba32e9bf98d6124718fa9ebfa64f6d
75201422eb4c9165b707c79473dc7fc062a8dd6ff00e520f2c7bdcdd7fd41cd8ab20c55d8abb15762
aec5520d74d35cf2bfbdedc0ff00a70b9c553fc558879dcaaeabe4827feafea07cce9b7d8ab2fc55f36
ffce4affce34f95ff0038b55d27cdbe61d6f54b49ec9b4fd12decac8db8b7586f35054964a491b1e644
c7bd3e05db157a2796bf2b24fcbcf24f95bcbbe57bf9b57baf25c92b694faaba23dc5acfea2496d23c
28aa291cb489b87c2c9172aaf2c559443e76b236eb35f699ab584c16b35bcda75cb988d37064812
488d3f991d97fcac55bbaf39c11dbc8f61a3eada85d81fb9b38f4fb881a463b01ea5cac512ffaceeaa3
154a65d3351b2d312fb572a757d5b5ed3efaee18db9c507efe08638518852c238e3505a9f13f26db
953156778abb15762aec55d8ab1df3affc722dbfeda9a4ff00dd42df156458abb1579f6b9e47bfd7fcf
93ea376fe9f9626d26cada4e051a492eec2fe4bc45656525541643507e2f897e1fb58aa1f4bfc99d0
b4ed374fd25b50bcb9b0b5d334cd1af2194c416f2db44b87b9b36938a02aeaeec19938f2534a77c5
556dff002a2381f4999bcc7a9cf73a3c0fa6c134e2d242da63fa7fb8653071e40c3137ae07adc92bcb
7a62aa117e4be8915d4776ba85d0963bf4d554a7a7195bb42a4cd1f051e9cd285e370f1f159d1dc4
89f172c55e978aa51e6aff00945f5bff00980baff932f8aa6165fef1dbff00c624ff00888c555f15762aec
55ffd6f7f62aec55d8ab0f9bff0026a598ff00bf7eebfea36db157cf3ff39c5f94bf985f9a3a168971e5d9f
4eb7f2b796567bdd445e4f2c7712dd5c3470c7c1122752116bb961f6ce2af62ff009c75f2479cff002d
ff0029f45f22f9e9eca6d5f4333db4171a74b24d0c968d2b4b112648e32194394a71e8a315659a0c2
d6be70f3646cc0fd6dac2fd13b857b6fab78f8db1df15779f2729a4d8da2a7a8d7fab6976bc684fc0d
7b13c876f044638ab28c558c790ada38343b89500e579a9eab7721049ab4da84eddfda98abbcd53

9b5d63ca130ad24d59ed9a94e9369f77fc5462aafadffca41e58ff00989baffa829b156418abb15762
aec55d8ab1fd77fe3bbe57e9fef6dc7fd405ce2ac83157cddf9ddff392bf955e40f3ce81e55f345ddf5a
eb1e5fd561d52fd12ca692336b369d7488f1b81c5c729d54f1efcbf9711610000026060f002220574
d464301000000000001000000000000000a000000002000008cfe00008c3e010057bff9775cb1f33
e83a6798f4cf53f46eaf6b0df59faf1b432fa17282442c8dba92ac3638abc6bf3eff3ff00f2d7f2caf34df
29f9caf6eacb55b89f4bd620f4ece6b885ed2df51469183c608aa885fe1ebd3f9b157a9f90fcf1a0fe6
47956c3ce7e5869a4d0753123594b730bdb48e9148d116f4e40180250f1246e37c55e45ff3995e67
f34797ff0024f52b1f27e9d7d7dad6bd710699ebe9d0cb335ac0efea4b2b9881e21827a2b5fda9462
af69f29eab36bbe57d175ab8865b7b8d42c6daea6b7b88da19a3926895dd1e37019594920a91b62
aa1e6dafd4f4fa7fd5d74dff00a8b8f154ff0015762aec55d8abb1563be74ff8e45b7fdb534aff00ba85b
e2ac8b15762aec55d8abb15762aec5528f357fca2fadffcc05d7fc997c5530b2ff78edffe3127fc4462a
af8abb15762afffd7f7f62aec55d8ab0e948ff95ab66b5dc797ae891ff47b6f8aa1ff0038d957f2d3cc25
ba7a318fa4cd181f8e2ace715623ab49fa1bcf3a3ea8d11fa96b76f268d7775c82a4571131b8b30c0
f672d3c63fcb745fdac557ea971fa4fceba368903314d2639759d478a56305d1ad6d6377e80b9925
91475fdce2acaf15639e455e1e5b8536252e6fd0d0d775bd9c1fa6a37c550be753fee43c9abbd5b5
e8e94f6b1bc27f018aa375c3ff3b0795c78dd5d7fd414d8ab20c55d8abb15762aec5520d769fa73caf
5ff0096db8a7fd205ce2a9fe2af863fe739bf28e7f397e667e546a1a7c63d5f32ddaf952f5c0a05aceb
344ccc3fc89263f24c55f7059595ae9d656da7d94621b3b4892dede15fb29144a11147b00298abe3
9ff9f85fe5bcde66f26f957cdfa4599b8d6f4cd513487f4ea647b7d57e18d683afefd6355f793df157d5
5e40f2adaf91fc91e5ef27d98a5be87a7db5829ea59a08955989f166058e2af17ff9cc6f32fe63f95fc8
1a0ddfe5d18dee2fb5fb0d3afada5812712999f9db0f8fa03711c6a69f6b9f1c55f40e9897d169b671e
a92acfa9a411adecf1af0479c201232af605aa40c552af367fbc7a7ff00db534dff00a8b8f154ff00157
62aec55d8abb1563be74ff8e45b7fdb534aff00ba85be2ac8b15762aec55d8abb15762aec5528f359
e3e57d6cf8585d1ff922f8aa6165fef1dbff00c624ff00888c555f15762aec55ffd0f7f62aec55d8ab0f91
2bf9a76f2765f2fcebff00057b09fe18aa17f39416fcb5d7957ab240a3e9b98862aceb15629f999aae8
da0fe5f799b5df3044b3693a5e9d737d711bd77fab46644e254821b92af0652195a854838ab04ff00
9c58f3059f9bbf24bcb3e69477b8d675185975fbdb89249eeae351b576b79649659599d8931d56ad
454e2ab45a62af66c55887e5fcb3ac1e61d36e1191f4ed7b528d390a562ba97ebd191edc6e0018a
abebd7104be6ff2a6926a6e43df6a814768ad6d8db331f6e576831557d7057cc1e573e175747fe9c
a618ab21c55d8abb15762aec558b79b6ce5bfd4fcb36f0decfa7cbf5e9d85cdafa5ea8a58dc540134
722d0d77f8715436b5a6df689a64fa9cde65d7ae63838ffa3d9c1637371217708aa91a5912c49618
abceb50f30f94f5b93cbd79ac6bbe650916b9f55d12f2eac6c16087598669f4b7abfd50aa98dcca8c5
b6fdb5a8f8b157a59d0ee948e5e76d48064f5141fd182a8072e43fd0fa53be2a82d4fc970ebd0db59
6a1e6ed46e61335bea16b09fd18794b65325c4322ff00a1d4857456db6db1551d29d358d7359f2f5
879c7589751d07eaa750fdde9de9817aaef1f0716746d918353ec9c551fa9790df58861b7d53cc7a
a5d436f7105e44922e9e40b8b49566864dacfaa3aab0f962a8f1e5ad481dfcd3ab11e14b0fe1698aa
51e60d0afad574bb893cc3a8dd449aae9c5ada7167e93ffa547b37a76c8df730c559c62aec55d8ab
b15762ac77ce9ff1c8b6ff00b6a695ff00750b7c559162aec55d8abb15762aec55d8aa4fe6c217cada
e1268069f7649ff9e2f8aa6365fef1dbff00c624ff00888c555f15762aec55ffd1f7f62aec55d8ab12663f
f2b3a25a7c274190d7dc5e47fd71541fe7103ff2ae7592b5e40dab023a82b7709ae2ace7157897fce
56f95ff00307cf1f93ba97933f2e34e3a8eb1ad4f6f0de2fd620b511d8c4febca4b4ee80f231aa711bfc
58ab03ff9c14f287e62f91ff2d6ff0049f3a69df54d1351b8875bf2d5c8b882e16482fa05f5178c4ecc9
4288f4603fbc38abea9c55893dd43e5ef3abfd7663158799e2892d1e4655886a564ac1a207af3961
e2ca3bfa0fdf155be5e9a0f31799f54f355b18e7d32d625d1b49bc42584be9c864bc746e8c86511c5
51fb50362a986b7ff1dff2cffcc4dcff00d41cd8aa7f8abb15762aec55d8ab1fd75a9af795c7f35edc0ffa
70b838ab203402a7b62af0e9bf2e751bef2358e8baab6913d869de739bccfa8b4d73eb593e9926ab
71a9346e5e1e3ea2acca8c8c387215e7c71548b4ff00c92d7a4d3aee4487467f31d85868fa769d7b
15c3d4368fa8dd5ccf68d347089608e6b59a2b525033055f89387152aa6d2fe52f9cd1f4f87448b4d
d02d6d446d6b736777713de597a835159544b710334c2337ab244034117f789e928e18ab28fcaaf
227983ca5abebdaa6b769a6d9aeab65a2daac3a5caf2833e936d25bcb2b73862a0939294fb4dc76
7c55ea18abb15487cd82b69a7ff00db534eff00a8a8f154fb15762aec55d8abb15639e7615d22d7fe
daba49ff00b98dbe2ac8f15762aec55d8abb15762aec5527f365079575c27a0d3eeebff225f154c6cff
de3b7ff008c49ff001118aabe2aec55d8abffd2f7f62aec55d8ab127283f33a1047c6da0cbc5a9d02de
47515fa462a82fce2a0fcb9d6493400da1afcaf2138ab3ac554ae072b7957c5187e0715629f94e54f
e587934a1aa7e85d3e87d85b262acc3157ce9ff0039a5f997ff002adff2811ede349b54d6755b0b5b
48650190a5accb7b29652082a520f4cffc64c55ef1e5cd434ed5fcbfa56ada42a2e957f6905d592c21
446209e359138f1da9c5874c5509adff00c77bcb47fe5eae7fea0e6c553ec55d8abb15762aec5520d
74575df2b9f0bdb8ffa80b8c553e620292df640debd298abe7af2bf98e1d17f23f51d0f4db5b94f3388
bcc7736d6434c9250acb79793c4d2453425196406308acadea7350aadd9542799353f3df976efce5
7de48bbbd8269af755bf974e8f4e8e68040da0c12dade445a02cced7889185e4e252f2270f809555
1be7af3df9e7cbb79a969da0ea5aa5e7a16576d6f77369826e5349a2cf7766d0986d3d2706e95139
3953cff71e99fb655655a54de7eb7f32f9774d9758bfd4f44f31d841a94b7f341651b58cba7b096ea1
7548623c2ec5c451a7c2cd17a6ff001296ae2af5ac55d8aa43e6bff78f4fff00b6a69dff005151e2a9f6

11

2aec55d8abb15762ac77cea2ba45affdb5349ffba85be2ac8b15762aec55d8abb15762aec5528f358
0de56d6c1e874fbb07fe44be2a9859ffbc76fff001893fe2231557c55d8abb157ffd3f7f62aec55d8ab1
9d6bcafa85f6bd6de62d23586d2efa0b496c24436f1dcc72432ca92d68e54860c9d41ef8ab04fce1d
17cdc9f96fae35c799d66842405a31a7c2a4d2e62ee1f15670743f3af6f35a0ffb76c3ff0055315592e
87e75f4dffe76c51f09dc69b09ede064c55897e5468de7093f2c7c9d243e6858a26d1ac0a4674e858
a836e9404f315a78e2acc0687e75ff00a9b14ffdbb61ff00aa98abe59ff9cc2fc86fcdcfccf8741beb4f3
0e9b77e5cd041568aed5eca6fae6a57115bd42431caaca004f899c11f1d17c557b27e487e5afe6b7
907f2cf44f26f997cd1651df68ab25ac22c2d7eb90fd5448cd17ef671139215b8d386d4c55e8969e5b
d77f4ad8ea3acebdfa422d3da4921b64b38ad8192589a2ab32b31a0573b62ac9f15762aec55d8ab
b15493cc7a1df6b034f9b4cd47f466a1a75c1b986e0c0b72a79c3240cac8ccbd44877ae2a978d0fcf
35dfcdb153c069710ff0099c71568685e7aaefe6e888f6d2e21ff0033b1577e82f3d72aff008ba2e3e1
fa2e2afdfeb62ac2fcb3e6af31f99bcf3e74f225a79c6dff0049f935ec12e80d3622ccba85b09c353d6f
d93543e07ae2ac82dbc81af59eb77fe64b5f30dbc7aeea71c305f5f7e8c469248ad8111aef390a057
a285e5b72af118aa68342f3d537f37455f6d2e2a7fc9dc55c342f3d77f3747edfee2e2ffaab8aac1e58
f355cdcda36afe675bbb0b6b986e9ed63d3e2819daddc48a3d41231039015a0c5597e2aec55d8ab
b15762a95f98748935cd31ac61ba365389adee60ba5459784b6b3a4e9547d98129423c3154abf41
f9d69ff295a57fed9b0ffd54c55dfa0fce9ff535a7fdc361ff00aa98abbf41f9d3fea6b4ff00b86c3ff55315
79b79bff0030b5ef29fe6af90ff2c6e3cd717d77ce4b7f2191f4e887a2b6917283fdd94acb20645f962
af4afd09e74ff00a9ad3fee1b0ffd54c55afd07e74ffa9ad7fee1b0ff00d54c55dfa13ce9ff00535a7fdc3
61ffaa98aa85ef963cdda8595c585c79ac7d5eea27826e3a7421b848a55a84b9a1a1f0c5596c5188
a34897eca28515eb40298aafc55d8abb157ffd4f7f62aec55d8abb15607f9d040fcb1f30d771e94236
f7b88862acf3155b29a46e7c14feac55867e4f1e5f953e4a6f1d16c0fdf6e98ab35c5587fe687fca197
7ff315a70fbf50b7c559862aec55d8abb15762aec55d8abb15762aec550da85f5be996175a95e3fa7
69670c97170ff00cb1c2a5d8fd0062afcd3ff009c4bfcdfbdd4ff00e72b75bd6b5606de1fcc86d42378e
40691ccee6f2d901f6117a4bfeb62afd35c55d8abb15762aec55d8abb15762aec55d8abb15762aec
55f9aff00f393175f9b97ff00f395365e70f2af94b5dd46d3ca1358c5e5f6874eba922b91a6f1bab8f44
a4643a191e40ccb5aafb62afd21b2b9179676f78237885c469288a5529227350dc594ee18568462
aaf8abb15762aec55d8abb15762aff00ffd5f7f62aec55d8abb15607f9cd2443f2d7cc08ec013046429
201fefe3f1c559d2491c83946e1d41a12a41151db6c5565c4d0c5193348b1860402ec14134f7c558
67e4e4d149f959e4d44911dd345b0e6a8c1a9fe8e9e07156718ab0cfcd29624f26ddabbaab1b9d38
80c403ff1d0b7c5598a491c83946c1d6b4aa904547cb155d8abb15762aec55d8abb15762aec55d8
ab4c14a90e014208607a53bd71561de5c82d97cebe712b1c438c9a715e2ab507ea83db156658ab
b15762aec55d8abb15762aec55d8abb15762aec55d8ab19d6ebfe2ff002ad3a7fb90affd238c55936
2aec55d8abb15762aec55d8abb157ffd6f7f62aec55d8abb157c41ff3f1df263dcf947cabf98168bc65
d2ef24d2350756219a0bd4f562e406c423c4df4c98abdebfe7157c947c8bf90de4fd3678fd3d4750b
4fd31a81af2669f5226e0163e2b1b227fb1c5524ff9cd0f250f397fce3ff992485036a3e5e11ebb66e4
7c4a2cdbf7f423c606971579e7fcfbbbc97fa1ff002a757f3a5c20fad799f5268ede4dcb7d4b4d1e928
dfa7ef5a6c55f61e2af83ff00e7e47e5194e99e4cfcc0b52c9f579a7d12f8ad4544cbf59b7a91e0639bf
e0b157d31ff0038d3e4697f2f7f247ca1e5ebc409aa3d98d4352a12c4dd6a0c6e5c313d4a89027fb1
c55eb18abb15762aec55d8abb15762aec55d8aa1b52b0b6d574fbbd2ef179da5ec325b5c274ac73
21461f4838abf347fe712ff002cb5db7ff9caad5b43d6ae66b987f2f1f5096f0c92b9496681cd95bb52
b435320916bfcb8abf4df15762aec55d8abb15762aec55d8abb15762aec55d8abb157e6cff00ce4dc
1f9bf65ff00394b63e4cf2af9bf5dd3ecfcdf2d84de5e8e2d4aea386dbf48d2d6e3d20b20088248e42c
abfb38abf482cedc59da416824794411a4425958bc8dc142f26635249a6e4e2aad8abb15762aec5
5d8abb15762afffd7f64e89e72f31f98347b3d734ef2b93637f12cf6dea5fc292189f752c02900d3a8a
ed8aa34eb7e7314ff9d554d7ad351876fbd3155bfa77cebbff00cea4bdbfe96507fcd18aadfd3de77a
023ca02bdc1d4edffe68c55817e727953cd9f9b9f977ab7912efca71c035036f245712ea3032c725b
5c47383f0a93b842bfecb156736dabf9c2da08ad6dfc98b0dbc08b143126a36c115100550005d800
298aa1759baf356bba45fe89a8792fd5b0d4ada6b3ba8cea36c43457086371baf70c71563df953a2
79bbf2d3f2ebcb7e4487ca8929d0eca3b69a78b50b7092cf4e72c801507e39199b7f1c55979d7fced
dbca15ff00b795bffcd38ab07fcdcf29f987f36bc9371e4cd57ca08209eeacaed649751b7214d9dd47
3301c54905e3578f6ecf8ab375d77ce51a2c71f93b8a2a80aa351b60001b00283155cbaff9ccd3979
41878d351b63fc3156c6bfe72a6fe506af87e91b6c55dfa7fce55ff009441a9e3fa46dbae2ae1aff9cb
bf941bfee236d8ab7fa7bce5dbca2dff00710b6c55dfa7bce3ff00528b7fdc42db15686bfe72efe5161f
f6f1b6c55dfa7fce5ff528b7fdc46db1570d7fce5dfca2dff710b6c55dfa7fce54ff009445abff006d0b6c5
581f94bc9fae7953f30bcf5e7fb5f272fd7bce92583cbc2fed8346b636c21604ff96f590d3a9eb8ab3df
d3de71ffa945bfee216d8abbf4f79c7fea526ff00b885b62ae3af79c76a794588effee42db156bf4f79c
bfea516ff00b88db62ae3aff9ca9b7941abe1fa46db1570d7fce54dfca2d5ff00b68db62ad0d7fce94df
ca0c0ff00db46d8ff000c55bfd3fe73efe516ff00b88db7f4c55b3af79c7b7948ff00dc42dbfa62adfe9df
3857fe51334f1fd216ffd31577e9df38d3fe513dfc3f48dbff4c5569d7bce63fe992afcb51b7fe2a3156b
f4f79d3bf9476ffb68dbd7f562af37f37f9035ef367e6a790ff33a7f2820bef26adfa323ea301332ddc25
61a5148ac521675aff362af493af79cebb794b6ee7f48dbff00cd38ab635df391241f2950763fa46dff0
0e69c5553f4d79ba86be56dfb0fd2106fff000b8ab5fa6fce1d7fc2c3e435082bff0011c55c75af38015
1e57527c3f4843ff3462ab4eb7e721f67ca80efdf51806dff00018aacfd3de75ffa9447fdc4ade9ff0010
c550d73e6cf38dacd6904be4f3cef6536f0d352b6239ac524dbfc3d38c6d8abfffd0f66fe539e5f969e5

56a52ba6db1a1f7418ab31c55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb157
62aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb15762a
ec55d8abb15762aec55d8aa4badd7f49f96e9ff57192bff70ebcc55fffd1f66fe5450fe5af9548e874db
723fe0062acc715762aec55d8abb15762aec55d8abb15762aec55d8abb1543de5fd8e9f109efee62
b58090a249e4589391e82ac40ae2aaeacaeaae8c191802ac0d4107a107156f15762aec55d8aa9c3
7105c066b7952554668dcc6c182ba1a329a7420f518aaa62aec5542eefacac23596fae22b6899822
bcceb1a976e8a0b11b9f0c55555d1c72460c2a4541a8a8d8e2abb15762aec55d8abb15762aec55d
8abb15762aec55d8abb15762aec55d8abb15762a936b669a97973df5193fee9d798abfffd2f66fe53
8a7e5af9540e834db6a7fc00c5598e2aec55d8abb15762aec55d8abb15762aec55d8abb15762af0
2fcaa82cbf32ff00307f357cd1e70b58f549b40f314de51d0ac6f544f6f65a7e9f0425cc30c9c915ee24
919e5938f37d9797001715614df99fa9fe47f9b7f38fcbba2e94dadf947caeda0eafa268ad73f568ac0
79819619e081cc72058fd791648e1f851179f0e23157a45d7e77eb7e51d6bcc3a17e64f9760d32f2
c74c8f5ed064d2af1efa0bdb49af23b0103bc9042c93a4f344afc51d38c9c97a7c4aa5fad7fce406bb
e5bd0bcf5a95ff9652fe4f2858dbeaf6b776b25d5b69d7b6970cc8f1acd756aa44f0301cd29fbc57465
2bbaaaaca6ebcf9f989650dbfe93f2c59695f5e92f678b549efccda75a585ac30c90fd71d63465b89d
e478d624e68be9b37a8fb06558e691f9bbe63f3af99bf28ef3cb96f059795bcefa26a9adea16374edf
59592cd6d57d3e6b1b0213eb04ad29ea30f8b862a80d3bf37e3f2c792f5ed7f41f21dad93db79ee7f
2c6a7a55adf24626d42eefa1b596f4482dc2b34b34dc9810bb7c45f154fefff003ce7f2ce8bf98f7de70
d0e3b7d4ff2f1ecfd7b5d3eecdcc17516ab14725a309a586131ef27094b4744e2cff12e2ac83ca1f98
5af6b9f983e67f206afa25bdabf962d6c2f25d5ed6eda686e1355577804713c28c29e948ae4bf5414f
b7f0aac07f3d0eb3e53f3de81f99ba9794cf9ebf2cac74cb9d2bcc1a4430a5e5ce96f34c939d4e1b69
01593e04f4e4a7c4a83ed00c7154c349f3c795bf2fbf2ff00c9fabfe5c476dacfe55ebdae2d97e9059e
48d74b875bbc7e0fc7d39098e2b893d064768da2675076534553ef357e6f8f2bdaea1a85fdbdad9e
8b179820f2c5a6b3793c91da472cb00925b9ba6f4e91c492ff00a38a31e52eccd1f5c5509ac79efcfc
9e78fcb6d0adacb4fb5b4f321d6df5585ae2497d41a5c7fb9786548c831488e265f8791aa29a713c9
541587e7ebeafade82347d0df51f2bebfab4fa1a5c5b7d61ef6d5a1966852f67410187eab23c5c491
2f2895d1dab528aaa84df9ede69834efd372f93edff465b79b1bc957d147aa07b9376d79f508a6801
b64431facc9cfd468d8233100f1f89566be44f3feabe64f3479bfc9be60d260d2f5df294962666b3ba6
bdb69edb5581a78595de18183285657529d4554d0e2acfb15762aec55d8abb15762aec55d8abb1
5762aec55d8abb154975bff8e9f96ffeda327fdd3af3157fffd3f65fe520e3f963e535f0d2ed46ded18c5
599e2aec55d8abb15762aec55d8abb15762aec55d8abb15762af2f3e40f357947ce5aff009b3f2e27
d3a4b1f36ba5e6bfe5ed5ccd042ba9c512c22f2dae2de39594c88aa2689e360ecbcd5d1b9555793f
e757e5fcbe4cfc92fccbf36f9835482f3cfbe73bdd16eb5bd482986c6236ba85ac5696d6f1bb72105b
a6c3937a927c4ec77a2aaf40f32fe4febbf99316b9a979c354b5d3b5ebdd222d1b409b43f52586c4c
3771ea22ecb4eaacf235cc10b700155238b87266667c550de6afcb7fce3f3ff00e58f987ca7e71f306
88dafeb163fa26dc69b05d5be991c4ee8d2dd4c1cc92493b70a222fa7147f17dae58aa79e69f227e
616b9ae7917cc1a7ea9a55b4ba05bdddb6b7a65dc5717564d25ec7147f5bb5556898cd12a48b1fa
bfb12b8af5e4ab14f25fe49fe60793acff002b920d6747b8bdf2041aae8f74ef0dd7a73e93a9b4055d0
0707eb08205af2e317c5fe4fc4aa125fc8efcc497ca7e62f2fb5fe8bf59d6fcf49e798660d76238625bd
86f8db11e912cdca054e7b0a33371db1552fccfd0357f27d9fe6d79afcc7a968b69a17e622e8da458
c9791cd3dad93aa2e9c1b502eaa82071216925047a3fb3c9a98aa7bf91d7faac7adea7a64cde4fd4
ed66b4866b8d63c9b7b7ba84caf6c161822bd96f0ca483193e80f58b2847f838fc58ab38d6f4cfcccb
4f36dceb9e52bcd32ef41bbb082da6d0f5792e61f4ef60798fd6219a04942864745910c679f007925
3e255e577fe4cf21fe53fe485ff00e52f9d359b6975af3b0d565b4b38ab6e6f359bf7f5561d3612495f4
a59215816bf6b8336ed8abd0acbc81af5a7e59f96fc9b29b1d6ae218e35f38db6ba1ae2df55fac432
35f07708ff001c97127acac5187c34a62ac5f4cfc92f33f95a1fcbc7f2a6a9611cde4cbed6647b2d416
e6e2d22d375e66adb5ab0659296aa5520f5080cabf171e98aa61e42fcb2fccaf21dccde55b1f32e9f2
7e55c57f71a96991fd5a61aec515d5c35d358fabea1844224761eaf0693d3f85426c55549ae3f273f
30e6f2a5f68ab79a28d46ebcf4be788e42f76605857505d445b1fddf2e5cd047cc6dc496e3cb6c559
bf943c8fe64d0ff0034bcf7e78d4a7b17d27cdd169496b6b6ed31b981b4981e1f8cba846120909dbe
cf11f6b157a3e2aec55d8abb15762aec55d8abb15762aec55d8abb15762a926b9ff1d3f2d7fdb4a4ff
00ba6dee2aff00ffd4f647e4e82bf955e4d53d4691660fcc42b8ab36c55d8abb15762aec55d8abb15
762aec55d8abb15762aec55d8aa1afb4ed3f5383eada95a43796d50de8dc46b2a721d0f17045462
aad1451411a430a2c70c602a46802aaa8d80006c00c557e2aec55d8abb1552b9b6b6bc824b5bb8
52e2da51c6586550f1ba9eccac0823e78aa969fa669ba4db0b3d2ace0b1b4524adbdac490c609ea
42a003154562aa13d959dd4b04d736f14d35b37a96d2488aed13914e4848254d3b8c555f15762ae
c55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb15762a91ebbff001d4f2cff00db
4a4ffba6dee2afffd5f59fe51dc799c7e57f94445a758bc634ab408ef7f2a330112ee556cd8293e019a
9fcc7ae2accbeb3e6bffab669ff00f7119ffec871577d67cd7db4bd3bfee233ff00d90e2aefacf9afb697
a77fdc467ffb21c55df59f367fd5af4ef7ff007233ff00d90e2ad7d6bcdbff0056bd3bfee233ff00d90e2a
d8b9f35ef5d2f4e1e14d4673ff006238ab42e7cd9535d2f4ea76ff007233ff00d90e2adfd67cd9ff0056
bd3bfee233ff00d90e2ad35d79ba878e95a6934d81d4a71bff00d201c55df59f36d3fe397a772f0fd23
3d3fea07156beb5e6ff00fab569bff7129fa7fd2062adfd6bcdddb4ad37fee253ff00d9062ae375e6eaf

13

c3a569a4789d4a71ff62071568dd79be9b695a6d7c3f494ff00f6418ab8dd79be9b695a6d7feda53ff
d9062aefad79bf7ff00715a6fb7fb929ffec8315685d79c7f6b49d307cb53b83ff76f18ab66ebcdfdb4a
d34fcf529c6dff4818abbeb5e6feda569bff7129ffec83156beb5e70a7fc7274de5dc7e929e9ff5018aa
efacf9b7fead7a757feda33ff00d90e2aefacf9b7fead7a775ffab8cfd29ff3038abbeb5e6ea8ae95a753
bffb929ffec831571baf377ece95a69f9ea538ff00b1038ab5f5af37ff00d5ab4dff00b894ff00f6418ab4
2ebce141cb49d341ee06a739ff00b1018ab96ebce07ede93a68f96a539ff00b1018aae175e6eefa56
9c3e5a94e7fec43156c5cf9b36ae97a77bffb919ffec871577d67cd74ff008e669f5ffb68cfff006438ab
beb3e6bffab669d4ff00b68cff00f6438ab85cf9b37ae97a77b7fb919ffec87155bf5af3772ff8e569bc7
c7f494f5fbbea18ab5f5af38547fb89d369b57fdc9cfe3bff00c787862ad9baf37efc74ad34f857529c7f
d881c5579b9f35d0534cd3cb7707509c0fbfea38abbeb3e6aefa669fff007109ff00ec8b1570b9f34f7
d334febff005709ba7fd2162ab5aebcddfb3a569c4f6aea538dbfe900e2ad1baf37d0534ad349aee0e
a53814ffa40c55a375e71fd9d274c3f3d4ee07fddbf155bf5bf3a53fe391a5d7c3f4a5c7fde3b154975
bbaf381d4bcb664d274c0e35193d20353b820b7e8ebcd89fd1e2829535f8bf881610000026060f00
2220574d464301000000000001000000000000000a000000002000008cde00008c3e010055ffd90
00840010824000000180000000210c0db01000000030000000000000000000000000000001b400
00040000000340000000100000002000000000000bf000000bf0000af4300003543030000000000
008000000080fe7fe9430000008000000080feff70432100000008000000620000000c0000000100
0000150000000c00000004000000150000000c000000040000005100000058fd00000000000000
000000d2010000f0000000000000000000000000000000000000005e010000b500000050000000
2804000078040000e0f80000000000002000cc00d3010000f1000000280000005e010000b500000
00100080000000000000000000000000000000000000100000000000000000000ffffff00fefefe00d
4d4d400898989007b7b7b007a7a7a00818181007c7c7c00828282007f7f7f007070700068686800
7575750072727200797979006e6e6e006f6f6f00777777007171710074747400737373007e7e7e0
07d7d7d007676760085858500808080008c8c8c00838383008a8a8a008f8f8f0088888800848484
009595950098989800d3d3d300f9f9f900a5a5a500ababab009c9c9c00929292009a9a9a0094949
4009d9d9d00a1a1a100a0a0a000afafaf00aeaeae009f9f9f009797970091919100999999008d8d8
d0093939300a7a7a700a8a8a8008b8b8b0090909000a4a4a400a9a9a900a3a3a3009b9b9b00aca
cac00a2a2a200969696009e9e9e00fcfcfc00bbbbbb00adadad00aaaaaa00a6a6a600b2b2b200b0
b0b000b9b9b900f6f6f600fbfbfb00f8f8f800b1b1b100b5b5b500b3b3b300e1e1e100fafafa00f0f0f00
0b4b4b400ebebeb00fdfdfd00dadada00e5e5e500e2e2e200f4f4f400eeeeee0087878700cccccc00f
1f1f100dbdbdb00e8e8e800e4e4e40069696900b7b7b700e3e3e300d9d9d900e7e7e700f2f2f200d
fdfdf00eaeaea00efefef00d8d8d800ececec00d2d2d200c6c6c600f5f5f500bdbdbd00f3f3f300deded
e00bcbcbc00bababa00b6b6b600cbcbcb0059595900c5c5c500dcdcdc00f7f7f70040404000bebeb
e00bfbfbf00c7c7c700e9e9e90055555500c3c3c30046464600cfcfcf0067676700303030006d6d6d
00c1c1c100e6e6e6004a4a4a00d7d7d70066666600cacaca006c6c6c0028282800c0c0c00054545
4004f4f4f005f5f5f00d5d5d50061616100c8c8c800cdcdcd005e5e5e00434343005b5b5b00484848
0047474700d1d1d1008e8e8e003737370078787800c2c2c2005d5d5d00dddddd004e4e4e004d4d
4d004b4b4b002b2b2b00585858005656560045454500cecece0052525200606060005353530042
424200c4c4c400d0d0d0003e3e3e003f3f3f0033333300c9c9c90063636300868686006a6a6a00d6
d6d600ededed006b6b6b0019191900e0e0e00005050500090909001c1c1c000303030049494900
1d1d1d00b8b8b800363636000202020004040400656565000d0d0d00626262000606060038383
8002a2a2a00010101000c0c0c003c3c3c006464640017171700080808003535350026262600515
15100181818005050500021212100343434003d3d3d002d2d2d00575757003a3a3a0015151500
202020005c5c5c002f2f2f004c4c4c005a5a5a000b0b0b001b1b1b002c2c2c000707070029292900
13131300111111001a1a1a001010100027272700313131000f0f0f001f1f1f004444440025252500
32323200414141001e1e1e002222220039393900232323002e2e2e003b3b3b000e0e0e0024242
400121212000a0a0a001414140016161600f30a282d2d2c2b273d3d3d3d3d3d3d3d3d3d3d29292
929293d3d3d292929292933293d293333293d3333333333333333223131332741412b3d223131
333d3d292929292929292929293d33212a2a1e1f40222927272922402a28282a2a28282a212121
212a2a2a2a2b3d222a32391e1e352a212121352832352a21212a352832213528282a212a285b1f
1d1b1e32352a224021212a391e322a2a2a2a353535359c322a4021283939223333292933332229
22403d3d4022292a214021353540223d29224035399c3435353535353535355b381e28352a4022
1d3834392a3133293228352a4031223331333d3d33333d27293d272b2b273d293d3d292929293
d3d292222333d273d293340289c9c2840333232211b39351d312733402a35329c3829413c3a2d3
d314030303030302d2d2d2c41413f3f302d3c4129222240329c34212a3133401e34392832399c34
381d0419b51f04041fb5191f201c199ca200007a600101010155010101010101010101010101010
10101010101010101010101020101010202010102020202020202020101020201010102010242
42020101010101010101010101020101020101015542550101010155420102020101020201010
10101010101010101010101010101010101010101025501010101010155550101550201010102
0101010101010202010202010102020101010101010102024b020101010255555502020101020
25501024b01014b02010101010101010101010101010101010101010101010101010101010101
55020101010102020202020101010101010101420201010202010101010101010101010101010
202010101010255020101010101010101010101010101014b01014c01015555020101010102010
10101020101555502020202010101425501010202010101010101010101025501010142420101
0101010101010201010101010101015101010155350000a49b010101015101020202020202020

20101010101010101010101010101010101010101010101010101010101010101010101010101
01550102550201010101010101010101010101010155020101420101020202020101010202010
10202010101010101010101010101010101020201010102020202020201010101025555010255
02010101550202020101010101025555010101010101010102020202020101020255020101010
10101010101010101420101420101020101025555010101010101010102020202020202020202
55020101020201015555020201010101010101010202555502010101010101010202010101010
20201010101010101010101020101010101020201010101020202010142020151010101020201
01024202020202550201010101010101010101015555010102010101010101010255550255550
1024201010202020101010101020202020202020201554a01552900008fa102555501012402020
20202020202020201010101010102020101010101010101020101010101010101010101010102
02020201010101010202020201010101010101010101010101010101010101010102555502010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010102020201010101010101010101010101010101010101020
20101010101020202020101020155010155010201010101010101010101010101010101010101
01010101010101010102555555010101010101020201010101010101010201010101010101020
20202020202020202010101010202010102010101010101010102020101010201010202020201
01010101010101010101010101010102010102020202020201010101010101010201010102010
10101010101010201010101010101010102010101010101010142010101021d00008f920101010
10201010101010101010102020202010101010202020201010101010102020101010201010101
01010101550202020201010102020101020202020101010101010101010101010102550202020
10101010202020101020201010202020201010101010101010202020101020201010101010201
01010101010101010101010101010102020101010101010101010202010155020202010101010
10202020101010255010101020201010102010201010201020101010101010101010101010101
02020101010101010101020201010101010101010102020202020101010101010101010101010
10101010101010101010101020101010101010201010101010101010102020202020201010102
01010201020101010101020201010101010101010101010101010101010201010202020202010
101015501010102010101010102420101010101010101020101010101010201010142421e0000
a76a5501015501010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
1010101010102010101020201014201425501024b010101010101010101010101010101010101
01010101010101010101010101015501015501010102025501015501010101010101010101014
20142420101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10201320000ac6a550101020101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101014201014201010101010101010102420101010101010101010101010101
0101010101010101010101010101010101010102015555024b420101025501010101020101010
10101010101010101015542010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
101010101010201320000a26a0101020201010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010142010102010142554202020101015101010101010101010
10101010101010101010101010101010101010101010101010101550101010202015555010101
42020101010101010101020101424201010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010201320000886a01010201010201010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010155550255020101010142550101010101
01010101010101010101010101010101010101010101010101010101010101010142425502550
1010101010202010101010101010101010201550101424b010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010

15

1010101010101010101010101010101010201320000996a010102010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010142010102010155554201014
24201010101010101010101010101010101010101010101010101010101010101010101020201
01010101014b01010201010102010101010101010102550101025502010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
010101010101010101010101010101010101010101010201320000996a0101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101420101
5501424b010155010201010101010101010101010101010101010101010101010101010101010
10101015502010251550101010255550101420101010101010101010155425501012401010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010201320000c06a010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010201
55020155510151010142010201010101010101010101010101010101010101010101010101010
10101010101010155010101420201020151010101020101010101010101010101014b01012401
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101020132000088
6a020101010201010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
101010142015501798e3235746901550101550101010101010101010101010101010101010101
01010101010101010101010101010155420101a93915049f4a0155010201010101010101015501
0155ae28ae0101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010102
01320000b40302010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10102014b01010101550142020192fad587660151014b010101240142010102010201015101240
101010151014c01015101020101014201015501014b4292cdccf9a3f9e254020102010242010155
014b0101514bd7c5c5640201420101510101010101420101554b55010155020101550142015501
014b014b010102012401020101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
101010201350000b4b70101010201550101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101420151014a010202424201012401a5aa5101550201014b0201010151014b010255550
101020101245501010101554c01020201014c01790101014c010134d75e5101796f28024201010
1015101024b01014b012462412a17010251014c010142555501014b02420101550101010179010
10155010102010101014201020101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
010101010101010201350000c8b701010102025501010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
010101010101010101010101010101020101024b014a8d7f015501014b0101014b0142014a0101
0201014b0101016e0101550151550101020201244201790101420101555571614c01014b012a58
0155550242010201422402010102010155a69f4201014201424201550101020124015501424202
0101020155010101240101240155014c0155020101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101020135000096030202010101010101010101010101010101010101010

10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
101010101010101010101015542014b2edfa3900e6301014224edca9ea0165f014b426ab4a21924
01c2111514940155267f1d522a96820174889c52280c10258b18830f602510103f017497a8d9b0b
aac5901554255014041837fa3095a01510101519cc8550101013d081e0a9201555eab0c78014b1
d900cb701b8388c85806a0f0b855e62858c305a014b01010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010201350000df03010201010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
1010101010101010101010101015501790cdd1b925381f282420142d8c51ba98a7f51027e84c4f8
84df424aa30007590165bdf4a208bebe314284fbc87b8b00dd82019c00b5515ee9d5a1510efdd8f0
97e29b015501014224edf421032ed0a64b0101550220a50142014ace285a4daa680161cca7405a
90c4f184dc77017dd1a26b551100215963e7ccb3014a0101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
0101010101010101010101010101020135000098b701020101020201010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010155b4fa7201020242adde6c016eedd9425501f91c551400
41557929094c31c565555177cc3e55afc4050166ba28015901d3d94b017dcc475501f69a0101469
e02554b0102420155420167daaf01014b1b004401790101f800ae014251386e0168cd8655c0a201
4a45c9a07e017d146b01f119010248e3600142d6ec0101014b0101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
010101010101010101010101010101010201350000e2b70102010102020101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
101010101010101010101010101010101015582cc1d0142015501b3c4a40102d3e101015509d90
1c3e102010142445904c5a1010165ec314bb80020015dfa320102248dad01426f004902017aa224
010185c8333b5a015501554201941a4b0151012c00914b01552ec4a40f01017960019b90bd6c01
1610000026060f002220574d464301000000000001000000000000000a000000002000008cbe00
008c3e0100817601021300585555022367518d18010144cd780242a4f54b6e0101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
0101010101010101010101010101010101010101010101010201350000db03015501010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101b6cc7c010202015555d3d0b85
58de10142012ad368fb3c0255010151011dbf60554b0177e123a1c41e5559eb29020124d7990101
6fccc20102f399010162bd275f90764b0102010201b86e01020102a800045501427fec65615d0142
0121fdc507010281a74201d6b1510155014b0142cbb542013bbd50010199e54a01015501010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010201350000830301010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
101010101010101010101010101010101010101010101010101010101adc5af42014c01024297bf
9f01e5a30202011dddb8dc08497c7474230109bf7e5101014b673e1ac5280170eb294b016ef7d60
1557be68e0101b1a201017fd1540139fa5d01420155014201020187e2c4d571014b60c721011ac2
01013d00d7485501027ae2020198ca7453454d860242e720014244cd710101e1a5424201020101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
0101010101010101010101010101010101010101010101010101010101022200000c9201010101
02010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101014be5d15801020202014
baa001e02f19001016eade002a7963f4612bc05422abc6a01014c0f73010300317970ee29012401
ef7f55019f008051017a914b02f297550113cd69420102010142424233a500f2ae01010205d16724
62854224ca7658016c240281a001241b8d3c2c2bebd201428434010144cc87010190e579010142
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101

17

01010101010101010101010101010101010101010101010101010101010101022200006192020
20101020101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
1010101010101010101010101010101010101010101010101010101010101014cd800670101555
5010188cc3da1e4d56d6636d1cf013713015527006a6bb600066d3e5dcd06027ec546014ae9330
1026deb8801702dc58c5d5ffe09014b12fb0151f3ee7342014b5502014b070000a4a1014a0101f79
80101a1a60101f32e02686102018191660182f871019500114271ba9056011c00396b68ecc00201
4b010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010102220000619
20202010102010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
101010101010101010101010101010101010101010101010101010101010101010101a3c403014
b02010201d9e66239da9da0eaccca54014b380a1d8d14427bd6f146f7e9793f9645168f594b3d00d
f22681f847f426c91fb1ac8848d8201015fa73328e5d6b96b4b0101016e4dc4c72001014b016620e
e106b557ee19c013c0e4409130173fccb277c012f0732dcce7e6b12e5161cc6e31c48e2dcf53b010
14b01010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
1010101010101010101010101010101010101010101010101010101010101010101022200000c0
30202010102010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
1010101010101010101010101010101010101010101010101010101010101010101011c002f510
101010166deef792479a14b482d6e01510101af3243010101426c5db78e0101583f3679550177d5
0b687955425f01424b7e4c706d8742550101025c7b59510142014a510101acbd44020155957170
5e685059554c78504a015845af4c4263daac92690101b82d80014201426e5902a994015559b365
01515501550101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010102220
000c62301010101020101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
010101010101010101010101010101010101010101010101010101010101010101010101017ed
19301014b4b0126e6b401010155010101515501240101015101555102010124014b5101015501
0101240439515542015501010142010124010151020102014b01420101510101014ba8ce010102
010823014a010101010101010201240201550102235b42020201010101014c0102244201010202
02014b01010142550101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10102220000b46c010101010201010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
101420131001a01550157d39ab8024b010101554201420101554b020179010101024202020101
424b0142014c0170560201026203010101014202014b55010155014201010101010202010101b5
f86e015539f15f010155014b420124015501014b014b01240189550101240102025102010101010
102014b0101550101510201020101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
010101010102220000936c01010102020101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010179012ef0c8319ef98c5902550124010102012401020101010201010102550101020
14201010101014b015502420155780010015555010201010102014b0102020101014b01020101
510168dba30b8af27a6e4b01024b01015501015101010101014b01010201020101020101010151
02550155012401010101012401550142010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
1010101010101010102220000c86c0101550101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
101010101010101010202550170802c365e24010201014b0101010101010101010101010101010
101010101010101010101010101010101016e4f9b0155010102010101010101010101010101010
1010101014b014a722d8e66876e01425502550101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
101010101010101010101010101310000cf2301015501010101010101010101010101010101010

10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101015501010101555101240101420101020101010101010101010101
01010101010101010101010101010101010101010101017001014b01010101010101010101010
1010101010101014b01010101554c01014a0201020201010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010131000083030101020101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
101010101010101010101010101010101014b01014b4201010201010202010102010101010101
01010101010101010101010101010101010101010101010101010102010155420155010101010
1010101010101010101010101010101515101014b010201010201020101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101220000610301010201010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010102020255554202010155020
10101010101010101010101010101010101010101010101010101010101010101025551020102
01010101010101010101010101010101010101420101010101025502020201015502010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
0101010101010101010101010101010101010101010101010101010101330000b903010102010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101020201010101010101
01014255010101010101010101010101010101010101010101010101010101010101010101010
20101010155015501010101010101010101010101010101550101015555010102010101010102
02010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
101010101010101010101010101010101010101010101010101010101010101010101330000b6
23020102010201010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101550101010
10101020101015555010155010101010101010101010101010101010101010101010101010101
01010101010201025502020101010101010101010101010101010101010101015501010101010
10202010201010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101020
101290000616c02010202020101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
1010101514b5502014b0202020101015501010101010101010101010101010101010101010101
01010101010101010101010155550101550101010101010101010101010101010101010202010
101550102024b0255420101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010201013d00000c6c0201020255010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101550101010101420101010101015555010101010101010101010101010101010101
010101010101010101010101010101424201014b0101010101010101010101010101010101010
10255010142550102010155010142010201010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010

19

101010101010101010201013d0000b4b701020101550101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010201013300009123010201010201010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
101010101010101010101010101010101010101020101220000919b0201010102010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010201010102310000cf23010101015502
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101020101015540000061920
10101015501010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010201010155
400000b9920101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10
The threads of a Java program all execute within the same Java Virtual Machine (JVM) (ignoring any
distributed execution). Consequently, they can all share the same resources. A JVM will typically be
executed as a single operating system process. The term native thread is used to describe a one-toone mapping between a Java thread and the underlying operating system's thread abstraction. Green
threads are threads that are implemented directly by the JVM and consequently they are invisible to
the underlying operating system (comparable to fibers in Windows 2000). On multiprocessor systems,
the only way to get true parallelism is to use native threads. However, the amount of parallelism
obtained will depend on the implementation of the JVM and the underlying operating system. On an N
processor system with native threads, N runnable threads might not simultaneously run on the N
processors, even if all processors are otherwise idle.
Process and thread representation
Although all concurrent programming notations incorporate the concept of a process (or thread), the

way in which processes are represented varies. In a sequential language using an operating system's
API, the address of a procedure or function will often be used to identify (to the operating system) the
sequence of instructions that are to form the executable code of the process. Some concurrent
programming languages take a similar approach and simply provide language-defined modules (or
packages) that provide procedures/functions to create threads. Procedures/functions are again used
to represent the code of the thread. The main problem with this approach is that it is difficult to
determine, by looking at the program source, which are the concurrent activities. Consequently, over
the years there have been attempts to introduce direct language support for threads and their
creation; for example, the fork statement of Mesa and the PAR construct in occam. Arguably, allowing
concurrent activities to be explicitly declared in a program, in the same manner as, say, a procedure,
gives the most visible representation of a thread. This is the approach taken by languages such as
Ada and Modula.
Object-oriented concurrent programs
Integrating concurrent and object-oriented programming has been an active research topic since the
late 1980s. There are now many mechanisms for achieving this integration (see (Briot, Guerraoui and
Lohn, 1998) for a review). The majority of approaches have taken a sequential object-oriented
language and made it concurrent (for example, the various versions of concurrent Eiffel (Karaorman
and Bruno, 1993) (Meyer, 1993)). A few approaches have taken a concurrent language and made it
object-oriented. The most important of this latter class is the Ada 95 language, which is an extension
to the object-based concurrent programming language Ada 83.
Central to any concurrent object-oriented programming language is the relationship between process
representation and objects. Here, the distinction is often between the concept of an active object and
where concurrent execution is created by the use of asynchronous method calls (or via early returns
from method calls). Active objects, by definition, will execute concurrently with other active objects.
They encapsulate a thread. Asynchronous method calls return to the caller before the code in the
method has completed execution. They, therefore, require implicit concurrent activities to complete
the call.
Java adopts the active object model via the use of its Thread class.
Communication and synchronization
Irrespective of how concurrent activities are represented, they need to communicate and synchronize
their executions in order to cooperate effectively. Over the last 30 years, many different approaches
have been explored. They may be broadly classified into those based on shared variables and those
based on message passing (see (Burns and Wellings, 2001) for a detailed examination). One
approach that has maintained its popularity over the years (and which has provided the inspiration for
the Java model) is the monitor, illustrated in Figure 2.2. A monitor encapsulates a shared resource
(usually some shared variables) and provides a procedural/functional interface to that resource. In
essence, it is rather like an object except for the important property that the procedure/function calls
are executed atomically with respect to each other. This means that one procedure/function call
cannot interfere with the execution of another. The way this is achieved, in practice, is by ensuring
that the calls are executed in mutual exclusion. There are several different ways of implementing this,
for example, by having a lock associated with the monitor and requiring that each procedure/function
acquires (sets) the lock before it can continue its execution. An alternative implementation (for a
single processor system only) is to turn off all hardware interrupts and prohibit any scheduling
preemptions.
01000900000344ed00000000476b000000001610000026060f002220574d464301000000000001
00acba00000000090000000020000004e2000004020100010000006c0000000000000000000000
d2010000cb00000000000000000000006a400000161c000020454d4600000100040201000c0000
00010000000000000000000000000000000005000020030000c40100001a010000000000000000
000000000000e3e306006e4e0400460000002c00000020000000454d462b014001001c00000010
0000000210c0db01000000600000006000000046000000dc290000d0290000454d462b22400400
0c000000000000001e4009000c00000000000000244001000c0000000000000030400200100000
00040000000000803f214007000c0000000000000008400005282900001c2900000210c0db0100
00000000000000000000000000000000000001000000ffd8ffe000104a464946000102010048004
80000ffed07ba50686f746f73686f7020332e30003842494d03ed000000000010004800000001000
100480000000100013842494d040d000000000004000000783842494d03f300000000000800000
000000000003842494d040a00000000000100003842494d271000000000000a00010000000000
0000013842494d03f5000000000048002f66660001006c66660006000000000001002f666600010

21

0a1999a0006000000000001003200000001005a00000006000000000001003500000001002d00
0000060000000000013842494d03f80000000000700000ffffffffffffffffffffffffffffffffffffffffffff03e8000000
00ffffffffffffffffffffffffffffffffffffffffffff03e800000000ffffffffffffffffffffffffffffffffffffffffffff03e800000000ffffffffffffffff
ffffffffffffffffffffffffffff03e800003842494d04080000000000100000000100000240000002400000000
03842494d0414000000000004000000023842494d040c00000000062a000000010000007000000
03100000150000040500000060e00180001ffd8ffe000104a46494600010201004800480000ffee0
00e41646f626500648000000001ffdb0084000c08080809080c09090c110b0a0b11150f0c0c0f151
8131315131318110c0c0c0c0c0c110c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c
0c0c010d0b0b0d0e0d100e0e10140e0e0e14140e0e0e0e14110c0c0c0c0c11110c0c0c0c0c0c110
c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0cffc00011080031007003012200
021101031101ffdd00040007ffc4013f000001050101010101010000000000000003000102040506
0708090a0b0100010501010101010100000000000000010002030405060708090a0b100001040
1030204020507060805030c33010002110304211231054151611322718132061491a1b14223241
552c16233347282d14307259253f0e1f163733516a2b283264493546445c2a3743617d255e265f2
b384c3d375e3f3462794a485b495c4d4e4f4a5b5c5d5e5f55666768696a6b6c6d6e6f63747576777
8797a7b7c7d7e7f711000202010204040304050607070605350100021103213112044151617122
130532819114a1b14223c152d1f0332462e1728292435315637334f1250616a2b283072635c2d24
49354a317644555367465e2f2b384c3d375e3f34694a485b495c4d4e4f4a5b5c5d5e5f5566676869
6a6b6c6d6e6f62737475767778797a7b7c7ffda000c03010002110311003f00f5549249252924924
94a49241b2cb45adaeb0d9735ce25d3d8b476feba4a6368f5ef341716d75b43ec6b4c176e2e6b1b
b9bee6b3f46eddfbff00d4dfea48e2621e69acff00647f721b68ca6e4db7eeaff4ad6336c1d361b0cee
fe57aa8bfad7fc1fe29296fb1e27fa0affcc6ff00725f64c5ff00435ff9a3fb9498eb77ecb0375120b67b7
c7e2889290fd9317fd0d7fe68fee54f2594538efc87560b58fdbb18c671bfd3f6eeadcb4908e357248
2f1249203dc049d4e9b9253958f9389954dd6535169a856fdb6d4c6c8b351b9bb1bb5fa595d95fd3
abf3ff48b46fa056df5a8fd1beb12437e8b9a3dc6b7b3fea5ff00e0d49d89538438bdc3b82f7c69afef2
25dfccd9fd53f91253fffd0efebceebef0e77d819b3435cd9b5ce07e9efadff00cd3dadfa0cff0008fd9ea
7d9fd67bf1477e67d676dad753d3ebb2b0d7ee67acd692e98a4879fa3b767fd72abff00c15b4fa0b6
92494e61c9eb5b6c77d8c6e60afd3607b3de4967ac77177b3d36badffb6d09997f591e1ed7e0d749
9218f1635f0363cee35ef67f856319f4ff00c3ff00c0fe93612494e7d193d59f7b196e18aa92e707d86
c6b88689f4ddb587e959f9ffe8bfe17d4fd5ec5ec165ccaf6b0fb5c7738491ab3da356ab0aae557ead
d5d715fd173a6c66fe0b07b7dccdbf49253118116bec25843dad68616986eddf2e6fe93f3f7fbbfa8a
5f626feed7fe69ffc9a08e9916beddd4fbc35bb4d2368dbbb56b7d4fcedfee521827feeb9ff00ac0ffd2
892935350a6dda1ac1b9b32d041d0f1a977ef20db45563f22db7d577a4746d7658340c6bf6b2ba9e
d6ee44c7abd1b4b7f47ee6ccd6cd8743f9dee7eefa49df4658b5efa2e631af2096beb2f320067d26d
b57eea4a723f68e0b7d29c3ea22cbdce636b26ddc0b46fef7fa7eeaf758cf4deff00e6aeff00469cf51c
70d246167920fb47e9e7feb9eef6fd176fdbeafb16afa5d47fee453e5fa177fef425e9f52ffb914ffdb2ef
fde8494e75b9b8b51b37617513e9bdcc25a2d703b486faacdb77f34eddbd9fc845a5d45cc73ebab2
697565bfcfbac00ee96b99b1f63f7ecfcffcc573d3ea5ff7229ffb65dffbd0a36559bb09b6eadf5b7dce6
b6a2d263dd01e6eb36fbbf90929ffd1f554924925292492494a507d55591ea31af8e370063ef53492
5342ac7c73d47247a4c81553a6d1e37ab5f65c5ff42cff00347f7219d94e697bcc7da18c634f6dcc2f
3b27f79deafb159494c195555c9ad8d64f3b40131f053492494a4924925290effe62cfeabbf22220e5
58d6d4593fa4b41656d1c927c07f27e93ff90929ffd2f55497caa924a7eaa497caa924a7eaa497caa
924a7ea1ea3fd0adf87f159357f363fd7baf9d12494fd1a53b7e8fcd7ce2924a7e90772ef8a89fa3f30
be7149253f4737f82374afe9977f57f885f35a4929ffd93842494d040600000000000700050000000
10100ffee000e41646f626500644000000001ffdb008400040303030303040303040604030406070
504040507080606070606080a0809090909080a0a0c0c0c0c0c0a0c0c0c0c0c0c0c0c0c0c0c0c0c
0c0c0c0c0c0c0c0c010405050807080f0a0a0f140e0e0e14140e0e0e0e14110c0c0c0c0c11110c0c
0c0c0c0c110c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0cffc0001108009901
5e03011100021101031101ffdd0004002cffc401a200000007010101010100000000000000000405
03020601000708090a0b0100020203010101010100000000000000010002030405060708090a0
b1000020103030204020607030402060273010203110400052112314151061361227181143291
a10715b14223c152d1e1331662f0247282f12543345392a2b26373c235442793a3b33617546474c
3d2e2082683090a181984944546a4b456d355281af2e3f3c4d4e4f465758595a5b5c5d5e5f566768
696a6b6c6d6e6f637475767778797a7b7c7d7e7f738485868788898a8b8c8d8e8f8293949596979
8999a9b9c9d9e9f92a3a4a5a6a7a8a9aaabacadaeafa110002020102030505040506040803036d0
100021103042112314105511361220671819132a1b1f014c1d1e1234215526272f1332434438216
925325a263b2c20773d235e2448317549308090a18192636451a2764745537f2a3b3c32829d3e3f
38494a4b4c4d4e4f465758595a5b5c5d5e5f5465666768696a6b6c6d6e6f6475767778797a7b7c7
d7e7f738485868788898a8b8c8d8e8f839495969798999a9b9c9d9e9f92a3a4a5a6a7a8a9aaabac
adaeafaffda000c03010002110311003f00f7f62aec55d8abb15762aec55d8abb15762aec55d8abb1
5762aec55d8abb15762aec55d8abb154bb5cd734ff002f69efa96a4ec21521238a2469679a57d922
8a34059e463b2aa8ae2ac78e9fe71f34159751bd93cada3b72a699606393537565007af75fbc4888
35f82dc13ff2f18aa247e5ef95ca817115dddb8e24cd75a85ecf23328a025a4989ae2ab9ff002fbca5
27dbb291be77575ff5571558bf973e4e45089a7b8400a85173754a1ea3fbdc5570fcbbf280208b070
400a0fd6aeba2f41fdef6ae2ad8fcbcf28af4b171df6babaf6ff8b7db1568fe5df9419fd4362e5c8e25be

b5755a56b4fef7c7155c3f2fbca4adc96ca40c7a9175755ff93bef8ab63c81e5415a59c83956bfe957
5bd7affbb7db155abf979e5152196c640c050117575b0f0fef7156dbf2fbca6e087b291830e2c0dd5d
6ebe1fdee2ab53f2f3ca31fd8b175f8b9ed75743e2e95fef715541e42f2b0351692d48a7fbd775d3fe4
6e2aa67f2fbc9f180c6c9d563ab026eae805f13fdee2a866f2efe5f8a869a31c77607519b61effbfc55
0ffe1efcb288c69ebdb23025635fd2528351b9007afed8aab7f85ff2f6307e2895403cbfdc84e0006a4
d7f7fef8aadff000dfe5c8a7ef61040207fb919ba0d8ffbbf15555f2b7908a8e250a53e1a5fcf4e27c3f7
d8aa221f22793e4559e0b5674755e1225ddcb0641b8a112ee37c556cde44b04e1268fa9ea9a3dc4
7cbd37b5be9a58eadfcd05d34d0b53fca8f15439f306b5e5211279d4c575a292b19f34db2fa11c4c4
000dec04910a96dbd6466847ed885715663cd78f3a8e14af2ed4f1ae2aff00ffd0f7f62aec55d8abb1
5762aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb15619e5b45f34eb53f9d
6e54b58db34b61e598a45202c11b18e7bb01bf6ae1c1546ff0096744e3fde3d556678abb15762aec
55d8abb15762aec55d8abb15762aec55d8aa43e783c7c95e646a569a5df1a78ff00a3be2aeb5f29f
951ada163a169d531a127ea907f28ff002315483ce30f963caf1e8b32f9574dbd1aaeb163a3c95820
88c2b7f2fa5ea8fdd372e248f83e1aff00362a9cae8fe41905e14b0d1d85812b7e4436a7d02abc889
683e0a0dcf2a6d8aa450cfe487f34dff97ee341d221d3ed74eb0d52db56296c629d7529ae615400c
600a1b7aa90edcf9e2aca4794fcabdb43d3ff00e9121ff9a315493f2a5122f2459c5122c714775a924
71a00aaa8ba8dc85000d80006c062accf15592c514f13c3322c90c8a5248dc065656142083b1047
5c55e7d67a1468fa8fe576a52b8f2ecb1c57fa1fa6ec247d316e14dcd8392b4f4e33c61d8d7eab3a2
7da5e58abffd1f7f62aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb15762ae
c55d8aa4be6fbf1a5f9535dd48bfa7f54d3eea70e3a831c2cc0fde31545683a743a3e87a66936f5f42
c2d60b58b975e10c6a82bef418aa618abb15762aec55d8abb15762aec55d8abb15762aec55d8aa
43e776e3e4cf3130eda65e9ff00a777f9e2a9c5a0a5a403c234ff00888c5581fe6d895acbcaa21b7b8
b864f33e8d3482d6096e4a430dc8792471123f144515676a28c55e270695e64d374ef2e6aa741bf9
9fcaba7c36bf98d631594af3df490eb56b3b98d48ff004b6548e7ba1e97a9ce36a0de5552aa6ed05b
797ff30f42bdd17cb37f0fe5dc167a7fd6740934cbb99a37bcd4352963bc5f82421ad65b88e592dfed
450dc7a852368155557d2e0d4571561ff95fff002865affcc5ea7ff751b8c559862aec558df986dd8f9
8bca37b1b9564beb9b7947f343369d73215ff00838636ff00638abfffd2f7f62aec55d8abb15762aec5
5d8abb15762aec55d8abb15762aec55d8abb15762aec55d8ab12fcd2e23f2dbcdc58d146917d527
b7ee1f1565517f7695fe51fab155f8abb15762aec55d8abb15762aec55d8abb15762aec55d8aa47e
73b5babef27f982cac626b8bdb9d36f21b681281a496481d514548152481d7154b61f3b7082157f2
e6bbcb8206ff403b1a0eb4738aae3e7a00d3fc35af1de95163b7fc4f155bfe3deb5f2cebe282bfef07f
47c55bff001d8ad3fc35af7cfea07fe6bc55aff1e802a7cb3af8de9fef013fa9ce2abff2dad2f6cbc9d650
ea16b2d9dd3cd7b39b6b85093225c5ecd3207504d0f07534ae2acaf15762a91ebdff001d4f2c7fdb4
e4ffba6dee2afffd3f7f62aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb1576
2ac37fc61af5e6a5aa59e85e5a6bfb4d2ae8d84d7725ec16dce758a395b8a3063c40900a9c55513c
c1e783f6fc9dc47b6a76c7fe3518aa47e7697f303cc9e52d73cbb65e5248e7d56cae2ca29a6d5205
4469e368c3371463415076c553a8fcc1e7a0ca8de4c0230bf686a96c4d7e5c062ab97cc1e7934e5
e4da6dbd353b63bf87d918aae8b5ff3ab3113793ca2f62ba95b313f45062adc9aff009d053d3f2816f
1aea56cb4fc0e2adc7af79c89a49e512ab4ea351b66dfee18aae3af79bf6a794d8efbff00b90b6e98a
abe95e61d4aeb55fd11ab68efa65c3db3ddc0e6e21b847489d2361fbb35041917a8c5590e2aec55
d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb1548b5e60355f2b8240e5a9ca07bf
f00b8cbe3fc3157ffd4f7f62aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb15
762ac37c85fef7f9d7ff000229bfea0acf156658abb15762aec55d8abb15762aec558f4fff0029cd88ff0
0b54de7fd44dae2ac8715762aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8ab
1ff0030a72d5fca67f935595bfee557e3f8e2afffd5f7f62aec55d8abb15762aec55d8abb15762aec55
d8abb15762aec55d8abb15762ac22c74ff0039683a9f985f4dd374fbfb2d5b513a8dbcd35fcb6b205
7b682128e8b6928a8688ee18ed4c551dfa47f30bfea5fd2bfee2f3f4ffb87e2a80f3179b3ce7e5bd0b5
3f305e7972c24b4d2ede5bc9638b5693d468e042e42d6c40e469b6f8aa34ea7f98d4aa79774935e
80eb138ff00bb71c55b3a9fe615405f2e6965682a4eb130dfb8a7e8fc5569d4ff0031836de5bd2992b
ff579981a57fed9d8ab6daa7e620fb1e5ad30fcf59947fddbce2ad7e94fcc6e2a7fc33a5173f687e999
a83e47f476f8ab69aafe6213fbcf2ce98076e3accac7f1d3c62ade956fe68bcf31a6b1aee9d67a75bd
bd8cb6912dadebdebbc93cd148490d6d0050a22f16ad7156558abb1561163f9817fab58c7a9e8fe4
fd62f74f9cbfd5a75934d8c4888e5398596f518034a8e401f6c555d7ce1e642503790f5950df68fd63
483c7e74bfdfe8c5572f9bf5f35e5e46d6969ff176926bd7c2ff00155a7ce1e63e2a4790f592c48057d
7d22a012413fef7d36eb8aaba79af5a2b57f26eb0adb8e3ea6987bf88bda62aeff156b9c88ff066afc6
95afaba675f0ff007b7155ebe68d61a3463e50d595dbed4664d36abb7722f287e838ab47cd3ad0ff0
0a63f56e84ff79a6f5ec3fdedef8aaeff00146ade986ff08eafea52a63e5a7541f0afd729f8e2ab5bcd3a
c8200f27eaec280d449a68dcf6def462ad7f8ab5aaff00ca1dabd36dfd4d33b8affcb6e2ad379af5a0b
55f26eb0c7f9449a60fd77b8ab93cd7ad37daf26eb087de4d30feabd38aa95d79d354b2b592f6e7c9
fac25bc1199ae183e9ac51154b36c2f772a076fa3155dafead69c3cadae7c5f52fad4b7bd3e3f4bf44
5f49d2bd69db157fffd6f5159fe7a4771796ff005af2a6a767a1c9e6397c9b71ab492d9ba41ab24e6d
620d14533b98a49689ea81c55996bb6f8aafd1ff003c62d5ecb4ed43fc2fa859db6b7a94ba1685ebc
d6664bad52dae6e2de788a4533945896d6599e56f87d343c793f1565530b4fce3d2ef3599fca0ba6

23

dcc7e7ab7d51b46934291900e6b69f5f1722704afd5dadff781e9cf97eefd3f53e1c5501ab7e78dae9
1a719aefcb5a945aedb584daaea5e5d98c31ea10db43712dba88d03b09a498c123dba21fdea2d79
2f2505562ff9d5f9aba8dc7e57f9a355f201bfb397437d296e75c8992d5ede7be92d66684c5283212
b05ca7ac38a943271157470aab2cbff00cf0d274eb9d4eda6d22e98e91e6cd3bc9576caf091f59d59
6dda0b85ab0ac63eb29cc7db5f8be16c5556dbf3867be1afcd61e4dd66eacbcbba85d68d7b3c5f54
90b5fdacb0c6aa91a4ece637130732f1e1146aed271e38ab1bf317e67ff89a3f296a5e57bfb8b1169f
9816fe55d6e2b7951edee54248654e69512c4e0c6eac38fbe2acf7cfde62b4d0756f2441787524fd3
1aec7a75b369d2c51c0d7125adc3aa5e2b9e4f095466e282bea225715631a5fe7de9fa8eb561a54
be5cd46ce0d43cc1a9793e1be9a4b431fe98d2e39a468cac733bf0710385900e21a80e2a97f95ffe7
2046ade50d135ad5b4316be62f309d567d334486ee221ecb48b93049219e4e2aa4128801dde46f8
470fb2aa71a6fe76c5afea5a5693e5cf28eb37d7faae8f6de6058a716b6060b3b8bafaa48261733a3
2c90b83cd38fc417f75cf15483f2ffcede639b4b87cefe61b3d527bcd6354d4f475b54bd8a4d1a086d
6faee97330202daa4115a887d4afef9d97e17791485592e99f9d5a5f98b43b3d5fca5a2dfeb97373a
436bf2e976fe925cc76892cb0041c9f8c92c92c32c71223112142792af12555d77f9d5a25beb10699
16977f7111bdb1d2f509123513d9ddea71472c625b627d5e3109a3170e07ee4b1e5f61f8aaf4dc55
d8ab12b7f346bda9ea1acda68da2413dbe8f7874f79ee6f8dbb492ac10ce4845b7968b4980af2edd
315460d47ce5df41b3fa35263ff006298aa49e71b4f3c799fca9adf9720d1ac6de6d56cae2ca2b87d4
9caa34f13206602cc9a026a698aa76ba879c4280742b3a814ff008e937fd9262ad1d47ce95db40b2
e34ebfa4deb5af87d53c3156c6a3e72efa0d9d3b7fb926ffb24c55bfd23e70ffab159ff00dc49bfec971
56bf48f9c6bff001c1b3a77ff00724dff006498ab6751f38ffd586ccffdbc9bfec97156f4fd7355975a5d1
756d323b2925b592f209a0bafacab2c32471b2b0314454fef148ebdf154ff0015762ac37f2a7ff25f68
7ff18a4a57fe333e2accb15762aec55d8abb154068face9bafe9f1eaba44ff0059b099a448e60ac956
864689c51c29d9d5874c551cacaea1908653b8237071540699ade95accba843a65cadc49a55d36
9fa82a861e95d22248d19e405485910edb7c58aa618abb15762aec5529f34d7fc33ad71fb5f50baa
7cfd16c5586f982bfe0df2a50f4825aef4ff00a505f7df8abfffd7f457e5ff00e5f6b1aacdaf1f323dd5868
d6fe76d4bccba66933da7a2d3c82ecdc595c34c5aad172e32fa6155b9aaf26e3f062a9fd9fe495a5bf
93f4bf2ccfae5c49a8681ae4be67d0b5a8a18e09edefe6b99ae9c3460b2c91335c4d1ba1a7281f872
e5f1e2aa5aafe47c5a8df47e6bb6f315d69df9931ea8bad0f33dbdbc04175b31a7fd59ad5c329b536
e387a45f972264f53962a8fbdfca9d48f996c7ce1a379cb52d37cc42c8e95af5c98adae63d4ad3d67
b84e70ba08e29217924fabba2d234764e0ea715493ccdff38fe9af5b79a349b3f36ea361e5df389b1
9f5cb078e1bc91aff004f1027d6629a51546992da31382ac1d9798e38aaed67f2060d5b5ad53515f3
3dedb69faaebda4f9b6e34f482d9e9ab68c2055612b2d7d3916dd39474f85aac0fece2a8c6fc98bb9
3cb7e6cf2fc9e68991bccdaf7f8992ee0b48e336d73f5886e0c0f1b3bacf0318111e37fb685d58fc5b2
a864fc8b96023eafe679420f36c3e782b2594047d76281627847a663a44c472fe64144076a95597f
9f3c8d71e73bbf2add43aafe8dff000beb116ba89f565b8fac4b045242b1b1674e2a5667ad3e2af1f0
dd561965f90f2dadde9778fe657924d2fce17de79502ca340f73a92ca92db9a4a691813c9c5bed7d
9ebc71553d2bf2067f2f43e5f93cb9e70bcb0d63cab3ea8ba2dfb5a5bccbfa2f5a9feb171657311a09
80902324954656453fcdc95655a5fe5c5fe99e7a8fcecde629afa64d14e8525bde5ba3bc9cae5aecc
ed2ab2907d56348d556358ff76a052b8aa4167f927a8dae8fe5cd31bcdb2b49e5ad6af35db675b18
45bdc7e916b87962b8b777747e0d72ed049f6a16e2d4665ae2a84f2efe425ff00943f434de58f3bdfd
85f6996971a45dce6d2d255bcd2e6bc96f628de365e2b340f349e9ce9fcedca32bf0e2ac8ac3f2b2f3
46f31ea7a9e89e6bd42cfcbdae496f77ace8656395a5bdb6823b769a2bb6fdec4674863fac539191
833ab233138abd1f15762ac43c9029a979d3fedbeff00f74fb2c5597e2aec55d8abb15762aec55d8a
bb1563d3ff00ca7363ff006c9bcffa89b5c5590e2aec55877e54ff00e4bed0ff00e30bff00c9e7c55955f
3dd4765732594625bd589dade263c55e50a4a2927a02682b8abe58bad53ccfa879560d46d3cd5e
63facdc5a6a577736f1457fa7496baa5ae89248d6a4ccceee45d468e5138c4243e9c5f0c8c98ab27
b6f395cdde9b7da86b379e6083ccb04d6f06ab630a5d45a68b3bcb9b2faadc738e13c2268fedb5b0f
57f7b741bec868d5635a4eb3e71d4efb4ebcb4f34eba7cc70c7e5d373a6b19cdaa5acf697116a92c
b66f1aeebe9990fa87989e34e0c0c9f1aa9be99e68f335ac9631ead2ea96e2636b046f673ea1a9d9
dcdcd8ebb6eb713db4bc0c9e8496d23332cbba44cf1bf258b962aac7cc97b6bae79774cb0b9d522
8ee750963ba8d12e858c96b7dac6a70c850451d3d4de2f5249587a68d6ed0ff00785c2ac77cbde60
f395b698b6ba35feb36f77a1796a097cbda30b1bdb84bf5fd0acb70cd34cc10c90df07a87569bd48a
18a3f824e255661a6dd2a7e5bfe6e5e795aff56b72d7f3dee8faa15b94bf7274bb131bc2f731977ac8
853ecb774c552f97fc55a76b3af68d6fe6fd5a1bcd1835a69b6fa9c57d776f75a75cad9cb6d77777c8
4204f57d485a6893eb112cb2f2aac7f0aaab1eb5e7bd5563f4a3d634df3073b38ecf4c37134d1b68b
3695309e4e41512475b90e44ffded63b56f87d4e0caa4ba2eafe6ff00315f69f1c1ae798627622e628
03dcdaa5cdddbf9734fb811334f17f76d7a9287552a8d234c9fb4cb8aa68de63bdd46d7cb72699e6
4f3269d69ad2b4935d5c69f7d72d06bf02590365c290b0f5089cf09795a7a8655ecaa157bef99b7f2
d6b1dab6373b1edfb96c5587ebe8dfe10f2b4743cfd09542f7afe81bedb157ffd0f7f62aec55d8abb15
762aec55d8abb15762aec55d8abb15762aec55d8abb15762ac023d33f31743d635f9742b5d16fb4
bd5aff00f48dbbdf5e5d5b4e85ad6080a32456932ec612410fd0e2a8afae7e6ed3fe38de5caffdb56fb
c7fed9d8aa5daff00993f35bcbfa1ea3aecfa0f97e7874db696ee5862d56f79bac085c85ae9c05481b
57154c56fbf1610000026060f002220574d46430100000000000100000000000000090000000020
000004c200000402010036880c345f2eb29008ff0072b7c3a8ff00b671c55a379f9ba48a68be5c515
dc9d56f8edff70e18ab7f5bfcdca9ae8fe5ce3b53fdca5f57dffe95f8abbebbf9b9bffb85f2efb7fb96beff

00bc6e2ae17bf9b95df45f2e11ff006d6be1ff0076dc55c6f7f373f6744f2e7d3ab5f7fde371557d0ecfc
e973e62fd31e68b5d2eca0b7b296d2de3d36eee2f1dde79639097f5adadc28022da9cab5c559762
aec55877e55907f2ff0043a7fbe5ff00e4ebe2acc715762aec5526b0f2dd9e9de60d5bcc70cf70d79a
ca5b25dc12481add459ab246634a0e268c791afc58aa738abb15762aec55d8abb15762aec5529f3
4d479635aa75fa85d53fe44b62ac33cc25bfc1de5322bfdccb53ff82fdfe2afffd1f7f62aec55d8abb157
62aec55d8abb15762aec55d8abb15762aec55d8abb15762ac4a0f30f99b55d4759b5d174db036ba
3df7e8f696f2f268e491c5bc370cc163b69028fdf711f11e98aa28dc79f796da7691c76eb7d755ebbff
00c79f862a95f99f4ff3ef983cbbab684967a45b9d4ece7b359daf6e5f819e364e5c45a0ad2b5a5715
4cd26f3e22aa9d3b483c4015fafdd0e83fe60f1573dc79ff008feef4dd1f97f957f754fc2cb1572dc79fb
7e7a6e8fd76e3a85d74ff00a42c5577d63cf5ff0056dd26bdff00d3ee7fec8b1570b8f3dd4f2d3748a5
76a5fdcf4ffa42c55bfac79eabb69ba4d2bff2df73d3fe90f156f4ed635c3ae2e8bad595ac0d35a4979
0cd677325c0a432471b2b09208a95f5010457156418abb1579d79620fcc6f2c68569a10f2fe99782c
b9a2dd0d5a48448a64660dc0d8b71a83d2a7154dbf4c7e647fd4aba67fdc6e4ffbc7e2ad9d5ff31e9
b79574cafbeb527fde3f156bf4c7e64577f2ae9b4f1fd3727fde3f156ff004bfe63ff00d4aba6ff00dc6a4
ffbc7e2ad0d63f320f5f2ae9a3fedf5274ffb87e2adfe97fcc6ede56d37fee3527fde3f1570d5ff0031bbf
9574d1ff6fa93fef1f8abbf4bfe637fd4ada6ff00dc6a4ffbc7e2aefd2ff98dff0052b69bff0071a93fef1f8a
b8eaff0098ddbcada6ff00dc6a4ffbc7e2aefd2ff98fdfcaba6fb7fb9a93fef1f8ab7fa5ff0031bfea56d37f
ee3527fde3f15416ad77f993a8e977da7279634c47bbb7960591b5990aa9950a0247e8fe82b8aaa6
bda45c7e86f2c685c93eb9ca4b20f53e9fabfa16f62ad695a57db157ffd2f7f62aec55d8abb15762aec
55d8abb15762aec55d8abb15762aec55d8abb15762ac43c91ff001d1f3a7fdb7dff00ee9f658ab2fc5
5d8abb15762aec55d8abb15762ac7673ff3bdd80ec749bd3f75cdae2ac8b15762aec55d8abb15762
aec55d8abb15762aec55d8abb15762aec55d8ab1ff3172fd2fe53e3d3f4acbcbe5fa2afff008e2aff00f
fd3f7f62aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb15762ac222d07cf1a
46a9ae5c68377a53d86af7dfa4512fa1b93346cd6d040c84c522a91586a0d3be2a8809f9a407c53e
80c7da1bd5dbfe469c552cf346b1f999e5bf2eeabe616fd053c5a5da4f78f6fc2f14b8810bf10dccd2b
4f0c553255fcd12397afa01068547a37a3a8effbdc55be1f9a5c69eb681cfb9f4af69f77a9fc715770fc
d20b4f5b402de3e95e81f77a87156f8fe68d3fbcd02bff0018ef7fe6bc556f1fcd3ff7ef97ff00e45deffcd
78aaf2bf99fda4d07dfe0bcff009af155fa2e95e6d6d7bf4cf99a7d35961b492d2da2d3639d49334b1c
8cce6676e9e980001df156558abb15762aec55d8abb15762aec55d8abb15762aec55d8abb15762
aec5522d7c81aaf9581efaa4a07fdc32fb157fffd4f7f62aec55d8abb15762aec55d8abb15762aec55d
8abb15762aec55d8abb15762aec55d8ab11fcd4207e5a79b8b0a8fd117d5ff910f8ab2c8ffbb5f90fd
58aaec55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb15762
aec55d8ab1ef3182758f28902a06ad293ec3f44ea03157fffd5f7f62aec55d8abb15762aec55d8abb1
5762aec55d8abb15762aec55d8abb15762aec55d8ab13fcd0207e5c79b0b2861fa22f7e13d0fee1f
6c559544291a03d946df462abb15762aec55d8abb15762aec55d8abb15762aec55d8abb15762ae
c55d8abb15762aec55d8abb15762ac7bcc4dc758f288fe6d5a51ff72abf3fc3157fffd6f7f62aec55d8a
bb15762aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8ab10fcd5affcab4f3753af
e88bda57fe30362acb97ecafc862ade2aec55d8abb15762aec55d8abb15762aec55d8abb15762ae
c55d8abb15762aec55d8abb15762aec558df99813ad7934834e3ac4c48f1ff70fa88a7e38abffd7f7f
62aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8ab1cfcc0b2
6d47c8be65b14fb771a5de46bf3303d3154f2cae22bbb3b7ba81c490cf124b1ba9a865750c083ee0
e2aaf8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb15762aec5
5d8abb15633e659947983c9b6e2a647d52e25e2013f047a55f2927c002ea3e9c55ffd0f7f62aec55d
8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8aad9238e68de29543
c52295753b82ac2841c5589f91269f4eb6b8f256a057f4879738c16cc01513e94f516530049ad235f
4643fefe8a4edc71565d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55
d8abb15762aec55d8abb156136fab5aea5e66bbf30dd4821f2fe864687a75d391e9cfa8de4f1c570c
bb5689208ad95ba73f5bb7c58abfffd1f7f62aec55d8abb15762aec55d8abb15762aec55d8abb1576
2aec55d8abb15762aec55d8abb15487cc5e5bfd30f6ba969f74da7798b4e25b4fd410735a3d39c33
475025864a51d09afedc6c922ab8552d8fcf96da64bf50f3b5b9f2f5eaba4297b3726d2ae5a4af1305
d95082b4feee6f4e453fb27662ab2ab5bcb4bd884d67711dc42dbac90bac8a47b152462aad8abb1
5762aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb154a758f33f973cbf0b4f
adeab6b611a8affa44c88c7b51549a926bb003154827bcd77ced5b2d252eb42f2c3371bbd62657b
5d42ea353ba59c4e03c48e363712717e35f452a56655591fe80d17f427f873ea30fe82f43ea9f50e2
3d1f429c78d3e58abfffd2f7f62aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8ab
b15762aec55d8abb15762a84d53fe39b77ff185ff00e227157e7c5fff00c76352ff0098d3fa9b15564ff
7813fd66ff89ae2aa16bfdfdc7fc6193fe24f8aa9cdff001ce8bfe6224ff89e2abee7fde4b8ff003f0c550
e9d1fe56bfa9315518bed7fcf33ff0010c559445f627f99fd471540cffeefff0053fe367c55905c7fc7224f
f8c29fa8e2a952ff007507cbfe375c555350fb7ff3ccff00c9c38aa063ff007aa5f9affc49f1556d27fbe3f
293f8e2a95eaffdf7fcf26fe38aa8bfdbff0062bfad715462ff007117faebff0011c555b44ff79cff00ab71f
ace2aadff001e571ff3dbfe227157a1ff00ce367fe4c0bcff008c2bff002697157d818abb157fffd90008
40010824000000180000000210c0db01000000030000000000000000000000000000001b400000
40000000340000000100000002000000000000bf000000bf0000af4300001943030000000000008

25

000000080fe7fe9430000008000000080ffff4b432100000008000000620000000c00000001000000
150000000c00000004000000150000000c0000000400000051000000c4d6000000000000000000
00d2010000cb000000000000000000000000000000000000005e01000099000000500000001404
00006404000060d20000000000002000cc00d3010000cc000000280000005e0100009900000001
00080000000000000000000000000000000000fb0000000000000000000000ffffff00fcfcfc00fefefe
00fdfdfd00fafafa00f3f3f300cdcdcd00c7c7c700cbcbcb00b3b3b300aeaeae00bfbfbf00c6c6c600c5c
5c500c2c2c200bbbbbb00b8b8b800b5b5b500b4b4b400a1a1a100ababab00bababa00b2b2b200b
cbcbc00adadad00c3c3c300bdbdbd00a8a8a800b9b9b900b6b6b600bebebe00c0c0c000c4c4c400
a9a9a900c8c8c800acacac00cacaca00c9c9c900b7b7b700b0b0b000aaaaaa00c1c1c100e0e0e00
0f4f4f400f9f9f900f8f8f800cecece008585850064646400818181008989890098989800a3a3a300a
2a2a200a7a7a700a6a6a600a4a4a4009d9d9d009f9f9f00a5a5a5009e9e9e00a0a0a000afafaf009
b9b9b00969696006a6a6a0086868600f5f5f5007e7e7e00dadada00f6f6f600fbfbfb00d4d4d4008d8
d8d0066666600e9e9e9006f6f6f00e5e5e5008b8b8b007f7f7f00e7e7e7009999990075757500f7f7f
700929292005a5a5a00dfdfdf007a7a7a005d5d5d00efefef0087878700e6e6e600d2d2d200cccccc
00d0d0d000d8d8d800d6d6d600d5d5d50057575700eeeeee00959595008e8e8e009a9a9a009c9c
9c009393930097979700747474007d7d7d0061616100ededed00f1f1f1008080800063636300dcd
cdc00eaeaea007878780069696900e8e8e80076767600e2e2e20072727200838383005e5e5e004
8484800dddddd007070700053535300ececec003b3b3b007b7b7b005c5c5c00f0f0f0005b5b5b004
6464600d7d7d70084848400e4e4e4005555550049494900dbdbdb00ebebeb006e6e6e00909090
0059595900b1b1b1004d4d4d0050505000cfcfcf00585858003c3c3c00343434004c4c4c003f3f3f0
0d3d3d3007373730035353500777777004a4a4a00676767004f4f4f0045454500525252002e2e2e
007979790088888800545454006d6d6d0071717100181818008c8c8c00f2f2f20065656500e1e1e
10005050500d9d9d9001f1f1f008282820014141400d1d1d100e3e3e300606060008f8f8f005f5f5f0
07c7c7c00919191002c2c2c00949494008a8a8a006b6b6b006c6c6c0068686800dedede0051515
10056565600626262001e1e1e0039393900222222003e3e3e0037373700101010004242420033
3333001d1d1d00161616004b4b4b000c0c0c000202020036363600111111001212120044444400
252525002d2d2d00404040002626260024242400060606003a3a3a00010101000404040038383
8001a1a1a001c1c1c004e4e4e0030303000191919000a0a0a00282828002b2b2b003d3d3d000f0f
0f0023232300323232001b1b1b000d0d0d00030303002a2a2a0031313100070707000808080027
27270009090900434343004141410017171700212121000b0b0b002f2f2f0047474700010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
101010101010101010103010103010105603b9b6da7b8bda89d794d6c5b5870799da4bd749f794
5437977ac825b584dbf7ea49d9b5882b84d9fbf709fbd74584b9dbf79bdbebd8ea4be7a6cb832333
05b457a58327e504582a85055694a34695b77a445a55b82305830aa43b96c8288b8587a9d82a77
0b86cb1a4a8a482827a8fa5327070a8bd8e9b4b7974a87ebe77a79b7ea4774550796b828ec3587
0a4888f6c506b824388705ba77ea490bd8f08440101010101010101010101010101010000010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
010101050101020148020101010101734f83303920576f2d040101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
1010101010101010101010101010101012d47780915bc9fa794010104010401030403030101030
00001010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
1010101010101010104040102010104480109bd703a4901030101010301010301010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
1010101010101010101010101010101010101010101030101010201c0114fac0e0102030101010
10101010100000101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
1010101010101010101010101050103010101020101296d290201010101040204010101040101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010

10101010101010101010101010101010101010101010101010101010201012e010144011aa73e
5a010403010401040401000001010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010302010301ad308f4c04010501010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010202
01010448529f9a0301010501010101000001010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
101010101010101010101010101010101010101010101480101010403944d0f040103010401010
10303010104010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
348010104012d0301014931200301040301010300000101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101050404237fad0103010
30101484801040301010104020101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101480101030104010201030105015190112d01014848010000010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101020103019185
ad010101480101470101010302040101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
010101010101010101480502010201044801010401012b421b470103030100000101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
148015f45af01480401014802012d0403010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101040101030105010401010401010101abac5e0501010500000101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010104020301
0101010401012d756001010301010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101517589010
40400000101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10103010101040101010301411401010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101

27

01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
0101394a020101000001010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
010101010101010401010403010101014eac640101030101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
0101010101010101421e030500000101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
1010101010101010101010101010101010101010101011610000026060f002220574d464301000
00000000100000000000000090000000020000004a20000040201000101010101010101010101
01010101010101010101010101010101010301020401010101019d10030304010401010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010105010d9b540100000101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
101010101010101010101010101010101010101010101010102010104010125922c02040101040
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
1010101010101010101010101010101010101010101010101b662480000010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101030101040103341801
01480101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
010101010101010101010101010101010101010101010101010101012d010db10100000101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010103010301040
10176792e012d0305010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
1010101010101010101010101010101010101010101010101010101010101010104014801b180
00000101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010301020105259b012d0101010148010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
1010101360f0000010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
0101010101030101030102010b404804010104010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010

10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
101010101010301020c8f000001010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101030101010104013509010301040101030101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
1010101010101010101480401012f7900000101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010304b97301040104010148010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101016f8e0000010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
0101010101010101010101010101010101010101010301010301546c6402030104010303010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
0101010101010101010101010101010101010101010448016b000001010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
010101010101010101010101010101010101010101010101010103010103016f8e060101030201
04010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
0101010101010101010101010101010101010101010101010103010448a800000101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010103010180312c
01010201010401010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
010101010101010101010101010101010101010101010101010101010101020101029b0000010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010301010
2010176b544040303010103020101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101020503
019d0000010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010301014801015cb70203010101020101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010

29

10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01040103040174000001010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
010101010101010101010104015cb7050101030101030101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101030401036b00000101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
0101010101010101010101010301030103015cb705010103010103010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101030103770000010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010301040101015c590501010301010301010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
0101010101010101010101010101010103010101019d000001010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010103010101b49005010103010103010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010301010103a80000010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
1010101010101010101010101010101010101010101010101010101010103010101b490050101
03010103010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
0101010101010101010101010101010101010101010101010101010101010104bf000001010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101030104010101
5c5905010103010103010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101033100
00010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010103
01030103015cb70501010301010301010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101

01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
0101019f0000010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010104015cb70501010301010301010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
101010301010301be000001010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
1010101010101010101010101014851312d010104010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
010101010101010101010103016b0000010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
010101010101010101010101010101010104010173c35401010301010103010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101030153000001010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
010101010101010101010101010101010101010301014801018d7b44010101010101030101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
010101010101010101011610000026060f002220574d4643010000000000010000000000000009
00000000200000048200000402010001010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010374000001010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
101010101010101010101010101010101010101010101010101010101010401010401014cb72c0
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101038200000101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010103030103
010380752c01010301010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010103
45000001010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
0101010103010184a82c0101030303010101010101010101010101010101010101010101010101

31

01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010301043200000101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
0101010101010101010401016e750601010101030101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010303010488000001010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
101010101010101010101010401010401015156ab030101010301030101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010103030104300000010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010103010101015190540103010103010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101030102018800000101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
1010101010101010101010101010101010101010101010103010101035c9054010301010301010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010301010401450000010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010103010103045185540103
01010301010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010103010103037400000101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101030101010
34cb75401030101030101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010103770
00001010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
103010101018d6d54010301010301010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010

10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
010301019d0000010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010103010101018d6d540103010103010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010201017400000101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
1010101010101010101010103010101014c5954010301010301010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
101010101010101010101010401019d0000010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010103010301035156540103010103010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010104010101015300000101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
010101010101010104010101010101010303010103010101010101767b4701030401030301010
10301010101010101010101010101010101010101010101010101010101010101030301010103
01020401480104010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010301010488000001010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
101010101010101010101010503010302010103010103030103040103010104014c59060103030
10403010101030403030101030101010103040403030303030303030101010101010101010101
01010101010301010101010102010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101030101034300000101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010501010101010102010101010103030301020101020173
ac2d01010101030403030101010101010301010103030101010101010101010101010101010101
010101010101030403030101032e0104010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010103010101a50000
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
1010101010101010101010101010101010101010103010a1d271127911e13131e13913f3f0a172
711912868f513123f9127120a3f2828283f0b0b28170a0a0a17280b241524190b0b0b0b19241515

33

1515151515153f2828280b190b0b1929370b720103030101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010301010
1bc000001010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
101010101010101010101010101010101010101010101010187a2556966aab64343bcb669bb653
43d3a6741b6553b4f8fb6a5aa5569698f33b66a68406566bca5aa556a526abbb941416a34346a41
41bbbbbbbbbbbbbbbb40686840675267674faa33b8b90503010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
30101014f000001010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
1010101010101010101010101010101010101010101010101010148b342010101010103030101
01010101010103010305010103010203010301010301010101030101040301010101040201010
10101010101010101010101010101010101010303010101017d3b010304010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010103010101aa0000010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
0101010101010101010101010101010101010101010101010101010101010101019a7e0105480
10101010101030303020104020301010404010103010305030101010303030101010101040204
0301010101010101010101010101010101010101010303010103030105014e670303010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101030101014f000001010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
0101010101010101010101010101010101010101010101010101010101010101010101010101b
37901030101010101010301010101030101010201010401010201010301010101010101010103
04030101010101030101010101010101010101010101010101010301010101010101025768030
20101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010301010101bc00000101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
1010101035da80101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101030
401ad690201030101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
0101010101010101010101010101010101010101040104015b000001010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
101010101010101010101010101010101010101010101010101010101010101010
Condition synchronization
While providing mutually exclusive access to a shared resource will facilitate communication, it is not
adequate for all forms of cooperation. Often, one process will not be able to make use of a shared
resource unless another process has performed a particular operation. Consider, for example, a
printer server that cannot print a file until other threads (clients) have told it what to print. A print-list
resource is often used to facilitate communication between the server and the clients. Mutual
exclusion is needed to ensure that the print-list remains consistent when accessed by multiple
threads. However, the server must also wait when the print-list is empty; clients might need to wait
when the list is full. This latter form of synchronization is often called condition synchronization; it is
usually supported in monitors by the introduction of condition variables. For every condition for which

a thread wishes to wait, there is usually an associated condition variable. In the print-list resource
example, two conditions listNotEmpty and listNotFull might be declared. Condition variables
themselves may be considered as objects (or abstract data types) with two available operations:
Wait this operation will unconditionally suspend the execution of the calling thread and
place it on a queue of waiting threads associated with the condition variable. For example,
when the printer server waits on the listNotEmpty condition, it is immediately suspended.
Notify (or Signal) this operation will allow the first thread suspended on the queue
associated with the condition variable to continue its execution. For example, if the printer
server removes an item from the print-list so that the list is now not full, it will call the notify
operation on the listNotFull condition variable, thereby waking up one client thread (if
any are waiting).
A condition variable queue is usually ordered either in a first-in-first-out manner or according to the
priority of the waiting threads. Some monitors also support a third operation called NotifyAll (or
Broadcast). This operation releases all the suspended threads on the queue.
Of course, threads that have been suspended and have now been released must re-acquire the
monitor lock. This is done invisibly to the programmer, and, again, the actual details vary from one
implementation of a monitor to another.
Important note It is important to realize that the Notify and NotifyAll operations have no
effect if there are no suspended threads. Hence, care must be taken to avoid
race conditions. These are situations where the correctness of a concurrent
program is dependent on the order of execution of its threads.

Consider the case of an empty print-list and the situation when the printer server and a printer client
are both about to access the list. The server looks to see if the list is empty, it is, however, just before
it issues a wait operation on the condition listNotEmpty, the client executes. It now places an item
on the list, the list is no longer empty so it calls the notify operation on the condition variable
listNotEmpty. Unfortunately, no thread is waiting, so the operation has no effect. The printer server
now waits even though there is an item on the list. A different ordering of executions of the threads
would avoid the problem. Hence the expression race condition, the threads are racing to execute as
fast as possible to avoid awkward interleaving. In this case, the problem can be solved by ensuring
that the list is always accessed under mutual exclusion (that is, inside the monitor). However, many
race conditions are much more subtle than this and are difficult to avoid. In extreme cases, they may
lead to deadlock or starvation.

2.2 Overview of Java Concurrency Model


Java is one of the most interesting recent developments in concurrent object-oriented programming.
As a new language, its creators were able to design a concurrency model within an object-oriented
framework without worrying about backward compatibility issues. The Java model integrates
concurrency into the object-oriented framework by an adaptation of the active object concept. All
descendants of the predefined class Thread have the predefined methods run and start. A thread
is created when its associated object is created. When start is called, the new thread begins it
execution by calling the run method. Subclassing Thread and overriding the run method allows an
application to express active objects. Alternatively, the run method can be passed to a Thread
object at object creation time using the Runnable interface. These two ways of creating threads are
illustrated in Figure 2.3.
010009000003da7301000000a1a3000000001610000026060f002220574d464301000000000001
009e0f000000000d00000000200000cc7d0100cc9d0100010000006c0000000000000000000000
d20100003801000000000000000000006a400000182b000020454d4600000100cc9d01000c0000
00010000000000000000000000000000000005000020030000c40100001a010000000000000000
000000000000e3e306006e4e0400460000002c00000020000000454d462b014001001c00000010
0000000210c0db01000000600000006000000046000000f0540000e4540000454d462b22400400
0c000000000000001e4009000c00000000000000244001000c0000000000000030400200100000
00040000000000803f214007000c00000000000000084000053c540000305400000210c0db0100
00000000000000000000000000000000000001000000ffd8ffe000104a464946000102010048004
80000ffed0b9c50686f746f73686f7020332e30003842494d03ed000000000010004800000001000

35

100480000000100013842494d040d000000000004000000783842494d03f300000000000800000
000000000003842494d040a00000000000100003842494d271000000000000a00010000000000
0000013842494d03f5000000000048002f66660001006c66660006000000000001002f666600010
0a1999a0006000000000001003200000001005a00000006000000000001003500000001002d00
0000060000000000013842494d03f80000000000700000ffffffffffffffffffffffffffffffffffffffffffff03e8000000
00ffffffffffffffffffffffffffffffffffffffffffff03e800000000ffffffffffffffffffffffffffffffffffffffffffff03e800000000ffffffffffffffff
ffffffffffffffffffffffffffff03e800003842494d04080000000000100000000100000240000002400000000
03842494d0414000000000004000000023842494d040c000000000a0b000000010000007000000
04b0000015000006270000009ef00180001ffd8ffe000104a46494600010201004800480000ffee00
0e41646f626500648000000001ffdb0084000c08080809080c09090c110b0a0b11150f0c0c0f1518
131315131318110c0c0c0c0c0c110c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0
c0c010d0b0b0d0e0d100e0e10140e0e0e14140e0e0e0e14110c0c0c0c0c11110c0c0c0c0c0c110c
0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0cffc0001108004b0070030122000
21101031101ffdd00040007ffc4013f0000010501010101010100000000000000030001020405060
708090a0b0100010501010101010100000000000000010002030405060708090a0b1000010401
030204020507060805030c33010002110304211231054151611322718132061491a1b142232415
52c16233347282d14307259253f0e1f163733516a2b283264493546445c2a3743617d255e265f2b
384c3d375e3f3462794a485b495c4d4e4f4a5b5c5d5e5f55666768696a6b6c6d6e6f637475767778
797a7b7c7d7e7f7110002020102040403040506070706053501000211032131120441516171221
30532819114a1b14223c152d1f0332462e1728292435315637334f1250616a2b283072635c2d244
9354a317644555367465e2f2b384c3d375e3f34694a485b495c4d4e4f4a5b5c5d5e5f55666768696
a6b6c6d6e6f62737475767778797a7b7c7ffda000c03010002110311003f00f40c17611c1c575ef71
b5d4d65ee2eb0924b1a77133ee73956b3ed82d7fa56e3bea977a7ea1b838091e9b4fa41bbbdbbb
7a7af2dd4626011983181c5acfa76337547d9f49ef01ae6bbfebe9bf6cc7b9fd4b19c1adadce1556e3
01ceac7a8f6875cfdb66fdb533f47fcefa8929b388ea7d377db5ecf527da2936ed0d86e84bfdce76fde
8d3d37f79df7d89edeb9d22addea65d6dd91bb59fa4ef499c7d2dd67b1459d7ba3bda1e32ebdae7b
aa12625ecdbbebf77f84f7b3d892994f4d98dc7efb11b048762b0825cdf76d24926373b6fd2f77d151
c6ea781965a31af6da6c04b369990dfa5f950f17232373eafb33cd4c2e2dbf7321e4bddfcdb77eef6f
e7fade97f23d4494de49647ec8a3de5d5e538d8e739c4e411f49ceb61a2bb98d637dfb3d9fe0d12b
e998f5969145e766837dc5d23f95bee76fda9299e7575d99f8c2cc7fb4b45571d8430c1dd8feff00d3
39ad50bf0a97d16328c06557398e155aeae9706bc8f658e67a9efd8efcd4ccadb89754cadafa9b5e3
dee0eb9c6ce0e3fd2f7bececa6c675fdc4d96e29001da1ac7804935ed2f0e7b9ded6b6ffa367f84aff7
12534874dea434fb3e13808009c76ee303de5db72366e77f258a2ce93d44336bd98e5c0407b71aa
12619ee7b1d6ff26cf631dfe13fe0fd15a988deae2f71cc7d0ea60ed6d2d7874e91bbd473ff0096ae2
4a71b1f06fded7e4e0e3fa7077575d358749fa3ef75ce6fb55caa8c7aefadd561b71dc641786d6348
3ecfd139ce5750ecfa757f58ff00d4b9253fffd0ed5999f67e9dd3c0cc662938d8e76d949b447b19bb7
8757fbdb3e9221cf8b5b5bfa8324b18f6d471ddbfe831ce735ed73be9eef53e87e8f7ff00c1abb8072
b1f0f1a87d0f9a69aeb781b0fb9ad0d743fd5ff00be2b1f68b3fee3d9ff0043ff004a24a562595dd8ecb
1aef525a017c46ed3e947f2918b41e402ab37307aa686d1607b5bbcb7d9104f8fa9b777efff00e668
9ebd9fe82cff00a1ff00a512533655556d6b6b6358d60dad0d00003f75b1f050c4fe67fb4fff00ab725f
68b3fee3d9ff0043ff004a27c56bdb480f6ed712e3b4c48dce7384eddcdee9292a4924929a97ecfb7
53be367a376eddc44d1333f9aac566c20ef68699d034ee11dbf35883938ceb6d63c06b9a2bb2a7b
1c489166cfce6ffc5a9ce50101b5ff009c7ff2092932485395fbacff0038ff00e450e8bf26ea85818c125
c23713f45ce67ee0fdd494d943b3e9d5fd63ff52e4d393e0cfbcffe4520db9cf697ed01a6749278dbfc
5253ffd1f554967e0baa7e163bec75ceb1f531cf74da6496b493a20df666b729a28ab7e2ba06f73af0
f6b8f7733fd1b7e97fe07fcb494d96e23c666ff5de434fab1b6bd4bf7b3639e2bdfb1acd8cfdff00d1ff0
038aeac565bd49ad69b30fd4b4b3f48e65d6306e1ee6d61afdff9ce7b37faaaed2586961bc5adb768
3635a6d203a3dcd6bbfac929ba92adfabffc2ffe0a898c49c7a892492c064f3c779494952492494a49
0edd9baadcc2ef7fb4804ed30ef7ba154cf6b9f8b757865b8f797326c7d7b8187b7d4f6169f577b773
1bfd7494df5978f8cdcec1acd7936d2d6d9690fc7701bbf48ff6b9db5ffba86e675b37375c3603a63b8
556ef6b7c1c5c7637dbfd456712b0cc5b1993531c43c9736aa5cd6b8171d8ed8e1fa4b3f3ec7b125
221d0dd1af50cc0f305ce6d804b80dbbb6ec77d25670f00e239cefb4df7877e6dcf0f0359f6fb5a8bfa
1f5587d33bcb7dafd9c0fdddf1ec423f671500cc73b5b6b218185bee2e6b7d5e3e8d7f49ef494fffd2e
ff1f2b3eac3c3ab1715b923ecf4b9e7d56b1cd046dfe6dedfdd6fb11bed5d60300382d2edacdce1688
921beb4336eefd138bfd9bbf4bb3f9c44c1ad95e3e3bdb592f7d3531cf111b58259ba4ffc2bfe8ab89
29854e7bab63ac6fa761682f64eeda48f73777e76d53492494a42c6fe8f5ff547e44542adcd66335ef
30d6b25c4f60024a4a920e36557901db416bd9f498e8dc01fa0ef6977d3ff005f7a4fccc5612d75cc0
e01ce23709866967f989299bc80e64bb6cba00fded1dedffbf2a5674ae916e47da9f5b7d6addb8bc3
dc21c4f2e0d786abacba9b090c7b5e5bc869063ee5281e1ca4a73f17a3f48c4b1871aa6d4e9dcc01
c4cfd2880e73bdaddeed8af7ab5413bdb0dd0991a15280ab3729cfacd8da4fa61ce0492d07d8e756
e76dfec24a6c7a95ee0ddc3711204ea4215b6d4ea816dcd68dec6ef0675dcdfd1e9fe93e82593998
989b4e458daf74c4f8080f77f519bfdee4f8d958b94d73f16c6dad63b638b0c80e003b6ff9ae494fffd3
f48c765f486934b8bc56ca9d0e6edfd1eef737f3bf3d18dd91db1dc7fb4dff00c923a4929afebe4ffdc6
77f9ccff00c927f5f27fee3bbfce6ff7a3a492907ad91ff71ddfe737ff002499f91461e2b6dccb598f5b43
5af7d8e0d682618d6fa8fdadfa676ab0a16ff36efa3fdbfa3fda494d7c3c9c020518f915dae7173c35af

697439c6c77b5a7f9684efd81eabcbbec9eaee8b09f4f76e2e33bff3b77aaeff00b7159c4fe619fcd70
7f99fa1c9fa0a8ff847ff0040e4ff005be93be9ff00dfff00e152524ab2fa0633ed355b8943d91eb969ad
85bba0b45df4766edcdfa6b4564bf9c8ff0093f9efcf03fa47f296b24a52a7e8b194bcb5f70a839e4d6
0024cb9ceb36fb3d5d9b8bbff0045ab8827d4f45f1ea6e9747d0df13a6cff0007ff0017bd25247398dd
5e40efaa617545ee607b4bd905ed04480efa1b87e6ee58df59764e3eff00b0f16c7dbb7feeb7f99f4bf
f000659eff47ed35cfecb9f4ad8fe777fd11e1fe0bfee46ff00f83494ff00ffd9003842494d04060000000
000070005000000010100ffee000e41646f626500644000000001ffdb00840004030303030304030
3040604030406070504040507080606070606080a0809090909080a0a0c0c0c0c0c0a0c0c0c0c0
c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c010405050807080f0a0a0f140e0e0e14140e0e0e0e14110
c0c0c0c0c11110c0c0c0c0c0c110c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c
0cffc000110800eb015e03011100021101031101ffdd0004002cffc401a2000000070101010101000
0000000000000040503020601000708090a0b0100020203010101010100000000000000010002
030405060708090a0b10000201030302040206070304020602730102031104000521123141510
61361227181143291a10715b14223c152d1e1331662f0247282f12543345392a2b26373c2354427
93a3b33617546474c3d2e2082683090a181984944546a4b456d355281af2e3f3c4d4e4f46575859
5a5b5c5d5e5f566768696a6b6c6d6e6f637475767778797a7b7c7d7e7f738485868788898a8b8c8
d8e8f82939495969798999a9b9c9d9e9f92a3a4a5a6a7a8a9aaabacadaeafa11000202010203050
5040506040803036d0100021103042112314105511361220671819132a1b1f014c1d1e12342155
26272f1332434438216925325a263b2c20773d235e2448317549308090a18192636451a2764745
537f2a3b3c32829d3e3f38494a4b4c4d4e4f465758595a5b5c5d5e5f5465666768696a6b6c6d6e6f
6475767778797a7b7c7d7e7f738485868788898a8b8c8d8e8f839495969798999a9b9c9d9e9f92a
3a4a5a6a7a8a9aaabacadaeafaffda000c03010002110311003f00f5bf929bcf1e6bf26f97bcd13f99a
3b7b8d6f4cb2d465822d3a131c6f77024ccabc9c9a02d41538aa78da0f9d4d38f9b82ff00dbb6dcff0
0c6d8aadfd01e77e34ff187c55ebfa32dfa7fc162a94eb171a8f975e15f307e6558e94670cd02df5b5
8dab48129c8a7ab22d40a8ad3c715769371a96bb3c96da1fe64d96a73c51acf245676b6370cb13b
b22bb08e46a29646507c55bc3154e0681e74efe6f3ff0070eb6feb8abbf4079d2b53e6f34f0fd1d6dd
3efc550ba75a798758b417da479ea2beb2769112e6dacace688bc4e6370191882559595bc18531
545fe80f39ff00d4dc7fee1d6dfd71577e80f39d3fe52e35ff00b675b75fbf155a3cbfe75aefe702477a6
9b6c3f8e2ad9d03ce67a79bc8ff00b775b1fe38abbf4079d3fea6f6ff00b875b7f5c55aff000ff9d3fea7
027feddb6dfd7155dfa03ce5dbcdedff0070eb6c5509a9e95e76b1d36f6f63f36967b68259914e9d6d
42d1a1615dfa6d8ab27d16ee5bfd1f4fbe9e9ebdcdb4334bc45179c91ab1a0f0a9c551d8abb15762
aec55d8abb15762aec55d8ab01fcd8b682ff004af2fe9f77189ac6f3cc5a4c1776efbc72c2d7039238
e8ca69b83b62a8dff954ff0096b5aff85b4eaf8fa0b8aae3f957f9707af9634e35eb5814f4c55a1f953f9
6e3a79634f1ff003c17154bb5ef22fe50f96f49bad775ed074cb3d26c93d4bbbb92dc148d2a0723c4
134a9c556e93e49fc9ed724bc874cd0b4cb8b9d3a5586fedcdbf09a095d16455923902b2f246565a
afc4bb8c5532ff009551f96c7fe997d3be5f574c55bff9553f96d40bfe16d3683fe5dd2bf7d3154be2fc
befca39f56bad163f2e69cdaad8c105d5cdb9b5dd20ba322c4c095e24318a41f09fd9df156f45f21fe5
1f9834e8b56d1fcbba65ce9f334891cdf540956824689c51d55851d19771db154b6df42fc8cbabb8e
cedf46d2e4927b99ac6da51667eaf35ddb73f5608a6e1e9bc89e9bd5118b7c0dfcad8aa2ecbc9ff93f
aa68765e64d3fcb96377a46a22192d278ac1dd9d6e5d511bd311f302ac0b1651c17e27e2a0e2a9b
7fcaa9fcb6ffa95b4dffa464fe98aac5fcaff00cb1691e15f2ce96d2c6019105bc65943569514a8ad36c
557ff00caaafcb6ff00a95b4dff00a468ff00a62aeff9553f96dff52ae99ff48d1ff4c55474ff0028f963cad
e6fd35fcb9a45ae96f77657cb74d6912c46408f6a54371a5695dab8ab36c55fffd0f65fe50eff00951e
45da9ff3afe95b0ff9828b156678abb157987e7d797a4d6ff2e35b4d2b497d4fcc53476b6f68b6d07a
d74635bd82774520542d23e677a7c3f2c5587f9e74bf3169be7dbaf35f9234ad52d9df4ed05d1b4fb
57482ea56d69e4bf8ee63095761692b33abd29ff19545154298bf3424d2f432b7de66b77d4ee7525
bdba5b6facdd5a5dc17a069dea4123dbaa5bc96dcb9330783971f5d7951b155c9a9fe6eaeadac99b
4dd7ff41c9720de46dc24b816906b12a4e6c9e12a03359bc461581559a253f14972acf8abd3bf297
4bbdd1bc9ed637d6b736927e94d66e228af88372d05d6a773710bb905b778e456dfe2fe6c559ce2
aec55d8abb15762aec55d8aa0f571cb49bf1e36f30ff008438aa1bcaff00f28d68d5ebf51b5ff932b8a
a6b8abb15762aec55d8abb15762aec55d8ab09fcca1fe89e5b6fe5f3268c7efba55fe38ab36c55d8a
bb1560df9cbe5dd63cdbf95be6af2d68107d6759d52c64b6b284c8908695c803e3721569d6a4e2ac
023f20f9ef47b8d525b7b39f57bc97cc3a5798d75c7bd862bfd434e858472e9b72a5e38c3dac45a38
e94b79e1ebc65e7cd54a6c7c81f9a9651d94ef6b76d7fa741a60b355d54344935bf98a7bbb81c5a6
0a6ba7c8222593e31fbac551b69e4afccdd3d6464d3ae2f23bdb678f50b79f55a96907981ae6261c
a7218a59391e99648a45ff4795b8fc38aaed27f2e7cff002dce9979abc17106bf6d65a359c1ad2ea0
8ff576d2756bd9e6695239144ab35a4c8817d36e7c9a393d3c5515a0792bcf96dab690ba8e97711
6870bcb35b25aeab1db1d3ae9758bcbb324c91f2f5a3b8b79e156546627d368645e0dcf155f6ff969
e6c9bc89e51fcb19e05b58fcb3ac69f7d71e64596368a6b4d1ef05e23c31ab7aa269f888dd5954465
a46f51c71e6ab1e5f27ebfe49d074bb33733693a85c2e85a79d1e1be699f50bfb4d720926b8b7449
58f05b56759000bca27fdea708862a9ce9be4dfccfb1d3526bfb09b51d5adef601e6281b5756b7d7a
ce17b91ea5ba305585889a391d663173f4960354456c55997907ca1a8f96fce3e64d4e7d37eada7
6ad61a325a5c1bbfae4aada7dbbc0f048f2132332fc27d43b37f362af48c55d8aa437e48f36e883b1

37

b3d47f07b5c553ec55ffd1f55fe5b6b9e64b5fcb9f275bd9f956e2f2d63d0b4b58ae92eeca25914594
5460af28615f0231564ade66f382d29e48bb6f95fe9ffc6618ab5fe27f3911ff00283dd83bd41bfd3fb7
4e931eb8ab6de67f3805a8f23de336df0fd7f4eefd7fddfdb155a3ccfe72efe46bb1ff0047fa71ff0099f8
ab67ccfe71a903c8f7676ebf5fd3a9f2fefeb8ab47cd1e731ff4c35d9f96a1a77f19862ad7f8a3ce7514f
225e50d2b5d434edabf29ce2aeff14f9cf6ff009d16f3e8d434dffaaf8ab4be69f3a9241f225da802a09
d434edfdb69b155dfe28f3953fe506bcad3a7d7f4effaaf8aaeff001379cb806ff04dd063fb1f5fb0a8ff0
092b4c5572f993cdc7af92ee97a75beb0fe1362ab5bccde7253b7922e9878adfe9f5fc6618abbfc4de
70dff00e748bb143b56ff004fdc78ff007f8aa1354f3379c0e9f78a7c8f79c4c12fc5f5fd3b6f80ff00c5f8
ab23f2b1af963453d2b616a69ff3c57154db15762aec55d8abb15762aec55d8abb1560bf9ab636ba
968da369f7d089ecee3cc1a324f0b0aab2fd7633434f962a8b1f95bf97ea491a05b026953f1f6e9fb5
8ab67f2bfc80cdc9b41b62c3b90c7fe36c5570fcb2f212d78e836c01142006a507fb2c55c7f2cfc8468
1b40b5341c56aa4d0780a9c55bff9567e43a53f40dad3c38b53f5e2ab7fe557fe5fd41ff0f59d54514f
03b03d7be2ad7fcaaffcbe2389f2f5995eb429515fa4e2abbfe558f900104797acc11d291ff6fbe2ab7f
e556fe5e5791f2e5916a52a62a9a62ad0fcacfcba1d3cb763e3fdd0c55c7f2aff2e4952de59d3c94fb0
4c0a4ad45363db156d7f2bbf2f14823cb76351b7f743a62abbfe558fe5eff00d4b5614f0f41698ab7ff0
02ac7f2f7fea5ad3ffe4427f4c55dff002ac7f2fbfea5ad3f6e9fb84fe98aa16d7cabe5bf2f79c7499b42d
2edb4e9a7b3d41667b689636750f6a68481b8aef8ab35c55fffd2f667e5192df953e4526b53e5fd2ba
f5ff78a2c551b27e6179221b96b3975fb24ba42dca2699435125f409f9097f77cba73f83ed62a9d699
a9d86b3a7db6aba5dc25de9b791acf6b7311e51c9138aab29ee08c55178aa0f51d574ed263825d4
ae52da3b9b886ce0690d03dc5cb88e28c7f94ec428c55d16aba6cf76d630dd44f76a5d4c2ac0b562
e3ea01e25392f2a7d9aef8aa3315762aec55d8abb15762aec55d8abb15436a15fa85d53afa3253e7
c4e2a81f2ad7fc2fa257afd42d7fe4ca62a9be2aec55e03a77e6479d5ed5b547bf9f51d3c36ad6dab
0b4d395ce9f359eb8b636650c684912c264f59984de9ac7f58094531baaa5a0fe647e60ea7a7df6a
7aacf7564748d0d6eee6ced348699e5d406a37d6720093c71c8dc628ede5e29c29cbd4e3c1bd3c5
52e9ff00347f3525875192dfd581b4cd3f57b889574c96559eeacb5b8edacd4996089a4f56cdf9958
d22693fbc5e1be2a9dcfe7efcc44d58e886edacad5354d4ececf5b97499efbeb46d2eadbead03c76d
1aa8f560925e320f4964e3c965f81aaaacb2f3af9e60d46df439752beb6f5752d5d4ea179a3cf7fcae
20d60ac161fb8891551ac88689f9283cf9fadc63e38aa7da66b3e7ad5ff293ce3afcd7f747ccde8ebd
168d6d0d9a5bcf6ed6335dc768624f4f93bc91ac2e0b06e468c9b362aa1a1f9cbceb7b7da6c16e6e
6653a86976f15b5cd9b20bcd0ae74f8e4b8bf791a34649567f541dd550c6b1345ca5566559afe62b
71d3f4334aff00cec1a281ed5be887f1c559862aec5543eb969e8cb71f588feaf01759a5e6bc10c668
e19ab41c48f8abd31556565650ca432b0a8237041c55bc556bcb1c7c7d4754e442af220549e8057
be2abb15762aec55d8abb15762aec55d8abb15487502479b74300541b5d42a7b0dedb154fb157ff
d3f667e51907f2a7c8c474ff000fe95ff505162a92dc68fa8a7e710d553439a4f2bc7e589b4e3768b0
7d58de3dea5d0882170e49553bf0e3cf6e58abcd7cbbe52fcc8d274cd07403a7ebd6da4b5b7957f4
a4506a213d296de5bd4d590325d724430b5b72484857e3fbbf8d49c553cb3d13f33adedf533a95b6
b97bab8b95b3bcf4751b64d32e6cbf49ac905cd9462449cb25a7c1323cb68cea1e36691d8498aa5f
61e5ff00cd5bd8f45b4f34e8faa5f5c69f7ba15cd8ddfd7ed85bc5169baa17bcfad462e40790c4892a3
3098c8bc4065910e2ac8b4db2d6e6d23f2e344b094c1e68d175b79bcc84eee2deda3b95d41a422b
f0dc3cc852bf6fd547edb2af68c55d8abb15762aec55d8abb15762aec550f7c01b2b907a189c7fc29
c552ad02f2cec3ca5a35c5edc476d6eb616a1a599d6341fb95eacc40c55bd1bcdfa0f986ee6b5d0e
e1efd6dcb2cd790432b59875a5556e78089db7e88ed8aa798aa5da2e85a5f976c7f46e8d07d5ac7
d59ae3d1e6f2012dcc8d34a4191988e4eecc474a9c5531c55d8abb15762aec55d8ab0ffcc5afe8dd
15a950be60d12bed5d42115fc7154cbceb6bafde79575587cab7ada7f98c40d2e99728b1c9fe9117
c688cb2ab2f190afa6db7d96dbe2c55e37ae79bff36cc06ff4db6d42c9f57d1a5d67ca9a74d671bc9f
a6e49c98748bda29f4d560085f9347f13ccdebfeec715528f346bde64d53ca1e6bf2fdd5adf43a6ea6
3cdd6b11d3749667b8d4f9a9b0b6744b66ac73c5248c2629fbf65de7e7f6957a56b575e621a8f903
40d3b50bfd1ed351b2ba1aa1b4b48e46125bdac4f02c924f6f32c279f25f8b8f2f897ed7d95582e83e
75fccad52cb4b4beb8d62d25b84f2b5a6ad3b6906268aee5fae43acf0f56d78801a288bbd1a38f664
f81f154c3c91a96bfe6293549ff003296616d0f95e27b06bdb7faad4c77ba845797050a27198ac366
ee42af106368c287c55eb1e429f59baf23f96ae7cc4186bf36976526a81c51feb6d6e865e40d2879d
6b8ab21c55d8abb15762aec55d8abb15762a906a2e17cdda0a6f56b5d469e1b1b6c553fc55fffd4f6
47e4d8a7e51f90878797b49ffa828b15496e75efcc21f987fe0b8751d3111f47975d595ac6670026a
0b6e20a8b9527f74dbbd3fbcf8a9c7e0c552cf2b7e787d6bcafa2dc6b7a26a173e66beb7d15a4b7b2
8ed9527935ff005d2de58fd4b90123692da40dea3068fe12df0ef8ab24b2fcd9d1b5185eeac34cd4a
e2c287d1d412002cddd2f869f2a1b82c23431c84b373615855a54e6ab8aa47a9fe72dbea7a769b7
7e4c864944ba96816fa95cdc4486182df5ad496cda33fbd5632710e6a81c2d636dc362a937993f39f
50d2adbcb1e61335be9de5af315aeb7a8cb3358cf7d3416ba5c68f6cc4432293cc3729490157971a
af1e65565963f9a6d63a4e9a9e72d2e5b1f343e91a5eadabd95918e7b785f54ba5b2e11b993e2e1
29ab75f83ecb39c5546ebf3bf40b26d485ce8fab28d392f9d4ac56ec6e3f45ea71e93722102e2a4ac
d2a11cf8738db92eff0e2a889ff00397cbb6705b5c5f58df5b24da949a2dc73484882fa3d423d34c6c
56521c996557fdd97fdd7293f6698ab12ff0095d5adff00848b4b60d6be6de0d756b733409fa3af2d6
df5c8b4a9cc2a970f2290b34647a9c7fbc571c97157a57973cf7a5f9a75092d349b5bc92c825c3c1a
b981869f31b3ba6b495166e9cc48a78ab50ba7c6955ae2ac7f4ffce3d267d3349d4b53d3ae74f8b5
8be934eb625a3953d51a99d2e21c830e4cf27162a81bd343c9b6eaaa1610000026060f002220574

d464301000000000001000000000000000d00000000200000cc5d0100cc9d010018fe79e809a4c
5ac4fa2ead05bdcc7773da452a5a09a7874eb98ed2e1a355b960596595408ebcdd7e355e38aa2ef
3f3834c5b7b8b8d2f47d42fe086e92ca2bbf4843672cdfa563d225459dcf10c92b960ad4f51119a3a
e2ac9f43f30bea3ae798740b98c2dd6873c004a9b2496f79089a234a92197e246f1e3cbf6a98aa73
7bfef1dc7fc627ff889c55e3b75f90de51f38c1e5ff00364b77a959ebf059db48b20beb9b8b424c29b7
d5a7919231ef6fe8b8fe6c5592e95f970d14ed06b6ef756801115d5a6afaddb4814538a981eee65f1
ab097fd8e2a9b8fcb6f2a8ad06a5bf5ff00733aaffd9562ad1fcb4f2a1ea352ff00b8ceabff006578ab8f
e5a7950af1a6a5c47fdae355ff00b2ac55dff2acfca7fcba97fdc6355ffb2ac55dff002ad3ca83f6751ffb
8c6abff6558ab7ff002ad7ca9fcba8ff00dc5f54ff00b2ac55c3f2d7ca83f6350fa757d50ffd8d62aeff009
56de54fe4d43fee2da9ff00d9562ac77ce3e4af2f69106877f651ddfd662d7f45f4ccda8dfdc202da84
2a498e69dd0ec4fda5c5599f9cf5e7f2b794f5bf31c512cf3697653dd43039e2b24b121644246ff135
176df154e2dfd6f422fac1569f82faac8a514bd372149240af6a9c555315762aec550d77a7585ff117
d6b15c84af01322c94ad09a7207ad07dd8aa2715762aec55d8abb15762aec55d8abb1563fa97fca
5da07fcc3ea1ff62f8ab20c55ffd5f627e4ab97fc9ef20b11427cbba55474ff008f38b154e65f2668f379
adbce8cf72bae9d3db480eb7120856cddc4a54455e01b980dce9cabdf1562b0fe547e5f697a868b6
114d7d0df5ac162ba5dbfd7ae49683cb923bdb541621844d76d5e5f6fd4f8f962abed3f2c7f2d7517d
76cb4d6b8db524b8bdb5b5d46ee34d3b525962d449b544940b577731cce2109cf955bed62ae87f2
2bf2eade4b57b7b4bd856d5eda5f4e3d4efd12592c6f1afad5a60271ea34133b188bd4aa9e1f628b8
aa307e5a795ec64d3752d4a46fa97967f4836928d2b456f059ea4395cc33a72f4e58e9551cd7e18c
2af51c8aa96d9fe4ff00e596a365676f64b79358e949fa3e08e3d4ef942410dcade436d2719833241
2857811ebe88da3a25062a8cbcfc98f255f7a9f59fafb1956f52422fae1495d4afd352b8e8c29cee23
47dbecf1e2bf07c38aacd47f243c81aacb24d7b05eb4b2dcdc5ecaf16a1770169aeaf22bf627d2952
a05c4292a2f4461f0e2a8c9ff293c9771a7dd69924173f55b9aaad2ea6125bc6d78b7ed1c0fcb9468
d3a2bb2a9f8b8aafd8555c5533f2f790bcb9e56d4b50d53468ae2297519659ded9eea796d2192e5f
d59cdb5bbb98a0f564f8e4f4917936f8ab1fb9fc8ff00205d3c723437f134323cd108352bd85559afc6
a6a02a4a0718ee47ab1a91446e98aa51e60fc956b97f2ddaf977516b2d27cbc6f25b5134f79f5b82e
afa759dee23962997d46079011caa5457ed71aae2ac853f27fc931c7abc51c3771c5ad4c6f2e618ef
ae92186ede75ba927b58964096d249322caed02a727df15647a2f97adb47bcd57520c66d47589d2
7bb9cd7ec4112c10c62a49a2220dc9ab3166fdac5532bcff78ee3fe313ffc44e2a80f2b7fca33a2ff00
cc05affc995c5536c55d8abb15762aec55d8abb15762aec55897e612f2d2f4835a71d7b443ff00732
8062a9979c7416f34f9535af2e24ab6f26ab653da4770ebea2c6f346555cad4578920f5c553783d51
0c627e227e23d4e04b2f2a6f42402457db1554c55d8abb15762aec55d8abb15762aec55d8abb157
62aec5520d487fcedba03785bea03ef1062a9fe2aff00ffd6f62fe4b9afe507908814af97f4b34ffa348f
c715631e61f2c7e6ac77fe6d1e5ed41e4d2dda2d53cb6cf76e2e5a6bc6892fec7e36e28891c32b5a
b37c31c974bc78fa35c5528bfd17f37d2fb52b9f2fb6a29633a6bc743b4bcbd42205b8b3b2fa9a4d59
4fc46e52ecdbb37a9f575913990bf0e2a9d697a3f9a4796bf335b4dd2f53d2751d70b5cf9696e6ee3
37c673a35b5aa71945c486364b884d0bba8fda1f0e2a90d9f977f34b47d534e48a3d66fb4eb8b5f2a
4d75249aa2ce60bdb3be95f5af53d7b9e47d481d0148f947228a27d818aa0ad3cb7f99f65a640dae
b6a33e9a23d3eef5d8af6eff00487a8b6be6179e78d50cb290df50e1cb80e2f1afa6df1e2af57f2fa49
71e7af33ead66c0e853dae996cae8018e6bfb7fac34f22b0d9a91496f1961dd38fec62acc715762ae
c55d8abb15762aec55d8aa85e7fbc771ff0018dffe2271540795bfe518d17fe602d7fe4cae2a9b62ae
c55d8abb15762aec55d8abb15762ac4bf308d34bd277a575ed1075a7fd2ca0c5596e2aa325dda45
27a32cf1a4d456f4d9d437176e0a684d685be11efb62abe39629979c2eb2202579210c39292a454
770450e2abf15762aec55d8abb15762aec55d8abb15762aec55d8aa41a97fca57a0ffc60d43f5418
aa7f8abfffd7f617e49176fc9cf2019051ff00c3da5f21ee2d23c554efbf37fcb1a64bab41a843756d3e
8b7afa75fc4eb17a8afc6dcdbc8104858c772d750a40d4f89a4f8f8716a2a849ff0037b4283587b5be
379a69d2d3554d66c27b68dca4fa6c16975bcab291bc5751b45e987137abf695978e2a98797fceba
8cd1f9e350f30d8cd696be59bba4562b1249762d534cb6bd614824956572d2bf1e277d978d7154b
6d7f39b4cbe9ede4d3b49b9bed22e3439bcc31dfd94b6b76af0c5762d552310ccc1b913ccbf2e08bf
6f8d1f8aaa173f9e9a236912ea7a3e8ba8eacf0e997fabcb1db8b658a3874bb99ace7e733ceaa693
40ca0c7ea72421d792e2a98dc79fafd74df356b56f66b0da79420b796face5a19249459c7a8dd461
d1b88e304c8a87fdf9cbf671567f04d1dcc31dc42dca1995648dbc558541fb8e2aa98abb15762aec5
5d8abb15762aa179fef1dc7fc637ff889c5501e56ff00946745ff00980b5ff932b8aa6d8abb15762aec
55d8abb15762aec55d8ab13fcc10a74ad2f976d774423e7fa4edf15656cca8a59d82a8eac4d062a9
75df97f42d42f3f485f6996b737fe9c50fd666823925f4a0985cc49cd949e292a89547ecc8398f8b154
5595858e9b09b6d3eda2b5b73249318a0458d0cb3b99647a280393bb3331fda6249c55118abb15
762aec55d8abb15762aec55d8abb15762aec5521d4bfe52ad0bfe305ffea83154fb157fffd0f62fe4b1
53f941e422b52a7cbfa59048a1a1b48fa8c5534d4ff2ff00c9dac5deaf7fa8e9304d7daf5adbd86ab73
42b2cd6f66ed2400b2904346cdc91d68eac13e2f8128aa5977f949e49bf97d6d42d27ba9244be8ef
1a5b9998dd0d5208edae0dc7c7fbc2d14312293fddac69e9f0e38aa65a4791343d12cf57b3b396f9c
eb8436a575717d753dcbba40b6caeb2c92164611a228642a7e107ed62a935efe4cf9035086686e6
c2602ea3b98eede1ba9e069febb711ddc8d2189d3937ad1ac8adfb2dd3a9c555ec7f29bc99a79bff4
20ba78b53b4bdd3af619ef6e6647b7d5277b9b900492371324b23bf25a30666a62aa93fe5d5935a

39

eafa5daddcb1693afc16b6dabc5233cd3cc2da25b691bd677e5ce6b74485d8d4fc3cfed62accd5551
42a80aaa2800d8003156f15762aec55d8abb15762aec5542f3fde3b8ff008c6fff001138aa03cadff28
ce8bff3016bff002657154db15762aec55d8abb15762aec55d8abb15623f9875fd17a452bff001dfd0
eb4db6fd25075c551be7d581fc8de665ba6296ffa2afbd57550ecaa2ddeacaa48048ea0571557f274
d7371e52d067bc35bb974eb479cf22ff00bc6810b7c440277ee462a9d62aec55d8abb15762aec55d
8abb15762aec55d8abb15762a90ea5ff00295e83ff00182fff005418aa7d8abfffd1f62fe4b80bf949e4
855fb2ba25801f216e8062a9cdc79935083eb3c3cb7a94ff005737a23f4feabfbefa9c6af194e538ff0
07a0b7087971f894fabe9aef8aa7d1b174572a50b004a35390a8e86951518aaec55d8abb15762ae
c55d8abb15762aec55d8abb15762aa179fef1dc7fc627ff889c552ff002a9af95f443e3616a7fe48a62
a9be2aec55d8abb15762aec55d8abb15762ac47f31ee2decf41b4bdbb9560b4b6d63469ae279085
8e38d352b72ccec760a07527a62addef9dbf2db54b39f4fbff0030e8f7365728d15cdbc9796ec9246c
28cac39d082362315561f987f97d1aaa8f33e92a800e205edb80146c29f1e2ad8fcc5f201ad3cd1a5
6db9ff4db7ff9af1577fcac6f201e9e68d28fcaf60ff9af156cfe627909454f99f4a03c4dec1ff35e2ae5fc
c4f2138e4be67d2d97a545e4047fc4f1577fcac4f20ef4f33e9669d697b01ff8df1569ff00317c831713
2799f4b4e4c11795e402ae760a2afb9f6c55bff9587e433d3ccba61a1a1a5dc2771dbed62adb7e61
791129cfcc9a62f2d856ee115aff00b2c55c3f30bc8adf67cc9a6b53ad2ea23fa9b1571fcc2f22a9a1f
31e9c0f87d6a2ff009ab155dfe3ef249d879874fe95ff007a63e9ff00058ab879fbc927a7982c0ffd1c4
7fd7156cf9f3c96363af5883d3fde84feb8aa0975dd1b5bf35e8c348be86f8c36f7cd37d5dc49c037a0
016e35a54f4c559762afffd2f55f93ec7f367c9fe55d1fcab1681a0dec7a2da43611de1d6aea13325b
a08c48631a63712c0578f26a78e2a9d1d57f376a00f2b68143d4fe9ebadbfee558ab7fa53f377fea57
d03fee3b77ff0078ac55b1aa7e6e1343e58d000f1fd3b77ff78ac55dfa53f372b4ff000ce80478fe9dbb
ff00bc562abbf497e6cffd4b7a07fdc72eff00ef158abbf497e6cffd4b7a07fdc72eff00ef158aa45aa7e6
07e60693afe99e5cbaf2ee886fb53a959135aba31400d56233b1d2c71f59c18a1ebce40462a9f8d4f
f003569bf96f42e54edaddd52bff70bc55bfd25f9a7b7fceb9a19f1035abafc3fdc662ad8d4ff00344f5f
2de8a057feaf5735a53fed99e38ab4753fcd302a3cb7a231f0fd377236ff00b8662ab46abf9aa797fce
b1a181fb3fee72e7f1ff7178ab5fa57f35bbf96343fa35cb9ebff0070bc5567e96fcdcaede56d069ff6dd
baaffdd2b15593ea5f9b52dbc910f2be841e4564afe9db9e2390a57fe3975c5596689652e9ba2e9da
75c32b4f696b05bcac952a5e28d5091500d2a31547e2aec55d8abb15762aec55d8abb15762ad10
18508a83d41c556fa30ff00bed7fe0462aef461ff007daffc08c55de8c3fefb5ff8118abbd18bfdf6bf70c
55de8c5fefb5fb862aef4a2e9c17ee18ab84510e88a3e818ab14f3eac42db412c2806bda5d283f6be
b000fc4e2acb0220e8a3eec55dc13f947dd8ab6001d053157507862ade2aec55d8abb15762afffd3f
7f62aec55d8abb15762aec5546eeeadec6d67bdbb90456b6d1bcd3cadd1238d4b331a760057156
1ba57978f99fcbfaa6a1adacd677de692b729d62bab1b78b7b055a96092c202cc7c2e19f154f7ca9a
b5ceada483a8284d62c647b1d56302805ddb9e2ecbb0f82414953fe2b75c553bc55d8abb15762ae
c55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55
88fe609a59687efafe91ff51898ab2ec552d4d6ec42cef7ac2c1219a48035dc914624f4a957421cfc2
6bdf8b78a8c5555f58d22289e792fed9218dda292469a30ab220e4ca4934040dc8c552eb5f37e8f7
5ac6b5a2976b79b418acee2f2e67e096cd16a0aed13249c8823f76c0d78ef8aa6326afa4c4dc25bfb
747a72e2d3203c78f3ad09e9c7e2f96f8aaa7e90b026251750f29d0cd00f516af181c8baefbad37a8
db15424be63d02136c24d4ed41bcb95b1b502643ea5d3a97589684d5ca8e5c7c31547c1736f74ac
f6d324c8ac519a360e030ea0904ee31555c55fffd4f7f62aec55d8abb15762aec558cf9df4bd6b59d3
6db4fd261b6b8b77bb864d52daee76b759ad2126431065867fb6ea8ae0aef1f31df154baebccde7c
b5d4ecb4a6f2de98f717e93c9115d5e50a05b7a7cb956c3bfa8294c55da1d8f9b97ce571ad5f69163
a669ba85a08754fab5fbddbcd736e47d5e50a6d61dc2178dc96dd7d3fe418ab37c55d8abb15762a
ec55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb15762aec5
5897e608ad8e887c35ed1cff00d3ec63f8e2acb7157876abf933adea77d7d24aba64b6d36abe62d4
edccccecc135dd38da46a54c042b2c9479287a74e4d8ab17d63f2abcc1a2f987c88f268f61abd9aea
ba5a5d5bc6934b68874ff002edfd84d35cb7d59822492bc415cab54fa61fd954ded7f217cc9a5d9db
69f6ba8da6a56360ba2a2c37b35d402f62d320beb79e099a05e51a52f6b6fc4c9c7d08d5d08e8aa6
49f91f736fad417f6d6ba3a69f6d7de5eb982d1565a25ae85652dabc20c8921dfd41e9f266f857e2c5
509e5cfc8bf3069b3591d6a6d33568ed6de116cf3cb7a4e9f71682ea28c5ac685226468a702aea3d
23ea7c32ab055551ba17e4d6bda045a57d49f4a5934b4f2ff1802cab0493e8f6175637323058c1ac
82e032773c38bb0fb58ab38fcb3f25dff91748bad1ee2e926d3da747d32d10b4bf53b758238beaeb3
baac9246ac87d1f579c91c5c226964e031566d8abffd5f7f62aec55d8abb15762aec55d8ab19d5813
e76f2d11d05b6a75fbadb1564d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb1576
2aec55d8abb15762aec55d8abb15762aec55d8abb15625f9804fd4345f7d7b47ffa8e8b1565b8abb
15762aec55d8abb15762aec55d8abffd6f7f62aec55d8abb15762aec55d8ab1ad5588f3a796c0e8d
6da983f75b1c5592e2aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb15762
aec5546f2eedec2d27bebb7f4ed6da379a79285b8c71a966345049a01db154068de60b1d79647b1
8aee358c2926f2ceeacaa1eb4e3f598e3e5d3f67a62ab756f3269fa34cb05dc37b2c8e9ea0fa9d85d
de2d2a46ed6f148a0edd09ae2abb48f30d8eb4f2c76915e44d12867fae595d59821bf94dc451863e
2062ab358f325868934505dc17d2bcaa5d5acac2eef500069f135bc52053ec4d7156f48f3269fad4b
243690dec4f1a876fae58ddd92d09a6cd7114609f606b8abb58f31d86872471de417d2b4aa5d4d95
8dddea80a40218db452053bec0e2aa5a3f9ab4ed72e9ed2cedb508a448fd52f7ba75ed945c6a050
49730c6a5b7fb20f2c55807e74cde66b16d0ae7cb16f757f2dc5fd8a5edac76b77790db436b74930b

e02de391434356e7191cae13e15feef15665e52d774d9ededb42b34d6647b4b75537bac585fdbbc
be980a5a49eea18d59d89a915f90a62a9a6b5afda682913dddbdedc098b045b0b2b9bf61c695e42
da390af5db975c550fa4f9b2c358bb1676f65a9c12152fea5ee997b671517b7a93c28b5f015c5515a
c6b96da224325cdbde5c0998a28b1b3b8be6040ad585ba3951eed8aa134bf36586ad769650596a
9048ea584979a65eda42388ad0c93c28a0f802715466b3ad5b68704771736f7972b23f00b616971
7d203426ac96e8ec06dd48a62a80d37ce3a7ea9791d94361ab432ca48125de957d6b08e209f8a4
9a1545e9b54e2a986b3acdbe896c975736f77728ee230961693df480904d4a5ba3b05dbed114c55
0dfe2ad23fc3dfe27acff00a2e95e3f569feb3cbd4f4787d5f87abcf9fc1c3872e58abfffd7f58fe5f7966d
7cc1e49d0b5bd5353d62e351d42d22b9ba9bf4bea11f295c72621527555153d14018ab261e44d1c
0a0bcd5ff00ee31a91ffb18c55bff0002e8dff2d7ab7fdc6352ff00b28c55b1e46d1c1afd6f5634ec757d
4a9ff5118aa02d742f26ded9cfa9596b97971a7da9952e6ee1d76fa4862682bea877172554a53e3a
9f87be2aab6fe57f2b5dd82eab6dab6a13e99247ebc77b1eb97ef03454af3122dcf12b415ad698aa4
1f5efca260ecbe7842aa39bf1f345c1a2f8ed79d3718ab2197f2e3cbb35c417724daab5d5b0916de6
fd31a972413710e01fac6dcb88ae2aabfe02d1a94fae6b1ff719d4ff00eca315424de57f29db6a169a
55c6b1a8c5aa5eac9259593ebba82cf3ac00191a38cdcf26081872a0f86bbe2a8d1e44d1ea49bcd5
cd77df58d4bfeca315737917467a7fa5eac29fcbac6a43f55c62ad8f2368c053eb5ab1f9eafa97fd946
2ae3e46d19bfe3eb551f2d5f521ff006318ab47c89a31affa5eadbffdae352ffb28c5524f377966d345d
02f356d36ff00548afed8c4f0bb6ab7f2206f5906e924e508a6d4614c55e838abb15762aec55d8abb
15762aec55d8abb1543dfd943a8d8dd69f705841771496f294346e12a94343d8d0e2aac8823458d
7eca00a2be0053155d8abb15799fe6b7e63ea5e42d43cb5696726916d6dae497d1dc5f6b93c96d6
f0b595a35d20e718353270294a56a471e5f67154d347fcd1d02fb4ed226d5e2b9d1759d521d2a497
46bb82533db4dae097ead1485508ab3412a57b32d1f831e38aa943f9cdf97771019edf539a6abc11
c70c7637ad3cbf5c8a69a068e110f364916de6e0e178968dd2bc9698aa07cd1f9cde59d3b41d52fb
cbb7b06a5ab5969e355b7b79166582487d282e48e613ed882e239780f8f8ba9e38aa222fcd2d32ef
cc5696f65221f2eb5a6aada84b3c3736f7f06a1a4dc59c26036f2a238e42ec710539bfc1c2aae3156
63a0ebda5f9974d8f56d1e63359c8f2444b2b47224d048d14b1c88e1591d1d591d58065618aa658
abb15762aec55d8abb15762a967e81b0fd1bfa2be3faa7aff5afb5f17a9f59fad75f0e7dbc36c55fffd0f
64fe50ffe4b2f2b7fdb3e1fd58ab35c55d8abb157cdf7de44f36492f9d6dec34a99bc87e754d56ff5cd
2668ca4e355b596558bd286bf1aea51bdb7323e102d9fd4fef0e2a9bf93f48f337d7bca3e5892fae62
d2ae7cbda449e65d1e59897d3ae743852296d9a02d48e3bef5a3571f65c4121df9d71543f9a3caba
9ea5a57e72da5a7972e5a6d4ee6c64f2d95b550d304d3ad6c99ed8914055e2907ecfc3f17d86c55
10961f99edad9d3ec2e35bfaa58dcf985f4b96f2575b69b8a5b4da50ba9482cf1197d64018d7d3f82
4f878e2a93337e7243e4d92583fc4975af5e25dcb04334305bfd4751874c7e31955b89a59617ba50
632d32c1ccfc2af0f08f154efcbf67e7bd63f327cb5ad799f49d4e3b8d2ef75efad5ccdc069d169f7d6e
834ff482c9c4128a1240abeaacbcfd5fd938abddf15762aec55d8abb15633f985ff2876abbd291a107
dc4a98ab26000ad3bf5c55d8abb15762aec55d8abb15762aec55d8aa5be61b99acb40d56f2d9fd3
b8b7b3b89a19363c5e389994d0edb118aa2aceea2b8862292a49214566e2c09dc0df6c555249e0
848134a9193b8e6c16b4f9e2ae8ee2de56e314a8ec0568ac09a7d18ab06fcc2fcbbd27cf7a8e813e
bb7512e93a51bf175a6cf1071771ea168d68ea24f510c6c81f9a3a82cae14e2ac7a1fca6d42e6fb49
bdbaf3b3ea37f60ba57d76796d2179af5b40bb9ee6d1e4224f85b8dcbc73951fbd3c641e99e41955
3d37f255743d4b4ed4dfccaa5aca0d2ed5524b558c3ae8e9a8a21afadb17fd22c5bc3d35fe6c552a1
f9042f0c16f71e7692ee0b6d24e8b690fd5616786ddac2decd846dea12139dbacfe9d3edbcbb9e60
a2a9e7983f275357b9b9d4ef7cc2b67a9dfadf4975751daa2837b72d60d6f2a2492b2f1b61a6dbafa
6dcfd51cfd46f8b6559ff95ac868fa4dbe9773a9c3a95faf269ee618a1b4492462598a41092a8be0b5
6ff2998ef8aa7324b142034aeb1a9340588515fa715589776b230449e3673d155d493f4038aaf925
8a15e72baa2f4e4c428afd38aac5bcb4760893c6ce760a1d4927e55c557c92c50af395d634e9c9c8
5153ee715525bfb17711a5d42d21a51048a4efd36ae2aab24b1429ea4ceb1a6c39390a2a761b9c5
5877e9f9ffc1bfa63ebcbcff48fd5feb5c938fa7fa5beadc6bd3ec7c1fdb8abffd1f557e57793f4cbdfcbaf
2d5cc979aa2b4b63148c916ab7f1460b6e42a24eaaa3c15453156583c87a48351a86b35ffb6d6a5f
f6518ab7fe04d200a7d7758eb5ff008ecea5e14ff968c556ff0080747e5cbebfacd694ff008ed6a74fbb
eb18ab47c81a31007d7b59dbc35ad4ebff005138aa8c5f969e5982eee35085f528efaec20bbb94d5
7505966110e29ea3ace0bf1068bcba62a893e43d20f4bdd617fd5d67521ff6318aad1e41d182f1fae
eb2576ebad6a67a7bfd631571f2068c6bfe9dac8af86b5a9ffd94e2ad9f2168c40e57bac1a7fdae753
ffb28c556ff0080346ad7ebbacd36047e9ad4e9b7fd1ce2aa9fe04d1a94fadeac36a6dac6a55dbfe8e
31572f91747514179ab1ff5b58d48febb8c55aff0268f5ff7b357eb5a7e98d4a9ff005118aaff00f03e8f
deeb553f3d5f51ff00b28c558ff9dbca7a6d8795b51ba86eb513246236026d4efa68ff00be42432493
32b0f62298abd1315762aec55d8abb15762aec55d8abb15762a86d46ca1d4f4fbbd36e09105e432
5bca569cb84aa50d2a08ad0e2aa1a7687a3e93f169b616d69270113490431c4ec8bd0128a2a315
4179826f2bc573a6c1e62b78269efe592d74e3716feb832ac2f70e818a304ac713b7c457971f1c558
c4fe77fcbbd1acafb50d19ec2c6fa2b1b9b98ae25b496da1616b0adc488cf143c8fa6ac8f34481a58d
6b54f81a8aaaddf9afcbdae79db48f297d4ecf578e683516b9ba96132adbdcd80b52d146ef198d891
3fef143f34a0e4bd68aa8c1e7ff00ca5d26eaf9ad5edecae34d37d15e4f169d3c211b4c8da6bb8d64
1000ed122333aa163c462ab35cfcd0fcac9adefcea37106a2fa4c335cfa373692946781217648a49a

41

2e0d211710fc28c5b8c8adf67154ebcbffa22dfcc175a34ba469fa77982d6d2def91aca2405ad6ef9c
6d4711a1f8658a443e2bc1bf6b8855925f699a6ea8891ea56705e4719e48971124caad4a5407068
71550b5d0341b19d6e6cb4bb4b6b94af09a1b78a375a8a1a32a822a315445e69f61a8c6b0ea16b0
ddc2adcd639e35954300454070456871543dbf97f41b4992e6d74ab382e23358e58ade24753d366
550462a8abcb1b2d421fabdfdb457505437a53a2ca9c874346045462a8483cbda05acc9716da559
c37119e51cb1dbc48ea7c43050462a8bbbb2b3bf84dbdfdbc5756e486314e8b2254743c5811b62a
8387cb7e5eb7992e2df48b28a78c868e58eda257561d08216a08c551b7569697d09b6bd823b9b7
620b45322c884a9a8aab023638aa4c3c9ba10f2f9f2c0b75fd0e6e3eb46df847c39fd6beb94e3c78d
39ff93d3df7c55fffd2f64fe5157fe559795abff56f87f562acd715762aec55d8abb15762aec55d8abb1
5762aec55d8abb15762ac63f30c72f266ac08afeed36ff9ea98ab27c55d8abb15762aec55d8abb157
62aec55d8aa5de60b99acf41d52f2d9b85cdbd9dc4b0bd01e2f1c4cca6876d88c55196ec5ede276d
d991493ee462a91f9d3c9fa6f9e344fd07aa3cb0c02e2dae927b76e1323db4ab2515bb0750d1b716
10000026060f002220574d464301000000000001000000000000000d00000000200000cc3d0100
cc9d0100f90ed8ab0ed6bf25ed7578f56b54d5dedf4ebe7d52eb4fb7f40486cef35cb46b3b99037a8
bcd024923471715e0f27da655550aa2fcbbf9552797bccf06bb1ebd35c69f6b71a95e5be94f6f100b
36b4236ba1eb54b70f563f5235a55393233bad3154b35cfc911ae6997b652f9865b7babdd475abe7
ba86d928b6de61b592d2e2dc23bb0aaa495492b5e43ece2a82d53fe71fedb53b19ecae35c9258df
ebaf129b754224bbb3b2b68eac18ff76d62921a2fc7c9976c559ee8fa1decbe6cbcf38ead025adecb
a6da69305bc727aa0470bc971339200eb2cbc13fc98f96dcf88559562aec55d8abb15762aec55d8a
bb15762ac37f4cea3fe10fd23eb9fae7e93fab7ab45afa5fa5feadc694a7f77f0ff6e2afffd3f647e50316
fcb1f2b161c585844a41f15a8fe18ab08d4bf31bcf5a336a9677c91f2d0b5ab6d2b57d47ea927a09a
7eb37f09b3bd40a68c21b37227f8b8a4c79bd11597154967fcd2f3469da8ea3a9ea3676a5ac2c751
b6835458242d3595a6bd6d64351012461e87a1334cc81776b777593d261c5546e89e6ed5f46fcb6
fcccf31e85a95b5fea1a6798f513a6df4f1b4d66f1b3db95a2248a0af172018dc216f8d7f971545defe
65f98f41f352f93354d6ec6e755fd276904730b2300974fbdd2ee6e3d611faaf454b889503fa9c7fdd6
df132e2a93689f989e72d7dfcada5798751b76835b93cb3a86a571616ad6cb145acd95fcef62c4cb2
9f8ae2ce24e5556e137a6df6b157abf942faf9fcc9e73d19d58e91a56a16eba6c8c4b53eb7650dccd
18249d96490b01fb3cf8fd903156638abb15762aec55d8abb15762aec558df9fc03e4ed5abd044adf
f0003229fe18ab24c55d8abb15762aec55d8abb15762aec55d8aa1f50b38b51b0bad3e72cb0ddc3
241214d982caa50d2b5de8715568d0471ac63a200a2bd68053155d8abb15762aec55d8abb15762
aec55d8abb15762aec55d8abb15762a947f872c7f44fe87e727d57eb3f5ce551cfd4fadfd7295a529c
f6e9f67157ffd4f64fe5153fe55a796a86bfe86b527ad79356b8aa6fe5af310f321d6696fe843a56a57
1a50ab73329b5e21dc8a00012c6837c553d08829450282836ed8aba829c6829e1db1575074a0e9
4fa31550bbb1b3beb67b4bb8565b79285e32362548653b6e08201046e0ef8abacac6cf4f88c1650a
c3133bcae17ab4923166662772cc4d4938aa2315762aec55d8abb15762aec55d8ab1cf3f2f3f276b
02a47fa393b75d8838ab23c55d8abb15762aec55d8abb15762aec55d8aa5faecb7b0e89a94da706
6d463b59ded15179b9996362815686a7952831551d0f5cb5d6612218ee9258910cdf5bb4b8b3f89
c7ecfaf1c7cb706bc7a62adea7e61b0d2265b7ba8aedddd3d406d6caeaed295237682275076e84d
7156f4bd7ec7589248ad23bb4688066375677568a4134f84cf1a06f90c55daa6bf63a4491c5771dd
bb48a594dad9dd5da800d376823700fb1c55da5ebf63abcaf0da45768f1af36375677568b4ad3669
e2404fb035c5576a9ae5968ed12ddc775219812bf55b4b9bb038d2bc8c11bf1ebb72eb8aacd33cc3
61ab4ed6f6b15e248aa5c9b9b2bab54a0206cf3c48a4efd2b5c555354d6ecf47f4beb71dcc9eb72e1
f55b4b8bba71a5797a11bf1ebb72eb8aa969be63d3f55b9faadb457a92052fcae6c6eed63a0a7edcf
122d77e95ae2aadaa6b369a3ac4f771dcb894954faadadc5d905457e21046e57e9c550da7f99b4e
d4eed6cede1be495959835c585e5b4545eb592689141f015df1544eadacda68d1c72ddc77322cac
5545a5adc5e302057e25b749081ee71541e9be6bd3b54bb4b3b7b6d46391c121eeb4dbdb58be11
5de49a1451d36a9c5519abeb16da2dbadcdcc3753a3b7009656b3de480d09a94b7476036ea4531
54bf4ff3869da95e43650d8eab1493d78c973a5dedb4228a5be292585517a7ed1eb8aa63abeaf068
d6cb757105d5c23388c47656d35e4b5209a94811d80dbad298ab1afd2fafff00827f4cfd5ef3f49fd73
d4fabfd55beb9f52fd254a7d5f873afd5bf678f3a7f958abfffd5f66fe55a2c7f97fa1a25022c2e140dc50
4af4c5519e50d12ff00416d7a0bbe06daf757bad4ac1a26a8f46f4aca54a9038b090bf2ec6bcbbe2ac
9715762aec55d8abb15762aec55d8abb15762aec55d8abb15487cec09f296b34ebf5593f562a9f62
aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb15762aec
55d8abb15762aec55d8abb157ffd6f697e59a08fc8da3a2fd954940f9099f156598abb15762aec55d
8abb15762aec55d8abb15762aec55d8abb1548bce9ff00289eb1ff0030b2ff00c47154f715762aec5
52fd275cd1f5d8e79b46bd86fa2b699edae1a070e1268cd194d3a1fd6371b62a9862aec55d8abb15
762aec55d8abb15762aec55d8abb15762aec5505aaeada7689666ff0054b85b6b40f1c5ea3026b2
4ce2345014124b3305000eb8aa4e7cfbe561d6ee5ffa44ba3ff32b1577f8ff00cabff2d73787fbc777ff
00547154f34fd42cb55b28751d3e513d9dc2f28a5504022b4e840228452871544e2aec55dd71576
2aec55d8abfffd7f6a7e5bede4ad2bfd597fe4fc98aa7baa69563acdba5aea08cf0473c17481249213
eadacab3467946ca480e8095278b7d960576c5546c3cbfa569970b756513a4cb13db8669a6907a7
24ad3b0e2eec2bcd89e54e5fb3f676c5533c55d8abb15762aec55d8abb15762aec55d8abb15762a
9179cff00e514d63fe6165ff88e2a9ee2aec5581f9c3cc56f73aa0f27bcd7561646349f5ad462b7b93c
ede5e416dade58e361ce4a7ef5d4d628fc249119554ab51f30f96b4e10f993c9532fafa7c4b6175a7
436d70b6f776166c54db8a46152684f21037ecb7289fe17f8557a469d7f6faa585aea569cfeab7712

4f0fa88d149c2450c392380ca68775601877c55138ab15d4bf313cafa55ceb36d753cacde5f10fe98
78609254b63722268c3940772b323ff00abcbf91a8ab18d4ff3a345d37cc1e894966f2d5a45acc5ac
5d4167773dd5a5f6853d9a4dc922461e82c7725da5a71f87e16c5519e72fcd2b4d2740d52ffcb4a2f
ef6c223730cf3417074d952de7863b841731af0e6ab37c2bcb77fe6e12715534d4bf33bca1a45d5e
59ea7752dacf67d7d68648965ff004a8ac8fa4ce0060279e28f97d9abf5e3538aa65a779c745d5759
9741b333b6a76d0c33dec4d0489f56facc6268d27a81e9bb21e415bdc7da0462a9fe2aec55d8abb1
5762aec55d8ab15f3f296d274ee268575bd15beed4adf156558abb1563fe4935f2ddb1ff008b6ebfea
2a5c559062af03fccafcc5bfd4fca1f98f67a76b165a75ce816dab5b49a7c33cb6faddb496290b5bdc
86475e292722f5e2a383c3c598f218aa637bf9cf7f0f9a755f2ce97fa3f51b8b78b53fa9409324137d6
34bb8b08440c67992b2c8b76fc792c5133aa049590b385534f2cfe6c4faff0099b42d2d517f45eb36e
0c571f579124fada5b4b7135bcf1990bdacabc0322c88d14b1f2f4e72ff000e2af57c55d8abffd0f6b7e
5d0e3e4cd2c5294136dff003de4c5501e47b998f99bf3034ee6d259d9eb50b5b96625636b9d2eca7
962556dc51d8c869f0132fc3bf2c559be2aec55d8abb15762aec55d8abb15762aec55d8abb15762a
9179d3fe513d63fe6165ff88e2a9ee2aec55d8ab1bf2382346b804d7fdca6adff00751b8c559262aec
5582f987f2a7cbbe67d5b50d63549ae4dd6a165269dce1314324504c23f8448918775578d658d26
69638e5e4cabf162a8383f26f40b74bbe1a9ea2d36a336a936a93bc9017b94d77d0faec4d4842a2b
9b78ca98c23c7fb0c315559ff28b427d1b5af2e5a6a5a959797f5a6690e9704d19b7b5795d2494db
892272a1d9391572e8a59cc6a9cb155b2fe4fe853ea379aa5cea37f73737e97915cc775f55b98248
7509a09e689e396dd83c65add42a3f25442635a271555519e5ff00cacf2e796f56b0d66ca5bb96ef4
bb4fd1f606e251218ed4c68861f538891a2f803ac4eed147255e345c559be2aec55d8abb15762aec
55d8ab13fcc4768340b7bcf4e6962b3d534abab85b6864b8944106a103c8c23895dd82a82c78a93
4c554cfe67794ea003a99af868dab1ed5ff964c554dff353ca08dc4fe9526b4f8743d6186e2bd459e2
a98f9118c9e55b098c52c22733cc91dc4525bca1259e475e51caaaea4ab03c594362ac8f1542cba6
e9d33cd24d6904925caaa5c33c68c644435557247c4076071558748d258bb1b0b72d20a484c295
61c42efb6fb281f218aab258d94728b88eda249d5044b2aa287118d828205683c31557c55d8abfffd
1f63fe5f6b9a343e50d3619b51b58a65f58346f3c6ac089e4d882d518aa776373e54d39eee6b2bcb
38a5d4673777920b842d34ec8b1f26258924222a8f055551b62a8cfd3ba26dfee4ed37e9fbf8ffe6ac
5571d6b4602a751b600752668ff00e6ac556fe9ed0eb4fd27695f0f5e3ff9ab1568ebfa10eba9da0ff9
ef1ffcd58abbf4fe83ff00574b4ffa488bfe6ac55a1e61d00f4d56ccf7ff007a22e9ff00058abbfc43a075f
d2b674ff9888bfe6ac55dfe22f2ff00fd5d6cff00e9222ff9ab1577f88740ff00abad9ffd2445ff003562aef
f0010e81ff575b3ff00a488bfe6ac55dfe21d03feaeb67ff49117fcd58abbfc43a07fd5d6cffe9222ff009
ab1577f88740ffabad9ff00d2445ff3562a9279bf5dd126f2b6ad1c3a9da4923db48a8ab3c6c4b30a0
0006dc938ab2dc55d8abb1541e9ba6db6956ef6b6bcbd279a7b96e6791f52ea679df7f0e4e69ed8a
a3315762aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb
15762aec55d8abfffd2f75bf973cbd23b49269164eee4b3b35b4459989a92495dcd71568796bcb83
61a459507fcbb45ff0034e2aeff000df974f5d22cbfe91a2ff9a7156ffc39e5ea53f44d953fe61a2ff9a71
55a7cb3e5b6356d1ec49f136d0ffcd38abbfc31e5affab358ff00d22c3ff34e2ad7f85bcb27ae8b61ff00
48b0ff00cd38ab5fe15f2c7fd596c3fe9161ff009a3156ff00c2de58ff00ab2d87fd22c3ff0034e2ae3e5
7f2c9eba3589f9dac3ff34e2ad8f2c7969451746b103c05b423fe35c55dfe18f2d75fd0d635ff009868
7fe69c55bff0d7973a7e87b2a7fcc345ff0034e2ad7f863cb7ff00566b1ffa4687fe69c55dfe19f2dffd59
ec69d3fde687fe69c55727973cbd1b2bc7a4d923a905596da20411d08217b62a99e2aa575756d65
6f25dde4c96f6b0a97967998471a28ea59988007cf1562127e6a792a4730e8d7e35eb9e3c963d27
8dcc6c2b434b8e4b00a1ebca518aa7961e64d3aead23b8bc9a0b09e4e44da4d736ef2228269c9a2
91d371f17c2c71545a6b3a44aeb1c7a85b3bb90115668c9627a5003bd71546e2ac5aeff0031bc996
1713da5eea8905c40e2129224885e46bb4b00b1d57e33f589121f82bf1b0c555a4f3df95615b979b
5011259c097376d2472a08925449115eaa0ac8cb22158cfef1b97c2b5c550eff991e4d43346da8d2
ead5e68eeed043335cc06dbd2f54cb0842e8a9ebc44bb2f1a488d5a362a858ff32fcb9676b2dc6bba
8416e8ba85e69e25852e5a28fea976969fbf67853d360f3448e5bf77cdfe0775f8b1543c3f9a9e5db8
bab790dd259693e9eb4f74fa8473dbcf5d06e56d677887a66331ab73e5c9d5ff00bbe08d56e2aabe
a3f9b7e42d25bd1d4b5292def43cf13d89b3bb7bb57b4b65bc9434290b3af181d66a95a18fe25e87
156636f7105ddbc5776b22cb6d3a2cb0ca86aae8e032b023a820d71555c55d8abb15762aec5527f
34cfaa5b68379368a1bf4a0545b731c6257059d54b0420824024ee3154669f6977691ba5ddfcba83
33556499218d9453a010a203f48c5576a16b7377008ad2f64b097903ebc2913b50755a4c8eb43f2
c5525f254fe609b4dbd4f3234925edb6a5a85b5b4f344903cb650dcba5bc8551514f28c29e4ab46e
b8ab24c550f677b6f7c92bdbf3e30cb25bbfa91c911f521628d4122a92b51b30f85baa923155f15cd
bcef3470ca92496efe9cea8c18c72150fc5803b1e2cad43d8838aa1758d6b4dd06cfebdaa4de8c0d
22431855692492594f148e3440cceec7a2a82715455adcc5796d0ddc049827459622cad1b147018
555c060687a30a8c5557157fffd3f7f62aec55d8abb15762aec55d8abb15762aec55d8abb15762aec
55d8abb15762a85d4b4cd3758b19b4cd5ece0bfd36e5785c59dd4693c122f5a3c6e0ab0dbb8c55e
7e7f223f2d6dbfe385a2db68a3d432986d6dada5b5ab75516f7514d0aa9f08d13154e34afcb2f275a
58c706a7e5ed12faf93907bb8f48b4b60ebc8f1ac6158021680d0d18fc5c57ece2a985bf907c89697
115ddaf95f4882ea0659219e2b0b64911d0d559596304107a118ab22c55e657df92da3ea7abea1a
b6a3aa5d5ff00e938eeadaead2fa2b4ba824b3bcbc8af4db3fa909668d1a3e1102dca38fe14656556

43

c554e7fc8bf2cdda2addea3a8cd225845a5add9997eb6f0db189e033cdc6b3fa32c42687d7f53d390
bfec314c551f1fe53d941e6a3e76b4d6b50b3f33dd199357bab7fabac77b6f3c76f1fa4f13c4e1020b
58bd378f8c8a797c67962a97798bf23b48f32d9dc585eeb9a8c569737b7ba8cb0c3f56f4fd7bebb82f
0305921701a27802c4ff6c46f2272f8eb8aa22eff0025b41d4617b3d4352bd9f4d2bae22db5614e2b
e64b8175714748c35639543426bf0f46e78ab7a8fe4de95ab6affe20bdd5af1b5c905d0babb458104
df5bd37f458aa7a6547a7155938ff00bb18b3725f831567ba369a9a369161a445234d169f6f0da24b
2503bac08230cdc4015206f40062a8dc55d8abb15762aec550f7b7d69a75b3de5f4a21b58f8f395a
b41c9828e9e24818aa2315762a85b1d46c7538e596c2759e38279ad6564e8b3db4862950fbab29
538aa2b157cf9e62fcbefcc4d4c6a48b0dfcb035c79b26d3628f5568995f508edce94c48b95f85258d
caa93fb8fe55c554a4fcb8fcc01a86b1fe8174ba46b9acdedfea5fa3351b6b2bd956f74db386de7591
c3f16b79a1995e9c5d7d45961f538d3154ceebf2db5fba916eef74ab9bdbf4f38d96a6b25cea1f5a55
d1ad0a3b320966e2b56f50f054466e5f657ec8554a2f2d7e6d43af4fa84da4fd6740967b79f50d046a
6852e44777a97a9e94b23f22785c5a4dfbde0b2ac1e830882a262a8eb4f21f9ccf982fbebd05f7e8a
4802698f16b8eb01b192ca181ec26f83eb2d28747e3397e3c9beb1cbd4f81957fffd4f7f62aec55d8a
bb15762aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb1
5762aec55d8abb15762aec55d8abb15762aec558afe6473ff00056abe9f2f538c5c3d3e1cf97ad1d3
8fa9f057c397c3fcdb62a9b689f5ef466faffd779f3f83f487d4b9f1a0fb1f52f878ff00adf162abf5bfaefd
4c7d47eb9eb7a8b5fd1ff54f5b8ef5afd77f77c7c7f6bc315629f94deafe80d5bd7f53d6ff00106b9ea7
afe9fadcbf48cd5f53d1fddf2f1f4fe0f0c559e62aec55d8abb15762aec55fffd9084001082400000018
0000000210c0db01000000030000000000000000000000000000001b4000004000000034000000
0100000002000000000000bf000000bf0000af4300006b43030000000000008000000080fe7fe943
0000008000000080ff7f9c432100000008000000620000000c00000001000000150000000c00000
004000000150000000c0000000400000051000000784701000000000000000000d201000038010
000000000000000000000000000000000005e010000eb00000050000000080400005804000020
430100000000002000cc00d301000039010000280000005e010000eb0000000100080000000000
000000000000000000000000f80000000000000000000000ffffff00fdfdfd00fcfcfc00fbfbfb00fefefe0
0d9d9d90068686800676767006c6c6c006b6b6b00696969007575750074747400707070006e6e6
e00717171006f6f6f006a6a6a006d6d6d007272720065656500616161005f5f5f006666660063636
300535353007d7d7d00fafafa00f9f9f900a5a5a500dbdbdb00cfcfcf00cecece00cdcdcd00d1d1d100
d3d3d300d2d2d200d0d0d000c9c9c900d7d7d700d8d8d800dadada00d5d5d500c3c3c300d4d4d4
00d6d6d60098989800ececec00b8b8b800c1c1c100afafaf00ababab00adadad00b3b3b300aeaeae
00acacac00aaaaaa00a8a8a800a7a7a700a4a4a400a3a3a300a2a2a200a9a9a900a1a1a100a6a6
a6009a9a9a00dedede00f7f7f700f6f6f60033333300b0b0b0009f9f9f00a0a0a000b4b4b400b2b2b2
00b1b1b1007f7f7f0073737300e6e6e6003d3d3d00b9b9b900f8f8f800e9e9e900b7b7b700f5f5f500
f3f3f300efefef00eaeaea0031313100e5e5e500e7e7e700bababa008686860084848400b6b6b600
9b9b9b009d9d9d0093939300f4f4f40051515100cbcbcb00f2f2f200dddddd00e8e8e800606060005
a5a5a005858580034343400bbbbbb008a8a8a0045454500ededed007a7a7a008f8f8f002f2f2f00c6
c6c6003a3a3a00e3e3e3003f3f3f004b4b4b00c4c4c400cacaca003636360079797900525252005c
5c5c00f0f0f000474747003c3c3c00323232004d4d4d0062626200cccccc00e2e2e200c2c2c20099
999900c8c8c8004e4e4e008888880096969600282828005e5e5e00eeeeee003b3b3b005d5d5d00
4f4f4f007c7c7c00bebebe008c8c8c0083838300c0c0c00087878700949494008e8e8e0035353500
787878001d1d1d008d8d8d00424242002d2d2d00bcbcbc004a4a4a0077777700c7c7c700242424
00929292008282820041414100bfbfbf000f0f0f0054545400767676002c2c2c0030303000e1e1e10
08181810022222200f1f1f1001b1b1b000a0a0a0039393900505050009595950002020200464646
00dcdcdc007e7e7e0064646400bdbdbd0037373700444444009e9e9e004c4c4c002b2b2b004848
4800434343009c9c9c008585850091919100e0e0e000b5b5b50057575700c5c5c5005b5b5b001f1
f1f00565656002626260040404000e4e4e4004949490027272700dfdfdf00ebebeb002a2a2a00979
797000e0e0e008b8b8b00595959003838380080808000898989007b7b7b00909090003e3e3e00
2525250023232300555555001919190021212100151515002e2e2e001e1e1e001616160009090
900292929000d0d0d002020200014141400181818001a1a1a000707070012121200030303000b
0b0b0010101000171717001111110001010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010201010401474e398840ba010104010101020104
5cc748c5832a010401050101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010100000101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101

01010101010101010101010101010101010101010101010101010101010101010101010101010
1010101010101010101010101010101010101010101010101020201014ca101011d01010101050
1050105011c02010117a4010101050101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010100000101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
0101010101010101010101010101010101010101010101010101010201020101044a4c03010501
03010105010101050101010201172701050101050101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010000010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101020101030104010302010101010103010101050105010101030101
040201030101010101010101010302010501030301021c010301010103010101051c0103010501
030501011d0102030102010103050401010101020201010501050101010501010101010101010
10101010101010101010101010101010101010101010101010101010101010103010105010535
4a01010101010101010101010101010101058e220103010501010101010101010101550103010
2010101010101030101010101010201010105050101011c0101050101020301010000010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010116100000
26060f002220574d464301000000000001000000000000000d00000000200000cc1d0100cc9d01
00010101010101010101010101010101010101010101010101010401010105041c020101010305
0103020101020103050101010203010101010101010102010201030201010101020101051d010
5030101011c010201030101011c010101010501010501020102041d01010101010302010101040
10101010101010101010101010101010101010101010101010101010101010101010101010101
0101010105020405262d010101010101010101010101010101010138d50102010101010101010
10101011d011c04020355021d1d010105015205050152015263024401011c01010201050404010
4011c0000010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010105050101030101010201010202
010501450101050403050101010102020101010101010101010105011c01630102010152030102
05020405011c02021c010101010201040101020301011d01010101040501050102010101050101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010102010501030201010101010101010101010101010101016301030105010101
01010101010101d5acc744bba6cb164aaf193b300d0a38665db0d486c60c2ac8135f713d530d9c2
7015c1214580000010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010401010503050101040101
050301010101010345010201011c01040201010102010101010101010101050105010103010101
03020101010101040103010201050101020201011c010105010201030101010102020104011d01
03030101031c050101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010505020101010101010101010101010101010101010101010101010
1050101010101010101030fa701924001d2853b6c7015c428c087c50705015d8e02101267eba41
5c189882eaede37d70000010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
1010101010101010101010101010101010101010101010101010101010101010105050101011c0
101040301027f683d0d8f01520144010101050105040101010101010101010101d5237f2357d429
58055326d1030466746703011c2386057f2d8601c81fb2671c5a064f765a02447a2466011f766876
06010204010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010301050201010101010101010101010101010101010103030105
0103010101010101010101019c7c051a3401922d3ec401e36d0101033e7c010388070186712ba8
bd503005014b16440103000001010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101020201010101

45

020101040245a4dd71991e2101010501011c03020101020101020101010101010101046f4ddd9f4
b124371749c656247c8ce2c4888568375dc3252abd7c87bd7777dd4903b248140059c889471561
18155bc0e660102010105010101010101010101010101010101010101010101010101010101010
10101010101010101010101010205010301010201010101010101010101010101010101010102
0101030152010101010101010101010d8b01ce3f446a233cc301697c6007794a711d012f1701557
987d3231566018f27ab3c4d9800000101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010103
5201020370c04e6e3474680105010405011d050101010104010163010101010101010101527d23
477d6668c9d34a5b25dbd7079601687da6b1af012201124ad5bf587e134fe0b20183bd87b54401b
c35dc7d016e9801010401020201010101010101010101010101010101010101010101010101010
101010101010101010101010101010101050202011d0201010101010101010101010101010101
010101010201030101010101010101014fd0c602906a9559d58cdb5b314931d68709770c2c96e3
8f220943ce45358caf80d14d3109130000010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010305
04010163df46ea9de39314090e1917071818180f110b180b08170b697c5a0101010101010101016
86d181a014ee24a014af0df0164480557b59c17020501044e3a022b48e77c76d01c0464873cce02
0119d9c764039e6e01040101040102010101010101010101010101010101010101010101010101
01010101010101010101010101010101010105010201010101010101010101010101010101010
10105011c010104010201010101010101011d24c801a42e39740172e28504265f2e02242b5fcb0b
6426052731c8051ca4c9211c53a954520000010401010205020101050505010101010101010101
01010105010101010101050505050505050202010101010101010101010101010101010101010
10101010101010101010101010101010101050505010101050505050505050101010105050101
01010101010101010101010101010502020101020205030501010501010101010101010101010
1010101010120c6c392bb72c074207aa921cb8779a127a15127a43279a92256010101010101010
10196c83e6abaf2242102074b0676d95d015481cbc48f2d62056a3c1cc655a271d1e0448f7754261
a045290cb116c634e7204010105020105010101010101010101010101010101010101010101010
10101010101010101010101010101010101010105010301550301010201010301010101010101
05020101550102040501020101010101010101012566040101050105d59e63010401030505010
1053c7cd5650104010204010101010101010100000102050302010102010502050101010505050
50505050501050101010101010501010101010101010101010101010101010101010101010101
01010101010101010101010101010105050501010101010101010101010101010101010101010
10105050505050501010101010101010101010101010101010101020201050301010101010101
0101040301011c01011d0170cb95ded7541f050401011c02010101010305010504010101010101
01010102493fc04c016e5c7256744a8c5756df31c654015438c649d1162c01dcc5102a5ce2897ae
365013dc0b77244b016dcb91f01030101010202010101010101010101010101010101010101010
1010101010101010101010101010101010101010104010101051da96d05010101010101030103
02010202010101a7a401010101010101010101010101567187010203010101015701010102010
101014501663e9699b20101050101050101010101010000020101010101050401010105010101
01050505010101010101010101010101010505020205050101050505050505050505050505010
10101010101010101010101010101010101010505050505050505050101010505020302050501
01050502010105050505010105050505050505050105050505050501050102010101020101010
1010101010101050101030305010501024404ba6171dcc5550101051c010103020101010102010
10101010101010102667f0301046352010356560101028fb20102057f4502050502010357550170
4dd1020304020258d501010401630401010401050102010101010101010101010101010101010
10101010101010101010101010101010101010101010101010105020201014c4b01011c0201010
10301010101050501020519a4011d1c02010101010101010101015202020101010102030152050
1030202030105030104581d010302020101010101010101010000050102010103010101010101
01010101050501010101010101010101010101010101010101010101010101010101010101010
10101010101050505050505050501010101010101010101010101010101010101010101050501
01010101010101010101010101010101010101010101010101010101010101020101010105020
101010101010101010101010101010102030101010101010230291d0502010203010201011c030
101010101010101010101010505011c011c0101015201010105040144050101010344847402010
30105010401521a2804010301051c0101011c010401011d0103020101010101010101010101010
1010101010101010101010101010101010101010101010101010101010105010503c9510101010
1055205010501010205010101016a32050101010501010101010101010205011c0202010101020
1030105010101040501011c010101041c010501040101010101010100000101041c02050101010
10105050501010505050505050101050505050505050505050101010101050505050505050505
02020205050505050101010101010101050505050505050501050505050505050101010101010
1010101010101010101010101050501010101010101010101010101010505010101010201051c0
201020101010101010101020101040301050502010101041c01010144040201020101010101010
101010501010101010101010144010505010501051d010102520104011c01010203030104a18f0

1010505010301011c4bd5020101050101044401010101010504010104010101010101010101010
101010101010101010101010101010101010101010101010101010101010101040105036d488f4
fd1550101010102010205017f863058ce7401050501010101010101010101010301050101010402
02010505010204050104010105010104050101050104010101010101010000040101010301010
10501010101010101010101010101010101010101010101010205050101010101010101010101
01010101010101010101050505050505050501010101010101010205050501010101010101010
10101010101010101010101010101010101010101010101010101010101010505010101010501
01010101040101010101010101010505010101010101010302010101010501010101520101040
10203010103010101010101010101020501010201010101010304020103010105010101030144
051c05030301010504030103010301050401014401020304050105050101010101010101010101
0101010101010101010101010101010101010101010101010101010101010101011d010101010
122424048372a0201011c01010501558742c5c77c6701010101030101010101010101020102010
11c010101020102010101030101020101020502010202050101030501010101010100000144010
10301050104020501010501010101010105050505050101010101010501010105050505010101
01010101010101010101010505050101010101010101010101010101010101010101050505050
20501010101050201010505050501010205050101050502010101010101010105010105050101
050101010101030401010101010101010101050101021c05010501010101010202010105020101
01030101010101020201010101010101010101010305010101520401020104010155030105011c
05010103010101010205050104020101520101010501010101010505010101011c1c0101010101
01010101010101010101010101010101010101010101010101010101010101010101010105010
1041c01011c01010301010405010101030101041d0104010103050501010101010101010101020
504010101050501050201014501010501010101010102040201011c0301010101010101010000a
f353b38354c41383837474c4c474c4c4b4b4b4c474747334c4b4ac9c94a4b4c4a4b37343f3a3f393
9393939393939393a3a3a3b4141411e1e1e1e1e1e1e1e1e41414141414141413838343f3a3b411
e3e1e3f38373333373834393f3f3934383733474747473337343434343434343434353738383735
343a4734394b38c928010101010101010101010101020101020104010204010105010401030301
05050102020101010102010101010101010102010101020101010102010201010501010301030
1010401010301030105010203010101010205050501050505011d01011c0504010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010103
0303010402010101020101050102040101021c010104010502011c010102010101010101010102
01010502010101010301010301020101050501010101010101020301010101010101010101000
0405d6d5f545f5ca15c3297cba9519474bd97873294bda9872789892727a42ca9329794a1a19497
3297a9a994bda16d5c6d6d6d6d6d6d6d6d365431c95f6da1315f5431515131545f5f5f5f5f5f5f5f5f5
45454545454545454545454545454545454545454545454545454545454545454545454545454
54364b3154945c4060010101010101010101010101010101010101010101010101020102030101
01020101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
0003833010101020101030501020103011c0501010105020101010101010101050201010505050
50101010105050202030301010101010101010201010505010101050101010101010501010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010501030101673701010101010101010101010101010101010101010101010101
02010502050501010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010100003b37010502050101020101520101010101010101010101010502020505010101
01010101010101010101010101010101050505050505050501010101010101050101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010501010102014f3d0101010101010101010101010101010101010101
01010101020201050501010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010000384c05020101011c050301011d01440501010101010101010101010
10101010101010101010101010101010101010101010101010101010101010501010505010101
01050501010101010101010101010101010101010101010101010101010101010101010101010
1010101010101010101010101010101050101010404683a010101010101010101010101010101
01010101010101010103010104010101020101010101010101010101010101010101010101010

47

10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
1010101010101010101010101010100003a330101010505010201020101050101050202020505
02020501010105020205050505050505050505050505050505050101010101010101010205010
10505010101050505050101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101011c010103864901010101010101010101
01010101010101010101010101010163010405050105010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
1010101010101010101010101010101010101010000334a010101030201016601010144010101
01010101010101020101010105050101010101010101010101010101010101050505050505050
50102020101050101010101050501010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010301030101014f1e0101010101
01010101010101010101010101010101010101525f040502010501010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
0101010101010101010101010101010101010101010101010000394702010101020255bd6d021
d0105030501010101050101050501010101010101010101010101010101010101050505050505
05050505050101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010201010504055a3f0
10101010101010101010101010101010101010101010101705d63010101020101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010000394a01050101010
10167785701040102010101010105010101010101010101010101010101010101050505010101
01010101010101010101010101010101010501010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101011c010
105017641010101010101010101010101010101010101010101010101445d4402010105020101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101000047c901
0101010101017f9b681c050101010
Communication between threads is achieved by reading from and writing to shared objects. Of
course, these objects need to be protected from simultaneous updates in order to avoid interference
and subsequent inconsistencies developing in their encapsulated states. In Java, every class is
implicitly derived from the Object class, which defines a mutual exclusion lock. Consequently, every
object created potentially has its own lock (the locks are only created when needed). The methods of
a class that are labeled as synchronized can only be executed when they have acquired their object's
lock. Similarly, a synchronized statement naming an object can only be executed when the object's
lock has been obtained. The Object class also has methods that implement a simple form of
conditional synchronization. A thread can wait for notification of a single event. When used in
conjunction with synchronized methods, the language provides a functionality similar to that of a
simple monitor.

2.3 Threads in Detail


As mentioned in Section 2.2, Java has a predefined class, java.lang.Thread that provides the
mechanism by which threads (processes) are created. However, the language only supports single
inheritance. This means that a subclass (child) can have only one super (parent) class; multiple
inheritance is not supported. Consequently, to avoid the code for application threads having to be
declared in child classes of Thread, Java also has a standard interface, called Runnable:
package
java.lang;
public
interface
Runnable
{

public

void

run

();

Hence, any class that wishes to express concurrent execution must implement this interface and
provide
the
run
method.
The
Thread
class
does
this:
package
java.lang;
public
class
Thread
extends
object
implements
Runnable
{
//
constructors
public
Thread
();
public
Thread
(String
name);
public
Thread
(Runnable
target);
public
Thread
(Runnable
target,
String
name);
public
Thread
(Runnable
target,
String
name,
long
stackSize);
//
methods
public
static
Thread
currentThread
();
Public
void
run
();
public
void
start
();
...
}
Thread is a subclass of Object. Among other things, it provides several constructor methods and
the currentThread, run and start methods.
Important note An implementation of the Thread class may choose to implement methods like
start with synchronized and/or native modifiers. These modifiers are
considered part of a method's implementation, not its specification. For example,
the native modifier indicates that the method is implemented in a language
other than Java.
Using the constructor methods, threads can be created in two ways.
Thread creation by extending the Thread class
The first way to create a thread is to declare a class to be a subclass of Thread and override the run
method. An instance of the subclass can be created, given an optional run-time string identifier and
then started. For example, consider a robot that can move in three dimensions. A separate motor
controls movement in each dimension, and these motors can be operated simultaneously to move the
robot to the required position. The structure of the system is illustrated in Figure 2.4. It shows that a
single robot (whose operations are defined by the Robot class) is driven by three motor controllers
(whose operations are defined by the MotorController class). The motor controllers are governed
by a user interface (defined by the UserInterface class). The Motor Controller class is a
subclass of the Thread class.
0100090000033e7f000000003b36000000001610000026060f002220574d464301000000000001
0022bf000000000500000000200000c0700000c0900000010000006c0000000000000000000000
d20100006400000000000000000000006a400000e70d000020454d4600000100c09000000c0000
00010000000000000000000000000000000005000020030000c40100001a010000000000000000
000000000000e3e306006e4e0400460000002c00000020000000454d462b014001001c00000010
0000000210c0db01000000600000006000000046000000b0220000a4220000454d462b22400400
0c000000000000001e4009000c00000000000000244001000c0000000000000030400200100000
00040000000000803f214007000c0000000000000008400005fc210000f02100000210c0db01000
0000000000000000000000000000000000001000000ffd8ffe000104a4649460001020100480048
0000ffed05d650686f746f73686f7020332e30003842494d03ed0000000000100048000000010001
00480000000100013842494d040d000000000004000000783842494d03f3000000000008000000
00000000003842494d040a00000000000100003842494d271000000000000a000100000000000
000013842494d03f5000000000048002f66660001006c66660006000000000001002f6666000100
a1999a0006000000000001003200000001005a00000006000000000001003500000001002d000
000060000000000013842494d03f80000000000700000ffffffffffffffffffffffffffffffffffffffffffff03e80000000
0ffffffffffffffffffffffffffffffffffffffffffff03e800000000ffffffffffffffffffffffffffffffffffffffffffff03e800000000ffffffffffffffffff
ffffffffffffffffffffffffff03e800003842494d040800000000001000000001000002400000024000000000
3842494d0414000000000004000000023842494d040c0000000004460000000100000070000000

49

180000015000001f800000042a00180001ffd8ffe000104a46494600010201004800480000ffee000
e41646f626500648000000001ffdb0084000c08080809080c09090c110b0a0b11150f0c0c0f15181
31315131318110c0c0c0c0c0c110c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c
0c010d0b0b0d0e0d100e0e10140e0e0e14140e0e0e0e14110c0c0c0c0c11110c0c0c0c0c0c110c0
c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0cffc0001108001800700301220002
1101031101ffdd00040007ffc4013f00000105010101010101000000000000000300010204050607
08090a0b0100010501010101010100000000000000010002030405060708090a0b10000104010
30204020507060805030c33010002110304211231054151611322718132061491a1b1422324155
2c16233347282d14307259253f0e1f163733516a2b283264493546445c2a3743617d255e265f2b3
84c3d375e3f3462794a485b495c4d4e4f4a5b5c5d5e5f55666768696a6b6c6d6e6f6374757677787
97a7b7c7d7e7f71100020201020404030405060707060535010002110321311204415161712213
0532819114a1b14223c152d1f0332462e1728292435315637334f1250616a2b283072635c2d2449
354a317644555367465e2f2b384c3d375e3f34694a485b495c4d4e4f4a5b5c5d5e5f55666768696a
6b6c6d6e6f62737475767778797a7b7c7ffda000c03010002110311003f00f554924925292492494
d5ea4d6bb0ded780584b03c38020b77b7787877b766dfa485f63e87fe8317cfd95ff72be9a07824a7
17330abf543b01bd3c33da0b2fada4492ef508f4835dbb6ecd9ee53c3c6c7df67dbabe9fb34f4852d
131e367a815ccfa8bfd288fa5b402276b9df42e6c47beafcc56e0770252539b934f4a6d6d7515d02d
1655b4b03374fa8cfa3b7dcb4d340f04e9294924924a524924929fffd0eef168c0fd8f4bebab19f9671
98e60b76c3ac3582df55df4fdcffa6e42adb617816f4fe9fe99f4c1736d1224feb0fdbe8fee7ba9af77fd
717ce8924a7e98bf1fa5b2bdf45740b839a585bb41ddb9bb61c14474ef536bd96de4301ac7e9ec6f
d1759a91b5beedcfd9ff0016be6949253f476452fa6d700db1cd6d75d7916d973cb763ec2e12c733
d3b9cc6badf7eff6311732b68babfb15782faffc30b8ed77fd6cd6d7af9b12494fd20596976b4606d68
968df32f910773abfd13366ff00a0db2cf53d3fe5a68c91be28c01afe8cfa84c8fe5b7d35f3824929fa5
2caeafb18796515e49b2b8f45c0c13656df65bb776eff00ada4ee917398186fc9f6c4b865580b8811
b9db583fe8fb17cd6924a7e94fb165e2916e3b5d6ba5eeb0d992f83bbbbbf46edfb3fc0b3d3ffb6d45
98b91b1a69af11f5bb6969b243833d3afe96c6bbd4b3d6f5bf3be87a6be6d49253f49fd973b6c6cc1
ddb4fbe1df4bc766d0dda8b462b5cd79cca314181b0552ef1dfb9d6358be6749253ffd93842494d04
060000000000070005000000010100ffee000e41646f626500644000000001ffdb00840004030303
0303040303040604030406070504040507080606070606080a0809090909080a0a0c0c0c0c0c0a
0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c010405050807080f0a0a0f140e0e0e14140e0e0
e0e14110c0c0c0c0c11110c0c0c0c0c0c110c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c
0c0c0c0c0cffc0001108004c015e03011100021101031101ffdd0004002cffc401a20000000701010
101010000000000000000040503020601000708090a0b01000202030101010101000000000000
00010002030405060708090a0b100002010303020402060703040206027301020311040005211
2314151061361227181143291a10715b14223c152d1e1331662f0247282f12543345392a2b26373
c235442793a3b33617546474c3d2e2082683090a181984944546a4b456d355281af2e3f3c4d4e4f
465758595a5b5c5d5e5f566768696a6b6c6d6e6f637475767778797a7b7c7d7e7f7384858687888
98a8b8c8d8e8f82939495969798999a9b9c9d9e9f92a3a4a5a6a7a8a9aaabacadaeafa110002020
102030505040506040803036d0100021103042112314105511361220671819132a1b1f014c1d1e
1234215526272f1332434438216925325a263b2c20773d235e2448317549308090a18192636451
a2764745537f2a3b3c32829d3e3f38494a4b4c4d4e4f465758595a5b5c5d5e5f5465666768696a6b
6c6d6e6f6475767778797a7b7c7d7e7f738485868788898a8b8c8d8e8f839495969798999a9b9c9
d9e9f92a3a4a5a6a7a8a9aaabacadaeafaffda000c03010002110311003f00f7f62aec55d8abb1576
2aec55d8abb15762aec55d8abb15762aec55d8abc9fc83f963f971ac793f47d5753f29e937ba95d42
66b8bcb8b28259e492476666691d0b12c7726bbe2ac88fe4f7e54935ff0005e8b5af2afd42dfed78fd
8eb8aaeff9545f95b40bfe0dd1f88350a6c60a5694ad38f5a77c55cbf943f958a289e4dd1d41ecb630
01d29d931542ea1f96df937a3c22fb55f2e683616fc963173736f6d027363f0af370a2a4f4df15425a7
943f227569d2c6c74df2ddf5ccd511db422d2777a2972022924fc20b1dba6f8aa707f29ff002cc904f9
4b4a246e09b488904ffb1c55b1f951f968294f2a69629b0a5ac7b0f6db155087f2dff2a6ea7b8b6b7f2
f68f35cda32add431c30bbc4eea1943a8a95246e2bdb1557ff9553f96bff52ae99ff48b1ff4c55c3f2a3
f2d41a8f2a6995ee7eab1f6fa31570fca9fcb51d3caba60efb5b463f862a81b2f2c7977cafe7fd223f2e
e996fa5ade697a99bb5b48c4425f4a7b1e1cc2d01e3c9a95fe638ab3ec55d8abb15762aec55d8abb
15762aec55d8abb15762aec55d8abb15762afffd0f7f62aec55d8abb15762aec55d8abb15762aec5
5d8abb15762aec55d8ab14fcb414f226843c2d80dbd99b156578abb15762a81d56c6c6f6d835f5a2
5e7d549b9b7478c4cc932232878c107e30188046fbe2af9cf4cfcbed793f2e7f2a208b47d4745f3468
d61736fab5ce9f125bea36ad6fa3de430c6f2a862019a4555e24f2e7d685b154c2de3fce3b8d36e75
cd425d796f9db41b7bcd3a158c2c7693e9f6875292dadd1a12d24776b272e32fa82332fa55f86aaa
227b8fce4b2d4eca2d222d72fa5b2d3c5b4777a9a5b2dade4cda4de3452cb142dc237fad8b659bd4
677e7fefb8b9f255997e55e9daa5b6bfe6cd46facb54b7b7d517489a0b8d668679258ecbd39d2b52
7f76eb43fb353fbbf8298abd4315762aec558c6a3ff29ff97cff00dab356ff0093d618ab27c55d8abb15
762aec55d8abb15762aec55d8abb15762aec55d8abb15762afffd1f7f62aec55d8abb15762aec55d
8abb15762aec55d8abb15762aec55d8abcebc83e72f28d8f9434bb2bed7b4eb5bcb78de39eda7bb
8239a36491c10e8ce08229b823156467f303c863af9a3491dbfdefb6ebff2331577f8ff00c89d3fc4fa
4ffd27db7fd54c55c7cffe4402a7cd1a481dc9bfb61ff333156bfe560f90bfea69d23fee216dff0055315
6cf9ffc863af9a34815ff0097fb6ffaa98ab43f307c824061e69d1ca9e846a16b4ff9398ab47f307c822

95f3568e2bd2ba85afcbfdf98abbfe561f9037ff9daf47dbaff00b90b5dbfe4a62ae1f987e403d3cd5a3f
fdc42d7e7fefcc55dff2b0fc81ff0053568fff00710b5ffaa98ab87e61f9009a0f3568e49dc01a85affd54c
55298bcc7e5ed7ff307454d0b56b2d51adf4bd54dc0b2b98ae4c61e6b00bcc44cdc6b434ae2aceb1
5762aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abfffd2f7f62aec55d8abb15
762aec55d8abb15762aec55d8abb15762aec55d8aa89b4b5662ed0465cf5628a49afbd3155bf51b
2e9f568bfe017fa62adfd46cbfe59a2ff805fe98ab46c2c4f5b588d7afeed7fa62ab4e9ba71209b4849
1d0fa69fd315637e6e8ed5a3b3f2c69d0c516abaebb4292471a8682ce2a1ba9c1e0c01446e295ff0
076c91e2a86f2b695a4796efe7f220b1863b0b78cdef975042a231a7160af029e007fa3c8dc42d6a2
178715659fa2b4ca71fa941c7c3d24a7eac55afd11a57fcb0dbffc8a4fe98ab8693a58e9636e3fe792
7f4c55dfa274aebf51b7affc624fe98ab5fa2349ff00960b7ff9129fd31556b7b2b3b524dadbc5016d89
89152a3df8818aabe2aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb157ffd
3f7f62aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb156
1579179af4bd6b5af322d8585f5bfa2b158b49792c12c5656e9ea321516b20e4f217663cb71e98fd8
c552f5bbf3a79b2c3cbbe63b1d174eb470d6ba9dacada948eeb6d7283d68987d48579c2ecbd7edf1
6fd9c55e8b8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb1576
2aec55d8abb157fffd4f7f62aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb1
5762aec55d8abb15406b7be8da88f1b59ff00e4db62a967e5fefe43f2b91b0fd116141ff46d1e2ac8b
15762aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb157
62aff00ffd5f5ff0096bcd1f983e68f2f695e64b1d174686cf57b586fade19b53ba3224771189155f8d8
95e401de8698aa6ab75f995fb5a4e87f46a777ff78fc55c6ebf3278fc3a4e87cbbd753bba7fd4062ad
0bbfccbfdad2342fa353bcebff70fc55afadfe6653fe391a1134dbfdca5e75ffb87e2aefae7e667fd59b4
3aff00db52ee9ff74fc55afae7e66d0ffb85d081da9fee56ee9eff00f4aec55c2f3f33aa6ba36834ec46a
b79d7fee1d8aa1355f3179ff43b19755d4743d21ac2db835c0b7d52e5a6e0582b1457b0552457605
96b8aa27ccbe7dd27ca7ab1b7d6ae56dec23d3cdfc8cd1b023fd2e1b40c6666112a86994306a539
72e5c6b8aa879d3cff001f972d204d3eddae7589fea33fd5a48df84569777d6f66cf2904713fbe3c07
5e4a76e2ad8aa5f17e707975cdbdfce2e6cb439d0812de5abc0c0fd7e1b0f58bb3f1585659955cb0e
5bf3fb15c5515ff002b73ca8c6e05bc7a85c8b531a4ef6f6534d1ac933c089197505791facc47af42df
c8fc5559acfe65c367a779675fd2ece6bfd175abcb9b5bb8638247be8d6dad2ea77291022ac8f6a51
c1ed5e35daaaa6fe5bfcc1f2cf9b2e7ea9a25c3cf37079802853f70a904892d0ee1254b88de2623e3
53ed8aa1345f32f9bfcc1a6c3ac69fa269eb6375c9ad7d7d466594c6ae541755b36009a740cdf3c55
306bdf3d72f8746d30a7bea5386ff00a82a62ad0bdf3dd472d174be3b569a9cf5f7a7fa0e2ab85ef9e
29be8ba6d7bd3539baffd2162ab96f7ce74f8f46d3f977e3a94a47e36631543ea12f9d6f2caeacd347
d397eb113c41cea32edea271ad059f6271541f972dfcf3a0f97348d0df4ad3679b4cb2b6b279c6a33
2248d6f12c6580fa91201e35a62a99fd7bceb534d174ea76ff007252d7fea0b155e2f7ce35df46b0a5
0569a8c95af7ff008f3c55df5df38536d1ac797fdb464a7fd41e2ab1afbceb5f8745d3a9b75d4a51f3ff
008f2c55df5ef3aedfee174ef7ff007252f8ff00cc17862aa765afeb6bafdb685ade996f6a6f6d6e6eeda
7b5bb6badad1e0465757821a57d752082dd0e2a91dbfe73792af22965b27bcba58d7d588456b233
4f08b76bb6921141cc2c49c987dbdd578f360b8aa20fe6d7944da9bb89aea68cbcd146b1dbb9791e
10180453427d58cfab17fbf231c862a96dd7e79f92ed1ae3d5b6d5bd3b7b89acde51a74e14cd6b66
750980e401fdddba991aa3fc9fb5f0e2a8dbbfcd9f2e3db6a034433dfdfc1eac5a784b791a0bbb9892
e1992290515b87d565327c40aaad7f69392a95cdf9b8da558f93358d72c59748f30e812eb9aacd65
14b70f64d12d8b162abb88145d3991c82cbc57fcac559a797bcdda4f99cca34b131f403fafeac663f4
de2b99ad5a36af471240ff000ff2d1bf6b1551b8d7f5b975abfd2346d2edee469d1c0d34f7578d6dc9
ee43300aa904db00bb9247cb1555faf79cf97fc71b4fe1beff00a4a5afb6df53c55b17be70e3be8d61
cf7dbf48c94f6ff8f3c55df5df3854ff00b86b1e3b53fdc8c95af7affa1e2ad1bef3950d345b0aefc7fdc94
b4f6aff00a1e2ae17de72efa35876e9a94bf4ff00c79e2ad9bdf38f2db46b0e3ff6d192bff5078aac6bef
3aedc345d38f8d752947eab238aa99bff3ef2f8743d2f8789d52707eefa8e2aa32eabe7d8a58233a0
e9644ee6307f4acfb108cff00f2c1e0b8abffd6f657e5053fe554791e9df41d309edb9b48eb8ab34c55
8d79d7cdbfe0fb1d3ef4d91bdfd21a95969288b2ac2125d4665823766607e10ec39537a78e2a9779
77f347cb7ade8571aedfcaba2c3697f79a55c0bd923f4cdc69f21499a29509496214e5eaa9e216bcf
895601554d13f333cb1abeb3aae8125edbd9ea7a75e49690432dc444dd451d9c17c678a8774f4a7
0dfeaab37d9df1547c7e7df27cd79a7e9f6dabdbdc5e6a772f6569142dea13711c06e4a371af0fdd0
e6395392952bf6862ac8f15762ac5ff0031891e4ad5c815fdda0a7ce5418aa2b59f27683af5e1bfd4a
191eecda3e9e5e39e5881b5965499d0aa305219a35ad46e071fb3b62a85d57f2f3ca3acc9a74b7b
62e1f4b863b6b4f42e2e2dc7d5e09239a38a410c88244492247559397165f9e2aa2bf967e4dfa9fe8
d9ac1ae74d36375a53d95ccf34f03d9dfcdebce8eb23b062cf43c8fc4b4f8580c5574ff0096fe529aee
fef16d66b7935396dae2f23b6bab98207b8b3f4bd394429208d64a431ab3aa86744556aae2a82d5
bcbfe44d0b48d2742d4c5c5ae996f757173a7ce24bc2229e61299bd4b942782c8b712ad25755657
645c5517e4bd1740b7b9d53cc5a2dce9f7a9aa7d5ede09f4a8e34863b0d3d0c56d0168de40e6305
aad55ebc422aa8c55df960dcbc85a1b74ac0c40f0ac8f8ab2d6e5c4f020353e127715f7e98abc01ff0
0e721f568bf2bf54f324da25b2f9f34abb8ed67d13d76fab7d5ae3d29e2bd0d4f53d06b6991fa7f7d5
86bfb58abd0b59fcdbf2d6856fa84b7297374da71beb7696de2021b8bfd2ad1af2e2d6277703d411c
6e406a29e0ea1cb29c55cdf9bfe518511eecdc403eb1169d3b98b94716a771643504b366524194c

51

2cbf66b1f3658f9f33c7154168ff9977de76f312e85e50b41636f169367af5c6a1ad412ab3db6a524a
96ab0dba3c6c798824667775e1f08e0cd5e2aa696df98969632c3a4f999445ae45756ba5ea92d8a
bcb6106a37e395b43ea3d1bf7aac85495a2fa88aeca5b154b6c3f3abcb3aba69cda558ea339d4e7d
2e2b7496dfeaec60d69677b7b8fdeb2d6322da5047db057ecee31557b6fce5f295de9efaa430ea3f5
44b2b9d5497b47473a758b04b8b908c43148d885a539b1feed1c62a931fcddbab7d50b5f0b18bcb
517986fb49b8bf1ea9234db5f2f9d6d2e41e4472db8b7c2414fb3be2a9e41f9bde59bb92cedececf5
4b9bcbfb992d2dada2b1959d9e2b78ae99abf6427a532b72e5d43c7fdea3262acff0015627aa877f3
fe84913fa721d2358e2f4e5c499b4f00d0f5a1c558df967f26ac34ed33ea1e62be975495643345343
2dcdb949a5478ee654266774faca485668d5fd2e3f657be2ac8eeff002d3c99766e655d3daceeaea
5b39e4bbb19e7b3b85974d8beaf6cd1c90488c9c22263f80af24255b9038aa0e6fca2f22dc4335bc9
653fa33dd5e5f48a2eee56b3ea367f509cd4495a3404c60745fb4bf1fc58aaa37e547928dbbdaa5ad
cc309b86bb8161bebb8beaf34a1c4a6db8ca3d112fa927acb171593d47e75e58ab7ae792bca56fa1
e9f1cfa5dd5de9fe5eb26d36cec6c9e79657d3e41123db322bf299184319647e45bd3efbd5542f90a
efca96726a2d0ea102f99bcc37b26a5a9dbcb0cba65c3ce512150b677644abc638914f8bf27eae71
54d3426af9d7cda2bbaae9a29e1fb8738ab0df2ff983ce7aa79735ab89f5d02fed3ce336876d75f538
071d3e0d4d2cbd32940a5d9093ea7f37ecd3e1c55191fe77e87731ccb61a4ea17ba9a5c5d5ac5a4
5ba23ea0d25823bcc8f6e1bd489c051c56554f53d489918a3f30aa4de6afcd6d6751d2ae67f295bd
e68874af33e8fe5dbebfbe86d64495b50bdb38278961323c8a443781d5d9578b8e27bae2a99dffe7
52dbc7731daf96ef5efe39445670dc4d6d125c7a7ada685390e9249c384d22b28703d44e98aa323f
ce2b2ba7b83a7f97757bcb24b98acacafe38523b5bab892f8e9cc91cb33c6954980aefbc67d45e8d
45520d3ff0036b57d3e6f30ebfe6db49edb45b2d4ae34a874a8bea927d5d6c843ce5f511fd4924265
a141cd7f97885f895645a8fe6f595859477f1e85a95ec3a848f0e80b691a4f26a2d0adc3ca228e366
652a96cef4902f2568f7e4cc1157a0da5cade5ac17688f1a4f1a4aa92a949143a860194eeac2bb83d
31551bcff7a74fff009886ff00a879b157ffd7f657e501e5f951e47352d5d074cddb627fd123eb8ab34c
5589fe60792ffc75a65869525d436f6969a9596a77315c5b0bc8ae12c6613081d19d071908a31dfe
1ed8ab11b2fc933a55bd85a699e61996d7448f53d3b408aea01722d746d656312d93d645f5442d1
27d5a46a3471afa4feaae2aa2bff38ffa1fe8693ca736a73bf94fd55b9b7b60812f639d3455d1149b90
d42a2152f41183ea1fb5c3e0c5538b5fcaebc8bcc7a779beeb5c13f98ece7b66b99c59ac70dc5a5b5
94d646331acbf0c8e2e1e4f5791e2d45f4f82818abd2315762ac53f33231379175a898b059215462
84ab51a4506854820fb838aa1f59d1740d123b59674d62e23bcbb82cb9dbea37ee227ba71123c95
b95e29c8a82457af4c5532ff0005e8dfefdd47fee29a87fd9462ab0f91b4535ff48d5057c356d447fd8
c62ad7f81b45dbfd2354dbfed6fa97fd9462ac57cd9a743a2eaba168fa58bdf575c9dedfebf79ad6a8
b0c4ca85c288a2b9124aec036cbc5540e4eea31540da7e4168adab5a6bdaaeb5aa1d56ce769e26
d2af2ef4c46561431cacb3c93c8a69f1069a8de18ab2efcae509f97fa0aa9240b7d8b124d39b75271
56592a192278c3b465d4a89128196a2951504547cb1579adefe43f912ffcbd3e83702f0cb73a65b6
8371ad09c0d524d36c6e1ae6184cfc3a073d42f2655504fc38aa6337e51f94eea5bd6bc377736d7e
6e66b8b29261f57faedf5a1b2b8bc54555e33c90b3ab303c2af23aa2bbb362a858bf253c9d1021a4
bf9b988669fd7b9f5bd5d46d6d0d8c5a83f3535ba5868bcfec7c08cd197456c5516bf955a2411e8cd
a76a5a9e9daae87a7a68d6fac5a5c225e4da74628905c968da39550fc485a3e48d56465666e4aab
bfe57f971f531aa096f448c6d66b981ae5a58ae6f34e5e36b773faa1d9e78a8b472df1708fd457e0b4
5526b2fc8ef2bd8416d05b6a7aba8b28f4986ce4176a2485742799adb8b2c40ee279524aff00788e
41ed8aa261fc9af2bc1a4e9fa42de6a4534eb7bbd3d6e8dc28b89b4dd45c49716733ac603c2ec01e
9ea2d3e0917156ae3f25bca577752cb7535ecb6135fdc6a72e92d2c62c9a4bbd38e93247c044184
5f55262081f6fb5f6b7c5515a1fe55e91a0cda0cf06b1acddcde5d79dac9efef9af19e2b88841e8cad2
ab168e34148c02a41ab31673cb156778ab08f33e8fa6ebbe76d074ed5ad96eac9f4bd559a272c01
659f4f23ec90715449fcb0f219eba243ff072ff00cd78aaeff9567e45a53f43454f0e72ff00cd78ab47f2
c7c884d4e8b113d2bce5e9ff0007ed8aacff009559f97f4e3fa0a0a508a7296943d7f6f1551befcaff00
289b471a668d68b7c05206b833b44b522bc8248a4edd8118ab19d47fe71f7ca3e668e28bce44ea1
6d1c9ea9d3ec55b4fb4703a23d24967603fe338ae2ac8bc8fa1693e5bf31f99b47d0ed859e9b6e9a
6886dd2a5547a0fd0b124fd38aa770792bcb16daa4dac5bd82c57b7173f5f9c2492081ef3885fac34
01bd232d00fde70e75f8abcb154b65fcabf204ec9249a2c66e6278e48aed659d6e54c313c28ab3ac
8240a2391d3806e1c18af1a62aa92fe59791e6b6b9b27d240b4bbd4a2d72e2149a7446d4adcc662
b8a2c828c8628cad3e105176f8715537fcacf21ca1fd5d243f3496362d7172c78dc5eaea32104cb50
4dcaacfc87c42415538aaa45f965e4781a56b7d2843eb5daea2c229ee1156ed26171ea22ac80216
94095c2055924f8dc3362aa579f955e40d405c0bdd1926fadcf7577725a69eaf35f84170c48901a49
e947c97ecd511b8d5462abbfe5567907d192dd7458d2292eff0048811c934663ba2ceccf0b2c80c5
c8cb273588a2bfa8fcc1e6d55596c30c36d0c76f6e8b14112848a2401555145028036000c550d79f
ef469fff00310dff002625c55fffd0f40fe5cffcaf3ff957fe1610000026060f002220574d4643010000000
00001000000000000000500000000200000c0500000c090000056ff000fff0087ff0040fe89b2fd19f5
dfac7d6bea9f574f47d5f4fe1e7c29cb8ed5c55937fd6455453fc2feff00ef5e2adffd644edff28bf4dffde
beb8ab97fe862286bfe17aef4ff007afe8c55b1ff004311c5ebfe16e551c3fdece9ef8ab43fe862682bf
e15e86bfef6f5ed8aadff00ac8cff00bf57fe9f3156d7fe862e8dcbfc2b5a7c3fef6f5c5526f36ffcaf3fd03
75fa7ff00c3bfa0ab07e90fa8fd6beb5e87ac9ea7a5ea7c1ca9d396d8abd23cf3fe18fd1b6bfe2afae7
d43eb70fa1f51faf72fad721e8f2fa87c7f6e9c797c3cf8fed71c5593ad388a569414af5fc7156f15762a
c735dff000e7e97d2bf4dfadf5af5a3fa872fac7d53eb3cff0073cb8fee7d4e7fddf3f8b974ed8ab23c55

e19e4eff0095e7fe1db0ff000d7f86bfc3d493f477d7feb9f5bfabfa8fc3d5f4fe0e74ebc76c553c7ffa19
0ab70ff07d2a38d7f4874a1ad7e9a62aa517fd0cb6deb7f83fb7d9fd21f4f5c5559bfe863a9f0ff842bf1
75fd21e1f0fe38aab3ffd0c3703c3fc25ce8295fd214ad77fc315507ffa18fdf87f843dbfe3a14eb8aae8
bfe8632afeb7f8469bfa74faff00d15c55111ffd0c057f7bfe13a7c1d3f48787c7f8f4c554dffe861b937a
7fe12e3c7e0afe90af2af7fa31572ffd0c35539ff84a953ce9f5fad2869fc3155dff005907e8b53fc27eb
54f1ff8e85295dbf0c5516dff002bcf8fc3fe16e5b53fdeff00a71550d1bfc71ff2b174bff1afe8cff8e46a7
fa3ff0044faf4afd66c7d4f57d7f6e1c38ff955c55e978abb15762aec55d8abb156036bfe24ff001df9ab
f437d4beadc34ef57eb9eb73e7e837d9f4f6a53f1c553d1fe38aeffa2a9edf59c5577fceefea0ff8e57a
54dffde9e55fd58ab67fc69c9e9fa2f8fec57eb15ebdfe8c5561ff001cd76fd134aeff00ef4f4c55aff9deb
88ff8e4f2fdaff7a694a76fa7156cff008eb7a7e89e9dfeb3d71558dfe3fa8e3fa1ff00caafd6b1553ff908
b4ff00a52f2ffa3ba531543cff00f2b17d5b6e7fa0f97aa7d3ff007b3fdf5257e9a57157ffd90008400108
24000000180000000210c0db01000000030000000000000000000000000000001b400000400000
00340000000100000002000000000000bf000000bf0000af4300009842030000000000008000000
080fd7fe9430000008000000080feffc9422100000008000000620000000c0000000100000015000
0000c00000004000000150000000c0000000400000051000000ac6c00000000000000000000d20
1000064000000000000000000000000000000000000005e0100004c00000050000000dc0300002
c04000080680000000000002000cc00d301000065000000280000005e0100004c0000000100080
000000000000000000000000000000000ed0000000000000000000000ffffff00a3a3a3003f3f3f005
0505000464646002f2f2f00494949004d4d4d0051515100414141003e3e3e004b4b4b004a4a4a00
3d3d3d004e4e4e004c4c4c00606060005d5d5d0042424200404040004747470055555500525252
005757570056565600545454005353530064646400666666005e5e5e0068686800626262005f5f
5f0061616100585858005b5b5b00595959006363630069696900676767006a6a6a006b6b6b0065
6565006c6c6c0093939300fcfcfc008a8a8a00a4a4a400e7e7e700ebebeb00efefef00f0f0f000e2e2e
200e3e3e300e6e6e600e1e1e100e0e0e000dbdbdb00dfdfdf00dedede00dddddd00e5e5e500dcdc
dc00dadada00d7d7d700d8d8d800d9d9d900d6d6d600d5d5d500cccccc007a7a7a00e9e9e900faf
afa0089898900c9c9c900fbfbfb00fdfdfd00fefefe0075757500f1f1f1008e8e8e00c4c4c400f8f8f8007
4747400ededed0087878700c2c2c200f4f4f4007b7b7b00c1c1c100f9f9f900f7f7f7007c7c7c00eeee
ee0088888800bcbcbc00f5f5f500f3f3f3007373730080808000c6c6c600b3b3b3006e6e6e0086868
600787878008b8b8b008383830082828200adadad009e9e9e000b0b0b00acacac00d0d0d000707
0700071717100eaeaea008c8c8c001e1e1e00cbcbcb00c3c3c30098989800a6a6a6009c9c9c007d
7d7d00bdbdbd00999999009d9d9d009b9b9b008d8d8d00c5c5c50026262600b6b6b6001d1d1d00
9f9f9f0072727200bbbbbb00bebebe00a0a0a000919191008f8f8f0021212100b7b7b7003a3a3a00c
7c7c700a2a2a20084848400232323004f4f4f00a5a5a500434343007f7f7f00929292000404040037
373700f2f2f2009595950017171700b8b8b800444444005a5a5a002a2a2a005c5c5c00ababab00b
2b2b2009a9a9a00d3d3d300a1a1a100a8a8a800cecece00ececec00b4b4b400979797007e7e7e0
096969600c0c0c000b9b9b90077777700b0b0b00076767600797979006d6d6d006f6f6f00e4e4e4
00e8e8e800d4d4d400bababa0016161600d1d1d100cfcfcf00cdcdcd00d2d2d20094949400cacaca
00a9a9a900b5b5b500f6f6f60090909000bfbfbf00818181008585850036363600c8c8c800b1b1b10
0aaaaaa00afafaf0048484800aeaeae0045454500a7a7a7001a1a1a002c2c2c003b3b3b00393939
003232320035353500020202003c3c3c00030303002b2b2b0034343400272727002d2d2d001f1f1
f002e2e2e00191919002222220025252500121212001c1c1c0008080800333333000a0a0a00090
90900303030001b1b1b000e0e0e00276729721fb52c2c2cb5672c29292ab529b6722c29b567b56
71f2c72b572872a72272b2c4f632a27281f67b51d2a72271f1f1f1f1f1f1f1f1d28281d2a72b51d27b6
2926271d1b9e01014e010101014e0101014d01010101010101010101010101010101010101010
14e014e014d01010101010101010101a4251120221e1c1f271d24252a2521a0941919182111211
d2820202a21a2292529676327b68711201d261c20202612a22824a0222872731d26591d2b5d876
77cb3b667111c631f202726672a2a115454672073b1544f1f1c7c6c977c6b9769476c5d6c734f2e0
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101a347a460b0c6897d7d7d89c65a578282af8ec37d82ca715a5a88
5777af5aaf7d7dc67db088afc3c67d52afc37d6089afc68888897d9e9eba889eaba4ab84cfcfb26666
b2cfcfcfc2d170667e0000d44b313e38363736b73e3eb73635b73e353731b7363e37b73e38b7373
e31b8363137b7b8aa483e31373132743748aab837373737373737373731373748aa7437b83248
3e5eaa6e7e01014d015c532e4c4c01014e01014d2e010101010101010101010101010101014e01
4c01aa62014c0101010101010101c5cc503332aa33aa9b9b5eaa614833334855327455aa745e50
5e336155aa61329b58c434585c5e34623434555533aa555e4874555e505833335b33505b58615b
58625c5e5ec45033335558629b48616261aa585cc45c345e5c4c5b534c5b58c45b9b4d74675e01
01010101010101010101010101010101010101010101010101010101010101010101010101010
1010101010101010101014d01cdc22e01010101014e4e4e4e01014d0101010101014e012e012e4
e014d0101010101014d4e014e012e01012e014d4e01014d4e01014d010101014e4d0101014e4e
01014e4e010101014e017400008f58014d0101012e01010101010101010101010101010101014e
0101010101014e01010101014e014d4e01014e01014e01010101010101014e4e4e4e0101014e0
10101012e4e88024e01014db76928c7614c4e4e010101010101010101010101010101010101010
14e012e5aac7ba90101010101010101018c7d014c0101010101010101014e01014d4e014e014e0

53

101014e0101010101010101014e010101010101014d4d014d010101010101010101014e01014e
4e014e2e0101014e01010101010101014d0101014d4e0101014e4e0101010101014e01014e4d5
b2950010101010101010101010101010101010101010101010101010101010101010101010101
010101010101010101010101010101017ac2014e012e014e4e4e4d4d4d4d0101014d4d4e01014e
4e01010101010101014e0101014e0101014d4d0101014d01014e4e0101010101014e4e4e01010
101014e4d4d4e01014d01012e4e3c0000d5610101014e010101014e4e010101010101010101010
1014e014e4e01014e0101014e4d01014e014e014e0101014d4e01010101010101010101010101
4e01014d0101010101c68a014d4d012e356b314c010101014e4e01010101010101010101010101
01010101014d0150c47dc801010101010101010151604e01014c0101014d01014d014e4d010101
014e4e01010101014d01012e0101010101014e014e4e4d010101014e010101014e01014d4e014
e01014e014e0101014d01014d010101012e4e4e0101014d014e01014e01014e4e01014d4e0101
4e01015c54554d0101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101b270010101014e4e01010101010101010101010
1010101014d4e014e014e01014e4e0101014e4d4e014e4e014e4e010101010101014e01014e4e
0101014e4e01014e4e01014e014e010101b90000d4340101014e010101010101010101012e012
e2e014e4d2e014c014c01014e4e0101014e014d014c01014e010101014e0101010101010101010
1010101010101014d0101014e60954e014e4d012e9c5b010101010101010101010101010101010
101010101010101010101015224c101014e012e014d01016a89014e0101014c012e01014e4e014
d4e010149015301010101014c014c014d014c0101014c012e014e014c4e014e4d012e01014e010
1014e012e4901014e012e01014e0101014d012e014e0101014e014c014d4e01014e01010101010
1010101014d5bb148010101010101014e4e4e0101014e4e010101014e014d014e0101014e0101
2e01014d01014c0101010101010101014e4e01014e01abd14e0101012e014c012e0101012e4e2e
01015b01010101012e4e01014e4c014e4e2e01014d4e014c014e014d01014e014e4c01014d014d
01014c014d014e014d014d4d014c014e01014ebf0000d7aa4e01014e0101010101010101010101
4d014c01014c01014d4e014e4e2e0101014c2e014901014c01014d5b014c010101010101010101
0101010101010101014e0101014e9e86014d010158cbb34901010101010101014e010101010101
0101010101010101012e014d373a308e2e2e530101014d014c4a60014d2e4d01014d01012e4e01
014d01494d014d010149014e2e014e014e014e01015b01012e0101014e4e014c01014d01014c01
010101015b01010149014d01015b4c2e014d4e4d01014c010101010101012e4e2e014e01010101
010101012e014e4969aa4e2e01010101010101010101010101010101014e014d014d010101010
14e2e4e01014d014e4d4901014e014d01014e01012e4e01cd304e01014e01014e010101012e010
12e2e4e01014d01015c014e015b01014e2e014e01014c014d4e014e4d012e4d01014d01014e010
1014e5b01010101010101014e4c0101014e01014ebf0000d9340101014e0101010101010101010
1014d01015b0101014c01014e2e01490149010101014c4d01015c53015b01014c0101010101010
10101010101010101014c01012e014db08601010101aaac81c44e4e4e4e4e4e4e4e01010101010
1014e010101010101010101010140b55f4c0101010149014d4e0181c60101014e4d012e01014d0
14e4d01015c01014e4d01012e0101014e4d4d4c014c0101c4012e4e4e01014d49015c01012e4e0
1012e010101014e0101014e014c0101014e012e0101014d01014d4d014e4d2e014e012e0101010
1010101010101014d58875501014e4e0101010101014e0101010101014e014e014e012e4e0101
01014e010101014d0101014e015301490101494d01014e01016d914d01014e0149010101012e0
10101012e4d01014e014e014d2e4c010101012e2e014ec401014e014c4c010101012e4d4e01530
1014e4e01014e4e01494c4e010101012e4d014e01014ebf0000d061014e01014e4c01010101010
101012e012e014c5b4e4c014e534d015b49010101c449c401014d4d58014c01015b01010101010
1010101010101010101010101014e4c01018930014e4e53015b4d0101010101010101010101010
1010101014d4e4e4e4d4d4e4e4e014c01301c793c585b0101012e01018c602e0101014d2e01014
e01014c4d010101492e014e014d010153014e014d01015b014e0101014d4d014c4e012e01014e0
12e014d0101535b01014e015c010101014d4e0101014d010149494d01014c4c01014d4d014c010
1010101010101014d0101c487aa014c4e4e4e4e4e4e4e4e0101010101010101014e4e01014d4e0
14d01010101014d01012e0101015cb9bd58010101014e4d014c01b0cd014d01012e014c4e015b0
12e014c01010101014c014c014c010101010161014d0101014e4d4d4e010149010149014e01014
9014901014d0101014c010101012e4e01014d014e01014ebf000003504e4e01010101010101010
101010101015b01366417ba01ca24b04c812fae5855756851bf013eb47b2f344c26974d01010101
0101010101010101010101014e4d0101015c8486014d0101014c01494e4e4e4e4e4e4e4e014e4e
010101010101010101014e0101014d4e01583b70a556b486372e4c012e98894d4e014e4e01014d
4c014e01015b01010101494e010101490101015c014d49014c01015b0101014d5b4d2e01012e01
014c01012e014e010101494d012e4d4d010101014c014d4d4c01014e015b01014d494d01490101
01010101010101014e0101c463aa4e0101010101010101010101014e4e010101014e4e0101014e
014d4e4e4e014e4d4e014d4c2e012ec6a55d5dc2b72e01014d0101cd304d010101014c014e0101
2e01010153014d5b01012e0101014d014e012e010149015b4e01012e014d01012e4e0101014e2
e01c4014d4d4d4d4c01014e014c01014d4d0101014e01014ebf0000d7550101014d01010101010
1010101010101012e0198d55b43eb47011fb4332f2643d73437243f2c5dc456ac4b15b74c010101
010101010101010101010101014d01012e4d01af9c615b5c495b2e2e5b494949494949494953c4
585858589b5058615cc4615861c49b615b5c5b53490135c6ac989754c26192b00101014e4d0149
4d01014e019bca872d01390143592a7a497db3754d2ec667310197923a01752cb00101407372b1
432e01a772a8015272cc8a2b90bd20845987b001375d4f410180b6a88c28654cae25c6015d67a9

0101010101010101010101015359502e01010101010101010101010101010101014e014e014e0
14e01010101014e0101014c4d01012e014d4d0171cf7bad977d014c2e6d024e014e494c01014d5
c4e2e4e4c01012e01014901014e2e2e4d4901c401012e010101014e5b012e014e4e012e4d49015
b014e014c012e01012e015b01012e4c01014c4e01014e01014ebf0000d9500101014d4e4e01010
10101010101014d015c01a40f491307015ee49e4d88d75ace01010986ea390190a2ab11014c010
101010101010101010101010101010101014d0101cd20ac8b682d9cc051c5c5c5c5c5c5c5c5c56a
4a686868c86bc7c76b92926cc76c92565f56976bad927cb4c84a8108d8eb734fcd4c01014e4e010
1014e2e2e010137e7cc4925cac40fe140be0ec18b644d12d06524b64525bf80d4b80146dc4f44662
c3acd104b81ac33dd609ee3aa98e0ba1b2b4d7494ae781f48b283319076392fec1c7340591ac401
01010101010101014d014e5c544684cb84c3c3abab666666c3c3848e8e84c3c3c39eababb284ab
aba4cb84abcdab9ecf84ab84bab2a4ab84c37d7860c009d6966ab080a8012e0101015c8c756ac24
c01cc7ba3465b5f87c5747e72a63e6e116dcd67c17f2c488ac73966a2753ecb278237c8973e66c70
26cb87928ab01c122c03401014d012e0101014e01014ebf000007c44e4d0101012e01010101010
10101014d014e0184d72885444e589a7d01acd6bd145b019aa394744e79119e20014e010101010
10101010101010101010101014d01014d0182c0349baa615533623334343434343434349b34333
462586250509b586250349b58c455339b5cc44e5c44a3985f2a8a33532f8901014e0101014c014d
01014d014db3aa52e6184db10f011cb4015be73c177771e83d01a22b8e28015cc992014e010150
d966014b0cc496413b074e69d14c5dac01cd0b49012680be150135d634d60201493a80ae4d0101
0101010101010101014e5b4fc6ac759c9cc02d2d988b8baeac7e80807eacae7e7baec051ac9cc05
6568b8b4a8c8b6c75c079794a8b7e2da7956eae751dd5e3162d2f30010101014e540f3d5ca38601
c536561b80e090abaf68e05b01b0e94536d45bac0d010aa35285b282a7ca21614d721e4915cc8b
1a7aa15a304bd4029e3062014d014e014d014e01014ebf00000e340101014e014e010101010101
01014e4e014e0184dcb8a3d68e01c6c5a4238a38e27b11192e9e8bcd0846910e454e0101010101
0101010101010101010101014e010101019e7a4d01015b0101014e01530101014e012e4e4e010
14e01014d01014901014c4d014e012e01587770a52c7c77500101014d759e012e014e014d4e4e4
e0101014d2e4f380c698077ad082e28510155de3825c6afe35b4d2324c3274e48e4714d4e010149
ce5a01ba969b143f391401478001b49c4d6d1a014e187ea99f4d389a5596a5892d37a5564c01010
1010101010101012e019b725001012e014c012e4d014d4d014e014e012e010101014d01012e010
14e01014c2e0101014c4e5b015b01014cbdcd81476ebd4c014ed191014e014d019f9501019b2f2e
5059de70b18bc4015c800e01013ae53662184ecf2601ce3dc2185c2e613c4f0101c7ad019eb2927
275024e4d4b9650623101c4010101014d014e014e01bd00008f34014e010101010101010101010
1010101014d01cb144e0115234e0148af3201be0535caaa01013ba93401c61e320101010101010
101010101010101010101014e010101018491010101014d4d01015b012e4e5b014d010101012e
4c014c01014901492e014e4e4e2e010151b665315c01014949014c012f8e014d014e01014e0101
014e010101ada3933761aeb51601cd2cb7982a580c6d9b9a52b78fba7bde8495d2bf010101012e5
62d324fb14d76ae980b53b65158091084cb1143389a3a650a0139d75381b47ddf5e1cc991660101
0101010101014e4d4d624f504d2e014901014d014901015b4e0101014e4e014c4901012e014e01
4e2e5b01014d014d0101015b01c647175960b72e4d014e0101a395014e014e2e14a5010134ac4e
6ce055348022ab227aacd54e01bfe1b733d001cf164c234377d5a520b1351e5c4d515d2eca428ba
2307b01bfcad58b1aae5b01014e4e4c01014e014e01bd0000d458014d01014e010101010101010
1012e014e015cc5d942a7d39e4d010101014e840e5b49014e01015b014e2e38530101010101010
101010101010101010101014e01010101c38601014c010101012e4e4d4d01014e012e5b012e4e0
101014d01014c01012e0101014e2e016101012e01014c01014d4e014a840101014e01010101014
e4e01014dadd00901017f8fa24d5b88cc8ab8389a59533270b2af0182cba8abdba401014e62bd5b
8ea86d6150a3ab9cc64c1f2036897d7bca37c330be4d65132eb7d5c45b5a95c62e577dc5af01010
101010101014e01015c547401014e014e0101012e014d4e4901010149014d015b4d2e0101012e0
1014e4d01014d01015b4e4c4d7d66b801014e012e015b4d01cda8014e01014e96a8015bc42d49c
cae7e98386a889657b3dc63913a8d3ec39a75196a62dd5f3e798a0acccb156468250fbdacc02d91
7469cd04b86d9c0857014e5b4e010101014e014e01bd0000d95c014d014e4d4e01010101010101
014d4e4c01aa8e7e9ed1bf01494e4c010149bd304d010149014d012e014e014d2e010101010101
0101010101010101010101010101014e8e864e4e014d4e4d4c01014e01012e010101014c010101
492e014e012e4d49014d014e4d014e4d012e010132014c4d014d01818e014e014e014e2e4d2e2e
0101016108dabf4d4db89dd9582e01010101014536530101492e014e4d4c01c2ce605e311f95010
153014c014c015b01013b454d4e010101012e010101308f0171db9b49012e012e012e015b01010
101010101014c014e5b6374014c50463c4e2e2e014d014d01015b01010101014e014c010149014
c4901012e0101015b01010101534e74740101c44d01014d01b2a80101014e4e94862e4d539c2e4
943be342e33ca35015036413b3ed2319b3c385a01621e7958494bc10150b83d822a27394dbda65
c0158893dc42e65b901015301014d0101014e014e01bd0000d458014d010101010101010101010
1012e014c01014e015b01014c0101014d2e014c4c010101014d01530101492e014d01010101010
10101010101010101010101014e014e016091012e014e010101012e01014d014d0149014901c40
101014e4d4d4901015b01014d015b014e01014c4d5f72580101014ec09e4e4d0101014d0101014
e0101c43275950101014e8e68a6012e4d4d4c014e0149010101014e4e01014901beaead80c0444
c2e0101014e010101c42e014901014e014c010149014ca47c349e1c49015b014d014d010101010

55

10101010101010101494c54aa2e4394516d894e015b014e01012e4e0101534e01494d01014e012
e0101014e01014d4e4e014e014c01017e4f580101015b2e0101b2950101014e388d2a620165d07
1014d4e014e01014d2e4c014c4eccd8884c01014c015b50c4014e2e014e2e014e01b0548eb04d4
c014c01014e010101492e014e014e490101014e014e01bd00000b5001010101010101010101010
10101014e0101495b0101014c01014d01014e4d4d014e4d01014d0101014e01014901010101010
1010101010101010101010101014e014e01c6305b010162b84e37b7012e53015c37534d3474013
736624d014d014e39614c3d32aa364e4e0158b95c4dc48646012e4d01ac9e4e4d0101012e2e010
1014e01014c01014d2e014e012e2e2e0101010153014d4e014d014d014e014d4c014d015b01014
c0101014d4c01014e4e01010149014e01014e4d01012e012e4e01014d014e012e014e012e2e010
10101010101010101014d4c87322e40297152599b01465e014c49014e4e39360141352e3235aa3
7580142584d4d41311610000026060f002220574d4643010000000000010000000000000005000
00000200000c0300000c09000009b4d4d0153a9b801498966014d014d010101cb304e01014ea37
c6b365b892f70012e4e4e012e2e010101c4015e51b1cc4e4c014d014e012e2e2e014d01015c0101
4c802caf0101490149014e4e014e4e0101014d4e01014d014e014e01bd00000a5e4e01014d012e
01010101010101014e01012e0101534d010101014e012e01014d01014e014d01012e4c01014e01
4e0101010101010101010101010101010101014e014e01af910162013011a69830b04c01431a1f1
a8e69549b7a09b8018b535372038c41a0a36aa062013369567b3101a9752e014d01ae9e01014e4
d014e4e0101014e4e0101014d2e0101015b014e012e012e012e01012e01014e4e4d012e01014d
01c4014d4e4d0101490101012e4d0101014c4e01014901015b4e4e014e2e01495b010101014e49
010101014c01010101010101012e4d4e5b63aa014c68041dabb75d6b7c3d01565101abd5129e7c
1558d1d6410d4b2fce97387b171d0434014e7268c5880141d7505c01014c0101c37a4d01010101
014d2e4e0153014d01014d014d014c014c0101494e01494e4d014d014e5c0101015c01492e014c
0153014e4e4e014e2e014d4c014d01014e4d01010101014d014e014e01bd00000a744c01014e01
4e0101010101010101014c4e014c010101012e4e014e01014d01010101014e014d4c010101014d
01010101010101010101010101010101010101014e014e01c68a2e014caf222e3a7575014c8b63
4d2782916801bfc74ec3d2ca57d3aa743c56426d4f015b5816019e672e47d448014e012d8e01014
e2e010101014e01010101014d0101014901014d01014c4e0101014e4e4e4e014e4d012e0101014
e4d014c010101012e0149014e01014d4d0101014c01012e010101010101014901012e4e4e014e0
1010149014e010101010101010101014e5369aa4d01607c7d5b8a1e017f8c4c9fb5581f7d01ca8b
174d5a105811a7d05c74ba0834899449016107343f244ea79ac1014d4e014d019ec24e01010101
014d014d4c012e014e014d014e01010101012e014c01014e014d014d2e014e4d01010101014901
4e014901014d4e01014c01014d0101490101012e014d4901014e014e01bd0000d0374901015b01
4d0101010101010101014e4e0101014e4d014e4e01014e4e014d4e01014e4e010101010101010
10101014e0101014e014d4e4d4e01014e4e01014e01014e01c602014d01af1c4e2bce33014d81d
1017265958b2e4572011a6302a31ca9a64ec541cb69010132214d77d034257e8c010101989e014
e4e012e0101010101010101014e4e01014d4d0101014d4d0101010101014e4d4e0101014e014e
010149014d0101010101012e01014e4e4e4e4e4e0101014e4e010101010101010101010101010
10101014e4e4e4d4e014d01014d014e2e014d4954554e4e096d6a9ec06b4da35dbe6c90bf699e5
a3a701e4eca962e1c7b09525742a04d82244c016104aa3e0d371bbe704e014901014d60c24e2e0
12e4e014e4d014e4e0101014e4d01014e01014e4d01010101014e01010101014e014e4d4e014e
01010101010101010101014d4d4e4e01010101010101014e4e4e4e01014c0101bd0000ce33014c
0149010101010101010101010101010101010101014e4e014e4d4d4e4e0101010101010101014
e4e4e4e01010101014e010101010101010101014e01014d01015b01908a015b0186a03297be52
012e782cb71b78b1945acc673910557052168a079007ac64750101509fcf2b6ac0c7335174014dc
0ab01012e01012e4d4d4d4d4e01010101014e0101014d2e01010101010101010101014e010101
014e014e0101014c01014d4e4e014e01014e4e01010101014e010101010101014e01014e4e4e4e
01014d4e4e4e010101010101010101014e0101014d0154342e4e72cb2b8778473f0fcf1e30402da
8708764c88da5c076a8d03b92d196bf695ac00d014c019481112870a25b5f4001014e0101afcc014
e4c014d4e01010101014d01010101010101014d4e0101014e4d01010101014d4d0101010101010
1014e4e0101010101010101010101014e4e4e4e492e01010101014e01014e012ebf00001539014
e01014e494e4e0101010101014d4e01014e4e4d4d01010101010101014e01014e4e01014c2e4c4
94949494c2e492e5b5b4e4d494d01014d4c2e01014e2e496149015c6691530101a97801cac63c4
d4e2eaf9018579e7fc2a9a9bd8a01bc423c5a89b7bac6c25e5b015c0f91915bcbca0160580101a5c
c344c509bc4c49b6261c46162345e9b619b5061589b5833509b50505050349b9b9b345e55aaaa5
e61b855505e33345c58aa325062345c503433333450345eaa9b345533345e333333335e5e5e5e5
e3462345534335534345562335e50559b74335837b3b85b4e61afab5701bccb884d913e508432c
1a8b8907aa878cd70c30136b0885c5bb05d192e015c049c7f48909e017d3901012e015c9ea5aac4
aa5e625e3333aa5e9b345eaa349b33345055aa5033aa3333553434553334aa5534555e5033555
0335534343433335e5e5e33555e34343333509b629b345e5e33509b50349b3374be00000d7372
63877363b3b6b6727387544f4f634f6969b36372b62a676767b68787732cb6b62cb57267272cb56
7b6b667b52c2b292828672c2b2828282b261d292a2728b32a2627202ba3014901366501012e4c0
10101015ba0c6010101b8a901014d4e4c014c2e01014c5b4e0101a6079b01012e01014d012e4d6
0594fc77575565fae986a6892684a75c74a686cc89268c5566a8175755151815f7598ae7ea5807b
a586512d2d8c987c24c0ae982d8b56c89c8b51818c8b8bc59c7f7e2d7980a56e79a57b7f7f807eac
c07998818b512f8c8b81aec5512d752dc0566b5f8c5c014e2e01494e012e4e01014d4e015b014c0

101014d4c01015b0101014e4d014e4e7b105c0155c9b801014d015301014c014e010143818c9c9
8567f9c2d98759880a5ae2d80a780807b9c7f86ae98806ea580a598c07eaca579812d799c2da579
9ca56e8079aeaeac7e807979ac2d512f5f4a815f6c7c5dad6cc8647cc759b42700006239413e353c
3b3d39383536b737313138b737313e383b3d3c38383935b73eb73b363638353eb73b36b73e3737
3eb736b7b83eb732b8383635363838363131b737743eb774aa48014e010189862e01010101534
d4e4d68454ec401c195490101015b4d0101530101014d4c49a9c5622e5b014d01012e01010133c
46258c450334c5c9b5e55345853345c61346262580162c45b53535b4953585c4c4d2e4c49495b4
e614d5361c4781f9b014c4c2e4cc44e4c535c5349494953012ec44c4e4d014c4d0101014e2e494c
0149c44c5b614c49c4015b5c2ec44d53c453614901014d012e01014e2e014e2e010101014d014e
012e01015c0101014e014d014e4d53c3c0012e9bad344e0101010101012e01014d4e015c494c2e
494e53492ec45b4e49495c4e014d4e015b01015b614e014d4e015349014d014e62534d4953014d
4901014e4c5b5b492e4e5b4c2e4c5b535b4c535c6158625861615b615b58c4340000010101014d
0101014d4d4d4d4e4e4e4e010101010101010101010101010101014d0101010101014e0101014
e4e01010101014e2e01012e4e010101010101014e4e0101014d01012e4901010149012e4c4d014
e01015b4d0101015b010101014d01010101012e2e014e0101014e4e0101012e4c010101014c014
e014e01014d012e4e01010101014d4e014e4d01014d014e0101010101014e0101010101010101
4e012e010101015a2801014d4d4c0101014e4e4e01014e4d4c01012e01014d4e4e4e4e4e4e4d4d
4d4e014e2e014e2e014e2e014e4d012e014e4d4901012e014e4d5b2e4d01014c01010101490101
010101014c014e01015b01014c0101014e012e01494e01494d01012e012e4d01014e4e0101014e
010101014e01010101014e012e4e014d4e014e2e014e2e014e2e01010101014e01014e4e01014
e01014d0101014e4e4d4d4e4e4e0101014e4d4e010101010101010101014e014e01010000014d
4c2e4e4e01010101010101010101014e4d4e4e0101010101010101014e014d4e014e4e4e4e4e01
01014e4e0101010101014e010101010101010101014e0101014c2e010101014e01530149012e01
01494e015301014e5b01014d4c015c014901012e2e010101012e010153014d014e01015301014e
014901014d4d014d010101014e4e4e4e4e01014e0101014e2e014e4e01014e4d4d014e4d4d4d4
e0101010101014e0101574f014c0101012e01010101010101010101010101010101010101014e4
e010101010101010101010101010101010101014c014e012e010101490101014c014c014d012e4
e012e014e4d0101014e014c014e0101014d01014e4e01014d4d010149010153014e012e01014e4
e014e014d010101014e4d4e010101010101010101014d010101014e4e014e0101012e2e4e014e
014e4e4e4e4d4e010101010101010101010101010101010101014e4e4e01014e014d014e01000
04e0101010101014e4e01010101010101014e4e010101014d014e4e01014e4e0101010101014e
4e0101010101010101014d2e4e014e4e014e014e4d01014e01014e010101014d01010101012e0
153014e4c014d01014e2e01014901014e01014e01014e010101014d01015301014d014d4e014d0
14d01010101014e4e4d014e4e01010101010101014e4e01014d4d0101014e4d01010101010101
4e010101014e4d4e4d0101014d52724e01014c0101014e4e4e4d4e4e0101014d4d4e4e0101014e
4e4e01010101014e4d4e014e4e014e4e014d01014d014e010101014e014d4d014e2e012e014d0
101014e014c01012e01012e4d01010101014e4d0101010101012e01014e4d01014d4d015b01012
e01010101012e01014e01010101010101014d014e4e014e4d4e014d4d010101014e0101010101
010101010101010101010101014e4e4e4e01014e4e4e4e010101014e010101010101014e014d0
14e4e000001010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
1010101010101010101014e4e014e4d4d0165544e010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010000010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
010101010101010101010101010101014e4e014e4e4d0165544d0101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010100000101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
1010101010101010101010101010101010101010101014e014e4e4e0182544d4e010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010

57

10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101000001010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
010101010101010101010101010101010101010101010101010101014e014e4e4e0152b14e4e0
10101014e01010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010000010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101014e014e014e
0152b4014e4e4d01014e010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010100000101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
14e014e010101784701014e4d0101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101000001
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
0101010101014e014e01010157b10101014e01010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101000001010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
101010101010101010101014e010101010157544d010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010000010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
0101010101010101010101010101010101012e010101015a544e0149014e4e010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010100000101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101014c010101494d0152b40101014d01014e010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010

10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010000010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101015b5c9b499b58af7c325e74a
a36749b0101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101000001010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
1010101010101010101010101010101010101010101010101010101010101014dbd87982f6a8c9
7215f5f97684a247a0101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101000001010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
0101010101010101010101010101010101010101010101010101010101010101010101010134b
335344e6253015c5b4c5c5e7c53010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010100001610000
026060f002220574d464301000000000001000000000000000500000000200000c0100000c0900
00001010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
101010101010101014ea4a301014901014e494e01c330010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010100000101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101014c014c2f484e01015b01010150815e01010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010000010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101b29501014d014e4e4d8e6e014d0101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010100000101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101014d01010101014e0101014e4e4e4e010101
0101010101010101010101010101014d4e01014e4e4e01014c4e2e874101014e010133b19b014e

59

0101010101010101010101010101010101010101010101014e0101010101014e0101010101010
1014d4e0101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010000010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
1010101010101010101010101010101010101010101010101010101014e2e01014e010101014e
4e01010101010101010101014e4e014e4e4d4d4e01010101010101010101015bc26a4d4e4e5b01
927b2e01010101014e4e0101010101010101010101010101010101010101010101010101014e4
e4e4e4e4e4e4e010101014e4d0101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101000001010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
1010101010101010101010101010101010101010101010101010101010101014e4e4d4e010101
010101014e4e0101010101010101010101010101014e4e4e0101014e4d4d4e4e4e010101014e2
d45010101398c5801490101014e4e4e4e010101010101010101014e4e4e4e010101014e0101010
101014e4e4e4e4e4e4e4e4e01010101014e010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010100000101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101014d4e
4e010101014e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e01010101014e010101010101010101010
1014e4d0182644949012f4b014c0101010101010101010101010101010101014e4e4e010101010
14e0101010101014e0101010101010101012e494e010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010000010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
010101010101014d4d0101010101010101010101010101010101014e010101010101014e01010
1010101012e4e01012e012d3d013f75010101014d0101010101010101010101010101010101010
14e4e4e4e4e4e0101010101014e4e4e4e4e4e4e4e4e01014e0101014e4e010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10100000101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101012e2e01014e4e014e4e0101010101014e01010101010101010101010101010
1014d4e01014e4d4e0101012e014e01c16c2e56822e4e4d4d0101014e4e4e4e010101010101010
101010101010101010101010101010101010101010101010101012e4e01014e4e010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010000010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
0101010101010101010101010101010101010101014e4e010101014e4e0101010101010101010
1010101014e4d010101012e4c4d01014e01010153018666c00101014e4e4e4d4e010101014e4d4
e4e4e4e4e4e4e4e4d4d4d4e4e010101014e4e4d4d4e4e014e4e4e4e4e4e4e4e0101014d4d0101
4d010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101000001010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
0101010101010101010101010101010101015b55363c3cb7b83e39383835353838393838383838
38383836393c3c3b3b3d403f3d3f42b9a6413aa6453b413b4344babba33c3a434141a6a9bc45424
245bca9bdbdbdbdbdbdbdbdbea9bd71bcbfbfa6bc71bda9a9bd71bcbebebebebebebebe4b4b77b9

484d0101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101000001010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
010101010101010101010101010101010101010101a4277c69597c5f4759b1b3b4696363b3b4b4
69696969b4b44747475947b16372636363636363636369b4b4694f54544f28b554b1b363878787
87b187b5672a7287b5292c7287b62a2cb62cb672678772b6b6b6b6b6b6b6b62a67672c2ab663b3
732c21b5a261010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010100000101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101017eb20101012e4e5b014d4d014e2e
4c4d014e4e4d4d4e4e012e4d4e010101014e4e4e4e4e4e4e4e4e010101014e4d4d4e4d01010101
010101010101014e014e0101014d4e0101014e4d014d01014e010101010101010101014e01014
e2e4e01014e01019b64322e010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010000010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
1010101010101010101010101010101010101010101010101010101010198b0012e012e2e014e
4e4e4e4e4e4e014e4e4e4d4d4e4e4e4d4e4e4e4e4e01010101010101010101010101010101010
10101014e4d4d4e014d4d01014e0101014e010101014e01014d014d01014e01014e4e4e4e4e4e
4e4e0101014e4e4e4e4d4e4c012e69740101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101000001010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010186b04d01
014d01010101010101010101010101010101010101010101014e0101010101010101010101010
1010101010101010101010101010101010101014e010101010101010101010101010101010101
01010101010101010101010101014e014e5b5bb1554e4d0101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010000010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
1016e7d014d4c4d012e4e01014e4e01014e01010101010101014d0101014e4e4e0101010101010
10101014e4e4e4e4e4e4e4e4e01010101010101014e01014e4e4d01014e010101014e01010101
010101010101010101010101014e4d4e010101014d01010147322e01010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
00000101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
1010101010101aeaf01010101014c010101014e01014e01010101010101014e010101010101010
10101010101010101010101010101010101014e010101014e014d01014e014e014e4d4e010101
4d014e010101014e01010101010101010101014d4e01010101014e4d015955014e01010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010000010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101ae520101014c4d010101014e4e01014e4e4e010101014e4e0101010
1014e4e4d4e4e4e4e4e4e4e4e01014e010101014e010101014e0101014e014d01014d01010101

61

010101010101014e010101014e010101010101010101010101010101010101014d2e6948014d0
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101000001010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
101010101010101010101010101010101ac5a4d010101012e01010101010101014e01010101010
14e01010101010101010101010101010101014e4d4e0101014e2e4d01014e4e4e4e4d014d014e
4c014d01010101014e0101012e014e4e014d010101010101010101014d4e01014e4e014e010149
ad74012e010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101000001010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010198574e01014e01010101010101010101010
101010101010101010101010101014e4d01014901014e01014c01010101014e4e4c01014901010
14c0101014e4d014d010101014d010101010101010101010101010101010101010101010101010
1014e014c7c324e010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010000010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
010101010101010101010101010101010101010101010101012d520101014d014e01010101010
101010101010101010101010101010101010101014e4c2e015b4b75a3334d892d37a4a5a6a7899
b01a86aa301468b848aa9aa867070ab5b4c0101010101010101010101010101010101010101010
101010101014e014c7c32010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010100000101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
010101010101010101010101010101010101010101010101010101010198520101014d014e010
1010101010101010101010101010101010101010101012e010101014e4e3a998c0149669a9b9c0
65e14704c309d028c9e9fa08ea138111e3ca0a24e4c01010101010101010101010101010101010
10101010101010101014e01497c740101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101000001010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
0101010101010101010101010101010101010101010101010101010101010101018c78014e0101
01010101010101010101010101010101010101010101010101014c01014d014c0162937d2e0190
0f4e300a01948e017280014d3495877109559646015f970101014d010101010101010101010101
010101010101010101010101010101495d7401010101010101010101010101010101010101010
1010101010101010101010
Assume

that
public

the

following
classes
and
objects
are
available:
enum
Plane
{X_PLANE,
Y_PLANE,
Z_PLANE};
public
class
UserInterface
{
//
Allows
the
next
position
of
the
robot
to
be
//
obtained
from
the
operator.
public
int
newSetting
(Plane
dim)
{
...
}
...
}
public
class
Robot
{
//
The
interface
to
the
Robot
itself.
public
void
move
(Plane
dim,
int
pos)
{
...
}
//
Other
methods,
not
significant
here.

}
Given the above classes, the following will declare a class that can be used to represent the three
motor
controllers:

public

class
MotorController
extends
Thread
{
public
MotorController(Plane
dimension,
UserInterface UI, Robot robo) { // constructor
super
();
dim
=
dimension;
myInterface
=
UI;
myRobot
=
robo;
}
public
void
run
()
{
int
position
=
0;
//
initial
position
int
setting;
while(true)
{
//
Get
new
offset
and
update
position.
setting
=
myInterface.newSetting(dim);
position
=
position
+
setting;
myRobot.move(dim, position); // move to position
}
}
private
Plane
dim;
private
UserInterface
myInterface;
private
Robot
myRobot;

Here, parameters to the MotorController constructor method indicates which dimension the motor
is driving, the robot hardware and the controlling user interface. Note that it is necessary to call an
appropriate constructor in the MotorController's super class (the Thread class). This is achieved
by using the super keyword. As there are no parameters to super, this will result in the Thread ()
constructor method being called. If a string had been passed after super, for example super
("MotorController"), then the Thread (String name) constructor method would have been
called, and all threads created from this class would have the name "MotorController" associated with
them.
The

three

motor
UserInterface
Robot
MotorController
MotorController
MotorController

controllers
UI

can

now
be
created:
new
UserInterface();
new
Robot();
MC1
=
new
MotorController(
Plane.X_PLANE, UI, robo);
MC2
=
new
MotorController(
Plane.Y_PLANE, UI, robo);
MC3
=
new
MotorController(
Plane.Z_PLANE, UI, robo);
=
robo=

At this point, the threads have been created, any variables declared have been initialized and the
constructor methods for the MotorController and Thread classes have been called (Java calls
this the new state). However, a thread does not begin its execution until the start method is called.
MC1.start();
MC2.start();
MC3.start();
When a thread is started, its run method is called, and the thread is now executable (or runnable).
When the run method exits, the thread is no longer executable and it can be considered terminated
(Java often calls this the dead state). The thread remains in this state until it is garbage collected. In
this example, the threads do not terminate.
Warning
Note that if the run method is called explicitly by the application then the code is
executed sequentially not concurrently.
Thread creation using the Runnable interface
The second way to create a thread is to declare a class that implements the Runnable interface. An
instance of the class can then be allocated and passed as an argument during the creation of a thread
object. Remember that Java threads are not started automatically when their associated objects are
created, but must be explicitly started using the start method. Figure 2.5 illustrates the approach.

63

0100090000038ebb000000002f53000000001610000026060f002220574d464301000000000001
00866300000000070000000020000020af000020cf0000010000006c0000000000000000000000d
20100009c00000000000000000000006a4000009d15000020454d460000010020cf00000c00000
0010000000000000000000000000000000005000020030000c40100001a0100000000000000000
00000000000e3e306006e4e0400460000002c00000020000000454d462b014001001c000000100
000000210c0db01000000600000006000000046000000282700001c270000454d462b224004000
c000000000000001e4009000c00000000000000244001000c00000000000000304002001000000
0040000000000803f214007000c000000000000000840000574260000682600000210c0db01000
0000000000000000000000000000000000001000000ffd8ffe000104a4649460001020100480048
0000ffed071650686f746f73686f7020332e30003842494d03ed0000000000100048000000010001
00480000000100013842494d040d000000000004000000783842494d03f3000000000008000000
00000000003842494d040a00000000000100003842494d271000000000000a000100000000000
000013842494d03f5000000000048002f66660001006c66660006000000000001002f6666000100
a1999a0006000000000001003200000001005a00000006000000000001003500000001002d000
000060000000000013842494d03f80000000000700000ffffffffffffffffffffffffffffffffffffffffffff03e80000000
0ffffffffffffffffffffffffffffffffffffffffffff03e800000000ffffffffffffffffffffffffffffffffffffffffffff03e800000000ffffffffffffffffff
ffffffffffffffffffffffffff03e800003842494d040800000000001000000001000002400000024000000000
3842494d0414000000000004000000023842494d040c0000000005860000000100000070000000
2600000150000031e00000056a00180001ffd8ffe000104a46494600010201004800480000ffee00
0e41646f626500648000000001ffdb0084000c08080809080c09090c110b0a0b11150f0c0c0f1518
131315131318110c0c0c0c0c0c110c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0
c0c010d0b0b0d0e0d100e0e10140e0e0e14140e0e0e0e14110c0c0c0c0c11110c0c0c0c0c0c110c
0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0cffc000110800260070030122000
21101031101ffdd00040007ffc4013f0000010501010101010100000000000000030001020405060
708090a0b0100010501010101010100000000000000010002030405060708090a0b1000010401
030204020507060805030c33010002110304211231054151611322718132061491a1b142232415
52c16233347282d14307259253f0e1f163733516a2b283264493546445c2a3743617d255e265f2b
384c3d375e3f3462794a485b495c4d4e4f4a5b5c5d5e5f55666768696a6b6c6d6e6f637475767778
797a7b7c7d7e7f7110002020102040403040506070706053501000211032131120441516171221
30532819114a1b14223c152d1f0332462e1728292435315637334f1250616a2b283072635c2d244
9354a317644555367465e2f2b384c3d375e3f34694a485b495c4d4e4f4a5b5c5d5e5f55666768696
a6b6c6d6e6f62737475767778797a7b7c7ffda000c03010002110311003f00f554947d4aff00787de
97a95fef0fbc24a649288b184c07027c25492535f39b5ba8db680eacbd9bc3802d8dedfa41cabd98f
d1f63bd3a7177c1dbb9ac89fcddda2be48024e83c537a95fef0fbc24a70d8d706b45981d39ee03de
5b635a098fcc6ba87fb777f291f169c42f78cbc7c16b001b1d5ed249fcf0e6399edff3d5bcb6536df8b
67a803e97b9d58911b8d76337b87e77b0bd9ff5c4268eafa9765e2fe701153a0ceb593fa7fa4cfa2fff
0049ff00049298be9e9edcac3762575078b8c9a9ad0437d2bbbb07d15a6aae37db7d571c8be9b58
5a36b2b61690e93b9d2eb2cf66d5678494ba49b7375d469cf926f52bfde1f78494c9251f52bfde1f78
4b7b3f787de929fffd0f41c476237a6d0c8adb7b6863407b78786010f1b777b5df490596e582c0efb0
96ec01e61f3bc72f68d9f41ff00b8b692494e7e43f11f586e38acda5f5ecf6ff2d867da377b547f67e6c
b0fdaec258c15fd2e63fc2bdbb76bad72d24925390fc4ea14dedb2ebc5d850c6dacb3739db83dae6
da34d9fd74f92d2fbf7e36551555b36fa4fa43fdfeffd26f963bf3abfd1ff00c1ad3b2daaa00d8f0c0e3b4
6e3127f74287daf17fd2b7ef494e645bee1f6bc60f7b7f463d0d016c6f7b9bbb7dbbb77fa4afd34cf66
4120b33319a04c838f33a7b7ddea37fb5ff9f2b5633328bf26aab1eef4b7d764e401b9ac21d4fd2ddf
a3f52cff0005ea7fc2fee28ecb4f3d59fc3468ca46a07b9dfcd7f84494c2eaa9bdb8747b2db0d917b98
d2d11e95db9ff00a3daead9bbf9689ff37fa7e9fa1668206b6710e6ff00a5ff00847a362022e04e73b2
3d9b7d32180121c5feafe8d8d76ed8ef4d5d494e459d2aac5b2bbea654da6a6edb6439ce2d2ff55c
3739eef67bac73fd4f5136d1a8fda38f05a0077a5597070ff093bb67b9bf99e9fd3ffb6d6c24929c315
ddb20f53c5dfb890e18ec0222056e67ac7dbbbdded7b15cace33687b6dba8b5e4182d6b5ba47d1d
b2f5a0924a7fffd1f55497caa924a7eaa497caa924a7ea0cc245b884024fac741ff15778a3ef77fa377
fd1ff00c92f9612494fd24dc5eaeeb5efc6cf7d7597ba6aba80f8f739d15becb2bb367a6e655fe8fd8af
e20caae80cc971c8b813bad6b4560c9fcdacd8fdad6ff005d7cbc924a7ea5739c6cac16168dc7531f
baefdd71455f2aa4929faa925f2aa4929faa925f2aa4929fffd93842494d0406000000000007000500
0000010100ffee000e41646f626500644000000001ffdb0084000403030303030403030406040304
06070504040507080606070606080a0809090909080a0a0c0c0c0c0c0a0c0c0c0c0c0c0c0c0c0c0
c0c0c0c0c0c0c0c0c0c0c010405050807080f0a0a0f140e0e0e14140e0e0e0e14110c0c0c0c0c111
10c0c0c0c0c0c110c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0cffc00011080
076015e03011100021101031101ffdd0004002cffc401a2000000070101010101000000000000000
0040503020601000708090a0b0100020203010101010100000000000000010002030405060708
090a0b10000201030302040206070304020602730102031104000521123141510613612271811
43291a10715b14223c152d1e1331662f0247282f12543345392a2b26373c235442793a3b3361754
6474c3d2e2082683090a181984944546a4b456d355281af2e3f3c4d4e4f465758595a5b5c5d5e5f5
66768696a6b6c6d6e6f637475767778797a7b7c7d7e7f738485868788898a8b8c8d8e8f82939495
969798999a9b9c9d9e9f92a3a4a5a6a7a8a9aaabacadaeafa110002020102030505040506040803
036d0100021103042112314105511361220671819132a1b1f014c1d1e1234215526272f13324344

38216925325a263b2c20773d235e2448317549308090a18192636451a2764745537f2a3b3c3282
9d3e3f38494a4b4c4d4e4f465758595a5b5c5d5e5f5465666768696a6b6c6d6e6f6475767778797a
7b7c7d7e7f738485868788898a8b8c8d8e8f839495969798999a9b9c9d9e9f92a3a4a5a6a7a8a9a
aabacadaeafaffda000c03010002110311003f00f7f62aec55d8abb15762aec55d8abb15762aec55d
8abb15762aec5587fe6b123f2dbcd201a72d3ae176247da4229b78d71577fcaa9fcb4ff00a94f4af1ff
007922edfec7156bfe5547e59f4ff09695edfe8917fcd38aae1f955f96a361e54d2c0ff9848bfe69c55a
ff009553f96b507fc27a5d4743f548b6af87c38ab7ff002aabf2dbfea54d2ffe9162ff009a71577fcaabfc
b6e9fe15d2e9ff0030b17f4c55aff9553f9695aff84f4aaf4afd522ad3fe07156ffe555fe5b0a01e54d2c0
1b0a5a443fe35c55dff2aaff002dab5ff0a6975f1faac5ff0034e2ae3f957f96c7af9574cffa458ffa62aeff
009555f96dff0052ae99ff0048b1ff004c55c3f2aff2dc74f2ae99ff0048b17f4c554ff2ae186dbc9915ad
ba08edadf50d6208225d95228b55ba44451d95540551d862accf15762aec55d8abb15762aec55d8
abb15762aec55d8abb15762aec55d8abfffd0f7f62aec55d8abb15762aec55d8abb15762aec55d8a
bb15762aec5587fe6ad47e5c79988ebf509bfe238ab30c55d8abb157917e756b7abe8fac79062d0c
3de5f5f6a5a845fa093516d286a4b1e8f793240655aff00bb922284a9a49c3ecf2c558a681f9c77fa1
796344b59b57b7d7663a24378fa95fac905dcda8a6a69697765246cc1fd5b68e50b206fdf2b27a92f
dac551337e7c6bb6f63ab5dbae8e65864d623d361e7203fee17cc1168f597f7b56f563944a3805a3
29fb4b8aa227fcf9bab3d62cb45b86d324ba5d624d2b530ad2424dba6b91e93f5943239450a92091
e30f2bab7da0b17ef31561bff2b17cdd1790348d3ef353e652e345967d6a09e68ef6d673e68b6b292
caf24795b9b4d6eee789f4cf049559197e2c55ed1f975f98175e769ee9e53611c31a3f3d36de595f5
1b0b986e24864b7bd4640a8c00522a5189e74429f1e2af41c55d8abb1561ff00963ff2899ffb6a6b7ff
757bbc559862aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb157fffd1f7f62
aec55d8abb15762aec55d8abb15762aec55d8abb15762aec558b7e65595dea3e41f3159585bc97
7793584cb0db42394b2371d9557b93d862aa7fe3fb1ff00ab2ebdff00708bdffaa78abbfc7f63ff00565
d7bfee117bff54f156ffc7f63ff00565d7bfee117bff54f1558de7bd35d959f42d719977563a3de123e5f
bbc55a1e7ad301e4341d70354b5468d795a9ea7fbbea7155297cf5a1440493e85ac46b50a1e4d1e
e94727601454c7d492001dce2aa83cf1a57fd4bfad8ea7fe38d77d4f5ff0075f7a62aeff1be93f10ff0fe
b7476e6ffee1aef76f13fbbdce2abd7cf9a72962ba1ebaa58d588d1ef0127dff00778ab67f302c47fd2
975effb845eff00d53c55dff2b02c7feac9af7fdc22f7fea9e2adff008fec7feacbaf7fdc22f7fea9e2ad7e5
b41776fe538bebb6b359cd3df6a974b6d748629962bad4ae6788ba36ea4a3ab50efbe2acb715762
aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abffd2f7f62aec55d8abb15762ae
c55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb1578f7fce4026adabe91a2f95f4
569e0b9b9d4acb5296f6ddb8b45fa3afadbeaebd0ef25ccb08ff00555f157a5689e63d3b5ad0f48d71
245820d621864b68e62237324f1f3f4a8d4f8c5082bd7e138aa6f8aa80bdb36bb6d3c5c466fd2359d
ed43afaa22762aae52b5e248203529518aabe2aec55d8abb15762aec55d8abb15762aec55d8abb
15762aec55d8abb15762aec55d8abb157ffd3f7f62aec55d8abb15762aec55d8abb15762aec55d8a
bb15762aec55d8abb15762aec55d8abb15617e79d22d0469ae0e5f5f92f343b42c58f010c1abc330
0abd012cff11fdaa2ff002e2aadad685a9da5969367e59328861d58de5f22ccb1b7d52733c93202d4
aa8790705ea36fe5c55e5977a17e6bf97b42bdd4f50d4eff00d2b6b090cc7f4899e4f50e8d1ab7015
2799d414b291d15be1a21e38aa612792ff3460d4e7d42dee65b9b3959a1522f235d4574792fe595
2d23b99391f5624759048ec7901e8fa9fb58aaaea1e57fcde6d566bab4bebb300699a251a92f03c2
2d33eae387c0a6b2477a5be05e5cfe25e2caaaaaa5df96ff00362e6c6ea93dec5a937d79b945ab20
89aed6de74b59225548ca42d27a0e63766e2c1c7a7c07ef554cf42f2cf9ff4bf31d85c2c8e3454d435
3b8d5219ef4cb14d0dfdd5c4f1c91804b2bc6ad12fa6c1a36f880f4bd30f22af55c55d8abb15762aec
55d8abb15762aec55d8abb15762aec55d8abb15762aec55fffd4f7f62aec55d8abb15762aec55d8a
bb15762aec55d8abb15762aec55d8abb15762aec55d8abb15631e7dff8e0c07a5354d1cffdccedb1
564f8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55
d8abb15762afffd5f58f903c97a2eafe44f2beada8cdaa5c6a37fa4585d5e5c36b1aa729269eda3777
34ba02acc49c55918fcbaf2c8a50ea5b6c3fdcc6abff006558ab5ff2aebcb3d6ba97fdc6355ffb2ac55c
7f2e7cb07afe92f1ff008ec6abff006558ab7ff2aefcb3d2ba97fdc6355ffb2ac55c7f2efcb2dd4ea5e3ff0
01d8d57fecab1568fe5cf960f5fd25ff718d57fecab1577fcab9f2c6dff001d2db71fee6355ff00b2ac552
9d6bcb1a6797aef40bed2a6d422b86d5ad607f5353d42e2368a5e41d5a39a77460478ae2a9e5d79
e341d3f5bb8d0b50ba8e1bc89ade38625f5249a492e6296603d358f6012176a866d95abc78e2a80f
38fe65e81e4bbab2b7d458b24b7022d4a650e56ca06b5b9bb1348511c1f86d9fe0a86a7c58aaed3f
f343ca1a8c8e22be0b09e7f577786e6377586dbeb7216492142948eaebfefc4f893155979f9b5f97d
6025375ac05f45cc4e12dee6524849a4254471312a16de63cc7c3fba937f84e2abb56fccad0342f36
5b795f5566816f2c61beb5d415649a166b8b9faaa46c624609c9ca0577655667083e2c552ef37f9cb
4bd77f2cfcc5abf953527902e962e61bbb6f5609112ee21244eaf4465628796d475ff0024e2a9c9fcb
af2c1352752ff00b8c6abff006558aa9cde41f28daa19ee25d4218c501924d6b544515d86e6ec0c55
d27907ca3098d2597508da56e112b6b5aa29763bd141bbdcfcb1554ff9575e583df52dbfed71aaff0
0d9562ab7fe55b79580a0fd254ad69fa6755ebff4958aa06f7c8bf97b24e9a76a17170d725e2923b4
9f5bd44b97470f13046bbad438054d3ed74c55303f973e5826a4ea553d7fdcc6abff006558ab63f2ef
cb20501d4a9ff6d8d57fecab15539fc85e52b585e7b99b5086de35e524b26b5aa222a8ee58dd8006
2ab61f21f94276716f35fcaf0909204d6b53628580601a976684820ef8aaaffcab9f2c78ea5ff718d57

65

bff00d1d62ad8fcbbf2c8e8752ffb8c6abff6558ab06b1d53ce76be58d02df4417d73a649ab6bb61aa
6a56e06a3a95ac76f7b77158fc376cfce3e4891cacdc99538fc4abc9d55521a87e735c6a490ce9716
3a6dccbc352960b6b799ed251737318168ce8c1e06816190bba4855d87c55678d5542c179f9cb2c
534b036a116a5347717eb6d35b5b7d57d78f49b496dad83491feee392efd78dd79f306a39a7c2d8a
a035fd3ff0030f58bcbd9ae2cf52bab14b4b8b7d26e4c42deee488df68b7282748b8a891592f021e0
b58a3ff2be355ad72fff0038f5bf29eb9a7ea7617c92ea76daa5a496f6367124b6b78b6f3adac50485
e4f56de76084cf4fdd9e03d41cdfd255956b561e7483cefa76aba11b8b5b69348d32d2e5de3492d5
b8ea04dd89cb86e0f15bbbc88c38f27555ab8aa62aaba2ea3e66d6ff002f6e6ffccb79ca5babdb7d3e
296c5fd02f05bddc56534e92db94602e9d24993837c11488a3a62a9c6a3e5cfcbed26f74fd3b54d4a
eacf50d5a46834bb69f5dd4a396ea541c992156bb05d80dc85ed8aaad8794fc8daab5da69b7b7b7
6d633bda5e8875bd4dcc3711d0b44f4bb3c5d6a2aa77c5519ff2af3cb437aea5ff00718d57fecab154
b746f2e7e5ef98a09ae740d4eeb53b7b795ed6796d35ed4a748e78b678d8a5d901d7f694eebdf15
4cbfe55e7967f9b52ff00b8c6abff006558aa0359f2bf90fcbf62fa9eb77d7d6362842b4f36b5aa2ad5b
a0ff7ab7fe9be2a980fcbff002deccada97b7fb98d508ff00a8ac5572f907cbca4306d4aa3a7fb97d50f
ebb9c5577f81740e45c49a9723b1ff72da953eefacd3154af57f2ae9769a868304173a9471df5fc905
ca8d53503ea22d8dd4e14d6e0d28f1236dfcb4e98abffd6f697e571afe59f92cffda8b4bffa838b1565
98ab15fccdbebcd2ff002e7cdbaa69d74f65a85868f7f776977110af14f6f6cf246c0b0236651d45315
797f93ff33759b19f5a8f569e696b77e5ed274dd2b549237b9b7b8d56201efe59a10c3ea570cebe81
0f27ef1248ff0074cde9a2a83bafce4f3469fe6bd63561a79bad2349d3618753d105c90a6e60d7ae7
4a96e2c0fa24ca640119558afd9f4bedef8aa7fa9fe746aafa769f79a4e990449abd26b3b8ba91cadb
456fad5ae9572976a157d392971c928c579a488df62aeabd981a804743d298ab78ab0efcc5bb92c
6c745bb8ad26be922d66c4ada5afa66692ae4517d578d76ad7e265c55876b7a5d9798756bad635
0f27f9a8cd76f6524b02fe8a1107d3449e83256e8b2329959b9ab070df6597154379b340b2f37de5d
5eea1e54f3840b7a07d6ad6d24d2d219254b59acd66e2f76e43886774f84856a216562831557934
cd3ae6769b52f23f9a750adce9b7d1a5c1d3384773a445e8c4ea23bc4fb4bb4aadc95ea471e2698a
a124f2f5ac96df51ff000df9d56c925bc9ad6dfd5d2da3b74bf82e2de48a20f72df005ba94a72e4ea78
fc7c1157154bfce897cd73a7ebb67a5eb5a43d85941a74f6babc5a4c9617b6d653add462661a8432
a307404bc4f4a7da89c6d8ab19d23cf57f7bf973e72d197c8babdadaea09a96a32f992010be8ad2d
dbbc8c2369a58e5091d42288d255a0f84e2afa9715615f9b5a145e68fcbdd6fcbb3d8cba95b6a690
dadcd8db82659209278c4a178904109c8d41db157913f94bf34db50f255f6b364353f347942fb54d2
f44d5197d4b66b35d26fa1b6d46e78b7c0d732c96892ad39afa4cdf64b1c55338e0fce1b9d4fcb973
783523a241268d73aac0e44770bab359dfc77e8c2120bd9898da1602b1d7918be0068abae57f3a2
e53cbd1c771ab59c374fa2a79b1a24b769a0bb79e64d4feae591c0b711f160d18655fdd7a7f11931
54d7f2f7cb17fa168bac796bce7a1dc6b1e6893cc177a8c5ae5c442ea2be56bc6b8d3aedae411c3d
08bd2428783c5e9718938f0e4aa4d6c3f3caeff402dfcda959c7730e909e6df416dcc90eaad7c5350
36a783816df572cd54aa2d21f4dbd4f531541ac7f9cff00a3a2ba9a5d79359b9b2f2edab490ac4dc4
5bebb7316aaed132346b2b58b452730957fb49bfc38aa2fcc9a67e6ede691af68734577a940e7cc5
a75dc372b0cd05de87269d22695240635506e9a6f443f47e46e0ca027a5455da8597e6369f79ab9f
2f5aea1a5d96af7967f5dd4ac6c96e6f2365d02de08a58a1965883a25cc6cb2d49a32a73568b9e2a
f46fcbbb7f35b5ff00986efcd57da94ce97bf56d3adef63820b636a2de06f56248529532fac2bea3edb
6ebc5b1567d8abce3f2eb52d560f2e4d15ae912dec2bac6bc04e93411a9a6b379b524753b7cb156
57fa635dff00a9767a7fcc4daffd54c55c358d7682be5d9ebdc7d66d7feaa62aefd2fae547fcebd714ef
fe936bff00557156ff004beb9ff52f5c7fd245a7fd55c5583f9c7ccba96973cd335fcba55ddd2470c5a3
5dfd4353b7949a8a2da44e974c5c1a370929ed8aa0ad7ccbe74d4f4ab8d1f5af24be83a2d8369ab6
5acc734315acecb7707eee2b227d789540a7c429db15641f989e5cd5efbcc1e46f376916ada81f29
6a9737579a6c4f1c73cd6d7da7dc593188cac885a36995f8b32f250d46e5405549350d07cf8753d2
754d16da4b58e7d62e352d434f9675110b69ded902ced04ca566548de542bf5987fbc8248dfd4591
154a349f2bf9fe43a0aeb91ebe1a6bf893cdaa9ac442d5d63b1bb824b8b616f3472ac12ccf04a5432
c9555e3027062caa483c9df9931e8badd958697aae9d737179e72d474e5b4d420b656bad4ae16e
b49925f46e8723cebb35781e4b27c0df12a98b793ff00326df5cd41a3b7d4d742d5755d46f6e5b4cd
4a0b7ba17175058b58dca99e475586168ae2296203abab08274a62a987f82bcc979afe89adea965
ab5cdddaf9b6faee6336a8cd041a39b7bd8ed9e3885c8454e5708bc563f578543a715e38aa5ba5e
8df9bc970cbad69daa4fe5dbc781eef4fb7d5a15be86492ce485de2b83720958a755924a3c624e6b
2c70fc2d00559a792349f3cda799efee3cd0d7f22c725d450dd1bdb7934bb8b091d1ecf8c017d5171
0a8f4e47290863ea3f2979a8455e958aa4dad00752f2e92371a8c857e7fa3ef062aff00ffd7f5afe5e7
9cbcb9a6f903ca9a75fddb5bdf5a68fa7dbdcdbc904eb2472c56b1a3a3031d4152082315649fe3ff00
28ff00d5c7fe48cfff0054f1550bcf39791751b596c750b98aeeca75293db4f6d2cb14887aab2346410
7c08c5506dadfe5848179c564c12dc59256c58f1b40c18422b0ed18600f0fb35df155ebe63fcb6592
da7516a26b25e16720b270f0a93ca919f4aaa2bbfc38aad7f307e59cd1ddc72a5a491ea1bdfa3d8b
95b8df91f54187e3dcd7e2ef8aa60be7ff0027a808ba8500d80104e0003fe79e2aeff9585e50dbfdc8f
5ff008a2e3fea9e2a946bbe67d135db9d06c749b86baba1abda4ad1a4330a471f266625900000ea4
e2acfb15762aec55d8aa0a7d1f49babe8754b9b1b79b52b6531dbde49123cd1a37508ec0b283de8
715483f33e29a7fcbbf33c5046f34cda6dc848a352eec7d33b2aa8249f618aabff008ffca3ff005711ff0
02267ff00aa78abbfe5607947feae3ff2467ffaa78abbfc7fe51ffab8ff00c919ff00ea9e2aeff1ff00947fe
ae3ff002467ff00aa78abbfc7fe513ff4b1ff009233ff00d53c554cfe63f9305c2da1d4c7d61a369827a3

3ff768caa4d7d3a75618aaa7fcac0f28ff00d5c7fe48cfff0054f1577fcac0f28ffd5c7fe48cff00f54f1577f
8ff00ca34afe91dbfe30cff00f54f1568fe60794075d47a7fc533ff00d53c55bff9581e51e9fa47fe48cfff
0054f1570f3ff9449a7e91ff009233ff00d53c5501f956ac3ca1ea346f1adc6a9addcc424568d9a2b8d
5aee58df8b80407460cbb7d938ab34c55d8abb15762aa6b04092bceb122cf2002494280ec17a54f
534c5522f3bc91c3e5bb99e6711c314d6924b231a2aa25d44ccc49e8001527156cf9efc920807cc5
a6827a7fa5c3bffc362aeff1d792bfea62d37dff00d2e1ff009ab156ff00c73e4bff00a9874dff00a4b87f
e6ac55aff1d792a95ff1169b4ff98b87fe6bc5577f8e3c99b9ff0010e9bb1a1ff4b87aff00c162aeff001b
793695ff001069d4f1fadc3ff3562abd7ce3e517d975ed39b6aed770f43fecf155ff00e2cf2b569fa734f
a8ebfe950ff00cd58aaf1e67f2d3101759b1248a802e61dc7fc162a956afe62f2fbea1a094d56cd847
7ee5c8b888f106c6e96a7e2db7207cf157fffd0f7f62aec55d8abb15762aec55d8a1610000026060f0
02220574d464301000000000001000000000000000700000000200000208f000020cf0000bb1576
2aec55d8abb15762aec55d8abb15762aec55d8abb1548a53ff003b9da0ff00b565d1ff00a78b7c553
b3246adc59c06a134245683a9fa31559f58b7082432a7a6cbcc3f21c4af5a835e98aae3342a78b48
a1bc0b007734fd67155296faca1922866b98a396793d0851dd559e5e25f82826a5b882dc46fc77c5
555268640a524560f5e054835a75a53af4c554adafacaf23496d2e62b88a42ea8f13abab1898a380
549078b02ade07154462aec55d8abb15762aec55c403b1dc62ab3d28bf917ee18abbd28bf917ee1
8abbd28bf917ee18abbd187fdf6bf70c55de8c3fefb5fb862aef461ff7daff00c08c55af420ff7d27fc08c
55df5783fdf49ff0231577d5edff00df49ff000231577d5edffdf49bff00923157ffd1f7f62aec55d8abb15
762aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb15600fe6fb16d5ff4e8b6b
9e3676da869d2d91451706e61d46ded42052dc4f362a633ca8c8eaddf15621e61fcb8d5bcdde74f3
94d15bc1a7bb0b47d2f57bdb579967e7a54b67242082a1a12d20f59396fc7743b1c554e1fc8fd696
d2ed2e2e7479efe44b482cee65b4926f4ade0d4aeaf64450ec4a728ee16252a68be8afc34a0455d1
fe476acd68e2f6e74bbad51ed64b76be68240e65fd17656114953c987096d3eb1f6bedbec790e78a
b5ff2a2358faa5c47fa62d9b5896f6e6e06bd2c77335ec915cdb5fc0b249ca7e22787ebdf03c423e4b
10ad3e111aac83c85f94efe54f31c1e60bb4d38bc5a6359ac368970de95dcb7324d2cb0b5d492b22
bab905430ea4538e2a81d23f26750d3aef4d76d4ed96db4ebe82f61682078e6896d751bbbd29110
e00facadd7a573fb242747e5f0aaf61c55d8abb15762aec55d8abb15762aec55d8abb15762aec55d
8abb15762aec55ffd2f7f62aec55d8abb15762aec55d8abb15762aec55d8abb15762aec556492c50
af399d634e9c9c85153ee71552fd21603add43ff002317fae2ad0d474f2011770d0ee0fa8bfd71577e
90b0dbfd2a1dfa7ef17fae2adfe90b0ff96a87fe462ff5c55dfa42c3fe5aa1ff00918bfd715790ea8b2cbf
9d765a20469bcbb7b6bfe24b8be3222db433584b6f1084106a5da68ada5e3d3ed9c55ebdf5fb0ff96
a87fe462ff5c55afd23a7ff00cb5c3ff2317fae2aefd2161ff2d50ffc8c5feb8abbf4869f407eb50d0f43ea
2ff5c55bfd2161ff002d50ff00c8c5feb8abbebf627a5cc5ff002317fae2a88c55d8abb15762aec55d8a
bb15762aec55d8abb15762aec55d8abb15762aec55ffd3f7f62aec55d8abb15762aec55d8abb1576
2aec55d8abb15762aec558879cadadaf35af265b5dc293dbbead3168a55591095d2ef48a86046c7
154f3fc37e5dffab4597fd2345ff34e2ad7f86fcbbff568b2ff00a468bfe69c55bff0df977fead165ff0048d
17fcd38ab5fe1bf2e9eba4597fd2345ff0034e2aeff000d7973fead165ff48d17fcd38abbfc35e5debfa2
2cabff0030d17fcd38abbfc37e5dff00ab4597fd2345ff0034e2aeff000cf973feacf63ff48d0ffcd38abbfc
37e5dffab4597fd2345ff34e2aeff0d7970f5d1ecbfe91a2ff009a71577f86bcb9ff00567b2ffa468bfe69
c552bf32f97bcbf1f96f5878f4ab3475b1b92acb6f1020885b7042e2ac8acf7b480ffc569ff1118aab62
aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb157ffd4f7f62aec55d8abb157
62aec55d8abb15762aec55d8abb15762aec558af9a81ff001079269db569ebf2fd157d8ab2ac55d8
abb1552bab78aeeda6b49aa619d1a2902b146e2e0a9a329041a1ea3157cb5aaf9374c82c3f3adf4
dd2e4b7bbd1f51b34f2bcb1473d6284e99628c200a41923f5fd52eab55f5431fb7be2acadbce7f9ac
b7b79a7d96a69a8cfa3af98a7118d2c2cba99d225b492ce05656089eba4d2c41901e7e9734f8b96
2a82d43f363cf5a7793e3d66d6f9b56bb79ee6eeca48b46bb8d26b5b78ed5cdacfea5bc6c2406597
68e156655e3cd5e095995641e55d7f52d7bf36f4ed435296e6394e9de63b0934a6b492186d05bea
5642d434bc0073343199519dbe3e4c62a2fc38abdb315762aec5529f34ff00ca31ad7fcc05d7fc996
c551f67fef1dbff00c634ff00888c555f15762aec55d8abb15762aec55d8abb15762aec55d8abb1576
2aec55d8abfffd5f7f62aec55d8abb15762aec55d8abb15762aec55d8abb15762aec558779d679ad
b57f26cf05b4b7922eaf2816d0189646074cbd048333c69b75ddbe58aa6dfa7354ffa96752ff919a6ff
00d96e2ad8d7353ffa96b521ff003d34effb2cc55c35bd4cd6be5bd447ce4d3bf85e62aefd37a9ff00d
4b7a8ff00c8cd3bfecb31570d6f53ff00a96f511ff3d34eff00b2cc55c75bd4ff00ea5bd47fe4669dff006
598abbf4dea7ff52dea3ff2334eff00b2cc55dfa6f53a57fc37a8fcbd4d3bfecb3155adaeea805479635
36f61269bfc6f462ae1aeea8454f963531ec64d37f85ee2ad1d7b5515a795f5334f0974cdfefbec552
bf326b9aa3f96b580de5ad4a20d65720b3c9a690a0c2db9e37ac683db1565767fef241dff00769bff0
0b118aab62aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb157fffd9000008
40010824000000180000000210c0db01000000030000000000000000000000000000001b400000
40000000340000000100000002000000000000bf000000bf0000af430000ec42030000000000008
000000080fe7fe9430000008000000080ffff1c432100000008000000620000000c00000001000000
150000000c00000004000000150000000c000000040000005100000094a6000000000000000000
00d20100009c000000000000000000000000000000000000005e01000076000000500000000404
00005404000040a20000000000002000cc00d30100009d000000280000005e0100007600000001

67

00080000000000000000000000000000000000f70000000000000000000000ffffff00fefefe00fbfbfb
00e6e6e600686868006161610060606000636363005f5f5f005d5d5d005e5e5e006565650066666
60067676700646464005b5b5b00696969005c5c5c00626262006a6a6a008c8c8c00f9f9f900fcfcfc
00fafafa00d4d4d400dedede00dddddd00dfdfdf00dcdcdc00dbdbdb00e1e1e100e2e2e200e0e0e00
0dadada00d9d9d900bababa00f8f8f800d5d5d5006b6b6b00fdfdfd00d2d2d200d1d1d1006d6d6d0
0cccccc006e6e6e00c7c7c70073737300d0d0d00074747400f3f3f300eaeaea00f2f2f200f5f5f500f4f
4f400cfcfcf009e9e9e0044444400b9b9b900a6a6a600e3e3e300a1a1a1002e2e2e00cdcdcd00717
17100c6c6c6001b1b1b0059595900f6f6f600f0f0f0006c6c6c0095959500ededed00c4c4c4007070
7000c8c8c80023232300454545008b8b8b00b1b1b1008d8d8d00c2c2c2009b9b9b007b7b7b00b5
b5b50089898900888888008f8f8f0083838300a7a7a7006f6f6f0086868600f7f7f7001e1e1e00c5c5
c500b7b7b700a9a9a9008e8e8e00cbcbcb001c1c1c00828282002727270081818100797979000f0
f0f00afafaf003e3e3e00aaaaaa0087878700bdbdbd00333333007a7a7a0091919100c9c9c900575
75700a8a8a80022222200434343007d7d7d00777777009d9d9d0054545400b0b0b00047474700
2b2b2b0018181800a3a3a3007676760092929200e5e5e5005656560084848400e8e8e800a4a4a
4001f1f1f00cecece0072727200111111003737370085858500b6b6b6002f2f2f00bfbfbf005858580
0393939002d2d2d0038383800a5a5a500acacac0090909000ececec00c3c3c3000b0b0b009c9c9c
003a3a3a00efefef00ebebeb00e9e9e900e4e4e400eeeeee00f1f1f10055555500cacaca007f7f7f00
808080007e7e7e007c7c7c009a9a9a00303030000202020010101000d8d8d80075757500d6d6d6
004e4e4e0078787800a0a0a0009f9f9f00b3b3b300a2a2a200adadad00d3d3d30099999900d7d7d
7003d3d3d00b2b2b200ababab00b4b4b4004a4a4a0096969600494949004b4b4b00aeaeae008a
8a8a00c1c1c1009494940051515100505050003c3c3c00b8b8b800e7e7e700c0c0c00097979700
bebebe00989898004d4d4d003232320093939300bbbbbb004c4c4c00535353004f4f4f005252520
041414100292929003434340046464600bcbcbc0040404000191919005a5a5a004848480008080
80036363600252525000e0e0e0014141400242424002a2a2a00313131000d0d0d003f3f3f001515
150026262600131313003b3b3b0012121200060606001a1a1a00050505002c2c2c002828280042
424200171717000a0a0a000909090020202000010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
1010101010101010101010101010101172801015c8fcfcf8080808080808080c34747bdbdcacacac
fcfc3bdb6529999ccccccccccccccccbdbdcacaccccb6b6cccccccccccacacaccccccccccccccccbdcac
cb6b6cccabdbdbd47cf9515568b554e509580cfcfcf80614ec14e4e6c58a36c56958050b60d840102
01020101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010000010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010128282835773301010101010101010102020202010101010
10202020101010202020202020202022828020201010101010101010202020202020202020202
02280201010101022828020101010101010201010101010102010128020101012801010101012
818b4c801020101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101000001010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010102029c4a3501020202020202020201010101
01010101010101010101022801010101010101010101010101010101010101010101020201010
10101010101010101010101010101010101010202020101010101020202280202020201010102
1717010101013d810102010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010100000101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
010101010101010101010101010101010101010101010101030116179f88361601010101010101
01010101010101010128282802010101010101010101010101010101010102020201010101010
20202010101010101010101010202020201010101020202010101022828020201010101010101
0228280101280201161801609e020201010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010000010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010102010184400301010

10101010101010101010101010101010101010101022801010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010102020
2021728020202010101010303010101013b810102010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010100000
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101020128
45af34010101010101010101020201010101010101010202010101020101010101010101282802
02010101010101010101020202010101010101010102020101010102020101010101010228020
101010101020201010202010101022801012802010260c80102010201010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010000010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
1010101029b310302010101010101010101010101010101010101010101010101010217022828
280101493d2445018e9421b25f71b32a289b78c326013fb35e99c826b1693b23350101010101010
1010101010101010101010101010101010101010101010201013b9e0102010101020101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010000010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
0101010101010101029b881601010101010101010101010101010101010101010101010101010
10201010102010141f5380117cfcd01ac889ee7190140f66c111a92ca11653f9a38b9ea690128010
101010101010101010101010101010101010101010101010101010201013b9e01020101010201
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010100000101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
010101010101010101010101019f5a5c0101010101010101010101010101010101010101010101
010102010128170117010281f45f1801522728706c28bf36356e1e039d9da33a99068ec4169fbe9f
0103010101010101010101010101010101010101010101010101010101010201013b9e0102010
10102010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010000010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
1010101010101010101010101010101019f2b44010101010101010101010101010101010101010
101010101010128010101011717011e895e1802590b02bda318f29696dd7847a34520c21482410
5019c4d9d0101010101010101010101010101010101010101010101010101010101010201013b9
e0102010101020101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010100000101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101020101484635010101010101010101010101010101
010101010101010101010103012802250101013cf5240101938d3bdf47d089af66475295f11855ba
8b67282b6dc7f01602280101010101010101010101010101010101010101010101010101010102
01013b9e010201010102010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010000010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101

69

010101010101010101010101010101010101010102010101482d4401010101010101010101010
10101010101010101010101010117020117010101331884aad0013538725711962a7e3b4e4899
7f62281f704e4802205615ce9f28010101010101010101010101010101010101010101010101010
10101010201013b9e010201010102010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010000010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
101010101010101010101010101010101010101010101010128010102485a2501010101010101
0101010101010101010101010101010101010201011701013485b4cbe1604b5ba50d0101160128
0203010102010101030101010101b56e9b0128010101010101010101010101010101010101010
101010101010101010201013b9e01020101010201010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101000001010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101280101024840160101
010101010101010101010101010101010101010101010101010201011801a2465331882d7850b
d010101021701010101010101280101170101282e400302280101010101010101010101010101
01010101010101010101010101010201013b9e010201010102010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010000
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010118010
19c315c0201010101010101011610000026060f002220574d46430100000000000100000000000
0000700000000200000206f000020cf000001010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010103020101280101599e01020101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010100000101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010102844a5c0101010101010101010202020202020202010101010101010102
02020202020201020202020202020202010101010101020202020202020202010101010101010
10202020202020202020202020201010102020202020202020101280228010273810102010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010000010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101011601280148885c010101010101010101010101010101010101010101
01010101020202010101010101010101010101010101010101010101010101010101010102020
20202020202010101010101010102020201010101010101010101010101022817010101016b81
01020101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101000001010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
0101010101010101010101010101010102011828962f1828010101010101010101010101010101
01010101010101010102020101010101010101010101010101020101010101010201010101010
10101010101010101010101010101010101010201010101010101010101010101010128010101
01012860040102010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010100000101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101

01010101010101010101010101010101010101010101010101483128020101010101010101020
20202020202020101010101010101020202020202010101010101010101010202020101020202
02020202020202020101010101010101020202020202020202020101010101010101010101010
10102010128280101600401020101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101000001010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010201019d5a322801010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
010101010101012801022801010293c80102010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010100000101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101282828366f450
10101010101010101010101010101010101010101010101010101010102020202020202020202
02020102022828020201010101010101010101010101010101010101010101010101010101020
202282802020202020202020201020101280394c80102010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010100
00010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010102010
1283613b44f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4fb9b9b94f7a7a7a697a7a7a7a7a7a7a7
ab94f7a69697a4fb94f4f4f4f4f4f4f4fb4b4b4b4b4b4b4b44f4f4f4f4f4f4f4f4f7a7a6969c0c0c0696969
6969696969c07a69b94f7acb66c801020102010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101000001010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
1010101010101010101010101010101010101010101010101010101010101010101179c1b1e1a1
a1a1b1b1d1d1eb5231a1b1e1e1d1e221b1c1a1e221d1a1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b2
11d3c6d4a3322211b1b1b1b1b1b1b1b1e1e1e1e1e1e1e1e1d1d1d1d1d1d1d1db71e1c211b22221
e1b1b1b1b1b1b1b1b1a1a1a1c1c21211f010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010100000101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010102022801010
22801010101010101020216020101020201012801010102280201010101010101010101010101
01010101010101c1a85c0128010101010101010102020202020202020101010101010101170201
01012802010101010101010101020202010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01000001010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10102280101010101010101010101010201010101010101020101010102010101010101010101
01010101010101010128010382f4b2010101010101010101010101010101010101010101010101
01010101010101020101010101010101010102020202020202010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010100000101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101

71

01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010128010101010102170202010101010101010101020201010102020202020202020101
01010101010101010101010101010118346705661601010101010101010101010101010101010
20202020202020201010102020101010101010101010101010101010102020201010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101000001010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101020101282801010102020101010101010101020101010202010202020
1010102010101010101010101010101010101010117c980b4cf340101010101010101010101010
10101010101010101010101010101010101010102010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010100000101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010102170101280101010101010101010101010101010
1010101010101010101010101010101010101010101010101030164596b7aa201010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101000001010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101020201010101010201010101010101010202
0201010202010202010102020201010101010101010101010101010101010136661db4418b010
20202020202020201010101010101010202020202020202020201010202020201010101010101
01020202020202020201010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010000010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010128020117280102010101010
10101010102010101020101020101010102010101010101010101010101010101010101011a60
9d944827010101010101010101010101010101010101010101010101010201010202020201010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010100000101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
101012859b9485901579601010201012801010202012501280101022801021801022802010102
01180101010128280118010201180101280128010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
00000101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
010101010101010144c41ec83d01595f0303b01504010301170128010128030101030201020317
01010101015c010217280201171701010101022502010128010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010100000101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101

01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101013f8801043b1751610103051503010228012828020101020128012
81801010128011718280102250101030101010201031801011701010102010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010000010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
101010101010101010101010101010101010336011b730102a00101664a2e1e017e97bbcb60b75
c59493a2e5fb7b24b29609cab52b703d9a29cb13a4573d9021701a059049b942a1601010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010000010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
010101010101010101010101010101010101010101010117173c6b012801020253a4b7666b8a15
d58e7b969490c39241d28483b69c0a97b85847c8d86bd2c4cf4b1256170201b282a213516c83280
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010100000101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010125011fb10101171701649901
5b544e8c2f3212329e8bb20c25120215b936535a0b1736810f3c101a329f31ca010117735320790
297d2020101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101000001010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
010101010101010101010101010101010101010101010101010101010101020128217e1701010
20131a7030d8c7ac70b84d2c8334fbb2d01c53499b42031cfbe7e82210c9b79c312b30e99032801
94a420052852be010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101000001010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
1010101010101010101010101010101010101010101010101010101010101010101010201021b
ba0101160101a6275a27047964593779149505c1b323d280d2a75a70039940773fd78ed0581351
5a82550128156aa03db6118e0101010101010101011610000026060f002220574d464301000000
000001000000000000000700000000200000204f000020cf0000010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101000001
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
0101010101010101213b010101011617360436019bb53501354834451e2844444884360436022
52602c8a426011a9e17039b9c01018e6c17021e452802010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01020202020202020202020202020202020202020202020202010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010102010101
02020000010101010101010101010101010101010101010101010101010101010101010101010

73

10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101213b01010101010101160101171701010228010103010201021
701180128280117015c01020118010102170118014501280217280101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101000001010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
0101010101010101010101010101010102011f5901010128010201010128010101181702280101
28010101010128010116011628011701012801020101010118011803011701020101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010202020202020202020202020202020202020202020202020202020
20202020202020202020202020202020202020202020202020202020201010101010101010101
01010101010102010101010200000101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010102012073010101010102020101280117010
10101010102010102010228022801011701011828012801010101280101020101011703011701
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101000001010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101020120730101010101010102
01010118010128170201010101010101010101180128012801010301012802010102020103170
20301020101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101020202020202020202020202020202
02020202020202020202020202020202020202020202020000010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
010101010101010101010101010101010101010101010101010101010101010102013c60010101
17170102030101030102010101010101281701010128012801010101170217010202030101010
22817020201010103010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101020101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101000001010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101020
19e6b010101020201010201010201182802010117020117010201020117012801010101010301
01010117010201010101020203010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101022817010101010101
01010101010101010101010101010101010102020202020202020202020202020202010101010
10101010101010101010101010101010101010101010101010101010102020201010000010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
0101010128019e6b0101010101020201020201010201282801020201030128010101010101011
70117010201021701030101010202011701010118010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101012803183
63636363636363636363636363636363636363636363636343434343434343434343434343434
3434343434343434349b9b9b9b9b9b9b9b9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9b9f48489f9b00008cc77
a5f4f4f5f545454545454545454bbbbb9b9bbbbbb5fb2b254bb4fd9bbb94f3ab2b9b2b98c54b254bb
c77a5f8cb28cb9b2bbb9bb8cb24fb2bbbbb94fb9bbbb8c7ab28cb984010101010101010101010101

0101010101010101010101010101010101010101012801010202010128012801011702035fbbbb
bbbbbbbbbbbbbbbbbbbbbbbbbbbb54545454545454545454545454545454bbbbbbbb54545454b
9545f382fd98c7abbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb2bb548c8c54bbb28cbbb2b2b2b2b97a
54bbbbb2b2bbbb54bbbbb2b2bb548c5fb271012501250102010101010101010101010101010101
01010101010101010101010101010101010101010118280128020102011701c78bc15061c18358
6c4e4ec15555c14ec15515151515151515155655c14e4ec1555680c1555780614e50615770cfcf7
0576150bd4770ca38b178853d3838b0b3b33db3bab45985bab9b28c60c0ba54580000da69d9c7c
7c75f8c5454545454545454bbc7d93a545fc7b9bbb23ac78c3a4fd9bbb97a8c6d24b24f94bb4fc74f
bb5fbbbb4fb9b97a4f548c694fb94f69697ab9b98c7a5fbb8b6902010101010101010101010101010
10101010101010101010101010101010101010101020101011701010102170101b5728c8c8c8c8
c8c8c8c54545454545454545454545454545454545454545454545454545454548c8c8cd03a5f93
58243a2454545454545454545454545454545454bb548c5f5f8c54bb8c54bbbbbbbbb2b98c5454b
bbb54548c5454bbbb548c5fc7b60a3501010101010101010101010101010101010101010101010
1010101010101010101010101010202020101010103010217010118bb7135353532a0a0323536
3636363636363635353535353535353636444444443636163632251844364435445c5c5c5c4435
5c28172503010228012803031702022803010117030101010301280118940000d2010103010217
01010101010101010101170328280101280201012801010102020101012803030101010301010
10128010201012803020102010101010201010101180101b9c0010101010101010101010101010
10101010101010101010101010101010101010101022801012828010301010201011e0c0101010
10101010101010101010101010101010101010101010101010101010101010101010101010228
01014501022801010101010101010101010101010101010101010101010101010101010102020
10101010101010101010102010101019ebf01015c0101020101010101010101010101010101010
10101010101010101010101010101010101010217020228010101011701036021010101010101
01010101010101010101010101010101010102010101010101020101010101010101010101010
10101010101012802010202010101010101010101010101010101280201170102780000c401030
20101170101010101010101010102010101010101011716010118010101010102010101031801
0101020218010102010101020201020201010228020128020101013ac017010101010101010101
01010101010101010101010101010101010101010101010128020102010117010102010216262
b0202020202020202010101010101010101010101010101010101010101010101010101010101
01012817010128011702010101010101010101010101010101010101010101010101010202020
10101020101020202020101010202020201010104d14428010101030101010101010101010101
01010101010101010101010101010101010101010102010101010201010217010301016bab010
22802010101022802010102280201020202020202020201010101010101010202020202020202
01020202020202010101010101010101280201020228020101010101010101020102172801b30
000c40202011701010101010101010101011701012801021701020201010301010203012801282
801010201020201012828022828010101010102020102020202010117010103b2940101010101
01010101010101010101010101010101010101010101010101010101162801010117020128010
10101012214010101010101010101010101010101010101010101010101010101010101010101
01010101010101010128010128010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101011b43032801010101010101010101
01010101010101010101010101010101010101010101010101010103170128010128012801010
117ba1b0101010101010101020101010102010101010101010101010202282828280202010101
01010101010101010101010101281728020202010102010101020202010101010101020101010
20128013d00007902010118020201020202020202020201020201011717010102250101020217
010202010101010203010202015c01010101282801010202010101010101010101020101013a60
02010101010101010101010101010101010101010101010101010101010101010101012803010
21801170101171817234601010101010101010101010101010101020202020202020202020202
02020202010101010202020228010101010102020101010101010101010101010101010101010
202020201010202010102020201020101010101010202020202020201011fc5020128011702010
10101010101010101010101010101010101010101010101010101010101010201010101010102
01010201010373220201010102280201020101010202020101010101010101010101010101010
10101010101010101010202010101010202010101010101010128020101020202010201010217
17280128010102013d0000c5282801010102020101010101010101012802021701011816010202
16015c02031801175c011728015c01170101172818010101010102010101010101010101280101
03025fb40101010101010101010101010101010101010101010101010101010101010101011802
015c35010103010128010101232701010101010101010101010101010101010101010101010101
01010101010101010101010102020201010102020101010101010101010101010101010101010
1020101010101010202010101022802010101010101010101010101010101010284d844021701
01020101010101010101010101010101010101010101010101010101010101010101170102160
101020117010317010160b7010101010101010101010101010101010101010101010101020202
02020202020101010101010101020201010101020202020101280201170101010101010101010
101010101010102010301017e0000d3010117280301280101010101010101022801010202c2065
8c8015631842495b02c03cb5b3841011759ccb39e02ba463325010101010101010101010101010

75

101021701018cb4280101010101010101010101010101010101010101010101010101010101010
1010201257a271523340201010102282327020202020202020201010101010101010101010101
01010101010101010101010101010101010202010101012801280101010101010101010101010
101010101010101010101010102010101022802010101010101010101010101010101010120cd4
40101160128010101010101010101010101010101010101010101010101010101010101010101
16b5419d010301012801011701731b01020202010101010101020201010102010101010101010
10101010101010101010228010101010101010102020101010202010128010117010102020202
010128010228020101280101010103b10000cd0202010101020101010101010101010101010201
01456eca0195e9ab29b81b048296a1610213734fbe02624018dcb35c0301010102010101010101
010101010101030116d0730201170101010101022801010201170101011702011701280128010
10201030102280102281bd0b96c46cac8281701192d01010101010101010103170103012801280
21601012501020101010301011701010328011601020217011601021701010103011703012801
17010101160101010228020101012828020201170125010228011701011601010101010101010
1013ccd25010128010202010101010101020101010202010101010101010101010201010101010
1010101011bb4c12f4e260303010102286b1b01012801020202010228021701170101030102170
10117010102010128010301170117010101030101020128280102022802012828010117020101
280101020101010101010101010128010101780000ae020201010102010101010101010101012
81701011716bc6d2ae95101af0c01281093d4b30166d30e6428a0ce19061a03280101022802010
10101010101010117010101175f611a30ad8726ad2a26adad292a1dad26ab622a2ab7308730b53
7293f196287ab872a2a30192aab1e2387cf1079aca72ec211010101010101010101012817013673
69443304367aa74b2837942448018ea79e33c0543701b9382001182ebdb4c0221834bbb4b718d0
b09cb25201d06071ca2401016d3b972520bdd081cfcb03d958695cb25237030101010101010101
01010120c436180201010102020201010202022802010101020202010101010202010101010101
01010101030117010123caa6b6c75e9d011773ab012802010101329e9b01010132815c0201a032
0135a09f449b34369b3245359c16181844019f440232a0a0289b3496010345015c1828345c28024
4252501010101010101010101010117010201380000ae01020101010201010101010101010101
010102010101e72f6a790102a7880144b84179bd02d207af78011f911f10b728020101022802020
1010101010101010102250301c0d14a112b0e2d2b2d274627110e27270d0f0e0c2d06082707081
427270c4a062b2d14050d110514070577a6678aa9f3cda42d01010101010101011601011701256
447014a06176de81e5ec61c24729c79ca3cd23b5c0f8714be010183d7c9c82a9948755036dcb459
c503273117d5b2b5e29701673935cf834539b228bc8c62919557b985dd5c011801010101010101
0101019dd1378c696969b9b9b9b9b9b9b9b9b9694fb2bbb2b9b9b94fb9b94f7a7a4fb24f4f4f4f4f4f4
f4fb25f4fbab2d98e24544ed6aa4629931b0101280201a2077767b917344a3b78346d390e8c3f6ecf
28b3df1319bf55b5d54b2ad83741f20a549dcd582549d7b0160866b6439c056ac33421d3c43d441
80101010101010101010117012801b10000d30102010101020101010101010101010301010102
03016ab1340806012556c7804601be725b6a24216c622f3b1c3eb4020202020101010101010101
010101012501010228cb3b01012801010101030101011701010201010117011702010103280101
010103280102282801280134b0272758b4a002ad140101010101010101010128280101cf8eb563
0a9c21e9361082019bdb8cbf3f719035015a4ecf720130ef69010101185eea372888d33a7201404e
45f0359fdb2328f057015eea9edc5f010a8767a501185cc9061818011801010101010101010120d3
811a1a1a1d1d1d1d1e1e1e1e1d1db7221b1a1d1e1e1d1c21211c1b1b1c1f1f1f1f1f1f1f1f1f1ab721
219e96042acccf0582b64893ab280118019cd7591801578e9d6b33ae8eda6b015430a1040125f18
5287f49289a20b0058474ca033b1a7f540135f2219f393ca467a7bc452697d27f02d98e010301010
101010101010128012801b00000c50101010102020101010101010101010101170217010275690
18ce0440134625e0101dd853fc801019f269e18450ab20102020201010101010101010101010101
012801178c94020101010201350128022802013601250117010125010317010101020125010201
0101013451887b56999517010103190d01010101010101012801170101034797dcbec7c322e445
430d5c22ecc7bc197139024405476fd40173ed1e015c02012caa9c2809823a071788a416ce449bd
b1b289069188cea8182bb01a12e5509cf82782413010117010101010101010101013cd22502280
20101010101010101010117010101010101010201010228280101010101010101010101010116
35976fdc5541320101017e230101012869ee340128873b0141e25a34799c180134d24518358a3b
03532a018a22ca4a9ed69e2816176fc90145d11b012cbd464e6485280234e57116023201010101
0101010101010101010201b10000c501010101020201010101010101010102010101010126a855
1a43140301280101010491b302012802010103012896450101010101020202010101010101010
101020201177ac001280173664b7059ad0101448ba66fc25a3d44665501363018028b065ead0d6
26fc017015b6540b9020153ab1803012a1401010101010101010101170118013b57e4b2014e41e
525a20d2215139d928525a34f41792a7291660ae61a17010225027f7e87e78c586ecadfc026743f8
ce82d5b56059e09c301d27101a1a29ca449e978153e837e010103010101010101010121c403010
128010101010101010101010201010101010101010101010202010102020202020202020101d0
055859519b280101011602381b015c2801b1ea34010141b101cd24c8840a2cc3d49edf1f2825a86
00105b4a0b833cc5316ebbbb4c4340bb145a0d31c17c39b0c56b2500154bb05a79775291801010
10101010101010101020101520000c401010101020101010101010101010101012801011820735
47a49010101010101259b3d230101170101160101012501010101010102020201010101010101
010202010102b2b40101014f0b26cb60150101520984bcc0a16d0158bd01cfbf024fc42cb3c27902
77b90103a6ca44551d28dd78010101191101010101010

The

following
public
class

code
provides
the
implementation.
MotorController
implements
Runnable
{
public
MotorController(Plane
dimension,
UserInterface UI, Robot robo) { // constructor
//
No
call
to
super()
needed
now.
dim
=
dimension;
myInterface
=
UI;
myRobot
=
robo;
}
public
void
run()
{
int
position
=
0;
//
initial
position
int
setting;
while(true)
{
setting
=
myInterface.newSetting(dim);
position
=
position
+
setting;
myRobot.move(dim,
position);
}
}
private
Plane
dim;
private
UserInterface
myInterface;
private Robot myRobot;

The

three
controllers
UserInterface
Robot
MotorController

can
UI

now
new

=
robo=

MC1

MotorController

MC2

MotorController

MC3

be
created.
UserInterface();
new
Robot();
new
MotorController(
Plane.X_PLANE, UI, robo);
new
MotorController(
Plane.Y_PLANE, UI, robo);
new
MotorController(
Plane.Z_PLANE, UI, robo);

// No threads created yet.


and

//
//

then

associated
with
Constructors
passed
an
the
Runnable
interface)
when
Thread
X
=
Thread
Y
=
Thread
Z
=
X.start();
//

threads
and
started:
object
(which
implements
the
threads
are
created.
new
Thread(MC1);
new
Thread(MC2);
new
Thread(MC2);
thread
started
Y.start();

Z.start();
Note that when threads are constructed with a Runnable object, it is also possible to recommend to
the JVM the size of the stack to be used with the thread. However, implementations are allowed to
ignore this recommendation.
Warning Passing the same Runnable object to more than one thread constructor will mean
that each thread executes the same run method in the same object. This means that
any variables encapsulated by the Runnable object and accessed by the run
method must be protected from concurrent access by using synchronized statements
(or synchronized methods provided by the Runnable object).

Current thread
Irrespective of how threads are created, the identity of the currently running thread can be found using
the currentThread method. This method has a static modifier, which means that there is only
one method for all instances of Thread objects. Hence, the method can always be called using the
Thread class.

2.4 Thread Termination


77

There are several ways in which a Java thread can terminate.


It completes execution of its run method either normally or as the result of an unhandled
exception.
Its destroy method is called (either by another thread or by itself) destroy terminates
the thread without the thread object having any chance to cleanup. Note, however, this
method is not provided in many implementations of the Java virtual machine. As of Java 1.5,
it has finally been deprecated.
Its stop method is called (again by another thread or by itself). This is a special case of the
run method completing with an unhandled exception. In fact, when stop is called, the
exception ThreadDeath is thrown asynchronously in the target thread. This is a subclass of
Error and, therefore, should not be caught by the program. The thread class is able to
clean up (releases the locks it holds and executes any finally clauses) before terminating the
thread. The thread object is now eligible for garbage collection. If a Throwable object is
passed as a parameter to the stop method, then this exception is thrown asynchronously in
the target thread. The run method can now exit more gracefully and clean up after itself.
The stop methods are inherently unsafe as they release locks on objects and can leave
those objects in inconsistent states. For this reason, the methods are now deprecated and,
therefore, should not be used.
Java threads can be of two types: user threads or daemon threads. Daemon threads are those
threads that provide general services and typically never terminate. Hence when all user threads have
terminated, daemon threads can also be terminated, and the main program terminates. Calling the
setDaemon method with a true parameter indicates that the thread is a daemon. By default, threads
are user threads. Note the setDaemon method must be called before any such thread is started.
One thread can wait (with or without a timeout) for another thread (the target) to terminate by issuing
the join method call on the target's thread object. Furthermore, the isAlive method allows a
thread to determine if the target thread has terminated. The specifications of the above methods are
shown
below:
package
java.lang;
public
class
Thread
extends
Object
implements
Runnable
{
...
public
void
destroy();
//
DEPRECATED
public
final
boolean
isAlive();
public
final
boolean
isDaemon();
public
final
void
join
()
throws
InterruptedException;
public
final
void
join(long
millis)
throws
InterruptedException;
public
final
void
join
(long
millis,
int
nanos)
throws
InterruptedException;
public
final
void
setDaemon(boolean
on);
public
final
void
stop();
//
DEPRECATED
public
final
void
stop
(Throwable
o);
//
DEPRECATED
}
There is one further way that a Java thread can terminate. This is by calling the exit method in the
System class. However, this results in termination of the whole program. All threads, irrespective of
whether
they
are
daemon
or
user,
are
forced
to
terminate.
package
java.lang;
public
class
System
{
...
public
static
void
exit(int
status);
//
By
convention
normal
termination
is
//
represented
by
a
zero
status
value.
//
The
method
never
returns.
}
In fact, the System. exit method calls the exit method in the Runtime class. This class
encapsulates information concerning the current Java platform. It also provides more control over the
termination of the Java program. The addShutdownHook and removeShutdownHook methods
allow a programmer to specify one or more threads that should be started when the JVM has been
ordered to shutdown (either internally via a call to the exit method or externally via an unhandled
signal). The halt method allows the program to be terminated immediately.
package
java.lang;
public
class
Runtime
{

//
static
methods
public
static
Runtime
getRuntime();
//
Get
an
object
for
the
current
Java
platform.
//
methods
public
void
addShutdownHook(Thread
hook);
// Add a thread to the list to be run on shutdown.
//
Throws
IllegalThreadStateException
if
//
the
thread
has
already
been
started.
public
void
exit(int
status);
//
Shutdown
the
current
VM
after
starting
and
//
running
the
shutdown
threads.
public
void
halt(int
status);
// Shutdown the VM without running the shutdown threads.
public
boolean
removeShutdownHook(Thread
hook);
//
Remove
a
thread
from
the
shutdown
list.
...
}

2.5 Thread-local Data


Java provides two types of data. Static data declared in a class is shared between all instances of the
class. Nonstatic data, in contrast, is replicated in all instances of the class. Consider a class that is
defined
as
follows:
public
class
withStaticData
{
public
static
int
shared;
public
int
notShared;
}
If two objects of this class are created, say 01 and 02, then it will always be the case that at any point
in
time
01.shared == 02.shared == withStatic.shared[1]
However, there will be two notShared variables: 01.notShared and 02.notShared.
Consequently, there is no guarantee that 01.notShared will ever equal 02.notShared.
For multithreaded applications where objects with local data may be called by more than one thread,
a third type of data is often required. This is data that is shared within the same thread but that is
different across threads. This is achieved by a special type of object called a thread-local object. If a
thread-local object is declared as static, then the object holds a different value for each thread that
uses the object. Thread-local objects are created from the ThreadLocal class. (This class has been
made
generic
as
of
Java
1.5.)
package
java.lang;
public
class
ThreadLocal<T>
{
//
constructor
public
ThreadLocal();
//
methods
public
T
get();
public
void
set
(T
value);
protected
T
initialValue();
public
void
remove();
// This method is a Java 1.5 addition, it clears
//
the
value
for
the
thread
local.
}
Now
public
public

the
class
static
public

class:
{
...
threadSharedClass;
threadSharedObject;

withStaticData

ThreadLocal
ThreadLocal

}
will have one copy of threadSharedClass per thread that uses the class, whereas
threadSharedObject will have one copy per thread per instance of the class withStaticData.

79

Consider, for example, a secure server that requires a client to log in before allowing it to call its
methods. The login method returns a password that must be presented by the thread each time it
issues a method call. Now the server could save a mapping between threads and passwords.
However, this is tedious and error prone. Thread-local data provides a simple and elegant solution.
First,
a
class
is
provided,
which
allocates
a
new
password:
public
class
Password
{
public
Password();
//
Generates
a
new
password.
public
String
getPassword();
//
Returns
the
password.
public
boolean
match(String
pass)
//
Returns
true
if
pass
is
the
password.
}
Now the server can use thread-local data to hold the password. The calls to the set and get
methods
are
directed
to
the
data
associated
with
the
calling
thread.
public
class
SecureService
{
private
ThreadLocal
password
=
new
ThreadLocal();
public
String
login()
{
Password
pass
=
new
Password();
password.set(pass);
return
pass.getPassword();
}
public
void
service(String
pass)
throws
Exception
{
Password
check
=
(Password)
password.get();
if(check.match(pass))
{
//
perform
service
}
else
throw
new
Exception("no
access
allowed");
}
}
A subclass of ThreadLocal, InheritableThreadLocal allows a parent to pass on any threadlocal
values
to
its
children.
package
java.lang;
public
class
InheritableThreadLocal
extends
ThreadLocal
{
public
InheritableThreadLocal();
protected
Object
childValue(Object
parentValue);
}
Usually, the values will be identical, but the childValue method allows the child value to be an
arbitrary function of the parent's value.
[1]

This may be true in theory, however, in practice see Section 3.4.

2.6 Summary
This chapter has introduced the basic concurrency model for Java. A simple state transition diagram
for a thread summarizes the model and is shown in Figure 2.6.
01000900000328ba010000003fc1000000001610000026060f002220574d4643010000000000010
0c6cc000000001000000000200000a8ce0100a8ee0100010000006c0000000000000000000000d
20100007201000000000000000000006a4000001533000020454d4600000100a8ee01000c00000
0010000000000000000000000000000000005000020030000c40100001a0100000000000000000
00000000000e3e306006e4e0400460000002c00000020000000454d462b014001001c000000100
000000210c0db01000000600000006000000046000000906a0000846a0000454d462b224004000
c000000000000001e4009000c00000000000000244001000c00000000000000304002001000000
0040000000000803f214007000c0000000000000008400005dc690000d06900000210c0db01000
0000000000000000000000000000000000001000000ffd8ffe000104a4649460001020100480048
0000ffed0e2a50686f746f73686f7020332e30003842494d03ed0000000000100048000000010001
00480000000100013842494d040d000000000004000000783842494d03f3000000000008000000

00000000003842494d040a00000000000100003842494d271000000000000a000100000000000
000013842494d03f5000000000048002f66660001006c66660006000000000001002f6666000100
a1999a0006000000000001003200000001005a00000006000000000001003500000001002d000
000060000000000013842494d03f80000000000700000ffffffffffffffffffffffffffffffffffffffffffff03e80000000
0ffffffffffffffffffffffffffffffffffffffffffff03e800000000ffffffffffffffffffffffffffffffffffffffffffff03e800000000ffffffffffffffffff
ffffffffffffffffffffffffff03e800003842494d040800000000001000000001000002400000024000000000
3842494d0414000000000004000000023842494d040c000000000c9a0000000100000070000000
5900000150000074d000000c7e00180001ffd8ffe000104a46494600010201004800480000ffee000
e41646f626500648000000001ffdb0084000c08080809080c09090c110b0a0b11150f0c0c0f15181
31315131318110c0c0c0c0c0c110c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c
0c010d0b0b0d0e0d100e0e10140e0e0e14140e0e0e0e14110c0c0c0c0c11110c0c0c0c0c0c110c0
c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0cffc0001108005900700301220002
1101031101ffdd00040007ffc4013f00000105010101010101000000000000000300010204050607
08090a0b0100010501010101010100000000000000010002030405060708090a0b10000104010
30204020507060805030c33010002110304211231054151611322718132061491a1b1422324155
2c16233347282d14307259253f0e1f163733516a2b283264493546445c2a3743617d255e265f2b3
84c3d375e3f3462794a485b495c4d4e4f4a5b5c5d5e5f55666768696a6b6c6d6e6f6374757677787
97a7b7c7d7e7f71100020201020404030405060707060535010002110321311204415161712213
0532819114a1b14223c152d1f0332462e1728292435315637334f1250616a2b283072635c2d2449
354a317644555367465e2f2b384c3d375e3f34694a485b495c4d4e4f4a5b5c5d5e5f55666768696a
6b6c6d6e6f62737475767778797a7b7c7ffda000c03010002110311003f00f554924925292492494
d038edc9a6f7398cb32773dac17016358e6ee6d1fa331b5bb3659f99ea6f55860e4110ec0c4668c9
73035e6770f5f687d5535dfa3fe6f77a6b52cc7a2d3bacadaf3e2402a9755774ee9fd372737229fd0e
3d4eb2c35d7bdc1a07b9ed637f73e924a6b0c3cde4f4cc28f0104f0377f83ff00315baf1a86610b9f43
312f358759e980d2c746edad7b36eedaff00f3d41d43f271e8bf0194d2cb5a2c70be93ba1c1ae637d
3f63ab7fefef50181d4fd1780ec5af2207a56d74c4383be96d7effcc494e9546c754c75addb61682f68
ece8f7354d50f4bad1b985d7d3e8825ce0d610e3a3b633573bd9b8fbbf3d068a3eb136c78bb271df
59d58ff4c876a6c76dda1fb3f47fa167fc233fedc7a53aa924924a524924929fffd0f55492492529249
2494d5a9975ec173ae7305837318cda0069fa325cd739cf55ba99ae8a7d3c817e4d1787576b1ad6
bc6c236bbd5af66ef49fbbd3ff00cc3f48ae8c6d8e71aec7d6d7192c1b4b41325ce6ef6bb6ef42cb71
c6c6b2fb32bd26b1a4fa967a6d683f9bb9cf6b5bf492531c47b332b75955b7b435eeac8b1bb0ee69
daef6bd9ff004d12caeda5a6d6dcf76c04963f696b80d4cc3439bfebf4d53a733a9daf67ead632a749
75a5f53806c3cd6e67a6d77abbf657ff006ea67dbd4ac63f7e25967a6039b51b58d6d8edcdf64b6b6
bbdadf7fbff00e2ec494e9faccf077f9aeffc8a5eb33c1dfe6bbff22b34f52eb23d523a5b8b5a1be90f55
9b9d246fdc3f3766efa3ff0005ff0014a57f50eaccc80ca7a6baca839c1cff0051825a3736b7364fe7b9
adff00adbd2537fd66783bfcd77fe4567defeb9ea5bf67750185c0d3ea36d243606edfb18dff00bfab9
857e4df4efc9a3ecef980d2419100eefe4fbbd8ac24a6a625b990ff00b66c2646c3531e0447bb76fdff
009cac1b58049900724b4ff729a85dfcd3ff00aa5253ffd1f554937096e6f123b7e3c24a5d251b2cae
a61b2c70631bcb8980160f5dcda72f1edc27666474c036bdd6e3cb6f2c1fa47fbb6edc663ea1b3dffa
6f52c67f37fe1929da165d63dc18036b61dbb9d24b88fa5b5bedf637f7965750bba3f5be9997d3f232
a838f77a98f6ef1b08734bab73982e733dd4dd5fb2cff4b57f214eaea185818b58a9de9d0439b5d16
36cdec3488b99bdadb5cefa3fe13f9e7fe92bbaef56b42b7aa74da8171c6a48713ab5b208fd23bd4d
fe96cf4df6d4fa77ff00dc9b29ff00b915a4a6fe3f51c3bacfb3636550e7b496b6b673ed1f458d0ff76d6
8fcc565e725addcdd9611f99ab49feaba5caa6336bd955f8b8f8cd6bc7e8dec3101c37982cabfce56
4fdb1c0b6195cfe7825e47f60b189292556b2eadb6d67731c2415359547d5ec3c2ea57f54c1dd565
64b1acb985ce34bcb7e95d6553fd26ddacdf93f4ff0047ff001feb4dcdccc8c821b96ec4b0347eadb1
ae1fcab1963bf9f6ff00adb5a4a7492542cc1ea0e1eccf734b43434fa6d3a86bd9639faed7fab63ebb
7f91e92857d37a835a5a7a83c81eafa6766ad367a9e9b9ce73ddeafd9fd5f67a9fa3fd1b1253a4a16f
f36ef8154460753d37751738888fd130707f93fc9f6ab75d76558a2bb6c3758d6c3ed7000b8fe73b6
b21adfeaa4a7fffd2f45cbc6c4cf7eeb31edb4b1aea9b6b1de9e8e734d8d6fe96973bdd4b3dff00f6df
e7aad9f81bb1ec34e15d9168a8d34d0eb9b5b209768fb196ef6b3dfef7fe91ecabf9962bac0598df63
b6bb21b58afd46090e11b373367d077f25cc59cde92e680d6e7750dac0d0c1c40036bbe8d6ddceb
36a4a6cf4ca7a9371a97f57adb767b1b0f38e47a0d23838edbdecb3e8eddefb3dfbff00e093dedce3
95ea7da6cc5aacdad6b1d5d6f603f47639fbacdbeaeefe47bfd3fd27f8347c37598f8edaae75b91602
e2eb4b1c27739cff00a2e2ff00a3bb67d252b6cb2f61a6badedde21d6386d0d074746ef73acdbfcdfb
125359bd3baab5807ed22d25ce73dcda59a83e986318db0d8daf6b6bb3faefbbd44cfe9dd5a0edea
6592e05ee345725ade5b20b76eefde572daaac963b1b2d81ec76b1f9ae00ee1fda6acac8e86c6bd
94e36050fc6c769f437d8f0439e47aa34ddec747e77fe8c494dfc4af22b7075f9832997381a406318
1bec797ec35ff39ea7d35777375d469cf92c7c4e960d9fae62554b9cc6871aacb1d24cb9f5ee76cf6
b7d3dcae53d23071bd576357e9d96b0b1ce2e73b480c1ed7b8fd1d8c49499993ea377d753dec3f4
5e3680e1fbcddef6bb6a8dbfa66edb31ac20190658083fbcc736ddcc77f5549b90f022da9ed78e768
dcd3e6c737f37fadb1eb3bf66e2b336fcd6d9975db96f6b9e1b21b2d6b6b6b58dd9ed66dafde92997
4e77d62ab33299d4995e461bddbb06ca486d8c6086fa196c79631d63bf9cf569f67a9eb7f375fa2b4

81

0640f5057631d5977d02e8871d4968731cff769f9ea8e1e0d389736e1665dee635cc68ba5cd0d79a
cc35a18ddbb7d16ab6f73f21cdadb5bdac6b98f758e1b47b5dea6d68fa6e76e67f512536546cfa07e
0a4a367d02929fffd3f53b2caea61b2c70631a25ce7180079b8aadfb5fa57fdcdc7ffb759ff92527ecfb
60176d82c0280efde977adb67f3b6fa4ab3f1fab0bec34df49a5ce61adb6364b0077e9abfd1866edd
5ff0036efa7ff009f12527fdafd2bfee6e3ff00dbacff00c92ad976f4ecdb29d9d4854e613b5b4dcc05c5
d0035dafb94463f5e6c019143c43f71b1bee93bfd2d9b18c6ec67e8bf37fd27f39ea7e8ac610ce6b6c
1d4bd121ad043eb10d3f48d921ff00476fb12531a7a49aad63dd95916866ef6d9617033f474fa3ec5
3bfaa61e1e5e2e0e65cdaf2739ce66234f369637d4b223e86c6feff00b3f9bfcfb3d354f77d61fb5d7fb
3ebc33d28d84b9d73ed17fa71f469ad957a2dfd3ff32ff52c67d9b67b117a863e465638666e3e3d94
b5ec7bcee739cc0d702eba9fd135ccbaa67bebb58e6595ff0083494cfa865e7d3d43a6d38d8cdbf1b
26db19957971069db5beeadfb1ad76ef53d3b2bf7ff0084f4bfd22d091e2a966d171aab774fae92e2f
05c1e006b9904c6edaefa4ed9ee4235f516bf4c2c67320990e833f9adfa07fce494dec9caa3171adc
abddb69a18eb6c7730d60def740fe4854f109eb1d3197e5e3df8472ab1bb16d3b2dac4eedaff0049c
edbea6dfa3fe8ff00477555fe92b52c5a729d73fed78d8f5d4d1fa335fb8b8e9f4c398df4f6ff00d714b2
bd4a5fbb02a6d997b5c7d12ff498e1d8dd636bbb67e93f9b7fa7fe93fe112521ff009bdd3803b4dc09
6064fad61d071cbffb5fcb5a404081c0557a6ddd46ec2aedea18ccc4cb76ef5686d9ea06c39c1916b
5a37eeaf63d5997f80fbffd8929928bc12d207294bfc07dff00ec547ad748a3adf4db7a665e945e585f
b4ebfa37b2f68d47e73aa494ff00ffd4f54735ae1b5c038781d4287a14ff00a36fdc1112494c3d0a7fd
1b7ee0ab67d57b690709948b37b77bad6fb4306b63b42d57153eb1ff24677fe17b7fea1c929cd6e6
759adee0fccc2b45841040701592c73b6ef076be9df8f77d3fd3236564f52f5c9ab3312a655611b2c9
120fe65ae77d2db5bb7fe87d3fd2ac2a7f98ccff8ea7ff3c58a9667f476ff00c7b7ff006ea8494f518ecc
cbacafd2b302dac39afc86b585ce0c76b15ed2dd9bbf31f6b56b7d9f1ffd133fcd0b98fa8ffe1ffe268fc
962ead2523fb363ff00a267f9a14995d75cec6864ea768024fc9492494a4924925292492494ff00ffd
93842494d04060000000000070005000000010100ffee000e41646f626500644000000001ffdb008
400040303030303040303040604030406070504040507080606070606080a0809090909080a0a
0c0c0c0c0c0a0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c010405050807080f0a0a0f140e0
e0e14140e0e0e0e14110c0c0c0c0c11110c0c0c0c0c0c110c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0
c0c0c0c0c0c0c0c0c0c0c0cffc00011080116015e03011100021101031101ffdd0004002cffc401a20
000000701010101010000000000000000040503020601000708090a0b01000202030101010101
00000000000000010002030405060708090a0b100002010303020402060703040206027301020
3110400052112314151061361227181143291a10715b14223c152d1e1331662f0247282f1254334
5392a2b26373c235442793a3b33617546474c3d2e2082683090a181984944546a4b456d355281a
f2e3f3c4d4e4f465758595a5b5c5d5e5f566768696a6b6c6d6e6f637475767778797a7b7c7d7e7f73
8485868788898a8b8c8d8e8f82939495969798999a9b9c9d9e9f92a3a4a5a6a7a8a9aaabacadaea
fa110002020102030505040506040803036d0100021103042112314105511361220671819132a1
b1f014c1d1e1234215526272f1332434438216925325a263b2c20773d235e2448317549308090a1
8192636451a2764745537f2a3b3c32829d3e3f38494a4b4c4d4e4f465758595a5b5c5d5e5f546566
6768696a6b6c6d6e6f6475767778797a7b7c7d7e7f738485868788898a8b8c8d8e8f83949596979
8999a9b9c9d9e9f92a3a4a5a6a7a8a9aaabacadaeafaffda000c03010002110311003f00f7f62aec5
5d8abb15762aec55d8abb15762aec55d8abb15762ac35af754f39dddc5ae877ada6f95eca692d2f3
54b7a1babc9e1ac72c56ccc088a38dfe079a85da45648f871f53155593f2cbc8d7255f50d253529d5
427d6751926bd9c81e325c3bb1fbf154337e5bfe56c7099df41d31605254ca5102023620b134ae2a
ac3f2aff002e08a8f2d581077044431568fe567e5bc6a58f96b4f5451524c4a0003c7155087f2dbf2b
2e1de1b7d0b4c9655ddd2355661f30092315563f95ff00968b22c27cb9a789581658cc6bc8aad2a4
0ea40a8ae2ad49f95df9690a1797cb9a7a47b29678c01563402a4f72698aaeff009551f96fb7fceb36
3b0a7f75dbefc55dff002aa7f2e77ff9d6ac77ebfbbfedc55562fcb4f255a2c9fa3b4cfd1b2c80833e9f3
cf6728a8a543c3221a8ec715538eef56f27ddc16bad5dbeabe5abc992dad7569828bab39a52238a
2b9280092376f8527a2babb2a4bcb97a98ab30c55d8abb15762aec55d8abb15762aec55d8abb15
762aec55d8abb15762aec55d8abb157fffd0f7f62aec55d8abb15762aec55d8abb15762aec55d8ab
b154a7cd37f2e97e59d675280959ececae67898750f1c4cc0efe0462aafa269d0693a3d86996d530
da5bc50a31dd982281c98f72dd49ee71547e2af9a3cc966be5ed5bcc7e61b189f58f2379c35f1a1f9
b74a4e3710e9fab473c16f67a8c711aaa296021bc1fcde8cdfb0f8aa6de61fcd8f38da68d77a869777
6915d94d6d2ead2686365d1e6d235286d60f587a88ccb223956e5f6dde3923e29b62acbbcb5e77f
305fb6ada2eada63eb9a758eadaa6937fe6485acaded2d6dad115d4ddc524eae4f19381f4637145e
4fc77c55e6ff00971a9c3a5fe537966f748d5fcb967e665f28dbfe819ade0f5b51372441ca29e30e7d
449584511fb2deb3fc2397118ab23ff958daf5fa796f53d3aeb4b975bd4bcb5ae5e3c57b1c504969a
b5ade69f09b23704feed639266b69392f169624924e98aa4d7bf995aade41aaeab26ac800d2bcbf3
c1a16b96902049e4f305dd9dd97b7e5432c5e9c71b4b1bb45ea2a4a95531e2a8ebcfcd4f3a697fe2
0b96d52c6fd6d62f333da599822b730ae81acdad8c6c1ccbf1b34370f50fc55a544fb356c55eb1f979
aaeabadf979f53d56f6df50f5ef6f7ea1736a23e26c12e5d2d79fa4eebea18954c94e34725782d38e2
acaf154bb5fd363d6343d474b91bd35bcb6960f547542e84071eea7e21ef8aa1fca37d73a9f95343d
46f5fd4bcbbb0b59ee24a5394b242aced4f7249c5539c55d8abb15762aec55d8abb15762aec55d8a
bb15762aec55d8abb15762aec55d8abfffd1f7f62aec55d8abb15762aec55d8abb15762aec55d8ab
b1543dfd941a958dce9d7409b6bb8a4b7980342525528d43f238aa43e4ed5e69ecce81ac7eebccb
a328b7be85d8169a243c22bb4a539473a80f503e17e7137c68d8ab26c55422b3b48048b05bc71a

ccc6494222a8776eacd41b93e27155b269da7cc6632da4321b90a2e0b46adea04fb3cea3e2a76ae
2ab92cace38e5863b789219cb34d1aa28572e28c58014351d6b8aa1e1d0f44b762f6fa6dac4c6956
8e08d4fc2c18745ec4023df155ff00a274aab37d46df93870e7d24a9121abd76df91fb5e38aae974c
d3a70ab359c122a288d43c48c02290428a8e808a818aa53e61f27e95e60d2e6d377d39e574905e
d8a4293ab4732cffeec8e44656641ea23a3248b557535c5513e5cf2f59796ac1ac2c896124ad713c
a52188bcb25016e102451aec00a2a2fdfbe2a9be2ac63ce7a817b23e57d39f96bfaec6d6d6f1a351
e1b793e09ee9a952a90a31218fda93847f69f154f74dd3edb49d3ad34bb252967630c76d6e84d488
a1408a2bde8062a8ac55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb15762aec
55d8abfffd2f7f62aec55d8abb15762aec55d8abb15762aec55d8abb15762a946b7e5bd375df466b8
f52db51b5e5f53d4ed1cc177072ebc245eaa7f6918346ffb68d8aa4d71a07e602494d33ce308b700
00350d263ba9b61b92f04f6aa7fe031558ba27e668fb7e70d348ed4d0d81ebdffdc81c5579d17f31e
9b79b74f076ff00a52b53fea3b1558343fccb0c3fe770d3ca56a41d10d7e408be1fab154a6487f3462
f325a6827cdba63477365737c66fd08c187d5a68220b4fafd3713d49ff27154e5745fcc70057cdba79
35dff00dc2b74f0ff007bb155ff00a1ff00308d6be6ab106bb05d1c814f7ade9c5569d13f30b8711e6e
b30f5af23a383b53a53eb78aa97e83fcc91c8ff8cac29b915d13603dff00d3462aa91797bcf928f4f50f
392089aa1db4fd2e1b69a847ecb4f2dca8a7ba362aafa4af953cbdafaf9762bb69bcddaada3ea1249
76ef3df5d5ad8bc70bc8d2b0a718da541e9a95442ff00020a9c5594e2aec552fd275cd2b5c5bb7d2a
e56e56c2ea6d3ef38861e9dd5b1e32467901ba93f2c55d3eb9a55b6b369e5f9ee55359bf866bab3b
421b9490da9459581a53e1322577fdac5552cf54b1bfb9beb3b497d4b8d3655b7bd4e2cbc257892
602ac006aa48a6ab51bd3ad715461200a9d80ef8abb15762aec55d8abb15762aec55d8abb15762
aec55d8abb157ffd3f7f62aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb157
62aec558d5caffc840d31bb8d1b5014f9dd597f4c5592e2af37fcc89aedb5dd0f4bba6d6edfcbd7d6d
7a05ff9763b879a1d5e37b7369eb35babf152866e1ea8fabb3ff7dfb38abcdf51b1f35cb05f0b9d6bcd
56963ac79835bb49f52b64bfbc9ec12d6499b4a7b7b7878b2446bf0b2a3412b88566e698aa55e71
3e72d6af75fb0922f31be9971131bb8cc57f1ca64d3358d3191e336aa90a2b5a9b878e3b7f8e48f9f
aaf2bfc2aabd43f2f24d5eebce3ae5d6a579aca5c4535fd9dce8f7b6d3a69ab6f1de13a7dc4134c4c6
dcade817d0a17e4ff581ea4750abc86e7cbfe61b0b95bcb25f315b6afa2e9be7bb886e223a83c875
16d76d6e34f83990fea473448ac90a9314c80ecdf162ac9f56b5f354f73aa5cdceafe648340d57cc3a
958dcde42ba8dc358dac509974f7b6b7b6f4e4488cce47aa8190958a3979478aa86a1aefe625a79
9f547b11e63b8b67b2bbb6bff005ad27f54b5b2694525b48e38c5b465a27bb92158b9cad37adc9d9
847122ac9b4c8fcc5a4fe5bfe611f2641a9b6aa357bd9f463791dcb5ecd6f20809781aec7a929f4f98
858f2f89557a8c558c799f41f315e6b05adaffcc507962c46b83cafab581bb9353569b4fd3e58e1f55c
34cca6ed27f4966f864e1e912d1d01554a5d53cfd7babeb3a0ebbaaeb56b6df5eb68af351d221b9b
d934ed51bcbda7dd46891d9b06580dc3cec01e7034dc1250c8f8aa33ccb0f99bccbe5cf37dbea47c
ce9e65b6bbfab4f690c5776d652e931ea9672dbcf6df57f80c82d9189fab3fa84b5c2ca1b8a7155f45
4215618d50b140a02972c588036a96dc9f1aef8aafc55d8abb15762aec55d8abb15762aec55d8ab
b15762aff00ffd4f7f62aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb15762a
ec55f9bfe72fcf9ff9c97b0ff9c92b9fcadd2f5ab63a926b0fa1e90c34eb46234ed4a78a6899b947bd22
11bb31e946c55fa3ea085009e440dcf8e2ade2aec55d8abb15762aec55d8abb15762a96687e5fd2
bcbb6f35be9713a2dcccd737124d2c9713492b00bc9e5999dda8aaa8b56f8515517e1518aa678ab
b15762aec55d8abb15762aec55d8abb15762aec55d8abb157fffd5f7f62aec55d8abb15762aec55d
8abb15762aec55d8abb15762aec550a752d3c370377086e9c4c895a8fa7156bf4a6994afd760a78f
aa9fd71577e95d2ffe5b6dff00e46a7f5c55dfa574bff96db7ff0091a9fd7157cf5acfe5169b7dff00396d
a0fe70fab6cfa35be8170d7127aa802eaf6c45a425a8772d05c557fe30e2afa13f4ae97ff2dd6fff0023
53fae2aefd2da5ff00cb75bffc8d4feb8abbf4ae97ff002dd6ff00f2353fae2ad8d574c3d2f603dbfbd4fe
b8aabc3716f70098254940ea518353eec555315762aec55d8abb15762aec55d8abb15762aec55a
a8ad2bb8ea3156f15762aec55d8abb15762aec55d8abffd6f7f62aec55d8abb15762aec55d8abb15
762aec55d8abb15426a9a9d9e8da75d6ab7efe9d9da46d34cc054f1515a003724f4503a9db1562f6
be59bdf3420d4bcf259e19d4983cb09230b1b7898ab2adc8523eb330a7c65eb0a9aac69feec7553c
4f2af9623144d16c14782dac23fe34c5577f863cb5403f4358d074ff004587fe69c55dfe18f2dffd59ec
77ebfe8d0ffcd38abbfc31e5a1b0d1ec7dbfd161ff009a71577f867cb7ff00567b1aff00cc343ff34e2aef
f0cf96ff00eacf63ff0048d0ff00cd38abbfc31e5bff00ab358ffd2343ff0034e2aeff000c796a94fd0d634
edfe8d0ff00cd38ab87963cb4371a35883ed6b0ff00cd38aa0aff00c8be54bfe0ff00a321b4bc8797d5
afac07d4eee1671c4b47341c1d4fd38aa8e937fa968daac5e57d7ae1af85c46d268dac3a057b8584
56482e382aa09d07c60a8513272608a637c559462aec55d8abb15762aec55d8abb15762a86d46e
8d869f777cb134ed6d0c930853ed398d4b711ee69418abe6bd23f342e67f325bf98e0d674b5d4bce
da0795c8b82d1456da69bd3ac5cfa72b177e443a2c119938b33baa1f88a8c553bf30fe67f9f2d74bd
621bbbbb2d3ee174cb6bad375dd2912f74a9654366b7a12591c3a491999d95658d51ade48a58d9
8a3e2a88d37f34bceba87999f4b92ff004f8b46bff36dff00946c2fa1b46616c9a7e9ef7f1cd248d3949
249ca889538a27ed2d5a8b8aa61e48fcd0f38799353f2ed8ead6b0584fe69b0b5d5f4eb7585c04b7
b27962d53e3763c949faabc1fb412e97edf027157b562aec55d8abb15762aff00ffd7f7f62aec55d8a
bb15762aec55d8abb15762aec55d8abb15621e7a53713f9534e79bd2b4bdd76dfeb42b4122da413
de4719f669608f6f6c5597e2aec55d8abb1578ff00e66db798f4df37da79efcaaf3dcde796b4d33ead

83

e5f864aa6ada4cb391750fa44d0cf1a2fab6add7d44f47ecca71563be4cfcc2d72f5744d13c8dfa3d3
4316361a94f2eaaed1cd2dbf98a4bb36f2a0921610000026060f002220574d464301000000000001
000000000000001000000000200000a8ae0100a8ee0100559014748c7a7c1fd463245ca22ab8aa
3ff2eff36bcd7e73f3345e5eb87b486731da5e494b29a343159c725b6b50c6ed31e4f6fa82a401c80
aaafd24219b157b9e2aec55d8abb15631e7811c7a7e9da8344d2dc586ada74b6de982ce1a5b94b
672a06e498e69169e0d8aa6ff00a5e2ad3ead75bf4ff4697fe69c55dfa5e2e9f55bbf7ff4797fa62adfe
968b6ff0047badfa7fa3cbff34e2ab7f4bc55a7d56efa54ff00a34bb7e18ab6757887fc7b5d9daa296f2
ff4c55c3568cb05faaddefd4fd5e4a0dabd698ab475888233fd56ecd05428b69791a760298aad1ad4
65037d4ef0122a53ead2547e14c55b5d662662bf54bc001a54db4943f862adfe988aa07d56ef7343f
e8d26defd31548cf97fc8ed0dddab794ed8dadf90d7d11d250c73b73f56b2afa5f19e7f1fc43ed7c5d
7155792dfcb937d68cbe5d2e6f22367781f4f0deb5b8023e125568d195551c4fec8514db156974df2
98b5b8b05f2e46b6179209eeadc69a0432ccb401dd047466141f1115db15596b61671f9864f304cb
7b34b1dbfd4f4bb47b4090d85bb70f596131c6ac7d668a367e6cff00655538aed8aa79fa522e1cfd0
b9a787d5e5afddc6b8ab67538c1a7d5ee6b4aff007127f4c55afd291501fabdcd0ffcbbc95fbb8e2adf
e928f971f42e2b4ad7d0929f7d31553b7d6acae9aee3844a66b1644b984c320914caa1968a56a41
06bb62aff00ffd0f7f62aec55d8abb15762aec55d8abb15762aec55d8abb15487cdfa149afe8fe8da1
45d5ac678751d26596bc12f6cdc4b172e343c588f4dff00c876c5511e5ff30d9798ac8dc5b8682ee1
222d434f9870b9b5b8a55a2950d0823b1fb2ebf1a16460d8aa6d8abb15762a84fd17a6fe92fd31f54
87f4b7a5f56faf705f5fd0e5cbd3e74e5c6bbf1ad2b8aa0dbcabe586d46cb576d16c4eaba6a345a75f
1b68beb16f1c849658a4e3c90124d4291d71547c361636cc1eded6285c7a9468e3543fbf7f564dc0
1f6dfe36fe66f88ef8aa2315762aec55d8ab0b9ef079c7cc76965a637a9e5df2fdc2de6a57f1b1f4e7b
f8c3086d6323e171113eace6bf03ac29bb7a9c156698abb15762aec55d8abb15762aec55d8abb15
762aec55d8abb15762aec55d8abb1563fa372ff0011f992b4e3ea5a713b57fde65ae2afffd1f7f62aec
55d8abb15762aec55d8abb15762aec55d8abb15762a916b5e52d275bbb835297d7b3d5eda820d4
ac267b5b9082bf03b4640923dcfeee50f1ff00938aa11bcafaff0023e9f9cf5544afc29e8696d41e156
b224fd38ab5fe17f30ffd4e9aa7fd23e95ff6458abbfc2fe61ffa9d754ffa47d2bfec8b1577f85fcc3ff53a
6a9ff48fa57fd9162a904567e6a6f3a5ff0097a4f39ea0ba7da69567a8a49f56d2c49eadcdc5d44fc9b
ea74e21605a6dfcd8aa3d6da66bb6b05fcc5bb6bc5b7faf34013482e2d4b141311f53fb1c95872e95
18ab5a95bcba359c9a86adf98b7767631c7eb3dc4eba446823a57954d98da98aaebcd3f52b37b18
9fcf3aabcda9ca22b248a0d258c878191987fa1d38aa29766fe5fa315551a55f107fe4205e9e24027
8691b16200affa1f7268315543e55b4d58ad9eafe64d4758101124d67f598ad51c5480264b08e02c
84820a3fc0dd181c553fb7b8d134e812c2d25b4b4b7b65544b689a389225e5e9aa845a051c8f102
9d76c556ea9e60d0b44b5babdd6352b6b1b5b14592f25b89523585246e28cfc88e2198d16bd4e2a
85f2ff009b349f31c9a94560ccb2e97793d84f1cbc1599ad8a86910066ac6790e2f8aaaeb3e64d274
3d02f7cc97332cda658c135cbb40c8e5d60467658eacaacdf09017975c551b16a368f6505fc922c16
f70b1bc6d332a7f7a01506a69535e98aa5be65f35697e57d26f758bd2f3c1a798beb705af0927413c
8b1a92859682ad5dcfd9c554bcbde74d1bcc7fa53eaa5edbf44ead71a0cc2ef84464bcb5e3c845f11
e4adcbe0fda3fcb8aa1f5bfcc0d0340d7a2f2f5f195af5f4fbcd62578823c70da69cd6eb3b4bf1865205
ca381c7e240e47d9c5592c13c3730c7736f22cd6f32ac914b190c8e8e2aacac3620835071554c55d
8abb15762aec55d8abb15762aec55d8ab1fd1827f88fcc940797a969cabf64ff00a32d298abfffd2f7f
62aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55e55e72d36e3
5af3379c347b4b496fe7bdf2be976e6d2dee458ccc92dfdfab98e73b23aad59797c3c851be138ab17
8bc8bf983a7dc4fa83e8567abdf4da6595935d21b4b377fa96bf7178eed0d7d25b996de64b8e23fd1
3eb2ae8e3d3e2a556351fe4af9a752f2e6b716b7e56b49bcd0be5d874bd22faea6b3b991ee6d753b
f9f824dd539dbcd12062a8b4fdd9e2ab4c55ed1af595c3f983c9fabcd63e9e990c17fa7df58931b2c2f
a84117a48c01e047284c35078564f038abc5c7e4b79b34df28f97f4bd0fcb16905e3797a2d3757b7
8a7b5b7f4752b6d4acaf7d591d6a25e696ecaae9c9b971e5c46eaab3cfcbbfcbcd4fcafe787d73f40c
3a65a5d3f9a9af6ea16b7e728d535982f2c398898b11e8a3d011fba3f0edcb15611e65fc92d5f51d4
b5abdb3f285a34b7c7ce4f15c16b34779356b7b71a6b1abd779919c13bc0ff1fc25b1557f307e52f9d
7cc1a279a2daf341facf98ee2377b0d527d4a1f42ee0b8b8b2bb36ad0804faa9f5658b94c4c4be92b
c4ff00bc3c5555d4ff0029fce37da86b57fa4e870e93aa6af73e6367d49a780335b6a16968969148d
0bb3fa6ed0b46547f774e7c77ae2a88f33fe5a79caf752d7f52b0f2cdbdee81e61b4d5ed2dbcb13dc
5ac234ebcd434db3b54bca55a13ea3c132c9e9b175597980ccf22e2acdfcdfe57d7355b1f29da4fe5
cb6f3268d1d95c697e63d0aeae638827d76da2885c0771c1fd2e1246dc7e3e13334553b62af3ed7
7f2eff00322ef52f30c96be5b8d20bfb7bcb2885b5f5b0825126b1697514c04ac25abc11b9732b552
4e491a247c792aad27e5779c6e756d51b55d05f50f2feafaf6bd72d631ea305a3c51ea32d949677c
5d4b300a2de4561111731555a3ad5b1544691e4ff003be81e64b7f30799b4386fbf44695e69b1bfd
6e29e0925d5a4d62fadaeec5523fef4d5223015969c1b65e49be2af64f2168f7be5ef23796741d482
8d434bd2ac6caec21e4a26b7b748dc023a80ca687156438abb15762aec55d8abb15762aec55d8a
bb15487464235ff31b547169ed761d790b48eb5fa298abffd3f7f62aec55d8abb15762aec55d8abb1
5762aec55d8abb15762aec55d8abb15762ab268ccb0c912c8d133ab289529cd4b0a725a822a3b5
462afcd4fcbdfccdff9c89d6bfe72861fcb1d57ce577f588f546d175bba4b2b24924d2b449ae2e1b610
5179a190871fefcff57157e9762aec55dd715762aec55d8abb15762aec55d8abb15762aec55d8abb
15762aec55d8abb15762aec55d8abb15762a9068b4ff00107994fa651beb16a3d43f65c7d522229f
2248c55fffd4f7f62aec55d8abb15762aec55d8abb15762aec55d8abb15762aec5525b8f387956d6e

25b39f5ab24bbb76e13dbfaf1992371fb2ea092a7d8e2ab3fc67e54dffdcc5a9e23935241b0c55b1e
72f2a9151abdb11ff19062ab4f9dbca40d0eb16a0ffc6418abe7df2bf93bca3a3ffce56f9c7f360ea102
699a968567f5298c83d26d42ed8c37214ff3225a2161ff0017fbe2afa0479dfca24d06b36b5ff8c8315
6c79d7ca6771ac5affc8c18ab8f9dbca63aeb16dff23062ad7f8dfca5d3f4c5affc8c18ab47cf3e4e5a9
935cb38d46ecf24ca8a00ee598803e9c553ab5bbb5beb78ef2ca78ee6d2650f0cf0bac91ba9e8559
49047cb1556c55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8aa
4ba40a6b1e60208a1b982a29bd45a43bfdd8abfffd5f7f62aec55d8abb15762aec55d8abb15762aec
55d8abb15762ac3ee63b9f396ab77a78ba96dbca7a639b5bd5b67f4a5bfbb001922f550f34862078
3842ad24bc90b048d964559269ba5697a3dbfd5349b282c6d791730db4690a166dcb1080024f738
aafd42fed74bb0bad4efa4f4acace27b8b9978b3f18a252eedc541268057618aa4be58f3df953ce5e
a0f2e6a22ee48a182eda278a6b797ead76a5a09824e91b3472007848a38350fc5b62ac8f15762a8
0fd33a67e9aff000f7d607e99faafd7feabc5abf56f53d2e7ca9c69cf6a56b8aadd1f5ed275f8aea6d22
e05c4765753d85d1e2e863bab56e12c643aa9aa9fa3c3154c715762ad32aba947019585194ee08
3d8e2ac3f50f2c1f2e21d6bc8d6c2d2e2dff7975a05b522b2be886ee8b10a247391531ca816b27c32
f243b2ac9f4dd42db56d3ed753b325ad6f2249e12c38b7091430a83d0efb8c55158abb15762aec55
d8abb15762aec55d8abb15762aec55d8abb15762aec55d8aa51a572fd2baed4823eb30f1a7503ea
90ec7f5e2afffd6f7f62aec55d8abb15762aec55d8abb15762aec55d8abb1561de66fcd6fcbcf28df5b
693ae7986d22d72fa55b7b1d1a17facea3713bb0458e3b5839cac4b10bf671545fe5ec76d1f93749
36aa144b134f3804126e6791a49cb104fc665672fbfdbae2ac9b15493ce29249e51d7a38a379a57d
3aed238625692477681c05555049249a003157ce3e5af2f79dfcbde58bc7bfb4d62f3cd927963cbffe
1cd6adedde09adb4dd3e4864bbd21a2811385c412091cf21ea5dc4e14063132e2a9a6aebe78bbb
9b9b8d3d7ccf6fa6db5b79bee6c231fa46126e96f34f9749f83ed3d419cc11b6c539a71e1f062abf5d
7f3c69fa8ebbac69f0f9a6f12ee7f3140b6f6725df3fa98fa93599b659d248e2a334cd0b247cca7aab1
f23450aa127d17ce1aad84932c7af5b798ecb4bd76cfcbb77126a1667f4847acb4da62b9918b343e
87a4505cbbc661e424e4cadc554cee2dbcce75abdb109aee97a35febbacdcda5fe9363732ca2fd6e
6d9adddc294558a48c3fa72ceaf6ac3d4e74f87157d122a402450f862ade2aec55d8abe6cf3dfe776
b3f909a745ae5df958f983f296e752d42d4ea9a54a52f74db9fd2138292c52831c9139a889c3c7461
e9b7ec725598fe5e7fce52fe47fe664d058f97fcd305b6b372e90c1a46a80d85dbcb2502a46b35164
624d00899f7c55ec58abb15762aec55d8abb155914d0ce9ea4122cb19247342196aa6845478114c
55d24b142034aeb1ab30452c4282cc6800af727a62abf1558b342d23c2b2299a300bc6082ca1ba1
23a8ad3155f8abb1558658848212ebeb329711d4722a0804d3ad0123155f8abb15762a94e9408d
535d25388375151bf9bfd120dff862afffd7f7f62aec55d8abb15762aec55d8abb15762aec55d8abe3
bff9ccfd4bf32752f2cc9ae7e50f993584d23cb62483ce96da3bfa166b1b305e42e23e0f24b131e33c
51bc9e9a7c522c7c5b92aa9ff386bff38beff979631fe69fe60dbf3fcc0d5a2e7a659cff001be9b6b3ad
4b3d7fe3e6507e3ef1a7c1f69a4c55f45dbdd5b791354b8d3ef93eade55d5ae8dce9b7c01fabdb5ed
e485a7b799b711896663244e688cf2b45f09e1cd566bd7718abb15762aec55d8abb15762aec55d8
abb15639e62f31b5aca3cbfa114b9f375e475b5b6a735b68d8f1fad5cd3ec44877de86561e9c7f11c
55a93c8fe5dbcf263f91357b38f53f2fdc5b1b4beb7b95056e049f148ee0500677264a8e8ff0012e2af
94bf297fe70a2fff002c7f33b5cf3bc37765a8db68d70b27902db515334722480b3b5df001a3962044
714a9ca8e3d6f4dbe14c55f59689e6bb3d5aee4d22ee0934af31dbc625b8d22ef889bd3af1f561652
5268abb7a919201f85f83fc38aa7f8abe78b4fccef3ceb767a75f58ebda6daa6b5abe9ba7bd946b1d
ddee9ad3decf6b750c91948c2502a841317984d1cbf69365550ba4fe6c799a481b57d575f8a18ee3
46f2ec41dc5bdb59453ea5aadfd8cfa802e92703482207972851e45e6bc78e2ace7f2ebcc7e76f307
9924d3f5cd7f4cbbb7d1f4ad3ee6f174684496d7b717936a10348b3c843051f5689be050bea7a807
c14c557f91bf30ef7cc3f989ac7978ea96da8e9496b77736ab12c713c4f65a9cd62c8a809978a84e2
ed37db9559e2e31320c5585e9fe71d6fcbda46aba6797e7834e8f4d4f367982ccc91c6d6f7d7569e6
1bb8cd96e3e1500a73f4cacbfbe8f891fb4ab5ad79f750f35794f52d65af2d351bed3b59b68cf91a24
896fecefb49f32dbdbdbafa8ec191e6441cbd51f148ead0b2c7b62a9a69df9a5ac6a57da0da695e65
d3aee592d2c756b886f447653ea315eddcf6f736b05b18cc825b768bd1440c92473f15baaf2c5530f
ca8d717cc7e72bff30bead6ba85eeb9e56d0b519a2b748637b6696e3502606119e4cb116e0beafef
1770cc7b2ac574ffcd3fcc06b0d3f56b9d6ece749ac347d5a5b35b38a3e6b79ad1d2e68437324232
3070ff69651b7c154c55aff0095c5f981369da7dfc13db44daedbcb71711cb6a1868b736bafd9e946d
5c7242dea477120fde9e7ebc2cc9f07c0aaa13cfbe7ef37d8796aeaea3d5ed22d7ed6c3cc1687cc10
5ac31df22693e67b1d37d557ab88d1e090b4a8178fa8a1ff0064055591f983f34bcd9a6586b9abe97
a8da5c9b13e63b23a74f02936726816b24f6d74e51d19d67091bc9b84e3750fa417f6d57b46870ea
76fa5c11eaf7eba9ea1f134b7b1c22d95c3b965023567038a90bf6be2a72c5531c5529d2a9fa535df
8f97fa54555fe5ff0044836fe38abfffd0f7f62aec55d8abb15762aec55d8abb15762a95ebde61d23cb
3a7bea7acdc082dc1e31a2ab4934d291f0c50c4819e491a9f0c68accdd862ac01f5fb6f3aeab268faf
ebb6be5fd322498dcf94e2bd857579d214495febf2452136eab1b077b789b918deb2cbc79478ab21
83ce7f97da6dbe91a16977d62b6ba83cfa7e976b6c505b06b5b6375223701c6351151fe2eaaea77
e58aa53ff2b5ac975cd3f49966d2a3b61a4da6b7aeea4da87fa2436fa833c509b497d2e3383227da
6310647465ebc71567c25d3f538eead7945770c6cd6d7909e32287e20b47229a8af161553e38abc
fa1b1fcadbf8e65d07ccad656b631ab4d6da26bb716d6f0c6f2b44a7d1b7b811a8320318a28f8c70f

85

b5b62a956a1fe06b676b3b2f37ea735fc962752b7371e65beb6b36805c8b525ae7d47553ea9294a
13c871a62aa5a59f2d6a7e68d4f441e60d56decb4ebf3a1acd3f996fe3bab8d5d208ee8c115bb3fc6
0c4ec432c9cab149fbbe3f162abfcc5fe10d00796e55d7f5fbfb3f31ea1169f05d5b6bf7ad1451ce7d3
172cc2620c42668612dfcf3478aa1afd6c2c3ccf7fe5cfac7986416377a25a35c9f31dfaf34d79e58c3
84e44d6268becf2f8c1fb4b4c559cffcab8d3a941ae7987ad7fe3b77ff00f55715406abe40b3b4b549
62d7fcc4acd3db444fe9abe3f0cb3a237590f5071547b7e5d59b3337f883cc20b37234d62ec01bd68
073a018ab43f2e6d074f30f98bfee31747f5b62abe2fcbbb08e40f2eb9afceb5a98e4d62f421f984917
6c553fd2341d1f418a48748b38ed167732dc320ac92c8c6a5e4735676dfed3127154c715762a956b
be5dd2bcc56e906a51132c0dea59de42cd0dd5b4bda4826421d1bfd53bfd96aaed8ab1f5d735cf27
1583ce0dfa4740e5c22f34c28a8d1063f08bf82300460743731fee7f6a448062ac8e2d2740b943750
58d9cd15dc897c6648a26596602a93f200f26a1f85fafbe2ad9d0342309b73a5da1b7689ad8c46de
2e06076e6d1f1e34e05be22bd396f8aa22df4ed3ed6533dada4304c63480c914688c628bec25540
3c57f657a0c556c3a5e996f72f796f6504577217325c47122c8c6420b92c00279711cbc698aac1a2
e8c0201a75b011ca6e630218e8b3b1a9907c3b393d5bae2ae7d17469649e5934eb6796e9e392e9
da18cb4af0ff0076ce4afc4529f093f67b62ad2687a2c73c3729a6daadcdbbc92c132c11878e49cd6
46560b505c9f888fb5df1554b4d2b4bb07924b1b2b7b6798932b4312465cb12c791502b524935ef8
aa97e81d0f884fd1969c022c617d08e8111fd455a71e81be203f9b7c557b68fa43fafcec2d9beb4e9
2dcd618cfab2466a8cfb7c4ca7704f4c554ce81a113213a5da1332491ca7eaf17c693373915be1dc
3b6ec0fda3d715547d1b4893d51269f6cc2e2310cfca18cfa91000046a8dd400050edb62a8b4448d
1638d4246802a228a0006c0003a018aaec552bd37fe3a3ac9e1c3fd262f8eb5e7fe8b0efd3b74c55f
fd1f7f62ac72ffcf9e54d2f559344bfbff47548a6b1b5780c331fdf6acd22da2860854faad13aa9078f25
2ac41c550179f99be4f48a48adb58816fded65b9b5170932c44c76f35c80c4256a638249780fde345
1b3aa918aa2bcb1e77d33ccba85ee8d6a5a5d434bb5b0b9bdb98e2916ca4fd2507ae86091c0e43
8d0ff0036ff003c5565f79db4cd2bccb7fa3ea57f6b1c3696367742d11679350f52f6e25b74f8150ab2
c8c8a912a7290bf3aad298aa02e3f34bca7692cba85c6b5669e5d874efafcd270b83751d2f0d9333a
08c854594189d4fef125043aae2ac97cbde64d17cd5a71d5741bafad592cd35abb14921749eda46
8a58de39551d595d48219462a9ae2ac4f52f374f737d2e85e4db64d5f5b85fd3be9e4668f4eb03bd4
dc4ca1b93edb4117296bf6fd24fde62aafa1793e1d3af5b5cd66edf5cf33c9c87e93b950ab023800c5
6908aac116df654b3bffbb6490e2af3ff0035fe51f983ccf27986d0ddd9da586bdaa5fdf7d711e56b98
60bcf2e8d15289e98567120f519798531fc3cab8aaa2fe5779adfcd561e7b9ee74e1af2cd1aea7a74
6d30b17b78f4a9ac0bc4de9f212b3c81a8cbc7d2554e5f07c4aa5f63f97d3f94fcb93279e1ada5f2e4
5e49d33c9d7cba68b9bb9de7b379e3324512c1cb8bfd607a74f89587c5b7c58ab36fcbad2fccfe5fd
3b4dd175902ed1b4c8afb56d5e663f5c9b5cba95dee83a8aa70dfe00a7e0a70fb3c71579edbfe487
9ad356d335a6bcd3a29f498bd582de2798c72dd2798df5a58dc988111346de996a16497e308c062
a8ed4bf287cd8c9acc9a65c69af2f986cb5586f60ba92748edee754d48dfafa4c91372440cc18b2ab
338e74f8fe15553cd9e55d52cf47f33d84f73f56f3179a7ccb0eafe4bbbd3619af66b5bd860b548da5
e51aa47c45ab99199c47e8bb272fd965535f39fe52cde6fd375ed2a578ed615d1e0d27ca135bdd5c
c0f6f3420cc26b95882a9e3709048aa3d41fb95a8ed8aa1a3f2079faeb596d775697497bfbb97caf3
ea1e84b7010c9a0bcd25db460c1b7a8d28f454fbf323157a5f97ee35abad2a39bcc16d15a6a8649d
6486dd99a3f4d267589873dc728c2b107a134c55af302bb69f184a57eb764486eea2ea2247ce9d3
154d715762aec55d8abb15762aec55c4020822a0ec41c55874be55d47cbb7336a9e4695228a63c
eefcb572ecba74cd52ccd6e40636b2b723528ad139fb7172fde62a9a797fcd5a76bfced824b61addb
2ab5fe8b7aa22bcb7e5dd92a43a57659632f13fec3b62a9ee2aec55d8abb15762aec55d8abb1576
2aec55d8abb154ab4c0a2ff5a2b52e6ee3e60f41fe8d0529f462afffd2f7f62af39fcc6fca4b1fcc2bd8af
e5d4ae34db886ca4b6436f4ff7ae29e3bab0ba35eaf673234918fb2c5cf2c5521f34fe4debdad79b74
cd76c35bb3874ad1633169563756724b2c11cba55d699346b2473c6a15cdc2cc4f0e65d38f2e017
154d740f2379d3ca7a84779a5ea7a7cd05e47a1da6ab6d25aca58c3a5c06dae1e293d75e3cd02b4
60a3f17f85b90df154b35ff286b3e73fcccbed66c62974b8742b3d1ff466a77b030827d4f4fd42eee24
88216569216864e2d221dbd5aab7342b8aadd4bf26356bcb7d4a0b7d5ed623ab59de25d33c12b7
1bdd4b571aacce94976887f7689d7f6cb7518aa5de46fcd6fcb5f2af9c3cf1f9717be6782ebccf65a95
ef986f12189c201a9dc72fa9c34691a7b883922c891af23cd68bc848a8ab3f369e65f3b1ff0072626f2
ef94645a1d391fd2d5ef01a1fdfcb137fa34645418e26f5dbf6a58be28f15659a6e9ba7e8f630699a55
b4767a7db208ededa15091a28ec00c55158abc575cf3cf9ce5f30c11e9d0c2c34ef37de68d6f66b71
25b4577670796e7bf22e5c47274968c28a7e255f0c555ed3f3b755be6b69a1f2b85d3afd7498ec66f
ae996e24bcd6eca3be8e33025becb1c664f51f9fec0e2bf17c2aa3b51fce63a0a6932799342974d6b
c81a4d4ad3d659ee6ca58ed2f6ed84823529c78d9304e4e8f273e4a9f0494555340f33f989b54fcc5
bbd4382b69569a7dde9da79b86b8b585a4d39a7650dc1281987c7c6b5fb43ae2a97f973f37bcc5a
a68fa6c8be5c3a9df45a6d85c7982eade5fabdac1757fa58d454a9910feefe2891babafabf0a3f0355
50977f9e5e62d3f4cb0d4af7ca36e82f74dd335916e9aa1775b7d5efe1b1892a6d147a8a67577fd9f
8597974c5554fe6f5f0b9d42edb4267d4f47d335f927b54d4996ca59b40d521b299554c1d5f9078a6
64e4a39c653f6b1545ea1f9cf77a4734d434487d7b5d527d26f6382f7d46fdd5cd940b24286157652
b7aaeecea91c663f4d9f94b172552abafce4b8d16cad7ccbe68b0678a2ff0015fa7fa3ee5e387d2d17
544b0892581d68eeff0007ef0b7eebe334f8a98aa69ab7e71eb1a66afa979723f2f4371ade90f76b7c
4df18ad4a5ae9716a91bc6ff0057666f512431712aa51d6bf1262aceae7518f5af2d695abc31b245a
849a65dc71beec8b3cd0c80371a8a8077c5591e2aec55d8abb15762aec55d8abb15762a92ebfe57

d2bcc42de5bb0f06a564c64d3b54b56f4af2d64652a5a29287620fc48c1a37fdb4618ab16d53cf975f
96fa55d5f7e6715fd05611bcade6db285beaac8a68ab736ea5de095aaaaa579c323f468d9962c550
df927f9e3e4efcf5f2d4de61f2ab3dbcf673bdb6a3a4dd151776cd53e9b3aa9238c8839230f87ed2fd
a46c55e998abb15762aec55d8abb15762aec55d8abb154b6c79fd6753e6008feb49e9b0ea47a30d
6bf4d462aff00ffd3f7e3ba468d248c1634059998d0003724938ab1cff1ff00941a49a383535ba681fd
398d9c735daabf816811c57e9c55a1e7ff002b115facdc53fe606f07b7fbe71577fcac0f2b569f59b8f1
ff00786f7fea8e2ab7fe561f9528c7eb373f09a1ff0040beaffc98df1578dffce40fe7579aed3cb69e56fc
96d1b53d5fce7ae936adac45a7dda5a69104ab433cb2c912aaca6bfba07ecfc5237d955755f37fe4d
7fce276b1e57f37e97e7df36fe60c9a4ebba6dd7d7638b44d3f50bdb9696a79092e2e2dd17e3a912
0f4e55756615df157dee3cfbe5820113dcd0f43f50beffaa18ab879f7cb2c09135d1a7fdabefabb7b7a
18aadff9583e57a57d5bba78fe8ebfff00b27c558b5ec7f9492ea173aedeadc5a5ccb706feeaea45d5
2ca0faccb68d60d31a88e3566818c6cdb6c6a7e2f8b154cec7f2c7f2d2fb41974fb0b35bcd06fd2c16
10000026060f002220574d464301000000000001000000000000001000000000200000a88e0100
a8ee010042b457b733281a522c768d04a262d1b44a8aaaf132bfc3bb62a889bf293f2f2e2f60d426d
111aeadd62546f5ae0237a114902b48824e12318e6923779159a4476590b2e2a8cf2dfe5cf93bca5
15fc3a0e9c608f538a2b7bf135c5cdd9961b743145193712c842a2314503a2fc3d062a80b3fca0fcb
cd3da16b1d20c0d0592e99194babbff796257488303310cf12c8cb148dca489768dd68b8aa22e7f2
bbc8f796d059dce9ad25bdb59d9e99021b9b9f82cf4c9d2e6da304495fddca88fc8fc4c54722c3155
927e55791a537acfa7495d412f62bc22eae979a6a97097776369453d59515db8d3a6df0ed8aa8ea
7f93df975acdd4d7ba9e8e6e2eee249e69e6fad5d233bddb412495292aec5eda1755fb28f1aba716
df1545ff00cab1f23995e47d2964490ea25e09669e580fe9921af47a4ee5293328665e34e5f12d189
c5574bf96be4c9c0f5b4f6792972af3b5cdc19a417b6cb6937a927a9cdc98516305c928aa3871c55
1fa959db699a2e9fa758afa1676971a75b5bc752dc628ee22454ab124ec29b9c553dc55d8abb157
62a85d4753d3b48b56bdd52ee1b2b34fb53dc3ac4836ad2ac40aed8aa4a9e7cf2c4912cf15d4d2c2
e2a9247677722303d082b0907e8c55a6f3ef965454cd7341d7fd02f4ff00cc8c556afe607959a949e
e77e95d3ef87eb83155c3cfbe5960489ee76ebfe837bff543156ffc79e59dbf7f71bf4ff41bdffaa38abc
ebf3ab41f20fe74f92e5f256b9af6b1a4d83cd1dcbc9a65b5d2348f0d78a4caf6ce248c13cb81a7c4a
adfb38abe53f297e45fe64ff00ce3cf9e23f3d7e50f9960f3769f0878f53f2fdd5a5f697717d6277f4087
8a4899f6aa3fa8bc240adc6955c55f7268bf997e5cd6347b0d5648efb4e92f608e77d3ef6c2ee2bab
767505a2950c5b3a1f85bdfa62a987f8dbcb7ff2d32ffd225d7fd52c55b87cf1e539af23d3ff004a450d
f4c2b0c173cad9e41fe40995397d18ab20c55d8abb15762aec55d8abb154af4fe22ef562bf6cdda73
07a7f710d29f462afffd4f655bd8a79eaee7d47563ebf94ade692df4cd258036f76d0318e4b9b81bfaa
a5c32c31b7eef8afaa55999382acca38e389162894246802a22801401d0003a62ab2e2eadad23f5
aee64821040324ac116a7602ac40df1551fd27a6f176fae41c6371148deaa51646340877d989da98
aa21a68524489e455965afa48480cdc454f11d4d075c55cb2c4f23c48ead2c74f5101059796e2a3a
8af6c557e2aec55d8abb15762ac435cd0df4496e3cdbe54b60baac6ad26a3a5c4de941a9443e270
ea3e11381bc5371e5cbf76e7d36d9564f637b6da9595b6a3652096ceee24b8b7947468e550eadbf
8838aa23154b3cc1e60d23cada35e79835eb9faa691609eadddc9479382542d78c6acc7723a0c55
8f5b7e6af926e6468beb93dbcc9712d9cb15d595ddb4893c162752657596252bfe8ca655a8f897ecf
c5f0e2a98681e7cf2b799acefaff47bc69ad74e8e39ee8c904f038827845c452aa4a8acc92467923a
821b7a6e0e2a96d87e6d790f53b8b4b6b2d4a477be6b45b776b4bb8e3235184cf6aecf244aaa932
ab089d885775280f314c550aff9c1e4eb9bcb3d2f44b99353d46faf574d44b78269162926b49af219
a4a283e84890314947c0e3910d456e2aa87947f383cb7aef95b4bd5b53b8fabeb57567a6cf73a6c5
6d75cdee35485a48d6d11e3e73a334732a347cc7ee9fe2f81b1553f367e6268b75a6e84de5cba4d
47f486afa223ba4533c71c177a94701f51d4011495570ab2d0f24652b5c5595ea7e77f2ae8f7b269d
a96a71437d124b23c14777fdc406e9d40456ab884197d31fbcf4fe3e3c7154b2e7f327cb221b0d52c
b56b49745b85bd9247e3334b3c76368d7727d542ad1ca28e4ff00e4f20bf18a62a9c68de6dd0b5e1
69fa3ee19a5bcb68af228648e48dc45346b2a87e4a02bf160dc09e54de94c5517adeaf6fa169377a
bdd02f15ac65c44b40f239f85234a90393b108bfe530c5527d0bcb45ee13ccde668c5cf9a67453c1d
bd5834f5dc882d54d557886e324aa39ccdf13371e088ab28c55d8aa0b56d634ad06c26d575bbd83
4ed32dc06b8bcba916182304d2aeee42a8f727154047e73f28cd690dfc3aed8496771751e9f04e97
31323de4e42c70021bfbc724714fb47154f3154345a858cf7b71a74373149a85a2c725d5aaba9962
49f97a6cea0d543f06e35ebc4e2aaf2491c51b4b2b048d0167763450a054924f4031553b3bcb5d42
d20bfb19d2e6cae6359adae2160f1c9148032ba32d41520d4118aab62aa37769697f6f25a5f411dc
da4a0acb04c8b246ea7a86560411f3c558ad9c0fe4cd56d74e49a493cadab4a60b18666e7fa3ef08
675891dbe230ca03045627d270b1a7eedd55156618abb15762aec55d8abb154b6cb9fafa9722387
d6d781077a7a50d6bf4e2aff00ffd5f6b7e5b7e8ff00f957be54fd15b69dfa22c4db75af0faba52bcb7e
5fcdcbe2af5df156518ab14fcccf2aff008dbc85e60f2cc614de5ed9c9fa39da948efa21eadac9bd7ec4
c88df462af9efca9e6bbebfbbd675abbb64d2b40f38e9e9f9976e977645edad5f41b5169762e557e3
a9b986cae471f89d19f851b154dadbf34f5dd774be4753d3ee759b07d7ecedb548a1b59af54c3e5d
8b508a780c4ee91b0924219543728f8a49f12b965556dff0030bccd6a34eb3d2b58b17bed5aefc99
a7cfae1b5825bb9e3d66da713bc8cac164914c758d88a2eebc7ae2a9f68ff00993e74d6f55f27e9b6
9a8597afa859e9b7778024063bb8a4b9bb86fe420c81e3609046f6eb1fc2ced22fc7c7e055eed8ab

87

b15762aec55d8ab0afcb0bf9a4f29e9d657c8d15dc69335b87fb32598b87103c67bafa7c363f12fc3c
bb55566b8ab1afcc0f2bdcf9d3c9faa795ed6f134f9b528d621792446e1630245727d3124649a2d07
c6315623ab7e526a3a8f9b2fbcc90ebf1c16d7b72752fd1ed65ea95bd7d125d118fabeb2fee8c6eb2
70e3cb9afdbe276551de5cf235c7936cb5ebcd4b58b79a1bad1f4fb0698dab431409a3d9bc0d3480
cce595b9172b55e23e1e47ed62ac6f47fca39afb4ab19a1f31dadf68f7763e5a896586d24549ecf42
8e5a3230b934faca4d5077f4ffcbc5534d13f29356d174df2f58c3afdb34be59b989f4f9534b8a1596d
20b3b9b00b7023955a49da2b8ab4c1d539a55605e4d5550169f927aadbc9e5ebd3e628bf49795ac
b44b4d2258ecdd23697434bd88b4e86e18b25c457b223a2b294a2b2be2a876fc9a97cae15b43d7
121d3f52d5b48d5359b7b8b5333cba95b6adf5c7920713208925694a988ac9c42af06fb555591dcf
903cc16fe74d73cd7a2dc68e4ea318b9d3e5d434ef5b50b4d456d16cb8adcab83f566540ec807a9c
b9a07e0f8aa436ff935ae4163a5f9606ab6bfe11d16e3575d357d394dec7a76af613daac25abc19a1
7b87656a6f1844a7ed62a9f794ff002ef5dd0fcc3a66bb7ba85b2c969a55be95a80d3966852fc5b42
b1c6278647743e9387921947ef9448d157d3c559279d399b4d294aab5a9d634dfad72fe5faca14a7
fcf5f4f1564b8abb15762af31ff009c89603f23bcf916e65b8d1eeade08d159de49a642888aaa09666
62000062af1c7777d63ccbab3ca755b2d47cd5e419adbcc8903db5b5cfd56ea312db2201c09b448f
9cb3a16f86402461e96cab27b4fcc0f385b5a5aea3aa5f5efd4cdb443f3063480bcba1deb6a30c0e2
2548cb46be8bcb5003f1853eb3fe5b2aa43cc9aa689f9946017b79aa69179a66910b6b6cbf54bdb9
d4637d4e4b082e50428ab6d3070924c029e66dfd4e29316c55da079efcd975a769d7be6bf304c9a
26b52ac5ad35ad85c59be8fa92d94a5ec9e794391cee1554a05a44eab1f3e33aae2af5efca50c9f95
be4b8e4478e48f43d3a3923951a2915d2d63560c8e148208dc118ab31c55d8ab0ffcce111f29b173
4b91a86946c0d68df5c1a8dbfa1c69df9d3fdac559862aec55d8abb15762aec552bb00a2e3542bf6c
de27307a57d187a7d18abffd6f63d95f27912f65d17571f56f2adcccf3e8bab3102daddae18c8f6739
dbd2e2e58c0edfbb68cac5cbd4501d566cacaca194865615046e0838ab78aa8fd4ed3884fabc7c02
1842f05a7a4dd5294fb269b8c55090681a15a98cdb69969098abe918e08d0ad53d33c68a29f08e3f
eaed8aba3f2fe83095316976919431b214b7896861044645176e20fc3fcbdb1562977f955a15df99e
3f30b385b68beacd0e99f55b464824b36e686da5684cb02b31e522c6e39355be1e4d5559e62aec5
5d8abb15621af6bb2eb52cde52f2a4e24d565062d4f54887a96fa642c3e267604299c8da186bcb97
ef1c08d77553a7d02c174ab4d26cc1b48b4f8e38f4e9623f1dbfa29c10a935ad00a107661b362ade
9da85c7a9fa3756091ea882aae95115c201fde455248ff2d3ed21fe65e2ecaa698abb157987e716a
77b669a3d9492ea56be5cd417518751bcd1d277996e7ea6ff00538ddad91e444772d42051a55891
b66e2cabce3cad7fe6d9eca1b33aceaba05f697a1c36f63a5b69b7cd6afa7c9a25b84ba9492a8ad0
5dfa9c8aafd6b921878f165c5524f366a5e79b5b3d5755b49b5dd275f97cbb6b6fa79b3b9bad4adfe
b10f98a58ae9ad659226570d0323c6f2c627fabb475fb24e2acdad60f3ec9af4be598f55d656ee0d6
a6d1de6b891cab79564d23947a824a14234eb71c489ffbcf5f9c2df07c215647f97f79e60d63ca116a
de626b97bf1a8d8e9525bdc312beb68b7296371731ee6ab3cf14b306fda4e15c55eb18abb15762a
976bba441af69175a4cec635b84a4732805e2950878e55aedca375575ff00297154abcbfe66334c3
cbde622b65e6cb752248187a715e221a7d66d09d9e37fb45012f093c24ec59564d8abb15762aec5
5d8abb15762aec55d8aa95c5c5bda4125d5dca905b42a5e59a56091a22ee599988000f138ab11b
6b96f3beb1697b6d130f2868f28bab5bc900e3a95e042a8f083bfa10f22c24207ab2f068eb1a72755
99e2aec55d8abb15762aec552cb2a7aba8efb1bc5e9d7fbb87ae2afffd7f7dcb147346f0cc8b245202
af1b80caca762083b1071562bff002acfc9c93cd7169697160d70dea4b169d7f7d61017f110db4f1c6
0fc97155c7f2efcb6450bea94af23fee6b55ebff4958ab5ff002ae7cb5d3d4d57c7fe3b5ab6dff4f58ab
43f2e3cb40d449aaf4a7fc76f56ff00b2bc5577fcabaf2dd29ea6a94edfee6b56ff00b2ac55b1f979e5c
1ca926a9f1fdaff00733aa9ef5ff96adbe8c55cdf979e5b73c99f5427db59d547eaba18ab5ff2aebcb5f
cfaa6fb1ff735ab741ff4778ab5ff002ae3cb1fcfaaff00dc6f57ff00b2bc554a7fcaff0026dd208af6def6f6
dc10c6deef54d4ae6062bb8e714b72c8c3d9948c5594d958d969d6c967a7db45696918a470408b1
46a3d954003154462a85beb0b7d42258a704346c248265da48a55fb2e87b11f8f43b62a84b1d427
8a64d2f5828ba937236f3202b15ca26fc92bd1c0dde3a9e3d57926f8aa6b8abb15762aec550da858
c1a9d85ce9d72645b7bb89e095a0964b794248a54f096265746a1d991832f5538aa53a8585a691a
2e9ba6d82fa1676b75a7c102559c845b9880059896627bb312cc776c553fc55d8abb15762a82d53
47d2b5bb56b2d62ca0beb47ad61b98d654dc52a030343ee3154861fcb9f2bdb288edc6a31443658
d357d515141ecaa2ea80780036c5579fcbff2e952bcf53e24f223f4c6a9d7e7f5aae2ad1fcbdf2e1007
3d4c71208a6b3aa8351ff4758ab97f2fbcb89b89354ef5aeb3aa9ea08ef75ef8aa4f67e4ed06e5e7d6
0cdab45a35b230b551ab6aae6609bb4fc56e58b2ed48801f10ab50f25c5519a5f93bc9bace9769ab
69971a9cfa6ea30c5756b30d63575f5219943a351ae830a86ad0818aa29bf2ff00cb25c4665d4c48
416551ad6aa1a8280903eb5d06d8ab67f2f3cb64d4bea9bec7fdcceabff6558ab8fe5ef971850bea9f
46b3aa8ffb1ac55d0fe5c793a3be8f519ec1efef2152b0bea77575a8ac60f744bb965553fe5015c559
50000a0d87862aec55d8abb15762aec55d8aa5b67fde6a068056f17a77f822df157fffd0f7f62aec55
d8abb15762aec55d8abb15762aec5525f37798adfca3e56d63ccf751fab6fa459cd7af172e1c84085
e85a878834dda9f0f5c55e3b0f9d7cf7e5df32f99f42b3b5b6d7fcdbaa6a6d71616b14cf1e9eb059e8
d6170f127d6ae018cc865a5518a29e53fa5d531546ebbf9abe6f1aa7e86d3d2cf4bd40eb7a1da470
5e5b4b3f3d2b54ba581a78678e6f46e15fe25e7195681c346e9f624655669bf9bde78d4edd0ad8e9
16f7b7bfe23bcd32177b9756b2f2a5efd4a68dd8f0fdf4ecc8c8cbf0c49cd9924fb38aa73e5af3c6a9e
7bd59743beb2b7b4593eafacdb27ef22bd8b44bdd3e39ed6e14f3349d6ea46b772a3d3fddc9e34c5
5e89637d3dbce9a56aac1af5831b6ba002c772a9b9a01f66403ed27fb24f86bc554d715762aec55d

8aa4fe6404d9da0009ff0072161b2fb5d4677f6c5538c55d8abb15762aec55d8abb15762a92df3b6b
376fa2dbbb25a4057f4accbf0d4300cb6eac475706b253ecc7b6cce28ab16fccc8f55f57cb96b6f637f
77e53927b98b5d8347f504ebfe8aff00532c2dd965f484c1437a67e16f4d9ff761f15798795747f3d1b
6b4b1d40f99b45bfd2f43b5b7d2d6d6d55ed3ea87468eddd666320469e2bb124861dae19d2231c9
e931c552bf32689f996b6377a95be99aa5bf988f967f45d85ee852ea2cad7316b81e47844ae6583d
5b72b2a472fef152b1737f4ab8ab2d5f2bf9ddfcc9368d049aa416cbaea430decb77772dac9e4a974
a092462567349c5cb3519cfd6d66e3207f4ba2accff0026d35b97cb925ef982499f518a4fd0a5a591e
45957412da79ba52ccd5facc91493f2fb455d0372e3cb157a362aec55d8abb15762aec55d8abb154
b2cfedea1b7fc7eaffc421c55ffd1f7f62aec55d8abb15762aec55d8abb15762aec554aead6daf6da6b
2bd852e2cee11a1b8b7994491c91c80ab23ab0219581a107ae2ac413f28ff2ce3b38ec17caf61f568
ae22bc8d4c40b0b8823f4637e67e2348ff77b9a7a7fbbfb1f0e2a99dc7917ca37697315d69104d15d
cd1dd4c9202ca268651323a02688448a1fe0e3f1fc5d715524fcbbf2447636fa6ae876bf51b5b89af2
da22a4fa73ddb179d949351ea966f5541e32726e61aa71555d23cb92d9ebfaa798b5296dae750bb
48ec6c1ededbeaed6fa5dbb3c915bb319242edce476671c15be1fddaf1c553abbb4b7bd8bd1b940e
a08743fb4aebbab29ecc0ee08c552fb5d426b2ba8b48d59b94f283f53bda718ee02fecb765940152
bd187c49fb4a8aa6f8abb15762af8bffe730bfe722bf35bf257ce9a2e8de5fb6d2ae3cafa9db41aa5a4
97b6b33ce2eacae3f7911749d14ad5636d943717a62afa57f263ccbe69f397e577963cdbe738ada0
f30eb9649a85c416514904091dc93242a125791abe994e556fb58ab3bc55d8abb15762aec55d8ab
c7fca9ff3913f97ff00983e65d6fc87e52d4a35f39e917f3e9bf55bb2a1268ed9cac9776e55889a3143
4504396a03c55b9e2af57b1b38ac2d52da22582d4bc8fbbbc8c7933b1eecc49271544e2aec55d8a
a1efacad753b2b9d3afa313595dc4f05c444901e2954ab2d4107707b62aeb1b1b4d32cadf4eb0856
dec6d23482da08c511228c055503c0018aa2315762aec55d8abb15762aec55d8aa5966c4bea1b9
daf547fc2438abfffd2f7f62aec5527d73cd7e57f2cc625f316b563a4c64554df5cc56f503c3d465afd1
8aa423f38bf29c8e43cefa1915a1a6a36c77fa24c556ffcae6fca5a81fe37d0eadf647e90b7a9f97c78
ab7ff2b93f29f7ff009dd745dbed7fa7dbedf3f8f156bfe572fe52d01ff1be8943d0fe90b7a1f97c78abbf
e572fe537fd4eda278ff00bdf6fd3fe0f156c7e727e539008f3ae8a41e845fdbd0ff00c3e2ab87e6ff00e
561240f3968f502a47d760ad3c69cb156c7e6f7e56b0aaf9c74822b4a8bd848af87dac55b5fcdcfcae
6754ff18e8e19ba72be8147de5c0c55975b5d5b5ec097367347716d20e51cd0b091181ee1949071
555c55d8abb1550bcb3b7bfb67b5ba4f52092955a904106a1811b8208aab0dc1c55f0dfe64ff00ce7
44de4dfcd6d2bca1e5fa6a7e49d075036fe6bd567b729777909fddc91c4acabc4dbd4b730abebba2f
d94af355f6fe93aae9faee9565ade9370b77a56a30457765751ee92c13a078dc57b1520e2a8c240d
cec3157cdbff00397df9327f37745f240b3defb4df30d9dacc40a81a76ad2c76f72c48dc70e31bfc94e
2afa32da0b5b2b686d2d5121b5b7458a0892811238c055503b0005062aad8abb15762aea8c55ae
4be231579afe7e79f2e7f2f3f2a7cc1aee948f3f98a788699e5fb6850cb34baa6a2df57b65445dd887
7e7c4765c55f2cffce32ffce0f5ce9379a77e627e70b4b06af6d2477ba4f966de631bc32a1e692de4b
1107903422246dbfdd8dd63c55f78e2aec55d8abb15762aec55d8abb15762aec55d8abb15762ad1
214558d00ea4ec3154a6ca4883ea3f1aef7aa7ed0fe487157fffd3f7f62ac5356bcbfd775a93caba35
db5943671c73ebfa8c057d78d270de95b424d784b2005da4a728a3e3c7e3951d554d34bf2bf97b4
64e3a6e9d042e4d649ca0927918ee5a495f93bb13d59d8b62aed6357f2e796e2b7b9d6a7b7d3ede
f2e61b18279c048dae6e5b845197a501762157911c9885fb4462abacf58d0afb56bfd12d2549356d
2844d7f6e2360d08b852d1924a81f10048a1c5532f4a2dfe05dfaec37c558eebfe76f27795f50b3d23
5dbe8ed752be8a4b8b1b4f4a496496280a891916346a84e4bca9f6792f8e2a9be997fa56b5a6db6a
fa5cb1dd6997912cf6b7318aa3c4e2aac2a3c3155da75e69faad85b6a5a79596c6ea359ade4e0539
46e2a0f17008dbc462aba0bcb1b9babab381835d59f05b94e2471f5579a6e4006a0d7638aa278a8
e807dd8ab4f1c6ea55d15948a15600823e9c558c6a3e4f82dda4d57ca223d1b5f5a38f447a767745
37f4eea241c5d587c3ea71f563fb48dd8aa9a79735eb6f31e9316a96c8d0b16920b9b5936920b9b6
91a19a17ff2924565af46fb4bf09c5535c55d8abb157977e6c7fce3e7e567e725a48be70d123fd305
385bebd6605bea31501e349547c6057ec481d3fc9c55867e4b790ff30fc81617ff0094369e628f51f2
3797ae41b0f36840ba94515c0133e96b0481e30f1f2e66e2aea892fa6b1f31fba55eb69f973e4c2c9
2df6969aa5da2f0377aa3bea13b0ef57b9673be2abffe55d790a94ff0d69943ff002e90ff00cd38aac3f
96df97c450f9634ca787d521ff9a7155a7f2cbf2f08a1f2c69b43b1ff00468fa1fa3156c7e5afe5f8208f
2d69d5029fef347fd3155cbf96fe41524af96f4e0c7627ead1d7f562abbfe55d790e817fc37a71037a1
b68cffc6b8aac3f96df97e7913e59d30f2eb5b48bfe69c554a5fcacfcb69e48659bca9a54b25bb7381
9ece16e0fd392d57661d8f518aab1fcb7f21d432797ac61914f249218561914f8abc7c581f91c55057
c9aa791abaadbdcdc6a9e518f7d4acae9cdc5dd8c65896b98269099248d01acb148cec235e5137c
3e93aacce3923963596260f1380c8ea4156522a0823a838aaec55d8abb15762aec55d8abb15762
aec55d8abb1563de7bf2adb79e7c97aff93af1cc76fae585cd834a3ac66e23645714eeac430f962afc
7ff237e5beb7ad795ff34afe7131bdf2bc5a5e9502f26a0d5353d7acecd57c6bc16618abffd4f7f62ac5
bc906674d7e5b85e370faddf87a8a1291b88a227fe792253fc9a62aca715617f9a1a5e8faff96e2f2d
ebf68f7da4eb37d6765756d1c32cf58de60cccde92b18c205e6253c446caadc83531579569963e7ff
2c5ec9a779b5afaf341d3759d3f4cd475fb43706eb50d02df4cbb3697729b71ea73fac3dbc377e9ee
648da4da37c552f85ff31edb57f2e5cdddff009865d52dee3cb10df4205e9b16b7b9b9d423ba6b889
53d22c6d45a35d9ff007548799f4e438aa7be796f33a7e617916efcc53cfa65d5b695e6482f758f2dd

89

85dea36f6c6f4d8adb0abdb4d477f49cd197f6315465bea7a8b79f746d5a17d74791351b25b0bcb6
78afadcdb6ac96d3496f72d07a758e196066f5b6f86e9adb9d2547c5585c579f98daa794574fb95d6
753bcbff00265c5b5dda5d477d6d7706a3fa2ee984c1f884b81348cb0ca8fe9dcc374b0b27246c553
295bcc37daf5b69b6b77e66b5f2b4bab797502c0754b6e162fa45d7d6d03f059122f5562f5771c25a
5595f155be51d7fcc3a96b1e4bb2f33798356d3aed2cf409ee96e22d46dfd4b85b7b98ae6cee5843
e8992e263048febbc726cab46e4bc957d298abb157cf3e7cfcd6fcc5fcb8d57ce8be4cfcaed57ce966
97d0dc457b652c2b6a923d85a9994c71096e1883f19e31756fb58abe5eb7ff009cd1fcfbf357e6979
67ca779a545e5bb0bbd6f4e82eb40b3b6f43509e07b98c35bb4da838e26507896fdcf5eaa3157deb
fe2ef371dbfc01aa0245456f748a57c0ffa6e2abc79afcd86bff3a1ea429d2b79a4ee7dbfd3315587cd
9e6f1ff4c0ea47af4bed27f8dde2adfe57c9753f92ec2e6f34e9f4dbabb32de4d0ddcb0cf2bc979235c
3c85a079168cd235013c80da98ab31c5583fe6b68d6fa8793358d4a6b8b9866d1f4dd4af2d05acf2
40a671672aa3bfa454b70af2415d9fe2ed8ab04f25798b5ad127d13cbfe5ad2a6d4e0bcb0d0752f32
df5f5f27a76dfa52dcc0d2c7f59b8128de00fc523944d233a829262aa69f9bdf987fe1eb7d724d3346
2d71e5cbdf362dbac977416fa7bdaa9b62c47db7133fef29c528bfbb7df155f73f9adaf473eb17775a
458c9abf96479aad629d26b8485db45b5b4bb4fddef45944815ebc990a563fb4715466abf9c1e62d
0f48d66e6facf4d9f54d16ea6592cedde6125d5b43a7d95fd6089b71c7eb82396677f4e3e2afc5bd4
58f156aebf33fcf969ebd8e95a3db79875b9f53d7c58daa4b0d8a47a6e877b15a8595ee2e2315a4b
579579f1ff7c9ae2a8cd0fcd77be6afcc2f2a6af14a90e877b63e6886dacd1e40e4e9b7f656bca61cc
c6ed55765a2868f971a9df157aee2aec55a655652ac01561420ee0838abc0f59ff9c8ff00ca6fc96f2e
5ae89e72d6ae64d5b4ff005ed2db4f82da7b9ba9a2b49e4823a3f058abc116bca45c55e65e59ff009
cf9d1fcf7f997e59f23f95fca735ae93addfc36573abead72892c6b2b50958200eb5f0265fa3157d767
5bd201a1bc8bfe0876c55b1ace947a5e45e3f6874c55afd35a4d397d722a74af218aae3ac696295b
b8f7dc7c5d7e58aadfd37a4d2bf5c8a9feb0c55bfd33a5569f5b8abe1c862ad7e9ad248afd722a0ebf
10c5577e98d2cb041771f220103975071577e97d33e2ff004b8fe1fb5f10db156ff4b6995a7d6a3af8
72c55c356d35812b75190bf6be21b62af2ff002d7e4e791610000026060f002220574d4643010000
00000001000000000000001000000000200000a86e0100a8ee01005fcbebe73d421b88e44f36f9a
ad3cdb753f11c50d8dddb5ec501ed412c4e6bff0016e2afffd5f7f62ac3b52bb3e4dd76e35bbb32b79
5758f4ff48cdbba69f7b1aac49332815586640ab2bfd989d11da88f23a2acbe3923963596260f1380
c8ea415656150411d41c55762aec55d8abb15762aec55d8ab1f3e49f2c9f314be6bfa911adce626b
8944f388649204f4e391edc49e8b488bf0ac8d1f3000f8be118ab20c5524f30f996d7418e3b74437b
aede725d2f488483717322a93b7f24629fbc95bf7718fb47a02abbcada2cfa2695e8df4e6eb55ba9a
5bed4ee2a4ab5d5cb17904750291a57d3885368d13be2a88d53cb9e5fd6e4b69b58d2ed2fe6b396
3b9b496e608e6786781c3c7246cea4ab2b0054ae2a99e2aec55d8ab10f2c5cae817f37922fd99244
79eeb40965351756123faac88c7abdb3398d93a88bd27fda345597e2a83d574ad3b5cd36eb47d5a
dd2ef4cbe8da0bbb592a52589c519180a5411b118aa4b1fe5df91e2b9d26f23d0ad05de856bf50d2
2e3d3acb6d694a0891cee156bf08fd8fd9a62aa727e5a790e6b0874b9340b46d3e0b1934986db81
08ba7cf22cb25b800ff0076cc8a4af4f8462aa337e557e5e5c4f71753797ed5e7ba3766e5c87aca75
18d61bae7f17c5eb222ac95fb4156bd3155d7df95bf979aa34cfa8f96ec6edee1de499a6884859e5b
64b373f157ed431a46de2a89fc8b8aaadc7e5af906ecc66ebcb9613186f06a719781188bc11ac5ea
ee3ed145556fe6a7c55c551763e48f28699ae5c79974fd12cedb5fba691e7d46385167669c289486
a5473e0bce9f6c8ab57154fb15762a91f99b5f3a2dac705945f5bd7f50636fa3e9ebd659e95e4fb8e3
1463e399ff613c5ca2b2ab2c3ca1a341e5ab2f2c6a7690eab636b02c32adf44970b33d3f78eeb2060
4bb12c7e78abce21ff009c56fc90d3fce5a479f342f2dae87e61d16e96fad9f4c96482dda543501e0a
b45c7d9557157b362aec55d8abb15762aec55d8abb15762aec55d8abb157ffd6f7f62ad328605580
2a45083b820e2ac697c87e5db791e4d2d2e748e60068b4cbbb8b3836e9482275887d098aaa8f28
5a86a9d4f562294a1d46e69f3d9c62abbfc2567ff571d57fee2577ff005531577f84acff00eae3aaff00
dc4aeffeaa62aeff000959ff00d5c755ff00b895dffd54c55dfe12b3ff00ab8eabb7fdacaeff00eaa62aeff
0959ffd5c755ffb895dff00d54c55dfe12b3ffab8eabff712bbff00aa98ab5fe11b3a7fc74755ff00b895df
fd54c55a7f27d8ba947d43562a45081a9de29a7cd65047d18aa2f45f2ce85e5ff51b4ab3586798527
ba7679ee6500920493cccf23804edc98e2a99457104fcfd09525f49cc72f060dc5d7aab53a115e98a
aa62aec55d8aa84b7b670bb4735c451c88aaee8eeaa42bb7152413b02db0f7c550dac689a56bd6
82cb56b65b9815c4b11259248e55a80f1c8855d1c54d1d195bdf1563ff00e1ad7f4c3235af9d2f134f
77022875286d2ebd1e642aa24c638e46049a0f55e47ff2b15573a179c7b79b08ff00b775bff5c55afd
05e74aff00ca5bb7fdb3adff00e6ac557ae89e7107e2f35061efa7403f53e2ab9745f378520f9a0163d
1bf47c1b7d1cb155a744f381229e69000ebfee3e0dffe1b1571d13ce1f153cd2057a7fb8f836f97c58
ab4344f3956bfe2a5229d3f4741d7c7ede2abbf42f9c29ff2942d7c7f4743ff0035e2ab2ebcbfe6eba8
7d15f374b6950434f6b616826153fb26759901f9a1c551fa2795f4cd0e592f2232de6ad70a12eb55b
d90dc5dcaab4d8bb6cab515f4e3548fc13154eb15762aec55d8abb15762aec55d8abb15762aec55
d8abb15762afffd7f7f62aec55d8abb15762aec55d8abb15762aec55d8abc9ff0039bcebe63f2b4da2
e9de5dd4ecf4bbdd622be5b39af4db857beb7fab98124facba2880abcbeab29f515bd2e3d685561fa
dfe6eebf0eb3afe9ba5f98ed120b7478ed6e6e21b70d15d5a6b36da74a8b6e486038cae2b33932b0
f5628d21e1cd54045e61f31f90f5df375d5bebf1adb7e9ebf1acd94ba7453398a0f2d5bdc36adc2031
c9f0cd12724aac322bf01c5e8d8aaf97f37bced75a52d9da6b16161ac4baa6b9a6585cdccb60fce7d
3dad64b44b866f4e131186594cd24346e421e1c8316655e89e43f386b7e62f37ead6b77acd94969
612ea36171e5e443f5fb792caed62b7b87a46a6349a11ea7c6ceb2fab1b43c555862ac72dff00337

5abdb21a943af44af36a70691e62d27eaf089fcb865d41adccb2b9af1f802c749d5c177fac29f4815c
5585f99b57b8d646b375afcf6f717e9a335a26a08b1c42f2d2c7cd421b5b9e0361cd103edf072abc7f
032e2acaa6fcd8d6e2bdd52f6f3cc36363a4daea52e93ac69fe9ac979a1c51ea82d62bd98b460247
24146e5399119a549a3fdd238c554358f346b96babea0efe6b83548469fe569b4f69ededd6c6e92f3
5fba826b88a17a8e6221156546e3c82caaaabc00554359fcd4fcc08b49b8d474fbb8e2ba963d6c6a
56d35ac74d0ee34ad521b4b5565601984f1bb29f549f54fefa1e29f0e2af58fcb6d6b56d634cd622d6
6f06a177a46b5a969497a238e17961b49cac65d22010305201e216b4ad3156678abb15762aec55
d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb157ffd0f7f62aec
55d8abb15762aec55d8abb15762aec55d8ab1cf317936c3cc97b6d7b7777730fa304d692dbc4617
82782e0a975749e29403541478f8494db953154de2b1d321816de382116f0811aa15521446a140
debd1540dfc31540ebdaf691e5d6b097508d8c9ab5edb693034481d8cb74e523e7b83c01ea77a62
ac23cea9e5abbf395a697c758bad762d36975a768eb6f25b8d32fae045ea4d1dc82abf1c54f521a4c
a8bf6b8e2af4ab6b7b5b3892ded91628e28d23455ed1c638a8f1a0036c5527bff0032e9969ac3797
beab3ddea33e9d36ac22b78d5d66b78248e065059802e4cab453d57be2a9c7a7664d0ac459071a
516aaa3b7b0c552fd4759d3ac5e7b78a337faa0863b8934bb3f4e4bc7b792410ac9c1996a80d772
7a2b53154c8c76f2371288cc800a1009507a7cb156c450372708ac64a736a03cb8ec2a7bd3155ea
aab50a02826a6829b9c55bc55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb157
62aec55d8abb15762aec55d8abfffd1f7f62aec55d8abb15762aec55d8abb15762aec55d8abb157c7
135edb5c5ee83279974d4b3d164f3079724b98a79627b28e4e3ab89e32433123894e6d39f519429
b9f4d8aa62a9ce9b757d147e488353b06b8fac5f792ae344bab8923492da05b658dedd1652246ab
23cbca20f19f5196578e4564c5535fcea974e5f3af9cd52081f55ff0b681e8b86885cfae35b9f8f1a1f5
3a11d3f977f878f2550135e59db6a1e6e9b45d3a3bed6d6e3ce2751b712089dadfebda781eb32b86
e20f2280911b302bc950c8e15414f71787cbbad2ea96932f1f2f79cd6d1a6680f357f31446d993d16
e34562aabe980bb7ee15a3e0ccab23f356a563179c3cd97171a3473798592dad747b4496dd5534
88b51b517976cf1ca035c4b7522978662aab14307aecb03bf255e61aacacba0f9916e2dd9b569740
d396067743751451f9c6fcdbb7c1c495911a89e8065023f895233172559b79e97fdc379820be76fd
23636de733a9dca86e77f6b717519b512a81ea47e8178447eb840de88faa7ab1ba9c55ed1f94726
99259799ce850a43a08f305e0d396dca1b62822804862f499978997d4278fedf2fdaae2af43c55d8a
bb15762aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb1
57fffd9000840010824000000180000000210c0db01000000030000000000000000000000000000
001b40000040000000340000000100000002000000000000bf000000bf0000af4300008b4303000
0000000008000000080fe7fe9430000008000000080fe7fb9432100000008000000620000000c000
00001000000150000000c00000004000000150000000c0000000400000051000000b4820100000
0000000000000d201000072010000000000000000000000000000000000005e01000016010000
500000002404000074040000407e0100000000002000cc00d301000073010000280000005e0100
00160100000100080000000000000000000000000000000000ff0000000000000000000000ffffff0
0fbfbfb00fefefe00fdfdfd00f6f6f600e8e8e800bababa008686860071717100727272007676760073
7373007777770074747400757575006b6b6b0070707000787878006c6c6c006e6e6e006f6f6f007
979790088888800ababab00c5c5c500e6e6e600f9f9f900fcfcfc00fafafa00eeeeee00939393006666
66008c8c8c00b9b9b900c6c6c600cecece00cdcdcd00c8c8c800cbcbcb00d1d1d100cccccc00caca
ca00cfcfcf00d0d0d000c9c9c900c7c7c700c4c4c400c3c3c300c0c0c000bbbbbb00aeaeae00a6a6a
60095959500686868009f9f9f00f3f3f300a2a2a200afafaf00e7e7e700dadada00aaaaaa00a5a5a50
0f1f1f1008f8f8f009c9c9c00ebebeb007a7a7a00acacac00a8a8a8007b7b7b00f0f0f000b0b0b00083
8383009b9b9b0097979700f8f8f800f4f4f40099999900d7d7d70056565600d6d6d600eaeaea00e9
e9e900f5f5f500f7f7f700e4e4e400e2e2e200d3d3d300dedede00ededed00d8d8d8009d9d9d002e
2e2e00e5e5e5006d6d6d00b3b3b3001e1e1e0092929200b6b6b600585858006a6a6a008080800
0a0a0a000dfdfdf007e7e7e00f2f2f200060606003c3c3c00c2c2c20022222200dbdbdb00c1c1c100
90909000ececec0084848400dcdcdc001a1a1a0098989800dddddd00bcbcbc00adadad008e8e8e
009a9a9a00a9a9a90025252500a4a4a400a1a1a100b8b8b8008d8d8d00b1b1b100b5b5b500d2d
2d200b2b2b20016161600d5d5d500606060004a4a4a002b2b2b00525252001f1f1f002d2d2d00bd
bdbd00131313008a8a8a0035353500e0e0e000919191007f7f7f003f3f3f0082828200e1e1e100efe
fef00bebebe0051515100505050005d5d5d009e9e9e00d4d4d40094949400b4b4b40034343400bf
bfbf0037373700414141004444440087878700e3e3e300404040006767670065656500a3a3a300
7d7d7d001b1b1b0015151500464646004e4e4e00474747003b3b3b0085858500a7a7a70038383
800232323003d3d3d005353530048484800818181005f5f5f005a5a5a0062626200b7b7b7000909
09002626260042424200282828008b8b8b004d4d4d007c7c7c0096969600d9d9d9005b5b5b005c
5c5c005e5e5e006464640061616100696969006363630089898900020202005757570030303000
434343000d0d0d00050505002121210045454500545454002a2a2a000a0a0a003333330011111
10049494900595959001818180032323200393939001d1d1d004f4f4f001c1c1c00363636005555
55004c4c4c00272727002c2c2c00030303001717170001010100292929000e0e0e003a3a3a003e
3e3e004b4b4b00121212000c0c0c00141414001919190008080800040404000f0f0f002f2f2f00313
13100242424002020200007070700101010000101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010

91

10101010101010101010101010101010101010101010101010101010101010101010101010166
e781e763ca6642e33147decd10ce5e1b019ed3083f13cd3b1462529c48639594f1083ed81a48de0
6b3c83d62700b50acaf3c93d82364360127aa343e1d79d1a7c3ca381b010201010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101000001010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
010101c12748d74de70e1cbc5a12a96a69e355010401fa34050daa011437010a92ce0b9ec23b78
b81b3bb10107b5014c07b22b67b956db3e04e6de059b78010e6d84b001320b010101031c010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101000001010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010167372b6504c973015fa7e632033e0a1c1c0101f033019411040c4b010e879e94
576c9729640256b81d01cb40030135822fd855a18e01d1cc4fdb0101c3ac97d81c2e0b1c0301010
30101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010100000101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
010101010101010101010105abc68801d14901363bd89901371501010155a88054210d040d341c
0d9e03311ff038319a0177c81b0123913804557c0ebb4d919901aacb84c41c030a1657c40123430
10102040101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101000001010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
010101010101010101010101010101c32c2dbb01d3cc98c4387a850476ce0103034ca53002cd0f1
cca731d9c92227655b70523b8012d9a020601140e011351a0644db62e1db19c1eb847019b3a23e
142340d04031b011d010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010000
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101a040413a1ab1bb16a904555c83de3601010130ad
0b30cb7b1cbbcdc3c81b56a67981038ebb1d5c100379b49ff9973e399f44a7f5175b64080319717c
12037e8908a863010101030101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10100000101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
101010101010101010101010101011c04010101020401015a471d0105041e030201541e1f14011
d011ea44001011c020103471b04011b53010278ca040301034d5a726a1c026a980154147f1c010
1010398420401040338380101030101010101030301011c0101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101000001010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
1010101010101010101010101010101010101011c011c0401010401040401011d0103010403010

17a881c011c1cce90284187031c01030103011d040101b4e3013f9901030101010401010101015
e3b0180231c01031d010304010103011c030103010403040401010301010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010000010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
101010101010101010101010101010101010101010101010301010102010103011d0301010103
010301041d3376010401012c7fac5f32011c011c03010101010401a28104c741030401010104030
103010201030521371c01010101030401030101040101020101010103010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010100000101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
101010101010101010101010101010101010101010101010101011c01011d01010403010101010
3030401011c010401011b0101011d011c0104031c03010201011c01010304011b0103040101010
301010104040103031c01550301030401010101010401010101010101010101030301010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101000001010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
101010101010101010101010101010101010101010101010101010101010103011c01024c01010
14c010204010301010301040101011d1b0101010303010101010101010104031b010301011d010
104030303030403010103010404020104010101011c1c0303010303010301011c0304040404030
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010000010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
1010101010101010101010101010101010101010101010101010101010101010
The thread is created when an object derived from the Thread class is created. At this point, the
thread is not runnable (executable) Java calls this the new state. Once the start method has been
called, the thread becomes eligible for execution by the scheduler. If the thread attempted to acquire a
monitor lock, it may become blocked whilst another thread holds the lock (and, hence, no longer
eligible for execution). When the lock is free, the thread becomes runnable again. If the thread calls
the wait method in an Object (when holding the monitor lock), or calls the join method in another
thread object, the thread becomes waiting (possibly with an associated timeout) and, again, is no
longer eligible for execution. It becomes runnable as a result of an associated notify/notifyAll
methods being called by another thread, or if the thread with which it has requested a join becomes
terminated. A thread enters the terminated state either as a result of the run method exiting
(normally or as a result of an unhandled exception) or because its destroy method has been called.
In the latter case, the thread is abruptly moved to the terminated state and does not have the
opportunity to execute any finally clauses associated with its execution. It may leave other objects
locked.
A terminated thread becomes eligible for garbage collection during which any finalization code it
has will be executed. However, this code is usually executed by another thread (in the same way that
a thread's constructor is executed by a different thread); furthermore, the Java rules on finalization do
not guarantee that a thread's finalization code will be run when the program exits.
A Java program terminates when all of its user threads have terminated, or the exit method is called in
the System or Runtime classes. In the latter case, all threads are forcibly terminated.
Data associated with a thread can be static, nonstatic or thread-local. Thread-local data is created
from the ThreadLocal class and is stored on a per thread basis.

93

Chapter 3: Communication and Synchronization


Overview
Introduction and chapter structure
Chapter 2 gave some context for the Java concurrency model and explored thread creation in detail.
This chapter focuses on how threads can communicate and synchronize their activities.
Communication and synchronization between Java threads is supported via a simple form of monitor.
The model is explored in detail, and its strengths and limitations are discussed.
Underlying Java's communication and synchronization approach is the Java Memory Model. The
criticisms that have recently been made of this model are detailed, and the changes that have
occurred in Java 1.5, as a result of these criticisms, are considered. Finally, ways in which threads
can interact asynchronously with each other are addressed.

3.1 Synchronized Methods and Statements


Associated with each object there is a mutual exclusion lock. This lock cannot be accessed directly by
the application, but it is affected by
the method modifier synchronized, and
block synchronization.
When a method is labeled with the synchronized modifier, access to the method can only proceed
once the lock associated with the object has been obtained. Hence, synchronized methods have
mutually exclusive access to the data encapsulated by the object, if that data is only accessed by
other synchronized methods. Nonsynchronized methods do not require the lock, and can, therefore,
be called at any time. Hence, to obtain full mutual exclusion, every method that accesses
encapsulated data must be labeled synchronized. A simple shared integer is, therefore, represented
by
class
SharedInteger
{
public
SharedInteger(int
initialValue)
{
theData
=
initialValue;
}
public
synchronized
int
read()
{
return
theData;
}
public
synchronized
void
write(int
newValue)
{
theData
=
newValue;
}
public
synchronized
void
incrementBy(int
by)
{
theData
=
theData
+
by;
}
private
int
theData;
}
SharedInteger myData = new SharedInteger(42);
Block synchronization provides a mechanism whereby a block of code can be labeled as
synchronized. The synchronized keyword takes as a parameter an object whose lock it needs to
obtain before it can continue. Hence, synchronized methods are effectively implementable as (using
the
above
read
method
as
an
example)

public

int
synchronized

read()
(this)
return

{
{
theData;
}

}
where this is the Java mechanism for obtaining the current object.
Warning Used in its full generality, the synchronized block can undermine one of the advantages of
monitor-like mechanisms: that of encapsulating synchronization constraints associated with an
object into a single place in the program. This is because it is not possible to understand the
synchronization associated with a particular object, O, by just looking at O itself. It is necessary
to look at all objects that name O in a synchronized statement. However, with careful use, this
facility augments the basic model and allows more expressive synchronization constraints to be
programmed.

Accessing synchronized data


Consider a simple class that implements a two-dimensional coordinate that is to be shared between
two or more threads. This class encapsulates two integers, whose values contain the x and the y
components. Writing to a coordinate is simple, the write method can be labeled as synchronized.
Furthermore, the constructor method cannot (by definition) have any synchronization constraint:
public
class
SharedCoordinate
{
public
SharedCoordinate(int
initX,
int
initY)
{
x
=
initX;
y
=
initY;
}
public
synchronized
void
write(int
newX,
int
newY)
{
x
=
newX;
y
=
newY;
}
...
private
int
x,
y;
}
The problem comes in deciding how to read the value of the coordinates. Functions in Java can return
only a single value, and parameters to methods are passed by value. Consequently, it is not possible
to have a single read method that returns both the x and the y components. If two synchronized
functions readX and readY are used, it is possible for the value of the coordinate to be updated in
between the calls to readX and readY. The result will be an inconsistent value of the coordinate.
There are essentially two ways of circumventing this problem. The first is to return a new
Coordinate object whose values of the x and y fields are identical to the shared coordinate. This
new object can then be accessed without fear of it being changed. Of course, the returned coordinate
is only a snapshot of the shared coordinate, which might be changed by another thread immediately
after the read method has returned. However, the individual field values now read will be consistent.
The

following

class

approach.
{
...
public
synchronized
SharedCoordinate
read()
{
return
new
SharedCoordinate(x,
y);
}
public
int
readX()
{
return
x;
}
public
int
readY()
{
return
y;
}
public

illustrates

class

the
SharedCoordinate

Once the returned coordinate has been used, it can be discarded and made available for garbage
collection.
Using synchronized blocks
If efficiency is a concern, unnecessary object creation and garbage collection should be avoided. In
the current example, this can be achieved by ensuring that any calls to readX and readY that need

95

to

see

consistent

point

public
public

public

are

encapsulated

class
SharedCoordinate(int

in

synchronized

block.

{
initY)
{
initX;
initY;
}
synchronized
void
write(int
newX,
int
newY)
{
x
=
newX;
y
=
newY;
}
public
int
readX()
{
return
x;
}
public

value

int

readY()
private

SharedCoordinate
initX,
int
x
=
y
=

{
int

return

y;

}
y;
}
...
SharedCoordinate
point1
=
new
SharedCoordinate(0,0);
synchronized
(point1)
{
SharedCoordinate
point2
=
new
SharedCoordinate(
point1. readX(), point1. readY());
x,

In this example, synchronized updates are done within the class but there is now an onus on the user
of the class to provide the synchronization on reading when needed (this is termed conditionally
thread-safe access, see Section 4.8).
Java allows a thread to acquire a lock of an object even if it has already acquired the lock. Hence, the
readX and readY methods could be made synchronized for added safety, and a thread that wishes
to read the two values as an atomic operation can safely enclose the reads in a synchronized
statement naming the object (without fear of deadlock).
Finding the locks held by a thread and a thread's state
In general, it is not possible to determine the group of locks that a thread currently holds. However, it
is possible (as of Java 1.4) for a thread to determine if it holds the lock on a particular object. This is
achieved
by
the
static
method
holdsLock
in
the
Thread
class.
package
java.lang;
public
class
Thread
extends
Object
implements
Runnable
{
...
public
static
boolean
holdsLock(Object
obj);
...
}
As of Java 1.5, it is also possible to determine the current run-time state of a thread (and, therefore,
whether it is waiting for a lock) via the getState method (also in the Thread class). This returns an
enumeration object where the literals correspond to the states identified in Section 2.6., with the
addition of a timed waiting state (that is, a waiting state with an associated timeout).
package
java.lang;
public
class
Thread
extends
Object
implements
Runnable
{
...
//
These
are
Java
1.5
extensions.
public static final enum State{BLOCKED, NEW, RUNNABLE, TERMINATED,
TIMED_WAITING,
WAITING);
public
State
getState();
...
}
Static variables
Although synchronized methods or blocks allow mutually exclusive access to data in an object, this is
not adequate if that data is static. Static data is shared between all objects created from the class.
In Java, every class has an associated Class object, and it is this object's lock that must be obtained
when accessing static data. The lock may be accessed either by labeling a static method with the

synchronized modifier or by identifying the class's Class object in a synchronized block statement.
In the latter case, the object associated with the class can be obtained by calling a class literal. Note
that the class-wide lock is not obtained when synchronizing on an object of the class. Hence to obtain
mutual exclusion over a static variable requires the following (for example):
class
StaticSharedVariable
{
...
//
The
example
shows
two
possible
ways
of
acquiring
//
a
lock
on
a
Class
object.
public
int
Read()
{
synchronized
(StaticSharedVariable.class)
{
return
shared;
}
}
public
synchronized
static
void
Write(int
I)
{
shared
=
I;
}
private
static
int
shared;
}
Obtaining the lock of a Class object does not affect the locks of any instances of the class. They are
independent.

3.2 Waiting and Notifying


To obtain condition synchronization requires further support. This comes from methods provided in
the
predefined
Object
class:
package
java.lang;
public
class
Object
{
...
//
The
following
methods
all
throw
the
unchecked
//
IllegalMonitorStateException.
public
final
void
notify();
public
final
void
notifyAll();
public
final
void
wait()
throws
InterruptedException;
public
final
void
wait(long
millis)
throws
InterruptedException;
public
final
void
wait(long
millis,
int
nanos)
throws
InterruptedException;
...
}
These methods are designed to be used only from within methods that hold the object lock (that is,
they are synchronized). If called without the lock, the exception IllegalMonitorStateException
is thrown.
The wait method always blocks the calling thread and releases the lock associated with the object. If
a thread is holding several locks (for example, in a nested monitor call), only the lock associated with
the object being waited on is released. All other locks are maintained. An optional timeout can be
used to stop the calling thread waiting indefinitely. However, this can be difficult to use, see Section
4.2
Warning The wait (0) or wait (0, 0) method calls are defined to be the same as wait
() rather than do not wait. This is slightly counterintuitive as wait (0,1) will
timeout, whereas a wait (0,0) will not. Hence, care must be taken if timeout
values are being calculated.

97

Important
note

The notify method wakes up one waiting thread; the one woken is not
defined by the Java language (however, it is defined by the RTSJ; see Section
14.2). Note that notify does not release the lock, and hence the woken
thread must still wait until it can obtain the lock before it can continue. To
wake up all waiting threads requires use of the notifyAll method; again
this does not release the lock, and all the awoken threads must wait and
contend for the lock when it becomes free. If no thread is waiting, then
notify and notifyAll have no effect.

A waiting thread can also be awoken if it is interrupted by another thread. In this case, the
InterruptedException is thrown.
Condition variables
Although it appears that Java provides the equivalent facilities to other languages supporting
monitors, there is one important difference. There are no explicit condition variables. Consequently,
an object cannot partition the waiting states, and, therefore, cannot have fine control over notification.
When a thread is awoken, it cannot necessarily assume that a notify was associated with its wait
state. For many algorithms this limitation is not a problem, as the conditions under which threads are
waiting are mutually exclusive.
For example, the bounded buffer traditionally has two condition variables: BufferNotFull and
BufferNotEmpty each associated with the corresponding buffer state. If a thread is waiting for one
condition, no other thread can be waiting for the other condition as the buffer cannot be both full and
empty at the same time. Hence, one would expect that the thread can assume that when it wakes, the
buffer is in the appropriate state.
Warning Unfortunately, this is not always the case. Java, in common with other monitor-like
approaches (for example, POSIX mutexes), makes no guarantee that a thread woken
from a wait will gain immediate access to the lock. Furthermore, a Java implementation
is allowed to generate spurious wake-ups not related to the application.

Consider a thread that is woken after waiting on the BufferNotFull condition. Another thread could
call the put method, find that the buffer has space and insert data into the buffer. When the woken
thread eventually gains access to the lock, the buffer will again be full. Hence, it is usually essential
for threads to reevaluate their conditions, as illustrated in the bounded buffer example below.
public
class
BoundedBuffer<Data>
{
public
BoundedBuffer(int
length)
{
size
=
length;
buffer
=
(Data
[]
)
new
Object
[size]
;
last
=
0;
first
=
0;
}
public
synchronized
void
put(Data
item)
throws
InterruptedException
{
while
(numberInBuffer
==
size)
wait();
last
=
(last
+
1)
%
size;
numberInBuffer++
;
buffer[last]
=
item;
notifyAll();
}
public
synchronized
Data
get()
throws
InterruptedException
{
while
(numberInBuffer
==
0)
wait();
first
=
(first
+
1)
%
size;
numberInBuffer--;
notifyAll();
return
buffer[first];
}
private
Data
buffer[];
private
int
first;
private
int
last;

private

int
numberInBuffer
private
int

0;
size;

}
Of course, if notifyAll is used to wake up threads, then it is more obvious that those threads must
always reevaluate their conditions before proceeding.
Important In general, many simple synchronization errors can be avoided in Java if
note
all wait method calls are enclosed in while loops that evaluate the waiting
condition
the notifyAll method is used to signal changes in objects' states.
This approach, while safe, is potentially inefficient as spurious wake-ups will occur.
To improve performance, the notify method may be used when
all threads are waiting for the same condition
at most one waiting thread can benefit from the state change
the JVM does not generate any wake-ups without an associated call to the
notify and notifyAll methods on the corresponding object.
These first two requirements must, of course, also be met by any subclass.
The readers-writers problem
One of the standard concurrency control problems is the readers-writers problem. In this, many
readers and many writers are attempting to access an object encapsulating a large data structure.
Readers can read concurrently, as they do not alter the data; however, writers require mutual
exclusion over the data, both from other writers and from readers. There are different variations on
this scheme; the one considered here is where preference is always given to waiting writers. Hence,
as soon as a writer is available, all new readers will be blocked until all writers have finished. Of
course, in extreme situations this may lead to starvation of readers.
Important
note
The key to solving most concurrency control problems is to surround each operation with
an entry and an exit protocol. The entry protocol determines if the conditions for the
operation to proceed are right, and if not, blocks the calling thread until they are right. The
exit protocol determines whether any blocked operations can now proceed. Data may be
needed to keep track of the current state of the requested operations. This data must be
accessed under mutual exclusion.
The solution to the readers-writers problem using standard monitors requires four monitor methods
startRead, stopRead, startWrite and stopWrite. The first two methods implement the entry
and exit protocol for the readers respectively. The second two implement the writers' protocols. The
readers
are
consequently
structured
as
follows:
startRead();
//
entry
protocol
//
Call
object
to
read
data
structure.
stopRead(); // exit protocol
Similarly,

the
writers
startWrite();
//
Call
object
stopWrite(); // exit protocol

are
entry
write
data

//
to

structured:
protocol
structure.

The code inside the monitor provides the necessary synchronization using two condition variables:
OkToRead and OkToWrite. In Java, this cannot be directly expressed as there are no explicit
condition variables. Two approaches for solving this problem are now considered. The first approach
uses a single class:

//

public
Preference
public
//

class
is
given
synchronized
throws
Wait
until
it
while(readers
>

99

ReadersWriters
{
to
waiting
writers.
void
startWrite()
InterruptedException
{
is
ok
to
write.
0
||
writing)
{
waitingWriters++;
wait();

waitingWriters--;
}
writing
=
true;
}
public
synchronized
void
stopWrite()
{
writing
=
false;
notifyAll();
}
public
synchronized
void
startRead()
throws
InterruptedException
{
//
Wait
until
it
is
ok
to
read.
while(writing
||
waitingWriters
>
0)
wait();
readers++;
}
public
synchronized
void
stopRead()
{
readers--;
if(readers
==
0)
notifyAll();
}
private
int
readers
=
0;
private
int
waitingWriters
=
0;
private
boolean
writing
=
false;

In this solution, on awaking after the wait request, a thread must reevaluate the conditions under
which it can proceed. Although this approach will allow multiple readers or a single writer, arguably it
is inefficient, as all threads are woken up every time the data becomes available. Many of these
threads, when they finally gain access to the monitor, will find that they still cannot continue and,
therefore, will have to wait again. It should also be noted that this solution is not tolerant to the
InterruptedException being thrown. A waiting writer increments the waitingWriters count
before waiting. If it is interrupted, the exception is propagated and the count is never decremented.
One
solution
to
this
problem
is
to
catch
and
propagate
the
exception.
public
synchronized
void
startWrite()
throws
InterruptedException
{
try
{
while(readers
>
0
||
writing)
{
waitingWriters++;
wait();
waitingWriters--;
}
writing
=
true;
}
catch(InterruptedException
ie)
{
waitingWriters--;
throw
ie;
}
}
The alternative solution to the InterruptedException problem is to use the finally clause:
public
synchronized
void
startWrite()
throws
InterruptedException
{
while(readers
>
0
||
writing)
{
waitingWriters++;
try
{
wait();
}
finally
{
waitingWriters--;
}
}
writing
=
true;
}

3.3 Implementing Condition Variables


An alternative solution to the readers-writers problem is to use another class to implement a simple
condition
variable.
Consider
public
class
ConditionVariable
{
public
boolean
wantToSleep
=
false;
public
boolean
wakeUp
=
false;
}

The general approach is to create instances of these variables (OkToRead and OkToWrite) inside
another class and to use block synchronization. To avoid waiting in a nested monitor call, the flag
wantToSleep is used to indicate whether the monitor wants to wait on the condition variable. The
flag wakeUp is used to control the release of the threads and to cope with spurious JVM wakeups).
The following algorithm illustrates the approach (in this instance preference is given to waiting
readers):
public
class
ReadersWriters2
{
public
void
startWrite()
throws
InterruptedException
{
synchronized(OkToWrite)
{
//
condition
variable
lock
synchronized(this)
{
//
monitor
lock
if(writing || readers > 0 || waitingReaders > 0) {
waitingWriters++;
OkToWrite.wantToSleep
=
true;
}
else
{
writing
=
true;
OkToWrite.wantToSleep
=
false;
OkToWrite.wakeUp
=
true;
OkToRead.wakeUp
=
false;
}
}
//
Give
up
monitor
lock.
if(OkToWrite.wantToSleep)
OkToWrite.wait();
while
(!OkToWrite.wakeUp)
OkToWrite.wait();
OkToWrite.wakeUp
=
false;
}
//
Give
up
OkToWrite
lock.
}
public
void
stopWrite()
{
synchronized(OkToRead) { // get locks in correct order
synchronized(OkToWrite)
{
synchronized(this)
{
if(waitingReaders
>
0)
{
writing
=
false;
readers
=
waitingReaders;
waitingReaders
=
0;
OkToRead.wakeUp
=
true;
OkToRead.notifyAll();
}
else
if(waitingWriters
>
0)
{
waitingWriters--;
OkToWrite.wakeUp
=
true;
OkToWrite.notify();
}
else
writing
=
false;
}
//
Give
up
monitor
lock.
}
//
Give
up
OkToWrite
lock.
}
//
Give
up
OkToRead
lock.
}
public
void
startRead()
throws
InterruptedException
{
synchronized(OkToRead){
synchronized(this)
{
if(writing)
{
waitingReaders++;
OkToRead.wantToSleep
=
true;
}
else
{
readers++;
OkToRead.wantToSleep
=
false;
OkToRead.wakeUp
=
true;
}
}
//
Give
up
monitor
lock.
if(OkToRead.wantToSleep)
OkToRead.wait();
while(!OkToRead.wakeUp)
OkToRead.wait();
}
//
Give
up
OkToRead
lock.
}
public
void
stopRead()
{
synchronized(OkToWrite)
{
synchronized(this)
{
readers--;

101

if(readers

==

&

waitingWriters
>
0)
{
waitingWriters--;
writing
=
true;
OkToRead.wakeUp
=
false;
OkToWrite.wakeUp
=
true;
// Transfer the lock to first waiting writer.
OkToWrite.notify();
}
}
}
}
private
int
readers
=
0;
private
int
waitingReaders
=
0;
private
int
waitingWriters
=
0;
private
boolean
writing
=
false;
private
ConditionVariable
OkToRead
=
new
ConditionVariable();
private
ConditionVariable
OkToWrite
=
new
ConditionVariable();

Every condition variable is represented by an instance of the ConditionVariable class declared


inside the class that is acting as the monitor. Conditions are evaluated while holding the monitor lock
and the lock on any condition variable that will be notified or waited on inside the monitor procedure.
To ensure that no deadlock occurs, these locks should always be obtained in the same order. The
Java language itself ensures that the locks are released in the reverse order to the one in which they
were
obtained.
In
this
case,
the
acquisition
order
is
always
OkToRead
OkToWrite
ReadersWriters2
Note that in this example no while loops have been used around the testing of the conditions. This is
because the conditions have explicitly been set so that if threads gain the lock for the first time ahead
of those waking up, they will find that they cannot proceed and will enter the wait state. However, a
while loop is still necessary to be protected against spurious JVM wake-ups.
Note also that this solution is not tolerant to the interrupted exception being thrown. As with the first
readers-writers solution given in Section 3.2, the exception must be caught before being allowed to
propagate. This is left as an exercise for the reader.
Java 1.5 and JSR 166 note
Within the Java Community Process there has been an activity [Java Community Process, JSR 166,
2002] that has proposed a set of concurrency-related utilities [Lea, 2004]. These have now been
incorporated into java.utils in Java 1.5. One of the utilities developed is a general-purpose lock
mechanism. This includes locks and condition variables that are accessed via the following interfaces.
package
java.util.concurrent.locks;
public
interface
Lock
{
public
void
lock();
// Uninterruptibly wait for the lock to be acquired.
public
void
lockInterruptibly()
throws InterruptedException;
//
As
above
but
interruptible.
public
Condition
newCondition();
// Create a new condition variable for use with the Lock.
public
boolean
tryLock();
//
Returns
true
is
lock
is
available
immediately.
public
boolean
tryLock(long
time,
TimeUnit
unit)
throws
InterruptedException;
// Returns true is lock is available within a timeout.
// See Section 4.2 for information on the TimeUnit class.
public
void
unlock();
}
package
java.
util.
concurrent.
locks;
public
interface
Condition
{
public
void
await()
throws
InterruptedException;
/*
Atomically
releases
the
associated
lock
and

causes
the
current
thread
to
wait
until
1.
another
thread
invokes
the
signal
method
*
and the current thread happens to be chosen
*
as
the
thread
to
be
awakened;
or
*
2.
another
thread
invokes
the
signalAll
method;
*
3.
another
thread
interrupt
the
thread;
or
*
4.
a
spurious
wake-up
occurs.
* When the method returns it is guaranteed to hold the
*
associated
lock.
*/
public
boolean
await(long
time,
TimeUnit
unit)
throws
InterruptedException;
public
long
awaitNanos(long
nanosTimeout)
throws
InterruptedException;
public
void
awaitUninterruptible();
//
As
for
await,
but
not
interruptible.
public
boolean
awaitUntil(java.util.Date
deadline)
throws
InterruptedException;
// As for await() but with a timeout, see Section 4.2
//
for
information
on
TimeUnit
class.
public
void
signal();
//
Wake
up
one
waiting
thread.
public
void
signalAll();
//
Wake
up
all
waiting
threads.
*

}
A new lock and associated condition variables can be created via the ReentrantLock class:
package
java.util.concurrent.locks;
public
class
ReentrantLock
implements
Lock,
java.io.Serializable
{
public
ReentrantLock();
...
public
void
lock();
public void lockInterruptibly() throws InterruptedException;
public
ConditionObject
newCondition();
// Create a new condition variable and associated it
//
with
this
lock
object.
public
boolean
tryLock();
public
boolean
tryLock(long
time,
TimeUnit
unit)
throws
InterruptedException;
public
void
unlock();
}
Where ConditionObject is an inner class definition of the ReentrantLock class that implements
the Condition interface.
Using these facilities it is possible to implement the bounded buffer using the familiar algorithm:
import
java.util.concurrent.*;
public
class
BoundedBuffer<Data>
{
public
BoundedBuffer(int
length)
{
size
=
length;
buffer
=
(Data[])
new
Object[size];
last
=
0;
first
=
0;
numberInBuffer
=
0;
}
public
void
put(Data
item)
throws
InterruptedException
{
lock.lock();
try
{
while
(numberInBuffer
==
size)
notFull.await();
last
=
(last
+
1)
%
size;
numberInBuffer++;
buffer[last]
=
item;

103

notEmpty.signal();
finally
{
lock.unlock();
}
}
public
synchronized
Data
get()
throws
InterruptedException
{
lock.lock();
try
{
while
(numberInBuffer
==
0)
notEmpty.await();
first
=
(first
+
1)
%
size;
numberInBuffer--;
notFull.signal();
return
buffer
[first];
}
finally
{
lock.unlock();
}
}
private
Data
buffer[];
private
int
first;
private
int
last;
private
int
numberInBuffer;
private
int
size;
private
Lock
lock
=
new
ReentrantLock();
private
final
Condition
notFull
=
lock.newCondition();
private
final
Condition
notEmpty
=
Lock.newCondition();
}

}
Here, although it is still necessary to have the while loops, threads are only awoken when the
condition on which they are waiting has been signalled.
The solution to the readers/writers problem is left as an exercise for the reader.

3.4 Synchronization and the Java Memory Model


The previous sections have discussed how threads can safely communicate with each other using
shared variables (and objects) encapsulated in monitors. As long as programmers ensure that all
shared variables are accessed by threads only when they hold an appropriate monitor lock, they need
not be concerned with issues such as multiprocessor implementations, compiler optimizations,
whether processors execute instructions out-of-order, and so on. However, synchronization can be
expensive, and there are times when a programmer might want to use shared variables without an
associated monitor lock. One example is the so-called double-checked locking idiom [Schmidt and
Harrison, 1997]. In this idiom, a singleton resource is to be created; this resource may or may not be
used during a particular execution of the program. Furthermore, creating the resource is an expensive
operation and should be deferred until it is required. A simple and intuitive implementation of this
requirement
is
the
following:
public
class
ResourceController
{
public
static
if
(resource

private

synchronized
Resource
getResource()
{
==
null)
resource
=
new
Resource();
return
resource;
}

static

Resource

resource

null;

The problem with this solution is that a lock is required on every access to the resource. In fact, it is
only necessary to synchronize on creation of the resource, as the resource will provide its own
synchronization when the threads use it. The double-checked locking idiom attempts to solve this with
the
following
algorithm.
public
class
ResourceController
{
public
static
Resource
getResource()
{
if(resource
==
null)
{
synchronized
(ResourceController.class)
{
if(resource == null) resource = new Resource();

return
}

private

static

Resource

resource

}
}
resource;
}
=
null;

Here, once the resource has been allocated, in theory, there is no need to execute the synchronized
statement. In order to understand whether this program functions as intended, it is necessary to have
a deeper understanding of both the relationship between Java threads and memory and the potential
optimizations that a compiler or processor may perform.
The relationship between threads and memory is defined in the Java Language Specification Chapter
17 [Gosling, Joy and Steele, 1996] and is known as the Java Memory Model (JMM). Unfortunately,
this model has come under much criticism over recent years because it is hard to understand [Pugh,
1999]; as a result it has been revamped in Java 1.5. In the JMM, each thread is considered to have
access to its own working memory as well as the main memory that is shared between all threads.
This working memory is used to hold copies of the data that resides in the shared main memory. It is
an abstraction of data held in registers or data held in local caches on a multiprocessor system. The
JVM transfers data between the main shared memory and a thread's local memory as and when
required. It is a requirement that
a thread's working memory is invalidated when the thread acquires an object's lock; that is,
inside a synchronized method or statement any initial read of a shared variable must read
the value from main memory,
a thread's working memory is written back to the main memory when the thread releases a
lock; that is, before a synchronized method or statement finishes, any variables written to
during the method or statement must be written back to main memory.
Data may be written to the main memory at other times as well, however, the programmer just cannot
tell when.
In order to give flexibility to compiler writers and JVM implementors, the JMM allows code to be
optimized and reordered as long as it maintains "as-if-serial" semantics. That is, the result of
executing the code is the same as the result that would be obtained if the code was executed
sequentially. For sequential Java programs, the programmer will not be able to detect these
optimizations and reordering. However, in concurrent systems, they will manifest themselves unless
the program is properly synchronized.
Consider again the double-checked locking algorithm. Now suppose that a compiler implements the
resource
=
new
Resource
()
statement
logically
as
follows:
tmp
=
create
memory
for
the
Resource
class
//
tmp
points
to
memory
Resource.construct(tmp)
//
runs
the
constructor
to
initialize
resource = tmp // set up resource
Now as a result of optimizations or reordering, suppose the statements are executed in the following
order
tmp
=
create
memory
for
the
Resource
class
//
tmp
points
to
memory
resource
=
tmp
Resource.construct(tmp)
// run the constructor to initialize
It is easy to see that there is a period of time when the resource reference has a value, but the
Resource object has not been initialized. It is now possible to construct an interleaving of the doublechecked locking algorithm, when one thread is in the process of creating the resource, a second
thread sees a partially created object (outside of the synchronized block) and tries to use it. It is not
possible to predict what will happen as it depends on the resource itself [Pugh 2000].
Even more insidious problems may occur if the resource is fully initialized by thread, T1, but the
initialization touches other objects. Now these objects may have been written back to memory when
T1 exits the synchronized statement, but another thread, T2, will see an initialized resource that
potentially references objects that it already has in its local memory. Unfortunately, as it has not
performed a lock operation, there is no requirement for the JVM to reload those objects, and so T2

105

sees stale data.


Important The double-checked locking algorithm illustrates that synchronized methods (and
note
statements) in Java serve a dual purpose. Not only do they enable mutual exclusive
access to a shared resource but they also ensure that data written by one thread (the
writer) becomes visible to another thread (the reader). The visibility of data written by
the writer is only guaranteed when it releases a lock that is subsequently acquired by
the reader.
Volatile fields
Java allows fields to be defined as volatile. The Java Language Specification requires that a volatile
field not be held in local memory and that all reads and writes go straight to main memory.
Furthermore, operations on volatile fields must be performed in exactly the order that a thread
requests. A further rule requires that volatile double or long variables must be read and written
atomically.
Warning Objects and arrays are accessed via references and, therefore, marking them as volatile
only applies to the references, not to the fields of the objects or the components of the
arrays. It is not possible to specify that elements of an array are volatile.
Visibility and synchronization points
The Java 1.5 Java Memory Model has changed as a result of a Java Specification Request (JSR 133
[Java Community Process, JSR133]). One outcome is that more attention has been paid to the point
at which changes made to shared data become visible to other threads. For example, threads are
synchronized in situations other than via the synchronized method (statement). In particular, the
following are considered additional synchronization points [Manson and Pugh, 2004]:
when one thread starts another - changes made by the parent thread before the start
requests are visible to the child thread when it executes;
when one thread waits for the termination of another (for example, by using the join or
isAlive methods in the Thread class) - changes made by the terminating thread before it
terminates are visible to the waiting thread;
when one thread interrupts another (see Section 3.5) - changes made by the interrupting
thread before the interrupt request are made visible to the interrupted thread when it next
tests the interrupted flag;
when threads read and write to the same volatile field - changes made by the writer thread to
shared data (before it writes to the volatile field) are made visible to a subsequent reader of
the same volatile field.
The tightening up of the definition of synchronization points have removed many of the uncertainties
of the old JMM and allows more precise semantics to be given to multithreaded Java programs.

3.5 Asynchronous Thread Control


Early versions of Java allowed one thread to affect another thread asynchronously through the
following
methods.
package
java.lang;
public
class
Thread
extends
Object
implements
Runnable
{
...
//
The
following
methods
all
throw
the
//
unchecked
SecurityException.
public
final
void
suspend();
//
DEPRECATED
public
final
void
resume();
//
DEPRECATED
public
final
void
stop();
//
DEPRECATED
public
final
void
stop(Throwable
except);//
DEPRECATED
...
}
Suspend and resume
Suspend instructs the JVM to remove the associated thread from the set of runnable threads. It is
typically called by a thread that is waiting for another thread to signal an event. When the other thread
has caused the event, it instructs the JVM to add the suspended thread to the set of runnable threads
by calling the suspended thread's resume method. Consider, for example, simple condition
synchronization using a flag. One thread, T2, sets the flag, another thread, T1, waits until the flag
is
set
and
then
clears
it.
This
would
be
represented
in
Java:

final
final
class

class

flag;
true;
false;
{
{
...
if(flag
==
down)
suspend();
flag
=
down;
...
}
}
extends
Thread
{
//
T2
FirstThread
T1;
SecondThread(FirstThread
T)
{
super();
T1
=
T;

boolean
boolean
FirstThread
public

SecondThread
public

boolean
up
down
extends
void

=
=
Thread
run()

}
public

void
flag

run()

{
...
=
up;
T1.resume();
...
}

}
Unfortunately (even ignoring those problems outlined in Section 3.4), this approach suffers from a
race condition. Thread T1 could test the flag and then the JVM could decide to preempt it and run
T2. T2 sets the flag and resumes T1. T1 is, of course, not suspended, and so the resume has
no effect. Now, when T1 next runs, it thinks the flag is down and, therefore, suspends itself.
The reason for this problem is that the flag is a shared resource that is being tested for true or false,
and a subsequent action is being performed that depends on the result of that test (the thread is
suspending itself). This testing and suspending is not an atomic operation and therefore interference
can occur from other threads. The correct way to program this interaction is to encapsulate the
variable in a class and use synchronized methods with embedded wait and notify method calls as
illustrated in Section 3.1.
The use of suspend by one thread to suspend another thread is even more dangerous, as the
suspended thread may be holding resources needed by other threads. The resulting anarchy may
lead to the system becoming deadlocked. It is for these reasons the methods are deprecated in the
current version of Java.
As already mentioned (see Section 2.4), the stop method causes the associated thread to stop its
current activity and throw a ThreadDeath exception, and similarly with the stop (Throwable
except) method, only this time the exception passed as a parameter is thrown. Again, use of these
methods is unsafe, and they have been deprecated in the current language. Consequently, they (and
suspend and resume) should not be used.
Thread interruption
Conventional Java now supports only the following methods that give a limited form of asynchronous
thread
interaction.
public
class
Thread
extends
Object
implements
Runnable
{
...
public
void
interrupt();
//
Throws
unchecked
SecurityException.
//
Send
an
interrupt
to
the
associated
thread.
public
boolean
isInterrupted();
//
Returns
true
if
associated
thread
has
been
//
interrupted,
the
interrupt
status
is
unchanged.
public
static
boolean
interrupted();
//
Returns
true
if
the
current
thread
has
been

107

//

interrupted

and

clears

the

interrupt

status.
...

}
One thread can signal an interrupt to another thread by calling the interrupt method. The result of
this depends on the current status of the interrupted thread.
If the interrupting thread does not have the appropriate security permissions, the
SecurityException is thrown in the interrupting thread.
If the interrupted thread is blocked in the wait, sleep or join methods, it is made runnable
and has the InterruptedException thrown.
If the interrupted thread is executing, a status flag is set, indicating that an interrupt is
outstanding. There is no immediate effect on the interrupted thread. Instead, the called
thread must periodically test to see if it has been "interrupted" using the isInterrupted or
the interrupted methods. If it does not test and subsequently attempts to block in the
wait, sleep or join methods, then the InterruptedException is thrown immediately.
Warning Given that there is no guarantee that an interrupted thread will be interrupted in a timely
manner, this facility is more of a synchronous notification method. It is not adequate for
asynchronous notification in real-time systems. Consequently, thread interruption is one
of the main areas that the RTSJ has addressed (see Chapter 7).

3.6 Summary
Communication and synchronization are fundamental to concurrent programming. Programming
errors in these areas are notoriously difficult to detect. Apparently working programs can suddenly
suffer from deadlock or livelock.
The Java model revolves around controlled access to shared data using a monitor-like facility. The
monitor is represented as an object with synchronized methods and statements providing mutual
exclusion. Condition synchronization is given by the wait, notify and notifyAll methods. True
monitor condition variables are not directly given by the language, however, the package
java.util.concurrent. locks provides this common locking paradigm. Therefore, they do not
have to be reimplemented by the programmer.
It is important to realize that communication via nonvolatile data outside synchronized
methods/statements is inherently unsafe unless the threads are synchronized by thread creation or by
thread termination or by thread interruption.
Another key component of the Java communication and synchronization model is asynchronous
thread control. This allows a thread to affect the progress of another thread without the threads
agreeing in advance as to when that interaction will occur. There are two aspects to this: suspending
and resuming a thread (or stopping it altogether), and interrupting a thread. The former are now
deemed to be unsafe because of their potential to cause deadlock and race conditions. The latter is
not responsive enough for real-time systems.

Chapter 4: Completing the Java Concurrency Model


Overview
Introduction and chapter structure
Chapters 2 and 3 have explored the Java thread model and discussed how threads can
communicate and synchronize. This chapter completes the review of the concurrency model by
considering
thread priorities and thread scheduling;
how threads can delay themselves;
how threads can be grouped together;
concurrency-related utilities;
interaction with processes outside the virtual machine;
all the thread-related exceptions and when they occur.
The chapter finishes by summarizing the strengths and weaknesses of the Java model and by
reviewing Bloch's thread safety levels.

4.1 Thread Priorities and Thread Scheduling


Although priorities can be given to Java threads via the Thread class, they are only used as a guide
to the underlying scheduler when allocating resources. An application, once scheduled, can explicitly
give up the processor resource by calling the yield method (again provided by the Thread class):
package
java.lang;
public
class
Thread
extends
Object
implements
Runnable
{
//
constants
public
static
final
int
MAX_PRIORITY
=
10;
public
static
final
int
MIN_PRIORITY
=
1;
public
static
final
int
NORM_PRIORITY
=
5;
//
methods
public
final
int
getPriority();
public
final
setPriority(int
newPriority);
// Throws SecurityException if the setter does not have
//
the
appropriate
security
permission.
//
Throws
IllegalArgumentException
if
newPriority
//
is
outside
the
supported
range.
public
static
void
yield();
...
}
Java allows a thread's priority to be queried and set via the getPriority and setPriority
methods. The maximum, normal and minimum priorities can be found via the MAX_PRIORITY,
NORM_PRIORITY and MIN_PRIORITY constants respectively. By default, a thread has the same
priority as its parent. If the programmer has not allocated a priority to any thread, then all threads are
given the NORM_PRIORITY (this is the priority at which the Java thread that executes the main
method runs).
Warning
From a real-time perspective, Java's scheduling and priority models are weak; in
particular
no guarantee is given that the highest priority runnable thread is always
executing;
equal priority threads may or may not be time sliced; and
where native threads are used, different Java priorities may be mapped to the
same operating system priority.
Strengthening the scheduling and priority models is a key aim of the RTSJ (see Chapter
10).

4.2 Delaying Threads


109

Clocks and delaying a thread


Java supports the notion of a wall clock. The current time can be found by calling the static method
System.currentTimeMillis in the package java.lang. This returns the number of milliseconds
since midnight, January 1, 1970 GMT. The class Date in java.util uses this method as a default
when constructing date objects. Further support for date and time arithmetic is provided by
java.util.Calendar.
A relative delay allows a thread to wait for a future time rather than busy-wait on reading the
System.currentTimeMillis method. In Java, this can be implemented by using one of the two
sleep static methods (also defined in the Thread class). Although a sleep time can be given at a
nanosecond granularity, very few systems will support this.
Important note
It is important to realize that sleep only guarantees that the thread is
released (made executable) after the period has expired. The implementation
of sleep in the JVM may use an interrupt timer (possibly in the underlying
operating system). The granularity of the timer may affect when the interrupt
occurs. The associated interrupt may also be masked for short periods. Once
the thread has been made runnable, it will then have to wait to be scheduled
for execution. The length of this waiting time will depend on the other
runnable threads in the system and their relative priorities. The granularity of
a sleep statement is illustrated in Figure 4.1.
0100090000038467010000009da1000000001610000026060f002220574d464301000000000001
00634e000000000d000000002000002869010028890100010000006c0000000000000000000000
d20100003401000000000000000000006a4000008b2a000020454d4600000100288901000c0000
00010000000000000000000000000000000005000020030000c40100001a010000000000000000
000000000000e3e306006e4e0400460000002c00000020000000454d462b014001001c00000010
0000000210c0db010000006000000060000000460000005444000048440000454d462b22400400
0c000000000000001e4009000c00000000000000244001000c0000000000000030400200100000
00040000000000803f214007000c0000000000000008400005a0430000944300000210c0db0100
00000000000000000000000000000000000001000000ffd8ffe000104a464946000102010048004
80000ffed0a2450686f746f73686f7020332e30003842494d03ed000000000010004800000001000
100480000000100013842494d040d000000000004000000783842494d03f300000000000800000
000000000003842494d040a00000000000100003842494d271000000000000a00010000000000
0000013842494d03f5000000000048002f66660001006c66660006000000000001002f666600010
0a1999a0006000000000001003200000001005a00000006000000000001003500000001002d00
0000060000000000013842494d03f80000000000700000ffffffffffffffffffffffffffffffffffffffffffff03e8000000
00ffffffffffffffffffffffffffffffffffffffffffff03e800000000ffffffffffffffffffffffffffffffffffffffffffff03e800000000ffffffffffffffff
ffffffffffffffffffffffffffff03e800003842494d04080000000000100000000100000240000002400000000
03842494d0414000000000004000000023842494d040c000000000894000000010000007000000
04a00000150000061200000087800180001ffd8ffe000104a46494600010201004800480000ffee0
00e41646f626500648000000001ffdb0084000c08080809080c09090c110b0a0b11150f0c0c0f151
8131315131318110c0c0c0c0c0c110c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c
0c0c010d0b0b0d0e0d100e0e10140e0e0e14140e0e0e0e14110c0c0c0c0c11110c0c0c0c0c0c110
c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0cffc0001108004a007003012200
021101031101ffdd00040007ffc4013f000001050101010101010000000000000003000102040506
0708090a0b0100010501010101010100000000000000010002030405060708090a0b100001040
1030204020507060805030c33010002110304211231054151611322718132061491a1b14223241
552c16233347282d14307259253f0e1f163733516a2b283264493546445c2a3743617d255e265f2
b384c3d375e3f3462794a485b495c4d4e4f4a5b5c5d5e5f55666768696a6b6c6d6e6f63747576777
8797a7b7c7d7e7f711000202010204040304050607070605350100021103213112044151617122
130532819114a1b14223c152d1f0332462e1728292435315637334f1250616a2b283072635c2d24
49354a317644555367465e2f2b384c3d375e3f34694a485b495c4d4e4f4a5b5c5d5e5f5566676869
6a6b6c6d6e6f62737475767778797a7b7c7ffda000c03010002110311003f00f51c7d68acff00247e
44442c6fe8f5ff00547e445494a4924925307ba1f58dd1b9c4444cfb5ce8fe4f0a6ab67596d74efaac
aea70325d6986c0fa403b5daefecff0061501d4b36c6bfd2c8c03b4ecddea3be93434dd3a7e6b9253
ace305a26371888e742614967e15bd4ecb1a329d8ae681fa4f41ce25af8e1bbff0035cd5a09294a0
d7cd8f6ee0768076c6a26793fca5341b2d14fab6d800ad8d049682e7693bb7359b9c929324a89eb
5d241daecaadaf9dbe9930fddcecf48fe93d4d3f9bdbbd5e494c2a76f6074874ceade395343a43854
d0e6861eed6f03544494fffd0f4ea9ce6e1b5cc6ef78ae5ad9892068d955aaea39ce706d9d3ae67b7
7170756e6cecf51d58f7b1ff00ce7e83f9b43ab31d75c7a5d98391e8bb1cb8e590cf41e3d959a5963
2d758db5dea7d0b6ba7e82937a654d1589ca3e8b5cdaff4ced3738be5dfa5fd2b99f46bf5bd4f4d25
2edea59af692de9d735c0880f73002343b990e7fe6fe6d8daff49ff6e2b78b7db7b0beca5d8e6400c7
c6e8dad749d9b9bf49ce67d254f1fa65543aa7eecab1f50026cb89dc7f3acb19bfd273dffd457fd474ff
0036ef8fb7ff0024929add4ebb2cc68ad953dc0877eb1fcd003577a91bbf37dab38e2d820330fa64e

d2e2d2621b1b1dc53f45bec62b1f6cbfa8557b0605b43e9b5d5d3f6c0d6d56b985c3d560a9f75de8f
b3d4a9f65557f83f4d0ff67e439b635dd3b07dcc2d8e5ae0e7566caacfd10f6bd95fbffe2e8fec2537b
16aa2baeb6d7554c782df5450006b5de9ff00263dbe9ec63377f83d8adaa3854db4c32ca6ac705f2
d6d130e716bb7bacf6b3c3fe82bc9294a96764558b4df7bdccc768f4daebee935c39de9ea34fdfdaa
eac8eafd67a774db1b4e564b2abf2ecaaac7aae6bded2f73835bb195073bfb5f9892987dadef15feb
bd3dcc7cbdbed3efdbfa32fabf4cef6faff0049deff00f46b4712bceaf70cbb997086ed2d66c3bb5f5377
bb6feeace8caacb183ec0d6d722056f1123ddb35dacdcffa4a567d60c4e9b5547ade5514bf26ef471
dd5079638ed0e0d768ff49ff4ff009c494e9e3868a5a1ad2c1d9aee46a8ab1f3329b5beb6b7aa0c77
96b74757bc381dc7e8b8fb5cf6b99ff6da9e1751a996bebc9ea15e4bddb456d6d7e9c6bb7f7acdef7
3ac631253ffd1f51c7fe62bfea8fc8888747f315ff547e444494a4924925357a8d5997631ab0b29b87
90f915dceac5b060ff8273ab6bbf7be9258d4e7d78d4d77e4b2fbd95b5b6dde96ddef000b2df4d966
cafd47fbf63558703b9900100992791a1fa2a4929ccad9d430b2f272fa8f53a9fd3deedd4d0fa9b4fa2
d0356fdabd4fd2feffe958ae559b87754cba9bebb2ab06eaec63dae6b9a7f398f69dae6a7c9c7a726
bf42fa597d364b6caec01cd2d20fd263fdae59d43b371c7d9abe9d8b5e350f75551aed6b1adac38fd
9dbe88a5de97e88d7fa36a4a746ccbc4aab7db6dd5b2bada5f63dce01ad6b46e7bdee27dac6b547
1722ac9dd763df5df43c34d6ea9c1c38e77b3e96e556a37653edc6cae9f48c5782c713636c0fadccf
a4ea7d3f7536cfa3eefe5ab3878b8f881d462e3b31a86068adb53431b11f9b5b36b5bb5253652492
494e7b3f6e0ea434c4fd95e9188367da0dbeddbdbecfe8fd3fe5a7a5bd65dd4b2065b710f4a861c4d
85e720380639ff00680f6fa1fceeff004bd3ff0083572a0056d01bb34fa3e0a6929fffd2f52a7f99affaa3f
229a853fccb3faa3f229a4a52492492983c0df5920920982381a1fa4a6a0e237b06e8d4e9e3a29a4
a60f8dd5cccee311c7d177d254dfd0ba43cb9cfc5638becf59d33ad9cfa8ed7e92b8f3ee67ba24f1e3
a3bdbff007e53494d7c4c0c3c26edc5a854080d813c02e7379fe558f53af6fad6c6eddeddd3c71f988
a86c27d4b017870110dfddd3fefc9292249249298551e9b609708104f254d4593b1b24131a91c152
494ff00ffd3f45c4ea35dee18f4b9c5cddcddcec7b98d9aced77e96d6b2bfea7bbf49fe0d5c8c8fde67f
9a7ff002488924a4717fef37fcd3ff934a2ff00de67f9a7ff002688924a47b6f9077334fe49ff00c9a8b9f
6b4c1227c98e23f028c924a6b9b2c96991a133fa2793c47b754fea59e3ff81bff00bd1d71f91ff2affda
9fe916ff42fe6bf9c3fd33ff477f21253d4faaff1ff00c09ffde817e53f169bf29cd2f6d6d3616d54bdd638
35bee0d6cfe95ffb8d5792494d6c6becc9a197d72d6d82436da9f53c7f5e9bbd3b6bfedb1140bfbb9
9fe69ff00c92224929135b786800b040e0031ff00549e2ff16fdc7ff2488924a7ffd93842494d0406000
0000000070005000000010100ffee000e41646f626500644000000001ffdb0084000403030303030
40303040604030406070504040507080606070606080a0809090909080a0a0c0c0c0c0c0a0c0c0
c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c010405050807080f0a0a0f140e0e0e14140e0e0e0e1
4110c0c0c0c0c11110c0c0c0c0c0c110c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c
0c0c0cffc000110800e8015e03011100021101031101ffdd0004002cffc401a200000007010101010
10000000000000000040503020601000708090a0b010002020301010101010000000000000001
0002030405060708090a0b1000020103030204020607030402060273010203110400052112314
151061361227181143291a10715b14223c152d1e1331662f0247282f12543345392a2b26373c235
442793a3b33617546474c3d2e2082683090a181984944546a4b456d355281af2e3f3c4d4e4f4657
58595a5b5c5d5e5f566768696a6b6c6d6e6f637475767778797a7b7c7d7e7f738485868788898a8
b8c8d8e8f82939495969798999a9b9c9d9e9f92a3a4a5a6a7a8a9aaabacadaeafa1100020201020
30505040506040803036d0100021103042112314105511361220671819132a1b1f014c1d1e1234
215526272f1332434438216925325a263b2c20773d235e2448317549308090a18192636451a276
4745537f2a3b3c32829d3e3f38494a4b4c4d4e4f465758595a5b5c5d5e5f5465666768696a6b6c6d
6e6f6475767778797a7b7c7d7e7f738485868788898a8b8c8d8e8f839495969798999a9b9c9d9e9f
92a3a4a5a6a7a8a9aaabacadaeafaffda000c03010002110311003f00f6df94b8f2d7f8d7fe3af75506
9b1e31f4a76c5591e2aec55d8abb15762aec55d8abb15762aec55d8abb15762a861a85935fbe962
653a8470adcbdbd7e310c8cc8af4f02c8c3e8c55138abb15762aec55d8ab4cca8393b055d8549a0
dcd062ade2aec55d8abb15762aec55d8abb15762aec55d8abb1571c55d8abb15762aec55d8abb1
5762aec55d8abb157fffd0f6af924d53cc04b723fa6efc134a7475007d036c5594e2aec55d8abb1576
2aec55d8abb15762aec55d8abb15762a97ae8d689aecbe6005febd35a4760eb51e9fa50c924aa40
a5795643535c5530c55d8abb15762aec5501ac69bfa5ac1ac7d5f479490c9ea01ca9e84c92d2951
d78d31547e2aec55d8abb15762aec55d8abb154bf4bd3e6b1975179645717976d731850471468e
340a6bdfe0ae2a9862aec55d8abb15762aec55d8aa57e628354b9d226874690c5a833c263756f4c
855991a4f8bdd030c5534c55d8abb15762aec55d8abffd1f6a7919b945af9f0d73511e1d25a62acab
15762aec55d8abb15762aec55d8abb15762aec55d8abb156310df5e37e61de6986673a7c7a2da5
ca5bd7e0134975728ce07895451f462ac9f15762aec55d8abb154afcc17b71a7698d756c40984d6d
182403f0cb711c6db1ff00258e2a9a62aec55d8abb15762aec55d8abb154af46d427bf935449c002c
ef64b58b88a563448d813b9a9f8b154d315762aec55d8abb15762aec552cf306acda26952ea4b10
9da378631116e0099e648bad0f4e75c5533c55d8abb15762aec55d8abfffd2f697913fb9d7cf8ebba
97fc9ea62acb315762aec55d8abb15762aec55d8abb15762aec55d8abb15420b1b05d49f5258906
a8f025bc937fbb0dba3b3aa9f60ccc462a8bc55d8abb15762aec550d7f6306a56c6d6e397a45e297
e03c4f286459577ff594571544e2aec55d8abb15762aec55d8abb1541d869b6fa735db40589bdb87
bb9791069248aaa69b74f87154662aec55d8abb15762aec55d8aa57e62d25f5bd265d3639442f24

111

90482461c80f426497a023af0a62a9a62aec55d8abb15762aec55ffd3f69f913fb8d7ff00edbba97fc9
ec5595e2aec55d8abb15762aec55d8abb15762aec55d8abb15762af2df3d379a63d53ced2792472
f37af9350e849453fe9e26be30d03fc24f3a5397c35ebb62ac36f3cd7a6f97749d3756f2522dc6af63
e57d5b50bcbdbd96ea59e2bbb48edc88b51b7a86796699b8fef592547593856a462a8df38fe70f99
3cabaa5d6916d359ea3716da75fc8d335a4d0a0bc834a3a95ab04595cba4cc3d2d9d41a1442d22b
62aa5ad7e70f9bf457d5e29bea6f1e9ebae436b79f539f84f79a7d8585f59c7c5256de43713c7c435
5d62e49c595f154af58fcd1d5fc8d6be6bbdd1192f6593cc7a8dc5adb5cc534d1cd05bc1a6178e391
5be0004f249c154b371765e2b1ca7154eeff00cf9e63bcb68f558eeac67bb9e4f355a68bf55b5944d
6efa425dadbc8a4ceeb234ab144c55a3e2dcbe0fb43154747e74f36dd7e87d25dfeb763aa58e8bac
5b6bd6f034719b759a186fa195c494f59e678cc7c453d295be13e9b1c55ecf8abb15762aec55d8ab
b15762aec5525f2f5ddc5dbeaff005872e20d46682107f663454a01edb938aa758abb15762aec55d
8abb15762a9379ab55b9d17467d42d0219d6e2d2102404af1b8ba8a16d811bf1734f7c5539c55d8
abb15762aec55d8abfffd4f697908d6df5f3ff006bdd4ff09c8c559662aec55d8abb15762aec55d8abb
15762aec55d8abb15762a855bbb06d464b159233a9a42934b08a7aa207775463df8965703dc1c5
525b4f3b6857b7ba85ada9774d2ee9ecf51bc0abf5685e3b38efb9b49ca850c72ad1857e2f84d298
aa0745fcccf2debd7cb61a72dc3b9863bb9652b1fa3159dc46f2c17123090f18a511b2ab767f85c21
2315652d7f6319e2d7312b70328064507d303916ebd29bd7155c2f2ccc8912cf1996501a240ebc9d
482c0a8ad48a027155a6fac02b39b984289040cdcd6826ad02135fb55fd9eb8aa10e81a38bdbcd4
a683d4babf300b892692491696c4189515d8ac6a1872e281417f88d5b154d315762aec55d8abb15
762aec55d8aa1ed2c6d6c7d736c9c0dcccd7136e5b94b25391dc9a741b0c55887e69799fcd1e4df2
b5ff0099fcbb676179068f6775a86a31ea124d1964b68f9ac717a2adf139afc4df0ad3df1549ecbf323
5cd1bcd2de59f3fda5a5b7ab0d8c9657fa425ddcc05b52bb92d21f58bc63d10d2048d79fed9fe5c55
16df9dff0097515bd95d5cea135ac1a8dc1b5b36b9b5b880c8c265b62e16445631895c465c0a06af
ecab10aa6337e6679718de59d8c92cdae5b9090696d6f32dc4ad2aced1b08f873f4d85b4adcb8fd8
8d9bf9792a9af9235f9bcd5e4df2ff0099ee614b7b8d674eb4d4258232c5237ba85652aa5803405a9
bef8aa7d8abb15406b1a4db6b76274fbb2eb019609c98c856e76d324e9b9076e482bed8aa3f1576
2aec55d8abb15762afffd5f69790978db6bb435075dd50fcab70d8ab2cc55d8abb15762aec55d8ab
b15762aec55d8abb15762aec55e77e6ff2adff009af53f36e896d753e9435af2c43a65beb11212229
a49ef412a415a950ea594303c5bb5715632bf94de6b97561ac4cda25bbcb797b7d3d9d9a4e90a9b
bd023d1c4684a6ea5e212b5547c3f0fc47e2c556db7e4f799ed2d5cdadd69705f2695e5ab18c2a4d
e84f3797659a49a39c2aa37a17225a7c279a322b10ff0067156c7e4b6a56c7569b4c4d1aca69a0d1
46970c50cfe846da45cc9712db495264104c24f4f923f2fdae1feebc55487e496af179806b36526956
1195d0d224b459d24b45d2e7bf9ae440ee1daaff005da212472e1f180adc555563f941e629b4cd12
dafce8579369d03e95aadb3c1731db6a764d025badcdc7070c6e1552a14f24fde48bea6e1c2af49f3
34660f2e242cdc9a39f4f42c05012b7700ad2a69f7e2ac8715762aec55d8abb15762aec55d8ab1bf2
7b721aeee481ac5e0153ca9baedbf4f962a8df347972c3cdde5dd4bcb1aa3ca9a6ead6ef69766ddfd
397d2947160ad434246d5c5529d5bf2f747d6af86a37b7579f5bf474e81dd2555e6ba3de7d7edc91
c29cbd6f89e9f687c3f671542d8fe5679774b3a5be9d73a85acda547716e92c374d1bcf6d7771f5b9
219ca81c97d5f8948e2ebf12ab7166aaa8183f263cad6d7f1ead6f79a9c7aac262305e8baacc8b09b
aa2d4a1e6196f2647f539f352bcbe3456c5599f97b43b2f2ce83a6f9774d321d3b4ab68acad3d6732
49e8dba08d0339dd88006f8aa658abb1563be78bbbab1f2ec97165335bce2ef4f4f550f16092df411
b8afbab107156458abb15762aec55d8abb157ffd6f68f905b95aebc7fed7daa8ff81b961fc31565b8a
a0b56d5ac344b19352d4a4315a4451599237998b4ae2350a912b3312cc000aa715497cbbf987e5
0f367a67cbba81bf4998ac72c76f7023247aa09e6d185a030c8a5ab40ebc3edd171564f8abb15762
aec5527d4bcd1a2e911492dfcd247e9ccd6de98b79de5925487eb0c228d10b4b488172630e28adf
cad8aa63657906a16705f5a9636d731acd11911e27e0e390e4920565343f6580618aa8596afa76a
179a8585a4dea5de972a417f1716531c9244b328f88006a8ead55a8c551d8abb15762ac27f30bcd
d3e87e5cf380d219a0d7f43f2f5c6b96d72f1ac902b2c771e96cc7e221e03c948a71c558ce97f9d33
dc5c5cf96e6f2edd5c79d74db68af2ef4cb6916459ed5edadee3d58250aa85cfd6153d37f4f8bfda70
9c6465565cfe77b68fa55c6adae68eb1db35debd67a6182e0b9b99742b868d2dd47a7533dc451cb
2a22d7fba741fb38aa783f3674fb89796976126a76091c37b35eda4aaf18d2ee2e24b65bc52400c8
0c32bb0e43f749c939b32a62a815fce196e2d34cbbb0f2ddccd0eb8d1368b3cb3c5043736d3e9b73
a92ca19816144b66471c3edba70671cb8aaf40d035787cc1a1697af5b46f15bea96905f431494e68
9731acaaad4245406a1a62a8abbbab6b383d7bc711c1c913936e3948e1107d2cc062aaf8abb1576
2aec55d8abb15762aec550f6b259c9eb7d4da36e12b25c7a5c769853906e3fb5e35df15613f99be6
cd77cb2ba441a2982d7f4a497103ea97b05c5cdac13c703496e922db23b012b8a54d2bc782b7a8e
98ab13d5ff00333cd9a2eabaf59dd08e4b4856de5d12e63b1b931bc2f7305bea25ca2c8d5d3fd42e
7e0aca8dcb8fee25c555f48f3ff9bef2f9f47bdbbb55d4e1b15bbd3ded74dbc7b6d5d645ba05a0924e
010c66388376fb4d4f4e58b8aa95687f99fe6ed6ee74bbabb94da69f1cf626f561d3e651235d797a7
bc96021eacc16f23f4d787c5cbf724f3c558bdef9d7cf1e64f31f97f5ab19859dde8cbaaadade3d8dc3
5adc8bad12c6fa28a6855d14334ef2c294762be9b202d2ab362a9fc5e6ff003668b7baec7a6c56fa4
deeb3ac3dc4926a715dde59db5f2e8ba54a6cff00d19198fa92b5c7c4bc793c4ea9fbcf87157bfc6c5
915985188048dc6e47bef8aa8df5959ea16e6d6fa259ad8b47218dfecf389d6443f432823154462ae
c55d8abb15762aec55ffd7f697907fde2d6faffc77756ebff319262acb31569aa1490bc88dc2edb9fa7
15785f97ff2c7ce1a6f917c9da0dd5b226ada2dd6befa83417a562fabeab06a2b0a82bc7992f75031

aafeeca3329a85e4aa53a07e4ef9e7478f4a7b3a596ab651692a6fcdfcb3f09d3499ecf52942b31e4
6499a173de50819a8c8b8ab2ef267913ccba3fe5cebfa1dedacd67ae6ad13078a3d61ae49b96b64
8259609beaf1a5b872bc95446d56fdecbf1c8f8ab08b6fcbbf32dd79a468b78ab0f98acb4eb0bad3f5
bb39a6b7b7b1316b5792acc2db9bc4666b72a26862ac553e97c3030a2a8dd13f2c7f3234fd1ed62d
62c61d6a57ba09e69d32e35997d1d5a9672db1be89c5bafa0dcd92531953231f89a4f5228cb2a9e
b7e57eab3799ec751bfd2e2bcd2ec7cc575ab44b2ddb4ee96971a047a7d22699b983f5a4f529c86d
fbcfb7f0e2a90597e54fe68245a4c72dd345a9e9be5db6b0d2b584d5a451a7ea7169f3da4deac421
77b9492475943190027e39179c31d557a5fe5b796b55d02ebcc375a8695069106ab3595c5bdadb
dd1bba3c3630db4dc894503e38b6a13cc7c6dc58b62acfb15762aec558e4ba0b5e79a754bcbfb78
ee344d4348b6d3648a50ae92949ae9a547435aa949541aec6b8aa026f217e5b32e97e5cb9d22c1
dec246d4f4ab2968d3ab43c627957912ec006447a92bc78237c3c462a9b5af93bcaf64656b5d26da
332dfb6b2f48c1ff00722ea55ae0035e32104eeb4eade271540db795ff002ff5e7d175eb1d3b4ebefd
048f6da15f5b2c6e96d1c67d268a268fe1e28c94e1d11d3a065c556c1f963e40b5448ed7cbf696f1c
7733dfc690a18d56e6ea2782570108a728e59129f642bb71a7238aa716c340f2bd9695a140f069b6
4047a768f66ce1037a519290c21cd58aa21a28a9e2bed8aa9f99ede7bad20c36d1b4b2fd66cdf828
a9e31dd44ec7e85049c5538c55d8abb15762aec55d8abb15762ac7fcab14f17e9af5e368cbeab74f
1f252bc90f1e2c2bd411df1559e66f3bf97fc9f79a25a6bf3fd4e3d7ae65b3b5bd94a476b14b05b4b7
67d692475080a42e14eff001517be2a8dbff34f96b4ab6b9bbd4757b3b6b7b38e69aea49278d4471
db2092666dea382b2b37f2865f1c5552e7cc3a0d95a417f7baa5a5b58dd2092dae679e38a291180
2191998061461b8f1c55abff0031f97f4b176752d52d2d7ea1035e5f2cd3c68d0db4601696405aaa8
011f11db1547c13c3730c7736d22cb6f32ac914a84323a38aab291b1041db1554c55d8ab16fcc425
7caec41a1fafe942a36eba95b0c5594e2aec55d8abb15762aec55ffd0f68f900d6cb5beb4fd3dabd2b
ed7927f1c5596e2ac53f32fccba8f93fc8fabf9974a8a39eff4e8e396286546955c1991594223212c54
9e346fb54c5526b5fce3f2e5c5f36952586a569a9c6b7824b5ba8238dd6e74f92dd1ed6bea95333a
dd412c4aac449149cc36cd4551de70fccfd13c917c6cf58b0d4a58a3b45d46eefacedbd7b6b7b4370
b6ef248c181a46cead20556611fc742aad455036bf9c9e5fbcb69eea2d2f5655853509d524b54479
6df4697d1bd9a2532d592192887f69d997d357ae2aa5aafe77f9374b6b9648afb51b2b5b4b8bf7be
d3e05b884c36715b4d291470df66ee1e35501f97c1cb8b62aa9ac7e73796fcbd0dc49aee9fa9e9f2d
b58ddea4f693dba7d60c5a7db7d6e7558d643c8ac40b547eec90539f3f871546687f9a5a2eb9adc1
a0ae9ba9d8de4f34b68af7b6e91c42e62b44bef48b2c8ff135bc8b2ad071a7c2ccb27c18ab39c55d8
abb15762aec558879bb53f31dc5a798bcbfe4f8d13cd10690b7ba4dc4aeaa8d7372f3c689f1295520
c3b3b725ab7c4b45dd5609abe9fe78bb7d3751f2c697ab5a6a6da6eade836b13dbcd3dac9753e9cf
f57695669023491dbce2125a4547e259d0502aaa9a759fe630d778dfc3ad49e4abfb995f458e2bb8
23d4b4e3fe8ae9f5e679793c24adcf105a76546e1221664e0a1610000026060f002220574d464301
000000000001000000000000000d000000002000002849010028890100ab7e4a699e71d0bf49e9
9e69d2aeed6d65bcd4af74698c882d62b5bad4ae6710cd0accff00bf3ea7a9ea80caf1baa7c0d132e
2a91d95bfe6f4fafb41a95b6b96de5c9f50b395f85ddb3491dbaaea91ddafad1cdccab37d4d978244
38f1e11a717e4aadd2349fcd5d5756f291f376997d712697a9e95a90bb69ed85b41651e8af6b742e
11651cae45ec92b928afca37431b5014c55ee7a96a10e996a6ee75668c491454400b729e55897a
91b55c571545e2aec55d8abb15762aec55d8abb1541e9daa5a6a82e8da1622cee24b39b9295fde
c2406a57a8dfae2ac5fcfbe451e72bdf2cdeb7d5654f2f5edc5ebd8ea100b9b6b95b9b0b9b1e2ca76f
87eb1ea7435e3c7e1af20ab063f919aadbe9d79e5fb0d72dce873dbdd4313dddb4935f73bcd062d1
4b3cbea804298565fb3560dc3f6431559479d7f2eaefce76fa08bb6b0fac69567a8dbceb2c0d245eb
6a360d681a10c4955466e543b95db156333fe45dfde68d7ba1de6b113c530bc9edafc42df5c13ea1
a40d32486672c7d4b70c4cd4af221618ffdd41caaf64b24b88ecede3baf4feb291a2cde88222e6000
7806df8d7a571557c55d8aa1afae6cad2dfd7d4248e2b6e71a73969c3d4924548c6fdcbb285ff2b15
5779238e9ea3aa72e9c8815a7cf1569258a4da3915c800fc241d8f43b7cb155f8ab44850598d00dc
93d31570218020d41dc11d3156f157fffd1f69f901b969bab1a508d775907e8d4261fab156578aa5d
af687a6f99747bbd0b578ccba75ea7a73a2bb46d404302ac8410410082315638fe41b66d634a9bf7
2fa469b78fadbb4ab23ea336b2d1b40b33cfcc29411395e3c2bf0c6a0845e38abbcc1e438fccde6a8
354d59d65f2fc7a6c9a7cfa72bcb1b4ef25cc571fbde042bc5fb95050f5f8bf64b2b2ae1f95be531690
59f0bae36cfa8b4530ba9566f4f5990cd7b0975604c5339e453f6485e1c78ae2ac663fc97fad6b7e61
9b58d4cb797b5d47b6974fb033d9f3b1f4d6286dd944ad1a08111551e25466e35f83930c553ad7ff0
0267c91e66bdd4350d592f9ee7548a582fbd3bfba8a3916e2c7f46ca4c492040cf6f48d982d760df6
b154cacbf2e3cbd61abc3ae40f786fa0bb6d453d4ba91e3fac3d9269e58a13423d08d538f4db97da
df1565d8abb15762aec55d8aa43a80b1f2fdf6ade74d5af52d749834d892f1e4042c3158bdc4f24ac
d53b7197a53f671563f37e69e8f6bafc561763eafa24da57e9487509bd48e669bebab64b6e2068c3
167761e9d0d5ff6569be2a8b6fcd8fcbf4168edad4612fa037503fa7311e988e49a8f44f81ca432304
7a39e0df0e2a8887f31bca775a2eb5af59dd493d96816c6fb528c5bcd1dc2dbfa06e52458a544765
92305a3651c5ff64ec7154158fe69f95ee904f35cb44b39b14b4b216f74f7deaea368d79145242b11
21da347650a5becee796d8aab43f9a9e449ec9f508b5426d96282e63ac1708f35bdd4724d14b0a3
461a44658a43c9030fddc9fca7154e35541e60d0619349749e1ba7b2bbb7941a23c0b3c53f207dd
05462a9d62aec55d8abb15762aec55d8abb1548bcb3a7dde9ebab0bb8c466eb53baba80060dca1

113

958156dba569d31541f9c7ce327961ec6cac74d6d5758d492ee4b2b159a3b632fd4a1f59d03cbf0f2
6d82d76eaec422362ac7ae3f36459ea7ade9779a50826d225d3e288b5d21fac0d66786ded5d68b4
0bce52b37c47d36555f8fd44c5552dff0033751b86bf85bcbdf57bcd1608e6d76ce6be804d6feb25cb
a1409cbd452205dfe16fde538738a445552cd3ff00382f35dd42d2c34dd216149a4b759e596e4171
1de682dad270a464075204479557f6f155da37e6ddd4c3428a6d1a69ac750b7d15a4d49ee623706
4d72ce4b88bf731c4aaccad170928635f8b920fd90ab22fcbaf3e5cf9f6cae7516d1e4d32c6316c6da
6924327aad7102cd246418d38bc0cde8ca3e21eaab0076c559ae2ac6fcf569757de5d6b7b385e79
cdee9927a71a966e116a16f23b50765552c7d862ac57f3cbcaf6daef922f6e21d28ea5af426d61b13
140d73711c4f7f6d24fe9aaab11548eae547d95c558ecda3eb1e59fcd4d4f54f29594fa7683770796
ace786d6c0359cf14b77aa3de357d2255a159a391b815e3cd79ff2e2aa9a56b7f9a827f2e41a95e5f
08f50b2b1d4aeae1b44f5b95e09785ee9d208442b6c3d350c924c54f291d848c23f4f154a6fbcddf9
99ac5bdd68f75a46a69e5ed4ed264b8bd934c7fae4325c692ed1c062f4789e5741a39288eb1b858
bd4e0eaf8abd83c810dcdb7913cb16d790c96d7906936315c5bce863963963b64575756dc302082
0e2ac8b157ffd2f4a6a9af7e6ce89e57d4a4fcaaf295879a3536d735be6ba86a22c4474d46e3a46ca
a24ff0091d1e2af95e7fcebff009cc493f35fc9ba4f9fb49bbf2b797b50f30d85b3e9f6b63f52b0b857b9
4536e6f8a4ecc8c0d1a92b547638abef31a879babbe876607fdb45baff00d22e2ab96ffcd847c5a2d
a03eda831ff00b1518ab85ff9afbe8b683c7fdc831ffb15c55df5ff003677d16d3fee20dd3fe91715685f
f9babbe8966078fe917ffb24c557adf79a4d3968f6a3c697ec7fec5862aefaf79abfeacd69ff007106ff0
0b25c55afaf79affeacd695ff00b6837fd92e2aefaf79b2bff1c6b3a7fdb41ffec971570bef366f5d16cfd
bfdc83ffd92e2af3afcf8f32fe60683f93fe71d6346b38f4cd56cf4e925b4bfb3be692e619415e2d1afd5
97937b57157cf1f937f9b3ff0039d3acfa2b7fe46875dd25d51bebfe61b75d05fd3f1590343caa3b882
4c55f5bd95d6bde619750d03cc11268f712693692cf0584cb77e84f7725cc727a73cb0a070044bf6a
1e3e2a6b8aa403f227ca51c76b15adddfd9a69f0ac5a6adac9144b68f1ea035249205111081251c5
62a7a022fdd7a5c3154cb57fcb55961d76ef4cd56f4eabace9af65750dc4c82d6eae1209228659b8c
25908f528de8f042aabfbb3c062aafa17e5dd95b795efb47d6a596e750d734b8749d6ae848bc8c10
db35b2c713247180a81dca370e5562cd8aa16cbf29347b1beb4d423d575092e2ce5d3ee10c8d6e4
349a559c963096e300ad6395b98eed4238f4c55420fc9ad1ad65d32ead35ad52db50d1ad6c2c34e
bc89ed8491dbe989731a2906dca3fa89772acbcd1837c2ca15915b15669a95d3e87a4a49156e1a2
7b6b706662ccc259a384b33752d46afb9c5534c55d8abb15762aec55d8abb15762a94e91ae47aa4
5a8cd2462da3d3af2e2c9d9dc1045b100b9341407c3b62af34f30fe6c7fce3bf9afcc5a2790f58d6b4
5f346bf75a8469a4699122eade9df00ca1b944b2244402c0b332ec4ae2acfaffc83e4ad5411a9e816
3781a3ba8184f02480c57f22cd708790351248aaec3f9955baa8c557dbf917c99697b63a8db797f4f
86ff4db6361617496d12cb0da1afee9182d427c4df0ff0094dfccd8aa1ad3f2dbc816102db58f96b4e
b581258ee1520b68e2a4d046f0c6ff081f12c723a29ec8c57a62ae7fcbaf267d596dedf48b7b53125
ba5acd022ac901b28de2b668ea08060576116df0571550fcbffcbbd27f2f34f96c74b7e626f4c48522
8ad6222152a84436ea9186a1f89f8f26dbb2ae2a937fcaff00fc9c8fcd3a9792afbcdf61a6799f4ab93
6579a7ea527d45bd6001a23dc044706bb1466c559cea1acd869da7a6a92c9ea594925bc51c90d2
40c6ee648232083420b48bbf862adea9ade8fa1c714dac5f41630cd22c51497122c6acee42815623
b9031540c7e74f29cbf5bf4b59b47361ea0bd0b2ab188c331b770e074225063a75e7f0e2adcfe73f2
95b450cf71add94705cdb1bfb795ae230925aaa34a6556ad0a70467a8fd9566e8ad8aa0f51fcc3f27
69b771e9b36af6c7549daea2b7b4f5154b4d636cb773233b5123e313a393232af1756e871544d87
9d7cada85d5b69916b163fa6ae614b85d316ea096e02bc0b71f651dabfbb60f51b327c6bf0ef8aaa4
1e70f2add59dd6a16dacd9cd65632a417b3473a3ac12c8c15124a13c4b165a06eb518abffd3f69f90
3fe397aa7fdb775bff00ba94f8ab2a6557147018541a115dc1a83f41c55bc55d8abb15762aec55d8a
bb15762aec55d8ab44061422a3c0e2ade2a828f4c823d56e358566facdcdbc36b22923804b7795d
4814ad6b2b577f0c551b8abb15762aec55d8aa0757d3bf4a591b3f53d2acb04bce9cbfb89925a52a
3af0a62a8ec55d8abb15762aec55d8abb15762af2bf367e41f913f312c6fac3cff0066fa924f7d757b6
8f6d777766d125d306e348654563b6fc95862af14d13fe701fca7e4ff00cc6d0bcf1e55f32ddfe8bd27
508ef26d0f52884c5e15ad512e61689948afc2591bdce2afa85bc99e5c624b5a39276a9b8b83b56b
fefcc5560f2479600205936fd7f7f3ff00d54c556ff813cad403ea4d41b53eb171ff00553156ff00c0de5
7a71fa9bd3fe622e3feaa62ad8f24796402a2cdc03d697171bffc94c55f30f983fe7023ca9e73fcc8d7
7cf1e68f335dae95aadf35d43a1e9d12c4c90f10023dcced2924d37a463db157b37967f213c8df969
a03e95f975a74b6b34d736124f25cdedcdc978ed6f219df69a4645a2a12022ae2ac87ce9f9769e6d
d7745d7d2f63b79b4a82f2c67b4bbb38f50b5b8b4d40c0d20f4a5650b2ab5ba18e4f880f895e3756c
5522d5ff00276eb50d4755d56d3cc1f55b9d5aead354b881ecd67b43a8e9d2d2195a132af246b6a5
bcb1f21cd956e0324bd55445a7e524964758b4b7d6638f43d76d0457da6c7a7c28b0defd49ac4cd6
8c1a90446320fa015be204fabfbc9392a829ff0026750bcbf5d56f7cc8b2dfb35e9982d888e064d434
7b7d219553d7247116c92a92cdb965e94a2aa4ff009417ba469cf71a7ddc5abdfda2433c1a7cb02c
0b77259797a5d0d21790c8422ca24f519883c7ec7d9f8b156f4bf2779aad3f2d35df2fb45e86af7d04
1147791c7fe9b70cb0456ce658cdfb2fc3144b129174bf02f4fe755fffd4f69f903fe397aa7fdb735aff0
0ba94f8ab2bc55d8abb15762aec55d8abb15762aec55d8abb15762aec55e61e7bfcc1d73c8fadea5
3e9be53d73ce31269d652ad8686b04a61769aec3332cb346d5608a3f769231e3d3157c89e75ff00
9cf9fcd383cc16fe5fd2fc831f94da4ba8e278f5b4b89f50313385a08dc5b22b107b8618abedc5f3b5f
b2d7fc1daf035a053158d48f1ff007b29f8e2ab9fce97ea405f286baf5152563b2017d8f2bb1f857155
87cf17e3fe98cd7c8a915f4ac7b7fd1e62af94bf3cff00e732bf317f2a3f36a2f2ce99e548e7d066d3ed

a71a46af1fa5a8b4f33c8a5a296d279978b7101432b1ebf0e2af5ffcbbff009c84f34fe6069904f7bf95f
e62f2a3cb2dac4fa9ea1145fa30196e228de8f33413302ae78b2c0d8abdf715762aec55d8abb1576
2aec55d8aa4be5cd5aeb565d51ae820367a95d5943c01158a06016b526a7c7154eb15762aec55d
8abb15762aec552fd67523a55a47742312f3b9b5b6e24f1a7d6ae238395687a73ae2a9079b3f357f
2d7c8b1c8fe6ef35e97a43c4a19e0b9bb896e287a71843191abfe4a9c5524fcb0fcf6fcbafce0bed7a
d3c857d2ea16de5e36cb77a8490b5bdbc8d77eaf110fabc5da9e9372251474a57157a3fad0ffbf17f
e0862af2ef3cff00ce457e537e5af9c20f2579eb5a3a2ea975651ea36d713412c968f0cb2c9101eac2
afc58344d50e14529be2ace7cbde71f29f9b60373e58d72c3588569cdac6e62b8e24f6611b12a7d9
b7c553bc55ffd5f6b790d02697a950d796b7acb1f99d467db156518abb15762aec55d8abb15762ae
c55d8abb15762aec55d8aa1d2d2d12f65be48c0bd9a28e1964a9e4d144cec808f005dfefc550fab68
3a1ebf00b5d774db5d4ed810c21bc823b84041a82048ac0107be2a9862aec55d8aa5dfa0342fd2af
aefe8cb53adc8891bea4608cdd18e2af0532f1e545a9a0aed8aabea16106a56df55b9e5e97a914df
01a1e504ab2aefe1c9057154562aec55d8abb15762aec55d8abb154bf49d22df485bc5b777717b7
735f49ce86925c1e4c0500d876c5530c55d8abb15762aec55d8abb154bb59d34eab6915b09045c2
e6d6e4b11caa2d6e126e34a8fb5c298abc9fcf9ff0038a1f917f9852dcdeeabe588f4fd5aecd67d4b48
91ec2763b54b2c67d26269bf38db1541fe49ff00ce2d7927f24ee7cc674db9935eb0d75ed9e08357
820965b416dead42caaa0372f53f917ecf7c55eb7fe0ff0029914fd05a7d0ee7fd161eff00ec7157877
e69ff00ce1cfe5d7e6d79eed3cdfae5e5d699a7da5845a7fe84d1e382d2391a296593d5794a39a9f5
38d028fb3f6b15673f975ff38e9f939f9597316a3e4ef2bc16facc2851756b9792eef37ea449333f127
bf00b8abd4b157fffd6f6cf922bfa2afabdf57d5c8f97e919f1564b8abb15762aec55d8abb15762aec5
5d8abb15762aec55d8ab1eb33ff3bc6ae3c34cd3bf19ef7156438abb15762aec55d8aa43e72babeb
3d025b8d317d4be17164b045ea9803b3ddc2bc1a40afc5581e2c78b7c27a62af967f3cff00393fe73
0bcae2ee1f2b7e5a5be9fa385e51eb9a696f324c882b56a22c610ed5fde5b507bf5c5597ffce2bfe60
7e7079cbf2a22d73ccf671ebdac3ea37b14f7da8defe8fb81e9b8023f423b36550bd062af6bfd2df98
1ff0052c69fff007187ff00b21c55afd2df983dbcb1a7ff00dc61ff00ec871577e97fcc1a57fc2fa7d7c3f4
c3ff00d90e2aefd2ff00983ff52bd87fdc61bfec8b15789ffce54fe617e717933f2adb5bf2bd8a683ac26
a7651457da75e0d42722466063f424b350eadd0e2ac4ff23bf39ffe72ff00ccc2d60f357e57c3a9693c
3949addfb3796a67534a3d2557573ed1db8afb62afa73c8fa96a9aa586a336b0385ec5a9de5b9803
faab12c52516357e29c957a06e22b8ab27c55d8abb15762aec55d8abb154af5ed467d32ce1b8b70
acf25e59db10e091c2e6e63858ec46e15cd3df154d315762aec55d8abb15762afffd7f6df92902695
774350faaeacfd6b4e5a84e698ab23c55d8abb15762aec55d8abb15762aec55d8abb15762aec554
166b43792c08e86f9238de6414f5044e5c216efc4957e3fecb1557c55d8abb15762aec5546eadeda
e62f4aed15e1e71bf17e9ce375743f30c011ef8aab62a82b5d5349bbbbbab0b2bcb79afecc8faedac
52234d0b374f5114d56bdb90df1546e2aec55d8abb15688069500d0d457b1c55bc5507a769767a5
a5c259a145bab89af26ab16acd70dcdcef5a024f4c55198abb15762aec55d8abb15762a83d4f4e8b
54b78ede676458e7b7b905295e56d324ca37076250038aa3315762aec55d8abb15762afffd0f6df9
27fe39174294a6abab57fee233e2ac8f15762aec55d8abb15762aec55d8abb15762aec55d8abb15
48ad609d7ce3aa5cb46c2de4d3ac238e620f06749aecb283d090196a3dc62a9ee2aec55d8abb157
62a9179babfa1d282bfe9da77fd47418aa7b8abc3ef3ca5e74ff958de6fd5ed2db50b2d135ad5bcbef
f005dd3ee21825b8b0b1d3e6b7bb1f0c9ea050eca3a2bfed47d2b8aa510681f9c56ab6f7f3c7aabde
5edae816fe626b7bcb76b936d6b6d7915d8b70f7091adc0b86b79646529ea47ea71766f83154de6f
29fe645d5cc8f3ea7e6201753d220464d42da1e5a49b4b74bf91920658c3faa9216e2bcf9b130fc2d
8aa4df9872fe61f967cb1aa5d0bbd62c6cf4c17f02eaff5d89da65bad76c5b4fe04cace5feaaf345c9d
178ee8c7ece2a9d43e57fcc482eef6717babf196c751b6d06ea4b917525a4525ec32c0b7711b88fd
59387a9470deb7a3fbbf556555c55eade536d69bcb5a5ff88adc5aeb82dd05fc0b31b95599451a92
b00cc0f51cbe2fe6f8b154e71562fe47767b7d6f933371d6f5251cc92401707615ede18ab28c55d8a
bb15762aec55d8abb1549bccd737169616f2dac8d148d7fa7c4ccbd4c72de448ebf265620e2a9ce2
aec55d8abb15762aec55fffd1f6e792c93a4dc9229fee5355a1a52a3f484f438ab22c55d8abb15762
aec55d8abb15762aec55d8abb15762aec550b1ea16d26a33e96a4fd6ede18ae255a6c239da454df
e71362a8ac55d8abb15762aec5546ea7b5b7884978e890978d03494e3ea48e1106fdcb1007be2a
ad8ab00f357e68e99e5dd6ed74589526f513516bfbd9bd78ed6d5f4eb17be2ad2a4322b1e2a3d44
52648d5b9706e98aa70be7ff002c88a6325dfa92daa406e45b433ce825ba1094891963f89dbeb115
231fbca488c545715482cbf387cb779e687f2e89905bdec1a74fe5ed4d04f25ade36a6b37a692cab0
98edd8bc3c23123f2958f141cfe0c55534afcd0f25eb9a7e8769e62b8b4b3d5b5db65b9fd153933c2
8e11e5e0d2322a6e2191e3e6119d636655c5533f2779eadbcdfabf98b4eb2b668ad34296d2282e5
d6589a74bcb65b80de94d146cb40db5392b2d18376c5597e2aec550f69f512b31b0f4b8fab27afe8f
1a7ae1a9272e3fb75fb55debd7154462aec55d8abb15762aec55d8aa85dd9db5f46b0dd46248d24
8e755248a49038910ed4e8ca0e2aaf8abb15762aec55d8abb157fffd2f70794001a3c94351f5fd4be
8ff4f9f6fa3154fb15762aec55d8abb15762aec55d8abb15762aec55d8abb1549adacae63f356a3a8
ba52ce7b1b282292a3792196e99c52b5d848bf7e2a9ce2aec55d8abb15762a9279aa19a7d2a348
119e417da7b954058f18ef6166341d82824fb62a9de2af3ad4ff28348d4aeefe6fd2d7f05a5f4fa85e7
d450c0d14573abd9bd95d3a33c4cf46472eaa5a8b27c5f67e0c556b7e4f694677bc4d5efa2be78ad
6ddee63faba3490594d04d1c5385882cd18f4382acaadc639664078bfc2aadf2ff00e4de8fe5db6b6

115

b2b6d4ef2e2ce08f4f4686e1602247d1ae25bab276e11a50c7248090b40fc12bfb5c9559a7fe4c695
62b2c2fac5f4f677ba747a56a76acb6aa93a431c90a48acb0f389fd3978bfa4eaafc12abf6b92ac93c
a5e4dff0bdc6a3792ead77abde6a6b68b713de88437fa0c02dd08f4638f76515727ab6fb62aca3157
62ac67c951490db6b024565e7acea4ebc815aab5cb10456951ef8ab26c55d8abb15762aec55d8ab
b1548fcd6ee9a75ab46486fd23a68d8d2a0dec208fa462a9e62aec55d8abb15762aec55fffd3f6ff00
93c83a3cb4eda86a60fcc5fcf8aa7f8abb15762aec55d8abb15762aec55d8abb15762aec55d8aa02
2d5125d66ef46119125adb5bdd34b5146172f320007b7a27efc551f8abb15762aec55d8aa1750d42
df4cb75b9b9e5e9b4b0c0388e479dc4ab0a7d1c9c57154562aec55d8abb15762aec55d8abb15425
86a567a9a4d25949ea25bcf35a4a6856935bb98e45dc0e8c08ae2a8bc55d8abb15762aec55d8ab
b1551b936a117eb66311fa9184f569c7d52e3d3a72fdae54e3fe562aad8abb15762aec55d8abb157
fffd4f71f95001a4353fe5b750ffa8e9f154ef15762aec55d8abb15762aec55d8abb15762aec55d8abb
154b20d3248b5fbed60ba98aead6d6d95057906b6927724f6a1f5853154cf15762aec55d8abb154a
7cc76373a8e9d1dbdaa87956f2c672090a385bddc52b9a9f05438aa6d8abb15762aec55d8abb157
62aec558ef93ac6eec2cf544bc85a0927d5f53b88d5a9f14335dc8f1b8a13b32907156458abb15762
aec55d8abb15762a9279a6332585aa852d4d474e62141268b7911276f0a57154ef15762aec55d8a
bb15762afffd5f71f953fe390dff31ba87fd474f8aa778abb15762aec55d8abb15762aec55d8abb1576
2aec55d8aa5b6fa8cb36bb7da532a886d2dad6e11857916b879d581f61e90a62a9962aec55d8abb
15762a80d63531a4da25d344650f716d6dc41e343753a401ab43f679d71547e2aec55d8abb15762
aec55d8abb154b344d663d6e0ba9e289a116b7b7760c1c8259aca77819853b314a8c5533c55d8a
bb15762aec55d8abb1550bbbcb7b18d25b96e2924b14084026b24ee2341b57ab3018aabe2aec55
d8abb15762aec55fffd6f71f953fe38e7b7fa66a1ff51d3e2a9de2aec55d8abb15762aec55d8abb157
62aec55d8abb15762a838b4f8a2d4eeb540c4cd750c103a9a710b6ed232d3e7ea9ae2a8cc55d8ab
b15762aec552dd774d9355b28ed62758d92ead2e4b302471b5b98e761b7721283154cb15762aec
55d8abb15762aec55d8aa49e58d22e746b4be82e9919ee752d42fa33192408af2ea49901a81f105
61cbdf154ef15762aec55d8abb15762aec552ad7ed2e6f2cede3b542f225ed94cc010291c3731c8e
7e223a2a938aa6b8abb15762aec55d8abb157fffd7f71f953fe38e7fe632ff00fea366c553bc55d8abb
15762aec55d8abb15762aec55d8abb15762aec552ab5ba9e4f30ea768f2f2b782dacde28a83e169
5ae031af5f8b82ff00c0e2a9ae2aec55d8abb15762a957983519f4bb08ae6d82991ef2cad887048e1
7375142fd08df8b9a7be2a9ae2aec55d8abb15762aec55d8abb1549bcb7ac4dad5adecf3c6b135b6
a17d60a10920a59dcbc0ac6bdc84a9c5539c55d8abb15762aec55d8abb15426a37eba7c514ae85
c4b3c16c0034a1b89562077f02d5c55178abb15762aec55d8abb157ffd0f727954a9d1c15e86eafbe
ff00ae4d5c553ac55d8abb15762aec55d8abb15762aec55d8abb15762aec55412cede3bb9af51297
37091c733d4eeb0962829d36e6d8aabe2aec55d8abb15762a82d4f4d8755b64b69d991127b7b90
5280f3b5992651b83b16400fb62a8dc55d8abb15762aec55d8abb15762a95e87a326896f756e931
985d5edddf9660178b5ecef394dbb2f3a038aa698abb15762aec55d8abb15762a97eb1612ea36f6f
142ea8d15ddadcb16ad0a5bce92b0dbb90b418aa618abb15762aec55d8abb157fffd1f66e91fe39d
3ad0da7e86d39905cdd3a3b6a52ab18a5b892442556cd80255812396de38aa61f5cf3b9247e88d3
00ec7f48ce6bff004e58abbeb7e7724ffb8ad2c0edfee42735ff00a73c55afadf9e78d4693a5f2aecbfa
467e9e35fa962adfd6bcf151fee2b4ba1ebfee427dbfe9cb7c55725cf9d496e7a6e98a07d922fee1ab
ff004e6298aae171e73e249d3b4c0dd87d7ae08fbfea98ab8dc79cb6a69fa61af5ff004db814ff00a74
c55df58f397223f47e99c7b1faf5c7eafaa62ab4dcf9d402469ba593d87d7ee07fd89e2ad1b9f3b002
9a669649fb43ebf7029ff004e7be2ad8b9f3af200e99a585ee7ebf7069f47d4f1570b9f3afc55d374c1
4fb3fe9f71bffd39ed8ab7f59f3a53fe39ba657c3ebf71ff006478aa0e087ced16ab777ed6ba6b43751
4112c3f5db8a4660321247fa2d0f2e63c3ece2a8efac79c77ff0071fa61f0ff004d9f7ffa74c55a171e72
e249d3b4de5d97ebd3eff4fd531577d63ce7f0ff00b8ed337fb5fe9d3edff4e9be2ad1b8f39d481a769
941d0fd7a7dff00e9d3156c5c79ca849d3b4caf602fa7ff00b24c552ed6a4fcc296de05d32c74e8e61
7768f330be981faba5c234cbbda8eb1861fab154c1610000026060f002220574d464301000000000
001000000000000000d000000002000002829010028890100fd7f37edfe81a6fbff00a64fff0064b8a
bbd7f37ff00cb069bff004993ff00d92e2ab7eb1e72ff00ab7699ff0049d71ff6498ab5f58f39f2a7e8ed3
38ff37d7ae3f57d53156d6e3ce449e5a769800e94be9cd7fe9d062abbd7f3853fde0d36be1f5d9ffec
971577afe6fff00961d37fe9327ff00b25c5549aebcee3971d2f4b6a7d8aea170397cff00d0cd3154a7
44bcfcce16d70754d234d69cde5e7a5cf519548b6fac3fa0070b2208f4f8d09f8a9f6be2c5535177e7
7a80da469807723519cffd8962aaa2ebcde5a874cd3c2ff37d7a63f87d531577d67ce1427f4769bec
3ebd3efff004e98aac373e74a6da66984ff00cc7cff00f6478aadfadf9e37a695a5edd0fe91b8dffe9cb
156d2efcea56afa5698ade03509cffd898c55505d79bf883fa334e0ddc7d7a6a7dff54c5509aa6a5e7
3b486ddedf4dd3dde5b8b78641f5a9de892caa8e682d874524d7b62a8b371e71eda769bff0049d3ff
00d9262ab0dd79cfb697a69f6fafce3fec4f15685df9d7950e93a6f1fe61a8cdfabea78aaa8b9f36962
0e9b6013b1faf4c4fddf55c55b173e6cfdad36c06ddaf653bff00d22e2aefac79affeadf61ff49b375ffa4
5c55fffd2ef23f367cfa9aecba7b3433e91726769f5086c2443a65adb79824d31ae0f267571f56e139
e7b0fefbfb9a8c5517aa79f7f36aca3b5d46d74f9351d2d9a7b906cec6ad3e9ba2dfba5cc9f116224b
db278a6b3403e2991d17e175e2abdab435d4d747b2fd332acdaa9855af1d1044beab0a9014134a5
698aa618abb15762aec55d8abb15762aec55d8abb15762aec55d8aa0f523aaac2a7484b77b8e43
98bb6744e1435a18d58d6b4ed8aa59cfced55fdc6954a7c5fbeb8ebedfbac55707f396d5874cf7fded
c75ff9178ab5cbcebfefbd2e9ff192e3fe68c55616f3d768b49ff91973ff003462ad06f3e7ed45a47d12
dcf5ff009178ab61fcf551ca1d240ef496e4ff00ccbc5572bf9d7f6a1d2fa6c04b71d7fe45e2aee7e76a

6d16955ee7d5b8ff00aa78aade5e79dff75a4ff93fbcb9fc7f778abb9f9ea9fdce935eff00bdb9ff00aa7
8aaee7e77a0fdd6955a6e7d5b9ebff22f15717f3b76874af7acb71ff54f156b9f9e29fdce935ff8cb73ff
0054f1578cff00ce51dc7e70c3f9417ede4b464f327d774e164de5c7bc7d4f9fd6e3a88963406847db
edc39571579d7e475eff00ce78cb12379aad3499745670bcbce3fe8d7ca9b54a0d3c7abff23937c55
f62599bc36909d4044b7dc17eb0202cd17a94f8b81600d2bd2a31557c55d8abb15762aec55d8abb
15762aec55d8abb157ffd3f7f62aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8a
bb15762aec55d8abb15762aec55e07e6ad2e0b5fcc3d72c62f31eb005979667f320b31ae5ec29f5e
8ef1dfe28d260a9118c7a45027058becfc5f162aab07e6ff00984dfe8fa3e967474b4bb9346d3d25bb
967b89a37d5b489afd6477f5417f4de0e2413ca457e5cd587c4aa73e48fcdfd4fce7ade936515ae9d
6d69736d6b35fdbbdd8faf7fa669c97ab3dac609324224630d4a05f8246f57927a78abd7b15762aec
55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55ffd90000084001082
4000000180000000210c0db01000000030000000000000000000000000000001b4000004000000
0340000000100000002000000000000bf000000bf0000af43000068430300000000000080000000
80fe7fe9430000008000000080ff7f9a432100000008000000620000000c00000001000000150000
000c00000004000000150000000c0000000400000051000000704301000000000000000000d201
000034010000000000000000000000000000000000005e010000e800000050000000200400007
0040000003f0100000000002000cc00d301000035010000280000005e010000e80000000100080
000000000000000000000000000000000fe0000000000000000000000ffffff00fafafa00bebebe00b
4b4b400fdfdfd00fefefe00fcfcfc00bdbdbd00afafaf00bababa00acacac00c7c7c700bbbbbb00fbfbfb0
0b0b0b000f8f8f800bfbfbf00ebebeb00f7f7f700b1b1b10079797900c4c4c400e8e8e800f1f1f100b8b
8b8007d7d7d00cbcbcb00aeaeae00dedede00e3e3e300b6b6b600b5b5b500c6c6c600a8a8a800d
cdcdc00b2b2b200c3c3c300d0d0d0009b9b9b00f9f9f9009d9d9d00cecece00a9a9a900d9d9d900d
ddddd00adadad00a1a1a10099999900b7b7b700f3f3f300dbdbdb00d1d1d1009c9c9c00c8c8c800a
7a7a700d2d2d200a4a4a400c2c2c200ababab00cdcdcd00a2a2a200b3b3b300bcbcbc00dadada0
09f9f9f007e7e7e00c5c5c500cfcfcf00f4f4f400e9e9e90075757500cacaca00e0e0e00078787800aa
aaaa00e5e5e500c1c1c10098989800a6a6a600e1e1e100949494007a7a7a00d4d4d40095959500
d6d6d600cccccc009e9e9e0097979700eeeeee00d8d8d800a0a0a000c9c9c90096969600b9b9b9
00efefef00f6f6f600c0c0c000ededed00e4e4e400d3d3d300e6e6e600f0f0f0004848480052525200
56565600dfdfdf00e7e7e7003232320087878700d5d5d500ececec005b5b5b00d7d7d7008888880
0f2f2f20092929200e2e2e200040404003333330089898900393939007c7c7c0074747400424242
0046464600595959007f7f7f008f8f8f003e3e3e009090900082828200848484008e8e8e00737373
005555550069696900060606003d3d3d009a9a9a00414141005a5a5a003f3f3f004444440050505
0005e5e5e004e4e4e0067676700eaeaea001e1e1e009393930081818100686868004f4f4f004b4b
4b004c4c4c00575757006c6c6c00535353003c3c3c004a4a4a0047474700343434005f5f5f006e6e
6e00707070002c2c2c007b7b7b008d8d8d008c8c8c00626262006f6f6f006b6b6b0072727200a3a3
a3006a6a6a0065656500f5f5f500a5a5a5008686860077777700191919008383830066666600363
6360030303000616161005c5c5c008a8a8a002e2e2e008b8b8b002b2b2b0014141400606060004
5454500272727001a1a1a0025252500373737002f2f2f00767676001c1c1c005454540064646400
2d2d2d003838380021212100121212006d6d6d009191910080808000858585003b3b3b0029292
90040404000717171005151510035353500232323005d5d5d003a3a3a0024242400202020001b
1b1b0058585800313131004d4d4d0016161600434343001d1d1d002a2a2a00131313000808080
01f1f1f00101010000c0c0c0049494900636363000d0d0d00222222000a0a0a0018181800282828
0002020200030303000101010017171700070707000909090015151500050505000f0f0f0011111
10026262600010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
1010101010101010101010101010101010101010101010101010101010756e4e04c01d7bb50bb9
36ab9a9716c56586cc851130701010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010000010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
010101010101010101010101010101010101010101010101010101010101010101060e1ab3280
1417201827201923107ba2ca063016e62010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101000001010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101

117

01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101280
101a57f0107517f0196a906e224019053920f190a73060101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101000001010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
010101010eb17a420101ad7a07a59d1def57489b62d209d1bd3201010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010100000101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
0101010101010101600101ada701100b3f458b41838303ad0f01662fb3250101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010100000101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101011eae32b7156f7836120107060e010505010602010201060e01010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010000010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
1010101010101010101010101010101010112e069a0e49a7d83a8070101010101060107010501
05010601010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010100
00010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
010101010101010101010101010101010101010101010106286f13059406737306012801062801
05010101060107010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101000016be3635a80e401a307301062c3228380501020106010506010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101060101050106010601010106050601010606010
10606010601010101010106010101010101010101060601010606010101010101010101060101
01060601010505050601010605010101010101010101010601010101010106010101010606010
1060601010605010101010101010101010e0106335e6001010501010106010605010101010701
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010100005ac745b0d6557d1b617b1201ec2973e6490101010101010601010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101

0101010101010101010101010101010101010101010101010101050101010e010101010101010
10606060101060601010101010101010101010101010101010101010101010101010101010605
05050601010106010106010101010101010105060101050506010101010101010106060101010
60101010101010101010101010101010101010106010601011f00f268d22101010607010106060
10605010501010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
101010101010101010101010101000062680183a38bbb28018f4423779678993a0601020501010
50101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010601050701100101060101
05050101010501010106060101010101010101010101010101060606060101010101010101050
60106060601010e06010506010107010101010106010101010101010101010606010101010606
0601010106010101060601010606060101010101010101010105010660610000f40089c2a83a50
01100106050101010601010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
010101010101010101010101010101010101000066ca02527058ed010ed62cd35b4df664221801
010101010e0101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
010101010101010101010101010101010101010101010101010101010101010106010101320a2
e2b4b2420092b0b0f3e3e315e1f2031191919193131313119192424241414140f0f2b3b0b3b0b09
0f1c2b3b2e2e2e1c242009243e143e191904243e04043e2424243e090b1c2404142e0b1c090f091
c2e1c1c3e20140f243e140404043e140f0f141c090f14140f091c0f0f3e0b0f52f50000fa00f40000e7
67304902050106050501010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010100003abf0fd67a6aab165bd764e633bcd610a761020
10706010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
101010101010101010101010101010101010101010101010101010101010101010101060e4426
552a552c643c44535534535553645355552a2a2a3c3c2a2a2a5c5c5c36360c0c0c430c360c361b5
648481b561b484856443c26262a266e55382a44343826442a2a2a4821363c441b0c481b3c3c561
b1b1b482638443c44445634383834442a2a2a56563c2a2a3c56565c4434482a78f3f5f300000076
dfc2861f60010706280501010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101000018445e2b0e0e5058240733222d37ae171f64
05010501010601010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010107010505012
80101060101050701010105010101010101010101010606010101010101010101010106060106
06010106010101010605010106010107050101010506010101010505060606060606060606010
101010101010701010101010106010101010101010101010101010101010e0101010125007600f
5f1a33e180101100101060101010e0101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
0101010101010101010101010101010101010101010101000001010107010101010e070101060
e0101010701050101010701010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010501010105010101010101010106060601010606010101010101010101010101010101060
60101010101060601010101010101010101010101060601010101010101010101060101010106
01010101010101010106060101010601010601010101010101010101010101010101010102070
661e78fa8196a0e010110010106050101060101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
0101010101010101010101010101010101010101010101010101010100000128060501010e010
601070e01010e0505050606010201010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010501010e01060105060101060506010106060101060601010101010101010101010
10101010101010606010106060101010101010101010506010101060101010106060101010101
06060601010606010106010101010101010101010101010101060601010605010101010101010
10705010105123801010101012801010501060106060105010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010000050128
01010701050501010101060101070601010505060107010106050101010601010101060101060
60101010101060601010101010106010106010101010101010606060601010101010106060606

119

01010106060601010101050501010106010101010101010601010106060101010701010601050
6011610000026060f002220574d464301000000000001000000000000000d00000000200000280
90100288901000706010106050101060101010606010106010101010601010606010106060601
06060606060101010101060e01070107010101010101010101010101010101010101010101010
10101010101010101010506010106060101010101060601010101010101010101010101010101
01010101060101010101010101010101010101010101010101010107060101060506010606060
6010101010506010101010101010106060606060105060101010106070101010105326a010101
01010101010101010106060101010606060601010101010101060601010101010101010101010
1060601010600000605010606070e010101050505060606010101010101010601010101010601
010101060601010106060101060507050101010605050601010e0501060505060106010101010
10106060601010101010601050506010101050601010101060505050601010605060106060601
01060606010107010206010101010101010101010101060601010101010101010101010101010
606010101010101010101010106050e0101010660010101010101010101010101010101010101
01010101010101060601010101060601010601010101010101010101010101010101010101010
10501010106070601014cb10501050106010101060505050606060601060605050606010101010
10501010101010101060106050501010106050601010101010601010605050601010601010601
4c0410010101010101010107050505060606060101010101010101050601010101060701010101
06060605010606010106000062085f7318b1666628b1737360282810286045b1280e0210603260
06066032b16002050260b128050102b11306010107020e0701010101070601010107020701010
1070e070601010606060101060210280601010213100e0e050502102801010102602801010102
0e0706010106070e0507050102010607010607050101060e2828020601010e601005010128130
e01010510100e0605020e0e07060106072828010560606f5e45050601010505060106060606060
60606060606060606060601010e28280e0101010728020601060e070506010106050701010101
0101010101026013050102451897500e5f0273b1606060b145b1100e0210b13245100701050e02
0701010710070707070e022810060260130e050e1032b110020e0210134513020e0e282828280
7010e026b3b05050505070707070702020e022810136028603218663260282860454560280e07
b113106060280210020e0e02020e000043687282b67fbc54d185bea9807474d196828580965454
96a978a9545da87278a8745474a9bc805d51a8788027ae3d295458275bae3d354e412f3d5b3530
2729ae5730583029415b304e58584e589682d14e298b74a882545454547482963041275180962
7418b965d584e30304e585d8b3d5b6d58582f4b3d4129572f3d41298b8b292fb2ae294e5857ae5b
305d273d2f2930303529358b8b8b27295b5b57355b413d413582d63939b24f4f39aeb24fb2b2b2b
2b2b2b2b235353535353535352f57305d5d30572f305d5430413939ae3dae39b2b239ae3db2b2b
2b2b2b2b2b2ae58a885584e8583bcbdb6a9b68378d3bea8858585825158ae5b2927355b4f2b5b5
729413d3d41354e4e30304e5854517480a9a9808285a972be8254302727274e29ae4fb22f5729b
22b142bb229b0145b5b414157575757278b8b304e5854545854d18080964e274bb241292f4f3b2
e3d4f37b2370b2e3b224b4b22224b0000464f100e0e1013b1136045323232327332185f59595f59
5945185f187318661832185959187318661818665f5959595f5f596259666662126f626262626262
595f596f625f6659625f62625966185f62626262595f6659625f5f665f5959595f595f5f5f5f5f6666666
666181866666666123829625959945f5959595f665f5f665f5959661818185f5959595f5f5f59665f5
9626259626259626f591873185f456f1859592c475f6f595f59626f625f59595959595959595959595
959595959626259595959626218665f5959595f5f6259595f5f59596262626262626262625962625
9661866665983535f325f45b17332b14532734513b1b1b1b1b1b14532731818181873181866181
8737318665f731818737318666666183232327318667345606045323245666032185f1d2e46737
318186666665f7373737373733232737332b1b16060601060327345b1b14573606032451310453
2b1b13232b100004c140601010e050101010101010605060101010106060601010106070506010
60106070706010605050601010606010101010101010101010101060101010101010101010101
01010101060601010101010605060101010101010101010101010601010106060601010101010
10101010101632f010101060506010101010101060606050506010101010601010101060601010
1060505060101060601010101010601070162d107060101010106010101010101010101010101
01010101010101010101010101010601010106060101010101010101010101010101010101010
60101010605010101846a01010102010101010101050606060101010101050501010101060101
01050606010101060606010101010601010601010101010101010101010506010107010601010
66f010101010101010606010106060606010106060101010106050101010101010605060101050
50101070601010606010000172406050606010706010101010101010101010101010101050101
0101010101010101010106010101050e050101010507050601010101010101010101010605010
10507070601010101010606060606060101010605060101060505060101010106070501010107
060606060606060601014c0b280105010101010101010101050601010101060506010101060501
01060101010106010101010101010101010107010106604828010101010101010101010101010
10101060606060606060601060507070506010101010101060601010101010101010101010101
010101010505050601010101056f05070706010606060101010101010101060606010101010101
01010101010101010101010101050601010606060101010101060606060101010101010101010
10106020101060101010101010101010101010606060601010605050501010505070705060606
01010101010101010606060606060000630901010601010101010606010106050101060601010
60501050601010506010106050501010605010101010606010101010101010101010101010101
01010106010101010101060606010101010101010507060101010507060101010606060601010

10101010101010101010101010701452605010701010106060101060501010606010101010101
05060101010606060606010101060606060606010101050105070101100101060606010106060
60606060606060601010101010101010601010101010106060606060101010601010101010101
01010101010101010101010101010101060106050601010101060606060101060601010101010
10606010106010101010601010606060606060101010101010101060606060101010106050506
06010101010105060105010701010101010101010506010101010606060601010101010101010
1010101010601060601010606010106060101060000654f0601060701010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010601060105010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101050101050107010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101060102010601050701010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010107010601010105010101010101010101010101010101010101010101010
101010101010101010101010101010101010101010101010100006b2b01010605010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101060505010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101060e01010101
0e010101010101010101010101010101010101010101010101010101010101010101010101010
101010101010101010101010101010101010101010101010101010101010e01010e0101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010201010601010101010101010101010101010101
0101010101010101010101010101010101010101010101010101010101010000171c0106010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101070101010501060101010
10101010101010101010101010101010101010101010101010101010101010101010101010105
01060101010106010101010101010101010101010101010101010101010101010101010101010
101010101010101010101010101010101010101010101010101010101010101010701010e0605
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010160010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010000942
40105010106010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
101010101010101010101010101010101010101010101010101010101010101010101010601b1
01050101010101010101010101010101010101010101010101010101010101010101010101010
101010101070105010e05010e0101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
14501280101060201010101010101010101010101010101010101010101010101010101010101
010101010101010101010101010101010101010101010101010101050101593a0501010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010000122401050101060101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10106010106010601010101010101010101010101010101010101010101010101010101010101
010101010101010101010201050101016b0101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
0101010101061c1705010107010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101060105016541070
10101010101010101010101010101010101010101010101010101010101010101010101010101
010101010101010000120f01060101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010105016f010106060101010101010101010101010101010101010101010101010101
0101010101010101010101010101010106020118415f0101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
1010101010101010107c8640106070101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010105010101
59ae0101010101010101010101010101010101010101010101010101010101010101010101010
1010101010101010101010000123b060101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010

121

10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101061219100e07010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101138510010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
101010101010101010101010101014a23010106010e0101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10106010128624f050101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010000122205010606010601010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
010101010101010101010101010107016b3901010706010101010101010101010101010101010
1010101010101010101010101010101010101010101010107010e01026074b101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010742330201050601010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
1010101010101010e01015f3b01010101010101010101010101010101010101010101010101010
1010101010101010101010101010101010101010100006f3705010101060101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010606943501060501010101010101010101010101
010101010101010101010101010101010101010101010101010101010105050101b1801001010
10101010101010101010101010101010101010101010101010101010101010101010101010101
010101010101010101010101010101010101010101010101a7330501050107010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
0101010101010101010101010101065f2201010101010101010101010101010101010101010101
0101010101010101010101010101010101010101010101010100006f3705010101060101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010106623b01010606010101010101010
10101010101010101010101010101010101010101010101010101010101010101060107010e45
5d730101010101010101010101010101010101010101010101010101010101010101010101010
1010101010101010101010101010101010101010101010101010101017a2d0701010701010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
101010101010101010101010101010607010501663b0101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010100006f370501010106
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
0101010101010101010101010101010101010101010101010101010101056f1402010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101050
10601061396320101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010115330106010
20101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101050562140e01010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010100006f370
50101010601010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
101010101010101010101010101010101010101010101010101010101010101010106591c01010
10701010101010101010101010101010101010101010101010101010101010101010101010101
010101010601010128a9130101010101010101010101010101010101010101010101010101010
1010101010101010101010101010101010101010101010101010101010101010101010101101a
38010701060101010101010101010101010101010101010101010101010101010101010101010
101010101010101010101010101010101010101010101010601060606b1380601010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
100006f37050101010601010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
64635010201060101010101010101010101010101010101010101010101010101010101010101
01010101010101010101060e05732766010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010105044c010601010501010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101060107010101100101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
010101010100006f37050101010601010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101

0101010101122b061001010101010101010101010101010101010101010101010101010101010
10101010101010101010101010501010101014901010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101450101060101050101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010501050
10107010101010101010101010101010101010101010101010101010101010101010101010101
0101010101010101010100006f3705010101060101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010701077501010105010101010101010101010101010101010101010101010
10101010101010101010101010101010101050106010706050601010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101012801010e0e010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
60101050501010701010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010100006f37050101010601010101010101010101010101010
The

above

methods

are
package
extends
Object

defined

below.
java.lang;
public
class
Thread
implements
Runnable
{
...
public
static
void
sleep
(long
ms)
throws
InterruptedException;
public
static
void
sleep
(long
ms,
int
nanoseconds)
throws
InterruptedException;
...
}
package
java.lang;
public
class
System
{
public
static
long
current
TimeMillis
();

Absolute delays
Java's sleep mechanisms support relative delays, but there is no support for an absolute delay. It is
not possible to, say, delay a thread until 2 p.m. on January 31, 2010. For example, consider a city's
traffic light control system. In the morning "rush hour", say between 7 and 10 a.m., the controllers
need to give more time to traffic entering the city centre than to traffic leaving the city centre. Between
the 4 and 7 p.m. "rush hour", the situation is reversed. Suppose that the following class contains the
appropriate
duration
values:
public
class
TrafficLightTimes
{
public
synchronized
int
getRedDurationInbound()
;
public
synchronized
int
getRedDurationOutbound();
public
synchronized
int
getGreenDurationInbound()
;
public
synchronized
int
getGreenDurationOutbound()
;
public
synchronized
void
setInboundTimes(
int
read,
int
green);
public
synchronized
void
setOutboundTimes(
int
read,
int
green);
}
Now consider a supervisor thread whose responsibility is to ensure that the durations are set to
appropriate values at all times. The following algorithm attempts to do this using the sleep method.
public
void
run()
{
final
long
rushHour
=
3*3600*1000;
final
long
daySleep
=
6*3600*1000;
final
long
nightSleep
=
12*3600*1000;
TrafficLightTimes
myLights
=
new
TrafficLightTimes();
// Initialise lights during the night and wait until 7am.
while(true)
{

123

//

//

}
}

try
{
morning
rush
hour
durations.
myLights.setInboundTimes(....);
myLights.setOutboundTimes(....);
Thread.sleep(rushHour);
//
Set
non
peak
durations.
myLights.setInboundTimes(...);
myLights.setOutboundTimes(...);
Thread.sleep(daySleep)
Set
evening
rush
hour
durations.
myLights.setInboundTimes(...);
myLights.setOutboundTimes(...);
Thread.sleep(rushHour);
//
Set
non
peak
durations.
myLights.setInboundTimes(...);
myLights.setOutboundTimes(...);
Thread.sleep(nightSleep);
catch(InterruptedException
ie)
{}
}
Set

There are two problems with this approach:


no attempt has been made to take into account the time taken to execute the
setInboundTimes and setOutboundTimes method calls;
unless this is the only thread executing on the processor, it may be preempted between
finishing the calls to set the durations and the call to the next sleep method.
These problems make it very difficult to determine the duration of any sleep. In this case, the result is
that the times at which the traffic lights will change their red and green durations will drift away from
the 7 a.m., 10 a.m., 4 p.m. and 7 p.m. boundaries. In this instance, the TimeTask Java utility can be
used (see Section 4.4), but the general problem remains.
Support for absolute delays is another key extension provided by the RTSJ (see Chapter 7).

Time-outs on waiting
In many situations, a thread is prepared to wait for an arbitrarily long period of time within a
synchronized method (or statement) for an associated notify (or notifyAll) call. However, there
are occasions when the absence of the call, within a specified period of time, requires that the thread
take some alternative action. Java provides two methods for this situation, both of which allows the
wait method call to timeout (see Section 3.2). In one case, the timeout is expressed in milliseconds;
in the other case, milliseconds and nanoseconds can be specified (although again, very few
implementations support nanosecond delay granularity).
Important notes There are two important points to note about this timeout facility. The first is that, as
with sleep, the timeout is a relative time and not an absolute time (although see
later in this section). The second point is that it is not possible to know for certain if
the thread has been woken by the timeout expiring or by a notify. There is no return
value from the wait method and no timeout exception is thrown.
It is possible to read the clock and determine whether the timeout has passed. However, this is never
going to indicate for certain which event woke the thread. For example, consider the following general
class
for
implementing
a
wait
with
a
timeout:
public
class
TimeoutException
extends InterruptedException {}
public
class
TimedWait
{
public
static
void
wait(Object
lock,
long
millis)
throws
InterruptedException,
TimeoutException
{
// Assumes the lock is held by the calling thread.
long
start
=
System.currentTimeMillis();
lock.wait(millis)
;
if
(System.currentTimeMillis()
>=
start
+
millis)
throw
new
TimeoutException();
}
}

Unfortunately, as with absolute delays, this will sometimes fail to achieve the desired effect. Consider
an
arbitrary
object
test
and
the
following
code:
synchronized(test)
{
if(!condition)
{
try
{
TimedWait.wait
(test,
1000);
System.out.printIn
("NO
TIMEOUT");
}
catch
(InterruptedException
ie)
{
...
}
catch(TimeoutException
te)
{
System.out.print1n("TIMEOUT!"
)
;
}
}
}
Now this code may indicate that timeout occurred even though the thread executing
TimedWait.wait was woken by a call to test.notify (or test.notifyAll). This might be
because by the time the thread executing TimedWait.wait was scheduled for execution, the
timeout time had passed. The woken thread could test to see if condition had indeed occurred
within the TimeoutException handler; however, even if the condition is false, it may have been true
before the thread executed and was turned false by another thread.
Java 1.5 and JSR 166 note
As mentioned in Section 3.3, within the Java Community Process, there has been an activity (Java
Community Process, JSR 166, 2002) that has proposed a set of concurrency-related utilities that have
now been incorporated in Java 1.5. One of the issues addressed is better support for handling time
granularity issues (Lea, 2004). This is achieved by the introduction of a TimeUnit enumeration class.
package
java.util.concurrent;
public
final
enum
TimeUnit
{
MICROSECONDS,
MILLISECONDS,
NANOSECONDS,
SECONDS;
...
public
long
convert
(long
duration,
TimeUnit
unit);
// Convert the given duration in units to the current
//
time
unit.
public
long
toNanos(long
duration);
// Equivalent to NANOSECONDS.convert (duration, this).
//
Similarly
for
micro,
milli
and
seconds.
public
void
sleep
(long
timeout)
throws
InterruptedException;
//
Perform
a
Thread.sleep
at
this
granularity.
public
void
timedWait
(Object
monitor,
long
timeout)
throws
InterruptedException;
//
Perform
a
timed
wait
at
this
granularity.
public
void
timedJoin
(Thread
thread,
long
timeout)
throws
InterruptedException;
//
Perform
a
timed
join
at
this
granularity.
}
Note that using this enumeration does not guarantee that any associated wait mechanism can support
the requested level of time granularity in its timeout mechanism. Furthermore, it does not address the
race condition associated with timeout operations.
Java

1.5 has also introduced


package
java.lang;
public
public

the nanoTime
//
This
final

static

final

method into
is
Java
class
long

the System class.


1.5
addition.
System
{
...
nanoTime
()
;

The nanoTime method returns the value of the system timer in nanoseconds. The method can only
be used to measure elapsed time and is not related to calendar time in any way.

4.3 Thread Groups


125

Thread groups allow collections of threads to be grouped together and manipulated as a group rather
than as individuals. They also provide a means of restricting who does what to which thread. Every
thread in Java is a member of a thread group. There is a default group associated with the main
program, and hence unless otherwise specified, all created threads are placed in this group. Thread
groups
are
represented
by
the
class
given
below.
package
java.lang;
public
class
ThreadGroup
implements
UncaughtExceptionHandler
{
//
The
implemented
interface
is
a
Java
1.5
addition.
//
Only
non
deprecated
methods
are
shown
below.
public
ThreadGroup
(String
name);
//
Creates
a
new
thread
group.
// The parent of this new group is the thread group
//
of
the
currently
running
thread.
public
ThreadGroup
(ThreadGroup
parent,
String
name);
// Creates a new group with the specified parent.
//
Throws
SecurityException.
public
int
activeCount();
// Returns an estimate of the number of active threads.
public
int
activeGroupCount
();
// Returns an estimate of the number of active groups.
public
final
void
checkAccess();
//
Determines
if
the
currently
running
thread
has
//
permission
to
modify
this
thread
group.
//
Throws
SecurityException.
public
final
void
destroy();
//
Destroys
this
group
and
all
of
its
subgroups.
//
Throws
SecurityException
and
throws
//
IllegalThreadStateException
if
all
threads
in
//
the
group
haven't
terminated.
public
int
enumerate
(Thread[]
list,
boolean
recurse);
// Generates a list of all threads in the group.
//
Throws
SecurityException.
public
int
enumerate
(Thread[]
list);
//
The
same
as
enumerate
(list,
true).
//
Throws
SecurityException.
public
int
enumerate
(ThreadGroup
[]
list,
boolean recurse);
// Generates a list of all thread groups in the group.
//
Throws
SecurityException.
public
int
enumerate
(ThreadGroup
[]
list);
//
The
same
as
enumerate(list,
true).
//
Throws
SecurityException.
public
final
int
getMaxPriority
();
//
Returns
the
maximum
priority
a
thread
//
in
the
group
can
have.
public
final
ThreadGroup
get
Parent
()
;
//
Returns
the
parent
of
this
thread
group.
public
final
void
interrupt
();
//
Interrupts
all
threads
in
the
group.
public
final
boolean
isDaemon
()
;
// Tests if this thread group is a daemon thread group.
public
boolean
isDestroyed
();
// Tests if this thread group has been destroyed.
public
void
list();
// Prints information about the group on System.out.
public
final
boolean
parentOf
(ThreadGroup
g);
// Tests if this thread group is the parent of g
//
or
one
of
its
ancestor
thread
groups.
public
final
void
setDaemon
(boolean
daemon);
// Changes the daemon status of this thread group.
//
Throws
SecurityException.
public
final
void
setMaxPriority
(int
prio)
;
//
Sets
the
maximum
priority
a
thread
can
have.
public
String
toString
();
public void uncaughtException (Thread t, Throwable e) ;

//

This
//

method is
terminates

called if
due
to

a thread in
an
uncaught

the group
exception.

}
When a thread creates a new thread group, it does so from within a thread group. Hence, the new
thread group is a child of the current thread group unless a different thread group is passed as a
parameter to the constructor. Using these two constructor methods allows hierarchies of thread
groups to be created.
When threads are created they can be placed into explicit thread groups using the appropriate
Thread class construction. Requests to destroy a thread group will (if permitted by the security
manager) be applied to all threads in the group.
Warning
Setting the maximum priority of a thread group will cause the setPriority method in
the Thread class to silently truncate the priorities if they are above the maximum
value for the group.
Important The ThreadGroup class seems to have fallen from favor in recent years (Bloch,
note
2001). The deprecation of many of the methods means that there is little use for it.
However, the interrupt mechanism is a useful way of interacting with a group of
threads (an example of this will be given in Section 6.2). Also, the
uncaughtException method is the only hook that Java 1.4 provides for
recovering when a thread terminates unexpectedly.

Java 1.5 and JSR 166 note


To encourage the full deprecation of the ThreadGroup class, JSR 166 (Lea, 2004) proposed the
introduction of the following standard interface and methods for dealing with uncaught exceptions.
These have now been added to the Thread class (and hence the change to the ThreadGroup class
in
Java
1.5.)
package
java.lang;
//
This
is
a
Java
1.5
addition.
public
class
Thread
{
...
public
static
interface
UncaughtExceptionHandler
{
public
void
uncaughtException
(Thread
t,
Throwable
e);
}
public
static
UncaughtExceptionHandler
getDefaultUncaughtExceptionHandler
();
public
UncaughtExceptionHandler
();
getUncaught
ExceptionHandler()
;
public
static
setDefault
UncaughtExceptionHandler
(
UncaughtExceptionHandler
eh);
public
void
setUncaught
ExceptionHandler
(
UncaughtExceptionHandler
eh);
}

4.4 Concurrency-related Utilities


Over the years, a vast amount of experience has been accrued in programming concurrent Java
systems. This has resulted in the gradual introduction of concurrency-related utilities into the
java.util package. For example, the TimerTask and Timer classes discussed later in this
section provide support for time-triggered event handling. With Java 1.5 comes more comprehensive
support for general-purpose concurrent programming. The support is partitioned into three packages:
java.util.concurrent - this provides various classes to support common concurrent
programming paradigms. For example, support for various queuing policies such as priority
queues and blocking queues (bounded buffers). Sets and maps are also provided along with
thread pools.
java.util.concurrent.atomic - this provides support for lock-free thread-safe
programming on simple variables such as atomic integers, atomic booleans, etc.
java.util.concurrent.locks - this provides a framework for various locking
algorithms that augment the Java language mechanisms. For example, read-write locks and
condition variables.

127

It is beyond the focus of this book to cover these utilities in detail (the next edition of (Lea, 1999) will
cover these topics in depth). Furthermore, most of the utilities have been designed without
consideration to real-time issues. However, the TimerTask and Timer classes are time-related and,
thus, are worthy of brief examination. Chapter 5 also considers those communication abstractions that
have been found useful for realtime programming. Programming with real-time events is considered in
Chapter 11.
Java event handling
In Java, threads are the entities that are scheduled by the virtual machine. However, there are
occasions when it is useful to have entities scheduled for execution, which do not have the overheads
associated with threads, or which have an imposed ordering. User-interface events (such as those
associated with the Abstract Window Toolkit or the Swing tool kit) are good examples. Here, the
events are executed by a single thread that imposes the required ordering. Events can also be time
triggered. As of Java 1.3, the Timer and TimerTask classes have been added to java.util in
order to formalize this style of programming.
Essentially, a Timer is an execution engine (which is implemented as a background thread) that
accepts requests to schedule tasks for execution and executes these tasks sequentially in an order
determined by parameters to the schedule request. Requests can be for one-off or repeated
execution. A task is an instance of any subclass of the TimerTask:
The

class
java.util;
public
abstract
implements
Runnable
{
//
constructors
protected
TimerTask
()
;
//
methods
public
boolean
cancel
();
//
Cancel
any
request
to
schedule
this
task;
// cancellation of a running task is deferred until
// the current execution of the task is finished.
//
Returns
true
//
if the task is scheduled for repeat execution,
//
if the task is scheduled for one-off execution
//
and
has
not
run.
//
Returns
false
otherwise.
public
abstract
void
run();
//
the
code
to
be
run
public
long
scheduledExecutionTime
();
//
Returns
the
time
(in
Date.getTime()
format)
// of the most recent actual release of the task.
TimerTask
package
class
TimerTask

}
The Timer class
The

below:
java.util;
public
Timer
{
//
constructors
public
Timer();
public
Timer
(boolean
isDaemon):
//
methods
public
void
cancel
();
public
void
schedule
(TimerTask
task,
long
delay);
public
void
schedule(TimerTask
task,
java.util.Data
time);
public
void
schedule(TimerTask
task,
java.util.Data firstTime, long period);
public
void
schedule
(TimerTask
task,
long
delay,
long period);
public
void
scheduleAtFixedRate
(TimerTask
task,
java.util.Date firstTime, long period);
public
void
scheduleAtFixedRate
(TimerTask
task,
long delay, long period);

Timer

class

itself
package
class

is

given

4.5 The Process and Runtime Classes


So far, this chapter has considered concurrency within the Java virtual machine. Threads execute
within the same virtual address space and, therefore, have access to shared memory. The Java
language acknowledges that the Java program might not be the only activity on the hosting computer
and that the program will be executing under control of an operating system. As indicated in section
2.1, all modern operating systems support the concept of a process. Java, therefore, allows the
programmer to create and interact with other processes under that host system. Of course, this
interaction is heavily dependent on the actual host and consequently use of the facilities might reduce
the portability of the Java program. Note also one of these other processes may be another JVM.
Java defines two classes to aid interaction with other processes: the java.lang.Process class and
the java.lang.Runtime class. It assumes that all processes have connected standard input,
standard output and standard error streams. That is, a process reads from standard input, writes
results to standard output and produces any error messages on the standard error stream. Java also
assumes that a process/ operating system associates a value with the process when the process
terminates. This value may be a combination of a value supplied by the process itself and a value
supplied by the system. Each external process, therefore, is represented by an instance of the
following
Process
class.
package
java.lang;
public
abstract
class
Process
{
//
constructors
public
Process();
//
methods
public
abstract
void
destroy
()
;
//
Forcibly
destroy
the
external
process.
public
abstract
int
exit
Value();
// Get the exit value associate with the process, by
//
convention
0
is
normal
termination;
//
Throws
IllegalThreadStateException
if
the
process
//
has
not
terminated.
public
abstract
java.io.InputStream
getErrorStream();
public
abstract
java.io.InputStream
getInputStream();
public
abstract
java.io.OutputStream
getOutputStream();
public
abstract
int
waitFor
()
throws
InterruptedException;
//
Wait
for
the
process
to
terminate
and
//
return
its
exit
value.
}
The Process class is abstract, the only way to get an object that is a subclass of Process is via the
Runtime class. There is only one instance of the Runtime class (available from the getRuntime
method). This instance represents the currently executing Java Virtual Machine. There are various
methods that duplicate the functionality in the System class (such as the method gc, which forces
garbage collection); there are also methods associated with terminating the virtual machine (see
Section 2.2). These are not important here. Instead, attention is focussed on those methods which
allow
other
processes
to
be
created
(the
exec
methods);
package
java.lang;
public
class
Runtime
{
//
static
methods
public
static
Runtime
getRuntime();
//
methods
//
The
following
methods
allow
a
process
to
be
//
executed;
a
cmdarray
is
a
command
followed
by
//
arguments;
envp
represents
the
environment
in
//
which
the
process
executes.
public
Process
exec(String[]
cmdarray)
throws
IOException;
public
Process
exec
(String
command)

129

throws
IOException;
String
[]
envp)
throws
IOException;
public
Process
exec(String[]
cmdarray,
String[]
envp)
throws
IOException;
public
Process
exec(String
cmd,
String
[]
envp,
java.io.File dir) throws IOException;
public
Process
exec(String[]
command,
String[]
envp,
java.io.File dir) throws IOException;
...
public

Process

exec(String

command,

4.6 Thread-related Exceptions


Figure 4.2. summarizes in one place the thread-related exceptions.
010009000003583901000000cf88000000001610000026060f002220574d4643010000000000010
0141b000000000b00000000200000c43e0100c45e0100010000006c0000000000000000000000d
20100000401000000000000000000006a400000ef23000020454d4600000100c45e01000c00000
0010000000000000000000000000000000005000020030000c40100001a0100000000000000000
00000000000e3e306006e4e0400460000002c00000020000000454d462b014001001c000000100
000000210c0db010000006000000060000000460000008c4b0000804b0000454d462b224004000
c000000000000001e4009000c00000000000000244001000c00000000000000304002001000000
0040000000000803f214007000c0000000000000008400005d84a0000cc4a00000210c0db01000
0000000000000000000000000000000000001000000ffd8ffe000104a4649460001020100480048
0000ffed0a4a50686f746f73686f7020332e30003842494d03ed0000000000100048000000010001
00480000000100013842494d040d000000000004000000783842494d03f3000000000008000000
00000000003842494d040a00000000000100003842494d271000000000000a000100000000000
000013842494d03f5000000000048002f66660001006c66660006000000000001002f6666000100
a1999a0006000000000001003200000001005a00000006000000000001003500000001002d000
000060000000000013842494d03f80000000000700000ffffffffffffffffffffffffffffffffffffffffffff03e80000000
0ffffffffffffffffffffffffffffffffffffffffffff03e800000000ffffffffffffffffffffffffffffffffffffffffffff03e800000000ffffffffffffffffff
ffffffffffffffffffffffffff03e800003842494d040800000000001000000001000002400000024000000000
3842494d0414000000000004000000023842494d040c0000000008b90000000100000070000000
3f00000150000052b00000089d00180001ffd8ffe000104a46494600010201004800480000ffee000
e41646f626500648000000001ffdb0084000c08080809080c09090c110b0a0b11150f0c0c0f15181
31315131318110c0c0c0c0c0c110c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c
0c010d0b0b0d0e0d100e0e10140e0e0e14140e0e0e0e14110c0c0c0c0c11110c0c0c0c0c0c110c0
c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0cffc0001108003f007003012200021
101031101ffdd00040007ffc4013f000001050101010101010000000000000003000102040506070
8090a0b0100010501010101010100000000000000010002030405060708090a0b100001040103
0204020507060805030c33010002110304211231054151611322718132061491a1b14223241552
c16233347282d14307259253f0e1f163733516a2b283264493546445c2a3743617d255e265f2b38
4c3d375e3f3462794a485b495c4d4e4f4a5b5c5d5e5f55666768696a6b6c6d6e6f63747576777879
7a7b7c7d7e7f711000202010204040304050607070605350100021103213112044151617122130
532819114a1b14223c152d1f0332462e1728292435315637334f1250616a2b283072635c2d24493
54a317644555367465e2f2b384c3d375e3f34694a485b495c4d4e4f4a5b5c5d5e5f55666768696a6
b6c6d6e6f62737475767778797a7b7c7ffda000c03010002110311003f00f554924925292492494a
492492535f3ea75b8afadacf5092d26b31ee01cd73d9eff67b99fbeb3b2b0de4b5f8b8155700ee6db
552e693f9a7d96b1fedfeb2d5bde59458f6fd26b5c44f1204aa36e4e4d579a4b6fb1a0348b59535cc
76edf2dfec6cff00c1125343ecf9b7d3ea6360e3438cb0be860d07d2adc0e4eef77bbf4bff0081ad3c5
a58db985985f65201df606d4d07f91fa1b2cb3e92a98d9d77a4c6d756506c860fd03072ff0047790d
77b5ad77bdff00f07fa45a04df5d954dc1ed7bf696ed03f35cee47f55253652492494a49249253ffd0f
554924925290865639e2c06091a6ba8d0f08ab25fd1cbec75aededb5ed656e7d57beb9654eb6ca5
b0c67b7fa43fd4ff00cc1253a072f1c34bb78206ba6a9bed95781fc3fbd64e4f48a31ea7d8ef59b53b
da696643c57eff00d147a0d67a3f9dbbe87f38acbfa439da17dc1b265a326c00876ef6fd1fa3b9fbd9
b7fe2ff99fd1a4a6e3b36883bbe8c6b25b11f3725e9d23fed37fd167f7a0d587752db830b9e6e6edfd
2def781008f66f63b67d2f7ed5740810929a9463b2b6b83e82e2e7b9d2430f27e3f9df49140a98778
a3691aee8608f9ee4751b1a5d5b9a225c0813c6a3ba4a6afed5c2ff004acffb72bffd2899dd5b05a24
dac89027d4acf276f6b3cd0474bc900019b92d1b8ba058c3a13bb66b47d067d16263d2b31ed7b5f
9f9277d82c96bd8d8daedccadbb69fe6f6fb6dff0048929b9f6fc1ff00b9357f9edfef526e5e23880dba
b24e800703fc5547f4fcd7b9a466ded60996835c927e87bbd0fa2cff00a68cdc6bdb4d9539e6e364c
3ed225b22360d95b7d8d494ff00ffd1f46c7eaa326b16538ef7821a48df4ee697b5b7319637d6f659e
958cb362137a8d8eb8b76be6d71f42b6d98f25ac6b3d6d83d5dcef4ecfe7121d0317d36d6f15db15

b2a2fb2a617b9b58d8cf51feddc90e838803806d7b5f01cdf49bb603bd5036ffc71f5bfe3bf4892927d
aef9dbe8dfba2637e3ce9ff5c44aafb5f7b68b19752e735cf6b9c6a20869635dfcd1b3fd22aeefabf82
e6b9afaa97b1c64b1d4b0b67c9bf373bfaef53a5f8955ac79ca6b9b4b1d556c6801a012cfdd1f9be8e
d6a4a5f26cdb559ea9b2c636c8f69ad9b431adbf7bdf67a2dd8cd9fbca03a934d82a1bcd8e6fa819e
a63ee2c107d40df57f9bf737de9df661dcdb5afb831aeb09fa208734b056e6b9b6b1ed731d2abfd83
a26cf4cbaa358fcc35571ceff00a3e97b7dc929b0eceb197b2a7b6c6bae0453597e3873dcd975bb1
9ea6e7ec67d253fb55db833d2b838824377e3c903e918f53f3554183d09a22691320fe8eb13c73ec
fe433fcc50774ff00abc5ce7bcd2e2e077173187470db637e87d07edf724a6f3b2dd5bb6dccbea25b
b9b3e93a7dccab68f4dcff00ceb9890cca4d8ea85cff0055861ccdd5020ebfbdf0537e137200b1f7be
c1b62b70d900175776f6ed67bbdd4d7fc841bba1e0dee2eb887b9c7739c6ba64990e92ff00437fe6
a4a67f6ba89205cf968048dd482012f6b79fde75377fdb562233358c690f2496974b8beae27bc58df
cd55ddd0701d58a9d1e9b636b05740020b5c00db8ff00bd5d68387d1f1df538d8d6d45ae7d6d6b6a
c68da1d11a50efddf7ff53fb0929bedea14bdbb98096f8ee60e74fce7b7f752fda1491204804824398
78fa5f46cf77f65557741c17021c4191b7f9ac7e27747f47fde521d13143b70b08320922ba01d3f96d
c76bffcd494ff00ffd2f44c9c9bd8fb8b0dd66cb031b4d02b2437d365ae71f55bfcaff3fd3621d79b9365
adacd7995b5ce00d9636a6b5a0b5ce2e7fb3f35ccf4ffedbfdf4f96cce7dd67a16fa63747bdb63b4db5
6df47d3867fa7fdff00d3209a7abed0064d7bb690e22bbb991b1e1a5cef76dde929bf8375963b258fb
3d514ddb18ed263655641f4c35bf4ec72ad774abac3b9b63eab034337d76b9ba376fe6067e76cfdf
57f1ff9b23dd1b9db774cc4ff002fdc8a929c93d189987dc1ce6b5a5cdcab41f690776e6b3e9bf637d
5b3fc37f8549bd1880d1bee25836b5c72ad2e00883eed8b592494e557d1dd5c6db2edc20171cab4
b9d0368f51fb3759fdb4abe957d7636d175cf7b48743b26c2c2402df7d5b36fa6eddfcdad54925356
cc63f60663968bb60adae6e90e0c2cdfa3fdbf45aa865f4ab2db4d98b5b71c6cda2b34d2e6ee9ddea
1dcf3ff17fcdad949253cfbba26590d2d786d9bc39ee18f4969677a9b53edf4d9ff1bb77a4de899ad7
bddea03b810d6fd9b1c346bbb76cf576effe5ae812494e08e8f96d6bc4b5ce71969763d1a68d1b7f9
cfa3edfdd52a7a56432d2fb98dbeb877e8becf8ede47b3f48db3f33faab712494ff00ffd9003842494d
04060000000000070005000000010100ffee000e41646f626500644000000001ffdb008400040303
030303040303040604030406070504040507080606070606080a0809090909080a0a0c0c0c0c0c
0a0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c010405050807080f0a0a0f140e0e0e14140e0
e0e0e14110c0c0c0c0c11110c0c0c0c0c0c110c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c
0c0c0c0c0c0cffc000110800c4015e03011100021101031101ffdd0004002cffc401a200000007010
10101010000000000000000040503020601000708090a0b010002020301010101010000000000
0000010002030405060708090a0b1000020103030204020607030402060273010203110400052
112314151061361227181143291a10715b14223c152d1e1331662f0247282f12543345392a2b263
73c235442793a3b33617546474c3d2e2082683090a181984944546a4b456d355281af2e3f3c4d4e
4f465758595a5b5c5d5e5f566768696a6b6c6d6e6f637475767778797a7b7c7d7e7f738485868788
898a8b8c8d8e8f82939495969798999a9b9c9d9e9f92a3a4a5a6a7a8a9aaabacadaeafa11000202
0102030505040506040803036d0100021103042112314105511361220671819132a1b1f014c1d1
e1234215526272f1332434438216925325a263b2c20773d235e2448317549308090a1819263645
1a2764745537f2a3b3c32829d3e3f38494a4b4c4d4e4f465758595a5b5c5d5e5f5465666768696a6
b6c6d6e6f6475767778797a7b7c7d7e7f738485868788898a8b8c8d8e8f839495969798999a9b9c
9d9e9f92a3a4a5a6a7a8a9aaabacadaeafaffda000c03010002110311003f00f7f62aec55d8abb157
62aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb15762af38b7f27f95bccde7
4f375c798749b5d4e7b79ec6181eea3595a38fea313f15e55a0e4c4d3c7154dffe5557e5b7fd4ada6
ffd2327f4c55219741fc848259619adbcb91cb0f2332335b29411970c5813b50c6e0ffa8dfca7154f53
f2b7f2d1d1648fcb1a632380cacb6e84107704103155c3f2aff2e00a0f2be9c01dc8faba7f4c5542f7f2
dbf2b34fb59afaff00cbda55ad95ba34b71733431c71c68a2accccd40001d49c554dff002eff0029e3b
d834d9341d25751ba8e49adad5a38c4d2c5171123a21dd82f35e4474e43c715458fcabfcb95fb3e5
9d3c7ca0518aa9dd7e58fe5f456b71247e5cb2571131044401d94d3718aa7be57667f2ce8cee4b3
b58da962c49249856a493b9c5536c55d8ab4481d7bf4c55bc55d8abb15762aec55d8abb15762aec
55d8abfffd0f7f62aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb15762aec5
5d8abb15762ac4bcb4b4f3779d5bb1bbb1dfe5a7c18ab2dc55e49e70f2d6a77badf9f12c348924b3
bff0025c7a769924688229750497517f4a3048a383711b54802adf6bae2ac624f2dfe68c7a8c963a4
dc6b7158595a6b2da3996f5842d79f50d30e9eb333b92cbf58179c55fe05df97c1c3154c35bf2d7e6
7ea76d3cfe5dbed534e82ea7922b2b6bcba61736b11b3b5baf524225f8c0bbb492dc02c4f0bb969f
bae38aa1fcdf65f997a942da35be97aa489a9e9576ba89f5a29acc4baa586a0c6d94b4cbc0c172f04
40947f856321d52a19543eb1e5bfcc2b0d4a2d43428b55d4ecece2d5df496bb98cba8c36b751e97e
a4025b8914fa923c3766d95d871f814b22f0c55ec7e4b8af61f2d5947a81be6b8fde303aa9437be9b
c8cc825f4cb005548500b3385039b33f2c5538bd15b3b803a989c0ff8138aa5fe55dbcb1a28ff00970
b5ff932b8aa6f8abb1568d76a7d38ab78abb15762aec55d8abb15762aec55d8abb157ffd1f7f62aec
55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb15762ac6757
fcbdf256bda8c9ab6afa2dbdd6a532aa4d72c183bac638a862a45683615c55043f29bf2e4104797a
d811b023d41eff00cd8ab5ff002a93f2ea9c7f4041c7c03cb4eb5fe7c5546e3f2a3f2cade192e6e7458
22b7814cb2caf34ea8ab18a9663ea0140077c55847967f2e3ca92ead1de6b5a42b691e670f79a15

131

b192e54599b71fbb8790906f35bf1b8e2c392c9f5815e3c42aace9bf287f2e9cd5b4453ff3dee7a7fc8
dc5571fca3fcbc229fa1801e02e2e80e94e825f6c5562fe4f7e5ca8e2ba280be02e6ebfeaae2ae6fc9f
fcba70cada354382181babbdc1ebfeeef7c5599db5bc1696f0da5b208ada0458a18d765544015547
b0031555c55c001b0d862aec55d8abb15762aec55d8abb15762aec55d8abb157ffd2f7f62aec55d8
abb15762aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb
1551bbb4b6bfb59ec6f614b8b3b98de1b882550f1c91480ab2b29d8820d08c5585f953cb3e5f8f5df
304e9a6c226d335541a7395e46dc1d36dbfbaad787f78ff0067f9dbf9b156758abb15762aec55d8ab
b15762aec55d8abb15762aec55d8abb15762aec55d8abb157fffd3f7f62aec55d8abb15762aec55d
8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb15762ac33ced04da86b1e54d1c5f5e
5959df5edc8bbfa85c4b672c8b0d8cf22a99212adc43286a57b62aa5a8f92f43d2ac2eb54bfd775f8a
c6ca292e6e65fd33a8b708a252eed4594934009d862a80d0742f2c7992213695ae7999e268a2b98
9e7d4757b61241382639233332735603aae2a9c7fcabbd3bfeaf5aff00fdc6afff00eab62a84b7fcafd
1ec64beb95d775f5fae4c2eae0b6b378a032c51c55a8901a71897ed13f762abad3c9da45ecb2adb6
b7e616107a644c754d404322ca81d4c7217e12ad0ee50b00763be2a8a1f97d62015fd37afefbefac
5e93f7fa98aaf1e43b40853f4debb4f1fd2b755fbf9d7155a3c81661830d735ea8de8756bb23ee2f4c
5513e55b6974fbad6f4b379757b6f69771fd5defa66b995565b586465e6f56a7262403d3156498ab
b15762aec55d8abb15762aec55d8abb15762aec55d8abffd4f7f62aec55d8abb15762aec55d8abb1
5762aec55d8abb15762aec55d8abb15762aec55d8abb15762ac4fccdff2967927fe636f7fee9b718a
a67e6eb1bcd4fca9aee99a7c626bfbdd3eeadad626608ad2cd0b2202c7602a7738abc68fe5af9b2ef
c951f9713479a0d4e1b6d3fd0bdd475737cb0dee9b6ecbfb901d8a43250c0ea0ad5672fc470dd54c
af3c9be78b86d5af174484deb3db4da71fd26620fa530b4371a3145531fc3e8caa92481a2f8f97fbb6
5a2ac6ad7c95a86b5e71d6bcb96b6ef6f3e9367a51adc6a525cadadb4f657b14966c18fef04a24447
a27a7c7bfeea3aaa99e8ff00973e79b5b482caef4b45d06082c2ddf414bd431968748169ea444305
4f42e57d40a38f2e5eaafef11462a9e792fc8fe75d0fce5a6eabab17b98a28afad757d51eefd43761a
d34e482431162686782e1f8d3e03272fdb6c55ec58abb1548b45ff008edf993fe62adffea0a0c553dc
55d8abb15762aec55d8abb15762aec55d8abb15762aec55fffd5f7f62aec55d8abb15762aec55d8a
bb15762aec55d8abb15762aec55d8abb15762aec55d8abb15762a93ebde5bb2f301b292e67b9b5
b9d3a569ed2e6ce6682547923685b71d41572287154bff00c14bff005306b7ff0049cdff0034e2aeff0
0052ffd4c1adffd2737fcd38ab7fe0b5ffabfeb5ff49cdff34e2ac3357b5bdb3f30830f983574f2ae94f15
9ebd70f7c37bad47888b8b15aa8b7ac6d2f4056e01ff751c55998f25ad6bfa7f5affa4e6ff9a71577f83
06dfee7f5adbfe5f4ff00cd38ab7fe0dd80fd3facec41ff007b3ad3fd862ad8f27906bfa7f59eb5a1bb07f
e34c5532d174483448ee162b8b8bb9aea5134f71792fad2b32c6b1815a0a00a836a62a99e2aec55
d8abb15762aec55d8abb15762aec55d8abb15762afffd6f7f62aec55d8abb15762aec55d8abb1576
2aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb15762af3dd57cb166fe6cb5
d145ddf47a4ebd69abde6a9671ddcab14b37a968b5a035038cce28a40a1ff00257157a0468228d2
3524aa00a0b124d00a6e4f5c55762aec55d8abb15762aec55d8abb15762aec55d8abb15762aec5
5d8abb15762aff00ffd7f7f62aec55d8abb15762aec55d8abb15762a81d5b59d2741b33a86b77d069
f62aca86e2ea458a3e6e68abc9881527a0c55211f99ff009727a79ab4bffa4b87bffb2c55bff959df97
40d3fc53a5d4f6fadc3ff3562ad7fcad0fcb9dff00e76bd2b6ebfe990ffcd58ab87e687e5c9e9e6bd2b6
d8ff00a643dbfd962adffcacefcbadff00e76ad2b6ebfe990ffcd58ab1ab7fcc5f2dea577aa487f306c6c
2da2bb3059c292589430ac51b720d2ab33558b6f5a62a8a6f38796b61ff002b3ad01a7fbf34cf1ebfd
de2ad7f8c3cb4d4e3f99d69bec2926986a47fcf3c5571f36797aadff2132d471ddbe3d3360761feebc
55a1e6ff2d96e23f336ccb03423d4d32b5ebfc98aaa0f34e80db8fccab423fe32699ff3462aad6baf69
57d731d959fe625bcf773308e18236d35a4776340aaa12a493d062a9ff00e86d77fea64b9ffa46b3ff
00aa38abbf436bbff5325cff00d2359ffd51c55dfa1b5dff00a992e7fe91acff00ea8e2a974fe51d6a7d6
ec75a3e66b81258dbdd5aaa7d56d096176d03135f4f6a7a03b62a98fe86d77fea63b9ff00a46b3ffaa
38abbf436bbff005325cffd2359ff00d51c55dfa1b5dffa992e7fe91acffea8e2aefd0daeff00d4c973ff00
48d67ff5471577e86d77fea64b9ffa46b3ff00aa58abbf436bddbcc971ff0048d69ff54b155a345f3050
d7ccb715edfe8b69b7fc92c5568d17cc83af99e63ff46969ff003462abbf43798bfea649bfe912d7fe68
c55afd0de64a53fc4b2fcfea96dff34e2a80d76cbcd3a7e89a9dfc1e657135adacf3c4cd676cc03451b
30247115dc62ac8f499669f4ab19ee5fd4b892de279a4a05e4ec80b1a0d854f618aa3315762aec55
d8abb15762aff00ffd0f7f62aec55d8abb15762aec55d8abb15762ac4fcf20993caf4ff00abf59ffc425c
55e5df9cff0098fe73f2679f2c349d0350962b2bdd06e2eeced3ea76f3d91d656fedad2d45f5c4815a
ded656b8e134bea270f84ab06d9956617ff9b674896fad2ff43966bcd2e6bdb3bd36b346636b9d3f4
687596f4fd4e24a3a4a6352db875f8b66c5588f99bf323cddad796b54f327976ee6f2b4fe5ed534dd0
eff00496b7b3bff005a6d56e34f759bd67571c56d6f548550bc66e5cf9aa8aaa9ba7e63eb7e50bbd4
740d6a3bbf356b56fa94b6115c71b2b084ac7a43eaea5425280c1110e5813ebd78aac6cb4555e2fc
f4b4bbb567d37cafa95fea8447756fa45b7a52ddcda7cb6505facc8a8587a9e9dc22fa55fef3e1f529f
162a94f933ce7e78d57cc3acc57326a9a9dbe99ab6b3696b03e9f616da55c4165c96dadfeb602c89
3b3320e47e0e4ad518ab24d03f3722f32e97a65fe8fe5cb8b8b9d5609afe1d3966804e34fb59e2b69
a53c885e6b2cbc7d1243511b75d94aaa36df9cb0ea7696179a3f95750bc835aba86d7419dcc16f05
e0b886ea557124aca07116adcc0e5c44911fdaf8554bacbf3a6d758b6b5d71f4dbad23cb69a9c569f
59ff4795e553a2bea9325c44c0b46b1eeb5899d99e3146e0cd8aa3a7fce8b4838dbff0086aedb549
214bd86cc4b6a03594f6171a84537a8640bf125acd1b28a959569ba10f8abd2b4cbbb2d5f4db3d56
d63ff0045be822b9839a80de9cc81d6a37a1a1df1548bcf7147fa2b4f2a8037e9ad1a84000eda95be

2acaf15762aec55d8abb15762aec55d8ab47a1c55e29a5ff00852d6cbc990f987f4ac97be67d3e7be
b8d59b5bbf86de13636cb737124f5bc40abc5ab555e23fc95c553e4b7fca292e6ceda1d7e4966be8
eea6b331798352911e3b0e1f5860eb76547a7ea272a9fdac5555ac3f2993d1f53cc450dc442e210f
e64be52f09665e601bd1f0f2565af8a91db15548b4afcac9e1facc3af3bdbf0697d51e63bfe1c23758
d9b97d76945775527b3328fda18aa1a28bf28ae277b687cc12c8f15926a8ec9afea46316524af02c
bea0bbe14322327daaf214c5529f38cdf961e5d48acee7f486aeb7d657d7b25ada6bb7d293676765
25e3b146bd1c9648e32a9fb2c5854d0e2a9869769f97ed6f14d7c6fb44b368a26b17bcf305d2c528
785a731a08efda8f1c69cdd08144f88557154ea6d17f2f2da5b88ee3569a29ada3173731bebb7ead
1c4c400eca6efe15a91bf4dc78e2aa17907e58e9b0cf7379afb4315adbc97b704ebf7c4a5b448b2bc
8545d93c423ab569f6594f7c5575b58791c896e2e2fee2d22fac8b4b7964d7ef19663c1245a01767
8921c7c0d47ee45197154cacf43f275fdc4d6961a9cf7575686971041ad5ecb2444334679aadc92bf
12b2fc5fb4a7c315478f28692bf666d447fdbcefcfeb9f15497cbf6265d6fce1a04d79792e956f2d80b6
8def2e1a58b9daa48e1262feaa866dcfc7face2afffd1f7f62aec55d8abb15762aec55d8abb15762ac5
3cedfde7963fedbb69ff0026e6c555759fcbef27f987587d775bd316fb52974e9f4595a6925689f4dbb
359adde1e7e93239a16aa75553fb2b8aa5727e4efe5c4c0faba2f3636e2ccc86eaefd4308b6365f6f
d6e5ccc07d1692bea34615198845a2aab37e52f9027d32f346974a73a6ea1796fa9dec02eef17d5b
cb28e38a091984c1aa8b0c7415e3fbb434aa8c5556ff00f2bbc93a9ea571ac5f69f2cba8ddccd753c
df5cbb5e533da35816e2b3051fe8ecd0ec3ec1c55063f263f2d425bc7fa1015b57b692df95d5db153
656c2ce25a99abc3d002274fb12a0a4aaf8ab70fe4e7e5f4125c490e9d70ab752dcdc4d0fe91d43d0
33deaba4d2ac3f58f4d5d83b51d54327ec71db15578ff0029bf2fa2bc5bf8b4654b94bd97534649ee
1545cdc0412d144817d393d2432434f4646457742c2b8aa49acfe4af96e5fd150f966de2d1ac6db5
b5d735386292ed1a5022b8468adda19e336e0b5c349c63a47cabfbbf8db15642df961e466be8350
5d25639eda586e218e39a78edc4b6d6c6ce36302c8223480988d53e24f85ab8aa8b7e53f911ad20
b23a6c82dedbd41005bbbb565496d9eccc6184a1bd3581da28e3af08d18fa6ab8ab2bd3ac2d34ab
0b5d2ec23f4ac6ca18edad62ab3708a15088b56249a000549ae2a9079ea9fa2f4d1d01d6b4606a2
bff4b183156518abb15762aec55d8abb15762aec55a6fb2df238abc6a6fcbcd4fcede4ff0025c963a8
5bd8dbda797afb4f952e2079ddff004ce9c2d7929592303d3fb5420f3e9f0f5c5542ff00f22f57beb59e
dc6bb6b6ed37adf1a59b3aa96834a58be069681610000026060f002220574d46430100000000000
1000000000000000b00000000200000c41e0100c45e0100ca26d2d0c8a76786468fe1601f154d2e
ff002ab5cb8faf4b1dce8f0cd7d61a6dabc30583c36a97163a9cba8cceb1aca4f194cccbbb73e5fbc7
66e4462a96f9d7f2e3cc56e359d674d9e0d4229a699f4ed292ca5967e7a9df699712b4acb300c913
59134545fdd1fe618aaacbf937e618afaef57d3357b08afef9e2d4ae60b9b3927b43a9c57f7178ca10
4a87eaecb752275f543aa4c1abc97155bac7e4c7986f22bad3b4ed674db5d19e2be3676cba7bc66
0b8d4b493a53a27a738410460fa91204e43fbae5c7e2c5514bf957e637d03fc3eb3683a55bc52db5
ddbbe97a73c6df5ed3a2adbdc3f39086633245ea80072811a2e7fbc2d8aa3353fcb5f335f8ba90ea7
a6493c1a88d6345fac583c9c659d849756f74e265692066afa613d365fdd73e7e92d55480fe566a7
e6197cd3a0ce96da4e9505c19348b986c9edc3dc4be5f8b4b0d12abf0faaa73907a6bf1feec2f2a7c
4554c9bf297cc1717bad5fdd6a56064d7e5d4e2be816de530ad96b369636f3140ce4fad1b58ab21a
f0657657e80e2a9cf90bf2e350f27eb135fdc5e5b5c5b48baa0558a374989d4b5593505e6ccc43705
7e0c7f69be2ef4c55e8d8ab10f2c1af9cbcf1ed77a78ff00b97c27f8e2afffd2f7f62aec55d8abb15762a
ec55d8abb15762a976b7a0e8fe63b23a76b9671ded973597d196b40e9bab0208208f118aa467f2c
bc8cd4e5a421e3f66b2cdb7fc94c55b1f967e460081a42006b5fdecddfaffbb3156ffe55a79201a8d25
41f6967ff00aa98ab7ff2adfc947ae963fe474fff005531563fe74f2d791fcafa04d7e2cedad6ee678acf
4f96f2e678ed96eee5847134adea8a2213cdf7fb0ad8aa53e42f2a7e5dfd66ff00ca9672c3ac0d3552
e6c6f63d45eea492d2e49e41fd3999818e5575f8bf60c7be2acdff00e55d79341afe8ddfad7d7b8ffaa
98ab7ff002aebc9bbff00b8debff17dc7fd54c55dff002aefc9dff56df7fefee3feaa62adff00cabcf2810a3
f479a2fd9ff0048b8dbfe4a62ae5fcbcf2829aad8303d76b9b9ebff00237155d0f903ca36f7305dc7a6
833db4893c0d24b348165898323057722aa40236eb8ab25c55d8abb15762aec55d8abb15762aec
558f43e48f2ddb451dbdb5bcd05bc202c30c579771c68a3a2aaaca0003b018aaa7f83f43fe5badfaff
00a75e7fd56c556af9374141c552e80f0faf5eff00d56c55bff076854a71baa75ff7bef7e7fefec55bff00
086864d78dd7fd27deff00d56c55c3c9fa18e8b75ff49f7bff0055b1577f84343fe5baff00a4fbdffaad8a
bbfc21a1ff002dd7fd27deff00d56c55dfe10d13f96ebfe93ef7feab62ad8f28e88370b75ff49d79ff0055
b156ff00c27a2ff2dd6fff002fd79ff55b155c3cafa38dc2dcff00d265dffd55c557db796f46b48af21b681
a31a83a4b7b209a6f5a578d5514b4bcf9eca8abf6ba0c55ffd3f7f62aec55d8abb15762aec55d8abb
15762aec55d8abb15762aec5564b0c33a7a73c6b2467aa380c3ee38ab10fcadb3b3b7f22e852c16
d1432bda2091a34546342762546f8ab32c55d8abb15762aec55d8abb15762aec55d8abb15762ae
c55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb15762aff00ffd4f7f62aec55d8aa
0f56e474abe0acc8df57978ba314653c0ee186e08ec715617e46f2d25ef92bcb77b73ab6af25cdce9
56334ceda95c92cf25bc6cc4d5fb938ab201e51b51ff4b3d5bfee23727fe37c55c3ca36a3fe967ab6d
ff6b1b9ff009af156ff00c276dbff00b93d577dbfe3a171ff0035e2aeff0009db56bfa4f55d853fe3a171ff
0035e2aeff0009db541fd27aaedff6b0b8ff009af1577f84edab5fd27aaffdc42e3fe6ac55dfe13b6a53f
49eabff00710b8ff9af1570f2a5b035fd27aaefe3a85c7fcd58aa57a3e822f27d5d27d535465b4be6b7
83fd3e7148c410bd366df7738aa6bfe15b7ffab96a9ff49f71ff003562a87b0f23697a5d9c3a7d85eea

133

7059dbaf08625d42e48551d855c9c5511fe15b7ff00ab96a9ff0049f71ff3562ae1e55b71ff004b2d53f
e93ee3fe6ac55dfe15b7ffab96a9ff49f71ff003562adff0085adff00eae5aa7fd27cff00f3562a92f94f47f
d2de5cd3f50bad5b5492e2e22e5249f5d98548622b452076ed8aa743cad0035fd27aa7fd274ff00f3
562ad1f2b4269fee5354007617d37f5c55aff0ac35a9d5754f6ff4e976fc71568f95222411abeaa29d8
5ec94fc71572f95115abfa63553b5286f1c8fd58ab87951294fd33aafcfeb8dfd3156bfc282807e9bd5
b6eff5b3bffc2e2ab7fc2009a9d7358aff00cc611fa971568f940f5fd3fac577ff008fbf1a76e14da98ab4
7c9ec7fe9a0d647fd1daff00d53c55cde4f66aff00cec3ac8aedb5da8ff9978aad1e4e714ff9d8f5a207
63749ff54b1569bc9923107fc49ad0a1ad05d20ff9958aa5de61f2d5d69da06a9a85bf99b5a49ed6d
279e26facc468f1c6ccbb18483423156636309b7b3b780cb24e638d14cd310d2bd140e4e4000b1ef
b62a88c55d8abb15762aec55d8abb15762aff00ffd5f5cf94756fcc7f35f94f42f34c7a86876cbade9f6
ba8adb7e8ebc90462ee1594273faea96e3ca95e22be03154e0dbfe656c06afa1d4539d74cbcfa69f
e9ff762ad9b6fcc82df0eb1a201bffd2b2eced5dbfe3ff15435c587e675cdbcd6edac684beac4d1f21a
65e50330a135fd21ef8aa1b41d03f32743d0f4dd0e1d6f43963d32d20b2491b4cbbe4c2de358c120
5f8dc85a9c551e2dbf3377ff00731a0edd2ba5de0ffbb862ad9b5fcd0e5f0eafa0f1ee0e99795ffba862
aefaafe6793b6ada08141ff4acbc3bf7ff008ffc55afaafe68f1ff008eb681cffed997b4ff00a8fc5570b5fc
cfdabaae83ef4d36f3fecbf156beabf9a1ff00575d03fee1b79ff65f8aa3bc95acea1aff00972df52d556
15d40cd776f71f5557484b5a5d4b6fc916466601bd3e542c695eb8ab20c5522f2e7fbd5e60ffb69bff
d435be2a95eadaaf9bae7cdb37977cb9369b6b05ae9d6d7f34da85bcf72eef753dc44154453c2142
882bbf2af2c557fd5bf343feae7a0ff00dc3ef3fecb71577d5bf3429ff1d3d06bff006cfbca7fd46e2aefa
bfe67ff00d5cb41ff00b87de7fd96e2adfd5ff33e9b6a3a0d7fe602f3fecb31577d5ff337bea3a0d3fe60
2f3fecb3154bf44d0ff32f44d26d34a8b54d0a48ed63f4c39b0bc05b727b5e6d8aa6060fccdffab8e83
4effe8379ff006598ab5e87e670ff00a58e83ff0048379ff6598ab843f99c47fc74341ffa41bdff00b2bc5
5bf43f33bfeae3a0ffd20de7fd95e2ab7d1fcceff00ab8e815ff981bcff00b2bc55017fadf9f340d4b414d
5a5d22f34fd5b538b4c992d2dee609d04d14b20915a4b8917631f42b8aa79af6bfaa586afa5e89a3e
9f0dede6a515ddc17b9b86b58a38eccc20ee90cc496330a6c3a1c550977ae79c6c22135f699a35ac
25b80927d5e58d791fb22ad64054f862aa10f99fcd371325bc363a1493c8d2471c51eb6eced241fd
ea802caa4a54731fb3df15469d43f300569a0e96695a7fb959874e9ff1e1df15509f5bf3bd9c26e2fb4
7d1eda00541965d6254405cf103935881524803c715556d57cf6ae223a1695eab7228875794332a
d2a40fa876a8c55b6d4bf3007d9f2f6986a475d5e6141dff00e3c3154bf5d3f985ac689a8e951e83a6
412df5b4b6cb2b6ad332a9950af220586e05715470d4bf30111557cb9a6b50007fdcbca074ff00980
c5577e93f3fefff003ae69bedfee5e5dcff00d2062a86baf31f9d2c23136a1a16936b0960a259b5b68d
6a7b55ac40ae2ad5a798fceb7f199ac742d26ea004a1960d71a450c3b556c48aef8aa24eabf981db
cb3a71e9ff004b893e9ff8f1c55afd2bf9814ff94674faff00db5dff00ec8715526d7bcf4b32db379734d
17120678a23ad307744203305fa95481c857e78aaa7e97fcc1ffa95ec3fee30dff6458aa969be6bf31
5fcdae696da0c10ebfa38b475b5faff003b7992f79107d7fab82a54236de91ede38abffd6f4231d4e5ff
9c7ff00cbd8347bd86db54934dd12582caf6ee5b0b7d485bd9acef60f7901060f5910f093ecf355560
ca5971548bcb9f9ebaa5bd8ada697a583e5ed13468f50bdfd3d7e65d74acf66f72920504bcf1c4ea6
292650c1d23925f52a3895592ea3f9c7aae917b169eda8e81a8aceda6b5adf5a34a6dee62bed693
4d97d32663568e299246e0d22c6ea6ac51be15589db7e7079b3528346f304d369161a9eb5a2d8e
a10cd6f25ccb6d6f6973afd9584c92412dc089d82cce7d7a2b27d9fb35c5533fcc4f3b799353d0757
d2353a69773e5ef3068f61777d6b7175a44771f5fd66d96dd62b949b97a72e9f2335c539f1327f938
aa656de7e9fc9f79e5dd034dbed3a5d2752d66e74dd766b8bfbcd70e973492235a85ba91ea52756
485165e3e95ccf1af2e21a3c550faa7e7c6bd1596872e84ba16a175e633335bacf74d650e9cf6b0bc
b2595f4b239517155e1fb2e0a4dfb86e0a1956aebf397cead7c2049345b6b29b5a934cf5d52679ac
6ded35db6d31a4bb59265149e39c946fdd7075fdbad515455afe6e6a5a5d8fa3a7dada5c2d95c033
5bb4f3dcc97e2f3cc573a548b652c92bb56dfd312bab071fbc8e25f4d28d8ab2afca5fcc5d6bcf125f4
1adae9e24874fd335481b4c327111ea66e57d3712bb9254db5438e2087a71f87755e9d8ab12fcb6f
f94512bff2dfab75ff00b69dce2acb71548bcbbfef57983feda6ff00f50d6f8aa06d4ffc84bd597fed45a6
1f7ff7b2ff00b62af213aa799edbcd66cae751bed4fcababf9b2ed7479e1b89bfdc66a5a7348ed6370f
0c819ed2e2356748e43c23911a0fb2f100aa43e71fcd0d43cd5a445a826a6960f1e89ac4aa749be9
add0c971e564d4be3092fdb8273447fb4bfe4b73c551fa5ebfe70d27cc7e6bf3669d7734fe5ed1b5a
4b0be92f7549af2d1d351b5d3e28a25b22ccb0a5b4d70d74f32b44de9abc43e17263553b8ff35bcc
2fe6bb9b38a0d3e2d5a965a60b99ee6e8d9caafac6a1a7fd623b6127100fa0b282bf1b0631348446
8d8aa5ba27e7f79af54d425823b6d2a66be6b1974db59ee16c628e09349b0bf9d0cd2c839b48d76f
e9305d9626fddc9f171552cd53ce1e62f39df683acdd5c5b5b0bbb1f338b7d32cbcc37da15b94d1f5
0b7b38a69a48df8bca9595c542afc5c59be0ae2acf57f382e61d6757d22e2ef4a8adad6f2c6d34ad4
65690472db6a35e177292ea3846ea6da40bc7fd2be1e4950b8aa5375f9dde66124b15a58e8c8d1e
a961a0cf2cd78d270bbbabeb4b3798448c2536e56e1a689dd21f8553edfab50aa4b3fe74f988dcd8
ea9acdbdbc896f3dacb068d63713c12990e8daa5d4cea51cfd66295ed7f74b227050c8ff14898aa73
aafe79798b4bd56db4e8ecf4bba8122fae5d5f2492ac535bd74a3c60f89a8e06a455b9b37f768f4a4
9c5557bcee0f4dbf1c55857e6012d77e4da0d87992d3dbfe3dae71546eaa69f983e5a1e3a6eb1f84
9618aa45f9d76b717de4cb5b6b5b2b8bf9575dd06e1e0b4b77bb904369ab5b5c4d2148d58f148e3
76634e83157983d879b6c759b8d57cbba1de3eb369ad79deff004a32d948b1992eac47d4db9c88a
8127900085982c8df0d71545eafe71f3e5858d8416baeeac46a66fae04d7ba24b697da74319b4e17
1340905cc8f6d01332b7aa917adeaed2d22525542f9ef5af3f798ae3ccba0a697abdff94ee6d6e0da

0934d9248dee6d353d3dad1a1961842b2496e679138b396a7ef1bd45e0aaa79e7497cdcfe6bb5fc
d5d2b4bbcbab5f2a6a71e8f6fa4c50dd1bebbd1ef02c5a8bc36c2201f93c91ceaec7ecd9285a73c55
2df3279bff0031f4cb4bab8b7d47569af750f31ea961a769bfa3f84e9a45bc32b5b5cc091594923471
3b44f23b4727aa948eaacdf12a9b47e67fcc48f5c82d239f55d4b4a92eac268756b6d309b39b4eb8
d064334bcc4042ff00a7aa3043fbc8cb71e3e9e2a96f95f5ff00cdff00d1fa1ddeb13eb136af25bf9526
d4ac6e74e8e183eb5a83491eb08e63b505522511b3007f70c7962a8ed075cfcccd42d3469b56d43
5cb49eff51b383cc16a7445b5fd1e3ea5766ed229648a6f56233ac3c6645f4d7e1e121f5388558aea
ff00e3df30796ae0f996cf58b8d56fedfc8979141269d34f0477565a989752916048b8a491842f347f0
d57b71e38ab2ed6f55f3969ba735e7949b53bbbcb6d59eeb5716ba1fe8e17ba37a718b810c7342c
5ee614282ddfed5c3a7a6048aafc15446bde6cfcc3165e63bdd12df5bfd35a75c30b5d38693ead9cd
a449736de9dc5bb3c68649d6d9a57f4564f54cbcd248c705a2a945f79a3f328ea69a2e91adea571a
a1d0df53d1e29f488accddde7e9631c4b750c913c90c5e8b0898c8d0b32299fe07c552fb1d4ff0036
749b5716167a9de798233e757905fd8fae55c6ab1cba70b7b89211f0c96bccc31ac9e94bc11789e2
ab8aa7be68d77f35166d453cbf79a9a68f19d566d1af63d3524b99e387468ae2dd64492d988a5f16
8a3aa23ca2b1fc54e78ab24f2eea7abb6a7e77d4fd16fd3e9a268d7060f4dabf5c363712f0f4bed579
9a70ebdb157fffd7f537946d7ce3a1f917cbfe50d5fc891ea0748d32cf4db926feca48257b48122665
5900f858ad4557154fc6abe6a1325c2f90293c719b7497ebd601d6026bc15ab5e3503e1fb38aa9fd
7fccc16241f978bc6dd0c500faf5852342455507eca9e2361e18aa92cdae46bfbbfcb585484308517
7a701e993cb86c3ecd77a74c5509616fe60b3b4b8b1b8f22dc6a915d5cbdf5c4baa6a9657b234f21
a0fef4900220548c0d911428c551425d6d62fab2fe5a422db61e98bbd342d03731f0d29b37c5feb6f
8aa20ea1e6528d17fcabc531bcc2e9d4dee9f46b80437aa47770403cfed57154ab42b2d6b40b7d4
a0b5f204928d5ef2e351bf6b8d434f95a59eea669d831daaa1dcf00d5e1db154ce1bef31db88841f9
74908859de211dee9ea11a6da42b4e85abf111f6bbe2abad351f32e9e59ac3f2f16d58a84261bdd3
e2aa26eaa7891b024d062a8b3e64f3b6dff3a44b5eff00ee4acbfe6ac5519e43d3752d27cb16d69ab
c0b6ba8b4f7b7335b2482611fd6ef26b854e6a00242c801236ae2ac931548bcbbfef57983feda6fff0
050d6f8aa0350d33cc96be6bb9f316896d637b0dde9d6d60f15ddccb6b223dacf732f205209832b0
9c0ed4e38aad8079ced9585bf96f4387d490cf288f5199434ac77734d3c558ff31df1543cba5eb9345
14737943cbf2a46195637bb6654120f882d74f3f6bbf8e2aad0dbf996d63b88adbcada2429740fd65
23be7459491c7f780580e551b6f8aac7d37579047ea793f4376891628f95dd42470ff748b5b0d957b
0fd9fd9c5574761ac27a75f28e8aa2168a48785dfd89200c2365ff411428188423ecd5a98aa849a15
dcca8b3792740711f21186b8560aaec5980ad86d56249f7c5513269faacc1d65f2968ee93234532b
5d860f1bbfa8c8c0d8eea5fe220fed7c5d7154a3ccde50bff36d8fd4b55f2ed847caeacaf6692defc07
9df4c996e2de398bd83738c3a0aa30fb3f0e2a9c359eb324d0dd49e54d20dedb84f467fae55e3310
217831b2a80a1982d3a571558ba55ff00058dbca1a288e2e6b020b95e2a923076007d4b6e4c0330
1d48ae2a997d73cdc06da2d957c3f49494ff00a84c5528d5f49f346bf7ba01b8b2b3b1b4d27548b53
9e55bc92e1d9218a68f82a7d5a3dc990756c5519e67d0fcc977ac693aef966eac60bcd3e0bbb5963
d4a09678de3bc681aaa619632aca60f7ad715427a1f9b601a5ef9709edfe877c36ffa4a38aa9fa1f9c
3534bbf2c85ec3eab7e69ff004f031549b5af25f9e7cc575677dae59793b52bdd3ebf539aef4fbc95e
2e44160acd393c4955257a55462a9dfa5f9bc2b4baf2dfb7fa3dfff00d57c55608bf392849b9f2c73f1
16fa8529ff0023f1549fcc1e4ef3ef9ad2d63f32d8793b564b3732db0bcb1bd9bd29185094e529a546
c7c7be2abf58d47f363cb1a15c6a574fe5afaad8c7f05bda5aea2cefd1638a18d65a966242220ead4
18aa36caeff0036b52b4b6d474fbcf2b5ce9d77124f6f3c71ea0cb24722f25656f53704107154571fce
0a6f2796abe3c2ff0071f2e7b62ae0bf9c35a97f2d53b8097fbffc36d8ab54fce2afdbf2cd3c78df8fc39
62ad91f9c1b50f968ee6a08bf1f2ef8aa00e8ff0099ff00a63f4f8b3f2afe99fab7d44df52fc4df560fea7a
5cbbaf23ca9e3be2a8eafe71ff002f967d872bff00f9a7156abf9cbfc9e58af7f8f50ff9a71550d17cbde
7fd3ae7cd1e62b993477f32eb46c12cade2fad0b18e3b2528c65661ea1660ec4715fe5c55ffd0f7f62
aec55d8abb15762aec55d8abb15762aec55d8abb15762a917977fdeaf307fdb4dff00ea1adf154f71
5762aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8ab08fcc4
7d6ac22b2f315adbdbdfe89e5f5b8d4f50d36698dbc93cf0c63eae51bd194523abbd0f1fde7a6d5f87
154e7ca7a76a5a5595d5a5fc50c101ba9a6b0b782533ac56f31127a7c8c517d9767e202fc29c5715
4fb15762aec55d8abb15762aec55d8abfffd1f7f62aec55d8abb15762aec55d8abb15762ac43cdf1de
df6b3e5dd1adf53bbd32daf64bb6b992c1d2295c4101645e4c8f41535db15625773e8f65aeddf9765
f33f9adafeca6d36dee59258cc4adacbb476a43fa42a199195a9f67f6b154dfcbfa569fe63d32cb55d3
fcdbe6048afa279a186e2ea28a7e11bfa6e5a330d4716d8f862a8e1e56b6648a58bce1ad4c2e0349
6c23bf858cc15791f4c08be2db7db1562be5c9bca7ab5fc963a7f9b3cc76d7b7ba5c1e6964ba9c45e
ad85d7eec4c19a222a863092203fbbf86ab465aaa99f9563d0fceba269de63d17cdfe605d3b57596
4d356e6e56d669a3898ab32c3242af4dabbaf4df1547dcf97ed6de289dbcdbaf3d9f275b8bd8ef603
0db88626999e793d3011405a54f72b5c555adfcaf677ab13d9f9db599965856ea130ea10387b7905
1651488d50f66e98ab1eb8b9d02d756934b93ce7e63296d27a179a8adc426c6da636ad7bc679bd
1a27ee579f26f83755e5cb6c5537974ad1e0d3bf4c4df983aa47a57a315cfd71f50b410fa17078c52
7330538b9d91bf68f4c5505e688f4cf285bd9dc6a7e6df32cbf5ebeb7d26de2b4961b990deddff0073
1955b7aaf3db73b6e31546e91a1c7ac5a8b98bcd5e64b57f52485ed6f6682dee15e37319051adeb
4247c246cddb1547af93cb0257ce7ae302e6114bbb63fbc52415dadfed0a1a8c5546ebcb76d64d1a

135

dd79e35985e6992d62492f6d54b4f28aa4601b7dd980aaaf5c556d8f965afadede65f35798a096e63
f552d6e6e2de2b80a295e519b7a820915f0c5510de4c9fd29197cddafb140c4d2ead8d081d3fde6e
d8aa73e4ebbbad43ca5a15f5eca66bcb9d3ed66b899c00cf2490ab3310a00a926bb0c553bc5522d
63ccc34ad460d2e0d2afb54bc9a16b92b62b0111c48ea95733cd10dcb6d4ae2a813e72d447fd31d
ae9dabb2e9ff00f65b8abbfc65a8d2bfe0fd73c29c6c3fecb3156bfc69a8d3fe50dd76bd69c34fff00b2
dc55c7ce7a8815ff00076bbd6940961ff65b8abbfc67a87fd49daef8fd8b0ffb2cc55dfe34d47fea4dd7
bfe02c3fecb715483cefe64d6b55f286b5a6d8f92f5d92eeeece58614f4ec4d5a452a06d795efdb154
ff00fc69a87fd49daeff00c058ff00d9662aeff19ea1ff005276bbff000163ff006598abbfc69a87fd49dae
ffc8bb1ff00b2cc55dfe34d429ff2876bbf2f4ec7fecb31577f8d750ffa93b5eff91763ff006598ab5fe35b
ff00fa93b5eff91763ff006598abbfc6d7ff00f5276bdff22ec7fecb3156bfc6f7dff5276bff00f22acbfecaf1
5539bcff0034124114de53d7525ba7315ba986d0f39151a42a297440f8519b7dbe1c55ffd2f7479a3
5e8bcb1e5ed4bcc1340f751e9d03ce6da22ab249c46caa5c80093e27154b86b7e70a1af95403d87
e90837ff0085c55dfa6fce3ff52a8ffb88c1ff0034e2ad7e9cf38ffd4a83fee2307fcd38ab7fa6fce3ff0052
a8ff00b88c1ff34e2ae3ae79c4014f2a827bff00b91836ff0085c55a3ae79c4027fc2836ff00b58c1ff34
e2a99f9675c87ccfe5dd2bcc56f0bdbc1aadac37b1c12f13246b3a070ac5491515a1a1c5535c558c6
bbff00297f953fd6d43fea1b1561dadf923ce375e76d635fb1b6b0974dbfbbf2ddc41eb5dc91cc1341
9e59a6aa0b76019fd5e29f11e9f1531560fa87e5779af46d12f753d6f4db5d516d7479e2b75d2aeaf
8ea96b3bc77504915b08a341224cb70b2162bca2612fee277f4f8aaa9a37e5af9975c83cabace8da
669fa25a68baa2eaef13bcb6f2dc39be1793184ad942561991ca2c660b72863e2e258ca32aa9ec3f
949e67be5f2b4da83dae9f7fe58b5b3d36496d6ea5996fb4ef4648750b571e8c451271e93237c455
92bdb75509a07e4e79bacac344b5d5469935cd8c5a7f3be49a579ed24d3752b8bd956d9cc0a4c77
91cc21941e1c7e3e42642171549f47fc80f34e9b0258a2e936f6125b5bc13c304b2fa6b30f2e5de8b
73304faba866925b8495ab46748fe23cb8e2aadadfe43f9b752d1a6b0865d3a0bc681cc33c73491d
239b431a57e8a256007ea71cffe96a69f682fee449fbdc5539f31fe4ceafa9dfdd47e5cb4d2fcb56771
a7dd69334f612cb1c379a5dc69d2c0965796291089cc57531963b9af348d78a8f8d971563daa7e45
79e752b68d05b68302c5a75b59b58c7713fd56536834a9123914da1a80f612a73dd78488cb0ab09
39aa8dd5bf25fce3790475b3d2ee6fe2f31d96ad777dfa4af6196fec2c6f67bd8d5e90110c88b37a0b
c0374e5ea2c6162c5539b8fcadf33cfa8f97b56b4b2d3f4db9d0bd6b58912f66bb76b1bd796bea4d2
db86796ccb2dcdb31ff773489c97fbd6550965f947e6f4b5d022bdb2d0cfd517d1d66082e6f628a6b
d852d961d655a348dcdc56db786a878cad5b966e4ccab1ff237e5a5feb367a1f9becf4cb045b0d419
ee34eb96788ea020bfbc3f59b8125b1293449301002aff000f25f5150ae2a9ad9fe4b79c069165657
46c3eb96d616115bdda5cca66b3974f82e209ada2730fc505d894733f071e52f2472131567bf965e
4fd5fc9da56b369a95ada59c576f6b3c1059cc668f943a5dada4ecd58a2a33cb03b934f8b9726f8ab
8ab25f20ff00ca0de5af0fd1765d3a7f7098ab22c558ec9ff29cc7dcfe89936ffa394c553ee1514a5062
af0afccbf30eada5f9df54b4b1d6aeace2860f263c76915cb2c6afa8f995acee3f775a0f5a1511bf8afcf
1555d17f34b5eb6862d36ca0b6d6bf47c37575a8cb7f7e96d793ac93ea02d85b190912716b4589b
90e8fcb9afa479aaab0fe746b2ade5eb7d42db4d57d62fd60664966865974f96f6d2c56e628a5a18a
8f77f173919ab151232b2f38954bfcba353d562fcbd179e68d59dfcc536ad0de98f51910bc5610dcfa
3c0022acaca8ccd1610000026060f002220574d464301000000000001000000000000000b00000
000200000c4fe0000c45e0100f13330f8be0f87154b7cbdf9bfe6ed2acf4bf2e3259eaba86ada8c36b
a5ea17f75334ab0ea1ab6a5695b92a0f368fea8bc0211553c7f6775538d57fe7202f34cd186b26d74
974bb6fac6996ab7eaf7525a431bbdcc724495092c5e9d199dd6956fddb3c7e9baa81d77cf1e69f33
79ba6b6f2deb16da7a4fa65dc7a66932dec96a93dce99af5bdb490dc3aa9304d731a4b0c72a2f28b
d5a7c45412aa2b45fcdad5edeca736b247f578ed6d96d6c75f919b524d56ef57beb39edde789992e
160fab18e128c1650119a701b962a8cd37f3af5cd404b3416da5f2be92de4d1ecae6f16d38dbfe88b
1d4a78e49e46e2d231bb658d956816376e0c14e2a83d03cd9e66b7baf355eade25dad86b1aedbe
853ea3ab9fab48f6a9ca0b292d4296e341211202ce9c3b8f87154f344fce9b8d5edad667b5b3b7b8
8b4a5d7b56b29669239960926bb81ad6dc1525eead9ed592e508a2c8422f50d8aa1e4fce4f32c76
4b7bfa234a9e35b4b9d59cdb6a62733d8db3d9f1480448e04d22ddd155dfed475fb32af1550da27e
6ceb123583ea51413eb7aa456b6f13c33ca9a744d7babdcd8c464828c5593d31cdc35646e31fc3d
7154e3cb3f9bdaa6bfade9ba75c68d6f676977789a5cf20ba69255b96b5beb8e71afa415e226c5b8
37205d2457a0a118abd075b04ea5e5c2074d464276affd2baf3eec55ffd3f667e6beff00975e610295
36a40af4ddd7ae2ac875fd5e1d0344d475bb85e5069d6f2dd48a58202b12163563b28db763d3157
986b1f993adf967ccb7da86a76914fa0c369669756b6b7a27113bdcea0ab3c03d1019a54857d447
68f871037c5536d2bf31752d7c49a74ba5c3a55ebdb25db2c9a94265fa8ddb08e29e1312b82e2acc
c8c578d13fdfa98ab1bf25fe716ab79e49f28deb696fab5f5f592c9a94b25dc16d7291580b582ee79d
27f480979ce6558979728f86e0ca8315659f975e6cbef366afae5f4d201a5cf6ba3ea1a559893d5f46
0d42d0cdbfc2b466db90f896bf64e2acfae0f18256f0463f862ac4bf294d7f2bbc9877df45d3cefd77b6
43db156638aa49e61f2c5af985aca596f2f2c2eac1ddedae6c26f4251eaa147524ab0208f6c552bff0
149ff5357983fe9353fea8e2ad1f2139ff00a6abcc1ff49a9ff547155dfe049294ff0014ebff00f4989ff54
7156ffc0cfb7fcecfaf540a57eb89dbfe7953155bfe037a53fc55affcfeba9ff54b156ffc0927fd4d3aff00f
d2647ff00547156bfc0926e7fc55afeff00f2f91ffd51c5577f81a5ff00a9ab5eff00a4b8bfea8e2ae3e46
94ffd355af7fd25c5ff005471570f234c3fe9aad7bfe92e23ff00323156bfc0b37fd4d7af7fd2543ff5431
56ffc0d37fd4d7af7fd2543ff005431568791671ff4d66bfe3bdd43ff00543155bfe03b8ffa9bbcc03dbe
b507fd93e2ab5bc8170ca57fc61e61150457eb56fdff00e8db1564da569b6da369765a459f2faa584

115ac0643c9fd385022f23dcd06e7154662ac475dbbd4748f33db6a96fa25f6af69258496ac74f16ec
6393d64701c4f343d40da95c55aff001b6a236ff05ebfff000161ff0065b8aa5b71a8e9d7b752ea179f
971a8cd7ec232f7335969724d27a2c0c6399ba24f02015a9f869f0e2a81d4068f7da75c69cbf975ab
59acf6f73689736569a5c1710c77a0898c4e2e7e12d5ab6d463f68362a97f97f4fd13cbda65be9cff0
097dacea7242ed2fd72f34fd17d53249c03304b6962892be9a54471a7d905be2df154ee3d5b4c81a
c8c3f96ba9c674be674d64b1d357eac64ddfd1a5d7c1c89f8b8d3962aa4b7ba1234522fe57ea0b25
b946b761a7699ca331bb488508b9f84abbb38a746666ea7156a4d474296296197f2c3519219a77b
b9a36d374d2af732a9479581b8a176524339f8981c55d26a3a14cf7134bf961a9492ddf1fadb3699a
7169b8952bea1371f150aa91cbf947862aba4d63459228a097f2d354786de35b78236d32c196386
3712a22033d0287556551b0601b1572ea9a1ba2337e59ea4040d14912b699a7d55ed41585947af
b18c311191f62bf0d315518ee7cb315c35e45f95b7f1dd4ac5a4b85d274e123173c98b309f91a915
35ef8aa323d7f4b8ee23bc8ff2f3564bcb79669a19c69b662549aecfefdd184f50d27fbb181f8ff6b154
99c6891ebda46b56fe45d6a0874682ea0b1d321d2ac05ac725e4d14cf3a81272494342b46423ab5
7738aa62357f2e20b8e3f96fa9afd65596e78e916a3d45793d660f493e20643ccff0097f175c55513c
c3a0c7771dda7e5f6ae977094f4ae9748843a186331465583f21c5199169f6518afd9c55da8f9e27b
abdd22587ca7e62f4ecaedee27274f03f76d6b7100a7ef373ca55dbc3157ffd4f6d7e6069f7daaf937
57b0d3206b9bf9a1a416e85559d9595b882e556a40daa462abee35b37704b6b75e5bd467b69d1a
29a1922b67478dc71656533904106841c558f43a0793ad96d12dbf2f9e28ec16de3b28e3b2b3448
52cd9de008a260008da4764fe52edfcd8aa9c1e59f235ac56105b7e5bac30e95f59fd1891e9f6082d
beba38dc7a549070f546cfc7ed77c55bb6f2d7926ce7b5b9b5fcbaf4ae2c658ee6ca55b0b2e50cf0c
2b6f1c919f57e1658916352bd11557f6571547e896ba0796a5bb9fcbde479b4a9afd83dec9656967
034c54b15f50a4a0b50bb52bd3962a9acfe61bb782545d0354e6c8c17e0b7ea46dfeefc5567e5f69
97da2f90fcb3a46a9198752b0d2acadaf21660e5278a044752ca4834604541c559262aec55d8abb
15762aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb157
62aec55d8abb15762aec55d8abb15762aec55d8abb157fffd5f6f79d2ef50b3d05db4aba3637f3dd5
95a4578b1a4cd10babb8a16609202a485734e43156277d25f69ba8fe8cbff00cceb8b6bf1e9d6da5
b1d315a97225309a9b6a00de84bc4d7e2e0c3ae2a80b5d6d6facd2fecbf36feb16b2cc96d14d1da6
97c1a661190bcbd0a0e5eac7c5becfef13af25aaa96f95fcdf27993caf61e6797f3364d363ba1025d5
acf6da516b6b9ba50e90bb7d5d45687ed5389c555f56f31dde957d6f6edf9972cb6ad70f69a95c2db
697fe82d1db4f701a4516c4b2b981e35a7ededf110c31544ea9adcda6596a772df9a524b71a52179
ed3ea7a62ca58a3ba201f5726ade9b8a8078947e5f61a8aa2a28bceb77e498fce16be75bd433e94
9abc3692d8698f4e76feb88d99605af50a48a62af5085cc90c7237da755634f122b8aafc55d8abb15
762aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb15762
aec55d8abb15762aec55d8abb15762aec55d8abb15762aff00ffd6f6ef9d29fa162aec3f48e97dabff0
04b0b7c5521f377e5eea1e64f32d8ebf65adae9f1da0b469aca4b3172b349a7cd34b09e7eac65456
e1c38a1afc34e3bf25525d07f28756d0359b7d6ed3cc7119e3b4b7d32ee16d3c3473d95b5ada401
68f31e1273b359049f1001dd381f85c2a9469dff0038f8fa7de693a87f8822b8bad26d6cb4d58ee74d
4b8b692d2d606825e50cb332895fe178e4e9132fd8915b154cb50fc99d66fb4ad334b1e6d74fd03a
836a5a05dfd453eb16c624985a2c8cb28f58c4d39e65fe095070f4d199a42aad5fc96d52da297f477
992dad2f16f2eaf2cee86931b49e9ea2b762e21b9713abce01bc7301e71fa5c5397aa7912ab33bad
1ce81f9673e802e0dc1d2f427b117457817fab599883f004d09e35a62aca2d7fde587fe31afea18aa
ae2aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb15762
aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb157ffd7f6bfe607d7ff00c312f
e8bf47f497d6f4ffaa7d6b97a1eafd7a0e3ea70f8b8d7af1f8bc3154997fe577f36e5fe15e1fb34fd235e
9fd715531ff2bc2a7fe513e7edfa4a95c55bff0090dfc470ff0009d3bd7f495298ab97fe57a713cbfc25
5afc34fd254a62adff00c872a0aff84fafc5ff001d2e9fd7154abccbff002bb3fc3dabfd6ffc2df51fa8dcfd
63d0fd23eb70f49f9f0e5b72a7d9af7c55ea56d4fab43c7a705a57ad2831555c55d8abb15762aec55
d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8a
bb15762aec55d8abb15762aec55d8abb15762afffd9000840010824000000180000000210c0db01
000000030000000000000000000000000000001b4000004000000034000000010000000200000
0000000bf000000bf0000af4300004443030000000000008000000080fe7fe943000000800000008
0ff7f82432100000008000000620000000c00000001000000150000000c00000004000000150000
000c0000000400000051000000d41101000000000000000000d201000004010000000000000000
000000000000000000005e010000c4000000500000000404000054040000800d01000000000020
00cc00d301000005010000280000005e010000c400000001000800000000000000000000000000
00000000f70000000000000000000000ffffff00fcfcfc00ababab0064646400696969006c6c6c00636
363006b6b6b0068686800666666006d6d6d006a6a6a00717171006f6f6f00727272006e6e6e0070
707000676767007575750076767600777777007c7c7c007f7f7f0086868600cacaca00fafafa00fefef
e00f7f7f70090909000a1a1a100d7d7d700d5d5d500d8d8d800d6d6d600d9d9d900cfcfcf00d4d4d4
00d2d2d200d3d3d300cdcdcd00d0d0d000cccccc00d1d1d100cecece00b9b9b900f6f6f600fbfbfb00
87878700c3c3c300f9f9f900fdfdfd00e6e6e600a6a6a60088888800c6c6c600e5e5e500f8f8f800ded
ede009e9e9e0084848400cbcbcb00e0e0e0008a8a8a00ececec00f0f0f000ededed00ebebeb00e1e
1e100a3a3a30085858500adadad00595959009d9d9d007e7e7e00acacac0060606000e3e3e3004

137

d4d4d00bfbfbf0081818100c4c4c4004343430061616100c8c8c800f2f2f200f5f5f5005e5e5e00f1f1f
10051515100bcbcbc00a4a4a40082828200c5c5c50042424200c9c9c9005d5d5d009f9f9f00dbdbd
b009a9a9a0094949400b3b3b300626262008f8f8f00e8e8e800a9a9a900c0c0c000535353004545
4500b7b7b700bdbdbd00838383004848480055555500c2c2c20057575700eeeeee001d1d1d0097
979700464646008b8b8b00dddddd004e4e4e00c1c1c100a8a8a8004a4a4a00bebebe00b4b4b400
a7a7a70054545400c7c7c700494949005b5b5b00e2e2e2003e3e3e00f3f3f3005f5f5f0050505000b
8b8b8004c4c4c00eaeaea00afafaf00a5a5a50044444400383838004b4b4b00dadada00e4e4e400
2b2b2b00aaaaaa004f4f4f007373730074747400aeaeae003a3a3a007d7d7d003d3d3d002323230
07a7a7a008d8d8d00e7e7e700f4f4f400b5b5b500dfdfdf00bababa00b2b2b200a0a0a0008989890
0e9e9e9007b7b7b00797979008e8e8e0091919100929292009999990095959500939393009898
9800b0b0b000b6b6b6009c9c9c0096969600585858008c8c8c0041414100808080009b9b9b00efe
fef00dcdcdc007878780039393900565656003b3b3b005c5c5c00525252003f3f3f00a2a2a200bbbb
bb0065656500b1b1b1005a5a5a00121212002a2a2a003636360022222200111111000a0a0a002f
2f2f0028282800333333002e2e2e0034343400131313003131310016161600303030001e1e1e00
373737001a1a1a0025252500242424000f0f0f002c2c2c004747470029292900404040002626260
0323232003c3c3c0017171700181818002d2d2d0027272700202020000e0e0e001c1c1c0007070
70035353500030303001f1f1f00101010000b0b0b00010101001b1b1b0015151500141414002121
210001011b013301b9aa5c5c13a9b917a76f159e16169b179baa4a4a17b99baabd9e159798a9b9
9b9eaaa9bda9b94a14bd50aa169b10aa134a0558011b011b1b020101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
010101010100001b0102010156ae5501013233011b013301011b331b01011b01010101011b010
1013302010101010133010101010101010101013301012fba431b1b0101011b010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
0101010101010101010100001b0101011b013b4001011b0101010133011b2f2f02021b012f02333
31b01010101010101010101013301011b1b0101331b330101020101b068330101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
101010101010101010101010101010000011b0101012fb5bb011b011b1b011b011b2f1a2f33331b
01392f1b1b01011b1a2f1b0101011b1b1b01333301011b331b012f1b01010133c4a801010102010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
010101010101010101010101010101010101000001010101011a677401021b0156011a01011b3
302011b012f01013233010101331b011b010201330133011b013301021b011b022f0102011e8c01
01011b01010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
101010101010101010101010101010101010101010101000001011b0133399f402f1b012e01020
2012f2e0102010201010187011a1b321b01330102011b0233330101021b021b010132020101010
101b18c0101011b010101010101010101010101010101010101010101010101010101010101010

10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
1010101010101010101010101010101010101010101010101010100001b011b01012fad5501013
91b330101330101010101011b1a33013201010101021c011b01331b01012f0101320101012f0133
2f2f2f0101458c0101011b010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101000001011b01010264
a1021b01332e01012e2e55a1bb011b1a2e39a1021c010156010102333387321a391a3356011b33
1a0155010101012f1ba68c0101011b010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101000001011
b01333967bb011a1c476b103c3b0a7273315bc0ae21bfa53c1355888f19bbc16b7965c82b7d7fa6e
1092e63706bb9583301013301ad8c0101011b01010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010100
00010101011b3267bb32010166800e504409330a8d6c8a7e229c1fc4125c603799ac815a615416
a9c125cb31a42dcb54677139011b0101011d8c0101011b01010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
1010101000001010101012fad58011b1b9b79bab71c0e01aa1d0401022f7d26a68881b4013213a2
330168e48b384fc81b2fbc661b990a012f3233021b638c0101011b0101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
0101010101010100001b1b1b011b39ab42012f01116863b7680e331336aa019244df20030f98bd1
8ad63372f5f42c330022c8b450bb2501a8a09010101013333458c0101011610000026060f002220
574d464301000000000001000000000000000b00000000200000c4de0000c45e01001b01010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
1010101010101010101010101010101000001012f01015678411a0134c33a13636dbe188938ba5

139

a845a8fa9883585ae663f223fad0a6298761062ae496b255080120a33011b32011a1ea8011b1b01
33010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
1010101010101010101010101010101010101010000021b01010241307401a1448da09934bb29
a45d39586a3d1a7a1eb35801263156023a5a438c094d7c3e55b226332ec56f09011b2f0101023b8
c0101010102011b010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
101010101010101010101010101010101010101010101010000011b0233013930bb1b2e2f01013
3322f021b1b01022f1bbb9a3d01331a1b2f012f331b0121730101331b39010101013b5333013201
3301ada80101010133011b0101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
101010101010101010101010101010101010101010101010101010100003301011b011cab2e010
1331b3301013333011b3201010174a9920102390101333201021a3764020201020101020133b3
b433011b010101a6a81b011b01010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
101010101010101010101010101010101010101010101010101010101010101010000011b011b
01393c7c5f51372a6ea42b5d8a5d652d545ab22a374f51378a2d6e516a26a4a2722a2d5d6e7e6e4
f726ea43737197e8a516ec717bb1b011b010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010000
013201010102b1139e0697bdc611139710bd13141115970f141113980dbd1411bd100f061598aa1
0131097aa970d1414970e130e140d0fb93901010101011b0101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
010100001b01013332011b1a1b0102330101010101013333010133330101010201332f012f0102
0101023901020101020101012f3301010201012f01010101010101330101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
101010101010100001b010202011a010101010133012f010101011b1b010133010133010101010
1330133013901010102011b0101331b0201010102011b02011b0101331b010133010101010101

01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101000001013201012f1b01012f33012f011b011b0133010201011b0133
011b330102332f01011b01011b0101011b012f012f011b011b1b011b0101012f013301011a33010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010100001b013301390102bcbc4d3ea3233a62796262bc1f9321
bc443a926279bca33e793e3a212285233e23923a3e793e3a9279bca3bc7979793a213e01012f01
01020101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
101010101010101010101010101010101010101000001020101011bc50a954b7c998d990303a59
547c747036969994bb2a57c808d034b47c76535b2478dc74b8d9547696547034b034b03474749c
14001010101011b01010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
0101010101010101010101010101010101010101010101010000021b01011b1b6e9f0101010102
33010101010101020101010102321a01011b2f012f011a010101332f023301332f010201331b013
3010168df1a01330201012f0101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010000010133330101a2b01b
33011b01011b1b32011b2f0132332f011b0101330133012f011a012f022f1b01012e010101330101
1b01011b010134c22e1a1b01011b2f010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
0101010101010101010101010101010101010101010101010101010101010100001b1b0101011
b7f670101011b011b3301010187012f01011b1b01332f010133011b2f01011c01012f011a01012f1a
020101331b0133011b347a7401012f1b0101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101000001010
1012f33a4ad1b011b01022f015821390129937922013485320193a301383a4027931a2556012e2

141

34238012f01011b1b1b013301338c918c011b3301012f0101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
000330102010101a4b00101330102013950f567a38631988426e2dc7f44cccc7badd14fcc8d15e59
75818dfb88f8c01010201010101010101bb8887011b011b01010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
1010100001b1b331b011bb3b9011b0133020168899231bc0b4195b09e67436a1650383d25c130b
01c713e54356c39769b39012f01010101011b0133a87dbb011b013301010101010101010101010
10101011a01010101010101010101010101010101010101010101010101010133010101010133
331b1b1b1b1b1b330101010101010101331b0101011b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1
b1b1b0101010101010101010101010101010101010101010101010101011b010133010101011b
1b01010101010101011b010101010101330102010101010101010101013201010132010101011
b1b1b0101331b01011b1b33010101010102010133012f01011a010101010133013301021b01013
3011b01010133011a01011b330201011b0201011b011b01330101012f01010101013201331b011
b011b011b011b010201013301010101320101020101011b1b01013201012f010133010133011b3
31b1b01020100001b0101011b33a41801010101015668ae1b010110bb039f1665871b0d8c1b39b
be9c1013eaba82f82601b8eb5012f0133010101011b011b8c7042010101021b0201010101010101
0101021b330133010101010101010101011b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b01011b332f33
0101010101010101010101010101010101011b0101010101011b0101010101010101010101010
101010101010101011b1b1b010101010101010101010101010101013301011b1b010101010101
010101010101010101010101010101331b011b2f0101010101010101013333012e2c2725262726
262b2b2b2b2b22292b2c2c922b2a282424262c28292c5f1f24312882c53728375d3d725f3d315d1
9547b5d544f316a2d7b7e5a6e726a6dc55a6ab36e8a7b6ea5a2b2b38aa2657f8d7f6a7b725a7fc7a
45a5a4fa5a26da4b203a55a6d4ba2a5b3a5c7c77c95699595a6357c6945a6a6baba633b1eb049b
176aeabb0b400001b0101011b1b2d6f011b1a33011ba0ac01a21f147999b05c0f9eaa3b2a0131a0
d13055875978c33b10333567011b011b010101011b011b4377a8331b011b010101010101010101
011b010101011b011b01010101010101010101010101010101010101010101010102020101010
11b2f01011b1b1b1b01011b1b1b1b1b1b1b1b1b1b01010101011b0101010101010101010101010
11b1b1b0101010101010101010101010101010101010101010101013301011b01010101331b01
010101010101010101010101013201011b1b011b010101010101010101010101310c11980f9897
97970f0f979798150d115cac1598a916159816bd0d14140c14bd0f1413bd14160d971315bd14971
3bdbd154a98bd16149e1550bd0d1416bdbda9a9b998974a9e4a3c4a1346141413165c6f5c1816b
94aaabd17aa17301750463c3678466fa7361d36176f463fa767b71d9f78b767b4b09fad3fa73b49b1
ad761d67080000011b1b010101b3aa0101013302012f99a20b1f0e0dc66534c430afa06435b54d7
37b178c8a5b0840b38a0a7801330101010101011b011b428974010101330101010101010101010
133010132010101331b1b1b1b1b1b1b1b01011b1b1b1b1b1b1b1b010101011b1b0101011b3301
01010101010101010101010101010101010101011b010101011b0101010101010101010101010
1010101020233331b0101010101010101010101010101010101010101010101010101011b1b01
0101010101011b01011b01013301011b012f01010101010101010101011b02022ca23201011b1b
1b1b1b1b1b1b010201012f010133013201011b1b330101011b01011a02011b0133331b02013301
331a01013301331a0101322f0101330201010101011b0101023201011c0101010202331b01011b
011b0101010133010101013201012f01011b1b01011b331b020101013333012f013201011b0101
3301021b01021e000001331b0101016d1501010101011a011aa14101061f432f0132a802012e8c3
3a8c201a0331b3a1c011b42ad76322f1b01010101011b0101bbc2420101011b010101010101010
1010101011a1b012f01010101010101010101010101010101010101010101010101013301011b1
b010101331b010101011b33010101010101010101011b1b0101011b0101010101010101010101
011b1b1b1b01010101010101011b1b1b1b1b1b1b1b0101010101010101011b1b1b1b1b1b1b010
1011b1b1b1b01010101010101011a1a011a0101013333010101010101010101013354a2013333
01010101010101011b01013301391b33011b0232011b011b8c01011a0133012f1b2f33010233011
a011b010201320101013902012f01010101011a1b3302011b1b01013201012f01011b010133011
a011b01020201010233011c0101331a2f01012f014329401b1b0102331a0101012f39011a010101
1b01011b1b0101760000010101013301c54a1b012f01012f1b011a0158c2a31b1b2f32011b1a2f01
01c5c31c0101021b01321b01b07801012f0101011b011b0101588b341b01010101010101010101
010101331b01013a49ae76b5b5b5b5b5b5b5b576b5b5b5b5afafaf76b1aeaeaeaeb176763b1ea6a

661b46376b1aebabaaeb176767676767676767676b564afb576b5afb5b5b5b5b5b5b5b57676767
6b5b5b5af646464afafafafafadadadadadadadadadadadadadadadad67abab1dacacacad783fa7a7
3636a7a73c6f18465c3c6f9e032f01010101330101010101010101011b1b1b19c7011b010101010
1010101011b2f331b012f0233021a01011a018713940a21011b331c010101012f01010201330132
01330101392f01013301011a01330201010132011b012f020101020139021b01330201011b3301
2f0101020201020
The IllegalThreadStateException is thrown when
the start method is called and the thread has already been started;
the setDaemon method has been called and the thread has already been started;
an attempt is made to destroy a nonempty thread group;
an attempt is made to place a thread into a thread group (via the Thread constructor) and
the thread group has already been destroyed.
an attempt is made to get the exit value of a nonterminated Process.
The SecurityException is thrown by the security manager[1] when
the Thread constructor has been called and it is requested that the thread to be created be
placed into a thread group for which it has no security permission;
a stop or destroy method has been called on a thread for which the caller does not have
the correct permission for the operation requested;
the ThreadGroup constructor has been called with a parent group parameter for which the
calling group has no permission;
a stop or destroy method has been called on a thread group for which the caller does not
have the correct permission for the operation requested.
The NullPointerException is thrown when
a null pointer is passed to the stop method;
a null pointer is passed to the ThreadGroup constructor for the parent group.
The InterruptedException is thrown when
a thread that has made a join method call is woken up by the thread being interrupted
rather than by the target thread terminating.
a thread that has made a wait method call is woken up by the thread being interrupted
rather than by a notify or notifyAll.
a thread that has made a waitFor method call is woken up by the thread being interrupted
rather than by the target process terminating.
The IllegalMonitorStateException is thrown when
the wait, notify, or notifyAll methods are called by a thread that has not locked the
associated object.
The security manager is intended for an environment where there may be untrusted code executing
(for example, where applets are being loaded across the network). This book is essentially concerned
with concurrent real-time programming for single/multi processor systems. Issues of security are,
consequently, not addressed.
[1]

4.7 Strengths and Limitations of the Java Concurrency Model


Strengths
The main strength of the Java concurrency model is that it is simple and it is supported directly by the
language. This means that many of the errors that can occur when attempting to use an operating
system interface for concurrency do not exist in Java. The language syntax and strong type checking
also gives some protection against erroneous programming. For example, it is not possible to forget to
end a synchronized block. Portability of programs is also enhanced because the concurrency model
that the programmer uses is always the same, regardless of the operating system on which the
program will finally execute.
Weaknesses
Unfortunately, the Java language model is perhaps too simple and not expressive enough to meet the

143

demands of sometimes complex concurrent applications. Its limitations can be summarized under the
following headings.
Lack of support for condition variables. Section 3.2 has already discussed the problems
introduced by Java not explicitly supporting condition variables. A workaround was presented which
was based on implementing a condition variable as an independent class (Section 3.3). However,
there is no doubt that the use of the workaround gives more complex algorithms and more potential
for deadlock situations to occur. Furthermore, coping with spurious wake-ups generated by a JVM
also adds complexity.
The usual Java paradigm is to ensure that all calls to the wait method are enclosed in while loops
that check the required conditions before allowing the threads to continue. This in conjunction with
using notifyAll instead of notify allows simpler algorithms but at the cost of less efficient
executions.
Poor support for absolute time and time-outs on waiting. Section 4.2 has considered the issues
thrown up by Java's lack of support for delaying for an absolute time and for identifying whether a
timeout has occurred. Most workarounds for both of these problems suffer from a race condition of
one form or another.
No preference given to threads continuing after a notify over threads waiting to gain access
to the monitor lock for the first time. Section 3.2 has illustrated some of the problems that occur
when preferential monitor access is not given to those threads being released from waiting over those
attempting to gain access for the first time. Further illustration of this problem is given in the next
chapter.
Difficulties in identifying nested monitor calls and thread-safe objects. In general, the code
within a synchronized method (or statement) should be kept as short as possible. Nested monitor
calls should be avoided because (as noted in Section 3.2) if a thread is holding several locks, only the
lock associated with the object being waited on is released. All other locks are maintained. This can
lead to deadlock occurring. Unfortunately, it is not always obvious when a nested monitor call is being
made, for the following reasons:
Methods in a class not labeled as synchronized can still contain a synchronized statement.
Methods in a class not labeled as synchronized can be overridden with a synchronized
method; method calls which start off as being unsynchronized may be used with a
synchronized subclass.
Methods called via interfaces cannot be labelled as synchronized.
Poor support for priorities. While Java's priority model may be adequate for concurrent
programming, it is weak from a real-time perspective (as discussed in Section 4.1). This is a major
area where the RTSJ has provided added support (see Chapters 7 and 10).
Java 1.5
It is because of these problems at the language level that the Java community has developed
concurrency utilities that have now been introduced into Java 1.5. In particular, the
java.util.concurrent.lock package helps alleviate many of the above problems. However,
support for real-time requires more fundamental changes.

4.8 Bloch's Thread Safety Levels


To aid the construction of concurrent Java programs, it is necessary for classes to document clearly
the level of thread safety they support. Bloch (Bloch, 2001) has suggested the following levels:
Immutable. Instances of the class are constant and cannot be changed. There are, therefore, no
thread safety issues. The String class is a good example of an immutable class.
Thread-safe. Instances of the class are mutable but they can be used safely in a concurrent
environment. All methods provided by the class are properly synchronized either at the interface level
or internally within the method. The java.util.Timer class presented in Section 4.4 is an example
of a thread-safe class with internal synchronization.
Conditionally thread-safe. Instances of the class either have methods that are thread-safe or have
methods that are called in sequence with the lock held by the caller. The SharedCoordinate class
given in Section 3.1 is an example of a conditionally thread-safe class.

Thread-compatible. Instances of the class provide no synchronization. However, instances of the


class can be safely used in a concurrent environment, if the caller provides the synchronization by
surrounding each method (or sequence of method calls) with the appropriate lock.
Thread-hostile. Instances of the class should not be used in a concurrent environment even if the
caller provides external synchronization. Ideally, classes should not be written that are thread-hostile.
Typically a thread-hostile class is accessing static data or the external environment.

4.9 Summary
This chapter completes the review of the Java concurrency model by considering the following.
How Java uses priorities to indicate to the Java Virtual Machine (JVM) where one thread
should be run in preference to another.
How threads can delay themselves by using the sleep and yield methods. The sleep
method supports only relative time periods (intervals); it is not possible to sleep until an
absolute time. Time-outs on waiting for events are also supported via the wait methods.
However, it is not easy to determine whether the timeout has expired or the waited-for event
has occurred.
How threads can be grouped together via the ThreadGroup class. Hierarchies of groups
can be formed and it is possible to interrupt the whole group.
The concurrency-related utilities that allow (servers) Timers and (event handlers)
TimerTasks to be created. A timer is logically a single thread that executes the timer tasks.
The interaction with processes outside the virtual machine via the Processes and RunTime
classes.
All the thread-related exceptions and when they occur.
The chapter also summarized some of the strengths and weaknesses of the Java model and
reviewed Bloch's thread safety levels. The following two chapters provide detailed examples of using
the model.

145

Chapter 5: Implementing Communication Paradigms


in Java
Overview
Introduction and chapter structure
This chapter illustrates the expressive power of the Java language model by showing how it can be
used to program some standard communication paradigms. There are many communication
paradigms that could be chosen, the ones discussed here are those that have traditionally been used
to support real-time programs. They include the following:
Semaphores A standard counting semaphore providing acquire (or wait) and release (or
signal) operations. Binary and quantity semaphores are also illustrated.
Signals Allowing a thread to wait for a signal sent from another thread. There are
traditionally two types of signals: transient or persistent. Transient signals that release all
waiting threads are called Pulses.
Events Events are bivalued state variables (up or down). Threads can set (assign to up),
reset (assign to down) or toggle an event. Any threads waiting for the event to become up (or
down) are released by a call of set (or reset); toggle can also release waiting threads.
Buffers Supporting the standard bounded buffer abstraction.
Blackboards Blackboards are similar to events except that they allow arbitrary data to be
transmitted between the signaling and the waiting thread.
Broadcasts Supporting the standard broadcast paradigm (they are pulses with data
transfer).
Barriers Provide a pure synchronization mechanism; they allow a set number of threads to
block until all are present. The threads are then all released.
The semantics of Java's wait and notify mechanisms mean that it is often not possible to define fully
the effects of some of these communication abstractions (see Section 3.2). Some of these
uncertainties can be removed by using the RTSJ facilities (see Chapter 14).
Important The goal of this chapter is not to define an alternative set of Java 1.5's reusable
note
concurrency-related utilities. Rather, the goal is to illustrate how the basic language
facilities can be used to build simple communications abstractions.

5.1 Semaphores
It is often claimed that semaphores are among the most flexible low-level synchronization primitives.
They
can
easily
be
implemented
in
Java:
package
communicationAbstractions;
public
class
Semaphore
{
public
Semaphore
(int
initial)
{
value
=
initial;
}
public
synchronized
void
acquire
()
throws
InterruptedException
{
while
(value
==
0)
wait();
value--;
}
public
synchronized
void
release
()
{
value++;
notify();
}
protected
int
value;
}
Calls to the acquire method are blocked until the semaphore can be decremented (a time-out could
be added to this definition if the possibility of indefinite blocking needs to be avoided). Calls to
release will increment the semaphore, and this will result in a blocked thread being released.
This Java implementation of a semaphore does not guarantee that the thread released by the call to

release will be the one that acquires the semaphore. It is entirely possible that before the woken
thread executes, another thread calling acquire will obtain the semaphore. Hence, in this example,
the while loop in acquire is essential to ensure correct access.
An example of the use of a semaphore is given below. It concerns controlling access to a one-way
road tunnel. For safety reasons, only a certain number of cars are allowed in the tunnel at any one
time.
import
communicationAbstractions.Semaphore;
class
RestrictedTunnelControl
{
public
RestrictedTunnelControl(int
maximumAllowed)
{
maxAllowed
=
maximumAllowed;
tunnelControl
=
new
Semaphore(maxAllowed);
}
public
void
enterProtocol()
{
while(true)
{
try
{
tunnelControl.acquire();
break;
}
catch(InterruptedException
ie)
{
//
No
action
needed
in
this
example.
}
}
}
public
void
exitProtocol()
{
tunnelControl.release();
}
private
int
maxAllowed;
private
Semaphore
tunnelControl;
}
In the above example, cars wishing to enter the tunnel must first call the enterProtocol procedure.
Potentially, this is a blocking method as it calls a method in a Semaphore object; only
MaximumAllowed cars are allowed in the tunnel at any one time. The cars call exitProtocol as
they
leave
the
tunnel.
public
class
Car
extends
Thread
{
public
Car(RestrictedTunnelControl
tc)
{
super();
controller
=
tc;
}
public
void
run()
{
//
Approach
tunnel.
controller.enterProtocol();
//
Drive
through
tunnel.
controller.exitProtocol();
//
Continue
journey.
}
private
RestrictedTunnelControl
controller;
}
Binary semaphores
Although semaphores can be programmed using synchronized classes, it is often more appropriate to
program the actual synchronization required directly (using the monitor facility) rather than indirectly
with
a
semaphore.
For
example,
consider
a
binary
semaphore:
package
communicationAbstractions;
public
class
BinarySemaphore
extends
Semaphore
{
public
BinarySemaphore(int
initial)
{
super(initial);
if(value
>
1
|
value
<
0)
throw
new
IllegalArgumentException(
"Binary semaphore must be initialized to 0 or 1");
}
public
synchronized
void
release()
{
value
=
1;

147

notify();
}
}
To

obtain

using
this
semaphore
requires
the
following.
communicationAbstractions.BinarySemaphore;
...
BinarySemaphore
mutex
=
new
BinarySemaphore(1);
//
Declaration
of
data
requiring
mutually
exclusive
access.
try
{
mutex.acquire();
}
catch
(InterruptedException
ie)
{
//
Some
recovery
action.
}
//
Code
to
be
executed
in
mutual
exclusion.
mutex.release();

However,

this

mutual

exclusion
import

can often be more efficiently, safely and elegantly written as:


public
class
MutualExclusionControl
{
//
Declaration
of
data
requiring
mutually
//
exclusive
access.
public
synchronized
void
mutex_operation()
{
//
Code
to
be
executed
in
mutual
exclusion.
}

}
Quantity semaphores
Another variation on the normal definition of a semaphore is the quantity semaphore. With this
primitive, the amount to be decremented by the acquire operation (and incremented by the
release operation) is not fixed at one, but is given as a parameter to the methods.
public
class
QuantitySemaphore
extends
Semaphore
{
public
QuantitySemaphore(int
initial)
{
super(initial);
}
public
synchronized
void
acquire(int
num)
throws InterruptedException {
while(value
<
num)
wait();
value
=
value
num;
}
public
synchronized
void
release(int
num)
{
value
=
value
+
num;
notifyAll();
}
}
Note that notifyAll is used in the release method as quantity semaphores may allow more than
one acquirer to continue.
Class diagrams
Figure 5.1 below summarizes the relationship between the semaphore classes introduced in this
section.
0100090000031c32010000000384000000001610000026060f002220574d464301000000000001
00659a000000000b00000000200000e4390100e4590100010000006c0000000000000000000000
d2010000fb00000000000000000000006a400000b222000020454d4600000100e45901000c0000
00010000000000000000000000000000000005000020030000c40100001a010000000000000000
000000000000e3e306006e4e0400460000002c00000020000000454d462b014001001c00000010
0000000210c0db010000006000000060000000460000004450000038500000454d462b22400400
0c000000000000001e4009000c00000000000000244001000c0000000000000030400200100000
00040000000000803f214007000c0000000000000008400005904f0000844f00000210c0db01000
0000000000000000000000000000000000001000000ffd8ffe000104a4649460001020100480048
0000ffed0a2450686f746f73686f7020332e30003842494d03ed0000000000100048000000010001
00480000000100013842494d040d000000000004000000783842494d03f3000000000008000000
00000000003842494d040a00000000000100003842494d271000000000000a000100000000000

000013842494d03f5000000000048002f66660001006c66660006000000000001002f6666000100
a1999a0006000000000001003200000001005a00000006000000000001003500000001002d000
000060000000000013842494d03f80000000000700000ffffffffffffffffffffffffffffffffffffffffffff03e80000000
0ffffffffffffffffffffffffffffffffffffffffffff03e800000000ffffffffffffffffffffffffffffffffffffffffffff03e800000000ffffffffffffffffff
ffffffffffffffffffffffffff03e800003842494d040800000000001000000001000002400000024000000000
3842494d0414000000000004000000023842494d040c0000000008940000000100000070000000
3c0000015000004ec00000087800180001ffd8ffe000104a46494600010201004800480000ffee000
e41646f626500648000000001ffdb0084000c08080809080c09090c110b0a0b11150f0c0c0f15181
31315131318110c0c0c0c0c0c110c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c
0c010d0b0b0d0e0d100e0e10140e0e0e14140e0e0e0e14110c0c0c0c0c11110c0c0c0c0c0c110c0
c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0cffc0001108003c00700301220002
1101031101ffdd00040007ffc4013f00000105010101010101000000000000000300010204050607
08090a0b0100010501010101010100000000000000010002030405060708090a0b10000104010
30204020507060805030c33010002110304211231054151611322718132061491a1b1422324155
2c16233347282d14307259253f0e1f163733516a2b283264493546445c2a3743617d255e265f2b3
84c3d375e3f3462794a485b495c4d4e4f4a5b5c5d5e5f55666768696a6b6c6d6e6f6374757677787
97a7b7c7d7e7f71100020201020404030405060707060535010002110321311204415161712213
0532819114a1b14223c152d1f0332462e1728292435315637334f1250616a2b283072635c2d2449
354a317644555367465e2f2b384c3d375e3f34694a485b495c4d4e4f4a5b5c5d5e5f55666768696a
6b6c6d6e6f62737475767778797a7b7c7ffda000c03010002110311003f00f554924925292492494
e7613a834bb7d6e7bbd5ba5c6b73a62db07d3da50f2316fb2d7ba9b195d4e036d6fc62fda47e703e
cfa7feaf437d743aaa1cfaafb1edb72456ec776d226c7ef638efabe9b5aab36baf739c713aa3831c3d
2fd2b8c4b757b77ded7b7f3aa7ffea549491b85d50d8f2fc8c7657bcec6b705ce967b76932e6fa76ee
decfa573367fd0d1c7a696d2d6df5b6db47d3b0505809f2643b6ff9cb3a8a6a6deddb8dd47f400b83
acb09df06aadac76fb9debb763fd4d97bff47e9dbb19eafa886fab1ed691660f51da1e1bf48971f49be
a36c78f57dd56efa1fe92dff07fa3494eaba8e9c7e96235dc7f819ffbe2974c8fb1b435a58d0fb035a4
440163f6b76fe6edfdd42afaabedf4cd7859316303f73da1a1a089daff0076ff0053fb3ff7f5670f4a4ffc
65bff9f1e9293a49249294924924a7ffd0f554924925292492494e59c67b98d63c64d7e9d971fd0bf6
8707bdee69258f6fe6fd0501d2eb7171f533c17905c7d72d921a2bddedb07d2dbee5ae924a725989
43323d236e59b9ec2e01d7130ddd5b9db4efdacf755f43f73d5521d2aa0c7b3766383cbdce26f24fb
c6ddb3ea7d166edd57fa27ab2ec607303fd47093eac7b79686d41b3b777a7b1cfff003d5b494e60e
9ed0edc5d96e976e87dbb80877a90d6bacf67ee7b3fc1abb8ad7b6987b76b8bdeeda6340e7b9edf
a3bbf35c8c924a5249249294924924a7ffd1f496755c37b1afafd57b1e039ae6d3690411b9ae6b9b5
7b9ae521d4719dc0b4f8fe86dd3ff000259f85d5b1f1307031f22ea2ab2cc5a9ec165859236b185d2
e66dfa6e55f219d1ecb097e432b75ce7585d5e65950712030fbaa0c67d1bbd9ffa8d2537312fafd01f
683946e2e7970d991305efd9ed633dbedfa28e2ec4263f5af9b3247fdf1661774336d6464506cb439
cc2ccb7b7737dd67bbd16ec7b58ddde8eff00f07ea7a3fe194eaa7a6d8e1b2e65ce7822b3f6cb5e76
ff00846b1ed1bac6eef7ff00c67fd6d253a5bf140249c9000d645ffdc8d5d553d8db18f7b98f01cd3bd
da83a8fce5994f55c3aea38d464e31d92d0c36b9eedce9b36eaddefe7fcc5a5d3ff00a0637fc533fea
424a67f67ae4197c8100ef7707fb4a16b69a6b363dd66d103dae7b8ea76886b373ddcab083945e2
a0580176f64071207d26f701c929ae72313feecff9991ff904864621e3ed2639f66469f1f6201eb5537
e9e46233ddb06fb4b65d2f64337b1bbfdf4dcdf67fa2b1669674b36fae32dac37973c166558c61f73b
d469d8c6b5dfa7c8b9d5fabfa6fd23ebaff00454575d094ec5f6562b9a8de1e0b48f6ddfbcd9fa4dffa2
ac8caa8f6b3fedbb3ff0020b9f71e8eeaeb6bb2b1dd598f4c9cab347348f78b9b0e65bf99f4f7fe67f87
b37c99574ec9f4d956554faed2ed8c6e4daf6d87bb59ee3b9cc77fa2f7a4a77c64567b3ff00edb7ff00
e4523935b41243c01a93b1ff00f9158d4e674fc4b5ef665d02c796b5dbedb6d24be7606b6db1fef76
c77d0fdc5a570ea3e8be5d4c6c3d9fe1fd6494fffd2ee318b8e074f6feccfb6c62d116fe8a0021a2d6fe
9cb76fa7ecb3fe1514fda995c37a2b096864305956dd3dbb59bb66df4ff00311fa5fdaff6661fa7e9ecf
b3d5b776eddf41bf4959fd7bfe0bfe924a73aba6c163ec1d1ab64b6b03dd549205ce3a0f66dab7359
fbff00a644b1f995bd869e92d709d5dbea6901ceb0387f5bf9bb9fff001aff00cf570fed1ede8ffd24dfe5
3ff80ffa6929ab5d7ea5916f4c650c8243dde9b8cc3bfd16edbf9adfedff00215ce9ff00d031bfe299ff0
052141dfb4b69fe6383fbe89831f61c78e3d2647f9a1252742c8fa0dfebb3fea9a8a8199bfd11e9c6fd
f5c6ee3e9b798494e2e45ac16ddfa7e9ad2d758f77b77581c36865ce6efb3e87d0c9fd1a42fad976c
af27a56d2d12c0dd46dddaba2d2ddbbbf9bfa1fe1159b3d1f51deb7d837cbe77f3303ed1f4ff91fcf7fe
08959f67f507a9fb3bd5d23746ee34e7ddf452535596d6da1cf664f4e0e730b9cef4e0ee165cd0f6b0
3c6ea7d9e9d3fa3f7fa3fce5ca76659173db56574b67a36b9ae2e1ab1bbb632b77e91bfaceef6ddff0
009fe0fdeac0f4f609fd9fb36e9c46cdceffa1ea6ff00eda959f67dc7d6fb06fdc776e89ddb9bba777e77
a9e9ff006f624a6a3326a7d95b1d97d3c9692eb36b06bb017bfecf2f3b36575ddeb7bafd9ff068f5656
6d973ab7e6e25f56c2e3552d3ea1616b9cc7eef52c6fbd16bf465bb3ec33f9bb63f74ced8ff0082dfff0
05b526fa7e99f43ecb3b1db7d289883bb6ed494ff00ffd93842494d04060000000000070005000000
010100ffee000e41646f626500644000000001ffdb00840004030303030304030304060403040607
0504040507080606070606080a0809090909080a0a0c0c0c0c0c0a0c0c0c0c0c0c0c0c0c0c0c0c0
c0c0c0c0c0c0c0c0c010405050807080f0a0a0f140e0e0e14140e0e0e0e14110c0c0c0c0c11110c0

149

c0c0c0c0c110c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0cffc000110800bd0
15e03011100021101031101ffdd0004002cffc401a20000000701010101010000000000000000040
503020601000708090a0b0100020203010101010100000000000000010002030405060708090a
0b100002010303020402060703040206027301020311040005211231415106136122718114329
1a10715b14223c152d1e1331662f0247282f12543345392a2b26373c235442793a3b33617546474
c3d2e2082683090a181984944546a4b456d355281af2e3f3c4d4e4f465758595a5b5c5d5e5f56676
8696a6b6c6d6e6f637475767778797a7b7c7d7e7f738485868788898a8b8c8d8e8f829394959697
98999a9b9c9d9e9f92a3a4a5a6a7a8a9aaabacadaeafa110002020102030505040506040803036d
0100021103042112314105511361220671819132a1b1f014c1d1e1234215526272f133243443821
6925325a263b2c20773d235e2448317549308090a18192636451a2764745537f2a3b3c32829d3e
3f38494a4b4c4d4e4f465758595a5b5c5d5e5f5465666768696a6b6c6d6e6f6475767778797a7b7c
7d7e7f738485868788898a8b8c8d8e8f839495969798999a9b9c9d9e9f92a3a4a5a6a7a8a9aaaba
cadaeafaffda000c03010002110311003f00f7f62aec55d8abb15762aec55d8abb15762aec55d8abb
1562df995757765f97be69bbb09a4b7bd834bbc92dee216292c722c2c55919770c0ee08c55109e4
bd0b883fe9d5a0153a95f9ff00b18c5577f83342ff0097dffb895fff00d57c5569f24e80c6a7ebb51ff6b
2d43c6bff002d18ab15f35b7947cb7a969da31b1d5354d775686eee6c74db4d4ee526961d3d51a7f
4c4f7912bb8122d23425dbad38ab3055306d17f2ee40b05e5dbdb5cfd592fa4b2b9d5aee1b88adde
803c91b5c8655048524edcb6c5546df44fcabbdb916b69a9437176c934ab045ad5c3b94b46e1337
15ba2691b1e2e69f09d9b15517d3ff002822b3b4d465d5ed63b0bddac6e5f5b9d629bf7822fddb35d
51fe32136fdaf871541f977fe55779827d66c903d8ea3a25d5e5a5fd85e6a732ce23b07e125c705ba
6220350439a7f95c4e2a8f8edbf28e786cee62d5ad1a0d424f42c5c6af2d279448b0f08ffd23e26f51
95388df9b05eb8aa67a6e83e40f304325c68f2c7a8c16d2bdb4b25a5fcd32c7347b3c6c639880c2b
b83be2a8eff02795e94faa4b4ff98abaff00aab8aad3e41f2a9041b390826a7fd2aeba9ff9eb8aa90fcb
8f26aab28d3982bd798facdcd0d4d4d7f7bdf15524fcaef22c6a55349e2a7a817172074a7fbf7c062a
853f939f9686a4f97a1dc827f7936e54f207fbcf1df1543e99e59d0fcabf989a7dbe8167f50b7bcd1b5
07b948ddcc723c375641090ce47250ed434ee7157a0e2aec55d8abb15762aec55d8abb15762aec
55d8abb15762aec55d8abffd0f7f62aec55d8abb15762aec55d8abb15762aec55d8abb1562bf99bff
0092ebcd9ff6c8bee9d7fde77f1c5593c46b121ee547eac557e2aec55e75f9ade41d4fcff60ba5430e
9b7165e84a6de5bff5a1bbd3f53aafd5afecee2056912486adf0ab47cbe11ea28e58ab0fd6ff0024bc
cfa95bf99acdb50d2f527d62d6e4586b3a9c1336a115cdfe9f0d8dc23852d1ac4cd109aa8397fbab8
d3f798aabea9f93be66bab8d42e74a9b45d3ae2ef56bcd56198dbbdc2c715e681fa23d1684c68922
fabfbd646f81976e35c558d4bf95fe62b5f395bf97afadad351b4d7ecfccef36a4f6d79736b651eb234
c0d1bcd22b832f282668959e3f500fd82698aa36ff00fe71db5ad4b85b9d66daceda1bcd72e12ea35
967ba922d561b78edd66e7c43956b753382dc6453c578e2ac866fc9bd5753f374fe6ad52eac60935
68b505d523b3593d4b792fb4fb7b057b3775fb6bf561233b052ccdd3e0ab2acc3f2e7c977be4fd3e4
4d55f4f9f569a2b4b6babdd3ad9ed8dcae9f0fd5e29673249231731aa8e20f08e9c52a31566b8abb1
5762aec55d8ab15be3ff211b445a6ff00a1f5535ffa39b0c559562aec55d8abb15762aec55d8abb15
762aec55d8abb15762aec55d8abfffd1f7f62aec55d8abb15762aec55d8abb15762aec55d8abb156
27f9a0c53f2dfcdccb4e4347bfe24f407eaef43be2a82b6f2d7e622c004be7947240e0c348b75a0a77
fde1ae2a8a8fcbde791b49e73e5bd6a34cb6534f0fb4715551a079c7bf9b9cff00dbbed47f0c555bf4
1f9a282be6a976ea4595a6ff00f098ab9b42f339229e6a9d686a40b3b3dfdb78f155ada079a58517c
db70a77dc595913bfce3ed8aa90f2df9b42d0f9cee89dbe2fa8e9f5ff009338ab43cb5e6da927ceb79
43dbea3a76dbf6fdc62ad8f2d79a8124f9d6f883d00b3d3453fe9db1555ff000ef98eaa4f9c2fe83a8fa
ae9dbff00d3ae2aaa341d77fea6abe3ff0046fa7ffd92e2ae3a06b86bff003b55f8da9fdc69ff007ffbcbd
715583cb9ae852bfe2dd44d401c8c1a6d453c3fd1298aa97f85b5ef48c5fe33d5aa77f53d1d2f98f97
fa153f0c55465f26ebf2b16ff001d6b71d7b47169200ebe3607c7154ab4fd06ff0046fcc6d29efbcc5a8
eb9eb68fa9aa26a22cd562e37362494faadb41b9ad0f2e5ed8abd1315762aec55d8abb15762aec5
5d8abb15762aec55d8abb15762aec55fffd2f7f62aec55d8abb15762aec55d8abb15762aec55d8ab
b1562df99601fcbbf3582390fd117db78ffa3be2ac9a13586327a955fd58abc1b58fcc4d6bc8de68d5
aef59b97d574ab86d4a7f2fdfdbdda8d30a4134104b657f0bd3ea9258b372fac0fdd49173f55d24db1
54cf54fcdcf3769ed66874ed1cc92cba6c13a25eb4fbeabadb6911ba3421928aa52675e4c437286bf
eecc552bd6bfe721350d1e2d207d434fb9bbbfb2bb96e614b875f46ead6c751bb4e4580a24a6c38a
2a877e2eccdc38a0955416b1f9a9e77b7f3bd8216b086db4bd2b57d42fa349a61a6de411dbe9776
8284d44f089dd391aa80eb253e2f4c2a9f6bbf9cfaf584314fa7d8d8b7d7efaeb4eb68eede58cd93d9
6b56da496bce249e328b8f553885e3f0a7c61b9e2aa573f9ade66d45ff0044ac365109b58b6f2edec
b63714d46ce53aa0b0b89de026468e374f8e1693814f523fef3972c554eebf35b5bd0a7d5a2b3874f
7b5d36f35d9af56eeeae669a48b4bbfb1802c25ddbd32cb79f67fbb89d4055e3b62ac9bfc63a89f20
eb1ae6a1776b7977a7ebf73a7482267b458a0b7d6bea891bb452f25904415b73f1d4735e2dbaac5
356fcdcd6dcdc5b6a16d60f6b1ea0cb6c6de7bab5902e9fe6b8b44f8de394162eac25e3b2120c6eb
246f8ab707e686af62e6ef56bfd3a5d4d6c754e578deb430c325bebf069d140f6eb398f971954077f4
db9f1e72c5133b62a81d1ff32b56f30689abf9f2c6630ea0749f2cea69a547746e2da3b99afaf6d2e2
258d5d94095538305fdae27e27456c55f43e2aec55d8ab1cbee3fe39d10fedfe8dd4feef5ac715647
8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb15762aff00ffd3f7f62aec55d8abb157
62aec55d8abb15762aec55d8abb1562ff994aadf979e6b565e4a748beaa8effe8efb62ac920358222
7f917f562a831a0e8626bab91a65a0b8be468ef651047ce747dd9643c6ae1bb86eb8ab4340d0556

241a5da04851238545bc544489b9a2a8e3b056f8940fb2dbe2a90ea9a0f92bcc8bac7935ad2086f8
e9e23ba782da349a1b5d484f1a3c5234656a4acc4539716fb43e2dd54dedbcb1a05bd8dae9d2585
adc476d0fd590cd0424b21550f50100f8f882e00a1c557de586888c91dc69714ff5e9a38a4e36ab30
2f1a97469a8a68abc3667d94f11e18abaf343d0b5086f639ad61ff00726112f668808e694c7fdd9322
518b253e035aafece2a820be516d7e5f2f3595b36b62d3f48caad6c8795bcf298d9cc9c3892ce9f10
ad7a31ed8aa6b2da692609629e0b736d33fad3a3a27079091f1b02285890373df154b350b9f2e69
b65ab6a1a969cb058e8c8f3dd4d25a8e2e8918b96687e13ea53fc9dfd4047dac55196d1e837d690
6a11dbdb9b7d4d1658da48914cab7004bb861525b6620e2ab6e34cf2f4a39cb0dbaa5acf14b215e
31813c4dce3f538d2bc5983aab7ed716eb8aa3ae6f61b786694033c90a4927d5e1a3ccfe90a9545a
8ab7414f138ab6f7b69129334f1c540a5c48eaa5799e2b5a9daa76f9e2a96c9e68d222d47f473c8c
1c5c2d8bdc15a40b7924625480b9a0e6cac28077217ed1e38aa1af80ff001be88ddff476a63fe4ad9
62ac8b15762aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55ffd4f7f62aec55d8abb
15762aec55d8abb15762aec55d8abb15631f99042fe5f79a989a01a4df1a8ebfef3be2ac8e0fee22ff
517f562af0cd7bcb1e67b475b25d4c58ebfaa6bc24f2b49272bbb916b7692c5a9c72345449122b69
6596dde55574e11ac9cfd256655dae7e5b79fc5c5f4be5531d9c925edecbce6bb6e375a70360f0d9
b9f8d916716d2c4cc07ee7d42ff001736c551337e5beb6fafc3af41e5cb5b5645d145adbc57bea7d4
e3b6bbbf9afa247703668ae84602808dc990718d571550d0bf2a3ccba5699a3d825bc104a2cf4137
372972cf2586a5a55c7a9a8cb1b37c52fd7630a8cd51cf8f19be0c550de5afcabf3ae8ba9e9d235ad
ba69713e8973756e978c7fd26c63d4e2bd7a71f89a44b9b6407f6963dff00bb4c554f4efca3f33dbc7
a67d6f46b2952e2eaeaf3cc76906a5369f17d76ededda0b8b736f11223b28edc5bc483d391d0fa95
4769392ac9ff2e7c8de6dd0bcdd75abf98ecec04474c974c9753b6b979ae35097f484b729712c6f12
952d1c9f10691f83fc0b54e38aa061fca2d5349f41a18ec759d2f4fd56e7ea7a04c3d081fcbf2c5726d
ed246759033db5c5d3c89c978f154fdb556c558edcfe4efe602585fe9edf51d6ede7862b568b50ba9
025d487425d30dd3868a4a3c332f350dccbc6c5eab20c559579ebf2ffce7ade89e52d3f488ec1aef4
4b583eb17125cbc32457b693594abe8b9b796b1b882452cab1cb531fc5e9faa8cab1fb9fcbcf37e85
e54175aa58e8d773e97f59ff001048d3cfc759b48ed6ed63beb80d6f252e22699641195979373fdeff
0075c55407957f2f3cdba979434fbab2b3b0b8d3f54d185cc6f737125bdd34ba9f96ed34d68648dad
df8f19adc3c8c5be20df639a6eaa6527e4ef98e69b55d4aeb47d22fa6d575992e751d3ae2f26896f3
4cbad2e1b2e2f7315b9757b7991a68d38156e45834729e4aab258fc99acdae94fe550af3cd279a6c
b5c4d44890c2b650ddc1a83fc6ecedc97d16b750edcc9e07ec9ae2ace2f80ff1b6887bfe8ed4c57fe7
ad962ac8715762aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55ffd5f7f62aec55d8
abb15762aec55d8abb15762aec55d8abb15633f98ca8df97fe6a590d10e937dcbe5f577c5590dbff0
0bcf17fa8bfa862ac265fcd9f2cc29f599a3b84d3c5fde69525f30844315d69f0cf3c8b2fef794648b77
55575572fc3e1fde29c5508ff009cfe57b7b896df50b4d434fe12bd9c325d431aa4f7c86d945b47c65
62646377105e41509e439fc27155393f342eacbce5368ba968d791e92f6da6985c43189adef2feeef
ad024e4cf46495ada3f45a256fb7c9cf0dd556f4cfce9f2f6a9a7dbeaaba66a56b612c3a75dcb25cc7
023436badcde8594ceab331e32b823e1ab2052d2055c550f67f9cba3eb777a75a585b6a1a75c4f7
9a723c3796b13b4d6daaa5efa0c0a5c5103bd9c8bcbe2752a3f77c1f9e2aadff2ba7442ef0268babc
d78977736496d6d6cb74f31b036e974f0fa1238916192e5227e3feed5911797038aa2bcbdf98371e
65f3c49a4d85b95f2d9d18ea365712a2acb712a5fc96a6442246a44c12a9cd51b7e5df15769bf9b5
a5eac6cadecf4abd3aa5f3cd6d1e9ce6d9674bdb4373f58b59089ca2c912dabb37c5c28d1f163cf15
48c7e74e9b7d06b4da27d6aeaf1ed56eb43b77b48e30a8fa47e92e6cc671cd453e30fe93076f4d43
0f8f15641a9fe6541e5cd2340bcd5b4fbabc9b55d325d52e66b258443043656f1cf7523fab3210155
cb2aa0766e3c47c54aaac7353fce7363abe8d7d73617ba6795e78355faedb5fd8c897b712da0b136
af6a012cc9235dfa7f6777a8db862a9eff00cadbd3a1bad2acb50d0f56b0bad5de586d61b9812399a
6885d371584b891832dab32b70e34961fda72a8aa1acff3af40d4adb4bbbd2f4dd43538350b68efee
24d3a34ba4b3b39e59a149ae195a8a034120917fbc8f89e4955231546e87e78bd96ffca16dabf03fe
36d3ee350b148938fd5a58238ee842cdc8f21e8cb4e5fcf113d1c2aaa9edf0ff9ddb443dff476a7ff00
276cb156458abb15762aec55d8abb15762aec55d8abb15762aec55d8abb15762afffd6f7f62aec55
d8abb15762aec55d8abb15762aec55d8abb15639f9828b2790fcd08e392b6937c0af88fabbe2a9f5
b7fbcf0ffa8bfa862ac1758fcb3d3af64105ac16f2586a5a9d9ea7e6096ff9dc5c4834c759ad921e82a
1d0216909222257e2a2ae2a89d57f2a3c95adb5c9d4ed269d6eae2e6f6443733285b9bc1087910a
b028ca6de268ca91e93a738f8b62a8893f2dfcb52ccb7327d71ee80b10f70d7970d2c874b9e5b9b7
676672599659a4724fdbe5f1554018ab56bf965e4fb38b4e820b49043a65b5a58431b4f332c96da6
cbebda47382c44a2093e28f9f22bbf666c550f6bf94be4ab3b9b6bcb7b6b85b9b41622090dddc120
696d72d6d5abefc0ddcdd7ed73f8abc568aadb6fca4f25da45a5c56d0de44346568f4e78b50bc8a48
e1969eac45e39559e39480d32b96f55c739393ef8aa61e5efcbbf2a7957559758d0ed65b7bb96196
d951ae679608a09ee1aede38a291d923532b3380aa38f2e2b45f8715549bc83e5593d5786c05a5c
cda8c9ad3dd5a3bdbdc7e919a1fabc93892360c19e2fddbef465d8e2a955c7e4ff0090272ec34d92d
ddc42a1ed6eae6d9923b7b3360b1a18a452a86dd8c4eabb38ddead46c5539b9f24796aee3d320b
9b4696db48b39b4cb3b77965788d9dd42b6f2c52ab3112868d429f5391efd7154a5ff0028fc853594
5a7dd69d35e5b436f716718bbbdbcb97105da451bafa92cccfb2c3108cf2ac5e9afa7c0e2ae1f947e
44fafdbeaad6370faa5ba448b7af7f7cf3c9f573318da591a72d2bafd66601e42cd49185698aa223fc

151

b0f24c7a8c3abae9cc35184b992717170bf1610000026060f002220574d46430100000000000100
0000000000000b00000000200000e4190100e45901005832c9ea9fad2ac816e3e3f8c7ae24e2df1
2e2aada37926d34abad2ae259beb49a05a4ba76871b46aa6dade66507e204f2611c71c5cb6f853f
cb6c55117dff0029ae89ff006cfd4ffe4ed962ac8715762aec55d8abb15762aec55d8abb15762aec55
d8abb15762aec55fffd7f7f62aec55d8abb15762aec55d8abb15762aec55d8abb1549fcd9a5dceb9e
56d6f45b2654bcd46c2ead2dddd8aa092785914b328240a9dc807154963d53f32e38923ff000ae94
4aa8527f4dcbd87fdb37c7156ff004bfe66f6f2ae93d7beb9374ffb86f5c55afd2ff99e41ff009d574807
b575c9bfef198aaa47aa7e6531a4be59d2507f30d6a76fc3f470c55506a1f98adc41d03484a8f889d
5ae0d0d7db4fdf1556fadf9f76ff713a4f6ad752b9fa7fe3c7155df59f3deff00ee3349f6ff0072173ff645
8ab19f2ef9ff00ccde67d5b57d2ac34ad3633a5cbc21b996fae3d2bc85247825960a5a54ac73c52c2
6bfb49cbec3a555651ebf9e3b69fa57fd275cff00d9262ad7afe7ae3ff1cfd27976ff004eb9a53fe9131
559ebf9faa3fdc7e8f4a9affa75d74a6dff001e9e38ab4d3fe607ec69fa3751d6f6eba77ff8f4c55a49ff0
030a9fbcb0d1ab5fd9bdbaa53e9b5c55619bf323b59e894affcb55df4a7fcc378e2ab8c9f98bc452db
45e7deb71774ff9318ab5a769de69b8f305aeafaf8d3e282ced6e6de28ec5e691d9ee9e06ab19510
00043f8e2aca315762aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55fffd0f7f62aec
55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8ab1df3aeb171a4
e8be8e9ae175dd5654d3346043303797350ac4283f0c4a1e673fc91b62a936bfa3c1e50d3741d7b
4af505bf94905b5daf266697489424775ea0504bb2704b9af5e717f94d8ab3a041008350770462ad
e2aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb15762a
ec55fffd1f7f62aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8
ab16f30797fcc1a86bda76b7a46a9696cba7413c515a5eda4b749eb5c950d3031dcc1f104531ad43
503bff00362a92da3fe65eb173ae69b26a3a01b5b0b8162564d32edbd6592d619c961f5fa007d6e3
4f6c5592f92f45d4bcb9e58d3f42d56f5350bab08cc0b7512491a98118885692c92b9291f142ccecc
dc791eb8aa7d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb15
762aec55d8abb157fffd2f7f62aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8ab
b15762aec55d8abb15637e59ff8ebf9b7fedab1ff00dd3acf156498abb15762aec55d8abb15762aec
55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb15762aff00ffd3f7f62aec55d8abb
15762aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb15633e586275af37af6
5d56203e9d36cce2ac9b15762aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8a
bb15762aec55d8abb15762aec55fffd4f7f62aec55d8abb15762aec55e69f9896da86a3e7af206956
9ac5fe8f6d7526ac6e64d365589e4f4ac8322b891245201a9155ebd298aa73fe01bce61dbce7e623
4fd9fac5a01f85a8c55bff01dd1014f9c3cc24024ff00bd36c09af8916c0e2aeff014ff00f5377987fe92e
0ff00b27c55dfe019ff00ea6ef30ffd25c3ff0064f8ab47c813935ff17f987fe9321edff3c31577fcabf97a
9f36f984ed4ff7b631debda018abbfe55f3f20c7cd9e623414e3f5e403f08462aba3f207a7d7cd3e607
a7f35ff00f48c62ab97c84a0827ccbafb53b1d41a87ee418aaa7f81a214a6bfae50536fd2329ad3e63
1556ff065b549fd31ac6fb53f48dc6dff000d8ab87936d80a7e97d60fbfe91b8aff00c4b155ff00e11b4f
fab9eadff711baff009af15525f2469c8ef226a1aaa3c8dce42ba95d2f26002d5a8fb9a0037f0c5579f2
6d9b2143aa6af435a91a9dd83bf8112023155bfe0ab1a53f4a6b1bd47fc756f2bf175ff76fdde18ab4b
e48b150546a9acd08e3bead7a4d2807532fb75c55a1e46d3c569aaeb5f152b5d5ef8f4f0acbb62ab
8f92ac09a9d4f58eb5db55bd1b8f94b8aa9379034b6dff4a6b80d6b51ad6a43affcf7c55aff00957fa4
9eba96b87fedf7a9ff000b8c5578f21692053f486b240f1d675227fea23155e3c8da4814faeeae47be
afa8ff00d9462ae5f23e909f66ef55a781d5f513faee3156dbc8fa3bfdabad54ee0ffc75f511ba9a8e97
18aacff01e89451f59d5a8a790ff00731a97506bff002d18ab1ef37f92b49d2742b8d56c2ef568afedd
e16865fd31a9b05325c461fe16b92a6a091423157a462aec55d8abb15762aec55d8abb15762aec5
5fffd5f7f62aec55d8abb15762aec5580f9babff002b27f2e683e1f5758a9ffa3038ab3ec55d8abb1576
2aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb15762ae
c55d8ab18fcc304f943500bd795bd3fe9262c5593e2aec55d8abb15762aec55d8abaa075c55aa8eb
5db157725f11b62aff00ffd6f537e5a79374af31fe5c79435dd6eef57bbd5b53d174ebcbfb86d6b5453
2dc4f6d1c92390972abf13313b0a62ac9ff00e558794e8549d50826bbeb7ab9e9bffcb5e2ad7fcaadf
286d55d4cd050575ad5cffd8de2ac77cd7e5cf21f94574717763ad5db6b7a8c3a459a5beb3a91a5d
5cabb47cccb7c802d23356de98aa1f41d3ff2d7cc16f1de5adbea96f6eb2ea16b7ed79acdf43f53b8d
266f42e239435ff00c547ad1e2f523daa5c556aaa7cbe4ffcb530aceb792180c9e82cbfa72fca99453
e00df5ba72dc6dd715433791bf29ef354b685a759f5ab56916d233ad5e3dd44f22b248231f5a2ea4a
ab06a76535e98aa40d6df9657de629fcbba6699aa6b3359be9e6fae2cb55bc95214d53fb89f89bd0
ef08a7c72c6aca9efc5f8aa9fcfe47fca7884925cdc04585ca4ad26b77a024854b956addec78a96a1
ec2b8aa9ff81bf287ead2dd7ac8d696c10cd2fe9abc68e313ee9c8fd6881cff0066bd7b62aa379e4ef
c9fd383c5f04b7e216920d3d358b937330588ce1638daec162c8a597fc9f8bece2a82f2fe97f929ae7
976d3cdb6ed141633c16d34ab71aadc16b76bd856648a602e99564e2c3e1c55389340fc9e864f46
4b9b159961375e99d4e4e7e8040fea53d7af0e24372e9435c5535b2f22fe5fea56905fe9f6915dd8d
c2892dee60b99a58a4423665659482315457fcabbf26d29fa3053a7f7b3ff00d54c5524d43cbba479
7fce1e4d974680da35cde5e4373c259489221a75cc81583390406556e9d462af42c55d8abb15762
aec55d8abb15762af3fd27c99a16befaa6a7aafd766bc9353bf42cba8dfc28121b878d155229d5140
55028aa3154c4fe597940f586fb7dbfe3aba97fd94e2ad1fcb1f27914305ed3fedaba97fd94e2ab0fe5
5f928f2adade7c5bb7fb94d4b7ffa79c5520f31794bf2cfcbb369b6171a65fde6afab4af0e95a5da5fdf
3dcdc3c286594afa974881513e27777551e3c994155bf2ff963f29bcc3673de59dacb0c96734d69a8

5adddede45716b736cc1658a556b8342a597704a3065656656538aa723f2ebf2e639254faaa8922
5533235f5d128aff64b033ed5ed8aa5f7ba47e55e94c9691c115dea53da5c6a167a74178f25cdcdb
da3224ad17a93aa9a348ab52e054f5c551f6be5cfcb2bbba9ecad96d64beb698dadcdb2ddb99639
d516531b2fab5e41583118ab19b93f95375ae5df9621f2fcdab8b6b9b0b1d56e2dab716b6d36a6ab
35b7ac0ce1ca3028deaac6f1af25f8b972e2ab2a93ca5f96912bcf3c164ab1b9492592e5a8ae0722a
4b49b1a6f4c55a6f2afe57fa53cf25b69c60838a5ccad32948fd400a8725e8bc81a8af5c5546ebcbff9
5fa54770a34fd3e4ba82192e3ea11bc6f7322dbc66621119c1278eff00d98aa9e91a4fe546ada45bf
982d2cb4d5b1b88e1999e56887a46e23591525f8caabf161f0d715462f973f2ba09feac2d7494b911
fa8612f1731150372e25abc6841af862a985bf937c91730a5cdae916135bcaa1a39638d1d194f42a
454118aaa7f81bc9fbff00b83b3dfafee57fa62ab64f21792e5149740b1900da8f0236df48c55a3e41f
2491c5bcbf60568050dbc64517a751dbb62a90ebbe46f26dbeb1e5858341b0896eb51961b954b78
d44b1ae9d792857a0f880745700fed286c55ffd7f62fe4bd0fe5079069b8ff000f6942a3dace2f0c559
ce2aec5584fe64793affce5179722b336a63d175bb5d6ae61bd2fe9cf1da248be90e28ff68c9d48da
9f64e2ac1e0fc93d66d34c8ec2def34ff4962f3341069e23912cece0f31a22c76b6e28ec618594b386
a732edc15178aaaa95ea9f90be6abb87cc56961a9e956961af023d1104c1a161a4d8e9caeaf1946
1f1da177452a92875e75f4e8caa2751fcb4bdd23cbada1a44479d35ef345d6b9a4f98745b279134e
96eae9ae59ae6520718d6292684973fbc56e0bf13531564facfe544b7fade857ba77d474b8bcb577
64da16a9671c906a96ba45ac68b3e9bca3a09219caba90edc155ebe9bbaab62a93f977f25353d16
3f2e09a6d21ee741bfb1b8b8be82d658ee350b6d32daeada1370f23c844a05c72017f76adce9f6fe1
55da7fe4e799b4ad3b48b0d3f55d3a2161a7e99a75d936d29f5d74eb9ba99f8956468b90b81c1d1b
d4428472e326cab1ff2b7e536bdf5cd63caba92c2b6ba543e575835b6b79e3175368560f1a1b6676
3b7208b2b0766556963df9fc2aa75e5ff00c90d7f40f31e87e658359b433e83a7687a74760b0c82da
e0e91637b633bbee789916f39c4c01688c7c7e2576c55d6bf911a869da75d5ae9faadb25dc33e8da
869570f03b466eb48b89ae9e1b98c3296b691a62891a38689157e26618abd63cada2ff0087f43b6d
2cc7690b466491e1d36dc59d9a3cd234ae228816a0e4c4d492cc6acdb9c5538c5588f9a4d3cd9e4
5f7d46f47fdcaaecff0c559762aec55d8abb15762aec55d8abb1563de50afd4f52a8a7fb96d4a9f2fad
c98ab21c55d8abb15605e78f2b6af2f99340fcc4f2cc11dfebfe59b6d46d3f434d28b74beb4d49222f1
a4cc1962956482264665e07e2472a1b9aaaf2cb5fcaaf3179af4fd73cd967047a77993cf11ebb0ebfa
5eb69716a74e1ac58db59431c61524129805947cd85239cbb488e02a2e2aababfe4579db559f5d6
9a5d11a0d5927b7081ae23478a4bed36f2379631030320167223b167e6ce1be14fdd22a8bbff00c8
7d7eea4f30ac326931d8eb561e67d2adad1d6468ed61f305c5b5cdb32288a9fba785cba2d055b92
3571545f9abc87adda19e0d31553cd5acf9962d6fcb5abd9dacf711d84af690dadf0bd91502a44601
3aab33afa9cd40fde018aa6dae7e516a7a96bfa4ea5a4dc596832683716f6fa5ebba689a1d4ffc3f14
0b1cba65c20fddce8efc8a348dc62f85d63f54722aa57a0fe465f69f6be5f8f518746b9bcd22fec2eafe
ef8de4ef7d1e996773691bb7d69e608ec2707d351c128df1bfc3c5541689f915e6bd0b4cd234cb3bc
d184565a4e97a4dfd619a93be9af7c5e552a1591985e2fc4a7d4a46c9cd449c95548fc9df947ad5d6
b5e62d0354820b59f469bcbd2daf9896dae216bb9b4cd0d2c8fd5e5913e2899c1494ac8580f55287
9f2c5596e9bf925ad697e61d13cc56b7d609fa0e1d2634d2961616b72da7e9d77a74e643c7e02cb
721e170ac53d3e2d50fb2a81d27fe71e2f343d1efac2cf54b5b8bdae8f369d77730c82afa54924b24
137a4c92081fd4f4e358e4e512227dbe34c55ec3e4fd013cafe5db2d0e386dadd2d43d20b0478ad9
0cb23485635919da956dd99aac6adde98aa798abb15762ac77cc5ff1daf28ffdb526ff00ba55f62aff0
0ffd0f4dfe4ef97fce27f2a3c8e6dfcda6de0fd05a77a76e34fb67083ead1d179135341f0d4e2acd9bc
bde7666a8f38b20dfe15d36d69b8a77a9dbae2ab1bcb5e7660a3fc6f32f1a54ae9d6353f3e487f0c5
5a6f2bf9d5a9ff3bd5dad295e1a7e9dbffc142d8aadff000a79d3bf9fafbe8d3f4bafe36c7156ff00c29e
72ff00a9f6ff00fe9034bffb25c55a3e52f39114ff001fea20f88b0d2abf8da62ab25f27f9ca4040fcc2d4
e2ad374b1d23b1afed59b75c55c3c9de7306bff2b135423c0d8e8f4e94ff00962c5567f82bce7420fe
63eafb926a2c746aefdbfde1e98ab67c93e6d7705bf31b5a0bdd52d3465fc4e9e4e2ad9f237999942
37e626bc00fda5834656fbff471c556b7907cc2d4a7e63798c77344d1b7ff00b96e2abbfc07af1ffca8
5e62ff0081d1ff00ef1b8ab8f90b5d3ff950bcc7f42e8fff0078dc5526bbf2cea7a2f9dbc8f7577e68d5b
5c89efaf62fab6a22c7d242da5dd3731f55b481b90e34dd8afc5f67157a862aec55d8abb15762aec5
5d8abb15795e97e50f346af36b579a7f9f357d12ce4d5f511169f676da5490c74b8653c5ae6ca690d
482df13b6e7c36c5531ff009577e702413f9a5e62f034b6d0803ff72cc5577fcabbf35d083f99fe64a9
e87d0d0f6ffb9662abd7f2f7ccc1687f32fcc85bf9bd2d13f57e8cc55bff00957be64eff00995e64ff0080
d147fddb315587f2e7cc45831fccbf336dd82e8c07e1a6e2adff00cab8d78b167fcc9f339af60748503
eed371570fcb7d6f7afe63f9a0d4d7ed6943eea69d8abbfe55b6b5527fe56379a37afede95dff00edd
def8aad6fcb3d61850fe63f9a874dc4ba58e9f2d3f156cfe5a6aac003f989e69dbb89b4d1faac3156c7
e59ea22bcbf30bcd4d5df7b9b014f952c462aba3fcb5bf4356f3f79a641e0d75623fe2364315555fcb
aba0c49f3bf995b6a50dddb53f0b518aaa0fcbd9f9723e71f31915af1fae42075ad36b718aaa1f20b9
047f8afcc001f0bd4077f7f471569fc80ce389f35f9847badf2a9fc22c55a6fcbe66001f35f984536a8bf
00fe1162ad2fe5d85d8f9abcc4c37eba89eff002418aa43aef90122d53cb10ff89bcc0febea32c7ea3e
a2c5d29a6de3f243c763f0f1aff296c55fffd1f60fe480a7e4df900162e7fc3fa5d5c9a927ea91d4938a
bc7fcfbe6ef35e83f9bbe647b4d56f2dbcbfa65df934cb30be32416516ab732dbdcc6ba6b9e371f590
a8878fc709fdf47f12eeab2e93f36757d1ae05adb69d6f258c379a9bea26e2ee7b99f841e661a3958

153

59c6db4bea2ab7c11d3d151c38e2aed27f3ab5df30ea10689a45b692750bbd5adec20bbf5e69ad0
5add5adfdc0750a11e465fa815e54891f9fc2282acaa1f58f35f9f7ce3a05d5b59dbd95beada2ea715
8dfe862fa6d29b55d42cdee64bbd3e1bc56ac41ed96dee2193f68b7093f77cb1542e9ff9e1751e8ea
7cbb68b73a4693a2c57324be61bbf43549a57d365bb85c8672f37c70fa123223f37f5255978c6792
a8ed43f3abcc9a1eab7363abc3a37d5621a844b7492dc46a93da69769aac2d25439e0c975e91555
e4ccbcc71e7c1556ad3f3b7cc5a8ea62cecac34e92ded1a217c9eac9f5ab9075eb8d16516ca8eeaa
e044932a979376f4ebbf3c5501f97df9a1e67874bf2df95afee6c67bbd46cb4f7b3d76e5e7b95896e6
1d45ff00d399a505e476b0e08c1d03349dd97e3557bfe7bf9adeca3be8b4bd3604be9f4dd3ed22b8
9993ead75a9e9a75057bb96578635889430c7bab48d2447afc0caa6c9e78d475192c757d4a2486
797cd1a76851daa5e4cb6b0a3e982e7d5431346260d2ccc7e35e12c7c3e1f8171541f963f37fccfe6
2d5bcb1a75dcfa5d91d4ae348b9bb6b6479124b2d6749bebc4b7532cb55904b694120fb41947a7d
792a8ff3579f35df2ef9bf56d2b447d316f6eafad60e7a84b752aac5fa16f2fd7f72b380adcaccafeef82
babf36f8faaa9245f99dac5f6b311b06b4b0b4d66e636d404d24f708eb3f9517548a20c665101e638
d6109cc2f3e3ccbd5563de64fce19eebf2d67d1e2960b55bcf274f7692da5dceb7965770e810ea917
efe593d57625c85239fc2159e632734c55e831eb1773fe6a69ba1bceb3e9969796d7f64c0b3b44fa
968ba91961662cc0ef009506dc565fe5e38abd8b15762aec55d8abb15762aec55d8ab1af25485ed
357069f06b3a9a8a7fcc539dfefc55817996fe4d53f313cd5a3799b55bad13cbda0f976cf54d065b6b
896c034f3c9742eef3d48dd3d5680c30a88df9c69cbe24fdf62ac67cadf9f3e676d3121f37c1a769fac
d9da34b7e974d25bc954f2eda6aeb34a8bc8a299669237e319d97e05e4a57154c341fcf2d7b599a
156b7d2e0b7b59da1d559e56f51d535f3a356255959632c852650cf27c4787c5c8362a93d97e6cf9
965bad3ee2e2e74f8f5bbbb0d35afef395c0b68239bccffa3278dad0ce635291bd0ca489397c2c68a
3154f7ccbe6bf3779a34bf30f95d750d3fcbdae689a8c5692cd3b5cda5b5e4c6f16eacad0cc92168e
2beb250b2ba373469a8bfc8caa59e57fcdfd5520d1744d16c61b1b78ecdaf3518bcc9a819ef007bab
e8254b49b996bc4b692d82ac881c4d132b33c5b315556dbf3c3cd16f1c777acc9a1a597d5ac6e27
9225b9554fd27a1ddea886a2595b8c4f6bc4f14669637f815597e2550f1fe7c79aaff4eb9bdd29b437
7d3e3d56430c9eabbea126972d87a70db08a760ad7097b44fef595c2557e265555af2d7e6a79974
1b4d3748b936f7d67a9dfcd1c7a8cc65926d3609fcc1776265bb6695bd4440a88a7f74a8ecaac78e
2a89ff95dbe74586f750bbb3d2ecec74efd1d15cc570b34478ea7a9dde9cb7ef3b4bc62b522d96e10
b467f773206900fde155191f9c758d4125d63ccaf62f7365a879574e8e3b1b9b9fd16eba9de5b34d7
56ce1e22e0c8ff03b865e30703cd0bf255453f36fcd93dd68d6f757da65ba5f5fe9ef34d6911e09653
6ad75a6c9139966907c7e94644838707e4943b62ac97ce5e73bff002f79ce7d3b4b9b4f86f2f3fc396
a66bb12caeb16a57f796cfca31711ad542f38c80be12735e3c55615a1fe6ceb7ad4fa3eac9358e9b2
eab73e594d5ee220f246d05f7e938a48c8965658d4c96e851938bfef383b39a1c554ed3f38277b2d
03caced63147abe9f7116a10422689edd64b4d55e396292699d983bd9220a73e1c9b9c9cde318a
b3efcb1d4f516bdd374f6924b8b0bbf29687ab5cc92b3c852fa557818d589a7aa918247f3465fed33
62af51c55d8ab1df317fc76bca3ff006d59bfee957d8abfffd2f60fe480e3f93be440763fa0b4ea81d01f
aba547538ab2293c9de52975c1e669741d3e4f3182a46aef6b0b5e828bc54898af3d86c3e2d862a
a43c8be4a1ea01e5dd37f7a58cbfe8707c464996e5b97c1bf2995653e32287fb5be2abedfc95e4eb
3b84bcb3f2fe9b6d79149f588ae21b3823956625dbd4565404356490f2ebf1bff003362aa36fe49d05
b447d0f5cb78fcc305c4cd777d2ead0dbdc35cdcbf5964411ac5c80a2af18d42a80062a984de5bf2e
dc48b2dc691652ca96ada72bc96d1330b27fb56e095fee8d378fec7b62aa1fe0ff002912ec741d389
9390909b482adea46216afc1bf28d421f141c7ece2a965b7e5d796ed7ce4be7482da24be8ec7f47d
b5aac16eb0403d5799a68e9107595cc8c1d83d197a8c55371e57f2c88a48068d622099122962faa
c3c1e389b9a2b0e34215be2507a1df15579744d1674ba8e7d3ad658ef8a35ea3c11b2ce62a70320
2bf1f1a0e3cba62ab25f2fe8f717335d5cd9c53bce6279525459233240a5124e2c080e15b8f31f171f
87b62abadb41d0acc86b4d32d2dca942a62823420c35f4c8e2a3ecd4f1fe5aed8aba4d07429ae5af
66d32d24bc760ef70f046d2b3aa940c58ad490a4ad7c3155e9a3e9112948ec2d9118ab32ac31805
917829200ea17e11fe4ed8ab6fa469527dbb1b76a00a394487650540dc7400918ab14d6b4ab3d3f
cd3e5092ce2119b9d5ef2e2e9c124bc8da45d202c49ecaaa8a3a2a2aa8d862acdf15762aec55d8a
bb15762aec55d8ab18f24bf2b5d6056bc75ad4d7e5fe92e69f8e2aa9e71f24f963cf763069be65b45
b95b2b88afec265768ae2d6ee06ac73432210c8c0f707e21f0b5576c55345d274c27d4b8822babb6
885b4d773c71b4d2c601055d828a8219aabd373b62a936a5fe0ad3755d2348bed36d45eeb724b6
b6045a23a192d2237451dc2109458b92863d53e1df154ddf48d0d5e599ec2d04b302b3c8d0c619d
5dfd421891b82ff11afed6fd7154bad741d2f40d1f528a75b8d685c34f7d7df5a0b7977744afd8e2140
7e28ab1469c7ec2a262a9a0b5d2a68a22f6b00582231c71c91a030c52200c9423e10545197a5315
4ab53baf29f97a6d26d6e6ce089f58bc8ec2c161b7420ce629244af11b2858da8dd07d38aaf7f2b68
47cc363e625558ef74fb79ac6da0411ac016e0c4ec7871afa948138907655a74c551e5f4f4ba8ed56
d03477304aed7491a9b7091b2d5247f162f555efc5fc3154368baee89af5adeded900b6f657373a75
dbcc823024b2731c82a762951f0b578918aa28d8e9075317dc63fd22f6e21d9a85edd1f9ad52b460
8cc78b11f0f26a7da38aaa2dc694504892db94700ab2b251872a0208ebf16dfeb62aa715f69f30e77
0ab6f234d2411adc98d5e4685996abf11a83c4b2f7e3d862a81bcf31e8b673c56702fd7af2e2d66be
8a0b3549395b5a950cc58b2a005d9513937c4e76fb2dc5556d5bcc7e58f2fe9f77a9eb3a95a5869d
a7a07bd9e691112146708bcf7f86ac428ff002b15558bf4169b732dcacb04177aabc4cf23caa1e762
0471052cdb8a5151576fe5eb8aab9d5b4a109b937d6e2dc00c6532a700acc541e55a5090462a84
97ccfa1c702dd457b0dcda992de2967b6912648beb94f45e42ac688fc968dfe506fb3be2a84f31d7f4

d794687fe96b357fee157d8abfffd3f5ff00e46861f937e42e7b3fe81d38b03bee6d92b8aa117f39f41
2b7133585d259db6a175a45c4ecd6ff00b9bcb4b79ae3d29a3f57d489e4f478468e8199de2fd9915
b1553b7fcebd1e4bdbfb1bad22fecdec6e66d395e6fab159b50824b388dba70998825efa1019c2a7
dadfe1c550d17e68eb76be769f47d5f42bc874d9a1d2a28adeb69ead9dedfcfa943fbc6137ef12636
91fa6c950aadc9f8e2ade9ff009eba3de59c5a8dc68d7d6361f56d2b51bd92e1ad8b5b58f982530e9
f33ac52bd7d4756e6aa4b44a393e2aa63f38e1d40e804697a9e92daaea1a5476d130b198dc5b6b1
0dd34064fdf3fa68cf6b22b713eaa9543f618e2a8bb0fce48f5157165e5ad46f264babab61159186e8
c9169d3436d7734451e8eb14d37a5fe53c72f13c54332ab3caff0098f7de6afccf7d2b4f20f9326f2e7
e95d398842d3ceba94968660c07355654d91bd9bad462aada6fe7269fabcd6ba769fa55c49aedcb
4f6efa6b49123437d64b70f736b2bd7889635801a577f563fd9ab0552abdfce04bdf2eeb17be5b8ae
e4d4ef2d2e6f741172b6f1a470c5a2c3a92cc3ad57f7a1610000026060f002220574d46430100000
0000001000000000000000b00000000200000e4f90000e45901009f04a0bfaaccbfdd0e4154f35cfc
cfff000bdaf97cdf69571a81d4f48bad6af6f2dde08a382df4d86196e58a48eac5a930288a37e9b62a
906b5f9bf7da36a3a56afab6997fa4686d6faaa5de9171021b8ba9e0974f8ed2480901f8bb5d94df8
efcbe1f855b154e5ff37e2b4bbd1ec355f2fdf58ea1ab99238ec5cc6f7493a8bc6894c20f30b28b3631
bb88f97a91851cbd511aa86b3fcefd3353892e347d1eeb55b68e2373a9cd60cb3259c064b88834b
50a5595ada41347208e58becf067f87154dfcb7e67d666b9f2a36af2c52c7e6dd2e5bff004a25dada
ea348ae0471b8fb51fa5332d5b7ac4ad5f8e98aa63e69aff0089fc8e6bb7e93ba0457ad74abdc5596
62aec55d8abb15762aec55d8abb1562fe47915ed75a0b4f835bd4d4d0537facb1dfefc55827e61f93
a7bad57cc5ad6b72f0f27df698f6938456b9b84b975812d65b54823f5d255997e35e4f030589c22c9
ea1c552897f2abcdfa849a1ebf7d15a4fe638ac34c9af2f1dc432dbeb27575d4afe4850232ad23692
28e8d565fddb7c156c554ee3f27fcd1ab691a45a6ada4e89fa4b4c1751dfde47712c83529c6957761
6f7b207b70164692e16465219a3a31f51fe0c5530d2ff002975ab5be5d7ef2c34db8d59f5113ea904
b333aea364da3258324d29849aadd2b5caa9565f88b6d21c55288bf227ccd6d697f009acaf350bc8
2eed26d56e279bd7b886e3cbb0e968927ee98f11751fac4166f878c9f14bb62a985f7e5479d2eee7
55d461874a87509e3b0b5b3e37571124963632dbdd4f0caf15babac97b323fad37ef38449022ab7c
78aaa697f949e6ad3359d025860d25346d2eff004dd4224377797171636f676d756f359dbc97113b
ca84ceb223bbc557697922af00154e7ceff949aaf99357f315fe91ad8d2ed35bd3a3e16c23a98f5db
70604bce60720af6ac6da5553564c5523befca0f37dcdeeaba8d94f616afaa26ab2c562f34ad6d68d
7c74c31da271894b4129b091ae0809f15cbf089b7e4aa7da7f907cdb65e44d6b428a1d1e0d5753d
7a7d621b34795ec63b4b9bf4bb68bd430291205e615c42ca1f8b71c5586689f925f98da7f94eefcad
7b7ba1dd4a74c8a0d335995aee6bbb5bbb6b3fa90857946a7ead32a86928fcd7d59e3e127259315
5397f2d3cf7e67b7d59ece1d274bd40df6ad61796f70b76966b0dd5d6997a92da37a08d280d66c9c
b8a21672ebf638b2a9d4ff92be60bcb8d5a7925d36de6b983cc6ba5dd2f39a4b79f5bd513508090d
12d15555a29b8306a39f4cef8aa2a5fcb9f34268fabe9234ed26dee7cd1a25f69d711d8bdc3e9d69a
94934b346e4ccad298e4f59da47545fde2a8f4fe2e58aa4fe68fc89f3279860d75a1974ab4bed665d
5ae1e43eaba96be934d9a04908894b2abd9387fe50eac81b75c5597fe617e5d6b9e70bcb7beb58f
4b1770e8f258a4d7264e515ebdf595d0788ac4c4228b6700f20fc997df1562b65f927e70b7bc916ea
eb46bad260d42d6e2c21649c48d696de639b5c61372465e6526684051c797c55df1554b5fca1f33d
968fa968322d84169aee996da2cafa4b48a6068f53bbbc6b92248e20024173c52957f55176e2df0a
af55f327fc76bc9f4ff00abacd5f97e89bfc55fffd4f607e47861f93be44e66adfa0b4f27e66dd0e2ad6a
3f953a0dd7a7696b044ba65d5fd9ea3ae7d6fd6bbbab8fd1528b8b38e396590f058e551d9bf77c913
8d6b8aa26eff29bc897f2dfcb77a74929d4e6bbbabd43757211e7d4041eb48144a02b56da1642b4f
49e3578b836f8aaac9f95fe4e965370f6f746e5bea4cd3fd7ef7d52fa6492cb6ee5fd6e45d5e7958b1
3c9cbfef3962abad3f2c3c93651e9b141a69e1a4dadbe9f6a1e79a42d696327ab6b14c5dcfac207f8
e1f579fa4df1250e2aa317e53f91e16d3dd6ca763a51b33a787bebc7111d37d616c45663bc7f5896
95fe7f8abb62aeb5fca5f20d9c5a6430e96dc3460534ce57574e6085978342a5a524c2c00e513563
73f13ab36f8aa65a2f90fca5e5ed5a7d7346d312d354b88e581e64790858679cdd491a2331444699
9a4e28aabc998f7c5552e3c93e56b9560da645133de4baa196dcb412fd76e23314b309222ac1a44
251c83f1a12adb62a80befcb0f21ea4acb79a2c4ea5c4802bcb1f122d4d8d1383af1536e7d1645a23
47f0b2e2a995cf937cb179f51177a6453a69b673e99651c9c9a34b2bb8d629a1e04f1657445560c0
ec3154a87e557e5efe8f8f4a7d06de5d3a282e2d12de6324c9e85e08d65422476e40886302bf63d3
4e1c78ae2ae97f2abf2fa69acee66d0e192e6c1516d676794c8be9198a92c5eacc0cf2fc4c59bf78fb
fc58aaba7e5b79192fedf541a25b9d46dbd4e172dcd9dfd67f51bd52cc7d5f8cf21eaf3e2dbae2aaba
0792ec3cbf2d9b4334935be9368da6e8b6ee7e0b4b36652635dc96348e34e6df170455fe62caa8f9
a541f3279258fecea9734f99d2af7156578abb15762aec55d8abb15762aec558bf91e9f56d6c00453
5bd4eb514a9370c7154b7ccbf9a1a5796ef75bb16d3eef50b8f2fd8aea9a8c3666dda75b562b5916
19268dd902963ea05e1fbb91397a8bc4aa84b9fce3d02df5086cd6c2f67b590ab3ea717d59ad23b6
93513a5adc1633866433d3ec2337a679f1c5526f327e6d6ad632796f59d2b46bb93cbb7f25ccb242
56d4bea3a78d26e3508a7b691a7511f0f42ae92717a305e356c55378ff372daf3513a6e95e5fd46ee
49a7169a6ca5ad218ef2e3ea29a9b2c7ce7e4a05b3abf2915072fddfdac552997f3cb49d4f4cd4ae3
49b0d4adecd6caf25b2d6fd2b6913eb16fa4a6ac156079c31710c9f664089ea4663661507154ca4fc
dc86caf2ef4db9d16f657b3b1b3bc8ee91add85c3ea53a5ada46523918c6f70e5d91587f77148e69f

155

0f2552f93f362fb5abcf292687a65ee9715f6af6961e60835481209e0fadd9dcdc7d59e290f3571e9c
6fcd4538b27557d954d7cc5f9c5a1795b52d7b4ed66d27864f2f8b69ee0868cb4b657903bc773127
2e453d64fab78898ff27c58aa02e3f37b4e8fcc1369b7505edacda526a169aa69a12dde26be80e9e
d0a89b987aba5f4462283d32256f54ab474c555743fcc0d72c7c9bac6bde62d3e6d4351b2f31dd68
96fa7da9b649bd3935316568bc99e38cd0491f272d52bf11f8b15424df9ada86b4f259693a46a1a3c
d61a858db5eea777023e9ed22ead6fa7ded909cd51a4fde3f0688bf2e2595832f1c5551ff3d34d5d0
b51f332e81a92681649ebdb6a3708b6d0de5b882e2766b7f568d23016fc78c6ae2b2c4dcb873745
57dffe786916b7379a6dae917b7bae437c74db4d1e25ff004d9e516d35d87f4402cb1490c2cf0cb46
8e5fb3c8159382abffe5625e5e5e4579147776f64fe60b6f2fc5a688edd26f58e9ed74e2e4cc4950d2
48b190879218d7f659f155be5dfce0b9f335e6816969e5f92ca4d5e6b43709797117386c751d32e3
508265f47d45673f576468ea38f5e5be2aafac7e6fa68dab798f4e9b40b97b5f2e99a292f9668384f3
c3a58d5822254b2868790e6f41cc71ef5c550fe66fceab7f2dcf736eda15c5e35a7e977b868a78540
8b438ad6695873a559d2e9782ff3295661f6b154d2c3cfb79a8eada52ada35bc13eb3a8796753b46
74904575656f35ca4f1b800b2b087891ff001674f837553ef318275af2811db559abff0070abfc55ffd5
f617e493bcbf941e479241476d12c491efe82e2acf315762aec55d8abb15762aec55d8abb15762ae
c55d8abb15762ac5fcd0a4ebde4c6ad02eab35478d74cbd18ab28c55d8abb15762aec55d8abb157
62ac53c8ac0c3af806a575dd481f6fded69f8e2aa7e64f25a6a17b3f98b4b1149e6916d259d81d4de
596c214baf4e39c889083578d00206cc40afed1c5500bf93fe4ffa9e9366c9728ba469d61a45b9b7b
892dd5adb4b9d2ea00c91b05244b1ab9dbe2fb2df0ed8ab5ff2a6fc902d2dac123be4b4b27b97b28
86a176cb025e5b4b68f0c41a53c2158a69123897e08b97c01715455a7e567952cb4f3616ff5d5e37
51df41766f6e0ddc17115a25886866e7cd2b6e82260a68c95af5c550f37e4ef916549e14b5b882d6
e0cbcad6deeee228144fa78d29c246ae1541b6511d146df6fedfc58aacff9531e4663a819a2be9c6a
5e935cacba8de30135b2451c33467d5ac72c4b04622910ab47c7e0e356aaa9847f95fe4b8f57b4d7
4594c753b368258e56bcba6125c5a2c8b14f329978cd2aacaebeaca1df8b50b62a9b6a9e50f2c6b7
737379abe956f79757962fa45ccb3206692c25712340c4fec171ca9fcdbe2a94cdf95fe49ba565bcd
38dd1922b986779e79dde617a22133cac5f93c8c208692313227a51f065e231545c7e42f2b45a34
da0c766eba6dcde8d5674fac5c191ef84eb73eb34a643216f55164fb5f6862aa727e5cf93e496fa6fa
834726a3749a8dd7a57373129bc49639fd6454902c6ed24492398c2fa8ea1a4e58aa064fca1fcb99
6d1ac64d0d0d9b4934ab009ee0247f59496395220251e9c4eb3ca1a18f8c479b7c18aaadc7e5579
0aee358eeb4813989a37b69a49ee1a780c4cecbe84c64f5221591cb08d943737e55e4715459f217
979ae5e47b61f54fadc1a9dbda465a1486feda0faaace8622a6a620ab4351f0f2ea71559a77e5bf92f
4a9ed6e6c74b114f626d0d9c9eb4eed17e8f865b7b70bca434091cd246077572ad5c555aebc83e5
0bebcbcbfbbd2e39ae75095e7bd2ef2159a496d3ea2e5d39716adbfee88229c315422fe5779016dc
dafe8380c0c9731b2b348c596fd238ee3912e49f55618c3926adc062a8d83c99a2daeb106ab6d088
8413dcea0b6eb52a751bd4f4a5ba624925cc7c9076a3bf8e2abbcc23fdcbf94cf86ab2ffdd2aff157ffd
6f55fe54dd79bd3f2d3cae9a6e95a6cf64ba7402d65b8d4ae2091e20bf0178d6c250a48a54077a7f3
1c55978bcf3f9fb5a2e8e3e5abdd1ffbb60c5577d73cf7ff00566d23fee2b73ff78ec55df5bf3dff00d59f
48ff00b8adcffde3b1568ddf9f6a38e8fa452bbd755bafb34ffb6775c55a7bcf3ff13e968da397edcb55
ba03f0d38e2ab1ef3f3128be9e8da2f2db9f2d5aee9ef4a69b8aadfae7e64716ff0070ba207df8ff00b
96bb23dabfee3462ab1aeff00333d11c747d084f515aeab78529dff00e95c0e2ab5aebf33ea38e93a
0d3bd753bcff00bc7e2ad1b9fcd1eda5e81f3fd237bff6438ab7f58fcd1ffab6e81ff49f7bff006458ab5f
58fcd1ff00ab6e81ff0049f7bff6478ab7f58fcd1ffab7681ff49f7bff006478ab5f58fcd2ff00ab7681effe9
d7bff006478aa5977279ce4f3179507992db4bb7b21a8cc51b4f9ee2e25697f47ddf1056586101695
25aaddbe1ee157a162aec55d8abb15762aec55d8abb1579879666f3bc773e675f2f596957361fa7a
f8acb7f79716d372253902915accb406b43cfe2f05c553f375f9a9534d2fcbf4ed5d46f7fec871570b9f
cd4a6fa6797c1f01a85e9ffb1118ab62e3f34abbe9be5f03fe63ef4ffd8962aefac7e697fd5bb40ffa4fb
dff00b23c55c2e3f34bbe9da07fd275effd91e2ab4cff009ab514d3fcbd4eff00e9b7bff6498aacf5bf36
8d7fd0fcb83c3fd2ef8fcffe3d862ab849f9ae46f6de5e53ff003117adff0032462ab91bf350fdb8fcbea3
fc97bd6fd683155ea7f33ebf1ae82057b1bc3b7dd8aaa0ff0095915dce874ef41778aaea7e62f8e8bf
75dff5c55691f99155e2da2015f8aab7676f6f8b15715fcc73d24d1147fa976db7fc18c55b09f98c6a0
cda20db6222bb3bfcbd418aaf117e60edcaef46af722daebfeca3155410f9e682b7ba4d6bb9faa5cf4
ffa49c55bf43cefdafb4af6ff0043b9ff00b2ac5526d6a0f361d4bcb9f58d434d5986a321b409633b2b4
dfa3af2a1eb76085f4f99aaf23cb88a712582afffd90000000840010824000000180000000210c0db0
1000000030000000000000000000000000000001b400000400000003400000001000000020000
00000000bf000000bf0000af4300003d43030000000000008000000080fe7fe94300000080000000
80ffff7b432100000008000000620000000c00000001000000150000000c00000004000000150000
000c00000004000000510000003c0801000000000000000000d2010000fb000000000000000000
000000000000000000005e010000bd000000500000000c0400005c040000e00301000000000020
00cc00d3010000fc000000280000005e010000bd00000001000800000000000000000000000000
00000000f90000000000000000000000ffffff00fcfcfc00fefefe00fafafa00f3f3f300e5e5e500ebebeb0
0e9e9e900e4e4e400e8e8e800e7e7e700eaeaea00e3e3e300e1e1e100e0e0e000e6e6e600e2e2
e200dadada00d4d4d400dfdfdf00d9d9d900d1d1d100cacaca00c7c7c700c8c8c800c5c5c500ccccc
c00c2c2c200c6c6c600c1c1c100c9c9c900c4c4c400c3c3c300c0c0c000bcbcbc00bdbdbd00cbcbc
b00bfbfbf00bebebe00b6b6b6009f9f9f00acacac00b5b5b500b8b8b800a4a4a400909090009c9c9c
0093939300a7a7a700a9a9a900ababab00a1a1a10084848400737373007b7b7b0072727200808

0800083838300656565008181810085858500878787008d8d8d00fdfdfd00686868008f8f8f00959
59500969696009999990098989800949494009292920091919100898989009b9b9b0086868600
8b8b8b008e8e8e0097979700a0a0a000a2a2a200a5a5a500b1b1b100b9b9b900adadad00aaaaa
a00a6a6a600a8a8a8009d9d9d00a3a3a300b0b0b0006e6e6e004d4d4d00f8f8f800fbfbfb00f9f9f90
0747474005f5f5f0071717100f4f4f4005a5a5a00d5d5d500f5f5f500f2f2f200797979005e5e5e004f4
f4f00f7f7f700f6f6f600414141006767670049494900f1f1f100f0f0f000efefef006b6b6b002a2a2a005
7575700d6d6d6006d6d6d00ececec00b2b2b200545454003e3e3e005656560075757500d3d3d30
0828282003a3a3a006969690064646400505050003b3b3b00464646006f6f6f001f1f1f001c1c1c00
cecece00474747007a7a7a0027272700343434001717170035353500777777003d3d3d003c3c3c
007c7c7c00ededed0076767600666666001111110051515100dedede004c4c4c00d2d2d2004444
4400dddddd003636360043434300afafaf0062626200dbdbdb0078787800bababa005c5c5c00707
07000404040003f3f3f00eeeeee004e4e4e005d5d5d008a8a8a008c8c8c00595959004848480026
2626001e1e1e00303030002c2c2c00b3b3b30023232300b7b7b700525252002929290088888800
bbbbbb00d0d0d00031313100cdcdcd00aeaeae00202020006c6c6c007d7d7d006a6a6a009a9a9a
007f7f7f007e7e7e0060606000585858005353530055555500b4b4b400cfcfcf00d8d8d800d7d7d70
0dcdcdc0063636300616161009e9e9e002e2e2e002b2b2b0010101000222222003333330045454
5004b4b4b001b1b1b0025252500383838005b5b5b00090909004a4a4a00242424002828280032
32320042424200161616002d2d2d003737370019191900151515000b0b0b00393939000d0d0d0
00c0c0c001a1a1a001818180004040400010101001d1d1d002f2f2f001313130021212100141414
000e0e0e00121212000f0f0f00377469c694a4c2c3c17887636191698cc2c2c2c2c2c2c2c2c2c2c2c
2c2c2c2c28094a439c23896c58039c5c6377e784178698c6163413b78c3a26f87a7613897a69778
7e69c1d1835c875cc1826f827463a787875c5c5c5c61616161616161617e7e7e7e7e7e7e7e96969
6969696969696969191967e96916196693694ae01400101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
1010101010101010101b5ac785c87ac87635c7474c1c174c39741745c6338383863a7a76338617
e967e7e7e7e7e7e7e7e7e7e9696919191a49191919636367e91367e38368c376937c2c63c3dbaa
d4d4d4a4d4e484f4b2951d24b2f345a5152562a5555552a555b7acbcbcbcbcbcbcbcbb5cbb7b753
2a5b54cbb5cbb75454bb2754a554b7bb211d211b8a1616bcbc9c13cfa39e0e0fa39e1106090d0d0
9090d110a9a0b9a0e0c00006a1e0140010302600202025f0404606060606060606060606060606
060606060406c6402609568046d6d6c5e606d7179735f026d050c10736479aa057168950f0f0895
68050d66ce0f0e0f9aa315a39e6666666613137f9cbcbcbcbcbcbcbcbc8a8a8a8a8a8a8a8a8a8a8a
8a8a8a8a8a251bbe1b25251bbe19201713a541720301010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
010101010101010101434a0b77ce12cc777f16bc1616bccc16161616bccc8abebccc8abebebe8ac
cbebebebebebebebe2525251b1b1bbebe1d1d1d1a1c1c201d23242c2854b77ab528282bcb7a5bb
f2a5632325858323256325252323231325532565656563355a1555555555555555556562a332d5
934322a32575251d259d229515150345a2946304445c44545c44bc4452f34294b4b29592f4b4b2f
2f4bc44fd2d23459c800006a1a010101025f0103030303010101010101010101010101010101010
10101010101010101400101010101010101010302010103010103010102010103010140010103
03014002010301014002024003010101010101030301010101010101010101010101010101010
1010101010101010101010101010103030101aa42670301010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101016059500101030203010103030101010140030303030301010101010103
01010101010101010101010303010101010101010101010340010101014040010101010303010
10101030301010101034040400103030101030301010103034003030101010101010101010101
01010102400101010101010340034001010101010102400101010101010140400101010303010
10101010101010101010201404c00009bcc0104020103010101010103404040010101010101010
10101010101010101040140020203014001010303030101010101400203010303010101014040
01014040030101034003010101010101010103030303030303030101010101010101030303030
30303030303030303030303010101010101010101010101609468010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
1010101010101010101010101010101c4310101020301010101010101010101010101010101010
30101010101010103030303030303030101010101010101010101010101010101010101030101
03030303010101010103010101010101010101010101010101010101010101010103030303030
30303030202030101010140030303030101030101010340030103010101010303030303030101
01010101400303030303030301010301014c00006bbc0101010103020101010101010101010101
01010101010101010101010101010103010103010101010101010101010101010101010101010
10303010101010103010101010103010101010103030301010303030101010101010101010101
01010101010101010101010101010101010103010101010301024001054a73020101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101014632020101010101010101010101014003030
10101010103030303030303030101010101010101010101010101010103030303030303030140
01014003010301010101010101010303010101010101010101010101010301034003010101030

157

10101010101010103010101010101010301010101010103400301010101010101010103030101
010101010303010101400301010303010101404001019400009f77010101030101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010368c205010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101014333010101010303010140015f600
103014001015f0101015f0103040101010301040101040101035f010140400101015f0103010101
404001010160400140010101400101040101015f01400301010103010101400101400140010140
01034003015f0102010340010101030301030201010301010101015f01020101600103015f01035
e01030201016c010102014001015e0103010101010101013c0000b37f010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010103010305c564010
10101010101010101010101010101010101010101010101010101010101010101010101010101
0101010101010101010101010101010101010101010101010101457a014003010301016001600
1030103010102010101030101405f01030303015f0303010102020140015e01015f030101010102
030101010104400102400103030101030301016001014001010102020101010101015f01010104
030103010101400103010140010102400101040101040101010102035f010101015f0102010301
030101020101010101015f0101014001010102010201010301013c0000d4bc0101010101400101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
0101010101010101010101010101010101010101010101010101010101010101010140010305c5
6d010101010101010101010101010101010101010101010101010101010101010101010101010
1010101010101010101010101010101010101010101010101010101032fa501400301030101016
c03030101016001020202015f40010303036c01035f0101010401010101400101015e4001015f03
0101030140015f01031610000026060f002220574d464301000000000001000000000000000b00
000000200000e4d90000e45901000103010401010201015f014001400101030101014040010340
010301030101010301010303010201025f04010101015f030102010104010160010101015f01010
15f010240010102010103030302600101010201400101015f02010101010101013c0000d4bc0103
01010140010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
103030103738c6d010101010101010101010101010101010101010101010101010101010101010
1010101010101010101010101010101010101010101010101010101010101010101014b230103
400103406001010140442d0301010401015f0101015f0301010101010160010103030101040201
014001400201015f0101020202014001010101010101020101010102015f010303014003015f010
30101040101015f4001015e030304010101010101015f03010101404003010203015f405f010103
040101010101015f01016c03010101015f5f0101010303016c01405f010101010101390000e21301
03010101030101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
101030101400c61670101010101010101010101010101010101010101010101010101010101010
101010101010101010101010101010101010101010101010101010101010101010101014fa5010
1400101010101015f4030c39c04400102400103600101015e015f40015f01015f014003020101400
14003010104400101014001010101015f010103010103014001030102010103010140405f01405
e010101040303014001015f0101010101040103400103015f015f01400140031a680101015f015f0
1030101400103014001014003015e015f0101010203010177160101400301010101c5000093150
10301010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010301010308636701010101010101010101010101010101010101010101010101010101010
101010101010101010101010101010101010101010101010101010101010101010101010143a5
010140030101400eb5180103cd3c0140cd17a31ace018a13047927108a17771eaa0101198a0195
cc0a9acd09bc150b77207f6d019e735e010faa5f5e01030104016002015f1168010c6c7301010401
6001015e05606c0160010204016840010403010201010302050240015e010140212a5e02014001
6d020101035f01014004030102010160010103015f010101015e0f307301400301010303c50000a
0a301010103010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
010101010301010107616c01010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101014f
26030103010102012d59c1265f097b670165972475cb3488762544d619dd76449077035991a454
9ec02a30a8a3e33d3df4a4a61345b462bc9eab6ab8584040010419280164a1c2469a77cab7686f4
297a1015f9e8229409cca7e8a12ac3407c7d12b723849944f2f4a5a609c6f690b01ba0b6c3951173

81ed29179477a5f02093c1a233e0a183f7aa10c4b19662f0853b503313460010301010303c60000
8bcf01010103010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
0101010101010301aa91600301010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010103c
4214003030101010111089b4b013388660396ad01c7259366671d18a0014c42686501666e64047
b1fb86c20c301c8cb01d8cb10557c25721ec13803c85901015f01dd9d01239f5f278404b89cad826
4d9c44001027014015d39733310ac723bc70d34d29dcf932a57407e4e9f3c2c311ac701013b3067
8b725aa671a866010195b41abcc35e6b34633b5f7c31ccd80336370109995f030301010340c6000
0b3144003010301010301015f01010101400103010201010301404001400140010101400101400
10101045f015f01400103010102400101010301010201010103600101020103010101030101400
1030101010101015f0101015f01034003030101040101400340030301010102010401015f010140
01030301014001073860010101010101010101010101010101010101010101010101010101010
1010101010101010101010101010101010101010101010101010101010101010101010101014b
1d010140010101031dd64c0301acae4c01944a013b567b5e01011adf01ba4279d101b77b0101dd
32766d1a6101acbf0123dc03ce3b0b797262cc603b2a03030113b63e156fc9019e8812af8ac2b740
c53101405e7d0b607bcc6d026ca608b8220401794e53e366718285bbd77302402d3b0340914401
ca5e32c1733b6c0102049d1e073c056504b53a01b0bfce9b4039ae0164970c010103010140c5000
0f214010101010103016c5f014001010201030340010301015e0101600301015f01010102010101
010101016001025f0101020101010303030160400101400301010101010101400140015f020101
0301400103040101030101030104014001030140016001010103010303015f0101010101010101
010102010103010c365f0301010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010102302
65f010301010101351d9a95a18b05355e873a606216c102092316a904354210700517c903687c1
3b009b78201ca540c5f972e67d0bf8183303201acbf0101024c6f0b1eae990122c00b7dcd48bf0182
53030104b80e016bc941a65fae0c87c95c3b71ce21f21378a860bce1ad6946555c400196d2016b6
057c168c16d0101607ccc114164d10421c5019d5514df01c63d016d9779400103010102c60000d4
9e01010101010302010101030102015f0102030140025f01040101014001034003014040015f5f0
15f4001010101030102015f01030101020101016001015f015f01015f40010301040101400103020
10103030101034003016001020103014001010101404040400104030101400101030260014001
03010103030861020301010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010103432102
01010140015e1e46c17fca7640351cc6d1d0ca0119426547cfe56992cda190af3e4347784613b4c2
9d2904a024348c36b4014b3c935877802cbda1036c5ef2c4015c7f3a1a63571fdb170e4c278d2b01
4015d46596ba2ac76b605c6d7a5035dc06ca09ca0f635bb59e69327b482382016793341de44e82
591570060301cddaa74c4908b06732ba6d758c2ae266d034010ba00701010101015f940000e115
010103010103030101040f8a030101015f01010101010401010104010201015f400140030102010
2030101035f03600101400104010102010201015f01015f01405e01014002400101020101030101
0201010304010140010101400201010101025f01030103015f01015f03015f40010104010101020
10101400b7e030301010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101c425010101
01400201409a0a60796d5f715e02400e5e405f9a160118c9a316015e601311031819016d9e951a6
001796095bb1e8a5f5ebb170101cf18c8bf020195b715011a05071c8a406d146001cd1d92530301
6dcd8ab7671fa57303d00601bcb512019c231c01101ebb60602a336d0569715f260a9e2ca55a022
575234001082aa1c40e793204cb1a6d2d54591ca52e68042583010303010101608c0000b166030
340010101010302015a769e0303040101015f030340016701030160010102030101035f0101016
00101015f01400101600101030101015f0401010101010103015f60010101040101010401400140
014001014001016060400301025f4002010301600103600301400103020102ce24090301010101
01014006360303010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101014f1b0103030
10101015f020301040201010440015e0102400101014a815f0302010304014040010304015f0101
40c67f010102035f01400103010302df56015e030103010203015f01015ec4726001aa7ccb010104
0102020101015f1170aa4001400101010401020140030104014040017a57011c0a01020104016d
1902405f0303015f4001405f0103010101010360020104511701010301010160690000b91303034
00101015f0f0c0101be390104600c720c64010568025f0a6d6d6caa0873010195aa036c72670495
05720103010a05010302025f4002050160015f40010303010301725f40020167010102035f01030
1400101010201010101010340020140400301600101014001015f0160105a66591403010101010
1030da70201010101010101010101010101010101010101010101010101010101010101010101
0101010101010101010101010101010101010101010101010101010101010103471b014040010
1016d010101015f014040014040014040010301022433010101400140034002010103015f01014
04d7f0201010101040103010101953c135f010104015f020101010201725c09010308c1bc040101
5e0101015e01011d616d014001035f015f40010401010103014001016d58726118020401014001

159

01405f0101025f01016001015e0102010103020101679c2c5f01400101010360690000b36601014
00103013463adb50440df13017ea00fdfc412e3dd2228bd6643b04bb4310118873a1d79df505bd92
765918a9b47391723843c0d013abac659405f01017fbc0401b74850080e3a1e7380ad492c400307
395301143ec6bc733ea50129941a5ed25a42bf1e58315e0ec24a0f0183be011aa4405f030103010
111c10401010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101013017010101010101
0103405e0101034001010340030101010104015f01400101020301400103010104015f01040101
5f016001405f0101015f010401010201014003015f0101600101400101010272050101400102010
25f0101020104015f01010301014001010101035f01020401016001400104670101015f01600101
035f010101010101015f01010301010101010201640301020101010103608c00009fcd010103014
0011c0f3a6a0125f82a013e6b03a7cfca4c05549c9d0151376081600ab9a5036bcc6f1267a202b89
60292335ebba83d662d579d95d96a0101400274c7011f9daacc37643b1d58e10e7d3c02016d703
40184995549aa861c3db12a42138133b4ba7acfc2c46aac5243a5a05e010169770103014001010
ec3600101010101010101010101010101010101010101010101010101010101010101010101010
101010101010101010101010101010101010101010101010101010101014e1d01010101034001
02010104010301020101014001030201015f01400140010104014001400101015f010301010101
0201010301010203014001400101400101014001405f01020301400102016040015f0102015f010
15f0103600104014001030102010101034003010102015f01015f020101014003030101015f0101
015f0103015f0140010160010103030301010101010201010101010360370000bd0f01030303010
301a2db7f03ba94c4013a990161195dcd01030fa84052ad5ee35f1a896440b83a780d68a603ca7e
01b7f10815c3404001dd4901766301400160b0b8be46c7025ea979691239d201372a010401ab24
649972035f40afa56b2f010279d027dfa10247f734ac9501034678015f01492f015f400101400d7804
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101013f2c03010140030140015f40
01521c01405f010167010302400201030103400102010140020340400104015f010201400102010
1010301400101010401030301010101030103034001030303015e010201010103010303014001
0140015f01030b7303400340030102010102010303014001010203010101030301020101400360
01015f010201010301034001400301015f01030301404001010360370000d49a01030101010358
d1150e795d95ae09adab01c37f5c660423a36e01503560e66dccb97140922b836605d1017d7e03
0462ad0783bc4848ae4f01a674034040335c25472e96010b931063113a50019429010140d92403
65304e4703af20c78347ad5e9e2c752c33702064b8564e2b4dae03010430c40101010101011063
40010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010242260103034001400102
01015f39a2a30101016c0103010102016401015f010140010401010103010201030102010302404
00101020101020101010301020101010203030140024003010101010140010303020101010140
01015f0101010401adc36d010101400101014001020101014001015f1764400160015f400101010
1010140035f0101035f0101010401406c01010304a35f010301010304690000c0a3010301010101
18ba8c5a506e01455994ea8cc86d214239a61290c6a83124758343ba44423c0be3a7af3908f2c27
7472f75662e4562ba71441de25c010103b84602808a6115ba48bc90069cc110b0530403bcb1af59
c25038af01c81d553644ea953b1fc90e4519318a395b7ed1a163014001c28a03030101010306630
20301010101010101010101010101010101010101010101010101010101010101010101010101
0101010101010101010101010101010101010101010101010101010144180103010301030179a
1cc0301cc80015e140e091d0e01131b010c106d0e09cd117103029a79036d08736767057264686
40b0c01017904015f6495640160030140015f40010108715f05956d405e7104030160036c044001
02015e0201014024ae0102020101675f026c026004010302015e512804016d01600402405f40400
30102020104600101020101400201010301015f567a030301010104910000f1a30103010101010
1cf7f6873066d0c060c090f9e01019e271095859a54016d088a66011dbb6403110d537101120767
1e1e209a021fbb01017720d86340016dcbcd0121689a26265f117f015f16217d5501010527cb5468
27bf0c01ab20019c50cc5f13311f0107272a685e5b2972146b72016d6f0c0101030303020e5c0203
01010101010101010101010101010101010101010101010101010101010101010101010101010
101010101010101010101010101010101010101010101010101014f17010101014002013a1d371
e01ce9b0203ac3a12857f4ae0d12331d90fc394a1b00e038c594753067c17c4c7727b5a2eb32694
ccaebd7021cfa93e81ba0301015fbbbf0164433e3d0d16a9240ad9828b4d40017165c15c9720e68
b1a7165ca7b2e5f4d7d613712a651bfa211013fea8c02216502bed9bf30c55e6f2c7f7dbb0360b5ca
664ac568a7a4c5a524d1cc37912b974b033e100101010104960000d69e0103014002030301015e
0104014040010240015e01030101197c0401030102010401020101406c010301041d7f03030103
01025f03010201016b3b01020140015e03010160024001ce050101036f320303010101020101020
164d9280140010403010203015e0101040101030103597a5e5746010301010101401478030101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101014047254003010103016d1e077b34
042dc01301914604c7199f8a601c279b014c2e95760113a97267ac159b602c975f6acb68e31f0850
6e19ce5a919701ca4701030301846b03289201338460ab1442626770ad015e13a91b88576a7617
34bff116c33504e6217cac01a92022b0017fe22e3e26463101086e0b4936026b1ba7901a01011bdf
014c5c7f89aeb3499cbd683f820190b50147c40101010104960000db12030303400101010202010
14001030301400303010140015e0f4564015e01015e0101020103010101020103c22b0101015f01

0101010201016d39340401014002030104400101406d8095010102c21701010202030140010104
15d01271010101010401040401010103034001600140cb7f5404030103030101409ec103010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101014613010103010140031ad4c34001a
c4aba0169ad013b7a995f010218df403d4eaad101535d01017d7adf67548701622b03567c5e777d
076704a61e0383a101010113e0c3cfc3b802ceee9ec809c2b501c72a0101034b2bdc33b0cf5f6047
8c025b480fe301494c03d9be20dd01ad96014001c6174068c7672f9601ac1836d101045e1597012
f4223a801c1330d7c012a4e01afbc0428d90301010104910000b9ce0201030301010101405f0101
01010104010101020101010101040140014003010140010101030302015f01010201020301015e
40010102010301010301400101010201400340010360016c010140010403010103014001040101
04040104014002015f010140010301035f0101030167676c01020102030301029a5c03400101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
010101010101010101010101010101010101010101010145ce010103030101014a231314518640
4d5e8237067d9a940b9eb51c85723d509c860f53ac0109a017d316569701c9b70605ac4c67764f8
5394e330162a1030103ba6979263c9701b5b995b8114a3203a6a10101602121897aa29a407f59c
601514f105d5f2e8001a98a1ac940bb3716d228c209010bd1013f96027d8a783b60010177970147
4d2c700263b7cdb801313060ab7701cba90301010304690000b3cd400103020140034001015f01
5f03400101015f0102010103010103030101015f010101010401010102010201030101010140010
10303010201015f010301010360010101010101024040010140010201014001400101010303400
30101010103010201025e0101020303010401020301020203400101010101010d610140010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
101010101010101010101010101010101010101010101402e8a02010101010303227aaea338c54
04f9c4a6f5da70320458749ccb1c56a0752df8b48bfa13d287f8b69652409df17324f4cd9607a5865
bb07c22b815b010173d81d40410f4826c22ccda80e0961b5b9535f010480a1aba31c4b516f0ba71
e7e5077860463ba0a859c32f2ad284e5b8b1b49200217705e3c8b327014c78b645f40cbbd337b55
2a9201a6cb1ed42c6583265daa0150c240010103603700009f1502010103030303010101034001
0101015f4001015f014001015e010401405f0140010401030301400101010201030201035f015e0
30140010203015f01024001400101400140020101015f010301010301010301010103010101030
1030101020103025f010101015f4001030201015f010303010140020104010bc202020101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101014922010140400101015faa6d015e5f036c5e
0101644040017173031970736c0103016d5e0479794002025f735f0103010210725f5e010979010
168067b7a02025f0a6c01a36c401008015f60025e7911c3b5020101051f9503030f1a6701601a8a4
00fcf72cc0c60145e05097acf79a59c01bf9401680f04159ca50f60c9b18a0102cf16244b022c1faa1
b790cbb539410302b4001461a0101020160c500008e0f010103010301010103030101400101400
201400101035f0140010101020101010101010301010140405f01030101015e010101014001030
20101400101010301015f60010101400303010301400303015e010401010101020301010101020
104400101014003010101010301010201020301010101010101010114a4010101010101010101
0101010101010101010101010101010101010

5.2 Signals
Often a thread needs to wait for a signal from another thread before it can proceed. There are various
types of signals. A persistent signal (sometimes called a latch or a gate) is a signal that remains set
until a single thread has received it. A transient signal (or pulse) is a signal that releases one or more
waiting threads but is lost if no threads are waiting.
With all types of signals, it is essential to separate the sending and the waiting interface in order to
ensure that the threads are able to call only their appropriate operation (a similar approach could have
been taken with semaphores if it is necessary to separate out the acquiring and releasing roles).
package
communicationAbstractions;
public
interface
SignalSender
{
void
send();
}
package
communicationAbstractions;
public
interface
SignalWaiter
{
void
waits()
throws
InterruptedException;
}
As with semaphores, if indefinite waiting is to be avoided, a waitS operation with a time-out can be
added to the SignalWaiter interface. The following class implements an abstract signal. It is
structured this way because the implementation of the send operation has code common for all
signals.

161

communicationAbstractions;
abstract
class
Signal
implements
SignalSender,
SignalWaiter
{
public
synchronized
void
send()
{
arrived
=
true;
notify();
}
abstract
void
waitS()
throws
InterruptedException;
protected
boolean
arrived
=
false;
public

public
}

package

Persistent signals
To illustrate Java's flexibility, a persistent signal is now defined. Here, as well as having a simple
waitS operation, a watch operation is also defined. This operation returns immediately even if the
signal has not been sent (rather than waiting). First, the appropriate interface must be provided:
package
communicationAbstractions;
public
interface
SignalWaiterOrWatcher
extends
SignalWaiter
{
boolean
watch();
}
The persistent signal extends the Signal class and implements the required interface.
package
communicationAbstractions;
public
class
PersistentSignal
extends
Signal
implements
SignalWaiterOrWatcher
{
public
synchronized
void
waitS()
throws
InterruptedException
{
while(!arrived)
wait();
//
Wait
for
a
new
signal.
arrived
=
false;
}
public
synchronized
boolean
watch()
{
//
This
method
never
waits.
if(!arrived)
return
false;
arrived
=
false;
return
true;
}
}
In common with the semaphores, there is no guarantee that the thread woken by the notify method
will be the thread that receives the signal. Another thread may gain access to the waitS method
before the awoken thread can execute. Unlike semaphores, multiple send method calls will release
only one thread no count is maintained.
For an example of the use of a persistent signal, consider the following class that provides access to a
disk. One of the functions it provides is asynchronous output. That is, the calling thread is not blocked
immediately when it requests that data be written to the disk. Instead, the method returns a persistent
signal object. When the output is complete, the controller sends the associated signal:
import
communicationAbstractions.PersistentSignal;
import
communicationAbstractions.SignalWaiterOrWatcher;
class
DiskController
{
//
Various
operations
including:
public
SignalWaiterOrWatcher
asyncWrite(
int
blockNumber,
Block
from)
{
reply
=
new
PersistentSignal();
//
Set
up
the
write
operation
then:
return
reply;
}
private
PersistentSignal
reply;
}
Inside this class, the output may be queued and actually not written to the disk for some time.
The client of the class can proceed as soon as the asyncWrite method returns and later check to
see
if
the
output
has
been
written:
import
communicationAbstractions.SignalWaiterOrWatcher;
...

{
DiskController();
new
Block();
outputDone;
...
outputDone
=
controller.asyncWrite(0,
superBlock);
When it is time to check that the output is complete:
try
{
outputDone.waitS();
}
catch
(InterruptedException
ie)
{
//
Initiate
recovery
action.
}
//
or
if(!outputDone.watch())
{
//
Output
not
complete,
initiate
recovery
action.
}
DiskController
Block

//

controller
=
new
superBlock
=
SignalWaiterOrWatcher

Remember that the persistent signal object will be garbage collected only when both the disk
controller and the client have deleted their access to it.
An alternative to the disk controller object creating the persistent object is to let the client decide what
type of signal to use and to pass the sender interface with the write request. The disk controller class
becomes
import
communicationAbstractions.SignalSender;
class
DiskController
{
//
Various
operations
including
public
void
asyncWrite(int
blockNumber,
Block from, SignalSender done) {
//
Set
up
the
write
operation
and
whenDone
=
done;
}
//
later
on:
{
whenDone.send();
}
private
SignalSender
whenDone;
}
In the above, the DiskController expects the client to provide its own synchronization agent. All
that the controller requires is an interface for signaling when the required operation is complete. The
client
body
becomes:
import
communicationAbstractions.PersistentSignal;
...
{
DiskController
controller2
=
new
DiskController();
PersistentSignal
outputDone2
=
new
PersistentSignal();

//

...
controller2.asyncWrite(0,
superBlock,
outputDone2);
When it is time to check that the output is complete.
try
{
outputDone2.waitS();
}
catch
(InterruptedException
ie)
{
//
Initiate
recovery
action.
}
//
Or
if(!outputDone2.watch())
{
// Output not complete, initiate some recovery action.
}

}
Transient signals
A transient signal is a signal that is lost if no threads are currently waiting. Two types can be
recognized: one that releases a single thread, and one that releases all threads (called a pulse). They

163

may be implemented as follows; first the simple transient signal that releases just one thread. This
extends the abstract Signal class (that implements the SignalSender and SignalWaiter
interfaces)
package
communicationAbstractions;
public
class
TransientSignal
extends
Signal
{
public
synchronized
void
send()
{
//
Overrides
send
in
Signal
//
and
implements
the
SignalSender
interface.
if(waiting
>
0)
super.send();
}
public
synchronized
void
waitS()
{
throws
InterruptedException
//
Overrides
waitS
in
Signal
and
//
implements
the
SignalWaiter
interface.
try
{
while(!arrived)
{
waiting++;
wait();
waiting--;
}
arrived
=
false;
}
catch(InterruptedException
ie)
{
waiting--;
throw
ie;
}
}
protected
int
waiting
=
0;
}
Note, in the above example, it is necessary to catch any thrown InterruptedException. If it had
not been caught, the waiting count would be wrong. The result would be that eventually a transient
signal would be made permanent.
Pulses
A

Pulse

allows
public
public

all

waiting

threads to be released. Consider the following


package
communicationAbstractions;
class
Pulse
extends
TransientSignal
{
synchronized
void
sendAll()
{
//
A
new
method.
if(waiting
>
0)
{
arrived
=
true;
notifyAll();
}
}
public
synchronized
void
waitS()
throws
InterruptedException
{
//
Overrides
waitS
in
TransientSignal
and
//
implements
the
SignalWaiter
interface.
try
{
while(!arrived)
{
waiting++;
wait();
waiting--;
}
if(waiting
==
0)
arrived
=
false;
}
catch(InterruptedException
ie)
{
if(--waiting
==
0)
arrived
=
false;
throw
ie;
}
}

If more than one thread is waiting for the signal and sendAll is called, all are released. The last one
detects that there are no more threads to be released and sets the boolean flag to false. Any threads
that queue after this point will have to wait for the next signal.
Note that with Pulse more than waiting threads might be released as new threads might call

waitS while the others are being released. To avoid this problem, it is necessary ensure that those
waiting inside the waitS method are given preferential access to the lock over those trying to enter
the wait method. This is difficult to ensure and is left as an exercise for the reader.
Class diagrams
Figure 5.2 below summarizes the relationship between the signal classes introduced in this section.
01000900000354a50100000097b7000000001610000026060f002220574d464301000000000001
00c63a000000000f000000002000007cb801007cd80100010000006c0000000000000000000000
d20100005f01000000000000000000006a4000007730000020454d46000001007cd801000c0000
00010000000000000000000000000000000005000020030000c40100001a010000000000000000
000000000000e3e306006e4e0400460000002c00000020000000454d462b014001001c00000010
0000000210c0db01000000600000006000000046000000b4670000a8670000454d462b22400400
0c000000000000001e4009000c00000000000000244001000c0000000000000030400200100000
00040000000000803f214007000c000000000000000840000500670000f46600000210c0db01000
0000000000000000000000000000000000001000000ffd8ffe000104a4649460001020100480048
0000ffed0d7650686f746f73686f7020332e30003842494d03ed0000000000100048000000010001
00480000000100013842494d040d000000000004000000783842494d03f3000000000008000000
00000000003842494d040a00000000000100003842494d271000000000000a000100000000000
000013842494d03f5000000000048002f66660001006c66660006000000000001002f6666000100
a1999a0006000000000001003200000001005a00000006000000000001003500000001002d000
000060000000000013842494d03f80000000000700000ffffffffffffffffffffffffffffffffffffffffffff03e80000000
0ffffffffffffffffffffffffffffffffffffffffffff03e800000000ffffffffffffffffffffffffffffffffffffffffffff03e800000000ffffffffffffffffff
ffffffffffffffffffffffffff03e800003842494d040800000000001000000001000002400000024000000000
3842494d0414000000000004000000023842494d040c000000000be60000000100000070000000
540000015000006e4000000bca00180001ffd8ffe000104a46494600010201004800480000ffee000
e41646f626500648000000001ffdb0084000c08080809080c09090c110b0a0b11150f0c0c0f15181
31315131318110c0c0c0c0c0c110c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c
0c010d0b0b0d0e0d100e0e10140e0e0e14140e0e0e0e14110c0c0c0c0c11110c0c0c0c0c0c110c0
c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0cffc0001108005400700301220002
1101031101ffdd00040007ffc4013f00000105010101010101000000000000000300010204050607
08090a0b0100010501010101010100000000000000010002030405060708090a0b10000104010
30204020507060805030c33010002110304211231054151611322718132061491a1b1422324155
2c16233347282d14307259253f0e1f163733516a2b283264493546445c2a3743617d255e265f2b3
84c3d375e3f3462794a485b495c4d4e4f4a5b5c5d5e5f55666768696a6b6c6d6e6f6374757677787
97a7b7c7d7e7f71100020201020404030405060707060535010002110321311204415161712213
0532819114a1b14223c152d1f0332462e1728292435315637334f1250616a2b283072635c2d2449
354a317644555367465e2f2b384c3d375e3f34694a485b495c4d4e4f4a5b5c5d5e5f55666768696a
6b6c6d6e6f62737475767778797a7b7c7ffda000c03010002110311003f00f537bb6b4ba09da0980
2498f0084dcb6b9cd6b58e2601b20b7f472376db5bbf722bc38b1c1876b883b5c44c1ec76acbcae8
18795736fca656f9daec8243c6e731bb5ae645db6bd9f9bf4ff00ae929ba336b3ea00d3bab31b3733
71d634fd27b7feb9b149d96c6025ed786b5bbdc62638f61d9b9dbfdcb1aae81d3f329b19663d1bdb
e99a24587f44d2e7e33ed3eb36c7eef7fb77ff00db8af0e898a68ab15c03716bf7fa759b2b26d3a179
b6bb5af7d7b4bff456faa92997edde9913ea3b6c901de9d841da7d3770cff49fa345aafc6cc7b6daab
f543439bea39bb4b770adfe9edb831ff00a5639bff007f4ede9b8ac0033d4681c016da07dc2c50c8a
312aa2df52cb5958acbde43ec7380ac8b37b7dcf7ee6ff23f9c494c6fc26d9563b71eb388fa5fbab73
1951d83f3da5a67d96ffc0aaf8bd2eeaacadf90f390c64eec7f4a8631d69f4ff5ef66df733d3f67f84fd2
bd53393f575cd16bfed7592235fb531c0d87f9a76d23f3be87f81aff00c1ab165bd128ccf49df683917
1f4c006f23dceaacdb5be7d1af9adff00a177e918929d27e3e3b85e0e235e2c20d836b0fa84705d27
ddb3fe150efcac3c17bafbda2863fd3afd689dce25e1951f4f73bf47fca594dbbeaebcb2aabed2edc75
daec9646e157befdeeadcefe669af7d9fcdfe93fc1faeb4f1b0b0768655bf67a6d2d66e7001ae1b07d
1706fd0af6a4a57edbe9839ba3e972d77e60deefcdfdcf7a28ea38c69fb4496d1b43c5aff00d1b4c92
c0cfd37a7b5fb87e7ff00214bec38fb76c3b6c446f7c47eefd341fd938e29bb180dd8d70d69b0bde37
777173ecdde9fb6bfd0b767d049496ccea2a631f690c6bc86cb9ec105df4249b3f3ff00336299c9602
e0419683025b2e8f6c306ff00def6fbd6637eab74a68a631ea2ea8b8925b6190ffa41bbaff6fb1db3df
eaa955f56ba65370beac7a596d42319e18e25847d173f75a5b6eddad494fffd0f4eaf329b454581e4
5c25a763c4089fd24b7f45bbfe152fb554e60259616bddb369adf3afef3367b59fcb72cdb7eaf51917
36ebe43ec97650aac7d6d7590ddb756d6fbab7b767b76d9ff0019eb21b7eaa74d0c81406176c6d8
5b75c0b9acdbe9bdef0e0eb2f6ecfa6eff003d253a343f1b1db686526bd8e21c195105c0b9db366c6f
e97fb08c726b0e78db61d8cde48ade411fbacf6fbecff826fe9160e0f41e9999802d6e13034b9c69ae
eb2c799169fd2bdf3b9b63fd26dbedff008a5687d59c26bf7358e3b1a3d373afb892e10e6b2d697fbe
9f51bbd253b2d707b439bab5c011f02a2e0fde0b76ed820cf33a6d526eeda3741746a4682546db5b

165

5005c092e3b5a1a0924c6eedfd5494b0fb47b2433bfa913fd9d8814655d717068afe96eac8248755f
4377fc66f6ff5367a689f6a1fe8ecff0030a153632b7dae143dbbdf20867236b04e9fca09293bbed3ef
dbb3b7a733fdadea4d167a8e73b6ed21a040d644eedc7f77f750fed43fd15bfe614ff691fe8ecff30a4
a4c9207da87fa2b7fcc29db92d2402c7b64c4b9a40d5252649249253fffd1f554924ce735ad2e7186
b44927b00929add37fa1b7fad67fd5bd1721fb2bddbb60dcd05c63405c1bf9cb3f1ba96163b5b8a72
b19d67e91e3f4c07b773ac9fa276fb1c8dfb4b12e7575b2fc77b9ef686b597071243a486b40f73bda
9297caca35d0e7e35ecb6e1f42b7bd8d6924fe73f6aa87a8653cb09a09daedcd8bf1fb87b1dbbfaa9
35f95afabd6281b806b36b2bfa4d3bb7c9b3ddea307e92adbff00169cbb2c6e79eb14fa6e2033f44c
907e8c6ef53ddb9dfc9494b1ea9d41a5f38f2d0e0daf6df49244c1b5ff00e8ebd7faeace1e6bafab7e4
bfecaf274a9d652f7440fa4eab7d7f49007ae0543f6c55e9b76179d95ee7b6b15fadfa4f536fe99ff009
db3d9eb2839b98c733d5eb550156ae68aeb66eda58e77aaef51dfe0ddfe0fd3fe77d4494e9e35bea
1b61e2c6b1c035c20fe6b1df99fd650bf218cbf65990da06c0e6825a0924b83bf9cf82962124584b83
ccb65edd413b19b8a6bd96becb05058db763363ac6ee6fd27ccb4167d2494832331ac66ea32996b
e44b0d95b7da4fb883b7f35563d56c7100d56eddc7536e27e699adda5bf46cda8ff64eb3a7eb58e2
1ce27f4060b0ff0036ddbeb7f38cff0049ea7fd6935587d64167ad97410d2379651b4b807073be95b
6359babfd124a6b9eb17876d75561d7dbb2dc532dd25c5cf7b18d7b777f37ff006dfa8ae3332b34b5
cecb6b2d2d04d45f51877fa3f68f77bbd9ed51fb2758dce3f6ba20b218dfb390d0f96fe91cdf5f7b9bb
03f633d5fcfff00089db8dd4186c7e464576d5b2031b56cd407cbbe93fdef7399ff006d24a7ffd2f554c
402082241e4274925211898a1fbc535ef2002eda261a0b5ad98fcddef4d6d14b580b2a682d734fb5
a247ba5d103fac8e924a690c2e98047d918479d33a03bda3567e6bfe824dc2e96d2d2dc3ac1afe8
11401b75ddedf67b7dcaea4929a27a7f487376bb06a2d33a1a046b1bbf33f90c52761f4c710e761d
6e2040269048040ae3e87fa36358ae2492906331acf50319b19b86c11b74dac1f45273fd3bcb9cd7
10e6000b5a5da82efdd9fde47492522fb433f75ffe63bff22a272ea0f0c21fb9c0903d37f0d8ddf9bfca
47556ca376631dbdc25bbc811cd65bb6096fb7f9db37ff005d2525fb433f75ff00e63bff0022a36dcd7
56e686bc970207b1dc9feca3a4929ffd3f4fb5ce17d0d166c6b8ba59b677c3746fa9f46bfdffe5a0d56
18a632fd5dd611f45a77fb49f4ff00461bb367f39bd1edb7658c6ee68dc1c769e4c47d1d7f37f3d42b
bf73ab1ea31dbe751f9d03f321cefa1f9c92903b37a8873c0e9cf73413b1dead4370076f1bfd9bfe9d
7ff827a4a47333857bfec1613b88f4c5956edb30d7eb636bfa3ee733d4ff003d0cf51cff005ada9bd36
e8638b59697d618f03f3c43dd6b777fc4ab18795764ee3662db8b01a47abb24933b9bfa27d9f436a
4a4d53defadae7b0d4e3cb1c4123e6c2e629a4924a5249249294ab5d5d4fbbf494fad0d11a34c6ae
fdf2acacfea671c347da05c585d581f67dfba66c8dfe87bbd3fcdf77fe7cf4d2525fb362ffdc31fe6b3ff0
024a80e99d4058e70b6a734b9c5ad7e2d64b58e7eff0044399757f4290caab7ff00a5df75bea7e8ea
ac2ffd9a4b9aec4ea305ad7ee0dc8f749ddb3d8edfbab731add8ff00f05b3d3fd022d4ce9e4d9b68ce
276ee739ff006806037d7db56f70f7eef67a557f85494e88a31ffee27e0cff00c926b29a056e231b690
24186e87c7472cb3474c7d001a3a88aeb3b009ca0e25c6c74ed0ef51fff001dff00175a2d2dc26ddfa
2c6c8a8b86fadf60706cb858e77b5feeafdfbdd6b1dfe97fe11253fffd4f554c23b2f9592494fd5492f95
52494fd5492f9552494fd5492f9552494fd5487aface88fa2dfcae5f2ca4929faa3dfe497e93cbf15f2b
a4929faa3f49fc9fc542ef53d27cedfa27c57cb4924a7fffd93842494d040600000000000700050000
00010100ffee000e41646f626500644000000001ffdb008400040303030303040303040604030406
070504040507080606070606080a0809090909080a0a0c0c0c0c0c0a0c0c0c0c0c0c0c0c0c0c0c0
c0c0c0c0c0c0c0c0c0c010405050807080f0a0a0f140e0e0e14140e0e0e0e14110c0c0c0c0c11110
c0c0c0c0c0c110c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0cffc0001108010
8015e03011100021101031101ffdd0004002cffc401a200000007010101010100000000000000000
40503020601000708090a0b010002020301010101010000000000000001000203040506070809
0a0b1000020103030204020607030402060273010203110400052112314151061361227181143
291a10715b14223c152d1e1331662f0247282f12543345392a2b26373c235442793a3b336175464
74c3d2e2082683090a181984944546a4b456d355281af2e3f3c4d4e4f465758595a5b5c5d5e5f566
768696a6b6c6d6e6f637475767778797a7b7c7d7e7f738485868788898a8b8c8d8e8f8293949596
9798999a9b9c9d9e9f92a3a4a5a6a7a8a9aaabacadaeafa11000202010203050504050604080303
6d0100021103042112314105511361220671819132a1b1f014c1d1e1234215526272f1332434438
216925325a263b2c20773d235e2448317549308090a18192636451a2764745537f2a3b3c32829d
3e3f38494a4b4c4d4e4f465758595a5b5c5d5e5f5465666768696a6b6c6d6e6f6475767778797a7b
7c7d7e7f738485868788898a8b8c8d8e8f839495969798999a9b9c9d9e9f92a3a4a5a6a7a8a9aaa
bacadaeafaffda000c03010002110311003f00f7f62aec55d8abb15762aec55d8abb15762aec55d8a
bb15762aec55d8abb15762ac6349f2468963acddf98ee74fb597cc33ddcf7116a62306e162947155f
508aec9f0d3a53154c35cf2af96fccc201e61d2adb5316c58dbfd6a2597d32f4e5c79034ad0571576
87e55f2df9644e3cbda55b6982e789b8faac4b173e15e3cb8815a54d31562df98fa0f9374ed135af3
bea7e50b7f316a7656ff00589a25b6135d4cb080bd95d8845153c559b8afc2ac76c552ff002a7e617
942d342d3dada4d22c7cad2d8dfea7652e933bdd5a4d67693c08d35b98e155a17b8e3246c56649
78aaa3f2e4154afeb3ff38ffeadbabe8b6693dc4ad1157d267530c89782c5fd7ac148b8dcb0899a4e
215cf862a997983f31bcafadea5e5df28c1610eb9a67987561a46a70de2c917a286c2eb51b79d629
63a4a927d50846a85fda04f1c5598e95e43f25e857a9a968da0d8d85fc61963b9b7812391438e240
6500ee0d31544eb7e54f2d7994c0de60d2ad75336dcbeae6ea2597d3e74e5c79034ad057155fa27
967cbde5a49a3f2fe996da6c77055a75b589620ec8280b7102b40715406a7f97fe48d6afa5d4f57f2f
d85eea13d3d6b9b8b78e491f8a8515661534000c5538d3f4ad3749d3e3d2b4cb48ad34d854a4569

0a0489558924051b004938ab1fd13c8ba4f96bccb2eabe5fb1b4d334db8b116b3dada47e8979d66
322bb05014d14915fb58ab2cc55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abfffd
0f7f62aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb15762a97e93a8bea49
76cf188fead773daad0d79081f886fa7154c315762a82d574f6d52c5ecd2eee2c24668e48eeed195
264689d6414e4aca412b465652acb5538abcab5dfc8bb2fd13ab1d06f269355d521d563bc82e1ad
e1b5b87d7a6b57bd90816d208df8dac7e9704f4c38e52239776c555ad7f261f52d35a2f316b5791d
cbc4d6c89682c81580ea116a60c8cb688af319a2f8e408bc958edea7ef3154569ff0091da269fafe93
e62fd3dabdcdee93750df22dcbdac8b3cd6d6f756a866616e1dcfa5792ab373e6e78b3316c55ea58
abb15762aeae2aec5527fd3327f8a4797bd11e91d3cdffaf5f8b909bd2e3c7c29bd7154e315762aec
55d8abb15762aec55aa8f1c55bc55aa8f118ab78ab5c97a5462ad820ee0d7156b92d69515f0ef8ab
ffd1f7f62aec552df305b6a17ba06ab67a4c9e8ea9716771158cc58a04b8922658db90a914620d46
2ac6fcbd631796b4a850bba5c8b7886a13cd733dc299208fe37e53bb5057912c29ef8aa5cfabf937c
d172b20d523beb96f4ad634b6bd9e3a99d5e58d78c12a8f8d51d91a9f1aaecd4c553cd3b4db2d22
49a4d3d6589e45557e73dc4f551b8a09a4703e8c5507e63fd0125b477de65b8f42dd1d2de199ee6
7b64f52e2458e34ac52460b3b90ab5dea78e2a95e85abf922dafa15d0b56824d4ef52e6382217d35
cb4bf537a5caa472cce2b130a4945e48766a62a98ea17fe5dd72cb4fbfbdbc5b8d2eea548b4eb886
e668a3965b86e0811a075e5c9850576c5513a7e8ba66993fd734f495264aaa335cdcce28c287e19
65753f762a8bd42083558a383510f2428fea51259623b0eb589909ebd2b8aa4b70da8796bca7e55
b5d41e39ee9752d3ed2e649ccb75449662a1848595b92020f37e43e1f8bc71579ccdf9aff00983a7
e8f75a9dd5fe9d3c8ba72dd44834d9e358a7974ab8bef8ffd209611c96c232a0827d6f898305c556d
f79d3ce7a5eb57fabfaf0dd5d2dac7a6c1acfd52e63d3cd9b6aa635bc7b78fd53440e636652c0d3d5f
eef15466adf99bf98ba6a4d7bf58b19d6d39996ca1d32ed7d5fab5a69f74fc0cb2091448d71346bca
3e4bc47c3cd1f155097f357f31e6b43a8db3d94084dfcf269c74cbd7b9b53a7594d70d653c921890b
bcb12c6ae81be17efca3aaac9bcb7e79f344be65d1746bc77beb2d42ff0058b7bf963b4224b56b79e
edada398129c6231449c275e7f1714917f7f1b8559b699e45f2f596ab75af4fa75a4daecf7935e26a3
e8a8b85f57651ccd4d557e1c5534d63cbba17985228f5cd3adf504818b42b731ac811985095e5d2a
31553d1fcafe5cf2f3cb2687a5db69f24e02ccd6d12c45c2ee01e237a571551d4fc97e52d6af1f50d5
b45b3bdbe7015ee27852490aa8a004915d862a98e97a4e99a259269da45a45656111263b78142
46a58d4d00f12715489ff2dbc8123b48fe5ad399dc92ec6da324926a6bb7be2a9f5f699a76a762fa6
6a36b15d69f280b25acca1e2655208054edb103154af4ff0024793f49bc8f50d3343b2b4be86be95c
4302248b5054d180a8d8918aa2f58f2e681e60f47f4e69b6da8fd5cb183eb512cbc0bd3971e40d2b
415c55da4797340f2ffadfa0f4cb6d3bd7e3ebfd56248b9f0af1e5c40ad2a698aa1750f24f94356bb92
ff53d0ac6f2fa6a7ab713dbc7248dc4051566049a014c5534b2d374fd36c63d334fb68ad74f894a47
6b120489558924051b004938ab1cb0f24687e5cd7ee7cc5a35b5a6976cfa6fd4a78208560525253
3091d978ec0123f8e2af1b3f9efe62b4b0d39ac7f43a59be936d7212669e67499b42b8d5d8191ae2
ac395b7a2037c7fbd0eccc578baa9bea7f9a7af5d6a296d39b4934d8efe29226d324921b8865b4d6
2dede2b39d9e52aef7d0c8e634a257d37f85d4fc0aa0b55fcf8f3359795ecbcc56cfa14bf59b7bad49
a05373232456ed600da4bf147e9dc46f752c52ed27168d392237240aa325fcf0d7e3b4d62443a30b
9d06d3529a78ee1e78daf4d84b7b02cf6a885c7a4b25ac6930693f77ea1ac8bfbaf515503f9d1e6a4
bcd66559f4cbc874949215b2b5401aecdbeab3db4f3db996e1793c70221f43d4f8dcfc0fc9e34655e
ade65f2e59f99aef45bed42de0bcd2ed16767b5b98d9b9497089e9baa30d8af13f6b71cb1555bbd4
74cf2de9125d5ecc9a7e8da7c43d473558a28968aa001f42aa81ec31562ba5e97f967adcf241a768
76d25cc724d1ceb269d2406396dbd3f5124f5624e2e3d54215b7707927201b15669676b069b690d
8e9f0adb59c0bc608211c1117ad140db15627ace8df973a5dd59fe9ad2f4f86ef58b8922b7966b604
4b3a4525cbf270a554fa71bb92c47d938aa65e56d73cb57f682c7caaea9656d143711dbc704b6d18
82f393c524624440c925199596aa7155d37937cab753497575a2594d753b179a69604677773562
491b9271556f2cdce833e9f28f2baa47a6dbdd5cdabc56f1b4089756d218a75e0554d43a9076df15
5977e57d32e759b1d762b4822d5acee8dccd7823513caa6de68381702a7e2955bfd8e2aff00ffd2f7
f62aec55d8ab15d7a169f47d52de3b24d44cd6b3c6ba6c8e224b9e71b2fa2ce7ec892bc0b76ae2af
0ed23cb5f983e56bbb31636fa841e48d2af2c3ea86ee5b69358b6d26dacaf05c5adc3c521fad5adb4
8f0fd539f39bedfda0a09558bf95d7cf1e6dd2524b2bbd7ef84f05cb5f8b7d4634b659a4d25a3b768e
586fa405e5bc513cb1829e8b37d858b154eaf740fce4d53d64d5f47bd9edaefea3f5ab73796b3c7eb
58ea3a75d2ce035c285fdd477038222f16f83f79b498aa6be66fca8f3fc9e6ed575df296ab058d95be
af16b7e5985f731dc6b682d35d3254ee822e53409feff76c550d2f977f376c75f8adb49b5d4adfcb6b
a8da2d16fa078c58d96aca4b54dc07e125812be9ac69fefbe2c543b2a85d13c99f9a9a5681168b1d
aeb366d63a318f476b1d52d9614d4522b949d2e7d495dd96691e29612a7b2ef0706aaaf6ff0028e9
f3699e5ad36d6e85d7d785bc6f7a2fe76b9b8172ea1a60f233bd7e3e5401b881f676c558c79df53ff9
c82b6d57d3f29691a237945006faf47712dc6acebb0e3e84b1c7121ea495f5fd971540e956de79f30
da6ada0ea3069fabbddc0d6dab5a6afa9eaf6ae6de6d8858869d6e8a0d69ce24f6e78ab368e7fcdc
4010e97e5ce2a0007f495f9269e35b1c557fd67f36abff1cbf2e11dbfdc8df03ff5027155e6e7f353b69
9e5f3f08ffa58de8a377ff8f13b62aa86e3f337d20469da119aa6abf5fbc0a076dfea649fbb154645ad5
fcda1eb57c0411df69ef7b141cc48d006b50dc0b8405cad47c5c17911f656b8abcead7f303cfd4d2cd
d5b44bfa4f4cbdb96536c4fd5efb46321ba05e3959658660d00b674e3cc7373c49e0aaa59e5dfcccf

167

36eb73cba0798e48ad0950c97f1e9d72b0de89ececae64b440246314918ba917d4e66bc3971fddc
ab8aa49e5dfcc1fccfd2747d1b42b6f47539f4fd18deb87d3ee0dcdc25be8f637715b72f5ff00bce72c
c8cff13bf1fb3ceb8ab25b8fcc7f3dc1e6eb3d2a27b5b9f2e89e10d7e2c66adedb5c5fd9da73561285
8bd35b996bf0b7236fcfec16a2a925afe6af9ab4bd174d1a5c10fd56cf4bd2bf49597d46effd1a6d465
851da33596478ad20135c4ec43f0e50c64d79e2a9ee89e65d7bcc1f987e565d7888af34ff00ae406
2b3b7ba8ed6e22b8d3219c5e2bcbc7f75249cd235917e168ff9baaa99ea3e72f3ee9ffa4ed2f21166
2cb519f4e8f587b2792de446b6b8beb599238dc928545bdb48d5fefd9d57e2e2155607a879bbccba
8e8ed65a969efa15c5d6b365a94f15bdb5d48f2dc437ba4c935b860eccaf1ac9299081c5d13ec523
9715669f989f991e73f2c6bd79a668f6097162459c715ffa13496f6493c9124f7176e8acca2212295e
11c91bab1f8d1a0957154a5ff347cfd61abb5b6a5f559b4f7115bcd3d9e9f74a968447a4bcf760c8c5
9e3417b72dc1910f183e2fb1262a84f2ddeddff83fcc42fafe7b33e59d11af340ba21e26f53eb17b21b
b5825259bf790a46aadc94a2f01f0c8792af457f30f9e6eb58d3b47d3ecb4d56b8d122d4f508f507b8
8a44ba92411bc60468e388a9d8ef5c551a22fcc4a50d8f97e9e1eaddd3fe4ce2a82d2f45f3ce9115c
c56969a2325d5d4d7d37ad737b29f5ee1cc8e4168761c892aa365ed8aa61c3f30dbedd9e807ad3f
7b74776353fee9ef8ab827e61d0afd4f40a6e2825bba50f5ff74f7a62af3f95fcf4b73710f94dccb76b3
3c135ac3f5cbcd356666e6cc5f5285138a9ea20b803f642e2accfca171f9992e9ae3f32edb45b5bff0
0529683449ae24f511491ca549d40462284aa3c807f362abbce7a5dc6b7e59d4348874fb5d596f95
6dee74bbf7686dee2d647559d0c882a8de99631b7ecc9c71578bea5e4afcc4f2c687aadedf5edd5fe
9965a6eb7a7e907eb8f75a9dbd9df4b6434f8a778e263398bd197d498abbc70bf1e727166c552dd3
ff002cfccfaf436faf693a647633a432bc065be91215d45f5ab6d43d6b64e238c29024b14555aad786
e87962a9b691f977f9ad06bd0ea3a8d9e99f518efadf531662fe4b8b759e1610000026060f0022205
74d464301000000000001000000000000000f000000002000007c9801007cd801000b0d4ace53c
1e20c44cd75016ab339456e6c580c55a7fca8f3e595a2e99a3c310f23ac90fa7e47bad59b8db89ad
678ee3ea97ff579648e08a5911ededdd5b8d1d90c3f02aaaa537e507e60da6a29a9687f568a4faf6a
136a293ea33c8351d3e57b0920b395dd5d82c9f569c3311f07abcbe2e6f8aaed33f293cf30ea77e6f
b4db13e5fbdb9bebed3ad6db569eddb4c7b8baba9c2048e0512acab7016401e35565f8b9a5062af
408ff2f9a2fc9997c84b670a6b13e91f5778feb327a6fabfa2a7d7fac1f8ebeb20979d2bb578e2afffd3f
7f62aec552df30d8ddea9a06aba6584df57bebdb3b8b6b6b82597d396689911eabb8e248351be2a
92f9634ef33a58476de6482ceda7b78608524b3b996f3d5644e2eec658212b522bfb55ae2abb5583
cdb6f748ba1d8585e5a710cf35ddecb6920724d54225b4e081b6fcbe8c55bd1acfccb2b4b1eb5a7e
9fa6c0b4680d85d4975c9cb55b92bdb5b85f982d8aa57e7ed6f5af27e98dac5869b6faa5b2054681
ae64b7ba92791c22450c6b04a1c9ad4d5928062a98683fe24d45beb3aa5a69d0e9b3c225b5bbd3
ef65bcf503d0a10af6d000aca6bcb91c5513ac5af98e0587f40dada5f33545c0bcba92cf8014a1531c
13f2aef5af1c550da65bf9c27bb48f59d3b4fb3b0018b4d6b7d35ccbcbf647a6f6b0820f73cfe8c5513
a958f982d17d5d0e1b5d4266901305e4ef668894dc87486724d7b711f3c5517e54d3f51d2bcb9a76
9fabca936a704216ee48dda543212490aee15980ad01207cb154e715762aec55d8abb1540697a6
8d312e9049ea7d66ea7bb269c78faefcb8f535a78e2ae4d1b4d8f579b5e584fe959e04b579d9e461
e8c6c582aa1628b527e22aa0b7c3cabc571547e2aec55d8abb15762aec55d8abb15762a82bbd27
4cbe9e2babcb58e6b88368a47505800caf4af71c955a876e4a1ba8c554068ca3cc6de61f58f33622
c3eafc76a094cbcf957de94a62a9a62aec55d8abb15762ac67ccfa36bd7d7fa56a7a04d66971602e
239a2bf594c6f1dcaa03c4c2c08605075db154d2df4fb810466e644fadf11eafa6098fd4a6fc791ad2b
d2b8ab1d7b1fcc7e41a26d0c10c69c85efd8fd9e8c37f138ab20b3b0bd6b588ea8f10bf22b702d837
a3cfbf02e7953e78aa413587e617ad27d5db44f42ade97a8b765e95f8395180ad3ed62a9e69da75f
7d4e2fd2af0fd7e9fbffaa87f47954d38fa84b74f1c5525bab0fcc0fac482ca4d17ea9cdbd2f5d2efd5e1
5f879717a569d698aa73a6d86a9f55a6b0f6ff005ce4db59ac9e970afc3fde12d5f1c5527bcd03cd17
9aed84cd71a7a68361766e9104739bc7436b35bf12dea7007f7dcabc7b74c55fffd4f7f62aec55d8ab
b15762aec558c15fd37e721f113a7f96a3a955660afa95ec7fb4b4a1f460351bff00c7c7f938aacf288
8f46b9d47c9a78a2698e2e74988715ff71976ccd12aa8e8b0b89201b7d944f1c559562aec55d8abb
15762aec55d8abb15762a95e897f3ea11df35c71adbdedcdb47c453f770bf15afbd315787fe74fe6d
eaba62f993ca9a35c456d736f04ab6d7f6b3bc3756f77691d8de71760cad4749db9844e223a1f558f
a91a2a8dd4bf3afcd5a74d71a4de69f650dd4726a1616fadc0b35d58cd790c2f2da37a4ae258e394
8f4c3b7389e68a787d58d95792ae7fce8f315b69fa8ddbcfa1dc269c74eb28e5469b95d5edf6951ea
44aa89382a9fde2aa993ec8e5cc95f4dd55d6df9d9ab799bcb87cc5e5ebad1b4c4371636d2e9fa89
927bcb65b9b9b3469e4092c6ad0b4770ccadfbbe2be9bf27e7c555665e77f3b799bcb1afe97a669d
a6c5a95a6b96b2ae9863491a63a95a3a4d2c4fc5c2846b413491ff0097171afc4b8ab07d5bf3aeea
1b8f2e5dcf630df58dea5aeaf6cfa75cdc44c05de9da94df5392356a4b3a9b5e2124f81f9f3f4924897
154e3c9fe6ef35ebb2f9ff51d1ef6cb5ad4e2d3b4abef2fd8c5248da7acf7160f2ac34f558af39178b32
b2f2fb7c474c552ad23f3d759d5ed2e66faad9d9344f652a3de43710a9b2d55ededad4853250ca6e
4ddc2559e34e56df13c6879e2a85b7fce9d4b51d4346b8b3b8d3f4d8351bed0adf579e59a4bb8843
7d6da93cc91a1944713892d02ab2d79721cb9b531543f943cd7e63b4d4a0f2cea7a83df6a379368f
0cbe62b1bf92ff4abfd3af65ba916f62590f2b4ba9fd1f466b71fbb5e51b4048a7155ec7e4fd4aeeeee
3cc9a5dc97962d13567b2b4ba937324125b5bdd81cbf6bd237061a9dff0077f17c55c5517fa5ae7fc
63fa0eabf53fd19f5d029f1fabf58f4fad7a53b53154f315762aec55d8abb15762aec55d8abb15762ae
c55d8abb15762aff00ffd5f7f62aec55d8abb15762aec55e6da9f973ccbe54d3351bfd23cdb7416e6f9
ae8c57167697147d42ed790e5e9ab1081f8c62bf0a2a2fece2ac82d3cafac26bd63aeea3af1bc92ca

19edfd25b482032c573c495775ab515911805a7c4b8ab29c55d8abb15762aec55d8abb15762aec5
505a6e9c9a6adcaa3971737335d372a0a34cdc8814ec315557b0b19247964b689e590524768d4b
30e252849153f0923e58ab934fb08fd1f4ed624faba18e0e31a8f4d08a155a0d853b0c554a3d1b488
95922b0b645728ceab0c603345f60901772bfb3e18ab6349d2c2c882c6dc2cb1ac12afa49468a3d9
51b6dd57b29d862a8b28a4a92a095dd4d3a1a536fa315430d334e0c1859c01965370a7d24a899b
ac836fb47f9bae2aa96d676967198ace08ede3249290a2c6b5249268a07527156e5b5b69e368a78
63922600323a865214d454114d8ee315521a669ab5e36700e4c1cd224dd94f20dd3a83b838aa84f
a16913da4f646ce28edee1d659442a21632a10cb2728f890ea54157af20462aafa7e9d67a5db9b6b
28fd38d9de59092599e5958bbbbb1a966663524e2a86fd0d17f8847987d56f5c591b0f4283870328
97957ad6a298aa678abb15762aec55d8abb15762aec55d8abb15762aec55d8abb157ffd6f7f62aec
55d8abb15762aec558ff009dbd4ff0ddcfa5fde7ab6a054d3fe3ea2ef8ab20c55d8abb15762aec55d8
abb15762aec55d8ab1ad27cc37126ad77a2ea3677cb74b753adb5c9b298599b751ce33f5809e97d
9db76af2f87ae2a986b5afdbe87e89b8b4bebaf5f905fd1f67717bc7853edfa08fc6b5dabd7156b44f3
05beba2636f677f69e8710dfa42cae2cb972afd8f5d139529bd3a62a84d53ce165a55ec9632e9bab
5c49185265b3d32eeea03c803f0c9146ca695de876c5534d33528f54b08f508a0b8b78e504886f20
92da75e248f8a2902b0e9b5462ac3f58fcdaf2f6866d45f699ae2fd6e716e94d1efb61425a43ca21f0
201c9c8e8315665a96a11e996525f4b0cf3a454ac3690bdccc79103e18e30cc695de83154ab4df37
59ea97b1d8c5a76ab049272a4b77a6dddb403882df1492c6aa3a6d53b9c5515acebf0688611359d
f5d99f971fa859cd79c7852bcfd256e3d76af5ed8ab5a1f9861d74dc086c6fecbeac541fd2369359f3e
55de3f55472029bd3a62a83d4fce56ba55ecb632695abdcb454acf67a6dcdcc0d550df0c91a107af6
ef8aa6fa76a51ea5a7c7a8a5bdc5bc72ab3082ea1782e0712451a27018134d8118ab1fd17cc7a96
b9e67962874fbfb2d021b00ecda859bda06bc7988010ca0335101a81b0db156598abb15762aec55
d8abb15762aec55d8abb15762aec55d8abb157fffd7f6a7963cf10f9a218ef6df49bdb3d2ae233359d
fdc9b6f4e74e5c47158a69241c87c439a2edd77c5511ab799eeb4eb9105a6837daa445031b8b57b
448c3126aa45c5c44d514afd9a62a8cd275b935182496ef4eb8d2e447e0b0dd185dd96808706de4
95686b4dcf2f6c552cb9f376a30dc4b0c3e57d4ae61462b1dcc725808e551fb4a1ee95e87fca507db
154e23d583d92dd3dacd15cb4664fa8b70330602be9d558a72edf6f8ff00958aa471f9cb5379638db
ca7aa2239506532e9c5541ea481764d07b038aaa79daeaea6f2e5cc5a3d9cba8ea2d25b98ad616
8e276093a3b1e533c6a005527ed62aa9a7f9aaf6f2f45b5df97aff4eb62188bdb87b278b61b02b05c
c8f53d07c18aabeafe63b8d3e4892c745bcd5d6452cef68d6a82320d0061733c2493fe4838aafd2bc
c135ffac2fb4abad25a3a7a62edade4f501ad4afd5e69694a6fcb8e2a82d43cd9a859ddcb6f6de59d
46fe042025ddbc960b138201a8135d46e295a7c4a3154dec35617764977736b2d84cc097b49cc6d
2a50902a6279137ebb31c552ed1bcd32ea9aa3e9379a2dee9372203751b5db5aba491ab846e26d
e794820b0fb4062ac8b15762aec55d8abb15762aec55d8abb15621676d179af58d6af6fa359b44b7
8e6d02ca3ab5240d417eec0d06f2288453fdf4ffcd8aa3fca17b73369d2e977e646d534599b4ebb92
550ad37a4aad14e284d44b1323d7f98b2fece2ac8315762aec55d8abb15762aec55d8abb15762ae
c55d8abb15762aec55d8abb15762aec55d8abffd0f517e645eeade46d034f7f28da4b0e8763395d5
86996a97f7965a6246ffbdb7b3723d65490c7eaaa729045c8a2d715635a5fe73d9db43a9dc5fdd3e
bbf578f4af424b48e0b5b095af7499352325bceeff666585ca2cfc184a5204fe6c553483f3af4e6ba92
d67d0352b4f8e5b789ae1ed1795d416106a46223d6f83f71383c9fe1565653be2ac6f5cfcd3f356a7
6fae6afe4b6115868ba31d65b4fb8b68e6998e95abcf65a946ac5872e70c0e603d9b8ff003531542f
97ff003baf357babfb686ffebef69a92ea960d15a4500bdf27ddaac76b3a3cb22a272b87f49a566e5fb
b72b1eea3154d9ff3ced9b51d3ee6cac2e6e34ad59f4c88413fa36e2d62ba935249e70fc99e42a6c1
d7d3654fb2aca7e3c555afbf3f2cadede0b8b4f28eb974d7b6b77a86981d21b54b9b5b2b15bf79636
9dd091e9b528aadf1af1f8be1aaa96ea9f9afe61f22f973ca5e7ff344abaf687e6cb47b9b9d274bb78a
392c49b07d490db4acea668d110c527abf11244808fb18aa5fe79fcd5fcc2f28eb7776f71c2d9254d3
f5fd234a36d04f707cbf048e9ae44f2c721532dac6a2e11d4fd8655e25b154eaf7f3ce1f2fda5edddf4
4facaea0b79a9f959a110db4325825b4d796d13b722ff001c30349eaba0af255556fb58aa6de6dfcc
6d5edf45379e5bd2e726db54b4d367be6fabcb6e6e1751b5b3bab3a3c8acaedebbac52d38d6366f
8471e4ab70fe77e9378274b2f2f6af753582cdfa662b78e3956c6484dd2959650de9d09b571cf9d3e
38fc5b8aaf48f265e45e61d3ecfcd32699269d757b6cad6f15cb4725c25adc7195391899d473015f8
d6abd0ef8ab28c55d8abb15762aec55d8abb15762ab640cc8ca8dc1c8215e80d091b1a1f0c55e59
6fe54fcc1f2ad9691a358f9e525b59275b2569f47b76928c924a646659579392bf11237a938ab28f2
e795bcc3a56bb79adeb5e604d59af2d62b57822b08ac8560767491991dcb150eca3d8e2acb71576
2aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abffd1f59e9f
73e5ff00cc9d1348d7eea052f344d756d0c572eb3db8b90639179c0d1b7c4bf0b5715633e67fca6f2
ade1b4874796cfcbb2acd6f3dd5b3a3b41751d95b3dadb298d2e6dd93d0473e9346ea07ed2b62a9
c5b7e557e5f5f58fd5efac135b7591a7b9bcba9e69a59aede04b792691849fde34688b5ea1557e78
aa61a3793fc8be5cbbbabad2eced6caeee23960b93eb392d15c4ad34a8c8f230a348ccedb7da663
df155f3f91fc97736096b368b66f60b676b61188d3d30b656128b8b6891d082a90c80491d1be16df1
54b20fcbbfcb188816fa55889239219107acefc248249658ca8329a717b8948036fdebff00362a8bb
0fcbef20f974d95e596916da79d2ccdfa35cc922883eb29e94888247a0564f83d3fb0abb2a8c5568f2
1fe5adeda1d1d34bb19ec8c12dac7a7acacd1c76b311eac50c4242228db88e42208a47c3f67154d

169

afb4df2e996de5d4e1b5fad4504f656d25d14e7f55b90ab3440c86a51c22871de98aa4575f971f96d
e619feb9368b637d3c71476fea46c595628ed9ed11691bf11481da21b5787c3db156ffc05f9656925
c48fa6d843773bc334e1a765733dbb4724521065d9f9451b16a72728a5f953155487f2d3f2f2599b5
48344b59269e29e17ba85e4acb15d3c924a19924a3d5e694826bc0bbf0e35c5593f976ff4fb3d42d
bcaba6ac46d6dec0cb088a50fe9456cf1c291f1ab1a51b624fece2acaf15762aec55d8abb15762aec
55d8abb154975ea7d6344aff00d5c529f3f426c553ac55d8abb15762aec55d8abb15762aec55d8ab
b15762aec55d8abb15762aec55d8abb15762aec55fffd2f7859e89a369f33dce9fa75adadc4a08926
8218e27604d4d59541353be2ab6f741d0f52996e351d32d2f2e15782cb710472b8515340cea4d37
c555acb4dd3b4d89a1d3ad21b385d8bbc76f1a44a5c800b108002683ae2a859fcb5e5cb995ee2e7
48b29a7909692592da277627a924a924e2a8e4b5b58edc59c7046968a9e90815544623a5388502
94a6d4c552f8fcafe598983c5a2d8a3a90c196d610432ee0d42f518abc8bf35eeaea7fcdafcbd8cc70
cfe5bd15eee7d72dee424904a35084c0392b02018101981f7c55ec369e5ed034f9d6eac34ab3b5b
950556682de28a40add4065506871554bfd1746d55a37d534eb5bd78811135cc31cc543750a5d4
d2b8ab7a7e8fa4e92b22697616d62b290655b685210e57605b8015a7be2aa175e5af2e5edc3ddde
68f657175210649e6b68a49188141566524ec31546dad9d9d8dba5a595bc76d6b18223821458e3
504d4d154002a4e2aa365a3691a6c8f369da7db5a4d200b2496f0c71332835009400915c551b8ab
b15762aec5501abeaf6da2da0bbb98e5955e58e08e2b7432caf24cc114051ee7154aff00c5c3953f4
16afd2b5fa99a7fc4b1572f9b837fd28f575f9d99ff009ab156879bc1247e82d6053b9b3ebff0d8ab7fe
2f15a7e82d63e7f533ff3562a966afe629aee6d2de1d035775b5bd59e53f54a510452a577715dd86
2a999f375054685ac1f6167fd5f155a7ce1400fe80d64ed5a0b3dff00e278ab47ce5d3fe75fd68d7fe5
cfa7fc3e2aeff197fdfbfacffd21ff00cdf8abbfc65b13fe1fd676edf53dced5dbe3c55b5f3872e5fee0359
5a78da75f97c78aae3e6d2081fa0b57dc56bf541ff35e2ad0f373d2a7cbfac0ff00a355afe1262ad379
bdd4023cbdacb0269b5aa6dee4196b4c556bf9ca44200f2deb4c090095b58f6af7359474c55a6f3a3
a900796f5b606bb8b44da869fefdc55c7ce727104796f5b3515a7d55011edbca3155dfe30731f31e5
dd64b501f4feaa81b7edbca07e38aab5bf9ae296f6d6cae74bd42c9af24f4219ae605588c9e9bc801
6576a5421c559062aec55d8abb15762aec55d8abfffd3f7f62aec55d8abb15762aec55e5de6ff002ce
9d71e77d06d26e4f1f98e4d63f481342486d292d428dba2a20e35fdaf9e2af4e891a38923673232a
853237562052a69dce2abf15762aec55d8abb15762aec55d8abb1548bcd3fef3e9bff006d3b1ff93e
b8aa7b8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb154935fa
7d6f40a8affb925a7b7fa2dc62a9de2aec55d8abb15762aec55d8abfffd4f7f62aec55d8abb15762ae
c5584f99d49fcc0f22301b2beab53f3b3c559b62aec55d8abb154a7cc1ab5ce91670cb656c975777
373059c314b29823e571204e4cea92100035d94e2a85377e76e248d274d2dd87e919c0fbfea78ab
42f3cec41e5a469a0f6a6a339dffe90b1568def9dc2966d1f4c14dcff00b929a9ff005058aa8db6b1e6
ebb0ff0057d3b4898a5397a5aacb252bd2b4b3dab8aab0bcf3c1ad747d30787fb929cffd8962a96ea
3fe33d61208e1d3f4902cefa09e5235299ffde670ec9b59ecc7dfa62a9a0bbf3afed693a68f71a8cdff
006478ab46f3cea2a4e93a6051d49d466ffb22c550f0ebbe64b95436f69a3cdea398e3f4f5591c338
5e65411686a428e54f0c55106f3ced414d234c27bd7519c53fe9cb15593ea7e6fb65f527d374a8a2
a850f26a52a0e4c40037b3ea49a0c5550ddf9d76e3a56987c41d4271ff6278ab7f5af3a53fe395a6d
7c3f484fff006478aa95cea3e72b5b59ae9f4ad34ac31bc8ca3509aa4202d407ea7de98aa6ba1ea6
35ad174dd656330aea36b05d8849e4504f1ac9c6b415a72a571547e2aec558e6afe64d42cf5d874
0d2749fd2578f68d7d2b35c25b2244b28880f89589249fc315521acf9d77e5e57880aed4d4a3248ff
009123155e357f391527fc331023a2fe914a9ff9238aad6d67cea00e1e578493d41d4d053fe489c55
61d6bcf3b71f2adbf5f8b96a8836af6a5b9c55b6d67cf1c494f2b405fb2b6a883f1101c55b3ac79db83
15f2bc06403e153a9a004fcfd03fab1541dfcfe75be9ac643e5bb7536530bb5ff726b46711c91f03fe8
f503e3ad698aa38eade75f8a9e5ab6a8fb3fee4c6ff003ff46db155a756f3d70a8f2cda193f97f4ad07d
ff55fe18ab4babf9f0b00de57b30bdc8d5aa7eefaa62ad1d5fcfdfb3e57b223df5723fec4ce2aefd2fe7f
ff00a95ec7fee2edff006458abbf4b79fbfea58b1ffb8bb7fd9162addb6bfe69965bfb09f41b68b57b682
0b9b5b75d44bc3324d2bc6c1a5fab2942a10b7d87e5d36c55ffd5f7f62aec55d8abb15762aec55857
99f97f8ffc8943f0f3d5790ffa33db1566b8abb15762aec558f79b4d21d23fedad63ff0027462ac87157
62ad3100127a0ebdf157ccbe56f2879a7ca7e45d0bcd7676baa59eaf189b44d5b4cd374d0351874c
b8d4a69cce602dce7910887815feeedda568d0b362a9fdcc9f9b1041addf5bea7ae5ddddb9d320b0
b0bab182de1b88df4e496e994db432345234eaca240d3c50ccc23914c4cccaaa32d2eff3221d75e3
b7b7bffd1b36bd7c27b63691da3bd95c7d45639d6e6387d32602d3fc328ff488bd4659bd48a3e4aa
41e5ebff00cd786c74ed32f64f335b5d5a796a291656d392e52e2fd74fb85ba17171354aceb7611a3
5f4d9a45587d2e71c9262aa247e63dc5d4f65e6e87ccfacf95e25d62cd92d20f42eaeadefb44d3dd4
3085225256e1af52166002483d3fe4c5515a341e76f2bb5a7ae8cfa7e9daade7ade681a4259b5f69f
0f976710dddf5bb2010cb6f3fa36c668bd04b8e3f6163ae2a93a798bf3675df27c57da36a7afc7ae98
752b8bbd3a2b3569ed6e61d115ace1669ac90b2cf7c8644a554893d1e7c57154c3ccfa97e63f995b
53d1eff0041d5e6d25e3b59c4571605a3fafdaeada7cc861644a08c41eb32f56a21f51bd45e2aabe9
3c55d8aa0b58ff008e4dff00fcc3cdff001038aa59e44ff9423cb5ff006cab1ffa864c559062aec558a92
3fe56428a6e7436dfe5763156558abb15762af26fccdd2b431e71f22fd6e49565d775c7b7d413d69c
24b6b1e917b1ac6551a889eb3427b0f58c6df6f8e2ac52dff363ccfa3795f47be696dee91e7bc852d1
6cee7fde0d2b558b4f6e73b4b2b3c9f566fac37c356fef2ab1a9e4aa193f3b7cf1f560563b3bd966d3
20d5d3eab6b247271fad5ec12c10a4b294794a5bc52a4524b1349c9a24757922c5537d33f32fcc0f
a9269561159e976f73aa6a7e9de5cd9dec915d496da8a23dbf1466293bdbbb4c3e2e3cf755f4e375

c55258ff00367cf57f3f93de7bd48ecef6e34cbdd7134db0712a5a5ec5aac6f6e7d4696959ad6d82b0
e2c249429d9d71552f29f98b53f2fdce9ba2dd7a1afdb47a9797aca2f35817491dcdb5d9bc03eb56e
cf48752878d6e1b93c722c91b488878a05537d37f36fcdbabc90c30ea7a4c0d7d7df53589207b9ba
b609637d3cae504aa0c5eadbc2b03b80ccaecb2287e38ab17d7ff0037fcc5e69f2adfdb5ec5f568af7
49598470dadcdacd6fa8c51e9972a91b92c5c39b89f8b557908b8aa7eee479157d4a086019482a4
5411b820e2ade2a91c5ff298ddefff004acb5dbfe8e2e3157fffd6f7f62aec55d8abb15762aec5584f99
c91f981e441d8beab5fa2cf1566d8abb15762aec558cf9d8dcad9696d66b1bdc8d5ac3d359999233f
be15ab2ab11b74db1546097cddded74eaff00cc4cff00f543156965f37fed5a69bd3b5ccfd7fe4462ab
1e5f3a50fa769a596ec1aeae00afd16f8aad3379e389a59695cbf647d6ee69f4ff00a362ada4de753f
de59e960ff009375707f5db0c557acbe70a7c569a683ed7339ff00b17c557197cdb514b5d3a9dffd2
67ffaa18ab4d2f9bebf0da69b4af7b99fa7fd23e2aa729f36cd1bc32d8e952432028f1bdc4ecacac284
106de841c5509a5e9baee8766b61a2e8ba1e9d64a4b2dad9c92dbc20b752123b65153f2c5519eaf
9d7fe5934bffa4ab8ff00b27c55b32f9cbb5a699ff49371ff0064f8ab7eaf9c3fe5934df6ff00499ffea862
a83d5a4f379d26fc1b5d3456de603fd267ff007db7fc518aa23c89ff00284796bfed9563ff0050d1e2a
c8315762ac0b589f5db6fcc885f44b0b6bf76d0dc4a97574f66100bc5a152b04fcab5f05a62a9afe93f
cc0ffa9734dffb8c4bff0078fc55c353f3fd77f2e69b4ffb6c4bff0078fc55dfa4fcff005ff94734da7fdb625f
fbc7e2ae3a9f9fea42f9734d2bd89d6251ff0076f38ab4353fcc0ad0f96f4da78fe9897fef1f8abbf4a7e
607fd4b7a6ffdc625ff00bc7e2aefd27f981ff52de9beff00ee625ffbc7e2aefd27f981ff0052de99ff0071
897fef1f8ab525ff009ee68de29bcb3a5bc52294746d5e565656142083a7ee0f7c552bd0b4bf31796
6dd6d743f286976902a88d17f4d5c49c2253558d0c962c5635fd98d688bfb2b8aa6eba9f9f8fdaf2ee
9a07b6af29ffb1018ab4353f3ff007f2e69bff71797fef1f8ab86a7e7fefe5cd340effee5e5ff00bc7e2a97
5a5ef9b5bcc7a9cb3e8d651ea29a6d9fd52d535191e2901ba9c3f394da294a0dc5237e5d3e1c55ffd
7f7f62aec55d8abb15762aec558479a091f981e43fe52faad7fe90ab8ab37c55d8abb15762ac73ce0
dc6df486ff00b5be9c3fe0ae147f1c5547cd3e78b1f2aeaba1e9177096b8d7e66b6b091e448217b95
28160124944f59c3968e3255a4549387265e25561e7f3db4d9ac34cbcd2b42bcd49f50334135bc12
daa3d9dfd9da5cde5cda5c7a92a059614b660e072f8caaf7ae2ad6b3f9b379a8f96e0f31792f4eb99f
4d6d4b4fb54bc3f5702669750b4b69ad4c733ab233adc3aa49f64346c4955e05d55cbf9e763ea149
fcbba8411c535bd8dddc3cb69e9457f79a94fa4450544c59ab776ec85c2f009492bc7155d0fe78e9b
73aa5e6950683a848fa55e43a6eb53ab5b88edaeee2fce9ca8bca50d20f54a37255a7a6fcba865c5
509a6fe796991685a0dedd595edf2ea5a54fac4d70df564b98ed2c4159a69e189b820f58c702f13f1
cb20e15457655509e76fcead42cb40d5068fa4de693e66d1e4d3e7d460d461451158de6a91d92ca
aaff00de24ea1610000026060f002220574d464301000000000001000000000000000f000000002
000007c7801007cd8010026e057e25e04fdae2195669e68fccdd33ca3ae3e89ab594eae6d1350b3
b842852e60490addfa62bc8b5aa0f5a614fee9948eb4c558deb1f9d9a4695ac585beab15f6990a5a
36ad748a96d3c1358cda75c5e42cd2072c0d6da64a463fbd8f8b1f4995d95475979ffcc16167f98da
c6b7a54f7517952e6392cb47b4f45eecda1d2ed6f24456560b2306924237afecf862aeb6fcecd0350f
ac8d36d64ba6b4bd6b0b8e12c215393c2b6f2925aa52e04dca0081a4902b714e40e2a95c7f9cf35f
eb7a669da1e9d2ca35db8b7481f53786da0b582eb4197578a40622eee098b8c81f8b27c5c76e38a
a87933f317cd1a85f43e5cd6dee2dfcd7717d6761a9693a85a436f71a6b1b5bbbb9e68e480b43736
d32da95b4950b6fcbd5f8d19715677a2f9864d7f43f30c37001bed16eaff0048ba91471491edd7923
81534e51c8858767e43a62a8ef227fca11e5aff00b6558ffd43478ab20c55d8ab1623fe423a37fda91
c7fd3dae2a8dd57cdba3e91abd9e8172eefac6a104d75696712f296486d8a2c8516a0b71322d557
9300791f87e2c558c5cfe74f922db4bb2d695ef2e74cd42d4dedadc5ada4b3a18d2da4bc90128085
78e185de446f8978f1fb5f0e2aed6ff342d1349b2d63cb304ba9e9f717b630fd716d679609edee6f20
b4945bb474acca671c15bed157a72e0fc555f6df9c9e4cbbb88ada037dce6100577b39923f5eeee2
5b4860f51942faaf3c3244101fb68d5f87e2c55d07e72f92eeb526d26d9ef1ef619e2b3bc1f529f85ad
cdc5dc96091ccdc68ac6e2268f6afecb7d860d8aa1b4efce3f2c45e5ad175bd76f28baa58cba80bdb
6b5b88ed9a1b587d69e558e5accb1a5553e31fdebc717f78e171541f9a7f3a34fb2f2dcbabf95a07bf
beb6bdb2b6bbb7b982544862bad4e3d399dc82b404b3989d4ba3f0afd8ae2acbf59f3e7977cbf7d7
b61ab4ef6d3585a45a8cece8781b49a5688c887f684650fabc778d7896fb4b8aa497ff009b5e5ab1d
4ad2ceeae1ec07c525fc5776b319040d6135f42eaf1d5179a41211cabcbd378a825db156ecff332da
d34df39ebbe6a8ff0045e8de55d496ccbb46cb28b792d2d2e15e65e4c01e57342d508a839371f8b1
56b54fce8f2168f7577657979335ce9f6d25ddfa416f25c1804569f5e2927a41a8e60fde2fecb02bc5
b93282aa5be68fce5b2b3f2e6b77be5bb6967f31e8857ebba5df40f1b40a2e2288b4ca1d5943acbc
a3652dfcdc78abe2ac82cbcf22e26d2af2548d741d7751bad234c981225f56dc4be9bbf2201598dbc
bc405aad62fe66e2aa6a8d4f3a4e95fb5a5c248eff0dc4b4fd78abfffd0f7f62aec55d8abb15762aec5
58d7993cb377ac6afa0eb7a7df476979a1c974cb1cf01b98a54bc80c0cac16588822bc81afd18aaa
1b3f3bd47fb98d342f71fa366aff00d46e2ad1b2f3c54d359d340edfee3663ff0063b8aaefa9f9d38d3f
4be9dca9d7f474dd7c69f5cc55afa979da9ff1d9d36be3fa366ffb2dc5527f31d8f99d8690fa86a5653
5a47abe9cf2450d9490c840b85a00ed73201b91fb2715647ac797b4dd6b84d750a3de4015ad2690
1758e58dd6689cc750afc244491437ed2e2a9168ff0096ba05a6976f6bad4316afaaadc5dea17ba9
1845a99f50d4e378aee7114242a7aa923474dfe034e4dbb15552dbf2bbc8167ea7d5741b7844af6f
2bac7cd54c96662685e81a81d4c311e5f69bd35e55a62a888ff2f3c971c7a844ba3c062d537bf472e

171

eb2b0b97bc0c4331a309e4799587c4b23171f162adbfe5ef935da576d2622f3fa46770d20691e0b9f
ae23b90d567139f5799f8f9fc44e2a8583f2b3f2fedada4b28742b75b39ad92c26b626468a4b488c8
c90ba172ac8a669085614ab938aa9c9f949f97335a45653797ede5b786216e04864777856549963
95cb96955644574590b04651c698ab25bdd1749d46eedafafeca1b9bbb349e1b59a645768e3bb50
932a935da45501c7ed62a92b7e5bf91a48a1825d0eda586de330431ca1a45109b66b3f4e8c48282
0778821f85519801f162a98687e55d03cb6b74ba2d92dafd78c6d78dc9e4694c312c1197691989e
31a2a0dfeca818aa5ff00f2adbc88b02db45a059c30afd4f88823f448fd18ac969468f891e8abb2a6fb
2b30ef8aa1d3f2a7f2f23b78ed57cbf6df5784c4628cf3213d0b67b38c2d5b6558247878fd9f4db8f4c
55143c83e5a84c73585a0b5d42096dee2defc33cb708f671bc308e72b3128b1cb246109e3c247a7
dac5517068d6da26837d6b01324932dcdcdddcb80249ee670cf248fc401524f41f6568a3618aa9f91
7fe508f2d7fdb2ac7fea193156418abb15630c4ff00cac3414f87f42bef4eff005a5ef8aab798fca5a77
9826b5bfbb885c5f696e975a5c53311047796ee25865d8164218519a32acd1f246e4878e2ac6ecff
28f419b418b4dd5e25827966d4efafa0d2dde1b4fad6bb04b6f742357e4c104733aa7d9fe7e2ad8aa
be9df941e56d22c934cd36e752b7d361b8b5bcb6b217b2b410dc59cb14eaf1c6d5505e4855e414a
3373fb3ea3f25575a7e50f942d21b9800ba962b87827412cfc8c171697d36a30cd090014912e2e24
70dfe570fb1f0e2aeff009547e525bababe87eb70de5f4d6b77773c7390d25cd95f49a8c72b54105b
d79199bf64af14e3c1557154ba2fc87f224562fa637d7e4d3e4d3a2d15e16bb707f47c0ef2ac2b220
59114c8fea37a6ebcdc233f2e2b8aa3750fc9ef2b6ad0470ea777aadd3fa504177712ea13b4f771d9
dd0bcb7170f5abfa528e51f4a7265fb2cd8ab21d77c93e57f335f5aea5aee9b15ede59db5e58c1249
5dadb51411dc21008a87514dfa6fc71548af7f283c97a9c71c5aa43717a11042cd34ee5e4863b49a
c634765a3111c37128435e5cdcca58c9f1e2a9969be40d1f4bb1d56ca0babf94eb53c575a8dd5c5d
c93cf24d045142adc9ea28638511d69c6451f186e4d55521b7fc8df20d959ea1a669d0de58e95aad
a9b4d434eb5bd9e2b49898fd1f58c2adc04a23a461800022a80bf0271555750fc98f266a979a8ea1
74d7e2ef57663aac90decd0fd651bd3223904654715312b2014e27953ed35554ead3c93696b369d
1898b693a45edcea7a6d97003d3b8ba120a16eeb199e62829fb4bfc98aa217fe539976eba4c7bd3
c2e64ef8abfffd1f7f5715762aec55d8abb15762af9c74afce9d7c5abc1a60d2ad63b617b7b3c774d7
574efc3ccf3694503bdc725e5171987da0a582aa88b8f1551d67f9cbe6cbdd7af34113e8b78da5dcc
569736d0a4d15d6a08dacdd6993b5bd2e5842638625b935f542fc5cd963fde2aa93f94ff00397ccd6
be55105acba7cada06802fde3d625ba9352d47fdc7cb70b710903f78893a0b796affcfce447f4d5954
cb5efcf6f34f95cc725ea697a9c32ea3fa31a3b38a78a48567d2a1d4d2e65fdf4c7d380c8f1ca021e7
c397246aae2a9b47f9afe6a8ae92d6eb50f2f5d2c2fa4a3cba78b8985e26b3a95c58249033cb1afc0
8b14adc44a9cbd4412712aeaaa53a6fe67f997579fc85a3eba60bb1adfe88b99752b089401a8893d
5b982e2259dded8a150a84c6f0c8c193d58e6a458abd53cd5f9810f967565d17f474d797f369d75a
958a2b08c5d359a3c8f6f0b30a34dc53970af2e27900cab214558d3fe7b6862486ea0d3a7baf2dcf1
47771eb904b1342f693dd3da24a884abb032467b7d8f8b7c5564ff9a3afdaf9d748b2b8d1dd7cbda9
69f0ccf124d6f2ba4979a85a5a5bdc2c8adf121fad0564d88e2cc392f12eaadb5fcf7b0974a5d56eb4
2bab58c436b713c0658a49635d4c5c7d4b65254faa6d995a8dfbae495afc7c1545d8fe6e2dd996f2f
74cb8d2e1b1b2bbbcbd82796dde11141169f742469632cd510deab0555353cd376e15555ed7f371
ae264b793cb57f04bced6cae8c8d188adb54befaa3456733d681b8de212cbcf8f0905365e6aa5117
e62f9badbca7e56f30b598d52f6f2e7588b56d36230c0f2c5a725e3afa72351432fd5947839fe5ea15
46c3f9e5a1ddae852d969f3cb079b277b4f2bcaccb18b99a0b836f32cc08ac1c08e5f172e4bd3e3f8
71541693f9cd3ddeb775669a5ddea22f7eab75a5e9b0246b736f686cad65baf55b97166492e3c78f
daf8f8d2aaaa6a5f9f3a7e9f0deccba15d5c2e9d2dc7d74c535b954b5b5b45bd799583157fdd93454
2d571c79f7c5539f3c7e6ee89e40d72c747d7a2f462d45627b4bc6978abac8d246e428463fbb710a
37fcc447ef8aa55aa7e76c7a6df4564fa2bc7e9dec76da93cb3a1105bfa17d34d20f495c3489f5171e
903cbe25e7e9bd53156eebf3475bb4f38e8d693690ebe5ed52c924745960775fad5fd85adbdd2b29
e454fd778bc54561c19857e1e6aa616fe73d52f74bd0352bb48fea1e6efafc10db283cadb8db5c5dd
b12dc6a6b15bb2cbca9fbc65e38ab29f237fca15e5bff00b65d8f4e9fef3a62a9fe2aec558c37fe4c44
dbfe94afbffd1daf6c5593e2aec55d8abb15762aec55d8abb15762aec55d8abb15762ac7d78ff8e65f
e63a4c7f2a0b97feb8abffd2f7f62aec55d8abb15762aec554fd0841a88d6be3c457154b62f2d68d0f
9827f34476fc759b9b48b4e9a6e6fc4db4123ca89e9d780a348e7905e4796e7154d3d38ff947874e
dd71577a71d6bc16be341f3c55a3144684a2923a6c36c558ff009bd634b6d2db82f23ab69ca0d013
4374871557d67cb56ba95c1d5ad4ad9f996281adec3563189dadcb070ae2273c1cafa8fc790db9b8
e8ed8aa0ff00e55d7939e3b14b8d2a2b87d3e0b4b5b791c107d2d3e433400842aa42c84bd38f1a9f
0c55076df949f9716505b5ad9f97edede0b34115a242648fd245b95bc5552ae080b32248bfca5129
b2ae2a8c5fcb9f24a5bdadaae8d08b7b2b3934db64ac945b3943a98bed6e0091f8f2a94e6fc38f26c
55067f29bf2f1a29206d0a268e5431c80c9312ca440284992bff1eb053c3d28ff009715737e52fe5cb
b5e3bf97ad9e5d42d52c2f6673234b2c11bfaabc9cb162e1e8dead7d5a85f8fe15c551edf97fe4d6d
16c3cba347863d134b95ae2c2ce2e7124523fa9cc8e0ca48712c82404d240ec1f972c55d71f97de4
cba3a819f48858ea9224f766aea7d68dc48b247461e93731cf945c097f8cfc5be2a86b8fcaff00cbfbb
bc86fee740b596eedae2def6de460dfbb9ece05b688a0e545022558ca01c1d40e6ad8aa097f25ff00
2b912e238fcb36b1c574265b9890c891c8b72a639032ab80432b15a53ecfc236c55955fe83a2eaa2
21a9d84179e8a18a2f5d1642a8cf1c85416aec5a28dbe68be18aa4327e567e5ecda85ceab2f97ad
1f50bcb95beb99d94967b9593d60e77a57992c4743c9ff9deaaa9dafe53fe5dd94765159e810411e
9ca12c963695446a2e52f00147dc09a38e415e85129b2ae2a897f28693a65ab4f6e1fd1d3a2be934

db5247a56cf7a19a62800077e4c17913c1599576c5517e45ff9423cb5dffdc558efff0046e98aa7f8ab
b15632c7fe42122ffda99cfb7fbd4b8ab26c55d8abb15762aec55d8abb15762aec55d8abb15762aec
558f2d3fc73278fe894a7fd24be2aff00ffd3f7f62aec55d8abb15762aec55d8abb15762aec55d8ab1d
f3806369a5f104d356d349a761f5a4df156458abb15762aec55d8abb15762aec55d8abb15762aec5
5d8aa1353ff8e6de57a7a12ffc40e2a95f9169fe09f2d53a7e8ab1a7fd23a62a9fe2aec558db03fe3f4
35dbf43b823fe8e97156498abb15762aec55d8abb15762aec55d8abb15762aec55d8ab1e53ff3bd3
8ff00b54a7fd44b62afffd4f7f62aec55d8abb15762aec55d8abb15762aec55d8aa0b55d2ad359b4fa
95e7a8221247323c323c322c903891195e321810ca3be2a977f852d6b5fd23aa7cbf48dcd3fe278a
b63cab6a3fe963aa7fdc42e7fe6bc55dfe16b5ffab86a7ff710b9ff009af1568f952d0d7fdc8ea82be1a
8dd0ff9998aac6f2859b904ea5ab0a786a5763f5498ab67ca368411fa4b55df7db52ba1ff00333156c
794ed0127f48eab53ff006b1baa7d1fbcc5577f856d40a7e91d536ffb585cff00cd78abbfc2d6bff570d
4ff00ee2173ff0035e2ae3e56b53ff4b0d4ff00ee2173ff0035e2ad7f856d7feae3aa7fdc42e7fe6bc55d
fe15b5a53f48ea9ff710b9ff009af1568794ed0003f48eabb7fdac6ebbff00cf4c556c9e4fb196368a4d
435468dd59597f48dd6e181047f79e07154e6c2c6db4cb1b5d36c93d3b3b38a3b7b78ea5b8c5128
45156249a01d49c55118abb1563dad7951757d4e0d5e0d5aff49be86dded0bd83c00490bbac9475
9e1985432ec45315422f92efd6b5f386bad5f192c7f8598c55513c9f7cbf6bcd9adc9ecd2598ff0088d
a0c557ff84eefd4e67ccfacd3f93d4b50bf85b62ab5fc9f732104f9a35a1414a2cd6ea3f0b7c5569f265
c9a7fced3adede13dbffd93e2a93f98f40bcd1346b8be87ccdae5c5e0e31585a9bab58fd7bb9d8470
45c8dbedce42a2bd854e2a83f2a79735b6faf797f5ef37eb771ae694ea65ba5782259edae8178655f
f004600f4689a9fb71362ac917c9970b503cd1ad9ad3adc407a7fd1be2ad0f25dc035ff0014eb9f2fac
414ff9318ab7fe0b9e9ff2946b9f3fac41ff005431568f92e726bfe28d73c29f5987fea862ad9f25ce7fe
9a8d73fe9261ffaa18ab5fe0a98ff00d351ae7fd24c5ff543156e0f24c5035dcc75bd5a5bebb863b617
b25c219a18a297d5a4444400e44d1aaadf0e2aff00ffd5f7f62aeebd715762aec55d8abb15762aec5
5d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8
abb15762aec55d8abb15762ac0f5cf34f9793ceb6ba66b3aada585ae870adf345733ac4f2dedd2bc7
0808d4aac5187726bf6e48ff00971541eb3f981e4c8753d1fcc5a56bd617a04c9a65f456b711ccf25a
ea122a23a847f8bd39b839203522f5698abd2315762aec55d8abb15762aec55fffd6f7f62aec55d8a
bb15762aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb1
5762aec55d8abb15762aec55d8abb15762aec55d8abb1562bf96caa7c81e5aa81ff001cfb7a74fe41
8ab2ac55d8abb15762aec55d8abb157fffd7f7f62aec55d8abb15762aec55d8abb15762aec55d8ab
b15762aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb15
762aec55d8abb1562bf969ff0092ff00cb5ff6ceb6ff009363156558abb15762aec55d8abb15762aff0
0ffd0f7f62aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb
15762aec55d8abb15762aec55d8abb15762ac435d83cd9a9f984e9fa07981345b5b6b28a7950d8c
77ad24934b2ad7948ebc4011f418aa17fc31f991b7fcefabff00706b6ffaa98ab7fe19fcc8dbfe77c4ff0
0b83db7fd55c55aff000c7e646dff003be26dff006a6b6dff00e4a62adff867f31f891fe3c5e47a11a3db
6df47a98aa0f53b1f38e85666ff5bfcc782cac43c711b89f4ab4893d495c246956929576215475663c
46e7155fa769be73d5606bad37f3120bdb657785a4b7d2ed5c2c919e2e8c56534653b329dc62a86
f29f96fcc2be58d321f2df9fd6f3448a048ac2f134eb4955e28fe00790600f4a57154d7fc33f983ea57f
c75f0774fd136b5fbf962aba4f2cf9f5b97a7e7a923a8017fdc5d9b529d4f4deb8ab7fe19f3d7161fe39
9799a51bf465950506fb53be2aa87cb5e7326a7ced700d2945d3ec42d7c778c9fc7156d7cb7e7004
16f3adcb52951f50b000fcff758ab6de5af373569e75bb5d801c6c74febe3bc271550b1b4f340bed5f
40b8f32cf34a2dacaeacf5236968b2c0d24d389142ac62360cb101f12fc35db157fffd1f7f62a9079ce
c358d4fcb97361a15c4b6ba8cf25b289ede5104cb0fd66333f093f65bd20f43d7c31546687a2c7a15
9b594579797cad234beb6a37325dcc0b0038879093c45365c5522bafcbdb6ba9a69cf983cc11199
d9ca43aadcc68a5c93445068a057603a62ac8e4d3524d2bf449b9b954f445bfd6d6665bba05e3cfd
51f173efcbad7154a3cb1a1ea3a15e6ab04f7d797fa5caf049a7c9a85c9bb954fa7c65019be203900
687e8c5537d4358d2749f446a97d6f65f5862907d62548b9b0dc85e64569ed8ab1df2dfe64f95bcc7
6b7928bd874fbed3aeeeec750d32eee2dc5d41259de49644ba248d457923fdd9fda057be2a8d6f3f
792639258a7f3069f6ef0dc1b26171731435b9548dcc6bea32f221654fb35fb58aa317cd3e5a7863b
94d62cdade593d08e5171170696aa3803ca9cbe35dbfca5fe618aacd33cdbe5bd63428fccfa76a70
4de5f98b88f51e61616f4e4309a3353f6d4afbe2a83b2f3d681752ea42e2e62b2b5d3ee61b58ef6e2
7805bdd0b8b58af2392075720a149475a1d89a71df154cdfcc1a1442532ea56a82193d198b4c802
49bfc2d53b1f85bfe04f862a9962aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8
abb154921ff0094befbfed9b67ff27eeb154ef15762aec55d8ab02fce3f2ff983ccfe477d27caf1349ac1
d4b48bb8ca49142c91d86a76d772bab4df0725489b8835ab53156157df973e75f2d79cdae7c946e
eefcbbabdc69baaeb37126a2b039d4a1d645d5fc8f08f4d0faf6948008d150a47e9bed4c5528b4f23
7e73699a0d8e9fa005b09ed74efaacd6b7178be8f349a7998db3c2c784932b7a0feac52a7c71cead
1bc1c5957b2f91f4fd474dd0843a9a5cc33493cf711dadf5da5fcf0473c86410996350bc52a55114b8
44e2bcda98ab24c55d8abb15762aec5521b56af9cb545f0d374f35f9cd79fd3157ffd2f7f62a93f9ab5
79f41d0aeb56b78d647b63133ab86651134c8b23109bfc2859be8c551d61a969faac06e74db98ee
adc314f56160ebc875151f3c552cb8f39f952d1e58ee758b48a4858a4caf2a82aca6841f0a118aa69
26a1630d89d4e5b844d3c46273725808fd222a1abe14c552ad03ccb6be61bed4d34e9a1bad36c8c

173

0b05d404b066963e6e0b7d9246dd3e9c558dfe6a7e5bea1f98d69696767ad26910430de4172af69f
5af545dc68aa432cb0bafa652bc791492bf1a9e2b45522bafc8cb7be6325eea31c93473eab3dadc4
304b69731b6b7a88d4a465b88274956486454fabba32f0e3c98372c55560fc9dd51751b3bbbdf314
57cb626fa5865b8d3e37b869f51d362b091e426431351e3f5b8fa415abe9b7f362a86f2bfe4bebfe5a
f304daf8f33db5eb6a144d52d2e34c678648fd2b24263e776e524ad9060cdcd7e3feefe04c5538d3ff
002bb54d23c99e5ef2ce9daf46ba8f95f523a9e9ba84b66648644e73fee6e2013a96ac770ebc9244f
8f8baf4e38aa5fe60fc9fd675c8756b58fcc56f676bab193d58a3d38f15597498f4ca285b842bc0c7ea
aaa9119e5c2447a2b62aa337e48decf15c81e637b496e2517b11b28a6863b2d46b3192eac90dcbf
a3eb7abfe916dc9ed66f8f9c5591f157b08d86ff7e2aec55d8abb15762aec55d8abb15762aec55d8a
bb15762aec55d8abb156237d63aade79c6e8e9baab69c174cb40eab04538726e2e687f7836a7b6
2a8b1a2f9a40f8bccee4efbfd4ad87f0c55dfa13cd3dfcd0fdfa58db7f4c55b8b45f33a9432f99e4902fd
a02cad9790ff8134c557ae91e6307e2f31c847b5a5b8fe18aa99d13cd049ff9da240a7a7fa15b547d
34c55a1a1f9a80a379a643ee2c6d41fd58aae5d13cce0386f344ad5af13f52b5056bf25de98ab4344
f340a57cd12103aff00a15b6fff000b8ab8e89e68e40ff8a25e3dd7ea56bfaf8e2abc68de63efe65949
dffe3d2d69ff0010c55c745f32135ff134a0508a0b4b5fa0fd8c5577e87f307003fc473fa94fb5f55b5a5
7e5e9e2abbf43ebb4ff00948a7afb5b5a7fd52c5529b0b0d4d3cd5ae5bc9ab4b25cc9a6e9a62bb30c
01e3027bca80a1389ad3f697157fffd3f7f62aec55d8abb15762aec55d8abb15762aec55d8abb1576
2aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb15762a91c27fe770bdf1fd1
b67ff511738ab00ff95c3a81ba489748e51b6a4fa2c813d490c775731b369b2724051edae99787ae
8d4466557546e54550c3f3a2fede696cf54834ab19ae2f2e2c74cba96f5d6d15edaf350b306e9de35
f4c4ad620271afc52f1dc8f8954aed3f36bcd3a6df5de99245a6ea13dfead736da499afdc24212ff4eb
492379560dd236d447a4556ac91ef4e5b2a985e7e73ebd1269115ae936325eeb17dfa342cb73246
969347a83e9d2faf48d9b765f523f85790e69fb1c8aab74cfcdebdbdf466b486d1350d664d285ad8d
d5eb4883ebfa5db5f4ad18089c2182269a499fe2fb0b45e52f155522f37fe7a5fdf7e5e6bda9693259
e8b7373a4ea97ba2df35e2fd6206b0b3794c32a0044778ae3e1898f4573c3e023157a4799bcf7a9f
96ee34bb6b7b04d420d4b4e96f2d665762f24d63e9cf71105506a5ad8c92454fb6f1f0ef8ab0ebefcf
096c6ead67bab28ded0da1bb8af209dd6d1d2e6ca0ba4e40821842643eb372fddc7c65e3f1f15553
68ff0030efb40f265febf3cd06b260f306a56334f14deaa43690dc4edc91413248218d0178d39c8918
775127a7f12a94cff9dfae5d2493e8b63a4b5a4b7d35859b5c5f13708d6b1ea0f28b8b78817424592
3272e1c9653f0feeeaeaa959fe723eafe62d2b5382eede2d3ce8faccb2f97e19fd5ba6bcb76d305b0
9536f8a46b8610d00aa48a7e2e7f0aa84b6f3c79a0f971347f326aef69e72d0355d5b4ad5a65e1652
5cdbfe85bed42cae0c4acc17946219050ecf1b7be2ac974ff00376bb2f962efcc86ea46b8d2f51d274
f8ed1c295b88668ec965242fda6b8374d246ddbf73b7dae4ab3bb4ff94db56ffb6669dff27ef7157fffd
4f7f62a91798f5dbbd1e5d26d6cad63bab9d56edad13d695a18e3e16d35c162563909da1e34a77c
55176fa85d35aab5d431a5ef13ce38a467883ef401991491efc7e8c552a8f56f371913d4d374d1096
f8d92fa7660bec0da004fd38aa697da8de2c04e9b6f1cd7551c52e246863e3dcf24490d7fd8e2ad79
7f549f58d345ddd4096d74935c5b4d0c5219a30f6d33c24ab954241e35dd462a8abdd42d34e585ef
2431adc4d15ac442b3d669d8222fc20d2a4f53f08ef8aa24b2ad2a40a9a0af738ab890a0b31a28dc
93b00062a96683e62d1fccd6925fe89706e6d2395a0690c7245f1aaab6c2555254ab2b2b8f8594d5
4918aa698abb15762aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb15762a
9143ff002995f0ff00b5659ffd445d62aba4f2ae94d7d657902b5a43652c971f50b5e305acf70e178cb
3a228e6d1d2a953b1df7f878aabcf94bcaa4480e85a79130a4a0da4079812faf46f837fde7ef37fdbf8
fed62ad4fe52f2a5cc9eb5ce85a7cd2991a732496903b7aaee2467a94279165562dd4b007155797
cbda0cef24b3e97672cb34a9732bbdbc4ccf3c750921610000026060f002220574d4643010000000
00001000000000000000f000000002000007c5801007cd80100312bbbad4f163b8c550ade4bf273f
0e7e5ed31bd32a63e5656e7898d422d2a9b71501478014c555e7f2c796ae62960b9d1ac66867b8
37d3c725b42eaf76c3899d81520c846dccfc5ef8aa65e8c3fbb3e9ad62da2d87c1b53e1f0db6db154
b4795fcb4ab1a2e8d62122f5bd2516b080bf5a5e33711c76f506d253ed8fb58aaa2e81a12da47a7a
e99682c22713456a208c42922f4754e340c3c698aad93cb9e5e9a49a59b49b3925b897eb370ef6f
133493fa662f51c95ab3f025391df87c3d315523e53f2b17690e89a79918448cdf5486a56df8fa409e
1d138af0fe5e238f4c5552e7cb3e5bbcb992f2ef47b1b8bc988335c4b6d1492390bc07266524fc278
effb3b62ab0795f4159d2e23b28e3f4de095618c7087d4b45e10b98d6885a3140869f0f14fe44a2a8
6b41ff3bb6aa7b7e8cd3ffe4fde62afffd5f7f62a96eab79656cf6305cd3eb1793986caabcbf7ab14929
de9f0fc08fbfd18aa8f5d8d6bf8e2ad50d69f8e2ad57e2f6e831546693736975685ece9e9a4b342f45
e3fbd8a46493fe181dfbe2a907e60e95af6ada6e9717978c82eadb57d3aeee845706d4b59413ab5c
2160cbc8347c9781d9ab8abc7343fca9fcd2b0b1f2fc33cad26a5a6dbe9f34f7977a8c97a13584b1d
5ace7bc512b316e2d7566e57e1f51613b725f89545d97e53f9c2f869ff00a7a2d41e0fa9ea2753b29f
5e92781b527b5b78e0644b716e9e934913bd195b772f2052ecb8aa86a9f97ff9cd047e56b5f29243
a6c7a3e9769657adfa49d239f86953dbcd0ba00c140b82855e21e13fc4f1aaaaaca2d7c9fe767f376
9fa8b58dce9be5a2d6b770e9f6fad721a7dd413cad70b2ab44fea43711bafee617f4fe0e042f2e4aab
d9315762aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb15762a91427fe77
1be1dbf46599ffa78bac55e5b17e7079b9e28ae57498a548b50fd11a94514324b1a4ba8c05b4ab9b
7b88a5749ad669f84523d1658fd51ea471146c550fa8fe75798f41f300d37595d2bf45cf797fa6fd7a2
5993ea474ebdd3ed9aeae394ac0c5c2f59987c1c0c7bbf166e0aa4edf98de6ad03cefe64d4a0d474
dd4f4dbb4d1e031f3b992d3d69acf539126b4266e31a37d5e2332aab7a879717e8ccaa796ff9c1e7

31a5c3797565a735f9b7d0af16cd5268beb96faff2e6f6bca56245a7fbb2b5e7e94b5f47e1a2a96e97
f9c9adea3ab79757cc4ba55999a187503791c9750c36d1dff97ae752ac91faf49562689918becc1d4
a2a482b8aa3b48fcf0f306a9a8e9fa725ae970cba942bab5925e4b2dacd369f2dda451db045f5a97e
6dd85c18413c3d686364039c98aa73f96fe6bbbf36f9975cd4edf53b6966d4bcbfa2ea16b608d3b45
67712bdf2491cb0bca68e8ca892f0113371f8d4353154ba2fce1f364ba60bb9b4a834fba4d2752ba3
1ddc33a2cbace84228eeec23ab8244933b885c722522665593b2ac57cd1f9a7ab5cf963cd9a38f4b
42bd5fd2d7915d89ee84ad2d85dda016f131941499566264456e3fcb0f02f455e8ff0099df98de67f2
2dedacba6694358d22eed7eb710b58259e7e3633a49a80665915052cdda6b7fe792268e8dcd315
615e6efcedd52cff004c689756f6323c7a65fdcbdb335d59cb1cb069b0ea7042ec258e5e72472fa67
d3a0e7f664e6af1aaa85f387993cd3aca6ab7efabdbcffe16d5f5e597cab1dccda34d7fa3db43008de
0ba85c9175007f560f5018e5693f63e1911565d63e67d667f2fcfe6b437b16a5079834cd2ecf4dbefd
dced6334b696de94d11a012cb1dc3cefdd64614f8517157a1da0ff9ddb563dbf4669fff0027ef3157ff
d6f7f62a947983cbb65e6382de1bb9ae6d9ed26facdb5cd94ef6d3a49e9bc44878c8342b23023155
6b3d1adacf4f4d3d659e611c663facdc4ad2dcb56bf1348c7916dfed62a9145f97f69148920d775c62
8c1b8bea53b29a1068413b834e98aa75aae856daadafd58dc5cd91e41bd7b199ade614ec1d77a1
ee3155fa1e8b6ba069c9a659c934b12bcb2b4d75234f33c93c8d2bb3bb6e496638aa638abb15762
aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb15762a91
403fe772be3ff006acb3ffa88bac555affcb7a6ea3aa699ab5c1b813692f2cb6d6f15c4b15a3c930039
cd02308e565a563322b7a6df12d0e2a9a7a516ff0002ef5aec3bf5c55de8c47fdd6bd8741dba62aef
4a224128b550429a0d81ea07cf1577a309dcc6b5e9f6462ae1144b4e28a28790a00284f7c55b544
5a955009353414a938ab9911a9c94350d4545687c7156bd28bf917af2e83af8e2abe83155ad1c6c
6ac8ac4d2a4807a74c55a31447aa29dc1dc0ea3618aa0df45d2e4bf1a9bdb29bde48fea6f43246a5
11cad78975562a1c8e4176ae2a975a13fe36d5876fd19a77fc9fbdc55ffd7f7f62aec55d8abb15762a
ec55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb15762aec5
5d8abb15762a90473c51f9cef91dd558e9966406201a7d62ebc7154e8dcdb034332027700b0e9f7
e2ad7d6ed3896f5e3e23a9e6b41f8e2ad7d7acb8f2facc5c6b4e5cd695f0eb8ab42fec48245cc440e
a7d45feb8aad1a969c4545dc240ea7d44feb8ab4353d34ec2f20aff00c654feb8ab6352d38f4bc80fc
a44feb8ab5fa534c3d2f60ff91a9fd71577e94d33fe5b60ff0091a9fd71571d534c1d6f601ff3d53fae2a
efd2ba5ffcb6dbff00c8d4feb8abbf4ae97ff2db6fff002353fae2aefd2ba67fcb6c1ff2353fae2a91d9ded
a379c358b85b888dba69ba707943a945267bcd89ad07518abffd900000840010824000000180000
000210c0db01000000030000000000000000000000000000001b40000040000000340000000100
000002000000000000bf000000bf0000af4300008443030000000000008000000080fe7fe9430000
008000000080ffffaf432100000008000000620000000c00000001000000150000000c0000000400
0000150000000c0000000400000051000000646f01000000000000000000d20100005f010000000
000000000000000000000000000005e01000008010000500000001404000064040000006b0100
000000002000cc00d301000060010000280000005e010000080100000100080000000000000000
000000000000000000fb0000000000000000000000ffffff00cacaca0066666600676767006464640
07c7c7c00f2f2f200fcfcfc00f1f1f10080808000606060006969690068686800636363007f7f7f00eee
eee00fdfdfd00f7f7f7007b7b7b006a6a6a006262620076767600f3f3f300f6f6f600f8f8f80070707000
6e6e6e006b6b6b00f9f9f900f4f4f4006565650094949400fbfbfb00e6e6e600777777005f5f5f006c6c
6c009e9e9e00e8e8e8007474740090909000fefefe00e0e0e000cbcbcb00b9b9b900acacac00dede
de00d7d7d700dadada00d8d8d800dcdcdc00dbdbdb00d9d9d900dddddd00d4d4d400e4e4e400d2
d2d200f5f5f500e2e2e200e9e9e900dfdfdf00e3e3e3008f8f8f00aeaeae00b1b1b100d0d0d000fafaf
a00b2b2b200b0b0b000b4b4b400cecece00f0f0f000c8c8c800efefef00a9a9a900a2a2a200757575
00a1a1a100b8b8b80073737300aaaaaa000f0f0f00d3d3d300c3c3c300bcbcbc006d6d6d00a4a4a4
00eaeaea00ececec00e1e1e1000c0c0c00121212009b9b9b005d5d5d00ebebeb007a7a7a00ccccc
c004a4a4a00e7e7e700b5b5b500838383007272720014141400cdcdcd009595950040404000313
131009d9d9d00414141009a9a9a008d8d8d00111111002f2f2f003a3a3a00bfbfbf0036363600d5d
5d500797979005c5c5c00878787006f6f6f00ededed008888880084848400424242003b3b3b0071
717100919191004e4e4e00c6c6c600171717008e8e8e0099999900bababa0022222200c2c2c200
5858580051515100b6b6b6004f4f4f0034343400616161008585850053535300787878001d1d1d0
0a0a0a00096969600afafaf0092929200d6d6d600a5a5a500adadad00ababab00cfcfcf00d1d1d100
b7b7b7005b5b5b00818181009c9c9c008c8c8c007d7d7d00898989004d4d4d008a8a8a007e7e7e
008686860082828200989898008b8b8b00c5c5c50097979700a6a6a6009f9f9f00a3a3a300bbbbb
b00e5e5e50093939300c4c4c400c1c1c100c0c0c000b3b3b300444444002929290038383800bdb
dbd0047474700454545005a5a5a004b4b4b00bebebe00a8a8a800a7a7a700494949002a2a2a00
373737005e5e5e0046464600c9c9c900555555003c3c3c002d2d2d00565656003d3d3d00575757
00505050004343430032323200c7c7c7003535350028282800303030002e2e2e00484848003f3f3
f00202020001010100023232300161616002c2c2c00131313002626260025252500090909003e3
e3e0052525200545454001a1a1a004c4c4c000d0d0d000e0e0e002727270059595900333333003
9393900242424002121210008080800050505001f1f1f00181818001e1e1e001919190001010100
070707002b2b2b00151515001c1c1c001b1b1b0006060600010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010

175

10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
101010101010101010101010101010101010101010101010101012196535f7a101007483cb1275f
58383eb13c1059b12f3d342b5f5f2b343d3334332b38385a3675759731363631303737535337973
0323737753032353134393953533737757537373737373737379797753753399c9c39393939393
939393939393939393939535353535353535337372c6f180100000101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
010101010101010101010101010101010101010101010101010101110101aeb12a01012a01011
1212a0101010101010101011101112a01012a11012a111101010101111111110101010111012a
2a2a0101010101010101010101012a2a2a0101010101010101010101010101010101012a2a2a0
10101010101010101010101010101012a2a2a2a2a2a2a2a2a0117a91e01000001010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
101010101010101010101010101010101010101010101010101010101010101010101014c58012
a2a112a0101010101012a2a012a11112a01010101111101010101012a2a01012a2a012a2a2a2a
2a2a2a2a2a2a2a010101010101010101012a2a010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010108011d96482a00000101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
2a2a4c582a112a01010101010101012a0101010101010101010101010101010101012a2a2a0101
010101012a2a01012a2a2a01012a2a2a01010101010101010101010101012a2a0101010101010
1012a2a2a01010101012a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a01010101010101012a0112843a
01000001010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101012a2aaf59010101012a080101110811010101010101012a2a1101010101112a010101
01010101012a01010101010101010101010101012a11112a2a2a0101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01111d3f1e43000001010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101012a01575901112a01012a010101010101012a2a0101012a012a2a01012a
2a012a0101010101010108110101012a2a012a2a010101012a2a2a2a2a2a2a2a2a2a0101012a2
a2a2a2a2a2a2a2a2a2a2a2a0101012a2a2a2a1101010101010101010101010101010101010101
010101010101111d2012110000010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
0101010101010101010101010101012a0198100101010111112a2a2a2a0101012a2a010101010
1010101010101012a2a2a2a01012a2a2a010101010101012a2a01010101010101010101010101
010101010101012a2a01010101010101010101010101012a2a010101010101010101010101010
101010101010101010101012a1e29170100000101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101

01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
1010101010101010101010101010101010101010101014c58010101010101010101012a112a010
1012a2a2a2a0101010101012a01010101010101010101012a2a2a2a2a2a2a2a2a010101012a2a
2a2a2a0101010101010101010101010101010101010101010101010101012a2a2a2a2a2a2a2a2
a2a2a2a2a2a2a2a0101010101010101080143940901000001010101010101010108012a080101
11010101082101012a01012a1101081101012a2a01012a2a010111012a01012a0101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
1010101010101010101010101010101010101010101010101012a01af5f0101011101012a01010
10101082a01112a01082a012a2a01011101112a2a0101111101012a2a0101010101110101212a
012a112a010101012a11010101012a010101011101011111010111010101010101010111012a1
101011101012a011101011d01012a0101012a2a01010119801e01000001010101010101010101
0101010101112a21080101012a012a2a1111010101082a01011101012a11112a012a112a012a0
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101012a01af58010101010
12a11012a110101010101010101010101010101010101010101012a01012a012a2a01012a2a01
2a01010101010101112a081101011101010101012a08082a01010101010101010101010101010
1010101010101012a01012a01010101110111012a2a01114301010119291e0100000101010101
010101012a19012a2a11012a010121212a01110111010111110101012a0101012a01012a01010
12a08010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
101010101010101010101010101010101010101010101010101010101010101010101012a014c5
801010101082a01210101082a012a2a012a2a012a1111012a2a2a0101112a2a210101082a112a
0101012a01010101010108210101012a2a01012a11012a0101010811010111110101111101010
101010101010101010101111101010111012a11012a2a2a01112a2a01211101011229172a0000
0101010101010101012a1101210101010101012a010101112a2a01012a012a011121010111080
10101014301010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01012a014c58010101012a0801011101112a01010101012a01012a01012a0101012a0101012a01
0101010101010101010101010101012a2a01010101010101011101010101012a0101010101010
1010101010101010101010101010101112a0101010101012a0101112a01010108010101010112
3f172a000001010101010101010101011d0101011d0121012a01212a21210111082a01122a1101
012a01012a01012a0111010111210101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101012a014e3c010101012a0101010119012a01012a01012a01010101012a01012a110
1112a01010801112a2a010101012a2a2a2a112a01012a211101012a2a0101010101112a012a21
2a01012a2a01012a0101010101010101010101012a2a2a2a010101012a2a012a012a430101110
10101011229172a000001010101010101010801012a01d1b5864436010843010138b0b09d5586
2d8b3501011d080830b664b655010111010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010

5.3 Events
As previously mentioned, an event is a bivalued variable (UP or DOWN). A thread can wait for an event
to be set or reset. Events may be created and initialized using the class Event. The method set
causes the event to go into the UP state; the method reset causes it to go into the DOWN state. The

177

toggle procedure simply changes the state of the event from UP to DOWN, or from DOWN to UP. The
function state returns the current state of the event. Synchronization with an event is achieved using
the await method. This will suspend the caller until the state of the event is that required by the
caller.
The

implementation

of

an
event
is
given
below:
package
communicationAbstractions;
public
enum
EventState
{UP,
DOWN};
package
communicationAbstractions;
public
class
Event
{
public
Event(EventState
initial)
{
value
=
initial;
}
public
Event()
{
value
=
EventState.DOWN;
}
public
synchronized
void
await(int
state)
throws
InterruptedException
{
while(value
!=
state)
wait();
}
public
synchronized
void
set()
{
value
=
EventState.UP;
notifyAll();
}
public
synchronized
void
reset()
{
value
=
EventState.DOWN;
notifyAll();
}
public
synchronized
void
toggle()
{
if(value
==
EventState.DOWN)
value
=
EventState.UP;
else
value
=
EventState.DOWN;
notifyAll();
}
public
synchronized
int
state()
{
return
value;
}
protected
EventState
value;

Note that Java's lack of condition variables (and the possibility of JVM-generated spurious wake-ups)
means it is necessary to ensure the wait method is called in a while loop as it is not possible to
wait for a particular condition without introducing more complexity into the algorithm (see Section 3.3).

5.4 Buffers
The basic bounded buffer has already been described in Section 3.2. It is repeated here for
completeness:
package
communicationAbstractions;
public
class
BoundedBuffer<Data>
{
public
BoundedBuffer(int
length)
{
size
=
length;
buffer
=
(Data[])
new
Object[size];
last
=
0;
first
=
0;
}
public
synchronized
void
put(Data
item)
throws
InterruptedException
{
while
(numberInBuffer
==
size)
wait();
last
=
(last
+
1)
%
size;
// % is the integer remainder operator
numberInBuffer++;
buffer[last]
=
item;
notifyAll();
}
public
synchronized
Data
get()

while
first

private

throws
InterruptedException
{
(numberInBuffer
==
0)
wait();
=
(first
+
1)
%
size;
numberInBuffer--;
notifyAll();
return
buffer[first];
}
private
Data
buffer[];
private
int
first;
private
int
last;
int
numberInBuffer
=
0;
private
int
size;

}
The buffer abstraction is one in which the data, once read, is destroyed. If the data is to be retained,
then the blackboard abstraction is more appropriate.

5.5 Blackboard
The blackboard abstraction can be viewed either as being similar to the events abstraction with data
transfer or the buffer abstraction with a nondestructive read and the facility to invalidate the data.
Each
notional
item
of
the
buffer
is
represented
as
a
single
blackboard:
package
communicationAbstractions;
public
class
Blackboard<Data>
{
public
Blackboard()
{
statusValid
=
false;
}
public
Blackboard(Data
initial)
{
theMessage
=
initial;
statusValid
=
true;
}
public
synchronized
void
write
(Data
message)
{
theMessage
=
message;
statusValid
=
true;
notifyAll();
}
public
synchronized
void
clear()
{
statusValid
=
false;
}
public
synchronized
Data
read()
throws
InterruptedException
{
while(!statusValid)
wait();
return
theMessage;
}
public
boolean
dataAvailable()
{
return
statusValid;
}
private
Data
theMessage;
private
boolean
statusValid;
}
Objects are placed on a Blackboard by calling write; they are deleted by calling clear. The
method read will block the caller until data on the blackboard is valid (that is, there is data present).
The function dataAvailable indicates whether the blackboard currently has data.
A simpler form of blackboard does not have a clear operation; all data is preserved until overwritten.
Read would then be nonblocking and hence would not throw the InterruptedException
(assuming that the blackboard is initialized to some appropriate value).

5.6 Broadcast
A broadcast is similar in structure to a Pulse except that data is sent. Only those threads waiting (or
attempt to receive while the broadcast is in progress) receive the data. If no threads are waiting (or a

179

previous

broadcast

is

in
progress),
package
class
public

the

data
is
discarded.
communicationAbstractions;
public
Broadcast<Data>
{
Broadcast()
{
arrived
=
false;
waiting
=
0;
}
public
synchronized
void
send(Data
message)
{
if(waiting
!=
0
&&
!arrived)
{
theMessage
=
message;
arrived
=
true;
notifyAll();
}
}
public
synchronized
Data
receive()
throws
InterruptedException
{
try
{
while(!arrived) { // wait for a message to arrive
waiting++;
wait();
waiting--;
}
if(waiting
==
0)
{
// The last thread to receive the message
//
resets
the
boolean
flag.
arrived
=
false;
}
}
catch(InterruptedException
ie)
{
if(--waiting
==
0)
arrived
=
false;
}
return
theMessage;
}
private
Data
theMessage;
private
boolean
arrived;
private
int
waiting;

5.6.1 Multicast to a group


The term broadcast has so far been used to indicate that the data should be sent to any thread that is
waiting. Often the term broadcast (or, more correctly, multicast) is used to indicate that the data
should be sent to a specific group of threads. In this situation, all threads in the group should receive
the data, not just those that happen to be waiting when the data is sent. This is slightly more difficult to
achieve; all potential recipients must be known (say via their thread identifiers) and only when all have
received one item of data is another item allowed to be transmitted.
The following class specification defines a multicast interface. Threads that are interested in receiving
from a group must join the group explicitly, and when they are no longer interested, they must leave
the
group:
package
communicationAbstractions;
public
class
Multicast<Data>
{
public
Multicast(int
groupSize);
public
synchronized
void
join()
throws
GroupFullException,
AlreadyInGroupException;
public
synchronized
void
leave()
throws
NotInGroupException;
public
synchronized
void
send(Data
message)
throws
InterruptedException;
public
synchronized
Data
receive()
throws
NotInGroupException;
}
The implementation keeps track of the threads which have joined the group. Each group has a
maximum size. The constructor initializes the data structures needed to keep track of threads.
package
communicationAbstractions;

public

class
Multicast<Data>
{
Multicast(int
groupSize)
{
size
=
groupSize;
activeThreads
=
new
Thread[size];
receivedMessage
=
new
boolean[size];
for(int
i=0;
i
<
size;
i++)
{
receivedMessage[i]
=
true;
activeThreads[i]
=
null;
}
}
...
private
int
size;
private
Thread[]
activeThreads;
private
boolean[]
receivedMessage;
private
Data
theMessage;

public

Note that it is not possible to use ThreadGroups to capture the relationship between the multicast's
recipients. Threads can only be associated with a ThreadGroup at thread creation time. They cannot
be dynamically attached to a group.
The join method checks to see if the thread is already a member of the group; if it is not and the
group is not at its maximum size, it adds the thread to the group. The leave methods similarly checks
to see if the thread is a group member and, if so, removes it from the group.
public
synchronized
void
join()
throws
GroupFullException,
AlreadyInGroupException
{
int
j
=
size;
for(int
i=0;
i
<
size;
i++)
{
if(activeThreads[i]
==
null)
{
j
=
i;
break;
}
if(activeThreads[i]
==
Thread.currentThread())
throw
new
AlreadyInGroupException();
}
//
j
is
now
first
free
slot.
if(j
==
size)
throw
new
GroupFullException();
activeThreads[j]
=
Thread.currentThread();
receivedMessage[j]
=
true;
}
public
synchronized
void
leave()
throws
NotInGroupException
{
int
i
=
findThreadIndex();
activeThreads[i]
=
null;
receivedMessage[i]
=
true;
notifyAll();
}
...
}
Next the send and receive methods can be defined. The send method will be allowed to complete
only if all threads have received the last message. Similarly, receive will have to wait if there is no
outstanding
sent
message.
public
synchronized
void
send(Data
message)
throws
InterruptedException
{
while(!allReceived())
wait();
// Wait for the previous multicast to terminate.
for(int
i=0;
i
<
size;
i++)
{
//
Reset
received
flags.
receivedMessage[i]
=
false;
}
theMessage
=
message;
notifyAll();
}

181

public
//
if(allReceived())

}
Finally,

the

synchronized
Data
receive()
throws
NotInGroupException
{
while(alreadyReceived())
wait();
Wait
for
the
next
message.
logReceived();
notifyAll();
//
Wakeup
senders.
return
theMessage;
}
...

protected

methods
can
be
given.
protected
int
findThreadIndex()
throws
NotInGroupException
{
int
i;
for(i=0;
i
<
size;
i++)
{
if(activeThreads[i]
==
Thread.currentThread())
break;
}
if(i
==
size)
throw
new
NotInGroupException();
return
i;
}
protected
boolean
alreadyReceived()
throws
NotInGroupException
{
return(receivedMessage[findThreadIndex()]);
}
protected
void
logReceived()
throws
NotInGroupException
{
receivedMessage[findThreadIndex()]
=
true;
}
protected
boolean
allReceived()
{
boolean
done
=
true;
for(int
i=0;
i
<
size;
i++)
{
if(activeThreads [i] != null && !receivedMessage [i]) {
done
=
false;
break;
}
}
return
done;

5.7 Barriers
A barrier simply blocks several threads until all have arrived at the barrier. In this case, no data is
passed, but a form of multicast could be programmed, which passes data as well. Threads wishing to
block at a barrier call the waitB method. If the barrier is in the process of releasing threads (from the
previous batch), the threads are held. Otherwise, a count is incremented and when the last thread
arrives,
all
threads
are
released.
public
class
Barrier
{
public
Barrier(int
number)
{
need
=
number;
//
Number
of
threads
to
block.
arrived
=
0;
releasing
=
false;
}
public
synchronized
void
waitB()
throws
InterruptedException
{
while(releasing)
wait();
//
Wait
for
previous
batch
to
depart.
try
{
arrived++;
While(arrived
!=needed)
&&
!releasing)
wait();
if(arrived
==
need)
{
//
When
all
present.
releasing
=
true;
notifyAll();
}
}
finally
{

arrived--;
Last thread to leave.
releasing
=
false;
notifyAll(); // Allow new batch to arrive.
}
}
}
public
synchronized
int
value()
{
return
arrived;
}
public
int
capacity()
{
return
need;
}
private
int
need;
private
int
arrived;
private
boolean
releasing;

if

(arrived

==

0)

//

5.8 Summary
In concurrent programming, there are many different communication and synchronization paradigms.
This chapter has focused on those that have been found useful in realtime systems over the years.
The chapter has also illustrated the results of two of the main limitations of the Java monitor model.
Lack of preferential access to the monitor lock. This has resulted in either
nonpredictability of the communications paradigm, as in the case of semaphores, and
signals or
more complex implementation models, as in the case of pulses, broadcasts and barriers.
The presence of spurious JVM wakeups further complicate the algorithm designs.
Lack of condition variables. This has resulted in the introduction of inefficiency where threads are
woken up more often then they need be, as in the implementation of events.
Java 1.5 now has its own set of concurrency utilities, which should ease the programmer's burden
when more complex communication patterns, than that supported by the core Java language, are
required. However, for simple communication abstractions, it is often more efficient to implement the
mechanisms directly as illustrated in this Chapter.

183

Chapter 6: Case Study: Concurrent Maze Search


Overview
Introduction and chapter structure
This chapter presents a case study that exploits the facilities of Java. The example involves a
common problem in Computer Science that of searching a problem space for a particular solution.
In this case, the problem space is a maze, and the requirement is to find paths through the maze. This
could represent, for example, finding all the routes from a starting point to a destination in a city.
A maze can be defined as an arrangement of intricate paths (usually between hedges) in which it is
difficult to find a way out. A very simple maze is illustrated below, with two unique paths through it.
There are two main motivations for using concurrency to find all the paths through the maze, rather
than using a sequential approach with backtracking:
a concurrent solution is easier to design because conceptually it is easy to imagine creating
a new thread to explore each branch in the maze rather than having to remember which
branches have yet to be explored;
a concurrent solution will be quicker for large mazes when the program is executed on a
multiprocessor system, as each thread really will execute in parallel (assuming that the JVM
is fully able to exploit the multiple processors).
The case study comes in three parts:
Firstly, a multithreaded Java program is presented that searches through a maze to find all
the unique solutions. A new thread is created for every potential path found, and the threads
perform their searches concurrently. The solution illustrates the general concurrency facilities
of Java and shows how many of the resource control issues can be left to the JVM to
manage. The details of the maze are given in an input file. Each unique solution is given an
integer identifier (between 1 and the maximum number of unique paths in the maze). When
the search is complete, the program prints the number of unique paths and then offers the
user the option of illustrating any of the unique paths. If the user types an integer between 1
and the number of unique paths, then that path is illustrated on the screen.
The first part finds all possible solutions, the second part requires that as soon as one
searcher thread finds a solution, all other active searcher thread are immediately informed of
the fact and they stop their searches. This solution illustrates the use of thread groups and
the thread interrupt mechanism.
For some applications, allowing the JVM to manage all resources is inefficient. The third part
of the case study, therefore, limits the number of concurrent searches and requires that the
searcher threads are reused.

6.1 Concurrent Maze Searching


In the first solution, a single searcher thread is created, which starts its search from the maze
entrance. As the searcher proceeds, it encounters a branch in the path. It chooses one branch to
follow and creates one or more new searcher threads to explore the other branches. Each new
searcher is initialized with the details of the path that its parent has explored so far. Figure 6.2
illustrates the creation of some of the threads for the simple maze given in Figure 6.1
010009000003e20b01000000b37e000000001610000026060f002220574d464301000000000001
00f7f500000000090000000020000068f8000068180100010000006c0000000000000000000000d
2010000f200000000000000000000006a4000007521000020454d4600000100681801000c00000
0010000000000000000000000000000000005000020030000c40100001a0100000000000000000
00000000000e3e306006e4e0400460000002c00000020000000454d462b014001001c000000100
000000210c0db01000000600000006000000046000000681900005c190000454d462b224004000
c000000000000001e4009000c00000000000000244001000c00000000000000304002001000000
0040000000000803f214007000c0000000000000008400005b4180000a81800000210c0db01000
0000000000000000000000000000000000001000000ffd8ffe000104a4649460001020100480048
0000ffed058850686f746f73686f7020332e30003842494d03ed0000000000100048000000010001
00480000000100013842494d040d000000000004000000783842494d03f3000000000008000000
00000000003842494d040a00000000000100003842494d271000000000000a000100000000000

000013842494d03f5000000000048002f66660001006c66660006000000000001002f6666000100
a1999a0006000000000001003200000001005a00000006000000000001003500000001002d000
000060000000000013842494d03f80000000000700000ffffffffffffffffffffffffffffffffffffffffffff03e80000000
0ffffffffffffffffffffffffffffffffffffffffffff03e800000000ffffffffffffffffffffffffffffffffffffffffffff03e800000000ffffffffffffffffff
ffffffffffffffffffffffffff03e800003842494d040800000000001000000001000002400000024000000000
3842494d0414000000000004000000013842494d040c0000000003f70000000100000070000000
3a0000015000004c20000003db00180001ffd8ffe000104a46494600010201004800480000ffee000
e41646f626500648000000001ffdb0084000c08080809080c09090c110b0a0b11150f0c0c0f15181
31315131318110c0c0c0c0c0c110c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c
0c010d0b0b0d0e0d100e0e10140e0e0e14140e0e0e0e14110c0c0c0c0c11110c0c0c0c0c0c110c0
c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0cffc0001108003a00700301220002
1101031101ffdd00040007ffc4013f00000105010101010101000000000000000300010204050607
08090a0b0100010501010101010100000000000000010002030405060708090a0b10000104010
30204020507060805030c33010002110304211231054151611322718132061491a1b1422324155
2c16233347282d14307259253f0e1f163733516a2b283264493546445c2a3743617d255e265f2b3
84c3d375e3f3462794a485b495c4d4e4f4a5b5c5d5e5f55666768696a6b6c6d6e6f6374757677787
97a7b7c7d7e7f71100020201020404030405060707060535010002110321311204415161712213
0532819114a1b14223c152d1f0332462e1728292435315637334f1250616a2b283072635c2d2449
354a317644555367465e2f2b384c3d375e3f34694a485b495c4d4e4f4a5b5c5d5e5f55666768696a
6b6c6d6e6f62737475767778797a7b7c7ffda000c03010002110311003f00f55495168eb7b5fb8e2e
e81e9c0b23746bbfddf47723d5f6ddcff5bd2db0366cdd332eddbf77f27d349492dfe6cfcbf2a02aecfd
bbfb5aff00b4fd9074686fd9b67a9f69ddb5bea7ad3fabecf5bd4d9b3f315d8a3c47de525224912d63
5a0408d50d252924e1ae3c094b63ff0074a4a5924fb1ff00ba52d8ff00dd2929649396b8092080992
524a3977c02320d1cbbe0119253ffd0f55492492523bbe87cc20a35df43e61052525bfe88f8a0cab2
f78681226543d667ee9fc1252a8fa27e2a3ebbbc0297acc1d8fe095c006e8235494b7aeef009bd77
780504c784949edfe6fee4146b7f9bfb9052524a3977c02320d1cbbe0119253fffd1f55492492523bb
e87cc20a35df43e61052525bf81f1426c6e13c4ea8b7f03e2849292c51e5f7a9bf611eee3cd5647bb
e80f8a4a59c29da622634d504a5212909293d9fcd7dc828d67f35f7204a4a4b472ef804641a3977c
02324a7ffd2f55492492523bbe87cc20a35df43e61052533b1e1e044e854124925291bd667814149
2526f559e0537aacf0284924a4deb37c0a5eb33c0a0a49290e6e0db9d650fab3f270becef361147a
63d491b45770baab98fadbfbbb158bf10dceddebdb5e806d63801a19ddf47e9394a8e5df008c929ff
d9003842494d04060000000000070005000000010100ffee000e41646f626500644000000001ffdb
008400040303030303040303040604030406070504040507080606070606080a0809090909080
a0a0c0c0c0c0c0a0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c010405050807080f0a0a0f14
0e0e0e14140e0e0e0e14110c0c0c0c0c11110c0c0c0c0c0c110c0c0c0c0c0c0c0c0c0c0c0c0c0c0c
0c0c0c0c0c0c0c0c0c0c0c0c0cffc000110800b6015e03011100021101031101ffdd0004002cffc401
a20000000701010101010000000000000000040503020601000708090a0b01000202030101010
10100000000000000010002030405060708090a0b100002010303020402060703040206027301
0203110400052112314151061361227181143291a10715b14223c152d1e1331662f0247282f1254
3345392a2b26373c235442793a3b33617546474c3d2e2082683090a181984944546a4b456d3552
81af2e3f3c4d4e4f465758595a5b5c5d5e5f566768696a6b6c6d6e6f637475767778797a7b7c7d7e
7f738485868788898a8b8c8d8e8f82939495969798999a9b9c9d9e9f92a3a4a5a6a7a8a9aaabaca
daeafa110002020102030505040506040803036d01000211030421123141055113612206718191
32a1b1f014c1d1e1234215526272f1332434438216925325a263b2c20773d235e24483175493080
90a18192636451a2764745537f2a3b3c32829d3e3f38494a4b4c4d4e4f465758595a5b5c5d5e5f54
65666768696a6b6c6d6e6f6475767778797a7b7c7d7e7f738485868788898a8b8c8d8e8f8394959
69798999a9b9c9d9e9f92a3a4a5a6a7a8a9aaabacadaeafaffda000c03010002110311003f00f7f62
aec55d8abb15762aec55d8abb154bf52fb51fc8e2a81c55d8abb15762aec55d8abb15762aec55d8a
bb15762aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8aa71
69fef347f2c555b15762aec55d8abffd0f7f62aec55d8abb15762aec55d8abb154bb52fb71fc8e2a82c
55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55d
8abb15762aec55d8abb15762aec55d8aa7169fef347f2c555b15762aec55d8abffd1f7f62aec55d8a
bb15762aec55d8abb154bf52fb51fc8e2a81c55d8abb15762aec55d8abb15762aec55d8abb15762
aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8aa7169fef347
f2c555b15762aec55d8abffd2f7f62aec55d8abb15762aec55d8abb1540ea11bbb46514b501ad057
1541fa137fbedbee38abbd09bfdf6df71c55de84dfefb6fb8e2aef426ff007db7dc71577a137fbedbee3
8aac65653c58107c0ed8ab58abb15762aec55d8abb15762aec55d8abb15762aec55d8abb15762a
ec55d8abb15762aec55d8abb15762aec5538b4ff79a3f962aad8abb15762aec55ffd3f4b5a79efcf1a
969c751facc76177f5ed374ebfd0db4e9de7d3e69b565b6b82667e28cbf576246cdf67d757f4b6c55
097be75f3d4116a57ab7932cb63a379945893661a0b8bed2b55105a48d1841c9de000f04601c316
418aa6de63f3c799b41f32e93a259dccb7f04b3a41a9dc4b60ca8905c69d7b711cc8f12156fdfc512
1625113fbae2eefc95542e9df985e6bb37b44f304923e97710e852dfeab158386b46d56cae9e6f811
58041710c295757f47d6fde7ec90ab20d1fccfafddf9ad7cbd797c217b278182cba7ccbfa52c25b157

185

3731b001216f5d9830e67d3f4fd378eb229c559e5edd5cdb70fabd8cb79cabcbd268978d3c7d574e
bed8aa5f73ac6aa96f33a68577c9518a912d9f503de7c55f9dff969ff0039bfff00391577a8fe89ff000b
c5f982b1b1468aceca68effad055ec95907d30e2afbcbf2cbce9e6cf3a68e2fbcdbe46d43c937e1549
b5d427b5b85727fdf6617f5053fe2d8a3c559ce2aec55d8abb15762a94deff00bd2df21fab1543e2ae
c55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55
d8abb154e2d3fde68fe58aab62aec55d8abb157fffd4f7f62aec55d8abb15762aec55a650c0ab0aa9
1420f81c5501a3e85a2797ad069fa069b6ba55883516d630476d157c7844aa31544cd75140c11eb
522bb0ae2aa7fa420f06fbbfb71577e9083c1beefedc55dfa420f06fbbfb7155786649d4ba5680d37d
b1554c5529beff007a5be43f562a87c55d8abb15762ad8058851d49a0fa715447d46e7f947de3157
7d46e7f947df8ab5f51b9fe51f78c55df51b9fe51f78c55df51b9fe51f78c55bfa8dcff28fbf1577d46e7f
947df8abbea373fca3ef18abbea373fca3efc55df51b9fe51f7e2ad7d46e7f947de3156fea373fca3efc
55df51b9fe51f78c554a5864848590509dc537c554f15762aec55d8abb154e2d3fde68fe58aab62ae
c55d8abb157ffd5f7f62aec55d8abb15762aec55d8abb154b350fefc7faa3f59c55098abb15762a99e
9dfdcb7fac7f50c55178aa537dfef4b7c87eac550f8abb15762aec55727f789feb0fd78aa798abb1576
2aec55d8abb15762aec55d8abb15762aec55d8aa5ba8ff00789feaff001c55078abb15762aec55d8
aa7169fef347feae2aad8abb15762aec55ffd6f7f62aec55d8abb15762aec55d8abb154b350fefc7faa
3f59c55098abb15762a99e9dfdcb7fac7f50c55178aa537dfef4b7c87eac550f8abb15762aec55747f
de27fac3f5e2a9e62ad31e2a5bc0571541fe924ff007d9fbc62ad7e924ff7d9fbc62aefd249fefb3f78c
55dfa493fdf67ef18abbf4927fbecfde31577e924ff007d9fbc62aefd249fefb3f78c55dfa493fdf67ef18a
bbf4927fbecfde31544c1389d0b81c6869438aaae2a96ea3fdea7fabfc71541e2aec55d8abb15762a
9c5a7fbcd1fcb1556c55d8abb15762aff00ffd7f7f62aec55d8abb15762aec55d8abb154b350fefc7faa
3f59c55098abb15762a99e9dfdcb7fac7f50c55178aa537dfef4b7c87eac550f8abb15762aec55747f
de27fac3f5e2a9e62ab25feedff00d53fab1549062aec55d8abb15762aec55d8abb15762a99e9dfdc
b7fac7f50c55178aa5ba8ff7a9feaff1c55078abb15762aec55d8aa7169fef347f2c555b15762aec55d
8abffd0f7f62aec55d8abb15762aec55d8abb154b350fefc7faa3f59c55098abb15762a99e9dfdcb7fa
c7f50c55178aa127b2f5a43273e35a6d4af4fa71553fd1bff16ffc2ff6e2aefd1bff0016ff00c2ff006e2ae
fd1bff16ffc2ff6e2aefd1bff00167fc2ff006e2adae9dc595bd4e841e9e1f4e2a8ec55a61c94a8ee08c5
52ff00d1b27fbf17ee38aac92c5e34690b82145694c550b8abb15762aec55d8abb15762a99e9dfdc
b7fac7f50c55178aa5ba8ff7a9feaff1c55078abb15762aec55c7154e2d3fde68fe58aab62aec55d8ab
b157fffd1f7f62aec55d8abb15762aec55d8abb154b350fefc7faa3f59c55098abb15762a99e9dfdcb7
fac7f50c55178abb15762aec55d8abb15762aec55d8abb1551baff0079e4ff00571549f15762aec55
d8abb15762aec5532d38fee587f947f50c55198aa5ba8ff007a9feaff001c55078abb15762aec55d8a
a7169fef347f2c555b15762aec55d8abfffd2f7f62aec55d8abb15762aec55d8abb154b350fefc7faa3f
59c55098abb15762a99e9dfdcb7fac7f50c55178aa5f73773c5332211c401d457a8c554bebd73e23
eec55df5fb9f11f762aefafdcf88fbb1577d7ae7c47dd8abbebd73e23eec55df5eb9f11f762ada5f5c17
50c450900ed8aa698aa8dd7fbcf27fab8aa4f8abb15762aec55d8abb15762a9969dfdd3ff00adfc062
a8cc552dd47fbe5ff0057f8e2a83c55d8abb15762aec5538b4ff79a3f962aad8abb15762aec55ffd3f7
f62aec55d8abb15762aec55d8abb154b350fefc7faa3f59c55098abb15762a99e9dfdcb7fac7f50c55
178aa537dfef4b7c87eac550f8abb15762aec55d8abb155f0ff7a9feb0fd78aa778aa8dd7fbcf27fab8
aa4f8abb15762aec55d8abb15762a9969dfdcb7fac7f50c55198aa5ba8ff7a9feaff1c55078abb1576
2aec55d8aa7169fef347feae2aad8abb15762aec55fffd4f7f62aec55d8abb15762aec55d8abb154b3
50fefc7faa3f59c55098abb15762a99e9dfdcb7fac7f50c55178aa537dfef4bfc87eac550f8abb15762a
99db5bc2f046cc80b11b9c5557ea96ffefb18abbea96ffefb18ab85adb82084008351f318aab62ad32
aba9561553d462aa5f54b7ff7d8c55df54b7ff7d8c55df55b7ff7d8c55097d0c512a18d42924d698aa
0b15762aec5532d3bfb96ff005bf80c55198aa5ba8ff7a9feaff1c55078abb15762aec55d8aa7169fef
347f2c555b15762aec55d8abffd5f7f62aec55d8abb15762aec55d8abb154b350fefc7faa3f59c55098
abb15762a99e9dfdcb7fac7f50c55178aa537dfef4bfc87eac550f8abb15762a9c5a7fbcd1fcb1556c5
5d8abb15762aec55d8abb15762a81d4bec47f33fab154bf15762aec5532d3bfba6ff005bf80c55198
aa5ba8ff7a9feaff1c55078abb15762aec55d8aa7169fef347f2c555b15762aec55d8abffd6f7f62aec5
5d8abb15762aec55d8abb154b350fefc7faa3f59c55098abb15762a99e9dfdcb7fac7f50c55178aa53
7bfef4b7c87eac550f8abb15762abd65954515d801b01534c55deb4dfefc6fbce2aef5a6ff7e37de71
55d1cb319107a8db903727c7154e71552b9256090834206c462a94fad37fbf1bef38abbd69bfdf8df
79c55deb4dfefc6fbce2ad33bbd39b16a74a9ae2ab715762aec5532d3bfb96ff005bf80c55198aa5b
a8ff7a9feaff1c55078abb15762aec55d8aa7169fef347f2c555b15762aec55d8abffd7f7f62aec55d8a
bb15762aec55d8abb154b350fefc7faa3f59c55098abb15762a99e9dfdcb7fac7f50c55178aa537dfef
4b7c87eac550f8abb15762aec55d8abb155d17f789feb0fd78aa798aa8dd7fbcf27fab8aa4f8abb157
62aec55d8abb15762a9969dfdd3ffadfc062a8cc552dd47fbd4ff57f8e2a83c55d8abb15762aec5538
b4ff0079a3ff00571556c55d8abb15762aff00ffd0f7f62aec55d8abb15762aec55d8abb154b350fefc7
faa3f59c55098abb15762a99e9dfdcb7fac7f50c55178aa537dfef4b7c87eac550f8abb15762aec55d
8abb155f17f7a9feb0fd78aa778aa8dd7fbcf27fab8aa4f8abb15762aec55d8abb15762a9969dfdd37f
adfc3154662a96ea3fdea7fabfc71541e2aec55d8abb15762a9c5a7fbcd1ffab8aab62aec55d8abb15
7ffd1f7f62aec55d8abb15762aec55d8abb154b350fefc7faa3f59c55098abb15762a99e9dfdcb7fac7f
50c55178aa537dfef4b7c87eac550f8abb15762aec55d8abb155f17f7a9feb0ebf3c553bc554aeb7b7
900dcd31549f83ff29fb8e2aee0ff00ca7ee38abb83ff0029fb8e2aee0ffca7ee38abb83ff29fb8e2aee0
ff00ca7ee38abb83ff0029fb8e2a9969e0885aa08f8bbfc862a8bc552fbf8e47954a29601772013df15

42fa13ffbe9beec55de84ff00efb6fb8e2aef427ff7d37dd8ab7f57b8ff007d37dd8ab5f57b8ff7db7dd8a
a6b6cacb046ac28c06e31555c55d8abb156b92d39721c6b4ad76ad69faf157fffd2f7f62aec55d8abb
15762aec55d8abb154b350fefc7faa3f59c55098abb15762a99e9dfdcb7fac7f50c55178aa537dfef4b
fc87eac550f8abb15762aec55d8abb155f17f7a9feb0fd78aa778abb15762aec55d8abb15762aec55
d8abb15762aec55d8abb15762aa57333c10bcb1c2f70ebd218b8876dfb73655fbce2a978d5ef76ff7
0b7a3fd95aff00d57c55f147e75ffce5d7e6f7e587e796b7e4fd0747b7d4fcbf6b1d91b6d1af6dbd4b8
56b8b68e462b2d9c85be22599412df2c55f437e4e7e72f9e7f32120ff0012fe576b3e5486485256d5
2e9a35b32cdd952e3d0988ee0ac6f8abd0fcebafdc796b464d4e28d9adc5ddac17d70aa64fab5a4f3
2c72dc1550db46a79134217ed37c20e2ac653ccde62b2d6bcba2eb528b50f2f6a0a2d752bbb7b43
108aea591cd9c95624f0b951e9bd178a3f090144936558cdd79ab574974c50614d22792f51ad059
afd4e49e2f33db5aaca578d7d4585da50797dbfdf62afffd3f7f62aec55d8abb15762aec55d8abb154
b350fefc7faa3f59c55098abb15762a8eb2b8862899646a1e55a6fd2831544fd76dbf9ff038aa5d74e
b24ece86aa40a7dd8aa8e2aec55d8abb15762aec5574642c8ac7a0209fbf154d3ebb6c7f6ff00038a
bbebb6dfcff81c55bfaedb7f3fe071577d72dbf9ff00038abbebb6dfcff81c55df5cb6ff007e7e071577d
76dbf9ff038ab5f5db6fe7fc0e2adfd76dab4e7f81c55afaedb7f3fe071577d76dab4e7f81c55df5eb6e
9cff03fd31577d76dbf9ff038ab7f5cb6fe7fc0e2aefae5b52bcff038abbeb76dfefc1f8e2aefae5b7fbf07
e38aa12d742d06df53bad7ed34db58f59d4020bcd4e38635b9996350881e5039305514009db154c
b15762aec55d8abffd4f7f62aec55d8abb15762aec55d8abb154b350fefc7faa3f59c55098abb15762
aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb15762aec
55d8abb15762aec55d8abb154e2d3fde68ffd5c555b15762aec55d8abffd5f7f62aec55d8abb15762
aec55d8abb154b350fefc7faa3f59c55098abb15762aec55d8abb15762aec55d8abb15762aec55d8
abb15762aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb154e2d3fde68fe58
aab62aec55d8abb157fffd9000840010824000000180000000210c0db0100000003000000000000
0000000000000000001b40000040000000340000000100000002000000000000bf000000bf0000
af4300003643030000000000008000000080fe7fe9430000008000000080fdff7243210000000800
0000620000000c00000001000000150000000c00000004000000150000000c0000000400000051
0000009cfd00000000000000000000d2010000f2000000000000000000000000000000000000005
e010000b6000000500000000c0300005c03000040fa0000000000002000cc00d3010000f3000000
280000005e010000b60000000100080000000000000000000000000000000000b900000000000
00000000000ffffff00fafafa00f1f1f100efefef00f0f0f000f7f7f700fefefe00f9f9f900eeeeee00f8f8f800f2
f2f200ededed00fbfbfb00f3f3f300fdfdfd00f6f6f600fcfcfc00f4f4f400e9e9e900c4c4c400e7e7e700e3
e3e300c5c5c500a7a7a700ebebeb009f9f9f00cdcdcd00a0a0a000b9b9b9009b9b9b0050505000d0
d0d000a2a2a200acacac00bcbcbc00b5b5b500c0c0c000bdbdbd00d2d2d200a8a8a800c8c8c8009
a9a9a00d9d9d900d4d4d400bebebe00f5f5f500bfbfbf00b4b4b400eaeaea0026262600474747008
3838300e1e1e100c1c1c10098989800d8d8d800414141007979790038383800cccccc00cecece00
58585800b7b7b7005f5f5f0033333300e4e4e400b2b2b20028282800e5e5e500ececec006a6a6a0
08a8a8a00d1d1d1008c8c8c00e6e6e6009e9e9e004444440018181800050505000101010017171
7005252520097979700c3c3c300e8e8e8006969690092929200dedede004c4c4c00b6b6b600636
36300202020007f7f7f00c2c2c2005c5c5c006e6e6e005a5a5a00dbdbdb00dadada0012121200040
4040016161600b3b3b3009d9d9d0051515100b8b8b80068686800e2e2e20066666600a5a5a500
3d3d3d008585850065656500dfdfdf004b4b4b00afafaf00aeaeae00969696000f0f0f00020202000e
0e0e003a3a3a004242420048484800dcdcdc00dddddd00898989007373730019191900b0b0b000
6d6d6d007d7d7d00a3a3a3001111110003030300070707001b1b1b006b6b6b00a1a1a100babab
a0091919100aaaaaa00d3d3d300a6a6a600c6c6c600a9a9a90094949400d6d6d6001a1a1a00555
55500c7c7c7003636360059595900999999008e8e8e0072727200ababab009c9c9c003b3b3b000
808080024242400404040008484840061616100c9c9c900393939007b7b7b0078787800b1b1b10
0a4a4a4002121210076767600adadad006060600006060600272727004d4d4d004a4a4a008f8f8f
0037373700232323001d1d1d007a7a7a009090900001010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101070403050503050505050505050505050505050505050505050505050
50505050505050505050505050505050505050505050505050505050505050505050505050505
05050505050505050505050505050505050505050505050505050505050505050505050505050
50505050505050505050505050505050505050505050505050505050505050505050505050505
05050505050505050505050505050505050505050505050505050505050505050505050505050
50505050505050505050505050505050505050505050505050505050505050505050505050505
05050505050505050505050505050505050505050505050505040607010101010101010101010
10101010101010101010101010101010101010101010101010000010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010704030505030505050505050505050505050505050505
05050505050505050505050505050505050505050505050505050505050505050505050505050
50505050505050505050505050505050505050505050505050505050505050505050505050505
05050505050505050505050505050505050505050505050505050505050505050505050505050
50505050505050505050505050505050505050505050505050505050505050505050505050505

187

05050505050505050505050505050505050505050505050505050505050505050505050505161
0000026060f002220574d46430100000000000100000000000000090000000020000068d800006
81801000505050505050505050505050505050505050505050505050505050505050505040607
01010101010101010101010101010101010101010101010101010101010101010101010000010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010704030505030505050505050
50505050505050505050505050505050505050505050505050505050505050505050505050505
05050505050505050505050505050505050505050505050505050505050505050505050505050
50505050505050505050505050505050505050505050505050505050505050505050505050505
05050505050505050505050505050505050505050505050505050505050505050505050505050
50505050505050505050505050505050505050505050505050505050505050505050505050505
05050505050505050505050505050505050505050505050505050505050505050505050505050
50505040607010101010101010101010101010101010101010101010101010101010101010101
01010000010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010107040305050305
05050505050505050505050505050505050505050505050505050505050505050505050505050
50505050505050505050505050505050505050505050505050505050505050505050505050505
05050505050505050505050505050505050505050505050505050505050505050505050505050
50505050505050505050505050505050505050505050505050505050505050505050505050505
05050505050505050505050505050505050505050505050505050505050505050505050505050
50505050505050505050505050505050505050505050505050505050505050505050505050505
05050505050505050406070101010101010101010101010101010101010101010101010101010
10101010101010100000101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101070
40305050305050505050505050505050505050505050505050505050505050505050505050505
05050505050505050505050505050505050505050505050505050505050505050505050505050
50505050505050505050505050505050505050505050505050505050505050505050505050505
05050505050505050505050505050505050505050505050505050505050505050505050505050
50505050505050505050505050505050505050505050505050505050505050505050505050505
05050505050505050505050505050505050505050505050505050505050505050505050505050
50505050505050505050505050504060701010101010101010101010101010101010101010101
01010101010101010101010101000001010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101070403050503050505050505050505050505050505050505050505050505050505050
50505050505050505050505050505050505050505050505050505050505050505050505050505
05050505050505050505050505050505050505050505050505050505050505050505050505050
50505050505050505050505050505050505050505050505050505050505050505050505050505
05050505050505050505050505050505050505050505050505050505050505050505050505050
50505050505050505050505050505050505050505050505050505050505050505050505050505
05050505050505050505050505050505050505040607010101010101010101010101010101010
10101010101010101010101010101010101010000010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010704030505030505050505050505050505050505050505050505050505
05050505050505050505050505050505050505050505050505050505050505050505050505050
50505050505050505050505050505050505050505050505050505050505050505050505050505
05050505050505050505050505050505050505050505050505050505050505050505050505050
50505050505050505050505050505050505050505050505050505050505050505050505050505
05050505050505050505050505050505050505050505050505050505050505050505050505050
50505050505050505050505050505050505050505050505050906010107010107010101010101
01010101010101010101010101010101010101010101010100000101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010107040305050305050505050505050505050505050505050
50505050505050505050505050505050505050505050505050505050505050505050505050505
05050505050505050505050505050505050505050505050505050505050505050505050505050
50505050505050505050505050505050505050505050505050505050505050505050505050505
05050505050505050505050505050505050505050505050505050505050505050505050505050
50505050505050505050505050505050505050505050505050505050505050505050505050505
05050505050505050505050505050505050505050505050505050505050509060101070101070
10101010101010101010101010101010101010101010101010101010101000001010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101070403050503050505050505050505050505
05050505050505050505050505050505050505050505050505050505050505050505050505050
50505050505050505050505050505050505050505050505050505050505050505050505050505
05050505050505050505050505050505050505050505050505050505050505050505050505050
50505050505050505050505050505050505050505050505050505050505050505050505050505

05050505050505050505050505050505050505050505050505050505050505050505050505050
50505050505050505050505050505050505050505050505050505050505050505050505090601
01070101070101010101010101010101010101010101010101010101010101010101010000010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010704030505030505050505050
50505050505050505050505050505050505050505050505050505050505050505050505050505
05050505050505050505050505050505050505050505050505050505050505050505050505050
50505050505050505050505050505050505050505050505050505050505050505050505050505
05050505050505050505050505050505050505050505050505050505050505050505050505050
50505050505050505050505050505050505050505050505050505050505050505050505050505
05050505050505050505050505050505050505050505050505050505050505050505050505050
50505090601010701010701010101010101010101010101010101010101010101010101010101
01010000010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010107040305050305
05050505050505050505050505050505050505050505050505050505050505050505050505050
50505050505050505050505050505050505050505050505050505050505050505050505050505
05050505050505050505050505050505050505050505050505050505050505050505050505050
50505050505050505050505050505050505050505050505050505050505050505050505050505
05050505050505050505050505050505050505050505050505050505050505050505050505050
50505050505050505050505050505050505050505050505050505050505050505050505050505
05050505050505050906010107010107010101010101010101010101010101010101010101010
10101010101010100000101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101070
40305050305050505050505050505050505050505050505050505050505050505050505050505
05050505050505050505050505050505050505050505050505050505050505050505050505050
50505050505050505050505050505050505050505050505050505050505050505050505050505
05050505050505050505050505050505050505050505050505050505050505050505050505050
50505050505050505050505050505050505050505050505050505050505050505050505050505
05050505050505050505050505050505050505050505050505050505050505050505050505050
50505050505050505050505050509060101070101070101010101010101010101010101010101
01010101010101010101010101000001010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101070403050503050505050505050505050505050505050505050505050505050505050
50505050505050505050505050505050505050505050505050505050505050505050505050505
05050505050505050505050505050505050505050505050505050505050505050505050505050
50505050505050505050505050505050505050505050505050505050505050505050505050505
05050505050505050505050505050505050505050505050505050505050505050505050505050
50505050505050505050505050505050505050505050505050505050505050505050505050505
05050505050505050505050505050505050505090601010701010701010101010101010101010
10101010101010101010101010101010101010000010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010704030505030505050505050505050505050505050505050505050505
05050505050505050505050505050505050505050505050505050505050505050505050505050
50505050505050505050505050505050505050505050505050505050505050505050505050505
05050505050505050505050505050505050505050505050505050505050505050505050505050
50505050505050505050505050505050505050505050505050505050505050505050505050505
05050505050505050505050505050505050505050505050505050505050505050505050505050
50505050505050505050505050505050505050505050505050906010107010107010101010101
01010101010101010101010101010101010101010101010100000101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010107040305050305050505050505050505050505050505050
5050505050505050b46050903050c05050505050505050c0e04040504030505050505050505050
50505050505050505050505050505050505050505050505050505050505050505050505050505
0505050309030b090304040404040505050404040404040404050505050505050505050505050
50505050505050505050505050505050505050505050505050505040404040404040403050404
04040503040404040404040405050409090405050504040909040405040404040404040405050
50505050505040503030303050404040404040404040909090909090909462e01010107010701
01010101010101010101010101010101010101010101010101010101010000010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010704030505030505050505050505050505050
50505050505050505050505090546120e2e0e0b0b0b0b0b0b0b0b0b0e06030403050305050505
05050505050505050505050505050505050505050505050505050505050505050505050505050
505050505050505050309050b090e03030303030b0b0b03030303030303030b0b0b0b0b0b0b0b

189

0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0303030303030
3030e0b030303030b0e03030303030303030b0b030505030b0b05050504040505050303030303
0303030b0b0b0b0b0b0b0b030b0e0e0e0e0b032e2e2e2e2e2e2e2e12121212121212120601010
d0101010101010101010101010101010101010101010101010101010101010101010100000101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010107040305050305050505050505
0505050505050505050505050505050505030b050f0707110f0f0f0f0f0f0f0f0f02110e0503050304
05050505050505050505050505050505050505050505050505050505050505050505050505050
505050505050505050505050309050305101111110f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f
0f0f0f0f0f0f0f0f0f0f0f0f0f07070707070707070f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f070f0f11110f0f070f0f0
f0f0f0f0f0f0f0f111111110f0f0707070f0f0707070f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f070707070f0f01
010101010101010101010101010101070f0d0f0107110101010101010101010101010101010101
01010101010101010101010101010000010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010704030505030505050505050505050505050505050505050505050505050405040
101010701010101010101010101010e0405050304050505050505050505050505050505050505
05050505050505050505050505050505050505050505050505050505050505050b04040303020
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010107070707070707070101010101010101010101010101010101010101
01010101010101010101010101010101010101010107010111010d01010101010101010101010
10101010101010101010101010101010101010100000101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010107040305050305050505050505050505050505050505050505050505
05050504090101010701010101010101010101010e09050503040505050505050505050505050
50505050505050505050505050505050505050505050505050505050505050505050505050503
04040503110707070707070707070707070707070701010101010101010707070707070707010
10101010101010707070707070707010101010101010107070707070707070101070707070101
07070707070707070707070707070707010101010101010107070707070707070707070707070
707070701010101070707070707070707070707070707070707010f070f0d01070101010101010
10101010101010101010101010101010101010101010101010000010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010704030505030505050505050505050505050505050505
050505050505050b03050101010101010101010101010101070b0c040503040505050505050505
05050505050505050505050505050505050505050505050505050505050505050505050505050
50505040304050503110101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101070701010101070701010101010101010101
01010101010101010101010101010101010101010101010101010101010101110d01010101070
10101010101010101010101010101010101010101010101010101010101000001010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101070403050503050505050505050505050505
0505050505050505050505050904090f07071107010101010101010101070e0905050305050505
05050505050505050505050505050505050505050505050505050505050505050505050505050
5050505050505030405040505030d010101010707070707070707070707070101010101010101
07070707070707070101010101010101070707070707070701010101010101010707070707070
70701010101010101010707070707070707070707070707070701010101010101010707070707
070707070707070707070701010707070701010f0f0f0f0f0f0f0f07070707070707070f01582e0107
010f01010101010101010101010101010101010101010101010101010101010100000101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010107040305050305050505050505050505
0505050505050505050505050505040b030101010107010101010101010107011204050503050
50505050505050505050505050505050505050505050505050505050505050505050505050505
050505050505050505030904040505050d0101010101010707010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101070101010101010701010
10101010101010101010101010101010101010101010101010101010101010101010101010101
05596f856c07010101010101010101010101010101010101010101010101010101010101010000
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010704030505030505050505
050505050505050505050505050505050505050505050107010101010101010101010101010e0
40505030405050505050505050505050505050505050505050505050505050505050505050505
0505050505050505050505050505030403050505050d010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010

10101010101010101010101010101010101010101010101010101010701070701070107010101
070707010f07b400b5b6398a8e46010f010111010f010f010f01a5b71c0b633d0d27b8041b7f030a9
32000000101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101070403050503050
50505050505050505050505050505050505050505050505050501070101010101010101010101
01010e04050503040505050505050505050505050505050505050505050505050505050505050
50505050505050505050505050505050505030403050505050d01010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
010101010101010101010101010101010101010101010101010101010101010f070f010106122e
1010101010100607466f0078506500afb0b1845e0e0f0f0101010d0162b2223c29043f0eb34a0138
5b11175b550000010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010107040305
05030505050505050505050505050505050505050505050505050505050107010101010101010
101010101010e0405050304050505050505050505050505050505050505050505050505050505
050505050505050505050505050505050505050505030403050505050d0101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010111070101
0b3ca9245a3f6a3f6a1d8c8caa510000a0508887666650abac97011102010701ad9c11012e01048
dae010d133a019783010000010101010101010101010101010101010101010101010101161000
0026060f002220574d46430100000000000100000000000000090000000020000068b800006818
01000101010101010101010101010101010101010101010101010101010101010101010101010
10101010101070403050503050505050505050505050505050505050505050505050505050505
0107010101010101010101010101010e040505030405050505050505050505050505050505050
5050505050505050505050505050505050505050505050505050505050505030403050505050d
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
101010101010101070101110208020d0d0d0d11110103a665877900a0656f71a724050101010d0
111012d8402723d010d5b180f0115a80aa58007000001010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101070403050503050505050505050505050505050505050505050505050
5050505050107010101010101010101010101010e040505030405050505050505050505050505
05050505050505050505050505050505050505050505050505050505050505050505050304030
50505050d01010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
0101010101010101010f0f010f0d0f0f01010101010101010101119f50a0a1a25674350d0101070f0
1070f01070731850b4ca30a5da4a515018f47015e71080000010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010704030505030505050505050505050505050505050505050505
050505050505050107010101010101010101010101010e0405050304050505050505050505050
50505050505050505050505050505050505050505050505050505050505050505050505050503
0403050505050d010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
101010101010101010101010107010101010711070101010707070101109c6b532c11010f01110
1010f010f110111010102043c9d0b0b9e385820010991083f406300000101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010107040305050305050505050505050505050505050505
05050505050505050505050107010101010101010101010101010e04050503040505050505050
50505050505050505050505050505050505050505050505050505050505050505050505050505
050505030403050505050d0101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010f0d0f07010701010101070101010104010101011
101010107110f010107010d0f0201010801010801011101010d020107202e00000101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010107040305050305050505050505050505050
50505050505050505050505050505050107010101010101010101010101010e04050503040505
05050505050505050505050505050505050505050505050505050505050505050505050505050
505050505050505030403050505050d0101010101010101010101010101010101010101010101

191

01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
0101010101010101010101010101010101010101010f01010101070707010101010101010f1101
0111010f010701010f010108010701010101010d01010d010f0101010f729b02010101000001010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101070403050503050505050505050
50505050505050505050505050505050505050501070101010101010101010101010112040504
03040505050505050505050505050505050505050505050505050505050505050505050505050
505050505050505050505050b05030505040502010101010101010107070f0f010102120606060
60606060606060606060606060606060606060606060606060606060606060606060606060606
06060606060606060606060606062e061201010107070101010101010101070101111101070f07
07070707070707070707070707070707070707070707070101010101010101010101010101010
11101010107010101010101010101010101010101010101010101010101010101020501010101
00000101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101070403050503050505
05050505050505050505050505050505050505050505050501070101010101010101010101010
11204050403040505050505050505050505050505050505050505050505050505050505050505
05050505050505050505050505050505050905040305031101010101010101010101070701010
80b04040404040404040404040404040404040404040404040404040404040404040404040404
040404040404040404040404040404040404040503050f01010701010101010101010107070f12
030e05040e0e0e0e0e0e0e0e0b0b0b0b0b0b0b0b0e0e0e0e0e0e0e0e121212121212121212121
21212121212060d01010101010101010101010101010101010101010101010101010101010101
08010101010000010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010107040305
05030505050505050505050505050505050505050505050505050505050107010101010101010
10101010101120405040304050505050505050505050505050505050505050505050505050505
05050505050505050505050505050505050505050505090504030503110101010101010101010
10101010706050505050505050505050505050505050505050505050505050505050505050505
0505050505050505050505050505050505050505050505050c0409110701010101010101010101
01010101120403050509090909090909090505050505050505090909090909090904040404040
40404040404040404040405060701010101010101010101010101010101010101010101010101
01010101010101010101000001010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01070403050503050505050505050505050505050505050505050505050505050505010701010
10101010101010101010112040504030405050505050505050505050505050505050505050505
05050505050505050505050505050505050505050505050505050b05030505040502010101010
10101010101010101070604050505050505050505050505050505050505050505050505050505
0505050505050505050505050505050505050505050505050505050505050b050701010101010
10101010101010101070e0905050b050505050505050505050505050505050505050505050505
05050505050505050505050505050505462e07010107010101010101010101010101010101010
101010101010101010107010f01010f00000101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010107040305050305050505050505050505050505050505050505050505050505050
50107010101010101010101010101011204050403040505050505050505050505050505050505
050505050505050505050505050505050505050505050505050505050505050b0503050504050
20101010101010101010101010101060404040404040404040404040404040404040404040404
04040404040404040404040404040404040404040404040404040404040404040404030e03070
101070101010101010101010707070e0c090c04050505050505050504040404040404040505050
505050505050505050505050504040404040404040c06010107070101010101010101010101010
10101010101010101010101010107010701010700000101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010107040305050305050505050505050505050505050505050505050505
05050505050107010101010101010101010101011204050403040505050505050505050505050
50505050505050505050505050505050505050505050505050505050505050505050505050905
040305031101010101010101010701010101010a0503030303030303030303030303030303030
30303030303030303030303030303030303030303030303030303030303030303030303030303
0403040f0101070101010101010101010101011004030503050505050505050503030303030303
03050505050505050505050505050505050404040404040404040a01010707010101010101010
10101010101010101010101010101010101010101070707070000010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010704030505030505050505050505050505050505050505
05050505050505050505010701010101010101010101010101120405040304050505050505050
50505050505050505050505050505050505050505050505050505050505050505050505050505
0505050905040305031101010101010101010101010101010a050404040404040404040404040
40404040404040404040404040404040404040404040404040404040404040404040404040404

04040404040905040f0101070101010101010101010f070f0e09030503030303030303030304040
40404040404030303030303030303030303030303030505050505050505050a01010707010101
0101010101010101010101010101010101010101010101010f070f0f07000001010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101070403050503050505050505050505050505050
50505050505050505050505050501070101010101010101010101010112040504030405050505
05050505050505050505050505050505050505050505050505050505050505050505050505050
505050505050b0503050504050201010101010101010101010101070604050505050505050505
05050505050505050505050505050505050505050505050505050505050505050505050505050
50505050505050505050b05070101010101010101010101010101011209030505050505050505
05050303030303030303050505050505050505050505050505050505050505050505040607010
1010101010101010101010101010101010101010101010101010101010f0101010100000101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010107040305050305050505050505050
50505050505050505050505050505050505050107010101010101010101010101011204050403
04050505050505050505050505050505050505050505050505050505050505050505050505050
505050505050505050505030403050505050d01010101010101010701010701010a0405050505
05050505050505050505050505050505050505050505050505050505050505050505050505050
5050505050505050505050505050505030d010701010101010101010101010101120403040505
05050505050505050505050505050505050505050505050505050505050505050505050505050
50906010107010107010101010101010101010101010101010101010101010101010101010101
00000101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101070403050503050505
05050505050505050505050505050505050505050505050501070101010101010101010101010
11204050403040505050505050505050505050505050505050505050505050505050505050505
05050505050505050505050505050505030403050505050d01010101010101010701010701010
a0405050505050505050505050505050505050505050505050505050505050505050505050505
050505050505050505050505050505050505050505030d0107010101010101010101010101011
20403040505050505050505050505050505050505050505050505050505050505050505050505
05050505050509060101070101070101010101010101010101010101010101010101010101010
10101010101000001010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010704030
50503050505050505050505050505050505050505050505050505050505010701010101010101
01010101010112040504030405050505050505050505050505050505050505050505050505050
5050505050505050505050505050505050505050505030403050505050d010101010101010107
01010701010a04050505050505050505050505050505050505050505050505050505050505050
50505050505050505050505050505050505050505050505050505030d01070101010101010101
01010101011204030405050505050505050505050505050505050505050505050505050505050
50505050505050505050505090601010701010701010101010101010101010101010101010101
01010101010101010101010000010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010704030505030505050505050505050505050505050505050505050505050505050107010
10101010101010101010101120405040304050505050505050505050505050505050505050505
050505050505050505050505050505050505050505050505050505030403050505050d0101010
1010101010701010701010a040505050505050505050505050505050505050505050505050505
0505050505050505050505050505050505050505050505050505050505050505030d010701010
10101010101010101010112040304050505050505050505050505050505050505050505050505
05050505050505050505050505050505050906010107010107010101010101010101010101010
10101010101010101010101010101010100000101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010107040305050305050505050505050505050505050505050505050505050505
05050107010101010101010101010101011204050403040505050505050505050505050505050
50505050505050505050505050505050505050505050505050505050505050505030403050505
050d01010101010101010701010701010a0405050505050505050505050505050505050505050
50505050505050505050505050505050505050505050505050505050505050505050505050503
0d010701010101010101010101010101120403040505050505050505050505050505050505050
50505050505050505050505050505050505050505050509060101070101070101010101010101
01010101010101010101010101010101010101010101000001010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101070403050503050505050505050505050505050505050505050
50505050505050501070101010101010101010101010112040504030405050505050505050505
05050505050505050505050505050505050505050505050505050505050505050505050505050
30403050505050d01010101010101010701010701010a04050505050505050505050505050505

193

05050505050505050505050505050505050505050505050505050505050505050505050505050
505050505030d0107010101010101010101010101011204030405050505050505050505050505
05050505050505050505050505050505050505050505050505050505090601010701010701010
10101010101010101010101010101010101010101010101010101010000010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010704030505030505050505050505050505050505
05050505050505050505050505010701010101010101010101010101120405040304050505050
50505050505050505050505050505050505050505050505050505050505050505050505050505
0505050505030403050505050d01010101010101010701010701010a040505050505050505050
50505050505050505050505050505050505050505050505050505050505050505050505050505
05050505050505050505030d01070101010101010101010101010112040304050505050505050
50505050505050505050505050505050505050505050505050505050505050505050906010107
01010701010101010101010101010101010101010101010101010101010101010100000101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010107040305050305050505050505050
50505050505050505050505050505050505050107010101010101010101010101011204050403
04050505050505050505050505050505050505050505050505050505050505050505050505050
505050505050505050505030403050505050d01010101010101010701010701010a0405050505
05050505050505050505050505050505050505050505050505050505050505050505050505050
5050505050505050505050505050505030d010701010101010101010101010101120403040505
05050505050505050505050505050505050505050505050505050505050505050505050505050
50906010107010107010101010101010101010101010101010101010101010101010101010101
00000101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101070403050503050505
05050505050505050505050505050505050505050505050501070101010101010101010101010
11204050403040505050505050505050505050505050505050505050505050505050505050505
05050505050505050505050505050505050905050505050201010101010101010701010701010
a0405050505050505050505050505050505050505050505050505050505050505050505050505
05050505050505050505050505050505050505050304110101010101010101010101010101011
20403040505050505050505050505050505050505050505050505050505050505050505050505
05050505050509060101070101070101010101010101010101010101010101010101010101010
10101010101000001010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010704030
50503050505050505050505050505050505050505050505050505050505010701010101010101
01010101010112040504030405050505050505050505050505050505050505050505050505050
50505050505050505050505050505050505050505050509050505050502010101010101010107
01010701010a04050505050505050505050505050505050505050505050505050505050505050
50505050505050505050505050505050505050505050505050503041101010101010101010101
01010101011204030405050505050505050505050505050505050505050505050505050505050
50505050505050505050505090601010701010701010101010101010101010101010101010101
01010101010101010101010000010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010704030505030505050505050505050505050505050505050505050505050505050107010
101010101010101010101011204050403041610000026060f002220574d4643010000000000010
00000000000000900000000200000689800006818010005050505050505050505050505050505
05050505050505050505050505050505050505050505050505050505050505050509050505050
50201010101010101010701010701010a04050505050505050505050505050505050505050505
05050505050505050505050505050505050505050505050505050505050505050505050503041
10101010101010101010101010101011204030405050505050505050505050505050505050505
05050505050505050505050505050505050505050505090601010701010701010101010101010
10101010101010101010101010101010101010101010000010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010704030505030505050505050505050505050505050505050505
05050505050505010701010101010101010101010101120405040304050505050505050505050
50505050505050505050505050505050505050505050505050505050505050505050505050505
0905050505050201010101010101010701010701010a040505050505050505050505050505050
50505050505050505050505050505050505050505050505050505050505050505050505050505
05050503041101010101010101010101010101010112040304050505050505050505050505050
50505050505050505050505050505050505050505050505050505050906010107010107010101
01010101010101010101010101010101010101010101010101010100000101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010107040305050305050505050505050505050505050
50505050505050505050505050107010101010101010101010101011204050403040505050505
05050505050505050505050505050505050505050505050505050505050505050505050505050
505050505050905050505050201010101010101010701010701010a0405050505050505050505

05050505050505050505050505050505050505050505050505050505050505050505050505050
50505050505050505030411010101010101010101010101010101120403040505050505050505
05050505050505050505050505050505050505050505050505050505050505050509060101070
10107010101010101010101010101010101010101010101010101010101010101000001010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101070403050503050505050505050505
05050505050505050505050505050505050501070101010101010101010101010112040504030
40505050505050505050505050505050505050505050505050505050505050505050505050505
05050505050505050505050905050505050201010101010101010701010701010a04050505050
50505050505050505050505050505050505050505050505050505050505050505050505050505
05050505050505050505050505050304110101010101010101010101010101011204030405050
50505050505050505050505050505050505050505050505050505050505050505050505050505
09060101070101070101010101010101010101010101010101010101010101010101010101010
00001010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010704030505030505050
50505050505050505050505050505050505050505050505010701010101010101010101010101
12040504030405050505050505050505050505050505050505050505050505050505050505050
5050505050505050505050505050505050905050505050201010101010101010701010701010a
04050505050505050505050505050505050505050505050505050505050505050505050505050
50505050505050505050505050505050505050503041101010101010101010101010101010112
04030405050505050505050505050505050505050505050505050505050505050505050505050
50505050505090601010701010701010101010101010101010101010101010101010101010101
01010101010000010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010107040305
05030505050505050505050505050505050505050505050505050505050107010101010101010
10101010101120405040304050505050505050505050505050505050505050505050505050505
05050505050505050505050505050505050505050505090505050505020101010101010101070
1010701010a040505050505050505050505050505050505050505050505050505050505050505
05050505050505050505050505050505050505050505050505030411010101010101010101010
10101010112040304050505050505050505050505050505050505050505050505050505050505
05050505050505050505050906010107010107010101010101010101010101010101010101010
10101010101010101010100000101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10107040305050305050505050505050505050505050505050505050505050505050501070101
01010101010101010107011204050403050505050505050505050505050505050505050505050
505050305050b0e0505030505050505050505050505050505050503050b030504051101010101
01010101010101010107060405050505050505050505050505050505050505050505050504040
505050405030505050505050505050505050505050505050505050505050403050f01010701010
10101010101010101011204030405050505050505050505050505050505050505050505050505
05050505050505050505050505050505040607010101010101010101010101010101010101010
10101010101010101010101010101010000010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010704030505030505050505050505050505050505050505050505050505050505
05010701010101010101010101010701120405040305050505050505050505050505050505050
50505050505050505090c040504040304040404040404040404040404040404090c05040404051
10101010101010101010101010107060404040404040404040404040404040404040404040404
04040b0b0b03030505050505050505050505050505050505050505050505050505050403050f01
01070101010101010101010101011204030405050505050505050505050505050505050505050
50505050505050505050505050505050505050505040607010101010101010101010101010101
01010101010101010101010101010101010101010000010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010704030505030505050505050505050505050505050505050505050
50505050505010701010101010101010101010701120405040305050505050505050505050505
0505050505050505050505050b0504050b0303030303030303030303030303030303030305040
b0503030b0f01010101010101010101070701010a0503030303030303030303030303030303030
30303030303030505050505050505050505050505050505050505050505050505050505050505
0403050f0101070101010101010101010101011204030405050505050505050505050505050505
05050505050505050505050505050505050505050505050505040607010101010101010101010
10101010101010101010101010101010101010101010101010000010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010704030505030505050505050505050505050505050505
05050505050505050505010701010101010101010101010701120405040305050505050505050
505050505050505050505050505050505050404050b0304090404040404040404040404040404

195

0404050503040404040a010101010101010101070f070101080504040404040404040404040404
04040404040404040404040404040405030505050505050505050505050505050505050505050
5050505050403050f0101070101010101010101010101011204030405050505050505050505050
50505050505050505050505050505050505050505050505050505050505040607010101010101
01010101010101010101010101010101010101010101010101010101010000010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010704030505030505050505050505050505050
50505050505050505050505050505010701010101010101010101010701120405040305050505
05050505050505050505050505050505050505050503030505030305040505050505050505050
505050505050505050b0404040406010101010101010107070707010106040505050505050505
05050505050505050505050505050505030303030303050505050505050505050505050505050
50505050505050505050403050f010107010101010101010101010101120403040505050505050
50505050505050505050505050505050505050505050505050505050505050505050504060701
01010101010101010101010101010101010101010101010101010101010101010101000001010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101070403050503050505050505050
50505050505050505050505050505050505050501070101010101010101010101070112040504
03050505050505050505050505050505050505050505050505050503050909050303040404040
404040404040404040404040909050c04030506010101010101010101010101010710040404040
40404040404040404040404040404040404040404090405050404050305050505050505050505
05050505050505050505050505050403050f010107010101010101010101010101120403040505
05050505050505050505050505050505050505050505050505050505050505050505050505050
50406070101010101010101010101010101010101010101010101010101010101010101010101
00000101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101070403050503050505
05050505050505050505050505050505050505050505050501070101010101010101010101070
11204050403050505050505050505050505050505050505050505050505054604030505030e0e
0303030303030303030303030303030304050b04050b030601010101010101010101010101070
812030303030303030303030303030303030303030303030303050b0e0b040904030505050505
050505050505050505050505050505050505050403050f01010701010101010101010101010112
04030405050505050505050505050505050505050505050505050505050505050505050505050
50505050505040607010101010101010101010101010101010101010101010101010101010101
01010101010000010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010107040305
05030505050505050505050505050505050505050505050505050505050107010101010101010
1010101070112040504030505050505050505050505050505050505050505050505050505060f0
70707070f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f07010d110f0d01010101010101010107010107010107
020f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f07070212040405050505050505050505050505
0505050505050505050505050403050f0101070101010101010101010101011204030405050505
05050505050505050505050505050505050505050505050505050505050505050505050505040
60701010101010101010101010101010101010101010101010101010101010101010101010000
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010704030505030505050505
050505050505050505050505050505050505050505050107010101010101010101010101010e0
40505030405050505050505050505050505050505050505050505050504060701010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101070101011009030405050505050505
05050505050505050505050505050505050403040f070101010101010101010101010101120403
04050505050505050505050505050505050505050505050505050505050505050505050505050
50505050406070101010101010101010101010101010101010101010101010101010101010101
01010100000101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101070403050503
05050505050505050505050505050505050505050505050505050501070101010101010101010
10101010e04050503040505050505050505050505050505050505050505050505050406070101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010107010101100903040505
050505050505050505050505050505050505050505050403040f07010101010101010101010101
01011204030405050505050505050505050505050505050505050505050505050505050505050
50505050505050505040607010101010101010101010101010101010101010101010101010101
01010101010101010000010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010107
04030505030505050505050505050505050505050505050505050505050505050107010101010
101010101010101010e0405050304050505050505050505050505050505050505050505050505
04060701010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010701010110

0903040505050505050505050505050505050505050505050505050403040f0701010101010101
01010101010101120403040505050505050505050505050505050505050505050505050505050
50505050505050505050505050504060701010101010101010101010101010101010101010101
01010101010101010101010101000001010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101070403050503050505050505050505050505050505050505050505050505050505010
7010101010101010101010101010e040505030405050505050505050505050505050505050505
05050505050406070101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
07010101100903040505050505050505050505050505050505050505050505050403040f070101
01010101010101010101010112040304050505050505050505050505050505050505050505050
50505050505050505050505050505050505050406070101010101010101010101010101010101
01010101010101010101010101010101010100000101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010107040305050305050505050505050505050505050505050505050505050
50505050107010101010101010101010101010e04050503040505050505050505050505050505
05050505050505050505040607010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010701010110090304050505050505050505050505050505050505050505050505040
3040f0701010101010101010101010101011204030405050505050505050505050505050505050
50505050505050505050505050505050505050505050505040607010101010101010101010101
01010101010101010101010101010101010101010101010000010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010704030505030505050505050505050505050505050505050
505050505050505050107010101010101010101010101010e0405050304050505050505050505
05050505050505050505050505050504060701010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101070101011009030405050505050505050505050505050505050505050
50505050403040f070101010101010101010101010101120403040505050505050505050505050
50505050505050505050505050505050505050505050505050505050504060701010101010101
01010101010101010101010101010101010101010101010101010101000001010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101070403050503050505050505050505050505050
5050505050505050505050505050107010101010101010101010101010e040505030405050505
05050505050505050505050505050505050505050406070101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010107010101100903040505050505050505050505050505050
505050505050505050403040f07010101010101010101010101010112040304050505050505050
50505050505050505050505050505050505050505050505050505050505050505050406070101
01010101010101010101010101010101010101010101010101010101010101010100000101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010107040305050305050505050505050
50505050505050505050505050505050505050107010101010101010101010101010e04050503
04050505050505050505050505050505050505050505050505040607010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010701010110090304050505050505050505050
5050505050505050505050505050403040f0701010101010101010101010101011204030405050
50505050505050505050505050505050505050505050505050505050505050505050505050505
04060701010101010101010101010101010101010101010101010101010101010101010101010
00001010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010704030505030505050
50505050505050505050505050505050505050505050505010701010101010101010101010101
0e040505030405050505050505050505050505050505050505050505050509100701010101010
1010101010101010101010101010101010f07010f1101010101010101010101010707010101010
1010101010101010101010101010101010101010101010101010f010f2e0505050505050505050
505050505050505050505050505050505050403050f01010701010101010101010101010112040
30405050505050505050505050505050505050505050505050505050505050505050505050505
05050505040607010101010101010101010101010101010101010101010101010101010101010
101010100000101010101010101010101010101010101010101010

0100090000031c1a01000000317d000000001610000026060f002220574d464301000000000001
0045d4000000000a00000000200000b4170100b4370100010000006c0000000000000000000000

197

d2010000ee00000000000000000000006a400000e820000020454d4600000100b43701000c0000
00010000000000000000000000000000000005000020030000c40100001a010000000000000000
000000000000e3e306006e4e0400460000002c00000020000000454d462b014001001c00000010
0000000210c0db01000000600000006000000046000000b83b0000ac3b0000454d462b22400400
0c000000000000001e4009000c00000000000000244001000c0000000000000030400200100000
00040000000000803f214007000c0000000000000008400005043b0000f83a00000210c0db01000
0000000000000000000000000000000000001000000ffd8ffe000104a4649460001020100480048
0000ffed09b850686f746f73686f7020332e30003842494d03ed0000000000100048000000010001
00480000000100013842494d040d000000000004000000783842494d03f3000000000008000000
00000000003842494d040a00000000000100003842494d271000000000000a000100000000000
000013842494d03f5000000000048002f66660001006c66660006000000000001002f6666000100
a1999a0006000000000001003200000001005a00000006000000000001003500000001002d000
000060000000000013842494d03f80000000000700000ffffffffffffffffffffffffffffffffffffffffffff03e80000000
0ffffffffffffffffffffffffffffffffffffffffffff03e800000000ffffffffffffffffffffffffffffffffffffffffffff03e800000000ffffffffffffffffff
ffffffffffffffffffffffffff03e800003842494d040800000000001000000001000002400000024000000000
3842494d0414000000000004000000013842494d040c0000000008280000000100000070000000
390000015000004ad00000080c00180001ffd8ffe000104a46494600010201004800480000ffee000
e41646f626500648000000001ffdb0084000c08080809080c09090c110b0a0b11150f0c0c0f15181
31315131318110c0c0c0c0c0c110c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c
0c010d0b0b0d0e0d100e0e10140e0e0e14140e0e0e0e14110c0c0c0c0c11110c0c0c0c0c0c110c0
c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0cffc0001108003900700301220002
1101031101ffdd00040007ffc4013f00000105010101010101000000000000000300010204050607
08090a0b0100010501010101010100000000000000010002030405060708090a0b10000104010
30204020507060805030c33010002110304211231054151611322718132061491a1b1422324155
2c16233347282d14307259253f0e1f163733516a2b283264493546445c2a3743617d255e265f2b3
84c3d375e3f3462794a485b495c4d4e4f4a5b5c5d5e5f55666768696a6b6c6d6e6f6374757677787
97a7b7c7d7e7f71100020201020404030405060707060535010002110321311204415161712213
0532819114a1b14223c152d1f0332462e1728292435315637334f1250616a2b283072635c2d2449
354a317644555367465e2f2b384c3d375e3f34694a485b495c4d4e4f4a5b5c5d5e5f55666768696a
6b6c6d6e6f62737475767778797a7b7c7ffda000c03010002110311003f00f5549660bfeb0c927131
c08103d671d4edd27d21f47f49fd756b12cea0fdff006baabaa00d9e9bcb8132e0e996b36f0c77f6d2
525c8fe61ff02b3f73bc4fde53e55dd6599feea714f4714075f6bec7b6e6d80d86df4dacaac65b536a
6d5edfd07fc62abd1badf4beb75bf27069b3ec0d76caf32e9ad9711fce7d92b7fe9ecae977e8edb2d
aa8fd2fb2bf53f49e9a536773bc4fde5293e27ef46caa1a287860f4dce96b5e092448fa7f9bee6ac8fb
0f56aea7c755b6eb04104d151710c167e858c9655ea5ce7b7f4bff000756f494e8ee7789fbd3ee77e
f1fbcacda30baa6550dbf1fabdaf6d8c9658dc7a8001c67f997fe7d7b3d3fd27e92afd37aab4c517000
6d73a001b8c498fce746df739252db9dfbc7ef29a5de27ef53f46efdc297a377ee1494c24f894a4f89
527576344b9a40f12a2929b5844c3fe215a5570787fc42b4929fffd0f52f56adc59bdbbc685b224123
771fd5087959946352ebac3b8363dadd49248adbff004dedf7bff475ff0085f625660e1db68bada58fb
4480f224fb9be93bfceaddb104745e920380c4a807b431c36f2d68706b1dfc8f7bbda9290bb1aecc6
3eecf734b19ab30987756c7378fb4bbfed55bf9fe9bdbf66abfd15b655f6a5186b5b0d01a3580d000d
7dc7dadfe51571b898d8b8d6b31aa6d2d7cbdc18009746ddc7fb2c6aa6782929b7951e913047b84
93df455242b6e37546eb2c71756f73454d6c4b46d01df49bfbfb930cc123476823f375f3494e35bd4f
13a3f51c6c7bdb77a1d6b2032a7304535657d27fab6ee6fa7f6ff0063d98ffe1323ed377f86b16abaf7
6e782d1ee30ed5dd8fc7da9ae7e3e455e964d66fac10e2cb031c0969df592d8ff07635b657ff00088f
9466807c4849487ed0e90eda240da35771fe726f5c80d01a3d9ab7577fe490d31e0a4a6d64802a3
0089783a926644fb655656b27f9a3acfb869e1ed5552536b0787fc42b4aae0f0ff92b4929ffd1f55490
1d9d88cb0d4fb032c6b83763a4125db034b1aefa6cfd2b3f48cfd1a83fa9603185ff0068a9d0d2e0d6
bdb2606ff6cbbf752527b84d4f03525a607c9737d5bab64e2e3bff0065619eaf995bc32cc5a9e5a18
09f4dc6ebdacb2a6595bdf5feacf7b2ef4fd4bbf9aa2c5a3eeea78f6bafc861a40f762e2d93e276e465
57b6d7eff6fb29fb3ffa3fd62b498c655536aa9adaeaac432b600d6b478318c86b5252f4559ecc77bf
3fd33916bab73fd1dde983b1ad736af50fa9b18e1f4dff00ceff0039e9d69c4930227b4891fda688dc9
f2df763d3957d8d7d95875669ada412e1b58c2da9a4fb7f48b26feb5bb159663d59143ee73dbbecc
7b1cea9b5fb9f77a2c6bff4cf67f44aecff000df4ff0098b2a7a537703aef4bcfea393818c1b77ece686e
7643585b5b6f738b1b8b5ee3bdef6fa573eefa75d5fa3fd2fa8b4c3daca09cb7d65ad225c1bb5801fa
13bdf66d5814750e978a0d38d8b935b6cda5cf18ef2eb1e47a7bf2adfa76e47a6dadf6e4e43ff49bd1
3eb4bfad5b8c3a774ee8edea955e59f69b2fb99552d682cdccd9eb3326cb360ddec66cafd967eb1fc
d24a764bb12ca8ba90d7c8f639a2413c7b5e3daaa9e5cd1ab98017b7b89fa3b87e6ee59b5fd5ac2f
4c539358ba9af7368aab6db5b6b6b8ee7fe90dd6e45b63ddf9f65bff1753111bf577a457657733080
b298353a6c3b76eac8697edf6a4a7672a7d2d483ee11e5a775555ac904d5f479703a6b3a72ab6d7
fee9fb8a4a6ce0fe7fc95a55708101f208e3910ac92073a24a7ffd2f4c774ee9eebc643b1aa75e1db8
5a58d2f0ef6fb83e377f83628b7a4f4a6bc3db87407b4435c2a60204ee8076fef2b6924a6b0c4c5c5c
7b198b4d7434824b6b686027fb01aa995a577f34ffea9fc8b3d252e6db5ceb373a58e734d63f74068
6bdbfda7fb936e7789fbd24e92962e74449fbd18658000d87411f48ffaf6414824a4ff006bfe41ff0038
ff00af74bed9fc83fe714149252f4dd656f7bdf63ee0f3218e2d01b05cef69ad8c73bdbe9d7eff00f43ff

096a28cc1fb87fce282924a63674cc2ea395465ddeb36dc1dde8fa77dacfe70d6e7eff45f5fa8dfd037
f4767e8bfe0d5ac8e9b879367ab7b0b9f01b3bdc3404bb6fb1cdfdef7ffa4fcffa09f0ff003fe2159494ff
00ffd93842494d04060000000000070005000000010100ffee000e41646f626500644000000001ffd
b008400040303030303040303040604030406070504040507080606070606080a080909090908
0a0a0c0c0c0c0c0a0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c010405050807080f0a0a0f1
40e0e0e14140e0e0e0e14110c0c0c0c0c11110c0c0c0c0c0c110c0c0c0c0c0c0c0c0c0c0c0c0c0c0
c0c0c0c0c0c0c0c0c0c0c0c0c0cffc000110800b3015e03011100021101031101ffdd0004002cffc40
1a20000000701010101010000000000000000040503020601000708090a0b0100020203010101
010100000000000000010002030405060708090a0b10000201030302040206070304020602730
10203110400052112314151061361227181143291a10715b14223c152d1e1331662f0247282f125
43345392a2b26373c235442793a3b33617546474c3d2e2082683090a181984944546a4b456d355
281af2e3f3c4d4e4f465758595a5b5c5d5e5f566768696a6b6c6d6e6f637475767778797a7b7c7d7
e7f738485868788898a8b8c8d8e8f82939495969798999a9b9c9d9e9f92a3a4a5a6a7a8a9aaabac
adaeafa110002020102030505040506040803036d0100021103042112314105511361220671819
132a1b1f014c1d1e1234215526272f1332434438216925325a263b2c20773d235e2448317549308
090a18192636451a2764745537f2a3b3c32829d3e3f38494a4b4c4d4e4f465758595a5b5c5d5e5f5
465666768696a6b6c6d6e6f6475767778797a7b7c7d7e7f738485868788898a8b8c8d8e8f839495
969798999a9b9c9d9e9f92a3a4a5a6a7a8a9aaabacadaeafaffda000c03010002110311003f00f7f6
2aec55d8abb15762aec55d8abb15416aecc9a74eca4ab506e3afda18ab15173700504ce07b31feb
8abbeb3724d4ccf51fe51feb8ab5f58b8ff007ebffc11eff4e2aefac4fb7ef5f6a53e23dba77c55b17372
3a4d20ff00647fae2ad7af3529eabd294fb47a7df8abbeb1715afaaf53df91feb8abbd79ff00dfafd29f6
8f4f0c55c279c7495c77fb47afdf8ab84f382184ae0af43c8edf8e2adb5cdcb905a67623704b1ed8aa
df5a6ff007e3d3afda38ab62e2e16bc65715eb463dbe9c5577d72effdff0027fc19eff4e2aefadddf4f5e
4ff833fd71577d72effdff00278fdb3fd71577d6eeba7af2787db3fd71577d6eebfdff0027fc11feb8abbe
b777d3d793fe0cff005c55c6eee8f59e43fec8ff005c5567ad37fbf1ff00e08ff5c55deb4dfefc7ff8238ab
5ea49d79b57e671577ab29eaedf79c55deacbfcedff000471577ab2f5e6d5f99c55dea49fcede3d4f5
c55bf565ff7e36dfe51c55deacbfefc6ff8238aa22c2597ebb6e3d46a19141dcf4ae2acc715762aec55
d8abb157ffd0f7f62aec55d8abb15762aec55d8abb1540eb15fd1b3d3c074ff5862ac4715762aec55
d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8a
bb15762aec55d8abb1557b1daf6dcff00c589faf1566b8abb15762aec55d8abffd1f7f62aec55d8abb
15762aec55d8abb15406b3ff1cd9fe4bff1218ab12c55d8abb15762aec55d8abb15762aec55d8abb
15762aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb15762aec551163fef6d
bffc645fd78ab34c55d8abb15762aec55fffd2f7f62aec55d8abb15762aec55d8abb15416ab1c92d84
c91297734a28dcecc315631f50beff0096693fe04e2adfe8fbe269f5793fe04e2aefd1f7dff2cf27fc09c
55c74fbf069f5692bfea9c55c34fbe3d2da4ff812315529ade7b7a09e368eb5a7214ad3c3156237de
78834cf34db797353d2eead2cef63ba92db5d95edd6c8fd42113ce5d7d5f5523543fdf3a08f9fc35fb
355509aefe6b792747d05bcc167aada6b76febc36b1c3a65ddb4f24924f7115b9e14928781994b0a
d69ef8ab2abcd534ad3ef6df4dbdbeb7b7bfbb62b696d2ca892cc41e3f02b105b734dbbe2a97bf9cfc
a11db4b78fafe9c2d20985b4f37d6a12893b29708c796cc5416a7f282df6462ab1bcf1e4a4bcbad3df
cc9a58bfb18fd6bdb5fae4065863aaaf29103d5455d46ffccbe38aa5163f9a5e53bdf38dcf934df5b41
782df4fbad22e5eeedda2d51354595a316815c972be9107c7b62a995cfe60f90acade7babcf34e91
6f6d6b2082e2696fadd12394a9708c4becc555980ee01c5590c72473469344c1e29143c6ea6aac8
c2a0823a820d462abb15762aec55d8abb15762aec55d8abb15762aec55d8abb15762aec555ecbfd
ecb7ff8c89d7a75c559ae2aec55d8abb15762afffd3f535b7e74dc6a3a5d8eb9a6795aea6d0f5ab8d
360d075196e22822b91aadd1b55e6082f1b21e3232f175f4dfedf3aa62a964bf9eda94505c6a9fe1b
56d3ed34a8af6e2d05d81742f9f599347921563188cc68f13387d8bafecaf4c5535d73f39dfcb97179
63ab6847ebf6765a8dd3436b769709f58d2f4f5d46481a411854e51b109cbf7955e4d12a3a315552
cbf37af2fb5293cb29e5f0be72e7706db4c37a9f579a0b6b0b5bfe42e4c400765bc8a3e053e17e44b
fa6bcf154ebcb5f98177e66d765b0b4d06e1344864bcb39f593342c915fe9ee91c90bc60d48662e11
d0bd7d32582ab29c559acb208627958330452c5514bb10a2b40a2a49f618aa47fe2db3ad3f47eabf
3fd1b774ff9378abe58ff009c88ff009cc2f34fe4b7e66691a2695e5f8b52f2bdd6951deded9ea70dce
9f7a667b89a326195b60bc517ac4e395715667f93dff00398fe57fcdabb874c83c9de62b0d4643fbc9
adecdb53d3e251d59ee2dc555478b46b8abe86b1d52cf522e2d0c87d3a72f522922eb5e9ea2ad7a
76c5566b3ae695e5eb17d4b59b95b3b08ff00bcb99037a69b56ac40341f3c5546dfcc9a4dd491470
3cccd3902226da7553cba1e463000f738aa6aec1119dabc54126809341ec3154058eb7a76a33b5b
5ac8e6754f54a4914b11e15e351ea2ad77f0c5501e641f15b9f67fe18abc7fcddf97b79e6ed69356b
a4d32de7d362bf8349bf8d66fae4b6fa8584b69f56ba34a7a22497d57552e1f847f02b6f8ab139ff24f
cc30e851e89a2dfe916d0dd689a168faa2cb6d3044baf2edd0b84b9b7f4b8d44e2a245928dcb83f3
3c715655f987f96fa8f9df5db2d62cb541a34d05b7d4e6beb7693eb06de598bdc44d090d0ca8ca41
84bf192de6512a3fece2ac06c7f21bcd765a1c1a341ac797a3d4e08a2b2b9bc86caf12e6eac20b0b
9d3e196794dcbcab2859becc26288aabc7cb848cb8aa2349fc87f33e93a74935beaba3279aadb5a
d1b5dd32f7ea733dab9d1b4f8b4f682e549590a4a23f57e07f8243cbf66b8aa6f73f931abdcdcdddc9
bdd26d9eedbcbaf4b1b47b3484e83733dcca218d2a1049ebf18fe2db8f392acc7154b3cbff90babe9

199

56de57b5beb8f2fddaf972f74d927ba8ec2e12e750b1d262b88a35b979a498190acfb22810afc5d79
fc2abdd9555542200a8a0055028001b0000e98ab78abb15762aec55d8abb15762aec55d8abb157
62aec55d8abb15762a88b1ff7b2dffe322febc559a62aec55d8abb15762afffd4f695afe59790ac5a56
b2d06dadfd6bd8f5471106402f2197d749100344a49fbce29c579fc7c7962ab25fcacfcbf9ed96ce5d
06ddad963921084c9fddcb75f5e6527954833fef77e8fb8c55bd4bf2bbf2fb57bebad4b51f2fda4f7f7c
646bbb82ac1e469edbea92962a454c90feedcfedad395683155d75f963e41bd6692f341b69e46b88
6f4c920667fac5b40b6b1b862d50442ab11a7da8c707e4b8aa3f4ff26795749d6ef3cc7a66936f69a
ddf802f2ee14e0d210aa9c8a8f843155556603930550c76c553dc55d8ab0ef317e53fe5bf9bbcc76b
e6df357962c35af30595b8b3b4bbd42217223815da40a2393947b33b1e5c396fd71564d1c561a3d
888ad608ed2c2d9408e0811638d146c02a28000f962af843fe7203fe738bf333c93e69d67c81e5cf2
95bf97350b076846aba9b9be9e48df78ae6de3511c415d0874e5eb0df7c55bff009c5ef2879f3f37b5
4b5fceafcf5d7b50d7743b29b9f95b43bd726d2e2ea0623eb86dd4a44b1c2dfdd811fc728e5d23f89
57dc9fe20b0f093fe047f5c551367a95bdf332c1caa8013c853ae2abfea519d406a3c8faa2136fc7f67
8960f5f9d462a94f993ed5b7fb3fe18aa458abb15762af32fccfd3b51f2e5fd8fe707962cdef356f2ec2f
6be64d2e0a89352f2eb9e7322815e535ab7fa44151fefc4fdbc55e87a66a761ad69967ace9570b77
a5ea10477765751fd89609d43a30f9838aa769a25f491ac8a138b00cbf1763be2abbf40ea1e09ff00
05fd98abbf40ea1e09ff0005fd98abbf40ea1e09ff0005fd98abbf40ea1e09ff0005fd98abbf40ea1e09f
f0005fd98abbf40dfff0091ff0005fd98abbf40ea1e09ff0005fd98abbf40dfff0091ff0005fd98abbf40dfff
0091ff0005fd98ab7fa02fff00c8ff0082fecc55dfa02fff00c8ff0082fecc55dfa02fff00c8ff0082fecc552f9
e17b795e1929cd0d0d371e38aa9e2aec55d8abb1557b2ff007b2dff00e3227ebc559ae2aec55d8ab
b15762aff00ffd5f7f62aec55d8abb15762aec55d8aad7748d1a491824680b3331a0006e49271578d
ebff00987e64fcc44d43cbff00936225d320e50ea7f98b7b119b4a8181e2c9a6c629f5e9d48239022
d6261f1bc87f778abcabcddff00388ff977e6f3a05cea3777d36b3a75e8bbf306b7792b5d5feb50b00
658ae24660139155e1e980b0a72445df157bd5adadad8db4365630476d656d1ac36d6d0a848a38
a31c551146c00028062aab8aa75e5ca7ad3f8f15fd67154799e5ff1125b733e87d49a4f4ff679faaa2
bf3a62a83f327dab7f937f0c5522c55d8abb15774feddf1579479514fe5779de5fcbcba9e9e4bf34c9
71a9790cbd152caec1f52f749049e956fac5aaff219631fdde2afa284ab6da789d8165861e640ea42
2576fbb1541e8fab5d6ab14372fa7c96b6b3c4b3c5349244e0870180a2312363e18aa26f6eaf6ddd
16d6c1eed5812ce924718523b1e6c09afb62add95cdddc0737566f665480a1de39390f11c09a7d38
aa85d5fea70cef1dbe9525cc4a2ab32cd0a0634ad28ec08c55176735c4f0092e6d9ad6524830b32b
90077aa1237c552f9752d6524658f449248c1215feb102f200ec685abbe2a99092536e253111370e
460e42bca95e3cba75dab8aa5b1ea5acb32ac9a2c91a9342df5880803c766c5530bb967820692da
dcdd4c08a42aca84d4d0eee40d86f8aa12dafb5596758ee34a7b7849a34c6789f88a56bc54d4efb6
2aaf7d71796eb19b3b36bc663470b2247c478fc6457155ba4ea0754b25bb685add8bc91bc2e4315
686468ceebb1dd715639aad7f48dc57f9bf80c55078abb15762aec551163fef6dbff00c645fd78ab34
c55d8abb15762aec55ffd6f7f62aec55d8abb15762aec558ef9c3cf1e5af22e9cba8f98af3d1f5dc416
16512b4f7b7970df660b5b78c34934add9114f89a2ef8abcfd7ca1e6ffcdfe17bf99f149e5ef20b3092
d7f2f20907d66f114d51b59b98988653f68d8c27d2e8b3c937d9c55e9f77676b63a2358d8411dad9
5b44b15bdb40ab1451c71d02aa2a801540140062ac5b15762aec553af2e7f7d3ff00aabface2a9efa
507d63d6e2bf5ae1c037edfa75ad3e55c5524f32579db9de946f976c5523c55d8abb15762ac5ff303
c9567e7ef2ccfa15c4cd677d1c91df68baa47512d8ea76a79db5ca1143547fb43f690b2f7c55957e5
8f9d64f3c79558ebd6834df35692eda579b3487d85bdfc0a3d42b5eb0ccacb340fd1e1910e2acd6de
3821b78a2b60ab6d1a2ac2abf64228a281ed4c55253e636048fab834341f17f662ad7f8924ff00967
1ff00047fa62aeff1249ff2ce3fe08ff4c55dfe2493bdb8ff00823fd3156bfc4927fcb3affc11fe98abbfc47
2ff00cb3afbfc47fa62aeff0011cbff002cebff00047fa62aeff11c9ff2cebff047fa62adff0088e4ff009675ff
00823fd3154d74ebc37d6febb2703c8af106bd31556b7860823f4ed95522e4cd45e9c9d8b31f9924
d715629aaffc746e3fd61fa862a83c55d8abb15762aaf65fef65bffc644ebf318ab35c55d8abb15762a
ec55fffd7f7f62ad23aba87460ca7a303507156f15762aec55817e60f9dbcc3a1dcd9f96bc9ba21d4fc
d5ab2ffa25f6a04dae8565cdbd3592eee4905d8b7d8b6839dc4b4d9517e3c556f93bf2bed744d507
9c7cd57f279abf316488c2fe60bd4555b58a4fb76fa7dbafc16b06ff00653f7927fbba490e2acff1541e
abb69d71feaff1c5587e2aec55d8aa73e5cff7a26ff507ebc551841ff1429a1e3f50615a6d5f597bf8e2
a86f327dbb715da8db77ed8aa478abb15762aec55c287a9a0ee7157e7a7fce5c7e69fe6f68df989a
ce88fa6cfe44d235ad3e1d3e73633971aee9d6cce21b89674a2b1e2ec85538b221f465e54c55f737f
ce2d79d17cf7f90be4bd5d9cbddda58ae937a48a1f5f4c26d493feb0456ff00658ab266fb4df33faf15
6b15762aec55d8abb15762aec55d8ab28d03fde0ff0066dfc31553f2d061a7481bafd72f7eefad494c
5527d57fe3a3715fe61fa862a83c55d8abb15762aaf65b5e5bff00c644e9f3c559ae2aec55d8abb15
762afffd0f7dcbe9889ccc018b89f5011c815a6f51df6c55e09e54d53cdde5bfcbbfcb6b7d2ec6f1a25
8bd1d5f484b792def3d33790c4190cb03a06883b16825f4bd584c8e922b44315647e5dd47cd70fe5
1ea2c2f6f93ce365797f6ad75aa5adcdc48b30d45d501411f3783d365a4b12c8a911f5139f0e38ab1
dd23cedf9857fadd85a6a76fae68afe8437ba7d90d2cea71df4517d6d2f609aed1608636e491340f3
7a12347e93706695d7154a7cb3e76fcc5f32dee8da3dddcf9874bb5bed534ff5ef25d21edae0d85ce
8b7125c09249ecfd388adf448adc4718d9f82334451b1553d72fbccbe72d17416d506bf06b965e6af
2fc3add849a5bc70d85ddbea323cf73673180abc421dbd54324023e0ecc2476c551fe52f397e656a
3a8e87a5f98a7d674e563fe857c9a24b3a5f2d96a77b0dca5e38448edd9ed63b7657915010feb43c
d8f0c55e97f93771e64d43f2fb49d5fcdd797b75e61d423f56fd351812d2586556319410ac3094145

ad197bf2e8715665aa7fc73ee3fd438ab0ec55d8abb154ebcb9fdfcff00ea0fd78aa766ea01782c797
fa498ccc1687ec060a4d7e671553bed3a0bfe1ea96063ad389a75ebfab15427f87acff9e4efdc7f4c5
5aff0eda76924fbc7f4c55dfe1eb3dfe393db71fd3156ff00c3d65fcf27de3fa62aeff0f5957edc94f0a8f
e98ab19fcd2fca7f23fe6bf93e7f2bf9dac56eaca38d9acef8002eece50b41341252aac29b8fb2ff65c3
2ed8abc7ffe7143f2fbcdbf92b77e68fcaed6da4d4fcab76d1798fca3e6389196d6e2de7558668d94d
7d29978c4cd113dd99792fc58abe883a058124fc7bff95fd98aa9dc687651c1248bcf922330ab6d50
2be18ab1bc55d8abb15762aec55d8abb1564fe5fff00783fe7a37f0c551f04f0dca192ddc322bbc6c4
6df1c6c5586fe041c558b6ac29a8dc7cc7fc4462a81610000026060f002220574d46430100000000
0001000000000000000a00000000200000b4f70000b43701002c55d8abb15762aaf67fef5c1ff1913
f58c559ae2aec55d8abb15762afffd1f7f62aec55d8abb15762aec55d8abb1541eaa2ba7dc0e9f062
ac3f15762aec553af2e7f7f3ff00a83f5e2ac33cc5fa42f3f3d7cb7a4c7aa5e58e9b2796356ba96dad2
511a4b3437b62885c156af112b53157a7db5b9b6b64b733493141c7d6998348dee4802a7e8c552
73e5973ff004bbd507cae147fccbc55389e033dbb5b896488b2f1f5a321641ee09077fa315405be8a
d6f3a4e753be9b81afa52caad1b7b30082b8aa2b50b13a840201753da51837ab6ae23936ed520ed
8aa1f4fd18e9f3b4e751bdbbe408f4aea51220ad370028df6c55daae8c356e21afaeed5029468ed65
11ab83d7902a6be18aa2adeca2b4b38ec6dcb24112ac7150fc4a8800001f603155478dcc5c12421
c7473d7e9c55abbff007927ff008c6fff001138ab09c55d8abb15762aec55d8abb1564fe5ff00f783fe7
a37f0c5576876f3db59cb1dc21476baba9003dd249dd94fd208c5523d5b6d467ff587ea18aa0b157
62aec55d8aabd9ffbd7053fdf89d3e631566b8abb15762aec55d8abffd2f7f62aec55d8abb15762aec
55d8abb1542ea409b0b8a75e07db1561b8abb15762a9cf973fde89ffd41faf1556b8f2a69b73e70b0f
3b48f28d5f4fd3eeb4981030101b7bd9a09a42cbc6a583409c4f2e9cb1554d7e79e010186468f916
0789a03d315493ebf7dff002d327fc11c55df5fbeff00969936ff0028e2aefafdf7fcb4c9ff000471577d7
efbfe5a64ff008238abbebf7dff002d327fc11c55df5ebdff0096893fe08e2ad7d7af69fef449ff0004715
65fca4fab2b254c85548ee6a698abaeff00de49ff00e31bff00c44e2ac2715762aec55d8abb15762ae
c5593f97ffde0ff009e8dfc3154658dec77f0bcd1ab2849658486ebca191a327e44aed8ab19d5ff00e
3a53fcc7fc4462a82c55d8abb15762aad69fef5c1ff001913fe2431566d8abb15762aec55d8abffd3f7f
62aec55d8abb15762aec55d8abb15426a7fef05c7fa871561d8abb15762a9cf973fde99bfd41faf154
45c79ab4bb5f365879325f53f4cea56375aa5b512b17d5eca586293935766e53a50537df1559e64ff
008f6ff67f3ed8aa438abb15762aea8c55d51e38abaa3156aa29d71566e8de9db2375a22fea18aba
effde59ffe31bfea38ab091d315762aec55d8abb15762aec5594681fef07fcf46fe18aabe97672d95bc
914c5599e79e6056b4e334acea37ef43be2ac7757ff008e95c7cc7fc4462a82c55d8abb15762aad6
9fef541ff001913fe2431566d8abb15762aec55d8abffd4f7f62aec55d8abb15762aec55d8abb1542e
a3fef05c7fc636fd58ab0dc55d8ab6a8cdf6549f90ae2a8497f303c8de4a17177e6cf32699a340a9bfd
72ee189c907a0466e44fb018ab1ad2fcd9e5ff003c7e73f92fccde57bafafe8779e55f307d4ef7d2961
49426a1a6a968c4c88596a367038b7ec9c55e9be64ff8f6ff0067fc31548715762aec5536d375af2ed
9dbfd5f50d46ca0ba0cdca29e6892400efb86607a62a9f41f52ba852e2dbd29ade501e3963e2e8c3
b104541c554cdc6942f069c65b7faf94f545a724f5b87f370fb54f7a62aa93fd46d617b8b9f4a1b7897
9492c9c51154772c680018aa0a1f327972e641041abd94d2b7d98a3b989d8d3c143138aa6848a6f
d3df155a122a542ad3ad68298ab82447ecaa9f9018ab82c27a2a93de8062a92f984208a0080021c
d4002bd31548315762aec5594681fef01ff8c8dfc31557d2ef1efade49a450ac93cf080b5a52195a30
77f10b8ab1dd5ffe3a571f31ff001118aa0b15762aec55d8aab5a7fbd707fc644ff890c559b62aec55d
8abb15762afffd5f7f62aec55d8abb15762aec55d8abb15436a3fef0dc7fc636fd58ab0cc55a7648d1a
491824680b3bb90aaaa3a924ec00f138abe10ff9cc3f376a7e60b9b7f30fe59799b5abdf2b69518d3
bccd2e94f70be5d86e9e4222e373132c524cdc8a4aabcc2f14f8aa698aa5dff00388dff0038a32fe65
ea56ff989f9996f227926122e74cd326a8935691187c6f5dfeac0f53feee3f08f82b555fa0375e52bf1f
9abe5bf32d85bc51796f49f2fea7a4c810ac7e9cb737363240891003e1e103f4d968062a9ff00993a
5bfcdbe7db1548315762aec55647e47fcb5d5da4d47cc3e5ad16ff005799bf7f777d616b7170e1405
5e4f246cc680002a7a62a82fcc1fcdffca9fc8cf2bc573afdf5b69963047e9e95a0e9e918b99953611d
adaa71f8478fc31afed30c55e67ff38edf99573f9ede63d7ff0038b54d16c740d0ec07f87fcb30fa51c9
a94ca089a79ae2eca0760032224687d24ac9b337c78abe86bf7d0b54b39f4ed4c5b5e69f74862b9
b4b8549619636142ae8e0ab03dc118ab1c97c81f967e5f88eb167e4bd2629a1e2124b0d2ed56e00
91827c2638d5bbef43f6715666e1381f500e0055abd28315430bfd382f113c6129f64114a62ae5bed
392a127897c6840c55a5bed35092b344a4f520818aa53aecf6932446ddd1df912fc295a53bd31549
715762aec5594797ffde0ff009e8dfc31545585925842f0a3170f2cb3127b19a46908fa0b62ac6b57d
b51b8f98ff888c55058abb15762aec555ad3fdeb83fe3227fc4862acdb15762aec55d8abb157fffd6f7
f62aec55d8abb15762aec55d8abb1542ea209b1b80373c0e2af0cf31fe6d69161a8cfe59f2758cfe77
f3c45f0c9a268c55a2b562680dfde37ee2d577ff007637a9fcb19c55293f963e64f3f18af3f39f574bbd
3832ca9e43d0da4b6d0d1948205dcc489af483d439483fe2ac55e857be58f2e6a3e5e93ca57ba4d
acbe5796216efa3fa28967e8a90c1044802850403418ab2af2cc71c339861458e18a1091c68a1511
1480aaa0500000a0031564d515a5773bd31548fcc9f66dfaf56f97418aa418abb15762ab65479229
238e430c8e8ca932852d1b1040701815257afc5b78e2afc9ffcd3f2079fb56f3ede6a097f7be79d335
7d69b43d1fce6d149f56d42f7901e944c6aa383394a47fbaf81bd2f857157e9cfe5c791b4dfcb6f236
87e48d2c0fabe916cb14d28ff00775cbfc73ca7fd79199b156527a62acbaf24d423d379e971473df05

201

8fd28a66291904af2a91d28b52315445dff00bcb3ff00c636fd47157cdde68fce84f2ef9ca7d2a1b682
f3cb5a7685ae6ab773c7327d6ee2ff0043581deda052c1555448559981e520755fee9b92abfca3f9c
373abf9a2eb44d7f47b9d3ed2f67d260d0ae1600d14536ada5fe9016b7532cce0cbb370645e3c78f
3e04e2aca758fccbf29e83aaea9a46a970f04ba259a6a1aa4c557d38609519d0d0b0918305a0644
68f9feecb87f87154a27fcedf255ad9a5fdd26a10d9fd69ec679ded808e19639a082a5f9f09159ae23
29e8b4a59393f1a23d155583f37f41bb92ea1b4d1b5c9e7b796fa08604b01eadd3e90ce97df57532
82fe832716af12ccf1aa0666c5527d2bf3bb4bb7bff30da79c60b8d32cb4dd4b54834ed58db325a49
69a5dac376d1392ecff005911ca792705048e3f6fe1c5535d33f3a3cabacea563a3e9961abdd6a97f
35d411dbc7655e02c5a1134ad27a9c0c4a2e236e68ce38f2fda52b8abdb340dac48ff8b1bf862aa9a
3dccd756d3493b1675b9b9881200a2c733a28dbc00c5520d5ff00e3a33fcc7fc4462a82c55d8abb1
5762aad69fef5c1ff001913fe2431566d8abb15762aec55d8abffd7f7f62aec55d8abb15762aec55d8
ab0cf387e67f95fc9f751e9133cfabf9aee579d9795f4788deead30ecc2043fbb8fc6699a3857f6a4c5
5866a1e5afccff00cc5b1bc9bcff00a837937ca32a1587ca5e5fb8aea93c4c6846a1a9a0f86a3ac567
c46fc5ae1f154d3cb7e57f2e793b498b41f2ae976da3e8f09aa5a59c62342c762ec46eee7f69d8963
dce2a9b62aec5537f2f1ff4c9078c67f58c558a6b4d28ff009c82f27a862213e57d7c95a9a1617ba65
36f6c55997993a5bf8fc5f3ed8aa438abb15762af26f37ead7ff997e61b9fcaaf28de4d67a158d07e61
f99acdb83410b8db4ab49457fd2a61fdfb2ff710ff0096f8abd2f4cd1b49d1b4ab1d0f4ab286d747d32
38e1d3eca341e942900a27006b42bfcdf6abbe2a8ec55c7a62acb6f6179f4b314778d60ccb1d2ed3
8f24a153fb751bfd9fa71544ddd7eab3d3afa6d4a75e87157ceda8fe5d7e49f9afce9a85a8b4d31bce
969a65edb6ad6760208ee52df5ba4725c4c234e427d982484f34f51bf9f15425e7923f2cbf2d7d0d7
7ccde6fb9d3d2dafb4dd484dacea16ca64bad26cdac6d815312bb0f45b89441f15171549678ff2f7f3
9bcd91b43a2799f5ad1eea1ba88f989ad9f4dd16d03db8b7636f7170b0dc3090282121e717ad4999
397c58ab2ed4bf247cb3acc51fe97d635fbebf5b692ca7d4ae75132dd4f0c92c5381233c654717823
2be9aa74a3f3a9c5517ff002a87cba2d6ce28f53d660bfb0bfbfd52d758b6bdfabdfacbac3992f6332c
51a8314cc6ac857634e056831550bffc93f25eaa97106a8f7d7967777ba8ea3716d34eac8d3eaf6a
2ce7f8bd30f411aafa7f1f2471cf972c5535d27f2df4bd2b56d235c6d5f59d4b56d1a1b9b6b7b9d4ef7
eb6d24378b1ac892f34dc010a7109c29c6bf699aaabd63cbf5fa81ff8c8dfc31547db5ac3688d1c0bc
519de560493f1cac5d8efe24e2ac5b57ff8e8dc7cc7fc4462a82c55d8abb15762aad69fef5c1ff1913f
58c559b62aec55d8abb15762afffd0f7f62aec55d8abb15762ab2697d18649b8349e9ab3f08c7276e
22b451dc9ec315795aafe6d7e634a1a42ff0096de489177897d2b8f355d29f16065b7b1520fecfaf70
3c616c559a7943c87e55f22db5c5bf96f4f5b79af5fd7d4afe567b8bebc9e94f56eae662f2ccffe548ed
ed8aa6fab7fc73ae3fd5fe231561f8abb15762a9bf97bfdec93fe319fd6315625ad95ff00a184f27027e
23e56d7e83fe8f74bc559a79908a5bd6a00e649a57614edd715786795bf3c748d723967d5ac9b4a
e7ad5af972cf4d5fac5c6a8b7b7dcda21796ad6f0b5bf244e63fbc522bc59a98aa7bf96ff99da2fe626
9f11b7a5a7984472cd79a39f558c71c3772da738e578e359579c542c95e2c78b62a917e617e6325
c7977eabe47d661b596faec585ff009940661a6d9d276b8bab68f813732aadb4e917a4b22c722349
2512338aa2fca9e65fca2f21f966df43f2feb5045a058dbc97c6f9ccb3fd62b6e97d3dc49701089a768
a54b89684bf070dc42e2a9b0fcd4f24dc5a417161a989a5bda25824905cc0b24f3093eae8ecf10f4fd
73137a25c0f500e49c862a95f94bf3b3c95e64f2ada798aeaf3f47ddbd9d8dd5fe9af0dc9923935089
e44484344ad3afeea502489594fa4ff00cb8aa7da27e64791fccba8c5a4f97f598f52bf9ede3bc8d2d
a399d3eaf3c5ebc6ed27a7c143a6ebc9872dc7da07157a179c758f2e681e4fbdd67cda18f97ace28
a5be091493b7112205a47102ed46e3b28c55f177e7d7fce58fe6b79956ebcaff91be52d76cb45757
86ebcd3269775f5c9d4d549b54f4cfa2a47491c7abe02238abe7dff009c7af257e6b58fe6b698fa869
be6df2fe8fae3be9fafeb7616b736b722dee7e3abdc4b0b70569550c927da0b521862afd02f2cfe4e7
e5af94b50fd33a668315cf988b177d7b5479354d4d99b62c6e6eda4707fd5e38ab3a2c4f535f9e2ad
62aec55d8abb15651e5fff00783fe7a37f0c55af2fbbbd9ce5dcb9179782a493b0b87006fe036c5525
d5ff00e3a33fcc7fc4462a82c55d8abb15762aad69fef5c1ff001913dbb8c559b62aec55d8abb15762
afffd1f6a7e605b4b73e5f955359bfd1d4542b690516fe79d81586285a456018b91f0f1f8fecb7c1cb1
579f41f9b9e65f2cdf597963cd7a6417f77a5af972c3cc5ad5bdcf1925bed7e3950c90db24254849a1
3cc7a8b556aa7f262a9af917ce5ad79afcf9f5d99d60f2dea9e54d375ad2f4f8ae3eb0abf5bbab8a48
e382859380457e2cebb7f938aa5f6df9dfa95fcb268967e5d58fcecf7971656ba05e5d1b66adbdbcd
74a5e692311b2cf1c40dbcb0996293937c5fb993156f5afcf2bbd1def90e8314f2da699a8ea1e8457
eb271b9d26c2defe6b69668a39220f49ca7c0d215e2aedf0cab4551a7f317cc7aac7ae6909a6da5a
5fe8891dbebd2c3a81125abea162f7904b6bea40865e286206a13949ea7a7c845f12ac73ca7f9cfe
638f4af2f796754d262bdf396a761a41d2e7fae7ee2f1efb499af8b5c4b2451fa72b1b59178a87e4ce
a54fdac559ef92fcf5e60f366bda9e9b75a1db69763a3c5662f5febe2eee05d5f59c377e9a08623132
c6646467137c5c432f5d95663ab7fc73ae3fd5fe23156218abb15762a9bf97bfdec93fe319fd63154f
dad6d5ae52f1a08daf22468a3b82a0c8b1b90594352a012aa48ef418aa45e6c8e692044b7984170
e92a43395127a723280afc0d03713bd0f5c55e31a87e535fead731ebf7fe640de764bfd1b506d663d
3e24b73fa004c214faafa847c7f5890bb190ee471a2285c551de45fcb49fc997da55d4bad7e928f49
d2eef4786336c202f1de6a2750e6cc257a1527d3000dc7c58ab1993f211c39bfb2f331b3d712fd355
b79d74e866b0fad70b98a7966b0964685e4b88ae384cc8230c624938f3e44aaa5affe405eebb7f25f
b79c648dcc1716707a9a65bc8f1dbdf699fa36e2256578c2c645658d115163766fb78ab2183f2af56
b1d53f48697e6fb9b1b6bcd3ac2c75ed3e3b38248af6e34ab636b04ead21678014a09228cfc617ed
aef8ab1c3ff0038f9314d266ff15b7e96d02c347d3f46bc6d3619a38ff422dcc41e5b79a578e513477

7223a36cbf0b2f4c559e793fc8d3f94b55d67523abb6a31eb3069f14f0bdac56ecb369b0187d40612
a947e44fa6b1aaa745e98abd7aee5bf834b12e976c9777c163f4ade47f495aa54355a8694524e2a8
c991a48648d4f16752a1bc0914c55203e5fbc3d6e10fcf962ad7f876e7fdfd1fdc71577f872e7fdfd1fd
c71577f872e7fdfc9f71c55dfe1cb9ff007f27dc71577f872e3fdfc9f71c55dfe1cb9ff7f27dc7154df4cb3
7b1b630bb076e45aabd37a78e2a8881a06426dca94e4c1b8529cc31e55a77ad6bef8aa4f7da24f7
5752dc248815c8201ad76007f0c550ff00e1dbaff7ec7f8ff4c55dfe1dbaff007f47f8ff004c55bff0e5cffb
f93ee38abbfc3973fefe4fb8e2aa906817114d1c8664a23063406bf09ae2a99699ac693addb9bbd1a
fedf51b40c50cf69324f18753465e51961507a8c551b8aac9658a08de69dd6285016791c855503a9
24ec31541c3ae68b732c705bea56b34f2c51dc451473c6eed0cc488e4501892ae41e2c366ed8aa5
47ceba405580bc7fa69ad8df8d23eb36bebfd556e05b1979fabe971e6695f53afc3f6b6c55ffd2f7379
8bca7e59f375ac563e68d26d757b382413c305ec4b3224a14a8750c080d4622bef8aa0a2fcbdf22c
0d1bc1e5dd3e3685acde22b6f18e2da657ea8450758391f4bf92bf0e2a8ad1bc9fe54f2edd4f7ba0e
8b65a6dddc82b3cf696f1c323ab3990a96400f1e64b71fb3cb7c550d75f97fe46bdb03a5de79774eb
8d39a58a736b2dac4f1fab01631b052a4029c9b8d3ecf26a7da38aa9df7e5bfe5fea734f3ea1e58d2
ee27ba14b8924b4859a40621010c78ee0c60467c53e1e98aa326f26794ae2fa3d4e7d12ca4d462b
43a6c776f6f1b4cb64415300723970a1238d69b9f1c550b37e5d790ae2d24b09fcb5a6cb65325ac3
25bbdac4d1b47a7022d54a95a5210488bf93f67154db4fd0745d2ae6eaf34cd3edeceeafbd21792d
bc6b1b4a2dd3d38b99502bc10715afd95db155fab7fc73ae3fd5fe23156218abb15762a9bf978ff00a
6483c633fac62a80d47cdda8da7e6a681e478e284e95aae8baa6a93ccc1bd713d85c59c51aa9069
c48b87e551fcb8aa6fe64fb36c3b55bb7cbbe2a9062aec55d8abb15762aec55c7a1c55965f5b5ede
e906db4fbc361792227a576104bc082a7ec9201a814eb8aab5cc7a83bdb1b49e28a34901bb5922
321923a6ea843af035fda3cbe58ab9a2d40ea11ca9711ae9a236592d8c44cad293b3093980001fb
3c3fd962ae822bf5bcb992e2e2392c9f87d560588a3c741f1727e679d4f4f8569ef8aacb787544b6b
84babb8a5ba7690db4a9098d6346fb0190c8dc8af73c9797f938aad306adfa31605bc846ac15435e
980984b82391f47d4a80476f536c5556ea2bf91ed8da5c24289206ba5788c8648a9baa9e6bc09fe6
f8be58ab6f15f1be8e54b845d3d636596d8c5591a42766127314007ecf13f3c55d0457a9757324f70
925a3f0faac2b17078e83e2e4fc8f3a9dc7c2b4c5587f9c3cf317e5e69704be629daf2f352b96b7d3d
eced4d579b2aa8317a8c58a06a935556a6fc3154a74df3e59a79853f2d2ceea45f35cd11d41f5096
d41b60d71fe94c85166a5783538891987871f8b157a2dcc57f2496a6d6e638628e4e576af17a8658
e9f654f35e06bfb5f17cb1573457e7508e64b945d3846564b4315646949d9c4bcc5001fb3c3e9c55d
0c57cb777324f709259bf0faac0b17078e83e2e4fccf3a9dc7c2b4c55a821d452d658ee2ea396ed8c
9e8ceb0f0540d5e00a736e5c7bfc4397b62a80d4b4df305de9905bd8eb7fa3f548f8fad7b1da452a4
847dafdd4a5b8d7b51f6f7c550d2687e66324262f34ce91a93eba1b3b362e08a00a7d31c6877e8d8
abf3d3c81ff3863ff391d2f996f7cc106bc3f2fa37bc9a58af45ec82fa4532b10e22b062371bf17913e5
8abef3fcaff2579c7c93a3be9de70f3d5ef9e6e4f1f4aeefed6ded9a2006e0188348f53de491ce2a99f
9fbcbbab79934386db43bb8ad356b1beb3d4ed3eb41dad667b19d66f4671110de9c817892bf6766
e2d4e25562d1fe56cf65acf94fcc9a345a6693a9f9715ed65b4b389d2d27d3efdde4bc82b4e7f03b0
96d8f45939965a4aca15638ff00923e62fd110e9b1df69dcbf47c9a7cfc925e007e9d4d5a32b45dd7
d3e51b29fdbe27ece2afffd3f7f62aec55d8abb15762aec55d8abb1541eaa2ba75c0ff0027f5118ab0f
c55d8abb1544d95e3d8ca668d433152b46ad2877edf2c5521d434fbfbdfcc7d0bcf8b34290e91a4ea
5a4c96451cbc8da8cd6b2ac81ab4013ead423bf2c5590df6a32dff000f55157d3ad38d7bfcf1541e2a
ec55d8abb15762aec55d8aa6a9afde22aa048e8a001507b7d38ab7fe21bdfe48fee6feb8ab7fe21bc
ff7dc7f71feb8ab5fe21bdfe48fee3fd71577f886f7f923fb8ff5c55dfe21bdfe48fee3fd71577f886fbf923f
b8ff005c55dfe21bdfe48fee6feb8abbfc437bfc91fdc7fae2a87bad4cdf2a25eda5bdc2c6cb246258f9f
17460eac2a7621941fa3155a2fd45e0d40595b0be09e90b911fef3d3ad78f2ad698aa2bfc437dfc91f
dc7fae2aeff0010deff00247f71feb8abbfc437dfc91fdc7fae2aeff10deff247f71feb8ab63cc379de38fe
e6feb8aaf835ebb9668e3648f8bbaa9a035a134f1c559162aec55d8abb15762aff00ffd4f7f62aec55d
8abb15762aec55d8abb15426a9ff1cfb8ebf60f4c558762aec55d8abb15762aec55d8abb15762aec5
5d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb15762aad67fef
5c1ff001913f58c559b62aec55d8abb15762aff00ffd5f7f62aec55d8abb15762aec55d8abb1542ea5
4fa8dc5694e07ed569f862ac3f6f6fc71576dedf8e2aef87dbfe1b1577c3edff0d8ab871ff27fe1b1577
c3edff0d8abbe1f6ff86c55c78fb7e38ab7f0ff0093ff000d8ab5f077e3ff000d8ab6787f93f473c55af87
dbfe1b1571e3edff0d8abbe1ff27fe1b1577c3edff0d8ab6786ff0067fe1b1577c3fe4ffc362aef83fc9ff8
7c55df07f93ff0f8ab870ff27fe1f156ff0077fe4ffc3e2aef83fc9ff87c55afddff0093ff000f8ab63877e3f4f
3c55dfbbafec7fc3e2aefddff0091ff00253156ff0075fe47fc94c55dfbaff23fe4a62ae1e97f914f7f5315
57b3f4feb707d9afa8bd39d7afdd8ab30c55d8abb15762aec55fffd90000084001082400000018000
0000210c0db01000000030000000000000000000000000000001b4000004000000034000000010
0000002000000000000bf000000bf0000af4300003343030000000000008000000080fd7fe943000
0008000000080fdff6e432100000008000000620000000c00000001000000150000000c00000004
000000150000000c000000040000005100000098fa00000000000000000000d2010000ee000000
000000000000000000000000000000005e010000b300000050000000280400007804000020f600
00000000002000cc00d3010000ef000000280000005e010000b300000001000800000000000000
00000000000000000000000100000000000000000000ffffff00fefefe00fdfdfd00f2f2f200efefef00f0f

203

0f000f3f3f300f5f5f500f7f7f700f6f6f600f4f4f400f1f1f100ededed00f8f8f800eeeeee00ececec00fcfcfc
00f9f9f900fafafa00fbfbfb00ebebeb00eaeaea00e9e9e900e4e4e400e0e0e000e2e2e200e3e3e300
e1e1e100dfdfdf00dddddd00dcdcdc00dedede00e5e5e500e6e6e600e8e8e800e7e7e700d9d9d90
0d8d8d800dbdbdb00d7d7d700dadada00a2a2a200b1b1b100aaaaaa00cdcdcd00aeaeae0090909
0005d5d5d00474747001d1d1d006f6f6f00d2d2d2002e2e2e006c6c6c005757570017171700c4c4c
400b3b3b3008787870039393900d6d6d6003a3a3a007b7b7b00d5d5d500d1d1d100c0c0c000cfcf
cf00d0d0d0009292920027272700c3c3c300cccccc00cacaca00d4d4d4005656560089898900606
06000303030002828280059595900a7a7a7008686860081818100adadad006161610067676700
8a8a8a006e6e6e0041414100999999005a5a5a006a6a6a0052525200b4b4b4008b8b8b002a2a2
a002b2b2b00b9b9b900797979005e5e5e0037373700bebebe00a1a1a100040404001b1b1b0064
6464003838380031313100101010009a9a9a00717171005c5c5c00434343002f2f2f00686868005
35353009d9d9d0026262600b5b5b5001c1c1c0036363600656565004c4c4c004e4e4e005050500
07d7d7d00949494000f0f0f008c8c8c00c2c2c2001818180002020200ababab00bcbcbc000e0e0e0
032323200212121004a4a4a000a0a0a009393930084848400a3a3a3003c3c3c00545454000b0b0
b00b8b8b80077777700292929000d0d0d00a6a6a6003f3f3f00c1c1c1008282820040404000c8c8c
80049494900c7c7c700b7b7b7004242420048484800d3d3d300a5a5a500cbcbcb007a7a7a004d4
d4d000c0c0c00b0b0b0003b3b3b009f9f9f00bababa00c5c5c5003d3d3d007676760006060600727
27200acacac00a8a8a800bdbdbd00343434009e9e9e00111111006b6b6b001f1f1f007575750007
070700959595001616160097979700191919001e1e1e00bbbbbb00808080009b9b9b005b5b5b0
01610000026060f002220574d464301000000000001000000000000000a00000000200000b4d70
000b4370100888888008d8d8d00c9c9c900858585008e8e8e00222222000101010083838300737
373007f7f7f007c7c7c00a4a4a4009c9c9c00747474007e7e7e00c6c6c60025252500787878005f5f
5f00444444006d6d6d009898980023232300cecece00b2b2b2002c2c2c00b6b6b6003e3e3e00585
85800a0a0a0008f8f8f000303030013131300a9a9a900bfbfbf00626262004b4b4b0051515100919
19100333333004545450008080800969696000505050009090900242424001515150070707000
2d2d2d00121212003535350066666600afafaf0063636300555555004f4f4f001414140020202000
696969001a1a1a004646460001010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101011317181818181818181818181818181818182222222222222222222222222222222
22222222224242424222222222222222222222222222222222121212118181818242424242424
24242222242424242424161617172323242422222222222222222222222222212121242424242
42424242222222222222222232324242323242224242424242424241717171717171717171717
17171717172323232317171717171717171717171717171717171717171717171717171717242
32317171616151616161717161616151515151515151510101010101010101010101010101010
15151515100d0d0f2423100f0f16150301010101010101010101010101010101010101010101010
10101010101010101010101010101000001010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
1010101010102030302071a1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c191919191919191919191919
19191919191919191c1c1c1c191919191919191919191919191919191a1c1c1c1c1c1c1c1c1c1c1
c1c1c1c1c1c1c1919191919191c1c19191d1d2020191919191919191919191919191d1d1d19191
9191919191919191919191919191a1c19191c1c19191c1c1c1c1c1c1c1c1d1d1d1d1d1d1d1d1d1d
1d1d1d1d1d1d1d1d1d1d19191919191919191919191919191919191919191d1d1d1d1d1d1d1d1
d1d1d19191c1c1c1c1c191919191c1c1d1d1d1d1d1d1d1d1919191919191919191919191919191
920201d1d19191c1c181c191d1d201812010101010101010101010101010101010101010101010
10101010101010101010101010101010000010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
1010101010101010101020c201c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1
c1c1c1c1c191919191c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c19191c1c1c1c
1c1c1c1c1c1c1c191919191d1c1c1c1c1c1c1c1a1c1c1c1c1c1c1c1c1a1a1a1c1c1c1c1c1c1c1c1c1
c1c1c1c1c1c1c1c1c1c1c1c1a1c19191c1c19191c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c
1c1c1c1c1c1c1c1c1c1a1a1c1c1c1c1c1c1c1c1a1a1a1a1a1a1a1a1c1c1c1c1c1c1c1c1b1b1a1a1c
1c1c1c1c1c191919191c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1a1a1
c19191a1c1c1c1a1c2214010101010101010101010101010101010101010101010101010101010
10101010101010101010000010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
101010101071c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c
1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c
1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c
1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c
1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c
1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c191a1d1c1c1c1
a1301010101010101010101010101010101010101010101010101010101010101010101010101
01000001010101010101010101010101010101010101010101010101010101010101010101010
1010101010101010101010101010101010101010101010101010101010101010202030c201c1c1
c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1

c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1
c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1
c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1
c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1
c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c191a1d1c1c1c1a13010101010101010
10101010101010101010101010101010101010101010101010101010101010000010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
1010101010101010101010101010101010101010101010202030c201c1c1c1c1c1c1c1c1c1c1c1c
1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c
1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c
1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c
1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c
1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c
1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c191a1d1c1c1c1a13010101010101010101010101010101010
10101010101010101010101010101010101010101010000010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
101010101010101010101010101010101071c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1
c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1
c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1
c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1
c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1
c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1
c1c1c1c1c1c191a1d1c1c1c1a13010101010101010101010101010101010101010101010101010
10101010101010101010101010000010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
101010101010101071c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c
1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c
1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c
1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c
1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c
1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c191a1d1
c1c1c1a13010101010101010101010101010101010101010101010101010101010101010101010
10101010000010101010101010101010101010101010101010101010101010101010101010101
010101010101010101010101010101010101010101010101010101010101010101010202030c20
1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c
1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c
1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c
1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c
1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c
1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c191a1d1c1c1c1a130101010101
01010101010101010101010101010101010101010101010101010101010101010100000101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
010101010101010101010101010101010101010101010101010202030c201c1c1c1c1c1c1c1c1c
1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c
1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c
1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c
1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c
1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c
1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c191a1d1c1c1c1a130101010101010101010101010101
01010101010101010101010101010101010101010101010100000101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101071c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1
c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1
c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1
c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1
c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1
c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1
c1c1c1c1c1c1c1c1c191a1d1c1c1c1a130101010101010101010101010101010101010101010101
01010101010101010101010101010100000101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010201010301051a1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c191b1b19
211d21191c1c181a1d181a191b1a1c1c1a1a1c191c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c
1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1a1c1c1c1

205

919191c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c
1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1b191b20181918191d1a1a1a1c
1c1b1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1a1a1a1a1a1
a1a1a191d1c201a1c1913010101010101010101010101010101010101010101010101010101010
10101010101010101010000010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
201010301051c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1a1c201a1f1a20191d
1d1e181e201c191d1d191c1a1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c
1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1a1b19191
919191919191c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c
1c1c1c1c1c19191919191919191c1c1c1c1c1c1c1c1e1a211d1d19191a1c1c1c1b1a19191c1c1c1
c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c19191919191919191c191b
1c181c1d0e01010101010101010101010101010101010101010101010101010101010101010101
01010101000001010101010101010101010101010101010101010101010101010101010101010
1010101010101010101010101010101010101010101010101010101010101010102020102010f1
c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c191c1c1c181c221a1d1c21230d181d1
a181a1a1a1c1c1c191c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c
1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c191c19191c1a1a1a1a1a1a1a1a1a1a1a
1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c19191919191919191
a1a1a1a1a1a1a1a1c1c1c1c1c1c1c1c1d1a1d191c1a20191b1c1d2020191c1a1919191919191919
1c1c1c1c1c1c1c1c19191919191919191c1c1c1c1c1c1c1c1c1c1c1a1a1a1b1b1c1d1a1c1819190e
01010101010101010101010101010101010101010101010101010101010101010101010101010
00001010101010101010101010101010101010101010101010101010101010101010101010101
0101010101010101010101010101010101010101010101010101010101020102010d1c1c1c1c1c
1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1a1c1a1a1a191c1e1a19182d8149211c201e1d19
1d191a1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1
c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c191a1c1d191c191919191919191919191c1c1c1c1
c1c1c1c19191919191919191919191919191919191919191919191919191919191919191919191
91919191919191919191919191a191f1a1b1d211c201d1a191c181c19191919191919191919191
91919191919191919191919191919191919191919191d1d19191c1c1c1a1a1d1d1d1a1d1b12010
10101010101010101010101010101010101010101010101010101010101010101010101010000
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010201010110191c1c1c1c1c1
c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1a1c1a1b1a1715172421055e80a70c1a172316171a1
c1b1a1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c
1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1922211b18211b181b1b1b1b1b1b1b1b21212121212
121211818181818181818181818181818181818181818181818181b1b1b1b1b1b1b1b1b1b1b1b
1b1b1b1b18181818181818181a18181b191f2320181d1a1a1a1a19211b1b1b1b1b1b1b1b181818
18181818181b1b1b1b1b1b1b1b18181818181818181818182121212222221b1b1b211b220e010
10101010101010101010101010101010101010101010101010101010101010101010101010000
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010102010201010115191c1c1c1c1c1
c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c191c1a180e010111020148ae2d011401030209231
a1a1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c
1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c0613111211111403111111111111111111111111111
11111141414141414141414141414141414141414141414141414141414141414141411111111
1111111114141414141414140e14110e140102130112010211110902141414141414141414141
41414141414141414141414141414141414141414140303030302020202141414110213130101
01010101010101010101010101010101010101010101010101010101010101010101010101000
00101010101010101010101010101010101010101010101010101010101010101010101010101
010101010101010101010101010101010101010101010101010102010201010116191c1c1c1c1c
1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c191c1d1912010101011349fb4011010102011224
191a1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1
c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c0c0301020101010102020202020202020101010101
01010101010101010101010101010101010101010101010101010101010101010101010202020
20202020201010101010101010102010103011d011301010d1502010201010101010101010101
01010101010101010101010101010101010101010101020201010101010101010101010103010
10101010101010101010101010101010101010101010101010101010101010101010101010100
00010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101020102010101161d1c1c1c1c1
c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c191c1b1c191101030201029be3430103020201122
21e1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c
1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c05020102010203010101010101010101020202020
20202020101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010301011e44c71a04091d96ce20110301010101010101010101

01010101010101010101010101010101010101010101010101010101010102010203010102030
10101010101010101010101010101010101010101010101010101010101010101010101010100
00020102010201140103021401030111010114011401010101011101010113010114010102130
11401011401010301020102010103010301010103020101030111010102010201101d1c1c1c1c1
c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c191813010101020249b54a0201020101011
71c191c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c
1c1c1c1c1c1c1c1c1c1c1c1a1c1c1c1a1a191d15010101010113010111010101010101010101010
11101010101010301011101010102030301011101031301030101110201010301010101010102
0101030102020101010103010101030102e46ff2a2290c63f258c30801020301030201030301010
20102110101020102020103010101030101011101010101020101010201010201010203020101
13010201120101010101020101020103010101020201031101010111030101030103011401000
00101030311110101010101011101011401110101011114010101011401030311010101010301
0101011101020101010301140101031201010301011401130301010102010201101d1c1c1c1c1c
1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c19181401010103014732da14010101021318
201d1b1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1
c1c1c1c1c1c1c1c1c1c1c1a1c1c1c1a1a191d070103021102010101010101011103010303010101
02010102030201010101031101010101020101030101010201140103010301021101010101010
20101010203020202010103031401010198939a7e2601bcd67c2c1203010102010101010111010
101010101010201010101010202010101020102010301110101111101010102010301011102da
2d0e0203020111010102010101021201010101011403010101030301010112010102090101000
01101020101010111140102120101020111011114030101031301010301010301140102020103
0101030101031101010301010201010302030113010101010201010102010201101d1c1c1c1c1c
1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1814010101030198bd2601020101010324
19191a1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1
c1c1c1c1c1c1c1c1c1c1c1a1c1c1c1a1a191d150301011401010203011202010101030101011303
0102110101131101020101030301010101010e011103010301110103010101011402030103010
30301130101020202020101010102011239624c75b20af7edc7a20e01030103010114010301110
314010112010111111111010111140301030102010103020101010103110201011103021401e8
b9655234140201030103010214010101120101030101030103011201021301110311011114000
00101030103110102010201010103030101011401010111010101030111010301140101130101
010301010101010101010103110113010102030e020102030101010102010201101d1c1c1c1c1c
1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c211101010301019dee4101130101010117
1a191a1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1
c1c1c1c1c1c1c1c1c1c1c1a1c1c1c1a1a191d0c030101110113121401111114060e01010e011307
14030114010a121610000026060f002220574d464301000000000001000000000000000a000000
00200000b4b70000b43701000114010101130a11011113010e02010e0e010a0e0101110201121
4010114010309010101130112120102030114031201020c9d130101014a26010b1401011302110
a0101111301011301030111011212010103010111010202130102030101030101020201021101
010301025b00c9c98779588505010303011401030201010102112df6570d1da101433b23a72f0a4
a991f000001020101030102010101030101011401030101130e010101140201130111110101011
1020203011101110111010214030101010101010e010101030101020301010102010201101d1c1
c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1a1c1c1c2211010201010a43ac260201010
102131820191b1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c
1c1c1c1c1c1c1c1c1c1c1c1c1c1c1a1c1c1c1a1a191d0c140101011277a90614010141455e03010
10eb02f3401140110b4cf170112023d812b141101029e57410101010bf76e081301013d5a2b0213
0102866e441403010f8e510501010343c6770103010a66c1aa13010322b1c10b0e0101438caa02
0101092e8c340202010de02a16010314daa94801140101aabc1d02021339e96ea11c21202b75a3
1a59008400c96800c9b7e7ad661301020101030112012760d196980f3a064df201e15001d87c070
00011010113010101130102010103010103010111010113010302110101110113010301010101
0107010101140113010201010e0101010301010112010112010201010102010201101d1c1c1c1c
1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1a1c1c1c22030102010301033d01010101010103
2419191a1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1
c1c1c1c1c1c1c1c1c1c1c1c1a1c1c1c1a1a191d0603010101135e96010113010e18050103130104
1e0c010201141d1c1301010112202301010102172913011301111a1702010201081f1b01011101
16280c0102121129190302010316270d020101011c403a040201012618110101010d3d17011102
0121340601020302271d1102010107261001010201183d0a010743a22fede4518ef7cfe1e4cedc0
0e20000c9c9680000a6e6410101020e11010203674b010204030fd7971302b436135fc001000002
0102121448a143280c23410a25400301431e1701141301071a2013010a4a1a0101202323241d26
1d0102232906011a1f131740030421290e01271c13010203010102010201101d1c1c1c1c1c1c1c1
c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1a1c191c24020102011101010103130103010101151b19
191c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1
c1c1c1c1c1c1c1c1c1a1c1c1c1a1a191d0501030111011817030101010101011101140301140101
03020101010314030103010111130101110114120101010201110111110101011201140101010

207

20111020101010103010101021401011401010a9e0a0112010901020101010101010301140301
0101010301010101031401020202010101030101010301010101011101011101010201027dc900
68e200b99437751e14010103010111110101ce5003446601054e8113115af2014c811100000111
01013d3eea718f43d44e1bd17215caffa4eb4c0103017e7f542f14f8d93792a3799336a56ed996031
ede79c416576b168dde0d8eb7e8511aa0f201140101010102010201101d1c1c1c1c1c1c1c1c1c1c
1c1c1c1c1c1c1c1c1c1c1c1c1c1c1a1c1c1a2402010301020114010301140202010324191d1c1c1
c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1
c1c1c1c1c1c1a1c1c1c1a1a191d060114010301110101110101030203010301020101020101010
10211010111010102010101010101030103011402010201020101111401010301010302010102
0111020e020113010301020111030101094210010101011101030101010314010201030201030
1010103011301011201010201110302011102010101021403011401011102010301f900e2bd318
d3913010201030301031114010301021fca214b700174a8f70b02a45803cdcb0100000114020101
49b4140407ed5914cf71286127013767030113430c52faa2ea190ed26731015be912971e01ace60
14a4ab07d013a64abb77701bf1990e402030103010102010201101d1c1c1c1c1c1c1c1c1c1c1c1c
1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c21110102010113010201020101010314211f201b201b2019
1a1a1b201d1a201d1b1c1e1a1c1c1a1e212722191a1a1819181d1b1c211d1a1e231f211a191a1d
18201b1c1b181f1b1b1a191a1a0501130111030101010201010101030101010101010202020202
02020202020201010101010101010101010101010101010101010101010101010101010101010
10101010101010103011101020101010a48040201010101020301020102010101010101010101
0102020202020202020101010101010101010101010101010101020201020101029330ce0f0301
0201010101010101010101110101010124aa7e061d33a726340298b202f8e70e00001201010109
0186ce0201759f01b471869001014d2c010a0105a5b5495fad01120103b02a908c0a9a1a0661bf0
101012e5d019edf67b3030e1101509614010301010102010201101d1c1c1c1c1c1c1c1c1c1c1c1c
1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c21110102010301021103011101030102231b1c192427191
81e1a1f22181d171c27221a1a191a191c191b1c1e19201f241d1e1c181e18181b1f231e1e1b1d21
1e1f231e1a191825181e211a1f1501010111010b01010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010301020101010204010101110101020201010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010301080101030
11111010101010101010101020101130101130103010a0101020301030143bf010000010102110
101084cdb012f6012bca51b5d24034bf7130301739f2823dddf287af91ab4227cd80f61e501e67513
8566dd8a12ce702d3eabd88f209cbc12011102010102010201101d1c1c1c1c1c1c1c1c1c1c1c1c1c
1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c21110102010201130101020101010203151d1e231d23191c1
d1b241c1c2129182125181b1d18181a1f1e1b241a1a211d22231d1b211d1b1b1d1b211a1a1c192
422271c1d191a1b2219191e200d010101010147490201010202010103010101010101010102020
20202020202010101010101010102020202020202020202020202020202020202020202020202
02020202020202010103010301111111010102020301010101110301011114020202020202020
201010101010101010202020202020202020202020202020202030101020301011401010e0201
020101010101010101010303010102020101010e01010103010267a2110113110000111401031
101011b5d07c69acc3c510185ed5a782c0201142a6fa2b403cf81deb422f8dbe6a34272f9fd3d5fa2
a8b29ef057ea81013aa964f616a050c2861301010102010201101d1c1c1c1c1c1c1c1c1c1c1c1c1c
1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c211101020211110301031411140111131c1e231a18201b222
1191824171d1c201a22211f21191f1718241622221c21180f1c151b192120160f18241b161b19181
e150f2421231b242220211c0c0101030209a28e030101020201020710101015151516161010101
0101010100d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0f0f0f0f0f0f0f0f0d0d0d0d
0d0d0d0d151004010101010101030101020103010113151515101616232323232323232317171
717171717170d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d100f10100d0c110301010101141303010
1010101010101010111030101020214010101020101010d0d010114010000010101024339011ef
027020d161b0103022018df511103010216a10a0109da1b13010734170311072341010f262413d
d7c1bda11030320401201150d410b0109010102010201101d1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c
1c1c1c1c1c1c1c1c1c1c1c1c1c211101020101010101120103010103011e1b1981f530ba28166ea
8affd9cddf270281f1581e8cc3b21519779c120faa553744de837400493b333a3e9a8c44cebb039e7
ebe11c338a2c20211e0f0101010101202302010201010114241d1d1d20202020201d1d1d1d1d1d
1d1d1d1d1d1d1d1d1d1d1d1d1d1d1d1d1d1d1d1d1d1d1d1d1d1d19191919191919191d1d1d1d1
d1d1d1d20191602010101010103010102010301020919191d191d191c1c1c1c1c1c1c1c1919191
9191919191d1d1d1d1d1d1d1d1d1d1d1d1d1d1d1d1d2019201d1d1b0b01010302010101010101
0101010101010101021101010101011112010202010203010301010100001102010120c652887d
1103010112010101010c71cf0101130113010101010113011101010101030103010312010101c7
9c030113010312010103010103010e01010102010201101d1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1
c1c1c1c1c1c1c1c1c1c1c1c1c21110102020202010102010111110e021c23228c589dd57a0c5d76
a97c3c05d4a81b1c0f3099da4f623576645bc7fee13187edc830057580a888fdd891aa85b9db7abb
e835f7e8594017201d0501020114010301010103010101141b19191c1c1a1a1a1b1a1a1a1a1a1a
1a1a1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1
c1c1c1916020201030213010114020201010113191b1c1b191a191919191919191919191919191
919191c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1919181c1a1c1c0a02010302010102030101010101

01010103010101010103130201011103010201010102030201000001020108011b532f15010102
0e0113010203042f3d11030111020314110301011201011413010303020102010103013a5a0114
0114010113140101030101010e010102010201101d1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1
c1c1c1c1c1c1c1c1c1c21110102030101010f010201020101141e2915220d0a2bf01e5d4b01c2f90
3998a23211a4754d66ced83d201a1aaa086f2d6187299049f9a051a5eb0fc432dbdd8fbbc0126d2d
ff604201b19060102010102010201010301010101231c1c1c1c1c1c1c191a1a1a1a1a1a1a1a1a1a
1a1a1a1a1a1a1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c201
70201010101011301030102010102121e1a191a201c1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1c1
c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c181c181a1c120103110201021401010101010101010101
01110301010101140301110101021101010101010100000101010101120114011301010103010
1020101010201140101010201020101030114010101020101020111010e011101021401030114
01020111010113011401010102010201101d1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c
1c1c1c1c1c1c211101020301111e572303020102031422201f1b23044c833dff7c0b30550199e721
1b247738ff2db178d8c43b28f7addc3e1a729312a56f041f1e77c81c44c85a83cd2fc39b5b5b0e162
01e0f030303011201030201030102010106161617242221181b1c1c1c1c1c1c1c1c191919191919
19191c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c19191919191919191c1c1c1c1c1c1c1c1a1d16010101
020111260e110101010101141f1a1d1c201a19191919191919191c1c1c1c1c1c1c1c1c1c1c1c1c1
c1c1c1c1c1c1c1c1c1c1c1c1d1a201b1a1a03010301010301010201010101010101010114020102
11020101030101011403010103020101110000010101010101010101010101010101010101010
10101010101010101010101010101010101010101110103010114010202010301110101010101
01110101010201010101020110191c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c
1c1c21110102020102abb5411101010101131a18211f9b5268e8103c8a0b7378b2d630241a0ff26
5436f348fdd4b6ddb601dfda562e3eba2c47c1c50eb66954c8ef19bf9c6ca00cfe7d957b023190703
0101120153faadcd2f7fe054f7e485dd3a629d444a1b1b1d1a1d1d181c1a1c1c1c19191919191c1c
1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1d15010101010112dd0
50103010201010e1c1c1c191c191c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c
1c1c1c1c1c1a1b191c1c19190e0101010101010101010101010101010101010101010101010101
01010101010101010101010100000101010101010101010101010101010101010101010101010
1010101010101010101010101010101010101011101119d7e1701020101030301130201111101
0101010101020110191c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c211101
020201019df14a030113140102211c204abe38c24a1c4ed362fd89f6317710192144c6a4ca24547
ed5b41cc3adf298666490ac62b4aff92a6291a535f80d66a4f96fa3636fdfb8191b051103020114b6f
e8768c984e20000e2c90068eff46d711c1c1a21191d1a1d1c191c1c1c1c1c1c1c1c1c1c1c1c1c1c1
c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1d1501010101010abf0f0202010101
010e1c1c1c191c191c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1
d1c1d1c1c1c1a14010101010101010101010101010101010101010101010101010101010101010
10101010101010000010101010101010101010101010101010101010101010101010101010101
01010101010101010101011102011401032d3532c30b0201030114010102010101010101010102
0110191c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c2111010202010149bd
2602010103030e191d2118df7396e50fe45216df7d2321061e1b2021222606754fdd05221724252
123240f164a15181f250c853834281b1a10251f232316231c1a15290601011202012544418fc9000
084ee00000084c900005c10211a1c1d1c19201b1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1
c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1d1501010101011347040101010102010e1c1c1
c191c191c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1b191c1c
191c12010101010101010101010101010101010101010101010101010101010101010101010101
01010000010101010101010101010101010101010101010101010101010101010101010101010
1010101010101030301021101110b858878e9090103010102021103010301010101020110191c1
c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c21110102020101a3fe2901010102
0103221a22245e6b355b40062121ff300c221919191c1d1b1922486cf34a162021191b2719181c2
11d24212222c4894304201d2122191a191a1f171920190f0301010101030101085a7800840000c9
00008400b9aa17191d1921241c20211a1a1a1c1c1c19191c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c
1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1d1501010101010a92060111010201010e1c1c1c191c191c
1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1a18191a1c19190e010
10101010101010101010101010101010101010101010101010101010101010101010101010000
01010101010101010101010101010101010101010101010101010101010101010101010101010
10103010202010101011102249391796202030203010101010201010101020110191c1c1c1c1c1
c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c21110102010101c5bd25010102020101231
d201d231a27491e1d20184134231f1820201b181d1b1d1042b973172425181c1e1b1d201a1a1f20
1a1940aa1d191a1a1f1e1b1d1b20211c1a21190711010301010113011101477100e2c90000c9e2
006d86040c151a201d1c1a1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1
c1c1c1c1c1c1c1c1c1c1c1c1c1d15010101010113db070114010301010e1c1c1c191c191c1c1c1c1
c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1d1a1d1c1c1c1a130101010101
01010101010101010101010101010101010101010101010101010101010101010100000101010

209

10101010101010101010101010101010101010101010101010101010101010101010101010101
010101010111010101021bafb77dd20b01031401011301010101020110191c1c1c1c1c1c1c1c1c1
c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c211101020101029b3826020101010114181e1d1a20
221b181c211819241a1e22191c231c1d1d20181c046e005d2015271b1d18201c1d1d181a202119
221b1b1c201c1b1b1829211e1f18251d0c03010113010e0111010311072f890000ee0000ae00389
0bab2240a161c181c19191c1c1c1a1a1a1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1
c1c1c1c1c1c1c1c1c1c1d1501010101011277040111010201010e1c1c1c191c191c1c1c1c1c1c1c1
c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c191a1d1c1c1c1c12010101010101010
10101010101010101010101010101010101010101010101010101010101010000010101010101
01010101010101010101010101010101010101010101010101010101010101010101011101010
10201010101110302011c7a6d4d9801010e010101010101020110191c1c1c1c1c1c1c1c1c1c1c1c
1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c211101020101019b3828020103010103231a1c1a21191c1
a19191c1a1e181b1e1e24271c211d231a1e200c53006a1a101f181c1c1a1b1a1b20201a1d1a191
a291b191b1c1e221e1a1b1c1d1b0802130101019d41020101010e011feb0000ec00ee53584e689
53c53921f06231b1b1b1b1a1a1a1a1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c
1c1c1c1c1c1c1c1d15010101010104e50f0303030101010e1c1c1c191c191c1c1c1c1c1c1c1c1c1c
1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1a18191a1c19190e01010101010101010101
01010101010101010101010101010101010101010101010101010101000001010101010101010
10101010101010101010101010101010101010101010101010101010101010101010102010101
0103020103011101012490e2361501140301010101020110191c1c1c1c1c1c1c1c1c1c1c1c1c1c1
c1c1c1c1c1c1c1c1c1c1c1c1c1c21110102010101c53828030101010114221c19191a191c181d18
1c191a1c1d1a1b1c1e211c1d1d1d221a1a06d068ca052220191b1b1d201b191b201819211e1819
1b1c19181f1819201a211e0d010302020151b00101130101030118e6e200c9834a091a39b67884
c94ee9a1242422181b1a1c191c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c
1c1c1c1c1c1d150101010101011e120101030103010e1c1c1c191c191c1c1c1c1c1c1c1c1c1c1c1c
1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c191a1d1c1c1c1a13010101010101010101010101
01010101010101010101010101010101010101010101010101010000010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
010101010101010101923e83520601020201011301151c191e2118201c191a1c1c1c1c1c1c1c1c
1c1c1c1c1c1c1c1c1c1c1c1918130101011101da784001010101011318191c1a1c1c1c1c1c1c1c1
c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1a30b98c15191c191a271b181e1c21191c1c1c1c1c1c1c1
c1c1c1c1a1c1c19190c01020103011f1c010101110201011023f7ac00f8171918170ddaaa57a8c99
1f56f981722151a1c1b1b1a1a1a181d1c191a1c1b1a24201c1a1e1b1b1c1c201c181d1a1c1b1f211
a1a1d1601010101010101020301010302010e191c1c1c1a191c1c1c1c1c1c1c1c1c1c1c1c1c1c1c
1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1b1d1c1c1c1c12010101010101010101010101010101
01010101010101010101010101010101010101010101010000010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
0101010101111411ddf369570c01140201090f1e221820271b1b271b1c1c1c1c1c1c1c1c1c1c1c1c
1c1c1c1c1c1c1c1918140101020301493228020302010111241c19191c1c1c1c1c1c1c1c1c1c1c1
c1c1c1c1c1c1c1c1c1c1c1c1c16254b002a07191e1c1a18191d1a19191c1c1c1c1c1c1c1c1c1c1c1
a1c1c191906010301010111010101010201010324190fa18d98211a19201c2415081daac6eb91ef
be702c201a1d1b27201b20181c191c1a1920291b191d211f1e1c1d191b1d181c1e181d171e1c1d1
601010102010301110101010101010e191c1c1c1a191c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1
c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1b1d1c1c1c1c12010101010101010101010101010101010101
01010101010101010101010101010101010101010000010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01140101030107bc32462f110101010f201a191c191b1b1d1a1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c
1c1c1c1c1c18140101010
Note that the threads illustrated in Figure 6.2 are not the only threads that will be created. At the
square marked ** two new threads will be created: one by the first searcher thread that will explore to
the left, and one by the fourth searcher that will explore upwards. These, in turn, will create other
threads but they all will eventually terminate as they detect cycles in their search paths or they hit
dead ends.
The solution consists of several objects. Here, attention is focused on the objects that are needed to
represents the maze and the searcher threads.
The first object represents the maze itself. It is responsible for reading the maze description from a file
and maintaining the program's internal representation of the maze and its user interface. The maze is
modeled as a two-dimensional array. Each position in the maze is represented by the class
MazePosition, which encapsulates a row and column number as illustrated below:
public
class
MazePosition
{
public
int
getRow();
public
int
getColumn();

public
public
public

void
void
boolean

setRow(int
setColumn(int
equals(MazePosition

R);
C);
mp);

The SearchableMaze class, shown below, extends the Maze class and provides methods to
navigate the maze. The next method returns the coordinates of all the valid maze positions that are
adjacent
to
the
given
position.
public
class
SearchableMaze
{
public
MazePosition
entrance();
public
boolean
atExit(MazePosition
mp);
public
MazePosition[]
next(MazePosition
from);
}
A path through the maze is called a trail and is represented by the Trail class.
public
class
Trail
{
public
Trail
clone();
public
boolean
visited(MazePosition
mp);
public
MazePosition
[]
mark(MazePosition
mp);
}
The visited method takes a MazePosition and returns true if that position is already present in
the trail, thereby indicating that the position has already been visited. The mark method adds a maze
position to the trail and returns all the valid moves from that position.
A complete trail through the maze will start at the maze entrance, end at the maze exit and have no
cycles in it. When a searcher thread finds a complete trail, it will invoke the method trailFound in
the
Tracker
class.
public
class
Tracker
{
public
synchronized
Trail
giveTrail(int
n);
public
synchronized
void
newSearcher();
public
synchronized
int
numberOfSolutions();
public
synchronized
void
searcherFinished();
public
synchronized
void
trailFound(Trail
t);
public
synchronized
int
waitAllFinished();
}
The Tracker class keeps track of all the complete trails through the maze. It also keeps track of the
number of active searcher threads. The newSearcher method is called by a searcher thread when it
is created; the searcherFinished is called just before the searcher terminates, and the
waitAllFinished method is called by the main program. The other methods are used by the main
program to control the user interface.
Finally,
public

the

Searcher
class
static

class
public
void

is
presented
Searcher
void
main(String[]

below:
{
run();
args);

Class relationships
The relationships between the above classes are illustrated in Figure 6.3. Each searcher thread
follows only a single trail; however, for every searchable maze there are many searcher threads
(indicated by the * in the figure).
010009000003a630010000001b8c000000001610000026060f002220574d464301000000000001
0052fe000000000b00000000200000c8260100c8460100010000006c0000000000000000000000
d20100000b01000000000000000000006a400000e624000020454d4600000100c84601000c0000
00010000000000000000000000000000000005000020030000c40100001a010000000000000000
000000000000e3e306006e4e0400460000002c00000020000000454d462b014001001c00000010
0000000210c0db01000000600000006000000046000000f82c0000ec2c0000454d462b22400400
0c000000000000001e4009000c00000000000000244001000c0000000000000030400200100000
00040000000000803f214007000c0000000000000008400005442c0000382c00000210c0db0100
00000000000000000000000000000000000001000000ffd8ffe000104a464946000102010048004

211

80000ffed07d650686f746f73686f7020332e30003842494d03ed000000000010004800000001000
100480000000100013842494d040d000000000004000000783842494d03f300000000000800000
000000000003842494d040a00000000000100003842494d271000000000000a00010000000000
0000013842494d03f5000000000048002f66660001006c66660006000000000001002f666600010
0a1999a0006000000000001003200000001005a00000006000000000001003500000001002d00
0000060000000000013842494d03f80000000000700000ffffffffffffffffffffffffffffffffffffffffffff03e8000000
00ffffffffffffffffffffffffffffffffffffffffffff03e800000000ffffffffffffffffffffffffffffffffffffffffffff03e800000000ffffffffffffffff
ffffffffffffffffffffffffffff03e800003842494d04080000000000100000000100000240000002400000000
03842494d0414000000000004000000023842494d040c000000000646000000010000007000000
04000000150000054000000062a00180001ffd8ffe000104a46494600010201004800480000ffee0
00e41646f626500648000000001ffdb0084000c08080809080c09090c110b0a0b11150f0c0c0f151
8131315131318110c0c0c0c0c0c110c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c
0c0c010d0b0b0d0e0d100e0e10140e0e0e14140e0e0e0e14110c0c0c0c0c11110c0c0c0c0c0c110
c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0cffc00011080040007003012200
021101031101ffdd00040007ffc4013f000001050101010101010000000000000003000102040506
0708090a0b0100010501010101010100000000000000010002030405060708090a0b100001040
1030204020507060805030c33010002110304211231054151611322718132061491a1b14223241
552c16233347282d14307259253f0e1f163733516a2b283264493546445c2a3743617d255e265f2
b384c3d375e3f3462794a485b495c4d4e4f4a5b5c5d5e5f55666768696a6b6c6d6e6f63747576777
8797a7b7c7d7e7f711000202010204040304050607070605350100021103213112044151617122
130532819114a1b14223c152d1f0332462e1728292435315637334f1250616a2b283072635c2d24
49354a317644555367465e2f2b384c3d375e3f34694a485b495c4d4e4f4a5b5c5d5e5f5566676869
6a6b6c6d6e6f62737475767778797a7b7c7ffda000c03010002110311003f00f5549249252924924
94a55f271eab9ec36d0dbdad0e80e0d7413b78f53e0ac24929c9ea3d3f1fecc5f5535e21acee73c53
4d9221cdf4f63ff96e6ed44c7e9b4b379bb1a8b838cb36535b001f37d9bd5bcc0ff477b1db4d5ef822
418061ae82cfcef729e3d469a595121db040206d103e8b76ff0025a9291e3e3554d8e75343686968
0edad6b7710749f4ff007558492494a4924925292492494fffd0f554924925292492494a40cac87d0
d2e6b0d9b5a5ce6b0173a0168f656dfa7f491d41f5b1e417092383f1494d0bb3fd4aadac5774005ae
3f67bbbb774b1ae635d6ff00d6ff003d23d604564e3e401678e3dbece3f9d86fb7e92b395531b8d6b
9b21c18482090469f153663800ef3b9c5ce20891a13ed6f3f9ad4948999ae7b439ad30e3a6eaec69
86b836dfd1b99bdbecfe6bf7d1bed15f83ffedb7ffe4149953184b9a353a13c9fc54d25213954889dc
27412c7093e025aabdbd44d2da9f654f736e6ef06aadf6068f6ff003bb1bedfa7edf6fbd5c7318e8dcd
0eda773644c1fde0a031a96e8d05a3b00e23f21494d41d5ab3bbf4576d68690ff42d876e9f6b46cf5
3f37f398895e7faad7bab6bbd8cf5087d765608d74df6336ee536d3bad7fbdc1ac7ea3738c8d8df6f3
ecf71dfed4438d5384383883c82e711aff69253ffd1f4f6e5e3b80735fb9ae00b4804820ead2d3fca4ff
68a81824cf841fee42ab16daf0d988e735ec6562a2e820901be99773eddcabb3a356cabd2aecb59
5ee2fda2fb23525ee673fcd7bbf9b494dc395400497c0024920880111ef63185ef706b1a24b898007
9942b1991656fac960ded2d983a488f15018219b4d6fdcf680ddd70f54903f96e22dffc1125365ae6b
9a1cd21cd709046a08299d631901c40278f92051835d545756fb0fa6d6b243de2768db3b77a7343
d8f0fa4c98208b1ce77307db25de09298e65bba87b6b01e1cd70719323daedbb1bb4fa8edfb5bb51
cdd50e5c151cdc6bac63ee792c736b7366ab5f569f4bf301f77f2d4a8c5b1b73efacbf717416d9659b
65b35ee153bdbee6fe77e7fe8d25369d934346e758d025a249eee3e9b3fce79da8aab9c775afdd91
10d10d0c73877dd2ed5bfbbed52fb2d7fbd67fdb967fe4d252643f5aa890f047628576238b00a6c7b
1db984973deef68734dacfa7f9f56f637f71263736b606345643006825ce981a6bed724a5516fbad7
583d325f21a75d035a3748f6fba117d7a7bbc2a43a7dcdb3d46800971b0b3d6b366e2ef5777a7b3f
7d1dff00b45cd2dd94ea089deeefff005b494fffd2f554924925292492494a49240c875bbd8d65ada8
10e24b86e98dbfca67ef24a5f33fa25dfd477e44659198ecc73c5447da2b896db53592d7383ea7cb
6db9bf46b77f2fe9a262e4750bc4ddfaa10d698b1ac20b8cefad9e9deefe6bf79253a692af8eebbd42
db2e6dc36c8daddb1aff005deac24a5249249294924924a7ffd93842494d04060000000000070005
000000010100ffee000e41646f626500644000000001ffdb00840004030303030304030304060403
0406070504040507080606070606080a0809090909080a0a0c0c0c0c0c0a0c0c0c0c0c0c0c0c0c0
c0c0c0c0c0c0c0c0c0c0c0c010405050807080f0a0a0f140e0e0e14140e0e0e0e14110c0c0c0c0c1
1110c0c0c0c0c0c110c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0cffc000110
800c9015e03011100021101031101ffdd0004002cffc401a20000000701010101010000000000000
000040503020601000708090a0b01000202030101010101000000000000000100020304050607
08090a0b100002010303020402060703040206027301020311040005211231415106136122718
1143291a10715b14223c152d1e1331662f0247282f12543345392a2b26373c235442793a3b33617
546474c3d2e2082683090a181984944546a4b456d355281af2e3f3c4d4e4f465758595a5b5c5d5e
5f566768696a6b6c6d6e6f637475767778797a7b7c7d7e7f738485868788898a8b8c8d8e8f829394
95969798999a9b9c9d9e9f92a3a4a5a6a7a8a9aaabacadaeafa1100020201020305050405060408
03036d0100021103042112314105511361220671819132a1b1f014c1d1e1234215526272f133243
4438216925325a263b2c20773d235e2448317549308090a18192636451a2764745537f2a3b3c32
829d3e3f38494a4b4c4d4e4f465758595a5b5c5d5e5f5465666768696a6b6c6d6e6f647576777879
7a7b7c7d7e7f738485868788898a8b8c8d8e8f839495969798999a9b9c9d9e9f92a3a4a5a6a7a8a
9aaabacadaeafaffda000c03010002110311003f00f7f62aec55d8abb15762aec55d8abb15762aec5

5d8abb15762aec55d8abb15762ac121f25f943cc5e60f335e6bfa0d86a9742f61884f7b6d15c388d6
c2d885ac8a4f1153b7be2a8fff00955df96c1428f28e8e147402c2dc0fc13155bff2ab3f2d694ff08e91
4a71ff007860e9e1f63db1563fe71f2e7e4d791f484d67cc5e56d362d2a4b9b6b19268f4f8a458daf2
55851e401768d4b0e6ff00b0bf11f86b8aa1bf42fe469f366a3e4a93cb3a547aa6916506a57cf3d842
9691c37923451afacea14b923ec8ec47f362a9b3f917f25cca6d24d17cbe66f4ccc6068ed797a488a
e5f89fd90acad5fe5607be2a8db6fcb1fcadb9b78ee2cfcb3a44d6b2aabc33436f0b46c847c2559450
8a1da98aaa7fcaa9fcb5dbfe755d336e9fe8b1ff4c55bff009555f96dff0052ae99ff0048d1ff004c5543
44f2cf97fcb3e75783cbda6dbe990dce965ee23b58c44aec97002960b404804ef8ab36c55d8abb15
762aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55fffd0f7f62aec55d8abb15762ae
3b62aec55d8abb15762aec55d8abb15762aec55d8abb15639a1dc4116b3e675925446fd2111a33
007fde0b5f138aa79f5cb4ff009688ff00e0d7fae2adfd72d3fdff001ffc1aff005c5520f36e87a679b74e
874abdb9b73a7fd6125bd8250b2acf000caf111c969cd588e5bd3f971579f58fe4c8d325b69ed7cdef
713dbe99a7e9535dea30adddcdc9d3ef9af5a69e4f590979797a754e0c8154a3e2aa27f250cba745
6371e6c8a59acecb4ab0d32e7ea683eaf0e8cf14ea813d73c92e668237bbab729511220c8a8a715
7a9f97acac340d1ad348865b444b642a12d234b5b70598b1f4e10cdc16a4d07263e2c4e2a9a7d6a
d7fdfd1ffc10feb8abbeb56dfefe8ffe087f5c552112c7279e93d3757a692f5e241ff8f95f0c5591e2aec
55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb15762afffd1f7f62aec55d8abb15
762aec55d8abb15762aec55d8abb15762aec55d8abb15762a97dd685a25f4e6e6f74cb4b9b96a06
9a682391cd050559949d862aa3fe16f2cffd596c3fe9161ff9a7156c7967cb63a68f63ff0048d0ff00cd
38abbfc31e5ae9fa1ac687fe5da1ff009a71579dea3a1e8ede741e644d32dff42e8f710f9767b55b68
1addc6a211e69b8f1ea933daa73fd858e61fb4d8abd0bfc29e563d744d3fc3fde587fe68c5568f28f9
501e4342d3c374a8b482b4ff0080c55bff00097956b5fd05a7d7c7ea907fcd18ab67cabe576fb5a25
81edbdac276ad7f931544d8e8da3e992492e9ba7db59cb280b2bdbc31c4cc06e0314504815c551d
8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abfffd2f7f62aec55d8
abb15762aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb15416afa941a369
57bab5cff716504970e2b4a88d4b5013dcd283154874cf2b1baf23bf97f5f082fb5582693587b7aa01
797c5a599a33d47191cf06fb5f0ae2a997957529f54d06cee6f283518d5adb50504371bbb5630ce2
a3fe2c46c5539c55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8a
bb15762aec55fffd3f7f62aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb157
62aec55d8abb15497cd3a3df6bba50b0d3ef63b19c5c5bdc192683eb313adb4cb318dd03c64abf0e
2d461b62ac69ef7f3222f32db797bf49e88e27b1b8bf37074dbb047a1343170e3f5fa6fead6b5fd9e9
8aa79e55d135cd1e5d5e5d66fad2ec6a5742f2186c6d1ece3859a248e4079cf316e6c9ea56a3e266
c5591e2aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb1
5762aff00ffd4f7f62aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb15762aec
55d8abb15762ac56e08ff9595a7ad3e21a1df1ad77a1bbb4edf462acab15762aec55d8abb15762ae
c55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb15762afffd5f7f62aec55d8abb1
5762aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb15762ac4a727fe567d8
8de9fa06f3c29fef65afd38ab2dc55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb
15762aec55d8abb15762aec55d8abfffd6f7f62aec55d8abb15762aec55d8abb15762aec55d8abb1
5762aec55d8abb15762a92cfe66b186f2e6c52def2e66b3658ee1adad269a3591d1650bc9548278
ba9dbc71559fe2ab6a13fa3754db6a7d42e3fe69c55dfe29b6ffab76a7ff48171ff003462aeff0014db7
fd5bb53ff00a40b8ff9a31563d2ead2379eed3581a4ea9fa3a3d22e6d249bea33d04f25cdbc8a9c78f
2dd518d694f7c5590ff008a6dbfeadda9ff00d205c7fcd18abbfc536dff0056ed4ffe902e3fe68c55c3cd
36dbff00b8ed4ffe902e3fe68c55bff14db7fd5bf53ffa40b8ff009a31557d3fcc363a8debe9f1c5736f78
917afe95d5bcb6e5a2e5c39299140343d698aa16d35dba9fce5aaf96a486316b63a7d86a10dc296
32335ecd77132b022802fd58114fe6c553fc55d8abb15762aec55d8aa5b7fae5969d731d94a93cd7
7246d3ac36d04b3b7a68c14b1f4d4d376037c5540f992d87fc796a3ff0048373ff3462ad8f31db100f
d4b5015ec6c6e3fe68c5577f882daa47d4eff006ff972b8a7fc431577f882dab4faa5ff00fd215c7fcd18
ab5fe22b5ad3ea77ff00f48373ff003462ad7f88ed76ff0043d437ff00971b9ffaa78ab47ccb683fe3cb5
1fa2c2e8ffccbc5569f33d98ff8f2d4bfee1f77ff0054f155193ce5a4453c36d3437d15cdc72fab42f617
6af298c02c1018be2207c440fd9a9ed8abffd7f7f62aec55d8abb15762aec55d8abb15762aec55d8a
bb15762aec55d8abb15762a90681ff1d7f33ffdb422ff00a80b5c55e5761f999a979735ad42cfcc378
7529e7753a76a715cc27407b6bdbe78a09256e21ece586ab6f2c52129237168dd98bf1551ba87e7
b3585cde589d32ce6beb3b3f5e448b510f12dd46b62cf0b49e88aed7a191915d59139f2f8f8a2aafa
c7e63eafa8d904d2a4b6d3f53b1f3158e8d796a673f58f523d5e0b2984b13444adbdc46ecf13fdb31
346c3edfc0ab18f37fe7d5ecfe50b9fd0d14561ad5de9777343716f7292c9697d6d6b35ca82b24639
2bfa078fc2df0b726e3f67154e759fcdcd4b43f30db5c6a51c6b651437b633dbdbdca3e9d24bfa4b49
b686f8cee8acb144b7afeb13b2719177e3cb15593fe63f9b34ff3d594d205bad0b5bd36cb4e3a3593
25fc163afde4976d6d726e2255636d30b73148ff00615bd36dbe2c552efcbdfce7beb7f2cf94ecfcc77
d6faceb3aab5d26a5abdc5c476a23227d44452c8ab18448b8d9715e3c8ffc07ef15659a27e719d62
ef4cb45d3ade16d5116f6d9e6bd5884ba6cb75f568e5883a02f2b271b8f407c4b1490863ce4d9564
5aceb76ba2f9deddee60bc9fd6d2a40a2c6cee2f5871b84fb42de390a8df62dd7155917993cb50eaf
73aec7a56b6354bb821b4b89ff00446aa79416cd23c69c4c1c47169643b0fda38aa3ff00c75a57fd5

213

bf59ffb836a5dff00e8df1577f8eb4aff00ab7eb3ff00706d4bfec9f1577f8ef4affab7eb3ff706d4bfec9f1
56ffc73a5540fa8eb1bff00da9f51a7fd43e2ad0f3de904f1fa96b15ffb63ea54fbfeaf8aae1e78d20827
ea9ab0a78e91a88fbbfd1f154269badd9eb1e745faac57517a3a5c9cfeb76971675e5711d38faf1a7
2e9fb38aa6de70b892d3ca7ae5dc17874f9edec2ea58af94a0303c70b32c83d4057e122bf10a62af
16b2fccdf379baf24596b97eb692e9577a8e99e779cc696d06a579a7e937579149148e842c12243
1dd318ba2cf1a7665c559169bf9ef6da9855b6d295e74d42eeceea14ba0cc967a7c51cd35e8a47bc
644d14712fdb9279638e8391655507e60f3d7993cc937955bca57a2c67d664be5b1b6b1bdb2b84b
a51a51bc81a632c6e13d398719107c5c413b87002a9945f9b5aae9361656bac690355d72317765
a98d29eaff5fd25a08ae996ddd430495a4692dd0333ba7a6a01795715422fe6e99b50d4a1b3024b
2569dde66b951f047a05b6a918b4e50214e5eaee26576e41dba7c08aaaeadf9e7068da7fd6e3d1e
5bd8a369ed8f2b858e6135a58477fce51e9d162911e8928d8b703c6920a2af44f2a7988f9974eb9b
b7b75b69acefefb4c9e3493d643269d7525b332b71534631f200a822b4c5505e612079bfc9e08a93
35fd0f87fa1be2aff00ffd0f7f62aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8ab
b15762ac3a3d56e742d6b5e59b47d4aea3bbbb8ae2de7b3804d1347f53822346e6370c8c082315
5e7cc96444ca7cafaa15b9ff7a07d416925053e3f8be2dbc7155cde66b4762cde58d559980ab1b05
24d0507ed7618aae3e69b72cee7cb5ab17938f36fa88ab70fb353cb7a76c5506be75d14ea4da4af9
7753fd250dba5cb4034f1c96de4678d5ab5a50b0714af8e2a88ff00115888c443cadaa7a4b198563
1a7af11136c500e54e27c3a62abe3f345b444b47e59d5a32ca1095b100945140a68dd00e8315523
af69a4053e53d48802801d39294ad7f9bc4e2aba3f30d8426331795b5343096684a69ea38338e2c
568db123634c5576937973abf9adb521a65ed8d9c3a79b7325f4220e52b4e1c051c893b0df6c559
662aec55d8abb15762aec558d2e89e635f39beba75a27cb8d6fe82e89c0d04941f1f2af5a8afcb6a7
7c554b5abe9b47f335b6a4da75eded9b584b6e5ec206b92b219a3601829a8a81b6d8aa95cf9c74e
bb824b5bbf2eeb3716d2af1961974a9a48d95ba86565208f6c554a5f3368728b759fcb1aab8b5a0b
50da34ce22a80bf07c078ec29b76c554135cf2b734917ca3a8ac9015f49ff414c0a95e3c4a9f4b6a7
15a53c062aa6be6df28437f6f671f96b514d4a112de5a46ba1dc2ba076025911bd1014b330e441ab
62a899bcd5e5fb869cdc79675695ae02adc33e8972fea08e85439311e5c4814af4c55637993cb2e5
8bf95b546323077e5a15c9e4c10c409fdcee421e15fe5f87a62ab8f99fcb8cae8de59d54a491ac122
9d0ae886893eca11e8eea29b2f4c5511079db48b6565b7d0b5a855d9a4758f45bc505dcd598d22d
c93b938aa51aa79a16fb5fd0352b7d175b36ba5b5dcb76cda5dda10b341e8a71568c16259c6ca0e
d56e83157fffd1f7f62aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb15762a
ec55d8abb15762ac3a0ffc9ab7dff80fd9ff00d46dd62aa4fa9dc2fe6e43a42df486ce4f2f4d73269dcff
72264bd89524e1d9cab30aff2e2acdb15762aec55d8abb15762aec55d8abb15762aec55d8abb157
62aec558b4d41f98f67bd09d12eb6f1a5ddb6ff457155709e6ff00f18972f07f837eabb20a7d63eb5b0
f0ad3ae2ac8b15762aec55d8abfffd2f7f62aec55d8abb15762aec55d8abb15762aec55d8abb15762
aec55d8abb15762aec55d8abb15762ac3a1ffc9ab7dff80fd9ff00d46dd62acc282b5a6f8ab78abb15
762aec55d8abb15762aec55d8abb15762aec55d8abb15762ac5e7ffc98b6341b1d16f2a7e5776b4f
d78ab28c55d8abb15762aec55fffd3f7f62aec55d8abb15762aec55d8abb15762aec55d8abb15762
aec55d8abb15762aec55d8abb15762ac3e1ffc9a97dff80fd9ff00d46dd62acc315762aec55d8abb15
762aec55d8abb15762aec55d8abb15762aec55d8ab17b8a7fcac6d3c77fd097d4ffa4bb3ae2aca31
5762aec55d8abb157fffd4f7f62aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8a
bb15762aec55d8abb15762ac3e1ffc9a97dff80fd9ff00d46dd62acc315762aec55d8abb15762aec55
d8abb15762aec55d8abb15762aec55d8ab16b9703f3234b4a7c4fa26a26becb7763ff3562aca7157
62aec55d8abb157fffd5f7f62aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb
15762aec55d8abb1562fe75d17cd1adda59c3e57d6468d3c3731cd733142e648a3756e1b76db71f
b5f67a1c550d6e08fcd3bd0773fe1eb3a9ffa3dbac5598e2aec55d8abb15762aec55d8abb15762aec
55d8abb15762aec55d8aa4fe687f3047a1dd3795a38a4d728a2d96720462ac0331af5216a547f362
ac7ec24d525f3af97df5a8921d55bcbda81bd8a121a3598ddd8720a6a7607a62ace315762aec55d
8abb157ffd6f5b7923cbb3ebde4df2f6bba8f9875b9350d4b4db4bcba916f9e3569ae205772114055
04b1a28145c553d6f22c4c00ff00106ba2800a8d465076f1db15426a3e5ad3746b61777fe64d7638
4ba44a45f4f2b3492908aaa88acc4927b0c5523d16f3c8fe67bbb5d3344f3beb173797d6c751b385
6f6e2369ad1785668cbc6bca3fdea7c40d3e218ab28ff03a549ff10eb9bd76fafbd37f0f871550bef2b
d9697a7dd5fdff9975b86c2d2279ee676be73c22894bbb6c84ec013b62aab1793a1b88e3b887cc7a
dbc52f19a365bf6a1561514f87a11db155ffe091b7fcec5adedd3fd34fe3f062adaf92f8a951e62d6cd
58b54de54efdbec74c5547c8735e9ff11d8de5ecf7c9a6eb335a5a4b76c2494402dede40a5805ad1
a46a57154e758f33797bcbeb19d6f53b6b16998470473caab248edd1634af2763fcaa09c552e7f37
cd72644d0f41d4b5278ca8123c22c203cba90f7ad09603b9456c550b06bde6b8bcdf61a46b165616
ba46a76b772db2dbcd35c5dacd6861279b34712052243f0aab74fb78ab30c55d8abb15762ac520b
4bdd6358d7449abdf5ac3657715bdbc16cf1246a86d2094ecd13124b48c4d4e2a8dff000d4f4a7e9
ed53fe46c3ff5471577f86e703fe3bfaa5078cb0ffd51c552cd2974cd6e4961d2bcd5a8dcc90c714ee
12488561b82e229149807247e0dc5d6aadc4ef8aa217c9102ea8fad0d6753fd2525ba59bcdeb45b
c11bb48abc7d2a6ccec6b4ae2abaf34d86c1ed63bcf326a30bdecc2d6d434b0fef276567083f71d48
463f462a8aff0dcff00f57ed53fe46c3ff5471577f86e7ffabf6a7ff2361ffaa38abbfc393ffd5fb53ff91907f
d51c550ba7a5ee9fe6a3a63ea3757b672e9e6e785d18db8cab384054a46846c77c55475082f0fe6
4e83751c539b04d23548ae665121b659a4b8b16855c8f8039092f1afc540d8ab2dc55d8abb15762
aec55d8aa41a92de5e7982db4e8afe7b2b5fa9cd70e2dbd205a459634153246fb00c7a62aadfa06e

6b5fd39a8fcb95b7fd50c55a3a05d120fe9ed487b06b6a7fd43e2a85d46c9349b46bed43cc7a8416
b1b22b487eaed5695c468a02db924b332aa802b5c5523d063f2df9befc7987cbfe6cbed42e6d6de4
b559e1787d3104f3f1610000026060f002220574d464301000000000001000000000000000b0000
0000200000c8060100c8460100c740d6c037ef2d8af215a3232e2a99eb06c3cbd6f25eeb5e6bbeb1
b3853d596798db2c4a9ea245566fab507c5228ebdf154c868177ff0057fd4befb5ff00b27c55aff0fde
7fd4c1a97df6bff0064f8ab7fe1fbcffa98352fbed3fec9b154bb52d3b52b4bcd22de2d7f50e17f76f6f3
96faa93c16d2e271c7fd1f63ca25fa2b8abfffd7f687e550e3f961e4b15a91a1699523a57ea91f4c559
762aa7329689c22869287806341ca9b6f434c55e203f267cc6da1f922c6696c1aff00ca7e5cbcd18c
cb34e806a32bd8b5bdc42cb183c63faab37c42a0b2d075c55308bf2a35e8eeecee5a5865e5a8ea3
7da91fd217d0ca0cfa8fd6ec668e48d4b33410d6dcc3fbb4e078ac9c39065528b8fca6fcc3b88355b
69ee74bb8b1d522b857d364babafab2dd5cd9b5b0ba1fe8e4f247a3853c8b2bb7293d450ccabdbf4
bb79ad34cb2b4b82a6e208228a5284942e8815b89201a546d518aa2f15762af1fd2bc9fad6b5e67f
366a969e62b8834e4d667865f2fca1c5848ff53b4a49cad64b79b978f39258fc235c5592e8d677be5
55890792ed10057f56f3419629181ad6a56e56de53cbbd1a43f3c5537b2f3e7962ed9a2b8bb6d2ee
95c44d6bab45269d3736e8145cac7cebd8a1653d8e2a96799ecdf51f39f948dbde4d68821d53fd22
d0c7c8f28e02056449168684f4c553bff000f5dff00d4c1a9ff00c15aff00d93e2ad7f876effea61d4ffe0
ad7fec9f156c797aec0a7f88353ff0082b5ff00b27c55b1e5fbb008fd3fa91af7e56b5ffa87c550be568
1adb50f3242f3c970c9a8440cd3153237fa05af5e0aa3ee18ab25c5564a1cc4e22e2252a4217155e
54daa076c55e2d6ff0095be73b08dadb4b9eded7cb52bdb4971e5317f726dd5cc774b74b6978d03
4b6f0079619a0b70ac89242787a3cf1575efe5afe62ddf99a4d41b50b71a1cf25a47776b1ea57caf3
db5a5f5acf57ac649768239a26ac946327eca362a9a0fcb9d76e6382d75682cee56df5359a7bc5be
bb592f74f88dcfa5ce3e01629112648e8acd50b4f538055c5528b7fcb3fcc8fd097367a8ead1dd6b6d
6f650dbea6ba95e4244510b313db3a4710a8e56f33a4e58b37aa6a8bcdce2af69b4b686ced61b4b
75e10408b144952dc550500ab124ede38aab62ac2f5ad0e0d6fced6f1dc5d5eda88b4a9194d85dcf
645b95c20f88c0e85a94dabd31544ff8074eff00abbebbff00719bff00faad8abbfc03a77fd5db5cff00b
8cdff00fd56c55bff000169e2bfee5b5cdffed717ff00f55b1570f21e9e3a6afae74a7fc762f8ff00ccdc55
77f816c0003f4b6b7406bff1d7bdaffc9dc55b4f23d92529ab6b44024fc5aade375f9c98ab1bf38dad9
f94ce82ff005ad66ec6b5ac59e8a7fdccddc5e8fd78b2fab42cdcf8d3ecedfeb62a9f69ba2c7a479bd3
d2bcbcba5974d96a2f6ea5bae25678becfa84f1ad77a62acb715762ad30046e01a6e01f11b8c55e2
5e5dfca8f3968be55f2de88d73686eb44b7f30facb15e5e436f25dea770d7160c7d158dd96366f8ce
cd1efe9d7155baafe57f9ff0054f2b5f797daf2da9716d7d6f024d7b71242bf59bdb1b98015f400fddac
13ad78d57980bb335157b80c55d8abb154975bff8e97973feda327fdd3af3157fffd0f6cd8f91f48d32
cadb4dd3ee751b6b0b3892ded6dd350bbe11c31284445ac87655000c5511fe15b4ff0096fd4ffee21
75ff5531577f856d3feae1a9ffdc46ebfeaa62aeff0a5a7fd5c354ffb88dd7fd54c55dfe15b4dff00d3f53
dff00ed6375ff00553156bfc29695afe90d53fee2375ff5531568f94ed0d3fdc8ea9b7fdac6ebfeaa62a
dff0084ed294fd23aa7fdc46ebfeaa62ad7f84ed3feae3aa74a7fc746ebfeaa62a8cd1742d3f418ae62
b01293793b5ddd4b3cb24f2493baaa16679198fd94514e9b62a99e2aa5716f6f75134175124f037d
a8a550e87e61aa31548b4ff22f94f4ad5ff4ee97a64765a8d1c036ed2450d650159bd056117220539
70e5ef8ab22c55d8abb15762ac7ef3ca367757d75a8457fa8d94d78eb2dc259ddc90c4d2246b106e
02a01e28a0fcb15531e4e8c023f4deb1bf8df487f862aeff07a0ffa5deb1ff49cff00d31577f83d2b5fd3
9ac7fd273ff4c558ec5a35d379f6eb413af6ae74e8b47b6bd48feb86a2796ea7899b971aeeb1a8a57
154d4e95a2fe931a37f8a750fd2dc4bfd47f48fefe94e5f63afd9dffd5df1546af93d1453f4deb07bef7a
e7f862ad8f2820ff00a5deafff0049adfd3156ff00c22bff0057bd5ffe931bfa62a88d2fcb56ba5df3ea22
eef2f2f1e2fab892f2769f8c5cb990a0d00a9eb8aa758abb15762aec55d8abb15493cc9e56d3bcd2b
a5aea4f320d2351b6d5ed7d07f4eb73664b461f63c92a775ef8aafd5fcbb06af7505efd76f2c6e608e
4843d94de8f28e42ac430a1068505315407f831811ff3b16b541dbeb6bff54f1571f27484003cc7ad0
23b8b98ebf8c58abbfc1b2ec7fc49ad6d5ff8f98f7aff00cf1c55aff06cff00f533eb7f3fac43ff00543155a
7c9970453fc53ae0f7171057fea1f1570f265d024ff008ab5c35f19edb6ff00a77c556ff826ec0a0f36e
bbff23ed4ff00d8ae2ad7f826f7fea6fd7bfe4759ff00d92e2aa72f90669e48259bcd7aebc96ce66b763
35a02921468cb0a5a8afc0ecbbf8e2aff00ffd1f7f62aec55d8abb15762aec55d8abb15762aec55d8a
bb15762aec55d8abb15762aec55d8abb15762ac3a0ffc9ab7dff80fd9ff00d46dd62a9aff00843401e
68ff188b53fe2130fd58dd737feea94e3c6b4a53b529fb5f6b7c553cc55d8abb15762aec55d8abb15
762aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55fffd2f7f62aec55d8abb15762aec
55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb15762ac3a0a7fcad6d43c7fc3d6
3ff51b778ab31c55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8a
bb15762aec55d8abfffd3f7f62aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8ab
b15762aec55d8abb15762ac32dfff0026c6a1ff0080ed8ffd475de2accf15762aec55d8abb15762aec
55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb15762afffd4f7f62aec55d8abb15
762aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb15426a3a9d869168d7da
9dc25ad9a32234d29e2a1a5711a0af8b330031563107fe4d6bfff00c07acbfea36ef156658abb1576
2aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb157ffd5f
7f62aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb1563
9e7bd2351d7bcaf77a569491bdecd25b322cce624a43711cad560ae7eca1a6dd71540c00ffcad5be

215

34ffa67acebff0049b758ab31c55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb15
762aec55d8abb15762aec55d8abffd6f7f62aec55d8abb15762aec55d8abb15762aec55d8abb1576
2aec55d8abb15762ac221f2c68be61d7fcc773ab4535c4d05e4504445d5cc4a918b1b66e2ab1caa
a05598ec3a9c55167f2dbc9e78d6ce7f87a7fa75effd57c5529f30f923cbfa4e9e6f34ed0ae353915bf
7d17e95bbb611c2aaced216698f4e34a01524e2ac4342d47f2c350b1b0bdf30584fa14fab69f6face
996cfaa5fdd3c9a75d4425595bd193e0e2498d837edfc2a5b92d5547ead67f93fa669f77e61b5b696
f6fe2b0b89e248af35049a58ecd2798c0d2349fbb6ac13718e42bf12bfc3d71544a27e4e2d9d85ddf
5cbd90d45e382049f51d4147af298d0272f5b890249523e75e1ea32a72e5b62a9a7973cb5f961e6d
b0fd2be5d33dfe9dcfd35b98efb5258d8f157f84bccbc85187c4b55c5538ff009567e4eff964b9ff00b8
85ff00fd57c55aff009567e4eff964b9ff00b885ff00fd57c554b46d074df2ef9c9ed34959a2b6b8d30cb
3452dcdc5c2974b80aac04f238040246d8ab33c55d8abb15762aec55d8abb15762aec55d8abb157
62aec55d8abb15762aec55ffd7f7f62aec55d8abb15762aec55d8abb15762aec55d8abb15762aec5
5d8abb15762ac7fcbf5fd2fe68246dfa46200ffdbbed3156418aa1efed7ebd637365ea3422e62784ca
8016512295a80c08a8af718ab0687f29ec2df48b6d1edf5bd4a04b4d063f2cdbdd44d025c2db5bba
bc72f210d3d501429f87d375fb49be2a82b1fc95d3b4d8356b4b2f316af1d86b96d796baa5a56cfd2
98de19b8cb416c38bc427654e0551804f515f862ade95f92da4e8b71a549a7eb5a8436da37386ca
cf8d9bc4b61218e43663d4b762b1096312214292c7c9e38e458f8aaaacdbcade5f83cabe5ed3bcb9
6b3cb736da640b6d0cf71c7d5644d97970555ad36d9462a9be2aec558f303fe398cf6fd12e3fe9e53
156438abb15762aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abfffd0f7f62ae
c55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb15762af977f34bfe53ef347fd1af
fd41458ab0c1fde47feaff0006c5569fee97e5ff001be2aadfeef3f3fe231556bafee1bfd6feb8aaf8ba0ff
5dbf862aab3fd93fea7f118aae8fec7d03f59c55a6fef47d3fa8e2af44fc8dff94cf57ffb65c3ff00510d8a
bdfb15762aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb157fffd900084001
0824000000180000000210c0db01000000030000000000000000000000000000001b4000004000
0000340000000100000002000000000000bf000000bf0000af43000049430300000000000080000
00080fe7fe9430000008000000080ffff85432100000008000000620000000c000000010000001500
00000c00000004000000150000000c00000004000000510000006c1801000000000000000000d2
0100000b010000000000000000000000000000000000005e010000c900000050000000bc030000
0c04000060140100000000002000cc00d30100000c010000280000005e010000c9000000010008
0000000000000000000000000000000000e50000000000000000000000ffffff0078787800616161
00646464005f5f5f005e5e5e004b4b4b0052525200595959006363630060606000575757005d5d5
d0058585800656565005c5c5c00696969006a6a6a00515151005b5b5b004f4f4f004d4d4d006767
670062626200535353004e4e4e00505050006e6e6e0066666600686868006c6c6c00c7c7c700fbf
bfb00f7f7f70095959500d9d9d900f1f1f100ececec00eeeeee00f2f2f200efefef00f3f3f300ebebeb00e
5e5e500eaeaea00e6e6e600e3e3e300e7e7e700dedede00e0e0e000dcdcdc00e8e8e800dfdfdf00
e2e2e200d8d8d800dadada00e1e1e100dddddd00d7d7d700dbdbdb00d6d6d600a1a1a100b9b9b
900f9f9f900fefefe00f4f4f40094949400f6f6f600fdfdfd00fcfcfc00fafafa00c5c5c500b8b8b800999999
00f5f5f500f8f8f800c8c8c800b4b4b40097979700c6c6c600b1b1b10096969600c0c0c0008989890
088888800b5b5b50098989800b0b0b00006060600b3b3b300aaaaaa000909090085858500c2c2c
200b6b6b600cacaca00494949005656560036363600a9a9a900bebebe00a2a2a200bbbbbb007d7
d7d00c1c1c100aeaeae008d8d8d00c4c4c400b7b7b70044444400d0d0d000bfbfbf0055555500c3c
3c30038383800a8a8a8008a8a8a00bcbcbc00a7a7a7002828280083838300ededed00474747008
c8c8c004a4a4a00f0f0f00023232300d5d5d500414141006b6b6b0029292900cfcfcf00a5a5a50093
939300bdbdbd0073737300e4e4e400e9e9e900ababab00acacac00adadad00afafaf00a0a0a000a
3a3a300a4a4a4009b9b9b009d9d9d009a9a9a009e9e9e009f9f9f00a6a6a600d1d1d100cbcbcb00
42424200797979008b8b8b007e7e7e009c9c9c00828282007f7f7f0090909000cecece00d3d3d300
92929200707070007575750074747400727272005a5a5a0071717100767676003939390077777
700808080007b7b7b00868686008787870081818100cccccc00848484007a7a7a00c9c9c9008f8f
8f00bababa00b2b2b2008e8e8e00d4d4d400d2d2d2004848480015151500919191003b3b3b001f
1f1f00cdcdcd0043434300313131003c3c3c002d2d2d000c0c0c003333330025252500454545002
c2c2c007c7c7c00141414002e2e2e002f2f2f00373737004c4c4c0054545400353535006f6f6f0046
46460040404000272727006d6d6d00242424001d1d1d00222222003e3e3e00343434001a1a1a0
0212121003f3f3f001b1b1b003d3d3d003232320026262600010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101012179ba8f959e7ca4524aa143ba944fbfa192438657b786924f8623a457239295949
e938f5286bf92234f3e94929e9696663e959466944f949e3e9e663e96963e96969e9e4a3e959396
96a6b901010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010000010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010

10101010101010101414043400101450101010101010101010141010101014101010140014545
01014501010101014501010101450101464101010141010121010101010101010101010101010
1010101010101605f0141010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101000001010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
101010101010101010101010101414ca4440141450101010101010101014c01014141412141014
00101014601450145400140014601410145014701010146010146450101410101010101010101
01010101010101010101016056014101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010100000101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
1010101010101010101010101010101010101414ca12a454141010101010101010101010145210
1010101014101014c0101414645014601450140010121010101452101010101450101410101010
10101010101010101010101010101014d4e014101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10000010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
0101010101010101010101010101010101010101010101414cb728450101010101010101010101
41414101014701014501220101014001010141010146010141470145014601010147010145014
1460101010101010101010101010101010101014120b901410101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101000001010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101414cbf2a41010101010101
01010101010145010101460135292c012635414530418940462444402f2942802b4cbc014c2f260
145470101010101010101010101010101010101010101014150b9014101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010000010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101014147864201010
14101010101010101010145010101457a93cf7601aed4228de3b4c0b803e4a027bd9692dd80d4d
7058a077747010101214101010101010101010101010101010101410101505101410101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101000001010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101412
143424501010101010101010101010101014746010169e24401a48f469e9fb6124a0d89242904b
a0d80700c2b2f3a0b4d4121210101010101010101010101010101010101010141010150b901014
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101000001010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010

217

10101010101010101010101010101010101010101010101010101010101010101010101010101
0101014121432a464101010101010101010101410141410101016ce047459552457e6764d4b074
0141211ee15801771e203f8906bb01010121014101010101010101010101010101010101410101
50b90101410101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101000001010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
101010101010101414b2328410101450101010141414101014601400101015ec52101a7625f85a
472af38862bb0341d5295a3388858df56acb4770146410101010101010101010101010101010101
01014501725641414101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010000010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101161000002
6060f002220574d464301000000000001000000000000000b00000000200000c8e60000c846010
0010101010101010101010101010101010122a12501410101010101010101010121010101012d
01c2c501475b97548490529901533e93400a58b33e44bb4a974666576b27010147010101010101
01010141414141414141410101417056010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010100
00010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
1010101010101010101010101010101010101010101454c5242454641414141414141414141010
1210144949174d3809c5001464701410146014701401a852101450121014546012201472101010
10101010101010101010101010101014501014d6d454645010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010000010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010121574247014541010101010
101010101414101418e57909e4a4f32410101450101474101012b8fbb010145464501014601460
14501014141414141414141414141414141414141014546205a41410101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101000001010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101462143444701450
14541010141454101012101410101214101450101010101460141010101010141410147014501
01450140210101464701010101010101010101010101010101010146014d8e450101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010000010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
4f2201010141410101014145410121454101460101010145470121014501450101014b45014701
21460101460146410101462101010101010101010101014141414141414141014101726701014
70101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101000001010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010

10101010101010101010101010101010101010101010101010101010101010101010101010101
010101017eafa44a4f9543bf234f23a1babf43a44fb79cbf529c54b77ca4545d6bb075ba5555b775b
7b0b79c54b755545d6b9c75b155545555b075757575757575757554545454545454549c55b0a66
a4701010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101000001010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
0101010101012101a36567675e8767705e53b86db865653f6987878767706570534e705f69763f7
669d2557669878753657070483f877670656567536565707070707070707065656565656565657
67265677e01470101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010000010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101460
1460101010101af6c0101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101000001010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
14141450101464146410101b55e01014101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010000
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101414501014680394501019b69410141010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010000010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
1010101010101010101010141010101468aa7b04501019b534501010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010100000101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101014145412101019c514501019b53410101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010000010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101

219

01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010141014546a1584101019b690101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010100000101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
1010101010101010101010101010101010101010101010101010101210101010145a48b010141
02690101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101000001010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101014545010
1ba6a010145ad5301014101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010000010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
41010121017aa577410101a672410141010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010100000
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
101010101010146014521017231410101a6724101410101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010100000101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
0101010101010101010101012101014c014545410101a672410141010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010000010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
010101010101010101010101010101010141410141210141410101a6724101410101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010100000101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101

01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101454601474101410101a67241014101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101000001010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
0101010101010101010101010101010101010101010101010101014141012101010101410101a
67241014101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010000010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101414101010101
0121410101a672410141010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010100000101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
141010101460101410101a6724101410101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101000001
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101410101aa5e01410101010101010101010101010101010101010
1010101010101010101010101010101010101010101011610000026060f002220574d464301000
000000001000000000000000b00000000200000c8c60000c846010001010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101000001010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
0101010101010101010101010101010101010101010101410101aa5e014101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010000010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
101010101010101010101010101010101010101010101010101010101410101aa5e0141010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010100000101010101010101010101010101010101010

221

10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101410101aa5
e0141010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101000001010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01410101aa5e01410101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010000010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
1010101010101410101aa5e014101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010100000101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
010101010101010101010101410101aa5e0141010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10100000101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101410101aa5e01410101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101000001010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
0101010101010101010101010101010101010101010101010141886c4101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010100000101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010141a74801010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101000001010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010

10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
1010101010101010101010101010101010101010101010101010101010101010101010101a648
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010000010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
1010101a650010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010100000101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
010101010101010101a6500101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101000001010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101a64801010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01000001010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
0101010101010101010101010101010101010141a748010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010000010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
101010101010101010101010101010101010101010101010141886c41010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101000001010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
1010101010101010101010101010101010101010101010101010101014141b55e410101010146
01014601010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010000010101010101010101010101010101010101010

223

10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
010101010101010101010101010101010101010101010101010101010101010101014141b55e4
10101414601010141214101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010100000101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
014141b55e4101010101014621014101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101000001010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101014141b55e41010141014501014701410101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010000010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
0101010101010101010101014141b55e410101410101414501014101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10000010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
101010101010101010101010101010101014141b55e4101010140213535464701010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010100000101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101014141b55e410101014164baa18d01010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101000001010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
0101010101010101010101010101010
Object collaborations
Figure 6.4 illustrates the main collaboration between the objects. When a potential new path is
identified, a parent searcher thread creates a new (child) searcher thread and passes details of the
objects it needs to interact with (labeled 1 in the diagram). The child informs the tracker object that it
has been created (2) and then takes a clone of the trail the parent was following (3). It marks the

current position on the new trail (4). This results in the trail object determining the next valid moves
that can be made (5). These are returned to the searcher. The next operation of the searcher
depends on the available moves. If the searcher is at the exit, it calls the tracker object to indicate that
it is terminating with a found solution. If there are no valid moves, it again calls the tracker object to
indicate that it is terminating without a found solution. If there is only a single path, it iterates through
collaborations 4 and 5. If there is more than one path, it creates a new searcher (6b) for all but one
path, and then explores the chosen path.
010009000003604f01000000b78f000000001610000026060f002220574d4643010000000000010
099c3000000000c00000000200000d85c0100d87c0100010000006c0000000000000000000000d
20100001201000000000000000000006a400000dd25000020454d4600000100d87c01000c00000
0010000000000000000000000000000000005000020030000c40100001a0100000000000000000
00000000000e3e306006e4e0400460000002c00000020000000454d462b014001001c000000100
000000210c0db01000000600000006000000046000000d05b0000c45b0000454d462b224004000
c000000000000001e4009000c00000000000000244001000c00000000000000304002001000000
0040000000000803f214007000c00000000000000084000051c5b0000105b00000210c0db01000
0000000000000000000000000000000000001000000ffd8ffe000104a4649460001020100480048
0000ffed0be050686f746f73686f7020332e30003842494d03ed0000000000100048000000010001
00480000000100013842494d040d000000000004000000783842494d03f3000000000008000000
00000000003842494d040a00000000000100003842494d271000000000000a000100000000000
000013842494d03f5000000000048002f66660001006c66660006000000000001002f6666000100
a1999a0006000000000001003200000001005a00000006000000000001003500000001002d000
000060000000000013842494d03f80000000000700000ffffffffffffffffffffffffffffffffffffffffffff03e80000000
0ffffffffffffffffffffffffffffffffffffffffffff03e800000000ffffffffffffffffffffffffffffffffffffffffffff03e800000000ffffffffffffffffff
ffffffffffffffffffffffffff03e800003842494d040800000000001000000001000002400000024000000000
3842494d0414000000000004000000023842494d040c000000000a500000000100000070000000
4200000150000056a000000a3400180001ffd8ffe000104a46494600010201004800480000ffee00
0e41646f626500648000000001ffdb0084000c08080809080c09090c110b0a0b11150f0c0c0f1518
131315131318110c0c0c0c0c0c110c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0
c0c010d0b0b0d0e0d100e0e10140e0e0e14140e0e0e0e14110c0c0c0c0c11110c0c0c0c0c0c110c
0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0cffc000110800420070030122000
21101031101ffdd00040007ffc4013f0000010501010101010100000000000000030001020405060
708090a0b0100010501010101010100000000000000010002030405060708090a0b1000010401
030204020507060805030c33010002110304211231054151611322718132061491a1b142232415
52c16233347282d14307259253f0e1f163733516a2b283264493546445c2a3743617d255e265f2b
384c3d375e3f3462794a485b495c4d4e4f4a5b5c5d5e5f55666768696a6b6c6d6e6f637475767778
797a7b7c7d7e7f7110002020102040403040506070706053501000211032131120441516171221
30532819114a1b14223c152d1f0332462e1728292435315637334f1250616a2b283072635c2d244
9354a317644555367465e2f2b384c3d375e3f34694a485b495c4d4e4f4a5b5c5d5e5f55666768696
a6b6c6d6e6f62737475767778797a7b7c7ffda000c03010002110311003f00ee7eb1756ebd88c34f
40e947a8e591ad96595d543090edbbbd5b2ab322cd3f99abf33fc3ac7fa89d2feb213d4727eb8526
dcbbdf5fa2ebcd560dad0fdcca594bacae8635cefe6d8dad6e759752765773e80d75da32f6bdc5dfa
28fd0fa2e6babb1bbff009cfdc54ad774f756f0fbb15f8f59d4c5c486b6d75789fcdd9f4a9bafd96bff00
eb8929dcfd9bd3bfee2d3ff6db7ff2297ecde9dff7169ffb6dbff9158b79c47b5973efc6f53da77975c18
58e6dada3645bf9ff0067b7feda4d5fecf3f6538d763022f66e9f59e0d966cb2b6d1bac0dfd2d15fe77
e8f7a4a7731f1f1e8b1e31ea654d735a4fa6d0d9d5dcec1ee4790a8f4bc376135f4b9b5b74640a83c
08036ff00867daefcdf6fb92ccba9c7dd6bf19d925d63584575fa8e00867bcb5a1cedac494de91e294
8f15cce438b8024f51037380f4f122246ed8f6b6bdceaf77e8d8eff00c13d256b1b2bd12efb463e5e5
48049762b5a191ce9537758e7b5df99eaff0036929dc90aa1ea98ecabd6b996d4cde2b05cc719712
5ba0abd4f6fb7e9fd050aaca6f355b45069736d2c8b6b353be83f51b9bbb6230c620b88997b8b9dfa
5b393e1fbadfe4a4a678d95564b5cfab76d638b0ef6b986473edb035c8ca8e6b8b40dde87abb4fa4
2f7434fb99bff34bbe8feeb552f5320067fc9c5ce8f546f80cf6fbcd3fa2fd2fbffd27a6929db4963643de
2db0e33f01d5b834542c706969f7ef712c63f77f8256adbba5fa6e15be8f508f66d2cddbbf376c7e72
4a7fffd0f42cdb5adb5cd16db5b8592ef44d53b4d6d1fa56e47f83fea37e9aaf5e53c544fad98f2400d
9762870dc58e2e6ead6fb376dfd27ee5ab688079096d6f80494e45105ef07372696badf57759663b
84431bf67ae3d57328f66effb73de8ae656f043bab3da4ccec752237766eeadeffea7bd696d6f8040c
873687b2eda4b5ce6d4f0d6971f7b832a77b41fa163bfa8c658fb1252f4db55963bd2b1b606b5a090
e0eeeefa50886aac92e2d049e4c6a53b992c73412cdc08dcde44f70a83fa6663a8347ed1b8349237
00ddfb0b5b5b6bf5637fb5cdf53d5fe792536322cc5adc287436eb98f756d83a8601bfddfc9ded4880
cc4f5594faef657b9b5376873c86cec6bac2c66e7ff2de80dc2c8aacf51f79b98daac690fd082edae6e
dfdefa3b3deeffa6ae51fcc57fd56fe4494d5b322da1b5d8701f6584b81149638b3b34eeb5d47d36bb
f313d1d48bc117e3d9458ddc5cc30e03dfe952cf518767ab90dd97575fee3fdeae1d41d63cfc156c6

225

aeb796dad115367d11c933f4b21dfbcfb3f35df4ff00ede494969a9cddcfb61d6bccbbc00fcdadbfc86
7fe6689b5be013a4929681e01281e09d2494fffd1f42fda5e9e3e3d9916ed7df50b76b29b1e386b9d
fcd7a9b7e97b77a6b3aab6b161f51ee14b98cb08c77e86cfa259b8b7d66b7fc27a3ea2b75e19aab6
555df63595b435a3d860346d68935a97d9ecff00b9167fd0ff00d26929a6fea95b1a1e6e716976c24
63d9a192cd47d2dbbdbb515979b9ce659fa461aeabaa218f619717b9bbfe9399fcd33e9352c9fb55
2e60afd7bdae9dc586a1b60b7f7d8dddf4bfe8210b2f6dd7359464fa8efd18c878a8b22b0fb2b73431
dfcdd8e739bfccfa9bd252aac5aeacb6e436878739ee7daef56f206e6bbe850e67a4ff7ff0082f6575ff
3dfce2b17643dadb2d0e2dad8400df49c5c49038d5bf49ce436d34d445fea5b9175ec635b0f23735
b2e0edacd8c6b3f4bbdef53ab05ecdce17bea2fd5d5d619b01889dd656fb5eefdfb2c7fbff90929a83
ab36ea2eb2b7d8e65406ffd5ded710efce632c735cffcef6fd3fd1a63d5e9a9ad68bac7069ad848c6b
7416366b7bb8dcdff0049e9ff0035fe1362bd6516318e77daad9034fe6f9edfe09469adf6b6465dbb9
b01e22bd1db5aff00f43fcb4948aeb9e6ba1f6585f8f90fdae6b6a78716ed7be3637758ddce67bff47f
414727d0b85a07dac0b4cb8d6db1baec34c3659edfdfff008c56db8a458c7befb2cf4c9735aedb125
aeae7d8c63be8bd58494e561b5a2e6edb32daec801d65379790c2d6fd0adf60d9f49ffa4f4ecf7a3e
61caa769a036c0e96fe96d2cf798f49add3ddbbdeac64556bcb1d4bdb5bd849f73778208dbf443ebf
f00aa55efc2cac8686df6516347634bbc41ff00b91fc949485f6f5669796e236c0c9f6b728efe373439
a686b5af77f5d5e7d6456e76f7821a4fd2ef0a9e274bbb083c62d9557eabb75935d8f24ff5acca7a3b
a9ea4e05bf69a60e9fccbbff007a1253ffd2f55492492529577d1946e7bdb925b5b9b0daf634ed746d
dfbbf3bf7f62b0924a7049cea5f90d6db901d5892eaf104388737f9a76e77acddeeb2cf46bff0005ea7
e7a66e66791606db9bec32eb5d87a19258d657510d7bb66dfa75fb3f9b5bea85d8d75f758697d6c2
d710ef52b164cb2bf4e3dccdbb1db92535312ccfbc079bad7b6a6836579141c6043e7de3730bdcfa
7d373fd2ff8bf515aa70996b2f3921a5b718acb1ee0ef48b2afa45bb3d3b37d7fe0ddfdb54ef76c73a9
b33b169b18e6076fc6899d4b2bdf6b5b63aeff0083f512c163f318e7e3e7e2646e6d7633d3c700358
f05ec73eaf59ce77acdfe6dce73367a6929ba3a2f4ed3daf25b30e375a5c012d7386ff577ed7bab63
dffbef48743e9a0306c7c57b489b6d24ed70b1bea1f53f4bef1fe17fefeaa8c2ccc7c8c3764645570fb
41fe6e8149835dfb5a5c2cb3e84b56ca4a52897b044b80920093dcf014904e1e2189a6b304384b4
685a7731dc7e6b86e494992492494fffd3f55497caa924a7eaa497caa924a7eaa553fc3ddfce7d21f
438fa0c5f3024929fa76ce3f3791fceff00aff39fe8d3d7c7fe90e3fd7f717cc2924a7e9ac8fe7f0ff9cfe7f
f003f8fe6ef5a0be5549253f5524be5549253f5524be5549253ffd93842494d040600000000000700
05000000010100ffee000e41646f626500644000000001ffdb008400040303030303040303040604
030406070504040507080606070606080a0809090909080a0a0c0c0c0c0c0a0c0c0c0c0c0c0c0c0
c0c0c0c0c0c0c0c0c0c0c0c0c010405050807080f0a0a0f140e0e0e14140e0e0e0e14110c0c0c0c0
c11110c0c0c0c0c0c110c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0cffc0001
10800ce015e03011100021101031101ffdd0004002cffc401a200000007010101010100000000000
00000040503020601000708090a0b010002020301010101010000000000000001000203040506
0708090a0b1000020103030204020607030402060273010203110400052112314151061361227
181143291a10715b14223c152d1e1331662f0247282f12543345392a2b26373c235442793a3b336
17546474c3d2e2082683090a181984944546a4b456d355281af2e3f3c4d4e4f465758595a5b5c5d
5e5f566768696a6b6c6d6e6f637475767778797a7b7c7d7e7f738485868788898a8b8c8d8e8f8293
9495969798999a9b9c9d9e9f92a3a4a5a6a7a8a9aaabacadaeafa11000202010203050504050604
0803036d0100021103042112314105511361220671819132a1b1f014c1d1e1234215526272f1332
434438216925325a263b2c20773d235e2448317549308090a18192636451a2764745537f2a3b3c
32829d3e3f38494a4b4c4d4e4f465758595a5b5c5d5e5f5465666768696a6b6c6d6e6f6475767778
797a7b7c7d7e7f738485868788898a8b8c8d8e8f839495969798999a9b9c9d9e9f92a3a4a5a6a7a
8a9aaabacadaeafaffda000c03010002110311003f00f7f62aec55a2400493403724e2af90ff00e720
3fe739fca3e414bbf2cfe58341e67f3880637d494faba459bf4357461ebc83f9633e983f69f6e18aa5b
ff38597d2fe76687e77f38fe6a243e69f30beb10c4977a8451c9e8c22d958450a71e3146092422055
fa7157d43ff2ab3f2dff00ea55d2ff00e9162ff9a71577fcaacfcb7ffa9574bffa458bfe69c55dff002ab3f2
dffea55d2ffe9162ff009a71577fcaacfcb8e9fe15d2ff00e9162ff9a71577fcaacfcb7ffa9574bffa458bfe
69c55aff009555f96bd7fc27a57fd2245ff34e2ae3f955f96a4d4f94f4aaff00cc1c3f2fe5c55c7f2abf2d4
ee7ca7a513ef670ff00cd38aa5bad7e5cf90b47b38f52d2bcb7a6d96a305e58bc1776f6b1473238bc
8775755041c55e838abb15762aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8a
bb15762aec55d8abb15762aec55d8abb15762aec55d8abb157ffd0f7f62ac27f33bf36bc87f941a03
798bcf5aaa585b312b696abfbdbbba907ec410afc4e77dcfd94eaecab8abf33bf3fff00e732bcf9f9bef
3e83e5c69bcabe4160637d3a097fd2ef16a77ba99287891fee943e9ff003193ae2af9a3157e92ff00c
fb67ff25e79cffedb517fd42a62afb6715762aec55d8abb15762aec55d8aa49e6cff8e2b7fcc558ff00d
46438aa778abb15762aec55d8abb15762aec55d8abb15762aec55d8abb155a5d03052c033745ae
e7e43155d507a62aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abffd1f7e3ec
8c7915d8fc43a8f7deb8abe57bdff9c3cfcbafcccb3b4f3e7e66798bcc7a9798f51b58eeefeeee35284
4317a881cac4ad6fc63896b4545f85462a96da7fce04ffce385fb94b1d6358b97068561d52d6420d2
bd16dcf6df1544c7ff003ef6fc829397a77baf3f1251b8dfdb9a30ea0d2dba8c55ecbf92df925e46fc90
d2755d0fc8d7179716ba85dadcdefd7e78ee1d27489538831c71f1f86868457157a63491ab2a3385
77a8452402d415341de83155d8abb15762aec55d8abb15519ef2d2d5a14b99e385ee1c456eb23a
a192422a15012393507418aa55e6cff8e2b7fcc558ff00d46438aa778abb15762aec55d8abb15762
aec55d8abb15762aec55d8abb15794dff9596ebf3762f31699f5ab9ba9ade5d375c17f64ad6d63686

c98c3369d772428cacd2b2a4b1c53491c9ea49cd1193962ac8fcade573e4a8acb478f55d46fd6e6f
2eee659668c4eafeaa33849a5e0de9a2fec10c9c9fe1debc71560fe67f357e6869dafeaede5fb7bed
4ad62bcbeb5b2d3ff477ee3eab169305cc72c72fa4bcdfeb3eb4719697848dfbaf06c5551f59f3fc1ab
797af2cef759d43cb22e9975d49f484b59cd85d4e8b6b20468cca6489eb1dc00887eabce6f4e3658
de4559bfe597e9b5f29451f98e4bc93588ef3504b86d454acfc45ecde9d0955e49e9f1f4d8554a538
9c559862aec55d8abb15762aec55d8abb15762aec55d8abfffd2f7aea12adbd85d4ee68914323b1f
00aa49c552cd234eb2bff29e97a7ea16f1dcd9b595a0920914346de9a230aa9d8804034c55e36fe4
2f375a681a0dd681a2cba5f9a34c3e6497d4b66b28e559ae96e9f4f0edcd95a3679536a9e3fb7c57
962acd34d83f3193cc16d2cb1ccba49d52f1aeede536c919b19983452abc2e5b9250afa6f1bfa8adf
6e374e4caaac76bf9811798a69a257fd1275d924f41feae914ba549059a07f522612068dd6764574
7f517923f0fdd48aaa41e66f2c79f27f356b3a8d8c77cf10ba9ef742bcb7b9b7a428da0adac7146933
fc1caed58b8e015b92b3371e58ab21f2cc5f996f6be619b5d6923d71d2ed3498e46b63a6f232caf64
f108f94a088da349c4941cd3e1127f78554a27b7fcdab896d24d356e6c2d67b240905fcf6d3cd6bab
adc405dae4c24abdab44b28511b3b54b7c29ca2f4d542d85a7e71db85695ef27908b49e486ee4b4
30c93096f967839c0caf1298cda9575575120f8924532e2aa9168ff99b15bccd1cba9a5c69d1c525b
db8b9b578aee65d56792e055d998fa968c822123468361f030c55090e99f9c17de5fd5f4cd692fbf4
8dc69f7bfa22e2daf2d224591feba890dcb29e5ea10f6e6378fa715acb1f1939aaadaed97e71dca30
d19eeec97eb644ea935ab3b69b25d59b40b0faaccab345009d2624fc4dcc87939454553bf3cf977c
d173ab69f75e598a5b9bcd3343bfb7b4beb9962318bd92e2c5a3e41c9fdf3c70cdc65f4f8abf12c571
54a574ef3eaea97973afdcdf0f2b23dac9a45bcf2dbb71693551c62b8f4eaeee9132f124b0e3c393b
48ad8abd8b15762ac4bccba2e93af799743b2d66ce1bfb25b5d42516f728248fd40d6a03716a8a80
4807df15543f96bf97e4927cb3a6d4f5ff00468fe5e18aa0b51f227e57e87a75deada879774d834fb1
85ee6ee6faa2bf086152eec42ab3100027618ab1886f3f20a6fad88b4ed3cb59c734974bfa3660c8b
6b6eb7720a1841e5e83acca83e3789bd44565c552df33ea7f957e5cd63cb16f1f9434ebed075fbc1a
7df6ae90a46b60d7104535b4acaf17178a433c4aee1c7a5ea2935f8a8aafd3eeff002c2ebcc9e6cd2
ef3c9ba759689e5792ded46a8d6deac9773dc44f2c86382380958e311baf32c797066a70f8b154e6
e13f22ed2e3ead77a6e97037d50ea292cd626385acc1897d5595a308ca5a789168df13b845abed8
aa73a1794ff2a3ccba645ac687a1e957ba6ccd22473c76b1d39c3234522905410caeacac08d88c55
31ff00956bf97dff0052ce9bff0048b17fcd38abbfe55a7e5f7fd4b3a6ff00d22c5ff34e2ae1f96bf97c0d
7fc31a6fd36b11ff008d71555f204621f26e8f08fb11c1c107608acc140f6000031550f3eeb9e68d074
bb7b8f2be8cdab4d35c2c37d325243656ac18b5cfd5f923dc71200f4a365635e5fb38aaed235dd6e7
d32d264d2ae351592256faf19ace332923ed7057016bfcb4f87a62a8c5d635e35e5e5c9c1aed4b9b
53b7fc8cc5533b0b8bab983d5bbb36b297911e8bba48dc4746ac6586ff003c552cf363dd8d2e286c
af25b09aeaf2ced9aeedc466648e6b8447e1eaa3a82549152a7154bcf92b5026bfe32d7be5ea5853
fea0f1571f256a07fe9b1d787ca4b1ff00b23c55b1e4bbf14ff9dc35d34f192c7fec8f156c7936fc7fd35f
ae1f9c965ff6498ab5fe0bbeff00a9c35dff0091965ff6498ab8f92ef8ff00d35faeff00c8db2ffb24c55dfe
0abdff00a9bf5eff0091b67ff6498abbfc157bff005376bbff0023ad3fec971577f82af7fea6ed77fe475a
7fd92e2adff82ef3fea6ed77fe475a7fd92e2a83d02d353ba7f35f96ee75dd4254b1bfb78acf512d00b
d8a392cad6e59438842105ddbed21f85a9e18abffd3f74f99891e5bd608ea2c6e48ff00912d8aa43af
5cebd63f9711dcf96c4bfa662b5b13088221712f0e7089b8c643723e9f3da84f86f8ab02b6d77f3274
133e9f67697773a4dddeea0eb7f3585ccf369b0cbaa5eac2dc3e27b85286dcf0515489b9a8118f855
4dbf3262f334cfe5abfb117b757b6b037e90d16de2b986cef8dcb401c24f6ec4db5d44c9cedde6e50f
069a393663222aa77fe6cfccf4b7d46e6df4f945cacf3dbdb69a9a64f234525b7d75a33f58af09229d
52d8abc68fc5d9919d3d45f4954669fe63f3f4b7b17e901345657f797f15a94d1e66f416d6e905b24e
0c8182cf033b7aadc13920f890fc2eab1cd2b5efcd1d1f4cd3b4582d6e65b7960889d5ee74fb9b892
c65905ef08a58b792705e2b7591eb541272728aead1aacc6d75cf3d41e5ad7b59bfb792e6f61d566
b7b1b082c9927874c8af7d133247c9da76fab9f5942ff0079c6881b9531562dad6bbe7dd16f75cd4f
42b3d4354beb9d334f166eda75cadbc975147aa4bfdc12de93352d525e2bbb322b7a45f946aa652
79c3f324dc4be9e94ed02dfc48812d6453259cdea6c9eaa2f09623c3d4497f77228e515cab3f04559
6f9c2f752d4bcae6cbcbd0dd2dfeb727e8d8a5e13d9c96f1c85966999cc65e0e31a3fa5294fef0c5fc
d8abc87cc87f31751f2869d6b2d96ac9e65d3346d5f48d424b3fadb7d62f6d2ff4e8edae164454f50c
f1c724c92711b34a3f9862acd7f32dbce771afdad868ef7d0e945f429edee2ced9e68e39d3585fae3c
8f18a90b6d42d1bb7a6c9cbe16df154bacfccbe7fd645bc1e61b37b0b38ff47fd623934f9e2173ca4b
63eba4ec4244c27122b40dc9b870e294fde62af68c55d8aa417fff002986883fe5cb52ff0089d9e2a9
d5cdcdb59c0f7377325bdb462b24d2b044504d3766200df154bf52b4d3fcd7e5ebed362bbe5a76ab
6d3d9bddd9ba39f4e65689cc6d475a8a91d0d0e2ac487e58d96917973e60d2659f50d5feb2fa9c7a
7de4d145697175fa2a3d204723adbb948da1852a42b51eafbfd8c552e87f28fca51f97f43f27eb37b2
844b4d4ad3f470b907eb4351882cea8d20f548b75e22dcc654c2891ff28c555efbf293cab6b1df3beb
17ba6e9b7ffa3a0960f5e01070b081eca188faf13f312094f312972f37075a3818aa19ff00267ca932d
ce8779aeea17171796960be9c93db7d6e3b7d1446b64d17184158e09944d40be9bdc316943f2e3
8abd03468ecf4c41a10d48df6a5027af3faef17d6996463fbc68e258d5149d8708d23eca315475ade
d95f095acae62b95864682630bac81258f6646e24d197ba9dc62aaf8abb1560fe4cd53558bcb1a74
70e8571346a8e16559ad555809180601a50457aee3154f7f4c6b3ff52f5d7fc8fb3ffaad8abbf4beb3ff

227

0052f5d7fc8fb3ff00aad8ab7fa6359ffa97aebfe47d9ffd56c55dfa6359ff00a97aebfe47d9ff00d56c55
29d7b52d4e74d362b8d1a7b589b53b0e53c92db3aad2e50ee23959bdb618aaa7e60799b52f2be9
ba6cfa75b090ea3aa59e97737d22b3c16105e3943752aa915453c57ed22f2752cc16b8abccacbf35
7cefaa5eda59ea36d6561613cfa5e9d770c71ce9793aeaf7fa869df5bb797d6fdd215b58eee10d1bb
70978337d9931541a5ede797758f37dfe85a9ccf79a479b748f2fe9d1ea97d7f7b65159eab67a6c13
7a90b5c8e7c259e6981247ef55be21f162abf5efcdfd59350bff002fccf637f2585dd947218d2e6c596
6b7d7ad74e9978a5c7a9bacbeb80c42155e9340dc8aaf4afcacba6b9f2eea44dd497620d7b5e8239
6695e7658a2d56e5634e6ecc78aa05082b4e1c78fc38ab09f31c1a5eb5ab7e5c5dde6b735d4be6a
bd9a0d42e74bbcbfd3ad6e6dd348bb2861812e3f749eb2c4c37e5eaf1f8aa71549b51fce1f35f957c
b761ab5eddd85e2cf7b7d6b6962b6973ea3da691aa45a73fa972d3c9ca4785fd727872fda0be9abb
62ac8bf2ff5e9756f38e8eef38467b1f35c135a4134ed6eff0052f304515bca639a5928cd1f3606bf65
db8523a2aaaf65c55d8ab15f2c7fca4fe76ffb695a7fdd2ecf157fffd4f7479a085f2ceb4c4d00b1ba24f
ca16c552dbef32e9fe52f27e9fabea5ccc0469d6512462acf717f2c36b02d4d00064954163b28f8b15
62f69f9b4f75af6a16634b99b49b27b4b0b9954209ad7519ef6f6c1c481a41ea4465b6408f18fb2fcd
b6af05517a7fe6d69b782d162d3af67867fab5ab6a3c228ad9751bb8ed1e3b790b4878330bb4229c
d7e1937d979aaaf73f99b0e9a6f1f59d324b0b7b5bcb5b012c97101512dd5b24ffbd70de9c401711a
b349c19ca8e4acdc71543f9cff0031356f2febf67a2e9da625c86bfd36de6769179cd0ea10df48cb18
668c23a1b41f1333290c7e1c55aff95bfa65c476ada6e9d3dc3df47a6cf6a1e48a3062d4e7b287e32
acfc1e3fafc64a36ed46edc59954db5af3bfe88f33c7e5f4b56b9925934a89aa56248d35596ee3f543
d58b95faa9ac7c17b51cd7e1552fd63f37341d0fcc1a9e83a85a5d20d24ac7737c0446032c962fa82
aa8f539ef1a30a95a73f6f8b155197f37f4eb696ea2bad135389f4c0cdad5638e91610000026060f00
2220574d464301000000000001000000000000000c00000000200000d83c0100d87c01006494b9
31c9216917f772fd55b830ff007e45c956adc156f42fccb9ae35fbad035db316972fac5c697a7c8a55
62e304104a23690b15698fa8cc10156645f815b8b62addefe6c5b69f79acd9cfa54d24da44da8929
04b1b34b65a3dbda5c5ccca1f800c3eb68a9156adbfc43157a0c1347710c77111e514aab221a115
56150687db154a3cdbb68adff0031563ff5190e2a9de2aec5520bff00f94c7431ff002e3a97fc9cb3c5
58f7e6569d2eada65fe9eb6dadba48ba7c8979a3bc3ea5acb05d3cd1dcdac7272e73412468f2c6c8
5648b82f193e24c55836851fe704377a05bea567736f612c2d38974882d6d124bd8afee649a4d4e2
9242b01bdb6303b2a24c239da65411bf1c5507a01fce1d4b50b5b4d5a2d7b4eb5964334334ed6e1
109d222548eea4819db88bd462dc1514f2f851217e01543eb9a67e606b90f94f5b7d2bcc76fae69d
16aed7dcded7d6b6d457456b656b7686462229eea85016e0e7e2e31c5b62aade618ff0034bcc5fa
46daef47d617479ed965921adb13f58b6b8d2af11adc094716e0974b1a7a7c84b5492491b87155a
d56c3f35ecf508b57d26cb50beba8ad2fbeaf71208daf068f3eb967722c8bc8f1ff00a59b38a611866
07ec234ab37c58aa2aebcafe7ebaf30681e63d022bf8fcd7a3e9d0585c6a5ad2c11fd6f4ad52e2e16
e2199e1765f5ad035bdd84f8aad07a7cdd9dce2a93e93a5fe63795ece3b0f27797b58d3f4ffd3daad
e7a682cd2292da4d56ce5492688c8ac5a6b6f5d95b971fef16487d56474553c9ae3f331db52bd8ec
7cc91da5d6a86192c62685e7b4d2922b8b7b796dbd5b98c492c9318ee6e38c9c12368e30ade948
aeabdbf4a8eea1d32ca1be91e6bd8e0892e269787a8f2aa00ccfe9809c89dcf01c6bf676c5528f221
27ca3a513b1f48ff00c4db156458abb15762aec5523f349a5a587fdb4f4f1f7dd478aa7065848219d4
a9d882453156b9db03f692bf31db1568bdaef568e87aee3156ccb6c7aba1fa47cb15709ad97e1124
63d83018abbd6b63bfa91fcf90c55a173682a04d18f11c97fae2ab7eb762bbfaf12fbf351fc7156cdf5
90eb7317fc1aff5c556fe90b0ebf5a869ff001917fae2ac67caf736c7cc5e779c4c8601a95a032721c0
7fb8bb3ef5a77c55ffd5f7279c491e51d7c8ea34ebc23fe443e2a87b9b8d36d3c9d04bac4315c69c2
d6d92782e0c4b137a9c114319d953ed114e47af4df154a2ff0050fcbdb90d6763aa58596acd345a5
417764b6f35cc3732cb32c7180c9200c5d671f12fc2deaf46e58aa1216fc988e15b079f429de5b71a
6cbf586b59679e1d3638be194bfc4e224f49896fb23d36e9c7154c67bbfcaf8add2ee73a4fa12424a
31585b9c3668ea4050092116275e34fd865fd9c5513a95e7e5edc2d86bbad3e9b5bbb74bfd3ef2f8
449235bc2015950ca030082e7afec7addb9e2a944d73f955637925a9b1d28306b5b056862b672d7
12ccf6d15b708eaea55ec8202eaa81a251cab11e0aa23cbbe67fcbaf3de811f9f6dbea4f6c6dad6f2f
2e6f0402e2cd225fadc22e4d5bd368bd42e2adf012cca71554bcd4ff002aa7b992eafe7d165bdbe88
cf3493fd5da59a231496859f97c4c0a0920dff67945e2b8aacbbff9547a55969baa5eae836ba7dc5a
bc3a55dc8b6ab14966e0b48b1391468c89096a7c347627ed1c55156b27e5b69124b1d97e8ab496
ce7449961585192e5c370a8515e748da87afc0dfc8d8aadbfbcfcb2469b50d4a4d1d5a4bbf4ae2ea7
f4072bc602dc8776eac40119a9edc0e2a98e9de6fd1b56f31dff9674f90cf79a75ac3797332156878c
f34f0040c189e4ad6efcb6a7e34557f9b457456ff0098ab1ffa8c87154f315762a916b1a76ad26b1a7
6b1a4fd5ddece0bab6920ba778c30ba6818306447fb3e8f4a7ed62adfabe71a6f69a657fe626e3fea
862aef57ce3ff2c9a675ff00969b8e9ff48f8abbd5f38eff00e89a67b7fa4dc7fd93e2ae12f9c6bbda699
4effe9371d3fe91f154b3cc1ac79d347d2a4bf8acb4b6749208c07b8b92bfbe9e388d40801e8ff7e2a
99fabe71aff00bc9a653fe626e2bff50f8ab5eaf9cabfef26994ff989b8ff00aa18abbd5f397fcb2699ff00
49371ff543156bd5f3a76b4d2ffe926e3fea862adfabe73ff964d329ff0031371ff64f8aa27cb9a6cfa3e
8761a65cbac9716d12a4af1d7817ea78d77a54ed5c5534c55d8abb15762ac3cdb41e79d44cb7914
771e50d32565b58245e71df5ec755699830a34509aac7d43cbca4ff75c67154cbfc11e4dff00a97f4e
ff00a4487fe69c55bff05793aa0fe80d3aa3a1faa435ff0088e2ab7fc0fe4bdc7f87b4da1143fe87074ff
80c55b1e48f26a9a8f2f69a08e845a41ff3462aeff04f932b5ff0f69bca94afd4e0ad3c3ec62ad9f24f93
4f5f2f69bff48707fcd18ab5fe08f267fd4bba66fd7fd0adff00e68c55a6f237925bed796f4a34f1b1b73ff

1a62ae3e45f241353e5ad289f13636ddbfd862ad7f80fc8dff52ce93e3fef05b7fd53c55191f967cb70
e9d3691168f631e9370c249ec16da15b791c15219a30bc490557723f6462afffd6f7179d283c9de61
27a7e8cbdaf7ff8f77c554aef448bcc7e4f8f459a67b78aeed6dd5e68829750a11f60e08de94dc62a9
0c9f955a74d702e24d52ec9170f7415444a39cb7f737ee0d12b46375247e21389fb63962a86b1fca
0b3b16b59a2d72f45dd9e99a868f6f751c5670c8b06a296f1890fa502069625b68f84847c5fb7cb6a
2abb45fca3b2d0eef51b9b6d72fde3d62de6b5d5addd6dbd39c4d25c4cae290d63647bb98828472
e4a1f971c5536d6bf2eb48f31683a4685ac5c5c4d1e931884dca18e396e2236ed6d2472d129c2404
33aa85f8957c315424bf963a7b5d5b5dc1a95dc3716906970452010bb16d227b89d6472c8793ca6
e65f57c6bc978b62aa5a17e5559797bcb17de59d3758be8a3bbd2ecb478af93d15b9823d3adcdbc
722111f12e41ab55695ec315410fc99d3bf47dde9edacde113490dcdb4de9db73b7bab6d4e6d563
902fa451c7ad3b86491195a3f87afc58aa23ccff0097973acc9e56d36d6611e87a6c1a8d9ead2aac3
14ad6f7f66d6c4471244231c8b1af109c3f67f9715517fc99d2dee6f2e1b58bf6fadfd5c45cbd0f56d85
9497125a9b799635951a0facbac4e1f905e2adc873e6aab37e50691fa4d7548751ba8a6fad5c5cc9
6fe9dacb68eb7855ae13eaf342f12195911de48d55cbaf3fb4cfc954dbca9e41b7f2aea973a945a9d
dde896d23d3adadee443c20b482e27b88d03471ab3106e19793b12542d7e2f88aa9a79b76d15bfe
62ac7fea321c553bc55d8abb15762aec55d8abb15639e7b34f2cdc1ad3f7f65bffd1e438ab23c55d8
aa5faceb7a4f97ac4ea7ad5dc7656224860f5e5345f56e645862414a9259dd540f7c5546d3cd1e5d
bed5ee741b3d4eda7d66d01373651c8ad2a71346aa8eea766a7d9db952a3154db15762a80935ad
322d66dfcbf24fc757bab69af6ded8ab55eded9e38e470d4e3f0b4b1822b5f8862a8fc55d8ab18d7a
eae359bf1e52d31da30cab2ebd7b1901adece4af1890d6a269e855683e08f9c9f0b7a5c956436b6b
6f636b0d959c4b05a5b46b0c10c638a247180aaaa074000a0c555b15762aec55d8abb15762aec55
d8abb15762aec55fffd7f70f9d885f2679898f41a65e93ff0048ef8aa1755b6d66efc970db68415b549
21b311f29ded7e00f19948923048223e5c47476f818aab138aa49e45d0bcfda55f5acbe6abf5bcb64
d261b5ba0d334adf5f84a832a30e01848a2afce3e4ae3923fef2440ab02f2a683f9a5aa7912cefad2f
2f62d52fada3128d4f50b95b94bcb7fae7fa471955b8072f6f1b4676a27a9e9f25ab2ac9c7963f3160f
d1f756f34cd77fa5eeaff005212eab348bf526d4e3961b74470d1f1faa738e81578b0e3fb7cf154a9bc
93f9b10db5a9d2b549adf5448a059ae6ef529aea2f54dbea114ecd1bf30df149667ecffbab92fc4bf1a
a89baf257e60ace9a9e9b2cf1bcd6b14775693eacf35c2a8d43eb3716f1cc62083d48d8a44fc7f761
38720a7e1557cde47fcc582d2fce9da9dd3ea42eac974c6bed56e2e226b182c228a58e7e3e99ac9
3a333cb1aacc0b7ac9cfe289d57ae5b3dc49172b988432f271c15fd41c5588535a0fb4006a536e98
aaae2aec55d8abb15493cdb4fd0ad5e9f5ab1ff00a8c87154ef15762aec55d8abb15762ac5354fcc0
d1749f39e95e49b849db50d520927fada203696e5591228e69091c5e666222500eebbd39272555f
cf869e58b93d693599fbaee1c559262aec55e63f9c1f97be6df3e69f0c3e59f30c5a535bfa44595d5a
25cc0f2a5d4337adc8b02ae8b1b05d9abc8afc3c89c5538bcfcbdd0ad9b5bd76cf478751f33eb76f1
41a9b493c966b79e891b33a73280915d81a500c5522fcd7f21f987ce3771cda304a41a26a9696cef
772daf0d56e65b492ce602307fbaf4653ea7da4e7f0f7c558eb7e5bf9f6df528a4d3edad23d26c3599
754d2e1fafcab2c36f25fd9dc340a0c4ea8af14770a7810dca4e05fd22c315418fca5f3a5b49e53bdb
5b5b49a5d2e2d407992c2eaf649a3d47eb77b69247134ae8cf4486d832b6dfbc8e28d91e2e78ab3
1f3279bfcf5fa7ed743f28c3a5b5a8d52cac2fae6613ce60824224b84a83127d6561591d635f55635
50f2d39a232ace3cc3ad9d22de286ce3173addfb9b7d2ac8923d59a9c8b353a471a82f2b7eca0fe6
2aa5554d03465d12c3eaed335ddf4ee6e350be900125c5cc80739180d8740aaa36445541b2e2a9
a62aec55d8abb15762aec55d8abb15762aec55d8abb157ffd0f7bde5a5b6a169716179189aceea3
782e216fb2f1caa5594d3b10698aa4c9e4cd1e3458e3975048d14222aea77e005514007effb0c55b
ff07e934a7afa8ffdc4efff00eabe2ae3e4fd24ee6e352a9eff00a52fff00eabe2ad7f83b49ff00968d4bfe
e297ff00f55f1577f83b49ff007fea5ff714bfff00aaf8abbfc1da4ffcb46a5ff714bfff00aaf8abbfc1da4ffcb
46a5ff714bfff00aaf8abbfc1da4ffbff0052ff00b8a5ff00fd57c55dfe0dd27fe5a352ff00b8a5ff00fd57c5
524f31796acb4a7b0d5d6ef54fd1b04de86a900d5350e260ba22313504c4d627e2d5da91992b8aa
767c9ba41eb3ea5ff00714d43feabe2aeff00076914a7ada8ff00dc4eff00feabe2ad0f25e89ce3691ef
a658a48e558e6d46fa58cbc4e244e48f315601941a3023156438aa5da96b7a7e973d95a5cbb35ee
a3218acad625324d21515760ab5a22035773444db91f897154c03a924060483422bd0e2ab259e1
811e59e458a38d4c923bb055545152c49e800ea71562727e66f94d756bed1619aeaeef34d8acae6
f5acecaeaea18edf53afd5a5f5618d9191f8b1e485828562dc40c55935ddfc36712cacb24c1a48a1e
36f1b4ce0cf22c418aa024282d576fb28b566f8462ac2ef6c341d5fcf1a54b6eb6f77697f65ab35ecb0
b2b896e2d67d3a304ba13f144610bd6a853154e7cfdff0028addd3afab69ff515162ac9715762aec5
5d8abb15762ac5755d4eff005ebcb8f2df96a76b630111eb1ae461585a5684c10720435cb29f0290
03cdfe2e11baa99c56da1f94b43a2aada693a6c6f3348dc9d852acf2331e4ceec492cdbbbb37766c
5505e5cb1bebab99bcd1ae45e8ea7789e958d930f8acac090cb11dcfef5c80f391fb5c63fb3129c55
9262aec55d8abb15762aec55d8abb15762aec55d8abb15762afffd1f7f62aec55d8abb15762aec55
d8abb15762aec554aead6def6da6b2bb8c4d6b711b433c4dbabc7202aca7d8834c5524f295c4d1d
9cfa0de333df68727d49a4735796dc286b798eec4f38ca8627fdd8b262ac8315762aec55e69f989f9
63279cb5a4d660922174ba45d691693cace92e9f733cf0cf15f5b32027d48da2e9f0f2a27c7407155
0f2f7913cd9a7799353d5b564d2af2c2f9ed4a5b2c9304492d352b8ba5ba11983698c73f2dddcfae9
fde7a6470550ff987f96fe6bf37f985aef4fb9b0b6d21e036f2348f32dcba4b617f65224aa22757506ed

229

64401e35f85f9ab371755528f2d7e5479c7cbfab4bacfa5a54f74748f2e697691adfdec10c171e5f59
55e5648e002547f56a91b05fb3c491cb962a98c1f95be60b27d505a9b06b5d4f59d33cc104264963
fa8cb63a92ddcf6d01111fdcc88ace836a5ccf71b7a6e38aaade46f2a5ef92359f2d7972f7eac4c517
9a27864b3e5c2486f351b5ba8d9c32271900938b01c86df6ce2acdbcf9ff28b5dff00c64b5ffa8a8b15
6498abb15762aec55d8aa9dc422e209602ef1895190c9131491790a55587423b1c550fa5e9761a3
58c3a6e9b0882ce0148e35a93b9ab3331a966624b3331e4cdf136f8ab1d451e71d65679149f2be8
9707eae08052fb5184d3d4dfac56cd509b7c538e636890b2acbb15762aec55d8abb15762aec55d8
abb15762aec55d8abb15762afffd2f7f62aec55d8abb15762aec55d8abb15762aec55d8abcf7cfbe68
d1bc8babdaf99afa54b4e76ed677f2dc030dbcb6e4b341fbf61c0bc531a7a7cb9fa73c92712171567
76534d71656f71711fa33cb12492c55af076504ad7d8ed8aabe2aec55d8abb15762aec55d8aa0a6
d2ed27d52d3589037d76ca19ede060c4288ee9a2692abd09ac294f0c5528f3e007cad795e9ea5af
e175162ac9315762aec55d8abb15762ac675fbdb8d52f57ca3a44f241753209757be86a1acec5ea3
e07a5166988e117ed2af39a9f00e4aa7f67676da7da41636512c3696c8b1410a6caa8828a07c80c
555f15762aec55d8abb15762aec55d8abb15762aec55d8abb15762aff00ffd3f7f62aec55d8abb157
62aec55d8abb15762aec55d8ab0ffccebab6b4f29486f74cb3d62c6e6fb4cb1bbd3f528bd7b6786fef
e0b5726320866512f25afed0c5539bbd7a0d3acb59bebab3ba86cf438de591cc6b49e28a013b35b
d1be200129bf1f8d587be2ac464fce8f2a42a167b5d492f7d6f49f4f16bea5d2c7e95b4c26f4e267e4
863bb85804e527c54f4f92b2aaa89d3bf36fcb1a96b03408a1bc8b5560f4b79638d5b945a9369722
d048774957937fc53493156798abb15762aec55d8abb15637e7c15f2b5e7fc64b5ffa8a8b156498a
bb15762aec55d8aa53e61d6bf4359a9b78c5cead76e2db4bb1af133dcb025549ec8a01791bf6235
66c550fa4e992f973489a69436a9ae5c1fad6a7711058deeaedc0525448d444500246a5a91c4aab
5db156bcb3e6dd3bccb6367731ffa25e5e0ba68ec2678da62b633fd5a6910c6ccaf187e3c6442559
5d0fed62a84f30fe60797f418e50265d42f2deeec2caeec6d248dae213a95e47651c8e8cc3e159251
ce9bff00b2c551b279d7ca308ba69b5cb18d6ca4482e99ee23511cb2b98d14927ab3828be2e0afda
c5552dbcdbe57bc974f82d358b39e6d5a3f5b4c48e7463731d0b728a87e2d958edfcadfcad8aa738
abb15762aec55d8abb15762aec55d8abb15762afffd4f6c68be6bbad7f49b2d6b4ed0ee9ac2fe24b8
b66796d518c720aa92beb6c48ed8aa37f4b6aff00f560b9ff0091f69ff55b1577e96d63feac173ff23ed
3feab62ad7e97d63fea5fb9ff0091f69ff55b156bf4c6b35ff947ae69e3ebd9ff00d56c55bfd31acd2bfe
1eb9ff0091f67ff55b1577e98d67fea5eb9ff91f67ff0055b156bf4c6b5ff52f5d7fc8fb3ffaad8ab7fa6359
ff00a97ae7fe47d9ff00d56c55a1ac6b5dfcbb743fe8e2cffeab62aa71799641acd8e8b7fa5dc595c6a
11dc4b6d2bbc124645af02e0fa723104890536c551dade87a77986c469daac6d2da09a0b908923c
47d5b4992e226e51953f0c88ad4ad0d37c55ab9d0b4fbbb6d56cee7d696db5a564be8da7988e124
220658aaffba050748b87c557fb6c5b15485bf2c3c9cd7f1ea8b6d7116a31b545d437b770c857eaf0
5a346c63957946d15b42ac87e1631abd39fc58aa26d3cb3e493e629f55b2b5b6ff00125add497b75
244e7d68ee6eed92ddddd036dce254d88e27edfdbf8b1564f8aa55aaeb12e9f7569656d612dfdd5d
acaea913c51854838722c6574fe714a62aa0758d6ea29e5db9a1ebfe9169b7fc96c55a3acebb5ff94
72e78f8fd66cff57ad8abbf4cebbff52ddcf5ff00969b3e9e3fdf62ae3aceba08a7972e48ff00989b31ff0
03371549bccb3f9a358d167d3edfcb72acf2b42ca5eeed02feea6490d4890f65db6c55363adf987b7
966e3fe92acffeaae2ae1ad798bbf96671ff0047569ff5531571d6bcc43a796673b7fcb55a0ff9998ab
475bf3272a0f2c4c576dfeb7695f7db9e2ad0d6fcca4d0f962602bd7eb969ff0035e2a81f27b49e663f
e36d52dfd1b99bd6b5d2ac9d8486ced6395a37f886dea4cc9ca465fd911c753c3932ac975386f6e2
c27834f9a182f1d78c52dcc46e2107bf38c3c65811b539ae2a927957ca10f94605b1d2e58e2d2da5
bdba9ec62804710b9be9c4e7d101a9144879811006bcb916e43e2558e49f957752e9d3e8f2f981a
5d37f49c7a9e9e24b488dc411a6a91eadf57698307917d58f82b7c27d33f1fa8e15c2a82d37f23f4e
d3574658f569a53e5e586db4a796252c2ce1d561d54c73518091cbc11c624a2f140c78f3766c5515
e57fca18fcb3adfe968f565bc81dd2796d6e6ca1764b88a5b99164b79589686ab72637039542fc1e
9967e4aa63e52d2a4d7b46fd2ba86a9a935d4b79a8237a77b3448162be9e34554460a02a2aa8a0
ed8aa7a3ca96a3fe963aa1da9bea173ff35e2aa17ba0697a7d94f7d7dac6a36d656913cd737326a5
70a91c51a9667625e802815271540d8dbe857ba336bb1ea5aca69eb14b3933dcdf45298a1ad5d6
3621d9481552aa798a71ad71552d1dfcadafcb710697ae6a92c969059de4fcaf2f62020d46332dbb
5642a087553d3ecf46a1c5538ff0d5829e2753d4b9781d46e6bff2731551b6d0f4fb913f1bfd5d05bc
a60669af2f220cc029e485d87353cb675aa938aa247966c8b141a86a4585091fa42e6a01e9feecc5
577f85ed3fe5bf52ff00b885d7fd54c55aff000bda7fcb7ea5ff00710baffaa98aa5fa96851dbde68f0c5
a86a4b1ddddbc338fafdc9e518b4b8940ddf6f8a353518abfffd5f687e567fe4b7f2aff00db2ed7fe4d2
e2a8bd6fcf5e58f2eea31697ac5e35b5d4bf57258c13bc31adecc6de069664431c6af28f4c33b28e6
541fb4315401fcd3f248960b7faf4a6eaeae56cadad56d2e9e7799e07ba5a46b1160a6289e4e4405
e28de18aad97f35fc8d0db4d7675091e2824f48886d6e6677adb4978af1ac71b1746821924575aab
2a1df154c7cbfe78d0bccedab7e8633cf6fa3b4493dd7a120865fac5ac7788606a7ef418a543f0eff17
cb1563d75f9a0b179c21f2b2d8a5b99a3b5bc81f5399b4f96e74e9a2692e2e2d96688090dad009a0
e4b32fc4ccaa38f3551e3f363c886ddeebf49910472fa32b9827a2031a4c2463c28b114911d643f03
06d8e2a8a93f31fca51a5ec9f5a9dd34f9ae2dae8c76774f47b2731dc95e311e6b0b0a4ae9c952ab
53f12d554a747fcdbf2e5caea116b728d32fac6f6fed238596664b88ec7513a7a343218d564777318
31465995e455c553dd17cfbe57f30dec1a7e8d7725ddcdc5ac77e025b5c044b798c8b1b4b218c24
658c522857656e48c298aa07cc7756d67e78f2a4f77324102dbeaa1a5958220aadb52a58818aa7ff
00e23f2f7fd5dacbfe9222ff009ab1562b3e89e4bb89e59dbcd57e8f2bb48523f315e4680b1ad1516e

40503b002831553ff0ff00927fea6cd4bff0a5beff00b2ac55278fc91e51ff00175879a6e3cdd39fd0cfcf
4e83f4d5cc8f2724a32dd4935cbfa91d4b1f44058fa17e67157a37f88fcbdff576b2ff00a498bfe6ac55
2a9f5ad1eebcd9a2436b7f6d3caf6d7e15229a376241b73400127156437d7b69a6d9dc6a17f32dbd
95ac6f35c4ee68a91c60b331f60062ac0b57fcdff2f689aad943a8acd6da1cf05ec9797f3db5dc72da
cd6535945496130d5626178ac666a22fea55113fe6558d96af6d6976d6e34974d71af75056947a0f
a1dc4107a7c1e352ccdeb50f1fdb1c63f53906c551fe59f3c45af69bae6ab3d94f6d6fa3ea373a7fa4b
0dc4973225b8421cc1e909431e7f6021fa71548a3fcdbb38fcd9abf977568adb498f436b8975117d7
060bb5d361883c7a84513a013dbcae7d3e50b3fa6d457f8b92aaa9cc5f9a3e49916c1cea0f1aea37
474f80cb6f3c616ec4eb6a2290b2008cd2b2c6a1bed16f876df156ec3f337ca3aadbdb5d69d71733d
bde346b6f28b1bc552933ac51ca79440889a46e02523872e5f17c0fc5563be51fcf1f2c6b9e51b7f30
eb85f49d45a389ee74d10dccad59dae047f572625370a45acc79441bfbb7fe5c5598f97fcefe5bf34d
ccf6da05cc97a6d9239279d6de74b75f5a186e117d578d50b3453c6e10372e2dd366c5590e2ac1ff
2eb58d261f29594335fdb4732cb78ad1bcc8ac08bc9850826b8ab273af689434d4ed2bdab3c7ff356
2ac5ff004af9b2bb799bcb34dffe3da7fa3fe3ff001568eabe6dede67f2c529ded67ebff00710c5520f2
b5ef9cedbce37325e6bfa4ff0081cfacd756f38916e25bc9189e765ea5e4cd1420f5121e0d5fdcc48bf
1155e93fa7b43ff00ab9da7fc8f8ffe6ac5523fcb692397ca504b13078def35364752194a9d46e0820
8ea0e2acb315483cf3a14de68f267983cb76eb0bdc6afa7dd58c3f5aafa01ee6268d59e8ae68a5b9
6ca7a62af3b5fca7d796e2b14d676b023da5cda496ed224b6f1db69234f934e5023e26d6590194d3
8fdb7ac464e2d8aa1edbf29fcd715fe9b7d712e9f716761168f15de8d2492bdaea09a669b77632c73
130d0287b959e1aa483947f1a03c595542dafe416af689a620f314770d6c968da84d736c249ee6e3
d0934dbd2652798492c241120af2f5628a5763c4a9555f5bfc9ad675393518631a71d366b9d6e6d3
eda5794c70a6a5a6c16769f07a4554c3241cfe1fb1b18fe218aaef20e8bae5bfe66ea5a96b16334ac
8d790c77f27d66368c4915a46e5da5b548e78a47b62f6c56e1cc6b2bfc03937055ed98abb154a358
ff8e8f97ffeda127fd405de2aff00ffd6f687e567fe4b7f2ad7fead769ff26971550d6fc8c7cc5e6b96ff00
5490ff0087a4b0b3b696d22978b4f3d95ebdda8907a7508094fb122f2a32b0e27154169bf939e59d
3355d3f584bcd42e2ef4d9639e2faccd1c8b23c5697365597f740b968aee50e49e4ed4763cf72aa22
0fcacd1e2d234fd124d5354b9b1d28c8ba70b8b8491e1865b39ec44418c756548ae1d559f949f639
bb705c5534f2b791f4bf27d9ddd868f71742def12dd5fd5747647b4b386c56443c0518c7047cbf679
2d428c552cd53f2b344d7a7b73afdfea1aad85b5e43a9c7a7ddcc8d08bdb7b616ab2ab246b22d57
933a23ac6d23bb70f8a98aa0afbf27345d5344b0d0751d6b58b9b2d3619ad6dbd4b9889fabcb1081
5187a3c18c68a3d394afadd7948dc9aaaa651fe5ae9905c5b5e5b6a7a8dbdf5b5eea37cb750cb1a1
610000026060f002220574d464301000000000001000000000000000c00000000200000d81c010
0d87c01003b2eb32096eedd808b8989dd55c7c3ea232a9491698aa597df92fe5bd40219aff5159a0
b8bcbdb59e39a34921bbbed462d51a646117da49e14281b9270aa48aeac715651a47952db48d6a
f75e5bdbababed42d2d6caecdcb46cacb64d33c6e38a2d1899e4e54f8370151428c552fd7e28e6f3
df94e3951648cdbeab5570187d9b7ec71564bfa374eff0096487fe45a7f4c55bfd1da7f5faa435ff8c6
bfd315637e6df32f94bc8d68353f31dafd574800b4fa925afab043434a49e986615aed4538aa77a7a
e8baa585b6a7630432d8de449716d2fa2179c52a8656e2ca08a820ee31540eb7ac792bcb7109bcc
179a769a8e4227d69a1899d8f45556dd89f003154a2db55d1754f396911e99692a88acafe5177259
4d6d09e4d6cb48e496340cdbfecd76c55946b9a358f98b46d4341d4d59f4ed4ade5b4ba54768dcc5
3a146e2ea4156a1d986e0e2ac3b59fca5d1fcc5a72e9dae6b1ab5fafd42e34a9ae269e233cb6f772
5b4b216610801ab6b150a85fdaeacecd8ab57bf941e5fd47d75bdbfd42549cea8e55658a22afaccd
15c4ccad1c4ac0acb0c6f16ff0d3f697154f749f2743a3e99aad85aea97c6e758b992faef5267845c8
b999511de3e312c6b5e03e111f11e18aa49e61fca3f2ef9b2676f325e5fea36a16fc58dbc932a7d4d
b5552933412c48928a29a46ad232c745e23e15a2ab756fca3d275d6d267d635ad5ef2fb48682482
ee59e0e6f35ade437d1c8c8201186125ba03e9a2734aabf2c5511a47e57695a11d1db4cd5753b76
d22d3f4755278d45d59acc678e3b802200fa6e4f178fd37e2ccacccacc0aa96597e48f96f4eb6d360
b0d5354b79b464b55d2eed2583d680d94976e8c2b01562cb7d3c6e1d595a37fb3c94362acbfcbde
56b4f2e5ceaf756b777572facdc4779742edd65e33456d15ad518286dd214e5c8b7c5f177c553dc5
5e79f97de53f2addf956d2eeeb43d3e7ba966bc796792d20791d8de4c4966642493deb8ab27ff000
5f93bfea5ed33fe90adff00e68c55dfe0bf277fd4bda67fd215bffcd18abbfc17e4effa97b4cffa42b7ff00
9a31577f833c9dff0052f699ff004856ff00f3462aeff06793ff00ea5ed33fe90edffe68c552dfcb3862b7f
27dbdbc11ac504577a9247146a11155751b8002a8a0000e8062acbb15762af37f39f9c3ceba4dee
8d26876d610e8fab6a76ba227e9486e7eb62e2796e12497824918f4d4448d1ff00bf43f2e4a29555
ab5fce3d0adb49bebbd7e1b9825d0659ac3cc57b6f6b39d360beb188c974126902d634e3f0b1fb7c
91139c8dc7155f67f9897779e75b0f2f5b1b5b8d3ee351d5f4cbb710cf0cf0be9b6b05cc60191b8b92
253c980e0c0af0fdac55e8d8abb15762aec5528d63fe3a3e5fff00b6849ff501778abfffd7f67797fcb5
e69f2e689a768365ac58c967a6c096b0c92d84a6468e25e2a58add815a0de83154cfeabe71a7fc75
34eaff00cc04dff6578ab46d3ce5534d574e029b0fd1f31dff00e9331577d57ce5ff00574d3baffcb04d
d3fe92f156feabe71dff00dc9e9c7c3fd026dbfe9ef1572db79c8125b53d348a6c0584e37a7fcc59c55
df56f38d3fe3a5a6d7fe6067ffb2bc55afab79cfb6a7a6d29b7fa04fd7c7fdebc55b36de72de9a969a3
c3fd067ffb2bc55a16de731d752d34ff00d184e3fec6f154345e5fd6ee3cc1a6eb9ac6a36d32e990dd
450dbdada3c059aec4609667b8976511ec02f7c5534d6753bed3a24fd1da55c6ad7729212181a28

231

9178d3792499d1546fdb937829c5583ea3ad79c350d48e9704d4bbb72c6ef49f2f2c73b46ae0045b
ad4af952288d0f231c70faf4f892ab8aa8dcfe596a7abc3c6e25b3d266696269ef08975cd4668213c8
46f757c540563f6d046c9fb3f12938ab2b3e49b4b97326b3a9ea7aab347e93c73ddbc16ec3b9305a
7a11127dd3154c34df2d796f4150fa5e976761e98359618638da9dc9702a7dc938ab14bfbef3379a
b56d3b53f211b4b7d374f69edee358d5e0965b6b98a6e3cfea7145242f251a35a4c5961607f7665c
553a4b1fcc1a0f535cd249efc74ab803f1bf38aae365e7dda9ad695ee3f464fff0065d8abbea5e7da9f
f735a5536a0fd193f8ff00cc762adfd4bcf9434d674aad76ff007193ec2bd3fdeec552af305c79ff0042d
266d4c6ada4ced13c2a223a65c283eb4c916e45f1a50357154d4d979f2bb6b3a585ff00b664f5ff00
a8ec5569b1f3f56a35bd2b8f87e8b9ff00ecbb1577d43cff00527f4e6954ec3f454fd7e7f5fc55df51f3f
53fe3b9a5d7fed973f4ff00a4fc55c2c7cfe0efae6947c07e8b9c7fd8fe2a8ef2ae86fe5bd06d34692e0
5dcb6fea34b70b1fa2aef34ad2b109c9f88ab9a0e4d8aa718abb15762aec55d8abcd3ca3e75d0741
d1ce91ab7d76df51b7bed484b0fe8dd424039dfdc3a90c96eca4152181069438aa783f337ca07a4d
7bdb7fd17a9537f7fab62aeff00959de50e25bd6be2078695a993f70b6c558eea7af7e5eeb716976f7
b7bad4a74ad49359b37fd1faa97fad46eee81d8da92635f50a843f0f0a2fece2a90ea7a3fe4f6af6d7b
63752eb820d4afefb57ba58ad7588b94fab5b9b6b9155b614568da817f60fd8e27154c34f9bf2bf47d
5e1d72de6d69efed6eeeafc3369daacaad717d6f15acccc05a6f58e24dbb1f8b1565ff00f2b3fca35a7
3d4ab5a6da36aa7fec531577fcacdf299e8752edff4a6d5bbff00d1a62ad7fcacff0029d40035535e94
d1357edff4698ab47f343caa29fbbd5cd4568ba16b04edf2b4c552ed4bf31bcb97179a3cd0c3abb47
6976f3dc1fd07ab8e319b4b8841ded37f8e45141e38abffd0f7f62aec55d8abb15762aec55d8ab16fc
c9f31ea3e51f21f983cc9a4431dc6a7a759c935a24f5100969457978efe9a13ce4a7ec2b62af2ebafc
c2f38689aa718e317d71e5dd3b5d935db5b9bc26db517d3c6977227b492383790c772c91c5c2348
e4668cfd9e58abd1b5bf3add68be4dd73cd66dad2e9f4a773159c774cbfbb564012e18c64c5380dfb
c8f8bf16db962ac5ed3f37f53bcd6dfcb51e9b60bad595e4d69a8acda8a5bc4f1c576b6a64b5332ab
49c03abc89c6a0f18faba362aabe4ffcd9d5fccde638fcb571a345677bc47aedeac85165b279a0d52
352d18ab5b4ab02affbf16e637f87a62acb7c8812cacb51d0a424ea3a66a377f5c67055a4179335dc
52d4fda0f1cabf174e4ae9fb14c559562a87bebeb3d36d25bebf9d2dece05e734d210a8abee4e2ac
663b0bdf393a5deb70b5a795f692d74594159ae8d41496f176e2a3aadb1f9cff0017eed1565aaaaaa
15400a05001b00062ade2aec55d8abb15635e7d20795aec9e9eada7fd45c58ab23692346447755
790911a920162054803bd00ae2abb15762aec55d8abb15762aec55d8abb15762aec55d8abb1576
2aec55d8abb15762aec55d8abb157ffd1f7f62aec55d8abb15762aec55d8ab4e8922347228646055
95854107620838aa0d748d25638625b0b7115b92d0208538c6cc6a4a8a6c4d3b62abce9ba73413
db359c06dae5da5b984c6852591cd599d6946248dc9c554ce8ba319e2b93a75a9b982479e198c3
1f34964a73756e350cd41561b9c5516b0c2adcd63557f8be20a01f8c82dbfb91be2ac63cc8cfa0ea9
69e6f890b59220b0d782d3e1b267e51dc9a91b5bb962dff15492b7ece2a9c6a9aee99a45bc77177
302d3fc3676f17ef27b9722a1218d77763fe4fccfc3be2a95e9da56a5acdd5bebbe688fd030fef34ed
0432c915ab9dc4b3b2d564b8036aa93145bfa7c8fef59564d8abb15762aec55d8abb1579eddd5ff0
02de7e4791fae36e6a7a6aa69d7154d7cce07f8b3c90ddc5fde8fbf4cbafe98aacd33f30ac6ef5ad43
45d574ebbd05ace286ead2ef54f46282f2d6e2736c92465257284ca0208a7114a79a5137c553ebbf
30e83617f06957daa5a5b6a973c3eaf6534f1c73c9eab144e11b3063c98715a0ddbe1c5541bcdde5
5495e07d6ac566467478cdcc4183471b4ce08e55f8511dcff00928cdd14e2a917997f33f40d02e34c
b1b31fa6753d5da55b0b3b29edd5a468add6e846ad3488864923756863e5ca50dc97e00cc154f87
9abcbea02dd6a10595cfd5c5e4b69772a417114255589923720af1e6bcabf6792f88c5563f9cbca51
dc476926bda7a5d4d11b98a06ba844ad02f2ac810b5788e0ff001529f0b7862a975bfe6279627f318
f2efd760479ede0b8d36f1ae6dfd1bd69e79adda1800939b491c909575e3d48037ae2a8e9bcede4e
b6dae3cc1a7427d616c049770a133b297118058558a82c07f2ef8aa7d8abb15762aec55d8abb157
62aec55d8abb15762aec55d8abffd2f7f62aec55d8abb15762aec55d8abb15762aec55e53abfe6b3
683e63d727d7a0b8b5f2968d7a9a35b4b02c2deb5f7e8dfd2523cfea38758ca308e22a02f352d23f1
6f855675a46afae5fc91a5fe8c2c5394cb3cab7715c228411b42cbc002c25576ea10a321d99591ca
ac3efbf36e18b54d4bcbb068ef73aec177f50b0d324984335d9f4ee252fc5e3da374b7731489eb46f
5e0cc922c8b1aac724f3f793bc8777a9c9a5f9345add7d4a4d4d7d07804ef247f521710395e49094f
af47f02c87ecbfc0abe9b48aa69e66fcccf320f2b6b7a8691a62d95c692df53b8bb5b982e4c3a9dbcd
07ad6c62911032324a55251dea4a22f1931547d87e6d4da85d43a75bf976e25d4e0ba9adb5eb586
e2263651c37d2587ae8ce11658c3c65df78cac5fccf48d9563a9f9a9e6dd6f53d12e74ed16fa0d2b5
9d0353d5edb4cb0363777b235a4b6490c85a7288b5fac48a6305cd421f6c551f7df9c8da0cd7d652
69777ab5c58cfab8bb95a5b6b70906830d9cd72d1aaa8a829725a243c9cb2f077151455354fcd1b6
b5d57f465cc170209f5fbcd05b52bb68e2b6b7960107a6a1e38f8fef0ce040b29567e2cbea197d38d
d5493cb3f9c1ad368ba6586b1a24979e6fbcb1b1b9d3e38e68a35d445d5bdd4c5fe04a42ff00e853
7eeb8b7fbaf71c9fd3551e3f32b54d63cf7e53d2f4780daf97af2f751d3b58f5da26b86bbb3d34dd985
9006e1e939039a4879b2b7ec70765536badff002eae78f4faecb4f97e9538aa69e67a7f8a7c91ff006
d0bcffba5dde2a85d2fca5e6bb3d4b58d46fbcc56b7cfa9cb1c9103a58468628670e9096372dcd123
e491fc29c5dda66e6db62a86f37fe5a9f356bc75afd24b6aa6d6c2d0c5e87a8e069faa45a986127a8
b4e66211d29f0fdbf6c5524d3ff00232c6cf473a549a94493c3736d2d8eab63a7dbd9dffd5ed5a54f4
ee6605cdc3bdbcf35bb48dc578c8ceb189096c555ef3f262ce7f251f22fd761bbd1678ae62bc5d4ad
05d3bb48123b3991d648d925b38a348a170d5e28ac7e3f8b15525fc9792daef54bbb2d753eb77a8
a6d754bdd3a0bcd5a1b830c104c5af1d95de294400b46a2370cdf0cc02a055542c3f23a5d3e1d412

1f3004b8b8b78e2b1b88ec873b696df589f59858fa9349ea2096731bc6c7f791afda0dbe2a986bbf9
4d79e63992e353d722fac574992692dec161e53693aa9d54b28598f112b9e047c4c3ed9776c550b
a07e4945a1cfe599ff495a4afe59be5bc8a5834b82d26bb8a2b0b9b0892ea48deaf22a5cb1f5765e4
bf0c4bc9aaabd6715762aec55d8abb15762aec55d8abb15762aec55d8abb157fffd3f7f62aec55d5d
e98abb15762aec55d8abb15762aec5528bcf2b797750bc92feff4cb7b9ba990c5334d189164568da
23cd1aaac7d3768f911cbd3664fb2698abb4af2b7977438ed21d1f4d82ca2b04923b35857888d26e
1cc2d3b111a0f92a8ed8aa0affc87e4ad4239bf496896770924a2e9da68c31495247983a31de321d
ddea9c7e2776fda6c55e6da0ea9f935e7cb7b8d51fcbf668f76631a7dacb6b2adedddade0f4a19842
9103e95c2d982a63f517d3854c855938aaa9ff0093edfc89f99de5b8bcd97be58821bdf33e9f697faa
c3244f27a88e488c34de9a095c7a0037fbb02ac6240070c552ed2bcc1f929a9b69faa45a5fa7a8cd0
aeb507afa6dcb5c449adcec52491d637506e2688b282ff14abcbede2ab9759f20691fa2f5bf296956
7769a543a4d9693342f3c12c1a7f98f53362fc034457d3122f2e018f268cab88f82315520d0fcc3f95b
e69bb9ff4ce89a55bea1797baed9ded8adc4d757eeeb7c9a5dcb189211cbeb72240a52b56568fedf
03455965b6a9f9366e9ed608a1374d7514f7311b7b963f5cbfbf1a72998329f8cdddb2c6dcfec4b1c6
edc7e07c5503672fe43ead6f1dadbd85b4c8bf51b5b1827b3ba576f46e2e61b45b659630ede9ca97
2abe97d8fdefecb1aaa99796b40f2b79f7cb3a7f9e2c3458340f316a10fd62c6f6dd07af673c686dd1
d4f04dc222c6d5452d17ee9fe1f871551b4d23ccba7790f53b8f367a70eb57776ae6c2d2633da5b4
1f5fe68236654a97e664762bcbe209feeb18aa2fcede41d775ff35e85a9e8ba90b1d18cd21f3344c5
da66845a4d6e8d69bf18e47590c32301f618483e38d7157a32a8550aa28aa2807b0c55bc55d8abb
15762aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb15762afffd4f7f62ad0ff
003ae2ade2aec55d8abb15762aec55d8abb15762aec55a655652ac01522841dc1071579ca7e4d6
8701b59ed754d46db51d285bc1e5fd4227804da759da997d3b688342c8f1f19e48cfac92b98c85e5
550d8ab23f26f936d3c93a359e81a75fde5de97636b159dac57af1c855626918bf248d0977f528c4e
d444e2abf172558bd97e4b69361a5dd6936fe60d656dee2cb4fd3239165b65960b6d22ea4bab754
2b6e030acaf1c8b28912588f0915b154aaf7f2dbc8fe49d2eded752f34df69da6c874fb6b34b892d37
fd0fa84babdbc71816d53491df9f8c4b4edcb1553b1b7fcaab2f2b3f95879ae49d17519b5bb3d4a46
8febb6b7b717c7512f134702ad04e4b05646057f76fc936c552eb8d0bf27e6d4a1d5d7cdf736da8b4
b0dc6a32dbcb1a0bfb9b6d446a91493a9b7600adc0278c7e9af06e047154e2aa89f2bfe53ac96371
0f9def2df53d29623a65f2490096de582eee6ed6401ad8a393f5b96264911e3689b8f0e43962acdfc
a7e67fcb5f27f97ac7cb5a779916e2cec159229aee4f52760eed21e6cb1a026ac7f671552f38fe63f9
1ae7cbd75041ae5bc93334055139963c6e232760bd80c553e3f99be410789d7ad6bf36eff00462ad
8fccbf221ff00a5edb763d5bbfd18ab47f337c843aebd6de3d5bfe69c55c3f337c847a6bb6c6beedff3
4e2ad7fcacff00208ffa5edbf87edf5ff81c553fd2359d2b5eb14d4b46bb8afac246745b88183a7389cc
6ebb742aca5587623154762aec55d8abb15762aec5522d6bce7e57f2edd2596b7aa436575247eb
24529218c752390a03b541c552eff95a3f97ff00f5305afdedff0034e2a94ebbf9d5e44d0e04bf6d423
bbd3109fafcf6edca4b64da92188805d06e5f89e4a07d86ecab3cb0bfb3d52c6db52d3e65b8b1bb8
927b69e335492291432b29f020d7154462aec55d8abb15762aec55fffd5f7f62aec55d8abb15762ae
c55d8abb15762aec55d8abb15762aec55d8abb15627e643ff3b7f92c78dcdfff00d404b8aab5f7e60
79534bbbd5acf53befa93e886017d2cf1ba45cae607b9411b71a391146cedc2bc40df15518ff32fc8d
33aa41ac473fa93456b1bc31cd2a3dc5c42b711448e88559de37575553c8ab5715506fcccf2b5cae
96fa3ea569751ea575656e8d2c92dbf28b51594c0f083137aa6430b88c7c2ac55ff00780a531544d
b7e65791ef2c5f52b6d66292ca38a2b86942c94f4278e5952500a54c652195b98f87f76fbfc2d8aa8
afe63f9766d41ace0bb8520b6bd7d3ef6eaed9eda2e49a6fe94e76eed1949944255d9b9a204e6fc8f
1a32abee3f33bc876a1fd7d6a25743f1c3c253328faab5e8631842e14c08d32b71e2d1ab303b62a9
7da7e61de79867d79bc95a545ad699e5eb88ec2e2e8dd7a06eaf0c71cf3476c046e18451ca879b1
55773c13a73c553393f327c8d18e4dadc0412be994e6fea87ba1641a2e2a7d45f5d9612d1f255919
549a9c55023f37bc806ea7b6fd28785bdb59de4972209cc3c351ba96ca04e413fbc69e178fd3a720f
f0009df156bcc3f9a7e5cd2741bfd5b4d99352bbb3b5b8bd82c097b6370964c8b70b1bbc641788b8
122805a36f8640b8aa23f2dcd74ad64ff00dfc3ae8f0e9a9dc0c5598e2aec55d8abb15762aec55d8a
bb15406a1a369baacd6b36a30fd63ea6ccf0432331839b528ed15783b2d3e02ca787ec531547e2a
ec55d8abb15762aec55d8abffd6f7f62aec55d8abb15762aec55d8abb15762aec55d8abb15762aec
55d8abb15627e635af9bfc987f96e6fff00ea065c5505ae7e5a5beafaddc7982df5bbed335196e2cef
6136cb6ae915c59c135a160b3c128612433b23abf25e8e9c5f7c5560fcafb21726e4ead7acdfa760f
33286101a5d5b59ad908c9f48131b222b37ed73e8c17e1c55298ff002474d57d0de4d775093f401d
1dacc14b5018e80f72f6fea71845797d6e4f529c6bf0f1e3dd56a4fc90d3a5d323d265f306a46c534f
b1d1e4882daf19acb4f4bb8d125530157e42f1c9a8d9d2274e2c98aaa37e496893dac7a76a1aadf5
ee9624125c594c2dd5260744fd032ab3471230125bfc478b2f193e25a0f87155b27e4868b3dc0bfb
8d5efa4d51a06b39ef4fa01e5b61a74fa6448cbe971ac71dcc8e180ab4a793d57e0c5535f2efe58c1
e5299dbcb9ad5e585a5efd5a4d62d152ddd2eeead6de2b5fac7c71131492c70a09bd3a2bf1e4155
ead8aa5907e47796ed3f47ad9df5e431e8b22fe835ac6e6d2dbf4941aac96ea59097579ade205a4e
4eb1af0461bb62aa76ff00921a659dcbde596bda8c37131b36b86e36aeb2369dabcfacdb9a34269c
66b8743c4fc51d07daf8f15446a7f92da0ea76d7f64da8de436572354fa8c31fa3fe82faf4a26be684b
46797a8dc8a893988fd46e3fb3c554e3f2cd4ae8dabab37261e60d7433789fd2771bd074ae2accf1

233

5762aec55d8abb15762aec55d8abb15762aec55d8abbbe2aec55d8abb157fffd7f7f62aec55d8abb
15762aec55d8abb15762aec55d8abb15762aec55d8abb15627e646a79bfc963f9aeaf874ff97098e
2acb315762af24fcd7d4fcc3a7e8173e61b0d78e9c6d356d2b498adb4e9e368cc579ab5a41334e64
8aab318a564f4f711fdb0791d955097f31f5bf2a1f3269579f56d420f2e6a10e9769a85fdd30bcbb9af
add3508d592381507a7149e95797c5e9fa8e47c58ab1ef367e74def98ff2a7ccde64f2b5c41a3cd6d
a435dc2ab78bfa620b83676f7a8d1c250aba309b806a8aafef3f6b8aaac8edff396fef6eb43b5d2f4db
2ba7d5635bd952e2fd2c2486c9af4593a117214b5d40c4fd62103e19290f5757c559afe5d799f54f3
97956cfccda9d9db588d487ad696f6b3bdc85808a0e6ef1c5f1720db014a53156578abb15762ac3bf
2dff00e395aced4ff9d875dffba9cf8ab31c55d8abb15762aec55d8abb15762aec55d8abb15762aec5
5d8abb15762aff00ffd0f7f62aec55a35da9e3bd7c3156f15762aec55d8abb15762aec55d8abb1576
2aec55d8abb15619e6f99edfcd3e4b962b792ea51777c16084c41cd6c26a906578d76ff005b154f7f
4bea1ff560bfff0083b1ff00b2ac55dfa5f50ffab05fff00c1d8ff00d9562a945deafa3fd567fafe803ea5f5
9ff49f5df4bf4beb9b7dbe5754f57a75f8b155975abe87fe97f5dd017fbe8bebdeb3e95fef4d07a5eaf2
bafb7d3872f8bf9715428d5fca34938e816dc7ea917ad49347a7d46a3d2e5fe95fdd569c2bf07862a
a8dac7967eb56f5d02137bf5897eabfbcd23d5fad507abc2b775f5294e74f8bf9b154d34cd613ea30f
e87d02e3f46d0fa1f54934df429535e3e9ddf1ebe18aa33f4bea1ff00560bff00f91961ff006578ab5fa
6350ffab05fff00c8cb0ffb2bc55bfd2fa87fd582ff00fe0ec7fecab15483f2c2469743d565789e077d7f5
d2f0c854ba1fd2771b314665aff00aac462acd715762aec55d8abb15762aec55d8abb15762aec55d
8abb15762aec55d8abfffd900000840010824000000180000000210c0db01000000030000000000
000000000000000000001b40000040000000340000000100000002000000000000bf000000bf00
00af4300004e43030000000000008000000080fe7fe9430000008000000080ff7f89432100000008
000000620000000c00000001000000150000000c00000004000000150000000c00000004000000
51000000a41f01000000000000000000d201000012010000000000000000000000000000000000
005e010000ce000000500000001404000064040000401b0100000000002000cc00d30100001301
0000280000005e010000ce0000000100080000000000000000000000000000000000fb00000000
00000000000000ffffff00fefefe00fcfcfc00acacac005d5d5d006464640069696900666666006b6b6b
00686868006767670063636300626262006565650060606000616161005e5e5e005f5f5f0058585
800545454005757570055555500f6f6f600fdfdfd00fafafa007b7b7b001111110077777700ebebeb0
0e4e4e400dddddd00dedede00dfdfdf00e3e3e300e5e5e500e0e0e000e1e1e100e2e2e200e6e6e6
0099999900e7e7e700f9f9f900a7a7a7002e2e2e0002020200fbfbfb00ababab00f7f7f70003030300
9d9d9d00eaeaea00b9b9b90036363600040404009a9a9a0098989800afafaf00282828000101010
0a0a0a000f8f8f800adadad00f4f4f4004949490094949400e9e9e9002b2b2b005b5b5b009797970
01a1a1a000707070005050500a4a4a40027272700d8d8d800a1a1a1000d0d0d00f5f5f500ededed
009c9c9c00e8e8e80076767600dadada00cecece00cdcdcd00f1f1f10041414100797979006e6e6e
00d4d4d4008b8b8b0056565600f2f2f200bbbbbb007c7c7c004343430039393900444444003f3f3f0
045454500404040003d3d3d003c3c3c003e3e3e003b3b3b003a3a3a00aeaeae00808080002d2d2
d0083838300a3a3a300bababa00d5d5d500c0c0c000b2b2b200909090007575750092929200b0b
0b0007d7d7d0088888800707070007f7f7f0051515100f0f0f000efefef006f6f6f00c7c7c7007474740
04e4e4e00525252004f4f4f008f8f8f00b7b7b7002a2a2a00d7d7d700a5a5a5008a8a8a00ececec00
c3c3c300d9d9d900d0d0d00096969600a9a9a9009e9e9e007e7e7e00a2a2a20084848400b8b8b8
004b4b4b00c1c1c1008c8c8c005353530081818100cccccc004c4c4c00b6b6b600dcdcdc00c5c5c5
00b4b4b400d6d6d600bebebe0089898900bdbdbd0087878700d1d1d100a6a6a600787878007a7
a7a00717171006a6a6a007272720073737300f3f3f300c8c8c800cbcbcb00c6c6c600c9c9c900c4c
4c400cfcfcf005050500047474700d2d2d200b3b3b300aaaaaa00dbdbdb0093939300d3d3d30016
10000026060f002220574d464301000000000001000000000000000c00000000200000d8fc0000d
87c0100cacaca00bfbfbf006c6c6c004a4a4a00919191003838380085858500b1b1b10082828200e
eeeee00c2c2c20095959500a8a8a80086868600595959005a5a5a00424242009b9b9b008d8d8d0
046464600222222005c5c5c00bcbcbc00b5b5b5004d4d4d006d6d6d00060606001d1d1d0037373
700131313009f9f9f00333333001e1e1e002626260015151500323232001f1f1f008e8e8e002c2c2c
002f2f2f0017171700343434000f0f0f002121210035353500484848003131310019191900292929
00232323002525250030303000202020001818180010101000080808001c1c1c00161616002424
240014141400090909001b1b1b000101010101010101010101010101010102180201010318010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
101010101010101010101010101010101010101010101010101012e010101b10e776fc9c9c9c9c
9c9c9c9c9c9c9c9c9c9c9c9a7b990a789b92f90a79089c9c9a72bc9902bc92b6f2bc989c92ba72b6f
6f93db934ca7934993894989898989898989894949494949494949c9c9c9c9c9c9c9c96f6824010
32e01180101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
010101010101010101010101010100000101010101010101010101010101010101020101022a1
90101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
1010101010101010101010101010101010101010101010101010101010201030254cf2e0101010
1010101010101010101010101010103020201180202180101030102010303011818012e020201

18011801021801010101020118010101010101010101010101010101010101010101010101010
1180c8d02010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010000010101010101010101010101010101010102
0101022a190101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
010101010101010101010101010101010101010101010101010101010101010101010101019f79
18020101010101010101010101010101010101180101011802010201011801010103010101010
1180101012e011801020201020101180103010101010101010101010101010101010101010101
0101010101010d880101021801010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101000001010101010101010101010101
01010102180201010318010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
1030103be79010301010101010101010101010101010101180101020301010118010301010202
01010101011901011801010101010101181818010201180101010101010101010101010101010
1010101010101010101012a0b2018030101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010000010101010101010
10101010101010101020202010102010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
0101010101011801018ca301180101010101010101010101010101010101011801020118020201
03012e010102180101012e0119011901190103030201011901032e01011802020202020202020
20202020202020201010101010101010211bc030101182e0101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010000010101
01010101010101010101010101010101010101010201010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
101010101010101010101180101976e0301010101010101010101010101010101010172b80201
b13773022450c718b7bbbe7451b1c577aea43242a7d44f4ca59f1d32704e0101010201010101010
101010101010101010101010101010101010101010c88020101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010100
00010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
101010101010101010101010101010102019f94020101010101010101010101010101010101019
56b180126f52b017d635e2e09c39887b3617676702be395cd1edbe39d945a1489182e011818180
10101010101010101010101010101010101010101010101010e88010101020101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010000010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
010101010101010101010101010101010101180118028c6e180101010101010101010101010101
01010130010101183de497012ecd8001a0ca3eea3258010201b8e1e99f01ab3e0119010c390119
02020101010101010101010101010101010101010101010101010101010c710101010201010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010100000101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101019fca0201010101010101010101

235

01010101010101012e3001193f435e012aea97018d9798eab9c8011d3370dfad302aa55f9105bd0
73e5d01012e0118010101010101010101010101010101010101010101010101180d5a01020102
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101000001010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
010101010101010101010101010101010101010101010101010101010101b1a30101010101010
1010101010101010101010119898a19014ff795031f2c063c0441cfc5018a957589d3e0551cbcbd7
89ae44b57057b5101030101010101010101010101010101010101010101010101010101020c710
10101020101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010100000101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101020201039f8a0202010
10101010101010101010101010101012529be2217edb22e491f5a8e2e549b01034eb18e032fe64
eb3551827d37d18238da2180118012e0101010101010101010101010101010101010101010101
010106a1010101020101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010100000101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
0101010101010101010101010101010101010101010101010101010101010101010101020118b
1cf010101010101010101010101010101010101020101377b86f7c1380501181801011801010201
1901caeeae0101013d010102010119011801010101010101010101010101010101010101010101
0101010101010e880101010201010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101000001010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
1010102af7401010101010101010101010101010101010101012eae34c79797341f2a0101010301
2e0119020202b145ae01011801021901012a01010102180101010101010101010101010101010
10101010101010101010106a10101010201010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101000001010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
0101010101180103b1850102010101010101010101010101010101010218010302012e0101010
1012a0118010103010101180102012e0103012e01030201010302010102010101010101010101
010101010101010101010101010101180d7101020102010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010000010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
1010101010101010101011802019fc10102180102012e010302010101012e01010202012a01020
101010201011801011901010101010102012e010201012e0203010101012e012a010101011801
021801012a01010101012e010301030103010201180cbc19010102010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
00001010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
010101010101010101010101010101180201b3c10102012e010102021801181819010118010202
010103013d010201012e012e010119010202181802010118010302010102012a01010103012e0

218012e0119012e18012e032e0101010301182e1801010101020cba01010303020101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101000001010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
101010101010101010101010101010101010101180101b37401012e0101190101030101010103
182a0101020118020301180101030102010101020119010101010319010101011901010101020
101020103010201033d010101012a010301012a020102180101011801180111a1010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010000010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101180101c78501010101190201182e
021830011901010103020301011901010101013d010218030102010101022e010101013d03180
202020102190118010118011901011801020101010201030101010118010103030101020f88020
10101020101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010000010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
1010101010101010101010101010101010101010101010101010101010118010197cf0201022e2
ab72a2eba1f011d88332a2225ae1f2023712723ba8b532429bc7e4f8d8b9e188d264e5a24011eb3
4f01334b4f29a12e017dbe5ec602017db026011ebc7e25a10133201f1f8d0301ba807d0124ba420f
20010118180101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010100000101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010201027298020
10101936854cae0065e34de9b2ab66e42eb6bd3c2977cc023652fbee6a67c591c64226a50d4e388
4b0e891ab4b9dc3fd2cc018c136c32a57127aa76cf8c71e3a693645169813ee37702a70d4cca2a8f
35271153030101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010100000101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
0101010101010101010101010101010101010101010101010101010101010101010102020102b
e5b180118015b9117b68d0271b299190109c80108241999ae121101152118b542122292ca4e9c2
e27654e9ce201e20534990178c342d1900102ae4f0c1401b1f020995d700d20e1b73f164e7e68a1
01089171831910711901010103010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101000001010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
2020102be8a1801012a74ce170522334fbcd50119bfce010c8d2e84031211015c513f99171db964
6e17151826b64f87952a4567a2d20258e28a46191801011884a819b4ec71152abe0b25fa215d840
271872a010a98b413180588010102010201010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
010101010101010101010101010101010101010101010101010101000001010101010
The Searcher thread
The Searcher class is a subclass of the Thread class. It also contains the main method that

237

initializes the system and creates the first searcher thread. First consider the code associated with the
thread constructor. When a new searcher is created, it needs to know which maze it is searching,
which trail it is currently following, where in the maze it currently is, and which tracker to use for
termination control of the whole program. The constructor takes a clone of the Trail. Because the
constructors are called sequentially before the newly created thread is started, this method does not
need to be synchronized; there is no concurrent access. Note also that as Searcher is a subclass of
Thread, the constructor needs to invoke the superclass' constructor. Here, it is indicating that the
textual name "Searcher Thread" can be used to identify the thread. Note that in the program
fragments given below, all details of the user interface have been removed.
public
class
Searcher
extends
Thread
{
public
Searcher
(SearchableMaze
m,
MazePosition
from,
Trail following, Tracker tr) {
super("Searcher
Thread");
myMaze
=
m;
currentPosition
=
from;
onTrail
=
following.clone();
tr.newSearcher();
terminationControl
=
tr;
}
...
private
SearchableMaze
myMaze;
private
MazePosition
currentPosition,
previous;
private
Trail
onTrail;
private
Tracker
terminationControl;
}
Next the
public

run

method

do

for

(int

is presented.
void

This

gives the main functionality of the thread.


run
()
{
MazePosition[]
moves;
int
count;
Searcher
s;
//
Loop
until
no
more
moves.
count
=
-1;
//
Get
the
next
valid
moves.
moves
=
onTrail.mark(currentPosition);
index = 0; index < moves.length; index++) {
//
For
each
valid
move.
if(moves[index]
!=
null)
if(!moves[index].equals(previous))
if(!onTrail.visited(moves[index]
))
{
//
Have
not
visited
here
before.
if(count
==
-1)
count
=
index;
else
{
// More than one path, so create a new thread.
s = new Searcher(myMaze, moves[index],
onTrail, terminationControl);
s.start
();
}
}
}
if(count
!=
-1)
{
previous
=
currentPosition;
currentPosition
=
moves
[count];
}
}
while(count
!=
-1);
if(myMaze.atExit(currentPosition))
terminationControl.trailFound(onTrail);
else
terminationControl.searcherFinished();

} // end run
The search algorithm takes its current position and adds this to the trail it is following (by calling
onTrail.mark). This returns an array of MazePosition, where each element in the array is a valid
move from the current position. As the maze paths only go at 90 degrees, the length of the array can
be from 1 to 4. An array of length 1 would indicate that the only valid position is to return on the path
that the searcher is following. Hence, the searcher has reached the edge of the maze. Position A in

Figure 6.5 has only one valid move, Position B, two, position C, three and Position D, four.
010009000003384801000000639a000000001610000026060f002220574d464301000000000001
00ada3000000000b000000002000005c3901005c590100010000006c0000000000000000000000
d20100002701000000000000000000006a400000c128000020454d46000001005c5901000c0000
00010000000000000000000000000000000005000020030000c40100001a010000000000000000
000000000000e3e306006e4e0400460000002c00000020000000454d462b014001001c00000010
0000000210c0db01000000600000006000000046000000fc220000f0220000454d462b224004000
c000000000000001e4009000c00000000000000244001000c00000000000000304002001000000
0040000000000803f214007000c0000000000000008400005482200003c2200000210c0db01000
0000000000000000000000000000000000001000000ffd8ffe000104a4649460001020100480048
0000ffed076250686f746f73686f7020332e30003842494d03ed0000000000100048000000010001
00480000000100013842494d040d000000000004000000783842494d03f3000000000008000000
00000000003842494d040a00000000000100003842494d271000000000000a000100000000000
000013842494d03f5000000000048002f66660001006c66660006000000000001002f6666000100
a1999a0006000000000001003200000001005a00000006000000000001003500000001002d000
000060000000000013842494d03f80000000000700000ffffffffffffffffffffffffffffffffffffffffffff03e80000000
0ffffffffffffffffffffffffffffffffffffffffffff03e800000000ffffffffffffffffffffffffffffffffffffffffffff03e800000000ffffffffffffffffff
ffffffffffffffffffffffffff03e800003842494d040800000000001000000001000002400000024000000000
3842494d0414000000000004000000023842494d040c0000000005d20000000100000070000000
470000015000005d30000005b600180001ffd8ffe000104a46494600010201004800480000ffee00
0e41646f626500648000000001ffdb0084000c08080809080c09090c110b0a0b11150f0c0c0f1518
131315131318110c0c0c0c0c0c110c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0
c0c010d0b0b0d0e0d100e0e10140e0e0e14140e0e0e0e14110c0c0c0c0c11110c0c0c0c0c0c110c
0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0cffc000110800470070030122000
21101031101ffdd00040007ffc4013f0000010501010101010100000000000000030001020405060
708090a0b0100010501010101010100000000000000010002030405060708090a0b1000010401
030204020507060805030c33010002110304211231054151611322718132061491a1b142232415
52c16233347282d14307259253f0e1f163733516a2b283264493546445c2a3743617d255e265f2b
384c3d375e3f3462794a485b495c4d4e4f4a5b5c5d5e5f55666768696a6b6c6d6e6f637475767778
797a7b7c7d7e7f7110002020102040403040506070706053501000211032131120441516171221
30532819114a1b14223c152d1f0332462e1728292435315637334f1250616a2b283072635c2d244
9354a317644555367465e2f2b384c3d375e3f34694a485b495c4d4e4f4a5b5c5d5e5f55666768696
a6b6c6d6e6f62737475767778797a7b7c7ffda000c03010002110311003f00f5559d7ff3cff8ff0004d
d57afe0749aa9bb29b7965d73686fa74d8f21ce0f7ee35b19ea399b6a77f36d7a938d57633b3dae7
b6a2d366d7d6eadf0d1deac8f46c63bdbfe118c4948d252c2f473a817d161d8496c39b0e047ef377
7b54afa3d1dbeeddba7b4709291a49249294924924a5249249294924924a52bb87fccfccfe55495d
c3fe67e67f2a4a7ffd0f5554b22eb058f64fb38da402208f30aeacfc9fe7dff0011f9024a6586e2d7b69
6436a00c31ad0d03bf0d014f3b9affb5ff7d41a5ecaecf52c21ac635ce738f00012e7146b6725acb29
04b46e07702c2083b7e859b5df9a929aca7431afb435c2419d14becb7feefe214f1e8b5968739b00
4c99092931c6c71cb7f13fde97d9b1bf747de7fbd472ea7d9b3609899f9c2a6e61638b5c208e424a6
f7d9b1bf747de7fbd2fb3e3780fbcff7aa103c1281e0929bff0065c7fddfc4ff007aa2af62ff004767cff2a
a3dca4a52bb87fccfccfe55495dc3fe67e67f2a4a7fffd1f5559f93fcfbfe23f205a0b3f27f9f7fc47e4092
98d7557738d368dd5dad731edf1046a3456aeb4e38635a37033ab89274f340c5fe7dbf3fc8899dcd
7f3fe09296fb6bff00707de52fb6d9fb83ef2ababde8637eeb5252b1ef75bba401b638f355727f9f7fcbf
2053cb75d8edace1561c5f635b710d2fdac879dfb5af67e7ed53c769b71eab336a65596fad8ebeb0
e90d7968f518d77e7358ef6a4a6aa4ad5f550da9c580070888f8aaa929bf8bfcc33e7f9550ee55fc5f
e619f3fcaa87729294aee1ff33f33f95525770ff99f99fca929ffd2f5559f93fcfbfe23f205a0b3f27f9f7fc4
7e409297c5fe7dbf3fc8899dcd7f3fe08343dacb37b8c35ad7171f202544667db28aed75669b039ec
b697105cc7b4ed734c7f9ecff0083494b2681e09d2494d9c1026cfecffdf90b280f5ddf01f9117079b3
e5ff007e45b315963cbcb8827c23fb92534202756fec55fef3bf0fee4bec55fef3bf0fee4949317f9867c
ff2aa1dcad2ad82b606032077283f62aff79df87f724a69abb87fccfccfe5507e2318c2e1bde47e6b76
c9ff003b6b5507758c8c5ea6ce98ce959b756fa9b6fdad82b35b4bdcf63abb6c75b5d6dd9e9eff006b
df67fc1a4a7fffd3f5559f93fcfbfe23f205f32a4929fa5d9bf77b277768e53bfd5d3d4dde5ba7f8af99d2
494fd2c92f9a52494fd30cf575f4f779ed9fe0a7fad7fc27e2be6449253f4dfeb5ff0009f8a5fad7fc27e2
be6449253f4dfeb5ff0009f8a6fd6bfe13f15f32a4929fa6ff005aff0084fc55ac6dfe97e927749fa5caf96
92494ff00ffd93842494d04060000000000070005000000010100ffee000e41646f62650064400000
0001ffdb008400040303030303040303040604030406070504040507080606070606080a080909
0909080a0a0c0c0c0c0c0a0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c010405050807080f0
a0a0f140e0e0e14140e0e0e0e14110c0c0c0c0c11110c0c0c0c0c0c110c0c0c0c0c0c0c0c0c0c0c0
c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0cffc000110800de015e03011100021101031101ffdd000400
2cffc401a20000000701010101010000000000000000040503020601000708090a0b01000202030

239

10101010100000000000000010002030405060708090a0b100002010303020402060703040206
0273010203110400052112314151061361227181143291a10715b14223c152d1e1331662f02472
82f12543345392a2b26373c235442793a3b33617546474c3d2e2082683090a181984944546a4b4
56d355281af2e3f3c4d4e4f465758595a5b5c5d5e5f566768696a6b6c6d6e6f637475767778797a7
b7c7d7e7f738485868788898a8b8c8d8e8f82939495969798999a9b9c9d9e9f92a3a4a5a6a7a8a9
aaabacadaeafa110002020102030505040506040803036d0100021103042112314105511361220
671819132a1b1f014c1d1e1234215526272f1332434438216925325a263b2c20773d235e2448317
549308090a18192636451a2764745537f2a3b3c32829d3e3f38494a4b4c4d4e4f465758595a5b5c
5d5e5f5465666768696a6b6c6d6e6f6475767778797a7b7c7d7e7f738485868788898a8b8c8d8e8f
839495969798999a9b9c9d9e9f92a3a4a5a6a7a8a9aaabacadaeafaffda000c03010002110311003
f00f7f62aec55d8aa57af922c363d5d7f8e2ac5f15762aec55d8abb15762aec55d8abb15762aec55d
8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8ab
b15762aec55d8abb154fbcb7ff001f3fec3fe36c553ec55d8abfffd0f7f62aec55d8aa55e60ff783fe7a2f
f1c558c62aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb
15762aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb15762a9f796ff00e3e7f
d87f1c553ec55d8abffd1f7f62aec55d8aa55e60ff7807fc645fe38ab18c55d8abb15762aec55d8abb1
5762aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb1576
2aec55d8abb15762aec55d8abb15762aec553ef2dffc7cff00b0fe38aa7d8abb157fffd2f7f62aec55d8
aa57e60ff783fe7a2ff1c558be2aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8a
bb15762aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb1
5762a9f796ff00e3e7fd87f1c553ec55d8abffd3f7f62aec55d8aa0755b596f2d7d1869cf906f88d0506
2a92fe80bfff0023fe0bfb3156bf40dfff0091ff0005fd98ab7fa02fff00e2bff823fd31577e80bfff008aff00
e0bfb31577e80bff00f23fe0bfb31577e80bff00f23fe0bfb315539f47bcb789a6938704156a354feac5
52fc55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb15762aec
55d8abb15762aec55d8abb15762aec55d8aa7de5bff008f9ff61fc7154fb15762afffd4f709d5bcc21d
d4797a42aa4f171776ff00150edb16dab8aa49e6dd6fccd1795f5c78f4196064d3eed96e52f200d1b
081c861c5ab507c3157c0be45ff009c9afcedd026b6b4d3f599fccb184451a65fc1fa459a828073402
7ff0087c55f65fe56fe66fe70f9b8dbaf9c3f2c25d0ece53593563791c11843d0fd527fdf7e27157b3e2
ad32aba947019585194ee083d8e2af906daeeea1fca9f3e5dda69da847aad8f99f5b5b2f394330587
498edef8f19dd92637261b641f14490bab28e1c78f2c55f5a6977515f699677b05ca5ec1710453477
9153d3996440c245a6d460790c55178abb1541eabff001ceb8ff531561f8abb15762aec55d8abb15
762aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb15762
aec55d8abb154fbcb7ff1f3fec3f8e2a9f62aec55ffd5f7f62aa377696d7f693d8de4626b4b98de1b889
becbc72295653ec41a62a95f97bca1e55f29dbada796345b2d22dd54270b2b78e0a85141c8a2827
e9c5539240dcec3c7156bd44fe61f78c55a6752a42ba86236268687e55c55e4f69f928b6be5cd6bc
a23cdf7e3cbde62bdbcd43598628ad229e5fd26fcee62598464a23d48f8473553b3e2af4ed2ec34d
d174db3d1f4b8d2db4db0823b5b3b743f0c70c2a11145493b280315460656fb241f962ade2a83d53
fe39f71bd3e03be2ac3f15762aec55d8abb15762aea13b0153ed8aaee0ff00cadf71c55dc1ff0095be
e38abb83ff002b7dc7157707fe56fb8e2aee0ffcadf71c55dc1ff95bee38abb83ff2b7dc7157707fe46f
b8e2aee0ff00cadf71c55de9c9fc8df71c55dc1ff95bee38abb849fc8df71c55de9c9fc8df71c55de9c9f
c8df71c55dc24fe46fb8e2aef4dff0095bee38ab4415ea08f9ed8ab58abb15762aec55d8abb154fbcb
7ff001f3fec3f8e2a9f62aec55fffd6f7f62aec55d8aa0b57ff008e75c7faa3f58c558862aec55d8abb156
45e5cfee27ff5c6df462a9d62a83d54d34eb8ff0053f59c5587e2aec55d8abb15762aec5517a67fc74
2dffd7fe07156638abb15762aec55d8abb15762aec55d8abb15762aec55d8abb15762aec558df98b
fdea87fe31ffc6c71549f15762aec55d8abb15762a9f796ff00e3e7fd87f1c553ec55d8abffd7f7f62aec
55d8aa0b57ff008e6dc7faa3f58c558862aec55d8abb15645e5c03eaf31ff2c6df462a9d62a84d4d4b
69f7001a7c04d4fb6f8ab0ec55d8abb15762aec55d8aa2f4cff8e85bff00affc0e2acc715762aec55d8
abb15762aec55d8abb15762aec55d8abb15762aec55d8ab1bf317fbd50ffc63ff008d8e2a93e2aec5
5d8abb15762aec553ef2dffc7cff00b0fe38aa7d8abb157fffd0f7f62aec55d8aa0b57ff008e75c7faa3f
58c558862aec55d8abb15645e5cafd5e6f0e63f562a9d62a83d57fe39d71fea1c5587e2aec55d8ab
b15762aec5517a67fc742dffd7fe07156638abb15639aaea17b05fc91c33148d42d14014dd457a8c
5505fa5350dbfd21b6f97f4c55afd27a86dfe92fb7cbfa62ae1aa6a029fe90fb7cbfa62aefd29a87fcb4
3f8f6fe98ab8ea9a81aff00a43efbf6fe98ab6355d44023eb0dbf73427f562ad7e93d43fe5a1ff0fe98a
b5fa4f50ff9697fc3fa62ad9d535026bf58715f0a0fe18ab5fa4f50ff009697fc3fa62abe2d4afda58c1b8
720b28236e95f962acbf15762ac73cc7fef4407bf03faf1549b15762aec55d8abb15762a9f796ff00e3
e7fd87f1c553ec55d8abffd1f7f62aec55d8aa0b57ff008e75c7faa3f58c558862aec55d8abb15645e5
cfee27ff5c7eac553ac5509aa53f47dc54d0703b9c558762aec55d8abb15762aec5517a67fc742dff0
0d7fe07156638abb15627ad7fc74a5f92ff00c4462a97e2aec55d8abb15762aec55d8abb15762aec
557c3fdf45febafeb18ab39c55d8ab1cf31ff00bd107fa8dfaf1549b15762aec55d8abb15762a9f796ff
e3e7fd87fc6d8aa7d8abb157fffd2f7f62aec55d8aa0b57ff008e75c7faa3f58c558862aec55d8abb15
645e5cfee27ff5c7eac550f77e7df26585cdc5a5e6b9670cb684ade16957d3b765eab3483e08c8ee1
d94e2a9b3b43ab69824b29925b7bb8964b79d0f28de370195811d411b838aa51fe1db9ff7f47f8ff4c
55aff000edd7fbfa3fc7fa62adff876e7fdfd1fe3fd31577f876e7fdfd1fe3fd31577f876e7fdfd1fe3fd3157
7f876e7fdfd1fe3fd31556b4d0ee2deea29da542b1b54815ae2a9ee2aec5525d43469eeee9ee1244
5560366ad7614ed8aa17fc3b75fefe8ff1fe98aa1af74a9ac6212c8eac19b8d16b5dc13dfe58aa0315

762aec55d8abb15762aec55d8aaf87fbe8bfd75fd63156738abb15639e63ff007a20ff0051bf5e2a93
62aec55d8abb15762aec553ef2dffc7cff00b0ff008db154fb15762aff00ffd3f7f62aec55d8aa0b57ff00
8e75c7faa3f58c558862aec55d8abb1554d527d5ad7c8be69b9d0031d721d3eee4d3446393fd692
d9cc5c4773ca94c5505f92769a0cdf937e52874c58ee74cbdd2207bb2c03faf713c43eb466afda769
4bfabcb7e5cb962aceb4cb2b2d3b4db4d3f4d509a7da431c1688a792ac31285400ef5000031545e2
aec55d8abb15762aec55d8abb15762aec55d8aa51e61ff0078e3ff008ca3fe22d8ab1ac55d8abb15
762aec55d8abb15762abe1fefa2ff5d7f58c559ce2aec558ef98ff00de883fd46fd78aa4b8abb15762a
ec55d8abb154fbcb7ff001f3fec3f8e2a9f62aec55fffd4f7f62aec55d8aa0b57ff008e75c7faa3f58c558
862aec55d8abb15645e5cfee27ff5c7eac552fb7fcb8f27d94b74fa7d83d8c37b2b4f77676773736d6
72cae6accd6d14ab1558eeff07c7fb55c559322436d0ac71aac36f0a854450151114500005000062
aa7f5eb2ff9688ffe0d7fae2adfd7acff00e5a23ff835feb8ab85ed9934171193febaff005c55df5eb3ff00
9688ff00e0d7fae2aefaed9ffcb447ff0006bfd7156bebd65ff2d11ffc1aff005c55df5eb2ff009688ff00e0
d7fae2aefaf597fcb445ff0006bfd71577d7acbfe5a23ff835feb8aab472472af38d83a1e8ca6a3f0c55
762a947987fde38ffe328ff88b62ac6b15762aec55d8abb15762aec55d8aaf87fbe8bfd75fd6315673
8abb15639e63ff007a20ff0051bf5e2a9362aec55d8abb15762aec553ef2dffc7cff00b0fe38aa7d8ab
b157fffd5f7f62aec55d8aa0b57ff008e75c7faa3f58c558862aec55d8abb15643e5cfee67ff5c7eac55
3bc5542f7fde3b8ff008c6fd7fd538ab0ac55d8abb15762aec55d8abb15762aec5595e87ff1ce8fe6dff
1238aa638aa51e61ff78e3ff8ca3fe22d8ab1ac55d8abb15762aec55d8abb15762abe1fefa2ff005d7f
58c559ce2aec558e798ffde883fd46fd78aa4d8abb15762aec55d8abb154fbcb7ff1f3fec3f8e2a9f62a
ec55ffd6f7f62aec55d8aa0b57ff008e75c7faa3f58c558862aec55d8abb15643e5cfee67ff5c7eac553
bc5542f7fde3b8ff008c6fff001138ab0ac55d8abb15762aec55d8abb15762aec5595e87ff001ce8fe6
dff001238aa638aa51e61ff0078e3ff008c83fe22d8ab1ac55d8abb15762aec55d8abb15762abe1fef
a2ff5d7f58c559ce2aec558e798ff00de883fd46fd78aa4d8abb15762aec55d8abb154fbcb7ff001f3fe
c3f8e2a9f62aec55fffd7f7f62aec55d8aa0b57ff008e75c7faa3f58c558862aec55d8abb15643e5cfee
67ff5c7eac553bc5542f7fde3b8ff008c6fff001138ab0ac55d8abb15762a9a6876f05cdc4a93c62450
9501bb1ae2a9e7e8bd3ffe59d3eec55dfa2f4eff009674fbb1577e8ad3bfe59d3eec55dfa2f4eff9674f
bb15436b5ab69be53d0af75abd49134ad3627b9bb36f1b4ce90c60b3bf04ab10a0163418ab1eb2fc
d7f275dda69da94d35ce9da46ae213a66a7a8da5c59d94ff005aa7a216795150192a38072a5bb62
acc67b782e5424e824406a01e95c5543f4569dff2ce9f762aefd15a77fcb3a7dd8abbf4569dff002ce9
f762aefd15a77fcb3a7dd8ab1bd5628e0be96289424638f151d37518aa0f15762aec557c3fdf45feba
feb18ab39c55d8ab1cf31ffbd107fa8dfac62a9362aec55d8abb15762aec553ef2dffc7cff00b0fe38aa
7d8abb157fffd0f7f62aec55d8aa0b57ff008e75c7faa3f58c558862aec55d8abb15643e5cfee67ff5c7
eac553bc5542f7fde3b8ff008c6fff001138ab0ac55d8abb15762a9c7977fdea9bfe31ff00118ab24c55
d8abb15762ac4ff345913f2d3ce4d230541a1ea5c98ec00faa498abcb355d43415ff009c53d3349d4
82decfadf94acf4dd274a8e92dcdedfdcd8a25bc30462acf2193891c47c34e7d17157b0791ac757d3
3c97e5dd3b5f90cbae5a6996706a5213c8b5cc5022c849ee7903be2a9fe2aec55d8abb15625ad7fc
74a6ff0063ff001118aa0315762aec557c3fdf45febafeb18ab39c55d8ab1cf31ffbd107fa8dfaf1549b1
5762aec55d8abb15762a9f796ff00e3e7fd87f1c553ec55d8abffd1f7f62aec55d8aa0b57ff008e75c7f
aa3f58c558862aec55d8abb15643e5cfee67ff5c7eac553bc5542f7fde3b8ff008c6fff001138ab0ac55
d8abb15762a8cd3afff0047caf27a7ea735e34ad3bd7c0e2a997f893fe5dbfe1ffb31577f893fe5dbfe1
ffb31577f893fe5dbfe1ffe6dc55dfe24ff00976ff87ff9b71546fa563e60d31a1d4ace2b9b29eab2da5c
2acd13853d1958508dbb8c554b4ef2b7967489567d2b46b1b19d010925b5b450b2822940514103
e58aa3350bb3656c67081c86038934eb8aa53fe2493fe59d7fe08ff4c55dfe2393fe59c7fc11fe98ab
bfc48fff002ce3fe08ff004c55dfe2493fe59c7fc11fe98aa5579726eee1ee0af02f4f841af414c5543157
62aec557c3fdf45febafeb18ab39c55d8ab1cf31ff00bd107fa8dfaf1549b15762aec55d8abb15762a9
f796ffe3e7fd87f1c553ec55d8abfffd2f7f62aec55d8aa0b57ff008e75c7faa3f58c558862aec55d8abb
15643e5cfee67ff5c7eac553bc5542f7fde3b8ff008c6fff001138ab0ac55d8abb15762aec55d8abb15
762aec5595e87ff001ce8fe6dff001238aa638aa59af7fc73cffaebfaf1562d8abb15762aec55d8abb1
5762aec557c3fdf45febafeb18ab39c55d8ab1cf31ff00bd107fa8dfaf1549b15762aec55d8abb15762
a9f796ffe3e7fd87f1c553ec55d8abfffd3f7f62aec55d8aa0b57ff008e75c7faa3f58c558862aec55d8a
bb15643e5cfee67ff5c7eac553bc5542f7fde3b8ff008c6fff001138ab0ac55d8abb15762aec55d8abb
15762aec5595e87ff001ce8fe6dff001238aa638aa59aff00fc73cffaebfaf1562d8abb15762aec55d8a
bb15762aec557c3fdf45febafeb18ab39c55d8ab1cf31ff00bd107fa8dfac62a9362aec55d8abb15762
aec553ef2dff00c7cffb0fe38aa7d8abb157ffd4f7f62aec55d8aa0b57ff008e75c7faa3f58c558862aec
55d8abb15643e5cfee67ff5c7eac553bc5542f7fde3b8ff008c6fff001138ab0ac55d8abb15762aec55
d8abb15762aec5595e87ff001ce8fe6dff001238aa638aa59af7fc73cffaebfaf1562d8abb15762aec5
5d8abb15762aec557c3fdf45febafeb18ab39c55d8ab1cf31ff00bd107fa8dfaf1549b15762aec55d8a
bb15762a9f796ffe3e7fd87f1c553ec55d8abfffd5f7f62aec55d8aa0b57ff008e75c7faa3f58c558862a
ec55d8abb15643e5cfee67ff5c7eac553bc5542f7fde3b8ff008c6fff001138ab0a18abb15762aec55d
8abb15762aec55d8ab2bd0ff00e39d1fcdbfe247154c7154b35eff008e79ff005d7f5e2ac5ab8abab8
abb15762aea8c55d8abaa315762abe13fbe8bfd75fd63156738abb15639e63ff007a20ff0051bf5e2a
9362aec55d8abb15762aea8c553ef2dffc7cff00b0ff008db154fb15762aff00ffd6f7f62aec55d8aa0b5
7ff008e75c7faa3f58c558862aec55d8abb15643e5bda09c7f963f562ac7bcebf9911f93bccbe59d1a

241

5b269f4ed5eed2d757d481a47a7addf286cde4ff8cf70044b5ff2b156697dfef15c7fc637ff00889c558
5e2aec55d8abb15762aec55d8abb15762acaf43ff008e747f36ff00891c5531c556ba24838c8a197c
18547e38aacfaadaff00be63ff00811fd31577d56dbfdf31ff00c08fe98abbeab6bfef98ff00e047f4c55d
f55b5ff7cc7ff023fa62aefaadaffbe63ff811fd31577d56d7fdf31ffc08fe98abbeab6bfef98ffe047f4c55d
f55b6ff007cc7ff00023fa62ae16b6c0d442951d3e11fd31555c55d8aac78629083246ae4742c01fd7
8aadfaadaff00be63ff00811fd31577d56dbfdf31ff00c08fe98abbeab6bfef98ff00e047f4c55df55b6ff7
cc7ff023fa62ad1b7b45059a28c28ea4aa8031553e3a757a435ff618ab0ffcd0fcc4d33f2afc9b77e72
92c3f48dbdacd6d14b696d22452117132c5c81208f879569df15615e50ff9caff00c9ff0035b2c171a8
cda05e301fbad5a2f4632cc694132178faf8b0c55eac9e6ef2ac9a6c9ac47ae583e9308065be5ba84
c080b051c9c37115621773d76c55fffd7f7f62aec55d8aa0b57ff008e75c7faa3f58c558862aec55d8a
bb15641e5e60b6f72c6b40c09a024ecbd80dce2af35d43c93aa7e64794fcd977ac5f6a7a237988cf1
ae946ca149a1b7b0256c68248a494b02ab3feedff00bc73c389c55977e5e6bbe63f30fe5dd8df79c3
4ab8d1bcd496a60d5ecaea3319facc4bc5a44ad6a927db535e1610000026060f002220574d46430
1000000000001000000000000000b000000002000005c1901005c590100fc7a8c554f15762aec55
d8abb15762aec55d8abb15657a1ffc73a3f9b7fc48e2a98e2aec55d8abb15762aec55d8abb15762a
ec55d8abb15762aec55d8abb15762aec554ae6d6daf6de4b4bc852e2d665292c32a874753d432b
54118aa4ff00e09f277fd4bfa77fd2243ff3462ac07f393f25ec7cfde42bbf2bf952cb4bd1f57bab8b491
3507b654114704eb248418539125410077c55e65e4eff009c20f28e9524575e6df30df6b33a50b5b
5a2ad85b120d6848f52423e4eb8abd8edbf21ff0028ecf43bdf2fdaf952ca2b0d4420be915585d4a63
952652d71cbd524488aff006faae2afffd0f7f62aec55d8aa0b57ff008e75c7faa3f58c558862aec55d8
abb154758ea72d823a468ae1c827957b0a76c5515fe22baff007cc7ff000dfd7155b2ebf712c6f1344
9c5d4a9ebd08a78e2a94e2aec55d8abb15762aec55d8abb15762a995a6b33d9c02048d1954920b
56bb9af6c555bfc4575fef98ffe1bfae2aeff00115d7fbe63fc7fae2aeff115d7fbe63fc7fae2aeff00115d
7fbe63fc7fae2adff88aebfdf31fe3fd7156bfc4575fef98ff00e1bfae2aeff115d7fbe63ff86feb8abbfc457
5fef98ffe1bfae2aeff00115d7fbe63ff0086feb8abbfc4575fef98ff00e1bfae2aeff115d7fbe63ff86feb8a
bbfc4575fef98ffe1bfae2aeff00115d7fbe63ff0086feb8abbfc4575fef98ff00e1bfae2aeff115d7fbe63ff
86feb8abbfc4575fef98ffe1bfae2aeff00115d7fbe63ff0086feb8abbfc4575fef98ff00e1bfae2aeff115d
7fbe63ff86feb8abbfc4575fef98ffe1bfae2a98e95a94d7e6512a2af0008e35ef5f1f962a99e2aec55ffd
1f7f62aec55d8aa0b57ff008e75c7faa3f58c558862aec55d8abb15762aec55d8abb15762aec55d8a
bb15762aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb1
5762aec55d8abb15762a9e79709f52e076a2feb38ab20c55d8abffd2f7f62aec55d8aa0b57ff008e75
c7faa3f58c558862aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb15762aec
55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb15762a9e797
3fbcb8ff557e5d4e2ac8315762aff00ffd9000840010824000000180000000210c0db010000000300
00000000000000000000000000001b40000040000000340000000100000002000000000000bf00
0000bf0000af4300005e43030000000000008000000080fe7fe9430000008000000080ffff9343210
0000008000000620000000c00000001000000150000000c00000004000000150000000c0000000
400000051000000fc3401000000000000000000d20100002701000000000000000000000000000
0000000005e010000de000000500000006c030000bc03000040310100000000002000cc00d3010
00028010000280000005e010000de0000000100080000000000000000000000000000000000d1
0000000000000000000000ffffff00efefef00e4e4e400e3e3e300e1e1e100e2e2e200fefefe00eeeee
e00fdfdfd00ececec00e0e0e000ebebeb00dfdfdf00eaeaea00fcfcfc00e9e9e900ededed00dedede00
fbfbfb00f7f7f700f3f3f300f4f4f400f6f6f600f5f5f500fafafa00dddddd00dbdbdb00f9f9f900f8f8f800b1b
1b1009393930094949400aaaaaa00a0a0a000c3c3c300f0f0f0003737370074747400a2a2a200ccc
ccc00f1f1f100bebebe001818180078787800e5e5e5003c3c3c007b7b7b008888880026262600323
23200282828002a2a2a0049494900bfbfbf00d7d7d70021212100ababab001f1f1f00cbcbcb008b8b
8b002d2d2d003b3b3b00383838002f2f2f00303030003d3d3d00464646006b6b6b00c6c6c600d1d
1d1008d8d8d00b8b8b80019191900c5c5c500cacaca00c7c7c700d6d6d600d8d8d800cecece00d0
d0d000c9c9c900d2d2d20072727200272727003636360033333300313131004747470060606000
89898900cdcdcd006262620058585800cfcfcf00b7b7b700b4b4b400b5b5b500b2b2b200bbbbbb00
bdbdbd00bcbcbc00b6b6b600b0b0b000aeaeae00c0c0c000686868002c2c2c002b2b2b00242424
006c6c6c0050505000848484007c7c7c00414141004a4a4a00dadada008e8e8e00393939002222
220071717100a5a5a50079797900818181008f8f8f002525250051515100767676001e1e1e005c5
c5c007e7e7e001b1b1b006767670092929200f2f2f200d4d4d40080808000bababa00e7e7e700d3
d3d30087878700afafaf00202020004e4e4e00acacac0040404000c2c2c200e6e6e600e8e8e800dc
dcdc00b9b9b9009191910065656500b3b3b3008a8a8a004d4d4d007f7f7f003f3f3f0066666600c1c
1c100999999009c9c9c0082828200838383009a9a9a006d6d6d008c8c8c003a3a3a009b9b9b005
5555500111111006a6a6a005757570059595900434343005b5b5b00343434005d5d5d00525252
00a6a6a6009595950096969600989898005f5f5f0017171700535353005e5e5e00a4a4a400d5d5d
500c4c4c400353535004c4c4c007070700077777700424242001d1d1d009d9d9d009f9f9f0044444
400909090002e2e2e004f4f4f0086868600737373001a1a1a006e6e6e0061616100adadad007a7a
7a000101010101010101010101010101010101010101010101010101070101010e0b050505050
50505050505050505050505050505050505050505050505050505050505050505050505050505
05050505050505050505050505050505050505050505050505050505050505050505050505050
50505050505050505050505050505050505050505050505050505050505050505050505050505

05050505050505050505050505050505050505050505050505050505050505050505050505050
50505050505050505050505050505050505050505050505050505050505050505050505050505
05050505050505050505050505050505050505050505050505050505050505050505050505050
50505050505050505050505050505050505050505050505050505050505050505050505050505
050505050505050505050505050505050505050505050605060d1801010101010101010101010
1010101010100000101010101010101010101010101010101010101010101010101070101010e
0b050505050505050505050505050505050505050505050505050505050505050505050505050
50505050505050505050505050505050505050505050505050505050505050505050505050505
05050505050505050505050505050505050505050505050505050505050505050505050505050
50505050505050505050505050505050505050505050505050505050505050505050505050505
05050505050505050505050505050505050505050505050505050505050505050505050505050
50505050505050505050505050505050505050505050505050505050505050505050505050505
05050505050505050505050505050505050505050505050505050505050505050505050505050
50505050505050505050505050505050505050505050505050505050b05040514010107010101
01010101010101010101010000010101010101010101010101010101010101010101010101010
1070101010e0b0505050505050505050505050505050505050505050505050505050505050505
05050505050505050505050505050505050505050505050505050505050505050505050505050
50505050505050505050505050505050505050505050505050505050505050505050505050505
05050505050505050505050505050505050505050505050505050505050505050505050505050
50505050505050505050505050505050505050505050505050505050505050505050505050505
05050505050505050505050505050505050505050505050505050505050505050505050505050
50505050505050505050505050505050505050505050505050505050505050505050505050505
0505050505050505050505050505050505050505050505050505050505050505050b050405140
10107010101010101010101010101010100000101010101010101010101010101010101010101
010101010101070101010e0b05050505050505050505050505050505050505050505050505050
50505050505050505050505050505050505050505050505050505050505050505050505050505
05050505050505050505050505050505050505050505050505050505050505050505050505050
50505050505050505050505050505050505050505050505050505050505050505050505050505
05050505050505050505050505050505050505050505050505050505050505050505050505050
50505050505050505050505050505050505050505050505050505050505050505050505050505
05050505050505050505050505050505050505050505050505050505050505050505050505050
50505050505050505050505050505050505050505050505050505050505050505050505050505
0605060d180101010101010101010101010101010101000001010101010101010101010101010
10101010101010101010101070101010e0b050505050505050505050505050505050505050505
05050505050505050505050505050505050505050505050505050505050505050505050505050
50505050505050505050505050505050505050505050505050505050505050505050505050505
05050505050505050505050505050505050505050505050505050505050505050505050505050
50505050505050505050505050505050505050505050505050505050505050505050505050505
05050505050505050505050505050505050505050505050505050505050505050505050505050
50505050505050505050505050505050505050505050505050505050505050505050505050505
05050505050505050505050505050505050505050505050505050505050505050505050505050
505050505050605060d1801010101010101010101010101010101010000010101010101010101
0101010101010101010101010101010101070101010e0b0505050505050505050505050505050
50505050505050505050505050505050505050505050505050505050505050505050505050505
05050505050505050505050505050505050505050505050505050505050505050505050505050
50505050505050505050505050505050505050505050505050505050505050505050505050505
05050505050505050505050505050505050505050505050505050505050505050505050505050
50505050505050505050505050505050505050505050505050505050505050505050505050505
05050505050505050505050505050505050505050505050505050505050505050505050505050
50505050505050505050505050505050505050505050505050505050505050505050505050505
05050505050505050505050b05040514010107010101010101010101010101010100000101010
101010101010101010101010101010101010101010101070101010e0b05050505050505050505
05050505050505050505050505050505050505050505050505050505050505050505050505050
50505050505050505050505050505050505050505050505050505050505050505050505050505
05050505050505050505050505050505050505050505050505050505050505050505050505050
50505050505050505050505050505050505050505050505050505050505050505050505050505
05050505050505050505050505050505050505050505050505050505050505050505050505050
50505050505050505050505050505050505050505050505050505050505050505050505050505
05050505050505050505050505050505050505050505050505050505050505050505050505050
505050505050505050505050505050505060b0505170107010101010101010101010101010101
00000101010101010101010101010101010101010101010101010101070101010e0b050505050
50505050505050505050505050505050505050505050505050505050505050505050505050505
05050505050505050505050505050505050505050505050505050505050505050505050505050

243

50505050505050505050505050505050505050505050505050505050505050505050505050505
05050505050505050505050505050505050505050505050505050505050505050505050505050
50505050505050505050505050505050505050505050505050505050505050505050505050505
05050505050505050505050505050505050505050505050505050505050505050505050505050
50505050505050505050505050505050505050505050505050505050505050505050505050505
05050505050505050505050505050505050505050505060b05051701070101010101010101010
1010101010100000101010101010101010101010101010101010101010101010101070101010e
0b050505050505050505050505050505050505050505050505050505050505050505050505050
50505050505050505050505050505050505050505050505050505050505050505050505050505
05050505050505050505050505050505050505050505050505050505050505050505050505050
50505050505050505050505050505050505050505050505050505050505050505050505050505
05050505050505050505050505050505050505050505050505050505050505050505050505050
50505050505050505050505050505050505050505050505050505050505050505050505050505
05050505050505050505050505050505050505050505050505050505050505050505050505050
5050505050505050505050505050505050505050505050505050505060b050b18070701010101
01010101010101010101010000010101010101010101010101010101010101010101010101010
1070101010e0b0505050505050505050505050505050505050505050505050505050505050505
05050505050505050505050505050505050505050505050505050505050505050505050505050
50505050505050505050505050505050505050505050505050505050505050505050505050505
05050505050505050505050505050505050505050505050505050505050505050505050505050
50505050505050505050505050505050505050505050505050505050505050505050505050505
05050505050505050505050505050505050505050505050505050505050505050505050505050
50505050505050505050505050505050505050505050505050505050505050505050505050505
050505050505050505050505050505050505050505050505050505050505050505060b0b0b180
70701010101010101010101010101010100000101010101010101010101010101010101010101
010101010101070101010e0b05050505050505050505050505050505050505050505050505050
50505050505050505050505050505050505050505050505050505050505050505050505050505
05050505050505050505050505050505050505050505050505050505050505050505050505050
50505050505050505050505050505050505050505050505050505050505050505050505050505
05050505050505050505050505050505050505050505050505050505050505050505050505050
50505050505050505050505050505050505050505050505050505050505050505050505050505
05050505050505050505050505050505050505050505050505050505050505050505050505050
50505050505050505050505050505050505050505050505050505050505050505050505050505
060b050b180107010101010101010101010101010101000001010101010101010101010101010
10101010101010101010101070101010e0b050505050505050505050505050505050505050505
05050505050505050505050505050505050505050505050505050505050505050505050505050
50505050505050505050505050505050505050505050505050505050505050505050505050505
05050505050505050505050505050505050505050505050505050505050505050505050505050
50505050505050505050505050505050505050505050505050505050505050505050505050505
05050505050505050505050505050505050505050505050505050505050505050505050505050
50505050505050505050505050505050505050505050505050505050505050505050505050505
05050505050505050505050505050505050505050505050505050505050505050505050505050
50505050505060b06051401070101010101010101010101010101010000010101010101010101
0101010101010101010101010101010101070101010e0b0505050505050505050505050505050
50505050505050505050505050505050505050505050505050505050505050505050505050505
05050505050505050505050505050505050505050505050505050505050505050505050505050
50505050505050505050505050505050505050505050505050505050505050505050505050505
05050505050505050505050505050505050505050505050505050505050505050505050505050
50505050505050505050505050505050505050505050505050505050505050505050505050505
05050505050505050505050505050505050505050505050505050505050505050505050505050
50505050505050505050505050505050505050505050505050505050505050505050505050505
0505050505050505050505060b06041d010101010101010101010101010101010100000101010
101010101010101010101010101010101010101010101070101010e0b05050505050505050505
05050505050505050505050505050505050505050505050505050505050505050505050505050
50505050505050505050505050505050505050505050505050505050505050505050505050505
05050505050505050505050505050505050505050505050505050505050505050505050505050
50505050505050505050505050505050505050505050505050505050505050505050505050505
05050505050505050505050505050505050505050505050505050505050505050505050505050
50505050505050505050505050505050505050505050505050505050505050505050505050505
05050505050505050505050505050505050505050505050505050505050505050505050505050
505050505050505050505050505050505060504031c01010101010101010101010101010101010
0000101010101010101010101010101010101010101010101010101070101010e0b0505050505
050505050505050505050505050505050505050505050505050505050b0605050606060505050
5050505050506060d0b06050b0505050505050505050505050505050505050505050505050505
05050505050505050505050505050505050505050505050505050505050505050505050505050

50505050505050505060b05050505050505050505050505050505050505050505050505050505
05050505050505050505050505050505050505050505050505050505050505050505050505050
50505050505050505050505050505050505050505050505050505050505050505050505050505
05050505050505050505050505050505050505050505050505050505050505050505050505050
50505050505050505050505050505050505050505050606030b19070109010101010101010101
010101010100000101010101010101010101010101010101010101010101010101070101010e0
b0505050505050505050505050505050505050505050505050505050505050505060505050b0b
0d0d05050505050505050506060b0b06050505050505050505050505050505050505050505050
50505050505050505050505050505050505050505050505050505050505050505050505050505
050505050505050505050505050606050606050b1205050505050505050606060606060606060
60606060606060606060606060606060606060606060605050505050505050505050505050505
05050505050505050505050505050505050505050505050505050505050505050505050505050
50505050505050505050505050505050505050505050505050505050505050505050505050505
0505050505050505050505050505050505050505050505050505050d0d060d1c09010901010101
01010101010101010101000001010101010101010101010101010101010101010101010101010
70101010e0b050505050505050505050505050505050505050505050505050505050505050505
0605060406060405050505050505050b0b0b0b0d0b050b0505050505050505050505050505050
50505050505050505050505050505050505050505050505050505050505050505050505050505
050505050505050505050505050505050505050d05060403040405050505050505050b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0505050505050505050505
05050505050505050505050505050505050505050505050505050505050505050505050505050
50505050505050505050505050505050505050505050505050505050505050505050505050505
0505050505050505050505050505050505050505050505050505050505050505040603061c0901
0f0101010101010101010101010101000001010101010101010101010101010101010101010101
01010101070101010e0b050505050505050505050505050505050505050505050505050505050
505050506040d05040d12120b0b0b0b0b0b0b0b040605040605030b0505050505050505050505
05050505050505050505050505050505050505050505050505050505050505050505050505050
505050505050505050505050505050505050505050505040d0b0b0d0d12120b0b0b0b0b0b0b0b
0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b05050505050505050b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b
0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b1610000026060f002220574d464301000000000001000000000000000b000000002000005cf900
005c5901000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b
0b0b1a1a0d0617090109010101010101010101010101010100000101010101010101010101010
101010101010101010101010101070101010e0b05050505050505050505050505050505050505
050505050505050505050505050b040d93110e0c0c94949494949494940e0c940c10100c060505
05050505050505050505050505050505050505050505050505050505050505050505050505050
505050505050505050505050505050505050505050505050505050505050505030d940c0e0a100
e9494949494949494101010101010101010101010101010101010101010101010101010101010
10109494949494949494949494949494949494949494949494949494949494949494949494949
49494949494949494949494949494949494949494949494949494949494949494949494949494
94949494949494949494949494949494949494949494949494949494949494949494949494949
49494949494941094100a19010107010101010101010101010101010100000101010101010101
010101010101010101010101010101010101070101010e0b05050505050505050505050505050
505050505050505050505050505050505051204050209090101010101010101010107010f01070
70708050505050505050505050505050505050505050505050505050505050505050505050505
05050505050505050505050505050505050505050505050505050505050505050505050506051
60701010701010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
1010101010101010101010101070f0f01010109010101010101010101010101010100000101010
101010101010101010101010101010101010101010101070101010e0b05050505050505050505
050505050505050505050505050505050505050505050b030d240101010707070707070707070
70107010101079305050505050505050505050505050505050505050505050505050505050505
05050505050505050505050505050505050505050505050505050505050505050505050505050
5050506061d010101070107070707070707070101010101010101010101010101010101010101
01010101010101010101010107070707070707070707070707070707070707070707070707070
70707070707070707070707070707070707070707070707070707070707070707070707070707
07070707070707070707070707070707070707070707070707070707070707070707070707070
70707070707070707070707070707070701010701010101010101010101010101010101010101
00000101010101010101010101010101010101010101010101010101070101010e0b050505050
50505050505050505050505050505050505050505050505050505050b0312240101010f0707070

245

70707070707010101010107060505050505050505050505050505050505050505050505050505
05050505050505050505050505050505050505050505050505050505050505050505050505050
5050505050505050605140109010f0107070707070707070707070707070707070707070707070
70707070707070707070707070707070707070707070707070707070707070707070707070707
07070707070707070707070707070707070707070707070707070707070707070707070707070
70707070707070707070707070707070707070707070707070707070707070707070707070707
07070707070707070707070707070707070707070701010101070107010101010101010101010
10101010100000101010101010101010101010101010101010101010101010101070101010e0b
0505050505050505050505050505050505050505050505050505050505050505050605240f0701
13130101011d0101010901191901011d2d0505050505050505050505050505050505050505050
50505050505050505050505050505050505050505050505050505050505050505050505050505
050505050505050505050505050b1d09010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101070101010f01010101010101010101010f010107010701010101010101
010101010f01010109000001010101010101010101010101010101010101010101010101010701
01010e0b05050505050505050505050505050505050505050505050505050505050505050b121
b2401011704a670bd1d010119cf30d0271d0f140106050505050505050505050505050505050505
05050505050505050505050505050505050505050505050505050505050505050505050505050
5050505050505050505050505050505050b1d0901010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101090701010101010707070707070707010901011c01011d010
70f090709010101010901070100000101010101010101010101010101010101010101010101010
101070101010e0b05050505050505050505050505050505050505050505050505050505050505
0504061a08070101138cce0801090901126c552301010119030505050505050505050505050505
05050505050505050505050505050505050505050505050505050505050505050505050505050
505050505050505050505050505050505050505050b1d09010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101090701010109090101010101010101010107090101
19930109010101010101010f010101190100000101010101010101010101010101010101010101
010101010101070101010e0b05050505050505050505050505050505050505050505050505050
505050505050d0304290f0f010186c193010101014b835a01011c011c2d05050505050505050505
05050505050505050505050505050505050505050505050505050505050505050505050505050
50505050505050505050505050505050505050505050505050b1d090101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101011309010101070707070707070719
01010101925d9abd050f0107010707010101010901000001010101010101010101010101010101
01010101010101010101070101010e0b050505050505050505050505050505050505050505050
50505050505050505050b060d240101071c077bb50c0b0511cb551a07010101010605050505050
50505050505050505050505050505050505050505050505050505050505050505050505050505
05050505050505050505050505050505050505050505050505050505050b1d090101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010f090f09010101090101010101
01010101010113019fcc6c6cc6cda14f150f010f010909011c000001010101010101010101010101
01010101010101010101010101070101010e0b050505050505050505050505050505050505050
505050505050505050505050503069511010101010194afa2c7a27f77a401091907091303050505
05050505050505050505050505050505050505050505050505050505050505050505050505050
5050505050505050505050505050505050505050505050505050505050505050b1d0901010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101071307010101
010101010101010f071401876cc8406b6b7dc8c9ca23930f0901010100000101010101010101010
101010101010101010101010101010101070101010e0b05050505050505050505050505050505
050505050505050505050505050505050d040d29010f0f0f0107c44c0719c56c1b0f010901010103
05050505050505050505050505050505050505050505050505050505050505050505050505050

5050505050505050505050505050505050505050505050505050505050505050505050b1d0901
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
101010101010101010101010101010101010101010101010101010101010101090f01071301011
51d1d1d1d1d1d1d1d141907190769323fbe3255b0b03241c6a9c1670b150700000101010101010
101010101010101010101010101010101010101070101010e0b05050505050505050505050505
0505050505050505050505050505050505050506041a08010101011301528c0f01b26e01070101
09071304050505050505050505050505050505050505050505050505050505050505050505050
50505050505050505050505050505050505050505050505050505050505050505050505050505
0b1d0901010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
070101463c979797979797979775477c97b6c1543e5655a7323fc2728fb2c38e76ab5e000001010
10101010101010101010101010101010101010101010101070101010e0b050505050505050505
0505050505050505050505050505050505050505050505060b0b240707070101011d7b10453a4
b0107010101090706050505050505050505050505050505050505050505050505050505050505
05050505050505050505050505050505050505050505050505050505050505050505050505050
5050505050b1d0901010101010101010101010101010101010107090101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010707010101010101010101010101010101010101010101010101010101010101010
10101090f01010718110808110a0a1108080a110a0229bd575555be9d3f2e2e32bf84c0214a0418
00000101010101010101010101010101010101010101010101010101070101010e0b050505050
5050505050505050505050505050505050505050505050505050505060b0b2401070701090701
64a6bab7860107010101090706050505050505050505050505050505050505050505050505050
50505050505050505050505050505050505050505050505050505050505050505050505050505
0505050505050505050b1d0901010101010101010101010109090909090701010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010707070101010701010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
0101010101010101010101010107010101010101010101070107074f32b055324134587abbbc29
0709010f0100000101010101010101010101010101010101010101010101010101070101010e0b
0505050505050505050505050505050505050505050505050505050505050505050b0b2401010
10101130f08b7b8680101070101010907060505050505050505050505050505050505050505050
50505050505050505050505050505050505050505050505050505050505050505050505050505
050505050505050505050505050b1d09010101010101010101010101010101070707010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010107090909090901010101010101010101010101010101010101010101
010101010101010101010707070909090101070707070707070709010101019f6d7625b97a274d
13010713010f01090f000001010101010101010101010101010101010101010101010101010701
01010e0b0505050505050505050505050505050505050505050505050505050505050505050b0
b240101010101090101b59d8a0101070101010907060505050505050505050505050505050505
05050505050505050505050505050505050505050505050505050505050505050505050505050
505050505050505050505050505050505050b1d09010101010101010101010101070701010101
01010707070707070707090909090909090907070707070707070707070707070707070707070
70707070707070707070707070707070707070709090909090909090107090701010709010101
01010101010101010101010101010107010101010107070707070707070909090909090909070
707070707070709090909090909090101010101010101010101010101010101010919074653b6
4f0e130101010109010909070f0900000101010101010101010101010101010101010101010101
010101070101010e0b05050505050505050505050505050505050505050505050505050505050
505050b0d0b2401010101090101072d1e01010107010101090706050505050505050505050505
05050505050505050505050505050505050505050505050505050505050505050505050505050
5050505050505050505050505050505050505050505050b1d0901010101010101010101010101
01070707070707010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010107010101010101070101010101010101010101010
10101010101010101010101010101010101010107090701010101010101010101010101010101
01070118011301010107070101010101010109000001010101010101010101010101010101010
10101010101010101070101010e0b050505050505050505050505050505050505050505050505
05050505050505050b0d0b290101010101010f0707010107010701010109070605050505050505

247

05050505050505050505050505050505050505050505050505050505050505050505050505050
50505050505050505050505050505050505050505050505050505050b1d090101010101010101
01010101010101010701010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010107
07070707070101010101010101010101010101010101010701010101010101010101010101010
10101010101010101010101010101010101010101010101010107090901010101070707070707
0707010101010f01010701010701070901070f0f091301010000010101010101010101010101010
1010101010101010101010101070101010e0b0505050505050505050505050505050505050505
0505050505050505050505050d0d0b29010101010f0101011d0113010107010101090706050505
05050505050505050505050505050505050505050505050505050505050505050505050505050
5050505050505050505050505050505050505050505050505050505050505050b1d0901010101
01010101010101010907010101010707010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
010101090707090f09010101010101010101010101010101010101070101070f0f0101010101010
10101010101010101010101010101010101010101010101010101010101070707010101010107
090907010101011c13010713010107010101010107010101071301000001010101010101010101
01010101010101010101010101010101070101010e0b050505050505050505050505050505050
50505050505050505050505050505050d0d0b290101010101090f0101190107010701010109070
60505050505050505050505050505050505050505050505050505050505050505050505050505
05050505050505050505050505050505050505050505050505050505050505050505050b1d090
101010101010101010101010101010113160a8a0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e
0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0
e0e0e0e0e0e0e100e0c0e941011240101010101010101010101010101010101010f160a94940c0
e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e940e0c0c0e0e0e0
e0c0e101010100e0c10100c110f070f010113010109010107090101010901000001010101010101
01010101010101010101010101010101010101070101010e0b050505050505050505050505050
5050505050505050505050505050505050505050b0b2401010101010101010101010101010101
010701030b0505050505050605050505050505050505050505050505050505050505050505050
50505050505050505050505050505050505050505050505050505050505050505050505050505
0b1d090101010101010101010101010107010107240d060b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b050505050505050505050505050505050b0b0b0b0b0b0b0b05050505050505050b0b0b0b0b0b
0b0b05050505050505050b050b060b0b120201010101010101010101010101010101010701021
20b060b0505050505050505050505050505050505050505050505050505050505050505050505
05050505050b0b0b0b0b0b0b0b050505060701010101010101010101010101010101010000010
1010101010101010101010101010101010101010101010101070101010e0b0505050505050505
050505050505050505050505050505050505050505050505050b0b24010101010101010101010
10101010101010701030b05050505050506050505050505050505050505050505050505050505
05050505050505050505050505050505050505050505050505050505050505050505050505050
505050505050b1d090101010101010101010101010107010107240d0605050505050505050505
050505050505050505050505050505050505050505050b0b0b0b0b0b0b0b05050505050505050
b0b0b0b0b0b0b0b05050505050505050b050b060b0b1224010101010101010101010101010101
0101070102120b060b05050505050505050505050505050505050505050505050505050505050
5050505050505050505050b0b0b0b0b0b0b0b0505050607010101010101010101010101010101
010100000101010101010101010101010101010101010101010101010101070101010e0b05050
50505050505050505050505050505050505050505050505050505050505050b0b240101010101
0101010101010101010101010701030b050505050505060505050505050505050505050505050
50505050505050505050505050505050505050505050505050505050505050505050505050505
05050505050505050505050b1d090101010101010101010101010107010107240d06050505050
50505050505050505050505050505050505050505050505050505050505050505050505050505
0505050505050505050505050505050505050505050b050b060b0b12240101010101010101010
101010101010101070102120b060b050505050505050505050505050505050505050505050505
05050505050505050505050505050505050505050505050505050506070101010101010101010
10101010101010100000101010101010101010101010101010101010101010101010101070101
010e0b050505051610000026060f002220574d464301000000000001000000000000000b000000
002000005cd900005c590100050505050505050505050505050505050505050505050505050505
05050b0b2401010101010101010101010101010101010701030b0505050505050605050505050
50505050505050505050505050505050505050505050505050505050505050505050505050505
0505050505050505050505050505050505050505050b1d0901010101010101010101010101070
10107240d06050505050505050505050505050505050505050505050505050505050505050505
050505050505050505050505050505050505050505050505050505050505050b060b060b0b0d2
40101010101010101010101010101010101070102120b060b0505050505050505050505050505
05050505050505050505050505050505050505050505050505050505050505050505050505060
70101010101010101010101010101010101000001010101010101010101010101010101010101
01010101010101070101010e0b050505050505050505050505050505050505050505050505050
5050505050505050b0b2401010101010101010101010101010101010701030b05050505050506

05050505050505050505050505050505050505050505050505050505050505050505050505050
505050505050505050505050505050505050505050505050505050b1d09010101010101010101
0101010107010107240d060505050505050505050505050505050505050505050505050505050
50505050506060606060606060505050505050505060606060606060605050505050505050506
0b060b050d240101010101010101010101010101010101070102120b060b05050505050505050
50505050505050505050505050505050505050505050505050505050505050506060606060606
06050505060701010101010101010101010101010101010000010101010101010101010101010
1010101010101010101010101070101010e0b0505050505050505050505050505050505050505
050505050505050505050505050b0b2401010101010101010101010101010101010701030b050
50505050506050505050505050505050505050505050505050505050505050505050505050505
05050505050505050505050505050505050505050505050505050505050505050b1d090101010
101010101010101010107010107240d0605050505050505050505050505050505050505050505
05050505050505050505060606060606060605050505050505050606060606060606050505050
505050505060b0405050d240101010101010101010101010101010101070102120b060b050505
05050505050505050505050505050505050505050505050505050505050505050505050505060
60606060606060505050607010101010101010101010101010101010100000101010101010101
010101010101010101010101010101010101070101010e0b05050505050505050505050505050
50505050505050505050505050505050505050b0b240101010101010101010101010101010101
0701030b050505050505060505050505050505050505050505050505050505050505050505050
5050505050505050505050505050505050505050505050505050505050505050505050505050b
1d090101010101010101010101010107010107240d06050505050505050505050505050505050
50505050505050505050505050505050505050505050505050505050505050505050505050505
0505050505050505050506050405050d240101010101010101010101010101010101070102120
b060b050505050505050505050505050505050505050505050505050505050505050505050505
05050505050505050505050505050506070101010101010101010101010101010101000001010
10101010101010101010101010101010101010101010101070101010e0b050505050505050505
0505050505050505050505050505050505050505050505050b0b2401010101010101010101010
101010101010701030b0505050505050605050505050505050505050505050505050505050505
05050505050505050505050505050505050505050505050505050505050505050505050505050
5050505050b1d090101010101010101010101010107010107240d060606060606060606060606
06060606060505050505050505050505050505050505050505050505050505050505050505050
505050505050505050505050505050506050405050d2901010101010101010101010101010101
01070102120b060b0505050505050505050505050505050505050505050505050505050505050
50505050505050505050505050505050505050505060701010101010101010101010101010101
0100000101010101010101010101010101010101010101010101010101070101010e0b0505050
505050505050505050505050505050505050505050505050505050505050b0b24010101010101
01010101010101010101010701030505050505050505050505050505050505050505050505050
50505050505050505050505050505050505050505050505050505050505050505050505050505
050505050505050505050b1d090101010101010101010101010107010107240d0605050505050
50505050505050505050505050505050505050505050505050505050505050505050505050505
05050505050505050505050505050505050505050b060b060b050d24010101010101010101010
1010101010101070102120b060b05050505050505050505050505050505050505050505050505
050505050505050505050505050505050505050505050505060b030f0107010101010101010101
01010101010100000101010101010101010101010101010101010101010101010101070101010
e0b0505050505050505050505050505050505050505050505050505050505050505050b0b2401
01010101010101010101010101010101070103050505050505050505050505050505050505050
50505050505050505050505050505050505050505050505050505050505050505050505050505
0505050505050505050505050505050b1d090101010101010101010101010107010107240d060
50505050505050505050505050505050505050505050505050505050505050505050505050505
050505050505050505050505050505050505050505050505050b060b060b050d2401010101010
10101010101010101010101070102120b060b0505050505050505050505050505050505050505
0505050505050505050505050505050505050505050505050505050505060b030f010701010101
01010101010101010101010000010101010101010101010101010101010101010101010101010
1070101010e0b0505050505050505050505050505050505050505050505050505050505050505
050b0b24010101010101010101010101010101010107010305050505050505050505050505050
50505050505050505050505050505050505050505050505050505050505050505050505050505
05050505050505050505050505050505050505050b1d090101010101010101010101010107010
107240d0605050505050505050505050505050505050505050505050505050505050505050505
0505050505050505050505050505050505050505050505050505050505050b060b060b050d240
101010101010101010101010101010101070102120b060b050505050505050505050505050505
05050505050505050505050505050505050505050505050505050505050505050505060b030f01
07010101010101010101010101010101000001010101010101010101010101010101010101010
10101010101070101010e0b050505050505050505050505050505050505050505050505050505

249

0505050505050b0b2401010101010101010101010101010101010701030505050505050505050
50505050505050505050505050505050505050505050505050505050505050505050505050505
050505050505050505050505050505050505050505050505050b1d09010101010101010101010
1010107010107240d060505050505050505050505050505050505050505050505050505050505
05050505050505050505050505050505050505050505050505050505050505050505050b060b0
60b050d240101010101010101010101010101010101070102120b060b05050505050505050505
05050505050505050505050505050505050505050505050505050505050505050505050505050
5060b030f010701010101010101010101010101010100000101010101010101010101010101010
101010101010101010101070101010e0b05050505050505050505050505050505050505050505
05050505050505050505050b0b240101010101010101010101010101010101070103050505050
50505050505050505050505050505050505050505050505050505050505050505050505050505
0505050505050505050505050505050505050505050505050505050505050b1d0901010101010
10101010101010107010107240d06050505050505050505050505050505050505050505050505
05050505050505050505050505050505050505050505050505050505050505050505050505050
5050b060b060b050d240101010101010101010101010101010101070102120b060b0505050505
05050505050505050505050505050505050505050505050505050505050505050505050505050
50505050505060b030f01070101010101010101010101010101010000010101010101010101010
1010101010101010101010101010101070101010e0b0505050505050505050505050505050505
050505050505050505050505050505050b0b24010101010101010101010101010101010107010
30505050505050505050505050505050505050505050505050505050505050505050505050505
05050505050505050505050505050505050505050505050505050505050505050505050b1d090
101010101010101010101010107010107240d0605050505050505050505050505050505050505
05050505050505050505050505050505050505050505050505050505050505050505050505050
50505050505050b060b060b050d240101010101010101010101010101010101070102120b060b
05050505050505050505050505050505050505050505050505050505050505050505050505050
505050505050505050505060b030f0107010101010101010101010101010101000001010101010
10101010101010101010101010101010101010101070101010e0b050505050505050505050505
0505050505050505050505050505050505050505050b0b2401010101010101010101010101010
10101070103050505050505050505050505050505050505050505050505050505050505050505
05050505050505050505050505050505050505050505050505050505050505050505050505050
5050b1d090101010101010101010101010107010107240d060505050505050505050505050505
05050505050505050505050505050505050505050505050505050505050505050505050505050
505050505050505050505050b060b060b050d2401010101010101010101010101010101010701
02120b060b0505050505050505050505050505050505050505050505050505050505050505050
5050505050505050505050505050505060b030f010701010101010101010101010101010100000
101010101010101010101010101010101010101010101010101070101010e0b05050505050505
05050505050505050505050505050505050505050505050505050b0b240101010101010101010
10101010101010107010305050505050505050505050505050505050505050505050505050505
05050505050505050505050505050505050505050505050505050505050505050505050505050
50505050505050b1d090101010101010101010101010107010107240d06050505050505050505
05050505050505050505050505050505050505050505050505050505050505050505050505050
5050505050505050505050505050505050b060b060b050d240101010101010101010101010101
010101070102120b060b050505050505050505050505050505050505050505050505050505050
50505050505050505050505050505050505050505060b030f01070101010101010101010101010
1010100000101010101010101010101010101010101010101010101010101070101010e0b0505
050505050505050505050505050505050505050505050505050505050505050b0b24010101010
10101010101010101010101010701030505050505050505050505050505050505050505050505
05050505050505050505050505050505050505050505050505050505050505050505050505050
505050505050505050505050b1d090101010101010101010101010101010107240d0505050505
05050505050505050505050505050505050505050505050505050505050505050505050505050
50505050505050505050505050505050505050505050b060b060b050d24010101010101010101
01010101010101010107291a05050505050505050505050505050505050505050505050505050
505050505050505050505050505050505050505050505050505060b030f0107010101010101010
10101010101010100000101010101010101010101010101010101010101010101010101070101
010e0b0505050505050505050505050505050505050505050505050505050505050505050b0b2
40101010101010101010101010101010101070103050505050505050505050505050505050505
05050505050505050505050505050505050505050505050505050505050505050505050505050
5050505050505050505050505050505050b1d090101010101010101010101010101010107240d
05050505050505050505050505050505050505050505050505050505050505050505050505050
505050505050505050505050505050505050505050505050505050b060b060b050d2401010101
010101010101010101010101010107291a0505050505050505050505050505050505050505050
5050505050505050505050505050505050505050505050505050505050505060b030f010701010
10101010101010101010101010000010101010101010101010101010101010101010101010101
0101070101010e0b0505050505050505050505050505050505050505050505050505050505050
505050b0b24010101010101010101010101010101010107010305050505050505050505050505

05050505050505050505050505050505050505050505050505050505050505050505050505050
50505050505050505050505050505050505050505050b1d090101010101010101010101010101
010107240d0505050505050505050505050505050505050505050505050505050505050505050
5050505050505050505050505050505050505050505050505050505050505050b060b060b050d
2401010101010101010101010101010101010107291a050505050505050505050505050505050
50505050505050505050505050505050505050505050505050505050505050505050505060b03
0f0107010101010101010101010101010101000001010101010101010101010101010101010101
01010101010101070101010e0b050505050505050505050505050505050505050505050505050
5050505050505050b0b2401010101010101010101010101010101010701030505050505050505
05050505050505050505050505050505050505050505050505050505050505050505050505050
505050505050505050505050505050505050505050505050505050b1d09010101010101010101
0101010101010107240d050505050505050505050505050505050505050505050505050505050
50505050505050505050505050505050505050505050505050505050505050505050505050b06
0b060b050d2401010101010101010101010101010101010107291a05050505050505050505050
50505050505050505050505050505050505050505050505050505050505050505050505050505
0505060b030f010701010101010101010101010101010100000101010101010101010101010101
010101010101010101010101070101010e0b05050505050505050505050505050505050505050
50505050505050505050505050b0b240101010101010101010101010101010101070103050505
05050505050505050505050505050505050505050505050505050505050505050505050505050
5050505050505050505050505050505050505050505050505050505050505050b1d0901010101
01010101010101010101010107240d05050505050505050505050505050505050505050505050
50505050505050505050505050505050505050505050505050505050505050505050505050505
0505050b060b060b050d2401010101010101010101010101010101010107291a0505050505050
50505050505050505050505050505050505050505050505050505050505050505050505050505
05050505050505060b030f01070101010101010101010101010101010000010101010101010101
0101010101010101010101010101010101070101010e0b0505050505050505050505050505050
505050505050505050505050505050505050b0b24010101010101010101010101010101010107
01030505050505050505050505050505050505050505050505050505050505050505050505050
50505050505050505050505050505050505050505050505050505050505050505050505050b1d
090101010101010101010101010101010107240d0505050505050505050505050505050505050
50505050505050505050505050505050505050505050505050505050505050505050505050505
05050505050505050b060b060b050d2401010101010101010101010101010101010107291a050
50505050505050505050505050505050505050505050505050505050505050505050505050505
050505050505050505050505060b030f0107010101010101010101010101010101000001010101
01010101010101010101010101010101010101010101070101010e0b050505050505050505050
5050505050505050505050505050505050505050505050b0b2401010101010101010101010101
01010101070103050505050505050505050505050505050505050505050505050505050505050
50505050505050505050505050505050505050505050505050505050505050505050505050505
0505050b1d090101010101010101010101010101010107240d050505050505050505050505050
50505050505050505050505050505050505050505050505050505050505050505050505050505
050505050505050505050505050b060b060b050d2401010101010101010101010101010101010
107291a0505050505050505050505050505050505050505050505050505050505050505050505
0505050505050505050505050505050505060b030f010701010101010101010101010101010100
000101010101010101010101010101010101010101010101010101070101010e0b05050505050
50505050505050505050505050505050505050505050505050505050b0b240101010101010101
01010101010101010107010305050505050505050505050505050505050505050505050505050
50505050505050505050505050505050505050505050505050505050505050505050505050505
05050505050505050b1d090101010101010101010101010101010107240d05050505050505050
50505050505050505050505050505050505050505050505050505050505050505050505050505
0505050505050505050505050505050505050b060b060b050d240101010101010101010101010
1010101010107291a050505050505050505050505050505050505050505050505050505050505
05050505050505050505050505050505050505050505060b030f01070101010101010101010101
0101010100000101010101010101010101010101010101010101010101010101070101010e0b0
505050505050505050505050505050505050505050505050505050505050505050b0b24010101
01010101010101010101010101010701030505050505050505050505050505050505050505050
50505050505050505050505050505050505050505050505050505050505050505050505050505
050505050505050505050505050b1d090101010101010101010101010107010107240d0605050
50505050505050505050505050505050505050505050505050505050505050505050505050505
05050505050505050505050505050505050505050505050b060b060b050d24010101010101010
1010101010101010101070102120b060b05050505050505050505050505050505050505050505
050505050505050505050505050505050505050505050505050505060b030f0107010101010101
01010101010101010100000101010101010101010101010101010101010101010101010101070
101010e0b0505050505050505050505050505050505050505050505050505050505050505050b

251

0b240101010101010101010101010101010101070103050505050505050505050505050505050
50505050505050505050505050505050505050505050505050505050505050505050505050505
0505050505050505050505050505050505050b1d0901010101010101010101010101070101072
40d06050505050505050505050505050505050505050505050505050505050505050505050505
050505050505050505050505050505050505050505050505050505050b060b060b050d2401010
10101010101010101010101010101070102120b060b0505050505050505050
Once the searcher has determined the valid moves, it must decide which move to take. Here, it
decides to take the first valid move (first ensuring that it is not where it came from and that it has not
already visited that position on the current trail). For all other new valid moves, it creates a new
searcher thread and passes the current state of the trail to them. The searcher continues on its trail
until either it reaches a dead end or it finds the maze exit. Before terminating, it calls the tracker to
indicate that it is finishing and whether it has found a valid path through the maze.
The main program
The main program is responsible for creating the required objects and starting the first searcher
thread. It then waits for all the threads to terminate before interacting with the user to display the
solutions.
public
static
void
main(String
[]
args)
{
Tracker
tr
=
new
Tracker();
SearchableMaze
sm
=
new
SearchableMaze(tr);
Trail
t
=
new
Trail(sm);
Searcher
s
=
new
Searcher(sm,
sm.Entrance(),
t,
tr);
s.start();
int
numberOfSolutions
=
tr.waitAllFinished();
//
Call
user
interface
classes
to
display
solutions.
}
In the course of searching a maze, many hundreds of threads may be created. They do not directly
communicate with each other except when one searcher creates a new searcher. Furthermore,
although they all access the SearchableMaze, there is no contention as they are only reading the
state not modifying it.
The Tracker class
The only real contention is via the Tracker class. An object of this class (terminationControl) is
used to keep track of how many active searchers there are and what solutions have been found so
far. Consequently, this object needs to be synchronized. Also, as the main program needs to wait until
all the searchers have been created and terminated, the wait and notify facility is used.
public
class
Tracker
{
public
synchronized
void
newSearcher()
{
alive++;
}
public
synchronized
void
searcherFinished()
{
alive--;
if(alive
==
0)
notify();
}
public
synchronized
void
trailFound(Trail
t)
{
alive--;
solutions[count++]
=
t;
if(alive
==
0)
notify();
}
public
synchronized
int
waitAllFinished()
{
while(alive
!=
0)
try
{
wait();
}catch
(InterruptedException
e)
{//
ignore}
return
count;
}
public
synchronized
Trail
giveTrail
(int
n)
{
if(n
<
count)
return
solutions[n];
else
return
solutions[0];
}
public
synchronized
int
numberOfSolutions
()
{
return
count;

private
int
alive
private
Trail[]
solutions=
new
//
Initial
size
(code
not
shown
to
grow
private
int
count

}
0;
Trail[100];
the
array).
=
0;
=

6.2 Stopping the Search when a Solution is Found


The above solution exploits the maximum amount of concurrency in order to find all the paths through
the maze (it could easily be extended to find the shortest route). Its main advantages over a
sequential solution are its simplicity and its potential to exploit any parallel processing facility
available. However, if the goal of the search is to find just one path, then with a sequential solution the
program can simply stop when it has found a solution. With the concurrent solution, it is necessary to
inform all the threads that they can stop their searches. One way of doing this is simply to force
termination of the whole program. However, this is clumsy and does not cater for the situation where
the program wants to continue so that it can display the solution.
Java provides two facilities that help solve this termination problem. They are the interrupt mechanism
and thread groups. By creating all the searcher threads in the same group, it is possible to interrupt
them all via the group interrupt mechanism, without the programmer having to know the identity of all
the searchers. Only changes to the searcher thread are required to implement this approach.
public
class
Searcher
extends
Thread
{
...
//
as
before
static
final
ThreadGroup
allSearchers
=
new
ThreadGroup ("All Searchers");
public
Searcher
(SearchableMaze
m,
MazePosition
from,
Trail following, Tracker t) {
super(allSearchers,
"Searcher
Thread");
...
//
as
before
}
public
void
run()
{
...
//
As
before.
do
{
...
//
As
before.
}
while(count
!=
-1
&
!isInterrupted());
if(myMaze.atExit(currentPosition)
&
!isInterrupted())
{
terminationControl
.
trailFound
(onTrail);
allSearchers.interrupt();
}
else
terminationControl.searcherFinished();
}
//
end
run
}
In this solution, there is a static thread group (allSearchers), which is used to link all the searcher
threads. When a searcher finds a solution, it calls the interrupt method on this group. This results
in all the threads currently in the group having their interrupt status set. There are two main
disadvantages of this approach.
The searcher threads have to poll for the interrupt. Here, they test the interrupt status every
time they make a new move.
There is a race condition between the searcher threads being informed of the interrupt and
the creation of new searchers that have yet to join the group. It is possible for new searchers
to be created after the group has been interrupted. The result will be that they continue the
search. However, once one of them finds a solution, the others will be interrupted.
An alternative approach to using thread groups and the interrupt mechanism, is to have all threads
poll the tracker to determine the number of solutions. When this returns greater than 0, they can
terminate.

6.3 Limiting the Concurrency by Reusing Threads


One of the attractions of the previous solutions is that they let the JVM manage the resources needed
by the threads. Threads are created dynamically and the JVM has the responsibility of reclaiming their
resources when the threads terminate. This can be expensive. Also most multiprocessor systems only

253

have a handful of processors, not hundreds. Consequently, it is not possible to obtain increased
speed from the extra threads. A compromise solution is, therefore, sought one which can exploit the
actual parallelism, but without the cost of unrestricted dynamic thread creation and destruction.
The goal is to have a pool of worker threads. These threads get their work from a buffer. When the
searchers find new paths to explore, instead of creating a new thread, they place the paths into the
buffer. Worker threads, once they have finished with a path (either because they reach the exit or
reach a dead end), request new paths from the buffer. The workers terminate when they are all
waiting on the buffer empty condition (that is, there are no more paths to explore). The bounded buffer
class
is
shown
below;
it
is
based
on
that
given
in
Chapter
5.
public
class
BoundedBufferData<Data>
{
public
synchronized
int
getCurrentSize();
public
synchronized
boolean
isFull();
public
synchronized
void
put
(Data
obj);
public
synchronized
Data
get();
}
Unfortunately, the standard bounded buffer has no way of knowing when all its producers have
finished and all its consumers are waiting. It is, therefore, necessary to extend this class to produce a
signaling
bounded
buffer.
public
class
SignallingBuffer<Data>
extends
BoundedBuffer<Data>
{
public
SignallingBuffer(int
size,
int
maxConsumers,
ThreadGroup group);
public
synchronized
void
put(Data
o);
public
synchronized
Data
get();
}
The thread pool class contains a private array of threads. These threads take their work from a
signalling buffer. The only interface into the thread pool is a method to allocate work.
public
class
ThreadPool
{
public
void
allocateWork(Runnable
r);
}
As the threads are now supplied by the thread pool, the searcher class no longer needs to be a
thread. Hence, now it simply implements the Runnable interface.
Class relationships
The relationship between the new set of classes is given by Figure 6.6.
010009000003107a0100000085aa000000001610000026060f002220574d464301000000000001
0068b4000000000d00000000200000707c0100709c0100010000006c0000000000000000000000
d20100004601000000000000000000006a400000062d000020454d4600000100709c01000c0000
00010000000000000000000000000000000005000020030000c40100001a010000000000000000
000000000000e3e306006e4e0400460000002c00000020000000454d462b014001001c00000010
0000000210c0db01000000600000006000000046000000cc450000c0450000454d462b22400400
0c000000000000001e4009000c00000000000000244001000c0000000000000030400200100000
00040000000000803f214007000c0000000000000008400005184500000c4500000210c0db0100
00000000000000000000000000000000000001000000ffd8ffe000104a464946000102010048004
80000ffed0b0650686f746f73686f7020332e30003842494d03ed000000000010004800000001000
100480000000100013842494d040d000000000004000000783842494d03f300000000000800000
000000000003842494d040a00000000000100003842494d271000000000000a00010000000000
0000013842494d03f5000000000048002f66660001006c66660006000000000001002f666600010
0a1999a0006000000000001003200000001005a00000006000000000001003500000001002d00
0000060000000000013842494d03f80000000000700000ffffffffffffffffffffffffffffffffffffffffffff03e8000000
00ffffffffffffffffffffffffffffffffffffffffffff03e800000000ffffffffffffffffffffffffffffffffffffffffffff03e800000000ffffffffffffffff
ffffffffffffffffffffffffffff03e800003842494d04080000000000100000000100000240000002400000000
03842494d0414000000000004000000023842494d040c000000000976000000010000007000000
04e00000150000066600000095a00180001ffd8ffe000104a46494600010201004800480000ffee0
00e41646f626500648000000001ffdb0084000c08080809080c09090c110b0a0b11150f0c0c0f151
8131315131318110c0c0c0c0c0c110c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c
0c0c010d0b0b0d0e0d100e0e10140e0e0e14140e0e0e0e14110c0c0c0c0c11110c0c0c0c0c0c110
c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0cffc0001108004e007003012200
021101031101ffdd00040007ffc4013f000001050101010101010000000000000003000102040506
0708090a0b0100010501010101010100000000000000010002030405060708090a0b100001040

1030204020507060805030c33010002110304211231054151611322718132061491a1b14223241
552c16233347282d14307259253f0e1f163733516a2b283264493546445c2a3743617d255e265f2
b384c3d375e3f3462794a485b495c4d4e4f4a5b5c5d5e5f55666768696a6b6c6d6e6f63747576777
8797a7b7c7d7e7f711000202010204040304050607070605350100021103213112044151617122
130532819114a1b14223c152d1f0332462e1728292435315637334f1250616a2b283072635c2d24
49354a317644555367465e2f2b384c3d375e3f34694a485b495c4d4e4f4a5b5c5d5e5f5566676869
6a6b6c6d6e6f62737475767778797a7b7c7ffda000c03010002110311003f00f5549249252924924
94a5572f1ebb6dadd6e30c9635ae10431d04967fa62dfa5b55a492538bd4f0aafb297518a311cc32
6c145169221cc6b3d373ff7dcc7b3f96c44c6e9cdacbfed38755e1c7d8194535868f9dd66e57b3196
1a83eb7069a8ef8702e060386d735aeaff007b7225159aa96544871634364081a69c4b92521c4c7
aeab6c7558c319ae6b410031bb882eff425df4777e72b49249294924924a524924929ffd0f5549249
25292492494a5533f2ecc567a8d66f6b44bc35ae7ba37319ecaabf7bf6efdeedbeff00f46ada83ea63
c82e996c80412d307fa85be0929cab7ac8752f30e2d04b1c45174831fb9ed7bdbf9bbab4c7af11a9a
ad68d0b9c71ed86cb9acf7ba3f97bfdab432696b69716b9e0e9afa8ff0011fcb52af1e01f51ce71dce2
087bc7b493b07d2fcd6a4a6b51d41f757bd825a4b609aed6cb43bf4ded73777d0fe6bf7dead7daaaf
07ffdb6ff00fc829b2a63092d997402492e3a7f5cbbc54d25203998ed8dc5cddc61b2c7893fbad96fb
9dfc9546cead7d55516db5fb72182c06badf635809ac45af67d1fe7bdbedfd27a76ad37318fda5ed0
ed8773644c1e37350db8b4b1a1acdcd6b4435ad7b800070000e494e68ebb2f73432cd8d6b5c2dfb
3dc5a4bb77b1b03d4dcddbb9dec446756b2cb1d531a7d46b5ee87d36b1bfa38ddfa6737d2f76ef62
b2da1ceb9d163dac63fdcddce3b9be98f64977b3deef53d88c71aa702d76e208820bde4107fb4929
fffd1f4efb7e0c4fda2a83afd36f07e697db70bfee455fe7b7fbd068c7caafa7d7864358594b6a3656f2
0821be997d535fe6ff8340fd999c240cfc9da5bb76efa8c0da19f4ce2fabbff003fd4dfbf7a4a6f7db70ff
d3d7fe7b7fbd3e464e3e3303f22c6d4c263738c0982ee7faad556ac5cbab1acc72f7647a9be1f7d80
b9bbff00c1fb2866ead9fcb47662b9b5b58fbdf696fe7bc30927f78fe8f6ff009a92908eb9d1c9b07db2
91e93fd3b373c340710c7347be3e97ad56cfeba2d7d4fa75acdf5e554e6f6707b6392df1fde6b931c
5a2aaccb8575b401f46b0d0068d1fcdfe6a1d6e2dc868a5a5dbab716ef1e9820166e8d957f2bfc2ecf
f0082dffa4494b66750c61586b6caded7987b858cf6c7b8482edcedcef67b558fb760ff00dc8abfcf6ff
7aa99b4663c9bdb75b8d0d0c2da6c61075d1fb3228b1bbfde9b1a8c9379c8664dd6b1af735d4bde
057b99fa17738cdbbdbb7fc1d9e959fcea4a6eb72f15c096dd5b802d6921c0c179d95b79ff0008ff00
6b11956343ef7137b435bec21ad3ba5cc77a8c71dd5b7f9b7ed73117d377fa477fd1ff00c8a4a4883
f6dc33c5f5ff9edfef51be9c87560537963f7b0973834fb03daeb9bf47e93e9dec51c5665518d5526b
61f498d648798f68dbfe8d2531c7ccc72eb5ce7b6b2e77d173d930035bbbd8f7b76bfe9237daf13fd
357fe70fef55060650c8170c8bb687179a3d569ac9277edd68f57637f9162b6e392e639be9b35047
d33dff00eb6929ffd2f4ff00b5e2cedf5ab9988dc267ef4ff6bc598f5ab9f0dc3fbd567b329d43a838ecd
ae696170b20c46ddc26a54327072c52eacdb935d618e716557335635aeadd5377e3ff00c36eff00a
dd7fa4494eadb994b2b796595bec6825ac2f689747b5b24fb7727190fb47eaed9e3f48ed19fd9fceb
7fb1fa3ff8659d4f4dcac7782cf51f5b18595d165e1d5891ee7cba8f5bddfcbb16863dee7d86b23606
304b1da3c3b5ddfc9757f436beb494c998ed90fb49b6c1a873b807fe0d9f459ff9f3f968c921bdee0f0
c6804904ea6388f277ef24a6199fd1ddf16ff00d5351d65f50cea997371afdd53dbb1ed7343dec77a8
5f4b5aef498efed6fd9fe0ec47c2ea4cce6976389801ce0f0f611bb740f7d61bbbd8eddb5253752436
3de5e58f004006419e777937f751125292492494a49249253ffd3f55406bd965ed730ee686d8d27c
dae631e3fce6acfaacc06b6c17d4d75beaddb9ce2cddfce59b7e9bdb67d1fa0a80c6bf63766754086
47e9f1ea7587487bfdf90cbbe9fbebfec7d3494f4c876d15da06ed1cdd58f1a39a7c58e59ecb3a6358
d0faab7b8001ce3e9093fbc47a8afe2c1c6a88d06c6c0f28494c3d5b68246443abed701103fe19bf9
9ff001adfd1ff00c4a23eaaec2d799900c16b8b743fd4214333ecff00673f69d2adcc989e7737d3fa1e
efe736ace2ec2355f5b5ac6dce7da1971f48ed25ced8fd963c6ed8929d3fb3d7e2ff00fb71ff00f924be
cf5f8bff00edc7ff00e49603aaca7b89fb46252d1ed86d55bdc406ff003ad3eb37d273acfa557e9ffe35
38ab2cd8672315ad6b76b76d5510e711fce3d9eab7d3f4dffcdfe99e929e819532b24b6493009738
bb8feb9778a9ac3c66963835b65765ae7562871ad81ed83fa675be95cdb6cf519fbbb18b42d6e735
a0d9635ec0e6ee6d35bdaf2247d177aeefed7f212537125422e6ded39477d658e2c6e92d3b99f4ec
fd156efe47e8bfd27e92c55053d61b5b5a3270dced773df49dd078fa1731bb9bff0016929da49620c
7eb00cbb3318fe8dac0d14b76ef01dea5dfce6edcf739bff07fa3fe6d5be9accb65b63722d65c032b0
d7319b3506dde6cdae757bddecfe6d95a4a7fffd93842494d0406000000000007000500000001010
0ffee000e41646f626500644000000001ffdb0084000403030303030403030406040304060705040
40507080606070606080a0809090909080a0a0c0c0c0c0c0a0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c
0c0c0c0c0c0c010405050807080f0a0a0f140e0e0e14140e0e0e0e14110c0c0c0c0c11110c0c0c0c
0c0c110c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0cffc000110800f5015e03
011100021101031101ffdd0004002cffc401a2000000070101010101000000000000000004050302
0601000708090a0b0100020203010101010100000000000000010002030405060708090a0b100
0020103030204020607030402060273010203110400052112314151061361227181143291a107
15b14223c152d1e1331662f0247282f12543345392a2b26373c235442793a3b33617546474c3d2e
2082683090a181984944546a4b456d355281af2e3f3c4d4e4f465758595a5b5c5d5e5f566768696a
6b6c6d6e6f637475767778797a7b7c7d7e7f738485868788898a8b8c8d8e8f82939495969798999

255

a9b9c9d9e9f92a3a4a5a6a7a8a9aaabacadaeafa110002020102030505040506040803036d01000
21103042112314105511361220671819132a1b1f014c1d1e1234215526272f13324344382169253
25a263b2c20773d235e2448317549308090a18192636451a2764745537f2a3b3c32829d3e3f3849
4a4b4c4d4e4f465758595a5b5c5d5e5f5465666768696a6b6c6d6e6f6475767778797a7b7c7d7e7f
738485868788898a8b8c8d8e8f839495969798999a9b9c9d9e9f92a3a4a5a6a7a8a9aaabacadaea
faffda000c03010002110311003f00f7f62aec55d8abb15762aec55d8abb15762aec55d8abb15762a
ec55d8abb15762af36d13c8be4cf316a3e64d535cd0acb51d48eb173135ddd4092cbe9c691855e4
c09a01b018aa6fff002a93f2c37af9434935eb5b387fe69c55bff954ff00967bff00cea7a5ef4aff00a24
5bd3a576c558b79e3cbbf93de42b1b0d535bf24d8be91757d6f6171790595bbc7666e5b824f3062a
444a4fc6ea1b82fc4471c552ebcb5fc87d37cfb37e5e5c794b4c82fedf4b3ae6a37f25a5ac3a7c107a
c902a4923b2932b348944556f85d77f8b154f53ca9f9026f16ca3d3bcb26f9a3f5d205167ea18962f5
8b8506a54447d4aff00befe2fb38aa6961f96ff0094baada43a869be5dd1af6c675e505d410432c4ea
4d095650411518aa27fe553fe5a0141e53d2e9d29f558e94fbb1577fcaa7fcb3a50794f4b03a505ac
4053c3a62a86f2bf97f43f2d79e35cd3fcbfa7c1a65949a5e993c96f6a8228da53717ca5caad072a28
15f018ab3ac55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55fffd0f7f
62aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb15762ac5bc9628de63f7d6
ef3fe231e2aca715762ac6fce5e581e6db2b7d1ee92de6d1649245d5adae55d8cd6b35bcb6ee89c4
8a35252431ad298abcc22fc85d76cf57d035787cd6b7d79a4e9b0e9ba85eea568d35ddfba5fc37b2
4cf2acca637658162564f8e31f65f1542c5ff38fbe606d1ce8f77e64b37faa58da69da1dd4763229b3
8ace64b993e0370439bb961845cb160cd047e82711f162af5ef27f977fc33a4b5894b48e59ee26bc
9e3d3e0faadb09ae5b9c9c54b3b12589667762eec4b1f0c553fc55d8ab18b314fcc2d60f73a3e99f8
5cdfe2ac9f15762aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb157ffd1f7f6
2aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb15762ac6efbf2fbc93a95ecf
a8df685673df5d37a9713b4439c8f40bc988ea6806f8aa1ffe558fe5ff00fd4bb65ff22ffb71577fcab1fc
bfff00a976cbfe45e2aeff009563f97fff0052ed97fc8bc55e74be47f269f3c8f30fe88b53e5d7bb3e531
6c4b8b612227adf58f4cfc2653741ad39786d8abd17fe558fe5ff00fd4bb65ff22f1577fcab1fcbff00fa9
76cbfe45e2aeff9563f97ff00f52f597fc8bc55dff2ac7f2ffa7f876ca9ff0018f154d744f2b7977cb6d3b68
5a65be9ef75c05c3c0811a411f2e018f52179353e67154df15762aec55d8abb15762aec55d8abb15
762aec55d8abb15762aec55d8abb157ffd2f7f62aec55d8abb15762aec55d8abb15762aec55d8abb
15762aec55d8abb15762aec55d8abb154afcc7ab7e83d0b50d5821924b5859e18802c64988e31a
0037259caafd38aa4cde53bc4f210f2d437a5b5b8ed83c7aa48aa49d511beb02e1946dbdc0f50afd
18aa77a06ad1ebba2586b110e2b79024cc9b8e0ec3e2420ef556aa9af862a9962aec55d8abb1576
2aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb15762aff00ffd3f7f62aec55d
8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb1563be70d1b59d
6ed2c22d1ae6d6096d2fa0bd992f639658655b6aba2110c91b0a4a2393a91f071a6f8aa450dff00e6
849aedd68a67d03fd16d6daeccc2def47217324f1f1a7ae694f46b5afed62a9ff94348d5f45d3eeadf5
9b8827b8b8bdb9bc8d6d16458624ba7f54a2faaccdf6d9dbaedcb88e98ab20c55d8abb15762aec55
d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55fffd4f7f62aec55d8abb
15762aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb15762ac72d2bfe3cd5b
c0695a753fe922fb156478abb15762aec55d8abb15762aec55d8abb15762aec55d8abb15762aec5
5d8abb15762aec55d8abb157fffd5f7f62aec55d8abb15762aec55d8abb15762aec55d8abb15762a
ec55d8abb15762aec55d8abb15762ac72cd7fe77bd61ffed55a6afdd717c7f8e2ac8f15762aec55d8
abb15762aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb15762afffd6f7f62a
ec55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb15762ac4ae7f3074c82f6eec6
0d2f58be6b295ade79ecb4cb99e0f5630392ac8a9c5a95a1a62ab3fe56259d69fa03cc1ff00708bbff
9a3156bfe56259ffd583cc1ff00708bbff9a3156ffe561d9815fd01e60ffb845d77ff00618aa4f6de7444f
346a3a93797bcc02d2e2c6ca089ff0044dcef2412dd338a71a8a0913a8c5537ff009589675a7e80f3
0d7fed8f77faf862ad9fcc4b302a740f307d1a45d9fd498ab5ff002b16ce95fd01e61a7fdb1eeebf770a
e2ae1f989667fe941e61ff00b83ddffcd18aa6ba079a6c7cc32dddbdbdaded9dd59889e6b7d46d25b
39384fcc23289547252636151fcb8aa0345f306a77de7af34f976e845fa3f47b7d2e7b131a1592b7e
b70641231621a8611c6817156578abb15762aec55d8abb15639ad79cf4dd13534d1ded350bed45
adc5db43a759cd77c206731ab398d48156560056bb62a831f985687a681e60fa749ba1fad71577fc
ac2b4e9fa03cc1ff00709baff9a7156c7e60da134fd01af8ff00b74dd7fcd38ab5ff002b06d295fd01afff
00dc26ebfe69c55c3f30ad0f4d03cc1f4e93743f5ae2aeff0095836bff00560d7ffee1373ff34e2aeff95
836bff560d7ff00ee1373ff0034e2adff00cac0b5ff00ab06bfff0070ab9ff9a7155197f3334a825820b8d
1f5c8a7ba631da46fa55d069645432144f877608acf4fe556c55fffd7f7f62aec55d8abb15762aec55d
8abb15762aec55d8abb15762aec55d8abb15762ac155ee97ca9e723a7ea71e93a81bad552d355b
801a1b4b86056399c1d8aa315635c55e69a17e697993cbd7577e4cb8d3a6b9f3f45c8dcd86adaa4
726985ad2ce2979d9ea33152f1dd29f5423afab6e5656922e14c5531bcfcfbd45b5ad3743d1f4dd3a
ea7d66f20b3b1b87bd716ea27bbbcb32dc922632717b515e2aab566552dc03baadeabf981e65f31
dbf92759f2e5ee9b6efa96ad0ac36716a12d0892d6fc4b6d7f1a475211a143b0e4b32b47c470e6ca
b1ed6ff003e2ffccde4ab4b9d2961d32ff57b5b6bab67b4bd6592d6ee282c6fde19640a095659da37
088dfbbe2cc6ae635551baa7e706b7a179cfeb3ac448b2430dc6852e9f05effb8892f1f55b0b782f43
4fe9850ab745242dc692728b97ed62ab4fe67f9b742f3cc3e61d5d1e7d0354b2b0d1f51f2dd95d26a
16f63ae5e49762cae22963e404772f6e2d5e9f0acb2c3cb757c5547c8bf9adae685fa5f46d73538bc

c1ab47e6bbad32eae2f2e846d6e9757cd6700000091411b21e0a393ba2c9f0feed98aac86dff003b
b5cbc58a2d374cd32faf2f56eaff00480fa8a584777a4584b05bbdd56e4d51657925780d1f9c11a4a
40f57e0559a5ef9ab46f2f79db548f52177cee74dd3a48cda58de5f0e2b2de0f88dac3285dfb353154
159f9a3f2ff004ed7f54f335b8d606abac476f0df33695ad3c4c966184216336a5538f36fb205797c58
aa6fff002b3bca7ff6b3ff00b82eafff006498abbfe567794ffed69ff705d5ff00ec931570fccff291340753
affdb1757ffb24c55aff0095a1e51ad2ba9d7c3f42eaff00f6498ab7ff002b3bca63a9d4c7cf45d5c7fd8
a62aeff00959be53a57fdca53fed8babffd9262a96f977cc5a5f98bf327529f4b371e9c1a1d9a49f5ab
4bab26e46eee4ecb75144587ba838aa77f9913cf69f97be6abbb5ba96c6eadb48be9edef6de4f4a6
8658adddd2447ec558023157836b1f99be6b8bcb7e59d3b57d65f4fd6bca1e63d3347f3e5f2c9f524
d40b13e8932143c60bab7e377294fb21d13c462ace6dbf3aefef6582c2d2d2c64d5ae3508ac61b7f5
9c06b76b1b5d4e7bb7343e8c105bcedc9df7793d18f8234dc555635ad7e677987ce761e4cd4f4e89
ecb4ad6b5bd3858a68dac431dd5f58dfd95f3bc1370907a6637863ab3327270e8154a372553bd1ff
0031fce7e56d1ae74df32436fab6b3a16a9068d7c92dcac77922ea719b9b297d42891b246934304
b315512345733fc223f895587f37750d43558a7d1e1fab5e3c5a65bde43a89b9892d9ee3cc2ba55c
452d8b70e13c624afa82460fb712d1f076556683f9cd750695ad88b4f3349e5f7d52f6f23babd92ee6
ba8adf5ebcd39a3b591d41a8fab9654238c7ce18176f8f15643f96df9b5a8f9d3cc09a16a9a6db59b
dce90daddac9693bcd4487519f4e923903a21a96883a91e254fd9a9559579a6bfe27f237fdb52eff0
0ee937b8abfffd0f7f62aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb15762
af3ed375fd234697cc1a4eb96b7cc67d4eee431ae957f7704904e14821e2b7923756077a13e18aa
ab6bff00976f6eb68fa34ed6a930b9480f97b5031ace0504817ea740f4fdaeb8aac6d6bf2d9ee56f1b
4394ddc7219d2e0f976fcc8b2b3732e1bea750c5b7e5d6b8aaefd3bf9722579868b37acf31bb793fc
3d7fc9ae18153293f53a972091cbed62a868b5ffca969e5b5834526e6dd1166853cbb7dce38e4431
a0602cea14a02a3fc9f87a62a89935dfcb9963f465d12678bd16b5e0de5dbf2bf5776e4d150d9d383
36e57ec938aaadaf99fc8762e64b2d2eeada4291c45a1d03518c98edf7896ab663e14fd81fb3fb38a
a0df50fcac90c8cfe5c2cd2d4ca4f96af8962edccf2ad96f561c8fbe2aa91eaff009671ac223d0244581
d658147972fd7d391178ab28fa97c2ca360474c5533f2e6a506b3e67d6b52b28ae92c4da69f6eb2d
dda5cd9069637ba670a2e638cb710eb52053e2c5596e2aec55d8abb15762aec558427953cd2bf98
6fe666d7e43e5964a2e8bc9f887f4bd3a7871e5fbcff005b1553d4f558340fcc29750d46def4d8dce8
d0410dc5ad8dddec6668aea767426da2978901d4fc54c551977e76f28ea16d2d95fdadfdd59cea52
6b79f43d4e489d0f55656b4208f638aa12efcc5f97d7f0c76d7da45c5d5bc4eb2c514fe5fd42445923
508acaad66402aa0283d86d8aa1d352fcb08dd648fcbcc922a0895d7cb77c18462945045974f846d
ed8aad4f327e56a5dadb2690c97e1cea4b00f2fdf0984a0f1fac71fa9d7954d3d4ebef8aa3ae3cd7e4
6bb9cdd5d69b773dd3466169a5d0751790c641050b35a13c68cc29ee715523af7e5e356ba34e6b
1880d7cbda81ac41fd5086b67f6798e74e9cbe2eb8aba2f307e5e426330e8d3c66191e688a797b5
05e12cac19dd6967b333005987538aaeb1f3279074e9967d3749b9b39d63302490797f5185842ce
643182b660852e4b71e9cbe2c552ed7bcdda5df6bfe55bbb5b5d524b6d32fae2e6fa5fd11a9811c4f
a7dcdbab6f6c2b592545a2d4ef5fb20e2afffd1f7f62aec55d8abb15762aec55d8abb15762aec55d8a
bb15762aec55d8abb15762aec55d8abb15762ac6f493ff3b9798c785be9bfaae31540477f7ebf9ad3
e946fa57d31f408eec69ec53d249c5e3c5ea280a1812bb1ab118ab33c55d8abb15762aec55d8abb
15762aec55d8abb15762aec55d8abb1562adff93263ff00b61c9ff51698aa1e7ff95827cf90fa3f575f2
3053ea1aa99dab10ad411b524fb3df8f3ff0027156658abb15762aec55fffd2f7f62aec55d8abb15762
aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb15762ac774b445f38f98587d
b7b6d38b7d02e00c55391a769e2fceaa2d211a9b47e835efa6beb9841e5e99929cb8d77e35a5715
44e2aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8ab156ffc99517fdb0e4ffa8b
4c559562aec55d8abb15762aff00ffd3f7f62aec55d8abb15762aec55d8abb15762aec55d8abb1576
2aec55d8abb15762aec55d8abb15762ac6f4a24f9cbcc40f45b7d3683e8b8c559262aec55d8abb15
762aec55d8abb15762aec55d8abb15762aec55d8abb1562adff0093263f1fd0726ddbfdeb4c55956
2aec55d8abb15762aff00ffd4f7f62aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55d
8abb15762aec55d8abb15762ac774b35f37f987da0d387e13e2ac8b15762aec55d8abb15762aec5
5d8abb15762aec55d8abb15762aec55d8ab17284fe62a49d868acbf7dda9fe18ab28c55d8abb157
62aec55fffd5f7f62aec55d8abb15762aec55d8abb151610000026060f002220574d4643010000000
00001000000000000000d00000000200000705c0100709c0100762aec55d8aa1a0d42c6eaeaeec
6dee125bcb128b790a905e269504881c76e4a6a31544e2a82b1d5f4bd526bdb7d3af21ba9f4d9fea
9a8470babb41701164f4e4009e2dc5d5b89ecc31546e2aec55d8abb15762aec55857e615d7e625
b8d207902dade7e77483566b9556e36dcd010b5913a82d5dba7eda77551da3127ce7e662452906
982be2784e7f8e2ac9f15762aec55d8abb15762aec55d8abb15762aec55d8abb15762aec5522f38
6b3a9e83a14fa8e91a7b6a77c9b476ca18f504f23c4745a6f52bfeb0c5525d16faf752f37d9df5fda35
85dcba1b99ac98b131b7d700a12e884ec3f971566f8abb15762aec55d8abfffd6f5ff0095b5efcc4f34
796346f32c36fa2db47acd8daea31dbb3ddb98d6ee15982160a2a57952b4c553507f32abbae87c7
d9aeebfab155acdf9962945d0a95dead783fe35c55723fe63ba72a68649e9c5aeca9fa698aae53f98
dcbe25d102fb35d935fb862ae27f31076d169e3caec7f0c55b2df9814f85b4535fb35fad6f8ab63fe56
1f7fd0bff004f58abbfe421d77fd0b4a7fcbd75c5557c9baedfebfa5dc5c6a904305fd9dfdf69d3adb33
3c2cd6372f07352e0351825687a62ac871578d798ec7cf57be7b9eda03ad2795a4d66c1de5b39de

257

187f477e88bb4b95468dc3aa8b9f4090287d4f897f6b1561312f9eecb5af26e97e60b8f34ad9eb3a4
5ba6ad1457b225ccbad269f7ed76aacb282855a3b76a46563afc43fdd98aacb5f2ffe7159ea13c77a
9ae449a9dcc0358d5742fa92dcc9a8c3a2e936c97245c3a2984cd6f748ce03287a3b46d1b29c551
7ade8ff009b66cf57b8d325f327e946b3f33cba6a2de49e90be8b5689f445e0640b436c65db6474f8
67fd95c5511a0e9bf9ab7cfa4cbe6a9bcd51cb2dcbc5e6782196ded6d818ac6fa92599b494c9e9c9
33dbd0831f48be0565971554d034efcd8b5b296ea5b7d53f4ecd7f6ba8dddb5e48df57bd864d22c6
0920f5e19cb5b4893a4eeadc0c024522442922b62af578754f3bea93ea0fa545a547616b793d9c1f
5a6b969985bb702cdc0051520ec31556afe64d4fc3a1d3b6f77d7eec55c4fe64d4711a1d3bd4ddd6
bf762ab43fe63b06e1fa0988246cd77d4763407154059e95f98d6babea3ab72d10bea296e8d10377
45fab07037a6f5e7e18aa3cb7e6483f10d080ad01e577fd3156ebf997cbec68457fd6bc07fe227157
13f995d9343a7bb5e7fcd38abb97e667f26855ff5ef3fe69c5513e5fd4fcc13ea5a8e93e618acd2e6ce
2b6b88a4b06999192e4ccb4612a82083176f1c552c9357d497f36edf41174ffa1e4f2e5c5f3595138
7d663be86212578f2af172bf6b8fb62acd715762aec55d8abb15762ac5753d6bcc4fe696f2e6870d9
05874f8f509ae2f5a5a9334d244115631dbd324927be2aa83fe561d4d7f4281da9f5a3b62aeff9083
5dbf4353c7fd2b1573b79f517933e8caa3a96fad0007ceb8aa58ba779e25f301d722bbd19996cbea
2d6ca2e5854cbea872437b5294c55317b8f3bc242dc4fa244e559c063702aa94e445586c2a2a715
551fe3dfe6d229e34b9feb8aba9e7cecda47fc0dcffcd58aba9e7cfe6d23fe06e7fe6ac5509777be7cb
4b8b0808d21bebd70d6e1a97238f1b7967af5dffbaa7d38abffd7f67fe54aaafe577921507151a0695
403a01f538b1565f8abcd3fe7202deeaeff0028fcc76f631cb2de3adafa296f1bcb2922f21278a47f11
a0049a76c55e7ba7eb3e6cf242f985fd1b8b2d6aff005bbe96ff004cb2b19aeb488a17d1a6fd19369b
447263b89ada0698edfe9524b0c88bf0332a863f99ff009b11f949f5d6964fd2f224b043a7fe8793e19
9348b3bb0e5281cd2e64962a1214fd8fb695c5537d4bf31fcf16d7f73a237d62f52d7571632ca74a9
44573a54d7d040f27a9146cacc914cdf6046aaa9eab3bff778ab15b5b8f3fe99e59fcbeb58ad26d68
6856ba35d5840f66d6f3c1ab47a4ea10cf60e5402541580397f89647e2ef5740aabdcbf2cb5dd63cc
5a34fa96ad7c2f965954dab7e8fb9d31e15f4939c2eb729133b2c818f211af1e5e99e4c85b1566f8a
bc2b4cf3379e34fd52ff49b6d25adbcaafaf6aad1ebb0cf0bb5ccefa95c72b66f51196d403c473756f5
2b4478db157a7fe9bf377fd4adf2ff0072107f4c55dfa6fcdf4ff94577ff00b6841fd315529aff00cc5712
433dc793e3967b725edddef2d99a363b1284ad54d3c315561ad79b77af9588f0ff004f83fa62ad1d6f
cdc3ecf95aa7df50807f0c55bfd35e6dff00a95bfe9fedff00a62ad7e9bf376fff003ab7cbfd3e0dff000c5
56f91a7bbb9d3b5192fad3ea573fa52fc3dbfa8b353f7ec7ed2800e2aca315416b0631a4df19bd6f44
5bcc64faad4dc71e06be9537e74fb34fdac55f34e93abf9c7c8530d1b49820b8d29a1b0b06fcc9b6d
3aea86d16daeded23bfb08e290fd7125e293ca80ab2cd1fa82076f8154feff00f33bf3106bb6ba55b4
b2c115cdc4363777336897112c33adfe9d0ccd1c4eadc6336f7173323cb3bd447cf846a9f1aaa7e6
ed57cc5e62b1d334dbcd42f7f4c693e6dd26defed0e90f1fa02db5b8d61be49827a6c8f6c8657de48
cab96f8111931542cbf9a5f9a4fa4dfb2ceb65ac69ba6dcdd5ac1268b777075336f0dca8910a22c71
3fae91d54bf4dbd33eb46d8abe80f2f8bdfd0d66fa8de1d42ee58c4b25d18960e5ea7c60704d87107
8fd1bef8aa658ab0f9175e6f3a6adfa1e4b38e2fa869debfd6d25918b7a9774e3e9ba8029e38aaabe
87af49aa47adbc5a236b11446de2d40d9cc6e16163531893d5e4149df8d698aa34c7e74ed71a5fd
305c7fd56c55de9f9d29fef46975eff00b8b8ff00aad8ab847e75aef71a5d3fe305c7fd56c55af4fced5
dee34aa7fc60b8e9ff23b156da3f3afecdc6967e705c0ff0099d8ab14f3b79bbcf1e50b8f2bc6b0e957
9079875bb6d0a5908b885adfeb69232ca1793fa9431d38d53afdac551fa42eacbf995a87e977b692
5fd0567e99b4492350bf5cb9ad448ef538ab3ac55d8aa1351b2d3efed4c3a9c11dcda2324cd14ca1
d3942c24562a6b5e2ca187be2af9a7f2f8f98fcbfe51f28c5a45b6a3a3dcc967e699f5c7b7d1fd6d41d
ac2f1eeac6165b9886f2076f4a36643306e31baf5c556eb3e68f3879a7cbbaee91add95f5dc3368fe
608203368f389dc4da7e9f3592893ea919e6f33dc2718d543347c7e2f4d5b157d3d6aeb25b4322d7
8b46ac2a0a9a100f43423e9c555715762a93eb3ff1d1f2f7fdb424ff00ba7dde2aff00ffd0f5ff0095745f
cc6f2cf96745f2d06d12e63d1ec6db4f5b92d768d22da42b1072bc4d0b05ad2b8aa69cff0032b90fdc
e8653bfef6f011ff0024cd7156c3fe63f7834427da6bb1ff00328e2abc3fe6254561d169dc7ab77d7e7
e9e2ab4bfe63768344fa66bbffaa58ab4d27e64fec5b68647bdc5d8ff0099271569a4fccbfd9b6d0ce
db567bc1bd3fe309ef8aa9b4bf9a21be0b4d0197fcab9bd53ff0050ed8abbd6fcd1a0ff0042d001ee3
eb77a7fec5b1546f92f46d4b44d1e6835836e753bbbebfd42e459b3bc0ad7d7525c055691558f10e
0125462ac8b15762aec55d8abb15762a92eafe68d2b47b84b07325e6b132f3834ab2433ddbaef43
c06c8a6847a92b247fe5e2ac6f4883f32ec96f5a3d3b46861bbbcb8bc8a1b8bcb833a25c485c2c86
2b764e401df8165f73d7154c3d6fcd0e7fef1e8023a0ff008fabd26bdffe3dc62ad19bf34abb596814ff
0098bbdebff48d8abbd5fcd1ff00963d02bff3177bff0064d8aa5f69ae7e65ddeafa96911e9fa12c9a60
b76794ddde51c5cab30a0fab6d4e3e27154c0cdf9a5bd2cb40f6adddeeff00f4edb62ab04ff9afdf4ff2
f7cfebd7dfabea98aae33fe6a0038d8797d8f7adede8ff00b1438aad171f9af4df4ff2f72ff98ebea7fd42
62a8ef2e58f995352d4f54f32258c535dc76d05bc3a74934ca16dfd5259da68e235265a500fd9c559
262aea6f5ef8abb15762aec55d8ab1cf36793ed3cdcfa13de5d4d6dfa0354b7d6ed441c2925cdaaba
a2c9cd5be0f8cd42f13fe562a82d6748f36c3e6b3e62f2d2e9d3c5369d1e9f3c1a8cb3c0cad0cf24a1
90c314a08224a1069d3155cb37e689fb763a02fcaf2f5bf5da8c5553d6fcc8a0ad9e875eff00e9577b
7cbfd1b156c4bf98c280dae8847ed1facdd8a6dd87a06bf7e2ab9a5fcc30485b5d148ec4dcdd8edff1
80e2ab7d4fcc7a7fbcba203e1f59bb3f8fa18ab424fcc9deb6da18df6ff48bb3b7fc8818ab849f9934de
db432d4dbf7f76057fe44e2ad87fcc7e43941a271ee04d775ebe3e97862a84bbb5fcc5bbb9b1b868
b444fa84e6e1104d76799682580827d214fef6bd0f4c55ffd1f7f62aec55d8abb15762aec55d8abb15

762aec55d8abb15762aec552cd635fd27418a29353b811bceeb15adba2b4b7134ac40091451867
76a9e8aa7eec5529e3e6bf3132972de5bd18d6a8a525d56652052a7e38adc6e6a07ab27f951362a
9c691a0e93a145247a5db2c2d310d71312d24f338ad1a595cb3c8dbf5766c558e7927c9faff0096f5
0d66f359f3049aca6a52acb0c2e24090f1555f803c8f4a81c684bb7c21bd4df82aacd315762aec558
ce8c07f8c7cd0c0efc34e07e88a4feb8aa06dbcafe6b8bcfb3f9926f30b49e5c91382687c5822fc0545
0f2ea1be3a9aa9e44045e21b156698abb15762aec55d8abb15762aec55d8abb15762aec55d8abb
15762aec55d8abb15762aec55d8abfffd2f7f62ad3305152683a7dfb62ade2aec55d8abb15762aec5
5d8abb15762aec5507a9eada668d6c6f355ba8ad2d81e21e560bc98f4551d598f655dce2a900bff0
034799508d2206f2f696fc97f495fc40ea0e2acbca0b56a88fa02ad71bf8dbe2a9a691e5ad2b4691a
ea18dae35491784faa5db19ef251b5434adb85a8af05e318fd9418aa6f8abb15762aec55d8abb156
33a31ff9dc7cd03c134eaffc8a931564d8abb15762aec55d8abb15762aec55d8abb15762aec55d8a
bb15762aec55d8abb15762aec55d8abb157fffd3f7f62aec55d8abb15762aec55d8abb15762ac37c8
7aeeafad5f79cedb5699265d1bcc13e9da7fa7188f85a2da5ace88d4fb4c0ccdf11eb8ab2bbcbdb3d
3ad65bdbf9e3b5b38179cd713308e3451dd9988031563875fd6b5f555f28da08acdc8aebba9c6e96
fe9d454dbdbd52598904f063e945fb5cdfa15519a5794ec34fbb3ab5e4b2eadaf3001b53be2249107
1a15810009021ee90aa06fdbe477c553ec55d8abb15762aec55d8abb15762ac67460479cbcd1e06
3d348ff91728fe18ab26c55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb15762a
ec55d8abb15762aec55d8abffd4f6f379cf41124d1a1bb9bd0924824782c2f668fd4858a380f1c2cad
c58104a9c55a1e74d10d7e0d436ff00b55ea1ff0064f8ab879d743209e1a80a763a5ea20ffd43e2ad
9f39e863aadfff00dc3350ff00b27c55c7ce9a186e3c6ffc6bfa3350a6feff0057a62adbf9cb4441522f8f
7a2e9b7ec7f080e2ad8f38e884134bddbb1d36fc1f1e860c5568f39e864d38df8a78e99a80ef4ef6f8
ab5fe34d0c81f0dfefff006abd43fec9f154934dbeb0b7bdd5ad7f2ff4479351bfbafae6b77b7827b2b3
4bc9a25f8e533afa8ee5163f8218cfc3c39326d8aa6f65e51592e21d4bccf7675dd5a097d7b66953d
2b3b6705b89b7b60ccaaca1a8247324bff1662ac9715762aec55d8abb15762aec55d8abb15762ac
6346523ce9e6827bc5a6d3e5e9cd8ab27c55d8abb15762aec55d8abb15762aec55d8abb15762ae
c55d8abb15762aec55d8abb15762aec55d8abfffd5f6ff0093bfe38f2ffdb4353ffa8f9f154ff1560df9b6
da8d8f90fcc3e61d2f55bad32f742d2752d42d4da32207b882d5de23273560ca8cb5e1f65bf6b1561
d1799bccbe4dd6a59def25d7f44bab1f2dcb7306a574126b59b59bd9ac09b70901e419ca3bf361f0
ad17b62aada37e746b7a9cd0473797ecedc2e9da76bba8f2d4e38d60d3356f55229164b88e10cd1
bc0fea8038f129c18bfc18ab19d73f3e355d7bcafe77d2b43b58b48f33e83a35deabf5efad1e02dd34
eb4bc496d8b4356706f100e681289ccd04aa31541e8fe76fcc6d3e7d53cc91dddcea1e5cd1fce1a9
e93abbea13dbfd51b4c6945959c112aab4c8f1dc4f13bcd40ab0c72f3f53e118ab2cbafcf8b9b1d4bc
d9a45d6823ebbe43863bbf30fa73b71bab699e8874dac43d670a6ae8dc38cb482bc9b962acd3f29
755d435af22d96a1a9dccb7778d75a9c467b8a7aa63b7d4ae618c3500dd51157a76c5539d17fe3b
9e64ff0098bb7ffa8283154f715762aec55d8abb15762aec55d8abb15762ac23f35f50bfd2bca2b7da
6decb6376baae8b109a1608cd1dc6ab6b0cb19a83557476561e07154c747a7f8cfccd4143e969a0
9f1fddcd8ab26c55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8a
bb15762aec55d8abffd6f5fe87e74f2fe896d77a66a925cc17d06a1a8fa917d46f5e824bd99d086485
95815218152453154c7fe566793a84fd6ae683fed5d7ff00f64f8aa1750f3d7e5eeb3653e99aafa97d
a75ca94b9b4b9d2ef658644ea55d1edca91b7438aa5b2eb5f93f2c6b14da741247e8c36c15b46ba
71e85b373863ded8fc31b7c48bd11b75a62abd7cc3f9410359482cada26d391adf4e73a44e9f578e
73bc70936c382b9fd95fb471542bdefe47c56fca5d1f4e8ad63a3317d1248e3511c7e902dcad40004
6386ff00b1f0f4c5530b2f327e55d85add5869f6915b58ea4cd2dedb43a45cc70dc34a28cd2aadb05
62c3a96eb8aac8fcc1f95302d8ac563122e9df169fc748bafdc1279131d2dbe1a9dcd3f6b7eb8aa2f4
ef3afe5d6856bfa3f4856b0b3577716d69a5de47187918b3b058edc0ab31258f738aa2bc9bafe91af
6ade669b4ab9f5825ddb892374921957fd0e10098e554700d0d1b8f16a353a1c5505f9b97f79a5f95
ec2fac2fa6b0b84d7bcbf1192de4f4bd48aeb57b5b796273dd1e391832f7c559e62aec55d8abb157
62aec558ec5ae6b97b35e0d3b48865b6b5b992d04b35e7a4ce6120337110bd057a7c58aab1bff00
34d36d16d49ff98f3ff64d8aa94fac7992d903dc6936512b10a1a4d4b8024f6a9b6ebb62a877bed67
5780c6fa169b7f6e8e0b236a0b320910823636c4547518aa0ed17cdd61aceafad4fa5592dadf476a
029d4587a62d5640c589b6a50f2c55355d4fcd6e03268968c8c2aae351241045411fe8d8aaffd21e
6ca7fc712d6be1fa40ffd9362ad0d43cd94df43b51edfa40ffd9362ad8d43cd64efa25a81e3fa40ff00d
9362aaba4eaf7b7b7f7ba6ea36496775671c137eea7fac23a5c9902efc23208311a8a62a9c62aec5
5d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb15762aff00ffd7f7f62aec55d8abb1
5637e782c346b6e269fee5748afcbf495bd715407e6e595c6a7f95de71d36ced64bebdbdd1efadad
6ce08da69659a68192344440492588a62acb2ce412d9dbca0300f1a351d4a38aa83f12b0041f104
62aaf8abb1548f5df2b69faecb6f7c5e5b1d6ecabf50d5ecd84773086eab520abc6dfb5148af1b7f2f2
a1c55253ae4fa615d2bf31ed6dcdb7a8a2d3cc091d74c9db6e1eb2485cdacb53d1d9a23fb13726f4
c2acdb15762aec55d8abb15762ac7bca4c5a2d62bfb3ab5f01f2f53156438ab14fcc7d334fd47c9da
cc97b622fa6b4b1bd92c63f44dcc8b70f6b244a638d5598b90e54711cbe2c55e37a2dd6bfe5dd12d
3f40c1a9e976f6de4ed0eeeead74ed207ad36aaacd673897d6b6762f147c1a4400ca8abea70929c
19544db79a7cebaed9f98743f3747abdb0b58afe0d3638b469a5b4d56c11aea1733bb5b02afc563e
3fdd33af0748dfd42b8aa0fcbbe6cfcc2165a0e8778fabe81702cd60b8920d1a7d46ce1bfb75b6fa9d

259

bc5fb842d05c40d233bcaea566578e492dda3098abd67f2a6fbcc5abf9563d67cd1777736af772ceb
35a5e5aa597d58433c888a912c51b7c481092c5f97da538ab39c55d8aa41615ff00186b9b7c3f52d
3687df9ddd7154ff15762aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb157f
fd0f7f62aec55d8abb15633e7aff8e35aff00db5b48ff00ba95be2ac9b15762aec55d8abb1552b8b7b
7bcb796d2ee249ed67468a682550f1bc6e28cacad504106841c5589b68badf949966f29d750d056
beaf96a790078c1a6f633c87e0a6ff00b895bd2ed1bc006eaa79a1798b4af315bc9369d29f56ddfd2
bdb3994c5736d30eb1cd13519187becdf690b2ef8aa6b8abb15762aec5587d84be65d167d46d934
07bdb79efae6ea1ba8aead903473bf35f8646560456841c551edadf9887d8f2c5c1f1addd98dff00e4
69c55cbae798cfdaf2c5c0d874bbb33bff00c8dc55dfa6fcc5ff0052c5c75ff96ab3e9ff00237155ff00a6
b5edff00e75ab9ff00a49b3ffaad8aad6d6fcc01805f2cdc95dea4dd598ff99a71568eb7e61e208f2c5c
16dea3eb56741e1bfab8ab86b9e63aefe57b803c7eb7667b7fc65c55dfa73cc751ff003abdc53bff00
a5d9ff00d55c55bd123d525d6354d5350b06d3e3b986d218629258a57630198b13e933003f7800df
156418abb15762aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abffd1f7f62aec
55d8abb15635e79ff8e2db7fdb5348ff00ba95be2ac9715762aec55d8abb15762aec5522d7bcab65
ad4897f04b2e99e60813859eb36642dcc62b50ac1815963af58a5578fdb97c58aa02dfcd17da3dcc
5a679d618ed2495b85a6b76c1bf465c3160aaac5c936f2b5768e462adfeeb95fec8559662aec55d8
abb15762aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb
15762aec55d8abb15762aec55fffd2f7f62aec55d8ab1cf3179df41f2bdfe9ba6eab24ab77aaca21b5
58e2690558350923b5578ed53f12edc6ac1553f3e10345b4af7d5b4703e6752b7c5593e2aec55d8
abb15762aec55d8abb15539e082ea192dae6249ade55292c322874746142aca6a0823b1c558a0d
1f5af29032796436a7a1f3e52797e7907ad0ab355bea53c8c00515a88253e9fecc7242bf0e2a9e68
be60d2f5f864974e9899206f4eeed65568ae6de5fe49a2701d1bfd61bf55a8c5533c55d8abb15762a
ec55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb15762aec5
5d8abb15762aff00ffd3f64ebbacf9da5f34c9e5ef29c7a52c76ba7c17f7336abf592ccd7534f12aa082
800510126bfcd8aa953f397f9bcb1ff03a87f5c550f7d7bf9b3a659dc6a3a85cf956d6c2d2369ee6e65
fafa471c5182ccccc5a80002a4e2ac357cf77be61d62c2c06bfe41d435b6b868b4eb6f56ee4b83728
8c19117954b2ab9e4bfb35f962aca35bd23f38f59b486d5dfcb0ab15dd9de54aea1d6cee63b803af7
f4e98aa654fce5fe6f2c7fc0ea1fd71541699abfe686b514f36937de53bd8adae25b3b8780df388ee6
d98a4b1310db3230e2cbd8e2a8da7e72ff37963fe0750feb8aba9f9cbfcde58ff0081d43fae2aada56
a7e7eb5f30d8e99e6a4d1dec3508ae0c52699f5a59925b708c2a26aa95209f7c559a62aec55d8ab
b15688a823a7be2af30fcbfd324f36f91f42f33dd6a13c7e6e10dc44be6084a7d65e35b994049871e
12c7b03e9baf1fda4e0df162ad687affe6e6bd26af1dac7e5c89348d467d299e5faf13335b043eaf15
344e41c1e156e3d39b75c5537a7e72ff37963fe0750feb8aa165d47f3521ba5b096f7ca497ee9eaa5
abbdeaca6306858216e446dd71555827fcdfbab78eead26f2acf6f32ac90cd19bf78dd1c5432b2920
82370462abffe434ffdfaff00f730c5503fa7bf32687fdc97938710cce7eb176400927a2c7aed490843f
e5fc3f6b15479ff0095cd4d879609f1aea03f81c550b26aff0099d6f74961737be518efde9c6d9a6bc4
95b97d9e284f2de87154633fe6fa233b8f2caaad4925efc00077278e2a9658f993f30f559d6db4bd4f
c9b7975245f5a8e0b7bbbb99cdb07f4cca025494e40af2a71e5f0e2a9913f9cdfb29e58f996d43c3fd
5f1c5532f29eafe64bcbbd5f4bf3445629a869b240124d31a6685e3b88b98a898060c0d7db156518
abb1548b57f3768fa1df7d4b5333c4ab07d6a6bc582592d6188b328334a8ac23af06dde8bb75c553
6b3bdb3d42da3bdd3ee22bab39943c37103acb13a9e855949047cb154b7cd5af1f2d6873eae96c6
f248e4b7862b60e22e725d5c476e95721a8034809343b62aa62f7cdddf46b1fa35193fec93156febb
e6daeda35953c7f48c95ff00a84c55c6f7cdddb47b1fa75093fec93156bebbe6effab3d8fb7fb9193fec
931577d77cdfff00567b1ffb88c9ff006478ab6d7be6dfd9d1ec4fcf50907fd8a62ab7ebbe70ff00ab35
87fdc464ff00b23c55df5df387fd59ac3fee2327fd91e2aa771a9f9b6dade5b87d1ac8ac28d2301a8c9
5210576ff0044f6c5532d0b554d7743d335b8e330c7a95a417890b105916e23590292362472a62a
9862afffd4f695affe4ccd57fed85a6ffd465fe2acb315592c514d1b45322c9136cc8e03291ee0e2af06
4f24f986f2df5017ba35ec3ebfe6149adc32c12a4174ba4cb1aa99e3923943a03c78b056597fc9c55
27b3d0ff395ac45dddc9e648e786e6c60ba805e412cada61b69a1b868237b808f28956de4767712
71f51a33c99832a8e9ac7f3aec7548a2b0b6d6aef4f8296d7d3de5f59c935ed9c7169bca58cc72c71
c33ba4778155631c2e1d98cfc644e2abd17f29342d5341d27cc116a9653d8fd7bcc5ab6a3651dd48
b34cd6779706485d996490eea7a33731df157a0e2aec558eeadff00295f973fd4bfff0093498ab22c5
5d8abb15762ad32aba95615561420f420e2aa1656365a75bada69f6d15a5a257841022c51ad4d4d
150002a71561ff0096e54c9e7223fea66bf077aee12118ab38c55e1be65b1d560fcd33ac68d617f79
15d5e5a5beb9a4dee9cd35a086dad79c7abe9b7fe9b2c5240291bdb9622760c9e9091b93aac55ff
0030bce91dae8b62fa86a5a7dec1a269ed7d1db6913b71d525d32712584c91da491c37325c9b79
6357f4b8c748d538c8bcd56b50f387e72d8dbdcdbdadbf98aeef21b3b6bdb297f45178deedf4db3b8
9a290a5b826937aeab1fc29cfd48ddb9ac519552ab8ff0010e9daa5febba0e81abc5742cbcd22c186
8b72c59aff00cd36d796f198e5b665fdec0af22ab2fd9f8be16c55907983cf7f991a2b4fa82cfab9b3bb
bbd5e28e09b4b90f2860d7eca2b082d825babacb716325c8898fa8ed4f578398f1561fe655f3079ba
e1eead24d5357beb8f29ea1a45d5e9f2edd4f24d7efa8178b4d776b7b7faacc23f81a7655f4ff00bed
be138ab28f36ea9f9a2da66bde5ebbd3b5f583eafabc1e8d85a497908827d2ed9ec218ae63899a62
b71eb47cd7937559baae2a8eb63e62f2fea7afcfa35aeb9168da86bf71610000026060f002220574d
464301000000000001000000000000000d00000000200000703c0100709c010011beab0e952dd5
f410cfa4d9fd56682068519a16b98e4598aa95e689eaf152cd8abd37f2b6e3ccba8596ab7de68bdd

4a6bf8f50bbb28edb51b48ec1160b799bd29228d224a87423e30f22114e2c695c554d358d7f4ff003
bf9a22d33cb93ead030d3c9b88aead2050df573f0f19e446fa698aa6bfe26f3852bfe08bbaf87d7f4ff0
0faaf8ab8799bce1ff5245dff00d27e9fff0055b1559e5fd4355d43cdda8beaba3cba3c89a6da08e39a
782e0c83d7b9a91e83b814f7c5511ab7973cb1a78975afacff0086a452ad3ea3673ad8c648a81eb2
9fdcc9d7fdda8d8abcefcd3e63f34dd68074e8a06d7f424bed3a2b8f339b76d299644d4ad8a958a4f
86e41fb3ea5b858f974c55edb8abe7bfcef9caf9e562b4d42d2cef47943569a13797371004bb8eead
45b4912dbb03f585acbe81a723f185ef8aa55aafe717e6469fe429fcc1a3d94ebae58402dcf95b59b
3e7abadb47a50be5d4ae3d161c9998719515447f1344b49d298aa63ab7e73799c5d6bb2697ab69
a34dd1a3d6352b62f6acef796da6cba71b78518cc8293add4b189555b9150e9d0e2a905c7e68f98
9bce5a3f9985e0b6fd37a6cda5ea49242441e5b67d45154ddd6a1994aac7ce545a193d4fee7155d
e78f37ebbe67d2ecdbcc37b0d9dde917b796977a759c3716f1dc46de5dbd917518659bd3984124c
eab1557d3e4a946f53e2c550df967e68f30f96e5d06717dfee02e3cbde557d56689a7b9d36de5b89
cc17af78d70d486fa432a9250fd98bf7cbf66aaa1753f317993cd9769a8eafe628e0ba820f2ec11c22
d115145f7996ef4fbc22391aabea5a223cebfb5132f2a47c4e2acaa6fcc8f36fe898b4ed2afb4bd26d6
e3504f2e7e8a9ace77bcd2bd39e7b421d1de352ad12452c65dbe2dca728594aaaf6bfcbfdbc87e56
1ff006a8d3faf5ff79a3c5591e2afffd5f5f6a6de644fcc7bd6f2cc76334c744b01769a8c9342aa82eef7
818da149791279720cabc7e1a16a9e2aa61eb7e6a6d5b1f2ff00bffa65effd92e2ae13fe6a5472b0f2f
d2bbd2f6f7a7fd2262ab927fccff8bd4b1d007f2f1bcbc3f7d6d462ab8cff009994dac342e5dffd36f294f
f00a44c55b13fe6577b1d0cedff002d97637ffa45c55699ff0033a838d86824d77adede014ffa4538ab
4d3fe6854f0b0d078f606f6f2bff005098aad33fe69edc74ff002ffbd6f6f7fec93154141279c24f386843
ccf6da65bc222befab9d36e2e2e1d9f84750e268610a29e05b1567b8abb15762aec55d8abb15793f
9424f3ac7a8f9c57cb96fa5dce9a7cc77a59f509ee2da71298e1e6a16286652a3f65b90aff002ae2ac
9cdc7e6b54d34ef2f52bb7fa7def4ffa43c55b173f9a74df4df2fd7bff00b90bdffb22c558b7d62ebfc6b
2d34df251fcc1f457d4ff004f946a5e96dc397fa1193ecf1a577e3d3e1c5596adc7e6650f3d3b4207b0
17d787bfbd9e2ae13fe6677d3f42ad4ffc7f5e74edff001e98aa47e6f9fcc7fa127ff1958794ff00c3b54f
5ff4adedc7d5f9f21c2bea5af1e5ca9c7f6b97d9df1545e8d3f9e46996ff00a06c3cb0748e03ea7f53bd
ba1070a6dc785a11f762a8b33fe6bd76d3fcbc57c3ebb7c0ff00d421c55c2e3f35f97c5a7797b8f6a5f
5f57fea0f156cdc7e6ad76d3bcbc0789bfbd3f87d4f1559e4c6d65fcc1e686d7a3b58b523259728ac5
e4960118b7f84879523624ef51c053df156698abb15613adc5acbf9be46d12e9e175d320fadc515b
c534cf1fd665e3e8bcf3c71237daafa88e29d31540796ff00c13f58b7fd2df5aff1555fd3ff0015ff00c74
6bea6fe8fabfb9a5694faafc1d3154cbf354dc2f926e9ad143dd0bcd2cc28cc5159c6a56dc4160ac54
13dc2b53f94e2a9cfd6bcddff0056ad3bfee253ff00d9062ab1ae7cd1cc72d2f4cad4509d466af7a7fc
78f5c55b375e6ae629a569865a6f5d4a70d4ff00a41e95c55a7baf34556ba56984ed4e5a94c3eeff0
040c55a375e6fde9a4e974fdbff007273f87fdb3fc3156daebcdfc76d274c2dfb40ea73814f9fd40e2a
e175e6ee278693a677affb939e95aeff00f1e18ab42ebcd1cff79a56960efbfe92989ad078d80ed8aa
86ab71e653a55f7aba6e9e0fa12d297f31fd83e3643155ff0097ff00f281f95a86a3f44586e76ff8f68fe
78ab22c55ffd900000840010824000000180000000210c0db010000000300000000000000000000
00000000001b40000040000000340000000100000002000000000000bf000000bf0000af4300007
543030000000000008000000080fe7fe9430000008000000080ff7fa343210000000800000062000
0000c00000001000000150000000c00000004000000150000000c0000000400000051000000405
501000000000000000000d201000046010000000000000000000000000000000000005e010000f
5000000500000001004000060040000e0500100000000002000cc00d3010000470100002800000
05e010000f50000000100080000000000000000000000000000000000fa0000000000000000000
000ffffff00d0d0d0005d5d5d0058585800595959005f5f5f006a6a6a00666666005c5c5c005656560
0575757005353530062626200646464005a5a5a00676767005e5e5e00555555005b5b5b004e4e
4e00515151004a4a4a0046464600686868004f4f4f0050505000606060006161610063636300656
5650077777700fbfbfb00bbbbbb0092929200d6d6d600dedede00dbdbdb00dcdcdc00dfdfdf00d8d8
d800dadada00d7d7d700dddddd00d9d9d900d4d4d400d3d3d300e1e1e100d2d2d200cdcdcd00e6
e6e600fdfdfd00b1b1b100aaaaaa00fcfcfc00fefefe00fafafa007a7a7a00e9e9e900b4b4b400adadad
00f9f9f9007b7b7b00f1f1f100b6b6b600ababab00efefef00e0e0e000e5e5e500f3f3f300a6a6a600c8
c8c8004d4d4d002c2c2c00b2b2b200f4f4f40079797900ececec00b3b3b300a8a8a8008f8f8f00141
41400bfbfbf00cccccc001f1f1f0028282800e3e3e300f6f6f600eeeeee00ededed0078787800ebebeb
005252520032323200878787008585850083838300e7e7e70070707000808080009e9e9e00a2a
2a200a7a7a700bdbdbd0025252500a4a4a40037373700b8b8b8008484840049494900eaeaea00
88888800b7b7b7001d1d1d00acacac006b6b6b00868686008282820029292900aeaeae00474747
0072727200a3a3a300f7f7f700a9a9a900060606007c7c7c007f7f7f00afafaf009c9c9c008c8c8c00b
ababa00f8f8f800b5b5b500c1c1c100353535003e3e3e004c4c4c00717171002f2f2f008a8a8a00cfc
fcf00e2e2e200b9b9b900d1d1d1007d7d7d007e7e7e00818181006d6d6d0075757500f2f2f200cec
ece00cbcbcb00c9c9c90039393900cacaca0076767600c3c3c300f0f0f000a5a5a500a0a0a000c5c
5c50074747400c4c4c400939393008989890073737300b0b0b000f5f5f5008e8e8e009a9a9a0090
909000c0c0c000bcbcbc008b8b8b00c2c2c200bebebe00e8e8e8006f6f6f008d8d8d00c7c7c7006c
6c6c00d5d5d500949494003b3b3b006e6e6e00989898004b4b4b006969690038383800c6c6c600
040404009b9b9b009999990024242400363636002a2a2a00414141002b2b2b004444440097979

261

7001111110042424200191919001b1b1b00a1a1a1009f9f9f00272727003c3c3c00343434005454
54001c1c1c0048484800919191009d9d9d004343430096969600e4e4e4000b0b0b003131310021
212100959595003d3d3d00333333002e2e2e003a3a3a001010100045454500181818004040400
0202020002222220007070700262626003f3f3f002d2d2d003030300016161600131313000c0c0c
00171717001e1e1e00151515000909090001010100232323000e0e0e001a1a1a000d0d0d000f0f
0f00013801a795917e754c3e7e7e39393e911f959c4c5a9c4c7f4c95953e5fae8c5e7f63755f607f91
925fa56f5f5f6f6f6c5f6c5f7475391f396c937e393e3e3e394c393e4c9c95959c1f071da6799701370
10101010101010101010101010101010101010101010101010101010101010101010101010101
0101010101010101013753739c794cb27f9c62b98a7962b28a94b28a798a8a8a8a91627fa21f95a
6731f95397e636c9393934c926c7f92937f6f6c607e3e3e913e93915a7e913939a23e4c9c7962626
26279b294b5b98aa29c95a662b9b96279a2791f950201200120010101010101010101010101010
101010138012824387b010120013301012001012033013601940eddddddddddddddddced8c8baa
ab7c181c864c1bab7d5c822c8c0aac8ddd5aba4a9a9d5b3aeaeae50d5a4c8c1b7825e745022ddd
5d5a4b3b3a9a9ab2250c08164aaaa8165663535919101010136362020010101010101000037017
bbc7c52afb486afa39daf869da1a19da3b4bea3b43199a386a3989798be3197022e303198539b31
97533130308db4b4988d979999312e8d9bb44799999947999b47a1a3a3a1864731b4d59d38370
10101010101010101010101010101010101010101010101010101010101010101010101010101
010101010101010101015006b4b4a1998d9747a1479bb4be9998318d028d8d8d8d02a12397b62
3b68d909790902d2a2d2d309b8db6028d3002308d97b4bebe47beb4a3864731318d989d865252
ac9dbe99b4a1af86a3b49b985353989899b4a1a39b9b5e4a370120010101010101010101010101
010101010120010169b9914f3a012001330101200133013701017ba6b401010101010101010120
3337013d370120010101332001330101010101010101010101013333330120360101013337013
70101010101363601010101380101013733330101013702793637013701010101010101010100
000101385a2f013320330101013737010101373701373633010101370101010137010101010133
33372033373633010101010101010133370101373636333733360101010101370101010101014
09b20010101010101010101010101010101010101010101010101010101010101010101010101
0101010101010101010101010136c1932001373337010133010137370133370101010101010101
37383301333301010137370136330120370101370101330137010101370137010133333301370
10101013737010101010137010101010101010101013733010177833301370101010101010101
0101010101010101010101207c8d59408179a04b01013301203601013736361f52373737373737
37373337013301370137370101010101010133373636010101013701373733333337010101013
733370101370101370101013337330136010137013733010101368da237010137013737010101
0101010000330101b22c3301010101010101370101010101010137370101010101010101010101
37333301010101010101010101373733333737370101373701010101010137370101010101010
13333014e9d380101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010150630101360136010101010101010137373701010
10137370133432a0136013736013701010101373333373333373736010101840145b661360101
01010133373701010101373301010101013737370137333333010101010180400101370101010
101010101010101010101010101013337a097013601a1755f3529010101013638010137a69b010
10101010101013701012001333701013301333337360101010137013733010101360101010136
3337370101013736013d37013301013701012001373701010101370101373602a233010101010
10101010101010100000137017924013701010101010101373701010101010101010137333301
01013737010137010101330101010101010101010101010101013337010101010101013737373
7373737373701010134be01360101010101010101010101010101010101010101010101010101
0101010101010101010101010101010101010101010136aa60330101013701010101010101010
10137010101010101849cbb11642b3301370101370136370101013301010101013601010131d21
b91b0420101363701010101010101373701010101373701010101010101013737373334400133
0133010101010101010101010101010101013601016643010137013896213ea4a761330101200
1015a23010101010101010101373d4b383f45010101013f3f3737013801013857454b3836374b36
0136017b010133363301333d334b20013701013637379638453f208437373333383d7b981f0101
01370101010101010101010000013701792b01010101010101010101010101333701013736012
00137330137010101010136360133013737013833013338013737010101370101010101010101
010101010101010137010137859d0137010101010101010101010101010101010101010101010
10101010101010101012001010101013701013301330101363701509337010136010101010101
010101010137a86e7b013d4b61124745af5e6e843d3d9e363d373d3f843fa84b4b597b9e457b452
0461f426174644b3d5ba801010133333333a8849ea84b3f0133963333454d37333701330101a77
001363601010101010101010101010101010101010137017c2738013701332001018ea05a7cbe3
7013301959001010101010101010120428a896f7f7f2937656ca0213f8ab9c05fba6d97500b31a29
c8cab29180e4f57727ed674351d1350d8b74d36079381d8690f693c057745c80a225339b5521f01
0133333733010101010101010000013701792b010101010101010101010137010101010101012
b233042362b2a322e2e289796012ea3a8012526b1b63324292b3f3337013633010101010101010
1010101010101010137010137859d013701010101010101010101010101010101010101010101
010101010101010101013301013301010101013301013633010101dd740101013601010101010
10101013836bc1d79bc59858b8530d16ac43e0a1b4dca5a62c5c1d7bcd1baa6dbd806d446ea4f86
cf70bbdb497869d4bd0bd4ab3842191150399176aa50c380201fe0739bd1b5420133370120013b8

301010101370101010101013737373737373701010101337c5b3737330101013301018433255a0
46720847eb0010101010101010137360121df5b3f626852e13f590e66da437903256d019716081d
a8aa89b5d44d8594d12c599ab41f76843f9abc9d793a3e1c01cf2345ebd94ef9982c4063a624a201
0101010137010101010101010000013701792b010101010101010101010101013701373633012
b12e56e01b5948e061018b559c85d9cba7cc4aac56f225c3b6a9184013820010101010101010101
010101010101010137010137859d0137010101010101010101010101010101010101010101010
10101010101010101010101333301010101332037013701013701d87401010137010101010101
010101012a0461017f1056d05b564cc156337fb936158cde8550c558872780e084d50b33e5af584
932753e40360179bb59255d6534d43189792de33331e17b696aa36b7c0f85200133013601376f0a
7f92757f6393606c6c60936360606060606c6c6c9375ae1c2501013733370136010101012001288
04c7411860101010101010101010137acde010181f3194c33018a0bc6207779446d2032e3d44e3
d770a76353801cd093d37c7245ade0133a2884060017aa601d124a8c342b78a7b2057b33e26a63
70101010137010101010101010000013701792b01010101010101010101010133360101010101
33790620206cd83674aadd8137d08f373faaea3fbca0c3230148d50137370101010101010101010
1010101010101010137010137859d013701010101010101010101010101010101010101010101
010101010101010101010101010101013737010120333336013337ba743701010101010101010
101010136582f0136140b57e38429088593588c5a011baa676422093719b6406a3722b501d48d5
849963e6faa3b3860030101e3959f1d017fdd5b14362ad70162a98401a8b5860133010133840165
74acbe47ac9da3a1bebea1a39dafaf9d9d9d9d9d9dbea1a36044013301363701373733010101364
27707ae059801010101010101013701378feb40221a3ba4600138171fe93869942f17362a09187a
0180130dc1470463b90101179793cfac749a47477f01a0b536874333bd963cbc2460aaa9a22f9c01
0137333733010101010101010000013701792b010101010101010101010101370101013736360
173113701abd5015fc1a99f01888170ad38474ab8cd16a83714d838360133380101010101010101
010101010101010137010137859d0137010101010101010101010101010101010101010101010
10101010101010101010101010101010101360101010137330101648c010101010101010101010
1010101012052e15d437bde01226038b8022295381dd6698d820c01782b83eb01dd5a3617974bd
f02f843856237a5eb920c1c43661201756f3a030130480174a52782c00883203701360101014a6b
01010101373737010137373701010101010101013301014f3238370101373336010101383460dd
8526015aac0101010101010101010138afe07065ea30424c6993a64fe9389c9c52558c1950327f6
9091229b3c86d3066ce81f14391c2be50df27c894330d1899dcc84edc8130a57cea801e15d29c01
0137370133010101010101010000013701792b010101010101010101010101010137333301010
17906010174a63a8a661b0e300fa26cf0861157d2406ca101e5ab01013637010101010101010101
010101010101010137010137859d0137010101010101010101010101010101010101010101010
101010101010101010101010137330101010137363d0101370101d67437010101010101010101
0101010136adc9c524019d883697a9acd041bc0a4abb981c8150823dd7274e8796795aa8d060b7
12965a3b180d2f7fe53ba61c57ae1d9613a4afdfacc8db9828a0671b220aa63e02013d010133723b
01373301010101010101010137370101010101013701017c320101200137373637b677ab5aac01
0137019caf0101010101010101013301acd00120bc5c37967a46012e8638a328452a2dc1570197c
e951d01b6b3320101cd9fea2b7fbd0136ebd5b0299666024755c169687a7b3d4653012623827933
0101010137010101010101010000013701792b010101010101010101010133010137010101382
04c133301ae5c941b2d7fd50d4186d5c83a5a416c5b42c841c6d8010101013d0101010101010101
010101010101010137010137859d0137010101010101010101010101010101010101010101010
101010101010101010101010133330137a8018401013601363633c193200133010101010101010
10101010116923837be363a570156ac324d27242d2a017b31a13301892983ec456e848432d9b45
9013d9b306e3d39b93d208b4627326e8d4dad19314e6a2e373f0244015b5997963601203701a74
a0101010137373333333337373737370101010101373736cd4336010137019e83b7924e4237010
10137364c9d0101010101010101010184dddc9d401434330120013637013701330136200133363
701a91a0101010137a8015987991955b035494701360136370194a3ac3e2eb0450136370133288
a330101010137010101010101010000013701792b010101010101010101010137013701013d2f9
b014c1c01990d6436010137332001384537010142012037204b15b73d012001010101010101010
101010101010101010137010137859d0137010101010101010101010101010101010101010101
01010101010101010101010101013701013d3aa56444013801010101817533013737010101010
1010101013301dda45363c845343820013736013601200101380137012aec2bb7e633314701200
1200101013701013f09e39d695c27013733370157922d64b943414b33013301010101010101010
1a785010101010101010101010101373701010101010101013746b1370137994674aa44360137
3337333601011f30010101010101010133014b7c77ce6432010133010137013801330101373301
3701013d80cd01330101010133286052d6a4c14020333701013301015b82a98ed5923738013301
019095010137370137010101010101010000010136a2272001200101010101010101360101010
10156145feaea5aece9cd36010101330137010101010101010101016149d501330137010101010
10101010101010101010101013301013770860101010101010101010101010101010101010101
0101010101010101010101010101010101010101373394a5a8370101013601649101360137370
1010101010101010101966622866e6e744201360136013701010101010101012c6f6170d6209f21
373701010101010101332c6566659d960133010101017b277922291d6238013601370101010137

263

010136774e01373301010101010101010101010101010101010133376642388d79b2675733330
13301360101013d01953137373701010101010101010101010101010101010101010133370101
37333701010101010101010101010101010137370101010101010101010101010101010101010
137360101307936370133013d010101010101010000200137738e203601373737373737373701
01372001330130302802b62ab4d9013637373301370101373737373737373720a1b1010101010
137373737373737373737373737373737013601014e9d37370101010101010101010101010101
0101010101010101010101010101010101010101373701010101936c01013d01373701645e0136
37370137373737373737373336013820010120380133200133373301010101010101010101010
14b01013801010101013737373601013d012020010137010133010138373d0120363601013737
37370101010136013b8f0136383701010101010101010101010101010101333301ce6c7e4f99840
1013601013733013601370101628d010101010101010137010101010101010101010101010101
01010101010101010101010101010101333737010101010101010101010101010101010101010
101013701010101370279010136360101010101010101010000010101a6560101010101010101
01010133330120013601018401373601012033370101013701200101010101010101013d01013
8017b013301010101010101010101010101010101013801014e98370101010101010101010101
010101010101010101010101010101010101010101011610000026060f002220574d4643010000
00000001000000000000000d00000000200000701c0100709c010001373333010101016c6f0136
0101013601c8b37b01013737010101010101010101200137010136010120370101013701010101
01010101013301363601370101010101010101010101362033010101380136010101370101013
73d0101200101010133010133010101013c6b20010133010101010101010101010101010101010
1010199b061010101012020013737013733012001205a9f5858585858585858425858595959585
8424242424242424242585858424242589e9e9e9e9e9e9e9e3f3f3f9e4258585942424242424242
4242424242424242429e4d4d58429e4d47943d010101010120010101010101000001363d9491a
babb35050505050505050a4a9dd822222aba9b75fd5abae8ca4a45050ababae827350505050505
0505050d5aba922bab3b75050505050505050505050505050505050abb7a4a51eb03701010101
01010101010101010101010101010101010101010101010101010101010137373701010137928
23736013d20012a8888b7abd5aed550505050505050505022ddb3b3b38c50aeb322b3a9506c5e5
e5e5e5e5e5e5e5e6f5f8c6fb3a5a5aeaeae8c6f746c756382a582226caea9b38c6c5eb3826f5e6c75
63ae8c5e824c5e5f8c935f6c925f635e601d4e01013301010101010101010101010101010101010
18437012001202033370101010101330101010101013550c08181d664cecea07acdced6d664a0c
d65cdcda0ce6464d6ce64d6d664ce64d681818181818181819f697acdced681c0aaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaad6d664ce81d6ce50a70137013720370101010101010100000101013b7574
6f6c7474747474747474a5756c6c5f7574a56f746f93746f6f756f5f6f5f6c63bd5f747474747474747
45e5fa5755f6f5e74747474747474747474747474747474745f8c5f6f824401010101010101010101
01010101010101010101010101010101010101010101010101010101010133206c8c2001360101
3b1f66aa5e745f6f6c74747474747474746c5f74a55082755f6f8c5f6cae6f606f5e5e5e5e5e5e5e5e
8cabb722d56c22ae6f8c82a9505050a993a5abaab322d5b7c1b7a4d8c8c1c1ddd6c182dddddd82d
822c850b7a4822282d5d8c85601203301010101010101010101010101010101010120370137013
30101010133360101203701360120010138202036333337010101010133333701013737333336
20383833363636333733363737373737373737373733333636202033333333333333333333333
333333333383337013d3801333801383737010101010101010101000020200101570101370101
01010101010101010101013636013701383701360101013301330157a93301010101010101013
7370133010136010101010101010101010101010101010101333d013301333801010101010101
010101010101010101010101010101010101010101010101010101010101013638045e0138012
da5dd963701013737013701010101010101010101382033013301360137010136010101010101
01010101373701380133333637010101013736200101360136010101010101373301010101013
83737010136370137010133013333013801333601330101010101010101010101010101010101
01012033013733010101010133370101013701363601370101010101010101010101010101010
10101010101010101010101010101010137373737373737370101010101010101373737373737
3737373737373737373733013701370137010120010137013736010101010101000001017b013
7370101010101010101010137013738010133370184012020a17b330101370101963e38010101
01010101010133200101332001010101010101010101010101010101010101010120372001010
10101010101010101010101010101010101010101010101010101010101010101010101013320
21ac37334f7e2e3d010136383301010101010101010101013d0101013301373701013637330101
36010101010101010101018436010101333737010101013737010137010101362033010101013
333330138370137337b0137010101010101010137013701330136010101010101010101010101
01010101363701010136370101372033010101013837010101012001010101013737373733333
70101013733010101010101010137370101373737010101010101010101010101010101010101
01010101010101010101010101010133012001370138370101010120330101010101010101000
03601013601200133010101010101010101360101330133010101382a9860a329370136013359
a6a80101010101010101330101363301010101010101010101010101010101010101330101370
10137010101010101010101010101010101010101010101010101010101010101010101013737
370101373301384b4c6ca801013601330101013637010101010101010101013601360133370133
0101013333010101010101010101013d010133013601010137373737010137010137373301010
13333010101370101010101013701370137013737013701013301200101370101010101010101

01010101010101010101013701330101372001013301013701013733330101200137373701010
10101010137373701010101010101010137373701010101370101010101010101010101010101
37373737373737373737373737373737373737373701370137013601330101360101013701010
1010101000001010101010101010101010101010101010101010101010136010130c1b2ae25370
10101015b1fa801010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010137013833013701
013301010120013737014a4c343301380101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
101010101010101000001010101010101010101010101010101010101010101010101570186a0
a65ea13701010101594ca801010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010137010
10136330133010138010101383f75d527012037333301010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010100000101010101010101010101010101010101010101010101013
3010158456f2b4237010137019e7e4b01010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
0101373d33010101013633200136013d7779a1380136013701010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010000010101010101010101010101010101010101010
10101010137010101010137013701013701967f450101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
0101010101010101010137330137012001010158ba7f4b370101372001013d0101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010000010101010101010101010101010101
01010101010101010137017b01363601203701013701456345010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
0101010101010101010101013637013601013633012001701f853337013d010133013601010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101000001010101010101010101
01010101010101010101010101010120010136013301010101370145634501010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
0101010101010101010101010101010101010137010120370136326c2245013301010138380101
01330101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010100000101010101
01010101010101010101010101010101010101013d01330101370101370101373f7f4501010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
1010101010101010101010101010101010101010101010137013638013653037001360184013d
01010133010133010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101

265

01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010000
010101010101010101010101010101010101010101010101370120010138013701370101379e7f
45010101010101010101010101010101010101010101010101010101010101010101010101010
101010101010101010101010101010101010101010101010101013601363733015b225023013d
37010133013733010101370101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010100000101010101010101010101010101010101010101010101010101010101010101370
1013701a860450101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010133200137012001200101ad9c
b0010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010000010101010101010101010101010101010101010101010101010101010
10101013701013701a86045010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101012001360101013601018
4018e95d524010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010100000101010101010101010101010101010101010101010101
0101010101010101013701013701a860450101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010136
330101010138a1394601202001010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101000001010101010101010101010101010101010
101010101010101010101010101013701013701a8604501010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
101017b01013301010132a5924401010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010000010101010101010101010101
01010101010101010101010101010101010101013701013701a86045010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
0101010101010138013301010120678a72330120013d370101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010100000101010101010
1010101010101010101010101010101010101010101010101013701013701a860450101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
1010101010101010101010101017b013d017bd811580120013336370101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010

10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101000001
010101010101010101010101010101010101010101010101010101010101013701013701a8604
50101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010120333701527964200138012001010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101000001010101010101010101010101010101010101010101010101010101010101013701
013701a8604501010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101330159ae7525330137013701013d01
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010000010101010101010101010101010101010101010101010101010101010
101010101370101013f634b0101010101010101010101010101010101010101010101010101010
101010101010101010101010101333601200137370120010101200137017c944e0101333301010
10101010101010101010101010101010101010101010101010101010101013737012001330101
33360101373337363733330101370101010101010101010101370101010137013701013737013
33333333701013733370137010137013301010101010101370101013320012001010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010000010101010101010101010101010
The Signalling-Buffer class
The goal of the signalling buffer is to be able to determine when all its clients can be released
because there is no more data to be had from the buffer. In this instance, the clients are also the
producers (as the workers are performing the searches, which both produce the new paths and
consume the paths). Consequently, when all workers are waiting for new paths to explore, no new
paths can be produced and the workers can be terminated. Termination is achieved by interrupting
the workers (which all belong to the same thread group). The kickOff flag is required because the
first item of work is allocated from outside the workers (by the main program).
public
class
SignallingBuffer<Data>
extends
BoundedBuffer<Data>
{
public
SignallingBuffer(int
size,
int
maxConsumers,
ThreadGroup group) {
//
Assert
size
>
maxConsumers.
super(size);
this.maxConsumers
=
maxConsumers;
consumers
=
0;
this.group
=
group;
kickOff
=
false;
}
public
synchronized
void
put(Data
o)
throws
InterruptedException
{
if(!kickOff)
kickOff
=
true;
super.put(o);
}
public
synchronized
Data
get()
throws
InterruptedException
{
try
{
consumers++;
if
(kickOff
&
consumers
==
maxConsumers
&
getCurrentSize()
==
0
)
{

267

group.interrupt();
//
throw
new

Time
to
terminate.
InterruptedException();
}
else
{
Object
o
=
super.get();
return
o;
}
}
finally
{
consumers--;
}
}
private
int
maxConsumers;
private
int
consumers;
private
ThreadGroup
group;
private
boolean
kickOff;
}
The ThreadPool class
The
public

class
can
now
be
presented
class
ThreadPool
{
public
ThreadPool(int
poolSize)
{
//
Assert
check
poolSize
>
0.
workPool
=
new
SignallingBuffer<Runnable>(
workBufferSize,
poolSize,
workersGroup);
workers
=
new
Worker
[poolSize];
for
(int
i
=
0;
i
<
poolSize;
i++)
{
workers
[i]
=
new
Worker();
workers[i].start();
}

ThreadPool

The constructor creates a new signalling buffer indicating its size, how many workers will be
consuming from the buffer and their group identity. It also creates an array of worker threads and
starts each worker. The allocateWork method takes as a parameter any object which implements
the Runnable interface. It puts this object into the signalling buffer. The worker threads simply call
the signalling buffer to get an item of work. When an item is available, an object implementing the
Runnable interface is returned. The worker thread then calls the associated run method. If the
InterruptedException
is
thrown,
the
worker
threads
terminate.
public
void
allocateWork(Runnable
r)
{
while(true)
{
try
{
workPool.put(r);
break;
}
catch
(InterruptedException
IE)
{
//
No
action
needed.
}
}
}
private
class
Worker
extends
Thread
{
public
Worker()
{
super
(workersGroup,
"worker")
}
public
void
run()
{
while
(true)
{
try
{
Runnable
r
=
workPool.get();
r.run();
}
catch(InterruptedException
E)
{
break;
//
No
other
action
needed.
}
}
}
}
private
Worker
workers[];
private
SignallingBuffer<Runnable>
workPool;
private
final
int
workBufferSize
=
500;
//
say
private
final
static
ThreadGroup
workersGroup
=
new
ThreadGroup
"Workers");

}
The Searcher class
The modified Searcher object is given below. The only real difference is that when the new
Searcher object is created, it is passed to the thread pool as an item of work to be allocated. The
main program now creates the thread pool and passes it to the first searcher it creates. This is then
assigned to a static attribute of the class so that it is available to all searchers. The size of the thread
pool
is
given
by
a
parameter
to
the
main
program.
public
class
Searcher
implements
Runnable
{
public
Searcher
(...,
ThreadPool
tp)
{
...
myThreadPool
=
tp;
}
public
void
run()
{
...
do
{
...
for (int index = 0; index < moves.length; index++) {
...
if(count
==
-1)
count
=
index;
else
{
s
=
new
Searcher(myMaze,
moves[index],
onTrail, terminationControl ;
myThreadPool.allocateWork(s);
}
}
...
}
while(count
!=
-1);
...
}
//
end
run
public
static
void
main(String[]
args){
int
poolSize
=
5;
if
(args.length
>
0)
poolSize
=
Integer.parseInt(args[0]);
...
ThreadPool
tp
=
new
ThreadPool(poolSize);
Searcher
s
=new
Searcher(sm,
t,
tr,tp);
tp.allocateWork(s);
...
}
}
...
private
static
ThreadPool
myThreadPool;
}

6.4 Summary
The solutions to the maze problem have illustrated the main features of Java's concurrency model.
The model is simple but reasonably expressive. The JVM handles much of the resource allocation. In
particular, garbage collection of terminated threads and their associated memory removes many
burdens from the application programmer.

269

Chapter 7: The Real-time Specification for Java


Overview
Introduction and chapter structure
Since its inception in the early 1990s, there is little doubt that Java has been a great success.
However, the language does have weaknesses both in its overall model of concurrency and in its
support for real-time systems. Section 4.7 has summarized some of the main problems in the
concurrency area. This chapter considers real-time systems.
First, the chapter reviews the activities from which the original motivation for the RTSJ developed and
examines the National Institute of Standards and Technology (NIST) requirements for "real-time
Java". Then the main enhancements to the Java platform are introduced. These take the form of an
additional package javax.realtime, which defines various classes and interfaces that provide
extra functionality for the Java programmer and that require modification to the semantics of the Java
virtual machine. The chapter presents an overview of these classes and interfaces in each of the main
enhanced areas.

7.1 Background and NIST Requirements


Java's success has led to several attempts to extend the language so that it is more appropriate for a
wide range of real-time systems. Much of the early work in this area was fragmented and lacked clear
direction. In the late 1990s, under the auspices of the US National Institute of Standards and
Technology (NIST), approximately 50 companies and organizations pooled their resources and
generated several guiding principles and a set of requirements for real-time extensions to the Java
platform (Carnahan and Ruark, 1999). Among the guiding principles was that Real-Time Java (RTJ)
should take into account current real-time practices and facilitate advances in the state of the art of
real-time systems implementation technology. The following facilities were deemed necessary to
support the current state of real-time practice (Carnahan and Ruark, 1999).
Fixed priority and round-robin scheduling.
Mutual exclusion locking (avoiding priority inversion).
Inter-thread communication (e.g. semaphores).
User-defined interrupt handlers and device drivers including the ability to manage
interrupts (e.g. enabling and disabling).
Timeouts and aborts on running threads.
These facilities will be described in detail in the remaining chapters of this book.
The NIST group recognized that profiles (subsets) of RTJ were necessary in order to cope with the
wide variety of possible applications. These included safety critical, no dynamic loading and
distributed real-time profiles.
There was also an agreement that any implementation of RTJ should provide the following.
A framework for finding available profiles.
Bounded preemption latency on any garbage collection.
A well-defined model for real-time Java threads.
Communication and synchronization between real-time and non-real-time threads.
Mechanisms for handling internal and external asynchronous events.
Asynchronous thread termination.
Mutual exclusion without blocking.
The ability to determine whether the running thread is real-time or non-real-time.
A well-defined relationship between real-time and non-real-time threads.
Following on from the NIST requirements, there were two main efforts to define a "real-time" Java (JConsortium, 2000; Bollella et al., 2000). Perhaps the most high-profile attempt is the one backed by
Sun and produced by The Real-Time for Java Expert Group (Bollella et al., 2000). It is this that is the
focus of the remaining chapters of this book.
The RTSJ in its defining document makes only a passing reference to the NIST requirements and
instead defines its own "guiding principles". These include requirements to
be backward compatible with non-real-time Java programs,

support the principle of "Write Once, Run Anywhere" but not at the expense of predictability,
address current real-time system practices and allow future implementations to include
advanced features.
give priority to predictable execution in all design trade-offs,
require no syntactic extensions to the Java language,
allow implementers flexibility.

Warning The requirement for no syntactic enhancements to Java has had a strong impact on the
manner in which the real-time facilities can be provided. In particular, all facilities have to
be provided by a library of classes and interfaces. In places, this has had a marked effect
on the readability of real-time applications.

7.2 Overview of Enhancements


The RTSJ enhances Java in the following areas:
memory management
time values and clocks
schedulable objects and scheduling
real-time threads
asynchronous event handling and timers
asynchronous transfer of control
synchronization and resource sharing
physical and raw memory access.
Important It should be stressed that the RTSJ is only intended to address the execution of real-time
note
Java programs on single-processor systems. It attempts not to preclude execution on
shared-memory multiprocessor systems, but it has no facilities directly to control, for
example, allocation of threads to processors.
The remainder of this chapter will present an overview of the RTSJ and introduce the various classes
and interfaces. Later chapters will consider each of the above enhancements in detail.

7.3 Memory Management


Many real-time systems (particularly those that form part of an embedded system) have only a limited
amount of memory available; this is either because of the cost or because of other constraints
associated with the surrounding system (for example, size, power or weight constraints). It may,
therefore, be necessary to control how this memory is allocated so that it can be used effectively.
Furthermore, where there is more than one type of memory (with different access characteristics)
within the system, it may be necessary to instruct the compiler to place certain data types at certain
locations. By doing this, the program is able to increase performance and predictability as well as
interact more effectively with the outside world.
Heap memory
The run-time implementations of most programming languages provide a large amount of memory
(called the heap) so that the programmer can make dynamic requests for chunks to be allocated (for
example, to contain an array whose bounds are not known at compile time). An allocator (the new
operator in Java) is used for this purpose. It returns a reference to memory within the heap of
adequate size for the program's data structures (classes). The run-time system (JVM) is responsible
for managing the heap. Key problems are deciding how much space is required and deciding when
allocated space can be released and reused. The first of these problems requires application
knowledge (the SizeEstimator class in RTSJ helps here). The second can be handled in several
ways, requiring
the programmer to return the memory explicitly this is error prone but is easy to implement;
the run-time support system (JVM) to monitor the memory and determine when it can
logically no longer be accessed the scope rules of a language allows its implementation to
adopt this approach; when a reference type goes out of scope, all the memory associated
with that reference type can be freed;
the run-time support system (JVM) to monitor the memory and release chunks that are no
longer being used (garbage collection) this is, perhaps, the most general approach as it

271

allows memory to be freed even though its associated reference type is still in scope.
From a real-time perspective, the above approaches have an increasing impact on the ability to
analyze the timing properties of the program. In particular, garbage collection may be performed
either when the heap is full (there is no free space left) or incrementally (either by an asynchronous
activity or on each allocation request). In either case, running the garbage collector may have a
significant impact on the response time of a time-critical thread.
All objects in Java are allocated on the heap, and the language requires garbage collection for an
effective implementation. The garbage collector runs as part of the JVM. Although there has been
much work on real-time garbage collection and progress continues to be made, there is still a
reluctance to rely on these techniques in time-critical systems.
Memory areas
The RTSJ recognizes that it is necessary to allow memory management, which is not affected by the
vagaries of garbage collection. To this end, it introduces the notion of memory areas, some of which
exist outside the traditional Java heap and never suffer garbage collection. It also requires that the
garbage collector can be preempted by real-time threads and that the time between a real-time thread
wishing to preempt and the time it is allowed to preempt is bounded (there should be a bounded
latency for preemption to take place).
The MemoryArea class is an abstract class from which all RTSJ memory areas are derived. When a
particular memory area is entered, all object allocation is performed within that area. Using this
abstract class, the RTSJ defines various kinds of memory including the following:
HeapMemory Heap memory allows objects to be allocated in the standard Java heap.
ImmortalMemory Immortal memory is shared among all threads in an application.
Objects created in immortal memory are never subject to garbage collection delays and
behave as if they are freed by the system only when the program terminates.
ScopedMemory Scoped memory is a memory area where objects with a well-defined
lifetime can be allocated. A scoped memory may be entered explicitly or implicitly by
attaching it to a real-time entity (a real-time thread or an asynchronous event handler) at its
creation time. Associated with each scoped memory is a reference count. This keeps track of
how many real-time entities are currently using the area. When the reference count reaches
0, all objects resident in the scoped memory have their finalization method executed, and the
memory is available for reuse. The ScopedMemory class is an abstract class that has
several subclasses.
VTMemory A subclass of ScopedMemory where allocations may take variable amounts of
time.
LTMemory A subclass of ScopedMemory where allocations occur in linear time (that is,
the time taken to allocate the object is directly proportional to the size of the object).
Memory parameters can be given when real-time threads and asynchronous event handlers are
created. They can also be set or changed while the real-time threads and asynchronous event
handlers are active. Memory parameters specify
the maximum amount of memory a thread/handler can consume in its default memory area,
the maximum amount of memory that can be consumed in immortal memory,
a limit on the rate of allocation from the heap (in bytes per second),
and can be used by the scheduler as part of an admission control policy and/or for the purpose of
ensuring adequate garbage collection.
Figure 7.1 illustrates the various RTSJ classes that support memory management.
010009000003946b01000000e5a0000000001610000026060f002220574d464301000000000001
004dba000000000d00000000200000b8720100b8920100010000006c0000000000000000000000
d20100003301000000000000000000006a400000682a000020454d4600000100b89201000c0000
00010000000000000000000000000000000005000020030000c40100001a010000000000000000
000000000000e3e306006e4e0400460000002c00000020000000454d462b014001001c00000010
0000000210c0db01000000600000006000000046000000544f0000484f0000454d462b224004000
c000000000000001e4009000c00000000000000244001000c00000000000000304002001000000
0040000000000803f214007000c0000000000000008400005a04e0000944e00000210c0db01000
0000000000000000000000000000000000001000000ffd8ffe000104a4649460001020100480048
0000ffed0b2e50686f746f73686f7020332e30003842494d03ed0000000000100048000000010001
00480000000100013842494d040d000000000004000000783842494d03f3000000000008000000

00000000003842494d040a00000000000100003842494d271000000000000a000100000000000
000013842494d03f5000000000048002f66660001006c66660006000000000001002f6666000100
a1999a0006000000000001003200000001005a00000006000000000001003500000001002d000
000060000000000013842494d03f80000000000700000ffffffffffffffffffffffffffffffffffffffffffff03e80000000
0ffffffffffffffffffffffffffffffffffffffffffff03e800000000ffffffffffffffffffffffffffffffffffffffffffff03e800000000ffffffffffffffffff
ffffffffffffffffffffffffff03e800003842494d040800000000001000000001000002400000024000000000
3842494d0414000000000004000000023842494d040c00000000099e0000000100000070000000
4a00000150000061200000098200180001ffd8ffe000104a46494600010201004800480000ffee00
0e41646f626500648000000001ffdb0084000c08080809080c09090c110b0a0b11150f0c0c0f1518
131315131318110c0c0c0c0c0c110c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0
c0c010d0b0b0d0e0d100e0e10140e0e0e14140e0e0e0e14110c0c0c0c0c11110c0c0c0c0c0c110c
0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0cffc0001108004a0070030122000
21101031101ffdd00040007ffc4013f0000010501010101010100000000000000030001020405060
708090a0b0100010501010101010100000000000000010002030405060708090a0b1000010401
030204020507060805030c33010002110304211231054151611322718132061491a1b142232415
52c16233347282d14307259253f0e1f163733516a2b283264493546445c2a3743617d255e265f2b
384c3d375e3f3462794a485b495c4d4e4f4a5b5c5d5e5f55666768696a6b6c6d6e6f637475767778
797a7b7c7d7e7f7110002020102040403040506070706053501000211032131120441516171221
30532819114a1b14223c152d1f0332462e1728292435315637334f1250616a2b283072635c2d244
9354a317644555367465e2f2b384c3d375e3f34694a485b495c4d4e4f4a5b5c5d5e5f55666768696
a6b6c6d6e6f62737475767778797a7b7c7ffda000c03010002110311003f00f41bebc8fb5db674f14
0cbd43fd7d0b86da76fbeb63adf47ff0046ff00db4aa63d1d4d9743474c3904bc8b98c2d735c4cc7a6
3deff006b9ecfe73faeb56dcb3553664dae6d74d65c1c76b9e406bb66ef67fe45563d73043cb0e5d4
1c0389f6ba0066ddfb9d3b5bfce3125356cc6cc19a1e3ec0e7e93eab66ddf2ddaf2f6575fe936fb7f31
5ac7af23ed8d7e70c7765682b7e3b4876cd8edfeb1b77bfd3dff419b927f5ce9f5902ccda184981b83
8498ddf9ce56a8caf58d0e639b6d39159b6bb1a0896fb1cc76a4fd36d8929b2842cb0deeaf6431ad
6bbd433a976ff006b74fccd9fbdf9e8a87e8c5ceb438fbda1ae61e3dbba23fcf494e7d7f58ba4d8416
e6638612002fb361d5acb3e8d8d6fe6d9fe7fe8bf9c443d6fa712d35e4d2e6580963f79da40f4ddf4d
ad733e85f5595fbff004b5fe92bfd1a2dd8f556c7581b5c8fa2d2c6c13f46b671fbc9eaa596d6d780c6
93f4dad6b480f68f49e3739bf99eea925327e6d0da9b902cace3b9c186c2f004977a50d3f47f9cf6aa
02bb2a2c79eaeeb2bac13631fe8cbe0ef1fa4adb5ecfdc77b7e82d2750d21ad10dac192c004120eff
0fde5373039a5a787020fcd25346ceb3875643f1adbe9aefadbbecadef2d2d6c35fb8ee67d1fd27b7f
eb9fe86d4bf6d60c1db9145846d915d9ea1f74ecf6d4d73bf355838a1c41710e70d038b1a4f11e090
c46876e1b4384c3831b3af3d92535875de984376e662bb7fd0db734eee7e86dfa7f45c8b4f51a2eb
4554bebb4eed967a6fdc5bed7d837376ff00c1a90c0a80801822222b676fa3f9bf9aa6dc46b5ec76e
8f4cee01ad6b413b5ccf76d6ff2d253ffd0f4ff00b36840b1c1ae25db61a4493bff003987f390eca28aa
1d65a19b8c02e15893ae83d889f6bc798dc4f6d1ae3f91a817e456fb71cb77115d85cff006bb41e9d
ac9fa3fbef6a4a57ea7a7eb0dd341fcdff00e4149afc51636c3901c58d2d6825a000edbfb81bfb889f6
cc7f177f9aeff00c8a9d77d5692d6192d009041060ff5be09298fdaf17fd2b3fce097daf17fd2b3fce08c
a02dacd86a065e0491074f9fd149483232311f4b81b9ba0dc21f065bef6fd13e49636462b2960f59b
2e1b8cbe4cbbdcefa454df915b83ab6eedf05a06d77207ef46d4e322b686b1fb83e04fb5c753e7b52
52bed78bfe959fe704bed78bfe959fe70527df532d654f76d7d9a3019d4c39db43be8eedac7a224a4
3f6bc5ff4acff003825f6bc5ff4acff0038295b7d556dde60b8c3400493fd96ca8fdae9e3dfff006dbfff00
209299d76d76026b70780609699d7c14d55a7218d7dc487c39e0b7f46fd46c637f73f79a8872e902
4ef006a4963e3fea1253ffd1f45ca664df84fc56b2fa1ee01bebd2eac38411eeaddeb37c1501d3bac1
a6aa9f9b96454c6b77814b5ee2d0eadcfb1e2ef7faad77bf77f84fd22df4925386dc2eb21c49cdcb2d
2410cd98d02001b776f759b7fb4b4f1fd6366eb58e6edadad2e7ec973a4ee76da9cf5652494a5532
71ce4efa1e2ca985cdb1b7d4e6b482ddbb792e7eedcdff0046ada4929c3bfa6b1adbce4df9df66707
07eeb816ed3a3bdbea3dee6bff319e9fa88c7a48638b196e76d90439b788fcd73be9d9bddc7bbd45
7f3059e90730070addbdec7180e0d05d1b835ff009fb1ea58b5beac7656f0d0583680c980d062b6e
bff0007b525355b896d0fa2a607e431b71b5d6dceddb01658cfd1b9cff577eedbfbff00ced9ff005bbe
924929a99f43ae6866d7bab7b2caec3590d780f006e639ee6aa67a6074871ce21c0823ed0220906
34b96ba4929c67748adcf1638669b03b787facc0787376fb6c6b76edb1ccff83ff068b5e01a9fea306
5b9da90d7dcd73756b9bb36badfa1eedffd85a8924a7fffd2f554924925227e4d4c7961dc5c39dac7
3a27cd8d7215d90c73035a2d12e6cc576031b86ed4311017b2cb3d8e707104105bfbad6fe739bfb
ab2ecfabf8d63b76eca6bf68ac3d8fadae0d05d606fb7e97bddbbf49fe8eafdc494e87a98dff0df75dfd
c90b314bdacdd6b5cf3b5bbbd56c982e8dcfdbf9ad55074bb1ae2e1939ae93c3ed696813aed0d733
fb2ae5cdb6db31c8acb45766f7125bc6cb1bf9ae77e739252476356e696b8bc8708237bf83fda4fe8
33c5ff00e7bfff00248898f0929aadb715c039a6e70709040b8820f7097ad5b2c616fad1aee965ae1c
7f29ae51347ab80dc4be97c6c6b5c5ae6820b621cc7b6c0e6b98f6ee63d553d171c586ca5b938ee
2edc7d17b1834f521bb5aedbf46ed9ff17e9a4a747ed757859ff6dd9ff9052aefaed243265b048735c
d30663e986feeaa38d816635adb05b97700492dbad0f07e9c37f9c6b76fe97f77f328ff0044aed7bcd
cf7b98580b5a04c6a417fee977ef24a4a924924a7ffd3f47c5a9ccaf141ca16c340164926e8616eed6

273

c7b5dbff9efcf5529c57ef7563ab9b2d1639ce12090d7b9e051e98b3dbb37fa54bfe9fe8abfa7fa4f52
c61ff44e97f4fe8b7ff3cbff009c59387fd33fed3ff3cee3e97f3999f47fefff00f7637a4a75db8d9eebfd66
7519a774baa15b0830e3b9bea12e737dadf4fdaaf35ec7121ae04889833cf0b81a7fa2d7ff00277d1
1f43e8ff3cdff005b3f96b54ffca98ffd1b9c7e3e97d2aff9affbe7fd69253d5a49249294924924a52492
49294924924a524924929fffd93842494d04060000000000070005000000010100ffee000e41646f
626500644000000001ffdb00840004030303030304030304060403040607050404050708060607
0606080a0809090909080a0a0c0c0c0c0c0a0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c01
0405050807080f0a0a0f140e0e0e14140e0e0e0e14110c0c0c0c0c11110c0c0c0c0c0c110c0c0c0c
0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0cffc000110800e7015e030111000211010
31101ffdd0004002cffc401a20000000701010101010000000000000000040503020601000708090
a0b0100020203010101010100000000000000010002030405060708090a0b1000020103030204
020607030402060273010203110400052112314151061361227181143291a10715b14223c152d1
e1331662f0247282f12543345392a2b26373c235442793a3b33617546474c3d2e2082683090a181
984944546a4b456d355281af2e3f3c4d4e4f465758595a5b5c5d5e5f566768696a6b6c6d6e6f6374
75767778797a7b7c7d7e7f738485868788898a8b8c8d8e8f82939495969798999a9b9c9d9e9f92a
3a4a5a6a7a8a9aaabacadaeafa110002020102030505040506040803036d010002110304211231
4105511361220671819132a1b1f014c1d1e1234215526272f1332434438216925325a263b2c2077
3d235e2448317549308090a18192636451a2764745537f2a3b3c32829d3e3f38494a4b4c4d4e4f4
65758595a5b5c5d5e5f5465666768696a6b6c6d6e6f6475767778797a7b7c7d7e7f738485868788
898a8b8c8d8e8f839495969798999a9b9c9d9e9f92a3a4a5a6a7a8a9aaabacadaeafaffda000c030
10002110311003f00f6d79f6da0bcf2bdd59dd2092d6e26b386789b7578e4bb855918770c0907154
a6ffc87f949e5db7fd31a9e89a3e996b6ec8df5db88e18111cb009f1b5054b502f89e98ab2ad1f5ed1
3cc36cf79a0ea36da9dac6e61926b399274495402518a1346008aa9df7c558febbe57fcb6d67cc30
dbf9874fd32efccf7d0bcb6f0dd2c6d7735bdb71576456f8995392862051790f1c55a1f94ff0096a361
e55d37fe9193fa62a9de87e57f2ef965268fcbfa65be9b1dc9569d6d63118764040269d680e2a80b9
d7fc89e62b8b8f27dd6a9a6ea3757064b6b8d19a7865924688729233172258a01575a557f6b1563
5acf94ff00233cb920875ed3740d2e536f35e85bb1040df55b500cd2fc647c11d4736e8bdf154e2dbf
2c3f2c9922bab4f2ce985182cb0cb1dbc7420d1958103e918ab32c558eeb3e43f267986f0ea3ae68
565a85f1554371730a48e553ec8a91dbb62a90f92f43d27cbbe78f3769ba1d9c7a7e9bf55d2255b4
b75f4e112b8bb0ce106c19805e47bf15c55e818abb15762aec55d8abb15762aec55d8abb15762ae
c55d8abb15762aec55e7d77f9bba1d94f7d15c58deac3a78d4ccf7212368c0d1aeedad2e18847660
83eb492f2e3b441d9a9c698aac6fce2f2ea3c85edae1add34d7d592e60682e637862820b860ad04
b20a04b8421cfc078bb5782f22aab697f9a36dab5c59db5a685a8bc93c816f3d358665b6824ba9ac
e2b92d148c1e09248242b2213fba1eafd9c559f62aec55d8abb15762aec55d8abb15762aec55d8a
bb15762afffd0f766bb736169a6b4da9c267b4f5ad90c6006fde493c6919a123ecb956fa315619f989
a3ead2f9a7c8de69b7b19756d0bcb7797b36aba6db859270d7566d0dbdd470b1024681c91c57f78
164678d599698abce3559ff3756e35cd4b49d2754860d4354b8bed0dacaded6d0b5a40da6f13790
218e5799e35ba443707fbb8c2344d2346c15404de58fcc4d56d345d76edbccc9af06f34db2ca2509
736935c5c7fb87a28a2a42f12c7ea1feefe0513e2aadaaeb5f9bba458cf3eb2353b5d4678d6d2e78b
a35bdcea297fa72aa59bc6e3d35b984dd2c3e8c5ea22b1e464993e15511a68fcc8f31c569a769fac
79821b578dc5a6a9e80061bf5bbbc5b9b4d43eb4f1b2a450bdb22486390caa8d240c26eaaa7ba54
5e68b3fca8d3bca1a3794eef4ff00cc1f2ce9905bc32cb0c02d92f2184433cd6b78cc6391e75f57d37
525f9483d754f8f15625f985e5ff3d6b8ba9258693abea3a3cba6f9a20f2e25d46f25e429a968515b2
45334cdcc7a979ea88848792a6e691f0c553165fce5885dbe9b6dacc571a7adbac3a6c696e96377
a138b5e6b0c934e785f4712cca8a2389fd7af3768cab62a9dde58f9e23d525d5343b5f301b2b9b0d
3b8a5f5c87b95b14d61e6bf842fa944b9faac8160e559f82f1f53d518aa37c95a6f9e9fcff002ff882ef5
c1e558209ee74249e46580a1bb93d18ef0eecf28898fc321feefd2f53f7abb2af49d3ef34897ccdad5
95adb18f58b686c9b51bae200963944de828606a78717ea36e58aa778abb15762aec552af316b27
41d2db505b737527ad6d6d1401c47ca4bcb88edd2ac410006901269d31543c5a8f9a5a58d65d0a
148998092417c18aa93b9a7a22b41bd3154f71549af6ff00cc70dd3c563a345756a08e13b5e084b5
46f54f49a943b75c5543f49f9b6b4ff0fc14f1fd203fea862a9969971a9dc44eda9d8a58ca1a888938b
80cb4eb50894f962aaf7b25d436d2496502dcdd2d3d381a4f455b700d5e8d4a0dfa62a938d4bcd87
ae8100ffb780ffaa18aae8f51f34991564d0a048cb00ce2fc310bdcd3d015a62a9ee2a93dfdff009860
ba68f4fd1e2bbb514e33bde0809246ff000189a943b75c55da3eb17b7f777d61a8d80b1bbb210b95
4985c23a4e1b890c150820a1a8231542ff00813ca23549b5a5d2614d5a767924bb4e4927395e291
c82ac2859e18dda9f699031df154875dfca0f286a1a5deda689670e83a9dcc2608751b5883189192
285d7d2242959228522940e2cf181f1ab2a3aaa8cf2f7e59f97f478f4e9efe25d4f59d343adb6a1287
5f4d1d8388a24677e30a30e51c6ccfc1be25f8b1547db79875cd40dcc9a6e8d14b696f757166b2cb
7822666b499a166e2227a02c869bf4c555cea3e6beda15bff00dc43febc62ad1d4bcd9db41b7ffb88
7fd9be2aefd25e6cff00ab0dbffdc43fecdf156ff48f9aff00eac56fff00710ffaf18ab6350f35547fb83b70
3b9fafff00d9be2ad8d43cd44efa25b01e3f5f3ff64f8ab7f5ff003457fe38b6d4ff0098f3ff0064f8ab46ff0
0cd35db45b623c7ebe7fec9f15686a1e6b24d744b603b7fb903ff0064f8ab7f5ff35f6d16d7fee20dff0
064d8aa1aefcc3ace993582ea5a44496d7d791588960bcf5591a7242b156852a0537f8b1564b8abf
fd1f70f9c62bb9bcbf38b1b492fae6396d67169070f564582e6295c27a8c8bcb8a9a5597154043e74
d42596389bc9daec41d8299244b1e0a09a726e3784d0753418ab2cc558f6ade67bcd2ef5ace1f2d6

ada9c6aaac2eec92d0c0790ad019ae626a8eff000e2a945ff998eab6af63aa790359bdb1969ea5bd
cdbe9b344d4351547bc20efed8aa7fe5cbf17b66d1a68777a0c16c4470daddc76f102b4ad635b796
550a3e8c5530d42edec6ca6bb8ad66be789792da5a8433487c1048e8b5f9b0c558c7f8e352ff00a9
2bcc1ff01a7ffd96e2abe1f3a6a12c91c6de4dd7a20ec14bc8961c56a6956e378db0ef4c5596e2ac7
b57f335e6957a6d20f2d6ada9a0556fadd8ada18496fd9acd73135477f87154afca1fa52fbccfe65d7
efb47bcd1ed2fa2d3aded22d40db896436ab3fa8c1609a6007ef146e47cb1566b8abb15762aec552
4f3569775abe951d9da71328bdd3ee4f23c47a7697b0dc3efe3c6334c553bc55897e655cf9a6d3c9f
792f92ae62b4f34b496d169925cc42e20334d711c61244247c2fcb892082b5e5db157975dfe7d4b7
ba8794f5fd39c5bf925ec352b8f34da88fd4bd5d4ecacd676b10ce0046b773e9cd4eb23f1f878362ac
ab59fce5b9d0daf62bdf29df25c69f63a86ab3c6f3431f3b3d325b68d9e2f50ab37a82e94c61953e25
757e1b31556df7e77d8e9d75e62d2e7d1a77d6fca9657babeb56314d1b71d3ec042e5e19182ac8e
eb302b1fc3f658332fc3c955f6df9d36cf6f6dacdf68d269fe52bad4aeb484d6e7b98b82cf6deb08d9e
3505956768447154f2f52444e356c5543ce7f9a9a8f96b5ef2c9f4a1b7d03d5b24f38c33a4af3db26b
5582d992555f4d7d09b835c723fdd386c55172fe70b2dfea5a65af972eaeafed6fb50d374eb68658d
a5be9f49844f3fa6a01e00aba04e647276f8b828e58aa77a0fe625a6b9e638fcb674eb8b3bb9adaea
ee332947e2b62f6d1ca9298cb22c81ae94700eccbc5b9f0f8792acd31579bc7e7fd0adff003075bd2
2da786e24816d20d627699608ac5e2491f83f3f89e461229558d5853edba62acaff00c67e54ff00ab
c5affc8d5c55dfe33f2a7fd5e2d7fe460c556ff8dfca5b7fb97b6dcf11f1f7eb8aa8f91eeadef747babbb4
904b6d36a7aa3452aeeacbf5e985462af201f9d7e6bb6f2f79e747bafaaffcac2d19b51bdf2cbbc0df5
5b8d1226baf46ee58d5d4b187ea93453852a3d558fecfacb8ab25b1fcee8e0f2d36af75a26a5aac5a
6e9e67d5354b38523b56bdb786dde7895a4644524ccc231cbe268a45fe42eaaeb9fcfbd2f4cbe6d3f
5bd02fec2517b79a446dea5acab26a5662075814a4bd255b88f8c8d450dc95a94e58aa62df9b92c
9e63b8f27e9be56bfbff0032d88bb6beb58a6b48e28c597d51c9124b2a72f522be8248e8bbf22adc5
95862a93dff00e6dde6b37fe4a6f2d2cf6ba1ebf7bf55bbba16eb772bf3d1ae751f4e28d6ac248248a
38e6aad3e275fb4bf0aab63fcecd47cb3e5eb53f985a0cd0f9ad74fbdbebab1b2686aeda75a9be75e
0d2b088b5b8af1793fbd578c554072aa71acfe71c7e5c8676d7bcbd776b7705a5ede359a4f6d712d
2c2ca4d408ac6e50078626e059d7e3f878d3e2c55077bf9efa5e8f68daa798342bdd37478ee56ca7
bc67827e33cfa68d560511c4eccdce2210edf04a78eebf1e2a8db8fcdd6b1bb923d53cbb7ba7da41
6d773cad720c73c8f6f75696b07d5e26505e399aed02b9e1c583295f87155193f392ee19ae2de4f2
56b293d8594da9ea31b885648ed21b99ad8491c45fd6955cc5ea2718f9989abc39fc18aa6daa6b9
61e67d17ca7ae69d3453d8ddeb566f04f6d2a5c42eaaf2282ae9b1069ecc3f682b6d8ab3dc55fffd2f
7f62aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb15483ce1777567a5412
d9cad0ccda8e990974ea639afe08e45f9323153f3c553fc552dd6f41d2fcc766961abc4d35ac73437
48892cb01135b389226e50ba37c2ea186fd462a92ea7f967e44d665b69752d12de73686fda08fe34
86bab9637bca24608febf36f579ab73ae2a835fca0fcb94b21a7ae8aa2d3ea771a6b27d62e8b3d9d
e3a3cd13b99793863147bb126888a3e1518aa2e6fcb2f235cdcdcde5ce8e935d5e4d25c5e4b2493
3b4cf3c71452ac9573ca39121883c2dfba7e0bc936c550f7ff96da3dcda41a2d915b3f2cc9a91d675
9d30a35c1bdba170978844b33b1887d611647e2bf1fd91c2bcb154cafbc89e54d4f4dd7747d434e1
73a6799a46975db59659992e5dd1233caaff00082b1aaf14e2bc5698aa5d3fe52fe5edd69bfa26eb4
549ec7ebdfa582cb35c3c82fca7a4d3095a4320664f81fe2a3afc2d518aa334cfcb9f24e8daeb79974
ad1a1b3d6d9ae1beb51175a1bc11fae1539705127a485805a725e5f6b7c559462ac422d1ecb50f3
d6a1a8dc2b8bed321b2fa9cd148f132a4c25f511b8101d1b88aa49c96bf17dadf1565f8abb15762ac
7fca07969f7fdbfdcaeaa3c3a5f4c315413fe5a792e5b0974e974df5229ad6fb4f79de698dcfd4f5698
4f77089cbfaa12571c9807f953154047f935f9750c7a8451692e916a9025b5fc42f2f3d391638a3843
f0f5b8890c712234aa04aeab4673be2aad7ff949e40d52796e352d28ddc935c5ddecbeadc5c329b8
d42148277a7a94059234029f638864e2dbe2a8c6f22693677926bba12fd53cd42deee0b5d52e5e7
bb50f7a63691e688cc9eb55a086b560dc624446455c554b4dfcbad06d2df45377109b54d16f6eb57
82f2dbd4b34fd27a8994dd4e228e4a524f5e55e0c5c0472bbf5c550daefe507e5ef99352bbd5b57d2
5a6bfbe691eedd2eeee0591a7b4163292914c89592dd562928bf1a2af2fb231554d57f29bc85adde
5ddfea7a5bcd757f5fae38baba8d652f6674f76644955793db1f45da95740bcabc57155d7bf957e44
d4ada4b2d474a1776334a97135acf34f242f2c565fa354b233907fd1bf754e8577fb5f162aa527e50f
e5ecfa7a69773a41b9b35b7b9b3713dd5dcd24b6f782212a4d23cc5e5fee62e0646631fa69e9f0e3
8aa2ecbf2dbc9fa7b3496b6732cef6e2ce4b86bcbb9267884e6e47291e5672e253cc485b9ff00954c
550be62d2b4ed16d3cbd65a740b05b9f305bceca0925a7b99659a59189a92ceeeccc4f5638ab36c
55fffd3f6f798b5fbfd2afb48d2f4bb08efafb579668e3f5ee0dac51adbc2d3331658a526bc68005c556
7d7bcf3ff00564d33fee2737fd90e2ad9bef3c76d134dff00b89cdff6458ab5f5ef3d7fd5934dff00b89c
dff6438ab5f5ef3dff00d5934cff00b8a4ff00f6438abbebde7bff00ab2699ff007149ff00ec871577d7bcf
7ff00564d33fee293ff00d90e2aefaf79effeac9a67fdc527ff00b21c55df5ef3dffd5934bffb8a4fff00643
8abbebde7bffab2697ff7149ffec871577d7bcf7ff564d2ff00ee293ffd90e2a8ff002f6ab73ac69c6eaf2
d92d2ee39ee2d6782397d78c496b33c24ac8523241e151555c5535c55d8abb15762a83d4f4cb4d5
ed0d95eab187d48a6531bb44eb24122cb1b2b2104156507638aa0e1f2edb412248b79a8318c860
b25f5cba9a1afc419c823e78aa718aa5575a0db5ddc3dcbdddf46ef4aa4379710c62829b223851d3
b0c5548796ad053fd3751dbfe5feebfeaa62ac7fcedabdef92745864d044d7fa9cf72b2fd5ae2492ea

275

57b3b3537578b17a8c4f336f14891ef4f55d31565eeb6dac69ea639a416b768924735bc8f0c851a8
ea55d0ab0a8f038aa5bfe15b2ff96ed4ff00ee231610000026060f002220574d46430100000000000
1000000000000000d00000000200000b8520100b892010077ff00557155e9e58b38e44905eea44
a10c036a174ca686bb832508f6c553ac552abdd06dafae1ae64babe89d80052def2e208c5053648
dd547dd8aafd2f43b1d224b89ad9a792e2ef87af35ccf2dcbb0881082b2b3500a9d878e2a9962aec
55d8aa45fe12d31649a4827beb713cb25c491417d75147eacce647608b2003931276c55bff000ad
97fcb76a7ff00711bbffaab8ab5fe14b2ff0096ed4ffee2579ff5571577f852cbfe5bb54ffb895e7fd55c5
5aff09d8d49faf6a953ff006b3bdffaab8ab7fe14b2ff0096ed4ffee2579ff557155a7ca160dd6fb55fa35
4be1faa6c55aff0869fff002ddaaffdc52fbfeab62abbfc2763ff002ddaa6dff6b3bdff00aab8aac3e4ed3
98d5af7553dff00e3ab7e3f54d8aae3e50d389a9bcd50f7ff008ea5f75ff91d8ab93c9fa32dc5bdccad
7972f6932dcdbadcdf5ddc46b320215b8492b2922a69518aa7f8abffd4f68f98ff00e532f25ffc67d43f
ea09f1565b8abce7f34fcf3acf91db4cba8e2faaf962e12e5355f319b49350834db9023faabde45149
1bc768d593d69c57d32a9cb82b170aac9bf352df49b2d62f2f6d2eb54fd1b7f1e9ec9610c2a0dc4d6
b652430db992e3f7e6e1eed3eaf4e2cfc8ab2a88f9b2a927e607e771d1bcadabeade56b19e4bbd32
4b6097977692cda7ca0ead0e977512bc2ea4cb1b48c512bfbce3c939ad715643a77e655ac37f6fa7
eb2f2ac9aadf4b61a40bab36d21de4b6584ba15bb941766f5b9441407911642a87d3e4554a2c7f3b
2c64b68f57d434ebe820974bb6d4974982186e65e377a91d3e3759c4ca18f22bca3e038afc5c9bec
e2a9ad9fe70e8f773bdabe8fa9db4c92dedb7ef92db87d674bbc86cae90ba4ec156379d1cc8d48fd2
e6fcbe0231551b2fce6d1afee2110e9d746caf62d37f464e1a12f7177ab5d5d5a24023e7f0f06b395d
a42dc38296f0e4aa3bcbbf9ada379abcc53796b46d33519af6c792eb1398e05b7b09526bab768e7
633722e25b575a46b27da8dfec372c559ee2a907944534fbdda9fee535434dbfe5ba6f0c553fc55d8
abb15762aec55d8abb15762aec558adb29d5bcf77b76652d65a059ae9c96e53e0fae5ff0b9998b1e
a5625800a74e6f8aaa7918b5b693368321265d02ea6d34737f51feaf19125b163d6a6dde23be2ac9
b15762aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb15
7fffd5f68f98ff00e532f25ffc67d43fea09f1565b8ab1bf32f91f45f354ad36a4f771996ce7d32e52d6e6
5b78e7b2ba20cb14a88406069b3539a55b832f26c552a9bf29fca725ea5fc5f5db69a2bbfd236e96f
7734514375f514d39648e3078a94b78d634dbf77f6938b92d8aa025fc8cfcbf974cd4345316a2348d
4a58a79ac46a97c608e58674bae702198ac4cf322cb218c2991f76ea7154d24fcaef2cdccd24da8c9
7fa919e48a5b88efefae2ea293eace9244a63959900478c32f155a373fe77aaa808ff0025bc911294
896f923f496d9545f5c10b0477dfa45235ab921567f8940fd9f83ec7c38aafbffc9af256a527ab72b7c
1d6f2eb538da1beb984a5e5f5cc5792ca8637520fad046ebd938fc3b57155d17e4df91604448edee
e912c5e896bfbb731c96d7925fdbcaa5a527d48669a468dfed2abba7d862b8aa75a1791bcbde5bd
56e75ad261922d42f605b6bd769a4759824f2dcfa8eac4832b493caed27db6e7bedc68ab24c558f7
93bfe39d7db53fdcaeabff0051f362ac8715762aec55d8abb15762aec55d8aa9cf3476d0c97131e30
c4ad248d4268aa2a4d06fd062af35f237e62791d3cbb1eaba9798ac6d2fb59965d56ea0bbbb85658
4debf38e170587131c6522e3db8d31546e95e67f2adc7e6191a0ea9637c7cc16045d0b49d6693eb
5a5b028595091f1453382dff001528c55e838abb15762aec55d8abb15762aec55d8abb15762aec5
5d8abb15762aec55d8abb15762aec55d8abffd6f74eb5e5cd2b5f368fa8a4a66b191a5b49ade79ad
658ddd0c6d4781d1a8558822b4c5500de47d19853eb3aa0f71ab6a20ec6bdae31577f8234626a6e
754f97e96d469ff5118ab43c8ba2ad7fd235435eb5d5f523edff002d18ab63c8fa282184fa9d4569fee
5b51237f6fac62adbf923457a567d4c53c355d447df4b8c55aff036895afafa993ff6d6d4bfeca3156ffc
0fa1914f5752ff00b8aea3ff006518ab63c93a1804093511cbaffb95d47f0ff48db1571f24e886959351
d8d47fb94d446fff004918ab5fe08d13fdfba97fdc5751ff00b28c5537d2f4bb1d1acd6c74f468edd5e4
968f23cce6499cc8eccf23333166624927154662aec55d8abb15762aec55d8abb15762ac67f303fe
515bb23a89accfdd770e2ac942a8350057c7156f15762aec55d8abb15762aec55d8abb15762aec5
5d8abb15762aec55d8abb15762aec55d8abb157ffd7f7f62aec55d8abb15762a93de79b7caba75cc
967a86bba7dade444096de7bb8229109008e4ace08d8d77c550ff00e3af247fd4cba57fd275b7fcd7
8ab7fe3af247fd4cba57fd275bff00cd78abbfc75e49ff00a9974aff00a4eb7ff9af1577f8ebc93ff532e9
5ff49d6fff0035e2aeff001d7923fea65d2bfe93adff00e6bc55dfe3af247fd4cba57fd275b7fcd78abbfc
73e49ffa9934affa4eb7ff009af1571f3d792075f32e95ff0049d6ff00f35e2aeff1d7923fea65d2bfe93a
dbfe6bc55dfe3af24ffd4cba57fd275bff00cd78abbfc73e49ff00a9934aff00a4eb7ff9af1577f8ebc93ff
532e95ff49d6fff0035e2aeff001cf927fea65d2bfe93adff00e6bc55dfe3af24ff00d4cba57fd275bffcd7
8abbfc73e49ffa9934affa4eb7ff009af15635e7df3af93a6f2b5dc50798b4c794cb68422dedb93b5dc
44fedf862ac97fc75e48ffa9974affa4eb6ff009af1577f8ebc93ff00532e95ff0049d6ff00f35e2aeff1d79
23fea65d2bfe93adffe6bc55aff001d7923fea65d2bfe93adbfe6bc55aff1e791bfea66d27fe93edbfeaa
62adff008ebc91ff00532e95ff0049d6dff35e2aeff1df91ff00ea66d2bfe93adbfeaa62ad1f3ef91475f33
e93ff0049f6dff553156bfc7de441d7cd1a4efd3fd3edbfeaa62ae1e7ef221e9e68d276ebfe9f6dff0055
3156c79f7c8a7a799f49ff00a4fb6ffaa98ab5fe3ff226ff00f3b4691b75ff004fb6dbfe4a62aeff001ff912
85bfc51a4711d4fd7eda9bff00cf4c55dfe3ff00218ffa6a348e95ff007bedba7fc8cc55c3cfde446345f3
46924f4a0bfb63d7fe7a62adff008f7c8bff00533e93ff0049f6de34ff007e62a9a699ace91adc0d73a3
6a16da8db2398de6b39a3b84570012a5a32c01a10698aa3715762aec55d8abb157ffd0f7f62aec55
d8abb15762ac23c9ba669d7377e6c96e6ce09a53af5cd649224663482dfb904e2aca7f42e8c7ae9d
6bff002263ff009a71577e84d1bfeadd6bff002263ff009a71577e85d1ff00eadf6dff002263ff009a715
77e85d1ff00eadf6dff002263ff009a71577e85d1ff00eadd6dff002263ff009a71577e85d1ff00eadd6d
ff002263ff009a71577e85d1ff00eadf6dff002263ff009a71577e85d1ff00eadf6dff002263ff009a7157

7e85d1ff00eadd6dff002263ff009a71577e85d1ff00eadf6dff002263ff009a71577e85d1ff00eadf6dff
002263ff009a71577e85d1ff00eadf6dff002263ff009a71577e85d1ff00eadf6dff002263ff009a71577
e85d1ff00eadf6dff002263ff009a71577e85d1ff00eadf6dff002263ff009a715483ce7a2e8c7cbf203a
75b713736208f453a1bc86bdb154ff00f42e8fff0056fb6ff9131ffcd38abbf42e8fff0056fb6ff9131ffcd3
8abbf42e8fff0056fb6ff9131ffcd38abbf42e8fff0056fb6ff9131ffcd38abbf4368fff0056fb6ff9131ffcd38
abbf42e8fff0056fb6ff9131ffcd38abbf4368fff0056fb6ff9131ffcd38ab7fa1b48ff00ab7db7fc898ffa62a
efd11a4ff00cb05bffc894fe98abbf436907fe95f6dff002263fe98abbf43e92371616dff002253fa62adf
e89d2874b1b7ff9149fd3156ff456974a7d4a0a1d8fee93b7d18ab8e95a59eb656fff002293fa62ae1
a5e983716500f9449fd3155dfa3b4febf5486bff18d7fa62a946830c50eb5e64486358d3eb56e78a00
a2bf5287b0c559062aec55d8abb15762aff00ffd1f7f62aec55d8abb15762ac47c8b5f5fcd75ffabfdd7f
c99831565d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb15762ac7fce848f2fc841
a1fad58ee7fe6361c559062aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb1
5487453fee7bcca3c2eadbfea0e1c553ec55d8abb15762aec55ffd2f77dc6b7a35a4cd6f77a8dac17
094e514b3c68e2a2a2aacc0f438aa9ff00893cbbff00577b2ffa498bfe6ac55dfe24f2effd5decbfe9262
ff9ab156bfc49e5dffabbd97fd24c5ff3562adff893cbbd7f4bd97fd24c5ff3562ac6bca3aa697613798c
de6a1690addeb171736c5ae61fde40f14215c51fa12a7eec55927f893cbbff00577b2ffa498bfe6ac5
5dfe24f2effd5decbfe9262ff9ab1577f893cbbff577b2ff00a498bfe6ac55bff127977feaef65ff0049317f
cd58aae8fcc1a0cd22c50ea96924ae42a225c44cccc760000db938aa638abb15762aec55d8aa1ee
efec6c1164beb98ad51cf1569e458c13d680b118aa8db6b3a3de4c2decf50b6b89c8244514d1c8e4
0ea68ac4ed8aa3b154b5fcc5e5f8dda39355b3491495656b88810c3a820b75c55aff11f97bfeaed65
ff0049317fcd58aa59e6fb882f3cb0f71692a4f03dcd8949622245205ec35a15a83d3154faeefec6c11
64bfb98ad6363c55e7916304f5a02c46f8aa0ff00c49e5dff00abbd97fd24c5ff003562aab6fade8b77
32dbdaea36b3cef5e11453c6eed415340ac49db1547e2a96c9e62f2fc4ed1cbab59a4884aba35c44
0ab0342082db118aa36dee6deee15b8b49927b77af096260e8686868ca483b8c555715762aec55
d8abb154ae4f33796e2768a5d62c524425591ae61560ca684105ba8c5567f8afcaff00f57bb0dbfe5
ea1ff009af1570f35795cf4d6ec3fe92a1ff9af156ffc53e58ad3f4d5857c3eb50ffcd58ab5fe2af2bffd5e
ec36ebfe950ffcd78aa4ba5798340b7d6b5fb99f57b04b7ba9edded9cddc1f184b58e3623e3ecca46
2a9d1f35f95c75d6ec3fe92a1ff009af156bfc59e561d75cd3ffe92e1ff009af156cf9abcb00d0eb7600d
2bfef543d3fe0b1570f357960ec35bb027fe62a1ff009ab1577f8abcaf4afe9bb0a0ff0097a87e5fcf8ab
fffd3f69e81a4e9b737de639aeeca09e66d55ff00792c48ec47d5adfbb027154eff0041687ff56cb4ff0
09111ff00cd38aa5b7afe47d3b54b0d12fd34db7d5f55f53f46d8ca90acd71e88e527a48455b88dda
9d062aed11fc8fe65b37d43cbeba6ea76292c96ef716890cd189a13c6442ca08e4a7661fb27638aa
65fa0b43ff00ab65a7fc888ffe69c552eb13e49d4eff0050d2b4f4d36e753d25a34d4ece2485a7b669
94b462540392730095e43e2ed8abb446f23f996c8ea5e5f5d3354d3bd4920fadd9ac13c26585b83a
87405495614343d7154c7f41687ff56cb4ff009111ff00cd38abbf41687ff56cb4ff009111ff00cd38abb
f41687ff56cb4ff009111ff00cd38ab14fcc7d1f49b7f2abcd0585bc52a5fe945244851581fd276db820
5462acef15762aec55d8abb15631af5adaddf9abcb915dc31cf1fa7a81092aabad7845bd181c55bf3
3ea5e5cf21797f51f37ddd8471da693034f3bdac082511d4026a00a28ad5989e2ab566f8462aa561
e7cd28e96756f30bc1a15a34cb15b5cdcddc125a5ca3c6922cd6f3a37078cf3a72da855ab8ab771a
bfe5c453dea5ddde8f14f62435ff00acd6c8622ec12ae5a94f89829ff28f1fb58aacb7d5ff002d6ee2b1
9ed6ef469a1d4e43069f246d6ccb3ccae6328846c5838e1c7af3f87ed62ac3fccbf9ede4ff00265cea
d691d8bdf687e5eb7d3eef54bed29a09a3821d4af26b466112302440d1349353fdd7f1af2a62ac935
6f3f7950f9cf4df235ddbadf4d77a7dceb326a0c217b1b5b7b611d3d4776a87904819005fb1f1134a5
55566f317e55aadbbbea3a128bb0ad6fca4b505c3486204027f9c14ff005fe0fb58aa26d3cc1f97482
c2facaff49417eed169d7113c0beac8ae61654614dc3feecff97f07dac555e1f3ff0091ee2f9f4cb6f31e
9b36a3124d2c96b15d42f22a5b026662aac4d23a1e7fcbdf154c22d2fcbf7d125ec565693c572a264
9c431b091641c8372a6f5ad6b8ab1bfcac8e38bcbda9450a2c7127983cc2a88802aa81ac5dec00d
862acdf15762aec55d8abb15793a5f58794bf26f51f392e8f69a8dce8b65a8ea4d6f3aac7eb8b5966
9590c823720b05a06e2dbe2a9b379cbf2f6cee0695a95bc035b88c705edada69d7172897725a0bd
10074b720b3424bc6bf69d41dabb62aa56ff00985f9457a904b612db5e25dfa0b6cf6da7cd32caf77
6a2f208d0a404179613cd13ed374fb5b62aad0f9eff0029e4821bc82e2c9ac6658da3bd4b46fab879
a01771c4d208b8accf151d6263ea1fe5e5418aa8d87e627e5cea57ba85a58d8cd22e9f69657ed73f
a2a748a68b549648ad841ca20d2191a334e2bc48dc36cfc55639af7e6969b6761aeebde5bf2f58f9
8741d1ec745d5eda4b62166bbb1d5a6b849da2062239c296ece89feec3fbbf81b15466a9f9abe52b
4f37797f46834fb293ca7abe973eb373e689b825b471a4704b0c512702647912e2373baf10f1fda67
a62a9ccff00993f95305b9b99e7844688cf723ea1331b78e1b8169219c084fa62394847e74e350df6
4838aaaffcac7fcb31134e5d11207922bf0f632c6f622094c0ef76ad106823120e21e40aa7ed0f87e2
c557c1f98df97535d0b5809e4ef7d0c53369f7114124da52cad751a4af0aa33c421939286fd938aa3
b5b934709e5bd605a2fd44dd497657eae7d5f4bf45de49fddf1e5ca9fb34e55dbae2aff00ffd4f6ef95e
4f52e3cc2de1ab4abff00030403f862ac8715797fe61681afeb1f98df97b7ba435f59d9699fa5cea3ab
d8c76f28b71776a91c4ae2e5645a3b291b46c47f938abccff2fbcb7f9a3a38b5d3754b1d7a0b3b7d4
350d4f4c96ce6b4b7f56e67d72f6f265d4019447e9dcdb4b053f7522afef51045301555cb279d06afa
1689e6c5f32e9ba76b97755b2b6bf68eee573a35dbdcc22782e4bb347710c6fc93d28ebfbc8e348df

277

8e2a8fd13c91f9976de6987cc925b4dfa7751b5b0f2df9dafe568a3fac69e34b819efa0652cb24b6d7
514d1a0e239fd61997e0a62a80fcb6f2a7e60e836ba66897da5eb7a468fa7cf7775a341a6496f0411
fabab5fdc4d0ddafac47092de5b729f03ed548bd3993157685e5ffcddb2d3b4a9e593cc8dadc1a779
62eae4de5ecb7309d645dcb0eafeaa19c878c5afa5ca21fba6fb71afad56c553987cb5f98d7175a02
5e49e61b3d2ee574e87cdb043a848653a9fa77297b345224c596ddb9272f4b8216f4de145647a2a
cc7f2c2cb554d6f5d824d6a5d6fcafa2dccf6fa06a3f5d7bdfac26a063b9921b86691f9c96457d04762
7f76dfcfcf15647f99a69e5197fe63f491f7ea76a31565f8abb15762aec55d8aa59797f6f06b3a6583c
01ee2ed2e5e1b834ac62108580a8afc5c874f0c55bd7ad354bed2a7b5d1aea1b2d45f87a53dcc1f5
a828aea5d248b92725750c868c08e551be2af31d07f26b54f2d5e8d4743d56c2c567bad45eeb421
60f368d0d96ae9682786d2033a988f3b4137daf48bcd37ee78b62a94f9b3f2a357d33cb412c263ac
be8ad789e5db48ed4bcec359d4a0bc9feb74902bac5e9edc3d3e4bb9f8f154d3fe54addcbad6a5ad
4da958483cc839f982de4d3448b14d1ca65866d3f9cbfb99509dde4597948ab3504831551d1ff002
63cc7a65d69b25d6bba76a167a7e9ba3f97dede5d3a4413e99a1cf3c8a5c0b929eacc939493e0f4b
b84df8e2a81bfff009c769e4d3344d0f4ef32b4763a3dade5b8bcbbb6fac5ecaf34f6b2da09184888d
15ba595bdbfa6cb5961561cd58f2c551faafe49ea7a9cd7778ba8e9565737da6a595c4365a63416b
f5afd290ea32cdc04e4b07f4b89e6cd23337367fd9c5559bf25f539eefcd525d6b5035979cda58759b
65b69098ad0cef3c46d5ccdfbb997d59033d0ab37a7271568fe255ab8fcb2bc4d23cb3e5395a67bb
b5d66ff0055935ed3112da286c6f6e2796ead6632bbb9f5e2ba682895e5412fc063c55ec20050154
500d801d00c5523f29eaf69ade9f777567662c638352d4ac9e25e34796caf66b7925f8401591a332
1eff16fbe2a9ee2aec55d8abb15762af3ad33cb5079d3f28ae3ca775732da5a6b76b7fa7dcdc4010c
c90dccd346e539865e5c49a120d315554fcaf09aabeb075dba6ba9750b5d567061b70af3d9e9a74c
028136568cf3603f6fecd17e1c5527f2b7e45699e53b2d22c2c35cbe9adf46bcd3efadbd74b7259b4
bb06d3a2472b1afc2d19e4f4a373e941b62aa7a6fe40797b4ed124f2f0d5afa7d2a696def67825f408
6d42cadc5b417229182195522664feedde256e3bb875535b9fca2b69fd368b5fd42de41a7693a5dc
18d6d8ace9a14f24d6ed223c2ca437ad224b1d3d2915bec7c231542795ff256dbca10c56ba4f986f9
ad614d32dd639e1b4726df47b99ee618c9585766370cae7ed710bc78e2a97dff00fce397936ef4fd3
746b6bdbeb0d1b4b4d4d6dadad9a2f5049ab5c477264f55e36606068615b751f024712c655936c5
536d73f27d3cc315daeabe65d467b8d434cfd13797063b40cc86e63b93222ac2110d6354e2abc29
56e3ccf2c5564bf929a4dc5f6bb7b71abdeb8f33faf0ebd005b758ee2cae24f53eafb47540a4b85914
fa9c646e4c7e12aabb52fcb27b9d3f45f2a4a3f49e8716b53f986fb55b99520b88246bb6bc6b78e18
635124770669a07ab2f181995bd4e58ab34d73fe3a7e5aff00b6949ff74dbdc55fffd5f645ab79af40bf
d662b3f2ff00e92b4bdbf92f6dee92f6084159638c50a4801041538aa37f4f79c69ff288b57c3f485b6
2ad7f883ce3b7fce9f26fd7fdc85a6df8e2ab47987ce669ff003a7482bd6ba8da6df8e2aa1717fe64bb
b8b7b8baf23473cf68c5ed6796f6cdde176142632412a48eeb8aa246bde72a7fca22d5f0fd236de3f
2c55c75ff00398ffa64188f6d46db156bfc41e74ffa93dbfee236b8ab6baf79ccf5f2895dfbea36dfc062
aa76daa79a6d2316f6be4c5b7801244715fdaa202ec598f15503724938aa5be651e73f33e989a37f
86d6c964bdb09a4ba96fa07448ad2f61b876e280b13c633403be2af40c55d8abb15762aec558d79
8edf594d5b48d5f48d3c6a46c96ea29adcce96ec05c2a71605c10685294c555f4cd5bcc7757690ea
3e5e3a7dab062f726f209c290361c13735c553ec558cc9adf9b966748fcac5e2572a927d7edd7928
3b3529515f0c556fe9cf38edff3aa7fdcc2dffa62ad47e77b58bcc5a4794b54b592cfcc3ab5adc5e0b6
5613c50ac0d4559254f8794a16468c7ed0865fe5c5538d5ef355b28637d2b4cfd272b371922f5d2df
8ad3ed564a83f2c552b1ad79b8ffd32f4ff00b7841ff34e2a89b0d4fcc771771c37da08b3b56afa973f
5c8a6e34048f81541353b62a9e62ac726d63cd693c91c3e59f5605660937d7e15e4a0ecdc4ad454
6f4c554bc83a3ea7a2e877106af0a5bdeddea9aaea2608e4f58247a85fcf731a97014160922f2a0eb
8ab28c55d8abb15762aec5582f96ff00c63e5ed1a0d1dfcbe974d6af3017097d12ac8af33bab00c95
150dd0e2a9afe9af37f7f2b8ffb8843ff003462aefd35e6ff00fa95c7fdc421ff009a31570d67cde695f2b
81e3fee4213ff001a62ae6d6bce0090be575615ebfa4211b7fc062ad7e9af386d5f2bafbffb9187fe68
c55dfa6bce1ff52baffdc421ff009a31577e99f38547fceae94ee7f48c5ff54f156ff4cf9c7b79613fee231
7fd53c55b5d63ce047c5e598c1dbfe96319f9ff00baf1540ea1379c6f6ef4ab95f2fc28ba75d35d3a9d
412ae1ad67b7e229175acc1b7f0c55ffd6f7f62aec55d8abb15762aec55d8abb15762aec55d8abb15
762aec55d8abb15762aec55d8abb15762af32d452e6f34ef32f9de08a796eb4cd492e34c823004af
6be5f2629628ff984c7eb617f984b8abd22dae21bbb78aeaddb9c13a2cb138e851c0653f4838aaae
2aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb15762aff
00ffd7f7f62aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8ab
b154a3cd1aa4ba2f97b51d4add1a5bb8616faa4480333dc3fc112807bb3b28c5553cbda343a0683
a7e8713b4d1d8dbc76ed34a793cacaa03bb93d59cd59bdce2a95f917fd13499bcbce4fabe5fb9974
c50ee247fab4747b5663d6a60788ef8ab27c55d8abb15762aec55d8abb15762aec55d8abb15762a
ec55d8abb15762aec55d8abb15762aec55ffd0f7f62aec55d8abb15762aec55d8abb15762aec55d8
abb15762aec55d8abb15762aec55d8abb154bf59d1ac35eb2fa86a2aed00962b84314b24122cb6f
22cb1babc4cac0aba83d715627a8e82967e62d034e8354d596d2f7eb9f5846d4aedf97a512b27c4f
213b13d8e2ac8b45f2be99a15e6a1a859b5c4b7ba9fa3f5c9aeae25b867fab2b2c74f518d28188dbf
80c553ac55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb157
62aec55fffd1f7f62aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb15762aec5
5d8abb15762ac635c603ce1e5407ab7e9003fe91d4e2ac9f15762aec55d8abb15762aec55d8abb1
5762aec55d8abb15762aec55d8abb15762aec55d8abb15762aff00ffd2f7f62aec55d8abb15762aec

55d8abb15762aec55d8ab17f39b5d3cbe5dd3edef27b28b50d545bdd4968e2295a25b3ba9b806a1
20178d49a7862aaa7ca0a4d46b9ab8f617ade35fe5c55a6f27a9ff00a5eeb03e57adff0034e2ad7f83
93feaf9ac1debfef73ff004c55b1e4f4029fa6f58f9fd79ebfab156ffc229b7fb9ad5fad7fded7fe98ab47c
a0869fee6f5814f0bd7dff0c55dfe0e8ea4fe9bd63735a7d7a4ef8ab47c9b11a7fb9bd645053fdef931
56c793a20a8bfa6b583c3b9bf92a7e7e38aa5b7bf9731de6a7a66a27cc1ac2fe8d339e1f5c725fd78f
d3fb429c69d7a6f8aa61fe0b8b972fd37acfcbf484b4c5571f27445b97e9ad607b0bf9698aad3e4c88
ff00d2ef591f2d425ef8ab7fe0d8ab5fd37acf4a53ebf2531571f26427fe975acffdc42518ab8f932034ff
00733acede1a84df8ef8abbfc190529fa6b59ffb884d5fd78aa95df94a38ad2791759d639a46ecadf5f
97a85247b62a9ce813cd75a0e977370e649e6b4b792591bab3bc4a4934f127154c715762aec55d
8abb15762aec55d8abb15762aec55d8abb157ffd3f7f62aec551610000026060f002220574d46430
1000000000001000000000000000d00000000200000b8320100b8920100d8abb15762aec55d8ab
b15762aec55d8ab17f367fc753c9fb03fee68f5ff00b675ee2aca315762aec55d8abb15762aec55d8a
bb15762aec55d8abb15762aec55d8abb1543dff00fbc375ff001864ff00889c5505e59ff946f47ff981b
6ff00932b8aa6b8abb15762aec55d8abb15762aec55d8abb15762aec55d8abfffd4f7f62aec55d8ab
b15762aec55d8ab0fd2edf56d72e7599a4d76fad12db519ed2de0b65b411a4512a7103d4b776277
3525b154cbfc3d7ff00f5326a9f7597fd92e2aa173a6fd48c4b7be6dbeb7699b842267b08cbb6c28bc
ad854ee3618aa1678aced657b5baf3c5cc3751fdb8e59b4d4916bbeea6d811b7b62ad4de59b7d5d
6cb526f356a1710e9b3b5e5b5c4725818d6558a4818965b6a101647071547c1a2dc5cc29716de68
d4668241ca3963362e8c0f7056d4838aaa7f87afbfea63d4ffe9cbfec971568f97afcf4f326a83e8b1ff
b25c55c3cbd7e2b5f326a87fe90bf85ae2adff87efbfea63d4ffe9cbfec97154a3cc906ada069d0ea76
baf5f4d22dfe9d034570b68d13c5757d04122b05b753ba48d4a3023156698abb15762aec55d8abb
15762ac3bcb963aaeb5a069bab5cf987514b8beb78ee2458859aa06914310a0db1200aedbe2a9a
7f87afbfea63d4ffe9cbfec971543b69dc2ed74f7f365f2dfba7a896a5ec04c6315f8827d5b911b1de9
8aa5e6eb440687cff202bd6b77a676db7fdc62a8db7d29357b691ecbcdb7d776adca2792de4b091
2a46e3925b100d0e2ab74bf2e8fd1f6f1e97e6ad466d3e145860789ec654e310e000616c6b4a50ef
8aa33fc3b7dff005326a9ff004e5ff64b8ab7fe1ebedffe763d4f7ff983ff00b25c55aff0edf7fd4c9aa7fd3
97fd92e2aeff0edf529fe23d53e75b3ff00b25c552dbb8b55d17cc1e5c8935abcbcb4d4aee7b6bcb7b
b16cc8512c6e2752a638236043c6bfb5d3156618abb15762aec55d8abb15762aec55fffd5f7f62aec
55d8abb15762aec55d8ab1bf287dad7ffedb175faa3c559262af25fceb555d57f2cefe4d3eeafadb4cf
35477d7af676371a81b7b64d3af63695c5bc7232a89248c569f688f0c558e6af6de5cf377e69f91b5
283ca779fa12ed7ccb6fab5cdf68d710c739bab7b58924b832c20a2ca63748ccfc0b70f87e0e05956
271f9575eb1d0fcf1a4e9da55db7e5979b935ad52f6c45a5d47736da8db5c4f01b68adb8099a3d45
1acde308bc78c5707fdd98aa2346f327e66e9de47b9b3b3875cd2354d07438934cd362d0de4b696
dfea36ab6d2472bc6c3d78e712a4907079b973e71fa4aaf8aa65e60f36fe6cd8eab716fe547d67538
46abaad8c31dc699f01d3e1d3edae6291246b5405c4cd3240ecdc247fdcfc74c5592e9da879db59f
3cae8c758d6acbc99749a84da45f8b058a568e18ac0c5f5996e2d0fa644cd78b109383cb1a746a2b
32acbbf2b2e7cdba8e8f3dff9b6e19ef2293f458880430c926945ad67bc8d9403c6ea5569547eca70
d87c58ab3cc558b7e616de5b534ad353d1cd3fede96b8ab29c55d8abb15762aec55d8abb1563fe4
61c7c9da12ff2d9403ee403156418abccff0034fcb7ae8d47cbdf987e49b117be72f2fcb25835a02b1
9bbd2b56e304f1bbb0e903fa576b5ff007c32fede2ac6bcddf97da1f97751fcadb2d374337e2dbcc29
2eb9a84762d732489fa26f2d1ae6f1e38d800d2cb1f2672179372ec68aa43a5793b51d0fcd7e635f2
6e9971a6f92fccd7375a6f9ae316b3431dac7a4aa343736903229905c5a896c95a0a82fe8483970c
5525f25dcfe66e93e4ad2343d2ad75bf2f4ba1f97c1d334d8344796dee7d3d3a5492195e601619e3
bc019414323858fd2592395f154f750d67f386da092e3cbefacdeeac27d392ced6fac785ab49a868f3
34fea13020f4e3bb1154921207f8490a5b154c34dbdfccad4fcd3a369d3df6bb65e47d47d017174f6
823bf8af858dd3dec5348d6ede942b702d84727c2864692389da21f0aacdff2ca5f35dc4fac5bf992f6
7bb4d06e66d1a0ba93d231ea05656b95bc1e981b886686071b719a2987862af45c558df98d47e9c
f28b9a557529c0aff0095a6dd8c559262aec55d8abb15762aec55d8abb157ffd6f7f62aec55d8abb1
5762aec55d8ab08d07cc3a1e9375afda6a77f0d9dc9d5ae6410cee23728cb190c0353623a1c553bf
f1979540a9d62d687a1f5571571f397950004eb16943d3f7abfd71571f39795075d66d076fef57fae2
aeff00197953afe98b4a52b5f557a62adff8c3cad4afe97b5a015afaabd31577f8c7cad503f4bdad4f4
1eaaf7c5542f3ccde4ad46d2e34ebed4ac6e6caea3782e6da5911e3922954ab2329d886068462ad
59799bc93a7da4361a7ea3636d656b1ac56f6f0ba2471c6828aaaab400002800c5511fe30f2b9151
abdad3ad7d45c5520f39798743d4b4782c74fbf86eaf65d4b4931dbc2dce460ba95b3b10ab5340a0
b1f6c559d62aec55d8abb15762aec55d8ab09f29f9afcb563e5ad2acef354b7b7ba82da28e682570
9223aad0ab29a10411be2a9c1f3b79486e759b4ff91ab8ab8f9d7ca43aeb36bff23062ae1e75f291e
9acdaff00c8c18abbfc6be52ad3f4cdad7fe320c55dfe35f297fd5e2d7fe460c55bff001a794ffeaf16bff
23062ad379cfca4c0ab6af68548a30320a11ef8aa174cf30790745d3edf4bd1ef74fb0d32d5785b5a
5b148618d2b5a2a20000a9ed8aa2ff00c69e54ff00abc5affc8c18aa51a8ebba46b3e60f2b43a55ec
7792c57f34b2a4279f18c69f74bc9a8361565153dce2acd315762aec55d8abb15762aec55d8abffd7
f7f62aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb1576
2aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb15762ae
c55d8abb157ffd0f5ef9024f3479afc91e5ef335ff98e78af757d3edafae2282dacc44b24f12bb040d0b

279

1e209daa49c5591fe84d76bff00292ddd3c3eaf65ff00543157792f52bdd5fcb1a7ea1a84826bd955c
4d285081cc723272e2bb0a85ed8abcebf32ff0039751f2179c1bcb70da58dd73d19756d36ce69664
bfd4af1aebeaa9a7da2c68e0cd29a7a6687e23f18e1570aa2e2f3dfe664be6eff000b9d0b4a4bbfd13
1f980d9b5ccc2716d25eb5bfd5cc814c7eb041c8b7f77ea7c1f67e3c5527b6fcefd62f7c87e6cf37d95
a69cf7fe57b313dfe872bdc5bdf58dfc659a7b0bd86450eacab4e13a8f4a6f899070eaabd4757f3669
be5d8add757324b7af6ed75343636f35cb2c101459a6e11ab308d1a45ff2b7d8362ac5343fcdad3d
8fd47cce05aea926b17da4c1f548a67b6e16fa99d32077918515a590c6bc6bcb9372e3e982c154e2
c7f343ca3a90b53657134df5e91e3b20b049fbf589793c91edf1aa8fb416aebfb4828d4559962aec5
5d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8
abb15762aec55d8abb15762aec55d8abb15762aec55d8abffd1f63f963ca7e6df2af97b4cf2d58ebb
613586936b1595b4b369b2999a381422172b78016a0de8062a9b7d4bceff00f578d36bff006cd9bfe
cb71545f96b463e5ed0ecf4769feb4f6cadce7e1e987677676216ad4156d854e2ac67cd1f94fe5ff38
6bf79af6b57778e6f3491a1bd944f1c50c7125c0bb8e789963f552e229809229564f81874c555acff0
02de0b7d797cc775af6a97daa0d14797259277b65f56d43993d56314119f5f992dcd4a8ff00271549
b51fc93d2b59fadbeb3afeab7d75a85b5b697a95db9b48e5bbd26d3d522ce731db28757699dde5a
09f9538c8a05315651e61f2459ebdace95afc7a95fe93aa694b2dbfada6ccb0fd66ce764692da70e8
e0c65a356057848847eee45a9c55895cfe44e8579702ee7f306b4271773ea0be9cd6cb1adcdc6a3
1ea9cd6336ecaac93c7f0b01c8c7fbb919d315556fc8cf2a4bf5afac5d5e4ed7d790ea37a64fab7ef2
e6dc2849942c0a229fe1ab5cc223b8762ccf2b62af4fc55d8abb15762aec55d8abb15762aec55d8a
bb15762aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb1
5762aec55d8abb157ffd2f70796bcd3079a2d60d42c74fbc834cbb856e6d6f6e52248e58de9c68165
6704835f8957154c752d425d3e24921b0b9d419db898ed04459453a9f5648c53e47155ba2ead6fa
e6996faada2491c1700958e65092295628cac0122a0823638aa4fad7e60795fcbdaab68facdccb69
3a4504f35cbdb5c1b38a3bb95a084c9722331273914a0e4e3e2f98c552cb2fcddf255fc93450cb7e8
f0491dbbfafa65fdb83733a432430032c0a0cb22dc44d1c75e4e245a62a9be9fe78f2f6a7a869ba5d
ac971f5ed5adeeef2ce296d2e21fdd69f32c173ccc91a88da391d54a3f16f885062a985ff009834bd3
756d2744bb959351d6de78f4e8c46ecaef6b099e405d4155a2024722397ece2a8e92eada1922865
99239a7631c11bb05691c2972aa09a921416a0edbe2aa9c9412091502a47b78e2aa51dddacd3cb
6b14f1bdcc011a78558191164af02ca0d406a1e35eb8aa1175cd35f5a97cbe253fa4e2b54bf78ca30
4fabcb2344ac1c8e27e2420806a3bf518aa61c9475236a57e9e98ab78abb15762aec55d8abb1576
2aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb15762ae
c55d8abb15762aec55ffd3f607e50ead6b75e44f2e69f1c572b716fa6c024692d2e62b7251429e13c
91889f73b7076e4375db15665a86a56fa64692dc25c3abb7102d6dae2edab4aeeb6f1c840f72298a
a47f9793adcf9434fb844f4d25370e89c4c6429b9948aab50a9a7507718abce3f34741d4afbcf1fa76
196cd6d349b1d2261a7ea1a9456b69a8491ea9215b6ba818d4076914da4ac38fd72345dc725655
76ada7d9b58fe698f365a69971e5bd535ad3a4bcb6bbd4ededd5626b0d3adb8492fa882dae55e34
960e6ca5b940c8cacea42a98f93741f3559f9b3cabfe32be8a5d4746d0b57b6b69a7bc8e7d42f63bd
bdb4751222aa176b4860863b89c725925955bf6b157986b3e53375399bcc771a0c5a6b6ab74a2d
64d6a04517f3d9dedb734690ab7ab199209d83b35c7fb28d571546f997ca73c735ddbddea7a3de5
d8d4afd6dcea3a8d95bea0751bad12f6dde4594106aa5e39d11c2dc4319917e28618b155c9e59d6
4b31f274fa2c105a69b6b2cd1c3abc320bab2816c65bc86e0fef1952596dee6069037a03d6f54af37
99b15667e5cd1213279f17ca12e916977a9e87a5fd492cb508ee4dabadb5c08639de2ac89150831
cbf64a57d1fb18ab18d6f4c6d42de7bad26cf42d3743bdd1a24bbb4fd336cf6f6aadaa3b4ccafba150
ec48f83eafcfe0e3cd698aa0bfc29af5be9b711deea7a78d522b7d21ef4de6a1637406a515b7a20cc
d2b234b693015f4e5e3344e7d6b393f67157d38b5e2397daa0ad3715fa7156f15762aec55d8abb15
762aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb15762
aec55d8abb15762aec55ffd900000840010824000000180000000210c0db0100000003000000000
0000000000000000000001b40000040000000340000000100000002000000000000bf000000bf0
000af4300006743030000000000008000000080fe7fe9430000008000000080ffff99432100000008
000000620000000c00000001000000150000000c00000004000000150000000c00000004000000
51000000004201000000000000000000d20100003301000000000000000000000000000000000
0005e010000e7000000500000001004000060040000a03d0100000000002000cc00d3010000340
10000280000005e010000e70000000100080000000000000000000000000000000000fa0000000
000000000000000ffffff00fdfdfd00fefefe00aeaeae00636363006666660067676700626262006464
64006565650069696900a9a9a900fbfbfb00a6a6a6006a6a6a006c6c6c009d9d9d00fafafa00b0b0b
0005858580061616100686868006060600092929200b4b4b400ababab00fcfcfc00f9f9f900a5a5a5
00d6d6d600d9d9d900d1d1d100d4d4d400d3d3d300e8e8e800dedede00cdcdcd00d0d0d000d2d2
d200d5d5d500cfcfcf00dfdfdf00e6e6e600d7d7d700e0e0e000ececec00d8d8d8009f9f9f009c9c9c0
0cbcbcb005f5f5f00f6f6f600dddddd00f8f8f800cacaca0079797900f7f7f700a8a8a800dcdcdc00c3c3
c3007a7a7a00eaeaea00ebebeb00e7e7e700cecece00e9e9e900c2c2c200c7c7c70075757500aa
aaaa00bebebe0043434300efefef0089898900e5e5e50077777700a2a2a20070707000919191009
3939300c4c4c4009797970088888800f0f0f000e2e2e200f4f4f400e1e1e100e4e4e400f5f5f500dad
ada004444440073737300858585005d5d5d00c9c9c9007c7c7c005454540078787800a0a0a0005
95959007676760051515100ededed0023232300eeeeee005c5c5c008787870052525200f3f3f300
bdbdbd002b2b2b008d8d8d0012121200b5b5b50080808000a1a1a1004c4c4c00f2f2f2004f4f4f003

c3c3c0090909000b8b8b800717171005e5e5e00b3b3b300373737009b9b9b005a5a5a005656560
0484848008f8f8f006d6d6d002c2c2c00bfbfbf0082828200acacac0032323200a7a7a7003e3e3e00
c8c8c80045454500818181007b7b7b00f1f1f10046464600bbbbbb00969696006f6f6f006b6b6b009
494940086868600adadad007d7d7d0027272700b2b2b2004242420099999900afafaf00c0c0c000
bcbcbc008a8a8a0015151500b6b6b600505050003030300035353500313131004a4a4a004b4b4b
00212121004141410074747400575757004e4e4e00bababa00dbdbdb00474747005b5b5b00101
010008b8b8b00b7b7b7009e9e9e00a4a4a4003a3a3a007e7e7e00222222007f7f7f002d2d2d00cc
cccc003f3f3f008484840026262600959595002f2f2f0034343400191919000f0f0f00c1c1c10036363
600b1b1b100c5c5c5003b3b3b004d4d4d00c6c6c600181818008e8e8e00e3e3e3008c8c8c00a3a
3a3009898980014141400b9b9b9001d1d1d00333333001a1a1a00727272006e6e6e0053535300
2525250040404000838383009a9a9a00131313002828280038383800202020002a2a2a0049494
90011111100555555000e0e0e003d3d3d0029292900040404001f1f1f00171717001e1e1e001c1c
1c00393939002e2e2e000c0c0c001616160024242400010101000d0d0d001b1b1b000606060007
07070002020200b95c6b8e189001020101020328d253835cb7010d030101010d0103010101011b
011c010d0101010101010336020301016d011b01010d010301010101031b010102010201010103
0103011b01013601011b03010102013403011c010d01011b010301010201010301010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010100000827030103010d0103010301010d01019e0c01020102121b03013570
52392bb45a5f4f8a6d01884f4f592b6b553901012318bdc86d7dc11f01c88355018a72d1740d6e1d
3c8601187d0342502e011b2aa1af03931135b78c882030d154724f511b010102030302020101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101000005350d03010103020201020203010112c9301c0103010103010
369e8ce39a4064235b3d4012a4ebd9645afd910010102b4b293b2d4e486793b11217341ca446cd
d03a696160e38a9de270cda2b0134770fb62c4edd936153788a47c8501db060760d01030101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
1010101010101010101010101010101000006260101120301010301010101120101928a010302
011b01010201ac3cc98b40012ec32b1b32220220c2026dbe2312019eb67dd2886a027446394a95
5115124c0e1b951e529285321b599d530d03cf090101244a7f5196a380345566c10193b15603010
10101010301010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
1010101010101010101010101010101010101010000102a010d01020301010101010101031b20
a3011201011b0103030165dec29f010367e13b01010d4bb1171236e92d010334a3ac9d92640396
5352be40cc5e01164d011f1a089f8940011b31380103217f1b0101b930026e7bad57a8ac0187b13
71b01010303030202010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
1010101010101010101010101010101010101010101010100000f27011b0301010101020201021
21b01bda3011b03010112010102105e0a4f59017689351b0237f066540149852f12018ad19e52b5
8b8ce68c952028265e496c0826952a73276b5f9b7231b901015953909d25977d254d63090ebf234
37b248c0d03021b010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101

281

01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
010101010101010101010101010101010101010101010101010100000728011b011b030203030
10101010101a3460203010201010102014ec9018b191b54f0400102f06c02010d6989cf01034b99
38357ab8808f037a175113710c183dbb92ac4a123450092c07e149011cb099656d8ede1c4f055f5
4dd622a6e99c10101010101011b030101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010000063b020101011b0
31b010101010301019f98010101010d01010103d85a397560d434a7542aaf81032ed00176b8400
10d1b01340130140301010149013596540102011b56340101343401c693560139013412013d0c0
139560d011c340102340d010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
0101010101010101010101010101010101010101010101010101010101010101010000336e232
bcf0d020101031b0159572d2bb69b120d0201010101122cbe336579cf750fbc0fe6984652055d1b0
4c09b03010136010d3de6020103120101016d0103010103121b01010d1b0201560103010203012
3087a1b01010301020d0101120301010101010101010101010101010101010101010101010101
0101010101010101010101010101011610000026060f002220574d464301000000000001000000
000000000d00000000200000b8120100b89201000101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010100000c1d9d967d340102020101022f8a93ded2bd01010103021b020136584b3e03013f586
74b5701011f3e54013fcf561b010d010d0167b00103030201340101030301010301010101010134
0101010d010301010135540102010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010000010d01011c01010101010101011203013601011b01010201011b02011b0d0
10d0101030d010d12010d010201010d030102010101010102010101010101010d010102030101
0303010101030201010301011b010103020103030301010303010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101000001120d010103120301011b010101011b0101360201010d0101
1201020103030112011b011201010d01011b010d010101010d010139010102020203010201031
b02030103030101011c0101011b0312020302011c0101011b02020101020301010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
101010101010101010101010101010101000002010101011b010103010301010d01011b0d0101
1b02020101011b010201020301031b011b1b01031b1b010303010d030101020301011b0101010
1011c1b01010301010202010101010302010101010101031b011c010d010301010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010

10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
101010101010101010101010101010101010101010100001b0103010101010d01010d01010101
0101010101010101031b011b010101010d0201011b011b0201013901010301010301020101011
b0103031b0d010102011b010101030101010103010101010d0d0101011b010101010103010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
0101010101010101010101010101010101010101010101010101010000011b0d02010101011b0
10101030101031b010303010d010101030102010301030101011b0101030102020103011b0201
0101010201020101010101120101010101030201010103030101011c0101010301010301030301
0d020103020101020101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010000011b03010
10203010101010101010101020101010d010301011b0101020101010102010101120301010301
0101020103011b01030101031b011b0103010d010301010112011b01010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010100
00020101120101020d0101010101010101011b020312010112010139010101020201030112010
1010103010d0202010101010d0101021b01010102010301013601030202011b010d0101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010100000101010103010101030301010101030301030301010201011b0101011c0101010
103010203010d0d01030101010101010101010d01010d1b120102011b03010102010d01020101
02010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
1010101010101010101000001766d129059393634343939393934346d01011201030d02010103
1b01011c0102011201011b0301010101013601031b0102020112011b010101120103011c010112
011b011b010301010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
1010101010101010101010101010100004c5d5d536b5050b4ce838379798383ce4ac9011b01020
1010d01564936541b016d0d67341c56010336572f0d012e4001020103010376120dcf5669016d01
12010149390136762b01010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101

283

01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
1010101010101010101010101010101010101000091cc393454566d766d6d6d6d6d6d6d6d7f9b1
b0301020103010332e4a55f0197a57243e4b1c9029f753d6a79428b91a01b0102019885aeb09fa7
5098dc97090b9997bb294d8f4abd01010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
010101010101010101010101010101010101010101010000782a0103010101020101010101010
101130c1b01011b010101010164cb0113f60c0102a4081b01d1d201015bb6b504a90159012af070
5f9e56a951078d35f03c1a1b05cb43024d0b0101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010100008d57120d01020201010103
0303030101881a01020301031b011b0180652da51a0201037c62010358010d22f23a0192f06d010
1c8150101011ba4cccf4f13ab2e4964485157806f6e010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010000783b01011201010
101010101010101010e9b01020103010102010216bce8c2591b010114ac01030334d9f90559028
6d63601032c9401398812773c6ede37a6540fbb2055dd453e3e010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
101010101010101010101010101010101010101010101010101010101010101010100009c35030
10301010d01010101010101019e9e030101020102010301b2a43bd8a82d0103ad6202011233dfb
4011b01d4ef3912016da113ce3339b12111a97a7c59a11ace460cd472d40101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010100
009c350d01010302010101010101010101041a1b01010201011b01391695010de77b581b337301
58b6f32b013c1e0147a50d011c01031eaf56017786035a8a2d1b3647321201a0281c01010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
0101010000e1cf010d03010103010103030303010113a30d0103011b020112908d786ebba99d6a
92be7772e611b232a0a4bd7670ba271b011b030d010127f0430103030101020102010301030201
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010

10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
1010101010101010000e89fcf58cf552b584b58cf5555cf584bceb5010103011c010101581d3a8a7d
395974d17446b70c344b500ea334671a4d4301013901010203228f5a0d0101120103011b030301
02010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010100009d0e9dd1d13074b61db74d74744db71d4d22010103011b01011b
1c010212010103010103010301030201010d010201011b0103011b1c0101020203010112010303
03010d03020101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
1010101010101010101010101010101000001030d010d02010101030303030303011201010d02
0101031c011c0d01011b1c0101010301030d01030301011b015901010103030101010203010202
0101030d03010301031b1b0101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
1010101010101010101010101010101010101010100000103010101010d010301010101010103
010112010102010301020101021b0101010d011b0101030101120112011b011b1b01011c030112
01011b02010d01010101011b010101011b0101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010100000101010101010101010101
01010101010101010101010101010101010101010101010101010
Further control over the allocation of memory, in particular, specifying memory of a particular type (for
example, flash memory) or specifying the actual machine address where memory is to be allocated, is
given by the physical and raw memory access facility, which is considered in Section 7.10.

7.4 Time Values and Clocks


As mentioned in Section 4.2, Java supports the notion of a wall clock (calendar time). The Date class
is intended to reflect UTC (Coordinated Universal Time), however, accuracy depends on the host
system [Gosling, Joy and Steele, 1996].
The RTSJ introduces clocks with high-resolution time types. The associated classes are illustrated in
Figure 7.2.
010009000003ae46010000002593000000001610000026060f002220574d464301000000000001
0025b0000000000c000000002000009844010098640100010000006c0000000000000000000000
d20100001801000000000000000000006a400000b026000020454d4600000100986401000c0000
00010000000000000000000000000000000005000020030000c40100001a010000000000000000
000000000000e3e306006e4e0400460000002c00000020000000454d462b014001001c00000010
0000000210c0db01000000600000006000000046000000b43c0000a83c0000454d462b22400400

285

0c000000000000001e4009000c00000000000000244001000c0000000000000030400200100000
00040000000000803f214007000c0000000000000008400005003c0000f43b00000210c0db01000
0000000000000000000000000000000000001000000ffd8ffe000104a4649460001020100480048
0000ffed099850686f746f73686f7020332e30003842494d03ed0000000000100048000000010001
00480000000100013842494d040d000000000004000000783842494d03f3000000000008000000
00000000003842494d040a00000000000100003842494d271000000000000a000100000000000
000013842494d03f5000000000048002f66660001006c66660006000000000001002f6666000100
a1999a0006000000000001003200000001005a00000006000000000001003500000001002d000
000060000000000013842494d03f80000000000700000ffffffffffffffffffffffffffffffffffffffffffff03e80000000
0ffffffffffffffffffffffffffffffffffffffffffff03e800000000ffffffffffffffffffffffffffffffffffffffffffff03e800000000ffffffffffffffffff
ffffffffffffffffffffffffff03e800003842494d040800000000001000000001000002400000024000000000
3842494d0414000000000004000000023842494d040c0000000008080000000100000070000000
440000015000005940000007ec00180001ffd8ffe000104a46494600010201004800480000ffee000
e41646f626500648000000001ffdb0084000c08080809080c09090c110b0a0b11150f0c0c0f15181
31315131318110c0c0c0c0c0c110c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c
0c010d0b0b0d0e0d100e0e10140e0e0e14140e0e0e0e14110c0c0c0c0c11110c0c0c0c0c0c110c0
c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0cffc0001108004400700301220002
1101031101ffdd00040007ffc4013f00000105010101010101000000000000000300010204050607
08090a0b0100010501010101010100000000000000010002030405060708090a0b10000104010
30204020507060805030c33010002110304211231054151611322718132061491a1b1422324155
2c16233347282d14307259253f0e1f163733516a2b283264493546445c2a3743617d255e265f2b3
84c3d375e3f3462794a485b495c4d4e4f4a5b5c5d5e5f55666768696a6b6c6d6e6f6374757677787
97a7b7c7d7e7f71100020201020404030405060707060535010002110321311204415161712213
0532819114a1b14223c152d1f0332462e1728292435315637334f1250616a2b283072635c2d2449
354a317644555367465e2f2b384c3d375e3f34694a485b495c4d4e4f4a5b5c5d5e5f55666768696a
6b6c6d6e6f62737475767778797a7b7c7ffda000c03010002110311003f00f554924925292492494
a43f5e9f57d1dedf562764eb1f0f9222cdcbc5c9bf2e71efb311d5cbbda0965a4866df57f376d5e97fa
ff00844a6e3f2f16b7163ed6b5cde413c7752b6fa698f55e19bb89ef0b29b83d4eb7bdeeea5707bda
0168a4d8c63a5d63bd2dcdd8ef73f6fd0fe6bf4689f67cc734babea6f2d3bd9b99507c3dae736cfdffe
6de366d77ee24a6c66d58f9f8847da6da2a6b838dd8f61addedfcdf51bf99fbc83574aaec0fb199f97
632d3fe9b41a7a6e0cdadf67b9bf9bfe1147ec19dad95751b58ddc096bab2f2759b3db76e7fbd9ecf
d17b18adb31fd4dd66fb6b0e738ec0e207275dae1b9bbfe9a4a6953d2714e46faf2724df490d36bc9
9203986cafd52c67abbfd1f4dfef7ec5a032ea2fd81b6493b7f9ab00998fa5b36edfe528e0b3d1abec
e4daf35977e92e971702e7383bd580d7a1e5b29cc0da6c1706871901ae0d74b5d57bfdbf45bbfd56
7fc2d75da929b16e4d753b6b83c989f6d6f78ff3ab639a9df7d75d42d76eda75d18e27513ee635bbd
bfda55198e71b245aec8cabe1ae1b1c03990ff4ff00d1d6df731d4ee67fc6dbf99e9fa76adb00a776d
73b70d1a1a49d47e735253fffd0f55492492529249531666db6dc2a754c654fd8039ae713ed63f712
1ecfdf494dc4956dbd43fd253ff6dbbff4aa5b7a87fa4a7fedb77fe964949ec2f15b8b04bc03b47898d
3955701ae617b435c2b868dcf0d04bdbfa2b5dfa377e77a6cfcd44dbd43fd253ff6dbbff4b28d75673
0102dab5739dfcdbbf38977fa6494da4957db9ffe92affb6ddffa552db9ff00e92aff00b6ddff00a55253
61255f6e7ffa4abfedb77fe9645a9c5f531ee8dce682638921253349249253ffd1f5555de72df6b9b4b
eb6319021ec73c9275e5b6d4ac203e9b8d8e7d56860744b4b43b51e72125340f57a9af731fd4b0d
8e639cc76f616c39aef49ecf7e437ded7b99edfe5d7fe9141bd42aa0daff00b7e3936117398da5ee7
06bb650d77a4cbdd66dded6fe6fe7aba70377d235198e6a6f6fa3fe6a6fd9cc9262ad441fd133512d
77fd5319fe624a438dd43ed761ab17a8625f601b8b18c2e706f1b8b5b92af633ec7d53696978739a
4b4100ed7399f45c5fe1fbc8356036976fa7d3adc46d2e654d698fdd96a3d35fa4cdb3b892e71274d
5c4bff8a4a48924924a52a975d7d75dd906daeba69dce335b9c435825c7db6b3771fb8ada09a1de
e02c86b8925a403cf2929cf1d6f18807edd44168b07e89fab627fd2fe67e7fee24deb18d5b5adfb5d4
6a0d8177a6ed863dbb5b67abb5cefeaab8fc76d6d7da48300b8c31b263dfe0a3454fbaa0eb4b7d51
a5a031b1bdbedb0b7e93b639c3d9bbf31252f899273286e462e4d3752f9d963184b4c18f6bbd5f72
3e3d8eb71eab1c0073d8d7103892274516d36306d6d9b40e0068014eaac55532b06431a1a09e74
10929fffd2f55496756fea5e931b65569b76b43dfba9dbbb4def8fa5b377f21132aaeaafcb61c6b6baf
14306f691ef2fdec920963dbb3ecfeaff00d77d3494dd4967d6deb8da007bf1df70fa4ef70692056d6f
e67b5b6fe96cb3fd17f37eff00e7158c4fb7c3feda29991b3d12ee3f3b7fa8929b0924924a52492492
949a478a754b7f4d0e78b9d40b773b707966ee4fd2ddee494d8bea6df59acb8b64b5c1cd8905ae0f
6fd20e6fd26a861d7b2adeeb1d6bed87b9cfdb33b5acff0004dadbf98b1a96e6b19536dcde9d63d95
c5b616b46eb3fd26c6fd067f213b5b91e900ecbe9edb1b006c0d0c206efa4c7ee7ffa3fa1624a77e47
8a759388ea5a2efb6df8560ff0003e986b486c7bbd5dce76e76efdd5a189fd169ff008b6fe40929ffd3
efa8d9f60ab77a7eaed64ceedfbf637fb5ebee4dd53ed1fb4aadbf6af47d213e86ef4a7d6ab76ff47f49
eafa3bff00eb3eaff85f497cda924a7e8ca3f6b7d969fe95f4bf49bbd3f5636d5f67dfea7b7fe3b67f85f5
7ed2a7fe5add5cfda7d3db67adfd1e676b7d38dbfa4ddeafa9b7d3fd1ffd6fd35f3824929fa36dfdb5f6
eb7d1fb4ecf74c7a1e9f7f4767afff0007fe8bfc27f3eb757caa924a7eaa497caa924a7eaa497caa924
a7eaa497caa924a7eaa497caa924a7fffd93842494d04060000000000070005000000010100ffee0
00e41646f626500644000000001ffdb008400040303030303040303040604030406070504040507
080606070606080a0809090909080a0a0c0c0c0c0c0a0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c

0c0c0c010405050807080f0a0a0f140e0e0e14140e0e0e0e14110c0c0c0c0c11110c0c0c0c0c0c11
0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0cffc000110800d3015e0301110
0021101031101ffdd0004002cffc401a200000007010101010100000000000000000405030206010
00708090a0b0100020203010101010100000000000000010002030405060708090a0b10000201
03030204020607030402060273010203110400052112314151061361227181143291a10715b14
223c152d1e1331662f0247282f12543345392a2b26373c235442793a3b33617546474c3d2e20826
83090a181984944546a4b456d355281af2e3f3c4d4e4f465758595a5b5c5d5e5f566768696a6b6c6
d6e6f637475767778797a7b7c7d7e7f738485868788898a8b8c8d8e8f82939495969798999a9b9c
9d9e9f92a3a4a5a6a7a8a9aaabacadaeafa110002020102030505040506040803036d0100021103
042112314105511361220671819132a1b1f014c1d1e1234215526272f1332434438216925325a26
3b2c20773d235e2448317549308090a18192636451a2764745537f2a3b3c32829d3e3f38494a4b4
c4d4e4f465758595a5b5c5d5e5f5465666768696a6b6c6d6e6f6475767778797a7b7c7d7e7f73848
5868788898a8b8c8d8e8f839495969798999a9b9c9d9e9f92a3a4a5a6a7a8a9aaabacadaeafaffda
000c03010002110311003f00f7f62aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55
d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abe71d47f387cf23587b2b4d4b4b8ed6
7bdf3969d0badafa9e88f2b45ebc12126720b38056607e1e2792aa9c55522fcf8d5efb4cd475f4d57
44d25f4ad2e4bed4342bd13dd5d2c2fa4c57f05f4505b0f5a484cb27c4437a7e882bc96618aabe99f
9d7abdec9690c7a9595ddbdaead2e9faadc598b7bbbb16f25c59c5673c96d14c394320b964792d9
9d91da09024917a98aa56bf9ede67934d87d0d574a3acae99036a16ef106fab6a3fe22874a983a2c
aa548866a98d8d51c2b7434c5532d43f37fcdba15eebf6971aa6957ba87951ee6d357d12489e2d4
9ed22861962d5e3b684330847aad24d57f43d14a23acbd55615addfe85a8eaacb69ade89af5e4bf9
9168d1dddd4b12585c4173e588cb99440cca63664df8d51a445ef8ab28f2679dbcd7e5df236837b6
a26d43444d6f58f2e5e3411b5f412ddde5d48ba5cfa74eedc9b4d49d96d51dfe20bc397c11b1c55f4
65a25c456904779289eed23459e755f4d5e40a03305df88277a76c555b15762aec55d8abb15762a
ec55d8abb157ffd0f7f62aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb1576
2aec55d8abb15762aec55d8abb15762aec55d8aa17f4669a6b5b383e22c5bf749b97d9abb77ef8a
ae5b0b146e696d12bfa7e87211a83e956bc2a07d9ff0027a62ae16162ac8eb6b1078c831b08d415
2005041a6d4029f2c55a3a7d83070d6b09123191c18d4f273b963b6e4d3ae2aa9f56b7f55a7f493d
66511b49c47228370a4d2b4f6c5548e99a698d6136701893ec46624e22bd682941d31540ea1e5a
d3753d4b4cd46ecccdfa24b3da592cacb66653c78492400f0778e9fba661fbb3baef8aa718abb1576
2aec55d8abb15762aec55d8abb157ffd1f7f62aec55d8abb15762aec55d8abb15762aec55d8abb15
762aec55d8abb15483cd9e691e56b6b09134cbbd5ef353bc4d3ecac2c0dbacaf33c724b52d732c1
1aa85898925f154bacbce3e63babcb7b69fc85ad5941348b1c9793cfa3b450ab1a177116a0ee557a
9e08cde0b8ab30c558ff00983cc3ac68f710c3a6f95b52d7a2910bbdc69f2e9f1a46c0d3830bcbbb7
6a9ebf0ab2fbe2a93ff008e7cd3ff0096e35eff00a48d13fef258aab5a79cbccb717505bcde40d6ed61
9645492ea5b8d1cc712b100bb08f50772aa373c559bc14e2accb1548bcc1aeeada3c96e9a6f96b5
0d79660c6492c25b18d612b4a07fae5cdb93cabb700def8aa4a7cefe690091f973ae9229b7d6744e
fff006f2c55b4f3b79a5a4446fcbbd7111982990dce8a428240e440d449a0ebb62acdb15493cc1ade
ada39b6fd19e5dbdd7fd72c25fa8cb6517a3c6942ff5cb882bcaa69c3974de98aa5163e78d525d634
dd2b58f28ea9a2c7aa492416d7d75369b2c2268e179f830b5bb99c7258da87852bd698ab32c55d8
aa4de68d5afb47d285ce9b0c33dfcd7369676e972ed1c3cef2e238033b22b35179d7618aa5e92fe6
4725f52d743e151cb8dc5dd69de9583156538aa55ad37995443fe1d8ec64356fac7e9079a300507
1e1e923d7bd6b8aa501ff00333bc1a17b526bcffaa58ab61ff3336ac1a176afefaf3e9ff7562aca8568
2bd7bd3154b35a6f3108e2ff000ea593cbc8faff00a41e5450b4db8fa4ac6b5f1c5528e7f999da0d0a
bff19af3fea962ae57fccba8e706854ef49af3fea962aca85682bd7be2a976b0dafac51fe808ecde7e5
fbefaf3ca88129fb3e92b126be38ab1ebbd4bf30ed27b1b77b4d159efe76b68d85c5d00a560967a9f
dcefb4447d38abffd2f7f62aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb15
627e73b2bdbbd43c9cf6903cd1da6ba97176d1a9611422c2f139bd3a2f2755af8b0c558af9e3f38a4
f25ea9e72b0b9b3d3fd3f2c797a1f31d89bad4beab3ea0f29b9adb246d037123ea8ff001ab49f13c63
86e68aa79a67e656943489b58f335cd96991c42d3d486de792ede27b9d3e3be74940850ab22b3b
ec0fee17d67e1f12aaa91dbfe7669d7573e76d3208ed5b5af2d19e4d16d3eb2fe9ea96b6fa65b6a5e
a89442552ab700715f50f11cfe25c5553c93f9cd65afd95f5cf992dadf4936367a56a0f3595cbea56cc
9adc6cf0401d6189feb2a568f008cb51a375e4b262aca60fcc7f23dd406ead35bb7b8b4fab477ab73
072961786611b47c24452acec2688ac6a4c87d44f83e25c552993f357448bcc16d6b24d6ebe57ba
d39aed3592f2075bd4d461d37ead24263050fab32a1e4dc964aa3a2d3155da8fe6c795e36b8b2d2
afa19751820fad33de09edac9123d43f46c8b24e227e322ce1e311f1e45d78ed5ae2a9a5efe64791
b4e9ef6daff5bb7b79b4f34b9594b2efebadb370256927099d6293d3e5e9c8c11f8b62ac535dfcd2f3
125d6893f94345d3b57f2d7986fa2d234bd5aeb529acddef5a2ba9250d0259ccc8911b631bf321fd4
34f4fe1c5534b5fcd8f2ed8696979e73bfb2d1af9a5bb8a4b486696ed613a7b46972b238852860691
44cd4f4d3ed73e38aa6dff002b27c91f578ae8eb112dbcb74fa7891d64454b98e4489964e483d31c
e58d79bf143ea4746f8d6aab5e71f560bef2d6aa6376d3b4bd427bbd4a58d1a5315b8d36f1399540
cc7e3755a2826ad8aa1bfe56b7927fe5aaf3c3fe397a97fd9362ad9fcd5f248ff8fabbfa34cd48ff00d8
b62ac23ccff9b7a2dd6ada5f97675945aeabace98344d412cefd4335bdcc33cb15c472dba3235237

287

28e9ea4647f7862eeabdab15762aec55d8abcc97cc7ad79aff00357cc9e43b6d426d0f48f2a69ba65
ec92da2c26eaf6e7566b821835c472aac312dbf1a2a72791b77a2f12aa5b67e77d7fca9e6dd4bcb1
e68d4ff004edec9168365a2c4b14368b36a5a936a45d8944f815a3b45792bcf8f06f4d7e20a554f34
2fcd487ccf7775a6e87a35d5c6a9a3dda5879a2cfd48525d3a692e24b6d8b370982fa4d3128dfdc51
f773e962a83fc96f3dea1e75f2f11792fe93b8d2ee2f2c755d619a18d8dec17932080c11aa9056111
317e2a8dc870e5f162af4fc55d8abb154bb52b39ee6f3479a100c76776f3cf5342236b4b88453c4f2
917e8c55fffd3f7f62aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb15487cc9
ad5de9177e5e82d9119356d5134fb932024ac4d6b7135568451b944bd6b8ab08f3bfe4fbf9d354f39
5f5d5ce9c63f33f97a2f2ed8fd6f4efad4fa7c917d6bfd25646997957eb6c78288f748fe3eb8ab13f387
e5bf9cf4cb0b7834d9a3d4deeaface57bab6d3e597eaf1d9e8a74a9239225d42de464ba02859241e
9062ae1fede2a9b2fe4c7982e5af6ff00f4bd969f3ea771737cd62b652491da3de797e1d0fd156172b
c962f4bd407f6bec6df6f156acff22352d13454d1bcb7af59d8daa2e997c2ce5d304f6235ed2c24525
d8804f1fee6ee24a5c41cb97abfbe4995f9f3551777f91f35cdf7e90b7d661d3ae604b192dbf47d99b
5b692ef4b96dee2d8dcda24de8bc714b0b70e0b1cde8bfa2d3b2a02555ba97e485eea06fa55d721
82e35182f259d85a3baaea979aa5b6a82555338fdca3dac71fa55e6cbc9bd656c5546ebf24bcc135
95ec09e68b6371a8addfd6a57d35b8fa975ad9d694a2add8a04779232096e4a54fc3c4f25556f3f22
e5992da0b7d6912df48babbb9f2facb6ad2bc0ba9eab6faadd473b8994ca394063848f4f8abf293d5
7418aa6e7f2cf5d16be5db74d6ad39689e68bef34cced6521f5e3be9ef25faba8fac8e0545e3afa879
d7829f4c6e31549b58fc96d7b553ad0ff10da429aaaf99238bfd0246312f9956dd472ff4a01cc1e87f9
3ea72ff0075d31544ff00ca9ed6e4f34ddf99a7d76c5cea778f26a56526942e626b178ad55522f5e77
11ce8f6a19672aeb472ad0b71460abd1758d4ee6c350d0ad600a62d4af5ed6e39024845b4b89c15
208a1e512f5aed8aa718abb15627e61d3ac749b98bcc96b101ad5dea1a6da497b29334896f3dd43
0bc517a9c8448ea7e258f8863f11f8b7c559662aec55d8abb1548b51f28685a9eb50f98e5864835f8
2ddac5752b49a5b59dad1dc48617689979a061c955f9706f89389271541cdf975e519ee64bc9ac59
eea45b11ebb4f3b488da4bbc96922317aa491b4921f517e36e6dccb06c554a2fcb3f26dbeaf0ebd6
d6125beaf172f56e60bab988dc9699ae2b74a9285b82257675f5c49c598f1c5557cb7f979e53f295fc
9a9797ecdeceee6805a5c30b89dd6589669675f511dd95995e6938bb0e6aadc3970f87156538abb
15762a966a9733c17da2c513f18eeaf5e19d680f2416773281bff00948a7e8c55ffd4f7f62aec55d8a
bb15762aec55d8abb15762aec55d8abb15762aec55d8abb15635e6fd1354d5ce8575a4180dce8d
aa47a934374ef1472c6b6f3c0c9cd12420fefb90f87f6715445b5c79cda78d6ef4fd323b62e04af15f5
c49204aee555ad10134ec587cf154f7154af5497cc71ca8345b4b2b884afef1af2e65b760d5e80470
4c08a7b8c5503f58f3dd4d34dd229dbfd3ee7fec8b155f04fe7633462e74fd292dcba895e3beb8770
95f88aa9b450481d0547cf1551b3f3a69d79e77d47c8d14330bfd36ca1be92e8ad2ddcccd47855bb
c91ab42ee3f9678f154d353935e468ff00435bda4e841f58ddcf2c041db8f111c32d7bd6b4c552f13f
9e7bd8693f45edcffd9262ab84fe76e4bcac74ae35f8e97971503dbfd177c553fc5501a9beb4823fd0
f0daccc6beafd6e692103a538fa71495f7ad3154925d3bcd1aa6aba2dcea51585b59e9774f7921b6
9e69a572d6b35b8401e18c0de6a93cbb74c559562aec552af3168cdaee9a2ca3b93693c7716d770
5c70128596ce74b84aa122a094a1dc6d8aa1469de6da8aebb6c45771fa3e9b787fbd18aa7f8aa03
52b7d5ae047fa2efa3b22a4faa65b7facf20694a7ef23a53e9c552ff00d1be6dff00abf5b7fdc3ff00ece
31577e8ef367fd5fadbfee1ff00f6718aa7c2a00a9a9ee7a62a83d4adf53b848c6997b1d93a9264692
0fac065a74039a53154bbf4779aff00eafb6fff0070ff00fb38c55bfd1de6bffabe5bff00d207fd9c62a9e
0a802a6a7b9e98aa0f5183529e345d32f23b390355de483eb01969d00e694f9d71549aeb41f32ddc
d653c9aec01ec673730f1b0a02cd0c9010dfbfe9c656fa698abffd5f7f62aec55d8abb15762aec55d8
abb15762aec55d8abb15762aec55d8abb15762aec55d8abb15762ab2596382279a5609146a5e47
6d82aa8a927e43157984697161e5fd1bf30a58266bc6d4db56d4210e03a69dacb7d5d8301b32dbc
0d0c8475ff0047f1c55ea58abb15762aec55d8abb15762aec55d8abb15762aec55d8abb15762aec5
5d8abb15762aec55d8abffd6f7f62aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55d
8abb15762aec55d8abb15762ac57f3014df6849e5b5a97f31dc45a4c8aafe9bfd56725aeca9eb516c
929db154f6ff4ab1d4749b9d12e62074dbbb77b39615f847a12a18ca8a74f84d36c5529f22ea736a5
e59b45bd9124d574f32699aa146e54bcb07304b53d7e229cc57b30c5591e2aec55d8abb15762aec
55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb157ffd7f7f62aec55d8abb15762a
ec55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb15762ac63ccde5bd6758d4f49
d5747d5e2d327d2d6e42adc592df233dcaa273159622acaa194107ecc8d8ab1d2bf9963cd4be5e1
e6ad3cc274f3a87ac7463cb909c45c282f40a50d715647e53f2e6b1a15c6b175abeab06a52ead711
dd14b5b21611c72242b0bb15f5a62cce234e46a3ecf4c559362aec55d8abb15762aec55d8abb157
62aec55d8abb15762aec55d8abb15762aec55d8abb157fffd0f7f62aec55d8abb15762aec55d8abb
15762aec55d8abb15762aec55d8abb15762aec55d8abb15762aec558a1ff00c9969ff6c27ffa8c5c5
595e2aec55d8abb15762aec55d8abb15762aec55d8ab4011d4d7156f15762aec55d8abb15762ae
c55d8abb157ffd1f7f62aec55d8abb15762aec55d8abb15762aec5587c1e7d92f4cefa6f95f59beb48
6e2e2d05dc2b64b14925a4cf6f21412dda3f1e68c012ab5c5557fc63a9d683c9bae7b1a69d4dbfe8f
b155e3cdbaa1247f83f5adba1274edff00e9f7156c79af56240ff07eb22b5dcb69b414ff00a3dc55b3e
69d5bfea51d5cff00b2d3bfecb71571f34eaf5a7f84757f9f3d3bfecb71577f8a357dff00e751d5ea3fcb
d3b7ff00a7dc55dfe28d63fea50d5fa57ede9bff0065b8ab8f9a358ad07943563efcf4dffb2dc55bff001
3eb1ff528eadff2334dff00b2cc55a3e68d607fd321ab7fc8cd37fecb7156ff00c4fac6dff3a8eadbf6f53
4dffb2cc558e9d635f3e7e4d47fc21ab7d5bf43341cf95871f53eb6ad4e5f5be35a6f4af2f6c55927f89

758ff00a94f54ff00919a77fd9662aeff00126b1ff529ea9ff2334eff00b2cc55dfe24d63fea53d53fe466
9dff6598abbfc49ac7fd4a7aa7fc8cd3bfecb31577f89358ffa94f54ff919a77fd9662ae3e64d63fea53d
53fe4669dff6598abbfc49ac7fd4a7aa7fc8dd3bfecb31568f99759ede52d50f8fef74effb2cc55dfe24d
67fea52d529ff001974effb2cc55dfe25d67fea52d53fe46e9dff006598ab7fe24d676ff9d4f53ff91ba77
fd95e2aada6798e5bdd4ff44dee9179a5dd340f7511ba6b67478e2748da86de1610000026060f002
220574d464301000000000001000000000000000c0000000020000098240100986401006968417
5ea062a9ee2aec55d8abb15762aec55d8abb15762afffd2f7f62aec55d8abb15762aec55d8abb157
62aec558afe5e7fca3927fdb535affbaadd62acab15762aec55d8abb15762aec55d8abb15762aec55
d8abb15762aec55d8abb15762aec55d8abb15762aec55219ff00e533b1f1fd1779ff005116b8aa7d8
abb15762aec55d8abb15762aec55d8abfffd3f7f62aec55d8abb15762aec55d8abb15762aec558afe
5e7fca3927fdb5359ffbaadd62acab15762aec55d8abb15762aec55d8abb15762aec55d8abb15762
aec55d8abb15762aec55d8abb15762aec55229ff00e532b1ff00b665e7fd445ae2a9ee2aec55d8ab
b15762aec55d8abb15762aff00ffd4f7f62aec55d8abb1562771e7fd3a1bab9b5834ad62f7eab33db4
b3d9e9b713426588f170ae168d43b5477c5567fcac1b5ffa97fcc1ff00709b9ff9a7156bfe5615ad2bf
e1ff307fdc26e7fe69c55dff2b0ad7fea5ff307fdc26e7fe69c55dff2b0ed7fea5ef307fdc26e7fe69c55dff
2b0ad7fea5ff307fdc26e7fe69c5520f26f9c1b4ad15ed2fbcb7e608e737fa9dc05fd1570dfbbbad42e
278cd40ee8ea7154ff00fe5615affd4bfe60ff00b84dcffcd38abbfe5615affd4bfe60ff00b84dcffcd38ab
bfe5615affd4bfe60ff00b84dcffcd38ab63f302d8f4f2febfd69be95703f862ad0fcc2b63ff4cff983fee15
73fd3154ebcbde61d3fccda7b6a3a72cd1c71cf35acd0dd44f6f3473db398e4474700821862a9b62a
ec55d8abb15762aec55d8abb15762aec55d8aa0759d5adf44d3a6d4ee92592184a2fa76e86595da
5758d15147525980c55223e78a123fc37ae9a0a9ff42ffaf98ab9bcf05481fe1ad74d69d2c81ebff3d3
156cf9dc800ff86f5cdfb7d4857fe4e62ae5f3b3353fe75bd705403bd981d7fe7a62aeff001b37fd4b5a
e7fd21affd55c552d93ccd74fe66b4be5f2d6b5f568ec6ea06736a8009249add946f2f7087154e3fc5
d20a7fcebdac6fff002ed1fe3fbdc55aff001749ff0052eeb1dbfe3da3efff003d7155c7cdb2aa963e5ed
636ec2de327f0971577f8b25ffa97b58ffa478ffeaae2ae3e6c946ffe1ed5fa576b78fbff00cf5c554e4f3
b5adb4d6d1ea1a56a5631dddd436315c5c5ba88bd7b970918251d880cc42d694c5593e2aec55d8
abfffd5f7f62aec55d8abb15487ca7fef1ea1ff006d4d47fea2e4c553ec5527f34f9a344f266817de67f3
25d2d9689a72096f2e9c121159820d8549a96031574de66d2e0f3258f959cc9fa4f52b2b8d46cdc4
6c60782ce486397f7a3e1e40cf1fc3dc357154df9ad48e42abbb0af41ef8aa513799b4ab7f3258f95a
4671aa6a36573a95a9084c2d6f6524114a7d4e8086b88f6efcb154c27bfb1b69adadee2e238a7bc9
0c36b13b05696454690aa03b921559881d862a91f9b3cefa47936ccdfea90ddcf6b1dbdddedc4b65
6ef72b0db5846249e494a6ca141dabf131d94138ab5e5bf3ad879a2e5e0b1b0d4608d214b917579
68f6f6ef1cca8f1f091b662caf51c7c1abf12d31564624463456049a9001af4d8e2adab2b8e48432f8
8dc62ade2ac37f2e7fde3f307fe043ac7fd45be2accb15762aec55d8abb15762aec55d8abb15762ae
c5521f387fc70cff00cc5e9fff0051d062a9f62a95799b5b8fcb3e5cd5fcc7342d7106916771a84b046
42bbc76b134acaa5a83910a695ef8ab16f2e7e6ae97acea575a46a96536897d6ba3d9f98d9ae648
a5b73a6df9754732c4c423ab46cad1bf13fb49cd77c5514df999e5dfd3ba7e9a93c5268ba8e937fad
c3e615b887ea2b0e97716f6f3a39e5552ad70bb9d85194fc43155fa97e67793ac55238355b4b9beb
9d3ef755b084dc470c535be9cc1262679088e30ae7831761c4f2e5f64e2a99daf9d3cab741c45ac5
9b490dd0d3ee112746f4af4c267f41883b3fa63d4a7f27c7f6715627e6dfce1d3fcbda3dd798f48d2e
6f31f96f4f8bd4bfd574fb8b610c739b85b616dfbc903198170ccb41c537aeea3154e2cbf306ca39b5
287cd696de593a635ac737d7b51b363cefa47482a124aa09388f48bf1f5096551c91b154cb4ff003d
7933567f4f4cd7ec2f1c5abdf9582e62908b489fd379485634456f858fec9eb8aa67a4eb1a5ebb649
a968d7915f5848ce8b7103874e71b1475a8e8558156077071546e2ac47f3096ba768c773c75fd14
ec69ff001ff08fe38ab2ec55d8abb157ffd6f7f62aec55d8abb15483ca5fef1ea3ff006d5d4bfea2e4c55
3fc5582f9e7cb7acf9c355d2f42ac969e5248ae6e753bd896d26f56e593d086dda2b9590f0e324921
6119f8d63dc62af26b7fca7f396a1e5ef2d681e6cf2fc7ae41e5ad375ff2cd8cb7d79019dad6f1ad574
bbe919588578e18384e632d2a49f1c2adfb2aa267fca9fcd106ea0b6be1756e874e9eebf484b1b49
7f269d796725c450dcc7fbe5835086ddfd6b7b9564865e0b1bfa2f262ab2f7f29bcf575a86bcf6d64b
0e97afe97e6eb7d3ace5ba8d934a97cc11e9c6da12016a299ace5964f479c713ce38721c9b15466
a5f971f985adea326b8ba75b693a94faadd5e5a39bc4966b15bef2c26922e0322539c37518918466
ac28cbf162a98e93f97de6ab2fcabf38688ba22daf9ab5fd1bf44b5bb6acf7b0dc5f2d9358fd6434815
228c82ad50beb48abfbd5e61462a84f397e5c79d75dd196cacb4c4f5e5f239f2eca1eee240ba97d66
da440483ba2089d8483f986dd68aa13ccbf953e73bebcd4e6f2969b06837373addc5de9da825c45
19b6d3ee3cb8da6950223c9435e37ace89ff197fbddb157a7fe5ae8177a269b7935fe8dfa0afb5299
2e2eec7f48bea8beb470a42ceac42a22911a8011579539bfc6c71566f8ab0dfcbaff0078bcc1ff0081
0eb1ff00516f8ab32c55d8abb15762aec55d8abb15762aec55d8abb15487ce3ff1c33ff317a7ff00d4
7418aa7d8aa43e77d1afbcc7e4df30797b4d78a2bfd5f4ebad3e096e0b0891eea16883b700c68bca
bb0c55e4317e46f9a74bd16eb44f2e5f695a7e9dab5ae9773a9d83a4f2c316b9a1c903a4b03288d8
db5d2c0a93c2dc7d3359613c99c3aa89d67f27bce178b1be8b2e83a34bfa2f56b67862b7927b65be
d66f6c6f246e12a1f50136479ccffbcf526f5425635e4ab777f93fe759b4ad5b4d8eff004ba6a7a7f9a7
4bac9f5b7e29e669e2ba8e42d2176668a45657e55e6bc5fed557154d359fc97b9d6ff4c336ac2c46b
3a043a74d6f0ab49026b715bb59fe90a1285ffd1cac1c4d2b1afecb6f8aacd7ff002b7ccbadfe587983

289

ca90a687a67993cc72c135e4b651dc258fa90bc25a57660d34aecb0aa8e54e2bc52bf05595779e7f
2bbcd5e6ed5b58be866d320b7d513caf48e433b3ac9e5bd55b52979523a112091a34f0a726eb40a
b1dd53f223cdfa9c77902ea9a6db2ddeade63d5fd40277a0d6ee20bab789d02a735578384e392f34
6f87e218abd83c95a04fe5fd2a58af2d74fb3bfbdb892f6f61d251d6d8cf2850efce5f8e476e35691c0
27a536c5591e2ac43f31031d3347e22a06bfa1f2f97e91831565f8abb15762afffd7f7f62aec55d8abb
156136571e71d166d42cedfcb6b7b6925f5d5cc178b7f0c41e3b999a504a3af20472a118aa2ff004f
79dbfea511d69ff1d283a78fd8c557fe9bf39f127fc28bc8745fd250efff0024f156bf4df9d36af9513de9
a943ff0054f1577e9bf3affd4a89dffe9650ff00d53c5577e99f3a53fe5178be5fa4a3f1ff008c58ab6758
f3976f2c4476ff00ab947d7fe44e2ad0d67cea4d3fc2f081e27524ff00aa38aaf1ab79cb7ff9d6e01e1f
ee497fea862aefd2de72ad3fc376f4ec7f492ffd50c55afd2de74ad3fc376d4f1fd263fec9f156c6abe72
3d7cb96e3fede43fec9f156bc93a3ea7a3e9fa80d59228aeeff0054bfd44430c866548eeee1a4452e
552a42915db1564b8abb15762aec55d8abb15762aec55d8abb15762a94799ac6f751d1e5b6d396
37bc12db4f1473398918dbdc473152e15c8a84a5789c550ffa43cdff00f562b4ff00b88b7fd92e2aefd
21e6fff00ab15a7fdc45bfec971577e90f37ffd58ad3fee22dff64b8abbf4879bff00eac569ff007116ff00
b25c55dfa43cdfff00562b4ffb88b7fd92e2a93379e3594f3527939b46b61acc962753453a8308da01
2fa240636b42e0fc5c47ecfc58aa72750f37d36d0ad2bff6d16ffb25c55dfa43cddff563b4ff00b88b7fd
92e2adfe90f36ff00d58ed3fee22dff0064d8ab5fa43cddff00563b4ffb88b7fd92e2adfe90f36edfee0ed
3dffdc8b7fd92e2a966b767e6af30269f672e9b6967041a969f7d3cff005d69488ec6ea3b860a82dd6
ac42506e3156638abb15762afffd0f7f62aec55d8abb15762aec55d8abb15762aec55d8abb15762a
ec55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb15762aec5
5e5132fab613fe68bc3e9cd6bad7e9081e606465d12dc7e8d95900fb2b25bfab72078b296c55eae0
d771d315762aec55d8abb15762aec55d8abb157ffd1f7f62aec55d8abb15762aec55d8abb15762ae
c55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55
d8abb15762ac7fceda8cfa6f96ef0d9baa6a779c34fd34b371ade5f38b7877ebb3386dbb0c5530834
6b083448fcbe91d74b8ed45888493fdc2c7e971af5fb38aa55e43b8b97f2ec5a6df4cf73a968b24ba
4de5c4a38c92bd937a6b2b53bcb18497fd9e2ac9715762aec55d8abb15762aec55d8abfffd2f7f62a
ec55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb15762aec5
5d8abb15762aec55d8abb15762aec55d8abb15762ac6bcd7a06afad4fa3dd693756704ba45d35ea
c3a85abddc2f2985e1460239a12ac9ea3153538aa5125d7e67c7acc1a48bcd01fd6b69ae84a6cef1
29e8c91271a7d69ab5f52b5af6c5533f2b689e62d3754d6b53d7ae6ca56d59ade510e9f14d122cd0
4661776f5a492a5d1625da9fddfbe2aca715762aec55d8abb15762aec55d8abffd3f7f62aec55d8ab
b15762aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb15
762aec55d8abb15762aec55d8abb15762aec55229ffe532b1ffb665e7fd445ae2a9ee2aec55d8abb
15762aec55d8abb15762afffd4f7f62aec55d8abb15762aec55d8abb15762aec55d8abb15762aec5
5d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb154af5ed7ecbcbb691de5ec77130
9654b7860b3824ba9e495c1202c712b31d9493b7418aa48bf98562c69fa0f5f1b56a747bc1ff32f15
6ffe56059568343d7fe7fa22ee9ff10c55a5fcc1b36aff00b81d7c53c748bb1ff1a62ab8f9fed0007f416
bc6bb5069375ff3462ad7fcac0b4efa0ebe3703fe39375dfe4b8aa4971e7bb7ff0017d84e343d78c63
4dbd4651a55cd6a67b420d38d7b1c553bff001fdb569fa035effb85dc7f4c55dfe3fb6dff00dc06bdb7f
daaee3fa62aeff1fdb7fd5835effb85dc7f4c5577f8f6dffeac3aeffdc32e3fa62ae1e7cb73ff004a1d747c
f4c9ff00a62aafa7f9dac2fb52b5d2df4ed52c6e2f0ba5bbdf58cd6f133c71b4a579b0a03c5588af862a
c9715762aec55fffd5f62796351f3d799fcbda779812ff004ab44d4605b85b6fa85c4be987dc2f3fae2f
2f9f118aa6c6cfcf9c811ac695c7b8fd1b7153b78fd7bc715435ddd79c3479ac26bdbed3aeecee6f6d
ed26862b29a09385c370255cdd4801077dd4e2acb71579df9bbf362d7ca3ae6ada3dce8b77771e8
9a27f89b50bc865b548c69c259227282696325d0c4c4a9e351f6496f871551b9fcd9b85d534cd36c
7ca7a8de0d72def2fb42984b6b0fd6ed6c238647711cb2aba1613a7a6b22ab377e38aa3fcbff9996f
e67d6aef4cd2749b996d34fd424d2351bc2f0abda5e4307ac45c5b17f5a346fb08fc7e3346feed95ca
a997927ceb0f9cf4ed4b515b1974d5d2f52bed22e23b978d899b4d98c133831b30e1cd5b8926bc7
7a0c55d73e7cd19358d034bb174d46df5db8bbb317f6b3452436f3d9da35e15968d5ab468694e9b
57638aa64be6af2cbdb0bd4d62c9ad0c9e889c5c4450ca53d4e3cb952bc3e3a7f27c5f671546c3a9
e9d71772d85bddc32dec1bcd6e922b48801a7c4a0d46e7154562aec55d8abb15762aec55d8abb1
5762aec55d8abb15762aec55d8abb15762a907997fde9f2fff00db563ffa879f154ff15762af19d73f3a
752d1bcedaf794e3b1b2bcb9d2351d12c6cb4b8e6906ab7f6faca46d2cb04415abf560ecf27c3c3d3
466778b15649e69fce5f287952d759b8bc5bdb89746591a4b782d64e570609ededa616e64e0b27a
525d4424a1a0e5df8b62abacbf357427bad6ad2e2e0dcdee9fa9be990e99636976d7e1a1b286f244
785d01768d24e6ef1728b8b46bcbd46e38aafb6fce5fcbebdd52d34bb2d465b992f1ac522bb8ad2e
5acd5b5684cf67cee3d3f4d7d65144ab7dbfdd9a3ed8aa06fbf3774db85d1a4f2ba7d77ebfac69fa5d
dc5791cd6922db6ab0493413c6245068e1015e43a72ad08c55239bf357ce967a979d6c350b1d26d
a1f22db69b79ac5e72bc99043a95a4b7123a470c6eec2dcc7baaad654a91c0ed8ab28b8fce3f2559
ea27479a5bd97524ba8f4e912df4dbe96337f35a0bd8a057584a969613ce2a1a378e2aa963f9c5f9
7ba94fa1c167abac87cc2201a69e0ea0c978b23431480806391fd27015c2fc4bc5a8ccbc956778aa
41af0aeb5e573e17f3ffdd3eeb154ff0015762aec55ffd6f5a7942fbce9e59f2c697e5fb8f255edc4fa6c
0b6cf3c37ba67a5218ea39273b956a1ea392838aa77fe2af377fd489a87fd26e97ff006578aa12eeff
00cd5af5ce99673794aef4db78afedaea7bcb8bbd3e48d23b77e67e186e24724d28005c559d62af1
9fcc3fc94bcfcc2f3bde7986f2eedacec868b6da76897718692facf52b2bd6be8ae4c6e8629222cdc2

4858fef23eff0017c2ab2397cabe74d47cdde46f356ab2697eb797ac750b5d6e3b66b85134fa92c0a
cf6c190d157d00c15cd7e2e3cbe1e4caa4979f963e6cbef3ce9fe7b171a4d979874993500bac59a5
c433ea7633473476563a8c49c5648e12f1bbbf366e517ee522e67154c6d7f2b6f5ff2cbcd1e49bed5
16db56f364dabdedddfda21921b6b9d6679272b1ac854c91c65c2d1b8fa8a0fd9e58aa1ef3c81e74
d526f2fea5792e856dac58dcde5ceacf696b288246b8d2a4d323711bd4cc4730ecb2951e9aac00f1f
8f156307f23fcdf3d8cd0cfab5943a9ca34f96db56b392ee1bab2bdb2d3dac1e688b734923706925b
3c7e84b0b340551555b1567de58f22eb1a179df58f334ba928d275485964d2622ef14978d2231bb5
5907fa33b2af19a3859a29da9295475f89567d8abb15762aec55d8abb15762aec55d8abb15762ae
c55d8abb15762aec55d8aa41e65ff007a7cbfff006d48ff00ea1e7c553fc55d8abcc358fc9ab4d675cf
30f98a5d6ae6db56d5eeb4fd474cbcb58e28ee34bbcd2a2f46192ddc83c95e32d1ce92065963774d
95b154bb5ffc84b5f32b5fcbaaf996fa4b8bf4d411e6586d83a0d4a4b49e8199198a432da21891988
58ff75d3e2c5530b1fc9b4d3fcc77de6fb7d7ee07996ef5397568ee8c10fa71bdcd8c3a7cf118a9468
de3b789b73c9654e41b8fc18aa8da7e46693a6a3dae95abdcd9e9ff0058d16e62852388c88da082
5292115acaec5e46a6cdf6388c55da3fe47d9e90fa7bff0088b50bc7b2bad2ef6492e52d9a5b99b45
5952269a4589599a4597f7ce4f3771ceab5c5532befca8b7bed43cff7d26b170a3f306c20d3350856
28a96f15b4125b2b424824b7a72bd79f2f8a87b53155a9f94d6c9a9aea8759b969c6b161af14f4e10
867d374e1a6a4668b5e0f1a867df973fb2c07c38aa0bc8df92563e409edff0043f982fe4d3d238d6ee
ca74b6613c96f2bc91c82411078f67e1208c8122aa74f8b92af53c5521d77fe3b3e59ff0098e9bfea0
2e7154fb15762aec55fffd7f7f62aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8a
bb15762aec55d8abb15762aec55d8abb15762aec55d8abb15483cd56faa490e9d75a4d98bfb9b1b
e8ee5ad4cab0168c2491b51dc71a8e75a1eb8aa05bcc1e760471f27123b9fd256c3bfcbc3155c75ff
003a52abe5062dbec751b61fc0e2ae3aff009d3b79409ffb795b7f4c5560f3079e2a6be4df86b453fa
4edaa453ad38e2ae3e60f3cd053c9c39102a0ea76e287fe00e2ab5bcc3e7d07e1f26291bff00d2d6
dc1f6ff75e2ae3e61f3ef6f2629dff00eaeb00dbfe45e2adb7983cf7c6abe4d52d4e8754b71bd7fd438
ab6baff009ecd797939078535480d7fe498c5571d7bcee054794549f0fd2707fcd18ab7fa7bcedb7fc
ea2beff00ee4e0dbfe131552493cd7ab6b9a3c97fa0a69ba7e9f3cb7135c9bd8e763cada68554468
80ee641df156618abb15762afffd0f5bfe5cf95bcbfa9f91741d4350b08eeafaeace396e2e252cf2492
3d4b333135249ef8ab323e5ad04d943a71b088d8dbb349040455559ebc88af8d4e2ac7b5ef2e687
a4369179a5d8c76975fa5ac87ab0828d4925e2c2a0f42090474c559b62af9dbf3a7cf3e61f2b79cf5e
b6b1d4350b6d3d3ca76b756735b4d1c567a76a975a9c9691df5d7a81c881688263e9ccab186631f
ede2ac8f56b2f3245e78f25f97ae7cd1a81ff12e9faddcead3594fe9c0b736d059fa4d6ab4f8238da47
68d4f2e5cbf79cf1543697e65f3068ff98ba768fe6fd46f2e34dd7353ba8fca9e61d3a58e6d1efa386d
24e5a6de5baef6d710fa52482415599e36fde035882a9e7e5f799b50b6f2779d35ed6af1ef8689ae7
98a2b79350b858516cf4cba95218da693e1445440a646e9f69eb8aa4337e65799bcc1e69d063f2e
d988aeecb52d5b4bbfd32e2ee5b6b3bcf4f45b7d4a176636ece00fac4617945d7937d9c555754fcf9
7ff000d6a3a85969a34cd55fcad3f99b418b5367e174d0d88ba748de3431b9818f19a2e6b2f10b2f0f
45c3e2ac85ff32b5b8352d66c6e349b28ed7439f4bb09efa4bf915a7bad5e3b768c4508b624d0cc57
872e72371541f1fc2aa1fcabf9bf3f9c6ea5d3f48d1d23d434f86dae75786f2ec40122bad46eb4fac2c
633ccafd52594f209fb11579b1e2aabe83f9957c3f2a9ff00307cc96f035ca4f751082d58c7110ba8c9
65002d203c06c9cd8d682afed8aa4be72f38f99742fcc0f293dfc91d858259f9aa7bfb08afbfd06ea2d
32d2da7b6967778d444473627903e9d49ab0c551b2fe75c5670dd5c6a3a61b4b2d37583a1ea9a9
ca665b4b766b6b5ba8659bf73ea451c82e963f5248c471c8bfbd645756c5594f957cf76fe63d7f5cf2
ecb0fd4755d19ead6537a8b3c96cf34b1c3729c902490caa81d6485e4552c629384887156618abb
15762aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb157
62aec55d8abb15762aec55ffd1f4ff00e5eff887fc13a1fd57f4ff00d5beaa9e97d53f40fd5f8ef4f4feb3f
bde3e1ea7c7fcdbe2ace2e3f4e7e86b4f4ff4d7d77d46f5bd2fd0df5de3534f57d4ff0047e3e1e97c5d
397ed62ac7752fd3bf5ad17ebffa6feadfa52cf97e90fd0bf57afa9b72fa97ef6b5fb3c76afdaf87157a4
e2af27d6beabff2b3fcc1ff0028c7d6bfc28f5faffd67f4b71e727fbdbfee9fd19e34f8bd4f53154af40fd1f
f00a57f2a78ff0085797e89b9f47ea5f5ff005bfbb8ff00e387cb6faad7fbdf57fdd5e976a62a9449f50faf
6a5c7fc09f58fad799fd5f5febdf57e1c2e6bf6bf75f5aaffc753d3f8fd3f5b8ed8ab33d37d0ff00952daaf
a3fe16fabfd4754e3cbd6ff000d71acdfef6fabfbde1ff2d9cbe3e5eae2ac074bfd1dc5ebff002aff00d3f
d2294fa87d7fd7afe878f8f2a7c5eb53fbdfd9fa8f0f53e2c5595eb7f56f5b5aaff0083bd5fd1d79ea7d7
beb1e870fd0b17f7b4f83d3ff7f70f8ff477a78aa4cff51fd05e68e3fe06e1f5cf2efa9eb7d77ead4a5bf1f
adf2f8bd7ff00ab7f0ff8a79e2a86f2efd57fc4de53a7fcab8e5caffd3fd1bf59faf72fd28fcbea55db8ff3f3
f87ebb5f4f1565b63e8ffcaabf36f0ff0007f1f5357e74f57fc35cbd592bf5fe7bd3fe5ab8fc3cf9f1c5585d
dfd4bf45796a9ff2aeff00e38de60f4beb5f5cfaa71faa2d7d0aff00c7b7fd5c7d4f8fd1e18aa2f42fa97d
4f52e3fe00a7d6070fa97d6fd2afd4ecb8fd7b97ed53fbce7f0fa5f55e7f162af45f24fa1fa66f3d2fd09c
bd07f53f45fadf58afd726e9eaede8ff00370f87eb3eae2acf315762aec55d8abb15762aec55d8abb1
5762aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abfffd90
000000840010824000000180000000210c0db01000000030000000000000000000000000000001
b40000040000000340000000100000002000000000000bf000000bf0000af430000534303000000
0000008000000080fe7fe9430000008000000080ff7f8c432100000008000000620000000c000000
01000000150000000c00000004000000150000000c000000040000005100000080260100000000

291

0000000000d201000018010000000000000000000000000000000000005e010000d3000000500
00000100400006004000020220100000000002000cc00d301000019010000280000005e010000d
30000000100080000000000000000000000000000000000fa0000000000000000000000ffffff00fdf
dfd00fafafa00fefefe00f9f9f900fbfbfb00fcfcfc00b5b5b5003a3a3a00eeeeee00a6a6a600585858007
4747400777777007e7e7e00dadada00f8f8f800d9d9d90034343400f1f1f100e3e3e300212121009
9999900f0f0f0008c8c8c002b2b2b00ededed00f7f7f700f6f6f600e6e6e600e4e4e400b9b9b900bab
aba00c6c6c600a8a8a800aaaaaa00a5a5a500b8b8b800dcdcdc00a2a2a200d3d3d300b7b7b700f5
f5f500a9a9a900d2d2d200cfcfcf0098989800e0e0e000f2f2f2008e8e8e00b0b0b000ececec00a3a3
a300adadad003b3b3b00e5e5e50014141400d4d4d400ebebeb00bdbdbd00d1d1d100bcbcbc006d
6d6d00b4b4b40031313100646464004a4a4a009b9b9b009a9a9a0078787800636363002929290
0afafaf0071717100d0d0d0005f5f5f00cecece00555555008a8a8a0069696900323232006c6c6c00
6e6e6e009c9c9c0093939300c7c7c7007a7a7a007b7b7b003f3f3f009f9f9f005d5d5d006b6b6b00e
9e9e9008d8d8d00acacac004d4d4d004e4e4e0057575700808080005e5e5e00bbbbbb006565650
052525200dfdfdf00eaeaea00818181002c2c2c00c9c9c900f3f3f300838383009292920067676700
484848007c7c7c005454540085858500e7e7e70035353500424242008b8b8b0041414100efefef0
09d9d9d00565656008f8f8f00606060007575750087878700707070006f6f6f00868686001610000
026060f002220574d464301000000000001000000000000000c000000002000009804010098640
100737373004b4b4b00b3b3b300767676009696960040404000a7a7a700373737002d2d2d0051
51510061616100c3c3c300c8c8c80011111100d7d7d7004c4c4c00e1e1e100e2e2e200b2b2b200
68686800828282000a0a0a002323230047474700434343001b1b1b0024242400dedede001d1d1
d005c5c5c003939390017171700363636003c3c3c001a1a1a00a4a4a4004949490053535300f4f4f
400e8e8e800c5c5c500d5d5d500bfbfbf00c4c4c400c0c0c000cccccc00cacaca00bebebe00c2c2c2
00c1c1c100b6b6b600cbcbcb00dddddd0089898900909090009595950091919100949494009797
97009e9e9e006a6a6a00454545003d3d3d0046464600444444004f4f4f00505050003e3e3e00626
26200dbdbdb00848484007d7d7d00797979007f7f7f00666666005b5b5b00d8d8d8000e0e0e0072
72720012121200a1a1a10013131300d6d6d6002828280059595900ababab00101010000c0c0c00
88888800b1b1b1001c1c1c0038383800a0a0a0001f1f1f000f0f0f005a5a5a00cdcdcd00333333002
e2e2e0030303000262626002a2a2a0018181800aeaeae00161616000909090019191900252525
001e1e1e0022222200080808002f2f2f002020200027272700151515000d0d0d000b0b0b0006060
600805719ba325e7d5e4f887a01d04f5e324fba5ebdb9cb40040101010101010101020103010405
01070101010702010101010401060102010404010601010201010201010101010301010202010
204010401010401070101070101010301020101010701010101010601060401011d0101020101
01070104020401070204020101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
010101010000d2e4040601070104040402010101050101060106044b5f04010101010101010101
072926269f011d206c114b65262904064dac54eb1c012de03001010201019465348f920122eb290
103103c4d0201ad6c9fb05602062eb77aaf14016cae1c071156d00101070269401f019fae561b756
531293818b54b011d3aae9f0201040101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010100008722010401010201010201020101010101010102014d5f0101010101010101
010401d0a64e6d017f1a4b0112e8503b011b1655926ec65d624f671f040107abf00e54a63ea78dac
549602ce3abe7d04a27d29c26e04c9efbdcd13100d8c6eba05368b86aa0401b29a4cca90ab9e8e6
9e6cdbcdeac88568a6eb58075632a0104040101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010000d2b2010604010401020101020102010401070102012e2c010101010101
01010101010789cd0172ec3d010107891704014d980301c991b52baa8b49010501abe6b3309e02
55d2016d7327c934c747aa483401a15f01c9e51486d8b1f8b204ad38ba8e030101044ac0011d120
7c7cb1ca534b16b181e144cc29f0ae4e6bb0701010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101

010101010101010101010100000e6c01010101040401020104010101010101020701b725010101
010101010101011101c46e4df0d404010104c2be01021daa012be30092016d51a7060106011054
5aef01190e05059b2e94efa8341b137506ce0b01053333ba47dda02b040201bca10107010650240
1010301138701905ad4d7315da851d602e0ee4201012b01010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
101010101010101010101010101010000874d010204020102010104010401040706010404012e
2302010101010101010101011171c170a53e01010206a57d0201030140f5f08a1c01056b5401010
60619c9aef307884c01e48c15d888180a1de5340161dc025d8a1b45c568e5d0015aab17a101040
1015578012d2201595804286db5e6010e0e2b691bc7c9691c07010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
010101010101010101010101010101010101000053e4040701040106070102010401020101010
101012e8a040101010101010101010701c70e06aea3a7020111794504010133f7c81f010201118b
0b020501076e547b8007178c6f7778025fb625122ede3627c55c474984b5dcbe04b055404e9f57a
5921101031edce4475501764601cd2a455e06332a25ae024f4b2f34010302010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
1010101010101010101010101010101010101010100000e4b0406010404010101010701010101
04020107063d230101010101010101011101069c0f0106c57e690304a5bb031fb159cc01013c690
40248280701010601181f0101bcc06d3b0101075d30011cc32d0507069505013069010407aa301
d0145672b0407010111ab1e02010957011175b8010407153802066d277a041101020101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010000d2b101070401010104070101
010302020101010201e42c0101010101010101010101316b470445efb7ba5eb8514f15ce2a55841
b868518019fe8bd01060201010104010287820106020201010102016c340103010101070101040
2010103010711b1020101020301040104146b8201070606010401010104010401040301060101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
1010101010101010101010101010101010101010101010101010101010000d2a712923a12d64b
2d2e1d01aad01f94382d3a68152c230501010101010101010704100b0b20eb3d062eba2aa72424
543404dda70bb60606655ab6750101010104020711172505010401070701011c01020104020201
05010604010302010106010107010101010201010715842c010201010101020201010103040301
06010401010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
101010101010101010101010101010101010101010101010101010101010101010000acd42cd92
45fd9d90b8a1b019f2c2a33d9d40b24dd283a010101010101010101010107010101020104040102
02020101020101010102010101010701020401020101040106010107040101010601010101010
10401060102010201010102010102010101030406010102010201040401040101070401010101
04010701040101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010

293

10101010101010101010101010101010101010101010101010101010101010101010101010000
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101070101010104
01040104010104010201010101040101010204040401010101070101010206010101010407010
40201010101020104040101010101010101010102010404010201020101010404010104040404
04040401010407020101040201010202010111010101010101010101010101010101010101010
10101010000010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
70105030104010104010404040401020704010404010201010101010101010204020101040402
06010102040402010104010101010101020202040104010104040101010101010101040101010
10101010101010104020101010101010101060701010104010501010101010101010101010101
01010101010101010100000101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
0101010101010101012dd42523a78ad45ad4bf3535350b2c8a0b0b35238a8a0b2525a7a72ce045
a78a2835255a23d9238a8a8a2c240b2323353525d4248a8a238aa7a70b3525248a8a2425353624
232c36eb5f2c36eb49334936d92c5f49dd335fd9363308eb3336ddae01010101010101010101010
10101010101010101010101010000010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010102020704070b5eb64924338aa723282c86dd8696eb2423353636365fd9d9242
45f2817e0a7d40b2c5a232c355a7b4445e01745176fbd2fbd542fbe4517bd5588e028255a547b88b
cbbbdbd2fbf2828e03535a725a728e05ad4a70b2528d4350beba728bebcdc1d0101010101010101
01010101010101010101010101010100000101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010104010396d60101070102060103010207010101010101010101010
10101010101060101010101050101020101010101040101060401010102020101040401030201
0204010107010101040101040204040101010404020101010101010101020401015de00702010
10101010101010101010101010101010101010101000001010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010402060101492706010201010401020101040101020201
02010101010101010106010101010101020101010701010206010704010704010201040401010
40401010101040201040204040101010101010101010401010101010101010101010101020101
142f03010101010101010101010101010101010101010101010100000101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
1010101010101010101010101010101010101010104010104010bd00101010101040402040102
04010201010104040404040404040401040404040101010104020101010101010101010104020
10101010402070201040104040101010101010101010404040404040404010101010101010101
01010104043117060101010101010101010101010101010101010101010101000001010101010

10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010106010204d92707040107040
10401010101010104010101010101010101010104010201010201020401010401040201010104
04010101010101010101010101010401040401070401040204010101040101010101010101040
1010101040101070101027a440101010101010101010101010101010101010101010101010000
02010102010701010101010101010101010201060106070101010101010101010601110101020
40104010201010201010105010101010401070104010401060101010701060101010107010402
01010101010101020404010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101042410
04010101010101010101010101010101010601020202010104010101010201010701060106020
10104010401040701010401010701070401010107010104030101010204070101070107010101
110101020101010101010101010104010a4407010101010101010101010101010101010101010
1010101000001aa01010104010201010101010101010101010102060102010101010101010101
1c01010701010701010701010101060201010301010102011d0101010401040706010701010206
01020301010107010107010107010102010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010424100401010101010101010101010101010101010501010101010102010104010101010
10406010104020101070601010106010201010702040701070102040101010301010201011c010
401110101010101070101010101010101010104010a4407010101010101010101010101010101
010101010101010100002881975053d2815282828282828282824a3fc05c5cccb3040101010101
01010101060203010506010101010601010104010107010401030105010102060102040103040
40106010106010402010307010701010106010601010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010424100401010101010101010101010101010101040105010104030201010601
010707010201020101010101070106010401010201011c01010601060101010201010601020401
030101020101010107010602010101010101010101010104010a4407011610000026060f002220
574d464301000000000001000000000000000c0000000020000098e40000986401000101010101
0101010101010101010101010101010101000082d4add0ad3d2e3d2d2d2d2d2d2d2d2d3d2d2d1
22da7360201010101010101010101eb584a4d0475d22304967f0fae012b5abe98723a01d481220
1010104010acd746901450d6531cd3eafbd3a5ebdb102b1b9176d0101030101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010104241004010101010101010101010101010101010111020
40304010401010401110111010102020501040103010106010101040102070105010104040102
010107011101010601010103010504010701040101060101010101010101010104010a4407010
101010101010101010101010101010101010101010100007f3d010401070101040404040404040
401010202014b360101010101010101010404159ad8010577c23803949e57aa013bee351e7b091
58435c3d604070118f39cd46e1b8ae97ac071ac613f285431d84b353a5f856d0101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010424100401010101010101010101010101010101
043d0b8a6c0303d440b8e0342ab706bf908640ae02752c9614033649943eb61b123c6d569f904d1
c1cb821232e01d0b02968b0123b224b3b4bb202126fad07010101010101010101010104010a440
70101010101010101010101010101010101010101010101000087b70304010601070101010101
01010101010107044b8a01010101010101010101020679ca02678c1e010102c1450101d0260102
e499b5012b1add06010133ee9401687a224307364701cabd01aa0eee2e054b1ac6020701010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010424100401010101010101010101010101
0101010194419b1b0171c7ad4e6608485a74d7b4d40026ad6136085701ce8d057d9c65ecbc8760

295

e40c7e010168c1e92d0792512315f1252b09cd02c70c08e8819808010101010101010101010104
010a440701010101010101010101010101010101010101010101010000d24d010101040101010
101010101010101070201012924010101010101010101020101778445e18f01010101094401030
105013df3169f0111f55a010701eb93040205012185aa01a7238e5502a8ef3e01b7e87e5d010306
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010424100401010101010101010101
01010101010101015b4a03d49d3d0247330459d65ca1028fa33a877001010c65784601267e56f03
825720172cd061c0197df040207c28f0479560162bf0493ce0f5c6d01216d0101010101010101010
104010a4407010101010101010101010101010101010101010101010100007f6c0102010106010
10101010101010102010204012e23040101010101010101040401c4775cc3880601070409bf060
1010198f99be401011de78a0601016889b80ae3308fc1018a1901422c3e890421066ed43b210101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010104241004010101010101010101
010101010101010201e33fb2f1ae010115884041c93f5b01b5db1073bc0101674f4f8107b6620156
2c7f58026a580101024c090101aaa5b2058bb2025b2504607098453ad095020101010101010101
010104010a440701010101010101010101010101010101010101010101010000822e010101010
401040201010401020101060104014b3604010101010101010101030159cd01959d7801060109b
f02040498f825011807012be90b020601011017bb7403af43021e6a24cd3b1b6a404507b72ce0b3
11020101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
1010101010101010101010101010101010101010101010101010401012c1201010101010101010
10101010101010101010462137cc4210401beb31ca2945c7e0196f7c9879801696b2ed2a905d47
3183f7a190e013f72070401d8c201043409ac06e90801c45501c1cdd4c896794c01010101010101
01010104040118be010401010101010101010101010101010101010101010101000046b107010
1010202010101040404010104010106012e24010101010101010101060103c30f0106437056310
1a5e001b13c796f01010b95041defa701070103042b1daa012a930101051b030101053401010511
2baa0101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010401012c120101010101010
1010101010101010101010501434701b7d5b31c287c7bc00779416c78f7d60653d450cb02c69c57
9a5a056144525f048457010104a1a501010816295f9e0dc0e1570ee9b7315e4089ae01010101010
10101010104010118be01040101010101010101010101010101010101010101010100000eb101
0103010104040102010102010702010407013dd904010101010101010101052ede4c9650c35d5e
c832485cbf8d9065d82a7261aa02d9a6572b0104030104010111cb850207010701070401050204
01010106040201010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
101010101010101010101010101010101010101010101010101010101010401012c12010101010
10101010101010101010101010107a84a07024154010390ae340484619f1c6d2b010ab32205011
85d3ab505012bb222010181cdab680464a4011bb76d1d1c1f31b71201563a01061e21940111010
1010101010101010101017a880104010101010101010101010101010101010101010101010000
812031110a7a311b141d0a31143baa18aaaa0a6d6d3ceb060101010101010101060775b2b1b0d0
3101ab2ab24d90aeb207019096b59f0506e4566c6d0204010601020101b3b30101010107010101
01040101030401010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
101010101010101010101010101010101010101010101010101010101010101010401012c12010
10101010101010101010101010101011c05f35bb832f33a0201010101011d380768cc1407010601
01060102010101040103010103a9cb9f3fc9c4512d0d46281e01010406010604010101070102070
10101010101010101010101010abb040401010101010101010101010101010101010101010101
00002f19ca6e83b9dc80b9326eca63cb78784fba7419196a8601010101010101010101070101070
10201010401010102010203020105010101052b01110102040401010101040101060201010106
03010101010104010107040701010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
1010101010101010101010101010101010101010101010101010101010101010101010401012c1
20101010101010101010101010101010101019525dd2ab6940102011c011d01010701e4ca1c040
6010306010402010201021101010418456c043308eb962a23c96fab04010301011101010405010
10501020101010101010101010101010abb040101010101010101010101010101010101010101

010101000001111d050311aa1d1c071c11aa1405031d11341d066d010101010101010101010404
07010601010101060101010701010107010102110701010102010701060102010101070201010
60101010107010701010104010701010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
401012c12010101010101010101010101010101010103010401010103010104010201020106010
10301010101040104010204010104010403010104060107060101040701070701010101050101
04030107070101010101010101010101010101011bbd020101010101010101010101010101010
10101010101010100000401010407010401070401010104020701010101040101070101010101
010101010102010201010602010107050701010401071c01010702011101011102010204040101
06010704010501010101020101020107010102040101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
010101010401012c12010101010101010101010101010101010104010201010101010101060201
06030102010707010403010102010102010101060106010701010201010504010107010101050
10104010101010504040207040101010101010101010101013455020101010101010101010101
01010101010101010101010100000202010404010204010404070401010101030104020101010
10101010101010101010104040107010401070101010601010102010411010101040106010101
01010111010106010201010601040701020102010601010401010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
0101010101010101010401012c1201010101010101010101010101010101010201010601020104
01020101040101060101010101010101010104010402020101010104020101010301010101070
10401040104010107010103010102010102010101010101010101010101345502010101010101
01010101010101010101010101010101010000010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010202010b2d010201010707010102040401010101010101010
40101010104040401010102040101010401010406010104071b86040101010402020202040101
04070201010402040404040404040404040404040404040101010104040404010106075dbe010
10101010101010101010101010101010101010101010100000101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
1010101010101010101010101010101010102010101075a3f530e57574657cd98636e9863cdcd6
3986e7258720f98caca6e8383dcb9839898ca8380cacadc98cd74ca807874774fca635e19787878
78195e5e194f785e5e19781919191919191919bababababababababababcbc6f55bdbd5e7d7d7d7
40f2b0101010101010101010101010101010101010101010101000001010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
010101010101010101010101010101010101010101040706011b22b1ac5622afacb2b1b19056af8
f8faf2290b5b0b0b4af2222acac225690acb4b0b5b3ae3cb0afb5b022ac8fb026503cb3b03c3e3e65
653e3e3c3c3e65653c3c3e653e3e3e3e3e3e3e3eaeaeaeaeaeaeaeae65653e3cb3aeb0b03c3c65
ae3cad010101010101010101010101010101010101010101010101000001010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010201010102010707010101020201010101
010101010101010101040401010104020401010104020401010401010104010101076d4402010
10101040404040101010104040101010401010101010101010404040404040404040401010101

297

01010401010102010106010101010101010101010101010101010101010101010000010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010104010101020101010401010
10101010104010101010104020104040401010101040101010101010101010404010407010701
027abd01010401010404040401010104040401010104040404040404040401010101010101010
10101010104040402010101020207010101010101010101010101010101010101010101010100
00010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101070101060102
07010704040401010402040404040404040401010101010101010401010202040101040101010
1010101010107757d040101010101010101010101010101010101010101010101010101010101
01010101010404040404040404010201040101010201010101010101010101010101010101010
10101010100000101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
20101010101070101010101010101010101040404010101010101010104040401010101010101
01010101010402020701010134440104020404010101010404040101010404010101010101010
10101040404040404040401010101010101010402010204020102010101010101010101010101
01010101010101010101000001010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101030102010101010404040404010104040101010101010404040404040401020
1010404010102040401010101010101040434e001040101010101010101010101010101010101
01010101010101010101010101010101010101010101010104010106010104010101010101010
10101010101010101010101010101010000010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101015d28010401010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010100000101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
0101010101010101010101010101010101010101010
HighResolutionTime encapsulates time values with nanosecond granularity and an associated
clock. A value is represented by a 64-bits millisecond and a 32-bits nanosecond component. There
are methods to read, write and compare time values, as well as methods to get and set the clock. The
class is an abstract class that has three subclasses: one that represents relative time, one that
represents absolute time, and one that represents "rational" time. Relative time is a duration
measured by a particular clock. Absolute time is actually expressed as a time relative to some epoch.
This epoch depends on the associated clock. It might be January 1, 1970, GMT for the wall clock or
system start-up time for a monotonic (nondecreasing and no added leap seconds) clock. Rational
time is a relative-time type, which has an associated frequency. It is used to represent the rate at
which certain events occur (for example, periodic thread execution).

The RTSJ Clock class defines the abstract class from which all clocks are derived. The specification
allows many different types of clocks; for example, there could be a CPU execution-time clock
(although this is not required by the RTSJ). There is always one real-time clock that advances
monotonically. A static method getRealtimeClock allows this clock to be obtained.
Countdown clocks are called timers by the RTSJ. They will be considered in Section 7.7.

7.5 Schedulable Objects and Scheduling


Scheduling of threads is a key aspect for all real-time systems. Java allows each thread to have a
priority that can be used by the JVM when allocating processing resources. However, as discussed in
Section 4.1, Java offers no guarantees that the highest priority runnable thread will be the one
executing at any point in time. This is because a JVM may be relying on a host operating system to
support its threads. Some of these systems may not support preemptive priority-based scheduling.
Furthermore, Java only defines 10 priority levels, and an implementation is free to map these priorities
onto a more restricted host operating system's priority range if necessary.
The weak definition of scheduling and the restricted range of priorities means that Java programs lack
predictability and, hence, Java's use for real-time systems' implementation is severely limited.
Consequently, this is a major area that needs to be addressed. The RTSJ attacks these problems on
several fronts. Firstly, it generalizes the entities that can be scheduled away from threads toward the
notion of schedulable objects. A schedulable object is one that implements the Schedulable
interface. Each schedulable object must also indicate its specific
release requirement (that is, when it should become runnable),
memory requirements (for example, the rate at which it will allocate memory on the heap),
scheduling requirements (for example, the priority at which it should be scheduled).
Parameters affecting scheduling
Release requirements are specified via the ReleaseParameters class hierarchy. Scheduling
theories often identify three types of releases: periodic (released on a regular basis), aperiodic
(released at random) and sporadic (released irregularly, but with a minimum time between each
release). These are represented by the PeriodicParameters, AperiodicParameters and
SporadicParameters classes respectively. All release parameter classes encapsulate a cost and
a deadline (relative time) value. The cost is the maximum amount of CPU time (execution time)
needed to execute the associated schedulable object every time it is released. The deadline is the
time at which the object must have finished executing the current release; it is specified relative to the
time the object was released. PeriodicParameters also include the start time for the first
release and the time interval (period) between releases. SporadicParameters include the
minimum inter-arrival time between releases.
For aperiodic schedulable objects, it is possible to limit the amount of time the scheduler gives them in
a particular period. This is achieved by ProcessingGroupParameters that have associated start,
period and cost times. Where the same ProcessingGroupParameters class is associated with
more than one schedulable object, the limitations apply to the group as a whole.
Scheduling parameters are used by a scheduler to determine which object is currently the most
eligible for execution. The abstract class SchedulingParameters provides the root class from
which a range of possible scheduling criteria can be expressed. The RTSJ defines only one criterion
that is based on priority (as would be expected, it is silent on how those priorities should be assigned).
In common with most other languages and operating systems, high numerical values for priority
represent high execution eligibilities. ImportanceParameters allow an additional numerical
scheduling metric to be assigned; it is a subclass of the PriorityParameters class.
Schedulers
The scheduler is responsible for scheduling its associated schedulable objects. The RTSJ is silent on
how many schedulers might exist within a single real-time JVM but typically only a single scheduler
will be present. Although RTSJ explicitly supports priority-based scheduling via the
PriorityScheduler (a fixed preemptive priority-based scheduler with 28 unique priority levels), it
acknowledges that an implementation might provide other schedulers. Consequently, Scheduler is
an abstract class with PriorityScheduler a defined subclass. This allows an implementation to

299

provide, say, an Earliest-Deadline-First scheduler. Any attempt by the application to set the scheduler
for its threads has to be checked to ensure that it has the appropriate security permissions.
The relationship between the above classes is illustrated in Figure 7.3.
01000900000334b30100000065be000000001610000026060f002220574d464301000000000001
00107000000000100000000020000074c6010074e60100010000006c0000000000000000000000
d20100006c01000000000000000000006a4000004132000020454d460000010074e601000c0000
00010000000000000000000000000000000005000020030000c40100001a010000000000000000
000000000000e3e306006e4e0400460000002c00000020000000454d462b014001001c00000010
0000000210c0db010000006000000060000000460000001068000004680000454d462b22400400
0c000000000000001e4009000c00000000000000244001000c0000000000000030400200100000
00040000000000803f214007000c00000000000000084000055c670000506700000210c0db0100
00000000000000000000000000000000000001000000ffd8ffe000104a464946000102010048004
80000ffed0da050686f746f73686f7020332e30003842494d03ed000000000010004800000001000
100480000000100013842494d040d000000000004000000783842494d03f300000000000800000
000000000003842494d040a00000000000100003842494d271000000000000a00010000000000
0000013842494d03f5000000000048002f66660001006c66660006000000000001002f666600010
0a1999a0006000000000001003200000001005a00000006000000000001003500000001002d00
0000060000000000013842494d03f80000000000700000ffffffffffffffffffffffffffffffffffffffffffff03e8000000
00ffffffffffffffffffffffffffffffffffffffffffff03e800000000ffffffffffffffffffffffffffffffffffffffffffff03e800000000ffffffffffffffff
ffffffffffffffffffffffffffff03e800003842494d04080000000000100000000100000240000002400000000
03842494d0414000000000004000000023842494d040c000000000c0f000000010000007000000
058000001500000738000000bf300180001ffd8ffe000104a46494600010201004800480000ffee00
0e41646f626500648000000001ffdb0084000c08080809080c09090c110b0a0b11150f0c0c0f1518
131315131318110c0c0c0c0c0c110c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0
c0c010d0b0b0d0e0d100e0e10140e0e0e14140e0e0e0e14110c0c0c0c0c11110c0c0c0c0c0c110c
0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0cffc000110800580070030122000
21101031101ffdd00040007ffc4013f0000010501010101010100000000000000030001020405060
708090a0b0100010501010101010100000000000000010002030405060708090a0b1000010401
030204020507060805030c33010002110304211231054151611322718132061491a1b142232415
52c16233347282d14307259253f0e1f163733516a2b283264493546445c2a3743617d255e265f2b
384c3d375e3f3462794a485b495c4d4e4f4a5b5c5d5e5f55666768696a6b6c6d6e6f637475767778
797a7b7c7d7e7f7110002020102040403040506070706053501000211032131120441516171221
30532819114a1b14223c152d1f0332462e1728292435315637334f1250616a2b283072635c2d244
9354a317644555367465e2f2b384c3d375e3f34694a485b495c4d4e4f4a5b5c5d5e5f55666768696
a6b6c6d6e6f62737475767778797a7b7c7ffda000c03010002110311003f00ee30fa639d8b8f6d4cc
435bf1e98aeda038eed9eeb3d56163bdf2a56f4bceda3d2aba6ee9874e39e088dc3f49f9967bffe2ff
47fcb5adf65c6ff0042cff347f725f65c5ff42cff00347f724a728f4acb0d7b43300cee15b9d44b80d3d3
759b4b2bb1cdfcfdb5529cf4acb6868ad9d3cc1d4bf1cc9683a1f658c6fa8f67d2f66c5a9f65c6ff0042
cff347f725f66c6ff44cff00347f724a73db826a8b2daf165b6d7e9ba9ab6387e91a3e9b9cff00a4cfdd
56f35b438d22f6b1d5ef3a58016cec7edfa4a76e0e25ac2c754c130410d120b4ee63dba7d263fded
41fb4f502ed95e3b2cd8436d79b367bb4dfb59b2cf6ecfd233dffe8d2539d5517368636eafa65b7b58
37bda36873e3ddb59b5db5bfdbff003139aef8706d3d31c773c025dc03ad434a7e957ed63ffd27f39f
f06b70cc18d4f607455305f697d9ea6dfd206dd0d996ef1b761fa5bbf9a494d4c2adb2efb753d3d835
dbe81dddced9f52baffc1fd2fe5ad2c58fb3551a0d8d81f2447121a4b46e701a0e24aa55e666b9eea
acc66d569fe6c7a9bc47fa4b76b5be9b3fead252d9e697e436a7595b6df42d2c16c38024d4d658ea
ddf4bdcaa0a6f6820dfd3dc20069356b3f9ee76db9adf77e6fee7f2d6ad340a8124efb1dabec3c93ff7
d67f211525388da2e683face03cb9ce74bea1ed0776cadbe9d95ee6d5fa3f73be9a2b096ee375d84
e643b4adbb5dc7b36b8d8efa2efe4ad649253fffd0f45cacf7635b65760b9c0ec7d6fa6a2f01ae3e9b
9ba6fdcfadcdf52dff0083b3f47fcdda86feb5435d697b722a634197ba9706360b5bbb7b99eedfbdbfe
bbd5ff41a37ed739bbddb8c1ef01bed9fa2df6a8659b195b8d2f8bad8aea0e3a071fce021df41bfa44
94d26f5a64d62ca72eb796cbeb38ee741da6cf7db4b1f56ed9fb967fc17f3dfa244aba90b0b0345e3
6bbf49bf1dfa827d2d9ed68d8edee659bffd12b94c58caed0e7005a3da483cfef47e7353fa2d3b25ce
26b76e6ea7920b7dd1f4be924a6adf93d445f18f431f4437def3635d3eef53f47e8bbe8fe8f6fbbf3d5
86b43eff5584b7dbb5e0b48ddfe8f578fcc97a3289602e6ba482d9100e867c52534f2b35b885adb5d
6ba06f2e657bc11b835cdf60fcdfa7fd4fa0838f998e1efaaa75e0dd738b4baa30d32d90dfd1ed654e
ddfe13fe11688ae001bdded33cf3f142b2abc173aa79703a9adc63fedbb00f6ff6f7ff00d6d2524732c
3bcb5f0488602010d3fbdfca548bb3a9b47d9e96dac747ad6d85cd7b8c1f78f61fa2e1b7d2fa1eff65
9fa3f4d583754e6d9ea39f59d84bab3a38003deeac37e97f5ea4b0f371729a4639790c0d9dec7b34
70f6ff3cd67824a6be265e564b5b55e1d8d90d3fa535896100387b2d7b1f4ff0038dfe6b77accff0008
823aa546b0f75998c24c161a46e6ea46e74507f77f316a3d9bf6fb8b4b4c8223c23f383bc537a6ff00
f4aefb9bff0090494e6b7a950e740bf2834b4b9af34883b4963dbfd1f7b5cdfe5b7f49fe07d446af205a
db0d59171756d0f87d6d6820eadfa54b3e97f9eaefa6ff00f48eff00a3ff0090517525cd2d758e21c20f
d1e3fcd494ff00ffd1f5275b534ed73da08e4120141c9b31df4b8fa8ddcd05cc21d04182342d70f155

6e6656f7fd9deda5c2f2f77a951787b76b06cd07d1ff0084659f988563ba83185f764e3d2c6897d829
7340f70dbfce9b3dae6fe8dfeffea6c494e956fc5a99b18f635b24c6e1c93b9ddff78a9b6da9c61af6b8
f8020ac9737ae1d05b88cd04fe82d243a25f1eff00a1bfd9fd4562b6e438e3fae18fb5b76e2eaab731
a1be9d8dff0009bbf3cfef24a7452492494a492492520c87e21fd1dee60221c038c107f35cdfce6ff59
08653691a5cdc8ac76dc3d41f0fcdb7feaffe3107a8b2c7bdac65b918e59632edf430bc383416fa566
d0ef639df4d8ab464b6ad8ececcd803b73becfee825cf9f53d2ddb98cfd1b7624a752bcec5b2b6bc5
8d6ef01db5c76b848987b1dee63bf92a432b18b8345ac2e2600dc2495981d90ead869ccca6b225a
4e36e25a4eeaf79b69dff00cdfb1dbbde88cfb417b43aebef692c1b2ca4300daf63fd5360aebfcc6b92
53a8924924a7ffd2f5555f327634c17560eeb43627680e3f9c47e7ecfa2ab59d56a664dd459914d0f
a4fd0b241dbb5aff527733f7ff37f9b437755c5b6b2dfb7e206bc38033e1ed747e9024a7471fd4f459e
a822c00074c49234ddecf6fb9116557d730ac6b1c33b19bea0dcd6d81d5be21cf9355af658dfd1b1d
67d1fe6ff0049fcda2d1d4eabadad955f4dfbcc39b59f7010ff007fd277e757b5253a0924924a524842
f91218f20f063fda87916deea8b686b9b612df7100c0dc3d4224fd2f4f76c494d942c80f34b830c1d2
7fab3ef1fda62ae464ff00a5bbfedbafff00229dacc8792c391634907e9319a8e3f712524c17176335f
1b5aff7d626486bff0048d6bbf776eed9b1aac2cff4eec6156332fb5e430ed01b57d1af630b9ce7063
7f3d8a446680497dc00d498a3ff0024929bc92a945d78decb18fb5cd76866a060807dcd6588a6fb0
024d1640d7967fe94494fffd3f4a7f4e63ed7d9ea105eedd1b2b74181f45cfa9cff00cdfde51fd98de7d
533e3e9d3db4ff43e6aea4929a47a682771b897789ae99e367fa1fdcf6a955d3db5d8cb3d473b63b
76ddb5b4124167bbd3a98efce56d2494a4924925395674c6becf55d5dcdb0eddc6bb8b03b600c66
e6b5cddcd6c6f66e501d22b1ea7b3209b1e6c9390496bf6fa42cadc5ded7b19f41cb612494e43ba4
ee104e6419ff00b54ffe4c7f84fccd9b9bff00a915bc1c67512dfd26dd4eebad36ba5db746b9ee7b9ac
f67d15712494d4ccc3fb4bdbb9adb2ad8faecadc4b6438d6ffa4c9ff42ab1e898bb1cc38cd707cef9b
acd64ef74fb7f79cb512494e453d3b12d7d8c18ac06b2185c2fb3739a1aca9af73b6ee76cf45d47bff
d1d9fe96c53afa363d400ab198d2d01ad71bad246d25ecd5cdfcd73bfef8ad62576b1ef6bde1c2a02
b10ddb3ed6d9bdfee77bbdee569253ffd4f47fb4e57b48d5c5cd06bf46c1c901dfa52ed9ed6fe7a593
999f5deeae9c23756d00b6dde1bb8edb5e5a1bb5df45f55357fe847fc1d8be6349253f4d3ba8e734d
7fe4fb5c1e4eedae64b46e7b6b905c3f319bedf77e8fd4ff0aae516596d4d7d959a5e666b71048831
cb25bee5f2ca4929fa845f7fd96bb76fe95c5a1ccd8ed24ed7b76fd36edff48e51c8c9ccaf20554e37a
b596077ac5f037176cf4f686bddedaff4bbd7cc0924a7e9c39d9d159182f25fb8bc6f682d03e8b7f956
3ddfd8d9fe11428ea3d46cda2de9b6524897eeb18403b5eedacd85dbfdec633f33f9eff8c5f3324929
fa7f1f2f2acb1acb70df5033bacdcd2d11fe6bfddfd456d7caa924a7e9cea26df5182a2d367a561ad96
12185e0d3b77c399f9a5eaa5967513407558b8ecb8c12d7e41706ebee6bb631beed9ff4ff00d27a7f
a5f9b92494fd24dfb635ee9c7a1cd792e96de585bc318c788b3d57ed6fbadfd1ff00c5227e98fd2a2a
689d48c8768de0bbe8fd2fcf5f34a4929fffd9003842494d04060000000000070005000000010100ff
ee000e41646f626500644000000001ffdb008400040303030303040303040604030406070504040
507080606070606080a0809090909080a0a0c0c0c0c0c0a0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0
c0c0c0c0c010405050807080f0a0a0f140e0e0e14140e0e0e0e14110c0c0c0c0c11110c0c0c0c0c0
c110c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0cffc00011080112015e0301
1100021101031101ffdd0004002cffc401a200000007010101010100000000000000000405030206
01000708090a0b0100020203010101010100000000000000010002030405060708090a0b10000
20103030204020607030402060273010203110400052112314151061361227181143291a10715
b14223c152d1e1331662f0247282f12543345392a2b26373c235442793a3b33617546474c3d2e20
82683090a181984944546a4b456d355281af2e3f3c4d4e4f465758595a5b5c5d5e5f566768696a6b
6c6d6e6f637475767778797a7b7c7d7e7f738485868788898a8b8c8d8e8f82939495969798999a9
b9c9d9e9f92a3a4a5a6a7a8a9aaabacadaeafa110002020102030505040506040803036d0100021
103042112314105511361220671819132a1b1f014c1d1e1234215526272f1332434438216925325
a263b2c20773d235e2448317549308090a18192636451a2764745537f2a3b3c32829d3e3f38494a
4b4c4d4e4f465758595a5b5c5d5e5f5465666768696a6b6c6d6e6f6475767778797a7b7c7d7e7f73
8485868788898a8b8c8d8e8f839495969798999a9b9c9d9e9f92a3a4a5a6a7a8a9aaabacadaeafaf
fda000c03010002110311003f00f517e5a7e59f902fff002e3ca3a9ea1e5eb3bbbfbbd134eb9bbba9e
2f56696696d23777766ab33331249ee71546e81e57fc8cf34b32e81a56917d22c49725238407f425
6644902b004a33232861f0f2523154f7fe552fe5a529fe16d3a9ff18171568fe52fe5a1ff00a65b4ef0f
ee1715519bf2c7f2b6d64b78a5f2d69e925d49e8db8fabd794811a4a6c0d3e1463be2aae3f29bf2d4
74f2b69dff00221715497fc31f9229a9fe871a3e946fcdc8b1e02db927d70c7ea880c814a09787c5e9
f2e54ed8aa767f29ff002d49aff85b4eaffcc3a62aeff9551f96d42bfe18d3e87a8f457b62a90697e59fc
8bd67529b48d2f4bd22e754b76b88e4b55880903d948b0dc00180a989d9564e3f60b2f2a7218aa7
ebf953f96ea6a3cb1a7efd6b029fd78aaeff009557f9715a8f2be9c0fb5ba0fe18abbfe557fe5c271af9
6b4e5a9f87f72a3e23e1ef8abbfe5567e5d05e3fe19b0e27b7a2b4c558c7e63fe5d79174bfcbcf356a
3a7e81676b7d65a3dfcf69730c7e9cb14d15b3b23a32d08652010462af51b525ada12c6ac635249f
1a0c555715609e6dd2b4fd73cf5e55d3756816ef4f363ac4cd6d254c66446b25562a0d0901d80ff58
e2aaf73f977f967610fad77a2e9f6b6e28bea4a044953d055881be2adc9f975f968b6ab3cba2e9e2c
8f1e32b00223ea10ab462d4f8890078e2aaa7f2b7f2f5a9cbcbb6669d3f77e1f4e2aa56df96bf96b75
0a5c5a6856135bbef1cb100e869b6c54907c3156dfc83f96ed72ba79d26c45e05f516d548597854fc

301

5c03034dbad3156ff00e55b7e5d3cad6dfa16d1a6450ef0d58b057aa825795686840f962aeb9fcb6f
cb9863f5aef44b38e2523f7925554331006e587527efc55a9bf2d7f2e2368fd7d12ce37918470f2254
b3d090abf10a9a03b0c555c7e5a79156bc745856b5ad1a41d7fd962aeff9569e46a01fa1a2a0d87c
52ff00cd78aa8f9234fb2d2354f36695a6c660b0b6d4a0f46df933247ea69d692305e44d01662c7fca
27156638abb15762a82d61da3d22fe4462ae96d332b2ec41119208c558668be54f282792b4cd535
7b11c23d361bcbd98bceeff00dc2c92312ac598f53deb8aa1d2d7f285c7971a26824ff178e7e5bf4e5
b9737a9e87d64b47c58fc222f8cb3502af5c55917fcabdf27ff00d5b47fc8e9ff00eaa62aeff957de50ff
00ab68ff0091d3ff00d54c550ba9793fc87a3e9f75aaea566b6fa758c2f73773b4b7056386252eee68
e4d14024e2a87d1bcbdf971e608a69748812e96d9d62b8512dca3c6ef1acca1d1dd58724915d6a3
e256561b62a997fcabef2874fd1a3fe474fff00553156ff00e55ff947feaddff25a7ffaa98aae5f24794ea
552cbe2435204f3d413bffbf3155ffe08f2c6dfe8476e9fbe9ffeaa62a96eabe56d0edef743b786d9921
babf78ee144d37c68b6375205279d69c915a9e23157ffd0f67fe561e3f95de4a342c4681a5ec3a9a5
9458abce7cabf955ab69da0f92ae3518b518fcc36aeba76b71dbdfadb7d5f49e57733441ad248f9c6
6692177f8a491b8aeff00053156d7cbbf9af6dfa1e4b986ff0051d3d6da0b3f34e9b6faa24171757de9
5e46f7d6b3492a7040f242ec9ce22df0b2a73878baaa97de59fcd465d6a5b79f533aafd7bfd0cb5f5b
3697716714b2cb6eab1a3453a0689960b890bc72c6fc668d26098aaf7d07f34ff48dd3f0bd6b57d46
e2e20917510ae2d66b0d4a3103a09823a473cb6c61942c7232fa7ea44af6dea32ac3eee3f3f79592
d346f316a3a9c315edc09601fa5207bb5b68b4cd252e2685a7bc8de4916f52e7842aee5bd67658c
865c5595d9793ff30b43f2aa7947478244bc8bcc1a9ea936b30c96fe95de9da8dc5ddea92663eb47
700cd1c468aac92272497d3f8b156f4ef257e65c3656761f5bbd495e0d36437975a8c970d171b296
3d4ade76695d9a49673c91d39a8e68c8c9e96caa5971a779faededb43d49755d3b5bd56d7526d2
635d54298ee60d374b8a3b990c1724148eed6690afc7f6cb7a6c1db1546e87f971e65d3b4cf306b9
79617571e6a3e61d5ee744b58eea08156c759bf86496e53d3923059e24e4629665f84345f073355
5072795bf3727f275f4ed06abfe3a9edececa063ac2a450b2692b14b7091477420626f23e46bc5be
3f5472e2d1b2abeff00ca5f9af7905fde27e958b529d35092da31aa84093fa3a69b31c52e7d3004b1
dd9a0f87e26e5f0beeaa29bca3f98d78d6b7d776ba8c9add8eaf34fea5dea36b2590736ba9436f796
b1c4ca5620d7107a8927ef38af010bfa7c99544daf94fcef7968a6e0f98f4f964d32f8afabaadbcb3db
ea7235a888aa5bcc90baaf19da2572cac18fa863f50222ac93ccf16b507e47798e1d7d238f5a4d035
35baf419da32fe84c032895e5650c28de99924f4ebe9f37e3cb157a25aed6d083fefb5fd431555c55
886b1ff9323ca9ff006cdd6ffe27a7e2a917e7e595dea3f9697967616725fdec9a868ed15bc36d2deb
7ee754b595dcc5082c5511199fa7c20ef8ab1a9f4af31f942eb57d1b4ebfd42e74db48ac753820874
e0f612dfeb1ad5c4b78b120826f8228cc7489246f413f79d7e3c5552df59fcc3bdd434cb4bab8d5ac2
daeaeacedb5978ec87282f79defd66389daddd45b70480acdf6378e927291f154bb4bf3079e6c743
bad738ea8751b1b5d26fd74a7b236915e410dedcc1776d1a490c71453caa54f01c1d8fa4ff61b962
aed52d3cd1a179e2ef53d12daef5cd51ac67935282eac3e3b7d4ecf4a0916a1a75dfa688eb700ada
bdaf26569be25e1c25c555eef54f3343a97f88fcbd26b3777b716da7ae9f1ea1a5b5b1b882e350bbe
305d56dc322c28e2a5cc5222b7ab2d3ae2a90ebbad79cfcc1a0db5b5ea6bf7fa46a7f579e0b76d0e
7b69d752b5beb069ad665f4da411c6a93c91cae238a4f8fd391fd28f1554935afcc7d6759b482ff4fd
4eea5d22f6ca5b2173a6bc16e353864d7629196610a294318b2569397a547560df1b62accbc95ab
f9ab5ed7b4592ef55d723d1a7b6bdbe92dafb481a611342d671adadc19a167a2b35c953588cbfeeb
e71c6aecabd7f1562de58ff00948fce9ff6d3b6ff00ba55962aca715762aec552fd7491a26a6475169
3d3fe45b62a9458c1712fe5ddb5ad94667ba7d1638ade2e4aa5e46b50aa39390054f7271579137e
55f9f749b7b1b5f2fa855b0bdd426f2ebbdcc6bfa26d351d2ae8989f73cb8df5dfa6be973e36f0c647d
955c551ff00e04f384faae977d16937b63a4c36d097d2df5812982e9b59b6b89c031caa9c7eacb380
17e1e0fe9fed950aa85bfe5f7e6747a7dd5bb4d325c0b731e912adf55edada3b4bc81accb7a83795
da0749016a7da764781315446a1e46d42ea2d7f40d1ddaee43e58f4eeb4c6bd2ef079867b29ed22
0e5dcad268ae19df935394692ef5538aa36e7c85e64d26f343bbf2fe9f7135cba595c6bd7cfa82adc1
9ad64b489a0319748b88b68e44468d7f997927a8eceaa5abe4afcc5b5b5d3adacec2e91d343105f
dd7e97324d26a571a7de4137232cc78959dade4e719f8fedb37289542aeb8f237e655b6a17375a5
433fd41aeae9a5b27d4549b8d2de4d36516a86491c23b98ef78b1d8348c19d565e58aae7fcbff003
adaf98dee6d6c6e9fcbf7b25afd7638b5658afe90e9b05b5bcad3b1abb5b4b0bfa9ddbd5f522f55978
e2ac8346f2979cac7cc1a66abfbe08752d567d622babc33c12da5d5e4cd6cca048cc92c508884614
18da32f0c88bf0b8559e6b63fdc8f96c577fd2326ff00f6eebcc55fffd1f68fe55ffe4b0f257fdb074bff00
a838b1565b8abb15762aec554a6b5b5b8689ee218e5785b9c2cea18a3ff3292363ee31555c55d8a
a9b4103ca93bc68d3c551148541750db1e27a8af7c555315762aec55d8abb15623f9a743f967e70
07a7e86d42bff48cf8ab2a83fb88bfd45fd58aaa62ac23cd57434af3b796359b9b7ba934d86cb56b7
9a7b4b5b8bc092ced64d1875b78e461c846f42453e1c5530ff1f797e80fa7a9efff006a8d53fec9b15
6ff00c7be5febe9ea5ff708d4ff00ec9b156879f7cbff00efbd4ffee11a9ffd9362a85bef34f93b536b56d
42c6f6e9aca74bcb33368ba93fa5711821644adaece031a11be2aad27e62f95e29a1b695afd27b82
cb6f13695a90690c6bc9b8036dbd06e69db1556ff001df97bf9751dff00ed53a97fd9362ad1f3e797c
7ec6a5ff708d4ff00ec9b156ffc79e5fa7d8d4a9ff6c9d4ff00ec9b1577f8efcbf4af0d47fee13a97fd9362
aeff001d797bed15d406dd4e93a974ff00a46c550de4c9c5f6a7e6bd5218678ecaf35285ad5ee6de6
b569162d3ad2266549d11880e8cb5e34aa9c559762aec55d8ab08fcc4f3ef97fcaba0eb2353fae34b
0d9c84c769677370cc668dc22a18d0ab39a13c15b950163f08ae2ad683e78d02d342d2eda75d456
786d208e54fd15a9310e912820d2dbb118aa63ff2b03cb7e3a87fdc2b52ff00b26c5577f8f3cb9ddaf

87cf4cd47fec9f155bff2b03cb3de4bdffb866a1ff64f8ab5ff002b03caf5fef2f2a4effee3350ffb27c55c7f
307cb03fdd979d69ff001cdd40ff00d8be2abbfc7fe59ff7e5e7fdc3750ffb27c556ff00cac2f2b74f5aeff
ee1d7ff00f64f8aadff00958be54ff7fddffdc3b50ffb27c55aff00958fe52ff7fddffdc3750ffb27c552bd57
cfbe5bb8bed125824bc78ad6f5e6b961a75fd123365731063fe8ff00cf222fd38abfffd2f67c7f957f973
0a08e1f2ce9f1c4a38ac690aaa05a528146c053b0c55b3f95df978453fc37634dff00dd43bf5c556ffc
aabfcbaa93fe1bb2a9a03fbbec3e9c55dff2aabf2ea9c7fc37654f0f4f6fd78ab63f2aff002e874f2dd8ff
00c8bf1dbc7156d7f2b7f2ed29c7cb76229ff150c5571fcb1fcbe343fe1cb1a8e87d118aad3f95df978
5998f96ec6ad4e47d21bd3a62ab47e55fe5d014ff000dd8d06f4f4ffb7155cbf95df978bf67cb965ff22
b155c7f2c3f2f89a9f2e58d7aff00743156ff00e5597e5fd00ff0ed8d06e3f743155bff002ac3f2fa94ff00
0ed952b5feefbe2ad1fcadfcbc34af972cbe1e9fba18ab1ff3dfe4ef9375af26eb7a3e97e5bb36bfbdb3
92dedd540858b38a6cf51c4ff955db154ebc8104da48d43cb1757d753cfa33470c76f76c65a5a303f
579a295d79b2c88b460cf270952440d418ab34c55d8abb15762aec55d8ab17d7ffe52df289ff8baf8
7fd3a3ff004c559462aec55d8abb15762aec55d8abb154bb59d6ad344b659ee03cb3cce21b3b3800
7b8b89d81223896a2a4d092490aab577654566c558ebf928799a06bcf3afefb50b80816ca073f57b
3804a92b5bc66839193d3559e52394abc91610000026060f002220574d46430100000000000100
000000000000100000000020000074a6010074e6010017847f0e2accf15762aec55d8abb15762ae
c55d8abb15762aec55fffd3f7f62aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8a
b17f364373a7496be6fd362335d6940a6a36ebb34fa5c8c0dc28d89678a9eb44bfb4c863ff00769c5
543cdff0098163e53b7d32e7eacfa845aac77b2dabc0eaaa458e9f3ea3525bb3a40caa47ed32f6c55
2893f366dda5bdb4b1d1ae6f355b69224b7d2e3655bc9d65b57bce6a8e00a3471b7a4c0b47237c3
ea232c9c154ff00ca9e7283cd377ac59a59c9633e8f3a4134170ca2e3f7818a97887c49c80e487e2
4746528ec79aa2ac9f15762a94f9975a7f2fe8f36ab1da9bc689e18fd1f51201fbf9922e4cefb2aaf3e
4c7f9462ac4756ff00958d7daee8da95bf96ac16df49927908975765797eb16ed15005b3703896f1c
553ff002df9835cd5752d534cd6f47874c9b4d5b76f52daf1af6291ae43b14e4d0414645556228767
5c5592e2aec55d8aa1354d421d274cbdd56e159edec6096ea548c02e52142ec141201341b6f8ab1
1b9fcd6f2bd9ccb15efaf6c0c92a349308d104705a417d24a0993e25582e164655e5271591bd3a46
d8aaa689f99da0ebba869da65bdbde5b5eea7f5836b15e422d8bc76a1199d03b0f5169229ac5cf8d
7e3e3be2a9eebfe61b6d0608418deef54bc630e99a641433dccc0578ad765551bc9237c11afc4c71
543e89a0dc457275df3048977e639938738c1fabda44db982d836e17f9e43f1cc776a2848d156418
abb15762aec55d8abb15762aec55d8abb15762aec55ffd4f7f62aec55d8abb15762aec55d8abb157
62aec55d8abb15762aec55d8abb1579d9f29797efaedfc87e68b15d4348b7326a9e5812724f4eda4
56b79ed95a3e2690fac53896f8ade6442182b62a9ede7e5df936fe2586f34b49912586788b493728
dedc384f4d83d50012382a842b077e40f36c5532d23cb5a16832dccda459476b2ddf113ba5492a8f
248a83913c515a590aa2d1179b715df154d715762a81d674ab3d7749bed175141258ea104b6b72
87bc732146fc0e2a80f296a53ea1e5ab1babff82fe18cdb6a00b06e37568c609ea47f968d8aa1bc8b
0bbe8f2eb737abf59d7ee65d55c4e47348a7216dd282a14240912d3f8e2ac9b15762aec5542f2d2d
f50b3b8b0bc4f56d2ea378278c9203472295615143b838ab0d3f947e4a92d52caf6dae350b35952e
2582faea6ba8e6962862b74691656604ac70a28229b721f65dc32a86bfd03cafe518f42860b7bcd6
35ab598ff8734e9aee5bab8927489a30c64b866e09144c55e563448f66e6ccaacab22f2ff97e7b295
f5ad7275bff00345da7a7737480ac30444f2fab5aa9dd2153e3f1cac39ca49e3c556418abb15762ae
c55d8abb15762aec55d8abb15762aec55d8abfffd5f7f62aec55d8abb15762aec55d8abb15762aec5
5d8abb15762aec55d8abb1548bcd3a3cfa9d8c577a7051af69528bdd26463c47ae8086898f64990
b44ffe4bf2fb4ab8aa3742d62cfcc1a4daeb1624fd5ee939047055d1d49578dc1dc3a306471d994e2
a9862aec55d8abb157996baf7da6dd7993ca76a919ff13cb6afa52c44c7222ea67eada83b53fdf223
6b8e4bbd64f1c55e9304315bc31dbc08120895638d07454514007c862aa98abb15762aec5524f30
798469020b3b2b7fd21afdf1e3a7e9a8dc0bd3ed492b51bd3853ac927134e8aaceca8caa9f97bcb8
74c967d5b549c6a1e65be005edf905556304b2c16e849f4e14afc2a376fb72179096c553fc55d8abb
15762aec55d8abb15762aec55d8abb15762aec55d8abffd6f6ff009b8eb66c2d21d0659adee6e2fad
21b9b9b68e39658ad5e502670264910516bf1329e38aa67a659dcd8da2dbdddfcda94c0926eae56
1490827604411c49b7fab8aa4f2f9735d92491d3cdda9448ec59635834d2a809a8505acc9a0f724e
2a9e34131b236a2ea45b8317a62f408fd50fc69ea50af0e55f8a9c38d7f6698aa490f97b5b8a68e49
7cd9a8cd1a3ab342f0e9c15c0352a4a5a2b50f43420e2a9b6a965777f6c20b3d467d326e41beb36c
b03c9415aad2e2395687fd5ae2a81d3345d5ac6e96e2efcc57da94014836b7115924649e84982da
37a8ff005b1555d5b49d4b5096392c75cbbd25114abc56b1da48ae49af2637104a6a3d8818aaa69
1a6df69cb28bed5ee756690828d7496d198c0ea17ead0c20d7fcaae2a84bfd0b58bbbb92e2dbccd7
f6103d385a410d83c694006c66b691f7ebbb1c5533d3ed67b3b48edee6f25bf9d2bceeee162591ea
491510a468280d36518ab1fb4b4f3269be69b4866d56ef55d0eead2f1ee7eb30daaa41711c96fe80
57b786220b2bcbb316af1f6c559562ac1ff00303f31e0f214b6514da7497c6f2cb55bf531c8b1855d1
edd6e5d4f2077752429f11ef8aa57a97e6f2d95c5ee9f67a0dd6a7acda5f4d64349b56ff4c68ed90ca
f298dd178868f8bc3bfa72abafef57e3e0ab26f2a79c61f34ddeb76b15bfd59f45bbfa9cb1bc80cfcb72
0c9110af1f2003a541491195e37718ab26c558869de5fd4e2f31eb5796faa5e69fa6497d15cae9f1c
76c6da726da1f55b94b0bc839b821f83afc553b37238ab21d56caeefed84165a94fa5ca1c31b9b648
2472a01aad2e2395686bfcb5c5509a5e8faa58dc99af35fbcd4e228545bdcc5671a06247c55b7b78

303

9aa29fcd4c557eada4ea5a84d1c965aedde9488bc5a1b58ed245735af226e2094d7b6c40c555b49
d3ef74f8a48ef754b8d55d9b92cb7496f1b20a538816f14429df715c558feafe439357f30d8f991fcc1
7f6f7da59b8fd189145625204bb411caa3d4b67660428fb6cd8ab28b3b79edace3b79eee4bb9d178
bddcab1ac8e7f9888d112bf25031548ff00c39af7207fc5da8d2b5a7d5f4da7cbfde4c553bbeb69eea
d1ededeee4b29da9c6ee158de45a104d04a8e9bf4dd7154aecb43d62daee3b8b8f32df5e4086af69
34360b1b8a74262b6471f430c551baad85f5fac4b65aadc6966324bb5b476f219011400fd622940a
7f934c558ff00e5d695776fa05b6b5af0965f376ad0c736b57776823b83205a08b828511c71f45894
2a8f89bedb3b32a92ebff981ae030cfe5ed1e6b8b24d5469f0ca24b60350685ee2dae2dc7aaca612
b2c550edf6916bfe4955da67e7169bad2b4da5693777164cb0dbdbde1e31c2daacff005602c5dda8
11ff00d293e2dd4f0969f63e3550b6bf9a57d6fac798acb51d2ee5a4d32da1d565d34fa22eac2cdec
e272ae232c66266e62b1f3e03ed6dc392af43d0358875fd16c35ab70820bf85278fd395278f8b8a82
b2464aba9ecc3a8c558a687e4fd075b8afb53d4e3b8b8bd9752d455e4fae5da0a47792c6a02a4c1
405550000298aa627f2dfca2c286d6e7e8d42f874f94f8aad3f96be5026a6daeabeda8ea03f55c62a
eff9569e4fa83f56bbdbfed65a87fd9462ad7fcab3f27d6bf56bbaff00db4b50ff00b28c55dff2acfc9fff0
02cd77ff712d43feca31577fcab3f27ff00cb35dffdc4b51ffb28c55dff002acbc9ff00f2cd77ff00713d47f
eca3156c7e5af9406c2def3635ff8e96a3d7fe923155c3f2dfca4a08105e50ffdacb50ffb28c552ad1bc
b9a627987cd5e59add1d15ed74ab816ef7d76e56477b9e4c9234c5d39189397065e5c77c55fffd7f
7f62af9b742f344be5ad6b57920ba1268b7b244f2f9de382679ece1beb9b9616fab5abf25fadc32f08
926e34681c34891f01c9554b6f3ceb5e54d5bcd2f06a28d67a86ab72f321b29795b3c7068eb717ca
84c8e115679e46888654e153cb8498ab5e61f3af99e6974bbdbabd8e6f32f978cf7561059e9f3ac37
b0be85792adfa2483d4f4e497f73c2bc7926df13c78aa1fce1e787be5d435d1e86a52dbc5a9db698
9716d21867d3c6afa2bc04c43873a2c9234727f91cb7e2d8aa61aa7e6e79c2c62d4646d4ecd2d5e
e44705c1b6e0f6b6c35cbed37947cc9491da282193f7b45fb6dd0ae2a81b71a9ea9e64f3479ce0d5
6dad754d06d344d6b52bfd3527bc33b47a4bbcd6f6f144ea1ede5938f301db905fe7a3aaa8ed2bf36
7cdfa8cda88bad4e2b4b2d22c9e495e2b2f56499e4d626d3e294c8c15157d0f4652e22f4d797acca
62f83154bf4efce0fcc2d5cb73d42db4d54b782223f47b31facb68b7b7f2bd6561bacf6891f1e20525e
34e7c3154e2c7f32bcebaf46ba87d7d74c8a2d4f4d86ff4a86c64fac416d3dc284632cf19430ddc6e9
47ab1f8bf76c9c24c55574ffccaf386acba49b3d76c636d4a3d4aea549f4db88cdac961671ccd69373
5461e94dcd1f8a348136f8a4dcaac85bf31fcd963e45d0b5a3a0cf7b7f7f25c5beaf7e7d096d74d36e
cebeb4a219231344e5291cb17a71b2f1791a1ad31565f63e66d55eca073e5ed4af3946a7eb71b69
a126aad79a85bc228dda87154b3ccd61a5f9bede08bccbe44bed516dfd4304731b10504e8629143
0bc1b3a9a32d78b0c550b7fa1683ab701a97e5edf5cfa537d662799ec99964a48a789faed42912c8
193ec30770cbf11c5537d3668f499ae27d37c9ba85bcf77c7eb322b58d5847c8a2926ecfc2bcdb8a
8f856a683154cc7986fcf5f2e6a63e9b2ff00b2ac5534b0bb96f20f5a5b49ac9f915f42e7d3f5283bfee
9e45a1ff5b1544e2ad330452edb2a8249f618abc07cb7f985ab6897f71a2ea9a95bcfaa5f496a9a7f9
8ee2ee4baf2fdcda5d457d756b76c19c35acf37a06de5b7e5c79ac7243c90aae2ad41f9b3e62f2eea
5a958decd677b67a8eb1a9dbe993dc4ce5ec8c3a8db5ad26691e34300fad0118ac54e2aa5be3f85
55fa9fe6af984ea1a66a724f61693e9b16a0ba868b05c3cd14b241a74176d233abaabc3f13185f86c
b47e64332e2aab77f9b1a8c1accda9db4f6f31912e74a82013d74c47b7d7e7d3e2bb943ca8abc911
4337a8bc9dd179538e2af40f20f9b75df35dceaeda845a7c167a6bdb5afa5632bdcbfd666b2b6bb90
99764280ce5128bf171e5df156718abb15762a93dc6b77704f2429a1ea13aa3151345f55f4dc0eeb
cae14d3e6062ac557cbfe5e4bb9afa3f26ea71dccf79fa4dda39a245178496691556f42a976259c28
0b23fc6e19b7c55069e4af27456d716717917508edae92049a3496251cad0462195697bf0cca218
a93ad26fddc7f1fc0b8aa035ef26f97e578757b7d0f53d0efed1830bff56d427a7e9a44637e77ab446
11c64f1642648d24af315c550da1fe636a7a21b0f2fe8be50b9f31e982eded25b9f2f2448b6a1f948d
2cc26b8784fc44fa8c2e8b726af1c55e8be4d24e95724a942752d4c946ea2b7d31a1a138abcbff3e3
cc5af687ae797a1d0ef2f2dc5ce97adcb76d6974f025a8b6365e9ea12c2a18cc969ea3c8f10472f1f3
f85862a9a4bf9b1a8aea77f696afa5be9767341a6c37f71708b34d792b5af191608e425a39927668b
fba4f853f7dc64aa2ac42cff35b5ebcbebfbfb7b941a56ab125f4d6134f231b743e555d47d0b6951c1
86b302c5d41fda6518ab235fcdaf3020b9305be9bf51b18a570669e692764b2d3f4fd464e4d5a1668
ef1907f2baabb72af1c552fd43f31bcd1e70f2cde6afa4c105b5bd9defad6ba3c3a92e9faa5f5b5afd7
22bab369164adbdc20856e232fe9ac854c2eaa8af21551ba47e724b3456eb65e87f87d56cb4f4d57
589d63bf8e7bb86d1e1b9bc843ab70916e7e2f86301d57f78deafc0aafd4ff3a359d22e35bb3b9b4d
327bbd222ba95560b89384c2db47b5d495d588afa6cf3491f2e3f65477e58aaa5ef9ff00ce769e6c9
bcbda6436371a946355fac59bc93cab757961a569d770456e4b030ab1b96aa057ad39f76c55e8fe
4ef31a79bb4287cc76ca0699a8334ba5b8055a4b32691bbab6eacd4a95ed8aa1b4c3ff003bf798c5
76fd1da41a7ce5bf1fc3157fffd0f73798b5cfd050d84c635916f2fed6c18bbf0082ea411f2ad0d48aec
3be2a9ac72c52af389d5d3a72521857e63155237d620906e620c3620bad47e38aab734e1ea721e
9d3973aed4eb5ae2aa22fac9880b7311276003ad493f4e2a82d7746d1f5982d9757e4ab673add5a
4f1cf2da4b14eaac8192585d1812aeca7e2f8958838aa26c7f46db4315869ef12c30af18a18d94d15
7d8127e9c555e5b9b680859a648d9b750ec149f954e2adc53c13d4c322494ebc18353eec556bde5
a44c5249e3471d559d4115f627155449239543c6c1d0f465208fbc62a944bafc2be63d3f4184472fd
76d2f2ede5590164fa9bdba05e22bf6bd7ebdb8e2a9ba22448238d4246a28aaa00007b018aaec55
d8abb15762a96d9eb10dcea1a969efc227b09a3816ae3949eac11cd5e3b53edd3e8c551f24b142b
ca5758d6b4ab10a2bf4e2ab63b9b795b845323b75e2ac18d3e838aa0dac341b58ded9ad6ce18a6

713c9098e2457914821cad002c08146f6c55a1a56817466905959ccd30759dc45139712905c39a1
af222ad5eb8aae7b7d0c4ee648ad05cc91fa0fc963f51a2514e06bb9500fd9e9be2adfe89d12689bf
d06d648648bd17fdd46cad0d79703b50ad77e3d2b8aaf85b4ab7796480dbc524ec1a664e0a5d80e
20b114a900537c5514f2246bcdd82a0eacc401f79c5562dcdbb305599198f450c093f8e2abde58e3
a7a8ea9cb61c8815fbf154abcafae2f997cbda6ebeb17a0ba840970210dcc2f3edca8b5fbb154df157
62a81d4346d23567b59354b1b7bd7b297eb1666e62497d29a857d44e60f16a12390df154680140
502807403a62a91f94c11a7ddd7feae5a975ff98d9b154d65b0b19ee63bc9ad6292ee2568e2b878d
5a454714655622a01aee31543ae83a120609a65a28748a270208c031c0dca243f0eea87741fb27a
62ab7fc3da005641a559f0620b2fd5e2a1210c6091c7f918affaa4af4c5567f867cb64153a3d8f160c1
87d5a1a10ea15abf0f70aa0fb018aaf9fcbda05d453c175a559cf0dd4827ba8e4b789d65994050ee0
a90cc000031df155f3e87a2dcbdc4b73a6dacd25e42b6b76f2411bb4d6e84958a4254f24153456f8
71574ba1e8970cef3e9b6b2bc910b7919e08d8b42b502324aeea2a68bd31543def96f4aba8a716f0
a585f4c5e45d4ad22852ee29a48fd269a3768de9270f839107e1f87a62a8ed3ec2d34bb1b7d3ac63
1159dac6b0c118ec8828373d7e78aa41a67fe4c0f327fdb3347ff93ba862afffd1f7c5d5a5a5f42d6d7
b047736ec4168a64591095351556046c7156ad6cecec2116f636f1db4009611428b1a54f5345006f
8aa09fcb5e5c9199df48b2677259d9ada22493b92495deb8aa3cdbdb9b7faa1890da94f4bd0e23d3
f4e9c78f1a5294da98aa013cb5e5d8dd648f48b2491086475b68810c370410bb118aa49f997273f2
bcba5dbc9145aceb3347a568b3cd0adc886faf09449c46c18130af39b7fd98ce2aade488f46bfd0b4
ed6ad6c2ce0d49a2305e4b6d0c71b25d40c61b98f92a8238ca8ea47b62a9ede691a56a2eb26a16
36f77220e28f3c292b283bd0160698aaeb2d374ed383ae9f6705a2c841905bc6910623a578015a6
2aa371a0e877733dc5de99693dc4942f2cb046eed4141566524ed8aa2edad6dace15b6b3863b7b
74af086250882a6a68aa001b9c550f69a469361335c58d85bdb4ee0abcb0c291b904d482540277d
f1546e2aec55d8abb15762a839749d2a7ba17d358dbc97aa54adcbc48d2829f648722bb76df1555
bbb1b2d422105fdb45750860c239d16450c3a1a3022bbe2aa169a368f61299ec74fb6b59c82a648
218e36e27a8aa8069b62abaf348d27509165d42c2deea541c55e7852560b5ad0160682b8aaa59e
9f61a7a347616b0dac6e793a411ac40b74a90a054e2a95eb3e4cf2a79823923d6746b3bbf51d656
924853d512a10cae2400307522a181e43154beded3cc3e568cdbdb2fe9ef2fa6d15b811c1a85bc74
038ad02453a8dcfc5e9cbfe54ad8aaae8b0791bcc16e6eb4bd3ac64e0409a17b4486e2173bf19a19
11648dbfc975538ab22b8b5b6bb81adaee18e7b67a7286550e8686a2aac08d88c55090e85a1db4
c9716fa65a433c46b1cb1c11aba9f6214118aab5ee9ba76a2106a16705d88c9318b88d25e24ec48
e60d2b8aab410436d0c76f6d1ac36f12848a28d4222aa8a00aa280018aaa62aec55d8abb15638de
4f844d3c96bab6a7691dc4d25c3416f701625927732395050915624f5c55b3e5363ff004bed5c7cae
57fea9e2abbfc2f2ff00d5fb55ff0091f17fd52c5577f8666ffabf6a9ff23a1ffaa38abbfc3337fd5fb54f1fef
a2ff00aa38ab8f9666ff00abf6a9ff0023a2ff00aa58abbfc353ff00d5fb54ff0091b0ff00d51c55c3cb738
ffa5f6a9ff2361ffaa38ab7fe1b9ffeafdaa7fc8d87fea8e2ad7f86e7ff00abf6a9ff002361ff00aa38ab56b
e5582d25d42e9351be6d43528ede19ef9e54332c768ced1aa7eef88de47afc353cbe58abfffd2f7f62
aec55d8abb15762ac5eec3ea5e7ad3edc1716ba159497d30007a6d737c4dbc1bf8ac71dc6dfe58c
55af2f84d33ccde61d087a6914ef16b7691a02a785e831cf5ec4faf0bbb53fdfbbe2aca715762aec55
d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb1549b59f2c699acc8978e1ecf5784
71b6d5acd8437910a8340f43c94d378dc3c6dfb4a715401d5b5ff002f154d7edcea9a554ffb99d3e2
632c4a0541b8b44e4dedce0e7beed1c4b8ab20b2bfb2d4ad92f74fb88eead25afa73c2e2446a1a1a
15246c7154179935c8bcb7a3cfac4f0b4f140f0a34519018faf3243515db6e75c5585dcfe70e97677c
34ebab0961bb796e2dede37703d79adefe5d38080f1a495951792a9f5635951da3e156c5539d07cf
a9ac6bc3cb77ba55d691ab7d4febde85ef143220731b984f49151a81cafc49c939a2f35c559862aec
55d8abb15762aec55d8abb15762aec55d8abb15762aec55ffd3f7f62aec55d8abb15762af35f2d79c
7cb16126bdad6af7b2dadfea5a85c4b3c77304e861b5b23f55817fbba2afa70fabf3919bbe2aaba87
9bb41bcf34f96353d1b53699de6974cbbb58e09489adb504e48d56414e134519e5d02b3d7157a2e
2aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8ab1ebff29db
c97926afa1dcbe8badcb4f5ae6d955a1b8e3cb88b981be09055bed7c12f65957154ab55d46dee74
dbbf2efe65e991c1a55e86825d42267934b9e263f09794717b67daa7d4e2a8dfddcee71554ff00955
bf97971a74ba71d1209b4bba4943db9791e16175ea191d417203b7aaffbc5f8fe33f162a99e8de4af
2c797ee23bad22c05bcf142b6f1b7a92c9445554ad24761ccaa80d27f78ffb4c7154ff0015762aec55
d8abb15762aec55d8abb15762aec55d8abb15762afffd4f7f62aec55d8abb15762a93f9b37f2aeb83f
ed5f77ff00265f154769808d36cc1ea208abf3e03154562aec55d8abb15762aec55d8abb15762aec
55d8abb15762aec55d8abb15762aec55d8abb1569955d4a380c8c086522a083d4118ab176f2b5d
68cd25c7932e96c1599a57d16e01934c91dc966e207c701627ac47d31d7d1738aa22c7cd76ed3c
3a6ebb6efa2eb335163b6b920c133ec296f70291cb527e15f865a7da897156438abb15762aec55d
8abb15762aec55d8abb15762aec55d8abb157ffd5f7f62aec55d8abb15762a93f9b2a3cabae11b9fd
1f7741ff003c1f1546e9449d32c8b6cc608aa3df80c55178abb15762aec55d8abb15762aec55d8abb
15762aec55d8abb15762aec55d8abb15762aec55d8abb1542ea1a769fab5abd8ea76b15e59c94e
704e8b2212a6a0d1811504541ec71563d269baf79647afa1dd7e91d16205a7d275398fab1a281bd
bddbd480a01f827e60ff00bf6218aa8794bf3034df33eb7ac797c4b1c7aae9ab0dd2d9d544e2cee56
8a5d43b82c8e191990b447e02adf16cab32c55d8abb15762aec55d8abb15762aec55d8abb15762

305

aff00ffd6f6ff009b756d4f49b1b4fd0e2dff00485f5f5b58c4f76aef0a7d61e8cccb1b231a0068030c55
0220fccfef7da0fd16779ff6558ab5e8fe6876bdd029ff0030979ff6538ab5e87e697fcb76803fe8cef4ff
00d8d62aef43f34bfe5bb40ffa43bdff00b2ac5546eb4efccbbdb59eceeef3cbf25b5c23c3347f53be01
a39178b0a8bbaee0f6c557c769f9a10c691457be5f1146a1117ea77bb2a8a0ff008fa38aaef47f34fb
5f797ffe90ef7fecab1577a1f9a7ff002dde5fff00a43bdffb2ac55bf43f34f6adff0097fdff00d0af7fecab1
56cc1f9a1daff0040e9ff002c579d7fe92b157699a9f9bed7ccd69a2798df4db8b6beb3baba865d3e2
9e0747b492dd08612cb282184fda94e38ab2ec55d8abb15762aec55d8abb15762aec55d8abb157
62aec55d8ab14d03494d5344b1d46eefb50fac5cc2b2ca56f6e10726dcd155c01f40c55150e81a55
cf2fabea97f2f0a2bfa7a9dcbf1aee2b494e2aa9fe1dd3fd4f47f486a1eb05e7e9fe91bae5c6b4ad3d4
ad2b8aaa7f86ad07fc7eea3ff49f75ff0055315592f96ec3d37f5ef6fbd1e244824beb82857bf2e4f4a7
cf15435a794bcbf4fac69d34e80829eb5addcab515dc728d8771d31545ff00866d4ffc7f6a5ff49f73ff0
0553156ff00c356bff2dba8ff00d27dcffd54c55aff000d5aff00cb6ea3ff0049f73ff35e2ad7f862d7fe5b
b52f0ff7bee7feaa62a90f9bb4f6d0b488b52d3f51d452ea3d474b8817bc9e552971a8dbc322b23b9
52191d94d477c559ce2aec55d8abb15762aec55d8abffd7f6af9dc7eef41dab4d6f4fff0093871559f9
9fad6a9e5bfcbbf33f98b459560d5749d36eafad2478c4c9ea5b46640190f5078d0fe18ab024fcd4f3
4e9d6face9dade8ba8c925b45a86a5a76b50dbdada4dfa16c92251752daddcc87d5f59d915382fa8
8ab2f0507154f751fce7d22cae16d6d74abcd465bd9258343fab1840be96d2fe1d2ee42995e311fa5
713a29f50af24f8d7618aa5d71f9c579a3b5dbde797ef6eac2c6dee6f752b8692d567b5f4755fa8491
18a266568e05e5234a18f289397dac5503aafe63f9d9fce82cfcbd6b35cd835969ba841a41b45995
edae353bab5b99a4bb42ab0a1b6b7fac405dfed371e2f5e0aab2083f3820b9502d7cbb7f712a457b
71762292d38410d87a05999e4990316173111c390ddbe2f871543ff00caecb392e6d6cad340beba
b8b810a486392dd628ee6e6f6eb4e8e2e52c884d6e2d4af3e3c783ac9e38aa1af7f3ce36d0ff004df
97fcb17faa5bbc569e9cacd1dbdbade5e496abf569256e4aaeab74ad5fb2ecac8be38aa3c7e725ac
977636b6be5cd52e5358d4134dd12ed1614b7bb261ba9de44926923148d6ce5e4376de3ff007e62
acb3c97e6db5f3a68e759b384c107af25baa34892356220372086a8ca6aaf1b857475652bdcaaa5
a8ffca7da07fdb3356ff93d618ab26c55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8
aa47e4edbca9a416ff9658ab5ff0057157cd5e42b3f35f942c46b96fa1dd5b5fc3a76bf1f97e3b0d3a7
4f5e4975779664d4a30bce496285639ac390481610000026060f002220574d46430100000000000
10000000000000010000000002000007486010074e60100e5479523e52755591dfea7e72d37ce7
6de69b6faceaad2e84b6771aea693750fa56136bea49307a65de482dd89d93932f29fd2a56aaa732
79cff0032edb58b6d2e19e7bc8bea2d1dcea93e89736d666e0e9d2cf15c2a2248fc5a65457a91c4f2
8d61c550fadf98bcfbe60d36ff004bd461bbd32d26d0ae5a7d1e4d324bf7bffac59de452c69776e8b1
ab47308b83f15e71f0fdcfeffe155036363e6bfcbbf2bd96b9a2faa758d774eb1e5a5e99a54c2c60fd1
167f6668e933acf299195cf14697d355fddfa5565532f33f9cbf32f46d22e354d2ae2ff0052be9b51d4
92c6c068fca08ed34fd45628c33451190fa96cfcd797f7aaad22489c28eaae8bcd3f998b74d74f7f79
2db27ad70968da64691bfa1e60364909610730b25991236fea749d5963e5555453cd3f9a1789a26
adeadec8c2ee66d4346874b96dbd0ba8f4abd2b6533c91832c46e9210ae945dd7f7cc244e2aa676
be61f3f5e25acd07986e3ead2d9ea77e257f2fcd1b07b68ed5a08668e48848c43bcf558d6391d47a
69f1c658aa9b5eea9aceb1f9616b7baf5bcb6bac7e98d323b88a4e24728b5cb740d1ba220789800
637e085e3e25955ab8abd5315762aec55d8abb15762aec55fffd0f6af9dff00bad07fedb7a7ff00c9dc
5536f30f97f4af3568b7be5ed7216b8d235188c17b6e92c9019226fb485e164700f4346dc6d8aa5fa
b7917cb5ae3cb26a76f2ccf3e9b2689330b9b88cbe9f332bbc67848bbb15157fef3fcac550b37e5af9
3ae2e65bc92c5c5c4b7115e7a89713a149e0992e7947c641c03cd1472cca9c5679115e50e71543
ea1f973a5fa174fa0d2cf55bc1790cd7578d737b11b7d5a759af54c26e115b990c62e44a42edc9538
97465531b5f21795ecef27be82d184d71a643a0cc86698c074db60c2384425fd350bcdb7550df1b6f
be2a94c1f93fe40b6827b58b4f9fead73692e9f3c2f7f7d22bdbcf1c31b821e73f111045fbcfef0346ac
1b96f8aafb5fca4f22595c8bbb6b19d2e1668ae839bebc7fdf5bdd497b1b51a62369e5924f7663cab
8aa941f933f9756f0dcdbc3a4bac379690d84e9f5bbb2a63b6e22291419a8b3a0455170b49f8a2afa
94518aa26d7f2abc8f657d16a16ba7c91dcdbea0fac5b817774638af248a489cc71994a2232cd2d6
255111691df8736ae2a9fe85e5ed2bcb96b2da69313471cf29b89de59649e592528b1f2792566662
1111054fd95518aa59a8ffca7fe5fff00b666adff0027ac31564f8abb15762aec55d8abb15762aec55d
8abb15762aec55d8abb1579ff96bf307c91a7e81a7585febf656f7b6d0ac37104b32a491c91fc2caca
4d4104508c5535ff00959bf97bff00532e9fff004909fd71577fcacefcbcff00a99b4eff00a484feb8ab5ff
2b3bf2f3fea66d3bfe9213fae2ad8fcccfcbe3d3ccba77bff00a427f5c556a7e68fe5cca5c47e69d31cc
6c5240b7519e2e284a9a1d88af4c5554fe64790475f3269e29ff2f11ff5c55a5fccaf2033055f32e9c58
ee07d663feb8ab63f323c82771e64d3faf1ff007a23ebf7e2aa9ff2b03c8e5797f886c38d695fac47d7
efc558ef9e7cdde58d53408ecb4cd5ed6eef66d4b47f42dede6592572354b66f855492680127157a
362aec55d8abb15762aec55d8abfffd1f77eb1a369faeda2d9ea28ed124b1dc46d14b241224b0b06
4749226465208ec7154b4f9334822867d4bc7fe3a9a857fe4fe2adff0083748dff007fa8efd7fdca6a1f
f55f1571f2769269fe91a953db54bf1ff33f1553ff000468db0facea9b7fdadb51fc7fd2315613f98be50
96e60d3bcbbe57d5b56b0d6ef6496ff00d68f52bf91cdb6969eb18fe39ca812cc6de27efc247e3be2a
cb748f2f683ac69763ab5bc9a92c17b047731ab6a9a8720b32870adfe91d4568715468f26e8e0d44
ba85694ff008e9dff00fd57c55c7c9ba4135f5f51fa354d407fccfc55aff05e8fbfeff52a1ffb5a6a1ff6518
ab63c9ba38ff776a3f4ea9a87fd57c551161e58d234ebf5d4edd277be489e08e6b9bab9ba2914ac8
ceaa2791c2f228b5a7f2e2a9c62aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8

abb15762aec550da85f5be996175a95d371b5b3864b899bad12252ec683d862ac0fc856d75e5cd5
3f456ad3f3d4bccd67fa7e7251630da92b84bda529f6565b6555fe54f9e2af45c55d8ab54f8ab534a5
29db157356878f5ed5c55bc55d8abb15762aec55d8abb15762aff00ffd2f7f62aec55d8abb15762ac
5b46986afe6ed77535e7f56d2962d12d8b6d1b4aaa2eae5d077a99628d8ff342476c55de4d8db4c9
35af2d3191a3d32f9e6b26906df53d43fd2a3543dd63779215f011d3156538abb15762aec55d8abb
15762aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb15762ac67ce4e6ea3d
33cba81d9f5bbd8e198c7b71b4b6adcdc173d95922f4bfd69557be2adf9c7fd0a2d2fcc0b50747be8
649f8273636b735b5981ee15565f558ff00c578ab25c55d8abb15762aec55d8abb15762aec55d8ab
b15762aff00ffd3f7f62aec55d8abb15592b98e279150c8caa5822fda6205682bdce2ac0bcbbe66b4f
2df95ade5d7acf54b6b821ef353926b1b87e1757b299a552d1a303c6490a0a7603b62a8b8f5079bc
f1a7ded86997ff57bfb39ac353b89eda7b78e2fab1fac5b3b1914291569936f8b948bdb1566b8abb1
5762aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb1568
0a002b5a773d715639aa58ebe3cc906b5a7436d796b05949691dbdc5cc96c5259a64791e8b04a0
d563400d453e2fe6c552b6d535bf3659f983419743816de1965d1ef88d4594b7ad6d1c8cd1916dfc
938a13fb431564fa041a8dae87a75aeaee25d520b6862bc9558b8799102bb72216bc88ad683154c
715762aec55d8ab551503b9c55bc55d8abb15762aec55d8abffd4f7f62aec55d8abb15762ac63f30ff
e50ed4f6aed0edff3de3c5593e2aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8
abb15762aec55d8abb15762aec55d8abb15762ac53c9b4fd27e73a7fd5f4d7fee1d638ab2bc55d8a
bb15762aec55d8abb15762aec55d8abb15762aff00ffd5f7f62aec55d8abb15762ac63f30e9fe0ed4a
a2a3f73b7fcf78f1564f8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55d
8abb1548353f3a797348d41f4abdb993f48471a4d2c305b5cdc948e52c10b182370bcb8350135db
1543ffcac1f2b1207af7552683fdc7df75ff9118aacff00958de5202a6e6e47cec2fbfea862ae3f98be52
02bf5ab8a0ff00970beffaa18ab87e62f948d697373b753f50bea7fc98c55bff00958be53ff969b9ff00b
87df7fd50c55c7f317ca4b4add5c0affcb8deff00d50c558c7957cf9e59b5d47cd6f733dcc6977ac99e
d99ac2f68f17d42ce3e43f71d39230fa31564c3f31fca24d05ddc54f4ff41bdffaa18abbfe563f9440e5f
5bb8a78fd42fbfea862aeff00958de51ebf5bb8a6dff1e37bff00543155bff2b27c9f5a7d727aff00cc0d
effd50c55dff002b2bc9dff2d93ffd20deff00d50c55dff2b2bc9dff002d93ff00d20deffd50c5535d13ccfa
1f988dc2691746792d387d66378a581d04a094256544346e268694d8e2a9be2aec55d8abb15762
afffd6f6bf9da6ba4b4d2adedae65b4179aad95acf25bbfa72186473cd430dc569434df15575f295ba
9afe95d55bbd0dfcff00c1b156c7952dc1afe93d54fb7d7e7ff9ab155bfe1182807e96d5b614afd7e7d
fe7be2aeff08dbd3fe3abab1f7fd213ff00cd58aa94de48d3ae616b7bad4354b881e9ce396fe7753c4
d45416f118aab8f29db507fb93d576eff00a42e3fe6bc55b3e54b635ff725aa6fff006b0b8ff9af1568f9
52dea08d4f5414dbfdef9ff8b62ad7f84adea4fe94d577ff00b585c7fcd58aaa1f2b5b114fd21a9fcfebf
71ff35e2a8182da4d2bcdda7d8c37b7735add69f7b2cd0dd5c4970a64826b508c3d4268409186de
38ab2ac55d8abb15762aec55d8abb15762aec55d8abb15762ac6749b3ba8bcede65bc96174b4b8
b5d2d2de76521246885cf30a7a12bc96bf3c559362aec55d8abb15762aec55d8aad7758d1a47215
1416663b0006e49c5587afe6bfe5db22c89e60b768d8064751232b03d0a90b420fb62ad8fcd5fcbd
3ff004be83fe065ff009a31571fcd5fcbc5ebe60b607c0f3ff9a71577fcad6fcbbebfe21b5dfddbfe69c55
a1f9aff009746b4f30daedd776ff9a7154834ff00ccdf21a79c75cba7d76dc5acd65a6c70ca7984678d
eecbaab71a1239ad40fe6c5590ff00cad4fcbce3cbfc436bc475356ff9a7156bfe56bfe5d7fd4c569ff0
4dff0034e2aeff0095aff975ff005315a7fc137fcd38abbfe56b7e5d7fd4c569ff0004dfd31571fcd7fcb9
14af992cc126801722a7ad06db9a0c55ffd7f6af9de9e9e815e9fa6ec2bf2e671578d790ff00313ccba
77957ca9a6daded94f1dd47a5c77173a87ad757665d6352bdb6924690ce39089614700ffaa5b8d2
8aa2dff3cbce71d8d96b10e9fa7ea16f711da35ce976914e6eede1bbd31af64bd66f55c1820910871
c179237f79cc7c4aa2bcc5f9a5e7a8e7d66c34d9f4db6b6d2617b8fd29f569263756e97f05b19e106
e151115266e6c7d45e70bf66f81555bffce8d766f345f796f429b4a9122b982086fe58e57003c9aa45
3031ace849436316e4ad7d463ba346e55523f9e9ab4da3a6ab07e8b8a737363617d6170658ce9e
9a825a326a37129240b53ebb5199157e28bf7bf0c98aa5b3dff996ebcc5e63f3726ad6d623cb70e8
bad6a7756f757b7166633a5bbdc5b416814078276a37362ac07c617d4f8b154eb49fce1f306a7a8d
e8965d2ecf47d3a3a4f298de69a599f5ab9d262e2eb7222404471486bc907a9bc823f8f154b34bfce
ef396b6c1add749b484c36a7f7914d2912cfa25e6a727c42e1010b2da08a94d964dfe25f8954c34af
cddf32798a459e1974bd36ce1d52cad2f6c834936a50c525cc684cd1b84548ee1245f4a5e5fb6bc3
9ee55555d33f35bce5ad8d224d32e3cbc575486f6eb817b894c26cece3b836f3b738842eb2178e42
448635f899030e2cab2ff2c6bb73e63d4fcb9ab5e5bbdb5e4ba7eb11dcdbc88b1b452dbde5ac4c94
49255600aece8ec920f8d7e16a62af40c55d8abb15762aec55d8aa59e63664f2f6acca4ab2d95c90
c0d082226dea3a62a923683e43d36c2d26d52cf4eb349551237b9f4e20ce52bc41722a683154745
e51f27cf124d0695672c322878e448d195948a8208d8838aad8fcade4a9a69ada2d36c64b8b7e3f5
885550bc7cc725e6a375a8dc571552bbf2d790ec781beb1d3edb98768fd611c7c8448647239115e
2aa59bc14571574fe57f21db5a36a17361610d8050ed7527048423528dcc90b435eb5c5575a795f
c8d7f0fd62c34fb0ba82a57d5802489c97a8aa922a315563e48f291eba35aff00c8b18aadff0002793
f7ff70b6bbf5f83156bfc07e4effab35b7fc07d1e38aaeff037944907f43db5474f83154b753f2e687a35
f68373a5d8c569707528e3324438b146826aa923a83e18ab32c55d8aa0f57ff8e4dfff00cc3cdff103
8ab1df2f6af63a07e58e91ae6a927a5a769da15adddd4942c4450da23b500dc9a0d80eb8aa7f6dad

307

e93756b65790dec3e86a31c5358b348aa654b800c6501209e40ed4c55525d534d8412f770821cc3
c4ca8099453e0dcfdadc7c38aadb3d56d2ee08252e20967816ebeab33c62648dc03560acc36e848
257fcac5525f2f79ef46f335c6a3169a930b7d2eeef6c2eef6511adb89f4e78964a3090921bd50c8d4
a150dcb89db15425d7e667976cfcc6fe5b9e3ba0f14b6104ba92c6af62926ae1cda0322b96a48c85
0370e21f88661c9715651fa4b4ea237d720e3202633ea25182d49237de9c4d7e58aba4d4f4d8a9e
ade409c93d55e52a0ac742dc854fd9a026b8aacbad5f4ab28da6bbbe820893d22ef24a8a144ee23
8c924edcd982aff31c5555afec53973ba89783fa4f59147190d0f13bec77e98aa57ab5dda9bbd0671
3c6601a83a1939af10df52ba5a57a56bb53157fffd0f687e60dd5bd8d968b7b792ac16906b360f3cf2
10b1c69ea11c998ec054f538aab7f8e7f2f9481fa7b4b04834ff4883a0fa71540d9798ff2df4fd4b52d5
e0f31587d675630b5cf3bb84a7fa3c4224082bf08e2bb8c551ebe7afcbfa045d7f4aa50a28facc1f646
c47dae9ed8abbfc79f97fc7d4ff106965491f17d660ea7fd962ad1f3ff00e5f056e5e62d2f8d383d6e61
a53c0fc58abbfe560fe5fd48ff0011e995602bfe950ee1ba57e2c55a5f3ffe5eb060be61d2c8fb2c05cc
3d3c0fc58ab7fe3dfcbfd81f30697b9dbfd261ebff00058ab8f9ff00f2f96aa7cc5a58a8151f598770bd3
f6bb62aeff9581f97f534f30e99c8549ff4987bd2bdfbd7154159ebba0eb9e76d30685a85b5f25ae997
feb8b4912511fa93d9f1e5c2b4af134c559ae2aec55d8abb15762aec552af33ffca35acffcc0dcff00c9
96c55e79f9aba5eafab58fe5ba68d693dccb67e67d2afee6786ddae52dada0827579a555228aa5d4
1dfbe2ac4a6d0fcf5e454d6bcade56935ffa9e91a65edcf9727b4b6b7bab2bb6bbb679983b1a84b84
be7768a148b68fd244fdc72e2ab2595bce506bb7160b26b737953eb5a7b5e5efa456f7ead716372e
c6ddd225660975e82cca0178d7e1fb1c862ac42f9ff0034ee27d29fcc5a6eab71e6ad14decd0ddd8d
b2c9a69867f2edd4704aa0294371f5a7f4e54a7f78d455f47862a88f3149f983af7917cf5a2ebda4eb
336ad2687343a4db5b5aabe9d7705ed9c0902f1039fd6d2732faa80270f8b97eebd3c551fe60d2fce
3e4ed7eceff00cb11eb17f26bf7d6dac6bb2585a462c4709f4fb39626b751cd196c924239bb726e6d
c5e5e1e9aaa363ac7e68e9f6be559ae6dfcc379773dd7d6b5a924b649235b63aa0b7961786348d9
08b5fde27214e3578d4c95645549b50fcde8a0d3ae6c64d6ae3513168134b05d5a05b76bab8bcba
b7d41260205e31a40b0bb81c786d20dce2a80bcb8fcd9beff0c798b4db6f313ea36a356175a6dfc11
db4716a6da42ac6ac91bd2580dcabfa524a7d10edc51bd323154fa3bcf3f5fbab58df79a6c34d7d1f5
7beb47bdd2e2facc57c2e2016914b0952d214569b844f2a3ccabfea31559ae9b36b53e81e536f30d
bbdb6ac9aafa53abc8d2f3110b945955a454938c8a03a2c8a245560b27c609c559fe2aec5505ac6d
a4df9ff009769bfe2071561fa668d7faef90bc97636d75f55b15b6d2ee3526462b34905bdbac8b1c67
8b0de558cbd7ed2065fdac558245f94faa06b2f25ea6f0dddb4161a9dae97af886437165a7bea96d7
36712cbe9f1171044a523a327f76ae3a118aa67e5afc97b8d20f97ff004a8d335193449ae1ee6ee48
e7967bfad935a433cbf586942cbbab385f8053e0ff25543dafe4a6bb068b1e92756b459608e092daf
5217f512587451a4b5b1e9cad5ca8908a86e2ce94fb2e156ec7f27fcd163a86a5ad5bde6969a85ed
e5f6a315a98e67b50f797fa75e8824d94b47fe86e8cc003590384f868554dedff2902ea7afead3db69
427bed32cecf44b448246d3eceeed21b94e6d6ac446e9cae2a3f6e81becf2d954aadbf2775f845fdd
492e8f3ea72c13c7a7b5ddb35dc303dc5d4370542ba0011552444e238af204474aa62aa50fe47ea
8d3693717b756171369d7165248f2a4933c90d9ddeab3942ce2a792ea08bbedfbb3d88c5513a5fe
4eeb1616b0c5732e9d7b79630e98b677b2fd6b99fa80b032dbbc658c62276b10cae119fe255e3f07
275511a5fe4fdcdb5d584faa0d3b527b3d4e5bdb9baba1717335ec42defa181e65999d1644376b55
8e8bf03306f89551557bff216ad1f93b4bf2649a9334b36a4cb15d23f0996d05a4e7d17b8f4b9b1e0a
62f5b8fafc0afef3d65f5b157ffd1f7f52bb1e98ab5c57c062aee2be031577043d547dd8abb828e8a3e
ec55dc57c062aea0f0c55d407a8c55d41e18aba807403156e98abb15762aec55d8abb15762aec55
2ed7e196e342d52de14324d2da5c471c6bbb33344c001ee4e2ac7ed3cf9611dac08fa46ba1d6340
c3f436a1b10a2a3fb9c555bfc7da77fd5a75dffb836a1ff5471577f8fb4eff00ab4ebbff00706d43fea8e
2aeff001f69dff569d73fee0da87fd51c55dfe3ed37fead3aeffdc1b50ffaa38ab5fe3fd3f953f43ebbc69
5e5fa1afe95f0fee7156ffc7da77fd5a75cff00b836a1ff00547156ff00c7ba752bfa275cff00b836a1ff00
5471577f8f74edbfdc56b9bffda9b50ffaa38abbfc7da6ff00d5a75cff00b836a1ff0054715415d798a2d
7f51d12d2cb4cd56378b5049e596ef4dbbb585234865059a49a3551b903ae2acdf15762a87beb76
bbb2b9b55215a789e204f405d4aeff007e2ac4b405f3de8ba1699a3368ba6ccda75a5bda7ac35495
43982258f953ea2680f1ae2a997e90f3c57fe383a771ee7f4a4bff006438ab4752f3c8278f97f4f23b1f
d2b20ffb11c5567e93f3ef11ff003ae69c4ed51fa5e4fa7fe3c31568ea9e7fede5bd3bfee2f27fd9062a
92e97e7af38eafaceb5a25a7962c84fa23c31cf349aac8b14a678f9fee9bea1f10420a3ff2b8c55391a
a79fea2be5bd3b89fb47f4bc951ff004e18aa25b50f388b58a44d0ec9af0bf19a03a938458ebf6964fa
a1e469fb3c57e78aa18eabf981c495f2d69c5abb03ac4836f1ff00783155a756fcc3ede58d37fee332
7fde3f1541de5cfe625d5c584e3cb7a6a7d46e1ae0afe9890f30d04b0d2bf50dbfbdafd18abfffd2f7f6
2aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb15762ae
c55d8abb15762aec55d8abb15762aec55d8abb15762aec55dbd7db15762aec550ba9ea10695a6d
e6a9755fab594325c4dc454f0894b9a01d4d062ac234dd2eebcbf2795358be9e692feec4f63ad9a0
08d36acc6f033af6f4ee17d28ff9565e38abd0715762aec55d8abb157fffd3f7f62aec55d8abb15762a
ec55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb15762aec5
5d8abb15762aec55d8abb15762aec55d8abb15762ac63ce527d68693e5c5491db5abd8e398c5b0
4b4b4ff004a9d9cf646588427c4caab8aa3bcd7a7cfa9f97afedad14b5fa462e2c555b81faddb309a0
a376fde22e2a8cd23518f58d2ac756851a38afa08ae5629367412a07e2d4ee2b43ef8aa3715762ae
c55d8abffd4f7f62aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb15762aec5
5d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb15762a90ebfe

54b4f305dd9df497f7fa7de5924b1432e9d74f6d54b8285c328aab6f1aee4571562765e4ed42e75fd
5ec5bce1e614b4b25b536eab7709de64767a96b724f418ab37f2f6876de5bd22df46b49a7b882dcc
8566ba7124cc6591a562cc028eac6940001b62a99e2aec55d8abb157ffd5f7f62aec55d8abb15762
aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb15762aec
55d8abb15762aec55d8abb15762aec55d8abb15762aec558e68e3fe76cf33311dac00f90858ff1c55
91e2aec55d8abb15762afffd6f7f62aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55
d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb1543dfdc9b3b1
babc0bccdbc524a13a57d352d4fa698ab1bd1ef3cebab69561aa73d2e15beb686e445e9dc315332
2bf1afa82b4ad2b4c551dc3ce9feff00d2fe7e8dc7fd55c55a09e76a8acba571ef48ee2b5ff9198ab8af
9daa78c9a553b552e2bff13c55c57ced5da4d2a9fea5c57fe278aa5b67a5f9ead757d53503369262
bffabf050973c8186328d5f8bbf6df154c78f9dff9f4aff80b9ff9ab156a9e79dfe2d26bdbe1b9feb8ab64
79e3f65b4afa56e7fae2ad53cf55fb5a4d3e573d7efc550b7779e78b59ec60234a637d39b75602e40
52b04b3d4efbed153e9c55fffd7f605a9fccfd6526d434ed7744b2b17b9ba8adada7d1eeae2548e0b
892150f2aea51076a2549089bfece2aaff00a33f373fea66d03fee0577ff00795c557585d79eb4df31e
99a7798f52d2f51d3f528ee405b0d3e7b196392dd55d4f392f6e41041208e03fd6c559ae2af354fce2
b17bd7d3c6877cf76faa6a7a0e9f142f6f23dcea3a44324f222afaa0aa3a467848df0034127a7c96aa
ac97f38ed2d34bf31eb7a8e85796ba4f95eea7d3b54bc696d9a34bbb7101a12b254467d75fde91c5
02bb3f103154db51fcc37d26c348bcd43459d1f57d5ed74381239a0963325f53d2b8490351e035fb
43e3ff231564d7baf68ba75edae9b7d7f6f6fa8df1e3656b2caa924ac6a005526a6a450789c5525f2b
79ff42f33695a3df99934fbed6a169ed74bb8963facf146753b03bff76dd3af16a7d938aa643cdbe582
2d88d5ed08bb9bead6c44c844937c3f00dfafc6bff00069fccb8aa738abb15635e67d535fb5bfd234af
2f0b45bbd49e7f526bf59648923b78b9d02c4c849248fdac553db017c2ce11a9b44fa8711f586b656
484bf7e01cb301f338aa135a5f30b4118f2ecb6515cf3fdf36a11cb2a7a743f6444f19ad7c4e2aa5e5
5d52ef5af2fd86a77f1c715ecf1937090f2f4c488c51b8f2de848a8ae2ab3ce1e64b7f27795759f35dd
c125cd9e8b6736a173042544af15b2191c2732179710680918ab13bff00cdcb5b1b5f324ffa0ef2e2
4f295b1bfd6d6192dd923b53666f559243200ccc8a5447b372fb5442ae555f37e6998a4d12d3f414e
baaf982dee2fb49b196e6da27b9b6b586099842c5cabcc7d750b0d55be091abc56acab21b3f3625d
f9c6f7c9ff529629ecb4db5d59aedd93d368af65961440a0f20e1a09395453ecefbecaa5daf7e68795
744b58ef52f60bdb55d4ed748d4658678c25a3ddc8d1092424d38ab2b034eeacbd55b154c2eff003
03c9765a5b6b53eb969fa296c5f56fad4720951ac6346733298f9721c5188e3b9e2d4fb27155b0fe6
2f91678c491f986c0936f15d98cce82510dc043133464f205c489c548e4792edbe2aafa879e3ca1a5
c714b7fad59c293dabdfc15994996d628da669230092c382b38e3d555b8fd938aab0f367973f405bf
9a1b52823f2fdd4693c17f237089a39055482d4ea3154ae0fcc4f2f1bbd622beb88acac34b96d218b
519668dadee85f5aadd46d09526a38127e4acff00637c55397f326811c97313ea56c24b2557ba5f5
56b1abf10b5dfbf25ff00825fe618aa6104f0dcc31dcdb48b2dbcca248a542191918541046c4118aaa
62aec55d8abb15406b9b68ba91ff9759ffe4db62ac3afa7f30dafe55696de57024d77ea1a6882dc49
1413ce816269e2b779eb1acef08904264f83d4e3cbe1df1562fa27e73241a4413a4575e63d2ada34
bad575a9c47637b61610000026060f002220574d46430100000000000100000000000000100000
00002000007466010074e60100b0dcea97361e8cb6810729ed1e1f4a70bc39f0674e47e165537b3
fce23a85e689a6d8e8324b7fe6186ceff004c43731ac674fd42d6eaee296493890ae16ce5578c72f8
b851d95b90552ad7ff0038aef50f2a79a63f2e58bd9f99f4cb0d42e62779a2291476ba7c1782e1243
1c89211f5a88040ac8cdca9214a3b2a9c795bf3167d5752d4740b2b3bbd4755b4d4aee1bc5ba9ed
a2315b5b4d6f04925bf1450c8a66e491b9e7c55b94bcf82b2ac13c8ff9a7e7fb7f2c45e76f30249acf9
645a6a7f5e9265b6b495afecafe74816cc44aa5d3ead03faa0a31f53d329f0fabc1566f2fe7322e91a
979862d0a56d174f6e2b2bdcc4b3cbc6c53507e30a866da275f1f8abcb822fa98aa2350fcda6d3e5b
b67d0656b0b392f049722e63e462d36fe2b1b870801dc7af1ba2d7e3f8d4f0e2392ad5d7e6b4f13d8
5d2688c9e5fbc96471aa4b38557b086caeeede48902d4c8a2d68d19a2d244fde13c822aad3fe66e
ab6f30b46f28decb7c2d2f752fabc1342ef25a58fd5ead029e2d23bfd6155138ad5d5d457e12caafd5
fcfba47f85340f3f7ab07e87fac3dcfabeb7ee7d3faa5d27dbe1cabdb87a7eaf3fddfa7ea7c38abfffd0f
6469f279ef46865d3edfcbd65796e973752437275430978e7b89255250dab71347151c8e2a8afd31
f981ff52ad97fdc5cff00d91e2ab2d22f366a9e62d36ff58d22d74db1d3a3baabc57c6f24779d515405
fabc541b124f2c5597e2af22d03f27350f2f79a25f3bd8ea9691f99ae758d46f2fe64b36115de8faac8
b2b594c0ca5fd485d11e19c37c257898ca3b2e2a9ce8fe41f3169363e6cb78f58b4371e62d724d72
1ad933c0b0cfe8a4b69711bca7d5478e2e0cca633f19db6c5526d1bf25e7d2adb49d262d4ede0f2d
d87980f9a3f445adb48915b5c44e1e1b5b1e733086d83559e32adf1b318bd253c02acbae7ca7ab1f
39c9e63b3d4adff0043df41691ea3a55dda7d624f5f4e92492096de7f517d3afa843868e4e9ce3e0f5
38ab05b2fc96f335ac3a0c47ccd68e9a10b268626d3dcc7eb594d74ecc00b95aaca9754e327a9e9
b27c0c164914aa8db2fc9bd42d174b54d79a23a5dd0b9b078beb0d259c45ad4c96b6ef2cee5ad64
103836d71eb449ea27a617d08b157ae62aec558e798a1d71753d1f52d1ed7ebb159b5c0bbb5f5d6
dcb2cd10546ab8e268462a9e59cb7135b452ddc1f55b975065b7e624e0de1c9763f462a87d56ef5
2b48e36d374e3a8c8cd492313241c569f6aafb1f962a85f29d9ea561e5dd3ed358a0d4e38ff00d282
c86601d98b11cc81ca95a57154379f3cb5379cfc97af794a1bb5b17d72c67d38de3c6661125d218d
9f8074e442b1a0e437c5587ffcaa4bab2f2d79c7ca1a1ea76d61e5bf36d94f12e9e2cc98f4fbfbe83d0

309

bb9adc2cab58a5a997d06fb13722afc1b862aabe6bfcadbff0035f94ecbca37fa8594da745a7456137
d62c9a4786f2dd42c7a8593acc8f0ce82a53e26e2dc7e2f84f25590797fca179a5f99f53f33ea7a88bf
babab2b4d22cc2c66365b2b1927950ccccefea4ccd70dcdd7829e2288bbe2ac293f25f5a5bf935697
cc56f71a92cda75c5bb3d8b24664d2352babe87d555b8a5196e4c6c2211ad539aa8ab2e2aab73f9
20928bc86db5736506a169a95a5f3db472234bfa5c5dbca8f1fac6178926bb69a1e49eac3c7d3497
83be2aad6df94faf5b36ad751ebf6c97faadd687732b2d8bfa7e9e896f1db491ff00bd1ea0f5952aae9
223c47bb62ab7cb9f93da9e83a4cfe5f7d7a0bad1ef34c8ec2e03580f5e3b9b7b692ce39eddda6611
a989979a157f8d58a3a7a8d8ab21bbf266bd2e87e54b7b4d5eda0d7bcb0f13fd61ed1a5b1b9416b2
59ca8f6e675701a39095226e4ae0755e4a5549b56fcacd67509f5516daddb5ad86a9241ea5b2d93
6d045a5c9a694aa4e9c4fc6255f4f82ede93aba1c550717e4c5ca43710bea9098aeed6d2defed628
ae21b6bb9accdb04b9745b9e50dc22dbf18ee2d9a29374693d46853157a6e87a7dce95a3586997
97b26a577676f14136a1380259de350a647e3b72622a7154c315762aec55d8aa5be60609a06aae
7a2d9dc13f444d8aa55a5e87a4ebbe4bd0b4fd56d96ead12cec668958b0292c312347223290caca
4555948618aa12cff2dbcbb63e648f5cb7b6892d2dec20b0b4d35632228de0b99aebd627951dd9e
62c4ba96e63d4e5cea7154cad3c8de51b06b36b2d22dedce9f31b9b1f4d4a886431bc3fbb00d1542
48e8a83e05576555a362a96afe547e5cadbb5aaf972d05bb539c7c5a8ca20fab716df75317eed90f
c2c8155810ab8aa2e2fcbaf2441771df43a25ba5e45753dfc7380c1c5cdd0412bd6bbf3f4d0953f0f2
446a7255c55b5fcbcf2526810795c68b6e7cbf6b33dcdbe9ec19a28e694b9765049a72f524e5fcdcd
ebf68e2aa4bf969e435b05d2ff0040db369eb234cb6ec19d03bdb0b363f113b3420464742a07862a
b9ff002e3c952c6f149a4c6f1c8b3c6ead24a415bb9a3b8987dbfdb9228ddbfca518aaac1f97fe4bb6
0cb06896d1a3ddbea25029e3f5995645760b5a00c2593920f81bd47aafc6d8aa8d97e5af91f4e8e3
86cb468a18e2b4974e8c2b49b5a5c3a3bc5bb9f8498d29fcbc102d02ae2aa9ab685a484d0f4816a9
fa38ea0f2986ad5f57ead7537a9cabcbd4f53f79cebcf9fc75e58abfffd1f7f62aec55d8abb15762aec5
5d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8
abb15762aec55d8abb154b7cc3ff001c0d57a7fbc771f6becff74dd7db1578ce85ff001c3d33ff00260f
fbc96ffdc7f75fdd2fd8ff0027c3154c3ff3e2e2aeff00cf8b8abbff003e2e2aeffcf8b8ab875ffca8b8ab7ff
9f17155c9d1bff261f4fdaebd474f7c55cbf64ffe4c3fa7afd18ab69d7ff2a1f5fdac550b7dfef5699ff29df
f00bd4dfdefdbff0079a7feebfcaf1ff239e2afffd900000840010824000000180000000210c0db01000
000030000000000000000000000000000001b4000004000000034000000010000000200000000
0000bf000000bf0000af4300008943030000000000008000000080fe7fe9430000008000000080ff7
fb6432100000008000000620000000c00000001000000150000000c00000004000000150000000
c0000000400000051000000007d01000000000000000000d20100006c010000000000000000000
000000000000000005e0100001201000050000000f003000040040000c0780100000000002000c
c00d30100006d010000280000005e0100001201000001000800000000000000000000000000000
00000f20000000000000000000000ffffff007a7a7a006d6d6d006464640068686800656565006a6a
6a00696969006b6b6b006767670063636300666666006f6f6f006e6e6e006c6c6c0073737300727
272007070700071717100757575007e7e7e0078787800777777007676760088888800f6f6f600fef
efe00fdfdfd00fcfcfc00acacac00868686009898980085858500747474007c7c7c008282820080808
0008787870092929200838383007f7f7f007d7d7d00797979008181810084848400909090009494
94008f8f8f008b8b8b0089898900919191008d8d8d008e8e8e0096969600979797009c9c9c009f9f
9f00999999009a9a9a009d9d9d00aaaaaa00f8f8f800ededed00b1b1b100b7b7b700b0b0b000afaf
af00a9a9a900aeaeae00a6a6a600adadad00b2b2b200b6b6b600b4b4b400b3b3b300b5b5b500bc
bcbc00bdbdbd00c1c1c100bebebe00c7c7c700c0c0c000c2c2c200c4c4c400c3c3c300bfbfbf00c5c
5c500cfcfcf00cdcdcd0029292900cbcbcb00d1d1d100cecece00c9c9c900cccccc00cacaca00c8c8c
800d0d0d000d6d6d600d5d5d500d2d2d200d3d3d300d8d8d800d7d7d700d4d4d400bababa0044
444400eeeeee00f7f7f700a2a2a200c6c6c600b8b8b800bbbbbb00b9b9b900e1e1e100fbfbfb003a3
a3a00fafafa004d4d4d00e7e7e700ebebeb00474747004f4f4f00e6e6e600dadada00e8e8e800f9f9f
90040404000f4f4f400e5e5e5008c8c8c0041414100f5f5f500a7a7a700a5a5a500eaeaea00494949
00f2f2f200f3f3f3009e9e9e0093939300a4a4a400ababab0043434300525252008a8a8a005a5a5a
00dfdfdf003636360033333300dedede00efefef004e4e4e00e9e9e900d9d9d900dbdbdb00f0f0f000
e4e4e400131313001717170048484800f1f1f1005f5f5f00e3e3e300e2e2e200232323003b3b3b00
e0e0e00056565600242424005e5e5e00a3a3a3004b4b4b0059595900dcdcdc00ececec00545454
00dddddd0062626200454545005b5b5b00a1a1a100959595005353530019191900373737004a4
a4a006161610055555500424242004c4c4c00a0a0a0007b7b7b0020202000464646005d5d5d005
85858005c5c5c00575757001b1b1b002a2a2a003f3f3f009b9b9b003d3d3d000d0d0d00a8a8a800
2f2f2f00313131001f1f1f001a1a1a0015151500262626003e3e3e00303030005050500039393900
3838380060606000515151002d2d2d0028282800272727001c1c1c0014141400040404003c3c3c
002b2b2b003535350032323200222222000f0f0f00343434002e2e2e001e1e1e001d1d1d000e0e0
e002c2c2c002525250021212100161616000b0b0b0001010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010

101010101010101011b1b01011c01560f8c2f3a3a36373737373737373737373737373737373737
3737373737373737373737373737373737373737373720202020202020202020362020203b873c
20203720cb8c8c38203a37203b38383c39c08c3c39ac2d00000101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101011b01011b01011b42ce1c011c1b011b01010101010101010101010101
010101010101010101010101010101010101010101011b1b1b0101010101010101010101011b1
b011c011d011b0101011b1b010101011b01011b0101011b011b014400001b0176011b011c1b010
10101010101011c011b1b0101011b010101010101010101011d011b011b01011b0101760101010
17f01011c011c011d010176017601011c011c011b011c1b1c011b011d011d010101010101010101
01010101010101011d01017601011b1d01011c1b011c1d011b0101010101011b011d01011c0101
1b1d01010101011d01011d0101011b0101011b01011c1d01011b76010101761c01011d011a0176
01011c011b01011c011d011b01011c0101011c1b01741c01011c011b0174011b1b1b1b01760101
011d01010101761b010101011c011b01011c010101010101010101010101010101010101010101
010101010101010101010101011c1b0101011c473c01011c011d01010101011b011d01011b0101
017401760101011c010101011b0101010101017401011b0174011b011c7401011d010101011b1d
1d0174011c011b010101011d01011b01011b1b011d01011b1d1b014400000101011c1c0101011b
1b1b1b1b1b1b1b011b74010101740101010101010101017f010101011c1b1d74013e011d017401
741b1c011d011b011b1c1c0176011c1c01013e01011b01010101011b0174010101010101010101
010101010101010101011b6d1b017401011b01011d1b01011c01011b1b1d740101010174740101
1b011b011c1c1c01011b1d01011b0101017f1c013e010101011d01017f011c011c01011c7401760
10101010174011b1b76011b011b1b01011d1c01011d0101761b0174011b011c01011b1b01011d0
11d011b1b1b1b010101011b0101017674011c01010101010101010101010101010101010101010
1010101010101010101010101011b1b0101011b42ac01011d010101741d0174016d011c0101740
11d1b74011c7601013e011d011b1c011b76013e011b01010101011d1d1b01741b013e1b7401010
11d01011b01011b01011c0101011c011c011c017401017401011c1b420000015969585c595e595
85858585858585865595d645876011d01010101010101010101017f011c1b010101011d011d010
101010101011b011b011d0101011b740101760101741b011d010174011c011d1b0101010101010
10101010101010101011b010101a84b494048af1b011b1b0101011c1b1ba570474c41b00101011
b01011d1b1d01011b7f011c011a011d017601011c0101011c011c1d011b011c1b0176011d01017
41d01011c1d1b1d01011c1c013e1d017401010101010101741c0101011d011b013e761b1d01010
11b1b1b01011c011d761b7f011c1c011b010101010101010101010101010101010101010101010
101010101010101010101010101011b01010101014a477f1b0101741b01011c011b0101011c740
11d01010101011b0176011b01011b011d010176011b1b011b1b0101010101011b01011b1d0101
1b011b1c010101011d74011d0174011b1d017f01741b011b011d011b1b430000a51215232c152c
2525252525252525252c2a2a2c084f010101010101010101017969623e01815fb03f62afa41d0179
b25ea40174589401017f010174b29e013f9c663e98943e97856763857fa47d88010101010101010
1010101010101010101011c76744a35706a72941c011c1b0101011b01019e4d4954124d3e1c1b1
b0101011c010101017e986c74016cb21a7e887c7e0101b068691c0179648a010174011d82856c8
b019a628501019a5b6d011d738b9e6c741ba8a28178013fb21b011d9b81013e011b946c019d7c9
474b0a53e9e1da4697f016c6685011c01011c011c0101010101010101010101010101010101010
1010101010101010101010101011b0101011b010172ac01011c1d01011d74010176011d0101011
c01017401010101761b0101741c01011b01011b1a01011d01011b1c017f1c1d1c74010174011c01
3e01011c011c1b01017f1d1c011d01011b011d1d01011b1c011d1b014600007cb674010174011b
0101010101010101010101014760017601010101010101015fe6ae7f76bec49aa5bfa64d013e0a2
33893575699055101011d1b185a0a5d8575299c962c117b20114f34650b5e2c730101010101010
101010101010101010101011b014a4001017f01011d1b01011b1b0101011b1d01018e6f1b01010
11d01017f1b740176acd68f1d6fd8371b48e5c4810152b53725c18515da271b01011b459546b445
5dc619cb9e4e1847277f24a357ad0d0145de38db349e77bd38018690721b011b2795115c82ad23
677a2e250c422c4b3cafb36a2f3f741b011d011c010101010101010101010101010101010101010
10101010101010101010101011b010101011b014d6e01740101011b1b01018a1f5601011b7f010
11d016d1c0101013e017601011c0101011c1c017401011d011b7f0101010101011b76010101010
1011c01741b0101740101017f011d1b1c76011b017401011d011d1c8f000082ce011d0101010101
010101010101011b01760140521b01010101010101010101bd837fc1e2760101259101745c1874
0147d9a801020c011b015f9559015701138755951b2ab7677c5be25b6276b44301010101010101
010101010101010101761b010142481b740101011b010101011c0101010101011c454f01011c01
1d011b0101011c019bdda401cf26011c1be3331c743c4b011b778e8a7e807d6d0101299276d564
6e0a1b9c156fa56cbf9777491cb8926d3609017b5283041da4a81838011d769ee85d015f0115715
8a9013119977464e855598a807d011d0101011b01010101010101010101010101010101010101

311

010101010101010101010101011b01011b011b01508e0101017f01011c01011cb361011d010101
1c017601011c1d1b0101011c1b011b1b1c01011c017401747f010101850101011d1c013e1d011d0
11d1c1b01011b01017f01011b01011d1c01011b011d1c1b01010101470000828e1b1c01011b010
1010101010101011d1b1b016a611b1d01010101010101011cbd2e4dcf7d01010131b801018b970
17cd6bf011c29c61c7f014a1f011d7601228c7670870d270121d4360149dd137601010101010101
0101010101010101011b011c7470711d0101011d1d01011c1b01011b011c3e1c0144530101741b
01011c1b0101741d7ca6a42bc41c1b1c7fd8361b01731d74489f49767fd85e01011c79ac4cca97ce
c4016ce2b08de33574894501db830179478fb85b085e0174012d3b1c01015b0e1c017f1b17b6017
04d10301c2ced8f1b4bd98385011b1d011d0101010101010101010101010101010101010101010
101010101010101010101011b011b1b011b0150361c1b7f0181423a8c7401ab344a851c858e4e1
d94ac7d01474f4a4d7f3b475f7cce8774582d7d9db687661d1d594b518e4f3c8a8a8e9c556f8c4f5c
30a54b861d3d35b01c40711c3c31825283af9d4340a41c74014500007cac01011c1b011b0101010
1010101010174011b45561c0101010101010101010106d5b4c3a26d01011f77010101018df06b9e
011c2ab801011b9b171ba5c01b076e01369d073bb2a33f6ca4c35e9c9801010101010101010101
0101010101011b013e017d9b01011b01011b0101010101011c010101011d9794011c0101011b01
01011d011b78ee06c287011b017fed37011c01980b9f251b018575540101016048af95a8ac931d5
26b5dc7669a1a774901c32c7f59ac3fb4613c401c459c2620011d0178111d9e6e1c2a4b74b6852b
2e55cc949ab099558a017f011d0174010101010101010101010101010101010101010101010101
0101010101010101011b011c1b011b0150360101010187936920c481c48c5b3179bb466ace66d8
7e9dbf45e28e340d539558bcb5a5802e8ca8dae56d0101ab33a3c41e937449bd70bf5b0553b2a18
b341642d98e879ea9653cca871e45757f5f8d7c021a1b014400009a3c0101017f1c010101010101
0101011c1b1b1c4c72010101010101010101011da32c013b96a21b1b1fb801010136f0460176017
f25c5011c011c402613361d102f0135362ba58b3a3d361d8d362378010101010101010101010101
0101010101011c0149497401011b01011b010101011c011d011b1b1c7052011b1b011b01010174
01017682e662b0b128010174e52f1c017684be66011c1c1ad85101760151ab202c01acd522e549
1a8342ce69dfb563ab061156123917a28b8d28db63bdb45b0101766f34092a01161e01163a157d7
31944457f3d3d39980101011c01740101010101010101010101010101010101010101010101010
101010101010101010101010101014f3801761c0157661b55f1af06661c3519d8763e9155c7766d
19afdb60059a76db9d14181e101c1d0113a11b011b394f03285b0601973373b57f18628b13018e2
124551b6d67053e227d743e64b57f768bae141c01014600007346016d1c01011c1b1b1b1b1b1b1
b1b01011b0141497401010101010101010101c4261b82a6576201308901989a9330019a5376012
5ae1b011d017f7c68a2010c3c1b74649a011c98a476743e59a4010101010101010101010101010
101010101017476404c011d1c1c0101011d1c011c1b011c010101014b491b017f01010174010174
3e017eaa821c21c667981bd0330179a8d98201609e016d955901010101a44d6c01860b949c0174
a4618b3fbc34747f73af01b0516c01767f5e7e1b8d8d731d1d018b945c011b2346016d529b011d9a
647401a2a53f0101741b1d01010101010101010101010101010101010101010101010101010101
010101010101010101010101014f3b760101018b01a5847b6d0861012c02ae741c804e99741c67
4acc54237901b83f17034a37013e01179556673e3f4fbb15601201015c1edb1c215b8107018e258
d55656aa4131d315e644da5b38501b5bca21b011b860000826e010101017401010101010101010
174010176444e011b010101010101010179be055e220297b87005ca70124d8f156f21921b8193b4
3f011c1c01013e011a91cb3e011c1c741b011b0174017601010101010101010101010101010101
01011d01010170471b0101011c760101011b01011d0101760101435601017601011b011c1c0101
014fd4705ea94c1e2855dd0341c1780d4c700ba41d5bed8e760176011c1d013e320a1d1d1c1b01
7401018b6d7f01010174011c011d011c3e011c1a9d0101010101011d018b773d7f0101010101017
f0101017601011c01011c010101010101010101010101010101010101010101010101010101010
10101010101010101010101015336016d011b0152d10d1c7f89ac4abe60b182481066e27057165
ddb7cb649a584829305a82598c16923956f044836700436416b6a56305cda98064650c663238c6
14271db7db16c4a4b450a51ca4a8799946f3e0101c00000a538818b789d3f98b0b0b0b0b0b0b0b0
6c7ca28146567f1c010101010101010188625d54a50101625e6860665f6d0156ac5d6c767c5d5e9
e1b010176011d016d4858011d011c01011c0
Meeting deadlines
Once a system accepts that schedulable objects have deadlines and a cost associated with their
execution, there is an obligation on the system to undertake the following activities (Burns and
Wellings, 2001):
provide a means by which it is possible to predict whether a set of application objects will
meet their deadlines, and
provide mechanisms whereby the system can report that an application object has missed its
deadline, consumed more resources than indicated by the cost value or has been released
more often than indicated by its minimum inter-arrival time.
For some systems it is possible to predict offline whether the application will meet its deadline for
example, via a form of schedulability analysis (see Burns and Wellings, 2001). For other systems,
some form of on-line analysis is required. The RTSJ does not require that an implementation support

on-line analysis, but it does provide the hooks that can be used if needed.
Irrespective of whether or how prediction has been performed, it is necessary to report overruns, etc.
The RTSJ provides an asynchronous event-handling mechanism for this purpose. All release
parameters also specify which event handlers should be released as a consequence of a deadline
miss or a cost overrun[1]. Of course, a program can indicate that it is not concerned with a missed
deadline, etc., by setting a null handler.
[1]

However, the RTSJ does not require an implementation to support execution-time monitoring.

7.6 Real-time Threads


One type of schedulable object is a real-time thread represented by the RealtimeThread class. This
is an extension of the Java Thread class, which also implements the Schedulable interface. A realtime thread's parameters are illustrated in Figure 7.4.
0100090000033ea301000000c9b2000000001610000026060f002220574d464301000000000001
00849b000000000f00000000200000ecbd0100ecdd0100010000006c0000000000000000000000
d20100005601000000000000000000006a4000003a2f000020454d4600000100ecdd01000c0000
00010000000000000000000000000000000005000020030000c40100001a010000000000000000
000000000000e3e306006e4e0400460000002c00000020000000454d462b014001001c00000010
0000000210c0db01000000600000006000000046000000c0760000b4760000454d462b22400400
0c000000000000001e4009000c00000000000000244001000c0000000000000030400200100000
00040000000000803f214007000c00000000000000084000050c760000007600000210c0db0100
00000000000000000000000000000000000001000000ffd8ffe000104a464946000102010048004
80000ffed0f8450686f746f73686f7020332e30003842494d03ed000000000010004800000001000
100480000000100013842494d040d000000000004000000783842494d03f300000000000800000
000000000003842494d040a00000000000100003842494d271000000000000a00010000000000
0000013842494d03f5000000000048002f66660001006c66660006000000000001002f666600010
0a1999a0006000000000001003200000001005a00000006000000000001003500000001002d00
0000060000000000013842494d03f80000000000700000ffffffffffffffffffffffffffffffffffffffffffff03e8000000
00ffffffffffffffffffffffffffffffffffffffffffff03e800000000ffffffffffffffffffffffffffffffffffffffffffff03e800000000ffffffffffffffff
ffffffffffffffffffffffffffff03e800003842494d04080000000000100000000100000240000002400000000
03842494d0414000000000004000000023842494d040c000000000df3000000010000007000000
0520000015000006ba000000dd700180001ffd8ffe000104a46494600010201004800480000ffee0
00e41646f626500648000000001ffdb0084000c08080809080c09090c110b0a0b11150f0c0c0f151
8131315131318110c0c0c0c0c0c110c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c
0c0c010d0b0b0d0e0d100e0e10140e0e0e14140e0e0e0e14110c0c0c0c0c11110c0c0c0c0c0c110
c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0cffc00011080052007003012200
021101031101ffdd00040007ffc4013f000001050101010101010000000000000003000102040506
0708090a0b0100010501010101010100000000000000010002030405060708090a0b100001040
1030204020507060805030c33010002110304211231054151611322718132061491a1b14223241
552c16233347282d14307259253f0e1f163733516a2b283264493546445c2a3743617d255e265f2
b384c3d375e3f3462794a485b495c4d4e4f4a5b5c5d5e5f55666768696a6b6c6d6e6f63747576777
8797a7b7c7d7e7f711000202010204040304050607070605350100021103213112044151617122
130532819114a1b14223c152d1f0332462e1728292435315637334f1250616a2b283072635c2d24
49354a317644555367465e2f2b384c3d375e3f34694a485b495c4d4e4f4a5b5c5d5e5f5566676869
6a6b6c6d6e6f62737475767778797a7b7c7ffda000c03010002110311003f00f4b7e61a71cdf93b2a
6d4c3664104b9ad0d1becdaeda3736bfea218eab8a59bbed1478fd31f4637fd09dfbb637723fd9186
a1558e37376ecb3d40d3ea08daef57dbb7f49fe13daa864f4ac065f8f5b7071ec175ae75d63a9ae5a
031fb5cdfd1fbae759e9ff00d63d7494dcab3597b4be87d76b7f34b4cf97ba3e0879868b6b15e55bf6
7adda36c6da6a76f83edadc36bbe8ee77d25163ba4d22cf46fa2a1a170acd6d899dbb837f7bdff004
9596d15581af2e16d65a0b410d2d27e936d1a24a68b3a4e00adac19790600977da6c0e77e739cfd
af6fbac77bde8d86eb598d5ec00b5cd0e1ead8fb1da8fdf7315e000e070ab57896d6c6d6dbbdac01
ad960981c4a4a427aa31b90ec5759432f6343dcc73dcd869fcef7336a2b32def716b0d2f20071daf2
7dae2e6b5ded67f21caaf50c1ac86db6574e45db9a1aeb296b886b65cf33bb77b68f5bd2ff845628e
9d5d1b8e37a548b3571aea6b7772edcedbf4be924a4acbee3732b7b5b0f0e32d71305bb7b398dfd
e467595b3e9b8367892021331de2d6d8fb376c0e000681f4b6ffe454c01ebbbfaadfcae494af5e9ff0
048dfbc27f5a9ff0048dfbc2cabafeaf855b4e45d88e36da5ac7581ed0377a8eaabfd1b5dbb66d66eb
1de9ff8441b7ab67b4035e474d793c8f548f6cfa7ea8692dfe6ddb9effd27bff9b494edfad4ff00a46fde
12f5a9fdf6fde1653333aa5ac70c2b70b31d503ea30585cf048fd17baa15d7fe73285a3707fd89feac
17fa477ede276fbb6eefcd494fffd0f506dc4b2b7b986bf50096bc805a4fe63a0bbdff00d451b0bc9adf
b6031c491238dae1bbf150b715d934d35e5b5af730b5ef7b1ce61163356d94edf7b7ddff0009ff0007

313

fa455ddd1f15cc2df4a3580c175a1a1bfc9dbf43fe2da929b070f0897b462d46368fa2cd76c3983feb7
edda8cc3b4b2b6d65addba446d6c40f4f4f8fb552a3a3e26364bf2a8a88b9ce759b9d75ae0e7bc6c7
bacade5f5fd1f6b11b2716fbada2e63fd27d009f6b9d0e2e80ea9edd18fabfaf5ffc5a4a6da4a8bf333d
cf7b71f159606800eeb76b83ccee63d9b1dec6fb1dea35def4c727abeb18359fa11fa7f19f57fc0ff82ff
c112524ea18f55acadeedc1ec7b1ad731ee63807beb6d8ddd5398ef7ab1556caab65558dacada1a
c1e000dad08797fcd37fe36aff00cf95a3a4a52a953efb73323fc1d358631840f739def75b3b8166cf7
57b36ff002f7a594cb9967da9b92eaeaadbefa21a5af20eefa6e6b9ec73ff009bf621b1d8efa59f67b6
ab72c31fe8d80ef6fa8f68b5cefa5f9fbdb66ddffccff2125366cc66da36da7d40274735a46a0b1dcb7f
398f7310ff0067e303218c074d7d3676d07e62cf6bba87d9dc0d185e99d47bc1636c0037ddec636d
ddf4f7eca7fa8896bfaa6f706518e2eb1a46f2e05d5820ed758df67a94b3da929bf562574ff3515e91e
c6b1ba0feab149f4b9ec731d63a1c083a3783a7eeacddd9c18c031f09d5b5c7d33bb6b491f9d5b61f
e9bae77bbf3fd1ff008653a5d986db7ed756236a248c8731c777a7b5ce6d8f96ff0052bf4ffeb9ea7e6
24a7fffd1f4f7e5555b58eb4fa62c240de5ade039ff009ceff46c7d9fd4532f7004ec7687f93af9fd242c
8c5af2aa657955b6c01c1c44980470e0a91fab9d1fde461552e7032493247d17bb76efdd494e90b0
1739ad13b343047301db3e97d2dae4cfb1e1b2dacb9e412d6980240d1ae77bb6ee54ede89d36e2
7d4c66bc4361c5ce925ba37fea5beffcff004ebff46c567228fb4d6daad0430997ecb1ec323e8ed755
e9b9253545bd48da6c7e2368d804bc5a1e1edda5ef6399b19f41fec63ff7ff0049fcdfad5aba2d7900f
a4fd7fabff9355eeae8ad9e8337bec7336b2b6b9dc46ddcef76cad9fca42c8e966fcafb58b2da6d350
a4fa566d1b417b87353bddbedff00a8494d9c836d9586b6a7487d6ed4b786bd8f77e7feeb513d47ff
00a27fdedffc9acabfa70c60cb0db92585ed06a6dbec2096eff519e9edf4595b3f49ff0005fcda7afa00
a582ba2fc8a58d6ec6b2bbb634480d73fd36d5e9fa8edbbf76dfe712537afb8ee607b1cd603bcf04b
9c20575b5ad2eff0008edff00f5b55fa7e3e0d390ec8abd3f572435a1940058d68dce03f443f3bfd2d9
f4ff00cc6299c5634e355697b5b5b0d5558db0824c3347ecf4bdef6549b0ba563f4ebdefc66d845e62
c1b86d6eaeb377a7edfce7fd3fe712536fd7af66e87c6edb1e9be67fabb776dfe5fd05236b0170877b
049f6bbfe8fb7dff00d854f369cac815594baec77d6e735cc6ed3b9af1b49737d66b3dbf4ab7ff003b5
a03b07aac39bf6eb4ec606b486306eef23f48dfd27b59fceffe8d494e98b5a4b5b0e97891ed747f68e
df67f6d2aec65ac0f64c19e410743b4cb5d0e42c617d75b2bb8bee79dc5d6b831b124b9ac736b77e
637f47ec45adce73039ec35b8cfb49048d74fa3b9a929ffd2f554952aba859756cb6bc5b0b6c6b5ed
97560c386f6cb7d5fdd53765dcc05cec57868e497543f2da9299e5dd914d61f453eb998737706436
0fbf73fdbf4945975d92d1e88f49840dd6bb5e47f80fcd7ffc77f35ff1caad0eea3680fcfc53bb96d15bd
8e637bfbdce755eb3d9ff0017b3fc22b472ae6b5ce762d803413f4abedff5d4949aaa6ba5bb58224c
b89d493fbcf71f739ca683664060690c73f782742d1006bfe11cc511956125adc7792de40757a7c7f
4a9298e6d1ea06bc3cd6e1fa3901a7db6398d7ff38d7feeab0c696b1ad2e2f20005c624c7e73b686
b555b326db1836e33c80f6ebbaa896b86e1fcf7d2d149f9afac6eb31ec636625cea8093ff005e4949
eda9b6d66b7707b8e411ab5cdfe535caa31fd4df950d753e8b0359731c1c1e1c0b8beda9c3dbb2ea
9d5ecfdc47fb45bdf1ac1f135ffe9540c97df18d998c2417305b5186b9d5bfdbf4be8efa5cfdff00f7f494
de4907d7b7fee3bfef67fe944bd7b7fee3bfef67fe9449499241f5edff00b8effbd9ff00a513d377abbc1
6398eaddb5c1d1dc35ff985dfbe929fffd3f40fd878eef41d6b1afba8ad957aad7bebdc2b058ddcdacf
d1f7bfd8a3ff0037b0c5669f4f754e1b5f5d96daf0e6fbbf44edee77e8b73fdd5fe7fe8bfd156a6eb2af4
5d4ef7c9b0fbfecd67a71be7f73d377b7fed46fff008745cb662fdabd4b335d8d60ac0756db1ac1b77
3b6dae63c6efa65cdde929ae7eaf6292e76d74bde6d3fac5c21fa6b5ebecdbb7d8c6fb18895747aa8
f752dd8ef786cd96380f53e937613b7d3ff834dfb32b369b0751c9f790360b5a1a4d6d6d4fd1b5fe77
a7ea5dff00088f8fd3451736c6655ee63098a5cf06be0b4eef66f7fb9dbfdf67f3892959980dc9aaba6
c60b595c3b57bab707b7f9bb596561cf63dbfc954cfd5fa76bc36b2c366af7b722c9241df27d9ff0043
e86cfd17f36b652494e2b7eaee332a14b2a2dabd4f54b064db05d3bbdf2cf77b94dbd12a05c4d41c
1f1b9aeb9ee6c82d76ed8fa9cdddfa3daad67d0fbacafd3ba9adcd0e96dd58b6412dd5a3d4ab6fd14
36e255f61baabb29ad6d96073aea2290c23d3dad6fbadd9f41bfe7a4a42ee8553b68351dad7b2cdb
f68b20bab2d7b378f4fdeddcc67b3e82bd663d8fc3141da5e5a1afd4807fd27ba3737daab558b8f6d
46aafa85d68b468e16b5c646edce63837fe1377b7fd1d4ace1d1e934bc64d992db002d758e6b846
a77566b633e9ee494d16f446b2b153039ad6b76376e458086cb61a08abf37d34bf623607b5db872f
f00b459b9d036b3d47fa7b9fb3f9c66eff0bfa45adb9bb83646e2240ef03ba7494e41e86c73838b5e6
1c5d1f69b624fd3d033f3ff003d5ec2c6763b1cc7705c368dc5e400d6b7dd6590e7708e5cd0e0d240
73a4813a98e6149253ffd4f4277d13fd27e5fcdf3ff9e7ff0045a1e5ff00cb4efe8ffd1eafa5fceff3cefe77
feeb7fa1ff00bb0be6c49253f4259ff27d7fd0ff009b3f4ff9afe72de3fe016c744ff9329fe67f3bfa37f35f4
ddf43ff00467fc22f98d2494fd5492f9552494fd42ffe983e9fd01f478e7f3d67f53ff92f2fe87f3f4ff4afa3f
4b1fe9ffe8b5f3724929f7ebbe9e47f33fd12de3e97f3b773febfcdfaca8617f81fe87f99fd1bfacdfa3fc8
5e20924a7debac7f83fe8ffe07e97d1fa15fd1ff0082fdc46efd43f98fe898ff00d6fa157f39ff0002be7f4
9253ef76ff4867f33f48fd0fe73f9caf8ff0081ff00d42ba3e93fd02bfa3cbfe871f4debe6149253fffd9003
842494d04060000000000070005000000010100ffee000e41646f626500644000000001ffdb00840
0040303030303040303040604030406070504040507080606070606080a0809090909080a0a0c0
c0c0c0c0a0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c010405050807080f0a0a0f140e0e0e
14140e0e0e0e14110c0c0c0c0c11110c0c0c0c0c0c110c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c
0c0c0c0c0c0c0c0c0c0cffc00011080101015e03011100021101031101ffdd0004002cffc401a20000
000701010101010000000000000000040503020601000708090a0b01000202030101010101000
00000000000010002030405060708090a0b100002010303020402060703040206027301020311

0400052112314151061361227181143291a10715b14223c152d1e1331662f0247282f1254334539
2a2b26373c235442793a3b33617546474c3d2e2082683090a181984944546a4b456d355281af2e
3f3c4d4e4f465758595a5b5c5d5e5f566768696a6b6c6d6e6f637475767778797a7b7c7d7e7f7384
85868788898a8b8c8d8e8f82939495969798999a9b9c9d9e9f92a3a4a5a6a7a8a9aaabacadaeafa
110002020102030505040506040803036d0100021103042112314105511361220671819132a1b
1f014c1d1e1234215526272f1332434438216925325a263b2c20773d235e2448317549308090a18
192636451a2764745537f2a3b3c32829d3e3f38494a4b4c4d4e4f465758595a5b5c5d5e5f5465666
768696a6b6c6d6e6f6475767778797a7b7c7d7e7f738485868788898a8b8c8d8e8f839495969798
999a9b9c9d9e9f92a3a4a5a6a7a8a9aaabacadaeafaffda000c03010002110311003f00f7f62aec55
d8abb15762aec55d8abb15762aec55d8abc9fccf73e7883cd3aa41e5e8ae2d6d67b9b52d7f6d6114
8d240ba45f391eabc4c1e97315b254d4a73f4fa3e2ac3ed3cddf9c92eadfa12ea7bab6d4e4b39ef34
8865d3a1417971159e8b2fa72b18805852e6eaee177050aa8f89f92062aabe8175f98fa1e83368da
6da5fe95258c1ac5e69d6e34a6bb8aee57bad49c2b4ad41130736cf12b7f7a94e0b27a8dc154c758
f317e6ae9172e6c3f486a966d792453bbe961cc1a72a584a6e228e08637924065b9444058b85a2a
3c91fc4aa12eb56fce512ea56c2e350bab4fa934569710e94968ed27e86facfd611783b2486e97d3
11b3300cde9f0e540aabd2bc97a9799efb52d7e1d7a1945843701b45ba789add1ed247938a34724
71b899005127db8dd7d39118177455598e2aec55d8abb15762aec55d8abb15762aec55d8abb157
62aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abfffd0f66792fccbae6bfe5ed2
3cc3aa25ac69abe9f6b7eb696e92a344d75124bc0bc8edcb8f2a7d95c5534bebdd75e553a6c9690
c1c7e35b98a595cbd7a8292a0029ed8aaad8df6a488ff00a48c12c85bf766d91e250b4e843bbd4d7
be2a86b9bcf31b4ee6ce6b14b63fdda4d0ccf201eecb2a83f762a8eb6bfbb58105e88e4b915f51e10
c919df6a2b16236f7c552d377e6bfd99f4eefd609fe8ff007762a994ba85d9b7610ac6b77c68aee19a
30f4ea541069edcb154be1bcf3389e3371369ed6a0fef5238275908afecb19881b788c551b7b7fa83
434d3bd18ae6a3e2b8579138f7d9190d7e9c550b657be6159c1d464b292da8792dbc5347272ed4
2f230a7d18ab7abea7acc7034fa51b58fd18e49255ba4924e5c14b00a6374a74ef5c551be5cd524d
73cbda4eb52c4219752b2b6bc78549211ae22590a827ad0b531544c9a669f36a106ad2dac4fa9db
472416d78c80cd1c53153222bd2a158a29603af15f0c55158abb1563de73d7efbcb9a44377a6db4
3777f757b65a75bc5732b41087beb98edc33ba248c02f3e5b29ae2a95fe95fcc6ff00ab7e85ff0049d
79d7fe90f156ceadf98b5f874ed0c8dbadf5e0f9ffc79e2ab3f4b7e64ed4d3b41ebb8fafdef4ffa42c55b
1ab7e6453e2d3f42afb5f5e7fd91e2adfe96fcc6efa6e847dff485e7fd9162ad7e97fcc8eda66854dbfe
96179d7bff00c78e2ad0d5bf32f7ae9da0d7b1fafdeffd9162adfe97fcc8a7fc733422dff6d0bc007fd39
62aefd2ff00991ff56cd087fdbc2f3fec87156bf4bfe6553fe399a0d7feda17bbff00d38e2aa379e67f3e
69707d7b50d27476b189e15b8fabea174d3049654889457b25048e55a161f3c559ee2aec55d8abb
15762aec55d8abb15762aec55d8abb15762aec55d8abb15762aff00ffd1f72480091c0d87234fbf15
5b8ab0dfcc8f395e791f4ad2b52b58ac9e3bfd5ecb48b99f5299edadede3bf73189d9d54ec840e41b
88a7ed62a83f2f7e6a68d7fa02eafe62e3a44a4eaee9e9fad736b7367a149c27bdb59444a5e0642b
2a12aacc87e10c072c55316fccdf22a5ddf5936b0bf58d363b896f4082e4a46b67025ccc3988b8b32
452248554b3703ca94c55a87f343c853d9b6a09ad466d239648666314eaf198628e7767468c32a0
8a68e4f519787a722386e2d8ab179bf3a6c21d27cd6ae96cbe70f2dcbac8834691ae2386f20d0e5e
2ed1dc344159ca1577442cd1f2f8be0f8b1567b079b3cbb73aeb79660d4237d7552593ea8037c42
d8a0982b95e0cd11913d44562c9c87218aa738abb1571c5509a9fe60f92744b93a65feb968baac5c
164d321905c5e217d9795bc3ce4507c4ad3156f4bf395b6a57b34325a3e9d611ad61bcbe9eda269
dabfeeb85657902d37ac8b1ff00ab8aa72359d21ba6a16c7e5347fd7156d756d2de9c2faddabd292
a1afe3ed8ab12fcc2beb2b9d33488edae629a41af6884a4722b353f48c3bd01c553dc55d8abb1562
9e7ef37dff92741bef3141a3fe94d3b4bb1bbd475193eb2b6be9a5a2ab08d6b1c859e4e478ec1470
6e4dd3154b63fccc874ff00362f94fcdf6b6da04f3588d42cef5ef96782e164ba8ed6354262888e4d2
756028db78362a9bb7e62790962bd9cf9974ef474e97eafa8482e10ac1302ca56420d178946e75d
9389e7c715468f36f958cf7d6dfa62d04da6a992fd7d55fdca2b2a31635a1e2ccaad4278b32ab7c4c
b8aa0fc91e7083cefa55e6af6b0082ded753d434a4a49ea893f474ed01941e284072b5e24557a1c5
592e2aec5524f36827cbb795fe6b6ff00a8a8b1566f8abb1550b8bcb3b5a7d6ae2382bd3d5754affc
1118aa87e9ad1aa07e91b6a9e83d68ff00e6ac55a3ade8aa2ada8da803a933c7ff003562aa8baae9
8ebcd2f6064dfe212a11b6c77ae2ab4eb1a481c8dfdb05ad2beb252bf7e2ae1ac6927717f6c47b4c9
dfe9c5570d534c3d2f603b91b4a9d4751d7156cea5a70dcddc23fe7a27f5c5567e99d1c1a1d42daa
7b7ad1ff5c5577e94d3280fd760a1ad0faa9dbaf7c55dfa534ce9f5d82bff001953bfd38ab5fa5f49a57
ebf6f422a0fac9d3c7ae2adaea7a6bfd8bc81be52a1fe38ab8eaba58ad6f6dc53ad654feb8ab86aba
59ad2f6dcf11c9a92a6c2a054efe2698abffd2f6b693ab59ebfa5586bda796361aadbc37d68645e0fe
8dca095392ef43c585462a8cc558b79ebc9abe77b3d26c64bb4b5b7d3356b3d6258e5b65bb4b9fa
8b16103abba808fca8e77db156237bf924b368b6de5eb3f32dd5be95a743abe9ba424b025d496da
3ebb6fe84b67cddc1904341f5795be248c7a4c1f66c5552ebf2724b85ba55f3015fad4da8ceccd66a
c41d57478b4771b4ca3e048bd55ff0028f1fb38aa0352fc8a96fed758b28fcd32dbdaeb66b7701b24
962aae956da546fc5a61578d6d8488c7656924f87ec3aaa8dd53f24edf57b6bfb7bbd71ddae1f59b8
b097eaab5b6baf31a04bc918092922805c429f070e7f19938ae2ac9bcb7e499bcbbadea5a8aea8b
73a7dfdcdc5fa589b385258aeaf8f3b8ff004aab48d1172cd1c7b70e5c59dd5571565f8abb15592c8b

315

0c524cfb2448d23d3af14153f80c55275f22fe5e79bdac7cee9a25ba6aba85ac73c3ac411fd52f9e0b
8412289648b8b38a1078485d41c551ba57922cf4d9c7ad347a95888ca2c57b6766660fc810deb43
14550054519589fe6c5539fd01a10dc697695ff009878bfe69c55aff0ef97c1a8d2acebe3f578bbff00
b1c55897e60e95a4e9fa66913d9d8dbdbca75ed110bc30a46dc4ea306d5500d3156478abb15762
ac77cfbe5a9bce7e4bd7bca56f7496326b7652d87d7248cccb109d7897f4d590b50741c862ac5fcf1
f967aa79bef6e6fa2d56dace4bcf2fc7e5f955ada4902c897f1df19969229e27d3e1c0ffadcb6a62a97
6a5f93977a9436e2e6f349bc921d5f5dd465b5d4f4d6bfd3e5b4f31cdebcb1340d321f561603d3939f
175e4ae94738aa035cfc90f30eb3abb6aede68b659ede4f574b26c2402316fa95a6a7691491a5c2c
5e9a3dafa7208e346911b9f2f5062af44f23f966f7caba76a76ba85ec37d73a9eafa8eb4f25bc2d6f1a
1d4e733988079242dc0b101c91c87ece2ac9b15762a9279b881e5dbcff5adbfea2a2c559be2aec55
8ccda769fa879caebebf690dd70d32d787af1a49c6b71715a720695a62a997f86bcb95afe88b2af8f
d5a2ff009a715592683e5742125d32c14b6c15e08457b6c0ae2aaa3cbda00141a559803a016f17fc
d38ab43cb9e5e1d349b2db71fe8d175ff81c55b1e5df2fafd9d26cc7cade2ff9a7155afa279762e2d2
e9d649cd82a9686215763b0155ea4e2ab8f97b403d74ab3ffa478bfe69c554e7d1bcb16d1fab73a7
d843102179c90c28b52680548037c5550e83a0480574cb3703a560888ff88e2aeff0fe803a69567ff
48f176ff638ab8797b401d34ab31dbfde78ba7fc0e2ab8685a18141a65a01e0208ffe69c55a3e5fd04
ee74ab324f5ff00478bfe69c558af98745d1d3ce1e4f44d3ed95249750591443180ca2d19a8401b8a
807157ffd3f71687e52d1fcbb6b6f61a60b85b0b4b78ed2d6d66b99ee228a08542a2a2caed4e2a00
07ad315445e685697922c8d35d4254710b6d73340a6bdcac6c013ef8aaad9e8f6b66aeaaf3cfcc82
4dccd24e4505363231a7d18aa16ebcb3657533ced757d117352905edcc318da9b223803e8c5517
15859585a71767686052cd35c48f2bf11524b3b924d3dce2af28fc96d587e63795af353d527d4edb
51b5d5350b7319bfb95e5666e5e4b39178c9d1adda31febab8ea3157accba65acb6cd6a4c8aac9c
3d5491d250294a8704306ff002ab5c552f83cad6304c932ddea0ec8dc824b7f7324677ad195a4208
f638aa32fb47b4bf83eaeef3c0bc83fa96b3496f27c3db9c6ca69e22b8aa16cbcb1656373f594babf9
da847a7757b737117c429f624765f96d8ab7ab7966c3585559e6bcb7455742967773da0759363cc
42ebcbdabd3154c34eb0b5d2b4fb4d2ec13d2b1b1863b6b68ea5b8c50a8445ab124d001b938aa2
715762aec5527f337972d7cd1a60d32eae2e2cc25c5bde417566eb1cf14f6732cf1b297575d99054
15208c55243e40bc3ff4d96bff00449603fec4f1570f20de0ffa6cb5fe94fef2c3fec8f156bfc0179bff00c
ee5e60dff00e21610000026060f002220574d464301000000000001000000000000000f00000000
200000ec9d0100ecdd0100db0ffb23c55dff002afeee94ff0019f983c3fbdb1eff00f4678ab7fe01bcff0
0a9cb5fff0091961ff6458ab0ef2358ea9e6a9b585b9f35eb70436d71ea68b2c5736122dde912968e
0ba3fe87505e48a614a7455df7c55987f802effea72f307fc8db1ffb23c55b1e41bc15ff009dcb5f35f1
92c0ff00d8962ae1e41bc029fe31d7ff00e465876ffa32c55bff00015e56bfe31d7bfe465853fea0b155
927e5db5caac57de69d6eeed04914925b4b25908e4f4645902b18ed11b892a2bc5971566b8abb1
548a1ff94cef3fed996bff00511738aa7b8abc5bf37f49b5d6ff0031ff002e74d367a75ededcc1e618a1
8b555e510e5651f16215598f17a1a2f1f6756df1549bcbdaef9dbc9cefe56bbf31a6a9a1f95753d13c
a9797af6ca6e2382ef4fb499efae2692590d7d57685798e2bea0690b94c5531d2bf347cc77b7a748
bfd46d74fd6adc1b8d22d1ed791f30dac3a9dedab1b61cc10d245042470fee9a5f5995a16518aa51
6df9bfe6ebaf2b5b799edf57d2f51b4b96b7b9bab5d297d7d42d22fa8b49770849d6289e6b798091
ed4b2dcfa01d037abc392a9b6adf981ad9d6d348d4d2d2530f9a34882c9a5b78ae6d24d3ef351b8b
6492092a1a3b98fd30ae922fab14b1b491978a452aaa48ff009c9e6ed2f4c7bdbdd5b4ebb8e5b3b6
bf79bd38adbd185bcc7fa2a5f47948519daddbf77eab70370bd91b862a8ed02fa7d63cf1a35d7e695
ed86a5a7de7969e6f2f4aeb0368c7511a84c2f00a492446e52dfea8367278fafe99e3ea62a93795bc
f7e69b0f242ea7e5682d746d0749d11f588fcaa903de4cb1c9a9dedb492acf2bab9851105c85117d
902356e3d55645e61fcd7d7b40b9d5639755b46d16d86b69a56b2634a5d4967a4d9ea16ca08f81d
d649668c88c52554f847346c5519e57f3ff009c356f3c3581d4acf50d307982e3499b4882048e6874
cfd0b0ea315e19448cc78cce23a95e2eb2afed8dd57b562aec558af9869fe30f2757afaba853fe90db
157fffd4f7f62aec55d8abb1548fcdf67aaea5e5dbdd3345658efefc25a7aef4222867758e69287a948
8bb28eec062ac53f2e34d9acae24bcb246fd0f76fabdb4ca38858a6b2d6aecc3b541f892675d87fba
971567d71a8e9f66fe9ddddc303f16938cb22a1e09bb35188d87738aa81d77455ba96c9b50b75bb
8225b99a132a06485e47883b027652e8c95fe652315555d574c7924852f6069a24f5258c4a85963
14f8980350371bfbe2a84d07cc7a5f98ac62bfd3a5fddccd3ac71b95121fab4cf6eedc558d579c6d46
1b1c5536c55d8abb15762aec55d8abb15762aec55d8ab1cf3cdedcdb7972e2d6c1b86a9aabc7a55
83518f19ef9c421e8bbd2356690ff009287154b351d334ff2a6afe56d4f4e823b5d3e045f2c4c1548e
36770145a28a6d449e38d16bd3d56c559b62aec55d8abb15762aec55d8aa450ff00ca6779ff006cc
b5ffa88b9c553dc55698e3660cca0b2f462371f238ab5e8c4797c0bf1ecfb0f887bf8e2af279ff3aecb4
ef335de8daae8bf56d2ec3cc717947f4a25ca3b8bbbab04bf8e630b22718044ff00bd612131d09e25
072c55994de7ef205b9b18ee35dd3e17d4a6923b08a5952379a7859048111a849532272db6e4a7
be2ab66fcc0fcbc86c23d527d7b4e5b09ddbd1b83347c6474805c929dd8fa2c25047fba887fb3be2a
946bdaefe59799f43bb67f325b4165a4dcdbcd3ea1a75d22496d70a3eb10b12a181056af4656464e
4dfb350aafd1fcd9f961a3d86ada659ea7691d868570a3569a623d3facdec22f3d42e47172e8feab3
27c216adb2e2a9c49e7ef21417b7166faf69dfa42d12b730acf1b4b1a7157f8829247c2eaf4fe43cbe
ce2ac82dcda5c5bc335afa72dabaacb6ef1f168cab8aab291b508350462a93f97bca5a7f96efb5dd4
2ce7b89e6f305f36a778b70c8eb1ced147091171452a9c6241c496fb3f3c553fc55d8ab12f31ffca67
e4cff008cda87fd413e2aff00ffd5f7f62aec55d8abb15762ac5bf2f5553cb442b721fa4b58353efaa5d

1c552cd67f2f67d535ed5754fadda4f63aadb2c46d750b2fadcb6d3adbbda335bca654091bc323074
e152c5be3e2ecb8aa430fe506b1626d1ecbcc104ada75ad9d8da0bfb1374b2c3a65cddc96c2ea93
a194986f1d2661c1a49923b81c7e246554753fc95bbbd9fd4b3d5ed34e58eed6f605b6b0f4c136ffa
31a0864559943421b4d5592314e5149e9af0e3c8aa9ff957f2deebcb9aec3ae49aa2492ac3730dd4
36d6ed6f15c2dcdd4f76a1d1e5954185a7611ba05938551d99681557a0e2aec55d8abb15762aec5
5d8abb15762aec558379b2e353b6f35e8b7ff00a1353d5346d2a0b9ba43a67d59d4dfce3d05f5239
6689cfa711978f104564f15c5521d67f30ad3cdba16ada3db7963cd31bb19ac9aeadf4e52f6f7901d
994faa4168a40ac3aad57b8c55e89e5dbebdd4f41d3350d4ad24b0d46ead6196eeca75092c333a0
2e8caa5802ad51d4e2a99e2aec55d8abb15762aec552287fe533bcffb665aff00d445ce2a9ee2aec5
5d8abccf4afcaeb9d3f53fcc2d69ae6c7f4d79beea4bbd1f53fa92cb3e9dcf4e8ac155bd527d403d10
ec07057e4c84531549747fc9bf31d8799b4fd7ee75db37166dabcc123b495984bacd85a5ab106e27
9b908ded7d4f8ebea07e2d8aadf2ff00e4e799f4abdd3eff0050d72c6f6e2d2f7f494a63b59e2f5263a
13e8a7edcf2d012cb350515778d542f1e2aa1ad3f243cc56571a66a516afa64da869165a458416f7
5652cd633a69da7dc69d71eb4426434916e39c5c5bf76578b73566c5533bffca0d64ea7fa4b4bd53
4d11c37c97d069d7da6fad64f14ba447a3dd412431cd1aaa14852483d3e3c3e28df9a362a8cd4bf2
9eeb51d275ed24dedb429aa6a76da9d85cdb4525a4f66d67a741670bc2f03a18e58e4b75950a7c1
c2b0321466c55e91a65b5c59e9b67677773f5cbbb78228a7bb28b0fad246815a4f4d28abc88e5c57
e15e83154562aec55d8ab14f308af9c7c9c69d25d437ff00a336c55fffd6f7f62aec55d8abb15762ac5
3f2eabfe183535ff725ac6fff006f5bac5595e2aec55d8abb15762aec55d8abb15762aec55d8abb157
62aec55d8ab14f220020d7a9bd75dd48ffc9738ab2bc55d8abb15762aec55d8abb15795e97e636f3
afe696bfa568e6f6c347d034db4866d72028b15f5d4d34afe9c2248e45290807938fb4d27c3f0ad4a
acdffc3977ff00530ea9ff00056bff0064f8abbfc3b77ff530ea9ff056bff64f8abbfc3b77ff00530ea9ff000
56bff0064f8abbfc3977ff530ea9ff056bff64f8abbfc3b77ff00530ea7ff00056bff0064f8abbfc3b77ff530
ea9ff056bff64f8ab5fe1cbbff00a98754ff0082b5ff00b27c55bff0eddffd4c3aa7fc15affd93e2aeff000e
5dff00d4c3aa7fc15aff00d93e2aeff0eddffd4c3aa7fc15affd93e2aeff000eddff00d4c3a9ff00c15aff00
d93e2ae3e5dbb34ff9d8353dbfcab5ff00b27c55dfe1dbbffa98754ff82b5ffb27c550f379392e2eadaf6
e359d4a5bbb3f53ea72b3c00c4d300aeca1600092a38fc41b627bef8abfffd7f6b7917cbf77a379734
6fd3325c4be651a75ac3ac493de4f761af1614f5dbf7923a54c81be2518aa6fa8e8961aa4892dd9b8
0e8bc57d0bab9b614ad7710c8809f7231554d3b4ab4d291e3b4331590866f5ee26b935029b199dc
8fa315435df96f4cbdb892e676bb12ca416f4af6ee14a814d92395547d031547d9d9c3616e96b6e5
cc51d78fab2493bee49dde56663d7b9c5522b4f227976c62786d16f2185e59ae1a34d46f957d4b99
5a6908027a0e4eecd41b62a9f1b589ad4d992fe898fd2a891c49c69c7fbc079d69fb5cb97be2a9527
94f488dd5d5af79210c2ba8df30a8351506720fd38aa677b6506a16ed6b7064113104fa32c903ec6
bb3c4cac3e838aa06d3cb7a6595c25d40d77eac649512df5dcc9b8a6e924aca7e918aa2b51d2ed7
548d23bb33058db92fa13cd6c6b4a6e6174247b1c5503e52b3d52c3cbd6767acbbc9a8c224591e5
90cee57d56f4f948492c7871dc9ae2a9d62aec55d8abb15762aec55d8abb15762ac47f2fff00de6d7f
fedbfaaffd441c559762aec55d8abb15762aec558ef9d6468b41b89a7bc1a76890a493eb97caec93c
7610c6cf2884aee1de8139541456664f8f8e2ac73f2e34dbcd3f52d452eec9acd8d869f2c8a159601
717725ddc4b1445baac2ad1454fd908a3157a2e2aec55d8abb15762aec55d8abb15762aec55d8a
bb15762aec55ffd0f7f62ad120024ec06e4e2af0ff002b79d35ef2f6bb7ba479e27bcff142c71082d5e
58e6d1b558f51d4e2b4b6d42ca7007a2a86548e7b62aad1f34608ff000bc8aa6b3f9f7cd3a2f9d6fce
b1a6f1d2d2cfcbd15de9cb789225a4baa6af7da77d620222fdef3021765631d235ff7e0e2caa63a77
e6addea92e991a797a6b6b4f324d043e57d46e2e234b7bb135b5cddbf30a1a48da38ad8b1fddb86f
5230adf6f8aa91794bf36af6d7cbde56b4d66ce5d4351d40e8167737ed3af3326bcd7317a8c04601f
4ded8d7f9c357e1fb38aafd0bf332ef4dd0bcada6eadeadf5d6b5c2d24d53d50f74935e5c5d410bbc
68842a83001ea48515f9522f5192455558cf947f34bccbaa794ff2fb4ad59a7b6f30dcdb794b57b9d5
92613aea365ab4ff0055984dfbb4e1233a92f18a8e2cacaff6942af5af21f9e2e7cef0c9a87e84b8d33
479adedaf349beb892361770dc87240453c95a3e2bcbaa7ef178b9f8a8ab31c55c6b4dbae2ac27c9
1f9a3e5df3b5cea3a542b3e97e63d22ee7d3f52d1afd0c532cf6cccac6263f04d190bcd1e327e0a33
05c559b62aec55d8abb15762aec55d8abb15762ac47f2fff00de6d7ffedbfaaffd441c559762aec55d8
abb1550b6bcb4bc129b49e39c41234137a6c1f84b19a32353a32f7071557c558c799c8d4f50d1fca
eb464bb9bebfa8a556a2cb4f6592854d49592630c67fc967c5530f346b13e83a05eead6b025cdcdb
22986091cc48ceeea8a19c2b902adb90a71555d1a4d7e48643e60b7b3b7b80f4896c2796e10a50
6ec658a120d7b0071540ea7379dd2f645d1acb4a9b4ea2fa525e5ddcc33134f8b92476d228dfa7c5
8aa3f477d764b673e6082d2def3990896334971198e8284b4b1444356bb71fa7154bf519fcf4b792a
e9163a4cba78a7a125d5e5cc5311415e491dac8a37af4738aa61a3bebb25bb9d7e0b4b7bbe67d3
4b19a4b88cc741425a58a221ab5db8e2a80d4e7f3c25ec8ba3d8e95369c38fa525dde5cc331d872
e491dac8a37ad28c7154c7487d6a4b42daf436b05f7320258cb24f17a7b50f296288d7ad471c552c
d427f3dade4aba5586912e9e08f424babcb98a62282bc912d6451bd7a31c5533d25f597b4e5aec3
6b05f726fddd8cb24f0f0fd93ca58e235f11c7154aefe7f3e2de4cba5d86912e9e0fee24b9bdb98a62
b41f6d12d5d41af83362a9ae92facbda72d761b582fb91f82ca59278787ec9e52c71357c471c5529b
d9fcfcb7732e9d61a3c96018fd5e4b8bdba8e664ec5d52d1d41f93362a9be94fab3d9ab6b70db41a
855b9c7672bcf085afc34792389ab4ebf0e2a935cea7e6eb4d72ced24b1d35b45bebb36d15c2ddcff

317

005a58d62927e4d11b6e1cb8c4c38893ed53e2c55fffd1f6a7913cf3a3f9dbcbfa4ea56b7d6526ad7b
a7db5fdee9d6b731cf25bbcf123ba32862c383370f887cf154d355f33f96b43952db5bd66c74d9e65
e71c57b730dbbba569c82c8ca48aed5c558ee9de57fcadf3269b7963a5c1a6eb3a5b40ba75cc704
eb7b1c56eae264814891fd250e164554e1f12abfda5538aa1eeed7f27f49b87d3b50bcd22caf2de3b
3825b6b8be8e299574f9cde5a875794356395ccaa5be2e4dcbbe2a89d2bc81f9637ba7b5ce85a6d
8cda75e5dfe918eeac242c82ee391cfa904b0bfeec87793689956af27f3362a93369bf90b6971a786
b9f2fc171a0fa1169f19bf813eaad613492c2027ac0068649242848e49cdff98e2a9e27e5ff00e5bc5
05a6b2ba6da0b5b08e1b8b4be32b18a386d6592ee193d42fc4ac6f34b2231345123d3e166c552db
16fc92b5b6b4d334ed4b424b7b696cdec6de3d4203e9bd8396b458c7ad50b1331f4a31f0293f0ae2
ac834ed0bc91f979677777650d9e81a74f273b896494416ead23b305532b708d4bbb1089c57936c
bbe2a89b2f3af93751ba8ac74ff0031699777b39e30db5bdedbcb2bb52b45447249a0ec315476aba
e689a1451cdadea56ba6c32b7a7149793c76eaef4af1532328269d862af24fd10fe69bcb3f37e9769
0483ccd1492aaf1125935dd8b15412ca94709730a068e65f8a09e149233fbc749157a5f93ef21bad
1a348eeae2e27b66305d437ecaf7b6d2ad098272bd5d2a3e235e6bc64e4e183b2a995dea96d637
56b6b71553742565949511a08179b172cc29b74a038aac5d7b4360e5753b4611af37a4f19e2bccc
753f16c3982bfeb7c3d715425b79b741bad46fb4d8eed164d3e2b3b89a77216dda3d4439b731ca4f
17e5e9b7438aa3bf4c693f58faafd7edbeb5cc43e87ac9ea7a879009c6b5e47836dfe4b7862adaeaf
a4b94097f6ec6490c0804c8794aa42941beec0b0057aef8aadb0d6b48d5123934ebfb7ba494cab1
186547e46de4314bc6877e0ea55bc1b154762aec5589f90c016fafd0d7fdceea7bffcf738ab2cc55d8
abb15762af10bff00287e63da6b1ad5d6836930b5d4efefee6651aa186292296eb4e303a461be171
1457355a272e5c5dff798ab2cfcbbd27cfba6dd29f36cad34274bb18a66967170e3518618e39cc6c8
c0323942e79c48eae4f1775938c6aa77e598c6a5ab6b5e6874ff007a251a669eecabc85969ecc848
60492af3b4ce3c57862ac9a48e3950c72a2bc6dd5180607bee0e2a96f99751bfd1fcb9abeada5d83
ea9a9d8595c5d59e9b157d4b99e1899d215a026aec028a0ef8ab0df277e6869dadf978f98aeb51b4
d434f9e530d8b69505c7d64cb05bfad7504d66c649a39e0292738d872e3c7e1e4dc71553d07f37b
44bbd4b5eb3d7265d3ed6c35096db4cbd782e22b796d62d2edb5466965917824a2395d8a3146e0
9f66b5c556f987f39fcaf6fe52f316b5e58bc4d5358d0ed3519ff004788a672b3697024d2099514158
c0962abd78d245e271547eb9f9a1a269fa5dda59dc2ff008916db547b1b39e19fd27bbd1ed16ea68
d98051c42ba1af21cd4fc05b155d69f995a444ae756ba0d70d35859c5636369773ce9777f62b7891
314570e5c7264741c02d118f3c55176bf99de4bd46e34fb3d3b5237373aa2da35a08609e40bfa4a1
927b6f578a7eebd48e277024e1f0a1ad315617f97ff009cf7de676d21f53b2824b4d474c9efaf2e34a
59a7fa8dec37e9651dacca3d4f8a6f539a6eacbe9c9cd787c78ab31b4fcd4f24ea3c4e9b7b35f44d6
b6b7deb5ad9dd4d10b7bf2eb6ec5d222a3d468dd4026bc978b531543de7e717e5ed8aabdcea8eb
19816e9dd6d6e6448e06bd3a7727648885a5ca988d4fdaff0027e2c555eebf35fc8763f5217daa8b5
96fae0da4304f1cb14cb30bcfa811246ea1907d63f77c9871fdaaf0f8b1540e97f9cfe47beb0d3af2f6
edb4a9f549dadad6c6f148b8afd7df4d8dd95797159265e2add3f9becb62a99e91f99be50d726b6b7
d36e6e5e6bd6985a24b65776ed2adaca90ccf189a242c91c922a48eb5543f6ba362acb8aab152c0
12a6aa48ad0d08a8fa0e2aff00ffd2f7d2410c6c5a38d518f5655009fbb157496f6f310d2c49230d816
50c47df8ab71c30c20886358c1dc84016bf762ab1ed2d6462f2411bb9eacc8a49fa48c5551238e25
091a8441d154003ee18aa91b2b324936f1127724a2ff4c55578270f4f88f4e9c78d36a78531552165
640d45bc408e8782ff004c5555e38e55e1228743d5580236f638aa9a5a5ac6c1d208d5c74654504
7d2062abe48619801346b201b80e0301f7e2ab955540550028d801b0031563bade957b6b7a7ccfe
5e407564454d42c7609a85b47522324901664a930c87fe31bfc0d54558bf9d3c9565f9b76ba5ea9a
7ea696b05ad9eb162c92db995c3ead666c9d645324651a126af19f8b92f13c71548bcc9f94d756d2
c1a9e9696d7ccdaf47a84d62b66a0082ef55d3ee9f9132805605b576e956e7f080df695577fc8da5d
fd622d52ddad19638a5d2e7b376b292131df472c6d1c77119e3fe9a7d201a91aa703cf96cab771f9
189389826ad15bcb29b82b7305988e74371ada6ae1d5fd534740a6156f7e7fe415564bf918d751e9
f25d6a566351b1825865ba82c1d0dc48ed61e9cee1ee6422554b05562ad43cbe1e3c7e25590795
3f2c64f2c6b76dab26a4aeb6f1dd5bbc7142d17d620b8bab9ba8d660d248bca16b96e1246b1bfdb5
6e48fc5157a1e2aec558a79118b5bebc49069ae6a636f69c8c5595e2aec55d8abb15762a91f9b750
b9b0d1265d3d80d56f592c34ead682e6e98468c78ef44a991bfc9538aa2f41b2d2b4dd16c34dd10a
1d22ca04b6b33130913d3857d31f1026a76dcd7ae2a89bebeb5d36d64bdbd93d2b588032484134
048036009ea71553d56c5f53d3ae6c23bb9ac659d0a47796a42cf1376742c18541df704788c55809
fca1806ab73e66b6d76eac7ce177a845a94fac5a436c8ac62b43606236f24724643c27e366064e61
1b97c0ab8aa8eabf929a66b6352b6d5357ba9f4cd5b51b8d52f6df844b234975a48d20a8940a8e31
8f55580fef7fc8f87155dac7e4fc9aed87a1a979ab5097519b4bbed0350d4043668d3e9ba9246b2c6
22584468e1a25916455af32f5aab0555566a9f92b65a9eab71aa3ebf7d1878b514b6b511db34514
9ac69f169f71257d30cc78c424452dc55ebd53e1c551765f956f65a82ea31ebb2b4eb79a6dfb06b78
a8cfa5e9e74f55d8ecb229e6f4df9fd8e2bb62ac5347fcb2f36797fcdfa73e99207d3f44b4d374eb1d4
aeaded2582e2d2d22912579784914f1dc8f5e658e91ca9c69c5d16491715667a5fe5847a57e5fe9d
e41875abaf434db886e22d416385659043762efd3993898dd1cd55c711c9715497cbdf91d6de5bd
06fbcbfa7f98efbead7565a7e9f14e63804d1c7a55dcd751d4aa8570febbc732b2f178fe1db7c550b7
3ff38ffa75cdadd599d7eec4175682c7fb9b70c918d64eb555e08ab5f518c7f669e9ff0095f162ac8ac
bf2c1ac3cc3fe24b6d7eea1bc9a4bbfaf451c36fe9cf6d7776f7ab17c68e50c5248e164421ca3956a9
e2caaa1b40fca287cb3a8da5fe91e60be89604b8b7b8b768ed9d67b496fa7bf8a22c63e4a6292e25

512215678df8bfc5c59554447f95566da7f9734fbed4a4ba1e5cbc7d46d67f4628a6facb5d7d655d1
d7e28c805e16e278c9049223a9ad71567735d416f25bc333f192ea430dbaeff148237948dbfc9463f
462afffd3f7f62aec55d8abb15762aec55d8abb15762aec55d8abb15762ac5756b0bfd0b5093ccfa14
667b697e2d7b4789793dcaa80a2e201514b88c0dc7fbbd070fb6b1b62ac8ac6fad353b386fec265b
8b3b851243321aab29ff3e98aa2315762aec55d8abb15762ac4bc84812df5f02bbebda9b6fef3938a
b2dc55d8abb15762aec558bcaa35af3ac49c98d9796a1f5982bfc0da85f21450ea3a98a0e4c2bff2d
0a71578fddd87e6fe89a66b5a6794ec353e37905d4da5524b348ecb5196fb54742aacc84c450da9
e1cbf695dc90b346caaba7e626a577ad4ff971aedbdfea9ac79a6e92db4c367e94274f887ab2dd1b
97fdf4086cd63279c664f5bf771b4092f3aaaf70d274dbad3a3956ef55bad55a460cb25e0b752800a
71516f0c229df70715426a5a06a17d786eadfcc5a8e9f19000b4b516461141427f7d6d23d4f5fb78a
a3f4cb2b8b081a2b9d427d45cb72135d0855c0a01c47a11c4b4fa2b8aa06ff0042d46f2edee60f316
a16313d38dadbad91896829b196da47dfa9ab62a8dd32c6e2c2168ae751b8d49d9b909ae8421d4
500e23d08a25a6d5dc5715425fe897f7974d710ebf7f631371a5b5bad99896829b7ab6f236fd4d5b1
5466996371616e60b9d42e35272c584f7421120069f0fee2389683fd5ae2a80bcd0350babb96e62f
316a3691c86ab6b00b2f490500a2fa96ceddabbb1c5531d3ace6b1b7f427bd9efe4e45beb1722212
50f6fdcc71ad07fab8aa02fb43d42eee1e687cc1a85946e41105bad994500741eadb48d4f9b62a8e
d32c67d3edbd0b8bfb8d464e45beb176211250fecfee6389683b7c35c552fbad02fee2e259e2f316a
56a923725b7845918d052945f52d9da9feb31c5532d3ad26b1b6104f7b35fc80926e2e44424209e9
fb98e35a0edf0e2a94cde579a7d5e0d566d775174b5b93776f615b516c8c63788a6d6e242bc2465
de4aefd6b8abffd4f7f62aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55896a4b279
3ae6e3cc16aacfe58979cfadd8451b48f048c7935e42ab524753711a8f8bfbe4fde73595565304f0d
d431dcdbc8b2dbccab2452a10cae8e2aaca46c4106a31554c55d8abb15762aec558bf92594c5af7
1edadea00fcfd418ab28c55d8abb15762aa17b79069f67717f74dc6dad6279e66eb448d4b31fb862
a93f93acaeedb465bcd48b1d575591f52be0e006492e68cb1507fbe630908ff8c78aa17cf13c62c2df
4f53713dfdfca61b2d2ad2736af7afc1894926405e38547c72c88578aafed57d37558ef903ca0f65e6
0d475bbe81164b15fd196732c6d02cb29224ba962858011c0adc60b655fd88e590b334eeecabd2f
15762aec55d8abb15762aec55d8abb15762aec55d8abb15762aff00ffd5f6fe9de63b9d5350bab6b4
d2a63656777258cd7cf2c2abea42072609cf995a9a0db154cb51babeb48d1ec6c1efdd9a8f1a491c
45453ad64201c554b4ebfd52ea564bed2a4b08d56ab2bcd0ca19abf6691b138ab7a8df6a76b2a25
8e9525fc6cb5791268620a6bd2923293f462abf4dbbbfbb590df69efa7b290115e58a5e60f523d363
4a7be2a86bbd4f5982e1e2b6d125ba8169c2e16e2dd036d5d95dc11f48c551d633dcdcdb2cb776a
d65392795bbba48450ec794648df154b64d5b5d491d53cbf3488ac42c82e6d80600ec685ea2bef8
aa6ab2ced6826680adc18f99b62ca583d2bc3903c6b5dab5a62a9426b1afb32ab797275524066fa
d5a9a02773b49db154daf26b8b7b6926b5b73773a8f82dd59632e6bd99c851f49c5501a1eb526aff
5e8a7b292c2ef4fb8faacf04af1c9563147306568d98105641ef5c55e6baa793bcffa8eafa94f25d5ea
452ead6a524b6d50dbdacda3adf453b2886354923912dc4b037ef29256bf172fdd2a91afe5e7e68a
bc5ea5ddcfa1789629ac3d9ea7e8df3496da4a5a2491cd2a480186e51a57f87f7a240e7d465f4f156
51a5f947cef61af69ba9fd6a7961fd25a94dab4377a8cf3c2f697176ed6cd1af3aa3c5008d51006859
4bc6f1ab71982a9e0fd23e51f312e91a25a49a968dab45717d0e98b2450fd425b77884a21694a831
4a66e5e9d7f76fcb87c0dc5151610000026060f002220574d464301000000000001000000000000
000f00000000200000ec7d0100ecdd01004e3f4df98bb7962e3fe92acffeaae2ad7e9cf316ff00f3abd
cfb7fa5d9ff00d55c55dfa73cc541ff003abdcd7fe62acffeaae2ad1d73cc74dbcaf704f87d6ecffeaae2
ad7e9df31d48ff000add71f1fadd97fd56c5525f2d4be6bd1a3d596ebcb53c8d79aa5e5ec052eacbfb
8b8939256b28a301d47e38aa77fa77cc75ff009456e69e3f5bb2ff00aad8ab5fa7bcc74aff00856eab
e1f5ab1ffaad8ab7fa7bcc34aff856eebdc7d6ac7feabe2ab3fc41e65dff00e752bbdba7fa5d86ff00f25
f154a35bbfd6f5eb9d2bcb379a24ba5d8ea9701afe7b996da757b5b45fac4902ac3331aca5446491
c7873efc715653aeeb76da0d835ece8f3caccb0da59c3433dc5c49b24512922acc7e851566a2a938
aa0f40d0ee2de79b5ed73d397ccb7ca12678c978adadc1aadac05803c14eeed45f564fde301f02a2
a9f9200249a01b9271542da6a7a6df965b0bc82e8a50b8825493883d2bc49a57155975abe93652f
a1797d6f6f35397a734c91b713d0d18834c555ad2f6cefe33358dc4573083c4c90bac8bc876aa922
bbe2aa136b5a35bc8d0dc6a36d0cc9f6e39268d597e60b023154541716f7512cf6d2a4d03578cb1b
07434343422a3ae2a833af6862b5d4ed36343fbf8fa8ff00658aa34cd12c4673228802f332923871a
56b5e94a77c55069ade8b23044d46d59cec144f1935e9d037be2a8a9ee6ded6233dd4a9042b40d
24ac114576152c40c55421d5b4ab89560b7beb79676fb31c72a339a0aec01271554babeb2b1556
bdb98ad95cd15a6758c123b0e445715568e48e68d6589c3c4e0323a90caca770411d41c55762ae
c55ffd6f7b5ad95a597adf548962fac4af71371fda964fb4c7dcd3154462af9b27fce1f3ed87e5c79e2d
6ea784fe64688b79a86857df56568a4d0cc535ddbde4b10e29544826b77d82faf1a547c7baaf4cbef
cdad3f48fd2892e95a9ea367a0d9ddcfa9ead6d6e0db8b8d3618a69e166628aae564fddee11dd5d1
7751555465fcead1b4fb9bc8f5dd2af74ab3d3a7bfb3bdbd9cdbc91c773a75a25f94a452bb1f52ddc3
a1029cbf76df162a8993f36208f598fcae3cbda8c9e6992e0dafe8c46b5016b686f524333ceb194689
5e8437f791ba1edc9554d2bf36348d4f40d47cc1258dc58dae936b713ea4b746306dee6d6e67b47
b493833525e7036c2a389535f8862a91796bf38253e4d4bdd62dc6b7e69b5d79bcab7b6fa234222
92fe494fd5e48ccf2a2ac52c4d1382cfb73fa7154ee3fcd7b59e0bab9b6d07539ada05530ddac682d

319

247fad8b2954dc3308d3d29096662d46855a54e74a62acb3cb1e60b2f35f97b4df3269caeb63a9c0
973024a0070b20ad18024547b1c5536c5504ffa33491757f33c566972e25bb9e5711ab4811630ccc
c40af1451f462a955af9d346d46e61b7d1d6e75449a4f4feb7676d2c966943425ae4aac541fe4b93e
d8ab22c55d8ab1ebdff94db47ffb66ea5ff27acb1557f36f9a74af25797350f34eb6645d274c8c4d76d
0a196408582d428dcd09c554b45f3868dadcfabd9c4ef69a86833a5b6af6778a2196079a249a32db
952ae8e191d5994f4ad54e2a8fd5758b2d1f4fbdd46e58bc7616d2df4f0c54798c10a9762a9515d86
d8aa5d67e73d175386d25d25a4d41ae1ed16782d82bcd68b7f00b885ee9390312942a4d77f8976c
553cfacdb1217d64e44850390a9661503af5237c5523f3379c74cf2b5a0bcba86e6f5034ab2476117
d61e216f03dcc8d26e02058e327e23b9e2ab56618aa4de5cfcd8f2d799750d3f4db782fecae355b4
3a8e9ed7f6c6de39ad7d38255915cb153c96e1282bcb972560acb8ab357b8b78831965440942fc9
80a54d056bd3738aaef562f50c3cd7d555e463a8e414ed5a75a62a96689e62d37cc126a91e9cccc
748bc6d3aecb2d17d748a398f03521978cabbe2a94f9b754b1d1755d0752d465115ac2f7658d0b3
331b72151146ecec7e1445f899b618aaae85a4df5f5f0f357992211eaac863d374e2448ba75bbf550
c3633c829ebb8dba449f02f2755e577bf9a173e53f346b3a29d52dd86a3a8ea06c2cee239a6ba8e4
826d2e0a2565fee9beb331a8411c5c397c4aaeb8ab25f2179e7cc9e796974bd6ac12c45e6890de2
c90c6e638ae678e349a1984856489d2476e28c94963f891f9472ae2af41d0340d3bcbfa7db59d95a
dbc12c504504d2dbc290fa86250b53c40f9ef8aabdd68da3df4bebdee9f6d733d02fab3431c8fc4741
5604d31556b3b1b2d3e230585b456b093c8c7022c4bc8ed5a2802bb62a859fcbfe5fbc95e7b9d2ec
e79a43592592de27663e249524e2a8db6b6b6b4856dad218e0812bc62894220a9a9a2a80054e2a
803e5bf2e9249d22caa4924fd5a2ea7afece2a981860307d5cc6a6dcafa6622a3870a538f1e94a6d
4c55049e5fd05195e3d2ecd5d482acb6f10208e8410b8aa32e6d6daf22305dc31dc40d42d14aa1d
0d37150c08c550b0687a25aceb756da6dac372bbacd1c11a38a8a6cc141e98aabddd8585f845beb
586e950928268d640a4ec48e40d31542e81a58d1345b1d2032b0b28561051782d1050517b0f6c5
532c55d8abfffd7f7d453c13f3f425497d3731c9c1837175eaa69d08ee31554c55825d7e517936f74
bbbd36ee2b895ef749b9f2f5c6a067617ada5de4c67960f5450d0b13bfda1e38aafb9fca9f2c5d8d71
249b5016de62b77b7d56d12f255b7779605b692e1620782ccf12056900ff002bed9e58aafbbfcacf2
9dfcd752dfc53dd477d75757d7b6f34a5a19a5bed3d74c983ad0555a05e3c7b37c63e2c55116df97
9a15a6a763adc4f7526af6131b88eea69da4695fea9f51513160792ac3f081fcccd27f78ccd8aa13cb
de4771617775e6386dacfcc1abeab0eb9ac47a34928b47bab4f49615e52aa3489c608cc9c9139b7
2f871557befcb4f2e5febd75e6295ae92faf2f34dd4ae238e62b035de8e0adb49c2840214f17fe7555
0df6571542cbf94be56961bcb6f5f528ed6eb504d620b68efe7586cef92ebeba64b54e548b94df1b2
8f877a00171564be59f2ee9de53d0acfcbba4994e9b60a63b61712b4f2842c5a8647258d2b415ed8
aa6d8ab05f3c7e557e5efe665cda5cf9a6c05eea7a3480d95dc3713433dac940fb7a4ea012181218
1aa9c55009f956b653422d2e20d42c45c219a1d4e3944cb6c48e6b14b6b2c4bc80fb25e27f7c553e
7fcb6f24c9f6f4a53bd7fbe9faffc8cc55597c81e524a70b065a548e371703afca4c552fb7f2ee8fa2f9e
f4a9b4db7314b2e97a923b34b2ca4afaf6469fbc76a6f8aa97e73797758f377e57f99bcb3a05b0bbd
6354b436d6901956dc17675dcc8fb2d06f5fbb7c55e777bf96be74b2b2d5345b7d37f4f68d36b56fa
dcf35d5fa2ea5ab585cdac96d358decd2f2e72d9bb46d03b9f4a482289392c8956554aeff2e3cf505f
245a7685047a5d869b75a55918350595e4b5b8d1059c292c9743d6778e78d51cb48b170e12a233
9971540da7e5079bed353d3ef3f425b990798fcadaf5e5d453db8905b695a247a75e44d52a5d9258
d8aee55d64a8fdac550f63f933e61d3edece7d3bcab6b65a9d9d8688b04c92d9fa91ea1a6ebad753
48afcbed0b43c55fa94fdc7d9db15655e53fcbcf36691e5cf3743a9699ea79a751d2eef4b9b521a899
5759b8e539b7b9f44f18e22c263cda5fdf2d7d3de38d6aaa5fe63fcaef31f983c9de4ad1effcbf05ede
685e4ed53499e19e7b765835a9ac6d20b6642c6869242e5655feefe17eb8aa5173f935e639a6d53
5ab8f2cc17973a8799e6bed5f4f3790c33ea5a25ce9ab6c10cf565ac5724dc0865a272fde2fef78e2a
8ad7ff002cff00336e35199b45d36d2d8c36771a7c17cb7e5c5cdb49a6d9c691ccf387b862cf6ad6f2
316e203a4eb197f55f157a7fe57797f50d060f3235e6870f97adf55d61f52b1d32092190470c9676b1
30616ffbb53ea44fb293e38aaaf9eb43975cd7bca2b05f369f73677777736f72b05bdcb24a2d2440c
a2e63915580661c80e5be2a8a3e57f371e9e79be1d7a58e9bfc6db15633e6bf28798f5189348bdbf
bff0033c1352431cf61a18b48c834abbdc400823a8f4d1df1541f957f2dbf3474df3036ada8fe615d5b
6860a2c7e5bb78a0be85e34a7db9eea1050f6a5ba463157b062aec552cf31cb041e5fd566babb93
4fb54b3b869afe0afab6f188db94a9404f241f10dbb62af9f3c95e6a4fcb912f94b573a4e85aa7d774c
d32f7ce36afcf42bd82eac6ee7b2bde0ee160bbb830049e377a1774943c8258f154545e79f317953
ccfe68d6e19acb544bbbed392ff4eb58a4a5d4e7ca86fb9d9bb484aab496ebc50ab13196df953155
de69fcd2b9d5bc9daae9f71ae68773a46bda3eb77161ae5848d3c0d15b69514eb6aedc9116e19a6
92550ac4fd5e2df8c9be2aafa7fe667d674ed3fc9525fd84cb736f2584b68587d6dac0f94e1d523929
ea56a65675e7c78b27f94b5c554f4bfcd5d7acf41b6d3f47bfd1a17d03cbd6b733596a92c86faea26f
2f0bf86eada24a1913d61c1c9654f4e29fe25703157b7794ee355bcf2ee9d7dacdc43737f79047752
496d1182202751205556790d141e3cb97c5d7154e715762aec55d8abb157ffd0f6f693a1ea9a45ed
eb437d049a65f5ecd7f242f6ee2753381541209b8ec46c7d3c5537bc4bf7451a7cb0c5257e233c6d
2a914ec15e3efef8aa95947ac239fd23716d3474341040f0b56bb54b4b26d4c55d7b1eb0f221d3ae
2da1840fde2dc4124ac4fb14963a0fa0e2abac23d5115c6a93c13b923d336d0bc000ef50f2495fc31
5519e2f301b876b5bab34b5247a71cb6d2bc805056acb3a83bd7f6462a8bb35bd5800d4248a5b9a
9e4f0234494aed456773d3fcac552c96dfcda64730ea1a72c449f495eca66602bb7222e803b7b0c5
53445ba16a1649236bde146915088bd4a7508589e35edcbfd962a94a5bf9c3927a9a869a5411ea0

5b29c122bbd09bb34dbe78aa697a97af6b22e9d2c50de91fba92e2369a206bfb48af193b7830c552
df2f68f7da5bea973a95d45757baa5d8bb90dbc2d6f1205b786dc28579252768aa4f2ef8aa758abb1
5435fea163a5da497da8dc476b6708ac93ccc11054d06e7b93b01dce2ac5203e63f316af6be64d3a
08f49d36dada7b6b35d4e191ee6e56eda1732b42af118547a438ab932357e348a9baa9c7a3e71a8
ff4ed3294dc7d4ee3ad7aff00bd58ab420f39f1a1bed339f88b3b8a7ddf5afe38abbd1f3957fdeed329f
f0030771ff6558ab6b0f9c02d1afb4d2fe22ce703eefad1fd78aacb97f33da412dd5c5fe9b1dac08d2c
d21b59cf1441c99bfde8ec062ac77c95e61f3e79b744fd2772961a3deacd245369d73693bcb10a89
212c56e80ac90bc7253f679f1fd9c5591fa1e75a0ff4fd2ebdcfd4ae3f0ff4ac55de8f9d2a3fd3b4be34d
c7d4ee2b5ff00a4ac556983cf1daff4a07b7fa15c9ffb1bc55af43cf34db50d26b5ebf52b9e9f2fade2a9
46ab26b9a4ea9a2eb7e63b8b59b49b6b86b795ec6da48bd06bd8cc292ccd2cf201106215885f879
ab37c0ac7156718abb1543dfb5c258dd3da54dd2c5218001c8fa814f1d8f5df15493ca7e675d7ed23
865b4d42db51b7b785af5b50d3eeac10caeb4608d3c51ab10c0d42134c5576b1e70b1d16f8585c6
9fab5cc85049ead8e997b7b051abb7ab044e9cb6dd6b5c551da3eb16bafdacb3c36b77044ae6178
b50b49eca46f8412447708859486fb4071ea31563b7fe61f2a69cd79a2c9e5dd425812502e22b6d0
6f2e2d65714a32b476ed1c94a0f8813d3154fb4d5d1b58b78b5a8b4d314923fac86f2cdad6ed648e
b187649d16456a0a2923ecf4f8715632fe6bf27a40b647cb3aa9b58e432a5b8f2e5f9884ac4d5c28b
5e35353f162aca24b4d156d5f576d3118fd583305b4e5726158cd23f4c27a8485254474afecf1c558
e5bf9a3cad732c312796b5443247f514697cbf7b1a2dbb103d3666b70163f107e0c55955fdedb689
a7fae6da67b6878c6b6f636f25cc801214058a0566a0f61b0c552bd3bce5a76a77d1584161ab452c
d5e32dd6957d6d00a0a9e52cb0aa2f4fda3d715476b3aedbe8890bdc5adedc8998aa8b0b3b8bd65
a0ad5c408e547b9c55de5cb8bfbbd074ebad511e3d4268124b88e64f4a457615219283891dd7b62
a9a62aec55ffd1f7f62aec55d8abb15762aec55d8abb15762aec55d8abb15762ac7f57f3425b5d9d1
745b73ab798fe1ad944dc62b757e925dcd4658529bd0d6571fdd47262aa5a6795e56bc8f5bf345d2
eadae46795b28431d8d91df6b5858b51a8686672d2b7f3227c01564b8abb15762aec55d8ab14f3c
4915edb69fe53f5144fe63b95b578ea43359423d7bc229bd0c4863af4e522f8e2aee2745f3e023d34
d3fccd6b4e34224fd25a72edbf43ea5b9f9ff00a3e2acaf15762aec55d8aa8dddadb5f5acd657912cd
69708d14f0b8aabc6e38b291e041c558ff956f2eed26baf29ead299b51d2951aceedfed5de9d25443
29ab12644a18a63de45f536122e2ac9b15762aec55d8abb15762aec55d8abb15762aec55d8abb1
5762aec55d8abfffd2f7f62aec55d8abb15762aec55d8abb15762aec55d8aa1efafecb4cb496ff0051b
98ad2c605e73dcceeb1c48bd2accc4018ab18fadf987cddcd34cf5bcbfe5daf1fd272a01a8dda506f6
d1383e821a9a4b32faa7f62151c65c559068fa2e97a058a69da45b2db5aa92c40259dddb76791d8
967763bb3b9666ee71547e2aec55d8abb15762aec5585cf7cd0f9def2ff50b1be369a7594565a6bc
3652dc46ed74debdcc892448e7f6218caedbc6d8aa4de69f3e68ba968316afa0dbead7f7ba65c47a
969d15ae93a8f2b96b572b2c28cd6dc6b246648b72055bed62af4c460e8ae010180201041dfc41e
98ab78abb15762aec558ef9ab49b9b94b5d77484e5e61d119e7b04e4544f1c8009ed9ba8e3328a0
247c1208e4fd8c5535d2755b3d6f4db5d5b4f72f6777189222ea51c57aaba3005594d5595872561c
4e2a86b2f3268fa86b3aae816b71cb55d17d0fd23032b270175109a320b0018153d56b4e87154c9
27864e3e9c8afcd79a7160792f88a751bf5c555315762aec55d8abb15762aec55d8abb15762aec55
d8abb157fffd3f7f62aec55d8abb15762aec55d8abb15786c7f9abace8179a969f7735b5dc12ea1aaf
e8fb89cc8f24621d61ace3818860a47171e9d4c6a8169c989518ab37f2179f6e3ce1797d6d716f142
b0c16d756925ab9b886486e230c794a0fc3223d51e27556140ea6446e58aa7dadf9a2d74b9d74bb
385f54f314cbcedf48b520cbc5aa049331f8618aa0fef24a0d884e6ff00062a82b1f2c5dea3716dacf9
d258efb538089ad34c86a74db296845635600cd20a91ebca2bde38e1dc62acab15762aec55d8abb
15762aec55d8abb15631f97858f93b4c2db31596a2b5ff773e2ac9f15762aec55d8abb15762ac494
b795bccde99e2be5cf314ace8c4d3eafabbd2abd00e1720721bff007e0f79b1561be64fca1d6356f37
ebde69b1bdb08a4d5805845c40f23ac6ba3dc69be9c943464324c242bd28bddb1547f937f2cf5df2e
7982d357bbd52de4b7b75bd8e6822491fd58ae6e679e15a4c5bd3687d72a248caf34fddbc6df0346
abd4315762aec55d8abb15762aec55d8abb15762aec55d8abb157fffd4f7f62aec55d8abb15762ae
c55d8abb155391a086379a5291c5182f248d455555dc924ec00eb8ab111ac6abe6d017ca07ea3a1
ca409fccb2c7f1ca83622c6271f193da7907a43aa24e3154ff46d034bd0629534f8889ae1bd4bcbb9
59a6b9b893f9e695c9673e153f08f8578aed8aa678abb15762aec55d8abb15762aec55d8abb1563
3f97c54f93f4ce3d38cbeff00eee7f1c559362aec55d8abb15762aec5503ac69369ae69971a55f73fa
bdcaf12f1318e54604323c6e375746019187d9600e2a96f95b58b8bd86e348d5a456f31e8cc96faa
051c449cd79457083f92641c87f2b738faa1c559062aec55d8abb15762aec55d8abb15762aec55d8
abb15762aec55ffd5f7f62aec55d8abb15762aec5546eeeedac2d66bdbd9560b4b7469679a43c512
34156624f4000c5528d4fcdba569d05a14135eea1a822c9a76956d1937b3abd3e2113f028a2bf1bc
9c123fdb65c552f87cb5a8ebf3aea1e7678e5b74a3da796e025ec216ecd70c4037320ff00294429fb
11731ea62acb4000507418abb15762aec55d8abb15762aec55d8abb15762aec558c7e5f208fca36
08a6aaad7001f61732e2ac9f15762aec55d8abb15762aec558af9ad24d36eecfcd3a70f5351b0491
2f2c548125e69bf6a6445a12d245b4d101dc347b7aa7154c742f3045adcba8c51a2a2d94d1ac1224
82559edae208e78675a014570e453c51b154e715762aec55d8abb15762aec55d8abb15762aec55
d8abb157fffd6f6b2fe647e5fbaaba799f4b747019196f2165653d0821a841c55bff958fe40ff00a99b4
cf0ff007ae1ff009ab1577fcac7f201ff00a69b4cff00a4b87fe6ac5577fcac3f21f12ffe24d378af53f5b86

321

83fe1b156bfe562f90a95ff0012e99402b5fadc3d3fe0b1570fcc5f2093c4799b4ca8ea3eb70f6ff658a
bc73cdbf9d1a279b3ce33f93fcbb70b73a4687c25bcbd76862b0bbbf14748d25b878a29161d9bedfa
7ead3989563f4a4559c793bcc7e58d265b8bcd4f5fd0629ef514cf20d412fb50967e4c58cf78c62565
5ad1228e158e3ff75fc3f0e2acbc79fbc8e6b4f32699b100ff00a641b13fecfdf156cf9f3c903af9934c1f
f47907fcd78ab43cfde472030f3269854d687eb9076ebfb78aabff008cbca269fee7b4ef8abc7fd2e1d
e9bff00362a8bd335ed0f5a699347d4ad6fdedf8faeb6b347318f9d78f208c695a1a57154c3154a64f
347966191e19b59b18e6898a4b1bdd42acaca684302d5041d8e2ab3fc5be54ffabee9ff00f497077ff
678ab8f9bbca63aebba77fd25c1ff0035e2ab7fc63e51ad3f4fe9b5f0fae41ff35e2aeff197943fea60d3
7c3fdec83fe6bc556ff8d7c9bbff00cec5a66dd7fd36dffe6bc55c3cede4c2788f316984f80bdb7aff00c
4f15639e44f39f93e3f2bd923f9874d572f72406bc81588373291b17ef8ab23ff001af93695ff0011699
4f1faedbffcd78aaeff00197940509f3069bf17d9ff004c837f97c78ab879cbca0694f3069a6bd297906
fff000f8ab7fe30f28ffd5ff4effa4c83fe6bc55b1e6ef2a354aebba7903ad2ee0dbfe1f155c7cd5e5702a
75bb003ad7eb50ffcd78aa3acb51d3f5288cda75dc3790ab70692de459543000d09424568715426
bda0587986d16daefd48a685c4d657b6ec62b9b69d7ecc90c837561d08fb2eb5491591994aaf24f2
b6a7a97903f352e3ca5e6c5b7b4d2358d2a4b9d175c0d1c16b72f6171cda0542c3d26417523fa46a
aabf0c4ed1aaaaaaf58ff15795ff00eaf761ff004950ff00cd78abbfc55e58ff00abdd87fd2543ff003562
aeff00157963afe9bb0ffa4a87fe6ac55bff0014f963feaf561ff4950ffcd58abbfc55e58ffabd586dff002f
50ff00cd58abbfc53e58e9fa6ac2bff3150ffcd58ab5fe2af2bf5fd37614ff0098a87fe6bc55b1e69f2c11
51ad5853c7eb50ff00cd58abbfc55e583bfe9ab0ff00a4a87fe6ac556ff8b3cac4d06b9a7d7c3eb70ffc
d78aabda798341bf9d6dac754b4bab970592182e2291d82ee4855624d3be2a98e2aec55fffd7f687
e56851f961e4aa8141a0e97ff507162ac83f4c68dfa35b59fafdb7e87552eda87ad1fd58229e258cb5
e3404509ae2a8c468e5459232af1b80c8eb42a41dc1047507156f8af80c55dc57c062a82d4b53d1f
47816e758bcb6b0b66611a4d772c702172090a1a42054d3a62a88824b5bb823b8b678e7b79143c
32c655d1908a82ac2a0823c31554f4e3fe45fb862ad7a309eb1aff00c08c55af420ff7da7fc08c55bf4
a2fe45fb862ad18203d6243fec462ac5ed2344fcc9d4b8205ae8761d00036bbbdfeb8ab2cc558bf96
0e930e976d6f70d6eb757577a82dbc7270592564bb99dc203bb102a4d3e78aa716cfa1de4d71059
b5a5c5c5a388aee388c723c3252a1640b52a69d9b1542cbaaf94a1fae09ef74e8ff0047711a87396
05fab97345f5aa7e0a9d872a62a8f8ecf4c991668ade09239143248a88caca7704103707155dfa3b
4ff00f96487fe45a7f4c552db1baf27eab3cf6ba64da6df5d5bd7eb30db3413491953c4f354248a1db
7c551ff00a234aad7ea36f5ff008c29fd3155186cfcbf72d32416f67335b3fa570a891318e40a1b8b80
0f16a30343d8e2addbd8683796f1dcdadad9dc5acca248a68a389e3746150caca08208e8462abdb
49d1914bbd8daaa2024b18a30001d4d698aa4f16b1f97b2b7182ff46760acfc526b563c53ed1d8f41
df154ebf4469247fbc36f4ff008c49fd31577e89d2bfe586df7ff8a93fa62aa325a6810dc43692c1671d
d5c0736f03244b2482300bf0522adc41f8a9d315487ca9045079afcee90c6b1c46f6ca8a8a156bfa3
6debb0c559862ac3ee5237fccdb312a864fd017550c011b5e5b78e2ac9a28f4e9ebe8ac125295e01
1a95e9d3155c6dec95951a2883b578a955a9a75a0c5577d52d7fdf11ffc02ff004c55df54b5ff007c47
ff0000bfd3155822d3cb98c242641b15a256a3db155ff54b5ff7c47ff00bfd31577d52d7fdf11ffc02ff00
4c55df54b5ff007c47ff0000bfd31577d52d7fdf11ff00c02ff4c55df54b5ff7c47ff00bfd31560fe698618f
f317f2f4c71aa1f5357dd540eb627c31567d8abb157fffd0f68fe56903f2c3c96c760341d2cffd39c58a
be70d5bcabe6687f2cfce3e578b45bb9fc89a85a9f356930a5acaf30d4ee26659f4dfab95f5797d6c7
d79008c8a37dcabd1f54f337e60c96de72bbb4bad4ac752d33ebb6fa6e971694f242f6cd756e74fbc
b799e3747260e61902bb334927a8abe80c5505a87993f3534cd4f5187486d4f5358aef5fb4b5866b
40ca6ced62b39ede6461000f22fa93ac049a4e57d2f8f8e2a9f5addf9d352f37e9da326afaac1e509e
f7517b4d423b748e69ad21b2b09a249a59a062a05c3dcc68cc11a450577e35c558a799bfc6fadf95f
cbf6faddb5c5dea7a1f9cb40d31e796dfeb70dc9d22fddae354296ea0ac52a32992bc153832fc1dd5
4c0da798bf2b755d37cada05c6a57f6f75a9c5aa6ab3a5830d3826bda85ebde7a0218e55410d63fd
dbba8813d275f51a593154bbcbbe6dfccdb6d27c813eaf73aedd6afa9d9e917fe634b9d338dbc725
d6a16f6d7d1b7a16c191e388c8c61711ac49ca6e6cdc42aab97cc7f9a69690dfbea1abb4df506be9
61360bc7eb56fe605b5488a2db5407b476e683e2645f5fb72c55364d5fce7ae5bbdfea77fab594d69
abe9b1eafa25b69f7300b56835811c8d1dc703eb40f6ecbcc44248de35f5cbafc55550b61e60fcccd
5748b39eef53d5b4fd6350d5f4ed3b5dd3a3d24c3fa3435ecf1dcb4134d148ad1bc1e9d1d43a2045
9fd41ea10cab3ef206abe689bcc5afe8faf0bbb9b1b2a369baacb188e09e21610000026060f002220
574d464301000000000001000000000000000f00000000200000ec5d0100ecdd0100fac4f104746
8a268ee1046048179c32c7e9dc4657d565c5538809ff959ba82f63a1589fbaf2eff00ae2acb31578bf
9cfca96de74d07cada14b7173a6de9d7752b9d2f59b24779f4ebeb75bf6b7ba5651c4709787c3210
9272f49bede2a95586bbe7ab2b35ff12594de55bdbcbdd560d7f54d32d96e239755b2b4b586c674a
c6c5a0bb659258811566f4eddbed71c5584f9b2c3cebad796ff0038ae2e6da2b5d5b56f2d682356d
3069935e4973a97e8f759e0b692391033248de9ed1cdc1a98abd02ffce5e6e8353f324eb7f7b69a6
68deb410e8b67a3497123d94c6d7ea77b14ec813885f579d3d4fb4ffbbe50531562b77e7afcd2b90
96b65ad5e5a79923b1bc9749d1174f8e45bdbdb2f304b6b0acad35aa4a6396cc2067fdd7c3fe91f0f
06c550de5b8eff004ff3b43af4b62dfe1fb5f32f9b7f42c9616534337e9abf9a55b68f5092809b2b889d
8c32a0585a6f4fd66da3c55349bf317cff001f92cead6da86a57bad6a0921b7b58b449e14b1d52d34
99e49acae249626600dd46382ac2df1fee3d4e0fc95547e9dadcf3f9cdb56b1babcd3f48bcf3409758
92da19121612f9461f4fd75788d505c4656ac38faa946f8b154874ef3ff009fe5d1741b98f59bbb695a
cfc962e2ca1d3608e3f5756d466b3d549516bf0f0802485578adbb51e817e1c553ed1bcede6bf326

a7a6f96f53d4268ac2766b6479b4b92e575986df52bcb4bd86568e248e2636a903924c5c565f5d79
a557154abcd7a279725d17f3d63b2d2e05b8d38c1fa20c565f14520d120b406dc08fe2a38923f839
7c5c94e2a9bc7e6cf3f5cf9963f2fe9baededc5b5bdfebcb6d28b3b60f7d1d859585e59c4f2bdb7008
d2cb345c902174aa86e69c82a8197f317cf30f935b5a8b58bfbcd43508ae6e2c604d0e7b7faa5f5a6
99ea4965333c2eccc2e51d92310fc46b07abc53962a8bd3b5ed6fcd5f9cbe50b9d52deee2b9d22fb
ccf04969f54916d6db4f9ad62fa84e66310afd66250e0b3d39b3c7c432710abd5bcb1ff00297f9dff00
e636c7fee9d6f8ab2ec55885c32a7e66da3390a8ba05d9663b0005e5b549c55f2e7e51ea5a86876
3a2798e08144d69a379ae0f28269f0bc916abaac9a84f746c75165a113a2431c9670d3f7d1c9218d
f92f02abd0a4f3deb73d9681e694d42d7cd1ae575eb8f2bc76b0c903cfe9e8c24faaf178a22f22cc18
3aaa725f8616aca8d8ab7a8fe6ff99748f2cc5aba7986db576bbfaf5f68b7169632adbdc5adb1b2631
4b3490c7ce488493d56285792fdb78dade42caaaeadf9b1e72b54d56d9751820b61ab8b33e69544
9349b0b2b86be36cce56179239b9c505b4f0cf11f4df8c9ea94b8470aa1740d2afbcede7ff00355a5d
ea7650eab612f9475bd5eeed209a3bf373a75aa4f32dac127192249997d26e75748e468d9496c55
47cb9f9bde70f3779874bf2e59f98d34fb7d4751b28e2d45ec6117325ade6897178e0472831a32dd
c1e9f1ac8632c61677618aa36d3f377cc1abea3169f67e6116d6f77a968d0c7752594714de9df5d6a
36b7b0fa732b2c6d1fa10d14b4af13ff00784f3298aa55a07e76f9cbf40da5c6b3ab453cb7fa7d9dee
a37e618add34c806af73a74f72563864215923859cba48913bfa9f0c5f0aaaaf37e6279eb41d63577
d63cc424492c3cb5ea6a3e83c1a5dad9dd1be4b8d4e2492ddd903cb1c11bbb218c19797011fa7c5
54f6dfceff0098626d7259fccb63732681a568123d8fd556c2d6eaef5467499beb1323c907a8230d0
9917d289a65697f75d1565afa8cbabf983f29f549d278e7bd8350b8912ee3486e15a4d3791122464
aab6ff1053c7f976c55ea38abb157ffd1f637942dfce1e5af29683e5cb8d1ada79f48d3ad34f9678efa
88ef6b02445979420d095a8ae2a9cfe92f357fd5861ffa4f1ff5471577e92f357fd5861ffa4f1ff5471577
e92f357fd5821ffa4f5ffaa38aac9af7ccd710c904be5f85a295591d7f48015561422a21af4c5507a4a
eb7a06996fa4691e5682df4eb3411dbc0ba88202d49eaf1124926a4b1a93be2a8b1ab79baa01f2dc
60773fa423ffaa58aae3aa79b0569e5e88ffdbc13fea962ad7e96f377fd4b91fcbf4847ff0054b1577e9
6f36d3fe51c8ebe1fa423ff00aa78aae1a9f9ac807f40443d8dfad7f087156ff49f9a87fd2822fa2fd7fea
962a87d26c7599bcd579afea76515941269d6d630a24e277678a79e572688b45a48b4fa71564f8a
b11d1b51bdd1ece4d3e7d0f519248eeaf1bd4892178d965ba9645652661b15607a62a8ff00f125c7f
d4bfaa7fc8b83feabe2aeff0012dc7fd58354ff0091707fd57c55bff124ff00f560d53fe45c1ff55f154b7d
6b3fd3ff00e26ff0deadfa67ea9fa3fd7f838fd57d4f5787a7f58e1f6b7e5c797be2a997f8927ffab06a9ff
22e0ffaaf8abbfc493ffd58354ff91707fd57c55aff00124fff00560d53fe45c1ff0055f156ff00c493ff00d5
8354ff0091707fd57c55dfe249ff00eac1aa7fc8b83feabe2aeff124ff00f560d53fe45c1ff55b1577f892
7ffab06a9ff22e0ffaad8abbfc493ffd58354ff91707fd57c55dfe249ffeac1aa7fc8b83feab62a83f2a417
cdacf99f55bbb19ac6df51bbb67b44b9f4c48e90d943133511de839ab0dfc3156558ab11d560d4acf
ced67af43a6cf7fa78d2ae2c6436a612eb3497304aa0acb247b1546dc62a98fe9fbbff00a97753fbad
3feca71577e9fbb34af97752dba6d69ff6538abbfc4179ff0052eea7f75a7fd94e2ae1afddefff003aeea
42bd76b4ffb29c55dfa7eeeb5ff000eea55f1a5a7fd94e2aefd3d747af97b52dbdad3feca71571d7eec
ff00d33ba91fa2d3feca71570d7aebfea5ed487d169ff6538ab7fa7eeffea5ed4beeb4ff00b29c55a3af
5d9041f2f6a441ea2969ff006538aa437f6fac6bbe75f296a91e917567a7e8cda8497d3ddb5ba802e
6d7d28c288e69198963e1b62acef15762afffd2f7f62aec55d8abb15762aec55d8abb15762aec55d8
abb15762aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb
15762aec55d8abb15762aec55d8abb15762aec55d8abb157ffd3f642dbeb177e65d4eee5d6af60b3
b1bc8a3b4d36036a2d5e116b03912030b48793b3d7f78a7c36c55917d76e3c47dd8ab1cd5a1d6a
3d4ecf54b3d6af5524bfb28e5d2eb682ccc0f2a4728a3c3ea6ea4b6d2f2e5f67f971566f8abcf757f3f5
f68bf98b7be5db9804fe5fb2f2f43ad94b5b7927bf7b89af9ad388e2fc7800bc8d5071dd99d514e2a8
9d3ff363cadaa4b045642ea46bab75b9b43e92859ffd3ce9b247112f469229c52451d1591c16575c
5534d07cefa37995f56b7d3bd68eef47119bd82e22e1222dc4664898a0248e414fc0dc645238ba2b
62ac63cbff009cbe59d46cfcbeaf2dd5ecdac5a68f723528ac1edad48d79e582d2464692431096585
d3872731b71e478fc58aabe8bf9c9e5ad62c747bb3697d6f36b2632969e88b89ade2b9b992d6de5
9d6dda42a92bc4d4601b850b49c1072c552f97f36db5abff002f5af95ec2f61d3b5a8af6f86ad75606
58dad74c10bc812113c729e6242a19559b97d98deb8aa7769f9b1e56d43943a725ddf6a71b4e25d
2ad60f5ef152d12dde69382310ca8b750fd86672d270553206555534d13cf9a179875ab9d174cfac
4b25bacceb7be8b7d4e53693fd5a7549454728e4f84abf066fb51f350cd8ab26c55d8abb15762aec
55d8abb15762af3e92df5cd675dd78a799751d36dac6f52d2dacec96c7d258fea96f2927d6b595cb1
6918eef8aaa7f8775dad7fc69add3c38e99ff6418aa5baac3e62f2f49a35e45e6bd52f566d634fb3b8
b5bc4d3da1960bb9c45229f4ad2361b36c5594e2af4fc55806a9f98173a3fe625ef962f218db42b3f2
fc5aeb4b04724979eacb7ad69c281b8fa638f22c40e3b9765452d8abb4ff00cdff002aead2431e990
dedd9b9b68aeecda2854adc2c97e74e912162e03b4130fdf71d9138c9c99596aaa6da17e60f96fcc
075c5b596481bcb850eacb7486268a3922f5d1c8a9a028092ad49129c64446db154a2fbf31671ac7
966d6c6c2682c356d467b1be37f6d2a4cd0269571a9452daf0243f2f45548f89854a322c9f0e2abf4f
f00cdff0027ea6f6b05bbdc2df5dea07484b2923549d6ec5bc777c5817a57d19524e0a5a5a721c394
722a2ac83cb7e6dd27cd67503a4191e2d3ae24b39a66502369a1778e455209a32b210c8fc645f84
b200cb5553dc55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abffd4f679f2c79921f3

323

25dea763acd9c7a0ea17315d5de9b2e9ef25d55208e0754b91748abc846082616e3fe562ac8ff47a
7f3b7e18ab19d4fcabe66d4759b6946b9690f96adeeed6f3f470d3ddaf18da3acbc7eb5f5a0a033af5
f43ecfc3fe562accb15613aafe5679675abbd6f50d464be96fb5c8adede6b8377273b782d275b98e2
b6de91a7acbea14dd58d41f80f1c5511a67e5af94b4bfd10d15a3cd3e8371a85de933dc4af2cb049
abc8f2dcd189dc333922bf67e1e3b8c55de56fcb8f2ff0093d2f574796f2b7f6b6f633bdc5c34ec21b3
12ac3c4b83465594af2ead452fc9aac5549b4afc93f2868d6fa7da585c6a096da641a3da5a44d7218
2c3e5db992eec94d537e324ae5ebf6c1a362a8ed27f29fcb3a15cd95d69171a8d9b5942d68121bd
95126b5f5e4b98a1980fb6b049349e8d7e2557646664623155b0fe53796a0b1d1f4e173a8359e89
61a86956a86e4a96b5d5942ce24645562d455e0e0ab271db154358fe4bf9434ebeb7d56d27d4e2d
5ed9cb0bf4be952778a4b7b7b69607294062956d602e94d9e30c9c0e2a9ff973c8fa3f95af6f6eb49
9ef05bde4d35ca69b2dcc92d95b4b75219a736f131a27a9212e46e1496e1c01231564b8abb15762
aec55d8abb15762aec55806a1e57fcc18b5bd5ef7cb7ae68f6fa5ea72a5ca5b6a1a65c5d4f14c2de2
8189962be81594fa5c82f05ebf6b15503a07e70d453cc7e5ce35150745bddc77ffa59f7c55a7f27fe6
16a975a6aebdaee8d269763a85aea32c565a65cc370ff005393d5545792fa555a9001628db62af47
c5584ea9f95de5fd66f35dd46fee6fe4bfd7a3b5b792e3eb147b5b7b1985cc70db7c3448fd5fde3a30
70f52adf07c38aaa691f961e54d1ff43b4514f713e813ea373a54f73333cb0beb0ed25c80c38d4166
aad7eced4dc62ab3cb1f95be57f2adb6a767646eaeadb58b3834ed463bd9ccfeadbdac7244809a03
cbd390a3356af40cd57e4ecaa847f951a1ad968d633ea9abdd45a1493c962f737ad2c9c6e2d24b1f
4d9cad4aa412ba2528f53cd99a4f8f15405a7e477936d6c0e98f35fdd584973657b7305c4eb22cb3
e9b0416f031fdd828552de2a345e9ba95f8597937255937967c8da1f95350d5b56d3bd69353d71a2
6d4aeee1c3c92fd5b988b99555e4ca242bea3f295978abbb045a2ac9715762aec55d8abb15762ae
c55d8abb15762aec55d8abb15762aff00ffd5f67ea9f98369a66a775a547a1eb5a94964c91cf71a76
9f25cdb891e3597889010090aeb5a74c5509ff002b3a1ffa94fccfff0070997fae2aad67f99165737d6
9653e81af69e2f264b68eeafb4d920b759253c503c8490bc8fc23df156698aa00eb9a2adf3696da95
a8d4d4aab5919e3138690724063e5caac371b6f8aa1e2f35f95e7b84b5875bb092ea46089025d42
d233312000a1ea4920d315565f30682d6b3df2ea9686cad429b9b913c7e9441bec976e545af6ae2
a8f474911648d832300caca6a083b8208c554edeeed2ec4a6d278e71048d04c62757e12c7b32371
268cbdd4ee31556c55d8abb15762aec55d8abb15762aec55d8abb154ae6f32f972de692dee358b2
8ae216292c525cc4ae8c3a8652d507d8e2aa8daee88b68b7eda9da2d83b7a6974678c42ce2bf087
e5c49dba57155b6de61d02f674b5b3d56cee2e64a88e186e229246a024d155893402b8aa658abb
15762aea8c55d8abb15762aec55d8abb15762aec55d8abb15762aec55ae4a58a82390dcad7700f
4c55bc55d8abb15762aff00ffd6f62dbf9cbcabe5fd6fcc763aeeb367a6dd9bf49561ba9921768decad
806a311504822bed8aa3bfe5677e5dff00d4d1a67fd2545ff3562a976ade79f26eb4da669ba46bb63
7d7f2ea76062b5b79d2595825c23b10aa49d8024fb62acf3157cdde7cf2af99750fcc2f386a8ba3df5f
f93beb5e54bad574eb5b52b73a8dbe9866919ec2e081592d6630c9244879cd1abc68eaf8ab377d1
2de7fcc3f38cd2f9767b9f2fcde54d220b48c5a98219e7b49f5295e081dd542caab71152854ab3762
8dc556157da079ba0f2079c3c91069f7faf6977fa6e9fa4f94f54b9b016daad1e2988b3bfe2b1abc76
815145d944159b84859d1e4c55ea5f98171afc57ba3d85945aaa6857b1dd43757fe5f4592f6d7500
22366eeae180869eb722cad173f4fd6fdd9c55e79aa4de7ad1edbcc70f97b4cd660bd9f5bd6f50b2b
8b4b6678a47856d1e0e68141713fef446dcbd06e2e1c3b9897154cf58bffcd2035e4d392f658a4bc5
bcd22e45bcf173815ae58e9d346033c04ac68a9796fea46dca032c2bca5e6abd934e9279b4fb496e
a2782e6486369a09595e4491941656640149076246d8aa2715762aec55d8abb15762aec55d8abb
15617f97d040d6be602d1ab9ff0010eae6aca09a9ba6af5c55987a1071f4fd34e00d42f114afcb1548
bcc104297be5d291aa9fd28bb8500ffbc9738ab21c55f2f798beb2bf9a1e63b967363e5183cdba41d
6f5fb233fe90b1074ab6e11fc1455b3b99b94173255846cec5d3fddb12a9fda797bca36be6afcd3b1
63369d61e5fb0d24d85de9deab5e58a1d2e78259a0e1c999955f93fdae4ff149c9e98ab16d42fee5ff
002e3cefe4cbab7b49bccd1cda569fa3eb3a17aa2c35c942c32a496d055fd1ba588d2ea2477dfe2e
6436cabd5bf38ff30357f21c7a59d0e48d6778ae2e9aca4b72d1cf1d9c96e194cb53c689239f4e35f5
5fed878e38a46c5583695e61f3d79664d76cbcb53db5ddacfa979a641a6dda0b73a7ca9aab359cad
72dcf8a5d7aa638fd58fd25e51cbfdd472f25546fbf353cf915cc9796da849666fedfca31e9da76a761
1563fd29ab4f63aa4dc61601da24552ceb2bc3f65d7f76cb8aa637df9c9e67d23cd1ad69125c26a1a
669b1cf05c5dad8490bdacb657d616d3cde8a9767096f7335cb313c2411f289162462eab35f29f987
55bef3b5b5a5d799d357d1eeb436bbd3d62b54b586ee44bf990cea68599921f495f8308dbfbc5455
6a62af3afcc1f38ea7e69f20f998dc5ff00a57f63a8da5b5d79692d648aeb4f9ad7cc16f142e2e16848
96dd4c84372f501f522658c30c5531d4bf38fcd2bab79834bd1a7b6bc7837d31658859ca64835496
d27b7432f248e4f4154c6d74dc1e5e3237a50cd180ab31f2779f75dd67ce89a4dfc72be8d7ba55bd
ee9f3c76be99498db5b4d325ec658c9693033725572f0ca8ea91bfab149c95619e70fcd8fcc2d1744
d6358d36383f485a9d6e3b9d227b5673a60d2ee445673315656916e90a753fbc6995e1f85194aaf4
af336ab77a1af9292f6e2d750b9bdd661b49ef26b70b559ad6e4fab0a872236140bcbe2f85997f6b1
579ae8ff00995e76d4ad7499756d5e2b48ee13cabab5edcdad9ac4b1c3abde5ddadd5ab7a865a2f
ee223ccfc6864fe565c551da2fe6779bb5bd26def46a967657fa9ea3a7e9971a6cd613fd6748bab99
6686e209048620cca151a3e7f16cee7944e9c55486e3cd7acf92b4ff0037eb90de26a5e716d6758b
4b5bc9ac017b88f4ab24b98ed7d541f0c65c1e117c6cdf1241c4f370ab2893f36f519ac75ad62d6e9
124d2a568351d04d94d2cd6564f770c716a425407d48beaced7468aeb227109431c9c957a5f9275
2bfd5bcbb6f7da8df5aea5348f2fa7a858452c16f3c0246113aacbb92538f265fddb3f229f0d062ac87

15762afffd7f7f62aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb15762aec5
5d8abb157c91abffca5be6cff00b6f5efeb5c559bcfff009286cffedaadff001be2a91f90bfe53cf2d7fcc5
cbff00505738abe9cc5567f438ab876fa7f5e2ab63fb0bfeb1fd671555ee71553ef2fcbf862aefd85f97f
0c55507418aad3dfe78ab9ba0ff003ed8aad9bfb97ff54e2ab87db3f21face2ad7ed1ff00638ab9bec8
f97f4c55cbf68fcce2adbe2ad2753f47f1c557e2aec55d8abb157fffd90840010824000000180000000
210c0db01000000030000000000000000000000000000001b40000040000000340000000100000
002000000000000bf000000bf0000af4300808043030000000000008000000080fe7fe9430000008
000000080ff7fab432100000008000000620000000c00000001000000150000000c000000040000
00150000000c0000000400000051000000c86501000000000000000000d2010000560100000000
00000000000000000000000000005e01000001010000500000001804000068040000606101000
00000002000cc00d301000057010000280000005e0100000101000001000800000000000000000
00000000000000000fc0000000000000000000000ffffff009b9b9b00acacac00fdfdfd00fbfbfb00fcfcf
c00fefefe009c9c9c005e5e5e00fafafa00eeeeee00f2f2f200f9f9f900f5f5f50060606000f3f3f300f8f8f
800f1f1f100f0f0f000bbbbbb00a2a2a200afafaf00ededed00696969009e9e9e00797979008f8f8f00
8a8a8a0085858500e3e3e3005c5c5c00949494006a6a6a00cacaca00b9b9b900b8b8b800a9a9a9
0081818100e8e8e80083838300a7a7a7007a7a7a008282820093939300c5c5c50078787800dede
de007d7d7d0073737300c9c9c900d3d3d3004a4a4a00e6e6e600aeaeae00a5a5a500969696003c
3c3c00dbdbdb00a4a4a4006c6c6c0024242400d2d2d20040404000d6d6d600b2b2b20061616100
b0b0b00064646400e9e9e9007777770049494900cbcbcb005b5b5b00c7c7c700d0d0d0007f7f7f00
a6a6a6005757570048484800bcbcbc008c8c8c007575750058585800ababab00e1e1e1008e8e8e
004f4f4f0072727200f4f4f400cdcdcd00e5e5e5005a5a5a00b3b3b30099999900f6f6f6006d6d6d00
e0e0e00059595900767676009f9f9f00303030004d4d4d00efefef00707070001d1d1d00d1d1d100
52525200c8c8c80086868600b4b4b40054545400cfcfcf00d9d9d900dcdcdc0087878700cecece00
5d5d5d00c1c1c100e7e7e700eaeaea0056565600e2e2e200b7b7b700c2c2c20043434300a8a8a8
00c6c6c60063636300979797004b4b4b00c4c4c4007b7b7b00b6b6b6003b3b3b007e7e7e00f7f7f7
00dddddd00d8d8d800b5b5b500a3a3a300bebebe00a1a1a100adadad00dfdfdf00aaaaaa00b1b1b
100bababa00c3c3c300d4d4d400d5d5d500cccccc00d7d7d70041414100e4e4e400ececec00dada
da00ebebeb00474747006e6e6e007c7c7c00747474006f6f6f0071717100656565006b6b6b003f3f
3f00bfbfbf0044444400292929009d9d9d004242420098989800393939008d8d8d0084848400808
0800027272700676767001f1f1f0090909000343434009a9a9a001e1e1e0062626200888888008b
8b8b0092929200505050004c4c4c00bdbdbd0091919100202020004e4e4e003d3d3d0017171700
686868002c2c2c004545450037373700c0c0c0002d2d2d0021212100141414002f2f2f0038383800
3e3e3e005f5f5f001919190095959500161616005353530031313100666666000f0f0f0036363600
3a3a3a001313130046464600252525001b1b1b002e2e2e0023232300323232005151510015151
5002b2b2b00262626000b0b0b0018181800555555001a1a1a001c1c1c0035353500a0a0a000282
82800898989002a2a2a000a0a0a000c0c0c00121212000d0d0d00090909000e0e0e00030303002
22222003333330002020200040404001111110005050500101010000101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
101010101010101010101010101010101010101010101010101010101010101010101ba9f378ea
a648cea083e01055daa158e8e158e37529d0101010101010101010404070706070106070501070
6070707050e010101050401010107070101010101010d0a0701010d0d01070104060705040701
01010101010107040701070407040107010706070407070101070106100107011107010701070
1060a010706010601070105010606010505070404010101010107070404060406040a01070101
01010101010101010101010101010101010101010101010101010101010100000105ba3168a3a
5a568686868686868686858a5a23c608f01010101010101010101050106010707010707010a040
7010a048801010701010601011101070701040407060106010701050188010107040704070101
06010701010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
4c50010707010101070404070407010101010101155b0101010101010101010194492c0107a0a0
057ac4424b010426ae026013c880bb1701010159269f7e3c0c3b2c2c2301927eea6a0184af8f09a7
018c531558be1e0f1f23017b759401050403c131782f18bf77602eba63431c168b05308b16060107
014bba379101b4422f07010555b28127189498429645cf5d78844e5405ba84670a1d2b0e6ab825b
a3827cf499305770f0fa7010604010501010101010101010101010101010100000112203e1e9a55
5b7a7a7a7a7a7a7a7a901e5b1e55c8250d0101010101010101070ca3426c01234ea701190f0801
057cafa7739807872a9c011101019b21b27001afa10b086024582220c80305bb918c55010606010
60501010101010101010101010101010101010101010101010101010101010101010101010101
0101010101010101010101010101010101010101010
A periodic real-time thread is a real-time thread that has periodic release parameters. Similarly, an
aperiodic (or sporadic) real-time thread is one that has aperiodic (or sporadic) release parameters. A

325

NoHeapRealtimeThread is one that guarantees not to create or reference any objects on the heap.
Hence, its execution is totally independent of the garbage collector.

7.7 Asynchronous Event Handling and Timers


Threads and real-time threads are the appropriate abstractions to use when representing concurrent
activities that have a significant life history. However, it is also often necessary to respond to events
that happen asynchronously to a thread's activity. These events may be happenings in the
environment of an embedded system or notifications received from internal activities within the
program. It is always possible to have extra threads that wait for these events, but this is inefficient
and may result in an explosion of the number of threads in a program.
In Java, standard classes can be programmed that multiplex events onto a single thread that handles
them in a particular order. For example, the Abstract Windows Toolkit has an event-handling thread
for interacting with user interface windowing events. The Java Timer and TimerTask (see Section
4.4) classes provide similar functionality for time-triggered events.
From a real-time perspective, events may require their handlers to respond within deadlines. Hence,
more control is needed over the order in which events are handled. The RTSJ, therefore, generalizes
Java event handlers to be schedulable entities. Like real-time threads, they have a variety of
parameters (as illustrated in Figure 7.5).
010009000003c06201000000af98000000001610000026060f002220574d4643010000000000010
0420f000000000d000000002000007c7101007c910100010000006c0000000000000000000000d
20100002301000000000000000000006a4000003428000020454d46000001007c9101000c00000
0010000000000000000000000000000000005000020030000c40100001a0100000000000000000
00000000000e3e306006e4e0400460000002c00000020000000454d462b014001001c000000100
000000210c0db01000000600000006000000046000000845e0000785e0000454d462b224004000
c000000000000001e4009000c00000000000000244001000c00000000000000304002001000000
0040000000000803f214007000c0000000000000008400005d05d0000c45d00000210c0db01000
0000000000000000000000000000000000001000000ffd8ffe000104a4649460001020100480048
0000ffed0d4c50686f746f73686f7020332e30003842494d03ed0000000000100048000000010001
00480000000100013842494d040d000000000004000000783842494d03f3000000000008000000
00000000003842494d040a00000000000100003842494d271000000000000a000100000000000
000013842494d03f5000000000048002f66660001006c66660006000000000001002f6666000100
a1999a0006000000000001003200000001005a00000006000000000001003500000001002d000
000060000000000013842494d03f80000000000700000ffffffffffffffffffffffffffffffffffffffffffff03e80000000
0ffffffffffffffffffffffffffffffffffffffffffff03e800000000ffffffffffffffffffffffffffffffffffffffffffff03e800000000ffffffffffffffffff
ffffffffffffffffffffffffff03e800003842494d040800000000001000000001000002400000024000000000
3842494d0414000000000004000000023842494d040c000000000bbc0000000100000070000000
460000015000005be000000ba000180001ffd8ffe000104a46494600010201004800480000ffee00
0e41646f626500648000000001ffdb0084000c08080809080c09090c110b0a0b11150f0c0c0f1518
131315131318110c0c0c0c0c0c110c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0
c0c010d0b0b0d0e0d100e0e10140e0e0e14140e0e0e0e14110c0c0c0c0c11110c0c0c0c0c0c110c
0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0cffc000110800460070030122000
21101031101ffdd00040007ffc4013f0000010501010101010100000000000000030001020405060
708090a0b0100010501010101010100000000000000010002030405060708090a0b1000010401
030204020507060805030c33010002110304211231054151611322718132061491a1b142232415
52c16233347282d14307259253f0e1f163733516a2b283264493546445c2a3743617d255e265f2b
384c3d375e3f3462794a485b495c4d4e4f4a5b5c5d5e5f55666768696a6b6c6d6e6f637475767778
797a7b7c7d7e7f7110002020102040403040506070706053501000211032131120441516171221
30532819114a1b14223c152d1f0332462e1728292435315637334f1250616a2b283072635c2d244
9354a317644555367465e2f2b384c3d375e3f34694a485b495c4d4e4f4a5b5c5d5e5f55666768696
a6b6c6d6e6f62737475767778797a7b7c7ffda000c03010002110311003f00f55517970638b1bb9c
01dad9893e1b94945fbf63bd38df076eee27b6e8494c4becf50346c80017fb8ee13310ddbfc951f56
c87cfa60830cf79d753f4fd9edfa2aae7749c7ceb83f22bdd2c0c711639a406bbd66fb58df7ecb1bec
7b9decfccfe72df5336fe8dd22bca6e35f8d60367a8ec7b3d5b1d5975a595dcc76dfe66efe6dffcdecf
7d9e959fcfa4a77b75e0d6363487122d21df44412d7365beff0077b10b231f1efc8adb7d4cb5a18f20
3da1d1ad7fbc8a05c3d30035ad1fce0927483b457f47f3b6a85e321b6b2ca2b6d90d735c1cf2c892d
23f32cfdd494e47a56001b6741a1ef2742c356d83dff48c0f6bb6fd3ff84432c79b856dfabf4fb7d32ed
cdaa087ee07f4bb7d36ba8d9ef633d7fec7f38aee7f4fb73df5beea432caa457657796b80716bac6e
e147d0b3d3afd4fdf54b03a7b72d8722af5886596525b664bfe954efb33ec2d157f85763fda6bff8df5f
fc324a6e74fc3c3ca6d8ec9e914e23ea78606bd95b89f6b1ee735cd66ddbbdfe9fb3f71686235adc6
a9ad01ad6b406b5a2000068d6b426df99fe8abffb70ff00e9252aff00438edf54b5bb1a3799f688e7dc
76a4a59d6d8dadef218d0c27573b4da3973ddb7daa232eb71dcdb6a3540876fd64fd1fecb9068bbe

db82f7d54b5d45e5c18db7755beb71735cfb18fadcf67a9f99fe92bfd27b108f43e9dea69854803dcd
7cfb83ff0092c730b76b7fd6b494dbaef7580063aa73e48706ba74692c7469f9ae6ed4471b80b080c
d04d72489febe9ed552ae998f55d5e4b312a66435ce76e6b9da6f1b5ee6fb3dce7ff515a7face6d8d
dac32219249067fd20da929fffd0f5549240cac87502bd8c0f75af0c127681a39e5ce743ff00359fba9
293aceccea98d55a716dc7beddc4b4eca8b9a46d6b9ceddfbbfa5aebff8c5645998751554478faaeff
d20985b98e9db5d2e82418b5da11dbf98494d5c2ea6d739ec2cbc515c7e96fa9ec2dd621efb23d56
fbbf9dffb7bfd32d3559f7663185eea6b868931638981e1fa16aa94e68aedb29a2a7b58cb3d335da0
b18277edb31ee8737d1d957f36cfa1fa3fe6d2537333071b358c664b4b9b5bc58cdae73087005bf4
aa731df45df450fa5b18dc6786b4347af7e8047175ac6ffd16ed4475d92c8deca9bb8ed1369124fd1
68fd120e37daf1dbe8b99497becb6c03d520c3ec7ddc7a5f9ad7a4a6f2a197901ed738b2cb71aa70
6bdb53771b1e5c1be98ff0081a9dfcfff00db7fe0efa9ed7e55e5847b1b582e6dafa5e6cb1bb1aeb1e
c633d367e97dbb7f908d465d0ea1afab6d7416fe837cd721a3ddfa3b1ad756c66d494c307a8d591b
2baf1b2286ed3b7d5a9d581b7dbb35fa3fc857504daf96b3f47ea4c39bbf899236fb7dded6a765c1ef
786398e6309692d7490e112c7b63dbfe724a4a92117dc19218d73a402d6bbb4c38ee706fd145494
ff00ffd1f5555b368b2e6d7e986b8d6fdc5af24020b5f5386e0d7fe6d9fb8aca4929c26fd5ca98d0c65
4595832d6372ad0d1a6cda22afe6ffe0fe829fec06efdc185b33bb6e4386e243d85f67e83df63b7fd3f
f82a7fd12da492538f5743ae96db0c045d53a97fa973ec6ec706b1fb98fadbbb76cf723e761d4eae8
c4aaadc01d581c587d36b5d53bf4bf49bfce7a7fcb576f153a9b05d06a2d22c078db1efff00a2abf4dc
3af168f630d7bf5159739db5b25cd64bcbbddef73ecff857a4a6837a0e30b0bfec87738b4b89b899d
a5cf01c20fe75967f9e874744e9f752ff004f0432b7b9ec7b05c5bf41fe93dbec1f437d0b5f2599ae7d
4ec6b58c6b49f55b634b83818fa3b5cc735ed50e99fd19dff1f91ff9fee494d0a7a661e064d6f6631a4
dae87dadb1ee206d6d2d9b1d1b37b9b43367a9fa47ff83fe75eacd9d2a87b1d53aaf56b638dd487d
d66b63c3d960b277edafdff00f0957e93f9857adadb6d6eaddc3c107e6b39f87979bfa419f763021ad
b29a83001656ef7bd8e707dac6d9b7e87abfcda4a41ff0036fa7fd9d950c1afddb058c37da40157f32
5af735dea6cfe5b5889ff00377a69b1a1f88c7b2b66d6da6c7ef71ff85adad6b3e93ddefddfe8ff00e0f
d3d4a58faea6b1f61b5cd106c70009f32181ac53494e6e274aa7108bb1f1aaa723e8170b1ef1e99d
81fee735bbbf9bfa0b49249253fffd2f5551787398e6b5db1c4101d1307f7a0a928bdbbd8e60716170
23737913f9cd99494d1ea3d4f1ba6bea7655b635ae69203434876d7575bb77b7d4ddfa76d9fa3fcc
ad068eb381916bb1eacbb4d96bdd5d6763742cf4f71abf45f47f58afdd72d2f4dfbdaef55f0d10590d8
77f29decdffe63d30a6c878f5de77fd130cf6ff53f47ff009f3d44948afc175e71b7e45bb71ecf51ed1b4
7aa403b1b76c637dad7fe93f47b3f96a59f78c6c57dee7fa4cae1d65913b5808f51db61df99fc953f4
5d35175af3e9124f037920b7f4bb1adfa3b92c9a7d7a4d5b8b2483b8007821df45e1ccf7424a739dd
63a630bb7f530d2de5aed80e803e034d61cef6bbf350b1f3fa4e1d22afda87deebad1eb166f32ff5ae
1b4d4cfe65f7b2bd9b37ff0035fe1559fd8948101cd8023f99a381dbf99fe4a73d1d85c5e6d971993e
8d12771defd7d1fcf77b9e929587d42ac9cb6578d94326a755639ff46439a69f4fe8359f49b6bd4852
1b9d9591ea3a4318400d61dba1f57d23b3d4fd37a54fa9efff00035a9e2f4d6635cdb4585db18e635
81b5b1a03cb1ee3b69aebff0044d44b31ad373adaef755b8005a1ad23dbbb5f737f94929cf7f5ec06
d6d70cab1cf76d8a831a1f2e732bdbef6359bab75adf53deac62e763e6586bc7cab1cf00b8835ed80
0869fe72a6fef237d972b58ca709d4fb19ff914becd97ff00731ffe657ff904949a82e35fb8ee21ce6c9
ef0e2dec88874d66aac31cf361924bc800924eefcc0d6f744494fffd3f41653d57d06b9f7e47afb4173
40c6d9be25cdfa1bfd3ddfcb46cfb7ab32c6b7029aec61612e7d878787561acd9beafa55bad77f617
cc6924a7e99664f588b77e23741fa201e3570376e9977d0dacc6d9fcbbffe0d59c6bf26d7bc5d8c71
dad0d2c739ed76e2776f6edacbb6fa7ed5f2ea4929faa2cdde9bb67d283b7e3db954bd2cd0cab6dd
905cd782fde31fdcddccdcdb76307b366ffe67f49ff81af9912494fd3b916f55197e9e3d55fd9bd361f5
9c64fa85fb2d67a7bebf6d747e9bfe821d795d60d2d2fc268b9c44b458ddad01b5b9f2edceddbadf5
ababff04ad7ccc924a7e9b397d53d91d3e7713ba6e60dbeddfeefedfe8bd8a76e4f5065ae0cc3f52b
8f69dec69905c35dcefa2f67a6e6af9852494fd3afc9ea41d6066102d6869ac9b5a0b892cdeddb1ecf
4daeb3f3bfc1a19caeb444b7058dda7569b812e6c38fb3dac6b7dfe9b7debe6649253f51e2db9560
71c8a05111b06f0f265a1cefa206ddaffd1a3af9552494ff00ffd93842494d040600000000000700050
00000010100ffee000e41646f626500644000000001ffdb008400040303030303040303040604030
406070504040507080606070606080a0809090909080a0a0c0c0c0c0c0a0c0c0c0c0c0c0c0c0c0c
0c0c0c0c0c0c0c0c0c0c0c010405050807080f0a0a0f140e0e0e14140e0e0e0e14110c0c0c0c0c11
110c0c0c0c0c0c110c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0cffc0001108
00db015e03011100021101031101ffdd0004002cffc401a200000007010101010100000000000000
00040503020601000708090a0b010002020301010101010000000000000001000203040506070
8090a0b1000020103030204020607030402060273010203110400052112314151061361227181
143291a10715b14223c152d1e1331662f0247282f12543345392a2b26373c235442793a3b336175
46474c3d2e2082683090a181984944546a4b456d355281af2e3f3c4d4e4f465758595a5b5c5d5e5f
566768696a6b6c6d6e6f637475767778797a7b7c7d7e7f738485868788898a8b8c8d8e8f8293949
5969798999a9b9c9d9e9f92a3a4a5a6a7a8a9aaabacadaeafa11000202010203050504050604080
3036d0100021103042112314105511361220671819132a1b1f014c1d1e1234215526272f1332434
438216925325a263b2c20773d235e2448317549308090a18192636451a2764745537f2a3b3c328
29d3e3f38494a4b4c4d4e4f465758595a5b5c5d5e5f5465666768696a6b6c6d6e6f6475767778797

327

a7b7c7d7e7f738485868788898a8b8c8d8e8f839495969798999a9b9c9d9e9f92a3a4a5a6a7a8a9
aaabacadaeafaffda000c03010002110311003f00f7f62aec55d8abb15762aec55d8abb15762aec55
d8abb15762aec55d8abb15762af36d13c89e4ef31de798753d7347b5d43506d62ee37b89d0bbf08
8aaa2d49e8140a0c5535ff9545f96550dfe15d3b903c81f416a18f523df1559ff002a73f2b3972ff08e9
7cab5e5f564ad68456b4eb438aad6fc99fca87003f937496028456d233d3a751db1568fe4bfe5330e
2de4cd259694a1b48c8a786e3156dff263f29a40ab2792f476551c554d94240037029c715687e4b7
e528248f2568f56fb5fe870eff003f877c55c3f25ff291400be48d154014016c601b1f92fbe2abd7f26ff
29d178af92744a7fcc05b9ad4537aa7b62ab4fe4b7e503579790f406af5e5a65a1ef5ef1f89c5572fe
4d7e512ee3c87e5ed853fe3956676ff009158aadf2a7963cb7e55f396bd67e58d1ecb45b39b4ed32
69adf4eb68ad23793d6bd5e6cb0aa82d40054e2ace715762aec55d8abb15762aec55d8abb15762
aec55d8abb15762aec55fffd0f7f62aec55d8abb15762a96798b5a8fcbba2ddeb32c125d25aa8616d
07012c8ccc11554c8c8a09247da603155ba26a7aa6a4b31d4f44b8d19a32a235b99ad6632820d4a
fd5a59694ff002b8e2aa1ae6b1ae69b3c71695e5cb9d66274e4f3c1716702a3548e245c4d1b134df
614c554745d73cc9a85e7d5f54f2bdc6916bc59beb735dd9cebc8528bc6095daa7e54c551dae6a1
aae9d6d1cba469126b33b4811ede29e1b72894279f29d954ee00a0df7c5527b3f3279bee2ee186e
7c9773696cf22a4972f7f60eb1a1342e5639598d06f402b8ab23d427bbb6b29ae2c6d0df5dc6bca2
b457488c8dfca1de8a3e9c558cff893cedbff00ce952fb0fd2365ff003562acae079248239268fd199d
55a48890c5188a95a8d8d0ed518ab16b6f37eacbe60d3f42d67cbd2e9a354fac0b3bbfacc17085ad
53d4219633c9792f4c5596e2aec558af91c929e6127feaf97f4edd1971557fcc0bfbdd27c8be65d5b4
db86b5d434fd2ef6f2d6e102b324b6f03ca878bab29dd7a106b8abcdfcb5f9ade60b2b9bfb4d6b49d
4752d26e2e1ae7cb9abdcc7069d33e9927d5ada2fac41318250cd7b2b4519f417945c256f12aa776
ff9d5a6ddc179796ba35e4b67a45c4da6ebd2ab455b1d4e1964844122f2e4cacf1f159630c3f791ed
f11e2aa8b7e7969496935c4fa54f6b3db4764f716b79345692c4da8c82285a459b89481d8944b860
232ebc1b862ab17f38acb4ad4ad74bbbd33539e3bed4ee2d2e2f276b43f5366d4d74d4429130664
134d1aa710ec23ddd8b29c5503a77e666a5f987e6ad27cb7a5c779e5dd2cd9deeb17b75135b4d3
dedb410d935bc50383218ebfa423796aaae1a3f4bec92d8aa9f943f39ae6ef4bb0b1b6d36fbccb20b
58161f3049e869ff00a46ea5b49af405b772b246cd0dbcadf1468bcd428f85c362a9941f9e36da858
5aea3a2f97eeb50875078e3d3904f042f234f71676e9cfd4655404df444fc448f8f63c7e255e83e55f3
0dbf9afcbd61e60b589a08ef63e4f6f210cf14a8c5248d8a920947565257634db154e31563765ff29d
eb5ff6cbd33fe4fdf62ac9315762a957997596f2fe837faca402ea4b388c896e5fd20ed50002fc5b88a
9ebc4e2abb4a9fcc133cc35bb2b4b4450be835a5d497458efcb907b7878d36a7dac550dab5cf9ba2
b9e1a169ba7ddda7007d5bcbe9ad64e75351c23b598529d0f2fa31557d126f324d1cc7cc76565672
861f57161752ddab2d372c65b7838907c0362a97eb173f9811ea0e9a069ba3dce9415784d7d7f75
6d70588f8ab1c56732800f4f8f7c551fa14be6696298f99ad6c6d660c3eaeba75ccd74a529b973341
0106bd8038aa5fa9dc7e6125fcc9a369da34da6023eaf2de5f5d43391c4579c71d9c8a37ad28e76c
5533d124f304968ede64b7b3b6be121089a7cf2dcc462a0a12d343090d5ad471a7f958aa5ba84ff0
0982b7b3ae9363a34ba703fe8d25d5e5d45395a0fb6a96aea0d6bd19b154db477d6decebafc36b0
5ff26f82c659278787ec9e52c71357c7e1c5526ba9ff003185d4c2c6c7447b10ec2dda6bcbb494c75f
84baadab00d4ea013f3c553bd29b567b246d723b68b51ab7a896523cb00153c68d2246c76ebf0e2
ac62ff5af3de9fae699652d8690fa66ab7ed6504cb7773eba44904d75cd90dbf1e5e9c0c3887a732b
f171df157fffd1f7f62aec55d8abb15762a85d474eb3d56ce4b0bf8fd6b4978fa91d4ad783071ba907a
818aa2b154bafb5ed134cbcb5d3f50d42ded6faf485b4b79a55492525820e2a4d4d599547f9442f5c
5514f7b66979169cf3c6b7f3c6f3c36c58095e284aabbaaf52aa5d031edc97c7156afafecb4cb57bdd
46e23b5b38f88927998246a5d822d59a8376200f7c556dd6a361632da4179731c135fcbf56b28e46
0ad34c11a5e080fda6e08cd41fb2a71552935ad222babbb196fa04bdb0b75bdbdb73228921b590b
8595d6b5542637a31dbe06f0c55136b756d7d6b05ed9cab3da5cc6935bcf19e48f1c8a195948ea08
3518aab62a85b8d36caeaf2d2fee21125e58191ad2535ac6664e0f4a1eebb62a8ac55d8ab16f24d0
0f3081d3f4ddf7e254e2a9af9934383ccda06a7e5dba9e5b6b5d56d65b2b89ed8a09962b8431bf03
22ba83c49a12a71549b58fcbdd275e35d4eeaea56fd18349255a343449e2b84b805631499648519
48f83fc8c558fc9f929e519e5d48dbea5a9db1d52da48b5686cef0411cf7d2cf25c7e9191113fdeb49
1d9924fb0bf0feefe04e2aa26e7f27741be89d350d4f52be965b3974e9ae6ee58679a4b7ba082e51
d9e13c967318692323d20ff1c688d8aa8dcfe4ce81e8a3595ddeadd5acdf5db1124c9e98b88efe2d4
e30e4445b809e08c1a7c5e9d47daf8b1549fc81f94da9e9da169b16bfa85f586ada34ef368f343736
b71756df588bd2ba88cd1dac71cb6f310acb14d148ebc11da4f515782a9fd9fe4cf9534db15b0d367
beb48e03646c648a7024b66d3ed64b256898a13578a690485b972e64af1db1548bcc5f93165648b
79e4c935186edaf34d31d8c77a896b676d6d77632cf25bc73ab2090a58a1f8f9f26f66c55ea9a5699
6ba369b6ba5d9022d6d2358a32c6ac428dd98802acc7763dce2a8cc558dd91ff9df35a1ff006abd33
fe4fdf62ac9315762a81d664d2e2d32e64d684674a55add09979c7c2a3ed2d0d77c551d8aa95c4a
60b796655e663467095e352a09a57b571579de89f9cfe5ff30daf906eb4cb4b875f3eadcbdb87e282
c7ea16ef3dcadd127e178da368b88eae0f65271565b2f9cfc9f04692cde60d3628a48de6477bc8141
8a3e7cdc12e3e15f4dea7b706fe538aab5c79a7cb36866175acd8c1f57892e27f56e624f4e194808e
dc98515b92f163b1e4be38aa1eefce3a043a25eebb637b0ea76d6769717c23b19639de68ed6a1c4
7c09e4790e1b7edfc3d7155b67e76f2c5ce9ba5ea336a96b66357b34d46ce0b99e28a6681e2f54b
056604f15af2a74a1c5532b4d6748bf985bd8dfdbdcced0a5cac50ca8ec609002b200a4fc243021ba
6e3c7154762aec55d8aa0ef2e2c21b8d3e3bce3f59b89da2d3f92f23eb882590f1343c4fa4926fb6d

55fdac55ffd2f7f62aec55d8abb15762aec55d8abc7bf31d12d3f31340d7347633799234b1d32ff44b
985a4b5d4b48bfd457e289c0f82e2ce58feb21ebf0c61bd45e0e1d1579ddfeb5e60d42d342f35e9da
e6b4daedb5adc5ecb6f2c06009a8b5ee8d0dde9d49210cf6fcc4dca31d3e2547e09b2aa77be69d67
57d1d6df59d6755b8b0d4035dca89677901835eb7b9b149b4c258319235533c9e9055897e2e1cb
87c0aa9db799fcd37315b4bac5deaf35c68f7c1da4920792e2dee62b1f31472342b247c59d556dbb
32f2f4ff9fe25501a25ff0099f56f34beb725feaab35b69874e64749cdb6a1a745a8eb625f5dae61492
6f42d8c124721e0dca48dbac8062af50fc8fd4f55bcbb96cb50bebd1269da6d9da49a24d6b3c7696f
1470406d678e6948426542db44b563cfd4de3518abdb315762aec55d8ab15f240609e6166e8dae5
f95f90655fd63156558abb157cd5abdbea1a579a3ccbf987a3df59e931e85afdf69e4a8f52e751b9d5
2d74e856da44fdd44aaafca48da69197d6657708bc8b2abcfe7479dadfcb3179deef55d24d95cbe9
e96ba1456e2376f574cb3bfb8ff4a92e08346b96057873f4d57d3ab9c551337e6c79f34b336b173a9
e9da869a905c5d47a74764d0921535a11832acf2371074c8d9a8bc9b9b8dbe1c5565dfe67f9cec2e
22af98f46b9bad516dec2d2f229e3fd0d6beb3ea13457534c5055d84305bcbc17d3e6f45f8f154ff4cf
cc1f3a8f32588d5351b1baf2fea1adcfa4b41a7db0f5ed56236f1c2c7d494bc90492cde9492855785e
4b6629e9b4bc557b6e2aec55d8ab1bb21ff3be6b47bfe8ad307fc97bec559262aec5528f34e9571a
de817da55ab2a4f751844692a1010c0ef404f6c5537c550ba9c73cba75e456ca1ee6482458519b80
676421416a1a027be2af9faeff0021bcd0b60b6ba54d696a6792e654513c8ab61f5ed126b69d232b
1d5c497f732ccc5787ee8ff37c38aa6d0fe51f9827d6ed35c7d1f48d363e5a64f71a7477535e1496d6
faf6eee7f7d3401a4690dcab7221016e5b6dc9954a26fc8ef3adde83a2e8d792d84efa3dfd96a3eac
93c8cb34426d39ae2d58184fc31ada3fa64ecff00b80427c5c55649a479322d6cf9ba3f2dea7f58f2b
eb1afc63d58257b692c6381c5c6a2b6b2aab722d78187101554fa839d5698aa4765f925e6dd3ad4
d8db0b0b8b7d1eda4b3f2ecb77793b5c496f1ebd16ad0457132401e22d0ab40f2465f8fc2c15b7c5
5957953f2f7ccfa2f9eb4fd726b6d2ec3cbb6365756b1da69d71704a9bc8ece8a62921024647b7656
9de5e5227a5448c2fa78abd6b15762aec552bd574b96feff44bb8dd5534bbd7bb955ab5657b2b9b6
0169deb383bf618abffd3f7f62aec55d8abb15762a9179caf751d3bcb77d7da52cad7b6fe948ab6d1
1b898a0953d4e11aab963c396c149f0c5515a36bfa7ebc933d825d2ac0c15feb7677564496151c45
d451161eeb5c554759f34695a14f1dbdfa5eb49227a8a6d2c2f6f538d48ddada19141dbec935c554f
49f37e91ad5dfd46ca3bf59f897add69b7f671d1695fde5c411a577e9cab8aa3358d6acb43812e6f9
6e1e391fd351696b717afca84ee96d1c8c06dd48a62a95da79eb42beba8acede2d4fd6999514c9a
4ea50c60b9a02ef25b2aa8ff298818aa7b7d7b0e9d692deceb2bc30af27582292e2523fc98e25676
3ecaa715484f9eb460397d5756a1246da3ea44edff46f8ab2386559e28e640c12450ea1d4a300c2a
2aac0107d88ae2ac48f98af354f33e896ba4dbea1169aa6eceaed7161736b0f158691564b88901f8
cfc214fe18ab30c55d8abcffcbbe71f29e912ebb61abebba769f7b1eb17dcadae6ee186501e401610
000026060f002220574d464301000000000001000000000000000d000000002000007c5101007c
910100c0947653b8351b62a9d7fcac6fcbeffa9ab48d881fef7db753d07dbc5571fcc1f2203c7fc4da5
d7fe6360f0aff003f81c55047cd3f95ad1dc42756d0da1bb93d7bb8fd6b5292ca08f8e415a335547c4
77db15513af7e519805afd7bcbe6d8b7aab0f3b429cc27a7c82f4a85f86bfcbf0e2adc7e66fca549b8
c3a9e802e21e2dc525b41226ec54d01aaeeec57fd66f1c557b6b7f9562d92cdaef43166918863b72
6dbd2112b890205e814380dc7a72f8b15568fccbf96cb22dd45a8e9025491e65991edf90965a7370
c37e4d41c8f538aa3bfc71e4ead3f4f58d7c3eb11ff005c55c7cf1e4e1d75db1ffa488fbfd38abbfc6fe4
f1ff004bdb1ff91f1ff5c552fd0753d3f57f39eb777a5dcc7796aba769b134d03074122cd7a4af21b540
6069ef8ab2fc55d8aa49e70bfbed2fcb3a9ea3a773fae5ac0658fd288ceff0904f18d431634aec01c55
bd07cd7a27995a75d22696536e14cbeadb5cdb503d694f5e38ebd0fd9ae2aa1adf9dbcbbe5dbc5b
0d565b94ba68c4aab058de5d2f06240f8ede1916b51d2b5c5513a079a347f3324f2690f3badb1559
7eb1697566417048a0b98a22dd3f66b8aa0b59f3e796f41bf6d37527bc5bb40acc20d3750ba8e8e2
a2925bdbc887e5cb1547683e65d27ccb14d3692d70d1c0c124facda5d591e4c2a282e6288b0a775
ae2a81d47cf5e5dd22fa6d36efebdf5a808122dbe97a85cc75701871920b7746d8fecb1c5533d175
dd3fcc168d7ba70b81023988fd6ad6e2c9f90009a25cc71b11bfda038e2a97df79db43d3af65d3ee5
35037109e2e61d2f519e2ad037c32c56ee8db1fd9638aa69a4eaf67ad5a7d76c567583914a5d5b4f
672557afeeee1237a7bf1a62a94ddf9eb42b2ba9ace78b523340e6390c5a4ea5347c9763c648ed9
9587f94a48c5538d3352b6d5ecd2fecd665b790b0517304d6b2fc248358e74471b8eebbe2ac6752f
38c475bd1f4fb08b52e2ba8bc1aa30d32fbd1f47ead708a4cad6fc387ae61f8d5a9fb5cb872c55fffd4f
7f62aec55d8abb15762aec55d8abb15762aec55e6bf9c5e44d4bcd3a3dbeb5e57d4aff46f39e80ff5
9d3afb4a95a29a683fddd6b220f866475f8844e3791578b47c8b62a93f937cff00e742c965a95ba79
88fa09771a4016cf5196d19769edcc9e9dbdda1614715b4b881bf77341cb8b3aaf6046e68afc4af20
0f16d88af63ef8aaec55d8abb1576f8aa93dadb3b991e18d9cf566504fde462ad7d52d7a7a11d3afd
85fe98aaef420a53d24a74a7118ab7e9443f617ee18ab6238c74451f40c55f3ff00e58eb9a8dc7e7b
7e605fdecabfa0fccff528b488490d46d261912164f69e159a623fc9c55f40d07862ae000e83156f15
762aec55d8abb15416abab69ba25949a8eab70b6d6717da91ea4963d1555416663d15141663b28
c55e33adf9dbcf1e74fcc3f2ff0092fcb320f2ef9785d35cf98dde8dab4b6964893bc2a5792c152f0a4c
072911678d4bc7233222af73c55d8abb15762aec55d8abb15762aec55d8abb15762aff00ffd5f7f62
aec55d8abb15762aec55d8abb15762aec55d8ab1897c8ba3cf1dedbb9912dae2e8ea16421630cb6
179203eacd6b2ad1a32ec4bb01f096692a0ac8cb8aa8e9fafea1a1de5b797fce5221b8ba93d0d275

329

d45f4edef9f72b1c8a3686e388fb15e1353943de28d565b8abb15762aec55d8abb15762af32fce7d5
f53d074fd0b58d16658b53b0beb8b98d1d1a55963874dbb7788a29150f40b5fd93461f15315637a1
7e67f9afccfe65bcf2f69b716ea0cda95a594925a4b13acc96892dbc93062290c7219237f4cb4a195
398a3d51555f2f794aea3f386bfa568b731db5df96a6f2acb6f2c884c6d0db59c905ca506e0cb03ca8
0f66607157b662aec55d8abb15762aec55d8ab0af37cc754d56cbcb9a1451379a951a7fd2d24692f
e87b398fa725caf3047ad200d1dba7ed37266fdd47262abfc9be4d4f2eea5a9dd989628008f4fd1a3
0feb3a58c5fbe9247723919ae2e659a598924bfeef91e43156658abb15762aec55d8abb15762aec5
5d8abb15762aec55fffd6f7f62aec55d8abb15762aec55d8abb15762aec55d8abb15435fd8596a967
369fa8c09736570a526825019194f8838ab135bbd4bc88441abcd36a7e5067221d5e53ea5d69cac
4909767ac902fd95b8fb683fde8e5f14f8ab338e48e68d2689c49148a1d1d4865656150411b10462
abb15762aec55d8abb15762aec55e7fe53ffc9a1f989feae89ff5092e2af40c55d8abb15762aec55d8
aa41e69f314ba2436d67a6db8bef316a8e6df49b0ad15a402af2ca6a0ac310f8a571da8ab577452a
aff002bf96e1f2e58c88f335eeaf7aff59d5f5497fbdbaba6003391bf1400718e31f0c718545e98aa798
abb15762aec55d8abb15762aec55d8abb15762aec55d8abffd7f7f62aec55d8abb15762aec55d8ab
b15762aec55e25a8fe65f9874ed6f50d374f934d834fb3b997d4796195da466975576f8cdc001a962
80edd6476a7d95c558e5e7e6b79a0eb563acdf49656f6162750822d4409a3d3e357b98eda4fad2a
c9216fab05495deaa07abd1687154c2ff00f397ceda64b34ccba65fdbc465516f6f6f71196f4d6efe25
66959a80dbabef1f2e0d4e35c556dd7e6ff9b0eb569a6bdee99fa2a69ad396a96d6d37d5de166b06
77e5331262985d950c116817946cdd715657e44bed7f4ef2ad9f986cac0cba54ef37e96f2c5b255ac
658e678e57d34abb8921054910a1292afef2db857d1655e99a66a7a7eb3630ea5a5dc25d58dc2f2
8a68cec7b1041dc1076653f129d9b7c55178abb15762aec55d8abb1579ff0094ff00f268fe626fbf0d
0f6ffa3597157a062aec55d8abb15762a966bdaed8f9774d9352bf2ec8acb1416f0afa93cf3ca78c70
c2837691d88555fe1be2a95f95b42be826b8f33798a8de68d511566895cc90d8db292d1da407a51
6b595d40f5a5f8cfc3e9aa2ac4fce5e6cf35d8f9ca4d1ac2e5f4bb0b5b38afad07e8f92f9752575b95b
9459150ac6f032c2dbc8b406ac8eafb2ac27fc79f996608af239eef51bab0586ee1b5834ff004a3bcb
9bef2e5c5d25a4aa91d4a2de46aabc59583bfa723f3e18aa7565e6bf3bdede697f56f31cafa6dcd86
b1a999a4d124898b59a59b4104a8f12b921a49ea234491c27a6bf1c6cc557a2fe5deb3ac6bde54b
4d4b5eb792db55779d2e2390a3a931ccea1a292348d648980062938233a712c8afcb156558abb1
5762aec55d8abb15762aec55d8abb157ffd0f7f62aec55d8abb15762aec55d8abb15762aec556fa6
83a28f1e83ae2a97e87a1e9fe5ed362d274d565b385a674123191b95c4ad33d58ee6ace7154c782
75e22bf2c55dc56b5a0ae2ae0a140550001d00d862ac5754f2fdfe997d71e63f27845d4a6f8f52d22
46f4ed3512a3ad7a4571d96703e2fb332ba8528aa6ba0f9874ef30dbc9259b347756cc21bfb09c70
b9b59e8098e64ec77d8eeac3e24665df154db15762aec55d8abb1579ff0094ff00f268fe629ff23431
4ffa3597157a062aec55d8abb1550bdbdb4d36ce7bfbf992dacad91a59e790854444152c49ec3156
2ba158de798b568fce9adc32db430ac91f96f49994a35bc120e2d75323508b89976008ac109f4b67
79b92acc715762aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55ffd1f7f62aec55d8
abb15762aec55d8abb15762aec55d8abb15762aec55d8abb1563faff0096db509d359d1ee7f46f99
ed93d3b7be51ca396304b082ea3a8f561249dbed2125a2647df157797fccdfa4a77d1b57b71a5f9a
6d63125d696ee1c3c55e3ebdbbedeac04ec1c0aa9f824547f87156418abb15762aec55e7fe5323fe
5697e6201d934327e9b59b157a062aec55d8abb15611172f3f6ac9744b7f81b4a9435aa538aea7a
840f5f55aa2ad6d0328f4a9f0cd30f53e28e38f9aacdf156b92d78d472f0aef8ab890a2ac401e27156
bd48ff9d7ef18aae240153b0c5567ab17f3afde3155c0861506a0f423155867841a19141e942c3ae2
abd5958554861e20d71558f3c319a4922a9f06603f5e2ada4d0ca488e45723af120feac55d24d145
4f56454af4e440ad3e78aae041008350770462ade2aec55d8abfffd2f7f62aec55d8abb15762af39b0
f2f695e63f3af9cdb5b8e4bc167756315a23cf32a431be9d0bb2a2a3a800b3331a0dc9c553dff9573
e4d26a74d24d29fef45c7426bfefcf118aadff956be49e0d1fe8a1c1d78b2faf7142bd69fde62ab3fe55
87914055fd0e9440028f567d80edfde62ae6fcaff0021302afa242c08a1e4d29dba777c55a3f95de41
68fd26d0e168ab5e05a42be3d0be2aa63f29ff2e86c3cbd6c07b731d7fd962adffcaa7fcb9ffa976d3e
e6ff009ab156c7e54fe5d0141e5db4a7faadfd7155c3f2b3f2f07fd33b67f4a13fc71552fcb1b586c743
d4ec2d5425a5aeb7ac436d0a92563892fe50a8b5e8146c062ac0b43fccef32e976e3449ac2df50be
86526d6b73219e782ea691200ed280118380af23314f8a341f6b92aac8757d753cd3f95b67e6e8b8
45a85cb5a469756a26b79e01717f15bdc468d208e685880d1cabf0b2b724de98ab2fff0005681fcb7
9e3ff001d1beffaaf8ab63c95a0024817953d7fdc8df7fd57c556ff00823cbf553c6f2abf67fdc8dfff00d5
7c55cde47f2f3a8464bb2a08207e91beea37ff007fe2a878ff002e7ca30dd5cdf45693a5ede8417770
b7d7a249442bc539b7af56e20d16bd315573e46f2e1eb15d6e6bfef7def5e9feff00c55aff0001f9679
72305c96f7bebd3d7e7362aa6df97be547a06b59cd07115bdbc3b7fc8ec5501adfe5cf949f46d450d
a4f46b59c1ff004ebd068636ad0fadb62a9247e68bcf297e5af90b57b6824bbb4fa9d8aea36b088bd
47b45d2a499ca995900e0630fb1ab71e23ed62a9ce93f99fa56ade661e568ece782f8dc5d5afab33
44b117b48639caa3073cdca4aae625f8d579b11f0362a8ff2cf92b47d20fe92b8d2ecff00c446e6f277
d4922437045cdc4ae099788624a38077ff0027154ff52d2f4dd62d5ac756b486fac9c82f6f711acb19
2a6a0956046c7154a13c81e478a45963f2de9a92a10c8eb690860ca6a083c7b118aa7f34315c432
5bce8b2c12a949637019591850820ec4118ab1eff00957be43e9fe19d2e9ff30707fcd18aa7f6d6b6
d656f159d9c296f6b0208e18225091a228a0555140001d00c5524b9f22f92af2e25babbf2ee9b3dd4
cc649a692ce077776352ccc509249dc9c5535d374ad3347b6165a4d9c1636818b882da35863e4d
d4f140054d315425ff95fcb5aadc35dea9a358dedd385569ae6da299c84fb20b3a93b576c555b4dd

0743d1d9df48d32d2c1a50048d6b04701603a025145698aafbfd1f48d55a26d534fb6bd6809301b9
86398c65a95e3cc1a5682b4c550be57d2e7d13cbf61a4dcb234d6917a44c55e1404f10b50360283
a62a9be2aec55d8abfffd3f7f62aec55d8abb15762ac2fca6c5bcefe7f045385ee9c83e5fa32ddbfe36
c55e58bf9b9e6b48350f2e4da847fe278bcef06936f74208eabe5bb9d4a38fd52bc3806442d6c642b
fde7c5f6b1566127e7f79596cbf49db699a9dee9ad24de9de5ac50bc4f690431dc1b942d32f2431c9
5e2b596aacac81a9555132fe78f95ed6de5b9bdb4bcb78ec4c90eb2ac2166b1bb596e618ede40b2
9e4f2bda4aa863e69f6393aaba9c552df317e6ecf71e57d7ce9ba76a1a0eb963606fe29ae459cad0
5bbda9ba8ae595259d78301e9f1a337a9f095ef8aa1f4cfce78fcbf637ff00e2c8afef6ce29b529b44d
59eda3b59b50d3aca19ae50ac4fe873938dbccbc92344e2b0c8dc7d746655910fcdcb55b87b0b9f2
eea96daa836c91e9d2fd516e1deee68a04ff8f8e1c39cd18f539f06f8f896f4de8aa0edbf3c3459d604
9746d42daf2e1a0923b19440d70d657096edf58558a57a85370aa631fbdd99b8f118aa020fcfdd3e3
b1826d4bcbfa87d7cd81bfbab5b0305dfa32955963819fd4450648dd5d1d8aa54fa7cb9fc38ab3af2
6f9ca3f3845a83269d3e9d369772d63796f732412491dd45b4b137a12480321f7a3232489c91d715
792dafe61ebda56abaaf92f49d26eece4bfd6f59920f33cb1dacb6b248da848bf57b349ae61592e57
ba4ac94fb4b1ce2a3156612687e50bb5a5dfe565ccff0d2b3da696e4d096a6f747b9ae2aa5e74d47
ea3e47fd11a7f94b50d2f4d8ae74d48978d8a410afe91b73f663ba63d4ef4527155b73f9817165f9af
a969297135f69a9a55c5bdae8d042e7fdc9e991c77ce564a51de78ae7d308bf67eaff00e57c2aa06
3fceed45f4f6bf8b48b2ba46d14798ad7eaf7efc6e2ce28ef5ae7896b7055e36b68d4a30e6a67e32a
a3215c55567fccbf30f98347f32e9f69a42596a3a1dbea10ebf3417a4b5a155ba4b79ad5fd28cc943
0067feed9397c1cf8e2a96e81e76f32796b40d32f5b43d425975afabd94235cd4de7f56fdf494ba824
8987d642a5d4c5a16a49f0baf2f4f9370c55109f9e9ad4f0adec1e5278f4b9a4b896cefef2e1ada3b9
b0b2b67ba9e4847a2ccce162750368cb18ff79bb71558af9b3cf9e7496db5fd4161bb6b86f28798a4
8d746bbf4a0b5934fd49e0b7bc65b892dc8915577689647db6f84e2acd358fcdcd57419b51d16c34
48b50bfd35ad62b332dec8892c134372dea4d37a1201272b5de35e6ea245f53837c38ab0ef35fe64
eb5e60baf2f799f4d9ae347f2edc5aabc70c17928964963d6742497d68902c7455b896253c8f2467
e4007c5597d8fe6af99fcc8f63629e555b1d335eb7bfbdb4bfbdbb7859f4982dada659a38840ccd21f
acf028c513925564656ae2a8cf2f5ffe5debff00975e52d3f5dd5ed9e3b6d2acbf72b7ad010ef602070
de94884fc123ad0f8f8e2a95dceb1f949f97fac7f891d2d21d1048279b5d835192e56d6e67fdc992e6
d6473c2301f8acb18758813c8449f162af5dbe945c68f733d95ec76a25b677b7d44f178a2e5192b3
6e78955fb5bed4c55e35f97fe76d79627f27269b70fe7db391cf99b49d5afe4658e3b34b2825b9b1b
87f539c5722e16e602782ff7aa78498aa5bf97ff009cbe625d37cb7e4fb8d1a4d63cce74fb2d42e274
b9798c9a43c76bcee64926543eb8fac72656aa7c3fde16618aabc3f9abafd86b1e64d792ce2bbb1bf
d2ecf58d2ecdeea7f4d2d574f9ef231c5a3a23c8a8448147dae27e2c5556dbcf9af7978cd1e9da7fe9
7d5a7d46eed2dee352d42e628562bbf33ddd8c68d188e6004354e2c07231feefe1545c5507e6cfcd
cd7fcc1e5ad66cac74d6d311743b5d59ef2daee44bd8249e3b0b94e3c157e094dd3c31bf34e4d6f3
7c955456aff00999e6afca9d2f568b59d37f48711aceaba3da5d5dbc971159c11dd5e5b41713a2cc8
83d3b72a819ddcf2f87685f154d6ff00f377cd965ab45e591a2e9d2f98a59ad2d895bbb8fa84725ccc
b6edfbff0043e32aceafe9aaf345da4e2ccb8aaed1ff0037fcd3ab5cd8e990f96a39758ba8e1d4e5b7
82e3f751e933c765217324c22fdec62f2ae2854fa545ddd7154a748fce5f3c3f94ed3571a25a6afe8d
8d8aea7aa19cd95b8d5351169244bc78bbf029742bc232c193f90e2af49f2479c2ff00cc97dafe97aa
db4165a9e8170967776b13c8640ecacc24a48aa5a19542c904a3e175664f8648a450ab31c55d8ab
b15762aff00ffd4f7f62aec55d8abb15762ac33cac00f3bf9f080456eb4e24f89fd1d08c552697f25b44
9249ef9750b91acdc4d0c8fa8b240cde95beb4faeac3c0a71e3ebb94fe6f4be1fb5f162a857fc8eb16
d0a0f2eff0088b513a5d8c37b65a5c4eb6cc2d6c6f22f463813f740158576466e4edb7366e2b8aaa4
ff0091da0dd47aa47717f3b0d6a4b99f53a4712fab3cb3dddc5bc9f64d0dbbde4bc3f9a91fa9cb862a
dcdf976dafdeeb9677d15d697147a1db7956db5c5781a4bdb7149e4b84894baa9463e98f550372f5
38af0a725513e79fc9fb1f3dea0d7f7faddfda092d0594d6f6c2dcc6c3eaf796c5c7ab13b2964be92a1
5b89658da9f062abdff0029addb5f93cc035fbff5a5b986f1ad596d9e0124125a4b45ac5cc296b34db
9fc2accabc71543d87e4d5a69da9d96af6de61d4a1bfb38a3b332c1f5784cb6491244f03958aa03fa
51b1742b22b2fc0cb8aa8afe4869a9697da745e62d5a3d375182082e6cd1ad96266b4f821976839
724882c74e5c1b8248ca641cb1566ba2f956d346d6359d752692e350d6de36ba92408bf04064312
7eed579701218d5deafe92c69cbe018aa47e49d3b4fd5745f31586a56d15ed8cfafeb4b35b5c22cb
1b0faf49b156041df15672aaa8aa8828aa00503b018ab11fcceff9436e7fe62f4dff00ba85be2ab750f
cb6d0b538ed22babad42965a9ddeb50325dba38b9be49a3914b2d0fa612e24544e8aa7fc918aa5a
3f2bf4fb896e74abc8235f2f26937ba4d8ddc53cadaa49fa725136a4f2c851421774521919b9166fb1
403155a3f253c99eb5edc99352379a8a5ec77d702fe756986a352e640ac158c6599a0257f72cec52
95c551da27e55795f45b58ed1a4bfd55209ec2ead5f55bc9af5e17d24f2b458da43f0ac64960a3a92
49c55053fe4a792668e5893f4841148d7c5238afee02c29a9a3473450a96222880793d38e3e2919
91d9454e2abae3f26bca173fa58492ea4135ab0bcd26f235bf9f8ada6a5706e6e162058fa7cdc9dd2
9c47c2b4c55a97f25bc9335c4d7527e903713b7399ff485d519b8ba93c79f115f5246341f6dddbab6
2aa43f22ff002f156358ed6f23585605851350bb0882ddad5c714f57802ed656ef29e3591a3abd6ad
5551b6ff963e51f2e20d4b4a86e229f4db6d423b3592eee268e386f94178952476023408ab0c63e0
85578c6177c5536fcbbff00c97fe54ffb63e9ff00f50b1e2a88bff29695ab6b11eafab19afc4088b6ba6

331

dc485f4f8a48d9984cb6f40865f8bfbc7e6cb4f838e2a8b074cf32e8f7303a99f4cbd5b8b2b88d814e4
819ede55ec6848618ab1b8ff0029bc908d6533d9dc4d77613b5cdbde4d7b76f73568960f4e494cbc
a48824680432168be046e3c97962aa363f937f979a74f63756da5c9f59d3bd01672bde5dc8e91dac
5e8a444b4a7945c281e26ac72715322b155c55a7fc98fcb796dee6d5f476305dbabdc2fd6ef072545
99162044d5112acf22885691056a70f8568aab9fca6f24b4eb70d6d746459feb4bfee42f6826fae36a
1ca9eb53fde863253a576fb3b62ac661fc93b1935ad420bc668fc993c36f691d85aea5a9a35c5a5ad
ac56f0dbdc43eb0897d1310749d099a4fb2f41cb92acb3ccbf95be46f384d24fe63d30decb35bfd526
63737310787d2961218452a024c73c885c8e455b8d7156a4fcabf2249aab6b874b2bab34eb746e9
2e6e51bd757493980b28504ba2b9a0f89be26dd9b156a3fca9f21473d85cfe8ae73698d13d8b4971
7327a621852044a34a432708a30636aa318d19959915b15538bf28bf2ee0afa3a2aa56086d0f19e
e07ee6d65f5611fdef546d95bed04fddf2f4fe1c5591e97e5dd1746b9bcbcd32cd20bbbf6e779302ccf
21f5249684b1242879a460a3e10d23d07c58aa234dd42df55b18750b5e5f579c724e638b5012371f
462a8bc55d8abb157ffd5f7f62aec55d8abb15762ac5ef7c8d6375abdf6b56da9ea5a6ddea5e89bd5
b1b9f4a391add3d3462a55a878800d3ad315583c8e40a7f8975df99bd15ff9378ab47c8c48a7f8975
ddffe5f47fd53c55a6f227235ff0012ebc3e57dff005ef1577f810529fe24d7be7f5f35ff008862ab8f919
4820f98b5cdc53fdef61fa97156e3f23471ff00d341ae30a53e2d4243fc31577f81a0e5cbf4eeb95f0fd
25353eec55747e48b78e95d6f5b7a7f36a53ff02315544f265aa124eafac3d7b36a573fc1862a9968
9a169fe5eb37b1d3848229679aee569a579e479ee6432c8ccf216624b31ef8aa658ab07fcc649f5fb
6b5f2269571f56d6758923ba6bc09eafd4acec268e67b96520a9f8d63891188e6cffca8f8aa23f4079
ff9f2ff00194417f97f44c5fafd6c557fe80f3c926be70400f40ba5c029f7c87155e9a0f9d0291279bb91
ad55974db75a0f0fb47155e742f36d283cd8e0f8fd42d7fa62a9068a3ce7a9ebde66d265f34b245a2
5d5adbdbba58daf3749eca1b962f55ebca420529f0e2ac81741f34f11cfcd939606a4ad959814f0a1
8ce2abbf41799f903fe2a9f8f71f53b3afdfe9e2adfe82f3372aff008aae38efb7d4ecff00ea9e2a94f98f
eb1e5fd30ddf987ce73da69b33a5a34cd69682af727d35504426849341ef8aa2ff002e65b8b7f2f279
6afc2aea7e577fd0b38560dce1b54516b390294335b98a5229f0b332fece2acbb15635a57940e91a
91bdb6d77537b2334f38d2257b66b206e5de46000804940ce4afef2bf462a9beafa749aad8bd9c57f
75a648c5585dd8b46b3af135a032c722d0f43f0e2a9045e49bf8e58e46f38ebd20465731bc963c5b
89af16e3660d0f43be2aca668ccd0c9087688c8ac8248c80ebc853929208a8edb62ac557c8d74a6
bfe2ed7cf635b8b63d3fe8db1564f656c6ced21b569e5b9685021b89c8695e829c9ca85049ef418ab
1ebbf26c9757535cff8935a804aece2086e91224e46bc507a468a3a0df154df45d25b47b4368da85
dea44b993eb17f22cb30a8038865541c4536db1540eade576d56f0de0d6f55b005553eaf6570b142
38f70a636dcf7df1556d1bcbe7479a598eaba86a1ea284f4efe71322d0d6aa022d0e2aa9ad688759
1081a95f69de8926b613080bf2a7dbaab5694db1544691a5dae8ba6db69565ccdb5aa08e332b192
423a92cc772493538aa3715762aec55fffd6f7f62aec55d8abb15762aec55d8abb15762aec55d8abb
15762aec55d8abcd752fcd9b6f2f6bde6bd3b5eb1b96d3b42f424b4bab2b73209227b7b692557632
539a35c722484458bab5715647a6f9fbcbbaa68fab6bf04ce9a568d24b0de4d228af38143b05552c
dcbe200230590d57e0f89792adf93f4fd43d1b9f31ebb0fd5fcc1ad9496e2d7917faa5ac7516f6a0d1
7fbb562d26dbccf2f6e38ab26c55d8abb15762ac1fca00ff8e7f30c9fb26ff4ea7fdc2adb156718abb15
762a97eb3a1e93e60b31a7eb5691ded98923984328e4bea42c1d1a9e208ae2ac7f522de5ff3be9d
abaa81a5f98631a4ea4e5d5163bd839496527123732032c04d6bcbd05c559862ad0218554d4788
df155b24d0c34f5a458f91a2f360b53d76ae2abf15762aec55d8abb15762aec55d8abb15762aec55
d8abb157ffd7f7f62aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8ab08f30fe54f
957ccf797b7baa9bc2f7f2c771711c3732451992148235202d29f0dbc60fcbc71549f48f26688de65b
9d2b4b1349a26972db5deb92cd299beb9a95bc6a2cada466a965b58c2ccfc8f2e66d816654e38ab
d3f15762aec5585f9b7cf4be51f31691657b6d3dc695a9413077b5884af15cfd66d6de12e4c8a7833
5c70a2abb722bfb35c5513e57fc1610000026060f002220574d4643010000000000010000000000
00000d000000002000007c3101007c910100c1d0fcdb7d369fa5aca2e6da3792e04be98e3e9cf25b
1038b92c39c4e04881a3f84af3e5b62a80f27bd7cfbf98a95fb37da61a7fada55bff004c559d62aec5
5d8abb154a3cd1a3b6bda0dee9b0bfa378e824b1b8ff007d5dc0c25824dc1fb122ab7d18aaef2d6b
3fe20d0acb577b76b49ee1297566e41782e63631cd1311b131c8ac951d698abe6a87f327cf5e578
e6d234a7bb934bb772da771d1e578d52ea272d197484d7d294a94040af23ce4214232aa1af798fc
cfe65d47438fcd50dedd1d21effd2234b90432a98aee23712bc70515d1d608d42945f8c3f16e5c82a
f4bf2479c7cf1aaebfa1c5accb3cb6f7af7f1ea563f507b16b39e04a70733443d589244655963906ed
17f7e8fea22af66c55d8abb15762aec55d8abb15762aec55d8abb15762aff00ffd0f7f62aec55d8abb
15762aec55d8abb15762aec55d8abb15762aec55d8aa45e6bd727d134d5fd1f0fd6b5cbf916cb48b
4a5449752d78b38a8fddc6034b31afc31239eb8aa23cb9a1c1e5dd220d321733ca9592eeedc0125
cdd4a4bcd3c9e2f2392cd8aa6b8abb15762ac7bcc9e4bd0bcd6f136b51cb288a3312c71cd244854c
d0dc7c4108a90f02107dbdce2a86f2dfe5e796fca97bf5fd292e1aeb84f1892eae25ba651772acd37
13296239baab30078d47d9c552ef27b0ff9581f98cb5dc5e69669e15d2e0fe98ab3bc55d8abb1576
2aec5589e94c745f38ea9a118cad8eb2875bd3e40a162138290de45507ed16f4e7e9f17ab27f2e2a
cb315762aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55fffd1f7f62aec55d8abb157
62aec55d8abb15762aec55d8abb15762aec554a4b9b78a58a0966449a72c208d98067283930507
73402a698ab16f2e72f326af379ca6a1d3515ecbcb71d3fe3db9fefaeebc8826e1947a6683f7089fef
c6c559762aec55d8abb15762aec558079380ff00958df9907bfd67491f7699162acff15762aec55d8a
bb1562fe7a8e5b6d2a2f325a44f35ef97261a9ac50a7a934b6f1ab25d448bb12cf0348140fdbe18aa

b7983cede5ff2d59695a8ea5339b2d6aeedac2c26851a55696f013113c7a2903ae2ac8b15762aec5
5d8abb15762aec55d8abb15762aec55d8abb15762afffd2f7f62aec55d8abb15762a96ebfab8d0b49
9f54faacb7af118d23b480c6b2cb24d22c48aa6564415671bb3018aacd1353d4f528a67d4f45b8d1
5e360b1c7732db4c64522bc81b6965000e9f11071543eb5ad6b9a6dd241a6f96aef59b768f9b5cdb
5c5942aaf523815b99e26ad056a0537c55ad1b5bd7351bb68352f2cdde8f6e10badd5cdc58cc8cc0
81c38db4f2b54d6bf669b75c5515ae6a5aa6996f1cba568d3eb533bf17b7b79ada0645a57996b992
3523b50127154a2dbccde6b9ef6dede6f255f5b5acb2049ef25bdd3596142402e563b9766006f451
5c5590ea57375676335cd959bea1771ad62b289e389e56af40f2b2a0ff0064d8ab0f5f36fe611279fe
5e5c2ad4d29aae9c4d2a69b7a9e14ef8ab3689e47852492331caca19e12412ac454ad46c6876a8c
55e13e7ab9fccdf37f98bcabe5f1e5587cbf15dcba845777f79a9c73c66cdad184ca82cff007a1dd7e
10470a066f8d5a87157b4683a7df699a6c569a8deadf5ca57f7914096b0a2fecc514495e31a0f8503
33bd3ed3b62a9962a84d5753b3d174cbdd635190c5a7e9f04b77772852e561810c8e78a824d141
d80ae2ac513f3334f90064f2ff0098d95802adfa16f4020f7de3c5577fcac8b2ad3fc3de62ff00b835e7
fcd18ab63f322c89a7f87bcc5ff706bcff009a3155b37e60da4d0c90fe81f31a7a8ac9ea47a4dd2bad4
52aa78ec47638abc87f2fbccfe79b7fcc4f355c7987cbbe6183458e5b13fa4934c9b96ad25ad8fd523
6f4c2931a15a4f28a8fdef141f086c55ec5ff002b0ed7fea5ef30ff00dc26e7fe69c55dff002b0ed7fea5
ef30ff00dc26e7fa62ad7fcac4b6a57fc3be61f97e89b8fe98aadff9599a3c77ba7d95f697ac69c753ba
8ec2d2e2f74db88603733d7d3467228bca9b13b62acd31541ea89a9c96132e8f2c30ea540606ba4
692024104ab84656a30daa0fc3f6b7e98abc2fc83afc72eb7ae683e78f2dea1059794e782c343ad8
ddeab685d1e7bae50cd6d149193024b141cfe076e3f12afd9c55eaedf983a02923d0d59a9dd746d5
186ff002b6c55cdf981a129005aeaed5e9c746d50f4f1ff0046db1577fcac0d14384fa96b352695fd0b
aa71dbdfead4c5560fcc3d148a8d3f5ba7fdb0f54ffb26c55b1f983a39008d3b5ba1ff00b51ea9ff0064
d8abbfe560691ff56ed73fee07aa7fd9362aeff9581a47fd5bb5cffb81ea9ff64d8aad7fcc3d190166d3
b5ce22a49fd07aa6c00a93fef362ac9ac6f6db51b2b6d42cdfd4b4bb892e2de4a15e51caa1d4d1802
2a0f4231557c55d8abb15762aec55ffd3f7f62aec55d8abb15762a86beb0b6d4adfeab76a5e02f14b
c412bf1c122ca86a29d1941c55138aa57af6bf61e5db48aeeff9b7d66e21b2b58215e72cd7372e12
38d0540a93e24003727154bee3cf1a15af962cbcdd71f588f47be7b38a2e50482757d4278eda2124
54e49fbc9155ebf63f6b156498ab1bb7f3c68575e4fbaf3c42673a15945793ce4c2c2709a6bc91cffb
a3f154344f41df156430cc9710c73c66b1caaae87fc961518aafc55d8aa12e34cb1bbbdb2d46e22e7
79a7990da49561c0cc9c1f60686abb6f8aa2f15762ac5ff003269ff002aebcdd5e9fa1751ff00a85931
54feca44faadb2721ccc4842d77fb23b62a882402013b9e83156f155aee91af3918228eacc683f1c5
570208a8dc1e8715762aec55d8ab01fcd2a7a7e4faffd4d3a4d3fe46362acfb15762ac63c9a1449e6
40bd3f4d5d13f331c44e2ac9f1540699ad699ac49a845a6dc2dc3e9774fa7df85afeeaea34491a335
ee16453f4e2a8fc5525f3479a34cf28e9b1ea9aaacef6f35cdbd8c496b0bdc4ad71792ac30a848c13f
13b2ad7df1544e87ad5aebfa7aea36914f04664961782f217b69d2482468dd5e390061baede23e2
1b62a8e9658e089e699d6386352f248e42aaaa8a9249d8003156e39239a3496260f1480323a9aa
b2b0a8208ea08c5565c7fbcf2ffa8dfa8e2a93f92aa7c9de5eaf5fd1b675ff0091098aa7b8abb15762a
ec55d8abfffd4f7f62aec55d8abb15762aec55d8ab0cfccfd32d759f2b36997d61a85ed9cf3c4659745
664d4ecda22658af2d5908612c32a46cbc77ff0025bec955e27a9f96bcf7adf97fea1e74f2bea5a979
9da4f2f4b2eb36f227d526d3beb5a79bbb7782194525468269a58c47e9ab334b1b7c58aab699e5ef
3bc56ccf2f97f5d92e2c6ced63b7066862826d0a3ba845de9ecaefeabdc1582431c6c446524e4aff0
01712aa5563e43f3be9be5fd474c83ca97f0c7776da8496d146f6e4451dcdb6bb0ac2ca273f1bb5c5
a7c0397da566fb1f0aa9fe97e43d7353d674e97cc9a16b123bebb1b6bb34d3c49a6cd630c37cd64f
1c3048ae446b3c31cad2fc4ac823f8953e155f47e2aec55d8abb15762ac57f33431fcb7f38053463a
26a543ff469262af12f3849345f9f5a6f2586d7456b1f289d4b5adfeb36928bfd55ada38c0a055bc951
2d25919b6591538b73f81553befcc1f304b3681e74d4afec259045a9de6971dbca8cf610dd59dba4
915dd102a9824e6df17360abfbc2dc7154caf3f357cf36dad5ae816daae9fac6a5269d790dd41a508
4817d62b14aad04b7223592e2547202f016bcf8a7dac5522bcf3ef983cfda558dd3df691ac68bfa6f4
0b7b2d32e6b697535dc1aa5aafd62580c0ed0417114bcd964f559199022f1ad5554bcf3879e3f2d5
53f2ff4dd76ca5bab77b4b2e42d9648ac26bfd5349468e2595d6493d38b547119702211ac0bc79ac
b8aaa7993f38fcf163a85e697a2ebf6b3a41737053506b4b67e51dae9daddc1896257aaafaba5a2b
193f7bf14acb4468e8aa2f58fccef3ccd69aee9316bb67657da4595fdc1b997d1b7b8be8e5b69dd3e
a90aa3b34d6cde9712a517bcbcf962abf42fcc8f3aea36fa569f63e67b2fdfdde97a1caf2086ef51477
4839dd18846aa3d65939f391d94b14f4d3ede2a9a1f32eb1e64d3b481ae5c89b52d33cf9a55acb18
891112331a4b198a588f09a29164134520f8c47208e5fdec6f8abdf315762ac5fc991b472799031a9
3addd30f93471118ab21bcb8fa9da5c5dfa6f37a11bcbe8c2a5e57e0a5b8a2ad49634a003ae2af9b
af741f3c68da76bda5436fa86a775e66d3f4ff0031412c3a7dca5b7e974924fad5a5f1490b2bcea614
2e855e2e0afc3f75f12a99de7963cc92dd6a36379677cda18d5ed1aded6cee279ee122d56d8dedfc
570d6ef531c52958d4d7835453b0c55249b49f34df79553f4d797fcc63cd306a7e5b92fb51816691a
7d3a0bbb3bb0f128673eadba472893e0578dc3aefeafc4aa6dacf95fce77ba7b5cf946d35758e5d22
f21faceaa7d0d50dde8934cd64e12423f7b73f5c97d367e3510a3483a62a916b7e47d62ff46d434fd
2749f324cd79a4359e92baaab2714bf8759578a48a1296f101eb5ba702bce28fd156dd7e155f4879
5615b7f2c68b6eb6cf64b0d8db462ce45f4de1e10a8f4d977a15a508c5532b9dede51fe437ea38aa

333

4de47dbc97e5d1d69a6590afca04c553ec55d8abb15762aec55ffd5f7f62aec55d8abb15762a91f9bf
539f46d02e353b73206b692d9e530c4d712083eb1189888d15d9bf765beca938aab685e64d23cc9
14d36912c92c70308e532dbcf6c431151413c7193b7718aa175ef3a797bcb9751d8eaf35c4771347
eaa086ceeee97854ad4bdbc3228351d09ae2ab342f3c7973cc978d63a4cd72f7088652b3d8deda2f
152013cee218d4f51b571546ebde63d2bcb56f15d6acd3ac3349e947f56b5b9bd6e742dbadb472b
0141f688e38aa4f61f999e51d4af61d3ed24bf373712ac1109349d4e14e6e682af2db2a28ff0029982
8f1c5591ea9a9da68fa7cfa9df1905a5b2f394c10cb73252a07c3142aeedd7a2a9c55891fcdaf270e5
b6afc54125bf40eb3c76f03f53df1566904f1dc411dcc5cbd2951644e4ac8dc5854555806069d88ae
2ac1e0f3c47aff009b744d37404d485928bc7d5cdce957d6500448a91565bbb78d6bea1f842b54fcb
156798abb1562ff0099551f975e6f23afe85d4bfea124c55275d77f276fa33757faa796ae2eef2da0b7
bd9a7b8b09249a1868e91c8ccc4b2a30e4aadb2b6e3155e757fc96a38fd21e57a3b5c48e3d6d3e8
cf78bc6e18fc5b99576909fb63ed57156a4d5bf252468de4bff002bb3c50adac4cd369e4a5ba21458
94f2a840a4a851b71db155f2eb7f93334924936a5e587966303ccef3e9e59cd98a405896a9310fee
ebf63f6698abaf35efc98bdb97d42ff53f2c5c5e4863692ee79f4f925668e82325d9892568bc77da83
1558fae7e4a3cd25c49a97959ae267779a569f4e2ef24c1b9b312d52583bf227ed726fe6c55523f33
7e4d8996e22d63cb3f5888c9c255b9b0e6a6e14249460d51cd4057fe65d9b156a1f337e4c5bca66b
7d5fcb114c0415923b8b056a5b0220dc357f76368ff0093f671563be74f31f926fdfc9fa5f96755d2ee
6e64f3469771f53d3ae2de47601d99e4f4e1624800559a98abd7715762ac2340f31e81a5de798ed7
55d5ecacee86b13130dc5cc3138578a1e155660771d3154f7fc63e51ff00abfe9bff0049907fcd78ab
47ce5e5002a7cc1a6807604de41d4ffb3c552fd2b5cfcb8d1209a0d2356d22d20b9b89aee758aeed
d4497370c649646f8f7663524e2a8d1e77f259ad3cc7a59a75ff004db7efbff3e2ad7f8e7c93ff00532
695b0a9ff004eb7e87bfdbc55a3e7bf23a901bccda5027700df5b0a8ff9198ab47cfbe465343e67d24
1e9437f6dff0055315529fcfde4436d2b0f34691c7836ff005fb6a7423fdf98aabf91c83e4bf2e302181
d32c8861b820c09be2a9fe2aec55d8abb15762aff00ffd6f7f62aec55d8abb15762aec55d8abb1576
2aec55d8abb15762aec55d8abb15762ad10181561507620f4a62a861a6e9cbf66d211f28d3fa62ab
bf47d87fcb2c3ff22d7fa62aefa858ff00cb2c5ff22d7fa62aefa858ff00cb2c5ff22d7fa62aefa858ff00cb
2c5ff22d7fa62aefa8d8ff00cb345ff22d7fa62adfd46cbfe59a2ff805fe98abbea567ff002cf17fc02ff4c5
57a5bdbc6c1a389118742aa01fc31554c55d8aa02e343d12ee66b8bbd36d67b87a739658237734
141566524ed8aa97f86bcb9ff568b2ff00a468bfe69c55dfe1af2e7fd5a2cbfe91a2ff009a71577f86bc
b9ff00568b2ffa468bfe69c55dfe1bf2effd5a2cbfe91a2ff9a7156ffc39e5eebfa26caa3fe5de2ff9a7155
e341d0d45174cb403c0411ffcd38aae1a268c0d469d6a0f8fa31ffcd38abbf42e8f5afe8fb6af8fa31ffc
d38aa3400a02a8a28d801b00062ade2aec55d8abb15762afffd7f7f62aec55d8abb15762aec55d8a
bb15762aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb1
5762aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb157ffd0f753f997cb91bb
4726b1648ea4ab2b5cc40861d4105ba8c5567f8afcaf5a7e9bb0a82453eb50f51d7f6f155f17993cb
b3ceb6d06af652dcb90a90a5cc4ce598d000a1aa4938aa698abb15762ad31602aa2a7c3a62ae15a
0e5d7bd3a62ade2aec55d8abb15762aec55d8aa55ab799fcb5a0c91c3ae6b363a64d3297863bdb
986d99d54d09512329207b62aa5a579c3ca3aedc1b3d135fd3b52bb0a643059de41712045a02dc
637634151538aa04fe65fe5c8241f38688083420ea569b1ff9198aa7fa7ea3a7ead691ea1a55dc37d
61354c3756b224d0b85254f174254d0823638aa2715762aec55d8abb15762aec55d8abb15762ae
c55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb157fffd1f54fe587e5ff00916fbf2f
bcbb7ba8795f48b9bfb8b28e4b9b99b4fb6924925615666668c9249ea49c5596ff00cab6fcbaad7fc2
1a25477fd1b69ff54f1562df989e46f24e95e567d434cf2de97657b6f7da5490dcdb58dbc32a11a95b
6eae88083f238abd471578efe74fe645df90b5ef29594daf5b7977cb5ae47aa8d5b53b9b292f8c26c
6dd2588a88dd594316218fddc4ef8ab1ed6bcf9f9c961e5af247992fe4d3f4197ccfab687a05c690f64
f712c4da95c490cd7459e75e05944724509e463e4525766c5531f3279ffcff00e4dd62c3cb9e6cd4f4
fd367d4228a2d07ccad6129d1351d49ef260d6b7520918d9c8d6e2011066e0d33bf1925e3e962ac
bb45f366bd79f9cde6bf255d4f0b681a4e8da56a7630ac2167136a32dcc72079799e4a3ead551c07
db353b0c554bcdff98f3c7e51f34ea7e57b6ba49f4ad3b58b9d3f5c96d966d39aef43e4b2c6d47e42
b22b22f354593849e9b1e38aa2ee7f35f42d26e6df4ed621bb8aee5b59ae1655841499acf4f1a8cc2
14e5ea3a88b971709e9b48ad107e6b4c556dbfe6ff966ea6d06de086e249bcca269345e06078aea
1b61017921956531cbb5c2b048d9a52126f83f74d8abd0315762aec55d8ab11b9d0f46d5fcf176fab
69d6b7cd169368b11ba8639ca06b9bae4179a9a576ad3154eb4ff002d79774998dce95a45958dcb
29469ad6da285ca1a12a59141a6dd315429f24792cb723e5cd2cb75afd4adeb5ff0080c5543c916b
6d65a5dedad9c31dbdac5aa6a4b1410a88e345fae4868aaa0003e58aa33cdd7b79a6f9575cd474e
94437f676175736b295570b2c30b3a12adb1151b8c55e45f96fe7ef3cfe63dc25ae8faaa36951691a
3ddebbabcd61f57b9b2d62e7d3b8b9b18a195503ac96ce248e531b247c97f79372e2aaacd17cdbf9
b9a8fe5e5d79db4db8fd3d7b6fa8ea5a7cfa25ad9dba5db5ae9bae35a34d67c9911e71690c844521
e124c569fc8caa9f983f367555fca74f3c7947cc316a666f32e9da4c573359082e60b5bdd46dece7b
5bbb69553d3ba83d570df0aeea8dc78b53157a8f9ebcfda5fe5f69c755d66dee25d3a2b7b9bbbabb
8844238a2b35577e46474ac8c1bf771a727938b507c38ab0fd2ff00366e74ef30ebba5f98acaf6ef4a
1e646d1345d5ed6181a146974c82fa1b668d2413bb3169155c44df1322336f8aa3ac7f39b4dd6a4f
2849a069d2df69be6c6bef4ee526b72d0a69f662e9b922c869254fa4f1b9478e447571d2aaa8afe7a
6889e56b1f3a6a1a16a9a6f96f52b58f50b3bcbbfa9afa96d37a1c0aaa5cbb191bd7da2a73a472353
8f1e4aa2b5dfcdeb7d3fcb7ac799b46d0ef756d2f4b8f53e17ca6282d24b8d1e6fabcd133bbf34e520

758d8c747f4dffc8e4ab2dd4fccd1694da459cd6b23eb3ad3b4365a7232733245035c4a19cb04011
10d4f2dcd02f5c5584597e616b5179bfcc697f6776da3c1a5f972f6cb45963b682eac65d5e6bc82e1
ae242eaa123f451a52647e1c5bd3e5f671547687f9cde57f315e797acb4e8e6597cc964da8e9e972
62824921499e09044aeffbe78da32d2a4459d23647e255b65532f2cfe66f96fccfe4ebdf3d5b398740
d3e39e7ba91cabcb125ac7ea4cb24719678e58a8cb244eaaeaebd08e2c556357df9f1a3e996d6f3d
e685a889351b4d3353d1a08cdbb35dd86b179058c5202d2aaa3c72dc43eb46c6a8b2232f3f8b8aa
c93cd3e6b6d1a0f274daa477da5dceb9acd969af69666d26e3717514ade85cbc81c186aa79341fbc
e4abc5b8f2c5586ddfe7f46fa06a1aa699e5cba5bc8f4db9d574a86fa58234b94b0d4974cb80cd0bc
9c3848e8eb5fef11b6a6f8aa7d77f9bf6d6d77aac70f97b53beb0d162bf1a96a369172b78aef4bb737
33c0d249e9c7d07a68fcfe29be0e2a3e2c5520b9f3f79c3cc3e67d0adadf4cbed0bcbf3e8977e67a5
b5c583df5cc7692da98e2759565882c8b31468f9a3727e5eaa70ae2a9b68bf9d167e61371a6e8ba
3cb7be6782e2eedc69515c45e9c8b616b6b77248970dc54a95bc823534de57a7f77fbdc553bd33f3
0df57d7a3d26c740bf7b24b86d3b53d4289c6c6fd6d52e8c73a8247101c44d223b8f5be1a14fde62
acdf15762aec55d8abb157ffd2ef5e4aff00117f84f49fa97f8dfea9e80f47f457e80fa8f0a9a7a1f5cfdf7
a7fc9eafef38fdac553ff00f9dabff321d76ffa967fdac5526f34fe9dfd10bfa43fc65f54fafe9bea7e9bfd0
bfa3e9fa42de9eb7d43f7fc6bd386f5fb5f0d7157bf62af11fcdef53fe567fe5b71f478fd4bcd1fef6fa7fa
3a9fa35797d6b96fe853fbeff23ec7c58abccf52f5bfe54dfe52fd5bf4a7d4bfc67a07d43d5f47d0e3f58
fddfe8efac7fa47d53957f47fd73e3f4b87affbae18ab39fce8f53f4679ff00fdeffd1bc749fd23f5ef4ffc35
c7945fdf7fc7df4feffea5f1f1f4ff006f154e7f2d69ff002b9ff323d4f53eb3f56d37fe3ad5fd31e87d62fbd
3f4fd3fdcfe8faf2faaff00c7c7dbf5fe1f4b15607253fe55dfe687a1fa5feade8f9a7d1faa57fc33cfd6b8f
acfd47d6fdf78fd67d4f839fd67f47fece2a94fc3ff002b1f4ee1fe20a7e927e5f54e5f58f5bfc267d6fab7
3df9538d29fb8ff965f8bd5c552d92bfe0b9beb3fa339ff8c4fe94f429fa069f5bb0a71fabfc3fa529c7d3
fd1fbf3fac72f8bd5c55f6662aec55d8abb1579979d797f8c17d2fd3fea7e8d8797f86e9cf8fd626a7af
ea7c34ebe9f1f8bedf2fd9c5517e4ff57f4c7c7fe2ce3e849ff1ddf4bea75aaff2efea7f2fd38aa487d5e4
f5ff001f52bdbd2a7d14c55987e5cf0ff0db70fac7fbdda872faf73fae72fadcbcbd7e7feecafdae3f07f27
c38aa23f313fe501f33d7d4e3fa2af797a3fde71f41eb4a6fd3f97e2fe5f8a98abc43f2a7eaff00e31f2a
7a7eafd7ff00c15a770fd17ebfd6feabe9c9c3f4cfa9fe8de8d78fe8ae7fe99fde7abf0fa98aabfe5f7d5ff
e554db71fd2bc3fc5fa87d5fea1ebfd73d7fd27735fabf2f8abea57eb3eb7fa373fac71ff0046e18ab11
befd1bfa36ebeb5e87adff2b0a1fad7d77f48fd57eb1f5ad2ff00e523fab7eefebfcf87d4beaffe8bc7d0ff
00747d63157a1ffce43fe8df5ad7ebdeaf2ff0d79a6be8fe90e3e8fd521e7f58fa9edf56af1f569fe91fdd
fa3f07ab8aa4dfee3ff4b6a5cb8fd5ff004fc3cfd6faff00d5bd7fd05172e1c7f7bfa5fd3feef87fa3fd8f4ffd
2f154af47fa97f89f4df53d2fad7f8a756f4fea7f5cff1053fc3f0d3eb7c3f73eb7a7c7eb7cff63d2e5fe93
eae2a93eaff00a0bfe55af93fd7feebfe55f5d7a5e87e9bf4beadeb58d39fa3f1fd52bc7d2f53fd2b97a3
cbe0f53154e2d3fc3ffe0afcc7e3c29cfcc3f59e3fa77fc395f55fd5f4796ff5cfb3f5cf43e1fad7abf57ff76
62af45fcd0fd1bf54fcbffaf7d6f8fe931f56f4bf487f89fd5fa8cf4fa9fd4f7f5295fad7affb8fabfabcbe2e18
abcf7cd7fa03fc4973cf9f1e5e42e1cbf4e7af4fd2971e87a3c37facd6bf56e5bfadf59faefc3e9e2a87d
23f41ff00873ca5f57faafd5bf49da72fd23fa6bf44d3f48dff00a7fa3beb1fbefacf2e5f57a6ff006fd7fdd7
a58abd17c9bf54a7e66fa1fa2abe8daf3fd29f5afac7a7fa2c7a7fa67d6dbd3e3d38fef3eaff00dffef715
79d6a3fa07fc23a2f1fa9fd5ff004779678fadfa6ebc3f4c5afa3fa3b97ef7ea1cff00de5e5fbcf5fea7f5bf
f47c55ebbf9c1f53f53c85f5cf4b97f8ab4efab7aff5bfeff84bc7d1faa6debf5f4fd7ff0047fb7ea7ece2af1
b87fc3bfe133ff1cff47fc33e60fefbf4ff000f47f4f47ea70ff7671e7f6ffe3e3eb5e97a1fe8f8aa7f07f85fe
b5f981d3eb5cb52fac71ff127e89f4bf451afd7bfdd3fa4f87fbd5e8fefbd2fb3fbfc5536f30fe85fa8d9fa9
fa3f8ff00cab6d5787d77f4c7d53ea7e95b72f53d3dfea94a7abcbfd3bfb9f4f7e78ab0b83fc1dfe20b3f
53eaff0057fd3b253ea9fe2dff0011fadfe1eb2e3e9f0fdef3e1fef657f71f53faa73fdfe2acf3ca3fa03fe5
62eade9fd4bf4cfe90b2ff008e6fe9cfd17e9fe8e869f5bf53fd03f48f1feeff00dd9e8fa5cff798abdd315
762aec55d8abb157fffd9000840010824000000180000000210c0db010000000300000000000000
00000000000000001b40000040000000340000000100000002000000000000bf000000bf0000af4
300005b43030000000000008000000080fe7fe9430000008000000080ffff9143210000000800000
0620000000c00000001000000150000000c00000004000000150000000c0000000400000051000
000943101000000000000000000d201000023010000000000000000000000000000000000005e
010000db000000500000002404000074040000202d0100000000002000cc00d301000024010000
280000005e010000db0000000100080000000000000000000000000000000000ff000000000000
0000000000ffffff00cfcfcf00696969006f6f6f00757575006e6e6e00707070006d6d6d005c5c5c0061
6161006c6c6c00606060005454540072727200565656001610000026060f002220574d46430100
0000000001000000000000000d000000002000007c1101007c9101004b4b4b00515151005a5a5a
00444444005b5b5b005f5f5f004d4d4d0059595900505050003a3a3a00474747004646460052525
2004a4a4a004949490043434300383838003c3c3c00484848004242420041414100363636003f3f
3f00373737003b3b3b003e3e3e002f2f2f00454545003d3d3d002e2e2e002a2a2a0030303000242
4240026262600313131002c2c2c002b2b2b00333333004e4e4e00fbfbfb00fefefe00fafafa00b2b2b
20089898900c6c6c600c9c9c900c5c5c500c3c3c300cdcdcd00c7c7c700cccccc00c8c8c800cbcbc
b00cecece00d2d2d200cacaca00d0d0d000d4d4d400dcdcdc00dedede00d1d1d100d5d5d500d7d
7d700d3d3d300d8d8d800dbdbdb00e1e1e100d9d9d900d6d6d600dadada00dddddd00e7e7e700
e2e2e200e8e8e800e5e5e500eaeaea00ececec00e4e4e400f0f0f000ededed00f2f2f200f3f3f300f1f

335

1f100f6f6f600f9f9f900f7f7f7008e8e8e00f5f5f500fcfcfc00acacac00b4b4b400fdfdfd0083838300a3a
3a300bbbbbb00f4f4f40086868600a4a4a400bfbfbf00a6a6a60085858500a9a9a900b6b6b600878
78700ababab00adadad00a8a8a800b3b3b300f8f8f800a5a5a500b1b1b1009a9a9a00afafaf004c4c
4c009999990039393900b0b0b00029292900ebebeb008282820064646400c0c0c000efefef00e9e
9e900e6e6e600e0e0e000eeeeee00e3e3e300c2c2c200bcbcbc00bebebe00c1c1c100bababa00b
5b5b500aeaeae00dfdfdf000e0e0e00b9b9b900c4c4c400b8b8b800a1a1a1009f9f9f00bdbdbd009e
9e9e00747474008a8a8a00797979007a7a7a00717171006a6a6a0063636300626262009797970
05555550058585800656565005d5d5d00737373005e5e5e00676767006b6b6b007d7d7d007676
76007c7c7c007878780091919100888888007f7f7f00a7a7a7009b9b9b00808080007e7e7e00777
777008c8c8c009292920093939300909090009494940096969600a2a2a200989898008d8d8d009
c9c9c0035353500272727003232320081818100252525008f8f8f008b8b8b0066666600b7b7b700
1d1d1d0095959500848484001a1a1a002828280057575700aaaaaa007b7b7b00a0a0a0001c1c1c
000505050053535300343434009d9d9d00171717006868680016161600404040002d2d2d004f4f
4f001212120022222200030303000c0c0c00212121001f1f1f0018181800020202001b1b1b002020
2000191919000707070014141400232323001e1e1e000101010006060600111111000d0d0d001
313130015151500080808000a0a0a00040404000f0f0f00101010000b0b0b00b917acceac121412
ac0c0aa7880aaeaeab1412030c04889701010101010101016b0138531d2b4c6b5323ab5f903629
c20101951270b6a6596081e33e013801380140221a8068bf11bf62af146d266ac53b66725b0b82c
55601010101010101010101010101010101010101010101010101010101010101010164013c74b
fcdc1bea8c2b5bd53017cd882d1a8b9ddc6b9c4d63837016b01386b680101383753b7a2bf6801c4
bc654fc5bf74590197c36604d801019ca25001013801383da353b84301416c9f5b6b5173be026b7c
be7243759439017b6a587a570192c6576b013a9b7c0101016379d66f6b9acf890192436f9597508
03d37654a7e46013801383801903e6f013d543d7c0139015d4950584d548f8f8f5f01028b6b65459
701645c8665388c8c5a017c5b65625c01655d673838388a5b39010101010101010101010101010
10101010101010101010101010101010101010101010101010101000004c3564d4c554d4e4e4e4
f4c4f4949504f4f4d4d4f5012920101010101010101016b01011c1e0137231363013815de5e6b017
4ad6b016cd56282a1c9620139016f2a073dcd456233947fd348b434467464451b9aca01bbbc0101
0101010101010101010101010101010101010101010101010101010101016b0138b5d175757d7
dd678759c5a017c7b6973b8d6d6b87d78ce5d013901383801010101013837db2f8f01b1fac33839
c5e6766b6bb826475511b45ea9b7f15601640152edb4b8de79482789900b6fadb152a65f6d347b8
9f86a0179ee7f04cb41afe8b3a4514fc87d596b0160132a6c078a7ffa6e7ae7d11228991d907b7094
b355ca710139388e0f7794884a47eec13801383852291c8eaf255ba1298f9b2a82021ac836a86f16
df676bc4354238a936cd357a48cb200c476b073013707c01010101010101010101010101010101
0101010101010101010101010101010101010101010101000004473838016b013838010138010
16b01013801370138b49901010101010101017c38016816a601bcd486013801abec650168915c0
13805c768016aeb890101389135600167596820938aa09a78226837c231ce3839b7f8b80101010
101010101010101010101010101010101010101010101010101010101380101dd8c01010101683
80138013701016b38010101380101828f01386b016b380101016b0137d2110175fd920139019bd
9860137954f380174e659013deb786b0168600d9a64c75891233738a5748f6fc5308ba2a9018be5
5a019110387adb48fecf014b4a911d6b0101013ad4576b455a4e326b7dcb01a5b36b3f6fac1a535a
5bc7d76b0101a5c73868cca063e989016b01013810a701b5a96b762438c2af01a22c8a7c6a61afc
a01013f2339642f934fe062121e5b5d3f94e84364949a6b01010101010101010101010101010101
010101010101010101010101010101010101010101010000ad410101380101380138383801013
86b680101010101b29e0101010101010101010101640925aef04c3801016808ea6368680138490f
fb9f010194e6903701014e1d016401017c218901979107130177d9dd017c1dc7900101010101010
10101010101010101010101010101010101010101010101010101016b6bc35201380101386b010
13801380138386b6b38010168d88f013801016b3801016b6b6b6b871847ead601010101cfec5c01
390137019df4a701383efbd801386b015d80cdee8d9a1f3868a6b4011e2e996bd7ab0157f1520101
40b9360d3ecb8a010101cf2201016401b8150101016853d48b01407de1a3019be02b5601d2fcbc6
36b01011ba90168b8c959e83e0168016b0122af01cd15686e20017f0b01afa16b396b01df3b37013
e1e3738426cc4d0522a543801019fa77c013968010101010101010101010101010101010101010
1010101010101010101010101010101010101010000043d680138396801010101010101010101
0138643701a2910101010101010101370101010d30a2090c4b01650115f1680101653cecf96d680
13872fa4738380162094701889339203c5a3637b81d381c6a8ed855e04a484c010101010101010
10101010101010101010101010101010101010101010101010101389f5701383868010101686b0
168010101010101013801dd4b01010101013801383801010174e88834c06565383899ee5801013
78eabfb815c390142fb7d01010168bc975de557472f5a011fb5c2858a8e01bb0f6b52f83c614cc138
b60d50354e6bd84140e37c013801900a3701dd8e43355c4bdd3716a201e166015957e99f656301
0164151d016bac1762d36e38017c013711036bc21f0179c738c6a437bf1e9db0a5010cb40138902
168014749c2cb5da76e015755cf10493c875301010101010101010101010101010101010101010
10101010101010101010101010101010101010000a54468010101016b01386b6b383838383901
01010101b292010101010101010101686b01db150101181c016b68dfe56701655af80b5d685a383
991ef93380168014cb566046f382841019f9db39401797ad1dd01be75bd55010101010101010101
0101010101010101010101010101010101010101010101370101b98c01010101013801386b0101
3801013838010168019d8c0101386b0101016b01383937ba10010125060168389bea8c010167c7

98c3013838013d006d6b010101b3a1d8b70143eda01c2c8c4fb390a1681428467633b42496189e
d29f013ad1942572c63196646b01016d807b138c4c850147c99ab0b838a16a7d7e64a045bd8f010
10151043a9d25556ef506048c01015b35a001032e7d1cbb38b21e5052bf3a04098f201f6cb9c5e29
15e159c7983019a0646140668ca3ed22f863701010101010101010101010101010101010101010
101010101010101010101010101010101010000884401013768016b0101010101010101010138
010138059a01010101010101016b010164e3b001680d1894960103f1015e0e6a2761013fa23701
6ef74d01686b01387c656b01622c9301015e63013701608e017c015c6168010101010101010101
01010101010101010101010101010101010101010101016b6401c25a3801016b016b010101686b
0101016b6b01013838c68d3737013838016b6b01640101b30f3801ae208d4c0191f586014676d99
7018b9d01684500840101376801595d63013f1a8b5663013861526101b9b08a01678e520160585
7683701628f62683f115301386401378d8d60013e2e8e015f505c0101373f4939015f488d0138387
c387c9e7a5e3865514a7560010164578f37584b53d86f01a32b45376f7f806b39974a3a75a3e2715
f67c3bf55686b5d73dd63686075a152380101010101010101010101010101010101010101010101
01010101010101010101010101010101000015433801013801686b3838383838386b6b386b010
137a03e010101010101010101396b59282ac0082a5a95c87720e0cd241d65a97e4725870164b4d
ac0380101016b0137010141ed47016b0168010137010137380101016b010101010101010101010
1010101010101010101010101010101010101010101010101828b6b6b01680168383701380138
01016b3801010138c65d0101016b010101380137016088135e3c316d3ce38b82f69a760f4f264f61
0b6c010169e682376b01010101386b39802c640101396b01380139375664680168017c01013701
38013739010137596b37010168010164013895d08b0101680101390101010138016b390164013
8010101370101376b01370138650162650101016838016b5f95016401383801013801680144e36
8616538380138013739016b380101370101380101010101010101010101010101010101010101
01010101010101010101010101010101010100008840013738016b38010101010101010138010
16b0138053f01010101010101010101015d6e996a99590162927b9493959954015c767e488c016
56e943c01393839010137010144d8860164016b6b6b386b016b010137010101010101010101010
1010101010101010101010101010101010101010101010168016bc25b016801016b0101686b640
10101010101010101017f9738010168016b01380101398cc2c469dd44688bbf7fdda17abe716b4c
c2d8c44c01653ac5c36f39016b6401010101b8d70101640101383801010168013701016b680101
0168016b0101640101016b010138016b68016801bfd56339010168016b016b6b6b6b016b010168
010138680101686b010137016b6b01381a3b68376b3801016b016b680101010101010138016b6
8c6b427470138386b680138010101016b370101680101010101010101010101010101010101010
1010101010101010101010101010101010101010000b49368016b010101010101013838010138
016b01017c074101010101010101016b017c01010101546101683739016b38013801016b016801
01380101016b38010137010101016b010138016b016801016b0101376b0101010101010101010
1010101010101010101010101010101010101010101010101010101017f5601013701376801650
1016b01016b3838686b0101dd5a686b016868010168010138016b010101646b01640101017c6b0
1017c0138390164680101386801017c01010138683701013701680168010168680139016b68010
1680168383801016401016838386b01016401016801010139013801376b3701016b0101010101
3837017c0164380139016868010101380101018c6001010101016b016301013801017c38016b01
01380165424a0139016b016b01686839010137010168010101010101010101010101010101010
1010101010101010101010101010101010101010101010000df16d50a14150c150a0a0caeacae0
aa60c0aa788a70e2f450101010101010101016b0168383801656b6801010138680101016b01683
83801016b01686801013701010168016801016b01016b010101010168380101016b3801010101
01010101010101010101010101010101010101010101010101010101383801bbbccdc4c5d2a1d2
babf8f017cbecd7074d28770bdbd888f01390101013838013801380101010101010101013838010
1016b0101013801010168013701016b3701373868010138016b017c0101016b390101380101016
b6b6b01370138013801013838013868016801010101016b0137016b013801016b38016b6b0168
016b01017c0165016801380137016401016b016b6801013801380137013838010138386b010138
38016401373801016b3838680101010101013737016b6b016b010101010101010101010101010
101010101010101010101010101010101010101010101010100005096717e756dd67a69ddd8b8
d8d8b87d84b8c3a8d8b87664010101010101010101010101010101010101010101010101010101
01010101013801010101010138010101010101010101010101010101010101010101010101010
101010101010101010101010101010101010101010101010101010101010101016b7603a604a5
09150cab0b4c0165a5aeaa0915091209aeba610101380101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010000013937016b38013
8016468016b680101016b01390101630101010101010101010101010101010101010101010101
01016b38010101013838010101383838380101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101013901
38650101370101680163010101016b370101386b0101670164680101010101010101010101010

337

10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010100003701
016b0101010101686b0101380138010101386b010137010101010101010101010101010101010
101010101010101380101013868647c6b3801016b6b38010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
0101016b01380101370168016b0101017c0101380101010101010101016b016b38370101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
1000001016b370101380101010101010101016b38010139370101010101010101010101010101
01010101010101010101010101010101383764657c370101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101016b01016801010101386b3801016b010101383838383801370101380101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
101010101010000016b6b01010101386b01386b38386b01010168010101383701010101010101
01010101010101010101010101010101013838010138386b6b7c37010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
101010101010101010101010101010101010137013701010138016b0101010101010138010137
01010138010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010100000138010168380137010101010101010101013739010101010101
0101010101010101010101010101010101010101010101010101010101016b3801016b6b38010
10101010101010101010101010101010101010101010101010101010101010101010101010101
0101010101010101010101010101010101013738013768010101016b6b0138013801386868380
1013801370101686b6b0101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
0101010101010101010101010101010100006b38016b39010101013801016b6b01016801016b6
83838010101010101010101010101010101010101010101010101010101010101010101010101
38383838010101010101010101010101010101010101010101010101010101010101010101010
1010101010101010101010101010101010101010101010101010101013868390168380101386b
01010101010101010101386b01010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
101010101010101010101010101010101010101010100000101380101016b38016b0101013801
01013901013801380101010101010101010101010101010101010101010101010138010101010
10101380101010101013801010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101370101680101010101016
801016b380101010101013838013701016b016801010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010100000101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101

01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
101010101010101010101010101010101010101010101010101010101010101010000010
In practice, the real-time JVM will (usually) dynamically associate an event handler with a real-time
thread when the handler is released for execution (some may even delay the association until the
handler has the highest execution eligibility). To avoid this overhead, it is possible to specify that the
handler must be permanently bound to a real-time thread. Each AsyncEvent can have one or more
handlers, and the same handler can be associated with more than one event. When the event occurs,
all the handlers associated with the event are released for execution according to their SchedulingParameters.
Asynchronous events can be associated with interrupts or POSIX signals (if supported by the
underlying operating system) or they can be linked to a timer. The timer will cause the event to fire
when a specified time (relative to a particular clock) expires. This can be a one-shot firing or a periodic
firing. Figure 7.6 illustrates the classes associated with events and their handlers.
0100090000034a6c0100000093a1000000001610000026060f002220574d464301000000000001
0031f0000000000d00000000200000c8720100c8920100010000006c0000000000000000000000
d20100003401000000000000000000006a4000008b2a000020454d4600000100c89201000c0000
00010000000000000000000000000000000005000020030000c40100001a010000000000000000
000000000000e3e306006e4e0400460000002c00000020000000454d462b014001001c00000010
0000000210c0db01000000600000006000000046000000084e0000fc4d0000454d462b22400400
0c000000000000001e4009000c00000000000000244001000c0000000000000030400200100000
00040000000000803f214007000c0000000000000008400005544d0000484d00000210c0db0100
00000000000000000000000000000000000001000000ffd8ffe000104a464946000102010048004
80000ffed0b4250686f746f73686f7020332e30003842494d03ed000000000010004800000001000
100480000000100013842494d040d000000000004000000783842494d03f300000000000800000
000000000003842494d040a00000000000100003842494d271000000000000a00010000000000
0000013842494d03f5000000000048002f66660001006c66660006000000000001002f666600010
0a1999a0006000000000001003200000001005a00000006000000000001003500000001002d00
0000060000000000013842494d03f80000000000700000ffffffffffffffffffffffffffffffffffffffffffff03e8000000
00ffffffffffffffffffffffffffffffffffffffffffff03e800000000ffffffffffffffffffffffffffffffffffffffffffff03e800000000ffffffffffffffff
ffffffffffffffffffffffffffff03e800003842494d04080000000000100000000100000240000002400000000
03842494d0414000000000004000000023842494d040c0000000009b2000000010000007000000
04a00000150000061200000099600180001ffd8ffe000104a46494600010201004800480000ffee0
00e41646f626500648000000001ffdb0084000c08080809080c09090c110b0a0b11150f0c0c0f151
8131315131318110c0c0c0c0c0c110c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c
0c0c010d0b0b0d0e0d100e0e10140e0e0e14140e0e0e0e14110c0c0c0c0c11110c0c0c0c0c0c110
c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0cffc0001108004a007003012200
021101031101ffdd00040007ffc4013f000001050101010101010000000000000003000102040506
0708090a0b0100010501010101010100000000000000010002030405060708090a0b100001040
1030204020507060805030c33010002110304211231054151611322718132061491a1b14223241
552c16233347282d14307259253f0e1f163733516a2b283264493546445c2a3743617d255e265f2
b384c3d375e3f3462794a485b495c4d4e4f4a5b5c5d5e5f55666768696a6b6c6d6e6f63747576777
8797a7b7c7d7e7f711000202010204040304050607070605350100021103213112044151617122
130532819114a1b14223c152d1f0332462e1728292435315637334f1250616a2b283072635c2d24
49354a317644555367465e2f2b384c3d375e3f34694a485b495c4d4e4f4a5b5c5d5e5f5566676869
6a6b6c6d6e6f62737475767778797a7b7c7ffda000c03010002110311003f00f55492492529240cc
aee7d405391f6520826cdad769fbbfa5f6aa4d667bacaacaf36dbab04b9cd653586bda7696fe96c0d
f668efe69dfe11253a8879018ea2c6d80161690f0608223dd3bbdaa9e1e1f53aed7d9939ceb58f6b5
a2a2c64b4b7e9582c636b6eeb3f3bf428cee99876595db90cfb45b57d07dbee83fbc1bfcdb5dfd462
4a731fd3f284eda3a71d4c7e8f6c0fcc1f45fbb6fe7ffe8bfa09ce3e503631983d3c447a7697000eedff
0098da5cedf4edab733fc2effe756a7d8307fee355fe637fb938c1c21c63d5fe637fb9253962bea4d0
631ba74892d21ee1bb577d36fd9ff47edd9f47d45a98a183d50c0d037890c889d8c9e13fd8f13fd05
7fe637fb91195b2b6edada18df06881f824a64924924a524924929fffd0f4dce0f3400c25a5d654090
4b4ed36303fdcdf77d0549df6f25ed382f21ae218e1947dcddd0c7c6e1fe07f48f6feff00e8bfe11695b
532d6165825a60f246a0ee6996fbbe9050fb2d5e367fdb8ff00fc9a4a71aec7ea86b63d9d398fcb0d6
fe92cc97ed638ff003d0ddceb3dadfdc7a30aba8bee66ec2db5180f2ecbb0b84b87bc6dff00455eef6
7f84fdf4777a0737d3f59db377a26a16be77edf5f7bbdfedf6fb15afb063f8d9ff6ed9ffa5125355b978d
84e6b72323d164dde9b2db1a1ae01ed97fa979f57f41f43f9cff000df43f9bf4d59d4a9caa0bf0acf5b6

339

387a8daacafe8b89a9ceb371dedad9fcf37d2d96d9e9fe895bfb1e2ec6b1d535e184b99ea0de4171
dce76eb373b76e4edc4c56d6ead95318c70da431a1ba7f636a4a43974fa5497d555b90f91fa36dae
69827de7739fb7dacff3ff009b5437e5b8b4b7a6e40123707e4c1dbb4b9db22e7377b6cf67e9362d5
38951ef67fdb967fe4d537d350cc037d9e9362a7b7d579f73c6f6b9dfa4dfecdb5b19ff00861252f858
ff0068a4bf271aec478739a2b75ee792d061b66eaad2dfd22962de6abb2b19b4dae653600d7c9703
babaecf6bedb377b5ce46fb063ff00c27fdbb67fe9444a31a9c76b9b53480e76e7124b89274dce73c
b9cef6b52520cb765dd4ecc6df8d64b4fa858d7e80ee73767a8dfa7f454f1ecc86d55d7735f65a0016
5db5ad69747bacf4db63b637f90aca8d81c6b70646e20edddc4f6dc9290605f7df417ded6b1e1ef64
34870f61f4cba5a5df49ed77fe8cfd22b2b32babaf56d86fd89ba6ad632c0240dacfcffcddac5a148b4
52c1796bae0d1ea16021a5d1efd8d76e76ddc929fffd1f54240e744dbdbe23ef55ba8b1cfa836b2c1
71dfe89b44b059e9d9e9b9edfdd6b952755d4648db80d6fb4b4fba78fd28702dfdff00a0929d2dccfb
4cc8fe6f9f2dc89bd9fbc3ef592faf39e5bb0e0d203da4e9bc9602ef559ac7f38df4f63d45ccea3bdaef
53a7868dd2cda61d246cf7171dbb1bb9253b01ec2603813e00a726353c2c7c66e432e69c9b316c9
b9a6914087b647b985dfbacfd27e6ef5a59b1f63be78f4dd3f0829299fda28ff48cff0038213aec7394
c76f648addac89fa55a916e18e4563fcd54ac6e636e71a2fc434b9f21b6b65cd6ed6fb59e91aff00c2
6f77bd253a1f68c7ff004acff382935ec789638387883287ea620e5f5fded407d15e57a81a66b16070
7576bab3218d6fd2a3f93fca494db2e6821a480e77d104ea635d130ba9201163487180411a9f00aa
5351c7caa29259e98aecd85ef7d97171731cedb6da3f9bdbfcbffcf6a795639f533ec9915d4e2e80e3
b48260ed60fa5fe1366fff0083494d837542497b7da61da8d0f9a736560905c016897091a0f12aae3
df6b3d67665d416b5c00d8636f6db66f723d97d0058c3630398c2e78241dad8fa4f6feea4a7ffd2f54
201e52dadf00875e432ca6bbda0ecb434b6441877d1dc153fdbdd37758df51d14d8ea9eedaeda1e
c258f66e8fde0929d0da3c02503c1517f5ee8f5bdf5bf2eb0ea9fe958278788961fe5377b77a71d6ba
51afd46e556e6031b83a4691b8cfeeb377bdc929bb03c13a0e365e365b0d98d636d635c585cd323
70e5a95b6582caeb6402fdc497027e8f902df1494976b7c02a5d44b41ae5a6193630b6b73cfa8d2d
150f635db776f7ab3193d9ecff34ffe945175794e0017d7a107e83bb19ff48929340f0490b6e5fefd7fe
61ffd2899e7258c73cb984344c6d238feda4a4e924924a524924929ffd3f45c765c28c66594063ab1
59358630575ba07a9e97bbd9e9cbf66c439fac3bec716e3168b1e2a600efe6b73bd17bec367f3de9
fd367a5b3fef9a8924a683aeeb22f735b8b4ba92ef6b8da5a43418970f4dfbdcf67e93f3367f37ff0008
ae5ce2da9ee06086920f868a68397fd16dfea3bf224a459965b8f58b1a2ebf58732a0c2e020bb76d2
df77d1553edb6bec1b71b2f78adcf639ec6b403deadc1aff7bf6ad17727e9fc90cffd7be49290e36459
936166ccaa00607efb58c6b753f43877e9158c673f75ec7bcbfd3b035a5d130595d9f9a1bf9cf51ffb7
92c3fa793f4bf9d1f4f9fe6ea49482da9cfaefbc1badb1ae706d55dae603076b408735ad551b664100
bb033834e8f69bc170246efa2dc8f4dccd7d3ddeaabcdfa567f3bfce3bf9bfa299dff00a15f2494d4aec
c8367a7760e6b5dbc303ebbf757b4bdccf577beea6df656df56dfd0ff00c5faab4a9ac5573d8d73c8d
ad3ef739dacbff7cb957ffd8b45c5fe7acfe73e8b7f9de797fd1494da49249253ffd93842494d040600
00000000070005000000010100ffee000e41646f626500644000000001ffdb008400040303030303
040303040604030406070504040507080606070606080a0809090909080a0a0c0c0c0c0c0a0c0c
0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c010405050807080f0a0a0f140e0e0e14140e0e0e0e
14110c0c0c0c0c11110c0c0c0c0c0c110c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0
c0c0c0cffc000110800e8015e03011100021101031101ffdd0004002cffc401a20000000701010101
010000000000000000040503020601000708090a0b01000202030101010101000000000000000
10002030405060708090a0b100002010303020402060703040206027301020311040005211231
4151061361227181143291a10715b14223c152d1e1331662f0247282f12543345392a2b26373c23
5442793a3b33617546474c3d2e2082683090a181984944546a4b456d355281af2e3f3c4d4e4f465
758595a5b5c5d5e5f566768696a6b6c6d6e6f637475767778797a7b7c7d7e7f738485868788898a
8b8c8d8e8f82939495969798999a9b9c9d9e9f92a3a4a5a6a7a8a9aaabacadaeafa110002020102
030505040506040803036d0100021103042112314105511361220671819132a1b1f014c1d1e123
4215526272f1332434438216925325a263b2c20773d235e2448317549308090a18192636451a27
64745537f2a3b3c32829d3e3f38494a4b4c4d4e4f465758595a5b5c5d5e5f5465666768696a6b6c6
d6e6f6475767778797a7b7c7d7e7f738485868788898a8b8c8d8e8f839495969798999a9b9c9d9e
9f92a3a4a5a6a7a8a9aaabacadaeafaffda000c03010002110311003f00f7f62aec55d8abb15762ae
c55d8abb15762aec55d8abb15762aec55d8abb15762aec55822f927c97e62f32f98efbcc3e5ed335
6bd4bab68d2e2fece0ba9550595b90a1a5462054934f7c551c7f2bbf2c140af93341017ecd74bb3a
0276dbf758abbfe5587e58d687c9ba157c3f4659d69ff22b156ffe5587e58ffd49ba0ffdc32cff00ea96
2ae1f963f967dbc9da175a6da659f5ff009158aaa2fe5b7e5d29e4be50d143788d36d01ff9378aae5f
cbefcbe8882be55d19180a0234fb50684f41fbbf1c55517c8be44e4193cb5a4f35e8458db5477fe4c5
557fc15e4c5ab7f8774b151f11fa95b8dbdfe0c557a7953ca54a47a269dc46df0dac14fc131553bff2b
f9656c6e5868b615114847fa2c3fca7fc8c5513e58ff946f46ff981b6ff00932b8aa6b8abb15762aec55
d8abb15762aec55d8abb15762aec55d8abb157fffd0f7f62aec55d8abb15762aec55d8abb15762ae
c55d8abb15762aec55d8abb15762aec5581eb8a8da47e632cabc91e193e100b135d2e200003726
bd298abcc7ca3e526d0eef42d5bce6df5af256bba4cb7a7498e29db4dd3f55fa9d842a0c6dc9bd49a
28ee1c3144fdf3caaabea302eaa4f6765e61b58ed0ebf049a96ad75a24d6baadb5f4172353d32583
45b8305c45305649619a268e1ba898d56f8f34667aa0551ba3dbdbd8eb7e4cd792c273e579ac741
d27ce76260976d612dbd6d3ae7d268b971b673c2e9f971f8e1e7fef3498aa27cb579a8f9775058ac
e08eff4f3a969ef1798af6ca78ee9adeed75191a0d411968b7566c4092e90fef21957d408cdbaa89d

37f32bf30751d2adb56b7bd49666325c49a647a73bccb1c736991ac13d154a1713dd48b41c8c411
bed47262ac6fcd9e60f3279cb4bd4ceaba7dec92dbe95e64b7d389d32eade664bcd193d3468c454
0e2e5191155a4f8b880eedf162a9a6a7af79c7cabab79c755f2f5a4936b37367a0fe8f6b3d26e9ade
610e9f7b2fa4415948dd115b8f4668e363172e615466a5e79f3f5e5aea5a7ea0b792687a8c57d14b
73068f334b6b11b9d5ad6dd1516272c26586cc3332b95f579fc0b202aabbca5adf9af4668749b0b7
bcd2ed6692d669a43a45c5c89aeadf49d284d6ce38a8879013fef5caafaa8ff0013346d1b2af50fcbc
bdf316a9f961a36abe6e9a593cc9a8e971ddea893dbad9bc3733c21e487d10885446c4a80c396df1
138ab20f2a9af9634427a9b0b5ff932b8aa6f8abb15762aec55d8abb15762aec55d8abb15762aec5
5d8abb157ffd1f7f62aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb15762ae
c5523d1abfa6fcc7e1f5ab7ff00a8283154f315762aec554ee2082ea096d6e6359ada7468e6864019
1d1c519581d8820d08c552ef2f796b43f2a69cba4f97ec92c74f42596142cdb9f1672cc7614153b0d
ba62a9ae2aec55d8abb1550bd1cacee17ad62714f9a9c552ff2a6fe57d13b7fa05aedff003c53154df
15762aec55d8abb15762aec55d8abb15762aec55d8abb15762aff00ffd2f7f62aec55d8abb15762ae
c55d8abb1540cfad68f6cf3c773a85b4325a80d72b24d1a1883742e0b0e35aed5c55649afe850f2f5
753b44e122c0dca78c5257af14356fb469b0c554e7f3169105d2da7d72dda5594c574bf58855a02b
13cd575670dd233b005bf6becab305509fe3af271bd9b4ffd3967f5ab7b48b519c7acbc12d2795e08
e52f5e34692275fb5d57154c2eb5ed12c6682def752b5b79ee787d5a29668d1e4f59c469c03105b9
310ab4fb4df0e2ac5bcc3f9b1e51f2d433c97d771cb308ae2e6c2dada586692f21b2b78ae6768f8bd
17824aa69294247c4b55a62acc2c351b0d56d23bfd32ea1bdb296be9dcdbc8b2c4dc4956a32120d
0820fbe2aa3aaeb5a46876ed77ac5fc1616ea0b7a97122c40851534e4457e431563f75e66975db1
68fcb9a46a37d0dc422586f896d22dc826aa3d69f84c2be31c4ff000e2ac00681e76f3dbcc9a37992f
744f2f4bfbbfd2fa7dd5db30e0fc64fab4b76c4ccc685564fabc30a7da067fb38ab3eb6fcb4f2dc30c6b
3cfaa5dddac71c73dfcdab6a0b7170d1284124c629e35672075e23c3eced8aaaffcab9f2bff00dacb7
ffb5c6a9ff6558ab47f2e3cac6951a89a74ff0072faa7fd9562ab5bf2d3ca4e0868f5020f50756d529ff5
158abbfe559f9436fdcdf103a5755d48febb9c55a1f963e4e1d2daef7ffb59ea3ff6518ab7ff002acfc9d
40bf54b9a0ffb585fff00d57c5570fcb6f27014fa94dff49b7bff0055b156cfe5b79388a1b2988ff98dbcff
00aad8abbfe55b793ba7d465a7fcc65e7fd56c55dff2adbc9854a369ccc86b556baba61bfb194e2ac
9edede1b4b78ad6d90456f022c50c6bb2aa20e2a07b0031554c55d8abb15762aec55d8abb15762
aec55d8abb15762aec55d8abfffd3f7f62aec55d8abb15762aec55d8abb15790f99bf26f54f3179975
4d75f5b8122bd8a582d225b79e29adf9bdb4b1cab243708bea43241c95bd3fde2b7a737a89b62ad
49f92fa83cda8cabaec6b1ea697969736a6d99edfeafa9c663b99511a53e9cedf0b809fb857121589
7d69315535fc95d5edf42d3fcbf69e61b768b48babc974ed46eb4ff005efbeaf73697d6f125c48d352
678dafddb91555755a7a619ddf154bedff20752b4bb17f16bf67713d51ded6f34e7b9b490a5eea174
56447bae6e857529d0d5f972489f97db57553bfcccf26f95754b0d16d755f339f2e5ee936ef6b62f65
e9452c8ee226b72b026e7d1b88219e28d071e7185fb35c5583ebff0096be62f386a1ab5df93e07b0
b2b9373616edac59bd85b0b4b9d32d34f242bca6e2429f5447563046afc8aff978abd3bcb9e40f325
8432c5ab799e48ed67bfbed4e5d3f46856ca367d42e5ee4c6f3c86598aa1908063686bdf15651a5f
94bcb9a3ca2e6c74f8c5e8a8faf4dcae2ecf235359e62f21a9f16c553ac55d8abb15762aec55d8abb
15762aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb157
62afffd4f7f62aec55d8abb15762aec55d8abb15762a92eabe6ef2ee8d751e9f7d7e9fa526567874e8
435c5e48a9d4ac10879081e217154bdf5ef356a9138f2f6806d79460c17baec82d63e4dff2ef0fab31
a0fd9710f857155ffe19d6b51ab7983cc373246dc09b2d297f465b82bb9a3a33dc104ffc5fd3b62a98
e8de58f2f797dee25d1b4d82d2e2f1fd5bcb9440679e4a5394b2b55dcd3bb31c5536c55d8abb1576
2aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb15762ae
c55d8abb15762aec55d8abb157ffd5f7f62aec5525d4fcc7069daa5b68c967757da85d5bcd78915aa
c642c36ef1c6c59a59231f6a550062ad0f305d934fd01a901e34b5ffb28c556b7986f97ecf977537f97
d4c7ebb918aa9bf98f53500c7e57d52424d080d60b41e3bdd8c5563f99b5902a9e52d51cff002faba
72febbc03154a353f347e60bc90c5a2792e78e26dee2eafee6c5990782430dd51cffad347f4e2a95c
76fe69bc00f9934af30eaac4b96b786e74bd36ce8ffb3e95adf076503a7ab2cb8aa73a55ccfa1c02db
46fcbebbb08000a52d9f498aa074af1bb15fa715479f3379829b79375327c3eb1a67fd9662ae3e66f
3176f26ea64d3fe5a74b1bf87fbd98aad3e66f32d7e1f25ea44789bad2c7fd8e62a98795fcc5179a34
a3a9c76b358bc7737565716773e99962b8b1b892da55262774239c668558823154da3962994b44
eb2286642548601909561b770450e2abf15762ab5e48e3e3ea3aa7221579102ac7a015ee71549e
7f3104bebab0b5d32f6f5ecca24f2dbac3e987911640a0c92a1278b03d315583cc379520f97b5303c
69694ffa89c55aff00115f6d4f2e6a9ff4e5ff006558aa99f32ea7d17cadaa9dabf6ac06f5e9bddfd38aa
c1e66d68a93fe11d5430e8a65d377fa7eb94c55a3e66d7b6a793f5427fe33e983fec731577f897cc1
4ff943b53ffa48d33fecb3156bfc4be60ffa93753ffa48d33fecb31577f897cc1ff526ea7ff491a67fd966
2ab3fc4fe66209ff0004ea55ec0dd697bffd3e62ab26f35799a189a63e49d448405987d6f4bad00a9ff
8fbc559269f7b1ea5a7daea30ab2c5770c7711abd390595438069515a1c55138abb15762a81d475
ad1f47f43f4bea16d61f5a710db7d6a68e0f5643d153991c9b7e83154762aec55d8abb15762aec55
d8abb15762aec55fffd6f7f62aec55895cff00e4ced2ff00ed83a8ff00d4658e2a8ef31f9b74ef2cdde89
697a8eefaddf2584663a521f50102592bd23f50c50d7fdf93463f6b155b2f9ebca505fc9a5cbaac22fe
27922783e22c1e08a49a41b29078a432934ff7dbafda4618aa90fcc3f2495ba2baddb37d4a9f59556

341

2cea4bc91d02804b10d148ac141e251f97d9c558f5bfe70688756d4ec7507b2b3b3d26e2e23bbb8
6bf8e49c5a5bc114e2f3eaea9cbd16f5a35e55f84bd7ecef8aa7baa7e65791745330d575cb7b4faba
5cc9399790545b1e7ebd4f1a553d373c7ed154765aaab1c558ff993f3b7ca1a269e9a8584bfa4e2f5
f4d8ae5c17b68218354d4bf45895e695382fa5306f52362ae151b1556f2cfe7279535f6d416e2e22b
1faaead7ba3593acbf5a4bbfa818c19d1e252aa8e64555e4777f8055b155dac7e71f93ecf435d5f46
bd8f57964b9b7b582d23f52377f5e6b68da4358d8ac6a97713fa857d36e718e7f1ae2aeb0fce4f260
d252ffcc7a841a1dd117924d6b2c8d288e2b1b89a066322a01561034817edf00c685519b1567765
796fa8d9c17f68c5ed6e6359a166568c9471504ab8561b1e84571561ff0096949fcbfaba1e8de60f3
0a1a01ff576ba1d0d462a8cf20790b4dfcbdd26e749d32e26b986e6ea4bb692e7897064a2851c40d
82a8f6afd9545a22aacaf15762ac43cfde56f2f798ed74eb8f31dfbe9d69a4ddc5771ce254813d50ea
155ddc742683893c5bf695b6c5531d0a44975af32b46c1d56f208c953501c595b923e6030c553ec5
5d8aa57a5f98b46d661bcb8d3eed2586c2f27d36ea435409776afe9cb1fc54dd5b6f7ed8aa35af6cd
179bdc44a82a4b175036343bd7c7154a7cc9e6cd2fcaf691dddf2cd7024b9b6b110d9c7ebcc27be9
0430028a6a03bb0404ed538aa2f4ed72c751b51720b5ab726492daec08678d91994874276fb0c47
8afc436c5574daee896f0fd627d4ad6380c0d762469a30a6da352ed2825b740a0b16e94c55176d7
36f7b6d0de5a4a93da5c22cb04f1b06478dc0656561b1041a838aaae2a95f996ff00f45f97358d4ca
7abf52b2b9b9f481e25bd1899f8d77a569d7156fcb89e9797b498ebcb859dbad7a569128ae2a99e2
aec55d8abc9bf3174df305ef9ba0bad3ad2fdadadf4fb3b786eecb93a2b5d6b16e6f0f03c939c76d11
75629cb7daa788c5529f2969df98ebe61d0db5abcf30fd4ae57f49de7aad6ef6a974d35c2cf69392e
a638562107a3188a52d52cb223f27c55edf8abb15637ad6b3aa0d72cfcb3a31b7b6bcbbb59ef4dfd
ea3cd12a40e91f08e2478cc8f59391f8d782f8f2c557e81ac6a371aa6a9a0eaa609ef74a5b691af6cd
5a38645bb57215a376731c8be992c9cdbe078dbf6a98ab21c55d8abb15762aec55ffd7f7f62aec558
a347eafe65452b56b6ba1cab1d3a7fa55e465ebe3fdc2d3e9c552cf3cfe56e9de7c7b9b8d56e42dea
470268574210d269af0cc93c9244790e4d23c71b7c5f67d34f0c5529bbfcaaf5355026925beb5d5f5
84d7358ba49059c30359c6e88b1c08492f70b27a33ba70f5225fde7c5f6d5548bf27e6875ab3f30c7
e65b98f57b199e78a64b6b7e245cdd5fdc5ca9460cb4905fb28dbf77e9c6cbfb419544db7e55dc8bb
d61b51f303de69dad49a94b756e2c6da29bfdca43f57e1ebd19b84518554501797043273c554751f
c9bb2bd1aa4116b3709a76ad696d67756b710c174cc2dd44521333a8938cf1f2595390e4eef27ed
71c5547fe54b4324e26bad7ae2e6292fed353bdb492dedda09e6b1d42e751405581a0696e2afbfc4
d1a3fc2d8aa84ff9156170f23bf982fa20f7f7baa84b78ada255babf9267671fbb26a8250aadf6a90c1f
efbf89546c5f92fa6437cd7d1eb37cad2c96af73115b664912c24b49a08c728895556b44e414fc684
a3744e2aa1e4fc8cd224d2efb463addf0b0d405abdca71610000026060f002220574d46430100000
0000001000000000000000d00000000200000c8520100c8920100a768d21b8b478dbd4123405c0
90448b247cbd363cdf88676c55eab8abcd7f2f7cb56f73e5482e46a5a9a97bbd46431c57b2c69cbe
bf715000200df1555f2beb1e4df3768965e60d3bcc57d1dbdeb2c2b6d3ea85278ee5857d09112560
b2d3f62bcb155daaea7e48d3743d535e3e67b9bbb3d1a2964bc5b4d65e4939451bcbe9ed381ea3
2a3715622b4c5543cb7ac793fcc90dd3c5abea96125adfdce97e85fea93432c93d9aab48631eb9e4
a1581fd78aa717be5a8759d21cf97b589e6facd625ba9efeeaeed82125242634980908dc702c149f
b58aa59f943e5ab5f28d9799fcbf657171756f6baeccc26bb90cb2969ed2d66600ec1503390883e14
4e283a62af45c5507ab0d48e9778346111d58c320b1fac33243eb95210bb2ab90a0f5a2b62af15bb
fc99f3659e9fac797fcbda8c2fa36a3fa3eeedee755ba7b8ba8b52b684dacccf1adafa52c0f12c21a37
f8a5e127c71bc89246aa226fcb0bed72cb555d3e0824d326d62f67d36c75ab77b5fabc13da5da4c5
14c4ec435fddcb3a720a3d2e1c0fd92555193f283ce1279764d1af1742d4ae06a3a7de25e4ed770d
c4f676f790ea135b5c4ab1b921648bd28885de3e2ec10af07551aff00931a83e9d1db58cb61a27fb8
9b8b06b0b4fac5cc09750cf2be9ceb3c8525648a3baba8e5fb2edeafc1c780c55269ff002135bb8d5
7ebf0fe87d3e09ac60b4961b7faccc617f4f58facfa6f3ab3babc9a9a9f89d7908daaabf0a855ee1a0d
95c69da1e99a7ddfa5f5ab4b58209feaf5f47d48a3556e1c803c6a3e1a8e98aa618ab1ef3ed3fc0de
66a8a8fd137f51ff46d278e2ac03c927f373eb31fe9dfa8066b54fd19e8fd69b4916741c38f0a1f5f8f1
e7f58dfafa1f072c559e2af9fa839cba3835de91dd1dbfe0f155458fcef43cee74a0dd80b7b923fe4f8c
5553d2f38d3fdebd3397fcc35c53fea23156fd2f387fcb669bff48b3ffd9462ad7a3e71a7fbd9a657fe6
16e3feca3156843e72aef79a653dad6e3feca3155f1c3e6d0f596f34e31547c2b6b386a77dcdc1fd58
aa5df987e5b8fcd7e5a9f4696086486734b89a615920800264780d2a25207046057872e75f878955
07f94fe5f87cb3e49d374bb158d74830c373a71425e5f46e218e422676a976572cab21662d1f0e47
962acdf15762aec55d8abb157ffd0f7f62aec55866a57f1e8fe7c5bfbe8ee16c26d204093c36d3dc21
992e4b9426147a1e26b438aa68be73d05becb5d9ffa30bdff00aa18ab63ce1a193406effe902f7fea8
e2abbfc5ba2f8dd7fd20de7fd51c55c7cdda28ef77e3b585e9ff9938aa16f3cff00e56d39616bfb99ed
96e664b5b732d95e27a93cc6891ad61dd98fd903ae2aad279d3438e955bf6aff002699a83f5f1a5b9
a62aa67cf1a2004fa3a99a761a4ea24ededf57c5567f8f345dffd135734df6d1f52ff00b27c55bff1de9
15a0b2d5c9ffb63ea5ff64f8abbfc73a50ff8f1d63fee0fa97fd93e2aa1f96d6f776be4cb44b9b696d2e1
e6be9c5bdd23432aacf7b3ca9cd18065aab03422b8abcb13f213cd50797e0d16c75ad2ede441666
e26fa9cc7d492d23907305258dd4b3b29347f8d6ab273c555aebf223cc6c6e26d3757d32cee27b39
ac1e23672bdbbade0d4d26919164425c0d401435ff75b2b6d27c2aa2b4ffc8ed72c6eee669355d26
fa0bfb8beb9bb86fb4d92e151ae02985a006e00560432ca5b9f246f8383af2c55ea3e4cf2fdc795fcb
d6da25c5dbdeb5bb4a639646691d627919d2332484bc9e9a9081dc9760bf11ae2a92e85aadb689
abf9ae1d4e2ba85ee758fac5bb2da5cca9242d636881d1e38d948e48cbd7aa9c553c3e6fd106f5bbf

a2c2f4fea87157379c3445153f5c3f2d3ef89fb8418aac6f3a6868bc88be23c174cd418fdc2deb8aadf
f001be854a88f513bd29fa2b51aededf57e98aa0c7e65f958de7e8eaea03523135cad91d2b511398
11c46d20436f5281982f2f138aa2bfc71a471e5f54d569407fe391a8d77f6fabe2ab479eb4922a2c75
8a1ff00b53ea5ff0064f8abbfc73a57fcb0eb1ff707d4bfec9f155ade7cd2969fee3f5a35f0d1b5234f9ff
a3e2ac7fcdde78b5d4bca9aee9d63a279825bdbcd3eeedada31a26a00b4b342e882ad0802a48dc
9c559de8d0c96fa469f04ca5268ada14910f50cb18041f91c551b8abb15762aec55d8abb15762ac7
35ab2d575ed4174521ed3cb2a824d4ee5182cb79c8902d632a79226d59df66652234fb4ecaab7e5
bd226f2edc5ee8b696eb179654adc68e23e2a96e2527d5b558c01c5118738e9f08593d314118c55
9162aec55d8abb15762afffd1f7f62aec55d8abb15762aec55d8ab01f39e9d77e6cd65bcbf645ede5
d274d9b52b6d42a0c50eab704c362c63fdb29c259287fc9f1c5596e81aac7ae689a7eaf1538dec11
cc540238b3282cb43b82ad506b8aa638abb15762aec55d8abb15762aec55d8abb15762aec55d8a
bb157954f713c9e699ff0030e37686c74ed5e3f2d4bebad124d329f5699a3a0a81f5f9558b1d8adbe
2af55c55d8abb15762aec55d8abb15762aec55d8abb15762aec55e61a8fe695ce8baceaba7368f75
7f0d9ea325acf319ad624b7822874d72c80519d48bf0eaad59390753c57862a92e97f9f57377e5f9b
599bcaf713c9656b737ba947653a3456f1c72ddadba992611a93225aefbfc2eeaa1587265551eff9c
9ac5abeadfa4bca125ac1a41bf86593f4841297b8d32c46a1222aa21d9a23f0b9fdbd881d71552b9f
ce5d6535ad23491e58faac3ac6b6747b5bc9eed645786daf66b3ba938c48783a9895a2463f1abf51
c1862af5fc55d8abb157ffd2f7f62aec55d8abb15762aec55d8ab1af282fd6ceb1e60602baadfca2060
fcc1b5b2ff44888a6c037a4d253fe2cc55679565fa9ea7e60f2d38947d42efebd6ad20a235a6a9ca71
c1bb85984f1d3f6787cb156518abb15762aec55d8abb15762aec55d8abb15762aec55d8aa035cd4
d746d1b50d5dd0ca2c6de5b9f497ed39890b051eec45062a93d979618f9117caf752b8ba9ec1a0b
9b9621a41753a16925ad29cbd462ff3c551de53d64ebfe5dd3f5470cb712c7e9ddc6ea5192ea0630
ce854f42b2a3afd18aa738abb15762aec55d8abb15762aec55d8abb15762aec558fdcf91fca979717
77773a64725c5f48d35dc84bd6491d614666a3752b6f08ff009e69fcb8aa5edf957f974cd239f2dd97
29a29eda5a474e50dd3c924a8687a169643fe4fa8fc69cdb15466a5e40f266b104f6baae8b6d796f7
572d7d711cea640f72f07d59a46a9dcb443d36f15eb8aa134bfcb7f2d59453adf5a45a94d2ea326ad
1cf711d5e298dd4977104a93c7d2790f02b4ff002b7ae2acbf15762aec55ffd3f7f62aec55d8abb157
62aec554ae6279ede586395a1791191664a7242c080cb5a8a8ea315797be85e79f24691e5fd174b
f36412592dcda6910acfa4c44ac2c38024c73a54809b9ee4e2acab46f2d798ed7cc3fa7f5cd7a1d40
8b26b0fab5b589b256acab2ac8e4dc4d529460b403fbc6c5595e2aec55d8abb15762aec55d8abb1
5762aec55d8abb15762a90f9bb42bbf316949a75a5d25a95bab5ba97d68da58e58ed2749fd2608f1
9e2e5006f8becedb838aa552eabe738bccb69e5cf5b4b66bab0b9d40dc7d5ee053eab35bc5c38fae
7afaf5ad7f67df154dfcb3a46a5a447a88d4aea2b87bdbd96f624b7478e3856654e48a1ddcef20790
efd5f154f315762aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb15762aec5
5ffd4f7f62aec55d8abb15762aec55d8ab18f3a7d9d03fedb563ff126c5593e2aec55d8abb15762aec
55d8abb15762aec55d8abb15762aec55d8ab13ba5ff009099a4b57fe945a98a7fd1e5862acb31576
2aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abfffd5f7f62
aec55d8abb15762aec55d8ab16f3bfd8f2fff00db6ec3fe26d8ab29c55d8abb15762aec55d8abb157
62aec55d8abb15762aec55d8abb15629780ffcacbd1cf6fd07aa0ffa7bd3f156578abb15762aec55d8
abb15762aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55ffd6f7f62a82d5f538345d
26ff0058ba566b6d3ede5bb996300b98e043230504804d06dbe2a9726b9acbaab2f972ef8b00c0faf
65d08affbff00155dfa675aa8ff009d72efe7ebd97fd57c55bfd33ad7fd4bb75ff23ecffeabe2ad1d675b
076f2ddd11e3f58b2ffaaf8abbf4ceb74ff9472eabff0031167ff55b15493ccdfe23d6134a5b5f2fce0d9
6a7697d2f3b9b45ac56ee5980a4a6a7c062a9d9d635d1d3cbb707fe8e6d07fccdc556fe98d7ff00ea
5c9ffe92ad7feaa62ad9d635fede5c98ff00d1d5affd54c55a7d63cc01494f2e4ccdd81bab500fd3cce
2ab0eb5e66e24af96642dd81bcb603efe58aa936b9e6c0471f2ab914dc9bfb61beff3c5567f8a35ab
5b9b18b57f2fbd95bdf5c25a0b85ba827092cbcb8d5548246dbd3156538abb15762ac4b53f366b11
799ae3cb3a1686353b8b3b1b6d42ea796f12d1152f25b88a35506390b1adbb96e9fb38ab8eb9e7e
ede52b7ff00b8b27fd93e2ab3f4e7e61d7fe510b4e3e3fa616bff0050b8ab6bae7e619ebe51b31ff6f8
07fec53155dfa67f30bfea54b1f7aeb07fec8b154a66ff00958b379af4fd70f96b4f5b6b5d3ef6cdd46a
ec497b99ad645ff8f21b5216c55395d57f3088f8bcb3a6afb7e9890ffddbf156ff004a7e60ff00d4b5a6f
f00dc625ffbc7e2ad7e94fcc2ff00a96b4cff00b8c4bff78fc55c353fcc3aefe5bd2c0ffb6c4dff0078ec55
70d47f3049dfcbfa581ff6d698ff00ddbf154c7cafad3f98b41b2d664b6faa4b74ac64b6127ac11d1d9
1807e2bc855763c47cb156a6f367962da6b9b7b8d62ce29eccc82ea279d15e330888b8604d41513
4448ff008b13f997155397ce5e5385a65975bb246b68a2b89c19e305219ffbb73bfd96ec7154e2490
242f32fc4154b8a77a0ae2ac6fc937de6ad5f49b2d6bcc125808352b382ee0b5b28278a489a74593
8bbcb3481a81a9b2262a8bd561f3949765b43bed32dec788a477b6771712f3ee79c77510a780e38
aa3b484d6a3b52baecf6b717dcc912594325bc5e9ed41c2596635eb53cbe8c552b9adfcf86790dbe
a5a425b1918c292585cbc822a9e21985ea82d4ea4281fe4e2a9d95bd364504b10d47d2a09bd363
0fadc7ed7a7cf971aefc79d69fb5df1549e0b4f3b09a36bad574c7803299523d3e7466407e2019af1
a848e86869ef8aa69a945a9cb6e1749b986d6e790265b985ae5386f51c16588d7df962a86d36dbc
c714dcb56d42d2ea0a11e9db59c96cdcbb1e4f712eded4c555350835b96543a5df5bdac2168e93d
ab5c316af505678a829da98aaae9f16a90c6e354ba86ea526a8d040d6e02d3a10d2cb53ef5c552d

343

bc975fb5d5f4f55ba824d32faeda0783eaafeac712db4d357d5131152d105a94a7c5e38abfffd7f7f62
ac77cfdff00282f99ff00ed937fff0050d262aed7fcd16be53d1f4fbfbbb69eea3bbb9b2d3624b6f4f909
efe44b786beabc602991d549afc35af4c55ad13cf5e57d7747b2d6edefe3b6b4bf49e4b74bd65b694
adabbc73129210688636a91f0d072af1df15478f32f974c9044357b232dd3fa36c82e62e52c8429e0
839559be34d87f32ff0030c558fdff00e67f9674e83ccf7933492d9f957eae2fe6b7f4e71235caf20b10
8dc92ca7e16560a6bed8aa7f7be66f2ee9b2ac3a86ad676b33a47224734f1a3324d208a36019812
19d95569d58818aac5f36795dae4d92eb563f5c09248d6ff598bd5090d7d462bcaa02d0f23db1563
b3fe68e96baefe86b0b2975183d1b1b91a9db5c597d59e1d4a79ada331f3b85772b2412074552c3
8edcba62a9ec5e74f28cd1db4b0ebb6124579e87d55d6e622b2fd6ea61e24350fa943c3f9bb62a92
eb7f9b3e47d2745b8d62d356b5d5cc715dcb6f6ba7cf14d25c3d85ab5e4b1c6c1b873112f21c9947
4f1c5503a27e71f96b55bfb8b4bd5fd116d6fa5e93ac35f5e4f6e212bae098c1082ae4faabf5793d41
4a00bcb915c5590de79f7c9f690ea720d6ec659b484e57d025cc45e362cd1aa30e5f0b33a32007f6
8531549fcabf9aba1798ad4dd5faae86b23d84764b7b3c35b83a958dbdf46138b52a05c2c647f3ff0
0acb8aaa6b9afe89e60b0d0752d0b50b7d4b4ff00d3b6510bab4916688c8ae4150e8482457c7156
718abb15762ac334f1ff00215fcc07c740d1bfea3354c5599e2aec55d8ab0ff3679afcc1a06a5a6d96
99a145a85bea73259c1753defd541ba922b89bd30ab04c68160dd8f1f8a45f06a2aa36ff009a5e534
b4b59357d420b3beb8049b584cb74aadeacf084e691005b9dbca94a7f788c8bcbbaa88bbfcd0f205
948f14faf5b7ac8914a628cb4b214b8689632ab1ab16e466885141de44fe65c559623ac88b226e8e
0329a11b1151b1df155d8abb15762ac6bc80bc3ca76294a51ae0507fcc4cb8ab18f31fe52b6bfab6b
37cfab22d86aed24af612da972b34d6d676acc268e68dd68b651b46c9c248a425d5f904e2aa593fe
47cd3d9df59bf98bd47bb749a2d4dec621aa453718f9b8bb8dd1ea2489668c27050df04beb47f0e2
af524bbb5b5e3a74b7692ea10db899a266459de34f84c9c169b123a81c6b8ab5a2ea70eb7a3e9fa
cdba34706a16d0ddc51bd39aa4e82401a848a8077a62a8ec55d8ab0ed5fced7916b7aa797fcb5a4
fe9bd5343b28750d5a1fac0b5282ecc9f57863ac6fce59043230078aa855e4ff0018c55768ff00989a
1ded924fab4d169376d7579666da69792a9b3bbb8b50cf271555f50dbb94e7c6bbaaf22b8aadb7fc
c6d12ebcce9e5f8184904d6c2586f17d42ed7267f48c061f4f90a0a3f3fb3c4d765f8b156638abb157
62aec5509797cb6971a7db942e6fee1ad9581a702b04b3d4f8ff00754fa7157fffd0f7f62ac77cfdff00
28279a3fed937fff0050d262a9679ebca375e76f2a58e896ef66152ef4ebf9d35181aeada54b09e3b9
f49a3574a8768c2b54fd9271562307e463c7a31f2ecfac89b49bcb78edef57d0656b616b7577736d
1d8032308a18c5d98383fa9fb88a340df6b154ba0fc86d6e1b0b4b43e60b369adcc55b85b0923602
17d1c8e1fe904a9e3a4d2b5fb52d7f628caa7761f9397404361ae6ab0dfe868b6914b0c115cd8dd3
a6996925a5ab19e1b9af32b2729b6e2cdf642e2a964ff94fe60b1d1234bdd41b57b983455f2f8b5d2
a15b692e38b2c76772ed7770caaf694593d552b2b716afa8bc22c551bacfe4b6a3aa5c2b41e604b5
48beab24576d6bf58bc33da69f7169ea4acd20490bc93faae0a5182fa7fb5c82a994df965abdd798e
2f325f5ee8d737eb059c6279746e535bcf69753ddbcd6adf59fddb3bced4af3fb2ad2194f2aaaa3ff2a
5eca2bfd3eee1bf8a6b7b1babc912cafaca3ba812caee786e228215e6811ad9a0410cae24a296e48
c78f1552983f20e5b7d19f4b8fcc7491ac9f4d13fd4b6f465b0bab1762bebfdaa5cf353cb6294df96ca
ad4ff9c7cb6b55b9874cd5e1d3ad6f749d3345bd82d74e8e259d74bb7bd81a67292a9e737d74b35
29fdda231742eacaa3dff0025af9f51b4d587990477b617525fda14b11e9fad2dc3ce4488d39e4b49
1d362adf65c37c3baab34efc8b8f4fbcd3ae9f5a8ef12c22b5b7305de9d04f1c915a59d95aab0591d8
24a1ac63952451f012cbc1be12aaa6773e591e4df26f937cb2975f5b5d3759d3215ba6410f306ef97
d80cd4d9a9d7157a662aec55d8ab0cb03ff00215f5f1dff00c3fa31ff00a7cd53156678abb15762a91f
987cbbfa7ee344b8fae4969fa17504d4d523447133245243e9bf304852b2b7d9a35698ab118ff2862
88a71d7aef8c7722f154c36f4f505e5e5ed3ec74e77b20ff5553deaaadd1bf272cf44b58ac6db5ebf7
b386e74ebe581d2d78fd634c6818b721087a4c6da32ea5f8afc7e9f1e5f0aaf4cc55d8abb15762ac1
7ca5a0c975a1c3729acea30acb35d3086296311a56e65d941889007cf154f3fc35353fe3bbaa1ff9e
d17fd52c55aff000c4b423f4f6abb9aff007f1ffd52c5589f9aff002bb50f345c5a5a1f316a365a75b56e
06ad0dc8fd2d15cd4285b57f442c2ac9c848f57e41b87a7fb58ab3cd0f4b8f43d174dd12191a68b4d
b582ce39a4a7375b78d630cd4daa42d4e2a8fc55d8ab16b9f2601e68baf35e8fa8cba5dfea76d6f67
ac2471c52a5cc766ced03fef54f092312c88186c55be256e29c5563927e4b689730ead677ba85ccd
a7ebb23c9ac5b288e3f5bfd3ae750842b0154314b74ff12fdb509cbeceeaabc5f95727e9dd0bcd17b
e64bdbcf31e836ff538750921b54796d9e4e52c4eb1c6abc2440a8e00eaab27db15c55e8b8abb15
762aec550d756515d4f653c8ccad63335c441694666864868d5ed4949f9e2aff00ffd1f7f62a92f9c2c
6ef54f28ebfa65847eadf5ee9d796d6b1542f29a681d116ac4015246e71550b6d7af62b78637f2fea7
cd1155be1b5ea050ffc7c62aadfe20bbffab06a5ff036bff6518aac7f31df2fd9f2dea8ff002fa90ff895d0
c5567f89752a1a795b56247415b0dffe9ef1558be67d588dfca5ab06f02fa77ebfae62ad8f32eae4d3f
c27aa0f9c9a77fd9662adff0088f59ffa95353ff91ba77fd95e2ad379935a1d3ca5a9b7fcf5d387ebbcc
55a3e64d6c0f87ca3a993e1eb69c3f5de62aa3fe28f325071f24ea64f706e74b14ffa7cc5568f3479a
083ff003a3ea408a501bbd2b7affd1e62ad0f3479a8d3fe747d4078d6f34bff00b2bc552cd6a5f35f99
64d1ad0f95ae74e86db55b1bfb8bbb8bbb174486d66123fc30cd2313414002e2af40c55d8abb1561
33c1aae97f987a8ebeba55cdf6977da369f6314b68602567b4babd9245759658c8f867420d083bf8
62a9c7f88afa951e5cd50ef4a7fa1fdfbdd62ad1f316a3bd3cb3aa1f0dec457aff00cbde2aa67ccbab8
341e53d508f1f534eff00b2cc55aff12eb1ff005296a9ff002334effb2cc55dfe25d66956f29ea6a3bd65
d3b6ff00a7cc5528f2cfe645df9b346b7d774bf28eb02c6e4caa8276d3e1901864688d51eec30a95a
aedbad1bbe2a9b0f32eb9bffcea1a983dbf7da6ff00d9662ad1f3279829f0f93b523f3b8d3076ff0098c

c554dbccde670481e4ad448f1fade963fec6f155a3ccfe6b3ff004c45f8f9dee99ff6558aa63e52b5bdb
3f2fd9c1a95bfd52f8fab24d6c5d643199a57938964254901b72a698aa778abb15592a192278c1a1
652a0f854531563de4eb5f32e9ba458e91afc1683f47d9c16c2f2daea5b979e5850233b2cb046579
5397da638aa2755b9f3745745744d3b4fbab3e00896eef66b693d4dea3825acc29efcbe8c5519a4c
9accb6a5b5cb6b6b5bde6408ace77b98f850509792184d6b5db8fd38aa517573f982b7128b2d334
692d03b085e6d46ea391a3a9e25956c5c0276a80cdf338aa781b51fd1e1da2846abe8d4c224736ff
0058e3f67d4e01b872db97a7ca9fb3db1548adee3f311a7885de9da2a5b175133457f74ee23afc45
4359a8269d0123e78aa71abbeb69681b4186d67bee62a97d2c9045e9ef53ca28e535e941c7154bf
4797ceef79c75fb5d2a1d3f81f8ec6e6e269bd4da838cb046bc7ad7e2c5576bb279c926887966df4c
9adca9f5cea33dc42e1ebb7110c320229e271557d09fcccf14a7ccb0d8c33f21e82e9d2cd3214a6fc
8cd1c641af80c55017569e6ebad7eca661a7268363746e14879cddbc6d6f2c342bc020359797523
e1c55fffd2f7f62aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55d
8abb15762aec55d8ab1ef3c5c5c45e58beb7b2e5f5ed40269b6a63215d65bf75b70ea4f4e1cf9ff00
b1c5505e5e860d07cd3abf97210915a5dc16baad8460fc67820b2b814f05f461634ef2e2acbb1576
2aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55ffd3f7f62aec55
d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8a
b15d6211abf9cb41d39c39b6d1e39f5a9a9b46672a6d2d95bc76966703f9a30dd862adf9ae38ac35
1d03cce5515ac2efea1753b9a30b3d538c0ca0f819c5bb1aff00262aca715762aec55d8abb15762a
ec55d8abb15762aec55d8abb15762aec55d8abb15762aec55fffd4f7f62aec55d8abb15762aec55d8
abb15762aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8ab17d4bc930dfeb573
aedbeb5aa69b79790c16f70965708b0b25a990c7449239284195ebc695ae2ac634df24dd79a746b
c8f54f36ebc617bbbeb37892e2d7898ad6f25850ef6a483c516a7c7714c55e9e05053afbe2aec55d8
abb15762aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abfffd5f7f62aec55d8a
bb15762aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb1
5483ca202e9d780741aa6a9efd6fa638aa7f8abb15762aec55d8abb15762aec55d8abb15762aec5
5d8abb15762aec55d8abb15762afffd6f7f62aec55d8abb15762aec55d8abb15762aec55d8abb157
62aec55d8abb15762ac57579b5fbcf33a68ba56a8ba65ba587d7246fab25cb3b99fd3a55d850003c
3be2aaaba2f9bc13cbcd018781d3e11fa9f156bf41f9bb8f1ff151aff37d42debfae98ab8e85e6c26bfe
2b900f01636bfc54e2a873e5af39135ff1adc01e034fb0fe319c55aff0cf9cbb79deebfee1fa7ffd51c55
bff000cf9c7fea76baffa40d3ff00ea8e2a83d33c97e6fd3e09611e77b93ea5c5c5c7c3a7e9e37b899e
5ef09dfe2df1546ff867cdff00f53b5dff00d2069fff00543156bfc31e70ff00a9def3fe9034effaa18abbfc
31e6fa7fca717b5f1fa8e9bff64f8aae1e59f355287ced7e4f88b3d307fd8ae2ae1e57f34577f3c6a47d
bea9a50ffb13c552ff0030697e6ad1341d4b5787ce5a84d3d85bcb731c525ae99e9b344a5c2b05b4
53434a1a107156763700e2ade2aec55d8abb15762aec55d8abb15762aec55d8abb157fffd7f657e5
7e996d0792bcb7aa7d61efb50bdd22c5eeb506b8b8b85b8792de376947aed5f8dbe2a9556df1566
52469346f1482a8ea5580246cc28771b8c558f68fa75ae95e63d46dac9d96d9acace436ad2cd2f17
32dc82ffbc2c072000f84fecefdb1579afe7bf9835dd135cf2641a12df5ec97c9aefafa2e9b7d2585c5e
0b5d35a6408d1eecf1b0e71a81c8b6cb5634c5523d39e6bbd4ff2a2d64f3cea1af47e6fb3d446adaa
5a5f4f670dd4d65a5c411a185193d22b22b3942a24f559fd51cbe10aa234df33dc691e66d4acfcc1af
35fe977563ae5de95e68b5d448b37896e638cdaea56d2328b5b9b577486de58b8a49f1a9e12d531
564767e74d53ca5f925e4dd7ef264975fbcd374d139d5a491a5b8bc9ecfd7914b48e9fbd7656fef24
8d7aefcb8a32ac4f43fcddf30a1d6bcc764d637ba4ea3736b751e9d797722fd4921610000026060f0
02220574d464301000000000001000000000000000d00000000200000c8320100c8920100e7caf
6da8faab396654b44b805253e9d17d477e5c8702aabde7e78798ada08b57792c2cd0e98646d275
288db137ebacc7a74a0c8b3b86f491f7f45e585cfc6923232e2a8fd47f3cefb43d7754d12fe4d32f3f4
6ac905c5ddb8960582e2da6d3e39a496392469382457af712051c16287e09e4fde346ab2af28f9cf
58d63cf777a1de6afa65ee929a35aea1a7be9f1b2addc935edec2f342ef2372558e1879aaf34567d9
e84555627a87e636a1afc1e58d51353b5b4b397ccba5dadde9f6cf35bded948d2dcc571677dc9f8b
6c89f090b56e5f071e0f8aa16dbf3e35d9adaeee16dad2e2de0b8b1956e2dd2b2b69f7b6f3492491d
b49708f2fa5245c59032dcfa64ff00a37ac862c55e87f97be77d53cd5a9f98ac35582185b4bb8e366f
6a0c96f2da3cb2a4522cc1daac5630248a448668a50e1a3f4fd291d567b8abb15762ac637ff95863f
94e8a6a3dc5d0a62ac9f15762aec55d8abb15762aec55d8abb15762aec55d8aa41e79dfc99aff00fd
b3ee7fe4d362a9f2fd95f90c55bc55d8abb15762aec55d8abb15762aec55d8abb15762afffd0f6df95
7ca16fe52b5b7d3ec352bfbad36ceda3b2b3b3bd99668e186001502d115aa1542d598ed8ab209a3
33432441da332295f5233475e42955241dc76c5527d0fcb71689717376da85eea577749144f3ea1
2acacb1c05caaaf044005646276c553692d6d669639e586392786be94aca19d2bd78922a3e8c556
0b1b10c8e2da20f1b33a3045aab39ab1069b127a9c556fe8dd38fad5b487fd2052e3f769fbc00d7e3
dbe2ebdf155778a29578488ae80860ac01155350687c0e2ab16ced1492b046a4a7a44845158ff97
a74f6c55a6b2b268d626b789a241c510a29551e005361b62abcdbc058b1890b1ea788a9db8feadb
156c4512952a8a0a2f04200145db61e036c55c6289aa191482791a806a7a57e78aa46fe6ef27d68f
aad9b156ff007e2351d4fd3b838aa99f3cf9362247e98b505aae78b75f7341d715535fcc4f2531a2eb
3013fecbfe69c55b1f985e4c6a81ab45b7f93276ff00638ab8fe61793875d513fe45cbff003462a947f
8a7cb47cd635d1a9c7f53fd1c6c8afa73fa9ea19c4a0d3d3a71a7be2a9cff008f7ca5ff005711ff0022a

345

6ff009a31568f9ffca4012751d875fdccff00f54f1568fe60f94475d47a7fc5171dff00e79e2aa2df995e4
c53c4ea0e4d69b5a5d9dfe8871554b4fcc4f27dede5bd841a830babb90416cb2db5cc2af2904850d
2c4ab534db7c559462aec5527f30f9860f2f436924969757f3df5c0b4b5b4b244926794c724c76774
500244c492d8aa507cf17e2b4f26ebe69d3f7565bfdf798ab47cf3a88e9e4af301f94761fc6f462ad8f
3b6a645479275ff00f81d347ebbec555079c75422bfe0cd707b1fd1a0ff00d4762a84d675bd5759d1
eff4aff09eb507d76de4b7f54fe8d6e3eaa15ad3ebc2b4ae2a8f5f34eaa001fe10d636dbed69bff65b8
ab5fe2cd5ebff002876b34f1e5a67fd9762ad1f35eb23a7933583fecf4cff00b2ec55517ccbadb8a8f28
ea8becd369a0ffd461c55d379aaf2cfeaf26a3e5fbeb4b59ee2ded0cef2593847ba956142cb1dc3b53
938ad01c5592e2aec55d8abb15762aec55d8abb157fffd1f607e5fe992ebbe41f2b6b5ab6a7a94ba9
ea5a4d85edeca2f678f9cf716d1c8e78a32a8ab31d94018ab22ff0b5a7fcb7ea7ff710baff00aa98aa1
b48825d3fcd1a8e9c975733d88b0b3b844ba9e4b8e334935ca315321622aa8bb57b62af3efcf0f36
eb9e57d6bca29a55c6a42c6f23d6e6d4ec3476805d4f1e9fa7b5ca14f5d1ea6361cc85ab32823849f
60aa9158de79c6ff0051fcb0b7bef3ecf7d279e2c6f67d4af74536d1d817b4d2e2911ecc3404f1f5794
9561f116f89553e055533d33cdbafd979a2eb4df346af37a17b69acdde81ac59cb049a46a16b04b1
aa2b2f157b3bbb4e691b21e51ccccedcd9fe04553df2bf9e6fb4efcaefcbad4f5bb85b9f30f9aacf4e85
ef75297eaf09bebab06bc7699d5085e463654555fb6c88b8ab1ad47f37f55f29379c759d48417df56f
a9cd67a37d755e288a684da95cc56b32c43d50c626f88855a132f6e0554eae7f3b274faf25ae832cd
710c50de59411b199eeac1da3135c5bfa40acfe8f36f5608dbeb28c9c7d23c97157a9691a8c3abe9
361ab5bba496f7f6f0dd44f19628c93a0752a59549041daaaa7db154662aec5524f2757fc2da4d7fe
59a3fd58aa778ab1ff3079e3cade55bab6b3f306a02c65ba8de789a48a531086278e379249550a46
8ad2a0669195579ad7154f279e3b7b792e6427d1891a4728acedc5454d154124d3b01538ab70cc
93c31cf1d7d39543a72528dc58545558020fb118aa57e5ef33e89e6ab14d4b41b86bbb0911648ee
3d29628dd59997e13222d4828c180dd7f6b154b34efcc5f29eada80d334fb9b89af0ba47c7ea37a8
bca40196aef0851c94f3049a70f8fec8ae2acab15762aec558979f89587cbdefaf6983ef9b1565b8ab
b1562be70a8d57c994151fa737edff004adbec559562a93ebbe65d3b407b0b6b9125c6a5aacc6db
4cd3ad82b5c5c4891b4afc03b2a8091a33bb332aaa8eb5e3555bd0fccda37982ce0bbd3ee00699a
588dacd48ee639ed9da29a278c9e41e3747571d8a9c552cd63cffa2e91a9da694b0dcea3717691c
e5b4f44b848609ae52cd6593e3078095e8cc81f80059f8ae2a8ed03cdba1f98f42d3fcc16372b1d8e
a491340b3ba24aaf3a87589d431024a1dd2b5c5520d63f35742d2aee0b6b6b0d475986e677b282f
74a8a2b9b77bc863b8965b75632a969234b594baa834a05fb6cab8ab23b3f3368f73670ddcf731d8
99a3330b7bb9618e658c13f1300ec00a0af5f9e2a8b9f57d2ad8c82e6fade1311512892644e06404
a86a914e406d5eb8aa3715639e7634d22d7feda9a48ff00b98dbe2ac8f15762aec55d8abb15762ae
c55d8abffd2f62691e43f30685a458687a6f9d7508f4ed36de1b3b357b4d35dd60b7411a06636df11
0aa013df1546b795fcd8dff4dc5fa8ff0026cb4cfe36a71546e81e5cbdd22f6f351d4b5cbad6ef2ee386
0592ee2b5844515bb48c1556d61841a995892d5c5534b9d2b4cbcbcb5d42eeca09efec4b358dd4b
1abcb0190716313b0250b0d9b8f518aa1a2f2c796eddece48347b28a4d3de496c192de2536f24e4
995a2a2fc05c93ccad397ed62aa6de51f2a3a5dc4fa1e9ed15f0617b1b5ac2566123891848a568dc
9c736af56f8bae2a8cbed1b48d4f4f3a4ea5a7db5ee94420363730c735bd2320a0f4dc15f8480576d
b1542dc7957cb176f24b75a2d8cf2caf1cb2bcb6b0bb3c90a18e3662ca6ac884a29fd95f846d8aba3
f2af962285ade2d16c1207e3ca25b58421f4fecfc2169b76c55354448d1638d4246802a228a0006c0
003a018aaec55d8ab1ff234cb3f94b49910d408781ff5a362847d0462ac8315609e75f257f8c7cc7a3
c1a95b3dc794c69fa9d8eb71a5c085278ef9ad59609507c6f1bfa043852bfb3d5790c55e716bf94de
7491604d5d26b99e26d49ef2e0eb33b477175f543159dc450a084421a408dc3e22a7773f0825547
c1f97bf997091753ddadecf15c47733412de3a2de69ec2c09d3588a85311b79b8c9f65f9784d37155
2ef25fe577e61796b4cb0d3af2ced6ef4e885b5bde69035296384a56f819a39123aab43ebc2d4555
32518f2e6884aace355f2c79aa6d675fbfb3b54115deade5ebeb274b9f4da4b7d35e1fae06000e354
475552487afc54c55867fcaacf3fc3a7ac7a47a7a6eb2f6cb049a81bf95c826caf629072a31f8a592d
6ae072a47cfac68a5566bf97de46d4341d76e757d4ac8db45269d6b0d94526a536a725bce6e2f26
b94e522a0a1134401550a15046a3846b8abd2b15619f98ee62b3f2f483b798b47534f092ed13fe36
c5599e2aec558a79c891a9f9308ffabe8fc74ebe18ab2bc558979afca33eb1aff967cd9a6c91aeb3e5
79aededa0b82cb6f3c3a85b9b7991d91599481c5d182b6ebc78d1b157995ff00fce3fea97d71aa5e
47abdb596a5ad0792eb54b78985cdbcf773ea93dcfd598fc417fdc82c6a0bfc4b17c7f6be155374fca
1d5feade5efabbe99a3eada35e45a826a9a5fd6d6e2191ee84b7f1c6d33bb4915ec43d39a395b806
3cf8b32262a9669df90dabd8412daa6a5631da5d68d1e87736b142eb1076b3fab4b7a8282970182
b23752bc959bf6b15659a77e5ceafa641e57b28af2d65b5f2ff0098b51d764959645966b7bf5be0a9
4008f501bd3c9abc5bd3ff002fe15587da7e41ea905c47712dce98ec91c110fdc392ab00d66a1491b
027544dbfe29ff2978aaad6df90fa819b4b6d4ee34abcfd1daa69ba8bdd4905c4b73736f65cde4b79
7d595e3003b9f4b8227c3fde0e5b955ee9d315639e7620691695ff00abae934f9fe91b7c5591e2aec
55d8abb15762aec55d8abb157ffd3f7f62aec55d8abb15762aec55d8abb15762aec55d8abb15619f
977a869f17946ca392ee149165bc0c8d22020fd6e6ea09c5593fe96d2e95faf5bd3fe32a7f5c55a3ac
692054dfdb53c7d64a7ebc5561d77445fb5a95a8a6c6b3c7ff3562aa67cc9e5d0483abd9023a8373
17fcd58ab5fe28f2d569fa66c6be1f5a87fe6ac55aff14f967feaf561ff004950ff00cd58abbfc53e58e9f
a6ac3fe92a1ff009ab1577f8a7cb1ff0057ab0ffa4a87fe6ac55aff0015795ffeaf761ff4950ffcd78ab12f
3febda15fda6816d63aa5a5cdcb798b44290c371148edc6fe2268aac49a0dcd3157a262aec558a79
d43c73f962f7d2964b6b2d6167ba686292631c46caee3e4cb1ab35393aad69fb58aa3ffc5ba2f8dd7

fd20de7fd51c55c3cdda29e86ef7f1b0bd1fae1c556ff008c344e5c697a4f88d3afc8fbfd0a62aa6fe75
d1509061d49a9dd74ad4587e16f8aac93cf3a346dc7eabaabfba691a930fbc5be2ad7f8e74922a2c
b573ff6e7d4bfec9f1577f8e74aff00961d63fee0fa8ffd93e2adff008e34aff960d63fee0fa8ff00d93e2a
d8f3ae9a7a69fab9ad7fe951a80e9f383154a35ef3126b70d969961a56ac6e1f52d39f9cba6ddc10a
a41790caeef24b1aaaaaaa93527156778abb15762aec55d8abb15762aec55ffd900000008400108
24000000180000000210c0db01000000030000000000000000000000000000001b400000400000
00340000000100000002000000000000bf000000bf0000af4300006843030000000000008000000
080fe7fe9430000008000000080ff7f9a432100000008000000620000000c0000000100000015000
0000c00000004000000150000000c00000004000000510000005c4301000000000000000000d20
1000034010000000000000000000000000000000000005e010000e8000000500000000c0400005
c040000003f0100000000002000cc00d301000035010000280000005e010000e80000000100080
000000000000000000000000000000000f90000000000000000000000ffffff00fcfcfc008080800050
5050004646460044444400454545004c4c4c004d4d4d0053535300565656005151510052525200
4f4f4f0054545400555555005f5f5f005d5d5d005b5b5b005a5a5a0062626200686868006c6c6c006
6666600727272006565650074747400787878007c7c7c007b7b7b007f7f7f007a7a7a008c8c8c008
a8a8a0085858500838383009292920091919100979797009d9d9d009f9f9f00a1a1a100a2a2a200
a7a7a700a4a4a400a6a6a600a5a5a500a8a8a8008e8e8e00ababab00fefefe00fdfdfd00d8d8d800f
bfbfb00f9f9f900fafafa00e5e5e50099999900ededed00e0e0e000ececec00dfdfdf009e9e9e00ebeb
eb00dbdbdb00a3a3a300e9e9e900dcdcdc00e6e6e600f4f4f400f7f7f700f8f8f800f2f2f200f5f5f500d
ddddd00a0a0a000e4e4e400eaeaea007e7e7e009c9c9c0082828200d6d6d600cecece008989890
070707000dadada006d6d6d0071717100d7d7d70063636300d9d9d90094949400797979009595
9500a9a9a900d2d2d2004a4a4a00b6b6b600848484008b8b8b00b8b8b800e8e8e800818181002
7272700b9b9b90069696900c8c8c800adadad00888888006f6f6f00c2c2c20029292900bababa00a
fafaf00f1f1f100353535009a9a9a00616161006e6e6e00e1e1e1003f3f3f00cdcdcd00575757004e4
e4e004b4b4b00eeeeee00b4b4b400aaaaaa00b0b0b000f6f6f600d3d3d3007d7d7d0038383800b1
b1b100bebebe009b9b9b0067676700cfcfcf0098989800e2e2e20075757500c1c1c100909090005c
5c5c00393939006b6b6b000c0c0c00f0f0f000424242005e5e5e00cbcbcb008f8f8f00b5b5b500484
84800b7b7b700aeaeae006a6a6a00e3e3e300b2b2b200d0d0d0002e2e2e00c5c5c500474747001
4141400e7e7e700c7c7c7003232320025252500d1d1d100acacac003e3e3e00cccccc0096969600
3d3d3d009393930017171700c6c6c600bfbfbf0041414100dedede00b3b3b300222222006060600
073737300d4d4d400232323002c2c2c007777770064646400c3c3c30043434300bdbdbd001a1a1
a00bcbcbc00f3f3f300bbbbbb00cacaca00d5d5d500efefef0058585800c4c4c400c0c0c0007676760
08686860013131300595959008d8d8d000d0d0d00313131008787870036363600c9c9c90028282
80040404000333333002b2b2b00343434000909090049494900181818003b3b3b003c3c3c00161
61600191919002d2d2d003a3a3a00020202001d1d1d002f2f2f002a2a2a00303030002121210011
11110012121200242424002020200015151500070707000b0b0b00373737001e1e1e002626260
00e0e0e001c1c1c001f1f1f00101010000f0f0f001b1b1b0001010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
0101019923c6a9b983b983538aa96060a98a53c5ac538a8aac6bb16bc98e6f6fb2c2c4697f726c72
81729caa32302c2c3032aa2c2c2c2c2c2c2c2c2c2c2e2e2e2e2c2c2e2e2e2e2e2e2e2e2d2d2d2d2
d2d2d2d2a2b2b32288418010101010101010101010101010101010101013334014a4539454545
4545454545a5664366a545a566a56643403d3d3d3d73c7c794c34649737349c34a828282828247
37383636363836363636363636360202020202020202333601010234010133010201020101330
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010000010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101c050340101330101343301010101333401010101333334340133340101333434010
10202330101330101013333010101010101010101010101010133330101010101010101010101
01010101010101010101360101ac5836010101010101010101010101010101013836010148313f
8080808080808080804c2b2d2e2c5f32aa2c2b755e5c8b3f2b3a5e98226dcc63515c98d21f205d20
1e844f1f0303031f4f1f1f1f1f1f1f1f1f03030303030303032467cc6d236dcf64cf236754031f5e01010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101000001010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010199500101010201010101010101010101010101010101010133343433013333010133
33010101010101010101010101010101010101010101010101010101010101010101010101010
1010101010101010201013801acbd010101010101010101010101010101010101010134011e4b0
1333333333333333301010101333333330101010133333333013437828247474734384a737e7ec
7c77ec7c7c7c77e3b3b3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3b4e3d3da5a54345a53e563c44c
04f4a0101010101010101010101010101010101010101010101010101010101010101010101010

347

10101010101010101010101010101010101010101010101010100000101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
0101010101010101693f0101010101013333333333333333343434333334343401010101013301
01333301010133333433333301013333333333333333333333333333333333333333333333333
33333010101010101010101340102339718010101010101010101010101010101010102010136
011b3c023333333333333333010101010101333334343301010101010133343301010101333301
01010133330101010133333402010101010101010101010101010101010133010134340102330
13638014721490101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010100000101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101019b50010101010102010101333301010133330101010101333301
01013334330101010101333333010101010101010101010101010101010101010101010101010
10101010101010133333333333333330136010101979d38010101010101010101010101010101
0101020201011e563301010101010101013333333301010101010133343333010101010101010
13334010101333333010133010101013333330101010101010101010101010101010134023401
3301010138010101024a318201010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101000001
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
0101010101010101010101010101010101019b280133340233020101013333010101010101010
10101013401010101010101010101333333010101013333333301010101010101010101330101
01010101330101010101010101010101010101010134010133348e16010101010101010101010
101010101010101023301371d5201010101010101010101010101010101333301010101010134
33333333010101010101010101010101010101010101010134343434343434343333333333333
3330101010101010133010101013673314a010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101000001010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101655001013433010101010101010101
01010101333301010102330134340101013333333333010101010101010101010101010101010
101010101010101010101010101010101010133333333333333333401343401b1180101010101
01010101010101010101010102330101362041330101010101010101333434330101010101333
40234330101010101333333010133330101010134020101010101010101010101010101010101
01010101010101010133010101010134010101344921820101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010000010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101016588330101010102010
10101010101010101010101013333010101013301013301010101010101330101010101010101
010101010101010133330101010133330101010101010101010101010101010101330101016b8
901010101010101010101010101010101010133333301b83c36010101010101010101010101010
10101010101010133333301010101013333330101013333010101010101010133333301010101
0101010133333333333333330133343401013334330101020146d237010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101000033330101343301343301010101010101013301013333010
23401010101330201013801343401013401010236013434333301020101010201010201010134
01013433010133330101013401343401010101010101010101010101010101010101aa8002010
20133010101010101010101340102020101020101010201340134013401333401480201340134
33340101010102013301010134010101010201333401010102013401010101010101010101330
1340101b11a01010101010101010101010101010101010133013301cb560101010101010101013
40134010101010101380101333433010102013336013301010133330102330136010136010133
0101333301020134010138020101020101010101010101333301330101347e634701010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010100000101333401010101010101010133333301023
30133333601010101373401330101010133013337013433013401010101010101010101330133
01020201330101013301013433013434340101013447010101010101010101010101010101010
18071010133013401010101010101010101010101380101011610000026060f002220574d46430
1000000000001000000000000000d00000000200000c8120100c89201003401010101010201010
134014a0101010101333301013601340133333302360101010202023334013401010133010201
010101010101010101013301336f1a330101010101010101010101010101010101330133018d56
01010101010101010101360101013701470101343301010101380134010136010133333401370
13601013734010102330201340136013601333801013801340101010101010101333301010101
33942347010101010101010101010101010101010101010101010101010101010101010101010

10101010101010101010101010101010101010101010101010101010000820101020136020101
01010101010101010101013601333333010134340134013433010102010133340101340101363
40134010236013302470134340101013634363301010101340133020201013401010101010101
01010101010101010101307a0134010133010101010101010101010102c62962010101299c7399
86017f810141aa4d013e42719760c43859294901c7816f73a5aa60c4c6a9a6356f3b45423d73627
e01330101010101010101010101330133879d3301010101010101010101010101010101013301
33011b56010101010101010101013333010201480136013347014701023301330138013801340
10101013401013401010102010101020102010136013401380201020101340101010101010101
0101010133c3d28201010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101000001340102010
23401010133333301010101010101380101010138370101330148020134340101023301010201
38020101010101340101010101340101330133330101013401010101010101363301013401010
1010101010101010101010101015f5b0133010101330101010101010101010133c70c9b0137506
14f2fd2bc36cf643e13976d3c0b5e077b9c76c706182a4a481119344407b46a86651939065204bd
6da6bf8c3401330101010101010101013333013371190101010101010101010101010101010101
0133013301b84133010101010101010102010148014e3f2730464d88b9626b49644c47be5f2ed44
642b987b5738662450171b201b28fa2019f627a2a415fa0a66594424c4a69863601010101010101
0101010101334a544701010101010101010101010101010101010101010101010101010101010
1010101010101010101010101010101010101010101010101010101010101010100009e53c5a0a
9838a7aa0a0a9a96083c6c64459833c01014702010201013738010101013301010101010136360
13401333833010233013834330133483301333401363401010133340202340101360201340101
01010101010101010101010101013244010133020133010101010101010101383401b8433601b
7a2383864630188808dc80129841748195d6b199f03014e4a01cf42017e0a335e65b931471a9c15
33375912013433010101010101010101013433013365200101010101010101010101010101010
1010101010101194b33010101010101010101343301459dc24e8f4f9407b45d8858142797cfa283
7456093ccfb84c0383235b078347a5d88a34641bb9d86608a6881e8807cbb1121a4a0101010101
01010133010101334a54470101010101010101010101010101010101010101010101010101010
1010101010101010101010101010101010101010101010101010101010101010101010000741c0
31d1d841bbc671f1d5d8d196e77895a906a3b01010101010137010148363301013601013434380
13801013436010102360136010133363601013801333601330101010101330133020101340101
010101010101010101010101010101016c44330133020101010101010101010102010137b7cc53
01bdd2888a27af012b428d160154843101926ed45d302d01363333215f024e7633256f8a50369d6
cb7ca6f78113633013401010101010101010101010133995101010101010101010101010101010
101010101010101193e01010101010101010134013433980601013305a09544ad25e64d0146a9
013ceabe5a4d3015969701ce72103601469578012b245bf0011a8a3024233d013d6a7701010101
01010101010101010101465448010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010000
7c48013301013801010101010101333333014a8846373401013382383782013301c333c3018248
010134948282010137360134330201370101483447013833013301474a0101380138013334013
33434010101010101010101010101010101016c3c3301013301010101010101010101013801341
37f648d2d22db1c840c8f6a29c9bd3e903584600c632d13404c606401012330016b964abd3a3018
be673e6a5ed8cad9699e3601010101010101010101010101336254330101010101010101010101
01010101010101010101198c01010101010101010101380101c80b01010295690e7e8b27953103
6b3844d3c89412402e891b3b360872133834389a5b012a8478e701bdb930d2d254cf8acb580133
33010101010101013301010149d23701010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
00000e013801013301333301010101013333013601ad73340134013301c71c125b0127188c73b8
966036565a3f3a2a488f10653601360141909652826a214d5851271d3f882c606f3a4c9738010201
013401010101010101010101010101010101016c4d013301010201010101010101010133010201
1501b9f74bbe6c94a62f758e520159b5a2015965051cb98e01ac9cbe363621aa02b4623872655c6
22653374b9cd4352b88830101010101010101010133330133339b9801010101010101010101010
101010101010101010101b89e01010101010101010133013836130b0101010550744fce39752ea
3c441ecb80201db235a80692c6f6e6bab3b014ad69e348dbcacf86c075f542bb52f0b3f90852b3333
010101010101013301010194cc3701010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101000
07d0101010101370101010101010101013301363f46023401333334019de2015ef6c001337b0433
347f2437360886995095480101480a89c94c43763f6ba77a706d3f4ec20b7278531334013701023
701010101010101010101010101010101019c390101010101010101010101010101010133a5055
9540848333601013301b44501013601023401b71c4966013801342e4b205f357f7e010101010101
0101010101010101010101010101010101010101010101017f3101010101010101010101010101
0101010101010101018d9e0101010101010101010201340228ab010237ae6052d4be3301b1b10
16d8d016f9e1242868201717f94b161c90136de663db2b43c719f8ea02b8247c2997ec5329c0101
010101010101010133013349cc8201010101010101010101010101010101010101010101010101

349

01010101010101010101010101010101010101010101010101010101010101010101010101000
0070202013301010101010101010101013401018b43010134010133336e14b4bb5037010289bd
470183480144c12b3397684636014ebf3d380138bd2ec364a6742f018ba1314786e16d020102330
10102010101010101010101010101010101016c4d0101010101010101010101010101480136ac1
a1c634e480101013801c35f62c7010101330102572b6f4c37014701755d201bbc4c3f02010101010
10101010101010101010101010101010101010101010101017f980101010101010101010101010
10101010101330101331b9e010101010101010101010101349492b5946d980201013401330134
018b50c6b344db3e013301343601335b6bcc52d98e8d623e01340236010134010236014a010101
01010101010101010133013349cc82010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
000dd010101020101360101010101010101010234ad4e010101013401331ef01a7c3c010137890
b0102014788f5107301a6f4c30134381740017f3677298281c9e89c2bae693d69e75f4e013601010
10101010101010101010101010101010101016c9e0101010101010101010101010101013601020
134370101010101330101828201013433330134380101c70101010101480234c30137010101010
10101010101010101010101010101010101010101010101330199980101010101010101010101
0101010101010101010102583c340101010101010101330134330194af25293b01333601020136
3301a5246351451978013301013302010243b867bc20644c9fc301010134330102010133380102
01010101010101010101010133c3d2820101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
100007902370101330101010101010101010101340198a501380134013301b8ab3b28ba3d4601
16b748010176f42936340197704334010187288b619418423b6a710e7ac04cc96cc524ca8649010
13836020101010101010101010101010101010101aa8c333301010101010101010101010101330
10134010136013301010102360101344801010233010134330133363334010133010101013601
01010101010101010101010101010101010101010101010101013301992601010101010101010
101010101010101010101010136553e3301010101010101010148010101010101480101013801
01013301460138013401360102013602020102010238020101010147010201013801020201370
133330201010101010101010101010133c3d282010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101000005360101010101330101010101010101370101254001010101340101030f0246f3
8bc53358923640cabb45017f9733a9f137023301014d5b370117ad33488aa501389e35383344ac4
90134370101330101010101010101010101010101010101aa8c333301010101010101010101010
13401370102013701013601333601013401330101330201013601330101010201360138013433
470101010101010101010101010101010101010101010101010101010133339b2501010101010
101010101010101010101013301010134b89e0101010101010101010201370133010101013402
01010133020102010101010101013333013401013601380101010101330134013833010101013
301330101340101010101010101010101010133466d8201010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
1010101010101010000aba04e404d3c78a539393939393939394e45568f4301013301333394b7b
bb592c8be95750e9a9c0dc9bc65c5de7a3381e48a33010134343334c304cf330102013401370101
3401013601010101013301010101010101010101010101010101016c9e01010101010101010101
01010101340101023801013333330101013302333434010101010138010201014701020134010
134010133340101010101010101010101010101010101010101010101010101013333655c01010
1010101010101010101010101010133010101331b4d0101010101010101013301013336014801
34013302330101010101480101480102023401010101020133013301470147013336010102020
1360102363401013301010101010101010133010101334a548201010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
1010101010101010101010000aac280aa9f322e323030303030303030302c329c4a01010137340
13da0d4c4ac0201bec2bea28eca338269c4d4473760715302024833010236372c5b01380101013
60136343301340133010101330101010101010101010101010101010101016c4d0101010101010
10101010101010101360101013633013301333601010133010101010101010133010138010102
33340201020138010101010101010101010101010101010101010101010101010101010101336
9ad010101010101010101010101010101010101010101331b8c010101010101010101013433360
10201363801330101010134013301340201010101010136333436013436343301340101330134
33010134010101010133383601010101010101010133010101334a22820101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010000013701010101013401010101010101013301380101020
10101020101010101333301010201010233013701333401013333010133010137010136010137
01010201020101330101010101330101010133010101010101010101010101010101019c390101
01010101010101010101010133010134330101330134330133340134343301330101013301340
10101340133013434013301340101010101010101010101010101010101010101010101010101
010101017127010101010101010101010101010101010133333301018d9e01010101010101010
10201020101333301013301340136010101330133013634010134010101010134330133013334
010201330101360101010133340134010136010101010101010133010101334a2282010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101000001023633010101333401010101013301013

40101333301360102330102330101013701333301010233013401360101340102013437010134
01010101013333010102333601330102013401333401330134010134330101023302013334010
20199272a322e2e4280422f2d3f882a42283a3a3a3a883f2a2b2d2a2a422d2c5f2faaaa3232805f5f
30aa6981b57f6299867f7f7f7f7f7f7f7f9b997f62659bb572629b7fb5627f869f9b819c9f9f9c819b7f62
62c4b51d2d380101010101010101010101010101010101010233021ec334010101013333330101
01010101010101343301010101333301010133343434333301010133010101013434010133330
1333301010101333301010101010101010101333333330101010134020146cc470101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010000340201010136330101013302330101020101013
33433380101343301010101380101013333020201010133010201010134340101010101013401
0134330101010133010101383401010101010101013301010101013401010101013433010133c3
a54ea59e4d3e78413e3ec65383c653b1a2a2a2b16bc5976fb2b28e8ec9a26fc0c0c2c2c4c471716
9696587c2c29bc0c4c4c4c4c4c4c4c49b629962659b7f86b57f8681b59f72812c2a3f3f88ad5e3a8b
31cf8f8bada0010101010101010101010101010101010101010101361b81c597d46bd497ac97c5a
cac7a7a53538a8a6083c63556414141414b3c9e4d4d9e9e39a59e453d3d43433d40403d3b403d3
b3d3d3d40403d3d3dc7c77e7e7e3b3b3bc7734a483836363882023401014522820101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010000333301360101013601010101010101330133340
10201020101010101333301013401013301010133333402013401330101010234013402010101
34330101010101010133013301010101340101010102010102330101343401343302330101013
40101023401330101010101020101330133333333330101013434333301013301010101333333
33343601479401023333333333333333330101010101010134010101010101010101010101013
3010101330101334801340101010101010101010101010101010137020134012a6d031f1e1c1c2
020cb19bccb1b196e179d6a1717575717929d6a576e198dcb8db8198d1dcbcb1e5d841f841d844f
4f84841f1cbccb8d8dcbbc1cbcbccbcb8d1bb8b81c1e0363d26d6dd264afad278b5e544801010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010100000134013434380101380133330137370134
01010138010102023334340101330102333401013301023333010133013301010102330133010
10133330101010101330101023301010201010133010101010101333334010102013402010101
33013301330101340101013636010133333301010101333333330101010101010101010101010
1010101010138c2864801010101010101010101333333333333333333013333010133333333333
33333333301013302013301360101010101010101010101010101010101010182010134010101
343301010136343433330101010101010101010133333333333333343434473302020101013d3
7383636363636023402363838360234373748484782824a4646c34994c77e3b46c73d3d3bc7430
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010100000147013334014833330134010
10101380101360201020101010101010101010101013301013833010134330201010133333301
01330101363401010101010101340101010101333333020134020102013801010136013301010
10101330234010101330101010101010234010101010101010101010101010101333301013333
0101010101010101330101b52c0101360101010101010101010101010101010133343333333301
33010101010101333434013334010133010101010101010101010101010101010133340101360
10201333334333333333301010101013333333333010101010101010101333301010101010101
01347e30023301010101010101013333333301013333333333333434010133333301010136330
10133010101010101010101010101010101010101010101010101010101010101010101010101
010101010101010101010101010101010101010101010101010101010100003a4c3a8f71010101
01010101360182a6215e509c010101010133010101010134010101340101363402340136343302
01013301330201010101333301333636330134480101010101010101010101010101013601340
10201360101333301013301010133020101383633010136330133343433333333333301010101
0101010101010101010101010134019b6c01010101010101010101013333333333333301010101
01010101010234330101010101330101330101333601010101010101010101010101010101013
40201340136010101010101330101010101010101010101010101333434340101010101010101
333401010101735c38340101333301010101010101010101010101010101010101010101333402
02330101360138013401010101010101010101010101010101010101010101010101010101010
101010101010101010101010101010101010101010101010101010101010101010000857f6bcaa
033340134023401010134b9c2c48622463334010136010102330134014a0101480101013333013
73301023301340134010146010101013802010102340101013301333401014801013801020201
33014701013301013601013301343402013301013601010101010101013401010101010101013
30101330101343301010101010101010136337f6c0102013333333333333333010101010101013
30133010134330101010101010101330101010134340101010101010101010101010101010101
01013301013402010101360233333301010133330101010101010101010101010101010101010
10133343401010134344a8b383301013301010101010101010101013301010101010101343433
01010133333401013401330101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010000

351

7c010101343301010101023301340101340133507334013333010143cab24d337ea2664697d44d
344a83b2874033b471383801020173a940c6943da059343344c53b334a3e3e5b8382023c40c739
37434b3301493e47333301c33d36343b40c733473747373d3e36013b4036010134010101333333
01010134010133010134010101010101333333330101813201013301010101010101010101010
10101013301010101333301010133330101333401330101010101360101010101010101010101
01010101010101020101013301340101010101010101010101010101010133333333333301010
10133330101010101013334010146274834013334330101010101333301010133333333333333
33010101010101010101340134330101020101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010000ab38330101013401013334020101013434013828490

7.8 Asynchronous Transfer of Control


Asynchronous events allow the program to respond in a timely fashion to a condition that has been
detected by the program or the environment. However, they do not allow a particular schedulable
object to be directly informed. In many applications, the only form of asynchronous notification that a
real-time thread needs is a request for it to terminate itself. Consequently, languages and operating
systems typically provide a kill or abort facility. Unfortunately, for real-time systems this approach is
too heavy-handed; instead what is required is for the schedulable object to stop what it is currently
doing and begin executing an alternative algorithm.
In Java, it is the interrupt mechanism (see Section 3.5) that attempts to provide a limited form of
asynchronous notification. Lamentably, the mechanism is synchronous and does not support timely
response to the "interrupt". Instead, a running thread has to poll for notification. This delay is deemed
unacceptable for real-time systems. For these reasons, the RTSJ provides an alternative approach for
interrupting a schedulable object, using asynchronous transfer of control (ATC). The ATC model is
based on the following principles (Bollella et al., 2000).
A schedulable object (real-time thread or event handler) must explicitly indicate that it is
prepared to allow an ATC to be delivered. By default, a sehedulable object will have ATCs
deferred. The rationale for this approach is that the schedulable object may be executing a
method inside an object that is unaware that an ATC may be delivered. If the schedulable
object is forced to abandon execution of the method, it might compromise the integrity of the
object's state.
The execution of synchronized methods and statements always defers the delivery of an
ATC.
ATCs have termination semantics; this means that the real-time thread (or event handler)
does not resume execution at the point in its code where the ATC was delivered. An ATC is
a nonreturnable transfer of control (it is, therefore, more analogous to a goto statement than
a procedure call).
The RTSJ ATC model is integrated with the Java exception handling facility. An
AsynchronouslyInterruptedException (AIE) class defines the ATC event. Every method that
is prepared to allow the delivery of an AIE must indicate so via a throws
AsynchronouslyInterruptedException in its declaration. ATCs are deferred until the thread is
executing within such a method. The Interruptible interface provides the link between the AIE
class and the object executing an interruptible method. A subclass of AIE, called Timed, allows an
ATC to be generated at a point in time (absolute or relative). The relationship between the classes is
illustrated in Figure 7.7.
010009000003d01a01000000737c000000001610000026060f002220574d464301000000000001
008fa5000000000a00000000200000981a0100983a0100010000006c0000000000000000000000
d2010000ec00000000000000000000006a400000a120000020454d4600000100983a01000c0000
00010000000000000000000000000000000005000020030000c40100001a010000000000000000
000000000000e3e306006e4e0400460000002c00000020000000454d462b014001001c00000010
0000000210c0db01000000600000006000000046000000184000000c400000454d462b22400400
0c000000000000001e4009000c00000000000000244001000c0000000000000030400200100000
00040000000000803f214007000c0000000000000008400005643f0000583f00000210c0db01000
0000000000000000000000000000000000001000000ffd8ffe000104a4649460001020100480048
0000ffed09cc50686f746f73686f7020332e30003842494d03ed0000000000100048000000010001
00480000000100013842494d040d000000000004000000783842494d03f3000000000008000000
00000000003842494d040a00000000000100003842494d271000000000000a000100000000000
000013842494d03f5000000000048002f66660001006c66660006000000000001002f6666000100
a1999a0006000000000001003200000001005a00000006000000000001003500000001002d000
000060000000000013842494d03f80000000000700000ffffffffffffffffffffffffffffffffffffffffffff03e80000000

0ffffffffffffffffffffffffffffffffffffffffffff03e800000000ffffffffffffffffffffffffffffffffffffffffffff03e800000000ffffffffffffffffff
ffffffffffffffffffffffffff03e800003842494d040800000000001000000001000002400000024000000000
3842494d0414000000000004000000023842494d040c00000000083b0000000100000070000000
390000015000004ad00000081f00180001ffd8ffe000104a46494600010201004800480000ffee000
e41646f626500648000000001ffdb0084000c08080809080c09090c110b0a0b11150f0c0c0f15181
31315131318110c0c0c0c0c0c110c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c
0c010d0b0b0d0e0d100e0e10140e0e0e14140e0e0e0e14110c0c0c0c0c11110c0c0c0c0c0c110c0
c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0cffc0001108003900700301220002
1101031101ffdd00040007ffc4013f00000105010101010101000000000000000300010204050607
08090a0b0100010501010101010100000000000000010002030405060708090a0b10000104010
30204020507060805030c33010002110304211231054151611322718132061491a1b1422324155
2c16233347282d14307259253f0e1f163733516a2b283264493546445c2a3743617d255e265f2b3
84c3d375e3f3462794a485b495c4d4e4f4a5b5c5d5e5f55666768696a6b6c6d6e6f6374757677787
97a7b7c7d7e7f71100020201020404030405060707060535010002110321311204415161712213
0532819114a1b14223c152d1f0332462e1728292435315637334f1250616a2b283072635c2d2449
354a317644555367465e2f2b384c3d375e3f34694a485b495c4d4e4f4a5b5c5d5e5f55666768696a
6b6c6d6e6f62737475767778797a7b7c7ffda000c03010002110311003f00f554924925292492494
a41ca635f56d734386e618771a39a43bf95b7e96c4651731af1b5e0386860891a6a125386d7f5e75
20ddd370df6d8d1eb817987900683752eddb9df43d4fa0a4c7f5a71aed3818b56d6411eaee7896c8
c7dfb19e86d7fe8dfb3d55b26aac9712c04bfe96835f8aa4e7d43a835cd2ddb44639602dd0d80592
eafff0061d95edff4d6a4a6a4754dc583a66286d437d40d820bcfeec55ecd9f9f66c5a584d218f73ab
65565843ec0c3ba5e58cdf2e86eefdddffe1188be853b437d36ed06408113e2a4d635a496800b8cb
a0449e24fdc92992492ad9cdb8d21d5640c52c76e758e68734887376b81757f9ce6bbe924a4ef78
631cf2090d0490353a7828e3decc8a59757f41e25b3e1e20b65ae6feebd9ec7fe62152fbed646d86
ec8f56c105ce8fa5e87d26b3fe33629e1e3371316ac5641650d15b2047b5bedaf41edddb1253ffd0f
4efb43c805b45865e59f9a0800edf57def6fe8dc9cdcf1ea45161f4e36c6cf7cffa39b3f37fe13d351aa
c2cae0b2c9363c7bbdc75738ee96ff83fdcfe42cffd8f5b6a75632ba845465a5b73a75ff471f4d8dff46
efd1a4a7505af2f0df49e016eedded807fd1fd3ddbffe8213f34575b6dbeab2961dc6c73b691586075
9beef4defdac7358a962f48651918f71c9ccb2daab1b9cfb1c58f1eff006ded76edcedcfddfe62b5921f
92da030df41f53717b36b480d0e3fa6f543ff004567f37fbe9298d1d63032a7ec767da8830e156b1f4
b53bf637f31c8df6ab3fee35bff0043ff004a2066613ed0c6befbf61325d5ed0e0443d866aaf7fd367fe
8bb3f46ab0e96d3f4f373dc65a410e708da5fc7b3fc232cf4edfea7fa4494e87da6cffb8d6ffd0ffd2886
6c71c86dbf65b346b81315cc92cdbfe1377e6aa47a4b4b1adfb7679dbddce71921dea35cf8adbf9df
ba90e9d8acb855f6ccf0e7b0b995fa96010c21a5ed86fe6faccfa5fce7f2d253a3f6ab3fee35bff0043ff
004aa6fb559ff716effc0fff004aacf1d22a86fa9999f616bc5825ef30e0df4fdb2cf6b7ddbf67efa97ecd
04c9cdcf3f460ee703a6dddc3367bf67ee7e7da929b8732f75ada6bc67873812e7bcb03183f34bf63
deff7c3f66c67fc67a6895e37b8597bbd6b4704886b7fe2abfccfeb7f3bff0008abe3d94e2594e3d8fb
5d3532aaedbc38b9e6b96fe9ae2ddbeb3f7b3e9ff3cffa0afa4a524924929fffd1f4d66750faabb9bbbd
2b76163cb480459b455db77bb7b535bd47069b0d56dec63db1b9ae3046efa1bbf777fe6a1d6ee9d
e8d3631914bb60a7d8e0c13b3d0daddbb58df757e9a95cee94db5e2f38edb5fb45a1e581ce90595
b6cddee77b5ee633724a4a33310c7e999ee048f70e01f4e7fcff0062282080419075042aa70fa5dcd
6cd1458dd1ac9631c3d9f45add3fc1ec47a5d41ada282d358f637646d1b7d9b1bb7dbecdbb125244
9243bdce652f7374735a483e7092922a76d771cc0e1ccb5cc3ba06c67b2ddedd9f4ff0058b7ff0002f
e6d58f4ecff004aefb9bff905996f58e994daefb4e63a8b2adecdb6068900fb8b7d8777f32fd9fd4b125
3ae9217a767fa577dcdff00c8a1e1dd658fc963ceef42ef4da620c6caadf77fdb8929b0e6b5cd2d700
e69d083a82aa5b8d732a7d7439c6ab1a5a581d0f602237635af9f77ee576fb3fe12bfa0ae24929cac
7e995da5f6579f9877386f61b034b48006d2cf4dafaf76d49bd08fb0bfa8663dd59f6bbd400c4f0ff66d
7ad0b6aa893738fa6f6348f54188107e97e6b9adfa5fa442e9afb9f8353ef7075a413646e80e93b98
df5432dfd1fd0fd2fe97fd224a7ffd2f41adfd28369adadb4561ecf49a45db4126b6d12d77b5b5eff004
bd2dffa36225e3a29c9b9b906a6e43c0f583dc1ae7343606edc5bbdaca9eefea6f5ced5fcee2ffe1c6
7fe7ca15feb7fd2ecfead9ff9ee8494dbbe9faaceb36de714db8c0b36b9eddec0dfa4cdbbb7a361627
41f5fd4c26506e6b8d87d320b8386eadeed80fb1cdf51ec7acb6ffca991ff001ceffab577a27f48bffacff
cad494eca85d59b2a7d60ed2f6901d131239853492535bd3ea1fe9eaffb68ff00e974de866f7baad7f
e08ff00e965692494d7f4f3bfd3d7ff006d1ffd2a962e33a83739eff51f7d9ea3881b403b5956d6b7ddf
9b57ef2b0924a5249249296e74292749253ffd9003842494d040600000000000700050000000101
00ffee000e41646f626500644000000001ffdb008400040303030303040303040604030406070504
040507080606070606080a0809090909080a0a0c0c0c0c0c0a0c0c0c0c0c0c0c0c0c0c0c0c0c0c0
c0c0c0c0c0c0c010405050807080f0a0a0f140e0e0e14140e0e0e0e14110c0c0c0c0c11110c0c0c0
c0c0c110c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0cffc000110800b2015e0
3011100021101031101ffdd0004002cffc401a200000007010101010100000000000000000405030
20601000708090a0b0100020203010101010100000000000000010002030405060708090a0b10
00020103030204020607030402060273010203110400052112314151061361227181143291a10
715b14223c152d1e1331662f0247282f12543345392a2b26373c235442793a3b33617546474c3d2

353

e2082683090a181984944546a4b456d355281af2e3f3c4d4e4f465758595a5b5c5d5e5f566768696
a6b6c6d6e6f637475767778797a7b7c7d7e7f738485868788898a8b8c8d8e8f8293949596979899
9a9b9c9d9e9f92a3a4a5a6a7a8a9aaabacadaeafa110002020102030505040506040803036d0100
021103042112314105511361220671819132a1b1f014c1d1e1234215526272f1332434438216925
325a263b2c20773d235e2448317549308090a18192636451a2764745537f2a3b3c32829d3e3f384
94a4b4c4d4e4f465758595a5b5c5d5e5f5465666768696a6b6c6d6e6f6475767778797a7b7c7d7e
7f738485868788898a8b8c8d8e8f839495969798999a9b9c9d9e9f92a3a4a5a6a7a8a9aaabacada
eafaffda000c03010002110311003f00f7f62aec55d8abb15762aec55d8abb15762aec55d8abb1576
2aec55d8abb15762a81d6ad6e6fb46d46caca530de5cdb4d0dbcc18a149648d955832ee284d6a31
5621e4bf2d2795345b1b4208d696ceda0d5ae5669a7f5ae61895647e52b1ad5f91ad0571545ea7e
5dd1759b9fae6a96bf58ba082312196643c01a8144751dfc31545e97a7d9e89035b69519b681dbd
4645777ab10056aecc7a0c552abcf25795b50bc9f50bcd3565bdba3cae2632cea5cfb85900fb862a
9ce9f6f0e9567169fa729b7b28411142accc14312c77624f53e38aa47fe04f289667fd149c9abc8fab
3efc8927fdd9ee7154fde357b36d3dea6cda3f41a1ab00622bc78d6b5e9b75c55224f24794e39125
4d2d0491b0746f52634653507793c7154df54b1b4d6ed1ac3558feb566e559a176600b29a83f0907
63ef8aa5961e4ef2c6977915fe9fa6a5bdec0498a65797929208e85c8e87b8c551dac68da4f98e28
adb5fb55bfb689fd448e52d40c45091c48ec71557f2068ba87973c9da3e87a9cc2e2f6c60f45e6577
94150cdc3e27f88d16837c559262aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55ff
fd0f7f62aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb15762aa7705d6095
a33c5c23156a56840d8d3157817e64f9a3563f9036be6e3a94961addc43a0ddcb7f6d27d51cc9757
968260a50ad03abba95e9c4e2ac635afcfaf345b6a1630c4ba541672eb02266803cacd6106a5a969
cf0b1924a7398d9c65245a71693851b6c5574bf9f7e6e934d8751b04f2cc91c9a26abe63655ba9ae
48874cb5b4b816cfe93811cdcae1d1ea58808acc88cdc02aade67fcf7f33f9564d4ec2ebf415d6afa6
b4e4c4a6785248174bb4d4619b89999c21f5e48cb6e1bd3e4b4a30c5546e7f3dbcd561aa5eda5ec
9a24702489a6d85e485a0d3a49cea379686fccf24db5bb08228f8f2e2b349fde74e4ab15f3dfe736b
3ae697aa5f45aadb6837da7d86ad6434db0bf9a290dc594fa44cb75ea131b18e6596516efe929f41
99816e4d8abd057f32b52f2f6b1a669c2f3466b4d575e7b1d5a28750b9d6bea16d32dbadb4f14e59
38c72332c2e920411dcdcc2df65882aa89fcf3d6ae97413a6bf9743ebdea4a16faee6b55b27b63189
b4dba63ca979f1b7055f8dbd36fdc62a954bf9d5e71bbbdd12dee66d1ecf4ad46593eb97512ca238
c7a7ab42b65348f3831caef651c88eac8ff00195e1b0e4aaeb8fcfcd7b4ff002f5adf69f65a6bf1b3893
ea17124ef3c54d12df545bd790c9c9ed9da436f53f172e27d567665c55ecbe42f30de799b48b8b9d
48dbbded8ea9a8e933cb64196de43a75dbc024556672bc95412bc9a87be2ac83c8ba9deeafe58b5
bed41fd4bb69aee277e212a2deea585765dbeca0c5591e2aec55d8abb15762aec55d8abb15762a
ec55d5c55d8abb15762aff00ffd1f7f62aec55d8abb15762aec55d8abb15762aec55d8abb15762aec
55d8abb15762ad3f1e2dcfecd0f2af4a62ac46cadbcbf7da35945a6dbdb5c7974c31369b0fa6af6ff00
570a3d2288e08002d38ed8aaaae93a4a7d8d3ed5694238dbc43ecb731d17b37c5feb7c5d71577e
88d229c7f475a71f8f6fabc54fde9ac9fb3fb67ed7f37ed62a9579abc97a179bfcbfa8f97750845b5b6
a700b49eead238a3b9585482151d91a805294208a62a9b1d334d6b74b696cade58522100478222
9e95412bc78f10a48e5c40e35ed8ab73699a5dc3bc971616d34922aa48f2c11bb32a7d9562ca490
3b03d3155b1691a442863874eb48a36fb4896f12a9dc36e028ee01f9818aab0b3b252a45ac1f0cdf
5a5ac49b5c7fbf7a7dbff2fed7be2a937973c9fa2796b428bcbd6b08bbb28a596e0bde470c923cb34
af31672a8a19817215a9cb8e2a9bfe8fd3e857ea76fc4c62023d18e9e929a88e9c7ec83b85fb38aa
ac30436ebe9db4490a162dc22508393753450054f738aa3f42934b934c89f46f4fea1ce503d11c53
d559584db506fea07e5fe562a9962aec55d8abb15762aec55d8abb15762aec55e43e6b8fcbb67e6
5d624fccab29afa1d666b5d3bc9b2c314d282925b83f5481a2fee6edae126939964665f4a92523f81
57a5f96e2d520f2fe970eb6c5f588ed215be7660ec671180fc997626bd48d89c5533c55d8abffd2f7f
62aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb15762ad1018153d0ec715
63be5bf290f2ed9dbe9aba95c5f69b67025ada5bdc240be9c710017e38638d988029f11c5515a868
77577324965aa4da7c4aa55a1862b7943313f6899e29083f234c55534dd1a5b34916f6fe5d499882
8f324311400741e8471835f7c550b7be5dbfb9b979adb5cbab285bec5b450da3aa6c06cd2c0ec77d
f76c551d61a51b5b5586eeea4bf9c124dcccb1c6ec09a80442b1aedecb8abcea6bbd71bf329bcabf
a7ae6df4392d4fa173e859733aa9adcfd55395b9a85b51ea6ff00162af478b4b0964b6cf3c92dc88f8
1bd608242f4a732aaa12b5de9c78fb62a928f2a6ac295f34df9a52bfb8d3f7a7fd1ae2a9d5e698b716
b2416f33d9cee289751047743e204aae87e9538aa536de57d461b88e69bcc77d73123067b7921b
154703aa931db2b007fc9607154c354d15efadd62b1bf9f4b995c39b8b5586472003f091711cab43f
ead7156fcbba1c3e5cd221d22de796e52269a46b8b8e1eabc9712bceecde9aa2eece765503154d3
15762aec55d8abb15762ac7f54f3758e9bae5a79792d6eaff0053ba58e5963b28d6516d6f2c86259
a7abaf18f903f10e5f67154f05c5bb3045950bb1202860492a2a453d81df1554c55d8abc7ff003b3cb
7a76b17fe4fbbd7aec8d3a3d774fb5b0801309b7bb9fd70d72b206fef47eec4469fbaa3d3fbc38abd5
f4f8aee0b1b68750b81777d1c4897374a822596555019c20242f23bf1aed8aa2715762aff00ffd3f7f6
2aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb15762ae
c55a765456772151412cc76000dc938abca61b263e4097cf2237fd2726a47ce8bf5aa992384383e9
8a6e0fe8f1e801ef8abd5229639e249a160f148a1e375dc32b0a823e63155f8abb15762aec55d8ab
b15762aec55d8abb15762af2af3ffe5eeb7e64f331d674bb5b2e2134102ea694c5393a4eb91ea332
7c3131a1850aa7c5f139a3055f8b154a3c99f949ab797752f2e4b7da5e97716963044f3c91dccd0cb

63a9db4d74cd730a470a8b837115c2c6fea347c7d35e5ea2f10157b06a7aae9ba2d949a8ead7515
9d8c22b24f3b8441e02a7a93d80dce2a96e83af5febd34d729a54d61a12822d2eefab0dcdcb06239
adb15e491102aad21491bfdf417e22aa021f2a49adcfa8ea3e7048ee25bd865b0b3d3d09782cec24
aab2ab10394d2ecd2c941fb11afc31f275536f2cc3ad5ae8d6f67afc893ea369cadcde2316373144c
5639dea07192440ad22f4593971f87154df15762aff00ffd4f7f62aec55d8abb15762aec55d8abb157
62aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55897e63dc5d8f2c4ba4e9f1996ff0
0cc1343a240149528ba8388a79aa371e8c0659bfe79e2ac9e3b4b68ed16c12251669188161a557
d20bc42d3c29b62ac6bf2f9a7b6d0e4f2f5e4cf717be5cb99349927913d3678610af6ce47425ade48
4961d5b962acaf15762aec55d8abb15762aec55d8abb15762aec55d8ab109fce375ac4e6c3c8b6a
9ab3ac8f0ddeb52b14d2ad59392b7ef177b87565e26283a1fef248b1545e9fe4fb68f515d735db97d
6f5e8ffb8bab955586d854ed6b6e2a916c685fe29987db95b156498abb15762aec55d8abffd5f7f62a
ec55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb15762aec5
52bd77cb9a1f99ada2b4d76ca3bdb7b7945c40b25418e655640ea54820f1661507a1c55833f92fcb
90f9fed3478ad648f4d9347baba7b74b9b95533c7756e8adb4bd42bb0fa715673a3797747d03eb3f
a26dfd06bb7592e59a49256774508a4b48cc7650062a9a62aec55d8abb15762aec55d8abb15762
aec5521d73cdba5e87710e9c4497faedd0ada68d64a25bc901afc656a0471edbcb2b244bddf154b2
2f2f6b9e6491ee7ceb32c5a5b8020f2c58bb7d5c2906bf5c9c716b8635158c04817f965fb78ab2d82
082da14b7b68d61b7894245146a111546c02a8a00062aa98abb15762aec55d8abb157ffd6f7f62ae
c55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55
d8ab10b8ffc9a5a7fbe817df85eda7f5c5597e2aec55d8abb15762aec55d8abb15762a96df798743d
334e6d5afb50821d34318c5c1914ab48ac57d34e352cfc94a845ab16f840ae2ac7feb5e6df36a32e9
f1c9e56d09d8a7d7aea356d5a78c6dca181aab6e1b7e2f30797c6dd3154f341f2de91e5bb76834b8
0ac9290f77773334d757125379279a42cf239f166c5536c55d8abb15762aec55d8abb15762aff00ff
d7f6cddcbe67bcf315c58697796d63a6d9dbdaccc6e2ce4b9799e79260e16413c4abc5635db8b7d
aa9c553bd462d426b3923d2ee63b3be6a7a5713c26e635dc56b1892226a36fb63154a2cb4ff0039
c5770c9a86bb637366ad59a08b4c781dd69d16437920535efc5b154cb568358b8b654d16f61b0ba
0e0b4d716c6ed0a50d5782cb0d0d7bf2fa31541e9565e6ab7ba326b3ac5a5f59f120416fa7bda3f33
4a1f51aea6d86fb71fa71555d62cfcc572f09d0f54b6d3a3507d75b9b26bc2e6a29c48b8878d3e4d8
ab7a3da7982d8cdfa7353b7d44371f43eaf666cf852bcb95679b9576fe5a62aa1a95879aa7bb6934
ad6ad6cac885e36f35835cb8207c44c82e63ad7fd5db154769506ab6f6c63d5ef62bebae6489a0b7
36a810d28bc0c92ee3c7962a94ea1a679da7ba924d37cc5676968cc4c504ba5b5c3aaf605feb71d
7e7c462a9ce9d0ea1058c50ea574979a82ad26ba8a1fabc6ed53b88b9c9c7e5cce2ac7b496f37d8f
9963d335cd46df55d36eacae2e525b7b07b230cd04d022a33faf32b735958d28a7e0c5526bbfceaf
2658f1facfd6e30ee6156689563f517509f4ba33b3844acf0328676553ca3f8b93f1c55c9f9d3e507f5
1962d405b0bb8f4fb7bc92d5a2b5b8b89659e1548a690aa1264b7750a59598b45c037ab1f2553b9
b53f33def98f53d23477b0b7b5d361b572f770cd348f25d0909feee58c00027be2aafe879f69fef7691
5ff00983b9ffb2ac556fd5ff302bff1d0d180ff00981ba3ff006378ab85bfe606f5d4346f6ff41baffb2cc55
70b7f3ed0d751d22bdbfd06e7fecb3156feafe7baff00c74748a787d42e7aff00d2662ae36fe7beda8e
91ff0048173ff6598ab5f56f3f6d5d4b47f7ff0071f75ff65b8abbeade7ddffdc9691edfee3ee7fecb7154
b5fcb9e7393cc76fe643abe982e2dec66d38402c2e3814b89a198b93f5cad4184003df154d3eafe7a
a7fc74749affcc05cff00d9662ad7d5bcf7df52d23fee1f73ff0065b8aad6b5f3e91f0ea9a403e3fa3ae4
efff0049d8ab4f69e7f34e1ab690be35d36e5bfec7862ab459fe6177d63473f2d32e47fd8fe2ad8b3fc
c0efac691f469973ff65f8ab7f53f3fd77d6348a7fdb32e7fecbb156fea9e7daffc75f49a7fdb36e3fecbb
154875dbef3fc37f0795ed752d31750d774fd4bf47ea2b653a0b4bbb5587d39190dd3fa8a3d524ad5
370bf162ad7907f2faff00cbcd6f3f99ded356d4b4fb68ed34ed413d62d122801c470c9fbb8835012c
83d47ff7648f8abd0f15762aec55d8abb15762aec55d8abb15762aff00ffd0f7843a9c336ad77a3aa3
09ece0b7b991cd3895ba695540deb506135fa3154762aec55e7517e6ee8365a9eafa6f994fe8e92c
b56b8d26c0c51dc5d7af1dac1693c93398e22220bf5b4e5c8f10017e54af155170fe6ff919963facde
c9673cb25dc4b6d71049eb0fa94b730b39540f4573673fa44ff79c3e1f8be1c5542cbf3aff002eefee6
dad2dafeebd6bb68520f574ebf854b5dc6d3400b4902a832a233c753f1af4c554350fcf4fcbbb0899d
6f2e6ee5f412e20860b3b9ace25820ba5489e48d23690c3711cbe9f3e7c2a69f0b62a83ff0095cda6
5a79ee2f29ea663fd1b711dc2c7aa5bc574cb15ec5aa2e9a96f3831523f89d55a56222f50d15b8ef8
aa6de49fcd2d13cd16da2da5e4b1daf99b5580cada6c5ce548e454797d3327100318d0c8035094df
1567d8abb154b6e359b7b5d5e0d26652a66b4b9bf370c42c491da3c28dc893b7f7c0d7d8e2ac2edf
f002aff002f3598aef55b133dcd8eb4b3ac861bd9a4b492deea796e268d232c63f4a49659242b4a72
7aafecd1544a7e4ef92134cbad1160bb3a15dced70fa53dedcc9669ea3b492471c4f21548de47690
aa8fef3e35e25538aabeff00591e5bd57cebae7d565bf7b3b0d3e6874fb600cf73305b858e08ebb73
91f8a2d7f69b1545dafe65f9425d0b4cd7eeafd6d2d753d34eb31a3abbb47689099a467e0a78f00ac
0d7a9560bbe2aeb9fcd1f2059ea56ba45d6bb6f16a57af1c56b0307abb4de8f0df8d003f588472278
d6445ea71549b52fcecf2569daf68fa59be864d37547bab69353e520582ea016ed1214f4cf24996e3
92ca1bd3a2d7911d154e60fcd2fcbeb99258a1d7ed99a0bb7d3666f8c225d452ac0e8ce54280b23a
c65e1610000026060f002220574d464301000000000001000000000000000a0000000020000098f
a0000983a0100bc048c1397234c554adff36bf2eeeed2e6fadb5e866b5b494413bc693310e5647f8

355

54255942c3296750517d393937c0d455167f31fc9159146b30b18bd5af0123f2304d15bb84e2a799
124d12854e45bd44e350d8aa5b6df9ade5859f538b58b84d3a3b29ae3ea73564996eaced2cad6fa
49d78c7f0f18ee96b1eedfcbcb154269df9cbe55f55acfccd730e87a8cbab5f68fa75b3bbce6e7ea17
a963eb72589422bcb246bf1fd92eaa5b1544a7e73fe5b0d2acb57bdd722d3ad6fed64bfb75be492d
e436f0ac8ecc5196a0f08a4755fb4e88ceb55538aadb2fcedfcadd47d7fa9f98a297eab1cb35c1f46e
1446b040f74e1b94428c21469387dbe03971c55d3fe757e5b453496b0eb22f2f229a0b736b6b04f3
48d25cdc416ca1008e8fc5ee62f50292515d59bed0c55de61fcdff0026e8fa1ebba9d85fc5a95f6871
ccd269d1faa1e492185e6a02b139e0446dfbe5568850fc5b62a96699f9cb6171a8eb36fab2d869b6
7a1df6a9657c0df34f7c2df48896592e85b25bd4c7491390e554e5cbe2c55954bf98de4980dbfafacc
3147728f2c53387587d28da553234857822130c9c1dd9564e07d3e58aa5bff002b97f2cbeb36769f
e2187eb17ce62b64f4e615904e6d78b931d109997d20242bc9f8a8ddd6aab565f9b3e50b8b66d4a
7bf8edb4d92dacef2d63912e05f18efade5ba1ea5b7a5c97f750bc9f097f815d9f805c5535d23f30bc
9baeebd71e58d23578aeb5cb647965b545907c117a45cabb2847e22788b7066a0910fed62a84d7
80ff9589e4e3dfeabac0fbd2dbfa62acc715762aec55d8abb15762aec55d8abb15762aec55fffd1f76c
1a57a1ae5f6b3eaf2faedb5adb7a3c69c7eaaf3b72e55df97add29fb38aa638abb157996a3f93565a
8df6ab7edae5ec526ab73a85dba2476fc636d4edad6d5d579466a112d538f2afc45b9576a2ad5a7e
4bd869faa5eea961afea36e752b7bcb3d46d82dab453c1753dd5cc4a79c2597eaf25e4dc191959d4
aa4bcc2e2ad5efe4b585e5afa235ebf82e2193479ecaee25b6f5209b43b66b54601e2656f551dbd4
0ea454fc1c71548ecff002285cc7ab689abea5769a0dbfd523f2dc91b5bb4c1edf47b5d37eb72feea9
eaafa2e0211e9fc5cb8eff0aac861fc99d1d35b935b9f54bcb896e64b97be81c40229e2bad423d4bd
2216304059a31ba9a946653e38aabf927f29acfc8baa0d474bd775092de4b78e1bed3a5fab9b6b9b
8815a38ee1a90875711908563748db823327218abd0f15762af3ff00cc7fcaeb7fcc3bad26f65d5ae
74e9746133416f096faadcbccf0b70bc895d3d6847a5fddd57e2a386565c5536b0f27bfd4edff0048e
a5a8477ca804e96ba95d98398ebc39b06e3e00f4e98aabff83ad2b5fd2babff00dc4aebfe6bc558b7f
82ed355f326afa45c5ddc4fa6c526917f790de4b2dd34e21174638c3b48ac8164549452bf127d9df1
542e9ff9436de588ad6eb4f95f508b409355b8d17488634b77367a934b29d2fd5925e0d6e59c2859
832fc11b7eef872c552fd33f22a21e59d234ab9d4a4b596df4f3677b115174ecf36a569a8bf298b296
2a2d56dd5bf93e2fd9518aa324fc99d4ee34cd334dbcf374d74348d3ef747b29e6b28038b3bc4862
40fe9b20678d2100b9fef0efc571556bbfc95b5d42c5ac6f35a95a3b91a9c1a8fa502209ecf56d506a
af100ccdc1a3901449057f76ed55e5c595551b6fc923697563a841e62956ff004fb66b3b693eac853
d299f506983a1721b90bf3c77f81a18dbe2f8d59550ff009505a7c714da741adcc7cbed04b6b0e973
db432848ee0d8b495941490b72b14647528f1b37246e4aa715579bf2b2f61bed12c5ae6e757b68f5
9835ebdd76e5e24b888e9f6105898645fb53fd6d62fde90a17772dfb18aadbbfc8ff00ae4974f2f9864
0b75777f78cab6b18a7e92d5acf5674a973b2bd9ac6a7f91dbf6b15504fc85f4ad2e6ca1f334a2deef
4cfd1337a961692c81238e78217491d4ba158a7e0e1197d4e0a7e1e522baa9c7997f295fcc76babc
0daf4b692eada8bea4668ede37317afa31d1668c2c8483ca125d58eeafe2bb62ac7b46fc98beb817
0357be96ca6d1f57375e59b8448652d14674f713ca15883ea1b2e3e99e1c43bff0091c55576fc84e
3606cad3cd3716ec96fa86996d3258d9865d2f548cc72432154532c88387a73b9a8f4d6a8dca4e6a
a6b61f949a869edaa083ccc445aaea17da9dc38d3edbeb01f518845244b2b16a47f086a05a96ead
c7e1c5504bf9116b1e9975e5c83ccba841e52bdd264f2edc68f1a4047e8d492e1aca349a447915ad
52e0c4ad53eac689ea6e2a55513f949abde6b763a7eb5a935f796e2d3a15d4afa2b7b4b26babcb4
d522bf8a2f4600a231fba05dd53e3f8be256c551907e494705d69ba8ff88ae4ea9a45bda59d8dc882
1004369657560c244dc3fa915d1af4e32468c3f695954cbcb3f949a7795bccb67afd8ea33b436115f
416d60e89c0477f0e9f0905c7c4780d3a3a78f37f6c5536d787fceffe4f3ff146ac3ef8e0fe98ab2fc55d
8abb15762aec55d8abb15762aec55d8abb157fffd2f69dfdcf9974cf345cdd59e8f73abe8f77676914
7e85cdb44b04f0cb7065263b8963fb4b247f1256bc69fb38ab21d46e6ead2ca5b9b2b29350ba400c
76713c71c9212402034cc882837f89862a9358ebfe62b9ba8a0bbf2a5e5940ec164b992eac2448d7
f98ac570cc7fd8827154cf57bebfb0b559b4ed325d5672e14db432c30b052092dca7745a0a5295ae
2a81d275ad76faefd0d47cb773a55b7066fadcd7367327214a2f182676a9af5a531556d6f55d634d6
80695a14fac89397aad04f6d07a54a52bf58923ad6bfb35c55da26abac6a4671aae853e8c23a7a46
79eda7f56b5ad3eaf2494a53f6a98aa8ea9ad6bd65786dec3cb573a95a85522ee2b9b389092371c
66951f6f962a8fd22f750bfb669b51d324d2a70e556de6961998a8028dca0775a1f0ad7154ab50d7f
ccb6b772c165e53babfb642447751ddd8c6ae3c42c932b0fa462a9ce9b737777630dcdf593e9f76e
0996ce478e578cd48a1789990edbec715639a6cfe68d4fcd50de6a1a34da3e8f696575037ab776f3
2cf3cd35b98d84703bfd958dfe27a53953c71565d8abb1561f3dcea7a2f9bb55bd5d12fb51b1bfb4b
1586e2cbeaeca24b76b8122b09668d8101d4f4a6f8aa2ffc577fff0052aeb1ff000365ff006578ab879
af50248ff000a6b229df8d8efedfef5e2ad1f35ea3dbca5ac9dabd2c3f8de62abd3cd1a83824f957584
ff005bea1fc2f0e2ae1e67d44d3fe755d5ff00e9c36ffa7cc55b3e66d476ff009d5b5735ff00980dbfe9f
3155bfe29d4ab4ff09eb14a75ae9fff0065b8ab47cd3a98151e52d60fb574effb2dc55279bf334c1e65
b4f2a4de55d65355bdb49afa053f50e063824542390bca723c8b05ad78ab7f29c553a5f33ea6d5af9
53575eb4a9d3f7fbaf31577f89b53ff00a95756fbf4ff00fb2cc55b3e66d4e951e55d58fb72d3ff00ecb3
1553ff0014eaf5ff00944357a78f3d37fecb7156879ab59269fe0ed5c0ad2a64d33a78ff00bdb8aaf1e
67d58d3fe752d5857ad5f4edbeebcc55aff0013eb1c88ff0008ead41d0fa9a6d0ff00d3e62ad1f346b5
dbca1ab1ff009e9a6ffd96e2ac5fcd3e63d5f4fbdb4f3ade794f565d23cb165a8dd5f245f52b8ba9164
4880482286e9d9da8acc47c3f0af8d062acb3ca3e6fb4f38d91d46c2cae6dacfa2cb73e87c4e090c9

486694aba11474708cbe18ab22c55d8abb15762aec55d8abb15762aec55d8abfffd3f7f62aec55d8
abb15762aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abc
935089b508f5dfcc936adf59d0b584934b7693ae9ba273b4ba65a56824596fa83f6aa98abd651d25
4592360f1b80c8ea6a0a9dc10462abb15762aec55d8abb15762aec556c91c7346f0caa1e2914a3a
30aab2b0a1041ea08c5587cbf97d696314171e52bc9343d6ed628add2f547af1dc43000a91de42c
409d5547057256645feee55c551361e6e92def62d17cdd6aba36af2d16d670e64d3af1890b4b7b82
ab4724ff007128497f955d7e3c5594e2aec55268fcd1a2c9ac6a3a27d6552f34a82dae6f5dcaac489
7af2c7182f5a72e50b02a77fb3fcd8aacb1f36e8b7d79ac59094dbc9a1de269d78f7404319b99208a
e1563663f155268f71dda9d7154741ace91755fab5fdbcc44d35b111cc8dfbfb6244d1ec7edc641e6
bd57be2ae1ad68ecf1c6ba85b3492f211289a325ca7dae2396f4ef8aa9ddf98342b0865b8bdd4ed6
de08221713c92cf1a2a424a80ec4b6ca792fc5d3e218aa590f9e7437f342f93e632daeb525b4b796
e938548e5861b836c7d370c433330e4abf6b87c58aa81fcc6f2d0f278f3b1925fd146d4df88380fae1
803fa64fa35afda34c55fffd4f7f62aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8
abb15762aec55d8abb15762aec5528f34eb3fe1ff002e6a9acaa879acede492de2634124f4a451d7
c5dcaa8f9e2ad7973428745f2ce9de5e7512c76b6896d3f2f8848dc29216af5e6c589f9e2a967e5ec
9730e82da0df4e6e6ffcbb712e9134ccbc19e3b7a35b391e2d6ef0b13fcc4e2acaf15762aec55d8ab
b15762aec55d8abb1543df58d96a7693586a16f1dd595c2f09ede651246ea7b32b020e2ac49ac3cc
9e4c0d2e8beb7987cb4a4b368b33f2d4ad909248b49e56025451f6609887005126fb31e2ac8f46d7
f49f305bb5c6957226119e171090639e193f92689c2bc6ffe4baa9c55e316bf92de708f56b0d42f2ef
48ba834944b610482761aac4a9a9c265beaa5164e3a80714f5bf791b7c547aa2ab6f7f23bcc93e95
a968e6eb4dbe8e6676b0bcbf333ce18f969344591c7a4dc5fd58d66aab1f87bf318aa320fc9af31c7a
cc97b712e95796131bf2b04e6e6b6b35d5ccd78973005014cccf70f0cbcc7f771c4e09f8a2c550a7f2
2b5586dac25b08f458356d28796e4b59046ea924ba2c52c576aeeb1065497d5aa15e44f1fde0c55
8edbfe486b9ac9d5b417165697ba1476105beb125bcc05ecc9e5eb4b131ab1415b5f523e4f4691b
9a01c392d71565cdf927ab5d79a1b5ebeb8b031c973773270591a7b513eaf6faac72c0cc9b4a3d16
8dbecfdae7c9b74c5528b6fc88f3643a6df584f73a35dcb736d1ad9deca2efd7b39d408648a22071f4
248d431aa720e5d38b72591157fffd5f69d87e61e83aad8db6a7a5db6a979a75e46b3dadd43a5df3
472c520e4aea7d1155606a0e2a891e71b03ff004aed5bfee177bff54b1544699e68d2f55d41f4a856
e60d4521fad7d5ef2d67b566839f0e6beb2282036c698aa758abb15762aec55d8abb15762aec55d
8abb15762aec55d8abb15762aec55d8abb15762a91f9afcb30f9af4c8b4d9eee6b2105ddadfc72db
88d8fad6332dc44196547565e68a4a95ed8aa457567e6ab6d774bd257cd370d0dec3772c923da5
91606d8c3c46d081bfa86b8aa71a079667d1b54d5757bad526d46ef565b6594491c30c69f545755
6558957e260e0313d913c3156438abb15762aec55d8abb15762aec55d8abb15762ac7f5af29d96a
9769ac59cd2695e64810c706af68144a50907d39958159a22547c12034fd828df162a81b4f365e69
33c7a5f9ea08f4eba96410d9eb10723a5dd963441cdb78256ff007cca7ed7c314b362acbb15762ae
c55d8abb15762afffd6f5a7e4f798341b7fcaaf264171aada453c5a3d8c72c525c44aeaeb0282aca5a
a0822841c559aff0089bcb7ff00578b1dbaff00a4c3ff003562ac76d750d3f51fccd4934ebb86ed1341
91646b791250a4de46402509a577c559a4a2331389a9e895224e5b0e34debed4c55f29fe475b3f9
82efcbda7f9ba7b9b5d2af3cbc2e34eb61797535b6bf35adf1924b89e5665093d9d0235bd393c737
379258d7846aa27cbda30b8fca7f25eb1a46b1041e6abcb89266b5d76e6e9b4ad6174d7bdff0044b
993d4222731c85e39be221a24e4922c6171564fe53d6ad7ccfe7bfca8b8d162bfb382cbcb3aa4dab
e91793c934f66b711d87d4c5d9e549090d27a32bd59d7930fdac5543f34fcf37dae792ff3334d4d42
0b19f43b5d56d25d095258f535faa885ad2f1265652125e5cc7c3c58488a8dcd1f92a8ed4ff38fcc31
798350d0f42974ebd9221751d9c1715b4633d8ea765686dc3c8f4f56586e1fd2797d385e5f4df683e
2c55957947f31b53d7bcc9a6e9f736f22e95aa69c97565702dbd37facac114b345771fa8cf6d20e7c
92a2486546e2937a894655e9d8abb15762aec55d8abb15762aec55d8abb15762aec55d8ab1dd50
ff00cee5e5ef136da97fd8b62ac8b15762aec55d8abb15762aec55d8abb15762aec55d8abb1543de
d8d9ea5693586a16f1dd595c2949eda745922743d432b0208f9e2ac50e9de62f2737a9a11975df2c
22fef345b894c9a8db81ded2e266fdea01fee89db97fbee603f778ab20d135fd2bcc3686f34a9fd544
768678995a39a19909568e589c074752375600e2a99e2aec55d8abb157ffd7f7a9d3ec18926d612
49a92635ebf762aefd1da7ffcb243ff0022d3fa62aa915b5bc15f42248b97dae0a16bf3a0c55548045
0ee0f518aade0800014506e053a62ad34313a18de3568cf542015fbb155dc5412c00e47627bd074
c55c510d6aa0d680d4761d31568c686b5506bd761bf6c55be2b5e541ca94af7a62ade2aec55d8ab
b15762aec55d8abb1563b3f9a2e7f4adfe95a768979a8369de92dcdc4525a451739a312855f5a78d
8d148afc34c55bfd3faeffd4ab7ff00f491a7ff00d9562ab4f983cc0280794ef8d6953f59d3f6ff00a79c5
56ff887cc5ca9fe11be03c4dd69dff6538abbfc45e63aefe50bea78fd6b4eff00b29c552abdbef34dc79
8349d523f29ddfd5eca1bb8a60d77a787adcfa3c481f58351f01aef8aa6ff00a7fcc5523fc277bec7eb
5a7ffd9462ab57cc1e646243794af140e84dd586ff0075c1c557fe9ef317c3ff003aaddefd7fd2ac76ff0
092f8abbf4f798bfea55bbffa4ab1ff00aaf8aa035af3b6a7e5ed22fb5dd53cb17b1e9ba6c325d5dc89
7164ec21894b310a27a9200e98ab3006a011d0ef8ab78abb15762aec55d8abb15762aec55d8aa5
175e5bd2aeb56835d11b5b6af015ade5b318649635ff00754dc76963ff002640dc7aa716df1562be6
ed5b4eb0f332279bf58b8d13cac2c51ac268ee24b0b69af9a5904c25b88990f34458bd28cb00dcdc
d1dbec2a9cfe5f5deb37de598a7d6fd569beb1769653dd27a573369f1dcc896934c9414792108cdb

357

2935e45549e38ab28c55d8abfffd0f7d99620685d411d7718ab6648c004b800f4a91be2adaba3fd96
0d4f035c55bc55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb15633a07fca53e6
ddbfe3e2cbfea0a2c559362aec55d8ab0f9ff0034bc876da8cba4cbab8fd2509657b7582e1daa923c
278f18c86ac913c6bc6bca4528b56db156600d4571541eabaa58689a7dc6abaa4c2df4fb4432dc4e
4330441d588504d07cb154662aec55d8ab0afce034fcabf399f0d1af8fdd03e2acca235890f8a8fd58
aafc55d8abb15762aec55d8abb15762aec55d8abcdff0039bcb92f9a3cb1fa36f2e1e0f2dacb0cda92
5bcb2417334cb7500b740e94a46a4b48fbeee910fb3cb1566fa0c7abc1a4db41aec91cfaa421a29e
e21af19846c552520aaf16750aeea071572cab55df154c715762afffd1f54fe55f91bc99a87e5bf95af
750f2fe9f777b3e9b6f25c5cdc5ac52cb248e80b33bb292cc4ee49c559dddf943ca9a8436b6d7da25
8dcdbd8c661b38a6b689d2188d3e08c3290a361b0c558de9fa1e8ba0fe66c30e89a7dbe9d15c683
3bcf1da44902bb47790052c1000480c69f3c559e386646546e0e410ad4ad0f63438abe78fca9fccdf
cc6fccbb91a45beab6b0cf0e9eb77af5ecda6fd5e4b2b837c63816d229251f598ae618e6fdef1f4e17
8ffbc763e9aaaada679e3f3727fcb7d2fcfc2e5758b6bcba2758b4d2b4d8db51b2d3ed2e2ea19e6b4
81a522e0fc10168e8d205f53d30edc5715649a57e60eb3a8f9a7f2b6cac35ab3d5fcbfe6dd1f56bebf
beb4b6289752e9c96a62962e6dca1e4676f5223528c387638aa65a8fe69fe86d6b55d2174cbfd62f
d3586d26d2ce11676ea8d168a9ab9a4924ea191a35760cf47f50fa7c78856c552fb4fcf6b2bcbbd46
0b7d0eeee555ac574186d7f7d757ff005dd1d75961e928fdd9488f1dd8867a6e3155be65fcdad71ec
aee3f2d7976fad64b7d5745d1a7d46fdad61f4a5d665b134103c8efea2c5783fbc40a9203cbeceeaa
6b67f9b1a7dbea3fe14bd82e6e3ccb135b59c3c8409f5c9e696e6df99f49d922a9b39656427e18cae
dcfe0c5530d33f32e3d4fcc30f9763d03544b85956d3569fd112c1a75e3da0bc115c491164038320e
6aecbcdd17f6b156758abb15762aec55d8abb15631a00a79b3cdbef3589ffa7341fc31564f8abb157
62af22f3c7947cdbaa79a3cdda9e8760e22bef26fe87d1eee3ba8ed9ceac973713c61487578f89955
bd534dc62ac425fcb7fccf3a9eb1a9dbc7751dcdc6a17d7da7487566644e5aae9f3da13199b80e16
eb783853880e63fdbc554aeff2e7f342ef46fab5ce972dca5d5adf5b6aba5cdae7ab1cdacbc56e96fa
ac6e5502c27d297943fde729b9b45b62afa410b1452ebc5880596b5a1f0ae2ade2aec55857e7028
6fcaaf3a83d3f42dfff00d43be2acc60358223e28bfab1554c55d8abb15762aec55d8abb15762aec55
d8ab10d4341b9f38ea13c1e65b5f4fca366c63b6d29dc37d7e614ff00489c21da34ff0074c44eedfbe
93711055531f2a45ad59d8cba4eb85a7974e94dbda6a4c41377680068646f88b7a814fa72f2fb522
33afc2c3154fb15762aff00ffd2f675b7e59f95ec6da3b2b07d4ececa11c60b5b6d5f528a18d3b2a225
c80aa3b28d862a99de794b4bbeb7b4b69e7d4163b28cc50b43a95f412329a6f23c532b48db7da90
b362ad691e4ed0f44d45f56b35ba9751784dafd62f2f6eef5d602e1ca2fd66590282ca09e3d698aa7
8e824468c920302a4a92ac2bb6c46e0e2ac4f47fcb2f25680fa44da3e9a6d2e3428ae6db4cb84b8b
832c76f7afea4d0b3b485a48d9fe309216557f8938b62abed3f2e3ca7a7e8b61a0e9d6d3d9d86952
cd71a69b7bcba8e7b792e79faa52612fa946f51eaa58aefd3155fa2fe5d7933cbda95b6ada3e9496b
79656bf50b121e468ededcd3988a3762a8d2715f55d407978afa8cd8ab573f975e51bbd4e7d667b2
73a95c5db6a12ceb7370a7eb4f6474e3200b20009b6630d00a71ff2b7c552dff9537f972150268ed1
3c5f5230cd0ddddc5346da65b9b4b778e44995d5d603e897560d245f048597154ce5fcbbf28cc973
1bd8b88eeefacf559d12e2e1035ee9a2316d280b20a18fd18a807c3fbb4e40d3154b1ff267f2d5da6
7fd04a8f3b7a85a3b8ba8cc727d69af83c3c651e932ceef2ab45c0a33c9c69cdeaaa6d65f97fe51d3
b5c5f31d8e9a20d6045140f3a4b3719160431c6d2c7cf84922ab15595d5a5e3b73c5592e2aec55d8
abb15762aec55e7f6be68f2f685e78f36db6b9aada69b23fe8e9a24bc9e380ba1b62a59448454556
9518aa77ff002b13c834aff89f4aa0ea7ebb077ff678ab67f30fc86295f33697bee3fd320e9ff078aacff
958ff0097e761e68d28ff00d1ec1ff35e2adffcac5f20ff00d4cfa5ff00d2641ff35e2ad8fcc3f219151e66
d308f1fae43dff00d962adff00cac1f229341e64d349ff0098b87fe6ac55b1f981e4634a798f4d35e94b
b87fe6ac55c7f303c8c3af98f4d1ff004770ff00cd58aae3e7cf248ebe61d3b6dcff00a545d3fe0b1561
df9a7e77f27df7e5979c6d2c75db1b9bc9f45d423b6b786e239259256b6902a22292598b500006f8
abd2eccb1b4b72c28c634a83d41e231557c55d8abb15762aec55d8abb15762aec55d8abb15762a
ec55d8abffd3f7c1bab553469e30475ab01fc7156dee6da355792644461556660011ec49c55b8e78
25244522c8475e2c1a95f962aa98abb15762aec55d8abb15762aec55d8abb15762aec55d8abb15
762ab5e28e4ddd158ff9401fd78aad10423a46a3fd88c55bf4a2fe45fb862aef4a2fe45fb862adfa71ff
0022fdc31577a71ff28fb862aee09fca3eec55be0bfca3eec55dc17f947dd8abb8af80fbb157715f018
ab78abb15762aec55d8abb15762aec55d8abb15762aec55d8abb15762afffd4efb67e4af2b0b2b65
b8d06c1e710c42567b58998b8401892549249ef8aa6177e5ed0b5082dad6ff4ab4bbb6b24f46ce19
e08e4486214a246aca42aedd062a8ff0020695a5e91f986b0e9763058a5c68b74f32db44b08731dd
db052c100ad391a57c7157afcd3436f0c9717122c5044a6496590854445152cc4d00000a927157c
ed6bf9cd7fe48f2a5f6afa85c26bd137983cc0d01baba3eb49a4d96b10da45f5572a51a38e2b94f8b
97ecad15f9b3a2aca65fce7bfb49352d3750b3b4b3d6746d563d0b5059de68eddeeb509f969e6d9c
ad24f5ad4acc558a2abb70695695c55379ff311350f26f903cdf1db054f345fe9113c11de346b03ea4
a5482f18a4a2363c4c6df0b53db1560ba7fe7bf9ab59834102db4bd367d5a5f2fdebb8924b98d34ed
5efee74f9e262de9d24592dfe0907c3c64e3c792d4aa9be9df9d7e62d6ac74dbfd3ac34748b5ebfb2
b0d3126bf679ed9af16e1644bc862562b2452428b4e49ea7275e2863dd5482d3f3635df2ad9ebbad
eb57569a9eaff00a6f5eb636ad7334518d3f41bd48ca431c8fe921449b793edff0077ca39aacc8ab2
497f3c2e1ac1b558134c8ad2e7537d0e1b7b9b865bbd32e92f9ec44ba8c750ab139557079c5bc91
a7c41fd5c55ea5e56d4efb59f2fd86a5a9c76d16a33c75ba8ec2e3eb76a255255bd29805e4a48db6
f6c5538c55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb1576

2aec55d8abb15762aec55d8abb15762aec55d8abb15762afffd5976a1fef65ff00fca5ff00df4bfdc7f7
7fdeb7f75fe4ff002ff938ab28f377fc70bca7ff001dcff789ff00e399fef57da5ff007bbfe2df0fa7154dff00
217fe53ebdff008ea7fc71e5ff008eeffbd1fef541fef3ff0091fefcff002bd3c55f44dfff00bc373fdd7f7527
fbd3fdc7d93fde7f91fcded8abcf2e3fe514f2ff00fca1bfef35cff7bff1cafeecff00bc3ff15ffbf7fc8c55947
98bfe39779ff1c7fef2d7fe3a9fef2fdb4fef7fcaff007cff0095c31540b7fca3da3ffca3ff00ef6275ff008e7
7f78ffef2ff00c5de1fe5f3c5525b6ff793fe98dff796d7fbafeebfdeeff935fef9ff00979c55143fdebbeff94
4ff00e3bd174fef7a1fefbfe5ff00f93156ef7fb9ff00a653fdeebeff007a3ec7fbceff00f25ffe5a3fe2ae58a
a2aeffb8f377fca37fdd41fdffd8fee07fc757fc9ff007dff00c558ab2bd2ff00e39965fdc7f7117fbc7fef37
1610000026060f002220574d464301000000000001000000000000000a0000000020000098da00
00983a0100d81fdcff0091fc9fe4e2a8bc55d8abb15762aec55d8abb15762aec55d8abb15762aec55
d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb15762aff00ffd90
00840010824000000180000000210c0db01000000030000000000000000000000000000001b400
00040000000340000000100000002000000000000bf000000bf0000af4300003243030000000000
008000000080fd7fe9430000008000000080fdff6c432100000008000000620000000c0000000100
0000150000000c00000004000000150000000c00000004000000510000001cf900000000000000
000000d2010000ec000000000000000000000000000000000000005e010000b200000050000000
0c0400005c040000c0f40000000000002000cc00d3010000ed000000280000005e010000b20000
000100080000000000000000000000000000000000f90000000000000000000000ffffff00fcfcfc00f
efefe00f9f9f900e6e6e600b1b1b100b0b0b000a5a5a500b2b2b200eaeaea00adadad00a7a7a700b
3b3b300afafaf00f0f0f000c8c8c800949494008c8c8c009f9f9f00aaaaaa00a4a4a4009c9c9c00fdfdf
d00b6b6b60099999900a6a6a600a3a3a300aeaeae00cacaca00a9a9a900a2a2a200a8a8a8009b9
b9b00cdcdcd00d7d7d70095959500989898009a9a9a00979797009d9d9d00e1e1e100d3d3d3008
b8b8b0085858500818181008a8a8a00e5e5e500fbfbfb00f4f4f4009090900046464600ababab00d
ddddd00f2f2f200f5f5f500f6f6f600b7b7b700e7e7e700f3f3f300cbcbcb00efefef00f7f7f700b9b9b900
b4b4b400cecece00f1f1f100ebebeb00bcbcbc00cfcfcf00d9d9d900acacac00dedede00f8f8f800dcd
cdc004b4b4b0062626200ededed00fafafa00eeeeee00ececec00767676005f5f5f00787878006868
6800d4d4d400e4e4e400e8e8e800e3e3e300c7c7c70043434300797979004a4a4a00d8d8d8006e
6e6e004f4f4f006a6a6a008f8f8f0022222200707070009e9e9e00656565005a5a5a00595959002f2
f2f00777777007c7c7c00dfdfdf003b3b3b0035353500d6d6d6007d7d7d0093939300616161006f6f
6f0064646400d1d1d1007a7a7a00cccccc0021212100e0e0e000919191006767670092929200878
787003232320051515100e9e9e900b5b5b500c6c6c6006c6c6c0088888800bababa00bbbbbb006
66666006060600012121200848484007f7f7f007272720069696900c5c5c5005c5c5c0038383800c
4c4c400c1c1c100a1a1a1005050500071717100282828001b1b1b001d1d1d00dadada007575750
0404040008686860039393900444444002b2b2b002d2d2d008383830073737300414141007474
74003d3d3d00494949004c4c4c00e2e2e2007e7e7e00bdbdbd003c3c3c003a3a3a004e4e4e0054
545400bebebe00dbdbdb003f3f3f00585858005d5d5d005b5b5b00b8b8b80047474700525252004
2424200c0c0c000bfbfbf007b7b7b002c2c2c0096969600828282005e5e5e008e8e8e00565656003
63636002a2a2a002e2e2e001e1e1e002626260015151500d2d2d2001c1c1c004d4d4d000c0c0c0
06b6b6b00181818008d8d8d001f1f1f00555555004545450037373700c3c3c30089898900a0a0a0
00c9c9c90033333300d0d0d000c2c2c200808080006d6d6d00d5d5d50013131300535353002424
24003e3e3e00292929006363630057575700090909003434340025252500171717001a1a1a003
1313100202020000d0d0d00484848000606060030303000232323001919190011111100050505
000b0b0b00101010000f0f0f00141414000a0a0a000e0e0e00272727001c4c5ecb72538c65828d3
0768282946382608c7316010117011701010102010303170117010101030101010101010103170
10301030317010103010101010101010101030117010301010101010301011701010102010301
03010301170101170101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
0101010101010101010101010101010101010101010101010101010101010100008d40a918443f
3f3f858d2a1db485398439b444287a03170101010101170103b88c401701343291d33601af05170f
1206143401014e34286b7047292e39372e910216511d49d4325057d41c4976bd231b4d3d2d1f01
0374ba1e030117013001010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
0101010101010101010101010101010101010101010101010101010101010101010100001d6e2
ad7455545db74747445c7d7742ac7db6e09a30101010301021701014e26a8c92217c2347eaa313
7d679175ec2aec30c170301a04b3b5a8a04e515188fc7ba8f7b2b6e60da3e497d9b4e6dd311d16e

359

a2c0700c1ddea87947300301014e01010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010100
00b94541747474767674414141d7d7d745227623409930010330010101014e014e309c084e9498
52b20185f37204135458aca701014e707a01e22102a21808e1035ab4014ea7532401019d1a0272
a980631be00101565ee1010343010103170102010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
101010100000bc7d74176455574d7764155d74145452a762a09ba1701010101010301174e0104d
11a01458db78701be70083c3d840c9f0f0102017c6501eb1301ab81d46501a2d4d50c3b75210202
eb1402af0c758726a502010f94754a0910020117020117010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
101010101010100009223c7d7c72245222a41764110414576d7745509750201010102011701010
1010ff809016744dd2685ee4948281f541dcf4317033e636031f8a321ab7fd97e57cd086fe5a7d073
138d682b36da3c9bba0a6345d3a3b9a8b47d253801010103030101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
0101010101010101010000136ed51d23412274764574db767474d7224574806a0101170101010
11703011737ce393048399001ae1a0105b4422318db010101025d7830393c8341017ad14601447
0c70191103247c5633a58143238014370277f305d6a203b0130034e01010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
1010101010101010101010101010000164a553cc7d7d774db3c90552a2a762ac7d755188a03010
1020349010101011729f71c1717300401011730011701010201030104012f4d300117030130a739
01020103014e01010101cf064d3b03014903010104010101304e01173001010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
010101010101010101010101010101010100007b593cd51d76225990db74d78145d541763c411e
cd3e300101010303020101011d6a34170101010101010102014e01010104010104280e01010401
010101010201170130010130011722218baf02030117013701010330010149020101173e020101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
010101010101010101010101010101010101010101000094944c8c7a4ce1e1527636b4cbe18eb1
cb7acb712701030301010201010130031701010117030303010201010101030130013e17013e03
01170101020149010101013001300101170130494301010201014e01010202010301010101170
30101010101010101010101010101010101010101010101010101010101010101010101010101

01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
1010101010101010101010101010101010101010101010101010000364f7f3a3a052f58053e0104
0aa748985656a7573717030101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010103030101010101010101030303030303
03030303030303030303010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010103030303030303030101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010100000103020203010
1014e010103020101030101023001011703010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101030101010101010103030301010101010
10101010101010101010101010101010101010101010101010101010101010103030303030303
03010101010101010101010101010101010303030303030303010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101000001
01010101010101010117020301010301010103030303010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101030317170303
03030101010303030303030303030303030303030303030303030303030303030303030303010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101000001010101010101010101010101010101170301030303030101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010103010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010000300203031717030103030103170203010101010101010103010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010317170303030303171717010101010101010101010101010101010101010101010
10101010101010101010303030303030303030303030303030303030303030303030303030303
03030301010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010100000301010101010101010101010101010103020203010101
03010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010303030101010101010101010101010101010101
01010101010101030303030303030301010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101000001010101031703033017030301010117011
70301030101030101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010

361

10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010301010101171703030101010101010101010101010101010
10101010101010101010101010101010101010101030303030303030301010101010101010101
01010101010101010101010101010303030303030303010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010000010303030301010101010103
17030101010301011717010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101013038424f50434f4f3d0f42363b3b31313131313131
31313131313131313137373737373737373e3e3e3e3e3e3e3e494949494949494904040404040
4040404040404040404044e4e4e4e4e4e4e4e3030303030303030010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010000170101171701010
30101010101030101011701020101010101303003010102010103011701013001011701170301
011701010301170103030117030201014e010201010103170101010301014e030101010101010
14e01170301031701010201010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010103010db1ba6a699499519969ba75a3a153a
8d975695b755b949494948ba1a39969696969696969699975ba6ad9a8ba6ad98a8aa88a2da02c6
fd9a0a0bdbd2c832c2c89a0bd2dd9d912cd2b83d3cd2b2cbd6f2ca0a0a89b864d01170103170301
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010100000101010
30101020130010117170101300104031717010101301701010301170301173001013001030101
01010101010330300102010301010101300101010130014e01010101011703011702010104033
0013e010101020101030101020101300101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101013e1bbc3b493836363b36363837
4242423738360f4236421610000026060f002220574d464301000000000001000000000000000a
0000000020000098ba0000983a01000f0f0f0f0f0f42360f0f0f0f0f0f0f0f504f4f4f420f4f3d3d4f4d4d4
d4f3d0f4d3d420f4f4f3d420f0f0f3d3d4f4f4f0f420f4d4f423d4350054f4d3d315568a7170301010303
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101000017170
3010303010301024e01010101014e01010103034e010101011717010101010301304e01011703
01010103011701010101030302010303010101040101010101030117300104011701030103011
70101010101010201010301010401030101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010102641a01020103010101030
10103010301010103170303010101030303030303030303030303030101010101010101010101
03030303030101010103171703030303030101010101010101010101010201014e17014ed1af30
01010117030101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
100000102300101010101030101014e01010201014e4e01010103011701010117171730011701
014e1701030102011701300101014e0117011701014e490101031701020101040101170101034
e0101010101170301034901010130010401010117010101010101010101010101010101010101
010101010101010101010101010101010101010101010101010101010101011701d40c014e0117
01010101030301010101010101010101010101010103030301010101010101010101031703031
70301010101010303030303030303010101030303030101010101030101011703013001171701
37369a48030101021703010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101000049010101030117300117020117030301010201010104010103170101170201
01011701030301010402010201170103010103010101010102030101170201010101030101013
0011730010101014e010103014e01013001010301170101020102010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101019
20701010101030101010303010101171701010303010101010101010303030303030303030301
01010101010101010101010101010101010101010101010101010101010101010301010117030
101030217011737b0560103031701010301010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010000010f4d3b4d4f310f4d3001024d043e3d373731310101300101010
3170301013d4e4e3801013d310102363030014e3646010130a70104010101363e3b17303e3830
04010f0201040201044e0f01310131030101034e011749013e0130020417010101010101010101

01010101010101010101010101010101010101010101010101010101010101010101010101010
1010101154003024e010101010101010101010103010101010101010101010101010101010101
01010117170301010101030303030303030303010101010101010101010101010303030101010
1010301011702010101014fdf05011701010101030101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
1010101010101010101010101010100007cda82ba99cb82da72db012a5b639963a3945ecb26013
00117010301010137237eb34801cbe12f0587b6740156a32cd98a3b1eb7704e3e014e6eac0eb8a
c76d4937fcdb69808b0732376e10b3720ebd856602dd9990a53ad25016bcf661e03030101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
1010101010101d418030101010117010103030103010101010101010103030101010103030101
01010101010103020301030301030101010101010101010101010101010101010101010101010
1010101010303010101010203017f4b57011701010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
101010101010101010101010101010101010000dd853e36363e3636314e4e01503b363b0f36310
ba81701010301010102170102677a019be541010186670203b88a1717c9a8b9d5c3d4010301426
87498c50191a54ed62b22e70eaf852fab7801469538926256df1f89d655a945ac66d7206b0301010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010392b80102031701030101170301030101010101030101010101010101031
70101010101010101010101010301010101010101030301010301010101010101010101010101
0101010101010101030303030101170157eb43010301031703010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101000066451701010301030101170101010201
17013091a00117010101011703010101718a1ef010020101da52010105020122ef5b0117623230
0103498f55358f4922dd17df20395f4e0449424b7f016b8f4f042184d044670d030158d12904034e0
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010108b80103010101010101010101010101010101010101010101010
10101010101170103010103010201010101031702010301010201010101030101011701010101
010101010101010101010101010101030101012feb500301030103010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010117013801020101
170103014e0130170101010101010101010101010101010000b174033003013001030117044e0
10101010101a9d901010302301701010303014c9f77c030013001824c4901010308f69d420137c8
12030101319caf6eed01d5b1176c47229c06a36343d0a70129ed304f8429a4b9941a0256afeb121
66c6e0301010101010101010101010101010101010101010101010101010101010101010101010
1010101010101010101010101010115b801030101010101010101010101010101010101010101
0101010101010217014e170101010301170104170101010101380101010102010103030101010
10101010101010101010101010101010101030301012fa54d03010301030101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101024801010
1034e0101177f360101011701010101010101010101010101010000cfc7014e1701010117030101
01010117301701b889010302011701010303010165712251330203028c7101031799ca2c0f0102
04e02e02173076953544ced9b5d337de6a4f2139ad70d2c57a94d4de1898b3d8b36b46bd59ad90
84928393430101010101010101010101010101010101010101010101010101010101010101010
101010101010101010101010101010101011f91010301010101010101010101010101010101010
1010101010101010101041dbe3236db8c1d831681993a9b0b2abebd0158da2e164330010317010
103010101010101010101010101010101010101030301012fa54d0101030103010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
010101010101010101010101010101010101010101010101010101010101010101010101301b7
b3e4e01014e303094463017010101010101010101010101010101010000add701010117030301
03010301170103010101ae2c014e010102030117010130cf6a0135f6804301a3be014a6e7715016
e8d0201c4240101013878034fa774d23b3eeb534e422a1001494ad7d20b95900156d55d0104438
145030445b8580101010101010101010101010101010101010101010101010101010101010101
0101010101010101010101010101010101010101d4d8010101010101010101010101010101010
101010101010101010101014e014faaba0157ed3a4b54d7df4ee2199c8cbc0b33891aa47f040101
03010103010101010101010101010101010101010101030301012fa54f01010301030101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
010f2c28030202010164640101010101010101010101010101010101010100008e553e17010201
010217010117020101010117b92c0103011702010117014e05e466075acb10dd1b9ab02693b8b6
d3aea4760174f49437033037124f010201030130a74202013817010102010349b21d1601040149

363

01010201010101011717020101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010128d20101010101010101010101010101
0101010101010101010101010101010203e2243037ac36867558c901a1bd8b4e0141f50a0a5b30
010101010101010101010101010101010101010101010101010303010156eb3d0101030101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101011701017c1e01300322b23d014e011703010101010101010101010101010100005c6e010
1010101030102040103011717300101b9a017010301010101170104051c0b34853e30d41b091b2
1150135bc281f01017411800401013ed33b0101031701010303010301010101010202019125bf30
01020201010101034e4e014e01010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101030121900101010101010101010101
010101010101010101010101010101010101174e5c250237ac3d73bd4add03607065461506c229
2f5b010101010101030101010101010101010101010101010101010103030101a7330f01010301
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101031704dad801032e10303e01011701010101010101010101010101010100004
b843837430f363b4f01010357493842373e4d14700403010301031701010102011701020101010
1010101300301020101491703010102030101010403021701170102030102013004010301303e
01300301300101301701010317010101020101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010301198d01010101010101
0101010101010101010101010101010101010101014e01019a270159ab0aa2a6a09d085c223211
d007d4112b87021717010101170301010101010101010101010101010101010103030103295a4
20101170101010301010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
101010101010101010101170130020fa385859b300101010230030101010101010101010101010
1010000697269ba8b538b8b69af01c7515375995b6f6f7a1f0103010301010101031701010101030
3010201300117010203170101030103014e010101021701170130010317010104011701010303
0301013e010101030302010102030101010301010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010301258103010101
010101010101010101010101010101010101010101010101304d014b2630c76e02a9d20d0a8444
013e47180103ae276301010103010103010101010101010101010101010101010101010101011
76bb7360101170101010301010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
101010101010101010101010101170101010343dada4201033001010101010101010101010101
010101010100004e3e3b363b313b42370417303742363136363b3e30030101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010126
7601010101010101010101010101010101010101010101010101010101435edbaa89288ad7021
70301010101010101014e0201107a010101010101010101010101010101010101010101010101
01030103030129334217010101030103010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
010101010101010101010101010101010101010101010103011a8401030101010101030101010
10101010101010101010100000101031703010303170101010103030101030303010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
101010101263c030103010101010101010101010101010101010101010101010101010428242b2
412812d021703010101010103030101013b101101010101010101010101010101010101010101
01010101010103010303012933360301010103010301010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
010101010101010101010101010101010101010101010101010204020117d410304e170102030
20301010101010101010101010101010000010103030101010103170301010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
1010101010101010301193c0301030101010101010101010101010101010101010101010101010
10103020101490102170301010101010101010217010102010101010101010101010101010101
0101010101010101010101030103010129eb36030101010301030101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101011701010438010bd8014
d0301013001010101010101010101010101010101000017030101030301010101010101010103
03030303010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010

10101010101010101010101010301193c030103010101010101010101010101010101010101010
10101010101030101010101020103030101010101013001031701030201010101010101010101
01010101010101010101010101010101010103010178a53b03010101030103010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101014e01428
a3015d5238c38014e0117030101010101010101010101010101000003010101010301010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101267601010101010101010101010101010101010
10101010101010101010101010330010117010301010101010101010101170201011701010101
0101010101010101010101010101010101010101010101030103784b310101010103010301010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
101020101a8a940d5793901010138010101010101010101010101010101010000030101010317
17030203010317021701010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101012176010101010101010101010101
01010101010101010101010101010101300103010101031701010101010101010117010103010
1170101010101010101010101010101010101010101010101010101010301036bc937010103010
10103010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
101010101010317030143758312ba010117014e01020101010101010101010101010101000001
01010101010101030101010101010117030101030301010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101263c010101010101010
1010101010101010101010101010101010101010101014e010401010101010101010101010102
0301170201010101010101010101010101010101010101010101010101010101010301036bac38
01010301010103010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101013003010192cc6c5701490102014e0101010101010101010101010101
01000003030303030301010101010101010103010101010103030101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
1010101010101010101010101010101010101010101010101010101010101010301193c0301030
10101010101010101010101010101010101010101010101010301010117010301010101010101
01010301010101030301010101010101010101010101010101010101010101010101010101030
1036b5f3e010103010101030101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
0101010101010101010101010101010102010201ac690317011701011701010101010101010101
01010101010000010317010101030101010101010101010101030101010103010101010101010
1010101030301010301010303010101010101031701010301010101030101030101170101030
The ATC facilities (possibly used in conjunction with the asynchronous event-handling mechanisms)
also allow real-time threads to be terminated in a controlled and safe manner.

7.9 Synchronization and Resource Sharing


The key to predicting the behavior of multithreaded real-time programs is understanding how threads
(and other schedulable objects) communicate and synchronize with each other. Java provides a
mechanism that is based on mutually exclusive access to shared data via a monitor-like construct
(see Chapter 3). Unfortunately, all synchronization mechanisms that are based on mutual exclusion
suffer from priority inversion.
The problem of priority inversion and its solution priority inheritance is now a well-researched area of
real-time systems (see (Burns and Wellings, 2001)). There are a variety of priority inheritance
algorithms; the RTSJ explicitly supports two: simple priority inheritance and priority ceiling emulation
inheritance (sometimes called immediate ceiling priority inheritance, priority protect inheritance
protocol or the highest locker protocol).

365

The RTSJ and priority inheritance


The way in which the RTSJ supports priority inheritance algorithms is through the MonitorControl
class hierarchy. The abstract root class has several static methods that allow
the default inheritance property for all monitor locks to be set and queried
a specific object's inheritance property to be set.
The actual policies are defined by subclasses as illustrated in Figure 7.8.
01000900000366e1000000005962000000001610000026060f002220574d464301000000000001
0014d000000000080000000020000050dc000050fc0000010000006c0000000000000000000000
d2010000ba00000000000000000000006a400000bf19000020454d460000010050fc00000c00000
0010000000000000000000000000000000005000020030000c40100001a0100000000000000000
00000000000e3e306006e4e0400460000002c00000020000000454d462b014001001c000000100
000000210c0db0100000060000000600000004600000004360000f8350000454d462b224004000
c000000000000001e4009000c00000000000000244001000c00000000000000304002001000000
0040000000000803f214007000c000000000000000840000550350000443500000210c0db01000
0000000000000000000000000000000000001000000ffd8ffe000104a4649460001020100480048
0000ffed092050686f746f73686f7020332e30003842494d03ed0000000000100048000000010001
00480000000100013842494d040d000000000004000000783842494d03f3000000000008000000
00000000003842494d040a00000000000100003842494d271000000000000a000100000000000
000013842494d03f5000000000048002f66660001006c66660006000000000001002f6666000100
a1999a0006000000000001003200000001005a00000006000000000001003500000001002d000
000060000000000013842494d03f80000000000700000ffffffffffffffffffffffffffffffffffffffffffff03e80000000
0ffffffffffffffffffffffffffffffffffffffffffff03e800000000ffffffffffffffffffffffffffffffffffffffffffff03e800000000ffffffffffffffffff
ffffffffffffffffffffffffff03e800003842494d040800000000001000000001000002400000024000000000
3842494d0414000000000004000000023842494d040c0000000007900000000100000070000000
2d0000015000003b100000077400180001ffd8ffe000104a46494600010201004800480000ffee00
0e41646f626500648000000001ffdb0084000c08080809080c09090c110b0a0b11150f0c0c0f1518
131315131318110c0c0c0c0c0c110c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0
c0c010d0b0b0d0e0d100e0e10140e0e0e14140e0e0e0e14110c0c0c0c0c11110c0c0c0c0c0c110c
0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0cffc0001108002d0070030122000
21101031101ffdd00040007ffc4013f0000010501010101010100000000000000030001020405060
708090a0b0100010501010101010100000000000000010002030405060708090a0b1000010401
030204020507060805030c33010002110304211231054151611322718132061491a1b142232415
52c16233347282d14307259253f0e1f163733516a2b283264493546445c2a3743617d255e265f2b
384c3d375e3f3462794a485b495c4d4e4f4a5b5c5d5e5f55666768696a6b6c6d6e6f637475767778
797a7b7c7d7e7f7110002020102040403040506070706053501000211032131120441516171221
30532819114a1b14223c152d1f0332462e1728292435315637334f1250616a2b283072635c2d244
9354a317644555367465e2f2b384c3d375e3f34694a485b495c4d4e4f4a5b5c5d5e5f55666768696
a6b6c6d6e6f62737475767778797a7b7c7ffda000c03010002110311003f00f44afa1e2d2d7b31ecb
b1db635cd2da5fb002f77a9ea35ac01adb9bfcdb2cff449c74763769193904b4180fb0b86eff4ae69f
a4fddef5a0866fa5ae2d363439ba104891a4ebf7a4a697ec4a36c7af913e99a8bbd425db4ff002dfb9
fbab77beaf77b11074bac1acfda3208a892d06d74125feafbff00d27fa2f7ff0081f62b8082010641d41
09d2539a7a0e317bacf5b237b8b8b5e2d20b3790e7fa31fcdef7b7d4b36ff003aff00e753d5d128a6c
aed65d797d763ac2e75af25fbf6fb2d8737d5637d2af67abea6c5a2924a728fd5dc52e73ce4e5173c
34126e71d1877d5f4bfd13fdec46afa4319119796e86edf75ce3f9aeab76bf9fefdfff001bfa456defb05
8c63181c1c09738920000b7f92ef77b906dceaabbcd06ca43c004b5f66d7419f76cda7dbed494847
46a7d84e46417b2b6d42c3692f8697bb7fa9f4bd47fa9fa47a0b7eaed4d1033b38eae3ae43cfd2fa4
3dd3ed56dfd42807f47654f13b7f9cf71773b1ac636c739db53d99f8ed276db410d04b8bad0d881b8
fe6bff3525217744c47407bed735ae63d8c361dad35b1d457b1bf9bf4fd477efd8a18fd119510eb72f
2720ed87b6cb5ceadd2c754f9a5c5cdf7eff53faeb41efb1a5b0d0e692038cea27f93b7dca69290636
2578ceb4d65d17383dcd264021ada5bb3f75be9d55b51d249253fffd0f555536d5eade6ab2d6bb70
3686091bb6b1ba6eadffe0fd356d0becd56e7b8020d865fb5ce124068dded3f4bd8d494d1cfc5e937
3b11f996ec754c7fd9c39fb770735a2d71addfceecaff91fa2fa684ee9bd19d538b725cc63dec3bd97
6d121c6cc7adbb4eddacb6cdf4b1693f0f16c359b2a6b8d20b6b24496870d8f6b5dfcb6fd350774de
9ef20bf1eb76d739e37341873c6db1dafeffe724a61863131ab2d6e51b839e1bbadb7d43be056dad
ae71fcedbfcdffa4561b938ef30cb58e20ed20381323f35576f48e96c78b1989535edd5ae0c00892d
7ffd5575ff00db69d9d2ba6d6f63d98d535f5c163b68905a36b369fe4b52526b1b7fa8c75646d0087b
5d3dcb7dc23f776a0656055916efb31b1ee1a7bad6ee7771ddaefcd7b91ce4e3825a6d6020c11b8
68425f69c6ff4acff003824a695f838b8aef571b0f1c3dee0776dd8e2e1ef7bcd95d6ff00a15337b3fed
b4eee91d3c173b1f0b176dad8792c03748dbaec67b9be9fb54f3f2296d62faef0d7b1cd6820b4fb5ef
ad8ff006bb77e6a3d5663555b6b1734860804b84e9f08494cde2e25a1901b20bc92674fdd4443fb4
63ffa567f9c13b2daec9d8e0e8e6083ca4a66924924a7ffd1f5549249252924931e12521666d36305
8c16398e01cd70adfa83c1fa29fed55feed9ff006dbfff0022b1f27f62fd87a77ed50c9f45bf67de5dcfe

837ecda3f9cfe6ff97e8fadfe07d743b7f607ae34b7d79f7eb6efdbecdfea7aa377a7b7e97f84f4fed1ff
00765253af8f7b58c70732c07d4b0ff36fe0bdce69fa3e68bf6aaff76cff00b6dfff00905ccd7ff3464ed1
7448df27276f3ecf574d9b377abe8eff00fbb5e97fda856aefd89bdfb864cfa4edfb0df1e9c1ddb7d31b
7fe2f67e9bd4494ef55732d0ed93ec3b5c1c0b48301dc3c37f35ca0dcca1e259b9ed9237358f70969
d8ef735bfbcd4b1bf9dc9ff008d1ff9eea5cf53ff00377d57fac0fdbfed36fabe99b3d4dffcaf487f47fb3ec
ff80fa7fe1bd4494f45f6aa8721e3e35bff00f20a3f6867aa5db6c8da07f376789fe42c6a7f606ea3d01
6fd177d9f69b3fd1bfd5891bfd4fb37abfce7fc27a3faca1e5fec1db56991ea4fe8bd2366ee1bea6edff
a1d9e97f39ebff83fe6d253bff6aabc1fff006dbfff00209fed35c4c3c0ff008b7ffe4173ceff009b5fa2fe7f
f33d3f4fd78d90dd9bbd2f67a1fbfea7b37fa9ea7e914ebff9bfe9dfb3ed1bb5f537fda277e9b7e97e77
d0d8929fffd93842494d04060000000000070005000000010100ffee000e41646f62650064400000
0001ffdb008400040303030303040303040604030406070504040507080606070606080a080909
0909080a0a0c0c0c0c0c0a0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c010405050807080f0
a0a0f140e0e0e14140e0e0e0e14110c0c0c0c0c11110c0c0c0c0c0c110c0c0c0c0c0c0c0c0c0c0c0
c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0cffc0001108008c015e03011100021101031101ffdd000400
2cffc401a20000000701010101010000000000000000040503020601000708090a0b01000202030
10101010100000000000000010002030405060708090a0b100002010303020402060703040206
0273010203110400052112314151061361227181143291a10715b14223c152d1e1331662f02472
82f12543345392a2b26373c235442793a3b33617546474c3d2e2082683090a181984944546a4b4
56d355281af2e3f3c4d4e4f465758595a5b5c5d5e5f566768696a6b6c6d6e6f637475767778797a7
b7c7d7e7f738485868788898a8b8c8d8e8f82939495969798999a9b9c9d9e9f92a3a4a5a6a7a8a9
aaabacadaeafa110002020102030505040506040803036d0100021103042112314105511361220
671819132a1b1f014c1d1e1234215526272f1332434438216925325a263b2c20773d235e2448317
549308090a18192636451a2764745537f2a3b3c32829d3e3f38494a4b4c4d4e4f465758595a5b5c
5d5e5f5465666768696a6b6c6d6e6f6475767778797a7b7c7d7e7f738485868788898a8b8c8d8e8f
839495969798999a9b9c9d9e9f92a3a4a5a6a7a8a9aaabacadaeafaffda000c03010002110311003
f00ed17bf97de4cb3f337e6869034751a768de58d2a7d199bd62c2e238751f5caca49691dab17afb
b349c93d5e5518abb4ef3ff00e62699a47f8623d52de1785ec6df4ef32dd58c91db40b71a2c5771db
ca91c7302beb738c31a3bf1f47d4598ab62af41fccff003df983cada56953e97214d526b396fe5856d
1de099ad9edb9c659d5996ab2bd2209ebb0f8f922c325556357fe7af386ada34da8c5ab5c6897916
b96365aa68d1e9d5974db64d7a1b477373221568e6b56f549656e6a7d589d620c3155297f34bcdd
68271797d244f0aeb56f78174c331b692d3cc56f656321002005eca7f50976f4f80fac95f4d5b92a8e
fcb3d6f52f31fe63c5aceac2ba849e599acee6558da34792cb5cb9852a0aa8e4635573455fb5c9542
918aa45a6fe667e693fad7c97506b3a6cba86afa66a62dac046743834dd7d74d8aecf1773316b767
95a27ff7cf35f8164aaa86f3beb3abcb6be61d4af60b6d5355d3fcb7e71b3d32e2e2cfd68754b2b79b
4f96d04b6ebc564e64cb1715a2ca51de35e2698aa77e64f3c6b5a8f95fcf845d44b75a369da94517
956ef4b6b98668a0b7492d2e03fc1cd2e45682ad1bfaa2341ea44dc95568bf30bf31351d47cd1f50b
8b0b7fd1d2dc5858e87730cf15c2341730a5bdcfaef07a4b1dcc0cc52591a483d5922fb2914f8aa7b
adf9f75c8ff2c342f3158cb7365ad6aac21e777a7709c4ab04f271921e52471727842f3fde23d78c35
6962c5588dbfe68f9f6f7488fcc926a76b69a6cf3e9163796e34f751a68d5b4cb5bb92ea699bd66e3
15c3496ff00145c13d4fdeff778ab3bd57cd7ae5a7957c9eda95e436f36bd711d86b5e61b6b491ad2
0adb4d2095219d6a893c912468f28e0beafbae2af34f2179cbcdf1683a27962d2fa1d22cf47d06c91
e0b8b59feb7790cda63b35ddbd622a8d6f70bc5c33948c46eb32f278ce2a967e5fea9ab796347d24
686d636dadebba1f926e756d624d397eb925d6ad7f25a5e9ba2ae9eac9121e757a3ab7279791727
15655a47e6879feeef74dd31e7b5fadda72e6f3da4cbfa7d6df52bbb0b816cb046e22995208640a24
0a866f51c35bee154dbf2a755baf3179e35cd6f50bb37926b1e58d02e2e2036e6d96dae1ae352f5e
d38d01e50f25460ff00bd1f0fa9fb38ab02fcb6f317e65f95bf2eb4e6b697ebde5dd034db1d6352b54b
10b7b6b6b6f7b2457da6d198b4931b6569d1a9eaabc5e9f1fdf27155ec1e6df30f9bf42f20d96ab6ce
92f982e66479a3748ade6f424f5276862f5bf702648c711eb32a48c85792c8e98abcc3cc1f983e6bf3
0d8f983caf74cd3437906b96cb62fa7cb6f74f667cb76f7f66e57764637124a837f8a9e96ef1e2a986
9ff983e7ad30d9796751d5e08f4aba1c34df3d2e9acf6cb3ae9d15ca593c28ec84fa8cc9cf9869157d
15ff0048f8b1541ebbe7ed6bc8b6be78bed01f8df0f306a5a8259cb6b24a9722cf48d3e6688313fbb0
eecff02832b90fc38f0919554f355fccdf3ac03cc296682592d6ed64d365812dcc32e981ee030b7926
2aa2ed5635e76f77e97a9c1feaf2912c7c555b6bf99de78d59bcc13d8cf676935899ecedb42d42da7
b4bc468e7b716d72f2489e9c6b730c8dc5a5630acd244b5e314f8aa7bad7e616b517e56685e65b0
9e6b5d6f56fdc87bcd3cc7299d209e4e2f0f36488b34340d5911ebc61e4d2c58aa9fe5b7e64798fcd
be60b28b568d63d3f51d221be823b5881863b8fab59c93c7317226865492693887568668f87a6fea
45282abcfbcc3aafe96321ba482168edff322c644b559208e448e5510bba976f8e503d4e55f8d8b34
7b62ac834bfcc9f3269b369ba18beb75f49e1b7860b9b69086b27f2a2ea31cd2491d5822dea32730
3e31ce3ddd715639aefe6f7e65e9a975aa4779f547d3bcadacde8d3af6cede7b7b9d6ac2fa089552
6b57e33288a4aa18641c97ed46adcd7154f7cd7f999e75d1f51d57cb367ae5bdf5fc3a6ea1125ddb
d808248af13449355b69e28cc937a8599782ff00ba587c0bce54938aad8fcdef38dabead2437169a
845a0db0864d3dada77d42f206b382e23d6624b78ca980b3c85c06f4b8c7e9a3fadb15530d2f5478
3f2f7f38b528352b6d77d2bad42e6d6ee6879d9dd29d16d1d57d38a450e8edc90fa6e03372e3f162

367

a88d07f31fccd3f9b74cd35ee6c8e833ead69a22d8456cc92fa175e5b4d585c7ac646fb13ab42004e
243713f1ae2a853a03f983f37fcf56d6c9612db5bfe809a76bc9ae565b752921b992d7d1650925156
a6abf1f0e78aa0b4afccbd752dbc95a2695a8e89a49bfb3b49996611456f2abea2d6974891cd728e
a63854bc091bc8cf37c126d4e4aa11bf393ce89aac5a526a560ac905a5bdf4f7564c160bd7f337e89
98b859630ac2d584be996f878fa9fddb62acdfc83e73f35eb3e73d4b44d6752b0962d2deef4fbcd29
6de58351496c9d160bee2032a41749ca51cdcafc71ac2edc64c5519a6e93e5ff002f79fb5dd7e3796
c74fd274f48f54bbb99e79229ef353985c3bb196465ac691c7d1471f5e9d315627e59d66e34bfcd8d
62fb5aba71a0cabac982e0b98e6b716f776f1b26ad19db803be9722ffc7bc8eac2aca7157bc62aec5
5d8abb15762afffd0f7f62aec55d8abb15762aec5529f2ef96f48f2ad8c9a6e8913c1672dcdcdf3c724
b24e7eb17b334f3b8695988e723b3900d3931c5536c55d8abb15762aec55d8abb1575062aec55d
8aa0355d1b4ed6e2860d4a369608278ee9235964895a484d57988d979ad7aa3f246fda5c551d404
50ee3df156f157529d315762ad507875dce2ad915d8f4c55d8aba82b5efe38ab5c4780ff6b156e98a
b415400a000a3a01d31570503a0029b7dd8ab7403b7b62ad05500280388e83b6d8abb8ad6b415c
55d41e1fe671548b50f26f97b54d506af7b6cf25d18d219a313ccb6f3471333c626815c452702cc57
9a1eb8aa7a555810c0107a822b8aba82b5a6fd2bf2c55ba0fbfae2ad7040c5828e4d40c69b9a74ae
2ade2aec55d8abb15762aff00ffd1f7f62aec55d8abb15762aec55d8abb15762aec55d8abb15762ae
c55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55
d8abb15762aec55d8abb15762aec55d8abb157ffd2f7f62aec55d8abb15762aec55d8abb15762aec
55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55d
8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb157ffd3f7f62aec55d8abb15762aec5
5d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb1548b55f36e95a46a3fa2668af6e
7501025d3c36365737852191dd119cc11b85e4c8e054fec9c5511a4f982d7589658aded6fadcc4a1
99af6cae6cd4f234a2b4f1a063e2062a8cd42f63d3ace5bd9a39a58e200b476d0c97131a903e18e2
5666ebd862a910f3ce98403fa3b59a134ff008e3ea3b7cff718aa22cfcdb617d77159c565aa4724cdc
5649f4cbd8220684fc52490aaa8dbab1c553ec558e4be75d2e291e36b1d58b231525348d41d4953
4a86580823dc62aa67cf7a48ad6c359dbfed4da97fd93e2ac963712c6b228215c06018156a115dc1
a107d8e2a936a5e68b0d2ee9acee2d75196550ac5ed74ebcba8a8db8a490c4ea4f88aed8aa17fc7
3a4ff00cb16afff00707d47fec9f154e34bd4e0d5ad7eb76d15c451f229c2eede6b492abff15ce88d4f
7a62aa7ab6b36ba3471cb750dd4cb2b1551676b7178c0815f896dd1ca8f738aa0ac3cdfa4ea17f0e
9b1c57d6f757018c02f2c2f2d11cc6bc98079e245a81bd2b5c553ec55d8abb15762aec55d8abb157
62aec55d8abfffd4f7f62aec55d8aa9cf3c36d0c9737322c36f0ab4934d230444441566663400002a4
9c55241e79f259008f30e9c41e845d43dffd962adff8dfc9dff57fd3ff00e92a2ff9ab154c34dd6b47d64
48da4dfdbdf2c24098db4a92f02db80dc09a569b57154762aec55d8abb15762aec55d8abb15762a
ec55d8abb15762ac6edadae17f30353bb685c5a3e8fa7c493953e9b489757acc81ba12032923fca1
e38ab24c5507ab6a50e8fa5deead728ef6d61049753244bca431c285db8a922a683618ab1197f37
3c989e5cf2a79a209e7bad2fce9736767a0fd5eddde4797502047eaad07a4149e32349c423fc0df1
5062accbebf635987d662adbb2a5c0f517f76cff643eff093dab8aa5da879a744d2617bed4aea2b5d
163b717526b134b12592a99162553217fb4c5871db89fe6aed8aa622fec5a47856e6232c4824923
12296546fb2c456a01ec71563979f981a2437da8e9ba74375ad5de916c97baa2e971adc2dbc7287
31ab31750d2308d88890b494a1e3f1272553db4d634dbd8229e1b84025b78ef046ec164582550ca
eea4d546fdf155926bda24571696926a36cb757ef2c763099939cef6ebca558c56ac500abd3ecf7c5
5109a8e9f23c71c7770b492b3c712ac884b3c7bbaa80772bdc76c5501e57f32e9de6ed162d774a1
2ad94d2dc401674f4e41259dc496d202b53d1e26a6fb8c5538c5525d5a19a4d6b409238d9a28a7b
8695d412a81ad6450588e952698aa758abb15762aec55d8abb15762aec55d8abb157ffd5f7f62aec
55d8ab1dfcc0a7f80fcd1cba7e89bfad7c3ead262a9b5ac967f5583e38bfbb4eebfca31555f56cff009
e2fbd71549f4e689bcd7ad7a4548fa9e9f5e343fb775e18aaaf9c2e2e6cfca5aede59ced6d776da7d
d4f6f711f1e71c9142ceac39061b11dc1c55e1bf95fe67f3af9f2caf23d4bcc9a8e949a668da4ea1796
3722c57579af2e6ce49dee6168a168c69f3f24319f8dfd48a44fdcd193156e2bffcc53f965e4bf375ae
bfaa79824d574cb2d77cc9a459cd636dad3c06c55a6974de502a3aa4b2a4925bbfdb5f8164f8bd37
5596f977cdd7bae7e65f94adb4cd7e6d4fca9a9f9326d69808e3863b9b95b8b38e2b87429cd19a39
d98c7c94548f87e1c552cfcccfcccd7a4f20f9875af2c3c7a75b595c496769a9c37286fd2eb4dd620b
09e392d9e2202c959284312a9c7971322d154e751fce59acb51d674e874617cda7c6d35b3d9ccf7
3ce287523a74eccb1c459cc54333c76e27928af0f1f590a62a9cf96ff00332df5ff003343e5f68ade08
ef34f8f51d2eed677912fe3686195ded18c4a92a2197838e4268f8abc90aa4a8d8ab3fc55d8abb157
62aec55d8aa063d5ad24d627d09797d7edada1bd9015f83d1b99258d28ddcf285ea3154762a9579
9f4fbdd5bcb7abe95a734697f7d65716b6cf396112c93c4c8a5ca02d404d4d062af254fc92d6f4e403
4ad46d6485b5fd335eb7d3ee7d55834e8e0b982ff5182d1d1492b73730f34e4aa23afd18aa087e41
6b62c74cb49754b3b96d1e34b212489201a9dbfe9ab4d54cd7abc5bf7c896c634fef033cd249c943
70c5566b7f915e66d5f49d4b494b9d2ade1b9b6d4a1b5204cca0de798975cb78d9046a04688be8b
71fb24f245a6d8aa61e65fc95d7bcc1a56aba71bdb08ee27fd3b2d9df52412cbfe208dd7eab7544de
1b7693f764125960b7f823e38ab29d23c8faf7943ccdaeeb1e538f4b1a579985a4f7ba64dea5aad9d
eda40b6cd24060898491c88aa5919626e60b73fde7c2ab19f357e4bebde61b1d6ec5751b3f56fa6d
6eeed35095651339d734e9acc5a4e006fdc42f3735a3b7c30c2bc15979e2aa73fe4d7980dec9756a
7478a1f5af5adad38ca238e2d4342b6d2dcaf18800deadbfaa683e2590d4f31f12a8b87f262faded63
b0b696c6cedae2cb4182e9ad91a392caef43b8f5e49ed38a0e46e6b462de9b0650cc64fb215673f9

6de59d4fca1e538742d5a5826bc8eef50b9325a973114bebe9eed40e6aa6aa26e276ed8ab2cc550
d717d6f6d73696929226bd678e00054168d1a4353dbe1538aa2715762aec55d8abb15762aec55d
8abb15762aff00ffd6f7f62aec55d8aac9628a789e09d164864529246e032b2b0a1041d8823a8c552
aff00097956b5fd07a7d7fe6121ff009a31577f84fcac053f41e9f4f0faa43ff3462a8cb0d274ad283ae9
7636f64b2906516d124218aec0b7002b4c5556f6cacf52b49ec350823bab1b9468ae2da65124524
6e28cacad50411d41c552c5f27f95235b748f44b144b4b47d36d42dbc43d2b19451edd28bf0c4d4d
e31f07b62aa737927c9f71a65a68d368562da4d8294b0b2fabc621810d2ab1285a229a50aad011b
62a8db2d0744d3af6e752d3f4eb6b5d42f1634bbba82248e59561509187650090aa02a8ec062a82
baf23f936f64d426bcf2fe9d3cbab18db54792d616374d09050cc4afc654aa91cabf647862aa727907
c912cb34f279774e33dc33493cdf558448cf23ac8cc582d791745726b5e6397dac551d67e5bf2fe9d
7ada9586996b6d7ed1ac26e218911fd34508aa0a814015557fd5551fb23154d315762aec55d8abb
15762ac32faeaef46f3c5e6a6da55f5ed85e693656d14f650acca26b6b9bb7746f8c10693211b50e2
a9f693adfe967953f475f58fa401e57b07a2ad53fb26a6b8aa36faefea3692ddfa32dc7a42be8dba7a
92b6f4a2aed538aa463cde093fee0f5814ff009736dffe1b1557b2f330bdb98ed7f44ea76e643c7d5b
8b531c4bb56acdc8d062a9ee2ac75fcd8b1caf11d175660848f516cd8a353c0f2e98aa593fe66e8d6
dacda797a7d3b554d66fa096ead6d0d93f278adca8720d695f8b604fc546a7d96c5599a373457a15
e401e2c28457b11e38aa557fe604d3ee5ad8e9da85c9500fab6d6cd2c46a2b40c3b8c550bfe2c8ffe
acfab7fd21498aa6da75f8d46dbeb22de7b61c8afa57519864dbbf13d8e2ab353d4d74c48ddad6e6
ebd42578da42d3b2d056ac17a0c55226d465d675ed14c1a6df4115a49712cf3dd5bb411aab5bbc6
3763b92cc28062acaf15762aec55d8abb15762aec55d8abb15762afffd7f7f62aec55d8aa0759d4e1
d11610000026060f002220574d46430100000000000100000000000000080000000020000050bc
000050fc0000348d4359b846920d3ada6bb9638e9cd9208cc842d4815206d538aa509aff00991d5
5d7cab71c18020fd72cfb8aff00bf715475f6a7ac5b4a12d3439af632818ca93dbc6039ea9491d4ede
3d3156b47d6ae751bbbcb1bdd365d3aeecd6194a4b2432878ee398520c4ed4de36a838aa3355d5
b4cd0f4eb8d5f5abc874fd2ad10cb757b7522c304518eaceee42a81e24e2a934df989e43b7b3fd21
3f9974d8ec83b44677ba88209113d565625b62107335fd8f8bece2aa47f32ff002f96c57533e66d37f
47b3bc62e45cc6630d1a2c8f5606802abab313b00cbfcc3154e21f30e8573abcba05bea36f2eb704
2975369e922b5c25bcbf6246406a11bf65ba362aaf7daa69ba61b51a8dd456a6f674b3b313384f56
e6504a4495eacdc4d147862a8bc55d8abb15762a81b3d674ad46f2fb4fb1bd86e2fb4c748b51b789
c3496f248bcd56451ba92a790af6c551d8abb15762aec55d8abb15762aec55d8abb1579dbc379aa
697aa79e6de3905fa5da5ee8f13150ed61a5168d6353c4d16e90cec3fc9b8c559f5a5d5b5f5ac17b6
722cd69731a4d04c8792bc72286560475041ae2aad8abb15762aec55d8abb15762aec55d8abb15
762aec55d8abb15762aff00ffd0f7f62aec55d8aa47e74b6b9bdf277986cece369aeee34dbc8a0863
1c9de4781d555477249a018aa57079fb4f486346d1f5ee4a8a0ffb85d43a81ff00187154c754f36d9e
9370b6f369daadc3346b2f3b3d36eeea301ebb178a360185375ea31543796f50fd2fae6b1a945657
b6968d059411b5fdacd64cef11b867e2b32ab1003aef4a6f8aa5df9cda0eade69fca7f39f96f41b637
9ad6ada45e58d85a8648fd49ee226445e5232aa8a9dcb1c55e7b6bf97de6ab4d17f34edaff004893
54f33799f46fab695e61f56da392f236d3e4b6b7b19205644824b666e0d22feee752b297e5c95554c
7ce1e4df305ce8da15ef97f4fbeb1f3c68fa1b5b595f5bbdacb6771712c50c72e9ba9db4afc25b798c
31f27ff0075f0e492a301c95653e55d275e3f987e61f326a7a69d36c64d1f47d1a01ca32935c69f35f
4d33c211d8fa205ca042e11bed7c3b62af34bef287e676b7adce757b3d563f2e7e90d2f52310d423
9268a5b3d4eff00eb0d6d224fcd4b5ac96dc7d2584705e28bea47c9954d9fca7f9a06c62d2ae66bdd
4ada7d2753d2e68ee2f5e392286617df5397eb11cc04b70b1bdb433faabcd9c24d14e384dc9554b
7f2d79e21faedc476faf0b556d0ecb4cd37f4a7048b4e305aa5fb7a7f5821d91e27e7fbc495aafe94a
39b55543f97f44fcd4d53439b4bf39db6b0bad0d1c5be9ba843a8c50dbf37d3e4b79e3bc10cf5798d
c7ef165e2c7789d254e0f8ab27bcd3bcd365e48f246996ba6ea573616e905af9ab4fb4bb58b56100
b178c32ced7085b85c7a6cfc26e653a721552ab13f32795ff3196efcc52797ec35459754360b05fc5
7d0453992cf43b8851e6659636900bbf4837168ff0079c652b244ac8caa613e97f9af75717cdcaf520
d4ec2d9dae64938b58de44d69ce0fabc172ab34128598b49034173106997949ce238abd67cb1fa5
079774b1adc1f56d5d6d625bd83d6373c660a030f55be27dff0069be2f1df154db15762aec55d8abb
15762aec558ff009c6f2687491a6d933aea5ad4aba659bc69ea18dae01f52522a368a20f2927f9315
4ead2d6dec2d20b1b48c456b6d1a43044a28ab1c6a15547b00315483ca4bfa31f53f2c15e11e953f
3b050a113ea17959610801fb31b7a900e9fdd62ac9715762aec55d8abb15762aec55d8ab44d057c
3c37c55bc55d8abb15762aec55d8abfffd1f7f62aec55d8abb15762aec55d8abb15762aec55d8abb1
5762aec55d8abb15762aec55d8abb15762aec55d8abb15762aec552ad67cbba6ebaf6d2df1b849e
ccb9b69ad6e67b4910cabc5fe281d09a8db7c5585ea5e56b787ce9a0e9716adada58ded9ea735cc
2359d468d25b35a08cd7d7a8a095fa78e2aca348f25e8da2eb12ebd6cf7b3eab2db7d49a7bdbeba
bcff47127aa1009e47028dbec3c7c7156438abb15762aec55d8abb15762aec55d8abb15762aec55
d8abb15762afffd2f7f62aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb1576
2aec55d8abb15762aec55d8abb15762aec55d8ab11d61a9f98be541fcda7eb23fe1ac4e2acbb1576
2aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abfffd3f7f62aec55d8abb15762
aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abceb47d120f32f997ceb26af79a
8bfd4b5686d2ce38351bdb48a2806996537048ede68d07c723b134a92d8aa787f2ff004134ff0048d

369

5b6e9fee6754ffb29c55bff0000e875afd6756af4ff008ecea7ff006538aae5f2268a828b73aa81ff006d
8d48febb838ab7fe06d1a807d6b55a0e9fee5f52ff00b28c55a3e44d14f5b9d57a53fe3afa974ffa48c
55dfe04d1400a2eb56a0e9fee6352ff00b28c55bff0368d4a7d6b55e94ff8ebea5d3fe92315414ff963
e5cb9d52cb5792e756fadd8477115b9fd2da8538dd70e75ace4ffbad7a118aa3bfc11a39ff008fad57
6ffb5bea3ff6518aaf3e4cd2c8a7d6f54a529ff1d5bfe9f3f5f156bfc19a5500fadea9414a7fb95d43b74f
f77e2abc793f4d14a5dea9b6dff1d4bfff00aad8aad3e4cd2d850ddea943ff006b5d407ea9f1568f92f4
a6ad6ef54df6db55d407ea9f1577f82f4aff0096bd536ffb5aea1ff55f154bb5af2f5b68d649a8d85eea
4b731ddd901ea6a57b321592ee2460c924cca415620823156678abb15762aec55d8abb15762aec
55ffd4f7f62aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8ab
0df25003cc1e7ea77d762aff00dc234fc559962aec55d8abb15762aec55d8abb15762aec55d8abb1
5762aec55d8aa45e6f00e8841ff96bb0f6ff008fd87154f715762aec55d8abb15762aec55d8abfffd5f7
f62aec55d8abb15762aec55d8abb15762aec55d8abb154b354f30693a34f6b6ba84ccb757bea7d5
608a196e2490420172161473450c2a69df15437f8b747f0bdff00b875f7fd50c55dfe2dd1fc2f7fee1d
7dff005431577f8b746f0bdffb875f7fd50c55dfe2dd1bc2f7fee1d7dff5431577f8bb46f0bdff00b875f7f
d50c55aff0017e8be17bff70ebfff00aa18ab14f296bb6763ae79d6e2ee0bf8a0d43598ee6c9db4ebe
02484697630975fdc6e39c6ebf35c5595ff008bf45f0bdffb875fff00d50c55dfe30d137ff7b76ffb575f7f
d50c55c3cdda29ff0096cffb87df0e9ff3c31577f8bf45e9fe99ff0070fbeffaa18ab47ce1a20ff96dff00b8
75f7fd50c554ee7cf1e5bb2b76bbbc9ee2dad2301a49e6b2bc8e34076ab3342028dfa9c559162aec
5526d6bcdbe58f2e4d0dbebdabda69d7172ad24115ccc913ba210199558d48058027df154b7fe56
77e5eff00d4cda77fd24c7fd71577fcacefcbdffa99b4effa498ffae2aeff00959df97bff0053369dff0049
31ff005c55dff2b3bf2f7fea66d3bfe9263feb8abbfe566fe5effd4cda77fd24c7fd71577fcacdfcbdff00a9
9b4eff00a498ff00ae2a93f99ff313c8b79a4982d7cc7a7c937d66cdf82dc464f08eee2773d7b2a938a
a71ff002b3bf2f3fea66d3bfe9263feb8abbfe5677e5e7fd4cda77fd24c7fd71577fcacdfcbdffa99b4eff
a498ffae2ad8fccbfcbf6e9e65d38ff00d1c47fd7156ffe5657e5fd69fe25d3abff003131ff005c557ffcac
5f227fd4c7a7ef4a7fa4c7dfe9c5571fcc2f230ad7cc5a7edd7fd263feb8aaeff1f79229cbfc43a7814a8
26e62dfe5f162afffd6f7f62aec55d8abb15762aec55d8abb15762aec55d8abb1561fae9ff9085e501e
36dabfe096d8ab30c55e236ff9eb7b6d7972faa69b0dc695a7eb7ade8fabfe8d17135dd8d968693c8
75096308e0c4c21e2c95560f227a7ea7d9c55945b7e70f966e2eccd2cb3d8e9074c4d4e1fafd85e5
a5cccb3dd25b42d10963557595a4448d17f78ceebb6f8aa2a7fcdef27c1aa43a11fd212ebb35ddc69
c74c834fba9ee23b9b48e19a4590471b055114f1caae4f0788f35638aa4da67e78f97df4f4bbbf8ee2
e628f47d47cc379a869d69706da3b3d2ef5ed250239409f9a953c97d3fd934d88c5532f31fe657d52
6f2e2f972386f61d6b5cb1d12e679b97a71a6a164f7cb244d1921c8455aad69f1fdac552bd7ff003cf
40b6f2c6b5acf97a1b8babfd2ed26bf86defad2ead23b886caf56c6ebd3668c1631487890a3ed14a5
41c5534d43f3b7f2fb49b292f355bd9ec1a09ee6dee6cee6da68aee16b21134ccf0b286e2ab3c4f50
0f25917872c5575d7e6cf97db54fd11a71b9f5edf57b7d0ef6eee34fbe1642e679a388c2970b17a66
43eaa1425bd3f8b916e38aaac3f9b7e563a326bb7f1dee9da7bcf776e5eead9d422d8de2d8bcae57
928432ba85df9b57ecfc0fc556ed3f383c8b77a96a5a5ade4f0cba549a841773dc5a5c436febe8e50
5dc51c8e816474f514f14e5cd4fc1cb155bad7e717917cb76e66f305dcda64a8f3092d2eede58ae16
3b61134b37a6cb568904f192e9c87c54fb4ac15545fe68c892fe5bf98658d8346f62ec8ca6a0a9a10
41f7c559962aec55e49f98fe65baf26799b58f375a5ba5dcda1792355d4e3b4958c6929b3b986628
594315e41695a1a62a87d27f3e2cd2fa4b4f325839b3921d35b4dd5b4486ef52b6b9bdd5229a5160
16384b7d611602c78974e0e956473c315643a4fe6ce837705fc92c925d5d5b6a1a859c761a7d95e
3de2c5a608da632c1244afca212a0959470e6e8919666518aa1754fcedf26c715d2e8f7925d3db45
617326a1f51be9b4c48353f49edddee208597f7a927c143f6bed538b62a9bd8fe687972f3536d2a48
af2d273ad5cf96eda59eddc4135f59c0d70fc655e4aaa511ca172bcf8edbd3154a3cbbf999a97e60d
ef9963f21595b9b0f2dc89626eb5632c26ef5096d63bb11a222968e2549a3acadc98b31e31715e4c
aabdf7e6ff009674df5747d46f22b5f3741a7dd5d5c592acd776f15de9f68b77730192dd1cb1895b93
051cd96bc03302a15508bf34f9eab3d94a2d62b2f57cb71d85ed2e5c5c0f31f2014aac64c6d54a465
e89f12faac98aa676bf9b9e47ba9b5188dddc5b269706a375773ddd9dd5bc3e968b702d6f4a3c91a
8730c8caac12a7e25e35c558cf98ff3c6cadaef41b3f2dc49236a3e6193cadab3eaf15d587d42f23b1
96fbe20d1fc7f0c607c3f0fef11b9e2a99c5f9d3e55d3ac6097cc578bf589edb50d4925d2ed6f6ead8e
9ba55d0b5b8b92de8d5162661ea72fb2bf18aa6f8aa796df99be53ba9d2d639ae52e64bc9f4e4825
b4b88a43736f64751238bc6080f6c3d58d8fc322fd9f8b6c552ed3ff0034f4dbfd6668e24f57cb92e8d
a2eb7a45f40933dc5c0d7a7b88218cc1c032d4c2a457a73f8f871c554352fce5f2c4705dbe9b248f1
dbe916faf0d4e6b7b87b016b7572f6ca1cc28f2070f13865f4fe1a6fde8aa7979f98fe54b0bc9acee6e
a51e8bdcc06e1209a481eeaca06b99ede3911583cc91a3b7a6bf11e0eab575650ab1cbbfcd6f246a
ab69acd95e4ef65a05dc779aa72b2bb49a2b4bcd22ee7867113442468de325c3aa9f855ff0094e2a
fffd7f7f62aec55d8abb15762aec55d8abb15762aec55d8abb1561fae8afe617943dad758ff0088db6
2acc31562169f977a3d9f973ccbe588ee6e9ac3cd33ea575a8c8ce9eb2c9ac96371e9108028ab9e
0086e38aa5fabfe50795f5e8a087549af268edb4ab7d16de9222144b2b986f20b852a8089e39a08d
d5fecfc3f631545da7e5a68d69e6787ce02eeee4d792e2e6eee27768b8dc49776b059912288c7c29
15bc6b1aaf1e343d791c552ad3bf2a6cbca11daea1e53796f756d36c6ff4eb7b2d4ee123b3bb8353
bc37d225cb25b48c38cacc51a34e9f0b7218aab69bf94ba3d9f96fcaba0fd626b51e57d4135ab6faa
b29437aa2501099518b428b33471afc2446b1afec62a87b9fc94f2edde9eda6cba96a3f576b4bfb06
21e00de96a9a826a731afa3f6bd58c053d93e1a1fb58aa22e3f2874a9bcc12f9a2df5bd5ac75c9aea

eaea4bab596dd39477f05b5bcb6e55a0653181690b26dea4722f3593154737e5a692d0dcc1f5ebc
11dcebd6fe686f8a2256f2d5a274404c6498ab02541ab9dfe3c5529d57f25341d5ac9b4d9f59d5a3d
38fe9009691cd07a68baa5e2df3850f0350a4abfbb7fef0465a266646c5565c7e467952f12f62bbbdd
4258b50bad5efee9449121371af222ceeac910643198d5e12a7e0715f8b1546cff9516f737ba5eb13
f99b5b7f30e9905cd97e98f5ad85c5c595e7a5ea412a8b611501851d1e38d25492aeaf566c551ff99
f1ac3f96de60892bc23b0745e44b1a2d00a962493ee7156658abb15797f9d3cb569e72f3b5e794b5
09e6b7d3b5cf27ea3a75dcb6a5567586e6ee08e4e0ceaea18ab1009534c55945f7922cefecbcb365
2dedcaaf95aeedaface44f4434d25a42f02896b191c4ac8dcb804dfa531549ac3f28b44d2f589f5fd3b
52d42df599eff54d49ae91e1a8fd38b08ba83898b898b95bc32206059648d5b9f505550ff952be568
b47d6741b1b8bbb2d2758834bb56b780c216de1d14288043ca26fb5c7f785f9f2f6c5547ccbf959fa4
f4dd47cbd61339d2bcc7aba6b5aade4d71e95cd84d1bc52992c7d28092f2345c7e3917d3e6d42cbf
bbc559043f97da769dae6adaf797ef6e7449f5e4886af6d65e8fd5e69ade3f463b8092c6fc2611858c
ba5032227253c062a978fca9d3227d7a3b5d6354b7d33cc42e1eff4b59616b7facdedafd5669d4bc2
d2f271fbc2ad2345eb7ef785715535fca2d155d1c6a57d546d05d77b7fb5e596e76bfee9fda3fdeff37
ecf0c5501af7e5206d27501a0de3cdabdcdbebb6a916a0d12db3a79a2f23bbbde456ddc82a53f71f
0b2afd991645c550fa67e4fcd345a2c9aaea9359cde5cd55b5cd156d12cccab732da4968ff5a916d6
349eab2bd0fa6add393b5178aa996adf93da6ebb757b7dac6bbaa5d5edfe95ab6852ca5ad942596
b86033ac48b00542bf574f4f6ea5d9f9b3d71544dd7e55699737edaa7e95bf8751faf45a9477111b7
05268f4b3a3b280d0b2957b7635a82449f1a15e98aa0e0fc98d1ad2decadecf5ad5601a7d868ba54
0f1cb002f6be5d9659ad9261e8f190399984eac3848bc7e15a62aa6bf921e5f8f4ab9d21355d485b5
de94341b872d6c646b44bb9af2335f4281d1a7917901f12fda1c872c55367fcadd09dee297374b6d
3ea377ae476bca331c3a9dfdb496d34f1f24277f5a490212504ae5a9d171548a6fca9d13499d2d2d
ef6f5d7cc515b6877af2344592df4ed12fece378e91801ca484b5432f2fd918abffd0f7f62aec55d8ab
b15762aec55d8abb15762aec55d8abb1560de6bfd23fe3bf287e8bf43eb3f56d5ffdeae7c38f0b6e9c
37ae2a9f7fcedf5dff0046d3fe7be2ad8ff16d3e2fd1d5dfa7aff462ae5ff176fcbf4757b53d7e98ab63fc
59dff477fc97c55dff003b5d7fe95f4ff9ef8ab8ff008b3b7e8eff0092f8aaeff9da7fed5fff0025b156bfe76
9ff00b57ffc96c55bff009da7fed5ff00f25b1577fced1ff2e1ff0025b1577fced1ff002e1ff25b1577fced1f
f2e1ff0025b15627f99dfe22ff00007983eb1f52f43ea8fea70f5b971a8ad2bb57157a1e2aec55e7da9
7d7ff00e56f597e8ef4bd6ff0ddd73fac73e1c7ebf6fd3877c5595ffcecdff2e1ff0025b1571ff1376fa857
fe7b62aeff009d9bb7d43fe4b62ae1fe26eff51aff00cf6c55dff3b37fcb87fc96c55b1fe25a6ff51aff00cf
6c557ffb9fdffde3f6fef7156ffdcf57fe3d29ff003d7a62adff00b9beff0055ff009298aaeff73141fef357bff
798aae3fa5abb7d5e9efcf156ff00dca7fcbbff00c3e2ab87d7e8797a35ed4e58ab7fe9d5ff007553fd9
62a936b5f5dfd23e5cfeeb97e9193f9a9ff001cfbcc55ffd90840010824000000180000000210c0db0
1000000030000000000000000000000000000001b400000400000003400000001000000020000
00000000bf000000bf0000af4300000c43030000000000008000000080fe7fe94300000080000000
80ffff3a432100000008000000620000000c00000001000000150000000c00000004000000150000
000c0000000400000051000000e8c400000000000000000000d2010000ba000000000000000000
000000000000000000005e0100008c00000050000000180400006804000080c000000000000020
00cc00d3010000bb000000280000005e0100008c00000001000800000000000000000000000000
00000000fc0000000000000000000000ffffff007d7d7d0063636300727272005a5a5a006f6f6f00656
565009a9a9a004f4f4f00fbfbfb00fcfcfc00fefefe00fafafa00fdfdfd00f8f8f800f2f2f2005454540094949
400989898004c4c4c00f4f4f400d5d5d50020202000e3e3e300d6d6d60051515100f6f6f600f9f9f90
0dfdfdf0044444400d7d7d700b4b4b400575757003838380033333300e1e1e100c9c9c900535353
00dddddd003f3f3f00a9a9a900c7c7c7007575750069696900ebebeb0067676700c2c2c200eeeeee
005c5c5c00b1b1b100bbbbbb007c7c7c00f7f7f70064646400cbcbcb009090900099999900979797
008c8c8c007f7f7f00cacaca00a3a3a3009c9c9c00a2a2a200f5f5f5009f9f9f00888888003a3a3a00d
1d1d100a0a0a0001e1e1e00acacac007171710096969600b6b6b600f1f1f1008080800049494900
ececec00d0d0d000d4d4d40046464600dadada003c3c3c00cdcdcd00c5c5c5002a2a2a00ededed0
02f2f2f00a1a1a100eaeaea0048484800c0c0c000aaaaaa0041414100bfbfbf004e4e4e0095959500
dbdbdb00efefef00c1c1c1004a4a4a00b2b2b200e5e5e500d2d2d200d3d3d300797979008b8b8b0
0818181008585850042424200dcdcdc00e7e7e700b0b0b000343434008a8a8a00828282007b7b7
b007a7a7a008f8f8f001c1c1c00cccccc008e8e8e00f0f0f0009292920086868600dedede005f5f5f00
9d9d9d00aeaeae00e6e6e6009e9e9e00e4e4e400878787009393930078787800e8e8e800afafaf0
0c6c6c6007e7e7e00bababa00c3c3c3001d1d1d00b9b9b900b8b8b8006d6d6d009b9b9b0091919
1002d2d2d00a6a6a600d8d8d800a8a8a8005e5e5e0077777700a4a4a400f3f3f300b3b3b3007474
7400e2e2e200b7b7b700a5a5a50037373700e0e0e000a7a7a700cfcfcf002222220027272700252
525006a6a6a00848484008d8d8d00303030002323230066666600060606006868680004040400
61616100bdbdbd006b6b6b00adadad001f1f1f001b1b1b00bebebe00212121004d4d4d004343430
07070700045454500242424006e6e6e002b2b2b00c4c4c4003e3e3e006c6c6c0073737300d9d9d
90032323200363636001212120031313100b5b5b5003b3b3b007676760035353500cecece005d5
d5d005b5b5b00191919003d3d3d00bcbcbc0089898900e9e9e9005959590060606000ababab005
050500040404000585858004b4b4b0052525200565656002c2c2c0055555500c8c8c8006262620
0262626002e2e2e001313130029292900151515001a1a1a000c0c0c00161616001010100039393

371

900838383000f0f0f00111111004747470028282800090909000505050002020200171717000808
08000e0e0e0018181800030303000a0a0a0007070700010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010c0101764a2a8e3d25e1e1e1253d37255637a53d555037252a2a37cece555537377a7a5
55555cea5ce55555555cea5ce5555557a7a3737505050505050505050505050505050505050505
0505050504545454545454545454545454545454545454545454545456a45a56969503ecc01010
101010101010101010101010101010c01320797ce6a6a6a6a6a6a6a6a6a6a5151516a696945516
a6a6a6a69696969696a51161651516a6a6a6a6a6a6a6a696a5119191916167063c553702763531
d7063272763701d1da3a3a3a3a3242424186868859f18855bd5718368686883898989898989898
92d5b2d587c4c7c307c7c643030647c7c583010109cab000001010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010c0c8660010101010c0c0c0c0101010b01010c01010e010e0e0c0101010101010
101010101010101010c0c010101010101010101010101010101010101010101010101010101010
10101010101010c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0e0101010101c13c010
101010101010101010101010101010c0c01b5c40101010101010101010101010101010101010c0
1010101010101010c0c0c010101010101010101010101010c0c01010101010101010c010101010
c01010c01010c01010c0c0c0c0c0c0c010e010101010c010101010c0c0c0c010101010101010101
01010c0c010101010e01010c0c0c0c0101010c0101010800000101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010b010c0b6e5d010b0101010101010101010101010c0c0c0e0101010c0c01010c0101
0101010101010c0c0c0c0c0c0c0c01010101010101010101010101010101010101010101010101
0101010101010101010101010101010101010101010101010101010101010101010c0a0a018b6b
0101010101010101010101010101010101010b969201010e01010101010101010101010101010
10101010101010101010c0c0c0c0c0c010101010101010101010c0c01010101010101010c01010
1010c0c01010c0c01010c010101010101010c0c0c01010c0c0c0c01010101010101010101010101
010101010101010101010c0101010101010101010c010c0c080000010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
010101010101010c01010ced8d010101010101010c0c0c0101010c01010c010c01010c0c010101
01010101010101010101010101010101010101010101010101010101010101010c0c0c0c0c0c0c
0c01010101010101011610000026060f002220574d464301000000000001000000000000000800
000000200000509c000050fc000001010101010101010101010101010101010101010101010101
0e01010101566b01010101010101010101010101010101010c01829e0101010101010101010101
01010c0c0c0c01010c0c0c0c010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010c0c0101010101010101010101010101
010101010101010101010c01010c0c0c0c010101010101010101010c0101010800000101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
0101010101010101010101010101010e010caa60010c0101010101010101010c010e0e010a010c
010101010e010101010e010c010a010c01010d010e01010e01010c010e0b0101010b0c010b010e
010b01010c0c0e010e01010a010c010c01010e0c010c0b010c01010a010101010c0101010e0101
01010c01010101c16b01010101010101010101010101010101010b0e209a0e0101010b010c0b01
010b01010c010b01010c0b01010e0101010b0e0a010b01011c010c01010e010a010c0101010b01
0c01010c0c0c01010e0c0101010101010b0c010c01010b01010c0101010b010c010b010c010101
01010d010e010f010c01010e010a010b011c010b010c01010f010a01010b01010b4200000101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
1010101010101010101010101010101010e010caab8010c01010101010101010b01010c0c010e0
10c0a01010e010c010a0101010101010b010d0d010101010c01011c010a010101010b010b0c0c0
10e0101011c0c010b01010c0e010101010d0b0c010a01010101010e0e01010a010b010c0e0c0d0
1010a0e0b0101010156760101010101010101010101010101010101010167490d010101010a01
010e0e010c010c01010e0101010c0b0e01010b010e010b0e0b0a010b010b010101010a01010a01
01010135010c010101010c01010c0e0b0101010101010e0e0a010101010e0c010c0e1c010b010b
0a010b0101010101010b01010b0101010a0101010b0101010a0c010e01010b011c0b0184000001
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
010101010101010101010101010101010101010e010cedb8010c0101010101010101010c0e010c
01010b01010a0e0a010b0101010d0e010e0c010d0101011b010d30010e010c010e01010e010a01
010f010c0f010a0a010e010c01010e0b010f010101010a010c010c0c0d01010b010c0e010101010d
010d0c01010c010b0d01259a010101010101010101010101010101010e0101a04901010a01010f
0101010d010101010e0e01011c010c0c010e010101010b0b0115890101010101010a0b01010e01
0b0e0e0c010e0e010c0c010c010c01010b010e011c5b45d50b010e01010b01010d010b01010d0a

010c010e010e0c010e010a0101010f0b010a010e0c0b010c0b01010a010e0e0c0a01010d130000
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010e010cedb3010c010101010101010101011c0d
010101010b010e01010101010e0101010e010e01010c1b01010f94da5a01010b1c010101010b01
010d010e01010d0101010a01010e01010a010d010e010b010c0a010a0c010c010a01010c0b0e0b
0e011c010c0c0c0101010c01e16b01010101010101010101010101010101010101209e0c0b010c
0101010a010e0a0b010c0a010c0b0101010c010d0c010c010a0101ab52600d0a010e01010d010a
01010b01010e010b0b010c0a01010c010135010d010a02b28167ca7c0c010e010c010e01010a0c
010b01010e0b010a0c01011c010c0e010c01010e0a01010d010e010101010f0101010d010c0142
00000101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
010101010101010101010101010101010101010101010c010c75d3010c0101010101010101351b
0b0b010d0e410f0b0d0c0f41010a300f010a0d41010a0d1b0b014135d56346831b011b1c5815411
b410c4c0d159c0a0d151b0101640c0e41641b0a0b4c35010a4c0c0e4f01419c9c4101414f01011c
7c010e0135d501010a0f01010e8b770101010101010101010101010101010101010ba4c40e1b1b
301c0d0101837c010b4c150a0e1b7c100b0cd5410a0b649c0a01644c0f187568010f0c017171d50
b0d01016415011c7c1035417c1b417c0d4c101c1b107c7d981c1dab3e35d57ca31889014c64150f
58414c4f58010a710d0c649c101b019cd50168010c85150a5835019cd52d0101585b014c71017d0
00001010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010c010c75d3010c010101010101010127d76
2580101582c7e4c357e06012788ca81299c9e765b0aaa809c3d1e3a0e019088010a97de34533ecf
24a4de273bb4d587dc643922a9740b7bd0d51c46de859c1a843714d46e3137b28c9fae6d0b88cd
b2d801abcd2e7d3501010c0e0125cc01010101010101010101010101010101010c0182770a4be3
6b30010aa361771564d6de10e1cfb893ce4ca9b2159c2e03d59066653501c4c30c010fbc9e8ad37
b7f0ed0bb2c5a35b206303826858a6f5319bd2524232a9c5ca907768396a76b964821d46057a516
a267d5618a0f213c74221919d23da1c29bbfcf4c496b9778e04f9fc3909d81016c364f4dde309b000
00101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
101010101010101010101010101010101010101010c010c6d330c0c01010101010101010ce46c0
10d010ef0740c0143d71ccfae01254e1531740b01edbb0143f07c010e341e1b0101ecaa014b6101
5d5c0138d0018b6671df2b10d86384b00c0190660b555c1c67ec0dccd70e5c3601cc7d69b94b71c
a2aaf460e3a5641010e0a013734010101010101010101010101010101010e0e0182bc0185f7980a
0a0101d042010c80dd01bd6e0170369c6eb0010e2e6e0b3477100e0128660c9cc45483010b5160
42c67f581301b43c019b8001c1bd0b0c23857cc24c356e9bce0101690090010c1894b3eb2d35c61
901141fc5e60d8ec09c35c09f78cb0c2c3f0ada330132de0106ae0c1b61684b060b0614013900000
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
1010101010101010101010101010101010101010c010c6d330c0e01010101010101010bcb390c0
10101217d010e13924ff4910c0195b3c494010bd46f01d4cf010b5d234691010ebdab015dde0a7a6
10c13070ec5617ad2892d0d1b9b0701015ddc01c12e010e96b87e9201f0b40a023a788801010e9
622684f412d01010e01018e770101010101010101010101010101010101010e206b0a10d1420a0
10a01e0960101d6cf4fb7100b0dbeb375020a0e2bcc016d760e0196119d2a65004b010e01010c03
34154c010dbc3c01a1800e656f011c5f6364ec5b9cbd2902740ca5fbb30c01a301e1ee890e225301
dd7a1dc70d63cd0f1b23700e678b6b7d01da650e8acf01cb480101f0d3d304013cdc013f00000101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
0101010101010101010101010101010101010c0c017590010101010101010101010e2299a1397a
010902010178bf1b23a00183b61f2c2b0e0e7ec20194d00101da9ed56e1c01da7801d3140ee15c0
139260125141d44436ba22d93d01c35b3ba0e3dd701105e15072c015cd701063a564d0110d33db
6aa4da8550d010b010c8e6b0101010101010101010101010101010101010c9dc40b10ea3140753
301d96d351cde0515da180119a89f9eae350f2c6d0d863c0c0eec8e647b4a001f010b01010b461a
8261ba0b2c34015a8001a05f0a0fcd194fc9351fda0b93ac4119fa349d86b20165f71f0fbe250c5c53
7f730b97ac1541c91989380bb4380a4ed3015adb0a049b0b4fc91d9b310c2e5f018400000101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
1010101010101010101010101010101010c0c017590010101010101010101010ac63b89a1a78d9
52303434eae0a90881803b083cd95db81dd4e0f496f6391f7ce017b50015fab0e8cb6abd004353ae
3381e88013b137e4e0d36e6d080ccbb0108c29064d07a77081bf1acaa446a01aa724ade1c3a96c4
994c01010c0c0c2a6b010101010101010101010101010101010b010120c40d4ff8934c38f84bc7bd
1494da310a9192721a0841f0cdba8c5caa0121211639b95301aa04f9370e010c0c0135878222aa5
8eced01b52101742801b88f92ae521c354942c2c62f1f00082dca490162c8940521390766358ad24

373

1cac91c0f73a318b491a969d5ad3451cc0501189a67046c0c315caa593f353a0000010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010c0c01ed8d010101010101010101010c5487010fc893c5c5ca7
0c5700e011625e10f012585336383630c43dc16533397017a1d016f7b017f161f8a64014ad68e331
0010d45a05b0a71c52a3758700b9052a5012d65370d1b271f8b65010c0d559064010e37d364010
10e01010ce1cc010101010101010101010101010101010e0e0cb5bf0164eaa40a4cf4625b2d8b18
588301016390a5010127a3e153894c016d2ea318a51b0b7056f578011c0168390c9c56510e0e2d
5b0148b20d0fd50f411fd52f2401010d5616101c50f6c10e0163647ca389554c0d65850183a30c71
680b0decce019ca518016480421b9c100c012d2fce010c2d1bd56a010c840000010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
1010101010101010101010101010c0caa330101010101010101010130954d63772218010101013
3ca0b01011c010a010101010e2981010f19010a0e010c0a014f5949410c010e01010b2b99011501
0c010b0101010a010e012f3e010a5b0c0c0b010a0101010101010c01010b010b0b01010d010e1c
0b01010e2a8801010101010101010101010101010101010c01b5c401e1ee3433d026d50a010e0c
7b5e011b0101010c0e0c0101359690010f2401010135010101554e08184514040c010135010162
7a0bc4db0169430b010d0101010e01010101010167ee77207275c1010c01010c01010e1b010e01
0b010125a8190101010e010a1c150e333f0d010c01011c0a01010c01010c4a0000010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
0101010101010101010101010101010c0c6e33010101010101010101011f3f204b9d351c0101010
12020010b0a010c010e0e0e010e725a0c0e0c0e01010d0101357f42679701010a0e0e014b90010
11c010e01010a010b010a0145980101010d010d01010b0e010d01010f010e0c0c01010101010e0
10101010c0c8b34010101010101010101010101010101010a010129c40f186790b88b1c01010a0
101a1a0010101010b01010d011c0132e10b0101011c010101010c0c9cca6733a019010c010b010
b67510e65560a278a0e01010b010d010e0b0e011c417ad3d3b8914b10010e0c0d01011c0101010
a01010e0183a05b01010a01010c01010d698e0c010a1c0101010e0c010f0101870000010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
1010101010101010101010101010101010c0c7ed30c0101010101010101010a010d0c010c010e0
c3501010d010a01014101010b010a0e010c010a01010c0101011b010e011c011c010101010d010
10c010b0101010e0c0b011c010e0c010a010e0101010d010c0e01010e01010b0e010b01010a0c0
e010101010b01018e6b0101010101010101010101010101010101010c962b011c0101010c0e0c0
10d011c010e010b0c0f010a0e010d0e010e01010101010b010c0101010b0b010f010101010d010e
0b0b01010101010b010b010b0c010c010c0c010c0d010101010a0c0101010a0101010e0c010141
0a010a0b0101350c01010c010b0101010b010e0a010c01010c0e0e0101010d01013a0000010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
0101010101010101010101010101010101010c0c86b30c010101010101010101011c010c010f01
0101011c01010c010c0b010b01010e0101010f010b01010d0101010e010c010a01010b0e01010c
010a010b010b0c0b0e010e0c01010d0e01010c010115010e0101010e010a01011c01010a010b01
0d01010e0c010e01018e9a01010101010101010101010101010101010c0172c401010c0e0e0101
0f01010e0101010a010c010c0e010e0e010c010c0a01010d011c010a0c0b01010101010e0a01010
d01010c0e0b01010b01010e01010d010d0e0c010f0c010e0b010f010e010a01010101010e0c010a
01010b0101010b0101011b010c010e0b0c1c010e010e0d0b011c01011c0a01010c0e8100000101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
010101010101010101010101010101010101010e0c43b30c0101010101010101010e01010a0c01
010c010e010c0e01010c0c010c010c01010e0e010101010b0101010b010a0c0c010e0b010e010b
010e01010e010101010101010c010d01010101010c01010c010e0e0c0c0101010e010d010e0101
01010d01010c01010b018b34010101010101010101010101010101010e010cca2b0c010101010a
01010c010c010c0a0101010e01010a010101010e01010101010b010e010101011c0c010b01010b
010e010c0c0101010a010a01010c0e010a01010c0b01010e010c01010a010a010e0e010e010101
0b0c010c0101010b0101010a0101010101010101010c0e0101010c010c0101010c0e0c01ab0000
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
010101010101010101010101010101010101010e01010aaa96647c303030303030303030303030
303030305858585858585858585858585858585858585858585858584f4f4f4f4f4f4f4f5b7c5b4f5b
2d5b4f4f4f4f4f4f4f4f4f2dd589d52d2d5b895b895b2dd55b4fd55b5bd5d5d5d55b5b5b5b5bd5d5d5
89898558898358d55e2b0101010101010101010101010101010101010cb866492b2b2b2b2b2b2b
2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2
b2b2b2b2bcc9e9e9ec46b9e9a9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e2b2b2b2b2b2b2b2bcccc9
a887776340276776b88886b77763c6eed6ded6d3c6e74866e6e86436e75ed3b7d7bd4430000010
10101010101010101010101010101010101010101010101010101010101010101010101010101

01010101010101010101010101010101010101010101010101010101010101010101010101010
1010101010101010101010101010101010101010b01673940465a5a5a5a5a5a5a5a5a5a5a5a5a
5a5a5a4646464646464646464646464646464646464646464646468484848484848484407d6f4a
3e5a408484848484848484844684818142464281428446405a3ea13e5a5a5a46465a5a5a42428
48484818181939b9829405a81b501010101010101010101010101010101010c0101c5685370272
72727272727272727272727272727272727272727272727272727272727272727272727272727
27272727272727277f631d6370c572372727272727272727272727272727272727272727272727
27707027277f1d1da324a31d1d1d1da3242483859f68182483d571686871716818892d4f2d587c0
00001010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010c0b01010d0e01010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
d5219c0c0a0c01010101010101010101010c0c0101010c010c0101010101010101010101010101
0101010c0c0c0c0e010101010c0c0a010101010101010101010101010101010101011c01010e0b
010c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0
c0c0c0c0c0c0c0c0c010b010e010ad8680c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c
010101010101010101010101010101010c01010e01010e01010101010101010c0c0e0a0a010100
00010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010c0c010b0101010a0101010101010101010101
010101010101010101010101010101010101010101010101010101010101010101010101010c58
661b0a0c0a0101010101010101010101010101010101010c01010c0c0c0e0c0c0c0c0c0c0c0c010
10101010101010e01010a0101010a010101010101010101010101010101010c01010e0c0f01010
10101010101010101010101010101010101010101010101010101010101010101010101010101
010101010101010101010b010e010181d50101010101010101010101010101010101010101010
10101010101010101010101010101010101010c010e0b01010e0c0c0c0c0c0c0c0c0c010101010
10100000101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
101010101010101010101010101010101010101010101010a01010a0c010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01012dba6401010101010101010101010101010101010101010e0c0c0101010101010101010101
010101010101010101010c01010c0e0a0c01010101010101010101010101010101010b0d0c0101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010c0c0181710101010101010101010101010101010101010
101010101010c0c0c0c010101010101010101010101010101010101010101010101010101010c0
101010e0e00000101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
1010101010101010101010101010101010101010101010101010e0b01010c0c0e010c0c0c0c0c0
c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c010101010101
01010189612d010c010b01010101010101010c0c0c0c0c0c0c0c0c010c0c01010c010c010101010
1010c0c0c0c0c0c0c0c0c010c0e01010e010e0101010101010101010101010101010101010c0e0c
010a0101010101010101010101010101010101010101010101010101010101010101010c0c0c0c
0c0c0c0c0c0c0c0c0c0c0c0c01010c010a0c409f010101010101010101010101010101010c0c0c0c
0c0c0c0c0c0c0c0c0c010101010101010101010101010e0c01010c0c0c010101010101010101010
10101000001010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
101010101010101010101010101010101010101010101010101010e0101010101010101010101
0101010101010101010101010101010101010101010101010101010101010101010c0c0c0c0c0c
0c0c01d5d910011c01010c0c0c0c0c0c0c0c01010101010101010101010c010c0b0c0c010101010
1010c010101010101010101010c0b010b010e010101010101010101010101010101010c01010b0
1010c0101010101010101010101010101010101010101010101010101010101010101010101010
1010101011610000026060f002220574d464301000000000001000000000000000800000000200
000507c000050fc00000101010101010101010101010c012968010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
0101010101010c0c01010000010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010c010c0b010d010a0
10101010101010101010101010101010101010101010101010101010101010101010101010101
010101010101010101018909410e010101010101010101010101010101010101010e010c0c0101
0c01010101010101010101010101010101010b0c0101011c010101010101010101010101010101
010101010d010c010a010c01010101010101010101010101010101010101010101010101010101
0101010101010101010101010101010101010101010c01010e01a4680101010101010101010101
01010101010101010101010101010101010c0c0e0e010101010101010101010101010101010101

375

010101010101010101010e0e00000101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
010101010101010101010101012ddb4c0101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
0101010101010101010101010101010101010101010101010101010c010ea18301010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010100000101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
101010101010101010101010101010101012dd610010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010c0e0c0c0101a4d50101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010000010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
1010101010101010101010101010101010101010101014f0510010c01010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010c010
19671010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010000010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
0101010101010101010101010101010101010101010101010101014fd09c010c01010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
1010101010ca183010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010000010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
1010101010101010101010101010101010101010101010101010101010101014f0510010c01010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
010101010c0e01010101a489010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010000010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
0101010101010101010101010101010101010101010101010101010101010101010101015bdb4c
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010c0101010ca183010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01000001010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
010cd5de7c0101010c010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
0101010101010101010101010101010101010b409f010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101000001010101010101010101010101010101010101010101010101010101010101

01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
101010101010c89e0640101010c010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
101010101010101010101010101010101010c0c010c010e3e85010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101000001010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101012d2141010c0c010101010101010101010c0c01010c0c010c01010101
01010c0c010101010c0101010101010101010c010101010c0c01010c01010c0c01010c01010101
0b0101010c0c0e0c0101010c0b0101010101010e0e01010c010c0b0101010101010101010c0101
0101010101010e0c010101010101010c010101010c010c0c0c0101968301010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010100000101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
101010101010101010101010101012d21580c0b01010c0c0c0c0c0c0c010101010101010101010
101010101010c0c0c01010c0c0c0c0c01010c0c01010c010101010c0c01010c01010c0c01010c0e
0e010c0101010101010c01010101010101010c0c0101010e010c0c010c0e01010e0e01010c0c01
0c010101010c010101010c01010e0e01010c0c0c0101010c0a010101010c9bd501010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010100000101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
1010101010101010101010101010101010b2d214f01010c0e0101010101010101010c0c01010c0
c01010101010101010101010101010101010101010101010101010101010101010101010101010
101010c0e010a010c01010c0c0e0c0101010c010c0c01010c0c0c01010101010101010101010101
0101010e0c010101010101010c0c0101010101010101010101010101010a0101015a8901010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010100000101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
1010101010101010101010101010101010101010c64db580a01010101010c0c01010c0c010c010
101010c010c0c0c0e0e0e0e0e01010c0c01010101010c0c01010c0c010101010c0c0c0c0c010c01
0101010c010101010e010c010c01010101010101010101010101010c0c010c0c010c01010c0c0c0
1010c0e0c01010101010c0c0c0c0101010101010c0c0101010101010101010a01010e01405b010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101000001010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
010101010101010101010101010101010101010101010183d90b0e0e0e0101010101010101010
1010101010101010c0101010101010101010101010101010101010101010101010101010101010
10c0c010101010c0c010d0c014101011c01010101010101010101010e0e0c0101010c01010c0c0
10c01010101010101010c0c0c0c010101010c0e0e0e010101010c0c01010c0c0c01010a010a0c01
3e830101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010100000101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
1010101010101010101010101010101010101010101010101010a71d99f0e0b411b411b1b1b151
515411541159c9c1541151b1b41159c4c7c64109c15159c109c9c9c151510109c9c4c7c4c9c9c10
4c4c4c4c9c159c9c159c4c9c9c1b30a4256441109c9c9c1010109c7c4c4c64647c7c306410104c10
7c6410587c4c7c64647c4c7c7c7c4c109c104c4c4c7c644c104c647c4c4c4c7c7c7c4c4c64156415
71845801010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101000001010101010101010101

377

01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
101010101010101010101010101010101010101010101010101010115ae9288342bc42b9a889a9
ec49ecc6b7788cccc88776bcc88763c75aa6e7e3c75aaaa756d6d754daaed3c8c756d0277024d6d
3c8c8c3c3cedaa6d6daaed3ced4daa43beb26caa6e6e7e6eaaaaaa6e6c948794947d78d4d49478
ab94abd43894124a1287124a4a877d943878abd486128738ab3b3bd46e3bab7babab3bab7bab4
343867b124a4f01010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101000001010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
101010101010101010101010101010101010101010101010101010101010e010f2d7c645b7c307
c104c584f587c109c106464109c1058644c15414141154c150f0f419c9c414c1b1b7c649c9c58301
0350f419c15414c350f9c9c0f354c1b9c9c9c06d315151b3535354141411b350b0b351b0a0d15100
e0a350b35100a350a0e0a0d0a0e0c1c1c0d0a0a0d0f410f0f351b0f0d1c41350f1c0f3535350f0d35
1b0f0a0c0d01010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010000010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
010101010101010101010101010101010e010e01047a010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010100000101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010e010c01c45501010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01000001010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
101010101010101010101010101010101010101010101010101010c010c01c4a50101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010100000101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
1010101010101010101010101010101010101010101010101010101010101010c010101c445010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010000010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
010c9e510101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101000001010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101

01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
010101010101010101010101010101010101010101010101010101010101010101010101010
Priority inheritance and garbage collection
Priority inheritance algorithms allow the blocking suffered by schedulable objects to be bounded.
However, if schedulable objects want to communicate with non-real-time threads, then interaction with
garbage collection must be considered. It is necessary to try to avoid the situation where a non-realtime thread has entered into a mutual exclusion zone shared with a schedulable object. The actions of
the non-real-time thread results in garbage collection being performed. The schedulable object then
preempts the garbage collector, but is unable to enter the mutual exclusion zone. It must now wait for
the garbage collection to finish and the non-real-time thread to leave the zone.
Wait-free communication
One way of avoiding unpredictable interactions with the garbage collector is to provide a nonblocking
communication mechanism for use between non-real-time threads and schedulable objects. The
RTSJ provides three wait-free nonblocking classes to help facilitate this communication:
WaitFreeWriteQueue This is a bounded buffer intended for the case where the
schedulable object wishes to send an object to the non-real-time thread. The read operation
on the buffer is synchronized and blocks if the buffer is empty. The write operation is not
synchronized and indicates whether it has succeeded in writing to the buffer.
WaitFreeReadQueue This is a bounded buffer intended for the case where the non-realtime thread wishes to send an object to the schedulable object. The write operation on the
buffer is synchronized. The read operation is not, and returns either an object or null if the
buffer is empty. The reader can request to be notified when data arrives.
WaitFreeDequeue This is a bounded buffer, which allows both blocking and nonblocking
read and write operations.
The RTSJ classes are illustrated in Figure 7.9.
010009000003d63e00000000fb17000000001610000026060f002220574d464301000000000001
002b67000000000300000000200000c82c0000c84c0000010000006c0000000000000000000000
d20100002a00000000000000000000006a400000eb05000020454d4600000100c84c00000c0000
00010000000000000000000000000000000005000020030000c40100001a010000000000000000
000000000000e3e306006e4e0400460000002c00000020000000454d462b014001001c00000010
0000000210c0db01000000600000006000000046000000381b00002c1b0000454d462b22400400
0c000000000000001e4009000c00000000000000244001000c0000000000000030400200100000
00040000000000803f214007000c0000000000000008400005841a0000781a00000210c0db0100
00000000000000000000000000000000000001000000ffd8ffe000104a464946000102010048004
80000ffed05ba50686f746f73686f7020332e30003842494d03ed000000000010004800000001000
100480000000100013842494d040d000000000004000000783842494d03f300000000000800000
000000000003842494d040a00000000000100003842494d271000000000000a00010000000000
0000013842494d03f5000000000048002f66660001006c66660006000000000001002f666600010
0a1999a0006000000000001003200000001005a00000006000000000001003500000001002d00
0000060000000000013842494d03f80000000000700000ffffffffffffffffffffffffffffffffffffffffffff03e8000000
00ffffffffffffffffffffffffffffffffffffffffffff03e800000000ffffffffffffffffffffffffffffffffffffffffffff03e800000000ffffffffffffffff
ffffffffffffffffffffffffffff03e800003842494d04080000000000100000000100000240000002400000000
03842494d0414000000000004000000023842494d040c00000000042a000000010000007000000
00a0000015000000d200000040e00180001ffd8ffe000104a46494600010201004800480000ffee0
00e41646f626500648000000001ffdb0084000c08080809080c09090c110b0a0b11150f0c0c0f151
8131315131318110c0c0c0c0c0c110c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c
0c0c010d0b0b0d0e0d100e0e10140e0e0e14140e0e0e0e14110c0c0c0c0c11110c0c0c0c0c0c110
c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0cffc0001108000a007003012200
021101031101ffdd00040007ffc4013f000001050101010101010000000000000003000102040506
0708090a0b0100010501010101010100000000000000010002030405060708090a0b100001040
1030204020507060805030c33010002110304211231054151611322718132061491a1b14223241
552c16233347282d14307259253f0e1f163733516a2b283264493546445c2a3743617d255e265f2
b384c3d375e3f3462794a485b495c4d4e4f4a5b5c5d5e5f55666768696a6b6c6d6e6f63747576777
8797a7b7c7d7e7f711000202010204040304050607070605350100021103213112044151617122
130532819114a1b14223c152d1f0332462e1728292435315637334f1250616a2b283072635c2d24

379

49354a317644555367465e2f2b384c3d375e3f34694a485b495c4d4e4f4a5b5c5d5e5f5566676869
6a6b6c6d6e6f62737475767778797a7b7c7ffda000c03010002110311003f00ef2aea3b31ea37519
77175153fd5a9b63c3def639fb5be97d1fe69fea7d0aebdf4ff00a55377506b595976266ee76cded6b
6c76df53c76bbdde9ff0086d9fcda9f4fff0093f13f9efe8f57d1e3e83558ff00d88494d41d4e825b38f9
ad0e9fa4cb43b4dff46bfa6ffe6ff37fd2548833c3582eab1f2dfef159a9cd7071dcddd3b321ccf631df4
ac46ffd885267f3d5ff003bc9fe738e0ffd24948307a7e0e111662e23ea76d8d1c4e8edbb9bfa4b3f90
d4f59b0e0dd92196df735d716d22c2c2edafb03296c3bd36bb6b7d36ad059347d17ff49fe76efe6be
87f3b67d1494c7edef82e1d3f38b5bf4bdc43b90df6b1d70dff00e7267f522c7303b0338b6c2035ccd
ce890f711637d46bd8e66cf7ff83f7ff388ff00fb1a97fec6a4a5b1f25d7566c18f938eeaec6b76de48dc
0bfd33b01b1ec731ccf7ff00e669efc7c7aee198306cb6f2e11b5c099f6996b7d5f49bfcdb3dcff4d9ff0
00890fa75ff0049fa6dfe77e87d21f496924a72c5d7b7131f23d0bf21d738facd6590eac1dcf27636cf
4dfe9edf4b652fff008af510c6758667a7e6812456771d6035deff00d36eaf76f45c5fe8ecfe91dfe871f
49dc22ffec4a4a693ba93c067f93b3a5c097cb9da10d96b416d8edce7d9fa167fd3d957e911f1721b
94db01c6ccc5d9587875ee7b41dc0fb5bb6e7fe92bff00088a7ff4290edfa0ff00e99c1fc8929fffd9384
2494d04060000000000070005000000010100ffee000e41646f626500644000000001ffdb0084000
40303030303040303040604030406070504040507080606070606080a0809090909080a0a0c0c0
c0c0c0a0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c010405050807080f0a0a0f140e0e0e14
140e0e0e0e14110c0c0c0c0c11110c0c0c0c0c0c110c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c
0c0c0c0c0c0c0c0c0cffc00011080020015e03011100021101031101ffdd0004002cffc401a2000000
0701010101010000000000000000040503020601000708090a0b0100020203010101010100000
000000000010002030405060708090a0b10000201030302040206070304020602730102031104
00052112314151061361227181143291a10715b14223c152d1e1331662f0247282f12543345392a
2b26373c235442793a3b33617546474c3d2e2082683090a181984944546a4b456d355281af2e3f3
c4d4e4f465758595a5b5c5d5e5f566768696a6b6c6d6e6f637475767778797a7b7c7d7e7f7384858
68788898a8b8c8d8e8f82939495969798999a9b9c9d9e9f92a3a4a5a6a7a8a9aaabacadaeafa110
002020102030505040506040803036d0100021103042112314105511361220671819132a1b1f01
4c1d1e1234215526272f1332434438216925325a263b2c20773d235e2448317549308090a18192
636451a2764745537f2a3b3c32829d3e3f38494a4b4c4d4e4f465758595a5b5c5d5e5f5465666768
696a6b6c6d6e6f6475767778797a7b7c7d7e7f738485868788898a8b8c8d8e8f839495969798999
a9b9c9d9e9f92a3a4a5a6a7a8a9aaabacadaeafaffda000c03010002110311003f00f65e8be72d7fc
c1a5da6b5a67961ce9b7d12dc5abcb7b6e8ed1c82aa4a8e5434ed5c551835cf371ebe5523fe8fedff
00a62aefd39e6fdc7f850fb1fd216ffd3156ff004df9b7fea563ff0049f6ff00d3156bf4e79bf8d7fc28795
3ecfe90b7fd74c55afd3be70a1a794cd4763a85beff00862adfe9cf387fd4a87a6ffee42dfafdd8ab86b
9e6f2b5ff000a90de0750b7fe031577e9cf3853fe515df6ff00a585bffcd38ab675bf380dc79581f01fa4
20affc4715686b7e7135ff009d540e94aea306ff0072e2a98685ac5ceabf5e8af6c4e9f796138b79a0
32a4e09786399583a6dd2418ab06fcdff23f983cde96674082dee1c58eada6ce973318021d4a08d6
296bc1eab1c90a92b4ad78b2fd9c558a4ff951e72b8d75e6b8862b8f2c5c6ab71a84da79be6b6bb5
b8b8292c775f5a8a22d32c122b7a41c25c4692b46aec91458abd1bf2f7cbbadf97cf983f4bac222d4
75292f6cf810f3f09547312ba851251ebe9bb2fabe9f1597932f22ab35c5583e87e64f3df98748b3d7
2c344d263b1bf896e2dd27d4ee04a237dd7985b1601a9d684e2a987d6ff0031bfeacfa2ff00dc4eebf
ef1f8ab5f5bfcc6ff00ab468bedfee4eebfec83156feb7f98dff567d17fee2775ff0078fc55df5bfcc6ff00a
b3e8bff00713baffbc7e2aefadfe637fd59f45ffb89dd7fde3f1568ddfe6376d1f45aff00db4eebfef1f8ab
7f5bfcc6ff00ab468bff00713baffbc7e2ad7d6ff31b6ff711a2d3bffb93baff00bc7e2aefadfe637fd5a34
5ff00b89dd7fd9062adfd6ff31bfeacfa2ffdc4eebfef1f8aa23cbbadeafa85f6a9a5eb7656d677da6980
d6cee5eea274b942e0d64860208e26a389f9e2aa3e7fd12fbcc3e55bbd374c8e39750f56d2eada39
9bd3467b3ba8ae42f3e2dc49f4e8ad4f84e2af22d47f29bf3126a9d23ea1a6810cd15c5badc33c53d
ac9a93df1b5864102bdb978e492da5215e1923939b47ce24aaace7c9fe43d43cb9e66b3d4e0b78a
cf4787475d2dac9e5faec9118dd5e15867745954282c92213e8bd2378d5194f25593798f5fd5b4ed
5348d1744b1b7bcbed57eb2fcaf2e1ed618e3b44466de3867258f3141c47cf1552fadfe637fd5a345f
fb89dd7fd9062aefadfe636dfee2345ebbff00b93bae9ff4818abbeb7f98fb7fb88d13dffdc9ddff00d906
2adfd6ff00317fead1a2fb7fb93baffb20c5569bbfcc8da9a4e89ee7f49ddf5ffa40c55c6ebf32388a693
a273ee0ea7774ff00a80c55b175f991bd74ad129da9a95dff00d9062aefacfe64507fb8bd0c357e21f
a46ec8a76a1fa88c5567d67f337fead7a10dffeae37876aff00cc0f862ad7d67f33b8ff00c73341e55ff
ab85e529ff4838ab66e3f336bb69ba101ef7f787fec4862a82bad5bf33ad26b281f4bd059efa636f191
7f7945758259ea7fd0fa52223e9c55ffd0f61fe5cea763a47e52797f57d52e12d74db3d1e1b9bbba93
e148e18e2e4eec7b0502a7154f60f3a7956e64962b7d560965866b5b5951096659efe3596dd0802
b591195d3c54d7154dcde5b2dcb599900b858d6664a1fb0ec514d694dc82298aa53a279d3cade64
681343d521be37314b716de9134962b694432b21200611c8423d3ecb6c7154f71563b6de7bf28dd
8ff0045d5a097fd1eeaf689c89fab69f31b7b9900a56914a383ff002b6d8aa6b2eada7c33595bcb305
97510e6cc156f8c471faadbd28b4515f8a98aaed4f54d3b46b29351d52e63b5b18b8879a5345abb0
4551e2ccc42aa8dd98f11be2ad699ab69dac40f73a6dc2dc451c8f04bc6a1a396334647560195877
5600e2a8cc55d8aa43a17fc767ccdff0031d0ff00d405b62a8bb8f31683697d0e9771a95b47a95c48
2182ccca9ebb48c0b051183cba0af4c5533c55d8abb15627f963ff0092f7cb5ff6cf83fe238ab2cc558
32fe6a797ceb634192deee0bc37d7fa597992248d6ef4cb45be9149f52bf1c0e258881f12d6bc698a
a6cbe73d324b3b1ba840325dc96f1dcd9c93db4371662e90b833a3ca28540dd13949fcaad438aa0

ed7f31744d46ecc3a5472dfe9e2dec6f4eaf03dbfd48daea6d22c322bbccacc2b13f3a2d542e2a9e4
3e64f2edca2496fabd94d1c8924b1b477313868e1a891810c6aab43c8fecf7c5520d5ff32b44d26ee
e20fab5d5fdadae9dfa6ae2ff004f58ae605b0591a379178c9cdf8156e4a88cd4fb3cb154fe0f316817
301b98354b5781628ae1dc4f1d1619c031bb6fb07a8e24f5c55b8bcc3a05c15106ab67297059425c
44d5554129228dd90f3ff57e2e98aba1f30e8171247141aad9cb2cbc3d244b88999bd4e7c280354f
2f4de9e3c1ff0094e2a8ab3beb2d422fac585cc57507229eac0eb2a725342392922a3be2ac734035f
3af9bfd8e9a3fe9d89fe38ab2bc55d8ab1b4f3d79796558352966d1e7791a18d355825b1591d0ff00
bae499563707a8e0ed5c5529d6ae23b8fcc8f23c96f2acb6d258eb722bc6c191a82c80208a83d4e2
ace58f152d42682b41d4fcb1560fa67e6bf95f574ad8a5e3ca6c23d5520307195e092e9ecb82a96a
99166468de3eaa7afda18aa7fa8f9a745d2545c5f5d47169a239e6b8d49a4885adbadaf1e7eab971
43f16d407a6f4c5507a6f9e749d52eaeadede1b9586cefa7d2ee2f65458edd6e6d939b7c45ebc482
38bf1e2c4818aa75fa5b4af4e497ebd6fe9428924cfeaa71449455198d68030fb24f5c558e7fcacaf2c
af98ffc31334f0ea0da90d12391e13e83ea0d623525895d49fb56ff00bc56345d8ad79fc38ab254d4f
4d97d3f4ef207f55da28b8ca879489f695687761dc62ac6e7fcc6f2f47ad4fe5db7f5ef75a86e12d23b
4b55491a695eddae5b83170bc63453ea339408dc57ed32d554d746f35683aed9417b617b1f19dde
110cac2299678a4921789a36208759229108fe646a62a8d8f56d2a6e3e8df5bc9cc854e12a3722cc
500143bd5815ff5b6c555edee6deea3f56d6649e204a978983af253422aa4ee0f5c552cd64ffb91f2e
fbea127fdd3eef157ffd1f63fe54c515e7e5479560b98d64827d1ed52689be256478406535ea0834c
55e61e5afcaef3f794a49f53766d458687796d716b693fd5ee2e6f745f56c74411cacc3d3792ca6632
38e932a7c5f0e2aeb1d23f342f5e07f3069dabcf6d617d67722d5ee2301e1b5f31cd3c66345ba71cd
6c9e12dc9eac91f06676515557f91bc81e72d2bf2f7cada5df7e98b4bdfd38c358d2e1ba5b616da7b
dfdf4eeeaf6b2237a7224d1990091d8d17f9715501a2fe6e5c7e8ffae7f8a52de6bd96df5a4b5bed2e
3996ee211082ead98b512c1b83fa858999b98ff47fb5c9546dff00e56f9ea1f3ecdaa58cd1cde54935
b97eaf63cc288f45f315ba4bad06dc12c6eede37880fe77fe638aa5de67f27fe656a706b36d6d16b3
710ea979e6b864b69750736ed6135948ba5a846b8e2886561e90500a7edf118aa226f2dfe626a9a
adc6b3a8586b8d1689acd96b16ba55c5cd9369f71a65b5d7af143690a4acff005b8a16e2feab2219
23e01e4e4aeaaa5c1fcd1e60d4bcd3e7ef22c3a8dfd9f99ae2e2dd344b1b98ec6f6ca5b5d2a2b3b7b
8bc8a79e03148f3405b83fef63511724abb80aa2758d2bf38dadee6fedacfcc33eab06a37315edac7
a859436b716f359ea70dbcd62893a1f4c4b736ad27acc8e9e947c23668b962acebf2eac7cf11f9a2f
eebcd50eb11471daa451b5d5dda4ba54a92c703c7e9c51b3cdf5888ac91cacdc53ed90d2f35e2aa
0fccdf977e62f3979a754bed1bcf1aaf976d6cafa2fad68d6a22363795d3edc5652ab1cc0ee3fddac9f
0fd8c557f977c95e67f2b7d5f4b896ead2daee722e2fbcbcfa47a485b7f5ae12e6c2094d4fda2a677f
9e2acd8f95357d88f386b029fe469bbff00d3962ab8795b56a6fe6ed5c9f1e3a77fd9162ab57ca9ab0
ebe70d65be6ba6ff0b2c5547f2b94afe5d79614b172ba75b82ed4ab108054d001538ab2dc55e4be6
efc9387cd1e6dbff340d5a5b36ba7d1ee2da28851adee6c2578efa546ec6f2c8ada3ff90b8aa4d7df9
33e6dbff362eb72df696ba70d5ecf50114693a3adad8dfde5daaa46018d6464bce2fc7edc8ad2b356
56e2aa3347fc99bc5b571e64b6d22f354b1f2ee9da0e83a84427324171a645751098f351c55fd704
85af46fb58aa591fe456bf6fa536956775a4c14d26c21b4baf46e19ecf53d3ecd2cd84288d1afa1388
eb23fc330124a9bf2e4aaa769f96fe7386e67fd1f2e8ba5daea1a24da3dd1b65ba93ead3dedd4d753
cf0c720fde9e5313fbc75f524f8de9f631549b4ff00c92d77cb0aada35ee9cf1685a947a8e833dc4774
6e66b00e5e4b1bc28cc38475e5118958c8f1c2595786eaa47e4ffca3f396abe40d0a25b8b7d15a4d
3ad1e586ee0b986fa1bcb7d3a7b131ba029c6362c85ba3f02ebfcad8ab209ff247cc373ae43ab4777
a56990ddc56bfa52deca2b8ac1716d26a723496ceed57691b53791de5e2dea257f6fe155e8df977e
57bff002a6846cf555b01aadc3acd7cfa5c72a4334c91241eb3b4ccceceeb12d6bf676415e3c9954b
ac7cbfa66ade78f374d7ab31914e9c80c5737100e3f55aeeb14883f0c553e3e49f2f35794774790a3
56fef771ff23b155cde4cd01c82d1dcb15e95bebcdbfe4b62ac55bf2e357d4a402f7525d22c4c8cd3d
ae9b35edd4d2a0a8406e2ee6e0bb75a5bff00b2c5522d07f2cbca3f96bf98fe57b6f29dacb6f16a16b
afdcdf19ae67b8692776b162e1657654ef511aa2e2af66c55e376bf921716be6d1e664d5c086df56d
46f2d2c02523fd17a8a2dd0b190800944d481bcebfe474c5588cbf90be79bd494de4da3c733da6a1
046b14d70f146f7ba4d858ac680db2f0844b645f8a8f851d7edb2eeab2a9ff0026a7bfd27cd4fa9d8e
9d3f9875bd566bfb52d3cd25a8b4b99ad6478650d152b4b7a54447f67df1542dc7e4e6bd1cfa84b6
569a4ccbfa466b8b3596f750b6173a4ddcd24ada7cab0214b64804b488c2b207f4a3e4b18e58ab6
bf92fe6383ccf73e63b0bbb1b479a7fabc50879e54834d9345b7d2ccb6eb203e8ddc2f6e1e2941669
20778249073e4aaa04fe4bf9d7eafa44764da369575034526a97d6b717b35dbdcdbcf6245c24f3c4
ce7d48ad3787f7689208aad2f1e58aabe95f969e79f27dddbf9d62b5b0d675ed0ad60b68b4ab19de
29353861d3bea53132dc468b1cf23450cb1f22c9f6e2793fdd98aa523f25fccfaf8b3d62c2f6dec5f52
99753d65ef22b9b6bdb5bf6bbd52ea45862286a14ea5c14974afa1cbfdd955553593f25fcd5349697
100d1f4b9ae12d46ac96d35ece239acef85d99e179939c8f2ef50e6211b71fb7bbe2af48fcb5f2bea1
e53f2e269daa5bd85b6a0cc8d72ba5bdc49048f1c31c1ea96b9f8f93ac4a78d38a0a27c74e6caa6d
ae92354f2c81df52901ffb86dee2afffd2f59fe5479a7cb369f967e52b5bbd66c2deea1d26cd26825ba
852447585432b2b302083d8e2acbffc67e4f3b0f3069b5ff98c83fe6bc55b3e73f278153e60d369d7f
dec83a7fc1e2aeff197943fea60d37fe9320ff9af1577f8cfc9f4aff8834da78fd720ff009af1577f8cbca1f
f0053069bff0049907fcd78abbfc67e4fff00a9834dff00a4c83fe6bc55dfe32f287fd4c1a6ff00d2641ff3

381

5e2ab17cd9e4a491e54d734b5965a7a8e2eedc3371141c887de83155ff00e33f279a81e60d36a3af
fa641ff35e2aeff197943fea60d37fe9320ff9af1542f95af6cf51d47cc977a7dc457768f7f1049e07596
362b636c0d19490687ae2ac9715762aec55d8abcc3c83e7df29695e4bd0f4cd475216da85a5a450
5cdbcb14caf1cb18a32b029d411be2ac8c7e667914f4d662ff008097bffb0c55aff959de44a72fd331d
3fe31cdff003462adff00caccf237fd5e62a9ff00225ff9a31577fcacdf22edfee662dffc897fe68c55b3f9
97e465a93ac47b52bf04bdf7fe4c55dff2b2fc8e5798d6232a4d2be9cdd7fe031569bf32fc8ea031d5
d28694fddcc7af4e898ab8fe65f91c75d5d3c3fbb9baff00c062adff00cacaf2472e1fa594b75a08a727
fe4de2ad8fcc9f251a5355535e94867edff3cf15427936fed357f3279af55d399a6b09e4b148ae0a49
1a398ed4060bcd56b4aef4c559ae2aec55d8abcffcdba869fa5fe64792ef353b98aced4586b886e2e
2458a20c7ea2402ce40a900d315640de7af24a3157f326961800686f6dfa1ff00678abbfc77e49a91f
e24d2ea284ffa6c1d0f4fdbc55c7cf7e490397f8934be3e3f5db7ff009af1577f8efc91c79ff8934be3d6
bf5d829ff13c55aff1ef923fea64d33a72ff007b20e9ff00078ab5fe3ef23f0f50f9934ce04d037d720a54
ff00b2c55a7f3ff91a3157f326983703fdec83a9ff00678abbfc7fe46a72ff001269bc7ad7eb70d29ff05
8aadff9589e43248ff12e99b6e7fd2e1e94aff362ab3fe5647903970ff13e99cbc3eb70ff00cd58aac3f
99df974a78b79a74b0d4269f5b87a0ebfb58aa4dac7e6479027d4740921f32e9b225b5fc92dc32dd
4444686c2ee30cc41d872755a9fda651df157ffd90000000840010824000000180000000210c0db0
1000000030000000000000000000000000000001b400000400000003400000001000000020000
00000000bf000000bf0000af4300000042030000000000008000000080fe7fe94300000080000000
80ffff2b422100000008000000620000000c00000001000000150000000c00000004000000150000
000c00000004000000510000002c3000000000000000000000d20100002a000000000000000000
000000000000000000005e0100002000000050000000dc0300002c040000002c00000000000020
00cc00d30100002b000000280000005e0100002000000001000800000000000000000000000000
00000000ed0000000000000000000000ffffff00fdfdfd00fcfcfc00fefefe00fbfbfb00f8f8f8005c5c5c00c
8c8c800a3a3a3005d5d5d009191910064646400c2c2c200f9f9f9009393930059595900d9d9d900f
afafa008989890071717100e2e2e200f1f1f1004d4d4d00cacaca008f8f8f00747474008d8d8d00797
97900c9c9c900838383004f4f4f0073737300f0f0f000707070009b9b9b00dcdcdc0058585800d1d1
d10044444400ececec00d4d4d400787878006e6e6e00c1c1c100a2a2a200cccccc00dddddd00b6b
6b600dbdbdb007d7d7d00d2d2d20063636300e5e5e500cbcbcb007f7f7f0068686800a9a9a900a1
a1a100e6e6e60075757500e7e7e70053535300f4f4f4007676760046464600e8e8e80050505000a
7a7a700bdbdbd00d7d7d700eeeeee004a4a4a008b8b8b00bbbbbb00e0e0e0007b7b7b00e4e4e4
0030303000b0b0b000cdcdcd00ebebeb00393939008686860067676700a6a6a60056565600eded
ed006f6f6f0051515100bebebe00cfcfcf0037373700b9b9b900f7f7f700eaeaea00e9e9e9007c7c7c0
029292900d3d3d3003f3f3f00e3e3e300e1e1e100dfdfdf00d6d6d600dedede00dadada00d5d5d50
0d8d8d800d0d0d000b4b4b400b5b5b500bababa00b7b7b700b2b2b200b3b3b300aeaeae00b8b8
b800adadad00b1b1b100afafaf00acacac005e5e5e0099999900454545003b3b3b00ababab00727
2720077777700696969006b6b6b008282820090909000949494009696960048484800c3c3c300c
0c0c000a0a0a000666666006d6d6d007a7a7a008484840092929200a8a8a800aaaaaa00c7c7c70
0efefef00f5f5f500bfbfbf00c6c6c600c5c5c500959595009d9d9d00bcbcbc009a9a9a00656565009e
9e9e006a6a6a00f6f6f6009f9f9f0062626200a4a4a4006060600081818100858585009c9c9c00c4c
4c400a5a5a500f2f2f200f3f3f3005a5a5a008e8e8e003a3a3a007e7e7e0025252500525252006161
610035353500323232008a8a8a0055555500363636002e2e2e008c8c8c00989898003c3c3c0015
1515005f5f5f003d3d3d00333333001b1b1b00cecece00494949002d2d2d0021212100383838004
e4e4e001e1e1e00575757002727270087878700404040003e3e3e0097979700424242002b2b2b
0034343400545454002020200018181800222222004c4c4c003131310080808000414141008888
880024242400010101000606060047474700232323001a1a1a00111111005b5b5b006c6c6c002f
2f2f001610000026060f002220574d464301000000000001000000000000000300000000200000c
80c0000c84c000028282800434343004b4b4b001f1f1f00070707002a2a2a00171717001d1d1d00
2626260013131300a3ac0b868f8685980b0b84840b8f0f858498868f8f858f1b0f0f0f0f0f0f0f0f190b0
f98980f0b190f0f0f0f0f0f0f0f8f8f8f8f8f8f8f8f0f0f0f0f0f0f0f0f0f0f0b980b84cc0b850bac198f98850f0f
0f0f0f0f0f0f0f0bb9830603010101010101010101010101010101010101010101010101010101010
1010101010101880fcc9d9bcca69b86b9cccc9b9b7b2386cc7b23237bcc867b7b9b7bb9b97b9b86
b99b7bcc86b97b993ab99b8a23b986cccca6a8a8999b9db9093a9d09a686a02d9d998aa0239b9d
a809a023a62d90913a2d5544a2a839912d775551010e010101010101010101010101010101010
10101010101010101010201020122d686c91b0b534c371ed6371e49834c5313838ea41e53d8c98
ea4ae3283c91313c98332d6c9c9d6d6c9c9d68daea51b1ba48daed853831ea54c1a61618353535
353836161a4801c61321e1c4c2a1a14141a2a4c3c221482b19e7f548c549c9e384c0000b0630101
05010104020203030204040102010104040102120404040404040404020204010104020204040
40404040404040404040404040404040404040404040101010101040101010205030401010404
04040404040404013f9d1601010201010101010101010101010101010101010101010101010101
010101010101010158194f4f6f7373306e306f6e71713075784f727373724f78303071306f6f30716
e3071306e6e6f71714a6e6f70306e73774f6e5d7573776e7370756e6f7839746f72726e734f4f7273
734f76797478747474777776764f4f78783c780e010104010101010101010101010101010101010
10101010101010101010202383001030101039412021212120406aa05020e121205020202050e
065e1205050505125e3f0e0e3f3f0e0e3f16aa940e12aa933f0606949f062151a947161621211616
47572142515757a9512851423b3b425128603b424d694d6066154d156965138687874b0102010

10403010101010101010101010101010101040101010101010101010101010101010101010101
01010101010101010101010101010101010101011204010101010201010104010101010101010
101010101010104b9420101050101010101010101010101010101010101010101010101010101
010101010101018d6801020102030104010104010101010401010101010104040101010104010
10401010104040101040102020104030201010101010404010504040401040301040404040402
02020101010101010102010101010404010101010971010103010101010101010101010101010
1010101010101010101010101040102254a010404010405010104010101010401010101010101
01040404040101010101010101020101020201010201010401010404010201020201030e02010
1010404010101010105010104010101010404040401010404010102010102010101030149ffff48
670e0e01020201010101010101040401010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010201010101010101
010401010101010101010302a6210102010401010101010101010101010101010101010101010
101010101010101010101011c6c010101040101010101010101010101010101010101010404010
10104040404010101040401010401010401010401010101010404010101010101010101010401
0104040101040202020204010101040401010401010102013a720e02020101010101010101010
101010101010101010101010101010102020101a1970204040104040101020101020201040204
01010101040404010104010101010101040101010101010101020202020101040402010101010
10401010404010104040101010301010301010401010101010104020101010101010103030101
06cc0000e565010101020102010101010101040201040401010404010101010101010101010101
01010101010101010101010101010101010101010101010101010101010103020202010102010
101010101040401010101010101010103b9570503010301010101010101010101010101010101
010101010101010101010101010101014c29050101010105010101010101010101010404040401
01040401010101040401010101010101010101010101010101040104020404040201010101020
4040302010104040101040101010101010101040404040101010101042d710101010201010101
0101010101010101010101010101010101010101010102010c1d12010101040401010401010304
01010204010101010404040101040401010101040401040401010404010101010101010104020
10104010104010104040101040401010102010102010101010101010101010401010101010401
01040101058500025969030401040102010101010101040401010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010501010101
020101010101010101010101010101010101010404a6930101010201010101010101010101010
10101010101010101010101010101010101010101801101040101020401040101040101040101
01010101010101010401010101040101010101010101010401040401040101010101010101010
10404010101010104010104040101040104010101010404010101040101040103018a72010201
0101010101010101010101010101010101010101010101010104010101bc970404040402020401
01010104010101010101010101010104040401010101010101010104040101040401040202040
20101020101010101010101010202040402020101010401010204010404040404040404010101
0101010401010505050184ffff1f3101010102010104010101010404040101010101010401010101
01010101010101010101010101010101010101010101010101010101010101010101010101020
10612010504010101010101010104010101010101010103029957010404010101010101010101
0101010101010101010101010101010101010101010101013c4601020201030101040101040101
01010104040404010101010401010101010101010101010101010201020401040101040401010
1010404010402040202040404040202040402020304010104040101010101010104010101a691
0402010301010101010101010101010101010101010101010101010103010105e095010101010
10404010101010104040101020101010101010101010104020404020401010101010101010101
01010101010101010404010104040101010404040401010101010101010101010101010101010
1010101010101010104010101010b00001f3101030401040201010101010101010101010101010
10401010101010101010101010101010101010101010101010101010101010101010101010101
0101010105c0291201010201010101010101010101010101010101010e23470101030201010101
01010101010101010101010101010101010101010101010101010101322901010101050101020
10104010104010101010101010101010404010101010101010101010101010201040401040101
01040101010401040101040101020101010101010101010101010101040401020101040101040
102013a7402040103010101010101010101010101010101010101010101010101010102030c5a0
10401010104020101020101010201010401010101010101010101040401010404010101010101
01010101020101010201040104040101040401040101010101010401010101010104040101010
10101010104020101030101030104030201acffff591101010401040101010103010405010401050
101010101010104010102010202010202040104030301010301010e0103010301010101010102
010401010102a75458a7040102010401010212019f0101020105010301010102a0510101010204
02040401010401010101010104010104010101010101010404010101010101806801010101120
10101010101010101040101120101040203010501020404010101010601020102011201120101
010101020101050103010401040401040416470e0104010101020101040104010103010501120
10112010101a07801040102040101010201010401040202010101040101010201010103010401
03344501030101010101010101010301010104010304010201040101040104030104010404040
40201010201030401030403010102010102010201030102010112010104010116120501010101

383

01010401050101010401050104010201010104010184ffffc71105010101010103219f0193010133
696b2f336a020831460d5f03016b5b02049729010297330101015e060160060394c0463f4636aa2f
6b01c06d12010177e9a4045e0618514d035fa75f01aac06a3b016826010101020205b9160504020
101010101014757040101010101010104010101010101010101010101010404041c46010212010
101010101010101010104010101030501010101040212010312015e0201120102010201050104
01120403019f0101030112010e01020e010118d72d010201021201050101030105040102010112
0412011212013a6e010201010404040401010101010101010101010101020403010e020104030
201589505010101010101010101030101030101030101050102010e0201040101040101040204
0101010e010501010401010102010104010101011201040101060103010424b43a3b030101020
20e0101050401050105020103010201040101010101840000b06a010101020102429d0166a50e
47ad3762a6100b47baa83ecf6901038c8d0174e97d2675eac29102046e9a12ae90123f871e02e1c
5351f1c90e6c844038fe09a342c0179e310b346d7c638213eadcf2024afeb1b04060104019baa0e0
102020104a96a19c5b8010104040101010104010101010101010102020204010101011c6b01010
40101050101010101010101010401010104030405030101015e01010101010601010304010501
050105011201010112020101010501010404020403d7720201010601020401040202010201010
50101010e010101018a770412040101040401010101010401010104040401011201010201010e
0401010534a70402010101010101010101010601010103010e03015e9f0601030594943f0402aa
060e020e03020101060116029404129f02010e020112030101015e010e0101a7ecb4aa04015e04
010101120201019f011202060101020401010101010104195400e5680102010101011daf0697c21
216a34db2a98d779638013c64010201499b01e19a9371c1763f709f12418001ca8b01018284010f
b151e55e564416886fc11201504121138a69829082216c5ae86b8255a61a9f5d6601050112b9470
1019f4b9b802aa8896901050101010101010101020204040101040401010101010101014c68050
4020101010101010101010101010103750e04a704022313a03a1983040b9b3a20290601a64c4d0
1a4e14b05b982466d8d83a5780e01a9615816011a19ba6e4d3272553f998c9a0196839b5a011b2
a5f02010101120103994f0101010104040401040202010101010101040202a0535d47020101010
1030201e045050101010101010101010324230e5f2c0569d4533e4454c94b1f2d401a3d12128e1c
1692cd105b24bab0c01817750e131ca98ccb771141c9345b9b3440370144381c1e0e03869c820b
4bd4e04b6b7a4c8e3b82c1a706010105030101010104191600ab6c010e010112014ccf6cacde500
12699e2428d5d891a010cdc014daa0bcc1261364d3f41735f3f0466df0a635c1ca91214850284e02
843aaab5d1501ae54010401cf0b23551637cc854b42a9e34dd67685305716030101010177676ea
12a9890185101041201120612050e5e949f065e061203030305120e0e1212050503037f6901010
10102010101010101010101030160d511941f6060e29abaa2a3e05f648930e44201058ee5120bd
409a0a6d3868f667a226bb907608bc4a639b843766292b95439d475270f981de3b9e59b76be238f
3d0601040101043a4f0101020201010101010101010101040101010101519a39d8e14929040402
0105d096010101010101010101010130e69497d70508563d6468568f083eaad682010101c97801
56984b9a2b1e4b784dbe650de7292d253170b8482ee57452422a5346dc5f04868202d72cb08e32
3250302098774355cb969942010e0e01040101010184d7ffa111010401030201d4a6392586230e7
511baa93874961a011ad9a8405783c90e32aeab612b22d0540179b3a2b19c4a670107a59453c79
3c7042b20c78c2a1a040101483423a205222c8b86bd33b72432919040ae7d9f010112014052dad
a8b4949c9d637a461402a4cae37321c808d32ae37a4831e1e83a43c402a8d6137a4831f2601030
4010401010101010101010103019500a768db721253c0bc6937bc6043042858010103868b04ab4
a033f808601a95e618a0101b0a6dc30015ec1a201ba958689511e1984010e18dd16ae7313a8035
15f020104010e013972020402040304010202010101040404040401010101060101639813b9741
80601078804010101010101010101014cde6832df24aaa85dcb94c7d896b10237830116aa19770
164150102806a01014752332523064c9b0401668377b1b4e001a0a08e61010466ca284866e1c98
d650101e1a06c20447701059f9f01010e04010104018f2600106b010101020115cd3d1cce572d47
6144a05107956eca4222cb66095780258036958092337734a0032b8e05c37611905156561314a4
92ce6b50399c903782015e017d8ea576952a5e3a738c6bcf691a7e3d3a83ac01030104059b3623
ab7f1b912694a99316605728574757515f284728285757575757575f5f5f5f515151518269010102
0401010101010101010101010283487837177b0267237d261e544d43012f1f29750da025012b0f5
d2e1ba5736f042a449f04a0abd0917708c7a801278886793d617b3c9a7065d13b3c30ac8f966f010
20201040102b458a23a8a8a2d2d8a99a0a23a9b44393955092da244a809b99978a2a0b97fd2d38
3c11802030101010101010101a9d47973c5a49d3f9a0dd567a319970a018e5675a46d84a80159c
96198d6981e0f04adbc641601ac7a865865507607767a018f9b388a02049fd75d593b9ed8a5ac8f7
68079082b912a78860401020e010401010401980800bc2f04010101028a81010cab04724704470
20101056b3c0e2264010251aa035704a9930101289f043fbd6901b6295e8f5e020e5f0105150a4b0
1a9940109ab0301a9be0d3f05a99f01063b1205a9122112019351040501020101855e01034763b
81714a7470202010404040404040101010101040404010101010101010101014c6c06010102010
401010101010101010106b00d84bfc0724b8b16b56b8bb14bc19f28c22241b923c34f1344793e5d
a65ac403b80b01028ac553090f0c458694b34a134f242224b933b75bc667820908769dc4a901010
40403018a986a156711154b6a68314b6ac0664d356768636831243150112824630d58af566ec78
9020101010101010101012ebd051ac2a92331b111142fc88f5d4394c9435a8c88a3ca8da645aeae
1d75538e12b6a7867d57152d4f7c881f0880040b31a30b8b23010103cb9ac16325c9929a82cc58a
6087a6b8079b10204010102010101040186eaffb133010105014db286a9b3190190b4030201015
d66015f0ea35257a7b55701040101010101010101745c034452a9011931010501959d0160049f01

050147b1a842a5993f01040101010101010101010101010101010101010103234701040101015f
6e2d8f9e30010101010101010101010101010101010101010101010101012a6b01040101010101
01010101010101016db60479b73f45636386a83d7e785bb7753da1025136951e8368a7199a5e39
984501539801013c204d4f0b6a053076b8360f18729d0e95237829144bac2ea991b936040104010
10401a074040104010101010101010101010101010101010104040193738d1e396f2401018b9a0
2010201010102010102a60c019e610e6e57319a6a03506972ba3d98a4039f6a6b5b6f3f89740603
967e2194b63128bb950126766303266f310251307f2db4ae01016a5c35733d723605457e60896b2
49a015b7269010201010102010101029900000a6b010304029476634776681231752804010296
4b025e056e6f6d2c8901030101010101010101019639942e4fa9935d6c010103895505010401120
15e0151774f95aa010504010201010101010101010101010101010101010323470104010103010
201046366060101010101010101010101010101010101010101010101012a6b01040101010101
010101010101011284ab02a49e0146ac120412015e945e720133ab0e0536020403010301030105
0103024c869488ad630103120201050305010101aa0101015e0101020104050101060401020405
0104018a7401010401010101010101010101010101010101011dae140f74639f04030101033495
010401010404010105a9439ba96439017099010501024a3b0e63057f38a9677e9f010e01050e01
020102013b622e5aaf1101010e01010305010101048e8f51b02e578f49010e010601010103015e0
11206010106010101010e0302010101029900000c4601120102020101030104020112010101010
60101010403015e05010102030101010101010101010101060102010301010301010601120101
01010101019401010104020104010101010101010101010101010101010101032347010401010
1020112011202010101010101010101010101010101010101010101010101012a6b0104010101
0101010101010101015137a0699e0f0e6a373d010104a4a50101016f82a209a621010504010104
040104016a401b9d0b50050302010503010101010401020106010101050106010102040101120
101120104012d760101040101010101010101010101010101010101364a3d0102030304010102
010c950401010102020101122186683123360e5b78030501947ba7030102748a2c756e04040103
010104030104016d0945306c0e010201011201010105010423710126a899305e01010301010e01
0105010105010e0301015e0201040102010101049d11003829010501010201050101060104010
10112020101020104040201010402010101010101010101010112010101060101010104040101
01040102010501035e01010601010102030101010101010101010101010101010101010323470
10401010102010e040101040101010101010101010101010101010101010101010101012a6b01
04010101010101010101010101020301940512060406040101014b425e0204030194160601030
4010112010105019f03015e5e06010101030301020404020105010104050104030105010501010
4050101010102010101a279010101010101010101010101010101010101010101030103020104
0102010101a375050104010101010101030101050101040401020105010601030102040103010
10403030101050101020404010401120101010402010101120301120101011201010305010301
050201010203010105010101040101010101010204010101049d0000a12601020302010204010
202010204050101010406010101010101050101010101010101010101010e0101040112040201
01010405050201010102010402011201040101020101020101010101010101010101010101010
10103234701040101010201010104010301010101010101010101010101010101010101010101
01012a6b0104010101010101010101010101010112040104010e0101120304010201040412010
10201120401050501010401030102040501010101010101010204010102010103011201010404
010101010501120201050301010101447e0101010101010101010101010101010101010101050
1010103010104040103010c4501010401010102040101041201120103010101040e02010105020
10305010103010101010102020102010501010501020e04010101010101010101010e04010401
01015e010101030403010104010401030402050301021201010401010101a0da080c6b01010402
01040104030112010101030101010101050203030101010301010101010101010101010102030
10101010404020101010105020101010401020101010303010104010101010101010101010101
01010101010103234701040101010505010104010101010101010101010101010101010101010
10101010101012a6b01040101010101010101010101011201030103050101010e010101120101
01010112010212010101030101030201010503010101060104040205010404020101030102010
10401010205010101010401010101010402010139910101010101010101010101010101010101
0101010101020101030101040104018171050504010101010101040101040105010e010303010
301010102030101010101010e0105010101010105010103040201010102010405010101020402
010201020e010501010401010101040105010104040104010104040101010101040101a011008
246040101010103030104010401010201010201010401010101010104010e0101010101010101
01011201010101010301010201020101040101020404010101030101010101010101010101010
10101010101010101010101032347010401010101010101010404010101010101010101010101
0101010101010101010101012a6b0104010101010101010101010101010401020101011201010
20203010112030501030201010512020101010501010104010201010101050101020301040101
010104010101021201010101011201030104050101010101017e3901010101010101010101010
10101010101010101010102020101120101010104146e02010104040401010403020103010102
0e010101010301010101010101060102030102010104050401010101020103010103010101010
102030102120101019f01020101050105020103040101010103010105010103010103040101040
1018a00009e630404030101010101030202010301020102020102010502010101010105010101

385

010101010101050401040101050102010101120105047a06000026060f00ea0c574d4643010000
000000010000000000000003000000c80c000000000000c84c0000020101010404010501010101
02010104010101010101010101010101010101010103234701040101050201040301020101010
10101010101010101010101010101010101010101012a6b010401010101010101010101010101
03010101050301050104010101040101010301020101040101010401020112010101120112010
401040301010104010104010301010e0101010402040401010101020101020401010179900101
01010101010101010101010101010101010101020104020102010102040183700301010101010
10101010101010601050103010403010104050101040101010401010401030101020103040104
04020112010102010104030101010101040101030104030102010104010103010304010105010
301010101020101010401018a00009c68010401030101010101010104040401010101010101010
10101010101010104010104040101040101010404010101010104010101010101040404040401
01040104020101020101010104020401010301010401020201120198160101030401040103010
101040401010101040101010501010304010101010101010101011c68030201040102010101010
10101010401010104040401010101010101010101010101010101010101010101010101010101
01010101010101010101010101040101010101010401010101010101010101010101010101010
27090010e0103040101040101040101020101010401010101120101010e0101015e0184710401
01010101010101010101010401010104010101010101010104010101040404010102020101040
20401010104040401010401010101010101020101040101030101010101010101010401010101
010104010101010101010104010202019d0000224601020101010302020202040401010101040
40401010101010101010101010101010404010101040203020101010201010101010101040204
01010101010404010104010104010401010101010402010101010101010101049916040404010
106010104050301040402020201010403010402010102030101010101010101206a0101010101
04010101010101010101010101010101010101010101010101010101010101010101010101010
10101010104040404040401010101010101010404010101040404010101010101010101010101
0101010102019a39010101010301050402120104010201040301020205050101030e020402010
10413710105010101010101010101010101010101010101010101010101010101010101010101
01010101040401010101010101010101010101010104040101020301010101010101010104020
40104040404040401040404040404010101010101019b0202548f90766f5d5d30767474784f7777
72777876797478787877777777777777773976777272777639767e91764f77763976784f767678
787690917477737372774f727777737278776f6f3071716f724f4f4f76783075303077771b5101010
404010105043f55926b93928a940170730421721d03010502010101010101010101610812050e1
21204030303030303030305050505050305050303030303030303030303030303030303030303
03030303030303030303050502020202020202020302040203050304050505050505050503030
303030303030203304f020405010101020105015f6f155735959601020892013d97240101050404
015e98770201050505050505050505120502030e1202030204040303020403030503030303030
20101030505020405020101040203020101040401010104010201010104040401120101010103
01010401010101040101010101010101010304020301910000292c306e6f6f6f706e6e6e6f307171
71306e72726e6f6e73717171717171717174723075753072746e7272736e6e4f76776f3072776e6
f7277736f71716f727778727777737278776e72774f4f4f78744f787979777776796f4a5d12010101
02040102050f7a7b7c730f4a231e7d0f4f7e731371040101020101010101010101537f7f3c404c402
040404040404040402a8080802a2a2a8040404040404040404040404040404040404040404040
404040404040403c1a1a40404040404040403c4080401a1a402a2a2a2a2a2a2a2a2a4040404040
4040403c228177010102010204010102120b828320848376858687498870898a33010101010101
558b8c4c2a2a2a2a2a2a2a2a2a40808d2a1a404c1a4080803c1a3c801c2a2a2a1c1c1c2a3c2a2a
3c201a3c3c7f408d4c2a1a1422803c1a3c2a8d8d1c2214618e322a4c32408c401a3c2a228d20141
a1c1c1a14202a2a802a2a8d4c61142a80201c1f000001120101030101040404040401010101010
10401010101040101010101010101010101040401010101010101010402020201010402010104
01010101010102030401010101010401010102030204010101010104010103020104120105050
101040101015455425657280c58595a013d155b5c5d015e02010101010101010101014d42573d4
242285f5f5f5f5f5f5f5f423d3b3d42423d3b5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f6
0423d606060606060606042605f603d3d60513d3d3d3d3d3d3d3d5f5f5f5f5f5f5f5f4247510501010
103010102120112614a2f2a353d4358625b011128636431010304010e010e4260513d3d3d3d3d3
d3d3d3d3b3d5f424d355f4d3b3d3b4d4d353d60423d3d6060423d153b3d3515656515664d42423
b154b4b65664b664d35354d15674d3b2468316967682f6a113133316b6368313168636b24316c6
b63266d6d186d5b2e6d500000010101010e010104010101010404040401040101010101020404
04040404040401010102020101010401010101040101040101040401010402020404010101010
30104020104030401010401010101010301010401010101010101010e010103010112043c3a3d3
e3f40414243444546474849020101010e010101010101010101010102030102010404040404040
40401010404010101040404040404040404040404040404040404040404040404040404040404
02020204040404040404040302040203030204010101010101010104040404040404040204030
101010104010501010112404a4b4c1240484d4e4f5051355253010201010103010103020201010
10101010101010401010103020101010101010101010101010101010101040101010104040404
01010104040101010402020101010401020201010401010103010101011201010202010102020
10404020204040101040402010401020201040401010101010101010101010101040401010101
04040101010101010101030101010101010302040101010101010101010401010104010101040

40404040101010101010101010101010101010101010104010403040202010101010102010606
01222324252627282919192a2b2c2d2e2f03050101010101010101010112010112010101010101
01010101010101010101010401010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
0101010104120101010105010105011c30313233343536370f3823393a3b160103010102030301
01010101010101010101010101010104040104010101040404010101010101010101040404010
40202040404020202020401010101010101010401010401010104040402040101010101010101
01010101010101010101010101010104010101000002010301010301010404040404040404010
10101010101010404040404040404010101040401010101040401010101020101040101010101
01010101010101010401010401010401010101010404010101010404010101010102030101040
501030106050708090a010b0c0d0e0f10111213141501010205010101010101010101040301010
30201040404040404040404010101040401010404040404040404040404040404040404040404
04040404040404020204040101010101010101010404040101010404010101010101010104040
4040404040401050101040101010301040501161718191a061b1c1d011e1f15151420210401020
40401010103040101010101010101010101040101010401010101010101010401010104040101
01010401010101010101010101010402040101010101010103010402010102010101040101040
1010204010101010402010101010101010402010102010500004c0000006400000000000000000
00000d20100002a0000000000000000000000d30100002b0000002900aa000000000000000000
0000803f00000000000000000000803f0000000000000000000000000000000000000000000000
000000000000000000220000000c000000ffffffff460000001c00000010000000454d462b02400000
0c000000000000000e000000140000000000000010000000140000000400000003010800050000
000b0200000000050000000c022b00d301030000001e0004000000070104000400000007010400
fb170000410b2000cc0020005e01000000002b00d30100000000280000005e0100002000000001
00080000000000000000000000000000000000ed0000000000000000000000ffffff00fdfdfd00fcfcfc
00fefefe00fbfbfb00f8f8f8005c5c5c00c8c8c800a3a3a3005d5d5d009191910064646400c2c2c200f
9f9f9009393930059595900d9d9d900fafafa008989890071717100e2e2e200f1f1f1004d4d4d00cac
aca008f8f8f00747474008d8d8d0079797900c9c9c900838383004f4f4f0073737300f0f0f00070707
0009b9b9b00dcdcdc0058585800d1d1d10044444400ececec00d4d4d400787878006e6e6e00c1c
1c100a2a2a200cccccc00dddddd00b6b6b600dbdbdb007d7d7d00d2d2d20063636300e5e5e500c
bcbcb007f7f7f0068686800a9a9a900a1a1a100e6e6e60075757500e7e7e70053535300f4f4f40076
76760046464600e8e8e80050505000a7a7a700bdbdbd00d7d7d700eeeeee004a4a4a008b8b8b0
0bbbbbb00e0e0e0007b7b7b00e4e4e40030303000b0b0b000cdcdcd00ebebeb003939390086868
60067676700a6a6a60056565600ededed006f6f6f0051515100bebebe00cfcfcf0037373700b9b9b9
00f7f7f700eaeaea00e9e9e9007c7c7c0029292900d3d3d3003f3f3f00e3e3e300e1e1e100dfdfdf00
d6d6d600dedede00dadada00d5d5d500d8d8d800d0d0d000b4b4b400b5b5b500bababa00b7b7b
700b2b2b200b3b3b300aeaeae00b8b8b800adadad00b1b1b100afafaf00acacac005e5e5e009999
9900454545003b3b3b00ababab007272720077777700696969006b6b6b0082828200909090009
49494009696960048484800c3c3c300c0c0c000a0a0a000666666006d6d6d007a7a7a008484840
092929200a8a8a800aaaaaa00c7c7c700efefef00f5f5f500bfbfbf00c6c6c600c5c5c500959595009d
9d9d00bcbcbc009a9a9a00656565009e9e9e006a6a6a00f6f6f6009f9f9f0062626200a4a4a400606
0600081818100858585009c9c9c00c4c4c400a5a5a500f2f2f200f3f3f3005a5a5a008e8e8e003a3a
3a007e7e7e0025252500525252006161610035353500323232008a8a8a0055555500363636002
e2e2e008c8c8c00989898003c3c3c00151515005f5f5f003d3d3d00333333001b1b1b00cecece004
94949002d2d2d0021212100383838004e4e4e001e1e1e00575757002727270087878700404040
003e3e3e0097979700424242002b2b2b0034343400545454002020200018181800222222004c4c
4c003131310080808000414141008888880024242400010101000606060047474700232323001a
1a1a00111111005b5b5b006c6c6c002f2f2f0028282800434343004b4b4b001f1f1f00070707002a2
a2a00171717001d1d1d002626260013131300a3ac0b868f8685980b0b84840b8f0f858498868f8f8
58f1b0f0f0f0f0f0f0f0f190b0f98980f0b190f0f0f0f0f0f0f0f8f8f8f8f8f8f8f8f0f0f0f0f0f0f0f0f0f0f0b980b8
4cc0b850bac198f98850f0f0f0f0f0f0f0f0f0bb9830603010101010101010101010101010101010101
0101010101010101010101010101010101880fcc9d9bcca69b86b9cccc9b9b7b2386cc7b23237bc
c867b7b9b7bb9b97b9b86b99b7bcc86b97b993ab99b8a23b986cccca6a8a8999b9db9093a9d09a
686a02d9d998aa0239b9da809a023a62d90913a2d5544a2a839912d775551010e010101010101
01010101010101010101010101010101010101010201020122d686c91b0b534c371ed6371e4983
4c5313838ea41e53d8c98ea4ae3283c91313c98332d6c9c9d6d6c9c9d68daea51b1ba48daed853
831ea54c1a61618353535353836161a4801c61321e1c4c2a1a14141a2a4c3c221482b19e7f548c5
49c9e384c0000b0630101050101040202030302040401020101040401021204040404040404040
20204010104020204040404040404040404040404040404040404040404040401010101010401
0101020503040101040404040404040404013f9d16010102010101010101010101010101010101
01010101010101010101010101010101010158194f4f6f7373306e306f6e71713075784f72737372
4f78303071306f6f30716e3071306e6e6f71714a6e6f70306e73774f6e5d7573776e7370756e6f783
9746f72726e734f4f7273734f76797478747474777776764f4f78783c780e01010401010101010101
010101010101010101010101010101010101010202383001030101039412021212120406aa050

387

20e121205020202050e065e1205050505125e3f0e0e3f3f0e0e3f16aa940e12aa933f0606949f062
151a94716162121161647572142515757a9512851423b3b425128603b424d694d6066154d1569
65138687874b01020101040301010101010101010101010101010104010101010101010101010
10101010101010101010101010101010101010101010101010101010101120401010101020101
0104010101010101010101010101010104b942010105010101010101010101010101010101010
1010101010101010101010101010101018d680102010203010401010401010101040101010101
01040401010101040101040101010404010104010202010403020101010101040401050404040
10403010404040404020202010101010101010201010101040401010101097101010301010101
01010101010101010101010101010101010101010101040102254a01040401040501010401010
10104010101010101010104040404010101010101010102010102020101020101040101040401
0201020201030e020101010404010101010105010104010101010404040401010404010102010
102010101030149ffff48670e0e0102020101010101010104040101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
1010201010101010101010401010101010101010302a621010201040101010101010101010101
0101010101010101010101010101010101010101011c6c01010104010101010101010101010101
01010101010104040101010404040401010104040101040101040101040101010101040401010
10101010101010104010104040101040202020204010101040401010401010102013a720e0202
0101010101010101010101010101010101010101010101010102020101a197020404010404010
10201010202010402040101010104040401010401010101010104010101010101010102020202
01010404020101010101040101040401010404010101030101030101040101010101010402010
101010101010303010106cc0000e56501010102010201010101010104020104040101040401010
10101010101010101010101010101010101010101010101010101010101010101010101010101
0103020202010102010101010101040401010101010101010103b957050301030101010101010
1010101010101010101010101010101010101010101010101014c2905010101010501010101010
10101010104040404010104040101010104040101010101010101010101010101010104010402
04040402010101010204040302010104040101040101010101010101040404040101010101042
d7101010102010101010101010101010101010101010101010101010101010102010c1d1201010
10404010104010103040101020401010101040404010104040101010104040104040101040401
01010101010101040201010401010401010404010104040101010201010201010101010101010
10104010101010104010104010105850002596903040104010201010101010104040101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
1010101010501010101020101010101010101010101010101010101010404a693010101020101
01010101010101010101010101010101010101010101010101010101010180110104010102040
10401010401010401010101010101010101040101010104010101010101010101040104040104
01010101010101010101040401010101010401010404010104010401010101040401010104010
1040103018a720102010101010101010101010101010101010101010101010101010104010101
bc9704040404020204010101010401010101010101010101010404040101010101010101010404
01010404010402020402010102010101010101010101020204040202010101040101020401040
40404040404040101010101010401010505050184ffff1f310101010201010401010101040404010
10101010104010101010101010101010101010101010101010101010101010101010101010101
01010101010101010201061201050401010101010101010401010101010101010302995701040
40101010101010101010101010101010101010101010101010101010101010101013c460102020
10301010401010401010101010404040401010101040101010101010101010101010101020102
04010401010404010101010404010402040202040404040202040402020304010104040101010
101010104010101a6910402010301010101010101010101010101010101010101010101010103
010105e0950101010101040401010101010404010102010101010101010101010402040402040
10101010101010101010101010101010101040401010404010101040404040101010101010101
01010101010101010101010101010101010104010101010b00001f310103040104020101010101
01010101010101010101040101010101010101010101010101010101010101010101010101010
10101010101010101010101010105c0291201010201010101010101010101010101010101010e2
34701010302010101010101010101010101010101010101010101010101010101010101010132
29010101010501010201010401010401010101010101010101040401010101010101010101010
10102010404010401010104010101040104010104010102010101010101010101010101010104
0401020101040101040102013a740204010301010101010101010101010101010101010101010
1010101010102030c5a01040101010402010102010101020101040101010101010101010104040
10104040101010101010101010102010101020104010404010104040104010101010101040101
010101010404010101010101010104020101030101030104030201acffff59110101040104010101
0103010405010401050101010101010104010102010202010202040104030301010301010e010
3010301010101010102010401010102a75458a7040102010401010212019f01010201050103010
10102a05101010102040204040101040101010101010401010401010101010101040401010101
01018068010101011201010101010101010104010112010104020301050102040401010101060
1020102011201120101010101020101050103010401040401040416470e010401010102010104
010401010301050112010112010101a0780104010204010101020101040104020201010104010
10102010101030104010334450103010101010101010101030101010401030401020104010104
01040301040104040404020101020103040103040301010201010201020103010201011201010

401011612050101010101010401050101010401050104010201010104010184ffffc711050101010
10103219f0193010133696b2f336a020831460d5f03016b5b02049729010297330101015e060160
060394c0463f4636aa2f6b01c06d12010177e9a4045e0618514d035fa75f01aac06a3b0168260101
01020205b91605040201010101010147570401010101010101040101010101010101010101010
10404041c46010212010101010101010101010104010101030501010101040212010312015e020
112010201020105010401120403019f0101030112010e01020e010118d72d01020102120105010
10301050401020101120412011212013a6e010201010404040401010101010101010101010101
020403010e020104030201589505010101010101010101030101030101030101050102010e020
10401010401010402040101010e01050101040101010201010401010101120104010106010301
0424b43a3b03010102020e0101050401050105020103010201040101010101840000b06a01010
1020102429d0166a50e47ad3762a6100b47baa83ecf6901038c8d0174e97d2675eac29102046e9
a12ae90123f871e02e1c5351f1c90e6c844038fe09a342c0179e310b346d7c638213eadcf2024afeb
1b04060104019baa0e0102020104a96a19c5b80101040401010101040101010101010101020202
04010101011c6b0101040101050101010101010101010401010104030405030101015e01010101
010601010304010501050105011201010112020101010501010404020403d7720201010601020
40104020201020101050101010e010101018a7704120401010404010101010104010101040404
01011201010201010e0401010534a70402010101010101010101010601010103010e03015e9f06
01030594943f0402aa060e020e03020101060116029404129f02010e020112030101015e010e01
01a7ecb4aa04015e04010101120201019f011202060101020401010101010104195400e5680102
010101011daf0697c21216a34db2a98d779638013c64010201499b01e19a9371c1763f709f12418
001ca8b01018284010fb151e55e564416886fc11201504121138a69829082216c5ae86b8255a61a
9f5d6601050112b94701019f4b9b802aa889690105010101010101010102020404010104040101
0101010101014c680504020101010101010101010101010103750e04a704022313a03a1983040b
9b3a20290601a64c4d01a4e14b05b982466d8d83a5780e01a9615816011a19ba6e4d3272553f99
8c9a0196839b5a011b2a5f02010101120103994f010101010404040104020201010101010104020
2a0535d470201010101030201e045050101010101010101010324230e5f2c0569d4533e4454c94
b1f2d401a3d12128e1c1692cd105b24bab0c01817750e131ca98ccb771141c9345b9b3440370144
381c1e0e03869c820b4bd4e04b6b7a4c8e3b82c1a706010105030101010104191600ab6c010e01
0112014ccf6cacde50012699e2428d5d891a010cdc014daa0bcc1261364d3f41735f3f0466df0a635
c1ca91214850284e02843aaab5d1501ae54010401cf0b23551637cc854b42a9e34dd6768530571
6030101010177676ea12a9890185101041201120612050e5e949f065e061203030305120e0e121
2050503037f690101010102010101010101010101030160d511941f6060e29abaa2a3e05f648930
e44201058ee5120bd409a0a6d3868f667a226bb907608bc4a639b843766292b95439d475270f981
de3b9e59b76be238f3d0601040101043a4f0101020201010101010101010101040101010101519
a39d8e149290404020105d096010101010101010101010130e69497d70508563d6468568f083ea
ad682010101c9780156984b9a2b1e4b784dbe650de7292d253170b8482ee57452422a5346dc5f0
4868202d72cb08e323250302098774355cb969942010e0e01040101010184d7ffa1110104010302
01d4a6392586230e7511baa93874961a011ad9a8405783c90e32aeab612b22d0540179b3a2b19c
4a670107a59453c793c7042b20c78c2a1a040101483423a205222c8b86bd33b72432919040ae7d
9f010112014052dada8b4949c9d637a461402a4cae37321c808d32ae37a4831e1e83a43c402a8d
6137a4831f26010304010401010101010101010103019500a768db721253c0bc6937bc60430428
58010103868b04ab4a033f808601a95e618a0101b0a6dc30015ec1a201ba958689511e1984010e
18dd16ae7313a803515f020104010e013972020402040304010202010101040404040401010101
060101639813b974180601078804010101010101010101014cde6832df24aaa85dcb94c7d896b1
0237830116aa19770164150102806a01014752332523064c9b0401668377b1b4e001a0a08e6101
0466ca284866e1c98d650101e1a06c20447701059f9f01010e04010104018f2600106b010101020
115cd3d1cce572d476144a05107956eca4222cb66095780258036958092337734a0032b8e05c37
611905156561314a492ce6b50399c903782015e017d8ea576952a5e3a738c6bcf691a7e3d3a83a
c01030104059b3623ab7f1b912694a99316605728574757515f284728285757575757575f5f5f5f51
51515182690101020401010101010101010101010283487837177b0267237d261e544d43012f1f
29750da025012b0f5d2e1ba5736f042a449f04a0abd0917708c7a801278886793d617b3c9a7065d
13b3c30ac8f966f01020201040102b458a23a8a8a2d2d8a99a0a23a9b44393955092da244a809b9
9978a2a0b97fd2d383c11802030101010101010101a9d47973c5a49d3f9a0dd567a319970a018e5
675a46d84a80159c96198d6981e0f04adbc641601ac7a865865507607767a018f9b388a02049fd7
5d593b9ed8a5ac8f768079082b912a78860401020e010401010401980800bc2f04010101028a810
10cab0472470447020101056b3c0e2264010251aa035704a9930101289f043fbd6901b6295e8f5e
020e5f0105150a4b01a9940109ab0301a9be0d3f05a99f01063b1205a9122112019351040501020
101855e01034763b81714a7470202010404040404040101010101040404010101010101010101
014c6c06010102010401010101010101010106b00d84bfc0724b8b16b56b8bb14bc19f28c22241b
923c34f1344793e5da65ac403b80b01028ac553090f0c458694b34a134f242224b933b75bc66782
0908769dc4a90101040403018a986a156711154b6a68314b6ac0664d3567686368312431501128
24630d58af566ec789020101010101010101012ebd051ac2a92331b111142fc88f5d4394c9435a8
c88a3ca8da645aeae1d75538e12b6a7867d57152d4f7c881f0880040b31a30b8b23010103cb9ac1

389

6325c9929a82cc58a6087a6b8079b10204010102010101040186eaffb133010105014db286a9b31
90190b4030201015d66015f0ea35257a7b55701040101010101010101745c034452a9011931010
501959d0160049f01050147b1a842a5993f0104010101010101010101010101010101010101010
3234701040101015f6e2d8f9e30010101010101010101010101010101010101010101010101012
a6b0104010101010101010101010101016db60479b73f45636386a83d7e785bb7753da10251369
51e8368a7199a5e39984501539801013c204d4f0b6a053076b8360f18729d0e95237829144bac2e
a991b93604010401010401a074040104010101010101010101010101010101010104040193738
d1e396f2401018b9a02010201010102010102a60c019e610e6e57319a6a03506972ba3d98a4039f
6a6b5b6f3f89740603967e2194b63128bb950126766303266f310251307f2db4ae01016a5c35733d
723605457e60896b249a015b7269010201010102010101029900000a6b0103040294766347766
812317528040102964b025e056e6f6d2c8901030101010101010101019639942e4fa9935d6c0101
0389550501040112015e0151774f95aa0105040102010101010101010101010101010101010103
23470104010103010201046366060101010101010101010101010101010101010101010101012
a6b01040101010101010101010101011284ab02a49e0146ac120412015e945e720133ab0e05360
204030103010301050103024c869488ad630103120201050305010101aa0101015e01010201040
501010604010204050104018a7401010401010101010101010101010101010101011dae140f746
39f04030101033495010401010404010105a9439ba96439017099010501024a3b0e63057f38a96
77e9f010e01050e01020102013b622e5aaf1101010e01010305010101048e8f51b02e578f49010e
010601010103015e011206010106010101010e0302010101029900000c46011201020201010301
0402011201010101060101010403015e050101020301010101010101010101010601020103010
10301010601120101010101010194010101040201040101010101010101010101010101010101
01032347010401010102011201120201010101010101010101010101010101010101010101010
1012a6b01040101010101010101010101015137a0699e0f0e6a373d010104a4a50101016f82a20
9a621010504010104040104016a401b9d0b500503020105030101010104010201060101010501
06010102040101120101120104012d760101040101010101010101010101010101010101364a3
d0102030304010102010c950401010102020101122186683123360e5b78030501947ba70301027
48a2c756e04040103010104030104016d0945306c0e010201011201010105010423710126a8993
05e01010301010e010105010105010e0301015e0201040102010101049d110038290105010102
01050101060104010101120201010201040402010104020101010101010101010101120101010
6010101010404010101040102010501035e010106010101020301010101010101010101010101
0101010101032347010401010102010e040101040101010101010101010101010101010101010
101010101012a6b0104010101010101010101010101020301940512060406040101014b425e02
040301941606010304010112010105019f03015e5e060101010303010204040201050101040501
040301050105010104050101010102010101a2790101010101010101010101010101010101010
101010301030201040102010101a3750501040101010101010301010501010404010201050106
01030102040103010104030301010501010204040104011201010104020101011203011201010
11201010305010301050201010203010105010101040101010101010204010101049d0000a126
01020302010204010202010204050101010406010101010101050101010101010101010101010
e0101040112040201010104050502010101020104020112010401010201010201010101010101
01010101010101010101032347010401010102010101040103010101010101010101010101010
1010101010101010101012a6b0104010101010101010101010101010112040104010e01011203
04010201040412010102011204010505010104010301020405010101010101010102040101020
10103011201010404010101010501120201050301010101447e01010101010101010101010101
010101010101010501010103010104040103010c45010104010101020401010412011201030101
01040e0201010502010305010103010101010102020102010501010501020e040101010101010
10101010e0401040101015e010101030403010104010401030402050301021201010401010101
a0da080c6b01010402010401040301120101010301010101010502030301010103010101010101
01010101010102030101010104040201010101050201010104010201010103030101040101010
10101010101010101010101010101032347010401010105050101040101010101010101010101
0101010101010101010101010101012a6b0104010101010101010101010101120103010305010
1010e010101120101010101120102120101010301010302010105030101010601040402050104
04020101030102010104010102050101010104010101010104020101399101010101010101010
10101010101010101010101010102010103010104010401817105050401010101010104010104
0105010e010303010301010102030101010101010e01050101010101050101030402010101020
10405010101020402010201020e01050101040101010104010501010404010401010404010101
0101040101a011008246040101010103030104010401010201010201010401010101010104010
e0101010101010101010112010101010103010102010201010401010204040101010301010101
01010101010101010101010101010101010101010323470104010101010101010104040101010
101010101010101010101010101010101010101012a6b01040101010101010101010101010104
01020101011201010202030101120305010302010105120201010105010101040102010101010
50101020301040101010104010101021201010101011201030104050101010101017e39010101
0101010101010101010101010101010101010102020101120101010104146e020101040404010
104030201030101020e0101010103010101010101010601020301020101040504010101010201
03010103010101010102030102120101019f010201010501050201030401010101030101050101
030101030401010401018a00009e6304040301010101010302020103010201020201020105020

10101010105010101010101010101050401040101050102010101120105040201010104040105
01010101020101040101010101010101010101010101010101032347010401010502010403010
2010101010101010101010101010101010101010101010101012a6b0104010101010101010101
01010101030101010503010501040101010401010103010201010401010104010201120101011
20112010401040301010104010104010301010e01010104020404010101010201010204010101
79900101010101010101010101010101010101010101010201040201020101020401837003010
10101010101010101010106010501030104030101040501010401010104010104010301010201
03040104040201120101020101040301010101010401010301040301020101040101030103040
10105010301010101020101010401018a00009c680104010301010101010101040404010101010
10101010101010101010101040101040401010401010104040101010101040101010101010404
04040401010401040201010201010101040204010103010104010202011201981601010304010
40103010101040401010101040101010501010304010101010101010101011c680302010401020
10101010101010104010101040404010101010101010101010101010101010101010101010101
01010101010101010101010101010101010401010101010104010101010101010101010101010
1010101027090010e0103040101040101040101020101010401010101120101010e0101015e01
84710401010101010101010101010104010101040101010101010101040101010404040101020
20101040204010101040404010104010101010101010201010401010301010101010101010104
01010101010104010101010101010104010202019d00002246010201010103020202020404010
10101040404010101010101010101010101010104040101010402030201010102010101010101
01040204010101010104040101040101040104010101010104020101010101010101010499160
40404010106010104050301040402020201010403010402010102030101010101010101206a01
01010101040101010101010101010101010101010101010101010101010101010101010101010
10101010101010101040404040404010101010101010104040101010404040101010101010101
010101010101010102019a39010101010301050402120104010201040301020205050101030e0
20402010104137101050101010101010101010101010101010101010101010101010101010101
01010101010101010404010101010101010101010101010101040401010203010101010101010
1010402040104040404040401040404040404010101010101019b0202548f90766f5d5d3076747
4784f777772777876797478787877777777777777773976777272777639767e91764f777639767
84f767678787690917477737372774f727777737278776f6f3071716f724f4f4f7678307530307777
1b5101010404010105043f55926b93928a940170730421721d0301050201010101010101010161
0812050e121204030303030303030305050505050305050303030303030303030303030303030
30303030303030303030303030303050502020202020202020302040203050304050505050505
050503030303030303030203304f020405010101020105015f6f155735959601020892013d97240
101050404015e98770201050505050505050505120502030e1202030204040303020403030503
03030303020101030505020405020101040203020101040401010104010201010104040401120
10101010301010401010101040101010101010101010304020301910000292c306e6f6f6f706e6e
6e6f30717171306e72726e6f6e73717171717171717174723075753072746e7272736e6e4f76776
f3072776e6f7277736f71716f727778727777737278776e72774f4f4f78744f787979777776796f4a5
d1201010102040102050f7a7b7c730f4a231e7d0f4f7e731371040101020101010101010101537f7f
3c404c402040404040404040402a8080802a2a2a80404040404040404040404040404040404040
40404040404040404040403c1a1a40404040404040403c4080401a1a402a2a2a2a2a2a2a2a2a40
404040404040403c228177010102010204010102120b828320848376858687498870898a330101
01010101558b8c4c2a2a2a2a2a2a2a2a2a40808d2a1a404c1a4080803c1a3c801c2a2a2a1c1c1c
2a3c2a2a3c201a3c3c7f408d4c2a1a1422803c1a3c2a8d8d1c2214618e322a4c32408c401a3c2a2
28d20141a1c1c1a14202a2a802a2a8d4c61142a80201c1f0000011201010301010404040404010
10101010104010101010401010101010101010101010404010101010101010104020202010104
02010104010101010101020304010101010104010101020302040101010101040101030201041
20105050101040101015455425657280c58595a013d155b5c5d015e02010101010101010101014
d42573d4242285f5f5f5f5f5f5f5f423d3b3d42423d3b5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f
5f5f5f5f5f60423d606060606060606042605f603d3d60513d3d3d3d3d3d3d3d5f5f5f5f5f5f5f5f4247
510501010103010102120112614a2f2a353d4358625b011128636431010304010e010e4260513d
3d3d3d3d3d3d3d3d3b3d5f424d355f4d3b3d3b4d4d353d60423d3d6060423d153b3d3515656515
664d42423b154b4b65664b664d35354d15674d3b2468316967682f6a113133316b636831316863
6b24316c6b63266d6d186d5b2e6d500000010101010e0101040101010104040404010401010101
01020404040404040404010101020201010104010101010401010401010404010104020204040
1010101030104020104030401010401010101010301010401010101010101010e010103010112
043c3a3d3e3f40414243444546474849020101010e010101010101010101010102030102010404
04040404040401010404010101040404040404040404040404040404040404040404040404040
40404040402020204040404040404040302040203030204010101010101010104040404040404
040204030101010104010501010112404a4b4c1240484d4e4f5051355253010201010103010103
02020101010101010101010401010103020101010101010101010101010101010101040101010
10404040401010104040101010402020101010401020201010401010103010101011201010202
01010202010404020204040101040402010401020201040401010101010101010101010101040

391

40101010104040101010101010101030101010101010302040101010101010101010401010104
01010104040404040101010101010101010101010101010101010104010403040202010101010
10201060601222324252627282919192a2b2c2d2e2f03050101010101010101010112010112010
10101010101010101010101010101010401010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
1010101010101010104120101010105010105011c30313233343536370f3823393a3b160103010
10203030101010101010101010101010101010104040104010101040404010101010101010101
04040401040202040404020202020401010101010101010401010401010104040402040101010
10101010101010101010101010101010101010104010101000002010301010301010404040404
04040401010101010101010404040404040404010101040401010101040401010101020101040
10101010101010101010101010401010401010401010101010404010101010404010101010102
030101040501030106050708090a010b0c0d0e0f10111213141501010205010101010101010101
04030101030201040404040404040404010101040401010404040404040404040404040404040
40404040404040404040404020204040101010101010101010404040101010404010101010101
0101040404040404040401050101040101010301040501161718191a061b1c1d011e1f15151420
21040102040401010103040101010101010101010101040101010401010101010101010401010
10404010101010401010101010101010101010402040101010101010103010402010102010101
0401010401010204010101010402010101010101010402010102010500000c00000040092900aa
000000000000002b00d30100000000040000002701ffff030000000000
Figure 7.9: Wait-free Communication Classes

7.10 Physical and Raw Memory Access


As mentioned in Section 7.3, embedded real-time systems may support more than one type of
memory (with different access characteristics); furthermore, devices may have their interface registers
mapped into the virtual memory address space. There are, therefore, two main mechanisms that must
be provided by the RTSJ.
1. Mechanisms that allow objects to be placed into areas of memory that have particular
properties or access requirements; for example Direct Memory Access (DMA) memory, or
shared memory.
2. Mechanisms that allow the programmer to access raw memory locations that are being
used to interface to the outside world; for example memory-mapped input and output
device registers.
Figure 7.10 summarizes the various classes.
010009000003deba01000000bdbd000000001610000026060f002220574d464301000000000001
00ab9300000000100000000020000018d7010018f70100010000006c0000000000000000000000
d20100006b01000000000000000000006a4000001e32000020454d460000010018f701000c0000
00010000000000000000000000000000000005000020030000c40100001a010000000000000000
000000000000e3e306006e4e0400460000002c00000020000000454d462b014001001c00000010
0000000210c0db01000000600000006000000046000000047a0000f8790000454d462b22400400
0c000000000000001e4009000c00000000000000244001000c0000000000000030400200100000
00040000000000803f214007000c000000000000000840000550790000447900000210c0db0100
00000000000000000000000000000000000001000000ffd8ffe000104a464946000102010048004
80000ffed0ed250686f746f73686f7020332e30003842494d03ed000000000010004800000001000
100480000000100013842494d040d000000000004000000783842494d03f300000000000800000
000000000003842494d040a00000000000100003842494d271000000000000a00010000000000
0000013842494d03f5000000000048002f66660001006c66660006000000000001002f666600010
0a1999a0006000000000001003200000001005a00000006000000000001003500000001002d00
0000060000000000013842494d03f80000000000700000ffffffffffffffffffffffffffffffffffffffffffff03e8000000
00ffffffffffffffffffffffffffffffffffffffffffff03e800000000ffffffffffffffffffffffffffffffffffffffffffff03e800000000ffffffffffffffff
ffffffffffffffffffffffffffff03e800003842494d04080000000000100000000100000240000002400000000
03842494d0414000000000004000000023842494d040c000000000d41000000010000007000000
057000001500000723000000d2500180001ffd8ffe000104a46494600010201004800480000ffee0
00e41646f626500648000000001ffdb0084000c08080809080c09090c110b0a0b11150f0c0c0f151
8131315131318110c0c0c0c0c0c110c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c
0c0c010d0b0b0d0e0d100e0e10140e0e0e14140e0e0e0e14110c0c0c0c0c11110c0c0c0c0c0c110
c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0cffc00011080057007003012200
021101031101ffdd00040007ffc4013f000001050101010101010000000000000003000102040506
0708090a0b0100010501010101010100000000000000010002030405060708090a0b100001040
1030204020507060805030c33010002110304211231054151611322718132061491a1b14223241
552c16233347282d14307259253f0e1f163733516a2b283264493546445c2a3743617d255e265f2

b384c3d375e3f3462794a485b495c4d4e4f4a5b5c5d5e5f55666768696a6b6c6d6e6f63747576777
8797a7b7c7d7e7f711000202010204040304050607070605350100021103213112044151617122
130532819114a1b14223c152d1f0332462e1728292435315637334f1250616a2b283072635c2d24
49354a317644555367465e2f2b384c3d375e3f34694a485b495c4d4e4f4a5b5c5d5e5f5566676869
6a6b6c6d6e6f62737475767778797a7b7c7ffda000c03010002110311003f00f5549249252924924
94a40c9a716f754cc8636c871756c7b4386e00fbbdc1dee6b51d42caaab001631af0d320380307c7
5494e76657936dcef57a75198c6b8369b1e5a0863b66fdc1ecb7e8bf7a811d49cc753774cc7b71eb
3fab57bda00036b2b6ed736c6376b1d6fb98b4eca29b4836d6d791c170063ef54f13ecd73ec61d96
35ffa4f4b470616fe85bec23f45fa0f47d9ff00189299e1d25d43e9c8c2ab1ab304d4c2d7b093f4a46c
adbff4545afc9ad95d7531acc712dadecdd63b6807d20ea1b4d6d6374ff49ecfa0ad8a28159a856d1
59e581a369feca9b5ad6b435a035ad1000d0001253558df5afadd9353773185d5ee82e996ee3e9fe
91b5ecfd1ff0087556d3d41cf9b7a6d39077b9bbcbda3f4609f49def6bfe97e756b4dd5d6f21ce6871
6fd124491f051b2ba482fb18d3035244e8125346cb33dfb7774daed6b4189b5b2d2264377d7f9decf
f5fa779f553e9161681581c00207c02af880581cdb87a874b06f876df5249a9bff0014e6ed56bd3af6
ecda368fcd8d1253ffd0f5549032c12c006e241276b1c585c435ce0ddcdfe52ca6e55c5cd366165b6
a7c0dcdb6c2e0e3c35f559e96df77b77a4a75bd5b5d6beb631a432249711322780c7296ec8fdc67f
9e7ff0049ac6b6f7d6d75956167d8496ef68b1c0c186ee6eeb3fc1fe7a3d4f0fb9b53a8cdab73b6ef7
d876c96fa83e8daefddf7a4a74a6ffdc67f9c7ff49a5baffdc67f9e7ff49a8e24fa00125db5cf682e3261
ae735b2efea840b774def8b6d2db58c6b2b7b9b0d736a930d737e87a8eb5e929b1bb27fd1b3fcf3ff
a4d471cbcbefde003bc680c8fa15f935677da5ed245d899639da6bb5ef90dfa5ed75955bff81a88c8
6ef76cc3cfda4cb9dbac0490d6fe63acfea6dffaefee7e9129da4966e23ebc8b7d3f47329f607eeb9cf
6833b4ecfe75cef519bbdeade1171c71b89716b9ed05c64c35ee6364ff5424a4e92c5664340636ca
73dee2ddceb6b2f2c3a4cb76bff003bf77626fb48f6bbecdd41b59fe71ce73c164cfe66ff007fe6ff0036
929d6a3e8bbfaeff00faa28ab16dbd95b41af1fa83e5e43803688e7dff004be8ef4e6fafded6d79f5b9
ad043dfbc365c3da77176d76d77d3494fffd1f52b6a16003739a5a6416983c421fd94ff00a6b7fceff6
26fb634ea2ab48ec430ebe697db07fa1bbfcc292967e2dd3babbecd342c711b4ff0068377b5dfebe9
a837e9065b65b53ce8039c36b8ffc1bf6ed771f47f9cfe4227db1bfe8adff00b6ca47258f05aeaac20e
841acc7e4494871fa8e08c8fb0d6e79b43ded3b98f82e1fa4b3f4a59e9ff0084fde567d01bdef6bdcd
2f32e0088900327dc0fe6b557f56baa8f5a8b432b32d6d56fb5bb9bedf4dbea6d7d5f4367fa3ff00834
b1ba83eda839f43daf892185b634833b1f5d8c76d7b2c8dedff00a6929b1e8bbfd2bffe8ffe4556c9cb
a30cfeb1758d04c321bbbb37fd1d6efde46fb5ff00c0dbfe6ffb50aac8bdb75c6caac3539c3d101bac6
d1bcbff00b7ec494d8ac6f636c6d8fdaf01c240060ebc398a5554da99b193124eba99712f77fd27217
dac7fa1b7fcc40c8ea4eaed6b435b4d40037df90456d66f3e9d2c01d1ea596d9febef494d8d8cc7a8
036b995b006b66381a35bab5543d42a7640c5f59f4d85db44b25c7e81d3f46eaeb6bbd6abf9d47ae
dc60d6dec7fda9cf2582c643f503dcd66cf657f43ddb517ed2dff4767f9852533f4ddfe91df87fe4545d
417b4b5d63f6b81047b783fd94df696fee59fe63bfb92395588dcd7b4121b258e025c7637b7ef3925
3ffd2f487875989f67732eacc005f5c0708fdd7ee3e0aa59d3cd8eadd65f9a4d560b4005a012d0e6b
77363f95eefccf53deb4d9915d8c6d8c0e731e039aeda75046e694fea8fdd77f9a525396ee9db9edb
0e4e7ee64edf7374dc083edd9fca46c4a4e35a6d36e5df2dd85b66d2d91f4addb5b59fa577e7ffd0f4
d473a866637d4b70cb8d70581dabcc3996b1be9d6f657b3d4631dfa5c8621e274ca6b22c6630c52
665905d01e5bebd7e9d5b31dad7bab6bfddeba4a5371b14d4f3961d92e0fb2c18ae0cb05725ef6c3
08f4e877a367f867fe7a80a28cdacd469be9631ecb69f4cb5bb4b41da7d4c779a7e93bd4f4f7ff00c6
2b1e8661b2bf4994dd8836b83ae7383e3f3c8a1b5fa0c7ed73b67d0575b92d78dcc63dcd920103c0
ed494e759d3bd6afd3b6dcd7365a5c039a24b76b83bdbee6fb99fbca38f8d539a0e364663db417d5
b43c6ddcc3b0b1ed1b3f9973767b16a7adfc87fdcab7d9e8b287d36d4f0c758f710ddcc99276bb754
5aefa2929a8de9de97abe85d9d59b5db80dc1cd69036fb43bf336ec66cddfe0fd8a4d663d768a729
d71aed6b431f9037873dafb6ffd23cb1f533d2decf477fa7ff05fcdad0a1b4e3d4da6963db5b660438f
27772e9f153f56b359b0fd06cee9074db21dedfeca4a6a8c26e2dcdbaa363da5c775436ec1ed70de
dada19eefcc559bd39adac56dbb39ad065a0386865cefdd3fe91caf1ad8d1fa10fabbc35b2d3fd6acf
b7fccd88387898f896135e3ec716edf559b8c811b5ae6bfdedfa3ff089290330831db85f9ce7168697
120c801c193ecfccf53ff4a22538eea8398d7e4ddea3eb317ebb76bc39e5a7dbb7daaf7aa3f75dfe69
49d7b1a09707000493b4f1f724a7ffd3ee0635eeaa90466d16369ae9b5b5166d860321bef7337fa8
efe7bdea669730173adea4037dc4cb7b376eed07f2776cfa1ea7e62d366650f6d2f61739b91ad4e0
c71047ef13b7d8dfeba0e6e56ec2c9fb3871b58d7340756f82ee037e8fb9aeff0048c494d5fb3b8b5c
df57a80dc41265b301dea6d1edf6fee7fc5a7c7c7f46c6bcbf36c0d7bac35b80d85ce11c47a9b1bbb
7b7f49ff19ea295d8b75d953f6ebebdd582ea995c57a0fa6c7167b2cf53dfb3d4ff00ada80a0c5760e
a197b1cf6ec1b0ccb49dcd7fe87f9bb27dfeaa4a74f1c118f58702d3b44b4f234e0acfb58fb709d8565
192c05dad949603ed7fa8363fd4fcf8ff3168b2d6585e1a4cd6edae9046b01df9dfd653494e27d92d2
f6d8eb3a8b9cd24eaea80320b756b3637dbb9ffebb138c7c80dda2dea2746fb89a8ba58ef5187f77f
9167b7f4b5ff38b605959301c093d81098db5076d2f6874c4122652539d47ad55a2c70cdb4411b1f
e996ebb7b348fa3b55b687bb0acf639ae7fa8430c6ef717b9bdf6ab0083c199d427494e3bf118f758
776731b6b9cf756d20365e071a6e6eddad757eef6255621a83036ecf8ad818038820c7d17be1a3d
cb58bd80905c011cc9f143b7370e97965d7d75bc00e2d738021ae2e0d7904fd176c7a4a73d9d3d8

393

c6ec65d9ac66a76031a96b6be76eff00ccf57e97f3a8bf677b4177af956ba1c363c0dae25a590f0dad
9fd7fcc577ed18fa7e959af1ee1af23fefa9332287fd0b18ed634703af824a7fffd4f416606439cdbd99f
90d75cc68b5a5bedd18c687368b5aefb2d9b9bea3ff00e33f49fe0f62b7a764d8f168ea3935b98e06
180069e7daeacb1cdb3e97faecad7cd2924a7e9a760e4ba5aecdb9cdfa42406c10e63eaf7d4cafe8
ed735ed73bf48a23032480e7f50c83610035c1ad68047b89f49b5edf73bfd2af99d2494fd4b8ec7b1
9e9bec75ae6434bde209200977b4358eddfc8f629bc02c70718690413e4be5749253f50574d41b5
8170731bb76e8cd63e86ad1ff52816e37443957bed757f68b0d7eb83641ddb7663cb37fe8dfb3f9aff
00b717ccc924a7e99b3a7f49b03039c401059b6fb1ba06fa4d8d96b7d9b3ff0004fd37f3bef57d8d6b
18d6b676b4002492607f29d2e72f95d2494fd3b7578245e2cb2a01dfce97064b667e9eeffa1ea20e4
b40ca218ec32e18e033d61376ef77a0e7bb77f46fe7ff0037fd22f9a12494fd19b6a15d42d7f4b7b43
2b1492d0016eefa55fb8b767f39e86cff0008a54860bebfb29e98723657f4203b46bb69afd3dcff004d
cefb4fa3ff0007ff005c5f38a4929fffd9003842494d04060000000000070005000000010100ffee000e
41646f626500644000000001ffdb008400040303030303040303040604030406070504040507080
606070606080a0809090909080a0a0c0c0c0c0c0a0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0
c0c010405050807080f0a0a0f140e0e0e14140e0e0e0e14110c0c0c0c0c11110c0c0c0c0c0c110c0
c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0cffc00011080111015e0301110002
1101031101ffdd0004002cffc401a200000007010101010100000000000000000405030206010007
08090a0b0100020203010101010100000000000000010002030405060708090a0b10000201030
30204020607030402060273010203110400052112314151061361227181143291a10715b14223c
152d1e1331662f0247282f12543345392a2b26373c235442793a3b33617546474c3d2e208268309
0a181984944546a4b456d355281af2e3f3c4d4e4f465758595a5b5c5d5e5f566768696a6b6c6d6e6
f637475767778797a7b7c7d7e7f738485868788898a8b8c8d8e8f82939495969798999a9b9c9d9e
9f92a3a4a5a6a7a8a9aaabacadaeafa110002020102030505040506040803036d01000211030421
12314105511361220671819132a1b1f014c1d1e1234215526272f1332434438216925325a263b2c
20773d235e2448317549308090a18192636451a2764745537f2a3b3c32829d3e3f38494a4b4c4d4
e4f465758595a5b5c5d5e5f5465666768696a6b6c6d6e6f6475767778797a7b7c7d7e7f738485868
788898a8b8c8d8e8f839495969798999a9b9c9d9e9f92a3a4a5a6a7a8a9aaabacadaeafaffda000c
03010002110311003f00f7f62aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8ab
b15762ac03cd1e5af2df99ff30b42b5f32e9165ac5bc3a36ab24106a16f15d468e6eb4f52ca92ab00
69b540c5591689e49f26f966e64bcf2e797b4dd1eee58fd1967d3ece0b591a2a86e0cd12292b500d
3154f71561b27e527e56caed249e4cd11a4662ecc74fb6a9663526bc3a938aacff00953df953b8ff00
04e89f15797fb8fb6a9af8fc18ab26d1b43d1bcbb611e95a0d85be99a64459a2b3b48d61854b92cc
422000549a9c5576ada4697aed84ba5eb5670dfe9d3f1f5ad6e504913f060c2aad50684038ab1cff0
09551f968294f29e9629d296916dff0b8ab6bf957f96c8cac9e55d31594f2522d630430dea36eb8ab
2fe9b62a91eb7e4df2a799678eeb5fd1ed352b8853d28a5b98965654279710586c2a6b8aa49e5ad
0345f2df9db5ab1d06c21d3aca5d2f4d9a4b7b6411c6d29b8bd52e546d5a2815c559be2aa30dd5a
dc9916de68e6685cc7308d839475eaad42684781c555b15629f99acc9f97de6428cc8df509c72462
ac015a1a114236c557a7e5d792623198f45811a2659232bc810c86a0d7976c559462a936ade54f2
feb970b77aad92dcdc220895cb3a908096a7c2c07538aa03fe55d7933fead4be3fdecdff35e2a9869
3e56d07439dee74ab316f3c89e9bb8791aa9506947623a8c5538c558e3790fca6f23ccda70323b16
66f566152dd7f6fdf1572f90bca686a9a7f135aed34e37ff009198aa75636169a6db2da59218edd492
14b33eec6a77724e2ad6a1a75a6a96c6d2f519e06218aabbc66aa6a3e242a7f1c558d6a7e57d1e0
bbd1e08527486e6f5a3b85177734745b3b99003fbde9c955be63157ffd0f7f62aec55d8abb15762ae
c55d8abb15762aec55d8abb15762aec55d8abb15762aa46daddae12eda243751a344939506458d
cab3286ea012aa48ff00247862aab8abc7ff00317ccf71e56f3b699aa6a97d791f958b416f0be9b727
8c3a9c51dc5c1b4beb4e8f15e4417d29c02d14b1856e08dc8aa99dc7e676ab6574d6b73a6d9cef6
d6f65a8dcb5a5db4a24b2d52e56da030fee855d492cea7aaf0e07f7828aa55e5efce3f316b769a716
f2ddb26a7a9d9daeb56f6b16a0a633a5cf1abc959678e00268aac4ad3870e2dcbe2c55897993cfbe
74d46e879b7cb97ef69a65bc7a2f9860d296432c771a3a2ead2dec12a1501649a0b61f679719512
8dd7154ef44fcc9f313799fcc3359b1f3047ae3d8ddf94b4a9654b0822d3bea12dd7146969fbc9910
4a797ed3fc5c638f154eae7f37f55d39eeeeb53d0a04d1ec19e4ba96daee4b8b9fabc7a8cda6931c7
f5750ce6444755e74e05be2a81c95769ff9b9aeeb375a6e95a4e816f2eabaa5a0d4adfd5bc78edfea
b3d92dec0bcc40f5948628ebb2a901b9157d95667e44f34dcf9c7434d7a4b44b4b4b8e1f545490ca
cd4863f58382abc5a39ccb0d3fe2be5b57885593e2a906b7ade9fe5fbc4ba974bbebbbbba8b83dc6
9d6135eb7a70b12a8ed0ab1142ec554f8b62a979fcc3d3c56ba26bfb1a6da2df9ebf28b154abc97e
5df2f6bfa4dc6b373a698af66d5b589a2ba292595fa2cb7f3eccebe9ca8d4d8a93b62a9e0d03cc1a5
c913e8de6295eca14657b1d6235bd46aee1beb00c73823c5de4ff005715482e7cfb05c3a797b5ad1
d35d5be66b3baff000f3fe98b756ad185ca718da2503ed170557ecf2c55e8f8ab02fcddd4bccda4795
22d47ca33347addb5fda4c9000ac2e61864f567b660c0ed346ad183d559832ef8ab12d33f34752bd
f30eadaa68ed26bda4eb36ba63f91f47531db452a4b16a12cb209781359859332b49b01c07c3f11c
5532b9fce6b9b5bb78e7f2eb47690dc4f0cf21bc432a4767a85a69f3b7058ca9656bc8d95449f1f190
73fb3c955683f36f52bfd4746d234bf2f2dcdfebd0c17da7b3deac56e2caeedae6e63792411391252
d5d591558062b472b5e2aa075efcd8bdd47f2e1bcd3e54859751924896de282392f65f5ed221777b
6cd12c45b9031c9685b8fc32b72f8698aa6771f9baf2346fa1e8336a7697b1d936932acca925d49a8
d8bea11a08b8315a4513f2627ed71fd92cc8ab22f2ff9d46b9e61bff2f4960f6771676905ed59d64a2

cd2cb098dca550488d11e4a8f271ad18abfc38ab2bc55d8aa9c90432bc524a819e073242c7aab94
64247bf1661f4e2aff00ffd1f7f62aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8a
bb15762ac72e750ba4f3e699a52cc459cda46a17525bedc5a586e6c911ced5aa891c7fb2c5591e2
a95dc796b40bbd563d72e74db697578978477af12b4a178b2fda23b06603c0337f31c55076de48f2
95841630699a2d959ae97ea3696b0dba225b3ca7931455000ab51be6062a93f94ff002afca9e5af2
be83e5cb8b0b5d4df41314d6f7f35b22c8d790c7e90b9a7c5c642bb1a1fc3154d6dfc81e4ab4befd2
76ba058c1a87acd75f598a04490cce240589502b5f5a4ff918ff00cc7155b73f97de47bcb89aeaefcbf
633dc4f35b5d4b24b023b19ec50c76efb83431a3144a744257ec9c5570f2179384ab38d16dbd559
04cafc37f505d1bd0dd7afae4cdff193e2eb8aaf1e4dd0ad1165d16c6db4ed4ed56e4e9b7890ab7d5
a6bb8c46eea95008215015a805542ec3154c342d220d0b49b5d2a02196dd4fa922a08fd495d8bcb
2155d817766720776c5530c5522b7bfbb7f38ea3a63495b1834db1b98a2a0a09679eed1dab4aee2
241d7b62a9ee2ac4ac746f38c297168351b2d3eccdedccf14b6f03dd5cbc1713bcc2a652888f47a1f
8251b77c55110f91f4866f57599aeb5e9fd5f5c36ab319e256edc2dd4240a076e3162aef395dcbe5b
f24eb17da22c7693d85a4b2da848d7823a8a82129c7afb62ac9715425fe9761aa0b75bf844e2d278
eeedc312384f09aa38a11b838aa4371f96fe45ba478e7d0ad5a278ad2dfd20852358b4e2c6d95154
80822e6fc38814e6ffccd8aab4be42f27ce499747818b3c929d980e72dc4574e680f79608a43fe546
be18aaf1e4cf2edb4915e699a7dbda6a76664974eb9084882692278aa11596aa16461e982178b30
5e3cb156f44f2a58e970d8c973c6ef58b45ba2da82a7d5f94ba8ca27ba658d0f1412482b4f888a0f8
8fdac55063f2d7c8c34f3a58d120fa81782510fc642bda7210b212d54281980e247c24afd9c5531d2f
ca5e5bd1751b9d5b4ad361b4d46ed4c7713c40a964673295a56807325a807da663fb47154eb157
62a97ea37735b5de930c4404bbbb7826a8ad505acf28a787c51ae2afffd2f7f62aec55d8abb15762a
ec55d8abb15762aec55d8abb15762aec55d8abb15762a916b1e55b1d6752b4d61ee6eecf52b282
7b486e2ca7309305d3c4f2230a106ad0a11b6d4c555f4ad0bf45ccf37e93bfbde69c3d3bc9fd641b8
350388a1db154db15634de507662c3cc5acad49341749415f0ac58aadff074dff532eb5ff49317fd51
c5528f3a4dade83a0d8e95a0ea3793eb2f706efeb322a5c5cc96ba7037b3c4688ab494462dab4ff7
76df162acb2e625d7f484fa9df5c58c57891cd0de599449c2351c713223a8a8d8d5715498f92ef4d7f
e76ed7457c25b4dbfe9d71572f932f54a9ff00176b86841a196ce869d8ff00a262acaf1549759d02e3
569e39a1d7351d2d5138186c1edd6363527937ad04a6bdb638aa9e87e578f45bebbd4e4d4efb54b
fbc8a1b779afde272b15bb48c8a8218a20379589a8ae2a9f62aec55d8aa5faee8f6be61d1afb43be6
75b3d4217b799a221640b20a12a482011db6c552e8fcb37e8cac7ccfab380c18ab1b1a1a1ad0d2d
06c7db156438aa59a8e95777d3acd06b179a7a2af130da8b628c6a4f23eb4123577a75a62a823e5
dd4bb799f541fec6c0ff00d8a62a88b3d3ee348f5ef6ff005cbbbdb548d99d6f05aac71aafc45eb0c11
1d80ee698aa1bc97e61b9f336851ea37f6f1d9ea4b24915dd94727aa21656e5182d41bb44d1c9fec
f156dfcbbaab48ee3cd1a9a2b3121152c38a826b415b42683dce2ad2f977565a7fced3a9b53c63b0f
e1683154e2c2da6b3b6582e2ee5be954926e6e046b2354d6844491aedecb8ab7796f35cc06282e
a4b3909044f088d9c53b525575dfe58aa513f976fae24b6965d7af0c969219e1611d98a398de235ff
47dfe191b157fffd3f7f62aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb1576
2aec55d8abb15762aec558bd8b1d57cedaa5d34520b5d0ed63d3209188f49ee2f38dd5c715ee550
5b8e5eecbe38abbc8acf6da5dcf97e58a485fcbf77369b1894f22f6a9496d5d4d4d54c12463fd60cbd
b156518abb15762aec55d8abb15762aec55d8abb15762aec55d8ab1bf3b4ab26911e88b2aa5cebf
711e9712b82dce39aad70001e16e92b7d18aacb4962d2bce977a596f4e2d6ed1350b3882854f5ac
78dbdc508ea7835bede00e2ac9f15762aec55d8abb157ffd4f7f62aec55d8abb15762aec55d8abb1
5762aec55d8abb15762aec55d8abb15762aec55d8abb15762ab5dd634676fb2a0b1a0aec37e831
579ff00927ce9e4f5d105d5c6b76505fea334ba8dec535d2078e5bc73208d8b91bc6a563a76e3c71
546e99ace8d379f261a45f5b5ec5ac69c249fead70b315b8d364080945269ce3b80397fc558ab35c
55d8abb15762aec55d8abb15762aec55d8abb15762aec558d314d4fcee91d51e2d02c8caca54965
bad458a210dd0158a2707da5c557f9b47d523d335e5241d26f629262aa1c9b5b9adb4c0f82a897d
434ff007de2ac8b15762aec55d8abb157ffd5f7f62aec55d8abb15762aec55d8abb15762aec55d8ab
b15762aec55d8abb15762aec55d8abb15762aec55887e677fca1b75b56b75a68a52bd750b718ab
2d088a6aaa013d4818aaec55d8ab1610000026060f002220574d46430100000000000100000000
000000100000000020000018b7010018f70100b15762aec55d8abb15762aec55d8abb15762aec5
52bbdf2e683a8dc35d5f69d6f3dcb801e678d4bb05141534a9a0e95c558ff96fcb9a06a9a4ccf7fa65
b4c7ebba85bd3d250a6282f25891481b101500c559a62aec55d8abb15762afffd6f7f62aec55d8abb
15762aec55d8aa4f75e6df2ad8dc496b7bae69f6d7513709609aea18e446a568cacc08343df15524
f3af9364154f30e98c0785e407fe37c5577f8cbca05b88f3069bc852a3eb90577e9fb78aae3e6ef2a0
ebaee9e37a7fbd7075ff83c5570f35f9589a0d6f4f27fe62a1ff9af156ffc51e5aebfa66c69ff003150ff00
cd58ab7fe27f2d7fd5e6c7fe92a1ff009ab156bfc51e5aff00abcd8ffd2543ff003562aeff0014f963feaf5
61ff4950ffcd58abbfc53e58a57f4d5853fe62a1ff9ab1577f8a7cb3d7f4d5853fe62a1ff009ab156ff00c
51e5aa57f4cd8d3c7eb50ff00cd58ab5fe28f2cff00d5eac7c7fdea87fe6ac55dfe28f2cffd5eac3fe92a
1ff9ab156ffc4fe5affabcd8ff00d24c3ff3562ac5ff003175ed0a7f2acd0c1a8dacf33de698890c73c6ee
ccda8db80028624e2acf715762aec55d8abb15762aec55d8abb15762aec55d8abb15762aec558ff9
345348b81b9ff725aa6e7fe63e7c559062aec55d8abb15762aff00ffd7f7f62aec55d8abb15762aec5
5d8ab10f2ec30bf9b7ceacf1ab1fae58824a83d34e83fae2acabeab6c7ac31ff00c08fe98ab5f55b5ff7

395

c47ff00bfd31577d52d3fdf11ffc02ff004c55df53b4ff007c47ff0000bfd31577d4ed3fdf11ff00c02ff4c55
df53b4ff7c47ff00bfd31577d4ed3fdf11ffc02ff004c55afa9d9ff00cb3c7ff00bfd31577d4acffe59e2ff00
805fe98ab46c6c88a1b6888f0e0bfd31577d42c48a1b5869ff0018d7fa62ab7f46e9db8faa4343d7f7
69fd3155bfa2b4b3ff001e36ff00f2293fa62ae3a4e967ad8db9ff009e49fd315629f98fa6e9f1795247
86d618e417da505758d548aea56db82062acdf15762aec55d8abb15762aec55d8abb15762ad035
c55bc55d8abb15762ac7bc94dcf4595bc751d53f0d42e07f0c5590e2aec55d8abb15762aff00ffd0f7f
62aec556f34fe61f7e2aee69fcc3efc55be4be23157020f438ab78ab14f2d57fc57e75ff98eb2ff00ba6
db62acaf15762aec55d8abb15762aec55d8aac9268a1a196458c1e9c885afdf8aa9fd72d3fe5a23ff0
0835feb8ab7f5cb4ff7fc7ff06bfd71577d72d3fdff001ffc1aff005c55df5bb5ff007fc7ff0006bfd7156feb
36dd3d64ff00821fd715621f99b7300f29b5254ff8e968c0fc43a1d56d41c55987af0f4f516bfeb0c55b
f5a1ff007e2ffc10c55deb45fefc5fbc62aef562fe75fbc62aef562fe75fbc62ab832b7d920fc8d7156f15
762ad120752062aee40f423156f15762aec55d8abb15635e4535d0643ff6b2d587dda95c8c5592e2
aec55d8abb15762aff00ffd1f7f62a87bfff00786e7723f7526e3a8f84e2ac5340f24f9325d034bb89b4
1d3de47b3b779257b688b31f49496625773dc9c5559fcabf96ab024efa4e8cb6d23111ca61b608cc
3a806942462ab63f28fe595c12b0e91a34ac14ca42456ec420eadb0e9ef8aa23fe55df909c03fe1bd
34823622da2a50fc9715526fcb7fcbb2fe9b796f4cf508e413eaf154a8a0ad29d0571558df961f96e8
5a43e58d310c84736fab44bc8eca2a69b9ec3156cfe5bfe5d32994f97b4e29ddfd14e3e1d7a62abbf
e5597e5f7fd4b761ff0022571577fcab2fcbeffa972c3fe44ae2adff00cab2fcbfff00a972c7fe448c552e
d7ff002ebc8d69a0ea9756da059c57105a5c490ca9100c8e91332b023a1045462acded8936f1126a
4a2927e818aaae2aec5584ea9a7d86a5f997a743a8dac3770ae857ac915c46b2a86fae5a0a80e08
069b62a9f9f2af95cf5d12c0ffd1ac3ff003462ab1bc9fe527357d074e63ef6701ff8d31568f937ca0dd
7cbfa69af8d9c1ff3462ad7f82fc9dff52f699e1fef15bffcd18aacff0003f92bfea5cd2ffe90adff00e68c55
46e3f2efc83751fa571e57d2a48f923f1365053946c1d4fd8ecca0e2aa87c87e482493e5bd3093d4f
d4e0ff9a31577f80bc8fd3fc37a67fd21c1ff003462ad8f22792474f2e69bff0048707fcd18abbfc0be4b
a93fe1ed36a7fe5d21ff009a71577f817c97ff0052f69dff004890ff00cd38aa5b6da1e8da2f9ef4f1a3e
9f6f6027d26ff00d7faac49087e17367c790402b4e4695f1c559962aec5580af973cbfe60f3ef994ebb
a6daea46ded74b583eb7124c6356172485e60d013d698aa6cdf96fe406353e59d36bd3fde58bfe69
c556ff00cab3fcbdad7fc33a6d7c7ead1ff4c5569fcb0fcbc6143e58d3a94a7fbcd1f43f462ad7fcaaff00
cbbad7fc33a754efb5ba0fe18ab7ff002ac3f2f7fea5bb0f1fee17156c7e597e5f8e9e5cb11ff3c57155a
9f95ff9791af08bcb5a7a2d49e2902a8ab1a9341dc93538aaeff9567f97ff00f52ed8ff00c8a18abbfe5
597903fea5db2ff0091431568fe58fe5f914ff0ed97d11d3f8e2ae1f965e410411a05a822942148e9d
3be2ac7bcc1e41f27daeb9e53b4b6d2628ad6fafee20bc850b849625d3eea708e396e0491a3d3f99
462afffd2f7f62aa17bfef1dc7fc627ff00889c5501e5ae23cb3a416d9458db56bb0a7a2bd6b8abe63d
357cbd73ff0038f1a368173a799bcd1a64267481ed2477b4864d7a1f57955288d20e240fb6d18661f
072c55936bde45d32efce3e7d9b4e8adb4dd2744b4b0d57d282d8fa97127d43500f0a32d1444e67
0655557e5f628390c5590e85e69f3dadc699a6a4f2dfe9d26a575e5f7ba4b58a3784470db5f4176eb
c055040b7316df0b3187fdd9f115506bf98be67b58ed6ef5488acea92c7a96a50db2dc04b26bdd3d
5af6d59610e6158677731491f389d184aafe83332aa3acf9c35abcd407972fefe4d4b4d54d3e46bb9
34e92c79dd417ba4cf1ccabc1b88749a67357ea8dc624111665588f9974bd592c354d122b7924f25
49e69d3bcd56175123b466e6e3cc2b05cd8b75202c88f79b2f011b6ff0e2ac8a4fccafccd9b4a6d45
6f60b7ba91754965d3a1d3a6796cae34ed3e7b85b594cf1a024cd1a2f15e4fc588f51b9c6c154fe0f3
e79e05f6a1a7b48d34ba7df430e9ccd6aa8352824be48ae79108154db412090702bb7c6fcd55f154
7794bcc3e7eb8d47ca51eada92df5979a74c4d49d96cd2dfea92d9d1eea2214569209e148f97c4a6
3937df157a379a3fe519d67fe606ebfe4cb62a98daffbcb0ffc635ff888c555715762ac4e703fe56669
e7b8d0afbfea32d315643aa69d6fabe9979a55d9716b7d04b6d31898c7204990a31575dd5a87661
d315781c3a2b6abf969e67d43cd1eb477de4bd12efcb70bbc92c1ceef4386e01bd2fc979fabca2911
ba2b0f1c5544794ae6f7cd3a6691e58bb3632379634cd5febf25edc73b4e5a8739e48631c848658c
489c5d953e33c98afc38aa61e5bfcc2f39e9ba068b6d09b0bfb289349b02c91cd25c72d6f4c46b0e6
c66606974512590fdb8e4e5f0712715476bff009ad77a4ddbdd6a7676febe8f7fa9c2b2ca2458a2b5
8aca4963ba478a57592328a5a5e4aaf1f1951911915caa96f9dff34afcda6a7e543ab695a8ade685a
abbea3a53c90b2b0b0bdb9b59918ca685d6dfecc46550dea1f597f76aeab16f376b3afe9da3fe66f9
76cafae8e97acadfeb76ba94174e834c5d282437d02cca6b1fa8ff0055291291fef4ccdb62af4697f34
75f79ae2d349fd116f10d5ff40da47712493dd5ab42f75133dcc11ba1018409247574aa31fb4bf1e2a
82b5fce5f31cfa325e3c1a6adf7e8d6d6801ea882654b0d3af459467992257faeb2a3ef5f4c7eeb734
5538d2bf317cdb732e8b35f5b599b0f325eea3a5e9bf5582766b7bab0bc3122cec662087b786e252
42a7168f8e2af59c558dde7fca7da47fdb2752ffa88b1c559262aec55e39f98175359cbe78b8b7b89
2d2653e56559e195e090096fcc6c03a152392b153bee0d31544a7e67f9846bd2594b069dfa323b9
782aa65f5f82eb53e8e0d4b71a931a4b5ff005e3a747c5528b2fcebf307d41b53d4acb4e16ff57b299
520798156d474b8f515666627e08b932c869f1251fe0df154537e6979c2ef51bcd36d60d36d5349b
cb6b4bebc7f565f5965d6ce965e14e4a14322d4f266e0fcd6adc6b8aa55e66fcc7bbf3049771585da
db5be98755892ef4fb9758ee227d06f2e637a82a7f772460ab90bf12f3403662aa8693ab79e7ca3f5
1f33dfea0b77a46a3a6c37d6fa1de5dcd3b456ec349b69dfd43b192496579101e4b172603fbd6555
5968fcd4d5d792cba6270d3f577d0b5eb9459192d6747929308f9091a0286d59a4556f4d6e56465f
4d5f8aa83f28fe68c97ba45c844b1d3ff0044073790ea17d713cadea4f7888f1bb892475e50014237f
8d54afa6a0aac175af3d79d7cc7a86a1aaf96eea6d3f54b35d0af6d748f5dfd095ec2f3cc0b756ed1f2

200bb8ec151d477e1f137a61b15643a67e646b7fe20d7b55d2a46d517cc834bb8f2ce99a8dc25a5
b5bdac96177731aa891d04667481656ad64f8d98ab7a7c3154d26fce4d7ada5bfb99b4ab2934bd3
eee5825482695eea4862d5ce940c638052cc4ac83b6cc9dc362a8db2fccef35eb573a669da2e9ba
64b75a9c11de4370f7529b7314fa725fc6abc1092d56319278fc3c25e3f170c5503e60fcceb37f2df9
4bf31a680a5825f5cbdbc0164e6f37e8aba84c4569cabf582d1569db962afffd3f7f62aa1786967704f
4113ff00c44e2a83f2d9af977483e3656c7fe492e2a99e2aec552f9345d3a5d660d7e48ddb53b681e
d20732cbe9ac52b066a45cbd3e44afdbe1cf8fc3cb8923154c315762aec55d8abb154047a358c7ac
4dae812b6a334096accf34af12c48c5a91c4cc6342c4fc6c8aacfc57996e2b8aa8f9a3fe51ad67fe60
6ebfe4cb62a985aff00bcd0ff00c635fd431555c55d8ab129cffc84fb05a6dfa06f4d7fe8f2d71565b8aa
9cb0413c4f04d12490c829246ea19581f107638aac5b3b4471225bc6b208c421c2286110e895a7d
9f6e98aa5b79e5ad3eeef74ebbabc10e9d27ac2ca011a5bcf22a8589a65e059bd123945465e2de3
b62a98fe8fb0e45beab0f225d8b7a6b52d20e2e7a7561b378e2aa4747d248453616e562410c60c2
9458c02022edb280c76f7c557fe8dd3bd192dfea90fa1312d345e9a70766a54b2d2849a0eb8ab4da
5698ccecd650334acaf2b189096745e0acc69b90bf083e18ab49a569681152c6dd563749102c480
2bc638a30a0d8a8d94f618aa17f405a8d5ad7548e59628ace39521d363f4d2cc4b31ab4e5550319
28596bcf8f166f8797c58aa6d8ab1cba6a79f34a5ec749d44fdd7363fd7156478abb1561da7da5ade
f9dfcd76f7b6f1dc406df48631cc8b2212a2e48346a8d88a8c55911d0f452dc8e9b6a5ab5e4608eb5
e664ad78ff392dfeb7c58ab49a1689190c9a6daab01c4110460d3d3f4a9f67a70f83fd5f87a62adfe8
3d17d368bf46dafa4d1ac0d1fa11f130a31754238d38862582f4aef8aa937967cb8dcf968f647d42c6
4adb45f1190306afc3bf20ec0f8f26f1c55526d0b44b88e18a7d36d658ade3f42047823658e2aab70
505765aa29e236aaaff2e2a85d2fcb1a7e9f6e63ba2754bb7b97bd9afaf522799ee5c05e7f0222290
8aa8bc15688ab8aaaaf963cb4bf6746b11fb992d76b687fde799cbc917d9fb0ec4b32fd966dce2adc
5e5af2e5bcab3c1a459453a32ba4896f12b0642e548214104191c8ff005dff0098e2ad4de58f2ddc3
3bdc68f6333c8d0bc8d25b44e59ed45216355353183fbb3fb1fb38aaf1e5dd003fa834ab41217f50b
8823afa9eafafcabc7afabfbcaff00bf3e3fb58aa94be5cd312d9934ab6834cbd459bea57d6f6f0992d
a6b84e0d2c61d0af23b56a28d4a35462ac57ccfe5eb5e7e49f2efa927a1f5dba8beb3c87afea7e8ab
d6f5ab4a73e7fbce94e5db157fffd4f7f62ab648d658de27dd1d4ab0f62287156216fe419ed2de2b5b
6f36ebb1dbc08b143189ad085441c546f6a4ec062aa9fe09bdff00a9bf5eff0091b67ff6498ab8792af
87fd361af7d32d91ffb14c5577f832fff00ea70d77fe4658ffd9262aeff0006dfff00d4dfae7fc1d8ff00d91
e2a956afe4af382bc577a179d75593d20c27d32f1ac9229c11b719d2c99e2707f6b8c894ff75fed62a
84b3899ef22d2b58f34f98745d666afa36b7af6012629c797a13ada18e4fb5f6437a94fb51ae2ac83f
c1ba87fd4dfaeff00c1d8ff00d91e2aeff06ea1ff005386b9ff000763ff006478abbfc1ba8eff00f3b8ebbb
ff009761ff006478aac9fc8f77736f35adcf9b75b96de7468a68d9ec406471c596a2cc115069b62acb
51422aa2ecaa0003d862ade2aec5520d5fcaeba9eaf6dae5bea779a66a36d6d2d9092d3d02af04f2
472b0659e19454346b4229df155a3cb9ab0aff00ced5aa1f9a69ff00f6498ab5fe1cd5ebb79ab531ed
e9e9ff00f6498abbfc39abff00d4d5a9ff00c8bd3ffec93156ff00c3babffd4d5a9ffc8bd3ff00ec931577f8
7757ff00a9ab53ff00917a7ffd9262a97ebfa5ebba6e8d7da85b79a750f5eda17963e715815e4a2a2
a3eab8aa627cbdabd4d3cd1a9007a7eef4fff00b24c5570d07581ff004d35f91d778ac3fec97156ff00
41eb14a7f896fbe7e8d8ff00d9362aefd09acd29fe25bdaedbfa1635dbfe8db156c68bac85a1f31de1
3fcc60b2affd43e2aeb2f2f4b06af1eb57baa5c6a17505b4b67024c96f1c6893bc7239a43121249897
a9c553cc55d8ab1f9fcb337e99bdd6f4fd5ae6c2e3508ade1b98a34b796322d7d4e047ab13107f78
6bbe2abff436b7ff005325d7fd23d97fd50c55bfd0dadffd4c775ff48f67ff005431570d1b5aff00a98ee8
ff00d1bd9ffd50c5570d2359077f305c9f6f42d3fea8e2a905e6a7a97d6e5d2742d5eef58d62de82e6
1822b3482066078fd627684ac7d3ec28797fe2bc5533d3746f37ada2fe97f327ab7c59d9cdad9c11c
2aac494450eacc788d8b1fb7f6b8a7d9c551834ad6c035d7e624f4ff47b6dbfe49e2ad1d275d2453c
c128a751f56b635ff84c55a6d275f23e1f30480f8fd56dcffc6b8aacfd11e63a53fc46f5f1faa5bff4c556
9d1fccfdbcc8c3fe8cadf15415e794b5cbfbcd3efae7cc9219f4b99ee2cf8da5baa8924864b72585371
c257dbc77ed8abfffd5f7f62aec55d8abb15762aec55d8abb1543df5858ea76cf65a8db457767253d
4827459636a1a8aab020d0e2ac70681aee80c64f2b5ffd634f0147e82d55de58942d6bf57baf8a58b
96db49ebc629f02262a8bb0f3769f3dfa68daa45268faec8a5a2b1bde2a2600804c12a931ca2a7a2
3731fb68b8ab20c5564d3476f0c93ca69144acee40268aa2a7615276c558ddb7e61f93af1e28ed75
3595a658a4402397fba9e186e1246aa7c29e9cf13176f85798e5438aaed27f303ca1aec9043a4ea6
97535c3b471c689207055636ab295055584b19466a2bf34e24f2c5592e2aec55d8abb15762aec55
d8aa4be6f24795f5623a8b593a7fab8aaed4bcd5e5fd22f934dd4af96def5d6091626573f05d5c2da4
46a14801a6754ebb1615c5500df987e4c8cdb2cbab470fd6e492184cc92c4bce28fd53c8ba0080a9
aa33f157fd82d8aa79a6ea565abd9c77fa7c865b596bc1cab464f1254d55c2b0dc7718aa2f15762ae
c55d8abb15762aec55d8aa51ac79934dd16486d662f71aa5d72fa9e996abeaddcdc41278a0228a2
9bbb958d7f69c62ac38799f4cf3347ebeb3af41a768958b9697613389654ba32245f58ba50ac1498
a4aac1c4298dc3cceaad8ab23b1f347922c41d274ebfb3b75b3bb5d31ad21a208aea4a158caa81c
79171463f0b337daa9c5592e2aec55d8abb15762aec55d8abffd6f7f62aec55d8abb15762aec55d8
abb15762aec550d7fa7586a96af65a95b4577672539c13a2c91920d412ac08a83b8c558fae85aee
82cd2796affeb7a7d05343d564792340a0ed6f7547963a9a6d2fae9fc8b1e2aad67e69d335295f45d
5229b47d5e6e708d3efc089e5d80636f20263997e2eb1b37f94aa76c5585597e47d8c36b1dadf6ad

397

25dfa5f55582e9605b7ba812ceca1d3d4432c6e0a99218b84c0f28e5e6dca3a71e2aa3b40fca54d1
9f4099f55592ef417e697369636fa7493028b1307fabf1044a8805c06e692351d563291f055e958ab
b15762aec55d8abb15762a9379b3fe51ad57fe61a4fd58aa47e6bf21cde64d72cb578754fa947047
6f15cdb9804fea0b3d42df518cab175e279c1c1eaaf546ec71563ba6fe4d49a64e1edf54b66b27865
b77d3eeb4f5bd82052e658859fd62673022c8f2178cfa88cb2148c441538aacf3ca5e5f1e56d02d34
259bd68ad39886864291c6eeccb147eabc8e238c1e11ab3b7140abd062a9de2aec55d8abb15762
aec5507a96aba6e8f6ad7baa5d47696aa42fa92b05058f451dcb1eca3738aa49f58f31f99236162b2
797b497aa8bd9e353a948b5a728a17056106950d3077ff8a53154db4ad0b4bd1565fa841c66b86e
773732334b71336e6b24b21676a576a9f87a2d062af3b97f29f579b9a36b90c6897092d85c436d24
7776cb0cf7b3c6e927ae4193fd30a3d53d29630d1bc7c6423157697f9477ba65a69b6d0ea76b05d
6937b14b6bab59da35b5fc9676ee0ac772e25659d9e22f0c9cd7d2f8bd458964518abd5715762ae
c55d8abb15762aec55ffd7f7f62aec55d8abb15762aec55d8abb15762aec55d8abb15435fe9d61aa
dabd96a56d15dda494e704e8b22123a1a3022a3b62ac79744f30797a203cb37bf5fb0887c3a3eaf2
3c8428e478c378794a9d401eb09d40141c062a8bd3bcdb6175731699a8c52e8fadca3e1d36fc047
72002de8c8a5a2980af589dbde98aa7866844ab019144eea5d2224732aa406207520122bf3c557e
2aec55d8abb15762aec558879e35596d616d25c20b5d4ec2fbd190f2f53eb56ea922a0ed431fa8de
3f062a9b797355bed621bfbabbb64b6b68efee6d74e28fcccb6d6afe8faadd817747200fd8e38aa73
8abb15762aec55d8abb154226a9a73b5e2add444e9e42df1e402c24a87a39e80f1218d7a0c5523ff
11ea1ae158bca36cb2da35796bb78acb62a280830a02af715aec50a45ff0016fece2a8bd33cb1696
576755be964d535d6143a8ddd0b462942b046a0242be22300b7edb39df154f315762aec55d8abb1
5762aec55d8abb15762aec55ffd0f745d79a7cb1657125a5eeb5616f7511e32c135d431c8a695a32
b30231552ff19f93ff00ea60d37fe9320ff9af156bfc67e4ff00fa9874dffa4c83fe6bc55dfe33f27ffd4c3a
6ffd265bff00cd78ab7fe32f287fd4c1a6ff00d2641ff35e2abbfc5fe53dbfdcf69dbf4ff4b837ff0087c55b
ff0016f954f4d774ff00fa4b83bffb3c557af99fcb4c2abacd8b0db7173091bf4fdac55b1e65f2e1008d5
eca87a1facc5dbfd962adff0088bcbfff00576b3ebc7fde88baf87daeb8aaf5d7b4376289a9da33afda
513c648af88e58aaf5d6747604aea16c40d89134669f8e2abd753d35cd12f20635e3412a1dcf6eb8
aa2b1541ea9a569badd8cba66af6915ee9f38a4b6d708248da86a366aee0ee0f6c55e5be66d33cd
164cd269963aacb6fa55cfa9a64923c37b3c686a19ecae22792e579034682ea29e3917f7678afc41
54e3c99f9ad65ab595d43e72b59fca9ade97e9adf0d660934db49964a059ada5b8a23a331e2543b
323fc07f659956463f307c847a79a7473ff6f0b5f1a7fbf3155c3cfbe463d3ccfa49de9b5fdb75ff00919
8aaeff1d7922a47f8974aa8049ff4eb6d80ebfb78aae1e76f2637d9f316987e57b6e7affb3c55bff1a79
3bfea61d33fe936dffe6bc5583fe6e6bd6ba9f922f9fc97ad69173e6db12b75a4dbdc5ec0b14b20ac7
246cc1ea3944f22823f6a98ab29d135ff002568ba3d8e93079834cf4eca08e0045e41b94500b6efdc
ef8aa61fe33f27ff00d4c1a6ff00d2641ff35e2aeff197943fea60d37fe9320ff9af156c79c7ca241235fd
3481d697907fcd78ab879c3ca27a6bfa71ff00a3c83fe6bc5578f35f95dbeceb7607e57509ff008df15
61de79fcc2d46ddec742f20e9b77e60d5b5270b73a8e9b1adc59e9d6e7acb34e4fa4b230da243cff9
d919178baaa5e5af2b6b33476d06bda328d3e1984925a5e5d27d5f99fde3ce2087eb06e25693e3f5
2ea6e7caafc63fb38abd3715762a96dd798740b29ded6f355b3b7b98e9ce19ae228e45a80455598
1150715693cc7e5e7344d5ac98f82dcc47f5362ab86bfa137d9d52d0fcae22eff00ecb15553abe940
54df5bd3c7d54feb8aae1a9e9a472179015eb5f5529faf1577e92d38f4bb87fe4627f5c55bfd2161ff0
02d50ff00c8c5feb8abbf48587fcb543ff2317fae2adfd7ec0f4ba87fe462ff005c55bfaf597fcb4c5ff06bf
d71554f562f4fd5e6be952bcea38d3e7d3157ffd1f64f93f48d2ae935d9ee6c6de699f5bd479492448
ec6935372413db15649fe1fd07fead769ff0048f17fcd38ab47cbda01eba559ff00d23c5ff34e2ad1f2e
7978f5d26c8ff00d1b45ff34e2ad7f867cb9ff567b1ff00a468bfe69c556ff867cb27fe94f627fe8da1ff00
9a71571f2b7964f5d16c0d3a56d61ff9a71577f85bcb1ff565b0ff00a4587fe69c55aff0b795fb68b61ff
48b0ffcd38ab7fe16f2c7fd596c3fe9161ff9a71570f2bf9641a8d16c013d7fd161ff009a7156c7963cb4
3a68d63ff48d0ffcd38ab1cfcc1f2ff97edfc8de639a1d2ace3963d3ee5d1d2de25656589882085a823
156718ab07f30f9f2f745d56ef4cb5d27f484b6e6dc45145388e698dcda5e4eaaa1d38f2e769c002d
4224e55f878b2ac774cfce3bdd6e1bab9d13423a9dae996667d5a5b698fa90dcbdb3dcc512dbc889
3b13c3d2923f4c4eb31f4c44dc1b154ef51d520f33687e4ad5996de78353d4eca70207f5edd83433
3828ce8848dbf691587ed286c5593dda7952ca782d2f974fb6b9ba3c6da098411bca6a05115a85b
723a62aad1699a05ca7ab059d9cd1d5939a4513af2462ac2a01dc1041f7c556cda5f9720f4c5c595
945eb388a2f5228979c8d5a2ad46ec69b018aaf6d0b41552cda6d9aaa8a9630440003bfd9c5542df
4ff002a5dab3dadae9f3a2056768a381c00ea1d492a0d0153c87b62aa90e8fe5cb88927b7d3eca58
2401a392386264653d0820508c557fe80d0bfead969ff002223ff009a71577e81d0bfead969ff00222
3ff009a71551fd19e57f45ee7ea761f57889124be943c14a9a1ab528287ae2aaa341d008e4ba6599
046c44116e0ff00b1c55dfe1ed007fd2aacff00e91e2ff9a71570f2ef97c1046956608e845bc5ff0034e
2ac6bcb3696b65f983e7086ce08ede1369a3b7a70a2c6bc8addd4d14015db15487cdff99dad681e7
38fcada7dbd8cef3cd6f05b4570e6195cdce99aa5e0f8d9c28025b044e4471e323569f6b154aadbf3
7fccba8ace748b0b3b87b3b702e6cae9c69fa8b5e48ae5634b59e507d40c8d0fa5cb8492ab161000
0026060f002220574d4643010000000000010000000000000010000000002000001897010018f7
010070b8e38abd5bcb9abc5afe81a6eb50b738efede3b80c62780fef141358a4f8d083d51be25e98
ab1bf29695a55e6a1e6e9aeec6dee253aecc0c93448edb5a5a8eac09db15645268fe59859566d3e
c63673440f0c2a49f6a8df1555ff0fe834a7e8ab3a787d5e2ff009a71558742f2dd1f969b6348c7ef2b
0434514aeff0edb62adff87bcbc46da559107fe5de2a1ff85c556be81e5a8c032697628188505ade1

1527a0dd7155dfe1bf2e9ff00a54597fd2345ff0034e2ad7f86fcbbff00568b2ffa468bfe69c55a5f2ef96
dc724d26c587622de1236dbf97155dfe1cf2f7fd5a6cbfe91a2ff009a7156211d9c5fe0d96c8c09f55ff
110416fc57d2f47fc40bf0f1a538f1ed8abffd2f6af917fde4d689efae6a9f85d38fe18ab29c55e33f9ad
e62bed3fccda56b9a7c8ff00a33c853da6a1e60114eb127a1abbb59c8b3231f8c25bb493228fdbe07
156a5fcc5f384d35e4b61c2e6dedb5afd0dfe896e2e2130ea5eb5b58dcac81b97eeae044b7313aab
47fbc763e898df154b5ff0035b5fd3f597d3756d7f4d4d3aeaeae6d0ea62d84634c5b5d42f6ce2966f
df3ab09da0863abf05123fc3f6971563de52bd497ce7e729acaf7451e6c9bcc57b168cef1cc75437d
26896de9fa70f3e4b6bea195a5493e15f8b93735e58ab239ff00367cd7322dd89ac742f5f493aed9e
99abc6e2ee5b6923b95a2a201c9a178239251cd3d3493f7dc54ab62ac33f31fcf1e60d5bcb3e63d2f
5ad72ce6b15d0f520040896b6f35f4575a5cb154fa92306892e4ad15fecfc78aa609e79d4fc9fe77fcc
39a4bcd32df569751d295ade12cf6cf05b68a27288f294086809614e4df170fda755533d5bf3675b9
639b47bfd5b4c3a66b62ee0fd2890f08ac608ff4bc29ea7efdc319dac628d5999179c8cabf1945c554
bca7e7cd434cd68797b4bd434fb58752b9b7b937ba9348f0cf241a668892da43c2bfbd68e696654a
f2661cbecacb8abd93f2f355d5b5ef28e9dae6b3796b7d75a8c62e565b188c102c6e071450659b95
287e2e58ab5f995cbfe55ef9a388ab7e8bbbe209a027d16a0ad0d31561379e71fcd8b79d8f993408
7cb7a62dcb44973a6bc9ad8920e8923cf1dbb1801fda325a155eeddf1544699e55d2f5f49353bad2
2c3cdf76c5e19756bfd4d2f665fb558418ed11230824601151387a8dfced555383e5183ebffa54792
b4afd286136af79f5c22630b3b484193eadc89e4ccdc8fc5566f8be238aa8eb2ba9d9cde4fd34e8f6d
a6e951eb50220b5b932f00b6f72c004f413a91b9e58aa4df9b3e5a7f3879cbca5e5d1582deff4df30d
a5dea06d5ee56de2bab7b78aaaff0a4729dcc45dbed2f2e0fc71561ba46abe6bf24d9ea3fa2ae353b
9d0f4769754fd173c11032c69af5eda4b024d2c28499a064b8ddcbbbaa3210b26eaa71adeb9f98fa
4eae9609249adcb16aba5476f30b4592065f46649a3746815a090ca81bd749191a29158344792e2
a85b9f3debf25a79726d3ef35bbcb4d56657bf4d47499add5619de2b7bb81c0b60dfb9777e1cc44a
8bb8926098ab0ef28f97f5882cadee20b6b91a36bbe57d27cb7e6fb678e6892de0d3f4282ed66640
a18b902eec881bfa92a29fb34c5592e8be6cf35d8796acb4ed26f2f74d9f4ad2f41b3b6d2bf443b406
d2e974e417493c91700ea5ee23923f89938fc51a7a5cf154d23f37f9f63b8b0b29753bd9f4bbb04ea
bab2d942d3d8ac67558a16444814112c96b6a24e48fbc9f0f059978aa8db6d77f342e34e9b579aee
e16f935a8347b8d222b7b648a18afac61884d1f3879bfa1797024625d97846ebbf120aac07f34343f
30ff87bf3074bd2ed66bbf28eb97035a9a68232ce757b0d422b39edde355a9fac05b6b9051787eea
73d1b1565b75f983e73bcd7754d334fd42f2c6c239ae1e1b87d378c8a2de1d5ff0072beb40630bce
d6d3890d2b3ac8adc97d608aaa1f53fcd5f37c771af2a5ccf676917d444334f60d0186492e5e19c40
5e1742bc4c522b48d2738eaf48f92ae2a8a8bcefe7ebed41ed23d73d375b9d2b4f9059e9debc2f6d
793d9ab6a56f72f0fa3c244927216b271eea8609392accaddfcd707e6279a1342b7b0bd5163a30b8
9750b996d9cb8177b8586de5535ebfb3f2c55359ed7cf17338bab9f2ff009726b90be989a4bcb9790
26ff0f23604d3e23b7be2a94f986c35f1a64f36b1a1f97adad16116ed750ea17904e91730ea91c90d
80907c7b845eaddb15637a56a9f9e11c5611f94b4db3d4f471fba2de639ae2d29083b3894d95bdc6
c365e56afcfc7f6b15677f976d78ff00e277d4638a2be3adcdf588a076961593eab6d508ec91b30f72
8bf2c55e7fff003903a7eb3a96b3e4e8743d3d750bd16fe61ac7242675f4db4de2caa765595813e87
3215a6080e2aeb0f3e6af13cd6f61a95daf976cadf4eb3d3a3b8b0b896fe4b5bb8ec960bf96796155
524c92a4eefcfd36e5ca1e71306558dd8f997cc92b6abe6297d48aef54b17babdb316aed6b737d1f
95a1758e589e3dd7d5590046a5593875f87154fdfcfdf9811dc6a934171cadac6e6e12cec16c542c9
0db5ce931a2f3e3ca8eb7970091fc80ad3d37aaa956b7e63d7fccfe5d8757d4658ef354b33757707
9767d3eee0b6b954b7f42ff004999d950a5d1e64d9c8a1991fbca8d8ab24b4fcc1f33fd7671aa5dfe8
8d28df49a4c96df509eeaeb4b9233742da49e4e1c196e02414de4059be1907a9f0aab2fbcfde736d
46d745b2bc315db6a30e9d7b3369e6b1acdac3db720ac38ab1b52b2004b5178b9ad71542699e72
f35d9596a9ae231106936715e49a3c168b14135bdb6bba9437a614e22933dba46490776e2d4f8f1
57b66929a8c5a659c7abca93ea8b0a0bd9a25e11b4dc4732abd96b5a62ac59500f2b3354d0ebbe
a7d3fa701a62afffd3f69f9088363ac91ff57dd5c7dd7b20c5595e2ab4a21ad541af5a8eb4c552dbed
02c750d434ed46679d5b4c9249a1b68a678eda496450a1a68948594a52b1f307837c4bbe2a987a
106ffba4f8bed7c237debbe2ad0b7b7593d558904bbfc61406dfaefd77c5573c5149fde22bd010390
0766ea37f1c5567d4ed38f0f423e04d78f05a576de94f6c55bfaadb6e7d14a9ea788df623c3c09c55
68b2b35a85b78806a5404515a1e43b78ef8aaefab5b549f452a5b993c46ed4e35e9d68695c557c7
1470a2c50a2c71aeca8a02a81ec062ac67f323fe500f337fdb36ebfe4d362aca3155aa889c8a2852c
7935052a7a54fbe2ac5aebf31bcad651b4b7725e410231469e6d3afe1879034fef648153aff958ab1
a9bcfde59f3c5cf97e5f2dcd71736f63e638ed27b892d2e6da137096b77c9239278d1642b4f88c65c
0f1c55ea18aa0b50d274ed58da1d46dd6e3ea3709796a1eb44b888108f404025791a57e78aa3715
762aec55d8abb1540de68fa76a17b61a85e41eadde98ef2d93966023791383371042b1a74e40f1fd
9c551d8abb154bf56d174ed6e2822d411d85b4cb736f2432cb6f2c732ab28649216471f0b329a37c
4ac54ec71545dadadbd95bc5696912c36d0a848a24145555d800315627a11ff00908be70f6b4d1bf
e23758ab31c55d8abb15623e47ff7abcddff6deb8ff00a86b6c559762aec55d8abb15762aec55d8aa
0f51d32d3558a286f43bc30cd1dc04491e356785b928708c39ad7aa3551bf697154662ac287fca24
453fe9754ffb9df5c55fffd4f6addfe5bf912fef2e350bbf2fd9cb7977219ae663180d24adf69da94ab1e
e71550ff9557f977bff00ceb967bee7e03fd71568fe54fe5d135ff0eda03ecac3f51c55a3f951f976401f

399

e1fb60074a731fa9b155a3f297f2e83721a0401bc434a3f53e2ab7fe5517e5ceff00ee06200f5a4b38
e9ff003d31572fe517e5da9aa68aabecb717206dec25c552fd5ff2ff00f293455b77d6ada1b14ba985
bda9b8bdb98c4b3b02c112b30e4d404d07618aa01fca5f91eab0991ed9564b8fa9c3cb53ba506e7
920082b703e2264403f9bd48e9f6d6aaa0dfcbbf93769a4aeadac4315b111c52cd1db6a97b78aab3
ceb6f19578a5f8833b2a8a2e2a89b8f2dfe45d973175776b07a738b47f5357ba4a4ee19826f73d484
73fec1ff0091b154e2c7f2c3f2cb52b64bcb0b37b8b57af0963d42f994f1343bfafe23155ba8fe57fe55
e9d6ad75ac59a5bd82902492f750bb5b73becadeadc71209fd93d7154f4f9c22bb6f4fcbfa6deeb0d
565f5e28beaf681945779ee4c6ac0f8c5eae2aa71d879db56891b55d4adf42474612d9e90a2ea742
df6697774814d0785aaefdf1561179a5f946f35ab951712f98690fa5245a799f55d46e4c438bc735db
1315aaf2aafa51bc1cff69e954c5591ea1e5cd5fcdba7fe83d4746d2f48f2c40d09b4b5bb89353b8a4
5d08854a410328f850879fe58aa1f49fc8ffcb7d31a49e6d21352bc947192e2f68df0f22c02c5188e1
402bfb11a9a75ae2a9aff00caa9fcb8ff00a966c7fe450c55aff9553f971ff52d58ff00c8a18aaeff00955
9f977ff0052e597fc8bfedc55dff2ab7f2f3fea5cb2ff00917fdb8abcaeefcb5e5a5fcf1b1d1e3f2fd9c7e4
e8f4c9ec2e95d38a49aa4af05c248bf16e63568e2e9f6a73fcb8abd47fe5547e5cf20dfe1cb3a8ff002
4feaae2ab5ff297f2ddf8ab7976d361b00186df4362aa6df93ff968db1f2edb75aec641fa9f1569bf273f
2c9cd4f972debecd28fd4e3156c7e4f7e5a8a91e5f8457ad24987fcccc55dff2a7bf2dfb68518f94d70
3affcf5c552cd5ff28acad6dbeb1f979a85df94f594916691acee2436f7c22565482ed64325537f8596
8f1fecd579232a97f96efbcdda75e3daeb17faadf7d5bd23791c42d269e2ad79196d6483d631123e0
9ada7b80fd95195b157a6697ade93ad46d2697771dcfa74f5a35349622c2a0491b51d09f0700e2a8
fc558b6a5f971e47d5afae352d4345826bebb7125d4d574323aaaa066e0c013c55457db1549ee3f2
ebf29e198dadc585a43386a188dd4b1b8631b4b4a7aa0fd8466a7f2ab1e80e2ab17c85f948851560
b65696369d145f4e0bc719e2ce009b70a4509ed8aa320fcaffcbaba8239ed74ff0056da50258a58af
6eca3861b30659a84118aaa1fca6f21120fe8c936e94bdbd036ff9ef8ab4df94be416353a64bb0a6d
7d7c3afca7c556ffcaa2fcbff00fab64dff0049f7dff55f155c9f94be428cd534e981ff0098fbeffaaf8ab87
e53f90d4f21a74c0f8fd7efbfeabe2aabff002abbc95ff2c571d87fc742ff00b7fcf7c5537ff0ae83fa07fc3
1f54ff709ff002cfeacbcabea7adcbd4e7ea72e7f172e5cb962afffd5f7f62aec55d8abb15762aec55d8
ab1ff0033797ee75db8d11e19d21834dbc92e6e8306323c52d9dc5a158d948e2e3d7e418d7ecf4c
55e437be40f36691ab794eda4b2b0d69acd95efef2d34d96cedee459cf626d966786e494997ea91c
ed2cc1e22f1a2a2844f4dd54de6fcaabad234887eb3e60b3d3e6b5b4b7b56bd75923b6b97b3bf5bf
83eb31bcc10fa6ca423215940775e653e1c5522f2df96ef63b0b3b3f2c0b7f335b595d5f3d96a8ba4f
d4e09ed5ed6fade28ef2e6e2555b828f7a7e389191e357f879cacd8ab3bf267937cf7a56870689aa6
b90697a642ae20b2d295ef2e60590f210a5edf06ac510f823adbfa81683d4f8462a8cba1f977a16a7
14379fee63cceefea410c9eb6b3a8896151f12a1f54c34fe60228c7b62a99c9a879db58848d234c87
418e4452979acb0b89d0b135ff44b57e268371cae537eab8aaa2f932def28fe63bfbbd7240cb218ae
64f46d032af1dadadc47195ef49049f3c553fb3b2b3d3eda3b2b0b78ad6ce11c62b7811628917c15
540007cb1557c55d8abb15762aec55d8abcbafbca2b3f9aedf4a9ae4b5e5cd96a9ab25ed1aa97635
6b0b98180e55a45c23402bf65298ab36f38e9d7dab795759d374c00ea573673c76619fd2067287d
305c578fc54f8bb62af2ad73c93f99ba84335de8e134dbf924d459ad25ba492336d773cd711ac52a
af2827f88424812405257e6b58626c5590f93fc9daf68de62d3f55f466b5d28d9cf0ded85fdda6a0f0c
924ad346d04c81591aaec92c5468387a5e97168fe255e9f8abb15762aec554cdbdb9b8174624fad
2a18967e23d411b10c57975a1201a62a97ea3e5dd1f549d6f2e6d82ea09c4477f0335bdd2852485
134455f8d4fd9278fb62a97883cdba3c87eaf3c7afe98020582eb8daea09434622641e94bb74568e
23fcd2b5715445879af49bcbb5d36e0c9a6eb0ca1c69d7e9e84c4312a381a949771d6277c558c79
b7c85abebfaec97b6d2d9369570909b9b6bb13736786d6fad4a562228acb76a7903c978353ed02a
aa4165f93fab477b772ead7906b314f120b5bdba9eea2d4ad1911a0e11cd0705e662e07eb5c165f5
79b323f3d957a7796f4ebed2340d3b4cd4ae96f6fed20486e2ed235884ae8285b8200a09ef403e43
154d315762aec55d8abb15762aec55ffd6f7f62aec55d8abb15762aec550f7b7f63a6c26e750ba8ad
2dc7596791624fbd8818ab1cff1bc7a83ac3e57d2ef35cf52232c77b1a7d5b4ddb600dd4fc55abff15
2ca7db155d369de74d5d1d2f7568341b56e07d3d26317176a29f1a9b9bb529bf4aadb061d9b1563
2b7be42d3b5c8984315f489282dadeab3c97d70f390542582cbeb4923d41e5e884893b166aa8559
145e62f346b69cb40f2fbd8dab7a8ab7faf31b420aecacb6918799949ed21b76a62ab8f93ef354779
7cd5ae5dea31c8aa0e99664e9ba7a5284d1606f59ea7a8967917fc9c553fd3748d2b4680db69163
058dbb31768ada24854b9eac4201527b938abcebce3ad79a34df335cdb69d3dfa5a95b69adfd0b3
7bbb7557b3d45252dc2335512a5bb15e5cb9f0fe7a32ac474ff33fe66ea97d776d35d4fa1c9696ae9
696b736b3dedbde2c8aea6e05f450a81124e28937a42610f0678393e2af63f26de5f6a1e56d26f353
8ae20d426b646b98af3819d64a6e1ca2a2b7b3045e43e2e2b5a62a9e62aec55d8abb15762aec55
8adcff00e4cad2ff00ed87a8ff00d45d8e2acab15762aec55d8abb15762aec55d8abb15762a86bed3
ec353b7369a95ac5776ac43186745913929a834604541e87154957cbda969279796f5374b70aaa
34bd44bde5a8a35494919bd68c91b7db78c7fbeb156ff00c526c25fabf992c64d2be1e5f5f07eb1a7
1f8f801f5850381350692a47ed5c553f8a68a78d668245962715491086523c411b1c557e2aec55d8
abb15762aec55d8abfffd7f61791e1d5fcc7e53d2f5cd435ed416f6fe1f5e658feac88accc7655f40d00
e98ab201e5eba1ff004bfd4ffe0adbfec9f156ff00c3f77ff57fd4bfe0ad7fec9f1570f2fddffd5ff52ff82b5ff
b27c55aff000f5dff00d4c1a9ff00c15aff00d93e2ae1e5fbb1ff004d06a7f3e56bff0064f8aa4563f95da
458ddb6a1fa5352bbd48ccf70b7da84b05f5c46f2124fa525cc32346a2b4548f8aaafc2a298aa79fe1
dbcdbfe761d4f6f7b4dff00e9db1549fcd1f9731f9bb499743d57ccdaec7a6dc15facc765750d9c9222

9af06960812408dd1d55c731f0b6d8aa021fca1d32ce1f434af30eb7a546516373a7cf6d6aeea838a
f378ed833151b02cc4e2ac913cb57a881079975634014163664ec29524daee7155ffe1ebd15ff009
d8b53dffe60f6ff00a76c552bd7adf55d0adecafadf5dbe9d9b51d3ada486e05ab46f15d5e45048a78
5ba36eae68436c7156638abb154b7cc5733d9797f56bcb57f4ee6decee258640012af1c4cca77db6
2315637a3f945af348d3ef27f306b667b8b68659585fb805de3562694a0dce2a8d1e4941ff4bfd6ff00
e93dff00a62ab93c98101035fd68d77ab5e963f8a62ab93c9e50d46bfac9ff005aeebff1a62adff845b
8f1fd3fac76dfeb4b5dbfe79e2adaf94dd08235fd5cd05286e508fc63c55087c8519d562d64ebfab9bc
86da4b38c99e220453491c8dd61ad6b12e2a8e5f2bcea6a3cc3ab1a78cb01ff9938aaeff000ddcd41
ff106a9b1aff796fdff00e7862ad8f2edd0047e9fd4f7f17b6ffb27c55bff000f5d7fd5ff0053ff0082b6ff00
b27c55bff0fddffd5ff52ff82b5ffb27c552bbe8f52d1b5ff2d451eb177756da8de4f6d776f73e83234696
1733ad38428c087894d41c5597e2a92f9befeeb4af296bdaa58bfa77b65a75e5cdb4940dc6586077
4346041a103638aa1ed742bd96da195fcc1a9f3923466f8ad7a9009ff8f7c555bfc3d774a7f88353f9f
2b5ff00b27c55bfd017741fee7f52fbed7fec9f1577f87ef2b5ff00106a5f2ada7fd9362ad0f2fde0249f3
06a441ec4da53fea1b1542da79323d3de692c357beb57b960f3fa2b668aec093c8a8b6e35353520
54f7c5517fa02f7fea61d4bfe9cffec9b1577e80bdff00a98752ff00a73ffb26c55afd017dff00530ea5ff0
04e7ff64b8abbf405f7fd4c5a97fd39ff00d92e2ad3681a81145f31ea4a7c40b23faed71577e80d4fb7
99351f6aa589ff00b15c55297835c83ccd6fa11f305dc96b7ba6dd5d195e2b3f5a29ad6e6d15590ad
b81bacaeac195bda87157ffd0f667e53316fcb6f2cbb0a16b18988ff5aa71560b6bf9c3aae957332de
69775af41a9ea97874e9ed9a18e2b5d393527d3adc12145430864b8e4c6be9076278a62a8ad4bf3
8af2eec2f2ced3499b4cb8bbb131e9fa989e2b830ea73d8dadc246d1053fddbdec485cfc1ea715df9
7c2aaaea1f9df6d61a3cdab693a25e6bda5c33dc59da5fc2cb18bc6d3edeee5b995392d0aab59b2f
25aff00789fcc171546c3f9cf6b3b3db47a25cfe93b58aeef354b1322f3b3b2b5796359a66505579bc
122f127e168dc7dae21d543d87e725fdec962d3f9626d3edee1ee62992e6e63fac7ad19b286da28d
1450bcf717ab09e4cbe9b47257a62ab13f37afef0c333e8cd61a3486d0bea31dd453c8a25bdbb491
821888308b6b27b82df6fd29178856df156efbf3bfea9f045e57be9ee8ba9faa8923595609adedee6
26901d95c8b98d1a3afc1232a723cf154cbce3f99769169e6cbcad23dd6a977347622ee20116d65b
8be4d3d5cfac843b095d884a7c4914aff65315639e63fcd7d6b55d32def7ca9657369a14c97778bad
23dba5c5c5a5bc2ab135b477713ad5e79e05f8d0afc5c3ed16e0aa76bf9c96503df59dce9972d3d9
cff00a3ac65051ff485f2dcdc5a708962058726b595ebc294470bf12f12aa63a4f9cb55f32f9a747b5b
0b67b1d196d6fa7d556668da46b8b6304060e201204534b221756f8a48245e837553af3c7fc726cb
fedafa3ffdd46df1564b8abb154a3cd7ff0028b6b9ff006cfbbff932f8aaaf977fe51fd2bfe60edffe4d2e2
a9962af0cf29fe68f986e35bd762bb965d4adb428f597d4acae23b6b220c1accb67a6b5a487d2f523
68a1956e2462e88f1aff00bb1b832a9c9fcf6d2639ec22b9d3cdba6a8a0d8b4972aaf33b437455523
29c8f2b8b492d976fb4d1b53f78ab8ab10d47f373ceb69a579c347373143e6cb2d65a4d0a630248c
3cbcb7ff55919900085a278a5b7f51bf6de2254b7da559e6a5f9bd259dbde5d59f966f6feda39a78b4
db98e48a1b7bc8ada0ba9e491249b80047d4e41c0733f144dfb7f0aad5bfe725b4f443a15d25cc23
eb5a95afa913496da6b9b7f4ee7e1255f92dd46ed1ab72451275645575557cbdf9b12ebb3d9432f9
76e34f5d5e2fac68cd71716ec6ea34bb8ed66a08d982b4424f54a935298aa17cbbf9b516a9ab79aa
cab1dead9dc599f2e450fee5ae2def653608acd26d5facc2ecd274114b17c3d392a994bf99f244923
9f2fdd9313a69f38f522631eb32084ad93042c7713ad2540ebb36db6eaa026fce9d3ada3bc6bed1e
ef4f9ac534f6bab7bf2b6b2c3fa482f19265900f4edd58988dc9fdd7ac8e8c5695c55e9e0d4034a57b
7fb58ab19f337fca43e4cffb69dcff00dd2ef71564f8ab1ff3d856f23f99839a21d2af831f01f5692b8aa4
ff00985abea3a0f91e0d4b499a78ae92f347809b48d269de0babfb6b79923491581678e4655dabca
9c77c558ef97ff00337558bcb5e5ebcbeb61abddf9827bb5b0659628ae042f7330b18e78e352165e
0b1c77078a2c72f25fb63862a849bf35759f39f95f5e5f2441fa37ccd630c52d949215b8f8e75b492d
ab13c6a196669a581bf91e0937e43e1550767f9cf7d7fe656d534f437de56bed134e9742d22100cb
2ea97974f14bea48a8ee0c6c0c2ca0370689fe1e58aa697bf9d7a869e25b8bbf285c5ad95ba3c973f
59bb8a2b98bead696b7d70af0856a34715cf4e7f149194f854f3c5530ff0095b725d5d69f69a2e8875
27d6983e90e2e960492d7d4b889a594c918f4cab403f7639b5245eeae02a92eb1f997ae6ad7be4a
8f4a82eb4b8753d5e6d335bb6b536d717067834ed4679ad019928af0cb6911671c6bce98aa2b4af
ccad4f459b54d235b136b57ba6cf25cdc4aeb0dacd06956f0e9e257648d02bc8b25db3145ecadf10f
ddab2a9ddafe6635d798ad345fa84515bbcd7e97d746e448228acad63b9474e0855cb7a9c5806e2
9c5be37c552cf2a7e686aba95a6a16579a79bbf3447aab5a69f61fef009ad2f2d1b54b46266078f1b
70f0b1fda9a17fb3fb2aa36eff0036562b45bcb2d02eef92fa69ed7438a07479af6e2c0dc0bb884718
76468beacfc6b547aafc6bbf155183f33ac9b515d385a0491b575d11bd69842d1cec39012ab27c0e
e9f1c08c693a11e9b96217154daecffc841d2476fd0fa91ffa7ab0c55fffd1f66fe538ff00906be57f7d3
a03f7ad71546daf907c9f656a9656ba4c51dac708b548c17204212e1020ab740b7538ff009e8d8aa
4fe5dfca6f2ae8b61a858ddda45a80d42fa6be7322baaa23dcc7711428a5df8ac461846c47a9e923
38c5536b6fcbdf2659c096d6da44315b45eb7a30a97e11adcbfa922a2f2a2ab36fc168a37e23e238
aa90fcb5f232cd7d3a68b0acba9aca9a8953228b817124b2bfaa03518f29e5209dd7d470bc4362ab
aebf2e7c937972f7773a44525d3ca6e0cbce50c263702ef9a90e38b7aaa1eab4f0fb248c556c1f967
e44b68bd0874481201e9d22ac85290c524083896a7111cd2271fb346c5554fe5ef941e05b79f4d13
aaa7a4649a59649594cb0ce7948ce598f3b784d58d691a2fd914c5513aaf933cb5adea36bab6a96

401

0b717d67e97d5dcbc8aabf576768ea8ac15b8991e9c81d9dd7ecb1c55288ff2cbcb86436f73009b4
486cd34fb1d359e622285668ae18348f2b337c7043c002aa89184a53154447f969e4885ede5b7d2
5209ad7d216f2c32cd1ba085e7750195c1a13753f3ff007e09195f92e2a8bd1fc8fe56d03559f5bd23
4f5b5d4ae6392196657908f4a5b87ba6454662aaa6591de8aa2859bc71553f3bd3f4558d7feaefa47
fdd460c5592e2aec5528f35ff00ca2dadff00db3eebfe4cbe2aabe5eff947f4aff983b7ff00934b8aa658
ab07b9fca2f21ddda2595c69f33c31bdf48adf5cbb125754b95bcb91ea09437169d1660b5a472aabc
7c4e2a8fb6fcb9f24db259a268f0c8da790d672ce5e7963297a3505a492b31610000026060f00222
0574d4643010000000000010000000000000010000000002000001877010018f7010037c370a25
153b1f6c5542e3f2bfc95756577613e9eed1de994dccdf589c5cb2dc5efe919104e24122a1b83eaf0
560b5da9c76c556cbf95de4e97d706d6755b89ee6e9916f2e82a3df473473ac6bea5238dc5c4cc63
4e31f3919c2f3f8b156e3fcb0f27453c772b6937ac8c84b9b99c9748d204113d5fe28a96b01f4dbe02
d186a6edc95596bf97d6369a868d0c51c23cbbe5db49d34542d3bea10de5e89229e4fac3c87e1f45
f8aedcf9337c5f67156f55fcacf276b4d6326a105cbcfa769dfa1eca78ef2e61963b512c33a90f1c8a7
d4496de291253fbc474055bae2ab2e7f29fc9973f5e0d05d4635016e6e3d1bebb8a973686331dda7
09470ba1e947cae56933705e4e7154449f96de58903064baf894a57eb77048575092ad4b9349428
f594fc3237c6df192d8ab2c8e348a358a350b1a00a8a3a05028062ac6bcca2be61f26fb6a573ff0074
bbcc5593e2a9079e579f927cc880d0b6977cb53dab6ee2b8aa26f743d335dd2ad6c35783eb36b13
dadd227374027b4749a17aa329f8244561ee3154b47e5d792d7508b554d2224bf86e5efe2951a44
e3732cdf59770aac17796b2114a73676ff00763f255190f93bcb36d09b7b4d362b58898188b6e501
3f559deea205a32a4859647938d69c99bc715405d7e5af91eeea65d1e24fdcc76e9e83cb070486e
8dea18fd274e0cb3932874e2fcff6b1575c7e5a7922eede6b49f4946b5b859525804932a15b8b78e
d641c55c001a28510d3b2e2a898bc8fe58b79e2ba82cb84f6f722fadc8966a4738321f8179d02933
48c631f016766e3cb154bb46fcb9d12cd6cefb54b78ae7cc16faa5c7985ef2d84b6d0fe95bd8da096
648848db1898c603b3fc3d7738aa613f90fca9737e7549b4f0d7ed3c974f37a92559e710ac8adf150
c6ff57879447f76c624256a315412fe57f92a30445612c6c44803a5dddabaacd1181d5584b555319
e1c576e2a9fc8945511abfe5e794b5dd43f4aea762d2ea216d152e92e2e21913ea0d2b4050c522f1
2bebca392d0b2c8e8fc918ae2aa1ff2abfc8e04c22d30dbacb7bfa4c0b7b8b880457679737804722f
a224e6feb245c126e6feaab736c551ff00e0af2efabeb7d59cb7ac9395334bc0985c491a15e5431a3
8e491d3821fb2062aa377ff00930b49ff00b636a5ff00515618abffd2f5d697f97fe71d0f4db6d1f48f3e
5c41a6594621b48a4d36c65648936552e5016a0ee7ae2a8d6f2bfe6095a2f9f5c37f31d26c8ed8aa
d5f2b7e620143e7f663d89d22cff008118aaeff0cfe62d0d3cf637e84e916bb7fc38c5560f2c7e65804
7f8fa3627a13a2dbedf74c31552b9f2ff00e66db5acd3ff008ee06f4a377a1d160df8a93feffc5507e59
b0fccdd73cb7a36b72f9d6de39751b1b6bc9231a344406b8856423fde8ec5b154d7fc3bf9934a7f8d
edebe3fa162ffb29c5570f2ffe63d7fe534b63edfa193feca7156ff407e637fd4e76bff7064ffb2ac55c34
0fcc6037f39da9f7fd0c9ff6558ab7fa07f31bfea72b5ffb8327fd9562aa52f94bce5a84b669acf9ae1ba
d3adaf2d6f65b6874b4b7790d9ccb3aa7a9f587e20b20a9e3d31566f8abb15436a16516a56175a74
e5961bb864b790a1a305954a1209aef438ab16b5f27f99eceda2b4b7f3bdf88208d2288359e9a485
8c05153f56df618aaff00f0bf9c2bff0029cded3c3ea1a6ff00d93e2ab5bcade7326abe7abc03c3f47e9
c7fe6462ad7f85fced4ff0094eeeabe274ed3bfea8e2aeff0bf9dfb79eee7fee1da7ffd52c55aff000b79
e3fea7bb9ffb86e9ff00f54b1577f85fceff00f53ddcff00dc3b4fff00aa58abbfc2de78ff00a9eee7fee1ba
7ffd52c55c7cafe78a6de7bb9f9fe8dd3ffea962ad3795bcf441e3e7cb807c4e99607fe65e2ad9f2c79
e8ad079ea607c7f46589edfea62ab7fc2fe7e1ff4ddc87e7a5d97f0031555b4f297984eb5a66abadf9
9df53b7d2e496782c8595bdb06965824b7ab3c7f1502c8c683be2acc31540eb7a68d6746d474833
35b8d42d66b433a00cd1faf1b47cc03b122b5df1563317973f30a285221e74858a00bc8e9116f414
1b09c62ad8d03f31475f39db1f9e8f1ffd94e2ae1a07e637fd4e76c7fedcc9ff006538ab7fa03f317fea
72b5ff00b8327fd9562aefd05f98aa2a7ce56b4ffb63a7fd9562abc687f987dfcdf687fedcebff006558a
af1a379f81a9f35da1141b7e891ff006558aaac9a4f9e589f4fccb66809a81fa28b50787fbd78aaefd1
7e78000ff1159134a1274a6ebe3fef662adae9be781d7cc360de1fee29ff0085ee2abbf47f9de9ff001
ded3c9f1fd1727fd96e2ad1b0f3c76d774efa74b97fecbb15428f2ef9a9f551addc6b764f7f059cb636
6134e912251713c12c8d229bb62e69071501929cb97c5d3157ffd3f7f62aec55d8abb15762a84d53
6d32f4ff00c512ff00c40e2a94790453c89e5703a0d26c07fd3b478aa549f9a7e5085a1b5bed46ba8
4f468a2b6b5bc9032cd713dbc207ee6bcddede48c21f88c8a557f66aaa1754fcddf2b2d85e3797ef1
351d560b76bab7b6923b886199638a2b964599a2e05fd1992408096e27953886a2a8fd4bf357c83
a44f35b5feae239e093d178d20b895b9049e4aa88e36e4bc6d673c87c3fba7dfe1c55522fccef23cc
b1b26aa3f7928b70ad0ce8c2461194e4ad182a24f563f4988a4bea27a7cb962a868ff36bc8d37d52
482fe492d2f23b89d6f0dbcd1c31c56b0c170cf219114aab25cc4636a717e7b62accadae22bb823b
9809314a392f25646a7bab0041f6231555c55d8abb15762aec55d8abb15762aec55d8abb15762ae
c55d8abb15762aec55d8abb156a95a86dc1eded8ab7d315762aec55d8abb15762aec55d8abb157
62aec55ffd4f7f62aec55d8abb15762ac53f306f350d33458b54b39156d2d6e106ab1b9e2af6370ad
6f21af631991651ff18f154b3f29aeee350f2dc1706e04ba6db5a69fa6d946bf655acece2170c4ff003
7acce87fe318c550117e524e9a845a8cbafb492453d9dcf016a8aa4d86a379a8a2ff78762f78c87fc9
45ef5c5521f2ffe526a5f54d53cbf7d7d716f61a63a5be83792dbc044dcb4bb5b192ec049493f0c722
7a6e138b1e7f10e38aa6d71f92e27d3edf4aff104cba7d8dede5de9f17d560e51457b69796be8b38a
349c3ebaecaee797c28a7f6d9d54469ff9493e99af3ebb67e639924b848e1bcb73696ef1c91dbdad
b5bc5c4bf2646536fc8b29f896474fe4755542d7f269ad60b5846bcd2fd56cdf4d225b28648a5b596c

2d6c1d248dd983071688cdfeb3af752aab3ff2de891796b41d3f4082796e60d3a15b78a59d8bc851
3651c98b12147c2bc8b37102acdd7154d715762aec55d8abb15762aec55d8abb15762aec55d8ab
b15762aec55d8abb15762aec55a35a1a75ed5e95c55b1efd715762aec55d8abb15762aec55d8ab
b15762aec55fffd5f70797fce3a179a287457b99e168ccb1dcc965776f6ee81b8d5259a2447a9e9c5
8d7af4c555f59f3269ba0b4497e976c6604a1b4b1bbbd1f0f5e46da29389f0e54ae2aed1fccba6ebb
24b158a5e23420339bbb1bbb252189038b5cc5186e9d16b8aa9eafe6bd2343b95b4bf5bd6999048
0dae9f7d789c492377b68245076e84d71557d1bcc1a76beb3369eb740405449f5bb3bab2356ad38
8ba8a22dd3f66b4c5524f3aeafe5eb9d3356f29eacb787f4859cb6d37a1a75fdd45c2e6364a892de0
912a2b5d9aab8aa9fe555969da3790f44f2e69cf3ca344b482c6eae2e6dae6d1e6b948d4cd2f1ba8
a266f51cb396e3d5b154cf50f39e87a65e4b63742f8dc42407f474cd42e23a900ed2436ee8db1fd96
38aa67a5eab69acda0bdb1f584059907d62de6b592aa687f777091bd3df8e2a945df9efcbd65752d
9ce350f5e0768dfd3d2b52993921a1e2f1db32b0f75241c553ad3751b6d56ca2bfb3f53ead354a7af
0cb6d26c4a9ac732a3aee3f69462a904df985e598267824fd23ea46ed1b71d235375e4a6868cb6a
411b750698ab21b4beb7bdb28b50b7e7f569904a9ea4524527122bbc722ab83fe495e58aa57a279
bf41f305ccb67a64b39ba863133c373697566de996e3c80b98a3e42bb7c35c553cc55d8abb15762
aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb15762aec552bd57ccbe5fd0e
782db58d4adec6e2e96492da3b89163691211ca42a188a841bbd3ec8ddb1541dcf9ebc9966c12e7
5fb088b2991395c474645884ecca6b42046c24247443cbece2a8bb7f33797aee79ad6db53b69ae2
049259634955888e021646d8ee10901c8fb2766c555e1d674ab8b3b4d42def219ac6fca2d95cc6e1
e298cbf63832d4372ed4c551d8abb1541daeaba6dedcdcd9d9ddc53dd59902ea18dc33464965018
0e9bab0f9a9c55198abb157fffd6f6b4f75e5ffcb0f239b995a6ff000df97ed41774537130b78cd0b514
55a95a9a0c555343f3c683e61d426d2ec1e55d42d5256bbb79e2689a1782411491bf2d83a920d05
41521949538ab2169a3503e2049fb2a08a934ad078f4c55641731cf047390d0fa91aca6298709115
8568ea7a11d0e2a905ff9f7cb5a5ead0e8d7d70f0de4f7f6fa4424c4e626bdbd81ae604e601039a23
51becf2f82bcb1544e8fe6fd075ed5b5cd174bb869afbcb973158eac0c6e891dccd0aceb1abb001cf
075278540af1fb58aa77515a5457c315706522a0823a57dc62ac7f5ff0039e8de5bbab6b3d456e9a
7bb78e2805b5acd70ad2cfcfd34e51a9019bd37a0f6c553bb5b986f2da1ba84930cf1acb1f2055b83
80c2aad42363d0e2a80d77cc3a77972d61bbd44cbe9cf7305944b044f3bb5c5d388e25e31827e26
2057a62a845f3968c1ed12e45cd99bdba3616c6eada68435c2c534ccb57500054824258fc3b75f88
62a9f2491ca8b244c1e37019594820ab6e0823b1c550c74f80ea6baad5beb2b035a8151c3d3670e
76a75aae2a8bc55d8abb15762ac77cdd7fa85945a4c1a6dc7d565d4352b7b296708b232c522bb37
10e0ad7e1ea41c555468dae77f31dc9ff00a37b3ffaa38ab7fa1f5bff00a98ae7fe91ed3fea8e2aabe5
9bbbbbcd1e29afa5f5ee965b985e6e2139882e248958aad002428ad31561bf9d9ae6b5a0796348b
ad06eee6d2f2e7cc3a269d2fd4bd1f5e5b6bfbe8eda6893eb0a5033a390a4f1e2dc4f218ab0583cc9
e73d47c8365e6f3e6bb889ae3cc963a2dadb40b6ab71069f77ae4566f16a2ad010b7e9148629827
148dd7e1e4df1b2a9f5d6b7e66f2b79cec34fd775cbdbef2acb7b63a5d9eb76e2ce458efa5e4cd67a
ac0b1a3a34eb247e95cc4380f83988aa7d4551da279fe5f2ff00963cfde69f33ddcfa969da07982fad
6ceab1864b34302431a95540515a4fef1abf0eecc78e2a8bd5fce5abe91e68b79af9e286ca3d1f569
ae34d5b98ded249ed2f74f8ade5f5bd20eaccb72c3852bf171e0cdc71551d37f39ed7505b373a44d
6e97bfa4aded1e57e31cfa869371776f25a47270e0b2b1b4e71aced0f3493e0e4d1c8a15669e4ff00
345b79bf455d62d97d21eb4d6d2c07d4596296de431bc72c73471491c8a451e3740c8de3f68aa9f
62aec552cf31dedce9da06a77f66cab776d6d2cb033af35122a12a4ad45403dab8aa51fa0fcec767f
35c4c8766034c8c5477dc4db62a8bd4b4af34dc5e3cba5f9823b0b221425ab58a5c1520509f51a45
26a77e98aa17ca57dadcba8798748d6ef23bf9349ba822b7ba8e016c5a39ed219c8650ee2a19cef
e18ab13fcdbf2779cbcd9ad796a4f27ddbe9173a741ab86d6c7a0f1dbcd796821855e392aec8edf0b
98d79a2fc48cad4c55474ef296a115f7e5725af95bf43e8fe5eb5bfb5d5b4e13c1710d9896c45a471f
332169d58ad03d198a7c52716f871553d17cbbe6af2cf98f51d4748d2af3fc337905f4f77e5d9e7b5b
958354bab98c8934a99e5568e2994cb2dc40e52256e1e92abf246553bd3fcbde67f2f7913c87e5db
22f26a3a349a3db6b2d6722c49f56b6409724f229ca3dbec8f89bf971560f67e50fcce7bbd364d593
53b8b1866d26fafa19352123b5c5b6a97a66e1fe91b52d64b72ca0ac6ea94f8a45c5534b5d07f312
ece89fa4575cb79df55b65f3484d4edd6d64821b7bb4967b6f425595609647858a551e8a94855919
8aa92699e54fccbf2fe80d67a369ba843a8bebbe60d54482fe29144773ad2dd5a8647ba0a44b6acf
bb1709f1a3c5ce4f51554fdec3f325f4db796fad3566bf3742dbcd11d85f5b2fd66055b90973a60799
44639bc0ceacd03fa49c7d32ea79aaf4cfa9ea1fe17fa87d62ebf49fd47d0fadf383ebdeb7a5c7d4e7c
3d1f5abf15787a7cff00678e2aff00ffd7f52cfe56d775eff9c7d7f28d8db14d7aff0045fa9476f76cd6c5
6590713ea3152529d7ecd71541f9abf2c9d75ab0d6747d3e08acaca4b3d42faeee6e58cfea7e948a
eb5166770ecc64b6474625be25fdd6c98aa03cb7e44d6aef49f2cea7a54d6f7b65617521b29da821
bad06dde3b7b04951d797a86d93d68a78991925e28c1a0965c55ad37f2f7cf16ba43da6a1a2d86a
5a9c367a7c761a94f7ccb3c51470d9c37363c44455d55ade49e3690bc2ecebea43bc8315535fcb1f
396abe5a9bcb7abdaadadd4d15808b568af125682ef4bd39e2b7b8a85466e17290becabf057a529
8aa18fe53f9d7f4d5e5c5e5b457fa5dfdf5add5fc50ea0f62d3dc9b086396f038477531dca4ac89fde7
a72f246565e38aa9c1f941e7489a6b8b78a0b4d5a4ba79e0d496e6b244d2eb97f73ea8a6f55b3b88
e3f1e20c3f6462a98c5f96ed6d326abe7bb3b2b4f27c16b7126ab686e41b4b1234db6b79a6527883

403

ea49149273a065da56a48ed8aa71a2f963ccb77e4ff0023cd204bed4e0d66d358d56e36b606d218
64811c24953cbd1f47e1ea4f2c55e7b7fa1fd75f41b5b711eb3a06a3e68d4b49f2e4313b5bc1368eb
a3eab3c4ace4fc4b15d4eea1f704411327c74aaaca62fcb1f3a2cee750592fee9356d1e59b53fd26c
ab7563a7de25c99160088d1cb12a94e4d233b7ec32a31e2aa2f57fcadd7db55bbb5d310cfa034b0
35b3dedd7aac54695aa5a4a5c35589f56f2204f575059b71f12a965bfe5879bae659c6aba59f4de7d
2c22a6ad5b6fd1b0cf6724b6df5758e3a18920923157642adfbbfefa5e2abd796178bce102c51b2d9
c7a5346b407d3044e945af4ad062ac8315762aec55d8aa45e69d16ff5ab5b1fd17750da5fe9f7b0df
c0f73134f0b18432956549236a10c770d8aa0beaff00991ff571d0ff00e902effecb31577d5ff32830ff0
0723a194ee3ea3760ff00d461c5536f2ee9b77a4e910d95f4d1dc5e069a59e5851a388bcf2bca78a
b3390017a0ab1c555f53d234ad6618adf57b182fe08654b8862b98d66549e23549143820329dd5b
aaf6c55073f94bcad742e05c68b632adddd26a1741ede2225bd8a812e1c71f8a55e238c87e3141b
ed8aabcfe5ed06eaf1b50b9d32d66be7219ee248636919821881248a92109404fecfc3d3155d6da1
68967a59d0ed34eb6834564689b4e8e145b631c808653101c4a9aee298aa117c9be515b68ec974
2d3c59c36ef6515b8b5844496d2bac8f12af1a046655665e85954f6c55d17943ca56f0b5b41a1d84
56f273e7025b4491b194bb3d5428079191c9dbf6dbf98e2a9a5a5959d84460b1823b784b3394894
202ee6acc40ea49ea71557c55d8aa5faee9f26ada2ea1a64322c535ddbcb0c72b82caaeea402402
0900f5df154ae21e7ee43d77d1cad45782dd034efd58e2a8dbfff00147d64fe8cfa87d53e1e3f59f5bd
4ad3e2af0dbaf4c550de5dd1b52d3eff005bd4f549607b9d62e219c456c1c471ac16d15b81573524f
a7cba62a9479d3f322cfc9f7575646c65bfb9d3f46bbf32dfc68eb115d32c1d126319614797e2aac64
a0dbe275aad5555f2e79f1bcc3a6eb9ad8d31ad748d225ba8609e5b8883dc1b2670e4ab7058810a
a4191ff6be2e3c71562707e6c5fea1ad1b8b5b378f4cd2a0d663d734f7922118934b3a74df588e729
cca886e9a8b401dbfd8be2a9cdd7e6a427508f4dd3ac564bb3ac5869324173335bcc2db501232dd
843112d1b2c7588a92926e39abc6e815518ff37635d274fd6ef74496d74fd46e7d0887d62292710fd
760d3c4a624a9a1966aff002845af3e6c91b2a88bbfcc8bf03cb173a768ab3697e67d4ad2cacaf64b
a451f55ba86e6669782ab30745b707d32389f507ef392b285533d6fcdd71eb6b9a4e87034977a3db
d2fef43c63ea935c5ac9710bfa526d2280aa5a87f68515fe2e2ab1bd2bf36da0d0b429354d36eb51d
56fb4886f1ff47ac72cb717834a1a94891c119a82ea18229e2c5f654e147c551975f9c9e5bb586cae
6596da3b4beb36bfb7bd96ed23b4956391e3748652bfbc910a0f52155f5d39a7ee89e5c557ffd0f74
795f5d8bccde5ed3bcc10c2d045a8c097090b10cca1c74246c7154db15762aec55d8abb15762ae2
01143b8c55d8ab5c176f846dd36e98ab78abb15762a813a9c43585d1f837aed6cd77ea6dc782c82
3a78d6a7154762aec55d8abb15762aec55d8abb15762aec55d8abb15762aea0ad69b8e98abb157
62aec55d8abb15762aec552ed5342d1b5931beab6105eb40aeb17ac8ae424b4e69bf557e23929f8
5a8390db156a1f2fe87058df69b169f02e9fa9bcf26a36bc018a77bbafac6453b3192a79d7ed77c55
2e83c83e4cb5016d744b484090cc447184e4ef1a44dce94e419228d5c3543f05e55e2315454fe53f
2e5cc8d2cfa6c2f319e3ba1215f8d6782533a3a9ad5489097f869f1337f31c55053fe5e7926e6dad6c
e7d0ed64b6b20eb6b194da312ce974c177dab346b27faebcb155f0f903c996ea12df45b58916f975
6458d3884be8d999654a1f8482ee68b45f8df6f8daaaa22f7ca1e59d47547d6ef74c865d564b76b29
6ec82b23dbb061c18a91ca819b893ba726e34e47154b53f2c3c83188bd3d06d94c11c50c24730ca
905bfd523a1e550561fdd72fb5c028fd95a2a8b6f21f941e513b69309996459c49f172fac46f248b3d
797f7c1a59184dfde55dbe3df157fffd1ef7ff38fdff1d7b8ff009839bfea2862a9c7e79ffbdfa3ff00c619b
fe26b8ab7f917fef7eb3ff1860ff893e2a957e767fca596ff00f3029ff1397154ff00f21bfde4d73fe3341ff
117c5589fe6e7fca757bff30b0ffc40e2acff00f24ffe381a8ffcc67fcc98f1579efe607fca6fadff00c658bf
e4c478abd57f28ff00e50d8bfe626e7fe4e1c55e33e70ff94a75eff98d9bfe278abdd7f2d7fe509d2bfd
597fe4f3e2af01d67fe3af7fff003153ff00c9c6c55f44f963fe50cd33fe6023ff009378abc8ff00253fe53
ad5ff00ed910ffd45c98abdf315762aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55
d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb15762afffd9000000084001082400
0000180000000210c0db01000000030000000000000000000000000000001b4000004000000034
0000000100000002000000000000bf000000bf0000af4300808843030000000000008000000080f
e7fe9430000008000000080ffffb5432100000008000000620000000c00000001000000150000000
c00000004000000150000000c0000000400000051000000b07b01000000000000000000d201000
06b010000000000000000000000000000000000005e0100001101000050000000000400005004
000060770100000000002000cc00d30100006c010000280000005e010000110100000100080000
000000000000000000000000000000f60000000000000000000000ffffff00fbfbfb00f0f0f000272727
00474747003e3e3e003c3c3c003d3d3d00484848003a3a3a006f6f6f00f8f8f800fdfdfd0076767600
40404000454545004d4d4d00424242004c4c4c004b4b4b003f3f3f00414141004a4a4a00cacaca00
fefefe00e8e8e8006b6b6b00525252005b5b5b005f5f5f0063636300606060006868680065656500
5d5d5d0067676700858585009a9a9a006d6d6d006c6c6c007a7a7a00fcfcfc00fafafa00f2f2f200949
494008b8b8b009696960097979700a0a0a0008f8f8f008e8e8e00c7c7c700f9f9f900aeaeae009e9e
9e00aaaaaa00a6a6a600a7a7a700a9a9a900adadad00bdbdbd00d4d4d400b0b0b000ababab00af
afaf00b1b1b100bbbbbb00b5b5b500b4b4b400b7b7b700bababa00c5c5c500c8c8c800ededed00e
bebeb00cecece00d6d6d600d0d0d000d9d9d900d5d5d500e6e6e600e2e2e20069696900f7f7f700
e4e4e400e5e5e500e7e7e700e3e3e300e9e9e900dadada00dedede00dbdbdb00dddddd00dcdcdc
00d7d7d700e1e1e100e0e0e000d8d8d800c9c9c9007d7d7d00bebebe00c4c4c400cccccc00bfbfbf
00c2c2c200b9b9b900b8b8b800d2d2d200b6b6b600bcbcbc00b3b3b300b2b2b200888888007070
700083838300a3a3a300737373007f7f7f00d1d1d100818181007b7b7b00cfcfcf007c7c7c00a4a4a

400eaeaea0074747400828282008080800078787800a1a1a1009f9f9f009393930079797900eeee
ee0077777700d3d3d3008c8c8c0099999900c0c0c000acacac00f6f6f600f3f3f300cbcbcb008d8d8d
006666660090909000cdcdcd0056565600efefef00313131004e4e4e00202020008484840025252
500878787002c2c2c005c5c5c00f4f4f400535353000f0f0f008a8a8a00dfdfdf00f5f5f500f1f1f1009b9
b9b001515150055555500464646005757570098989800c1c1c1006a6a6a0092929200898989006
1616100ececec0095959500595959009c9c9c00727272009d9d9d008686860091919100a5a5a50
071717100757575005e5e5e007e7e7e005a5a5a00c6c6c60051515100545454005050500036363
60064646400626262002e2e2e003b3b3b004f4f4f001313130039393900a8a8a800303030004343
4300a2a2a200494949002f2f2f00c3c3c3002d2d2d002a2a2a0058585800343434006e6e6e001b1
b1b000c0c0c00444444001d1d1d001818180019191900383838001e1e1e0023232300333333002
8282800050505002b2b2b001a1a1a001f1f1f001111110037373700353535002929290032323200
0101010004040400242424002222220021212100171717001c1c1c0010101000080808000b0b0b
0016161600141414002ebc74a58c2b19010119015cb537b3b5b537b5a5a20101010119a431a58a
318aa5302f6d191
To support the first requirement, the RTSJ provides extensions of the ScopedMemory areas
discussed in Section 7.3. These extensions provide the physical memory counterparts to the lineartime and variable-time scoped memory classes. They enable the programmer to specify that objects
should be created in memory with a particular characteristic (for example, shared memory) as well as
the usual requirements for linear time allocation etc. Immortal physical memory is also provided.
To support the second requirement, the RTSJ provides classes which can access raw memory in
terms of reading and writing Java variables or arrays of primitive data types (int, long, float etc.). The
implementation of both these physical and raw memory classes can assume the existence of a
PhysicalMemoryManager class, which must be provided by the real-time Java virtual machine.
This class can also make use of implementation-dependent classes, called filters, which help support
and police the various memory categories. All these classes must support the
PhysicalMemoryType-Filter interface. The memory manager can also check that the program
has the necessary security permissions before allowing access to physical and raw memory.

7.11 System-wide Properties


The overall properties of an RTSJ virtual machine can be acquired via the Realtime-System class.
Operations on this class also allow the system's performance to be tuned. For example, the total
number of concurrent object locks can be specified. The byte ordering of the machine can also be
determined.

7.12 Synchronization and the RTSJ


Most of the classes provided by the RTSJ will be used in a concurrent environment. However, in
some cases there will be no concurrent use of a particular object. For example, consider the
AsyncEvent class. In general, an asynchronous event may be fired by more than one real-time
thread. In practice, only one firer will exist for many events. There is, therefore, a dilemma for the
RTSJ designers of whether to make the fire method synchronized or not. Indeed, the initial version
of the RTSJ has fire as synchronized (Bollella et al., 2000). Version 1.0 has it nonsynchronized!
The advantage of making a method synchronized is that the class designer is forced to consider the
use of the class in a concurrent environment (making it "thread safe" or "thread conditionally safe",
using Bloch's terminology see Section 4.8). The disadvantage is that the program incurs a run-time
overhead in calling synchronized methods irrespective of whether the actual object is subject to
concurrent calls.
The alternative approach is to declare the class as being "thread compatible". This means that the
class has paid no considerations to concurrent calls of its methods but does guarantee that it is not
completely "thread hostile". It is, therefore, up to the programmer to provide the required
synchronization if an object is called concurrently. This is a burden to the programmer, but the runtime overhead is only incurred when it is really needed. It is this latter approach that is generally (but
not universally) taken by the RTSJ. Methods are only made synchronized when absolutely necessary;
for instance, because there is some condition synchronization required. On occasions, the
synchronization is hidden in the class.
There are many ways to make a "thread compatible" class "thread safe". The simplest is to create a

405

subclass and override the methods that can be called concurrently (directly or indirectly). The
overridden methods can then be made synchronized. The subclass can be used in all places where
the superclass can be used, and run-time dispatching will ensure the correct method is called.
If this approach is not appropriate (perhaps because the methods are final methods), an alternative
is to lock the object when an unsynchronized method is called. However, this is more error prone, as it
requires all users of the object to first obtain the lock.

7.13 Summary
This chapter has introduced the majority of classes and interfaces that can be found in the Real-Time
Specification for Java and has attempted to illustrate the overall motivation for their inclusion. The
details of the semantic model behind these classes and full descriptions of their methods (and how
they can be used) are given in the following chapters.
At the beginning of this chapter, the NIST core requirements for real-time Java extensions were
identified. It is now possible to review these requirements and see how closely the RTSJ has met
them. Firstly, the facilities needed to support the current state of real-time practice:
Fixed priority and round-robin scheduling the RTSJ supports a fixed priority scheduler and
allows implementations to provide other schedulers.
Mutual exclusion locking (avoiding priority inversion) the RTSJ supports priority inheritance
algorithms of synchronized objects and requires that all RTSJ implementations avoid
unbounded priority inversion.
Inter-thread communication (e.g. semaphores) schedulable objects can communicate
using the conventional Java mechanisms augmented with priority queues and priority
inversion avoidance algorithms.
User-defined interrupt handlers and device drivers (including the ability to manage interrupts;
e.g. enabling and disabling) the RTSJ allows interrupts to be associated with
asynchronous events. Memory-mapped device registers can be accessed by the raw
memory facilities.
Timeouts and aborts on running threads the RTSJ allows asynchronous transfers of
control via asynchronous exceptions; they can be event-triggered or time-triggered.
In terms of implementation requirements:
A framework for finding available profiles the RTSJ does not explicitly address the issues
of profiles other than by allowing an implementation to provide alternative scheduling
algorithms (e.g. EDF) and allowing the application to locate the scheduling algorithms. There
is no identification of, say, a safety critical systems profile or a profile that prohibits dynamic
loading of classes. Distributed real-time systems are not addressed, but there is another
Java Expert Group that is considering this issue (Wellings, Clark, Jenson, and Wells, 2002).
Bounded preemption latency on any garbage collection supported by the
GarbageCollector class.
A well-defined model for real-time Java threads supported by the RealtimeThread and
NoHeapRealtimeThread classes.
Communication and synchronization between real-time and non-real-time threads
supported by the wait-free communication classes.
Mechanisms for handling internal and external asynchronous events supported by the
AsyncEvent, AsyncEventHandler and POSIXSignalHandler classes.
Asynchronous
thread
termination

supported
by
the
AsynchronouslyInterruptedException class and the Interruptible interface.
Mutual exclusion without blocking supported by the wait-free communication classes.
The ability to determine whether the running thread is real-time or non-real-time supported
by the RealtimeThread class.
A well-defined relationship between real-time and non-real-time threads supported by the
real-time thread, the scheduling and memory management models.
Overall, it can be seen that the RTSJ addresses all the NIST top level requirements in some form or
other. It is, however, a little weak in its support for profiles.

Chapter 8: Memory Management


Overview
Introduction and chapter structure
One of the main advantages of using a high-level language is that it relieves the programmer of the
burden of dealing with many low-level resource allocation issues. Activities such as assigning
variables to registers or memory locations, allocating and freeing memory for dynamic data structures,
etc., all distract the programmer from the task at hand. The adage "can't see the wood for the trees"
sums up the programmer's dilemma. Languages like Java remove many of these distractions and
provide high-level abstract models that the programmer can use. Unfortunately, for real-time and
embedded systems programming there is a conflict. On the one hand, the use of high-level
abstractions aid in the software engineering of the application. On the other hand, embedded and
real-time systems often have only limited resources (time and space) and these must be carefully
managed. Nowhere is this conflict more apparent than in the area of memory management.
Embedded systems usually have a limited amount of memory available; this is because of cost, size,
power, weight or other constraints imposed by the overall system requirements. It may, therefore, be
necessary to control how this memory is allocated so that it can be used effectively.
The run-time implementations of most programming languages provide two essential data structures
to help manage the dynamic memory of the program: the stack and the heap. In Java, the stack is
typically used for storing variables of basic data types (such as int, boolean and reference
variables) that are local to a method. All objects that are created from class definitions are stored on
the heap, and the language requires garbage collection for an effective implementation. The garbage
collector runs as part of the JVM. Although there has been much work on real-time garbage collection,
there is still a reluctance to rely on these techniques in time-critical systems. This is because garbage
collection may be performed either when the heap is full or incrementally (either by an asynchronous
activity or on each allocation request). In either case, running the garbage collector may have a
significant impact on the response time of a time-critical thread. Consider, for example, a time-critical
periodic thread that has had all its objects preallocated. Even though it may have a higher priority than
a non-time-critical thread and will not require any new memory, it may still be delayed if it preempts
the non-time-critical thread when garbage collection has been initiated by an action of that thread. In
this instance, it is not safe for the time-critical thread to execute until garbage collection has finished
(particularly if memory compaction is taking place).
For the above reasons, the RTSJ recognizes that it is necessary to allow memory management that is
not affected by the vagaries of garbage collection. It does this via the introduction of immortal and
scoped memory areas. These are areas of memory that are logically outside of the heap and,
therefore, are not subject to garbage collection. Issues concerned with raw and physical memory
allocation are deferred until Chapter 15. Memory areas and their relationship to heap memory is the
topic of this chapter. The chapter is structured as follows:
The basic model is presented and the main memory area types are introduced. How to
estimate the size of memory required is also covered.
The object assignment rules for the different memory areas are detailed. In order to enforce
these rules, the JVM must keep track of active memory areas; logically this is performed
using a memory area stack. Programmers need to understand the underlying model so that
they can construct error-free object structures. The single parent rule for memory areas is
described.
Memory areas can be shared between schedulable objects. The support mechanisms for
both competitive and cooperative sharing are considered.
Using scoped memory areas with prewritten classes is fraught with difficulties in the RTSJ.
Guidelines are presented to help the programmer manage these problems.
Finally the chapter briefly reviews some of the real-time issues. These include a discussion
of the timing properties of scoped memory areas, the role of memory parameters and
modern approaches to real-time garbage collection that attempt to avoid some of the
problems mentioned above.

8.1 The Basic Model


407

The RTSJ provides two alternatives to using the heap memory area; they are called immortal memory
and scoped memory.
Important The memory associated with objects allocated in immortal memory is never subject to
note
garbage collection delays and behaves as if it is never released during the lifetime of
the application creating the objects. Class objects and their associated static
memories, along with objects created by static initialisation and interned strings (the
list of program-defined constant strings that is maintained by the String class) are
allocated in immortal memory.
Hence, once space has been allocated from immortal memory, it can never be automatically
reclaimed. The programmer must reuse the memory by other means (for example, a pool of reusable
objects). In contrast, objects allocated in scoped memory have a well-defined lifetime. Schedulable
objects may enter and leave a scoped memory area. While they are executing within that area, all
memory allocations (resulting from creating new objects) are performed from the scoped memory.
When there are no schedulable objects active inside a scoped memory area, the allocated memory is
reclaimed.
Important In general, schedulable objects must explicitly indicate whether memory is to be
note
allocated from immortal or scoped memory. The default memory area is the heap.
Fine detailThe RTSJ allows an implementation to detect if an object in immortal memory is no
note
longer reachable. If it can do this, it may execute any associated finalizers and even
return the allocated space. However, this activity must not be part of general
garbage collection and must not cause preemption delays to high priority no-heap
schedulable objects. On the other hand, an implementation may not even run
finalizers when the application terminates. The remainder of this book assumes that
immortal memory is never collected.
Memory areas
All memory areas in the RTSJ are represented by subclasses of the abstract MemoryArea class, an
abridged version of which is shown below. (Note parameters to some of the methods in the classes
defined in this chapter represent the size of memory in bytes. The type is given as a long. All the
classes throw IllegalArgumentExceptions if negative values are passed similarly, if an object
is
expected
and
a
null
value
is
passed.)
package
javax.realtime;
public
abstract
class
MemoryArea
{
//
constructors
protected
MemoryArea(long
size);
//
In
bytes.
protected
MemoryArea(long
size,
Runnable
logic);
...
//
methods
public
void
enter();
//
Throws
IllegalArgumentException,
//
IllegalStateException.
// Associate this memory area to the current schedulable
// object for the duration of the logic.run method
//
passed
as
a
parameter
to
the
constructor.
// IllegalArgumentException is thrown if no Runnable
// object was passed as a parameter to the constructor.
public
void
enter
(Runnable
logic);
//
Throws
IllegalArgumentException,
//
IllegalStateException.
//
Associate
this
memory
area
to
the
current
//
schedulable
object
for
the
duration
of
the
//
logic.run
method
passed
as
a
parameter.
public
static
MemoryArea
getMemoryArea(Object
object);
// Get the memory area associated with the object.
public
long
memoryConsumed();
// Get the number of bytes consumed in this area.
public
long
memoryRemaining()
;
// Get the number of bytes remaining in this area.
public
long
size();
//
Get
the
current
size
of
this
area.
...
}

Important Only a schedulable object (real-time threads or asynchronous event handlers) can
note
enter into a memory area. If a Java thread calls one of the enter methods, the
IllegalStateException is thrown. A Java thread has too much context
established on the heap, and consequently if it were allowed to enter a memory area,
this would inevitably lead to the memory assignment rules being broken.
Immortal memory
Consider

the
public

final

class
public

ImmortalMemory
class:
package
javax.realtime;
ImmortalMemory
extends
MemoryArea
{
static
ImmortalMemory
instance();

}
There is only one ImmortalMemory area, hence the class is defined as final and has only one
additional method (instance) that, when called, will return a reference to the immortal memory area.
Immortal memory is shared among all threads and schedulable objects in an application. Note, there
is no public constructor for this class. Hence, the size of the immortal memory is fixed by the real-time
JVM.
Unlike scoped memory, there is no indication of whether the time taken to allocate immortal objects is
linear with respect to object sizes. This is because it is anticipated that objects will usually be created
in immortal memory during initialization of the program.
The simplest method for allocating objects in immortal memory is to use the enter method in the
MemoryArea class and to pass an object implementing the Runnable interface:
ImmortalMemory.instance().enter
(new
Runnable()
{
public
void
run()
{
//
Any
memory
allocation
performed
here
//
using
the
allocator
will
occur
in
//
immortal
memory.
}
}};
Important It should be stressed that although all memory allocated by the above run method will
note
come from immortal memory, any memory needed by the object implementing the
run method will be allocated from the current memory area at the time of the call to
enter. In this instance, it looks as if there will be no memory needed by the
anonymous class implementing the Runnable interface. However, all classes are
implicitly subclasses of the Object class; fortunately that class usually does not have
any instance variables. Nevertheless, some small amount of memory will still be
allocated by the virtual machine in order to implement the object (see scoped memory
example below).
Also note any call to the version of the parameterless enter method on the ImmortalMemory area
will result in the IllegalArgumentException being thrown, as it is not possible to create an
ImmortalMemory area with an initial Runnable object.
Heap Memory Area
Once schedulable objects are allowed to enter memory areas, a mechanism is needed to allow them
to start using the heap again. Hence, the Java heap is also represented as a memory area.
package
javax.realtime;
public
final
class
HeapMemory
extends
MemoryArea
{
public
static
HeapMemory
instance();
}
Scoped memory areas
Scoped memory is a memory area where objects with a well-defined lifetime can be allocated. They
can be created as and when needed by an application. There are two types: one that requires the
allocation time to be directly proportional to the size of the object being allocated (linear time memory
LTMemory), and one where the allocation can occur in a variable time (variable time memory

409

VTMemory). The ScopedMemory class itself is, therefore, abstract an abridged version is presented
below:
package
javax.realtime;
public
abstract
class
ScopedMemory
extends
MemoryArea
{
//
constructors
public
ScopedMemory(long
size);
//
in
bytes
public
ScopedMemory(long
size,
Runnable
logic);
...
//
methods
public
void
enter();
//
Throws
ScopedCycleException
(see
Section
8.5),
//
ThrowBoundaryError
(see
important
note
below),
//
IllegalArgumentException,
IllegalStateException.
//
Associate
this
memory
area
to
the
current
//
schedulable
object
for
the
duration
of
the
//
logic.run
method
passed
as
a
parameter
to
the
//
constructor.
public
void
enter(Runnable
logic);
//
Throws
ScopedCycleException
(see
Section
8.5),
//
ThrowBoundaryError
(see
important
note
below),
//
IllegalArgumentException,
IllegalStateException.
//
Associate
this
memory
area
to
the
current
//
schedulable
object
for
the
duration
of
//
the
logic.run
method
passed
as
a
parameter.
public
long
getMaximumSize();
public
String
toString();
//
Returns
a
string
identifying
the
memory
area.
...
}
Important
1. The memory used for allocated objects when a scoped memory area is
notes
active is called the scoped memory's backing store. It resides in a part
of memory that is otherwise invisible to the application. It is separate from
the memory required for the scoped memory object itself (which is
allocated from the current memory area when the object is created). The
backing store is usually assigned to the scoped memory object when the
object is created, and it is freed when the object is finalized. When
assigned, memory within the backing store used for allocated objects can
be reclaimed when the scoped memory becomes inactive (see the
discussion on reference counts below).
2. Unchecked exceptions which are thrown during the execution of the
Runnable called by the enter method may be allocated in the current
memory area. Hence, if they are allowed to propagate through the enter
method, they will be no longer be accessible to the application. It this
situation, the exception will be lost and the real-time VM will throw a
ThrowBoundaryError exception. To avoid this problem, some realtime JVM may pre-define some standard run-time and error exceptions in
immortal memory.
The

two

subclasses

are
abridged
below:
package
javax.realtime;
public
class
LTMemory
extends
ScopedMemory
{
//
constructors
public
LTMemory
(long
initial,
long
maximum);
public
LTMemory
(long
initial,
long
maximum,
Runnable
logic);
public
LTMemory
(long
size);
//
in
bytes
public
LTMemory
(long
size,
Runnable
logic);
...
//
methods
public
String
toString
()
;
}
package
javax.realtime;
public
class
VTMemory
extends
ScopedMemory
{
//
constructors
public
VTMemory
(long
initial,
long
maximum);
public
VTMemory
(long
initial,
long
maximum,

public
public

VTMemory
VTMemory

(long
(long

public

size);
size,

String

//

Runnable
//
in
Runnable
toString

logic);
bytes
logic);
...
methods
();

}
The expectation is that allocation time for objects in VTMemory will be faster but less predictable than
allocation in LTMemory.
Important
Object creation in Java requires both allocating the space needed for the object and
note
running its constructor. Linear-time memory refers to the time needed for allocating
the space (and the setting of any default values to fields), not the time needed to run
the constructor (which can contain arbitrary code).
For scoped memory objects, a minimum and maximum size can be given. This allows extra flexibility
in the implementation, although it is quite acceptable for an implementation to allocate the maximum
size immediately.
Reference counts
Each scoped memory object has a reference count that indicates the number of times the scope has
been entered and not exited. When that reference count goes from 1 to 0, the memory allocated in the
scoped memory area is reclaimed (after running any finalization code associated with the allocated
objects).
Fine detail
note
Java finalizers consist of user-written code, and executing them can result in the
enclosing memory area becoming reactivated again (for example, if a finalizer creates a
schedulable object). Java semantics require that once the memory area becomes inactive
again, the memory is freed without reexecuting the previously executed finalizers. Any
newly created objects will be finalized.

8.2 An Example of Scoped Memory Usage


Consider the example given below. Here, a class encapsulates a large table that contains (two by
two) matrices. The match method takes a two-by-two matrix and performs the dot product of this with
every entry in the table. It then counts the number of results for which the dot product is the unity
matrix.
public
class
MatrixExample
{
public
MatrixExample(int
Size)
{
table
=
new
int[Size]
[2]
[2];
//
Initialize
table
here.
}
public
int
match(final
int
with
[]
[])
{
int
found
=
0
;
for(int
i=0;
i
<
table.length;
i++)
{
int[] [] product = dotProduct(table [i], with);
if(equals(product,
unity))
found++;
}
return
found;
}
private int[] [] dot Product(int[] [] a, int[] [] b) {
int[]
[]
result
=
new
int
[2]
[2]
;
//
Calculate
dot
product.
return
result;
}
private
boolean
equals(int[]
[]
a,
int[]
[]
b)
{
//
Returns
true
if
the
matrices
are
equal.
}
private int [] [] [] table; // A table of 2 by 2 matrices.
private
int
[]
[]
unity
=
{{1,
0},
{0,
1}};
}

411

Note that the match method has a loop, and each time around that loop a call to dot-Product is
made that creates and returns a new matrix object. This object is then compared to the unity matrix.
After this comparison, the matrix object is available for garbage collection.
Now consider how this example can be rewritten so that it can reclaim the space for the temporary
matrix without garbage collection. First, a scope memory area is needed; here LTMemory is used.
Next, the code that is going to create and use the temporary matrix has to be constructed into a class
that implements the Runnable interface; then that class has to be passed as a parameter to enter.
To avoid creating a named class, an anonymous inner class can be used. Hence:
public int match(final int with [] []) { // first attempt
LTMemory
myMem
=
new
LTMemory(1000,
5000);
int
found
=
0;
for(int
i=0;
i
<
table.length;
i++)
{
myMem.enter (new Runnable() // start restructured code
{
public
void
run()
{
int[] [] product = dotProduct(table[i], with);
if(equals(product,
unity))
found++;
}
}); //
end restructured code
}
return
found;
}
Unfortunately, there are several problems with using inner classes that require this code to be
modified. The first concerns the accessibility of the for loop parameter i. The only local parameters
that can be accessed from within a class nested within a method are those that are final. Here, the
with parameter is final, but the integer i is not. Furthermore, found is not final. To solve this
problem, it is necessary to create a new final variable, j, inside the loop, which contains the current
value of i. The variable found must be moved to be local to the class and initialized to 0 on each call
of match.
The next problem is that the anonymous class is a subclass of Object, not the outer class
MatrixExample. Consequently, the default equals method is the one in Object and a compilation
error occurs. This can be circumvented by naming the method explicitly. The myMem object can also
be moved to be local to the object in order to avoid recreating the object on every call to match.
Hence,
the
new
class
is:
import
javax.realtime.*;
public
class
MatrixExample
{
//
second
attempt
public
MatrixExample(int
Size)
{
table
=
new
int[Size]
[2]
[2];
//
initialize
table
myMem
=
new
LTMemory(1000,
5000);
//
say
}
public
int
match
(final
int
with[]
[])
{
found
=
0;
for(int
i=0;
i
<
table.length;
i++)
{
final
int
j
=
i;
myMem.enter(new
Runnable()
{
public
void
run()
{
int[] [] product = dotProduct(table [j], with);
if(MatrixExample.this.equals(product, unity))
found++;
}
});
}
return
found;
}
private int[] [] dotProduct(int[] [] a, int [] [] b) {
int
[]
[]
result
=
new
int[2]
[2];
//
Calculate
dot
product.
return
result;
}
private
boolean
equals(int[]
[]
a,
int[]
[]
b)
{
//
Returns
true
if
the
matrices
are
equal.
}

private

int [] [] [] table;
private
int
[]

// A table of 2 by 2 matrices.
[]
unity
=
{{1,1},{1,1}};
public
int
found;
private
LTMemory
myMem;

}
This approach now reclaims the temporary memory every time the enter method terminates.
However, as mentioned above, the creating of the anonymous class will still use memory in the
surrounding memory area. In this case, there will be memory for a private copy of the j variable and a
private reference to the with array (this is how the compiler implements the access to the method's
data). As well as these, there will be some other memory allocated for implementing the object.
Although this memory cannot be entirely eliminated, it can be significantly reduced by creating an
object from a named inner class and reusing that object. The approach is illustrated below:
import
javax.realtime.*;
//
final
attempt
public
class
MatrixExample
{
public
MatrixExample()
{
table
=
new
int[10]
[2]
[2];
//
Initialize
the
table
here.
produce
=
new
Product();
myMem
=
new
LTMemory(1000,
5000);
}
public
int
match(final
int
with
[]
[])
{
produce.found
=
0;
for(int
i=0;
i
<
table.length;
i++)
{
produce.
j
=
i;
produce.withMatrix
=
with;
myMem.enter(produce);
}
return
produce.found;
}
private
class
Product
implements
Runnable
{
int
j;
int
withMatrix[]
[];
int
found
=
0;
public
void
run()
{
int[] [] product = dotProduct(table [j], withMatrix);
if(MatrixExample.this.equals(product,
unity))
found++;
}
}
private int[] [] dotProduct(int[] [] a, int[] [] b) {
//
Calculate
dot
product
and
return
result.
}
private
boolean
equals(int[]
[]
a,
int[]
[]
b)
{
//
Returns
true
if
the
matrices
are
equal.
}
private
int
[]
[]
[]
table;
private
int
[]
[]
unity
=
{{1,
1},
{1,
1}};
private
Product
produce;
private
LTMemory
myMem;
}
With this solution, there is just the initial cost of creating the produce object. Note that the only way
to pass parameters to the run method is by setting attributes of the object (in this case directly).

8.3 Estimating the Size of Scoped Memory Areas


In order to use scoped memory areas effectively, it is necessary to be able to estimate the amount of
memory required to hold the objects being allocated there. If the programmer underestimates the
memory required, then the unchecked exception OutOfMemoryError will be thrown when space is
exhausted. Vast overestimates might have equally serious consequences, in terms of overall memory
size requirements and the resulting power consumption or heat production in the embedded
processor.

413

To help the programmer estimate the size of memory required for a particular object, the RTSJ
provides
the
SizeEstimator
class
given
below.
package
javax.realtime;
public
final
class
SizeEstimator{
//
constructor
public
SizeEstimator();
//
methods
public
long
getEstimate();
public
void
reserve(Class
c,
int
number);
public
void
reserve(SizeEstimator
s);
public
void
reserve(SizeEstimator
s,
int
number);
public
void
reserveArray(int
dimension);
//
For
arrays
of
non
primitive
types.
public
void
reserveArray(int
dimension,
Class
type);
//
For
arrays
of
primitive
types.
//
Throws
IllegalArgumentException
if
type
is
not
//
a
primitive
type.
}
Objects of class SizeEstimator can be used to collect the size information about various classes.
A call to one of the reserve methods adds the size of the parameter to the current estimate. For
example, the following will calculate the size of a single PriorityParameters object and add it to
the
current
estimate:
{
SizeEstimator
s
=
new
SizeEstimator();
...
s.reserve(javax.realtime.PriorityParameters.class,
1);
System.out.println("size
of
PriorityParameters
is
"
+s.getEstimate());
}
Warning The estimate given by these facilities is only a guide to the amount of memory that will be
allocated. For example, it may or may not include any monitor lock that the system may
need to create in support of synchronized methods and statements.
The current estimate in one SizeEstimator object can be used to reserve space in another
SizeEstimator by using one of the overloaded reserve methods with a SizeEstimator
parameter.
Consider

public

now
class

the
Anonymous

following
implements
Runnable
final
int
final
int
with[]
[]
public
void
run()

class.
{
j;
;
{
}

}
The value that a SizeEstimator gives for this object on a particular implementation of the RTSJ is
16 bytes. Indeed, the overheads associated with a null object is 8 bytes. This also represents the
minimum cost of creating an anonymous Runnable object.
There are constructors for the various memory area classes, which take SizeEstimator objects:
package
javax.realtime;
public
abstract
class
MemoryArea
{
//
constructors
...
protected
MemoryArea(SizeEstimator
size);
protected
MemoryArea(SizeEstimator
size,
Runnable
logic);
...
}
package
javax.realtime;
public
abstract
class
ScopedMemory
extends
MemoryArea
{
//
constructors
...
public
ScopedMemory(SizeEstimator
size);
public
ScopedMemory(SizeEstimator
size,

Runnable

public

public

public

public

logic);
...
}
package
javax.realtime;
class
LTMemory
extends
ScopedMemory
{
//
constructors
...
public
LTMemory(SizeEstimator
initial,
SizeEstimator maximum);
public
LTMemory(SizeEstimator
initial,
SizeEstimator maximum,
Runnable logic);
public
LTMemory(SizeEstimator
size);
LTMemory(SizeEstimator
size,
Runnable
logic);
...
}
package
javax.realtime;
class
VTMemory
extends
ScopedMemory
{
//
constructors
...
public
VTMemory(SizeEstimator
initial,
SizeEstimator maximum);
public
VTMemory(SizeEstimator
initial,
SizeEstimator maximum,
Runnable
logic);
public
VTMemory(SizeEstimator
size);
VTMemory(SizeEstimator
size,
Runnable
logic);
...

}
Important A size estimator returns only the size of the created object. It does not take into
note
account any objects that might be created by the object either as a result of
initialization or from running the constructor.

8.4 Assignment Rules


To recap, in the RTSJ there are four types of memory:
heap memory collected by the garbage collector;
local variables (stack memory) collected automatically when methods exit;
immortal memory never collected;
scoped memory available for collection when the associated reference count goes from
one to zero.
Given that the collection mechanism for scoped memory is different from the collection of heap
memory and local variables, it is necessary to impose some restrictions on assignments between the
different types of memory. Otherwise, dangling references may occur. A dangling reference is a
reference to an object that has been collected when scoped memory is reclaimed. Consider, for
example, the scenario depicted in Figure 8.1.
010009000003d41701000000df7d000000001610000026060f002220574d464301000000000001
002c5b000000000a00000000200000c8110100c8310100010000006c0000000000000000000000
d2010000ef00000000000000000000006a4000000b21000020454d4600000100c83101000c0000
00010000000000000000000000000000000005000020030000c40100001a010000000000000000
000000000000e3e306006e4e0400460000002c00000020000000454d462b014001001c00000010
0000000210c0db010000006000000060000000460000007034000064340000454d462b22400400
0c000000000000001e4009000c00000000000000244001000c0000000000000030400200100000
00040000000000803f214007000c0000000000000008400005bc330000b03300000210c0db0100
00000000000000000000000000000000000001000000ffd8ffe000104a464946000102010048004
80000ffed092050686f746f73686f7020332e30003842494d03ed000000000010004800000001000
100480000000100013842494d040d000000000004000000783842494d03f300000000000800000
000000000003842494d040a00000000000100003842494d271000000000000a00010000000000
0000013842494d03f5000000000048002f66660001006c66660006000000000001002f666600010
0a1999a0006000000000001003200000001005a00000006000000000001003500000001002d00

415

0000060000000000013842494d03f80000000000700000ffffffffffffffffffffffffffffffffffffffffffff03e8000000
00ffffffffffffffffffffffffffffffffffffffffffff03e800000000ffffffffffffffffffffffffffffffffffffffffffff03e800000000ffffffffffffffff
ffffffffffffffffffffffffffff03e800003842494d04080000000000100000000100000240000002400000000
03842494d0414000000000004000000023842494d040c000000000790000000010000007000000
03a0000015000004c200000077400180001ffd8ffe000104a46494600010201004800480000ffee00
0e41646f626500648000000001ffdb0084000c08080809080c09090c110b0a0b11150f0c0c0f1518
131315131318110c0c0c0c0c0c110c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0
c0c010d0b0b0d0e0d100e0e10140e0e0e14140e0e0e0e14110c0c0c0c0c11110c0c0c0c0c0c110c
0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0cffc0001108003a0070030122000
21101031101ffdd00040007ffc4013f0000010501010101010100000000000000030001020405060
708090a0b0100010501010101010100000000000000010002030405060708090a0b1000010401
030204020507060805030c33010002110304211231054151611322718132061491a1b142232415
52c16233347282d14307259253f0e1f163733516a2b283264493546445c2a3743617d255e265f2b
384c3d375e3f3462794a485b495c4d4e4f4a5b5c5d5e5f55666768696a6b6c6d6e6f637475767778
797a7b7c7d7e7f7110002020102040403040506070706053501000211032131120441516171221
30532819114a1b14223c152d1f0332462e1728292435315637334f1250616a2b283072635c2d244
9354a317644555367465e2f2b384c3d375e3f34694a485b495c4d4e4f4a5b5c5d5e5f55666768696
a6b6c6d6e6f62737475767778797a7b7c7ffda000c03010002110311003f00f554944bda0c1201f32
97a95fef0fbc24a649288b2b26038127cc2924a5249249294924877d86aa5f606ee2c05db6626125
2442b7269a9db1ce9b0f15b4173b5fe437ddb74fa4a028c8b0875f6c0ff004554b471f9d67f3afdaefd
cf47fe2d16aa6aa5bb6a60603a981c9f177ef24a45bb2ed0363450d235367b9e3cbd361f4ffb5eaff6
13b712ae6d9bddfbd61ddfe6b34a99cff83623a0bf2aa61783b88aa3d5734121b2377bbfb3eef6a4a
62319d58fd05af64080d7936379fcef53f4bfe6dc93aec8a98e75b587b5a09dd59d6077f4ecdbb7fed
cb15842c9318f6cfee3b8d7b24a7fffd0f4e6d34bedb8bd8d71dc352013f45a861f8648fd0015b9db1
b6960da5dc0fe56d73bdacb36fa6f46639ad7dc5c401bc093a72d6055ac65f6d0cc53596b9af66eb0
105a1b5b9b66fe777bf67d1dbffa51252ba8538edc63b58c0e0ea8e8048fd233556df6d4cfa6f6b7e2
40fcab12cfab1d0701f7f51c4c36579790eac5d6cb9dba6d658e259639f5ef73ff00c26ddeb6db4d4cf
a0c6b7e0004948bedf844868bd8e73b401ae0e27e4d94eecca9a276d87c855613a7f611d249481b
92f7303db45ba890086b4ff9af7b76a8b6dc9b443b1b635c21cdb1ed9d7b455eb37fe9ab2924a68e
1bb38d7e8914b7d09a9c77bec20b7f9bdc1cca7e953e9d9f4d580dca8d6c64c6b0c3cffdb8984579
8449fd3b240edbab30efedbd9633feda47494d7f4320d81eec9706811e9b1ac0d27c7decb2cffa6ab
edb287dcc22db5d6926a204b4ef0c0779635adadcc737fc27f8356733ed5f6777d923d696c4feeee6
fabb27dbeafa5bfd1f53f47eb6cf57f46b3312efad01de965d38ef2d80eb9848692771f656e877b7d9b
bddff00a32b494eb515fa54d754eef4da1bb8f781b65472c39d486b4904beb060c69bd9bbfe8a174e
1d4032ff00b796977af6fa1b63f98ddfabeedbf9fe9a2648739f4347d13682ed6346b5f60ffa6c624a7ff
fd1f47cae9f467b6da6fddb43e46d307dd57a0f1a877d3aadb19ff99a1e1f43ab11ad6b722f7b6bfe6d
af7ee0d00835c6fdff00436ffab127752e985bebfdbdb8ecb4c439d5b7dc3d9b48bda5ccb3d9fcd3bfc
c507751c16ecddd49e0584863e2bda7696b5ce0ff004366c6ef67e93f9bfd2312524b70eac2e96dc5
a4b8d55bd9b37b8bc806d6bf6ef7fbbd9bb6b168aca7e4f4eb88a9fd4f7fbdb356ea81243a581db6b
6d8d6bdf5ed5aa9294924924a524924929065cb6b6dad9269707c031edfa36ff5bf44e7a3a6735ae
696b84b5c208f22aa53926ba85258fbafabd8e6b3dc601d8d7becb3656ddecfd2fe92c494dc517d8c
ada5f63831a39738c0fbca0819967d37368691c33defff003de057ff0081589ebc4a18e16106cb071
6584b9c0c47b377f37ff5ad89296fb517c7d9eb75b22438fb19e5ef7fb9dbbfe0996a765573ac6d973
c7b24b6b60d013a4b9eef7bdcd6ff00c5ff00511d2494ff00ffd2eedd859ced93818b0cf7ed076b7d5d
bb37bb68f737e9b3e8fd07fa9ff0689563e6bb6b723a7e206b4977b48305c0bddb77307b9d732bf7ff
006ffc1ad6492538afc7eacf7c7d830c35efaf7bf719f4db635ef96b58ddcf6b1bea319ea7a7ea2bad3
d5bed551736afb310e17004ee1abfd37b7fb3e96fafdfff00a315d4925292492494a492492522c9c9a
31687e4643c574d625ef3c01e261099d53a6bd8c7b72aadb60964bda09fecb8ee4ba9ff0041b3f9af
cdfe7ff9bfa4dfa6b94a7e9d1ff257f34ffe67f98fe747d1ff0085ff0045ff00a1a929ea0759e97ea8a4e4b
1b63982c0d79dbec76cd8f97edfa7eb33d3fdff00d27fa2b51aacfc1b9c194e455639dab5ac7b5c483
3c6d3fc87ac1cdfe7ba7ffc99fcd33fa47f39f47fed27fc0fee7fd7147a3ff4aa3fe4dfe747f41e7f9bccfe7
3fe13fd1ffed45253d3a4924929ffd93842494d04060000000000070005000000010100ffee000e41
646f626500644000000001ffdb00840004030303030304030304060403040607050404050708060
6070606080a0809090909080a0a0c0c0c0c0c0a0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0
c010405050807080f0a0a0f140e0e0e14140e0e0e0e14110c0c0c0c0c11110c0c0c0c0c0c110c0c0
c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0cffc000110800b4015e030111000211
01031101ffdd0004002cffc401a20000000701010101010000000000000000040503020601000708
090a0b0100020203010101010100000000000000010002030405060708090a0b1000020103030
204020607030402060273010203110400052112314151061361227181143291a10715b14223c15
2d1e1331662f0247282f12543345392a2b26373c235442793a3b33617546474c3d2e2082683090a
181984944546a4b456d355281af2e3f3c4d4e4f465758595a5b5c5d5e5f566768696a6b6c6d6e6f6
37475767778797a7b7c7d7e7f738485868788898a8b8c8d8e8f82939495969798999a9b9c9d9e9f
92a3a4a5a6a7a8a9aaabacadaeafa110002020102030505040506040803036d010002110304211
2314105511361220671819132a1b1f014c1d1e1234215526272f1332434438216925325a263b2c2
0773d235e2448317549308090a18192636451a2764745537f2a3b3c32829d3e3f38494a4b4c4d4e

4f465758595a5b5c5d5e5f5465666768696a6b6c6d6e6f6475767778797a7b7c7d7e7f7384858687
88898a8b8c8d8e8f839495969798999a9b9c9d9e9f92a3a4a5a6a7a8a9aaabacadaeafaffda000c0
3010002110311003f00f7f62aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb
15762aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb15762aec5520d5fce7e
5fd1aeff45cd70d75ad98fd54d22c637bbbe68eb4e5e8c219956bfb6fc53fcac55032cfe7bd718258c
1079634e6e61eeaf385eea446dc0c7046c608ebd6b2492fbc58aae1f97da24ec2e355b8bfd535352
cc9a8dcde4e93c6cebc58c22068921a8ed0a262aa6fe5df36e95193e5bf3235c2a47c21b1d7e217b
1721dcdc4461b8a9e9c9de6f962aa83ccfe60d3411e63f2ddc2a205e57ba338d4e024fdaa46162b9
dbfe3037cf154c748f37796f5db99ec74bd4a19b52b5a7d6b4f6262bc8790a8f520902c8b5edc9715
4eb15762aec55d8abfffd0f7f62aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8a
bb15762aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8aa1ef6facb4db692f751
b98ad2ce11ca5b8b8758a245f1667200fa7156349e75975791e1f2869371aba23706d4e6ad8e995
a13559e552d301d395bc532ff958aad4f2c7987587697cd9aec9f556e0c9a3e8bcec2d90a8f883dc2
b7d626a9ebf1c4847fbab154ff48d0f47d02dbea7a2d8c1616dd4c76f1ac7c8f8b102ac7dcef8aa618
abb15762aec552dd5fcbda16bd1fa5ad69d6f7c80514cf12bb2f7f8588aafd0715496e3c9fa95a132f
95fcc77ba639915cdade1fd2b64557629e9dcb7aa8a7fe2a9a3c5551754f3ae9cdc753d120d52df99
02e748b809288e9b335bddfa601f649a4c557e9be7cf2cea328b492e9b4dd44bfa234fd562934eb9
3278225caa7a9ecd1f353d9b1564befdb157ffd1f7f62aec55d8abb15762aec55d8abb15762aec55d
8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb15762a90ea7e72
f2ee957674e96efeb3ab0a0fd19628f7978390a8e50c01d901fe670abfe562a97c577e7bd7e357b7b
487cab62fbf3bfe37da971e5fef985fd08c95e85a59b8fed478aabd8790f43b6b95d475433ebdac233
3c7a86aee2ea48cb9a910c7c562840a6c228d31564f8abb15762aec55d8abb15762aec55d8abb15
50bcb2b2d4206b6bfb68aead9bed433a2ca87e6ac08c55e7fae7943cb761ac796748b58658749d5
6f2e2def74359a43a64d045657174395ab168c719628d87009e06aa597157fffd2f7f62aec55d8abb
15762aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb157
62aec550ba86a5a76936ad7daa5dc36364940f71732243102761567206f8ab1a7f3addeab14abe4
bd1ae3589406115f5d574ed33d40dc6866994c8ebdf9410cca7c7156c795f5ed6a3ff9db75c91a070
44ba568dcf4fb5219389479831b97a54eeb2c40ff00bef154fb47d0f47d02cd6c344b186c2d100022
b74080d052ac46ec7c59b7c5530c55d8abb15762aec55d8abb15762aec55d8abb15762aec558ce
a9e8cfe78f2edbb1066b7b3d4af557b800db41cbfe4b118abfffd3f7f62aec55d8abb15762aec55d8a
bb15762aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb154975af34e91a14
d159dd34b3ea9708d25ae9b6713dd5dcaa9b1611c41885aedcdf8c60f56c5529f5fcfbe60afd56187
ca9a6b70293dd84bfd5194d0b0f411bd084d3605a4b8f78f154559f9134186e22bfd4d65d775588ab
477fabbfd6e44752583448c0450904f58638f1564d8abb15762aec55d8abb15762aec55d8abb1576
2aec55d8abb15762aec558c2c0b3fe61c9745ea6c74548953634faedd3313e22bf565f9fd18abfffd4f
7f62aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb1576
2aec55d8abb1561fe6b8534cf30f96fcda88794370da2ea122b045fa9eaa5550b83b371b94b7a7f2f
26f7c559862aec55d8abb15762aec55d8abb15762aec55895feb1afeb5a9dd687e54f4ace1d3e458
b54d7aed0ce89215590c16d0865f5240ac39bbb08e2e9c656e48aab771a079c6da169b49f35c93df
72e621d5aced66b46a7ec52d63b69101fe60edc7ad1ba62a98796fcc275c8eeadef2d5b4ed734d90
41a9e9aec24313b2f2474700738a45f8a3928390d9955d5d1554f315762aec55d8abb15615e5a6b
9b8fcc1f3cdcca6b6f6ff00a274eb7f6f4ad5ae9b7f9dd62aff00ffd5f79eaaef16997b246c5244825646
1b10421208c5585797bf2fbcbf79a0697777571abcb7373676f2cd236b9abd5a4789598ed77b549a
ed8aa623f2d3cae3fdd9ab1f9eb9ac1ffb1bc55bff00956be57ebcf55afbeb9abffd95e2adff00cab6f2c
7f3eabff71bd5ff00ecaf156bfe55af95c9af3d56bff6dbd5ff00ecaf1569bf2cfcaac0866d5483d47e9bd
5ff00ecaf1571fcb4f2b1eadaa9a7fdaef57ffb2bc558df9efc9ba3f97bcb736b3a44faa5bea56b7360d
0cc758d5250395f40ac0a4b72cac082410ca4118abd4f15762aec55d8abb15762aec55d8abb1576
2aec55d8abb15762aec5528f3568a7cc5e5cd4f454758a7bcb778eda771c84570072865a77e1205
7ff00638aadf29eb2fe60f2de9babccaa977710afd7624af18eee3ac73c62bbfc12abafd18aa738abb
15762aec55d8abb15762aec550575abe9363fef6dfdbdb0e9fbe9923dc7fac462af3df22fe60791f4ff
0028da5c6a3af69b6b797735ddddd47f5988c8d3dcdd4b233155624924d7a62af41d2359d335eb1
4d4b48b81756321658e650caac54d0d39007ae2ac784a60fcd136f1aa85bed07d5b86a5199acef0
2c75f1a0b87c5597e2aec55d8abb15762ac1f47d5e18a0f306a814859fccb1d89f12e27b4d3abf2e4
b8abfffd6f78eb1ff001c8d43fe61a6ff0093671542f953fe516d12bff56fb5ff0093298aa6f8abb15762a
ec55d8abb15619f9abff283df7fcc469fff0051f6f8ab33c55d8abb15762aec55d8abb15762aec55d8a
bb15762aec55d8aa8dcde5a59a7a9773c76e9b9e52baa0a0ebbb118aa4b79e7af24d823497be63
d32045201325e40b42dd07dbef8ab06f297e66792edfcc5e66d02cf557d42dda65d6f4f7b482e2f10
c37c293a466de27af0b88e476a7fbf93c715656ff00985a7fa822b4d1b5dbb24850f1e917b1a54ff97
3c712d3deb8ab7379bf5c68d5b4df25eaf74cc18fef64d3ad00a74afad76adbff00ab8aa1ac35ff00cc
cbede6f2659698b503fd335a0ed4f1e36d69303ff078aa2661f99d337fa3be8366953f6d6f2f0f1ec36
6b6df15547d27cf97109497ccb676d2103e3b3d2c82a7bd3d7ba987deb8aa9db794fcc9cb96a1e76
d52e07fbee1b7d36d93dbecda337fc362aa373f96f617e7fdc96bbe60ba4e8635d5eeed10ef5dc59b
c15c555edbf2cfc956cdcbf46b5d39dcb5f5cdd5f1e94eb752cb8aa2adfc83e46b5712db79674a8a5

417

041f512c6dc3d46e0f2095ae2a81fcb486d6d7cad169d022a4da65d5ed8dcc6aa10a4b05d4808a50
6c410cbe2acac3638ab30c5588471addfe674d731386fd17a225bdca8dcabdfdd191013d8f1b7269f
e50c5597e2aec55d8abb15762af355366bf974fa906ff477d67f4bb49534afe9e175cbe5b74c55ffd7f
78eb1ff001c8bff00f9869bfe4d9c5509e53ff945b43aff00d5bed3fe4ca62a9c62ac6fcc5e60d42def21
f2ef96ede3bbf32ddc46e01b90e2ced2d837033dcb26f426ab1c4a43ccc1a8551649115429f2d79c5
9bd76f3adc2cf5e5e8c761622d3afd9e0d1b4b4ff009efcbfcac5511a16bfa97e927f2cf9a2186df5e48
dae6cee2d797d52fed5182b4b0872591e32c826858b142ca559d18362ac9b1568903726831561bf
9abff283df7fcc469fff0051f6f8ab33c55d8abb155af24718e523045f16200fc7154aa6f35f95edb97d6
35bb088a6ee1eea15a0f7abe2a95bfe6679052636e9e60b39e71d62b693eb2dd2bd210f8aadb9fcc
5d0618d65b6b5d5b500e392fd4748d467dbb6eb07115f9e2ad45e78bbba4e763e52d766de804b6f
6f667a56b4bbb884d3e8c55d1f993ce970488bc9535b8a6c6f751b28c124ff00cbbbdc1c554f50bafc
d69aaba4697a05a0a8a497b7f797069deb1c56918f97ef3155f6765f99d3460ea9ace8b6ce5774b2
d36e65e2dfebcd7a2a07fa831577f863ce134bcee3cef771c5b562b3b0d3e2141d779a19ceff003c5
5bb8f22497a8897de69d7a5e3524c5789645abe26ce284e2ab93f2e7cb5e9b4576da95fab105beb
daaea3735e3d3692e08fc3155287f29bf2ca19beb23ca5a54b73527d7b8b48ae24ab1a93ce55735
27bd71564d69a5697a7af1b0b2b7b55ad69044918ad29fb2062ac7bcd55d335df2df990332c31dcb
6917f460a9f57d502ac6581eb4b98e00be1cdb156598abb15762aec55d8abb15762aec55d8ab13d
6bcbbae5b6a171e61f255dc16dabdd04fd21a6ea019b4ebd3185457731832452aa0e0258f95542a
c91c9c538aad5e5cfe645d47141a7e9da469b2bc8a2e2f6e6f27bd58e1afc663852de0e6f4fb21a48
d7f9bf97154e341d0adf42b59224964bbbdb990dc6a1a85c10d3dcdc300a5dc8000d942aa280888
1511428c5535c55d8abb15762aa73cab0412cefb2c48cec4f4a28ae2af3bfd0e7fe547fe8ce67d6ff0
00ffabea7ed7aff0057f5f97cf9ef5f1c55ffd0f78eb1ff001c8d43fe61a6ff0093671542794ebfe16d0ebd
7f47da57fe44a62a9c62ac6740b78c799fcdb78541b87b9b3b7f53bfa30d8c2e8bf20d2c8dfecce2ac
9b15619e789bea7ac7922ee3004efae8b3f52809f46e6c2ec3afc98aa9ff006231579bfe75fe6c7e7a
f94c4b67f95df94f77af1059575cb99a0b8b7dba3476769334edff003d0c5feae2af813cdff9dbff0039
29379eb43bbfcd2bdd5b4a82c755b1bd1a25edb4da4e99cad6e12540f0471a0750456ac246f9e2af
d10f3fc3f9ad3f92ef9f5bbef2f5b5b19aca91d85adedcbf237f6fc3e396e211403afc1bfb62ace6e3cbd
e76ba9391f393da467ac765a6daad07b1b9fac7e35c5550f93efe680437be6cd6a76df9c88f696ac4
9ff986b68c8fa315518bf2e345514bad475bbdfb35fac6b5a911f0efd12741f3db7c550f27e4efe57dc
49eb5f795ac35096acdcf508bebc7939ab1ff0049326e715645a77963cb5a4208f49d1ac6c2314a2d
adb4308d8506c8a3a62a9a05551c540007403618ab78abb15762aec55d8abb15762aec55d8abb1
549fcd7a05bf9a3cb9a9e8172014be81a3466a8e130f8a29011b828e15c1f15c55af29eb2de60f2de
99abc9c45cdc40bf5b48f754ba8ff00773a0ff524575fa3154e715762aec55d8abb15762aec55d8abb
15762aec55d8abb15762aec558cfe62ea53691e41f33ea56c09bab6d2ef1edc2d3919bd0611815e
e588a62a98fe891fe1afd05514fa8fd4ab4dbfb9f4ba62afffd1f78eb1ff001c8bff00f9869bfe4d9c5509
e53dfcada1f6ff0071f69b7fcf14c5538c558ce833aaf9abcd762f55b8f5acaf154822b04d671c2ac3c7
e38245ff00638ab26c558779ce2faeebde49b08a451751eaefa898c9f88db5a58dca48c075a069a3
5af8bae2acc71552b8b6b6bb88c1770a4f0b7da8e550ea7e618118ab11fcd4ff00941efa9ff2d1a7ff0
0d47dbe2accf15762aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb15621e5
82fa4f99fccbe5996556864963d774b880e252db51e4b32781a5cc52c9ff003d971565f8abb15762a
ec55d8abb1579f7e6ff009a354f2de87a2d9e8b37d4f51f33ebda5f96e3d440566b44d4a6e32ccaae
194b88d5847c853d465c558079dfcc7e66f24f9be3f26e857ba86a36929f2eead630cf75ea5c73b8d
6c69f756af73704b186746434918f0224e3f0fc18aa751fe74694ba9457dab69da9699a8c5617d6f7
3a63ceb359a5fda6b16fa5bc25610e5e4f5a5431ceaa47a0edb72f8715647a37e67dc6bcb147a6f9
6afa4bf89e1fd2b64e45bcb6f6f717f2d8a5c20b81119626f424b806884dbaf2a732b1e2a91eabe73d
7fcc1ff38f7e60f3c6fa26ba347d4efecdf4e9d9de192cc4c616472a95358c5548a1efd715467e556b7
a9df799bce3a35ddcea1fa3b4e1a5c961a76b6796a111bab7769a50c4b335bcaca3d22ceffbc49d4
710b4c55ea78abb15762ac63f301209fcb3258dc8e50dfdde9f64ebd2a2e6f61888db7dc362ac9f15
7fffd2f78eb1ff001c8d43fe61a6ff0093671542794ffe515d0ffed9f69d7aff007298aa718aa41aff00971
f52b9b5d6749ba1a6f996c1592d2f8a7ab1c90484192dee23e4bea44e541a06564701d194f555062
fbf3145b7a2da2e92da8529f581a94eb6a4ff00371faa1907fabff0f8aa2740f2ddcd8dedc6bfaede8d4
bcc9791ac124e91fa36d6f6ea79082d6325995397c4e59dde46f899a8a888ab22c55d8ab0cfcd5ff9
41efbfe6234fff00a8fb7c5599e2aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8a
bb15762ac43cd923e8faff967cca91c8f07d65b44d43d20085b7d54a08a47ff00252e23857fc912362
acbf15762aec55d8abb15762a93f9a3cb3a679bb469b44d595c4123c73433c2de9dc5bdc5bc8b2c
33c2f43c248dd55d1bc462ac7aeff2c34cd4a7bbd4b53d4af2eb5eba9b4d9d7556f456487f42cff59b
58e28d62f4c46252ceebc0fa8cedcbf678aac3ef3f297fc43e6cbeb2beb6bcb0f2d5b6957968bae24f
0a5f5d6aba9ea36bab7d7ad9a2a98de19a026b2227170a111a3c559541f953610eb3a67983fc43a
db6af6708b7d4ee7eb68adab44939b88d6f4244a088e42dc043e8854678bfbb664c55123f2cb491f
97fa97e5b2ea17c340d4a1bab46979c26e61b5be662f0c4fe97100076556656703f6ab8aa3fcb5e4
8b0f2e6abaa6bdf5cbad4b5cd5e2b4b6bbbebd688b0b6d3d5d608635863891514c9236cbc99dd99
98e2ac9f15762aec558bf9ce05bc6f2e59b1a01610000026060f002220574d464301000000000001
000000000000000a00000000200000c8f10000c8310100935ab49695a54da2c9763f187156518ab
fffd3f78eb1ff001c8bff00f9869bfe4d9c5509e553ff003ab6887fed5f6bff00265315790d879ebcdefe4
0d1ff0038e6d559ed755d52c966f2d7a50fd4e3d2351d492c1234609eafd62349565329938bc8ac9

e9aa30e2aa0bc9bf9d4f79e42b4b6f38cfab59f99de092fd35882dacffd3ad6df5a5b095ed94314e31
9921498491c6de949ea461bed62af455fcdbf2e4ba95c697696f7575347235bd9c90ac4d15d5c477
9f507851bd41c5d653feedf4f947ca55e48ad45513e5ef3dddebfe6db8f2fb68b73a6db41a541a9b49
7a162b859a5bcbab4689a30c76ff462e8e2aaeadc81e34aaa906abf99b369bf9cfa3f931ee6d7fc3b
a8c32e973425916ee3d70c035080905b97a6f6e8e8b41fde918abd5315619f9abff283df7fcc469fff0
051f6f8ab33c55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb15762aec5528f34
e8dfe20f2eea7a30631cb796ef1c12a9e2639a9589c11d0ab856fa3157795b59ff0010f9774dd6485
49aee047b9890f211dc01c668ebe2920643eeb8aa6f8abb15762aec55d8abb15762aec55d8abb15
762aec55d8abb15627e638e5b8f3879322404c76f3dfdf4a47611d9496e2bed5b818ab2cc55fffd4f7
8eb1ff001c8bff00f9869bfe4d9c550be54dfcada21ffb57daff00c994c5587db7e51dadb4569a10d62
e1bc8761a8aeb167e5a31c7c5678ee3eb7140d3d39b5b473d248e1a72aaaa348d12f0c5587ebbf9
3e743f2fdae85a37d775bbb3cb4ad06e1a38563d36c6f3528352ba370e194b733001ea84e91a271
ab1675593cdf93ad2586a3a5c1e6ad4adac1b507d67cb51c496dcb47be96ebebacf1b3467d65129
70a93f3558a478bfca0ab26d1fc9b3697e631e659f58b9bfbe974b8b4ad404e908170d6f712dc24ff0
2af020cf22f04a2712bfcb8ab1fd4ff286d755d2c4371aab8f312eb89e618fcca2d6dcdfa4b05dfd6a28
549520468a16de9fef81c3a9e58abd2b15619f9abff283df7fcc469fff0051f6f8ab33c55d8abb15762a
ec55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8ab0ff0029449a2ebfe65f2c22a456
c2e575bd3e256a9f4355e4d3fc27a7fa524edb7f38c559862aec55d8abb15762aec55d8abb15762a
ec55d8abb1541ea5aae97a35a9bdd5ef60b0b30429b8ba95218f93741c9c8153d862ac79fce973a
923af93f44bad61f8b7a77b720e9ba773078d0cd3afa8c3bf28619971557d2744f3049ac43e61f335f
dbc97505b4b6b6ba669f1325ac3f5868de56324accf2b7ee942b718942f2fddef8ab26c55ffd5f78eb
3ff001c8d43fe61a6ff0093671542f953fe516d0ffed9f69ff2653154df15762aec55d8abb15762ac33f3
57fe507beff988d3ff00ea3edf156678abb15762aec55d8abb15762aec55d8abb15762aec55d8abb1
5762aec55d8abb1561fe6812e93e67f2cf99a29163b4799f43d557872678751e3f566e5d470b948d
47b4af8ab30c55d8abb15762aec55d8abb15762aec556bba468d248c11141666634000ea4938ab
153f983a35e4f3d9f96a1b8f325e5b48b0dc2e9681ede391872a3dd48d1db8a0fb404a5d7f971553f
aa7e606b8c8d7b7b6de58d3990fa96ba7817fa8723503fd267410a507502de4f6931547d97923cbd
693c77b716edaa6a71b2c89a86a9235f5c2c88281e33316111ff008c4a83db156438abb15762afffd
6f78eb1ff001c8bff00f9869bfe4d9c550be54ff945f44ff980b5ff0093298aa6f8abb15762aec55d8abb
15619f9abff283df7fcc469fff0051f6f8ab33c55d8abb15762aec55d8abb15762aec55d8abb15762ae
c55d8abb15762aec55d8aa4be6ed15fcc3e5ad4f47864315d5cc0df54994f168ee63fde40e0f62b22
ab7d18aaff002beb89e65f2ee9baf242f6c6fedd2692d6514921948a49138fe6470c8dee3154df1576
2aec55d8abb15762ac6757f3ef96748965b2174da96b11a96fd0fa5c6d7f7cdc7b7a30062bf37e2be
2d8aa1d6fbcfdacb29b2d3ad7cb960dc5bd7d4dcdf5f1465a91f56b66589181ee6e24ff005315741f9
7da5cfc66f345d5d79a2f01625b5570d6a39f50b67108ed801d16b133d3f6ce2acae1861b78920b7
8d6282301638a350a8aa3600014000c557e2aec55d8abb15762afffd7f7c5d5badddacf6ae4aacf1b
44cc3a80ea56a3efc558b59f96bcdf61636ba7db79a23582d218ede3ae9b192562508a4d65eb41b
e2aacfa279d5c2f1f354694ea574c8b7dfbf294e2ab0e81e783ff004d7a8ebb8d320aee6a3ab9e9d3
1577e80f3bd29fe2f1f3fd196f5ff89e2ad3797fcee5683ce454f761a65b57f134c55aff000f79de94ff00
19357c7f46dad71577f877ced4ff0094cdebe3fa36d3dfdb15416a3e45f32eb76bfa3b59f384d73a6b
cb04b3c0961690b38b799260bcd549152801a76c559de2aec55d8abb15762aec55d8abb15762ae
c55d8abb15762aec55d8abb15762aec55d8ab12f2a11a66bbe64f2c37c2b15d0d62c159c3335aea
bca47217a802e56e07dd8ab2dc55d8abb1549b5af367973cbad1c7ac6a50db5ccc42c1695325cca
cdd0470461a473b7eca9c5528ff1179bb599027973cbc6cac5e32c356d7d8da80fca802d947ca76d
b7fdefd5f156e4f24dd6b143e6ed72ef54884824fd1d684e99a7ec3ec3476edeac895dca4d34aa7ba
e2ac8f4cd274ad16d16c347b1b7d3ec5092b6d6912411027a90a800df154662aec55d8abb15762a
ec55d8abb157ffd0f6b683e7ef2ff99352fd1ba5fd65cc914f716778f6f2259dd436b32c12bc1391c1c2
bb014af223e30387c58ab28c55d8aa57e61f3069be57d227d7357774d3ed8c6b33c68d2b0334ab1
2fc2a09a72715f01be2a84d5bce7a0687e63d0bcabaa5c35beafe65372ba2ab2318a792ce2f5a58c
480715709f1056a72fd9c556691e77f2eebbe66d7fca3a55c3dc6b3e58fab0d69446e22824bd8fd58
a3f5080ace50722149e3fb5438ab22c55d8abb15762aec55d8abb15762aec55d8abb15762aec55d
8abb15762aec55d8abb15762aec55d8ab0ef32c70e91e6ef2d79a78c69f58793cbda84e41e661bfa
496c2a3fe5e628d057fdfade38ab25d4f57d2b45b46bed62f60b0b24fb571752a4318ff0064e40ae2a
c6bfc7375aad13c9da0de6b08f4e3a95c83a669a030a86135c289245f78219862ab60f2ef9cf59854f
9b3cc1f5357044ba679715ad22a16a806ee5e570481fb519b7ff57154ef44f2a7977cb8f71368da74
36b7778435ede005eeae180a0334ee5a4908ff002d9b154e315762aec55d8abb15762aec55d8abb
15762aec55fffd1ec1652799f406d4a5f2569fad1f236a16035dd57ca725a4c350d12fe5d4ed5b50b3
d3a6e08c45c40f7522dbc6cd478f9c1c565418aa71afda6ad731cebe5bb7d7a1d226d127b9f204f32
dea4f6de6037d23a892290078d0ab43e8a5c8555b5499197d3e431562e21f3918b5cd63ca779ac5
e6b165a9f996d3cd1c24bcbc0da643ac208a2b48e72d1b4b1c625faba4347e1eac7df8e2aabe62b3
bf1e5db8d18da799b5dd0e7b28af3c9b2cda7deac82e5757335d44d6f1a0922090b442d92e915fea
e922afc3f695677f9efa3eafafdef97dfcad04b279b743b4bfd7bcbce2297d31a8d94b673c50bc9c0a2
1b88e39e00aff6b9362ac1b57b7f34693aaf9a64b7b2d5156e66f2b5e79be4b4b39aea492ca496f64

419

d4e38384645cfa0d7112cb1c1ca4f476a62a8cbbd0b515b98544be66b9b7d3edfc9d1d85d5e35f45
76d0b6b9751debba5b1550ff517413065f55202bebf193962a81bdd33cfe2df5dd374eb6d557eab67
aadafe5a4b5b80b6dab5beb975f560c643515b66b6f4a59be06b54917994e63154eef344f3068be5
7d47f30f4db7bcbbf3b68de6cbc9d2d751b8ba8e2bbd3e6bf9ed1628e3b87e022f46ebd580aad2a9
1f1fb23157bf685a5c7a268ba7e911b164b1b78adc3b33396f4d029259c963522b538aa618abb157
62aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb154b3cc1a25bf98b48b9d1
ee6696da3b80856e6d9952786589d648e48cb2b00e8eaacb5522a3a62a9669de41f2d58dfc5ac5c
5bbeabaec01843ab6ab235f5d461cd5844d3122107f96158d7db1564d8abb15762aec55d8abb157
62aec55d8abb15762aec55d8abb157fffd2f6cd879df40ba0925ddfdad847797525a68eb73731472d
efa330b62f123302434df0201cb97c07f6c0c552ff0032fe62695a6dad8ae837561aa6adaadf9d1f4f8
5eed63b637cb6f25c98e5963594a7c11ff21dd93f9b1559e5cbaf21f92b4dd4604d76d6da37bfb9bfd
545f6a31cbe85fdf33dcce85e461c41612385dba3f11418aa7f2f9bbcab00b969f5cb0896cfd2fadb49
750a08beb26917325871e6764afdaed8ab93cdbe5692dec2f23d6ac5ed3556f4f4c9d6e6268ee5f9
88e90b06a39e442fc3fb478f5c551763ace91a9cf756da75f41777362c12f21825491e166ad03aa92
56bc4d2be07c31542379b3caeb15d4edacd9086c5d61bc7fac4748a49090aaff16c58821477a62ab
d3cd1e5a959123d62c9da436c9185b888966be52d6c051b7f580262ff007e7ec5715623e6af377e5
4dcdb5a6bdaceb76b7f6be5fbfb268d2cef0cf1c77ba84c2dad0cf0dbc855c190d63f555951d3d45a3
47c82acc2e7cc9a159eb169a05e6a10dbeb17f1b4b61693308dee150d1bd22d40ec3a9552580f8a
94c552ef367996eb449747d2f49b686f35fd7ae9ed34e82e6568201e85bcb752c923a248c1552223
e146f8d931542f93fcfd65e6d169e95bb5b1bfb05d4acc33720ca927a17319341f1dbcdf03fec90c8c
a7e2f85565f8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb1576
2aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55ffd3f40e91f975ad4d6be4ff002d8b
514f2b695aff0097efb5e731096d6e2ed523b49a38dc8918b2c6b3725fe753cab5e2aa33cbde48f36
587f852fe7f29dae9faad9ea9652798a5b4d405ccb711d869575a58ba2f371057f7c862887ef3d207
9d1e898aa53a6fe57f9b21b1f2c5aea3e55b196ff41d5b498352d505f0b99350d374837216e82cf40
8b49cb883edfa8f27d950a5d569ff002a3cda9a3df6953f97ec6ff52b4d4112cfcc2d79ca7bfd324d76
1d5e9e8c94483d35565950f2e72aafa5f03571546f97fc81e7ed33cd77b7d73a1d85f79775cb8bf82
7b2bfb98de3d3235d72eb56b5bb8a2559165f556e0728c7a6f1cf0c46bc7e3555947e58f92b5ed0e
d6fadbcc3a6db58ea91598d147982def25bcb9d46081e4686e383d0402923398bfdfcf252894e6aa
43a4f92ff0030adf4ff00295fdf687a743acf91ae2dad5adecee95df5cb1b4b3bab113191e38c44545c
fd62086527849eaa975e5c8aa80d2ff293ce5a2dce97696b6d652e9c27d0b50bb97eb4ca2d3f44eb
17b7f2dac286225d562bc5481be05fdd90dc3e1c552b3f93be7c3a369d6b6f616905d69b6360a223
74aa925ce9fe688b58280a2b503408d4723fbc6e34fdac55ebde7ef2d6bbe73b587cb70c5a641a0d
ca16d4f51be88df5dc2e365167032ac6b28eab7123fee8d0ac4f8aa0f5bf255fe9d0f92b50d08dc6bb
a8f926491634d4aeeb797b6d73652d94864b89051a5aba4859e9cb8377a62a95791bc9b75a06b7
e5ad31a4690f95746d463d52e63522da4bfd7aee0ba3146cc01609e8c8dd2a15a3e5bb62af57c55
d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb1543cd7f636d3456d71731437139
a4114922abc86b4a2a9209dfc31575a5f595fa349637315cc68c51de17591438eaa4a93423c31544
62aec5547eb56df59fa97ac9f5c31fac2df90f57d207897e35af1a9a57a57156a0beb3ba89e7b6b88
a68636649248dd5d55d3ed292a4804771db155d6d736d79025d5a4c9716d20ac7344c1d1874a86
5241c555715762aec55d8abb15762aec55d8abb15762afffd4f7f5315762aec55d8abb15762aec55
d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55e33
f9b51ea4df9abf943268d6d6573ab25cebc6dd751778a1006984b1e71c72b0229b51715607e5bf3a
f9b7cb915e795bcbb6ba5586b973aaf9af5ebcb8b89d2df4b67b0d716096dc492a2b32f09199d954
4aabe9b74ae2a9d79abf387cdd657b7967a06a36132cf75669677af6e258218a6f32c3a2c8891fab
1c8e52398877938837113fa5fbbc55da47e6a7e645eeb379e56925d346a3e5dd4678aeb52bb2961
0ea9a7db6a82d2495226e64158eb11f45b6ba64afc07862a8bfcb6f31dcf9c3f34b40f36dddedbdc4
9adf926f2e96d20444faa8fd2f02fa1c812ec63a7a6fcffdda9274e5c15562f7706a3a46bfe7ff002569
ef3c1e5efcce3ac6a16d7369f6ad2ff4a9e5b6d63e3ff75fad6ab6dc3fe2d2c57e2ae2a9afe5ff009ebc
cf1695e4af2a7975b4ed3b4cd2344f2ba6a2ba8c89199edb55d34b7a96b105f5247120448b8911b3
c7323f8a2a88d1bf323f31dedf44d4b50d5ed2ea1bbb1f276ad75690d82445d3ccf7cf61710ab1998
85409ea46df6bd43d787c38aa8bfe6f7e605de91a1eab65736566de64d3d6f64b6bab612c9a45c26
bf65a6490c8ab2465808eede36e6dcbd781fe2a7c2aab3ad0b5ef3dd9fe624de40d7ef12fd42c1ac5
a6aa96d15bacfa40b5682e10a2720b22df70fdaafa522e2af54c55d8abb15762aec55d8abb157fffd5
f7f62aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb1576
2aec55d8abb15762aec55d8ab1ed67fc15fe22d0ff4f7d43fc51597fc3bf5bf4feb9cb8fefbeabcfe2af1f
ef3d3fd9fb5f0e2ac67fe4067a3a7f3ff000dfa1fa625fd17eb7d529fa7bfddde8f3ff8faaff79c7f795fb7b
e2af3efcf0ff955dfe19beff0eff873fc53fa7b49fd31e9fd57eb5ff1deb3fad7d63d3fde71f5b8fd63977ad
7e3c55ea779ff002aa3ebbe58fd23fa07f49fad27f843eb1f54f5feb1cbf79f51e7f173e5f6bd3f8b9f5f8
b1554f2f7fcaacfd3f75fe15fd03fe28a4ff5bfd1bf53fafd3d5fdff3f47f794f57fbcff8b3ed7c58aa22dffe5
5dfd46efeabfa27f47fa97df5df4fd0f4fd5a8faf73a6dcabfef457fe7a62a9759ffca9dfaf687f50ff000efe
93fa849fe1bf47ea5f58fd17f173fa9d3e2f43ed57d2fddfdac556c3ff002a73ead1fa1fe1efa9fa1a7fa5
c7ea9e9fd5bd73fa3b8d36f4fd6afd569f0fabfdd7c58aab5fff00caa5e1abfe93fd01e9fae9fa73d7faa7
1fac7d63e0fac72fdbf5fa73dfd6ff008b31543f95bf4bff008fbccbfe26e3f5be2bfe17e3e8ff00c70ea39
d387c7cbd7fef39f6f471567d8abb15762aec55d8abb15762afffd900084001082400000018000000

0210c0db01000000030000000000000000000000000000001b4000004000000034000000010000
0002000000000000bf000000bf0000af4300003443030000000000008000000080fd7fe943000000
8000000080fdff6f432100000008000000620000000c00000001000000150000000c000000040000
00150000000c0000000400000051000000f4fb00000000000000000000d2010000ef00000000000
0000000000000000000000000005e010000b400000050000000240400007404000080f70000000
000002000cc00d3010000f0000000280000005e010000b40000000100080000000000000000000
000000000000000ff0000000000000000000000ffffff00fefefe00fdfdfd00fafafa00f8f8f800e7e7e700
9797970080808000d3d3d300f1f1f100fcfcfc00fbfbfb00f3f3f300acacac00707070008a8a8a00a9a9
a900b0b0b000a7a7a700727272006c6c6c00b6b6b600f4f4f400cbcbcb007777770071717100a3a3
a300d4d4d400c0c0c0007e7e7e006666660099999900e4e4e400f9f9f900f7f7f700a2a2a20089898
900b9b9b900f0f0f000d2d2d200a6a6a6008282820078787800d5d5d500f6f6f6007a7a7a00cacaca
009393930064646400838383009d9d9d00c3c3c300dfdfdf00adadad008f8f8f00eeeeee007d7d7d0
09a9a9a00bdbdbd00f5f5f5008c8c8c007575750090909000c9c9c90091919100aaaaaa00c8c8c80
0ececec005f5f5f0061616100c6c6c600ededed00b5b5b5005757570052525200e2e2e200dbdbdb0
096969600d0d0d000d6d6d600f2f2f2009c9c9c006b6b6b00dcdcdc0087878700bebebe00d9d9d90
0858585006767670086868600c1c1c10081818100c7c7c7009b9b9b00a4a4a400bfbfbf00e6e6e60
0a5a5a5007b7b7b00bbbbbb00dedede00e8e8e800888888004e4e4e008d8d8d00eaeaea00e0e0
e0009494940053535300b8b8b800afafaf006e6e6e00efefef0079797900a0a0a000e3e3e3009f9f9f
00d8d8d800959595006d6d6d00bababa0073737300b7b7b700585858008e8e8e00747474005a5
a5a00656565006f6f6f00848484006a6a6a00a1a1a100dadada00b2b2b200ababab008b8b8b00dd
dddd003d3d3d00e1e1e100cfcfcf00686868007f7f7f007c7c7c0076767600b3b3b3009e9e9e00ebe
beb00cecece00e5e5e500545454005b5b5b006969690092929200c4c4c400aeaeae00474747005
c5c5c00636363005d5d5d005e5e5e00606060006262620042424200bcbcbc00b4b4b400cdcdcd0
0cccccc00a8a8a800c2c2c200b1b1b100e9e9e900989898005151510041414100d1d1d100d7d7d
7001c1c1c0059595900555555004f4f4f003a3a3a0046464600494949003f3f3f0044444400323232
0034343400303030002f2f2f00060606000202020031313100010101000d0d0d004c4c4c000c0c0c
00030303002e2e2e004b4b4b00c5c5c50026262600040404002c2c2c002a2a2a00090909000808
08003b3b3b0045454500242424001212120039393900111111001919190043434300404040004
a4a4a003c3c3c00282828001818180050505000565656002d2d2d00333333001a1a1a001e1e1e0
0484848003e3e3e0025252500353535004d4d4d00232323003737370013131300383838003636
36002b2b2b002727270029292900161616000a0a0a00141414001b1b1b00171717001d1d1d002
2222200212121000e0e0e00202020000f0f0f001f1f1f000707070015151500050505000b0b0b000
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
0101010101010101010101010101010101010101010101010101020101010101010302010b020
1020101010b34ed250c03010102010301010102030101010b01010b0102030101010b010101030
101010101020b01030102030201010202010142b8180102010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101000001010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101040101010102010102010
101020101020101010c014cdb2f01030b01010102030b01030101040201030101010201010b030
102010c010b0301030201010b0101010201030b010101011d635c170b010b01010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101000001010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
101010101010101010101010101010101010101010101010101010101010101010103036a6193
93016b618b2d02066a01017144031721e73bab0202010d060101012251050101012205480a0b0
b010d512d270c0c2d2201233c383c0d22172d170301482d012d0d0a040b01872c0301010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010100000101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101

421

01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01014cdceaaf0b16cc1e0bacfcd0470cb89e1fc734b10f29920157d6b1810240a37eb26d890301b0
b7840387a60a08e5860178e7804c8cd334a7b5a985e56401143d8fc874ae7a220201798e010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010000010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
101011610000026060f002220574d464301000000000001000000000000000a00000000200000c
8d10000c8310100010c01011f8a010b05e87935fa84189056e893808095fc47024b2f32e58b41794
bb90c78e822040101144d01e2520112bc01c8e06e335c48eb5122e54d44ae4411a30175dd01e61
20202015ead010b01010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010100000101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010103010183d6010101cf43888a0101484d2b76420f38f28c01a1451f56
013c74dfa90192ad220102036721abf1450187d301968201012c74d69303b99544b94cba070b27d
7934a4f01010cb3459501010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101000001010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
101010101010101010101010101020102027e9c040122a3a73dbd7b863b030a849e78abf18c019
ed0833636a44da34d0199b9010103017d4872b682500ed3019e70a4a5610ae30a51d9064cb51cc
e6f0344c68bdc09010573d742a5010301010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010000010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
101010101010101010101010101010101010b01020170fe2b5978f49aafd38680c06a3d0b691a06
d4090cb6538f3924bc11a02601339c0b0401016c1cf2335091aac0014259a8ba960ae3513ca3746
6d7234b330149edabd8940301a319617202010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101000001010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
010101010101010101010101010101010101010101020104021adfc843a4e8790c52a7535c02ad
403d1b1d00970fd54f47334fdf65499f95adb60b0101025f5fca090425528a23713061b5775be05a2
5de3f3fd70c6e2b48a0464dd1b47a0ed1a9012b9301010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010100000
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010102010198d80c01018a160127a82005
018929a801abaa9a251d0301a4301d0103c81380d00101030173c7c3020125d7cf030ba6339103
3587af10c88c085b010164620e6104869a7d0e824d2d3635020101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10100000101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010

10101010101010101010101010101010101010101010101010101010101010101010101010101
010101010101010101010101010101010101010101010101010101010b010159d804013cd8640c
0104010102010202220201030102010c0102020c0b012284dc0123010390fda6010157dbb52301
0202010201030104010c22010c0501012d01010c010101010c0101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101000002020202020202020101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
010101010101010101010101010101010101010101010101010101010101010201012de6f41c03
a7f35a01030201010301010b0103040101030201010b01010101227ad00b010b51a3c90b040101
70f1350b01010101020201010401010b01010202010c0401020104030b0201010b010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
101010101010101010100000122120a010c0302010101010101040103010101030301030203020
10b010401030303030101020102010b0c0103020101010103010c01010b0102022201010301010
2030b01010101020c0103010103010201220103010102033474010c01010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
1010101010101010101010101010101010101010101010101010101010101010101010c0165910
e9a0c3484162701030201010101010101010101010101010101010b0102862903010350845b010
10c0b74525d2301010102010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
010101010101010101010101000003425b0c01010101010c010404020103010b01230101020101
03010b0122010b0101010c010b0102010101010122010322010201040103020201220101010c01
010b0101020c0104030c01030b0c0b010301010123010c03010ba72e0d03010c01010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101040
10102012201010402010302010201010101010101010101010101010101010b01031701020101
0302010101010c0c0101020b010202010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
101010101010101010101010101010100003832030e703d2302344a5b03182a5c6603675906215
88f89045180330c282b498c70620b877874020b1378850b0101032d08102701011372b00c01349
94c57380e294d366e019a1605010c6b0d0101040101040101043a690d010369290101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
010103020b020101030b0101220c010101010101010101010101010101010101010c010401010b
030b2d01010b03010101010b03020101020101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
0101010101010101010101010101010101010100006f880266b8880261f82b708761de9b023dc98
f904cad4a0203b98a5c994cd3a84cf88c5bce7c70066fe01f816502030181d297100107dd4397400
5df6714e523788301804601cb8195040129d73f0c010101010c01827d750f0a01897a010b030101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
1010101010b0b030101010101030101010b03010101010101010101010101010101010101020b
01010101010302010201010b01010101010203010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
0101010101010101010101010101010101010101010000a24e0101a20e018f45020d56484b6103
d06f01b0182e670313ed48011357b360019c5de83202095b9f37024d79010c4dc085023b8cbc430
211198bb6026fdc018f8203551917fa5b010102015db2b6260301010238adab03a060030d6d6101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
1010101010101010101010202040b0201010b0301010101010101010101010101010101010103
020204010104020301010b0303020101020c0c0301010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
101010101010101010101010101010101010101010101010000d9873c01a2120ba24e01010104d
88923b8380122011467018e9d0201010bdca403681db118012344d7480102040b0179960101045
6b13c02a9c32cb30316b303081002822b23fca70b010201010b474b96850101a4d80101820f0322
b8180303010101010101010101010101010101010101010101010101010101010101010101010

423

10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
1010101010101010102010101010c0101010301010c0b010101010101010101010101010101010
1010201010c0101010203010101010103010b01010101010103010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010000cba40105319b0119784f67
8701c3540b9c4286557114550b0ed84352412d68a901d02fbac8022d175952755a1c012d2f310b0
10c3be52d0275b71cd80112a10472670172636af42f0203010105010c5cf394010c77ae01038259
0105e209030101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
101010101010101010101010b030201010b03010c0b01010101020101010101010101010101010
101010103030b010104010b01030b01010101010c0101010b0c010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
010101010101010101010101010101010101010101010101010101010000ad130166bc3e9a607d
93c01401c34c0c2ba94ff61c976d3b3b156181b906d33076b523371b03c749241635cb9a0b01933
16a66686646a701d89935b60b6fdc0180a10b1a8848f25003010c012375c77e4401020132960103
677f0117ad74010301010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101030102010102010201010202010101010101010101010101010
101010101010101010c01020102020101010201010101010b01010201020101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010100005f9901093158c3
174267532747c941746a528f3d93723de6568c2a5935287f2ed82b01173f5a1f446b521963220101
03a7771e7d05188f69530b7798045e5302901483d70d60fb67170101c84b4b5d020303010175960
1022a8101658303010c01010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010000617202010
102230102380d013cb88c01010a27020b23010a0b222d27010123010d0404013c3838010151482
d01010c0201ab3851010148950b0b3c04016a01020b0b512d018bde6f010c040e4203010101010
c0185b622023e41017584040301010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010100000
4336e030102010c01010117222557285401040102010401010102010b0b0101010103040101010
b020402010c03010301030101050c01030102020b0102010b0b01030103045d610203010c02010
4030b01010b0db2b0039d716119ab010203010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
0101000001711b0d010102010c01030101a625a3182301230301010b0b01040b0101030b0b0501
0302010c01010101220102010302010501010102010301010203010101010b01010301010c0101
0b0101030102010c0c0101127ea15e02121c220123010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
010101010101000004010423020b030102010104030306762201030101010103010101010b0b0
10101010c030102010304010101010103010b01020c0101030201010b010c01010b03010302040
102010102010c03010c010201010222014f5001222703010b01220101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010

10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
101010101010101010101000001010122010201040202010401040201850e7b01010b03010122
02030b010101040101010c010101010104010b01020101030102030201010c010c010101010101
0b010223610b010401030b0203010103010103010101020101010205010301010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
1010101010101010101010101010101000003020b01010323010101040102010101a6b1250c010
10101010301010201020c01010c0b0b010103010b020103020102010c0103020b0302020101010
10c0103030b010192fa4001030101010101010c0102030b012d0103030c0101012201020101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010100000101030122010301020102020b01020c0cd
9400201030303010102020201010101010101010c0201030101010c010201020101010b01010b0
101012201010103020102010626a0270103010102010b01020301020c0105010102010b01010c0
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
0101010101010101010101010101010101010101010101011610000026060f002220574d464301
000000000001000000000000000a00000000200000c8b10000c831010001010101010101010101
0101010101010101010101010101010101010101010101010101010100003874a950030303387
602010c0340270304e3a8af220301abb0050c01740917220b0101761cb00c0b01aba6212c012da
60a026157954454060a74480c2d3406015193440c01044e3b030101030201020b0101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
0101010101010101010101010101010101010101010101020c0202010501010103020101010201
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
0101010101010101010101010101010101010101010101010101010101010101000081a1491f63
03c8b1da8e018b97429040038a78336701b0c6b11f01a9f581c3b76b0c032fb83f01a8067146f01d
014bf968ab94c64f4fee3b57b54066a2625a4c4ca3920301015233010c010101020301010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
0101010101010101010101010101010101010101010101010c0101010b0101030b020101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
010101010101010101010101010101010101010101010101010101010101010101010000e52c0c
50b5276da25142502a9e01a68d0bcf5d0172af781f0464249f7a017078220102018d5004df880329
b80b7de450431e6aeaab17ea0a0bd6b0b3b3026fa304d0a901012db94b010103040b0101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101020101030c0101010101010b0
401010b0101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010000
30010249ef35b66b01040ab54e030dd82cd643035863b4340205068a8b015c6702012301906b3a
cd2e0b36d801b29701014861b5516ae82d23e2c8bb750134db354b8c050150f8dd500101010101
010b0101010101010101010101010101010101010101010101010101010101010101010101010

425

10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010b01020b010c0c010
10302010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
0101000001014decc08ba23c030117cf9401abbd28d7c802327a973a16a41cc3950225580102010
c8335b34b6f89a8c701318d185d2151e595abb50d0cd634c61d035df7a6ad5b0102419691560105
03010c010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
b010d0101010c01010401010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
101010101000003a9efda1d0b6357028435195f0134df21baa501d8778e9036f56272a701395a01
0b01018fa9f6779a9936ad01328a56e6a223bb6a27bb0601cfb0dc29030ec906b97b2d01dc6e446
20101010104010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010104010
10b0b015d966c9a04010b030301010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
101010101010101000074f3c30a0101435836d64c180f86b73b28e9979ddf0ba73375a30a8c1464
b93202010c016331a3176a885eb901355aa5e343a7f4553ec6417e7c012046a6315f93f59e8d52c
b0a23467603010302010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
101010b0102029241260f1f3a1c02010b0101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
0101010101010101010100002eea2301af0a01211b210301b00718010454353a65040150414c01
023529985a010401012ec92501011390e6030166991d01936054ac4d7455350c018c581d01052f
476216774d0c526602010401020201010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010c010203010b7266030c17208a9ea90d010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
1010101010101010101010101010000158201512a66010b010101010101010101010101010101
01010b0c010101395a020104019dce2f01015df0c7010b010301010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
1010101010101010101020b01a746010303010144a4329f821c0301010b0101010103010102010
10103010101020201010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
1010101010101010101010101010101010100001c83a81fb701050101010101010101010101010
101010101020b0103020d805c01020189d3d60201032dbbe476010c01010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
101010101010101010101010101010102845e010101010101010548131ea03f350201020c01010
3030b020101010103010101020101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010000018c849a54220103010101010101010
10101010101010101010201010101344d01012289a96501050b018b6485010104010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010

10101010101010101010101010101010101010101010101010101010101010101010101010101
0101010101010101010101010101010101010b01045c61010301010b030101030102572483451b
380103010b010104030c0101030101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010100000301030201010401010101
0101010101010101010101010102010b010501010303040301010122010201010c030103010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
0101010101010101010101010101010101010101020201012c59010b0102010101030b01030103
013ca66c4645730d01040103010101030101010203010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101000002030101040101
01010101010101010101010101010101010c0101010101010201030101040c0101010103010101
04020101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
010101010101010101010101010101010101010101010101010c01021367010101010201010101
01010101010102030d923115524f172201030202010c0c01010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
1010101010101010101010101010101010101010101010101010101010101010101000001030b
020101030201010101010101010101010101010101010b010c01030c0122010c030101010b0302
02010301010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101015a8501010b010
1010101010c010203030101010b012338118d3ea8500c0101010101010c0101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
000030101010c0b0101010101010101010101010101010101010122010101030101010b0401010
b01010c012201020c010b010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010c010109150205
010301010302010102010b020101020b02010c01020b6684463936570301230401010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010100000101020103010302010101010101010101010101010101010101010b03010102010
20101010102010103010103010b01010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010102
042a8301010101020101010b030102010102020101010301010301010b019577ae80940101030
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101000002010103010103010101010101020101010301010101020201020101
010102010101010101010101010101010101020b0101010202010101010201020102010201030
30101020101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101019fa60c01010101010101010101010101010101010101010101010101010101068
632a18850020102020101010201030b01010301010b0101010101020201010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010100000102030201010b010401010c01010b010c0b01010201020
10301020101010201010101010101010101030b0c0b02010102020101010102020103010301030
1020101010b020102010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010

427

10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
1010101010101010b016b7d0c01010301010101010101010101010101010101010101010101010
1010103030176731e5975ab0101010c01030101030101030301030301010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
0101010101010101010101010101010101000001030b01010301010101010201010c0101010102
03020b0102010301010201010202020202020202010101010101020b010101010101010101010
102010201010c01010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
010101010101010101010101013f62010201010101010101010101010101010101010101010101
010101010301010c0101010376738f1f3a27010101030301020b0201010c0201010201030101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
0101010101010101010101010101010101010101000002010101010c010201040b010b01010101
02010101010101010102020b0b010201010101010101010101010202020101020203030303020
2020301030103010301010b01010c0c01010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
0101010101010101010101010101010b534f0c0101010101010101010101010101010101010101
01010101010101010101030b0b01010b0101a5537e4e5b17010b0301010104010101010203010
10101010101010101010101010101010101010101010101010101010101010101010101010101
010101010101010101010101010101010101010101010101000003010101010301667729a8293
324849292755f24738475241b075f1b5262291b1b1b1b1b1b1b1b1b13a811a8132962294242878
7878742420e0e1236aa369b8787a811423649aa71010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010195820101010201010101010101010101010101
010101010101010101010101010b0201010102030105010303517b391a07a92d0123010322010
10301010101010101010101010101010101010101010101010101010101010101010101010101
010101010101010101010101010101010101010101010101010101010100000201020b010102a
75a182f56263b796ea9c8405b499b871216297b86293629241311873636871113845fa842138420
775e5275848475525eacac5e2033ac3a073f3f4e6941774a8601010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101011184010104010101010101010101010
1010101010101010101010101010101020102010401010102020101010101040d7b0f902443170
10101010c010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010100000201030c010
102342401010b010101010b010101030303010105010103010201030201010101020301010101
01010101030201010101020301010101010101010101010101011e49010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
0101010101010101010101010101010
Here, object A has been created in a scoped memory region. A reference to that object has been
stored in object B, which resides in the heap. The lifetime of a scoped memory is controlled by its
reference count.
Warning The reference count of a scoped memory area is the count of the number of active calls
(explicit or implicit) to its enter method (or the executeInArea method see Section
8.5). It is not a count of the number of objects that have references to the objects
allocated in the scoped memory.
Consequently, unless forbidden, the scenario depicted in Figure 8.1 would result in the reference to
object A, from object B, becoming invalid (dangling) when object A's memory area is reclaimed. There
would be no way to detect this invalid reference, and the safety of the Java program would be
compromised.
To avoid dangling references, the RTSJ requires that the assignment rules, given in Figure 8.2, be
enforced.

From Memory Area

Reference to Heap
Memory

Reference
to
Immortal Memory

Reference to Scope
Memory

Heap Memory

Allowed

Allowed

Forbidden

Immortal Memory

Allowed

Allowed

Forbidden

Scoped Memory

Allowed

Allowed

Allowed: if to the
same scope or to a
less deeply nested
scope.
Forbidden: if to a
more deeply nested
scope.

Local variable

Allowed

Allowed

Allowed

Figure 8.2: Memory Assignment Rules


Important Local variables (including method parameters) are not held in any memory area but
note
reside on the stack of the calling thread. They can, therefore, hold references to
objects stored anywhere. A local variable will always go out of scope before any
scoped memory area containing the object to which it can point. The only exception to
this rule is references to portal objects (see Section 8.7.)
If the program violates the assignment rules, the unchecked exception Illegal-AssignmentError
is thrown.
Implementat Given that one of the requirements for the RTSJ is that there should be no changes to
ion note
the Java language and that existing compilers can be used to compile RTSJ
programs, these rules must be enforced on most assignment statements at run-time
by the realtime JVM. Of course, an RTSJ-aware compiler may be able to undertake
some static analysis in order to reduce this burden. However, it is not clear whether a
real-time JVM can assume that these checks have been made as they have no direct
representation in the Java byte code (if checks can be omitted for the whole class, the
class file can indicate this). Alternatively, checks may be performed at class loading
time.
The success of the RTSJ may well hinge on the ability of vendors to produce an efficient
implementation of the RTSJ memory assignment rules.

8.5 Nested Memory Areas and the Single Parent Rule


To appreciate the full implications of the memory assignment rules, it is necessary to consider in more
detail the nesting of memory areas. The real-time JVM will need to keep track of the currently active
memory areas of each schedulable object. One way this can be achieved is via a stack. Every time a
schedulable object enters a memory area, the identity of that area is pushed onto the stack. When it
leaves the memory area, the identity is popped off the stack. Consider, for example, the stack of a
schedulable object illustrated in Figure 8.3 (the stack grows upwards). Here, all active memory areas
are shown, however, it is only the scoped memory areas that are important for checking illegal
memory references.
0100090000039eb700000000214f000000001610000026060f002220574d464301000000000001
009b890000000007000000002000005caf00005ccf0000010000006c0000000000000000000000d
20100009400000000000000000000006a4000008314000020454d46000001005ccf00000c00000
0010000000000000000000000000000000005000020030000c40100001a0100000000000000000
00000000000e3e306006e4e0400460000002c00000020000000454d462b014001001c000000100
000000210c0db01000000600000006000000046000000802f0000742f0000454d462b224004000c
000000000000001e4009000c00000000000000244001000c000000000000003040020010000000
040000000000803f214007000c0000000000000008400005cc2e0000c02e00000210c0db010000
000000000000000000000000000000000001000000ffd8ffe000104a46494600010201004800480
000ffed088850686f746f73686f7020332e30003842494d03ed00000000001000480000000100010
0480000000100013842494d040d000000000004000000783842494d03f30000000000080000000
0000000003842494d040a00000000000100003842494d271000000000000a0001000000000000
00013842494d03f5000000000048002f66660001006c66660006000000000001002f6666000100a

429

1999a0006000000000001003200000001005a00000006000000000001003500000001002d0000
00060000000000013842494d03f80000000000700000ffffffffffffffffffffffffffffffffffffffffffff03e800000000
ffffffffffffffffffffffffffffffffffffffffffff03e800000000ffffffffffffffffffffffffffffffffffffffffffff03e800000000ffffffffffffffffffff
ffffffffffffffffffffffff03e800003842494d0408000000000010000000010000024000000240000000003
842494d0414000000000004000000023842494d040c0000000006f700000001000000700000002
40000015000002f40000006db00180001ffd8ffe000104a46494600010201004800480000ffee000e
41646f626500648000000001ffdb0084000c08080809080c09090c110b0a0b11150f0c0c0f151813
1315131318110c0c0c0c0c0c110c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0
c010d0b0b0d0e0d100e0e10140e0e0e14140e0e0e0e14110c0c0c0c0c11110c0c0c0c0c0c110c0c
0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0cffc00011080024007003012200021
101031101ffdd00040007ffc4013f000001050101010101010000000000000003000102040506070
8090a0b0100010501010101010100000000000000010002030405060708090a0b100001040103
0204020507060805030c33010002110304211231054151611322718132061491a1b14223241552
c16233347282d14307259253f0e1f163733516a2b283264493546445c2a3743617d255e265f2b38
4c3d375e3f3462794a485b495c4d4e4f4a5b5c5d5e5f55666768696a6b6c6d6e6f63747576777879
7a7b7c7d7e7f711000202010204040304050607070605350100021103213112044151617122130
532819114a1b14223c152d1f0332462e1728292435315637334f1250616a2b283072635c2d24493
54a317644555367465e2f2b384c3d375e3f34694a485b495c4d4e4f4a5b5c5d5e5f55666768696a6
b6c6d6e6f62737475767778797a7b7c7ffda000c03010002110311003f00f406750eb0fb6a61e9e58
cb181d658e70fd1bcbb6594bdadddeafa3fe92bfd1dff00ce5683fb4feb09698e9ad6bb6133be7dfb2
b7b1bb7f47bb75b73d9f4ff00ed2dbfe96b5b6924a426db844525fa024821baff0055eedca9753c8cb
349a7ec84d36b2c17585cd8ada18e3bdc25deaef7edabd15a6ab75200f4fc9078353c1ff34a4a73ef
aefaba839acc1aefc5786863dac68f4dd1eef5646fb1b63f631b6d3fccfe93ed1457e8fab9159b9b96e
bfd0fd8b5878f49d63496cb197077e99db6b76e6e3e4576e33d95fe96dd9f69abf4095995d4ea7659
774c392daae78a034beb73aa11b76e9732c7fd3fd239f4ef5219b9fb7ddd19f3e9fa9b45ae3ee9875
12ead9fa4d9fa5dff00cdff0083fe7bd3ad252c07547e6565b835b719d634595bab648ac8a5b67be7
6bdd4bdd92fdfbebf53d3fd0faff00a3a6dd5e8fff002460ff00e17abfea1ab37d5ce394cc7fd9e5adf51
a2cbc6f730d6e75ad786eef4f6fa75b69b3d5fe5ff36b4ba37fc9183ff85eaffa86a4a6e2897b1a5ad73
802f30d04ea4c6ef6ff0064292e73eb0f4feb391f58beafe6e03aa18d8375a725b6bc82e16b3d27fa7
5b58edcfaf1bed1e9fbbe9d8929e8d2517bd95b4bdee0c6b4125ce30001a924942bf37131eb16dd6
b5ac739ac0e99d5ef650cfa3ff0b754cfeda4a4e928fa95c4ef6c1008d470ed1bfe7288be822458d23
9fa438237ff00d47b9253ffd0f5549249252956ea5ff27e48ff00827f1cfd12acaadd4bfe4fc9d63f44fd7
fb25253432735d4673b19f55ceacec14d95b9ce05cf9dccb5f3b31b6c36babd5f664596d3e8dfea7d
a198f5dbd72a7582bfb36689d9a9311ea8dd4bac6b9fbebabfc0dd73ff00474657ead67bd6a653edc
6636c75b639aeb2ba806b584836bdb431c776df6b5d67bd50a7abf4eb03323ed4eaadbdac619a81
7ced37b31ecb2aaec67a957abfcd7a9fa3b6ef4ff9cb925306752b5d634fa177d9dd90ca5eff0052c0f
657632b155cfaa3e9fdb6dfb2df56efd5d9ea5cff00e66c5a9d2da1bd3311a34028ac007c98d50c5b3
ed940c8c7cb73eb717367635a43984d5631ecb18d7d76556b1f5d95d8ddf5d889d3011d37101324
535ebe3ed6a4a6caad93fd2313fe31dff9ead56556c907ed18900c0b1d3ff6dda9290759674d7d548
ea2e73582c73abdbba4b85571b1bfa21bb6fd9bed1bff007d9fa3fe42c66d5f553245b8a2fbdc72da2
db587d66b9f06acaadff418e6beb636bb3655ff0069ff009cfd12e92fc6c6c96b5b91532e0c707b03da
1db5c2407b777d17fbbe920e3f4be9f8d874e0d5433ecd8ecf4aaadc37c3769adc09b3739dbd8e7fa
9bbf9cdfef494e0e63ba15d9accfcabacc8a2dd9411e916b5bb69c9c8fb55d66c65b657e936e6eec6
f632cfe77fa3efc5d4ff009b7d208b3f4449bdae16bb71f797bc5f65ce603e97aeeb1bfcfb2bf519fcdd5
b2b568f4ae964341c3a08697168f499a1780db36fb7fc2358ddead24a7fffd1f55497caa924a7eaa55
ba97fc9d93113e93e278fa257cbc924a7e9ccc8d8cfb67d9bd3f56bf4bd6e3d5de3ecbb37ff0087f5b
d3f43f3fd5fe6d64bbfe6c7a3edfd97b367b7d1d9be36336fd9fd2fd27a9f67f4bd2f4bdfb3d1d9f98be7
949253f4f637ade857f65fb3fd9f68f4bd39d9b7f3766cf6ed53e9b3fb3b16627d1ae638fa2d5f2f2492
9faa925f2aa4929faa925f2aa4929faa925f2aa4929fffd9003842494d040600000000000700050000
00010100ffee000e41646f626500644000000001ffdb008400040303030303040303040604030406
070504040507080606070606080a0809090909080a0a0c0c0c0c0c0a0c0c0c0c0c0c0c0c0c0c0c0
c0c0c0c0c0c0c0c0c0c010405050807080f0a0a0f140e0e0e14140e0e0e0e14110c0c0c0c0c11110
c0c0c0c0c0c110c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0cffc0001108007
0015e03011100021101031101ffdd0004002cffc401a200000007010101010100000000000000000
40503020601000708090a0b010002020301010101010000000000000001000203040506070809
0a0b1000020103030204020607030402060273010203110400052112314151061361227181143
291a10715b14223c152d1e1331662f0247282f12543345392a2b26373c235442793a3b336175464
74c3d2e2082683090a181984944546a4b456d355281af2e3f3c4d4e4f465758595a5b5c5d5e5f566
768696a6b6c6d6e6f637475767778797a7b7c7d7e7f738485868788898a8b8c8d8e8f8293949596
9798999a9b9c9d9e9f92a3a4a5a6a7a8a9aaabacadaeafa11000202010203050504050604080303
6d0100021103042112314105511361220671819132a1b1f014c1d1e1234215526272f1332434438
216925325a263b2c20773d235e2448317549308090a18192636451a2764745537f2a3b3c32829d
3e3f38494a4b4c4d4e4f465758595a5b5c5d5e5f5465666768696a6b6c6d6e6f6475767778797a7b
7c7d7e7f738485868788898a8b8c8d8e8f839495969798999a9b9c9d9e9f92a3a4a5a6a7a8a9aaa
bacadaeafaffda000c03010002110311003f00f7f62aec55d8abb15762aec55d8abb15762aec55d8a

ac97fba7a7f29fd58abc97f247c9fe4ebff00ca2f25de5cf97f4c9ee26d22d5a69a4b281dde4e039333
3212493d49ea715657ac68df951e5e8e2975fd3fcbda5453b7081efa1b2b6577fe5532aad4efdb154
65a7947f2f6fedd6eac342d1ae6d5ebc2682d2d648db8920d19508342298aab7f813c91d3fc35a55
3fe606dbfea9e2aeff02f923a7f86b4aa7fcc0db7fd53c55bff000379269c7fc37a571eb4fa8dbd2bff00
018ab63c8fe4b5355f2e6960f4a8b1b71b7fc062a81b8d0ff2cecb50b5d1eef4dd0adf54d439fd4ac2
582cd2e27e0acefe9c65433d02b33711d14e2a828a5fc9c7912da17f2cb4d2b7a51c4874f2ccec69c
428dc9276a62aa5f981e50f2947e44f34cb1e83a72caba3ea1c5d6ce00c296b25284257154ebf2f49
3e41f2a93d4e8fa7ff00d42c78ab24c55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8
abb15762aec55d8abb15762aec55ffd0f53f93bcf5e75fcc7d2ac7cf1e504d363f2a4facdc69e74abd4
97eb72e97637b2d8cf742e51f8a4dca269a387d274283d369393f3455846adf9dbe7eb2fcbefccef3
45bae96753fcbef37bf97edd1ed67682ef4f592c9019145c864940bb24bab70f83fbbc559bbf9bff003
2757fcd0f34791bcbc345b5d33cbd6fa0ea29757d1dd4d3cb6fa93dd0b88488e4450e56dcfa720f86
3fda8e5e5f02ac4e7fce5fcc3d0bc91ac7e64798ed7489743d2752d4bcbd1e93a745746f2e7508b5a
fd13672ac924bc523ad4cb1942edf69596bc02a88d47f347f37741f2dfe60eada8f96d05af96b419f5
ed07cc17f64da75b5c4f671979eca6b35bdb896b45e51cab2aab03c4a8e1575531d13cfbf9872eb7
a2e97afdce93e8f9d3cad77af686fa7da4c9269d79631da97497d7b871728df5c565e2b091e9952b
46e58aa3ffe719757f347987f24bca7e60f376abfa6757d52d9aedaf1e3649b8cb2b9e32b348fcd81a
fc4a235e3c544638e2acd2fbf323c81a65d5c58ea3e67d32d6f2d24f46e6de6bb85248e4fe5752d50
7d8e2a86ff0095aff9654aff008bf48a78fd7a0ff9af1577fcad8fcb13d3cdfa47fd26c1ff0035e2a95f983
f33bc9b79a5cb1796ff0030342d33580d1bdbdd5ccb05e41f03866492213444aba8284abab2d7929
ae2a92f963f3fbc9facf9a93f2f35cbdb0b1f37de217d2058dea6a1a76a71508adb5c22af19010795b
cc91ca3f63d45f8f154e7f2193d3fc9bf24c64f229a4dba56b5fb2b4a76e98ab08fce4d2fce5e56f3e59
7e73797bcb76fe7bd0f4dd125d0b5ff002ad01d521b696669daeac392bab33021268a9ca58d40dff6
1547791ff30fc9f2794fc9561f93b69045a7f9d6fb53fd196b749f57834b6804f7b7cb2db4543ca3939
22c08c82af51208fe2c5536d53f313ce9e59bad03ca9e63d3f4f1e6df356bb71a36817f6cd29d3e4b1
b6b4378d7d3425cc88d4468feadeb13ce87d5e18ab19f37fe7a79b7c8f65f991a66a5a4585f799fc8
9a6d86b9677713cd6f61a8d86a523c409898c9243246f1b2b2fa922b7dae6bd31557f3bfe7a7987f2
9bcc92597e616976171e5ebed0f54d7b45bdd224996612e8a88f2d9ce93060cd209630932f05e4df
147df154627e6f79cf461a86b3e64f2e4973e50b6f2fdef98a5d4ed6cee74f8eca5b087d7fa9c925db
b09fd55afa73c6917c4bf14346d95483cc2de68d4bf35ff0022bcc5e624d2d5750bdd5a5b686c6295
6ead567d02e65fabbcf248e2751bd5d5211c87f778abcbb47b2bd1af7fce4769da37e5adbf9cad64d
6e6053d4b284c0f258b54c714c393b558c948be366fb3f1e2af65fcb6bcd3af7fe715e36d33ccd279b
eda1f2dea36e75e9d248a69648629d5e374989914c447a403fc5c5062af52fcbcff009403ca9ff6c7d
3ff00ea163c559262aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb15762ae
c55d8abb15762aff00ffd1f56f96ff0023f47f295fea0341f306b36be53d4b517d6ae3ca226b76d305e4
b27acfe9b3406e63899c076852711b1d98716652aa5fadff00ce3bf96f5bb2f38690fafeb367a179db
554f306afa6dacb6ab1aea48616f52277b66902b1823668d9dd2abfcbb62acd74cf22dbe97e76d6fc
f30ea77526a3af595969f7b6b2083eac134cf5bd1740b1070d59e42d572adfcbb62a924bf931e5bbff
216bdf975adde5e6a7a0f982f2ef51b99256862b98aeafaf1b506921786240a5276f522aab71e2bf6
b1553bbfc9e5d63cb7ac797bccde6fd735d7d63499f407d46edecd2682c6ed784fe94705ac50fad22
d03cf245249b7c2577c5531b7fcafd360d6fca9ad9d4ef647f28e9171a0d8da37d5c4335b5da4092b
cfc610e6422de2a146451c7ecfc58aa2ff002d7f2fecbf2c7ca765e4cd2b52bcd4746d314c5a70d43d
0692180bb3ac61a08a2e4072a727e4d4a6f8ab2ee09d788afcb157715fe51f762aee2be03eec552d
d76d759bbd364b7f2fdf41a6ea4ec816f6e2d8de2247cc7a948849155cad4212dc55be26571f0e2a
937963f2ff0044f2b5e5eeb4b25c6ade67d43fdedd7f5593eb37ce8375891b8aac50afecc30a4710fb
5c3955b1549bf21830fc9ef26f36567fd1b11253ecd49276c5538d47ca5acb6bd7de61f2ff009864d2
ae350b7b6b6b8b296d61bcb32d6a65e33046e1209489021224e1c512a87ae2ac32ebfe71f343ff00
0f695a7e91af6a7a5799f46d6af3cd163e6ab73035e1d6352695aea4962688c2f14a266468382afa7
44f1255643abfe57c7af58e96fabebb7b73e69d13524d734af30158165b7be484db9548163117a0f1
b323c34f89589e7ea5240abccff3efc851e93f955f995e61967bcd7fcf7e6dd2ecb472d0c0ce5d6d25
260b7b4b4815ca2d649246a972589677e2051567171f94fe5ffcc046d6fce9a94be658ef746bdd0ec
008d6ca0b7d3757e06e1923415170e234569491c7800b1a7c5555da47e4ac3079687937ccde69d
5bccde58b6d3ee746d3ac6f4c1098ec6eaddad0faef6f1a1b89521631c724bb2d7970f53e3c556691
f92d3e9f71e4a9750f396a9aaa7902699fcbe2e22b3591a096cdec4457722c20ca56272bea0f4d8f5
fb5f162aa7e5dfc97d43cb37fe6fd4b4cf395ec579e77bcfd21ad4c969681d26317a3fe8a4ab08e8bd
39093a62a8a8bf2efcb7f955f921adf923ca71ca9a2e9da3eaa636b993d69e49278669649247a0ab
33313b003c0018ab2cfcbcff9403ca9ff006c7d3ffea163c559262aec55d8abb15762aec556c8e9146
d248c163405998f4000a938aa41e45f3a687f989e52d2bce9e5b95a6d135887d7b4775e0f40c5195
97b32b29523c7156438abb15762aec55d8abb15762aec55d8abb15762aec55d8abfffd2f7f035c55
d8abb15762aec55d8abb15762aec55d8abb15711514f1c55e2bf926be7b6fcaaf2f26993e8f1da410
cb6d6893c174cfe9db5c49082ec93015212a68b8abd0045f991c7e2bbd0f96dd2d6f295eff00f1f18a
b4d17e6553e1bbd0f953bdb5e5396fff002f1d3157087f326a2b79a1d3bd2d6f3feca3157087f32bfe5
af43ffa45bc3ff6318ab845f9955def343a7fcc2de7fd9462ae68bf32abf0dde874a77b6bcebff4918ab

431

bd1fcc9ef79a1fbff00a2de75ff00a49c55c61fccae0d4bcd0fd5fd91f54bce3f49face2ac7bcfb17e62ff8
0fcd06e2f345318d1eff009aa5add8247d564a804dc103eec55947e5ed3fc03e55a74fd0fa7d2bff00
30b1e2ac9315762aec55d8abb15762af2aff009c91f3e0fcb8fc93f3879951c25ffd45ec34ddc03f5cd
408b688a83d4a193d4a7821c55e23ff003eecf38c3abfe536afe4f926e57fe5bd51e4584b03c6cf514
124640ad4032a4d8abec3c55d8abb15762aec55d8abb15762aec55d8abb15762aec55ffd3f7f62ae
c55d8abb15762aec55d8abb15762aec55d8abb15799fe444493fe506830c95e122dea37162ad46b
db8068ca4107dc62af1bfca2fcc83f97fe41fce0fcc0f395eeb5e64b1f27f9cb54d1a2492f65d4268b4b
b49608e08a15bb9c27c2d37c4d5e6ddd9b8e2af6597f36ae57cd53f92a2f286a8fe62fd107cc36313
4b64904f60b27a2794bf583e9c824214c6c3f6abb8ad154bac3fe7207cb1aae8ff979ace97a56a579
07e65492dbe87146b6caf0dc5bc724924773ea4ea178fa4e0b2171b62a87b8ff009c83d3ad744f32
6bd3f95b56163e4bd4ff0043f9b181b3ff00449c3c6acd11338f5d55668e46e1d236fe6f871566179f9
8518d63cc1a1e87a3ddeb77de5786de6d656d5a04e2f77134f1c11096452f318c07e1f0ad1d3e3f8
b156371fe7c68da98f298f2bf97f56d79bceba45e6bba0fd596d22568b4f489a686633dc27a52032a
a7c5f07a9f0f3c55669ff9b7ad4577f98f7baf796ee63d0bc913431456fa794bfd4a5e7a7dbde941045
b348df580005728b4fb7fb58aacf3379fa1f337953cfde5996daf742f31e93e593ae7a715d7a1731c1
7b05cb5bb096d9d648a6492d99658cf1e3b6ee8d8aa97946eae6fbfe715f47bcbd95e7bbb8f21c32
dc4f2b1792491f480ccccc4924926a49c559ffe5e7fca01e54ffb63e9ff00f50b1e2ac9315762aec55d
8abb15762af843fe7e4de6ef4744f24f91609c86bcb9b9d62f6dc74296c8208198fb9965a0ff002715
78affce0379ce5f2dfe7b41a03ccb1d879aac6e6c2547a0067b743750904fed562651febd3157eace
2aec55d8abb15762aec55d8abb15762aec55d8abb15762aff00ffd4f7f62aec55d8abb15762aec55d
8abb15762aec55d8abb157997e439993f27f4030a896754bd288c782b30bdb8a0268dc413ec698a
bc761fc82fcd897f28bf35bf2eeed3418f53fcc1d7ee7cc1617716a17725bdb0be9e09a4865e7641cf
010515872e7cbf678e2af571e54f3f3fe6bc1e7e934ed2d34d8fca92f97a4b71a84cd71f5d92e12ec3
0ff00430be9074f4f972e746f5386dc31579af91ff22ff33fcb7a3fe4c68b7f1e8ae9f967a95fde6a9730
6a172df5982fd6741e823592fc6a27a9572abf0fdaf8b65531d53f277f33afbc95f9c1e568a0d184ff00
989af49ac693349a85cf0b7b7b84b789d6702c89e6ab6aa5427356e74e4bc3e2559cd9f943cffe58f
3b7997cdfe5ab7d2af2dfced0d85c6ada6dfdddc40d61ab585aada7a914b1dbca2785e344e485617
e49c97edfc2ab1ff2c7e51f9cfc97e65fcb7fd1634dd47cb9e4dd2b54d3b53bd96ea6b3bbb9b9d7a78
2e2e678ad56da68c2c6f09291b4ff00173a725e1f12a8af33fe5afe685ccbf9ab69e4dd62c3458bcf49
05e691af096e1750b4be86c6dac5e168d23e2a8eb6f5172927ab1fa9f0c5c915b154be1fca9fcc5b7
93cc1716f67e5db41e61f2545e5796c2d2e6f112defed9aec46c267b7669a365bb2cf2ba2cbf005e0
dcb9e2aca34bf2e6b7e4eff9c776f2879805b7e95f2ff9526d26692c65927b79458d8340b2ab491c4c
39aa062a57e1278f26fb58ab32fcbcff009403ca9ff6c7d3ff00ea163c559262aec55d8abb15762aec5
58eebde41f22f9a6ed350f33f9674ad66fa38c411dcea3636f772ac4a4b040f32310a0b31a74df1579
bfe427e5cfe5f43f973e4ff0030c3e55d1535e8ed96e22d561d3ed96e565e6e03acc1398600d3972a
e2af6ac55d8abb1543da5fd95f898d95c4770b6f2bdb4e6260e12788d1e36a74653b30ed8aa23156
19f9abf9850fe56791755f3ddd69573abd9690a925d5ad934492889dc2190999d07152c3971e4d4e
8a7156631bfa91ab8e8c037de2b8aaec55d8abb15762aec55d8abfffd5f7f62aec55d8abb15762aec
55d8abb15762aec55d8abb1578b7e47f9ebc95a6fe58685a7ea5e64d2ecf5085af639ed2e2fade39
a3905edc12ac8ce0823dc62af441f987e4062cabe6ad1cb2fda1fa42d76f9fef3df15583f327f2ed854
79b74623affc746d7a569fefcc55b6fcc7fcbd4e5cfcd9a32f11c9aba8daec37dffbcf6c55dff2b1ff002f4
3053e6cd1aa7603f48dad6bff00233156c7e637e5f1048f3668c42eec7f48daedff00253155a7f327f2
ed555dbcdba304621558ea36b424f6fef315536fcd1fcb54a72f38e8839578d752b5df8f5ff7676ae2a
e6fcd0fcb540a5bce1a200e405ff7236bb922a3fdd98ab1df3efe66fe5c5cf91bcd16d6fe6fd165b87d2
7508d224d46d59d9cdb48028024a9248d862acabf2f3fe500f2a7fdb1f4ff00fa858f156498abb15762
aec55d8abb15762af39fc845e3f93de515e9c6c40a7ca4718abd1b15762af99d75dbdf2dfe63c3aee
bb713799fca5e63f379d2740f32e8b7722de6977eed2589d1f53b290846b549038578812bc7d5917
97190aac53401e42f257e5b7982092e6fb4d9b55fcc6bdd0a5b6d22f7eaf3dc20d7e78eded6e659d
dbd0b574aadc4abc1da2e5f13336eaa1e0f3feabe55b8f3f686faac569e48d3fcfbe5ed3f51363792c
d69a4e81abdbc725e7a570f492289e4a248cbe9a44d24a62f4c62acaff3d2c3c97a67e48fe6f7f8475
d92f2cefb4bb29a5d2a3ba173a558c82411a9b62a088dee38f2963f51b99557e0bceaeab2efc93d4
74ad77cc5e62baf375bb5a7e76e9b2adaebf6734a4dba593aff00a249a620211ad24880e1371f5dcf
213b578e2a987e725cfa1e6bf2345aa347a8f94ee4ea916abe571776d67737729823f42e93eb53db
47225b7c61d3d50c1a78dd11dd578aaf379fcbfadf943c9df933a27983cd57f7bad6a9e7748755b98
359bc9d66b3b88b509a3b479bd6f8c431a43112a78fa91f25ebcb154ff46d0b474fce5f307e55f9912
e13c87a3f96ac6ebc93a65d5e5c35b98ee259c6a370269a432c93ac8c88ae6476823fb1c3962af36
f2fdcf9a34ef2a7907f3cfcef757dace8fe5dd5757f2e6aed2fab7371a97963509e6b1d36ecc29fdf4a9
33a049387a93452f3f8fe16c5595fe51e97757bad9fc99f33699369979e4ad75fce92c5ebdc5c2cda5
6a08d36970b5d39ac8d0cb3fa12a93c585971f893962a93ddea371a36bba7ea5acf9801d13cc3e62
9efbcb7f9b3a65d37ae2186ec5dcfa2ea962e0127d1b692ce07456895bd34f4919992455fffd6f7f62
aec55d8abb15762aec55d8abb15762aec55d8abb15798fe42dadb49f94de5e69218dda97952c809
ff007ba7f118aa2fcc3e774b0f3cda7e5d797bcbd16afe649b4b1610000026060f002220574d46430
10000000000010000000000000007000000002000005c8f00005ccf0000935eb8f5ee21b0b686c6
39beaeb47292bbc8f27c21563e2bd6474a8c553df276a9fe26d09354d53403a0ea4b3dcdb5e6937
2619e5824b599e135921aa3060a1d4a9a7165c553e1696240658222bd4108b4a78f4c55a5b4b16

00ac11156dc108a411f762adfd4ecbfe59e2dbfc85fe98abbea7646a441157a1f817fa62ac37ccfe70
8fcb7e74f25f94ff41a5d5a79bee6f2cff4a09234169359594b7a0343c0b3f358880415e38aa1bf337f
32fcadf9589e5f7d6acccdfa7f54b6d2904118ff00478ae65485eee53c48586269230e4d3e291147c4
c315651e65b4b7ff000e6b1c208cbfd46e4001475f45bc062a82fcb6dff2efca27fed4ba6ffd42478ab2
8c55d8abb15762aec55d8abb1579cfe42307fc9ef28906a0597107fd595d7f862af46c55d8aa4f6fe5
3f2bda6a8dae5ae8b6306b2c5d9b508ada14b92d2fdb6322a8625abf11ad4e2ad5c7943ca976ba8
a5d685a7ce9abb2beacb2da40e2eda3fb2670c87d42bd8bf2a62abd3cafe5a885e08f46b141a8c31
daea016da102e2de1431c714b45f8d154f1556aaaaed8aa8a7933c9f16911f97a3f2fe9a9a042feac
5a52d9c02cd24dfe25842700dbf5e38aabc7e59f2dc37b06a50e8f651ea36b1ac16b7896d0acf1428
bc1634902f2550bf0850694c5580fe65fe5bf987cddafe9dad583685ac6976b6af6527963cd960d7d
a7ac92c81daf2168db92cfc408fe3475e1f64a7c5cd54dbca9f94be4ef2ed8cf6d2e85a3c9f5a9feb4d
6969a6416ba7dbc8d145138b6b73ea7a61bd20cff0011677f89b1565baa685a26b91c50eb5a6dae
a30c0e25823bc823b854907465122b007dc62a8c7b78258c43246af102a446ca0a8284329a1db62
011e18ab42de059dee562417322ac724c1407648cb1552dd48059a83b7238aa589e52f2ac72c93c
7a1d82cd29acb22dac21988712d49e1b9e6aaffeb00dd462afffd7f7f62aec55d8abb15762aec55d8
abb15762aec55d8abb1579b7e40ff00e4a4f2ed3a52f3fea367c558e7e6a792bc9ff98de6592d23d7
a6f257e6d7962ce2baf2ff009aecee161bc8ecef4ca378fd45135b978e449637fa1979eeabce2d3f35
355bdf297e5b5dfe6ddf447ca92f9a757f2e799fcc501f4349d5869f15d5bd85dcc542a7d52e2640cc
0fee59d559bf77f0e2a9ff009b60f2c797dfca3a7793af124fca3d57ceb245e768527f5b4a89aeec18c
16a841f4a3b26b8f4f9c4bfb9f59b837dae18ab0dfcd2b73e5fb0fcfbd23ca3733da7912cbcb9a46a30
da58cb2436361ae4f2cc264b4f4c858b9c291493471d12ac19d7e2c5517f9b161a8f93fce0fabfe433
cc358bdf24f98f50f32c3a7dc4d750cb25bc502e9f772286756baf52497d0735924e1c775c5553499f
4c5f2ac9f98df96de701a879bb50f26ea8f0e87a25aac725c5e269e674b9d578cb337d6609d022cb3
7195a693d2ab72e38aa2b4a93f2ceebccff00f38f5e69f2add584da9ea77376ba8ea4932b5edccd3f
97ee83fd718b191e6337c27d5fde090f0fdaa62acd356d36e7f3bd3f3063b04d2eebcaf35b5cf92b4e
babb964f511adcb1bdb94f455c50dd7009f12ffbc6afdd7156ff00253f30afbcedf91da85af98ef229fcf
1e54b7d4bcbde66f4e6134a6ef4b5783d762bb9f551564e54f8989e38abd3ff002d0d7f2e7c9e7c74
4d37fea123c5594e2aec55d8abb15762aec55d8abce3f20d387e4f79493c2cc8ec3fddafd874f962af
47c55d8abc6af3f3e5ed348fcd1d4c79759e4fcaebcfab5f41f5c0a2f2110adc19227f44f16e0c0fa6c3
aedcf1545eb1f9bde638bf31756fcb5f2cf9265d6b59d3746b7f3045772ea36f636b3dbdcb98827264
9191f9ab2202bf11525b827c78aa1744fcfdb2d7f50fcbcb7b2d1a4b7b0fcc08f538a3bdbc9fd2363ab
68c184fa7ca8b1b06979a48aa79286f4dcaf2c5517e59fce4d43ccbe5fb4d4e0f2e2a6b33f9a6e3ca1
73a4477e27fabcb633491dcced32c342b1a42f37109f1271f8be2c554a3fcf2f4f54f2fdb6abe5abbd2
ac7ccbe63baf2ae99f5d7f4350f520498c578f69222b0b79da0708c1aa0706fdbe21552d3ff3cefa58f
cc9abeb9e509f44f27793af754b0f32ebb737f6ae216d2e1132b430a55a612f254f848e323aafc7f1f1
558af9ab59f315f7fce447e464b7f67269567a869de63ba96da1bd9268ddbea08e229a2558d4c908
60797165abd149e15c55e9df96ff009989f993a758ebba5e9e22d0efe2ba7f50ce1eead67b5b8f445
bddc1c07a5238e4fc4b7c3c590f8e2acff15762aec55fffd0f7f62aec55d8abb15762aec55d8abb1576
2aec55d8abb1579b7e417fe4a5f2efcaf3fea367c559dea1a268dabaf0d574eb5be4d8f1ba8639854
540d9d4f4a9c55565d3b4f9ac4e9935a43269ad1884d9bc6ad01880a043191c78d3b5298ab974fb
05b11a62dac234d11fa02cc46a20f4a9c787a74e3c69b71a531560df9aff0097b71e76fcb0d67f2ebc
b0d65a32eb108b3f56485beaf6f0b3867648a1e356dbe11551535ae2acb7cbda6fe8cd3228e6b2b2
b2d4251ea6a09a6a70b77b8228ce2aa8c6b4eac3962a8ab4d2f4cb09ae6e2c2ca0b5b8bc7f52ee5
82248de67fe6919402c77ead8aad8346d22d65927b5d3eda19e690cf2c91c31a3bcac285d880096
236e477c5575a695a5e9f1c9158595bdac537f7a904491abed4f882800ede38aa51ad68fa4e9be5c
d69f4db0b6b291b4eb88cbdbc31c4782c4e554950bb027618aa8fe5aff00e4baf287fdb134dffa848f
156518abb15762aec55d8abb15762af38fc832a7f27fca7c6bc45a328aee68b34837fbb157a3e2aec
55f3a799ff22bf312f350fcd8d3bcb7ad68f6fe54fcd08c5c4d3df437326a3697ab6ab6cd12ac6cb1b4
4fc6bea13ce3ff007dbf5c550c27f39daffce506a36fa00d16f35f1f97da547a9dbdecf3da42661a85cd
6583d38ee1f8a31e4627156464fdea752ab33bff00c8e8e6fcaed2bc93a7ea86cbccda46a49e63b2f
312202d0eb8f78f7971711c6fca8acd3cca91b72a46e118b75c5515e4dfc97b6f24fe615ef99348d41
e3f29c9a759c165e5e20111ea96f00b296f1de80b33db45126e4d5ccaedbb0c55e7b17e427e6a7d
634a9afb5fd0ef6e743f3c279c63d56782edb50d4adc99d385e48588478219bd28238818b8222f24
e3baacc6dbf2835dd7bc9df993e46f3bcb656fa579eb50bfd460bcd1e79a6b8b7faff0e28eb71046a4
c66253c81a3fd9e0bd7154bed3f2bff37758f3f7e5e79cfce9ad6808be428b53b5316930deb3df26a5
6a96deab7aee16373c2bc3f78a87bc9ca8aaa6be45fca6d6347f3fc3f98daf269b65e68974a934df33
dfe84f34716bf72ed098ee6e6d648d6389a311b1054bc8ceff006c22f1c55ec78abb15762aff00ffd1f
7f62aec55d8abb15762aec55d8abb15762aec55d8abb15789fe4a59fe601fcaff002ec9a66aba3456
334334f0c573a6dd4b322cf732ca159d6fa30d4e54a845af5c559e3597e6990426b7a029ec4e917a
d4fa3f498c55a4b2fcd504fa9ae797dc5760347bd5a0ff00b899c55cf65f9a842f0d73405209e44e91
78d514db6fd2429438abbea5f9a941fee73cbf51d7fdc45eefff00733c55a6b1fcd621b8ebbe5f0483c
7fdc3de9a1ec7fe3a7be2ab0587e6d6f5f307978d694ff70b7a294ebff4b4ef8aae7b0fcd824fa7aff97
d076ae8d7ad4ffb9a0c5569d3ff003689257cc1e5e0090547e85bd341e15fd298aa4fe6cd2ff3665f2

433

deb68de62f2f881f4fbb5755d16f39d1a071b37e94d8ffb13f2c5591fe58803f2dbc9c01247e83d3373
d7fde48b156558abb15762aec55d8abb15762af35ff9c7e20fe4e794f88a28b69140028005b8940a0
f0db157a562aec55d8aa00687a2aea8dadae9d6a35a65e0da8882317457885a1978f3a5001d7a62
a8fc55d8abb15762aec55d8abb15762aec55ffd2f7f62aec55d8abb15762aec55d8abb15762aec55d
8abb1579c7e42333fe50794cb9e4c2cc8ad6bf6669075fa3157a3e2af2fff009c88f31f983c9df933e6
df36795b50934cd7f47b3fad58dd46914bc641222fc493a488c28c762b8ab0ff00cf4fcd28fcaff93d71
abf923cf16dfe2eb7974b4b69a1b8b0bbb8985e5f5bc3356128eac7d27908e318e3f687d9c55e89e
68fcd0f2ef9206a1697697fabcbe5fb18f52f30358449732d8d8c8582cf7039c75e42391f844af2f046
7f4f8e2a83f317e78791fcbd2de272bad562d37448bcd5a9dce9708b886db449d8ac774cc5d39ab0
567e317a927a6acfc38e2ab35cfcf2f28691adaf972d2cb59d775b9b498fcc16769a369b3dd9b9d3a
565512c2f45470390afc5b7d9fef2898ab29f22f9e7cb7f98de58b2f37794eebeb7a35f0608ccad14b
1c913149229636a323a302aca7f562ac8b154b7cc5bf97f5504120d9dc6c3a9fdd362a93fe58ff00e4
b6f277fdb0f4cffa848b156558abb15762aec55d8abb15762af36fc803cbf27fcac6a4fee26a13b9a7d
665a6f8abd2715762aec55d8abb15762aec55d8abb15762aec55d8abb157fffd3f7f62aec55d8abb1
5762aec55d8abb15762aec55d8abb1579aff00ce3f963f93de552c6ac6da524eddee25f0c55e958ab
cabfe723742f32f9b3f27bccbe4ff0028e8f36b5af6bf6e2c6d60865b68123e6eac6595ee658942285f
d9e4d5a7c3dc2ac47f3d3c9de60f397e4b268be52f213bf9cf54934c792c8b6996f2d9fd42f20b997d
69da7119056128be93c9cb90fd9e58aa8dce81f991e5cfcd1f3279d34bf20279c7cbbf98b69a5c93d
8df5ed85a5d6877fa75b7d51a2b8f58cab240ea433181a5e2c1f8a3fed2a97fe6af907f36fcd73eb7e
544d02d754f2bdf793a4d374392c6f22d2748b3d71e39d246b8b625a79b8ab462cc307862356a46
ced246abbca775e71f2a7e60f922def3c9f7777ad59fe59c3a7ea9a4d95d5899ad67b6be86315796
78e175664df84a787f95f162af55fc99f21ea5e41f2adedaeb4f0fe9ad7758d4bcc7a8db5a12d6d6b3
ead70d39b6899802cb102139f15e4416e23157a262a96f9845740d54034ad9dc6e3723f74d8aa4df
96049fcb5f2692287f41e99b7fd1a458ab2bc55d8abb15762aec55d8abb154b741d0749f2c6916ba
16856c2d349b3565b6b6566608198b9ddcb13bb13b9c5532c55d8abb15762aec55d8abb15762ae
c55d8abb15762aec55ffd4f7f62aec55d8abb15762aec55d8abb15762aec55d8abb1578e7e4679c7
ca361f94fe58b5bff30e9b05dc76f209a19af208a447371292ac8ee0823a1ae2af43ff001e79180a9f3
36934f1fafdb7fd54c55aff001e791abc7fc4da4f2eb4fafdb569ff002331568f9fbc880d0f9a34907ad3
ebf6dd3fe4662adff8fbc8b523fc4fa4d475ff004fb6ff00aa98aa9ffcac4fcbfa72ff0015e8fc4922bfa42d
6951d7fdd9da98aa48f77f949279b13cecdafe9bfe284b5fd1eb7a35751fe87cbd430fa427f4f8171cc
8e1f6be2eb8aa78df985e41400b79ab475045413a85a8d877fef31571fcc2f200343e6ad1c11d41d4
2d7e7fefcc552ed7ff0030bc85fa035365f34e90d5b4b8e34d42db72226d87ef31545fe590a7e5bf93
87fda8f4cffa848b156558abb15762aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55
d8abb15762aec55d8abfffd90000000840010824000000180000000210c0db01000000030000000
000000000000000000000001b40000040000000340000000100000002000000000000bf000000b
f0000af430000e042030000000000008000000080fe7fe9430000008000000080ffff144321000000
08000000620000000c00000001000000150000000c00000004000000150000000c000000040000
0051000000789e00000000000000000000d201000094000000000000000000000000000000000
000005e01000070000000500000002804000078040000009a0000000000002000cc00d30100009
5000000280000005e010000700000000100080000000000000000000000000000000000000100
000000000000000000ffffff00fdfdfd00fefefe00f5f5f5002d2d2d005d5d5d007e7e7e00838383007c7
c7c00808080007f7f7f00818181008282820086868600848484008a8a8a00858585008b8b8b008f8
f8f008d8d8d008c8c8c007b7b7b0087878700898989009191910095959500999999009d9d9d0092
9292009a9a9a0088888800a3a3a3002b2b2b0074747400f4f4f40037373700cacaca00fcfcfc00707
070007373730031313100d4d4d400fafafa00fbfbfb00f8f8f800f9f9f9006e6e6e0071717100f3f3f300
33333300c4c4c400f7f7f7006f6f6f002e2e2e00c6c6c6006d6d6d00343434002f2f2f00b8b8b800efef
ef006969690030303000b3b3b300ababab00616161004c4c4c0068686800a2a2a200f2f2f200b2b2
b200e9e9e9007777770072727200cecece002a2a2a00c2c2c20002020200ededed0015151500f6f
6f6003b3b3b000a0a0a001c1c1c00535353005a5a5a00101010007676760029292900b7b7b7006
c6c6c00e2e2e20009090900ececec007a7a7a00cdcdcd00ebebeb00e1e1e100e5e5e500e4e4e40
0e6e6e600e3e3e300e7e7e700aeaeae00dfdfdf00b0b0b00045454500bababa007d7d7d00393939
00979797001b1b1b00a9a9a900242424000e0e0e004e4e4e0021212100dddddd0054545400050
50500bebebe00949494002c2c2c00b6b6b60062626200a8a8a80023232300acacac00222222001
61616000101010063636300e8e8e8003636360049494900555555004d4d4d0075757500c8c8c80
0a6a6a6005959590065656500bdbdbd00eeeeee0079797900d8d8d8004b4b4b00cbcbcb003d3d3
d005c5c5c00dbdbdb00d7d7d7003c3c3c00525252000f0f0f00484848000808080038383800c1c1c
10096969600bcbcbc0098989800b9b9b9008e8e8e00dadada00a1a1a1009c9c9c0035353500d0d
0d000eaeaea0020202000dcdcdc00d1d1d100cfcfcf0046464600f1f1f10013131300575757009f9f9f
00afafaf00111111001d1d1d00c3c3c3002828280040404000c7c7c7004141410003030300424242
00646464005858580043434300a7a7a700c0c0c0000c0c0c003f3f3f006a6a6a00c9c9c900676767
00bfbfbf0014141400a4a4a400d6d6d600909090003a3a3a000b0b0b0032323200f0f0f000dedede
00e0e0e00047474700bbbbbb0017171700444444001919190007070700aaaaaa00606060005b5
b5b00565656009e9e9e00a5a5a500cccccc0018181800d3d3d30004040400b1b1b10078787800b
5b5b50006060600121212000d0d0d00c5c5c500d5d5d500252525005e5e5e0050505000d9d9d90
0939393004a4a4a003e3e3e006b6b6b0051515100d2d2d200adadad009b9b9b004f4f4f00b4b4b4

001a1a1a00666666001e1e1e001f1f1f005f5f5f0026262600a0a0a0002727270001010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010199940f6c6c5e165e166c070b0b6c5e900b0a098989090a0b096c16
2228489057075e4848900916902fd930e3274327c6095e5e5748220c0927e30928c43838835789
38382f5a355ac4f1891628f12824550101010301030101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010100000101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101017315010101020301010101010101010101010103030101
0101010102260101020101020201010101012d0101012e0103030101030102030202010101020
10102010126030103010302260101032603595501010103010301010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
00000101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
010101010101010101010101010101010101010101881c012b0103032c01010303030303010203
010101010302030301010101010101030202030101030101012601260201012c01020101010103
02030103020101020102010101010101010103030101e28c010101030103010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101000001010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
0101010101010101010101010101010101010101010101010154cb012d26030101010101010101
01010103030101030301010101010101010101010101010101010301010201010301030102010
32c012b0101030101020301030101010103010103010103020101e4be010101030103010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101000001010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101420701010101030103
03010101010101010302010102030101030201010202010301010101010101030101010301010
303010301010303010301010301010103010101010303030102030101010201a0be0103010301
03010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010000010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
0101010101010101010101010101010101010101010101010101010101010101010101db0c012c
01012601010101010101010101030101010103010101030101020201010101010101010101020
2012b0101033401310201cf230126010102010101020103010302010301010302010103018eb10
10301030103010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010000010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01db0e01262601020103030101010101010303030101030303010303030302020301010301010
101010101260126010101012cf4daec1c63020301010301010301010301030301030101032c020
10202d3b103030103010301010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101

435

01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101000001010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010106170301010301020101010101010101010103030303010103010101010101010
10101010101010101012c010101260101020142323101030201030301030301010201030301260
302010101010301c7db03030103010301010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101000001010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
0101010101010101010101010101010101010101011610000026060f002220574d464301000000
0000010000000000000007000000002000005c6f00005ccf0000010101010101010101010101010
10101010101010101010101010101730e032c0101010301010101010101012c0101022e0101032
6010103010301030126012c0101010102012e0101260103012e01f1fc010126012b010201020103
0101010101010101030302020101016bb10101010301030101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010102010201030201260101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010100000
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
1010101010101010101010101010101010101761001030101010301010101010101010101012c2
c64642b31652c0162a9312364042e014e3c4e01032e0102472e01348f012ec4f22362232d010101
01012b010101010101010101010101010103013b7602030103010301010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101020101012601010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10100000101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
101010101010101010101010101010101010101010101880f03260203010101010101010101010
126030175879a7453a1012e3fff52d6f0d001e4ea00b4ee01035d859c426630001a013872b186247
f26012602260101010101010101010103010101030301d3f22c0201010102030101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010203010102012c020101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010000010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
1010101010101010101010101010101010101010101010101f6110101010301030101010101010
101030103020150db00672e010201b6e5fb470325729ceb0f8544028b82d220be005346265a778e
34e06f1501020103012b0101010101010101030101030301018ef22c02010101020101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
010101010101010101010101030101012e262c0101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010100000101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
010101010101010101010101010101010101010101010101010101730d0101010101020101010
1010101010101012b0103904ded0101032c3452bf0101ae003b0102af2778c0002a0168bb6d0103
064201012efed7700101010201010101010101010101010303030303e487030101030103010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010103260201010103010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101000001010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101880b2c0303030103
0101010101010101262e01012c015e00752c0103015d5cd5015052532301012c2e2e63219903cf
77420301d9ec2d010260005e0103022e0301010101010101010101030101012cb3be0101010301
03010101010101010101010101010101010101010101010101010101010101010101010101010
1010101010101010101010101010101010101012b3401022602012b0101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010

10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010000010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
0101010101010101010101010101010101010101010101010101010101010101010101551f0101
01010102010101010101010101012603012e0c00680302012e34e199263cd795012b0201020101
34daecc74d88012e2fbc012c0184e5da2c01260103010101010101010102030301010103f7be010
10103010301010101010101010101010101010101010101010101010101010101010101010101
0101010101010101010101010101010101010101010101221b2601032b0101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101000001010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
951703030301010101010101010101012c012601020149828b374070b38bd7b80101513a4cc7c7
130a4534c72be84900bc2c017cae01010178002701010202010101010101010101010103030303
016bb101010103010301010101010101010101010101010101010101010101010101010101010
1010101010101010101010101010101010101010101010101010101ec900201010102030101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010000010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101f61801260101010301010101010101010101030101018982fc0f09300b95826a0102cb7
484503c4bcc017800a3015d004103019b816801506dbbc90201010103010101010101010103010
1010303018eb10103010301030101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101ec0d010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101000001010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
101010101010101b1cb012c030301010101010101010101260103012601220065010101013ce76
d010123769f2311d79301d1b48701104df4010dcd7206273600be31010301020101010101010101
0102010101010202f7b10103010301030101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101870d03020
20303010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010100000101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
0101010101010101010101f21301260101010301010101010101010303030102012f006301012d
0131cdae01500145eef9f27d010201de0b09bdd8012ba9fefeacebf215470126012b010301010101
010101010303030101032646b1010301030103010101010101010101010101010101010101010
101010101010101010101010101010101010101010101010101010101010101010101010101db
0b030101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010000010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
1010101010101010101010101010186a303020101030201010101010101010201010102013582
65260101015dd7ba02012b012d010101030102012d0301012c0102010103012b2c012e2e010301
010101010101010101010103030101013bb101030103010301010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101550a03010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101000
00101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
1010101010101010101010101010101010101018879032601010101010101010101010101012b
2b0101490065012c012b0400bf0101033426012b01012e01030102022c01030102010101010326
010102010202010101010101010101010101030101a0b10103010301030101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
010101010101010101eb0d0301260201010101010101010101010101010101010101010101010

437

10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010000010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
1010101010101010101010101010101010101010101010101929f0302010103010101010101010
1010101010145b9ec0010a82e01ed4072b7d3af02010101010101012e010101010101020301260
12b26010101010101010101010101010101010301010101030359b10103010301030101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010187070201010101020101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010000010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
0101010101010101010101010101010101010101010101010101010101921e010301012603010
1010101010101032c0202508463af846026023c65af65612e02022b0102010301010126012d0103
020101032e0101012601260101040101010101010101010101010101032646b10103010301030
10101010101010101010101010101010101010101010101010101010101010101010101010101
010101010101010101010101010101010101f20c01010101030301010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010100000101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
0101010101010101010101010101010101010101010101010101010101010101018c8b01030203
2601010101010101010101010102012601010302020101022c0101020101010101030101030301
26010301012b01010101012c0101260103010201010101010101010101030101010346b1010301
03010301010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010615010202030301010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101000001010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101738
b262b030103010101030301010101010103030101010101260103020101020303030303030301
26010103030101010101010101010101010101010101010326010101010101010102022601020
3f4be0101010301030101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101730c012601010101010101010
10101010101010101010101010101010101010101012c032601010301010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010000010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101426e260101010101020301010101030203030303030202032c01010101262603010103010
1010103010302030101032c262c030126020101010103030301010103010126260202012601012
601010120db030301010103010101010101010101010101010101010101010101010101010101
010101010101010101010101010101010101010101010101010101010101f65e02030102020301
01010101010101010101010101010101010101010101010226010101012601010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010100000101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
101010101010199c90102012601010101010302020101010301010103030101012c01012c01010
10103010101010301020101010301010103010102030101010101010303010126010101010101
0101010102022b01f48c0101010301030101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101870b03010
12c030101010101010101010101010101010101010101010101010101010101010201010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101000001010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
101010101010101010101ec1fa9626575625b63655b656364666684655b62625b6163635bab646
3d084635b6563626365655b65616466616564686364636562625b636462636362646684636365
6384645b6563656364478460a3060101010201010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
99110101262601010101010101010101010101010101010101010101010101010301030201030
12e01010101010101010101010101010101010101010101010101010101010101010101010101

01010101010101010101010101010101010101010101010101010101010101010100000101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
101010101010101010101010101010195ea30fcfc384383bd7cd9d9eb5599429942427695fc418d
4183f9388cefbe99db8c06958cb1bedaebbedb8787068cd2eff69bd2769992f2d9da87f2f6889bd58
cf6d2eff6ef9b88da99efd56d24769a5501010103010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01881101010101010201010101010101010101010101010101010101010101010103010202010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101000001010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
1010101010101010101010101010101012243020102022e01010303010101262d012e502b0101
01012e2d010134cf26342b030101262c02010103262e2b01033c502631af0103042c01022e2e2b2
b2d04012e45502650312e502e344545502d0e992c0201010103030101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
0101010101db122c01010103010101010101010101010101010101010101010101010101010103
03012c032b01010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101000
00101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
101010101010101010101010101010101010101c42801020101010103022626020101010101010
10101010101010201010101010203010103020301020101010203010101010302010102030302
02020301010101032601010102010101030101010110992c020101010303010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101541903020101020101010101010101010101010101010101010101010101
010126012d012c01012b0101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101000001010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101382f012b2c010203020101010103010
102010101010203030201012601012b0101010301010101010101020101032601010201010203
01030201010101010101260101021610000026060f002220574d46430100000000000100000000
00000007000000002000005c4f00005ccf0000020203010101020126020179be010101030103010
10101010101010101010101010101010101010101010101010101010101010101010101010101
0101010101010101010101010101010101cc140101010102010101010101010101010101010101
010101010101010101010150a3223069260101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010000010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
0101010101010101010101010101010101010101010101010101010101010101c4270301030101
010126012601030101020101030101010301260101030126010101260303012c010102012c0102
010301012601020101010101012c0301030126010201010201260101030301012dd8fc01010301
03010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101991f010201010103010101010101010101010
10101010101012b0101032c01030201d800a7650103010134012e012b010101010202010303010
1012601020302012c012c01012c01032c0126010150010201030201032c0101010101010101010
10101010101010101010101010100000101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
101010101010101010101010101010101010101010101010101010101010101010101c42703010
3010101020301030101030102010301012c02010202030101010101012d01032b2c02262b26010
1010301020201010102262c012b010101010101010101010102260101260101012c0101e2fc010
10301030101010101010101010101010101010101010101010101010101010101010101010101
0101010101010101010101010101010101010101010101f6180101012c03020101010101010101
01010101010101010302010201012c0101026400570126012d0301010101012c03030302012603
0101012b01012b010201010103012e01020101012d012b0126260102013401010301010101010
10101010101010101010101010101010100000101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
101010101010101010101010101010101010101010101010101010101010101010101010101c42
70301030101010301010201010301010101010201010301010101010101030101012601260101
01260301012e020101012e020301032601012c010226012b010101010101032603010101262b03
7dfc01010301030101010101010101010101010101010101010101010101010101010101010101
0101010101010101010101010101010101010101010101010101ec120101012601010101010101

439

010101010101010101010101012d2c342e012b0201d0000d03042e012c012c2b012b0126020102
2e010126022c012e030134010103012b012c0302012b0101012b0102012b4e31012c0101010101
01010101010101010101010101010101010101000001010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
101c427030103010101020102262b010303012c0302030101030102020101022601020101012b3
b18f45ee82b01030101022c03010101010101020101010301010301030103020101012c0126010
101017ffc0101030103010101010101010101010101010101010101010101010101010101010101
010101010101010101010101010101010101010101010101010101018c1d030301010101010101
010101010101010101010101012601f7b8747d5b387f0197d7987632d9c70102010201a0de01033
16c66010101453558902b12515f0d54ef83c101012e189d98b330b204500c285a5ad80126010101
01010101010101010101010101010101010101010000010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101c427030103010101010101010301012601010101010103262c02012c26010103020101020
12af0006e610101260101260103260201030301012603020101340101030103010102020101012
6032601a5fc0101030103010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101556e01030101030101
01010101010101010101010101010101ab727738279482fc03665cd79e041a7aaf012e0104388c0
1032a0012012b026c00b78938e5d4e4afccced10226010e00da0c540082702e771701756a84010
10101010101010101010101010101010101010101010100000101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
0101010101c4270301030101010126010201260101020101010126030101030101010303010101
030301010f9acf01010301010101030101030102010203010103010103010101010101030103012
d01010126018bfc010103010301010101010101010101010101010101010101010101010101010
101010101010101010101010101010101010101010101010101010101010101429f01010103030
10101010101010101010101010101010101dc829001349f524e019100352b012e16eb2c012ee08
080f40183009d60012c8d006401b64db102013d3d03010120829f02016452215062380201a93e10
2b020101010101010101010101010101010101010101010100000101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
1010101010101c4270301030101010101012b012d03012c012b2b0102010326012c01032d01010
2260301260314e5500326012601012c012c03010126030101032601022c012602012b01012c010
10101010401010240fc01010301030101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101016a9f0101030
101010101010101010101010101010101010126f5000e02023b723c2cab4de30101011c524e030
12880b6d545360b0e670101b65ccb2650bb7c01017c550201015e4d330303cf52b531013401c9b5
e1c501260101010101010101010101010101010101010101010100000101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
0101010101010101c42703010301010103033caca8f50e6c4431012b0103de890c65010101015d
1d0d7d450201020972a010cb6201030103231c2220af0101034ef516e875b98434ddddfe5f2b0103
ab133f7b794a0102b3fc01010301030101010101010101010101010101010101010101010101010
101010101010101010101010101010101010101010101010101010101010101010192f50103030
1010201010101010101010101010101010101011b000d26013bc86002e00049012c0140d791262
381ec038710f86bada10126018aa7207500da01013876012c01488275010145b529032c0110004
d8901020301010101010101010101010101010101010101010101000001010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010143350301010101010301477e30c75fa294982301a9d2826fe3d91f2e01698
014ede8861001031000cbdec1db89010244b0f83d2ffc4e2b44c24b157dfc4d1701dde5a16401260
18f7fe17715610101dc550201010102010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101b16e2b010
103030101010101010101010101010101010101011e001d010346e68f01f3001601020114005b0
11000b301ede155013c384501232a453344e1c6010143da012e011300ca010223e73e012638c81
54a01030126010101010101010101010101010101010101010101010000010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
010101010101010101013d3503010101010101019641262e01015b00a12b6b00baa9018f100450
d63803260211e5680148b4232e017000783c564d25012c6e950151e7ed012b20e5cf2601bc1a2c
010203013377fc2c0202011dda0201030102010101010101010101010101010101010101010101
0101010101010101010101010101010101010101010101010101010101010101010101010173a
601010101010101010101010101010101010101010101031c00082b017b72a901a8bb8601012d9
44b2d2d812123014ee5c901013da50208007d01af00280101c6d604012e4eff3f01024e52292dafe

1830101c1602601010101010101010101010101010101010101010101010000010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101c4270301030101012634708b01010301600027011882ac010101620
170e1c9010101c5006701107245032650000b3b00da010201013f64cd27012e018b9c0401011bb
80250012c027c00440101012b69da0301030102010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101f
6792c030301010101010101010101010101010101010101015ee10701011de7452bbe005608d37
34d69016bbbf1012c6ce13f02010b860237005703f74d1a021c9a9af9168701b2f1260110823a020
16a35016416340150010101010101010101010101010101010101010101010000010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101f1270301030301010101f33c0101018443001f015e3a022626020
1010b008e260202a8e11b011fc23c012eafe57c0b004001022c012e4ee1a30101011e9a6401012c
bf167d9fdd15bbc275022e012dc0060301030102010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
db6e2c010101020101010101010101010101010101010101a95a42d3039ec6d93101fe06eedcc3
240e2e02b3a73d6368f6cc1a262cb2c3de2cc0c64ce3573101338d1dd3943026021879b66c4d362
d01e90f9e1c0a2c260101010101010101010101010101010101010101010101000001010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
101010101010101010101010101f127030103030101262c01012c2c7fd4bbce8f030b7302010103
015090007801032ba20020021fd604010160cdecc00083120b1809b6508110012e34c0e75d022c
01c95161ad93f64d5a26012d01018beb0301030103010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
1016a6e010103010103010101010101010101010101010101012603022b010126030301260101
03012601010250012303232c0104022e022c0101032b470401012e012601012c012c010150cf8f5
64b4501012ccf450103012c0101010101010101010101010101010101010101010100000101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
1010101010101010101010101010101c427030103010101012b03012e08e500f88e26016bfacf2b
0137480133cd69030126f9bb8e03119c600101dd002823b407e08ea14d57016df10103011abb310
12c0134414e0101c382e001030103018bfc0101030103010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
010101d5190203020101010101010101010101010101010101010101010203012e0201022d010
12d2c0101032d02010101032601010301012c012e2b0101020134010101010101012e012c262b0
18f9cce03262b010301012c2601010101010101010101010101010101010101010101010000010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
101010101010101010101010101010101013d350301010101012c0301c59882aa07610301032de
c574734ef6f6001288d6626b3e17603619be5177fa5e69cd3031feb643428d4ad0144ce7b4591925
c6003012b01a1e402934deb0201012b2601a5fc010103010301010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
0101010101f21a2c0101010202010101010101010101010101010101010202010101012c030101
260101010126260126032b26020126012d2602012d01012c02012b01012e0201020101012e0101
2e01f700e6042c012d010302012b01010101010101010101010101010101010101010101010000
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
0101010101010101010101010101010101010143350301010101010101267682d22301012e2e2c
01033f41b873b601012cf4aeae86dd0103313f5ade49808ca42c01032af985da4a010201ed27bf76
bfe745020301015fec01c65284012c012601037bd90101020103010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
010101010101c31d01010201010301010101010101010101010101010101010301010201010101
012c03012c0101012b012b0101010101010101030101010102010126020301012b01020102012c
03012c840f082b010126012b0126012b0101010101010101010101010101010101010101010100
00010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101012f27010303010101012b036daa3c2c0301a2ac
012b0101348f2e01020201012ea9340101260201010302260203030226022b2e26010302020101
af038bc28f0301010126541ecd2803022b030101013bd9030303010301010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
0101010101010101861801010101020101010101010101010101010101010101030102012c0103
01010201012601010302010101030103030103260101010301030102030101260103012c010303

441

0101012c010101030101260101010101030103012c0103010103012b0101010202010101020101
26000001010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
010101010101010101010101010101010101010101013d5a02030301030326013498952c0101af
896126012603262b030103020301022e0301032c26030301030203010103030102260101010101
2e010301a656472b2c010126f49c003b0101030103260267d90303030103010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010188a30101010103010101010101010101010101010101010101010301
0101012603030301010102010101030101032d010101010103020202010101010201010303260
10101012d012d01012b0201030201032c260102260103012602010103010101012c01010103010
32c032601000001010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
010101010101010101010101010101010101010101010101012f49010101010101012d010e9c18
4ef424814e01010301010101010101260201010103020301010101010301010101030101010101
010101010202969b004e01012b010101bfc8230301010101010140410103030103010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
101010101010101010101010101ec7901030101010101010101010101010101010101010101020
32c0101022d010301010202010101262c01262d01012c0101012b020101012c0101022c0201260
3012c022601010101012e01012d03012c03010101010101012c01010126260201020102022e010
30102010301020000010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
1010101010101010101010101010101010101010101010101010101c42f0103020103010301010
1468d8d8908102c010303030101030201010202010126260301010101030303030303030303010
10101030303020101e006f0a901010201012b3f19262c01020202022cc941010303010301010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
1010101010101010101010101010101eca10103010101010101010101010101010101010101010
10301010126010101010103020301010201020101012b0102030201010102030301012b010101
030301020102a90c430b7501010103012e01010103262601012601010101010301010302010101
2b012601020301010400000101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
010101010101010101010101010101010101010101010101010101010101c42f01030201030101
2b0102012b0101010126030101020101010101010101010103010101020201010101010101010
1010101010101030301012b030145012d03010302262c0101020101030301017d7c01030301030
10101010101010101010101010101010101010101010101010101010101010101010101010101
0101010101010101010101010101010101010142f5010101010101010101010101010101010101
01010101010203010101012c03020101012626012b01022c012b010101260101012d0301010201
0326010101030134eeb0f0f230c66ec5012b01260101030301010301012601262c0103012626012
d2c020102010101030101010000010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
0101010101010101010101010101010101010101010101010101010101010101c42f0101010101
0101010201020126012c0101030126010101010102020301010103030103260201030101010303
030103010302020303022b02012c01012c010201010102012c2c26010202030101f47c01030201
02010101010101010101010101010101010101010101010101010101010101010101010101010
1010101010101010101010101010101010101010186b203010101030301010101010101010101
0101010101012d01012d01012601012602032b03012e0134010201260101010101340101012e0
134030101012e030101343eda2b012b016616d101020101030101260301022603010201260101
260101030126012e012b010102012c000001010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
1010101010
In this example, the schedulable object began its execution with the heap as its active memory area. It
first entered a scoped memory area (ScopedA) and then, while active in that area, it entered into the
immortal memory, and then into a second scoped memory area (ScopedB). The stack can be used to
check for invalid memory assignment to and from scoped memory areas.
A reference from an object in one scoped memory area to another object in another scoped
memory area below the first area in the stack is allowed.
A reference from an object in one scoped memory area to another object in another scoped
memory area above the first area in the stack is forbidden.
Hence, if O1 is created in ScopedB and O2 is created in ScopedA then
O1.O2Ref = O2 is allowed as O1 will be reclaimed before O2 and hence there will be no
dangling pointer
O2.O1 Ref = O1 is disallowed as it will result in a dangling pointer in O2 when O1 is
reclaimed.

The memory assignment rules by themselves still do not prevent the dangling reference problem.
Consider the case where a schedulable object wishes to enter a memory area that it already has
active. If this were allowed, then the stack illustrated in Figure 8.4 might develop.
0100090000034ae7000000001b62000000001610000026060f002220574d464301000000000001
006be400000000090000000020000068e8000068080100010000006c0000000000000000000000
4e010000030100000000000000000000352e0000cc23000020454d4600000100680801000c0000
00010000000000000000000000000000000005000020030000c40100001a010000000000000000
000000000000e3e306006e4e0400460000002c00000020000000454d462b014001001c00000010
0000000210c0db01000000600000006000000046000000984200008c420000454d462b22400400
0c000000000000001e4009000c00000000000000244001000c0000000000000030400200100000
00040000000000803f214007000c0000000000000008400005e4410000d84100000210c0db0100
00000000000000000000000000000000000001000000ffd8ffe000104a464946000102010048004
80000ffed0efc50686f746f73686f7020332e30003842494d03ed0000000000100048000000010001
00480000000100013842494d040d000000000004000000783842494d03f3000000000008000000
00000000003842494d040a00000000000100003842494d271000000000000a000100000000000
000013842494d03f5000000000048002f66660001006c66660006000000000001002f6666000100
a1999a0006000000000001003200000001005a00000006000000000001003500000001002d000
000060000000000013842494d03f80000000000700000ffffffffffffffffffffffffffffffffffffffffffff03e80000000
0ffffffffffffffffffffffffffffffffffffffffffff03e800000000ffffffffffffffffffffffffffffffffffffffffffff03e800000000ffffffffffffffffff
ffffffffffffffffffffffffff03e800003842494d040800000000001000000001000002400000024000000000
3842494d0414000000000004000000023842494d040c000000000d6c0000000100000070000000
57000001500000723000000d5000180001ffd8ffe000104a46494600010201004800480000ffee00
0e41646f626500648000000001ffdb0084000c08080809080c09090c110b0a0b11150f0c0c0f1518
131315131318110c0c0c0c0c0c110c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0
c0c010d0b0b0d0e0d100e0e10140e0e0e14140e0e0e0e14110c0c0c0c0c11110c0c0c0c0c0c110c
0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0cffc000110800570070030122000
21101031101ffdd00040007ffc4013f0000010501010101010100000000000000030001020405060
708090a0b0100010501010101010100000000000000010002030405060708090a0b1000010401
030204020507060805030c33010002110304211231054151611322718132061491a1b142232415
52c16233347282d14307259253f0e1f163733516a2b283264493546445c2a3743617d255e265f2b
384c3d375e3f3462794a485b495c4d4e4f4a5b5c5d5e5f55666768696a6b6c6d6e6f637475767778
797a7b7c7d7e7f7110002020102040403040506070706053501000211032131120441516171221
30532819114a1b14223c152d1f0332462e1728292435315637334f1250616a2b283072635c2d244
9354a317644555367465e2f2b384c3d375e3f34694a485b495c4d4e4f4a5b5c5d5e5f55666768696
a6b6c6d6e6f62737475767778797a7b7c7ffda000c03010002110311003f00f5216d65c581ed2e69
8736448246eda7fb29fd4ae1a77087e8cd7931bbdbfbded5ccb3eacf51fd97898b68c47e574ebb15
d565b439aec8662ddf69fd69ce659663db6b77d8fdafcbfd6edb6eff0008aae3fd48caafa65f876bb16
cb6ce9d93855dbb48db65f6e45f5bdb2d739b5575e4fe6a4a7b06d95ba36b81998820fd13b5ff00e6
b90aecdc4c7dbeb5ccafd4b1b43373809b5ffcdd2dff00857fee2c0c5faa9663f50aef2da2ca19f66b2
a69758dfb3db8ec752f6e2e3d5b28b6bc8f56e7b5eff47d1b6fbacb2acbfe6956a3ea7e6d0705ecfb2
eec3aba635e06e02cb303ed4dbecfe6bd9ea3333f4167bdff00a0494f5e92ab9dd3a9ced9ead97d7
e9cc7a175b44cfeff00d9df5fa9c7e7aabff37b13fee4e77fec6e4ffe97494e85f918f8ec166458ca585c
d6073dc1a373c8656cdcefceb1eed8c59df59dac7744bdaf68731cea5af6b802d2d3754d735ed77b
5cc737e921e47d5dac524635f94fb380dbf3728b35e7d40db5ceb1bff05fe13f9bf52b54f2ba40e91f5
62fc6f5ecc973efaee7bac24b439f7525f5e354f759f67c56bbf99c7f52cf4ffd258ffd224a6f6774cfab7
838cec9bfa6e31682d6b5adc7acb9cfb1cda69a98367f3975d6575314707a77d5bcd65859d2a8a9f
45869b6bb7198c735ed0d716eacdaf6ec7b1ecb6bdf55acf7d562b7d6b11f9bd3adc56d14e532d86
dd8f904b58fac91eab5b63039d55db3df459b7f9dfdcfe759cf62fd5aeb2c75232c559f85b7228fb0e4
df63cd14df653753b729d4dafcdbb1d94beafd27a4faabf4eaa727f47ea5a94eff00fcdfe81ff95b89ff0
06c57ff00904bfe6ff40ffcadc4ff00b62bff00c82e5bad7d5fcdc7e9d9b95956d42bc4a3aa3ecc92e3bf
29998db2ca71b26b0caebabecf61a7fd3ff44c7fb37f39fa1b27eacf507e75d9b5d38e70b38bc59d3a
bc8b29adbea3716a767d77e3d3fa4bad6627bd9e955f4fd5a6ff00b47abea253ad7e07d57c7cfc5e9
f674dc6f5f345aea631ab2d8a431d6ef7ecf67b6cf6a1fd87eaae5519e30f0b0ecb304be8bf6d15fb2d
6b1b6967f37eedadb1bff9ed52fd85d769ead567d4cc7b8e23ba85acb1f6bc3ee3985b66256f6fa2ff
0045b89e9d588ffd35bfab5557a3fe82b2d5d0b33a4dcfb71ecfb4e1db81f66cc7de582e0ea05b662
5d5fa1456dbf77da325995eafe91fea556eff00d1a4a7ffd0f554924925292492494a492492529657d
67687f44bd84901eea5a4b496b803754d963dbee63ff75ecfa0b5565fd64ff91edff8ca3ff3f52929ad9
bd2ba2e054dbb272f3eb6bdedaeb68cecd7b9ef798655554cc97db6d8efdc6353e0f49e919f8cdcac
5caea0fa5c5cd05d9b9ac21cc73a9b58faedbd96b1f5db5beb7b2c6a3fd62c239b84ca0e23b319ea
87b85560aafa8b039f4e5e0dd63aa6b32a9bdb56cfd353fd7ff07665f4ee99d7aacbc73d52a39d4be
bac36d170add8efab22fcb6dd95555e9556df918d661b32adc3f53d7c8c57d16fea96fae929d5ff009

443

bb85ff7233bff0063b2bff7a121f57b0c71919dff00b1b947ff0076172d9bd3bac74fe98dc8ccdf59c7a6
8c6cd78ca7119779ccc475799597bebf4f7d7f6a659664fd9ecfd6bec9fd168deaed1d13acb73c3ae
aeffd9b7ddeae36353915b4e1c5acbf65dbbfc15db777f93ee7fd9ffe4fafd5c47faa929d0cea3a1f4f7
3d997999f59ae87e5be32735f14d6e632eb66ab1ffcd3adafd4fe47bff9b4318dd1f2b1739b8b999ae
bb16b77ad4d99596cb185cc73ea75b4645acb9adb1beea9ef66cb165d9d0feb05b85975df886ccd7
74bccc0b3205d5b8645f92fadd564d5bdec7578ff00ce58e65cda3ecbfd168aadaeba56b61e065507
ac65d95dd4e364e3b1b4d59568bef0ea9b7fadfa76d994e6e23bd5afd0a1d976ecbfed76fa74faff00
a44a7fffd1f554924925292492494a492492529657d680e3d12f0c77a6f2ea835f01db5c6dab6bf63b
dafd8ef76c5aab2beb3ffc8b776f7d3aff00d7aa494d6b5f9d5751a7a6bfabda327258eb6968c46969
63205bfa76d7e833d2df5eff0051ff00e12aff0048ad7ecfeb5ff96a7ff61eb59ff5a3a7756cccb6bfa752
f25bd37a8e3b2f6bd8cdb7e4371fec81bbac65bf4f1bf9c6b7f47ec553f61f5765f8d6d34d8c7d59585
6b9e6e1fcdb6af4baaff8576ff5be8e4b7fed659fa6fd37f3a929da7f4deaef10fea7b9bddaec7ac8521
81d6873d567c7f57aff00bd73b83d13af558748be8b5f935e374c74baf6b88cac7bedfda566e75ee6f
acec1f419eaff0086c7fd57fe0549bd13eb137146f16bb29b45d4e5dacc8da72ad764d1661e5b36dc
cf4fd2c5ab23f9df47d0aaefb053fa0494ef8c4eae5c583aab4b9b1b9be83244f1bbdff9ca95d666dbf
b4708753df7e1d3bb22b762ed005cc7be8732c716d76b76d6ff00e69f67fc22cfbfa0750c6cdea670b
08bf1f332319d5bd9634114d788ec5fe6edbea65afc6cb67f3798db6867acccaaa9caba8f4958e958
1d571ebea393d4ab731f774cc3a9cf7bdb639d7535640ccdeeadf67d1b2d6fe93fc2a4a7ffd2f55492
4925292492494a49249252964fd69ddfb0728b002f6fa6e6349805cdb2b73185ff0099bdc36eff00cc
5acb2beb409e87903ceaff00cfb524a6be4f56fac98b53aec9e9d814d2c8dd6d9d45cc6093b5b2f7f4
e6fd27151c7eb1f5932e86e46274ec0c8a1f3b2daba8b9ec741daedaf674fdaedae6ed56beb16133
371b1e9736e6bdb90cb29cac71b9d8f6d61f6d194ea8ee6dd57a8df45f5fa76ff3dff5c665748fdb4cc
9aa8ea355d452f687d3661d61953ee19791665df974fe92cc67751c5761e4d95647e8ff004b97e97
a598929d0fb77d6dffca8c3ff00d8f7ff00f23937dbfeb77fe53e27fec7bbff0091cb0ecc8facf460517e4
59974d871ea6752de2a86e59ccc5abf54f4dafdccbf1ecce6feadbe8fb37d97fed4ab547fce3fda76e3
e45b974f4f3713d3ae6d6db5e58db58eb29ca78739d57a8ddccc5b736a7b3ec1fcf7eb6929bdfb63e
b30c818a7a5e0fda4b0da28fda2779ac10c75be9fd837fa6d7b9acde8593d4feb45d85904749c435
ecb18f7b7a8174168732d6ff40fa75b9ae67f5d53c2b3adb6fa7a965e2e53b3a9e9f975e456581cd1
92fc8c77d34636cfd13e9f67e81f5bff00a2d6cfb459eb7a889d2b03a9f487f56c1ca0eb3132f1bed94
dacdcfadb7ed753d458fbeefd27ab94f6d39bb3fd25b92929ffd3f554924925292492494a492492529
647d6b76de8194fda5fb4d6ed8d12e745b5bb656d31bac7fd162d7595f59b5e8d77f5e9ff00cfd524a
447eb1dc0c7ec6ea5a18915547ff7652ff9c96ffe53752ffb6abffde85b4b9afac1959947d69fabf5633
ad7b2f6e61bb16bb7d36dbe956c7d3ea35ee6d6ff004acb3fd7624a4b95d66acca4d195d0ba85d4b
8b5c6b7d359692d22c61dbf68fccb1ad7a37fce4b7ff29ba97fdb35ff00ef42c5e99d77ab5151c4aaa7
64651b73322c6e5dc0eda31f31dd3fec95645b6b3df4515efb2ffd332bd95fa95bfed9ea32d5ff005c3
21991974d35d17961a3eccf639c6b22ecd774722cb7fc2babdbebd9e8d7b2bb37e1fe93d0f5ac4a7
43fe725bff94dd4bfedaaff00f7a10733eb158fc3bd9fb23a937754f1b8d55c0f69ff0087577a0f54c8ea
38d7fda6b6b3230f22cc4b9f5cfa563ea8dd7636e2e77a7eed8f63ff0099bd9763ff008256fa87fc9f93
ff001367fd4b9253ffd4f55497caa924a7eaa497caa924a7eaa497caa924a7eaa597f59881d1ae278
0fa49d09d05d57e6b65ce5f34a4929fa8bedd4831b6ed3fe06dff00d26b3f2b3bead7ed3c5fb636afd
a907ec5eb527ed11aeefb2fa95faffbdfcd2f9b52494fd0d8f9df50fd1c5fb33707d1fb4fea5e9d2ddbf6
af6ff45d95edfb67f35fcd7e9ff9b40ea167d43ca66552fb31b1edf543f36caea636ddd5e463dd73329
cea5dedb736bc5ab2d977f38fd95ff3be9af0049253f4de16774bfb2d7f6069fb247e8bd0a5fe9c4ff83
f4abf4fe97eea6cfcda5d819236da26ab39a6d03e8bbfe0d7cca924a7ffd93842494d040600000000
00070005000000010100ffee000e41646f626500644000000001ffdb008400040303030303040303
040604030406070504040507080606070606080a0809090909080a0a0c0c0c0c0c0a0c0c0c0c0c
0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c010405050807080f0a0a0f140e0e0e14140e0e0e0e14110c
0c0c0c0c11110c0c0c0c0c0c110c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0
cffc000110800c300fb03011100021101031101ffdd00040020ffc401a20000000701010101010000
000000000000040503020601000708090a0b01000202030101010101000000000000000100020
30405060708090a0b100002010303020402060703040206027301020311040005211231415106
1361227181143291a10715b14223c152d1e1331662f0247282f12543345392a2b26373c23544279
3a3b33617546474c3d2e2082683090a181984944546a4b456d355281af2e3f3c4d4e4f465758595
a5b5c5d5e5f566768696a6b6c6d6e6f637475767778797a7b7c7d7e7f738485868788898a8b8c8d
8e8f82939495969798999a9b9c9d9e9f92a3a4a5a6a7a8a9aaabacadaeafa110002020102030505
040506040803036d0100021103042112314105511361220671819132a1b1f014c1d1e123421552
6272f1332434438216925325a263b2c20773d235e2448317549308090a18192636451a27647455
37f2a3b3c32829d3e3f38494a4b4c4d4e4f465758595a5b5c5d5e5f5465666768696a6b6c6d6e6f6
475767778797a7b7c7d7e7f738485868788898a8b8c8d8e8f839495969798999a9b9c9d9e9f92a3
a4a5a6a7a8a9aaabacadaeafaffda000c03010002110311003f00f7f62aec55d8abb15762aec55d8a
bb15762aec55d8abb15762aec55d8abb15762af15fcd6f2a7967ce9f9bff00961a1f9b749b4d6f4736
1e67b83617f0a5c40658934e08e51c104af23434db154f7fe85d7f21ff00f2dc7977fee1b6dff3462aef
fa175fc87ffcb71e5dff00b865b7fcd18abbfe85d7f21fff002dc7977fee1b6dff003462aeff00a175fc87ff
00cb71e5dffb865b7fcd18abbfe85d7f21ff00f2dc7977fee1b6dff3462aeffa174fc86ffcb71e5dff00b86
db7fcd18abbfe85d7f21fff002dbf977fee1b6dff003462aeff00a174fc86ff00cb71e5dffb86db7fcd18ab

bfe85d3f21ff00f2dc7977fee1b6dff3462aeffa174fc86ffcb71e5dff00b86db7fcd18abbfe85d3f21bff00
2dc7977fee1b6dff003462aeff00a174fc86ff00cb71e5dffb86db7fcd18abbfe85d3f21bff2dc7977fee1
b6dff3462af1aff9531f941fe3cfa87f82344fa9ff00cac5fd17e87d4e1e1f53ff0004fd77d0e3c69e9faffb
ef4fec7a9f1fdac55fffd0f7f62aeae2aea8c55d8abab8abaa0e2ad5462add7154a2d3ccba26a1afea7
e59b2bc49f5bd1a2b69f54b54a93025f7a8610e46c19846cdc6bcb8f16e8cb8aa6f8abb15762aec55
d8ab4c4282cc68a05493d0018aa0746d7345f3169d16afa06a36daa6953d7d1bdb2992e207e2687
8bc6594d0ec77c551f8abcb3ce269f9ebf95a2b4ae99e6a1d2b5f834d38abd4f15603f999f99f6ff97b
fa0b4db5d2e7d77cd9e6abdfd19e5cd12ddd20f5e754f524796793e08a28d3e2773c8ff2a362a9343
f9a9e71d2fce9e57f2579dfc91fa2a4f34c97305aebda7ea49a8e9492db5acb75e8b3bc16f2895845
45468915aa4a3bf0618abd5aa3156ea31575462aea8c55d518ab5518aa8de4b3c36b34b690fd66e
9119a1b7e623f51c0255399d96a76a9e98abceff25bf3664fcddd1b5ed5a6d11f409b42d6ef34096c
659d2e9cc962b1f36678d552bc9cad14bafc3f6ce2a8afcc7fce0f2b7e596b3e4dd135f92977e74d51
748b101d50440aef3c9cbfdd6b234519f7947862af41c55e01c53fe563fd91ff009356bd3bff00cabfe
bfdb8abffd1ed3f969a227fce45fe52dcfe62798756bbb7f34f9acea4344bab1bb9a25f2ec714f2db5a
c7691c12a2878c46af2c847ab3333076e1c555559e7db1f31f957cfbff0038f165aa798af354f314b7f
3e95e61d4e1925b2b7d4d6dec4b969eda373193cfe25e409fb5be2a8e641a67fce61a687a75eded
b69dac7916e752bdb24ba9ded8ea0da97a7ebac323bc68e106dc147e2715609f94df96f79f9a1ae7
e6ce95e68f3ff9aded3cb3e7696d3474b7d55e29a21a7d3d391e5e24bf25a2703fbb4e3cd1039e58
ab5e44fcb3d4bf333f303f3afcafe62fcc0f35ae8fa1eb7a7c1a60b5d4da2b88e4588cab21942ee147c
091d0443ed943270655532d2dbcdbf9e43cf77eda54da8c361adea3e58f2fdc5b799ae7467d223d2
c2c31cc20b78dab3bbfefa496467670427158be02aa5df9bd67f9c3e56fc8dfcbb8fce3e6eb9b0fcc3
b3f33699a35fea9a25d3bdbdd5bcf70de94b728e8827915238cb2b8e0cdcb972e4715643ae69779f
953ff00392df95767a06bdad6a169e7d835ab4f33dbeafa94f7b15c3d8409345388e43e9c6e19fecc
4b1c600e28883972557fe4c791fcb51ffce47fe786a31c370b77a4ea7a3cf647ebd7b4f52ff4f69a732
47ebf09417766512abfa7feebe0298abea1ad3157954df9a9e7e8a69625fc9cf334a88cca92a5e683
c5c2b101872d481008a1dc571559ff002b5ff302ab5fc99f33d36e47eb9a06c2bbd3fdc9efb62ad7fca
d8fcc1e4e07e4c799e83fbb3f5cd037f9ff00b92dbf1c554dbf373f30c3a28fc96f33907ed9379a10a1f
6ff00722411ef518aaab7e6d79f14293f933e6aa1347a5ce8048dbb01a9eff862af25f313eb9a2de6a
5f981e4cfcbcf34fe586bbf15ceab7d15c796ff00405f15dcb6a76571aac50127a19e3315c6fb4add31
57a7ff00ce3d7e72799bf38fcb126b3e64f24de7956583888afa460da75f86afc7685f8ca576a9f81a3
dfe199f7c551be75556fcf7fca92c68574ff351515a54fa5a78a7dc4e2af56c55e3bff3903f9337df9b9a
3e8d73e59d79fcb7e7ef295efe96f2c6acb56892e28014954548562abf100dc78fd975e48cabcdbf2d
bf3cfccefe7ad27f263fe725fcb11e95f98493add79535f8a3e5a76a3731092349632b54590a9608f1
9e0cc5919217a21559af97b59d4bf3bfcdbe7fb283cc7a8e83e52f256a87cb7a7c1a04c2cee2e2fe0
855eeaeae2e38339e123fa7142bc62f819a4f5790e0aa45e65f3bfe6efe5cf963f2ff00f2ebcd3ae58d
dfe6679e3cc3fe1f83cd9656e244874a5901376d0c91a46d75e9b22f1e1e9736e5f1f0f89556fccfd67
cd3f903ac792fcd765e63d535ff0022eb7ad5bf97fcd9a4eb93477a6337ea4457b6d314592268d918
b449fb97e8234eb8aa59a6ddfe6879dbfe7203f343f2ce6fcc6bfd27cade5fb0d2e6b21a65a58c37b1
fe908d6e38c52c90c8a38f22af214691871e2c98ab1fb3fcf5fcc0fcb9f2f7e68790fcc77dfe28f3cf91b5
8d2744f2ceb72c2826bb83cc8c059bdca03144f2c295720ba7a8d44761bc98ab31825fcedd17cf7e
53bdf2be9fe6ad5bcb1a85e35bf9eec3cd7368a6186de6e08b7968d6d39689a3259da186b1b28a7
0e58aa7be4ed6f5bfceaf3079daf63f305ff97fcade50d7a6f2de8769a33c76f2cf75a6aa1b8bbba792
391a40656e31c05561f4d7f7892f2a8558e7fce17dbdcdbf92fcf90dddc7d72e93cf3ada4f765444669
13d15690a2fc2bc88af15d862af3dfcd3d5bf2c7f39b4bfcd5bad57cd1a75af98a0ff00707e4089e51e
bc27cbae6e1a58c8dd4de5e7a91f25eb0a47c6bfb4abe81ff9c71fcd05fcddfca3d03cd73c81b5b48b
f47ebc9d19751b3a472923b7a838ca3fc99062ac4b927fcac8e83ff26bd3a2f5ff00957dfe7ef8abffd2
ee5a17fce39f9fbf2fb5dd5a0fca6fccc7f2bfe5ceb776f7f3f96a6d2e0d4a4b2965fef058cb3b958f9745
ac7f0d1792cbc715651f98bf91971e62d0fc970f923cc52f97bccfe40be5d4741d56f23fd2492bb2949
c5da3b2190cd525df90f88b7f362a80d2bf237ced6ff9bba6fe716b1e7e1a96b96fa349a2ea3a78d2e
282ce68de77984700594b431292bd4cd3165e465a370c5532fc9ffca6f377e5aebbe73d5356f3158
6b369e74d567f305ddbdbe9f2d935b5f5c7558d9ae66e51d36a30e5b7dac55afcaffca8f3a790bcf7e
74f36ea9e60d3b54b2f3d5eaea5a8d85bd84d6925acd0a34712c32b5cca1d78b00fcd013c790a7d9
c558d5e7fce3e79fbcb1f981e60f38fe4bfe60279474cf37cc6f3cc3a15f69a9aa5a8be624b5c5ba349
1856624920d3a9f89978a2aa987e617fce3feb7e6bf25685e50d1bcd4b05de9fad43e67d63cc1ac5
ab6a37ba8ea96a792332c735bc68849a1451c52348e28d5557154679e3f28fcf1e70fcccfcbefcc94
d6f49b497c88b315d2daca7956ea5d46348af0fac67051405fdc7c0ccbfb65b154569bf94de74d03f3
83cd1e7ef2ff9b2dad7cabe73974ebad77469b4e13de8974a816dd52dee0ca155655043b346e543
7c0037ef3157b0e2aec55d8abb15762ad372e278101e878922a2bdaa36c55e49a6fe4acbaeea70f
993f39b591e7ad66d65fac697a3983ea9e5cd39c13c5adf4fe6e259003fdfdd3cd27f270c55eb60000
002806c00e98abcabcea69f9eff009523f9b4ff003503d3fdf5a79fe18abd5b15794fe60795bf330fe62
796fcfbf9713699245a769f7da6798b46d5a69ed92fede69219a0449218a5e1223ab94919484e445
0abb62ac5f55fcb1f3e7e6bfe66791fceff00989a669be57d0ff2fa69aff4ed2f4fbe7d5ef6fafe6319532
4e6ded922850c48428577660dfcdf0aa96ddfe54fe747e5cfe67f993ce5f9297da25ff95bcf1702ff005

445

ef2df98dae208ed7522087b981ed95890c4f26eed5e055b8a3aaa9f7e607e47f9a3cfde48d19752f3
4467f35fcbdab47e66d23cc02068f4f83508d81faac702b1916d38854a73793e1f55f9b725c555b5df
22fe617e6dde7956dff31f4ed2fcbbe59f2c6ad06bd7b63a75f49aacbaa5ed883f56405edad8430076
2ee0fa8eff000a6dbb62af38d12efcef61ff003975f9c77be4bd1ac35b74d2fcbf1ded8dfdf49a6390f67
17078a65b7b95f86879ab28afec9c55946b5ff38d371e76f22fe605b79b7558adff00303f30b50b7d6
e6bfb2567b4d36e34c554d3ede2af06952145e1248c11a5e6edc57e1c5537f2768dff00392fab269d
a0fe666a7a1697a369b244fa96b9e5f92e5f56d592d98148c7358e3b6594a8f5e4505d96a91a47cb
92aa80d0bf2dff0035ff0029fcfde6ed43f2de0d175ef21f9e752935cb9d3b55b99f4ebad3353b8149a
4478a19c4d131a314a2b5178af0fb4caa47e47fcaafcfbfcb7fcb7f3ef97f469fcbf79e6bf376af7fa9e99
7b0dc5d5aa58bea80a4b70e648a507d3088d144abf69be391b8eeabdd7f2d743b9f2cf903cbbe5db
bd3a1d2ae749b086ca4b1b69cddc48d6ebe9d56629197e74e65994355be2df157897e4afe5a7e6f
7e5c7e6b79db58b8d234ab5fcb3f3c6a0fa936956faa3cd71a75cfc4deba29b5557f509e2e81929f06
e7d3f89547fa83fe564f43ff00936f876ffcb7bf3c55ffd3f7f62aec55d8abb15762aec55d8abb15762ae
c55d8abb15762aec55d8abb15762af0efce1f397963c87f9b9f95de61f37ea96fa3e871d8f9a2296fa
edf8441de2b02ab5a1ab3713c546e7154ca2ff9ca7ff9c7998909f985a50a6df1c8e9ff0012418aaaaf
fce4f7fce3eb0723f31346f80f16adc52a76e9511610000026060f002220574d46430100000000000
100000000000000090000000020000068c8000068080100b8dfa8c55b5ff9c9cff9c7e62c07e6268a
389a1adc81f7546ff462adff00d0cdff00ce3f7311ff00cac4d1791e9fe9229d2bd694c5572ffce4c7e40
3a961f98ba1d02f320dda29a7c8d0d7dbae2ab87fce4a7e40b0623f31742f82a4d6f631d3c2a77ebd
b1579ce89e6fff009c5ed07f30753fcceb1fcd884f99f5c3c75732eb113db5cc70af18a27878050912d
045c78f4fb4d8abd1bfe8653f20abc7fe562e855dbfe3f63a6fb75ae2aac3fe722ff214d08fcc7f2f6e48
df51b71d3e6f8ab87fce457e4330247e63797be1eb5d46dc1edd2afbf5c55b3ff3913f90c0a83f98fe5
df8aa07fb92b63d3c7e3dbe9c556aff00ce46fe4296641f98de5f05054d750800a1f025a87e8c5557f
e8617f227a7fcac8f2dff00dc56d3feaa62af06ff0095c3f955fe3ffaf7f8c345fa97fcad3fd27f58fd2307a
7fa3ffc0df52fadf2e74f4beb1fb8e7f63d5f82bcb157ffd4f7f62aec55d8abb15762aec55d8abb15762a
ec55d8abb15762aec55d8abb15762af2bf39c692fe79fe57ac8a1d7f45f9ab66008fb3a60ef8abd37e
a567ff002cf17fc02ff4c55df52b3ff9678bfe017fa62aefa959ff00cb3c5ff00bfd31577d4acffe59e2ff008
05fe98abbea567dede2ff00805fe98abbea567ff2cf17fc02ff004c55df52b3ff009678bfe017fa62ad1b
1b22286de2ff00805fe98ab7f52b3ff9678bfe017fa62aefa959ff00cb3c5ff00bfd31577d4acffe59e2ff0
0805fe98ab5f51b2e9f578a9fea2ff4c55bfa959ffcb3c5ff0000bfd3157ccff55b6ff9591c7d18f8ff00cae
5e34e2294ff00957dca9d3a577c55ffd5f7f62aec55d8abb15762aec55d8abb15762aec55d8abb157
62aec55d8abb15762af2df387fe4f4fcb0f1fd15e6afd5a662af52c55f35fe69fe62f1ff009c85f2e7e547
9abccf77e4df215fe86fa8c175637074d9353d5e4b86852da4be003c51ac6ac5444f196978ab3fc4a
b8ab3ef297953cfbe53fccfbc5b9f326a7e63fcb5d4345e5609ab4914f2e9fa9dbdca0317a8888f22cb
148591e4e4ff00032b3b6d8ab21f30fe6e7e5b7956f67d3fcc1e63b4b1b8b378a2d40b9668ad1ee29
e90ba9515a3839d415f59936f8ba62a9cebfe71f2bf95b4b8f5af306ab6f63a6cec896b3c8fcbd7925
dd12054e4d2bb0fb2918666ec31542f973f30fc93e6d83509fcbfae5ade0d21993578b9fa33d9b282
4fd6629424916c0906455a8df15637a8ff00ce41fe48e95651ea379e7cd1858cb70f6714f15da4e8f3
4214b853173aaaf35e4e3e052d42d5c559b5cf997cbf67a1ff0089eeb54b58bcb8614b95d55a6416
8d0cb4f4dd65af121f90e143f15471eb8aa57e51fcc7f23f9edaee3f296b96baa5ce9ec12fed226297
56e49214cb04816440d4f859928dfb38ab09fce2fcd0f26e97e56f356850f9d17cbfe6bd3ec279a2bb
b49155ed6f12169a08a499e39218de42a008a4224915be01f12e2af22f39f9b3cefa6ffce17681f9a5
a579af54b2f3a69fa369574da84732c9f5a92f2e208653722e125f50d243f16cdcbbd3e1c5590f9d93
f307c89f918df9b7a0fe65ead26bda7e9167acdcda6bc9a75ee9b76658e37920f4d2d62743217e31
98e5d8d077ae2af70fcb4f355e79e7f2ff00cb5e71d42c0e977bae69d6d7f7160d5fdd3cf1862072a1
e26b55afecd315787ffe549ffcecdffa4f7157ffd6f7f62aec55d8abb15762aec55d8abb15762aec55d8
abb15762aec55d8abb15762af2df381ff90e9f95ff00f6cbf357fc474cc55ea58abc97cf3e54fca9fcfe7f
317e5a79c74d373aa79565803bb7182fadbebf6e93c575672a96611b8250d4707922747460b8abc
6ff0026af7f32bf283f383cc1ff0038eb7fadcbe6ff002a5af97a4f30794afeebf797b671ab048a072391
e25aa9e9b1e3f0a344115f862aca7fe718cf92bf31bfe71b4e93affa5a836a4daa27e614577270b87d
46eae2592e64ba6055d1994aba3d54a204e247014552b8e7d0edff00e7287f29749d328ff9770f91
ee97c85cd9dedfeb48ccaf242d3d59a4faac683954b18cab568fbaa9c79c6c25b3ff009cc8fcbebbd0
e301b5bf2d6ad0f9ba38c5565d3ed437d5dee06e08133222352b5017a62a83ff009c58f27f946ffc93
f9996b79a358cb63a979cfcc3a7df23431912d8c722a242ec01ac6aacdc0578ad7e1c55e1fe4dd53
52d23c91f905a5ea3e61b9d17c833f9c7cc29a6eb32a5bcd1ac36ed247a53b8bb8e48a9eabc9c0c
abf07f7a9431a3aaafa4758fcbcb2f2579f25fcd2b8f395feabf9a37be5fd4748d1b4cb88ec6da2bf4b2
b792ec738ad2da32de932826463c57f7684ee8a5563bf950743d7bfe70baeae7f75a936a3e5ed6ee
b5d790891e7d51c5c4972f3b36e6432ee4b6ff67db1561ff9823ff8ddb600ff00d4bda01ec3fe3f6d08
c553af3ffe40f931ff0020a2f34aea9aad96b3e5dd06dfcc368da86ad79ab6966fac2cd674596c7539a
e2d9a3665e1c3d35146e2053e1c55ec5ff38e7e7ed6ff0033bf26bcafe74f315a4767ac5fc33477090
27a50bfd56e24b759634fd9571186e3d07ecfc34c55e6ff00f9527ff3b37fe93dc55fffd7f7f62aec55d8
abb15762aec55d8abb15762aec55d8abb15762aec55d8abb15762af2df387fe4f4fcafff00b65f9abfe
23a662af52c55e7be63fc96f22f997ccd73e769e3bfd3bce7736d1d91d7f49d4af74ebc4b68aa046ad
6f2a28535f88153cbe818aa61e4afcaef28790aeb50d5346b79ee3cc1abf01ab6bfaa5d4fa8ea774b
10a22c97372eefc146ca8a553fc9c5589ea3ff0038c3f923aa79bae3ceb77e578ff4bdebfada8c11dc

5c4561772f2e7cae2d1245864ab0e4cac9c1ceeeac71566be70fcbbf2879eecec6cfcc7a7895b4a99
6eb47bcb7924b4bcb1b84002c96b7103249130a0fb0c01a7c55c5543cbde44f29f9124d43cc300b8
b9d62e2dd5354f306a9733ea3a8cb6b6a0b2a34f3b3b88d372234e295f8b8f2c55f367fce3a7e5e79
4bcdd65e7bb3d70ebfa66a1a879a759bdbad2e3bad5f45b7d4746bb7516e6784186392375771b05
7a1e2f8abe92f347e55fe5f79cfc9917e5ff98740b5b8f285ba451d9e991a9823b616ebc6230188a34
4506ca508f87e1fb24e2a80fcbafc97fcbffcad69ae3cad6331d4e7896d64d5350b99f50bdfaac66a90
24b70ee522522be9c7c52bbd2b8aa432ff00ce337e51bde6b3341a6ddd969be61f55b59d06cb51b
cb5d1ee259d4ab4af6514ab0f315f87e1e2a77e38aaaea9ff0038e1f957aaf92ecbf2e9acafacfc8f64
59868767a95ec16d3b332bf2b80b2d652ac8197993c4fd9c5563ff00ce37fe5c5e58dae8faecbae6bf
e5eb2118b5d0b57d7352bbd35040008c7d5da708ca8000aafc97db157aa58d8d969967069da6db
4567616b1ac36d6b6e8b143144828a888a0055036000c55f36ff00e549ff00cecdff00a4f7157fffd0f7
f62aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb15762af11fcdcf323f957f3
7bf2bf558f45d4f5f7fa8799e11a7e890a5cddfc69a7373e124910e2bc773cbbae2a9d27e74deb903f
e557f9e1578962cda6d98007cbebd5afb015c5577fcae8bb2c563fcb2f3bc94e3bfe8cb5406bd7fbcb
c5fb3dffe17962adb7e73dc2af2ff00956de766fb55034a82a388a8ff008fadebd053156cfe73cc003ff
2ae3cec6a2a69a4c550695a1ff49f1db6dbe8df156a3fce899d4349f96fe76881ecda4c4c46d5e8972
df2c55a7fcea923af3fcb7f3b8a1a0e3a446f5ff80b96fc7156e4fce978e2f507e5cf9d9dea408974742f
41d0ef701773eff3db156cfe74d1803f979e75a100f21a35450d7c26f6e98aaa2fe718762a3c83e72a
052dc8e8c54123f677941afd14c55cbf9cb1b100f90fce6a4f50744936dabb91211f762ad0fce780f1e
5e45f39af2f1d0a634dc8df8b1c55b6fce5884be9af913ce4e3896320d1250a0803e1f89c124d76a0
a6d8aaf4fce3b57320ff000579c57d32055b41b91caa2bf0f8d3a62af9fbfe561daff8fbeb9fe1ff00305
3fe56dfd7bd1fd1373eb70ff03fd53d3e1c6beb57f7be97dbf43f7bc78e2aff00ffd1f7f62aec55d8abb1
5762aec55d8abb15762aec55d8abb15762aec55d8abb15762af2cf38d3fe57afe5757afe8cf3571f9f
0d371567be65d5eeb41d16eb56b3d26eb5c9ad54c874eb06816e6445ddb87d625850900578f3a9f
d9df15611f93bf9d1a3fe75e8cde63f2ce89aa58e808d2406fb545b7841ba89f8bc0a91cf2392aa431
7e3e9efc79f30ca157a65462aedb1575462aea8c55d518ab7b62ad6d8aa9bdc5bc52451492a24b3
92b046cc033b2a962141dc9001269db1555a8c55847e6b7e64d97e53f93af7ceba9e91a86afa669c
bceee3d316069224242877f5e58805a903e1e4dfe4e2ac97cbdabc7e60d074bd7a289a08b54b3b7
be482420bc6b7312ca15a9b5406a1a62af9dfff002a4ffe766ffd27b8abffd2f7f62aec55d8abb15762a
ec55d8abb15762aec55d8abb15762aec55d8abb15762af29f3a3aa7e7bfe54a9ad64d3bcd48b415
dfd2d3db7f01418abd37510a6c2e83fd8f464e5f2e06be18abe48ff9c48bcd6b4dff009c53d7352f2e5
cc169ac585f6b7776535e40d75006b70b2d1e3592224371a7dbf86bcbe2e855435afe677fce40df7f
ce37597fce40ff008b74c82e74eb73793f97a3d2e268350b782f9a090dc4ed568e465042ac0a88a0
75e4dc955651e72fcc5fce2f22db7e5c7e676b1e61b0baf2b79c35bd2f4cd5bc996b608b0da5aeb31
33c660bd73ebc924416accfc15dfa46a9f062a9b79c3cf5f9bf6fff00391fa5fe52e85ade9567e5ad7f4
0b9d5adee25d39a4b9b3e0ef197de6227954c554afa3151ff00791bf0f8d540f92f5efcf5f3079f7f303f
272f3ce7651cfe4f92c2f62f3b8d2eddf5092d75580cb05b8b21c6d8152adea4adc8d3e154f8f946aa
0b44ff009c8ff32f97ff0021bcd5e6bf362db6b5e7ff00297982f3c9914b127d56d350d4a3b8586de76
55a05421f9c8108f851b8f1e5b2ac83f347ccff009b1f923e50d3ff0034350f31a79bb49d327b75f3b6
852d85ada446d6f65484cba74902ac91185dc05499e7f514fc6d5eaaa17cd3f989f9c3a87e79e89f9
79e49d5f47b4f2b799fcb33ebba75edd69f2cb3d9a1a22cd2ab4c3d791587eee356813f79fbd56f4fe
255846b3a47e719ff009c87fca5f2d79a7cfe1bcc03cbfabdcc9a869ba75b8b34b851224af1c13a716
79635457665f87fdd6a8ad8abd87ce5af79fed3ce5ae47aaebb0f917f2cf4dd2a1fd07e610b617171a
96b57019994c7742562b0f1a0823895e5ed26e02aaf2bf337e666a7f9bbff003837e66f3a6b50c70e
af3d84f697af023470cd2d95fac0658d5b7512040dc7f658b2f6c55f47fe5810df96be4d70bc43687a
61e23b56ce2db157887fe549ff00cecdff00a4f7157fffd3f7f62aec55d8abb15762aec55d8abb15762
aec55d8abb15762aec55d8abb15762af28f3b103f3dff0029ea2a4e9fe6a00edb1f474f35dcfb76c55
9f79ab50d4f4cd0eeeeb47d1a7d7b52e052df4cb592081e477040ac9732468aa0fda35269d15ba62
af9bbf21bc8ff009adf96ff00925e67fcb8f32f92663addcfe939f4a96d2ff4e9eda76d4a311a46ec6e10
c655892c48e3c013f6be02aa958fe5cfe66da7fce1f4df9312794677f3c0b59b485805e69e2d8faf74f
722e44df5823d3556e2453d4f53609c7e3c5531fcdff25fe65f9dff002abf2d3cb7a27936e46b7e5dd5
b48d5359b39af74f45863d163785e3594dc10e652794457f63edf06f87154cf56f2d7e606a5ff3943e
56fcd28fca17b1f9334ed064f2fddcf25ce9debc73dd492ca6630a5d313127ac15ca92df0bf056a0e4
aa27c81e5ef3de85f9f7f99be7cd4bc9d796de56f375a580d32e56ef4f9a632e8d03464490adc554d
c57f75f15176f538f2aa2af3dd1ff00207cf9e70fcb2fcd4fcbdf35e912795f54f34f99af3ce5e57d51ae6
d2eede29a6992682199ada592457054a485528118b2b16f84aacefcf1a37e697e737e5a45f94daff9
4e4f2d5fea4f616fe6ff0031cf756771a6a5b59cf1cf34ba7fa333cd34929887a69243108f9fef1fe1ae2
aebff002b79cb4cff009c91f2cf9b347f26df4de40d03cb4fe553a84773615065983a4a913dc2c8628c
0557e5fbcea563dbe25517f9b1e55fcc0b6fcf1fcbefcd4f27f970f9a74dd1f4fd4b47d46c21bbb7b196
17be0447333dc100c7f17c5c6acbc7a6f8aa4f2f977f3af4afcfed77cdf2f94ad7cdba46b3a659da795
354b8d4a2b7b3f2d911aade45c5e36978c9216777821f565555f12a8ab04d13f2dff3934dff009c58f
337e4b5df91a57f33de5dddd9d85ddbdf5935bdc2dddfb5cb5d307990c50aafc2b52d239ff75a8df15
7d41f9551ead6df975e59d3b5dd2ee748d5f4dd36cf4fbdb2bc7865904d690244ec1e096556562a4

447

a9e5c88fb4aa71578bd7fe424ff00e766ff00d27b8abfffd4f7f62aec55d8abb15762aec55d8abb1576
2aec55d8abb15762aec55d8abb15762af26f3c05ff0095f1f94a587fc78f9ab893d9bd0b0fe15c55eb
38abb1575062aea0c55d418aba831575062aea0c55d418aba831575062aea0c55d8abe66ff00ca9
3ff009d9bff0049ee2aff00ffd5f7f62aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55d
8abb15762af9effe720bcc7e69f287e647e55f98bc9fe5793ce5acc49e62b55d02de75b59e48ee2da
d4b4ab23248008fd3f8be1efc7be2a957fd0c27fce41f7ff9c73d5684ed4d620ffb25c5579ff9c83fcffed
ff38e9ab11efac403fec5b1558dff00390bff0039020557fe71d356a57feaef0d69f216d8ab7ff430df9ff
c80ff00a173d5f89eff00a5e1ad3fe917155dff00430df9f258d3fe71d75ae008a93aac00d3bd07d5b7
c5569ff9c86fcfe1b8ff009c74d629bd3fdcb435ebe1f56c55b1ff00390df9f5ea716ff9c75d6b88ea46a
b09edff0030d4ebef8aaf8ffe721ff3d0a2997fe71db5c57a90c17538080074a56dc7eac55cbff3911f9
e3c3e3ff9c76d784a05485d4a12b50483bfd5c7b76c55cfff003915f9d81caaff00ce3bf980d47c04dfc
34a93b5488081b62ab8ff00ce44fe75855ffac78f3072ff00760fd2109007b520df15521ff3921f9d352
5bfe71dfcc7c0577179193da9b7d5fe7f878e2aacff00f3915f9ca0294ff9c79f31907ed56f61040a6f40
2138abc5bfe56ffe607f8d7ebfff002a935bfadffcaccfd31f50f5e1f53eb9fe0ffa8fe8eaf1fefbd1ff004caf
d9f4be1f7c55ffd6f7f62aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb15762
af27f3e1afe777e512040484f3349ccf5016c615dbe65862af58c55e43e76fccff32a7e6a695f937e40
874b4f32dde932f98753d535c699edadec63984091c36f0346f3cced534f5116341cfe2c5557c9fe75
fcce1f99d71f977f985a4e950daae8adac697af68cf7061be68ee920917d2b824c26312a728cb49fce
b2716e2aabd62bed8abab8abab8abab8ab7db156ab8ab1afcc1d63cc1a0792b5dd77caf05a5ceb5
a5d9cf7b6f06a2d2a5b3fd5e3691958c20b6e176a77ee3154b7f27bce1aa79fff002c3cabe76d6a18
20d535db08afae61b40eb0234b52020919980029d58e2ac4f58fcfed1349fcff00d17f24a544a6a7a7
cb2cda91247a5aab0596ded2bf66af086723ed55e1fe6c55ec98abe66ffca93ff9d9bff49e62afffd7f7f
62aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb15762af27f3da13f9e5f944
e0ecb0f99ea37ef656ff462af58c55e0ff9ddf919a67e70ea76be6bf25f999bcb3f9b9e4e616d61ae58
c9cfd162a2e16daf238cf2505650ebfb4125af0911f89558efe4bfe78f9f479c358fc9afcf2d1e383f333
cb9a74ba9daeb76214daea7a7c7c4971c400acc3890c8155e843471489c4aad7e5a793e2fcfff00c
977f3ef99f54b98bcf7e71faf5ce9faeda5c4e8fa218ae658ad22b148e44112c0a8bea05e2d3b73f55
db962abf5bbaf306a3f9dbf979f909e6bd72eb54f2fd9f955f5dd7ee919ac5f5dd46dddad93eb3e8302
62531198c41b8bbff7bcc2e2ab6ed2ebf2bffe7247cb5f97fe5b9af21fcbdfcccd23505bad112798c1a
7ea1a744eff0059b025cb5bd502ab2c65116bcc7c4168ab1afc8efcaeb6fcd0f27f9fecfcdfe6af32ea3
2e9de6fd6f4ad12f1f57bd8a6b216ac8893868e5432c86a0b7afcd36a2a2d5b92ac7bca5f9a9f98be
63f217e56fe5ceb17bf5ed535bf33eb3e5bd6f5537f2e9d2ea563e5c8cc8b09bd8925913eb0592279
631ea48a9c2b5959f157ac796fc99f98ff96de79d67cf70ad968df950da35c4fabf931757bcd5b86a36
68f2a5cda7ad6d1ac5cc285744217ed3519b8e2a91796bcb51fe637fce38ea9f99fe69d4afa7f3cf99
b46d4f5a6d62d6f2e2d9ac418ee0c36b6a892708e08a3a44d1f1e32fc665e4cd8ab37fc89d7f4ff287
fce2ef943ccdadca22d3348f2d25fddc8df0d2286369283c49028bfcc7157ce9f99316bdad7e4ac3ae
2f937cd765f9c3a5eb47f3065d61b469e3b48b517759268bd5e448860b709121a74b58f157d93f95
9e7cb0fccefcbdf2f79ef4ea2c3ad59c73cb083cbd2b81f04f1547fbee4574fa31578b6fff002b2bff003
b37fe93cc55ffd0f7f62aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb15762a
f27f3d703f9e7f948ae6845b79a1e31e2c2d2d57f531c55eb18abcbefbf2d3cdb69f98bad7e61f93bc
db1e98fae5b58db5fe817da70bdd3e67d3d644133949e094485582aba32d1568eb2fc1c1559e54fc
a196c7f30b54fcd7f3b6b09e62f3bdfd8ae8d67e85afd474eb0d2d5fd43041034b3bb17724c92492b
16fd9541518ab0df2dffce37799fc85aa6a767f971f99fa8f96bf2e357b996eee3cab1d85addcb6ad70
49916c6eee0bfd5c6f45221623afc4ff00162acb7cd7f91fa76a7a8793bccbe50d525f2df9cbc89135a
687a9b21be8a6b295384b6d7d13ba34f1b8a927d54903b3387e47154d747fcb5b87f3ea7e6679cf5
28b58f3459d93e97a1c1696c6cec34eb59d83ce628de499de694801e5793ec0e0888397255e2fff0
038e5a4f9e750d07f3313cb1e67b4d274fb9f3df9861e375a67d72ead5bd74e52c2e9730af2653b09
52454601be25aa1559bf99ff00e717bc9daa7e5b7967c85e5bd42efcbba9f92ee06a3e58f33c1496f
a0d40b19259e5fb024f59cf391414f8b8f1e2140c553ff287e57f9c21bc8f52fcd6f3d4de7abab58a48
34db28ec20d1f4e83d78cc32ccf05bb319a6646640f23f14577e08ac7962ac4b42ff009c78f39794bc
adacfe5af957f319ad3f2c3538af21b2d2ef3498ef752d3e2bf57e70c178d70a863e4e4fef2ddda95e0
c8c79e2aab2ff00ce3ff9b21fcabf2cfe53e9de7c56d1b41bab4b9bb9f51d263b837b6fa7cb1cf0d898
e0b8b702db9a5640e6595d7e13253aaaf6fbb82f67d326b78da0fafc9098f9cf134b6a6465a12d107
56284fecf3e9fb58abc8bfe71f3f243cc3f917a6ea5e5c7f3643e60f2b5edc497f6b61fa39eca5b4b99b
8861149f5b994c442fd8e15e5f173eb8ab11ffca93ff9d9bff49ee2afffd1f7f62aec55d8abb15762aec5
5d8abb15762aec55d8abb15762aec55d8abb15762af26f3cd7fe57b7e520d80faa79a4efd49fab596
c3efae2af59c55d8abb15762aec5546ead61bdb79ad2e579dbcf1b452a548e48e0ab0a820ee0f6c5
58c7943f2c7c81e4192e25f25f97ed3427ba14b9162861593a6eca0f12db7da23962acb715762aec
55d8abb15762af99b6ff9595ff9d9bff49e62afffd2f7f62aec55d8abb15762aec55d8abb15762aec55d
8abb15762aec55d8abb15762af9eff3fc7e637fcacdfcaa6fca94d2dfce890f98cc235ef57f478b53059
2cc5fd121f90aaf0e3f4ed8aa584ffce76a90c07e5e370afc14d4473ad3afc5b53b5298aadf57fe73c3
986f47f2f38f5295d469f2fb55fc7155c6ebfe73ba80fd4bf2ecf2edcb52f87fe4a62ab45d7fce780049b
1fcbc3becbcb51af4edfbcc55a179ff0039e000074ffcbd63e25b51affc9dc55b5bdff9cef01aba77e5e
92771f1ea3b7b7f7b8abbebdff39e1ff56dfcbcff0082d47feab62aefaf7fce787fd5b7f2f3fe0f51ff00aad
8abbebbff0039e1ff0056dfcbcff82d47feab62aefaeffce787fd5b7f2f3fe0b51ffaad8ab8deff00ce787fd

5b7f2f3fe0b51ff00aab8abbebdff0039e1ff0056dfcbcff83d47feab62aefaf7fce77f7d33f2f0ff00b3d47f
eaae2af16fadff00ce52ff008cf97d47c9ff00a6bfe56572e3caf7d0ff0011ff008478f0fef2bf54fd1ff157f
bdfacf7e3b62aff00ffd3f7f62aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb1
5762af29f3aa83f9eff009524804ae9fe6a209ec7d2d3c547df4c55ead8abb15762af085fcecfcc06fcf
86fc901e51d2ccab63fa71f5c1ab4fe98d2bd411f230fd4797ad53c7d3e5c797fbb38fc58aa33f3f7f3b
3ccbf92b1e83a859f962d3cc3a47982fe2d16d8b6a2f65731ea370aed1864fab4aa62210fc61f929fd
8c55ebda4beab269b6cfae436f6fabb256ee0b395ee2dd24ee239248e26603c4c6bf2c551b8abb15
762aec55d8abb15762af997ff002a4ffe766ffd27b8abffd4f7f62aec55d8abb15762aec55d8abb1576
2aec55d8abb15762aec55d8abb15762af2af39d3fe57b7e55ed5a69be6adf7dbf77a76f8abd571576
2aec55f21eb6de6d4ff009ce6bc6f255be993eabfe064fac2eb134f04020fad254ab5bc52373e5c050
ad3872dfa62a927fce5c4df9a92e8ff00976be77b3f2fdae8e3ce9a67a0fa2dd5edd5cb5c709b8865b
9b6810204e552199b971f7c55eb7f985e6cd77cc9f9cf0fe5269ba7df5fe83a6797ff00c43acda697a8
8d1e7ba9aeee4da42925c89229043128672913a97764e5c9538e2ab3f2eb41fcf9f2ee85f989a36b
17b159e9af1cf3fe5bea7af6a2356bad38bc720115eccaa4bc51108eacc5d957929f531579b47e6bb
8f29f9a3f2564f286bdac6bf36b9aba797fcede669ae2f2e340d7259e10b33c3f5c938c8c922b3c135
b462251f0733fdde2a9f2697e6ff36ffce5279eff002feffcfde62b4f2643e5fb4d521d3ec2e92d1e3373
2c5fba8258a353122b13f120f59d7e092565e5c95643f905acf9bbcb5f997f989f917e66d72ebcd1a7
f94d6c352f2e6b9a949eb6a02c3528f9fd5ee24201731d578b7fadfb3c55557d138abb15762af997ff
002a4ffe766ffd27b8abffd5f7f62aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8a
bb15762af2cf38ff00e4f4fcaedabfee2fcd5f47c3a6e2af53c55d8abb157ced69f941f9bd07e7fcff009d
ad7fe5bf4eeac06813e92a2ff97e8b13249ea0908ff7a2883b7a7fb3fe562a8dff009c8afc9ffcc7fce39
3cbba6f97b52d134bf2ff0097b51b7d7a393505bb96ee6d42d43aa46cb100821a39ad1b99f6c55af3
f7e4bf1610000026060f002220574d4643010000000000010000000000000009000000002000006
8a8000068080100e61ebde6cf2dfe70792bcc1a7f96ff0037b49d3ff44eaf0c91cd77a15fd933b3b42c
085942866241e35fb3f65915f154c75cfc9bf3bf9f7c8be69d27f307ce0b279b7ccda51d2209346824
b3d1f4d879acacb0dbbcaf24beb3a28b89257e6f1feed044bd5561daa7e45fe786b3a07e5c25ef9a7
cb716b7f96da8d95ce9365058de0d366b7b18440b25c48d2faad2f11f62358a3ddbe2dd4a2a95e9ff
00e385ff009cc5f3dbf958e9571a9c1e54d212f62d53d78209e366839346f07a8d1306dc02930a7c3
b7dac55edbf96bf97379e54d53ccfe73f335ec3a979f7ce77105c6b773691b45670416517a16b696c
ae4bfa70a7edb9e72b96760bb2aaaf44c55d8abb157cc9cbfe42457ff333d3b7fe5bda62afffd6f7f62
aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb15762af2df387fe4f4fcaef6d2
fcd5ff0011d33157a962aec55d8abb15762aec55d8abb1579f69ff0092de41d2fcf375f991656f7f1f9d
2f9ab7da99d57516f5d0105629226b831b44bc542c453d350abc5453157a0e2aec55d8abb157cc7f
1ffcac7edcbfe5747876ff00957dfd3157ffd7f7f62aec55d8abb15762aec55d8abb15762aec55d8abb
15762aec55d8abb15762af9effe7203f49ffcac9fcaff00d0dfe21fd23f57f317a7fe0ffd1bfa5b87a763c
bfe3aff00e89e8f4f539fc75f4fd3fdac55253ff2b17d51ff0093a79d3b7f80387fcd35c55507fcac9ffcccf
f00fa0f71570ff9593bd3fe573f5debff002af7f8e2aeff009093ff00999fff0041ee2ad7fc848e43ff00273
d69ff0098fa9fd3156ffe424ffe666ffd07b8abbfe424ff00e666ff00d07b8abbfe424ffe666ffd07b8abbfe
424ff00e666ff00d07b8abbfe424ffe666ffd07b8abbfe424ff00e666ff00d07b8abbfe424ffe666ffd07b8
abbfe424ff00e666ff00d07b8abc5bfe774ff19ffe546fac7fcacaff00bf43eb7f5cff0008ff00c8afaf7a5ff4
61f51ff97bc55fffd9000840010824000000180000000210c0db01000000030000000000000000000
000000000001b40000040000000340000000100000002000000000000bf000000bf00007b43000
04343030000000000008000000080ff7fa7430000008000000080feff81432100000008000000620
000000c00000001000000150000000c00000004000000150000000c00000004000000510000006
cc4000000000000000000004e0100000301000000000000000000000000000000000000fb00000
0c3000000500000002804000078040000f4bf0000000000002000cc004f01000004010000280000
00fb000000c3000000010008000000000000000000000000000000000000010000000000000000
0000ffffff00fefefe00f9f9f9003535350002020200010101002c2c2c006a6a6a00cdcdcd00d1d1d100
cbcbcb00cccccc00b2b2b20014141400fdfdfd00fcfcfc00222222008f8f8f00efefef0030303000fafafa
002323230096969600ececec002020200097979700e6e6e6001d1d1d001e1e1e00e8e8e8002d2d
2d0025252500989898001a1a1a00e3e3e300fbfbfb0021212100d8d8d800f6f6f600f8f8f800e4e4e4
0091919100f7f7f700e5e5e500eaeaea00f2f2f200e2e2e20093939300f5f5f500959595003a3a3a00
101010001515150058585800929292009b9b9b0061616100a5a5a5008787870033333300edede
d0081818100d7d7d700f1f1f1004e4e4e00626262009999990018181800040404001b1b1b00f3f3f
300a6a6a6001f1f1f002b2b2b00f4f4f400d2d2d2000707070075757500dcdcdc0047474700e7e7e7
00f0f0f0008b8b8b00787878006b6b6b003232320012121200b5b5b500060606001717170036363
600dfdfdf0048484800282828004d4d4d00cacaca005c5c5c00adadad00d0d0d000c5c5c500babab
a002f2f2f000e0e0e00a8a8a800dddddd008888880067676700a3a3a300cecece00bcbcbc00b9b9b
900b4b4b400aaaaaa00bbbbbb00b0b0b000dadada0085858500bebebe00b3b3b30089898900a0
a0a000c1c1c100e1e1e100a9a9a900d5d5d500b8b8b800bdbdbd006e6e6e002727270076767600
5252520055555500505050009494940024242400727272004a4a4a003f3f3f00dbdbdb008a8a8a0
07b7b7b00a1a1a100464646009a9a9a00080808000a0a0a006f6f6f00030303008d8d8d004b4b4b
004f4f4f001313130005050500d6d6d600434343003e3e3e00747474007979790016161600c2c2c

449

200cfcfcf000b0b0b00111111009d9d9d0059595900bfbfbf00d4d4d4005f5f5f00707070005151510
0777777001c1c1c00e9e9e900a2a2a200c8c8c800e0e0e000c9c9c900c6c6c60026262600828282
0039393900343434007a7a7a0038383800737373008383830045454500b7b7b7007e7e7e009f9f
9f006868680057575700a7a7a70009090900d3d3d300646464009c9c9c00414141006d6d6d006c
6c6c007d7d7d007f7f7f008e8e8e005a5a5a00acacac000f0f0f0065656500d9d9d900c4c4c400eee
eee002e2e2e0090909000292929005b5b5b000d0d0d00565656005e5e5e00aeaeae00c7c7c700c
0c0c0009e9e9e003d3d3d006363630031313100ebebeb002a2a2a003b3b3b00dedede00ababab0
0c3c3c3008c8c8c004c4c4c004949490044444400606060006969690019191900a4a4a400afafaf0
071717100666666005d5d5d0042424200808080003c3c3c008686860040404000b6b6b60037373
7007c7c7c00b1b1b1005454540053535300848484000c0c0c00010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
010101010101010f0f011084000000004599000005050000000000000000000600000000000000
00000000000000000006940600060600000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000
00000006000500010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
1010101010101010101010101010101010101010101010101010101010f010f1185dc6d0b607a58
7776db60b1b1606060606060afb2b2b10c0c0c0960606060606060600b0bdbe6a0b2600c0b0b0b
0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b26900000010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
101010101010101011001020249170f02020f010101020201010101010101010101010f01010101
0201010101010101010f0101010201010201010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010f090000010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
101010101010101010101010101010101010101010101010101010101010201491a0102010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010202020202010101010101010101
010101010101010101010101010101010101010101010101010c00000101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
101010101010101010101010101491a0102010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101100101010102010101010101010101010101010101010101010101010101010101
01010101010102af00000101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101491a01010
10101010101010101010101010101010101010101010101010101010101010101010101010101
0101010101010101010101010101010101010101010101010101010228010f0101010101010101
01010101010101010101010101010101010101010101010101010164060001010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
010101010101010101010101010101011d1701010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
010101010101010f01020101240102010101010101010101010101010101010101010101010101
0101010101010101027a060001010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101020101011d17
01010101010101010101010101010101010101010101010101010101010101010101010101010
1010101010101010101010101010101010101010101010101010101010301010f01010f0101010
10101010101010101010101010101010101010101010101010101010110a60000010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010

10101010101010101010101010101020101011d17010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
1010101010101010101274f2751d22918010101010101010101010101010101010101010101010
10101010101010101010101640000010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010201010
11d32010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010174de9144983c320201
01010101010101010101010101010101010101010101010101010101010101010b06000101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
0101010101010101010101010101010101020101011d320101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101520405f740270101010101010101010101010101010101010101
01010101010101010101010101026000000101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
020102251a0102010101010101010101010101010101010101010101010101010101010201010
10102010101100f01011001012401010f01010101030101010201010101010115020f4200840115
01010f012401010102010101010101010101010101010101010101010101010101026400000101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010102010249300102010101010101010101010101
0101010101010101010101010f0124010101010202010110020101010101011501011001100101
0f010102010110010f0201020102014200d9010f0110010f0128010f020101010101010101010101
0101010101010101010101010101db06000101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010102
0101011d2a0f020101010101010101010101010101010101010101010101011001010f24010201
011001010101010101020f0f0f01010f010f1501100301020f010101011524011001d606d6032701
010f0102020201010101010101010101010101010101010101010101010101010fb20000010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101020201021d37020201010101010101010101010101
01010101010101010101010d5ff2b9f0a8c0091001db36f7c89ef15f6201010f70f28f367301010102
106ffdf3b4010f3ef56a102b830097eeea50d80c0103010110010101010101010101010101010101
0101010101010101010101b100000101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101020102
19170102010101010101010101010101010101010101010101010101e6934694064a9e690f0123
3e4a0094a2544f154bc74d009400058f4f010f644d000e1f5f4e4500166c01bf5999fd377fa84d8e02
01030124010101010101010101010101010101010101010101010101016000000101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
010101010101010101010101010101020102251a0102010101010101010101010101010101010
101010101010101010fee00000c100101150101645900782402018206065d7a4f7de8d52c019b99
b847d26d5606f74bad015500e90f01010180006f010f01010101010101010101010101010101010
101010101010101010f60000001010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010201021932
010201010101010101010101010101010101010101010101010124241a0000740128010f24015c
4d006a01102f57068f27010f01036bf1249600830f012bc5004102010fa959e801010210ada233010
10124010101010101010101010101010101010101010101010101016d06000101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010

451

10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
1010101010101010101010101020101021d370202010101010101010101010101010101010101
01010101010101017806069a01020201010f2f4d00ca15016d9400af0110020f012eae017f003310
0101ef005f010f01080083011501010fd5917d01240101010101010101010101010101010101010
10101010101010209000001010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
010101010101010101010101010101010101010101010101010101010101010101010f11d40110
0101010101010101010101010101010101010101010101010102a400057d01240f1002018b9405
b402017200ea02010201101001010f013ace361e01ae915d010f01ca06aa01010102013300d40f0
10f010101010101010101010101010101010101010101010101010b00000101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
0101010101010101010101020f0f0f49780f0f010101010101010101010101010101010101010101
010101101071000069020101014b107b0606f40102760589020101010101010f1001155c615686f
400c0020201a900970110020210de94d4010f01010101010101010101010101010101010101010
101010101010b0000010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
010101010101010101010101010101010101010101010101010101010101010101256a0201010
10101010101010101010101010101010101010101010102013a06456d0f01020201025cc200bd0
101690020b755febdab6aba26011501010323f4ed00e9020201c894aa0f01020103040030102401
010101010101010101010101010101010101010101010101010b0000010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
0101010101010101010101010101196a020101010101010101010101010101010101010101010
1010101242bae59001d968ab50720168100593b01014b5b49ef7c6caeb84d006801e166ec240f01
1a45e9020101c800c001010201580500dc01010101010101010101010101010101010101010101
0101010101010b000001010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101020101022595010f010
1010101010101010101010101010101010101010101010101ef0694393a38dd213a43df4500bd0
101011a11e4010101ba004a03020b05ed2f1001d445aa011001830098d101018bb800f50101150
1010101010101010101010101010101010101010101010101010b000001010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
101010101010101010101010101011610000026060f002220574d4643010000000000010000000
00000000900000000200000688800006808010016d40102010101010101010101010101010101
0101010101010101010f24c1004d8b240101470101699400c901010101d95d3d03e5c2ff0d01010
3c0056e01023c0064012483004544b56ba935009f092410010f0101010101010101010101010101
01010101010101010101010b00000101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
1010101010101010101010101010101010101010101010101010101010101010101011002010f4
978020f01010101010101010101010101010101010101010101010101107100007403011501020
1e49459f4012801020180c6d344b53a02100102ad36b861bb46210f01108bba14c78be39f920476
100101010f010101010101010101010101010101010101010101010101010b0000010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
101010101010101010101010101010101010149750f01010101010101010101010101010101010
10101010101010110011a0000b1010f100124017b4d00f41001150101021e760a0201020110010
2014fe5dc400110021001014be10201ad0902010f24010101010101010101010101010101010101
010101010101010101010b0000010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
1010101010101010101010101010101010101010101010101010101010101010101010f010149e
7240101010101010101010101010101010101010101010101010101157700054c0101101001014
f0600fe01150101031001020101010101010101010101010101010101010101010101010101010
101010101010101010101010101010101010101010101010101010101010b0000010101010101

01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
1010101010101010101010101010101010f0116530101010101010101010101010101010101010
1010101010101012401589400a00224010110015c4d008d010202010101020f010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010b00000101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101012401
877501010101010101010101010101010101010101010101010101010f018d9400fa1001012b01
107c00005052010124020102010101010101010101010101010101010101010101010101010101
010101010101010101010101010101010101010101010101010101010101010b0000010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
0101010101010101010101010101010102010101253e010201010101010101010101010101010
1010101010101010101af8a4d9900a29c0c15017bebce0e819907a428010201021001010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
010101010101010101010101010b0000010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010f020
10f25f6010f010101010101010101010101010101010101010101010101e10a9ab05c8bc33d0102
2ec326ad1b5c09510f010f0f0101010101010101010101010101010101010101010101010101010
1010101010101010101010101010101010101010101010101010101010101010b000001010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101100124208c010201010101010101010101010101010
1010101010101010101010f010102020f0101012401010101010f0f010102010103010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010b00000101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101020
10f20ca0101010101010101010101010101010101010101010101010101020101010101010f0124
02011024010301242401010101010101010101010101010101010101010101010101010101010
101010101010101010101010101010101010101010101010101010101010101010b0000010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010102012593240101010101010101010101010101
01010101010101010101010101100f0101010f02010110010215010f01010101101001010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010b00000101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
010f01255301020101100110010201010202020202020102020201010101020101010102240101
010101010202010101020f02010101010101010101010101020202020202020201010101010101
01010101010101010101010101010101010202020202020202010101010101010101b10000010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
010101010101010101010101010101010101010110012420780f0101010101020101020f010101
0101010210010101010f020101010f01010101240f020101020f02020f0101020201010201010101
01010101010101010101010101010101010101010101010101010101010101020202020201010
10101010101010101010101020202600000010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
2010101e25fdcc30c0b640b0c6de67676d164dca6e6e6dcbc7fa0dc65f87e7fbcf87072766ff8fb0d7

453

770700d0d0d0def7058fb7370707373737373737373737373737373737373fbfbfbfbfbfbfbfbfbfbfbf
bfbfbfbfb77770d0d0d0d0d0d73737373737373730d0dfbfbfbfbfb736e75000001010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
010101010101010101010101240124015d450659d7d7454dffd706060094940000000594000599
45000000060000000505000600050505060000000600000000064505000606060606060606000
00000000000000606060606060606060606060606060600000000000000000000000000000000
00000000000000000000450001010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
1010101010101010101010101010101010101010101010101010101010101010102012401f3005
900000000060000054506069445050000459994050545994505949400059405594d0006944594
9494455906009992c2599905050505050505059494949494949494050505050505050505050505
05050505454545949494949494949494949494944545999959595959c205000001010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
101010101010101010101010101010f01014a835ce4af0c8b8b6e7a9a5cb09a0960b10b7d7b295c
4f697b292fe4e44f3f4fb05c7be4268b5c2f232f7b7b234f747b512c2f2f29292929292929292929292
92929292929292929292929292929292929292929232323232f2f2f2f2929292929292929232323
29292c2c2c130d0600010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010110012411820101011
00f012801010201020101010202010101020201010102010224010101010215100201010101010
12415020101020201010101010101010202020202020202010101010101010101010101010101
0101010101010101010202020202020202010101010101010102c3000001010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
1010101010101010101012401100187c8240124010f01020110010101010101010101010101010
10f0f010f01010101240101010101010f0f020101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010102020202020101010101010101010101
0102020f0f01b10500010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
0101010101010101010101010101010101010101010101010101010101010124015e082401010
10101010101010101010101010101010101010101010101010101010101010101010101010101
0f0101010f0f0101010202010102020101010101010101010101010101010101010101010101010
1010101010101010101010101010101010101010101010101020c0000010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010110014aab010101010101010101010101010101010101010101010
101010101010101010101010101010101010101010f02020101012424010115150101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
010101010101010c00000101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101020210d5fa010201
01010101010101010101010101010101010101010101010101010101010101010101010101010
101020110150201010110240101010f0f010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101090000010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
101010101010101010101010201012487880f01010101010101010101010101010101010101010
101010101010101010101010101010101010101010224010f01010201100101012401010201010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010900000101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
101010101010101010101010101010101010101010101010101010101010101020102015eec0f0
10101010101010101010101010101010101010101010101010101010101010101010101010101

01010101012b0124100101100301010f2401010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101090000010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
0101010101010101010101010101011001e0c80101010101010101010101010101010101010101
0101010101010101010101010101010101010101010110010124011001030f0102010f01101501
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010900000101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
0101010101010101010101010101010101010101010101010101010101010101010110020156a
90101010101010101010101010101010101010101010101010101010101010101010101010101
010101010f02020f011531588e77c1dd0d2e0103010101010101010101010101010101010101010
101010101010101010101010101010101010101010101010101010101010c00000101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010124010f1fa910010101010101010101010101010101010101
0101010101010101010101010101010101010101010101010101022402017c9f0099a86f2b02010
10101010101010101010101010101010101010101010101010101010101010101010101010101
010101010101010101020c00000101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010102e2c4
1001010101010101010101010115010f01010f0f01240f020f020110022402012401010202020201
010f01020101012401017a05142e01020103010110010f010201010f010f24010f010f0101100101
010102010f01242801010f010110010101021501011501100101010b0600010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
1010101010101010101010101010102d3c701020101010101010101012701010124012401100f0
124011502020f02010f15012410010f020103010210011501280101027f008a02010f27010f010f28
100f011002020101240f1501011501010f1002010102022401010f2401281001010f280101242b10
02011002010b06000101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
101010101010101010101010101010101010101010101010101010101010202025654010f01010
10101010101010f1001100210010102100101100f0224010224010124010f0f0201010110010101
01010101100f7200f70101010101011501010103010101020f012402102428010f0110010101020
24b0f24012b01010f1010030f01010301010101030103010b060001010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101020202b6b7010f010101010101010115010f28100152a17d2b3101150f010f
1001014b2e31020f01010224011515516d51242801280201d0068a0151e42e01010f01150f02011
35c510310012b010124010351e12b01272b010127294b2be13d022701011024e4403147d21b102
401010b0600010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010f048801020101010101
0101010101dae0a4bbe25fc6d7bba10f010f03013ff0ac9198ab3d0202011502a65d46c889f3dc010
101020b94aca5aa6b1dc8b0011010012bf6ac9999446a2701011524be66590046a4a556860ab09
7c20e66f801010f010f0a88499f34a284180110010b0600010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
0101010101010101010101010101010101010
Here, an object could be created in ScopedA, which references an object in ScopedB (as ScopedB is
below it in the stack). However, when the current ScopedA memory is exited, the reference count for
that area is still greater than zero and so its objects are not reclaimed. Now when ScopedB is exited,
its objects are reclaimed and consequently, the object in ScopedA is left with a dangling reference. To
avoid this problem, the RTSJ requires that each scoped memory area has a single parent. The parent

455

of an active scoped memory area is (in the single stack case) as follows.
If the memory is the first scoped area on the stack, its parent is termed the primordial scoped
area.
For all other scoped memory areas, the parent is the first scoped area below it on the stack.
In the example in Figure 8.3, the parent of ScopedA is the primordial scoped area and the parent of
ScopedB is ScopedA. In the example in Figure 8.4, ScopedA has two parents, the primordial scoped
area and ScopedB. This violates the single-parent rule and, therefore, the unchecked
ScopedCycleException is thrown.
Moving between memory areas
Given that it is therefore not possible to enter a scoped memory area that is already active, it is
necessary to provide alternative mechanisms for moving between active memory areas and allocating
memory from an active memory area that is not the current memory area. The MemoryArea class
provides
the
following
methods
for
this
purpose.
package
javax.realtime;
public
abstract
class
MemoryArea
{
...
//
methods
public
void
executeInArea(Runnable
logic);
//
Throws
IlegalArgumentException,
//
InaccessibleAreaException;
// Execute the logic.run method in the context of an
//
active
memory
area.
public
Object
newArray(Class
type,
int
number);
// Throws a variety of unchecked exception including
//
InaccessibleAreaException
and
OutOfMemoryError.
//
Allocate
an
array.
public
Object
newInstance(Class
type)
throws
IllegalAccessException,InstantiationException;
// Throws a variety of unchecked exception including
//
InaccessibleAreaException
and
OutOfMemoryError.
//
Allocate
an
object
where
the
constructor
has
//
no
parameters.
public
Object
newInstance(reflect.Constructor
c,
Object[]
args)
throws
IllegalAccessException, InstantiationException
InvocationTargetException;
// Throws a variety of unchecked exception including
//
InaccessibleAreaException
and
OutOfMemoryError.
//
Allocate
an
object
where
the
constructor
does
//
have
parameters.
...
}
The executeInArea allows the current allocation area to be moved to a memory area on the stack
for
the
duration
of
the
execution
of
a
Runnable
object.
The
unchecked
InaccessibleAreaException is thrown if the area is not active.
If a schedulable object executing with the stack given in Figure 8.3 wanted to start allocating objects
from
the
scoped
memory
ScopedA,
it
could
use
the
following:
ScopedA.executeInArea(new
Runnable()
{
public
void
run()
{
//
Memory
now
allocated
from
ScopedA.
}
});
The result of using executeInArea and then entering a new memory area means that a simple
stack is no longer adequate for keeping track of the active scopes. Instead, a cactus stack (or tree)
must be used. Consider the example given in Figure 8.5. Here, a schedulable object stack is initially
illustrated in (a). It then uses executeInArea to make ScopedA the current memory area as
illustrated in (b). After this, it enters into a new scoped memory area, ScopedC. This results in the
formation of a cactus stack illustrated in (c).

010009000003a288000000004d38000000001610000026060f002220574d464301000000000001
0073f1000000000500000000200000647f0000649f0000010000006c0000000000000000000000d
20100006800000000000000000000006a400000740e000020454d4600000100649f00000c00000
0010000000000000000000000000000000005000020030000c40100001a0100000000000000000
00000000000e3e306006e4e0400460000002c00000020000000454d462b014001001c000000100
000000210c0db01000000600000006000000046000000302d0000242d0000454d462b224004000
c000000000000001e4009000c00000000000000244001000c00000000000000304002001000000
0040000000000803f214007000c00000000000000084000057c2c0000702c00000210c0db01000
0000000000000000000000000000000000001000000ffd8ffe000104a4649460001020100480048
0000ffed074650686f746f73686f7020332e30003842494d03ed0000000000100048000000010001
00480000000100013842494d040d000000000004000000783842494d03f3000000000008000000
00000000003842494d040a00000000000100003842494d271000000000000a000100000000000
000013842494d03f5000000000048002f66660001006c66660006000000000001002f6666000100
a1999a0006000000000001003200000001005a00000006000000000001003500000001002d000
000060000000000013842494d03f80000000000700000ffffffffffffffffffffffffffffffffffffffffffff03e80000000
0ffffffffffffffffffffffffffffffffffffffffffff03e800000000ffffffffffffffffffffffffffffffffffffffffffff03e800000000ffffffffffffffffff
ffffffffffffffffffffffffff03e800003842494d040800000000001000000001000002400000024000000000
3842494d0414000000000004000000023842494d040c0000000005b60000000100000070000000
1900000150000020d00000059a00180001ffd8ffe000104a46494600010201004800480000ffee00
0e41646f626500648000000001ffdb0084000c08080809080c09090c110b0a0b11150f0c0c0f1518
131315131318110c0c0c0c0c0c110c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0
c0c010d0b0b0d0e0d100e0e10140e0e0e14140e0e0e0e14110c0c0c0c0c11110c0c0c0c0c0c110c
0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0cffc000110800190070030122000
21101031101ffdd00040007ffc4013f0000010501010101010100000000000000030001020405060
708090a0b0100010501010101010100000000000000010002030405060708090a0b1000010401
030204020507060805030c33010002110304211231054151611322718132061491a1b142232415
52c16233347282d14307259253f0e1f163733516a2b283264493546445c2a3743617d255e265f2b
384c3d375e3f3462794a485b495c4d4e4f4a5b5c5d5e5f55666768696a6b6c6d6e6f637475767778
797a7b7c7d7e7f7110002020102040403040506070706053501000211032131120441516171221
30532819114a1b14223c152d1f0332462e1728292435315637334f1250616a2b283072635c2d244
9354a317644555367465e2f2b384c3d375e3f34694a485b495c4d4e4f4a5b5c5d5e5f55666768696
a6b6c6d6e6f62737475767778797a7b7c7ffda000c03010002110311003f00f493879c4cfdbec0222
0575796bfcda8f5165e31dd636d3b5ae0e7570d01cd9fe67746e6eefde57957cf1389669bb825b31
201048494e2b73aab0b1ecce70639a6c2d7503796b9dfa16eb8df99ee63d69f4876ea5c7d57640d
00b9c002f896ee2c6b2a6fe6ecfa0b3aec9ba9b5f43fab5549a9c458db5ad0f1ea169a19bacc96b77
6db58df6ffa4a56960d790c17d7659bafd22c737c5beddccf52cddb5dff0009ff00a51e94de55f35db7
1cba37439a48f101cd9406e2f56de0bb3985a36cb45004c16eef77a87e9b5aff00fb714f2d9931593
607562c6efadad873a5ecd9b6c367b3d377bbf96929ca665d56359b339c5bb099f47dc7e8fe91d38
bed735697452e386375afc88302fb000fb21acfd2d8c632a631cfff008b59e72321a5b47ed5adb630f
a2f6d8c607b9fecada35c96fe9373bf33f3ed5a9d385ad65acb9c5f6b6c87bc8db3ed639bed0fb7fc1
9637e9a4a6c5c269b069ab4f3c70b084973761c8a43ec7bdd59c773c068059e836c760dadaeb6d8
cf529f77fdf16f9008208907420aaf935b19534b19243eb10d80637347924a6974e271db63da2db37
46b702d793efded0d75343b6fb3f46cd9fce59fa3f6239eaccd85de85c5c1bbf60a6eddc13b75a36eff
006acff56b1632876739b655fa22db1b40b1ef1ed6439fee76df77f37f9eb530a922b732edd63d8e8d
f606ee221aef77a5fa3ee92925595bdcf63ab7b1cc201d09699fdd7eddaefe5209ea95031e8649d37
4fa16478c7d0fa4adb5ad688680d1ce9a6a549253ffd0f5555335f95b2caeac6370da36fbc3374968
7b67e931fb0bdcada4929cc73726d0e166139cddadb3df65665e1cd736bfcef753b7d4f53f90cf4959
c11691659752ea2c7ed10f78792035aefcc2e637658fb2bffa6ad249294b1eceaafbd8c86d06ab65f5
3bed01a5c3f47663399a35defddbdfff00a916c2e65ff4e9f83925363ed973ab63df456f2e0c7b5adcb
638c925ae7337b47f3767f36ef53dff00f18b468cce995fa819955b8970758e7581dee24637d22efdf
6369d9fbeb18ff83f8bbf2a8b7fa39feb3bfefc929dec8cfa5986fcaa2caac6b486871780c92e6b36bad
6efdbf4967dfd5ac75b5d25f86e163dacf4c5eef57d400d8dada2963fdef7ec77fc1d68d47f41c9ff008
cfe15a151fcee47fe1a3ff9ea8494cb1b34dd96dc6b450e074069cb36383da37bdaea5eda5fedf63d
bb3fe87f84d5656dac10d9d4c9249249e3974aa38bfcf33e2eff00a90b4125292492494fffd9384249
4d04060000000000070005000000010100ffee000e41646f626500644000000001ffdb0084000403
03030303040303040604030406070504040507080606070606080a0809090909080a0a0c0c0c0c
0c0a0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c010405050807080f0a0a0f140e0e0e14140
e0e0e0e14110c0c0c0c0c11110c0c0c0c0c0c110c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c
0c0c0c0c0c0c0cffc0001108004f015e03011100021101031101ffdd0004002cffc401a20000000701
010101010000000000000000040503020601000708090a0b01000202030101010101000000000
00000010002030405060708090a0b100002010303020402060703040206027301020311040005
2112314151061361227181143291a10715b14223c152d1e1331662f0247282f12543345392a2b26
373c235442793a3b33617546474c3d2e2082683090a181984944546a4b456d355281af2e3f3c4d4

457

e4f465758595a5b5c5d5e5f566768696a6b6c6d6e6f637475767778797a7b7c7d7e7f73848586878
8898a8b8c8d8e8f82939495969798999a9b9c9d9e9f92a3a4a5a6a7a8a9aaabacadaeafa1100020
20102030505040506040803036d0100021103042112314105511361220671819132a1b1f014c1d
1e1234215526272f1332434438216925325a263b2c20773d235e2448317549308090a181926364
51a2764745537f2a3b3c32829d3e3f38494a4b4c4d4e4f465758595a5b5c5d5e5f5465666768696a
6b6c6d6e6f6475767778797a7b7c7d7e7f738485868788898a8b8c8d8e8f839495969798999a9b9
c9d9e9f92a3a4a5a6a7a8a9aaabacadaeafaffda000c03010002110311003f00f6d49e7ef27c2acf2e
ad1246a0b7a843f0645e35646e3465f887c4a48c5548fe63792d6e5ed5f5558e643286f5229916b6f
30b6928ec814813111541fef488feded8aa1e5fcd3f21c7034e9ac4732ac02e55614964678ca071c4
05f88f13cb88f8a81b6f85a8ab31c55d8abcf3cdfe63b1d674fd262d22fa5463e60d32c354b78de5b4
ba8d6594168664f8244e4a41e269c97c571551d6b56f2b68de6eb3f27cf05c7d7af6dd6f51e5d4ee2
df9db7a8e93c9089261eafd582892e029e51c6e8fc483b2a8d5d47f2dda64b7fd2ae2e2468d5626b
dbd57067748e2e4a6405448ce8b196a0766016b8aa12dbcc9f94f77099e0d74342ad023937f7aa5
7eb8233033069010927ab1f090fc0dc87c58ab1af32fe63790fcbd7b15b4b05cc96535d47671ea736
ab3da59d65d36e35357324d3280863b66456e85d93f6492aab37f2b4d6d36b105d69c2ee0d3f52d
16d7505b3bc96691d1a6919872595df8b853c5a98ab35c55d8abb15762aec55d8aa1b51778f4fbb
923256448646461d4304241c55e552eade5ef2b7e5e794fcc7e603732bead6fa7c13df5c6a5756f0
2dd5dda7a8af7133cbc631248a23566f87d59235257957154fd2fbc868b125fdcdc596a12708dec65
bdbd6956e5c216b71c2560f2a17019632c462aa10ebff955717496506b664b99143c28b7f7c7d5e5
0c538119f528ec639e27e09c9b8ba9a62a90f9abcfbf97be5fd18eb9a6addebd642c6ff5266b2d46ec
288f4db237ee859e5e21da21f0a93504af2a62a98797fcc5a279923d3b5af2f99e35b6d6d34b9678e
fe6bcb49c7d58c8fe9482529228e611aab54951d48e498abd5315762aec55d8aa4be7000f94b5e0
d4e274ebcad7a53d07c5581fe63dd69fe48f2fd86ab61e5dd23ea4c1d350d56facc3d9d905b76685
ee7d05e71c2f2058e4b8a32401b9c838e2a989d6bf2f55213fa02199ae4dc2599b7b08654b992c96
66b8581c001bd3fabc9d78f2f87872e6b8aa5563e7ff00ca4d45956cf455956e259adf4e65d2d08bd
9ed8c6248edc71ab3012a35085aad48fb2d4558ef9efcff00a3e8b7291f967cada6cf6e2c6eae6e25b
fd38aba5cd9dee976cf088902b9655d40f35e3cbd44e03f6b154e745bed375b7f2bea49a558d8eab
61e6abbd2ae24b4b6faa3b7d5ac6f9433432289a12e9c58c52fc401afc4a558aaf63c55d8abb15762
aec55d8abb15762aec55d8abb157ffd0f60cdf947e589746b2d00cf7eba5e9c664b0856e3786da7a
56dd58a93e92f15e35abaf151ce98aabea1f959e57d521686f0dd3f249916413717479f514d5448a4
28a3a5cc68e9d853890cb8aadd4bf2afcb7ab5cc9797d35ec9772a057944c14922d9ad79502501e
0c4ec38f2ed4f87154f758f287967cc32453ebda5db6a571027a51cd731abb84ad48069b54efb62a
96ff00caaffcbcff00a96b4faffc605c5580f983f2e3ca3e437d23ccb676abfa72ef5dd1e0bdd45210adf
575bae4b0c70c0b4540c7ecaaf23fb4cdd71564fe68d37c97e6fb8824d72e3509ace09239d6c45b5
cac3eb44ae81d5bd0f51091210fe9baf3140d518aa5a9e5bf2524f6b793ea7abdf5f5bdadb58cb3dd
c570cd756f61722eed526e36ca3f7528a8640aed56f519f91c5528f2cf917c9da641a4ea5a9df5fbf9a
6db4fb7d2f54bcb7b7b8686e6d6de18e116dc64b4a08818c32b2ac7372ff767c4715448f2279145d
69b7d1eb5ae0b9d227867b276b769389b6b29b4e890892c9832adbdc489f10e4c7e3766618ab24f
255a681a46b36fe5ef2d24d1e91a3e856d696d1dc2ce1c471cf22ad5ae14331db738abd0315762a
ec55d8abb15762a84d536d32f4ffc512ffc40e2af33d16ebcbbe62fcb4f2de8f7d777f6f0be8d6905d2
41673b24b1cb64b1491bac96f246ea436d507e2a30c556c3e59f2159c50dbd9ea1ad416d677b06a
5a54023bc912cef2de2117a9173b7627d44a89125324679bfc2bcce2a935b7907c9334f7d1ea535e
26976d796f79e558ed60bc125949058da5b0b83ced6866e56c4fc7eac7c5becfc4d8aa3b5af247e5
eebd6fa85adf6a7ad0b5d4a1b982ee28ede6552f7d6434fb89547d50f16920017e1fdda9f89115b15
475a58795b48d46c8e8f2de5ceabaceb76573a8dd5e413c4657b6b36b78f630c512718e251f0aaf2
3bb72638abd5b15762aec55d8aa49e72758fca1e607604aae9b784851524081fa0f1c558c6af2695
e67d3a1b3d73ca7acdd5bfa0d04908558964867455962904772bce37000746aab0c550a349f2b01
2247e47d5a10d7125dafa48b1fa73ceaeb2b43c6e87a42412389047c15f9b7307962a93e8fe50f2e
e9e9aaa5f795359d405fea73ea96cc618e06b2f5a58e558ed8c7760c5c1a14f8e3f4d9b8af2e98aa3
ee3cb7e4bbcb892e67f206aa6698157a2aa2fc6d03bd156ec2a966b5819c81f1b4685aa7155593e
a70eb5e56b0d2fcb97da4a5c6bf36a579717491859677d3af3d4924904d23bc8df0eed5d853b62ac
e351f304761a8c7a5c563757d78f09b9296ab190b107095632c918dc9e82b8aa90f31dc9240d035
22475005ad47cffd23156ffc4177ff00560d4bfe06d7feca3156ff00c41774afe80d4bfe06d7feca3155
a7cc770295d0b5105b65045aeff2ff0048df1547691aac3abdbc9711432c0d0cd25bcb0ce15644921
6e2c0f1661f4838aa3f15762aec55d8abb157ffd1f7f62aec55d8abb15762ac2bf323fde7f2d7fe047a
4ffd440c55e71af79f3cfbe5af3279a23f2fdb4ba8d93ea77f2c0b7b6d79771a4361a1d8cf1c56c51d0
2a4d74678fe1e43d4e613e25a62a982fe64fe604be61934616b6f0d9c176b68f7cfa75db068db51bc
b53383ea8501618619bad3f795e5c19715507fcd7fcc4b8d120d4adb415b4bc97d15b9b4b8b4b99
0dbc531b4097442ba17493d59a91ecd1f0f8cfeea5c55bbef3f79fad2dee34bba825bb9e4bfd62cae
6ea0d3eeadde0b58ae6e20b696278cb014410ba9f8b670c5f15673e519ae2e352d2ae2ed9deee5f
2d583dc3cd5f54cacec5cbf2df956bcabbd7156738abb15762aec55d8abb1540eb669a36a247516b
374ff008c6d8abc3b53f3079b7cbba3791f51f2ac1717b341e4ce46c44573716525dc93e91141eac7
0155322c2f76d1efcb8ab9fb2b8aa3aebf32bf32e0b98ac534e8647965987d6bf465e1458609f5484
1e225eb20b4b5901e5ff1f1dc3c67154558fe64fe61cf1bc726860ddac56d35b52d2e228ee67b886c
6692d3e263e9b442e261ea31a1f48edfba95715415afe627e6725936a37d6a24babad36cee2cac2

1d22f042b7325e5e4332b373670c16282bc9be112ab7a7e2ab22d0353d4b57b5b5bcd4bd749e4f3
2432c705caca8628a5b2593822ca0304572e07d38abd4b15762aec55d8ab1ff3d123c93e6320548
d32f283fe783e2af38f33e93e734fcd38bcc5e5db2ba164fa1e93a5cba94090385aeb714b7aa16527
e2166643cb87b27c7b62a95a5cfe7dfa0b0d6f8cc6c9a6799a0d3830bd5b0bfe310f878f13709655d
bf6dfe2e1cb8aa99d9defe769975082e219bd3174bfa0ae5e3b4f8edc5c44d3fd69546c3d0693d02a
03725a3d5b8725507727f3b74eb0babab2fd27a8eb179a6698f07ac34ef460bf4b5bd6bb468408d4
0f5fd05f83ed725fde1456c559268963a859dce91fa42d24b36b8f366ad7b6f0cfc797a1736b7b2230
e2cc054374aed8ab2e3ff29daffdb20ffd448c55e6365e5df3c797f59d66f343d2af3f43ea173f5a9f9c
96475880de5fcb25e43693b49c2684f217117aff00bc8559a146e91c6aaaebda87e66e88b6f75a8df
5c5b59c9aadae9f7520366c66b3bbd42ce0b6fab8e000b868de659be109cebc3fdd58aab5bafe74c
3095b8fadcd756d3da2b303a77a771a43cf019ca90c0adf2422553f0ac2ce79237d8a2aa1e43f23ea
fa64b710f9cb409352b5bdd3ec6db4f323dbced686da6b969a272641c0b33a4fce3af2e543f146ab8
aa6775a379d6ff569eef4abe593cab16a376b7da247194b96b9f5c7198cbebc22588293ce02d1fd9
e5fbdfb18ab3efa8f9a7feaf36bff004807feca715487cdb65f98234b87f435da6a4ff5cb63a85a59aae
9b77269f5613ac13cb332ac9bab0ab47b2b0e6a5b1562d7fa1fe69b6a26cada6d406922600df26a1
07a8f6f2dd69921a03c4868e24be463c17edfeeea1978aab2c3cb3f9a769af5b9b9d47549fcbcd737
ef48efed9a68bd3be7faa7afeb2b72824b3e0bc223ea2cb52fc5bf78aaa5f07963f379ac6417b77a93
df45a75d258cc9a842b22ea53e9fa7c8acf4708e82f21ba401830459361e9362afffd2f7f62aec55d8
abb15762ac17f349ae534ff2f359c4935d0f31692628a57312337d606ccea8e5453bf16c5552f7ce3a
e69d7d0e997ba7e970dfdc3429140daa4f52d72cc910245810a5ca304e44732adc7154c7f4879ee9
ff001c1d36bdbfdcacbff6438abbf4879ef7ff00703a6fb7fb959bfec87154b2e3ce5afd98d44ded968b
6e34911b6a4d2eb12a2dbacc39466466b000061d31556d1e7d6a7f3bdd9d6acadeca45d2a0f496d
6e5eec3037335492f0434a53c1b156658abb15762aec55c083d315762a95f9965583cb9abceebc9
62b2b97651b1216262462ac17cb5e62d7741f21f95e4beb2d320b46d2eca3b777bfb82ee52c8484
048ec5cd42233b52bc5558f418ab28b6d57cdf796d0de5ae99a5cd6b708b2c12a6a531578dc0656
07ea5d0835c5557eb9e76aff00c7234da7fdb466ff00b22c550b71aff99ad2f2cf4eb8b0d2a3bdd40c
8b63036a33f294c29ea385ff0042a7c2bf11c552c9757d5b5d93cbf7621d364d21b550a2f6c2fdeeea
f025c46caa0db46a68e851be3f84838ab3ec55d8abb15762a80d734c5d6b45d4747690c2ba85b4d
6a6603914f5e329ca848ad2b5a62a95c3a779d523547d6f4f3c40155d3251b014ef7a7155e6c7ce7
db5ab0ffb86cbff006598aa4cf7de754f36db7968ea9a798a6d3a6d45ae069d2860d0cf0c3c00fae52
87d5ad7db1543da79a352bebfbdb187cc16689606e96e6fa5d2e44b4592c6548a74331bde2ac8d2
2fc2fc5987c6b54df15455f5b6a17977637771e6bd2d5b48905faaada00385c4325ba33d6f0d1584a
78b7ed1c5578b6bf7d5d3594f3469c676d3cf0416a0a35a7a824338ff004ba95aedcfec62a975a79e
62bb8341b88fccd68b1f996ea7b0d1f969b20f5a7b56916415172428ac455589e2cc5157e275aaa9
bd80f33eacda84371a8d8f1b1bc6b64ae9ece182471c8188373b1abe2a9a7d4bcd14ff008ec5a57c
7ea0dff6538ab5f52f34ff00d5e2d3fe901ffecab1544687a5cda55b4f1dc5c8bab8b9b99aee59563f4
5794cdca8a9c9e8074fb47154cf15762aec55d8abb157ffd3f7f62aec55d8abb15762ac2ff323fde7f2
cffe047a4ffc9fc552ff0039f91fcc1aef992d35cd02ee3d22f218e2b77d523965e725a8f58c90cf6b431
4dc1dd64b6909592090bb2b2fedaa925a7e5d79cd6e6c2f6eeead2ca3861b53716763757b2a5bde
db5da4d71736ed2052e6ee20d1491b2a52a3e29394859563be55fcadf3a4f63a3ea93dec9069f796
b612dde8375797d04f65a85bc16fcb50472ace6e1a48dfd580fa68eadf149bbf2553cd3ff2a3cc3722f
74df31bd9fe84d716cd3cc5f549a49a7bb6b2b39216622e202bfbe959256fda5e3f689df15649e44d
3fcc5a55f58e9be6cb886ef5fb3d0e1b6b9bbb52ed1ccb05dcc91484baa9e6d185326d4f53971f871
57a0e2af31d53c9fe78bad6357be4ba8668bf4959ea3a34df5ebab7736704966f2d84b02218954fa1
30127ef2ab37d91ce4c552eb5fcb7f3948201a9ea64ba49a4abb45a85e1516f656cd1dd002880f39
38bf13fde53e3231559a5fe5ff00e615bd86962fafc3ead668ad7f3aead7b24571791c96359d51a350
a245b79898c86e2d29ddb9be2acb3cb5e52d7f45f25e95e5c87555d3350d3da413dd5b46976b323
49230ff007a176e5c831db63f0e2a8bff000f79c3fea719bfe902cffe68c55836b5e50f3ddb5feb5ac8f
3049079762d3efbf4b5b4905b7fb9673684232c5102b084e866aaccfc3871e1f162a99ddf956f3cddf
95de52b1b008977069f657369782e66b2bab4b95b1e30dc5bcd08621959a8eac384913488d5078
b2a803f973e789640d7f79a75e3437b6b3cf3ac9736e753b04882cb65710a2fa70a249578787a8bf
0a2f04fde72558e41f963e79bebebe16faa4b15f68d3c104d777b35dac3addbfe8ed3964b57e4ac05
b34914fca55591fd4fd9e464e4aa75ff002ac7cef67a8d9dfe9b7364b36991dc26957771777573736
b15d69a9662dd5a689b9ac3206995d8fc7cb745c5537d07c9ba9792352934d4b88a6f285d6b76d7
ba145ff1f50cd35a4bf5d59424691857957d54e3fb5249cbb62af52c55d8abb15762aec55d8abb156
213ff00e4d2b0ff00b605e7fd46dae2a905efe525c5d798ef7ccd0eb9f53bfba786492382d152daede
dae96785b50856455b968a31f578dc7a4fe91f899982715523f397e4e5ccba5cd268ae97d7715ec1
75a7e9e20861890cd7560d72af574568634b4e5145f095fb1c9b8a62a8ed37f22ecf489b529ac356
a35f4c2fedda5b5591ad2f0cb1cb2c707ef005b390c481ad42fd9e43d5f8b15441fc9859342fd112eb
b32dcda7ef745bdb78de016577fa45f53f5c42b37090894c602bedc625fe66c559b796b97afae87a1
6fd26f523604fd5e0a9a54d3154fb15762aec55d8abb15762aec55d8abffd4f7f62aec55d8abb15762
ac37f326d3eb7a4e92ab33dbcb1ebba3b453c5c79a335f44951cd5d7a31eaa7154c5bcb57e0123c
c9ab31152179590afb7fbcb8abcef40f3e697ae368bfee735eb38758d36f35759aea4d2b8dbc16173

459

15a32cc238dc8769268f82a06e55ebc853154fa6f307946da0faccff00991325b84865f59aeb4fe052
e4c6b151bead43cccd185037fde27f3ae2a9e69ba5aeb1636faae95e6ed46f34dbb8d66b5b9824b2
78a48dc5432b0b6dc62aa1a5d8cfa779ee6866d46eb50f5748460d766225385cb0a2fa514637e5b
d6b8ab32c55d8abb15762aec55d8aa035c823b9d1752b6945629ad678dc0343c5e36077f91c5587
790bcbd7937917cb129f30ea885f48b03c55ad405adb47b0adb9e98ab1fd53ce16da56afabe8afa9
ebf35e68fa8e8fa548ab3e98beb4baf322c0f187452510c8bea5406ebc15a98aa7c9ab795da5f497f
302e9a5f5feae53eb3675130119e247d5f607d58e84fc2dea253edad5544797a6d13ce16b25df963
cf579ab5ac451249ecae2ca5552e8244dd6dcfda560ca7f6862aa7e64d32fb499fcbd7635abfbcff73
5651341726dcc6566e7135784087a31fdac559f62aec55d8abb15762aec55d8ab04d634bb4d53f3
3b4d8af3d5f4d741be2a219a6b735fae59f530ba13f238aa1bf30a1d1bc91e4fd4bcd11d95cdf369c2
26faabea77d08712cc911f8d64908a07e5f64f4c558f43e6ff0022daea1ab5a6b6b75676d65a947a5
d8490de6ad3cd704dbdacd24af17c2c888d771a16f8c7ed5698aa22e7ceff0094f653dcdacd71aa09
ac649a1d4154eacff5516c904b2c93156211123b989d99becab7f92d455e803ca1a18028b7541d3f
d3ef7feab62a87f27da4161610000026060f002220574d464301000000000001000000000000000
500000000200000645f0000649f00001fa76d2db97a31ea92f11248f2b7c5040c6af21663b9ee7156
4b8abb15762aec55d8abb15762aec55fffd5f7f62aec55d8abb15762ac57cfef1c5a469f2cae238935
ad199dd8855006a307527a62a9dbeb3a49460ba8db2b5080deb46687c69cb157915bfe4df94edac
f43b7b7f35fa573a05a4d6b697b1ad82caf2cb7d0ea093cbf015768e5823010afa6c9c832fc5cb1550
f37fe56dbea4d06a3a279b633abdbdd698f04776f651db45059dfe9f7739458a1d893621e38c058fd
462bb21d957a9e81fe1ef2f6936fa3da6a503c36fcc991e68b93c92bb492390a401c9d98d00a0ed8
aa5f0df5a5d7e64225adc4738fd06ecde93abd297880578d69d7156618abb15762aec55d8abb154
2ea4a1f4ebb43d1a1901a75dd0e2ac53c81afe831790fcaf1bea968ac9a4e9e8cad711021bead18a
105bae2ac675bf2479335ad535bd5e7f364114dae6a1a4ea12d1ec5bd23a270314513b02c16428b
ea6fcfaf064e58aa164fcbef291b2d2f4f1e772d1e892472d945eae9a8596d64824b3494886ac6110
22095ab23ab373635c5535fca8d1f46f21795b4fb0d5bcc16177af2d8d8d85e4d1dcc3e884d3e231c
51c468859579310cc39b72f8b154d7ce9ade8f77fe1cb7b3d42dae2e1f5dd38a4514c8ee4096a485
5624d06f8ab3bc55d8abb15762aec55d8abb15615acdda695f985a66a7791ce34f6d1afad7eb115b
cd708276bab59021f451e84aab115f0c55af32ea5e4af3768975e5ed68dec9a6de7013a436ba840e
7d291655a3c712b0f8901d8e2a9449a5fe5d49adcbe6366d5975796e7eb925cc6356889730456ec
944451e9bc70c41e2fb0e63462bcb1563ebe43fcb7b6d6ed6fec1b508f4978aea2d5f4f960d5a7fae
9ba4b68903b480feed52d95192949178d7eceeabd3bfc67a00db9dd6dff2e17bff00547155be53945
c8d66f238e54b7b9d46492069a292167410429c82caaad4aa91d3b62ac8715762aec55d8abb157
62aec55d8abffd6f7f62aec55d8abb154243a959dc24ef049eaadb4924327005bf790fdb55a0f88a9f
84f1fdaf87ae2a95eade64f2e42ba2da6a4debc3e659d6d34b5f41ee229a63135c056a232afeee377
abf11f01c557cda7f956da4549f4eb38d1d4b7acd6d188451d23e264e3c4316701549ab76e98aa16
ff00fc1da5e8b7dafdfe9b041a6e9d15c5c5db358fef161b4e5eab88847cd800a48e2a792fc4b5ae2a
8b6b0f294763fa4e6b2b08ac043f596b89618a345842f32ec5945005dcd715571a279708e434db2e
34049f422e8dd3f67be2ab34293cbf7097171a25bc50fa73cd677063805bbfab6923452291c5490a
c0d0fd93d462a9be2aec55d8abb1543dfdf5ae99673dfdec822b5b74324ae77a28f003724f40075c5
521b0f3f79675186fe586ec29d2af5b4dd4a2928b2dbcc937d5f9489524217d83fd9c55bbaf3ae9b6f
e60baf2dadadddc5f58c5673dec90c6ad14516a3249142c4970c45627e5c55b82af23b62a95eb1e6
6fcbdd14db35c5adb5cc3789eac173696f15c44c3eb96f647e34a8a896ea207db91fd9c5536964f21
406459db488da0678e60e6d94a3c2bc9d5abd0a0dd81fb231553967f22412ce2e23d2e186d954cb
7528b5584333ba142c4ecc0c6dc811fc68aa316cfca12de1d3920d35f5054131b409019846dd1ca5
39713d8d3154743a3e936f22cd0585bc5327d891214565f9102a31546e2aec55d8abb1549b57f33
699a2df59e9f7b2709af22b9bae6df0c515ad8aab4f348e76555f5117dd9c7be2ab6cbcd3a5ea3a92
69b68e6469a2b89209a85519eca5586e2221806578d9d2a186e1b6e8715621e54fce7f2df996c93
519e5b6b0b568269e58feb91dc5cc1f577943acf0c6bc93e08249797c4a110f3e38aa3345fcd6d175
6d5eeb4c9207b586da6bfb74bc67592395f4fbcb7b31c02549f59ee53d303af4c5537b4fcc4f255f94
165acc13fa81ca18c3b29f4e312b0042d2a15aa475ea3aab62aa165f993e4fb9b94d3e7d56da1d51
83b9b6121702357b94562fc55472faa4db1ef148bfb38aa7da46b7a5ebb04973a4dc0b982195a095
82b2f195002ca43806a2a3154c315762aec55d8abb15762aec55d8abb15762aff00ffd7f7f62aec55
d8abb15796ff00cab5d692ef429e2d4235b7f2f6a575a8a218c99ee96e2f25b90bea075a0293b46c1
f6f51049be2aebffcb0d56fbcafe55d112fa18e7d12f2f350bb69d5e40cd7f697d6e6242a46d19bd346
f08c0a7c5b2a9759fe4dea96490c315e69e6de08523488c127a66488e9320664e407c7269aceff00f
19cb7da53cd559abfe4d6bbaa432c31eaf696b1ba6ac9184825242eb0352428c43af24417e8403b
72876039fc2ab22f35fe5b5df996d6cedd3508ed9a1d22e748b82c8d34720b9b6786a6263c480eca
e18709142b2726591862a91cff00945e629f5f3adbeb564d03dcbcd75a435a49f50bb824fad2fa53c
42600945ba3c5fed738a366ebf0aacafc9fe4ad43cb1ae6bba8cd7d15dd96b13c97315bfa4564b667
959f8472162444558563e8240d22ff0078c31566b8abb15762aec558b7e617e839bcb7369fae6ab6
da447772c3f54b8bc992de36bab7956e225ac86841688721fcb5c558c27e522473eb17b15da1bad
6e4bff51bd208628358bc82eee559d4d6564f442c07e0e35df154d35dfcafd33cc3ad799356d46556
3e60d26df47888810dc591b617404f0ccc4d18fd68edc7f617aef8aa417bf9556b737a609bcc50c5a
c4ebf5fbb812dd23e7e8dce97219921595782574d8d5a9b73999b97d95c55b9bf25345d734f83eb3
ac49730fa36f6d6f796ca89eb6968d745a29194957f5e1bc78a49450b28475f8f7c5556f3f252cae85

aab6a65fd2834d8eee49edd2592eae34e9aeee24b89496039cf25e3b3edb1e9d7154bbcabf977e7
0d03ccb3cf6ff548a1b3b7b7b2d3f57b88bd66782286c2198c6ab71553709663d457897d26de3924
fda55ecd8aa0b4cd5f4ad6a07bad1efa0bfb68e478249ad6549916688f1742c8480ca7665eaa7154
5473432bc91c522bbc2c12655209462a180603a1a30343d8e2abf15762ac03cd765e53f376bf1797
ef6f25fafc705de917d6d124c237b7d4ad92e2481a745e31cc1618ae23f8c380bfe5e2a9e58f96dadf
58b1d4ae3549efc58594d6b6a2e7834cf25d488f2ceee8aa09e31a22aaa2aa8e5fcd8aa5717e56f9
522d0f4cf2fc66e05ae96979059cdeb0f5cc1a824a9711b371a32b2caddaabb3290c2b8ab164f2e7e
54e97a95c59d95e5efe95b6bcb9616367ebcf3dbceb3d8ea32bc71c71337a7132da9e5f145c5fd36
e5cf8e2a9e695f953f96f31d175fd3ed1a57b7105ee9b766694190fab35dacaca48e4ced72ecfc9771
c54fc28aa1543dd7e53f94ed67925d3ae5e3f304f048da7a5dcfce267b77be90168a80b2249aa4de
a53b3203d062a9bf90fca5ac796ad6de2bfd4b9431472a2e97018e4b75127a3c59a61040f2b298da
8ec8a692f16e5c55b1566b8abb15762aec55d8abb15762aec55d8abb157ffd0f7f62aec55d8abb15
762aec55d8abb15762aec55d8abb15762aec55d8abccff38349b9d56d74f1a65c4165addba5e4da7
decf75042918112accb7305cd52e2c9e32c2ed389744e2f1d1f8b2aa96de7977f32ae6dd7d3b9f4a6
59eee2bd7b6d4a48e3ba8e686e16cae20520fa02179622f157e254ff00767a69ea2a921f2a7e6add
cf35c5aeb1a8a5841737567acdb4d7af6d3ea119b8a453d8b4eb22db08872652aaab3290bf65571
54c66f2f79d23d4a582f6fa11a93d85f58c9aa4d7d1dc4c34cb9bcb473702da5589690c0863948081
a521ff006f1544e87a4f9e2d3f2f17cbde5d9adae34eb5baf5341d62cef230977e5e1711cf0c313524
11335bbbdbc4fc9d15238db97c7f02aa77fe5bfccfb59a63a55dcf358cb67636e63b9d539dc2bd8c9
0b5d32bb46103ddc1ca12e13f772c5eb6df5876555111f977f316ced9a08e6b9bab9d3ee34eb9b0b
b9f576692e6c2096d5a7b39d44688652b0cca662bc64f53afc6dc55633a2792bf336db52b95bcd59
ae26b83a77e97367ac71bc8d92c1a1424cb13d024a3d4238fef95f97c653815511e58f2cf9da3bd7d
434bb957b0b7d6b55b97b6d3f555fab3cf3f98cdd4d1ca913706916d4cd0c88e3e093e0edc82ab63f
2b79f24bef30ae8da95bdc5f6bc9612f9abf47df2d95d69babdbddc53345586466ac96127a25ab1b1
8e1b7f87e32555476a7e50fcd31a4eb16da5ea572dabcd3cd058de4bab9102411fd65eca68e3117
257e32430cc2477e4c824a49c3932af6b8cb322975e2e402cb5ad0d3715c55e3de6cf265d7983ce
7ac5fe8be64d3b43d420b231eb06da663752dacb6c45ac5a95a8654e09207923b8244be972853e
1e4d8ab1cf3e79525b8f2b7982ed75bd295eef4fbabbb7b1d3ee447e8de41697b1cb6d68d2328f42
6791da66631f12929e3fefa551569e438353b3b69ec7ccba6d85bea904e208ad2ea5ff0071da8188
ab4962229a3591f7733a48281fe2e3d462a89f25f94a6d33ce577e64d075ff002edff9a6e629adf52d
0ad276f422b468f4f56917d367903a4902b3728f8b89d54b21e2c554ff00ce9e59bdd5757b7bcd435
9d26d6ccdacb6b6b6d732cf0702a5648ae61092a02fcb92488dc93d3e1b9f891d560767f9716ffa3f4
e8b48f396821eded9d2d8c5705e29a386df4513d0c732b05925b25f5ca37d8bb0c6ae7e355e87f96
9a0687a2ebdae4f63a86917975796f61e8db69b70d733dbdbc308560c657924f4d98ab21e5f17c3f
e4e2af4dc55d8abb15762aec55d8abb15762aec55d8abffd9000840010824000000180000000210
c0db01000000030000000000000000000000000000001b40000040000000340000000100000002
000000000000bf000000bf0000af4300009e42030000000000008000000080fd7fe9430000008000
000080fdffd1422100000008000000620000000c00000001000000150000000c000000040000001
50000000c0000000400000051000000d07000000000000000000000d2010000680000000000000
00000000000000000000000005e0100004f00000050000000e003000030040000a06c000000000
0002000cc00d301000069000000280000005e0100004f000000010008000000000000000000000
0000000000000ee0000000000000000000000ffffff00fefefe00fcfcfc00fdfdfd00ededed00e8e8e800
e3e3e300e6e6e600e7e7e700eaeaea00e4e4e400e9e9e900e5e5e500eeeeee00fbfbfb00ebebeb0
0e1e1e100e0e0e000ececec008d8d8d0093939300aaaaaa00a3a3a300a6a6a600a0a0a000a9a9a
900a4a4a400a8a8a800a2a2a200a5a5a500ababab00a7a7a70052525200fafafa00f9f9f900bebeb
e0066666600b6b6b600b1b1b100adadad00b4b4b400afafaf00b2b2b200b3b3b300b0b0b000aeae
ae00b5b5b500acacac00cdcdcd006a6a6a00bababa0081818100dadada00f8f8f800969696007474
740087878700cacaca00d2d2d20079797900bcbcbc00d5d5d5009b9b9b00f7f7f7007c7c7c008585
8500c6c6c600cfcfcf006f6f6f00c4c4c400999999008f8f8f008989890075757500d0d0d0008686860
0828282007f7f7f00727272007e7e7e00d6d6d600b9b9b900d4d4d400f6f6f600d8d8d800c0c0c000
76767600d1d1d100c7c7c700d3d3d3009d9d9d009a9a9a003b3b3b002a2a2a00dddddd00575757
0056565600c1c1c10071717100f4f4f400dbdbdb008080800069696900dfdfdf00979797009898980
00b0b0b009e9e9e00f2f2f20064646400e2e2e20084848400121212005d5d5d00f3f3f3004545450
0d9d9d900dedede00c2c2c200cbcbcb00f1f1f100a1a1a100c3c3c300cecece00bfbfbf0021212100e
fefef00bdbdbd00dcdcdc00c9c9c90070707000929292004a4a4a00949494009f9f9f00f5f5f5007a7a
7a0016161600606060006d6d6d00b8b8b8001b1b1b0049494900f0f0f00036363600bbbbbb00838
383006b6b6b00909090008b8b8b00656565005b5b5b0024242400737373004e4e4e0078787800
4b4b4b00595959006c6c6c00959595008c8c8c008e8e8e005e5e5e000a0a0a005c5c5c00464646
006e6e6e0050505000888888000d0d0d000c0c0c009c9c9c004040400058585800141414002929
29007b7b7b00303030005f5f5f002f2f2f0091919100777777001c1c1c00515151004141410013131
300393939004c4c4c005353530042424200cccccc007d7d7d001818180035353500d7d7d700232
323006161610055555500626262002c2c2c00c5c5c500c8c8c800474747008a8a8a00b7b7b7004f
4f4f002d2d2d005a5a5a006363630068686800545454004d4d4d0025252500434343003d3d3d00

461

373737002b2b2b00323232003434340067676700484848003e3e3e003f3f3f00383838002727270
026262600444444003c3c3c003a3a3a001a1a1a001717170022222200313131003333330028282
800151515001e1e1e000101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
010101010101010101010101010102040101010101010102010201013601044e620401010f0201
010403010101010f040101010f0101010304030101030f01230103020f012201022201010101010
164010102020201220123030101010101010f010f0103012201010204020101030122010f010103
010f030123040a2abf010123010101220102010101010101030101360123010201010201400101
01010f010302030140010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010000010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
0101010101010101010101010101010101010202555b4809015aa01204651855019695430f031e
284073303a5a43166d02821c557d730637317962031f7d1137c901758453227c7a800e0d30798d
8710311e77cd33122c431a0d017c5b3a2a820f5f84530416518d060301040201010222010103010
f040101010123010108e0620301020122010122010101040f01010104020101010101220104040
103010f04010301010422010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010100000101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
1010101010101010101010101010101010101040204014c624ba34bbd1d2f78cb53935a5c2c1e1
914972d33b1482adc7b15010196d80527759715163ba226d431a5482e5921a02807b820c62b678
c2a8f8d303ee8771c320ad0554a540127ed519e2740745ccdcda527de0d0f010201010202015452
42700d013d4f75034639ca01bec056362348207964cc308d026419b62b0fc328012e966fc9167647
097b8d6d862d0b201722013601010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010000010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
101010101010101010101010101010101010101010101039051023ada9347030115d2018719b5
5135b260bf010a9773064101cca22bad5901017dd436646d40df2435a83601927001017560024f8
0321b4718026d05e55a28c0019a0f6ab126b86a019f3d3bc7010410807a9e360101040102020104
544a652061779b2e2f29d26f143b8f2d29335c9f2b2d4a931d8f65d0a0654658658029a61f3048c61
2ce0eae1da58c1ccaa7960101010f0101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010100000101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
101010101010101010101010101010101010101010101012301011bec845587024b1945233c6aa
17780e48cac4f429311763c032ab13dcb220f0f0b7227836582ad7613c629c5ac8401c351ce04832
9d0201ab62d4f7fd8651e83126301754158c20801721f789e29bd3a7828d6010104010102020101
13750137b9951401234a84018739613b0970575a016fdd650cd01ece010401040302341f01231e6
e409a06bd5aa36f0122cc170136010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101000001010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010104040f012ee94388732d2acc7f3f2b14c3
5770a37b091e3c3d5f1916670122269ca9010301013116b6364a181b90581ed16f2ccd96598923b
1ca60670517861f0fe93e1adc501501013339d20173948bb546179409ac7a840f040f01010202040
101229ccf2a7d3f0162a047017087de56333469174f84454b65c566c6020f0101040417492fb11a9
b0ad313c635c76c501ec0490401010301010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101000001010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
1010101010101010101010101010101010101010101010101010f391e014106011340013664230
201034001026d640103034b3802012bdb790f010103017f220322016422010e400101792202220
222021f2001546d030ee93a01037301010176ebc9030101224001130f010f7f04010102010204010
2040141df5f0f732e3d14792c7da907a395d2596f33a25a512e5bc614ae0101040d0202122b192a2
ba5958673e57c562e9677509417012301010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101

01010101010101010101010101010101010000010101010101010101010101010101010101010
10101010101010101010101010102012201010102012201010401010201013601010201030401
010103010f010202010403010101012201010301010201010f0102010102010101010101010101
0101010101010101010101010101010101010101010101010101023567d157230204010201030
1010101020101040101010fcdb1010208b501020101010322010103010f01030403010201020201
01010101010101010120b95c01040102020173307f010101010101010101010101010101010101
01010103ae440eb522049004010f102201015403040154050104885a6135df12040d7002010254
7f0101017901014981028888010401790103010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010100000101010101010101010101010101010101
010101010101010101010101010101030103010f040f0101012236010301010f01010101010f010
2010f01020f040102010101010102020f01013601040201010301010f0101010101010101010101
01010101010101010101010101010101010101010101010101040204010a100102010f04030101
020101010140010101012301235403010201030101044001010f010101040f0101030103010223
01020101010101010101226d220f0201010122016d010301030101010101010101010101010101
0101010f013dcc488401040f01040f01030303010404010101010101784f02c9148684ac01020101
0103010f040101400104010101010f010402010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010100000101010101010101010101010101010101
0101010101010101010101010101010136ca01010123535a01010101040401010f010154010304
0202010101010401010103010101040101012201010401220101400101030f0101010101010101
01010101010101010101010101010101010101010101010101010f0103010101646d0301013688
0f040203020101402301010101020102010f020101030101230101020f010104040401099c70920
15401010101010101010123010203010302010201010101010201010101010101010101010101
0101010101220190790101020101230102010101010f010401010f0102020f0101366f230201012
222010101010101040101010f04020104013601020101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010100000101010101010101010101010101010
10101010101010101010101011610000026060f002220574d46430100000000000100000000000
0000500000000200000643f0000649f00000101010103263588776575905c9001013e2c517c7c65
3d35923b137751620943316511593e22016d8053015107078268353662682353760d3e0101220
10101010101010101010101010101010101010101010101010101010101010101010101032202
3d5f232354010b2b01020123400401010f366d02012354040101540e012301010f0201036d01222
20f0437a0551e82120b01010101010101010136040102010103010403010122010101010101010
1010101010101010101010101220201900901010f220e0102360101010304020f0102030102360
1010101012302010122020104010f014001013097a206013604020401010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101000001010101010101010
101010101010101010101010101010101010101010101010d4f032838968922181e012312c88d3f
9c65726fd412705b129e7525cdd3318f2c0122525848767224983f3c17d0381f0b41cdc729012301
01010101010101010101010101010101010101010101010101010101010101010f02020201015f
20041dcc2b650137560101786e78880146a92755519a07b62d6fa1526201651b6d17016d344b18
7a59500b9f97b6596e800101010101010101020101222201010102010101010f01040101010101
0101010101010101010101040102032319790f0201038646010101010201010101010101220102
010301020402010302010f0101220101010f88c03e819609c904010201010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101000001010101010101010
10101010101010101010101010101010101010101010101cad201432db64701164a010164e9111
c89034106670196116d9f103f31d388617d0f011330a30b94044243425cb20d0101149442220401
01010101010101010101010101010101010101010101010101010101010101010101010101010
2a11601a51735b6368217012353ea7301368f87654f739e7f727b96cc23836d15be7bb964012181
69c07ddc039c261201200e01010101010101012201040201020302030204020401010401010101
010101010101010101010101010222015b1502339a2701529c2301368719360236278d24221727
55860f3a2d260a01bf8851762258170b961118658d844950bf8b6d0401010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010000010101010101010
10101010101010101010101010101010101010101010101012641040e44611b0f204a01016dd88
15bb1794f0aa34042090c256d432fdd79607d010226ae530e3823433a987ab803755439bd0d0401
0f2201010101010101010101010101010101010101010101010101010101010101010104030102
0f8c7b01d0cd0c6104754d04013ed740646fd3407fa512dc549e3dc01201aec9c7188b932f03bd6f1
9cc46a77f97ca4f3601020101010101010101010422010204012201010101010304010101010101
010101010101010101010136010302d01165e44bca13029c0a0402dc8923012ed20fb646a53931
250edd07488301a6186e500226d211b781dc7b58937803137b2302010101010101010101010101

463

01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010100000101010101010101
0101010101010101010101010101010101010101010101015f45015a1bcc2401206c010254b43e
5b9fa9a0113236d12f8238053f1c9601d3770f01822b2a65bc115b1b8605242c9c5f95ca5c7c22010
20101010101010101010101010101010101010101010101010101010101010101010102010101
572901c73c179e01ca69030144e9ac141fb6592b9f103236603a17cd5fd21b9c07be0e8c81cb0bcc
6eb5b60b414bdf550401010101010101010102010102010202010301010f010401020101010101
010101010101010101010101020179d154563202010f038478010183c0011195a101b137836a51
d175500127b8cd453972700a7d94795e0b63ca16b518c901030101020101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010100000101010101010101
0101010101010101010101010101010101010101010101010f6a3501102236031f90020173e95a
0154050f010e011f35049001220e4001d3560104046436909c0c04547f0104908801345a3673030
10301010101010101010101010101010101010101010101010101010101010101010401013601
36ca1e01c745a95101872702017cde05730d0647ac7f05dc88d03d0117843e2719bf420c877c2d0
6928793090259937a0b0402010102020101010101010101010101010101010101010101010101
0101010101010101010101010102020123c60b0e410e66bf01c00b0302a7d757d31c5001c580dc
6a58d26d9c7f8341703387146552923212af77c77c1b77485c03010201010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010100000101010101010
101010101010101010101010101010101010101010101010101015f56880154017cca02012226e
a1b0f010f010c194023036f15790122015fe5430301010304010c540102230101030413833101020
40401010101010101010101010101010101010101010101010101010101010101010101020101
010105200ad17a5401091c0501033ae468138607010f01089e05213d0101360101360103010f013
a4001220223010122010101020f020101010404020101010101010101010101010101010101010
10101010101010101010101010101012203571c01127b28790950880101a75023556dc982cd01c
7b565b302ca782d681e5517460882555607158d188810332892220401010401010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101000001010101010
1010101010101010101010101010101010101010101010101010103016d02010f0173230122010
e0610010f010103120101010309010f01016413400101040104030102010101020101010412020
30101030401010101010101010101010101010101010101010101010101010101010101010101
0101360101061130760122061201020181a21c1f1c400401230b1a401868360101230101220101
01232f7f030101010f0101012301010102040304010101010101010101010101010101010101010
101010101010101010101010101010101010101551788010101021f62010103679f043b1b36010
104d0a13adc0f015402010102020101020c440f01540f010f0301220104030102010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010000010101010
10101010101010101010101010101010101010101010101010101012203010204020301030201
016401540102012201010236010401360101220101010f010401012301010401010f0401010401
01220102020101010101010101010101010101010101010101010101010101010101010101010
201040101220201010f01012303010101010f0103030122010201230102020201030401040f010f
0101020f01012203030101020101010f0101010101010104010101010101010101010101010101
010101010101010101010101010101010101010401010d0a2204014051010104542e16331d770
15401042eca688d0201010122010101040102652c2202010101010101010401030101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010000010
101010101010101010101010101010101010101010101010101010101010101040f01010101030
10301010101030103010301400201010103010f0101020f0104010103010101010101010102010
1010f0401010101010101010101010101010101010101010101010101010101010101010101010
1010102010101010f0f04022201010104010301010404010f010123010f010f01010f01020101040
10101040101220f01010101020f010102040f040101020402010101010101010101010101010101
0101010101010101010101010101010101010103010f0f01360103020201010f010101010301013
60101020202040401010404012301540201040123010101880101040404020104010201010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101000001
01010101010101010101010101010101010101010101010101010101010101032201010f020201
220101010122022301020f0201010101030f010402010301020102040101010102010102010104
010f01010402020102010101010101010101010101010101010101010101010101010101010101
01010104010f0f0101010f01010404010103010f010301010102020201010101010101010101010
10104030102010101030101020201020302010101040201010104010101010101010101010101
010101010101010101010101010101010101010102020103020101020101030f01010104020102
0f040401220f01010f01030101012201030102020123010f0101010104010101040303010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101000

00101010101010101010101010101010101010101010101010101010101010101010101040101
020401010302010102010104010401040102010123010f0301020f010101010303010101010201
01010101010301013601020101010101010101010101010101010101010101010101010101010
10101010101010202010104020201020101020101012201010203010f040301220102010204220
10104030201040102020401040102030101020401010303040202010101010101010101010101
01010101010101010101010101010101010101010101010101360201010102020101010301040
10201010104013601013601040101220101010122010101010102010f040436010f03010102010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101000001010101010101010101010101010101010101010101010101010101010101010401
010101030401010101010140462926332f52263d52cd8d26338d80cd24cd9233528d8d52335233
8d5252cd9280cdcd33522707010101010101010101010101010101010101010101010101010101
01010101010101010201020102030102020101010104020104010f01020201047824804680773d
7b3343808d5624337d628d7d3326337d8d56248024805252923d7bc9248dc90b01010101010101
0101010101010101010101010101010101010101010101010101010f0104012201020101020101
010104010102010f010103020101010401010102230104010f010402010f0103020103010203010
2010f0101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101000001010101010101010101010101010101010101010101010101010101010101010
101010101010101010204010108253a785959caca3a3ac94382467c4378828278823a464378778
23a46bf623aca3aca823abfa2960102010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101020103040104011221922acd3d2c
165230301f332a1f192a2b927a181829302b28cd278d2a1c1c2f2e522c2f1a3ca001010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010304015f551211656535355f5581765f07550b1212555f35086f686
f12350d11127676686868760b68540104020101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101000001010101010101010101010101010101010101010101010101010101010101010
1010101010101010301010101094e0f01020101010102030104010f01010301010f010103040101
01230101010404040401012f6a0122010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101020102010104025fb60f04010101
0f0101010122010101040f01020101020f01010203230101010403010401222c473601010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010253833f181d1b6c19191b1d1b1d191b7a871d7a305b17ac18
1e1b17871e1b171d1d1d171d1d7a691c400101010f010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101000001010101010101010101010101010101010101010101010101010101010101
0101010101010101010101010403075001010f0301040301010301360104030101020123040140
08730101220103040201040201cd3f010101010101010101010101010101010101010101010101
010101010101010101010101010101010101010101010101010101020101010104025f45020104
0301030401044001040201010101010201010179056d01010103010201040104018d950101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
0101010101010101010101010101010403013b572301010103010102030102010f010101010f03
01010203012236010101020201010102015516010104010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010100000101010101010101010101010101010101010101010101010101010
1010101010101010101010101010202010109b10f0101010102010103040101020122360101040
20101355e580101880101010104010302295b01020f01010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010201020202040168
570101040401040102010f01012302010102014001010181de8201030201220101010102042f14
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101013183010201010f020101010102030188012
301040122010136810c01010101010101010101015f18010101010201010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010100000101010101010101010101010101010101010101010101010
1010101010101010101010101010101020201010107410104010101010122103d7d10538d5122
2c6501bf586565d91f5a01010f02040101010201521d01010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010201020102
0201659a040401010102010106ca597f4bcac3232b6f01445f6f07bb163e0101020101030f020101
52860f010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010301014457012301030101010201030101540
101010101010102048821620123020202020202020204122e0102010102010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010

465

10101010101010101010101010101000001010101010101010101010101010101010101010101
01010101010101010101010101010101010101010202047657010201010101010405e9c7012de8
5689ce9c31b8cc9b1ee286a278010f010102010403022f170304020101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
010102045aa7010101040201040410e5720419e64696e34258d4b6601e5d42a158010f01040101
010104525b0201010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010302789c0101030201040102013b3
e6d1058750253110313810e05c5206801010101010101010101762e02010401020101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010000010101010101010101010101010101010101010
1010101010101010101010101010101010101010101010402010d3c04010101040401010fa7960
1087462c622015348c9d176b0053d6a2301020f010201010226280102020101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
010101010101037c94010104030201010101b3a1020e6080d4043676a17b986fc8117b9501010f0
1030201010f2c69010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101040131570201010101010101
79c5dd7f3b5e281e74b63a9f3ce369b3146a3d04020101010101010f65200101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101000001010101010101010101010101010101010
10101010101010101010101010101010101010101010102010202010789010102010101020101c
7dcca6cbbc9c7071d514b52ce5fe8102c50010101010102040101262e0104010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
101010204010101044445020401010202040102d297442dbe3a25071f3b3118ce0d915f629a0104
020101020101018da001010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010103017c890101020103010
3030138410123d05fd07801054724d7439768759e040201010101010104071b010202010201010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010100000101010101010101010101010101010
10101010101010101010101010101010101010101010101010201020401683c040101010104040
101253c6829b4407a28b844571657438e3cde92020104010104010204cd2901040101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101020103010202015838030101020101020401b3dc6529c2401b2a74c963cd837be73874
1f01030f010104010401cdac0201010101010101010101010101010101010101010101010101010
101010101010101010101010101010101010101010101010101010101010101037c3c040201010
10f01012293c56831bd0dd220701a132fc4bfdc5a68e30302010101010202013520010301040401
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010100000101010101010101010101010101
010101010101010101010101010101010101010101010101010101010202015fb6010101010101
01010fdc84015fda64234676010a460d22585a59230104010101010101032a27010401010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
010101010101010201010101c345020104010101010102b349010ba89088623b02092468363153
7b0f0101010401040222042c5c0101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101230101bf57020103
010101010101388b591d5d901fa2746c2e1e8fc9744fae39020201010101010102761a010401010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010100000101010101010101010101010
10101010101010101010101010101010101010101010101010101010102010101118901020201
0404010f90df325428c852540101020101030101030101232301030301030101268d01010401010
10101010101010101010101010101010101010101010101010101010101010101011610000026
060f002220574d464301000000000001000000000000000500000000200000641f0000649f00000
101010101010101010101010101010101020f5a3201010301010401020ad6970430e65601010f0
10203010401360f015401010104010101012986040101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
010f78b6010101012204220201b6380140c61003c344010e5a6f360d4b7b0101010101010101010
11220010101010201010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101000001010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
0212b63601010101020103730a090f79081301040f010f010302020222010401010201020103022
72f220102010101010101010101010101010101010101010101010101010101010101010101010
101010101010101010101010101010301040102035aa701010101010401025411350f103506030
10223010101020f01010f01010f0101010f03012b47010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101024b8902010101020101016d94ae7f7c5d1d0301010f018801012201030201020404020202
0422761601010f030f010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010000010101010

10101010101010101010101010101010101010101010101010101010101010101010101010102
030f654e030104020101010101030101040201010f01010140010201010101040f0301010301010
22c430401010101010101010101010101010101010101010101010101010101010101010101010
101010101010101010101010101010104010f0101015ab636220104010101010f0101030f010301
0301010103010104040401010f01010f010201012a200101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
101010122c93801010f0402010302010b904040111302040f010401010422010101010101010101
010101811a0201010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010000010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
202010177bc1b5c86375c69a06a5b84865c5b69865baca0a0377a6a6a846c873f696969475bac5c
acac832401030f0101010101010101010101010101010101010101010101010101010101010101
010101010101010101010101010101010104010201010133e0161d1b191d7a473f876c877a6c87
1b5b1d475b7a1e6c171987195b7aac6c866c876a5c209a18010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
1010101010103bf9c01010101010202010301010102010401010101020f02220101042302010101
0101010101512a020304010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101000001
01010101010101010101010101010101010101010101010101010101010101010101010101010
101010104222f9c7309070d080711070d120681760c110c0b0b680b0b0b6f090b6f6f0b0b6f12110
711086f3f780202010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101020401010104036c9f087668766f6f7681755f655f556
51212355a6868555306750807c36f11c3c35f6f1107098758010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
1010101010101439b2e6c1d7a1d1e1c18871e6c5c171a18177a1b1e1b1d2e187a1c28181d1e202
0181e181c178419010101020101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101000001
01010101010101010101010101010101010101010101010101010101010101010101010101010
102020101041f5001010201010201010404010101230154010201010f010f010202020104020101
01020101293103010401010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010102020402020147b10101020401010101010102
01010301010201010101010201010104010403010101040201270b0f0101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
1010101010101020204bf630e090b0b070d0b116f116f0712760b0b096f087608120b08070b0b68
6f08080b070d090c522a010f0101020101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010100
00010101010101010101010101010101010101010101010101010101010101010101010101010
1010101010101011f6601010301010401010101010201010136015401020104030101010103010
10f0101010401303b02010101010101010101010201220104010102010401010104010f0104010
1010103010201010402010f01010101010101010104010122010f016a3c01012201040103013601
23010122010123036401040201040123010222010f0104030101265f0401010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
101010101010101010101c9c002020101010201030122010140020102010102010202012201010
10101030101010102028128010302010201010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10100000101010101010101010101010101010101010101010101010101010101010101010101
010101010101010101011f66010201010301010301010301012301010b25c3010f0301360401010
301010123040102012e5902040401010101010101010140010101010201010101363602010101
0101020201010f01010f02012301010101010101010101010340013604015cc0020101012302010
f010301220401020412a5c301230103010f02030101030201010101031f55010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
1010101010101010101010101c9c00202010103030101040104020102010122732301040102010
1020f010301020301010202682b010103010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010100000101010101010101010101010101010101010101010101010101010101010101010
101010101010101010101011f660102010f22080e01040f400f22036d0273a3680f0101882303029
03602889001036488012d580401010101010101010101030101550301646879230e6d010c0e010
31290400e88107901760104010101040101010101010101026589750101015cc00104010301081
301010273010236900179d065230122368801017940036d900301238801336f0f0101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
0101010101010101010101010101c9c0020201010401020f012201010122010f6dc51f010201013
6010201010102020103010204651c0f01020201010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101

467

01010101000001010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101011f6601020173577d393d13d4dc4b684e1a300fbd2c5c8828ce3c06
421442a13f4804024d9b6d27bf010401010101010101010101228f9f84903496458242b52369150
2c7949653a744952e87a9790101010202020202020202020201013ea23979045b4e04010105572
ca1580b9bb3588134173023bc16a0012d9b9309868966141869012370a88826350101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
010101010101010101010101010101c9c00202010f017f73010202010f02010c0101982c0301014
001010136230154020f04030104681f03010103020101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010000010101010101010101010101010101010101010101010101010101010101010
1010101010101010101010101011f66010f013b2e01209484631331d48904575fc5224eb6ce5306
52d1735b503e3904016097012d3a01020101010101010101010392be05353e7223410886ac0437
163ecf097f0ab190954b4e1e0f017f27927d3d3d3d3d3d3d3d3d5292c98dd385656c660204014b2b
02699487c5063ad0890f83688b01b1c08b560b626008196351c00f01cec50133550101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
010101010101010101010101010101c9c0020201545c69347804149c7b2237ac52049e89196d51
728609c389473959156401828c0d512e0201010201010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101000001010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101011f66010104230165b8ccb53b0136bc2402b67567016a5dd211
582c7001206a0189ac1ed608011b5a0f01040101010101010101042fdc01880d210f3909963f0247
2058215f2f0acc086a44b1290101096aa0696a6a6a6a6a6a6a6a6a6920869be47b1d66010101540
f53a8395c3a36029b8d01a756452216e06011583adc012e4d224aa01ce581228d8102010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101c9c002020109663692da16d10e765c8303412fd1524ba7
cb170c5f677d168b54340a043f9b406f2f0101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101000001010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101011f660101010128e2a7019287c9ac846a436e81e32bd4661780
e31784754139015856663901011a780104010101010101010101011334ca9a8d9e889c0739a724
b1252c412a7231a32e4a814a48040101230f010202020202020202010f824c1c02013f410201040
128e283013d197c1ea947449755748dc6663780ce1e143ea14a01c38d494e0201cd35010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
0101010101010101010101010101010101c9c002020102886d61c76a69010f6a1701505cd15909
a6997b3a35a77326670428577ac28d017616030401010201010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010100000101010101010101010101010101010101010101010101010101010101
010101010101010101010101010101011f66010102649dbf36c90131a08104c97a0b0f7d6c1f0179
871d03132d67a0020214d75a010f18580202010101010101010101030179310809c37f4b031335c
30d75c3365311021011c301cc8403030301010f01010101010101010381b50a012201476604010
16dd63d36430146a2440126ac6f732c183f0179861701052a679c0104a0913a0104268104010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101c9c00202010355e1d103104758662f700c6e248f4834
a74828d02dcd2447c701131a31cb01013528010103040101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010100000101010101010101010101010101010101010101010101010101010101
010101010101010101010101010301012a930401010eb6066c3404020101010204020101010101
010101010104849501037ac7010401204403010401010101010101010101010101010101010101
0101010101010101010101010103030402020101010101010101010101010402010301015c5004
040173a7101dcc22010102040103010101010101010103010f015c890401acbd0201022f6501010
10101010101010101010101010101010101010101010101010101010101010101040101040102
01010101010101020101010101010101040101438901030122324901800f3e37520f441553038dc
d377f012dac640fcd57c70102a19849010281160104010201020201010101020202020202020202
02020401010301010101010101010101010101010101010101010101010101010101010101010
10101010101010101000001010101010101010101010101010101010101010101010101010101
0101010101010101010101010102020102188901014001533d2e4401010101010101010101010
2010101010201023a7c01017f0701040217530f0303010101010101010101010101010101010101
010101010101010101010101010104040202010101010101010101010101020401010201046ac0
01010303bf33163b01010102020401010102020202010101012304bf8002012375015401cd55010
1010101010101010101010101010101010101010101010101010101010101010f0102040101010
20202010202010102020202020202020401032259b601230101397c8dd00101010101010404010
f0202030301020101042e67030259da0b040f5f2701030304010101010101010101010101010101
010101010f01010101020101010101010101010101010101010101010101010101010101010101
01010101010101010100000101010101010101010101010101010101010101010101010101010
101010101010101010101010102010102032bb1640c6d06907f360a130a0a0a1013100a0c05131

010130513107f0e0588900c90797f7f7f5b550222010101010101010101010101010101010101010
10101010101010101010101010102020101010101010101010101010101040101010101225b9c2
36464880140014054792364549088888864646464888864404036365488645422882322301140
01010101010101010101010101010101010101010101010101010101010101010101010204362
20102010201010202010101010101010101020101c94a01040401062f8031010103010f04010203
0101010136040f020103584601012353030101751f020104010101010101010101010101010101
0101010f0104010104010101010101010101010101010101010101010101010101010101010101
01010101010101010101000001010101010101010101010101010101010101010101010101010
10101010101010101010101010101020423012bddb5cca2cc4295a16696709370424c42704d429
34d937042704dc03c66429370704e4d66a1b346010104010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010102010102010104
2ab93f849696a23f498696a286a2a0a24884b5b59595b5b5848695154815479595a014a2481532
51010101010101010101010101010101010101010101010101010101010101010101010201010
101015454222303020f04010303030f0f2222224001026270360101030101020201230201010440
010101032301010101010201010101360101230101512a0f010201010201010101010102010101
01010101010103010122040102010101010101010101010101010101010101010101010101010
10101010101010101010101010000010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010f2db102016d0101022201012222220f030322
23032223230f0322230222228823010f0f220f04204403010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010402020101
02014689364040037936368888545479404040405488646488544036646454797940646473046
4221f5301010101010101010101010101010101010101010101010101010101010101010101010
40203010f17414ca948a0156947373737a0a086868695693750d1156a873f1517b5485c6aa019a0
3f1d5b411b3030201c6aa01a19161c18162816171a2d1c474227301b1c1e161f302828301f161c1c
1c1c1c1c1c1c20195f0102010101010101010101010101010101010101010101010101010101010
10101010101010101010101010000010101010101010101010101010101010101010101010101
0101010101010101010101010101010101232201012e410101010304020102010202020101010
2040101010101010101020f010101010f010104021f440101400101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010201010
10401439a012304010f02040401040202030401020204040404020204010301010301030102030
f0129ca02010101010101010101010101010101010101010101010101010101010101010101010
201010122346f7f0e907910130a0e0e0e0e0505050510130e736d7f0a0e790c0a7964090e0c7f101
09055cc11130c73793018907f060c106d11067908130a0e0990060c100a060c101313100c061313
131313131313131c31040201030101010101010101010101010101010101010101010101010101
01010101010101010101010101000001010101010101010101010101010101010101010101010
101010101010101010101010101010101010101010128c0020f0122010f01010f02010101010101
0102020404020202040102010101010201040401283a0f01010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10403804a0401010401010f0101010101010401010101010101010101010304010101010101040
1042b58010101010101010101010101010101010101010101010101010101010101010101040f0
f01020f404c0e010201010401020101010202020202010104020104040402040104020101042201
010f90a2230104030177cd04040101040f010201010f01010102010122010101010101010101020
202020202020201293a0201010401010101010101010101010101010101010101010101010101
01010101010101010101010101010000010101010101010101010101010101010101010101010
10101010101010101010101010101010101010123010230660401010201010401010201010102
02010101010101010101010201010301010202010104304402030101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010104
0103030101529f02020101220101010401040401020102010101010101020f04010102010f02030
10204022d4b040101010101010101010101010101010101010101010101010101010101010101
010102010101404c0501020401040102010101010101010103040101030101010103010104010f
01010f010164423604010f0277520101010f01030103010201010f01040f0a530801010202020201
01010101010101010104334401010402010101010101010101010101010101010101010101010
10101010101010101010101010101010100000101010101010101010101010101010101010101
010101010101010101010101010101010101010101010201042e500136783a3531827682103a7c
567c755a5180730b280c7f3ac9014444134309813a6288042abf030103010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010102
010204010101c963012251815f816f0b750e3b4451816f550aca7f907d10405a51010d3e73580a35
0dca0a042f53020101010101010101010101010101010101010101010101010101010101010101
01010102010122497304230301010101010104010103010222010201230f010101010104020102
0104010101799654030201017dcd010101010301040203020101040104034be07f040104040401
0104010104010122010101cd310401220102020202020202020201030101020401040102010104
0401040104020101010101010f0101020f00000101010101010101010101010101010101010101
01010101010

469

Of course, although complex cactus stacks (as illustrated in Figure 8.6) can be created, they must not
violate the single-parent rule.
010009000003a8fd00000000b16c000000001610000026060f002220574d4643010000000000010
0c893000000000900000000200000f8ff0000f81f0100010000006c0000000000000000000000d20
10000ce00000000000000000000006a400000801c000020454d4600000100f81f01000c00000001
0000000000000000000000000000000005000020030000c40100001a0100000000000000000000
00000000e3e306006e4e0400460000002c00000020000000454d462b014001001c000000100000
000210c0db01000000600000006000000046000000fc440000f0440000454d462b224004000c000
000000000001e4009000c00000000000000244001000c000000000000003040020010000000040
000000000803f214007000c0000000000000008400005484400003c4400000210c0db010000000
000000000000000000000000000000001000000ffd8ffe000104a46494600010201004800480000f
fed0a3650686f746f73686f7020332e30003842494d03ed00000000001000480000000100010048
0000000100013842494d040d000000000004000000783842494d03f30000000000080000000000
0000003842494d040a00000000000100003842494d271000000000000a0001000000000000000
13842494d03f5000000000048002f66660001006c66660006000000000001002f6666000100a199
9a0006000000000001003200000001005a00000006000000000001003500000001002d0000000
60000000000013842494d03f80000000000700000ffffffffffffffffffffffffffffffffffffffffffff03e800000000fffffff
fffffffffffffffffffffffffffffffffffff03e800000000ffffffffffffffffffffffffffffffffffffffffffff03e800000000fffffffffffffffffffffffffff
fffffffffffffffff03e800003842494d04080000000000100000000100000240000002400000000038424
94d0414000000000004000000023842494d040c0000000008a5000000010000007000000032000
00150000041a00000088900180001ffd8ffe000104a46494600010201004800480000ffee000e416
46f626500648000000001ffdb0084000c08080809080c09090c110b0a0b11150f0c0c0f151813131
5131318110c0c0c0c0c0c110c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c01
0d0b0b0d0e0d100e0e10140e0e0e14140e0e0e0e14110c0c0c0c0c11110c0c0c0c0c0c110c0c0c0
c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0cffc00011080032007003012200021101
031101ffdd00040007ffc4013f000001050101010101010000000000000003000102040506070809
0a0b0100010501010101010100000000000000010002030405060708090a0b100001040103020
4020507060805030c33010002110304211231054151611322718132061491a1b14223241552c16
233347282d14307259253f0e1f163733516a2b283264493546445c2a3743617d255e265f2b384c3
d375e3f3462794a485b495c4d4e4f4a5b5c5d5e5f55666768696a6b6c6d6e6f637475767778797a7
b7c7d7e7f711000202010204040304050607070605350100021103213112044151617122130532
819114a1b14223c152d1f0332462e1728292435315637334f1250616a2b283072635c2d2449354a
317644555367465e2f2b384c3d375e3f34694a485b495c4d4e4f4a5b5c5d5e5f55666768696a6b6c
6d6e6f62737475767778797a7b7c7ffda000c03010002110311003f00f5549249252962751c436bf2
6da70e9cac8f5eb64db5b1c7d315d6e7b45967d0e7f47edb58cb5fefafd3f52c66dac4ea387977d97
bb09ad177aae163cb6b71dbf65fd07f3ed77d1cc752effcfbfa2494d6b68735cd0dfabf8db2c7ed6b9c
dae64eef6bd95b2dfcf67f3dfcd7a2ff00b4ff00dd7437e1dcf755b7a0d1457b4baf6fa543dc241d95d4
f9d9eab6f1e9dbfa3f4fd1fd3b3f3115ff00b61b7555fecbc76b6d7169b360735ba5cf631fe9d9f45cca
aaafed2fd9efb3f99ffb4eb6fec183ff0071ebff00307f724a5ba7562bc3ad9e9368207baa6001ad71f7
58c6ec0d6ff39b95941c5636ba8b18d0c687be1a04012e71e10ba856cb594d56377d6fb981ec3c10
25dee1f9df452536d25ce541c3d665dd2596398f78aac6d4ead8eac39acacb46cb6ddf5b6cfd3fa9fc
efe93ec1f6aabf9b85770b68f51bd11b5b8ef025ae7ed735fe87bdada5bbf659fce6c76cb2bfd2e25b
938febdf8e94f4c92c4e8ed24d775b8cdc5c8dee63c36934fb76b9c19eefe73e831ff4ac67fc22db49
4a49249253ffd0eddcfc9a6cc70dc77df8f663d65ef6faa5cdb5c43375b634bf7d6f6bbfc0b2cbaafe73
23f4367ad501bd4330e49a3f65bc6d0c73bf4d6173459bbd373eb631ff00a3f5abb3137b77fe97f58f
e81ea652db6f4ec56b435bea35ad00340b6d0001a003f489fec18fe36ffdbd6ffe94494e26364f52bb
2365b86ea718d6e7efdb731ec70379adaeb1eff4ddb195e3fabff0d67e86bb29f7d167a8607aefcbb6
8c66dd946dad81ce008d82bade5ae2f7b3637f33d46b6ef4fd4dfe85c9648caadcc6e3e3d9974bfd6
6dad36d820b5fb6b9b4d8ff006fa7ea7e8bd3f7a08b339d9103a4dc1961f7ddf697b781b5aeb192d7
3b76dd9f9e92915d8594c7b437a453e9d8434192e2d243fe9fa4e7fe8daf633f4fecfd0d9eaff3bfaaa
43a5e7daec71fb3a8c60e2dfb49f6d81ad702eb034fabbdcea5ff00a3f6b3f49fcf7f847d341c7ed02e
ac0c1b6b165954bbd6b1db2b77a1ebfa8df559bac66eca67b7f9bf4d96fe916b63d159c7ac9dc4968
925ee3dbf78b92532c3aaaa68f4aa68656c73c35a381ee7150cf635e286384b4dcd912471b8fe6ab
0c6358ddad10353f33a955b3da1e286ba60dcce0907f3bf3985ae494e363b3aefa0cfb474e6bad2c
68b1dea06cbf656eb1ee6577fa6ddd77accd95a9b9bd65ec2e3d31adb5a5c20ddbf73585a2b2cfd3
55b1d92cdfb58f7feaffe111691d503ae65d8cfb0b5eef46c16398c7564b5acf6fabbdb650d77e97d4f
53ed1b1f663dbfe0582a323aa5f487b701f5eef50026fb1c5af6bfd1135bdd57aad6b9bbf77d0b6ad9
6e3fa8929b5d3aac81632ccac7fb359ea3856cdc1d0c35fef31f637dcf6eeffa1f416bac6e9cdea1f69
add9acd9a7b4926779f5fd566cf56d66c6d6cc6d967fd5fe66ca4a524924929ffd1f55492492538b98f
cba5acb3129b72375f67ad556e7eed9ea41f49dead58f53bf936fa7fe12caff4d5fd9f2476750c963da
c1817b9cfde6b6faf6873dad15d9bdad786eddd5daff65de96cb29f47f9ef4b7ebfd8ea9241b1bb897
102c78124ee77b43bf792fb257fbf67fdb8ff00fc924a71eccaea7eafe8f0ed2c67a4eb1bbee24b4b9c
ccaf4adb1f46f7b2a7e3df4b3d3dff00cfd7657ebfe8eadac601b8f5341901804cccc0fde281958ed66
35af63ed0e6b1c5a7d47f207f5955eaa6cc1ae838b55d906c7bd8e68b6df686d37e431d2d71fa56d

1553eff00f4bfe93d3494eb2a99ed0e14349201b99c12d3f9df9cdf72cb7757a98180e366173dcf68d
6d68dcc7b29d8e758ef63ef7d9fabd7bbf4ab4b2312b0c63b75b22cac8fd2bfbb9adfdffdd724a6855
7f500eb997e25cfd961f4ac6596b18faf735a0805f659ea52c7fe9bd4fe77659661fda7fc1c29cfcbbe8
16b706e6487827d7b6cdaf63ce396ec67f39e9dadfd26d7fbebfd262fda2bf53d3d8fb257fbf6ff00db8
fff00c9a5f64aff007edffb71ff00f93494e6537e4d18d5e6655769b99a598ad0f716bc8736c6b0bdf63
322aafdbfa767f836596ff84f496a8c811ab1f3e4d247c93331ab63c3e5ee2de373dce1ae9f45ce28c
929cdbbae63d4edbe85ef3ea1a86d60fa4d77a6e90e737633f3b73ffc13ebbbf9a7a11fac74ced6e2
64b9db4bbe836262a7869fd27e73726aff00c17fd0dcb5d2494fffd2f55497caa924a7eaa497caa924
a7ea3cefe857f3fcdbb8e783f47f948279ff00b52be6249253f4e1ff00d08fed7f0fe5feea8d9fe0ff009ff
e72bfa7f47e9b7e92f9952494fd5492f9552494fd5492f9552494fd5492f9552494ff00ffd9003842494
d04060000000000070005000000010100ffee000e41646f626500644000000001ffdb00840004030
3030303040303040604030406070504040507080606070606080a0809090909080a0a0c0c0c0c0
c0a0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c010405050807080f0a0a0f140e0e0e14140e
0e0e0e14110c0c0c0c0c11110c0c0c0c0c0c110c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0
c0c0c0c0c0c0cffc0001108009b015e03011100021101031101ffdd0004002cffc401a20000000701
010101010000000000000000040503020601000708090a0b01000202030101010101000000000
00000010002030405060708090a0b100002010303020402060703040206027301020311040005
2112314151061361227181143291a10715b14223c152d1e1331662f0247282f12543345392a2b26
373c235442793a3b33617546474c3d2e2082683090a181984944546a4b456d355281af2e3f3c4d4
e4f465758595a5b5c5d5e5f566768696a6b6c6d6e6f637475767778797a7b7c7d7e7f73848586878
8898a8b8c8d8e8f82939495969798999a9b9c9d9e9f92a3a4a5a6a7a8a9aaabacadaeafa1100020
20102030505040506040803036d0100021103042112314105511361220671819132a1b1f014c1d
1e1234215526272f1332434438216925325a263b2c20773d235e2448317549308090a181926364
51a2764745537f2a3b3c32829d3e3f38494a4b4c4d4e4f465758595a5b5c5d5e5f5465666768696a
6b6c6d6e6f6475767778797a7b7c7d7e7f738485868788898a8b8c8d8e8f839495969798999a9b9
c9d9e9f92a3a4a5a6a7a8a9aaabacadaeafaffda000c03010002110311003f00f7f62aec55d8abb15
762aec55d8abb15762aec55e2d69e44f2679dbf36ff00319bcdfa1596b86cd34386d3f4842b72228e
4b377654120214336e40ea7156477ff93df9256508b9d53ca3a0c16c8c1564bab68122567d801ea
00a09c5565b7e4e7e476ad0b4d63e52d06f2dcfeeddedede0912a0034aa5456847be2aa8bf909f92
e950be44d14034aafd4e2e3b770294076c55b6fc86fc997054f91746e2450a8b38c03f3006f8aa9b7
fce3f7e493821fc85a2b82797c5671b6fed51b75c5572fe40fe4a20a2790b445df97c3651035f1240f
6c550969f929f901762e26b3f26796eebeaaef05d4a96b6d3fa5227c4e8ed46e2c01ab03be2aa165f
959ff0038e73dc471e9de5bf2abdcc878c71dbc5665998ed40a9d4fd18aa7be4af2b796fca3e69f326
99e57d2ad747d3e4b7d32e24b6b2896089a66fad2190aa000b154505bfc918ab3bc55d8abb15762
aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb15762aff0
0ffd0f7f62aec55d8abb15762aec55d8abb15762aec55e6de4bff00c9b3f99e3bd74135ff00a316c55
01f9cde56f376b775e57f31fe5f5c58dcf9cbc9d753ea76be5ad55f8596a56f73035a4cae454a48ab2
1f465a71476a37dac55877927f33fcbc34f965f26f97dfcafe71f35f9d9341f36e87aa8023d375e3622
5bb9408caacbca0b4ac45195679595b62cc3156697fe73f3e797fcc9e5af266b8ba635ff009af5ebfb
3d2b54b759b80d16c34e7be0f2c2cc2974ce862e2ae62e3fbdff008af1562babfe707e60d96b1a879
4ace2d20f98b46f37e93e5bbbbab9b7bafaa5c699e60812e6d6e23549c324d1ab32ca84ba33a554
a2bfc2aaaa7e6f79ef4cf3a6a5f96dacdb69d79af43aee99a6e9bab5a46f6f04d61aae9d79a9726827
b9205c22d949104f5f8bb323f4f84aa9f45e78fccab5d5b43f28f98b4cd3f4cd6fcc3ae6a569a6ea01fd
58df41d3ed1aed6e4c092bf1ba7da2317aac8bf1cbf67e0c55e09a849a8bea17be48d4e454f2af9bff
0039aef4cf37cd6aad6d0dd5a8d3ece68ad243c8f14ba65549579565a320347c55eeff009bf73a079
5e4fcbff53c9d1eacade62d3b4fd027b396dec9f4ed465256dca8743484a8749387ec7c3c7c15677a
5ffca6de61af5fa9697ff12bcc5592e2aec55d8abb15762aec55d8abb15762aec55d8abb15762aec5
5d8abb15762aec55d8abb15762aec55d8abb157ffd1f7f62aec55d8abb15762aec55d8abb15762ae
c55e6de4bff00c9b3f99fff006e1ffa817c5590799bc89a6f99b58d27cc2f7da8697ae6891dcc1617da
65c981bd1bd685a58e546578e556304678c88ea295eb8aa4371f91fe43baf2ede6813c376d35fea8
9e61b9d716ea48f563ad454f4ef92e50ab24a8142a700a8a9f004e3b62a8e93f2a7cb53e93a5e9f71
73a8cfa968d76ba9e9fe619ef659f578ef96330998dc49cb916889899194c4d19e1e9d315617f99ff0
097176ba368561e54d3353d5efee3cd9a6ebde62d5adaeade2d4b859101ee5a7b892105e3458d2
18e31c4222c6a8a98ab27d5bf247c8faee957963aaadecfaa5f6a36fae4fe635ba783571a9d8a7a56
d711dc43c3d36863fddc4b1aac68955e1f135556f51fc96f2a6a9a3e9fa7dd5e6ae756d2af06a763e
67fd2339d6e3bc11b4264174e589063668da32be9703c7d3c55da7fe48f902d344f30f97afedae75b
d33cd578ba9eb91ead7735d99af516302752587a7256246e71706e4aa6bf0ad15564fca5d1e7bbd
16e75dd6b59f3041e5dba4d4347b2d56f165862bc8abe94ee638e3799e3a9e0677978fcf154ef4cff
0094dfcc3ff305a5ff00c4af3156498abb15762aec55d8abb15762aec55d8abb15762aec55d8abb15
762aec55d8abb15762aec55d8abb15762aec55fffd2f7f62aec55d8abb15762aec55d8abb15762aec
55e45a0e8f71a9fe6efe653c1abdf69a235d09592c8c015eb64e6adeb4329afc88c553ab5bdf2e5ee
a977a1d97e645c5ceb5a7fa82ff004e86f34d92eadfd1157f5625b62c9c7bf203155fe5f9b41f361b91
e57fcc6bad64d9304bcfd1f77a6dd7a2ed5a2c9e9db3713b1d8ef8aa79fe15beff00a9a758ff0082b2f

471

f00b24c55a3e54bf3d3cd5ac8f93597fd9262aeff000a5fff00d4d5acff00c1597fd9262aeff0a5ff00fd4
d5acfcb9597fd9262aeff000a5f7fd4d3ac7fc1597fd9262adff856fbfea69d63fe0acbfec9315417962c
25d3bcdfe63826bfb9d458da698deb5e188c801376388f4a38c536af4ae2acc715762aec55d8abcc
3c9d65e71f3668117982e7cefa959cb773de016b6b69a57a31a43772c48a9ead948f40a83767638
aa7dfe0ff00357fe5c0d63fe91346ff00bc7e2aeff07f9abff2e06b1ff489a37fde3f156bfc1fe69ffcb81ac
7fd2268dff78fc55bff0007f9a7ff002e06b1ff00489a37fde3f156bfc1fe69ff00cb81ac7fd22e8dff0078f
c55dfe0ff0034ff00e5c0d63fe91346ff00bc7e2adff83fcd3ff970358ffa44d1bfef1f8ab5fe0ff34ffe5c0d
63fe91346ffbc7e2a88fcbbd4753d4fcae93eb176d7f7f0df6a764f78e91c4f2a58ea3716b1b32c4a88
18a44bcb8aa8af6c559562aec55d8abb15762aec55d8abb15762aec55ffd3f7f62aec55d8abb15762
aec55d8abb15762aec55e6de4cff00c9b3f99fff006e1ffa817c55e5fe4dbaf3ada7fce46fe7a0f27e91a
56a61e5f2c1bc6d4efe6d35e3ff0071442fa7e8d95df307727970a7bd715633f961e74d7bca3a379c
a0b4b3862f3379aff38755d0a68ed1e378ede59add6e24304972b146edc6029134a8a3932f24fd82
abd522f33fe6969ba669fa579c6f74fd2b5bbff32c9a6d8bc022bad5ef7457b792780456f1092dd6f2a
b498b71b74b78e49fe1e98ab0ff002afe6efe65f9cad3f2cada1d46cf4abcf346a7e68d0b59b96b013
b97d063ba105c227aa151cfa019d374e67f93e0c55ea9f945e69f33eb9179af40f374915eeb1e4fd7
26d0ceb56f0fd562d42116f05dc737a20b2c7205b811c88ac5792f21f6b8aaaf47c55d8abb15637a6
7fca6de61ff00982d2ffe25798ab24c55d8abb15762ac23f28ffe501d3bfe33ea1ff51f718abcc7f333ce
f7be4ffccbb98bf33356d5bcb7f95ba9da59c1e4ff0032e90ed1595a6ab565ba5d49e156605cb45e8f
d601b7e28ffe551567d61e72baf2ce93a67956e05d79dbce5a66856fa9eab73a62c7fe936ea0c22e
b9caf1a17b8789cc712b16721a9f08e58aae3f9b76d7d27d5bcb3e5ed535bd42db4db2d7356d3d6
38ecaeacecf52591e04923bb7889b96113d2dc7c5b7c456abc9542d97e78681aedd69565e50d235
4f31cfade84de66d31acd2de18a4b349a381919eea784472abc9c591f8d19597ae2ab21fcf8f29ea3
a059f98341b5bad4a3bab193559acab6d69776f6b0cd2dbc81d2ea6881944b0cb1ac48cc59a37a6
d8aa8f99bf346cf5ef276a8de4886fefae66f2e0d79af2cca594d61697f04ed6b237d65a3613130b91
105f5178d5b8fc3c95792c3e6bd61b57fc8a8f5af346bd1691e6bf254b7dafae9d2dd4f2dc5eda59d9
491cec96d1cb2862d33991c6cfb72e9baaf74fcabbcb2d4f4cd5353d2359d5b57d165bf921b55d7a3
9a3bbb792d55609907d61526f4d9d0ba89114eec47c2cb8aa33f2c3fe51697fedb1af7fdd66f31566
58abb15762aec55d8abb15762aec55d8abb157ffd4f7f62aec55d8abb15762aec55d8abb15762aec
55e6de4cff00c9b3f99fff006e1ffa817c553ed27f2ebcafa1f9a35cf396970dcc1e61f32fa5fa72ebeb97
2eb73f568cc50968de4318f490f18f8aaf118aa46ff913f9632e89ac797ae74996e74ad77533afea51
cf7d7af236ae5b91bc8e5337a914c48079c4c9d315451fc9afcbe361a758fd42e41d2efdf57b2befd2
37ff00a416fe588c0f335e7d63d772d1b18d83c8ca53e1a5315613aafe47d8e85e63fcbe5f20e9325
a794bcbfaaeafab6ad0c3a95c453452eab64f006b632cacc0195f9bc6ae89c79ecccd4655ec3a1e83
a5f976c9ac34983d1864965b99d99de5965b8b87324b2cb24859dddd8d4b3127e8c5532c55d8ab
b15637a67fca6fe61ff982d2ff00e25798ab24c55d8abb15762ac23f28ff00e501d3bfe33ea1ff0051f7
18aa5be6af2bfe656a72f9934ed3b52d12ff00ca9e6041045a66b76b712b5944f6d1c1351a2902cca
ec1e41132a7127fbcf8be1558de87f929e68fcbb9fcb537e59f99e14834bd0ed3cadacd96bf6cf7705
d59d95c4d7315d47f5792164b88dae26555afa4c8fc0d3806c553e6fcbcf36e89e72bdf3b794f5cb69
b52d7f4eb1d2fcc716b36ecd13c9a67abe85ec22d4c749009995e1f851d69f1c7c7755e6da7f976eff
2f7f383cabe46f21df69e6f34ef23dedbb3eb5ea71b89ee35682e24622dd978cb239926094354e6ab
c57e20ab28d27f243ccfe41bed1f54fcb6f31da25c4764fa5f98ed75db37b9b5be492fae75117482de
589a29a39aee7e0bc8a3249c1cfc3cb154c35afcacf3b2ebbad6b1e5bf31d9c91f9bb468b46f35c3a
b5a3b72b8b58e68a1bdb5fab491846e33947858702aa879d5775523b4fc9afcc5d0b5afcbbd6344d
6b449dbf2ff00cb47cb5147776b7718bb69e38629656f4e63c1545bc7e981caa79f2ed455e9de4fd3
bcff0005f6a9a979e753d3e7174208f4ed2f478648ad6dd620e6491de72d2492ca59412688a91a05
5af266554ff2c3fe51697fedb1af7fdd66f3156658abb15762aec55d8abb15762aec55d8abb157ffd5f
5ee91affe6aeb3a4e9dac5be83e5f8edf50b78aed639357bde61278c488a69a6d2a390e58aa2d6f7f
3777e7a27970f85356be1b7fdc34e2abdaf7f36789e1a1f97b95362757bda57fee1b8aac17bf9ba0fc
5a2f970ad074d5af81af7ffa5762adb5efe6e50f0d13cb80f6aead7c76ff00b86e2ae5bdfcdbfdad13cb
a7a74d5ef47cff00e95a71571bdfcdba9e3a279769dababdf57fee9b8aae17bf9b3df43f2f7bff00b97b
dffbc6e2abbebdf9abff00563f2fff00dc62f7fef198aa75e56d625f30f9734ad726805acda85ac37325b
2b991637950332872a85802680955ff005462af2387fe564b7e70fe62ff0080df425b555d0c5f2eb69
78d2193ea4c57d236cc005a1df96f5c559337fd0c1aab3193c98a00af229aa5053b9f8f15705ff9c85
dbf7be4c23bd23d57fe6bc55be3ff00390bfefcf267fc06abff0035e2ad71ff009c87aff7be4ca761e9ea
bff35e2aee3ff390f5fef7c974f0f4f55ff9af15771ff9c87a6d2f92f978fa7aad29ff0023315701ff00390bb
8f57c96483da3d576f9fc78ab5c7fe721ea0997c97c7f687a7aad48f63ea6d8aa3fc89fe2ff00f13f990
79d4e98755fab699e9fe861702dfd0addf1e5f5925b9d79569f0f1e3ef8ab3fc55d8abb15762af1dfcb
5b9fccb4f27db2e91a66853e982e751faa4b75a85e413b27d7ee286444b29541f1e2ed8ab2c92ebf
37ff00dd5a5796c0a7ed6a57e77fa2c062ab16eff38813cf48f2d30aedc754bf534afbe9e7156a4bbfc
e5afeeb49f2c81cabf16a77e4f0f0dac06fef8ab66e3f377916fd0be592d5041fd277d5a8db7ff71fe18
aac7bafce924fa7a5795d57b06d4b5063f8580c55bfad7e73507fb8af2c56a2bfee4b50a53bff00c78
62ad7d67f3a7957f46795f8ff002fe90d42bdfbfd4be5db1554175f9c5c083a57967d4ec7f495ff001ad
7c3ea1e1ef8abbf293eb9fe0b5fd22215d43f4a6b66ed6d59a481663abdd9711b38562a0f42c01c55
9c62aec55d8abb15762aec55d8abb15762aec55fffd6f6f7917fe507f2d7fdb2ac7fea1a3c55e0f75e7
1f356bdf995e77f20ea3e6fbcf257e63dbcb27fcab5d259628f48d4f47f451e397f7d0c82795e512aca

cb27ab12ff0074a3d37c55ec3e6cfcd5f2a792a3d425d71ee7d0d161b7b9f305c5adbc9710e9f05db
718de7641d0904f140eea9f1b204f8b155baffe6d7947cb72ea67506bb6d3742f47fc43ab416d24b6
5a77d6634963fac4805778e4491bd3593d28dd5e5e086b8aa03cc5f9dfe49f2dea7ae6937316a97b
77e59b7b6bed7ce9fa6dd5d456763788f225cbc889c4c41236662858d01d8f16e2aa335bfce1f23e8
5a626bb3ddc977e5f16d69a85e6af6511b8b4b4b1d40036f713baeeb1ba9e40a863c3e32bc77c55
85ff00ce44fe675cf97bf2bfceefe4bbbbf87cc9a2d8c733eafa6c292c3632cfc2488492480ad648d81f
803b223abb7a7c91b1563fe72f3c5c797ff3974ad07ccdf98f71e52f24ea9e4f975967966d36de35d5
60bbb7814472dddb495e51b48e6325aac0b0c55e93f91de68f3379bfc8106b5e68916f267bcbd8b4
ad6920168355d262b875b2d43d01fddfd6210afc6807eda80ac315641f974bc3c89e5d42492b616e
b53d4d100c558f7930ff00c858fcce1efa09fbec5b154bbf3c744f38dedb7977cc1e55d2e3f34da7976
f64bbd73c8d34ab0a6b1693c0f050193f76d2405fd68e39414765fe7e38ab18fcbdfcc5f22e9ba13ea
3e4486f16f7ce1e6b8b479bca9aa73b69744d765b35facdaca927231471476af2fa71d5395561f85b
e155971610000026060f002220574d464301000000000001000000000000000900000000200000
f8df0000f81f01005ffe62f9bb47d4b45f296b3a15a5af9afccbac5e691a0dd2dd19b4e9ed2cb4e6d41
afd9557d541f0343f576f8fd415f53d3f8f1549750fcefd734ebcbaf2db6816b379bf4af33691e57d4edf
ebaf0da345af44b35adec12181cf16527944c3946e8ebca4f879aabc7e766b769e62d5bc85abf97e2
8fce763aa58e9b68d6734b7565716daa58dd6a115da85844d48e3b399648b8723227c2dc5b92aa
8db1fcd1f38ccda6f97351f2bfe8df396afabdee91a64974d247a74f656168d76daa0523d611300231
03524f55b8f3e3f1e2af08f341bfb7fca6fce6bab98e9abd8fe66d92ac7a7cce0fef6e34489e385dcc65
44b1bb2f1621473285a9f162afa0bca7a741ad79c9758b8f24ea7e4cb9d06d7fd0a5b9b8b3115f0d4
7d48e68de2b0b8b98dc45e9232fa8c1959fe15f15596e99ff29bf98bfe60b4bff895e62ac9315762ae
c55d8ab04fcabb78aebf2eaceda705a19a4d4a391412a4abdf5c0342a411b1ea0e2af11fca3fcc3d4
bc8ff0094169e6ab9b0bff36ea7ad79cae7cb7235c6a2ef74ab36af2d859857bc670553e14e3c9077
66ea715671a9fe7e6b9a241e73bad57c98b15b7e5edd5b43e69b88f558de35b6bb8a0b8596d6b6e
ad2b2433891e37587ecf0477634c551de6dfcf0d53cb7aaf9f2c2d3ca4751b5f206936de61d4ef8ea1
1dba4da7dcc5712fee90c2edeb05b77e287e06a1e52a7c3cd55d17e7e69ba7cf792f9c7496d07468
fcae7cef61782e56f25974a49562759618e35f4e706587f76af2ab7a9c43d54e2a8ebdfcdebfd1b53d
1348d6fcb4f0de799f48bed5bcbe2deed26492e74d805d4b6133b246b1cde89f515eaf1b719072f82
acab0f7fcf5f3feb3e5ef21f99b46f285b68fa2f9d758d12cecaeb52d456e1e6b5d5239a6954476f113
13a8882877e5f0c9cb872aaaaacd7cc3f9b8fe59f30699a4eaba235bda6ade61b6f2c58c935cc71dd
ced7708617d0db904bdaaca7d12dc83f2abf1e3d55427e4b493fe99fcd5b37bab9b8b6b1f394f6f66
97734b39861fd17a7c9e9c665672139bb305078fc58ab27fcaf14f2b4bff6d8d7bfeeb3798ab32c55d
8abb15762aec55d8abb15762aec55d8abffd7f6f7917fe507f2d7fdb2ac7fea1a3c55e47f9b3e4ef37f
e69f92b59f286abe50e3e68835376f25f9aa3bbb648ad552e795b6a2644759e078a3fef214476938f
1fdbf8154d6d74ffcdaf2779e75f8b4ed0adbcdbe5cf361d36eff004e4f7b0580b0beb7b0874fbafacc0
cad24913fd592751086f89dd29bf2c552dbff0021f9e74fb3fcdef2959e989abe97f98d24b7ba3eaad3
c6915b5c6afa7c5a75e47751c8c1d6380c5eb47e9890c91b7a7b38c5521d2b45d6349f3ffe6d7937
40d3a5d6a79bca5e58d1ad6eda682245952cafad636b9f51c3056a97664573456f84964e4aaef26f
e53f9bbf29efdfcb761e50b0f3f797b55d3b45b71ae5e5c5adb0b0bcd334f8b4d9c4f0dc89246b7710
ace821e6cbc9e3e1fb58aa0fcf3f967f9a23ca3f9b9f97da36809ae41f983326ada46b56f776d676f6f
73716b696d736b34371289112236bca029ea0647546e1c71565177e5bf3ac7f9cfa579f24f26cda9
68165e496f2edc411dde9eec752b8bc82ed9156e26883468b194694f1e4dd178e2ac97f22fc8fe63f
25e8fe6497cc56f0e94de63d7ef75db0f2d5a4df59b7d22daec22adb2c828849286571105895e46e
18ab2dfcb835f21f970f8e9f6e7c3aa0c558ff009301ff0095abf99cc7a16d0d4786d604ff001c5536f36
f922ff5fd6f4af32e89e62bbf2eeb7a4daded944f6d1c3716d3c57e6062b710ceac1c2340ac9428cadf
b5d41558a4bf901e5f9f41beb49357bf4f366a1adc5e6e97cd7018a2ba8f5fb78c471dcc50f0685515
470f40a32321657e44f2c5538d4ff2aff4bd868f36a1e62bfb8f39e8178754d2fcd32adbfad15e3db35
ac9fe8c91a41e8bc6ecad0841d7972f53e3c5581fe6a791a6d174fd16e74c6d5353f366b3e6fd1759f
307986cb4f3793a47a5858fd7686085e28e2b789555232bf16ffde48ccd8ab27d5ff22749d7eceeaf3
52d6efd7cf575a8d8eb83cdd67e9dbdcc3a86930bdbda18a0e2f0ac51c723a342559651249ea7267
e58aa3358fca19b5ab3d1eeef3cd9aa1f3d68579fa4b4df3671b6f523b96b736b220b4118b710491b
32bc21057972e7cfe2c5523d57fe71eadf54f2eebde5c6f36ea71c3e68d722f33ebb73e8d934b2df5
b1b578c440c1c624125a44e40535fb3f67157b25ac73436d0c57131b8b88d1565b82aa864750017
2ab40391de836c5520d33fe537f30ffcc1697ff12bcc559262aec55d8abb15609f9582e4fe5cd98b42
897664d4440d32978c49f5eb8e25954a922bd40231579d68dff38f9e69d27c8ba6791dbcd9637116
97e6887cdf0df1d2a58dda68750fd24606417a471697e1e55a84ed5df154d3cd1f91baef9934efcd6
d347992d6d62fcce9ad5da41a7c92358456b6b159f11fe94a25668e143cbf77c5cb7c34a0c55535bf
c98f336bb37e63cf71e62b185bf30fcbf6be5a9923d3a52b6696b1dc43eb29377572c9752fc078d1b
d3f8a81832ab6f3f2165d6af74d8fcc9abdb5ff00976dfc992f90f53d3a3b39209ee20b8303c9731cff0
0586f49f9dbc6635e0fc3e2f889a1c55321f94de61bc3a1dcf983cc706a5a8f94b4fbcb0f2cccb64d02
7d62fad8d935e5e289c9964101e01236863e4d23fed208d5409fc92d657f2c7c85e44b6f32c106aff
97f7fa66a1a76b3fa3da4867fd101a34596d8dc83f1a39e5c66fb5b8c55017ff907e67bad4af6f53cf5
cd26f33d8f9c2d5af34b4b9ba4bab268c9b6926fac272b5023fdc451ac5e8d7ed3aec55673f97be44

473

d63c99aaf9cb50d4354b6d421f366b0faeac36f68f6ad6d2c96f0db18cb34f2891785ba1af143cb9fb0
55515f961ff28b4bff006d8d7bfeeb3798ab32c55d8abb15762aec55d8abb15762aec55d8abfffd0f4f
795bf342eb4af2ce8da55e7e5ff009c16eec2c6d6d6755d29597d4861446a113d08a838aa6bff002b
85bff2dff9cbfee12bff0055f156ff00e5703548ff000079c683f6bf44ad3fe4fd7156ff00e56f9a0af907ce
209ea3f448dbfe4b531548ec3cdba0699e64d53cdf63f971e728bcc3ae47045aadd7e8f9184f1da06
5815a36b9318f4c3371e2a29c9bf9b154f3fe56f3569fe01f38ff00dc257feabe2a87bcfcedb6d3e05b
9bdf2379be085a586dd19f4a500cb732ac112d7d7a0e4eeaa2be38aa663f336f0d3fe741f348a9a6f
6969e15dffd33155eff00991a820a9f2179a08ad071b7b135fbaf71563fe50f3d6b1a0f96345d12fbf2f
f00cd3f5db3b48ade631dad9ba7389006f885e5295e95c5523d17ce3e6ad1fcf1e6ff0030ff00cab2f3
55ce9be613a6b593451698922fd4ed7d09048b2ea0847c5d3db156483f37fcc2c5827e5379c89520
6f1690bd6bd396a42b8aaaff00cad8f32569ff002aa3cdfb0a93c746ff00bc9ef8ab517e6c799a6fb3f9
4fe6f5dc8ab8d153a77f8b5418aaf3f9ade635af2fcaaf37003b85d19beea6a671553b9fcded5ec6d9
af6fff002cfcd36b65180d35c4a348e11a9216ac175266a55bb038ab281e65f321343e4cd480ad2a6
eb4bfbffdecc5579f3179882161e50bf24744face9bc8ff00d3d53f1c55aff12798b905ff00076a34209
e5f59d32829dbfdebae2ad797a3d5e7d7f59d6752d324d2e1bb82c6dede29e5825918db7aecedfe8
f24800fdea8dcd7ae2ac9f15762aec55d8abc5ff2e7cf5a9699e5182ca1f24f983528edaeb508d6f6ce
3b036f30fafdc7c51996f6372bfeb22e2acbbfe5626af4affcabef337503ec697dff00ede18aac1f991ab
1ff00ca79e681b5778b4cedff006f0c5570fcc5d58af2ff00957be67a787a7a657eefd218aad1f991ab
1207fcabcf3455abfeead33b78ff00b90c557bfe61eaf18a9fcbef329dabf0a696dde9db50c55a5fcc5d
5db953f2f7cce38ec6b1e983db6ff721be2ad37e636ac82adf97be67237fb31698c76f61a862ad2fe6
3eacc42ffcabcf340245778b4c03effd21d71554fca3b892efc949752db4b6724faa6b72b5a5c8559e
22fabdd9e12046650cb5a371661ef8ab39c55d8abb15762aec55d8abb15762aec55d8abfffd1f7f62
aec55d8abb15762aec5586fe6857fc2b1d373fa6341dbfedf3678ab1eff009c85f3b7997f2e7f2c750f
39f9567822d534fb9b08562ba83eb104897d7d059b061c908e2262eb46fb437db154d753fcd0f29f9
36ea7f2cf98754bbbff0032e97a6aeb1a8456fa75ccf3b581768dae785ac0c9c1594f2e1f629f162a8a
d1bf35bc91afea56ba66957d2ccfa869eface9772d6b731daded8c3e9fa925accf1aa4dc3d58f92c65
987318aa55a77e7cfe596ad1e913e9da9dc4f6fe608669b419974fbe097ed6c48961b62601eaccb4
24c295929bf1d8e2a9cdafe67f936fb45b1d6ecaf259e3d4ee6e34fb0b04b69ff484b7b64d22dc5b8b
4282612426193d55283d30859a8bbe2a8593f38bf2ea1b0b7d466d6784573aa8f2e087eaf72d731
eb27fe3ca58122324737f9122ad7b7518aa59a77e78795350f346afa0b5bdf5869ba26896fe62d435
dd46d67b1b48ad6e7d66fde09d11a2e0b039669427c5545a956c550fe6efcd6b0baf2279dafbc97a
8bd8f9abcbba04de61b64d42ca5426d8c134d6d7022b85412433185d392f83034618aa65e60d46e
355fc9c1ab5f51eeefb49b3bab92838a9927589dc803a0a938abd0f15762aec55d8abb15762aec55
d8ab09fca3ff94074eff8cf7fff0051f718abcf7cf7f98dab691f9aefe4ef31f9a24fcbcf2d5cd85b3f93b5b
6b5b696c355d4e4320b982e6e2f239114c5fbaf4e05781e4e4cdea7d8c559d5b79dee3cabe5fd2f4
df3afa9aaf9f6db495bfd7ad345b7370e56dd38dc5dac69c42c4f2237a6bf6dcfeee347614c5574bf9b
de4f782dee345379afa4fa6c3af3a691692dd490e95740986e254a2b28902b7a71d3d69383f089b8
362a86bdfceef22c33d95a694f7fe60bcd4f483e61d2e0d0ec2e6fdaeb4e12c517a913469c58d655a
af2e4bfb5c4d2aaaa49f9cde497f2fe9de65d2a4bbd674dd4ad5f518c69b6b24f345650b324d34d1d
15a311bab23a9fde735655462ad4556799ff0033b433e5ab9baf2b5edcea17573a2b6b9657da3db0
bf1058cb1b986f1838e055991b821abc9c1f846dc1f8aaf38d13ceff00987ad6a5f925a50f33bdb47e
7cf29dc6b1aecf1d9d9bcad7b61676537a911788aa895ae98baf1e2388f4f862ace74ef3c799bcbbf9
a765f961e73682fecfcc1a74da8794b5fb78bd09a7974ee3f5db6bb883140e8b22491bc615193623
962ac83f2c29fe169a86a06b1af0ff00b9cde62accb15762aec55d8abb15762aec55d8abb15762afff
d2f7f62aec55d8abb15762aec55867e6890be534626806afa0927fedf3678ab19ff9c8ef27f9a7f303f
2b750f26f9474f4bed5b51b9d3e5066b88ed618d2c6fa0bb62ccfb9e4b1145e20fc477db154b35df2
b79eb59f3ff98fccf168060d3753f22c9e5cb5496f2d8ca7533713ceaa555d804a4d4e7cba83f0f4c55
2af2ff92bf3074897f26a5b8f2e193fc05e5dbcd1b5ce17d6a59ae67b2b5b44f439380e85ad8b12dc2
8acbdf90c5529f27fe557e6268da67e43d95f691124bf97b73a949e63f4ef216458eeed67b58cc3b8
e7fdf0722828aa475c5553cb3f955f987a5798b47f3d5c6988350f2f79a3cd9ab0d10de42df5bd27cd
ce587a522fc0b716e56325642a8c3d55127c431554d5bf2a3cf2357ff14596950cd73ab7e60e9be74
bdd260b98a3faa69da658ad9942f230592e6520c8c10fa5cb6f53b95592f993c99f98b17e6279e7cc
9e54b0d3ae61f347956cf4ad2eeb539435ac1a8d835eb04bab6e2cd246ff00584fb355fb5cbdd5617
73f963f99b3c7e749bfc3dca5f36f90879647d63598eeee86ae24bc0cf70f22aa046fad861e8feee38
a3e2880f18f157ac6a5657f63f92e9a6ea96df55d4ac748b6b6bab7f51640b2db2468d474241155a8
c55e8d8abb15762aec55d8abb15762aec55847e51ffca03a77fc67d43fea3ee315493cf7a079afcd3
6de67f2b6bbe55d2fcd7e4dd4fd34d092e2e1229a02f6a1257b8596221447355a29612d300df67e1
5c55897947f2d7f363f2c751f2adfe957365e718a2f2c597957ccf15f5dcb6538b8b0b9b8b982f2099e
298bc69f59789e36a398c232fc4bc71564f63e52f3e7967f31356f3dda4565ad45e69d234ab0d634e
8a56b216da9696d3859a26943d6d8a4e5586f2d406e2d8ab01f2a796f52fcb1fcd5f22f93ac228b58
bdb2f236b26e618e716d1fad73add95c4c611256912bcacb1a901bd251b92bc71557d0bf24bcdfe4
4d4b43d4ac74bd0bce567269f7563e62d2f536fab082eee353bbd4e3b8b1792de70115af658a542a
a5d16360392f1c559137907f30f44d775dbfd1ed34abcd2fcdde5cb4d2351d3ede792c22d3354d3e
3b98e26b55f49ab68c9384205250ebcf8fc4d4552dd1bf2d3f30741d53f27350fd1f637bff002aebcb5
77a16ae23be29f58b8bcb6b3b70d6fce0dd54da966e7c36714ad0e2acd74bf226bfaafe678fccdf3ac

96a8748b0934af2868964f24eb66978cad79733cce91f39a6f4e345088a91c6bc6b231e58aa71f96
1ff0028b4db53fdccebdff759bcc559962aec55d8abb15762aec55d8abb15762aec55ffd3f7f62aec55
d8abb15762aec55817e72de43a77906e6fee64486ded751d1669a694f18d123d5ed199989e80015
2715467fcad8fcb1ffa9bf48ffa4d83fe6ac5569fcdbfcaf0c14f9c348a9dff00ded869f7f2c55bff0095b7f
961ff00538691ff0049b0ff00cd58ab8fe6d7e580ebe70d23fe9361ff009ab1570fcdafcb03d3cdfa46df
f2fb0ffcd58ab87e6dfe579a81e6fd236d8ffa6c23fe36c55bff0095b3f963ff00537e91ff0049b07fcd58
ab5ff2b6bf2c2bc7fc61a457affbdb07fcd58ab1df3efe667e5d6a5e4ed5ec2cbcd3a5dcde5d43e8dbd
bc3770c9249248caaaaaa1892493d3157aa62aec55d8abb15762aec55d8abb157917e597e63790
74af27dae99a979974db4d42d6eb508ae2d67ba8a3963717f71556566041c5596ff00cad6fcb31ff4
d6e93ff4990ffcd58ab47f363f2c875f37e915e94faec35ff8962aeff95b3f9635e3fe2fd22b4aff00bdb0
d29f3e58aa11bf30ff00275efd3557f31680da9c6be9a5eb5c5a99d50fec8909e407b571545ffcad8fc
b1ffa9bf48ffa4d83fe6bc55dff002b63f2c7fea6fd23fe9360ff009ab156bfe56d7e580207f8bf48dffe5f6
1ff009ab156ff00e56cfe589ffa6c348ffa4d83fe6ac554bf2a6eacafbca0d7ba6ce9736173ab6b735b5
c46dce39124d5aed832b6f506bb1c559b62aec55d8abb15762aec55d8abb15762aec55fffd4f7f62a
ec55d8abb15762aec55867e698af9440ff00b5ae87b78ffb98b3f962acc885009a6c37e98abc67cadf
9c3e65f39e89a479e3cbbe5eb4bef246abab8d2a78a3b993f4ce9f6c6f1accdcdcdb884ad55c07921
0c1a18df9b33707c55eb6fa9e9515da5849796e97ce4225ab4a825662bc80084d49a0af4e98aad1
ab68e6f469c2fad8ea2495169eac7eb1651c88e15e550373b62aa2be61f2ebdc45689aad935d4ee
d14100b888c92489f69557954b0ee062a883aa694b7cba635e5b8d49becd99953d7341cb68ebcb
a6fd3a62ac4bcf3e7f8fca77be5bb3b24b4be9758d76c743be81ae025c5ba5f9204ab1aab162a402
55b87c3bd715437e6afe6c689f9516ba25eeb36f24f6daaea56f6373244ac56ced25912296f252aac
04513cb12b56956915462a9cfe6322b792359a81b401ba03f65d4f88f0c5594e2aec55d8abb15762
aec55d8abb15611f94607f8074eff8cfa87fd47dc62a946a1f997aaddfe646b5f965e57b3b0fd37a269
36babb1d5ae1edfebad7af2058ad923463c23117ef66f8b8b3a2f0ea71564de5df374379e50d1fcc7
e6b8a3f2d5fdfdb4726a1a7df4821faaddf10268794a23e5e9bf250d4f887c5d0e2a9adf7983cbfa641
05cea3a9d9da5b5c80d6f34f3c51a48a686a8ccc011b8dc62aebcf30797b4ee5fa4355b2b4e117d6
1bd7b88a2a42481ea1e4c28bb8f8ba62addd6bda058dac37d7ba9da5bd95c806dee659e348a40d
4a147660186e3a62a84f33f982d742d0ef3518e7b3faea5acd73a7c3793adbc53bc519751cf73c4ed
52aad8abcdf49fcead43ccb67e47d1bcb3a35bddfe60f9bbcbf69e6abfb09ae1a1d3f4ad2ee5103dc4
d2846793f7afe9431227394f26263452d8ab33d0b57f3c9f355ce81e68d1aca3d24590bcd3f5ed3a7
91e39a51288e48248258d5a2750c181e6eb229dbecb62aabf970a57cbd720ee7f4c6b9d7df56ba3
8ab2dc55d8abb15762aec55d8abb15762aec55d5c55fffd5f7f62aec55d8abb15762aec55837e6e92
3c8f2902a7f49689b7fdbdecf1566974f3c76d3496c8b25cac6cd0c6e4aab3804a824024027157cb5
7760facf9b3c97f993f949a1eb9e4ffccad7753b33e7ef2edc59dc58d84ba4b167bf935349635b7691
40fdcce8deacaccbc793fd85590fe5d28b7d5eeff2efcf9e41d4efbcd163e6bd43cc961e6492cbd7d2e
549af65b9b4d486a0cc235922864587d3e5eaafa7e908e9b0558e68fe54f31c9f94fa7fe555e69975
69f9b7a679a45fc7acfd5677814aeb87526d546a010a7096d19d59bd4e6ceed6c5391e38aa17fc3d
a3ebda47e62792b40f2f31f37cdf98ab77a4de5bd83430db35b5d58cc6f16f16311a0b78d24e7f186
3fdd713ea80eaa77e59d22da6f3fdf796bce7e51f345c798ec7ce57fe65d0b528beb23cbaf04b7725c
5a5f9ba564814c76f27a0f0b12cdc7d2e0dcb154883eb169e5bf2a794f52f256bb75e79f2b79fd359d
66e6db4a9ee629ed9b52b89db518af78886459a19856927a89f146caaa95c55e937be5cb9fce0d4
3cef25eea57ba5f9664b77f2b47a3ea1a395596c5632f35dc5f5c8d58fad33b70922d8a5bc0df6b15
4a7f2f7cc7e68d63fe71eaf749f395aea1079c3cb96f2693a85d6a76973642f92da531dbddc2f731a1
956685518b7dae7cb9efd557d0b8abb15762aec55d8abb15762aec55847e51efe41d3bfe33ea1ff0
051f718abce7f38ac7cb5e70bed5f4af34f963cc161e61f2e225c791fcf5e5bb0bbb8bdf5a685242969
73691b949164f8248e5a42ebbf2af3f4d563ba54bf991e52d5bca3e63fce0f2aea1e6e9755f2747e5b
d624d12d46ad2da6ae6f249655b8b7888554ba81a259a751e97a90f163c389c5590d8e8c3c87f98f
7da96a7e50b93e40d67ca9a6e87a0d95859b6abfa39f4e92e5a6d31e1b51288d675991b91ff47764
e0d2fc2315623e51f2e41f97de73fcb6b3f3de92fa8ea16be4ef31447d1b19356bab3b77d52ccda5b
482049a42b6f6d32d9861cd47d80783962aa0f48f29eb9f9730796a0f367953cc1a8f932f347d5b4c
4b1f2c09eeee7497bfd667bd86d2786d240e6292d668a1661c92268021f87e20ab295d365f21f98e
eb4e9fc95aacfe4ad67c9961a07956ded2d64d61b4c92c4de0934cb978ccec86659a16f5646f42a9
c1e5fddab62a91fe5ef977cd7f977aa7e5f7e68def96b549b4697c87a6f923cd5a4c56cd2eada55d69
8caf1ddfd5232d24b031564758834cbf0bfa7b950abe8cf2f79aedbccd35c7d434ed4adec2df885bfd
46ce6d3e399cd6ab147742399b8d3e263104fe566c55e61ab79d7cd5e48f26a5c795bcbd26aff5df3
36ab6b7da99e2f6da55b4bac5c07b99e1124723a2827ec9445fb534b1a62ac9bc957dac5b6992ea
705a6afe676d5643747559f51d2e685d48a2adaa4175e84508e8ab1ffb3676f8b156483cc1e61a90
7ca57e05695face9df7ffbd58aaa9d735d02bfe18bd27c3eb161ff006518aa94fe66d4ececaf6fefbcbb
7b6d6d636d3dd3bb4b6929616f19938aac333b166a517e1c55e79e54d7fcede6bf23685f995179a6
1b7b4f336832ea13e8a2ded9d2d2ea6b537300b0938f32f010c932dc19d64556f8632b8aa5de54fc
c0f3aea9a9fe4a9bbd5449179f3ca977a96b96c6da0119bfb5b1b3b859e22aaae957b96e5187e14e
3c78e2ac734af3dfe6ccbf94be51fcc597cd504baa79a755d0f4996c64d32dc5a40979ac1b29644f4c
ab93246ebcb931a70fddf0a938ab2abed73f33afb59f30f917cafae89bcd5e4fb1b3b98efef23b0b787

475

51b9d41669636bc87d1765b61c044c6d846f5591b972a0c5522f3a7e60fe66c127e665d697e60b5
d3a3f24f95b47f3558dadada41796f35ccd05f4f3dbb4d2fc4f04a6d5579af0938ef1b26fc954db42f30
799ae3f3abce17936af70fa3d8f93745d5ed7416f4cd9473dd8bcf502829cd6ad0862c1b9b74662aa
8aaabffd6f7f62aec55d8abb15762aec55827e709a790ee4d2a45fe8e69f2d5ad0e2acef15762aec5
5d8ab17f2779174ef253eb4fa75f5f5dfe9ed425d5ef85fccb3817971412347445e0ac157e01f08e3f0
81be2aca315762aec558d7e612f2f246bc00e47ea729a0f615c5592e2aec55d8abb15762aec55d8a
bb15611f94608f2169e09ad2e3511f76a1718ab37c55d8abb1562b79e42d36f7cf5a7fe60c97f7f1eb
5a6da4ba75bdbc5385b236b72c924a8f0f021b9bc71b124f2ac6942298ab2ac55d8abb15762ac5fc
84823d275040281759d67b53aea570dfc7154d34af2e687a14d793e8d610d83ea0e26bc5b65f4a3
92515fde18d6881cd7e260bc9ff6ab8aa698abb157115c5588f973f2bfc83e51bfbcd4bcb9a15be9f7
37cf24932445cc08d3ef2fa303318a1121ddc42881ff006b1543695f93ff0096fa24f6775a568315add
69bf5a1a6ce92cfea5a25fa84992dd8c84c5195002c71f148ff00dd6ab8ab87e517e5e8f2d69be4e5
d20af96747ba5bfd334f4babb5482e63732a3a32cc1aa8e79a02d447f8968d8aa27cc5f961e44f35e
b565e63d7f468eef5cb084dac17c2496195ad4b73304c6274f5a12df17a52f38ebfb38aacbcfcabf21
6a12ebb35e68eb237996ce2d2f5c5f5ae163b9b1b7148a028b20558d01215502d159c7477e4aabb
7e5bf92daf5751fd19c7501a58d04dd24f7092be9aa195619196405f8877e0efca44e4dc5c72c55fff
d7f7f62aec55d8abb15762aec552fd7342d27ccba55c689ae5aadee9774144f6ce4856f4dc48a6aa4
1043286041d88c558cffcaa4f20ff00d5ba6ffa4fbfff00b28c55dff2a8fc83ff0056e9ff00e93eff00feca31
577fcaa4f20ffd5ba6ff00a4fbff00fb28c55dff002a93c83ff56e9ffe93efff00eca31577fcaa4f20ff00d5b
a7ffa4fbfff00b28c55a3f945e413ff004ae9fe8d43501faae31577fcaa3f20ff00d5ba7ffb885fff00d9462
ab1bf277f2f98f23a7dd57db53d480fb85cd31561be4efca7f236bcbe674d5ecefaea3b7d72fac618a
5d5b53318b68b8704082eb8f115e94c55987fca9df21d4916fa88af50bad6ae06e6b5daefae2ac63c
e1e59fc8ff00cbdb2b5bdf3a5e5e69363753186dae6eb58d6dd1a761509cd6e5a81610000026060f
002220574d464301000000000001000000000000000900000000200000f8bf0000f81f0100c7f654
9dff00671553d674afc8af2e6afa4e83ad6a17967ad7981049a3d849ab6b866ba52c07ee905c1a90
48e43aaf57db1565abf93fe42550bf54be206e396afaab1fbcdd1c5571fca3f23b6df57d400ad68bac
6acbfaaec62ae3f945e453cab6b7d46fb5fee5f55fbffdeac556afe5079117885b7d40051403f4cead4
e94dc7d6f7a76ae2ad9fca1f22162ff0055be0e45095d5f5553f85d62ac4fc91f951e441a879bf4e161
71f52d375af42c61fd21a8718a2934fb2b9655adc7432cd2487fca76c55977fcaa2f201eba6cc6bb6f
7f7fff006518ab87e517901542ae9b30502800bfbfe9ff004918abbfe551f903a7e8d9a9ff0031f7ff00f
55f1571fca2f2015e1fa326e1d29f5fbea7fc9fc55dff002a8bf2ff00a7e8c97ad7fdeebeebff0023f156c
7e51f90149234c96a6b5ff4ebeeff00f3df155a3f287f2fc6c34c947cafefbbff00cf7c55b3f947e4026a7
4d9aa3a1fafdf76ff009ef8ab26d0f42d27cb5a645a3e896cb69a7405da3854b3fc52bb48ec59cb312
ccc58926b538aa638abb15762aec55d8abb15762aec55d8abb157ffd0f7f62aec55d8abb15762aec
55d8abb15762aec55d8abb15762aec55d8ab08fcb76a9f370a28e3e65d447c35df688d4fbef8ab37
c55e15ff395a2e0f907cbbf560a66ff0018796f8090b2c65bf48271e450160b5a5682b8aa57e7a6f36f
fcafdfc8c1e641a6ac7f5cf321b63a734e5c9fd0d206e7eb28da847438aa2fc95e6bfcd0f374fa079fec
f55d3ad7ca37baaddd96bba3ea37d0fa696a2792d6382dd23b15912f21745f864b96f558ba3d3947
e9aaa1e5cf3c79b6fbcd3e59b5b2f31dceaba3f9cad7cc74d6e4b6b58ac04da73abdacba75b53d6e
10a931f398fa770bf1fc44ab62a91f90bcf3f9aada57e49f9e35af343eb76bf9853fe89f30e812d95a5b
c2867b2b9bb8aead9a18924568feac7d5e4ee8e1fe144da8abea1c55d8ab0ef2483fa73cf95ffabfad
3e5fa274ec5598e2aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb15762aec
55d8abfffd1f7f62aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8ab0afcba62c3c
d75ede63d4477f18fc71566b8ab1bf39f90bca9f983636da679bac5b50b0b4b84bdb7804f716eab73
17f7727ee248c9643ba57ec9dc6f8aa96b5f975e50f30ebda2799f57b292e35ff002dabae877c2eae
a392d7d65e321411caa09917e1919812ebf0b5462a80d37f27bf2d348f36dcf9e34df2edbdbf99eee
e25bd9ef15a5286f270564b8101730accc0906558c49f137c5f11c552eb6fc90fcb1f2fc96bab797bc
ab0c7ac68f2dc5f68de95c4f1986e2e15f9a44cd2158e272c79454f46a797a78aa03f247f29edfc85e
47f29d8f9834e8bfc5fe5eb192cbd75b996f608649dab3c96bea9e31fadfb5c111bf63ece2af58c55d8
ab0ef256fae79f36a7fb9e41df7ff713a76f8ab31c55d8abb15762aec55d8abb15762aec55d8abb157
62aec55d8abb15762aec55d8abb157ffd2f7f62aec55d8abb15762aec55d8abb15762aec55d8abb1
5762aec55d8abc6fcadfe20fd27e72fd1dfa73eabfe23bee3fa2ff00417d5ebc62affbdffbee55eb5dbf9
76c55927fceddff007f57fe1ab8abbfe76eff00bfafff000d5c55dff3b77fdfd7ff0086ae2aeff9dbbfefeaff0
0c35b1570ff0017537ff15fd3fe15fe18ab7ff3b6d3fe9aaad7fefd6ae2ad7fcedd53ff00295ffe1ab8ab8
7f8bbfefeaffc357156bf2bbeb9f59f3bfd7feb5f5afd3ff1fe90faa7d6a9fa2b4fa73fa8fee7a74e1dbed7c
75c55e838abb15762aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb15762a
fffd900000840010824000000180000000210c0db01000000030000000000000000000000000000
001b40000040000000340000000100000002000000000000bf000000bf0000af4300001b4303000
0000000008000000080fe7fe9430000008000000080fdff4e432100000008000000620000000c000
00001000000150000000c00000004000000150000000c000000040000005100000098d90000000
0000000000000d2010000ce000000000000000000000000000000000000005e0100009b0000005
0000000280400007804000020d50000000000002000cc00d3010000cf000000280000005e01000
09b0000000100080000000000000000000000000000000000000100000000000000000000ffffff0
0a7a7a70035353500393939003a3a3a002c2c2c001b1b1b00414141004c4c4c004e4e4e0023232
3002a2a2a00383838003e3e3e003333330030303000252525001c1c1c002222220031313100323

232002d2d2d002b2b2b002e2e2e0037373700282828002626260013131300171717001e1e1e00
161616001a1a1a00141414000a0a0a0021212100151515001818180093939300fefefe00fafafa00f
8f8f8006e6e6e00cacaca00d6d6d600cfcfcf00d2d2d200d3d3d300cecece00c5c5c500c4c4c400cbc
bcb00d7d7d700cccccc00c0c0c000c1c1c100c7c7c700b9b9b900b8b8b800b7b7b700bfbfbf00cdcd
cd00c8c8c800c3c3c300bdbdbd00bcbcbc00bebebe00b4b4b400b5b5b500bbbbbb00c2c2c200c6c
6c600b6b6b600d4d4d400d0d0d000dedede00aeaeae00fbfbfb00fdfdfd006c6c6c00fcfcfc00f9f9f90
0e4e4e4008989890072727200e1e1e10090909000686868006b6b6b00e0e0e00074747400dfdfdf
006d6d6d00f7f7f700f6f6f600d8d8d8008b8b8b0098989800a0a0a0009c9c9c00b0b0b000e3e3e30
0888888007f7f7f00eeeeee0096969600929292009a9a9a009f9f9f009e9e9e00a3a3a3008d8d8d0
06a6a6a007171710024242400dbdbdb003c3c3c000b0b0b00f2f2f2000c0c0c00acacac000505050
0eaeaea00737373008e8e8e005f5f5f002929290020202000e7e7e70080808000b3b3b300060606
008f8f8f0054545400e2e2e200e8e8e800f3f3f300efefef00d5d5d500ebebeb00101010008a8a8a00
f0f0f00078787800bababa003b3b3b0069696900a1a1a1002f2f2f00616161001d1d1d00d1d1d100
7070700027272700a5a5a5007a7a7a00a6a6a600111111003f3f3f0049494900848484000404040
0f5f5f5007b7b7b005c5c5c0001010100666666004f4f4f00505050007e7e7e000808080083838300
6f6f6f006262620099999900f1f1f1008181810002020200757575005656560040404000ababab00
b1b1b10076767600ededed00797979008282820085858500a8a8a800070707001f1f1f007777770
04a4a4a009d9d9d00444444007c7c7c0009090900606060006565650045454500afafaf00191919
003d3d3d0097979700919191005252520051515100434343005757570094949400e5e5e500484
8480064646400424242005555550086868600e9e9e900dddddd005d5d5d00dadada00dcdcdc008
78787008c8c8c005a5a5a00e6e6e6005b5b5b00f4f4f400aaaaaa00a4a4a4007d7d7d0034343400
67676700c9c9c9009b9b9b00ececec00b2b2b2004d4d4d00d9d9d9000d0d0d004b4b4b00464646
000303030012121200a2a2a20095959500595959000e0e0e00474747000f0f0f005353530036363
60063636300585858005e5e5e00a9a9a900adadad000101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010161f08181a967ba6767676767
67676767676767676767676767676767676767b0b0b0b0b0b0b0b0a3a3e5a981b0b0ba8181b0a
0a0b081818167a9a9a96767a96767676767818181a92aef274d014e01010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010100000101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
101010101010101010101010101010101010101010101010101010101010127d1f4014e01274e0
10101010101010101010101010101010101010101010101272727272727272701010101010127
27274e270101274e27010127270101010101010101010101012789d6270127015001010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010000010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
1010101010101010101010101010101010101010101010101010101010101010101010101ccdd5
00101500127272727272727270101010101010101010101010101010101010101010101010101
0101010101270101272727270101010127270101010127272727270101010165a4a2272701270
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101000001010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010126690101014e0101010101010101010101012701014d014e014e4d27010101012827014
e014e014e0101270101015001500101010151010101010101010101010101010101010127d8fd2
82701010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10000010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101

477

010101010101014d7c264e270127010101010101010101512701014e01014d4e015001014e5050
0101012701270127012701284e28270101014e505001014d01010101010101010101010101010
1012752d029270150010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101000001010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101d1610101014e010101010101010101010101285001010101015
00101010101274e014e014d010101014d4e0128764348405b010129014e010101010101010101
010101010101010152d0280101270101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010000010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
1010101010101010101010101010101010150ccf4272701270101010101010101014e010101012
801014e01012729010101014e27012701014e280127274e4e289caae7af015e012901010101010
101010101010101010101010152d02901014e0101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010000010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101506acb274e012701010101010101010101
0150280101014e01272801014e014d014e012901272701014d01012827015dc4fe014d4e010127
010101010101010101010101010101014ed8da295001272701010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010000010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101016163010101272701010101
01010101014e01015e5e01514d0101e227015e4d50014e015001505001014d4d012801eaeeff5d
8801014e270101010101010101010101010101010127b895284e0101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101000001010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
1010101010101010101010101010101010101010101010101010101010101014ed1ae014e0127
0101010101010101010127280144cdf0ce310128def0f7b22b0139a7fa749001503a08ce44bc74f4
768c05c1ab60290150010101010101010101010101010101014e87e15d4d014e50010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010100000101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
010101010101010101010101010101010101010101010101010101010101010101010101aec101
27012727010101010101010150014e014de700b0515001651f00d9508e9da57dbf1b39017e1e6d
b721233fb822a88e7609c628010101010101010101010101010101010101e0f5290101272701010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010000010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
2726a0014e0101010101010101010101010101010156f1444e0127270ec476506aa13b012735c3

d81b670128c77b018eaa9a01012cc43f01010101010101010101010101010101010180da4d4e01
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010000
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010127cb8d014d27014e01010101010101014d01010101a00082274e2701d3758e01fc580
128014e010163e6ed01df585068a1562950887962500101010101010101010101010101010101e
0e14d270101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101000001010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
0101010101010101010169de01010101010101010101010101015051500181c43c01010128cef8
b801f9705b65d2688e4e274284a0bea9508e83f401018800a02701010101010101010101010101
0101010152f5282701010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010000010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
0101010101010101010101010101dea02701274e0101010101010101012750012701b00092636
a6a267f83af27a374b9e5adf6cf01385f01db9458502879840101b5a16b270101010101010101010
10101010101010165d02801012701010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010100000101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101014e56de272727270101010101010101014e01015028a
b798de3e4bcfe15778850d92a88509ab1484dbfcf5101f06a5e61009e97dc17a1ed0101010101010
1010101010101010101010186d028010127010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010116
10000026060f002220574d464301000000000001000000000000000900000000200000f89f0000f
81f010001010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010000010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
0101010101010101010101010101010101010101010101010101c16d014e010101010101010101
0101015027014e9ba1420127015ea7f1b80101c10967c95327014a14bab20551e2b01a9bd6c9ee
6e2801010101010101010101010101010101010152fc2827012701010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010100000101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
010101010101010101010101010101010101010101010101010101010127cb6b014e4e01270101
01010101010101014e4e01d700fe505001018579764e5d018b31e001012701683f40e2012750e2
288873d24e01010101010101010101010101010101010101d2e1284e012701010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010100000101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010

479

101010101010101010101010101010101010101010101010101010101010101010101de6f27012
72701010101010101010127010127277ca582010128509f79500101012801014e01274e01504e0
15001010150014e012701500101010101010101010101010101010127e0a42850010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010100000101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
1010101014e4e014e014e01270101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010127010101010101014
ed1f4014e2701014e014e2701010101270151013d910003344d016200aa54654e0101012701012
701010101010101010101012701010150014e4e4e4e01010101012727270101012780e1285001
012701270101014e27014e0101012701010101010101010101010127010101012701012727010
1272701010101270101010127014e5001012701014e01014e27014e27014e0127010127010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010000
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101270101270101010101010101010101010101010101010101010101
01010127272727272727272727272727272727010101012727272701010101010101010101012
74e4e27270126cc2701012701010101502701274e014d018802b9a0813c01a26c8184c33101010
14e502727274e4e4e272701010101272701010127274e4e010127270101272701010101274e50
87a75150012701272701010127010101010101010101272727274e4e272727010127010127010
10101270101270101010101010101010101010127010127010127010127010127270101270150
27500101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010100000101010101010101010101010101010101010101010101010101010101010101010
101010101010101010101010101014e5001012801014e01010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101012727272727272
7274e2701010101012750dd664e014e50010101012701010101510101014d4e01274d0101014e
01015150270101010101010101010101274e4e012701010127010101014e4e010101012701010
10101010101d8f52827014d0127270101012701010101010101012727010101010101010101272
727274e2701010101010101010101010101010101010101012701012701012727272701012701
28274e01010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010000010101010101010101010101010101010101010101010101010101010
101010101010101010101010101010101010101014d01270101014e0101010101010101010101
0101010101010101010101010101010101010101010101010101010101010101010127274e010
101010101010101010127272701010184d10101500127014d2701014e280101505d01014e0101
014d50015028010127010101010127500127270101010101274e4e0127504e014d010150014e4
e01010101274e4e4e4e0186c52927010101010101010101010101010101010101010127274e4e2
72701012727012727272701010127270101010127010127270127504e4e4e2727270101274e27
01010127014d01272701014e01010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101000001010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101014e010101014d2701272727272727
272727272727272727272727272727272727272727272727272727272727272727274e2727272
701010101010101010101014e270101010101010126e9010101014e0150010101012701270101
014d5001504d01014d01015101010127272701010101274e2727504e010101012727010101270
14e0101010128502701270101010101d8ce4d4e0101014e27274e272727270127274e4e4e27270
10101010101010101010101010101010101010101010101012701012701010101010101010101
01010101010101010127014d50010127270101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010100000101010101010101010101010101010101010
101010101010101010101010101010101010101010101010101010101015001014d4d01012901
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101274d61c150014e01010101015d5e010
150505050502701010101515001272701295027010101274e2701272701012701010101014e01
010150014e27012950014d010101272701014d50eadf0127010101270101010101010101010101
0101012701010101010101010101014e4e27274e014e270101274e01015027014e01010101270
1014e4e27504e01274e274e504e29010150015127010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010100000101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101012701274
e01febb6767676767676767a9a9a9a9a9a9a9a9676767676767676767676767676767676767676
7676767678167a9c39b8fb7b7e5e5e5e5e5e5e5e5a3b72ae7d4a6702a9b0d110acdb3dfa4fdfcdfc

ea7fcf9a8d304cee7f5cdf585d0a4f9eff595b37dceb37da657e7a65770a6d4d4c5f5d6d057c695ada
6e7d47dcefdfbc5cea7fbc65c58a67dfd957ddffdcf72b9a3e59b67a9a9a9e5a98167e5bfa9ba67a98
181c3676781818181676767b0abbababa67c3a081b0bbbbb081a0d76781abb0bb66a081a981ba8
181b067baa0ba81816767bab0694d010101015001010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101000001010101010101010101010101010101
0101010101010101010101010101010101010101010101010101010101010101014d0127014ddf
e79c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c020202020202020202020202020202
029a9a9c9c020202bc9c9c9c9c9c9c9c9c02bcbcbcbc029c9c9ceb64ffbcc86fad41c848414236453
6413a3a394378ff3b404345423a463b39483b39394464b6434590414632363646363a433942413
b434c3c3945313642414539ebffeb45363c8ff74493bcfef3fe9c029a6ef36ef36cf462bc9c9abcbce4f
36ee49a9ae46ef363939cbc029a6caef3c16d6e6e6dc1f3e4c1c1626ce4bcf363e96d9362f3e4f39a
029a93626c939c84f9874e27275001010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010000010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101012701502795440101010
10101010101010101010101010101010101010101010101010101010127010128015001010101
0101010101010101010101010101010101010101010127274e01270165cb010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
1010101010101010101010101010101014c8f27012701010101010101010101010101010101010
101010101010101010127014e0101014d01010101010101010101010101010101010101010101
010101010101010101010101bbd2010101014e0101270101014e0101010101010101010101010
101010101010101010101010127014e4e014e010127014e014e01272727282701010101015001
014e4e01014e27015001014e01270101014e01270000010101010101010101010101010101010
101010101010101010101010101010101010101010101010101010101010101270127015027fd8
20101010101010101010101010101010101010101010101010101010101010101010127015101
27010101010101010101010101010101010101010101010101010101010127014b56010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
0101010101010101010101010101010101010101014cb927010101010101010101010101010101
0101010101010101010101010101010101275027014e010101010101010101010101010101010
10101010101010101010101010101014d678627010101274d0101272801014d01010101010101
010101010101010101010101010101010101014e010101270101014e010101012701014d27275
1012701272701010101010127274e4d0128014e500150014d0000010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010127010
1014e27a4eb010101010101010101010101010101010101010101010101010101010101010101
4d012701014e01010101010101010101010101010101010101010101010101010101012727edd
e0101010101010101010101010101010101010101010101010101010101010101010101010101
0101010101010101010101010101010101010101010101010101ff9b0101010101010101010101
0101010101010101010101010101010101010101274e010101010101010101010101010101010
101010101010101010101010101010101010101014e67d2270101010101010101014d50010101
01010101010101010101010101010101010101010101275001012850014e01274e0101504e010
127014d010101280150010150504e5001504d0101012701010101015d01000001010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101270101012727e14401010101010101010101010101010101010101010101010101010101
01010101014d012727014e2701010101010101010101010101010101010101010101010101010
10101015f7c0101010101010101010101010101010101010101010101010101010101010101010
1010101010101010101010101010101010101010101010101010101010101e3b9270127010101
0101010101010101010101010101010101010101010101014e0128014e2750010101010101010
10101010101010101010101010101010101010101010101010101a9d801010101010101505101
01014d0101010101010101010101010101010101010101010101014d01284d01275001014d010
10101274e014e2701015e0101014e01274e0101012701015001270127014e5001500100000101
01010101010101010101010101010101010101010101010101010101010101010101010101010
101010101010101012701012701a4900101010101010101010101010101010101010101010101
010101010101010101014e01a2012701010101010101010101010101010101010101010101010
10101012701010101ed6a01010101010101010101010101010101010101010101010101010101
0101010101010101010101010101010101010101010101010101010101010101010101019c8f4e
27270101010101010101010101010101010101010101010101010101014d014d27014d014e010
101010101010101010101010101010101010101010101010101010101010128bf7a4e010101010
12801014e5d010101010101010101010101010101010101010101010101272727012701275001
4d0127012827012701014e012901014e4e4e014d270101014e510127014e01014d4e010151010
10000010101010101010101010101010101010101010101010101010101010101010101010101
010101010101010101010101012701012701a4400101010101010101010101010101010101010
101010101010101010101010101bc9b7b62a228280101010101010101010101010101010101010

481

1010101010101012701270101346a010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
1019a8f274e2701010101010101010101010101010101010101010101010101010101293db0aba
93d4e0101010101010101010101010101010101010101010101010101010101010101515ab827
01010101284e0150010101290101010101010101010101010101010101010101012727274d015
d2701504d01274e50012701012801292801012901014d01282727a22701018801012751010127
015d0127010000010101010101010101010101010101010101010101010101010101010101010
101010101010101010101010101010101012701272701df4001010101010101010101010101010
10101010101010101010101010101010101d20c255f01010101010101010101010101010101010
1010101010101010101010127012701012f5601010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101019c9b0127270127010101010101010101010101010101010101010101010101010101
685700abaf01010101010101010101010101010101010101010101010101010101010101010129
548e2701012701010141e989015d0101010101010101010101010101010101010101012727274
e017c15f94601270146fa92d260ae8993e17d41012bc5ad7b76af015fe7177d2f4ddbc5d4840161c
55a890160c04400000101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101012701272701fc45010101010101010101010101010
1010101010101010101010101010101010101015aa4014e014e27010101010101010101010101
010101010101010101010101014e0127010197840101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101bce5010101012701010101010101010101010101010101010101010101010101
014e28e81c5d500101010101010101010101010101010101010101010101010101010101010101
018e70ea4d0101270139d6ad47012801270101010101010101010101010101010101010101272
74e4ecd83929c54eb4e341fb9b663f6f0ea8920a85d5028bba1474d01871a006193589c5066004a
013cb1ae012b795335000001010101010101010101010101010101010101010101010101010101
0101010101010101010101010101010101010101270127012701fc47270101510101274d8b5d34
3a3d28014e27290173550101294d01683f9750014d275c7de046ea014d510101554b2701284e01
682f8829014e528be04b5027018e7389b8d2015146260101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
101010101010101019cc3270101010101272728012955d82827015051015e684e0150272701d8e
04d010150379d4ee0b80150270101516827014e4e01018baf01014d014d2701517a65e00101015
e01275dacb80128015fb0d3fe4e01500150010101010101012727010101010101010101014e0101
4e01fe0056014eaf0201ebf888280124c3270118b2012801c8f687014d26c43e2801ea6d4e02c4a2
50657748014000364e00000101010101010101010101010101010101010101010101010101010
101010101010101010101010101010101010101014e0127012727b33f4d010101272801af990f58
6f0a0a892727899fb177b22901012b0f7bb2ca5501017121f58dcd3b0101dcc7a5a1c289014ee9f6
20d5ce7461bc8c15eb01502759e18c77aba2013d69010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
1010101010101019cc3270101270101010167c674f5190dd9510101781cf1e7e2014e27ab94a870
2f500138f84fc5ec48012727e4fa00e64901278ad0ee0fd7f76e884d013bf9bea804c544010127016
84faf50012611460101280101500101014e500101272701010101010101274e274d4e015e0101ac
a57a0101014d01eb9db8015d7f8f0101fa5c010128ebc48b274e57e101014d0150019c9db8017a7
7ff4e3c794001000001010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101014e010101274ef936014e0101010101ed00c301508806
ca68891900545657de51479d81015062a44e01b713805036967301cd005cd1e7a9763200b36835
10f65601667b0101010101e400aca2010138530101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
101010101019cc30101012701010127a41d3c4e8e4f1335016ef105bf9298e04e0a7e3401610887
0132f6e9018bd3f30144b11ab0bfdf4b27e622648ba4b1ac8b018400d087514df3a63f2750015d70a
f8ba4b103e9bb81bb61616a6aab8466d7606f5360cce963c16dc1e9aecbae846f69d1325e66a5ea
504e5d010164f88e015e11b7015d0392500101b6ee8e014d7df53c47473d5f016d8c8b01d283b60
140f14401000001010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101014e010101274e8537010127274e01764ca3014e2701fbb13
33e00a35d0127dc01d0007a274e5011ae4d4fdf01014e167c51a5a65001014788a3aae2014eb9d5
015050df514d010150e675b80101a240d701010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101019cc30101012
Important A call to executeInArea with a parameter of the heap (or immortal) memory results
note
in a new memory stack being created, with the heap (or immortal) memory area at its
base.
If it is just one object that needs to be created in a particular memory area, then the newArray or
newInstance methods can be used. For example, to create a new copy of the current object on the
heap

Object
o
=
this.getClass());

HeapMemory.instance().newInstance(

The above assumes that the object does not require any parameters to its constructor. If it does, then
the alternative version of newInstance must be used. To create an array of objects, the newArray
method should be used. Of course, when the constructor is called, it could itself change the current
memory area to create other objects.
Java threads and memory areas
In general, a Java thread is not allowed to enter into a memory area. However, it is allowed to call
executeInArea with immortal memory or the heap as a parameter. Furthermore, it is allowed to
creates objects in those areas via the newArray and newInstance methods.

8.6 Sharing Memory Areas between Schedulable Objects


Multiple schedulable objects can access the same memory areas. Consequently, the cactus stacks
for each schedulable object are linked together. Consider the example presented in Figure 8.7. Here,
two real-time threads (ThreadA and ThreadB) have active memory stacks. Now suppose that
ThreadA wishes to enter ScopedE. It cannot do so directly because ScopedE is already active and
has a parent ScopedD. If ThreadA were to try and enter ScopedE, a ScopedCycleException
would be thrown (as ScopedE would have two parents if the operation were allowed).
01000900000396e200000000b161000000001610000026060f002220574d464301000000000001
00bb8a00000000080000000020000000e0000000000100010000006c0000000000000000000000
d2010000b800000000000000000000006a4000007819000020454d4600000100000001000c0000
00010000000000000000000000000000000005000020030000c40100001a010000000000000000
000000000000e3e306006e4e0400460000002c00000020000000454d462b014001001c00000010
0000000210c0db01000000600000006000000046000000043b0000f83a0000454d462b22400400
0c000000000000001e4009000c00000000000000244001000c0000000000000030400200100000
00040000000000803f214007000c0000000000000008400005503a0000443a00000210c0db0100
00000000000000000000000000000000000001000000ffd8ffe000104a464946000102010048004
80000ffed08b250686f746f73686f7020332e30003842494d03ed000000000010004800000001000
100480000000100013842494d040d000000000004000000783842494d03f300000000000800000
000000000003842494d040a00000000000100003842494d271000000000000a00010000000000
0000013842494d03f5000000000048002f66660001006c66660006000000000001002f666600010
0a1999a0006000000000001003200000001005a00000006000000000001003500000001002d00
0000060000000000013842494d03f80000000000700000ffffffffffffffffffffffffffffffffffffffffffff03e8000000
00ffffffffffffffffffffffffffffffffffffffffffff03e800000000ffffffffffffffffffffffffffffffffffffffffffff03e800000000ffffffffffffffff
ffffffffffffffffffffffffffff03e800003842494d04080000000000100000000100000240000002400000000
03842494d0414000000000004000000023842494d040c000000000721000000010000007000000
02c00000150000039c00000070500180001ffd8ffe000104a46494600010201004800480000ffee00
0e41646f626500648000000001ffdb0084000c08080809080c09090c110b0a0b11150f0c0c0f1518
131315131318110c0c0c0c0c0c110c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0
c0c010d0b0b0d0e0d100e0e10140e0e0e14140e0e0e0e14110c0c0c0c0c11110c0c0c0c0c0c110c
0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0cffc0001108002c0070030122000
21101031101ffdd00040007ffc4013f0000010501010101010100000000000000030001020405060
708090a0b0100010501010101010100000000000000010002030405060708090a0b1000010401
030204020507060805030c33010002110304211231054151611322718132061491a1b142232415
52c16233347282d14307259253f0e1f163733516a2b283264493546445c2a3743617d255e265f2b
384c3d375e3f3462794a485b495c4d4e4f4a5b5c5d5e5f55666768696a6b6c6d6e6f637475767778
797a7b7c7d7e7f7110002020102040403040506070706053501000211032131120441516171221
30532819114a1b14223c152d1f0332462e1728292435315637334f1250616a2b283072635c2d244
9354a317644555367465e2f2b384c3d375e3f34694a485b495c4d4e4f4a5b5c5d5e5f55666768696
a6b6c6d6e6f62737475767778797a7b7c7ffda000c03010002110311003f00ee597e75e5c29eacc2
58c0f7b198d2f035acbcd7bdeff4ecb5aef4fdbf9967d3f4ec45c1cbb18db9f93d4ebbfd4706d21d57a
22b32e6fa76337b5eeb5fb9bf4dd5ad218b8c039a29600f10e1b4411fcad130c4c504914d60b8cbb
da352087eba7ef37724a6959d4436ca5bf6dc701f6b587f46e21d2ef4fd263c5bb7d573fd9fc8ff00a0
a859895bee6be9a71c926efb45776317b9ce363b6dcd75757a9b9bf9eedfb2dffc196db70b09a416
e3d40b4168218d1009dc5bc7ef2c4bb1fa73b32bbf29de965b996063fd67d41d5d763c1986ec77f3
bbdecf7ffa4fcc49482ee9b99657635946150e748a9e309ee2dd4fe93dd5bd8ef67a7fa3d9fe97fd35
5f65d5e8f5329b2f6358cadd0c739b5d7e90d4dbb247a747a8ff004f67e97d355a8ea9d2fa6d577eb

483

755b04d96037badb0012d86d62b73fdbe9bdbff0059b77ff3762bf8178c9c8b721a00659554590664
4dc2786a4a6f2492ab939adc773b78018c0c2e7b89e6c77a3534358db1dee7a4a6d24a91ea7403
b4dd8dbbc3d713ff005087575ac5b5f0c734b1b61aadb0121ad706d964eeb6ba98f6fe87fc1b9253a
2926dcd3dc2ab6f55e994b8b6dcaa585a60873da088258793fbed7312536d255b1ba8e065bdd5e2
e4577bd825c2b707403fbdb559494fffd0f5549249252960596beb752d7ef7fa8d7bd8f6638b76cbe7
d2dd0ef4ff00ebafafd4ff0007ea5cb7d6139dd4c3cfd8adc618c3da2bbac7b5c1e2dc8fb47f35fc8fb3f
a5fd4b12535adcda994dbe9e3db690ed58315a039c5db1f2fdb6fbdbeedff00d4ff0085a3d4d4e9165
971b2eb3702f6b0063da1a5a1a6dae3d91b9afdbead6fff0045656aa7a9d5c0005b820892e8b6df76
add1beff00d16efd27bbf4bff827e8acf47391eb5df6a7d6fc83554ebbd1797d61c5d910d639e1aef6d
5e933dcd494ea2c9eaf63ebb4c63599b53dac6db456d6bced1f68b5b66cb5ae63ff00495b2bf7bab6
7e956b2cdea02c375831ec6d591e9d5b0bde58d2d163cdc0edfdeafdbf47d8929ccadb8963891d1f
2abf4da1ad69a31c35dab47d0fe6f753e8b3d37d9f42bfe691a8a31cdf4d230ce354eb836daecaab6
36c3e8e47b7f475b1b6b6ad8df7a62feb3b9a37e1416c922fba01f64b376f6bff0039fb3f45fe0bfc127
c56f506e662fdbaeaacdd90f2c6d563ac89a6f2c6b7736adaca99bfe9fadeafe8ff009bd9fa44a77055
583218d91de02cbfb1e7bb21fbf1b14d44dce6d85a0bc49271b4fa3ef77e92f7bbff00467e875d2494
e3e3e3f57c76b8d58f882c2c30f0dd92e0c6fa753fd2ff0007eaeff7ff00a3f4fd88d69fac0e0e15b71d8
438ec21ce702df66ddfb98ddbeef53e82d249253fffd1f55492492529653b1320bdaf69c8a5d59b5a7
d23596bdaf7b9ed711639dfd7af67a6ff00f4bfe896aa4929c61859c1cf73b2731e1c496b3f43004b8
b5a75f76dddff0080d3ff00767ed33c00ec236badf5eca9ad6b05f90facbe43ef7b9af7fa83db5faedae
b5acb3b2a7ecd91ebecfb2ee76f9df3122777a5eefa5fba929b4cca2f607d74bdec70dcd734d64107
8734faaaa6536dc87db5fa77d7ea575c5959ac39a58f7bf4dd66dff3dafaff00d26f58c7fe6efdab136e
df57d6fd0eef5f6fa9edd9ebfadedfe73ecfe97fc2fa3fe0bd45d1d5ebfaeef5b67d01b764f8bb9dc929c
e7616717b4fda7383446e00d12488f3dbb5defdfedff8bf4d3e374fbeacba2d9c8b21f361bdccda006
e4bbd46b6b71fd23adcb733fa9ff12b612494a4924925292492494fffd9003842494d040600000000
00070005000000010100ffee000e41646f626500644000000001ffdb008400040303030303040303
040604030406070504040507080606070606080a0809090909080a0a0c0c0c0c0c0a0c0c0c0c0c
0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c010405050807080f0a0a0f140e0e0e14140e0e0e0e14110c
0c0c0c0c11110c0c0c0c0c0c110c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0
cffc0001108008b015e03011100021101031101ffdd0004002cffc401a20000000701010101010000
000000000000040503020601000708090a0b01000202030101010101000000000000000100020
30405060708090a0b100002010303020402060703040206027301020311040005211231415106
1361227181143291a10715b14223c152d1e1331662f0247282f12543345392a2b26373c23544279
3a3b33617546474c3d2e2082683090a181984944546a4b456d355281af2e3f3c4d4e4f465758595
a5b5c5d5e5f566768696a6b6c6d6e6f637475767778797a7b7c7d7e7f738485868788898a8b8c8d
8e8f82939495969798999a9b9c9d9e9f92a3a4a5a6a7a8a9aaabacadaeafa110002020102030505
040506040803036d0100021103042112314105511361220671819132a1b1f014c1d1e123421552
6272f1332434438216925325a263b2c20773d235e2448317549308090a18192636451a27647455
37f2a3b3c32829d3e3f38494a4b4c4d4e4f465758595a5b5c5d5e5f5465666768696a6b6c6d6e6f6
475767778797a7b7c7d7e7f738485868788898a8b8c8d8e8f839495969798999a9b9c9d9e9f92a3
a4a5a6a7a8a9aaabacadaeafaffda000c03010002110311003f00f6c5efe62791f4e92f62bed76d207
d3e233ddf37a0485265b777069465495d6390ad446ec15f89c556defe63f9174e92e21bfd7ad2da7
b4bc6d3278657e322dea5bfd6cc1c08e45fd1fde8503e24f8971552b7fccff205e1bc5b2d7edae9ec1
8a5da5b9699925560a62e31ab1325587eed6b27f938aa84df9b7f969045693bf9a2c0c37d6d1df5a
ba4a2457b4967fab09aa95a2097e07634546fb7c7154d741f38e87e64d535dd1f4b9257bdf2edd8d
3f5312412c5189fd28e6a23ba85701645fb27f0a1c553fc55d8abb155386786e14bc122ca81990b2
3060190956151dc1142315625f993a6e9face8fa7693aadb4779a6de6afa6c575693a8921963372a
4aba9d8834e8715637e62fcb8fc8cf2ada5bdcea3e48d1c1bfba834eb2b5834e81e5b8bbb83c6289
142804ec4d490154331200c557e81f973f92be65b49ee6d7c8da6446caea6b2b9b7bcd36286686e
61347051d7bd41561b3ab2b292ad8aa73ff2a6bf292a01f256885e8684d85b96a77dca57155bff002
a57f282a7fe745d06a4518fe8db6a914a50fc1d298aac3f929f937c797f80fcbfc40a7fc736d29b7fcf3
a62ac22c74bff009c74d52d344b8d33c85a5dedf7987eb7fa334a8b45b637ad1e9f2b41732488ca1
628e371c0c9232a559101e4e171557b6f2cfe544d6c9adf94bc9567a0eb7a2f98f4dd36e266d2a2d
3af61b85bcb567e2c10314649451d18a3a9f85997157b762aec55d8abb15762aec55d8abb15762a
ec55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abffd0f4a9fc9df
34cdf961ad7e55dc6bb64749fa95ce9fe5cd53eab235f88e6944f11bc264a3321011cc74f5bfbc3c5b
e1c557c1f953e733e6db7f37df6a9a64b7527996dbccd7d670c5711c68b0e84744782276672c68de
aabb2afd9e3c7e2f85541cbf923e6192caf25fd25a71d623f3a5ef9df4a8678659f4f912fa292dded2e
d09463fbb95e92a7d8938b71f878b2adf99bf24b5fd7175482c6f748d32d353f29def9545bd9d9bdb5
bdbcda85e7d69a68e18da9c501238f2e523fc6cdbd3157a1f937cafab797354f33dd5edd5bdc596bd
7f16ab0a44922cb14c6cadad658d8b12196b6fc90800fc5f174c553cd62cb56bd8a35d2754fd172ab
56493d08ee79ad3ecd24a537ee3154a3f40f9cbfea6d3ff70eb6feb8ab8e83e703ff004d6b01eda7db
7f1ae2ac234bf2479e66f3b27982c7569340d32d6edff4c31b3b447d7512a9f1dbc24aaa6f54b890fd
636d902362acdfcf1fef2e8bb1a7e9bd32a476ff00485c5501f9a9a3d97983cb90e8baaf97ee7cc1a4
5e5dc497834e90457d62115e48afaddb9c6c248655420c6dea2d79206a712abcaed346fcccd3f4bd
0c79b344d53cf9e58b7bdd6ac3f47cb25a26b9269f74b0c7a65e5fac934314b2c6a93c6cfcc4aa92c

72b2fa81f8aaaba8f913cf06ef5cd312c6ebf4a5d6a3a05df91fcc2973f598f47d3ec63b68ee2da49a4
7120f48c370d20a37d6feb1fb6ccfc15607e5ff24799fcc9a35cea1f9716375a579974ed4fcf76b75ae
35c9b78aeeda4bcbeb7b3b257677e7497d3f4cb2f1b6f459bf6873559c68de5cd6f4f8747d6edbca1
af8f2d4bad25cf99bcadaa4ba7cb735fd1cf6a93c3676acb6fe8c337a6ceaa79cadfe91e9964059541
7e557923cddf97faa796bce779e59be164da2dff0095f53d1637b79af34e5fd3571a8dadca4692b2c
914a92f09151cca9c62f81872e2ab2cf2de9be6fb4d2bcc7a879b24d43d0d4fcef6573e5bb6d4ee3d
7960d17eb96420409c9fd21ea7aa4231e7c78f2eca157b662aec55d8abb15762aec55d8abb15762
aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abffd1f4af95ff
00303cc171aade5ceb10cd26b97faeeafe5bf2fe811ddc434f90698d24c6591cc3ca368a2b7605c72
f50bff767e1e2ab20d23f3713cc1aae9da3689e5ebdb8bfb91787515925b6812c4e93a8a69b7c921
693e3689df9afa608953ecb62a8ff0034ea1f98165aad749974db4d0649f4eb3b592eada5bb9e496f
2668a763e9dcc2144754e20afc5bfc58ab1b87cf5f981e5ebf68fcdfa5fe909e1d0a5d5b51b0d216dd
21b76b3bb951a459679c13eac2a8cb17273cf90e4a31564b73f99312dfe8565a7685a86a4be66b0
6d4b44b8b7f416391112291965f525530f15990969071fd95e4f452aa57affe76f96fcb9a85ce977f6e
e351d32de0b9d66d3eb168b3db1b98c4a2148da606795633cd961e428578333371c5531f327e6b
683e59d4a1b1bd0af14a2d49916ead167e378ea8856d5e5139039296f801e3f603e2a92fe66fe616
b9a4e85ad5f795acef553cbf750437bab4696925b9919a3f523f4ae1b9bc6a251eac91a8653f63971
7c55435afcd76d03f357fc3179ad6907cb88fa7d95fd94aa60d4edef7580eb6811cce44aa5d63f53f7
4bc16e23f8be16c55957e6649aa47a369afa24305c6aa358d33eab05dcaf6f6eee2e54d1e48e3959
453b88dbe58aa00eb3f9c2b27a2fa17959653b843aedef2a52bd3f45d7156adf5bfcdfba1cedf43f2b
4c80025a2d76f5c7c42a371a59ea31555fd21f9ce410fe5cf2c907b0d6efbfef178aa5ba1699f991e58
b392c3cbbe4df28e95692c8d7124169aade431b4d2105dcaa6962acdddbbe2a98fe90fceb14ff9d7b
cb07c4fe99bf1ff0076c38ab7fa43f3aabff28ff9640ffb6cdfff00de331549fcc1a87e6814d2a3f30e8da1
5b69326b5a424d3d8ea777717080dfc342b1cb630ab1269b175a0f1c55ead8abb15762aec55d8ab
b15762aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb15
762afffd2f61c1f951e5fb7868b79a835ec7ac5c798ec7513327d6ad350bd0eb3b42c230bc2459644
68dd5d0ab914e98aa3347fcb9d0b42d76d3cc1a6cd751dd5a5addda184caad0cc751b91797534c0
a726965980919f975e945db154779afca51f9b22b38a5d5b51d2d6ca75b943a64c9019248d9593d
4e71c9c82b282062a83d5ff2ff004dd6b54bfd5aeb51d4525d474a7d0ae2086e0243f559492595781
a49524f3af7c55050fe56e956d26872db6b3acc2de5eb21a669c12f6805b7c1c838e1f1961146189e
c8b8aa67a9f91f4fd47549757b7bfd434abbbb083511a65cb5aa5dfa4bc10ca002792afc21d0a49c4
2af2a2ae2a97eb9f959e5dd7ee3509aeeeb52861d57d07bfb4b5bd960865b9b411ac370c17e2322
08a31bb706e0bcd18e2aa7e63fca7f2e799c5fc57f79aa4161aa707d4f4fb3be96dedae2e22081277
54dc483d34af12a8fc47a88f8ab5ff2a93cb32697ac69775717f77fa726fac5edfdc5c092f83d154fa57
1c03a0a2281c4fc34f838e2a8ef39c5e85979721123bfa7ad6989ea48793b719695627a93dce2af3
5f37c727fd0d0f93db4c82c65d53fc21acbb0bd631ecb7b66aac0a23b730a5c2edf60c98ab02f2179
bf50f2a68abe5cf2edce8da2def98bcd5e7812eab34b141651dce997ce6de057689d4a959392a32a
39821658f862acc3fe5736be9e6dd1743fd37a55ebdd6afa5681abc369098adede6d434692f1da33
72eb34c4cca9244eaab08819626e7372e2aa63f953f985e7cf306a1e483acea365aed879afcbd77a
b6ac2c6d96d4e9777692c0b19aacb2929309cc7c1cf2f5226653c7922aaf74c55d8ab14fcc023f45e
955ebfa7345a53c7f48c18ab2bc55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb
15762aec55d8abb15762aec55d8abb15762aec55d8abb157ffd3f7f62aec55d8abb15762aec55d8a
bb15762ac4bf3025860b2d16e2e24586de1d6f4d792576088a3d702ac5b6037c551725e79126d41
75596e348935545f4d2f99ed9ae15082388909e40509dab8aa1041f9622cdb4f11683fa3de55b86b
5e367e899d3ecc853ecf21d9a95c555aee7f21ddcef7b25c68eda93702b7ae6d64995e0afa4dc98d
498c92537f87b62a947e5f697e48fcbcf2cd9796f4ed6ac2e0da44b0cba833da41717223a8469cc3c
4338069ca98ab29ff13f96bfeaf363ff004930ff00cd58abbfc4fe5aff00abcd8ffd24c3ff003562ac6fceb
ae6897b61a5dbda6a76b3cedade8c5228a789dda9a8c07650c49c559ce2aec55d8abb15762aec5
520bbf3cf92ec6ee5b0bdf316996f7b037a73db4b7902488e29f0b297a83bf438aa81fcc5f20ad6be6
8d2871d9bfd3adf6ff87c55aff958de4035a79a34adbaff00a6c1ff0035e2ad9fcc4f2129e2de67d2c1a
d29f5c82b5ff83f7c55a3f98ff97e2b5f3469429d7fd360ff009af1577fcac8fcbfff00a9a34aff00a4d83fe
6bc55dff2b1ff002fff00ea68d2bfe9360ff9af154e349d6f47d7ad9af744bfb7d46d15cc4d3da4a93c62
4500952c8480c011b62a8fc55d8abb15762aec55d8abb15762aec55d8abb15762aec55ffd4f7f62ae
c55d8abb15762aec55d8abb15762ac53cfb6d6f7ba7e9569790c7716b36b1a724d6f32892375f5d4
d1958107c77c558dfe683f953f2fbcac3cc09e58d2dad56eedadaf6fa5d3d26b6d3edae2408f797090
a7368a2afc7c48a579332a066c554747bdf262680bac798f46d0ae23ba9667d1ee740b34d422d43
4f8d1641750c70a4d2710ac7d41f17023ed7c4bc954649adfe4c4534111b4d29a29dad50dda69e8f
6b0c9a8846b58e79d6231c2f30910c6b2b296e4bfccb5550767e70fc87beb816d1269519637e91cd
73a6fd5a077d1cb0bd4496681119e0e0c6450dc95472fb38aa32db58fc9fbe8ae0d969ba7cf776d7
29612e9e9a586be1732c3f594416de8fa87943fbd042d3d3abf4538abcab48fcc2b4d5ff00c186e34
5f27e876de67b0d76f66bed46c58471c9a0ea0967c1159e23fbd4903d19832707ebd957a49d3b44
bdf27796fcc71e99a3ade5dea7a35cdbea1a4daac70c904da940629612e8245124455a84d4722b5
38abd5715762aec55d8abb15762ac0bf2c6189adfcd4591493e67d6772a3fe5a31542e9bf98f26b5

485

e64b9d2746f2d9bed174fd666f2fea9a9c573099ecee608b99967b4e3cd6167f811b9726aac9c163
60d8ab301af7960b5e01a958f2d3806d407af0d6dd49a565f8be01514f8b155197cd7e4eb7b18b53
9f5ad361d3a7123437725cc091388472938b3300780ddbf97be2a887d77cb91cb6303ea364b36a6
15b4d433441ae438aa98457e3e43a71ad71561de6afcd2b1f2f799ed7cafa7e9f16b1797363aa5e3
182f2047867d26059cdbc9190cca64561c5cfc2a7ed62ab3c81f98fabf9e6d3cb9ac1f299d3bcbfe66
d3c6a9657a6fadae258e178d658fd58142b80c1802cbc8239556fb43154dbc90638b51f3d3b1548d
7cc0ecc4d000069b635271564fa66ada66b56bf5ed22ee2bdb22ef1adcdbb8922668d8ab0565a83
4208db154662aec550da86a165a5594fa8ea57096b636c8649ee2560a88a3b927154861fcc2f28d
c4e96b1ea07ebb24b736cb66d04e97267b2805ccd17a4d187e6b130902f1e4c84327218aa5cdf9c
5f968a2ddbfc43032dd58c5ab44512671fa3ee15de3b96e319e11308dfe37e2b55e3f6b156ffe56ff0
0e5c7d457536d7a24d3988ff4b9229e38963631aaccccf180b0b19502ce7f72dcb67c5510bf99fe46
7d566d123d543ea96f717363240b05c1ff004cb283eb32db87f4f899445fbc1186e6e956456a62a9a
7943cd3a679dbcb5a679ab4659974bd5a04bab4fad42f6f298a51c94947008a83f2f0c553bc55d8a
bb15762afffd5f7f62aec55d8abb15762aec55d8abb15762ac67ceb4f4344ad2bfa6b4ea57fe330c55
17e66b0f30df5bda1f2dea16f63776f7025b88ef206b9b6bab731ba34122abc6ca096560ea7e12bf6
587c38abcd344fc93d5fcac74fd53ca7aeda691aedbea3aaea173682c0cda30b7d7bd03736b6f6c2
78de2547b78a58d965fef3d42c9c64e0aaa6379f938d7571e64b59758f5bcbde72bbb0d4fcc96f341
fe926f34f4b68d9ade447558d675b58f9a946e07918cfc438aac13cabf943aaf9ff00ca3a8693e729e
7d1b4c875df35de697662cdadef964d66eaf922b977b82cae822baf562558d4372024af1a62acf53f
2cbcd622d0355935fd353cdfe5ebc6ba82e2d347169a64f14d6d25a4c935b25c190b489272e6b38e
122af04e1c959540f943f26f5cf29ebbe51d486bf6b7b67e5ab4d6ecee216b178a5b9ff105f25f4acac
2e1847e93c68a9f0bf25e5cbb62acd7ce36b6d67a16956b6b12416d06afa2a410c6a11115751b70
02814000c559662aec55d8abb15762aec55827e57d3eade6affc09f59ffa88c5585dcfe59f9af54f3e6
97e705b3b6f2e799edeeeea2d77cd7a45db20d5742e33c56d6f3da04024980681b94a1842f1b7a5
2744c550967f961e7f9bc9fa2e97a8d86870f9a3ca6da4c106ad1cd249fa72d746bd8ee3d3b92600f
0c732a994a13371bb3cfec2d5d548754f2ddd795bf36bcb5ae6a9676336a5e6ef326afabd8e8125c
468b6d4f2fc3625564742a6695e2e72711c599d57916fb4aa61e55fc8df32f952f6df49b8b6d3bcc7e
59b84d36e124bdbbb98468d7ba6de497623b7b68d024f0466406d0131b23a7c7f01f85545587e58
7e635947e5bb4ba874fbf97ca90798ed3f4cbddbadd6a435a8c88272a603e9c85981b90cc4730cd1
f21c7154c3f27bf2cb58fcbcd3bc9fa71f2a69161aae99a5a695e65f325b5d1926b88e2854b08a3585
0b7ab3c71b96908e0a1bab362aa9aaf906ff00cf9fe2eb5b0d6ee34c6b2f32cb3be9e38b69da883a5
d88105fc65199e2ad0fc2763bb249f671566da1f9735d9b4e8cea9aaeaba55e25636b38ae6c6e225
58cf1531ba5a25508155aa2378a2e2a997f85aeff00ea65d5ff00e0ed7fec9b1556b4f2edcdb5cc570
fafea772b1b06304cf6e637a766e3029a7c9b1542fe6079525f3b794751f2e5bdf36997973e8cd657
eabea086ead278ee60664aaf341244bcd2a39a725ef8ab18d47c95f985abc9e54d7eff005ad257cd
9a15ecf3ddac5653fe8d36d7b68d672a42867f579a86f511a49082ff000901698ab16d0ff247cd9a26
97a8e8c35ad3ee2dae3c8f6fe48b39fd09e3759ad8dc1172ebea30e2df5a7aa2b57e04f816100000
26060f002220574d46430100000000000100000000000000080000000020000000c00000000001
00be234551d7bf937aedddff0096f536b8d0eea6b5d0ed3cb9e61b5d5b4d3a9c1e8d9333a5ce9fea
b2fa72f27705650f1b02bcd4fa7f12a8db7fcaff00348d545ddcea963f526f355df99e48e3866f5bd0b9
d35f4d48558bf10eab2190bf1e3c871e01715667f973e58d43c97e48d13ca3a8de457f2e8769169d
0ddc1134024b7b551144ccaceff194505e878f3af10062aca315762aec55d8abffd6f7f62aec55d8ab
b15762aec55d8abb15762ac0ff0034a6d6c5af966cfcbcd689aadf6bf671c32ea092c96e8208a7ba2
4ac4cac4910711bfed62a85bd93f392c2192eeeb56f28dad947bbcd716ba8468809a0e4cd7607523
155b1afe795c47ea5b6a9e4f92161fbb992cb52753bfb5e50fdf8aaf8ed7f3de89eaeabe52e43edf1d
3752a1f715bedb1555faafe77d37d57caa0f87e8ed448ff00a8ec557183f39e3e524babf9596151c98
9d3b501c69d4926ff00a62a941d5ff340fa4079c3c90a6644680fd4eecfa9ea578951fa4854376a56b
8aa13cc30fe6d4773e5a83cc7a9f97ae346b9d774d4bc8f4fd3ef60b9a4330b9528f2de4aa2ad1053
54fb27157b062aec55d8abb15762aec55e3be521e69b5b7f38ea76be61d3349d0edfcc9acc927d77
4e92e0c6ab37c4cf28bc8452bf17d81418ab28d2dfcebaf69b0ea9a2f9c744bed3ae5795b5f5b6932
cb0c8bd39232ea25581ec46d8aa25b48fccc2d51e69d29578d2834594ef5ad77d47c36c5542e7cbf
f009977122c8be6ad250a1052ba0bb914f02da81a62abbf41fe69558ff8c34bdc500fd04f4534ea3fd
c8e2ab7f417e6971e3fe33d3391fdafd02f51f47e90c550338f3c43ab5af9766f3f69316bb7914d776b
67fa11bd696dedcaac8c14df9f850ba827dc62aa9f9549ab44de748b5bbb8aff00528fcc7324d776f0f
d563702c2c829117a92f13c680fc677c55e858abb15762ac4ff00343cc7a87943f2e3cd9e6ad2a349
752d1749bdbfb5490f14f56da079149d9ab422b4a6fd3156116ff9949e4ad07cc3737905feb517956
cedf5cf35cd35ea5ccd6b15f446731db7348ccbe9c4866e0dc000fc2366fb0aab30f27f9eee7ce3aa6
af6f69a2c96fa26937771a79d5e4b985d679e010bafa71212e15d25e556e3c4af12b8ab18bad67f37
e3f34fe84b6bad15e792c66d5a2d39aca6044515f25bac26e3eb94a989f9f3e1f6c53862aade5af3d
798ecb51bdd275eb5b8d574d4f31cda15bf9859ad2123d550f0a9821e059509f499f8ab77e2ff0013
62a9e69fe7cd6752d7b54d02dfca779ebe8d7b1daea176d3dbada882e238e68e58a4661ea370939
3c4a3947fb4793206552bd17f3a742d6f5bb4d36dad98d9ea3792e9f657514d1cf37ab1730249ada
3abc51398d82bb74f83d454e78aaeb1fce4d1e7f35c5e57be82281ae535096deeadaf6def82a6963
9ca67580931f24f89685f71c1f8bed8aa5cbe76f366b5e6cf2849636b79a2f96bccf05e7d4dae7ea57
10488b652dcdbcb344a05c4529a2388c4bc38064938498abcc87e7a79f60f2a7d68ead0dceb9776

ad289a5f2e5f595b5a5c43731c21617925f4ef449c9832c2dfba8f95cb3fa513e2afffd7f7f62aec55d8
abb15762aec55d8abb15762ac2fcfbff001d3f237fe0471ffdd3afb154b7f36f46bfd7edb40b3f2fdfd8d
b79b6c751fd2da269dabc6d2e9ba93d9dbcb1cd6b701412018a667565abc6eab2aa37a671560be
4dfcc57d5f49b0f2d79620b5fcbed4a7b1d7b5292df5158ee6ca1d5b4bd4dad6f2da26568d1ede39d
9e591a3e2de8bc653d3f8b8aa8d6fcd7f34c97b2dfdb3da9b6b4f3ada7922e743f4bf7860bb5857eb
88fcb9f33eb0ba45fb1f5514fb5fbcc5587c1f9ebf98ba3f96fcb7e6bd665d3f55b1f33e9faabce9059bd
9c3a4cba5df45689772c86694b5b9137ef83d3832af16fb58ab3e4f3979c175ed3bc83aeea3a6a5d
6b526ad35b6af6be9ddf1b2b1b6b79a2b5b88d9522facbfaecec14716b68b980acff000aaf1ff26699
7da9c5f9716fa1d96837f7d2fe56dd2c83cc0adf51318bcb24ab7a4ae682bf20bcb7c55ea7e48d46df
53fca0fc9ebbd3e4b99ad4dce8f12cba810d74eb0c32c45999490d529556068c9b8c55ee58abb157
62aec55d8abb15793e8922c3e46fcc991cec356f31d3882c492ce0001412493b000571578caea7e
6cb6f23797e0d1757d6f4c5d1ff00297ebb6f6162b3c2abe64d285bc76d13a7a24994b074780ff7aa
bc5938e2a9b9d7bcea9a99d157cc5aea595c6b3e4fbb6bb63234cb16af6d37e9589243090b02908
cc94096ee7fdd7f08c554b4fd77f31f4abab697cbdab6b5abea8f77e76d16c2cb5679a7b464d35669
34532892351cddc4412e2425a657e3cd97ecaaafe64d6fceb0e949379635bd7d344bab2f2c49a8dd
ce677bfb6d5ee357862bd8d7d489ca16b3699eea255f4e0f4d1c2a72f89545de2def91bcc1e7db46
bdf335e06bbf2c47657ef2dfdd34ba6b242b3c924e892521f539c77125ba7aea85f8f1fb58aa3bf2ef5
6d7b57f39fe5dcbe61fae4ba9d841e77d3ae27bbb6ba89c431ea76c965ea34e95ac96f0828cedca4
0a5be26ae2af51fcb7a7d7fcfbc5830ff0013dcee37a1fa8d9547d18ab3bc55d8abb15497cdde58d3f
ce9e59d57ca7ab493c7a56b36d2595f1b57f4a636f30e322abd0d39292a48de871563779f941e53d
40837af7b37af630e93ad29b821356b1b6e5e9457eaaa1650bcd872015ca3b46cc6362b8aa79e57
f26e9de529b5a974db9ba9535cbf9354b982ea512c715c4c006f44055e0842a8e15207114c550f27
90b4e97cec9e7c6d4b531aac70fd552cd6f1c69fe8102a9f570389058073fe58e58aa5b0fe53e830d
a9b51a9eb0e0eb2be62795f5198c8d7c9d016ff007d6c3f77f67154cb46f2169da1f982f7cc56ba9ea
d2dd6a32bcf776b737f34f66f248ab186f418f11c1115129f655462ab34dfcbdd1f4ad58ea5657daa4
769c9a48b44fafdc7e8b8a490966296c182d0962781ac63f65062a96d87e4ef9434ed474bd4e2935
1927d0e495b458a7d42e65b7b4b79e311496b142cfc05bb2803d32a7a2ef4518ab56ff939e52b4be
b2bfb6b8d5627d25ddb4581753bb16fa7c72c4d0bc36d173e091156a70a7c3c55578aa85c5506df9
15e4a93475d0ae6eb59b9d2e14f4ece09b56bc716d53f1343593e06652d196fb5e9bba7476c55ffd
0f7f62aec55d8abb15762aec55d8abb15762ac17f326eedb4fb8f25dfdf4ab05941e6284cf70fb4682
4b1bc8d4b1e82aeeaa2bfb4c062aafae6adf969e64b6363af5c69fa8dbc24baa5c717f4dca95e4869
556a123929ae2a975e5dfe4cddd8e97677f0e8f71a7e8b289748b696da3912d6550472850a1e07a
eea315567d7ff002a64d6d7cca27d38f98bd3f423d49a2ace14ec016e35dba57a85f87a1c55897e5
9e9bf955e42f2a3796e7d534bd52e674960d4f506b4f47eb90cd34b27a7323fa8180f51948e455ba9
1be2a9f2b7e4645a2d8796d6d7455d0b4e985d69ba68b54f4219e23512469c281b73f10dce2aa53
5afe41dc3dbcb71a6682ed1422ded79d8c544b7ed1a8315152bfb1f67db155be6ef37f93a79bca3a
7697a8db816daf580586252b1c71d248546ca154726545ed52a076c55ea98abb15762aec55d8ab
b157927913cefe58d125f3669da95f186f13ccdabb3c7e84ee0069ea3e248d97a7be2acb87e66f92
18546a6d4ff00986ba1ff0032b155a7f33fc90057f4937d16b767affcf1c556c9f9a5e478abcb519081
b9e36778dff1184e2ab5bf35bc88a403a94b534029657a7afca0c556afe6cf9099038d4660a7b1b0b
e53f71801c5578fcd5f22960a3519791edf51bdff00aa18aa57f949a8d8eadfe37d4b4d7692cee3ccf
76d1bba3c44f1b4b453f0c8aac371dc62af46c55d8abb15762aec55d8abb15762aec55d8abb15762
aec55ffd1f7f62aec55d8abb15762aec55d8abb15762ac7bce048b0d3e8695d5b4b07fe93a1c558af
9b7ce5e60d13f363ca1e58b5990f97358d2b5bd4b52b610092e5a4d1c5a94585f92d39fd64f2041fb
0b4a54e2a80ff00a186f270d3cea874bd6c58fe878bccc929b251cb469080f740196a162240915a92
778d245f8b154c353fceef2a697ad5ce872d8eab34f69ab5af97a6b882d43c1fa4751b78ee6d630c6
4048996550ac071527f79c06f8aab58fe72f96754b349b4bb2d4af2fc2ea525de911c082f6d5345b9
3697666469028e332f0408ee653fddf2df154935eff9c87f2a69fe5ed77cc3a0699a9798acb43d2a0d
724bab3844366f697968d796cfebcccb4122af13456746fb498ab24ff95a5a18d72c3cb37d6d7ba6e
a9a9496f6504d710a8b717d776725f240afca92911c6dc9e20f12bf18ddd5db8e2ac52dbcc5aaf9b7f
23b48f306b92a4daaddea3a67d6658a310a3343afc3102101206c83be2af66c55d8abb15762aec5
5d8ab04fcafdad7cd23b7f89f59fc6e49c5587da7e636b8bf99b73e4cf316ae3cbdaac5a94f71a768d
a85ac6963ab796a289c89ac2ec025a74da49d1a4e49c1d7d209fbcc5596ffcad8d17ea56da97e8cd
4ff476a71d949a0dd8813d2d48ea737a36f1dbb7a94123ed27097d32b0b095b6e5c55423fe74e81f
a597cb96da46ab77e67faf5de933e9104307ad0de595a25f157792748f8c9048b2c4e1cabaff002b7
c38aa12cffe720ff2f7521a69d3a4baba3a8496704d0c7103716735fced6ca971072f5018e44659f82
b887ed31e1f162a96ebbf99bab6a7e66f2cc5e529e5b6f2ceb563e6275be786da58ae65d2a15f466
849677003f22032aac8946c5527d37f343ceba37e587e5c7e69eb97916afa6f993f4341e66d3feae9
6f2c4faf3450473d9bc54a0866957945207f523268eaebbaaf41fcb3e7f5df3e89373fe29bba7faa6d2
cc8fc31567b8abb15762aec55d8abb15762aec55d8abb15762aec55d8abffd2f7f62aec55d8abb157
62aec55d8abb15762ac77ce440d3f4f27a7e97d287df7d08c552cf317e5fb6bde78d07cf09aabda5d
68163a8e9d6d662049229135611095a42c43554c1194e34fdaaf2e58ab128ff0020ace3d15345ff00
105c9813ca32f91bd43043c8d94b2073391f67d500711b70efc715455dfe485bdeea975aacbaeccb

487

3ddf98746f354a896f104177a0dbc56f14637afa720850befcabcb8b0c557693f9270e87a93eb7a4e
bf716daccb2eb7eb5c88216592d3cc375f5e960743507d19ff796ef5057757f5159aaaa9c5f907e5db
5f2c79a7c97637f716de5af32e8b67e5f5b655432da41a7dab5ac7224ad52ee43176e60d5bdb1559
75f91f3def9a2cbcd775e6ebe9b50b1bed3b548a292dad5a213e9b68f66513e0e51c32a3b33428c1
7d56f5776c555f50f27c7e43fca7b5f2ac578fa84163aa69ad15ccc8b1c845c6b904e410bb7c2ce40a
76a62af56c55d8abb15762aec55d8ab05fcb0ff0079bcd3ff00813eb3ff005118aa09ff0028ed6fae34
c8f5ed6aef58d0f46d4eeb5ad374cbb8e03e9cf76b3a089a7541234112dcc8b1c64d78f1577755e38
aa06c7f23ac2d3cb2be539bcd1ad5de97a6cb6b2f953d692dbd4d17f474c26b5fab3ac0a64317158f
95c7ac4c23d23f0b3f25529d6ff29f5bb4f3a7967cc7e5dbcb83a94bab5feade6af3005b4327a971a5
ae9b0816f2d14c6a891a7140595579f22c7e25539d2ff23f49f2f6b16ba8795b5fd5743d3da0820d7f
49b37b716fabbdb3bc826b86785a4495cc8deb3dbbc2645f87b0c550f61f91363a55c69bfa33ccdaa
41a5682baa45e5dd20a59496b6506b11b249082d6e659238f97ee43c8780555f8971545f97bf2534
ad234df2be87ab6b57faff97fc9ab6c7cbfa4de8b68ada39ac5785bcf30b786369a4880063f518a2bf
ef387a81582a9a7e5ba84bef3e01d3fc4f727ad7ed59599fe38ab3bc55d8abb15762aec55d8abb15
762aec55d8abb15762aec55ffd3f7f62aec55d8abb15762aec55d8abb15762ac53f30a3ba9b42b68
ac6e05a5e3eaba52c172631388dcdfc1bfa6480df2ae2a976af179a741b26d4f58f3cc169648d1c46
47d2a2a1926711c68aa252cceeecaa8ab52cd40062aa7a11f326bf1dc5ce93e798eee2b59ded2e9
0e911c4d0dc46a0b46caeeacac032921862a9abe85e7765017cdca8788058699056be3bc871558
de5ef3cb1a8f3971141b0d32dbf8b1c55637973cf87ecf9d48f6fd176a7fe36c5524b7bdd5ae3cbf75e
6a4fcc8887976c45d7d7750934bb786287f47c8f15c1732152be9b46ead5fe5c5507e76d23cd71f96
e1bdbbf368d4b4d3a8e8f235bad85bc4b2c6da9dad2922124035ad462af58c55d8abb15762aec55
d8abc97c8ba4799aedfcd73e99e646d3ad0f99b570b6a2cade70a44f4279bfc46a77df15450d66ed
b551a32fe6216bf7bc6d3102e93118bebc91995adfd609e9fa8aaa494e7c862ac8bfc3be77ff00a9cd
bfee1b6b8ab7fe1ef3b7fd4e4dff0070db5c55aff0f79dff00ea736ffb86dae2a955e8f3058eb5a6f97aef
cfaf0eb1ac24efa6db7e8ab73eaada28794870a5415523666c55d691ebda8eafa9797ecbf3144dad
68a2ddf55b28f4eb3335bade2b3c06414db9aa92b8abbf2a2daf2d0f9d6df50bd3a85e27992e3d5bc
68a380c84d9599af0880514ad36f9e2af43c55d8abb15762aec55d8abb15762aec55d8abb15762a
ec55ffd4f7f62aec55d8abb15762aec55d8abb15762ac73ce809d3b4f0003fee5f49343ed7f09c5528f
cd8d2347d7bcb10e91addb6a6f69717f6861d4743121bfd36ea17f5adefa3310661e8ca884b7160b
d5d4a72c55e6ba3eadf985a7c1669e6fb4d4b55f2ca6b5a858def98f47d3ee2db55d4acd2ca15d3af
aead6d144c073f56091e28c233430cbc5626c5557518ff0032d62f3259db4badfe98b58b446fcb7ba
98b9f5a248a25b81a87a40426569c4a6f04e3fb9642b4ecab1cb793f322fa0d62ff00c89ab6b7a8f9c
f4cf3379aac12defa7b897483a65b0bb4b785c4d48392ca2016eca7d4e7f0bb7a7ea515643a5ea1e
668934ad4631e6eb9f295fea368be66b2d42ceee0bdb08d6ca742214667bb746b9f41aeda2678be
d7a47834b8aa868da06bfadf92ecff002e9749952d350d6fcc3a96a71f99ecef9ade7d31755b89eda
2b8705599ae3d68a501dff7891c9cfc31557f2acde69b4fca1b8f2679c2d678f57f26eb9a66896fa9cb
0cf141a969d6bab5a0b4bb85a61f1868a88df131e68c4fda18abe81c55d8abb15762aec55d8ab04f
caff00f79bcd54ff00a99f58ff00a88c55e771697e65d33cf716a7e44b4d4adad75ed72e9bcdfe50d6a
cda4d26192349bfdccd9de320113492470bf18e4759fd4fee9240c71542dbcbe7cbbf2659ea10e9de
6887cdd036936ff981633bcf12cd1c378ada9be960b9579197998ded4f16b6a469493d301541dd9f
3259f9df4fb4d72fbcc317e5eea5e62d45340b3b59b515bc934b1a0c723ac896f4b930ade24ad089
3e345fb34888c554bcb569f9b316a9a5e91e7abbf337ad1c7a7dd796eff4b87d747861bb99dedb54
9ebe924ed0fa4976d70b49233f03faaa71545e8b75e684f33f937cc3e6cd035f97cc9a0b798ffc5b34
56b797163eacb11101b30394524722a2adb7a22bc4847e2fcb1554d3b4af3d794fcf5e50fccbb9d3b
ebcbe6cface99e70b4d2b4ebb6be82df50adeda4f786477f86c6555b6fb0856295b8ad168157aafe5
f80351f3d536ff009d9263f4fe8fb1c559b62aec55d8abb15762aec55d8abb15762aec55d8abb1576
2afffd5f7f62aec55d8abb15762aec55d8abb15762ac57f30aee2d3fcbf16a3702536b65a96997372d
04525c48b0c57d0b3b08e257760a376e2a76c55027f37bc8229fe9f73f10a8234dd44fdf4b6db155c
3f36fc86d5a5f5cedff6add447fd8b62ad7fcadbf2216e02f6ed8edf674bd4986fee2db154a741f3bfe5
579661bb83436bcb586faee7d42ed069dabc9ceeee9f9cd29e70350bb1e4dd0138aa6a7f377c8a0
806e6ff007e84691aa95fbc5ad315533f9c5e4214adcea02bb7fc71b57ebff4898ab15f3c7e6df9175c
d124d234cbabdb8d446a1a533c1fa275452822bfb69dcb96b50142c60b9e54f877c559bffcad0f239
247e927a8ebfe89774ff9338ab5ff002b47c8fbff00b92936ff00973bcffaa38aad7fcd5f22a101b5194d
457e1b2bd6fd501c5561fcdaf2186553a8cf56d852c2fc8fa48b7a0fa71568fe6d79087fd2c27e84ff00
c73eff00a2f5ff008f7fbbc715546fcd5f22aa963a8cb41e1657a4efec20ae2ac17f2fff00347ca3a67f8a
2d2e9b52333798753b9510e8daacea61b997d589b9456ac28e8430dfa62acc7fe56ff92b7db58dba
ff00b80d6bfec8f156bfe570f92695ff0072f4e95fd01ad75ffa42c5529d4bf307f2b755d4f4bd5f50b7d5
e5d4f469249b4b9ff426bc8d0bcc9e9c8404b400f25f84f207e1db154d07e72791d8d01d5c9ffb606b
5ff6458ab7ff002b8fc8c4021b5620f7fd03ad7fd91e2abbfe56ff0092fc358ffb806b5ff6478aadfcafbbf
d243cdbabc50dcc365a86bf34f64d7b6b3d9492422ced22e622b948e4e3c91802577e38ab3dc55d
8abb15762aec55d8abb15762aec55d8abb15762aec55ffd6f7f62aec55d8abb15762aec55d8abb15
762aec55d8abb15762aec55d8abb15639a016ff1079b013b0beb6e23feddf6d8ab23c55e0faa7e77
6a3a55a7e6d8bed4f44b4d5fc8b3cf1797ac6e16447bb5834f87505f594dc02c6432fa23d3e342bcff
00c8c5597e93f9c5e558ed7cb361e65d56de1f33ebb169b1cb6f6e8fe9477fabc2b35bc0455ca7a9c
a89c8ff002f2239ad5545dcfe71f916cadafaeaeeeae618ac22b5ba75365726592d6fee4d9c13c71ac

65da37994c60f1ff2bec9562ab21f2d79bb45f3626a1fa29e65b9d2ae9ac353b2bb824b5b9b7b8545
902c914aaac0346e92237d974656538aa7b8ab1cd0abfe24f3557a7d66d29ff485162ac8f15762ae
c55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abfffd7f7f62aec5
5d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb1563ba07fca43e6bff0098db6ffba
7dbe2ac8b157974bf94ba849a5fe66697fa7e354fcc79a799a5fa8d5ac3eb3651e9f205067a4bfb98
94a93c3f7956dd7e0c550fe57fc9ad43ca9ac1d4b4ff00339105edbe9d1eb76ffa3e12f35c695691d8
a4d6d348eed6fea430c4b2a7ef7e25e7198d9b1560be70fc90f34e87e58d5f51d2b5c9fccbe61bbb5
b0d39a25d3e31737260d6935017534826ac92a7391a5dd564002a08f65c55edfe55f2bfe83b9d675
9bbbafaeeb7e62b98ef351b8588db463d0b78eda18e388b395548e35af266667e4dfe48559262ac7
342ff009493cd5ff31369ff00505162ac8f15762aec55d8abb15762aec55d8abb15762aec55d8abb1
5762aec55d8abb15762aec55d8abffd0f7f62aec55d8abb15762aec55d8abb15762aec55d8abb157
62aec55d8abb157975d7f88bfc61e66fd13fa7beadf59b5e7fa17f40fa1cfea36f5f53f4a7efb9d29f63f
77c78d3e2e58aa397fc63dffc5bd3bff84fad7dbbe2adc5fe30df9ff8b3aedcff00c29e1db862aa83fc5b
e8effe29e74eff00e16e75fa3e1afe18aac97fc5feaaf0ff0015f0a0af0ff0a70ebdf97c5f762a873fe34f5
b6ff1870af6ff000870a7d3f162ab1bfc6fc4d3fc675a8a53fc1b5fa2bb7df8aa65f97bfa43ebfe67fd29f
5ff00adfd72db97e96fa8fd6b8fd4a1a57f46fee38f853e2fe6c559d62aec55d8abb15762aec55d8abb
15762aec55d8abb15762aec55d8abb15762aec55d8abb157ffd9084001082400000018000000021
0c0db01000000030000000000000000000000000000001b4000004000000034000000010000000
2000000000000bf000000bf0000af4300000b43030000000000008000000080fe7fe943000000800
0000080feff38432100000008000000620000000c00000001000000150000000c00000004000000
150000000c000000040000005100000098c300000000000000000000d2010000b8000000000000
000000000000000000000000005e0100008b00000050000000280400007804000020bf00000000
00002000cc00d3010000b9000000280000005e0100008b00000001000800000000000000000000
00000000000000000100000000000000000000ffffff00fcfcfc00fbfbfb00fdfdfd00fefefe00fafafa00d9
d9d900484848003939390028282800383838002a2a2a002b2b2b0046464600414141003333330
0363636004e4e4e003f3f3f003c3c3c0043434300424242003a3a3a003131310032323200292929
00272727002f2f2f003e3e3e00232323002c2c2c002525250035353500222222002121210075757
500cdcdcd0082828200d4d4d400dcdcdc00d7d7d700d0d0d000dadada00d6d6d600d3d3d300ddd
ddd00d8d8d800e2e2e200e5e5e500e3e3e300dbdbdb00e1e1e100e6e6e600dfdfdf00e4e4e400e0
e0e000eaeaea00e7e7e700e9e9e900e8e8e800ebebeb00ededed0079797900f6f6f600f7f7f700f9f
9f900cccccc00939393008585850091919100f8f8f800f3f3f30084848400cbcbcb0098989800f5f5f5
00efefef00a0a0a000f1f1f100c9c9c9009a9a9a00b8b8b800a5a5a500b4b4b400aeaeae00a2a2a20
0a6a6a600c6c6c6009f9f9f0099999900b5b5b5007f7f7f00f4f4f400afafaf00acacac00bcbcbc00bdb
dbd00ececec00bababa00d2d2d200cfcfcf00bfbfbf00aaaaaa00b6b6b600c8c8c8007e7e7e00adad
ad00c5c5c500c2c2c2007474740090909000101010008a8a8a00f0f0f0009c9c9c004f4f4f00d1d1d
100c3c3c30037373700ababab005e5e5e0096969600b9b9b9008181810077777700cacaca008d8
d8d00767676000d0d0d0009090900838383002d2d2d008b8b8b0094949400636363004d4d4d00
b0b0b000575757005858580071717100f2f2f2008c8c8c004a4a4a00131313006b6b6b008686860
0929292003b3b3b001b1b1b001c1c1c00404040005a5a5a00a3a3a300626262005b5b5b007b7b7
b00c7c7c700a7a7a7005d5d5d008f8f8f0095959500080808009d9d9d009b9b9b006f6f6f008e8e8e
00b1b1b1005c5c5c0088888800505050007a7a7a00444444001f1f1f001e1e1e00eeeeee006c6c6c
00040404005454540016161600525252000b0b0b0080808000d5d5d5002424240018181800141
414007373730047474700a9a9a900a4a4a400a1a1a1000f0f0f002626260011111100020202007d
7d7d00666666000c0c0c0064646400010101001d1d1d000e0e0e000606060030303000b2b2b200
b3b3b300b7b7b700343434005f5f5f00686868001a1a1a005959590053535300707070008787870
0c1c1c100c0c0c0006e6e6e007c7c7c004949490069696900202020004b4b4b001212120019191
900bbbbbb006a6a6a00070707004c4c4c00a8a8a800dedede00cecece00979797006d6d6d00787
87800c4c4c4003d3d3d0045454500727272001610000026060f002220574d46430100000000000
100000000000000080000000020000000a0000000000100656565009e9e9e002e2e2e000a0a0a
00bebebe001717170051515100616161005555550056565600050505008989890067676700030
30300151515006060600001010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
0101010101010101010101010101010101010101010101050186a8f7f0e3efef80ab6e805cc4abef
8cd63fb6269245a55c71fb71a645808e85456eb0a580495c24e3f087fca5ebe3fcc7dda591ff98fcdaf
92b01020101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010000010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
0101010101010101010101010101010101010101010101010102863d010504030501010404010

489

10501010201010501020101010101010101010101050101040105050501010101010101010101
0505010501a464050503010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010100000101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
101010101010101010101010101010101010101010101010101010101010101fb3704010101010
20101010104010501010101020101010505010105040104010102010104010501010505010101
0501010101050401040159b704010104010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010000010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101018634
01050101010101010101010105010104010301050105050106010201040301010401060101010
1040102010101010101010101010101592d010501010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010100000101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101018634010501010101010101010101014002010604010404010148010501040101030201
3253be360542014001010201010101010101010101592d0105010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101000001010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010186340105010101010101010101010401010101010401010501010105030
102010142014218b0060105050101410101010101010101010101592d01050101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010000
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
1010101010101010101010101010186340105010101010101010101010206015d050641010205
050505030105010304010105dca68d0201050204010601010101010101010101592d0105010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010100000101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010186340105010101010101010101014f7dbcbb340
185dfd55b03eb0eea25014b8f7fa9fc659fd07f2428010301010101010101010101010101592d0105
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010100000101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010186340105010101010101010101010255c
b6d014031ba9f03f7f5e66b7c25f57f760cfc38b4ef4fe2d53b0103010601010101010101010101592

d0105010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101000001010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101863401050101010101010101010
10166c23304010118b040c6590142022febc406e54e01dc460501ed5b014701010101010101010
1010101592d010501010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010100000101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010186340105010101010
1010101010101e2c0e70347411f8c48907a9d2ae7010449991f4e04aae90501ac4e060102010101
0101010101010101592d010501010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010100000101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010146320504
050101010101010101010161c3f09cebbb908c048ac7f10ee106442e4c1f51018f7f013890d80105
010201010101010101010101bfb701050105010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010000010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101014
63201010505010101010101010101d9f3603a72341fb0012793630e8004449168f643071adf9321
9a0301470501010101010101010101014e2701050101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010000010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010105a030010101040101010101010101015270340301010c8c01064c6d2d0205032855e701
422834656803010101020501010101010101010105f12d01050101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010000010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
101010101010101047f3401010104010101010101010101cd005801477296d1030101480101050
103420101060104010101420105050101010101010101010105a3640101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101000001
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
1010101010101010101010101047f36050105050101010101010101af3f979c28057114792a0103

491

010101040301010606010105010301010501010601010101010101010105a3640101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10100000101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
010101010101010101010101010101010105a0340505050101010101010101010640424f01063e
028d8d0101010305010103040106014001050401470103050101010101010101010105f12d0105
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010100000101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101050144310105050101010101010101010102
01020605040101050502010104010101010101030101010105010106010201010101010101010
1014e270105010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101000001010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010501e93b01050501010101010
10101010101050102010301040101010501010402010301050101050501030104010204010101
01010101010101bfb7010501050101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010100000101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
101010101010101010101010101050101018d01d95f57785fbd676b6bbd556b5f6b89a7895e7889
6b6b5b68cf6168cd8954cd61cfce547b66d961637b63e27b63607bce547b7bcef77a539ea76b5fbd
579e675f78bd5f67bd675f5f78bd9e5f5fe657bd5f78bd9ee66767e6e667bd676bbdbe676bbe7878e
69e7878e6e66789ea9e6469644a642ae865642d75e8437e436464437e43257e4a9d76587e509d
9d589d697e25e8d86c507e50696969757575757575757527753c01020501010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010000010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
010101010101010101010101010101044201013daad48c9c5c7dea91a5bb6ebbef6eeb3f3feb9ca
b8cdd919191efea91a57de3c5fc8ca591f09fd49bf7fcd48b8b988ab2f8d4aad474b288aac983a44b8
6867a5a5a5aa144939386a186937a4ba18e9249837c45fb71b6efdadb8e837d26496ec4a98085a0
4644867f26db931795e5df0e8f8fdcbcee0e08dc080e0eacee0808eeac0e15eebc0e150f0f1515160f
0f16acee0eac0e08dcbc0ebc0808080808080808080811f70301010504010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101000001010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101040101410139490104010105020501010101050101010101010105
0305050401010204050101030504050505040401010501010105050101010405420105dae7010
10504050101010101050101010105050101050201010101010101010101010104010103010103
010105040101010101efbe424c0206474247474742064247030306060606030303410606030406
02060606424206060303020203424206034747474747474747015bf00103050301010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101000001010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010135850101050606010101030101050505050
40203010101010101010102010105010601040501010101010102010105040101010301010101
01b02a05050101010101050101010101010101040101040205010505020305010101040401050
301014201010504020501010101dd9e0105010105010101010101010105010104040101050101

040105030103050505050505050501010101050501010101010101010101044a9a05010102010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010000010101010101010101010101
01010101010101010101010101010101010101011610000026060f002220574d46430100000000
00010000000000000008000000002000000080000000000100010101010101010101010101010
1010101010101010101010101010101010101010101010101010101020401013a460301010101
01010105010101010101010101010504050404050501010203040104010101050501010104010
10504010104010104040601ef64050101010101010501050505010105050501010101010101010
10101040401010101010101010501010101010101010205d65303010405040501010105050501
05010105050101050101030501050101010101010101010105050101050505050505050505050
50542d98705010205030101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010100000101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101050101013183
06020501010105010101010101010101010501050405010101020103010101010505010101010
101010101010101010105010405010101da2d0101010505050101010101010101010101010101
05050504020505010101010401040101040501050105050504010101018cbe0301040101010101
01010101010401010505010104010605010101410105050505050101050101010101010101010
10101010101010161870301020104010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01000001010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010504
01020139450101010501010101040101010101010505050101010101050443dd9332040206010
1010502030205010505050404050504010104010103da2c0101010505010101010101010101010
1010101010101010101010105030401010501010501010101010101010101010201a557010101
0401050505050505050501010101010101010502014da12476470101010101010101050505050
505050405050505050505050658e3050104010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010100000101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101053ba0050105050501010101050501010101010101010101010505057222850
10301010504010101010101010105050101010101010101020102ea6501010101010105040101
01010101010101010101010105050101010101010105040101040401010401050101040101010
5efbe01020101040101050101010105010105050505010101014c0126bc3b01010101050505050
50101010101010105010101010101010101438701040101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010000010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
010101010101010101010501053a93010105010101418d322c5d01470105404c01010101326203
05061773af40010301014f030102014c3e03010172484f0101425d478d0101ea2d0101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
010101058cbf0101010101010106afaf01020101054701040201013d0105019ea80248010503014
14701050401030601050641400502014101040601ec87010505050501010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010100000101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010105010101013c930105010403015615be53ff5e0206b00d1299064cef5a
5e718d01f2d489c4890107ac0bf94304ce0eeb4912a7cf085040014f7dcc46480124650101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010105efbf0101010501417d91443f92030133bcbca972014ad14b85b701e91b5ceb5a0105
461013730101c414ebeaebd9df913d0101e2e5e56301ec87010501010501010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010100000101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010105010101013aa6020101400105bb564005cd2040711b4a32532ba5
df47056a7c0184560164083516ed642a466d0a4402d9ba2902c53701020188ad3e0101b0b70101

493

01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101ef5601010105012d092c014d105a401ff869bdcfe7de4401611a3a67ed395dc
7897efa4569a0ce56b96d2be5b24099ab0104013d009a5d056cc70105010105010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101000001010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101050537fb060401010142434701018ec35d8a6f040501
37c3a4050157ed4211560205d29c1c32060140cd1c72013e183101e2bbbd5f53c2a5010301dd2c0
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101ef5601010105052d6d010201848066e14f01414026ad8d0237b154a4d4
02015a0fd29a01010430f2c40106eb8c4001d2634a6486c23d040558c7010501010501010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010100000101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
101010101010101010101010101010101010101040535fb04010101060103013ca0e4c506f79e01
0140afba6701025a094117bf0105dc5cd0ce7b5e6343170103621e350630138024cc9032010101d
26401010101010101010101010101010101010101010101010101010101010101010101010101
010101010101010101010101ef56010101050501010427b4c860691b020505018008010162c3a7
539b010559229bd26158663aed9303017dab01047a0febebfa9b01030158c701050101040101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010000010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
101010101010101010101010101010101010101050105013b850101040102010561de82260501
e2260634e53ae3eb013ebc493070ef31a4c02cb6533db2144ffc7e016c0d3201034e2501217f0101
0201dd75010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101ef560101010501044292000abd01af982c0373532bed280155
002da010327213f95b886c99b1765eb00501f73f040135a9012c706c470401ec870105050505010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101000001010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
1010101010101010101010101010101010101010101050105013bfb0106010101024ac0eee801af
04049ebd932401408699d73f0560d43fdd19a406329c44f76502384967912062050165a5cef53304
010306d2070101010101010101010101010101010101010101010101010101010101010101010
1010101010101010101010101010105efbf0101010501056f812648014005275c59ac55044b6e53
79bd04d2138098ee3b016f4e6ee30301866f781a6e010101db25dbbc03010101d8ff010104050101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010100000101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
0101010101010101010101010101010101010101010104010501354902010104010373fe020503
49620404484d010401043d7201050106010641050105013901050103013b3d103a01060180ca91
0201040105b064010101010101010101010101010101010101010101010101010101010101010
101010101010101010101010101010101058cbf010101010101148c0102275b04015de74801014
23eb74204010403013101040601383401050501333e6ebb0205012e79c2a401020504667901010
40501010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010000010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
1010101010101010101010101010101010101010101010101050202010137d70101010102012b
09763cb69a410105010405010104010105050501010401010101010105050101010176203c0101
012bf5630201040401d62a01010101010101010101010101010101010101010101010101010101
0101010101010101010101010101010101010101058c99010101040504ebd24fe7885b05010101
0101010101010101010101010101010101010101010104018df9d601010104eeae4f0103010263f
c01030101040101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010100000101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010205013dd75d0102020
10201767aa3a3cd0102020101040101010101050104010105010101010101010101010505896e8
d04030101525d010501050491b701010101010101010101010101010101010101010101010101
010101010101010101010101010101010101010101010101d6570105010201013351467a26360

50101010101010101010101010101010105050505050505050501040791850301020168590102
01040163c702010102010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010100000101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010103050101053a71
01020101014706014203010401030101040305050401040401020101040101010104040505050
504040142010105050404010401010101d6b70101010101010101010101010101010101010101
0101010101010101010101010101010101010101010101010101010101a556050305050106010
50601400105010101010101010101010101010101010101010101010101060405018d42014701
0401030106010506f4ff01010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10000010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
4040262a005010101030105030101020101010201010101010105010101010101040101050501
0101010101010105014201050105010104010103028c6401010101010101010101010101010101
0101010101010101010101010101010101010101010101010101010101010101033f5701010205
01010403010101010105050505050505050101010101010101050505050505050501030605010
14201014701010101010105d8c7050102010501010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010100000101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
101040105010139a844466f7a4bf186a186e98673a15a469956a4579e4e4ebe56a35653565956b
ebe57be99bf59a373a4a4e9a456bf4b4e4e4e5959a4564e57df2f01010101010101010101010101
010101010101010101010101010101010101010101010101010101010101010101010101a5b05
e5ebd5e67786b6778bdcd6b9e6767676767676767787878787878787867676767676767679ebdc
e9e6778576b78e667e6bd67576b67b68701050102050101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010000010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
0101010101010104010162915e54cf5bbe55bd63cd89675959cda761cd896060cd555e9ef15f6b9
ebf59f173734e59a3a4515a5a5a5951bf935abf59f173f1e97373a30e29010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
b09fa4a3a456a3565a444e7373a459a3a3a3a3a3a3a3a3f1f1f1f1f1f1f1f1a3a3a3a3a3a3a3a3bfa4
a4a044595aa64644e94b6fa6a0a6459af905020101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010000010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
010101010101050401033b4601010501040101010501010301010401010601010101010103010
1010205010101010505050501010103010102010102030104020101026e2d0101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
101429ce6010102010101050101020101420101010101010101010101010101010101010101010
101010301010105050402050501010103050301e2da0101050103010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101000001010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
0101010101010101010105040101033a7f04050105010601060104010401030501010101050401
010101050101040101050501010101010105050501030101020101010301010104bb750101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101da9901040101010101010205010401010101010101010101010101010101010
1010101010101010501060101010101010101020104020105a7c74201040401010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101000001010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010401010135fb05010105010501030101050101050101060
401014201010401030103040105010501010501010301050101020101010501010501010201d2
27010101010101010101010101010101010101010101010101010101010101010101010101010

495

10101010101010101010101ef99010501010105010105010101040104010142050104010103014
70105050505010101420101030101050501010101010105040101040352d10501010405010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101000001010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
0101010101010101010101010101010101010101050101013a7101044c01010101010201020101
04010101010142010301010101040101020201010505010202010101010401030304010301060
1420101b064010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101ef99010501010105010201060104010101030301010501
0106010301035d0501010301050101040147010101040102020101040104010101e2870101010
40501010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101000001010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
1010101010101010101010101010101010101010101010101050101013a7f01010101040102060
10301020101040102050101010205010142010405010101030105050105040501010601020106
0101020101020106dd27010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101ef99010501010104050103050104010101010
30103020106010148a9b0540202010203050148010401410101060101010301010401010101cff7
05010105010101010101010101010101010101010101010101010101010101010101010101010
10101010
To gain access to ScopedE, ThreadA must first move to ScopedA (using executeInArea), then enter
ScopedD followed by ScopedE. The resulting cactus stack would be
010009000003c4d6000000007f5b000000001610000026060f002220574d4643010000000000010
01dd7000000000800000000200000c0d40000c0f40000010000006c0000000000000000000000d
2010000ac00000000000000000000006a400000d117000020454d4600000100c0f400000c00000
0010000000000000000000000000000000005000020030000c40100001a0100000000000000000
00000000000e3e306006e4e0400460000002c00000020000000454d462b014001001c000000100
000000210c0db01000000600000006000000046000000283c00001c3c0000454d462b224004000
c000000000000001e4009000c00000000000000244001000c00000000000000304002001000000
0040000000000803f214007000c0000000000000008400005743b0000683b00000210c0db01000
0000000000000000000000000000000000001000000ffd8ffe000104a4649460001020100480048
0000ffed089850686f746f73686f7020332e30003842494d03ed0000000000100048000000010001
00480000000100013842494d040d000000000004000000783842494d03f3000000000008000000
00000000003842494d040a00000000000100003842494d271000000000000a000100000000000
000013842494d03f5000000000048002f66660001006c66660006000000000001002f6666000100
a1999a0006000000000001003200000001005a00000006000000000001003500000001002d000
000060000000000013842494d03f80000000000700000ffffffffffffffffffffffffffffffffffffffffffff03e80000000
0ffffffffffffffffffffffffffffffffffffffffffff03e800000000ffffffffffffffffffffffffffffffffffffffffffff03e800000000ffffffffffffffffff
ffffffffffffffffffffffffff03e800003842494d040800000000001000000001000002400000024000000000
3842494d0414000000000004000000023842494d040c0000000007070000000100000070000000
2a0000015000003720000006eb00180001ffd8ffe000104a46494600010201004800480000ffee00
0e41646f626500648000000001ffdb0084000c08080809080c09090c110b0a0b11150f0c0c0f1518
131315131318110c0c0c0c0c0c110c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0
c0c010d0b0b0d0e0d100e0e10140e0e0e14140e0e0e0e14110c0c0c0c0c11110c0c0c0c0c0c110c
0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0cffc0001108002a0070030122000
21101031101ffdd00040007ffc4013f0000010501010101010100000000000000030001020405060
708090a0b0100010501010101010100000000000000010002030405060708090a0b1000010401
030204020507060805030c33010002110304211231054151611322718132061491a1b142232415
52c16233347282d14307259253f0e1f163733516a2b283264493546445c2a3743617d255e265f2b
384c3d375e3f3462794a485b495c4d4e4f4a5b5c5d5e5f55666768696a6b6c6d6e6f637475767778
797a7b7c7d7e7f7110002020102040403040506070706053501000211032131120441516171221
30532819114a1b14223c152d1f0332462e1728292435315637334f1250616a2b283072635c2d244
9354a317644555367465e2f2b384c3d375e3f34694a485b495c4d4e4f4a5b5c5d5e5f55666768696
a6b6c6d6e6f62737475767778797a7b7c7ffda000c03010002110311003f00f55492492529249249
4a49249253ced788f70a9d43318d46aaf7d76e397bdaf80e7bf754c6bbf4ad77f84ff83b7fe0ac7fb0e
6932eab1983421adc670771ad6fb0d5733e97f84ad8aad8ce941f59cca58cca7d55d85e2fbd85e0b
2ba039be853eed8daa86ffc0fabff00763f49730fabe3625356163358fd8454d6eeb0b8b89e5fbb16b
6fbdefddff5c494e97476ede9f5b0c4b5d635d0dd82458f6bb6d5fe0dbbbe8d7f98aeac9af36cc4c236
3d8c86bb26dbcee790d0cb9dbf66ca9efb3f9cfdc627b3ae575160b2dc569b2364dce874c6dda7d1f
cfdcdd8929d549656375da2ff007efabd06bfd2b2d0e7001c41d9b7d4aeb6d8db1cdd8cfdff00cc5a4

2ea8bb687b4bbc01129299a4b3ff6f74798194c31b7893f4c0755dbfc2b5dfa3fdf56713371736b759
8b60b58d76c2e131b800e8d7fac929fffd0f46b5dd70d80d03145403a77bac2e907d8df6b76ff005dff
00f81a2e31ea5b5df6b6d25f2367a45c0447bb76f6fef21fec5c0f48d4585ec3e9fb5e4bc0f48efaf6b2
cdcc6a4de9188d6b1ad3635b58dac01ee0000d7540437f91624a4ceb32839e0d6d6d42b2e0f0e93
bff007766dfdd59f65d98cb9edacfad4ed06ab3d7630930ddcd7fb5df49ce76c7315a674ac7a5c6eab
7bad0c2d05ce2e265adaddbdeff007d9bfd1a777a8fff00035aacec671bacba97dd48b58d6fa7e887
3585b1ef60b1aedbf9dbdbf4125356bcbeb371a4fa2286b88378764b5ef6b486ba1a3f43b6dd5ccf7
7f845b98ee9c7addbb7cb41dc759d3e968b09f896d6ca4e6e664d8eae4b9cca3634986c93f66657e
d6bfdd4fabff827e937ece3e43051582cb1b0d6e86b70234ee03525397896f526e3e3318cbada4e3
d4e6db5baa03716fbeb78b2b6fd1fccd9ff006e7a9b2b4d4e67557e3d6fc7c5b9ac7069adae7541bb
086b9bb7d3ab757f4f6fbdbecfcf431d3deef4dd4e4b686b830ba8fb236d886318f66f876df7d573bdb
ecf7a7b7a5663e0d79a187f3e701a43a5c1d3a358f6bf67e8fe9fe7a4a4f49bfecf59a26eb03b24438
b3dcdfb4b1b617388f4f77a7b9e93ecea42c638607a8e68203fd6a06d0e734d9cd5f45fb77ffd6d4b2
31e838c2a7346302cc9f4ec35cfa41d6376d9b7dbe9fb1dbbf3106de9b90e7d6597b18d68fd2c6134
ee20b36fb5cc77d267a9bff49f4d2536aa392fc9a5b914fa2cdf006e6383c9aeedff00cdb5aed8dfe5a
b0fafa9fdb0bebb6afb21f4c7a6f692e105febb9af696fbac6babd9bff7167f4cc418f94c2ec8193617be
48a7d3db21fceafdbb1d5d95d6cafd2ff0bfce7a5fa2dc494d0aa8eaac0e0ebeab27e897b35102cff45
e8fd2fd07fe0c9acabae39a432ec761f6ed7358efdd8b77b5eeb3fc2fbabfe42d049253ffd1f5549249
25292492494d6ccc776437d335b2da9ed732c63dc5b20edfdc6bff007550b3a1d163db63f0e97399
c4daf3fdadde9ef5b0924a7268c27e1de1b85898ec7ed1bc9bac92d06cf4dbb8d366ed8fb6d557fe7
6e306b8bdd8f5ec73585afb2d0edcf6fa95b5acfb2973b7356bbffa59fa5fcd8fa3fd6283d47fa19fe63
e955fcfff0037fce57ff4bfee37fc37a49291640cdc8bdb8d918f43abba9b5ae68b9f044d3b9a7f576f8
a159d031ed7d4fb312a73a8115cdd61fddf76e35fa9bbd9fbcaebbfe51c7fa5fcd5df4bfad8eae24a73
707a5b712d61aa8ae8630104b2c7bc91ef2d67e91adf6b5f6d8fff00b73fd2bd6924924a524924929f
ffd9003842494d04060000000000070005000000010100ffee000e41646f626500644000000001ffd
b008400040303030303040303040604030406070504040507080606070606080a080909090908
0a0a0c0c0c0c0c0a0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c010405050807080f0a0a0f1
40e0e0e14140e0e0e0e14110c0c0c0c0c11110c0c0c0c0c0c110c0c0c0c0c0c0c0c0c0c0c0c0c0c0
c0c0c0c0c0c0c0c0c0c0c0c0c0cffc00011080082015e03011100021101031101ffdd0004002cffc40
1a20000000701010101010000000000000000040503020601000708090a0b0100020203010101
010100000000000000010002030405060708090a0b10000201030302040206070304020602730
10203110400052112314151061361227181143291a10715b14223c152d1e1331662f0247282f125
43345392a2b26373c235442793a3b33617546474c3d2e2082683090a181984944546a4b456d355
281af2e3f3c4d4e4f465758595a5b5c5d5e5f566768696a6b6c6d6e6f637475767778797a7b7c7d7
e7f738485868788898a8b8c8d8e8f82939495969798999a9b9c9d9e9f92a3a4a5a6a7a8a9aaabac
adaeafa110002020102030505040506040803036d0100021103042112314105511361220671819
132a1b1f014c1d1e1234215526272f1332434438216925325a263b2c20773d235e2448317549308
090a18192636451a2764745537f2a3b3c32829d3e3f38494a4b4c4d4e4f465758595a5b5c5d5e5f5
465666768696a6b6c6d6e6f6475767778797a7b7c7d7e7f738485868788898a8b8c8d8e8f839495
969798999a9b9c9d9e9f92a3a4a5a6a7a8a9aaabacadaeafaffda000c03010002110311003f00f7f6
2aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55867e6d161f96
de65e25872b291495254d18853b8a1dc1c5529f33793bf28bca9a68d5359f2fd9c704b716f656e91
c5ca496eaf665820890547c4f23aa8a90a3ab10b8abb46f22fe566b70dccabe538aca5b1b97b2b98
2f603048932056dbe22acac1d4abab32b03b1c55343f951f9665f81f2e58fa8472e3c4834f1a57155
cdf959f96cd527cbb623d31f1109c683aee4118aa51e66f25fe53794b40bff32ea7e5bb66d374e85a
e6e05bc46490c6bb92a9c872a0dfe58aa517ba67e4f413ebb15a7945b55ff0d2ff00b9c974fb469e3
b794422e0c20975f52611b2b3451091d792f200b0c5534f2469de5cd3fcf1732f952d12cb46d53cb9
a6ea291441915ccd737455ca9268dc283157a6e2aec55d8abb15762aec55d8abb15762aec55d8a
bb15762aec55d8abb15762aec55fffd0f7f62aec55d8abb15762aec55d8abb15762aec55d8abb157
62aec55d8abb15762aec55867e6cff00e4b7f327fcc1bfeb18aab7e63e9171af7969f455f2fdaf99f4d
be9e28758d1af245844b60c4fa8d13b15512c678bc752bf12fda46a3aaaf26d33f2ebf32f4f834c4d5
ecffc5de56b7bcd62d6dfcb3aeea4b25fd9e93a9456f1dabcd774912e24b731ce9f13bc896f7144924
913755387fcb7f337e9774bf8a0f413cc16daf47e6513293168f15ac70cfa5b072262bc55e0008f45e
07f51cac9c931579bf943f2e3ccbaf7e5f795fccfe47d3a2b158b4ad2d351b18afa3b6ff112dadf4772e
5e6839aab2c68eb1b4e39737f4a4022df15649adfe5379c0797352f2f699e5c8afb49d5f406d3b48b
0bed505cc9a25ffd6a7ba6679ae2bc84deac753057d26812345f4b8be2ac99bc9fe7cf2b693f983e5
df2f69d25fa79c6f351d6b43d66d2fe3b49f4fbfd5615e49706578e40b0ce39c72c3ea9317c3e9af1e
2cab24f2769da8691e70b5d2b57b8fae6af65e50d26defeef9bc9eb5cc57172b2c9ca4a3372705aad
be2af48c55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abffd1f7
f62aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb15762aec5584fe6ff3ff009
563e69f4d8249f50978391c82b6d4256a2a01ed5c552fbdbdf35e9dac59797aff00cf7a4c1adea8aef
a75936892092758fed98c7d7cf2e1505b7f846edb62aa7a05ff009a7cd4b7737973cffa56a10e9f72f
637c61d11c88aea134921726f851d0eccbd57be2a9b3685f993246d1c9e6dd31d5aa195b4362a54

497

8a1047e90df1575bf97ff30ad62105b799b4a8615af18e3d09d14577d82ea0062aaa747fcc934a79a
f4c02807fc7124ad7c7fe3a18aad3a37e65d6bfe2cd300df6fd0727fde47154a7cb96baf5afe696a89
e60d46df53b96f2fd91866b5b46b1548febb77552ad3cfc8d7bf25f962af47c55d8abb15762aec55d8
abb15762aec55d8abb15762aec55d8abb15762aec55d8abffd2f7f62aec55d8abb15762aec55d8ab
b15762aec55d8abb15762aec55d8abb15762aec55857e6ed4fe5a799c0ebf51929f3db1548bcfda5
6b17ff9a9f97379a72dec1636316b697faa59dbacd1db9bc82048564692391143b211d3b7ec8c55e
43a268bf98fa3dadee9ff0056f31d8f97757f37f9b6ef56bfd32d08d4d85f3c7269776b1a7a4c237a4bf
120f4d24f4fd64f4eb8ab26d7af3f326dbcc135ca26bf69a6dbdbdf5b6a37973ba3429e5cf560b957b
6616d10178b42234775b8f50b4ab13a478ab2afc974f31cef16af3de6af75e5fd4bcbda34f75fa71a6
763ae346e6e5ed85c51d5190a19428f419f8987f6f157b062aec5585c03fe42d5f1edfe1cb3affd275
d62acd315762aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb15762aff00ffd
3f7f62aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55847e70c8
22fcb1f3448416e361210ab4e4c76a28a902a4ec37c55127cf17a2bff3a76bfb7fc5367ff6578ab5fe3
9bda57fc1daff00fc89b3ff00b2bc550ba8f9a3f4bd85ce95a9f91b5db9d3ef22782eade482cca49148
0ab2352ef7041a1c55ad2fcccba369d6da4e95e46d76d74db18d60b5b68e1b3091c4838aa28377d
146c062a8cff1c5f52bfe0ed7ff00e44d9ffd95e2aeff001bdf7fd49dafff00c89b2ffb2bc5528f2eead36b
3f9a1aa5c4da5dee9462d02c5045a82c48efcaf6ecf25114b28a6ddc8c5595f98fcc7179762b02d67
717f73a9dda5859dada7a424699e3925dccd2448005898925b15417f8a35ba91fe0ed5a9e3eae99f
f0065b8ab879a35b35af93b561e1fbdd337fbaf71571f346b94dbc9daa93e1eae983f5dee2ad1f346b
94a8f26eac7dbd6d32bff0051b8ab879a75d35af937561e159b4cfe17b8aae1e67d70ff00d31faa03e
f369bff006598aa23cb5e69b7f323ead6e96573617ba25e7e8ebfb5bb1172598dbc3720ab4324aac
a639d0d437b62a9f62aec55d8abb15762aec55d8abb15762aec55ffd4f7e8ad37eb8ab78abb15762
aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8ab09fcde0a7f2d3cc81c547d50e
defcd69f8e2ad7e6c43aadef93e5d2b40d62df46f306a3736b6fa5bde3cb0dbdd4eb2acc6c9e48489
235b948de12f19e6bcfe1a9f84aaf36f29fe66ca89fe0ed06d3fc3be6fb8bdd652ef4ef35decba85a59
5f68d0d9cb2d9dbdc23d668654b959627570218fd46f4be0f47156443f3635db8d40dcd9da594ba3
43e62b7f285cd883235dfd6eea18dd6f239810ad072955953d1e4f6ffbfe6bfdde2ac620fcfaf375a69f
a05debba7694079c2cac2e747b8b6925486c26bebc8ac8a5e19dd43a96995a3656879b2b45b7f79
8aa0bf327f30fcdfadf903cdde5c69f4dd13ccfa0f97e5d575d96d6e269b9d6e67b78bea535bcf1185d
7eafea4bcda5f4de44b760d53262a98e87a46afad7e6179fa28eca7d474db1f33d8411df7e9ebeb59
6c6de5d334fb997d0b442632aaf23cbc79a86e6c389028557a85b8ff90ada89ff00bf7ac3fea36f315
779e6bfa4bc93415ff9d823ff00ba7df62a937e6f6b5e70f2fdae91aae830decfe58b69e593cddfa0d2
19f5b8ec8447d296d619d24591124a19d155a631ff00740ee3155be50fcc56d5f49d2e2d1257f3c32
dbe9d71a9ebd6621b356b7d564610ce217f4c1658d7d59a3509c107c3c9ff00778aa5d7ff009f361a
7e8cbe606d06ee7d2f50d2efb5bf2f3432c3ea5edae98f189d5964282193848268d0b3738f97c4b20
e18aabcbf9d3245aa6a5e563e56be93cf3a699273e5f8248e779ac12149d6e629a3e48798916354
6e27d6f81f8a7ef3154179abf32756bfd4fcb56fe595b8d3f4d3e69b0d075db897d1498bdd593dccb6
ad0c88ec38078b93ab291282bf1286c552cfca6f30f9c3cc11797ef757d5f5eba9ae2ff588af679ed34
ffd0f35b69f73756d1465e1863911d8246caca77746aecd8aa6fa7f9efcbbe47f3079e4f986ed62bad
5bcd096ba3592106e2f275d0f4e731c41caaec012ccecb1a7ed3ae2acd74af3ff00972eac52e754d5
b4ab0bb62fced5352b7b9f4c063c433a955e5c68582d555be10cdf6b1546379dfc9882ade61d3403
e379076ff678aa2f4ef31f97f579ded74ad56d2fae6305a486da78e67551404908c481b8c552af3379
a6ef4ad634bf2de916b05debdabdbdf5e5a457739b584c7a72c5cd43849096669a30001f0af393f62
85563cbf99ba87e915d3a4d26159bfc416de5c900ba2e035de911ea8240cb151b8b3fa440d9947a
81bf6315496c3f37fcdf7b6de59b86f2bd843fe26b3bed4e056d5266f42d74c585a6f538d96eec243e
985d8fc3c996a78aab93f397cc12e95a4eb6be5168b4bf315e6896ba15cdcdec3189535d90c7c9d2
213b0f441473b71903d15832e2a89f227e686bbe77f33e9f66b636d61a4fd4f5b1aa42647967fafe8
bab0d33942fc541898a338e4aadf16ff67755eb18abb157ffd5f7f62aec55d8abb15762aec55d8abb1
5762ac7356f3f792f42be934cd5f5db3b3d4220a65b59665595038e4bc97a8a83515c5507ff002b4ff
2e6bc7fc4fa7d695fefd69f7e2ad0fcd5fcb835ff009d9f4fdbc67518abbfe56afe5c74ff0013e9ff00f23d
71577fcad6fcb8dffe767d3f6ebfbe5c5560fcdafcb63d3ccd63ff00233fb31570fcdbfcb52cabfe26b1a
b10013250549a6e48a0fa7156678abb1560df9c722c5f963e6591dd5116d0967721540e6b5a938a
a6fa8ea9e45d660fa96ad7ba4dfdb46eb2fa17335b4c8b2c47923f176346522aadd54e2a96cd67f94
d75630699751797ae34eb49cde5b5aca2ca48a3b924b19955aa0484924bfdac5518f73e4393507d
5e1bad206ba4144d479db34e1821404b060c4aa9e3d7ecfc3d31563be52f2b7e5af97bc9b0792ae
eeb45d66cd6da3b4d41ee12cf8de47092c9ebc5c9958826bbedcaad8aa6b73a4fe52dedada5a5dd
9f97ae2cb4f89adac60963b278a085c82d1c6a410a8481551f0e2a8ed326fcbed1ae6eee7489b48b
1bcd45965be96da4b68a4b8741c55a42a4172a3605ba0db154b34bd42c351fcd2d4e4d3eea1bb8
d7cbf60aef048b2807ebb79b1284d31554fcc2bab5b2bbf265d5ecf1db5b47e608f9cd33ac682b617
a05598803738aaaeb32f9175bbbb4d42e3cc10db6a1631cf0dadd59ea82d5d63bae1ea2911ca15c
1f4d69cc3712392716df1548b4cf2afe4c68b7ba75f68d7965a74fa5da41a742969ab490c52dadac8
d2c31dcc697012e383bb3299d646ab36ff162a94f9b3c9df97f79e4dd5740f29ea9a5d9ea175a7dee
99a4bdc6a47ead6316a6eaf71e800f27a6a4a8348d7f6422f04c5536bcf2afe53ead25b6a17fa9c2b
aedbdc7d746ad6dad4d05f89de05b775fad433c72346634543193e9951f63962aba6f297e4fcba88
d516f6d61992f6d755115bead2436e350b188410dcfa29388fd411808cdc7f7800f53962aada37977

f2bb4082c6d74cd6563b0d3aea4bfb4b37d6a696dd6e6679256768dee087abcaefc5f92873c82fc2b
45509e4ed37cbfe6dd47f3220be8adb56d265f3246d11aaca8b2268da72f38dd7757535a3ab7253f
648c55e81a4e8d0e9562963ebcd7cb196f4e7bd613ce11989543215058203c54b727e23e2666df1
55ba8ea7a068ed6a9aadd5ad8bdf4cb6b66b70f1c4669e4202c69c88e4c4900018aa60b14686a88
aa7a540031549fcc7e50f2cf9b92ce3f3269706a234e9c5dd834cbf1c13a82bce370432d412ad43f1
292ad55c552fbbf22790aeb5d1a9dd6956875f7f4a78e40784c1ad2330452a2ab0a3471bfa62451c
82d17951571557d3bc83e50d25f48934ed2d207d0229a0d188790fd5a2ba359513939f85ff00687b
0f0c55076bf957f979636cb6765e5eb5b7b58ef22d4e28a10d1ac7776eed2c4f18561c046ecce88b4
4463c956b8aa334bfcbff0026e8b77697fa568f05ade58bde496b347c8323ea7209ae8fdadfd59073
6afedfc5f6b154fa4bab58658a09a68e39e7a8822760af215153c413534ef4c555b157ffd6f5edcf9df
55bad53cc167a34da6c6de5eba7b0b9b0bd67fae4ae74c17b14b1aa30fb52491aac657e38d65612
06a2e2af3c6fcf5f375c5b5a369d6ba435cdec7e4775f50cec91379c9e58670c124a9f45e3568fecd5
5a8dfcd8aa6527e6ef9df4d9afadf56b3d2e431799e3f265abda2ca83eb72d9c57ab7121b9b88d150
ab344b11914b4ad18f53b32ab2ebf383cf9a72c8753d3347867d374fd1b51d5ad6de792ef99d4b56
9f4c9e38668d820a088488c79f16e51307fb78abd03f2db5fd67cc363afdceb57305c4965e60d634c
b55b788c3e9dae9f7b25b44af577e4dc52a5b6eb8aa732f9cfca103c914fafe9d1c9112b2a3ddc2ac
a54904105b6208c554ffc75e4a0bcdbcc5a685df7379076ff00678aa43aefe6ef947409e2b8b8d46c6
e3cbfe9b3deea56b7b0cd2dab2d08692d94fa8d11524b491f3294f8938fc78ab34d3752d3f58d3ed7
55d2aea2bdd32f624b8b4bbb7712432c3200cae8cb504106a08c5529d02bfa6fcd3e1f5f83fee9f6b
8abcea6fcc1d774dfccb9fcbbe69d54f972d8debcba1dbdd592b693ab68b0598965f42f95495bc8dc
3bc913c8a7847f04450f3c559227e6bd9490dace344d4562d60d98f2c4cc912c3aafe918e5961114
9ea718d8470bc9224de9b471f16fdae38aa5b73f9e7a347ca2b4d0357bfbfb5b5d52f354b3b78ed84
966ba15c476f7d1c9eadc206910caae8b1f3f5908688b5715568ff3cfc9f70b2ea5690df5e794a286e
a67f345b5bb4ba72bd8c4b2cb1c8c3e246f8b821750af306881e7d55603e6bfcd3fcc1b4bdd6e288d
ce862d3ccbe57d2e1b036b697f771d96b68ab70a822f5848e4b734eacae386ebd556706fb58d4bf2
efcef3ea17f797d1243790588d4f4f5d2ef2311da80cac8ab1865672591fd34f84fed7dac55ea495e0
b5eb415c55bc55817e73410dd7e5d6a76d73124f6f34fa74734122878dd1f51b60cacadb1041a107
1563df997a77e55fe5ce8767ad5e791bcbed6f79a959e9725ddc69f690da5a0be93d3facdd4be8b7
0893f69a9d4afd9fb58aaeb3d23f2aec34917de7af25f95fcb972d3dd2429f55b2b8825b4b6938a5da
4bf574fdd3c6c92166551173e2e7154ceeb44fc88d3eee7b2bcd17cb16d736cb3bceb2d85946145a
c4269c7231052638c879141e489f136d8aa0b4b4ff009c75d6adaf6f347d3bcad7d6fa7b40b76d6d6
167294376bca0a2ac44b7aa01f4f883ce878f438aa55e72b8fc95f2df962dfcc3a47957cb3ac1bd6d3
daca186cad384d6da95ec568b30923824005642579503b214ae2ac7db59fcbfb5d7ee74bbcfcb7f2
c4905b79aa1f27b476b6f6afa8335dc50cb1ddadb1b5158d44c3d550f5445793932ae2af42f28797f
40f2f7e6979bedb40d2acf4ab77d17417786c6de2b6467371aa024ac4aa09a01be2a99fe60dbdbdd
5ff9220ba892785fcc2958a550e869a6df9150d51db15633aef9bf49f2c79ebcc1a77986c34d87c97a
0797ecb5e9eea3b079ef435edd5c5a152232c0a27a1cbe18ebf16ff66b8aa616be75fcb1b8d51748f
d10d6f7ed78fa6ba5c68f2c012fd6dfeb6903b3c20092581610000026060f002220574d4643010000
00000001000000000000000800000000200000c0b40000c0f4000047ab0af59071e3f1103154badf
f377f286e2de2bb86c26164f6f06a115c368d3a47f50b993d0fad55a1148564f82473f63bfc3be2a9a
de7e61fe57697733c1711c71c31cb7f682f12c19eda6bcd2a279aeeda2748cf39a348a43c07daf4e4
54e4c8ca1540da7e69f916f3565d3adf40bd1a6c9a34fe61fd2526952c51bd9dbbc4aa6385a212c9e
a097e02a8797d91bf45554f9db4ad43cd1e55d2742b0b3934cd5750d5349d6e2b8b6e3776b79a6d
935d05521b803f080db3d558716c5530fcb886183cc7f99490208e3ff0012467820e2a0fe85d37a01
b6f8abd07157877e65cbe63b6fcd237be568a6bcd7ed3c8bad4ba269ee19ac67d556eada5b68a4a
af0e4e632c073566f4fc171549758f3679ed2eb4b4d275fd4d3cb5a9dd79761bbd45ac23faddadd5e
4d3c7a95b8f56d18041188e490b2ff00a249f0d555b82aaf40fcd5d13488bca13eb1accf757b77a56
9577a7d8f253334b7578910599a3823a99f942383a2a85e6fb7c58ab1ad5f49d020f3af922e7cb77b
77a5dadf2eb5a8b5edadaf3786de6b3854c4866b791614768b98575e45c371f89b15444de76bebb
b7f25cdfe29bdd386a76ef1eb4c9a5990bac6aea2550f6ade8ccf2a84ab7eee9f661fb2c156bcd7ae7
e61e97e679b488756363636b6d66ba1dd4f0bcc75398ad6e24992db4e9c3bf31e9986278182fc6a
07356c55779b7cefe66d2bce9145652df269f6fab699697b602ddee21fd1d726349ee78c560fc6226
46e3235df21227d9a7c18aa07cc1a9cd79e68f2e4bac5c6a12eb5a7f9ac24ba57e8c0f6b6760ed3c
16f32dc2dbb3a46e0c2c66f5f8c8cfc5940f86355845db4f249a74b691a1d2e0f304df5fb7b2d37548e
eff47cbab9911af6420c72421147050bf6da171fbb475655ffd7f769f2fe82758ff109d2ed0ebfe97d5ff
4afa11fd73d1ff7dfadc79f1dfecf2a62a828bc91e4bb7448edfcbba6431c6e9246b1d9c0815e276951
80082855d99d4fecb12c37c555e7f2af966ead750b1bad1ac67b1d564f5f54b696da278aea6a83ea
4c8ca448df08f89813b0f0c556bf947cab2208df44b068c4315a8436b0f1fabdbbfa91454e34e11b7c
48bf651be25df154759695a669b25d4da7d941692df4a6e6f5e0892269e760019242a0177207da6
df1544186126a635af5af118ab5e843fefb5ff8118aa4facf9534ad7ee2d9f56125c69f6d56fd1248165
348760f3c600f5680ec92168bf6b873a362a9d471a448b144a123401511400a146c0003a018aa43
a07fc76bcd3ff6d083fee9f6b8aa026fcb6f2f5d5dc13df3dcded95b6a536b76da5dcca25b38efee124
467542bcb8fefa42232de90672dc2b8aa59a67e4df94b49d26db46b69f537b4d36e2dae7443717f3

499

dc3e9a6c999a04b4329608881d93890dca23e93f28c2a85528bff00ca5966f3ae9f7164ed0793ce91
ad58eb72c776c9a85dddeb97705d4ace3d26e4ade8b0661223af3511f154c55376fc97f231935988
45771e89af2ca350f2f4577345a4996e2016f24d1db230549190755d849fbd5025f8f154349f91fe56
98c92dc6a5ac4f7b2dd697a84b7b35f3493bdd6842967212ca45528391e3fbca7ef3962a8af32795
ed741f2979e3533a85fea179ab69f2b5d4d7f70650896f6eea890a2854894558908a2ac791df1567e
94e0b4e9414c55762ac1ff3777f21de8f1bbd2c57fede56d8aa79e68b0d6351b382d74b8ec2e6d64
9b86b1a7eaa8cf6f7561244e9243f0abf1624a9ab23ad032b29ae2af29f2a7e4d79c7c8a9a5279735
5d327b348f52d3afb48d4e2b9b8b2b4d2afefdaf6086c68e18fd595bd1e32d1254e3fdd70031554f33
7e5b5f695a0ead3de5fc32683a4ea5aff9b6d6701c5f19353b2bc5faab5071e0af7727c418fa9188e2
f4c6e715487cbdf961e62f347977c93e7cb0b9d2e3d7749d1742b5d374fb94b892c2e2d6d2da65b8
4bda056121372de8f146fab3a7fbb39be2a9e6adf935e6a9e0d56cb48bcd22d34fd7adf445bab58e0
96de0b09b42bf37612d228aaa619158a518a32bfef3e2e655555b75f92de60d4f56d5af273a3d84fa
9f9aadbccf0f982d44b2eb1696f682d41b6824314546956d8c6efea70f4e6917d37eeab39d1883f9b
5e6e14dc689a057fe92355c555fcf5ff1d5f22ffe042bff0074cbfc5525f38fe50279c757f316a571af5cd
a45e63d1edfcbf716b0c10308adad677b8578ddc16e65e592a5aabc4fd9f86b8aaebffca67bfd5a5d
664d7e75ba93cc169e685416f0fa6b7563a78d3d23a75319450cdf172e5d1a9b62a92c7f9036f168
eba3c7e65bb58d3cbcbe5459beaf6e5fea82efeb465a1057d427e0fb3c38fecf2f8b1547dd7e45e8b
751dc5a36ab76ba736a1a9eb963681622969ab6b36d3dbdc4e84ad5907d66792385eaab249fb4a
a8aaaaaea7f936ba941608be67d4ac2e6cfcbd2795a5bab110c324d6ccf1491ca6a8dc5d5a115e3f
0ba97465e2d8aadd07f25e0d075cd335c8bcc1753c9a76a979ac8b66b6b48a179b51b14b19a30b0
451844e29c902eea7bd3154d3f2f001e63fcc922a6be644a9f968da68fc31567d8abb15762aec55d
8abb15762aec55d8abb157ffd0f43f927cdfe6e92df4fb58e6b4bcf3bf9a21d6b541717cf78ba58b7d1
6f4c0b0a44657e1231b8452630a1614e4c921450554fbf2cff347cc9f991afde08749b3d37caf6567a
65e4a669a593512dabd825e46a14208fe062cac797c4bc5971557bfb5fcc33e6e5d1acfcdb2472dc
5a5ceab15bb5b599b4448b5285121afd5bd52bf5690a1f8f97a9f1f3c5577947cc3e6db4d42df4dd4
2386efcb771ac6b1a3d9dfdcdcc92ea865b49eea4899d7d209e90481a3fb664fb0d8aa2acbcede73
8ec753d775cd16c6db40f2faea6baabdadd4d737571269dc8ab5a45e8a8e078713eab23f2afc3c54
33aa84d0bf32bcd13596b377e65f2f7e8d4b4b65bbd32e4c77d1db48f33fa71dabfad6c24798b3250
c11c81f97c2bcb62aa1f43fcd4d7f50d2b52b4bdd26de0f3859eab6ba2430c86e6cec5a7d4204b885
e4facc4b3a2857a32fa6ccec008fed8a2a91af98bce161a0798f4ed435b9ecbcd4de67b6d26ca6d2c
0d692dfeb1676b733fa51cf6eee618e379a73132738f8f1e7c7e2c55ea1e42f30cfe65f2cda5fde82b
aac264b2d511a3780ade5a398a53e9c8a8ca18af340547c0cb8aa491794edf5cf32f9a6ee5d5355b
2617b6f1fa5a7dfdc5a4478e9f6c6bc22602bbee71562d68347d47cc577a1e9773e6fbeb5d37531a
26a7a9c1ad4c62b4bd302cf49a23702611f1745127a65793ff2fc78ab241e57f28ac77d37f8d356f4b
4b62ba9c87cc573c6d5bad273eb5233febd315539fcbde4bb586dae6ebcf1aa4305e2abd9cb2f992
e112659182ab464cc038258014af518aa2c792fcb67507d27fc57adb6aa91fd61ec7fc4179f585849
a073189b904afed5298abcf753f327936ce7d4adf4fd47cd3acad86ada4e86b71a7798a59629ae75
ca2c051feb800549088e5e44329f8b895df15446ad6fa0df699e6af2f5cddf9a34cf36691a449a949a
3ea7abddcc935ac8aea9346c9712c33c45d78380c78b7c12a2f2c55eeebf6476d86d8ab78ab09fcd
fb7fac7e5a798c899ade5b6b5fae5bcf1f1e49716722dc42d47565349235a8228715406b374742d7f
43f2e5ff9b75efd29e6479a2d2d21b4b196367b64f565e4e962446113e2abf15a62a9f8f2beb02a0f9
bf5635f14d376f97fa162aeff000c6b0083fe2fd5b61fc9a6efff004e58ab47cafac0607fc63ab6fb71e1
a6efff004e58aa85d6857b68204bbf3c6a76ed732adbdb99069686499c12b1a72b2dd88534037db1
54b7cca92f9534d4d5756f38eb82c9aeadac8bc16fa7cc565bd992de2e612c4955e7228663b2d77c
55ad07469f44fccdd4a49756bbd525d5744b56b87bd16c0afd46ea658820b78610052792b5e55c5
513f98969717d79e4bb6b6bc96c246d7d5beb56c2232a05d36f89e3eb47226fd0d50ed8aa0b5e90f
97b51d2748bbf38ebb36b1ae34e9a5e9f6f0e9b24b37d4e2334ec2b66aa0226e6ac3aaaad58d315
46687a7ddebfa459eb163e71d716d6fe31242973069f04e3c55e392c432b02086522a3154c0795b
563c957ce7ac120fc5f069848ef4ff78b155c7cb1ab0f88f9c75603a7d8d36953b7fcb162a936be24f2
dc9a543a8f9c35c326b57d169565e945a6bffa4ce8ee81ff00d0c710446df11dab8ab1cd37ce9a3ea
36ba65fc9e70f31e9fa56b176fa6e9fa95eda69f0dabdf4733db7a0d27d4d82334b1b227a9c048ff0a
162cb555927e5959358def9ee296ea5be9cf98dccb75702212b91a65801cbd148d36141b20c559fe
2aec55d8abb15762aec55d8abb15762aec55fffd1f6e47e43f26c5a6db68f1e89689a659c92cd696c
b100913dcf2f58a53ecfa9cdb9d3edf26e5d71547e9de5dd0b48bebdd4b4bd3e0b3bfd48422fe7850
23cc2d93d384391d4469f0a7f2aec3155193ca7e5a9bcc3179ae5d3206f32431fa316a853fd216220
8e01baf1a1e98aa0adff002efc8f6bf5336da059c474fbb9752b1e3101e8decf4f5264f077a7c4ddf15
57d0fc91e52f2cb5cbe83a3db69ed7a38ddfa08144a0924861d0d4935c554ad3f2fbc91616b7d656
7a0594569a947e85f42215e32c20d44641fd90770a3e11db15741f97de48b5b5bdb2b7f2fd8c56ba
947145a844b0205b85b724c7ea6df11526aac7e2af7c550d65f95ff00977a76a76bacd879674fb7d5
ac9c4b6b7b1408b324813d3e6180af22a7896fb4475c5539d23cb9a16812dfcda369f0d8cbaa4e6ef
517814299ee1850c8fe2c7c71541e815fd37e6af0fd21053fee1f6b8abcff005afcadd7f57f3ada79ba
d1ad741d7e1bab886fbccda5dc4b15cdfe852452a456b756ab1ac72cb1978f848ecde97a5ce361cb
862a82d37f2afcdd0689e5c4bcb6d0d3cc3e579f4b592f2d5a6aeb969a4acc805dbbc21a22deb19d
1297012e3e2e7df15627a97e5adc41e7ab7f2cc961617d2f98b42f384a2deeaa6c34e1acea1632c7
0c4c6062dc3f792700b1f26f59938a8c55334fc85f354569ace88f7f657f24915f0d03cef7f717926b56

e750b25b6681edc28882d57819565dedfe0f4b9fc58aa3efff002afcf7aa5fdf6ad25b68b612de6b5e5
7d6c595add4ed12ff0087194cf1f2faa27f7810088f1f87f6fa62a9ef987ca3ad4973e6efcc3f31cd6f15
e9f2ecfa1e8fa65933c91db59963733492cceb1992596454e8889124741ccb3362af591d062ade2a
c33f36857f2d3cd3bf1ff71d3ee7b7c38aa55e7cd0f5bd4bf30bf2fb57b0d2e5bed1b4597567d6278a
48104497d60f6b18e32488cd576df80341be2af1b8ff00287ceb1f9616de3f2e4e9aeaf93edec95cdd
db971e64b5bd3224bcfeb047a8b1fd89ebf0a7eec30fb18ab293f969ab5df9b5757d47cb334f6373e
71d4351be696781f9e8177a3b42b1ba1b8de36bc2aed6f4fb4bea14c5525d2ff2c7f349fcad3e99aa
db4cdae4fa3e8969e56d45aee232797f50d326713b97129241fdddc7288c9ebaafa12f652aaada7e
4f6bd15ce81af4fe59173a9e9bf987a96b97693cd6ef3be8771f5ffa9c89ea4cc80466e627f4b9078e
8dc52abbaa84d37c85f9a31e9facd95df966ea0b7d463f2fc90da2df59dc4715de93afcb797444925d
3cb272b774659a6632cbc78bfa748e2555ef155ff959206fcff41927e5f5b18aadf397fc763c93d7fe3b
87a7fdb32fb1549ff357ca8be6e8f4cb0b9f2fdc6a96d6e6e2ead75ad2af23d3f58d27508d545bcd69
2bc91105eaeafc5e9d3d4478d9862ac4bcb5e54fccd5d43451f98fa4db79a6ea5d3b4769f5f86f23b5
3a66a9a74af2ce7d2511b37a8c5242f6e292b868a4510f1c558779d3c87e62d23f2f2e352f3145e8c
fa1797b56b3f31de0ba50badde4d796f2da4fcc386e40c6f32c92f178de5f4ba1638aa6faa7e57799e
3d5ef2f74af2dbdc790359b8b95b8f24c17f6b692dabdc59436e75089d99e156764915923915d03fa
e87d52cb8aa3afbc85e79ff11698f3e823525d3bcd3a66b96faf0bd86568b48b5d3c5abdad6e19273
244e5dbecf09b9990bfa8cc31543db7e5d79e7cc1f9510fe51ea7a29d122bad525bcd575b9eeada6
48acceb4faa0fab476d2c8ed3b2f141cc4691b12fcdb8f1655ea7e43a7e94f3d6d4ff009d89ea7c7fdc
6d862accf15762aec55d8abb15762aec55d8abb15762afffd2f7f62aec55d8abb15762aec55d8abb1
5762ac2ae2cfcff00a66bbac5d68165a45ee99a9cd0dcc6d7d7b736b3c6f1db456eca522b49d48ac
5c81e7dfa62abc5e7e6b127968de5e03b11aade9ffbb70c55bfadfe6a7fd5a7cbf5ec3f49deff00de3f
1577d6bf353fead1e5faff00db4ef7fef1f8abbeb7f9ab5ff8e4797a9ff6d4bdff00bc7e2ac263f3f7e7fde
34d2695f967a25e69e93cf6f0dd9f33b43ea8b695e12fe9b69c4a8250900ef8aa0f5ad7ff00e7223cc
1a46a1a1cbf967a25bc57d049692dc279a3d568c4c854b043a7ad4807ec965af8e2acff00fc4de7a1
403c8b3103624ea7620ffc4b155c3ccde79debe469bdbfdc958eff00f0f8aa41e75bafcc1f33f94f5af2f
5af929e1b8d46d24b68669753b2e01a414ab509200f6c553eff001479e4eebe4698af63fa4ec7affc1
e2a84b9f3bf9cece5b486ebc8b3abdf4ff56b6e3a958b0327a4f2fc5f10a0e31b62a8c3e67f3cf6f22cc
7c7fdc958ff00cd78ab63ccde77efe479ff00ee2563ff0035e2aeff001379dffea479ff00ee2563ff0035e
2aeff001379dffea479ff00ee2563ff0035e2ab3425f33ea5e6f9b5dd6744fd0d65169ab650abdd4173
2492b4e64623d1268a001d4e2aa3f98f737f6773e4eb8d374f6d4ef135d1e9d924a96e5aba75f027
9c9f080a37dfae2aae7ccfe790687c8f285fe63a9d953fe258aaa7f893cef4aff82a4f97e92b3ad7efc5
50f77adf9caee06b7baf208ba81cfc50cba8d93a1a6e2a1c53ae2adc7e65f3e22f05f21b22a0011575
4b2a6db50785062abbfc4fe7befe469457b7e94b2aff00c4b15545f3279e0921bc9322f81fd256647e
0715417e58dc5f5d4de74b8d46ccd85dbf9865e76664498a52c2c80f8d3e1350396de38ab3dc55d8
abb15762aec55d8abb15762aec55d8abffd3f7f62aec55d8abb15762aec55d8abb15762aec55d8ab
b15762aec558f7945c47e5e323578a5d6a2c682a682f673b018abe79d0fcdd71f96ff5df4a0b0f359b
1d024d4341f3c69523179748b8d4ada394eb16e0b1135bfac27f555cfad1c53ff74dea2e2acf753fcc
6d72da76b1b3f33e9373a7cba6eadac691e678e156b3b97b0307a362cc2531bb812bbcad0b0678
d7f76b195738aa50ff009b3f987f587d4624b196e2daf749864f2125bb7e96960d574ab7bd997d5f5
998490492c855bd1e0c913ab0e5d156f42fce5d7f50d3f42d52ff005ad0d344f32dce9d0c97f6acd24
ba249736973717105ef30912319618ede1121122c8efea2b7c38ab1ad167d5bcd3f92fa2fe5df952e
ee2e75cd43f4ddfdd5e68b71696d730c365aadc8b6900b89e302296ebd20c11c9f45644ef8abd47c
99e7d83f323cade45f332048b516d4ded35cb3421beadaa5a595e4377055491f04aadc4d7e24e2c
3e16c55ea98abb15762aec55d8ab12f3953f4c7926a69fee70d3dff00dc65f62ac47f3aace6bcb9f2d
cda66afa643af698f7da85a795fcc0e63d275a8520114f148f5f82589650f0cbc64f498f231b2f22aab
1efcbafccdb5d56dbcb9a1687731f94ecc695a36a3a5797f5c56b9bfbeb3bf9a459a38242ead20895
3d28da30e43f1925fddd14aa83befce5f3b45e598bcc167369e25bed0b54d66f209edd9d744bad2a
e608c5bdc059a36656123c2dcca389a3e6bf0d635555350fcdbf37699aede7946e75dd1238dee2e5
343f3b5da7d4f4ab8b88eca1b95b07fde4a9eaa34ac5f8c959218e89c65e58aa13cc9e7c97cc5e64f
2b43aaea7636179a379d74ab43a325126920974b699aed5a6292fa52bcc446787031ad1be3e5c5
55c7cfd7fa67e68e8df993791dd5bfe5cf9aee65f28fe95b8bbb4fd12625666d2ae608d676955a5b88
ee55dde38c14b88bf917157adf9105352f3c1af5f30c87e5fee3ac7156658abb15762aec55d8abb15
762aec55d8abb157fffd4f7f62aec55d8abb15762aec55d8abb15762aec55d8abb15762aec5583f96
bcdde55d3f4c92c6ff005ab2b6bc82f75059ede6b88d2443f5d9cd195981069e38aa3e0f35fe5e5b1
95adb57d26169f79cc735ba190ff95422bd7be2ae3e6bfcbb30c56cdabe91f578086821335bf08d97
a155ad011da98aa53a5ea9f96fa46b9adf9823f3358cd7dad4d1dc5c99eead4885a2823b60b13285
6552912725666f8857154d7fc5ff00974d14b01d6b48304ec5e68fd7b7292393b9615a1248ea7155
e9e6ff00cbf494491eb5a52ccabe9875b8b70c12b5e3506b4f6c558c6b5e7ffcb2b5d4bcb96f67e66d
0e0f4f5567b88a2bdb48f8f1b1ba525c0714a12abbfb0c55910fcd1fcb36e5c7ce7a19e3f6bfdc9da6d
ff257155fff002b37f2dffea71d0fc3fe3a769ff5571572fe65fe5c3578f9c344343434d4ad3aff00c8cc55
b3f997f972373e6fd129ff006d2b4ffaa98aad3f99bf96e3af9c7441534ff8e95a753ff3d31562be71fcc
5fcbb9b56f263279b3469043ae73729a8dab70074ebd405a926c0b305dfb918ab27baf3afe5a5f858

501

af75ed16e96bf0c735d5b482bec198f862aa87ce9f9792cb14c75dd21e7b707d093eb36ecf186143c
4f2aad47862a93f9a2f7f2d3cd5a06a9a05c798ec2cadb594f4afeeacae6d12e1d2a2bf1387524814
ab2b62a9a2f9abf2e52d22b1935ad21ede3a3246d35b04e6bbf20808506bbec3155d2f9c7f2e259c
cd36b7a3bdc95f4cc8f716c5f86ff0925ab4dced8aac3e6ffcb27b74b63ad688d6909ac709b8b531a1
dfa2f2a0eb8aa1bf2eaeed6fee3ce57d63325cd95c79825682e2260f1c8ab616484ab0a8203291b7
862acdf15762aec55d8abb15762aec55d8abb15762afffd5f7f62aec55d8abb15762aec55d8abb157
62aec55d8abb15762aec556f0426a5457c698abb827f28fbb157704fe51f762aef4d3f947dc31577a
69fca3ee18abb827f28fbb1560bf97763637169e6369ed61763e63d66a5d15abfe96dbee3be2aca2f
749b14b49ded2c2cfeb4b1b183d5857d3e6055797115a57ad31578f7977f35f4cf3269df9617367a4
689fa43cff002b477fa7a4cb2cba7aad94f7c58058c33d160319e4b1fc6eb8ab36b4f3dfe565fb5cc76
535a5c5c5afd5394115a33cb22ea323c56ad0a08eb22caf1b8468f92fc2715414bf9a9f93707a0c6fa
d5a3b9b5b5d41678ac669614b3be9dada19a5963819234332346cd2328471c5f8e2acff00f43e93ff
002c16ff00f2263fe98ab15fcc0d2f4d8746b0921b281245d6f43a32448a7fe3ab6ddc0c5599fa1056
be9a57c788c55b11443a228fa062adfa71ff0028fb862aef4d3f947dc3156bd28ff917ee18abbd1887
48d7ee18aaf000140283c062aec55d8abb15762aec55d8abb15762aec55d8abfffd6f7f62aec55d8a
bb15762aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb15617f96c41b2f315
29ff00291eb236f6bc7c5596de477135a4f15ac8915cc88cb14b221911588a025432920787218abc
bb4bfc973a5e8df973a2c7ac47245f97cd27091acf8b5f472594d61c5f8cdfbbfdd4ee4952dfbce2dd3
e1c550fa2fe49ea5a2797ad7cbf69e668a38b4f9acd6de5834ab7b7375a7d8c9c85bea3e93ab5cb3
ad15dd5e153c6a623c9f9aac43cbdf92fac695a85dfe5acf7934de4b97cad67a1de6b46c1638eea04
d4b50b996da2659c88a5115d2a33946560cde98575f8557d1caa1542a8a2a8a01ec315629f98878
e8961b6e75bd0c0fa755b6c559662aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55
d8abb15762afffd7f7f62aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb1576
2aec55d8abb15791f92fecf993fe3b1ff2926b5ff1cffee3fdec7e9eff00cdfe572c55949e87fe522eff00e
63156a4eabff290ff00b1eb8ab43ff064c55c7b7fca49d3155c9d7fe9a2ebfb58aa49e73ff78b4bff008
eb7fc77744ff7affb8ff8ea5b7daf6f0c55e9d8abb15762aec55d8abb15762aec55d8abb15762aec55
d8abb15762aec55d8abffd900000840010824000000180000000210c0db01000000030000000000
000000000000000000001b40000040000000340000000100000002000000000000bf000000bf00
00af4300000243030000000000008000000080fe7fe9430000008000000080ffff2c4321000000080
00000620000000c00000001000000150000000c00000004000000150000000c000000040000005
100000034b700000000000000000000d2010000ac0000000000000000000000000000000000000
05e01000082000000500000002404000074040000c0b20000000000002000cc00d3010000ad000
000280000005e010000820000000100080000000000000000000000000000000000ff000000000
0000000000000ffffff00fefefe00fcfcfc00dfdfdf007676760075757500737373007171710074747400
6f6f6f006d6d6d007272720079797900787878007a7a7a007b7b7b007c7c7c00e8e8e800fdfdfd00f
8f8f800bfbfbf005a5a5a00cbcbcb00c8c8c800c5c5c500c9c9c900bbbbbb00c1c1c100c0c0c000c6c
6c600bababa00bebebe00c4c4c400bcbcbc00bdbdbd00cccccc00d0d0d000c7c7c700c2c2c200c3c
3c300b8b8b800b7b7b70064646400cacaca00fbfbfb00fafafa0077777700f9f9f900b9b9b900d8d8d
8009f9f9f00a3a3a3009c9c9c00d2d2d2008d8d8d00f7f7f700f1f1f100a1a1a100b5b5b5009b9b9b0
0dddddd0042424200ebebeb006e6e6e00a8a8a8003939390051515100f3f3f300d4d4d4002e2e2e
0083838300b3b3b30013131300dedede00eeeeee00a2a2a200e3e3e300eaeaea00e9e9e900f5f5f
500ececec00f0f0f000494949001c1c1c004040400018181800d6d6d600afafaf0055555500898989
0097979700959595003e3e3e006c6c6c00545454003d3d3d00cfcfcf009d9d9d00b0b0b000686868
009a9a9a007f7f7f00b4b4b400f4f4f4005f5f5f00050505004f4f4f00e5e5e500a9a9a900a6a6a600a
aaaaa005c5c5c006b6b6b006767670033333300a7a7a7005353530035353500aeaeae005858580
016161600b2b2b2003838380014141400484848005b5b5b00f6f6f6000e0e0e0032323200696969
003c3c3c005e5e5e00b6b6b6002a2a2a004b4b4b00525252008f8f8f000d0d0d00d7d7d70030303
000ababab00e1e1e1004545450046464600d1d1d100b1b1b10066666600888888002626260024
2424004747470036363600d5d5d50060606000707070000c0c0c0087878700adadad0094949400
dcdcdc007e7e7e00060606007d7d7d00e2e2e20086868600202020001610000026060f00222057
4d464301000000000001000000000000000800000000200000c0940000c0f40000d9d9d9002525
25008a8a8a008b8b8b0099999900e6e6e6006262620098989800efefef00636363004a4a4a00212
1210090909000d3d3d300cdcdcd00cecece00dadada00dbdbdb003a3a3a006a6a6a00656565003
737370034343400565656000f0f0f00e7e7e70043434300808080001b1b1b004e4e4e0081818100
616161008e8e8e00121212001e1e1e009e9e9e003f3f3f004c4c4c00f2f2f200e0e0e000414141001
91919005d5d5d00929292001a1a1a008484840029292900ededed00858585008c8c8c003b3b3b0
082828200a0a0a000e4e4e400282828002c2c2c0010101000919191004d4d4d00a4a4a40093939
3001515150059595900444444000808080002020200acacac00969696001111110057575700232
32300010101002b2b2b0050505000090909002f2f2f00040404003131310027272700a5a5a5001d
1d1d001f1f1f00222222000a0a0a002d2d2d0003030300171717000707070001010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
010101010101010101010101010101010101010101010101010101010101010101010101039be
3361a2c1a2c61172c24b5b6b518b62525b6171a1a1a1a1a1a1a2c2c2c2c1a17171a181a2c1a2c1

a1a24b5b5b691322591579128d103010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010100000101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
1010101692001011301010102010102020102020101132d030201010101010101010101010101
02010101010102010102020102010102014f647f01010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
00001010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
101010101010101135e2a01020201010213010102010102020102013001010101030201011301
010114011301132e010101010102010102010101010112bb2e010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010000010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101019b1f0101010101020101010202020101011330013001010101
012e0201010201012c74624d01130113010101010113010101010112bb14010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010000010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010c1b010101010101022d01010101012e130101010
20101130103012d010301020199e737140301011302010101010201010102014f937f010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010000010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
0101010101010101010101010101010101010101010101081f010101010101010101130101af01
387f013902143801cd2e2d2d013001034401e617cd4401010202010101010101020101013f647f0
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010100000101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
010101010101010101010101010101010101010101010101010101071f02010102012e2d020101
01a05cbea97f4e5a84e0511c55b9410121e19f9b7db8d9090c5c4f0101010101020101010201010
1d6ba7f01010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010000010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010523010101020101

503

0113012d01014ae43b30017abfb713c90504c77a59844f96ad44de48012faa03010102020101010
1020101014b5e3801010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010000010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010523020
101020101032d010102014bd01d2d131a494b3660af0102a42a9351cb0e01f21701618c68020102
020101010102010102d60b3801010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010000010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
03071f03010102011301032d0101024bc841444e637c4eb676475a4799131734c3090176250391f
7d62d0102020101020113010213510b3801010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010000010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
1010101012d0e31131301030202010101130113afe40a3565bafda401ec6377e717482f01602faffd
c550ec78010101010101010101020101014bba3802020202020202020202020202020202010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
00001010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010202
02020202020102020202020202020202020202020202010101010101010101010101010101010
20202020202020201078501010101010101130101022d39793b030161803f2e265cc20a016cc56
209ac323e0d70b9180101010101010101010101130151827f01010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010201010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101000001010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010102020201010101010101010101010101010101010101020202020202020202020202
020202020101010101010101010a67010201010113010201130101afa61f02018bc8dc01133f442
d0101af4ecd01032e01682e0113131313131313130113020201517244010101020201010102020
20202010101020202020202020202020202020202020202020202020202010102020202131302
01010101010202010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010000010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
0101010101010101010101010101010113406701130101010101130113016848a2d2012eead33
33001012e0130010102010101012d012d02010101010101010101010101015172cd01010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010202020201010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101000001010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101131302010101020202020202020202020202020202020202010101
010101010101010101010101010202020202020202020d1b010101130201132d012d01cd3b1757
384418282c4b2d01130101142e0101012d01010101010202020202020202021302130151ba1413

13020202021313010101010102020201010101010101010101010101010101020202020202020
20101010101010202010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101000001010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10102020202020202020202020202020202010101010101010113101b01010102010201010113
01012e012d010130012d01130101010301010213012e030102010302020202020202020201010
1013f6438010101010101010101010101010101010202020202020202020202020202020201010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010100000101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010213131302010202020202020202020
2020202020202010101010101010101010101010101010202020202020202010e851313010101
01010103010130010201020301130130012e0301020101130213010201012d010101010101010
10101010101134f823001010102020101010202020201010101010101010101010101010101010
10101010101010101010113020202010101011302010101010202010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010000010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
0101010101010101010101010101010101010101010101010101032d147f507f142e1414141414
141414141414141414141438383838383838383838383838383838141414141414141402b062a
48b9991172c2c251a1ab618b62c1e181a1a1e2c1a1924b6211a2c1e24b51a1a262c91b56124242
424242424242c1a2c182428434ecd524bd6d64b52cd39cdcd44507f7f3838383838383838383838
383838383838686868686868686839cdcd44446868683830030101010102010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010000010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101017f075a47b3a9e09437c7
a9c7a9c7aa3789d8aad8aa5a5aaab3c2c59d5ad8c51047a1aad4a994475ac75ad49da9a9378994
e543ec87ddecd175e153e1be7eecf0167878161678781670595fd1ad9a69ad69699a9a6984707e8
47e1670d159757ec6ec78bed1c35dba0e060d07090b0d4711da0d0ddaa5a99dc5d7aa5aa95a9d9
d5aa9a9a9da66a5d7d8daa10f6611c2c50f050611c5c5100ea905aa010302010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101000001010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
010101010101010101010101010101010101010101010101010101010101014d3c4bcd44d65039
3f52af44af443944cd5239524b4450afd638cd4ed6cdaf445051684b4b51af68cd6844cdcd4444526
8687f2d4ee0d613132e142e0101012d0101010101010101012e300101010201010101010102130
30213030201301401030101014409b402683968447f5244505250506844cd44af50523944cd3944
395252cd524bcd44afafcd50cdcdcd50444468507f684444507f2a0e2e0201010201010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101000001010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
010101010101010101010101010101010101010101010101010101010101014d4c01010102012d
01011301020102302e010101020101010201130101020102011301020101012e0102021303130
1010301010101aad6020101010101010202010101010101010101010201010101010101010101
010101010101010102020101011301132b6c130102010201010102010201012e13010102130101
130201030101010113010102010102022d2d0301130201020102021301b672010102130101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101000
00101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101c062010
10101010113010102130101010101030301011301017f010103010103030102130201010101130
101010203020101031301b3d60101010101010201010101010101010101020202020201010101

505

02020202020201020101020101010101012e01300b4f130201010213030202012e031301010113
0113010102012d0101010313010101010101130101010201010101030101010102992b0101130
20301010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101000001010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
101010101010101010101010101010101010101010101011610000026060f002220574d4643010
00000000001000000000000000800000000200000c0740000c0f40000010101010101010101010
10101010101ac35010101033001020101020202010202010101010102030102137f2e011301020
10301011303010101010201010101030101020237520101010102020202020201010202010102
02010101010101010101010101010101010101010101010201010101140c8e0113010101020101
010201011302132e01011301012d033f014b010101012d01030101131302010103020201020103
020301b4930102010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010000010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
101010101010101010112330113010101012d130101012d0202011301132d01012d02b4753330
0101022d0101130301030101301313131330010130012e2dc7d601010102010101010101010101
0101010102020202130202020101020202010101011302021302020301021313010b4a0101010
3021301010102010201010101021313020101d6a597577f010101010103012d0101012d0201010
3022e0102010101b55e01022e0202010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010000010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010433010213130113010202130102010101010101011303010
144e1b501300113012e0201030102011301010103010301012d010101e3120102131313020102
13020101020201010201010101010101010101010101010101010201010101010201010101039
ab8010202030113022d0102011301032d011403010202022ee9d10201012e0101380101010114
0103010301030101013801010124bb01010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010100000101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
101010101010101010101010101010101010101c04c13010113012dce205827cd010312633d2d0
150282a6c01025f7a67120101381d2638012e251fb74b4b18263901301cb61d44135b4b01010101
01010101010101010101010101011303010101010101010101010101020103130101010101010
101017fb03d130201022e042648924e2d01af1f85390101a79e24440131e1291944012d57673613
01af2a2832513667612e024b1e1c19134572011301131301010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101000001010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101a44c0101020101513eaa225e0c013281d9
0a182e0f713bbb99037db09271b4035ff284d23094b91043f24d82931303025a00091301e0af0201
01010101010101010101010101010101010101010101010101010101010101010101010101010
1130101017f82ce01010103038f70225cf49901cba8adca011b90204c0f0163ed6ed808016ee8cc2
b29446b5347efc661e6ea012d016900ea026182010101012d01010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101000001010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
101010101010101010101010101010101010101010101014d3a0201010230043401022ca651e5a
d0168b448de2e023c641375dc01f605d8b2a401611d8c1513eacc03365c010301da54a42e38ea51
01010101010101010101010101010101010101010101010101010101010101010101010101010
1010101010101300b4d01010103cd89440150f7aa4cdd3d0121ceb1ae01503e1e26e5017f7235cb
a501cd23e2f42e13b066017ad4017f01c1640213257101020101020101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010100000101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
1010101010101010101010101010101010101010101010101014dca2d0101010152141330bbdfa
cfb4c010101cac1010292bc6816b714368f64872d7f014df93f01625d0101b0be5e70bfaa0302015b
4b2d0101010101010101010101010101010101010101010101010101010101010101010101010

1010101010113012d9b6c010102017f300213dbee35e0c5020201507b230138836518720301dae
c8fceaf7f1465bb0103789d03019790877dfa280113255e010202010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101000001010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101ac3a0101131301010121d5a23
30393ea03121c8d750201a1be013e24015b9089b92a895d2c87b701654313017ac501a9d37f020
1309f4f01010101010101010101010101010101010101010101010101010101010101010101010
10101010101010113012d9b6c0113131301133f9a007252200c01687a7f8f31135296201ed10101
5da5406223bb4728cc2e01ecd4012d4c3a03437613020261820101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010000010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101014d330101022d02135cfe
78610101c0a1b478b0142f6d1a551e91d3930df74c01e029066002dbda457de12e0114474d8f102
e010103a951010101010101010101010101010101010101010101010101010101010101010101
010101010101010101010101300b4d01020113011aa6b267020301106577cf3023ba61102b68d1
b2a16b984b235a2198e913c24cb6c99d0101a0da138cf6010101b5930201010113010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010000010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101014d35130101010
103cf0e010145af014d3120af03502934b8015057046e3101024b1b48300102181f076b010102745
5863d01020101aa68010101010101010101010101010101010101010101010101010101010101
01010101010101010101010201010114718e01010101037086af13b72c03441858ce010199e921
2e02044ab64cdc380124926103014b311b53d7020301ead1ef522e010124b01301010113010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010000
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
010101010101010101010101010101010101010101010101010101010101010101010112db010
2010101027d2a0161c6012d2e012e0101030102031303010103011301010113012e0113015bcc1
3010130def0011301012d353f03010101010101010101010101010101010101010101010101010
10101010101010101010101010101020101011471a401022d012d5ee101dc6b77012d011301010
11301020103010201020201012d2e010101020102ecd4010130b5fcd82d013001242b020101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10100000101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
8e3301010202020122d74807c53801010101012e012d0101012d012d01010213012e0102010101
0166c60201130167220113130201d2af0101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010201300b4d010102030168da9d5aad0401012
e0102012d0113012d012d010101020113020102010213028ef07413010203119901030101b5720
10102010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101000001010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010201020101010113020101010102020101011303130101010101010101010102020202
02020202043c013001030102017f12140113020101011301010102020201010102130101010201
020301012e14300301010213010201020201d24b1301020201010101010101010101010101010
1010101010101010101010101010103020113131301030101010230074e130201010101033038
01021301011302010101010101011301012e030102030102010102032d2d13020201010101010
10113b46401012e01010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010100000101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
101010101010101012d0102010213010101010101010101020202020202020201020202020202
010101010101010101ac620101032e01132e010201031301020203130101010101010101010101
0101020202010213020102020101010101010301010130ab12010101010101010102010101010

507

1010101010101010101010101010101010101010102023001010301012e01012e5ea701010102
13031301011302010101010213021313011303010101010102020101010201010101010101010
102030313020101190a2e01010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010000010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
101010101010101010101010130010114021330130102032d0302020202020101010102130202
0101010102020101020202020101ac93d4aad894a9b3e0e0a59de3b337e35a9494949da5a594a9
9dd7a5a9aa5a9da9aaa5d4a9c75a475a5a9dd7d79d9da594d7da9d9d4311a95a5a5a949da5a5a5
94945a5a5a5aa9a95a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5ad7a9a999012e130103011301880
d89c7d85a9d9da9c7e0e09fea5b5bea9fe0ababae355cd8c794d837a9d489eaaaa9a594a9aaaaa9
a95ae0893789d2ea653c3c05ad0101012e03010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010000010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101e07e5f7e84691678781669b0bbbbbbbbbb937272bbb
02bbbbb9393bbbb2b2bb0adc6c6adb02bc68af30000e800eef3ee00fcfc00bf735877e96d6ef6746f
589e8d9e637a6377637734db9e92d4cb63639e6f6f9e9e8df64c35f6638d489e586363589ee9e99e
63636392927a7a7a92929292929292929292929292929292e9926f0b6d300101130101380184b3
419e8d6f41416d8de9e97777e9e97777e9f6343374f6db6eca353562ab348d33336e74747474416
d6d6d41746d9e58587763a59a0201010201010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010000010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101012d0347224ab8a78b4ab8a7a7b7b8a732328b8b8b323232
578b8b323232328b8ba7328b57578b32a7b7ceac8ea4dcaca404a44fa4a44f61660201010113020
1011313031302010102020101010101b6720101010313010113010102010201012e0201010102
130202020101010101010101010101010101010101010101010101300101ca9e030113012d0113
38051201010101010102131301010113130101010101130101130103130301011301020101010
21313020101010102010101022d0117bb032d0101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010100000101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
1010101010101010101010101010101010101010101d4c00101012e01020201010101010102131
302020202020201010101020201010101010101012d010101012d01020101010203013fd7382d0
10102020102020101010101010103130101382e24930101010101010101030213012e022d0101
01010101010101020202020101010101010101010101010101010101010101010102418d03010
1012d1301140bac2d0101010101010101020101010101010201020201021302010101010113130
213010101010101010201021302010101012d369a010202010201010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101000001010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
101010101010101010101010101010101010101010101010202d839022e010101010101010102
1301010101020101010101010101010101010101010101010101012e2d1303010103010302010
151472e02010101010213010101010101010101030301010125ad020202010102020101011301
01130201010101010101010102020202020101010202020202020202020202020202020201130
13163130313010113012e723d01020202020202010101010101010101010113010201012d0130
01130101010102131313130202032d010101010101010101362b0201010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010000010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010213d24e01013001010
10102020201010201010101020101010202131302020101010101010101011301011301011313
01010101022ecdc203020113030201020102130201010113020101132d0224bb01010101010201
0102011301012d012d01010202010102130101010101010101010101010101010101010101010
1010101010192340201012d010101030b4a010101010101010202010202010102020101030101
013f316db7131302013001010101010101010101020201010101010101170b0201010201010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010000
1301010101010101130102130213010202010202021301010101010101010101012d010101032
d0101010101020301010101010101012e01130113012d011301020101130101030101139faf010
10101020102010313010202011301021302010101021f668501020101011301021302013001010
11301130102012d0103cd9d130201010102010101010101010101010101020101012cb0012d010
301011302010301130102020101030201010103012d0101010301010201010301013001010101
2d012d0101020101134134010102010101012e40dc0101130201011313011301010113132d0103

0101012d01aa7bcd30010201010102010103010201011301130103020201020191b00101010202
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
010000010102020313030101011301010201012e01130201011303012e1301010301010101012
d010102010114030101010102011301012d020102130101010201030301010101010101010103
e34b010101010102010101010302030103010101012d2e020120d0c02e02132d13010130130102
01010101020301020201010201acea13020101010201010101010101010101130202010101b6ba
012e01505268cd7f6850394468517f44ac141468af50504450cd7f2d38ac0101122eaf022d014b01
2d68012e305239cd1301036fe202011301010101145e8e02011301141301527f020213010101011
30101d67f01131bc62d01010103010301010303012d3802301301010102012d0101259a0201010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
101010000010302012d0101010313010201012d01010101130101010113010102130101032d01
01010101132d0301012e2e011303010313010201010301033001132d0101010201012d1301030
103e051010101012e014b6ca7030201013f440203032ddcac0102b654b85113010113d65201011
3524e302d14502dd64e300301130151d813020101010201010101010101010101030201010201
254003010191e57b583660c28eb02b8eb39724d490a758f474a78fc20162406d06c026461102029
af0230f869d7dc615555a130202777402020201010101145e8e0201010101c7c63509b301019e90
d12713380df6341d0123a8e0661b014dbb9007af017acc9b0766b507789bb0662c0102016184130
20101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010
Inheritance of the scoped memory area stack
When a schedulable object is created, its initial memory area can be set. This is done via a parameter
to one of the constructors. For example, the RealtimeThread class (see Chapter 12) has the
following
constructor.
package
javax.realtime;
public
class
RealtimeThread
extends
Thread
implements
Schedulable{
//
constructors
public
RealtimeThread(SchedulingParameters
scheduling,
ReleaseParameters
release,
MemoryParameters
memory,
MemoryArea
area,
ProcessingGroupParameters
group,
Runnable
logic);
...
//
methods
...
}
The initial stack of a created schedulable object is determined by the value of the initial memory area
(the area parameter) and the currently active memory area as follows:
If current area is the heap and
the initial memory area is the heap, then the new stack contains only the heap memory area;
the initial memory area is not the heap, then the new stack contains the heap and the initial
memory area.
If current area is the immortal memory area and
the initial memory area is the immortal memory area, then the new stack contains only the
immortal memory area;
the initial memory area is not the immortal memory area, then the new stack contains the
immortal memory area and the initial memory area.
If the current area is a scoped memory area and the initial memory area is the currently active
memory area (or null), then
the new stack is the parent's stack up to and including the current memory area.
If the current area is a scoped memory area and the initial memory area is not the currently active
memory area, then
the new stack is the parent's stack up to and including the current memory area, plus the
initial memory area.

509

Important All scoped memory areas that are present on the newly created stack have their reference
note
counts incremented. For a real-time thread, this occurs when the thread is started; the
counts are decremented when the thread terminates. For an asynchronous event handler,
the counts are effectively incremented when the handler is first capable of being released
and decremented when its last release has finished. In other words, the memory
associated with a scoped memory area containing an asynchronous event handler cannot
be reclaimed until that event handler is waiting for a new release and no further releases
are possible.
Manipulating the memory area stack
There are a group of static methods and one instance method available in the RealtimeThread
class that enable the memory area stack to be manipulated. They are self-explanatory and are
defined below. Note that the getMemoryArea method returns the default memory area for the realtime thread. This is the active memory area for the real-time thread at its creation time. This is the
only memory area that another schedulable object can acquire from a real-time thread (as it is the
only
one
that
does
not
change
dynamically).
package
javax.realtime;
public
class
RealtimeThread
extends
Thread
implements
Schedulable
{
...
//
methods
public
static
MemoryArea
getCurrentMemoryArea();
public
static
MemoryArea
getOuterMemoryArea(int
index);
public
static
int
getInitialMemoryAreaIndex();
public
static
int
getMemoryAreaStackDepth();
public
MemoryArea
getMemoryArea();
// Get the initial (default) memory area for this.
...
}
The static methods can also be called from event handlers as well as real-time threads. The
getMemoryArea
method
is
also
declared
in
the
AsyncEventHandler
class.
package
javax.realtime;
public
class
AsyncEventHandler
implements
Schedulable
{
...
public
MemoryArea
getMemoryArea();
// Returns the initial (default) memory area for this.
}
Entering and joining scoped memories
Scoped memory areas can be used by schedulable objects in one of two modes of operation. They
can be used cooperatively or competitively. In cooperative use, the schedulable objects aim to be
active in a scoped memory area simultaneously. They use the area to communicate via shared
objects. When they leave, the memory is reclaimed. An example of cooperative behavior is given in
Section 8.7. Of course, two groups of schedulable objects might use a scoped memory area in
competitive mode, but within each group, the schedulable objects use the memory in cooperative
mode.
Where the schedulable objects cannot guarantee to be simultaneously active in the scoped memory
area (but nevertheless wish to communicate through it), it will be necessary to keep the area alive.
This can be achieved by creating a real-time thread within the area. The last schedulable object to
use the area can then inform the thread that it is time to terminate.
When schedulable objects are using a scoped memory area competitively, the goal is to make the
most efficient use of memory. Consequently, the schedulable objects are trying to take their memory
from the same area but are not using the area for communication via shared objects. In this mode of
operation, it is usually required for only one schedulable object to be active in the memory area at one
time. The intention is that the memory can be reclaimed when each of the schedulable objects leave
the area (the reference count should become zero in this case). However, it may be difficult for the
programmer to ensure that the area does becomes inactive. There are two ways that this problem can
be solved. The first is that the programmer has to use the current synchronizing mechanisms of Java
to coordinate access to the memory. The alternative is for the RTSJ to provide mechanisms that
facilitate the competitive sharing of scoped memory areas. Usually, the RTSJ has shied away from
providing synchronization, preferring to require programmers to provide their own. However, in this

instance

it

does

provide

some

help
in
package
ScopedMemory

the

ScopedMemory
class.
javax.realtime;
public
abstract
class
extends
MemoryArea
{
...
//
methods
public
int
getReferenceCount();
public
void
join()
throws
InterruptedException;
public
void
join(HighResolutionTime
time)
throws
InterruptedException;
public
void
joinAndEnter()
throws
InterruptedException;
//
Throws
IllegalArgumentException,
//
ScopedCycleException.
public
void
joinAndEnter(HighResolutionTime
time)
throws
InterruptedException;
//
Throws
IlegalArgumentException,
//
ScopedCycleException.
public
void
joinAndEnter(Runnable
logic)
throws
InterruptedException;
//
throws
ScopedCycleException.
public
void
joinAndEnter(Runnable
logic,
HighResolutionTime time)
throws
InterruptedException;
//
Throws
ScopedCycleException.
...

The join method simply waits for the reference count to become zero (with or without a timeout).
Note that it is difficult to determine whether the timeout has expired or not (see also the comment on
timeouts with Java in Section 4.2), as by the time the thread actually executes on return from join
1. the timeout may have passed, and
2. the reference count may have been incremented or decremented (by another thread)
between the time the first thread was scheduled and when it actually executed.
The joinAndEnter methods (with and without timeouts) provide the ability to wait for the reference
count to become zero (and any object finalization to complete) and for the memory area to be entered
as an indivisible action. As with enter, a Runnable object can be provided, or the one given when
the memory object was created can be used. If no Runnable has been given, joinAndEnter
throws IllegalArgument Exception immediately.
Warning If a timeout is given with joinAndEnter and the timeout expires, the memory area is
entered irrespective of whether the reference count went to zero or not.

8.7 Portals
When schedulable objects are using scoped memory in a cooperative manner and there is no other
relationship between the schedulable objects, it becomes difficult to see how they can effectively
share objects created in the scoped memory area. To share an object requires each schedulable
object to have a reference to that object. A reference to an object can only be stored in an object in
the same scoped area or in an object in a nested scoped area. It cannot be stored in the immortal or
heaped memory areas. Consequently, unless there is some relationship between the schedulable
objects, one schedulable object cannot pass a reference to an object it has just created to another
schedulable object. The RTSJ provides portals to solve this problem. Each scoped memory area can
have one object that can act as a gateway into that memory area. Schedulable objects can use this
mechanism
to
facilitate
communication.
The
interface
is
shown
below.
package
javax.realtime;
public
abstract
class
ScopedMemory
extends
MemoryArea
{
...
public
Object
getPortal();
// Throws MemoryAccessError --- if the portal is a heap
// reference and the caller is a no-heap schedulable
// object, IllegalAssignmentError --- if the returned
//
cannot
be
legally
stored
in
the
caller's
//
allocation
context.

511

//
}

public
void
setPortal
(Object
o);
Throws
IllegalAssignmentError
--if
the
object
//
is
not
allocated
in
the
scoped
instance.

Important Portal objects are intended to be objects that are created in the associated scoped
note
memory area. To avoid IllegalAssignmentError being thrown, getPortal
should only be called on a scoped memory, S, if S is the current active allocation
context or S is below the current active memory context in the schedulable object's
scoped memory stack. This applies even if the portal object's reference is being
assigned to a local variable in a method.
Example of the use of portals
To illustrate how portals can be used, consider the example of an object that controls the firing of a
missile. For the missile to be launched, two independent real-time threads must call its fire method,
each with its own authorization code (here, all problems associated with the timing of the calls are
ignored).
The
interface
is
shown
below:
import
javax.realtime.*;
public
class
FireMissile
{
public
FireMissile();
public
boolean
fire1(final
String
authorizationCode);
public
boolean
fire2(final
String
authorizationCode);
}
The two real-time threads call fire1 and fire2 respectively. Whichever calls in first has its
authorization code checked and is held until the other real-time thread calls its fire method. If both
threads have valid authorization codes, the missile is fired and the methods return true. If either of
the two thread's authorization code fails, the missile is not fired and the fire methods return false.
Now, in order to implement the fire methods, assume that objects need to be created in order to check
the
authorization.
Let
the
following
class
implement
the
required
algorithm:
public
class
Decrypt
{
public
boolean
confirm(String
code)
{
//
Check
authorization.
}
}
Furthermore, to obtain the required synchronization, the two real-time threads must communicate.
Assume that the following class is used for this purpose (based on the Barrier class given in
Section 5.7). The threads call waitB indicating whether they wish to fire. If both pass true, wait
returns
true.
public
class
BarrierWithParameter
{
public
BarrierWithParameter(int
participants)
{
requiredParticipants
=
participants;
arrived
=
0;
confirmed
=
true;
}
public
synchronized
boolean
waitB(boolean
go)
{
arrived++;
if(!go)
confirmed
=
false;
try
{
while(arrived
!=
requiredParticipants)
wait();
else
notifyAll();
}
catch(InterruptedException
ie)
{confirmed
=
false}
return
confirmed;
}
private
final
int
requiredParticipants;
private
int
arrived;
private
boolean
confirmed;
}
Now the goal is to implement the FireMissile class without using extra memory other than that
required to instantiate the class. All memory needed by the fire methods should be created in scoped
memory, which can be reclaimed when the fire methods are inactive.
In order to implement the required firing algorithm, the class needs two Decrypt objects and one

BarrierWithParameter object. Hence, the constructor for the FireMissile class undertakes the
following
actions:
import
javax.realtime.*;
public
class
FireMissile
{
public
FireMissile()
{
...
SizeEstimator
s
=
new
SizeEstimator()
s.reserve(Decrypt.class,
2);
s.reserve(BarrierWithParameter.class,
1);
shared
=
new
LTMemory(s.getEstimate());
}
private
LTMemory
shared;
...
}
A SizeEstimator object is used to calculate the memory for the three objects. A new LTMemory is
then created. Now the fire methods can be presented. Given that both the calling threads will need to
access the BarrierWithParameter object, they must both enter into the same scoped memory
area. However, care is needed because the shared memory area must only have a single parent. As
this class is unaware of the scoped stacks of the calling threads, it needs to create new scoped
memory stacks. It does this by using the executeInArea method to enter into immortal memory.
The associate run method can now enter into the scoped memory area. Once again, to avoid having
to create dynamically anonymous classes, named internal classes are used. In this instance, two are
needed; one to enter into immortal memory and another to enter into the scoped memory.
import
javax.realtime.*;
public
class
FireMissile
{
public
FireMissile()
{
fireController1
=
new
FireAction();
fireController2
=
new
FireAction();
immortalController1
=
new
ImmortalAction();
immortalController2
=
new
ImmortalAction();
SizeEstimator
s
=
new
SizeEstimator();
s.reserve(Decrypt.class,2);
s.reserve(BarrierWithParameter.class,
1);
shared
=
new
LTMemory(s.getEstimate());
}
class
FireAction
implements
Runnable
{
String
authorization;
boolean
result;
public
void
run()
{
//
Coordinate
the
firing
of
the
missile.
}
}
class
ImmortalAction
implements
Runnable
{
FireAction
fireController;
public
void
run()
{
shared.enter(fireController);
//
Enter
the
shared
scoped
memory.
}
}
public
boolean
fire1(String
authorizationCode)
{
immortalController1.fireController
=
fireController1;
fireController1.authorization
=
authorizationCode;
ImmortalMemory.instance().executeInArea(
immortalController1);
return
fireController1.result;
}
//
Similarly
for
fire2.
private
LTMemory
shared;
private
FireAction
fireController1,
fireController2;
private
ImmortalAction
immortalController1,
immortalController2;
}

513

Once inside the scoped memory area, the required objects can be created. However, a problem
occurs with the shared BarrierWithParameter object. In order for both threads to access the
BarrierWithParameter method they both must have a reference to it. Usually, the reference
would be stored in a private reference declared at the class level. However, this is not possible in this
case, as it would break the RTSJ assignment rules because the BarrierWithParameter object is
in an inner (more deeply nested) scope. This is where the notion of a portal can be used. The first
thread to arrive attempts to obtain the portal object for the shared memory region. This is null, so it
creates the BarrierWithParameter object and sets it up as the portal object. The next thread to
arrive can then obtain the required reference. When both threads leave the shared memory area, all
the memory is reclaimed. However, even here, things are not quite that simple as there is a race
condition between checking for the existence of the portal object and setting a newly created one.
Consequently, a lock is needed. The only locks available at this stage are those associated with static
objects, those associated with Class objects, and the lock associated with the scoped memory object
itself! The latter is used here. The complete fireAction class is given below.
class
FireAction
implements
Runnable
{
String
authorization;
boolean
result;
public
void
run()
{
BarrierWithParameter
sync;
Decrypt
check
=
new
Decrypt();
boolean
confirmed
=
check.confirm(authorization);
synchronized(RealtimeThread.getCurrentMemoryArea())
{
sync
=
(BarrierWithParameter)shared.getPortal();
if(sync
==
null)
{
sync
=
new
BarrierWithParameter(2);
shared.setPortal(sync);
}
}
result
=
sync.waitB
(confirmed);
}
}
Figure 8.9 illustrates the main interactions between the objects. Each real-time thread calls its
appropriate fire method. The figure illustrates a real-time thread calling fire1. The fire1 method
calls executeInArea to enter immortal memory and runs the immortalController1, which then
enters into the Shared (scope) memory area. This then runs the fireController1 object, which
confirms that the correct authorization has been given. Once confirmed, it tries to get the portal object.
If the portal object is null, it is the first to arrive. It then creates the sync object (step 8a) and sets it as
the portal object (step 8b). If it is not the first, getPortal returns sync. The waitB method is then
called to determine if the missile should be fired.
0100090000030a94010000000db2000000001610000026060f002220574d464301000000000001
00de3e000000000f00000000200000fca00100fcc00100010000006c0000000000000000000000d
20100005401000000000000000000006a400000f32e000020454d4600000100fcc001000c000000
010000000000000000000000000000000005000020030000c40100001a01000000000000000000
0000000000e3e306006e4e0400460000002c00000020000000454d462b014001001c0000001000
00000210c0db01000000600000006000000046000000485b00003c5b0000454d462b224004000c
000000000000001e4009000c00000000000000244001000c000000000000003040020010000000
040000000000803f214007000c0000000000000008400005945a0000885a00000210c0db010000
000000000000000000000000000000000001000000ffd8ffe000104a46494600010201004800480
000ffed0bc650686f746f73686f7020332e30003842494d03ed00000000001000480000000100010
0480000000100013842494d040d000000000004000000783842494d03f30000000000080000000
0000000003842494d040a00000000000100003842494d271000000000000a0001000000000000
00013842494d03f5000000000048002f66660001006c66660006000000000001002f6666000100a
1999a0006000000000001003200000001005a00000006000000000001003500000001002d0000
00060000000000013842494d03f80000000000700000ffffffffffffffffffffffffffffffffffffffffffff03e800000000
ffffffffffffffffffffffffffffffffffffffffffff03e800000000ffffffffffffffffffffffffffffffffffffffffffff03e800000000ffffffffffffffffffff
ffffffffffffffffffffffff03e800003842494d0408000000000010000000010000024000000240000000003
842494d0414000000000004000000023842494d040c000000000a3500000001000000700000005
20000015000006ba000000a1900180001ffd8ffe000104a46494600010201004800480000ffee000
e41646f626500648000000001ffdb0084000c08080809080c09090c110b0a0b11150f0c0c0f15181
31315131318110c0c0c0c0c0c110c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c
0c010d0b0b0d0e0d100e0e10140e0e0e14140e0e0e0e14110c0c0c0c0c11110c0c0c0c0c0c110c0
c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0cffc0001108005200700301220002

1101031101ffdd00040007ffc4013f00000105010101010101000000000000000300010204050607
08090a0b0100010501010101010100000000000000010002030405060708090a0b10000104010
30204020507060805030c33010002110304211231054151611322718132061491a1b1422324155
2c16233347282d14307259253f0e1f163733516a2b283264493546445c2a3743617d255e265f2b3
84c3d375e3f3462794a485b495c4d4e4f4a5b5c5d5e5f55666768696a6b6c6d6e6f6374757677787
97a7b7c7d7e7f71100020201020404030405060707060535010002110321311204415161712213
0532819114a1b14223c152d1f0332462e1728292435315637334f1250616a2b283072635c2d2449
354a317644555367465e2f2b384c3d375e3f34694a485b495c4d4e4f4a5b5c5d5e5f55666768696a
6b6c6d6e6f62737475767778797a7b7c7ffda000c03010002110311003f00f5540c7caf5abb1ef61a
856f730ef047d1fa4e1b83773377e7fd07a3a857532a043044ea75993fbdafe73925395d4eb7de4b
b1ef2d897b4b324547716b59b36fa3737fc1ff00e0b62bd8d750ca9ad75cd2f3ab81787c39dcb03fd
bbfdcad249294924924a528d8d6beb731da35c08274e08fe54b5492494e3598b8b5060c7c9796cb
74195e9b5a181acad8c63659e9fb7f9b6350aac3c2650dc8bb21e2fc76581ac7e51b7da493b5f61d
aeb3d6dac7d8c77fe8a577a8b6d1730d393754fb0b5a594863e037d476f7d576efd1bdee6d763eaa
fd4fe6bf31131d99a71051692f716b9aebed80e24f07d2a5ac6bbff00494d3b860f48b2ab7273eeaf7
30b1adb6c0e6c3437dc6a2373dcddbf4d38fac1d277167ed0048e61ba469aeed9b7f3968eccbfdfaff
00cc77fe954fb72bfd257fe61ffd2a929ccabeb274b7825d92eae23e9341e4b869e90b3f7776efa1fa
4febab58bd4b1335961c4c8361adbb8fb76f33b7e9b19fbaacedcbed657ff6d9ff00d2aa2eab29c1c3
d4afdc209f4ccc7fdbc929ffd0f554924925290f20914584120ed3a8d0f088a2f635ec2c77d17083db4
3f0494e0e6e76563e55b4fad8b5867b9adb6dc8dfb447b9db46dfa2fafe87d04219f9a6c6b4e4e216
b0b9d68aacbe5cdf76c6d6f2cb7e8fd37bff0049bffebacb16ff00d9292492249e49d4a5f65a34f6ea3
83e0929e79fd4ee2d819b84d2f1b697b6dbc82e77d1756e97576ff677ad3a7173db53ce69618618f
42cb64b835bfbee6fd277a8af0c5a070d0148d2c20825c41d08dcefef494c29b31835c6a6ec2d00bd
81b0f1e1bab037a159d45cd73bd3c6b6fa835a59655b1c1e4fa9bd8ddcf67f35e97bb7ff00a455dfd5
31aedadb70f283b7b1ad22a748dcfd9bdb652e77e8d90db2d7b1ff00cca2d6f155ed756d179c8f69b
80daedac0f2d75ce8db633736cf49ecff00a75fe95253631725f90d71763db8fb4c45a1a09feafa6fb1
1d08bee024b1a07897f8ff006147d77ee2d8ae40923d4d60684fd04949d242dd93fe8d9fe79ffd26a
2ebaf6b1cf35b76b41261f3c7d2fcc494ff00ffd1f554924925292492494a492492529249339cd6b4b
9c61ad1249ec024a439a1aea0b0b9cd2e734345661ce2087fa7dfdb66ddb6ff00c0fa8a9e463d793
8afacb1f71366cc9f4bf464c37e8d0fb0d2df4aa73b67e8dffe93fc3faa8a2d6db7bbd50eac16ec63e4
37617c6dab53ea7daad6fbff00e0d9e97fd725918a0bd86bc87636edacdaddb05ad161f4eb0efa2ff7
eeff00ad24a735bd1b15ae0e6e266c8359137b481e91dd47b5d9259fa3527f49c6b5a596e1e5bda5
c5d06dafe938d8e7bb70bf77bbed17ff00dbaaeb3a67a6f3b7372017cbb697b4899fa7b5d5bbe8ee6
b767f35ff0007bd5ca6b1554ca838b831a1bb9c65c6044b8a4a719fd2e879738e2666f719ddeb573
30e6eedbf69d9f45eff00cd443d3a90e7595e16436d2e2f04daddbbcee3b8b064eddbbec7d96376fe
91fef5b0924a7fffd2f554924925290b21ad731ad700e697b641e0ea8a8198cbdf8ee18db05da161b
276c820fbb67b925397d67d2c6b69d96b7158e6bcbc0a1b68805837edfa5f4ac6fe658a9faf496868
ce60f4eb6b8d8719aedf3ed7d9eff77d2fe76967f32b55d575621bb3eced7434be5f7386e91eab5ba
b3dbb37fa6f447ba5f633f48c15db535ae25e0383bd32763f77e93e9398929a78d8672cbada726b7
d4db0070fb386ead2c73eb05ffe0decf67b7f7d5fc8c6c3aab6d9e956c0d7b0eeda0443dbaee433f69
b18ff004590faee0c8b9d6301ac16fa8f6439dbfd87f46f42b075783e96353bdb0e6175f63da487fe73
7633fc0fbffe312525cfa7a63b1c0c9a85eca89c8aea682f7b9c039fbe9637dd6dbee7fd154f29dd0ea
b087e2db6d8f7169db55aed5c7dc77c7a75edf51eff00a7ff0016b4df85439a5806c6bbe906e80f632
cfa1eefeaa66fab8b486960b2aa98037d32774347d1d96b8f87fa649487a7d7d3cdafb71697d56068
692f6bdb2d24d8368b3f94afaadf6cb3fee2ddff0043ff004aa5f6bb3fee2ddff81ffe95494d9495539b7
0ff00b4779ffb6bff004b289cfb409761de1a3527f45a0f1fe79253ffd3f554965bbaf6054432fcaaaab2
3dcd2098706b5ef668efccf51886ff00acdd26b1fa4ccad84980d2c713c7a81dfa32ff006399f45c929
d841ca1baadb31247bb4d35fa7eef6fb3e9aae3ab62b2bc7379732cc8adb606b58f781b84fd3ad8e
6b7fb6a27aaf4cc8ac025ee63c4806ab47d187ffa30e6b92539981d5ba7300b727aa0c8606ed756f
a83752fd8cb7d9bbff55abaeebbd11ae70739a033690f2df6b8386e06b3f9db76fbff00714eccbe90c
6b5ee0edaede43857610057f4dcef6fb3fefe9c6474a3b76b1e4bdfe981e9d83dddfe935bfe724a45ff
0038beafb480fb98c71d8034b49fe703df51f635cdfd232a73ff00f3e29d3d57a466fa4dc3b5965961a
df580d209693ea6ef735bb7d8d52664f4873c541ae0e702e036591b4cbb76edbb3ddb37283737a5
487b2ab1d63497068aac2e961f71fa3b7737f9cfdf494eaa85c09a5e0093b4c01f055b1bab60e5dbe
8d0e7b9feee6bb1a3d8763fdf656c67d2ff003d5c494d0cfc7399e9ecc9c8c5f4ddb81a5a412478efa
dfeddbb98e6a03ba639ec7b5f9b9277d8db49db0439ac14b7d38afdadf636cff8ff00d2ad64925392f
c0ca771d4b2802d0d77e8c4e87e9348ac6cb3f94afdd68752f6b5af25cd200d8ee48feaa3a4929fffd
4f4bc7fe8f57d3fe6d9f1e3ba99fa0efa7df8e17cb8924a7ea2e9dff27e37fc4d7c7f55a8edefc73d97ca
c924a7ea87f1db91cf1ca92f9552494fd5492f9552494fd5492f9552494fd5492f9552494fd5492f955
2494fffd9003842494d04060000000000070005000000010100ffee000e41646f626500644000000
001ffdb008400040303030303040303040604030406070504040507080606070606080a0809090
909080a0a0c0c0c0c0c0a0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c010405050807080f0a
0a0f140e0e0e14140e0e0e0e14110c0c0c0c0c11110c0c0c0c0c0c110c0c0c0c0c0c0c0c0c0c0c0c

515

0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0cffc00011080100015e03011100021101031101ffdd0004002
cffc401a20000000701010101010000000000000000040503020601000708090a0b010002020301
0101010100000000000000010002030405060708090a0b1000020103030204020607030402060
273010203110400052112314151061361227181143291a10715b14223c152d1e1331662f024728
2f12543345392a2b26373c235442793a3b33617546474c3d2e2082683090a181984944546a4b45
6d355281af2e3f3c4d4e4f465758595a5b5c5d5e5f566768696a6b6c6d6e6f637475767778797a7b
7c7d7e7f738485868788898a8b8c8d8e8f82939495969798999a9b9c9d9e9f92a3a4a5a6a7a8a9a
aabacadaeafa110002020102030505040506040803036d01000211030421123141055113612206
71819132a1b1f014c1d1e1234215526272f1332434438216925325a263b2c20773d235e24483175
49308090a18192636451a2764745537f2a3b3c32829d3e3f38494a4b4c4d4e4f465758595a5b5c5
d5e5f5465666768696a6b6c6d6e6f6475767778797a7b7c7d7e7f738485868788898a8b8c8d8e8f8
39495969798999a9b9c9d9e9f92a3a4a5a6a7a8a9aaabacadaeafaffda000c03010002110311003f
00f7f62aec55d8abb15762aec55d8ab02f27ebdacdec7ac7af7705c983ccf7fa6235e482129670b51
6388469f1bafeca9a7215e4d8abcbb45fcd2f32e89a441e64d4d46afaceada645a8c903dfcd169e8d
71ae43a6058a068e4f4e8b32b554fc4578715fb45567fe59fcc7d67ccbab6b1a44f656b6906926ff00
4cbdba82ed1ae23d574e588b9485c7330b894bc6ec80aaaa1707d51455937e59ea77bad7e5d794
b58d4ae0dd6a17fa3d85d5ddcb5394934d6c8eee78802a5893b0c5594e2aec55d8abb15762aec5
5d8abb15762aec55d8abb15762ac67cfd1e892f962ed3cc5a6cbace92c5167d262865ba5bae6dc1
63961895cbc449ac81959388e4c36c55804375ad7937c89a458f95ee6feea3b3b7b58268a4d32ee
5faad9c97ad1cb3c4b25b999c42a7d38e12ace96eab37a4cbbe2aa6de64fcd2d3b50b294bdc6b76
12e8f2f2106946d237f30c514d25b46eb22fab1c172814bb36d1ceb1a738bd6f4c2ade91e6df3c4cf6
10ea779a8fd435459a4b4d520f2f5cac905da2db70b4ba8a48b9053ca622531c49feeaf57947c9d5
416a1e67fccb9f539f4d0daa5be9f68f31bdbab7d31b90583ccf0c31fa727a0c24e5a633337a7cb9c7
fbc1f172c5524fcc19fce7e71f26f986cb5ab1b8bb44d42c238fcbcba35cb490bdb6bd0d268ae38719
a37b3059b87a9f07272d1fc498ab2ad27cd9f98763aeeaf26a76f7577a2467cc69a6d80d35a28d3f4
7deda45a584921879b09a39a5f88f20e91f35fb0c4aa96da4bf985e4d8fcc5e5488df1b99afb49d674
8d612297574316ad791c3ab43eac9070ac4e26b85423f7714cb4f813655334f31fe615b5dead1ea1
3ea0f069d726c3ead068ecf3c909beb78a0bd4b911fa2caf6eccf308a398a7291962430702ab3dfcb
bd535fd63c9ba5ea1e6a81ad7cc122ca97b0bc4f6ec1a299e352639155872550df656b5e54a62aca
3156aa3c7157725f118ab5cd3f987df8abb9a75e429f318aad33c23ac8a3fd90c55bf5a1ff7e2ff00c1
0c55afac403aca9ff043156beb36ff00efe4ff00821fd71577d66dff00dfc9ff00043fae2aff00ffd0f7f62a
ec55d8ab1f9bcc57b35f5ed9685a61d4bf46b7a57b3b4f1dbc62e0c692fa2950c59f83a9350a83953
9d6b45531d1b558b59d3e3be8e192dd8b4914d6d380b2c5342ed1c88dc4b0aab29155255bed292
b8aa3f15762ac42ebcc9e4cd22e26b592c6e1258ae4cd2fd5f46be990dd74328786d59598d7fbc52
7fd6c552e3e67fcbb68844345b968e24f4e34ff000e6a455503faa140fa974e639d07ed7c5d71559e
49f3a797bcddae6b1a5be88f63e69b48231abcb2584f1c33dbbfc283eb13dbc2c6bfef99424817e2e
1c3e2c559f5bdb5bda411db5a44905b4438c50c4a11154740aaa0003e58aaae2aec55d8abb1576
2aec55d8abb15762aec55d8abb15762aec55d8aa51ac799f45d0648a1d52792292652d1848279e
a01a1de24703e9c552aff009595e4fad3eb5735ff00b67df77ff9e18aa5527e6f7966dfcc1a7e89722e
161d6274b3d26f12daec87ba715f4e54781193a1f8c738c0fef1e3c55e838abb1579a7e5ff00923c9
3aaf92741d46ef40b1b9babab38a59ee26b78de492475ab3333024b13d49c55920fcbaf212fd9f2d6
9a3e56b17fcd38ab97f2fbc82ea0279774c6553514b68880481fe4e2adff00cabbf21d797f86f4daf8f
d562ff9a715551e43f2529a8f2fe9e08e87ead17fcd38ab6be46f262fd9d034f1ff0046d176ff00638aa
e3e52f274478368da7a192bf09b78872a0a9fd9de83155cde50f28d7d46d16c37db91b78b7aff00b1
c55507953cae050689614ad7fde587affc0e2ad9f2af960d2ba2d89a74ff004687fe69c5570f2c796c0
a0d1ec40ff98687fe69c55dfe18f2d7fd59ac7fe9161ff9a7154ab57f2e7979350d055748b20af7eeae
05bc40102c6e8d0fc3b8a807157fffd1f7f62aec55d8abcbbf32f40f30dddf5a1f286a77de5c9afa6b73
ab6a969244b04ec668e08a168e4490f37a8e7320565863e1c9b9271559e796ed52cf43b1816cdb4
f611879ad1e4333a4d212f2f291b7918b962643bbfda3d71544ea77eda6dafd656cee2f8f20be85a2
2bcbbf7a3328a0f9e2a921f385c86a0f2beb4478886de9f8dc0c55dfe2fbaa13fe17d6aa3b7a36d5ff0
0a88c554dfce5783e11e52d7181eeb15a0ebf3ba07154269fe615d1ed12cb4cf23eb36b6a9b88a18
2c9454f527fd2f727b93b9c55147ceb7f5ff943f5e3efe9d97fd95e2ad7f8d6ff00fea4ed7bfe45d97fd9
662ac8b4cbe9351b28af25b3b8d3de4ad6d2f022ce94247c42379177a54518ed8aa2f15762aec55
d8abb15762aec55d8abb15762aec550da85fdae976925f5eb325b420191911e5615200a2c6acc77
3d862a927f8f3cb34afaf714ebfef0deff00d51c55637e60795d41267baa0f0d3ef89fb8418aadff0095
89e56ad3d4bdff00b866a3ff0064f8aa0479bfc890ea52eafe9dd1d5254589ee8e97a8bca235e88a4
db9e2bbd78ad013be2a8d3f989e57069cefbe8d2b523ff62d8abbfe562795ff009eff00fee15a97fd93
62a86fca69e1b9fcb5f2c4d6e4b42d6117166478c9a0a1f85d5586e3c3154e3ccbaee95a0416571a
b6ae9a3c135dc30acd2700b29624fa4c64042ab01f13edc46fc862af9a74cfcd54f2e7951edbcafaec
162f0c5e6dd51ad3eaf1b34b7c35a4974e8d9654e549ade672a8b46741f095e18aa67ac7e78eae8
dabdb691e698a41a7c7e62974fb8fab40ed74f66b652e9887f7414890c97118e017d558ff009c72c5
532b9fce1d68ddeb96163e61824b0b53a9a681aaf081e7bad4561b49b4f82588222fd5dda5b84f50
04a98b83cc8c2aeaa9c7f9a1ac5e5ee95a9ea5e666845af98754b5bdd2ac0dafa46ce2d3ee5ad3e1
2a1a58de7f4d165693d263c3e343f1e2a96bfe61daebba868379e61bf5bc5b09f5378669a008df53b
ef2e2fc32058d0126ea4921e3c7ed811fc54562aa5363756fa7797fcabe57bcd4e3b8f297953cc3a1

dd796dda65b9b8b9b1b8b88ae49b850cd220d3a33340dcd40a703f693156636bf99fafdd0d3e47f3
23c125feaf6b65add8fd4edd469d10174b74d6f70dea09616e303a4a15d5363eafef1a35550d6ff9a5
e688e7d2e09f5d92e348bc874a975fbef46dd2eecbd437d15dfa08225dc18ed1e55e12ba2c8ee8b4
3f0aaad079e3ce5a869dadcfaa79ce1d1354d2f4cb6b9d2a3e3630d95ddcfad724a4d24d139e72c3
1db89638e41e8c93371fe50abd9bc89abcbe60f2d5aeb934cef2ea45af0dacc62692cd6e0faa968e6
1f879428ca8dbb1e40fc4715466b3ff001d1f2f7fdb424ffba7dde2afffd2f7f62aec55d8ab10d56cb54f
384f359c3712e95a2583d60bb542b7171a842d5475a95a430b80dff17b8a57d25fdeaa9e6817f79a
8699149a9406db5388b5bdf45c4aa7af0b14768ea4d637239c66a7e061df154cf15762aec55d8abb
15762aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb15617a379f4de6bdafe
87ab5a4165268d258aa3daddadfbb2ea723c50a4f1471abc32f24ab2d248c23ab7abf6b8aadc3f9af
f97d3c53cf0eb48d6f6f15d5c4b37a5388fd2d3dd63b965631d1844ce049c6bc7154d34ef3b795f56d
6a7f2f69fa8acfabdb1b849adc248a03d9bac73a076508cd1974e6aac59432b5389c553fc55d8ab17
fcb800790bcb806e3f47dbeff00f3cc62ac9648a298059516400d40601857e9c554fea5664d4dbc55f
f00517fa62adfd52d074823ff00805fe98ab7f55b61d218ff00e047f4c55df55b6ff7ca7fc08fe98ab7f57
8074893fe0462ae10400d44480f8f118aae11c63a201f40c55dc13f947dd8aa1efb4dd3b54b6367a9
d9c379685d2436f711a4b1f389c488dc5c1155650ca7b30ae2a8ac5527d66bfa4bcbb4ff00ab8495ff
00b87dde2aff00ffd3f7f62aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb157
62aec55d8abb15762aec55d8abb15762aec558ddb794843a9cbaec9a8cd26bf345059bea2238118
d9db5cbdc884a08f890dcd919a9cb89f80a36f8ab0dbafca9f296a5e5f4d313cc3771d86951eb7a65
dde452da57d2d726135ec32b3c2c8a51c2f1202b2538b577c55da45a796a2d7c6b7e557d4bcc97b
6f7faa4f21b5588580b8d5844670d7322c51158fd15e3e9c8ecb53cb9f6559d5f79ab4ad0ac20b9f3
35cc1a6ddca103592c86e2532c84284895144929a9a0e11efe18aa1cebbe60d418c7a2686f14552
bf5ed5dfea71fd9a86485449336fb51d61f9e2a90681e58fccff002fe8b61a25bf98f43960d3e04b78e
49346bbe6cb18a0ad35302b4f6c55345b0fccfdf9ebfa1fb71d1eebf8ea47156bf477e687134f30e89
cbb1fd0d754fa7fdc962abc69ff009974f8b5fd16beda3dcff1d4b155e34efcc5aefe60d269e03489ff00
ef218ab9b4dfcc427e1f30e94a3fed91393ff750c55b1a5fe60d416f3269b4a6e068f2f5f1ff008e862a
e6d2fcfe41e3e64d394f63fa2243ff0063f8aacfd11f9894ff0094a34eaffdb19ffecbf156bf447e627fd4d
3a77fdc19ff00ecbf1577e87fcc5ffa9ab4effb833ffd97e2aefd0ff98bff0053569fff007067ff00b2fc5542
e3cb7e7bba96d2697cd36424b298dc43c748207330c9090c0de9a8e329fa698abfffd4f7f62aec55d
8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8ab
b15762aec5525f365c410e817f14bada79765b88258a0d5dcc41addd90812a09be1664ad541aef8
abccbca7e5d7b745b08f4a7f38c7631411e9fabead1cba7d96e4b33f0b979119ff006cc96d6bbb7da
7e58ab3f1a0f993529237d6b5b36965196ff717a2a7d563653b2892e1cbcc788ff7d183e58aa69a4f
97342d0831d2ac62b799d42cb734e771201d3d499f948e77eaecd8aa698abb15762aec55d8abb1
5762aec55d8abb15762aec55d8abb157ffd5f7f62aec55d8abb15762aec55d8abb15762aec55d8ab
b1563d67e6b5d4205bbb0d2350b9b476758e744802b7a6ed192034cad4aa9ea315571af5d1ff00a
516a3ff00036dff0055f1577e9ebba54683a8d7c296b5ff00a88c55dfa76efe1ff705a8d4f514b5dbe7f
e918ab8ebb77404683a893e14b5fe3718ab8ebd7829fee035135eb416bb7fd3c62ab4f982f7b7977
533ff00487ff6538abbf4fdef1aff0087b5207f97fd0ebff5138aad3e61d40529e5bd4dabd77b214dfde
eb156ff00c41a857fe51cd4e94ad6b65d7c3fdeac55aff10ea1b53cb5a9fbef6229ff004f58aadff116a
9bd7cb1a9edfe5d87fd9562a84d4fce1a969f6c251e57d45e79648ededa3792c63469e7609186717
2dc5791ddb8b53c0e2aac963e72d4cabea3a8dbe8d6c4ab1b4d2e3fac5c0dbe246bab95e2457f92
dd0ff958aa2349f27f97f47945d436c6e7520cce752be91ef2f3949f6a934e5dd41fe552a83a2ad315
4f715762aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb157ffd6f7f62aec55
d8abb15762aec55d8abb15762aec55d8abb15631e4978e2f275ac8ccb1c682e599cecabc6794927
a6de38abc834afce6d41f4ed016c751d26d6d65b1f2b7d62129249e9c9addecf657603bdc547a0b1
ac8031664ff0076b7138ab76ff9e1ad5cc96889aae9091f1d223b993d166123dfebd71a4dc480fae0
2848634b80bbf1e5566f4ce2a89b2fceaf30de407d16d3e4bbb79eda0b3503e0d607e979f4fbd3152
4ac4d041124f425b8f3e6ff00b9df1542597e736b42cb4bf31eabe60b08ecb50d0753bf5b482ccb42
2fed2ea08913fbd694b2c6d2395e69f0f266f81790558febff00993abeb7aa4f3697ab326ab0e95756
ba841a74acb37d42cfccf6f14f2c3183fdfb69c24951a31cc825a1fd9c55e8371e71f2268d2d86afe47
d7adc697a95cc1a66b9a90ba7bbb1b0b7f4ae6649ca49218d25798470c8e7fdf8beaf45c558f27e77
f998dd69b6d7771a65bdddd5d61610000026060f002220574d4643010000000000010000000000
00000f00000000200000fc800100fcc001009ba7de582213344752b6bd7f5c334ac00e504122ab2fc
225f4e4f8a87155fa27e706b975a3dbdd47afd85e8b0d37cbd2eb05a055b956d59bd2d42e9e9228a
5a01ea9448f6dfd4f871561be7ef3e4baa5c6af3dfead1ab2f96759b7b0b8b4b831c77b1dbeb7642c
ae9238dc8f5258848471fb6ab2327eeb6c559a7983f3b75ab78ef6e34ad534988c3ac5a69171613c
534b71690dc6b11dafd679031c6f1bd9335c86e6c3f6c7eec380ab3af2d6bf6b71f9a9e63d2ceb497
b4d174430c4b303135c092ffd768a30c5558afa4d204edc3976c559679a29f56d3ebff573b0ff00a88
4c553cc55d8abb15762aa09796925d4b631cf1b5ec0892cf6caea6548e52c119941a80c51b893d7
89c555f15762aec55d8abb15762aec55d8abb15762aec55d8abb15762aff00ffd7f7f62aec55d8abb
15762aec55d8abb15762aec55d8abb1562de428a37f27da432aac913b5daba30e4acad73282083
d4118ab08bed73c87a5f98ee6c752f2a69769e57b6d16df5d9b5392c08ba02eee5ad1626b3faaf30

517

432d4926a01dd715461f367e4b450de4f3e976d6f0e9f15c4978d2e8b247c3ea53c76b711d0dbeef
1bcb18745ab05756fb3be2aa90798bf266792e11b4cb1b76b65baf5cdd6926dc092c668ede78819
605acaaf2463d31576e69c41ae2aa575e73fc9cb182e9ff454325d59c579717ba7c1a33c97508d2fd
3371eb46b07eecc7eac67e3e3f0c88c3e13cb1542f983cd5f97b65e5bbfd4f4df2d593eb5068f73add
8e9fa8e9df548e5faa5a2debc2d298180758dd1994569cbe78aa617facf92349f31f967419fcb7a7f2
d78225d5e25bc012cee6ea2925b38dc70a9fac1827543fcd1eff6c62a8ad5fcc1f96fa424c5b415bd5
8a78eceb65a57af1bcb2de4764ea9208f8318e69156501aabbf5e271541db79abf2ded6d2ee6d5ac
f4b516577a8c739b2b17923b6b5d3ee9ad9e6b8e70298c210165723d2e7cf83ba2f2c553ad235bfc
b9d675e9fcbda6d95bb6ab0fd6f907d3da18ddb4d9d6dae4472bc4a8e6292440dc58eceadf64e2ac
947977cbe371a559d46c3fd1e2e87fd8e2aab0691a4db3a496f616f0c91ef1bc70a21534a6c4014d
8e2a9479d92ee4d2ed16c65482f3f4969e60966432c61c5d474e48ac8483de8cb8aa92f9b64d215
21f3a5a8d21fe143aa23faba53b9e23fbf2018aac6816758fc159f156500820106a0ee08c552ed635
1bcd3228ee6df4e9751b70c7eb4b6c54cf1c6013cd226a7a9bf5553cff955fa62aa9a56b1a66b76a6f
34ab95b9815da2938d55e39633468e4460191d4fda470197b8c55e51e5cf287e62697e72f336b3e
678edaeec756b5d1d3ebbe5f924b5bd9ee6d350b873c8dc4c38c71452812af2a34348a2e4792955
0965a0fe6a5ec16edabdceb50ea4fabd9a6b890de5b4362d6714f3faf35998a4f556392174057f74c
38a522f5559f1548f4af2e7e75db5a437dab26a526b17765a259eb52dadf5b1b836d692dfa5d0843
4eb10b8a496b23382a645f529273e4a557a5f91741f3358eb5a8dd7982fb56b9b586dac20d30ea57
70c8b2916a8b72ef15b111fabea255db801c8b7a7f0b35557a0e2aec55d8abb15762aec55d8abb1
5762aec55d8abffd0f7f62aec55d8abb15762aec55d8abb15762aec55d8abb1562de43979f942cda
3751216bb085becf217328151507af5c5587eb9f951ab7982e6e6ef52f338796f74b8344ba22dd017
b7b6b8facabd796d21909a91b50d38e2a85d4bf266f7528351b697cc891c1a9c9a94d70896c281f5
89e1b89f89321200781387f28afdac55bbbfc999750695b51d72dee127bbd435078beaec8a2e3539
21999d0acfc94c525bc6f0fc5f0b0f8b90db1557ff00954b72fa86a1aa5ceb96d35e6b1697f63abcad6
cea6e93558ede299db8ce02b04b58563f4f82a04e8d56c55077bf92f75a82c8b79e6912fa969269fc
9a10596dae6c174e9910990f10f1a86e2bf0a4bca44505daaaa2f5afca6b9d7f49bed3352d72cdee2
f67b3ba4d596cf86a16b269de91b7fab4cb3831f030861b7da693f9f15574fcb5d5e3b1bed363f34c6
b61797bfa4e3b7581bd3b6bb37697ef2403d7db95c27a9c5fd445e4eb1aa2b5315401fc9b768f524
7d7ad88d67f4947aad6d9bfd22d759b8375756edfe90291994b3215a491f37512716c553ef2dfe5f9
d0fccb0f98a7d660b83136aae2de384c439eb93c3737142d33edea411f014f85471ef8abd07eb36ff
efe4ff821fd71577d6adbfdfd1ffc10feb8aa47e68b9b736da7aac88c5b54d3c001813537498aa7ee8
92234722878dc1565615041d8820e2ac665f2adce9644fe4ebdfd1455b93e9732b4fa64a3e225445
c818092df6e12bfe546f8aae87cdf1da5d47a779a6d5b43be97682791bd5d3e76040a457402a8624
fc31ca2295bf650e2a8bd5bcb163a8ce752b5925d335c0a15355b22127a2fd959030292a0fe4955d
715633e59d4fcebfe2d7b4d634bbc9345bbb4f8f55711c36d1dddb1014adb995de3f5918f2543247c
e30dc93d423157a0e2aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55ffd1f7f62aec
55d8abb15762aec55d8abb15762aec55d8abb154864f247936591e59340d3da5959a491cdac24b
3b9e4cc7e1ea49a938aad3e45f259ebe5fd38f4eb6b09e9fec7155e9e4af27c6bc1340d3c27f28b58
69ff11c55aff04f93bfea5fd3bfe9161eff00ec7156ff00c15e4f1bfe80d3b7ff0097487fe69c5571f27794
4ee741d3ebd3fde487fe69c556ff00827c9dff0052fe9bff0048907fcd18ab7fe0cf27ee7fc3fa77c5d7fd
0e0dfb7f262ae1e4cf27ab171e5fd3831d89faa41d3fe03155e3ca3e535351a169c09ea45a41ff0034
62ad8f29f9586e343d3c1f6b487fe68c5577f85fcb3ff566b1ff00a4587fe69c55521f2ef97ede68ee2df
49b38ae223ca2963b7895d5877560b507154cb15762aa73c105cc2f6f73124d04838c9148a1d194f
620d4118ab193e58d43442d2f93af45b41414d0ef7949a77c2080222b592dea4fec738ffe29ae2a88
b3f36db0b85d3b5fb77d0f54791a2862bb6536f7041001b7b81f03f2a8e28784dfcd12e2ac8b15762
aec55d8abb15762aec55d8abb15762aec55d8abb15762afffd2f7f62aec55d8abb15762aec55d8ab
b15762aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb15762af27d1b5af39e
9fe70f31da6a97769a84570b6b7da15d1bf11e94963717e6d4c2f1080c90dc2a8a21e7325cc9b298
be3015405dfe73eb9a6e973eb1aa695a75b59bda798eeb4f517d23333f96653132485e18c0f5b8d4
71e457df154d747fcd5d4afbf3022f285ee976d1585e5eeaba758dedbdcbcb297d26dad6ef9c91b46
802ba5cf1a2b37164ee1be155e83a8eb36ba75cd8d8babcd7da84be9db5b42033f15a19256a9148
e306aec7fc951576552aa97992f748b0d2279b5b896e6c5b8c42cda3599ae2590858e148db67776
21557c715615e46f29caa9abd9eb9757a26b5bb8d2dec60d46f05bd941259dbcab6b11595792465
c8e4df137b2f15555960f276900d44da8d46d53a9df9fd73e2ab4792f45029eaea34a53fe3a9a874ff
00a48c556ff81b413d5f513ff6f5d4bfeca71577f81f42fe7d4683a7fb95d4bb7fd1c62ab4f913cbe492
5b51a9ff00b5b6a7ff006538ab9bc87e5e62496d46a7ad356d4c7eab9c556b7903cb8dd5b52fa357
d507eabac556ff00cabdf2dff36a5ff718d57fecab156ffe55f796e94aea54ff00b6c6a9ff006558ab5ff2
af7cb5e3a97fdc6354ff00b2ac55b3f97de5b26a4ea3ff00717d53fecab156c7903cb83bea3ff717d4cf
fd8ce2a910f2ce996de765d0a196fc6977fa2cf35cc0da95fbd64b7bcb6e0eaed396461c88aa32d57
e16db157fffd3f7f62aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb15762ae
c55d8abb15762aec55d8abb15762a95c3e5bf2edbdbcb6706936715a4d22cf34096f12c6f3249eaa
bb285a160ff00183d9fe2eb8aac9fca9e57bab78ed2eb44b09ed61964b886096d6192349a6afa922
ab29019f91e4c376a9ae2a96ea127943cb8d2dec5a75a8d5ad1d4dbc36d6f1add3dcea03d244888
51f1cde9f13bfd95f8fe05c5515a169335a19b5dd74c6de62bc4ff004b955b9456d003c96da1660b4
8e3fda6a2fa8fca461bf155507a32bf9a7518fcd7715fd0b003fe1bb76057907055ef5c1deb229e300f

d88496fb52d15548fcc3e78b3f21cbaeead7d6cf35a4dabda59cb383e9c16e65d3a06592e252088d
09511876f8048e9ea3c6879aaa93697f9b97d61ac6b5a26bd6325d34577adb68f7cb25bc31bc1a4
5ddac06171f0952a2f23a3d19a40af40cfc55d56d7f3f74b9374d0eefd282d21babe91e48a3113dd6
a971a3c51aab90cc5aea0a125538c6fcc8a8298aab798bf33f5bfa80b5d374a974af305a4ba4cbacc
372f0b1b6b5d4758fd1ebc54ab7a82658a6607f76eb1946a073c1554f3f363ccde60f2b79375bd5f4
48c41358db4135bea2fe9cabeb3dd244d11858127e0627974c5547f31359f30e8175a049a5eade8
c1aa6b5a468f3da886076586ee595669393ab1e4c0284fd95e27e16ae2ac6ff00e562799fca7e7ad
57cafe66bb8b53b0bf8e0b0f28dc0b75b77935d8ada09a4b590455afaeb7292a1db82433f6c5557f2
ebf3475ed57cbde5d8352b1975ff00304f656b79e63beb411db436e2fe6b8862912320298f95bb721
cf9226ffbd6a8c555b4afcf286fed2c353bad026b2d26f21d22f24b93711ccd15aebcb28b77f4e35259
96485d2445e8bc5d4b7d80aaa2fe76c72cda3da5b797e796efcc50e9b7ba18fac44b14d67ac2ced0
bc8e47eedd4c14963e2dc79af167f8b8aa9ce97f9a3697a9ad8bdb2fa9de79645e0f30d989bd796d
64b771f564a247f19ba88fad171fd9e22859b15635e5afcd9d722f2e5ec1e60b15d4fceba66bd6fa1c
f6b02be9d1c89abcaaf61301728aca9e9cca8ec57e2922978e2ac823fccfb99636b88fcbf37d46495
2d6cef9ee615825bbfaeb58cd053fbcf511d4b2ac71ca644e947f83154aa7f3ed8fa961f995f549fea1
fe0dbdd67ea3f0fd6387ad6937a5d69cbf66b8abffd4f7f62aec55d8abb15762aec55d8abb15762aec
55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8ab013f97177379f
2ff00ce773afce2dee24b67b2d3208625fabac102c322899c48dfbe23f78c8237e1fbb57e2cfcd54cb
53e5e6ed4e5f2ec62be5bb165fd3b3d6ab7330f88588f15a51ae3fc9a43fb72705595aaaaa8550028
14006c0018abcff55f25695e77d435db3d5a6ba862b5d411d0d9cbe83309b4cb789d1cd0f246462a
c87e16068d518aa5537fce3df912e64796e27d5259246b97767bc2df15f4914d39155a02ef0c4e48
e8d1a15e3c462ae8ff00e71efc8510be549350f4f53b76b2d4226b8578a6b679dee5a368da3294f56
479365a876665c551127e44f93a5faa7ab75a9486c63586d99ee5598471ca2750e4c75938ca3d45
327321fe21f1571545eb9f93da0799629e0d7b55d62fe1ba852dae6396ec059218a4f59118246b50
1fe2f9e2a856fc8cf29c8891cba8eb3288eea1d411a5bf791c5e5b0a43373752dca31f63e2f871547a
fe52e8497b73a8aea9ab0bdbb9feb93ce6e8339b9f45adfd55263251fd2631f28f89f4fe1e98aa0ec7f
23bc95a6fd48d83df41269d13dbd8c8973f1c5048e6431a9e3f643b17453f61c964e2c71575b7e47
7932d040b6d36a31c76c2d12da35bb21235d39d9ed0280bb0819d8c5fc9c8d31545c5f93be5085a
178cde2b5bcf15d5b95b82a639a0e7e9b21500a84f51f82ad1139b7151c8e2aa5a7fe51d84515f1d
6f5cd5358bed46e92eef6ee5996dda436cc3eaaa56dd101102aaaa9ea4af26df1547dd7e56795afaf
e4d52f7eb73ea529b7692edee64f559ac5da4b725853fba66668ff91892bd715526fca2f2534b753b
5b4c67bdb85bdba93d66e4f748c1c4decfc8732cb425be23be2a974fe4af2efe9fb0f247d4c7f86bfc3
57b67f53afc3e87d72d0f0f97f0c55fffd5f7f62aec55d8abb15762aec55d8abb15762aec55d8abb157
62aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8ab1ef316ab762783cb9a2353
5cd414b35c71e6b65680d1ee5c74afecc2a7fbc97fc84938aab9aebcb5e43d1ad6d2eeed2c6c2206
385ae1da49a57dddd8935791d8d5e46dd89e4cd8aa37cbfaf699e67d1acbcc1a348d3695a84626b
49648de1678c920314955596b4fda518ab1e92efcd1a36bfadb59f96a6d52c2fa582e6def20bbb388
12b6d142c852791181063eb4a6f8ab5fe29f3c5587f80ee788a713fa4b4fdfc7fddb8ab6be69f3c11bf
90ee41a569fa4b4f3bf87f7b8aac6f34f9f7f63c85311dabaa580fd4e7155c7cd1e7bda9e4498f8ff00b
93b1ff9af155a3cd3e7fa7fca05283e1fa52c7fae2adb79a3cfc0fc3e43948ffb6a590edf3c5569f34fe6
076f20c87fedeb63fd71577f8a7f3077ff009d064ffb8ad97f5c55c7cd3f983dbc8327fdc56cbfae2ae1e
69fcc13d7c8520ffb7ad97f5c5577f89ff302a47f811a9e3fa56cf156dbccde7f1b2f9158fb9d56d00fd4
71540a49e79b8f313799a6f2b2406c74c96c6dac7f48c0f25c4b73756ee68e178a0448998f23f17d9
18abfffd6f7f62aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55d
8abb15762aec55d8abb15762aec552bd7b5b8b43b21398cdcdecee2df4fb1420497172e0948d6bb
0e84b31d91033b7c2b8aa8f977459b4b825bad465175af6a0cb36a976a28ad205a2c718a02228c7
c31af5a7c4d576762aa552ab79d6ffd250ade4cb3622593afe90bb8d87c036a35b46c3e3ed348387
f748dea2a8bf2aea7e518ade1f2a797b58b4bfb8d22010c96d0dcc535ca242446cd22a1a8f8b6634f
b58ab24c5503ab6b5a468369f5fd6efa0d3ac79a45f59ba91618bd495b8a2f27205589a28ee76c55
56c351d3f55b65bdd32ea2bcb47a859eddd654246c4725245477c5513518aa0a5d5f4b8353b6d16
6bc863d5ef23967b4b167513cb1405448e895a9542ebc88e9c862a8dc55d8abb15762aec55d8abb
15762aec55ffd7f7f62aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb15762a
ec55d8abb15762aec55d8abb15762aa377756d636b35ede4ab05a5ba34b3cce68a91a0e4cc4f800
31548342b4bad56f8f9af5784c52ba345a25948bc64b5b2908259c126934dc55a4fe450917557e4a
a37cc3a76a1ac5bc3a65ace2d74fb87e3aaccaccb706d42926384a8d9a434467a8289cb87c7c68a
a676b6b6d656d0d9d9c4905a5ba2c504112848e38d00555551400002800c558349e5fbf3ae6bbab
4d65343610ae9ba5f97e1d21e3b6bbfaac32a5cdc481cba2ac6f2bf191390e51407e13ca8cabce34
cd73ce5adea5e60b8d1f51bfd4c99a61616b69711986ef4c8b5b1eb4b01698470cf15b1faba2728b
d455e55594e2ad7987c8be7ebbd3355b385359d4ee2ea1f2b7e8ebed42e2ce4b843a56b725ddd3
4b189561f5521f4dc7c27d40a1599e4e58aa6fabf913cff00e5fbad622f255edd4dfa5a1fd2b67a8fab
0c24799e6bc537135e440246606b748916308c81239871f5640ceaa8c3e57fcc5b47d3f5c963d635
2d5a15f34acb6cfa9a28579e46fd15c049298903441543717f4da9ea2f5c551be59f2f79edbcf1e5bd
535db1ba3a7e932f98a35bab99a190c569a8a593daa9ff00489a420b472a8059d938fc5b71c55ed1

519

8abb15762aec55d8abb15762aec55d8abfffd0f7f62aec55d8abb15762aec55d8abb15762aec55d8
abb15762aec55d8abb15762aec55d8abb15762aec55d8abb15762ac4d87f8c754e0406f29e93311
203ba5fdfc27a529bc36ee37ed24e3fe29f8d54aef7cf3e64ff001c697e55d3b4381ac65ba78b58be9
aeb9496d008259a26091232739445c846d27358d95dd57927255e818abb15762a86b7d3ec2ce49
a6b4b58609ae1b9dc49146a8d2378b9500b1f738aa2715762aec55d8abb15762aec55d8abb1576
2aec55d8abb157fffd1f7f62aec55d8abb15762aec55d8abb15762aec55d8aa0f51d574dd26249b52
ba8ed6291fd38da560bc9e85b88af53404e2a963f9dbcaa80b36ab0d075a163d3e43156d7cebe55
7155d521236fe61d7a76c55bff19f95e95fd25175a6c18ffc6b8aad1e75f2b1ff00a59c5f4861ff001ae
2ae7f3b795a3fb5a927d0b21fd4b8aacff1df94ea47e925da84feee5ee69fc98ab8f9efca63fe964a7b
6d1ca7a7c9315587cffe52068751de95fee67e9ff22f156bfe5607947feae3effdccff00f54f15687e617
940d69a81db63fe8f71d4ff00cf3c55b5fcc0f28b1a2ea06bff00182e07fccbc55dff002b07ca3ff2dedd
69fef3dcff00d52c55033799ed3ce121d03ca778d2a9629ae6a30728dac6000131fc415967983522d
aaa9ca6ec9cd5476a57bfa223b2f2a795a18975692354b682958acacd3e13732a820f05a7145eb2c
9f0f4f51d1559a8c107923ca17da8e9b60daadee956f71a851cafd66eae42169647908fef1f7e440e9
f0a8a715c5587697f9dba74e6cb52bd11b794ef6df57ba8b59b38ae67ac3a3dc5ac46678511de14a
5c37a825a344d17c5f09c559f4be6ed0e0bfb5d2e69a48efef649e2b481e1951a5faafa7eaba7251c
a35f5509916a9c7e2af15621548e0fcd6f296a3a8e9fa4e8f3cb7d79a9dd0b2b778a093d15692ce7b
e8e46660a1a368e07a3272dfad315633e47fce89b5f8b48b8d72c22b7b4d6f4cb7beb5bab0692644
bfb998c49a730651ca7701a44e27ec47233a22af26553dbefce7f245b585c5f59cb75a90b44824b98
6d2d2766885cdd4b648242e8aa87d68258d95c86568d853ecd556bce9f9a3a7f97ac2fc693c2eb5d
d3a5b3f5b4fb95960e56f71a8c3612c8a4a824234bb1fb2c7db157a162aec55d8abb15762aec55d8
abb15762aec55d8abfffd2f7f62aec55d8abb15762aec55d8abb15762aec55d8aa49ac53f4cf977fe6
2a7a7fd21cf8aa778aa4be70d56f742f29eb9ade9d124f7fa6d85d5e5b432b148de4b785a450cc01a
0aaf862af3fd2ff0031358d3ccfa5cf6b77aef98a4bbd3ed23b69a7b38208e6d4b4e92fd55268e18bf7
4a232a59e369391db92e2a85bcfce0d47573e59b7d1ac24d1b4ff356a9696563e62bb11cd07d567
86e666e285978cecd6c2040e1a3e73c74323d62c5591eb5e71bcf24ddddd85e4b2798275b2bbd7a
3898436b341a5698902dc82c88125979ca0c4bc53972a33af1e45548354fcf0960fafc7a5f97da678
e1bf7d2e6b9ba5862b8974efa9b3ac8151de30d1de2b29a31aab2b2af5c553c87f336eee7589b448
742a5dfe929f44b2792ed1629ef6ced4de4c2a232550442a8c5793b6dc1455b15615a9fe6e6b72ea
1a7ea7a65d3db797f50d47cb1fe89341134d1d9ea91de35dc468ac4b1302d18336ebf037138ab2a
b6fcdbbdbe7d062b2f2c4eede67994688f25dc31c535a4960fa82cec482cb448dd197811ea7d8775f
882ac93c9bad6a9ab6a5e70b5d4655962d235b6b0d3f8a042b6df51b4b80ad4fb443ccff11c5595e
2aec558b79400fd29e72f13adefff0070db1c553db3d2ecac6e6f2ee043f5abf904b7533b17772aa11
56ad5a2a814551f0aefdd9b1551d7f43b0f32e8d7ba0ea8acfa7dfc4619c23147e2ddd587420ee315
6352fe56e813cf35d497379f59bdfaf8d4e4478a31771eaab6e970922a4614065b5896b1847f84fc5
c9998aa8dd5fc83a46bb2d93eab7173730585e0bfb5b5778fd28e549629630948c3208cc5c50a32b
7a6f2c6ccc8e462a9759fe5568f6169a3da5beabaa95f2fdcfd6743924b9595ed2316f2da8b74e719
062114ce9f186929c7f79f08c551369f96ba0d9f94b46f27c535d359f97a582e345bd7746bcb69ad5
8989d5fd3e24a8629f1210c84ab56b8aa05bf27bcaa6df58b659af923d72da0b6be6138e664b6bc9
afd6e158a1225371712c8c4d50f2e3c3880b8aa8ea3f931e5bd524ba96ef51d559ef1a4695beb284
812de417e5416889a09edd5d7f94168c7eef8a2aaf46c55d8abb15762aec55d8abb15762aec55d8
abb157ffd3f7f62aec55d8abb15762aec55d8abb15762aec55d8aa41af3f0d6fcaff00e5dfce9ff4e174
7f862a9fe2a81d674cb2d6749bdd2752a9d3af21782e9558c7589c51c161d011b1f6c55e570e81f9
78be61bdd3ad21d725d4f43bbb08af6e627b878e1b836ea2cdcc9cbe2e30cc155c72f4e362a788ae
2a9c5a7e587901f4b962315c59d96a816feef4eb8b8f4fe30debf378ea42b239e755fb127c75e5be2
aa1aef953f2df405d0ed35bbcbc0359be5d3748325dcf3b4b7579111c0c95662ae91f162edc5fe046
e5c9462a8dd5bf2ebf2e6ce3bcbed6a46862486eee2fa5b9bc751e8dd2a2dd48e59ba48234121fda
e09fcab8ab707907c912c17714897905825e8b932cf792c714f7524294b98a4125492afe9fa95563
464fb38aa24fe59f9124bd42d1bbdfc2f6f3c6bf5b979a3e9ea56dd9543ec6112111903e0e7f0fdac5
5d61f943e46d28da9d32ce6b3fa8ccf7565e85ccc9e84f2ab23bc546f8095665f876e2c57a1c553fd1
3ca9a4f97ae2f2eb4d13acfa8399ef5a59e4944d390aa6570ec417e28abcbaf1017a62a9de2aec55
8b7943fe3a9e72ff00b6dffddb6c7156538abb154a3cc7e65d2bcad6515eeab215173711d959c080
1967ba9c911c518240e4684d490aaa199995549c5518da9594513c9757115b98429b8592541e91
71550e6b415ede38ab6da9e9a8cc8f7902ba47eb3a995015880af322bb2d0d6bd3154835df3fe81a
27e8f8d24fd277baacb3dbe9f6761240f24d25a42d3cca1a49638c1545e8ce3e22abdf154d62f3168
ed1c06e2f60b5b89e28e6faacf3c2265122860182bb0afc43ec965f0271544da6aba5ea0e63b0bdb
7ba75512158254908462406a293b123638aa2f15762aec55d8abb15762aec55d8abb15762aec55f
ffd4f7f62ad0aef5e9db156f15762aec55d8abb15762aec55d8abb1563fe60db58f2b7fdb4651ff72fba
c559062a80d6d679347bf8ed6ce3d46e24b79122b19f8fa3333a9509273207035a357f671579769b
e4cd457cd7e61f346b1e5469e4d467b1bad2a18aea055b77b0b14b40aebebaa1524311b37c2d42
31560d63f935e71b0b1ac7a44126b1059f96acada795adcc6e9e5e0cb7314acb3ac8b15da371f80d
578af357038e2ac9759fcb9d7f5bf2dcbe5a4d1eeb46b1b4d2458f97e1d3af60f46d2f7d7fac895bd6
9dd9963962b768c83ca9137d90fc3155d7de4af3e6b56be66b6d7745b2bc97cc16b27a17d27a125
c5a5e4da7258c91465a6a7d58ba7aabd1943ba7066f8f156cf917cdefacde6ad268509b5bad42e2f
5f4532db9b278eef47b6d31830f53edc6d6dce33c378e578fe03f162aa7e42fcadf317957cc963a9dc

58a5c18efade6b8d5a76805f35b43a01610000026060f002220574d464301000000000001000000
000000000f00000000200000fc600100fcc0010043a432c8c923962f2c5f5860091f67ab0e58abdd7
15762aec55d8abcf744bff30586bbe729acf4c4d4f4a1ac82e904c22be561a65913c63942c7203dbf
7b19ff005b1564fa579b344d5e416914e6db54e0af26977a8d6b7881c54728650ac7a1dd792f8362
ab6f3fc55637325d587d5f55b073cbea12ff00a2dcc63e1148a61c91e9b9e322a6ff00eedc5587799a
cbcbff009857fe5e6bb8e3b6d7b41b99eee3f2ef9820e2b711dcdb4f652ab4479090012724921322d
57ad1b154b345fcbfd4c7957ca8be56d66c2f534016bf57bbbfb69a44d4a28ac66b0992f57d457e49
ea1f401358787a4fcb7c5576b5f9337baad86a5a5aea76f1da5c4fa8ded849e8307864d5349934c6
b620311f568fd4e6883f612287f639e2addbfe506a36fabdb6a11dd5825adbdf5ddefd552175052ef4
18746e1e15e50faac69f106e14afc58aa1acbf24eee0d1a4d3eeae34f9af1ad3cad64b75f576240f2c
c88d21dea7f7c128a2bf077e58ab23f277e5dde79635c8b53696ccdba1d7da45b789a391ff004eea
aba8c609e948557d33fcdf6871fb38abd1315762aec55d8abb15762aec55d8abb15762aec55fffd5f
7f62aec55d8abb15762aec55d8abb15762aec55d8aa49e67b3d2e6b14d4756be7d32df4876be1a8
472ac1e8f189e3666670578f07606a3154bb4ed3acf578a5974ef336a73adbcad6d701668d5e39a3
a168e4568432b0041a30068462a893e5394d3fe761d5c53c2e22ff00aa38abbfc27211bf98357ffa4
88c7ea8b1559fe107ff00a98b59dffe5e53fea962a85bcd12d2c6e2c6ceefcd1abc573a9ccd6f6319b
85acb2a42f3b28221da91c4edbff2e2a83f35f97ef349f2b6b9aa59f98f585bcb1d3eeee6dd9ae5180
96185dd49062de8474c551ba6795a6b9d3aceea5f316b0d24d04523ff00a4a005990313fdd772715
541e5eb7fae1d3ffc4daa9be5885c1b7fada73f4998a87a7a7d2a08c55103ca4e3fe97fabff00d24aff
00d53c55dfe126dbfdcf6afb7fcbd2ff00d53c55bff09b7fd5fb57ff00a4a5ff00aa78abbfc267feafbabffd
250ff9a31546e87a059e831ddadb4b3cf2df5c1bcbb9eea432caf318d22a93414012340001db1544
ea3a5699abc02db55b386f20560ea93a2c815c7465e40d1876237c55254f2f6b1a44613cb9abb9b
78d4ac7a76adcafa1039034598b09d682a07292451fc98aa55e61bf6d47499f4bf36e9a74705cb2e
a2604d5f4e0b13061273e1fbba8e8668e2e27ec9ef8aabfe5b793ecbca1a5dec3a77986f3cc567a95
dbdf2cd7b3457090bc8aaae90bc480f0257910ecedccb1e5be2acd315762aec55d8abb15762aec5
5d8abb15762aec55d8abb15762aec55ffd6f7f62aec55d8abb15762aec55d8abb15762aec55d8aa4
3e76d2afb5df28eb5a369b15a4f7b7f692db450ea2a5ed1ccabc4acaa37a104fd38abc963fcbcfcc5d
3b4f874fd343cd6d6d7b717da6dddd5f8fd2ca0dcd94c8b7d2d192791963b84f5fe397d3f4a2693e2
94b2a9bf9a7ca3e72d42f1ee341d3e7b28a2b697ea712ea8c02ea07594b9139ac94f8e1577e8780
7f43ece2a824fcbbf3fcf6779753cca7cd96b791dc5b5e5d6a1349a6ea261b9908792d2145112c96d
33c520fb60aa2ad56347c559c7e5a794356f28e9125a6bb7cda8ea4a56ca1bb323bfa9a7d8728ad
19d5b6133c7f1ce47da918fc468b8ab7e70b8b75f34f91794a83d0d5ae9a6ab01c14e8ba81ab780a
0277c5533f3db2bf913ccaca432b6937c411b820db498aa69a30a68fa781d3ead0ffc9b18ab1d8af2
d0fe624d38b88cc0da3c10ac9c978994df4d1f00d5a16e438f1ebcb6c553ff00305b5e5ee83aa59e9
d79fa3b50b8b49e1b4bfebf579a4899525ff60c437d18abcc3f2e21f305acfa899ae23d2345d42e6ce
db4686d525bbb5b8b9874c7fae4d6e6744658a49809448ebfbd6858fc5eb726552bd1bce9f9b29fa
407982da4892cb4d9af3eb09a79907d6345866b5be458938b4bf58baf426b555753241cf8b62a920
fcc1f3beb16bab3b2b596b1a7e9fe68834ed662b090dd94b1974e9ad2440e9e9319a29256e2b17ef
3d1e51fd86c550da9cbad0fccfd5eff0044927b9853cc3e5a68e2b78ae9350b9b57b4856edad9c110
2c156e578af1fa7c166f8925e042afa6315762aec5522b8f29692f7335fe9feae93a94ee259eef4e7fa
bb4aea3886950031ca69b7ef11f15432cbe72d1d8adc431798b4f0102cb6fc2cf5106b472f1b91049
41bd55e1f0119c551da7f9a345d46e0592ce6db532031d3ef11ad6ea86a2a2394296151f69792fbe
2a9c62aec55d8abb157540ea7156aa3c71568ba0eac07d38abbd48ff009c7de31568cb18fdb5fbc6
2aef5a2ff7e2fde31577ab17f3afde31577ad17fbf17ef18ab84b11048752075351b62afffd7f7f62aec5
5d8abb15762aec55d8abb15762aec55d8aad7923897948c117f998803f1c554beb969ff002d11ff00
c1aff5c55bfae5a7fcb447ff0006bfd71577d72d3fe5a23ff835feb8abbeb969ff002d11ff00c1aff5c558
1f9d7c87a7f9bbcc5e5ed6d3565b28b4c9ddb59b54e2c350b336f3c4b039a82b43330e43fdd4f2c7f
b7b2a9df9eaead3fc0de66549a3ff008e4dfd1432f6b693df154cf45bbb53a369c4cf1d4dac27edaffb
ed7df156291f90b4c4fcc27f39b6a624d3beae0c1a1bf06822d48c8ecf76a4d48255cd107c2246925f
b6f8ab39faddaf79e3ff00835feb8abbeb56bfeff8fc3edaff005c55afae59f5fac45ff06bfd7156bebf635
a7d6a1af87a8b5fd78aab472472af389d5d3f994823ef18aaec55d8abb15762aec558cfe6169d61a9
793b588350b68ee6116ceea92a87e2ea2a1857a1045411be2aa1ff002abff2f7e23fe1bb0ab1ab110
a824d6bfaf155c7f2cbf2fc904f972c491d2b0a9c55bff956be40ff00a96f4fde953f574de9d3b62ab8fe
5c790cec7cbb604787a094fd58ab5ff2adbf2feb53e59d349e9536b1134fa57156ff00e55b7e5fff00d
4b3a6edb0a5ac436ff81c556ffcab2fcbb2287caba51069506ce13d3a755c55a3f961f970695f29e92
69b0ff4283a7fc062ab5bf2b7f2d5882de51d1d881404d8db9dbfe03155a3f2a7f2c8569e4ed1857aff
00a05bff00cd18abbfe5557e59529fe0fd1a83a0fa85bffcd18ab5ff002aa3f2c7fea4ed17fee1f6dff346
2a93c9e41f23da79cecf4bb5f2de990e9ba8e8f7eb7f691da42b0ce20bbb078c4a8142b706dd790f8
4f4c55fffd0f7f62aec55d8abb15762aec55d8abb15762aec55d8ab18f36dadadeea1e57b6bc823b8
b77d51f943328910f1b0bb22aac0834231560faf79a746d1b55f31e951f92aca5b9d0ed7f495a46f1c
68da8d941e89ba96d99209119a112306879fac1953922a4f1be2aa33f9c7458eeadc47e4ed2e6d2
e6860d462bc568aafa65dea62c219638c5b1e4ceac970abc82f16e3cb962ac8fc8d77e5cf3b58c7ac
c1e5cd321d1afade3bcd32455824b868a479232b3c3e98313a94df7615252bc91b15659fe17f2cff0

521

0d59ac7fe9161ff009a7156ff00c31e5a1ff4a6b1ff00a4587fe69c55dfe18f2d529fa1ac687623eab0ff
00cd38ab63cb5e5c1b0d22c801b6d6d174ff0081c55bff000e797bafe89b2aff00cc3c5ff34e2adff877
cbff00f569b3ff00a478bfe69c55bff0fe827fe95769ff0048f17cff0097156bfc3da07fd5aacffe91e2ff00
9a7156c797f411b8d2acc1ff009878bfe69c5523f254105b5ff9be0b689218135ba2451a84415d3ac
49a0141b935c5596e2aec55d8abb15762a90f9d6bfe12d669d7ea92d3fe07154fb1563be73f3443e
52d2a0d4a7f4e3867bdb5b16bab83c2d6dfeb72ac5eb4efb7145af722ac55792f2e58abcbf5bfccbd7
fca5e691a848b6fac697a97e80b2bbb2b3ba9a78e39b5197528c4d640af1f8c41196523e33df6e6c
aa2749fcedbdd517495921d1ec079863927d1efa7d404b6958ace2b8fab4ed08611cecd232aa96e
4638de4f4f97eef15477e59f9d6fb50f3979b7ca3a8dd316b1d5b549ac85eb3bcd3daace88ab68492
a62b724a48a7e342f1fc0a8caccaaef38ea97773e7af2569771ac7d5748bcbcd760d4174bbd96d91
a1b3b13244b3ba3a1592361c9857e13ed8aa43e52fcd4f35adc3f97ef12daf47e91bdfd05aa6a970b
672ea9a1417e2da3961e2804b284e5c5910faffb96a525f571564169f9a1aceaf65e58bed13f445cc
3e66bdb7b10a279a496c9e5b3baba963b8455da48cdb88f8d54f22fc9578fc4aaf3f997e64f4ef6197
4db6b4bdd1f59b5d0b559aebd68ed3d5bfbe48a1781cd0b8fab4b0ce6bb729562e40d68aa27c87e
7ad7bccde69bad375616b6b6f0e9693c56b006265b88f54bfb192e2277219a174b68dd471f87d45f
88f52abd2f15762ac66f3ff260e8ff00f6c8d4ff00ea26c3157fffd1f7f62ad50d6b5dbc3156f15762aec5
5d8abb15762aec55d8abb1563be64ff8ebf953feda927fdd3eef1549fcc7f95de5ad6e4bfbd5bdd474
5d4f5265379a96997f35b4cc80a178e8ccd1859150238e1f67a518290ab527e50790ae04266b3b9
98436f159c05f50bd7e36b03078a252663f02300c8bd15be21be2a9df97fc99e5ef2adc5e5de8b049
6f2df3196f4bdc4d2ac9231e4d232c8ec0b93d5fed7be2a9fab2ba8642195802ac0d4107a118ab46
440482c011b1048ef8ab5eb45ea087d45f548244751c885a54d3aed518ab7ea2518f2144346dc6c
7c0e2adaba38aa3061d2a0d77c55bc55d8abb15762ac5bca3ff001d4f397fdb6ffeedb638ab29c55d
8abb15762aec5521f3b027ca5ac80687eab2eff462a9f62a80d6345d2b5fb17d3359b54bcd3e420c
96d2d4c6d4ecc01151ec71563c7f2aff002ecbac87cbb686442851ca92c0c2291d0d6bf003f0ff002f6
c55b1f957f97622f407976cc41ea7afe904213d6ad7d4e35a73aefcbed62ad8fcaefcbe12094797ad0
4c09612703cc336cc7956b534dcf7c556cff955f97374c1ae7cb763330e441923e7bbeec772776ee7
be2adc9f959f9792bc12cde5db3925b6ded9dd0b34440a5632492bb7f2e2aa63f297f2d558b2f962c
03193d724442beb1ff767fadfe575c552397f203f2d25d1a0d15f4f95e286ee3bf7ba96669aea69229
bd6559a49b9f34a80bc4ffbad553a0c559768be45f287976f7f49689a35b58df888db0b88528e2024
13183d96aa3e1e98ab21c55d8ab19bc3ff002107471e3a46a7ff00513618abffd2f7f62aec55d8abb1
5762aec55d8abb15762aec55d8ab1df31ffc75bcabff006d493fee9f778abc6ff3f3cd9e5f3268fa70f30
c26ff004af376873deda4f02dc47616f1233cd218e308f2c7c5ab2d5db893c2abf6715631e5cfcd193
c9fe5ad374fb5d5a38c2eabab5d0f89248af2c5b5889d641085964b54782595a1b4631fa717c4246f
4d519564ba67e6d5b5e3e9726a3f980b1dbde45aedd5f4260b25441a75c2a59c4795bf2512c419b
8b7c73ffbafaae2a92699f9d5a93f976e2593ccf0697abe9be5d8ee6c74c8ec606b7ba95b48460c8e
0858e68efb9c6d6fc795156310716f502aef3e1b4d76eac0e85e69d32ecf9b74848f5ed66e6f2c619
2cb52d1651a9e9772f1a85152ed25af10aadc5939f2e18aa1f58fcc494d9d9ea31ea367a2799bccbe
5bf30eafaca69f35adddd58eade9d8fd4add2ef8b94904513208d4fef5e3fb2ceab8aa1353f3fe91690
f9ea2b1f330b8d23cc336bd1fd45d2265b9e7a05a0b6b8056159164927568c6e119b92f0e4b8ab6d
e6b87c8fe53b4f327953cd304de65d7b45b447d2eca3852d20b8d174d2624b8898cf2faf2c8cc8ccc
23f5b847133c5e9afa8aa3b5dfcedd663d1758d4f48f34c971aa36adac5be8d671c1682dd2d6c6192
7b1122fa5ebd27aaa2b10c9332846922f899955fe62fce6d5d975eb9d23ce3e9491c9e61fd136d14
56857d2b0b38ee74da07819899663e97c47f7ca5917e35e4aab5aafe6e6adad68daedc2f9cbf466a
30cb6dcb49b18614f4ec4dfda3adc5add396f519ad0cdea428259391656489a3f8954c2ff00f38aee6
b5be963f3a0b0d40eab67a6dc58456b6ce96d6afaba46f736f732aba4a8d605a42c11d54af37f49ff0
076cabd9fc9041bcf361598dc27e984e3704a9320fd1761f1d50053cbed7c202f862acbb15762aec5
5d8abb154bf5dd35b59d1afb4a497d07bc81e1598af3085c5012b51503c2a31541fa5e70affbd9a6d
3b7fa2cff00f6518ab622f37d3e2bbd349f6b59c0ff00a88c55b1179b7bdde9c7fe8d671ff6318abbd2f
36d7fdebd3a9ff30b3ffd9462ad7a3e6ea1ff004dd341aedfe8939dbfe927155de8f9b36a5e69deff00
e8b3ff00d94e2ad183cdd514bed380a6ff00e8739dff00e92b1568c1e6eed7fa774ef673f5ff00a4ac5
5a36fe703d351d357c7fd0a73ff006378ab5f56f38ffd5cf4de9b7fa0cfd7fe92f1568daf9cb8d3f4a69a
1bc7ea1353eefade2ab7ea9e76affc75f4ca7fdb3a7ffb2dc550bfa03ccf26aa9adcfab5935f5b59cd65
68a9632ac43eb334123bc80dd316da0e2a032fdaaefd3157ffd3f7f62aec55d8abb15762aec55a35e
d8ab78abb15762aec5524f31e8b7dabae9f2e9b7eba7dfe9b75f5b866920fad466b0cb032b2738fa8
949a86ea3154a5fcb7e7377323f9874e3231ab3fe85049f993767155bfe18f38f6f3069d5ffb62ad3fe
a2b15737963ce27fe9a0d340d8d7f42ad7f1bbc55b1e58f378a13e60d3cb78fe864ff00b29c55dfe18
f37126be60d3f7e94d193f8dc9c55a1e57f378047f886c2be3fa193feca7156ff00c31e6fff00a986c3b
7fd2993feca7156bfc2fe6fa1ff009d8ac6a7bfe868ff00eca3156bfc2fe71ad7fc47634f0fd0d1ff00d946
2aeff0b79c7fea64b1ff00b8345ff6518abbfc2de71ffa992c7fee0d17fd9462aeff000b79c7fea64b2ffb
8345ff006518aa6de57f2fdd68316a4d7fa87e92bfd52f0df5c4eb0adb206f421b75448d59e802c2bfb
5d6b8aa7d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb15762
aff00ffd4f6be997fe71d4f4eb1d4922d3624bc822b83197b862a2540fc6bc474ad3a62a8de5e6daed
1e9d4ff008c93ff00cd18ab55f37edf0e9a3c779cedf70c55baf9b7f974e3feca71ff001ae2ad7fcee15d
bf4685ff009ee4d3156cff008b6bb7e8ea7fcf7c554bcbbacea1a8deeb7a76a50c31dce8f751db7a96
ece52459ad61b9068e2a08f578f53d2b8aa7f8abb15762aec55d8abb15762aec55d8abb15762aec

55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55d
8abb15762aec55d8abfffd5f5c5df9b4f94bca3a1ddfaf68b6aba5d899219b97ad12cb2da5b1bb70ac
296d02cc5a734dbe1f8d062a906a7e76bdd1bcd4ba8cdab5acb15de97690c66292e24d2ddee35bf
a9c72c71062a2468df8f2e4b1f3fb737a4bcf156f4dfce3d66ff004cb2bf7d2628e6d4f478eff4d843f28
a5d478d65b59272e16ddc6de97ae1239790a4e18351549aefcdbe6ab9bcbcf3f68b757ba86876da
45aff893c9e91cd6f31b592e2fa19eeece172658af2d8420b468c56e15191393fa1262a8ab5fcd5d4
344d0f4dd3ecde2d42783427b9966be69dae05ddbe8b16a89f58691c3b99791e5c474ff00767a81a
30aaf9bf393cd5a74baf4975a7595f5a68b73756890da2ce93dcfa5a2c3acc522167701544a619071
62dc7d45e3fdde2aca7f2a356d475b9fce1a8ea8f6325c4babc622934b9beb16ad6e34db3f48f3ab0
e654fc6033283d0e2aabe77fcc66f2af99b47d0616b6924bf7b1f5ede512098417da941606557f863
e31894b100bbd47c48b1fc78ab16d0ff00383cc57cda5c5a9c3a7c23595b1912ee159bd1b18eeaea
f2d98ce1a425f935b2246dfbb5124c15b615655769df9b5e6abcd4ad6d6e6d34eb4804ba45b5d291
33c9336af7d7d6026b76322811ff00a2a5c47c958b45271db67c55116ff999e74b8d3f4813e9f63a7
6af71ad41e57d596749658a1d4163ba7ba7882cabce202385a1f8fe2576ab62a97f97ff0039bcc5a8
ea9a668fa8c1a7c5fa56db46bcfd2b6eb31b5b45d5a2d44b24a1a43c8892c56346e518e53aab6ea
39aaa96ff009cfaf09b46b5d46c6cac6fb53bbd3adcdaced2c6df57bdb7bd6927524d7d3f52d5591f8
d0472716ab6f8ab23b2fcc9d4a6fcbebdf355d5818356d3ee60b3bfb4789bd2b6795e04965e51492
acd044b319fd585cabc23f61f98555817987f30bcefa7f9cafb58d2e386ece8fa46af143a6f2b97b3d6
7ea1a8591896d11240ab74e933c1ce92d24561c593ecaa9c41f99fad596b33797ac2df4eb6b89b58
d538cdab5e5ca45711da6a70c12c16e5bd53f58f4a52eb127c3cf8048d62e5c55445bfe6a6b5abff0
082afb4ebdd3e3b0d7b59b5b0d66ce389e4b9b012d9dfcd25a5cb33d23904b6f14609556e7cc70f8
9315649ac79f756b0f345ce8d6d6d098ad2ff004ab236f287fac4f6daa29325d44d555e101a961bfc3
0cdc997e1c5526f2ff9ae4f2dfe58f96fccd7d74b35c798a7b2fd31ac5c492cb696b25f00b25c481e57
11a0650940f1c4b230278fc58aa51a879fefbcb3ae6bda9b6a56d713deda684228d9ae24b092e64b
7d4a47faaa3c8162f585bc7bbba21dbe27729cd546c3f9c5ad5d5935cc3a6c3ebdcd8e99a86970a3
abc7325e259b5cc626695116e22370eb1c13fa1eb7eeb84bf13f0553ed57f321edf42f296a305c5ad
9279a61768f58d4a0b8b7b28ae05a35c451c914852443330e2a8ee1f6651c9f8e2ac3efbf332ebc9
3079aa75bb8af2ed35abf9e1b2b979a5e51dbd9d84cf0c2f238112d657213ed7fbee26e32715533d
57f37b5ed39f50074f88ad86a0eb2840272fa405bb29756a526a5c38f413d5b6fdd5cc604dc2297f7
5cd563dad5ef9974bb9d424d2eeef75cf23f983cc76f65702dee267bbd0b521a85b22f16570e2cae2
33c668eb4b790d78fa53481154c63fcecd6affcd33796f4bfd1cd11bed36d60be9629f64bdbed42ce7
5f48ca8e5e1faa447e2f4fe290fc1c1a36c5507ff002bd3ccf05a69b25ddbe9806a90d94ada8bfad6d6
563f59bbbeb377b866693f765ed630ac782abcdc5da946c55edfe5ebdbbd4742d36fefc402fae6da1
96ebea8cef6deaba02fe8b4aa8e63ad7816504ad3154cb15762aec55d8abb15762aec55d8abb157
62aec55d8abb15762aec55d8abffd6f5d58d87e5d6bda168971aeb69b77769a65b5bf39ae13908fd
25250d1c6d53d3155cde50fc9c6259adb483b0527eb094e23703fbce98ab47ca3f9366a4db690790
e27fd21375f0fef3a62ab93ca5f93b191c2df494340071b841b0e83693a0c5569f28fe4cb9f8ad7466
3b0de78c9f6eafef8ab87947f2654ed6ba3065debeb4608ff87c5557f2e34dd074cd4fce30796a2b78
b48fd296fe90b421a1e5fa32d3950a923af5c559e3223d39286a74a8af5c55af4a2dfe05f8850ec371
8aad9ade29a37898710ea539a1e0e0114aab0dc11d88e98aa1347d1acf44d360d2ed4cb2c3054fa
b752bdcdc48ec4b33c92ca59ddd8924b31ae2a8df4612a57d35e2450ad05298ab7c109a95150280
d3b7862ae088abc55405fe50283155af044f1fa5c78ad0852bf095a8a5548e87dc62a97e85e5ed37
cbb63f50d3d1ca34b25ccd34eed34d2dc4ec5a496477a967627738aa65c137f846e791d875f1f9e2
ae288c6a54134a548de871570440bc02809d38d36dfdb1577a71ee788de95d876e98abbd28f7f81
77143b0dc0c55b2aa450804787cb156bd34a93c454ee4d062aef4e3fe41b9e4761d477c55b5455a
f1502bb9a0a6f8ab4510f5507bee31577a718e8a37143b0e98aaec55d8abb15762aec55d8abb157
62aec55d8abb15762aec55d8abb15762aec55ffd90840010824000000180000000210c0db010000
00030000000000000000000000000000001b40000040000000340000000100000002000000000
000bf000000bf0000af4300008043030000000000008000000080fe7fe9430000008000000080ff7f
aa432100000008000000620000000c00000001000000150000000c00000004000000150000000c
0000000400000051000000506401000000000000000000d201000054010000000000000000000
000000000000000005e0100000001000050000000000400005004000000600100000000002000c
c00d301000055010000280000005e0100000001000001000800000000000000000000000000000
00000f60000000000000000000000ffffff00fefefe00fdfdfd00fcfcfc00f6f6f600989898000808080043
434300efefef00f9f9f900fbfbfb00fafafa00f7f7f700afafaf002f2f2f004c4c4c00dadada008f8f8f00e8e8
e800dcdcdc00e0e0e000b5b5b5008787870082828200bababa00ebebeb00b6b6b600a7a7a700e1
e1e1006060600077777700f5f5f500f4f4f400b8b8b800f8f8f8003a3a3a008b8b8b001a1a1a00a3a3
a300f3f3f300f2f2f2006c6c6c0091919100c0c0c000c2c2c2009b9b9b00c9c9c9003e3e3e00e7e7e7
00eaeaea00eeeeee0072727200aeaeae00bfbfbf009d9d9d008d8d8d00a9a9a90061616100cecec
e0089898900f0f0f000a8a8a80095959500767676008888880031313100c4c4c400b1b1b1008181
81009a9a9a0071717100797979008e8e8e00999999009292920046464600d6d6d600707070008
a8a8a00dbdbdb00a2a2a200d8d8d8007d7d7d00d3d3d300e2e2e2005151510066666600ededed
00d4d4d400d5d5d500b2b2b200a5a5a500e5e5e5003f3f3f00bcbcbc00cdcdcd006d6d6d00838383

523

004747470057575700cacaca009393930028282800bdbdbd009e9e9e00494949005a5a5a00e3e3
e3006a6a6a0054545400676767003838380034343400b4b4b400b3b3b30044444400e6e6e6002
b2b2b00a1a1a1004f4f4f006b6b6b002d2d2d00a0a0a000c1c1c100dddddd009f9f9f005c5c5c005d
5d5d00adadad003b3b3b00535353003c3c3c00ececec005555550059595900bebebe00bbbbbb00
747474007c7c7c007a7a7a00a4a4a4005252520069696900c3c3c30040404000b7b7b700aaaaaa
0065656500d9d9d9008c8c8c0058585800484848002e2e2e00cbcbcb0029292900dfdfdf00acacac
004b4b4b0078787800979797006e6e6e006f6f6f0084848400e9e9e90041414100737373007b7b7
b007f7f7f004e4e4e00c5c5c500b9b9b9003737370086868600e4e4e40068686800272727007575
750050505000949494002222220032323200f1f1f100a6a6a600b0b0b00090909000808080007e7
e7e00969696009c9c9c00ababab0085858500cfcfcf00626262005e5e5e0010101000d1d1d100d7d
7d700c6c6c600c8c8c800c7c7c700424242005b5b5b00d0d0d0001313130056565600dedede000
909090064646400cccccc002c2c2c004d4d4d00d2d2d2003939390045454500636363005f5f5f001
b1b1b00353535003d3d3d004a4a4a0030303000363636001610000026060f002220574d4643010
00000000001000000000000000f00000000200000fc400100fcc001001f1f1f003333330014141400
12121200252525001c1c1c00212121001d1d1d00242424002a2a2a0015151500232323000d0d0d
000e0e0e00191919001717170006060600202020001e1e1e00181818000a0a0a00262626000f0f
0f001f225b92441644728116b8441b725b9d9d4473b80eb844b84473724435b87373355b938135
b8be16165b81be355bb89d35b8945801010103030101020101010104010102040301010202010
10c03010301010303010a010103010102010101020101010101010101010101010101010103010
10102010101010101010101030101020202010101020201010401010101010102020102030102
01020301010302020101010301010201030201030201020101010201010103010101010301010
30101010101010101010101020201010202010102020101020101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
1010101010000930101010a010101010104010102010101020101010203010101010101030401
04010b0101010401030303040201010301235375010b040102010203010204020101010101010
10101010301010102010401010101010103010101010101010102020203030101020202020202
0201010102040301010101020103040101030302010102020101020b020203010102010403030
10102040201010101010101010101010101010101010101010101010201010102010101010102
01010201010103020202010101010302020303010102010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101000027010101020201010101030101040101010203010102030204010
304010102010101010101010301010101010101010101011fce010201010101010201010201010
20302010102020101020203020101010303020301010403030201010202020101010402010102
01010101010102020401010103020101030101010202010103020103030202030201010101010
20101010202010101010202010102020102010303010101010301010101010101020201010303
02010102040201030403010101010102010102010101010101010102010101020303010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
010101010101010101010101010101000027010b0401030103020101010301010302010102020
1010303010103010101020204040204020101010101020303020101021f1d01030104010101010
1010101010101010101010101010301010303040b0201010b0301010201010101010101010102
02010101010101010101010203010101010102010401040301010b02010102020101020201010
10102010202010101020201010101010101010101010101010201010101010102010102020102
01010101010101010101010101010101020101020201010201010101010101020101010101020
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
010101010101010101010101010101010101010100005c0101040101010c020301010101010102
020101010201010103010103010102010101010101010101020201010101010102b17d040c0102
0101010102030203020101010202020101010b010104010101012302010103010101010101010
1010104040101020202030302020201010101020301010b01010101010c0101010101020201010
20201010202020302020202020101010202040101010101010101020101010202020101010202
01010101020201010101020202010101010101010402020302010101010202020202020201010
10101020201010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
0101010101010101010101010101010101010101010101010000b704010101020101010202010
10204010103030101030201010b0301010402010201010201010103020302010101020301031f1
d0101020101020101010101010201010202010102010101010c01011d5f33010a0103030101010
1030201010101010101010101010101010202010101040101010101011a921401030301010403

01010403010104030201010101010201010101030101010101030401010301030101020101010
10101010101010101010303020101020202010102010102010101010101010101010202010101
01010301010303010103010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010100001c0c0cc0882d2d892
d433692682cab882c2c6889682c36198890365f36885f7c36904388c6904343909043aa432d90c6
aac8c2950203020102020101040401020101020b0201010b01010101030123884cb30301010101
04030101030101010a020101040b02010203020101010102030301030302010ac5bfa84d020403
01010102030101010101020101030b01010b03030102030101020101040b01010401020101040
10101030301010201020b04010104020101010101020b01010204010103040101010101010202
01010303010301010402010103010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010100005c0105468b2
e4a40184b9640bb96188ba3961748bb494f40474fbf484166b9b3173cbf9fa8489f48a78b538b8ca7
183c4ea79195040201030102010321b62829050529092104235821012029203d050a015bae0301
b6280c582820200d0c29310d010228b60a040d85b6230301020b233228040120130d030147b701
0285230401b6090301212904020104213d0d0c215829040101020ab60d0b28b6040c2823202328
0905040d3d0b020303020b050d030d28210d23230a0429090a03213d0c0d29b62302020301030b
0c0c0a20210521230d2805040b2101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010000510102549
4011cdc4116011866d4c95bd0be68c7364477abc82b154e3104019dba04948d4634586d5f15701
d7c8c0d8c79bd6e320101030304010238b2938652a712207f16956fc7b911c4081a7794050327ad
010180373d8073590f113562d1690515ca379eb3685c9a69020201cba6d1ad9c52d8885c4d016d
7b21567f8ace0e5e4e8d018f41b60201c5b19ab3c4159739010d01857fca12851bd0a479a117cdcb
b39a7ec09f6018750101286b864b099d6b504fa2497f2f3760bd2fbbc7b39cbb6204030c45319a78
b39e2e3c4823a7bb01c2815ad6864a23010c010301030101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010000370103032
8134c3b014d0b384b528258cd720d31cd8f11586b80858b0201cef56401d87d7bba01afc055e61dc
b4560d62002346c04030201010103474e5584018b06021fc6344604654715d60b432a0101d88b0
503d0510b4e15cef14dc9c701b9065bad0cd3b3203dbf100d0101ca4601abad0ed60143740c4ebe
936a011acbd644015232e6430302018c620a2f4701796c03010ba7d704ce159a3a234c89939703
5573d6c87dc7ed9a0403b38e0d116cc7af0197895f64326cc04c43954ddd14922c01016607315cc
27df14db9170aa8bf048019972a0a7c7d0401010201010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010000770102010
aa4800c0b0102663f01522cdb7cce74960309d5533d753c0129daa618023165a2490db19caee16c
11181b8336652a320c010103030104019a81a501626902b11b7f9c0159564d9801aa610149cd92
6001d77e0247156cb4c69e29014b1f683c017f690ddc789c0c0123dc3101c6af0e830114e1b68a1c
4aa3ae5d7578850104099bc701010157c701959828c195010403b1350b0301c67f01ae43613a02
9f633b013cc936010101494b010201aaa10c85683880049f76160141dbb80216950127f410500b4
38de9aeb9250196b301d8bedc22157501032301020401010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101000093010c312
20c4959583c03b94a754721b2d13e4158283e38312d21410434c9134f015158663c0b7f3660f265
814875c20e64672901020103010c010e69cea902af4809d8c5171c028b8b7dda50b7a704913e13
2503863c0578ab607631cad402d75c813c0386a02c6f049c02020153880c4049abe058b9de053a5
c5fd044f21c40cb09b733e02f0a0203964a01bc8a019450040104512e01895a527f03b3d47e3a0a8
315315ddb85c7b6012381250a9d522d8f01441d0e94099e55a4cee5c450011b7dd4f35bb9547d8d
1db4956247029fa3016e368f57b371ae010101010b010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
010101010101010101010101010101010101010101010101010101010101010100005c0b0195a7
04311c5c3e0412a00166928d0c5d358131322c3e8909adbfe03209170d432237501a1f5f477b72d
76802c535185620020102010104011146733e034a668bba0c09a088ad3254452e6bc87dc29c02a
0321725a39f93a206025ab7164b0c693e0c1fc65d272c1b01010a5d2e60a321ab71bb86d401342f

525

015fab79851d93b8bf6cee2e030101327b433850755ebe5801010c39ab4885607f0239bd77c703b
722890a445b4f2801040b0eab8f1536d0011b932ec60493197720b32c35015f2cb56204add4a438
0ea604174ebda17b7b2a204d352e3c0101010b0102010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
010101010101010101010101010101010101010101010101010101010101010100007b010c0304
010a010a0a013c66010323010b010b2301030b0d013376e695017d4e0a0104040d0b01020c0103
010101020402537d0101040302030c01200b01030301030501010c290c0102030101010d030301
0c01200123030b0401010a0d200a010c0103280101230d010101010404280d015cb2010c010321
290101090201010a09010c69c601010c230cb62101018b500b0a040103332301906e0101b60c01
020a2103012829010103010b02320201aba604013d320101203301030a090a0b5f428f0101a3cb0
30158020c010223280109020302283301020c01010103010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010000270401
03010c02010101158669040102230123010104010a010b3663c50c037e8ec5040403010c030304
010c01010b0104028c6c010c010101010101010104010201010105010301010d01010301010301
0303010c0101010202012302020103010301020c01040b01010d01040102010c01024e860c0401
01a21b0c0301010301020b01010b0101020b010202010302364f47330301010b020c1fcd0b02010
10302010b230101030b010103010c010102537f0c01010301010b0401040101011ac1da0c0b327
4b7010d03010102010401010b01020b0301010501010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
0101010101010101010101010101010101010101010101010101010101010101010101010000bc
0104010204010104020109040301020102010101040a0103012101040101200a0501010401010
10301020201010102010153550102010c0301020201020102010101040102010203010302010b0
3010b0101230104010b0201030101030101020301030104010102030104010b010101010258ae
02010402523d01030102010402010b030103010101010202010101014d520103010c01010155ae
0c01010302010301010b01010104010203010103015d6c01230101010201030101030101295029
0101b655ae0401010302010c01010b0103010201040c0104020203010201010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
100003e0401010101010102020201010101010101010202010103010101010101010102010102
0201010101010101010101010101409c0102010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
1010101010100007e010101010301020101010101010101020101010201010103030202010101
01010101010101010301010101020101010202b11403010202010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
010101010101010101010100005c010104020c0101010101020202010102010101020403010101
010101010202020303010101010101010102020202010401b1550102010201010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
0101010101010101010101010101010100008b882c7c2d687c902d7c2c3636362c7c7c7c43c8c6a
ac7d1c8c8c6aaaa4390909ac7c6c8c8c865603b60d19a65659a9a9aaa2a52040b010c010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101

01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
0101010101010101010101010101010101010101000065c5c49aaa90c7d452524d5a5a4d4dc5c4
cbcbcbd1c7c79acbcbc4c4d4545459c09ac7c8c6aac8653b60d19a65659a9ac8c8aa0201010b010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010100000104010101020b01010101020
20201010202010101020101030303020201010101010101020303030101010202020201010c010
10c010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
1010101010101010101010101010101010101010101010101010101010000010b030301010201
02020202020201010101010101010101010101010102020203020101010101010101010102010
1010c0301010b02010401010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
010101010101010101010101010101010101010101010101010101010101010101010101010

8.8 Using Scoped Memory


The difficulties mentioned in the previous section are indicative of the problems that will be
encountered when programmers attempt to use the RTSJ model. This section attempts to give some
guidelines on when scoped memory areas can be safely used. This is particularly relevant when
designing for reuse.
Class versus thread-based use of scoped memory
One of the main programming decisions to take when using the RTSJ memory area facilities is
deciding where the responsibility should lie for using scoped memory. For example, when a class is
written, which needs some temporary memory space, should it take responsibility for creating and
entering a scoped memory area? At first sight, the answer to this question is "yes, of course". But the
issue is not quite as straightforward as it seems. It is necessary to determine if the class may be used
concurrently. Often a programmer may decide that controlling concurrent access to a class is the
responsibility of the user of the class, not the class itself [1]. This is an approach often taken in the
RTSJ, for example. It is a more efficient approach as locks are not acquired unless they are needed.
However, it is more dangerous as the result may be that data is accessed without the appropriate
locks in place. In the case of using scoped memory, the following issues need to be addressed:
1. If the class targets sequential access and enters into a scoped memory area, then if it
is used concurrently from schedulable objects with active memory areas, a
ScopedCycleException will be thrown when the entered scoped memory area has
more than one parent. The client schedulable objects must, therefore, either ensure
that the scoped memory stack is empty before using the class or ensure that all
clients call the object with the same stack. Consequently clients need to have details
of when a class is using scoped memory areas.
2. If the class targets concurrent access, it must either assume the calling schedulable
objects have the same (or empty) scoped memory stacks, or it must "execute in" a
heap or an immortal area first (to create new stacks). This is necessary for ensuring
no cycles occur. If it chooses the heap, the class cannot be used by a no-heap
schedulable object; if it chooses the immortal memory, named inner classes must be
used otherwise every time it creates an object from an anonymous class, some
memory will be created in immortal memory and this will not be reclaimed.
Given that many of the problems of using scoped memory area are related to threads (schedulable

527

objects), it is perhaps easier to manage the problems at the thread level rather than the object level.
Executing object constructors are perhaps the only real occasion when a thread can guarantee that
the code is called sequentially.
As more experience with using scoped memory is acquired, software design patterns will be
developed to ease the programming burden (these are already beginning to emerge, for example, see
(Benowitz and Niessner, 2003; Pizlo, Fox, Holmes and Vitek, 2004)).
Using prewritten classes
The RTSJ has been carefully designed so that RTSJ programs can use prewritten Java software with
the minimum of surprises (for example, the ATC model presented in Chapter 13 ensures that software
written without knowledge of ATC will not be broken when ATCs occur). The assignment rules for
RTSJ given in Section 8.4 make the use of prewritten classes problematic. In general, if the active
memory area is the heap or immortal memory, then it is safe to call a method in the object as long as
it does not return an object in scoped memory (which it will not do, if the object has never been used
in a scoped memory context). Otherwise, it is necessary to have detailed knowledge of the class'
implementation.
If an object is either created in scoped memory or its methods are called from an active scoped area,
then care must be taken. Firstly, even if the object has been created in scoped memory, any static
variables or static references it owns are stored in the immortal memory. Figure 8.10 illustrates some
of the potential problems if a method is called when there is an active scoped memory area.
Server Object
Heap Memory

in

Server Object in
Immortal Memory

Server Object
Scoped Memory

in

no
reference
parameters

Problems
if
the
method
creates
objects and saves
them
in
local
references

Problems
if
the
method
creates
objects and saves
them
in
local
references

OK. if the server's


scope is the same or
less deeply nested
than the active scope,
otherwise problems if
the method creates
objects and saves
them
in
local
references

reference parameters
to scoped memory
objects

As for no reference
parameters case, plus
problems
if
the
method
saves
parameters in local
references

As for no
parameters
problems
method
parameters
references

reference
case, plus
if
the
saves
in local

As for no reference
parameters case, plus
problems
if
parameters are in a
more deeply nested
scope compared to
the server, and the
method
saves
parameters in local
references

returned reference to
a created object

As
for
reference
parameters case, plus
returned
reference
must be assigned to
the same scope or
more deeply nested
scope of the current
active scope

As
for
reference
parameters case, plus
returned
reference
must be assigned to
the same scope or
more deeply nested
scope of the current
active scope

As
for
reference
parameters case, plus
returned
reference
must be assigned to
the same scope or
more deeply nested
scope of the current
active scope

Figure 8.10: Using Prewritten Classes with an Active Scoped Memory Area
Further problems occur with static fields, which are stored in immortal memory.

The maze example revisited


As an example of when it is safe and appropriate to use scoped memory consider the maze example
given in Chapter 6. Here, a description of the Maze has to be read from a file. An example of the

format of the file is shown in Figure 8.11. The first line contains the size of the maze, the second line
the entrance position and the third line the exit position. The maze itself is then given with the F
character indicating a wall, and a space character indicating a passage.
20

78

//
actual
rows,
actual
columns
1
//
start
11
69
//
finish
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
FFFFFF
F
F
F
F
FFFFF
FFFFFFFFFFFFFFF
FFFFFFFFFFFFFFFFFFFF
FFFFFFFFFFFFFF
FFFFFFFFFFFFFFFF
F
F F
F
F
F
F
F
F F FFFFFFFFFFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFFFF FFFFFFFFFFFF FFFFFFFF
F
F F F
F
F
F
F
FFF
F F F FFFF FFFFFFFF FFFFFFFFFFFFF FFFFFFFF FFFFFFFFFFFFFFFFFFFFFFF F
F
F FFF F
F
F
F
F
FF
F
F
F F FFFF FFFF FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFF F
FFF
F
FFF FFF FF F
F
F
F
F
F
F
F
F
F
F
F
F
F
FFF
F
F
F F F F FF
F
F
F
F
F
F
F
F
F
F
F
F
F
F
FF
FF
FFF
F
F FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF F
F
F FFF F
F
F
F
F
FFF
F
FFF F FFFFFFFFFF FFFFFFFFFF FFFFFFFFFFFFFFFFFFFFF FFFFFFF FFFFFF FFFFFFFF
F
F
FFF F
F
F
F
F
F
FFF
F
FFFFFFF FFFFFFFF FFFFFFFF FFFFFFFFFF FFFFF FFFFFFFFFFFFFFFFFF
FFFFFFFF
F
F F
F
F
F
F
F
F
F FFFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFF
FFFFFFFFF
F
F
F
F
F
F
F
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
FFFFFF
2

Figure 8.11: An Example Maze File


In order to read the maze details from file, various predefined classes can be used. These all require
memory to be allocated, all of which can be reclaimed once the details have been processed. The
maze is modeled in the program as a Maze class, the constructor of which reads in the maze details.
This constructor is called sequentially and, therefore, can use scoped memory for the temporary
objects
created.
The
approach
is
illustrated
below.
import
java.io.*;
import
java.util.*;
import
javax.realtime.*;
public
class
Maze
{
public
char
[]
[]
board;
public
int
startX,
startY;
public
int
finishX,
finishY;
public
int
mazeRows,
mazeColumns;
//
constructor

529

public
Maze()
{
new
LTMemory(100000);
//
say
myMem.enter(
new
Runnable()
{
public
void
run()
{
// Read in and process maze information.
...
// Now create board in immortal memory.
ImmortalMemory im = ImmortalMemory.instance();
im.enter
(new
Runnable()
{
public
void
run()
{
board = new char[mazeRows][mazeColumns];
}
}
);
//
Now
read
in
maze
itself.
}
}
);
//
end
of
constructor
method

LTMemory

myMem

...
} // end of class Maze
Note that the board reference variable and the integers startX, startY, finishX, finishY,
mazeRows and mazeColumns are all stored in the memory area in which an object of the class will
be created (here it is assumed that the maze will be placed in immortal memory). Care must be taken
when the values are assigned. Given that integers are primitive values, this should not be a problem.
However, the board will refer to an object. Consequently, when the object is to be created, the
memory area must be switched to the immortal memory.
The

full

details

of

reading
public

the

maze
class

file

are

now
Maze

presented.
{
...
//
constructor
public
Maze()
{
...
myMem.enter
(new
Runnable()
{
public
void
run()
{
BufferedReader
din
=
new
BufferedReader(
new InputStreamReader(System.in) );
System.out.print("where is the maze file? ");
try
{
String
fileName=
din.readLine().trim();
File
mazeFile
=
new
File(fileName);
if
(!mazeFile.exists())
System.out.println(fileName + " not found");
else
{
FileReader
mazeReader
=
new FileReader(mazeFile);
BufferedReader
mReader
=
new BufferedReader(mazeReader);
String
line
=
mReader.readLine();
StringTokenizer
st
=
new
StringTokenizer(line);
mazeRows = Integer.parseInt(st.nextToken());
mazeColumns
=
Integer.parseIpt(
st.nextToken());
line
=
mReader.readLine();
st
=
new
StringTokenizer(line);
startX
=
Integer.parseInt(
st.nextToken()) --- 1;
startY = Integer.parseInt(st.nextToken()) -1;
line
=
mReader.readLine();
st
=
new
StringTokenizer(line);
finishX
=
Integer.parseInt(

st.nextToken()) --- 1;
finishY
=
Integer.parseInt(
st.nextToken()) --- 1;
ImmortalMemory
im
=
ImmortalMemory.instance();
im.enter
(new
Runnable()
{
public
void
run()
{
/*
as
before
*/}
}
);
for (int row = 0; row < mazeRows; row++) {
line
=mReader.readLine();
for (int col = 0; col < mazeColumns;
col++)
{
board[row][col] = line.charAt(col);
}
}
}
//
end
else
}
catch
(Java.io.IOException
E)
{...
}
}
//
end
run
}
);
//
end
of
constructor
method
...

} // end of class Maze


Note that the values assigned to startX, startY, finishX, finishY, mazeRows and
mazeColumns are all returned on the stack as a result of the function calls. They can, therefore, be
copied into the object's memory without problems. Also note that, in this case, the objects created
from the standard Java libraries could be used without problems.
Utilities and scoped memory
Scoped memory works best when an application wants space to store some temporary objects. As
long as these objects can be grouped together so that they follow a stacking algorithm (last-in-first-out
or in this case, last created-first destroyed), the model works well. However, many algorithms
require a first-in-first-out or some other order. For example, consider a simple List (as found in
java. util). Now suppose objects are created and placed in the list. At a later time, they are
removed from the list (say one at a time and in the order in which they were placed) and processed.
Once processed, they are no longer required. Programming this using scoped memory areas (so that
objects are automatically reclaimed) is far from straightforward and requires detailed knowledge of
both the list structure and the lifetime of the object when it is added to the list. If this is available, then
a combination of scoped memory areas and the use of the enter and executeInArea methods can
usually achieve the desired result (Borg, 2004). However, the algorithms are difficult and not very
elegant. Again, this is an area where design patterns will, in time, emerge. Furthermore, just as with
Java, it has been found necessary to allow interactions between the program and the garbage
collector (via weak references), so it is also necessary to allow interactions between the program and
the implementation of scoped memory areas (Borg and Wellings, 2003).
[1]

The class is Thread Compatible using Bloch's thread safety levels presented in Section 4.8.

8.9 Real-time Issues


The timing properties of scoped memory
One of the overriding goals of the RTSJ is to facilitate predictable implementation. The use of scoped
memory has some interesting impacts on the execution of schedulable objects. These impacts must
be fully understood if programmers are going to be able to analyze their systems. They can be broken
down into the following four components:
1. Entry to scoped memory on entry into a scoped memory region, a schedulable object
may be blocked if it uses one of the join or joinAndEnter methods. The duration of
this blocking may be difficult to bound (unless timeouts are used, but these have their own
problems, see Section 8.6). If the schedulable objects using the scoped memory do not
themselves block after they have entered the scoped memory region, the blocking time
will be the maximum time that lower-priority schedulable objects take to execute the
associated run method. When a schedulable object attempts to enter into a previously

531

2.

3.

4.
5.

active scoped memory area, it may also have to wait for the memory to be reclaimed (see
3 below).
Predictable scoped memory allocation memory allocation in a scoped memory should
be predictable from the details of the implementation and the objects being created. It will
consist of two components: the time taken to allocate the space for the objects (which will
be proportional to their sizes, for LTMemory), and the time taken to execute the
constructors for the objects created.
Exit from scoped memory the RTSJ gives a great deal of freedom on when the memory
used in a scoped memory area is reclaimed. An implementation might decide to reclaim
the memory immediately when the reference count becomes zero or sometime after it
becomes zero, but no later than when a new schedulable object wishes to enter it. Hence,
a schedulable object on one occasion may leave the scoped memory and suffer no
impact; on another occasion, it is the last object to leave and reclamation occurs
immediately; alternatively it may suffer when it first enters the scope (see 1).
Object finalization whenever scoped memory is reclaimed, the objects that have been
created must have their finalization code executed before reclamation. The time for this to
occur must be accounted for in any analysis.
Garbage collector scans the impact, if any, of the garbage collector scanning the scoped
memory area looking for heap references when those memory areas are being reclaimed
concurrently.

Memory Parameters
Given that memory is an important resource in real-time and embedded systems, it is important to be
able to capture the amount of memory a schedulable object needs in order that
it can be taken into account during any feasibility analysis performed by the on-line
scheduler as part of its admission protocol (see Chapter 10);
it can be used to pace any incremental garbage collector to ensure that there is always
adequate free memory available.
The

above

information

is

represented

by the MemoryParameters class given below.


package
javax.realtime;
public
class
MemoryParameters
implement
Cloneable
{
//
fields
public
static
final
long
NO_MAX;
//
constructors
public
MemoryParameters(long
maxMemoryArea,
long maxImmortal);
//
Throws
IllegalArgumentException.
public
MemoryParameters(long
maxMemoryArea,
long maxImmortal, long allocationRate);
//
Throws
IllegalArgumentException.
//
methods
public
Object
clone();
public
long
getAllocationRate();
public
long
getMaxImmortal();
public
long
getMaxMemoryArea();
public
void
setAllocationRate(long
allocationRate);
public
void
setAllocationRateIfFeasible(
long
allocationRate);
public
boolean
setMaxImmortalIfFeasible(long
maximum);
public
boolean
setMaxMemoryAreaIfFeasible(
long
maximum);

}
Each schedulable object has access to three types of memory area: scoped memory, immortal
memory and heap memory. It can be created with a default memory. The MemoryParameters class
allows the following information to be specified (the NO_MAX value indicates that there is no limit):
the maximum amount of memory that will be consumed in the default memory area
the maximum amount of memory that will be consumed in the immortal memory area
the maximum number of bytes per second that will be allocated on the heap.
An instance of the MemoryParameters class can be associated with a schedulable object and this
defines the requirements of that object. The requirements can be changed by calling the "set"
methods. However, if the schedulable object has been guaranteed by the scheduler, the scheduler
will need to undertake a new feasibility analysis.

Important notes

1. There is an obligation on an RTSJ implementation to check for


violations of the memory usage and to throw appropriate
exceptions.
2. Cloning a memory parameter object does not copy any association
that is being maintained with a schedulable object.

Garbage Collection and the RTSJ


As mentioned in Section 8.1, the RTSJ does not rely on the presence of an efficient and predictable
real-time garbage collector. However, it does not rule out that one might be present and consequently
defines how the programmer might interact with it. The MemoryParameters class, just given, is one
example of this. The other main example is via the abstract GarbageCollector class, which allows
the maximum time between the collector's preemption-safe points to be obtained. This is the time that
a schedulable object (which uses the heap) might have to wait before it can preempt any active
garbage
collection.
The
class
definition
is
given
below.
package
javax.realtime;
public
abstract
class
GarbageCollector
{
//
methods
public
abstract
RelativeTime
getPreemptionLatency();
}
The

current

garbage

collector

public
public

can

be obtained via
package
final
class
static

the

RealtimeSystem class:
javax.realtime;
RealtimeSystem
{
...
//
methods
GarbageCollector
currentGC();

}
In general, garbage collectors for real-time systems are incremental and can be classified as workbased or time-based (Bacon, Cheng and Rajan, 2003). In a work-based collector, every application
request, to allocate an object or assign a reference, performs a small amount of garbage collection
work. The amount is determined by the required allocation rate. Here, the worst-case execution time
of each application memory request includes a component for garbage collection. With a time-based
collector, a real-time thread is scheduled to run at a given priority and with a given CPU budget in a
given period. It performs as much garbage collection as it can and competes with other realtime
threads for the processor. An feasibility analysis performed by the on-line or off-line scheduler must
take into account this collector real-time thread. It is beyond the scope of this book to discuss
individual strategies for real-time garbage collection (they do not affect the applications programmer
other than as discussed in this section). See (Henriksson, 1998; Kim et al., 1999; Siebert, 1999 and
Bacon, Cheng and Rajan, 2003; Siebert, 2004) for possible approaches.

8.10 Summary
The lack of confidence in real-time garbage collection is one of the main inhibitors to the widespread
use of Java in real-time and embedded systems. The RTSJ has introduced an alternative (additional)
memory management facility based on the concept of memory areas. There are two types of nonheap
memory areas. The first is a singleton immortal memory that is never subject to garbage collection
delays. Once an object is created in immortal memory, it remains there. Programmers have to reuse
the space explicitly themselves.
The second type of memory area is scoped memory, which schedulable objects can enter and leave.
When there are no schedulable objects active in a scoped memory area, all the objects are destroyed
and their memory reclaimed.
Because of the variety of memory areas, the RTSJ has strict assignment rules between them in order
to ensure that dangling references do not occur. These rules are complicated by the presence of
concurrent activities. They are summarized below:
Objects in the heap or the immortal memory area cannot reference objects in scoped
memory areas.
Objects in one scoped memory area cannot reference objects in another more deeply nested
scoped memory area.
A memory area can only have a single parent.

533

There is little doubt that nonheap memory management is one of the most complicated areas of the
RTSJ, and one that has a major impact on the overheads of the virtual machine and on the structure
of application code. This chapter has reviewed many of the problems and has given some guidelines
on safe usage. In the long-term, real-time garbage collection algorithms will mature and become
trusted in time-critical applications. In the meantime, the RTSJ provides alternative mechanisms for
memory management.

Chapter 9: Clocks and Time


Overview
Introduction and chapter structure
In Section 4.2, it was noted that Java supports the notion of a wall clock (calendar time) only and that
for many applications, a clock based on UTC (Coordinated Universal Time) is sufficient. However,
real-time systems often require additional functionality. In particular, they may need access to the
following (OMG, 2002).
1. A monotonic clock that progresses at a constant rate and is not subject to the insertion of
extra ticks to reflect leap seconds (as UTC clocks are). A constant rate is required for
control algorithms that need to execute on a regular basis. Many monotonic clocks are
also relative to system startup and can be used only to measure the passage of time, not
calendar time. A monotonic clock is also useful for delaying a thread for a period of time,
for example, while it waits for a device to respond. In addition, it may be used to provide
timeouts so that the nonoccurrence of some event (for example an interrupt) can be
detected.
2. A countdown clock that can be paused, continued or reset (for example, the clock that
counts down to the launch of a space shuttle).
3. A CPU execution time clock that measures the amount of CPU time that is being
consumed by a particular thread or object.
All of the above clocks also need a resolution that is potentially finer than the millisecond level. They
may all be based on the same underlying physical clock, or be supported by separate clocks. Where
more than one clock is provided, the relationship between them may be important in particular,
whether their values can drift apart. Even with a single clock, drift in relation to the external time frame
will be important.
This chapter considers the additional clock and time classes that are provided by the RTSJ to
augment the Java facilities. The concept of relative time, absolute time and rational time values are
introduced along with the operations that can be performed on them. The notions of a real-time clock
and a wall clock are also presented along with some examples of their use.

9.1 The Basic Model


The RTSJ defines a hierarchy of time classes rooted in the abstract HighResolutionTime class.
This abstract class has three subclasses: one that represents absolute time, one that represents
relative time, and one that represents rational time. The intention is to allow support for time values
down to nanosecond accuracy. A range of clocks are supported via the abstract Clock class.
Version 1.0 notes
Version 1.0 of the RTSJ was a little underspecified in the relationship between high resolution time
objects and clocks. Version 1.0.1 explicitly requires that all high resolution time objects have an
associated clock and that operations that take more than one high resolution time objects must have
compatible clocks or IllegalArgumentExceptions will be thrown.
High-resolution time values
First, consider the HighResolutionTime class. As with all classes that are essentially abstract data
types, there are methods to read, write, compare and clone time values, all of which are selfexplanatory. Some methods, however, do need further consideration. The method compareTo, which
takes an arbitrary object, is provided so that the class can implement the java.lang.Comparable
interface. If an object passed to this method is not a HighResolutionTime type, the method will
throw ClassCastException. In contrast, the equals method that overrides its counterpart in the
Object class will return -1. Note, that two high-resolution time objects must have the same clock if
they are to be compared (otherwise, an IllegalArgumentException is thrown). As equals is
overridden,
the
corresponding
hashCode
method
must
be
provided.
package
javax.realtime;
public
abstract
class
HighResolutionTime

535

implements

Comparable,
Cloneable
{
//
methods
public
abstract
AbsoluteTime
absolute(Clock
clock);
public
abstract
AbsoluteTime
absoliute
{
Clock
clock,
AbsoluteTime
destination);
public
Object
clone();
public
int
compareTo(HighResolutionTime
time);
//
Throws
ClassCastException,
IllegalArgumentException.
public
int
compareTo(Object
object);
// Throws ClassCast Exception, IllegalArgumentException.
public
boolean
equals(HighResolutionTime
time);
public
boolean
equals(Object
object);
public
Clock
getClock();
public
final
long
getMilliseconds();
public
final
int
getNanoseconds();
public
int
hashCode();
public
abstract
RelativeTime
relative(Clock
clock);
public
abstract
RelativeTime
relative(
Clock
clock,
RelativeTime
time);
public
void
set(HighResolutionTime
time);
//
Throws
ClassCastException.
public
void
set(long
millis);
public
void
set(long
millis,
int
nanos);
//
Throws
IllegalArgumentException.;
public
static
void
waitForObject(
Object
target,
HighResolutionTime
time)
throws
InterruptedException;
//
Throws
IllegalArgumentException,
//
IllegalThreadStateException.

The abstract methods (absolute and relative) allow time types that are relative to be reexpressed as absolute time values and vice versa. The methods also allow the clocks associated with
the values to be changed. The concrete implementation of these methods will be provided by the
subclasses. The role of these methods is to convert the encapsulated time (be it absolute, relative or
rational) to an absolute time relative to some clock (or vice versa) according to the following:
absolute to absolute. The value returned has the same millisecond and nanosecond components as
the encapsulated time value. The returned object is associated with the given clock.
absolute to relative. The value returned is the value of the encapsulute time minus the current time as
measured from the given clock parameter. The returned object is associated with the given clock.
relative to relative. The value returned has the same millisecond and nanosecond components as the
encapsulated time value. The returned object is associated with the given clock.
relative to absolute. The value returned is the value of current time as measured from the given clock
parameter plus the encapsulated relative time. The returned object is associated with the given clock.
In the above, if a null Clock value is given as a parameter, the real-time clock is assumed.
Also consider, for example, the method absolute, which takes a destination parameter. If an
AbsoluteTime object is passed as a parameter, that object is over-written to reflect the
encapsulated time value. Furthermore, the same object is also returned by the function. If a null object
is passed as a parameter, a new object is created and returned. This approach also gives the caller
full control over the memory allocated for the returned object. If a different clock parameter is passed
(to that of the encapsulated clock), the return value is associated with the given clock.
Warning
Changing the clock associated with a time value is potentially unsafe, particularly for
absolute time values. This is because absolute time values are represented as a
number of milliseconds and nanoseconds since an epoch. Different clocks may have
different epochs.
It should also be noted that when setting the millisecond and nanosecond component of a highresolution time type, the nanosecond component can be greater than one millisecond, however, all
values held internally in the object are normalized, The IllegalArgumentException is thrown if
this normalization results in the milliseconds component overflowing.

Finally, the waitForObject static method is introduced to enable a schedulable object to have a
high-resolution timeout while waiting for a condition to be signaled inside a monitor. This is needed
because the wait method in the Object class is defined to be final. Of course, the calling
schedulable object must hold the lock on the target object when this method is called.
Warning The waitForObject does not resolve the problem of determining if the schedulable
object was woken by a notify method call or by a timeout (see Section 4.2). It does,
however, allow both relative and absolute time values to be specified. As with the Java
wait method, waitForObject throws IllegalArgumentException if a negative
(relative) time value is given and IllegalThreadStateException if the calling thread
has not already locked the target object.
Absolute time values
The AbsoluteTime class is given below. Again the methods are self-explanatory. An absolute time
is actually expressed as a time relative to a given epoch. Note that an absolute time can have either a
positive or a negative value and that, by default, it is relative to the epoch of the real-time clock (with
the millisecond and nanosecond components set to zero). Further, any attempt to add or subtract time
values from different clocks will result in an exception (IllegalArgumentException) being thrown.
For example, it makes no sense to subtract an absolute time value measured by one clock from an
absolute
time
value
measured
by
another.
package
javax.realtime;
public
class
AbsoluteTime
extends
HighResolutionTime
{
//
constructors
//
The
following
assume
the
real-time
clock.
public
AbsoluteTime();
public
AbsoluteTime(AbsoluteTime
time);
public
AbsoluteTime(java.util.Date
date);
public
AbsoluteTime(long
millis,
int
nanos);
//
Throws
IllegalArgumentException.
//
Version
1.0.1
has
added
the
following
constructors.
public
AbsoluteTime(Clock
clock);
public
AbsoluteTime(AbsoluteTime
time,
Clock
clock);
public
AbsoluteTime(java,
util
.Date
date,
Clock
clock);
public AbsoluteTime(long millis, int nanos, Clock clock);
//
Throws
IllegalArgumentException.
//
methods
public
AbsoluteTime
absolute(Clock
clock);
public
AbsoluteTime
absolute(Clock
clock,
AbsoluteTime destination);
//
The
following
add
methods
all
throw
//
ArithmeticException
if
there
is
an
overflow.
public
AbsoluteTime
add(long
millis,
int
nanos);
public
AbsoluteTime
add(long
millis,
int
nanos,
AbsoluteTime destination);
public
AbsoluteTime
add(RelativeTime
time);
public
AbsoluteTime
add(RelativeTime
time,
AbsoluteTime destination);
public
java.
util.
Date
getDate();
//
Throws
UnsupportedOperationException.
public
RelativeTime
relative(Clock
clock);
public
RelativeTime
relative(Clock
clock,
AbsoluteTime destination);
public
void
set(Java,
util
.Date
date);
//
Throws
UnsupportedOperationException.
//
The
following
subtract
methods
all
throw
//
ArithmeticException
if
there
is
an
overflow.
public
RelativeTime
subtract(AbsoluteTime
time);
public
RelativeTime
subtract(AbsoluteTime
time,
RelativeTime destination);
public
AbsoluteTime
subtract(RelativeTime
time);
public
AbsoluteTime
subtract(RelativeTime
time,
AbsoluteTime
destination);
public
String
toString();

537

}
Warni Some clocks have no external synchronization. Hence, to request that the absolute time
ng
be set from, or converted to, the java.util .Date format will result in an exception
(UnsupportedOperationException) being thrown. A good example of such a clock is
one which measures the CPU time consumed by a thread.
Relative time
A relative time value is an interval of time measured by some clock; for example, 20 milliseconds
measured
by
the
real-time
clock.
package
javax.
realtime;
public
class
RelativeTime
extends
HighResolutionTime
{
//
constructors
//
The
following
assume
the
real-time
clock.
public
RelativeTime();
public
RelativeTime(long
millis,
int
nanos);
//
Throws
IllegalArgumentException.
public
RelativeTime(RelativeTime
time);
//
Version
1.0.1
has
added
the
following
constructors.
public
RelativeTime(Clock
clock);
public
RelativeTime(long
millis,
int
nanos,
Clock clock);
//
Throws
IllegalArgumentException.
public
RelativeTime(RelativeTime
time,
Clock
clock);
//
methods
public
AbsoluteTime
absolute(Clock
clock);
public
AbsoluteTime
absolute(Clock
clock,
AbsoluteTime destination);
//
The
following
add
methods
all
throw
//
ArithmeticException
if
there
is
an
overflow.
public
RelativeTime
add(long
millis,
int
nanos);
public
RelativeTime
add(long
millis,
int
nanos,
RelativeTime destination);
public
RelativeTime
add(RelativeTime
time);
public
RelativeTime
add(RelativeTime
time,
RelativeTime destination);
public
RelativeTime
relative(Clock
clock);
public
RelativeTime
relative(Clock
clock),
RelativeTime destination);
//
The
following
subtract
methods
all
throw
//
ArithmeticException
if
there
is
an
overflow.
public
RelativeTime
subtract(RelativeTime
time);
public
RelativeTime
subtract(RelativeTime
time,
RelativeTime destination);
public
String
toString();
//
The
following
methods
have
been
deprecated
at
//
Version
1.0.1
as
the
RationalTime
class
has
been
//
deprecated.
public
void
addInterarrivalTo(
AbsoluteTime
destination);
public
RelativeTime
getInterarrivalTime();
public
RelativeTime
getInterarrivalTime(
RelativeTime destination);
}
The set of deprecated methods are associated with the RationalTime class discussed below.
Rational time
Rational time is a relative time type, which has an associated frequency. It is used to represent the
rate at which certain events occur (for example, periodic thread execution). Hence, a RationalTime
value with, say, an interval of 1 second and a frequency of 100, has a inter-arrival time of 10
milliseconds. If no interval is given, the frequency is deemed to be in cycles per second and, hence is
equivalent
to
an
interval
of
1000
milliseconds
with
the
given
frequency.
package
javax.realtime;
public
class
RationalTime
extends
RelativeTime
{

//

//

This

class

has

been

deprecated
at
Version
1.0.1
//
constructors
//
The
following
constructors
throw
//
IllegalArgumentException
if
the
parameters
are
less
than
zero
or
cannot
be
normalized.
public
RationalTime(int
frequency);
public
RationalTime(int
frequency,
long
millis,
int
nanos);
public
RationalTime(int
frequency,
RelativeTime
interval);
//
methods
public
AbsoluteTime
absolute(Clock
clock,
AbsoluteTime destination);
public
void
addInterarrivalTo(
AbsoluteTime
destination);
public
int
getFrequency();
public
RelativeTime
getInterarrivalTime();
public
RelativeTime
getInterarrivalTime(
RelativeTime destination);
public
void
set(long
millis,
int
nanos);
//
Throws
IllegalArgumentException.
public
void
setFrequency(int
frequency);
//
Throws
ArithmeticException.

Important When a rational time is used to represent the frequency of a periodic activity, then the
note
system only has to guarantee that the activity occurs at the frequency requested.
There is no requirement for the releases of the activity to be equally spaced within
time. Indeed, the granularity of the associated clock may be such that it cannot have
equally spaced releases.
Warning RationalTime was a controversial class in version 1.0 of the RTSJ. The reasons for
and
making RationalTime a subclass of HighResolutionTime were not clear and
version
caused problems elsewhere in the specification (for example, the idea of passing a
1.0 note RationalTime to, say, the waitForObject method is very strange; an
implementation will use the interval divided by the frequency in these
circumstances or millis/nanos or one second if the other constructors are
used). For these reasons, the class has been deprecated in version 1.0.1 of the RTSJ
and alternative approaches to meeting the original requirements will be provided in
version 1.1.

Clocks
The RTSJ Clock class defines the abstract class from which all clocks are derived. The specification
allows many different types of clocks; for example, there could be an execution-time clock which
measures the amount of execution time being consumed. There is always one real-time clock which
advances monotonically. This means that the clock can never go backwards. The RTSJ also
recommends that the real-time clock should progress uniformly, not stall and not be subject to the
insertion of leap ticks. The method getRealtimeClock allows this clock to be obtained; note that
this is a static method and, therefore, it can be called directly without knowledge of any subclasses.
Other methods are provided to get the resolution of a clock and, if the hardware permits, to set the
resolution of a clock. If the epoch of the clock is synchronized with the external time frame,
getEpochOffset will return a value consistent with java.util .Date. If not, the exception
UnsupportedOperationException
will
be
thrown.
package
javax.realtime;
public
abstract
class
Clock
{
//
constructor
public
Clock();
//
methods
public
static
Clock
getRealtimeClock();
public
abstract
RelativeTime
getResolution();
public
abstract
AbsoluteTime
getTime();

539

public

//

The

abstract

AbsoluteTime
getTime(
AbsoluteTime
time);
public
abstract
void
setResolution(
RelativeTime resolution);
following method has been added at version 1.0.1
public
abstract
RelativeTime
getEpochOffset();
//
Throws
UnsupportedOperationException.

Version 1.1
note
Version 1.1 of the specification is likely to provide better integration between the Java
wall clock and the Clock class. It is likely that a new static method will be added to
the Clock class, which will allow the Java wall clock to be obtained. New clocks may
also be introduced to measure the CPU time consumed by a schedulable object.
Version 1.0
note
Version 1.0 of the RTSJ was a little too restrictive in defining the epoch of all clocks to
be January 1, 1970, GMT. The epoch should be clock dependent. For example, the
epoch for a monotonic clock might be system start-up time. Version 1.1 is likely to
make some further changes in this area.

Warning

Note also, the getTime (AbsoluteTime time) method returned void in version
1.0.
Other standards defines the notion of a real-time clock, for example, both
POSIX and Ada. All these clocks have slightly different semantics. For example,
in POSIX the real-time clock is not monotonic and in Ada it does not have a
defined epoch.

9.2 Examples
Measuring the passage of time
First, consider a simple example where the elapsed time taken to perform a computation is measured:
{
AbsoluteTime
oldTime,
newTime;
RelativeTime
interval;
Clock
clock
=
Clock.getRealtimeClock();
oldTime
=
clock.getTime();
//
Other
computations.
newTime
=
clock.getTime();
interval
=
newTime.subtract(oldTime);
}
Of course, this approach would only measure the approximate elapsed time, as the schedulable
object executing the code may be preempted after it has finished the computation and before it reads
the new time.
A launch clock
As further illustration of the use of some of the classes defined in this chapter, consider a launch
clock, such as that used by the Space Shuttle. A launch clock is clock that is initiated with a relative
time value and an absolute time value. The absolute time value is the time at which the clock is to
start ticking. The relative time value is the duration of the countdown. The countdown can be stopped,
restarted, or reset.
Although the launch clock is more like an RTSJ Timer (see Section 7.7) than a RTSJ Clock, it can

be created from just the facilities used in this chapter and Java threads. Its implementation is given
below. The class extends the Thread class. The constructor saves the start time and the duration.
The resolution of the countdown is one second, and a function allows the current launch time to be
queried (assuming it is not stopped). Note, the thread will run at the default priority. This will affect the
accuracy of the countdown process. To increase the accuracy, a real-time thread should be used and
run at a high priority. The example assumes that all high resolution time objects are associated with
the
real-time
clock.
import
javax.realtime.*;
public
class
LaunchClock
extends
Thread
{
public
LaunchClock(AbsoluteTime
at,
RelativeTime
countDown)
{
super();
if(at
==
null
*
countDown
==
null)
throw
new
IllegalArgumentException();
startTime
=
at;
remainingTime
=
countDown;
myClock
=
Clock.getRealtimeClock();
counting
=
true;
go
=
false;
tick
=
new
RelativeTime(1000,0);
}
public
RelativeTime
getResolution()
{
return
tick;
}
public
synchronized
AbsoluteTime
getCurrentLaunchTime()
{
if
(myClock.getTime().compareTo(startTime)
<
0)
return
new
AbsolutTime(
startTime.add(remainingTime));
else
return
new
AbsoluteTime(
myClock.geTime().add(remainingTime));
}
...
private
AbsoluteTime
startTime;
private
RelativeTime
remainingTime;
private
RelativeTime
tick;
private
Clock
myClock;
private
boolean
counting;
private
boolean
go;
}
Next, there are various methods which control the countdown process. The counting variable is
used to indicate whether the countdown is in progress or whether it has been stopped. A change in its
status
results
in
the
notifyAll
method
being
called.
import
javax.
realtime.*;
public
class
LaunchClock
extends
Thread
{
...
public
synchronized
void
stopCountDown()
{
counting
=
false;
notifyAll();
}
public
synchronized
void
restartCountDown()
{
counting
=
true;
notifyAll
();
}
public
synchronized
void
resetCountDown(
RelativeTime
to)
{
remainingTime
=
to;
}
...
}
Finally, the launch and run methods can be presented. The launch method simply waits until the
launch
is
go.

541

public
public

javax.realtime.*;
Thread
{
...
synchronized
void
launch()
throws
Exception
{
while(!go)
{
try
{
wait
();
}
catch
(InterruptedException
ie)
{
throw new Exception("Launch failed: waiting");
}
}
//
Launch
is
go.
class

import
LaunchClock

extends

}
The run method first uses the waitForObject method to wait until the countdown should start (note
that it uses the default real-time clock). It then loops around counting down one second at a time
(again using the waitForObject method). If the count is stopped, the wait is immediately terminated
(the
timing
is
only
approximate
here,
to
a
granularity
of
one
second).
public
void
run()
{
synchronized(this)
{
try
{
while(myClock.getTime().compareTo(startTime) < 0)
HighResolutionTime.waitForObject(
this,
startTime);
while(remainingTime.getMilliseconds()
>
0)
{
while(!counting)
wait();
HighResolutionTime.waitForObject(this, tick);
remainingTime.set(
remainingTime.getMilliseconds()
tick.getMilliseconds());
}
}
catch(InterruptedException
ie)
{
...
}
go
=
true;
notifyAll();
}
}
}

9.3 Summary
Clocks and time are fundamental to any real-time system. The RTSJ has augmented the Java
facilities with high resolution time types (both relative and absolute) and a framework for supporting
various clocks. A real-time clock is guaranteed to be supported by any compliant RTSJ
implementation. This is a monotonically non-decreasing clock that progresses at a uniform rate.
The facilities of clock and times were underspecified in version 1.0 of the RTSJ and there have been
some significant changes in version 1.0.1. of the specification. Further changes are likely in version
1.1.

Chapter 10: Scheduling and Schedulable Objects


Overview
Introduction and chapter structure
Real-time systems differ from traditional information processing systems in that they must be able to
interact with their environments in a timely and predictable manner. The days when real-time simply
meant fast have long gone. It is no longer acceptable to build systems and hope that they meet their
timing requirements. Instead, designers must engineer analyzable systems whose timing properties
can be predicted and mathematically proven to be correct (possibly from within a probabilistic
framework). This change in practice has been brought about by advances in scheduling.
Scheduling is the ordering of thread/process executions so that the underlying hardware resources
(processors, networks, etc.) and software resources (shared data objects) are efficiently and
predictably used
Scheduling consists of three components:
an algorithm for ordering access to resources (scheduling policy)
an algorithm for allocating the resources (scheduling mechanism)
a means of predicting the worst-case behavior of the system when the policy and
mechanism are applied (schedulability analysis called feasibility analysis by the RTSJ).
Once the worst-case behavior of the system has been predicted, it can be compared with the
system's timing requirements to ensure that all deadlines will be met.
This chapter considers scheduling and the support for it provided by the RTSJ. First, an introduction
to fixed priority scheduling is given, followed by an overview of the RTSJ's basic model. The various
parameters needed for scheduling are then considered in detail. This is followed by an example of
how simple Earliest-Deadline-First (EDF) scheduling can be implemented from within a priority-based
framework.

10.1 Scheduling and Fixed Priority Scheduling


Although there have been many different scheduling approaches developed over the last 10 to 15
years, one coherent approach, based around the use of fixed priorities, has become popular. Fixed
priority scheduling (FPS) can be defined in terms of its scheduling policy, its scheduling mechanism
and its associated feasibility analysis techniques.
Scheduling policy. FPS requires that
schedulable objects are statically allocated to processors this means that the same
processor is always responsible for executing a particular schedulable object; this approach
is more predictable than, say, allowing an arbitrary processor (in a multi-processor system)
to execute a schedulable object as and when required;
the execution of schedulable objects on a single processor are ordered according to a
priority;
priorities are assigned to schedulable objects at their creation time although no particular
priority assignment algorithm is mandated by FPS, it is usual to assign priorities according to
the relative deadline of the schedulable object (relative to the object's release time); the
shorter the deadline, the higher the priority (this is known as deadline monotonic priority
ordering);
priority inheritance be implemented when accessing resources (this topic is covered in
Chapter 14).
Scheduling mechanism. FPS requires preemptive priority-based dispatching of schedulable objects
the processing resource is always given to the highest-priority runnable schedulable object allocated
to that processor.
Feasibility analysis. There are many different techniques for analyzing whether a fixed priority-based
system will meet its deadlines. Perhaps the most flexible is response time analysis.

543

There are, of course, other approaches to scheduling, such as that based on earliest deadline first
(EDF). Here, the execution of schedulable objects is ordered according to the closest absolute
deadline. See (Burns and Wellings, 2001) and (Stankovic et al, 1998) for a detailed discussion on
fixed priority (with response time analysis) and earliest deadline scheduling respectively. It is beyond
the scope of this book to discuss the details of schedulability analysis. However, it is important to
understand what basic information about the system must be known in order to undertake the
analysis. Most approaches view the system as consisting of a number of schedulable objects. Each
schedulable object is characterized by the following:
Release profile. Typically after a schedulable object is started, it waits to be released (or may be
released immediately); when released, it performs some computation and then waits to be released
again (the time at which it waits is often called its completion time). The release profile defines the
frequency with which the releases occur; they may be time triggered or event triggered. Timetriggered releases usually occur on a regular basis, they are called periodic releases. Event-triggered
releases are typically classified into sporadic (meaning that they are irregular but with a minimum
inter-arrival time) or aperiodic (meaning that no minimum inter-arrival assumptions can be made,
although other information may be available, such as the distribution of releases). Once a schedulable
object has been released, it is eligible for execution. During its execution, it may be blocked waiting for
a resource. When the resource becomes available, the schedulable object is again eligible for
execution.
Processing cost per release. This is some measure of how much of the processor's time is required to
execute the computation associated with the schedulable object's release (that is, after it has been
released and until it has completed). This may be a worst-case value or an average value depending
on the feasibility analysis being used.
Other hardware resources required per release. This is some measure of the hardware resources
needed (other than the processor). For networks, it is usually the time needed (or bandwidth required)
to send the schedulable object's messages across the network. For memory, it is the amount of
memory required by the schedulable object (and if appropriate, the types of memory).
Software resources required per release. This is a list of the nonshareable resources that are required
for each release of the schedulable object and the processing cost of using each resource. Access to
nonshareable resources is a critical factor when performing schedulability analysis. This is because
nonshareable resources are usually nonpreemptible. Consequently, when a schedulable object tries
to acquire a resource, it may be blocked if that resource is already in use. This blocking time has to be
taken into account in any analysis. If the list of software resources is not available then a maximum
blocking time must be provided.
Deadline. The time that the schedulable object has to complete the computation associated with each
release. As usually only a single deadline is given, the time is a relative value rather than an absolute
value. Where the deadline of a schedulable object is greater than its minimum period between
releases (or it has overrun its deadline and the application has decided to let it continue), the
schedulable object may be released even though the execution associated with the previous release
has not completed. In this case, when the schedulable object does complete, it is immediately
rescheduled for execution.
Value. A metric that indicates the schedulable object's contribution to the overall functionality of the
application. It may be
a very coarse indication (such as safety critical, mission critical, non critical),
a numeric value giving a measure for a successful meeting of a deadline, or
a time-valued function that takes the time at which the schedulable object completes and
returns a measure of the value (for those systems where there is no fixed deadline or where
quality of service is the main issue).
The information needed for the above characteristics comes from a variety of sources. It may be
specified as part of the application's requirements (for example, the value parameter), derived during
the system design (for example, the deadline parameters), or result from static or dynamic analysis of
the final code (for example, the cost and blocking time parameters).
Off-line and on-line analysis
One of the key characteristics of schedulability (feasibility) analysis is whether the analysis is
performed off-line or on-line. For safety critical systems, where the deadlines associated with
schedulable objects must always be met (so-called hard real-time systems), off-line analysis is
essential, as the system must not enter service if there is a possibility of deadlines being missed.
Other systems do not have such stringent timing requirements or do not have a predictable worst-

case behavior. In these cases, on-line analysis may be appropriate or, indeed, the only option
available. These systems must be able to tolerate schedulable objects not being feasible (that is,
failing the schedulability analysis) and offer degraded services. Furthermore, they must be able to
handle deadlines being missed or situations where the assumed worst-case loading scenario has
been violated.
Mode changes
The essence of fixed priority systems is that the priorities of the schedulable objects do not change
except on a temporary basis as a result of priority inheritance (see Chapter 14). However, in many
applications, not all the schedulable objects are needed at all times during the lifetime of the system.
For example, a fly-by-wire civil aircraft may have many different components that control take-off,
cruising and landing. The component used to lower the undercarriage is not needed during cruising.
Furthermore, although some components are used in more than one phase of the flight, their
scheduling-related characteristics may change. For example, a component responsible for monitoring
wind shear needs to be more responsive on landing than when cruising.
These characteristics present a problem for fixed priority systems. To assume that all components are
active all the time (and with their most demanding resource requirements) leads to very pessimistic
analysis and an overengineered system. To avoid this, real-time systems are considered to have
several modes of operation. Changes between modes are usually well planned. The schedulability
analysis is performed on a per mode basis and on the intervals during which mode changes occur.
Within each mode of operation, schedulable objects have fixed priority (other than when subjected to
priority inheritance). However, a schedulable object's priority may be different in different modes.
Consequently, the programmer may need to change its priority at run-time. Hence, although priorities
may change as a result of both priority inheritance and mode changes, the system is still viewed as
being fixed priority.

10.2 The Basic Model


The RTSJ provides a framework from within which on-line feasibility analysis of priority-based
systems can be performed for single-processor systems. The specification also allows the real-time
JVM to monitor the resources being used and to release asynchronous event handlers if this use of
resources goes beyond that specified by the programmer.
As mentioned in Section 7.5, the RTSJ introduces the notion of a schedulable object rather than
considering only threads. A schedulable object is any object that implements the Schedulable
interface (although the priority scheduler only supports real-time threads and asynchronous event
handlers). This allows the following attributes to be associated with each schedulable object.
ReleaseParameters Giving the processing cost for each release of the object and its
deadline; if the object is released periodically or sporadically, then subclasses allow an
interval to be given. Event handlers can be specified for the situation where the deadline is
missed or the processing resource consumed becomes greater than the cost specified.
However, note that there is no requirement for a real-time JVM to monitor the processing
time consumed by a schedulable object. If it does, then there is a requirement that a
schedulable object be given no more than cost processing units each release (see Section
10.4.1).
SchedulingParameters The SchedulingParameters class is empty; however,
subclasses allow the priority of the object to be specified along with its importance to the
overall functioning of the application. Although the RTSJ specifies a minimum range of realtime priorities (28), it makes no statement on the allowed values of the importance
parameter.
MemoryParameters Giving the maximum amount of memory used by the object in its
default memory area, the maximum amount of memory used in immortal memory, and a
maximum allocation rate of heap memory. Where memory parameters are given by an
application, it is required that the real-time JVM monitor the memory consumed and report
any violation.
ProcessingGroupParameters This allows several schedulable objects to be treated as
a group and to have an associated period, cost and deadline (see Section 10.4.5).

545

Version 1.1
note
It should be noted that version 1.0.1 of the RTSJ makes no mention of blocking time
in any of the parameters associated with schedulable objects. The assumption is
that a particular implementation will subclass ReleaseParameters to bring in this
data. Typically, this will be a RelativeTime set by the programmer as a result of
off-line analysis of the code.
It is likely that version 1.1 will formally introduce blocking time into the ReleaseParameters class.
The Schedulable interface
The methods in the Schedulable interface can be divided into three groups.
Methods that will communicate with the scheduler and will result in the scheduler either
adding or removing the schedulable object from the list of objects it manages (called its
feasibility set), or changing the parameters associated with the schedulable object (but only if
the resulting system is feasible). The scheduler performs a feasibility test on the objects it
manages and the methods return true if the system is feasible, false otherwise. Note that
changing the parameters of a schedulable object that is not in the current feasibility set is
equivalent to "adding and changing" the parameters if feasible.
Methods that get or set the parameter classes associated with the schedulable object. If the
parameter object set is different from the one currently associated with the schedulable
object, the previous value is lost and the new one will be used in any future feasibility
analysis performed by the scheduler. Note these methods do not result in feasibility analysis
being performed and the parameters are changed even if the resulting system is not
feasible.
Methods that get or set the scheduler. For systems that support more than one scheduler,
these methods allow the scheduler associated with the schedulable object to be
manipulated. Note the second setScheduler method, as well as setting the scheduler,
also informs the scheduler of the parameter classes for the schedulable object.
The RTSJ defines two classes that implement the Schedulable interface: AsyncEventHandler
and RealtimeThread. The details of these are discussed in Chapters 11 and 12 respectively. The
specification of the parameter classes are given later in this chapter.
The

full

definition

of

the
Schedulable
interface
is
given
below.
package
javax.realtime;
public
interface
Schedulable
extends
Runnable
{
//
Methods
which
result
in
feasibility
being
tested.
public
boolean
addIfFeasible();
public
boolean
addToFeasibility();
public
boolean
removeFromFeasibility();
//
The
remaining
methods
throw
one
or
more
of
the
//
following
unchecked
exceptions:
//
IllegalArgumentException
if
the
parameter
//
values are not compatible with the scheduler.
//
IllegalAssignmentError - if this object cannot hold
//
references to all the parameter objects or the
//
parameters cannot hold references to this object.
//
IllegalThreadStateException
if
the
new
release
//
parameters
change
the
schedulable
object
from
//
periodic
scheduling
to
some
other
protocol
and
//
the
schedulable
object
is
currently
waiting
for
//
the
next
release,
or
if
the
sched
parameter
is
//
not
compatible
with
the
scheduler
associated
//
this
schedulable
object.
public
boolean
setIfFeasible(
ReleaseParameters
release,
MemoryParameters
memory);
public
boolean
setIfFeasible(
ReleaseParameters
release,
MemoryParameters
memory,
ProcessingGroupParameters
groupParameters);
public
boolean
setIfFeasible(
ReleaseParameters
release,
ProcessingGroupParameters
groupParameters);
public
boolean
setIfFeasible(
SchedulingParameters
sched,
ReleaseParameters
release,
MemoryParameters
memory);

public

boolean
setIfFeasible(
SchedulingParameters
sched,
ReleaseParameters
release,
MemoryParameters
memory,
ProcessingGroupParameters
groupParameters);
public
boolean
setMemoryParametersIfFeasible(
MemoryParameters
memory);
public
boolean
setProcessingGroupParametersIfFeasible(
ProcessingGroupParameters
groupParameters);
public
boolean
setReleaseParametersIfFeasible(
ReleaseParameters
release);
public
boolean
setSchedulingParametersIfFeasible(
SchedulingParameters
sched);
//
Methods
which
get/set
the
various
parameter
classes.
//
No
feasibility
analysis
is
performed.
public
MemoryParameters
getMemoryParameters();
public
void
setMemoryParameters(MemoryParameters
memory);
public
ProcessingGroupParameters
getProcessingGroupParameters();
public
void
setProcessingGroupParameters(
ProcessingGroupParameters groupParameters);
public
ReleaseParameters
getReleaseParameters();
public
void
setReleaseParameters(
ReleaseParameters
release);
public
SchedulingParameters
getSchedulingParameters();
public
void
setSchedulingParameters(
SchedulingParameters
sched);
//
Methods
which
get
or
set
the
scheduler.
public
Scheduler
getScheduler();
public
void
setScheduler(Scheduler
scheduler);
public
void
setScheduler(Scheduler
scheduler,
SchedulingParameters
scheduling,
ReleaseParameters
release,
MemoryParameters
memory,
ProcessingGroupParameters
processing);
Important Changing the parameters of a schedulable object while it is executing can
note
potentially undermine any feasibility analysis that has been performed and
cause deadlines to be missed. Consequently, the RTSJ provides methods that
allow changes of parameters to occur only if the new set of schedulable
objects is feasible. In these situations, the new parameters may not have an
impact on a schedulable object's executions until the end of its current release
(it depends on the current scheduler). Some applications will need the
changes to take place unconditionally (and to affect the current release).
These unconditional changes are supported by the RTSJ through the methods
that do not test for feasibility. In both cases, the scheduler's feasibility set is
updated.
Version The Schedulable interface is likely to change in version of 1.1 of the RTSJ
1.1 note to allow for a better handling of cost enforcement (see Section 10.4.1).

10.2.1 Schedulers
As well as generalizing threads to schedulable objects, the RTSJ also generalizes the notion of
priority to one of execution eligibility. This is so that it can leave the door open for implementations to
provide other schedulers (say value-based schedulers or earliest-deadline-first schedulers). All
schedulers, however, must follow the framework specified by the abstract Scheduler class.
package
javax.realtime;
public
abstract
class
Scheduler
{
//
constructors
protected
Scheduler();
//
methods
//
The
methods
throw
IllegalArgumentException
if
null
//
release
or
schedulable
parameters
are
passed,
and
//
IllegalAssignmentError
if
the
scheduler
cannot
hold
//
a
reference
to
the
schedulable
object.

547

protected

abstract

boolean
addToFeasibility(
Schedulable
schedulable);
protected
abstract
boolean
removeFromFeasibility(
Schedulable
schedulable);
public
abstract
boolean
isFeasible();
public
abstract
boolean
setIfFeasible(
Schedulable
schedulable,
ReleaseParameters
release,
MemoryParameters
memory);
public
abstract
boolean
setIfFeasible(
Schedulable
schedulable,
ReleaseParameters
release,
MemoryParameters
memory,
ProcessingGroupParameters
group);
public
abstract
void
fireSchedulable(
Schedulable
schedulable);
// Throws UnsupportedOperationException if the scheduler
// does not support this type of schedulable object.
public
static
Scheduler
getDefaultScheduler();
public
abstract
String
getPolicyName();
public
static
void
setDefaultScheduler(
Scheduler
scheduler);
}
Each scheduler maintains a set of schedulable objects that it manages. It may perform some form of
feasibility analysis on that set to determine if the objects will meet their deadlines. The protected
methods are called from schedulable objects and enable those objects to be unconditionally added to
or removed from the list, the boolean return values indicate whether the resulting system is feasible.
The setIfFeasible methods provides an atomic operation that allows the parameters of a
schedulable object to be changed only if it does not affect the feasibility of the whole set of objects
being managed by the scheduler. The isFeasible method can be called to determine if the current
set of objects can be scheduled to meet their deadlines.
Important Even if a scheduler indicates that a set of schedulable objects is infeasible, there
note
might still be some merit in allowing those objects to execute. In particular, the cost
the scheduler is given may represent the worst-case estimates and it may be
extremely unlikely that all schedulable objects consume their worst-case cost at the
same time. Furthermore, worst-case blocking may not occur and sporadic objects may
not be released at their worst-case frequency.
The fireSchedulable method, when called, informs the scheduler that a new schedulable object is
ready for release. Typically, this method would only be called by an application if an RTSJ vendor
implements its own schedulable object type (rather than using the predefined real-time thread or
asynchronous event handler abstractions). However, it is far from clear how such implementerdefined schedulable objects can indicate that they have completed their release.
There are two static methods in the Scheduler class, which allow the default scheduler to be set and
obtained. The method getPolicyName allows a scheduler to return a string that characterizes its
policy. For example, an EDF scheduler might return "EdfScheduler".
Important It should be stressed that the RTSJ does not insist that feasibility analysis should be
notes
performed, it simply demands that if it is then it should follow the framework given by
the Scheduler class. It is acceptable for an implementation to simply return true
when asked if the set of objects is feasible. This would indicate that the scheduler
assumes that it has access to an adequately fast computer. Arguably, it would be
better for a scheduler to return false when asked about feasibility. After all, it cannot
verify that the system is schedulable.
Where a scheduler does provide feasibility analysis, it is important for the implementation to document
the assumptions that the analysis makes. For example, a scheduler that simply calculates the
processor utilization and returns true if it is less that 100% is probably assuming that the schedulable
objects do not share any resources and, therefore, are not subject to blocking.

10.3 The Priority Scheduler


The only scheduler that the RTSJ fully defines is a priority scheduler, which can be summarized as
follows.

Scheduling policy. The PriorityScheduler


supports the notion of base and active priority;
orders the execution of schedulable objects on a single processor according to the active
priority;
supports a real-time priority range of at least 28 unique priorities (the larger the value, the
higher the priority);
requires the programmer to assign the base priorities (say, according to the relative deadline
of the schedulable object);
requires the deadline of a schedulable object with periodic release parameters to be less
than or equal to the period;
allows base priorities to be changed by the programmer at run-time;
supports priority inheritance or priority ceiling emulation inheritance for synchronized objects
(see Chapter 14);
assigns the active priority of a schedulable object to be the higher of its base priority and any
priority it has inherited.
Scheduling mechanism. The PriorityScheduler
supports preemptive priority-based dispatching of schedulable objects the processor
resource is always given to the highest-priority runnable schedulable object;
does not define where in the run queue (associated with the priority level) a preempted
object is placed; however, a particular implementation is required to document its approach
and the RTSJ recommends that it be placed at the front of the queue;
places a blocked schedulable object that becomes runnable, or has its base priority
changed, at the back of the run queue associated with its (new) active priority;
places a schedulable object that performs a Thread.yield method call at the back of the
run queue associated with its priority;
does not define whether schedulable objects of the same priority are scheduled in FIFO,
round-robin order or any other order.
Schedulability (feasibility) analysis. The PriorityScheduler
requires no particular analysis to be supported.
The

specification

of

the

PriorityScheduler
class
is
given
below:
package
javax.realtime;
public
class
PriorityScheduler
extends
Scheduler
{
// fields - these have been deprecated at version 1.0.1
public
static
final
int
MAX_PRIORITY;
public
static
final
int
MIN_PRIORITY;
//
constructors
protected
PriorityScheduler();
//
The
methods
throw
IllegalArgumentException
if
null
//
release
or
schedulable
parameters
are
passed,
and
//
IllegalAssignmentError
if
the
scheduler
cannot
hold
//
a
reference
to
the
schedulable
object.
//
methods
which
test
feasibility
protected
boolean
addToFeasibility(
Schedulable
schedulable);
public
boolean
isFeasible();
protected
boolean
removeFromFeasibility(
Schedulable
schedulable);
public
boolean
setIfFeasible(Schedulable
schedulable,
ReleaseParameters
release,
MemoryParameters
memory);
public
boolean
setIfFeasible(Schedulable
schedulable,
ReleaseParameters
release,
MemoryParameters
memory,
ProcessingGroupParameters
group);
// The following method is likely to be added in version
//
1.1
of
the
RTSJ
public
boolean
setIfFeasible(Schedulable
schedulable,
PriorityParameters
priority,
ReleaseParameters
release,
MemoryParameters
memory,
ProcessingGroupParameters
group);
//
other
methods
public
void
fireSchedulable(Schedulable
schedulable);

549

//

This

method

always throws UnsupportedOperationException


public
int
getMaxPriority();
public
static
int
getMaxPriority(Thread
thread);
//
Throws
IllegalArgumentExeption
if
thread
is
not
//
being
scheduled
by
the
priority
scheduler.
public
int
getMinPriority();
public
static
int
getMinPriority(Thread
thread);
//
Throws
IllegalArgumentExeption
if
thread
is
not
//
being
scheduled
by
the
priority
scheduler.
public
int
getNormPriority();
public
static
int
getNormPriority(Thread
thread);
//
Throws
IllegalArgumentExeption
if
thread
is
not
//
being
scheduled
by
the
priority
scheduler.
public
String
getPolicyName();
public
static
PriorityScheduler
instance();

As well as overriding the nonstatic methods of the Scheduler class (thereby providing the methods
needed by objects implementing the Schedulable interface), the PriorityScheduler also adds
three new methods to query the maximum, normal and minimum priority levels supported by the
scheduler.
The
normal
priority
is
defined
to
be
getMinimumPriority()
+
(getMaximumPriority()
getMinimumPriority())/3
The associated static methods allow Java threads to determine their priority range. If they are being
scheduled by the PriorityScheduler this is the PriorityScheduler's priority range, otherwise
it is the standard Java thread priority range.
Note that the MAX_PRIORITY and MIN_PRIORITY fields have been deprecated in version 1.0.1 of
the RTSJ as they allowed the values to be statically represented in a Java class file. This reduced
portability. Note also that the PriorityScheduler only supports real-time threads and
asynchronous event handlers as schedulable objects.

10.4 The Parameter Classes


Each schedulable object has several associated parameters. These parameters are tightly bound to
the schedulable object and any changes to the parameters' attributes can have an immediate impact
on the scheduling of the objects or any subsequent feasibility analysis performed by its scheduler (see
Section 10.5).
Each schedulable object can have only one set of parameters associated with it. However, a
particular parameter object can be associated with more than one schedulable object. In this case,
any changes to the parameter objects affects all the schedulable objects bound to those parameters.
Details of the MemoryParameters class were given in Section 8.9. The full definition of the
remaining parameter classes are given in this section.

10.4.1 Release parameters


Release parameters characterize how often a schedulable object is released and provide an estimate
of the worst-case processor time needed for each release, and a relative deadline by which each
release must have completed.
Version1.1
An estimate of the blocking time (called blockingTerm below) that will be suffered
note
on each release is likely to be added in version 1.1 of the RTSJ.
There is a close relationship between the actions that a schedulable object can perform and its
release parameters. For example, the RealtimeThread class has a method called
waitForNextPeriod; however, a real-time thread object can only call this method if it has
PeriodicParameters associated with it. This may seem a little counter-intuitive and indeed early
versions of the RTSJ had subclasses of RealtimeThread representing periodic activity. The main
advantage of the current approach is that it allows a real-time thread to change its release
characteristics and hence adapt its behavior.
The root of the ReleaseParameters class hierarchy is given below. The RTSJ takes the view that

the minimum information that a scheduler will need for feasibility analysis is the cost,
(blockingTerm) and deadline associated with each release of a schedulable object.
Warning Typically the cost (and blockingTerm) is set by the application and is a measure of
how much processor time the scheduler should assume that the associated scheduling
object will require for each release (and for how much time it will be blocked waiting for
resources). These are clearly dependent on the processor on which the schedulable
object is being executed. Consequently, any programmer-defined values will not be
portable.
The deadline is the time from a release that the schedulable object has to complete its execution.
The overrunHandler is an asynchronous event handler that should be released if the schedulable
object overruns its cost value on a particular release. Similarly, the missHandler is released if the
schedulable object is still executing when its deadline arrives.
The ReleaseParameters class defines methods for getting and setting the cost (and
blockingTerm), deadline and their associated handlers. It also provides a method
setIfFeasible that will change the cost and deadline but only if the set of objects managed by
the associated scheduler is still feasible. Unconditional changes to the cost, blockingTerm and
deadline attributes take place immediately. However, with the default priority scheduler, changes to
the deadline will not be acted upon until the next release.
The clone method copies only the public data, not any association that are maintained with
schedulable
objects.
package
javax.realtime;
public
class
ReleaseParameters
implements
Cloneable{
//
constructors
protected
ReleaseParameters();
protected
ReleaseParameters(RelativeTime
cost,
RelativeTime
deadline,
AsyncEventHandler
overrunHandler,
AsyncEventHandler
missHandler);
//
Throws
IlegalArgumentException
if
cost
is
less
than
//
zero
or
deadline
is
less
than
or
equal
to
0.
//
The
following
constructor
is
likely
to
be
added
in
//
Version
1.1
of
the
RTSJ.
protected
ReleaseParameters(RelativeTime
cost,
RelativeTime
deadline,
RelativeTime
blockingTerm,
AsyncEventHandler
overrunHandler,
AsyncEventHandler
missHandler);
//
methods
public
Object
clone();
public
RelativeTime
getCost();
public
AsyncEventHandler
getCostOverrunHandler();
public
RelativeTime
getDeadline();
public
AsyncEventHandler
getDeadlineMissHandler()
public
void
setCost(RelativeTime
cost);
//
Throws
IlegalArgumentException
if
cost
is
less
than
//
zero.
public
void
setCostOverrunHandler(
AsyncEventHandler
handler);
public
void
setDeadline(RelativeTime
deadline);
//
Throws
IlegalArgumentException
if
deadline
is
less
//
than
or
equal
to
0.
public
void
setDeadlineMissHandler(
AsyncEventHandler
handler);
public
boolean
setIfFeasible(RelativeTime
cost,
RelativeTime deadline);
//
The
following
methods
are
likely
to
be
added
in
//
Version
1.1
of
the
RTSJ.
public
RelativeTime
getBlockingTerm();
public
void
setBlockingTerm(RelativeTime
blockingTerm);
public
boolean
setIfFeasible(RelativeTime
cost,

551

RelativeTime

deadline,

RelativeTime

blockingTerm);

Null values for cost (and blockingTerm) parameters result in new RelativeTime objects being
created with zero millisecond and nanosecond components. A null deadline results in a new
RelativeTime object being created with Long.MAX_VALUE milliseconds and 999999 nanoseconds
components. Null missHandler or overrunHandler values indicate that no handlers should be
released when the deadline is missed or the cost overruns.
Cost enforcement
The RTSJ does not require that an implementation monitor the processing time consumed by
schedulable objects, as this requires support from the underlying operating system. Many operating
systems do not currently provide this support. However, it is likely that they will in the future as the
POSIX standards now define such a facility.
If cost monitoring is supported, the RTSJ requires that the priority scheduler gives a schedulable
object a CPU budget of no more than its cost value on each release. Hence, if a schedulable object
overruns its cost budget, it is automatically descheduled (made not eligible for execution)
immediately. It will not be rescheduled until either its next release occurs (in which case its budget is
replenished) or its associated cost value is increased. The facilities to support the handling of cost
overruns depend on whether the schedulable object is an asynchronous event handler or a real-time
thread. They are not uniformly very well defined in version 1.0.1. of the RTSJ. It is likely version 1.1
will enhance these facilities and that the following methods will be provided in the Schedulable
interface.
package
public
//

interface
The

Schedulable

following
methods
//
version
public
public

extends

are
likely
1.1
of
void
void

to

javax.realtime
Runnable
{
...
be
added
in
the
RTSJ.
deschedule();
schedule();

The deschedule method informs the associated scheduler that the schedulable object should be
made not eligible for execution at the end of its current release. The schedule method informs the
associated scheduler that the schedulable object should be made eligible for execution when its next
release event occurs.
Further details of cost monitoring are given in the sections 11.3 and 12.1 for asynchronous event
handlers and real-time threads respectively.

10.4.2 Periodic and aperiodic parameters


Subclasses of the ReleaseParameters class allow more information to be provided to the
scheduler. The RTSJ defines three such subclasses. The PeriodicParameters class is for those
schedulable objects that are released on a regular basis. It has two extra components: a start time
and a period. The start time can be an AbsoluteTime or a RelativeTime and indicates that the
schedulable object should be first released at this time. If the schedulable object is a real-time thread
then the actual first release time is given by
if
start
is
a
RelativeTime
value
then
first release = time of the start() method call + start
if
start
is
an
AbsoluteTime
value
then
first release = Maximum of the time of the start() method call and start
if
start
is
null
then
first release = time of the start() method call
The period parameter defines the interval between successive releases of the associated
schedulable object.
Important The deadline for a schedulable object with periodic parameters is measured from
note
the time that it is released, not when it is started. Its default value is the same value
as the period.

The

full

//

definition

of

the
PeriodicParameters
class
is
given
below.
package
javax.realtime;
public
class
PeriodicParameters
extends
ReleaseParameters
{
//
Constructors:
throw
IllegalArgumentException
if
//
period
is
null.
public
PeriodicParameters(RelativeTime
Period);
public
PeriodicParameters(HighResolutionTime
start,
RelativeTime
period);
public
PeriodicParameters(
HighResolutionTime start, RelativeTime period,
RelativeTime
cost,
RelativeTime
deadline,
AsyncEventHandler
overrunHandler,
AsyncEventHandler
missHandler);
The
following
constructor
is
likely
to
be
added
in
//
Version
1.1
of
the
RTSJ.
public
PeriodicParameters(
HighResolutionTime start, RelativeTime period,
RelativeTime
cost,
RelativeTime
deadline,
RelativeTime
blockingTerm,
AsyncEventHandler
overrunHandler,
AsyncEventHandler
missHandler);
//
methods
public
RelativeTime
getPeriod();
public
HighResolutionTime
getStart();
public
void
setPeriod(RelativeTime
period);
//
Throws
IllegalArgumentException
if
period
is
null.
public
void
setStart(HighResolutionTime
start);
public
boolean
setIfFeasible(RelativeTime
period,
RelativeTime
cost,
RelativeTime
deadline);
//
Throws
IllegalArgumentException
if
period
is
null.

}
Warning The getStart method returns the value passed in the constructor or the last value set
by a call of the setStart method. It does not return the time the schedulable object was
first released. Such a facility is not available in the current RTSJ. However, it is likely to be
added in a future release.

Note also that changing the start time of an already started schedulable object has no effect.
Aperiodic activity
In contrast to periodic activity, aperiodic activity can occur at any time. Hence a schedulable object
with AperiodicParameters can give no added information to its release characteristics over that
supplied by ReleaseParameters. However, as it is likely that a release will occur before the
previous release has completed, an implementation will maintain an internal queue of outstanding
invocation requests for aperiodic schedulable objects. Consequently, the RTSJ provides facilities to
define the size of the queue and what happens if the queue overflows. The class definition is given
below.
package
javax.realtime;
public
class
AperiodicParameters
extends
ReleaseParameters
{
//
fields
public
static
final
String
arrivalTimeQueueOverflowExcept;
public
static
final
String
arrivalTimeQueueOverflowIgnore;
public
static
final
String
arrivalTimeQueueOverflowReplace;
public
static
final
String
arrivalTimeQueueOverflowSave;
//
constructors
public
AperiodicParameters();
public
AperiodicParameters(
RelativeTime
cost,
RelativeTime
deadline,
AsyncEventHandler
overrunHandler,
AsyncEventHandler
missHandler);
//
The
following
constructor
is
likely
to
be
added
in

553

//

1.1
of
the
RTSJ
public
AperiodicParameters(
RelativeTime
cost,
RelativeTime
deadline,
RelativeTime
blockingTerm,
AsyncEventHandler
overrunHandler,
AsyncEventHandler
missHandler);
//
methods
public
String
getArrivalTimeQueueOverflowBehavior();
public
void
setArrivalTimeQueueOverflowBehavior(
String
behavior);
public
int
getInitialArrivalTimeQueueLength();
public
void
setInitialArrivalTimeQueueLength(
int
initial);
public
boolean
setIfFeasible(RelativeTime
cost,
RelativeTime deadline);

Version

Consider, for example, an event handler that is released by a call to the fire method of its
associated asynchronous event. Suppose that the maximum length of the queue is 3 and the
implementation is simply keeping track of the time of the arrival of the fire request (that is, there are no
other parameters associated with the fire event and deadline overrun is not being tested for). At some
point in time the queue is

Where X is an absolute time and the increments are measures, in, say, seconds.
Queue overflow
Now consider a new release event occurring at X+12 that will result in the queue overflowing if no
action is taken. The available actions are
throw an exception the exception ResourceLimitError is thrown on the offending call
of the fire method; note that even if more than one handler is associated with the event,
the exception is thrown if one or more of them suffer a queue overflow;
ignore the fire the call to fire the asynchronous event is ignored for that handler; if more
than one handler is associated with the event, then the fire is ignored only for those
handlers that would suffer a queue overflow;
replace the last release the last release event is overwritten with the new release event.
Hence, in the above example, the queue would now be

save the request the queue is lengthened.

The above range of options are specified via string parameters to the setArrivalTimeQueueOverflowBehavior
Important note andThe deadline of an aperiodic schedulable object can never be guaranteed
warning
as there is no limit on how often it can be released. Hence, the deadline
attribute should be interpreted as a target completion time rather than as a
strict deadline. Furthermore, the setIfFeasible method should always
return false as aperiodic parameters indicate a potentially unbounded
demand on the processor's time. However, the PriorityScheduler's
default feasibility algorithm assumes an adequately fast computer and,
consequently, always return true!
Version 1.0 note
In version 1.0, the arrival time queue was only specified for sporadic release
parameters. This was an error in the specification, which has now been
corrected.

10.4.3 Sporadic parameters


Schedulable objects that have sporadic parameters are released at irregular intervals but the

scheduler can assume (for its feasibility analysis) that the time between any two releases will always
be greater than or equal to a minimum inter-arrival time (MIT). At run-time, the scheduler must check
for violation of this constraint and take some corrective action.
MIT violation
The available actions on violation of the minimum inter-arrival time are similar to those for the arrival
queue overflow presented in the previous section. Assume again that the maximum length of the
arrival queue is 3 and that the queue contains the following:

Assume that the minimum inter-arrival time is 2 seconds. Now a new request arrives at time X+5, the
following actions can be specified
throw an exception the exception MITViolationException is thrown on the offending
call of the fire method; note that even if more than one handler is associated with the
event, the exception is thrown if one of more of them suffer a minimum inter-arrival time
violation;
ignore the fire the call to fire the asynchronous event is ignored; if more than one handler
is associated with the event, then the fire is ignored only for those handlers that would
suffer a minimum inter-arrival time violation;
replace the last request the last request is overwritten with the new request. In the above
example the queue would now be

If the last release is already active (or has already completed), the new request is ignored.
save the request the request is saved, but the time between the request and the last
request is set to the minimum inter-arrival time; in the above example the new queue would
be

Note although X+6 is the effective release time of the sporadic handler, any deadline requirement will
be measured relative to the actual arrival time (X+5).
The above range of options are specified via string parameters defined in the SporadicParameters
class. The full class definition is given below. There are methods to get and set the minimum interarrival time, along with methods to get and set the actions to be taken on minimum inter-arrival time
violation. The setIfFeasible method changes the cost, deadline and minimum inter-arrival time
parameters but only if the set of objects managed by the associated scheduler is still feasible.
Important Where an asynchronous event is associated with an external happening, the throwing
note
of any exception is suppressed if it is caused by the happening.

The
full
package
public

definition

of

the

given
below:
javax.realtime;
class
SporadicParameters
extends
AperiodicParameters
{
//
fields
public
static
final
String
mitViolationExcept;
public
static
final
String
mitViolationIgnore;
public
static
final
String
mitViolationReplace;
public
static
final
String
mitViolationSave;
//
Constructors
throw
IllegalArgumentException
if
SporadicParameters

555

class

is

//
interarrival
is
null,
zero
or
negative.
public
SporadicParameters(RelativeTime
minInterarrival);
public
SporadicParameters(RelativeTime
minInterarrival,
RelativeTime
cost,
RelativeTime
deadline,
AsyncEventHandler
overrunHandler,
AsyncEventHandler
missHandler);
//
The
following
constructor
is
likely
to
be
added
in
//
Version
1.1
of
the
RTSJ.
public
SporadicParameters(RelativeTime
minInterarrival,
RelativeTime
cost,
RelativeTime
deadline,
RelativeTime
blockingTerm,
AsyncEventHandler
overrunHandler,
AsyncEventHandler
missHandler);
//
methods
public
String
getMitViolationBehavior();
public
void
setMitViolationBehavior(String
behavior);
public
RelativeTime
getMinimumInterarrival();
public
void
setMinimumInterarrival(
RelativeTime
interarrival);
//
Throws
IllegalArgumentException
if
interarrival
//
is
null,
zero
or
negative.
public
boolean
setIfFeasible(RelativeTime
interarrival,
RelativeTime
cost,
RelativeTime
deadline);
//
Throws
IllegalArgumentException
if
//
interarrival
is
null,
zero
or
negative.
// The following method is likely to be added at version 1.1
public
boolean
setIfFeasible(RelativeTime
interarrival,
RelativeTime
cost,
RelativeTime
deadline,
RelativeTime
blockingTerm);

10.4.4 Scheduling Parameters


Typically, scheduling parameters are set by the programmer. In order to be fully extensible, the root of
the
class
hierarchy
is
defined
to
be
empty.
package
javax.realtime;
public
abstract
class
SchedulingParameters
implement
Cloneable
{
//
constructors
public
SchedulingParameters();
//
methods
public
void
clone();
}
The

two

subclasses

defined
package

by

the

RTSJ

are

given
below:
javax.realtime;
public
class
PriorityParameters
extends
SchedulingParameters
{
//
constructors
public
Priority-Parameters(int
priority);
//
Throws
IllegalArgumentException
if
priority
//
is
outside
the
supported
range.
//
methods
public
int
getPriority();
public
void
setPriority(int
priority)
//
Throws
IllegalArgumentException
if
priority
//
is
outside
the
supported
range.
public
String
toString();
}
package
javax.realtime;
public
class
ImportanceParameters
extends
PriorityParameters
{
//
constructors
public
ImportanceParameters(int
priority,
int
importance);
//
Throws
IllegalArgumentException
if
priority
or
//
importance
is
outside
the
supported
range.

//
methods
public
int
getImportance();
public
void
setImportance(int
importance);
//
Throws
IllegalArgumentException
if
importance
//
is
outside
the
supported
range.
public
String
toString();
}
Priorities are used by the priority scheduler. Importance parameters are typically used when a system
enters into a transient overload situation where it is unable to meet all its deadlines. In these
situations, the scheduler may decide to deschedule one or more schedulable objects. The importance
parameters can be used to inform the scheduler which objects are critical to the system. Their use is
not required by the RTSJ default priority scheduler.

10.4.5 The ProcessingGroupParameters class


In any system where guarantees are required, aperiodic schedulable objects present a problem. As
they have no well-defined release characteristics, they can impose an unbounded demand on the
processor's time. If not handled properly, they can result in periodic or sporadic schedulable objects
missing their deadlines, even though those schedulable objects have been "guaranteed".
One simple way of scheduling aperiodic activities, within a preemptive priority-based scheme, is to run
them at a priority below the priorities assigned to periodic and sporadic schedulable objects. In effect,
the aperiodic schedulable objects run as background activities and, therefore, cannot preempt the
other schedulable objects. Although a safe scheme, this does not provide adequate support to
aperiodic schedulable objects that will often miss their target completion times if they only run as
background activities. To improve the situation, a server can be employed. Servers protect the
processing resources needed by periodic and sporadic schedulable objects but otherwise allow
aperiodic schedulable objects to run as soon as possible.
Several types of servers have been defined by the real-time community. The one that is most relevant
to the RTSJ is a deferrable server (Lehoczky, Sha and Strosnider, 1987). With the deferrable server,
an analysis is undertaken that enables a new logical thread to be introduced at a particular priority
level. This thread, the server, has a period and a capacity. These values can be chosen so that all the
periodic and sporadic schedulable objects in the system remain schedulable even if the server
executes periodically and consumes its capacity. At run-time, whenever an aperiodic thread is
released, and there is capacity available, it starts executing at the server's priority level until either it
finishes or the capacity is exhausted. In the latter case, the aperiodic thread is suspended (or
transferred to a background priority). With the deferrable server model, the capacity is replenished
every period.
The RTSJ provides support for aperiodic server technologies via processing group parameters. When
processing group parameters are assigned to one or more aperiodic schedulable objects, a server is
effectively created. The server's start time, cost (capacity) and period is defined by the particular
instance of the parameters. These collectively define the points in time when the server's capacity is
replenished.
Any aperiodic schedulable object that belongs to a processing group is executed at its defined priority.
However, it only executes if the server still has capacity. As it executes, each unit of CPU time
consumed is subtracted from the server's capacity. When capacity is exhausted, the aperiodic
schedulable objects are not allowed to execute until the start of the next replenishment period. If the
application only assigns aperiodic schedulable objects of the same priority level to a single
ProcessingGroupParameters object, then the functionality of a deferrable server can be obtained.
The RTSJ is, however, a little more general. It allows
schedulable objects of different priorities to be assigned to the same group,
the inclusion of sporadic and periodic schedulable objects,
the "servers" to be given a deadline, and cost overrun and deadline miss handlers[1].
The latter may be useful if the programmer has more information about the pattern of arrivals of the
aperiodic activities and wants to detect variations from that pattern.
The

class

ProcessingGroupParameters

557

is

given

below.

javax.realtime;
ProcessingGroupParameters
implement
Cloneable
{
//
Constructors
throw
IllegalArgumentException
if
//cost
or
period
is
null.
public
ProcessingGroupParameters(
HighResolutionTime start, RelativeTime period,
RelativeTime
cost,
RelativeTime
deadline,
AsyncEventHandler
overrunHandler,
AsyncEventHandler
missHandler);
//
The
following
constructor
is
likely
to
be
added
in
//
Version
1.1
of
the
RTSJ,
see
Section
10.4.1.
public
ProcessingGroupParameters(
HighResolutionTime start, RelativeTime period,
RelativeTime
cost,
RelativeTime
deadline,
RelativeTime
blockingTerm,
AsyncEventHandler
overrunHandler,
AsyncEventHandler
missHandler);
//
methods
public
Object
clone();
public
RelativeTime
getCost();
public
AsyncEventHandler
getCostOverrunHandler();
public
RelativeTime
getDeadline();
public
AsyncEventHandler
getDeadlineMissHandler();
public
RelativeTime
getPeriod();
public
HighResolutionTime
getPeriod();
public
void
setCost(RelativeTime
cost);
//
Throws
IllegalArgumentException
if
cost
is
null.
public
void
setCostOverrunHandler(
AsyncEventHandler
handler);
public
void
setDeadline(RelativeTime
deadline);
public
void
setDeadlineMissHandler(
AsyncEventHandler
handler);
public
void
setPeriod(RelativeTime
period);
// Throws IllegalArgumentException if period is null.
public
void
setStart(HighResolutionTime
start);
public
boolean
setIfFeasible(RelativeTime
period,
RelativeTime
cost,
RelativeTime
deadline);
//
Throws
IllegalArgumentException
if
period
or
//
cost
is
null.
//
The
following
methods
are
likely
to
be
added
in
//
Version
1.1
of
the
RTSJ,
see
Section
10.4.1.
public
RelativeTime
getBlockingTerm();
public
void
setBlockingTerm(RelativeTime
blockingTerm);
public
boolean
setIfFeasible(RelativeTime
period,
RelativeTime cost, RelativeTime blockingTerm,
RelativeTime
deadline);
//
Throws
IllegalArgumentException
if
period
//
or
cost
is
null.
public

Important
notes

package
class

To get full predictability, it may be necessary for an implementation to restrict the


generality of processing group parameters so that they support one (or more) of
the well-known server technologies, such as deferrable servers (Burns and
Wellings, 2003).

Also note each schedulable object may still have its own deadline and cost constraints.
For a deferrable server, the deadline would equal the period and there would be no overrun or miss
handlers.
[1]

10.5 Parameters Classes and the Priority Scheduler


Default parameters
The priority scheduler uses the following default parameters when presented with null values:

o
o
o
o
o

PriorityParameters a new object is created with a priority set to the normal priority
(see Section 10.3)
ReleaseParameters a new AperiodicParameters object is created with
cost: a RelativeTime object with cost set to 0
blocking time (if added to Version 1.1): a RelativeTime object with the blocking time set
to 0
deadline: a RelativeTime object with the deadline set to Long.MAX_VALUE milliseconds
and 999999 nanoseconds
cost overrun handler: set to null
deadline miss handler: set to null
ProcessingGroupParameters set to null
MemoryParameters set to null.

Parameter changes
Under the priority scheduler, changes to scheduling, release, memory, and processing group
parameters take effect as follows:
Changes to scheduling parameters take effect immediately; that is, the base priority is
changed immediately (the default priority scheduler does not use important parameters).
Whether this change will affect the active priority will depend on whether any priority
avoidance algorithms are currently in progress.
Changes to release parameters take effect as follows:
o deadline at the start of the next release
o cost immediately
o deadline miss handler at the start of the next release
o overrun handler at the start of the next release
o period at the start of the next release
o minimum interarrival time at the start of the next release
o the type of release parameters object at the start of the next release.
Changes to memory parameters take effect immediately.
Changes to a processing group's parameters attributed (period, deadline, or handlers) take
effect at the start of the next replenishment period.
Warnig The priority scheduler only notices that parameters have changed if the complete
parameter objects are replaced by new parameter objects. Changes to the fields of
parameter objects via setter methods are not acted upon until the next release.

10.6 Alternative Schedulers and EDF Scheduling


The vast majority of real-time operating systems support fixed priority preemptive scheduling with no
on-line feasibility analysis. However, as more and more computers are being embedded in
engineering (and other) applications, there is need for more flexible scheduling. Broadly speaking,
there are three ways to achieve flexible scheduling:
1. Pluggable schedulers in this approach the system provides a framework into which
different schedulers can be plugged. The CORBA Dynamic Scheduling (OMG, 2003)
specification is an example of this approach. Kernel loadable schedulers also fall into this
category.
2. Application-defined schedulers in this approach, the system notifies the application
every time an event occurs that requires a scheduling decision to be taken. The
application then informs the system which thread should execute next. The proposed
extensions to real-time POSIX support this approach (Aldea Rivas and Gonzlez Harbour,
2002).
3. Implementation-defined schedulers in this approach, an implementation is allowed to
define alternative schedulers. Typically this would require the underlying operating system
(virtual machine, in the case of Java) to be modified.
The RTSJ adopts the implementation-defined schedulers approach (although it also tries to provide a
framework for the implementation to follow) and allows for applications to determine dynamically
whether the real-time JVM on which it is executing has a particular scheduler. Unfortunately, this is
the least portable approach, as an application cannot rely on any particular implementation-defined
scheduler being supported. The only scheduler an application can rely on being present is the

559

PriorityScheduler. Furthermore, no assumption can be made on whether a particular


PriorityScheduler supports on-line feasibility analysis.
Version 1.1Version 1.0.1 of the RTSJ is weak in its support for implementation-defined
note
schedulers. It is likely that Version 1.1 will enhance its support in this area and,
possibly, also address pluggable and user-defined schedulers.
Fortunately, priority-based scheduling is very flexible if schedulable objects can change their priority
(as they can in the RTSJ). Consequently, much can be done that is portable by allowing the
application to implement its own scheduling policy on top of the PriorityScheduler. This section
discusses how a simple earliest-deadline-first (EDF) scheduler can be implemented. Figure 10.1
illustrates the approach; it is based on that given for EDF scheduling in the Ada 95 programming
language (Burns and Wellings, 1998):
010009000003427f0100000011a5000000001610000026060f002220574d464301000000000001
006274000000000e000000002000009091010090b10100010000006c0000000000000000000000
d20100003b01000000000000000000006a400000822b000020454d460000010090b101000c0000
00010000000000000000000000000000000005000020030000c40100001a010000000000000000
000000000000e3e306006e4e0400460000002c00000020000000454d462b014001001c00000010
0000000210c0db01000000600000006000000046000000d4650000c8650000454d462b22400400
0c000000000000001e4009000c00000000000000244001000c0000000000000030400200100000
00040000000000803f214007000c000000000000000840000520650000146500000210c0db0100
00000000000000000000000000000000000001000000ffd8ffe000104a464946000102010048004
80000ffed0c2850686f746f73686f7020332e30003842494d03ed000000000010004800000001000
100480000000100013842494d040d000000000004000000783842494d03f300000000000800000
000000000003842494d040a00000000000100003842494d271000000000000a00010000000000
0000013842494d03f5000000000048002f66660001006c66660006000000000001002f666600010
0a1999a0006000000000001003200000001005a00000006000000000001003500000001002d00
0000060000000000013842494d03f80000000000700000ffffffffffffffffffffffffffffffffffffffffffff03e8000000
00ffffffffffffffffffffffffffffffffffffffffffff03e800000000ffffffffffffffffffffffffffffffffffffffffffff03e800000000ffffffffffffffff
ffffffffffffffffffffffffffff03e800003842494d04080000000000100000000100000240000002400000000
03842494d0414000000000004000000023842494d040c000000000a97000000010000007000000
04c00000150000063c000000a7b00180001ffd8ffe000104a46494600010201004800480000ffee00
0e41646f626500648000000001ffdb0084000c08080809080c09090c110b0a0b11150f0c0c0f1518
131315131318110c0c0c0c0c0c110c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0
c0c010d0b0b0d0e0d100e0e10140e0e0e14140e0e0e0e14110c0c0c0c0c11110c0c0c0c0c0c110c
0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0cffc0001108004c0070030122000
21101031101ffdd00040007ffc4013f0000010501010101010100000000000000030001020405060
708090a0b0100010501010101010100000000000000010002030405060708090a0b1000010401
030204020507060805030c33010002110304211231054151611322718132061491a1b142232415
52c16233347282d14307259253f0e1f163733516a2b283264493546445c2a3743617d255e265f2b
384c3d375e3f3462794a485b495c4d4e4f4a5b5c5d5e5f55666768696a6b6c6d6e6f637475767778
797a7b7c7d7e7f7110002020102040403040506070706053501000211032131120441516171221
30532819114a1b14223c152d1f0332462e1728292435315637334f1250616a2b283072635c2d244
9354a317644555367465e2f2b384c3d375e3f34694a485b495c4d4e4f4a5b5c5d5e5f55666768696
a6b6c6d6e6f62737475767778797a7b7c7ffda000c03010002110311003f00f55492492529249249
4d4cbae8b2fa5b90c6bea8798b00734186edfa5edddf496557839cda835d5f4bb1e00979616ebb7d
ded6b3fd3ffe04ba04925380ec4c9f54fa75f4d2039a4b1cdd434b5cd2df6b1db7f49fa5fa7ff06894e2
648b87ad574d34ef2496b4efd9ba5ad8d8d6ef6d7ec57b1dd6fda9dbaa7349dc6d2edb104fe83696
bddf45b56ddbfcb5752535b1aba197da286b5ac2d64ec00099b3f7559492494a492492529249249
4ff00ffd0f48c57675f8d4de6dada6d635e40ace85c03bfd322fa79dfe9abff00b68ffe96598cea7d3ba
7e074f6653aef52fa19e9b2a6df6130d60f77d9db636af73dbfcefa6a78bd6fa5e550fc8abed3b2b7ba
b787b2fadc36b5f6eff4edd8f731ecabf47b1253a3e9e6ff00a6affedb3ffa592d99bfe9abff00b6cffe96
548f53e9ed706d8326b24c6adb8f237b0cb37fd36ffe43e9a43aa74d71b04e44d4d0e74b6f1c873a0
1fa3fe0d25377666ffa6aff00edb3ff00a5952cdea36e13c32ebd9b8805a1b49332766d6fe9fe928d3d
5fa4dd4b6f63f27d27b9cd692cc969966ddffa3735b637f9c6fb9ec53fda5d33d7bb1f7646fa1a5f61d
b796ed6fa7fcdd8d1b2dfe7ebfe69cf494d61d66b0dfb4bb298df5006ed343c90e617eea9db2e76db
1aefde47c1ea7fb40c6265d767b4583f41601b4c6d74baefceddf47e9a7fdabd2f7bdbbeff00637713
b6f8221cef6fb7ddb5ad49dd53a63726ec52fbcdb8e03ac86de5bb5cd6da1ccb40f46cf659f98f494d
cf4f3ffd3d5ff6d3bff4ba5b33bfd355ff006d3bff004baa47ab74818d6657ad69a69203dc3d627577a3
edac7e91fb6cf6bb6313bfa974a639ac75d707bdac735bfa6922c05f5ffd16fbbfd1ff0084494ddd999f
e96bff00b6ddff00a593edcbff00495ffdb67ff4aacf7754e94d6926cbe435aeda3d62487fd1803f3bf7ff
00714867f4b8d6db9a7dfa1f5a62b25b639bfbcdf6fe8b6ff3dfe077a4a6f6dcaff495ff00db67ff004aa4
efb4b5a5c5ec3009fa07ff004a28d2ca2dac595bec731d3077bf5831fbc9eca1a2b71dcffa27f3dde1f
d6494ff00ffd1eb737a87d8f17a4567abd5d29b76381e9be9173ee2d6d5a5525bb1f56eff0084dfeaff
0036a3d3fac36ce907207d62aaf02edbf6c763068126c3e83aadff009ffe07fe058b4691d586274e77

4ea719ecfb2b45d66439cd77d069a6babd2659f9ff00ce6fff00a6a761face43bd1181b8b1cd692eb7
e981fa371863bd8c7eff0052bffa7fbe94e7f4deaadbb0aabc75fab27d43681906815b1e43aaadbe9d
7bdbfa3c77b9957d3fd2fabfce231ea061ec1d6ab6b98f7bddba8f73580873a8b1bbdbb5d536cf67f8
4ffc115bb3fe737aee6d6dc1763fa84b5ee75a2cf4e7706bab6d4eafd4fccfe73f96a759fac045bead5
860ee3e896bec3ecda7f9ddd4b7dfea6cfa1f989293f4fb1d7566dfb40c9adc1bb4866cd63dcfff00ae
6e56d6756deaedb3687e339a3739c3dc1c64b457f45becdbfa5f77e7a893f58090e0311ad96ee1ba
c3006e16fbbd36ff00ab3fcc4a74d25401eb5c818fab5bed71708703ef6fb77fb1f57e7ff83b7f32c624
f3d6cb47a63177489973e227ddc33f7525378003811dfef4eab63bba86eac64b6903d3fd29adce3fa
5fdd66f6b7f45b558494ba681331a9e4a749252942dfe6dff00d53f914d42dfe6dffd53f91253ffd2eec
744e9dd4b03a7df9dea1fb363b7686db654d8736b367aada5f5fabf43fc36f6258ff573eafd58a3171c
3850eb5ce606e45a5c2d6faacbbd3bbd6f59aff7dfeb31967fa4f5155c8afeaf3e8e93fb5e876464371
81c60da6eb83006d6eb9e7ecd5d8cab7433f9efa6a05bf5431b11f88dc0b063366f750dc5bc8dcd1f
9adf4ff9ddb63fe87fc224a6fd3f567a2324522df6dc2e701937bbf4a0b2ddcf9b9ceff0757b119dd1fa
75a4063ec0eaf5f65cf91bf52e7b77ff00856fe7bd648a3ea7e3dc71c60595d95644ed18d905beab1
c1e2f6d8dacd2ff00e69b6b2cf53fe9fb15b65df56ac0e0ca2cfd0bdcc27ecf9035237bc31de90dec76
cfccfd1a4a6e0e93d2deddcc9f79fe71963813ab9fb7d463b73bdcf7276741e9ac0f0d63e2c2e36036
3dc1c5da38bf7bddbbda556a8743c72c38f8d607082c0da6d1a6e6bcfd3635bed7ecb2c6ff0039ec5
6ddd670dafdbb6e3a4b8fa16c01e735ff0067d892983ba174e717922d9b5edb5f16d825ec8d9668ff
00a7ed67bbfc27f8452a7a274fa20d4d7b4b5bb01f51f3b769a837e9fe631dfa3ff46a47abe209816b
8013229b38ff003145fd67099b8c5ae6b6012daac772769f6b59bff47f49e929a795d307ed17d8cc0
75adb7f587e4b320b09b9958c6adaea0b98df7d1fa2dcdfd1a83b06cdcd2ce9d63ac0e80fbb28e95c
136ecb1afb9cdf53e8fa3fe11ffcefa6c573f6fe06f7b036f259324516eb02b3ecf67bff009dff00c0ed56
e9cdc7b8b430ba5fba25ae6fd0258ffa43f79a929cafb139b75c074fc8735c01de7286d7101eef6b0d
dfa3dffcd59ecffc0abf511d8db319c32598571781e8ecf543fd81c363f697bb77d3febd6cad6a27494
c6b739d5b5ce6ec710096f307c135bfcdbffaa7f229a85bfcdbff00aa7f224a7fffd3ef6b675a7e0e07ec
eb71a9afececf5dd7d6fb1e4edaf67a3e9d94b19b5bea7f39eaa25147d636e3165f978d6640b3732d
6d2e6b4b0979f49f57aaefa3bab6b1ccb3faea7d37eddfb3b1767a5b7d0ae2774fd06ab1fe50ff81ffa
492913875a0e7063b18b3d9b1ce6bc188b3d6dcd0e3f9de87a7eff00f4ca069eba1c1cdc8a1cddd2
5aeadc3433ed0e6bbf37d8e67fdfd58ff287fc0ffd24e3edfdfd2ffa4929afe975c6b5db7231dee71dc3
7d6e86ff00c10f4ecaf737fe115bc76e4b587ed2e6bdf3cb040e04f3fcbdca23edbdfd2ffa49ff005bff00
83ff00a4929326e10ff5afe47e297eb3fc8fc52525490bf59fe47e297eb3fc8fc52525490bf59fe47e29f
f0058fe47e29292285bfcdbff00aa7f226fd3ff0023f150b3ed1e9bbe8707c7c1253fffd9003842494d0
4060000000000070005000000010100ffee000e41646f626500644000000001ffdb0084000403030
30303040303040604030406070504040507080606070606080a0809090909080a0a0c0c0c0c0c0
a0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c010405050807080f0a0a0f140e0e0e14140e0e
0e0e14110c0c0c0c0c11110c0c0c0c0c0c110c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0
c0c0c0c0c0cffc000110800ed015e03011100021101031101ffdd0004002cffc401a2000000070101
0101010000000000000000040503020601000708090a0b0100020203010101010100000000000
000010002030405060708090a0b10000201030302040206070304020602730102031104000521
12314151061361227181143291a10715b14223c152d1e1331662f0247282f12543345392a2b2637
3c235442793a3b33617546474c3d2e2082683090a181984944546a4b456d355281af2e3f3c4d4e4
f465758595a5b5c5d5e5f566768696a6b6c6d6e6f637475767778797a7b7c7d7e7f7384858687888
98a8b8c8d8e8f82939495969798999a9b9c9d9e9f92a3a4a5a6a7a8a9aaabacadaeafa110002020
102030505040506040803036d0100021103042112314105511361220671819132a1b1f014c1d1e
1234215526272f1332434438216925325a263b2c20773d235e2448317549308090a18192636451
a2764745537f2a3b3c32829d3e3f38494a4b4c4d4e4f465758595a5b5c5d5e5f5465666768696a6b
6c6d6e6f6475767778797a7b7c7d7e7f738485868788898a8b8c8d8e8f839495969798999a9b9c9
d9e9f92a3a4a5a6a7a8a9aaabacadaeafaffda000c03010002110311003f00f7f62aec55d8abb1576
2aec55d8abb15762aec55d8abb15762aec5580ff84bcb1e66f37f98e7f30e916baa4d6df5286ddeee
2498c719b7e655790341562698ab5acf92ff00273cbd6f1ddebda3687a6db4d22c114d771410a3cc
e095452e002c6868a3738ab6de47fc9e4d2d35b6d17431a348b1bc7a87a507d5d96660a8564fb24
3160177deb8aa3ffe5567e5bffd4aba67fd22c5fd31543dafe5d7e555eb5c2d9f977489ded2536d742
2b7858c73aaab18de83660194d0f62315436b5e4efc9bf2ddb25e798348d0f4cb491f824f79141046
5c2963f13d06ca093e00571555bcf227e5169fa77e97bed0f45b6d2a91b7d7668604829332ac679b
517e22ca177dc918aa37fe556fe5c1ebe56d30ff00d1ac7fd31543c5e42fcaab9beb9d320d0b47975
1b158deeed12285a68567a98cc88375e7c495a8f8a9b62ae83c87f957777977a7db689a44d7f61e
98beb648a27961f597946245152bc9455797518aa307e5af9000207972c2847123d04a53c3a62ab
d3f2efc8d182b1e81648adb305894577af6c5557c99696d61a75e58d9c621b3b6d42f638204d9110
4ec42a8ec37e98ab22c55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb15762ae
c55ffd0f7f62aec55d8abb15762aec55d8abb15762aec55d8abb15762aec558d6866be6af350a6c24
b1ff00a8518ab16fcecd3b59d5349f2b41a14570d7b079a347bc7b8b5b56bd36d05b4e5e49de35db
820fb5538ab0fbef2df997c9f2f9834dd06eb5f9ac74cb3d36f74c1690b1b7bad4b52d4eea6d51d638
a2e0c692239893e1853fbb55a62ab75fb9fcd5aca6397598255b9b883cc02c219258bd29759b6361

561

269e7d3734161eb7ac621f00afd629371c55170e8fe6ebff00352e9d7579e608b45b6d535ad3ad35
356b88ca413e9368b6b7123af012a2ca971e9ccfc97d5eadf18aaa94eaf61e6dd57c9da57992ea7d
5a3f3ec42edf47b9b7b27d5f4f0d6d6f169f2d95ddb287e56da9989a6e744e1cf9fab194f89557f38c3
e6ed5fcafe67d1f50d1f5ab4d4adedada2b4d234e8c5d68ef6939b3312c0ea8c5e681d2507d2a3afc
6d2fee3d3c5511a65e7e66c9e668b499a4d722d22d750bd1a1df3da3cb15c2daea33561bf95ca15
8a4b6688453c8ac19399898cea2aaa53e5a7f395bf99af3cd77da5f99233770e8369ae16b798cd25
d2daeab05d2468a2ad0c573340c1e21e8c6a56546f4fe2c55a793f3061b869feadae59bea965e5fb
5f31eab65612cf7f15cae9774beaa22f0f53d3bb68feb1e916e155f507a3ea62af56fcbd4d7e5d53cd
575e60bbd4a5921d4459d8417a9e85b7d523b5b76f520408a8794a65aba33afec86a018ab3dc552
3f2c7f71a97fdb4efbfe4f362a9e62aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55d
8abb15762afffd1f7f62aec55d8abb15762aec55d8abb15762aec55d8abb15762aec5588dbdd49a3f
99bcc135d58dec905eb5a3db4d6f6d2dc46e2380236f1ab00430a50e2a997f8a6d7feadfa9ff00dc3
ee7fe68c55a1e6ab43ff4afd4c7cf4fbaff00aa78ab7fe28b4a57ea1a9f8ffc73eeabff0026f15435feb9a
3ea76571a76a5a45fdde9f771b41756b3699732452c5282ac8ea6220a91b10715529fce7a0e87a7
9926b1d42cb4cb38d5411a65dac71c6b44555558ba0d82803154441e72d32e608ae6decf5296de
6559219534ebb6564701958111ee083b1c5557fc5767ff002c1aa7fdc36eff00ea9e2ad7f8b2cbfe58
354ffb86de7fd52c55bff155974fa8ea7ff70ebbff00aa58ab7fe2ab2ff961d4ff00ee1d77ff0054b1570f3
459915fa8ea5f4e9d77ff0054f15779544a6caf269219601717f7934493c6d0c8637998a928e030a8
dc5462a9e62aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb15762aff00ffd2
f7f62aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8ab15d7e
38f59f33687a0b8125bd9336b97a81ca906d8fa76a194750d2b990576ac18aaff0025196ced2fbcb7
7122c9368574f6b0f152bfe8320135a5452878c2eb192362d1b62ac9f15762aec55d8abb15762aec
55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55ffd3f7f62aec55d8ab
b15762aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8ab17f2989351bcd6bccf2
c8b245a8dcfd5b4da295e161a7d6141522a79cdebca0f4e322e2abaf5df4bf3969f762391acf5c81f4
eb8752be9c7736bcae2dcb03bfc68675e43b845c559362aec55d8abb15762aec55d8abb15762aec
55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abfffd4f7f62aec55d8abb15762aec5
5d8abb15762aec55d8abb15762aec55d8abb15762aec556ca9ea46f1f264e6a579a1a30a8a541f1
18ab0ab9f2d6a5e5bf2c4e9a5f99b5358b4ab193ea89225848696f11e1c89b5ab7d9dc9dce2a8e6f
2a5cea315936a5af5f5d2413dadf246e9669fbdb675957e28edd5802451a87ec92b8ab29c55d8abb
15762aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb157
fffd5f7f62aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8aa5
5e66aff0086f58a75fa8dcffc996c5530b6ff0079a1ff00517f50c555715762aec55d8abb15762aec55d
8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55ffd6f62795b51f3d799bc
b7a5f9845fe956a354b68aec5b7d42e24f4c4cbc82f2fae2f2a03d683e58aa6ff0054f3e7fd5df4affb8
6dc7fd9762aefa9f9f3feaefa57fdc36e3fecbb1577d53cf7ff00577d2bfee1b71ff65d8abbea9e7bff00a
bbe95ff0070db8ffb2ec55bfaa79efb6ada57fdc3ae3fecb71577d53cf74ff8eb6955ff00b675c7fd96e2
aefaaf9ebfeaeba57cbf475c7fd96e2ad9b6f3cf6d4f4aa7fdb3ee3fecb7156feade76affc74b4ba7fcc0
5c7fd9662ae36fe78de9a96954ec3ea173ff6598ab42dfcf3fb5a969247b585c8ff00b1cc55df57f3ceff
00ee4b49f61f50b9e9ff004998ab46dfcf74f8751d22bef6173ff6598ab4d6fe7da9e3a8e914df8d6c6e
7e8aff00a662ad183cff005f8750d1f8fbd8dd57fea2f15586dff31391a6a1a2f1edfe83775ffa8bc55a3
07e637ecea1a253decaeffecaf156841f991df50d0fdbfd0aeffecaf15435fe9bf98f7f637560fa968889
75149033ad95df2512295a8ff4bea2b8aaac76bf9931a2c6350d0c85016a6caefb0a7fcb5e2abfd0fc
caff0096fd0ffe90af3fecaf156bd0fccaff0096fd0ffe90af3fecaf1577a1f995ff002dfa1ffd215e7fd95e2a
ef43f32bfe5bf43ffa42bcff00b2bc55de87e657fcb7e87ff48579ff006578ab7e87e64ffcb7e87ff48577f
f006578ab620fcc8dab7da191de967763fec6b1577a3f98f4ff007b744ad7fe592efa7fd24e2adac3f9
8b53caf34523b52d6ec7fd8c9c55b317e626d4bad16bdeb6d77d3fe47e2ab847f983515b9d188eff0
0e8f7437ff91d8aaee1e7eed3e8f5ff008c375ff55715770f3ef79b483ff3cae46dff00233155dc7cf5bfe
f7493e1fbbb91b7fc8cc55ba79e2a7e3d2a9dbe0b9ff9ab15711e78de8da4d3b545cff5c55aff009de
76df49e9bed73d7efc55dff003bd7fdaa7fe9e7156bfe77baf4d269f3b9c55dff003bdf8693edbdcff4c5
5703e78fda5d26bec6e7fa62ada9f3ad4725d2e9de8d71ff0034e2aa7737de6bb596ce06874f67bd9
8c08449380a561926a9f837da3a7d38abffd7f67fe557fe4b6f2a7fdb2ed7fe4d0c5597e2aec55d8ab
b15762aec55d8abb15762aec55d8abb15762aec55d8aa57e66bab8b1f2e6b17b672fa3776d65733
413100f092389995a841068457718ab02f2b79cf544d27cbd75ad7e909efbcc16ba55bdaade25ac3
04fa85f5bc9732c913c009554489da4565dbe00ab538ab05d13cfdf9ade65b29adf4a944fac69ba0e
8fabac08d670cb7f3dfea37f05d43ca58bd2590c16bfb820a2099793fc0e4055e85e4dfcc58fcc3670
59e95f5cd63502649afd6ea38ac2fec217bf92d0c5710b055f5ed991d6541f6962e6bcf9a73552ad0f
f00382e2d741d32df5dd26f6f7cd173656135b456a8b3c9a81bcb7ba9bd454b65611922ca662bc40
5f83ecd4f15507e6cfceb7d20d8f992ced2e479674e5d64ebd62eb125e492695a67d71e0e0e2a8f1
3fc068f42eae0fc3c5b154c756fcd85b4d7adae009adf41d3a4d76cb58b5e092b4f71a62da984c454
17059a7e2a36a96f8862a9d689f99577ad798acbcb8be57d46c6e67b79ef2ea4be31db082dedee5
adbd411c8448eaec15a3f814947ad0152b8ab3fc55d8abb15762aec55d8abb15762aec55d8abb15
762aec55d8abb15762aec55d8abb154a75734d4341f7be71ff004e3758abffd0f56fe5779e7cab6ff9
77e56b6b8d4912e63d32d56542b212184601150b43be2acb7fc7fe4f2481aa47514afc1277e9fb18
aac6fcc4f25a92adabc408ea0ac9ff0034e2ae6fcc3f25a1a36af1034ad38c95a1ff00638aae3f983e4

d5ebab443b0f864ebff00038ab47f30bc98284eaf0807a6cfff0034e2ad1fcc4f25292adac4208ec43ff
cd38ab8fe627928004eb3050f4347ff009a71569bf31bc90a0336b56e01e87e3f97f2e2ad7fcac7f23
85e675bb7e3e3f153fe238aad3f997e435346d76d81f72c3fe35c55a1f99be426e9af5b1f916ff9a715
77fcacdf2175fd3d6d4f9b7fcd38ab8fe6779046c75fb5afcdbfa62ad7fcad0fcbff00fabfdaff00c137f4c
55dff002b3fc807a6bf6bff0004dfd31550bcfcc4fcb7d42cee2c2f35cb496d2ea3782e222cc0347229
5653400ee0d31563a2e7f23b8d9a9bdb563a6a43169aed7374cf6ab6c4344207672d171e2378cad
47c27e1c55bb3b9fc8db00ff50bab2b632436b6ccf0cd3c6e21b099ee2dd558302be9c923ba91bd5
dbc7155f0dd7e494171677f15ed9aded87abe8dd7af3899cdd4debc9eb3f2acdce5fde1f579fef3e3f
b58aa9cadf9193430c2f776816d92d23b6916e6e5258574f329b711c8ae1d387ad28aab0aac8ead
556a62ab6e6d7f21ee9ee5ee5f4e78aee3952e2dccb28b665bab6fa9cc7d10c230d242046ec1793a
81c8ed8aae5b7fc8af425b66b9b0920945e0b8496ea69049fa4e348ee4c9ce4258cab1ad59b7f879
0f8b1547695adfe4f689a847a969fac59a6a51da9b11732de4b3cad6ef27aa43b4aee5c965a976ab
edf6b156403f323c84457fc4561422a3f7ea36fbf15687e64f901a8079934f24d29fe909debefed8ab5
ff2b33f2f6953e67d300a91bdd44375ebfb5db1577fcaccfcbca06ff14697c4f43f5b869ff12c55cdf997f
97895e7e69d294800906f211407a1fb58aad3f9a1f96e3af9b34815e95bd83e5fcf8ab5ff002b4bf2da
b4ff00176915ad3fdeeb7ebff078ab5ff2b53f2d2b4ff17e8f5f0fafdbfcff009f156bfe56afe597fd4e1a37f
d27dbff00cd78abbfe56afe590153e70d1a9e3f5fb7ff009af156bfe56bfe58ff00d4e3a37fdc42dbfe6b
c55b1f9adf9626b4f38e8c69d7fdc85b7fcd78ab63f353f2cc9a0f3868c4f87d7edbfe6bc5572fe68fe5
b39e29e6fd1d8f80bfb7edfecf155e3f32bf2f08a8f35e914ff98eb7ff009af155cbf98ff97ce015f356924
1008a5f5bee0f4fdbc555bfc7be47e9fe25d2ebd7fdedb7e9ff00078aae1e79f24b74f326966bd3fd3a
dffe6bc55bff001c792a95ff00126974e95faf5bf5e9fcf8aa57aaf9d3c9cf7fa195f30e9a4477cece45ed
b90a0d8dd004fc7b0df157ffd1f65fe52107f2bfc9e4743a45911db6f457156678abb15762aec55d16
10000026060f002220574d464301000000000001000000000000000e0000000020000090710100
90b101008abb15762aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb15762a
ec55d8ab5407a8c55dc57c062ae2887aa8fbb156bd38ff00947dc31577a51ff22fdc3156bd28bf917e
e18abbd28bf917ee18abbd28bf917ee18abbd18bfdf6bf70c55de8c5fefb5fb862aef461ff007daffc08
c55de8c3fefb5ff8118ab5e843fefb5ff8118abbd083fdf49ff023156bead6e7fdd29ff023fa62ad1b4b53
d608cffb05fe98aad361627adb447fe79aff004c5529d5ac2c06a1a0d2d62def9ebfbb5ff961baf6c55f
ffd2f657e507fe4abf261a15ae8d62789ea2b026c7154a3f30ff003ab42fcb5d5ff466b5a56a1736d16
9e9acea1a959adbb5bda69e6f63b1925944932487d3799198468edc2acbf64e2ac23cddff0039290
47e4fd6f53f29e973c3aee9d6d7d77687528e292d64fd0dadc1a3dda110cfcaacd2f288d42953c891
42b8aa53e76ff9c94d574cd52ee1d1acbf47db695a3f9865d72cafed92eefacf55d06e6ce25a08aee3
8a58da3ba125165f8d4ad1d5aa98abda3cadf98165e70d4f50b0d22c2f1b4fb07b9b5fd3cd1a0b096
eec26fab5cc2879970e925400e8bcc2b3216515c5588792ff00327cc57da45af987ccb2c12da5c1b9
b5fa95ae9f35a992f46a7fa3ad23b7b89ae1a3769585190f4e5cb9aa0c5527d23f357f3275ed2e71a
5e86936bf696dadde8b7548b8dc1d2f58b9d3a2b5086e81590a420f20ec8f2edb21d95661e53fccfb
1d6a1b3b48277d7b56b99247960b3b47b0bab3b58ae12d246bdb5ba70f1c90cadc654157a02e91f
1c5529f2d7e75a4da0c52798b48bdff001098d5ededed208caea41beb44bd9a09e46a05b396ab29
8dea071e5cd2aaa2750fce2b58758b69ecad2e25f2a416fa89d4ee0c0127375626d43451ac92c6ea
d119d84aaf1ee54f06aa519555bcfcd47b4f38c3a6c96e57446d3f512d6c6306f9f54b1d56db4e8d2
36590a1490cfb540a7da765f8862aaa9f9bd6ba8dc3699a4e87a947a985d3448fa942b676f6f2eaf3
7a30a4dc9ccbc810e4848d81e1b3f17462ab153ff3913a6e8316bcfe61b0bfd44e97a979860ae9d6
90442decbcb4f6e2e4ca25bd6e6512757e6b4f507c2b12b8e255655a3fe666a1e64d2ff31eeac34c3
a6c9e4cbcbcd334fb8ba649e3ba96d2c63ba12b2452060a4c83e1254f02bf172e4155539ff39b47d2
7428f56d5acaf2748adeb757165123c2d7d6f66b7b750461a40c0c70f392af44a46ea1cbaf1c5593f9
6bcf1a6f9a6e66b5d3edae50db49790cf2c82331a3d8dc0b720b4723ff007a4f38bf9e31cbe1e98ab
00d6bf3e6c3ca9e6cf31681acd8deea0d65a8c1a6e9763a6dac5ebf37d1db5662f2cb761640f1c523
2b718b853832fed62ac87c87f9ad6de7ff0030ebfa7695a5dc268ba4d8e8fa8d96ab234605dc7ad59
fd763022e7cd08465d997af2e5c7e1aaaa765f9dbe55bab88229ecf51b086616f235d5dc31a45143
7b6935ddbc927195982c8b6f3200aaccaf1fc6aaac8ccaa07cc3f9cb1c7e55d5753f2e6957a35eb08
a49fea7a8db7a4b1c10bc4bf5870668f9c2c251c5a1773cb98e3ca2915554d2d3f3534a856ee3bf5b
9b992daf6e2d9a586d040a8b1eae34a0a55e772c6291d39bedea27ef5117fbb0aad83f39bcb53eaa
9a41d3f538ae5e68a12f2dba2c6ab36a126942563ea92105d47e91db9fc4aeaa63e4caaa37f333cf
12f91e0f2ccd181c75bf3069da1c85a037155be665e0a04d09467238ac879aa1ddd08c55835d7fce
4be813e8b69a9f97bcbfaadf5d5e4fa02dbd9ce905b33daf98ef64b286756698a90b2432c74a8fde7
1ff7537a815673abf9f1f42f3c45e5ebfb591f48b8b4b074bb8222e61bad46f64b34f598b80236711a2
f152dc9ea7e0a95550763f9b5a15c4ba5694a67bad63548d1e378ed1a18a36b892ea3b7f551a466
512359cc3e12fc7d3fde18f9a555477e5a79f479eb43b7b8bbb492c75c8acac2eb51b778fd3889d42
d96759203cdcb44c79aa963cfe0351e2ab13d4ff3eb47f2cf98f5dd0f5fb4bcb99ed352bad3f4bb4d3a
d39ce534fd1a1d5e7f519e7e2e5a26796365e038511d438dd5643e44fcd6d3fcff007fe644d274fb85
d13425b096d7557e1c6fa2d4ac22d411e38c3735fddcc9457507c78b7c38ab5a4fe72794f58bb8ec
adadf514964547064b47a059ec1b5283652cc4cd0472346a016e48c8c15b8065556c3f377ca9a95
c69d696a9766e752beb9d2618cc4a38ea36454cd6ecdcf8f358d8cdf0960d0a48ca4fa6c3154bbcb

563

9f99f7d7baaea7a6798ad22d3753d35e48a6f2fd1c6a4af25e7d5ec5e22e4477305d474759e32b1c
72563938956e2aab41f9b3616de63d474cd7a0974dd2a35b53657735bc9118da6b19af648eecb9f
81c2c1271a0a7c3d7e24e4ab5e60fcd9b4b6d1eea6d0acee24d76d648966b1bcb778c4313ddc56c
6593e25ac6dea7eede26903107f91f8aa97bfe6b6ae3caba7f9e458db0d0b55d525d2ad6d2aed751
c6f712da5aceec18292f246ad2c4147a68ff6d993e25511e5cfce5d1f52f2c68daeebb27e859e4b6b6
bad6a2b9b5996254b9d2e5d44490bd68222b1485246e7cbd368b8fa98ab25b4fcc3d0ef4462dadef
de7694c52db8b395a58544cb07aaeaa0d622ec2922725e3c9fec472322a80d0ff003374ff0033695
04fa4da4d16b773a4aeb7169375c448b04bcfd30ec8c40e7c18075e480fda3cbe1c5598697a841ab
69965aadad7ead7d045750f2d9bd39903ad7de871545e2aec55d8abb154a757ff008e8681ff0031f2
7fd405de2aff00ffd3f64fe4fb06fcaaf2630e8da35891f4c098aa03cd7f947a2f9d7cef6de68f31b8bcd
220d2ff004549a1912a24ce97f0ea11c923c72a87559204fdd3a3237ed7862aba6fc8efcb0b893529
27d0fd41ab7d6c5f44d7577e932ea3771dfdcaac7eb704125c449290817e31b62ad6a7f91df963ac
7d60ea5a299e4bc86fedef2537574b24f1eaf2472ddfaac9282c6568a3ab1f89422aaf1514c5590f97
fc8fe5bf2b5dea37ba15b49692eab3c9777d18b89de07ba9c2fab3085dcc6b248501919154bb7c4df
116c550117e57793a1d362d216dae4e996e647b6b66bdbb64865967174658eb2d564128e6920f8
d0fd82b5c557d8fe59793b4d5916cad268bd649a3722eee8b7fa4de1d42460c6524335c319790de
a7f97e1c55562fcbaf28c1a9dbeb30d93c7ab5bcd7171f5d4b89d2595ef1e37984e5641eaa33451b
7a7272405178a8a62a853f957e4be16ab1da5c42f60225b19a1bdbb8a683d079dd0c7224aaea7fd
2660d43f1a48c8f55db156dbf2abc8ad25db8d35916f7eb3f58863b9b98e12d7d1a4570e23590286
904485980e5cd7d4fb7f162ab6e3f2abc9176ed2dc594d24e5264139bcbbf554dc5dc57ceeae25e4
ae6e218e50ea792b2fc2462a88ff9577e5d885ecb642e20d42f85899af9ae26b898c9a54a66b6909
9ddc16576258f592a43d7154a6e7f24bf2def9751179a53c9fa59b557d440bbbb5595fcc0235bf341
37c3eb0863e9f638fc1c7154f34ef2079574a8fcc115859bc31f9a19a5d6d7eb13b09e47816d99c72
73c19a3450cd1f12d4e5f6b7c557d9f913cad612acd6f603921e6aaf249227a9f545b13271762bcda
051133d3932f5dc9c55474cfcbef2c6852c33797ad5b49292dac932da4b2a2ccb61686ca08e55e54
64588d389142ca1fedfc58aa0353fca1f206b1addcf98b51d31e6d62eee85fcf73f5aba4adc2d8be9a
1c2aca1452da478a80528dcbed7c58aa37caff00971e51f26dccb77e5cb292ca69ecacb4c9697371
22b5b6990fd5ed81592461ca38c0412539f11bb62aa09f957e464e35d359c247690f192e2e1d4c7a
7453c102b069082163b9954d7ed73f8f95168aa94df94de4bb8b38ac6782ee4823b76b12cfa85ebc
b259bfa7fe8f248d31768c7a485549f84ad47da7e4aab4bf95fe4e99cbbdacf569e7bb978dddcafa93
5d5da5fb97a49b8fac46b2a8e8adf67e12462aeff955fe4efad0befaa4df5c1c3f7df599c93e9ea4756
5a82f434ba3eaf4ff0023fbbf871556d4bf2fb41d7749d1f49f301b8d4d343bf8358d3ee26b9984cb7d
6923490c85c3f26e05a8039614fb55c55218ff00227f2de1b28ac21d3ee23b7b7874db6b6e37b741
e28f45bc7bfb2e0dea5418a695d835791e5c5895c5593eade4ad135ad43f49defaff005be1671f28e
7745a69d742f6dfe1069559873afed7d96aaed8ab1ab5fcae9b4df30da5ee95ab4d6ba25a5b25b43
6c2495a65413cd3caac5d991c4a666ab15574f840af15e2aa6fa3fe5ce8be5f9eca6d16e6fad16cd2
d20310b97749adb4eb796da08650f5e48ab293bfc45955b97218aa59aafe4af9135ad6ae3cc1a85b
dd3eab7375757d24cb77320f5eff004e1a4cc42ab0001b402202945fb43e3f8b154cfca7f965e54f24
457b0f96e2b8b48efed6d2cae15ae65957d3d3ad52ca06559198075863442f4e4dc4571540c7f93d
e4c8c32aa5df1923b68651f5a93e38ecac25d3625241076b799d0914249e7f6c06c5552d7f28fca16
48d1db2dda72bc5d515cdd4aee97e248643708ce495763020623aa734fb12382aaf9bf2a7ca3708
05c25dcb3c3025ae9f76d7737d66ce18ae52f145bcc1b9a5268a37ad49f8153fbbf83155f7ff0095be
53d527966d463b8ba5b878a4b9866b877495a1b49ac873aee794571206dfe22dcbed05c554e5fca
8f2adc2c5f597bf9e75812d27ba96fae1e7b8b78a549a38e690b72611ba2b274a7c5fcefc9546c5f97
3e568a450b6ee74e8eea7d4a1d28c8df528afaecc8d2ce917666695d80af04762e8aaff00162a91cf
f94ba3c89a7683e94737936d6dcdbdddadd3cb35d4d0c7633e9d0daf324058521b87dfedf2f1662f8
aa7569f979a1da5e69da8adc6a126a1a742d6a2ea5bd9de5b8b66657115c12dfbc456452a0f4ff66f
c9552b5fcb5d034f86c23b06b849748b596c74796594ccd691ce8d1318cb6ff61b8f16253e146652c
b5c559558595be9b636ba75a2f0b4b38a3b7813af18e2508a3e803154462aec55d8abb154a757ff0
08e8681ff0031efff00503758abffd4f64fe4f8e3f951e4815069a169bb8e87fd163df1579a7e73fe6bf9
e3c97e7db4f2ef956482769f4dd36facf4692d4cf3dfdcdceb90d84d0a48ac0a016f23c9ca87894e7f6
030c55e77e67fcd7fcc7f36f96754f2f4e64b6d56d2da496ffea5657305c5aea1a779be0b38d43a915
06c7f7b2203f12f27d91b154a3ce5f981e79bdd7eef53d5d9e5b6b2d1f5fb3b39615b9b7b2d4ad2cb
cd1616f6976618255219e112f1647f8951dd3f76d4c55f457e5b79df5ff386bfe64b5d52ea1b26d2ae
efec5fcbc6d644bab516f76c969722e09e1245716dc251f0fc4cdf0371565c55835cfe687e6ee91a16
9b37982c63b1ba1a96afa2eb3aab59936bea68f6b7d716f71046aecde95f3c76f0c7c9b66122afc72
4671579d79b3f34bf3125d2fce7a78b03a01d77eb91ea97c915d5c4d697a9e50b7bb86ca33ea111
caf745e0478d57e28b885f5f9362af52f3379af51d37f22bcb96b35dcd673eb3e509964d4a68e696e
4ea50e90af141c810eb34afcd831f8cb44557e3618aa274dfcd2f335c69b7d259c96ad369216dee74
69a39a0d4230b37189d66b85580bdc5b8f562591b8cafb2ba7ecaaa5acf9eb58f34e9ba959a5f7e8
9d474cd674980e9d2595c43750c72ead61f56ba67e6aac9342f23bc552a55b872fdd4bc9553d33f3
8fcdf3db98e7166fac595a5ddd4764b6777cb578accdfc4d2daac7cf890f6f1165e668392ffbb612154
a1ff35755d093cd3ab68bab47aae9f7777a85c58debdacef0c9736fa2e973db470a723c55dcdc7245
eeafd1d1f15641a779e353d2fcc771e5fb0bc86de1d475fd424b39ef96e2e63ba29796eb2d940630d
c1fd2919e3df8d59582fa71c98ab21d0f59d585dfe5d5c7d65e5bbf32457c7cc503132ad56d5ae59a

bd13d0b8558540fd993862af53c55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb
15762aec55d8abb15762aec55d8abb15762aec55d8abb15762aec5529d5ff00e3a1a0ff00cc7bff00
d40dd62aff00ffd5f667e520e3f957e481ff006a1d33fea122c55329b4ff0028db79ad3cc370d6f0f9b6
5b45d2e39e49f84cd68f2fa8b088cb804193e2145fb58aa1fcd7e7ff002cf943419fcc5a95d09f4fb67b
749859b47348ab77749668fc798f8049200c7b6fe18aa59ae7e6c795f43d7a0f2df0b9d4752bad324
d6ad3f472477114d6b05dc5672047f514175799495fe5e5dc531566897b6724d35bc77113dc5b80
67895d4bc60ee0ba8355afbe2aa2358d21a2138bfb63010ac25f5a3e0439214d6b4dca903e58aa4
1ad7e61687e5fd23ccfae6a91cf069de55121bd919631f5810db0ba7fab5641ea10a4ad0f16e6acb4
c5539d2bcc1a5eafa3e97ae5bcc22b2d62de0bbb113911c8d1dd22c918e24fdaa38f87c71545adf5
8b842b73132c8e62421d486917aa8df723c3154b2ebcd7a2da6aba7e912ce0cba88b8304eac8605
7b4f4f9a3bf2f85cfaabc569be2a99bded9c626acf1d6de9ebaf35050b7d90d5238d7b57154a749f37
e91ad797a2f31d91736b342f711db3f0172446acc53872239510d072fa698aaad9f9a344bbd06dfcc
62e560d36e6c23d547ac42489692c6240ee95246c77f7db155da549a3cd7975f53b716fa8c3c4dd4
6d1fa72a8ba1eb0247839a934fdb0dcbe2538aa6f8abb15762aec55d8abb15762aec55d8abb1576
2aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8aa53abffc74
341ff98e7ffa81bac55fffd6f66fe52373fcabf243500ae83a61a0e9fef2478abcb3f363f2c35cfcc9fcd51
656d11b0d125f2f69f1cfe6292dddc41369fafc3a898ada414027648b6a9a286e5fb3c7154b21ff009
c65f308d3ee3489f5eb06b24b4b8b0b27fab4a6478a6f33a798419c17e35a2980aaedbf3ff271553d
4ffe71775bbcbad46f2df5cb387f4945acd6d0c32182da4d6b5db5d60470814a4512db7a7d016776
928bf67157acfe5e7e5ede793af7599f5392cb5296f2fb51b9b2d5c44cba91b4d52f1ef8db5c3b5432
c5248caa41f89787c294dd560d2ffce3a4d67a65869fa3eb69241a5ea3ae5c69d617b0ff00a243a6e
b56b776d05a0115091666ede489883f6a44f84302aab1ad4bfe715f5eb95bb117996dae7d78aeed
556fe09240eb79e5a83cbff58928dbce860f5c7faed1f21f6caaf50b9fca89efb43f2368d7779007f29e
99369b2dea45597d6934d1629716fcebc191c0956bd283154ae2fc9dd6d2c74b4b6d42cb48d5ad6
68e5bebfb04b897d7e296b0cc5e3ba79158cb1db2b21f81ede648648e46e0fea2abf52fca3d6359d
16c6c350fd0df5fb3d3350d35ae62b7900927b9b28acedee8f2e4dea208ea77aa8f851ff6b155f65f9
4badd95ff00e94faf5a5d6a16faa0bf5bbb8374f35f59b5ccb73f55bae4ed1a889a66f49a38cfc71c4e
547c4b8aa1b43fc9ed7f46b9d3d96ff4f6b5b36b79dd238a58cfa96f63a8588441520215bd4607b7a
6578ee08550969f923ad5a6997f697179657d74d63045a6df3fd645c412c565676d25b2a993d2f42
46b3560dc79a86e3c76e78abd3b49d36ea4f356a9e679e27b58aeec6c74e86d642391faabdc4ef2
3052475b8e037fd8f0a62ac9315762aec55d8abb15762aec55d8abb15762aec55d8abb15762aec5
5d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb154ab56ff7bf42ff0098e7ff00a81b
ac55ffd7f65fe517fe4abf2575ff008e1e9dd7affbcd1f5c5533d5bcf5e4cd07568342d6b5eb1d3f59b9
1135bd8dd4e914ceb712fa3115562090f27eed4f77f87ed62a828bf34bf2de7f5c43e6bd29dad5cc5
728b790968e456954ab2f2a820c32f207ecfa6f5fb2d8ab50fe67f9166bfd774f3ad5bc32f972e20b3d
5649dc45125c5d41f598d15d880c7d3f88f1e82bfca7154379b3f377f2efc9763777dae6bd6aa2ccc2
b35b4122cf715b89228902c684b1f8a68ebfcbcd4b5390c5535bbf3e793ace2be926d7b4f43a732c7
7624ba890472cafe9a2312762cff001fcff000fdadb1561761f9eda0de7e5b796bf33a4d3ae2d745f31
ea76fa4fa52c9173b63737af63eb48c18a94574e4789af0c559bda79e3c9ba8369c963afe9f72dabc
6b3e9621b989feb113b32abc7c58f20ccacaa4756565ea31549750fcd5f2b5b6ade5cd2f4eb98b565
f306a32693f5ab19e2923b59a3b29ef834df1578b47037123d8fd9c55368fcfde489628278fcc3a7b4
37327a3038b98cab480c6b4af2f19631ff003d23fe75aaaaba5f9dbc9fae6a93e89a3ebb617dacdb0
94dc69f6f731c9711fd5e4f465e51ab161e9c9f03edf036cd8aaa5c79b7cb70417b37e94b57fa81e17
28b3c7c92425c2a1ab6c58a3a8af756fe56c558c8fcd7d2e7b5f2c49a6d84fa86a5e69b51796ba541
2dbfd6a257b337a8b2079140e4a29cabc07da2dc77c55de55fcd8d23cc56b3dfea1652f97b4f8aeee
f4d8aeb549ecd526bcd3aea4b4b98d3d29dcfc12467e2202b27c58aa274dfcc9b4d475bbed27f46cf
6d6da75f5ce9977a84f3d9a4626b3884eec23f5bd531f0653cb86d5f880c559143e65f2edc340b0ea
b69235d23cb6e1678c9748b9f365df70be9bd7c383ff2b62a916bff00995a068568da8fa91df69a890
3bdc5b5cdb1e2b35f4760cc51a456e11bc9591e9c4712bf6fe1c555752fcc2d16cad1352b264d5b4c
95b4e58aeb4fb8b69c30d52fbea08e14480f04908e4ddfe254e4c8cb8aaa41f985e53332d9dfeab67
63a8b86905ac9750bfeefeb8f631b091199099254e0abcb973fdd91cc118aadd7bf30fcb7a0d96a37
f35c7d66df4ab57bdbf92dca32431a4ed6c03b960aa4ca9227c4689e9c85f884c551765e6ed3a6b4
b79f5353a3dd5d4ad05ad9df4b02c93c82817d1649192457e4be9b2b7c5c87ed6d8aa0bcb1f991e
52f34795ad3cdb6da8c169a75c450cb325d4f0a496ad7082448ee38bb2a3f135a16c55137de7af2d
69baf5be81777d0c5713c12dc34cd342b145e94b6f12a4859c15691ae6311fc346e9d78d555ade7b
f2f26b1fa29ee5160fa849a91d50c917d48470dd0b478cbf3a871210b4a75f86bcb6c5540fe62f9706
a3abe94260d7da5dac77d0c225839df412db35d06b406405c044352788ff63f162a99e83e69d1bcc
367a6dcd9dc225c6a76306a90d84ae82e96dee635914b46ac4ec1c06a5462abee7ccfa2dac9123d
d23ac9769a7bc91b0758aea63c638e5e24952edf02d7f6e8bdf154df15762aec55d8abb15762aec5
5d8abb15762aec55d8abb15762aec55d8aa53ab9a6a1a0fbdf38ff00a71bac55ffd0f65fe519e5f959
e4a3e3a269dff50d1e2ac0bf32bf27f54fccafcc82f792bd8f922e340b4b0d46f22113cd2cf65ad43a98
81033868f9084565e0c2951f6a98aaebaff9c71d2a7d1ad74e8f5b992facf54f306ab0de981082be6a
8aea0bb85e30c39705bb7f49f95559579721c832aa67fe71af4985a44b3d726360baa69babdad8de

565

dba5d43cb4fd206892c371f1a34d1cf6c37154e2e6bf18f871555bdff9c75b29bcb3ae794ac35d365a
36a5aa43ae698058c2f369f731ddda5ec9123f35e56ef259a52201388f879b044e2abbfe85d34f594
5d47adb1bfb3f318f35e8f7b2da23cf04cd7ad7f2dacce1d7d5b669a491d51444c9cbed3b2d7154e3
48fc93b5d1bf2ebcb9f97f06b52cabe59d5e0d76cf509204e524f6ba836a291c91ab01c0c8dc5b8b0
6e1debbe2ac6f4aff009c5df2e6952c663d6aede0b996caef5a4a0437175a76a375aa46d01561f574
69aedc3a206fdd85e243f276554b4fff009c58d06ce6b3965d7eee5167059e9c1046a9cf4ed3f49bcd
1e28c90d512986f646798759153f7617e1c5556f7fe71b16f343d3f455f328b616b629617b736fa745
1cb7a6092c5a19e7612f2690258451b82c6271bac71944e2ab25f2afe4b41e59f3c47e771acbdd5c
acbe609dad0dbac685bccd790deca390724089a0554f153f162ae83f27ef2dbcd2fe6e87cc64ea554
10c6f631fa2238e5d45f8b22c8a0fc1a8c8954f4fe24493bc8aeaaaf943f281bca175a5bc1ae3ddd8e
99731df8825b64591ee574a1a4bfef15c511a345709c4f07a8e5c38aaaa86b1fc96fa9d87d50eb665
92493cc8b744daa88a4b4f36dc8baba8bd332351a3751e949cbecfc2e8d538aa317f2734c1a67982
d5aea3fd29abdf49a869fac7d5637bab22f1c11ac7ca46732ad205f53911ea82cad8ab571f94d35cc
b6321d4ed2086d9cdc4f656fa64715a497327d704cde9acbbaca2f1f92cad2b721cb9fef24e4aa047
e4ace615866f30c93c705afd56c84f0999a109aa5bea7127a8f2991e28dadd620b2334bc18fefbece
2a8cb9fca59a49aee4b5d521812fa5b4b9b84faa13fbfb5d65f5a729c665015ddcc74a12a3e3e4edc
aaaa5da87e53cd63a3ea31b1935d9351b5bcb0365691456ae92dfeab2ea70dcc6f35c284fab4b31
6eacc7d35745e638b2aca21f266a36334d15a5dc6d0df699676379713411ca1e7b19a5964696225
55d2e85c4824514a1a9fdad95497cadf93c7ca12c1fa23558934c093453e8f2da7ad670c0d78d7b6f
158abca4dba40ec42a932af1a7058ca271552bb1fc8992cf4cd174e7d62d2ee3d16cad34f58aeb4ef
56d6ea2b7b6bab597eb10fd6006f512e891f10e0cbbf34665c5531b9fc9d9e6b6b9d3e3d6d23d3bfd
3db4f4fa9299627d46eedaf8877595432472db008aa89fba3c397c0ad8aa23fe5566a5f59fae7e9c8
4dc7a53a7236355e773ad2eb0e686734008f497890ebfdeab87518aa5da57e47fe8dd3adb4d7d65
2e22b58ad3d294da707171a7dbdcdb42ffdeb7c1c6e3e34fb4dc69cc2be2a9c7917f2b07932f61b89
2fadf528eda18d6da596cf8de4530b2b7b297d398cae162916d95fd309c81f87d4640062ad8fcbdd4
6d16e6ced2f449a7ea7ac59ea9716e79adbda4769786fa43023bc855e770aac8a5610dce5544666
0cabd1715762aec55d8aad2b52a6a471de80ec76a6f8aaec55d8abb15762aec55d8abb15762aec5
5d8abb154a757ff008e8681ff0031efff00503758abffd1f65fe5157fe555f92abd7f41e9d5aec6bf558f1
54cb58f3e7937cbdaa43a2eb9ae59e9daadc2c4f0da5ccab148c97130b789806a7c2d291183d399
09f68e2ac6fcd5f9d5e48f2e7976e7cc167a841ad7d596198d9594f1facd6d26a31e9724cbc8d0ac5
3bf093f9594a7dac552ed7bf3e7cada5eb30e93a6ac7ab4371a5ddead1ea51dddbdbda06d3f50834
e9ade4926650922c938fb54dd4a7daa62acfed7cd1e5fbfd4af345d3b52b6bad66c11a4b9b08a556
9502318d8902a68ae3837f2b7c2df162ac4bc93f9d1e47f39f94ec7cd3fa420d29aee0b7b89f4cbb9e
3fad406f1de3851941f88c8d1b2a71af3652abb838aa6faafe6479434fb09eeadb55b4bfba5b09353b
3b2b7b88d9eea24b692ed0444120992289dd3f991591610000026060f002220574d46430100000
0000001000000000000000e000000002000009051010090b10100feca938aa8e85f9a5e4cd63cbd
a6ebf3ea96da6aea1a6daeacf69773c692dbc57904570a926f4e61654aaf5f894f465c555ee7f33bf2
f2cdad96efccda740d7809b612dcc69cf8dc8b36a548a719c885ebf624f81a8d8aa73aaebda669148
eeee624bc9559adad5e454795803c556bdd88e2be27a62a9568bf983e54d6744b2d6e3d4eda186
ed2dd9a27990b4525cc0b70b1bd0d0108e18f6a7c5d315472f9c3cacf3dddb26b166d71635fadc62
642d1112fa0430af512feecaf5e745fb4462aa573e73f2e47649756ba95addbdcc12dce9f0c53c7cae
8428f21588d68c691bf4fe47fe56c55865e7e75595be8f63ac5be912cf14f61a46a97b0b5c430c96b6
fe6097d1b52dcfe16a311eaf13f00351cf1566161e71d267509a8dd5a58dcc97125b4117d7209965
68c9154656f1575e2406e48e29b62a8c8fccfe5e992178753b6905cb3476fc6543cdd0a82a37eb57
4ff00835fe65c558e69df99fa25f5f5ce9529860d523b2b3beb183eb76f22df7d7ade5b854b6756a49
410bfc4bb301c97e1c5531b7f3ff9724d0acf5ababa8ed5ef34d4d5d74e924437620785272a2306ac
ca1d4103c478e2a85b5fcc1b5bbf334fe588ec2517b60d02eaaad2c225b45b9b4fad24d245cb91b7f
f0074faeb54f5b927ecb362aab71f98de58b7d7ac3457beb736f7f05cca9a90b987eae93dac96c86d
dbe2a89185d46ca3f97e6b8aa6979e69d06d2dafa71a85b4afa7a93710acd1870f472a86a762c637
0b5fe56fe538aa4507e67f976e7c951f9ca0915da5d33f4b268deb422f76b15d44dbf1e54f5442c1e9
5fb3f17d9df155fadfe66797744f2ec7e619645954fd41ae2c965896e208b519ade11248acc28b1fd6
63693c14ff0094b8aa2e0f3ee8173acfe8cb7b88e5b26d386ab16af14d14966f1fd64dab207563f107
14f0edf6b154eff4ce93f55b6befaf406caf029b4b812a18e50e2aa5181a3023714c552df3879a62f28
6930eab359cd7a935f58e9ab0dbb46ae25d4aea3b48989959071124abcb7a85df7c550fa0f9ef41d
6f4a8f549261a687bcb9d30c17af1a37d6ecae5ad25456566471eaaf15646656aaf734c556f973cfb
a179834bb7d4a49574c92e67bdb68acef2589262da7dccd6ae4518820981d977fb3f238aa6f17983
429fd0f4752b57facb98edf8cc87d470402abbee6aca29fe50f1c558df993f32f4bd06e74db6b3b593
5a6d44dea87b19adb842da6dbfd6a6591a696300fa7ba8afcf8835c5533d3fcfbe4ed4748875b8b5a
b48ac26860b82d713c70346b7414c6b2abb028e7901c1be2e5f0f5c551b279a3cb91c6d2beab66b
123223b9b8882ab4bcb80a96eadc5828ef43e18aad8fcd7e589ada4bc8759b292d21e0659d2e226
451229742cc1880194161ec09ed8aadb6f37796aefeb5e8ea70016776da75c33b88c0ba8c2168c1
7a034f51371b55b1555b5f33f96efa431596af65732097eae561b88a4226ad381e2c68d5db8f5ae2a
b2f7cdbe56d36e64b2d435bb0b4bc84a896de7ba863950b805432b302090c081dea3154ced6ead
afada2bcb2992e2d2e116582e2161247246e2aacaca48208dc118aaae2aec55d8abb15762aec552
9d5ffe3a1a07fcc7c9ff00501758abffd2f65fe51edf959e4aff00b6269dff0050c98ab02fccafc9fd5bf32

7f32966bd91ac7c8b3e8569a7ea77317a4f3cf3596b316a62dd159c3461bd15065e2ddd42fed0550
a7fe718ec1e2bab493ccf746c1e1bab5b1885b421e086eb5e8fcc0017a9f519674e152179467a72f8
b1553d4ffe717f4fd4aeb52d44f99278b51d661d51752956d51a36b8d6b53b7d4e59234327c0a8d6
b1c69192df0722cecc7157a4791bf2fe4f2449ac430eaa6fb4ad46f6f751b3b69add167b49354b86b
bb98c4e18b3c6667768d4805795199e80e2af3fd3bfe719b49d3a2d0e45f305ccba9f95a1d2edfcbb
76d02048e3d1ee6e6e93eb1186a4c647ba70f4317c2138d1b9332a86b3ff009c55f2d699a5d9689a
66b777169766d05e049a349a57d52d34cb9d2e3b82fc968852e59de00285d578baa557154569dff
38db6da4695a8e9fa6f988c5777ba7e9f696faabe9d6f2deda5d69d656da799ede566aa24d05b22c
b12f13cb932cabf6715415fff00ce2e5a5f69775a57f8a258edeea1d420e42cd0b20d4f5c875d723f7
a3eccb088d7fc83fcd8abd5f54f28df5ef9825d72cf5736915ed8269da9d8b5ba4e92fd5da578248d9
9818d95a77e74e5cd78fd865e78ab109ff25eea6d225d1d3cc662b7b8b3b4d3ee00b242b24765a7
9b1462a65fb552251bf107e1e2db32aaa3e66fcb0f310d32e26d32fc6a5a8b3de491c114096d2a49
a96ad6fa9bcf13bdca0f521300f487a917f37a8ad8aa3348fcadbf544bdb8bbb5b2b9b8b04b6b9b21
a7c5288aea149e38a785da591a262939f5d5247e6fc99264e4dc95737e4fddbf96bfc36faf46d0ae9f
e5fd31656b106b1f96ee0dc233219e87d6af171d1474c553ad43f2de09bcc4759d2aea0d36ca7b75
8af34f1616f39fac4524d2c7736f238fdccbce772e783f3dbecb7c58aa47a77e4ddd58dd5adfc9e636
6d46d6fd3545beb7b5fab5c193d3b58ee222c267e50dc8b502689c3a9e5c85248e375555b49fc9d8
f4c86ce06d5fd74b5b6d2a124db052d71a1c73c76f203ea1e2a7d60d22753c788755738aa0edff24
8db69977a61d5e1ba82e2ceda3469ac53eb097f65696f6892a5c7367485c5b46cf028fb5cbf7bc5b8
e2a9bebdf9607cdda8dbeabafdf88ae20fad7d5a4b48563beb782fec5ad26b31760fef2df9bb4dc5a3
f89c475fb18aa1b55fcaad4b5cb158757f304735f9d32ef4ab8bc874f4b7127d6e5b27f57824bb32ad
92aeec6bccd382aaa05546d3f27ae2c22b6369adc297da75d4b2e9b79fa3a3590dacf1dcc2d0de14
954dcb2a5d3fa72728f8b7c7c0b33f3552cb5fc859ad34e874a8fcca5aca2b2faa51ac97d4331d0bf4
09979098003d25590253ed86f8f8b7c2aa3351fc96bbd5268deefcc7ce1b786282d22364b545827d
3ae514b7ad42bea69cbfb218a48e198b51f1557bcfc998e5b996fac7555b7bb95deecacd6a2e6d9af
a6d55b54919e232af289998c7e9725dbe3f53d4df154ff53fcbe8efb46d0f47b4bc5d317439127b79f
4f816d1a3913fdf0b0b22c484178da221e3789d92456fb58aaaf99bc9fa879c7cb11683ad5edbfa83
53b4d427905b7a90cb069fa825ec50344d27edac491c8dc8fed3531563f6df93ff00535d2ac9353b7
bcd0f47fac5a59e9fa9e9f1de84d2e79e1b88edd4bc817d481a10b14c51bf77c4491bba093154369
9f92efa65c995757b7b98e4172cdf5bd363b9961b896f2f6f219ad5e491844f1b5eb2bd564e611597
d262d8aac87f252e641fee47cc723cf24d2cd3de5942f6b7252ee0860b9843b4f356294421b84824
e0fc244fde46ad8aa22c3f266d63b8f2dcdab4fa75f45a14d3cf756f1e971dbc57cf2d8ad846f2afaaf5
916351c9db9f2fb28b1a0e38ab771f9457d73e61b9d6e7d72196196e52786cdec0011c316a96da9
a4459660a789b7f4b9045aab736e4e3e25514ff00961a8cdaf8d66e75c8a6846a16f7e96e6cb8bf0b
3bdb8bc8a2e626e3b7d6193988c578abf1e7c8b2a928fc8e9e3bcb6d463d62d249edecac74e36b7
5a68b8b19a1b35d4237f561370bc8c897ed4a30e2d1fedabb262a989fca065d405c45a8594da69b
aba99b4cbed323b9b7fab5f2d9f28d53d544578dacd4c4e1782ab70689b8a9c5515a5fe551d363d0
445aa7a575a25f5ddf7d6eda268249e3bebf6bd96de451294789c3706122bd195268fd39171551f3
4790b5597577d634b31ddcda9799744d5e68cc489f55b7d3628e091999a45327c31f214a30e5c54
1c5594f937cb97be54b01a17d6629f44b48a24d382c5e94ab212ef397a315e25d87a6aaabc17e1f8
bed62ac9715762aec55d8abb15762a94eb1ff001d0d03fe63e4ff00a80bbc55ffd3f66fe528a7e56f92
f6a7fb83d3b6f01f558f6c5598e2aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8
abb15762aec55d8abb15762aec55d8abb1552ba748eda69253c6348d99c924514024ee3718abe6
183cc5e7987cbbe51d06f2fb5336da4799b406ff00103cb307d6f49d5e559a18de70c0b0891a686e
91fbc11b49f6e98ab3a4fcd3f355de9167a8dab69913ea4f37ee1a2b9967b06874cbbbb92dae5394
43d68e6b6588fc43edfd85f839aaa50fe6e79a67b7995adeceda7117d72def248276b562fa4db6a51
59300fc848ef3491092bf17a5f0c5ea7c38aa353f333ce29a549e65bbb2b58f4c8b5a7d0ae34d8ede
76bb81e6ac168ed27ab435ba9208a5fdda8542cff2552633f9ad35ef3779861d77ea967e52d73eb5
a97a92dd4f6f3daff876d83da476818aac06f25798b72aa3c6c06fc99554de1fcd0d767b6bdb996e7
4db58b4886492ed8c52cad34aba95ce9e9411ca422958e296b5641cb791623ea2aa80d23f383cdb
aceaf0e9e96fa7d9dba9d3a19e69239a52d35fea3a9584854acc8a3d316714b4f8bfbce3ca855f155
193f38bcdda9797f5bbad3e1d3ec355d2b4996ed219966967b97fa834eb7969100435bacead132b
9f878b7293971475539bbfcd2d751efd6d1b4c5faaea16da42c373eb1b906e2fed6d52f1923217d09
e29da68be35e8bc5a4f8f82ac9741f39ea97979e6ad37568a18af3cbe0bc334284dacf0812012fa82
47a12d191242fc258994fdb8da395d560f67f9d1e627b1bcbdb8834c93ead6d1dc2c51195599ae7c
bd26b49b1918d1648fd034fb61b97c0471c553cb2f3cf982f6fb44998db4b1dceb30698b25972fab5
dd9dee9ad792710ceff00bdb675f89c315e28df67932aaaf56c55d8abb15762aec5529d63fe3a1a07
fcc7c9ff00501778abffd4f677e532f0fcadf24aff002e83a60fbad22c557f98ff00337c8fe52d5e1d0fcc7
ab2d86a53c704e892453b4621bab85b48a47952368d15a6658b93b28e6cbe38ab16f377e7df9374
2f2ccfe60d06e135cb88122b91609eb40d2599d5a3d1ee2546685aa619dca94a722cbc7f6b962a94
f987fe722747d3f5d5d3341b6b6d534d6d26f7527d46e2e65b0105de9baa5b6993da5c44f6cf244ca
d715f8d43725e2528dcf157a65879d3cb9abea57fa2e8f7d1ddeada7a4cd340a24095b794c120127
1e2dc251e9c9c0b707f85b7c5585790bf3efc97e70f29e97afea5709a2eaf7f059cd2e892fad24cafa8

567

cb2436e90168633701de275568558551bf94e2a9a6aff9c7e48b6d1e7bed1b57b4d52f9ec1afb4bb
7591961ba736735f430faea8ea8f2c50bbaa1fde7052dc0e2ad687f9cde48d4740d2f57d4f52834bb
dbed3ecf50b8b091da430497b6b05dfa1cc280f22a5c46dc5473e2cafc298aab5efe747e58e9bf553
7de608a01786410968a720186f469d209088c88f85cb085fd4e3c1c8e58aa77a8f9b74ed275c6d26
fe686245b24bd3f148d724cd72b6b185856221959d95410fcb990bc3f6b15631ff002b5e05f366a7e
5c9a1b0b6b6d366b24facdd6a2209e7b7bdb5fae19a3b77807f751862eace3ec36f8ab22b2fcc1f27
6a2b03596a91ca2e2e1ac9470914a5ca3a466394328313169115449c79735e35e4315497ccbf9ab
a468fa5cfab697e8ea96f6f6177a9188cb25bcb2c767f566261061657429701f9f2fe4e21f9d51545d
bfe66681777f1adacaafa1b5a5ecf2ea2deac72c575a7dd5bdac96cf6cf12c81cb5c2f11f698ec13e25
38aaf6fccaf2f4da6deeb9a549fa4b42d32c9353d4afedcf258ad9cbd68942ece891c8ee9c43285e3f
6cf1c5598472473469344c1e29143a3a9a82ac2a083ef8aaec55d8abb15762aec55d8abb15762ae
c55d8aba83a53157501eb8ab5c57c078fdd8aa06ff46d3f53b9b1bbbd47924d3a53716aa249122f5
4af10cf1ab0490af54e6adc1be25a36f8aa3a83c3af5c55dc57ad062ae2aa7a807157715f01e1d3b6
2ad714e8547874f0c55be0a395147c5f6b6ebdb7c5509a969563ab69d79a55f441ecafa092d6e514
942d0cc851c725a115524541c55ab6d26c2d16cc47155b4f87ead68ee4b324642a9a57b90a2add7
1546e2aec55d8abb15762a94eafff001d0d03fe63e4ff00a80bbc55ffd5f66fe52956fcacf24b2fd93a0
e9847d3691e2ac33cff00f93b71f989f992ba8eb12bc3e469342b5d3efe3b792359ee6e6cb578b538
e2657462b11312f274657fd9efcb15531ff38d9e53315cdb4babea8f672c73dbdb5bf2b655b782e75
a4d78a2110726a5ca6c5cb7eebe0ff2b155ba87fce34793f51b9bebf9754d4a3d47548b514d46e23
6b71eacbabea306a53cbc5a260a4496d12228f85625e34663cf1567be4ef21daf929755b5d3351ba
9749d4af6ef528f4eb8f49a3b6b8d4a637171e93aa0728d2b33aabb370e4474a51560f63ff38dde4d
b08b46315fdfbdff0096e2d3a0f2f5ec8d117b58f489ee2e2205446164e4f7327a9c87c4bc02f1e35c
550f6dff0038bff97f63a7da691a7dc5f5be9367e8cf15b7a91b937f6ba74fa5c774cec849610dc3b14f
eeda4e2dc788e25556b6ff009c71f2e69da5ea5a5e93ae6a562ba959d8da3de44b69f5d8a5d3ed60
b2134570d0174f561b78d2645211fe2d97962a86bbff009c63f2ade69d2e96fadea4969325e46420b
556517fad45aebd2905052e21555da9e97c3d7e2c55e83e65fcbed37cd3a85c5fea33332dce9bfa2
65b568e392068beb2974588604f2e51800ab294fb4855c2b0550907e5768eb6be64b2bebdbbbf83
ccb6d6f6772f72d1bcf12dad97d4564494a163294f899df91e7bf4f8715434bf95315c41a64536bd79
cf4d962ba0d141650a49736f7305cc7318a28150495802b32ad595df1541ff00ca92d13ead3597e9
3bd5b19e1d46036a9e92c310d552dd65302702b08e56cb2f04023f55e56e1f1f155517acfe53586b
72cb7175aa5c25d4e5e79a548a035bc33d9dc24dc1d19288d630288d959193907e45b962abaebf
2ea78f4ed7747d36e635b5f33e9c9a6ea772d1a44f130592179a28a2511ef0ca42c615555917af26
c559edadbc5676d0da40290c08b14609a90a8028dfe431555c55d8abb15762aec55d8abb15762a
ec55d8ab54152ddcedf762ade2aec55d8abb15762aec55d8ab44d081bef8ab78abb15762aec55d8
abb15762aec5529d63fe3a1a07fcc7c9ff501778abfffd6f677e53803f2b3c914141fa034b341dab671
78e2acc315762aa693c32492431c8ad343412c6ac0b216151c80dc546e2b8ab573756d67035cdd
cc96f6c94e734ac2345a9a0ab31006e698aaa330552c7a0153dfa62a91c1e74f295ce93a76bd6fac
da49a2ead711d96997eb32982e2e6690c31c51bd685da40502ff0037c38aa7b8aa02fb5ad274cbb
d3ec350bd86daf75695adb4c825708f713246d2b2460fda6088cf41fb2a4e2a8fc55d8abb15762aec
5503ac6b5a4f97b4e9b56d72f61d3b4bb7e3ebde5cb88a14e6c15793b500a9200af7c55ad275bd2
75d81ee747bc8af6089cc32bc2c1b8c80062ade068c0d0f8e2a8fc5525d5fcdde57d06e92c75ad62
d2c2f6485ee92dee2648e56b78cd1e50ac6bc14fda6fb2bdf154de19a1b8863b8b79165825512452
a10c8c8c2a1948d8820ec71552bcbeb3b08d25bd9d208e5923823690f10d2ccc11147bb310062a8
6875ed16e6c2d354b7bf825d3afd952cae91c34533495e21186c6b434c55bd335dd1b5a8927d22f
e0be864863b98e4b79164568272eb1b82a482ac51829ff24e2a8c9a786de332cf22c51020177214
55880054f893418aa02c3cc5a0eab7b73a6e9ba95bdd6a1675fad5b4322bc9180c5092a0d69c815
aff0037c3d71544dbea5a7dd5dddd85b5d4535ed818d6f6dd1c349099979a09146ebc97e25af518a
b5a96a9a6e8d68d7fab5dc56564af1c6d7170e238c3cceb1c6a598815676555f1638abaff0054d374
a4824d4aee2b44b99e2b4b769dd63125c4edc638979115773b2a8dce2aeb8d4f4eb4bcb3d3aeae
e286ff0050322d8db48eab2ce614f52411a9356e2a39353a0c5575a6a3617ed72965731dc3d9cc6
d6ed6260e629d5558c6f4e8c0329a1f118aab4b2c7046f34ce238a3059dd880aaa372493d00c557
835dc74c55d8abb15762aec55d8abb15762aec55d8abb15762aec5529d5ffe3a1a07fcc7c9ff00501
778abffd7f68fe560e3f963e4a5eb4d074b15f959c58abc77f37746f38f99ff003821d0bc957d7165ab
a681a65fdadd25ecb6b6b6b2db6bf13cf3c912305958db2c9170e2c5d5f81f80d42a9747f937f9bf67
a324f6bac5e1d5ee356f304baad9beb372f1c963750ea034530f390a462da5b985e444e3f601f8fd2
8c62a881f94ff009bd693eb6e2ed9a6d675ed2f50d6f54d32f56daeafaca3d0174e9cc2b28e31bc57
83eb2aaf456a2f1af1e38aadf36fe50fe66799bcafe60d2359136b7ad0d62ceef4bbb9b55f46d2f7488
2ff004fb9104b0a7055b88a2b7963e7e9a27277753fbe215547dd7e5cfe71ddb5dcf79a8ddbb3f99a
2bad46c6db5310db6a1e5b1a83dd2c50b2fa72c53c70ba40ea5a28de38b855b9571555d2bf27fcd
907e46f917c817f691b6ade5fd7ac353d5ad63bba73b3b4d59ef6458e7054991a2341f12fc7fb43ed
62a967977f2bbf3fb4e974b17be652f25aae9cba75c497724e9a75bc1a8de4d7705c2b356ede4b59
6de1f55837331d19942876552eb2fca0fcf737fa0de5f6a91c93692d6f3453dcdd9ba683565f2fdf69f
75a827a9cbe09aeee2193d31bf1467281be12aa6373f97bf9db0f97349b5d226be1ac0822b9bf7bb
d5e375b5d4a2b9d35a55b7e0ca4c52a5bdcb23c8d21fdf491bc68b31e2aa7ff00969f97ff0099de5df
cc77d7b5cb9ba6f2e5d49e66facdb4daa49790ac37ba9c371a42ac0eecabe940254f800e1cb8ee31

54c60f23f9ed24b2696e756e135fea1757cf0eae3d689d7521369ef5b933afa1f550619228d796fc5a
37e5c9554bacfc81f993686def04fa97e9247b39d5df58966852e13589de6692279f83a7d41d13d3a
156fb34e6bcb154e6dbc95f987f53b6bb5be920d62ce3d2a492de7be9a4b7bad4a313dbea9312ac
690cd0caaf1215da6891fd28db15497cd1f971e7abfd13cd9a540751d4279e2fd1fa2ac9a9c26c66b
01736b2c0cc937ef05cc2913ab4b21f8aac794bea7c0ab24f337927ce371aedc5fe81a95fb1fd137af
692dc5f34100d5679a3f491e1b768d4f187d48d2468e411d55be2645c5522d63c8ff00993713de9d
3ee7528f4b097b2e87669ab3c735b48f71a6c9024ae261cc8f4af5939348a91cab1313d15544587e
5e79aa5f3fe9ba85c7d76cbcbda7e99e61d2e3d43eb915c5d88f52d4ad6ead50b4cd3c8cbe942e2a
7e24f816b8ab9fc9ff00991f55d564924d427d56fae2489d17538a1d352189af0dacf690c66375a2c9
02491bbc7f613e097d2f8d544c3e5dfcd00f6f717335c4d3c977a05dde3add88244faacf01d461a24f
e94b0346b2951e9c7212de9b7aabc595540683e40fcc0d0ff452595c5ec36715fe9b2ea964da8b49
11fab5e5cbdcc912b4842c0f03c49e82f157650cd17252ecaa868ff97de7682cb44b2bfb5b95b1d32
4d02e65b45d4156249ac2fafa4bb31ac73003f75340cdda5e1dd9462a99796f4dd61d346d6e6d51f
58f2ce99ad35bd9dca4f35eadd6911a5e0b6ba959cb079127b88d64900a71b75939f1e8aa869be5
0f3ce8b25f2689a7cf1f96a6304eda25d5dc0d7b6ef3df2cd7d69a6dea3865b59232ce12674e12284
89a346f81550d47c87f98f69abddeb5e547bab6d4592d2d6da6bad4bd5592de1d26f21637209292c
8b72f6f495e27752bc97e1e5cd542ebbe43fcc5d5b44fd10d16a37ba64e6d6eeced2ff5180dc5a5e4
7a9417570b70d1ca12583d2465814b4e54f2078f34e0aa324f29fe665d4b6d0ea70dcde5adadf691
31335ec5346ffa3bcc535f3ccaaf2123fd0cc4a0901db888f8fc2315406a3e44fcc6d7afaceeb53b7d4
2daded2ea4b9805bea8ab796f35de932da3b45711cc1f82dcf091e851590d44342f162a9c3f95ff00
3305e70964b954b9bb1717fa869335b5acb26a115869b0c77656572bf5667b7b9578991da8e87d0
61f65566bae5b6ba9e71b3d51834be5186c658f54819d846a7d398974447fde312511a39227e5f03
c722346e922a9af91acb55d3bc9ba0d86b8e64d5edac2da2bc6624b7aa9180c0934a91d0e2a9f18
d59d6435e48081b903e2a56a2b43d3be2abb15762aec55d8abb15762aec55d8abb15762aec5529
d5ff00e3a1a07fcc7bff00d40dd62aff00ffd0f68fe5632bfe58f929d7756d074b20fb1b38b15650d3dba
4823691165620042c0312dd053aef4c5528f3379bf40f28e8d36bfaddd7a5a5dbbc11cd346ad3153
753a5bc64ac619a8649156b4db154bb5dfcc9f2a7977584d03509e79356974f975882dad2da7bb6
92ce0b88ada464f451f932c9320283e2a1e54e20e2aca84b19675e6bca3ddd6a2aa0ee2be18ab1d
d1fcfde58d6e8d6b74d14520b77b59aee292d62b94bd774b76b7799556512146e1c093ff04b8aa7b
f5c8beb9f52e2fea7a66532706f4800c17897a71e5bd78d6b4df155512c4dc28ea7d4158e847c406f
b78e2abb9a72e1c87322a16bbd077a62a946bbe68d0bcb7a6dd6adab5e2c567676d35f4fe98334a
2d6da86595628c33b2a5472e2a698ab7a3799b46d7d6e3f474e7d6b3956deeeda78dedee2295e3
59515e29555c7247575dbe253c97157697e64d33597912c0cce219aeeda6778648d126b094432a
333a800f23f0ff3ad592aa3154c27bcb782092e19b9471219184639b150bcbe155a9248e8075c558
f689f989e4ff3245a1dc683a88d42d3cc504f75a55d5bc72bc2f15a71f5b9bf1e3132160ac92947e5f0
f1e58ab260e854306055855581d88a576fa31569e58a352eeeaaaaa5cb12000a3a9a9ec3c71542d
86ada7ea751672f3611c73712ac8de94d531b80c01e2dc4d0fb62a8dc55d8abb15762aec55a0001
40283c062ade2aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55
d8abb154a757ff008e8681ff0031efff00503758abffd1f67fe541afe577920f8e81a57fd41c58abc8bf3
7bf2bf5efcc2fcd98a3d26d12d22fd03a695f33cd1c8a2cae2c3cc10df3fd5e548d81b830c6ca8bc93e
17fb5c7962a92c9ff38d3e729ecafb4a9af348fa91b2bdd3ad640d3969a2baf3547e6043327a1450b
0ab41c433d1fa7c18ab7adffce33f9b6f9f557d36fb4cb5b4bfb5d7a0b1d34bcc96fa79d6759b2d4a18
a009090238d6d58bf10bfbe94fa69c7157ad7e5ff90358f2b6ade62d4f554b1bbd5750bcd4a7b0f302
bcad7b2d95fdcfd6a0b6ba42aabfe8e498d4abb7eed23e1c3e25c558bbfe4d6bacf646dd2c2db46b4
d5f47d78f95dae27b8d323bdb46b96bf92cc4b137d5d263323242abe9f3467f819db1554b4fc94b9b
3d234fd3e3b2d35651a4c161ac48af203757706a16973ea3b7a5571e9dbb00cdf1f2655fb3be2a16
10000026060f002220574d464301000000000001000000000000000e0000000020000090310100
90b10100975af902fb4df3be93677fa5fd634ed36e0de69c968665b7b68e5d6af2f2d92dcfd50c49f5
7865449e3f561e48153e2454c5530f34f95b55d7ff0032f5892dedaf2397eab15be8daa179d52d6ea
5d3aea0373156011fa286e01748ee55cce9cf87355e4aa0a6fc8fd5ff00436a1069fa7e97637fa9797
f5cd1fd36bdbabb4b7bed696d81b88e69a0e4a8c627e71c691f1e5d1d99ce2a9febbf94175733acd
a34b1c7f5dd2eead35092ee79e7ba87569beaa2df53867939b34b6e96fe9a72e34511ac6c8bcd4a
a85d63f2bfce17177757da4c9a7a5cb4babcaa2e279952e22bfd52c2f63b79c4715424915b4b14d4
e5c7d5f85645e58aa2adbc8711f36a3586970d8456b6026d5b4e48665d3cea30bcafa635bdcbc4ab
23442e6e04a541e148be04e2ab8aa023fc9ad6f4c58ae7439ecd05ce84f65abe83397fa849ad32d9
c4d7713a2725134503acdf05247114ac8cdeaf2550a7f25f5dbad5ed6f750834e9ad2da4b05485e6
9240b6d6bad5ddeca8abe82200d6970b6fc42aab71688feeb1543d9fe4b79bd2daeed350b8b49c7
e88974dd16e12f6ed5b4fe7657168d6eb084549217f511c722bc0f2fddbb471362af4fd234dbfb8f36
41afbc4f67656fa247a74968e3886b992659881e3e905e3cba7c7f09eb8ab30c55d8abb15762aec5
5d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8
aa53abffc74340ff98f7ffa81bac55fffd2f67fe54107f2bbc90477d034a3ff004e7162acbf15762aec55d
8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8ab
b15762aec55d8abb15762aec55d8ab40822a3718ab7dfa7d38abb15762aec55d8abb15762aec55

569

d8aa53abffc74341ff98f7ffa81bac55fffd3f67fe540a7e56f9207fda834affa828bc71565f8abb15762a
ec55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb15762aec5
5d8abb15762aec55d8abb15762aec55a15a6fd7156f15762aec55d8abb15762aec55d8abb154a75
7ff8e8683ff31cff00f503758abfffd4f567e59dcf9f57f2e3c9eb63a66912d92e89a68b6966d42ea295e
21691f06745b2902b1142ca1de87f69bae2aca7eb7f98fdf48d12bff6d3bbff00bc7e2aefadfe63ff00d
5a344ff00b89ddffde3f1577d6ff31ffead1a27fdc4eeff00ef1f8abbeb7f98ff00f568d13fee2777ff0078fc
55df5bfcc7ff00ab4689ff00713bbffbc7e2aefadfe63ffd5a344ffb89ddff00de3f1577d6ff0031ff00ead1
a27fdc4eeffef1f8ab7f5bfcc6ff00ab4e89ff00713bbffbc7e2aefadfe6377d2744ff00b89ddffde3f156fe
b5f989bffb89d17dbfdc9dd7fd9062ab96ebf306bf1695a301eda95d1ffb10c55b6baf3f7ec695a39f9e
a5743c3fe5c315544b9f3c6dea697a50f1e3a8dc9fd76231570b9f3c54574bd2a9de9a8dcd7fea071
554173e71a1e5a66995ed4d42e3fec8b15685cf9ca82ba5e995ef4d46e3fec87155c2e7cdf4f8b4bd
36be03519ffec87155c973e6ce3f1e99a707ee17509c8fbcd88c55c2e7cd74df4cd3abeda84fd7fe90
b156feb3e6affab669f4edfee426f0ff00982f1c55df59f34ffd5b74ff00fb884dff006458abbeb3e69ffab6
69ff00f7109ba7fd2162adfd67cd35ff008e6e9f4ffb684dff006458abbeb3e69eda6e9fff007109bfec8b
1577d67cd3ff0056dd3ffee2137fd9162ad7d67cd3ff0056cd3ffee2137fd9162adfd67cd3ff0056dd3ff
ee2137fd9162aefacf9a7feadba7ffdc426ff00b22c55afacf9a7fead9a7ffdc426ff00b22c55df59f34ffd5
b34ff00fb884dff006458abbeb3e68daba6e9fedfee426ffb22c55b171e68efa6d87fd27cdff6458ab7f5
8f33d4d74db0a76ff4f9bfec8f156feb1e65ff00ab758ffd274dff006478ab7ebf98ff00eadf635ff98e97fe
c931577afe62ff00960b2ffa4d97fec93156fd7f30ff00cb0597fd26cbff006498abbd7f30ff00cb0597fd
26cbff0064b8abbd7f30ff00cb0597fd26cbff006498ab8cfe61ed6165ff0049b2ff00d9262ab4dc7997
b69d63ff0049d37fd91e2ad7d63ccddb4eb0ff00a4f9bfec8f154af55b8f327d7b43e5a7d886faf3f102f
a5209fa95d75ff4314c55ffd90000000840010824000000180000000210c0db01000000030000000
000000000000000000000001b40000040000000340000000100000002000000000000bf000000b
f0000af4300006d43030000000000008000000080fe7fe9430000008000000080ffff9d4321000000
08000000620000000c00000001000000150000000c00000004000000150000000c000000040000
0051000000584a01000000000000000000d20100003b010000000000000000000000000000000
000005e010000ed000000500000002804000078040000e0450100000000002000cc00d30100003
c010000280000005e010000ed00000001000800000000000000000000000000000000000001000
00000000000000000ffffff00fbfbfb00d0d0d000696969006a6a6a006666660064646400686868006
b6b6b00676767006c6c6c005f5f5f00656565006d6d6d006e6e6e00707070006262620073737300
76767600747474007171710075757500808080006f6f6f00727272007f7f7f00818181007b7b7b00
88888800838383007c7c7c0084848400939393009e9e9e0094949400909090008d8d8d00f3f3f30
0fdfdfd00fefefe00f7f7f700bbbbbb00a3a3a300dbdbdb00dcdcdc00e1e1e100e0e0e000dedede00d
adada00d7d7d700dfdfdf00dddddd00d9d9d900d6d6d600d3d3d300d8d8d800d4d4d400fafafa00f8
f8f800ababab00fcfcfc00afafaf00aeaeae00c2c2c200f9f9f900b3b3b300a8a8a800c1c1c100b1b1b1
00a7a7a700f6f6f600adadad00c3c3c300e9e9e900ececec00e4e4e400f1f1f100e6e6e600f5f5f500f
2f2f200e3e3e300f0f0f000e7e7e700eaeaea00ededed00b7b7b700a5a5a500efefef0045454500d5
d5d500989898007878780042424200aaaaaa005e5e5e007e7e7e008c8c8c0055555500f4f4f400b
5b5b500acacac004b4b4b00b0b0b0003e3e3e00eeeeee00e8e8e800a0a0a0009c9c9c009f9f9f00b
9b9b9003838380099999900858585004a4a4a0029292900c7c7c700bcbcbc00c8c8c800e2e2e20
0cecece005050500056565600c4c4c4009292920047474700a4a4a4008b8b8b005d5d5d008a8a8
a0041414100bfbfbf009595950096969600cacaca005c5c5c00cbcbcb0024242400a6a6a600b8b8b
8009a9a9a00bababa0034343400d2d2d20043434300898989003a3a3a0014141400e5e5e50051
5151005a5a5a00cfcfcf007a7a7a00cdcdcd009d9d9d0037373700b2b2b200c0c0c0002525250053
5353003b3b3b0077777700bebebe0059595900828282006060600010101000a2a2a2008e8e8e0
0a1a1a10087878700ebebeb00c5c5c500a9a9a9004c4c4c00bdbdbd00c6c6c6005454540097979
700868686005252520063636300585858003f3f3f00d1d1d10049494900cccccc00797979001a1a1
a004e4e4e008f8f8f009b9b9b0036363600616161007d7d7d002f2f2f003c3c3c0091919100c9c9c9
00313131000a0a0a00b6b6b60057575700202020001c1c1c00484848001b1b1b00464646004040
40001313130022222200171717004f4f4f00161616003d3d3d005b5b5b0003030300444444002e2
e2e002d2d2d00353535000b0b0b00b4b4b400333333001e1e1e001d1d1d003939390019191900
303030001f1f1f00070707000c0c0c000d0d0d0002020200262626002c2c2c004d4d4d0008080800
0f0f0f000909090001010100111111002a2a2a00323232002b2b2b0012121200232323000505050
00404040027272700060606000e0e0e0018181800151515002121210028282800a5bb0ebb1916
5c1512121416161614141414141414141414141414141414141414141414141414141414141414
14141414141414141414141414141414141414161616161616161616161616131313131c985cbb
1c1f98bb1c1c1cc21a1b1e71aaaa1e201a171f1f171e1d7fa8c584707f61617f817fbe7c842323b28c
bf70b2a8c52384232123847c23855b70705b5b8124706b2b2ba96b706c229a226b6b9a6b7ebf6ba
99a7e22a9a9a9a9a9a9a9a9a96d6da9a96d6da9a7a7a96b6ba9a7a7a7a7a7a9a9a9a96ba9a9a9
a9a9a9a9a96b6b6b6b6b6b6b6ba9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a96b6b6b6b6b6b6b6b6b6
b6b6b6b6b6b6ba9a9a9a9a9a7a7a7a72b2b2b7e7e5757438a7e7e8a4343465e5e5e5e5e5e5e5e
3f3f3f3e3e3f3f3f45454545454545459c9c9c9c9c9c9c9cdededededededede9c9c9c9c9c9c9c9c42
42429c9c4545453c3c3c5e5eadadad434343464646468a462b2b46de060000a02e4b516a51544e
4e4e53536a6a53535353535353535353535353535353535353535353535353535353535353535
353535353535353535353535353535353536a6a6a6a6a6a6a6a535353536a6a6a6a546a536a4a

544a53544a4a4a4aab4b5558525558ab5554ab695250504d4d264f524d4d525852632926262647
3b413b472647413a413b413a3b413a3d2728282841022801012828013b02273d2701013d28013
a0101020127010101010101010101282801012828010101012828010101010101010101012801
01010101010101010101010101010101010101010101010101010101010101010101010101010
101010101010101010101010101010101282801010101010101283d3d28010101010101010101
01012801010101010128010101010101010101010101010101012828282828282828010101010
101010101010101010101010101010101012828010101012828282801010101013e0000ae0201
28013d01012801010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01012828010101280101012828280101010128012801280128010101012801012801010101280
10101010101010101012801010101280101010128280101010101010128282828010101010101
01010101013d01012701282828282828282828010101010101010101010128280101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101012828010101280101272727282828280101012801010101010
10101010101010101010101010101012828282828282828010101010101010101010101010101
0101010101010101010101010128282828010101010101012801010101010101010227013d02a
d0000920101020102270101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101280127012701282828282828280128
28010101282727010101010101282728010101282828280101010101012828010101010101010
10101010101282828010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010128010101282801010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101012828280101010101
0101012801480000663b01013d013d01010101282828280101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101280101010101010128012701270128010101010
10101010101012828010101010101010101010101282828280101010128280101010128280128
27280101010101272701012828012827010128012701010101010101010127010127270101270
10101010101010101010101010101010101010101010101282828282828282801010101010101
0101010101010101012828282828282828282828282828282828010101273d280101010101282
82828010101010128282801010101010101010101282828280101010101010101010101010101
01010101010101010101010101010101010101012828280101010101010101010101010128280
10101010101013d2801013c0000cf0101010128010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
1010101010101010101010101012828ad00009028280101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101282801010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
010101010101010101010101010101010101012828ad0000cf0101010127282701010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010127272801010101280101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
0101010101010101010101010101010101010101010101012828ad00009028280101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101

571

01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
101010101010101010101010101010101010101010101013d3d28010101012801010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
101010101010101010101010101010101010101010101010101010101012828ad00005d282801
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101013d3d280101010128010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101012828ad0
000d9010101012728270101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010127272801
01010128010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01012828ad0000d03d27010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10128280101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
1010101010101012828ad00005d28280101280128010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
010101010101010101010101012828ad0000d03d0127270101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
1010101010101010101010101413a270101010128010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101280101430000822701282801010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
101010101010101010101010101010101010101010101010101010101010
The EdfScheduler extends the PriorityScheduler and overrides the methods associated with
feasibility analysis. It also introduces some new methods that are used by applications. The
implementation approach is as follows.

All objects that are to be scheduled by the EdfScheduler run at one of three priority levels.
These are called low, medium and high.
When schedulable objects are released, they are released at the high priority level. They
immediately call the reschedule method to announce themselves to the EdfScheduler.
The EdfScheduler keeps track of the schedulable object with the closest absolute
deadline. This object has its priority set to the medium level.
When a call is made to reschedule, the EdfScheduler compares the deadline of the
calling object with that of its closest deadline. If the caller has a closer deadline, the object
with the current closest deadline has its priority set to low and the caller has its priority set to
medium.
After the end of each release, a schedulable object calls deschedule. The EdfScheduler
sets the caller's priority to high (ready for the next release), and then scans its list of
schedulable objects to find the one with the closest deadline. It sets the priority of this object
to medium.
The constructor for the class gives the appropriate priority values for low, medium and high.
It also contains the maximum number of schedulable objects to be scheduled by the
scheduler.

Consider the execution of three real-time threads (T1, T2 and T3) that are released at times t1, t2,
and t3 respectively (where t1 < t2 < t3). T2 has the closest deadline, followed by T3 and T1. Figure
10.2 shows how the priorities change over time and the resulting execution schedule.
0100090000030a54010000005d99000000001610000026060f002220574d464301000000000001
00f738000000000c00000000200000e0520100e0720100010000006c0000000000000000000000
d20100002401000000000000000000006a4000005728000020454d4600000100e07201000c0000
00010000000000000000000000000000000005000020030000c40100001a010000000000000000
000000000000e3e306006e4e0400460000002c00000020000000454d462b014001001c00000010
0000000210c0db010000006000000060000000460000008c3e0000803e0000454d462b22400400
0c000000000000001e4009000c00000000000000244001000c0000000000000030400200100000
00040000000000803f214007000c0000000000000008400005d83d0000cc3d00000210c0db0100
00000000000000000000000000000000000001000000ffd8ffe000104a464946000102010048004
80000ffed0ab050686f746f73686f7020332e30003842494d03ed000000000010004800000001000
100480000000100013842494d040d000000000004000000783842494d03f300000000000800000
000000000003842494d040a00000000000100003842494d271000000000000a00010000000000
0000013842494d03f5000000000048002f66660001006c66660006000000000001002f666600010
0a1999a0006000000000001003200000001005a00000006000000000001003500000001002d00
0000060000000000013842494d03f80000000000700000ffffffffffffffffffffffffffffffffffffffffffff03e8000000
00ffffffffffffffffffffffffffffffffffffffffffff03e800000000ffffffffffffffffffffffffffffffffffffffffffff03e800000000ffffffffffffffff
ffffffffffffffffffffffffffff03e800003842494d04080000000000100000000100000240000002400000000
03842494d0414000000000004000000023842494d040c000000000920000000010000007000000
0460000015000005be00000090400180001ffd8ffe000104a46494600010201004800480000ffee0
00e41646f626500648000000001ffdb0084000c08080809080c09090c110b0a0b11150f0c0c0f151
8131315131318110c0c0c0c0c0c110c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c
0c0c010d0b0b0d0e0d100e0e10140e0e0e14140e0e0e0e14110c0c0c0c0c11110c0c0c0c0c0c110
c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0cffc00011080046007003012200
021101031101ffdd00040007ffc4013f000001050101010101010000000000000003000102040506
0708090a0b0100010501010101010100000000000000010002030405060708090a0b100001040
1030204020507060805030c33010002110304211231054151611322718132061491a1b14223241
552c16233347282d14307259253f0e1f163733516a2b283264493546445c2a3743617d255e265f2
b384c3d375e3f3462794a485b495c4d4e4f4a5b5c5d5e5f55666768696a6b6c6d6e6f63747576777
8797a7b7c7d7e7f711000202010204040304050607070605350100021103213112044151617122
130532819114a1b14223c152d1f0332462e1728292435315637334f1250616a2b283072635c2d24
49354a317644555367465e2f2b384c3d375e3f34694a485b495c4d4e4f4a5b5c5d5e5f5566676869
6a6b6c6d6e6f62737475767778797a7b7c7ffda000c03010002110311003f00f554953cec1c8cab68
75797662d556e3632a89b09d9b373dfbbd8ddaff00cdfcf503d3effb4576fdb6e3e9997d6480d73496
9d58d0dff47b3feb96a4a6fa49249294924924a5249249294924924a6b752c7b72ba76562d369c7b
6fa6caebb9a25cc73dae636d6b773373ab73b7fd3403d3f39f858d8eecfb05b556c65f7b1ad69b5cd
0df52cf77a8eabd5737f36c46ea8fcb674dcb7e0b05b96da2c38f5ba61d606bbd263b6b98ef7d9fcb4
1733ad5b878e1b6538f9458cfb510d2e687c34dc28dce3edddfcdfa892995b8398f735cccfb6b2df53
40dac821e5a5836b99b7f43b3d8847a5e7198ea7781248f6b34dce6dbb7e8fe6edf4dbbff00c17b11
9f5f578fd1dd44873fe956e20b647a5f46c6fbb6efdffebbc629eba2c6feb38e6b6921d35bb7384b761
90fdbbfe935e929ffd0f48aeaeacdb59ea5f53e90e97fb08739a4387a7a1daddaef4ddbd5803f5979fe

573

437f2bd41bd4301c76b722b2edc5b01c27737e9b79fccfcf52aacaecbdeeadc1edda1b2d208905fb9
ba7eea4a6a6233228cc65590f692f65a5bef2e73a1ecdb2c732bfa15bbf96b4551c9c2c57755c5ea2
f6b9f938d4dd5541a011b6d750eb1eed376f6fa1b2bf77f85b91abccaad2e15873cd6e2c7803e8b87
2c77f292534ba8d7975641c916b5b8a4d0d21d66c2d3ea00f736587e935db7f9dafd45aab33ade26
1f53e996e1e732c18ae35d96c3674aac664811eef6eeabdeaf7afac7a767f9a929a3d61996d8c9aa
e6538f556e371b1fb04eeadcc74b98f6b7f46db9bfce55f4d6935cd73439a439ae1208d410551ccfb1
755c3cae9f6b5f6537d6fa6f68104070754f89fce6fb9580436af469add480dd95ed6886e9b59b59f4
7d89293a4b27a4ede91d1f0f0b2aeb720d150adb90fae0b9ac1eddedaf7ecf4e91f9eefcc52cfa32af
ea5d3722bbada29c4b2d75b8e192db8baab2a607d82c66cf4773decf6dbfa4494ea2699e102bcda
ad73db5873dd53b658d0356b841daeff003954e85d3860b3362eb2efb566df9245b1ec363bf99af6ff
008166df624a74d2492494ff00ffd1f4c7f4ee9f63fd4b31697bf5f7bab693eefa7ee2dfcffce52a69a69
b9eda98dadae01ce6b40682e25db9e76fe73a10aae9b5d578b9b75ded7bde2ade7d39b1d658fdd5
8f6bfdf76e6eff00e42b03f9f77f51bf95e9296bb1d971692e7b0b6402c716f31cedfeaa0b7a6d0c2e2
c7dad2f3b9e458e1278dcef77f255b4925352cc0a0d6e165b77a6410f9b5e047e76bb90bfc9e75fb6
bbff00620ffe4d5dbabf5697d531bda5b313c88e101d865d736e9687301101a76907f7dbbbdc929ac
daba535ce7b72c873fe9119075d4bbfd27ef3dea7b7a7ff00dcd77fec41ff00c9ab0fc77b9ae6fe8c6e
044ecf111fbcabbba56ed3d77b46f36402793ea7b7e97f35fa5fe6bfe0e9494c7d2e964069cb2e0de
01c87188ffae29578f8173c36acab2d7b65d0dc87923f377436cfe529bfa70b315b8af737634306e6
b76bbf47b4b7f3bf908acc52db2b792d3e934b4437533b47b9d3fc9494c074da1a496bad69719711
6bc49e25deef247a69652cd8c9224925c4b8924ee32e7cb9112494a49249253fffd2f55427b2edfbe
a735b20021cd2783e4f67ef22a4929a78d7666407ba05418f2c02cadc0ba003bc4d83dbee45db99f
e92bff31dff00a5510db50d0bda3e6137af4ffa46fde12535f1efcbc83681b6bf46c35fbea7b49803de3
7b98dd8e9f67a4fbabff84ff055976e67fa4abfcc77fe9553f5e8ff0048dff3825f68a3fd233fce092903a
eca6deca0b9a5d60243854eda23f79deaa26dcdff004957f98eff00d2aa62fa4f1637ef09fd7a7fd237
ef09291edcdff4957f98effd2a96dcdff4957f98effd2a89eb53fe91bf784debd1fe91bfe70494c36e6ffa
4abfcc77fe954b6e67fa4aff00cc77fe9553f5e8ff0048dff382935ec789638387883292905c3a80a1fe
8baa75f2dd9b9ae6b6247a9bbdcfff0007f414300f5626c1d45b8ed036fa471cbccfd2dfbc5a1bb76fb
15c49253fffd3eb70ec6fd907a15753f4e436b1bdc44073b6dbbac6b6df7c7e97f47ea7fc1ae83059e
9e2b1bea59681ba1f7022c20b9c46fded63fdbf47e8af9752494fd2d50a452d01d88e686801c44122
3989fa4878aca994347ab8d60810eb9a43f81f4bd4daff00f397cda924a7e92adb47daae70b30cbcb
6bdccdbc01ea6c3bb77bb7a6c5652d7da5b6d0f97191631c00f73cfe8cd8edae66bb59e9ff83f4d7c
dc924a7e90beba0e4071baa6b87a72da58e3dafd9ea7a2efe6ddb9ff004bd9ea555a54d74036edba
9702dd7731c2b1ed0269dcff004b6ffc5ffc22f9bd2494fd296b2b37d24db4b48061ac6b8b0eacfe736
3bd3fcdf67a9f98fb510b6bfb4309b3177063c06ede4135cbb76ffcdf6af99d2494fd2d88ca9b5bb6db
53c1b1e66e6b8112e71dadf55dbbd26fd1abf33d3577143407ed2c74bb5f4c40076b7cddee5f2e24
929faa925f2aa4929fffd93842494d04060000000000070005000000010100ffee000e41646f62650
0644000000001ffdb0084000403030303030403030406040304060705040405070806060706060
80a0809090909080a0a0c0c0c0c0c0a0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0104050
50807080f0a0a0f140e0e0e14140e0e0e0e14110c0c0c0c0c11110c0c0c0c0c0c110c0c0c0c0c0c0
c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0cffc000110800dc015e03011100021101031101
ffdd0004002cffc401a20000000701010101010000000000000000040503020601000708090a0b01
00020203010101010100000000000000010002030405060708090a0b100002010303020402060
7030402060273010203110400052112314151061361227181143291a10715b14223c152d1e1331
662f0247282f12543345392a2b26373c235442793a3b33617546474c3d2e2082683090a18198494
4546a4b456d355281af2e3f3c4d4e4f465758595a5b5c5d5e5f566768696a6b6c6d6e6f637475767
778797a7b7c7d7e7f738485868788898a8b8c8d8e8f82939495969798999a9b9c9d9e9f92a3a4a5
a6a7a8a9aaabacadaeafa110002020102030505040506040803036d01000211030421123141055
11361220671819132a1b1f014c1d1e1234215526272f1332434438216925325a263b2c20773d235
e2448317549308090a18192636451a2764745537f2a3b3c32829d3e3f38494a4b4c4d4e4f465758
595a5b5c5d5e5f5465666768696a6b6c6d6e6f6475767778797a7b7c7d7e7f738485868788898a8
b8c8d8e8f839495969798999a9b9c9d9e9f92a3a4a5a6a7a8a9aaabacadaeafaffda000c03010002
110311003f00f7f62aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb15762ae
c55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb15762ab6491224692460b1a02
cec760001524e2af96bfe7107f3b67fcd5d6ff352cefae5a76875f9358d1c38a04d2af6b0431af7a20b
75afbbe2afa6f54d4ed748b337b78c447ce385154727796791628d14776776551f3c5583ebdf9b3a
4e9fa7ea0b6705c43afc1a6ddea36565a9db4d6ab2b5940f70f17c41492aa87914aaaff35683155ba
77e66ce746f32eafa969a655d0fccade5a820b120c92a35d5bdac521f559403cae017dfa0db154f34
bfcc5f29eaeb7735adf05b5b4b497523752a94864b1b79648659e363f6911e260c7fd56fb2ea4aa90
d97e6fe8a66bd6d462b88ad0dd411e9422b695ee24b39ed2ca7f5e489793710d788361cb8f54f85e
8aa6b67f997a0ea8b4d2a2bbba7690c6862b7322f112470fac7813fba592508e47c51b24a1d57d29
38aa92683f9d7e5ebed274e975686ead75bb8b7b59ef2c63b6918a2dcc304a664152cd08f5d687e
dff91d7156e6fce7f2fd8cfa9dedff00a87cb70d9aea1a65f410339b8823b5bbbb9e45a310c9e9da33
46c02f2fb34fb38aa90fcdd48eb693dba9d4a5d7ff00445bac48ef12d97d7c5b89a6f8aaacd12c857f6
3d5555fda50557fffd0f7f62aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb15
762aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb15762a92f9bf44baf32f95

75af2ed95fb69575ab595c58c5a9c68257b63731347eaaa12a0b2f2a8dfae2af9a7fe71cbfe71397f2
5fcffa979b34cf39dc6a30db7afa35e698f66b047730c90c33ab3309df89472ac3e13f67fcac55f4cf99
bcb961e6bd16e743d45e68609cc6f1dcda4860b982782459619a19054a491c88ae8dfccb8ab0cd4
7f24fcb5aa5fcda9de6abacc97b7164da74f23defa9cd24b37b192421d18091e273c88f879fc4aaa71
54dd3f2cf428f46d6f454babd10ebdaa7e9dbab813289e3bff5619c3c2c100502481182956c555748
fcb4f2968b6f7d656d6864d3efada7b0fa9ccdce286caee59269ade2d832c6ef2b31058f651f0aa80a
a4ba6fe4af9774b9ad2ead758d745dd9c88c971fa4a4591edd2086dcdab940b58592de1e63edb34
48dcf9722caabd9fe4f79634fd63f4fd85dea56babc93c9717d7305d7a46f04b1c5198ae551556441
e8a37d9e6cfc99ddb9c9c9551b5fc96f2c595ee9fa8db6a3abc57fa6c76b6f1dc457a61796d6cedd2
dbeaf3189539c72a471faaa7ab22ba946c550777f903e48bcd3ae34992eb564d3a54fab416f15fc88
96b6262b980da5b803e087d2bb963e3bb70e2397c2315479fc9bf2d8bb5bc8b51d5a197eb2d7770
915e148ee1cdc2dda2ce8128eb14aa5a2afc49cdfe2df157fffd1f7f62aec55d8abb15762aec55d8ab
b15762aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb15
762aec55d8abb15762aec552ed2f4d7d3e7d4e679038d42ecdda0029c14c3145c4f8ef1d7e9c5531
c55d8abb15762aec55d8abb15762aec55ffd2f7f62ac7bce9e70b0f23e8f16b3a85add5e4335ed969
b141628924c6e351b84b587691e35a1924504f2db1560eff009e5a25fc5a8d8d8693ad47a8d859ea
33eacd14166d269ada5caf6f71ea092e383bc6eaa5427aa8eae8c392f2a2a9f27e686850c3033477
7736debd8e9b3ea023882adfea36b1dcc1148a1c156759625242fa6b24d1ad7ed71558ceaff9e369
67a18f36dbe8bac2da3e8177afe9da6ddc7676f1dedb42f640486512caf1b0fad285534a832725aaa
62acd34ef3ed9ea1adde7970e9f776fabd85ec361730cbe8814b8b2faf2dc21121e50f1063e43e2f5
55938ed5c5596e2aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb15762aec
55d8abb15762aec55d8abb15762aec55d8abb1548fcb5a95e6a4357fadb06faa6a7756905142d21
88af1069d4efd7154f315539ee20b585ee2e65486de31ca49646088a3c4b1a018aadb7bbb5bb121
b59e39c4323432989d5f84a9b32371268c3b83be2aad8abb1552b8b9b6b485ae2ee6482dd29ce5
958220e4428ab3100549a62aab8aa825f594b0cb711dcc4f6f0348934aaea511a124481981a0284
10d5fb3df156feb769f54faff00af1fd47d3f5feb3cd7d2f4b8f2e7ceb4e34df95694c55fffd3f7f62ac0bf3
7fcb3ae79b7ca30693e5edb518f58d16ffd40f1a3243a76a76f772ba998142c12225558519a8b8aa1
53f277468ae755bb8752bb8e7d6b4abfd2752655b706593559cdc5cde1fdd7f7ccc761fdd2a85511e
d8aabdb7e53e956adfb9d4aec40ff0052b8b8b7220314ba8e976c96b6d78ca63fef1562899945236
78626e1b372550179f927a3ea3a169be5dd4359d427d3f4cf2edd795223fe8c92bdade1b72677658
47ef93eab0f12008fe16e51b7238aa6fa2795aedbcf577e6ed62d025d58e9b1681a75fb4cb34f7b6e
b219dee6548d112362cdc4285a8fde7456e38ab38c55d8abb15762aec55d8abb15762aec55d8ab
b15762aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb1563be7ebdf31699e
48f30ea5e515864f33d969f7373a4c5748d240f730c4d2223aab292188e3b1c55f25ff00ce1bfe7f7e
6bfe72f9d7cc1a7ebb06930795ac629355d4a4b4b69639daf6f645486346699c053c5d8d54fd8f7c5
5f5af9e2f357d3bcb17b7da25b5c5e5ec0d04925b58a87bc7b513c7f5916ea69ca5f47d4f4d7bbd29
be2af19f335ff9fafa7d4f44b5d3bcc779e58bdd0af631fa46cd24f55ae74d9dedd3f7280ac826091b8
9394bcf829e0bf6954dac749f3159f937cfc6df4fd4ad6eaebce8da9dbc76b1cb0de4fa735f594b2c90
84a3b078564fb3bb7c4b8aa77e4b9bf32a73a91f351b8808d3ef12f808fec6a62f27fabb58514868cd
b70341cfe2f4b97ef3d4c558a68f71f9a10d8db5a5fdd79986a8fa05bdf25eb58c17501bb9ec645ba8
e71584a4d0dd10e210a246558d623c4c945543543f98faff0097b5fd1fcc5a56b31de7d46293498ad
145d58cf033468e249190486e5275796256449560f48c95fde62ad43aa7e71fa1a85b0875dfd2164
7546d0a4faac6d0ddd9c1777d146973248542cde87d5e4b725394a7d2f8be29862aa5a1cde7dd3f
5a7b6b4d235f8fcafaaeaf25daacd6a48fab3ea57725d35c893f78beac13434571cdf8ec392b62a8bd
247e614de4fd7b4cb9b0d5a29ad7cbd159da69535985b19ade5b7b75021258c86e9104d1b44a8bf
bc3fbcff751c55fffd4f7f62aec55d8abb155bcd3998f90f500e452a2bc4ed5a786d8aaec55d8abb157
62aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb15762a
ec55d8abb15762ad1008208a83b10715784ffce34fe4a37e4f2fe607af0ac4faef996ee7d38aa851fa
1e13fe863e812498abddf15762aec55d8abb15762aec55d8abb157ffd5f7f62aec55d8abb1562b128
1f99374f5ddb43b714ff56ee7ff009ab156558ab1ad5fcd17f67aeaf97f49d1a5d52f05a0bf99d6786de
3489e568945653524953d062a86b9f33f9b2d2da6ba9bca327a5046d2bd2fed09e280b1a6fe03156
4d617697f636d7f12958eea28e7456fb416450c01a77df154462aec55d8abb15639e63f344fa26a1a
4e9363a5c9aa6a3ab9b8f4228e58a0544b54123b334a40fda00018aa8fe9ff00387fd4a127fdc42d7f
ae2a9af9735a4f3168965ad240f6a2ed399b790ab3c6c09565250953420ee0e2a9a62aec55d8abb
1561d63e6df326a9689a869de56796c66e46da47beb68d9d0120315de9ca9d2b8aa2acbccdabb6
b167a4eb3a13e9a6fd6636f38ba86e54b5ba876521284541d8e2ac9f15762aec55d8abb15762aec
55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb15762aff00ffd6edfa71d4135889
e516eba6afe64eac6292513b4e9cad2eb8b904843103c4d2bc4d169be2a85befcc2f306b7e58bff2d
ccda6d8d9379385e8d3a2530dc33cda334a238236944a254b8a51115d560fdbf53157b3fe5bebda
c6b9a66ac9adbc73dd693abdee9715dc50b5b8b882d5c7a7218cb300486a1e278b5390c559962a
c614ff00c84490546fa2a1a7714bb7fd78ab27c55e21f9d114492f9b3566b99ad2e348f265cde59cf0
4f25bf0b9e77291b131b2962a4d5013b3d0f5c553dd622b0d2b58f2f596957ceb6ba869dae5d2dbfd
6a49e370f6d0b8645676e4a0d593af1e4dc680e2acfbcb7ff0028ee91dffd0adbfe4d2e2a9a62aec55

575

d8abb1579c7e6169b67aa79c3c936fa8171668daa4f2f091a107d1b55701d94a9e069f10afc43aed
8abcc7c96fe5b3f951f96dabeb9e639ec7cc9ab5be9f7715c5cea72256e6d1e36b9b8e0ee4c92b22f
a0d1fc5ea193d3e1f1b1c55edbf9726be4bd28d38d5243c7a53f7cfb6f8ab28c55d8abb15762af9e7
4ef2ff97ef3ce3e46b4bc926867d5b46d6efae4a5d4b0cbf58b2b9d3c5b48a15c0531aac9e9d17a7a
bfe5e2ac87c96a17cf13fd4dd2e3429753bbbad22f6daea5bdb4960b8d3602c51e4ad24e6acd3717
74691f9752c3157b2e2aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb1576
2aec55d8abb15762aec55fffd7f7f62a9445e59d221d626d712397ebf3c8b3480cf3341eb2c420128
80b98d5fd301392ad698aa6f8abb156334ff9085cbc746a7dd758ab26c558febde48f2cf996ee2bfd6
2d1e5bc86236e934571716cde896e7c1bd0923e4396e39568715625e6ff00cb3f275979475dbbb5
b5ba8ee2d74cbc6b771a96a1f014b772295b8d87b62acf741554d0f4c451455b48001e0046b8aa6
18abb15762aec5525f30794b40f34fd53f4e5a9b87b17792d258e69ade48da5431bf1781d1a8ca68
c2b438aa4dff2aabc900822ceeaaa4953fa4b51d8935247fa46dbe2aa9f9591243f975e598e30422d
8420558b93f0ee4b31249277249c5597e2aec55d8abb15610df945f97ed33ce34c96391dde53e95f
5f44a1e4259b8aa4e154124eca00c552693c8fe5af2979d7c973f97ed64b4796e350824537575321
89ac66908e134aea3e2507a62af50c55d8abb15762aec55d8abb15762aec55d8abb15762aec55d
8abb15762aec55d8abb15762aec55d8abfffd0f7f62aec55d8abb15637ff004df8ff00b639ff00a8a18a
b24c55d8abe6eff9cd8f33fe62792ff2887997c83aa9d36286f16cbcc09e8c337aba7ea11bc1feee8d
e9490a0aaf13f1e2a98ffce1df98bf307ce5f93b6be70fcc2d624d5af355ba9974b57820b7582c2ccfd
591408634e5c9e3762cd5ed8abe80c55d8abb15762aec55e43ff3939adf9f3caff931e61f34fe5cea2
74cf31e8621bf3388a19b95a45228b85e33a48bb46ccfd3f67157937fce07f9c3f33fcf9e4ed7b5bf3c
6b126a1e5eb09edf48f2e5bb416f0a21b78cc970c1a28d19b69225ab13fb58abeb7c55d8abb15762
aec55f9cbff3969aafe76797ff00e72334af2df937cd7ab5ada799fea571e55b382f2558adee6f47e8f9
96300fc00bab1206c164c55fa1fa65a4b61a6d9d8cf70f7535b4114325d4cc5a495a340a5dd8ee598
8a938aa2f155b2c91c31bcd2b048a352eeec68aaaa2a4927a003157947fce3d7e6ec3f9cde4cd4bc
c91b2b3d96b9a9e9c38d056da2b832da1a76adbc9156bd581c55eb38abb15762aa771710dadbcb
7573208ade046966958d15510726627c0018ab02fc94fcceb1fcdff00cbbd33cf165c50ddbdc41730
2823d29ada678cad0f8a8561ecd8abd0715762aec558bfe6479ae0f237903ccde70b82447a2e9b7
57aa0753245131451eecd40315621ff0038d5e7e9bf327f24bca3e68bdb87bad59ad3ea5aacf2ef23
ded8b1b795dfddca73ff00658abd5f15762aec55d8abb15762aec55d8abfffd1f7f62aec55d8abb156
367fe53f1ff6c73ff5143156498abb1560ff009c7e496fcc7fcadf3679262086ef58d36786c4ca2a82f15
7d4b763f29550d71546fe58f94a3f21fe5e795fc9b18df44d32d6ca53b7c534512895b6dbe27e4715
6578abb15762aec55d8aa035cd1ac3cc5a2ea3a06ab109b4cd52da6b2bc88ee1a1b88cc6e3e956
38abcfff00e71ebf2da4fca6fca4f2ff00926e87fb92b459e6d41f63cae6e677958edb6c1828f618abd3
f15762aec55d8abb1579979f7f2974ef3afe647e5cf9f6e228ccfe4ababc9e52db3c91cf6cc2151e3e9
ce2390786f8abd3715762ac0ff3a60f36de7e54f9b74ff22d81d4bcd9a869d35869968b247092f783d
0670f2b228f4d1d9f76fd9c55f317fce0b7e5afe707e56eafe6bd3bcede5e9b4ef2b6af12b417161000
0026060f002220574d464301000000000001000000000000000c00000000200000e0320100e072
010046ead668d352d366681d38452bb02eaec3971e3fbaebf67157db38abb15762af25ff009c98d5f
cd1a4fe4a79aa3f2669579ac799355b6fd136569a74125d4ea3503e84b2048959be0899dab4eb4c
55e13ff3ef55f3a687e55f34794fcd3a16a7a5e99f5a8756d12eafed26b7b797d75305c2c7248a1495
30c67883fb47157da18abb15762af1bff9ca0f21f9dff333f28f52f247915ed62d43539edcdfcb7b3bdb
462caddfd7701912424b3468bc694a13be2ac2ff00e709ff002dfcfbf967f96973a7f9ba4b49748d6e5
b7d7b40faa4ef33a477d6c8648e4568d0211c51a8a5be266c55f4c62aec55d8abb15762aec55d8ab
b157fffd2f7e092321886042121c823623ad7c3156d595d43a10cac2aac0d4107c0e2ab239e194d2
2915c8018f160db35403b763438aaa62ac6cffca7e3c3f439ff00a8a18ab24c55d8aa0757d56df45d3
a6d4ae9647861e03d38579c8cd23ac6aaabb5496603154b7fc4f3f6f2feabff0022a1ff00aad8abbfc4
f71ff52feabe1fdd41ff0055f156ff00c4d71ff52feabff22edffeabe2ad8f325c9aff00cebfaa6de31dbffd5
7c55dfe24b9a57fc3faa7fc05bd7fe4fe2ad9f31dc815fd01a99f6096ff00f55f1568f992e00afe80d53fe
45c1ff55f154bb4bfcc1b4d6e19ee34bd1b55b982daeae6c26758235e373652b41327c5283f0ba32
d7ec9fd9c551bfe299ffea5ed5bfe44c3ff0055b1577f8aa7dffe75dd5f6ff8a60ffaaf8abbfc53707fe99d
d5bc7fba83feabe2abbfc4f73b7fcebdab6fff00155bff00d57c55b1e65b93ff004cf6a9f4c76dff0055f15
6ff00c4775ff52fea9ff016dff6518abbfc4775ff0052fea9ff00016dff006518ab7fe22baffa97f53ff80b6ff
b28c55dfe23baff00a97f53ff0080b6ff00b28c5523f2af986e174fbae3a0ea6d5d4b5226896c284dec
d51bdc76c551fa979e2df47b7379ab6957b63681953eb172d670c7cdcd15793dc8153d862a9641f9
b7e59b9faa8b6492637d30b5b311dc69efeb5c328711c74bb3c98ab060a3a823c462a9eff89af37ff
9d6f55dbfc9b4dffe9e715697ccd7ac40ff000d6ac2bdcada6dff004f38ab16fcb7f31de47e4ad2517cb
baacaaa920f5156d003fbe93b35c83b7cb156493f9ba7b588cf73e5dd4e185480d24a6c235153415
66bb03ae2ad43e72172aad6fa35f4c8ee63468e4d3dc1900e5c415bb356a6f4f0c555cf996fc57fe75
9d54fd165ff006558aa9dc7982fe6826857cb7aa02e8caa48b3a12c08ff0096ac550bf9572093f2cbc
9cd42a7f42e9ea548a10cb6d1a91b57a118ab2ec55d8abb15762aec55d8abb15762afffd3ef5f985e
5bf31bea5f9836fa1585c4de5bf3a69b796bae2c16f2978efb4fd3d0c72c6050bfd6e263687d30d592
34efcb154569be62fcc6d2adad6d2dedae2d748d35748d3e5d322d2677962d36616225be8e52815
9a246b80f0a891d0f2e517ee3e2550fa2def9c7cb969611e9165791d8c69630de4c3492b7260925d
655837ee3910aff0054902a8fdd7ab5e2b1cad8aa3efbcc5f9a3f539afedeeb504b88ede5922b05d2
d086922d06def154f2b72d57bdf5223bf76857e3038aaf4c864f57ced6f291c5e4d14bb2d08a56e10f

43bf7c5593e2aec558e79ebfe51ab8dabfbfb2dbfe8f21c5591e2a83d574db3d62c26d3b500cd6537
1f5911da22ca8c1e8590a9a1a51857e25f87a62af03f22cb6169f945a5eb86e5e2d42ebcd105bdc5c
3cf37278e1f333ac4ac19ba0b76ee29e971afc0a3157d118abb15762aec55e7df941ff001c2d7bc3fc
51e64a7fdc5ee7157a0e2aec55d8abc266d03c87a77e6879ba4d479db699a1f97f4cd5679a19ee5
648e796e35437ae5a37e4cd2c52462551f132345fe462acd7f267f457f8253f425f7d77497bdbe9ac
e3532bc56904f72f2c7691b4db95811d63dbe0560ca9f0a8c55e838abb15762aec558ff942bfa3af6
bff00575d53fea3e6c551baf595b5e699399ed45dcb6e924f6a9e9895d6758d955a307a3d1885237
df1579458f967523f97de40d0e1d2eeb4ef34db5b68526a1fe870b40d2686d6e5edefa62a4aa2942c
85594b701e9b37d9655ed58abb15629f96d4ff0005697c7ecd27a57fe6224c5534f33e9b67a9e8b7
71de5aade082392782164f57f7e91b70654a1ab027e1dbafbe2af29f2a795e4d3bc9df92aada2496d
ab69f2583eb2bf54649ada58f40b8b395a7f86a843fa71333753c462af6dc55d8ab0ffca8ff00c967e5
2ffb655a7fc9a5c559862aec55d8abb15762aec55d8abb157fffd4f7f62aec55d8abb15638ca7fc791b
763a438afcae53fae2ac8f15762a81d6349b4d734d9f4abd322db5c050cd048d0caa5183ab23a105
5959410462ac7ff00c016dff57fd7ff00ee2971fd71577f802dbfeaff00afff00dc56e3fae2aeff00005b7f
d5ff005fff00b8a5c7f5c55dff002afedbfeaffaff00fdc56e3fae2aeff957f6dff57fd7ff00ee2b71fd71577f8
02dbfeaff00af7fdc56e3fae2aeff00957f6dff0057fd7ffee2b71fd71541e9df957a269114b0699ab6b96
b0cf3cf793247aadd51ae6ee569a690d58fc4eecccdee715467f802dba7e9fd7fc3fe3ab71fd71577fc
abfb6a53f4febfff00715b8feb8ab47f2f6d48a7f883cc1ff716b9ff009ab1568fe5e5a1a7fcec1e60dbfe
d6f75ff3562ad7fcabbb4ffa983cc1ff00717baff9ab156c7e5e598ffa5ff980ff00dbdeeffe6bc55b1f97b
64053f4eebe4529beaf795fbf9e2ad1fcbbb12493aef9837f0d62f47ea931577fcabbb1e9fa77cc1ff71
9bdff00aa98aa941f963a3daa3456fac6bf146f249332aeb37e019267323b7f7bd5989638aaaffcabb
d3e943adf983fee357e0edf297156c7e5de9c3fe975afff00dc6b50ff00aad8ab43f2eb4c06bfa67cc1f
2fd37a8ff00d56c55bff9577a6529fa635ff1ff008ee6a3ff0055f1551b1fcafd034db58ecac750d720b4
8aa238535bd482ad496341ebf726b8aa287e5fe96053f4aeba7e7adea5ff006518ab63c83a58ff00a
59eb9ff0071bd4bfeca31577f8074bffab9eb9ff71bd4bfeca3156ffc05a5ff00d5cf5cff00b8dea5ff0065
18aa79a469361a0e9565a2e9717a1a6e9f0c76d69096672b144a154167258d00eac6b8aa371576
2aec55d8abb15762aec55d8abfffd5f7f62aec55d8abb15481ff00e53683df4a9b7f95c45fd7154ff157
62aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb15762a
ec55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55ffd6f753798f455f
312794cddaff00885eccea6b61c5cbfd4d6410996b4e3c799e3d7ae2a9a62aec55d8ab1f92bfe37b7
f03a54ff85cc38ab20c55d8abb15762aec55d8abb15762aec55d8ab0a87cdde6bd4ae350fd07e598
6eec2c6f2e2c16e67d496dde47b5731bb7a6209388e40d2add315557d7bf3010166f28da040092c
75850001e35b5c554e2f32f9e67e5e8795ec25e340dc35a46a16dc5696a7ae2aaa75cfcc3ffa946d0
ffdbe07fd9262aefd39f987ff00528da7fdc607fd9262ad7e9cfcc3ff00a942d3fee303fec9315425ef9b
bcf56375a75a4de51b5f53539dad6dcaeaeb40e904b707956d46dc626e95df1545aebfe7d66e03ca
d63cc56abfa641229d76faa62ab8eb7e7f552cde55b2551b92758a0a7fd2262ad2ebde7c6a71f2bd
89a9e229ac03b815a7fbc9e18aa174af35f9eb58d36d355b5f29da0b6bc8927883eae03059072150
2d08aefe38aa2ff4d7e61d36f29d957fedb1ff006678aa01fce7e6d4bcfd1cfa1e8eba8542fd55b5f413
548a81c3ea7cab4f6c55150f983f302e2259edfcada74b0b8aa489adf2561e208b220e2aa77de65fc
c1b0b2b9bf9fca56261b589e7902eb24b718d4b1a56c86f418ab2ed3af1351d3ed3508d4a25dc31c
ea877204a81c034f0ae2a89c55d8abb15762aec55d8abb15762aec55d8abb15762aec55ffd7f5ceb
1a3799ed3f34d7ceda5e94ba9e9a9e5a9b4948d6e22b790deb5ea5c2a9f53a2155ddc569fca7156
3375f97df98f7d08b9fae4306b5685a694c9712bd9ea175fa47d5477442191059bcb091452a6450bf
0c48d8ab3dfcb9f2deb9e58f2ea69fe64bf4d4b56561135d461955aded516dadc90c4fc6d144b24bff
16bbf6a62acbb154865ff0094d6d76ffa55dcefff00471062a9f62aec55d8abb15762aec55d8abb157
62aec55897902bf54d76bff0057ed5bfea29f1564f79676ba85acd637b12dc59dc23453c120e48f1b
8a32b03d411b118abc5fc9de563a4f93f4b31f96e5b0d51fcdd35c5d46966229c5a0d62ee6826902
01fbb58251c5bf611b8ff938abdbb15762aec558d799abfa73c9fb57fdca4dff0074cbcc55e74fe44b1
b7f397e65ea56be5c28f268b6bfa1af63b560d35dcf6fa80bb10ca055ddccc82415ab315fe514559ce
8eba5ebfe5f4f29ebba6cd38b1d3f4d7d46d6faddfd194bc62455f885242af11f513b1d987c58abcafc
8be4c9f4dfcbff00cbab187cbb25879c2d2e6cb50bf173a74a9c45bdd08ee4493ad05bcde91e5ccfc5
3a47e97c68c462af63f20ffca13e5fff00980b7f6ff758c559162af3a9bcaa47e6dfe9e6d1126d0a5d0f
d26bc11c0c83524befac02c1983f32a0157e34ff002b154d3f2ab49d4342fcbed0b47d52cdb4fbfb38
5a29acdbd3263a4ae40fdd33252845389c553ef318e5e5ed5d7c6cae47df1362ab3cafff0028ce8d4
e9f51b5ff00932b8aa6d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abfffd0f7f62aec5
5d8abb154864a1f3adb6e2a34bb8dbbef7107f4c553ec55d8abb15762aec55d8abb15762aec55d8
aa493f93bcab733cb733e8f68f713c8669e430a72795babb103763dce2aa47c8de4f3d744b3ff912b
fd31577f81bc9fb7fb84b3db71fb95fe98ab43c87e4c1d342b215353fb84ea7bf4c55dfe03f267fd58a
cbfe44276fa3156bfc03e4adff00dc058efd7f709fd3156bfe55ff00923d48e5ff000fd87ab112d149f57
8f921208254d2a09048db1556ff0005f94e94fd0f6b4ff8c4b8ab47c93e516143a2da107a8f497155a
de46f2731ab689664f89854ff000c556c5e42f25411ac3068363142a28b1a408aa00ec001418ab6d
e44f26b54b68564c49a9ac2877fbb156ffc0de4effab1d97fc894fe98ab8f91bc9c4f23a1d913e3e827f
4c55a3e44f25b2b2368160c8e38b29b78c8208a10411b8c553f8e38e18d2289047146a151140555

577

55140001d0018aaec55d8abb15762aec55d8abb15762aec55d8abb15762aec55ffd1f7f62aec55d8
abb1563b22d3cf76ef4fb5a4cc2bfeadcc5fd7156458abb15762aec55d8abb15762aec55d8abb1576
2aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb15762ae
c55d8abb15762aec55d8abb15762aff00ffd2f7f62aec55d8abb1548a603fc67667bfe8bbaffa88b6c5
53dc55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb15762ae
c55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8ab4485059880a05493b00062a84b
6d4adeeeea4b6b7591d12186e52ec46df55963b82fc7d29a9c1c8e1560a7e10c84fdb5c55198abb1
5762afffd3f7f62aec55d8abb154835ef2b7e9cbcb5bf8757d4348bbb58e48049a73c29ea47332315
713433034318a5298aa5bfe04bfff00a9d7cc3d29fdf58ffd91e2a916b7a6dbe8f25dd9cbe79f30cdac
5b69d3eacba6433d88b896d6d8518a72b455dd8711c986f8aa2b42f2acfaf687a6eb9079c7ccb141
a9dac17b14525cd9f344b98d65556a5ad2a0350d31547ffcabebbffa9d3cc7ff004936bff64b8ab7ff0
02afeebfea73f31ff00d255b7fd92e2aeff00957d75ff00539f98ff00e92adbfec971577fcabebaff00a9cf
cc7ff4956dff0064d8aa0f56f29c3a1e9979aceabe79f315b699610c9737970d736e56386252eec42d
a926807618aa4b63a65fddf9a7fc3d26b9e6cb7b39ed66bcd37577bcb2305ca5abc51ca382dbfa91
ef3218d9d692af22bd31564a7f2f6e48a7f8cfcc7f45ddb57fea1b1577fcabebaad7fc67e63ffa4ab6ff0
0b26c55aff957773bff00cee9e64dff00e5eedffec9b155bff2ae6e3fea75f32f87fbd96fff0064d8ab7ff2
aeee77ff009dd3cc9bff00cbe5bffd9362aeff009575715aff008d3ccbff004996ff00f64d8aa4ba9e8ba
3e83736767a97e60f99229f50996d6dc7d65261eb48eb128764b4658b93baa2b485179b05af2c55
391f971700d7fc6be66ffa4d83fec9b1571fcb9b83ff004da7997fe9320ffb26c55bff009575715aff008
d3ccbff0049907fd9362ae3f973706bff003ba79977f0bd807fd8be2ae3f973315e3fe33f32f8d7ebb0d
7fea1f155bff2ada5efe73f337bff00a7c7d853fdf18ab7ff002ad989a9f387994ed4a7e91503f08862ad
8fcb7a01ff003b779976effa4bc7fe79e2ab4fe59c67fe9adf3376e9aa38e829fc98ab63f2ce1ad4f9ab
cca77aff00c75a5fe031568fe59407af9abccde1b6af30fd431577fcab2b7ffa9a7ccdff007179f155c3f
2d2d87fd34fe653ff006f7b8feb8abbfe55a5b529fe27f32fcff4bdc7f5c5570fcb6b5000ff0012f98cd3b
9d5ee7fae2ae1f96d6a29ff003b2f98cd3c757b9dfe7be2ae3f96f6a41ff9d93cc62bdc6af73fd71555b
6fcbdb6b6b88ae07987cc12185d6411cbaadc3c6c548346526854d3707154efccf6126a9e5ad674c
86312cd7963736f1c4760cd2c2c8149f727157ced07947cd26d740d3ed743d5ed7498a0f215bdf59
833c11a0b0babefd2a38aca00511bc7eb05f85c15fb4c3655434ef2cf9e34ad2d17f426b73e9f2d9da
45af592d669e7b6b6d66ee211a25cbb2bb4768f09f4ff006edd780a9a2e2afa1bc8fa73691e50d174
b6faf0fa9da45028d5e54b8d40246bc57eb124755693881ce84efdce2a9fe2afffd4f7f62aec55d8abb
15762aec55897987ca57daaeb32ead617b0db8b9d1af345b986685a527eb043c322b2c894e0dcb
9a90dcd4fc3c3ae2a9bf95b489f40f2ce8da15ccc9733e97656d6525c46863490db44b17308598a8
3c6b4e47e78aa6d8abb15762aec552af3368c3cc7e5cd5fcbe6636e355b3b8b2f5c0e463fac44d1f2
e3515a72ad2b8ab1ed0bcb5e77b3f36dcebbae7982c2f74796da3b6874eb6d35edee2231a28a0b8
7ba97f765f9c857d3e4599417e2831566d8abb15762aec55d8abb1578fdbf913cc7159ea5a2c3672
d8cb75e69b9f315aead6b7510b6f4cea097710b988b73914a12a6228c39a7ecfc0f8abd8315762ae
c55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55f
ffd5f7f62aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb1
5762aec55d8abb15762aec55d8aba8315762aec55d8abb15762aec55d8abb15762aec55d8abb15
762aec55d8abb157ffd6f7f62aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb
15762aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb157
62aec55d8abb15762aec55d8abb157ffd7f7f62aec55d8abb15762aec55d8abb15762aec55d8abb1
5762aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb1576
2aec55d8abb15762aec55d8abb15762aec55d8abb157ffd0efbf961f99fe71d46433ebb70d7fa7c16
5a6c37905da416d78fa8ea9ab1b38ee6d96141cad84468c48de68d9168dcf1566d1fe6ccb2de2c0b
a13fa01034d3fd692ab248fa8c68aabc2ac0be9cc0b7c341229f8a8c315438fcd69cdb3ea575a34f0
4d676d79726c21ba8a48e558ac2cb5040ccd1290e63ba0a2878ababd4ba956c5534b7fcc8bb9b52
b1d20e86ffa427bb96d2ed239fd448961bb7b579236f487a8138ac9203e9f0471d71567f8abb1560d
2685a6f983cf5ada6af1c9711d9d8699f558fd79a348cccf79ccaac6ea2adc56a7bd062a98ff00cabcf
2856bfa3dabe3f59b9f9ffbf715587f2dbc9641074d241ebfe9173ff55715618743f2e1f3baf93dfc9b42
6da5bf8af9b5297e2b38e68edd9c4618d096901085abc47f37c38aa67e50f277e5f79b7cb5a6f9920
d00da45a942265b792e677740491c4959687a76c5538ff9551f97e401fa1968bd07af71b7fc94c55b
ff009551f97fff005665ff0091d71ff5531562be62fcb5f255b79abc9f696fa57a76b7f757915ec4b3dc0
49522b09e44571eaee0328615ee31564e7f293f2ecb163a1c658f52659ea6bb7fbf31552b9fca8f20
436d3496fe5d8ee278d19e2b7134c8647504aaf269282a7604f4c55e676717956fb48f316b107e59
a3c3e59bcbeb0bf51a99a9934c00cfc3950b1607f7200f8dbe17317dac55ea30fe54fe5db448e3cbf0
a865042bb4bc854568417eb8aaeff954ff00977ff56083fe0a5ff9af154bf5efcaef20dbe85aa5c41a1c
293c56970f1bab4a0ab2c4c41079ec4118aa417fe5cf2a796bf2da0f35af95e3d59acf4a8f50d4226b
992073143686691f9317e4c4ad00a6ecdd46f8aab5be87e565f30e8fe5dd5fc9b6964fab25e35bbae
a1eb352d143f3588f02d1b295dfedabec63e1fbcc558ddcd8796fcbba5457b2f9421d663bef32dd68
8b712de49018a4bbd69ac6d528c2425143027a0544db91c5595e8fe56f2bdef986e3cbdaaf91d34d
29651dfc1702e8dca32bc86168e4e04046e4b54a33fa89bfc2cac98aa61e6bfcbcf2558f96755b9b5
d2238a78edd9d24479558328f84821ebb62a9cffcab3f22ff00d59a2a56b4e72d2bff00078ab0df38e
89e59f2adfe8b6567e4983518b5abb8f4cb4b86bd6b602ea68ae27e254ac87885b7ddbc5d47f3515
47e81e58f236b1ac6b7a25cf966d2d2ef466b632a25d1b86e37719913d4552bc1c05ad3e25a15e2

e7e20aab223f961e416d9b42b73f32fdbfd962ac4ff30ff2f3c95a67961af2c74786dee46a1a4c7eac6
d22b709b53b68a45a86ad191995bc41c55957fcaadfcbeffab05b6fecff00f3562ac3fcebe5df2b795a
eb48b7b0f2358ea51eb1771e9b6f2c976d6b4bb9a39a55523d397e1e30eede2cbb1f8a8aa6fa1793
3c81acdc6af6927956ded2e347ba8ece75663206792d20ba24153d07afc3e6b5c5539ff955df97dff5
60b5fb9bfe6ac55dff002abbf2fbfeac16bf737fcd58aaff002b689a5797f5dd734ed1ad56cec7d3b29b
d08cb70f51c4c19a849a121457e58ab2cc55d8abb15762aec55d8abb15762aff00ffd1f57db5bfe4e5
ceb36be46b5d36c24922b0bdb6b56458cdbac497ab1dd592c9cf97a82e00730d3e165f53ed0c553f
83ca1f96e5921b4b0d3c33b5228a0755ab5bfaae42aa30dd3eb32b1a74f55cfede2a96ebba57e57e
8ba5c17f77a75b5c595f4d0e9d025bb2c865faf1834ca283200ca10449271ad228fa7c34c555af7f2b
f4cb8f34597986d665b586d58cc6d522265172d334ef2c538914a1959bf7c19640e176e1f1555679
8abb156177a3ccda479b752d534cd08eaf61a8d9d8c4b2c77505b98e4b47b92cacb2907712a9046
2aae3cc5e732687c99281e2751b3fe0d8abbfc45e74a8ff009d364a1ea7f48da7f5c552465f353f9ae
3f37ff842e57518b4f7d2521fd2963f57304b324ecc4712dc8320a7c54a7ece2abbcadfe2bf2968163
e5cd3bca1712d8e9f198a092e754b26998162df114555ea7b0c55371e62f3c1153e4c606bd3f49da
f4fbb1573798bcf23a79309e9ff004b3b5fe98aa4dabc9e7dd4b5cf2eeab1f94d638f469ee27991b53
b7ab8b8b496dc05a29dc190135c553bfd3fe77a54f93c0dfa7e93b7afcfece2abbf4f79db7ff9d457fee
2707fcd18ab061e4bf32c365a85869da66a3a726a9adcde65bb9a0d534e76377704318b8cf652a1
855c2baa952dc957e3c559c43ac79d628922ff000b8938285f51f5384bb5052a4fa6373df1554fd37
e74affca2b1ff00dc4a2ffaa78aa1b53bef3a6a1a6de58af96628deea0920566d4a3a032a15a9a447a
57154aee34df34ea7e487f256a5a084b6b9d33f44dddc5b6a512c9c1a0f41da32f03006952b55c55
12d65e689f51b0d46f3476b93a51f52c6092fed963498c0f6ed2fc16aac4b248d505b8d4fc2b8aa49
2f94bccba8e8e9a56ada385107981bccb6f259ea3129f563d49b508237f56d9c10095120037a7c2d
8aa69a669be70d235cd4b5c16b777ffa51cbbd85d6a5666da0278d045c2ce3938a05a22bc8e1793
7ed331c5519af5c79d756d1af74d8bcb71249770b44aeda8c7c54b6d5348bb62a987e9af397fd4af
1ff00dc462ffaa78aa4bafd8f993cc971a25cde797de07d07514d5ad560d4adc2bcf1c52c0164e5039
285666a85e27fcac5511a75bf9a2c351bbd5a4d0feb9a95e471dbc975717f6cae2de079648a2021b
68c510ccf42416f16c55361ab79bcff00d33910ff00b7827fd52c5523f37c1e75f32688da55be836f04
86eac6e7d493505e3c6caf61ba61b424d5844547b9c553f3aa79b29b797e127c3f482ffd51c5527d7
b4dd77cc526912dee8a227d13508b56b4f47518d435c431c91857e56cd542b23540a1ff002b1557
d32dbcc3a5deead7f068caf2eb37297b74926a0855254b78ad808f8db8217842bd4b7c55c5533fd2
5e6aff00ab141ff49e3fea862aefd25e6aff00ab141ff49e3fea862ade896daafe94d4f54d52d63b3fad
a5b450c31cdf583fe8fea5589e080579ec3154f715762aec55d8abb15762aec55d8abfffd2ebb6bfa3
ff00c7517aff0056f57ebfa9fd4b971f53d5ff001ddbd78d7fdd94afd9df8e2a97e91f52fd13a57d5ff467
0fd016bfa2febdeb7d53f4afadaa72e3f57fdd57d2afd63eb1fb3c3b62aa1e58fd25f51d67d6faafa5fa7
2d3eaff0059e55f53fc4d6d5faafb57973e3b7f73c76c55f5c62aec55d8abb15762aec55d8abb15762
aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb15762aec
55d8abb15762aec55d8abb15762aec55d8abb15762aff00ffd900000840010824000000180000000
210c0db01000000030000000000000000000000000000001b40000040000000340000000100000
002000000000000bf000000bf0000af4300005c43030000000000008000000080fe7fe9430000008
000000080ff7f92432100000008000000620000000c00000001000000150000000c000000040000
00150000000c0000000400000051000000f03201000000000000000000d2010000240100000000
00000000000000000000000000005e010000dc000000500000002004000070040000802e010000
0000002000cc00d301000025010000280000005e010000dc000000010008000000000000000000
0000000000000000fe0000000000000000000000ffffff00fafafa00fdfdfd00fefefe00d9d9d9009e9e9
e00fbfbfb00fcfcfc00f9f9f9009393930052525200f8f8f800f7f7f7001610000026060f002220574d464
301000000000001000000000000000c00000000200000e0120100e07201003a3a3a0006060600d
bdbdb0002020200b2b2b200dcdcdc009b9b9b00f6f6f6009d9d9d00a9a9a900eeeeee0090909000
ececec00e5e5e50099999900f4f4f400b9b9b900a1a1a10091919100c9c9c900ababab0007070700
70707000e7e7e700585858005e5e5e00636363006c6c6c00dedede00e6e6e6005a5a5a00d5d5d5
00808080005f5f5f00686868000101010025252500eaeaea00cacaca00aaaaaa00e9e9e900edede
d00bdbdbd00f1f1f1006161610065656500e8e8e800404040009a9a9a00c0c0c000c6c6c600d0d0d
000bebebe0054545400b6b6b600b0b0b000e3e3e300b3b3b300d6d6d600efefef0066666600f3f3f
300ebebeb00b4b4b400a2a2a200c4c4c400dddddd00bababa00f0f0f00078787800afafaf00212121
0003030300c3c3c300a5a5a500c7c7c7008a8a8a00959595007d7d7d009f9f9f006b6b6b004b4b4b
00cdcdcd006d6d6d00e1e1e1006a6a6a00d2d2d20085858500bbbbbb005555550084848400d1d1
d100717171008c8c8c00e4e4e400dfdfdf004949490069696900a8a8a800acacac007e7e7e008d8d
8d00b5b5b500aeaeae005c5c5c002828280079797900c1c1c100535353000505050096969600c2
c2c200676767005b5b5b007a7a7a008989890075757500a7a7a7008e8e8e008f8f8f00b8b8b8004
5454500cecece008b8b8b00cbcbcb00f5f5f5002c2c2c007f7f7f00adadad003f3f3f00424242009c9c
9c00989898007b7b7b00626262005656560087878700595959002727270092929200c8c8c80030
303000767676004a4a4a00040404007474740046464600cccccc0057575700f2f2f20050505000da
dada00a3a3a30036363600b7b7b7004e4e4e003b3b3b00777777002a2a2a00606060003c3c3c00
0f0f0f00bfbfbf00a4a4a400646464006e6e6e00d3d3d300818181008686860088888800a6a6a600

579

97979700a0a0a0004444440034343400e2e2e200d8d8d800d4d4d4006f6f6f00828282001c1c1c0
0cfcfcf00121212002e2e2e0029292900b1b1b100171717004c4c4c00737373004f4f4f00e0e0e000
1616160083838300515151003838380094949400414141003333330035353500bcbcbc00474747
00131313002d2d2d00c5c5c500d7d7d7001b1b1b001d1d1d000909090008080800727272004848
480039393900373737005d5d5d001e1e1e0043434300202020000e0e0e007c7c7c00242424003e
3e3e001f1f1f0032323200222222003d3d3d00191919002f2f2f001a1a1a000c0c0c0010101000111
111000d0d0d00151515000b0b0b0026262600141414000a0a0a00232323004d4d4d002b2b2b00
01cf88912807804b9f22014a5a86c7ad4e2c2ea68d1ba0d90101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101ffff156718a63a01e84b784736cf0d0125a8742884b7be01305001010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
1010101010101ffff0943335d2f012e529f860127a872746d886e5b5b130130da010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
101010101010101010101ffff4be5694e6e75e302769c21353f30475a454a4d5716da6ecc0101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101ffffa30e458ee3065701643fb00945d50315c74201079a8326b
e01080107010901040101010101010101010101010101010103010d0101010104010101010101
04040304010101040404030103010108010304040101030107010101010404010104040104030
10403010101070107010801010101030304040301040304040104040401010107010901040301
01010403010101040404040101010104010404030401040408010201040301040301010404010
10301040404010107010108040808010201010401010704040404040404040403040304010401
010301040102010401010101010101010108010801010201040404030401010104010104010c01
07030301090101010101010101010101010101010101010101010104010101080101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
010101010101010101010101010101010101ffff0369085a2c010301010201010107010401010301
0304a9100101070102010c01010101010101010101010101010101010804010808070104010101
04040101010401010403030401010101040701010101010404040101010303040101010101010
10101010103010801010301010104010401010101040401010101010101010108080304080103
07010108010101010101010101010101040101010108040101090101070401040402080108030
107010108010801010307010d0101070101040101030708080101010101010101010103030101
010c04070104010101030103040404010101010404010103040107010101010101010101040203
0104010101010c0101070403040404040404040404040404040404040103010107070101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101ffff0101033ec10101040701010804010d04040
8010102496fbd01040101070104080101010101010101010101010101010101010d7c991992b90
a0a0a0a5b9214161414143e9292141692d1195b16925b4e0a7c3e160614911c3e1c91ba1f06160
6ba1f5d1606913e91ba834e1683165417b8a6b8718e83587054758e757554758e7574445445477

48686a844744444741251511e1e1e1e5151444266384f7d4f7d40577d7d57a1d940a1215759b4a
14f604fb4be57a14140a1c334bf408a387979d57d57b03f3f6642d5d5d5d5d5d5d5d5d51e4238864f
79594f34d99a3f34a1595959599a213434348a21d9349a608ac36964b4b46469c360b42d48b464a
5da2d41da4805dabf050505050505050505050505050505050505a541a51a01010407010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101ffff0701080101020101010102010801010101010
301010403010401030101030101010101010101010101010101010101010103622954a8444744
744712124d7444c71212457554c74d171258704775b1b84d71581f707175b1b14eb11735b85870
8370b8b158b14ea658b871b865431fb1b11f4eb8b8a6a683b1a6a6a6b1b1b1a6ba71b10691835d
22171fbab8b1b117585858b1b1b1b15858b817b1a67058065cb3b8351771831f4754b85422b1757
1228ea47cc7702254832245757535351f45b81717b8178320ab707070707070707017a68e45223
53583548eb8227022837135353522227171718e35352222a6cf5a8e8e7554757135178e3575757
1c78e17715466707144757175757575757575757575757575757575c735ba8e0c0101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
0101010101010101010101010101010101010101ffff0201041501010d010107010101070104010c
040104020101010901a830731b0401010101010101010101010101010101010850c10101070101
010101010101010401010104030101010101031d0104010c030103070301010103040101010401
010101040104080403030101217204010101040303040101010101010101010101070201010c01
4b0901010103070101040404030304040401010101010103384e0101080301014b0c010c1d0801
010308241b0103018b010801010908010408010401010101bd3504040404040404040301010d0
1a30103014901040108010304040404030303030303010101046f6401010101010101040201010
c01080101070115010308020101010101010101010101010101010101040110120301080401010
10101010101010101010101010101010101010101010101010101010101010101010101010101
010101010101010101010101010101010101010101ffff010301010801010904010c010801010107
010108010808080301257e8a60443c01010101010101010101010101010101040450c101020301
030304010101010104010101010401010101090a3b1a010d4aba8b01010304040104030101080
3010401040401010301010103039a82010701010101010101040101010101010101022763094cd
6fca2c3020107010101010101010101010101010101010701011214040101010910a4740d42851
27d010803ca1b08011feeb4039cee2cc10c01080308040307012b5801010101010101010103010
1cc9d85044f8d229a01090101010101010101040401010108020127b4010101010101010101020
c011db3850201cc6148020101030404040404040404040404040404040407012a8e08010103010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101ffff473852014fda4c756dbf10a8cc7921405
76245503f5950516cd5bf70172281460101010101010101010101010101010101012ab501010108
01010101040403080101040401010104010901063a0901013b5d0801030101010101040404030
40101010104010104010701010840df01040404040101040303010404040101010401a43b01027
0541a4807010401010407010101040401010104010104070301125d040804040139e537010c03b
db50c0108ca6c080175bc03014fce2540090101010101040804bdb801010101010101010101030
1086e580104090889370101090101010101010404030401010401b28801010101010101010101
0401037f920101497f490108030701010101010101010101010101010101010305710101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
101010101010101010101010101010101010101010101ffffcb30011cc52a8963b5adbfc9529f8e54
781a7a2b5c3eda7f4b5e5744308066010101010101010101010101010101010103042ac1030102
01010101010101010101010404010101010701013e3a0104046f4e010108010101010101010101
010101010104010104010103010121ab01010103080101080301010101010101010108955e080
104b92a010103010308010101010101010101010101030401040147910101010103397a370701
01ccb28b0803df62010866f01d01088851010107010401030101016d17010101010101010101030
10104bba808070152432508020101010101010101010107010404047e41010101010101010404
03030101958303030cb218010301010101010101010101010101010101010103012a7101080801
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101feff930abde27903b309406b09760791
344f16015e0cb93836b501198813814f39010101010101010101010101010101010108011368010
1020104010301010301040104040101010104010401b1b20109014a4501010108040101040803
0101010401010101010101010101010760ab01010101010804010801010101090101040101262
40101043c9902010801010204010101010101010101010c010101010154ba04010c080118a94c0
101bd7f96010407531b07014dec150301019110018b010301010304046db801030401010403010
4010101099d5401010db2c00204040201040101080401040108010401033b88010101010104010
10301020101761f040137634c04010104040404040404040404040404040404040104137501030
10801010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101ffffc072e31c01019f6c6096397e01
1421421409c00919792b5c040a2d7c7051140101010101010101010101010101010101010813ce
01010101010104010104010101010101010104040301098394040107634d01040101010804040
40101010101040404040404040404030101d9df010104040103010108010403040303080115097

581

f3b030901015e2a02010101010103040404040404040403040107080801c71401090101150dbb3
915010c83570101022925018bd57701010302b15a040103030104040101134e010104010104010
10801020d01d6540404018e4701040101010401010101010101070101010494c30304010403030
4040101070301278303088bad5201040803010101010101010101010101010101010701cc75040
80401010101010101010101010101010101010101010101010101010101010101010101010101
0101010101010101010101010101010101010101010101010101ffff293aab24500130a3d5811ba
adadf487161332c08ab792a0b62802a1c218e2e0c0101010101010101010101010101010108036
d2e01010103040103040403010401010101040404040122c7b728134f097a70030104030101030
1010101010101010101010101010101070408429c030301040403010103040104030101010c176
03d2864854e6090bd04010104010108010101010101010103010403010401713e030108074d21
906d75163c1cdf0101039c33be547598108306136f19070c010101080701012a700101010404010
101010c0106daaa1f5738be3f72010801030104010104010101010101090101b2da010101010101
010101020166bd431f57591b974901080101040404040404040404040404040404040101107104
01040101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101a4a4c020020b7f02201d47443
c0a58e80dd51472841d22462a149293074654ce450401010101010101010101010101010101030
12a2e03080401010104010104010101010101010101010169195d85a68a15b8bf0103030101010
3040404040404040101010101010101010101037d800401010101040101040101010101040101
51d18519b9601e7e5409010308040401010101010101010101010107010103018e5d01010103b
1d18da696509261bf030101293c3c6873df1c12a5535e33010109010101010101ccb10401010101
01010401010da606805a816d226a4f02010901010401010404010402010101030194c301010101
01010101010109755a9cb5615952140d0403010701010101010101010101010101010101010710
8e010103040101010101010101010101010101010101010101010101010101010101010101010
101010101010101010101010101010101010101010101010101010101ffffb25a01432c010404010
1030c0401010408070101010407010102010101070108010101010101010101010101010101010
1072a6501040103040401010101040403030404040404010c01040101090301010101070101080
80101010101010101010101010101010103080104409f010301010101040301010301030201030
10404018b01010101070101080101010404010101010101010103030801080201c7ba030707010
3010302080107030c010415ab2b010801010801010d01070103010408010108012583010101010
101010107010108010101040101150101030304010101010101010101070101080194da040404
0404040404010801090c0407010701150101010901040404040404040404040404040404040304
bd750104010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101ffff2c9f4d618a0101020
10c0101010c010101030307a605010304010308090101040101010101010101010101010101010
10401cc80040101010101010101010101010101010101010401030104010101080104010101030
3010104040304040403040404040404040401010801599c0101080304010403010401020101010
8030101010101040104010701010101010104010101010101010101010401080101451f0103080
10101010101040101010109018239010101010101030108010901010104040101012b8e010103
0404030101010204010107080807010401010401080301040401010101010104070101942a010
10101010101010107010101080102010701080103040101010101010101010101010101010101
04015054010101010101010101010101010101010101010101010101010101010101010101010
101010101010101010101010101010101010101010101010101010101010101a6a6181d2b0108
0104030301040408010903080103016c1d0104010c010101010301010101010101010101010101
010101010401056383833570227035838335702270b8b8837070584e354e58171f5d17b81f1f5d1
f1f4e4e4e061fa6a6ba065dba4e4e4e4e4e4e4e4e16b84e91ab9d1658b8a65d4e1f1fb81f1f163558
4ea6b8b14e58587058b18eb1a635547171124d475454545454545454124575544574458061441
25147861e86a886a8424512d542a826bad5514744d5c78644a874514d74471e441e798614801e4
d4da8a84d4d1e12a86666453f1ed5b0744266c766d551d54238d538d51e6644381ea87d4da43e3
8d5d5d5383838d5664f51b0b0b0387db0d5b03f4f1e5738b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
d5d51f710903040401010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101ffff0108010401030
30101070101030301010103040104080101040101010404010101010101010101010101010101
010101010301404412d5421e74a84747a8741e548e718e547535b8b11770705b16705db916149
2b95d5d9273d13e1c0a8520d10a0a0a0a0a0a0a0a85d16bce7c1c0a655b84ce6865966bb6b681b
6ce99b72e89b7ce6568c12e68ceb5ce96b6656568ce686868686868686865b6b6b668c189c1849
95b191f14d10a735b925d851c858414990a73960a5a8984996b9273d10a5a191c6b73ba160ab91
c5bb91616b95b1c85851cb9735b92d185d1965b920ab6d119991973848996b76bb6ceb7c181657
3b6656565b696b665b6ce65b7b596b6ceb665656568b6656865656565656565656565656565656
565b7b5b6a1010401010101010101010101010101010101010101010101010101010101010101
010101010101010101010101010101010101010101010101010101010101010101ffff010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101011610000026

060f002220574d464301000000000001000000000000000c00000000200000e0f20000e07201000
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
1010101fff601010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
0101010101010101ffff01010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
1010101010101010101010101ffff01010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101018e8e010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
101010101010101010101010101010101010101010101ffff010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
010101010101010101010101010101010101010101010101010101ffff010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
1010101010101010101010101010101010101010101010101010101010101015a5a0101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010

583

10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101ffff0
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
010101ffff010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010192a80101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101ffff0101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101ffff0101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101ffff0101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101ffff0101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101

01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101ffff0101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101ffff0101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
101ffff010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
010101010101ffff010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
101010101010101010101feff010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
010101010101010101010101010101ffff010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
101010101010101010101010101010101010101ffff010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010

585

10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
010101010101010101010101010101010101010101010101ffff010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101040404040404040401010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
101010101010101010101010101010101010101010101010101010101ffff010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
010101010101010
With this approach, a thread with a longer deadline will execute in preference to a shorter deadline
thread but only for a limited time when it is released. This can be ensured by encapsulating the calls
to reschedule and deschedule. Consider, for example, periodic threads
010009000003b06302000000210a010000001610000026060f002220574d464301000000000001
00215f000000001600000000200000ec8e0200ecae0200010000006c0000000000000000000000
d2010000ff01000000000000000000006a4000007f46000020454d4600000100ecae02000c00000
0010000000000000000000000000000000005000020030000c40100001a0100000000000000000
00000000000e3e306006e4e0400460000002c00000020000000454d462b014001001c000000100
000000210c0db010000006000000060000000460000001099000004990000454d462b224004000
c000000000000001e4009000c00000000000000244001000c00000000000000304002001000000
0040000000000803f214007000c00000000000000084000055c980000509800000210c0db01000
0000000000000000000000000000000000001000000ffd8ffe000104a4649460001020100480048
0000ffed100a50686f746f73686f7020332e30003842494d03ed0000000000100048000000010001
00480000000100013842494d040d000000000004000000783842494d03f3000000000008000000
00000000003842494d040a00000000000100003842494d271000000000000a000100000000000
000013842494d03f5000000000048002f66660001006c66660006000000000001002f6666000100
a1999a0006000000000001003200000001005a00000006000000000001003500000001002d000
000060000000000013842494d03f80000000000700000ffffffffffffffffffffffffffffffffffffffffffff03e80000000
0ffffffffffffffffffffffffffffffffffffffffffff03e800000000ffffffffffffffffffffffffffffffffffffffffffff03e800000000ffffffffffffffffff
ffffffffffffffffffffffffff03e800003842494d040800000000001000000001000002400000024000000000
3842494d0414000000000004000000023842494d040c000000000e7a0000000100000066000000
7000000134000086c000000e5e00180001ffd8ffe000104a46494600010201004800480000ffee000
e41646f626500648000000001ffdb0084000c08080809080c09090c110b0a0b11150f0c0c0f15181
31315131318110c0c0c0c0c0c110c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c
0c010d0b0b0d0e0d100e0e10140e0e0e14140e0e0e0e14110c0c0c0c0c11110c0c0c0c0c0c110c0
c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0cffc0001108007000660301220002
1101031101ffdd00040007ffc4013f00000105010101010101000000000000000300010204050607
08090a0b0100010501010101010100000000000000010002030405060708090a0b10000104010
30204020507060805030c33010002110304211231054151611322718132061491a1b1422324155
2c16233347282d14307259253f0e1f163733516a2b283264493546445c2a3743617d255e265f2b3
84c3d375e3f3462794a485b495c4d4e4f4a5b5c5d5e5f55666768696a6b6c6d6e6f6374757677787
97a7b7c7d7e7f71100020201020404030405060707060535010002110321311204415161712213
0532819114a1b14223c152d1f0332462e1728292435315637334f1250616a2b283072635c2d2449
354a317644555367465e2f2b384c3d375e3f34694a485b495c4d4e4f4a5b5c5d5e5f55666768696a
6b6c6d6e6f62737475767778797a7b7c7ffda000c03010002110311003f00f554924925292492494
e1752c365d9afb6b185ea35d168ca631c5fa63fa732df576b29fb46cfd233f4be97f8354f23a75eeae
c650de90c7bbe859e9b416cb0cfb5d5dadf6646cdbbfd4fd0fa8ba88079096d1e01253ce3fa7c8363
5bd2db6b5a4329d8c3539dbac8758ff4fd766da3d27fb3fc37fc1a8bb0afd87653d1778608dccd0d90
cddbb68f655bfd5fdff67a6b5f386eb402c702d1fab39a241b4eeb376d6ffa26d3f9dfe96c62b959df5b
5e58585c012c7448247d176d96fb5253ceb706c169dd5f477541c48fd1c38b773601fcdadde9fabfe
93fc17fc22dae98da598c5b435ada85b6ec6d600681ea3fe8867b55ada3c027494a492492529249
2494ff00ffd0f4ec9beca9d4b2b6873af7964b8900432cb77681dbbf9ada94e67eed7fe73bff0022879
9bbd7c3da403eb3b5227fc0dffd554dff0058b01ae0c6e407bc873b60a9e1c1acfa7639af733f47bff4
7bff00ef8929d09ccfddaffce77fe450f232aec6afd5bfd36b3735920b8fb9ee6d558fa3f9d63daa9bfeb

061b6865febb5cc710d7437e812ddcdf59ceb9acaf7bfd3c76ffc3df433fc228ddd73a63e971baeadc
d66d75953e974b60cfa8f658eff0003e9bdff00f5afd1fe9125337fd60c565be91b585d3121b616891b
e4d82bdbb3637d4f53f9bf4ff48a43ae6296eefb463c4c01b9d24c176dad9b37d8f76c7ed6b3f7155a
fa874676e662328bcb7636c6d5531b0dbc6da9cef56ca9aeaaf9fcc44aba8745cabeac5aecc7b2dbd
9baa61c777b99abf73777b7d3494ab7ade1bce3d87229dbaded782e2cd807a4e36d8d6eda76bb2
19f4d19fd7312b80fcac56cbb60dd611afcdbfc954ddd53a1fa47d36d5730b66c6b318e95bbd33658
e65859bead828bacd9ea3fd0f4eff4fd24efea3d0c7031ecb1c434b05024905d8ffce3deda76d5e9be
bddea24a6d7eddc4da5df69c681c9deef0ddbbe87d0dbf9fff009057a733f76bff0039dff9158c7acf42
6d61ee7d15bec269153a8daf2e6835fa1abf63bd9ecafdfe85957f3767a16b11cfd62c06b46ec9631
da8159a9e5d21a6d2c1b1ee639de9b777b5e929d29ccfddaffce77fe4529ccfddaffce77fe45469b2fb
985ec7b000e73082c320b1c6b7ff0085fde6a26dc9ff0048cff30ffe944948df6e5b1d5b76567d476d1
ee769ed759fb9fc84935edc8f531fdec9f50fe61ff476ff00c224929fffd1f4cca1fa7c4f2b8ffe7abd66d2f
ebbe9d6da30a8c6abde604348d5c2b67a5f99ba7d7dff00fa52cf4f56fa5d63aa731c18ea9fbc48dc0
cb5f547d267fa44b6e5ff00a4affedb3ffa552534ea7758fb312ec6a4648d8ddae7435c3f3dfea57bf6e
d77bbd2f4bfb7fb90aeceb86eb1cfc6a9b5b18f3500e077ba29f45aeff43ee6ddbbf9dff8e57f6e57fa4
aff00edb3ff00a552db97fe96bffb6ddffa5925394723eb238b1d561d2d683635cc73a276cb29e7dcd
af7b77b367f3b5d9fe07fc229faca4d761a31f802da24000edb5bead564bdcef77a7be876cf66cf4f23
f9ff0053576e5ffa4aff00edb77fe964b6e67fa5affedb77fe96494e3167d64a9ecaf0f17169a2a6bbd3a
db02b243eaf4f79fe72a6bf17ed3fccd5fa1c9f4ff9ea51df67d607bc3462d2ca810e710e04bff7d9b1d
fcdff005f759ff81fe9f4b6e67fa5affedb77fe964b6e5ffa5aff00edb77fe96494d1659d6dc1c6cc5a6b7
6d9d1db8b9c5ae3b5dfbac6d8da6a77f23f4becfa15e9ed6f8043db95fe92bff30ffe954b6e57fa4aff0
0cc3ffa5525246b5ad686b406b47006813a16dc9fdf67f987ff004a25b727fd233fcc3ffa51252d7ff3b
8ff00f187ff003dda9267d57bdcc71b183d376e1ec3fbae67fa4fe5a4929fffd2f5549249252945cf6b7
5710d9f130a4aae53f1599151c92c6b4b5e1a6c80266be37a4a4feb53fbedfbc25eb53fbedfbc2c67b
af1957bebcbc17e33c83456fda0d6057b76ee60f77ab93b5fff00075fefa1d6ecd0c6efcae9ee791366
a36877b6456366ed9fceecdff99e9a4a777d6a7fd237ef097ad4fefb7ef0b09c729cc16b33309b686b
4fa5b9a682e9b8b87f35eb7a4e6bb1bddea7a9ecff00b722f775022b6b32ba73741eb3c101d20b77
7a3b98f66ddad7fd3dff004ffc1ff38929e81af63be8b83a39832a4a9e33b19d9969c72c734575c9ae
22775bced57125292492494a49249253ffd3f554955c6cac8c9c6ab2594b432e636c6873cc80f1bc
074567c5137e57fa267f9e7ff49a4a4c920efcaff44cff003cff00e9341b73fd2bd98d6fa4cbac63ac631
d6112d616b6c74fa5b7d9ea3125371032dcf156c66e0eb0866f682e2d07e9bf40edbb59f47fe1153a
7ae625ef732ab692e6b439d3639a21c5ad61defa5acf73ec6b3faea63abd04d83d4c71e8bb6584db
b435d0d7c173abdbf46c624a4f806bf476553e8b0c5448206c203ebd9b837d8c6bbd362b2b26bea
b4e2b69c5b1f517b58d6ee0f79668594ff3ada3d26fe92cabe93fd9eb53fe96b560f536358fb0be82d
ac12f22e980d05cefa359fa2d6a4a6f2481ea651122a611dbf487ff004927df97fe899ff6e1ff00d2492
932483bf2bfd133fedc3ffa492df95fe899fe79ff00d26929324abfaf78b0546b6ee735cf6c3f4f69635c
1decff008449253fffd4ee317a8e4e274dc1168c6ad8fa2b15b9f65827dac6fba282d67d253a3af599
0f6d757d98b9e76b01b2c05ce9702d68fb3fb9dfa3dfff0015fa556fa663d3674dc1758c0f737158c1b
84fb5cdacbdb1fcaf4d8ad9c7a0c4d6c3b482d968d083bc11fdbf724a71affac6ea36fa8da775963a9
631aeb0b8bd8e7d5f47d0fa0fb69b2baedfa0837753c4cb6332afaf15fed8adce7d81f05ed7b58dfd0
7d275d8d5d8cfea5367ee2de38b8a5db8d2c2e2499da264ea7b20e763bbecb73f129add95b49ab7
35a65e2766edc6bf1fdf494e11bfa58796fa382d7b43411ea5a1deff006d55ff0047ddeffa0ca509d91
d259ea63df87874344b9e2d7bc34c3df8af3b9b53dbb996623d8ffe456afbebebb65afa99898eca83
981b65ac69f5009f59d63596b9cc6b9db6caff0047bffc1ff2d19b7f5570f52ce90c6b8b4fe8c5b5b8c9
0c7ba6cdad6fb9d7e4d7fd7a6cff004f5a4a73db9bd29b90dc16d583eabbd71e935ef86996656632d
1e87e85d63a8f5fdedfd2fd9eeff469c1e9d65565d5e261d8ca5cdde6b75921f606e3336c50df7bdac
ad9ed56f675735d42bc0a2abd9637d57b830b1d5963acbcd4daecdf5bbd61e8fd3fa7fa4fe6915b6f
523b1dfb22b6bde3df36d7ecf77d1739adf7fd065bec49485bf5881acbc3f15ad61dae6b9f6b5cd3b9
f4ec7d671b731fead3755b7fd2556ffa34acfac9e9b58e271cb6c05e1cd7da40600e79bac3f67f653b
2b7bbd4fe422b2feaef82ee91530bda1c43ae67b5c5fee658e6d6eddfe9bd9ff008258a391fb49a29b
717a6b1ed7b2d765e2d8e603ea6c6329a6ab5cff004bd3b7f495bded67a7fe112531b3eb1b2a1365
d86dfa24cdd670e2e6b1dfd1fe83b63bdca43afb89203b14911c3ed3c8dcd737f56f731ed3b98ffcf4f
ea750f51c3f62b360dad6bc5b5125b1bbe8c376fa6edcdffa852c43d503da323a7d2c20b47aac2de0
bab6bf6b3dcefa3eb64fb9fecfd1e3fe9bf9e494cce4e77aacbdc31833d0b1ed78b5c5846ec776f73fd
1dbe9fa7eede92b4faaafb652cd8dd9e95a76c089df43e76ff5bdc924a7ffd5efe8cdbf1ba7f4eae9c6
7649b31d8e7069821ac14b5df9a59bb6dbbf66f66fd9fa352ab3fab0b00bf04ec738365841da1c5dfa
4b3dc7db5fe8ebb3633fe1bf9951ab1f26fc1e9fe8657d99b5e3b4ba2092e8a4d72d3ed757b5b6b2c
ff8cfd1fbff00489eae977d5607b7a83dc3702f6b803b9b2e758cdc1cd7b7d47d9eaff22cff00baff00ab
a4a4b6e775263cb474f73da1cf01ecb1865ad27d276d76d77e95bb3fe2d04f52eb0c6561dd34daf3
50758e6581ad166c63df5ec7ee7b5bbdef633f9cfe6d4cf4ec8161757d46cad85ef79a80696fbcb9db
65fbacf66fdcdf7ff82aff00c0faf45c2afa566d6cc7633aad8d6d101c36b4ef0dda1ad76e3edf6b12537
703272ef6b8e4e39a203489f170dcfa793bbd0fa1eb7f3577f8256d64e4f4cccbbd415f55b6a658f73
da36b096076d77a75bf4f6b1c3f45bff9b4d5747b2b6ed19ef2c749b98608792f7d8edceddeb7bdb6

587

7a6ffd37f82ff07fa5f5129d7496557d2afa81633a95a6bdc4b43a0b830b5ecf49d63767a9b37b365d
67eb3fa1fd2dd6fbd46be8d652d2da3a8595874388fa43d4d7758c6d8e735acfe6ff0043fcdfb3fe1ad
494eba4b25bd2f2064faefea0fb06d2d0c20003dedb58fd0fd3a3f4b5d3ff00077fe9fd6fd1ad4decfde
1f7a4a64928ef67ef0fbd2decfde1f7a4a44ffe9d4ffc55bff55424a2f7d5f6ea84fbbd2b4832223751ba
47f9a924a7ffd93842494d04060000000000070005000000010100ffee000e41646f626500644000
000001ffdb008400040303030303040303040604030406070504040507080606070606080a0809
090909080a0a0c0c0c0c0c0a0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c01040505080708
0f0a0a0f140e0e0e14140e0e0e0e14110c0c0c0c0c11110c0c0c0c0c0c110c0c0c0c0c0c0c0c0c0c0
c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0cffc00011080180015e03011100021101031101ffdd0004
002cffc401a20000000701010101010000000000000000040503020601000708090a0b010002020
3010101010100000000000000010002030405060708090a0b1000020103030204020607030402
060273010203110400052112314151061361227181143291a10715b14223c152d1e1331662f024
7282f12543345392a2b26373c235442793a3b33617546474c3d2e2082683090a181984944546a4
b456d355281af2e3f3c4d4e4f465758595a5b5c5d5e5f566768696a6b6c6d6e6f637475767778797
a7b7c7d7e7f738485868788898a8b8c8d8e8f82939495969798999a9b9c9d9e9f92a3a4a5a6a7a8
a9aaabacadaeafa110002020102030505040506040803036d01000211030421123141055113612
20671819132a1b1f014c1d1e1234215526272f1332434438216925325a263b2c20773d235e24483
17549308090a18192636451a2764745537f2a3b3c32829d3e3f38494a4b4c4d4e4f465758595a5b
5c5d5e5f5465666768696a6b6c6d6e6f6475767778797a7b7c7d7e7f738485868788898a8b8c8d8
e8f839495969798999a9b9c9d9e9f92a3a4a5a6a7a8a9aaabacadaeafaffda000c03010002110311
003f00f7f62aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55e73f9b7a3699e601e4b
d1f5ab28352d2aebccb6c2eec6ee359e09512caf1c078dc156a150db8ea31549356f2dff00ce36683
ad3f97354f2a796adf5c8ed0ea2f63fa120794592b0469e896edfbb563c59feca9d8e2a9ce91f959f9
11afe9b6dad687e4cf2bea3a55f209ad2f6d74db19619636e8c8e919046d8aa35bf24ff002718f26fc
bff002ed694ff008e4d98dbfe4562a80d13f2bbf22bcc5a5daeb5a3791fcbb75a65ca96b6b81a45b20
65562a7e17855ba83d462a980fc95fc9d51b7903cbb4ffb64d99ff9958ab1cd2fca9ff38e1aa5be997
5a57953cb3736dacdddc699a74b1e8f6ccb2de597aa268abe87c253d090372a0aa62ac8a5fc9dfc9
d86279a4f20797b822966e3a3d9b1a015340b0927e4062ac434cd3bfe716f5a3a78b0d07ca722ea
b71259e992be956b0c773750b323c31492c0aaf22b2b29453cb90e34ae2accbfe54c7e4fd6bfe00f2
ed47fdaa6cbfea962ad7fca97fc9eff00a903cbbbff00daa6cbfea962ae3f92ff0093ec413e41f2ed477f
d1365ff54b15727e4bfe5047f63c83e5d5ed51a4d9f4ff009158ab67f267f280f5f20f977fee1365ff005
4b1577fca99fca03bff00807cba7fedd365ff0054b1577fca98fca0ff00a903cbbff709b2ff00aa58abbfe
54c7e507fd481e5dffb84d97fd52c5505a77923c9be51fcc3d225f2a797b4dd0e4bad27544ba7d32c
e0b332aa4f605439851790049a57157a2e2aec55d8abb15762aec55d8abb15762aec55d8abb157f
fd0f7f62aec55d8abb15762aec55d8abb15762aec55d8abb15762aec558579fc13a8f91bc0798e127
fe902f715609e616d5cffce4ee93168735a477c7c87a81ff004e59244553ab5ad18244e84ef4ea46c
3ae2ac2ecf49f3379075597f24741f355be8d2c5a1def996d7cc57f27e8ff00adeadab6a1732dccf0c2
125468ac8f026d8b71e127ef79fda0ab21f2bcde78f387e675e68b7bf98178ba6e99e5bf2d6b67f41c
567158dd5e5e3dd25cc91fad6f2bfd5e716fc950b1fb7b3d02e2a83f21f9fbcd1afd87e52e89e60d72
e5a1f357f88df51d7a3f4ade7bebcd22e1d6d6d03c48aa9ce2f526fdd846616f41f0f3aaabfc9de7ff00
35dff9d34afcb8f33eb13268e9ab7992d34cf338f4e09b5e5d15adc5bda192355512462e27f55a2e2
d29b23ff168c558f7e5c6b3abe85a0fe5c5be8de619e5b0d4bf313ccba36b11a9b6952fa17bad5ee4
34cc23e41f9428ff00bb645a1dd7718ab3dfca9f38dcfe6069be59f38dd79cbea9ae5cdfea56fae7949
162788bc6668c587a07f790b5a88d24f57edc946692a92af15583fe51f90753fcc9fca1d174abed52d
6cbca561e6fd4f59952de0792fe73a6f98aeee52232b481220d228e4ca8ede9ec284e2a8ed1ff0032
35cd5bcc1e59b5d1fcd53dee8be6dd23cd7729ab96b649e7934f991ed27b5b22265b758833471f2
24cc82b2c5cc62ad793fcc9ae27917f2bb58f317e606ad7be60fcc38eca76d2644b4892e9a0d3669
e68a2b98e387ea91925259a5e5248fe92c71ad6438abbc9fe70f3979c74afc9192efcd9776cfe6afd3
769e603606d8fd6869f6f712c4dccc24ab8f496b2271a8afc2acdb2a96f943cf7e7db6d1ff293ccb7be
68bdd667f3379b753f2bead69722dd6da5b0b66d4a18aab1c487d653691bfabcb933720df07c38aa
2bcb5e6cf3bf9bfc9b67e763e78b416dac681ae26a5a1d9cf235fb6a82dda68c408b1a1b496c5e368
df89355fb659f8bb2a87f2cf9a7cc2fa07e56f90f49f3447a79d73c86baac5a86a57cd1cb3ea7e85a25
239d51cb35b2c8651013f186abf354c5591f97a7f3e7993f3334ff002c6a1f98576fa75a794348d7af2
6d162b58ad2fb518b5196de59633240ce2dee16deaeaa68fcdbd3754e38ab21fca1f36ebd7fe60b8f
2f79c2e2e27f303e9bfa52cefede64bbd0757d39ee78c77f64e02b40df1ac72db301c3e02bcfede2af
41bfaff8ff0042f0fd17aaff00c9fb0c559362aec55d8abb15762aec55d8abb15762aec55d8abb157fff
d1f7f62aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55847e6110350f2354f127cc9
001b56bfe837bb62ac89fcb3e5d975a5f3249a55a3798523f4135630466f162ebe989a9cc2ff00935
e38aa9ebbe52f2af9a0dab799743b0d61ac98c966750b586e8c2ed4a98fd556e24d05698aaaa796f
cbf16a33eb116976a9ab5d422dae6f96145b892051458de4039141d949a0c550f17933ca3069706
89068561168f6b2fd62d6c23b68920866dff00791a2a8546f88fc4a01dce2abaebc9fe53bed3ad348
bcd0ec27d2ec1c4d63652dac2f0c128ad1e242b446f88fc4b43b9c550f07907c8d6c6d8daf96b4b83
ea539bcb3f46ca08c4374dd668f8a0e321fe71f17be2aad07933ca16ba9deeb76ba069d06b5a92b4
7a86a50da431dd5c2494e42595503b86a6fc8ef8aa2745f2ee83e5bb66b2f2f6996ba55933191ada
c614b788bb6e5b8461454f734c552c8bf2e7f2fa197d783ca9a44538796612c7616c8e24b952b2b0

611820b82439fdaef8aabcbe46f254fa6d9e8d3f9774c9748d39c4ba7d8496703dbdbc83a3451b21
5423fc903155b6be43f24d8dcdbde5979734cb6bbb3966b8b49e0b38237866b9da6923654055a41
f6d86edfb58ab70f913c956f1da45079774d8a2b0b86beb18d2d215582edcd5a68805a2487bbafc4
7c71554d3bc99e4fd1f53bcd6f49d034eb0d6350e5f5fd42d6d2086e67e66adea488819b91156e47
7c550d3fe5dfe5fdd69b6da35cf957489b48b395ae2cec24b0b67b78667fb4f1c6632aac7b9518aa6
107963cb96daa2eb76da4d9c3ac240b6697f1c11a5c2daa0a2c2240a18463b25788f0c557697e5d
d034462da3e996b60c50444dac290feed49609f001f08249e3d2b8aa597ff00f29f683ff6cbd57fe4fd
862ac9b15762aec55d8abb15762aec55d8abb15762aec55d8abfffd2f7f62aec55d8abb15762aec55
d8abb15762aec55d8abb15762aec5524f3379574af365a5b5a6a8d7118b2b94beb49ecae66b39e2
b8895915d65819187c2ec08ad0838aa4bff2acf4cffabef98ffee3ba8ffd56c55dff002acf4cad7f4f798f
7ffb5eea3dbfe7b62aeff9567a6529fa7bcc7ff71dd47feab62ad1fcb2d2c8a1d7bcc94f6d7b521faa6c
55bff9565a6529fa7bcc9ff71ed47bff00cf6c55c3f2cf4c1ff4bdf31ffdc7751ffaad8abbfe559e99ff0057
df31ff00dc7751ff00aad8ab17f37793aded2ef41f2f691e67f30dbeb7ae5fc6109d6efe465b0b222e2f
9c2b4a453d25f4431fb324d1f7a62abfc9be4cfd2316a7a66bbadf98975bd12fa6b2b865d76fc09e03
496d6e02acc00f52074245369048bfb38ab251f965a60dbf4f7993fee3da8ffd56c55dff002acf4cff00
abef98ff00ee3ba8ff00d56c55dff2acf4cffabef98f6ffb5eea3ff55b1577fcab3d307fd2f7cc7b7fdaf751ff
00aad8ab7ff2ad34dffabef98ffee3ba8ffd56c55aff009569a67fd5f7cc7ff71dd47feab62aeff9565a653
8fe9df3253fedbda957eff5ab8aa3f44f23695a1ea83588af353bebe5824b589f53d46eaf9638a6647
708b3c8caa58c69520576c559362aec55d8abb15762aec55d8abb15762aec55d8abb157ffd3f7f62
aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb15762aec
558679797f4ef9cf5df33bfa5259e9a0797b47912a587a2c25bf6a9d8729f84440ff966c55ad5d0797f
cf7a4ebb14616cbcc49fa0f5798bf1559e00f3d8395e849633415ea4cb1ae2acd315762aec55d8abb
15762aec55d8abb15762aec55a62556a14b1f014afe38ab78abb15762aec55d8abb15762aec55ffd
4f7f62aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb157
62a90f9cf5f6f2c796751d6611135e43188ec63b8758a17bc9d8456e8eec4055691d431aecb8aa5fe
5ad53ca3e5ed06c3471afe9aef6b10171325cc0825b8725e6969cfac923339f76c5547ce175e4ff00
36796b50d124d7b4f47b88d5ed2e56f210d05dc2c25b6995831a3472a23a9f15c5537f26f983fc53e
58d335d68d61b8bb847d6edd1d6558aea32639e30ea486e122b2d41de98aa7b8abb15762aec55d
8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb15762aff00ffd5f7f62aec55d8abb157
62aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb15762ab248a2990c7322c
919eaae0303f41c558ff009bb4ed3d3ca9aeb259c01869d764131252be83fb62a97f90346d1e7f207
94ccda7dac9fee1f4f20b431b6e6d63a9dd71565d6d6b6d650adb59c31dbdba578431288d16a6a6
8aa001be2aab8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb15
762aff00ffd6f7f62a1610000026060f002220574d464301000000000001000000000000001600000
000200000ec6e0200ecae0200ec55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8ab
b15762aec55d8abb15762aec5525f386de51d7c8153fa3af361d7fb87c5507f97049fcbcf2916fb5fa1
74eafcfeab1e2ac9b15762aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb15
762aec55d8abfffd7f7f62aec55e79a7f9a7f31b5fb8d564d0746d14695a7ea579a64325f6a3771dc4
86c6630b3b2456522af22a481cdb6c551c2ebf3769be93e5c07b8fd277c7fec431568ddfe6ed76d27
cb74ff00b69df7fde3f156feb5f9bbff00569f2dd3feda77dff6418abbeb5f9b9ff56af2e7fdc4afbfec8315
77d6bf373fead5e5cffb895f7fd9062adfd6bf36ff00ead5e5cffb895f7fd9062ad7d6bf36ff00ead5e5cff
b895f7fd9062aefad7e6dff00d5abcb9ff712beff00b20c55df5afcdcff00ab57973fee257dff006418abb
eb5f9b9ff0056af2e7fdc4afbfec831577d6bf36ffead5e5cff00b895f7fd9062aefad7e6dffd5abcb9ff00
712beffb20c55df5afcdbffab57973fee257dff6418abbeb5f9b7ff56af2e7fdc4afbfec831577d6bf373fe
ad5e5cffb895f7fd9062aefad7e6dff00d5abcb9ff712beff00b20c55df5afcdcff00ab57973fee257dff00
6418abbeb5f9b7ff0056af2e7fdc4afbfec831577d6bf373fead5e5cff00b895f7fd9062a83d5a2fcdbd5
74abed30e9de5c885edbcb6c64fd237cdc7d64295a7d445695f1c554bcbd67f9b5a0681a568434ff2
e4e34cb3b7b213fe90be4f53ead12c7cb8fd44d2bc6b4ae2a98fd6bf36ff00ead5e5cffb895f7fd9062
aefad7e6dff00d5abcb9ff712beff00b20c55bfad7e6dff00d5abcb9ff712beff00b20c55afad7e6dff00d
5abcb9ff712beff00b20c55df5afcdbff00ab57973fee257dff006418ab7f5afcdbff00ab57973fee257dff
006418abbeb5f9b7ff0056af2e7fdc4afbfec83156beb5f9b9ff0056af2e7fdc4afbfec831577d6bf373fe
ad5e5ca7fdb4afbfec831577d6bf373fead5e5ca7fdb4afbfec831577d6bf373fead5e5cff00b895f7fd9
062aefad7e6e7fd5abcb9ff00712beffb20c55c6ebf373b695e5caffdb4afbfec831577d6bf373fead5e
5cffb895f7fd9062aefad7e6e7fd5abcb9ff712beff00b20c55afad7e6eff00d5abcb7ff712beff00b21c5
5df59fcddff00ab5f96ff00ee237fff006438ab7f5afcdcff00ab57973fee257dff006418abbeb5f9b9ff005
6af2e7fdc4afbfec83154a750f35fe67e97ace8da15ce8da0bddebad731d9cb1ea379e9a3da45ebb7
a95b206850301c6bf171ed8abfffd0f7f62aec55867e5b822c35fa8a7fcec5ad75f7bd93156678abb1
5762aec55d8abb15762aec55d8abcd7fe7203ccfaf792ff273cdde6df2c5e1b0d7747b23776572238
e60244751464955d4820d0d462a81f2e79aedafb5ad121b5f3cdcdd49069d36b1e61b0beb5812da
4b1485636713adb41e9324d2c6ff006cfc0ae1877c550b71f997aa6a5f999e41b2d1a3d420f2af987
4bd6b507b6b8b68116fd6ce2b692da489989911bf7ac78398b92b2965c55e69acfe68f9fe5fcaed23
f34a1f305e6853ea1e688f43bfb2961d3dac0584baf4b605a3f5229591e28102b396a17abfc58ab38
d1ff36ae743f3e79b6cb5ad646b5f963a7da692da4798de28a3a6b1a8ccf0369eb7312c504e4fc127

589

214f4797195f6ae2ac807fce41f901ad60b8856feea49b5d3e556b6b2b6faec89ab18bd74889b6691
0ac89f1472233c6c3f6be16a2aa563f9bde5787cc1e61bad7350d63478b4dd06c35bbed0b5ab14b4
8ac2de79258d5d68a6579e57fddb47ce45e48ab1fc58aa7d7df9bbe52d12e353b3f33fd6bcbf75a56
9675e9e2d421a1934d12880cb1181a5572242b19881f543bc63d3f8d6aabcfb5ff00ccdd6ed7f32fcd
3a5dfddeafa1f946c3c8327985a05b2b69af2d6e05e3426eedd55262ec91af2f4e42e1581e51e2af4
397f33341d3f468af604d435c16fa45beb97df52b713dd45613c7ca39a5890afc72057658a35691b8
3f08fe1c55e73ab7e62de37e6cebda0dd79de6f2df95479474ff0030e8ab25bd98952eef66b88d888
ae2dccb2d16243e81f8f9165efb2a987943f3dee2c7f2eb4af307e6ae917ba56b90e9d677fe639a2b
478ad6de1d42eded2d666594ab069b8095ede3f524815bf78abb62acb64fce3f2e2799f59f2aa699a
d4f79e5e9047ae5dc3a6cd259da2bda3dec723c83ed2491a108630f572ab4f8d71551d43f3bfc9fa3
e93afeabac417f627cb7a75a6b9aa58c96eaf769a6ea0ceb0ce238ddfa98df923159138fc6836c554
afbf3c7cb7a7cbabdb5c68fadfd7345d2e3f30de5a8b11ea1d1a40f4bb4ac80150637531922e39237
ee71555f32fe7b7e5bf95a19ae751d5164b7b3b7b3bed45a06899ed6d3511ca195e2691656054f36
11248ea9f1b2f1c55460fce9d121d5fcef6faf43fa2b42f27dd69d631eaf2cb118ef25d52de09e10946
db99b8458fc47c4c57b2ab24fcfff0020c76f732a9bc9ee2cf58b1f2f5dda5a429772c77baaf0faa1e56
f2491b472f31c644765af24fb6acb8aa75a7fe68691a86a29a4a699a9c1aa2ad936a3653c08b7162
35395e1b73711090b05668db94881e341bb30c559c62aec55d8abb15762aec55d8abb15762aec5
5d8abb15607e6effc987f977ff311aaff00dd3a4c55ffd1f7f62aec5585fe5b002cbcc40569fe23d64efef
78e4febc559a62aec55d8abb15762aec55d8abb15762ac17f38fc8da87e65fe5b7983c87a6ddc361
71aedb8b437b72af224485d5998221058fc3402a3154a358f22f9e7cd1a2d9f9475bd474bb3f2d4b6
72699afcb610cefa8dd58cd6cd0490c32cc78c0246e0ced476a2f11fcd8aa53a1fe57fe635a6b9e41
d5f5bf306937ffe03b0bfd2d0c7673c52ea115ec30c2b2c87d62b0c81605e5c5645a96f60154b2ebf2
2fcd13fe54689f9769abe9eb7da4798d7cc6da834333432247aa49aa2c3e9f20c09693d32dcbec8e
54de8157a17e66791f50f3cf96ad34fd2b508748d7b4cbfb2d634eb99a0fadda7d66c64e7e94d0f28
cbc522968df75346e5d71563ba9fe5cf9df5a4f2adcea3a8e8d1df683e60b7d7e7b5b0b396d2c8c56
b6f35b882205e4939bfaeced2bb1038aaac7d7154bfcebf91775e7bf3579d756d4b564b3d27cd7e5f
b1d02dd6d518dddacda65dbdec37357f81bf78e394741f0afdaf8b655af3dfe496b3f9a16f7971e6ad
6a0d3f5d6d07f41e9d73a5c2ed0c372d7b6da83ddb24cc09acb690f186bf0a73fde316f85553d57f2
8fcff00e63d7b5ff32eb9ae692b7fadf92ee3c93f57b4b4b958d1ee24794ddf379893f1393e9f1e9f0f3f
dac551da6fe57f9fbcb1abd9eb3e50f30e9b6925d689a6e83e62b3d42ca6bc81db46578edeeed3d3
9a0647e12b878dcb237c3fcb5c5539d2ff002f75cb1fcded43f31ee750b6b9d3eff42b2d01ed0c6cb7
5cec2696717258512aed33028aa00da8ddb15633f9b9f92de6cfcccb9f30c11f98ace3d0f57d3aced
34cb3d42d65ba3a5ddda4cf2cb3db04991395c0288f215f51153e1db6c553bb4fcbbf394577f991a9
a6bd6da6eb5e78b6b58f4ed42c22919b4ebbb4d3c592cc165621fe20241b8e3f677fb58ab06d4bfe
71e3cd7ab697e73b39f58d1eda7f397966cfcb97525ad9dc8e1736734b235dc8f24eef3bc82772ece
79f2083910bf12acc757fcaaf306a9adf9a3561a859c49e60f2645e4e8a2f4e56314f135cb7d618d45
509ba61c050fc03e2f8b65526d0bf253cdfe53d764d57cb7ace8ff57d674dd22c3cc10ea7a6bdec91
dd68f689622eac9c4d105f5218d018a55650ea1b7dc62ad79aff0021358f315ff9b66875fb7821d735
1d17cc5a44f35a19a7b5d67cbf6f6f0426640e914b049f57ac88150fc642d283154db5cfcb4f3df9974
5d2adb58d5b478f51d3b5ed235c10e9d6325a582c5a35cadcfa6aa6492567988a33b3f08c7d88fed
73551de72fcaabaf3579bf4ef375b5d5be91ade957366fa7f982c5648b548ec2170f7761295212e20
b8f8942cbf0c5ea33846603157a8e2aec55d8abb15762aec55d8abb15762aec55d8abb15609e6eff
00c987f977ff00311aaffdd3a4c55fffd2f7f62aec55e67e48f315b6983ccb692586a1332f98b566f52d
6c6e2788f2b927678d194f5df7eb8ab29ff1959ffd5af57ffb865dff00d53c55dfe32b3ffab5eaff00f70cb
bff00aa78abbfc67694ff008e56b1ff0070cbaff9a31558be76b5277d1f5a5f73a65cff0004c5571f39da
0a7fb8ad60d4d36d32eb6f7fb18ab43ce9684d3f44eb23dff465d53a57f931571f3a5a52bfa23593edf
a32eabd7fd4c55c3ce96b407f446b22bdbf46dcff00cd18ab5fe35b6a57f43eb3ff0070db9ff9a7155a
be78b6634fd0bad8dab53a65cffcd38aafff001a5a548fd13ac5077fd1975ff3462ad9f39dad01fd13ac
1a9a7fc736e76ff84c55a1e74b53ff004a9d63a57fe39b73ff003462aeff001a5ad2bfa1f59af87e8db9f
f009a7155abe76b76affb85d6853c74db8fe98ab63ceb6c6b5d1b5a14ee74db8fe0b8ab879d6d890
0e8fac8af8e9b71fc171577f8d6daa07e87d66869bfe8db9a7fc47155c7ce76bb7fb88d60ff00dbb6e
7fe68c5569f3adb8a5346d64d4f1db4db8dbdf75e98ab4de75b751b68bad36d5a0d3a7fe23155ade
7881457f416b67d869d31ea2be18ab63cef6e457f426b63bd0e9b3ff4c55a6f3cdba81fee0f5b627b0
d367fe98ab879e6dcb71fd07ad8f7fd1b3d3f562ad9f3bdb83ff1c3d6c8a56a34d9fc2be18aadff001d
435a0d075c3d37fd1d301bfcfc3156879ea2277f2feba37a54e9d27dfd71577f8ea2040ff0febbbf7fd1
d2d062ab5fcfb120523cbbaf372205174d96a2be3523157379f615affcebdaf1a57a69b2f6c55a3e7f
88014f2e6be6a2b41a6cbb7b1a91be2ad9f3ec40a8ff000eebc6a482469b26d4ee77c55dfe3c8ffea
5dd7ba57fe39d27ddd7156ffc769ff52eebbd01afe8f7effecb156ffc751edff3af6bbbf5ff0071f26df8e2
ada79e23634fd01ae2fbb69f27f5c55a3e7a8857fe75fd74d2bff4ae937a7d3df156d3cf11b9a7e80d7
17ddb4f900fd78aae7f3b4695a683adbd3f974f90feb38ab08f3579bd65f3cf906e7f416b2a20b9d4c9
8dac9c3b16d3a41451cb73fd3157ffd3f7f62aec55857e5b126d7cc9f17203cc7ac0076ff9696db6f03
8aa73e66f397957c9905adcf9ab56b6d260be9d6d2ce4bb711896e1f758d2bd58d3618aa5ba6fe68
7e5feaf6b6779a77982d67b7bed44e876ce0b0aea81797d558300525a6e11c2b1c558bf9eff00393
4bf2e8f2e5fe8fa8e9f368b73e6a5f2a799ae2e79836727d5e69a45043271955a345e2cad5e7d3a62
abbccdf9bf60da1681e61fcbfd42c35ab0bef34697e5ad50b091da217d7696d32515a368a68c386e

322fcd77c5593697e70b26bcf3636a3aee9971a7e837b1db347681d26b10f044de8de16770d333b
1281157e068d78f2c5535d37cdbe5bd5e2d4e6d3f528655d1a46875752de9bda4891894ace8e15a
3f8183fc60550f2fb38ab0ff00ca9fccf9bf30dfccb61a8592e99ac6857a9e95b292e25d1f52885d6997
7524ef3406ae36e322ba76c5524fca6fcf5d13ce108d1fcd5ab69b67e769b58d5f49b3d32df9c2265d
32ee68630a25671eab451890c7cf950f20bc7157a45b79c7cb174d7221d4a2e1690cb753ccfca384
5bdbb98e5944ae0232230219958aae2a90ebff0098da57f877cc771e57d42da5f32e8fa3cdadc161
7b14aacd0246ef1cad0b1864685d90a7a8878d7f6ab8ab7e5afccbd0b50f2fe9575addf416bafcfe5d
b4f346a7631893f75677112b4932ad1898d5c95eac477c557db7e69f94ef7cdba7794ac6792e67d5
345ff125aea11c4ed64d60ee8b1bfadc78fc61cb035e200f88d5971553d57cef36b901d27f2cef74eb
df35936572d1ea024f4a2d26ea6e0f7cb10685e78f82bfa6627e0efc7e3c5585f97bcf9f9a7aeebbe7
8d3e09f426b6f236b767a6dc07b3b984ddd8c904177752090de308a448a56e00aba964f8bed6cab
2dd1ff34fca76fe5ef2f5ef98fcd7a55d5e79805c0d32f74f5922b5bf7b666e62d6376958950b42bc99
8b7d9c5530d33f35bf2ef59b9d36d34bf30dadcdc6ad2bdae9ea9cc092e62577782a540599562726
172b2fc27e0c553383cebe55b9d620d021d5213ab5d1b816701e4a2e1ac8d2e160760125688ff78
b1b3326fcba1c555f5cf33e83e5b58db5abe4b53324d2c5190cf23c76c9ea4cea88198ac6bbbb528
bdfae2a948fccff0020b68b1798a2d7ada6d127b79efa1bc879cc8d676814cd703d3563e947c979cb
4e0bc97e2df1542afe64687abebd7fe50f2eddfa9ad41a3dbeb706a06096e2c0c17e2536ce1d38ac
8ac2166f8645047c2adcba2af3ff00cbefceff0031f9cbc93afc1ade9f69e5bfcd9f2fe99fa61f4a94493d
85dd8cd099ed6f6de922bbdbca07a6d4939c527256fd9aaaf4897cff00e5ef2fe956b379bf58b5b5bd
5b5b5b9d4e75478eda0fae111c7249bc8208de4aac6657de9f68e2aaf2fe62f92e1d62f3cbf26ad18
d6ec26b5b6bbb0f4e53324b7e1cdb8e212a7d411b9522aa4231fd9c558379dff3aa3b0f2c7e67df79
463e5aff00e5a4723dda6a36d31b4b89a1b48eecc6a55a3f8489157972e5d5955928c556bcd3f993
e72fcbcf2c695f989e638ac357f21c91d9bf990d8c135aea1a7477c635faca2b4d3a4d144cff00bc4fd
dc9c3e252dc698abd02ebcf7e51b2d46d34bbbd56286eefae63d3ed0b8710c97b347eb476eb371f
4fd6743c922e7cd8745c556e9fe7ff0026ea9a947a4e9facdbcf7f33de456e8a4f19a4d31fd3bb589c8
092340df0ca119bd33f6b1561b7bf9b2b7bf993e4af297952eed2fb43f34596b17135eb413b10da6c
513c32dbcdc923962669086e1cbecfc2e315427907f356ff00ccfa0fe5c5feb7ab693a5eb5e6a6be37
7a4fa13fa97cb6a2e02ad8d653e99531091fd4f53f761875df1565da4fe6cfe5ceb9a85ae97a4f98ad
6eafaf6e6e2c2d6342f47bdb30cd35b862a17d6455663113cf88e5c78e2a8e8bf307c993ea71e8f1e
b307d7e68ae6e2d91b92473c56078dcb432300928849fdefa6cdc3f6a98ab1c8bf3135793c8517e6
7b58470f96587e9396c652c2f1340209fad7204afabe9d2e7d3a71f4bf77cbd4f8b157a2c52c73c493
c2e2486450f1c8a6aacac2a0823a823155f8abb15762aec55d8abb15762ac1bcde3fe77dfcbc6affc
7e6a638fcf4c9cd7f0c55fffd4f7f62aec5585fe5c6d6de64da9ff003b1eadf4ff00a41df15639f9f124d0e
95e4a9adedbeb73c7e74f2f3476c19632edf5ba5033fc20efb571562fe63fcaef385eeb1a8f9f34bd32
11ab5d79bb41f300f2f35d471b4961a15b1b46633006317128767e3529c5234f53974550b65f961f9
828cfa8de6956a2687f329bcf51d9c7789249269b3da3dbb22b32220991981e2c42b6fc5fa62a8bf3
07e5579aeeef757f3269f6111bdd7fcebe5df32cda4acf1c62dec3cbe2d92467727834f30819b8a7c3
f122f2d99b1550d77f2bff0030eeb59f3cf98746b6b64beb8f36683e6ef2edadcdd0482fe3d12cedada
4b59de30e61f50c2e518ab853e9b1f6559aeb961e79f35f9764d36ffcb169a62798af6dacf5fb582f95
eea3d1a816eddee2358c4923a2fa31a27d88db973e5f00552bd4bf2f3cc9e5efce2f2c79f7c9514d7b
a45cd85ce89e778aeef8b3bd906596c648c4ecdc9a095a4341c7f76cca0f6c558ff97bf277cd23cb36
1e4ad66da1b5874ef3d4de711acc1324aa6d63d564d4e0485682412bf2585f92a845321e4db2b2a
a1a8fe4af9d75bf2ff9a3cb5a7dd1f2de85e66d2ee8cfa1cf70350d3ed35f7bb8ae23974f7159a2b59b
849f5980d10735f4a3af2c5590f9afc93e72f3a6a9279aae7478b4bd4edbc9dac797a3b15bb8e592e
b50d6fd1aa99568bf5784c15477e2ecd257d25e3baa9327e5cfe6269f71a15dd9e936b72cff00978b
e47d46292f561faa6a11b23098908e2484d1b78fe3ff0023c15432fe4f79eeeb4dd1f479e282cd6e3f
2d26fcbfd52f60ba0ed637e7d254b850514cb190ac7e1a30fb3df9055977e51f92f5ad0db4eb9f3179
2f46d035cd2f4b5d26eb59b2bafaf5c5e04f4c52dcfa7198a0631fa8c8e6bcb8af1f879e2a88fcb2f2b7
9abcb7e73fccfd6b59d3043a7f9a3578b55d1de3b8865778a1b286d4a3aa91c1898790a9a51b735
18ab15f257e5af9e746b2fca28351d3628dfc9fa96bb79aef1ba89c470ea515ec707a74fef0d6e5797
d9e3c5bdb155965f969e7b874dd2617d2e259ed7f332f7ce33a8ba8aa349bb9eee556a8d8cb4b85
531fb37c5e2aaffc9ffca6d7bc8c746d0f5df2a68f753f96aeaedad3cf6d74d7175716d399784b15b34
7ce1b97597d39be3f4f8f3219f970c5517f9c3717b37e65f94ad7c9f07afe7bd374bd52f646b7bdb4b
6ba4d26e9a1b778fd1bf4304892caaadcb97a91bc03f619f1563fa6f92ae7527f2aebbe54f265beb3e
4ad3f42b8f27dff0096756d46159ed9acee4149e1b88bd782e23721d25a37c4bc68bf098f1566ba27
92fcd5e57f39df6b563a1d8b68b7fe53d374586c34c9d2da0b2bad2a5bc75b78d2555ac456e51239
071fb0792274c5524f37fe4d7987cdff00965e597d25d3cadf9c3e54d2534fd3752e49710b2b5b0b6
bab29d92ab25b5c283f696b1b71915558118aadf30fe56ebf2f9e759d46e3c9da3f9d3cb5e63d3b4c
815754bcfabb69f77a7c4d03a4b1b45209addc1127c3f187e7f0fc5cb1547f9a3c8de7db8fcc0d1ff33
f42b1b5fd2de563168906925e08a3d5b44b95ade4ad2b87681e391b95a2726e3e9bab9a5cbf1552
df347e5a79eafb44fcf1d0ec34e8261f9883d6d02e3eb51a2abcda55b58324eac01428f0b3123902b
4e3be2a9d79bbc91e74fcc6f22e97f95f7f611687e59b982cadfcdba94d7293ddbdad9344f25bd9c50
725ace63e06691d3d342c446ed8aa53a1fe546afa2f9af54b3bdf26689aee8737980f98344f34df5d1

591

3359c534a2728d68d13b19ed8d63b67470acbc199e3a1aaac7f52fcaafcd9f32ea9a3cbacd859dac
907f8bb4ebfd46d6fd63821b4f31452c36935a5a4712aafa4acad2d693c92726677af2c553ff2af927f
33a0d6bf296e75cd0ac6d20fcbdd2751d1f569ad6fd644b969aceded6196d63f494f07fabf22b27a65
3971fd9ae2aa1e56fcb1f3e695a47e4c595e69d124fe47d5351bbd782dd44cab6f776d7b6f19888a7
33fe92a48a0d95be955ad2bf2bfcf36ede5192e34e890e8ff00985adf9b2fc7d6a26234dd53f487a4c
29f6a41f5c4e49fe4b6ff0066aaa8fe5ffe4cebba66890f92fccfe55d1e39f4bb7d4b4eb6f3ec371f58ba
9ad2fa396112416c6357827923969355f87c2dfde72f8554ede6bcb8ff009c7e6fcbbb8b675f3cbe8a
7c92fa428e728d45ad3ea2252146d014ff004af57ec7d5bf798abd7bcbda57e82d034ad13d533fe8d
b3b7b2f5c8a17fabc4b1f2237a578d7154cb15762aec55d8abb15762aec558479b82ff8ebf2f49fb42
f75203e474bb8afeac55fffd5f7f62aec5586fe5dd441e6507b798754a77d8cd5fe38ab21d5b41d135
e5b74d6f4eb6d452ce64bab45ba8926115c466a92a07078ba9fb2c3718aa63d31548fcc1e6ed0bcb
177a258eb33bc371e61be5d2b4a0b0cb2a4978e8d22c6ce8aca9554620b95078e2ab3cd3e72d07
c99169b3ebf2cb045aadfdb69366f14134ea6f2f641142ae6246118662179b955af7c551ba76b967a
9df6a9a75bc77093e91325b5d34f6f2c113bc9124c0c3248aab2af1700b465943557ed0c5532c55d
8abb154b747d72d35c17cd6915cc434fbc9b4f9beb56f2db729adc80cd1faaabea466bf04a9547fd9
6c552ff002cf9dfcbde6fbbd76c7439a592ebcb77eda4eaf1cd04d6c62bb48d652a04ca858717560e
b54607e138ab22c55d8ab1ef36f9dbcbde48b7d36ebcc73c96f06ada8dae8d62f1c32ce1af6fdfd385
18c4ac10336dc9f8afbe2ac87155b1c91caa5a275750cc84a90406425586ddc1041c558cf98bf30fc
a7e53d7743f2f798ef5b4fbef31cc6d74696686516b3dd005bd1fac05312c840f851dd4b7ecd71545
4de70d1a0f365bf925c5c9d7ee6d1f508916d67683eab1b08de437013d21c5995482fcaacbb62aa9
aef93bca5e6892de6f32683a7eb12dad7ead26a1690dd3455dcf032ab15afb62a992ad8e9766a88b
15969f6b185551c618628a314000d95540fa315621aefe6bf947cbde69ff0005df7e919bccc6ccea89
6163a5dfdf3bd8a388da7536d0c81955d82350d796d4c553df2d79bbcb7e70b396f7cb7a8c57f0dbc
a6deed12ab35bcebbb453c4e1648a415dd24557f6c553ac55c4d0571579fd97e74790750ff0f7d5a
eee88f34ea375a2e8ed258ddc41efec1e549e190c912fa4ca6193693896e278e2acbf48d6ad35a5b
d6b48ae62163773584df5bb69ad4b4b6e40668c4cabea466bf04a9ca37fd9638aa638aa0b55d5ac
345b437ba8cc218792c518a16792590f148e35152cec4d155454e2aeb0d5ac75296eeded6426e6c
25f42ee07568e48de9c8555803c581e48c3e161f64e2a8dc55d8abb1553f421f57d7f4d7d622864e
239d3c2bd71554c55d8abb15762aec55d8abb15762ac27cda47f8e3f2fc13b9bed469ff0070bb8c55
ffd6f7f62aec55877e5f00b1f9940dbfe761d48fdf2038ab18fcfbbebbd3b44f2a4f6dae5e68304de6bd
12cb50bbb2b9faa72b3bcba58a6491cedc0a9debd315795ea3ac6b1e51d69dedfcd9a85c7e5d68b
e7dd06cecf5dbed4e5b88d2db51b53fa4ecee6e9de92dbc7334407ae5bd2793d30e0ad3154b27d6
53cc56b12ddf98e79f49d2ff00394db5a6a66f8caf67a63e9f20804771233f0899a42226ad3e3fdd9fb
38aabf99ae6f34ed175ad16f35bb8d5fc8da47e62f9461f2a6abab5d9b890c6d71653de40b7b33179
d20999c73677e1f1c7cbf77f0aa9eebdf995af687acfe6993accf2f97f48f36f976c352b812995f47f2f5f
5959b5fcf088c168d51a57e5201fbaab3d7f77b2af62fcb93e5d3fa664f29f99ee7ccba0cd7114d6fea
dd36a76968cf100f15b5e3976915997d4743349e933f11c168b8abced2cfcc365f99daf7e57dcea7a
bbe99e62bdb0f37683a90bbba91ed74ab365fd256427f53f751fd6238e348f6ac57b41509f0aac5f4d
f3679aafbcb9a7f996db56bf1f9c71f9d3f42eb1e5a92e24309b03ab1825b61a793e92c09a7959d6e
1620e38fafeaeed8aa847f987addbc5aa58ea5e60b96f27cbf9a1a8797fcc3e606bb224d374516aad
6d08b8420db4525c048bd5053d30c473567e58ab2fff009c727d1d3cd3f9c769a2ea3fa4ac63f3547
25bdc35d35f48d13e9968013348cecea0ab22b3337d9fb58ab06d5fcf17ba46a37fa5cfe6bbab6d47
48fcddd3ed7ea73ea3289a2f2edf25a178e5479391b3732bf1f52b10e5f0e2aafa9deeb6ff00e39d47
49f3aeaadf983e5ef3d4761e53d09f546686686e7f47ff00a2491610000026060f002220574d46430
1000000000001000000000000001600000000200000ec4e0200ecae02006350b2c3223cdf6d4fa4
a1a4464e0e71563ff987e67b1f31e93a7ea5e69d65e0f3ee97f9a5a7e9f3e832decb04769a6d9eb45
2d6b605c27a66d84737d60c7590b7a9ea536c5596dbfe60d95ffe67e866cfcd971f53bef37ebbe5dd
66def750304a605b1b9586dbea51158ede34b88112d256e3733b0f57acad55586795b5bfd05e46f2
1f977fc52da2e8daceafe63b5f3b6a7aaea3a83a5a6a7677329b3b4b9b84bc825b26968cd41343ea
c8bf187f53e255e8dfe1ef2cf9c743f24fe5afe6179a20f39fd79358b7b6d52506ceeaee28d2b6f716c
649649247868163bb466f55a3f5393726aaac6c6bbf9c9e4cd4bcd9a0ea76f2eb9e7ef24f91b5293c
afe655884c9ae5bc975035b4e605a9fac43e998e78896e6eaafbfabbaa98e832e8fab797b5ed526fc
db9effca7ace8692c91e85737f25e586abcc70ba8eee5bdb8920b990c8221a78e0933afc30fc2e315
63be62d4aff55fc88f3fe97e7bbfbab6fcd4d06fb495f3869916a372b05b5b43756ab05c428970e12d
a6b36f5a6756e2d2995a4f8a3f855662fe62f26e91ff003947e5c9135fb35d1a0fcbaba821bebbd452
60dcb55b778f95c4f2b33b320e6199d99d7e3dfae2ac5fcf1e60d634ef38fe62fe6b791a49b4ef24dcc
1e57d0755f32c36b2b413347a838d42fa109c1e64b7b595636b988ec0feea5fddf25553b4d7ecbcb
7e5e1a7ddfe6349e63f2f6bde65d3e2d36f74db89a0d32dd2785e4974f975bb9babb905bb184cae5
26f590b2dba7f7ca98aa0fc99f989fa460f26f973cede65921f2936a5e6bd3eff00575bf96d835fe937e
c9a669f7979ea2cc95b4e7347eac8af71e9c7cb9fed2ac53cb37ba5dae89f93b676da8a5cc76df9af
af4514b3ce2499e1336aa1647673c9cb0743ccfda2ebfcd8ab22bef38ea32d8de5bc3e75be58a3fce
1b6d0c5d45a97ef069370b6e1adb9d69e90abf14fb2287c31574be78bfd062d57cab2f9b2683c9d6
3f98575a06a1aeea577757cf63a7cda4c5756d6f757915c47731432de3ba7aed32fa74f44bf0db156
4fe5d8359b3f37fe51e9775e6893ce3a1457de68923d6c249f56924fa907b289659259ccfe84524f1
47334aecfc1be22ca7157a149f5a8bfe7206dfea407d4ee7ca131d640dbf7906a518b12dbf5a49761

76fe7c55e998abb15762aec55d8abb15762aec55d8abb15762aec5582f9bc57cfdf97479114bcd4fe
11d0ffb8b9f73f2c55fffd7f7f62aec5587f903fbbf32ff00e041a8ff00c4d71550fccbf215d7e60d8e8b61
0ea7169d0695ab59eb532cd662f56e1b4f904b1c2ca658804622927daaaedb62aca8691a50d3869
1f51b6fd15c787d44429f56e35e54f4a9c695de94c55749a5e9935acb63359412594f413db3c48d1
3d294e48450f41d462aa72689a2cd691584ba75ac96307f716ad046d147d7eca15a0ebd862aba3d
1f488649e5874fb68e5ba52972e90c6ad2a37557207c40f7071557b4b4b4b0b74b4b1823b6b58eb
e9c10a2c71ad4d4d154002a4d71554e09cc49c47a80150f4f8b89dc8af86d8aa87e8ed3feba752faa
43fa44a7a46f3d34f5fd3fe5e74e54f6ae2aa29a1e891c1716a9a6daadb5dffbd70ac1188e6ff8c8a16
8df4e2a88b5b2b2b18fd1b1b78ada2dbf770a2c6bf080a365006c0018aac6d334d7b892edace06bb
9820967312191c446a9c9a953c4eeb5e98ab0df237e5cb794b59f326b7a85edb6ad7dafea736af0c
e2c12da7b36b98e38a486397d4959a32b0a787c5cbc68aab307d274a92ecdfc9636ef7e428374d1
2198843551cc8e5b1151bed8abbf44e95eb3dc7d46dfd79654b8925f4939b4d10a2484d2a596bf0b
7518ab52e8fa44f6f71693585b496b76e66ba81e18da39652412f2291466240dce2adbe91a4cb730
dec9616ef796ca12dee1a1432c6ab5a04622aa054d298aa28c7197129506550555e83905620900f
81a0c5504343d11607b65d36d45b492fd66484411f069fafa8578d0bedf6bae2abdf48d2a49ae2e1e
c6ddae2ed0c3752b4485e58c800a3b11565dba1c550f2f96fcbb3c8259f48b296550815deda26602
301500256bf08002f862a9918d190c4ca0c647128402a548a529e18aa14695a5ad92e98b636e34d
4a71b31127a028dcc523a71d9b7e9d7156a6d1f48b8865b69ec2da5b79e5f5e785e18d9249aa0fa
8ca450b540f88ef8ab5368da3dcbc525c69f6d3490126079218d8a12dc895254d2adbeddf1551ff0d
7977894fd1165c0b072bf568a85c568d4e3d773be2aac9a368f1a5cc71e9f6cb1deff00bd88b0c616
6ea7f7802fc5d4fdac554b55d034ed5aca0b2990c0b672473d8cb6e7d292de683647888d968095a
538b2164605188c556e9be5eb0d3352d47584e73eabaa327d6af26e2d2fa30d7d28148038c51f27
289fcceedf69d8e2a9ae2aec55d8abb15762aec55d8abb15762aec55d8abb15617e6d453e75fcbf7
20725bfd4003bd6874bb9a8fc3157fffd0f7f62aec5587fe5f9063f3291ff5306a43ee917156618abb15
762aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb15762
aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb15762aec558579b958f9d7f2
f98282aba86a1563d4574abaa53157fffd1f7f62aec5583e8f69e6df2ecbadc5068f6f7f05eea975a85
b4c2f4424c774c18065685a84743b9c55341ab79c4920f96e100743fa4577ff9238aadfd31e74e447
f8621e20ecdfa4937ff009218abbf4c79ce95ff000cc35af4fd249d3c7fb9c55afd31e74ad0795e1a789
d493fea8e2adaeb1e7335af96615f0aea49fc2138ab7fa5fce5453fe1a82a7ed0fd24b51ff243156db5
5f3901b79720269d3f4928dffe4462ad1d5bce808a796adc8debfee4976db6ff007462ab4eb1e7500
d3cb10120d00fd26bb8f1fee315686b3e762096f2bc2081b01a9a1a9ff9118aadfd35e7aa57fc29072
a569fa513af87f718aaefd33e76e447f85e0e20801bf49a6e0f53fdc76c55b3ac79de829e58b73d2a3
f49af86ff00f1ef8ab8eb1e77076f2c5b915ffaba2d7fea1f156bf4c79df953fc316f4f1fd26bff0064f8ab5
fa67cf351ff003ab5bd09353fa51361e3fef3e2ab3f4df9ef981fe13838f763aaa6df47d5f15544d67cee
c4f2f2bdba81d0fe94535fba0c554d75af3e11bf94ed94edb7e955efd7a5b76c557a6b3e7966a3f95a
dd16a7e2fd28a761d3fe3dfbe2adfe97f3c5053cb16d5a1247e941b1ec3fde6c55afd31e79e15ff0b5
b73fe5fd28bfafead8ab6358f3bd581f2c5b800d01fd28bb8a75ff0079f156bf4cf9e7901fe16b7a776fd
28bb7fd3be2ad8d5fcf056bfe18b60de07541fc2d8e2abd755f3b1243796ed145763fa52bb78ed6b8
ab6354f3a517fe75db4dfa8fd2676dbfe61715736a9e751f67cb9687fede647fd8ae2ab7f4b79df7ff00
9d6ad3fee29ff66b8aaefd29e74e35ff000edaf2df6fd27e1d2bfe8ddf156cea9e730bc87976d4b6df0f
e93fbffe3dbb62ab8ea5e71aeda05a11e3fa48ff00d92e2ab5b53f398e3c7cbd68d5fb5fee4c8a7fd3a
e2abc6a3e70efa0da0ffb7937fd92e2ab46a7e72a807cbd6a2bd4fe92269ff4ed8ab6353f3877f2fdb0
dffeae3dbfe91b15686a7e70ad0f97ed80ec7f48ff00d9be2abcea5e6d036d06d89a57fe3a1dfc3fde7
c55bfd21e6ca81fa0eda9dcfe903ff64f8aadfd25e6ea13fa06d6bd87e913bffd3b62a90eb365e76d57
5df2deac9a3d94516837373752c6da831697eb1672da2aa916db53d6e449fe5c55ffd2f7f62ad2962
a0b0a37700d47dfb62ade2aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb1
5762aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb1576
2aec55d8abb15762aec55ffd3f7f62aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55
d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8a
bb15762aec55d8abb15762aec55d8abb157ffd4f7f62aec55d8abb15762aec55d8abb15762aec55d
8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8ab
b15762aec55d8abb15762aec55d8abb15762aec55d8abb157ffd5f7f62aec55d8abb15762aec55d8
abb15762aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb
15762aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb157ffd6f7f62aec55d8a
bb15762aec55d8abb15762aec55d8abb154ae5f32f976095e19f57b28a68d8a491bdcc4acacbb104
16a823155a3cd5e583d35ab0ffa4a87fe6ac55dfe29f2c7fd5eac3fe92a1ff9ab1577f8a7cb1ff57ab0ff
00a4a87fe6ac55aff157963feaf761ff004950ff00cd58abbfc55e58ebfa6ec29ff3150ffcd58abbfc55e5
7ffabdd87fd2543ff35e2aeff15795fa7e9bb0affcc543ff0035e2aeff0015795fa7e9bb0aff00cc543ff35
e2aeff15f95e95fd37614f1fad43ff35e2aeff15795ff00eaf761ff004950ff00cd78ab5fe2cf2b75fd39a7d
0f4ff004b87fe6bc55dfe2cf2a9e9ae69ff00f4970ffcd78ab7fe2bf2b1e9ade9fbf4ff004a87fe6bc55a1e
6cf2b1e9ae69e7e5770ffcd78ab7fe2bf2b7fd5ef4ff00fa4a87fe6bc55dfe2bf2b52bfa6f4fa75afd6a1ff
9af154d51d254592360f1b80c8ea6aa54ee0823a838aaec55d8abb15762aec55d8abb15762aec55

593

d8abb15762aec55d8abfffd7f7f62aec55d8abb15762aec55d8abb15762aec55d8abb15617e47d17
45b9f2f89e7d3ad6699efb532f2bc11b3337e90b80492412715645fe1ed03fead567ff0048f17fcd38a
b0ef3779aff002f7c97ade8be5dd5f4579b57f30fae346b6b0d29ef4dc3daa19664530c6c03220e643
53e1df154cfcada97e5ef9ca0bc9b40b5b39e5d3ae1acb53b396cc5bdd5a5d200cd0dc412c69246e
01068cbb8dd6a3154fbfc3da07fd5aacffe91e2ff009a715483cc3a8791fcb1a8683a66aba5c4b71e6
4bdfd19a6345622488dd7a6f304924542a955462bc8efc4d315456abfe14d2ed1ae97458f5111dd4
16335be9b649793472dc4889578e2525550481e427ec47f19db154d7fc3da07fd5aacff00e91e2ff9
a71577f87b40ff00ab559ffd23c5ff0034e2a90799af3c9be5516297ba17d6ee75295a0b3b4d374c37
d3bb46864725218d885555dd9be1e9e38ab0cb4fcdff00ca1bed31f5a8745bcfd0c9f5f5fafbe8172b
019749499eea20e60a738c4128e3dca3018abd1344b5f2a6bfa2e9daee9da65ab69daa5b437d685
ed634630dcc6b2a12a5763c585462a8eff0f681ff0056ab3ffa478bfe69c55dfe1ed03afe8ab3affcc3c
5ff0034e2a94f99dbc99e50f2eea7e68d6f4db78f46d1eda4bdbf921b259dd208179bb08e34663c40
a9a0c551d61a5f96752b1b6d46d74bb46b5bb8a3b884b5b46a4c72a8752415db638aa13cc9a0e8
51f977579134ab3e6b6572456de2ea2263fcb8abbf2e883f97de5320501d1b4ed86c3fde58f1564b8
abb15762aec55d8abb15762aec55d8abb15762aec55d8abb157ffd0f7f62aec55d8abb15762aec55
d8abb15762aec55d8abb15635e425e3e5b55a93fe9ba9f5ebbea17071564b8abe78fcff00b9baff00
95b7f92b63a3eb969a179825bbf300b0bebc44b948a59b4978a22d6ed247cd5dc88c7c43e23f0d5
b6c5586699e6fd47c99e41f3a48ef3da7e78c7ade9d3fe6bcf3833ceba71b88609b53b28a158ab62
b640981a250d0c75e6deaa73c553bbbf35e81a4f972f2fadbf3166d6bc95ad6bfa4c1a7cba7cd243a
3d9b4aac27b39b58b89ae1d6da731fa971493d484b7a51d3d654c5528d2bceb06af67e47b6d575d
b6ba9346fcd8bed36cbd4b92cd1e9f6d6da87d59394edeab2ac724623690966468ea4f218aa5ffa6
b4df297903f328693e629748f34597e6511242ba9cb1dc0b5b9d76da30b223ca4f092dde4aedf1c6
396ea98aa61f9c5e6ed534dd37f3eb57d2bcd97d6daaf9365d0ae7cb90c1a8ba47657135adbb481
610fc595d9d834722b46d53f057154cfcdde7fbff257987ceda579775b9eef46874ef2a6b5aa4d2ddc
da9cda7daea1a84d06a9771012faaa82d56291d6265f4d7f7d1f0c55e99f94977a34a9afeb1a679d6
0f35f954c90cda7490179ac34ba43c6e2286fe79ee1e40eca25911a5fdc934f85580c55e6bf95ba9e
9373ff0038b1e799a3bcb799606f3a3b3fa88c2333de5fb4649aedcd5c15fe656dbae2a97683aedb7
962d7cb9a7e9fe67b986d35afcaa9b54ba59b547648aff4d8ad05bcf00790fa2e0492a522e2acabf6
7e0c55659f98ed745f27fe535e798bcdf776fe55f3c68c6ebcc7afeb17f793d8b6b91e9f67f578a5b98
ee6036a1a970c11648d1e68e8cbcf156bcf3e6c9b48f2ce9fe5f6f3bea3acf9a2cbca1aaea3a2eab76
f268f0ea1716b215b7bfb716ecd35dde0a2ac517230bc4cd7327da1c954179ebcff00a4f9b3c8df989
6be73f30886e3fc136d79e478d6f5ace0d485de9121bbb881619112ea4376648244a49c022a705e
4792afa8fc8b756f7de49f2e5ddacab3dbcba659b24a86aac3d04dc1c5515e6852de59d694753617
4053de16c552ff00cb824fe5e79489ea745d3bfea163c559362aec55d8abb15762aec55d8abb1576
2aec55d8abb15762aec55fffd1f7f62aec55d8abb15762aec55d8abb15762aec55d8abb15631e402
5bcb4a4f5fafea83eed4ae71564f8aa1a7d3b4fba9527bab48679e3a709648d1dd789e4b42c09143
b8c557b59da3cff5978236b9e063f58a297e0dd57952b434e98aa9ae99a7259ae9eb6702d82538d
a88904228790a2538ec77e98aac9748d26725a7b0b79199cc8c5e1462646e356351d4f15a9f618a
b73691a4dc97371616f2991fd590c90a3169387a7c8d41a9e3f0d7f976c556be8ba348cef269d6cef
21064668632588350492bbef8aae8b48d26195a786c2de39d93d36912145728405e24815a5140a
7b62abe2d3b4f86cff4743690c7a7f129f5448d561e2dd470038d0d7714c556a697a647149047650
2c3353d68d6240afc7a720050d3b571558da2e8cc02b69d6c555782830c6405df61f0f4df15546d37
4e6b5362d6701b22791b631a18abcb95785295aefd3ae2aab25b5bcb24734b0a3cd0f2f46465059
398a3712454546c698aa8be95a5c82012595bb0b5056d834487d2561c484a8f8411b1a62a8b000
141b01d062a95f99457cbbab8a56b6573b0dabfba6c552cfcb63cbf2efca2de3a2e9a76dfada478ab
27c55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abffd2f7f62aec55d8abb15762ae
c55d8abb15762aec55d8abb1562571f965e46ba9e6b99749026b891e798c735c440c92b9776e31c
8a0166258d075c55a5fcb0f232a701a57c3d286e2e4feb97156ff00e558f91a943a5023de7b83ff003
33155c3f2d7c900823495db6159673b7d3262ae6fcb5f2437dad250ff00cf59bbff00b3c5569fcb2f23
36c7485ff91b38ff009998ab7ff2acfc8fdb48514e949671ff003331568fe597918820e90a6bd6b34f5f
bfd4c55e67e7ff002ce97a7ebf6b3687a7c76de5df29c51eb5e7090bcd31b9b39d9e0faa8512f20c91
09aecb7f34508ff7662af4c4fcb6f2248a244d26364700ab09662083b820fa98aaff00f956de48af2fd1
11d477f525edfecf155adf969e477146d213fe464c3dbb3e2ab5bf2c3c8add7484fa259c7ea93156d
bf2cbc8ec2874914dfa4d703afca4c55b5fcb2f232d29a426c282b2ce7f5c98aaf5fcb7f242b161a3c7
c8f53ce53ff1be2ad3fe5af91a40564d1a165605594b485486ea08e7438ab24b4b4b5b0b482c6ca1
4b7b3b58d21b7823015238a350aa8a06c00028062aad8abb15762aec55d8abb15762aec55d8abb
15762aec55d8abb157ffd3f7f62aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8a
bb15762aec55d8aa9cf3c36b049737122c56f0a3492cae42aaa20ab3127a0005715621e41b15bfd
06f3cc1a9d9186f3cdd349a95edacec25616d32086da26edf0db2440af4e5cbdf1554fcbe9eeedf4cb
af2b6a974975ab7966e0e9d24abf0bc969c4496523af666b768c391b19164a62acbf15762aec55d8
abb15762aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb15762aff00ffd4f7f6
2aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8ab0bfcc58c6
b567a7f91bd395d3cd171f55d45a16e1e9e976ebeb5e176ec92228b634deb70b8ab335554508802
a2801546c001d00c5587eb2c3cbfe75d275d69521d375d41a16a20aeed760b4d60e580f13343bf5
6963c5598e2aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8

abb15762aec55ffd5f7f62aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb157
62aec55d8aa47ab794f4bd6353b7d66792eedf53b6824b38ae2ceee7b53e84ce923a1113aa9ab46
a6a4576c55837e6068f368cfe551a76bfacda0d4f5fb3d36ef8ea13c9cede7494b2fef0bd2a506e315
4feebf2dadaf7d35b9f31ebd2411cb04fe835ff2467b69126426b193f6d14f5c559b62aec55d8abb15
762aec55d8abb15762aec55d8abb15762aa693c12492c31c8af342409a3520b2161c87203a546e3
1554c55d8abb15762aec55d8abb15762aff00ffd6f7f62aec55d8abb15762aec55d8abb15762aec55
d8abb15762aec55d8abb15762aec55d8abb1579ffe691025f2357bf9af4e03a75f4ae3c7157a062ae
c55d8abb15762aec55d8abb15762aec55d8abb15762ad6f5ad76f0c55d4009206e7a9c55bc55d8a
bb15762aec55d8abb15762afffd7f64c1f9b5f97f751a4d69ab35c41282629e1b4bb96270a48255d2
12a771d8e2aa83f34bc904902fe6dbaff00a0df77ff009e18ab67f343c9214b1bf9a80127fd06f6bb7b
7a15c55c3f347c926b4bd9f6ff00970beeff00f3c315737e687929295bdb8dfc34fbf3f7d20db1577fca
d0f2550917b7141d7fdc7dff00fd50c55bff00959fe4ba72faecf43b8ad85f0ff9918ab5ff002b43c9448
02f6e2a771fe817dff5431554ff009593e4ff00f96bb8fa2c2f8ffcc8c55aff009597e4dff96cb8db6ff782f
bfea862ad7fcacdf26d48faddceddff0047dfd3effabd3156bfe567f93361f5bba15dc574ed407ebb7c5
56b7e6979296b5bcb9db73fee3b503ff62f8ab47f34fc920f1fae5ceddff476a14fbfeaf4c55c7f34fc943
7faddd1de9b69ba89fd56f8abbfe569f9283043757618f4ae99a881b0af5fab53156cfe69792c0afd6a
ee9d76d33513faadb1569bf353c94b4add5d9af4a699a89fd56d8abbfe56a792bbdd5d8af8e99a90ff
00b16c55a3f9abe485eb797477a6da6ea27b57b5be2ac2ff00303f30bcb1aac9e526d39ef6e469fe6
2b2bdbc29a5ea27d2b78e2983487fd1ba02c2a7df156647f363c8e2bfe977669e1a5ea47a0af6b6c
556bfe6df919055aeaf69b74d27543d76ed6a7c7155dff2b63c8fff002d57bd48a7e8ad4eb51d7fe3d
b156d7f35fc8ecdc45ddd83efa5ea407de6db1577fcad6f2452bf5cbb03df4cd447ebb6c55b6fcd5f23
a80c6f2e8a9e8469ba89fd56f8ab97f35bc90f5e37975b78e99a88afcab6dbf5ed8ab8fe6a792402df
5bba201a1a69ba8935f90b6c55a1f9abe4a22a2e6f69bffd2ab53edff46b8abbfe56b7927fe5a6f7dcf
e8ad4e9b9a7fcb2e2ae3f9afe480bc8dd5ed3fed95a9ffd9362ad9fcd5f24850e6eaec2b5295d3352a
efedf56a8c55b8ff34fc9528aaddddd36fb5a66a2bd7fd6b618abbfe56a7927998feb775c80ad7f46ea
3c69feb7d5e98ab67f347c9418afd72e4b0a12174ed41a95af85b9f0c55c7f34bc963fe3eaecff00aba
66a2dfaadb156bfe569f92ea47d66f76a1afe8bd4a9bfbfd5a98aaeff0095a1e4cad3eb379f67957f46
6a34a7cfead4afb62aeff959fe4cff0096bb9af87e8ed42bf77d5f156ffe56779336ff004cb8dffed5f7ff0
08fee36c55523fcc8f284cdc23bab966a3353f47df7450589fee3c062ad1fccaf278ad6eae4002a4fe8
fbee9ff223154dff00c49a0ff873fc5df5f8bfc35f53fd27fa4f97ee3ea5e9fadeb57f9787c5f2c55fffd0f5d
7e43b16fc9ff2816a93f505049dc9a3b0afd38abd1315762aec55d8abb15762aec55d8abb15762a8
2d62f27d3f49bebfb68926b8b58249e3864731a398d0b712e15ca834ebc4e2af3ff0025fe64799bce
5e50f2a79da1d0ac2df4df348b4962b27d4d85e4505dfc4c543db224af1c61a431ab296546e38aa3
3cf5f9a7a7793f57f2be8d6cb6daa5f79835fb4f2edddba5da4771666f637904cd10572dc420aa7c1f
6d5ab8ab12f317e7e4f65a679e7cc3e5ad32c358d17f2fe5bcb7d661935136f7b2fd4ace1ba32c089
04ca632d2fa3f11fb6397f938aa7ba27e6dde5c79b3c9fe55f3068b1d949e79d227d6742bcb2bb378
83ea714334d05c23430b46424ca5641c91cfc3f09c559fc5e60d067d4db458354b4935840ecd6093
c6d700464073e986e5f092396df0d77c552fbef38e93fa2b59bcd06f2cb57d4347b596ee5b28ae92b
fbb5720398c4850314650dc4ee0f81c558ef937f387cabe68b1f294577750699e6af35f97e0f3441a1
4930678ad268e26359085068d2d06c0b7176e3456c5536d07cf5a74fe5dd2f55f356a1a3e91a86a2
b3bac16faa437768df57770fe85c30884a15579390bf06e0fd9c5531b5f3af936fae2c6cecbcc3a65c
ddea8865d36086f20924b98d6b568555c970389dd6bd0f862aa1aef9c6c34fb5d5a0d11a0d73cd9a
7d9dc5ddb7966deea24bdb99604a888292c57931552c5689c872c558137e6bf9ecf9d354fcbf87ca
1613799b4bf2e43e6768135693d397d79a4816d11cd90fde738c8e6470e98aa6fe4cfce0d2bcc1a9
6b5a3798d6d3cb3ac699a9c3a3dad85e5f4467ba9a6b1b6bde288e2225d7eb3e99450df1275c559
8ff8bbca9fa45747fd3ba7fe977925812c3eb707d65a6b64f566411f3e45a34f89d69555f89b6c55bb
6f36f956f6ceef51b3d72c27b0d3c85beba8aea178a0240204ae1884a8208e47718aab2798741934
d93588f53b56d2a2631cb7a268cc28e1821567ad037221789df96d8ab19fcbafcc48bf3026f35c705
bc3143e5ad6a5d123b8b6b917715c88ade09fd60c1138d7d6e257e2a15fb58ab38c55d8abb15762
aec55d8abb15762aec55d8abb15762aec55d8aa8de1a5a4e7fe2b7ff00889c55e315ff00ac49affdf8
1ff768c55fffd1f5dfe457fe4a4f2a6fca968454ef5a4ae3157a1e2aec55d8abb15762aec55d8abb157
62aec552cf31971a06a8228a49e56b59d238605324aecd1950aaa3a924e2af9e7f2d3c950f94bf2e
bf2e3d7f20eab2fe66796a3b5410d5a0821bd9627b2b8967999de2f45639e491f8066207c2bcb154
b5fcafe7f4d27c85e5ad4bca9a8ea1e631610000026060f002220574d46430100000000000100000
0000000001600000000200000ec2e0200ecae0200f297e627e9dd675e885bbdbde69ef3de4bf5f8e
67954b738ee23468cfef538942b455aaa9ceb9e53f35dff00e597e7ee876ba05efe94f34ea9a94be5
cb731056bc86f34fb5b78dd2ad40a6489c1e7c788f88fdac555fc89e4bf31fe5cf9c7cb7e69b7d06ef5
bd0bcc9a2d8e8fac8baadc6afe5abdb482342216b890bfd467653eb43113c26512a7243c7154b7c8
1e48d6ec64b28bccbe49d76f7cf7e529f5b92c756bad4c2e81706f96e2b3c14b8624deabaabc461f8
1dcb49c7872c550fe47d07cef0ea906a3a9793b50d1adae3f2f67f2fbe9d0416f169f63a9c33fa8b65
6d1452c9208943111492173275e43e2c5535fcb6f29f99fcb5af7e56dfeb9e5dbd6b0b3fcb94f2aeac
1628e6fa9ea704b6923c73a73a85658a401d43abf1e23ed0c5524f21fe5f6bf67e5afc8ad3358f2adc
c73f9575cd6ae75a866b5465b2b6b94d4040edd4712f3c057872e3f6b6f4f655574df236bb67e5ef2

595

ec36de53bab4d46c7f352e3cc17463b54471a43dfddcab7554fd8f42645e3f6e954e1b62a8bfc9ef20
6afa66afa0d8f9cbca5ae7f8c7ca3a86a9345e66b8d489d01a1d4259bd4bab6093b34925cc722f385
a11fbcf89f8f118ab37d3746d723ff009c9ad73cd52695769e5ab9f29d968f06aad1d2ddefadefa6b87
406b5a049168d4e24fc35ae2af33f3ffe5df99755f2f7e71fe8cf2adccde62d73cdfa1ea5a1dd2c0827b
8b0b16d339c914a48216336f70684aff93fde62a9b6b7f959abebb63f9df2689e5c4b1f36eb7a9a5ff9
4f549ade3b49ae22fd1b6904eb05d539446764b9859aa87f7acedf0be2abae340bc7f2d6bde6bd07f
2db5b9fcc1a8c7a2da6ad63e6ab917f753258ea11cbfb9b3fac98e636485e585d9e3e6e11179a725
c5525b1f2c7e61d8f9825f31cde58d6b51d1ac7f318f9a6f34fbbfaa8babbd2ef7448eca1ba8e389c46
f25adc032fa0a03a5169fbc1b2af56fc93d275ad3356fccbbcd5742bad12d75df344dabe946ed614fa
c5acf696d17a816291ca92f13160e15be21fb5ca8abd7315762aec55d8abb15762aec55aaee47862
ade2aec55d8abb15762aec5546f3fde49ffe31bffc44e2af1eac1ff42a55e27eaffe03fb151cb8fe89e9
5a52bf462aff00ffd2f59fe46dfd927e53f95d65b9892416adc95a45041f5a4f138abd0bf48e9fff002d7
0ff00c8c4feb8abbf4969dff2d70ffc8c4feb8ab5fa4b4eff0096b87fe4627f5c55dfa4b4eff96b87fe4627
f5c55bfd23a7ff00cb5c3ff2313fae2aefd25a77fcb5c3ff002313fae2ad7e92d3bfe5ae1ff9189fd71577
e92d3bfe5ae1ff009189fd7156ff004969dff2d70ffc8c4feb8ab5fa4b4eff0096b87fe4627f5c55dfa4b4
ee9f5c82bff1913fae2adfe92d3bfe5ae1ff009189fd7156bf4969dff2d907fc8c4feb8ab7fa4b4eff0096
b87fe4627f5c55afd25a77fcb5c3ff002313fae2aefd25a77fcb5c3ff2313fae2aefd25a70eb7907fc8c4f
eb8abbf49e9bff002d907fc8d4feb8abbf4969dff2d907fc8c4feb8ab7fa4b4eff0096b87fe4627f5c55df
a4b4eff96b87fe4627f5c55dfa4b4eff0096b87fe4627f5c55dfa4b4eff96b87fe4627f5c55afd25a77fcb
5c3ff2313fae2adfe92d3bfe5ae1ff009189fd7156bf4969dff2d70ffc8c4feb8abbf4969dff002d70ff00c
8c4feb8ab7fa4b4eff96b87fe4627f5c55dfa4b4eff0096b87fe4627f5c55dfa4b4eff96b87fe4627f5c55
dfa4b4eff0096b87fe4627f5c55afd25a77fcb5c3ff002313fae2aefd25a77fcb5c3ff2313fae2adfe92d3
bfe5ae1ff009189fd71558b7ba5ac8f28bb879bd391f5548f8761b16a0fa3155ffa4b4eff0096b87fe46
27f5c55626a36757f52f2dc8e5fbbe2ea28b41d6ac6a6b5c5577e92d386e6ee1a7fc644feb8ab7fa4
b4eff96b87fe4627f5c55afd25a77fcb5c3ff2313fae2adfe91d3ffe5ae1ff009189fd71551bcd42c05a4f
fe97082637a5645fe53ef8abc7c4d09ff9c482e245283c85c4b72140dfa2694af4ad7157ffd3f4afe4cf
e5c7e5eea9f961e5bd4752f2ae8f7d7f756cd35c5ddce9f6d24d2c8f2b92cecf196249f138ab3893f2b
ff2ae101a5f276811824282da6d9a82cc6806f1f5271542af90bf266489274f2d7965a0926fab2482c
ac0a34e091e983c285ea3ecf5c558b79ff4ff00ca5f2468d6bacc1e42f2feaf0cdac69da25d470da58c
6609353bb8ed03b7ee5ea63690164d8e2aa3f9956df947e40f22ddf9eecbc81e5fd7ec6cae6d6da6
86d6d6c23ff7aaea3b42449e8c8094690725c55955afe5cfe5e4dac6a3613f903cbd0d8daa5bbda5d
ada58c924e650fea7284421a2085400493ea576a71c551567f971f947a84467b0f2a7976ea10c50c
b069f6522865ea2ab191518ab07d22c3c89aef9c7ce3e4ed2ff002b7cbe6ebc9d2d9c37573710d94
71dc7e91b6fad4463096b21145346e54a374e58aa7b6fe53fcb6ff0a45e60d57f2f341d275196177fd
137969608deba72a4425f4b8b72e3f0b01f12fc54c5581c5e65fc9fbed37c889a77e5e7974f9abcff00
a5cdace97a3ddc3616f14315bdbc7398e6b8fabb519cca9145fbbf8debd94e2a8083cddf976be56f3
879cb52fc9dd1edf45f226ad71a2f991208f4eb8ba46b1f4beb134319b78d2448c4a0d3d45760adc5
6b40557aff00f81bf26858da6a32f963cb90595f2c6f672cfa7d942241328640bce35dc83d3ae2aad3
7e5dfe50dbdcc3653f957cb915e5c57eaf6ef6162b2c94ebc14c756a7b62ac163b9fc90b3bff003bc1
e66f26797b42d3bc937d67a75c6a3716764d1dc3ea16b0dcc4514400863eb2a70f88f2c55965bf90f
f002d66d52ea17f23796974486d60bab6d516dec1ccad297f5018443f0222aa112172afcffc9c555df
c91f92b1c73ccfe5ef2c2c36aa8f752359d8058966158cb929450c3ecd7ed76c555ae7f2fbf27ec960
6bcf2bf96edd6e5c476c65b1b18c48edd153920e44f60315798f9eaf3c97e46b79f52bdfc9bd19f461
aeda7972c6e2586ca096ea5be78e28ee122368c041ea3f1e45f97c2cc1715474c9e42d23cd5a279
67cd7f953a068c9ad5d6a56d1ea6f1d84b6cb169962b7df5804db4758dc318fe2e051d1b962acf64f
227e4cc56b1df4be5bf2cc765327ab0dcb59582c4f1f1e5c95ca50af115a83d3155e3f2f7f27cdda58
0f2bf970df491fad1db0b0b1f55a2fe709c2a57de94c55b87f2f3f286e2ea6b2b7f2b79725bdb6a1b8b
64b0b16963af4e6823aad7dc62ac33528bf27ec7f337cbbf96b07913cbf7973af5aea57325f436b60
df547d2962678a588425b937aab4a95ef8aa3ac340fcb7d6b4fb5d6744fcb9d066d1eef514b2b7bab
bb5b1b3f5acb998def615681f9a161fb84f85a75a38e2196aab236fcbffc9e4b88ad1fcafe5b5bb99da
28606b1b1123c88bcd9554a54b05f8881db154bb43f2dfe44f992fb56d3741f2ff96afefb42b96b0d5a
082c2c9da0b9444768d808faa8750d4d837c3f695862a977e66e89f95bf96be46d67cf33fe5e68ba9
59e8901babbb58ac2ca295a15203702d0905857a1a7cf154b608ff2a6dfced63e47f317e5ce8ba4d
e6ada5cdad693a87d4ec27b29a0b468c5c46cfe92347247eaa37c49c194ecfdb1564a7c93f95f3ea
7636ba5792fcb17fa7cd24f06a378905807b69a2884888b10858c8cd5f8979298d7e3df154747e40f
c9c9af65d322f2cf96a4d4a05e73d9ad8d8b4e8bb6ed184e406fdc62a966bbe4ff00cb0b1b299f42f2
5795754d5a130b369f2c7a7d9810493886491a430c9c420e64557e364f4ea0e2ae8b41fc829f54d5
b458f45f2b7e93d0bd2fd2f6ed6562ad6c6715412728c004823e5c96bf6862aa1e73f2ff00e517947c
a7ad79a13c93e5fd48e8ba64fad369f0d9d824b35a5aa1919a32632284290ac7e12db72c558c69d
79f958dabf9274cd77f2c348d320fcc1b4373e5ed423b3b0ba83d75b65bbfab4e0428f1c862259485
78db8b0e78abd060f217e4ddd5bbdddaf96bcb53dac4c639278ecac1e3571d55995080457a62ab1
fc8ff0092d1ac6efe5df2c2a4b2b5bc4cd676003cc878b46a4a6ec0ec546f5c557dd7907f272c9996f7
cb3e5ab764e1cc4d6361191ea9e295e4829c88a2f8e2aa90fe5cfe51dccd3dbdbf953cbb35c5a90b
75147a7d93bc4cc2a03a88c9527df1549b58d13f20341d126f31eaba2f95a1d0ede68ed65bd16563
2462e26758d22aa46d5766751c7aef8aa6cdf97ff93cb35bdbb795fcb62e2f072b488d8d88799695a

c6bc2ac29e18ab8f903f2704ad01f2c79684e81d9e236363cc2c4033923854050c0b785462aab69f
96ff94b7d0add58f94fcbd736edf626834fb2910d3c1963231575efe577e598b3b86ff066875113d0fe
8db4e814ff00c578abce63f2ee8b17fce224ba745a4daa5b4fe4917935a2c3108deec69ab3099942f
1327a8aafccfc5cd4375c55ffd4f5dfe4553fe551f9508a10d67c853a7c5239fe38aa49ff00391f6f6171
e42d346a5686facd3ccfe5b696d5213712488757b657458c6ec59495a0ddabc7be2af35f3f7e5f6a5
3cde77f33f93fcb772be5d9b57f25ea16fa5da5a18a6b9b8d0afc4da8dedada30470c2068e3f85034
c627a06eeaa13cd1e5bf30f9927fccbbeb7f296a89a3eafe6bf256b36d05cd8344d75a7d81b25bd91
61157629e8c8d2215f529f69791e38aaafe67fe5f6aafa17e6adef92f42ba8f40f3349e578f49d06c2c
e48dae751d36fd26bebd8ed55178298446ad2715f57d166de8a5954e3cf1e5ef355f79b3f37f50f2ce
817974da9693e567b30b149691ea8ba65dcd36a16b14cdc0348d037a456bf173e1e38abd6bf2f25
d0f56b9d53ccfa2f946fbcb126a6b6d15f49aa5a1d32e6e5ed159501b526a046afc7d4a0e7f647254
071579541e59d22eff0036ff00372fbce7a0f98068dad3e910e957da7c1ac4705dc3069a2dee389d3
f887e0f55ab8ff576c55116f77aab79962d5b5df24eb33792afbca92687e5cb396c5af2f2d27b2ba99
245bcb7452617be87d0742ff0858f848e871563fe44f29eb4be62ff009c7bbad53cad7b689e5bf2c6a
da5f981aeec587d4eebd0b486d9267a301c9a193d225ba7c5f0f2c552383f2e3cdba9c3e7df32db68
9a8dddd697f981a9799e2f246ae9716da4f997469521540b149489a6063696d988fef923599783ae
2acdbcdc2e3cc7e6e3abf99fca5e68d47f2f7cd9e59b5d3acb4cd3ed1beb3a7de4735c1bcb6bdb6a8
681a549a2e3303c3f77fde5155b15487f34346f33c906a7a3693e4cd66dee34b87ca8f6579630beaf
3ea56da65dc33c824be766e2d68a24531c5c6e2e243ea179236c5519e78f2c79875dd37f3d05bf97
2fae9f54d53cbba968b0b5a396bc82c2db4f1706dd5d40774f46542abf1721c7be2a9a79b348bbd5
7cc5f99f7fa6f966fd74fd6ff2e20d374e88e9d227afa8236a34b609c2866559e0f83a8a81fb078aa80f
2f79216dfccbe4d6bdf2a4c34cb6fcb2974dd5b9e9aed08d554d995826050869c2c730504337da03
edfc4ab1ed0bcb5e608b4ef2e69bf991e58f336b5e55d57c8ba3680965a540ef2d8ea564b2c77f6f7
71928f034dea45c6e2a8bfbbfef178038abd03f3e344d62e3f2c3c99a0e91a26a37b7d63aef97ee65
b0b559f559e0b4d2ee2392669a740c58a22fc4ec6b2374e58ab21fccad14ebbf99ff009513cda3cda
a687a7dc6b13ea729b47b8b5b75b8d35e281a7254aaf290855e5fb58abc9fc9fe4496f25fca4d2f5cf
285d3697a3ebde73fd216b7fa5c86dad74bbf37ff0051595658f8ac3209a1f490fc3ec38ecab24d03c
b84f9ba4d0fcd9e51d7eebcc5a479a27d6341d6ad54dbe84d69eab4b6737d6a32aa890dbb8b77b6
6e55f4f87a6cadb2ac12c744fcc4d4352d327f2e794357f26eaada379df47b6b75b5912c74dd57567
492c267bd72f2cdeb4886e1ee1c986362a91aae2a982797bcc9e60d7ff2c63d1bc9dace857ba5f93
b5ff2f6bb7f7760d6a969aa5e58416f0996e09a48a6589dc4a8d206e41ab566a2acb355b1b8d57f26
ff00272d74fd2e7bed4bcbfad7955754b7b3b77b996c1b439638b51f5046a4a7a0627493e54df1563
fabf933505d3bf302fa1f2adeff0088ee3f3374dd5b48bbb7d3e4374da6c371a7349756f205afa6121b
8e4ca77f8abf6fe25593792b536fca09bf397cc3e66f2beabf553e68bad7a1bad3f4ff00584fa4ddc56
71ac90c9f0090230924950372408edc7c55667ff391b65a8ebdf91be70d1f43b0bad5356d634e6b5
d3ac6ce09279e59652a5470404814dc93b0c558f7e68fe5a68d7ff945e6dd5f49d1ef759f3d6a7e55
b9d1b4e7bcfad5f6a204f1556de28e72e62acbc4b0454f89433fd9c550717946df4af30fe46dde8de5
792c4d8ade4daf5d5ae9cc9f569a6d08d929bc7440559a5e11d5cf2f877f856b8aa57e5ef28799e7f
277e5de817da35ce9ff0098de56f32a5d79835b781fd392d2d6e257d42e05daad268f51818a2a559
a46978ba0f4d8a2ac5753fcb991ff00e71bf5ab4d3fc91709e79bdf314ae902698eba9b5a1f33fd7e3
65f8038896da9228fb0a3e1a72db157a858f93acb5afcc6fcd8f2f7997cb7712f97bcf16da7bdb6a86d
3fd065b41a6a5b4ea672071984ab5f4fedd7849eeaab1ad2741f395c7e4cf9eaefcd963fa67cf167a0
ea5e43d1eef4d56bbb9d4edf4e1716f1ccab1a82ad713bfef13f67d3e4ed8aa7b63e41d293f27f4ff34
c9e53bef3179f348f2849a6d8687abcf7915dacb258882e6ce2491ff70d29531b3c4ab215fb0fc698a
bc8b5df2e79a353f2efe6a58b794f5eb84f34687e5afd0719d15ed63f5b4d9e58ee2de2823e4d1344
8ea13d53eaba2973232f16c559ff00e72f9726326a5a07933c89730d9ea3e4fd522d3b5ad134d595
a5bebf2ccd60eadc62b52ed1c534b33c7ebcbf6237475f8954bb55f2b5feb97be7ad5afbca97d70da
9fe57e9ba6d8fd6f4d90dc4dac225f728002ac7eb0a6586bbf25f877f8365503ac7937ce935a3daf92
f42bfd3b55befcb1b0b0b8905bc963ebeab6d7914d2da4b3b2802e5a1f5d07a8d50643f17c58aa3b
cdfe54b7f31fe5f79ab5bf29791bcc76fa9dfcde5f9b51b4d6e068ef6e7f446a96d394b7b0a90cd1c06
6acaa179afee95a41f61546dc68136b1e73f33d8f9bfc9fe66d42d35bd474cd67c977366ad6d630c1
6b6b6c208679e321ac5edee21767562bf0bf2e2fc9959544e8bf97d63756bf9cb71aa797af6c2f757f
324cfa2ead65a7d3525b1b9b5b087eb364648fe3459a2924745149421e6ac1855566fe4af316bde4
bd2a0d2fcfb66d77737fe60fd0d61e62d32c3ea91ea0278e310df5e5a823eaed23d617281919d3d5
50b1becabd4efcf1b1b96a569148683bd14e2af1fe07fe854387a8b5ff00d3d4fd9ff008e475e98abffd
5f5d7e44d7fe551794ebff2c67fe4ebe2ac9fcd9e52d2bce7a6c3a56b0d3adac1776da8446d667b79
05cd8cab3c0dc9083f0488af4e84aef8aa788bc5554b162001c9ba9a7734c55bc55d8abb15762aec
55d8abb15762aec55d8aa41379ebc916f23453f9974a8a54255d1efad959594d0820bd410450e2a
9b4ba85841647539eea18b4d58c4cd78f22ac02222a1cc84f1e34deb5a62a85d43cc9e5dd26ca0d
4754d5ecac74fbae3f56bbb9b98a1865e6015e0eec15aa08a50ef8aacd3bcd3e59d5ee0da693ad5
85fdd85e660b5ba8679388efc5189a62a9b62a87bcbfb1d3a2171a85cc569033a44259e45890c92
b0445ab10393310aa3b9db154462a87bdd42c34c80dd6a5750d9da8214cf7122c5186634039390
2a4f4c55d0dfd8dc5d5cd95bdd452ded9f01796d1c8ad2c3eaaf24f5101aaf25dd790dc62aa5a96afa

597

4e8d0adc6af7f6fa7c0edc125bb992042d4ad0190804d062a87d11fcbb74973aa79765b5b886fa5e
7757563224b14b3280a598c64a97a5391fb5e38aa6b8aa8dcda5adec26daf218ee2dd8ab3452a87
425183292ac08d880462aad8abb15762aec55d8aa53e66f2e69de6dd0eefcbdab35c269f7aaab33
59dc4d6570023ac8384d6ee9221aa8fb2c3c31543c571e50f24e9f67a27d6ec744d3ed61e3676b3c
f1c00448402c3d5605b73f139a92c6ac791c5539b6bab6bc823bab3992e2da51ca29a261246ea7b
ab29208f962aab8abb15762a87bbbfb1b011b5f5cc56cb33ac3119a458c3c8e68a8bc88ab13d00c5
5d797f63a744b3ea17315a42ceb1ac93c8b129773455058815276031557a9e4453e1a0a1f7c556c
52c53c6b2c2eb244e2a8e843291e208db156a482199a3796357785b9c4cca18a3d0af25af434245
462aa3a957f475dd0d0fa3250f87c0715790fa67fe8543d3e4b5ff0171e553c7fe391d6bd698abfffd6f
5efe46ffe4a7f2b7fcc2b0fba57c55e838abb15762aec55d8abb15762aec55d8abb15762aec55f2c68
1a2eaf279abf3e9bcabe4ad07cc5a8a6ba3ea51eacd1c43eb0fa35ab84f4cdb4819598f260648f9b3
354aeef8aa73f981e6093cc5e4dfcd0fcbbf28c965a7f977c81e53115ec32db0bc8eedeef4d9e44862
3ea80914290f0e639b7adb6de8b075501e4cd26e75bf3ffe5b693a85c5bddf96dff2ba0964d1ef2cd2
ea078fd7d356542246e3c9e8a79f1f842f1e2715623f97bf97faef9dfc9173a0f967cb965a2496fe78d
56ee3f3f24d6f0dd59c161af4b3491dbc70a7afc9910db2a9648f836e786d8abd77ca9f983f997e70d
5f4ef3268b636dff2af352bbd474eb85bbfab44d67f55965b7b6991d2eccd2cad345c27b778a3a07a
47464abaac424fcc2fcd2d5ff27b4cfcd1d757cb77da66a33e8a8ba0c9a64f37a5712eb4966f3abc97
047301d1e3057f74e9f698ef8ab25f35fe6df9b2cb49fcc8f3ae84d689a57e57df496177e5eb988b49
a9476b6d6d753c8d70183405927220e28eb54e52730f45558afe70f9ab55fcc7fca9fcc4d42d9ed6d
3cb9e5bd46db4afd17736debddccf0bd8cf24ed216530480ce4420237c2bcdb973f81565ba8fe66de
796bcf1f98ba7be9fa55bdd417fe54d2b4cd523b7689e49fcc3cede2975293986952df6e3429f0feed
78f2e58ab1ff00f9c8bb5f37c3f93be65b1f36cda76bf1c1acf96e5d0e582216d732c536ad68248ee61
7e71c7fbce7146eac43c5fde7c5cf92aada968be71f27798f5ffcd9b1b1d1bf2fb4f9349b3d02db42b9
b9125b5ddecda82937f711d8c7c1e68e27315a431f29a790fa6ceaa5462aab6df9bdf98d269d0d95
b1d3db5383cfff00e03b8bdd46d248de5b696d92e23b868609955255e7c5d41e2f4dbd3ae2a99f9a
7f313cfde4db8856fb55d37579b426d06d35eb5d3ed1c25c4bac5e45673cb7323b9164409964b58
55a591f89775f49871552df34fe6b7e686972fe61eada75c691fa1ff2ff00cc5a6e9eba6bd9cfebdfd8e
a10d93346f3fae444e9f5b2dea2c4dc8a7d80b8aaa5efe71f9ebcafaff9b3c9bacad96b5ad59eb3e5d
d2741bdb2b6fa920ff14452baac90cf7455cc26160959e3f54b2ab32e2a81f35f99ff003a208fca3a46
b57c9e5fbeb9f3d69da5a5e431db4971a8e8d750cd3c66e6dedee255848785a391564e332af2f857
9262ac8b45fcc9fccaf34eb51eb3e5dd2a07f24da7982fbcbbabc776d69008ed6c2e24b17bd59cdd7
abeb2cd1fa9f5736ea1e26f4d5b9f191954ab49fcc0fce9bff28eb9e715fa86ab0d86af7fa1fe86d1b4e
91efd22d37577b69ef2059ae47aee96d1bb25ad3933a86e6ffdde2af5bfcb8f345bf9c3ca567addbea
906b02479a27bc82192d1b9452b2049eda5a3c13a001668987c1272ed8abca7fe7236dbd4f397e4
e4f6fa25bebda82f98aed22d3ae4c510b81fa2ae9bd232cc8eaa0901be21c792afcf15631e4bf325ff
0096ff00297f377f37bcacf6ba56a4f35c6a5179164899a0d02f748b658a6b3b88418692ccd1fa9294
58d4f35923e63e26559af9b3f34bceda2cfe7f8b4e360dfe1ff23d979c3491716d2305bb97eb8b3452
159979a1faad53ec952dbf203154af50fcd4fcccd1349fcc617b73a4dd6afa0f942cfce9a1cf1d9cd1db
c3f598aebd5b5963fac16968d6b5497927dbf892838e2a8db7fcd2f3de93a879c748f306a3a13cf61
e5bd2bccfa3ea5731cda6d8db3eab2dc5b1b6b83ea5c34a15a1568d942bcacde9f11c968ab19f3cf
98b5df33f96aff42d5fd2b9d6bcb3e7af29dbe8da9ea365f537617d2e9f791bcf6e8cc5194ccc8dc7d3
664a72546e58aa8fe666b9e6fd43c9fe78f2379f7ea3aaeade56d6fca179a5ebd616c6d219ed756d6
2d8c6a629249fd29e231c88fc64f8a2646fdbdd567aff00981f997adf9aef24f28e9b6b27957cbde63f
d01af4576f6d1a9b18523fad5cfaed72b2c73a1943c517a0d1bc63ed7c61955645e57bd974bfcd9f3
7f9320676d15b4cd2fcc5696ffeeab5b8be96eed6e113f94486d925e1f679991c7db6c55e8f8aa175
26e3a75db784321fb90e2af24e27fe85578537ff0001d29ff6e8c55fffd7f5efe470a7e54f9647616f20ff
0092f262af41c55d8abb15762aec55d8abb15762aec55d8abb15762ac1ecff0029bca1a7deeaba8d
89d4adaff5db8fae6af7106ada842d737010461dfd39d4542008b4028a00ed8aa12e7f23ff002cae62
86dff43b5bdbc7a61d0678ad6eeeed96eb4b21bfd1eebd2954cea0bbb0f54bb72663cbe26c5534d3
bf2c7c9fa46aba7eb3a65acf6ba8695a6fe82d39e3bcbae30e9945ff004754694af10515b71cb9aab
576c5517e4ff22f973c87697361e59826b5b2bb9e4bc9e096e6e2e54dcceed24b20f5e47e2d23b16
7a7da6c5501a7fe55791f49d66fb5dd334f92d2f751b896fee228aeae56d05fdc0612ddc76bea7a31
dc3f23ca648d5fbf2ae2a86ff953de44ff0006dbfe5fada5caf942d2e12eedf4d17d76024b0c8278e92
7abea7149409554b71f53e2c5515a97e56f92756d42f350bed3da43aa7a475bb4134ab67a93dbaa
ac4f7b6eac239d902280cea76015b9280315436b5f939f97be60bcd62ef54d2e4913cc2223ae59c5
77756f69792dbf0f4e69a086544695446aa24e3cb8a818aaadefe52f90b5393cc8faae967505f3745
041e618aee79e68ae63b3ff0079c1477214c3feeb64e2c9d41ae2a87bbfc9afcbfbff002f3795efec6e
6eb48965827b913ea17b2dc4f259b07b7f5ae1a63338858068959f8a11f08c553df327927cb9e6ff0
02f2f963cc96cfa86948d04a9ea4f32ceb3da3ac90ccb3a3ac8244750c1c372ae2ac7cfe4afe5f7acf7
11d95d452bea91f98098f50bd51fa5e18d625bb
Here, calls to waitForNextPeriod etc., will call the appropriate methods in the EDF scheduler.

10.7 Summary

Scheduling is the ordering of thread/process executions so that the underlying hardware resources
(processors, networks, etc.) and software resources (shared data objects) are efficiently and
predictably used. In general, scheduling consists of three components
an algorithm for ordering access to resources (scheduling policy)
an algorithm for allocating the resources (scheduling mechanism)
a means of predicting the worst-case behavior of the system when the policy and
mechanism are applied (schedulability or feasibility analysis).
The RTSJ has two types of schedulable objects: real-time threads and asynchronous event handlers.
The only scheduler guaranteed to be provided by a RTSJ implementation is a fixed priority scheduler
which has the following characteristics.
Scheduling policy. Fixed priority scheduling (FPS) requires that
the execution of schedulable objects on a single processor be ordered according to an active
priority;
priorities are assigned to schedulable objects at their creation time although no particular
priority assignment algorithm is required by FPS, it is usual to assign base priorities
according to the relative deadline of the schedulable object;
priority inheritance is implemented when accessing resources.
Scheduling mechanism. FPS requires preemptive priority-based dispatching of schedulable objects
the processing resource is always given to the highest-priority runnable schedulable object (allocated
to that processor).
Feasibility analysis. The RTSJ does not require any particular schedulability analysis technique.

599

Chapter 11: Asynchronous Events and Their


Handlers
Overview
Introduction and chapter structure
One of the main incentives for supporting concurrency in a real-time programming language is to
facilitate the modeling of parallelism in the real world (Burns and Wellings, 2001). For example, within
embedded system design, the controllers for real-world objects (such as conveyor belts, engines and
robots) are represented as threads in the program. The interaction between the real-world objects and
their controllers can be either time triggered or event triggered. In a time-triggered system, the
controller is activated periodically. It samples the environment in order to determine the status of the
real-time objects it is controlling. On the basis of its findings, it writes to actuators that are able to
affect the behavior of the objects. For example, a robot controller may determine the position of a
robot via a sensor and decide that it must cut the power to a motor, thereby bringing the robot to a
halt. In an event-triggered system, sensors in the environment are activated when the real-world
object enters into certain states. The events are signaled to the controller via interrupts. For example,
a robot may trip a switch when it reaches a certain position. This is a signal to the controller that the
power to the motor should be turned off, thereby bringing the robot to a halt.
The system designer often has a choice whether to implement the control algorithm as time-triggered
or event-triggered. Event-triggered systems are often more flexible, whereas time-triggered systems
are more predictable (Burns, 2002; Kopetz, 1997). In either case, the controller is usually represented
as a thread. However, there are situations where this is not appropriate. These include (Ousterhout,
1996; van Renesse, 1998) when
the external objects are many and their control algorithms are simple and nonblocking, and
the external objects are interrelated, and their collective control requires significant
communication and synchronization between the controllers.
In the former case, using a thread per controller leads to a proliferation of threads along with the
associated per thread overhead. In the latter case, complex communication and synchronization
protocols are needed that can be difficult to design correctly and may lead to deadlock or unbounded
blocking.
An alternative to thread-based programming is event-based programming. Each event has an
associated handler. When events occur, they are queued and one or more server threads take events
from the queue and execute their associated handlers. When a server has finished executing a
handler, it takes another event from the queue, executes the handler, and so on. The execution of the
handlers may generate further events. With this model, there are only server threads. Furthermore, if
the mapping of event handler to server is under program control, it is possible to ensure there is no
need for explicit communication between the handlers (as they can simply read and write from shared
objects without contention). The disadvantages of controlling all external objects by event handlers is
that it is difficult to have tight deadlines associated with event handlers. This is because a newly
arrived high-priority handler with a short deadline must wait for potentially long-lived and nonblocking
handlers to terminate before a server can be freed up.
One of the main examples often quoted as requiring an event-handling system is the implementation
of a graphical user interface. For example, Java supports threads but its Swing and Abstract Windows
Toolkits are event-based. Here, only one server thread is required. As noted in Section 4.4, there is
also a utility for timer-based events. Here, the number of servers and the mapping of handlers to
servers is defined in the program.
In an attempt to provide the flexibility of threads and the efficiency of event handling, the RTSJ has
introduced the notion of real-time asynchronous events and their associated handlers. However, the
specification is silent on how these events can be implemented and how their timing requirements can
be guaranteed.
This chapter discusses the RTSJ event-handling facilities in detail; real-time threads are considered in
the next chapter. The topics are considered in this order as an understanding of events and event
handlers is needed in order to appreciate the full facilities associated with real-time thread execution.
The basic event model is presented first, followed by details of the time-triggered event-handling

mechanisms. RTSJ events are parameterless. The chapter illustrates how they can contain data.
Examples of using the event-handling facilities are also given.
In order to understand the full real-time implications of using the event-handling facilities, it is
necessary to appreciate how they may be implemented. This is discussed along with issues of event
handling and program termination.

11.1 The Basic Model


The RTSJ views asynchronous events as dataless occurrences that are either fired (by the program)
or associated with the triggering of interrupts (or signals) in the environment. One or more handlers
can be associated with (attached to) a single event, and a single handler can be associated with one
or more events. The association between handlers and events is dynamic. Each handler has a count
(called fireCount) of the number of outstanding occurrences. When an event occurs (is fired by the
application or is triggered by an interrupt), the count is atomically incremented. The attached handlers
are then released for execution (once any minimum inter-arrival time constraint has been obeyed
see Section 10.4.3). Recall from Section 10.1, a schedulable object can be released even though it
has not completed the execution associated with its previous releases. The fire count caters for this
situation, allowing the implementation to start the execution associated with the new release as soon
as the old releases have finished.
Asynchronous events
The

given
below:
javax.realtime;
public
AsyncEvent
{
//
constructors
public
AsyncEvent();
//
methods
//
The
methods
that
take
parameters
all
throw
//
IllegalArgumentException
if
null
is
passed.
public
void
addHandler(AsyncEventHandler
handler);
public
void
removeHandler(AsyncEventHandler
handler);
public
void
setHandler(AsyncEventHandler
handler);
public
boolean
handled(AsyncEventHandler
target);
public
void
bindTo
(String
happening);
//
Throws
UnknownHappeningException;
public
void
unBindTo
(String
happening);
//
Throws
UnknownHappeningException.
public
ReleaseParameters
createReleaseParameters();
public
void
fire();
//
Throws
MITViolationException(see
Section
10.4.3)
and
// ArrivalTimeQueueOverflowException (see Section 10.4.2).
AsyncEvent

class
package
class

is

}
The addHandler and removeHandler methods are self-explanatory. Note that the same handler
can only be associated with a particular event once (that is, the addHandler operation can be
repeated several times but the result is the same as executing it once). The adding and removing of
event handlers is atomic with respect to the releasing of any attached handlers. That is, they cannot
be added or removed while the event is releasing the current set of associated handlers.
The handledBy method allows the programmer to determine if a handler has already been
associated with the event. The setHandler method removes all the handlers currently associated
with the event and installs the parameter as the sole handler. If a null handler is passed, the result of
the method call is to remove all handlers associated with the event. Of course, adding and removing
handlers will affect the feasibility of the system.
Important The above methods do not check whether the system is feasible with the new
notes
settings.
The bindTo/unBindTo method associates/disassociates an external "happening" (an interrupt or an
operating system signal) with a particular event. An event can be bound to more than one external
happening. The values of happening are implementation defined.
An event that is created in scoped memory and then subsequently bound to an external happening

601

has the effect of increasing the reference count associated with that scoped memory area. The
reference count is decremented when the happening is unbound. This is to ensure that the scoped
memory area is active when interrupts occur.
When setting up a handler (which is a schedulable entity) for an event, it is necessary to set up the
release parameters for the handler. Some of the information needed for the release parameters may
be unknown to the code setting up the handler. The createReleaseParameters method returns
the release parameters associated with the event. In most cases, the event itself will not know its
release frequency (unless it is a periodic timer) so it will return aperiodic release parameters. If the
event is to be associated with an interrupt and the programmer is aware of the frequency at which
interrupts
can
occur,
the
AsyncEvent
class
can
be
subclassed
and
the
createReleaseParameters method can be overridden to return the appropriate parameter class.
Warning An implementation is not required to check that an event that claims to fire periodically
actually does fire periodically.
Finally, the fire method is called to increment the count of outstanding fire requests (for each
associated handler) and to release the event handlers. Note the RTSJ allows the software firing of an
event even if the event has been associated with an external happening. To signal this as an error
requires the programmer to subclass AsyncEvent, override the fire method and throw an
unchecked exception.
Event handlers
Event handlers are defined using the AsyncEventHandler class hierarchy (which implements the
Schedulable interface). Application-defined handlers are created either by subclassing this base
class and overriding the handleAsyncEvent method or by passing an object that implements the
Runnable interface to one of the constructors. Once attached to an event, in the former case, the
overridden handleAsyncEvent method is called whenever the event's fire count is greater than
zero. In the latter case, the run method of the Runnable object is called by the handlerAsyncEvent method.
The AsyncEventHandler class has several constructor methods that allow the passing of various
parameter classes associated with a schedulable object (scheduling, release, memory and processing
group parameters; whether the schedulable object is a no-heap object and any memory area that
should be set up as the default memory area) along with the optional Runnable object. The full set of
constructors are given below. Where no parameter (or null) is given, the defaults are
SchedulingParameters inherited from the current schedulable object (or the default
values for the current scheduler if the creator is a Java thread); a new object is created,
ReleaseParameters the default values for the current scheduler (a new object is
created),
MemoryParameters null,
MemoryArea the current MemoryArea,
ProcessingGroupParameters

null.
package
javax.realtime;
public
class
AsyncEventHandler
implements
Schedulable
{
//
constructors
// Those constructors that have the nonheap parameter
// throw IllegalParameterException if nonheap is true
// and any parameter, or the AsyncEventHandler instance
// is in heap memory or the initial memory area is heap.
public
AsyncEventHandler();
public
AsyncEventHandler(Runnable
logic);
public
AsyncEventHandler(boolean
nonheap);
public
AsyncEventHandler(boolean
nonheap,
Runnable logic);
public
AsyncEventHandler(SchedulingParameters
scheduling,
ReleaseParameters
release,
MemoryParameters
memory,
MemoryArea
area,
ProcessingGroupParameters
group,
Runnable
logic);
public AsyncEventHandler (SchedulingParameters scheduling,
ReleaseParameters
release,
MemoryParameters
memory,
MemoryArea
area,
ProcessingGroupParameters
group,
boolean
nonheap);
public
AsyncEventHandler(SchedulingParameters
scheduling,
ReleaseParameters
release,
MemoryParameters
memory,

MemoryArea
area,
ProcessingGroupParameters
boolean
nonheap,
Runnable
...
//
methods
to

group,
logic);
follow

By default, an asynchronous event handler can access the heap. This may be changed by calling an
appropriate constructor with the noheap boolean parameter set to true.
The methods defined by the AsyncEventHandler class can be divided into three categories. Those
that manipulate the parameters necessary for a schedulable object, those that are directly associated
with the handling of the event and those that are needed to support a handler's use of memory areas
(and its daemon status). The methods needed to support the Schedulable interface are given
below;
they
have
been
fully
described
in
Section
10.2.
package
javax.realtime;
public
class
AsyncEventHandler
implements
Schedulable
{
...
//
Methods
needed
to
support
the
Schedulable
interface,
//
see
Section
10.2.
for
full
details.
//
Methods
which
result
in
feasibility
being
tested.
public
boolean
addIfFeasible();
public
boolean
addToFeasibility();
public
boolean
removeFromFeasibility();
public
boolean
setIfFeasible(ReleaseParameters
release,
MemoryParameters
memory);
public
boolean
setIfFeasible(ReleaseParameters
release,
MemoryParameters
memory
ProcessingGroupParameters group);
public
boolean
setIfFeasible(ReleaseParameters
release,
ProcessingGroupParameters group);
public
boolean
setIf
Feasible(SchedulingParameters
sched,
ReleaseParameters
release,
MemoryParameters
memory);
public
boolean
setIfFeasible(SchedulingParameters
ReleaseParameters
release,
MemoryParameters
memory,
ProcessingGroupParameters group);
public
boolean
setMemoryParametersIfFeasible(
MemoryParameters
memory);
public
boolean
setProcessingGroupParametersIfFeasible(
ProcessingGroupParameters group);
public
boolean
setReleaseParametersIfFeasible(
ReleaseParameters
release);
public
boolean
setSchedulingParametersIfFeasible(
SchedulingParameters scheduling);
//
Methods
which
get
or
set
the
various
//
parameter
classes.
public
MemoryParameters
getMemoryParameters();
public
void
setMemoryParameters
(MemoryParameters
memory);
public
ProcessingGroupParameters
getProcessingGroupParameters();
public
void
setProcessingGroupParameters(
ProcessingGroupParameters groupParameters);
public
ReleaseParameters
getReleaseParameters();
public
void
setReleaseParameters(
ReleaseParameters
release);
public
SchedulingParameters
getSchedulingParameters();
public
void
setSchedulingParameters
(
SchedulingParameters
scheduling);
//
Methods
which
get
or
set
the
scheduler.
public
Scheduler
getScheduler();
public
void
setScheduler(Scheduler
scheduler);
//
Throws
IllegalThreadStateException.
public
void
setScheduler
(Scheduler
scheduler,
SchedulingParameters
scheduling,

603

ReleaseParameters
release,
MemoryParameters
memory,
ProcessingGroupParameters
processing);
...

The next set of methods are for handling the occurrences of the associated event(s). A set of
protected methods allow the fire count to be manipulated; their visibility is restricted to classes in the
javax.realtime package and subclasses of the AsyncEventHandler class. Consequently, they
can only be called by the application programmer by creating a subclass and overriding the
handleAsyncEvent method. The default code for handleAsyncEvent is null unless a Runnable
object has been supplied with the constructor. If this is the case, the method calls the run method of
the supplied Runnable object. Finally, the run method of the AsyncEventHandler class itself is
the method that will be called by the underlying system when the object is released (and the
fireCount has changed from zero to one). It will call handleAsyncEvent repeatedly whenever the
firecount is greater than zero. The method is final and, therefore, cannot be overridden.
package
javax.realtime;
public
class
AsyncEventHandler
implements
Schedulable
{
...
//
methods
needed
for
handling
the
associated
event
protected
int
getAndClearPendingFireCount();
protected
int
getAndDecrementPendingFireCount();
protected
int
getAndIncrementPendingFireCount();
protected
int
getPendingFireCount();
public
void
handleAsyncEvent();
public
final
void
run();
...
}
Important The CPU budget and deadline allocated to the asynchronous event handler are not
notes
affected by changes to fireCount. Their use by the programmer is to allow event
handling
to
be
optimized.
Note
also
that
the
goal
of
getAndIncrementPendingFireCount is to simulate an extra firing of the associated
event for this handler only.
The

final
public

methods

defined

by the AsyncEventHandler class is given below:


package
javax.realtime;
class
AsyncEventHandler
implements
Schedulable
{
...
public
MemoryArea
getMemoryArea();
// Returns the initial memory area. See Section 8.6
//
Methods
to
manipulate
the
daemon
status,
//
see
Section
11.5.

11.2 Bound Event Handlers


In the RTSJ, both event handlers and real-time threads are schedulable objects. However, in practice,
threads provide the vehicles for execution of event handlers. Therefore, it is necessary to bind an
event handler to a server real-time thread (see Section 11.9). For AsyncEventHandler objects this
binding is done dynamically. There is, therefore, inevitably some latency between the event occurring
and the handler being assigned to a server thread. BoundAsyncEventHandler objects are supplied
to eliminate this latency. Bound event handlers are permanently associated with a server real-time
thread. The server can only be dedicated to a single bound event handler at any one time.
package
javax.realtime;
public
class
BoundAsyncEventHandler
extends
AsyncEventHandler
{
//
constructors
public
BoundAsyncEventHandler();
public
BoundAsyncEventHandler(
SchedulingParameters
scheduling,
ReleaseParameters
release,
MemoryParameters
memory,
MemoryArea
area,
ProcessingGroupParameters
group,
boolean
nonheap,
Runnable
logic);
}

11.3 Cost Enforcement and Deadline Monitoring


As mentioned in Section 10.4.1, if an asynchronous event handler overruns its cost budget and the
implementation of the RTSJ is supporting cost enforcement, the handler is descheduled (made not
eligible for execution) immediately. Version 1.0.1 of the RTSJ is clear that it will be rescheduled either
when its next release occurs or the cost value is increased. However, the specifications lacks the
facilities to give the same level of control as that given to real-time threads (with periodic release
parameters see Section 12.1). Version 1.1 of the RTSJ is likely to have more comprehensive
facilities and include the schedule and deschedule methods defined in Section 10.4.1 and also to
include
a
method
to
be
executed
in
the
advent
of
a
deadline
miss.
package
javax.realtime;
public
class
AsyncEventHandler
implements
Schedulable
{
...
//
The
following
methods
may
be
added
in
//
Version
1.1
of
the
RTSJ
public
void
deschedule();
public
void
schedule();
public
void
deadlineMissCondition();
}
With these, the cost enforcement and deadline monitoring model is likely to be defined as follows (for
an event handler, h, with a cost value of c):
1. Every call of the handleAsyncEvent method by the real-time virtual machine results in
the CPU budget for the handler being replenished by c units.
2. If cost overrun is detected
any overrun handler is released
handler h is descheduled immediately
3. h remains descheduled until either
c is increased (via h.getReleaseParameters().setcost()) (usually by the overrun
handler); or
h is re-released
4. If a deadline is missed
any associated deadline miss handler is released at the moment the deadline has passed,
the condition is cleared by calling h.schedule()
5. At the end of the current release where a deadline has been missed (a return from
handleAsyncEvent),
if there were handlers released, h is descheduled until (or unless) any deadline miss
condition has been cleared
if there were no deadline miss handler released, h.deadlineMissCondition() is
immediately called by the run method and the conditions is cleared.
It should be stressed that this is only one potential approach that Version 1.1 of the RTSJ might take.

11.4 Timers
Event handlers can also be time triggered. The abstract Timer class defines the base class from
which timer events can be generated. All timers are based on a clock; a null clock value indicates that
the real-time clock should be used. A timer has a time at which it should fire, that is, release its
associated handlers. This time may be an absolute or relative time value. If no handlers have been
associated with the timer, nothing will happen when the timer fires. The appropriate release
parameters associated with the timer can be created by the createReleaseParameters method
(this overrides the method in the AsyncEvent class).
Once created, a timer can be
started and stopped indicating whether the timer should count or not
enabled and disabled indicating whether the timer should fire or not
rescheduled indicating that the timer should not fire (or not fire again) until the rescheduled
time
destroyed indicating that the resources used by the timer should be returned to the system;
the timer cannot be used again.
If a disabled timer is enabled after its firing time has passed, the firing is lost.

605

The getClock and getFireTime methods are self-explanatory, although it should be noted that the
value returned from the getFireTime method may return null if the timer was created with a relative
start time and has yet to be started. The start methods start the timer running (trying to start an
already started timer results in an IllegalStateException being thrown). By default, a timer is
enabled when it is started. The overloaded start method (added at version 1.0.1.) allows a timer to
be started but disabled. Any relative time given in the constructor to a timer is converted to an
absolute time at the point the start method is called; if an absolute time is given in the constructor,
and the time has passed, the timer fires as soon as it is started (assuming is not started disabled).
Finally, the isRunning method returns true as the timer is both started and enabled.
package
javax.realtime;
public
abstract
class
Timer
extends
AsyncEvent
{
//
constructors
protected
Timer
(HighResolutionTime
time,
Clock
clock,
AsyncEventHandler handler);
//
Throws
IllegalArgumentException
if
time
is
a
//
negative
RelativeTime
value.
//
methods
// All methods called on a destroyed timer result in the
//
IllegalStateException
being
thrown.
public
ReleaseParameters
createReleaseParameters();
public
void
destroy();
public
void
disable();
public
void
enable();
public
Clock
getClock();
public
AbsoluteTime
getFireTime();
public
boolean
isRunning();
public
void
reschedule
(HighResolutionTime
time);
public
void
start();
public
boolean
stop();
//
Returns
true
if
the
timer
was
started,
//
false
otherwise.
//
The
following
methods
were
added
at
version
1.0.1
public
void
fire();
//
Always
throws
UnsupportedOperationException.
public
void
start
(boolean
disabled);
}
There are two subclasses of the Timer class. The OneShotTimer class and the PeriodicTimer
class. A one shot timer is a timer that will only fire once (unless it is restarted). However, before it has
fired, its fire time can be rescheduled. Any relative time given when the timer is rescheduled is
interpreted as follows:
if the timer is active, the relative time value is interpreted to be relative to the time at which
the reschedule method call was made,
if the timer has not started, the relative time value is interpreted to be relative to the time at
which
the
timer
will
be
started.
package
javax.realtime;
public
class
OneShotTimer
extends
Timer
{
//
constructors
public
OneShotTimer(HighResolutionTime
fireTime,
AsyncEventHandler handler);
//
Assumes
the
default
real-time
clock.
public
OneShotTimer(HighResolutionTime
fireTime,
Clock clock, AsyncEventHandler handler);
//
FireTime
is
based
on
the
clock
parameter.
}
Note that if a one-shot timer is rescheduled after the timer has already fired, then there will be no
further firing unless the timer is restarted (by calling start again). Furthermore, a call to start will have
no effect if the timer is already counting down.
A periodic timer, once started by a call to the start method, will fire on the first occasion at the time
indicated by the start parameter in its constructor method (assuming that it has not been disabled or
destroyed) according to the following rules, which are similar to those associated with
ReleaseParameters (see Section 10.4.1):
if
start
is
a
RelativeTime
value
then

first fire time = time of invocation of the start method + start


if
start
is
an
AbsoluteTime
first fire time = Maximum of (the time of start method call, start)

value

then

It then fires periodically according to the time indicated by the interval parameter in the
constructor. Hence, if the start time is an absolute time of say 10 time units, and the interval is 5
time units, then the fire times of the timer would be approximately at times (assuming it is started
before time 10) 10, 15, 20, and so on. If the start time is a relative time of 10 time units, and the
start method is called at time 0, then again the timer would fire approximately at times 10, 15, 20,
and so on. A periodic timer that is rescheduled does not fire again until the rescheduled time, it then
fires periodically.
The word approximately has been used here to indicate that the actual firing times may vary because
of clock granularity issues (see Section 4.2). For example, the actual times of firing the event might be
11, 15, 21, 27, 30, and so on. This is usually called local drift. However, there will be no cumulative
drift with a periodic timer. So for example, the last firing of the timer will not be used as the start time
for the next interval.
The PeriodicTimer class overrides the createReleaseParameters and returns
PeriodicReleaseParameters. Finally, there are some methods that allow the next fire time and current
interval to be obtained, and the interval to be set.
Important note The start time and interval can be measured by different clocks.
package
javax.realtime;
public
class
PeriodicTimer
extends
Timer
{
//
constructors
public
PeriodicTimer(HighResolutionTime
start,
RelativeTime
interval,
AsyncEventHandler
handler);
public
PeriodicTimer(HighResolutionTime
start,
RelativeTime
interval,
Clock
clock,
AsyncEventHandler
handler);
//
methods
public
ReleaseParameters
createReleaseParameters();
public
AbsoluteTime
getFireTime();
public
RelativeTime
getInterval();
public
void
setInterval(RelativeTime
interval);
}
Figure 11.1 illustrates the main states that a timer can hold and the possible state transitions.
Attempts to start an already started timer, or to start, enable, disable, destroy or reschedule a
destroyed timer have no effect.
010009000003226b01000000d19c000000001610000026060f002220574d464301000000000001
0043a8000000000d00000000200000fc790100fc990100010000006c0000000000000000000000d
20100002b01000000000000000000006a4000004e29000020454d4600000100fc9901000c00000
0010000000000000000000000000000000005000020030000c40100001a0100000000000000000
00000000000e3e306006e4e0400460000002c00000020000000454d462b014001001c000000100
000000210c0db01000000600000006000000046000000c05e0000b45e0000454d462b224004000
c000000000000001e4009000c00000000000000244001000c00000000000000304002001000000
0040000000000803f214007000c00000000000000084000050c5e0000005e00000210c0db01000
0000000000000000000000000000000000001000000ffd8ffe000104a4649460001020100480048
0000ffed0ce450686f746f73686f7020332e30003842494d03ed0000000000100048000000010001
00480000000100013842494d040d000000000004000000783842494d03f3000000000008000000
00000000003842494d040a00000000000100003842494d271000000000000a000100000000000
000013842494d03f5000000000048002f66660001006c66660006000000000001002f6666000100
a1999a0006000000000001003200000001005a00000006000000000001003500000001002d000
000060000000000013842494d03f80000000000700000ffffffffffffffffffffffffffffffffffffffffffff03e80000000
0ffffffffffffffffffffffffffffffffffffffffffff03e800000000ffffffffffffffffffffffffffffffffffffffffffff03e800000000ffffffffffffffffff
ffffffffffffffffffffffffff03e800003842494d040800000000001000000001000002400000024000000000
3842494d0414000000000004000000023842494d040c000000000b530000000100000070000000
480000015000005e8000000b3700180001ffd8ffe000104a46494600010201004800480000ffee00
0e41646f626500648000000001ffdb0084000c08080809080c09090c110b0a0b11150f0c0c0f1518
131315131318110c0c0c0c0c0c110c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0
c0c010d0b0b0d0e0d100e0e10140e0e0e14140e0e0e0e14110c0c0c0c0c11110c0c0c0c0c0c110c

607

0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0cffc000110800480070030122000
21101031101ffdd00040007ffc4013f0000010501010101010100000000000000030001020405060
708090a0b0100010501010101010100000000000000010002030405060708090a0b1000010401
030204020507060805030c33010002110304211231054151611322718132061491a1b142232415
52c16233347282d14307259253f0e1f163733516a2b283264493546445c2a3743617d255e265f2b
384c3d375e3f3462794a485b495c4d4e4f4a5b5c5d5e5f55666768696a6b6c6d6e6f637475767778
797a7b7c7d7e7f7110002020102040403040506070706053501000211032131120441516171221
30532819114a1b14223c152d1f0332462e1728292435315637334f1250616a2b283072635c2d244
9354a317644555367465e2f2b384c3d375e3f34694a485b495c4d4e4f4a5b5c5d5e5f55666768696
a6b6c6d6e6f62737475767778797a7b7c7ffda000c03010002110311003f00f51bda5d4d8d1cb9a4
0efa91e4eaff00f3e3163e362643af0e2d1491a936d6ed4fb5bcfdbadfdcaff31ecad69e7b28763fe9e
a65e039a1acb0073439ce15b1feefdddeabfec3c124bdd5526c703b8fa156d24ed9f6fa7ea6df633fc
2a4a74010448329d07146dacd5b057e91db0dfa27f3f733fce4b21b96edbf66b2baf9ddea56eb278d
bb765b46d4949957bbed6ebb6516575b5ad05dbd85e4925dc6db6adbf4551ea9d4ff0066598e323
36aa9b9970a31ea750fb2c7bde7d8c67a36b3dac67d3b1f56c67f84576ba721dfa4b6cf4ec7340736
b0d2d11fcab1af73bdce724a6a6465f52a1fb59b3204497d6d63407486b6a77af9b5bb73b72350ee
a1731aef5e963cb439d51ab73984fe659e9653d9b9bf47d8e49dd1f09c65cc638c8326aa4ea3e89f
e67f354e8e9b4e3bec7e3934bad20d858dac6e2d1b5bbbf47f9a9292633af3ea32f735ee63a0398d
2c105ad77d173edfdefde4743aaaf4f712f73cbcee25d1e01bf98d6feea224a5249249294924924a7f
ffd0f44c43d6adc8c9fb6b710e0bc37ec8dacd86c20eef57ed5ea37d2fa3e9ecf4d030ba51e9cf7577
665f9b4da6cb58dcb7b2c35bc9ddb69b3d3a5db3deefd1deeb767f83ff0008b528fe659fd50ab6763f
4f2e6df96c739da31bb77ba60fa8dfd155f4b6c7ee24a71d9f6d65501d6bec0c6bfd4b1b860bdcd31
e86ca7dad7dad7fe9acff00075e37e87e9d88943f269bbdd55f91536370b4e200e2f91ecd8fdffa1ff0
9bddff00168bd132f2b17a3534f546baeea1535c2c6e3d0f6b480f77a3e9b3d3631bfa1f4d30ca73fa
cd59cf37d18acc6b29fb2bf1ecf7d8f7d56faa2caf7b7735b56caebf4ffd3a4a69f5cea19b8f895e674fa
0e3656cb1b6b69c66e7df5d65ecd87d2a7271b67a9b6bb1ff00d26afdff00e6bd55b8dc9b8fd2b595
4c7b6da5ed227f3773ad0c73bfa8a9743bba867f4da1dd548a3aab982dba9aeb7b6aac93b995b6b
c90edcfadbb3ed1fa4b3f4fea7a56ff0036a7fe54b48b29dcd66f77d07d5b4b5bb99ed9addedb1cddd
eef7ffc224a6eb5f7bcc3722871f00c27ff0047a3525e59fa420b81209682018247d125ca953819763
6b765641b769dde8dd5d2f82010df754caffafec4e2ba5adb1d5babaeddee637f48e63774bdcc1632
b77bbf7925379ef631a5ef706b472e260050764e3b58e79b1bb19f4cc8d3e2a89c6cfb410ebaab2a
7f35399ead623e8eae77a9fb9bb77fe06a8f4bead8d998d632bf568b1a7f48c1857e358012e731db4
8bbf9dfa7ea35253aff00b4f00b98d17b49b04b23591bbd2ffcf9ed53a73712fb5d4d56b5f6b04b9839
00476fed2cec6bc5576f36645acd41dfeb3a490d6ff37f65633f37f7ff003d43acf5acdaf06d6f48a1efe
a3bab6502fa2e34c3ec632cbae752cdeda6aa9d6d9ff5a494eda4b12eeb15e3ef7b4bdc6900bfd5b
19587825ad79f4725d5db4ffc17b2b659ff0008aee1f51bf29f1f652dae487582da9e06ae1ee153deef
cd494fffd1f42c1c2eaacccbb22eea26ec2b58063e17a2c67a266777da1bfa4bfdbecf7ab192f653b0
e45c0309208716b342d23e97b11e8fe659fd50a9e4e13dd7cb2db49b038969b4b58dfa1f41be9d89
29a7674c6cfea34d6dac6d9f5bd72e2e6173a4398ef731bb99b3f7ff009b50c3c5b6bea2df51d43f22
870c8c80c6ddbf6dedbebdecaedb1ccafd6c965fe9ff00a3abd5a91ba5e0bfa43f35a6dade73f2accc
6b2cb5d2cde2a63eaaf7b1ce756c7b777fd7542fe8efbba85bd471854cc8c86d6cc873aebded732b
0ff4dbe8d5663d2ddbea7b1db3fd27fa44949facbb38d4dbb0703edf6d41dfabd979c50e076e9bb6d
95daff67f856ecff8447a9994ea98e7d1e93cb5a5d5faee3b49037572d6edfd1bbd8aae3f4ecaf56ea
ae7d203dad2eda2e24fbac35fb9f93ecf4b6d7f43fe87e64dbd2325877d77d62d21b2f732e7025bb3f
35d9bfbacff005fd224a6d7a791fe8fff00077ffe4550774ecbb9ee7b29c5836b8b8da1d63c8076eaff0
06ff9ff00e8d5cafa551b00b8b9ce971f6596b1b0498f67acff00ccfa4acd1f41dfd77ffd539253569c6c
aaebd86a603aff00376bd8dd7f93b551e9dd12bc3c7760e47dab2296fa4f6596e4db7bdcfacb9df4e
6af4766daff0043536ba3f90b752494e07ecdba875ef657432a7ef0cf66417358f1b22c0c7fbddafe66
cf4d5ac1aadc3bc0b1ac0db5ae696d6db64b9a77d7eeb9ef6b36b1d77b3fc2bd69bd81ec731df45c
083f02b2adfda5682c1bed0d905cd65240734ecff097d567acddbebd6fdbfe112531ccb7a8e365332
31ba737328bb218326c7da2b7d158656c766d5558db5b7575b5b66faab7d37ffc6fa9fa3d8595b3a
938b4b9b739b516cb1e287079075b1a05edf4f6ecddfa47bfe9d7b3f9b4eeb7ad0b1b1558e649dc0
3691a4b23e9647eefa8929fffd2f51a3f9967c026b2bb4d8d7d6e6b4b41690e693c969ece67eea7a3
f9967c026bc64168fb3b98d74ea6c697088fe4babfce494d6cbc5758c365cda6c7307b7730f7d3fd2
26c2e98cc0163709b550cb5dbded6b1c1a5c0066ed9eaed6fb5bf9a897fdadad7bac7d6ea490035a
c707412d6b7dfea39bff4152f4bafcb66e710d9d62af74801a2cf67e6edff0007fe93fe0fd3494e9d755
a2d759639ae2e6b5a035a444171eee7fefa2a855ea7a4cf57f9cda37ff5a3dde0a692948547d077f5
dfff0054e4542c7fa0efebbffea9c9292a4924929a871b3f7b9cdcc21a5c5cd61ad876b48f6d73a39db
1354462e48aafc80fb32b5ac3b6b0b9ec1ef15b5bb5cffd1edff31587bacf51ac616890492e04f05be0
e6f8ac5cbb7a56766517def3f6ae957b8d17368b3735db366456d7c3f7d1754fd967fa4d9ff02929de
496733ab63d8e6b196ee739c1807a360d496b7f3b6fef2b95d967acfa9f076b5ae04023e917b6397
7fa3494fffd3f4fa6cac54c05ed98f10a7ead5fbedfbc2f9612494fd37667d76b5d5598b91b1db813b2
07b4e8edcd7fe7ff8253a998d6561e5d6d73f98fb5e1c3facdf517cc2924a7ea1f4317fd23ffede7ffe9
44bd0c5ff0048ff00fb7acffd28be5e49253f50fa38dfe91fff006f3fff004a2257e854cd8c70db24eae93
24ee3ee712e5f2d24929faa3d4aff00787de137ab5fefb7ef0be5849253f51da1af735cdbfd22011edd

86663f7daff059dd6f3733a774d7e5e23adceb9afa9adc7adad7b88b2dae9b0b595545dfa3aac7d8b
e6d49253f51fa177fdc8b3eeaff00f49a95541adeeb1d63ac73c06cbb6880ddc446c6b3f7d7cb4924a
7ffd9003842494d04060000000000070005000000010100ffee000e41646f626500644000000001ff
db008400040303030303040303040604030406070504040507080606070606080a08090909090
80a0a0c0c0c0c0c0a0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c010405050807080f0a0a0f
140e0e0e14140e0e0e0e14110c0c0c0c0c11110c0c0c0c0c0c110c0c0c0c0c0c0c0c0c0c0c0c0c0c
0c0c0c0c0c0c0c0c0c0c0c0c0c0cffc000110800e1015e03011100021101031101ffdd0004002cffc4
01a20000000701010101010000000000000000040503020601000708090a0b010002020301010
1010100000000000000010002030405060708090a0b1000020103030204020607030402060273
010203110400052112314151061361227181143291a10715b14223c152d1e1331662f0247282f12
543345392a2b26373c235442793a3b33617546474c3d2e2082683090a181984944546a4b456d35
5281af2e3f3c4d4e4f465758595a5b5c5d5e5f566768696a6b6c6d6e6f637475767778797a7b7c7d
7e7f738485868788898a8b8c8d8e8f82939495969798999a9b9c9d9e9f92a3a4a5a6a7a8a9aaaba
cadaeafa110002020102030505040506040803036d010002110304211231410551136122067181
9132a1b1f014c1d1e1234215526272f1332434438216925325a263b2c20773d235e244831754930
8090a18192636451a2764745537f2a3b3c32829d3e3f38494a4b4c4d4e4f465758595a5b5c5d5e5f
5465666768696a6b6c6d6e6f6475767778797a7b7c7d7e7f738485868788898a8b8c8d8e8f83949
5969798999a9b9c9d9e9f92a3a4a5a6a7a8a9aaabacadaeafaffda000c03010002110311003f00f7f
62aec558f79cf4cf30eada37d4fcb57eba7df996369642cd117b704892359912468988355708fbaf1
a51b1561779e5dfcc4d421be97cb7e6bb790dd4892c333dd4b2244aad2bc5c04711550c8f1f21bab
f1efb62a94c5f973e6cd2cccb63e6bb3b39ac24bcd4e08662678ec26bffd2645ca2c8018d48b948ca
7f76de8c925797c38ab23b6f2bf98eda1f5b54d412e6e9db4d7b6d465b8f53ea6b6d3979a3595922
6903a92031453273e0ff0ae2af470411506a0f438ab78abb15762aec55d8abb15762aec55d8abb15
762aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb15762
aec55d8abb15762aec55d8abfffd0f7f62aec552bf30e9b77aae98d67657a6c27f56097d7e2595921
9924789c2b21e122a98de8ca78b62af3bd0bf2bf56d1f4ed3f4ad37ce0513491e8048a27f4c93691c
2164885cd3a0f51402aca5b92b7dae6aa54ff0094634fbabdd5b57f3931b8d46c4694f2b23aff00a3c
275197d26ace43c605f9e4ae0f148528ca6ad8ab28d2bf2f756d375387559b5b6d6912e8dc0b4bb6
94426268e7440aa649635310982c65235aa22f3ab51955661e59d266d0b41b0d22e2e1aea6b488
46f33773d68bb0f856bc53fc903154d715762aec55d8abb15762aec55d8abb1548fce7717369e50d
7eeace5782ee1d3aee48268cf174916162aca7b107707154913f2decdd11ffc47e63155076d66efc3
fd7c5553fe55c596dff3b0798b6ffb5c5e7fcd78ab5ff2adecff00ea62f31eff00f6b8bbeffecb1561b6377
f969a98b9365e7bf30325a097d566d4f528d59adeefea122c66451ea32dc5212b1f23ea32ad3e25a
aad6a7a97e59e8d1cb26a7e78f315bfd585dfd6d4ea1aa3bc034d08f75eb2a2b18fd24911d8bd3f76
c24fb1f162acc22fcbad3e58d668bccbe6292194078dc6b3764156150410fd0838aaeff956d674a7f8
8fcc7ff718bbff009ab156ff00e55b5a529fe23f31ff00dc62ebbffb2c5546f3f2eed61b49e65f31798f94
71bbaffb98baea16a3f6bdb154f3c9177737fe4bf2e5f5ecad3de5d697653dc4efbbc92c96e8cccdee
49a9c553ec55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55ffd1f7f6
2aec5501ad69506b9a4de68f74cc96d7b1341334668dc1c50d0f6a8ee37f0c55802fe4ff0095ec6ee
39a6d56f0cf74de9a452cb046269847684950b129f578e9d1b074f8d53d6a7c2df0aaa5a0fe59c3e5
6d3a1d5f53d4e0b4d5e2d3e7b0d4e71c574e11cc891fa8a1845c587a684c8df13eeaf5f878aaf41d2
ad2c340d374af2fc53fc16b6f1d9d92cee3d6952d620b5ec5982ad5a831546b5d5b24eb6cd322dcb
8aa425807237dc2d6a7ec9fbb1555c55d8abb15762aec55d8abb15762aec558ff009ec57c95e621e
3a6dd8f0eb0b62a9ec3b4518ff247eac557332aa96620281524ec0018aa4c7cdfe5402a75cb01591
e0deea1fef6387eb0c9f6bed08bf7b4ebe9fc7f677c55e731fe5d7e5da2df69b71a9dd436ba5bdc2fa
d2deda80971ab5fa7983d68ca0e69245711ac917a816889f6648fe2c55daaf94ff2ebcc975aae9726
b33dcdeeb136aba1798e482e6d6191ae353d3225b8f539aa9e51dadb429188037a6a2aca7f78c15
67fa47997c9e34b54d335eb1bbb0d3a3b781e78eee0942ac83843c991a9592944fe76fb38aa6fa7e
a5a76ad6897fa55dc37d632d7d3b9b6916689a86868e8483438aa2b15436a269a7dd9ff008a64ff0
0881c5525fcbfdbc85e561d3fdc469fb7fd1b478ab23c55d8abb15762aec55d8abb15762aec55d8ab
b15762aec55d8abb15762aec55ffd2f7f62ae3d315794dbfe51eb76d6c2de3f375dd1ac23b596426e
cc9f5c43fbcb94637640128a168dd64fde2ab06e1ca32aaed73f29b56d6ed9e3bcf339f561b8fadd8d
e882549e17fa8dcda82cc972abfbb7b8f56228b1f154f4db9fdbc5523d63c88754b5d4ec2f7f322d64
1a919a19a2baaca862b84907ef2337caa6585a4fdcb22c6be9aaa4b1ca42baaa9c8fcb2d72fe1692
dfce8d2c5fbefd1f791c2f24d07a8b7aa8cb27d6482c05daa39509ca3855470eaaaa6b65f979a8da2
7a72ea82ea496eb4abc9ae9bd6e717e8b9048d14024925711c9c78aabcadc0492579f4c55e858ab
b15762aec55d8abb15762aec55d8ab1ff003dd3fc13e62af4fd1b795edb7a2f8aa6d15ed988d07d62
2d947edaf87cf15436ad169bace957da45cddaa5bdfdbcb6933c52aac8a93a18d8a9de8c01d8e2af
32bafca48754f2eae87ab798ece4b94923bb5d4ecf4db6b29febd630ac5a7dcb7090f2920a564e47
8ccb4878c70f28d9554d57f2ba5d66e359bcbcf345baddeb53e9d772cf05b35bcb05c69d60d67eac
124574ae8cccdeaad1be1de17f56277aaa8b8ff2e3eabad43aada799a268a0d7bfc4a20bab78e591
ae1f4a6d2e54691258c51c37ab50838b7c34e38ab0dd57f27f56d2b45b2b6d075ab6d42f6d6d3cbd
a6c52456f0dbc96e7cb779737b1de46af768aeeed39468fd48e8bf1076fb0cabd5bf2fec9bcbbe52d3

609

b45d49ac2deeacd5d3d3b0fdd43c0c8c55b83cb3157606b20f5641cf951b1564df5db33d2e22ff008
35feb8aa1752bdb3fd1d77fe911ff007327edaff21f7c552efcbf14f21f95875ff71161b8ff009868f1564
58abb15762aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abfffd3f7f62aec552
5f31ebafa3436b6f6508bad6f53985a69766c4aabcbc4bb3c8c012b1c68acf2353a2f15f8d9462a97c
3e49b4be6377e6db87f305f316262b8aa69f1ab800a4566098f8d07597d597fe2cc55368fcb3e5c86
d3ea1168f631d88e96cb6d12c5ff0000169f862a96c9e40f2aafef34cb11a2dd0e452eb4763a7c81dc
50b1107157f948aebfe4e2aa09aaeb9e579eded7ccf22ea3a2cce96f0f9863458648a56d945f44b44
50edf089a20b1f360af145f6b1565b8abb15762a84d516fdb4cbd5d2995354304a2c9de85567287d
326a08a06a576c55e6fa4e97f9d8df56b4d6b5ab548cc7209750b78edda6599edd7792330846459
8b7a613835107a9cc362ac83cb5a479cae34fbfb5fcc1bbb7bdf5be1860d399a3431b9331ab8485c
142fe82d1be38e2591be391c62ac5748f27fe62e8da769d0e9774b677af656706af7125c9bd93eb1
1ddafd6248cdc8916af6e1b8d57edf1db155da6d87e7d2c56a9aaea760e442af71240b0097eb66d2
02ea7943c0c027f5c2710b2d3d32ccc3962a89b893ce1a04315f798352659e3bfd3259b519990db3
58fa08b776c9042ab595e5f5522548d99d9e061f67e1559145a46a1e6f64bdf34c06d741a136de59
7218ca18fc326a143c5cd3a5b8e51257f78656e3e9aa8bff009577f97fd3fc29a3d3fed9f6bff54f1577
fcabbfcbff00fa95347ffb87daff00d53c55dff2aeff002fff00ea54d1ff00ee1f6bff0054f1577fcabbfcbfff0
0a95347ff00b87daffd53c55dff002aeff2ff00fea54d1bfee1d6bff54f156ffe55e7e5ff00fd4a9a3ffdc3ed
7fea9e2ad7fcabafcbfad7fc29a357fed9d6bff54f1577fcabbfcbff00fa95346ffb875aff00d53c55c7f2eb
f2f8f5f29e8c7feddd6bff0054f1564514515bc490408b14112848a240151514502a81b0007418aafc
55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55ffd4f7f62aec558acc
ecdf99365148ede9a68976f6d1fec966bbb759587b80231f4e2acab15762aec5546f2ced750b49ec2
f6259ecee63686e209072478e405595877041a62a90f9267b93a44da6ddbc92cfa35ddce982799fd
596586de43e83bb9dd99a131f22772d5c559262aec55d8abb15762aec55f247fce64ffce50defe51d
be9fe49f205e247f981772417f7d7051264b3b047e6a8cad51ce72bc7891fdcf23b73438abd5bf21fc
dd1fe72793b48fcd4d6ad278b5b903c70d8dc5bc96f6963205e12359092bea2c80ff00bd3c9d98334
7541ca3c55ec38abb15762aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb1
5762aec55d8abb15762aec55d8abb15762aec55ffd5f7f62aec5521f32e917d7a6c755d1a4116b9a
4ca65b5576290dc4520e335b4a406f8245a50d0f09123937e14c55e15f991ff00398fe4dfcadfcc2d1
3c95e69d22fad60bbb669bcc172f1b7ada648ee1603e9a865b88d8072cf0bb6dc7873354c55eef07
9a748d57ca8de6ef2e5dc1ab691259c97d63756f2078664442e28eb5f0a1eebf3c552bb69bf32ee2
de19cae849eaa2bf10d78d4e42bd68be3e18ab497fe797b8367f5af2f1bc00b35babdcb4802d2a78
d6b41515c5521d16ebccfa3c6e1b5cf2d5c4daeea974f6afeacea26b894b38b78e8e793c71a0141bf
c35a62ac88de79dd2ea3b396e7415bb981786dc9b912ba28f88aa96a9a7b0c552db8f34ebf6b35a
c33eb5e588e4beba3a7d9c6d34c1a5bc54690c0bf1ef20552dc69cb1557b0d77cdf7d689746e344b
62e91cad04e665963595b827a8a24603936c37dce2a8c82efced7524c96b75a14e6ddcc570b19b8
768e403ec3856343ec7155523f312a68da2d3b6d75fd715539dbf31a3b792456d1048aacc095bb2
bb024540607ae2af25fca3ff9c7ff00cbad4ecb4bfcdef39d80f37fe6479a2d6df5ad4b58d640b88a3b
8bb8d66e16f6c7f731a4550917c0595157e2c55f41a22468b1c6a12340151145000360001d00c55
762aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb15762
aec55d8abb15762aec55d8abb157fffd6ed3f9c3ff3985a47e555d5fe9f17913cc7aadcd837a32dfcf6
ada7695eb150c17eb52ab93f0b2b6d1f7c558dff00ce367fce5bf99ff3bbce9e60d3f5bd021d3742d3
74f8ee6cadb4b86e6fae7d67982132ca2a08e276a4698abe9cff00155a509fd1fa9edff6afbaff009a3
157827e64ff00ce35fe4a7e6af9aafbce5e68d33cd3fa7f51f4c5c4f6cb78894863589022490c8aa02a
8d9453155be46fc99f2d7e4b69dad3791f5af397e82bbb2ba179e5cd4ed9aeb4d7768587a8aa2d63
68a4d87ef158557e16e58abe91d3bfe39f69ff001863ff00880c55e45aff00e453ebfaaea1a8b6b11d8
1d46fb57bb966b3b5e176b0eafa547a688c4bcf73198fd5248e2ff6788fb58aa2b54f21d8f96b53ff00
959fafeb16961168d7306b1aa2a5a3269e96f63a65cd84aea8246647297064327c5c4451a7160bc
b155de78fcbc9758d72e3cf371e628b4dd1ada182e4bc568cb7105b5ada5e4333faf14aa5c94ba69
236746f44a7155a3b62a84d23f2e86b12f947548f55d32e6ffca3756d7c2ead34992d62d42d9f4ab8
b384cacd33167315cfa8ac8cc91b2f0e3be2aa5a6fe53e8df97fa2f97350d77cc3e8587976cbf456b9
2456e23b7d462379ebd81914995a36b5b893944416dddbf64e2ac87c87e56b0fcbbbdb2d1753d42
caeb5fd4acd2c2caee2b496def6fedf495660f732b4d30791124ab5382f267755f8b8aaaf41bfbfb4d2
ec6e752bf9443636713dc5ccc412122894bbb10013b015c554c5ddb6a1a50beb3904d67756febc1
2af478a44e4ac2be20d7157c9da9cdf1610000026060f002220574d464301000000000001000000
000000000d00000000200000fc590100fc990100f398117e53f9524fca48bcb7268dfa074e5b74b5f
51b5b086d63a37fb90e36dc80ea16bf17d9c5587ffce2c0ff009c9b5fcd7f337fcacc1aa3ea29a3f187f
c54d782c856e6227eaa630d093e3e9fece2afb00bfe676d48741a77fdede75ff9178ab61ff3338ef0e
85cb6e92de529dffdd78abb9fe66d3fb9d0abdbf7b79d3fe45e2adf3fccba8fdd6854effbdbcaff00c9bc
55c5ff0032ebb43a153de5bce9ff0022f15717fcccaed0e854ff008cb795ff009378aa2344d4fcc6facd
d68fe6186c51e3b68aeede4b0795811249246c1c4aabd380a53156478abb15762aec55d8abb157
62aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abffd7f6d797e18a7bbf34c33c
6b2c2faad1e37019581b1b4d883b118aacd13f2e7c89e5af305f79abcbde5eb1d2b5fd4e216fa85ed
942b6ed3c6ac1c0758e8a4d403ca9cbdf1564f8abb154abccff00f28d6b3ff30373ff00265b1545e9b4
3a75a11d0c31ff00c4062af09f307e56fe676adaa799270d602c3591736f1a41a9de404a0d520bdb4
9dab033ac8b0a3c2eab295527f75c623c7154179a3f25ff0030b54d07cc3e5eb16d3ae342d521f30e

9fa469179793a4161fa5e512da5ea32c1212d1a978da0a52307f7527c4eb8ab3efcc4f2679b7cc5a4
e9767a647617d0c7a6df69da96937b7335b5bfd62f6d5618aee39638a42c6060ea119055266752b
222e2ac3e7fca4f3f4da6df5973b58669ff44c96fe8ea33b5b0b8b0d224b198cb0c96e56481e565ac5
f0165fdf23c5711a62aa5e67fca2fccad7f5dd62e84fa6c7a5ea563a869f2c497b791adc09ff0047cb6
cef1b45215646b4962da53e9acbce20bf1abaa9c9fcabf35db494d0668748b7b8bad66ead105d4b3
fe873a96931d8c5f57e487d5ff4857b975e51aab48dc2b8aa5b27e5479e9b44faac765a684bf87548
754f2fcfac5edcd92dddfda436d0df452b5aad0c7e93fee16145a4ef2733354955ec5a169d75a4794
74dd22f8a35e5869b05adc184968ccb040b1b142c1495a8d8903157ce1797dff394da37e5579375
0fc9db7f2e6bba2ae81a6b7d42e2de78f57422d63042fa9722094537fd86ff0021b1579d7e417e7aff
00ce4b79cbf3cdbca7f98f6d75159693a75e5fea3e578b4fb5d365611f18236adc88dc8124ab4fded1
bdf157d911f9d6d96279752d1f57d3447f6d66b0967a0f1ad9fd614fdf8aaaaf9f7c9a6312cdaddada2
37417b20b36fa56e3d323e918aa77697b677f02dd58dc45756ce2a9340eb2230f665241c555f1576
2aec55208e9fe36b9f1fd1507fd444d8aa7f8abb15762aec55d8abb15683ab1215812bb3006b43ef8
aa0754d674bd1218e7d56e92d926731401cd5e490234855145598844672141f8559beca9c55277f
cc5f23c7f5a2daeda52ce9eb90f51b827e1a0f8f6153c39506e7156fcc1e7ef2bf96b9a6a179cee634
b59e4b4b75334e2defae56d229782efc0c8df3f85b886e98ab9bf30bc982359175786457f4c2fa61e
425e6f4b8a51549e7fbf8c94fb6aae19942ef8aab6b5e75f2ef97e0b69b53bbf4beba2e4d9a1470d27
d4a279e6eaa028548d98b3955f7c550eff0098de478afe5d326d72da1bd81da39e3958c62368d9d1
b93300a0068dd0b13c798e3f6b154ef4ad5f4dd72c9351d26e16eaca46745992b42d1b1461b8076
208c551b8abb15762aec55d8abb15762aff00ffd0f6ef9685350f347bead5ff00a70b4c5590e2aec55
d8abccbcc5f989225feb3e5cbad0ae0e9b6c26b7b8be43332cd13d8dcce3d23140e399687d3e04f2
5e4adc4864e4ab01b4f35f98a6b7b292c2f3cc8b65ea456d72935c59fd621f516f1630235d28d7935
a2aab17a7efe2af5c5537d1479a751f3de95e5d9fce9adcba7de797ff4dc97707e8f48beb12bc29e8
0ad99dd0727dfe2e122d7fca55e8a7c91a9135ff1b7983fe0f4effb21c55dfe08d4857fe775f306ff00e
5e9ff00f6438abbfc11a97fd4ebe60ff83d3bfec8715625f9a115f7e5efe5df99fced279db5ee5a1e9b7
37902bb69e55ee1233e8a11f52df948557e9c551be45d3eebcebe4bf2f79bad7cedae9835bd3ed75
00124d39954dc44aec95fa97ec9254fcb15643fe0ad4853fe774d7f6ff2b4effb21c55649e48d4191c3
f9d75f0841e5f1e9e00046fbfd4b1556d13cb33f97fcbba7681e56d69bea3a4dbc36567f5e8e3bd021
b7408aae62f4598f1037e58aa6062d622922be934fb1bdd4e34301b98dda09044ec19950bc7210a
4a82539f503155693599609563b9d2ef111bfddd1a25c463e7e8bbb0ff81c55a9757d02ef958de4d0
9f514f2b6bb5f4f92f7f82602a31540c7e4bf23cd0bad9e8d611c52fdb6b28a380927bf28389afbd715
583c8da6dbdb9b7d3351d5b4e5ad55a1d46e66e27d85cbccb4f6e34c55a9bcbfe6a86d962d2bcdb
37ae9d24d4eced6ed5bfd6102da93f430c55bb63f9856b09178ba3ea93afd9784dce9a1be6ac2f28
7fd962a9043aff00996dfce1732ea3e569cccba54558b4ebbb5baa85b996857d66b626bfeae2a9ed
8f9f74bb98a492f74fd5b4968abcd350d36ea2141d4874478c8f93e2a8ab0f3bf93b5343258ebb632
856e0cbf588d5d5bc0ab1041f98c553c8e58a641242eb246dbaba10ca7e4462abf1560de68f2879a
35bd5feb761e617b1d303d949f515f529cacee629c9528cbc79aababd79abd5015a2b73552483c93
f98504fa6da5c799ee6e93d002f7528e578963b9816d54cc216762ed706399cc46b047cf8f4eaaa7f
e53f2a6b3a25f69f3deddabc567a5369f7a51998df5e19d64175257f682ab7daab5667f0dd54e7cc7
0f95ae458c5e657b6464b812e9ad71288645b9e2d17285f92b072b2347f09dc3f0fdba62ac49f47fc
97b86b59e39b4c12de31974e7b6bef459dc32126dcc532d37e2bfbbfe6f4fa3f12aa2ee24fcabf3049
65aaea57360d7c63b236c27bb58e78448d15c5b200b2fc0c5844d41f6cf0fb5f0e2a8cd3fc8bf97579
6af2e95616d3da4afc9a5b799dd4cc9e9afa81d5cfef008a35f501e7c515797118aa6bab793bcb9ae
5adbd9eaf65f5b82d4cc6dcc92cbea27d6a278660240e1e8e923a30e54e27e58aa02e3f2cbc89773
cd7377a2c33cd73cbeb065691c49ce76b960cacc41064667208a6fe18aa7fa4e9363a1d843a669a
8d1d9402912492c93b01eef2b3b9fa5b1546e2a844d574c927faaa5ec0d755a7a2b2a192be1c41a
e2a8bc55d8abb15762aec55ffd1f6ef968d750f340f0d5bfec42d3156438abb15762aec55d8abf3d3f
37bf35ffe7217cb5ff394907e5a797bcc3108af2fa1b5f2db9d3acab1e9faf3c0ecac5a1f8bd32810bb5
5bf755af5c55fa140100026a4773df156f15762af99ff00e7397fc637ff0092f2796bc9da35fead2ead7
913eb0fa7c0f325be9b620dcc8f33203c54ba47d7a8e5e18aa63ff3859fe30b2fc8fd3bcb9e75d1ef74
6d4343bab8b6b14bfb792dda6b0988ba8644e60725acac808fe4c554bfe728bfe725f53ff9c79baf2a
0b1d0adf5db6d7d75037514d3bdb4b19b41008ca32ab8a1329e40af6da98ab28fc9bbfd33f397c95
a77e64f98f4cd4649f5559161b1d7822da88435395b5a44c61f45ba24b22b4d222fc6ec3aaacf6e3f
2efc9b2c3e95a6930e952060f1dce920e9b708ebb86592d7d36076f1a3746aae2aa0daa6a9e51b9
821f315dfd7fcb772eb041adc88b1cf6b3c8e1628eec4602323960893aaa717e2b22fc7ea62a944de
59fccc96e5644f33082df95f3347198eb596597eadf6ed5c15589e3057e12b247cf9c9c9862a975c7
95fcfb7d1db697ae7986d25d4164b4ba812da77b6730d95c5bc93158de2918b82adfbee5feeff4dd2
8aa7154b61f21f9f6eb4d9aeaf7cc5a6dd25ec3125c4d6e12de19616b629232cd0db8747f54fa9eb0
66f553e0e11f55550f17e567e621d2b49d2ed3cdcad65a55cd85cdadcbdc4d74dcaca5476349636a
850191633232b8fb78aa672f933f35cd8dec573e6186ff0052b9d3c5b585cc9502c6fbeb05da75689
6dea285587eecb0117a5f106dd57a4c979adc12286d352e613f6a4b7b801c7fb095507fc3e2a90ae
af1c7e7f923b8b6ba84be93151bd06923dae64ead17303aed5c5591c5ad693312a97b0875255919
c23861d8ab50e2ac53f30bce9a3f96e38ed352d15f5a5bbb4bbb945e113db1faa46641148cfcb899

611

294425386c77ad015583ea1e6afcb56bed43cb7a5f941a7d4ecc07e1a4986c524530ddcccd15c41
2c47e13672ab71f8aa63fe7c550d61e6836d676d71a2dd6ada7d84f2cc2e1aef55fd24d6d059e9d1
ea32b52fc4a4f20fc23f8e94fdeb6cdc7155da5fe6b6b8f49adb5592fac6e8dba5a7d7b4c8deea091e
7bc827fac2da4d072446b5f84c6953cd3950372c553cf2cfe66f9d35d8b499e1d1b4ebe8b5a33ada7
a77325a3a88215b8e72855bb08191d54ab3728e5fddbe2acd2d3ccfe6010bbeb1e51bfb4912bfef3
4d677a8c057ec94995cede318c5525d5b51f266bd7169ae6b30eada4de696b2471cf3d9dfd81114
8f1c8eacde90564e70c6f5e5f693afdaaaa93e99e54fcaabdd4ed351d275db6974a8ade7b74d192e
e3680cb35ddb5e1700b725226b659380f84c8cee4558e2ac8ad7f29fc956f6b676f690ce91da48b2d
bcb1dd4a24a0b482c8a7356a9468ada20c2bd503fdadf15647e5ef2e695e57b27d3b478da2b5795
a76467693f79200188e44d2b4a903f6aadf6998e2a9b62aec55e7df9e3e7ed47f2bff002a7ccde7dd
22082e752d16de39adadeec3981dde78e2a384656a51fb362af13ff9c72fcf8d47fe727351d561f347
96ee6c34fd01229dbea770468cd3b9e291cc3e096591fe3711b978555374e746655f477f81fc95c04
63cb9a584535502cadc50f5a8a26c6b8aa025d0354f2d2c97be509de7b50cd24de5cbc95a4b7939
50916b2c859a07fe54a982bb7a695e6aab21d2755b2d6b4e8354b072d6b3824721c5d190957475
3baba302aea7ecb0231546725a035143d3e9c55bae2aec55ffd2f6e796401a9f9aa9d4eacb5ffb87d
9e2ac8b15762aec55d8ab1b97f30fc8104ad0cde6bd1e39918a3c6fa85aab2b29a104192a08c55e2
be73d03f2e3cc9ff3909f97ff009b4de68d09ecfcb9a76a16d7dcf52b31fe90b4fa8d07a95241b89dfd
bd35c55ecc7f32ff002e54d1bcdfa203efa95a77dbfdf98aa45e6dfcc6f2fc9a515f29f9d7cbd06b092a
356eb52b3f48c62bc958f3622bfcc0557ad1bec32ac0352fcc0f32e9da35c4f69f981e5db9b8b48279
94437d6575713324776de9a47c07291d9ed4c34a2aaa3abab7edaa83f3d79baeeefc8be7c5ff001b
e91737f7ba4c89e5948f52b257b562666963b911baac8e50c60f14f8d57d30396eeabd5b40fcc9fcb
94f2fe975f3668d181676e38bea36a197f74bb1ac9b118abe70ff009c8ef29f933f3d3f38bf2d748b9f3
56931f92b46b5bfbff325d8d46d94184cf6c05ba37a9fde4dc788fe54e6ff00b38abe9cb1f3d7e5969d
676fa6e9fe66d0edecace34b7b6b68b50b4548a28942222a89360a0500c5592d8dfd8ea96915fe99
750ded8ce3943756d22cd0b8048aaba120ee29b1c55d7d6569a9d95ce9d7f12cf637713dbdcc0ff6
5e2954aba9f620d315792f953f2f3cc779a15b4977e72be9350b6b8bdb79ee4b5c1f59ada692da39
197eb21392fa75f85515bf693154645f9397edaed8ebfa879b2f2eaf74f5b98ed9d51e278d2f26b29a
4e0feb3115364a389e487d593921f871544db7e566a1630c289ae3dec76a6ccdbd8ceb2c769c2d2
6824688c692b2706f4792d6367491ddb9f13c31566be5dd227d1edef52e27f55ef2faeaf96306b1c2
b7321711a540d80dcff96cd8aa718abb15632ac07e6148bdce8c87eeba7feb8ab23961867529346
b221142ae03020f6a1c552e5f2f68f1822dad85a56bfef2b35beedd48111518ab674a9d1556d751b8
88af42e229bef322163ff058aa91b3d62dee7d7b7fa8ccb2002e0bc4f04ac14517e35670680d375c5
55beb57b14c124d2d8c4472f5e0922750476218c6df70c55f1ff9c7fe738ec3f2ebf3cfcc7e4ef31f96f
ebbe50d2a48ec61d4ec9426ab0486289ee03248fc254f579ec1a33d0fc58abe85f27ffce42fe4b79e3
4b8f55d0fceba52c6e073b5beba8ac6ee327b3c170c8e3e74e27b1c5591b7e677e5b2950de71d10
16d97fdc95a6ff00f25315416a1e78fca0d5a17b7d57cc7e5cbeb7614922b9bdb19908f7577231548
edeeff20ec95934ad7b42d2924afc3a5eaf169ebbf80b5b88c0e9e18aaf8fcc3f97766ac961f9a71db9
7dd3d5d6ac6f694f0379eb1fc7155abe7ad2ed2d996dbf34fcb77b3ee6393516b335f00c6d6ea01f7
2e2aa565f9b915bc4c356d77c9b7d20dd1b4ed7e3819ffe79dc21009ff8cb8abca7fe7257f32f45f3df
e49f98bc99a64f69079875a9b4db2b4886aba55cc24c9a8db92ecf6f74e5515412cc53e151c9b6c5
59f7e4adb7e4b7e4bfe5f69fe4bd13cdfa1c924004fac5ff00e91b5e575a84aaa2599ab26c0950a8bf
b28aab8aa3a2fd3bafdcddeb9e57f3f69f7ba05b4ba8497ef6fa8acb15a2bb192d49648e440121256
48de8abf0cdcdf8f1c5579f26f9d3cc9a62d8de798ed755d3e3934f78efedeea74939595ec37322b2c
6ac8d2324419670559646e2a823e3455895b797ff00302c3cd1e63d13fc6960f69341a6dd6a36cf7
0f1c492ce89693c12b052d0cb70552649801248ce54c7f173c5591afe5e79d6c74ed2b45bdf32d92
59e9cda6369866924244fa7b5bc8dc237503e0f4e4118e4792b0e7c7154e6d3c9de7d16cc355d51
2e75396dade3b7bc5b8926165731de19a5910491c7c95d0ad015e43d3f48964f8b157a7e2aff00ffd
3f6ef96bfe3a3e68ffb6b0ffa80b3c5590e2aec55d8abb1562fe4bd374f6f2968af25a40ce6ce12cc634
249e22a4ed8ab10d3ff0034bcafa96a6ba2c1a1a2ea97335a41a787308b5b837a97b2215b80a508
0b6137c51fa8acdc563676e8aa0a5fcc1f5f50b8d3e7d01749fd1faaf9734eb830b59ddca64d74c7ce
2907168f82993d37789d9a9564df15468fcd0f2ed1a07f2faa6a906a5fa0efac395b7a96fa8cb766da
de2909a6d3c6ad711b0fb5170a02d220c5590dcf9874fb2f2bdaf982ff00408ed2f2e668ad5f4995ed
5a68ee2497d231f288c81d8104f08b9c8dd0272f8715627a47e6ff00977598ec2fad3cb0e9a45dc1a
0dcbddcbf5757897cc9712dac0be90ab33472c444943f67e25e5f671544f93fce0be6ef3dc10db59d
bc7e52d4fcb16faf6990b4703cacd3de4912caccabc94b46179464b713fe572c55e9ff00a334da53e
a7053fe3127f4c55a6d374b00b359c000ea4c69d3eec5580f95fcf9e4fd2b449ade2bf8ef2e1752d51
52c3498df509c96d4272008ad16422b5f0e38aa7771a8f9af5e0d69a55a1f2e5a3801f56d40c32dd8
46049f42d636701c74e53b2f0fb5e949f67154ff004ab1d3f46d3edf4cb1216d6d9782727e6e77a966
663566624b331fb4c6b8aa33d58ff9d7ef18abbd58ff009d7ef18ab7eac7fcebf78c55dea47fcebf78c5
5dea47fcebf78c55e59e749fcd63f302d57cad1b48574eb692e8c6d10e700b99bd446691d388af0fb
2199aa7ecf1dd544c7e64fcd48a0553e5a8657135baa5268cff00a3955f5bd466b807d4079519432
9f87fcae2aa4da5de7e7658e9da5fd7acd351bcb2497eb41a4b789ae19d1978cd490863190af1bc6
d1894b70654a72c559158eb1e757b88d756410ea4751b2852d2de3ff457d35e00d3cac58b7060de
a9fef1b8b47127fbb3e255e83ea47fcc3ef18abbd48ff9d7ef18abe42d2bf323fe707bce3e72d523f30
68ba469de73b8bfb91a8cde66d3d5565bc59596476b993d583e26048e522ff0c55ee5f965e58fcb4

8df5ebff2768fa18b11a914b3bbd26ded0c5e91b3b63449205238d49d81f1c5543cdbf9abe50f266b
92e8daa6941e08a2bb91eeed96295164b1b217ee92002919319d83b07fdb64589964c5567997cf3
368da943a149e5d82da5bcd375bbf1790cf6d3ba47a45adb4caf127a6558b9b9a012f0a18fecb232
b62a87d27f34f42fabdb5aea3a349f5a3a2d8798567992dd64b9d2ae2cdee27bb091a84ac2d13472
c6bd2478a9f0ca98ab2bd03cc369abe95a86ad7de5f4d2adace14bcb769e5b374b9b592dc4e2657
57a228f89099782d50b2b347f1e2ac2dbf3a3497296f67e5479af8dc5edb3c6cf0c318363a445acf30
f2202cb24328556094e7e31d24c555cfe63daf982e3cb175e56b48edf48bbd72c34cd4dee12012ba
ea1a4b6a423f4cab15a0921f8c3025b971e49f162af59163643a5b443fd82ff4c55bfa8d97fcb345ff0
000bfd31578b79d2dbcbda96bbe73f2e5e6b69a2faf6fa77d62da080ddc9710cf65796e50dac2448f
4f5448b41fde471f5e98aa0ecbc95e6dbad2e2b7f28de6a5123412436d7dadc274fb548dd635e2f68
f234f46e155021859771ea056a62a9ce83f90e74996f351bef324da8ebfa88b717daa3db88e4952d1
2da38a260243ca28c5bd620e59d647690c8c7aaa9ed97e59df58dbddc736b2753b8bcb2bbd3dee2
ed642556e846a26a3492565a47fbc2be9ac877e298abd0e18fd186387917f4d42736dd8f114a9f73
8aafc55ffd4ee5f993e6eff009c89f2dde79aff00e54ff91b4cf30db36a4a4df4f7dceea37363695ff436f
ab8614a538ccffeae2af02fc93fcd7ff9c9cf30ff00ce47689a4fe687e93b48268b510be5cbc864d174c
6686ce561455848938539296121afed62afbb3ebde6effab2d97fdc464ffb24c55afaf79bebff001c5b
1a76ff0072327fd91e2ad8bef3777d16cbfee2327fd9262aa3e42333792f423711ac531b2879c6ac6
4553c7a062ab5fbb1552ff956df97c6da7b2ff0be97f54b95449e1fa9c3c1d6195a68c11c7a248ece9f
c8cc78e2a9379813f2cacfcc167a5ea7a0dbdd6b33b69d1f282c04e601ebba5834a63425556556f4
dbfdd5c799e083962a97c9e79fcadf33586a705e692d7d67a8c30ea1776d73a5b30bf45b85b0494a
ba7c7e94a88864938fa2a11f92c6bcc2a9337e657e5eea063d26f7458ae7f2de0d3346d6b4ebc5b1
696ded9af6f6eed51a78f815856292d578b8151c99bec296c55bd1752fcb2b181adb54f2c585aea5
16a77168b69a55819c25be8bac4d696972c91a12aa937ef1680fa6ed23a7c2acd8aa6be5dd5bc9f0
7e62d8587943cbb656f6dade9facdccde60b7b54b779a4d36f6d639522751f1c6d2dc3b3d78fc69cd
7972e58abd53156880c0ab0a83b107a5315609e54f287956fb4a9e5bcd0ec2797f48ea89ca4b689
8f15d42e028dd7a01b018aa2a7f2efe55db6a56da25ce9ba145ac5dd4d9e9d24568b73288d4b9f4e
2239b5154b1a0e98aa603c83e471b0f2e6983fe8ce1ff9a71577f807c8ff00f52de99ff4890ffcd38ab8
f903c8cc003e5bd3080283fd121e9ff038ab8f903c8e5429f2de99c40a01f5487a7fc0e2ad1fcbff0022
9353e5bd32bd3fde487fe69c55aff957de44ff00a96b4cff00a4387fe69c55e7be67d3ff002dfca5e77b
77d43cb56732dde9a21b3b5b7b2b76679bd69657a73e08088e366dd816a715e4d45c5565c79a3f
25ad5e4facf95a08f8dc2db076b0b41cc19ee2dcca839f228af6b272db9d28dc38e2a92687e78fcb4
d474bd3f51d57c8d61a6472a4d26a28f6d04811144de8bdbb246448b2342ea79fa4d1fda7509f162
acbac17f2f750417707932c63d3c5dd969d299adadd6e12e2fb87106355652a8658c33073d5e9b2
7c4ab323f97de4426a7cb5a67fd2243ff34e2aeff957de45ad7fc35a657c7ea70ffcd38abe62d17fe7d
e9f962baddf6b5e6fd6f50d656eee66b98f4cb409a6da46b2c85c46787a9210a0f1f85d3157ba7e52f
e5af90ff2f66f335a792f40b4d1a38f5116bcedd0999a14b3b570af2b96761c999be263b9c5597dd79
27c9d7ba9beb379a069f71ab48dea497b2dac4f333fa26dcb172a492626319f18fe0fb38aa4dabf97
bf2f340b0d33473e5cb170f24f0689a5dbd944ec649a07fac7a4945014c21bd5f894141c7f9462ac43
cabf99de528341b1bdd5acecb4a82cbcbba3dd2585bdb3462d2df5a9a5b7585679b844b033db2af
1aa2a7a7fbd3f631546ea1e6ffcbff26695a8f973cbda241617371a55eea76ba5b588b5b1ba686c5af
1a175551cab10f888531fda8f9f35e18ab1e8f5efcb731e84f61e4ed3ec6f5ef74fb0d62d6fb4f16925b
d96b1a7caab710b71a346d0c2d0d7bc68f13f1e3c71564ba46adf94d7175637da2f96e31ab2fd4ed
b4065d2d629a7896d5e5b67b577545291dba391f1a3c31af0609c95595661f97be66b8f39792743f
34dddbadadceab6a9752dbc658aa33d7e11cb7dbdf1564b8ab03b4d5f47d13cede70bdd62f6db4e
b5f4b4746b9bb952de3e6f1dc0552f2151534d85715669697f63a84427b0b98aea13d248245914d3
dd4918aa2315762aec55d8abffd5f6e796493a9f9a81edab281ff70fb3c5590955620b004a9aa9237
0694db156f15762aec5585f9635d1a6681a769b7da5ea71ddda4090ceab6170ea1d3e12032a1046
dd41c5531b9f39e9d676f2dd5c58ea696f0234b2b9d3aea8a91a96627f77e031563f3c7e51d7359b
6f390d3f5b5d425b486dda5b78351821b9b3473710a4f12054902348ccbc96bf1b2fd962b8aa4ede
48fcbbf46d223a36bc458a45159b2c5a9078961be1a8a508a578cea1f7aedf07d9db1556b1f287e5
ed8422d6db42d68592c1159cb6b25bea324535b5b5ccb790472070dc96396791941fe72adc936c5
56368df97767ac59cff0052d76df5a9cea0d1144d4e392ea3be9feb977148128248cca7d4e2db216f
8388623154c345d1bc95a06a56daae95a3eb30cf66b7d1d8c46df51782de3d5264b8ba58e260515
6492357a53e1a7c1c576c5595ff008aad3feadfa9ff00dc3aebfea9e2ae1e6ab4ff00ab7ea9ff0070eb
affaa78abc53cf1f933f999f98be5a9d3caff997acf9185e5d6a121d1beaf1240d0cf7b3c89568441748
5d18337295fafd818abc2ff26bfe710ff39ff2c7f3e341f376b9a8dbea3a0c26f96e3cc5a7dca4d711fad
653468d2437d1f2f8d9829e2b253975ef8abedefd05acf22dfe26bedc529e8d8507fd3b62aefd07acff
00d4cd7dff00222c3fec9b156c687ac8ff00a69af8fce0b0ff00b26c55dfa1359ad7fc4b7bf2f42c3fec9
b1577e83d67fea66bdff91161ff0064d8ab4742d68823fc4f7c2bdc4161b7fd3b62ac4ee3cb7a85df9f
5adae75fba957f43a3d64b7d3df75bb257e16b52bb1dc1a57154fdbc972b9ab6b33b1af2decb4c3f1
55893fef2753c9bfe08f8e2abbfc1f75c3d33aedcf0f8cd3ea9a653f78087dbea94f881a3788c554bfc0
ce278ae975bba59e0082265b6d3978fa41952805ad2aa1d82edf0f2c551e341d6a847f8a2ff00e7e8
e9ff00f64b8ab4740d68ff00d351a80f943a7ffd92e2ab7fc3dad1a7fced7a8edff14e9fbfcffd1315487c

613

b8d7de57d57cc70eacfabea62f3505b8b59c1610000026060f002220574d4643010000000000010
00000000000000d00000000200000fc390100fc990100d8896368fea96e9cd5ed204152ca5483fc9
d07755901f375a8247e8cd54d057fe39d73e34fe4c5526d72e7cbfe627d3e6d4747d6beb7a4dc1bc
d36eedecef6de786631bc0c51e30a68f1c8e8ca7e1656dc62a90d8f963c87a595fd1fa16bd015b1b4
d214fa17f20fa969ef33c113093906553712d79f2e61e8fcbe1a2a809bca1f951a471bb93cbdacdad
b33476fe988753f4395cda2e8ea9e982400f0324276e3d1b66f8b154e0683e4b64b349b43d6e76b3
9adae23966b6bc7766b18de2b7590d3e248d247508df0fc4c4d58938aa1ec7ca9e44d3ed74bb4b2
d0fcc112e86e8da24c46a6d358a471bc2b0c123b965884723c7e9d78146e2dfb34553cf28eb9e58d
2b448343f2c697aa2e8da4b4ba7c319b3ba93d36b591a3742f28663c5811527154f3fc5501048d33
54dbb7d467a9ff0085c558ed968367e6dd5fce71798f4579fcafae5b69f66d6baa41c63b858a3984a
3d37de839aef4ebf67a62af867fe7213fe70bbcd9e40be93cdff9272dddef95a79904ba1c12c9f5fd3d
a660a0a153ca68431ebfde463edf350d262afb93f266c47977c9569e42b89259759f272c5a46b13c
d33dcfad76d0477467496401992513875a8f82be9fec62af42c55d8abb157fffd6f6f796c01a8f99c83
5aeaa3e8ff40b4c559062aec55d8aa4de66835cb8b081740b86b7bc4bcb392664f4b935a25c21b84
1eb2b2d5a2e43f5118ab01169f9cfe9c674ebfb448aded950404432a3dd4302970eefcde8f3ab21f8
aaa87b351b1543f9aff30a1fcbef27eaf73f9c7ad5a68edab7d6ad346a8ac2cfe837eea3689589069c
97d5a49b9535e38ab24fca7fcc4f25fe627956d6efc99ac43ac41a7436f697ef007a4370204631b735
5f880c559de2aec55f16fe7e7e74ff0085bfe72f7f2a3448e665d33434f4356546f8797995beacc1d7f
c88d62937c55f5a9f3af93c34aa75fd3c34132db4e0dd420a4cee6308df16c4b2b2d3f994af518aa94
5e7bf294d71710c7abda3476d1a492dc89e230832348817907fb40c4c48f0fa7155393cfde568f5af
d00b7c92df8581dcc6cad128ba79234064af1ad626aafdaa62a8d93cd7a02e9b7daa5bdec7796da7
dbcb7972b68cb34821839f22154d49ac6ca07f30a62aa56de75f28ddd9dbdfc5add97d56ea292e21
77b88d2b1dba96949ab0a7a6158bff002716e5f64e2a967983f347c95e5bb5b3bbbcd492e62bf170
6dbea34ba665b4b69eea46a46490025b4bbff3af0fb58aa6d279c7ca7097171add8c0f132a4a92dc
c48e8ee8640ac1981078ab1dff0095bf94e2aaede64f2fa5b5a5e3ea96896b7f5fa94cd346a937115
3e9927e2a0dcd31540a79efca524d2a0d5ad96de382dee7ebad2a2da3a5d4b3428126278337382
456506ab4df1545af9a7cb4f27a2bac59997d4920f4c5c47cbd5840675a72eaa082de15c554079d3
cb325d697696ba9437936b133dbd88b5759c33c51cb2372284f10042e2a7f6871eb8aa82d3fe560
3f4afe864dbbff00bd4d8ab25c55d8abb15762aec55d8abb15762aec55d8aa5be60d221d7f44d434
5b8348afa0920e7dd19d485714a6ea68c3dc62a86f28eb475ff2f596a3295faef16b7d45101023bdb
57305ca50ee38ca8ebbe2a9de2ac3e799fc99acde5fdcab3794f58945c4f3c680ae9d7bc02bbca14
57d19c2866937f4a5e45fe093922acb629629e249a07596190068e44219594ee0823620e2abf154
3dfdfd9e97673ea1a84cb6f656c8649a690d15547f9ed8aa45e4cd3a582d2fb5abc85edf52f30ddb6
a97304a49922568e38608981028c90451875fd97e78ab25c55d8abb157fffd7f6ef96811a979a6bff0
057514ffa40b4c5590e2aec558ef9cfcb97fe67d2e1d3f4fd524d2a44b849a6923f5009a108e8f1318
a489c7dbe6acaea564446f6c5582eb3f96be6a96e56ded35892eb4ed4b526bbbd769aea192ca36b
2ba80f02b74a5d3d49229962fd99fd49374e091aaaf27e53ebec2465f375cfaeabc2de46fac10c8da
85c5e48b32adca86f5639961764e0e3d3051957f778abcdbfe725ff00286ff52fc81f3dc371a9cbac5d
69fe8f9874c132bcb24074dab4c15e592473ce0320fb5b76f84f15553cff009c2cf250f26ffce3ef96de
58c25f7987d5d76e88142c2f5bf704ff00cf048b157d058abb157cb9f9a3ff00388df963e7dfcd5b6f35
6bb7bad0d5bccd2dc4d7cd6f77146b1b595b46b0886b03150a10752d8ab2bb2d23f273cbcb0c5ad
6ad777dae6913cf0b6ab30bb8ee846f7664689bd150a63692fc72a0e32f2e7fb1f0aa99c971f9371d
bdbea5753ddda1d36dd6de29dcde24d0a4697532c27857f792433dc308cd5e481abc7885c550965
a67e43c16b23daacf6da6c53c70fd4dbf48476f0335d5cd5122700469f58fac893880ab2730698ab2
3d1b5ef24dee952e8c977a9cda7ea362b6b1457b25ecf793c13fd651d951c34950b13d651fb0a3f9
71549f5ad23f26ecf57b8d0f5396f46a568ce935b46da848a24d4ed25e417d305199adde563c6a56
30cdfb028aa86a7a17e4fea36faa5fc31de6a1736e350b9bbb4b79ef23324889791caf20aaaa8ff4cb
889247a20f53fc95e2aa274dbbfc9f58fd78e5b9b569dee6eeeace417805acb7504cb3095389117a
82698ad68b23bfeeea78e2aa0faffe56cda3c9a0dd595d24da145aadbc1e5f984f1bc905d47a8c6e8
58808a278ecaebd35665f4b8f0f83e018aa75a2f95bf2d3cd3383a6bdddd5ee90b046d73ebdd020c
125d02beb121243ce6b88e6e25b7f85beca62a9a37e4ef90e5174b736535d2dec865b9fac5ccf296
26310d3933f203d3010f123920e2dcb1546e9df96be59d2f50b4d52d3eb62f2d19250cd773b2cb2c
69346b24c9cb8bb059e45dc743fe4ad1544a83ff2b0a46a7c3fa19057dfeb4f8ab26c55d8abb15762
aec55d8abb15762aec55d8abb1560d75aaff0083353f35caf034f66f62de65b5810a47cdede3f4af22
466200358e29096db94d8aa5179f9cb6f609742e343b8facd94734b35ba4f093224323a092dc9204
d19e1bba7d866556f1c5553fe56cb59c737e95d02f8dc5bdc4d05c5ad947f5a942c77296c3d15427
d72a5c3c9c38f08ff79c715619a679d6c4ddead7b6304fe5eb759264b59f4895574f6895ac4472ce9
3acb6c879de37a92ac3fb0c19be0c5599dcea9e6fd3b4d8ae5b5b17024d46d74d7925b6b577885d
88ff0079234055178192942be1d9b156211f9fa2b6fd1bac79974ed4fcc73da4715c7aeef0470432c
90d9cd23c76500542f18ba0232fce4e51c9c1c7dac559e8fcd3d387976fbcc8fa75c2d95a5ea69e80
346d5697800f310dfb85466e12fabc7d22bf16d4c550b71f9b4908ba48f4595eeade78a08a26b88a3
5984d04d30649082a78985a16009a4ff07f958aa09ff3996de6bd8e6d06efd0b366f56e2631db2c41
aee4b488481d9b8fc4839b9f853902715645a77e6047a85b6b33ae95711c9a3cf6f03c0ed18697eb
2c00647244640aef473d38fdaf87157fffd0f6f796ff00e3a3e67ffb6a8ffa80b4c559062aec55d8aa43e
70babfb4d141d36e9ac6eee2eec6d16ed12395e35babb8a17655955909e2e69c94e2a81ff000c79

abfea77d43fe90f4bffb24c550da87927cc1aa58dd69b7de74d425b2bc8a4b7b988d9e97478a6528
ea7fd13b82462ad699e46d7746d36cf48d37ce37f6fa769f045696702d9e99c63820411a28ff0045e
814018aa2ff00c31e69ff00a9df50ff00a43d33fec931577f863cd3ff0053b6a1ff00487a67fd92e2a82b
9f227982eafec75297ceda8fd674ff005beae45a69800f5d023547d577d862a92c9f925a54aced2ea
21ccb28b97e5a5e924198317e74faa75e46bf3f90c55167f29a3314901d6dcc3323472c7fa374ae2c
8e5d8823ea9e323ffc1b0e8715635e7afcb5b5d0bcb3a87985afa3bf9f4c56ba8e0bad334c31b334cf
2b8252dd187369e5662aca6b231c55e987c8be4f2549d12d0f0916640625a2ba34ac0a8e8379a5d
87fbf1c74638aab5e7947cb1a85ccb797ba55b4f773cb0dc4d3bc60bb4b6d1b451316eb554764ff00
51997ec9c55424f22f93a691669344b4695524895fd25e5e9ccaa8e951fb24228e3f64715a74c55a
7f217932577924d0ecdde5492394b440f3495046cae0ecc0aa81bf4ed8aa88fcb8f21aba483cbd65e
ac6924692fa2bea719c4a24ab753cbd796a49ff0076c9fced8aa6da6e81a2e8f35c5c697630da4d76
435c3c4a14b91dcfcc924f8b7c5d7154cb15762ac6948ff958120a6ffa190d7fe8e9f1564b8abb1576
2aec55d8abb15762aec55d8abb15762ac33f312c2c3ea563e61be86392df4898a6a1eb72e074abf
5faadeab01d5446e2520ed58971543f9bbcdfe65f2eea90e9da1f96a7d5ec85b09a4b886398aa151
2b1505118134882851f17274f11c954affc77f9802f6f635f29492582461f4f9fd29e32ec8b7a583861
51ea1b7811071f83d7567aad3155cbe7bf3f879679fca2c96892c8a2dd45c4973e92cb7712b7c311
527f730c878d4709be1afc38aa122f3efe634adeb4de51b848a19507d5a08e5592740ba87a8794a8
4053e85b151f0b0f5fed37755935ef98fcd51e95a55e699a3adedd5ecd3fd6a264b9b731db4314b32
1e12c61d6493d35880938afa8e37a62a94bf9e7ceb12dbcade57966b69adfd492e218ae6b148d72
23abc12224b4488faac8a8eedc5953f6792a82bcf3079d1669ff0048f9753534b7b94b9d1e6fabdd1
16d288e252cc1212e5019a4546553205e45d68ad8aa1357fcc0fccdb0d5756b8b1f295c5f6976f684
59d90b79c3fd6e13a81004aa9fbcf5bd1b51f08e0827535fb58aa3c79b7f305a76d3bf424f1ac774a7
f49bdbc85a5b67d50c748d122641c2dd68fea146f8d664e4b5c55fffd1f6ef96948d4bcd049fb5ab03f
f004e1683156438abb15762ac77cea546936a5ba7e94d2bfeea1062ac8b15762ac33f327cc5ac797
b4cd253430ab7baceb161a37d65b8936e97d2f069555c32b3281f0861c6bd6bd315639a07e636b9
2db5a682fa7de6b7e6497f4c89efc258d8a20d13521a7ccc63370cbf0991191558fa89d78b6d8aab6
8ff009b91cf1e8d04ba5de5d477365e5db8bdd59beab0aa9f33b3416ccd0aca4d7d64a48a9c8272a
a965c553af26fe63c1e74d427b4b1d1efad6d2185e637b74a91a2b25d4d6a609539738e6ac25fd36
5fee991bf6a98ab36c55d8ab0efcd61cbf2efcc0b4ad6da94e9fb6b8ab31c55d8abb15762aec55d8a
bb15762ac6d57fe77e95bfed4f10ff00a7a93156498abb15762aec55d8abb15762aec55d8abb1576
2a87bfb2b7d4acae74fbb5e76b7713c13a78c72a9561f4838aa49e47babc9bcbd0d8ea7335ceada4
3c9a56a172ebc1a69acdbd3f588ff8b542cbb7f3e2ac8f15762aec55d8abb15762aec55d8abfffd2f6e
f96893a979a41e835514ffa40b438ab21c55d8abb15633e7a629a2db30ad7f4ae8e3e1ebbea56e3f
8e2ac9b15762a95eb7e5cd17cc69671eb768b769a7dd45a85986675f4aeedc931caa508f8949db1
54aedbf2ff00c97a6dc1d46d74b8edee163be43702495488f54944f79b97dbd590091cff0037c58aa
1e1fcadf20dbc70c56fa2451c76e9a7c5022bca1513467692c401ce94b7662d17f29c552ef207e52e
8bf97f7b73a8e9f773cf79742559dc9f49261348242f3c487d3794107f78153ed351457157a0e2aec
5586fe6c165fcb9f3132fda16848ff825c559962aec55d8abb15762aec55d8abb15634ac7fe560489d
8e8f193f45d3d3f5e2ac9715762aec55d8abb15762aec55d8aa47e6bf3359f9534afd25795a4920b7
809a08c4ceacc9ea3b155452569c9986f45fb4cb8ab0cd2ff3af44b9d1ed351bfb2b88a6786c8df887
d27582e2f1158a9432094282c38bb47f1a9e63e1e5455176bf9bba4cd0c724da7dc472394470925
bc891cb28ba648ddbd55e2c45a483e20bfbce11fdb6c55176bf99567a9dc436561a75d41792dd5a5
b482fe3faba4697d11b889db76357894954fb424a472707c550fe59d6273e6c9269604b7b2f31c77
0adf1b6fabe893359cde9ab01549a0447423f66138abd0715762aec55d8abb15762aec55d8abfffd3
f6ef9705353f347bea8a7fe9c2d3156438abb15762a81d6347d375fd3e5d2b56805cd84c51a488b3
21e513ac88c190ab02aca18106a08c558f1fcb1f261a56d2e4d3a7fb91bfff00b28c55c7f2c3c98450
d9dcd3feda17ff00f6518abbfe558f933fe58ee7fee217ff00f6518aa43e79fcb6f2747e4fd7645b39f9a
d8cfc6b7d7c45781a547afbe2a9f7fcab0f267fcb1dc7fdc42fff00eca31577fcab0f267fcb1dcffdc42fff0
0eca31577fcab1f260dbea773ff00710bff00fb28c55bff009565e4debf53b8ff00b885ff00fd57c55649f
959e46997d39f4e9678aaa5a29af6f658db89e40323ce55854742298ab31c55d8abb15762aec55d
8abb15762ac6c15ff1fb8fda3a3a7dc2e9bfae2ac9315762aec55d8abb15762aec55d8ab4e88ea51d
4329eaac2a3f1c556fa51162dc17912093415aaf4fbbb62ae10c439511472ddb61b9ad77c55096fa
36976a27586d2302ea737971c8732f705b97a84b577040e3fcbfb38aa49e73b5165a026ada75bb7
afe5c95354b6b7b655e6d15b02278a35a52b240d2c600eed8ab25b7b886ea08aeaddc496f322c91
483a3238e4a47cc1c555315762aec55d8abb15762aec55fffd4f6f7973fe3a9e68ffb6a27fd405a62ac
8315762aec55d8abb15762aec5521f3aefe52d647fcba4bff11c553ec55d8abb15762aec55d8abb15
762aec55d8abb15762aec558b807fe56313fb3fa107cebf5b38ab28c55d8abb15762aec55d8abb15
762aec55d8abb15762a85d4afecb4ad3aef53d4a55834eb3864b8bb9dea5521894b3b1a02680024
e2af9c7f283fe72a3f2ebcd9e76d33f267ca497baa4ab26a30d96b9c3d3b1fa8582c935b9532912b1
31288f745fb3cba62afa6315762aec55d8abb15762aec55ffd5f6f7977fe3a9e68ffb69a7fd405a62ac
8315762aec55d8abb15762aa56f736f770a5c5a4a93dbc9ba4b13074600d3665241df15493cf3204
f286b2c4ec2d6415f98a62a84d6bcfda4f97bcc70681ab24b0c7716cb7315faa3cb087791e311bf05
3c09e1f0b36cc4f1c55063f36fc89cc2bea122020f391edae1634606e5423394e2198da4e156b5631

615

fbad554becff00383499358b8d2751b0b9b268d25680aa3dccd33c37b7768c8b0451992a16d1a63
b7d83edbaa9fe93f981e58d6b528b49b0b894dece6e56dd66b69e0497ea5218a731b4a8a1823ab2
9e27a8c559462aec55d8abb15762aec55d8abb15762ac63953f30f853ae8b5afcaebfb71564f8abb
15762aec55d8abb15762aec55d8abb15762aec55c45453157c4375f9087f263fe72f3c8fe7ff002b5b
37fcabff00365fdf5bbc310a47a76a17763701a034d8472125e1f0a347fb0bc957dbd8abb15762aec
55d8abb15762aff00ffd6f6f7977fe3a9e68ffb69a7fd405a62ac8315762aec5546ea03736b3db2caf0
34d1b462788f1910ba91c949ad1856a31579c37e52df33c520f37ea6ad17a4d1f177023922369ca4
8c7a940d20b67f5390652d71330515e38aa690fe5edc47e558bcb875fbb3751dd25e9d503486569
6320eeb2cb254330e4e95f4f913445c5529b6fca2b9b5b49ecadfcd37d6f6f3f3655b7062f466943d6
787f78424aa4ab46d4e2a57e247e58aa2355f2b47e53fcbdd574d86e4dcc42264595d4a4a44d792
4df19e4549fdf52a156bd7fc9555bf3e5f79721d60c1ad79522d6fd3b18669afa744644865bb16e919
2e8df0abc9ea3d4f148f93f6c5587c1ad793ec6ef55d3aebc816df564669a1f46d11124b68ec2195d4
f20c269835f5c2d231f14664e20d5f1556875ffcbd96040ff97f1c50322d247b688c492c778c2923aa1
f4c0794cdea49c432c8ec397ef31564be55d474ad47cdb696b61e5bb6d361b5b3bf9da5310facc17
62781982b20e0125fadcceac09f57e275d99b157a5e2aec55d8abb15762aec55d8abb15762ac608
6ff958aadfb3fa1483f3fad8c5593e2aec55d8abb15762aec55d8abb15762ac7fce5ea368f1c292cb0
8b8bed3e095e091e093d29af214750f19565e4a48f84e2ab4792b45029eb6a5e1ff1d5d43feca3157
7f8274506a26d4bfee2ba8ffd9462ab21f28797e6532c1737f2a124724d5afdd79292a4545c11b114
38abae3c87e5dbb5892e96f67586449e2126a37cdc658983a38acff6948a838aab8f2868e14afa97f
43d4fe92bfaf5af5f5eb8abbfc1fa3935f52ffa53fe3a57f4ff0093f8aac97caba0c1134d3cf791c318e4f2
3ea77caa00ee499f155e3ca3a311b497c411d46a57dff55f15483cefa2db689e54d4f54d32e2fa0bfb
5895e09bf485e3956122ef479981fa462acf715762afffd7f6f7977fe3a9e68ffb69a7fd405a62ac8315
762aec55d8abb15762aec558c7e61807c9fa9022a0fa0083ff0019e3c5593e2aec55d8abb15762ae
c55d8abb15762aec55d8abb15762ac5ea7fe56301dbf421dbdfeb63156518abb15762aec55d8abb
15762aec55d8aa41e70ff008e65a7fdb4f4bffa8f83154ff1562de7e9bcc7068d6efe5c8279d8dfda2e
a8964505e0d35a502e1a0e640e614d76f8b872f4ff0079c715792793f4bfccfd1eeec348369ace9da
01d4b50d42d26892c26691ae35dbcb991352aca0aacd6924255915b8d64a289956aaa616369f9a
92eb9a35c6b7fa5df48b6d60cd77756b3240d2da5c69974a824b407e0f46e0c22650f342cf4921f83
928557e9ba77e7045e5bb3f5efb539758bcd01aed649dadccb6fe6b4112ac33aaa2a0b56e35e346
8ff00bee47e28f15566bbfcca964f37c1e59d4e3d73f4406bed3a482e2390bdf5e46229b4b0485406
d1a39a48848df6a6b65948e12165526f3869bf991ad791356f2f8b3d7b51d3f58d235b8b4e8e7163
0ea097f3228b4b7bc0257060a348a8ece4ff00bfbfdd27157be5873fa8db7aa8d1c9e947ce37a7256
e22a0d09151ec715637f99b41e43d72bb0fab8ff89ae2acb315762aff00ffd0f6f7977fe3a9e68ffb69a
7fd405a62ac8315762aec55d8abb15762aec5528f346913ebda0de6956d32417170abe94b229745
78dd5c72552a482568687154104fcc0ef368ff0044575ff55715770f3f507efb47af7fdcdd7fd55c55dc
3cff004de6d1ebff00186ebfeaae2ad04fcc1a6f368d5dfa4575f47fbb3156b87e6153fbdd1abff18aebf
eaa62aee3f985da5d1bdbf7775ff35e2aee3f987fefcd1694ff007ddd75ff0083c55c17f30ea7949a2f1
aed44baad3fe0f15715fcc1ed268def54bae9ff00078ab4abf98953c9f45e3da89775ff008962add3f3
07f9f46a547ecdd74eff00b58ab607e6050d5b46af6f86ea9ff12c55a23f307b368dff000375ff003562
ad691a3f98bfc4736bdaf4d654fa98b1b782c5651b7aa652ee6527e40018ab27c55d8abb15762aec
55d8abb15762aec558d79e6eadacb4486eef264b7b58751d2de69e5658e34517f054b331000f727
15553e7bf242fdaf32e943e77d6c3fe37c55bff001d7924f4f32e947fe8fadbfe6bc5568f3e7918f4f336
926950697f6ddbaffbb3156ffc77e47ffa99b4affa4eb6ff00aa98ab879efc8e6b4f3369469d697d6db7f
c94c554a2f3b7e5fdb237a3e62d1a14762edc2f6d5033b1ab31a38a924ee715543e7cf2328ab799b
4903c4dfdb0ff009998abbfc7be46a91fe27d26a3a8fafdb7fd54c558c7e61f9d7c9b79e4ad6ad6cfcc
5a65c5dcb6fc62822bdb7791dcb2d1554392493d062af48c55d8abffd1f6f7977fe3a9e68ffb69a7fd4
05a62ac8315762aec55d8abb155af2471f1123852ec1539102ac7b0af53b62abb15762ab5a48d59
5198077fb2a4804d3c062abb15762aec55d8abb15762aec55d8abb15762aec55d8abb15762aec5
5d8abb15762aec55d8abb15762aa5756b6b7b03dade431dc5aca2924332892361d68cac0838aa5
5fe0ef28effee034ddf73fe8707fcd18ab8793fca4050683a701e1f5383fe68c55b5f28f951775d0b4e5
3e22d201ff001a62af2aff009c91d47ca9f969f927e6ff003343a2d847a8fd49ec34c64b48030bdd43f
d1a271f07ec193d4f92e2a9ff00e4dcbe53f3efe56794bcdf1e8ba7fa9ab6996d35d71b5836ba54093
8d93b4aac3156703ca9e571b8d12c01a536b587a787d8c55c7ca9e5634ae89a7edd3fd161ff009a3
155c3cafe5a1d346b11dbfde587a7fc0e2ab93cb7e5e8dd658f49b24950828eb6d10652bb8a10bb5
3154cf15762afffd2f6f797411aa799ea295d4d29ff00481698ab20c55d8abb15762aec5580f9dfc83a
cf9b3518aeacb5f6d32185617b5a44f2496d7300b80668692a255c4cbcb92b11e92f13e0aa5e7f2d
3cc8ef6cff00e242905b8b493f47d2ea6b63359df477950d35cbcc15955a22bea71e0c3e1f837550f1
fe58798ecacca3f996fb515fa98866b54b9b882592e0413c523453c9349c04cf2a4cdcc3f09214e1f0
fd955315f2179804134736b06e6f6fe2d2feb5a8333abc1736172d73712409bd04c5be14054274dd
76c55e8b8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb15762a
ec55d8abb15762aec55d8abb157cf9ff003979f949e67fcdff00cb9874ad0f58b6d2b4ed1269b5bd51
2e56566b81696d27a71a08c53f69cfc5df8e2a9dff00ce30fe54f997f26bf2d17c99e62d5adb584179
2df69b35a2ca8b15bdda23988897c24e6db7f3e2af68c55d8abb15762aec55d8abffd3ea1e68ff009
4ff00ce5ff6d5ff00b13b6c55038ab78ab7db1568e2ae3d7156c7418ab5d862aeed8aae1fc3fa62ae3
fde1f91c55a5ebf4e2adf6c55dfd7155e9d7e81fab1570fe38aba4ea3e4315555ff0079d7fd7fe18aaa

3f7ff5f155e3ec27c87f1c55637da4f91fd58aaa2fd95f91ff0088e2a8c8ff00de0ff82c55457ec4dfe7dc
62aa5fb07fd61fc71574ff00657fd71fab15587a0ff547ea18aaf8ff00b897e7fd3155927da5f962aa6bf
ddfdffab155adf617155a7a27c9b15587fbb1f3c556af51fe7e18ab9bb7d1faf1570e87e8c5529f337fc
a37ad7fcc15cffc997c55f61693ff001cbb1ff9878bfe203154662aec55d8abb15762aec55fffd900084
0010824000000180000000210c0db01000000030000000000000000000000000000001b4000004
0000000340000000100000002000000000000bf000000bf0000af43000061430300000000000080
00000080fe7fe9430000008000000080ffff95432100000008000000620000000c000000010000001
50000000c00000004000000150000000c0000000400000051000000d8390100000000000000000
0d20100002b010000000000000000000000000000000000005e010000e1000000500000002804
00007804000060350100000000002000cc00d30100002c010000280000005e010000e100000001
000800000000000000000000000000000000000001000000000000000000001610000026060f00
2220574d464301000000000001000000000000000d00000000200000fc190100fc990100ffffff00fcf
cfc00fbfbfb00fefefe00f8f8f800bfbfbf0066666600dddddd0061616100fafafa00c3c3c300cacaca00b
6b6b600dcdcdc00c1c1c10094949400ebebeb00c7c7c700a7a7a70096969600a9a9a900d1d1d10
0d2d2d2005050500091919100aeaeae00f7f7f7007e7e7e00f4f4f400e0e0e0009f9f9f00cccccc00e4
e4e40098989800ededed008d8d8d00f3f3f300a5a5a5009393930086868600d9d9d900b9b9b9009
79797007d7d7d00d4d4d4005c5c5c00cbcbcb004c4c4c00b2b2b2008c8c8c0069696900a2a2a200
9e9e9e0085858500b1b1b1009b9b9b00d8d8d800fdfdfd007f7f7f00a4a4a400bebebe008f8f8f0090
9090006f6f6f00c0c0c0005f5f5f005e5e5e00afafaf007c7c7c004d4d4d00d5d5d500d6d6d6009d9d9
d00f9f9f900d7d7d700efefef007a7a7a0080808000eaeaea00c6c6c6009595950081818100c4c4c4
00a3a3a300bcbcbc006e6e6e00c2c2c200f0f0f000a6a6a600eeeeee00e1e1e1009a9a9a00dedede
00f5f5f500e5e5e500c9c9c900e3e3e3008a8a8a00f6f6f600aaaaaa00e8e8e800dbdbdb004f4f4f00f
2f2f200cfcfcf00e7e7e70018181800bbbbbb00e2e2e20078787800e6e6e6009c9c9c005959590084
848400bababa007b7b7b001b1b1b008b8b8b00cecece00828282005b5b5b00a0a0a00071717100
77777700747474007272720070707000757575007676760073737300797979006565650063636
300b7b7b70068686800bdbdbd00c8c8c80022222200adadad00d0d0d000b5b5b500b8b8b800b0b
0b000b3b3b300b4b4b4006b6b6b0062626200999999008787870060606000f1f1f10083838300ec
ecec00e9e9e900dadada00dfdfdf006a6a6a00a8a8a80006060600ababab005a5a5a004a4a4a005
75757000a0a0a0089898900acacac0048484800cdcdcd002121210024242400252525003737370
08e8e8e006464640012121200535353005d5d5d000909090058585800c5c5c500515151006d6d6
d008888880044444400d3d3d30054545400676767005656560046464600343434003b3b3b002c2
c2c0040404000525252009292920041414100262626003a3a3a006c6c6c003e3e3e001e1e1e003
f3f3f0047474700434343002f2f2f0055555500454545002d2d2d00a1a1a10010101000030303000
202020014141400010101001d1d1d0036363600040404001313130033333300383838000b0b0b
00080808001919190042424200323232002a2a2a00111111000d0d0d0039393900232323003c3c
3c002e2e2e000c0c0c004b4b4b001c1c1c00353535003d3d3d001f1f1f004e4e4e00151515000505
050007070700313131000f0f0f00282828003030300049494900161616001717170020202000272
727001a1a1a00292929002b2b2b000e0e0e000189b31f1f7ad1d1d1d1d1d1d1d1d1d1343434343
4343434343434343434343434343434d1d1d1d1543434d1d1d1d1d17ad15454343434547ad134
3434d1d134d1d134343434d1d1d13cd1547a265454595434d11f54263434d17a343434343c3434
5454545434345434345454343454d1593434263c59263c545426263c3c26269e59545454345434
54261a8b3c26138b1359a0a059261526641a15a69e64649ea064642626a09e59a6648b649e4415
9e15902a0d91316444a0151a440da664a015a0a0376415a01a1aa0441a262664594415649ea01
59e151359448f31649ea08ba61513131515265913a01513642626131515132626263c3c1515343
c9e3c54542613595434543454d13cd13c5426543c263454541f3c34543434263c34543c34d1d126
d154678c0401040101010101010101010101010101010101010101010101010101010101010101
010101010101010101010101010101010101ffff016322020104040101010101010101010101010
10101010101010101010101010101010101010101010101010101010102010101010a013a3a01
3a01013a013a04010104013a010104010a0101020101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01020401043a984801040104013a0101010101010101010101010101010101010101010101010
101010101010101010101010101010101010101010101ffff011d510a0404040101010101010101
010101010101010101010101010101010101010101010101010101010101010101013a0a04030
10104020104010a010201010201010a013a01020401010401010a010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010

617

1010101023a010a01030183480101050104010101010101010101010101010101010101010101
010101010101010101010101010101010101010101010101010101ffff3a97c30504010401010101
010101010101010101010101010101010101010101010101010101010101010101010101013a0
10101013a4a0101043a030101010101010304010365910101010397583a010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
101010101010101013a01010101013b66010301014a3a04010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101ffff3a97191b04010
10101010101010101010101010101010101010101010101010101010101010101010101010101
0101010102015a9b214a4a206a4a5f11026a619c6a01638c636dd153050112a8b4550201010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
1010101010101010101010102013a4a275640ed967d7b9b023a013a0101010101010101010101
0101010101010101010101010101010101010101010101010101010101010101010101ffff0168c3
05010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010a010a7f7a4d944e7426903c742d4391428916c790954a6896255d740204980c0
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
0101010101010101010101010101013a01013a7e0000d40000f49b030101040101010101010101
0101010101010101010101010101010101010101010101010101010101010101010101010101fff
f01252705010104010101010101010101010101010101010101010101010101010101010101010
10101010101010101013a016f9d0413ad421b6d6a878766bb017c9a27a13a4e6d762c482a7c010
176a0010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101034a0186d600009f00dc01013a3a010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101ffff0468270501010401010101010101010101010101010101010101010101010101010101
0101010101010101010101010101034ac389813c7a247e2a2b6020c29a878335b70f4589965f358
f986801783d0101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
101010101010101010101010101010101010101010101010208af00d600007d0a0404010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
0101010101ffff3a97c3050401040101010101010101010101010101010101010101010101010101
010101010101010101010101010101040104030e72a003a897015f654f1f584c4b2563b90158483
a1e1d1a5f9aa003010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
1010101010101010101010101010101010101010101010404010101309f0000f20f04013a013a01
01010101010101010101010101010101010101010101010101010101010101010101010101010
1010101010101ffff0168c3050101040101010101010101010101010101010101010101010101010
101010101010101010101010101010101013a01014a9b5b040101010101010101010101010101
0101010101636a6f5e010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
1010101010101010101010101010101010101010101010101010101010101013a013a01010201
3a01010104010101040101010101010101040101010104043a3a0103013a5cd40000bd63010301
0201010101010101010104010101043a04040101010101010101013a03010104013a010101010

1010101010101010101ffff0168c3050101040101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010402010302010101010101010101010101
01010101010401010102020101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101040
4043a01040101010401010104040404010101040404040101010101010102010101b4d900d62c0
10101013a04040101040401013a0101010101010101010101010101010101010101040a010101
01010101010101010101010101ffff0168c305010104010101010101010101010101010101010101
01010101010101010101010101010101010101010101010401010a0101013a010101010101010
10101010101010101043a04010101010201010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
0201010101010101010101010101010104040101010101010101010101010101010a01040158c0
00d67304040102010104010101010101040101010101010101013a3a010104040102010401010
101010101010101010101010101010101ffff0168c30501010401010101010101010101010101010
101010101010101010101010101010101010101010101010101013a010101013a3a0101010101
010101010101010101010101010101013a3a04010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
101010101010402023a0104040101010401010101010101010101010404040404040404010101
04010178007511040201030104023a040401010104043a3a3a040404040101010101010101010
101010101013a0101010101010101010101010101ffff0168c305010104010101010101010101010
10101010101010101010101010101010101010101010101010101010101010104020101010401
010101010101010101010101010101013a0101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101043a0101010402010101010101010101010104040404013a040101010101
0103010101010139f1c2010101010101010101010101010101010101010101010101040401013a
3a04010201010a0201010101010101010101010101010101159e0168c305010104010101010101
01010101010101010101010101010101010101010101010101010101010101010101010401030
404010203010101010101010101010101010101013a043a040101040401010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
010101010101010101010101010101013a023a010101040101010101010404040404040401010
10101043a023a040104040204ab3f0102043a01023a01010401013a3a040101010101040401010
10101010101040103040101013a03010101010101010101010101010101010168c305010104010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01030101013a01010101010101010101010101010101010101010104020101040101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
1010101010101010101010101010101013a0401023a01010401043a01010101013a0401010101
01010101010101010101013a01010103017ca8020401010103043a010102020101040101010104
023a013a010104040101010101040201010501010101010101010101010101010101010168c305
01010401010101010101010101010101010101010101010101010101010101010101010101010
101010101010101020101010301010101010101010101010101010101013a01010101013a0101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101040101011b57272210c351222b5110c310
2b5c385c942214141422381f3426382b94707a5c34ae95c338d1269e549e492626491f15a03c343

619

c593c7a357a34261564139e8b1a6459918f3c159e901e010101010101010101010101010101010
168c30501010401010101010101010101010101010101010101010101010101010101010101010
1010101010101010101010101010101010101010101010101014a01023a010401010101010101
010101010101010101010101010101010101040104040101010101010101010101013a0401010
4040101010101010101010104010104040401010101013a040101020101010101010101043a01
010404013a0404010101010404040404040101010101010103010401010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
010101010101010101010101010101010101010101010101040101020163ae3b283672523b2c74
744e4e5252789872722c826e3b741c98453b3b3b3b3b3b3b3b3b7483457836983b4d7498726e45
7d7d3b4e4e4e2c4d817d4e747c7c4d454574744d80804d4d963b01010101010101010101010101
0101010168c3050101040101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101013a04010101043a01010
10101010101040401010404040401010101010404040101010101010104010101010101010104
010101010101010101010101010101010101010101010101010101010101010404040101013a0
2010101010101040101010104010101010101010101010101040401010102013a010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010104010102252b4a040404
04040401010101010101010101010201010101010401010101010101010101040401010104013
a0a0101010301010101010101010101013a0401010101020101043a0153190101010101010101
01010101010101010168c305010104010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010103010101030
a010104040404040404043a010101010404013a04010101010404013a0101040101043a040401
0104043a01010101010101040401013a3a010104013a020101010401040404010104040101010
1010101010101013a040104030101043a040101010101010404043a3a3a01020301014a010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
101010101010101010101010101010101010101010101010101010101010101013a0404013a5a
3f1b04040404010101010101010101010104013a04013a3a0402040
Important
note

A timer that is created in scoped memory has the effect of increasing the reference
count associated with that scoped memory area. The reference count is decremented
when the timer is destroyed. This is to ensure that the scoped memory area is active
when timer interrupts occur.

11.5 Program Termination and Asynchronous Event Handlers


Many real-time systems do not terminate. However, on occasion they may, and so it is necessary to
define under what conditions a program terminates. In Java, threads are classified as being daemon
or user threads. The program terminates when all user threads have terminated; the daemon threads
are destroyed at this point.
Warning Version 1.0 of the RTSJ assumes all asynchronous event handlers are executed by
daemons threads. This means that when all user (Java and real-time) threads are
terminated, the program will terminate. Consequently, where events are bound to
happenings in the environment or to timers, the program may not execute as the
programmer intended.
For example, consider the spacecraft thruster system given in Section 11.7. Here, two timers are used
to control the firing of an engine. The firing of these timers can be considered as external happenings.
The resulting handlers are executed by daemon threads. Consequently when there are no other
threads in the system, the program will terminate even though it may be in the middle of controlling
the thruster engine. Of course, in this case, there will be other threads in the system so premature
termination will not occur. However, the programmer does need to be aware that if a periodic activity
is implemented by a periodic event handler, instead of a real-time thread with periodic release
parameters, that activity will be deemed by the system to be a daemon and, therefore, will not be
included when considering program termination.
Version 1.0.1 of the RTSJ has formally introduced the notion of daemon and user asynchronous event
handlers:
package
javax.realtime;
public
class
AsyncEventHandler
implements
Schedulable
{
...
//
The
following
methods
have
been
added
in
//
Version
1.0.1
of
the
RTSJ.
public
final
boolean
isDaemon();
public
final
void
setDaemon
(boolean
on);
//
Throws:

//
//

//
//

IllegalThreadStateException
if
the
handler
is
attached
to
an
event;
SecurityException if the caller does not have
the
required
security
permissions.

}
By default the AsyncEventHandler class constructors set the handler to be a daemon. The status
can be changed by calling the setDaemon method after the handler has been created but before it
has been attached. A non-daemon event handler is termed a user event handler.
With this change, a program will terminate when
1. all non-daemon Java threads have terminated,
2. all non-daemon real-time threads have terminated,
3. the fireCount of all nondaemon asynchronous event handlers (bound or not bound)
equals zero and all current releases have completed, and
4. there are no nondaemon asynchronous event handlers (bound or not bound) attached to
external events or timers.
Hence, an RTSJ 1.0.1 program will not terminate while it has nondaemon event handlers attached to
events, even if their fireCounts are zero. This allows true event-triggered systems to be
implemented without having to introduce redundant user threads. Of course, careful consideration
needs to be given to which handlers should be giving non-daemon status, otherwise the program will
not terminate when the programmer requires.

11.6 POSIX Signals


For the case where the RTSJ is being implemented on top of a POSIX-compliant operating system,
the class POSIXSignalHandler allows application programs to associate asynchronous event
handlers with the occurrence of a POSIX signal. An abridged specification is given below (see
Appendix
A.38.
for
the
full
list).
package
javax.realtime;
public
final
class
POSIXSignalHandler
{
public
static
final
int
SIGABRT;
public
static
final
int
SIGALRM;
public
static
final
int
SIGBUS
...
//
Similar
definitions
for
all
POSIX
signals.
public
static
void
addHandler
(int
signal,
AsyncEventHandler
handler);
public
static
void
removeHander
(int
signal,
AsyncEventHandler
handler);
public
static
void
setHandler
(int
signal,
AsyncEventHandler
handler);
}
In practice, it may not be possible to handle all signals. For example, those which indicate that the
program should be killed or that it has violated its memory protection boundaries may make it difficult
for the whole program to remain viable.

11.7 Examples
A panic button in an intensive care unit
Most application-defined events will not need to subclass the AsyncEvent class. They simply need
to create an event and if necessary bind it to an external happening. For example, consider a
computerized hospital Intensive Care Unit. A patient's vital signs are automatically monitored and if
there is cause for concern, a duty doctor is paged automatically. There is also a bedside "panic"
button that can be pushed by the patient or a visitor should they feel it is necessary. However, the
"panic" button is mainly for the patient/visitor's benefit; if the patient's life is really in danger, other

621

sensors will have detected the problem. To be on the safe side, the system responds to a press of the
panic button in the following ways:
if there has been no paging of the doctor in the last five minutes, test to see if the patient's
vital signs are strong, if they are weak, the duty doctor is paged immediately;
if the vital signs are strong and a nurse has been paged in the last ten minutes, the button is
ignored;
if the vital signs are strong and a nurse has not been paged in the last ten minutes, the duty
nurse is paged.
The press of the "panic" button is an external happening to the RTSJ system. It is identified by the
string "PanicButton". A pager is represented by an asynchronous event; dutyDoctor and
dutyNurse are the events for the doctor's and nurse's pagers respectively. The occurrence of the
appropriate event results in the associated handler initiating the paging phone call.
First, the event handler for the "panic button" can be defined. The constructor attaches itself to the
"panic button" event. This is a common paradigm for event handlers, the event is passed as a
parameter and the constructor performs the attachment. Note also that the handler clears the fire
count as it is possible that the patient/visitor has pressed the "panic button" multiple times.
import
javax.realtime.*;
public
class
PanicButtonHandler
extends
AsyncEventHandler
{
public
PanicButtonHandler(AsyncEvent
button,
AsyncEvent
nPager,
AsyncEvent
dPager,
PatientVitalSignsMonitor
signs)
{
super();
lastPageTime
=
new
AbsoluteTime(0,0);
myClock
=
Clock.getRealtimeClock();
nursePager
=
nPager;
doctorPager
=
dPager;
patient
=
signs;
button.addHandler(this);
//
Add
this
handler
to
the
panic
button.
}
public
void
handleAsyncEvent()
{
RelativeTime
lastCall
=
myClock.getTime().subtract(lastPageTime);
if(lastCall.getMilliseconds()
>
doctorPagesGap)
{
if(!patient.vitalSignsGood())
{
lastPageTime
=
myClock.getTime();
doctorePager.fire();
}
else
{
if(lastCall.getMilliseconds()
>
nursePagesGap)
{
lastPageTime
=
myClock.getTime();
nursePager.fire();
}
}
}
int
throwAway
=
getAndClearPendingFireCount();
// Clear multiple presses and throw away result.
}
private
AbsoluteTime
lastPageTime;
private
Clock
myClock;
private
final
long
nursePagesGap
=
600000;
//
10
mins
private
final
long
doctorPagesGap
=
300000;//
5
mins
private
AsyncEvent
nursePager;
private
AsyncEvent
doctorPager;
private
PatientVitalSignsMonitor
patient;
}
The following shows the code required to set up the "panic button". Given that the handler is a
Schedulable object, its scheduling and release parameters must be defined. The release
parameters
will
be
aperiodic
in
this
case.
//
Assume
the
nursePager
and
doctorPager
have
been
//
defined
and
are
in
an
appropriate
memory
area.
AsyncEvent
nursePager
=
new
AsyncEvent();
AsyncEvent
doctorPager
=
new
AsyncEvent();

//

Assume
also
a
class
for
monitoring
the
//
patient's
vital
signs
PatientVitalSignsMonitor
signs
=
new
...
;
//
and
appropriate
scheduling
parameters
for
the
handler.
PriorityParameters
appropriatePriority
=
new
...;
...
AsyncEvent
panicButton
=
new
AsyncEvent();
//
Create
handler.
AsyncEventHandler
handler
=
new
PanicButtonHandler(
panicButton,
nursePager,doctorPager,
signs);
//
Assign
scheduling
parameters.
handler.setSchedulingParameters(appropriatePriority);
handler.setReleaseParameters(
panicButton.createReleaseParameters());
if(!handler.addToFeasibility()
)
{
//
Output
warning.
}
panicButton.bindTo("PanicButton");
// Start monitoring.
Spacecraft thruster control system
Consider a spacecraft that is orbiting the Earth. In order to change its orbit, it needs to "burn" (fire) a
thruster engine for a finite period of time. The duration of the engine "burn" is set by the astronaut via
a dial. To initiate the thruster, the astronaut presses a thruster button. Control of the engine requires a
100-millisecond periodic activity to adjust the valve settings to avoid mechanical drift and, therefore,
obtain an even fuel flow. The RTSJ-based control of the thruster system consists of the following
components:
an asynchronous event bound to the thruster button; a pressing of the button results in the
event being fired;
an asynchronous event handler that is scheduled for execution as a result of the thruster
event firing; to cater for "bounce" of the button, the event handler ignores multiple presses;
a periodic timer that when started will generate events every 100 milliseconds;
a handler for the periodic timer that will provide the engine control algorithm;
a one-shot timer that will be used to control the duration of the engine "burn";
a handler for the one-shot timer that will destroy the periodic timer, thereby turning off the
engine.
The following class defines the interface to the thruster dial; the details of this class are of no concern
here.
import
javax.realtime.RelativeTime;
public
class
ThrusterDial
{
public
ThrusterDial();
public
RelativeTime
getSetting();}
Engine control is performed by the EngineControl class. This implements a Runnable interface.
The start and stop methods start and stop the engine respectively. The run method provides the
control algorithm needed every 100 milliseconds. Again the details of these methods are of no
concern here. Note, however, the EngineControl class will eventually be tied to an event handler
that will be used in conjunction with a periodic timer. As the run method does not need access to any
of the protected methods of the AsyncEventHandler class, the EngineControl class can be
independent from it. Contrast this with the ThrusterButtonHandler class given later.
public
class
EngineControl
implements
Runnable
{
public
EngineControl();
public
void
start();
public
void
stop();
public
void
run();
//
Adjusts
valve
to
ensure
no
mechanical
drift
//
and,
thereby,
achieve
a
steady
fuel
flow.
}
The EngineStop class is similar in structure. It also implements the Runnable interface. However, it
will be tied to a one-shot timer. Its goal is to turn off the engine and to destroy the periodic timer that
implements
the
engine
control
algorithm.

623

public

class

EngineStop
implements
Runnable
{
public
EngineStop(PeriodicTimer
engine,
EngineControl control) {
myEngine
=
engine;
myControl
=
control;
}
public
void
run()
{
myControl.stop();
//
turn
off
engine
myEngine.destroy();
//
destroy
timer
}
private
PeriodicTimer
myEngine;
private
EngineControl
myControl;

}
The ThrusterButtonHandler class is the event handler that responds to the button being
pressed. It must get the duration of the engine "burn", start the engine, create and start a periodic
timer for the engine control, and create and start a one-shot timer for turning off the engine. It also
deals with any bounce or multiple pressing of the button. To do this, it must access the protected
methods of the AsyncEventHandler class. It is, therefore, a subclass of that class.
import
javax.realtime.*;
public
class
ThrusterButtonHandler
extends
AsyncEventHandler
{
public
ThrusterButtonHandler(AsyncEvent
button,
ThrusterDial dial, EngineControl control) {
super();
myDial
=
dial;
myControl
=
control;
button.addHandler(this);
}
public
void
handleAsyncEvent()
{
// Look to see when last button press was, if recent,
//
ignore
it,
otherwise
perform
the
following.
RelativeTime
thrusterDuration
=
myDial.getSetting();
myEngineTimer
=
new
PeriodicTimer(null,
new
RelativeTime(100,
0)
,
new
AsyncEventHandler(myControl));
engineOff
=
new
OneShotTimer(thrusterDuration,
new
AsyncEventHandler(
new EngineStop(myEngineTimer, myControl)) );
myControl.start();
//
start
the
engine
myEngineTimer.start();
//
start
the
periodic
timer
engineOff.start();//
start
the
one
shot
timer
int
throwAway
=
getAndClearPendingFireCount());
}
private
PeriodicTimer
myEngineTimer;
private
OneShotTimer
engineOff;
private
EngineControl
myControl
private
ThrusterDial
myDial;
}
Finally, the thruster event and its handler must be created along with the thruster dial and engine
controller.
The
event
must
also
be
bound
to
the
environment.
AsyncEvent
thrusterButton
=
new
AsyncEvent();
ThrusterButtonHandler
handler
=
new
ThrusterButtonHandler(thrusterButton,
new
ThrusterDial(),
new
EngineControl()
);
thrusterButton.bindTo("ThrusterButton");
Object collaborations
Figure 11.2 illustrates the collaborations between the various objects. When the thruster button is
pushed, the thruster button event handler is called, this reads the required duration of the burn from
the thruster dial and sets up the two timers. The engine is started along with the timers. The periodic
timer is scheduled for execution every 100 milliseconds and calls the engine controller. The one-shot
timer fires after the burn time, stops the engine and destroys the periodic timer.

010009000003324c01000000058f000000001610000026060f002220574d4643010000000000010
0f84d000000000c00000000200000e0570100e0770100010000006c0000000000000000000000d
20100001001000000000000000000006a4000009625000020454d4600000100e07701000c00000
0010000000000000000000000000000000005000020030000c40100001a0100000000000000000
00000000000e3e306006e4e0400460000002c00000020000000454d462b014001001c000000100
000000210c0db010000006000000060000000460000003c58000030580000454d462b224004000
c000000000000001e4009000c00000000000000244001000c00000000000000304002001000000
0040000000000803f214007000c0000000000000008400005885700007c5700000210c0db01000
0000000000000000000000000000000000001000000ffd8ffe000104a4649460001020100480048
0000ffed0c3050686f746f73686f7020332e30003842494d03ed0000000000100048000000010001
00480000000100013842494d040d000000000004000000783842494d03f3000000000008000000
00000000003842494d040a00000000000100003842494d271000000000000a000100000000000
000013842494d03f5000000000048002f66660001006c66660006000000000001002f6666000100
a1999a0006000000000001003200000001005a00000006000000000001003500000001002d000
000060000000000013842494d03f80000000000700000ffffffffffffffffffffffffffffffffffffffffffff03e80000000
0ffffffffffffffffffffffffffffffffffffffffffff03e800000000ffffffffffffffffffffffffffffffffffffffffffff03e800000000ffffffffffffffffff
ffffffffffffffffffffffffff03e800003842494d040800000000001000000001000002400000024000000000
3842494d0414000000000004000000023842494d040c000000000a9f0000000100000070000000
4200000150000056a000000a8300180001ffd8ffe000104a46494600010201004800480000ffee00
0e41646f626500648000000001ffdb0084000c08080809080c09090c110b0a0b11150f0c0c0f1518
131315131318110c0c0c0c0c0c110c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0
c0c010d0b0b0d0e0d100e0e10140e0e0e14140e0e0e0e14110c0c0c0c0c11110c0c0c0c0c0c110c
0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0cffc000110800420070030122000
21101031101ffdd00040007ffc4013f0000010501010101010100000000000000030001020405060
708090a0b0100010501010101010100000000000000010002030405060708090a0b1000010401
030204020507060805030c33010002110304211231054151611322718132061491a1b142232415
52c16233347282d14307259253f0e1f163733516a2b283264493546445c2a3743617d255e265f2b
384c3d375e3f3462794a485b495c4d4e4f4a5b5c5d5e5f55666768696a6b6c6d6e6f637475767778
797a7b7c7d7e7f7110002020102040403040506070706053501000211032131120441516171221
30532819114a1b14223c152d1f0332462e1728292435315637334f1250616a2b283072635c2d244
9354a317644555367465e2f2b384c3d375e3f34694a485b495c4d4e4f4a5b5c5d5e5f55666768696
a6b6c6d6e6f62737475767778797a7b7c7ffda000c03010002110311003f00f55492492529249249
48b2434d0f0e00b488703a820f21c0aad958388cc7b1d8f854d97069f4d9e9d7abbf37e9ba96edff0
0aeb1172eebeb07d3c7392c200d8d20124b9acdbeff006ecd8e73dcaa35f99eeddd29ba11b76d95
196991df6fe93dbfd4f7d7fa4fe712534dadcf6b21fd068b1e0b86e6ba9602011e9bb6175bb3d4acfd
0f53d8f510cea5ea7bba1e3863a473492cfe6fd37976f1ebb7f9e759eca367e8ff009d5a943abb368b
704d2e738b20b58e021bea6e7399f99bbf46d46a31f1cd159f499ab47e68f0f824a63fb3ba6ffdc6a3f
edb6ffe45171995d756cada18c6b9c1ad68000f71e1ad42cac770ac1c5a69759bd9b858206cdcdf5
e368fe73d1dfe97fc221557752acc5b8b555435b3fa3797bb79ddec6d7e9b3f3bd3f7ff002d2527cb6
56f763b6c687b4dbf45c011a32cfde59aea3aaed2d661e1c90487bbb3bf73d26b7decff0084f57feb5
62d0a03f236d990d61f4c010dd586ce2e7b377e635dfa3abfeb88fe8d5fb8dfb824a72853d536309c
2c416347e91a082d79874c38b7754dddb1dfe151f11978b9aebf1a9c6330cf488713a3b7ee76caf6f
e67b50ff6974dc6a9adb991b6584b2bde3d82b3638fa41db3f9dfce5631fa874db721b450e06e7337
b406384b0ebbb7ec0cfcdfde494fffd0f506e454f607b09731c039ae0d71041d410404feb33f95fe6bb
ff22b2bec99f663e19ab29d86ea6aac167a5638c868f519637d56d0efddf751ec507e0f5670f49fd61
d36070d31f6b88877d035d8d73367a8df7b3f49fa3494ec7accfe57f9aeff00c8aad7f57c3c7b457617
769735a5d122c3ef6b66c6ff0031fb8aad789d59a585dd4cb8360387d988dd07fae76b9cdfa5b5591
877dcdb3f5abaa63dcf8634304025df44baaf53f95ef494c68ebbd3f2325d8d59b03d82773ab7b5a6
039cff00739bfe0dacff00a7fa3577d66783bfcd77fe455476164b292d19973dac6c0616d6e903f34b
bd2f51dbbfadbd57bf13a8bef3751d40d00b89d8297bda469b1ae6db6b9becdbfe05b4ef494e91b2b
24121d2351ed77f728d3635b4d6d21c0868046d7787f5566598dd4c377d9d4f68ac876ff41cd1a73
bff004ad63b77eefd04f5e2754f498d7f5273c012e71c7735ce27ddb9c5b635ccfea312536efc4c7b9
efb37dd53ecd9bdd517b0915925adf68fe5bb7a8329b1a69a29bad731a1cddcf71738827f4afb9cf1
bf7d5fcde3fe93fc27e7fa4ab3707ac68e775573dc03c03f6681ef21c3d8c7b58ef4dadf4d9bd68e37a
5ea5a419b5cef703a186811ed3eed9eedff00f5cfe5a4a4c032aae04358c1a0ec004deb33f95fe6bbf
b94726c632a707182e04347724f66b7f3955cdab26fb2b7e2e53b1bd30e047a4e7871716fb8b7731
9ec6b5df49bf9e929362fa355436d7b1cf87db0c20b9f01ae7bfdbee7fb51bd66481a89d04823f2859
15e2f587d47d5ea9bcbc032cc62d01c20eeacb2c6bbb7d17ab78cccc61b3ed391f69def61a9a2a35
863446eeefddfda724a7fffd1f555572edf46da6c2d73c025bb5ba9f79657e5f477fb95a54f2dc3ed58
d53ab2f6d85df9a4b640f53dcf8d95edd9bdbbfe9fe624a61fb67105be9399703e3e9b88fe71f8df49a
0ff0084abfedb7d6afa0e55e71e9f503779dcc60131abdedab9877d1de93edbeb697bdb5b58d04b9
ceb08000fce27d34949957cbcec7c3acbee786c09d4c0038dcf71f6b19bbf3de87664daf68153e86cf
2ff005261a3e9398367d250aeda5b5e9e8385b05ce75b25f3f44973abf7fb7e87f23f9bf624a46ccca

625

2ccc6b32326824380aeb0f6ba6c9335575ceedf4fb3f4af6eff00f47e82d3552ba813ea558f44c91bda
ed641f77b855fbed436e49c8adce75eca757b056d703ab5ceab73ac3eefa4cfcc6d69298e4e1d24e
d39592d2438fa755867dce759bfdbee6ec73fd9b9de97f83fa0a5918f6becaf260d42832434cd8e6c
6df77e67b373bf46ffb46ff00f8ef4d536e2e68ae4e5623ec6d81cd25ae0cdbfa3f57d4a99735975dfa
2fd0df6fe92957f0f26df48fdbaec736ef76df44c3764fe8a7d47bddbf67d3494a7e560620f51ef01a1a
4baf24bf41b3dafb7dcef77aacd8898bd430f30d8316d16fa476d85b300ea36eefec2054d232adfb2b
d85818c30492049b3dbb5a76fe6fb7fccfe6fd24abea35d8c658cc9c72cb01730c9120449d5dfca49
4b52dea45f61af22b3496c575bab3b98e2d6babfd2077e93e97bd4857d64344dd8ee21a01fd1bf57
46a7f9d085464575bbd97d5baf636ddc4bf616802a63d9bdfe957f47e8355a6dd739a5edb29b1ac3
0ed9278e5b3b9dee494ff00ffd2f55507d35bdedb1c25ecfa07c3fabfd65472bace3e206bb25d552db
1ce6b37d841805cddee1e9bb6b7da82efacbd398e0d7df4b64c349b1d0e86fa8e35b85477b58d1ef
77e624a7432e875f4fa6d21a43eb78278f63d96edfed6c4f756fbab755656c731da39a5c75fb9a9a9
c8758d0f7068adecdec7b5db816f8fd167ef2aff00b77a3fe8e72ea1eb6b5cba3769bb494948c742e
9cd739e30a90e7eaed4ea6776e8dbf4b7277745c17407e1d2e00003712600fa2d1b9bf45bf9a8ede
add35ee6b5b90c3b831cd33a4580ba9f77d1fd235aed89f17a9e0663cb31af65af0092c07dc0021a
7737e937e924a65452ec7ac554d4c656d921a1c7b9dcefccfde2a2cc6c8654c632c6b1c2d75961db
b816b9cfb0d5aff005fe9ab4924a738e0669b7d475d5bdcd60635e58e0e90774bc576b69ffc0bfe87
b1238dd6c389665d2e0767b6ca09023f9dfe6edabf9cff00a0b452494d6663ddee75ae639d63031e
36982017ff002bf76c413d1ba7ba376262ba34134b4c00057dff00e0dad62be924a688e91821bb06
363868e1a2a11fe6ca2d386ca2a34e3b2aa6b7192dad9b449e5d0d77d25652494fffd3f46abe8f6fa
4ff00a7cfd377d0fe4228e0fd1f97c97cbe924a7ea2a7f9d1f4be89fa5f4796fd0475f2b24929faa521c
2f9592494fd5492f9552494fd5492f9552494fd5492f9552494fd5492f9552494ff00ffd9003842494d0
4060000000000070005000000010100ffee000e41646f626500644000000001ffdb0084000403030
30303040303040604030406070504040507080606070606080a0809090909080a0a0c0c0c0c0c0
a0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c010405050807080f0a0a0f140e0e0e14140e0e
0e0e14110c0c0c0c0c11110c0c0c0c0c0c110c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0
c0c0c0c0c0cffc000110800cd015e03011100021101031101ffdd0004002cffc401a2000000070101
0101010000000000000000040503020601000708090a0b0100020203010101010100000000000
000010002030405060708090a0b10000201030302040206070304020602730102031104000521
12314151061361227181143291a10715b14223c152d1e1331662f0247282f12543345392a2b2637
3c235442793a3b33617546474c3d2e2082683090a181984944546a4b456d355281af2e3f3c4d4e4
f465758595a5b5c5d5e5f566768696a6b6c6d6e6f637475767778797a7b7c7d7e7f7384858687888
98a8b8c8d8e8f82939495969798999a9b9c9d9e9f92a3a4a5a6a7a8a9aaabacadaeafa110002020
102030505040506040803036d0100021103042112314105511361220671819132a1b1f014c1d1e
1234215526272f1332434438216925325a263b2c20773d235e2448317549308090a18192636451
a2764745537f2a3b3c32829d3e3f38494a4b4c4d4e4f465758595a5b5c5d5e5f5465666768696a6b
6c6d6e6f6475767778797a7b7c7d7e7f738485868788898a8b8c8d8e8f839495969798999a9b9c9
d9e9f92a3a4a5a6a7a8a9aaabacadaeafaffda000c03010002110311003f00f7f62aec55d8abb1576
2aec55d8abb15762aec55d8abb15762aec55d8abcff0043fcbef23eaf652ea5aaf97ac2f750b9bcbe7
b8ba9edd249646fae4c2accc093b62a997fcaacfcb7ff00a9574bff00a448bfe69c55dff2ab3f2dff00ea
55d2ff00e9162ff9a71577fcaacfcb7ffa9574bffa458bfe69c55dff002ab3f2dffea55d2ffe9162ff009a71
577fcaacfcb7ff00a9574bff00a458bfe69c55dff2ab3f2dff00ea55d2ff00e9162ff9a71577fcaacfcb7ffa
9574bffa458bfe69c55dff002ab3f2dffea55d2ffe9162ff009a71577fcaacfcb7ff00a9574bff00a458bfe
69c55dff2ab3f2dff00ea55d2ff00e9162ff9a71577fcaacfcb7ffa9574bffa458bfe69c55dff002ab7f2e3f
ea55d2ffe9162ff009a715405ef923ca1e5fd53cbfa8687a1d969f7ff00a4963facdb429149c1ede7e4
392806847518ab3dc55d8abb15762ac465d0b44d5fceba9c9ab69b697ef169ba7ac4d750453b229
9af090a5d49009eb4c55321e4bf270ad3cbda60af5a595bff00cd18abbfc19e4fda9e5fd376e9fe870
7fcd18ab8f92fc9c7af97b4c35ebfe856ff00f3462adff837c9fb0ff0fe9bedfe87076ff618abbfc1be50dff
e75fd377dcffa1c1d7a7f262adff843ca7c78fe81d3b8f87d520a7fc431577f83fca3ff00560d3bfe90e0f
f009a31577f83fca4050681a753a53ea707fcd18aa510691a3e93e7eb05d2b4eb6b132e8f7e666b6
82384b85b9b20a18a28ad3df156638abfffd0f7f62aec55d8abb15762aec55d8abb15762aec55d8ab
b15762aec55d8aa47e52ff008e28ff0098abeffa8c9b154f315592b1489d94a86552417d94103bfb78
e2af19d76cef6ebcfde46b393ccba8ac3e6cb5d56ef504d2f539e3b22f6d656c61366a8c008949691
363cf97293962a93f97bf34bcd5a4e9f068d21b5d52f2e2e88b0bdbf9e632fa775e6993460b330e45
cc68e8ebc69b214ff2b156431fe6feb027bbd2dac2ceef5eb2fd311369d6b3849a59f49beb3b68d63
49dd379e3b92f123b2f36555e7c5f90552c8ff3bf557babb10c562d6d752d85be8cf7bea6991c46ef4
b96f5a4bb6b965645796230202abf1fc3f1b6ccaa03ce9e7ff34eab696dea5c43a269b65e70f2de89
772e97793a4f2c5a88b1b8b8579a9181095ba78eb4058287f87b2ab8f9fb54f2ef9cc6946f65d67c9
916ad3c5a46b7777732aa18f41bdd42ea0792046fadc56ef028ac82468fd5fb524b0a8c551fe5efcc9
d43ce1f985e578a29fead691dc6b561796b6b71cadaed22d3ac6f2099a20cc0106e0f0e4790ff0024
964555ee38abb15762a91798abf59d03c3f49a57fe91e7c553dc55d8abb15762a90d9ffca65abffdb
3b4eff93d798ab04fccbd61db55d2f4e9355493cb50eb562be6cd3a25314d069d35adc70f55c37ef2
17b9fabb4f41f0c3cb9fc1cb156117de77d7bcb5a86bf6de46d42d60f29cd7b76da08962379128b1d
07eb32adb27a885617bd4f4d69f0348d22c5d5715445c7e656a3e73d375ed335bd6edfcb1652c1f5
378ad20b89efed64b896d85add9255237b671237aebcdab1b53947e9cb8ab1bd17cdb7fa6de8d5b

4f7b2f2fdde916be6613470bcb7ba46a325b5d693c24b14964568e0b80b27a49f1346c27f479a7c5
8ab25f317e6e79c5ac87d4ae2dec1e492f575510ac734ba5258eb16b6f038762cb2add5a49249f64
edfbd8e888d8aa03594f2b69fe7ff3e5de9d2db4d0587936cf54d1fd79a49ade4d54cfa9c931e3eaa8
7790342b3229e4c8d1a9fd9c551f17e6d799de7d5523d634db1b1b29e5b5d3a016c1f9450f97edb5
2460ed30affa4bc96fd38ffbaffbc18aa207e727993505d526b7bed334c92d5ad624b09609ae6548e
ea6b3e1741ab1466368a694f1f518f2e3f67d297157a95a89ff00c5ba19b8bb4be9ff00415e092f625
11a4cff0058b2ac8a8acc006ea00271565b8abfffd1f7f62aec55d8abb15762aec55d8abb15762aec5
5d8abb15762aec55d8aa49e52ff008e2aff00cc55f7fd464d8aa778aa1efacad752b2b8d3efa31359d
dc6f05c444901e3901565241077071560ff00f2a43f2a8bc521f2cdb196dc7181f9cdca35a52887d4a
a8a7862ab0fe44fe5190a0f94ecc84fb15f53e1f8b96df1edbeff003df155cff91df9512b4924be57b57
925a7aaecd3333d0003913254d283af862ae7fc8ffca89432cbe57b5757558dd5da660c919aaa905
f70a7751db15749f91bf94f28712f95ad2412b7a928732b077029c9aafb9a7738aaf3f929f95a442a7
cb76e56df6b70649e91d453e0fde7c3b7862a88d1ff00287f2d7cbfa95aeb1a37972d6cf52b26e569
711fa9ca325787c35623ec9a62acdb15762aec5522f318adce81eda9c67fe9de7c553dc55d8abb15
762a9059d7fc65ab9edfa3b4eff93d798aa65368fa45ccc6e2e34fb69a73b99648637727a75209c55
60d074304b0d32d031ea7d08ebb7fb1c55afd01a175fd17695ebfdc47d4ff00b1c55dfa0342ad7f45d
a57c7eaf176ff00638abbf40683b7fb8bb4db71fe8f16c7fe071577f87f41a01fa2ed283703eaf16c7fe
071577e80d07fead769ff0048f178d7f971570d034202834bb4037dbeaf177ebfb3df154b25821b7f3
ae9090c6b144ba4ea11c68802a855b8b2d801b003156498abffd2f7f62aec55d8abb15762aec55d8
abb15762aec55d8abb15762aec55d8ab169bf2ebca734d34ed6f728f7123cd2ac3a85f431fa92b97
721239d556ac49a2818aadff9571e551d23beff00b8a6a5ff006538ab7ff2aebcac3fdd77dff714d4bfe
ca71577fcabaf2b7f25f7fdc5752ffb29c55dff002aebcadd385fd3fedaba97fd94e2aeff009575e57fe4
bfff00b8aea5ff006538aa9cff00977e5758246097d555623fdcaea5d857fe5a7154bbcb1e41f2edcf9
6f47b9b817ef71358db492b9d5752ab3bc2a589ff0049ee4e2a9aff00cabbf2bff25fff00dc5752ff00b2
9c55dff2aebcadfc97ff00f715d4bfeca71577fcabbf2bff0025ff00fdc5752ffb29c55dff002aefcaff00c97
fff00715d4bfeca71577fcabbf2bff25fff00dc5752ff00b29c555ecbc8be5bb0bdb7d42086e5eead58c9
6e6e2faf6e515cab272e134ce95a31152b8ab23c55d8abb1543dfdfda6976571a8dfcab059dac6d2c
f2b9a0544152715635a5f95ed357337987ccf6293eafa8f1296f70aae6d2d12a61b61b6c5431793af
ef5e4df8f1c5531ff077957fead16bff002297156ffc1de56ffab45aff00c8a5c55dfe0ef2b7fd5a2d7fe45
2e2ac73cd9e50f2d249a018b4bb64e5abdb2c9c6303921496a0d3b62ac8bfc1be55ff00ab3daffc8a
5c55dfe0df2aff00d5a2d7fe452e2adff83bcadff568b5ff00916b8ab5fe0df2affd59ed7fe452e2a89b0f
2f685a5dc9bcd3b4eb7b6bb286233c51aac9e99218af2a56848069ed8aa678abffd3f7f62aec55d8a
bb15762aec55d8abb15762aec55d8abb15762a81d62f2e34fd36e2f2d922792152ec6e24314288b
bb3bb2ab9a28a9a05a9c558a796bf33b47d6bcafa6f98ef91ad3f485a4576ab024d736ecd7171f548
a18a7112abcb24b454868b37c43946b8aaaa7e6b791e58aca58750694ea085eda2582612d79488
a8e8c80c6eed0c891ab85e6e8cab8aa4f69f9bd69a8798348d1edec85943ae58d8ea7a43eaf2358
4d7d6f79c9a75b6578ca3cd6a8a24961f53d42ad55f87e22aa6337e6ef9310235b4b757aad2bc4c6
d6d6693804b39afd646f847eee48a0731b8a873b78d1552d33f37bca97f0477f25cbc36b790e973d
8599b5bb6d42bacc32cd6e92429130e522c2dc0233fd9f8a9f0f25537b6fcc5f27de5de95656ba8fab
3eb49049a71486628ff5b864b88519b8523778a292454938b718db156538aa95cffbcf37fa8dfa8e2
a95f949b97953426df7d3ed0efd77853154e715762aec55d8abc52d3cff00e604fccfd4b4696fa27d2
7fdcba68d24cde958dcdc69f1dab496b39e0cf68d68598fadc5d2e564247d80b8aa61aa7e705d5b7
98a5f2d45656f697b6fad69fa79fadc8ec26d3af2e5addeea2645f4c8e4bc3ed968a6e514a8ac0725
505a3fe7c49aff009922f2be95a55a4d79717d6b676d79fa40fd55e2bcd3af75059519602ce00b268f
65018b865f8715677f973e6abff38f91f4df33df43025fdea48f25b59b131ab248ea10190d41a28af23
d7154b7cabe6ff336b9e72d434cd46ceced34086cf9d97d5de4b89daee19fd2b80d29088ca8484f81
3fbc59579370c5537b9ff9d9b5efd1dc39e83a1ca92df3120a5c6a00078a1a03bac15595ea3fbcf4bf
91f156518abb15762aec558df9bfed797f6ad358b5fa3e1937c553db6bcb4bb69d6d66499ada5305
c04218c72a80c51a9d080c0d3df1557c55d8abb15762aec55fffd4f7f62aec55d8abb15762aec55d8
abb15762aec55d8abb15762a84d46d27beb46b7b6bd9b4f989565bab611348bc5835009924420d
286abd315617e6af215f5d797a5d27cb576cab33c6d3d9dcc91a42e5afbebd713ab1b79b8dc48c5a
8cc8f16ff00ddfed0554bcbff0095d1d94b1ea7a9ea372ba9cb6e965a8dbd8bc56f6b756b6b34b2da
24c21821ab42b332178560f547c32abaed8aa20fe54689358697a3df6a17f7fa2694fa7cd069f76f04
9199b48e1f567e4210e85782f3f4d93d4a7c7b33f255bb3fcaad22d749d3b457d5755bbb2d25cfd40
5cdc248f1db35b4f67f57e5e90e49e95c3af26acdf63f7bf08c5505a6fe4ce83a5dc595c5bea9a933d
82e8e96e247b761c3cbf1cd15a86a402bf0cee24fe6f87a53154bf48fcb4f31e85e6ab1bbd3efe23a2
6950d8d8d95c4de849732585aa38912743675f58b4b2049619e251191c92bcb9aa9b79fb45d7755
d6b42bab1be6b21a75d2cba3c71cd2c71cda81b7b966fada4640921e0ab18435fef247fb4a98ab3b
7677b466917d390c64ba57971257715ef4c552bf26b07f28680c0501d3ad0803fe30262a9de2aec5
5d8abb1540c9a368f34d73712e9f6d24f791fa3772bc31b3cd1500e12122acb40366f0c556b683a1
b998be9968c6e6449ee098233ea4d1bfa88eff000fc4cadf1063b86df15518bcade588278eea0d16c
22b989fd58a64b58564492acdcd582d4355d8d47f3378e2a83d72daeac74c1a57956cd6d2eb54b8
3135cdb4691c56a2625e7ba7a50730a18a6cdce629cb6e471559a97a3e58d16cf45f2e5bc716a13

627

85d3745802d551b89264703aa44a1a592bf6b8d3edb8c5536d1b4a8344d32df4db766916104c93c
94324b2b92f24ae450167725dbdce2a8fc55d8abb15762ac67ce4eb1a6872bb048d357b467763c5
55473a9271542f9265885f79ae22ea257d76e5912a3932adb5ad481dc0a8afcf1561171af6b977aa
eaba3cfa95c0d266f3d47a2dd4d1486192db4c6d162bb585258b8b461ee78a720437ef0af2f8b154
1f94ff3775677d1bcbba8dc5849a95cc7776ed3de4ad14c8f1437975673dc9a8012582d91db82b16
127abc93642aa717bf9a1e62b0d62f22b98b485d0ecf56b0d11af1679598c9a869d15efae4b04458
c34a157725c7862a80f21fe736bde6fbff2cb5c69fa7dbe91af258c727a33caf72973a868475905415
08510a3c445796eadfcc3157b562aff00ffd5f7f62aec55d8abb15762aec55d8abb15762aec55d8abb
15762aec55d8abb15762aec55d8abb154af56b4b8bab9d224857925adefaf39a81c63fabcd1d77eb
f13a8db154c2e3fb897fd46fd58aa51e4c50be50d014741a75a0fba04c553bc55d8aa85ebddc7677
125844935f2c4ed6d0c8dc11e50a4a2b3006809a02698abcbfca3e7ff00315af9475ed57cdb6d73a8
6b1e5a92fc798a08e2b4b4faa49636915dac11059996659637568e50ff00b7493d3a710aa3161000
0026060f002220574d464301000000000001000000000000000c00000000200000e0370100e077
0100c7e6ec1f5e93475f2eea73ebd6f29173a6daac773225b84b493d6e51b942385e46685850875
aecbc956b47fce1d3757f312f95574bb8875a3c95add9e36e32c1a84963731920d394223fac378c0f
1bad7962ace759d7348f2f584baa6b97b0d85842acd24f3b845a2a96205772680ec37c556e8fafe9
5aee8365e66d3e7ae8ba85ac7a85b5ccaa6106da68c4aaec240a57e1353c80a77c5529f2dc4dadd
e49e73bc8993eb51fa1a24332f1920d3c90c5c822aaf70c048c3f916153f12b62aca315762aec55d8
abb15631e74863b88b44825557864d5ad5248dc0656460e0a9076208db154b7c85f97d2793ef75b
bdbed49f569efaf1db4a9265024b4d39a38956df97566ac7f1c9d640b172fb18ab306d3b4f759d1ad
2164ba60f72a635225614a1714f88ec3ae2ab1f48d265904b2585bbcaaab1abb428582282aaa091
5a00c401ee71573693a53c7244f636ed14cc8f321890abb47408585284ad071af4a62ae8f49d2e17
4921b1b78e48c868dd22452a557802081b10a788ff276c55198abffd6f7f62aec55d8abb15762aec5
5d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb15762aa771fef3cbfea37eac552bf
295479574304d4fe8fb4a9ff009e298aa718abb15436a16169aa594fa75fc426b2b94314f11240646
d88aa9047d18aa5d71e52f2e5ddab595ce9d14b6d2477314a8fc8f34bd4e138735ab7a8bb316249
c550573f977e48bcbb8efeef44b69ef629cdd25c48a5a413345142c7913521a38624653f0b2c6951f
08c55358fcbda1457ff00a563d36d9352f5a4b9fadac4825f5e78920924e54af268e34466eeaaab8a
b1fd7adad7cd5e63b6d016257b6d2d45d6b57400e6ab251a1b30fd47ac5449328eb0a047f86618a
a9b69ab3fe8dfcbeb172fa36956d01d76761bc904602c36bf09143395e72ec7f72a508fdf29c559b0
000a0e98abb15762aec55d8abb15639e6eff00a50ffdb5ed3dff009f156478abb15762aec55d8abb1
57fffd7f6dd8f9d74bd4ec2d753d3ed750b8d3ef618ee6d674b1b9e32433287461540685483d31555
ff00155b569fa3754ffa40b8ff009a31571f35daaffd2b7543bd36d3ee4ffc698aae3e69b5009fd1fa99a
7869f73ff003462aeff0014da7fcb06a7ff0070fbaffaa78ab43cd5687fe95fa9fd3a7dd7fd53c55bff001
45a501fa86a5bff00dabeebfea9e2ad7f8a6d3feadfa9ff00dc3eebfea9e2aeff00155a7fd5bf54ff00b87
dd7fd53c5546efceba5d8da4f7f7b69a8c1676d1bcf7133e9f741638a352cccdfbbe800a9c558c79d3
5cd2a0f367972c61f361d335d9ee6d2e23d31af6382ddec3d465955add85676b9afa51aeee1f8bc7
c7d37e4ab17d5ff0032b55d0ff307d43ac69b7ba3bd868b15dd9473b9b7e7a8ebf3e9865b7f8c8591
1194cbcb972f4b8d17a8554edff3dafb50fdcd8c9a28b87957d19e59a41135bc9a5dedf8654e61cf19
2d3d23cfd26f8be28e275e18aa49e64fcdfbfd78e897365aa45a1abdb6a4d77a74372d1dcd24f2c49
a9413b9e401884ac3d17e3d50307e5c915567de42fccbbaf336b36fa121b3921b68162bcf52e01d4
59c5a41711dd2c4a5f9c137a8d490845fb347766e01566efe6bd345cdcdac305edcbd9ca6dee1ede
cee268d65550c543aa10480c2b4c55dfe29b4ff00960d4ffee1f75ff54f1577f8a2d3fe58353ffb87dd7f
d53c55dfe28b4ff960d4ff00ee1f75ff0054f1577f8a2d3fe58352ff00b87dd7fd53c55dfe28b4ff00960d
4ffee1f75ff54f15593799ad9e19156c353e4cac07fb8fb9ea47fc63c552ff002e6be965e5ed26ceeb4d
d4e3bab7b3b78678fea17278c91c4aac2a108d88ed8aa67fe28b4ff960d4ff00ee1f75ff0054f1577f8
a2d3fe58353ff00b87dd7fd53c55dfe28b4ff00960d4ffee1f75ff54f1577f8a2d3fe58353ffb87dd7fd53c
55dfe28b4ff960d4ff00ee1f75ff0054f1569bcd9a74653d7b6bf8124923884b358dca461e5708bc98a
5002cc054e2ad6ab7365e55d3a79b4fb5126a1a85cb7d56d13972bad46e7a0277201a7276e91c4
acdf6531544797b454d0f4f3033faf7f73235dea5774a19eee6a1924a761b0545fd84554fd9c5536c5
5d8abb1563f079cb48ba8a39ed61d42682550f14b1e9d7ac8e8dd1837a3420f6c5557fc51635e3f5
4d46b5a7fc73af3fea962ad7f8a6c37ff0044d4b6ebfee36f7fea962a91f9935c8afbf447d52c75393ea
da9db5c4d4d3af071893972635886c2b8aa763cd7607a59ea5ff70dbdff00aa38aae1e69b135ff44d
4b6ffb56de7fd52c55c7cd1643fe3cf52ffb875e7fd52c55c3cd362457ea7a9506dff1cebcff00aa58aa
d7f35e9f1a977b4d48281527f46deec00aff00beb154d3f4859fe8ff00d2beaffa07a3f5af5a869e8f0e7
ca94afd9dfa62afffd0f69fe58edf96be4daffd58f4caff00d22458aa5fadfe69e91a26b16fa31d2756bf9
ef4cab633d85b24d05c9b7b61752fa2c6552fc233d40ddbe05e4db62a9df973ce5a1799b4a6d5eca
6fabdbc72cf6f3c577c609a27b6b892d9bd442d55abc4dc6bf6862a9ba6a3a7c83947770baf1692ab
2211c129c9b63d057738aa1a2f3068535d5dd945a8db3dcd8c70cd791895498a3bae5e933ef401f
89e38aa5fe68f3a68de54b58ae6f44b76f35ddad825ad8aacf3faf7f2ac10029c9681a4744e4760585
76df1554d07ce3e5ff31d9cf79617423169737163790dc836f3437566fe9cf1babd374620122abb8e
2c6b8aa2a2f32f97e7be5d320d4ed64d45a59add6d5254694cd6aa1a64e20d794618731fb35df154
51d4b4e58d266bb844521e31c86440acc182d01ad09a9a7cf1549bf303fe502f34ff00db2350ff00a8
693154decede07b5b595e24695628f8b950585147438ab1ab9f31c71cef19f266ad71e8bb2acc96b
68cadc49a3296b80687a8db154874ef3f35ef9ce3f296a3e53bb90dd079adeed6d60ff00428763fe9

ca2797d30ccc78480fef2bfdd2ee7157a41b2b36fb56f11f8047ba2fd815a2f4e9bf4c557456d6d010
d0c291b0411828a14845e8bb0e82bb0c5521f2a22c7279868763abdc31afbc7162a96eadf99fa0e9
1ab2e8d2596a573732fabf567b4b479a29fead025cca6160473091c8a495ea7e15e4e0ae2a9af96b
ce7a079ab461aee9b71e9d9096782417348658deda792ddc3a31aad5e26e35fb4bbe2a9ba6a1a7
c89ea47750b47c0c9cd64523829a16a83d01d89c554975ad21e6b8b75bfb769ad16292ea312a16
8927a98cb8afc21c0f86bd71540798bcdda3f9661825bf6795ae2eedb4f8e1b55134a2e2f65586156
406a0348cabc8ec0b7c58aafd1bcd9a0ebb6935e595daaa5b4f3da5dc7700c12c3716927a5323ac
9420a3ec4fd9e943be2a8883cc1a15cde7e8eb7d4ed65bff52687eac93234bea5b05332f106b58f9
2f31fb35df15457d7ec7d3597eb317a4e688fea2f163c82d01ad0ee69f3c558cdcfe64796ed2df53ba
945d18347d5adfcbf7ccb6eedc750bc785224503ed296b984731f08f507f9545593b5ed9a2c8ef711
aa444acac5d405602a431aec698aa51e60f3868be5b7d2a3d41dde4d66e45958a40a256695a196
704806a14ac4df174ad077c5515a2f9874bd7b49d3b59b1980b4d52ce1d4ad526a472fd5ae115d5
9909a8d9857c0e2a86f33c91cfa1f381d6443776403210c0917b0822a3dc53154168aade63d61fcd
3351b4ab4125af97a3ebc812527bbee3f794e1111fee905bfddc462acab15762aec55a6fb27e4715
493c99ff289687ff3036dff002697154ed9954558851502a4d37268315637a3f9df48d72e66b7b086f
0c76f7975a6cd7525b4896eb7562ce9321722828c8c397d93d9b154ff00eb76bc049ebc7e9b3fa6af
cd685eb4e20d7ad474c554a1d46094cc2456b610cc60067a4624238d1a3df7525a80f8e2a84d77c
c9a479734f9b52d52e02410496f03a27c7219af2548208c28df94923aaad76dfc3156f4df31697a9a
a2a4a6daedc4cc6c6e87a174ab6b27a52b18db7e2adb731f06e086a118aa3c5dda111b09e32b35
3d23cd68fcba71df7afb62aebbff007967ff008c6fff001138ab1fff00ca7dff006e6ffb15c55fffd1f677e5
e4b345f959e5596de03733c7a069ed1db065432bad94642067214723b549a62ac16ead3f322e75d
f23eae9e468ad21f298bb375676b7d6514321bcb436bc6dd04a422257900dfeaff958ab0abafcb1fc
c0bc92633792ed78dcdccd73795bab26371ea79923d797d4abd18ac686dbe2e5f68b7d9f8315445
efe5cfe61dc6bd77789e544fd013cbaac91582de5b5b5c2a6b074f62ab341723d3309b1ac4c83ab2
b15f838b2aa527e5dfe6b8904a7438f52918e9ef77f5f9ece11766c6def6d1d2e3ea771102ad1dd87
0caabfbe8b9347c5e98ab6df95fe748e1d622b3f255b46da96bda16b7138b8b34f4ecf428ec14d913
eb3bf176b1aafc6c17d4f8b932fc6aa12f3f2aff3364d2e7b2d3fcbf1da7d61bcc71a59c9716b2da5a5
af99160aa5b9fad09098e487d66f536692593884508b8aa61aefe5c7e626b29aa450f97dec7f49c9e
613f5a8ae6c4dc429e648e2ab29fac282f149153a8592263f65b156b5cfcb4f3ceb775ad6a13794e3
5b9d6ad2fe0fab35cd8bda59dc5e69b6f6092db2996ab4683d697ec966e3c7ecf22abdafce02e3fe5
596be2e90c575fa06f04c85839593ea6fc816150687be2a82b2f24ebc6cedcff8fb5fde343f6348fe51f
f006aec555bfc11af6fff003bfebf4edfbbd1f6ff00b9762aa30fe5f6ad6c6436de7ad721699ccb398e0d
150c92350177a69a3935001538aab7f823cc1423fe5606bd5f1f4b47ff00bc762ab8792b5f1ff4deeb
c7c6b1e91ff78ec556792edaf74cd2bcc36ef7171ae5ec1a95e719aebd04b8b86f4e36556f4921887
5e03e1514fb5e38ab119ed7cfb3ebfe49d613c95f54b7f2bc1770ddd8db5cd847139bcb64800b651
7344442b50adfb3f0e2ac0adff2abce91288ae3ca115c412cf1dc6a11b4ba795b978fcc675c064569
c862222d6c0b57ed337d83c31547dcfe5f79e6e7509e37f2811e5c2756169676f776967711c7ac5e
d95e8e32c37748daddad3f75c158722accb4e498aa95f7e5ff00e65dc45fbcf2da6ab339d39afc6a12
58c31df1b1b1b8b091661677715032ccb22320a0917fba0a76551773f97be6c6b6d463b3f244714d
7bae689ac0613d8c60da689158a9b567172f25246b3aad59f8fa956e6cbf12a96ea9f965f98975e57
d4b42d3fcbe617d453cc16c914f359cb6f6569e627865f4e022f03bfa4f073ac94e4d2391c02aa62a9
add7913cf573fa50c7e5b7b57d45bcc212e63974ffacc4be6230c9cc1fad005a278b830afef2266dc1
f871550f317e5c79c35f6d5aedbca0905cea96daa4496c25d3daded2e751b0b5b38e782b7150caf6f
ebb9a2316e34f8979b2a88bbfcbff37df26b5713795651aaea7e67d2fcc905d1bbb43e9c1a6c960ed
0b017542ee2ccd1a9c47abfe4eeaa5b1fe5879fa4f339d6f55f2fa5fe9d25ed85e4da6d6c52271a7dc
ea929fddb5d34619d351556dbac44b17e75c55da6fe5afe6469eda287d19af1349bbd2efd649e5b3
32c5fa37497d2dedadcfd6fe181f97aeb5a147695595f972c550fff002a9bcef269971a7def9696fe57
d0a2d1ecaf6e6680cd67709a4ae9527a2a2f8466070bea90c9cd59dd7e2f85d557b36aba5c13fe5e
47a55c693fa0e1b892ce2bad2adde38bd2f56f62f502bda3711caa4f246afc55fb58ab378618ade24
820458e18942471a0a2aaa8a0000e800c557e2aec55d8ab4df64fc8e2a927933fe512d0ff00e606d
bfe4d2e2aabe6437834d1f50d2d3589fd7b76fa9c8620bc63991da4fdf322f240bc937fef38e2af101e
46f3d47a5f99ec97ca31b5f798ae75f9bf491bc80c9141affac445e97d6150b2178c33d77556e2bc8e
2ac73cc9e57f37e9223d323fcbfbbbad36fef2e6e7ea3a7fd55ed5a1974eb1b292190c7f585865964
81a659f8270ab112ab73e4aa61ae7e5979e75cbad52f1fcaaa82fdb5fb8b58679ec5cdb4faed95a5b
c0c0acf4e56f25b190b2f72bc3e25ae2a9ad97923ce318d5bf4c791a0d71f5492e23ba9afee2da692f
34ebcbcfadb5adcabde18d7d1af18644463f046dc63f8d59543af907f30a2d36dad1745bcb9b8b7b5
bdb2827bdbbb1ba960b4975386fed6cc4d25d192681228beab2991b9bc47bf4c550179e40f33dff0
09a6f2ca5f26dc416daada5cdca5e46f64d169734fa8437005949eb71122f0697ed46deabbbaaf1c5
5f4addff00bc93ff00c637ff00889c558ff2ff009079cb7ff8e357dffde5c55fffd2f6179035bb4d2bc89e57
d335186f6df50b2d26c2daeeddec2f39c73436d1a3a1a427756041c55917f8ab48ff0097bffa40bcff0
0aa38abbfc55a3ffcbdff00d205effd51c55dfe2ad1ff00e5effe902f7fea8e2ab65f376890c4f34cd7491
46a5e476b1bc0155454927d1ec3155b079c342b9822b9b77b9920991648a45b1bc2ac8e2aa41f4
7a1071554ff0015691ff2f7ff0048179ff5471577f8ab47ff0097bffa40bcff00aa38abbfc55a3ffcbdff00d

629

205effd51c5524f39ebb65a9793fcc1a758c5793dedde9b796f6d0ad85e72796581d1145611b9240
c5597d9ab25a408e38bac68181ea08515c555b15762aec55d8ab11d2756b6d22ef5cb7d423ba8e
493529668b8da5ccaad13c71716568e36520d3b1c5533ff0015e8ff00f2f7ff004817bff547156cf9ab
470687eb5ff48379ff00547156bfc59a37fcbdff00d205effd51c55c7cd7a30ff96bff00a40bdffaa38abb
fc57a37fcbdffd20de7fd51c550da879f3cb1a4d8dc6a7a9dccd67a7daa192e6e67b3bb8e38d17a96
668400315442f9b7457557537455c02a7ea37bd0f4ff74e2adff8b3463ff2d7ff004817bff547156ffc57
a378dd761fef0de77ff9e38ab63cd3a39aef75b7fcb95e7fd51c55aff1568fe375e1fef15e7fd51c55bff
14e8fbef73b7fcb95dffd51c5525f36799f463a2b969668916e2ca49259adae6189112ee266677923
555550096662028eb8ab2b37f662f934c33a0d41e16b94b727e368519519c0ee033283e1c97c715
4462aec55d8aa1352d4b4fd26ca5bed52ea2b3b38c7c73cee23415d80a9ee7b0ef8ab19f2b798b4c
b3f2d69169722ea3b982ce08e58dac6f015758c020fee7a838aa6e3cd5a31340d73bffcb95d8ff993
8abbfc57a37f35cffd215dff00d51c554a6f39f97edc219e69e3123ac51f3b3bb1ca473455158b727b6
2aabfe2bd17f9ae7fe90af3fea8e2aeff0015e8dfcd73ff0048579ff547156bfc57a2ff0035cffd215e7fd5
1c55bff15e8dfcd73ff48579ff005471552b9f3468ef6d32a9b9259180ff0042bcee0ffc538aa8fd5ee3f
e55f7d53d27fadfe86f4bd0e2dea7a9f55e3c78d2bcabb53ae2afffd3f7f62aec55d8abb154bbcc1ff1c
1d53fe612e3fe4d362aa1e53ff945743ffb67da7fc984c5538c55d8abb15762aec55d8abb15762aec
55d8abb15762aec55d8aa45ae799edb49b88b4bb585f52f30dd296b5d2ad88f50aeffbc958fc30c42
86b24941fb29cde898aa174ff002cde5ddec5adf9b6e16fb538984967a7c25bf46d9305a031230064
906ffbf9473dfe05897e1c5593e2aec55d8ab19d47ceda6e9be69b2f2bcb14a65b9b5bbbd9ef80a5b
5ba59ac6e51d8f57657e5c57ecaeed4e49c95568bcf1e4f9af9f4c8f5bb337f1a7ab25b99943a27a2b
7356048e3fba612d0ff00bafe3fb38aa8a7e627922504c7ae5abf1e3cc2bd4a96b85b401801553eb3
2c743bf261e38aa791cd61ab5acca9c2eacd9a6b59d197946c6366865460c284060cac31579e5ed
94ba67fcebd757eb617da2abea7e4ef305d3feefeab11025b4b977afc31ab0865a92d25bb24c3f7b1
b322ac9bcabe73b5f345cdfd9456e6deeb4c4b637b1b3ac8639ae0481a23c76aa346457a3af175f8
5b154db57d7b49d0a1136a772b09607d185434b3ca5454ac50c61a491bfc94566c552a379e6ad7
2261a65b2e816922fc17ba8289af28c010c96aac153a9fef64e4bfb50f6c551965e56d2ed6e5750b9
126a5aaa1256fefdfd79509209f4c101221b0da24418aa758abb15762a90f9a7fbbd27feda967ff002
73154fb15762aec55d8abb15762afffd4f7f62aec55d8abb154bb5fdf42d53fe612e3fe4d362a87f283
06f29e82c3a1d3ad08fa604c5539c55d8abb15762aec55d8abb15762aec55d8abb15762ab649238
636965711c480b3bb10aaaaa2a49276000c55875df99eef5a86693cbf3c7a6f97205e577e6bbb51e
89404861668f41253fdfeff00b81fb1ebee02ad5aac1a3dcb796bc9d07d675672b26b7acdd319c426
83f79752921a6b871fddc41b6fb4de945c792acd315762aec55d8ab0ebdfcb8d12e3cd367e71b379
acb5ab317acac92c8f13cf7d1244656899f812a231b71a37ed76c558f6b9f92f6fe62b8d564d4f5cb8
316b3762faf5228628dfd51a3368c7d36dc2fc0c65fb2dfbcdbec7c38aa2358fc9cd33ccda7d85bf997
54b9b9bdb4178b3dcd8a45a725c2dec4a855e28142d1258a1b94a93fe910a3fd9f831567ba3e990
68ba5d9e936cf2490d9c490acb33739642a285e46fda763f13377638ab1cf3b5ce877d6a7487ba73
e608596e34e86c233777b0dc202c8c624e88c3924824291c91b3c6edc5b15635e48d227d49b56bf
d374eb4f236a1792476fe66b4b05136a46ea08d8005997d08c0590346e8937346af3c55e83a5797
748d1d9a6b3b7e57b20026be9d9a7bb96800abcd21676e9e34c5534c55d8abb15762aec5521f34f
f0077a4ff00db52cffe4e62af3b6f36798afefaeb449754782daebced71e5e37f02c51cd6ba7c5a49bd
48e36e254334a8139bab351c8fb54c5515f975f99facf9b3498fd582c5afac3d5b3d4deeaebea73bdc
240d3c170b07a4dfb89d0237307f69dd11923c552ef327e6f5c69bab9d514247a0797a5d56d358b2
8ae6369eeae6cb4f4bafb0d18e3182e0a3f35f83f78e9c1968aa3ef3f37b57d3e1106a7a1c3a6ea52
5bdf35b3cb75f5ab396ead9267823f56d524f4cccb1891526f49994b2c7ce4423155fa6fe6beb37b77
1e9cda5d8895e7d3f4c4bd5bc93d06bfd474c4d4d495f4094878738d49667697d35e3f1d42a808ff3
d6edacae35097cb2f1c11d845ac5b466e41926b178e48e471fbba0f4eed5206ede9c893fd93c7157f
fd5f7f62ad332a8ab1001200aedb9d80c55bc55d8aa035c15d17511ff002eb3ff00c9b6c55e6773e6
df3468ba47906c7cb960b756ed696736b8d2c6ccd25a8b096516f6a6aaa676f45dfafc3c154afef968
ab2fd7bcd377a7ebbe4ab1b048a4d3bccd7b716b7324aae2558a3d3ae2f6368f75a12d080c1d7a1f
1c55877e617e6a6a9e5cd564d3e085f49b1d3b45bdf326a57b3da2ea131b6b0bd8ed1912dd2ea0d
9d5ccaafea578f0f83ed2e2a9cdc7e71f97e0b9bfb41a5ead34d637779a7aac16a266b9b8d350c970
b6e91c8cefc578d2a8bccba2afc5d157a0432acf0c73a06559555d55d4a380c2b46560083e20e2aa
98abb15762aec55d8abb15762a94eb7e62d33415856ed9e5beba2cb63a75bafab7772ea055628c
6e6951c98d234ad64755df156350daff008af547b2f37cf131b6e3703ca56c7d6b784060f135fc8a0a
cb211c5d626e310fd959b8897154d7cf5e5fd53cc9e5d3a2e8bac26817125c5ab9bf36cb7644704c
9298d23678c02fc0286afc3fcb8aa33cada03796f488f4b6b85b928c5bd44856004b6e4d0166624fc
4cf23bc8ec4b339c55390430aa90474a8f6db156f15762aec55d8abb1563f2f9bf4d9267b4d1124d7
2fa3631c9169e1648a3704a912ce488a32a41e4acfcffc838aa82693e65d69164f305ffe8cb7700be9
5a3bb02373f0c97acab236dd7d2483fd6c5539d2b46d2b43b55b2d22d23b4b6503e18d68588eeed
d598f766258e2a92f98ed6eb4abd4f3869519924b78c43add9c6a59eeb4f425aa8a08acb016678faf
353245d5d78aac8ed6e6def6da1bcb49166b5b845960990d51e37019581ee0835c5501aeead3e8
d626f60d3a7d4b892648adde088c71aa96691dae2589028a7f357db1541e9be73d0350d2acf5496
ea3b0faddbdbdd1b4bb9234b8896ee233c6b22ab300c5159baf4463d171575979e7ca1a834896ba
cdab3c5773e9ccad20426eece448668d43d0b7092444623e1e4cabfb43155d67e76f296a3a9c3a3
e9dacdade6a53fd63d382da4131ad995130252a0142e032935afc8e2a9f62a90f9a7fbbd27feda967

ff00273156e55f2efe953e5a92c216b8d46197549a330218651049146cf26d42fca44a5457eec551d
fa0f45339b93a6da9b9307d50cde847ccdb0047a5cb8d7850fd8fb38aac6f2f682d3b5d3e9766d72e
be9bcc6de22e5387a5c4b71a91c3e0a7f2fc3d3155d0683a1daa4715b699690c71298e248e08d15
50d4955014507c476f738aba2d07438606b5874db58ed9fd32f0a411aa37a2008eaa168780038ff0
02f6c550f6de5db38353bdd4de492e0ddc51dac56d3088c16d6c8a034302ac6a42391c9c397ab78
280b8abfffd6f7f62ad100f515efbf88c55bc55d8aa075b15d1b511e36b38ff926d8ab08b32e3cbff95a
78963ead9f2a760746badce2accb51d034bd5750d2b53be89a4bdd1667bad35c48e8239a585e06
62aac0356391d3e2076638aa47abfe58f9335e6ba6d5eca5ba6bdb1bad26e8bdd5cd5ec2fae3eb3
3c24896a15a4008a7d900227141c7156ee3f2cbc9b722b2594cb30bf9f574b986f2ea0b85bdbb8fd
29dd658a557512a1e2e81b830fd9c5596471a431a4518e31c6a151476551403155d8abb15762ae
c55d8abb1562b7de66bdd52ea6d1bc971c7777b1131de6b1355b4eb271d558a1066997fdf08453f
ddb245b5554c345f2cd968f34ba849249a86bb72bc6ef57bbe2d7322d79705e215638c1029146aa
9de9caad8abcd2cff002f7cd7a4eada9dcc027bbb0bfbad76f7598135296dc6a9fa4278e5b054a38fa
bc96e83d1322f0fddc5c6aeaff0aa84d67c83f983a8f9962d4e50b7fa2db798ac35ab6b49ef1a3b88a
2b696f16440c8de9c9185962923ac71c88bfb86f57d346c554345f21fe645deafa52f9985d47a1fd72
2b9d520b7d6670a23fd132dbca9fbb9164901bb114a2ad57a7aadc59993157a1fe53797355f28fe5
de81e5ad7102eada65b7d5ef196533ac92ab1e520724921ebcb7df7df156698abb15592cb1c31b4
d33ac71202cf2390aaaa372493b018ab1c93cdcd7f2fd5bca960fad3d2a6ff0097d5f4c5a3f020dd15
60e450fc30a4bfe571c5526d6952c4d9379f3567ba17d33aae9d66e2c34e8628c7aad24b5916495
230a158bc8cb2332a887e3e38aa3b4ebdd53538a1b3f296989a1796ede40a2faf2dcc064891eac2
d2cc04215c7d9965e037e6b1483156638abb15762ac1c5943e5dd425f2b5c2b47e4ff30fa89a5b44
c61fa9de4a19a5b55646564597796dcafd87f5136fdd2e2a87b87b9d5343d4ff002ff5ed5dec35a558
ad3f1610000026060f002220574d464301000000000001000000000000000c00000000200000e01
70100e07701004aaa7ef2ef4fbb94451cc95f87d4914982423fbb9be3a7168eaaa37ce5e459fcdb66
2c17521610412c33e9af0c2c93d9cb0c52c4648668a68983fef015fd8a298dd248e465c558a6a7f92
5757d1dddadbf9a25b7b0bad42ff5410b59a48eb36a1756f7bbb8912bc26809e9c4a3f1e1cd165c5
593685e41bdd1aeb44bc6d5d26974b9f5a9ae825a0892e535db9376ea07aade998e40b46f8f9283
5156e4156718aa43e69feef49ffb6a59ff00c9cc5520bbd734a4fccbb476b9005b69779613ad1b92d
d4b79a7f08f8d2a4b7a8a5683a1e5d31567b8abb15762aec55d8abfffd7f7f62aec55d8abb15416b0
69a4df91b9fab4db7fb038aa5de4821bc97e5b6f1d2ec4fdf6e98aa7d8abb15762aec55d8abb15762
aec5507aa6ada768b66fa86a97296b688403239eacdb2aa8152ccc765550598f4c558d7d575cf398
63a92cfa1795d8d134f5630ea37b1f5acee8435bc6dfefa43eb30fef1e3f8a2c5595da5a5ad85b4567
630476d690284860850471a28e815540007cb1556c55d8abb15762aec550f7d7f63a65b3de6a373
15a5a462af3ceeb1a0f9b31031563e7cc5ac6b0cb1f95b4c636cdc836b1a9ac96b6ab400a98e1204
d3835ec238c8ff0076e2a92f9d3499f47f29ebde6ed46e46bdae68ba65f5fd941a8211a5abdbc4d38
1f5389d14fd8003b97957b498aa4771f9a9acc335ece96d0269ba40f2d43730ac4ef3cd2f98d96376
8e8e02ac3eac65578b72e32063baf1552bd22e7cb1f9abfe1cd5fcd9e5fd57fc6d69a4585f2cd63753
d8c71da6ac8eed7500b6bd5fddfab032106b72bfbbf8389ae2a9d5b7e75f966da1d2bead69772f971
f4dbfbc9b539278e79a01a4cb676de8ca864795a677bb447590fa8926d2fed15551faafe74f97f4697
52b4bed2f53fafe8b6f7b79acdac514323dadb69a96b34f2311351c086f21954445d9d0900735298a
bd16de78aea08ae606e704c8b244e3ba38a83bf8838aaa62a81d634ab4d734db8d2af837d5ee178
9643c644752192446df8ba300e8dfb2c01c55e5f7ba1c5acdf5bdb6b9e689744f36681a8d9dfddfa8f
0b417f6f03a32491c73ff007715d2c204ab032224e8ff000f340c557a67f887401d755b3ffa488bfe6a
c55dfe21d03feaeb67ff0049117fcd58ab7fe20d07feae969bf4ff00488bfe6ac55aff0010e81d3f4ad9d
7fe6222ff009ab1548fccfaf684f1e95c754b43c753b32697116c049feb62a85b9d13c8377e77b3f3fc
ba941fa76c6ca5d3e355bb8c5b324aeae2478eb4695006547fd94771e1455937f88bcbff00f575b3ff
00a488bfe6ac55dfe21d03feaeb67ff49117fcd58abbfc43a01e9aad9ffd2445ff003562aeff0010e81ff
575b3ff00a488bfe6ac5510353d35ad5af96f20364878b5c8950c40d40a17ad3a903ae2afffd0f7f62a
ec55d8abb15619e7f78eda18751d661b9baf26d9c1752eb56d64c431a2a94796342af2c4aa24e51
a9fb4cacc8f4f85540fe56df59eb160fadf95e2b9b5fcbfbeb7b63a1d9df735963963f5126f4e29199e0
88011a7a2dc78c892108a0fc4abd0715762ac43f3226b98bcbd6b1dadccd68d75ac68d6934d6b2b
c137a173a9dbc52aac88432f24665254d68715441f22e947fe3ff591f2d6751ffb28c55bff0003697ff2
dfac7fdc6351ff00aaf8ab5fe05d2b61f5fd6283fed71a8ffd57c55b3e46d2f7ff00721ac8af5ff731a8ff0
0d57c55a1e45d2c107f48eb3b74ff00733a8ffd57c55093fe58f96ae6f6d752b9b8d5a7beb12e6ca79
357d45cc2d2af0764067a2b15f87901cb8d477c5515fe03d337ff00727adeff00f6b9d47feabe2adff8
1b4ca7fc74759f9fe98d47feabe2aeff0002e99ff571d6bfee33a8ff00d57c55dfe05d340a0d4b5a1ff6f
8d42bff0027f1571f2369a76fd25ad53fedb1a87fd57c55a3e45d34907f49eb5b76fd31a853fe4fe2ae
3e44d348a7e94d6fa53fe3b1a87fd56c552bf2af9774d5f3279825bbf5f52b8d1efa28b4a9f53b89afa
4b549b4fb595c42d70cfc2acec495f8b7a578e2acf31540eb3a4586bfa55ee89aa4665d335085ed6f
2157788bc32a9574e51956019490687a62a948f21795d6fecf521667eb56515b4284cb295916c39
7d54cca5a92b43cd8c4d206642d5eb8aacb0f2079634bb782d6c6de68a1b610a4205d5cf2582d56
4486df97a953046257e1093e98afd9ae2a8293f2a3c8b3c865bad30dccd2477105ccb35c4f23dc45
771430c893b192b28e16d005e7cb87a51b2fc4b5c5503a8fe5368da8ebb617f348d268f0d9ea367a

631

a58ccf3cb3ea0da99b40e6e6e0cd591025a246d148aeae9f0f455c55e82aaaaa154055514006c001
e18ab78abb1562175a7d8dff00e60a8beb586e55346f804d1ac9c49bade9c81a62a9e7f86fcbbff56
8b2ff00a468bfe69c55b1e5ef2fa9db4ab307dade21ff001ae2aeff000ef97ffead367ff48f17fcd38ab87
97fcbfdb4ab3a74ff0079e2ff009a71577e80d007fd2aecff00e91e2ff9a7156ff406820d7f45da03e3f5
78bfe69c55aff0fe81b8fd1767bf51f578bfe69c55bfd01a11eba65a7fc888ff00e69c55b1a0e86bf674
cb41f2823eff00ec71577e82d13feadb6bff002223ff009a7154a347d3f4f07cc1622d211647548eb6d
e927a47fd1ad0fd8a53aefd3ae2afffd1f7f62aec55d8abb1548fcdc7445d125935f5f574f89e2905b71
693d69d1c34318896a642640bc63a1e4d4c5527fcb1b4b3b4f2d4291c0f67ab22c36faf58c92091a1
d4ad608e196aaace80b0557e49b4aa565fdbae2acd315762ac3bf32ffe387a6ffdb7fcbfff00757b5c5
598e2aec552ed6af469f691ce6f20b1e5736d099ae94bc644d3a218c00e9f1c81b82357e1760c558
0e38abe7bd27cfdad681e5cd575f37b677d7d62fe697d360b8bebfbbbe966b5bdb96b349edb92a08
3d18c80c18ffba3d33f16eab21d53f37bccb6132e991dee886f5353d42c5752b922d2c665b4364f12
9f56e87a61a3ba914c8af2fef215e31fc6dc1550d53f3675cd162d5e4d2db4c44b0bad7ee26b79feb
1712dc26997f691c6919371f019e3b8908a06552958e3e038e2a83f307e66f99f594888bb86c7cb3
1f982d6d3cc716966e06b1a769b0dec96f2faecaa42c5295859e5464616ef2c91f2887a815649af79
cadfcb571349e49d562bbb3bfb4bbd405cde4f2ea7a7b5ee9b0c462d3ed8894707ba5766aa3b6f13
718d9db1562fe62fce7f3dc51eaeb66fa769ec8b7d1db442da4b8bbb37b14d3a72f2d662927c3753
a38e083945c94fc2cb8ab2283f33bcd135fdc432dfe910e8efaade6916dac7d5e4305b9b1b6fac472
4e4dd51beb47e04e3c5578ecceee8b8aa69f943e64d4fccbacf9bef754f56de694e8b75fa26495e54
b292eb48b79668a30e7e10252fc800bf1f2e43957157aae2aec55e6ba14de7f1e62f387d56cb4661f
a4a0e5ea5ddd29ff8e75a71e96c7aad2bfe55715641ebfe64ff00cb0687ff0049b77ff6498abbd7fcc9f
f00960d0ffe936eff00ec931577aff993ff002c1a1ffd26ddff00d9262a92bf9cfcd63583a0c51e8371aa
4753750c37b76eb6c0006b70e2d78c44d471463cdebf0a95e442a992eabe7d721521f2f331d801a
85c926bff0046b8aa23d7fccaff00960d0ffe936eff00ec931577aff993ff002c1a1ffd26ddff00d9262aef
5ff327fe58343ffa4dbbff00b24c55debfe64ffcb0687ff49b77ff006498aa07467f30bf9f66ff001041650
4a3475f40584d2ce0afd68d797ab1454ed4a571566cee91a34923058d41666634000dc924f418ab
e64d5f54f2b79e7cf6d647ce76d6e979e598638bcc5728b6d7115cc3aacee5a0a3431c370883e027
e2e3c5f8bafda55103f3935cd48dba0f365b6937771aeda693a959a5ac320b0469ae92768ae67063
9e2318859665478d69cda5fdefa78aadb4fcdebeb5b2b9b4b1d7ec6de4f575b7d1e658ada38efb52
875a75b786e54281124f6c55fd6a27312cb3f3fdd62a90ea9f9ab6fa8eb6faedd6a50a6b3058dbd96
a7633431dc58dbcd1f992d8b450c863e132adbf2963954bfc29ebab0df154f75bfcc0d13cedf965e76
9bcd1ab41fe22d3f4cd4a3b7d0a68e38d6d75811de450b584a8d5ba0c8f108de3f547d9903abbf15
5524ff9581a5f93341d3dfc91a9d859eab75e5cd025b868ade29e517b26a16d6f781d9813cfd0323c
9131aa703353ed362a9d4bf9e3a8e956feaff89e2d5d0cd7d15f56de1592d6c2cb5c16ab7512431a
b4b2b5937ade980c640beb451d0702ab37fcb6f3bea1e68f38dd69f3f9ca2d4ecac74db09a0b28ad
2ded3ebb2dc472fad310794aa538c6cd12bfeecbd2455a84555ec58aa41a3ffbd9e601e1aa47ff005
0b698abffd2f7f62aec55d8abb154b66d16d6e758b7d66e59e696ce329676ee4186177af395569fde
329e1c89f85365e3cdf92abe1d22d60d5ee75a84ba5cde431c3751a902290c24f090ad3ed80dc395
7ec715fd95c551f8abb1561df997ff001c3d37fedbfa07fdd5ed7156638abb1543de5858ea310b7d42
d62bb801e4229e359539004568e08aef8aa007957cb03a6896029b0ff4587b7fb0c5529d4ff2c3f2fb
58b98aef50f2ed9493451b4038c4224785d8318e448f8ac8b515e2e1862a9a0f28794c508d074e04
500a5a41b53a7ec62adff84bcabb7fb83d3f6e9fe8907cbf9315693ca1e538d4247a0e9ca8b4e2ab6
9000286a280276c55bff097954127f41e9f53d4fd520dff00e131568f943ca6450e83a711d286d20a5
01aff00262a8cb0d1b48d2d9db4cd3edac9a400486da18e12c012403c00af5c551b8abb15631e5aff
00948bce5ff6d2b6ff00ba5d9e2a8ff35eb173e5ef2ceafaed9d9bea175a75a4d750d94618bcad0a16
0a0282c6b4e8a0b786f8ab19f2dfe60dceb475eb486d3f4a5c68d77259c3a869e8e2cae0ae9d6f7e
9caa5da363eb88788f53e35f7e21540e8bf9ad7474bd3e6f347976fac35ad4e4befab6996b0b4cff00
57d3990492b97e0aa00901fb46bdbf942ac76ebccdf95526b1fe26b6d12ec6a77c6096f22b6d3e09
06a5f5bd29f5489e747e41996dadde929292ab47e972e3b155984baaf92e2d43ca16da3693652dd
79b39dde95722d12354b4b6b7176f313c0303c59020d8f371fca71542dbfe626ad797d0e8b1dadbc
3a9def98f51f2fdacedea490241a6dacb766675aa167658f8710ca39357a2e2ac7341fcf4bad5b4cb7
f335ce971c1e5f3a9da685730c4cd35dfd6ae6c85cc92a6ea3d34765455e3c9d793d57ec62ac960fc
eaf294d770da3db6a5019caaac9259b151eb5849a94150859bf7d045234602d792707e0e5032a9b
e99e7db2d626f2f5c58209743f327d622b0bc1246c45c5bc6f385fddb3a3ac91c7210c8df094e2dd7
e15559e5862fcc2fdec8a95d185393015ff4a3e38ab2337568450cd1907a8e4bfd71543fa7a4529c6
da9e148f156f8691d38db7ca91e2aee1a40fd9b6fba3c55c1349e805b53b0a478abb86927f66db6e
9b478ab74d2876b7ff84c55ae3a48ed6fff00098aaf46d3633ca36811bb15280eff002c5553eb76bfef
f8ff00e0d7fae2a91e8d343f5bf314a244f486a7155f90e35faa5af7e98abfffd3f7f62aec55d8abb1576
2aec55d8abb154bf5ad174fd7ec869fa92bb40b3417486291e1749ed2649e27578ca9055d15bae2
a83ff0bdbeff00ee4753dffe5fae3fe6ac55a3e56b7ffab96a63fe8fa7ff009ab155bfe1482b5fd29aaffd2
74dfd71577f8520ff00abaeabff0049d37f5c55dfe1483feaebaaff00d274dfd7156bfc270529fa5755f9f
d7a6feb8abbfc250d6bfa5b56f97d7a6feb8ab47ca50ffd5df561ff0047d2ff005c55b1e53847fd2db55
3ff0047d2ff005c55b1e54840ff008eaeabd6b5faf4be1f3c55a3e5384ffd2db5503c3ebd2ff5c55c7ca7
11ff00a5beac3e57d2e2ad2f94a25007e98d58d3c6fa4c551ba2e8167a10bb36d24f3cf7f30b9bbb8
ba95a795e4589211f137401235000c55309e2334324224688c8a504b1901d790a5549045476db1

54b34df2de97a42c0ba789a210cb35cc87d7958dc4f73fde49704b1f5589dc193971fd9a5062adea3
e5cd2f55d4ec757bd477bcd3a2b982de8ecb1fa57aaa932b20346e4117af4a6d8ab1ab4fca0f2559
2c4b6d0dda987d3f4d9af6e246021b1974d8c7c6edb25b4f2443fd6e5f6fe2c55373e49d1a21e5936
51fa33f949443a34ce5a564b6683eab244c58d583c40024efc955fb62ab0790b4148a7484dc453cfa
8cbad25da4edebc37f3a18e4922635e3c91990afd8e2c471c55070fe55f92ad587d4ec5ad6dc4691f
d521964583d486d4d947370a9fdea42c631275fda357556555407e51f938490ca12f165b77b49229
16f274656b0b392c2020ab0238c12bafcdb9fdba362a98693e41d1b46beb5bbb22e915a4d757c90
6d492fef9784d73250005ca555428551c9cfc4cdb2a9f5ee91a4ea4cafa8d85bddba02a8d710a4a54
1352017069d315428f2bf964569a358efd7fd161ff9a7156ffc31e5ae9fa1ac69ff0030d0ff00cd38ab8
7963cb4b4a68d6229d296b0ff00cd38abbfc31e5aa71fd0d63c7c3eab0d37ff00638ab7fe19f2dffd59
ec7fe91a1ff9a71572f96fcbabf6748b21db6b6887fc6b8abbfc33e5bffab3d8ff00d2343ff34e2ad7f86
7cb74a7e87b1a787d5a1ff9a7156cf967cb8763a3d8d3c3ead0ff00cd38abbfc33e5ce9fa1ec7fe91a
1ff009a715575d1f494b47d3d2c2d96c246e725a885042cc0835294e24d403d3157ffd4f7f62aec55
d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8a
bb15762aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb1
57ffd5f7f62aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8ab
b15762aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb15
762aec55d8abb157ffd6f66ea3a879e2f35fbfd37cb4fa4c165611db976d462b99a579270ec69e8cb
1a8501462ab7d2fcd9ff96bf2effd22df7fd9462aa56f2fe67ddabbdaea5e5a9d63768a468a0bc70b24
678b29e3706854ec476c55d732fe67d94125d5e6a3e5ab7b5854bcb3cd05e471a28ea599ae0003
e78aac4bbfcc992e8d8c7aa7961ef8462736cb15d99444c681f80b8af127f6a94c5511e97e6c7fcb5
7977fe91afbfeabe2aef4bf363b5d7977fe91afbfeabe2aa535dfe65e99e85dea72e853580b8b68aea
3b686f2398c73cc9131467959430e751514c559c62ad5412403b8ea3156f15762aec55d8ab4086d
c1a8e9b788c55be9b9c55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb15762ae
c55d8abb15762aec55d8abb15762aec55d8abb15762aec55ffd7f6e6923fe76df319f18f4fff0093726
2ac13cf9e60f3059f989ad34ad27cc975a6fab1c7aa369b1ce1248ded6411c96728428be94ac8670
08326db49c1a3655e7f6fab79ff0046bd9bf42f977cc50d9cbe60d4f5598db59cf1a4b677b76cc14c7
246179b46c1c332bf121978237da551726b1f9817da73e9bac68dad6aba7cda7ded85f59cfa75f08
eefd78ee16394ac8245576e4892dbca658a8c1e19e3f4da36554268fcd7e599352b6f29e8dad5ce8
e2cedecbcb4e9637b6fa9585b3c9348f692492443d486d5fd3f4292afee5fd3a9f47f7aaa926a5f9b3
3c5737b77179a62d464866786de3b7b910adc258e9be80e0917000dd25e961f64ab7c7f032ae2af
51fca9d43cd97f77adbf9a62d5619cca7d25d460682cd944f31492d0322b0568da30e8fc78f0feefed
4922accfcd5ff1c7ff00a3ab1ffa8c87154eb1579079cdbf33e1f306a87ca30dcc36524dcd6e6dedecd
8cab1e8b76635e53292c3ebab6c9bfc5b95afa7cb1554d42e3f3565bc8e55b6bb92d6daf92741646
081de1974dbc1e8c91cd45658ee4c1f17a8c8e3896546493154a2d752fcf06b6b596686f56ee0979
bc0f6f65c2785af34da098a824116f25f72f4f86e9fcca9c954d96f3f35a78b4b678f51b492ed5a3d54
7d5f4e9fea9a9c220da30244e7672959ff0078cdcd6b1f4c5531f393fe64cdaaea169a1ac91e9cc96ff
507b71118ded9e2985efa8ec39a5c2b7030713c4fc1ff0016d154a2f2dbcfbe57fcb0f2b59f9274db95
f30c7671b6a902c568d27d692d3938b8590a86669450b21f89bed36fbaa9ef9cbfc61a85deb5a543
6774da0dce8d27e8efaa2dbbc735c4905d25c4172646122355adcc3e9fdadf7fb78ab13b6bdfce5b4
1796367a7dd45616b61047a6adc476a54cf01b41c5648fd47512219979b248c8df1327c3c7157a2f
94ae3cdd36a5aca7992064b15685b4b91b829e2eadea46ca8b42c840fde2bb248a54d237e6b8ab
2cc55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb15762aec
55d8abb15762aec55d8abffd0f685b49aac7e6ef308d3ad6dee10c761ccdc5c3db907849b00b04b5
dbbd462a9c9b8f32d0f1d3ec49ec0df4c07fd419c55a371e66eda758fb7fa74dff6478aae13f98e9be
9f655ff0098e97fec931577afe63ffab7d97fd274bff6498aadfac799a9ff001ceb0af87d7e6ffb23c55df
58f33f6d3ac3fe93e6ffb23c552af314daf369c8b7563691db1bbb1f5248af2591d47d721e88d6a80ff
00c12e2acaf15762aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb15762aec
55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abfffd900000008
40010824000000180000000210c0db01000000030000000000000000000000000000001b400000
40000000340000000100000002000000000000bf000000bf0000af4300004d43030000000000008
000000080fe7fe9430000008000000080ff7f88432100000008000000620000000c0000000100000
0150000000c00000004000000150000000c0000000400000051000000401e01000000000000000
000d201000010010000000000000000000000000000000000005e010000cd00000050000000100
4000060040000e0190100000000002000cc00d301000011010000280000005e010000cd0000000
100080000000000000000000000000000000000fa0000000000000000000000ffffff00fafafa00727
272006f6f6f00606060006b6b6b00676767006464640068686800696969006e6e6e00666666006c
6c6c00ebebeb00fefefe00fcfcfc00656565008181810088888800919191008e8e8e008d8d8d008a8
a8a00898989008c8c8c009090900093939300929292008f8f8f009494940096969600979797009b
9b9b009f9f9f0098989800999999009a9a9a00959595009c9c9c0071717100e5e5e500d7d7d700d
edede00e3e3e300dbdbdb00dfdfdf00dddddd00e1e1e100dcdcdc00fdfdfd00f8f8f800ececec00e4e4
e400ababab00adadad00d8d8d800ededed00f9f9f900f0f0f000a7a7a700fbfbfb00afafaf00d9d9d90
0f3f3f300f7f7f700e7e7e700d5d5d500f2f2f200eaeaea0086868600e9e9e900a8a8a800d6d6d600e

633

2e2e20087878700e6e6e600acacac00f4f4f400e0e0e00082828200f6f6f600aaaaaa00d2d2d2007d
7d7d00a4a4a4009e9e9e00c6c6c600c9c9c900cccccc008b8b8b00e8e8e8005f5f5f008080800075
7575007e7e7e005a5a5a00a1a1a100cfcfcf0056565600aeaeae00b9b9b900d0d0d000777777003
2323200efefef00bfbfbf00bcbcbc0001010100b1b1b100b2b2b200d4d4d400c7c7c7004d4d4d00a3
a3a300dadada001c1c1c0061616100eeeeee00d1d1d100595959007f7f7f004b4b4b003a3a3a00b
bbbbb00c3c3c300c8c8c800b8b8b8007a7a7a004c4c4c00b7b7b700f1f1f10040404000cacaca00b
dbdbd0014141400cbcbcb00bebebe0057575700c5c5c5004747470070707000b0b0b0003434340
05353530084848400a5a5a5001818180055555500c4c4c4002d2d2d0041414100454545002f2f2f
009d9d9d007474740083838300111111003f3f3f00a9a9a90079797900636363004343430050505
0006d6d6d00858585003939390021212100bababa00b5b5b500525252005c5c5c00b6b6b600262
62600292929004e4e4e00050505001515150044444400333333001212120016161600cdcdcd00f
5f5f50024242400d3d3d300c2c2c200cecece00424242002a2a2a004f4f4f002e2e2e004848480035
353500c0c0c0003b3b3b00a2a2a2007b7b7b005b5b5b005e5e5e002c2c2c004a4a4a0020202000
1b1b1b00a0a0a000b4b4b40051515100626262003d3d3d0046464600c1c1c10058585800383838
006a6a6a00101010005d5d5d00171717007878780076767600a6a6a6003e3e3e001f1f1f0036363
600b3b3b3007c7c7c0054545400494949003c3c3c0037373700282828002525250031313100232
323002b2b2b0006060600737373000f0f0f00303030001d1d1d0027272700222222001e1e1e000d
0d0d00191919001a1a1a0013131300090909000b0b0b000e0e0e000c0c0c00010195916448c49f
8e3e64374d9f552236529f9f9f9f483c37373e8e8e8e3e3e3e3e3e3e3e3e3e3e92db489f9f48db923
c3c3c3c3cdbdbdbdb36375527374b7601010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
1010101010101010101010101010101010101010101010101010101010101010000010258df010
10201323232010101013201010f0f010132100f0f01010101010101010101010101010f0f0101010
10f0f0101010f0f0f0f3201323d0101013e390101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101011610000026060f002220574d464301000000000001000000000000000c0000000020000
0e0f70000e07701000101010101010101010101010101010101010101010101010101010101010
000013d578e1001100101010f320f010f0f0101010f010f0f32320f0f0101010101010101010101010
10101010101010101010101010101010132010101013d52340101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101000032017e6d0101011001010f0f0101010101010101010f01010f0f0f010101010f0f0f0f0f0f
0f0f0f01010101010101010101010101010101010f023d0f01374701010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
101010100000f0f7d6e013201320f01010101010f0f0f010101010f01010101010101010101010101
01010101010f0101010101010f0101010101010101100101010101374501010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
1010101010101000032017e6d01010f010f010101100102010f10010101010f0f0f3d0f0f01011001

01010f0f0201013d01010f010101010f0f01010f013d01320f0101010f01374501010101010101010
13d010f010133010101013a010f010101010102010f0132013301010101010f320f0132013d01100
1320101100f0101320133010f0f0101010101010f013d010f0101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
010101010100000f01706d01010f01013967ebc5125f799b5f8dc5805f79c58dd95479d580505012
d9549c125dd94b124613e050e0a012a550464662014e010f0101010f01374501010101010101010
1027d882b7d76ba2e0eac3532382a696b2c8b4fba35c23f027c49010f6d850f0101322eac2f3d6fac
7633013ad24fa84e1001443729017c6241866f7e697d59104a6a3101020f0101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
010101010100000f01706d01010f01013320da2a5ec0166f941524715fc6e0171fac0b526182756d
2b4213c21eaa067822ab43116ecd076608b227340101010f0101010f01374501010101010101010
1325d1766995bab8288b61435e14d0d091a0977af83c9a867d5723854d59acd103a350757237ec
ce23b010f72cf19b2453a4ec69c9a358056a59417c77d656164cd495a3901011001010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
101010101010100000f01578e01010f0110012f49d2e2318b69ce3c202720128245da9cc22e8153
1d4e3295f9669b22150c77e4320ad2bba4489035d2423a01320f0101010f0137450101010101010
101010f22234ae4019b894180c745c65ba82746183b5e01ce3e713d015b7a4a012932015e5401a
c06df040101022d1ec48d020186c001323316925314235e3adb845783a1d5330f3a010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
1010101010101010100000101573e0f010f0101013d015616010101aa22696a0d5a5194033a6ed
e6e10720130c10670347ddad92a7a01066259eb279c7e70b70201320f0101010f01374501010101
010101010f01232431d43bd55761802e41c633bac49c80696033a3866701bbbbd52a2515010126
260f2067cd5e3d0f0130cc26d7010177063d5969169f539a1c0b350c853b20122b010f0132010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
101010101010101010101000001018b3e0f010f01100249d288e076243b08c4858917156d16732f
8d7e624c554194236dc27d7d5ae0bbc866aa3c3ca49503a9c06901013d0f0101010f01374501010
1010101010101401d4d49684d0845ac57ac4aa26237801c7c53af27a1696ba89b3786df80cd0132
401dcd50625ae22b010166509a9a0141019f7ce0471bc4775d1c55769a482a6b89643a32010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010000010195640f010f011001821e322acc2210d7615b1f272f34cdc
44c62a94d3dcc288a3a6ac25b375635384b271a655dbb016a21953d3240010f0101010f01374501
0101010101010101014269103a453a0f0f393d10503801b740104e327641010f404401016939320
10f01104c330155cf3402010f4e6901010110010e5101e05601b7690f01020e020134410201010f0
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
010101010101010101010101010000010195640f010f0101323d01010f01103bc0720f0133010f01

635

010132013239e58f024e28610f100101020132010f0f320f3d0110010101100f0101010f013745010
1010101010101010f4d7e0f01010f010101320f010132013d0101013d013201103d010201100101
100f010f32018315138b1001010f1001010101100101508e0f0101013d3d01013232010f0f013201
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010000323257ac0f100110010101010101010176247e0f0201010101
0101320101624630322f153c41010f01010101010101010f0101010101010101013d010f01645b01
010101010101010110333a1001010101010101010101010101010101010101010101010101010
1010101010101010102b73a01010f01010101010101010f3201010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
010101010101010101010101010101000001108bcd013a32010f0f0f0f0f0f0f0f014e01010101330f
103201013a0101100101013a010141010f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f01010f0f02016476010101
010101010101323d100f01010f0101010101010101010101010101010101010101010101010101
0101010101010f023201013201010101010101010f0f01010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
0101010101010101010101010000320259df01013d3201010101010101013d01013d0101010101
0f0f011010010101100101320f3201010101010101010101010101010101010f01010f0101374701
0101010101010101010f010101010f010101010101010101010101010101010101010101010101
0101010101010101010101010f0f010f01010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010000011070793e7f6582acacacacacacacac7f826e8282cd82df
cdaca9a98282a9df6dac82a96da9656ddfdfdfdfdfdfdfdfcdcdcddfdfdfdf6e3e6e646e82db503901010
10101010101010101010101010f010101010101010101010101010101010101010101010101010
10101010101010101010f0f0101010f010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010000010173a55dd9679be0e0e0e0e0e0e0e080795d795f795d5f5f
505dc55479795d9c12549c915f5d1279797979797979795d5d5d5d79797979e09c545d9c50203d
0101010101010101010101010f0f0f0f01010101010101010101010101010101010101010101010
1010101010101010132010110320101010f0f0f0101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
1010101010101010101010101010100001001013d010f010101010101010101013232013210010
f320f10100f01010f0f3d01100f01010f32010101010101010101010101010101013a010101100f10
0101010101010101010101010f32320f0101010101010101010101010101010101010101010101
010101010101010101010f01011032010f0f01010f0f010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010000013d020f010132010101010101010101010f1001010
1010f010f01010f100101010101323201010101010101010101010101010101010101010f0f0f010
1013a010101010101010101010f0f0f01010f010101010101010101010101010101010101010101

010101010101010101010101010132010f320f0101010f0f0101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
0101010101010101010101010101010101000010010f0110010f3201010101010101013d010f320
10f01010f0f010132010132013a010132010f010f0f0f0f0f0f0f0f320f0f0f0f01010101100110013232
010101010101010101010101010101010f01010101010101010101010101010101010101010101
010101010101010101010101010f010132010101010f0f010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101000001010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010000010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010100000101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101000001010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010
Note that in this example, for simplicity of representation, no consideration has been given to the
scheduling and release parameters of the event handlers. In particular, it has been assumed that the
handler for the thruster button runs at a high priority and will not be preempted.

11.8 Asynchronous Events with Parameters


Asynchronous events are parameterless. It is possible to provide a class that builds upon the RTSJ
class and provides a parameter-passing mechanism. One way of doing this is illustrated below. It
extends the AsyncEvent class and provides a new fire method. This fire method places the
object passed as a parameter into a bounded buffer (defined in Section 5.4). The lastParam method
allows the parameter associated with the last event to be obtained. The bindTo method is overridden

637

and

always

raises

an

exception, as
import

external

happenings

cannot have parameters.


javax.realtime.*;
import
communicationAbstractions.BoundedBuffer;
public
class
ParameterizedAsyncEvent<Data>
extends
AsyncEvent
{
public
ParameterizedAsyncEvent(int
bufferSize)
{
super();
but
=
new
BoundedBuffer<Data>(bufferSize);
}
public
void
fire(Data
o)
throws
InterruptedException
{
buf.put(o);
super.fire();
}
public
Data
lastParam()
throws
InterruptedException
{
return
buf.get();
}
public
void
bindTo(String
happening)
{
throw
new
UnknownHappeningException(
happening +" cannot have parameters");
}
public
void
fire()
{
throw
new
IllegalArgumentException("No
parameter");
}
protected
BoundedBuffer<Data>
buf;

}
Warning In practice, the handling of parameters is complicated by allowing multiple handlers, each
of which has its own fire count. There are several ways of dealing with this problem. One
possibility is to have a buffer per attached handler and to subclass AsyncEventHandler
so that methods that manipulate the fire count can be overridden.

11.9 Understanding Asynchronous Event Handlers


In order to appreciate and understand the limitations of the RTSJ event-handling model, it is
necessary to consider how it might be implemented. The key challenge in implementing
asynchronous event handlers is to
limit the number of server real-time threads without jeopardizing the schedulability of the
overall system
have an implementation model that allows the deadlines of the handlers to be predicted.
This section considers sporadic and periodic event handlers; to have analysable aperiodic event
handlers requires them to be implemented within the context of ProcessingGroupParameters
(see Section 10.4.5). From a priority-based scheduling perspective, each sporadic or periodic handler
has an inter-arrival time, a deadline and a priority. Here, it is assumed that the priorities have been set
by the programmer, perhaps using a deadline monotonic priority assignment algorithm (see Section
10.1).
A thread per handler versus a single thread model
At one extreme of the continuum of possible implementation strategies is the approach that allocates
a real-time thread for each handler and schedules the threads in competition with application-defined
threads. While this is simple to implement and is adequate for systems with a small number of events,
it is expensive for large numbers of events. Bound event handlers require a single thread per handler
model.
At the other extreme, a single-server thread is used to execute all nonbound event handlers. This
approach is illustrated in Figure 11.3.
0100090000031ef8000000004d6d000000001610000026060f002220574d464301000000000001
00e64d000000000900000000200000acf30000ac130100010000006c0000000000000000000000
d2010000cf00000000000000000000006a400000a31c000020454d4600000100ac1301000c0000
00010000000000000000000000000000000005000020030000c40100001a010000000000000000
000000000000e3e306006e4e0400460000002c00000020000000454d462b014001001c00000010
0000000210c0db01000000600000006000000046000000783700006c370000454d462b22400400
0c000000000000001e4009000c00000000000000244001000c0000000000000030400200100000
00040000000000803f214007000c0000000000000008400005c4360000b83600000210c0db0100

00000000000000000000000000000000000001000000ffd8ffe000104a464946000102010048004
80000ffed094450686f746f73686f7020332e30003842494d03ed000000000010004800000001000
100480000000100013842494d040d000000000004000000783842494d03f300000000000800000
000000000003842494d040a00000000000100003842494d271000000000000a00010000000000
0000013842494d03f5000000000048002f66660001006c66660006000000000001002f666600010
0a1999a0006000000000001003200000001005a00000006000000000001003500000001002d00
0000060000000000013842494d03f80000000000700000ffffffffffffffffffffffffffffffffffffffffffff03e8000000
00ffffffffffffffffffffffffffffffffffffffffffff03e800000000ffffffffffffffffffffffffffffffffffffffffffff03e800000000ffffffffffffffff
ffffffffffffffffffffffffffff03e800003842494d04080000000000100000000100000240000002400000000
03842494d0414000000000004000000023842494d040c0000000007b3000000010000007000000
03200000150000041a00000079700180001ffd8ffe000104a46494600010201004800480000ffee0
00e41646f626500648000000001ffdb0084000c08080809080c09090c110b0a0b11150f0c0c0f151
8131315131318110c0c0c0c0c0c110c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c
0c0c010d0b0b0d0e0d100e0e10140e0e0e14140e0e0e0e14110c0c0c0c0c11110c0c0c0c0c0c110
c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0cffc00011080032007003012200
021101031101ffdd00040007ffc4013f000001050101010101010000000000000003000102040506
0708090a0b0100010501010101010100000000000000010002030405060708090a0b100001040
1030204020507060805030c33010002110304211231054151611322718132061491a1b14223241
552c16233347282d14307259253f0e1f163733516a2b283264493546445c2a3743617d255e265f2
b384c3d375e3f3462794a485b495c4d4e4f4a5b5c5d5e5f55666768696a6b6c6d6e6f63747576777
8797a7b7c7d7e7f711000202010204040304050607070605350100021103213112044151617122
130532819114a1b14223c152d1f0332462e1728292435315637334f1250616a2b283072635c2d24
49354a317644555367465e2f2b384c3d375e3f34694a485b495c4d4e4f4a5b5c5d5e5f5566676869
6a6b6c6d6e6f62737475767778797a7b7c7ffda000c03010002110311003f00f5549547e63833d4f6
56c74fa61d2e7bda3f3db5d7eeff00abf6287ed070fe5797a5737fe97a6fff00a9494de490f1efaf22a1
6d6641d083a10472d70fde6a224a52a99dd459846adf55968b099353776d023def13bb6fb9bf455b
55dd9173cb863542cda7697bddb19234735ae6b2d7bb67fc5a4a6ad5d7b0ed2edb5e46d6b77ef34
d911eeedb77ff00837fe6283feb1613080eab241734bdbfa17fd10df535f6fb37fe6b2cd8f43c8e9395
9173ed74b778734b1b94f0c8788b06cfb29fa7b523d2fa84b62db1ad6fa85cd197612e3639966e73
ce3fb7d2f4f654c6fe658929b1775cc4a6c153ebbcb8d9e96953c8dda89dfb76fa7b9af6fa9f43fe82d
15430e9cfc4a854582e68325f6643acb23e2fa19bbfce572ab5b6349120830e69e5a7f75c92956bcb
2b7bc092d69207130107ec18ef60194c6e4be7739d634384ff0021afdde9b7f90d45bff99b3faa7f22
a96e3754f5d8fab30368f577595bab13e9c97bab6bfddff17fd449497f6574bffb8747fdb4cffc8a4ec4
a28a8bb16b6d0eae5ed1580d04fe707b1b0d7efdaac92044989e142e23d2b04ebb4e9f22929fffd0f
456b5d8f60a016d721b5d364e829602e3b18f1b7d767fea7fccf4193f55be9b1e3dac7e8c36da585d
dc103dff0049beefdf566fa197d4eadf22468e698734f1b98efde54eb75ff6a75566d194ff00a2fe7f42c
6d7bdf5b4fefdeffec7e7fabe9d7ea252bd5f4ec3730d664016305bb8b9a27dcdded6fe91bbbf7bdfff0
06dec7cd7dd9543061d96541d1636fa9a1d2d2d76cdbbddb7e9398ff7238c6b00d726d3e7ecff00d
24a2ca9f8b6ee0f75b5dce87b5db46d711a58cd8dafe97f84ff003ff7f7a534bf6b5b8d958fd2ce1675
ee3435ceea1e9b7d0691babfd62e360fd37e8bd47d6c63ff009c62d0c1fe858fff0014cffa908c40208
3c1d0aad45acc7adb8f77e8cd4d0d6b8fd1735b0d6bdaff00a3ff005bff00ced25369241fb5e2ff00a5
67f9c12fb5e2ff00a567f9c1252654f2eb73bd7657b9afbaa6b0bebfa427d41bdbefaf6b9bfbfb918e66
2804faad30260193a7835bee4a9f51f63ee702c6b806b187986eef7bbf777eefa1ff007fde929ccab3
8d192ee90dc2ce7b4566c767dad6ba91bc3ecdafc975bbdef6ff00c1d4ff004d3f566f48398c767e53
ea7d75873690e22b8dcef7d8c6b4b2cf53e86cb7fb0b52ff00e66cfea9fc8ab5f9768b9d5370ecb36c
c5876ec30df53da7739df4bd9f43e9a4a71ad1f5699b69193716d93ee163de19b5db858eb2edfe97
a4f6edf57fe0fd253c377d5fb32596e2e55b75d70fd0eeb1ce6d858d7584169ff47b5cff00d2fe7ffc62
d7c4ca390e2c7e25b8d0ddc7d50cee48dbfa27d9f4b6ef562d63056f2000769d63c9253fffd1f4ebf33
171ec6577dadadf6cfa6d7182e82d6bb6ff0057d466e4039bd3b21f5b6ac9afd6873aa735c091b61b
6ffd57e92b77fe8b566fc5c6c81b722a65a04801ed0ed0fd2fa5fbc80ce91d2ebb5d73312a6d8e997
060fce058ff00fb718efd27fa4494c06682c2e6e6e33c319bddb1a5ded03d4dfb5b90e76dd9ef44a9d
5db7b7d4c8aeeb192eaeb643623d8e7ecdf6bdce6fd04e3a674e05c5b8b4b4bc39ae218d121c36b
c3a07e7b7e929b30712bb85f5d4d65ad6b981ed1076b8b1ce6ff00e04c4949d2492494a49249252
92492494c2ffe66cfea9fc8a6a2f6b5ed2c7096b8104791406d9754e143dbeb9825af6b9a1c5a206e
b18f733ddafd2aff00f02fe6d2536542efe69ffd53f9140df6080687eba0d59aff00e08a0e75d79753b3
d2640f50b8b4b8b4fee3185ff4be8ef7a4a7ffd2f55497caa924a7eaa497caa924a7eaa497caa924a7
eaa497caa924a7eaa497caa924a7eaa5cdfd68fe954f3fcd8e3e8ff395ff0048ff0082fdcfedaf9e5249
4fbcdffd12cfa5fcf59f4ff9ff00a55fd3ff00beff00c17acb4feabf393fce7e6ff3bcff003991fcdffc07fa35f3
9a4929ffd9003842494d04060000000000070005000000010100ffee000e41646f62650064400000
0001ffdb008400040303030303040303040604030406070504040507080606070606080a080909
0909080a0a0c0c0c0c0c0a0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c010405050807080f0
a0a0f140e0e0e14140e0e0e0e14110c0c0c0c0c11110c0c0c0c0c0c110c0c0c0c0c0c0c0c0c0c0c0
c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0cffc0001108009c015e03011100021101031101ffdd000400

639

2cffc401a20000000701010101010000000000000000040503020601000708090a0b01000202030
10101010100000000000000010002030405060708090a0b100002010303020402060703040206
0273010203110400052112314151061361227181143291a10715b14223c152d1e1331662f02472
82f12543345392a2b26373c235442793a3b33617546474c3d2e2082683090a181984944546a4b4
56d355281af2e3f3c4d4e4f465758595a5b5c5d5e5f566768696a6b6c6d6e6f637475767778797a7
b7c7d7e7f738485868788898a8b8c8d8e8f82939495969798999a9b9c9d9e9f92a3a4a5a6a7a8a9
aaabacadaeafa110002020102030505040506040803036d0100021103042112314105511361220
671819132a1b1f014c1d1e1234215526272f1332434438216925325a263b2c20773d235e2448317
549308090a18192636451a2764745537f2a3b3c32829d3e3f38494a4b4c4d4e4f465758595a5b5c
5d5e5f5465666768696a6b6c6d6e6f6475767778797a7b7c7d7e7f738485868788898a8b8c8d8e8f
839495969798999a9b9c9d9e9f92a3a4a5a6a7a8a9aaabacadaeafaffda000c03010002110311003
f00f7f62aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb1
5762aec55d8abb15762aec55d8abb15762aec55d8abb15762aec552cd735cb5d06d1679d24b8b9
9dc416363000d717370c0958a25240268092490a8a19dd95159b154a22d0b5dd70add799f5096c
e22dce3d134a99a0851412544d72812695a87e3e2d1c5fe437da2aa94ff957f97376e65bef2c69f7b
331ab4d7902dd48c7c4bcdcd8fd271553ff009547f95d42bfe0ed1f8b0e257ea30508f0a70f6c55a1f
941f954a388f256894f0fd1f6dff3462ad8fca2fcab1d3c95a20af869d6c3fe65e2ad7fcaa0fca93507c9
1a151ba8fd1b6bbf6ff7de2aad6ff95df97b6328b8d2fcb965a5dc81413e991fe8f907c9edbd33f8e2a
dc96be64f2aa2cfa74d3f987438aa6e34fba6f57538e303adbce69eb11d4c737ef1bf665ad11954e7f
c47a2fe81ff00137d713f427a3f59fad6f4f4ff00d5a72e55f878539f2f829cb6c55fffd0f7f62aec55d8ab
b15762aec55d8abb15762aec55d8abb15762aec55d8abb15762a936a1e6df2ce93a9c7a36a7ab5
ad9ea93224b1dacf2ac6e63964f451a8d4d9a4f814f77f87ed62a99b5ddb2ddc762d201772c6f3471
6f531c6caacdf41751f4e2ab2fefecf4bb39b50d4261059c0394d33568ab5a54d2be38aa26a0f4c55d
8aa0f53d534ed16ca4d4b56b98ecec212825b898f14532388d6a7dd9828f738aa331542ea3a8d8e
916175aaea77096ba75944f71777329e31c7144a59dd8f6000a9c55108eb222c88792300ca47707
718aaec55c481d76c55d8abb15762aec55d8abb15623e5b68fcc9ad6a3e6c93f796b6934da46861
d4d123b490c57532549de59959390fb51451f8e2acbb15762aec55d8abb15762aec55d8ab0e4b28
749f37be9922ac9a1f9854ea705b4854a43ab58cb1c8e635a57f7a0acfd76962793ed39c55fffd1f7f
62aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb15762af1cf39f954f9c7f360
e897925d5ae8177e5a48b519e1b5731cde8ea6b71f57174ca638d885a9153270278f13f162ac42d
e6f3ed8e91a6cf6d7de65d42f351b7d467d6619feb2658a0875bb289bd00f10f4e5164b706051f1baf
268c166ae2abf563e7a54d7ef22d53cc69069da3dc5d796a3b75bb1eb09356ba483d54f48b4b30b
73100adfbdf4bd3775e5f162a8fd134ef39595cdb259b6a30db6a7e6af31e95abc13cf730491da5fea
126a16b7f6dea9e2c12de1f4c14e5f04f41428d45533f3cdd7e70c7aa7a512244efa74e7cb6fa31b8
92d5b5b5be84c097bc95688d6e1b97a9fb8e3eb7c5cf8515625aad9f9aa7d1ae60bbb9f336ab69ac
7d79ed9596f662b7f63acc62288c6b1a98e16b34e49ea288a55f51ead271c555221f98fab6a1a0adf
6ade62b6b8bfd7dadbcc5656d6d77a7dada34165a93041715979c124df54acb171b6e3e953e3671
8aa59a85c7e616a5e4dbdb2d557cc5a8699ade93ab43796ada7de5bdd5b798ff47a4505a0559259
9e07904cc641fe86d294e078353157a7f9c1fcdf2f9b3ca7636536a361e5e92d6294369b6934cf2df4
73c466b6b9712471dbab5bd68f700a7f7bc3f7cb1d55631776df99f0c3a1e9babdfeaba7c3f58bad2
7f4958413ea73cafa5bc51d8dccde9c8be99bd02691a5947a1ba7affb345528d3adbced35c4675a1
e60bcb4fd356d7f3c7742f6558a3b3f35dd47098801b20b230b32a7da8b84ad503962afa6315762a
ec55d8abb15762ac7bc8888be4ed14a2f00f691cacbb7db94736269dc9249c5590e2aec55d8abb1
5762aec55d8abb1563fe608a36d67ca92b206923d4e608fdd436997b5a7ce98abfffd2f7f62aec55d
8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abc7fcd3e76d5fc99f9
8974cbe8cfa0ea3fa1eca74bb9e64104d7106a8e264fb491a0fab27ab4525977fb4bf12a90379ef50
b8d62d3cdd3e87a74dade956f776935fc9f584905a2dee9a9225b465d950c8b7b50eff00bcfdd8e48
048d1a2a97dd79c754f3179c2c7cc10de4d6fa65ec3e5ab9b4d3eda69938c4fe61b9b59126412156
91e35e32d1403f6194f00715655a07e67f9ebcc5a9797ed2df4dd26decfcc0eb776974f726e1ce9a6
d52e9bf756f231593edc68d232f3fb7e9af164c55779bbf38754d1750d4e2d2ad2d64b5d32e753d3e
48aebd41399f4ad186ae64f858008fc846071e9fbce5bf1c55111fe68f98af7cc57be5ed36cac24974
ed4a582ea69264857f47a5cc36fea0124ca79c7ead5820939b708f8c6650c154b62fce3f33dec50d8
e9da758dc6bf7b6b657565117f4adf9cfa5b6a13452bcd347c774211abc963e4fe9bfa66aabda6090
4d04530a524457d8861f10aec46c7e78aaa62aec55d8abb15762aec55d8ab19f2b5d2d8790f4dbd
9519d6d74e499e38e85888a3e442d481534dba62a8dd0bcd1a3f9834ed2f50b4b8589f56b08356b
6b299e35ba16b728b22b34619a94e5424556bfb58aa2079834136f6f76355b336b76e22b59feb11
7a72c85c46151b9518963c683f6be1c5531c55d8abb15762aec55d8aa45af9a6abe5614ebaa4a3fe
e597c7157fffd3f78eadabe9ba169f36a9abdca5a585b8e52cf21a01e000152589d9540e4c7618aa4
92f993cc373189b43f2c4f710313c65d42e22d3b92f6608c249457c248d0e2aa1fa77f307fea50b6aff
00db5d3fec9b1568ebbf985dbc9f6c7fedf09ff64d8abbf4efe61ffd49f6b4effee613fec9b15563e6dd4f
4db7375e67f2fdce9f6a9c8cd7567226a50c48a3916904216503c488580ef8ab24b4bbb5bfb68af2c
a64b8b49d43c33c4c1e3753d0ab29208c555b15762aec55d8abb15762aec55d8abb15762a93eafe
6bf2ce8151ad6af6962e2958e79d124f8ba5109e46bf2c55201f9bff009724f11ae213d3682e69f41f4
b154aeffceff931a8dd35cea7358dd5db344ef34f652c8c5a00eb192cd09dd04ae17f943bff0031c550
16de62fc82b7431da41a64319531148f4d9114a831920810014ac319ff009e69fca315544f347e444

37af7d1c5a6c7a84f32dcc974ba6c8b2b4eb299d5cb882b512d6406bfde7c7f6b7c55bd33ce3f915a
44cb73a38d3ec678a69ae924b5d36585d67ba149641c2007938d98f7e98aa57af6a9f945aef9b74a
f35b6a56715d69c6e575443a5cb2c9a8437368f65e94f298c128a921d887af4fb38aa6707993f21ed
65b1bab6b6d362b8d3e46b8d3e68f4a9164825942abc91b0b7aab3055e4c373c56bf671551ff117f
ce3fbc4f6c6cb4c30c934775246747938b4f0f231c86b6dbb2f36e27f679353ae2ac8cfe707e5d2815
d60d0f4a5a5e1fd50e2a9de93e75f296b8c23d2b5ab4b898b04f404aab3723d17d37a357da98aa7d
8abb15762aec55d8abb1562be5e825bafcbdb3b6b701a69f4cf4e2563c4177888504ef4dce2af215f
c92f3a5df93879626b9b4b2d50da5bb5beb69233c96d247e5e5d1e4b3f81119e16957d4a8207a4e
df0fa98abb5efcbc9b50f341d26f349b017be69d3f5b96dec7d48cc5a4738f47b6fac5bb7a5f6c49135
c0e0aadcdab5e5c9b157d0d1af08d50b162a00e4db9341d4fbe2abb15762aec55d8abb1548b5e15
d57cae7c35394ff00dcb2f7157fffd4f68e8f6a3cc9acdc799efc192cec6796cb40b5700c718b7668a6
bb02a6b248e1d51ff66155e34f524e4ab29b8b882d217b9ba9520b78816926958222a8ea599a800
c558b3f9f6d669225d1346d5b5cb7997925ed8da84b520d69c66ba92046069d50b2fbe2aabfe2dd5
680ff0083b5aaf8574dff00b2dc55dfe2cd5bb793b5a3f4e9bff65d8ab7fe2bd5bfea4fd67fe0b4dffb2d
c558ae9de68b4d07ccd1b9d26ffcbda0eb92b45a85bea76ff56b6b7d40ab3c7731cb19920027e263
947a8b597d27a72790b2af51041151b83d0e2aec55d8abb15762aec55d8abb15762ac385c6a5e7
69e54d3eea5d33ca56f2989efadfe0bad49a33471049feebb7afc3eaa7ef25ff00753c6839c8aa7fa4f
97f44d0a368f48d3e0b3e66b2bc5181248c053948ff0069dbc59896c5532c55d8abb15762aec55d8
abb15762aec5509a8695a66af01b5d56ce0bdb7241f4ae634956aa6a0d1c1dc1dc1c558cdc417fe4
78defeca5b8d47ca8854dde9b297b9b9b2886cd2db39e52491afda785cbb71a985be1f499565b04f
0dd4115cdb48b35bcc8b2432a10c8e8e2aaca46c4106a31554c55d8abb15762a90f92bfe512d1a9
d3ea917fc47154fb156a82b52371d0e2ade2aec55d8abb15762aec5522d789fd2be57a77d4e5affd
c32f7157ffd5f697e5945341e43d0edae6a2f2dadfeaf7609a91710bb472d4f8f356ae2aa56b663ce3
abcfaa6aa8b379734bb868345b0704c735cdbb1496ee553b3f19014b71baaf1f5bed32705598e2a9
01f3b7958dd4b6706a29777507f7d1d924978509ecdf5757a1f638aaeff17e875a56eebff3017bff005
471577f8bf44f1bbffa40bdff00aa38aa9cbe6bf2f5c44f04eb732c322949237d3af59595b620830508
3e18ab1bf2e799b42d27cd11f93f4ed4a1934bd45647d2f4e90bc577657312fab25b8865557f41e30
d245da2e0f18f83d35555e8b8abb15762ac6eff00f303c95a5ead3683a86b9696facdba34b3d8bc83
d644480dc92546e3f74ad201d4a2b30fb271575bf9f3cad79ae5af976c6fd6eb53bb372a8902b3a23
594504d2ac8e0514f0b98996bf695c71c559262aec558d79e25be7d261d1f4da2de6bb731697eaf2
2862b79aad732a9041e69024ad1d3fdd9c7156416b6d059db43676b188ad6dd1628225d95238c0
5551ec00a62aab8abb15762aec55d8abb15762aec55d8abb15762aec5589f945ff46ea7aef943d26
8edb4a963bcd3090a10d8ea41e4544e34f86299268c0fd9454c5530f36f98e3f2ae8afab3c06e5fd6
b7b5820e6b0ab4f77324118795fe18d7938e4edb0c55e7d7bf9dd3bf97e6d6f43f2b5edc7a7a53ea2
cb7244696d73f53faf4705d3462458d5a2e27d4e5f6de38e957d957ac5b3cd25bc525c46229dd15a
58837308e4025436d5a1dab8aaae2a90f927fe512d1bfe6122ff88e2a93fe6679b35ef2a6936d3797
aca3bcd4af1ee21b7132bca9ebc5673dc431fa5111237ad244b0f25feef9f36c55e75af7e6d79ecc72
fd46dec74bb6835bd37429aea531cd32dc9d66c6c6e9443eb9728f1cf2306748fd31e9d1a4f515c2a
94ea7acea5f97ba9dbc17d25deabe59d5359d4fcc1a03bc923b4175a7a5f4b79a5f315a42cb1acf6c
ae388fdf27c5e9c78ab31b5fccaf3809fcb27538b4a86c75ed4fea12346febcc96d34304f6f70441712
22ab33b5b105dbf7935ac9b7331e2ac7adf5cf346b3a8db6a522daea5a9dc797fcd715c729df4f8d2
2b1d592de1212349833a27c1c8853d7e2dce2aa1a67e6e6ade5cf2ae97a669a2c2fe4b1f2bc3740c
af349225edbe9b617452e5b9292f20b9662a9cbe0f4e46939394c5531bbfcc3d67cc26e7cbfa8cb65
657be5fd7b4a8af6787d5845e463cc8b640c0ad29283845fbc0cd282cfc3ece2aa5a2fe62f98f47d0d
f4cd221b49ff42d8dcde5dc9a94c0337a875092129fbe123a87b78e3e2b1b72fde7c6a63c55986bba
bf9a0f93bcb3e623269ffe231249a9a9f466fa8f1fd177b37a7c3d5f53fbaf83973fb7f1f1e3fbbc55ffd6f
65dcdd1f235fea17b79c63f27ea2ed78d79d174fbe93fbd330a7c304cdfbcf549a47297f538a3ab2aa
8dfcbb366de44f2e3d8372b5934eb6911c1af22f186635ef5624e2a85f49fcf3797d0dd7a91f93eca5
7b2fab0e511d4ae222527321a026d90feed554d2571273e51f1e4ab2bb7b6b7b3823b5b48920b68
542450c4a11115450055500003c062a85d475cd13485e7ab6a56b609fcd753c700fbdd878e2a967
fcac0f21ffd4d3a47fd27db7fd54c55dff2b03c87ff00534691ff0049f6dff55315406ade66fcaed76d459
eadaf68b7702bacb187bfb6e51cb19aa491b090323a9dd5d4861d8e2abfcb5ab4d06a0740b8bf5d5
ac2689aeb42d6164599a6b78ca892199d47132c45d78bd6b2c67937c68e4aacbb15762af1fd57c9
3a9f9bbcfbe66b5ba22d3cbc8d617715c3412fab2dd2e9d3db2fa5237ee9914cb5902fc60af03f6f65
55bc97f959e67f2e7982cfcc5a9eb1617573f58bb9b50b7b6b59a28fd3bbd3f4fb30b09799c8656d3
d1b937ecbb2f1ef8abd6b15762ac4fccdbf9b3c94a4ec2f6f5a9ee34eb81fa89c559662aec55d8abb1
5762aec55d8abb15762aec55d8abb15762ac7232479f2e141d9b4880b0edf0dccd4ff00891c550df9
8be5dd53cd5e5b3a2699e932cf736ef7d14d3496a64b58a4123ac72c692f17aaa91ca374600a32fc
5c9554a2cbf2a34b9eda77f30ddde5e6a1a9589b0d6152ee45b79c08de18e564511ab4d1c2fe92cf
c15982ab32f255e2ab3eb6845b5bc36e24794428b189656e72371007266eec69b9c555715487c9
5ff28968dff30917fc47154aff0030bf2f34dfcc4b3b0b0d59a17b2b1b86b96b4bbb4b7bfb6959a2688
168ae1480e9cc98dc7d93fcc315472f903c95c2ed66d02c2e64d420b5b4d4e79eda2965bb86c428
816e1d94993d3e2bc79d78d36c5533b2d0343d3ada3b3b0d3adadad2299eea2822891634b894b1

641

791540a0762cc4b0dcf26f1c552fb6f217922cec574cb4f2ee9b069a8a512d22b485210ad3adc9011
5401595165ff8c8aaff006862abd7c91e4e8eee7bf8f40d3d2f6e52e62b8b85b58964923be6e772ac
c16a44cdf14a3fdd8dbb5715437fcab8fcbed8ff0085749a8856d41fa8dbd45ba466258ebc3ec043c0
2f4e1f0f4c5555fc83e4796586797cb7a5c935b4d35d5bc8f67033477172eb24b2a9284877755776
1bb300c77c55bff017922918ff000de987d1b7b8b2849b38094b5bd61610000026060f002220574d
464301000000000001000000000000000900000000200000acd30000ac1301002d710a9e1511ca
5899107c2f53cbae2aa5aee99a686f2ce8df548bf449bc92d3ea3c17d0fabfe8bbd4f4f8538f0e3f0f1
a538e2aff00ffd7f7e539a52451f10a321dc6fd47be2ac22daf1bc913dde8376ab068b74d34fe59bcd
9615925ac8d62f450a8cae49b71d248cfa6bf14742aa7be4db586cfca5a1dbc038c4b636e7b9259a
3566624d49249249c552d69f50f37ea575676571258795f4c9cdb5ddd5b968ee6fae62fef628a4143
1c3137c323a7c7248af1ab22a3735537b2f2b796f4e884567a55ac482a4910a1662c6ac59882cc49
dc926b8aa24e93a38153636c07898631fc3156bf45e8bff2c56bff0022a3fe98abbf4668bff2c76bff00
22a3fe98aa53a9f92bca9a8cd0df0b38ac756b5e66cf55b0e36b790190716292c601a30d995b9238
d9d5862abf40d57515bc9bcb7e60647d6ed2259e1bd88048efad09e1ebaa7ec3ab0e33463e14665
2a78c8b8aaa5fff008d3eb72fe8bfd17f50a8f47eb3f58f5a9415e5c3e1eb5e98aa1bfe421ffda97fe9e
b1577fc844f1d17eebbc55f3eff00ce612fe729fcb0d35bcae19b5d4d76c9ad0f9585f9d48308a7dd7d
2ab71fe6fa31561bf92b61ff0039f919b4935cbcd3e3d05bf78d179d0a4d7053f94fd4c1ba04f61232d
3157d43a91d586bdf97e35c36e7563757a2f3ea5cc5bfa9fa36e09f4fd4f8b8ff00ad8ab3ac55d8abb
15762aec55d8abb15762aec55d8abb15762aec558da7fca7f38ff00b53c3ff5152e2aab2279d8c92fa
33e9422e6de80786e0b7a75f87952502b4eb4c55c63f3b6f4bad2bdbfd1ee3feabe2af80fcf3e5fff00
9cbbbdff009c83f3b37e543eb96d60f7d1bb5ddbc9258e84e56de2155faebfa0fd370399c55f5b7e4c
e9ff00f392d67121fce7d5bcbb7d6ae80fa7a7c128d451c767922115bfcf8a37fad8abd1fc95ff002896
8dff0030917fc471542f9d7cf1a7f922ce1babbb3bbd4259fd568ecb4f8fd6b978edd3d495912a3915
5e883e27621547238aa4a7f36b4e136b369fa26f56fb46bc4d324b697d18de6bb995a689632d2014
7b702e0331148d9797ef3e0c55ab7fcddd22f2c64d5ecf4ad465d1a1920b5b8bc68921f46f6796da2
6b696295d244923374bceab4f82555f893e255049f9d16465ba69746b986d208d6381de583d59b5
06d42f34f36ca8ae7f6aca470f5e3c3c315607e73fce6f3269f69e73b9d2a6bfb478adbcb577e5f8e5d
25a44b15d5d93d75bb9044c88c4311c6661c3f67157a26adf9c1a5e8daa4ba136937f75abade5be
9f6b6d11b60f34976f75144e4bca823566b473f1d0f078e4e3c5b6558df9a3f36f51d422d1aefc99eb
da69b7b6d7f25cdecd15bb813af97e5d5ede2e0e5983c75859a8381f8a327154f87e72e990ccd623
4bbfd4a7805b5b4975671c66ddefe7b8b6b46839c8f1aa3092e93ed1019564e3fdde2acab5db8b9f
57cb375f547fadfd72497ea3ce3f53d4fd177ade972e5c3957e1af2e1fe553157fffd0f7f62aa17b6567
a8dacb63a85bc775653a949ede645923743d432b0208c5581e9fa83f91b42d5bcab300b26856573
75e59dd88b8d3208d9e18d4b124c96f4f4a451fb22393a49b2aca3c9da7dae95e55d1ac2cd152de
2b386817a333a067627b9662598f726b8aa5d737fabf99afef348d06e1b4cd22c1cdb6a3ada2a35c
3dc01f1c166b2065063a8f526756556fdda233abb46aaf87f2ebc9a8565bbd2e3d4af02856bdd4cb5
fdc3d29bb49705c92695c555c7907c901830f2e69bc86c0fd521ff9a71568fe5ff915851bcb7a61affc
ba43dffd8e2abffc09e4ae3c7fc3da6f1f0faa434ff88e2a96cff971a35adc5aea3e56924f2eea960666
b536649b26fac2859126b427d3746e2a4f1e0f555e3229c5536f2feb971a8b5d69bab40b67e60d34
a2dfdbc6c5e17594131cf0b100b45250f1a8e4acaf1b6e98aa798abb15762aec5588f9a149f36f91df
b0bfbd07e9d32e7fa62acbb15762aec55d8abb15762aec55d8abb15762aec55d8abb156391a93e7
db860365d22004ffad73353f51c5591e2aec55d8abb15487c95ff0028968dff0030917fc471553f34f9
374df363e9935ddcde58de693706e6d2f34db86b59c0910c52c4cebb98e446e2e3af465657556c55
20d4bf27bcb7a8cd73782fb53b2d4ae8c52c9a858dc8b7b9facdb5c3cf04fcd52a648c4af0296e4bf5
66f459597156dff27fcb046b91c577a9c16dafa446f2da2bd710a5e42d1b7d7a256078dcb3431b3ca
797364a95f89f92a877fc93f2b1b44b5b7d4357b568c168aea1bd6170b73f5e97505b91232b1f5925
9e60adf67d395e3656538aaaea1f939e5ad4ecfcc161757da9b5bf9963d361d447d6559a9a410d0b
23bc6cc1988acac4b17c5543fe548f957f4c2eb6750d59aee3bd1a8c48f79ce24996e27ba50aac86
8a24b999a9fe5d3a71a2aa49f913e508c5ba457dab470db5a8b48e04bd658b90d38e94672817899
9ad488d9a9c4f156e3cfe2c551a3f27bcb892dc491ea1aac69713d95efd5d6eff00d1e3bcb0921945
c4709428b24ad0219cf1f8fe2d979bf255936bbff1d4f2cffdb4a4ff00ba6dee2aff00ffd1f7f62aec552d
d7341d2bcc7a7c9a6eaf6e27b67ad082d1cb1b104738e442191c5766521b15625a76b5a8797fc95
ade9970eb3f997c9f6332299071173141033d9dc71e47e1955407dffbd5957f6715651e56d2ce8be
5cd2f4c760f3dbdb462e65002fa970cbca69081dde42ce7ddb154bef75ad5356d46e343f2a98a36b
221354d66e14cb05bcac2a218a3057d5980219816548815e7c98fa78ab507922dbd4967d4f58d63
53b894f26796fe6b68d7d921b33044a07b257c49c555ff00c17a2eff00bcd437ff00b5a6a1ff006518a
aeff06e8bfcf7ff00f713d43feca31577f83745fe7bff00fb89ea1ff55f15491fc87a8695ac47e64f2deb77
936a10452db8d33589deeece586628c6332b2b5c25191591f9cab1fc5fba6e471564da0eb716b76
8f2fa2f697d6d235b6a16129065b7b84009462bb10410c8c36746571d7154d315762aec558d79dd
2f62d2a0d6b4e5125d6877516a4d09058c96d1724ba45a54f3303cbc36fb7c71564304f0dd4115cd
bc8b2dbcc8b2452a1aab238aab03dc1071554c55d8abb15762aec55d8abb15762aec55d8abb157
62ac4bca5cb54d5f5ff367aaf2595fcb169fa529a70fa9e9bcd0c88413512cd24cc1bf693d338ab2dc
55d8abb15762a90f92bfe512d1bfe6122ff88e2a9f62a84bad534fb2bbb1b1bbb848aef5291e1b089
8fc5349144d332afb84466f90c556e9fabe9baac97d169f72971269b70d657ca95ac572889218dab
dc2c8a7fd962a8dc55d8abb15762aec5524d73fe3a7e5affb6949ff0074dbdc55ffd2f7f62aec55d8ab

1cf37f9334cf37d84d6f7124b637ef6d71670ea968556e6286ed384a9f1ab2b230fb48eacbd1bedaa
b0552cd2fccb2d87e5fdedf5fb83ad7966d26b5d584800ff4dd3e1dd8807ecca02ca9bef1c8b8ab21f
2d692343d0ac74c2feacf0c40dd4f4a196e642649a5237de49199cffad8aa6b8abb15762aec55d8ab
16bfb63a779e34ad4ed5115759826d37533521a46b546b9b56a034aa013ad695a49ed8ab29c55d
8abb15762ac3238ef7c86ee90c12df79258bc8a96e865b9d2cb1e4556241ca4b6ea54206961fb3c5
e2fee9564ba5eb5a46b7035ce8f7d05f408dc247b7916408f4af16e24f161dd4ef8aa3b15762aec55
d8abb15762aec55d8abb1542ea1a9e9da45ab5eeab790d8d9a101ae2e644863058d002ce40dce2
ac5eeaf2fbceeb2699a389ecbcad2868eff005b21ede6b84e8d1590215c06150d73b003fb8e6c7d48
d56596b6b6f636b0d95a46b0da5b46b0c10a0a2a47180aaa07800298aab62aec55d8abb15487c9
5ff28968dff30917fc4715792b5bf9eaf75598ea375e63844fafa5a6a3676d1cb058c7a7c77572566b
79e163232496ed17368f8a2d073e33e2a86f240f3d6abaf7922e7ce3a76b0756d3ee5279aeae2299
6c92c66f2ec909693a46b3fd6d9d25e43d5e6dfefb2b8aaa5ed9f9ee0d7fcf074cb5d46dec2faef549f
449ed9258cbeb42c74b8ec247a01ca02d15c2726ff47aab7a9d531540ea371f9a56a2c2e3cc3737f
651fd696dbce1258b4e90c93cde61b28ac7f47f1abf17b17995c41fb24097f7f8abd93f2fa0d66dbca9
6906bb25c4b78935dfa2f7c4b5dfd48ddca6d04c5aac5c5bfa618b7c75fb7f1f2c5593e2aec55d8aa4
9ae7fc74fcb5ff006d293fee9d7b8abfffd3f7f62aec55d8abb1561de77f24cbe61d3f549342bb5d335f
bfb292c659a48ccd69731b232aa5cc2193905e4783ab2c91f66e3c91954efcb3ab0d7342b2d4993d
2b8923e1776e7730dd444c73c46a06e922b27d18aa6d8abb15762aec55d8ab17bdb83a979db4cd
36d5d5a3d1209b50d485189492ed1aded53974ab2faec475a2a9fda18ab28c55d8abb15762aec55
24d47c9fe58d56e24bcbdd2e06be98012de46be8dcb8028394b171734edf16d8aa59ff2acfc9fff002
cf79ff713d47feca31577fcab3f27ff00cb3de7fdc4f51ffb28c55dff002acfc9ff00f2cf79ff00713d47feca
31577fcab3f27ffcb3de7fdc4f51ff00b28c55dff2acfc9fff002cf79ff713d47feca31577fcab3f27ff00cb3
de7fdc4f51ffb28c55dff002acfc9ff00f2cf79ff00713d47feca31577fcab3f27ffcb3de7fdc4f51ff00b28c
55dff2acfc9fff002cf79ff713d47feca31546d9f917ca365243347a4c135c5b307b7b8bb0d79346e3a3
2c9706460c3c41ae2ac8715762aec55d8abb15762a90f92bfe512d1bfe6122ff0088e2a9f62aec55d
8aa0356d1b4cd76da3b3d5adc5cdb45343751c6c59409eda412c4ff000906a8ea187b8c551f8abb1
5762aec5522d7c13aaf95a9db5496bff70cbec55fffd4f7f62aec55d8abb15762ac6af745d4b4cd467d
73cafe9196efe2d4f48b86315bdd48a282647556f4a6a00acdc59645fb6b55575550d2f9f05a48f06a
3e5bd76de74343e9583df46db56ab25999948f9953ed8aacff00958da7d2bfa0bcc3ff00705bff00faa
58abbfe56369fff00562f30ff00dc16fbfea962aeff00958da7ff00d58bcc3ff705beff00aa58aaac7e61f3
1ebb094d03449f4c0e4a7e91d750408807edadaa399a4f657f43fd7c5538d07438341b26b7495eea
ee773717f7f353d6b9b9700348f4a01b001547c2881517e1518aa698abb15762aec55d8abb15762
aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb1548bc97ff00289e8dff00309
17fc47154f715762aec55d8abb15762aec55d8aa49ae9a6a9e591fcda9483fee5b7a7f862afffd5f7f6
2aa325dda43710da4b3c71dd5cf2fabc0ceab249e98e4dc149ab711b9a74c55a86f6cee659e0b7b8
8a69ed5825d451bab3c4eca182b80495241ad0f6c5561d4f4d115dce6f201058165be97d44e1034
6a1d84a6b442aa431e5d177c5575ddf59585abdf5f5cc56d6518064b999d63894310012ec401524
01be2a88c55d8abb155aee91a34923048d01676634000dc924f618aa0b4dd6f46d62da4bdd2750b
6beb3898c72cf6d2a4d1a3a80c55990900804120e2a8c86686e618ee2de4596de6559229632191
d18555948d8820d41c557e2aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb
15762aec55d8abb15762aec55d8aa43e4aff944f46ff9858bfe238aa7d8abb15762aec55d8abb1576
2aec5524d705753f2d1fe5d4a43ff72ebd18abffd6f7f62af20fcef8af7eb1e5ad57410d2f9afcb8f77e6
0d22d2356696e858247f5ab55a6d5b8b579a1507f69c7862af3c975fd77c9d2799e4d0a69adf54be
d66fa6d6cd95934fcf52bbf2aa4f6db18a5248bd8444841e3c93d26fe5c55575ad73cc1a5ea9e64d6
34dbcbdb40bfe249d92184bdb49aa2f97f4a92d7d689e27566e693840cb4e4ae9f6b6c5509e7cf33
7993cc1a079c2d1b57b8d4f4b865bcb7bdd305b4462b6b68a4d3a5b37468a159399792403933f35
2df0feeaaaabd4bc9de65f37eadfe2dbb9ef0dcea56097915b7978d84908b6bb82e2e3eaf4b872165
1343e895552c197f7bcbe3c5523d035cfcc6d561d0356d3f57b8d5f48d62e65d3b5345d3fea32e9cf
3db412aca45ca166f42586e2390d38a99c45c1da2ae2ac797cf1f98b73e5bb7bed4b5fbbb0d52f26b
d4d52cadb4bf41b4dbab1d1af6792d55e78e6f53fd2a184828bd0aa2bbfad8ab206d4751d4bf297f3
3e4d42faf9b539adaf278d1c3878c5ee950cb1476e0a7d876621517952bc7ed62aa30799b569bccb
0e816be64bbb1d262bfbc591e0b6b60cf6d6da2595da0791ed5811eb99817fb4ff147c895f85549ad
3f303cf0f6963a9c3adce2e1ecac2392de7b35fa9c72dc796aeaf679648e2b70f54bb863240fb07f73
c3e3e18abd37f263cc979e6af2a4babdf6a9fa46596e89489ca34f6686189bd098a4715583167151f
61d77ec157a2e2aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb15762aec5
5d8abb15762aec558bfe5eddb5c79620b5954a5de9735ce977519142b258cef057e4caaaea7bab0
38ab28c55d8abb15762aec55d8abb15762ac7b5eb823cc1e55b18e36791ef2e6e6423a2430d85c4
6cc7db9cd1aff00b2c55fffd7f7f62aec55d8abb154af46f2fe9ba0b6a2da72c8a755bc9752bcf524794
1b99c2872bcc9e20851f0afc23c3154d315762aec55d8abb1542ea5a759eafa7dd695a8c427b0bd8
9edee6124af28a552ac2aa411507a835c554748d1acb44b5faad9199c13ca49eea79aeee2460000
5e69dde46a0000e4db0c5530c55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb1
5762aec55d8abb15762aec55d8ab0fd4673e4fd7e5d6a556ff000c6b4635d5651529657a8044972e
2bb452a048e560291b46923fc2d23aaacbc104020d41dc118ab78abb15762aec55d8abb1550bdb

643

db4d3ad65bebf9d2dace052f34f2b044451dc93b0c5587da4da82b5ffe615f594f3068638349d2550
8bab7d2fd4569a429d4cb2d3d668a9cf8c7143fde72c55fffd0f7f62aec55d8abb15762aec55d8abb1
5762aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb1576
2aec55d8abb15762aec55a744911a391432302acac2a083b1041c558baf96754d0c38f285fc76d64
599d745be8ccf6484a81c6064649205a8af10648d7f6235c555e0bff3a2c605e68762d3f4636da8bb
464f88f52d508c555ff48799ff00eacb074ff96eefff002231558351f3552a742b7076dbebff007ffba315
5df5ff0034f6d16dfe9bf3ff0064f8ab85ff009a48df45b607c3ebe7fec9f1543cf79e7a95912cf4ad36dd
491ea4f737d34bc45772b1c76cbc8fb19131575a795e79afa3d57ccda836af7901e56b6cb1fd5f4fb7
6049578edf93d6400d3d491e461fb1c3156498abffd1f7f62aec55d8abb15762aec55d8abb15762ae
c55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55
d8abb15762aec55d8ab14fcc2f38c7e46d062d6a730c36b25eda595cdfde33259d9c7773088dc5c3
2fd98d091524aad48e4cabbe2aa107e6268ba759db47e71bcb3d275d36925e5edac52b5cdb46b0
44f3b959c20520c51b4c8a78c8d12b384a2b62a88b3fcc7f25dfa4925b6a80ac4d1ac9ea433c457d
6824b98c91246a78b450c8eadf64f1eb8aafd33f30fc9dacea16da569ba9acfa9dd090c7662299665f
45e58dfd55640622af0ba91270f8871eacb5552387f36f409bcc367a7b3fd5f47bdfae5a417b7115c4
521d4ac7518f4d688ab47c446f24815252c14b7c3dc62a99dbfe69f90ae840d06b2863b8b91630ca
d14e9199d9c44a39b46142b487d357278193f761b9fc38aa5de67fcdaf2e693e52d4bcc3a2dcc7a9
5dda5b4b716d65c66532fa50c77156e31b32c6639a271215e1c6443cbe2c55e823a62aec55fffd2f7
f62aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb15762
aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8ab10fcc4fd21fa1a0faa7d47ea1e
b9fd39fa6387e8bfd19f579bd7fad73dbd3e9fecb8d7e1e58abe5bf2cfd57f406b3fa0bd0fd0dfe0d4f5
bf4afd5ff4a7d7bf43dd7a5fa379fef3ea9f55e3ce9bf0e1e9fc1eb62af58f3e7e89fac6b1eafadfa53fc1
03eb5f55f4bd1fad7a87ea75e7bfa9fdff00daf83eafea7a9f062a9b7e53fe99ff00155d7e93fd11eb7e
8483f497e81e1f50faefe90bbafd5bd3fd8a72f53d4fdefa9f6b1579deb3fa5fd39fd3f4bf457d76ff00f4
6f3e5f58ff0094e6cb97abc76fef2bc69fb1fe562ade8ff5dfd25e54fa8fd53eb9fa36f7f4c7d73eadcfd2f
d3971f52fd19f59dbeb7eb7a9f6be1e1c7fdd9e9e2ac2bfe775fa879aff00b8fd2dfa22effc51d387d4bf
44695eb71e5bfd6bd4f47afc1cbd7e5f07a58abeda879fa49ead3d4e239d3a72a6f4c557e2afffd900
0840010824000000180000000210c0db01000000030000000000000000000000000000001b4000
0040000000340000000100000002000000000000bf000000bf0000af4300001c430300000000000
08000000080fd7fe9430000008000000080fdff4f432100000008000000620000000c000000010000
00150000000c00000004000000150000000c0000000400000051000000d0da0000000000000000
0000d2010000cf000000000000000000000000000000000000005e0100009c0000005000000000
0400005004000080d60000000000002000cc00d3010000d0000000280000005e0100009c000000
0100080000000000000000000000000000000000f60000000000000000000000ffffff00fdfdfd00fbf
bfb00f9f9f900e9e9e900cecece00a4a4a4007777770062626200595959004f4f4f00494949004a4a
4a005353530051515100525252005f5f5f004141410040404000424242004545450048484800474
74700434343004b4b4b003b3b3b0046464600383838006c6c6c009c9c9c00eeeeee00fefefe00fcfc
fc00f0f0f0009d9d9d007a7a7a00a7a7a700b3b3b300c9c9c900dbdbdb00e1e1e100dfdfdf00e7e7e
700e3e3e300e6e6e600e0e0e000dedede00e8e8e800e4e4e400e5e5e500eaeaea00ededed00ece
cec00ebebeb00efefef00f2f2f200f1f1f100d8d8d800c5c5c500b4b4b400a2a2a2009494940071717
100b8b8b800f8f8f800898989007e7e7e00afafaf00cfcfcf0081818100bfbfbf00f7f7f700a9a9a90086
868600a6a6a6007b7b7b00cccccc00fafafa008d8d8d0088888800727272006a6a6a00f6f6f6008f8f
8f0074747400d6d6d6009e9e9e006d6d6d009191910080808000b7b7b70099999900b6b6b60076
7676007f7f7f00838383009393930082828200dcdcdc00f4f4f40096969600ababab00d3d3d300cdc
dcd00c3c3c300d7d7d70054545400dadada00a3a3a300d5d5d50056565600aeaeae0058585800c
6c6c600c1c1c1008e8e8e008484840039393900cacaca006f6f6f00a0a0a000707070008a8a8a006
7676700f5f5f5007d7d7d00f3f3f30050505000cbcbcb00757575008b8b8b00636363009f9f9f00b5b
5b500aaaaaa0014141400b0b0b00097979700a8a8a800bcbcbc004c4c4c00acacac00dddddd006
161610090909000b9b9b9007c7c7c003030300078787800d4d4d400a1a1a100c2c2c2006565650
03f3f3f006b6b6b004e4e4e003a3a3a004444440060606000b1b1b10029292900adadad005b5b5b
0079797900343434008c8c8c000a0a0a00575757003c3c3c00e2e2e200d2d2d20012121200c8c8
c800bebebe0066666600bbbbbb00bdbdbd00686868002f2f2f00c4c4c40032323200d1d1d1009b9
b9b0023232300989898002c2c2c005e5e5e002d2d2d00929292001d1d1d00d9d9d900d0d0d0002
a2a2a00878787005c5c5c00353535009a9a9a00b2b2b2007373730022222200282828003d3d3d0
02626260037373700333333006e6e6e003e3e3e001e1e1e0031313100555555005d5d5d008585
8500959595002e2e2e00a5a5a5005a5a5a004d4d4d00c7c7c700c0c0c0001c1c1c00bababa0017
1717002121210069696900090909001b1b1b00646464002727270020202000363636001f1f1f001
818180024242400020202000303030001010100060606002b2b2b000c0c0c00040404000505050
00b0b0b0011111100161616002525250001010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101

0101010101010101010101010101010101010101010101010101012101200120d55f253f2b7f0a1
c66640e5d2021966d01015ebca439af7b010101207ac54fe32b103dc25501390f1487aa8d7e7166
971524842c21012001200101010101010101000001010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
0101010101010101010101010101010101010101010101010101010101012001202120602a017c
654a1205c62fd2b601203ea801968daa987351ab012001299c333b3f010b733da402c2c3053c749
f2b9aae0c7369ca380101020101012001010101010100000101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
1010101010101010101011610000026060f002220574d464301000000000001000000000000000
900000000200000acb30000ac13010001010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
1010102416e01020c4a906d010439c36e20015865411e542120395e280120022a1021565e4e0fa
e3d5f0109c620042e5c6ad8497a206aa8020102200101012001010101010100000101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
010101012020012101012f1be531c79b5c1d48d8ab2027c3b6b0c0552578275aab0101202c0a21
4d93010fad3d6201c75a4ba41f45b1145d08016c0f2120200101210120010101010101000001010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
010101010101010101200102017f9ae8730149bddb9e05ca753a751d015f63b98f0f26d8935d3901
298d1fc0c34d188fd4d89885878c9d451138c32a55c0da192020010101010101010101010101000
00101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010103010220b91a34204120269b724e2342545f8e21618f81954f21d76
682640127e566abd8a6a601a04a3f965b52a2034b49d70145b7d40c20200101010101010101010
10101000001010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
0101010101010101010101010101010201020103654201daa2010121012101012001010164014
e480101210101014e416622634c2001020104200141200101011f01030102ab712020010101010
10101010101010100000101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101

645

01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101014101b09b67a94420040103012101200
101040153010103010201020301014e0154e001010301014e01020101032001200101205d1520
20010101010101010101010101000001010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101020101014eb4877338200220
0101210120020102014e20012002020104014e200102689602210121010101212001012101014
12020339820200101010101010101010101010000010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101020101012020010
3020101210104010101204e01214e01200201010141010101200101012101020101014e200101
2002014e012001032021202001010101010101010101010100000101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010103
204e0101040101014e01020101012101210101030101010102010101032001210101020120010
12101012120012002010101210101012020010101010101010101010101000001010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010120010120012001200101010201032001010121020103010102012101200201200121
01014e01022101012001010101200101030101010220200101010101010101010101010000010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01012101012001200101022001200201022020200101010101010101010101010101010101202
00120010101010101010101010120202001010103010101010201010120010101010201010101
01010000010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
1010101010101214e010120012001010101010101010101010101202120012020202020202020
0220200101012020020220202001010102202001010101012101014e040101012001030201200
12101010101010100000101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010

10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010120200101012001010120200202023830312e6c6a3a2f2e2e
2f2f2e2e2f56286c282a8f6c63292929aaaaaaaaaa2a2eaa313231312c322e2e2b7d034120020101
01010320200101010101010000010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
101010101010101010101010101010101012002010101010101410101012f7978244f578770447
0a03c3ca0a03c3ca025708e66c644877044447070a28e8e8e49878e70447070a24b492561a4584
fad7d4101032001010101010101010100000101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010120202001010102022101024166a4b9446e3320
01010101202001012020010120030102210101030101010101010120202020010101010101010
101020429dd66424c6801030301010101010101010000010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
101010101010101010101010101010101010101010101010101010101010201010104857b3c2c0
201210101214e0101012001012020010120010101200101200120202020200101010101010101
01010121010141210101015368b943c0014e010101010101010000010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101012020010102010148377
491040103014e0101030301010103010101010101010101012020200101010202022020010101
01010101012020200121012001012101010120895a3c0120010101010101000001010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
201489655737d0103014e01010220010121210101010101010101012002200120200101010101
010101010120010101010101200102010101200201210101017d5779380101010101010000010
10101010101010101010101010101010101010101010101010101010101012001020101020101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10102012102010101012001030102010102010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
010101012001218c46644e01012020010101010101010101010101010101010101010101010101
010101010101010101010101010101010101010101010101010101012020014e6943290201020
1010000010101010101010101010101010101010101010101010101010101010101010101014e
4e010120200101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101210101012020030101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101

647

01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010120012002219852394e20010102202020010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010120020148
2a5e3701020121000001010101010101010101010101010101010101010101010101010101010
10101020101010402010101010101010101010101010101010101010101010101010101010101
01010101010101010101010120030101014e21010121030201010103010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
1010101010101010101010101202001dbaf3001010101012020012001010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010202
01010201012073420202012000000101010101010101010101010101010101010101010101010
10101010101010101030101010101020101010101010101010101010101010101010101010101
01010101010101010101010101010101010101014e01010120210101010103010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101210122956301010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010120200102020120018b3d010301000001010101010101010101010101010101010101
01010101010101010101010101020101010101040101010101010101010101010101010101010
10101010101010101010101010101010101010101010102020120014120012101010320010203
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
0101010101010101010101010101010101010101010120010142dd20030120022001010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101202001010301553c210300000101010101010101010101010101
010101010101010101010101010101010101202fab044e01010201010101010101010101010101
01010101010101010101010101010101010101010101010101010101200202012001643635010
14801010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
1010101010101010101010101010101010101010101010101010101042d5f1610000026060f002
220574d464301000000000001000000000000000900000000200000ac930000ac1301000401010
12020200101200220010101010101010101010101010101010101010101010101010101010101
010101010101010101010101010101010101022001010101204e014ead5521200000010101010
101010101010101010101010101010101010101010101010101010104c7c334012002010101010
10101010101010101010101010101010101010101010101010101010101010101010101012001
012101011f5a8046980101014e2101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101030143
47202101010120010101020201010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010203200101202101032344010000
0101010101010101010101010101010101010101010101010101010101010101013e460121210
10301010101010101010101010101010101010101010101010101010101010101010101010101
01010101210101210333522004922a20010201010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101012f420103010121012020010120010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101012001010101022001010201
2c082100000101010101010101010120226097016a413c9579218579da375d46aa2f3d065f4785a
865c0212360323a5e73014e0101dda42f210105410101b95c01c083abb787033e0601213ba6dbb
0425b85913486747357893a912e8a1d08d2320101010301010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101

01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101c5a2210101012001010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
1010101015cbf00000101010101010101030102485aa2036b96aab8c6abe4b9ca868114395e1d6
31cda23716a5805c7161f149562270101b4d6745f380175ad033e18d4a2061a7f80834d10b40102
2dc42745c429c79b02dab334556238cd6ec7d24298020102200101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010153d36e014e0121010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
0101010101010220700700000101010101010101012101018e6c8ff45d4e7134ae0f010aab6c710
10c4001d9aa7962214f894f1d401102482b01034a5401052231e6a601a5dd02966e0b0159855da6
010101418d2838090479540133c34e6123010b2e6e84d741200101200101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
0101010101010101010101016e902101200121010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
0101010101010120012020b69500000101010101010101012101033c6c8211c57d0a1fb0160111
4d96a8016b8c031b8f23d4013e4ba6b28c582a630301015407bf2c205fd3db2a1c928f01bf80207b
d79242012101218d2a38d8203e3e01300b014f6d41a86a7a7a6d54010103010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010189230103010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101020101207f9500000101010101010101020101414492dc47913b0f3947d
901d845bf6f03a8dd01162c5cc7019b79501d4d6bc676a22021b77849bc2c1949776315916b782b
14015f8572c201010141802c380e01594c0129a8015061018dbf713b403f4101010141010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
101010101010101010101010101010101016ddb01200101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
101010101010101010101010120010101014f0000010101010101010102202001db5f1c38965dbb
30c50a3910bf6ec334ba5067162f4f9e5f1333c2d801855d786701208f07669372cf3072596887c74
b3a9a599ec042a331210177b570407136529c52596f37829054bb01b9bd5fe07f21010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
010101010101010101010101010101010101016d6e20012001012001010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
0101010101010101010101010101012020010165000001010101010101010121200170941e014
84ad91f331f02320245bb39993d013821374e281f2046d3044e6337014e20011f56377f3201641f0
1346e0239022945011e957f014e631598014102341fbf1f53212229ae3402016ac0220101214e010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101016d30010101010121010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
1010101010101010101010101010101010102200102650000010101010101010120012121c5e27
d214e50002f21014e010198a80153364e6c03010102020155d3010401210120010201010101010
401210121010101012001017d2c010401019bbfbf6a200101010432200301010101020101014101
01200101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101

649

01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
010101010101010101010101010101010101010101010101016d3021012020010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010201010101650000010101010101010101020
17d6d85210101bfd473010201020169d47f0121415f3302200101211ec201010101010101010101
0101010101010101010101010101012001014e014e68623f4322010121638a0201020120010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
0101010101010101010101010101010101010101010101010101010101072c2020010201010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
101010101010101010101010101010101010101010101010121012101c50000010101010101010
101010301014e0120020164010101020101014101040120020101202004014120010101010101
0101010101010101010101010101010101010121030101010141384e220103030121640121010
12020010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
1010101010101010101010101010101010101010101010101010101010101010101072c2020010
20101010101010101010101010101010101010101010101010101010101010101010101010101
0101010101010101010101010101010101010101010101010101010101210121015c0000010101
01010101012101022101014e0204010101410120202101014e4e014101010120014e030120010
10101010101010101010101010101010101010101010101010201012120010301010202012001
01032101010120020101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
72c202001020101010101010101010101010101010101010101010101010101010101010101010
1010101010101010101010101010101010101010101010101010101010101010101020102018a
000001010101010101010101010103022001010103010201012101014e2001010103010103010
10201200101010101010101010101010101010101010101010101010301010201010202014e01
01010102010202010121010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
101010101072c20200102010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
20012001d50000010101010101010101020220010101204801210102210101020101010141010
10301012101212101010101010101010101010101010101010101010101010101010101212101
01010102012103210120010101200120020101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
1010101010101010101072c2020010201010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101012001200161000001010101010101010101010120020120010120020101200101020
1200101204e012001030301010101010101010101010101010101010101010101010101010101
02010103020101010102020101010220200201012101030101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101072c202001020101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101015900000101010101010101010201010101010201210101010
12101010101014e01010101210101010101040101010101010101010101010101010101010101
01010101024101010120210101010101012002010101012101210101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101

01010101010101010101010101010101010101010101010101010101010101010101010101010
101010101010101010101010101010101010101072c20200102010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
0101010101010101010101010101010101010154000001010101010101010201014e01014e010
10101012121010221014e01010141010101020103202001010101010101010101010101010101
01010101010101010101010102010102010220012003012102202020210120030101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
1010101010101010101010101010101010101010101010101072c2020010201010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010174000001010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101014e01210101
21010121012101010101010101010101010101010101010101010101010120200120020101010
20103010120012101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101073201200120010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
101010101010101010101010101010101010101010101010101010120017b0000010101010101
01010101010101010101010101010101010101010101010101010101010101010101012101014
1010301012c89742478c77878787a3f3f7a78783f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f9361774801020102
01020101010120010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010107320120012001010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101200183000001010101010
10101010101010101010101010101010101010101010101010101010101010101010101202101
01214181c5607e8b81814d812727777777772727adadadadadadadadadadadadadadadaddb5908
c28e280201020101030101214e0101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010107320120
01200101010101010101010101010101010101010101010101010101010101010101010101010
1010101010101010101010101010101010101010101010101010101010101010120014f0000010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01020104014d5cc28f640101214e01012020010101012020010101010101010101010101010101
010121015392756d35014e0103010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10732012001200101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101200
19100000101010101010101010101010101010101010101010101010101010101010101010101
01010101010102014e86d46c01010120010101014e010101010101010101010101010101010101
01010101010103010148012092e08601010121012002010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010
There are two main issues associated with this approach:
the order of the event handler queue
the priority of the server thread.
To enable effective schedulability analysis and to give an appropriate response time to the handlers,
the event handler queue should be priority ordered. Note that for each event firing, zero, one or more
handlers may be added to a queue. The handlers might have different priorities. It is also necessary to
check that the inter-arrival time of the release of the handlers has not been violated; however, this is

651

not the concern here.


The priority of the server thread needs to reflect the priority of the handler it is executing. Hence, the
server's priority must be dynamically changed. Furthermore, as an executing low-priority handler is
not preemptible by a high-priority handler, it is necessary to implement a priority inheritance algorithm.
The priority of the server thread can, therefore, be defined to be the maximum of the priority of the
handler it is currently executing and the priority of the handler at the front of the event handler queue.
Note that although the priority of the server is changing, it is still essentially a fixed priority system
albeit with priority inheritance.
Unfortunately, there are some significant disadvantages with this approach.
Potentially unbounded priority inversion. The server thread causes priority inversion. A high-priority
event handler will not be executed immediately. Instead it is blocked until the server thread finishes
executing the current handler. Priority inheritance allows this blocking to be bounded, but only if the
handlers themselves do not suspend (e.g., issue a sleep or wait method call). Multiple server
threads are needed to avoid this problem.
No-heap event handlers. The RTSJ allows real-time threads and asynchronous event handlers to
indicate that they will not access heap memory. This enables them to preempt the garbage collector
safely. The single-server thread model presented above will fail when there is a mixture of heap and
no-heap event handlers. For example, the server thread executing an event handler that uses the
heap can inherit a no-heap event handler's priority. However, the thread is a real-time thread and,
therefore, can still be preempted by the garbage collector. Consequently, the no-heap handler will be
delayed when garbage collection occurs. The solution to this problem (when handlers do not block) is
to have two server threads (a real-time thread and a no-heap real-time thread) and two priority
ordered queues (one for real-time handlers and one for no-heap handlers).
Cost Enforcement: If cost enforcement is being implemented, the single-server thread model
becomes very difficult to implement.
Multiple schedulers. If multiple schedulers are supported, then it will be necessary to have server
threads for each scheduler.
Daemon handlers. If daemon handlers are introduced into the RTSJ, then further server threads will
be needed.
Multiple servers
The RTSJ also allows an implementation of asynchronous event handlers to use more than one
server thread and for there to be a dynamic association of handlers to threads. This general model
has two main drawbacks:
related handlers must now assume that there may be some contention for shared software
resources
the worst-case response times of the handlers are not dramatically improved as no
knowledge of handler-to-server allocation can be assumed. The non-preemption time, say
for a three-server thread system, is the minimum of the three maximum values of the lowerpriority event handlers. To avoid this priority inversion, a new server thread could be created
every time the priority of the handler at the head of the queue is greater that the priorities of
the current servers. However, this more dynamic approach is more difficult to analyze.
The multiple-server approach has two main advantages over the single-server one:
it has a better mapping for a multiprocessor system
if a handler blocks waiting for I/O (or calls to the sleep and wait methods), other handlers
may still be served. However, if all handlers block, significant priority inversion occurs.
Multiple queues and multiple handlers
A more flexible model can be obtained by having multiple queues of executable handlers, as depicted
in Figure 11.4. Here, the scheduler is responsible for deciding which handler should be placed in
which queue according to any feasibility analysis it can perform.
01000900000348fe00000000556f000000001610000026060f002220574d4643010000000000010
0b90f000000000900000000200000f0fb0000f01b0100010000006c0000000000000000000000d20
10000d300000000000000000000006a400000301d000020454d4600000100f01b01000c0000000
10000000000000000000000000000000005000020030000c40100001a010000000000000000000
000000000e3e306006e4e0400460000002c00000020000000454d462b014001001c00000010000

0000210c0db01000000600000006000000046000000ac3b0000a03b0000454d462b224004000c0
00000000000001e4009000c00000000000000244001000c0000000000000030400200100000000
40000000000803f214007000c0000000000000008400005f83a0000ec3a00000210c0db01000000
0000000000000000000000000000000001000000ffd8ffe000104a4649460001020100480048000
0ffed095c50686f746f73686f7020332e30003842494d03ed0000000000100048000000010001004
80000000100013842494d040d000000000004000000783842494d03f3000000000008000000000
00000003842494d040a00000000000100003842494d271000000000000a000100000000000000
013842494d03f5000000000048002f66660001006c66660006000000000001002f6666000100a19
99a0006000000000001003200000001005a00000006000000000001003500000001002d000000
060000000000013842494d03f80000000000700000ffffffffffffffffffffffffffffffffffffffffffff03e800000000fffff
fffffffffffffffffffffffffffffffffffffff03e800000000ffffffffffffffffffffffffffffffffffffffffffff03e800000000fffffffffffffffffffffffff
fffffffffffffffffff03e800003842494d0408000000000010000000010000024000000240000000003842
494d0414000000000004000000023842494d040c0000000007cb00000001000000700000003300
000150000042f0000007af00180001ffd8ffe000104a46494600010201004800480000ffee000e416
46f626500648000000001ffdb0084000c08080809080c09090c110b0a0b11150f0c0c0f151813131
5131318110c0c0c0c0c0c110c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c01
0d0b0b0d0e0d100e0e10140e0e0e14140e0e0e0e14110c0c0c0c0c11110c0c0c0c0c0c110c0c0c0
c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0cffc00011080033007003012200021101
031101ffdd00040007ffc4013f000001050101010101010000000000000003000102040506070809
0a0b0100010501010101010100000000000000010002030405060708090a0b100001040103020
4020507060805030c33010002110304211231054151611322718132061491a1b14223241552c16
233347282d14307259253f0e1f163733516a2b283264493546445c2a3743617d255e265f2b384c3
d375e3f3462794a485b495c4d4e4f4a5b5c5d5e5f55666768696a6b6c6d6e6f637475767778797a7
b7c7d7e7f711000202010204040304050607070605350100021103213112044151617122130532
819114a1b14223c152d1f0332462e1728292435315637334f1250616a2b283072635c2d2449354a
317644555367465e2f2b384c3d375e3f34694a485b495c4d4e4f4a5b5c5d5e5f55666768696a6b6c
6d6e6f62737475767778797a7b7c7ffda000c03010002110311003f00f55493484a424a5d2492494
a49254b26acf6bedbe9c8866d05b4fa61f1b46bb3dcc73ac7b9253752580dea5d42c2e630e48d747
bb06c1a3c0f4c377bab6fe8dcef7eefdcfd27a68bfb432c3ec6fab73f64805985616ceef46039ae3bf6
bb77fd5d8929da4955c319a66dc8b5af63dad2c60acd65a752edfb9ef77767e8ff00315a494d5bddb
addae6ee682195d72407bc82f77aba7d0aeb1bbfedcfd1ff34aa0e9f53dee1563e3b9ad24177a2c6b
411cb5b3ea39ee6fe7fe67fd42ba7f9f1ff19ffa2caaf5753c6a4b718b2d0e61aeb9f4ddb09b031cd73
2d8d8ff00e73de9298b3a6b9877329a18e88dcd68698feb318d7ab1559934b43729a1cd0605cc24f
3c1b58435ccfecfa9fbff00a356942e00d4f0782d33f724a7ffd0f44619631f606b5da7ac40163dd691
efa2bddf47d277f27fedbd8a6eaf7360e3d8d246840a4107c443fe935132aa7b09c8c76cd8357b044
bbda58db1bbbfc2d73fdb67b3fd1a06ca491b037d3718addb45b65a625d66f76ef67f5d2536312eb4
814e4022f68fa4e0d1ea001bbae6b6b73dadf73bdecffd469b273eac6baba5ccb1efb048f4d85e07b
9acf7b9bfcdfd3fcffe5a0bb19f12c6399637563c32a969f1d1cd47a48b7736c0e65cdfa6ddce035276
bd9eefa0ff00fa09292e458eaea25bf4890d6cf12e218d27fabb9547329f739cd6bab6121f7ddef739f
a376d4cfeb7ee7f84f6554a837a55186fc8caaecbdefc8b9b6d8db2eb1f5b06f63dfe8d0f7fa14b1b1b
ff00475a3623012d2e1ad7b8b41ece73de1eefeb7b5253115d044fa43fed87a7db48ff00063fed87ab
a924a6838168dd8f35d83802ab030ff26c68fdefdfdbbd89ebeaacb329b8ada2e2f806c76d86d725e
c6fabb9cd7fbbd3f67b3dec57952ea543321acc6717b0657a98efb2b7163dad7d56b9ceadcdff0009f
a3f63bf3125243fd207fc6ffe8a7213dfd47d3a59855d641ac175b73880d3a40f4d9efb3ff03ff8c4b1b
1abc52ca2b758e632c80eb6c7daf3fa377d2bb21d65affed3d0ae38560a2bb335f8f7358d22aaadd8
e3a7fa11ee7fd3fdd49493775c81fa3c6044130f799fdf6eb5b367f21c9c3baa977e9aba1b41dc2c2d
7b8b834076c733d81ae73fdbbffd1ffc22aecc1e9d96f1e967db758c05cd2cc8dc5b2efa5ed9fa3b7d
347aba5d58cf7dedbafb1e59b5c2cb0b81da1cd697b7f39dee494fffd1f55559d49a6f1756d2eaddb8
3d823da5c439d6b07f2f6fe959ff005cff0048a19f859392fa9f8f996619aa643035cd7ce9fa46d81df4
7fd7f310ebe9f9ec01a7a8da436af4c7b2b249007e9dee7b5fbadd12536bed2cfddb3fedb7ff00e453
30bacbc59b5cd631a5ad2ed376e2d27dbf49bb3d3fcf55dd819c43c7ed0b0cc1612cac6d8735ff00e
0d95efddb767b917131f329b2d391947258f8f49858d61646edc37b3f9cddedfa4929b240220ea0f2
154657f627fb47ea844000126b24eef3fd0bb73bfe27fe27f9ab8924a403370cf17d67fb6dfef52fb5e2
ff00a6affce1fde89b5be012dadf01f724a47f6ac6ff004ccff387f7a1eeaf26ea9d5fbd949367a80fb64b
5d5b5ad3f46cf6dae5636b7c07dc9d253589fd68360cef0ef2835bd9ff0054c4f4e363b9955aea98eb
03043cb4170d00fa4a57e3b6d2cb0697524baa7f81236b9a7f798f6fd36ffe8cd88745b654cf4b2185
a59a31cd05e1cdfcdf735bf4bf7b7352526af1e8a9c5d556d612209680341ac69f14f6ff0036ff00ea9f
c8a3f69abc1ffe63ff00f22a165c6c69ae96b8bdf224b4b434777b8bc37e8cfd0fcf494fffd2f55497caa
924a7eaa497caa924a7eaa497caa924a7eaa497caa924a7eaa497caa924a7e99ea3bfed54fa7f6c
ddb1ff00d1b67a712cfe7bd7fd17a9fe8bf3ff009cfe5aaecf5bed836fed0db35cff0035e8c6dabfd2fe9
36ffa6f4ff49bfd65f3724929fa4ebf5e5bbff684fa8ddfbbd28dbf9bbbd2ff0005fe93d1fd3ffa442afd5f4
5bb7f69ecd82777a7bf9fcedffa6f53fe2d7ce2924a7fffd9003842494d040600000000000700050000
00010100ffee000e41646f626500644000000001ffdb008400040303030303040303040604030406

653

070504040507080606070606080a0809090909080a0a0c0c0c0c0c0a0c0c0c0c0c0c0c0c0c0c0c0
c0c0c0c0c0c0c0c0c0c010405050807080f0a0a0f140e0e0e14140e0e0e0e14110c0c0c0c0c11110
c0c0c0c0c0c110c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0cffc0001108009
f015e03011100021101031101ffdd0004002cffc401a200000007010101010100000000000000000
40503020601000708090a0b010002020301010101010000000000000001000203040506070809
0a0b1000020103030204020607030402060273010203110400052112314151061361227181143
291a10715b14223c152d1e1331662f0247282f12543345392a2b26373c235442793a3b336175464
74c3d2e2082683090a181984944546a4b456d355281af2e3f3c4d4e4f465758595a5b5c5d5e5f566
768696a6b6c6d6e6f637475767778797a7b7c7d7e7f738485868788898a8b8c8d8e8f8293949596
9798999a9b9c9d9e9f92a3a4a5a6a7a8a9aaabacadaeafa11000202010203050504050604080303
6d0100021103042112314105511361220671819132a1b1f014c1d1e1234215526272f1332434438
216925325a263b2c20773d235e2448317549308090a18192636451a2764745537f2a3b3c32829d
3e3f38494a4b4c4d4e4f465758595a5b5c5d5e5f5465666768696a6b6c6d6e6f6475767778797a7b
7c7d7e7f738485868788898a8b8c8d8e8f839495969798999a9b9c9d9e9f92a3a4a5a6a7a8a9aaa
bacadaeafaffda000c03010002110311003f00f7f62aec55d8abb15762aec55d8abb15762aec55d8a
bb15762aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb1
542ea3a8d9693633ea3a8ccb6f656ea5e595fa01d00f724ec00dd8ec31563a967e62f340173a8dccf
a068922b7a5a65a37a5a848adc4ab5c4e2a613407f7509e4bcbe296bf08557cff96de43bb94cfa86
8167a85c11433dfc7f5d9481fe5dc176fc71553ff955df96e001fe12d2683a0fa941ff003462ad0fcacfc
b50411e51d1c11d29636fff003462ad9fcaefcb62413e51d20902809b1b73403fd862ad1fcacfcb43d
7ca1a39f9d85bff00cd18aaa45f971e4ab4f50e95a4c5a44b202ad3692cfa749bf7e56ad19a8c554a
4bbd77c9e0cdaacedacf95c30f52fd9556fec63341ca70b459e25ead2285951776590727555972b2
ba8742191802ac0d4107a107156f15762aff00ffd0f7f62aec55d8abb15762aec55d8abb15762aec5
5d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8
abb1562b72dfa7bce49a5bc6cda6797628afe76603d29750ba2eb026fd4c088d21ff2a585bed2e2a
c8351d46cf49b29b50bf90436902f291e858f5a0015412cc49a2a81c99b61be2ac792d7ccde6783d
6bfb897cb9a54ea0c76168546a655a87f7f70792c4c46c5211c97fdff005e8ab77de4cf26c50bdeeaf
1968604acb777d7b70c1513bb492cc683c4938ab1f82c3f2caf7d4fd19a4dd6a314678b4d6906a12
c0c7fc89768dc7ba3362aac743f2377f2cea3d3fe59ef7fe6ac55afd07e46a7fca33a97fd235eff00cd5
8ab6345f23ad40f2cea5bedfef35eff00cd58ab6fa6f97d60f474bb3f30692eac1d25b25bd5a15ec639
4c913a9eeaf1b29f0c550de56d6353f2829d0b53b2d4f51f2f2b5c4f61ab47a74e8d67097f516d6681
0331540c56178432f05e0c91f15e4ab3ad1f5fd1b5f85a7d22f23ba54a0951495963622a1648da8e8
d4fd975538aa658abffd1f7f62aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8ab
b15762aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb154834025b59f3431
3522fe151ec0585a9a7e271541830f98fce3346e566d3bcabe98115095fd2d731fa9c9aa284c303a
14a7433b7ed2ae2ac8354d4ad347d3ee753be6296b6a86490a8e4c69d1540dcb31d9547da6db15
63fa7797ae75b961d77ce31f3bc0dead8e86cc24b3b114217928f8659f8b7c72b72556f861e20727
5595e2aec55d8abb15762aec5525d6bcb363abc897d1b358eb96e0fd4b57b6a2dcc448a50d41591
0fed4720646fe5ad0e2a97daeb7af5dd85fe971c102f9cf4f68a29e37e4b6863b8938a5e2577688a0
693d30dcb9a3c1cb90e58abffd2f7f62aec55d8abb15762aec55d8abb15762aec55d8abb15762aec
55d8abb15493cc3e6cd13caeda747ac4b224dab4ef69a74504135cc934f1c125cb22ac28e6a2286
47ff0063e38aa2acb5dd3352b0d3354d32537da6eaeb1c963776c8f2c4d14b199524665042a151f6
9a82a557ed30c551b3ccb04125c32b3ac4acecb12991c840490aaa0963b6c06f8aacb7bcb6bb0e6
de5573130499011ca390a87e0ebd55a8c0f16df7c555ea3c7af4c5501ab6b1a7e876f15d6a5218a0
9ae2dece3708cff00bfbc9960894840480ceeabc8fc23f6b1547e2a80d5f59d3f42b58ef352768eda5
b8b7b35754793f7d79325bc40840480d23aaf23f0ad7e2db1547e2aec5567ad17abe87a8beb95e7
e95473e15a72a75a576ae2abf15762aec55d8abb15483cbfff001d7f347fdb462ffa80b5c550fe4c85
13fc41328f8ee75abd794f8b270847fc2c6a3155be625bad47ccde5bd15115b4c57b8d5b522d5dfea
0235b74007fc5d3249ff3cb156538abb15762aec55d8abb15762aec558e6b104b6fe6af2e6a76cabf
e92d75a5de935e4607b792ed08a6c4ac96e295ecede38abfffd3f7f62aec55d8abb15762aec55d8a
bb15762aec55d8abb15762aec55d8abb15607f98be51d53cd5aa79267b00059e87ad36a1a9badc
bda4e2da4d3eeeccfa2f18e5cb95c034e49f0ab7c58ab0cd43f2875a8a1d46c7ca91dbe84b2eac5f4
9beb79dc35a6943413a744aa8176f4ee0faa22069feece5ea62aa27f2d75f92fcfab6f62ac74cd50c1
a2c57cfe9da5e5d5958dac32c4a501e2f35b4d27a9c7f7664e5fde3c98aa1bfc01ac69fab41657114
11ea9af6b8d733185e597d7d12e74cb4b7d5166644454911e15f4e4666e4dc78fdb6c5590f9bfc9fe
66bed65633e678aefeb117a5646eda0b3b8d2ae24bb8e5827b78e145f54958de215a48d40bc995a
4c5520ff009553e7089f4f6b6b0b26469ad2e6613df4a64b1bbb2d6febcd731931482469ad44709fb
2c9e8a47fdde2abd3f297cd579656b6d776d6d69a82dbea026bf5d52f2ee35d55ace382d75048dd5
385658c4bc107246fde333c8715563f96be6f64b148f4ab28e092e74cbe36b3eab7177fa32e6c755
8efae9e079603c85ca2d02208d2331aad38b31c553df317e5f79875df30798ee1c46f0dedbb3e81a
b35fdcc4d692fd5e058edded2250acab73009fd42e7e177509c8925549759fcb7f3cde41abdbac56b
35e5f69122da6a51ea3756e6df53bcb6923ba85610943134f219a390b7c1fefbe6919c5592793fc93
ac687e719b5bb8b3b78b4d7b7bfb2b70b37a92c104ba835e40a070fb2c246aaf2fddb2fed038abd3
315762aec55d8abb15483cbff00f1d7f347fdb462ff00a80b5c5547c9c47a7ad81db58bf07e9901fe3
8aa2a6ff94becbfed9b77ff0027edb154ec107a1af6c55d8abb15762aec55d8abb15762a946b1ff001

d1f2fff00cc7c9ff501778abfffd4f7f62aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55
d8abb15762aec55e5be7c87cc36de78d335bd06df5091edad2d6090d942248258e6d5ad84f14ac5
4fd9b732c8055694e5e18ab038b54fcedb88f513243ae5ac708bdbdd310db4065761636125bc12b
7060c7eb5f5b52abc1586cb48bd3c55d75a679fb54f309d62fb46d4a5d6a3b8d223924b8854d9a4d
63ac5d4abe818f6fabac2f139615f84fc67d5e631565be4b9bcfba8ea5e5cfd3f71afda452c57375acd
b5ddadb431477d0a5a036ed2c692561320b868c8750e1a919f4d531549f5bf327e64c7e67b9d36d
57538afe2b8babc92ce38626827d26cb5cd3511ecaa0fa87f47cf37aa14f3f51a9fde2a51575a6a9f9
bd73a6c86e22d6adb578348927b38c5a5a982e2511ce0accec7e09d6558caa28ac8852954690aa
a982eadf99373a9dca347ae58d806bb9f449a3b18273227a9704c774b2b285e1135bb401b8b4855
a3e5cf90c55e89e42975f97cb1687cccae359469639e570cbeb04919565549151d1640392c6e39a
03c4b3d39b2ac9715762aec55d8abb15762ac7fcbff00f1d8f34ffdb462ff00ba7dae2aa1e4b208f305
3b6b57b5f9d531545ce7fe771b11ff006acbcdff00e8e2d715790697af79ef48d6b55d2b43d3e58f4d
7d6351bbb12f6ccd1df5ccdac959adde465fdd20b66f59241c7955a4e4c91b2e2aebaf3dfe6299348
b69afe4d262d5d625b8b8934b0f3daea6da7ea13cf611c6548916296da0a3519b8c857d43c9582af
6fd265beb8d2ac67d4e210ea52dbc4f790a8215276406450093b06a8eb8aa3315762aec55d8abb1
54a358ff008e8797ff00e63e4ffa80bbc55fffd5f6eeb1aedffd77f40f96a08eeb5ce0b2dc4d71c859d94
4e7e179ca50b3350fa70a9e6fd498d3e3c55a8fcb5a94aa5b51f31ea134ecc5bfd1fd0b489413b2a2
2464f11fe5bbb78b62ad9f2ab9ff00a5eeadf45ca0ff009978ab7fe1671ff4bdd5bc3fde84ff00aa78ab4
3caae1b90d7b56edb7d6508dbe71e2a86b8b4f37e84c6ef4dbc3e62b00419b4bbe114376b1853cb
ead711222b3568424ebf17fbf93154f748d5ac35cd3e1d4f4d944d69372e2dd195d18a3a3a9dd5d1
814753f12b02adbe2a8dc55d8abb15762aec55d8abb15762aa375756d636d35edecc96f676e8d2c
f712b048e38d0559999a8000054938ab1d83cd3a96acdcbcb9a1cf7362558a6a77eff00a3eda4229
c7d357579994d6a1fd1e047d966c5508f71f9b258fa7a77975569f086bfbe620fb91663155a2e3f376
82ba77972bdff00d3afbfec8f156beb1f9bdbff00b8df2dd3b1fafdff00fd91e2aefac7e6f50d74df2df2ed
fe9f7f4ffa82c55725cfe6dedcf4df2e74df8ea17dd7e9b2c5545e1fcc692fa3d4df41f2cb6a50c6f0417
8d7d766648a4219d15fea1c82b155240343c47862a8c175f9a341cb4ad02b4de9a95ef5ff00a40c5
570bafccda1e5a56835a6d4d4af3aff00d2062ab96ebf32bf6b49d0fde9a9ddff00d9062aab3799753
d2dc1d7b449e0b2a02fa85838bf82326b5f51555265514a97f48a01f69862a9fda5e5a6a16b0df58cf
1dcd9dc20920b88583c6e8c2a19596a0823c31556c55d8abb15762ac7bcbdff001daf35787e9187f
ee9f698aa8792893fe21a8e9added3e5f062a8b9cff00cee7603c74bbd3f75c5a62a9ee2a83bbd2b4
fbfbab1bdbb804b75a6c8f3d8ca490d14b246d0b32d08dca3b2fc98e2a8cc55d8abb15762aec55d8
aa51ac7fc743cbff00f31f27fd405de2afffd6f6a7e5e5c26a7e58b6f3215a5c7984b6ab31279352e3fb
a527c12211c63d9715446a9afdeb6a47cbfe5bb78af75889524bf9a77296b65149ba998a02cd2380
4c712eedf69da34a362ab6c3cbdaea445b57f345e5e5db33316b782d6d20556350a9188a46a0ff00
2e476ff2b15457e81baffabeea3ff056dff543156ff415cffd5f351ff82b6ffaa18ab4740ba200fd3da9023
b86b6affc98c558c58e9be69f21dceabaadcde3799f41bf9feb976890476d7f67c5151a448a0511dc0
217948156290fda5595cd31567769776b7f6b0ded94c97367708b2c17113078e48dc5559596a082
0ec462aad8abb15762aec55d8abb15762ac3edad079c7559753d49449e5bd32778349b16de3b8b
9b762925dcaa45182b864814d57e1f5bed347c156604802a7603a9c558bff8cd35095a1f2b69d71a
f2a32a497d018e1d3d7975a5ccacab2711f6bd012d3a75c5515f5ff37d76d12ca94efa93835fa2d0e
2ad0bff003877d12c7da9a9487fec4f156d6fbcdd43cb45b207b535173ff6283156febde6dffab2d9ff0
0dc45ff00ec93156febde6bff00ab35a53feda0dff64b8ab7f5ef357fd59ad3fee20dff0064d8abbebde6
affab35a7fd27b7fd9362aefaf79abfeacd69ff7106ffb26c55afaf79abfeacd69ff007106ff00b26c55885
ceadaa793f5a5d49fcbb7767a05fdc470eb02c8c77b648d36c2f956261245c0d05c9308464fded794
6792af45b5bbb5beb68af2c678ee6d2750f0dc42eb246e87a32b292083e231556c55d8abb1563de
5e1fee6fcd7ff006d187fee9d698aa1bc93d7cc7dbfdce5efea8f1545dc1ff9dd74f1dce977dff511698a
a2bcc7af5b796b499356bb52d02490427708aad733240aceedb222b382ee7644ab62af3a1f9e505
d58de4fa6796b5296e2c74f37f7826411dbdbc8d6c6ea28669d79a2fa9181c48e5bba0e3f155554b
47e64798f4ff32ea7a17997508ac2c67d718796b534863a4d6564d17d7b4e943823d68d19a589d7
e3921e6df6a07aaac9ed3f3585d0d1247f2edfda5aebfa82e97a7dcdd85b747925b65bb89c0938b1
478bd5a305fef6168b7e5197558a5e7e69799aee4bcbdb48ae2d6ddfcbfad5e5b5959c115f7a179a
5ea0f6915c3c8eaa68ca9531fd9c559241f9a86d22b6d36e74db8d4759fabd81e70c96d18b896ee4
b2b767ddc2c43d4bd8fe172afc43b70e3c39aa95eb1f9a57fabd8d8ddf95965b0553711eab24ab6f2
fa572744bcd423878b72e46378a26e69f0b7d9dd7951546c3f9c216158e2d0751d4de36b3b09351
81121b39353ba9eded5a012cc6340449700ec5be1593f97e2559b6b12cfeaf97e7f40fd67eb723fd5
792d7d4fd1d767872af1ebb57a62aff00ffd7f68793a5b7d0b44bbf2e4bfbb7f2c1783831dcd900d2db
483fc968a8b5fe7475fd9c551de4bb46b7f2f5add4fc5aff00541fa4efe450473b8bca4add493450422
f82228c55ad4fcc378da8b685e5cb45bfd5a250d7b3cce62b2b20eb54f59c066676eab1460bf1f89fd
342ac55525d1fce52066b8f33471c8cc485b5d3a348d57b0026926634f12d8abbf4179b3fea6b93fe
906d7fa62ae1a179b3bf9aa43ff4636bfd31571d0fcda01e3e696e743c79585b95af6a81c49fbc62a9
3694facfe5fc7731798cc177e599ee5ee1356b146823b01380d209ede4790a4265e6dea46ec91fa9
f1a471af3c559f2b2b00ca41522a08dc107156f15631f983e62bbf29f952ef5db136e2e2de6b38835e
72fabaa5d5dc36eeefc590d15642df6874c55e552fe72f9b5353b8d0661a6a5ed3869f710c52b7d6e

655

32bacafd6a04794d53969f6ee3775fdf70e6dca36c55ec3e4ed467d5fca5a16ab73731de5cdee9f6b
713dd42a1239649615667555240049e80e2a9de2a9279cb587f2f79475ed763a7aba6e9f75771d7
a738216751f78c5517a0e9f1e93a269da6448112d2da18028141fbb400fe38ab1db951e78d5aeb4d
f55bfc27a34de86a0913002fef9455ede43d7d186a3d551fde4bfbb6f863911d56611c69146b144a1
23401511400aaa0500006c00c558e6a3e75d3ada7b8b0d2ad6ef5fd56daa25b2d2a312f07078f092
791a38236a8fb324aaded8aa8c7e61f394a9cffc1d2c27a88e6d42d03efd8fa6d22ffc362abd35cf38b
579795388ff00b685b9afdc3156bf4f79c77af948d3b5350b63fac0c55a3e60f388ff00a641cfcb50b5f
e2462ad0f30f9c686be4e96a3a01a1610000026060f002220574d46430100000000000100000000
0000000900000000200000f0db0000f01b01008599affc362ab4f98bce75ff009432522a77fd2367db
a7ed77c55dfe23f397fd499375ff00ab8597fcd78ab8f98fce63a793263ff6f0b2ff009af1570f31f9c882
4f932614e83f485954ff00c3e2ac565f325df947523accfe5cd4f42d16e268e3d6ac4c50de58fef9c27
d7a17b079fd26426b3891635923f8ff00bc5f8d563dafebde6cd53cf3e62ff09eb177710d9d8b0d02d
ad0abd85cdd4fa5b4a20e4ae632e1996e2396429572b1ff0077f162ac9bf2db4df32da79827bbd79f
58b8b69f49822b1b8d5484a70bdba919258526955655496255672d33c6bfbc7e5c862af52c558ef9
789fd39e6c07a0d460a7fdc3ad31543f927ed7993fedb979ff00118f1544dcb11e79d2d4746d2b50af
d171654fd78ab7e74f2e4de6bd026d121ba4b4f5a582491a58de68e44826594c6eb1c90b857e3c4
94911878e2a95d87e57f952189a4d4acd751d4ee2cce9f7f7d334c5ae2dc891023f395cb70491a38
99d9e58e33c0498aa7317943cb50c4611a6c5227d77f4a8f581988bea71f5c190b10f4daa3b13fcc7
154ba0fcb3f235b5a5bd8c3a3c6b6969436b1fa9311114962993d325c95e0d047c29f602f14a2fc38
aaaafe5e79351ae9d34b5437b6f7565721259955adafe633dc4614380a24918bb71a6f8aa847f95fe
4486e05d43a3a47701e3903a4b3a9e709b7646da4ea0dac0d5eed12b1df15697f2bfc84850a68b1
2944f4c51e6151e94b054d1f7611cf2c618fc411ca578e2aad17e5cf92a199e78b488d25924b69d88
794566b1311864a73a735304557fb4fe9af3e54c5533d63fe3a1a07fcc7c9ff501778abfffd0f6ff0098
bcaf0eb7fe976b39d3b5c8e092d61d4510495826fb70cd1b1025889009424107e24646f8b154ab47
f3049a5790ae2e6f5124d63cb1672dbea56a84a06b9d3a1df8f2dc2ca02c887f924538aa79e58d20
68ba2db5ab9e77b20373a85c10394d7939f52691a806ece4fc8517b62a84d47cc9792decda37962
c46a5aa5b90b797133fa36168cc14f19650199a4e2c18451ab353ed98c32b62aa32695e7e95b98f
32585bd7fdd51e94eeabfec9ef2a71559fa1bcff00ff0053559ffdc23fecef1577e86f3fff00d4d567ff007
08ffb3bc55dfa1bcf84112799ac268c821a293483c181d886a5e03438aa5fe5abed4fc976d0f977cdd
0c50e9eb70f6fa2eb1685dac45bc927fa35b4deab1921750c224e65a37e2bfbde6dc31566b797b69
a7db3dddeccb05b474e72c868a2a40153f338ab14f31eade43f32e93268daaeaf17d4a678257114d
e9bf2b799268f71db9a2d7c7154c3fc69e4e5a1fd2b6c3d31c4107a0f01b62ad1f3d793a24f8757b6
0abb0018d053d80c55f2f7947fe7e21f95fa84cf63e76d1751f2e5d24ad17d6adc2ea5665558af32c9
e9ca3a568226c55ecdaffe66791bf333f26fcebad7917588b59d3a2d22fd249624963e2e2ddcd0aca
88c3eec55ea97776b63a74f7cff0062da0799bbed1a163fab154b3c99682cbcaba4445da495eda3b
89e5937779ee47ad2bb53bb3bb31c5501ab1bbf346ab3f966d257b6d0acd546bf790bb473c924a0
3a59c2ebba550f39e4043aa346b1fc52178d5649616165a5d9c3a7e9d025ad8db208e082250a88a
3a00062a88c55d8abb15762aec55d8abb15762aec55d8ab08d4743b2f26dfdc79cb41b08d6de4ab
f986ce18d033c207c5730ed5124607278d7699797c3eaf138aa43f9b1f9e9e5afcb6fcbcd4bcfb60f6f
e603a78b574d360b91134f1dcdc450928e164a5164e63e1de98abce3c9bff0039e3f907e6758e3d5
afef7cad7acb568b55b5768b977026b5f5969eedc3157b7792755d3f5cbcf31eada55c25de9d777d6
f25b5cc7ba3c6da6da1045698aaa7927ed7993fedb979ff118f15455cffca6da6ffdb2efff00ea22cf154
67983cc1a7796b4ff00d23a9337a6f2c56d045180649679d82471a062a2ac4f720789c558ac7f9bde
566b9bbb69e0d42ccda5a595fb497968f6e8f16a8e915a2a7a8549796563085a0e32a3abf1e35c55
14ff0099ba1a588d4bea3a935924027ba945a38fab164f53d39c120a3f0f8b7f87a51aae8195434df9
afa2437d7564f617d4b6564f538443d5bb5bd9ec7ead1a99412e5ede4653f63d3f8b962ac475dfced
bcb09f5986ca08c3dbdcf9723d223bab2bd56683cc0f02c9f5a61458a48c4c4aabb466abc5971565
d77f9b9e59b2fae2c96da83cd6334b05c431db72907a104d72cfc790214c704ac39716f87ecfc4bc9
54b757fcd476d4a38fcb4915d68fc591b519a36f4649e0d5ecb4db8489d6415f4feb122b553691053
9ad7154e2d3f353cb7a85c58dbe9f05f5dfe93bb167a74d0db1686e0185ee3d78e4a853108e3725a
bc871fb3baf25590eb1ff001d0d03fe63e4ff00a80bbc55ffd1f7f62ac3fce5e4bb8d72cf529bcbd7a9a4
ebba85a4b677134917ad6d748f134682e6305598c65ab1c8acae9d3e24aa155566f3657c8b27992
d808ef841e92c137fbab512df57f464037aace7830c5539d0346b6f2fe936fa5da92eb082669dc969
2699cf2925766249677259893df154beefccd7136a1368fe5bb1fd297f6cc16fae2490dbd8db31a12
924c1242d280797a51a330ff767a7c96aaa1c5b7e64b7c4752d0e2a9a88ff0047ddcbc47873faec7c
be7c57e58ab7f55fcc7ffabb689eff00ee32effecbf156cda7e63505356d101eff00ee32ee9ff51f8aa1a
f74bf3fdeda4b67797ba0ded9dc298aead5f4fbb896589c51979fd764e351df8362ab7cafad6a1a4a5
87953ce28d6fad8530596a25fd6b5bf1196e0127e287d7f4d39491ba239f89939af22156678abb157
11514c55e3de53ff009c59fc87f274e2f34ff26595f6a5c9a46bed5836a52b3b9a96a5c9745353fb08
b8ab2afcd0b3b5b4fca7f375959c296d6916897e91430a048d145bbecaaa0003d80c55906be6be5
8d50f8d85c7fc996c557f97d82f9774a63b01656e4fc844b8aa55f97715d8f2958dfea3c4ea7abfa9a
adeb20a7ef2f9da70befc119631fe4a0c5594e2aec55d8abb15762aec55d8abb15762aec55d8ab44
02083b83d41c55e60be4ef2cfe68fe5beabf96fe658ee27f2f5a6a33e91770accf14b245a55f09205f5
57e2e2523881deb4dab8aa3bc9df917f93fe41e2fe53f2669761708c1d2ecdbadc5d065e844f3fa92
0ff0082c55907978535cf367bea301ffb975a62aa1e4afb5e63ff00b6dde7ea8f15455cff00ca6ba69ff

b55dfff00d4459e2a8af30f9774df33e9dfa37531208d258aea09ade4682786e2d9c4914b1c884156
56008fb9aabb62ac7753fca8f286af34975a8477535dcb17a125d35dcfebb468f0cb1564e5ceb0cb0
24f09ad639b948bf13bf2551171f96be5aba7bc7b86bd90ea3682caf81beb9e3371468d6775e7433
8562a25fb5f67f9138aaa127e54f94e404ffa6a4fcccc2e52f6e04c2e3eb4d7a270fcea24595e4607a5
249129c1b8e2adddfe56f962f575559def48d666d36e6f7fd2e524cba3146b565662482ad1a336ff00
191f1d71543ffcaa0f28012aa35fa2ccb3ac8a2f66208b98ee627fb4c68425dcaaa7b57c462abe2fca
4f275b875b54bbb789a569d618aee6114724b750decc5139715f5678125936ddf97f3362a8dd2bf2
e3cb3a2cda6cba7adcc6ba3dc4b73a5c2d7334915b89e292130c68ec42c416570918f856bb7d95a
2a9beafff001d0d03fe63e4ff00a80bbc55ffd2f7f62aec558079dfc9d7f3586a97de577549aecc579a8
e92ca4c5773d94893a4917123d3b86f4d50b5192514122d42baaa9d6b3afb5cf951355f2dca259b5
616f069770bc4857bf912149486a8fddf3e654ff271c5537d1f4ab4d134cb6d2ac4116f6c9c4339e52
3b1dda476db93bb12eedfb4c4b62a93def9aae27ba934df2b69e75abd826582f6e0ca2dec2d9abf1
892e0ab7274fda8a2591c7ed70c55b93fe560349ca13a3451507c0e2ea5607bfc40a57fe07155164
fccadb8cda1fbd61bcffaab8ab613f32a86b36875edfbabbffaa98aa1353d2fcf1abe9977a76ab1e8f7
50ce9fbb16ef75692a4abf123a48cb3f17460191b8fc2c01c5519e52f335edfdb5a693e69b36d23ce4
96eaf7ba7c8cb2472b2002492da6401258ea6bf0fc495fde2262aca715762aec552bf32690baff009
7757d09cf14d4ecae2c8b780b889a3afd1cb154a53501aa7e5dc97db8924d2a5132b02ac93240c9
22303b82ae1948f118aa67a16fe57d34f8d841ff0026571552f267fca21a076ff71d69b7fcf04c553cc
55d8abb15762aec55d8abb15762aec55d8abb15762ac1bf2cff00bbf367fe04daaffc9c5c559ce2ac7
7cbdff1ddf36787e9183fee9d698aa8792bed7993fedb979ff118f1544dcd7fc6fa6787e8bbfaf87fbd1
678ab20c552fd5f5bd37428ed65d4e630c77b776fa7dbb0477e57379208a253c01a72620723f08ef
8ab76bace9d7ba96a1a4dbca5aff4bf47ebb1156509f594e71d18801aa07ec938aa3f15762aec55d
8abb154a358ff008e8681ff0031f27fd405de2aff00ffd3f7f62aec55d8abcf3ccda36a1e5a84ea7a298
a4f2bdbdf43abea9a5ca4c6d6a229d66b89ed18022847392485f62d568dd18956553ff366ab3c7a4
5a5b68d74b16a1af5c43a7e9b7aabeaaa7d615a4799789a1e10a49227ecf255ed8aa75a769d69a4
d8dbe9b611fa5696c823892a49a0ee49dc9277663bb1dce2a8ac55d8abb15762a93799b477d674
b74b4658b58b43f5ad22e9891e8dec6a7d362402789a94907ed46cebfb58aa2340d4db59d134fd5
6488412de5bc734b003c84723a82e95efc5aab5c5531c55d8abb1560faac32f95a7d5259e379fc95
ac8964bf11af36d3ae66044d31541c8dbcb5e7291530c9ca4feedd8c6aa67e4ad461d57c8fa4ddc0
415164903f1659144b6ebe8c8032920d1d18541c5515e4dff00944741ff00b675a7fc994c553bc55d
8abb15762aec55d8abb15762aec55d8abb15762ac1bf2cff00baf367fe04daaffc9c5c559ce2ac77cb
b5fd37e6caff00d5c61a7fdc3ad31550f24835f3254d6bae5e7ea8f15455c7fca6da70ff00b55df7fd44
59e2af38fcc0fcbbf38798b52f34dc58ac739d46cc43a15efd7e5b46b7492de3865b578e34a953221
9d5b9f00cfcb87a8a3154b87e5679bcdf69eaf69652697a7eb96fa969092dc9e5a65a5aeb73df3a45
fbb6afaf6f2448141011a1e07e0e27154dfce1f97fe6bd73ccdac6a1690db4ba35efa4a96f35c3c4cee
34f9ada3b81c14f17b69995d6bfb259d2922262ac5fcdde43f366976506a5abdd7e928a0bab7b7d5
5e19a55975b5bcd6b4d92dfd74514416b0c734459aa3d37fe4693157b3791741b8f2cf962d345b92
01b792e5a1855da54b7b79ae64961b7576dcac31bac4bec9b6d8ab22c55d8abb154a358ff008e86
81ff0031f27fd405de2aff00ffd4f7f62aec55d8ab4caaca55806561420ee083d8e2af36d6f4bd4bca97
3a0dc453412f9274bd5a29c89d8c7369d6f7104d67e9a920ac902c93a95af06853e1ab46a382af4a
c55d8abb15762aec550f7f7d6da658dcea57afe9d9d9c4f71712509e31c4a5d8d06e68062a93791a
d64b4f28e911ca8f14b2402e5e2941578dae4998a303b82a5f8d3156438abb15762aec5583cd696
bf97f79737b616421f26eab27abaac3671aaad8dec868f77e9a01fba96a3d72a3f76ebeb30e2d33aa
a8efcb8bd96f3c97a52dc04175651b69f702365743258bb5b9652a482afe9f353dd597156558abb1
5762aec55d8abb15762aec55d8abb15762aec55897e5ddb5ba68775aa5b397875cd4b50d5a3720
8ac77772e62201ec630871565b8ab1ef2f57f4d79abc0ea30d3fee1f698aa8792853fc43efadde9eb
5fe4c551538ff009dd2c0f71a5de8fbee2d3154fb15762aec55d8abb15762aec55d8aa51ac7fc743cb
fff0031f27fd405de2aff00ffd5f7f62aec55d8abb1551bab5b7bdb69aceee359ad6e11a29e17155747
1c5948f020e2ac62deeb5bf29ac3a76a16d73ad68683d3b5d5ad94cf790c6bf656ee11f1c941f0fad1
0767ff007646a7e3655b3f995e505346bab9461d55f4fbf5607c0830023156bfe565f93bfe5b2e3fe90
2fbfea862aeff009597e4eff96cb8ff00a40beffaa18aaf8ff317cab3bac56d35dcf331a2c5169d7eec49f
61062aa71c1ac79c1e19757b27d1fcb50c8b32e977051af6f1e26e519b808cc914408571172677db
d4f4c068dd565d8abb15762aec55d8abb1561725adaf90751b9d56c6d52dfca5a9b7adac476d1f15
b3bc0286efd38d7fbb91405b86fd8654929c7d5655598413c3730c7716d22cd6f32ac914b1b07474
7155656150411b8231554c55d8abb15762aec55d8abb15762aec55d8ab15d76fe4d7a69bca3a14f
499c18f5bd422dc595bb01ca30c08a5c4aa4ac6a0d63fef9ba22baac9ade086d608ad6dd0456f0a2
c7146a28aa8828aa0780031554c558ce8d73143e6ef32e92c0a5ccbf53d5101e8f0cf00b5aaf8d1ed
583787c3fcd8ab5e4c14ff106f5aeb57bd7fd862a8b9ffe532b1ffb665e7fd445ae2a9e62aec55d8abb
15762aec55d8abb154a358ff008e8797ff00e63e4ffa80bbc55fffd6f7f62ab7d48fd4f4b98f569cb8547
2e35a569d695c55c9247272f4dd5b812afc483461d41a7438aa9ade5a3c71cc9711b432b708a40e
a559c9238a9ad09a8a5062abda5891d237755924a88d4900b5054d077a0c557e2aec55d8aa85cd
ed9d908cde5c456e256e11195d63e4d42d45e4454d0138aaa19635916167512b82c91923910b4a
903a902a2b8aafc55d8abb15762aec55d8abb15762ac5dbc9ab6324d3f95f52b8d09a667924b488

657

25c5834b21a97fabcc1821aee7d168abbf2df15548ec3cf31a707d6f4d99fb48da64c9f80bda62abd6
d3cee082755d2d97b8fd1d38fc7eba7156c5b79d80df53d2c9f1fa85c0ffb1cc5577d5fce9ff571d2fb7
fc78dc7fd9662ad883ce5deff004c3ff46571d7fe92f156fd0f387fcb769bff004873ff00d9562adfa1e6ff
00f96ed37fe90e7ffb2ac55de879bffe5bb4dffa439ffecab1577a1e70ff0096ed37fe90e7ff00b2ac550
7fe1df30dff0025d6fcc729b72e1beada4c0ba72941fb0d2179e6a1ee639236c553cd334bd3f45b08
74cd2ad92d2c2dd424304628a00ee7b927a963bb1dce2a8bc55d8ab1df32dadfdbcd67e64d2207b
abfd339c771631901eeac672beb469c88064528b24553bb27a7b7a95c552afcbbd5adb529bcce2d
5fd4b7fd2ad756d2804092def2de1941a1a152b27a913a300c8f1b2b007154ea723fc65603b9d32f6
83e5716b8aa7b8abb15762aec55d8abb15762aec5528d63fe3a1e5fff0098f93fea02ef157fffd7f7f62
af19fcd3b3f3343f985e57f35f9334c9b51f3068563708d6cab2456d7365a95e5adb4f0cb3f1f4f946a
7eb488cdcbfd1db8aef8ab0ff274be73f29598d2b43b4d592cae35cd55a773a64cc6799fcc76d234f2
b4d017e3358cd3b8919b8320f81b9c78abbf2ee1f3368965a458cd67aadb698b71a6ad8e9f3e9924
969073d73541752057b7261710b40fea129c50a30f87156adfcc1f99ba841a3f992da0b8f315d476a
2f344b8b9d3fd175d5a6d1afd6f2153143120b6e62d7d267e2b24b218d657db8aaceb54d6fcfb6df9
77a5de69d737f757b75a8fa37babfe88956fedf4c9fd531cc74f23d53e9b18524fdd090a7293d31d71
540eaf7df9b5a5db6a5ea4f7b3dac3269ef1eab6f6514d21b6d51615ba31d940924bcaca48e56e0a
646f4e75fef8c78ab1af316b3f9baf63abd87d7f59b8b916d2da896c34a3675f4349b2b93736e238a4
6491ee7d740beb49f69a151cd47155927e6a41773798ed750860bebe8ecbcb7793d84074d3a8da
9d47eb969e8f289ad65513b287fe5915549f845715416a5e65f3a4105deaf6f71aadceab2a798e0d3
95b442c6d7ead7f12d8886965cc09a05e5f19659f8f2eabb2aeb7f3bf9a61f30e83a5de6af7f069e9a
85c5bdc5e5dd83a7ab6ff00a527b7b71774b2e2bf5987d25b796b6ebc959eafcbe155ef38abb1576
2aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb1561fab
e9d0f95f587f39e956404372a22f34456c87d49604ab4775c17edbc04b72a2f3789dbed1445c55de
609d63d5bcafe6eb2ba126911c9258de49091244f69aaaa2c5272151c44f1c1f15681598e2acc315
762aec55d8abb15762aec55d8ab1bd5a69aefcd9e5fd32d5801646e755bff00849a45e8496712d7a
02ef39615ea227c55ffd0f7f62aec55d8ab4406054ee0ec47b1c5542c2c2cb4bb3874fd3ade3b5b1b
7511dbdb42a1238d0745551b003c062a88c55d8abb15762aec552f9f42d16e7528f59b8d3ede4d5
a2558e3bd6894cc1118b2af3a568a492bfca49a62a9862aec55d8abb15762aec55d8abb15762aec
55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8ab13d4bc8f0c8b729a25c8d3ad6f52
54bfd224885c69772665a16782a8d1b772d0491723567e6d8aa1345d635cf2adb5be93e7f963990
7eeed7ccb00716b22860a8977cea6296840e6dfba97af3573c3156690cd0dc4493dbc8b2c320e49
246c19581ee08d8e2abf15762aec55d8abb1563baaf9b6d6dee1b49d1106b3e6323e1d3addc718a
b51cee6501843182372c39764476f871552b6f2d6a569a5decb06a0abe6dd4648eeaef5531031b4
b0b86483d326a2dd547a213973f4d99b9faaccf8abfffd1f7f62aec55d8abb15762aec55d8abb15762
aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb15762aec
55d8abb15592cd142bce691634e9c9c851f79c557d41151d3155bcd39fa7c87a94e5c2bf171e95a7
862ae668cb7a4c57938242122a54501dbc37c558edd7907ca572792e9df53352c4e9d34fa7559b7
25bea92455a9df7c5545bf2f3cb2c287f48d294db57d506df45d62ad0fcb9f2baaf11fa4b8ff00db635
53ff6358ab8fe5cf95cd2a351dba7fb97d53fecab155397f2e3ca6226329d45220393b9d67555a01b
925beb6298aaf83f2e7ca3148b37a177723a84bad4b50bb88fce39ee1d08f9ae2ac8b4fd374ed26d
96cb4bb486cacd4965b7b68d628c1635278a002a4f5c555c4b1104875215b831046cf5a713ef53d3
157fffd2f7f62aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8
abb15762aec55d8abb15762aec55d8abb15762aec55d8abb15790ffce423c09a1794fd56b1490f99
f4f103ead119ec049e9cf4f5d5483e99fda35d86f8ab1af286b9e72b3d27ca9a7797db51b7f2ddb692
b7337aba44fa9bdddc096e96e6da2b888081123a426ce4e7e9490f0f47d643f0aa9bf93b5ff315ff00
9bbd4d42c9ee3cd30e9fa9c5690ea104fa6492e9bf5db1681e491ed12940d250fa542eac9d79362a
966a5ae79e34fd4b588ed24bf93cc63fc472692b36966ea64b68f54d396dc5ab9b625a130c8df0ab
3235158fc698aa2ef7ccff009a765335ac6da9cb677135d5bbea7268b34ef69141a9dd5adbccb0db5
b0697d4896077a2b7c0debaaac7c8e2acafcd9adfe616996fa2cda05949ab5c1d3a67d46de3b6301
6bff4d3d090865741199032cb07ab1caab20911dbd265c558c6997ff9b9aeccb6b6dac5e5ab4fa2ea
17d69713e86fa7429a98302dadbce6fa02c029924245236755f86a10b32adc9e69fcdbbabb89e4b4
bcd0a197461abc565fa2df5377bb952ec3d8b4f0a98e2920296eea24f8a4e4557d5e5c51547f9e24
d761f20e8d71acdedf5d5acba76a52799a492d1634749b48ba9025e431c23d38d242abbaa7160a2
46e78aa4b1eb1f9a163a7341a2dd6a5770e91a6dcdd5806d2032dfbc36ba74b0c2d27d5d548e535
cac6b132bcde9710c5d5aaaaaeafe70fcd5d2eca13a35bea1af6a2b05d4c0b68973676f22bc1a83d
b21596257f55248add1fd47b7e5f07c1fbfe4aaa0acf55d412e2f3f47dcddc9e5793cc7336b37434e7
5bd8ef3958c96f27a46cd8337aaad1345c239bd592393e3e2d8abfffd90000000840010824000000
180000000210c0db01000000030000000000000000000000000000001b40000040000000340000
000100000002000000000000bf000000bf0000af4300001f43030000000000008000000080fe7fe9
430000008000000080fdff53432100000008000000620000000c00000001000000150000000c000
00004000000150000000c0000000400000051000000e0de00000000000000000000d2010000d30
00000000000000000000000000000000000005e0100009f00000050000000f003000040040000a
0da0000000000002000cc00d3010000d4000000280000005e0100009f000000010008000000000
0000000000000000000000000f20000000000000000000000ffffff00fefefe00fbfbfb00fdfdfd00fcfcfc
00e9e9e900d1d1d100a2a2a20074747400606060005f5f5f005e5e5e005d5d5d006161610066666

6006464640063636300595959005b5b5b005c5c5c005a5a5a00696969006767670058585800575
7570079797900a4a4a400d0d0d000efefef00fafafa00f9f9f900b1b1b100787878009d9d9d00adada
d00bebebe00cecece00e1e1e100ededed00e5e5e500e8e8e800ebebeb00eaeaea00ececec00eee
eee00f0f0f000e0e0e000bababa009393930071717100b4b4b400f5f5f50091919100a8a8a800d8d
8d800dfdfdf00aaaaaa007f7f7f00b8b8b800f7f7f700f8f8f800d2d2d200929292008d8d8d00f1f1f100
dadada007b7b7b008e8e8e0082828200dbdbdb00c6c6c60076767600c5c5c5008f8f8f00a5a5a500
8181810099999900f3f3f30095959500b5b5b50087878700dcdcdc00bbbbbb0094949400b9b9b90
0acacac00ababab00aeaeae00a6a6a600a9a9a900b0b0b000cacaca00dddddd007d7d7d008b8b8
b0088888800a3a3a300b3b3b300b6b6b600b2b2b200b7b7b700a0a0a000c7c7c700bdbdbd009f9f
9f0056565600c9c9c90085858500cbcbcb00e2e2e200d4d4d400707070006c6c6c00e6e6e600f4f4
f4008c8c8c00dedede004e4e4e00e4e4e400bcbcbc00d6d6d600d9d9d900d5d5d500cfcfcf004444
440072727200f6f6f60077777700afafaf009a9a9a0097979700808080008383830089898900a7a7
a7009b9b9b007c7c7c00848484009e9e9e00c0c0c000c1c1c100a1a1a1007a7a7a00c3c3c300f2f2
f200e7e7e7006e6e6e0073737300383838009c9c9c004a4a4a00c8c8c8008a8a8a00969696000f0f
0f0029292900555555001b1b1b002e2e2e002c2c2c007e7e7e004949490040404000989898001d
1d1d00333333006d6d6d004f4f4f003a3a3a006f6f6f004b4b4b0036363600c2c2c20045454500414
1410052525200393939001c1c1c00bfbfbf003d3d3d0068686800d3d3d30062626200e3e3e30050
50500024242400656565004c4c4c0053535300757575004747470054545400cccccc0017171700
343434003e3e3e002b2b2b001610000026060f002220574d464301000000000001000000000000
000900000000200000f0bb0000f01b0100d7d7d7002d2d2d004848480027272700cdcdcd00c4c4c
400909090006a6a6a006b6b6b003535350086868600373737004343430046464600252525004d
4d4d003b3b3b001e1e1e0009090900424242002f2f2f00323232001313130006060600202020001
51515000808080014141400040404000707070001010100030303005151510026262600222222
000e0e0e000c0c0c00303030003f3f3f00161616001111110019191900313131001f1f1f000101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
1010101010101010101010101010101010101010101010401011fc06a06c1dac154a6716835b70
90e59c02f0501028fb550d66d861737b15da13ab3d4107804046b86076268c70f8766d9060101cc
77018fafbe5294a7013c01061230cd4badc0b3ec6b4ec0e6456fa2a4a86889941a7e534b3300000
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
1010101010101010101010101010101010101010101010101011e02011eaa60017d5803b0424e
37887c4b962a99016e2f0117240371011b6c01150322a4943b01c12e012892868a1062017a200a
01026dde6228b24604b8cc3904011f6b80013f55414c1d940124c0012e07486e718dba1fca6c1d27
8f0000010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010103a18f9970013c1
55b1c92293018317785024c863c935003b573084c05b704228632245c2601010471bf260e8eca92
300a1e04160f645cbf477a344d570101016f8401445501ce38a10265ce49ca3c37879d641203674f
05120e00000101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
0101010101010101010101010101010101010101010101010101010101010501010101a7a3135
11d030b4fa009ca7a51a4b84c1e010102ce633c76034ace4ed5b89a8b1b40949302017a761e278f
211a1136ec2f27c479985dbc54b13351847501033e3a017422799446765c650d4ba63b63739db8
ae2cb3403ebd730000010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101

659

01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101051e01
be5e0393be011c59857a674d8a1c5d4c01011f1eaed03b322d831a744536aa262f5b5f24013d913
6658d2e653f6564cdbe4f163d24784239a14635a7807f0157d92688bb706237160fa498575f1d695
a3f045c571a6c91962300000101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010104010
10101ce6c016cb701012e3d01012d0502c68f01020201873b013c0101054e011f3c03041f7301010
104042d01011f270103043d05343d7f021e7f0204010305011e72960174814e1e0102023d019201
0103730302022e984a03019100000101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
1010201019119bfd018283d0101010504010204314804040102040128171d01020101010501010
50104030101020203010501010401050101020105020101040101040104020191c850030104040
10101010104010501020101a18a02040500000101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
0101010101020101011f2a7537030502010101020202010577770501020401024e527f02040101
0502010101050401010202010102020201010101010101010101010201010101010101013cb641
0301020501010201050102020102010175b802011e00000101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
1010101010101010101010202010102020105040201010101020202010505010202010101017f0
10101020101010205020101010101020202040101010102040405010101010101010103010101
0302010403040101020304010201010305010502011e010102010000010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010102010101010102010101010101020105010101010501
01050501040104010105010104020102020202020101010101010101010101010102020101010
101020101010203010101010401010204040501010101010101050101011f01000001010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010204050101010101010101010202
04040202010101030403010401010101010102010201010101010202010101020201010101010
10101010101010201050101010201030101020401010101040301021e01010101050101040000
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101

01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010102020201010101010101010
101010201010202010102010102010101020103011f05010101030404040202020201010101010
101020201010101010101010101011f03030301010101030401010201020401010101020201040
10101000001010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101040402020401
01010101010101010104010104010101010301010404010401010101050101020101010101010
204020101010101010101010101020101030101010101040202050201010204010201011f02010
20104020101010500000101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010102010101
01010102010101010101010101010301010301010101040101020105014e2a7c693a7e7e893aa1
1a48800993a7aa7ebe4848099448211a80be94094832aa9409487e110da7160f17705f552f3c4e0
10105010301010401010105000001010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
010101020401010201010101010101010401010101010104040101040201012787844d20533e7
95d526eb838756e26427a46386e6e26755246753875423742522f3746525252c67a42427ac6074
964614c84c101010102020103011e0101000001010101010101010101010101010101010101010
10101010201040501010101010402010104020101010101010101010101010101010101010101
01010101010101010101010101010101010101010101050101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
101010101010101010101010101010101010101010101010401040102020104011e9244885038
01010404010101010101010101010101010101010101010101010101010101010101010101010
10101010101010134908e21620201040104020101010000010101010101010101010101010101
01010101010101010101010202010102010101010401010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010105010205050101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
010101010101010101010101010101010101010101010101010101011e0101030401041f010158
8590021f0101040201010101010101010101010101010101010101010101010101010101010101
010101010101010101010101030102528b5f6e011e0101011e0100000101010101010101010101
0101010101010101010101010101010101010204011f0101010104030101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010102010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101040101040501050101
041e838a730101010101010101040501010101010101010101010101010101010101010101010
1010101010101010101010101010101010105013c01554c3e0504013d011e00000101010101010
10101010101010101010101010101010101010202010102040101010402010101010101010101
0101010101010101010101010101010101010101010101010101010101010101010101021f0104
01010103010101010101010101010101010101010101010101010101010101010101010101010

661

10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
0101010101010101010101010101010101010101010101010101010101010101010101043d010
10301724756093301053d01050401010105020101010101010101010101010101010101010101
0101010101010101010101010101010101010101011e010101011e52715c010502010100000101
01010101010101010101010101010101010101010101010202010102010104030201040101040
10101010101010101010101010101010101010101010101010101010101010101010101010101
010101041e01011f01010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
0102010141678e858a973b0404010101010101010101010101010101010101010101010101010
1010101010101010101010101010101010101010101010101010101041f0101012e89670102040
10000010101010101010101010101010101010101010101010101010202010201010401040201
01020101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010404010405010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
0101010101010401ca0a8a2a036c24010105011e01050201010101010301010101010101010101
01010101010101010101010101010101010101010101010101010101010102010201041e01043
4b546010101000001010101010101010101010101010101010101010101010101020101020102
3c26911e0501010101010101010101010101010101010101010101010101010101010101010101
010101010101010101010105012d522b030401010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
1010101010101010101043474a4750101644b0101030104030101010101030301010101010101
0101010101010101010101010101010101010101010101010101010101010101010101011e040
1010101010242862d010400000101010101010101010101010101010101010101010101010101
0101020104910cad01010401040201010101010101010101010101010101010101010101010101
010101010101010101010101010101050128bb445a3b040101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
101010101010101010101010101011610000026060f002220574d4643010000000000010000000
00000000900000000200000f09b0000f01b0100243a8c010201375e030105010101011e01030501
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101020101020401010101015a5f04020000010101010101010101040106271f0302272
e72011e2c0305272a013c3c2e293c940741012c2a410206011f0103013c270401040103013d2e02
912a4106910227033d012e7727062a2c0641272e382c2772062f402846cd420101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
010101010101010101010101010101010502020101338a2b01030101831c010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
101010101010101010101010101010101010204967c01000001010101010101011f01043fec0633
4262f1bb1d1589b7490f7db817881ae6270f9485b856da2859da404101017cbf137c0192630434bb
d9817ab430bebe7cd6ad01015fa9b348b057f00852c885607620cf3359bfab943c01010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
010101010101010101010101010101040501020101904c7f010102047c6c040101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010501ca861f00000101010101010101020101c63a0
1ef993cec6bc16a2ee6b63f132bbf2e495101a7b8490a2a096fa96eca980404b0a77f550188f00581
a203ad3e9d774b5f330a0303015c1501791a040b7f01092f252101106e6bd0241e0201010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101

01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010205016b451d0105010101617801010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101040101992d00000101010101010101040201
079924e12106af9867bb040a4640b72d9d016d5f01160672c96d7050a838427f0105c0787927010
e1a7a8b8a426e3ca8928b74337e04011f6d1201078934bb730184268c480516724b94cc6303010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
101010101010101010101010101010101010101013c0101012d3a4201010101030648030501010
10101010101010101010101010101010101010101010101010101010101010101010101010101
0101010101010101010101010101010101010101010101010401015b870000010101010101010
1011e01b6cc16444763abadb6b70115424f10776a01b3480415773b9c3e70771259abca013caa3f
aa14750d2e78b316a4ed7cd5924f5130710102015c1601cb8f41bc723daa3867a702bb2c802b818
40101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010203038b50010101040102684801
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010301036f710000010101010
10101010201015d15d3067308ecca66be26c06e60bb6de8538e8b2b1143d568b87e05cb99944e0
1017ccc1a3384a734489856be4306bd84b03745d146033cccac2083cc2f0b0984be06620f940c03
8d5e1499340101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
0101010101010101010101010101010101010101010101010101010201014e5f4e010401010204
a18e3d02010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010102017fa10000010
1010101010101011e0177eeb5020160ef6f7334732b01510c2b4c721f3d01014e5d01388001015d
7305050205416e0177273d2703734601013d06380130b591010164b92e0403010106277f011e1f
42270105425d01020101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101012ba7670105010
50103014842010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010102010401059
a0000010101010101010104010323edb6020142dc5f1e0102011fd50b020405816101040104014d
0f01040401010103010101020501011e020202050102010105027f0104053d544cb561010401048
a7201010102010101020201010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
1010101010101010101010101010101010101010101010101010101010101010101057871a703
010201040101345f1e010101010101010101010101010101010101010101010101010101010101
010101010101010101010101010101010101010101010101010101010101010101010101011e0
1010222000001010101010101010102047575040201045d5d3d010101055c470301037b2502050
1010452b61e02010101010101010101010101010101010101010101010101050101027208ad25
02010134470601010101010101010101010101010101010101010101010101010101010101010
1010101010101010101010101010101010101010101010101010101010101010101011e010101
04010401010101010202020504010101010102010101010102040402010204010104010102020
10102010101010101010101010101010101010101010101010101010101010101010101010102
0201010101010201020401010102010101010101010101010101010101010105010104013d015
04550331e0101010105012b881e01010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
101010102010101610000010101010101010101050104040105010105010102020101011e011f0
101020101010501053c01020101010101010101010101010101010101010101010101010202020
101910101010104013d0104050101010101010101010101010101010101010101010101010101

663

01010101010101010101010101010101010101010101010101010101010101010101010101010
4011e0501011e0102020405050201010101010202020101020202010101010101010101010101
01010202010102020101010101010101010101010101010101010101010101010101010101010
10101020101040101011e021e010101020401010101010101010101010101010101010105017f0
1030120a13c6c30010302010105012a22050101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101020101016100000101010101010101010502010102050104010101050101020
501011f0105011e020103020101010101010101010101010101010101010101010101010101010
10101011e0101011e02011f0101011e01010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
010101013c01011e01030101010101010102020502010101020201010101010101010102010102
01010201020101020201010202020202020202020101010101010101010101010101010102020
2020202020201030501011e040101050501040201010101010101010101010101010101010101
05050103015a5e7f2dc827010101050105012c6602010201010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010102010101610000010101010101010101010201010201010101050401
01010402010101011e01010201010502020301010101010101010101010101010101010101010
10101010102040101050205010501010205050101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
101010101010101010101050104010201053d34734e4e914e347f73411d1d2e2d2d2d1d2d2d272
7271d2d271d2d271d2a27272a2c2d2d2c2c2c2c2c2c2c2c2c27272727272727272727272727272
7272727272727272727340301010501011e1f01010301010502010101010101010101010101010
1010104010105046e8f1d015ccd01010101010104012c080101040101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010201010161000001010101010101010401010101010104010
10101010505010101010301020102010501010101010201010101010101010101010101010101
01010101010101010104050102010501010401040201011f010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
101010101010101010101020502010429ca54433a514431314a7474745f5f74cc9a88cc35549a83
83839aa482a4834d4d834d968b8b228b668e691b1b1b1b1b1b1b1b4b4b4b4b4b4b4b4b4b4b4b4
b4b4b4b4b4b4b4b4b4b4b4b4b741a3a2092030501011f020101010504010101010101010101010
101010101010401030101606d0103683103023d01020102012a08010102010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101020101016100000101010101010101010203040403
02010301010204020101020301010101040401030101050101050101010101010101010101010
1010101010101010101010101010401010101050104031e010201010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
101010101010101010101010101010101036ba1858763795d2b3403033c4e1f3d3d7f7f3d03023d
1f0304020204050201010201010201040101010101010102020202020202020101010101010101
010101010101010102020202020202023cb84750888f962e7f01010401050101010101010101010
10101010101010101010201028c8b010501818701010104010101012b080101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010201010161000001010101010101010104010
1010104010101010101010105011e050102010101010101010305010101010101010101010101
01010101010101010101010101010201010101010102050101010101050101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
010101010101010101010101010101010101303a35ca0101050101020404040101050201010101
01010201010101020202020102040101040102040201010202010101010101010101010101010
1010101010101010101010101010101010101010101030301725686223c011f010102010101010
10101010101010101010101011e0301034526010401585701050103010101012b080102010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010201010161000001010101010101
010101010505010101011e0401020201010201010104020101050103040101010501010101010
1010101010101010101010101010101010101011e010401040401010104010401040201010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101015b89980101050301040201010204040202
02040404020202010102020201010102010102010102010101010101020401010101010101010
1010101010101010101010101010101010101010101010101050401010501013c5e9ab80101010
50101010101010101010101010101010101010103528b01020104205004040101040201012b08
01020101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101020101016100000101
01010101010101010101010101010101010101010101010101010101010101010501050102010
10101010301027f5d6d7853687853786868686868686868686868686868686824685368adc1770
10401340101010103010101010101010101010101010101010101010101010101010101010101
010101010101010101010101010101010101011e010402012d89cc3d011f010501010101010101

01010101010101010101010101010101010101010101010101010101010101010101010101010
101010101010101010101010101010101010101010101010101010101010101010101010101ca4
37801011e0101010102011e010201010101010101010104019490040201012062010204010101
01012b08010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010201010161
00000101010101010101010101010101010101010101010101010101010101010101010402010
40105020504010402c166cc898a403fcc4444cc444444444444444444444444444444444a4a4a4a
746c51cc5a2a010105010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010103011e0104c68f8d1e01031f0104020101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
101042c313b1f0104040402050104010201010101010101010104b80e7f04010201206201020201
010101012b0801010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101020101
01610000010101010101010101010101010101010101010101010101010101010101010101040
10104010101010105739970493c1e0101010502010101010101010101010101010101010101020
10101011e734e9ab053040101031f0101010101010101010101010101010101010101010101010
101010101010101010101010101010101010101010101010201017f3ca15d01011f020101020401
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
010101050102028467011e01010103010101010101010101010101040153cc0101010201646201
010101010101012b0801010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
02010101610000010101010101010101010101010101010101010101010101010101010101010
1010101050401040201046d435302010401010203020101040101010101010101010101010101
0101010102010101010201b84d847303010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010102012e946b0102050501
01040103040101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
010101010101010101017f012b7438010201010405010101010101010101010103018779730101
0101646201020201020101012b080101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010201010161000001010101010101010101010101010101010101010101010101010
10101010101030101040104030102593f2d0101010301010101020505050101010101010101010
10101010101010101010104020205010102672179010101010101010101010101010101010101
0101010101010101010101010101010101010101010101010101010101010101021e015b23010
30101010404010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010405010305b8cd92011e010102010104010101010101010101016
17201050104015b2001020201020101012b080101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010201010161000001010101010101010101010101010101010101010101
0101010101010101010101010401011f0101084d030103011f0101010101010201010101010101
01010101010101010101010101010102020101020101057584380401010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010501
6f8f0401050104010101011e010501010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010102020101010524960101030101040401010101010101
0101010188280105020205238102020101010101012b080101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010201010161000001010101010101010101010101010101010
10101010101010101010101010101010103010102011c431e011f01011e0101040201010104050
101010101010101010101010101010101020101050401010102030103b65f3d010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010127ccc1010501020402030401010104010101010101010101010101010101010101010101
0
One possibility is to have a queue per priority level (Dibble, 2002b) where each queue has an
associated server. If the handlers do not block, the analysis model is quite simple but pessimistic. To
analyze the response time of a particular handler, it must be assumed that all other handlers at the
same priority level are ahead of it in the queue. Again, to circumvent unbounded priority inversion
when the handlers block, it is necessary to dynamically create new servers (or take them from a pool)
as and when necessary.

665

The main disadvantage of this general approach is that the application's programmer is not aware of
the mapping; and consequently the application must still assume that there may be contention for
shared resources between handlers.

11.10 Summary
Event-based systems are supported in the RTSJ by the AsyncEvent and AsyncEventHandler
class hierarchies. Events can have many handlers, and a handler can handle many event
occurrences. Events can also be associated with external happenings such as interrupts. If the realtime virtual machine is being implemented on top of a POSIX-compliant operating system, event
handlers can be associated with the occurrence of a POSIX signal. Periodic, one-shot timers along
with interrupt handlers are also supported.
Event handlers are schedulable entities and consequently can be given release and scheduling
parameters. They compete with real-time threads for processor time according to their associated
scheduler. They can be defined to be of the "no-heap" variety, in which case their execution can
safely preempt garbage collection.
The RTSJ allows considerable freedom in the implementation of event handlers. This chapter has
considered various models from the simple thread per handler model through to multiple server
threads. Most models have their advantages and their drawbacks. Implementing the RTSJ eventhandling model in an efficient and predictable manner is a major challenge for vendors; of particular
concern is the implementation of cost enforcement and deadline monitoring.
Furthermore, if programmers are going to design efficient and analyzable eventbased systems, they
need to have a good understanding of how the model has been implemented. They will also need to
have some control over the allocation of handlers to server threads.

Chapter 12: Real-Time Threads


Overview
Introduction and chapter structure
For nontrivial real-time systems, it is necessary to model the activities in the controlled system with
concurrent objects in the program. While conventional Java supports the notion of a thread that can
be used for this purpose, in practice Java threads are both too general and yet not expressive enough
to capture the properties of real-time activities. For example, most real-time activities have deadlines,
yet there is no notion of a deadline in Java. Real-time activities are also usually characterized by their
execution patterns: being periodic, sporadic or aperiodic. While all these patterns can be represented
in Java, it can only be done by coding conventions in the program. Such conventions are error-prone
and obscure the true nature of the application. For these reasons, the RTSJ introduces the notion of
real-time threads. Although the classes that support real-time threads are presented as subclasses of
the Thread class, this apparently simple relationship is a little misleading, as support for real-time
threads (and some of the other RTSJ classes) require fundamental changes to the Java virtual
machine. They are not just a library extension. Also, some of the methods that are provided by the
Thread class are defined as final and, therefore, cannot be overridden, but have applicability to realtime threads; these have to be redefined; for example, Thread.setPriority(). Unfortunately, the
notion of thread groups is not carried across very successfully to real-time threads.
This chapter discusses the RealtimeThread and NoHeapRealtime-Thread classes and how
they can be used with the ReleaseParameters class hierarchy to implement periodic, sporadic and
aperiodic activities.

12.1 The Basic Model


The RTSJ defines two classes to support real-time threads: RealtimeThread and
NoHeapRealtimeThread, the latter being a subclass of the former. Real-time threads are
schedulable objects and, therefore, can have associated release, scheduling, memory and processing
group parameters. A real-time thread can also have its memory area set.
Important By default, a real-time thread inherits the scheduling parameters of its parent (that
note
is, the Java thread or schedulable object that created it). If the parent has no
scheduling parameters (perhaps because it was a Java thread), the scheduler's
default values are used. Other parameters default to those of the associated
scheduler. See Section 10.3 for the default values for the priority scheduler.
The RealtimeThread class
The following defines the various constructors associated with the RealtimeThread class.
package
javax.realtime;
public
class
RealtimeThread
extends
Thread
implements
Schedulable
{
//
constructors
public
RealtimeThread();
//
The
following
constructors
throw:
//
IllegalArgumentException
if
the
parameters
are
not
//
compatible
with
the
default
scheduler;
//
IllegalAssignmentError
if
there
is
a
conflict
in
the
//
memory areas of the parameters and the new
//
RealtimeThread.
public
RealtimeThread
(SchedulingParameters
scheduling);
public
RealtimeThread
(SchedulingParameters
scheduling,
ReleaseParameters release);
public
RealtimeThread
(SchedulingParameters
scheduling,
ReleaseParameters
release,
MemoryParameters
memory,
MemoryArea
area,
ProcessingGroupParameters
group,
Runnable
logic);
//
Methods
which
implement
the
Schedulable
interface

667

//

see

Section

10.2.
...

}
As the RealtimeThread class implements the schedulable interface, there is a set of methods for
meeting its requirements. These methods have been described in Section 10.2.
The next set of methods deal with memory areas. As mentioned in Chapters 7 and 8, a real-time
thread can enter into one or more memory areas. These areas are stacked, and the stack can be
manipulated by the owning thread only (hence why the methods are declared as being static [1]). Only
getCurrentMemoryArea can be called from a Java thread the others will throw a
ClassCastException.
The getCurrentMemoryArea method gets the memory area that is currently being used for object
allocation. The getOuterMemoryArea allows memory areas lower down the stack to be accessed.
A real-time thread inherits a copy of the memory area stack of its parent. The
getInitialMemoryAreaIndex method allows a thread to determine the depth of the stack that it
was initially created with. Finally, getMemoryAreaStackDepth allows the current depth of the stack
to be determined.
In contrast, the getMemoryArea can be called by schedulable objects other than the owning realtime thread. It returns the default (initial) memory area used by the real-time thread. Memory
allocation will occur from this area unless the real-time thread has entered into any new memory
areas,
or
unless
it
explicitly
requests
allocation
to
occur
elsewhere.
package
javax.realtime;
public
class
RealtimeThread
extends
Thread
implements
Schedulable
{
...
public
static
MemoryArea
getCurrentMemoryArea();
//
The
following
methods
throw
ClassCastException.
public
static
MemoryArea
getOuterMemoryArea
(int
index);
public
static
int
getInitialMemoryAreaIndex();
public
static
int
getMemoryAreaStackDepth();
//
The
following
method
was
added
at
Version
1.0.1
public
MemoryArea
getMemoryArea();
...
}
Although RealtimeThread extends Thread, it only overrides, overloads or redefines a few of its
methods. The interrupt method is redefined so that it can implement asynchronous transfer of
control (see Chapter 13). Two new sleep methods are defined to interface with the new time and
clock classes. The start method is also redefined so that it can record that any associated memory
area has now become active. The real-time counterpart of Thread.currentThread is defined to
allow the currently executing real-time thread to be identified. An exception is thrown if the currently
executing thread is not a real-time thread (it may be, for example, a conventional Java thread) [2].
Finally, the redefined getPriority and setPriority methods are shown, which allow the
expanded
range
of
real-time
priorities
to
be
used.
package
javax.realtime;
public
class
RealtimeThread
extends
Thread
implements
Schedulable
{
...
public
void
interrupt();
public
static
void
sleep
(Clock
clock,
HighResolutionTime
time)
throws
InterruptedException;
public
static
void
sleep
(HighResolutionTime
time)
throws
InterruptedException;
public
void
start();
public
static
RealtimeThread
currentRealtimeThread();
//
Throws
ClassCastException.
//
The
following
methods
re-defined
the
methods
in
the
//
Thread
class,
they
are
given
here
for
reference.
public
final
int
getPriority();
//
Equivalent
to
getSchedulingParameters().getPriority().
public
final
void
setPriority
(int
newPriority);
//
Equivalent
to

//

getSchedulingParameters().setPriority

(newPriority).
...

}
The final set of methods are for the special case where the real-time thread has periodic release
parameters. The waitForNextPeriod method suspends the thread until its next release time
(unless the thread has missed its deadline see below). The call returns true when the thread is next
released. If the thread is not a periodic thread, an exception is thrown.
The deschedulePeriodic method will cause the associated thread to block at the end of its current
release (when it next calls waitForNextPeriod). It will then remain blocked until
schedulePeriodic is called. The thread now suspended is waiting for its next period to begin,
when it is released again. Of course, if the associated thread is not a periodic thread, it will not call
waitForNextPeriod and, therefore, deschedulePeriodic and schedulePeriodic will have
no effect. When a periodic thread is "rescheduled" in this manner, the scheduler is informed so that it
can remove or add the thread to the list of schedulable objects it is managing.
package
javax.realtime;
public
class
RealtimeThread
extends
Thread
implements
Schedulable
{
...
public
static
boolean
waitForNextPeriod()
//
Throws
IllegalThreadStateException;
public
static
boolean
WaitForNextPeriodInterruptible()
throws
InterruptedException;
//
Throws
IllegalThreadStateException.
//
An
interruptible
version
of
waitForNextPeriod.
//
Added
at
version
1.0.1.
public
void
deschedulePeriodic();
public
void
schedulePeriodic();
...
}
The
waitForNextPeriodInteruptible
method
has
the
same
semantics
as
waitForNextPeriod except that it throws the InterruptedException if the real-time thread is
the target of an asynchronous transfer of control request while the thread is waiting for its next release
to occur.

12.1.1 Cost overrun and deadline miss for periodic real-time


threads
Recall from Section 10.4.1, the ReleaseParameters associated with a real-time thread can specify
asynchronous event handlers that are released by the system if the associated real-time thread
misses its deadline or overruns its cost allocation (budget). In version 1.0.1 of the RTSJ, the cost
overrun and deadline miss model is underspecified, particularly for asynchronous event handlers (see
Section 11.3) and for real-time threads with sporadic and aperiodic release parameters (see Section
12.3). The model is, however, coherent for real-time threads with periodic release parameters (called
periodic real-time threads below).
Under the priority scheduler, a cost overrun results in the periodic real-time thread being immediately
automatically descheduled (that is, it becomes not eligible for execution) and any cost overrun handler
released. The real-time thread will not be rescheduled (made eligible for execution) until either its next
release occurs (in which case its CPU budget is automatically replenished with the cost value) or its
associated cost value is increased. In contrast, if the real-time thread misses its deadline, the thread
is not immediately descheduled (unless it has also suffered a cost overrun). Any associated deadline
miss handler is released at the point the deadline expires. If there is no associated handler at the
point, the deadline miss occurs, a count (called deadlineMiss) of the number of missed deadlines
is incremented.
The waitForNextPeriod (wFNP) (and waitForNextPeriodInterruptible) method (under
the default priority scheduler) has the following semantics:
When the deadlineMiss count is greater than zero and the previous call to wFNP returned
true, wFNP decrements the deadlineMiss count and returns false immediately. This
situation indicates that the current release has missed its deadline. At this point, the current
release is still active (this means the current budget is unaltered).

669

When the deadlineMiss count is greater than zero and the previous call to wFNP returned
false, wFNP decrements the deadlineMiss count and returns false immediately. This
situation indicates that the next release time has already passed and the next deadline has
already been missed. At this point, the current release has completed and the next release
is active (and if it has not been allocated already, a new budget of cost is allocated).
When a deadline miss handler has been released and the deadlineMiss count equals
zero and no call to the schedulePeriodic method has occurred since the deadline miss
handler was released, wFNP deschedules the real-time thread until a call to the
schedulePeriodic method occurs; wfNP then returns true at the point of the next release
after the call to SchedulePeriodic. At this point, the next release is active (and a new
budget of cost is allocated).
When the deadlineMiss count equals zero and no deadline has been missed on the
current release and the time for the next release has passed, wFNP returns true immediately.
At this point, the next release is active (and a new budget of cost is allocated).
When the deadlineMiss count equals zero and no deadline has been missed on the
current release and the time for the next release has not passed, wFNP returns true at the
next release time. At which point, the next release is active (and a new budget of cost is
allocated).

A call to the schedulePeriod method sets the deadlineMiss count to zero Note that the
fireCount for the deadlineMiss handler indicates the number of deadline overruns that have
occurred.
1. If the programmer has set up the appropriate deadline miss handler, the RTSJ assumes that
the handler will take some corrective action and then (if appropriate) reschedule the thread
by calling the schedulePeriodic method. In this situation, waitForNextPeriod returns
at the next release time following the call to schedulePeriodic. All releases in between
are lost.
2. If the programmer has not set up the appropriate handler, the waitForNextPeriod method
will not deschedule the real-time thread in the event of a deadline miss. The RTSJ assumes
that in this situation the thread itself will undertake some corrective action and then call
waitForNextPeriod again. In this situation, the application may suffer a cost overrun if the
time to handle the condition has not been accounted for in the cost parameter.
3. If a cost overrun occurs and no overrun handler is present, usually the only way for the
periodic real-time thread to be rescheduled is when its next release occurs (unless some
other event has occurred that implies that the real-time thread will overrunin which case
another schedulable object might increase the cost). This has the effect of giving it a new
CPU budget of cost units. In this case, the periodic real-time thread will probably miss its
deadline (particularly as the default priority scheduler requires that the deadline be less than
or equal to the period).
4. Application-level calls to deschedulePeriodic take effect when the current release
completes and all deadline misses have been accounted for (even if the next release has
already occurred).

Example
Consider the following periodic real-time thread with deadline less than period illustrated in Figure
12.1
010009000003188a000000007b3a000000001610000026060f002220574d46430100000000000100
0f1c000000000500000000200000f47d0000f49d0000010000006c0000000000000000000000d2010
0006c00000000000000000000006a400000010f000020454d4600000100f49d00000c00000001000
0000000000000000000000000000005000020030000c40100001a01000000000000000000000000
0000e3e306006e4e0400460000002c00000020000000454d462b014001001c00000010000000021
0c0db010000006000000060000000460000006427000058270000454d462b224004000c00000000
0000001e4009000c00000000000000244001000c000000000000003040020010000000040000000
000803f214007000c0000000000000008400005b0260000a42600000210c0db01000000000000000
0000000000000000000000001000000ffd8ffe000104a46494600010201004800480000ffed077a506
86f746f73686f7020332e30003842494d03ed00000000001000480000000100010048000000010001
3842494d040d000000000004000000783842494d03f300000000000800000000000000003842494d
040a00000000000100003842494d271000000000000a000100000000000000013842494d03f50000
00000048002f66660001006c66660006000000000001002f6666000100a1999a0006000000000001

003200000001005a00000006000000000001003500000001002d000000060000000000013842494
d03f80000000000700000ffffffffffffffffffffffffffffffffffffffffffff03e800000000ffffffffffffffffffffffffffffffffffffffffffff03e
800000000ffffffffffffffffffffffffffffffffffffffffffff03e800000000ffffffffffffffffffffffffffffffffffffffffffff03e80000384249
4d0408000000000010000000010000024000000240000000003842494d041400000000000400000
0023842494d040c0000000005ea00000001000000700000001a0000015000002220000005ce0018
0001ffd8ffe000104a46494600010201004800480000ffee000e41646f626500648000000001ffdb0084
000c08080809080c09090c110b0a0b11150f0c0c0f1518131315131318110c0c0c0c0c0c110c0c0c0c
0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c010d0b0b0d0e0d100e0e10140e0e0e141
40e0e0e0e14110c0c0c0c0c11110c0c0c0c0c0c110c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0
c0c0c0c0c0c0c0cffc0001108001a007003012200021101031101ffdd00040007ffc4013f00000105010
10101010100000000000000030001020405060708090a0b01000105010101010101000000000000
00010002030405060708090a0b1000010401030204020507060805030c330100021103042112310
54151611322718132061491a1b14223241552c16233347282d14307259253f0e1f163733516a2b28
3264493546445c2a3743617d255e265f2b384c3d375e3f3462794a485b495c4d4e4f4a5b5c5d5e5f5
5666768696a6b6c6d6e6f637475767778797a7b7c7d7e7f711000202010204040304050607070605
350100021103213112044151617122130532819114a1b14223c152d1f0332462e172829243531563
7334f1250616a2b283072635c2d2449354a317644555367465e2f2b384c3d375e3f34694a485b495c
4d4e4f4a5b5c5d5e5f55666768696a6b6c6d6e6f62737475767778797a7b7c7ffda000c03010002110
311003f00ee28eb4dc661c76d6c706596365d71274b1ff4b731eeff00a48edebbb9c1a2aac9240d2d9
3af87e8d68fd9b1a49f4992752768e4fc966f57e84ceab45b817b28fd9f735bb99b087973773db2f6b8
7b1968a2c494e8dc6bb2a7d7ea6c2e696ee6ba1c247e6bbf35ca8e7e5578d99896c8b08aee6897ed
07f9824bb6fb1fc7ee2b38986f631df6af4ad738e819586b5a008dade5dfe7a3fa140e2b6ff9a12539a3
aeb489d8cffb77ff003056b03a8b332bb1e40af63f67d20e07dacb3735dedff488b7d0e34bc630ad974
7e8dd6337327b6f6b0b1db7fb6b2717eaf6462e5db918f65141cdbfed1d40d743775a41b36ed2fddb3f
44ead8ff00f85f5f27f9ec8bbd54a75ab158b6e77aa5dea91ed2f9021a1bfa26ff0083fecac8c3ebacaf16
9ad95336b58d0d9ba4c01e6c2b6fd1a470c6fdc13ec67ee8fb925398ceb81f656c15b0fa8f6b34b6637
10dddf406edb2af649aeda2cac5a585cd23756edae1fd57fbb6aa1d5fa27ed661c7c9143f11ae65b556
fab7116d72eadef739db5ecf576fb1adafd4a7d5c7b3f4572bb8b45eda9df6c7b6eb5ce2e25ad01a01f
a35b7f92dfe5a4a6be666d58f9b511b5cf34d8773acda203e86c6c8737ddea2667586bbf36bff00b77ff
305a3b5a3803ee43bd971a8fd98b1b769b5d634b9bcfba5ac731df47f949291e266b7218f73b6b363c
b043838180d3ba61bfbc9bd7c4c3a5f6e46435957a926cbac100d8edac66fb36eddd63b6555ff00d6e
b55307a23702eb2cc635d432ee3939c5acf75b696ed7ba5db9b5b1f1bb6b1bfe91ffe195acce9f565b4
57641a3735cfa5d5d6f638b5dea30b9b75767d17fbd253ffd0f47664e45388c71aedcdb5d63da76060
7686c3b9db8d55318d6b3625f6fcdfb45751e9f68adce2d7ddbab21a34dafdad7bac737f7fff00462b38
dfcd7e6fd27fd0e3e93bfd5c8a929a07a86682f9e9d710d20376baa3b87ba5deeb59fba8f79b9f8cc75
6ff00b358e7564921ae206f67a957b8ecfd237f43ff009ed5850b3e8f7e5bc7c424a4593765d4fac63e3
fda1ae0ef50ef6b36c09668ff00a7ea7d142c5c9ea763c37270852d2f70de2d6b8060fe6dc40f76f72ba
924a52c7eb15751cab283455915b70b21b7cd17b6af5c31a7f577b7dcdb316c73bf4d5dde8ff36b612
494e764f51cbc7a71dcfc7adb75cc2eb6a363886386cf636cae8b1b67b9fb377e8956a7ade5df50b1b
556c0e05e37faad2035db1ccb19e87b77fe63ff00e2ff00575b4924a72713a9754cc69b69c5a852d3b3
df63838b84ee2ddd4b7f46c77fdbaaf62d99af73fed54b29680dd9b1e5f24cfa9bbd95eddbed5612494
a49249253ffd93842494d04060000000000070005000000010100ffee000e41646f626500644000000
001ffdb008400040303030303040303040604030406070504040507080606070606080a080909090
9080a0a0c0c0c0c0c0a0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c010405050807080f0a0a0f
140e0e0e14140e0e0e0e14110c0c0c0c0c11110c0c0c0c0c0c110c0c0c0c0c0c0c0c0c0c0c0c0c0c0c
0c0c0c0c0c0c0c0c0c0c0c0c0cffc00011080052015e03011100021101031101ffdd0004002cffc401a2
0000000701010101010000000000000000040503020601000708090a0b010002020301010101010
0000000000000010002030405060708090a0b100002010303020402060703040206027301020311
0400052112314151061361227181143291a10715b14223c152d1e1331662f0247282f12543345392
a2b26373c235442793a3b33617546474c3d2e2082683090a181984944546a4b456d355281af2e3f3
c4d4e4f465758595a5b5c5d5e5f566768696a6b6c6d6e6f637475767778797a7b7c7d7e7f73848586
8788898a8b8c8d8e8f82939495969798999a9b9c9d9e9f92a3a4a5a6a7a8a9aaabacadaeafa110002
020102030505040506040803036d0100021103042112314105511361220671819132a1b1f014c1d1
e1234215526272f1332434438216925325a263b2c20773d235e2448317549308090a18192636451a
2764745537f2a3b3c32829d3e3f38494a4b4c4d4e4f465758595a5b5c5d5e5f5465666768696a6b6c
6d6e6f6475767778797a7b7c7d7e7f738485868788898a8b8c8d8e8f839495969798999a9b9c9d9e9
f92a3a4a5a6a7a8a9aaabacadaeafaffda000c03010002110311003f00f56f943fc6e7cffae6a1aa5ccb2
585e0b4177a0492a343a623c123c0d091c8171c785c706e323c9ea2fc31eeabd4715762aec55d8ab
b15762aec5503ac6a96da2e9b71a9ddf2315bad446942f23b10a91a02455dd88441dd88c558ef903c
cfad6bf61341e67b386c7cc36aeed34568cf25abdbbcd2a44d1bba8248f4da390767427ecb262ac8b5
87d4e3d32e4e8d1a4baa14e168b29023591c850ef522aa95e6c06ec178aef8ab07fca08bcc769a14d
69ac5f4dacd8fd6afded757bb901b932aea17314d13a53640504915090aafe96cb1ad557a362aec55
d8abb15762aec55d8ab06fcc7f367987cbf6f6369e52b382f75cb9b9b66956ecbadba59b5d430382c9

671

5a492994450f6e459cfc319c5596e95a95beb1a75aea76a1841751aca8920e322f21babaf6653f0b0e
cd8aa4de7b8356bcf2dddd86952b5b0ba4923bebe8a4314d6f68236695a165dc4ac07a71b0fb0cfea7
ec62aa7f97b16ad6be54d3acf5591ae7eaf0429677d23fa935c5a9851a36949dfd4507d3727edb27a9
fb78ab29c55d8abb15762aec55d8abb15625f991e67bff002b7956faf3468966d7e482e0696b2a3bdb
a4b0c124e659f80da38d23676e9ce8230793ae2a9a795b58b9d6b4686eb50b6fa9eab1d60d46d6bc
963b88f66e0c36646d9d1bba32e2ac67f3534dd5b58d32c2c2d6fa6d2f4afafd83de5e59cad0dd34a6f
ade386352943c0163249b8e5e9ac7f65df15665a4b6a4da6db1d61123d50205bb109ac6645d8b278
2b53901fb35a62a8dc55d8abb15762aec55d8aa85e5dc361693decf5f42de36964e20b3714058d00d
c9db618ab0ef20799bcc7accdabda79a2d62b7b986f2e5b4e36cade98b38e4f4c432b12419e13b484
1e2fc9597156718abb157ffd0f51ea1e78b9f2cfe6079a6dadf449752578f4d76992e608154fa0fb5252
09dbc315449fcddd5035079467a6c6a750b11de87f6cf4c55747f9b3abcacc17ca336dd09bfb415a75
ea6b8aae3f9abac8084f94a41c81241d46d010075a6f434f6c55c3f3535a23fe512903569c4ea3695fb
ab5c55521fcd5be177610dff0096a4b5b5bdbab5b23722f6de5f4e4bc9d60525569c806715e27a74ae
2af4ac55d8ab4403d7154269725a4b64b258c260b7e72858993d321848c1cf1ff29816f7eb8aa33157
90793bceda8699a3c961068eb750c3a96ac8271791c64ffb93b9ea85091f2df154f7fe5646a3575fd02
b540c4d6fa3a7c3ff003cfbe2ada7e636aae392f97d02f5e4d7f1814a78888f7db156cfe61eb21791f2e
a8d89defd06c3fe7962ab1bf3275347657d01005342df5e5a74aedfbaa9e9db1546796ff30ff4ef9853c
b973a6fd4aee4b39ef91d6e1271c2da586260c02a904999698ab37c55d8aa5faccd69059a497b68d7
909b8b5410a46252247b88d639389e823721cb7ec05e5db154c31541eaa396977cbe36f28fbd0e2af
28f297e6cdfde794b40beb6f2fa7d56ef4eb39a0e7a828938490a11c944068684577c5536ff0095a7ac
7066ff000dc7c94d381d41437dde857155c3f347557a70f2f4441155ff00720373e1fef3e2aa91fe65eb
0e057cbd12b134e2750dfee16f8aaf3f98fab80c7f40c1c4568dfa4280d3dfeafed8aa63e54f3dcbe63d6
aeb44b9d356cae2dad23bd1247702e5192495e2e27f771956052bf2c5599e2aec5505accd6f6da46a
171776cd7b6b15b4d24f671a095e68d6325a3543b31603885fdae98aa26065682364431a32295422
85411b0a76a62ac1bf397cc51f94bf2fafbccd35bb5dc5a55de9772d6b1b08de40ba95b0e2198102b5
eb4c55524f3c6ba8ccbfa0adcf134db51dea3dbead8aa9b79f75a14a68509a8aed7e694a57fe59b155
c7cf7ad0241d0edc0de84ea06869d77fab62aa8be75d7986fa15ba91f681d40edff4ed8aaa0f37ebe41
2743b7a76a5fb1ffb15c5534f2af991fcc90ea466b3fa95c6997ad6134625f59199618a6e6adc5362250
375ea0e2a9fe2aec5501a55c41711dd34166f6623ba9e291648c466578dcab4a29d55fed06fdac551f
8abb157ffd1f477996166f3ff0099a40a68469c3981b02b6c48dcff000c550325ab97ac40f226a0f5a81e
26beddff00862abede17608a39d549dc0ad4d29b8e829e2315462c442921285be13504061dbdfb74f
e98aa988e4aab0278ec406141b787bfd18aa03578da9a6d5883fa6f4421695ad754b6fbab4ff318abe
82c55d8abb154358c9772db07be845bdc9670d12b730143b04351e2a037d38aa2715782e8514ad6
13371ffa58eaca3af41a9dd56b5d86de3fd315473c57018131eca58b291beff6b60093fc7157436d335
62a935a52a3720034dfc0d7f1f962aaed14b1c3c072e6a480854f21b7ed11438aa0ae62946ebc8d08
2955269d81a8c550fe4988c7f9e16750c0b7957526a302080da9589a1afbe2af7ac55d8aa16fe4be8e
dc369d0a4f73eac2a6391b82fa4d2a895abe2a85980ee453154562a85d4ffe39b794ebe84bff001038
abe6ff00cb68a61f96fe4e2a9b1d174f239f706d536a8fd7f762ac80c0eacbc958163462431a8535a303
e3edd31554114a118ba9e15525a8c4022bb6dbd057154581294e68cdf0ad0965f869d37dba9ebb62
ad3a4a23509cb8494fd921496ef5a771f7efed8aa61f9768c3cfda948568afa2db1534a6df5b9a9ec7e
63157ae62aec550ba93df45a75dc9a5c493ea690c8d650cadc2379c2131abb0e8a5a809c555e132b
45199d42cc5419154d406a6e01f9e2af27ff9c9ba7fca91f3354d073d377f0ff7276bbe2a8bb967491d7
8074e4cd5dc54926a4ec48ff3f0c55024b062137e5d6a2943e276eb8aaa2195a245afc6b4dcd6a5695
ef4dc7be2a985b824127931077a7507b6fd0e2aab319090515e9bd540277efb53e8ef8aa33f2d811fe
2ae4083fa71f66ea3fd06cfeff9e2ace715762a83d39f5278e73aa4514322dc4cb6c2162e1ad8391133
57a332d0b0ec71540f9c3ccb67e4cf2a6b7e6ed422927b0d0acae352ba860a195a2b58da5709c881c
88534a918abcdec7fe7287f25b52fcbbd53f332c3cc2b3e87a2c314daad8a213a9db99e5482347b5fb
60b4b22461bfbae47fbce3f162aff00ffd2f66eabf957e42d6f55bad6f54d205c6a97a50dd5c19ee54bfa
6bc16aa9285d86c36c550a3f26bf2d01e43414ad6b533dc9ebff003d715565fca4fcbb41c53438c0350
409a7efd7fdd98ab47f28ff002edbed688847bcd707f5cb8aae1f94bf9760d7f414448f19263d3e7262af
90bfe734ff0027b5cd0edf42f3cfe52de5fd9da89e0d3358d134dbdb80ab712cabf52ba8e3121e24c84
46c453e2f45baf238abe95fcaafc9db1f26f90f47d17ce9a85cf987cdc2113eb5aa5fdf5c4d23dd4df13a
2334bfddc67f771ff92bcbed31c559b47e43f28301247601d7f6584f3b0ff9398aafff0001f94ffeadc3fe4
6cdff0035e2aa707e5ff95a28c24966666ab1f51e5941a16240f8580d81a0c5553fc07e53ff00ab70ff00
91b37fcd78aa0c7e567e5f28a2e816cabc99e80381c9db9b1a06eacc791f13be2aeff9559f97bd7fc3f6
dd6bd1faff00c162ad8fcaefcbe0411e5fb5aaf4d9b6a7fb2c55b6fcb0fcbf60c1bcbf68c185181526a3af
738aa9bfe567e5d6f23f97acc5372c548fb2295ad7c3157c232ffce3b79f62ff009ca78bc95a679a7538f
f002fee15b5a1aac3aa4eb347a035c0e765ea09437a8650b00506bf626a62afbd24f28790edab14d67
6b198c0e4249486029b13c9ebd07538aa223f24793a44578f4c81e36019194b1041dc10436f8aac9fc
81e559a308960b030747f523279511c315f889146038b7f9271557ff0479538f1fd150d3e4dfd71569b
c8fe5370cada4c055c716041a11e1d71540c7f95df9750c69143e59d3e38a25548a34b7455454002a
a8028000360315541f969e400283cb96143d7f70bbd3155e7f2e7c88450f97ac081ff0014277dbc315
5bff2ad7c800103cb96146fb43d04dfe7b62aa73fe5cfe5d450335c797b4d8a050433b431a2a86dbae
d4eb8abe0cd1ffe71cbce29ff0039463c9167e67bf9ff002d5546bcda85bea73727d104ac56c99d662c
64f50180efcb8d67a53157df12797fc83092b2da69c8c8c5183fa608614a8353d47862a8c1e4df2af6d

22d7fe45ae2aa575e47f2b5c5bcb02e9b040f22322cf1468248cb0a0642c08e43a8a838aaf4f25f9555
154e936cc5401c9a35a9a773418aa9dcf90bc957b035adef97ec2ead5e9ce09ede39636e241155704
1a1151b62ab07e5ef914529e5dd3f6e9fe8d1edf862ad7fcabdf219e4bfe1cd3b7fb63ead16f5f1f87156
d7f2f7c8aa142f9774e017ec816d18a7cbe1c55c3f2f3c88a28be5cd38026a40b68a95f1fb38aa49e6ff
00caafcbfd6bcb7aa68b369f69a3b6a56f25ac5aa5b2a5adcdbcb229092452af121d1a8c37ed8abe47f
f009c47fc86f3a59fe63799356fcc6d5ee27d23ca5773e9d6ba4b5ecb2dbdfea0512b72504856489217
420b2eeee9de223157da8ba0791db82259e9e4c94f4c0f4cf2e44814df7a9040c5515fe11f2c7fd5a6d
bfe458c550a3ca3e54d36d6e67bbb485edd0cb732cd708948e324b9504014441b0ff2715621f985e5
0f2779cbf2fbcc5e5bd29f4bd3f50d7b4cbab2d32f6e5912357ba828937c279155f515b615c55e1fa5ff0
0ce09fe55d8fe58eb9e56875b373e7cd52cedd6e3cdd29575b478e78ee57d1b55902a43234411b93
348c95a498abfffd3f7f62aec55d8abb1578cc7aa7e6fff008b1f4193eb634737b73a61d77eab686050f
2a6a36d7689e9d4c6b67ea5948cc78fd6fd3f87916c5586e99e4bb5bcfcb7f345fdde9560f689379b50
d99d2654d558dedfdcfd4ca4ff006d90c32553826e8f1146f83156bcede56f34587957cdde59d4f4f97c
c96ba7f96ee62f27f9a9e03757b736979730986c2e38a991ae2dd929cc6f3c5e9cadfbdf57157b3f907
ca6fe5e3ac6aad7713af982786f63d3ac616b5d3ad123b74842c10b331064e3ea4adf0f376fb231566
58abb15762aec55d8abb155aea591943152c080cb4a8af715a8c55e2be54b8fcd9935f8f47f34fe9093
420860bbd5de2b4589e5d0e675b893d25b707d2d4d2583d315623d3b8f4fd3f871562fe57fcb58eebf
287cb76be66d2c2dadc58699a6dee990e972da6af6f3b6a503cb2b4d18f5d4a22579513814f571550f
34795fcf2fa5eb1a479974a5d6b5bb0d4fc9b6da7f9a4589bb5d5ec6cf586b8373730c0bc83c10b15bc
40427c2cebc52555c55ee7e44f272f92f4bbcb1177f597bfbfb9d4e448e3f42d2ddeed83186d61e4fe94
2b4f853937c459bf6b156518abb15762aec55d8abb154a7cd163abea5e5dd4ec740d41f4ad727b691
74ed42358dcc373c6b1b15955d48e4072057ece2af07f31a7e69799ff2e3f302d3cc7a5ea0906a1a1d
ddf68fa53c51dd4e5f54b458a1d38ac31f269ad668a67f8431e3341c9c9e58aa71e67fcae4d52f3cbf10
916ceeeef50179a3eb5a2697fa3e7d264b5d2ee4412c862041a5c4952b39e0fea181978e2a94c9e5ff
00386b5ae79424f32796ecec75e5f31eb075ab8160fa869322fe866b35bc0070221b9708d1face1959
bd37e453157b87937cb51793bcada4f95a0bb9afa2d2add2d52eee8f29a4083ab5361eca3ecafc38aa
798abb15762aec55d8abb1562ff980be645f2d4d7de539651ac69b35bea02ce054692faded26596e2
cd79a9a35c44af1211421d97e218abcab57b0fcc1d67ca505879a6d2eae350d33ccda25b40ed6eb78
2e20b4d5e2bc7d44a448a3d316ecb1bfd9a1866f6c55986a1e5fd7ed359ba93cbe2d97cd2960f7769a
89b2faad95c4bf5c327d5279230d45923548dc87327c2b350f1a62ac06dff2f357f39eb4ba4eb9a64de
5dd3f55f25c169a91fab2ce6d2f24d4e7b87820b8a0896e210d55900623e195062afa29578a8515200
02a4d4edef8aa8df59c3a8595cd85cd4dbdd44f04c14d0f0954ab50f6d8e2ac34fe55e82f796b7d35dd
ecb7368623133b43b985ad5c7202200d4da464ff00b2f1d9554b4fcaff002fda6857fe5d13ddc9a7ea0
6266323c7eac4d0b89418dd63534328f50abf35e4cc15553e0c55ffd4f7f62aec55d8abb15762aec55d
8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb1
5762aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb157ffd5f7dacb1348f12bab
4b1d3d4404165e5d2a3b57b62abf15762aec55d8abb15762aec55d8abb15762aec55d8abb15762ae
c55d8abb15762aec55d8abb15762ac7fcdfe77f2979074c4d6bce5abdbe8ba4bcab6eb7b76c521f55c
12aa5a8402429a5715487f2ebf39ff002e3f3510af92f5c8351be8a1fac5dd846c1a7b78cbf00650b50b
53d37df1567d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb1576
2aff00ffd6f54f933ca97fa6fe616bfae49788faedcad99f32483d430dca4d04ac91c419be116ec15202c
0b08bd456ddf157aae2aec554a6b9b7b76852795636b87f4600c402f2712dc56bd4d149a7b62ad5e5
e5ae9f6b35f5f4c96d656c8d2dc5c4ac1238e341566663400002a49c55ab6bcb4bd1235a4c93ac4e6
290c6c182b8009534ef4231557c550f15f594f75716505c4725e59f0fad40ac0c917aa3927351b8e405
56bd7154462aec55d8abceff0039ec7ccdabf92aff0049f2e4b7766d3c4d25cea1a6395be410b2148a0
0bf1f3918eec05046922fedae2acd3453aa9d3614d6d546a71728a792320a4be9b1559940fb224501f
87ec72e3db154c3154a6dfccba25cdf6a1a745791fd674b6863bde478a23dc82635e668a49a11407a
ed8aa35f50b08c4ecf751016b41735917f745b701f7f86bdab8ab1fd13f307cb7e6230fe87966b859e1
b2ba0fe8bc6ab6fa9452cd048c5c2d14ac2c0ff002b7c2d8ab201a8e9ec8255bb84c464108712295f5
5a944ad7ed1a8a0eb8aa2715762aec55d8abb15601f9969f979e72f2f6bff0096be70bf8162d4acd62b
eb626b340b735fabcf4a1e24489ce263b738ff00c938abccff00e719fc8fe43fc85fcad812e3cc1a75fea1
afcb77a96a5e61b493d4b4b85b1e638c7281fdddbc484b86fb0feb1f1c55ef3a3798343f315bb5d687a
8417f02710ed6ee1f8f350ebc80dc7252196bd54f2e98aadd6fcc5a2f9723b69b5bbc4b38ef26faada97
0c7d49cc6f28450a09e4523723fd5c552e8fcff00e4e95acd63d5a26fd206dc5a305938bfd7121784f2e
3401c5c43c49db9488bf69a98ab1fd63f37b44d334c6bcb78d2faea23a734e91cad1da241aaea4da64
529ba92209f0c8ac645a725556c5534d3ff00327cb33a22ea5a859da5c49234517a372b75030abaa1f
5915554c863758d5f8b48c8c230f8aa553fe717979757b3b0b589ee34bd56d5e5d1f5ca98ec6e2fd79
94b22eea3d379950b4121fdd4b46546e7c55954dcfe66793ad2344d6355b6d3f505b58ef2f2cddcb98
11cc2adc9956948dae22f50fec07577e286b8aa075cfcd7f2f696cf0d91faedcc2da435c7aa5ecede3b1
610000026060f002220574d464301000000000001000000000000000500000000200000f45d0000f4
9d00007d7aedad2de633ca9c08e48ccca3e2e02b8aaae95f9afe51bcd320d4352bc4d2649beb87d0b
96a8e16124eaf224880a323adbc9342d5fdec23d445a57154645f98de537fad48fa8c4b6f6eca8a009
8dc3318de56ac0620e2891b3d4721e98f5365c55513cf7a2dd798349d074b957501aa457332dedbb

673

178116da28a514902947e4b329f85f6c559462aec55d8abb15762aec55d8abb157fffd7f6be8c29e73f
347bc7a69ff92728c5593e2af9df49f2ff00e67ebda1e97ac697a9ea1269f70cf0798f4c9f52786f2f1126
bc8c496d34bea7d59e20d0371023f59528df647255935c792bf32dbeb77361abdcdb6b136afcadaee6
d425b9b78b4cfd0ed021303158db85e9f5593d352ff6bfc9c5525d4bf2ff00f35ef346b9d3e7b96bdd33
50d2e4b3bbd124d464575d5a4d3cc4d7a2e8d58c0f707782a00fef7d3e5fbbc5539b3f2b7e63a5f04d
4617bad19efee648204d5e4b67b3564b236d2ab46a7947198ae10c3d83ec8dcdb8aa98f9e3ca3e71
d5b5cd5356d165b830a5be949a7da0d4a5b586644b99cea70aa29291bcd6ed1a24ac87e25ea9f6f1
548af7c87e7e112c164b74f62f1e9b6da829d5fd2d4ee20b7b4bc8abf5e58f97ab04d3412722abea70
6eb4f8d55d75e4dfcd5bad475502ee4b4b3bb4a453c5a835c869adee43c0ed14822251e2f82644783
f6b850aa315593f907cbfe77d37cc1aa5ff009ba4694cbeaa41710ea325c59cb03c8b240ab69246a63
78579445cb9e43e2f8cbb7055e8d8aa07596d5d34cb97d0a3825d5c2ffa2477459602f51b395de94af
4c551d8aa95d41f59b69adb9b45eb46d1fa919a3af3047253e22bb62af198bf222e8d95ad8dfeaf657d
6b6f05ad8cf672d84a96d796f6d612e9ec6e163bb56691d240f50c0070c3756f8554d60fca4d56d75a1
ad41adda978e7f5a3b47b03f569105cdccc1268d6701884ba601c51bd58d263c8f25c550fa67e4a5c6
9a3451fa6619c68eba42287b32048347b3bcb43b7ac78fabf5bad3f64271f8b9542a861f90ffbdb12faa
5bc9656b0416b3e98d6722d9ccb1d9416af2b471dca7efb95babc6c490a0b232bfda0abd994100026
a7b93dfeec55bc55d8abb1579bfe66f90fcc1e69bbb0d43cb5a8fd46f2de174984934d1c6cf6d2c77d6
678c6686b7102c53547c56d34cbfcb8aa9e8df97da959f9c750d5ef669c69cfa568d6d0496f78ead717
9a6dc5edcce268a8018d9ae542f227e1e6b4514c558a3fe4f79a2cfcb57363a14b6b689ac6877d6dad
f97e462d6ffa7a6d35ec62bcb79945104bcbfd25787c744940f53d4f5157a37e5d791ed3c9ba3426457
93cc57969630eb5792cbebbc9258dbac0881a8a3d38c02102aaff0031f898e2ab3f3367f2c8d0ad34ff
003443773c1a8dfdbc3a7c7a7a335d7d7a0e57717a6cb4e069037c551fcbfb58abcca3b9fcaa96c745
b4d3aef5d8e3d3a44d474bd3e280dc4d2dbcd25aeab0dc2c52452318a1548638c2f191611f5708dd3
154bfd6f2e7f88ed34099758b7d027044d7a7eaef27d6fcbbe6a22de4915519440d7572f56147f4e8ac
bfb415647a9cbf959e61d66e6e218eedf55f31a69faa5b69d122ac7ab1d1da69acef215622a21285dfe
28ea238fd44355e6aa3ad2c7cadaff93344f2ef98adef3534f32795f4cb7bbd160413341669c02dc9645
4915a39261fbc53c94afa888bc19b1563ba9cde5c5d3f563a0497b75a4ead2de5b6bda1ea7c2385bd
3d125bc6a718fd5e37496691cc8d26cb24b448e4c5594f953f2db46d7bcafe5fd767bdbf492ff4df2f5c4
b6ed2433474d1e46bfb34264849608d318d89de48d579fc7572ab29d63f2eb49d62fb55bd37b7b669
ad58fe8fd46d2d5e25824558a48525a3c4ecae892151c58235179a371c554af3f2c741bdd7079926b8
ba1ad23235bdd2bc60c34b37b19020e14a4b139e75afc5c593895c5567967f2abcb3e50bcb197cbef
7569a6e99eb1d3f47122359c26ea18e19788643210444ad4321a396a7daa62ace315762aec55d8ab
b15762aec55d8abffd0f6e6951b279bfcc4e5485920d38a9a6c68b383fab156458abb15762aec55d8a
bb15762aec55d8abb154bf5bb3b9d434abab3b3bf7d2ee664e31ea11056784d41e4036dedbe2a986
2aec55d8abb15762aec55d8abb15762aec55d8abb15762aec552bd6bcbda4f983ea1fa56169bf465d
2dfd9159248f85ca46f107f8196bf0c8e28d55df1563f17e54791a09ac6e20b0961b9d363820b2b886f
2ee296386dadc5aa461d250c50c4023a93492839f2615c555dbf2d7c9ed7725f7d4a4171299492b73
70157eb17a9a8c9c57d4a286b88d65200ebb7d92462ae1f967e4b516de969c607b16074f9619a68a
5b55ac84c703a3868e33eb48a63421195b895e3418aa24790fcae8da33c569242fa0db0b0d35e2b9
b88d96cd7852090ac80cb1d6343c25e6392d71540da7e567926c6d4595b58cab6814a085aeee9d42
9b592c6839ca6948257887f93eea0e2aca34dd3acf48d3ad349d3e3f46c2c218ed6d61a96e10c2811
16ac49345006e7154562aec55d8abb15762aec55d8abb15762aec55d8abffd1f7ef73d3f8e2ade2aec
55d8abb15762aec55d8abb15762aec558f79e7fe511d5bfde4fee0ffc74bfde3ea3fbdff27156438abb1
5762aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb15762a
ec55d8abb15762aec55d8abb15762aec55fffd900000840010824000000180000000210c0db010000
00030000000000000000000000000000001b4000004000000034000000010000000200000000000
0bf000000bf0000af430000a442030000000000008000000080fe7fe9430000008000000080ffffd9422
100000008000000620000000c00000001000000150000000c00000004000000150000000c000000
04000000510000002c7500000000000000000000d20100006c00000000000000000000000000000
0000000005e01000052000000500000001c0400006c040000c0700000000000002000cc00d301000
06d000000280000005e010000520000000100080000000000000000000000000000000000fd00000
00000000000000000ffffff00fdfdfd00fafafa00eeeeee00f9f9f900fefefe00fcfcfc00fbfbfb00f5f5f500d3d3
d300dddddd00cacaca00aaaaaa00f0f0f0007979790061616100b2b2b20029292900ebebeb003f3f3f
0045454500f6f6f600f7f7f700c9c9c9001414140088888800f8f8f800e3e3e3004e4e4e00373737009a
9a9a00ededed00d9d9d900585858003c3c3c0091919100cdcdcd00adadad006f6f6f005f5f5f00aeaea
e00c4c4c40076767600636363008f8f8f00d4d4d400cccccc008585850080808000a3a3a3007f7f7f00
eaeaea00a8a8a8006c6c6c0081818100838383008e8e8e009c9c9c00cbcbcb00c8c8c8002e2e2e00
dadada0077777700d5d5d500b5b5b500828282002c2c2c00afafaf00a1a1a100a4a4a400bdbdbd008
d8d8d00f4f4f400efefef003d3d3d0066666600b4b4b400a2a2a200b7b7b700ababab0039393900beb
ebe009f9f9f00dfdfdf00e4e4e40073737300929292004141410068686800cfcfcf00ececec007c7c7c0
0878787009d9d9d00bfbfbf0062626200606060006d6d6d00b8b8b800a0a0a000a9a9a900b3b3b300
e7e7e700dcdcdc0071717100bcbcbc00b0b0b000c1c1c100acacac00979797009b9b9b0086868600
89898900e1e1e100d6d6d6009696960093939300e9e9e900a7a7a700d8d8d800dbdbdb00cecece0
07e7e7e00e5e5e500c3c3c30057575700dedede007b7b7b00f2f2f200f1f1f100f3f3f300b1b1b100a5a
5a500c0c0c000c2c2c20075757500e0e0e000bbbbbb008b8b8b009e9e9e00d1d1d10094949400bab

aba00a6a6a6008a8a8a00b6b6b6007a7a7a0054545400d2d2d2009999990090909000989898005c
5c5c006e6e6e0072727200848484005b5b5b00b9b9b900959595003e3e3e0040404000c6c6c600c7
c7c700c5c5c500d0d0d0007070700069696900d7d7d7002525250050505000e6e6e6005a5a5a0027
27270052525200e2e2e20032323200282828005656560034343400242424004f4f4f006b6b6b00424
242004c4c4c0074747400535353008c8c8c003b3b3b003030300043434300e8e8e8005e5e5e007d7
d7d00383838001e1e1e00787878005d5d5d0065656500363636002b2b2b00515151000d0d0d004b
4b4b000e0e0e0002020200040404001f1f1f004a4a4a002a2a2a002626260067676700444444000a0
a0a000303030007070700010101004d4d4d0005050500060606000808080021212100494949000c
0c0c0046464600333333000f0f0f0011111100101010001313130015151500181818000b0b0b00222
222006a6a6a00202020003a3a3a001b1b1b0019191900161616001a1a1a002f2f2f001c1c1c002d2d
2d0059595900232323003131310047474700555555006464640035353500484848001d1d1d00010
1010101010106010101010101010101010101010101010101010101010101010101010101010101
0101010101010101010101010101010101010101010101010101010101010101010101010101010
1010101010101010102060102017673010101010101010101010101010101010101010101010101
0101010101010101010101010101010101010101010101010101010101010101010101010101010
1010101010101010101010101010101010101010101010101010101010101010101010101010101
0101010101010101010101010101010101010101010101010101010101010101010101010101010
1010101010101010101010101010101010101010101010101010101010101010101010101010101
0101010101010101010101010101010101010101010101010101010101010101010101010101010
1010101010101010101010101010101010101010101010101010101010101010100000106070702
0606010101010101010101010101010101010101010101010101010101010101010101010101010
1010101010101010101010101010101010101010101010101010101010101010101010101010101
0101010102010106010247800101010101010101010101010101010101010101010101010101010
1010101010101010101010101010101010101010101010101010101010101010101010101010101
0101010101010101010101010101010101010101010101010101010101010101010101010101010
1010101010101010101010101010101010101010101010101010101010101010101010101010101
0101010101010101010101010101010101010101010101010101010101010101010101010101010
1010101010101010101010101010101010101010101010101010101010101010101010101010101
010101010101010101010101010101010101010101010101010101010100000101ab4d010201010
1010101010101010101010101010101010101010101010101010101010101010101010101010101
0101010101010101010101010101010101010101010101010101010101010101010101010101010
1060602020601497601010101010101010101010101010101010101010101010101010101010101
0101010101010101010101010101010101010101010101010101010101010101010101010101010
1010101010101010101010101010101010101010101010101010101010101010101010101010101
0101060601020101010206060108060103010201030101010106010106010601050101070102010
1080101050105010206020101050106010601010101010101010101010101010101010101010101
0101010101010101010101010101010101010101010101010101010101010101010101010101010
1010101010101010101010101010101010101010101010101010000060221770203010201010101
0101010101010101010101010101010101010101010101010101010101010101010101010101010
1010101010101010101010101010101010101010101010101010101010101010101010101020101
0102020601010101010101010101010101010101010101010101010101010101010101010101010
1010101010101010101010101010101010101010101010101010101010101010101010101010101
0101010101010101010101010101010101010101010101010101010101010101010101010101010
8060101050201060117010108010708010106010102010103010701010108080101010601010602
0601010501010106010201010101010101010101010101010101010101010101010101010101010
1010101010101010101010101010101010101010101010101010101010101010101010101010101
0101010101010101010101010101010101010101010100000102a54506060101010101010101010
1010101010101010101010101010101010101010101010101010101010101010101010101010101
0101010101010101010101010101010101010101010101010101010101010101010601050106080
1010101010101010101010101010101010101010101010101010101010101010101010101010101
0101010101010101010101010101010101010101010101010101010101010101010101010101010
1010101010101010101010101010101010101010101010101010101010101010101010101060708
0101050101060701010101010801070109020108010301020701010101030103070101060108010
8010702020102060101010801010101010101010101010101010101010101010101010101010101
0101010101010101010101010101010101010101010101010101010101010101010101010101010
1010101010101010101010101010101010101000001017a4e010101010101010101010101010101
0101010101010101010101010101010101010101010101010101010101010101010101010101010
1010101010101010101010101010101010101010101010101010101010102010201070106080101
0101010101010101010101010101010101010101010101010101010101010101010101010101010
1010101010101010101010101010101010101010101010101010101010101010101010101010101
0101010101010101010101010101010101010101010101010101010101010101060301060102010
6020101080807010108020101010206070108020101070101030101010201010201010801010601
0102010101070101010101010101010101010101010101010101010101010101010101010101010

675

1010101010101010101010101010101010101010101010101010101010101010101010101010101
010101010101010101010101010101000002013b4e0101020101010101010101010101010101010
1010101010101010101010101010101010101010101010101010101010101010101010101010101
0101010101010101010101010101010101010101010101010101060101060106259001010101010
1010101010101010101010101010101010101010101010101010101010101010101010101010101
0101010101010101010101010101010101010101010101010101010101010101010101010101010
1010101010101010101010101010101010101010101010101010101030101010801070108010801
060101021b0101020701010101060701070102010102010501010106060106011b0702010105020
1010102020101010101010101010101010101010101010101010101010101010101010101010101
0101010101010101010101010101010101010101010101010101010101010101010101010101010
1010101010101010101010100000601183201060601010101010101010101010101010101010101
0101010101010101010101010101010101010101010101010101010101010101010101010101010
101010101010101010101010101010101010101010101010701070107269a010101010101010101
0101010101010101010101010101010101010101010101010101010101010101010101010101010
1010101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010102010207015b171b83170983010e200
1010934094a02048101828281010334821b01090101761701027602810983010e04010107070106
0101010101010101010101010101010101010101010101010101010101010101010101010101010
1010101010101010101010101010101010101010101010101010101010101010101010101010101
010101010101010100000101a385010101010101010101010101010101010101010101010101010
1010101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010601060601796c0101010101010101010101010
1010101010101010101010101010101010101010101010101010101010101010101010101010101
0101010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101020706015bf49fa8b8818b246cc9b685099a262
42813b95f40375f65165e9a456155014aa61024ab6048c1487a69135d93810101010701010101010
1010101010101010101010101010101010101010101010101010101010101010101010101010101
0101010101010101010101010101010101010101010101010101010101010101010101010101010
1010101000002072a85060101020101010101010101010101010101010101010101010101010101
0101010101010101010101010101010101010101010101010101010101010101010101010101010
1010101010101010101010101010106010601070102010101010101010101010101010101010101
0101010101010101010101010101010101010101010101010101010101010101010101010101010
1010101010101010101010101010101010101010101010101010101010101010101010101010101
010101010101010101010101010101010101010101c9657c1d07746ec69306895b94836b9401380
aac35012d371d4a7cc5020150f8491caf22401a2a834c017b9d010106010201080101010101010101
0101010101010101010101010101010101010101010101010101010101010101010101010101010
1010101010101010101010101010101010101010101010101010101010101010101010101010100
0001017d460201070101010101010101018f35670101050101010701010101060201020108070108
0101050106010202020701010601070101010207010101070106010102010201010601010701060
1010101010101010101010101010107010101010101010101010201010602010201010606060103
0801060601020105010101020606010105010107010801020101060101010606010101010101010
1010101010101010101010101010101010101060106060102010101060101020601020601030101
02020101070101070101010101060101ac6534c9025e242c8579400e9d0629b20238a4942f012dd0
2801bfc4060196380201067d41c44709f9029c100101010106010101020107060101020801060601
0207020102010105010201010101010101010101010101010101010101010101010101010101010
1010101010101010101010101010101010101010101010101010101010101010101000001017d46
0601020101010101010101015d7101011b010102020106060108010107010802010801010601070
1020701010106010801060101050101060801030101060701020107060101020107010101010101
0101010101010607010101060101010101010101010101010606010102010107010701010101010
2010501010203060101080701020301060117010102010101010106010101010101010101010101
0101010101010101010101010101060201030101070107010601060602010101010507010108010
60102010201010201060316be8b8cbe5a596d6e308cba041d6765be86607f39662e2c5f758da4280
8017338af718d7b5f881883590137600601030101020102010701070601020106020102010101060
1030701080103010101010101010101010101010101010101010101010101010101010101010101
0101010101010101010101010101010101010101010101010101010101000001016c46060102010
1010101010101015727a21801bf8e5e0e7f646701903b022a63870149466b445a524e093e2429060
10178538901684884098f351b2e98410795353c9279473b8349443a5b03010701010101010101010
60101010701aba80101010101010101010106010101020602010208060601080201010101010601
01061b0101010102020606070108010706020206010101010101010101010101010101010101010
1010101010101010106010201828901890808789eaf0606bf5f95010101040486a383010107060301
060601010163633aa55f7504015f747f7651636bbe854501079e6fa205810d8cc0010701543532174
05e440504d3019cc60306010708010206010106011b010106030105010302060701020801011701
0101010101010101010101010101010101010101010101010101010101010101010101010101010
1010101010101010101010101010101010101010101010000010186460101020101010101010101
0148424a9721e0610d5047de1b01d08784f776579e75f478b326987e20ec386e6b0201725881201e

30752a9ea683bc5c57631d3227613521a33aa6b06f2d170101010101010101010102010601060284
3f0101010101010101070101060108060107685b160109a8490181bf09ab0176ab8208818103ab0e
0920072049013467010601010101060606010101010101010101010101010101010101010101010
10101020101a461034c180187fc21010182aca30601969808f3c6010301020102010606010116010
1030101010108010101012e0545fb01010101080106010101679d1b0105010101010102010767d90
1b9f4010101010101060101060301010202060101020606010101060108060106010101010101010
1010101010101010101010101010101010101010101010101010101010101010101010101010101
0101010101010101010101010101010100000106524601010601010101010101010157480145a7d
179017618b20103c0a4e0270641be948601277850a6401610000026060f002220574d46430100000
0000001000000000000000500000000200000f43d0000f49d0000561b012001012099016aae02084
98a9795de06075b1f6a8e2d0926d490d918010e08170101010101010101010102030606016c8e010
101010101010101010107060101137e7031a740c533bb8daa44273292aa0dfb400d280e7e322f611
39a456aaa9c6b050201010607020101010101010101010101010101010101010101010101010101
0203015db686c984017c51010801035c090529df7401be3003011b01010108010101010106050106
01070107090881811b02927749088201010601821601a8460905168201010707010803549f04296d
0906021b810717010701011601011b1b01810601014a1b080101810101010801010101010101010
1010101010101010101010101010101010101010101010101010101010101010101010101010101
0101010101010101010101010101000001066a460106060101010101010101017033085d88a18f97
657d1d8203943c600f06967e8811064c3e6e62895c01795a011b7cb504a2f4a569477a8b78aeaf9c4
d18258030871d6a674c446b7101010101010101010101010101010107011b020101010101010101
010201020701026aa101359f294c01037f9a3e934f4c8d06d06887f90261110493029f35d90d014049
1b060101060101010101010101010101010101010101010101010101010101030101afc07c580d90
7c68b340782608384aa51e328401d01d4e8d0601090101070606060101445f545c01ab2c5e276a5e
7b81428552cb7d020701484f3572252b16822b1801035fa381eac5975498028c9c2094664db28d01
021788c5455bd318062d39063550634a04a63a80460701010101010101010101010101010101010
1010101010101010101010101010101010101010101010101010101010101010101010101010101
010101010101000001068a85010201010101010101010101573337ac132e98106c7db52b90b62f1c
48242baf043953a00a3ac4013245594f0101a4c9b68b29304b95a448072970b7400d70330a2a9790
3b871a6239080701010101010101010101010601060206010101010101010101010801060101034
71d01669626d32a37a8a295d3662b8306ae686a59024c922093025746cb2d0d4507020101010606
06010101010101010101010101010101010101010101010101070201759d40198d9e44aba9850d8
b165d54bd530e6306b8602aba6d010601070101020101099d4298a0af68b6bff816849c011d7c5bfa
7c010175d401861d952b01026d550178ed4f8f7e5b2e7c5fbbaa558de1177afb0106015010ab2f2162
ab01489863de1b6a618b5c095c77010101010101010101010101010101010101010101010101010
1010101010101010101010101010101010101010101010101010101010101010101010101010100
0001068f850102010101010101010101010601131b06014a550102027c0317050105210901050978
c6a203490601a521070601061b737f013b5501863101177a130102a8680301af79080176a5010101
060101010101010101060101020106010801010101010101010106010801070120f95a9c241c3866
f525a60cc45a9e46405872479a0ede412fba5ff98d44535c270101020601010106010101010101010
1010101010101010101010101010101010101012a8768851c212e54e10101552042de2c064a2907f
b42019b7e1601030102010101016bb20c228d4101262994824f5d02c00282230b0e79229d06a8e65
f380101358316b8b7a532805b210901eb5d062e15083eb75a72018e574a7c81a65b071f85c4f7013e
cf9926016e6b01080101010101010101010101010101010101010101010101010101010101010101
010101010101010101010101010101010101010101010101010101010101000001039e850102060
20101010101010101010101010101010101080101165379010101060101017c2c68526b1b010606
01010101010101010101069f24030103010101010101010101010101010101010101010101010101
0101060608010283040701070102010106010101010101010181185d9101764179015541a201028
d8fd468a4c5027f81672e188707010a4183010101010101010101010101010101010101010101010
1010101010101010101010101010101010106018a43669e9646a1a1070890806723c029a75f01030
1060101010302142466b8017095427af8827538837e8909c79c9c7b634c721aea4db8290a927cc51
0a53ca82b84d20a2dba6f4a2ffa83731e9656462e9752b825b2116c0f6e2fa7bf74f95f85132b840108
0101010101010101010101010101010101010101010101010101010101010101010101010101010
101010101010101010101010101010101010101010101000008019e640106010101010101010101
0101010101010101010101010601af0201010101010208017c02817c010101010201010101010101
0102015b0401070108010101010101010101010101010101010101010101010101061b010108068f
7b0106020201010606010101010101010101495e6e16070601010102010107051b15898cb608657f
0108010801070117010101010101010101010101010101010101010101010101010101010101010
10101010101010101010201790c7a2f6c218d4a02057d6c682a7d8d34010701170107010106058e6
c923a01853e6a984f08877a7cc76b83ecab030c070b755e013e4f396a8fc0ec09725f063e4e0d075c4
08f7847f27d6799011312832f8e9e1b296d397d2a077a856f1701845fac35010101010101010101010
1010101010101010101010101010101010101010101010101010101010101010101010101010101
010101010101010101010101010100000101666d050101060101010101010101010101010101010
1010106060101010801010107010208010101060105060106010101010101010101080101020201

677

0101010101010101010101010101010101010101010101010101011b0848816680014e200701070
60101010101010101010301bfab0106010807010101030701088d02550a018f13080101010117010
1010101010101010101010101010101010101010101010101010101010101010101010101010101
01010102020103080106ab810808020108010117010107010101010102010203011b06010101010
9010182bf013c8272f32f7c18630501080602070707b6a981019053010101010601010103015f080c
e01311150501060106010108051301010202080101018b4d0706010101010101010101010101010
1010101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010100008e06474e012a830201010101010101010101010101010101010101010
2010201070701020601020106020102010106010101010101010101010101030601030101010101
0101010101010101010101010101010101010101080706010d6d6abb5abb0901060601010101010
1010101010207060102060201010106070101010801160103010307010202010101010101010101
0101010101010101010101010101010101010101010101010101010101010101010101010101010
60801010107ba610101010101050101080301070101010607011b01020101010201010102082a4f1
601010a7b4650537a0102010101010104bba307026b350902020106010706020101062a30472668
010801080206010152a417060102011b01083587020101010101010101010101010101010101010
1010101010101010101010101010101010101010101010101010101010101010101010101010101
010101010100007b8a87853e884a010101010101010101010101010101010106010106060101010
1010101020701010102010601010701010101010101010106010101010107020101010101010101
0101010101010101010101010101010101070207017198887155010107010106010101010101010
1010102010801010302010106010607010601010301010701010101080102020101010101010101
0101010101010101010101010101010101010101010101010101010101010101010801030101010
186ce19780106020101070101060101050107070101010116010201060501050201060301070102
0101010301070102070101080106010306020502010103060106010103080501010801020201070
5010101070101010105010102060108010108010101010101010101010101010101010101010101
0101010101010101010101010101010101010101010101010101010101010101010101010101010
10100001b80459e8c2f010701010101010101010101010101010101060102020102011b020105010
1010106010206070101010101010101010101010102030107010101010101010101010101010101
01010101010101010101010102010201068df7d24401010707010206010101010101010108060101
0601010101070206010101010108070105060106010101010102010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010102010307ecd600f80
2010101010101080603010101010101050701010106010102010601050101010701010801020206
0201010102080101010101080101010501011b01010602010101010201060101160101010502010
11b0601010102010107010301010101010101010101010101010101010101010101010101010101
0101010101010101010101010101010101010101010101010101010101010101010101010000023
5f9f9380101010101010101010101010101010101010102010601010101010201010107010101010
1010108060102010101010101010102010101070207010101010101010101010101010101010101
010101010101010108010103019df101160801010102060101010101010101010201060101070101
0301060801010601060601010117010206010108010102010101010101010101010101010101010
1010101010101010101010101010101010101010101010101020101010732cd0000dc1806070701
0201010102060206010101020601010501010501070701020201010208010101060101010701010
801031b010601010301010106010106010601010302010801010206010306010106080101020601
0208020101010201070101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010100000101bac82003
0106010101010101010101010101010101010601010103010606010202010701010106010801070
6010801010101010101010106060108010701010101010101010101010101010101010101010101
010101010102020108aba5080101060107010101010101010101010701010701020102010101060
2010601070102060101010101010201060102010101010101010101010101010101010101010101
0101010101010101010101010101010101010101010107020809cf00d6d600a00801020106060102
010101020101080101080601010106070101070101060202011b010602010101020701060206010
1010802010607010206010701010706010206010601080108010102010101070101060601010101
0601060101010101010101010101010101010101010101010101010101010101010101010101010
101010101010101010101010101010101010101010101010101010100000108780a05011b010101
0101010101010101010101010101010101010101010101010101010101010101010101010101010
1010101010101010101010101010101010101010101010101010101010101010101010101010101
0101010101010101010101010101010101010101010101010101010101010101010101010101010
1010101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101070107010994ce00d800d6ce5c010102010101010101010
1010101010101010101010101010101010101010101010101010101010101010101010101010101
0101010101010101010101010101010101010101010101010101010101010101010101010101010
1010101010101010101010101010101010101010101010101010101010101010101010101010101
0101010101010101010101010101010101010101010101010000010107030101060101010101010
1010101010101010101010101010101010101010101010101010101010101010101010101010101
0101010101010101010101010101010101010101010101010101010101010101010101010101010
1010101010101010101010101010101010101010101010101010101010101010101010101010101
0101010101010101010101010101010101010101010101010101010101010101010101010101010

101010101010101010101010106010105345e9f45d0c6536f6b82020101010101010101010101010
1010101010101010101010101010101010101010101010101010101010101010101010101010101
0101010101010101010101010101010101010101010101010101010101010101010101010101010
1010101010101010101010101010101010101010101010101010101010101010101010101010101
0101010101010101010101010101010101010101000001020101020201070101010101010101010
1010101010101010101010101010101010101010101010101010101010101010101010101010101
0101010101010101010101010101010101010101010101010101010101010101010101010101010
1010101010101010101010101010101010101010101010101010101010101010101010101010101
0101010101010101010101010101010101010101010101010101010101010101010101010101010
1010101010101010101020101010501013992070109010601010101010101010101010101010101
0101010101010101010101010101010101010101010101010101010101010101010101010101010
1010101010101010101010101010101010101010101010101010101010101010101010101010101
0101010101010101010101010101010101010101010101010101010101010101010101010101010
1010101010101010101010101010101010000010607070601010101010101010101010101010101
0101010101010101010101010101010101010101010101010101010101010101010101010101010
1010101010101010101010101010101010101010101010101010101010101010101010101010101
0101010101010101010101010101010101010101010101010101010101010101010101010101010
1010101010101010101010101010101010101010101010101010101010101010101010101010101
0101010101010206020101020804160101010108010101010101010101010101010101010101010
1010101010101010101010101010101010101010101010101010101010101010101010101010101
0101010101010101010101010101010101010101010101010101010101010101010101010101010
1010101010101010101010101010101010101010101010101010101010101010101010101010101
0101010101010101010101010100000201010601010201010101010101010101010101010101010
1010101010101010101010101010101010101010101010101010101010101010101010101010101
0101010101010101010101010101010101010101010101010101010101010101010101010101010
1010101010101010101010101010101010101010101010101010101010101010101010101010101
0101010101010101010101010101010101010101010101010101010101010101010101010101010
1010201010102010801010101010601010101010101010101010101010101010101010101010101
0101010101010101010101010101010101010101010101010101010101010101010101010101010
1010101010101010101010101010101010101010101010101010101010101010101010101010101
0101010101010101010101010101010101010101010101010101010101010101010101010101010
1010101010101010101000002020101010101060101010101010101010101010101010101010101
0101010101010101010101010101010101010101010101010101010101010101010101010101010
1010101010101010101010101010101010101010101010101010101010101010101010101010101
0101010101010101010101010101010101010101010101010101010101010101010101010101010
1010101010101010101010101010101010101010101010101010101010101010101010101010101
0101070102080702010108020101010101010101010101010101010101010101010101010101010
1010101010101010101010101010101010101010101010101010101010101010101010101010101
0101010101010101010101010101010101010101010101010101010101010101010101010101010
1010101010101010101010101010101010101010101010101010101010101010101010101010101
0101010101010000010202010101010101010101010101010101010101010101010101010101010
1010101010101010101010101010101010101010101010101010101010101010101010101010101
0101010101010101010101010101010101010101010101010101010101010101010101010101010
1010101010101010101010101010101010101010101010101010101010101010101010101010101
0101010101010101010101010101010101010101010101010101010101010101010102010601050
2010101010102010106060101010101010101010101010101010101010101010101010101010101
0101010101010101010101010101010101010101010101010101010101010101010101010101010
1010101010101010101010101010101010101010101010101010101010101010101010101010101
0101010101010101010101010101010101010101010101010101010101010101010101010101010
1010100000601010102020201010101010101010101010101010101010101010101010101010101
0101010101010101010101010101010101010101010101010101010101010101010101010101010
1010101010101010101010101010101010101010101010101010101010101010101010101010101
0101010101010101010101010101010101010101010101010101010101010101010101010101010
1010101010101010101010101010101010101010101010101010101010101020107010102060101
0201010201010101010101010101010101010101010101010101010101010101010101010101010
1010101010101010101010101010101010101010101010101010101010101010101010101010101
0101010101010101010101010101010101010101010101010101010101010101010101010101010
1010101010101010101010101010101010101010101010101010101010101010101010101010100
0001010101010101010101010101010101010101010101010101010101010101010101010101010
1010101010101010101010101010101010101010101010101010101010101010101010101010101
0101010101010101010101010101010101010101010101010101010101010101010101010101010
1010101010101010101010101010101010101010101010101010101010101010101010101010101
0101010101010101010101010101010101010101010101010101010101010101010101010101010

679

1010101010101010101010101010101010101010101010101010101010101010101010101010101
0101010101010101010101010101010101010101010101010101010101010101010101010101010
1010101010101010101010101010101010101010101010101010101010101010101010101010101
0101010101010101010101010101010101010101010101010101010101010101010101000001010
1010101010101010101010101010101010101010101010101010101010101010101010101010101
0101010101010101010101010101010101010101010101010101010101010101010101010101010
1010101010101010101010101010101010101010101010101010101010101010101010101010101
0101010101010101010101010101010101010101010101010101010101010101010101010101010
1010101010101010101010101010101010101010101010101010101010101010101010101010101
0101010101010101010101010101010101010101010101010101010101010101010101010101010
1010101010101010101010101010101010101010101010101010101010101010101010101010101
0101010101010101010101010101010101010101010101010101010101010101010101010101010
1010101010101010101010101010101010101010101010101010101010101010000010101010101
0101010101010101010101010101010101010101010101010101010101010101010101010101010
1010101010101010101010101010101010101010101010101010101010101010101010101010101
0101010101010101010101010101010101010101010101010101010101010101010101010101010
1010101010101010101010101010101010101010101010101010101010101010101010101010101
0101010101010101010101010101010101010101010101010101010101010101010101010101010
1010101010101010101010101010101010101010101010101010101010101010101010101010101
0101010101010101010101010101010101010101010101010101010101010101010101010101010
1010101010101010101010101010101010101010101010101010101010101010101010101010101
0101010101010101010101010101010101010101010101010101010100000101010101010101010
1010101010101010101010101010101010101010101010101010101010101010101010101010101
0101010101010101010101010101010101010101010101010101010101010101010101010101010
1010101010101010101010101010101010101010101010101010101010101010101010101010101
0101010101010101010101011610000026060f002220574d46430100000000000100000000000000
0500000000200000f41d0000f49d0000010101010101010101010101010101010101010101010101
0101010101010101010101010101010101010101010101010101010101010101010101010101010
1010101010101010101010101010101010101010101010101010101010101010101010101010101
0101010101010101010101010101010101010101010101010101010101010101010101010101010
1010101010101010101010101010101010101010101010101010101010101010101010101010101
0101010101010101010101010101010101010101010101010101010100000101010101010101010
1010101010101010101010101010101010101010101010101010101010101010101010101010101
0101010101010101010101010101010101010101010101010101010101010101010101010101010
1010101010101010101010101010101010101010101010101010101010101010101010101010101
0101010101010101010101010101010101010101010101010101010101010101010101010101010
1010101010101010101010101010101010101010101010101010101010101010101010101010101
0101010101010101010101010101010101010101010101010101010101010101010101010101010
1010101010101010101010101010101010101010101010101010101010101010101010101010101
0101010101010101010101010101010101010101010101010101010101010101010101010101010
1010101010101010101010101010101010101010101010101000001010101010101010101010101
0101010101010101010101010101010101010101010101010101010101010101010101010101010
1010101010101010101010101010101010101010101010101010101010101010101010101010101
0101010101010101010101010101010101010101010101010101010101010101010101010101010
1010101010101010101010101010101010101010101010101010101010101010101010101010101
0101010101010101010101010101010101010101010101010101010101010101010101010101010
1010101010101010101010101010101010101010101010101010101010101010101010101010101
0101010101010101010101010101010101010101010101010101010101010101010101010101010
1010101010101010101010101010101010101010101010101010101010101010101010101010101
0101010101010101010101010101010101010101010000010101010101010101010101010101010
1010101010101010101010101010101010101010101010101010101010101010101010101010101
0101010101010101010101010101010101010101010101010101010101010101010101010101010
1010101010101010101010101010101010101010101010101010101010101010101010101010101
0101010101010101010101010101010101010101010101010101010101010101010101010101010
1010101010101010101010101010101010101010101010101010101010101010101010101010101
0101010101010101010101010101010101010101010101010101010101010101010101010101010
1010101010101010101010101010101010101010101010101010101010101010101010101010101
0101010101010101010101010101010101010101010101010101010101010101010101010101010
1010101010101010101010101010101010100000101010101010101010101010101010101010101
0101010101010101010101010101010101010101010101010101010101010101010101010101010
1010101010101010101010101010101010101010101010101010101010101010101010101010101
0101010101010101010101010101010101010101010101010101010101010101010101010101010
1010101010101010101010101010101010101010101010101010101010101010101010101010101
0101010101010101010101010101010101010101010101010101010101010101010101010101010
1010101010101010101010101010101010101010101010101010101010101010101010101010101

0101010101010101010101010101010101010101010101010101010101010101010101010101010
1010101010101010101010101010101010101010101010101010101010101010101010101010101
0101010101010101010101010101000001010101010101010101010101010101010101010101010
10101010101010101010809061b0508087d5a7d830102795f5501010816075a2e2f0102010701070
1010101010101010101010101010101010101010101010101010101010101010101010101010101
010101010101010101030101010601010601030101030103830e4a0308014934090602080603824
a810201020101010701010101010101010101010101010101010101010101010101010101010101
010101010101010101010101010101010101010103010108010601010601010782490e1b0106200
e81010106010704490e020102030101030101010101010101010101010101010101010101010101
0101010101010101010101010101010101010101010101010101010107010206010801060801030
1820309060106490517010701060717021601060606010101010101010107010101010801010101
0103010101010106060100000101010101010101010101010101010101010101010101010101010
1010101010806943e1bf882014feb6549080247b51c02013224022db318170101010201080101010
1010101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010606010101019c65012b790178f1911b06080abaa3080173a60144f529010701
0201020106010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010103010102010107011a1c1633020244d1660102030daa0b01062a
4e0571148d010501010306020106010101010101010101010101010101010101010101010101010
101010101010101010101010101010101010101010101070202020103017082731a010e0d1d8d01
02088e2d170101a295839d370901010101010101010101010101010106010106010301020102010
2010601080100000101010101010101010101010101010101010101010101010101010101010101
017db45753f64001a8f6010201067c5c010154ee33016bb705060103010101010101010101010101
0101010101010101010101010101010101010101010101010101010101010101010101010101010
1060802010106080817f73f8dee4501051e660801020330170207be580555ee04020117010108010
1010101010101010101010101010101010101010101010101010101010101010101010101010101
0101010101010101010106010802060172e7657af3180179f55b0106016836010601f3a60135b7030
1011701010101020101010101010101010101010101010101010101010101010101010101010101
010101010101010101010101010101010101060101030113b08d7be10501a3b1170206024d5f1701
3beb8d01d42d0107010206060601010606010101060101080107070101010107020107060101080
000010101010101010101010101010101010101010101010101010101010101010108305e11c74d
290121431c08867620b90603c2c5850163b36c40070108010601010101010101010101010101010
1010101010101010101010101010101010101010101010101010101010101010101010101010106
0601014f9b11a133531b07b08a01aba816981706b93da6017ff56c340801010101010701010101010
1010101010101010101010101010101010101010101010101010101010101010101010101010101
010101020101010606016e9b50149692018dd217167655890f0305b5c8351677ec82820101080601
0101010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010208010106937150d0978a017a151b0105029287011c1e515a16ac
300501010201010601010606060601020101060101010201080101010701011b010500000101010
10101010101010101010101010101010101010101010101010101010154514a7dcb012b6c7fe9987
7235a13c116b5d9ab6b014db13280c6bf01020103010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010107070602020101057e6b03
5816868d065137a35957062d0638f20a570189199a2b7b3401020608010101010101010101010101
0101010101010101010101010101010101010101010101010101010101010101010101010106010
5060101131d897d3d168eab21dd468494a2549b01c4f37a660166ee57708c1b0608011b010801010
1010101010101010101010101010101010101010101010101010101010101010101010101010101
010101010101060101070154c8555e360675163e43846a42054da4016933a48701f4b2638c730101
010206010101070101020602010205011b0506011601020601011b0700000101010101010101010
10101010101010101010101010101010101010101010152287fc42b81752dabc8bf1ba47f0430c4ef
200e11179e150201bc7501030601010101010101010101010101010101010101010101010101010
1010101010101010101010101010101010101010101010101010106014954122a3812bf472205ec9
0498535074e4fdc8f0171080ba954022cd31b0601010801010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010201010601829fb45bd
3c9496f84aff05a7cc187ab9144efaf836f0165a00667e146010106010201010101010101010101010
1010101010101010101010101010101010101010101010101010101010101010101010101010602
02060553b48361300732a53eb4545b35496a8d527101186a01aa9c8232f149020106010106010106
01070101065a393b98a397a2750b9740c6440101000001010101010101010101010101010101010
10101010101010101010101010101060207020201010140c8160203a54a1eeba80176650111be01
0558910101080101010101010101010101010101010101010101010101010101010101010101010
101010101010101010101010101010101020202020101497c8304348382ab02ec6307010b1b9aed
4602092d0189ee4a0110d9010106010101010101010101010101010101010101010101010101010
1010101010101010101010101010101010101010101010101010101070601af7f130b7807af040be9
080201216751d2110176290184be0801a0971b01050108010101010101010101010101010101010
1010101010101010101010101010101010101010101010101010101010101010101060106015b3b

681

49a572017f5ba8511706010318a54072022a3c017e300179cf200506060101070701020706010103
4e6d34649527a331493a93415503030000010101010101010101010101010101010101010101010
101010101010101010101020101010606065eb30f379b9b3a3da408018cd08d38c72480484a01060
1070101010101010101010101010101010101010101010101010101010101010101010101010101
0101010101010101010101070101020601020107060601010125c869328e9b8ad15c06018fc27835
e63837c0a5010706010101010101010101010101010101010101010101010101010101010101010
101010101010101010101010101010101010101010801030102010101010801030de7309757a765
e87501062661349cd20d33c57f010601080102010101010101010101010101010101010101010101
0101010101010101010101010101010101010101010101010101010106020102080101010102010
244e9871c669645620306066f4649b570a5acea030101070101060101010101070101535f1c45a5b
62fc41c3a5d5a2920010000010601070101070102010101010106010108020102020101060101010
1010606010606010601010620165589bf8dd24e06060176204a1304ab04050101010101010101010
1010101020101010101070101010101010101010101080101010201010101010101010101020206
060101020201060606020102020101010602077689a8214cde5573010106725a683e21a45a16010
2060201010101020102010107010101010101010101060101010202010601070101080601060201
010606010101060102010107010101060601010101010107010107213c6a527dde27a80607010a1
8890aa3a23c02020206060101010101070101030801060101020601010206010101010201010106
06060101010101061b1b06010606020101010202060102060101010101060107060103733c5a786
4943e7a1706053c780e3b688da5030101010101010101020106010201085e9834a554504f5f472f5b
7a84830100000101010102020207060101060101020101010101010601010606060101010101010
20601010101010601010107b900e001010107010101010706010101060606010101010101010101
0106060502010101010101010101010607010103010203060206010106020601060101010101010
601020101010106010202010601010802010512c379010106010601010801010301010801010102
0106010301010701060606060606060601010606010101010101070807010103010201010601010
601010106010102010601010101060601060101010101070101010ecfb04a0101010703010801010
7010101010101010101010108020101060601010101060601010801010101010206060101060606
0101010207010106010202020601010106010101010106060101010108060108010738e60b06010
20701070117010206010101010101010101010301010601017f7803ab01030107010106010601010
0000706060101010101060106060101010101010101010207010101060606060606010606010206
0608010301012fe4cdce290101010101070701010106060601010101010101010101020601010101
0106010101010101010101060601070101010101010101010101060601010202010601010601010
606080108060101010101010730d700e08207010602070102010601010702010101010708010701
0602080101010101010101060106070201010108020101010106060106060106010106010101060
1010201060101010106060101010602030607010601d300d64c0102080101010101020106060606
0606060601060106070107070207070101010101010201020801070102010101060206010601010
60101060101010101010101010101010101070201020101080101070684e500ac01010601010706
0101070103010101010101010101010105010106060682af07010607021b011b0101050000010106
0201060601010101010101060102010106010202010101010101010101010101010101010101010
301e000d800e1030701010801020602020201010101010101010101010101030107070608010101
0101010101010101020101020101010101010101010101010101010101010606020101060101010
7010101010802015fe2da00004501010601060201010102060101010201010101010107060101010
1010101010101010101010101060201010102060107010101010101010101010101060601060101
010101010101020102010101010101068acc0000ca5a08010107010106050101010101010101010
1020101010202010101020201060707080101010101070101010101010101010106020601010602
070601010207020607020101010202010101060101170104c700e3e26e050107080102010107010
10101010101010101070101080101010201080201010673c0a20601010701000002020601010208
0101010101010207020101010101010101060602020202020606010106010606010801014100dad
6cd00700107010306010101060101010607010101010101010102bf0101010107010101010101010
1010607060101020207010101010101010101010606010101060101010106010101010101020201
010101d40000d6d8cf76010701010601020101020202020101060107010101016701060101010101
0106010101010102060102010101080101010706010602070201060101010101010101010101010
10101010201010207010267dd0000d8dbde01010107010701060201010101010101010101060103
020183050101010101010101011b010201010101060206010106020101010101010101060601010
10101010101010101010101010106010105018cdf000000cc1c03010601070601010302010101010
10101010120060106070106010101030601a8000071090207010000010105010101010701070201
01060101010601010201010201010101060606060601010601010101010717b30000ce0000d7250
1010103010101060101010101010101010101010154a30901020101010101010101010101070102
0301070101010101010101010101010101010101010101010202010606070106070106060285cdd
700d700009c0201010102010107010201020101010101080107011b503402060101010106020106
0202060601010102160107020708020101010101010102060601060201020706010107070601010
70101010101032d00cdce0000dc8a02060101030101020606010101010101010105010101825e55
1701020206010102010601050601010101060101010101020601010708060101010206010101060
1010107070606020107070701017cc80000dad6cda6050101060101060102010101010101010101
1b653e020301080101080601060655d5d600c76e01060000030b71b9709c975775392d7557756e9
6536f45466485778c6f6f3a5e8c8c53534546464677650d44856dc500d7ce00d8ce00d99e65116344

8411666666928f476a6a6a6a6a6a6a6a8f65866a8a9e478f6a6a6a6a6a6a6a6aa441866a6a9e4f525
28f8f47478f8f52476c8652525286a42a7da487a27aa387870c5287a46a8652b10000da0000dadb44
183b7a0c2f2f180c250aa57a25187a25182518a55a45958d0a407373400a8da8782e8d403e403b2e
af2f4078780aa840a873a83e3ea8a80b5454af7f7954793e2121790b0b7921720b547f0b3e79a4cdd8
cd00d800cdc85454afbf721c5567555555557c7c7c7caf67bf67546755924055767c7c1cafab1c5555a
b5582ab831c7cabab7c7cabbf76ab6776bf76bf555567767667ab67bf767c7c7613bfbf34557c7676bf
7f480000d6d60000cd63341c7234bf7c7c6767abababababababab5b29a5341304af5567ab34bf1c1c
87dc00cd0000156b000001349a992d309c31307bc133c1c1379c387b5d398b248e1a24972d48915d
309c918b1a3070303071331a9c8b381a15445f526d448a634d63414f63926666928f9292929292929
292419e8a6b6a664f4f929292929292929274d09f6e7b5731485d4237707037425d31701a9c423130
4839911a4270bb33569c1a56937b9bc1310f5c387ed1296d5077113226263535500d65500d266d77
446d440d66650d4144506d448484446d50268426772641658ed238380f0f933f38c1c193c19c9c33c
1305d70913037303337803fc1701a313f560f9c3780c4429b4cd39aa1d3575748350d903585778577
356565650d0d50500d50650d354e9044776d65900d65900d460d65856d3ad0d4319c1a5d3842709
11a7b80315d91383fb933919138375d2d33c4805d8b9c3770717037c13791b6b960b22357918b644
1500d266d1126290d6b6b6b6b6b6b6b6b449241446b294d506629666b6b1197d500d600cd007e00
0007013264793c3c2aa47d3b7d18a25a3ca4522a0ca3250aa525250a252ea40ca5a33b5a5a0ca2a3
3b3b5a3c6c8d2a99170101010101010101010101010101010101010101010101010201030301020
106010101010101010172b621214095a83b0b0a958d2fa5738d3c3e257a3b730a685578258d0a0a7
3952f0a2e2fa58d3c2f732e4048230106010101010101010101010101010101010101070106010701
01010101010101010101010601060101a8ad2521a55a183b3b40252f5a3c2a180c2f183b0a0a953b
7d3c252f8d21402f3c8679782e683ba3956a9554425f0102010101010101010101010101010101010
102010107010108010107010101010601060101060101a1cb7c780b402178798da88d25a595958d
950a738d400a8d3e2ea873406855af7faf676855557f1c7c67760cc10102060606010101010101010
101010101010101010101020101010706010202070106bfcccd00cecf70010000010298972f87a3a4
a2180ca26a5fa43b878a522a8747873b5fa4a23c182f3ca3522aa3a4a33b3ba23ca2257d0c7db2830
1010101010101010101010101010101010101010101010101820102010807060101010101010101
40c689a53b869573a5a42f0a25250c632f183ca27a182e730c0c250a25a4a3a22f3b188787868f6c6a
2a2f1ac7050601010101010101010101010101010101010201070107010801010101010101010101
01010106010173c8877a2f3c2a2f0c5f86877d866a526c2a2a7da318878f6a7d87a287a28d3b2a7da
3a3a27d52a23ba3a2182b5201060101010101010101010101010101010101010102010117010101
0101020201010101010101010258c968787979a5a57aa53b7a5a2f0c2fa595870aa5a50a0a21a80b
73a52e790b680b79a878687873407a1c52560101010701010101010101010101010101010101010
6010106010108010101010207017cca00c3315501160000010145247d63872aa35f5f476c525f8a63
5f6c6c876c87a3257d2aa43b3c3b3ba43ca48687180c3c3ca
Now consider the case where a deadline miss occurs as a result of a transient overload condition.
The handler waits for the overload to subside and then reschedules the realtime thread. The time at
which schedulePeriodic is called is marked with an X in Figure 12.2.
010009000003b04800000000871d000000001610000026060f002220574d464301000000000001
00e0af0000000003000000002000006435000064550000010000006c0000000000000000000000
d20100003400000000000000000000006a4000004b07000020454d4600000100645500000c0000
00010000000000000000000000000000000005000020030000c40100001a010000000000000000
000000000000e3e306006e4e0400460000002c00000020000000454d462b014001001c00000010
0000000210c0db01000000600000006000000046000000bc180000b0180000454d462b22400400
0c000000000000001e4009000c00000000000000244001000c0000000000000030400200100000
00040000000000803f214007000c000000000000000840000508180000fc1700000210c0db01000
0000000000000000000000000000000000001000000ffd8ffe000104a4649460001020100480048
0000ffed05f450686f746f73686f7020332e30003842494d03ed0000000000100048000000010001
00480000000100013842494d040d000000000004000000783842494d03f3000000000008000000
00000000003842494d040a00000000000100003842494d271000000000000a000100000000000
000013842494d03f5000000000048002f66660001006c66660006000000000001002f6666000100
a1999a0006000000000001003200000001005a00000006000000000001003500000001002d000
000060000000000013842494d03f80000000000700000ffffffffffffffffffffffffffffffffffffffffffff03e80000000
0ffffffffffffffffffffffffffffffffffffffffffff03e800000000ffffffffffffffffffffffffffffffffffffffffffff03e800000000ffffffffffffffffff
ffffffffffffffffffffffffff03e800003842494d040800000000001000000001000002400000024000000000
3842494d0414000000000004000000023842494d040c0000000004640000000100000070000000
0d00000150000011100000044800180001ffd8ffe000104a46494600010201004800480000ffee00
0e41646f626500648000000001ffdb0084000c08080809080c09090c110b0a0b11150f0c0c0f1518
131315131318110c0c0c0c0c0c110c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0
c0c010d0b0b0d0e0d100e0e10140e0e0e14140e0e0e0e14110c0c0c0c0c11110c0c0c0c0c0c110c

683

0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0cffc0001108000d0070030122000
21101031101ffdd00040007ffc4013f0000010501010101010100000000000000030001020405060
708090a0b0100010501010101010100000000000000010002030405060708090a0b1000010401
030204020507060805030c33010002110304211231054151611322718132061491a1b142232415
52c16233347282d14307259253f0e1f163733516a2b283264493546445c2a3743617d255e265f2b
384c3d375e3f3462794a485b495c4d4e4f4a5b5c5d5e5f55666768696a6b6c6d6e6f637475767778
797a7b7c7d7e7f7110002020102040403040506070706053501000211032131120441516171221
30532819114a1b14223c152d1f0332462e1728292435315637334f1250616a2b283072635c2d244
9354a317644555367465e2f2b384c3d375e3f34694a485b495c4d4e4f4a5b5c5d5e5f55666768696
a6b6c6d6e6f62737475767778797a7b7c7ffda000c03010002110311003f00f4dc26b198e1add007
bf924fe7bfbb90b3f3ecc5756daeb6d9ea07125cf2c8dbb7c2bb776ede8e7ec7267d399d676f2a0ffd
9da7a9e8f96edbfc52539f6756c9ba87b4d0c607348965ee0e123f31eda3dae5631ed37e4e25d6b3
6582ac86c6e2787d2cddf46adfbf6eefe6d4b20629ac7d90e20b3737f9c00b4b67dff41cd76fdbf4173
9f555b83eb64fd82cc738c336ff00da83d30272f6522e6d5eb5a7663fadefa1f8dea53b3f47ff000a92
9ec6478a523c557ff277fc0ffd1487ecfede8ffd1494cd9534597bb7bcfaa44b5ce3b5b0d6b7f443fc1ff
63f3d0fa606b7a762b5ba014d71ace9b5aa43ec1263d29ef1b50324be5a311b8a59124dae832088
635b5b1ded7b7fc26efd1ffa2b5253633337170719f959560aa8ae37d8648124325db67f39c9ee68b
f1dcd0f7d61edfa4d258f13ae9a6e63965f5073fec791f6a660fd93d3fd2ef73b6866dfd38bb6d7fccfe
77fc57f39fe9111873050435b84e01a0525ce7891021f6b5ec7bdbfbfe96eff0083f5bfc2a4a4b9b963
173984337bdf4bb52f2d0035ccfcc873777e93e92667577be7f42d11ff0009ff0098235671cb07dac6
3b6c9301a4111f178626b7ec7b3f57fb31b2446fdb113eefa3eefa29293e35eebebdee67a67711132
0c7e734c3546b7538d5936dc435f690d75cf1f4ac7edae9639db7e958ed9457ff005bad739f56074e
f573bf64bf1fd2fb7dbfb53daefe91b7f4e31fd57ff30e76cf47fc17f3fe9ef5a5d7074c38e3edcea9b81b
d9eafaada8d3bfd46fa3eaface67f86dbff06929ffd93842494d040600000000000700050000000101
00ffee000e41646f626500644000000001ffdb008400040303030303040303040604030406070504
040507080606070606080a0809090909080a0a0c0c0c0c0c0a0c0c0c0c0c0c0c0c0c0c0c0c0c0c0
c0c0c0c0c0c0c010405050807080f0a0a0f140e0e0e14140e0e0e0e14110c0c0c0c0c11110c0c0c0
c0c0c110c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0cffc00011080028015e0
3011100021101031101ffdd0004002cffc401a200000007010101010100000000000000000405030
20601000708090a0b0100020203010101010100000000000000010002030405060708090a0b10
00020103030204020607030402060273010203110400052112314151061361227181143291a10
715b14223c152d1e1331662f0247282f12543345392a2b26373c235442793a3b33617546474c3d2
e2082683090a181984944546a4b456d355281af2e3f3c4d4e4f465758595a5b5c5d5e5f566768696
a6b6c6d6e6f637475767778797a7b7c7d7e7f738485868788898a8b8c8d8e8f8293949596979899
9a9b9c9d9e9f92a3a4a5a6a7a8a9aaabacadaeafa110002020102030505040506040803036d0100
021103042112314105511361220671819132a1b1f014c1d1e1234215526272f1332434438216925
325a263b2c20773d235e2448317549308090a18192636451a2764745537f2a3b3c32829d3e3f384
94a4b4c4d4e4f465758595a5b5c5d5e5f5465666768696a6b6c6d6e6f6475767778797a7b7c7d7e
7f738485868788898a8b8c8d8e8f839495969798999a9b9c9d9e9f92a3a4a5a6a7a8a9aaabacada
eafaffda000c03010002110311003f00f59f95f4ef3543e7ad5359bebb9247bf8ed7f4ae8f24e5ed6ce
ddd6e0db8b75155f522e0a92b2f1137a8effb098abd2f15762aec55d8abb15762aec5503ac6a7168f
a65cea52c6f30b74e4904439492c84f148d07f33b10abee715639f97be60f30eb3a74d079b20821d
7a0924767b20ff005592dde69123e05ff6a331b4520a9dd3d4fb322e2ac93563a97e8eb91a3843a9
b270b5694d23491cf10ec3b84af22bfb54e38ab09fca3b0d634bd0ee2d2f2f64d534c6bcd424b6beb
b94c976271a85ca4cac08a7062a244a1f839bc7408a98abd0f15762aec55d8abb15762aec55807e
6679b7ccde5e8f4bb4f2859c377aadcded9fd6cdd5442b672dd450346181149672fe9c5d42fc721fb
1baacdb4fbd8b52b1b6d4205748ae63595125529228715a329dc30e8462ac5bf34a0d56efc91acd
9e992b5ac73d9dd8bfbd8a4314f0daa5b48ede89520891ca88c30358f9fa9d5462a8ff0022c1aa5a7
95f4fb3d566fad4b6f0c71dbde3317967b611a989e5a81fbce278c9fcccbcff006b156478abb15762a
ec55d8abb15762ac3ff0031bccfacf9734263e59b58aefcc9720fd496e837d52248e8649ae1908211
410a29f1348f1af8d15641a26aa9ad69906a290c96cd27259ad675292c3346c5248d8103757522b
d1bed2fc38ab07fcccb4f34ea5a8f97edb48d425d16cadf50b6922bc81d49b9bc759b8452a6e4c118
4aca8db4bea2d3fbbc55e836525ccd676f2dec22daf1e346b8b70e2411c8402ca1c5030076af7c55
5f15762aec55d8abb15762a86d42fedf4cb1b8d46ed8adb5b46d2ca40a9e2a2b4007527a018ab0df
cb4f396b7e69b5d422f335847a6eaf6d7b78b04103178daca1bb9add2ac7632c66231cd4db98e6bf
0bae2acef15762afffd0f6f69808f36ebe4f7b7d3ff54f8ab20c55d8abb15635e72f34dcf95edac9ecb4
dfd29777d3b411db99d6d54048649998bb2bf68e8001df156291fe687999f953ca517115a30d5622
0d363fee8f1c5561fcd5f3206e07ca31d6a548fd2b1120815228202715558ff33bccf21dbca5080582
a9fd2d16f5e876836fa715541f993e682dc57ca5172f03aa47dbfe7862a81d37f34bcc1736514f65e4
d861b795a4e11b6a9144432c8cac69e85072604ff95d7157a3e81ab26bda1e9bae4719863d4ad61
bb5859839413c61f8965d8d2b4a8c5526fcba35f2ba9f1bfd57feea7738ab2ac55d8abb15762aec55
d8abb154b75abbb3b386d5af6d1ef125bcb582248e2f58a4d2ccab1ca47ecac6c4317fd8a72c5532
c5521f3bede4bf31ff00db2ef7fea1df1547683ff1c3d33fe6120ff936b8aa618abb15762aec55d8abb1
5762a81d666b3b7d32e66d4206b9b3451eb40b1faacc0902813bef8aa3b1579ffe6d79822f2c699e
5dd5e6b77ba54f3069b6eb04455599eeddadd37620001a40589ed8ab7ff2b1b512398f2e4862fe71

7b6a41ad694a362ae93f326f22a7a9e5d9813b6d776a687fe0f1572fe64dd3920797a7d856a6eed7
71b6e3e3dfae2a888bcf7aa4abc97cb730de9bde5a0fc79e2ab879eb532dc7fc393f235a0faddaefc7
73fb78aa79e59f302f98eca7bafaa496335adccb67716f3323b2c90900d1a366520d453154e71576
2a95797ee34bbab1965d22d8dadb0bcbd8e48da23093731dd4893bf13d79caaefcbf6ebcfbe2a9ae
2aec55ffd1f70e9e29e6ad6cf8db587ebb8c553dc55d8abb15609f99304b3b797d21157faecc41a13f
f1e571e18ab1336f3a2a2c41aa54ab27ed57735aeddfe55df6c5545ac9f980a8e558fdaa07a7214ee
3da9fd2b8aa323b0744e0a6528410085f89abd4ec3e1dfaff006e2aac6c25e04b33220340ca8683e
20761d3a8ebfd71540d9c17ed0992fe3f46f0fabea227ef085f50806a2a4d542d7c3e9c559d7e54af0
fcb3f282d294d22c694141fdc27cb1554fcb904795901143f5fd576ff00b79dce2acaf15762aec55d8a
bb15762aec5501aacdaac315b9d26da3b995eeadd2e5657f4c25a3c804f229eec895655fda38aa3f
15483cf02be4af320f1d2efbfea1df154c34304689a683d45ac00ffc8b5c551f8abb15762aec55e37f9
99f9cfab7e5879f3cb3a26bda3db43e42f333496d0f9bdee2522dafa3899d6da681216a34adc444dc
e8d53fc8d8abd23ca37be66d4742b6bef3769b6fa46b338e7269d6b3b5d2c28dbaabc8c91fc74fb40
0e2a760cdd7154f315436a125ec36534ba740b737aab586076f4d59abd0b76db1544e2af2afcfd84
cde55d042fdb5f34f97caef4dff0048443afd38aa17eaf34b44606a2955615dfc4f4ad2bd7fae2aa125
b488bcd59cb85211cee2b5ea295afdd8aaf4b2796b1c85b801561c6bf131a9fd5fe60e2a9a5b413a
7c2ac426ebf10ab107a81e231571e68e79060c37a0a8dcf615ff003fbf154e7f2ccd74ed68d081fa66f
a95eb405462acdb15762a81d26e352bab579355b35b1ba171731a42b209818239dd209390ef246
1242bfb1cb8f6c5507e6ef34e93e49f2ceabe6dd79de3d1b46b77bcbe922432bac310ab10837341d
862a92c5f9b7f96d3f9167fccb83ccb6527922d6117173aba49ca388310a11d47c6b2166541115f53
9909c796d8abffd2f71dcf947cbf777d71a94f6ac6fae828b899269a32e231c541e0e05003b62aa7fe
0bf2e56a6d64247426e6e4ff00cccc55aff04f96eb536b257fe626e7feaa62ab87937cba3716d27fd2
4dcffd54c55037ff00969e47d55163d4b494bc446e48b3cb34815a9c6a39486869b62a80ff009531f
95fc837f86ad7901406b2d69ff078aae5fc9cfcb2424af972d813d7797fe6bc557ffcaa1fcb6ffa976dbc
3ac9d07fb3c55a1f93ff009680711e5cb60a7a8064a7fc4f15792ffce407fce3ee9dadfe57ea6bf978d2
e8de79d283ea1a5cd613bdac977e90666b47e0c390743c631fefc58f7fb555583ffce157e556ab37e
5d7f8eff33352bfd4a3d7290796f48d46f6e1edad74e809512244d271569581e3b7c3122f1fef0e2afa
660fcb7fcbde062b5d1ed4468c58c7133850ce4b1242bf5626a7c71555ff009569e46ffab343ff00052
7fcd78abbfe55a7917feacb0ffc149ff35e2aeff9569e45ff00ab2c3ff0527fcd78abbfe55a791bfeacb0ff
00c149ff0035e2aeff00956be46ffab345ff000527fcd78aaa2fe5e793545174a8c0ad76797aff00c1e2
ab87e5f793c1e434b404d77124a3affb3c5546ebf2f3cb73242b6d035a18e58e4668e491b9c68c19
a33c98801c7c248f887ecef8aa247917cacbf66c48f94f3ffd54c556c9e41f294d14904da70920990c
52c6f34ecaf1b02a55819284106841c557a791fcb11aa24566d1a200a8a97170a001d0002418aaa
7f83bcbf5afa1357fe62aebfeaae2ad7f833cbdbffa3cdb9a9ff4abaebff237156ffc1fa08d84338f95ddd
0ff0099b8ab87943421d23b8f0ff7b6effeab62af2ffcd0fc95bafcc4b6d53cbd24102f95a4d3a65d2f96
a77cb7235a65a4173323472a7080ef1f12cdcbe220fc2155645f967f97faf691e4dd3749fcc7b94d53
cd56118b6b9d5ac2ff005064bc4880549a412b2309587f79d5797c43ed71555977f83f42ff007ddcff
00d26de7fd56c554ae7c99a44b0491dbb5cc13b0a24df5bbb7e27c7899a871555ff08685fc973ff49b
79ff0055b1541ea9f973e4dd6ed458eb1a735fd989239c417573733462585b9c6e15e52032b0aab7
50715412fe51fe5dab2bae8aa190d54faf73507dbf7b8aae3f94bf97a7903a3290c6ad59ee77277ff7
ee2aeff954df97c0d468c01f1171723fe66e2ab97f2a7c8280aae934526b417375d7fe46e2ac67f303
f23b40f3179375ad27caaf71e5ff0033dc5ab0d2359b4bcbb8e582ed3e388f2129f80b0e327f90cd8a
be61ff009c2cf207e6eeb3e62f30eb3f98be61d7a0f2b796af2e74c6f2fdc6a17691dd6b4769ccaa241
5584104ff003c8c9fc8d8abeddff0b68e7b5cff00d26ddf6ff9eb8abbfc2ba3f85d7fd26de7fd56c550f67
e52b182165bc9ee6e65f5257128b9ba8808de4668d388988f810aa72fdae3c8ee71579dfe6779734
2fcc0fca9f33e85e53bf8dafb5fd31ed746babbd4e65b49a4bb8d4c6c0bcaf55f887ec7d0715784689f
f3839e5bd1ff00293ccde5d8bcf1eb79e7cc5616ef3dff00d61a3d1615b5ba82f01fab46e0c91968787
af2f2e21b9a46adf0e2afffd3f7f62aec55d8abb15762aec55d8abb15794fe645f7e66e8faec773e531
797fa33c36f7f259db436eeb1ae957224beb6e4d13397bdb6938c02b5f5a2f838f238aa496fe54d6b
5afcc5d6e1d563865b99fcb5a1a4fa86a3a6faf6f2ce2f6fdeea28dc708c3ac3224678fc60189dbece2
a97689e58d7746bdb19748d29f54f227983ccb3cfaae917113ac9a35e5bea934b05fdac7328a5b4d
1222cc8a3e0631cf17c2f362a997e4c790af22fa8f9aaf69a5b69b77e62822d361b392c6e2e63d435
49648def5e420caa91aab5b808aa15f957157b862aec55d8abb15762aec55d8abb15762aec55d8a
bc62eff39750b1d64e8daa25ae910cbaa49a78d6ee54cba65bdab477af6b3bcd1cbc794ed6cb098a
636ef0cdcd5b973879aa925efe64f993c9baa798f538dad759b6bad5443fa2a3fac34a268fca69a99
7b726466489a5b7e2221116fde31fb7d555be66fcd0d5b56f22eaf6f75ab68b6eba9e8dae5ee97ad6
97733cb0c9f51b5b79218125578785c933bbd15d982463e1e5ea2a2abb59fcd5bbbed3f5cf284b71
6a8f1d9f982d99e296486f922d3b4ab7bab59f92c80ab3fae4f314e540c9df154b7cd3f999e61bbf23
79bf48b7bbb0b28346f2d5e07737d345e60fac47a445756d790ac62bc1ddcfef0b28fb1c5da4e498a
a6727987ce3f97b043776f7ba60b3f37a20f2edaeb1a9cf71a5d94f6562d2b73be95791378e43705f
85522668f9c8c7154d1bf31fcc7777569777b069b716b079aee341b6d3ecdae12e8bdb59dc4c1848
6755777e3c046f17124f2e3cb8f15572fe726aa2ebcb96b750d99d2fccf0e9aefaea075b4d2a6d422
ba924b7bbac9f6eb6eb1424bc64c9251d5485575587fe577e68dc689e55d122d62f6195e7b0d062

685

bcd7efee679440ba8dfead0196e44b290154db22239284b4f189a460a98abe8cd12ea7bdd26d2ee
e65b7b8b89630d24f65cbeace7f9a2e64b713d4549f99c551f8abb15762ac4bf30f54f32687a241ad
796e096f0d8de5bbeab616d089eea7d39dfd29fd053feec8c3faca3f6fd3e1fb58abc83cc5acf9df5dd
13c94dafa8b4d6ed7cd7a7e957f14b6b32db3dd59c57697939f44a192d25668c21afa7f083cb7c553
9bef2e6bba16ba759f2db412f9eb44b26bfd53cbba67ad6ba6eb365797739b8b7f4a677459ca2c6d
04a58b24ebc5cfa333d5562f65e5fd63cebe6fbdf2f6997b79e5b8eebc99e58b8b7bb945c4577633a
df5ddc4fe8a06555ba58cc69282ff000f24f539a7c2557d378abbaed8ab00b3fca1f2d69f1dbc569737
a896ab6e90f29229289691c11443e288f45b78c7befe38aafb4fca6f2dda6997fa3a4f79269f7f1244d
1c8f1168b83a3b344fe90605cc69cd4929f00a20f8aaabfffd90840010824000000180000000210c0
db01000000030000000000000000000000000000001b400000400000003400000001000000020
00000000000bf000000bf0000af4300002042030000000000008000000080fe7fe94300000080000
00080ffff53422100000008000000620000000c00000001000000150000000c00000004000000150
000000c0000000400000051000000443b00000000000000000000d201000034000000000000000
000000000000000000000005e0100002800000050000000f403000044040000003700000000000
02000cc00d301000035000000280000005e0100002800000001000800000000000000000000000
00000000000f30000000000000000000000ffffff00fbfbfb00e2e2e200c2c2c200fdfdfd00fefefe00fafa
fa00fcfcfc00ededed0098989800f8f8f800adadad00d0d0d000f9f9f900dddddd00e6e6e6006f6f6f00
27272700d5d5d500f7f7f7009f9f9f0019191900d2d2d200e4e4e4001616160061616100f6f6f60053
5353006a6a6a00bcbcbc00747474007575750085858500f2f2f200c6c6c600c1c1c1006464640062
6262008a8a8a00acacac00575757005b5b5b00c0c0c000e8e8e800f4f4f400b3b3b3004c4c4c0052
525200a3a3a300e0e0e000b4b4b400ababab00b6b6b600878787003e3e3e00aeaeae009696960
0aaaaaa009d9d9d008f8f8f0097979700b2b2b200e9e9e90090909000818181009a9a9a00ebebeb
00eeeeee0039393900cacaca009b9b9b00e7e7e700a8a8a8006b6b6b0088888800b8b8b800b1b1
b1007c7c7c00f3f3f30076767600d6d6d600606060004242420084848400828282008e8e8e00a6a
6a600e3e3e3005959590047474700c3c3c300c7c7c700c9c9c900939393001d1d1d007a7a7a00d
bdbdb00cccccc00cecece00c8c8c800f1f1f100e5e5e5007b7b7b00ececec009999990086868600b
5b5b50083838300c5c5c500a9a9a900bababa00cdcdcd008b8b8b00dedede00e1e1e100afafaf007
f7f7f007d7d7d008c8c8c00b7b7b700d3d3d300f5f5f500a7a7a700bdbdbd00dcdcdc006c6c6c00dfd
fdf00bfbfbf007070700089898900cbcbcb00efefef00a4a4a400d7d7d700a2a2a200d4d4d4007e7e7
e00b9b9b900dadada00a1a1a100d9d9d9009e9e9e008d8d8d00d8d8d800a5a5a500c4c4c400beb
ebe00cfcfcf007272720095959500a0a0a000949494006e6e6e0028282800929292009c9c9c00777
77700b0b0b000d1d1d1006666660022222200eaeaea0051515100bbbbbb002b2b2b004f4f4f002f
2f2f005c5c5c002a2a2a0058585800323232005f5f5f00181818000c0c0c00303030002e2e2e00f0f0
f00091919100020202001b1b1b005d5d5d00333333006d6d6d003636360003030300060606001a
1a1a00050505000f0f0f00797979007171710065656500636363007373730078787800171717001
c1c1c00242424000a0a0a000d0d0d00010101000e0e0e001010100004040400505050001515150
0121212001f1f1f0046464600565656004d4d4d0040404000343434000808080014141400494949
003a3a3a004a4a4a0048484800383838003535350007070700555555001313130080808000545
4540021212100252525005e5e5e00696969001111110041414100373737002c2c2c00313131003
c3c3c003b3b3b004b4b4b003d3d3d005a5a5a00676767000909090001010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
0101010101010101010101010101010102010506061406013f0f580b0101037f840101070501661
83f050105010801010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
0101010101010101010101010101010101728f24362282d9c10458d12b17b8513dea1a3d14e1e5
87dc3570a9775a552c59401b30dbf1925bd089b108019fa51abf03f1e66884ec0a06959c6f980596
db315367949a8379a5a85e0f010601010101010101010101010101010101010101010101010101
0101010101010501017a18082310010f8f3d7301077f719e020105510b1e4b47840106010101010
101010101010606060101010801050106010e01010e0101010800000101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
1010101010101010101010101010101080101606f01ac1801235f7b0602011ea67d070678b20796
ab940501010201010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
010101010101010101010101010101010101616817e874d6637a5c07d2a202d970eb3a019f32dc
18061c139c2502c06901817b04300e1610000026060f002220574d464301000000000001000000
000000000300000000200000641500006455000014642cd0720e010189bf0bb158559b0108b583
2b1c08016087ad5b06dbe101ec011d1f01483f07010101010501010101010101010101010101010
1010101010101010101010b0101050b97df015320014fdc524f010544c25d010133ed7a83007b08
02010101010101010101010106060101010101010101050601080b01020807018687010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101020572ed0a9e2f230732a10f05010868c30
10510bd6001a4ed05010501010201010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
101010101010101010101010101010101010101010101010101bea53385f00105012dee4405b05
bf07d94658bc1060159868c95017569028149917563487a43e433580606763917792d6c4b01022

a356981020176b7e46101aa5505d97af11e0101070108020105050101010101010101010101010
1010101010101010101010101080105012dd9bf97c09c0e0ea340010501082b680172c5530558f2
5c01010b010101010101010101010101010101010101060501010101010105060106ffff01010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010701013b8924e93a490648ea8b0186a209
1f0584ebd14d0733d9707f01010b01010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010144d4798463ecb1099e4fdb5d84e
c86a3544eed73a04f07ee7f3b11081d4201b757942997a7b709e3816ac27f15a097ae3e99b71018
302e941d0122ef64ac1e01db6c43a7073c47013817050106060101010101010101010101010101
01010101010101010101010101010501066bd914e849467001df99175b28010ca206d1208a098b
cb0a04830101010101010101010101010101010101010806080105010105050101070500000101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101011465e27923a90b1594435f9c51266
b849d011ad48d78017ce3276089440105010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010184575d96014c0c7796063789
e1be022b7b5698016b8e34b09042b2b16c2e029587012e0c4a6243a9510111da4f7435a0662150
c3157e64013a749c47014398a4e45688bf020e9793751301010101050101010101010101010101
01010101010101010101010101010501060184e54065b89f66e12de2d83c25e608281420d8064d
a23fe73a61e8400101010101010101010101010101010101060601050e07020101080e060153e8
01010101010101010101010101010101010101010101010101010101010101010101010101010
101010101010101010101010101010101010101010101010101080133d5886a376891152daf888
4788d7a8977a70e223a014cdc0114b80a010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
0101010101010101010101010101010101010101010101010101010101010b441401017a68011
42961a20601011ba20801012d4f2a921b0e014f0e01c28e0501a21b01689a8d0e27dd08063f0101
010507080114010122b10608010522cd6706010e01056501010806010101060101010101010101
01010101010101010101010101010101060101064fb28d793973b13401df54010161012b71c6180
64da266e01e05e112010101010101010101010101010101063d5d3b0491783ba49c2b851a8b06ff
ff0101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101227a050984051b0ba2a13
20e015c68da9a5d01227b068ad40201db820e05010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010106010601070101010
18ddc3f0101060e0606010202015cdd5d010506010158d90a010106010123bbc24026800105010
1050106010654170106050101020101a29a71a21f0802060508010601010106060101010101010
101010101010101010101010101010101010601010201080805050101010b37bfb1845c6455001
e02029b3272de7468da2901010101010101010101010101010606df866724878315723cb2719f58
01000001010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010106020101080101010106
1ed1407b312039d99e01023a597d5ed5b28976580101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010106050101010
10101052d040e06060601010101060105435c840501010108846d480108010106a2619f172d010
e010508010b01010e466806010105010105011b94487a70060106010105010508010501010101
010101010101010101010101010101010101010101010501050101010106010808685e312364b
78e9c3306012c8e51038f7c04782d01010101010101010101010101010606d3225504877c0a134
b9c57909714ffff08010601060101060101010101010101010101010101010106060101010101010
10b08060101020101010106050101010101010601010106010601010501010606060101010101
0105010e2d84435872d73d0101084866433f437d2c060102010101010101010101010101010101
01010101010101010101010101010101010101010101010101010605060101010101060101010
10106010801010101010b01060606010101010101080101010102010601010101020201010101
01010101010101010101010101010101010101010106050501010506010601010106010601010
606010b0101010101010101010101060101010601010101010101010101010106010e01010506
01060601010506010101080101080601010101010101060601060601010606010205010101060
1020e452f080101020101050101060101010101010101010101050106010101060bd85c9472837
c0c86491810a47c08ffff010605010b0601010101060606060505010106060606060605060601010
60606060101010606010106010101010101060106060606060606010601010101010101010101
0606010101011b0105080189b3d52d01011401010101060101010105010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101060106
01010101010101010102011407010801010101010101010801010505010101050601010101010
10606060606060606010605060106060601010606060101010101010101010101011406010106

687

01020601010601080806060606060606060601060205010106050606060606060606060101050
10701010605050101010605010108060106010101010101010101010101010101060601010102
0e01014f014ec7d66d020101060105010106010101010101010101010101070201010208011eb1
8b1b01010b0101060501010200000102010106010605010106060101010101010101010101010
10101010101010106010506060601060101010101010101010101010101010101050601060506
01060101060505060105010108060572c40000b201010102010105010106010101010101010101
01010606060606060606060606060606060606060606060606060606060606060606010101010
10101010101010106060101080108010106020101010101060606060101050101010608010101
01060101060101010101010101010101010101010101010106060606060106050606050506050
60b050e650b0201140e1401010101010101010101010106060101010601010101010101010101
01080501010201020606060101010106010105060101010101010606050606060101010101010
1010501080801010186b40000d40e0b0101010101010101010101010101010101010501010607
0101050105700307018b740602010801015400010101020801060601050805060101060505060
60101010106060606060606060106010101010501010106060606010101010101010101010106
06010106010105010101010101010105050101052600b900d0680e01010501050601010501060
10101010101010101010101010101010101010101010101010101010101010101010101010101
0106010106010101010106010106010101010808010e01010e010101010101010101070101050
80101050501010806010101010101010101010101010101010101010101010101060601010101
0101010106063dd1ac8383d2d3d450062201010201010101010101010101010606010105010101
01010101010101010805010101010101010606010101010101010101010101010101010101010
1060506010101060101060705015200b30000b2010e0606060606060601060101010101010101
010e01050101010607010801010231b3cd1005010e011600080601010101010101010101010101
06010101010101010101010101010101010502010605010801010606060606060101060606060
60606010605010106050106010101010601014f3f08010123ce0000ccc9bf012d01010602020501
02010e06060606060606060101010101010101010101010101010106060606060606060101010
1010101010505050505060606060801010101010101060101012c5d01010101010101010101080
10706010608010101010105050501010101010101010101010101010101060601010101010106
01010606010106010544602101012a00a78b01010614010101010101010101060105060106664
60606060606060606050101010107070101010106050506010606010608050601060601010101
010101010606010101010806050102015bbdcc0000b9cf0d010501010101010101010606060606
06060684770e050106010106010802010138b300d027b10105d7ff01080e06010e010605050601
01010101010606050606010101010101010101010101060206010102050101010101010101010
60601010101010101010101010101010106060601014893017a84a7c900b900c9ba23010605010
1011b010501010101010101010101010101010101010101010101010101010101010101010101
06060606060606060106010101060601010601010501010505060107018356020101010101060
60601010105010601010101060501010601010101010101010101010601010101010101010101
06050501010101010101010105060e6c8063cbcc5d010814010106010101010101010108010101
0106185d010101010101010101010501050101020106050101010101010801010101010101010
10101060605010605010101060101010501010ecd000000ba0000a30e010601060501060506010
1010101010101143d010106010502060501010b05740000bcc9a99b0e260005098a7ba4334c3e2
e336b33336b786f6b332e3e3e2e336b3535353535784c8a2e78384c357b2857856e6e318c91497
b4957859149342834289e74283874380c283434283838283a0c85786f60000000b30000b3b84c2
4a42b35236f93782e7c6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6
fa48a6f802b1e1e80041e1e7c8a1e80a46f6f7ca4356b281e357878784c4c8a8a3ea46f6b8a2e929
e2e2b9333332e4d6b332e3e4d4d3e2e336b74383e334d9e3e2e2e2e3e3e4d9e743a2828342838
380c3a74333a8fa3a300c6494d740c7b0c283a3a3a3a3a3a3a3a280c3a7b4928286e3a3a3a3a3a
3a3a3a3a280c850c3e408c693d0a420a3942878c39693b151569693b9c4742696969420a96399c
154769473969425e0a4bbdc7c8c9caa19ac6962e3e333e4d2e3e9e3e3838383838383838783374
283e74356b3e383a742e1e7500c90000000067080006075777468651639f9f94625d64836370624
65d5d46836263636363940d9f17640d935c87254a997ebf11c0c11d81bfbf997e99c29dc39d504e6
020c367be9d9981c2c34e679dc28189951f4a6789764591936b0c915797212996494269423d0a0
a0a0a0a0a0a0a3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d6969696969696969
8715873a2849490c0c577b6e490c334d0c334c1e35a4a4938a6fa47c8024045b1e6d1e4c24465d1
a4293705c5d6262799051138888135190900d638886799f881351868d617d7d7d7d72720f723273
7f8d720d722c41b9a732738686737f7f727f7f7f7f7f7f7f7f737f7f3273327f7f3232323232323232327
d587f68b2c47627713c566a553c873b778f9b399677829bb240409b960a4296b2969785153b158e
3b8c8f470a9e6f3895911b842d2c582ca22c483f2c102c3f3f3f3f3f3f3f3f184310443fa22c3f4843a24
33f449cbcb900b3c5213feaff0101580c01010601010101010101010101010101010101010101010
10101010105010101434748038b889070130d908b179f8679909017618d137f321303737f0f6118
6658185186328651885d7f7f1352680101010106017d4101060601060101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010105010601010201080101010101010101010601010501014b64010501010106
010101010101010101010101010101010101010101010101010101010101010101080108015cbb
b34a0101020501010102010101010101010101010501010101010101010101010101010605010
63eb88b617d8886940f7d6170170f8b17179f178d869f797d8b0f8b7d7d03038b8b031066588b619

086137d730a2e01080101060101010101010101010101010101010105010e0105060501010608
0108013e00bcbdbe8b010100000101580c01010601010101010101010101010101010101010101
0101010101010101010258408d9f706279885d837994700d9f929f045c6346948b9f9f5c460d6170
8879610d70178d62617051796404a848050505010101908901060601060101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101080105020105010101010101010101010601010501014b23010601010
10601010101010101010101010101010101010101010101010101010101010101010101010106
b8b9590a830101010114010101010101010101010801010605010102010101010101010101010
801062e450f797083949017798b8d9f9f0d0d9f5d041762796d131717177d17176173327d8b8d51
887090518688615e7401050101050101010101010101010101010101010101650102010102010
6010501010685bab8130b01080100000101032806010101010101010101010101010101010101
0101010101010101010101010510b28d0d836262519f925b0470635d645b1e5d46791746949013
940d86138890908b51902e3b94946317798852430106050608068867060101010601010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
010101010101010101010101010106010701869c01010101010101010101060101060101365b01
06010101060101010101010101010101010101010101010101010101010101010101010101010
8010875b3b40943b59401020101010201010101010101010601010501060f80010101010101010
101010501019eb60d6417639f170d83867983465d469494635d796246177990135117179072720
f728d7d8617138b13947d9b2806060101060101010101010101010101010101010168b77a08080
10101010101060107880a65010106020e11000106733406010101010101010101010101010101
0101010101010101010101010101010518779492809f8646832b705c5c0d5b5c5c235d177d516d
0d1790909417860d13638d8d0f57270d135d0d790d596605010101010179600601010106010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
101010101010101010101010101010105010107016fac010101010101010101010606010601016
a2b06010101010601010101010101010101010101010101010101010101010101010101010101
0101010e31adaea9628b45af340105010101010101010101010101050105010583850101010101
010101050106010128b05c9217639470889488949f901363635c2464179f83708b888b888d90171
7516173178d868679619086180a28060106010101010101010101010101010101010101a22fb10
10502010601050808010106010105010801010000010632340601010101010101010101010101
01010101010101010101010101010106010558365d7c1763942392809404884670836492836d64
0d886346238617832364630d8364831e979f249463625d5910060101010805514e010101010601
01010101010101010101010101010101010101010101010101010101010101010101010101010
101010101010101010101010101010101010106010606039e0101010101010101010106060106
01062180060101060106010101010101010101010101010101010101010101010101010101010
10101010102019f63135d7f1046838d7a010102010101010101010101010201020601a20f010101
010101010101010606013aab627970945d945d4692626294645d178380235d0d245c7062631388
9f63949f7986887990888d517d7d10470c060105010101010101010101010101010101010101066
3070101080102060501060101080202010102060820020105323a060101010101010101010101
01010101010101010101010101010101060501014877946da4839f237c5d9492235b2b2404041e
7c2e04646d236d645b945d4694629f2b2b70800d046463235caa66050101010101867601060101
06010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010201050105060101010101010101010606
01060106548001010106010601010101010101010101010101010101010101010101010101010
101010101010101080506010b010b010601060501010101010101010101010105010506010101
0101010101010101010106010131a746645d0d465d469f702b92466d23945c6f6d5c5c5c925c642
370646251517913867f8613869013518632420c010105010601010101010101010101010101010
10101010102010101050106010105050501010801050101110001057f6e0601010101010101010
10101010101010101010101010101010101010106010618826323246d625d709f9292242b6f702
b4670645b926d6262515d93799f708393869270646d5d1304886364a83f010106060801514e010
60101060101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010102010106010201010101010101010
10605010601056c2b0101010601010101010101010101010101010101010101010101010101010
10101010101010101080601020601010601080601010101080101010101010101010101010101
0508010101010101010105060101069ca9645c79519f5d4662639223465b93238370620483175b
79245c645d887d9061327d8b139490178613900f470c0601050105010101010101010101010101
0101010101220101010101010105070101060101010701010108000001057f6e06010101010101
01010101010101010101010101010101010101010101060605034b94466480175c629f1763235d
93642b8a237c236f63945d9488835c92518883885b7961702b831e945146a63208010101010188
67060101010601010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010102010506010501010101010101
01010106050106010555240101010601010601010101010101010101010101010101010101010
10101010101010101010101010501060501050105010105050101010101010101010101050105
01010501010101010101010101010106060547a717510d0d70615c042394709f626d6470790d5b

689

7013465d5b7c94798b5117582c886186618d8d86727f7f157405010801010101010101010101010
101010101010101010806050102010801010601060105050105010801000001018d3401010106
01010101010101010101010101010101010101010101010106010101734b8646044c83705c9f62
46882b4c6d2ba48383245c6d640d465c88880d6370620d51512815905d9f649263990901010101
0105514e010101010601010101010101010101010101010101010101010101010101010101010
1010101010101010101010101010101010101010101010101010101010101010e658301010101
01010101010101010101010636800101010601010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
0101010801017f900101010101010101010105010e8ea55c6f5c9f9f8d945d62889462705d5b046d
807083462b9470621717510f7f7d8b7d7f8d7d7f9f8810324385280501010b0101010101c80a0000
26060f008615574d46430100000000000100000000000000030000006415000000000000645500
0001010101010101010101010102980e060107010101010101010101010101010101010000010
19034010101010101010101010101010101010101010101010101010101010106010566567283
5183179f9486131779637086946d83929413868b8d639f66868888887951618b6e71320f6386720
35407010501050101514e01010101060101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010601060
104a0010101010101010101010101010101063680010101060101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010108050601025b91010101010101010106010101013da10d0f720f8d736186137
27d618b8863709f1388469f79038b880f6172184848a244667f73187d72a258448c3e01050101010
10101010101010101010101010101013fa36808050108010101010101010101010101010101020
20601863a06010101010101010101010101010101010101010101010101010101010801010395
8c96970a98396915973b983d98395e5e8e3b97983c42858c15918c15978c978731878999877b3b
3b3b471d840101010201018676010101010601010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
070101135e050101010101010101010101010101064b800101010601010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
0101010101010101010501060601067d2301010101010101010101060b01969a15150a399b694
29c423d429c42395e983d4239563d398e694298983d3b158e8e97159c47153b8e879c969d9e050
1010101010101010101010101010101010101012d911401060105010101010101010101010101
01010100000506134906010101010101010101010101010101010101010101010101010101010
10101145e8f753636755427715682368f4b6a54554b368f55896a274b3682777777777127278236
6a36216a555555570801080101010290760106010106010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101050105017a010101010101010101060101010101064b8001010106010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101060101010501010101010101010101010601010106917170928
00493937c6d5b5b5c465d645d8383836246635c5d649423235d70705d5c5c62624683636370836
39465010108060101010101010101010101010101010101010101010505010101010101010101
01010101010101000005061349060101010101010101010101010101010101010101010101010
10101080108070108060105010201010601050501010101010101010101010508010101010101
01060505010601050e05010106010208010106018d89010601010601010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
0101010101010106080102060107010101010101010101060101010101064b800101010601010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010105010801010505010101010101010101010506011
48e040101050101080e0106050101060601010501010101060101060101060101010101010101
06010106010101010e0808060101010101010101010101010101010101010e050102010608010
101010101010101010101010100000606887b0601010101010101010101010101010101010101
0101010101010101010101060b010601050105010102010501010205010606010101060601010
1050101010601010101050101050101060801070501060601018b890106010106010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
101010101010101010101010101080101010601060101010101010101060106010101014b8001
01010601010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101060102010101060601010101010101
0106010501018c8001010801060105010101010106010101080801010606010108060606060606
06010601010506010501010601010101060801010101010101010101010101010101010101010
1010105010101010101010101010101010102020101887b060101010101010101010101010101
01010101010101010101010101010208010601010501010101010101010605010101010106010
101010101050601010106010101010102080e0101020106050106080101026189010601010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
101010101010101010101010101010101010101080106060b0801010101010101010601060101
01018280010101060101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010601060114840101
0101010101010601010201878a010101010501060108010101060101010102060106050506010

60101010101060801050105050105010105080108080101010101010101010101010101010101
010b7f140101050101010101010101010101010101010100000101137b06010101010101010101
01010101010101010101010101010101010105010601010501050102060106010105010601010
201010806060805010105010601060501010501182406010b0101010101060101060105617501
06010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010106010107017339010101010101010101
06010601010101828001010106010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010106
02793301010101010101010608010106877c060606010501060101010101010605010101010106
01010106010606050501010101060106010101010501060108010101010101010101010101010
10101010101145244010b01070101010101010101010101010101010000050151570101010601
01010101010101010101010101010101010101010101010101010101010101010101010101010
1010101010101010101010101010101010606010701026e437f6e015c430801060107010501010
70161750601060801080101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010105010680037f810163680601
01050101010805010806018280010701060501010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010105
06010e3a078374013e8408010605010101080101855b050501010102010205010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
010105010606010886490b5222046d08010601010101010101010101010101010000010872490
50108060101010101010101010101010101010101010101010101010101010101010101010101
0101010101010101010101010101010101010101010105010108015c397374687514010e010201
0501010108010f5501020101080101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010106133c187643
77580105010101020501011b010105776f01010b01010108010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101020105017840796f0c5507017a01050101010102017b7c0101010e0101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
010101010105010105080143157d7e724b2c060101010101010101010101010101010100000a14
61310117440101010101010101010101010101010101010101010101010101010101010101010
101010101010101010101010101010101010101010101010105010102014f4b3a6247630601050
50601010e01086465666708680308010801010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101050101055
4696a0a350201020105010105080101096b016c6d020d010101010501010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
010101010101010b01070b1f426e365801050102010205013f4b01576f013a2d060101080505010
10101010101010101010101010101010101010101010101010101010101010101010101010101
010101010101010108060501070101704e4e714c01050801010101010101010101010101010100
00472e4849221f4401010101010101010101010101010101010101010101010101010101010101
010101010101010101010101010101010101010101010101010101060102010101174a264b010
50501010108010e01084c4d3f4e4f50510201010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101080
706105253540701080101070601010107013f554456233857010e0101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
0101010101010101080101010158595a2b01010e010b010101010b3c5b575c5d5e4f0106010601
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010601060e01055e5f602d010701010101010101010101010101010
10100000820332b34350102010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010501010601080201363
72c01010806010606010108012d3638392e3a01060106010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01020101060b3b161701020101060101050606060105043c3d3e273f0102010608010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010105061401403001070101070105010602012d41420c214301010
60201010501010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010601010801444546080101080101010101010101010
101010101010000061e1f202108020101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101060101010101
08012223010102010108010101060601012425262708010105050101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010606010601022801010101080701010101010201060115292a2b010201060601010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010201010105072c02012d0601060106010107012e2f30

691

31010507010101080101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010607010806010501023202010101070101010101
01010101010101010101000001071112130101080101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
0606060601010801010e01050108010105010b010714011516170708010601010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
010101010101010101010601140101080107050501060101060601010502010718191a010b020
10201010101010101010101010101010101010101010101010101010101010101010101010101
0101010101010101010101010101010101010101010201011b010501060105010105010601020
60105011c1d0107010101060114010101010101010101010101010101010101010101010101010
101010101010101010101010101010101010101010101010101010108050101020105050e0801
06010101010101010101010101010100000201030401050101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101060101060107080101010506010101060501010101010101090a0101010b010601010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101060106080601010101060105070101060501010501060c
0d060601050101020101010101010101010101010101010101010101010101010101010101010
1010101010101010101010101010101010101010101010101010101070106010501010e010105
01080106010106080f100601010601080101010101010101010101010101010101010101010101
010101010101010101010101010101010101010101010101010101010601060601010108010b0
10101010501010101010101010101010101010100004c000000640000000000000000000000d20
10000340000000000000000000000d3010000350000002900aa0000000000000000000000803f0
0000000000000000000803f0000000000000000000000000000000000000000000000000000000
000000000220000000c000000ffffffff460000001c00000010000000454d462b024000000c0000000
00000000e000000140000000000000010000000140000000400000003010800050000000b0200
000000050000000c023500d301030000001e0004000000070104000400000007010400871d0000
410b2000cc0028005e01000000003500d30100000000280000005e010000280000000100080000
000000000000000000000000000000f30000000000000000000000ffffff00fbfbfb00e2e2e200c2c2c
200fdfdfd00fefefe00fafafa00fcfcfc00ededed0098989800f8f8f800adadad00d0d0d000f9f9f900dddd
dd00e6e6e6006f6f6f0027272700d5d5d500f7f7f7009f9f9f0019191900d2d2d200e4e4e400161616
0061616100f6f6f600535353006a6a6a00bcbcbc00747474007575750085858500f2f2f200c6c6c60
0c1c1c10064646400626262008a8a8a00acacac00575757005b5b5b00c0c0c000e8e8e800f4f4f40
0b3b3b3004c4c4c0052525200a3a3a300e0e0e000b4b4b400ababab00b6b6b600878787003e3e3
e00aeaeae0096969600aaaaaa009d9d9d008f8f8f0097979700b2b2b200e9e9e900909090008181
81009a9a9a00ebebeb00eeeeee0039393900cacaca009b9b9b00e7e7e700a8a8a8006b6b6b0088
888800b8b8b800b1b1b1007c7c7c00f3f3f30076767600d6d6d6006060600042424200848484008
28282008e8e8e00a6a6a600e3e3e3005959590047474700c3c3c300c7c7c700c9c9c9009393930
01d1d1d007a7a7a00dbdbdb00cccccc00cecece00c8c8c800f1f1f100e5e5e5007b7b7b00ececec0
09999990086868600b5b5b50083838300c5c5c500a9a9a900bababa00cdcdcd008b8b8b00deded
e00e1e1e100afafaf007f7f7f007d7d7d008c8c8c00b7b7b700d3d3d300f5f5f500a7a7a700bdbdbd0
0dcdcdc006c6c6c00dfdfdf00bfbfbf007070700089898900cbcbcb00efefef00a4a4a400d7d7d700a2
a2a200d4d4d4007e7e7e00b9b9b900dadada00a1a1a100d9d9d9009e9e9e008d8d8d00d8d8d80
0a5a5a500c4c4c400bebebe00cfcfcf007272720095959500a0a0a000949494006e6e6e002828280
0929292009c9c9c0077777700b0b0b000d1d1d1006666660022222200eaeaea0051515100bbbbb
b002b2b2b004f4f4f002f2f2f005c5c5c002a2a2a0058585800323232005f5f5f00181818000c0c0c00
303030002e2e2e00f0f0f00091919100020202001b1b1b005d5d5d00333333006d6d6d003636360
003030300060606001a1a1a00050505000f0f0f0079797900717171006565650063636300737373
0078787800171717001c1c1c00242424000a0a0a000d0d0d00010101000e0e0e00101010000404
04005050500015151500121212001f1f1f0046464600565656004d4d4d004040400034343400080
8080014141400494949003a3a3a004a4a4a004848480038383800353535000707070055555500
13131300808080005454540021212100252525005e5e5e0069696900111111004141410037373
7002c2c2c00313131003c3c3c003b3b3b004b4b4b003d3d3d005a5a5a006767670009090900010
10101010101010101010101010101010101010101010101010101010101010101010101010101
010101010101010101010101010101010101010101010101010102010506061406013f0f580b01
01037f84010107050166183f050105010801010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
1010101010101010101010101010101010101010101010101010101728f24362282d9c10458d12
b17b8513dea1a3d14e1e587dc3570a9775a552c59401b30dbf1925bd089b108019fa51abf03f1e66
884ec0a06959c6f980596db315367949a8379a5a85e0f0106010101010101010101010101010101
010101010101010101010101010101010501017a18082310010f8f3d7301077f719e020105510b1
e4b47840106010101010101010101010606060101010801050106010e01010e01010108000001
01010101010101010101010101010101010101010101010101010101010101010101010101010
101010101010101010101010101010101010101010101010101080101606f01ac1801235f7b0602
011ea67d070678b20796ab9405010102010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101

01010101010101010101010101010101010101010101010101010101616817e874d6637a5c07d2
a202d970eb3a019f32dc18061c139c2502c06901817b04300e14642cd0720e010189bf0bb158559
b0108b5832b1c08016087ad5b06dbe101ec011d1f01483f07010101010501010101010101010101
0101010101010101010101010101010b0101050b97df015320014fdc524f010544c25d010133ed7
a83007b0802010101010101010101010106060101010101010101050601080b01020807018687
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101020572ed0a9e2f230732a10f0
5010868c3010510bd6001a4ed05010501010201010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
010101010101010101010101010101010101010101010101010101010101bea53385f00105012d
ee4405b05bf07d94658bc1060159868c95017569028149917563487a43e433580606763917792d
6c4b01022a356981020176b7e46101aa5505d97af11e0101070108020105050101010101010101
0101010101010101010101010101010101080105012dd9bf97c09c0e0ea340010501082b680172
c5530558f25c01010b010101010101010101010101010101010101060501010101010105060106f
fff0101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010701013b8924e93a490648ea8
b0186a2091f0584ebd14d0733d9707f01010b01010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010144d4798463ecb1099e
4fdb5d84ec86a3544eed73a04f07ee7f3b11081d4201b757942997a7b709e3816ac27f15a097ae3e
99b71018302e941d0122ef64ac1e01db6c43a7073c470138170501060601010101010101010101
0101010101010101010101010101010101010501066bd914e849467001df99175b28010ca206d1
208a098bcb0a048301010101010101010101010101010101010108060801050101050501010705
00000101010101010101010101010101010101010101010101010101010101010101010101010
1010101010101010101010101010101010101010101010101010101011465e27923a90b159443
5f9c51266b849d011ad48d78017ce3276089440105010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010184575d96014c0c7
796063789e1be022b7b5698016b8e34b09042b2b16c2e029587012e0c4a6243a9510111da4f743
5a0662150c3157e64013a749c47014398a4e45688bf020e9793751301010101050101010101010
10101010101010101010101010101010101010501060184e54065b89f66e12de2d83c25e608281
420d8064da23fe73a61e8400101010101010101010101010101010101060601050e07020101080
e060153e801010101010101010101010101010101010101010101010101010101010101010101
010101010101010101010101010101010101010101010101010101010101080133d5886a37689
1152daf8884788d7a8977a70e223a014cdc0114b80a01010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010b44140
1017a6801142961a20601011ba20801012d4f2a921b0e014f0e01c28e0501a21b01689a8d0e27dd
08063f0101010507080114010122b10608010522cd6706010e0105650101080601010106010101
010101010101010101010101010101010101010101060101064fb28d793973b13401df54010161
012b71c618064da266e01e05e112010101010101010101010101010101063d5d3b0491783ba49c
2b851a8b06ffff01010101010101010101010101010101010101010101010101010101010101010
1010101010101010101010101010101010101010101010101010101010101010101227a050984
051b0ba2a1320e015c68da9a5d01227b068ad40201db820e050101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101060106
0107010101018ddc3f0101060e0606010202015cdd5d010506010158d90a010106010123bbc240
268001050101050106010654170106050101020101a29a71a21f08020605080106010101060601
01010101010101010101010101010101010101010101010601010201080805050101010b37bfb1
845c6455001e02029b3272de7468da2901010101010101010101010101010606df866724878315
723cb2719f58010000010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101060201010
801010101061ed1407b312039d99e01023a597d5ed5b289765801010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
0605010101010101052d040e06060601010101060105435c840501010108846d480108010106a2
619f172d010e010508010b01010e466806010105010105011b94487a7006010601010501050801
05010101010101010101010101010101010101010101010101010105010501010101060108086
85e312364b78e9c3306012c8e51038f7c04782d01010101010101010101010101010606d322550
4877c0a134b9c57909714ffff0801060106010106010101010101010101010101010101010606010
101010101010b0806010102010101010605010101010101060101010601060101050101060606
01010101010105010e2d84435872d73d0101084866433f437d2c06010201010101010101010101
01010101010101010101010101010101010101010101010101010101010101060506010101010

693

106010101010106010801010101010b0106060601010101010108010101010201060101010102
02010101010101010101010101010101010101010101010101010605050101050601060101010
6010601010606010b010101010101010101010106010101060101010101010101010101010601
0e010105060106060101050601010108010108060101010101010106060106060101060601020
50101010601020e452f080101020101050101060101010101010101010101050106010101060bd
85c9472837c0c86491810a47c08ffff010605010b060101010106060606050501010606060606060
50606010106060606010101060601010601010101010106010606060606060601060101010101
01010101010606010101011b0105080189b3d52d0101140101010106010101010501010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010601060101010101010101010201140701080101010101010101080101050501010105060
10101010101060606060606060601060506010606060101060606010101010101010101010101
14060101060102060101060108080606060606060606060106020501010605060606060606060
60601010501070101060505010101060501010806010601010101010101010101010101010106
06010101020e01014f014ec7d66d02010106010501010601010101010101010101010107020101
0208011eb18b1b01010b010106050101020000010201010601060501010606010101010101010
10101010101010101010101010601050606060106010101010101010101010101010101010105
060106050601060101060505060105010108060572c40000b20101010201010501010601010101
01010101010101060606060606060606060606060606060606060606060606060606060606060
60101010101010101010101010606010108010801010602010101010106060606010105010101
06080101010106010106010101010101010101010101010101010101010606060606010605060
605050605060b050e650b0201140e140101010101010101010101010606010101060101010101
01010101010108050101020102060606010101010601010506010101010101060605060606010
10101010101010501080801010186b40000d40e0b010101010101010101010101010101010101
05010106070101050105700307018b74060201080101540001010102080106060105080506010
10605050606010101010606060606060606010601010101050101010606060601010101010101
010101010606010106010105010101010101010105050101052600b900d0680e0101050105060
10105010601010101010101010101010101010101010101010101010101010101010101010101
01010101010106010106010101010106010106010101010808010e01010e01010101010101010
10701010508010105050101080601010101010101010101010101010101010101010101010106
06010101010101010106063dd1ac8383d2d3d45006220101020101010101010101010101060601
01050101010101010101010101080501010101010101060601010101010101010101010101010
10101010101060506010101060101060705015200b30000b2010e060606060606060106010101
0101010101010e01050101010607010801010231b3cd1005010e01160008060101010101010101
01010101010601010101010101010101010101010101050201060501080101060606060606010
106060606060606010605010106050106010101010601014f3f08010123ce0000ccc9bf012d0101
060202050102010e0606060606060606010101010101010101010101010101010606060606060
60601010101010101010505050505060606060801010101010101060101012c5d0101010101010
10101010801070601060801010101010505050101010101010101010101010101010106060101
010101010601010606010106010544602101012a00a78b0101061401010101010101010106010
50601066646060606060606060605010101010707010101010605050601060601060805060106
0601010101010101010606010101010806050102015bbdcc0000b9cf0d01050101010101010101
060606060606060684770e050106010106010802010138b300d027b10105d7ff01080e06010e01
06050506010101010101060605060601010101010101010101010106020601010205010101010
101010101060601010101010101010101010101010106060601014893017a84a7c900b900c9ba2
30106050101011b01050101010101010101010101010101010101010101010101010101010101
01010101010606060606060606010601010106060101060101050101050506010701835602010
10101010606060101010501060101010106050101060101010101010101010101060101010101
010101010106050501010101010101010105060e6c8063cbcc5d01081401010601010101010101
01080101010106185d01010101010101010101050105010102010605010101010101080101010
101010101010101060605010605010101060101010501010ecd000000ba0000a30e01060106050
10605060101010101010101143d010106010502060501010b05740000bcc9a99b0e260005098a7
ba4334c3e2e336b33336b786f6b332e3e3e2e336b3535353535784c8a2e78384c357b2857856e6
e318c91497b4957859149342834289e74283874380c283434283838283a0c85786f60000000b30
000b3b84c24a42b35236f93782e7c6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f
6f6f6f6f6f6f6fa48a6f802b1e1e80041e1e7c8a1e80a46f6f7ca4356b281e357878784c4c8a8a3ea46
f6b8a2e929e2e2b9333332e4d6b332e3e4d4d3e2e336b74383e334d9e3e2e2e2e3e3e4d9e743a2
828342838380c3a74333a8fa3a300c6494d740c7b0c283a3a3a3a3a3a3a3a280c3a7b4928286e3
a3a3a3a3a3a3a3a3a280c850c3e408c693d0a420a3942878c39693b151569693b9c47426969694
20a96399c154769473969425e0a4bbdc7c8c9caa19ac6962e3e333e4d2e3e9e3e3838383838383
838783374283e74356b3e383a742e1e7500c90000000067080006075777468651639f9f94625d64
83637062465d5d46836263636363940d9f17640d935c87254a997ebf11c0c11d81bfbf997e99c29d
c39d504e6020c367be9d9981c2c34e679dc28189951f4a6789764591936b0c91579721299649426
9423d0a0a0a0a0a0a0a0a3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d69696969
696969698715873a2849490c0c577b6e490c334d0c334c1e35a4a4938a6fa47c8024045b1e6d1e4
c24465d1a4293705c5d6262799051138888135190900d638886799f881351868d617d7d7d7d727

20f7232737f8d720d722c41b9a732738686737f7f727f7f7f7f7f7f7f7f737f7f3273327f7f32323232323
23232327d587f68b2c47627713c566a553c873b778f9b399677829bb240409b960a4296b2969785
153b158e3b8c8f470a9e6f3895911b842d2c582ca22c483f2c102c3f3f3f3f3f3f3f3f184310443fa22c
3f4843a2433f449cbcb900b3c5213feaff0101580c01010601010101010101010101010101010101
01010101010101010105010101434748038b889070130d908b179f8679909017618d137f321303
737f0f61186658185186328651885d7f7f1352680101010106017d4101060601060101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010105010601010201080101010101010101010601010501014b64010
50101010601010101010101010101010101010101010101010101010101010101010101010108
0108015cbbb34a0101020501010102010101010101010101010501010101010101010101010101
01060501063eb88b617d8886940f7d6170170f8b17179f178d869f797d8b0f8b7d7d03038b8b0310
66588b619086137d730a2e01080101060101010101010101010101010101010105010e0105060
5010106080108013e00bcbdbe8b010100000101580c01010601010101010101010101010101010
1010101010101010101010101010258408d9f706279885d837994700d9f929f045c6346948b9f9f5
c460d61708879610d70178d62617051796404a8480505050101019089010606010601010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
0101010101010101010101010101080105020105010101010101010101010601010501014b230
10601010106010101010101010101010101010101010101010101010101010101010101010101
01010106b8b9590a8301010101140101010101010101010108010106050101020101010101010
10101010801062e450f797083949017798b8d9f9f0d0d9f5d041762796d131717177d1717617332
7d8b8d51887090518688615e74010501010501010101010101010101010101010101016501020
101020106010501010685bab8130b010801000001010328060101010101010101010101010101
010101010101010101010101010101010510b28d0d836262519f925b0470635d645b1e5d467917
46949013940d86138890908b51902e3b949463177988524301060506080688670601010106010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010106010701869c010101010101010101010601010601
01365b01060101010601010101010101010101010101010101010101010101010101010101010
101010108010875b3b40943b59401020101010201010101010101010601010501060f800101010
10101010101010501019eb60d6417639f170d83867983465d469494635d7962461779901351171
79072720f728d7d8617138b13947d9b2806060101060101010101010101010101010101010168b
77a0808010101010101060107880a65010106020e110001067334060101010101010101010101
010101010101010101010101010101010101010518779492809f8646832b705c5c0d5b5c5c235d
177d516d0d1790909417860d13638d8d0f57270d135d0d790d5966050101010101796006010101
06010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010105010107016fac0101010101010101010106060
10601016a2b060101010106010101010101010101010101010101010101010101010101010101
010101010101010e31adaea9628b45af3401050101010101010101010101010501050105838501
01010101010101050106010128b05c9217639470889488949f901363635c2464179f83708b888b8
88d901717516173178d868679619086180a280601060101010101010101010101010101010101
01a22fb10105020106010508080101060101050108010100000106323406010101010101010101
0101010101010101010101010101010101010106010558365d7c17639423928094048846708364
92836d640d886346238617832364630d8364831e979f249463625d5910060101010805514e0101
01010601010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010106010606039e01010101010101010101
06060106010621800601010601060101010101010101010101010101010101010101010101010
1010101010101010102019f63135d7f1046838d7a010102010101010101010101010201020601a
20f010101010101010101010606013aab627970945d945d4692626294645d178380235d0d245c7
0626313889f63949f7986887990888d517d7d10470c060105010101010101010101010101010101
0101010663070101080102060501060101080202010102060820020105323a060101010101010
10101010101010101010101010101010101010101060501014877946da4839f237c5d9492235b2
b2404041e7c2e04646d236d645b945d4694629f2b2b70800d046463235caa66050101010101867
60106010106010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010201050105060101010101010
10101060601060106548001010106010601010101010101010101010101010101010101010101
010101010101010101010101080506010b010b010601060501010101010101010101010105010
5060101010101010101010101010106010131a746645d0d465d469f702b92466d23945c6f6d5c5c
5c925c642370646251517913867f8613869013518632420c010105010601010101010101010101
01010101010101010102010101050106010105050501010801050101110001057f6e0601010101
01010101010101010101010101010101010101010101010106010618826323246d625d709f9292
242b6f702b4670645b926d6262515d93799f708393869270646d5d1304886364a83f01010606080
1514e010601010601010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101020101060102010101010
1010101010605010601056c2b01010106010101010101010101010101010101010101010101010

695

10101010101010101010101010806010206010106010806010101010801010101010101010101
010101010508010101010101010105060101069ca9645c79519f5d4662639223465b9323837062
0483175b79245c645d887d9061327d8b139490178613900f470c06010501050101010101010101
010101010101010101220101010101010105070101060101010701010108000001057f6e060101
0101010101010101010101010101010101010101010101010101060605034b94466480175c629f
1763235d93642b8a237c236f63945d9488835c92518883885b7961702b831e945146a632080101
01010188670601010106010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101020105060105010101
01010101010101060501060105552401010106010106010101010101010101010101010101010
10101010101010101010101010101010105010605010501050101050501010101010101010101
0105010501010501010101010101010101010106060547a717510d0d70615c042394709f626d64
70790d5b7013465d5b7c94798b5117582c886186618d8d86727f7f1574050108010101010101010
10101010101010101010101010806050102010801010601060105050105010801000001018d34
0101010601010101010101010101010101010101010101010101010106010101734b8646044c83
705c9f6246882b4c6d2ba48383245c6d640d465c88880d6370620d51512815905d9f64926399090
10101010105514e01010101060101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010e65830
10101010101010101010101010101063680010101060101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010801017f900101010101010101010105010e8ea55c6f5c9f9f8d945d62889462705
d5b046d807083462b9470621717510f7f7d8b7d7f8d7d7f9f8810324385280501010b01010101010
1010101010101010101010102980e060107010101010101010101010101010101010000010190
34010101010101010101010101010101010101010101010101010101010106010566567283518
3179f9486131779637086946d83929413868b8d639f66868888887951618b6e71320f6386720354
07010501050101514e01010101060101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010601060104
a0010101010101010101010101010101063680010101060101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010108050601025b91010101010101010106010101013da10d0f720f8d73618613727d
618b8863709f1388469f79038b880f6172184848a244667f73187d72a258448c3e01050101010101
01010101010101010101010101013fa36808050108010101010101010101010101010101020206
01863a060101010101010101010101010101010101010101010101010101010108010103958c96
970a98396915973b983d98395e5e8e3b97983c42858c15918c15978c978731878999877b3b3b3b
471d8401010102010186760101010106010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010701
01135e050101010101010101010101010101064b8001010106010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
010101010101010501060601067d2301010101010101010101060b01969a15150a399b69429c42
3d429c42395e983d4239563d398e694298983d3b158e8e97159c47153b8e879c969d9e05010101
01010101010101010101010101010101012d91140106010501010101010101010101010101010
10000050613490601010101010101010101010101010101010101010101010101010101010101
145e8f753636755427715682368f4b6a54554b368f55896a274b36827777777771272782366a362
16a55555557080108010101029076010601010601010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
101050105017a0101010101010
The case where there is no handler is illustrated in Figure 12.3. Here, the application repairs the
situation and calls waitForNextPeriod again (assuming there is no cost overrun).
0100090000038a5700000000d123000000001610000026060f002220574d464301000000000001
00a6530000000004000000002000005846000058660000010000006c0000000000000000000000
d20100004000000000000000000000006a400000f208000020454d4600000100586600000c0000
00010000000000000000000000000000000005000020030000c40100001a010000000000000000
000000000000e3e306006e4e0400460000002c00000020000000454d462b014001001c00000010
0000000210c0db010000006000000060000000460000001c1d0000101d0000454d462b22400400
0c000000000000001e4009000c00000000000000244001000c0000000000000030400200100000
00040000000000803f214007000c0000000000000008400005681c00005c1c00000210c0db0100
00000000000000000000000000000000000001000000ffd8ffe000104a464946000102010048004
80000ffed064a50686f746f73686f7020332e30003842494d03ed000000000010004800000001000
100480000000100013842494d040d000000000004000000783842494d03f300000000000800000
000000000003842494d040a00000000000100003842494d271000000000000a00010000000000
0000013842494d03f5000000000048002f66660001006c66660006000000000001002f666600010
0a1999a0006000000000001003200000001005a00000006000000000001003500000001002d00
0000060000000000013842494d03f80000000000700000ffffffffffffffffffffffffffffffffffffffffffff03e8000000

00ffffffffffffffffffffffffffffffffffffffffffff03e800000000ffffffffffffffffffffffffffffffffffffffffffff03e800000000ffffffffffffffff
ffffffffffffffffffffffffffff03e800003842494d04080000000000100000000100000240000002400000000
03842494d0414000000000004000000023842494d040c0000000004ba000000010000007000000
01000000150000015000000049e00180001ffd8ffe000104a46494600010201004800480000ffee0
00e41646f626500648000000001ffdb0084000c08080809080c09090c110b0a0b11150f0c0c0f151
8131315131318110c0c0c0c0c0c110c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c
0c0c010d0b0b0d0e0d100e0e10140e0e0e14140e0e0e0e14110c0c0c0c0c11110c0c0c0c0c0c110
c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0cffc00011080010007003012200
021101031101ffdd00040007ffc4013f000001050101010101010000000000000003000102040506
0708090a0b0100010501010101010100000000000000010002030405060708090a0b100001040
1030204020507060805030c33010002110304211231054151611322718132061491a1b14223241
552c16233347282d14307259253f0e1f163733516a2b283264493546445c2a3743617d255e265f2
b384c3d375e3f3462794a485b495c4d4e4f4a5b5c5d5e5f55666768696a6b6c6d6e6f63747576777
8797a7b7c7d7e7f711000202010204040304050607070605350100021103213112044151617122
130532819114a1b14223c152d1f0332462e1728292435315637334f1250616a2b283072635c2d24
49354a317644555367465e2f2b384c3d375e3f34694a485b495c4d4e4f4a5b5c5d5e5f5566676869
6a6b6c6d6e6f62737475767778797a7b7c7ffda000c03010002110311003f00f4cc10c66306b780e7
f2493f4dff009ce940cbeaedc6c8753e9eeda012e2f0de44ab868a0ea6b699d7e884becf8ffe899fe6
8494e4dfd67d6a5f56c757bc6ddf5da03c4ffa376d77bbfaa84eebd49cba89c77faacadd05ceda36d8
2b7b7f92eddb3e8ed573abd563319fe8518c69d8efb43ef25a1ac967a9a54c2e77e83d7fcf66c583d
030fa6747cdb0398c2cb6ba70f1dcd63ec7da687df5bef74b5db5eeddfac7a7ecb367a9fcdff3894ecf
fce26ffa1ffc107f72bd819c332a7bf61acb1db082667dacb3735dfd5b14b231e2979c6aaa37c7e8c5
82184feebdcc6b9cd6ff002b6ac5c3e819b879b7e463d7875fed0c9fb466bb6171805ecd95b7dbf4a
9f4dfff0086adcabbf49eafa6929da6d2d0fc826c7917112d73890d86359fa26e9e97ef7b7f3fdeb07a
5fd61b5bd2f08371eadbf67a4b66f3306b611bbf40e5d0fd971819f459279f68fee4df63c4ff00415ff9a
3fb92539d89d72fc8c8ae9fb3d603dd05cdb8b8811f4b67a0cddfe72d2c8636da1f597b99b846e63b
6b87f55edfa2b1bac741b7a8bdb51a30ce2d36d791407b0eef52a2d7d7ea06fb76eff537edfe731ecf
43fe115fe9f8578c723a9368b721ce713e9b0068693ec64b9adf53dbf9fb189290f52cf1859d539b5b
6c7d94bf57da580358fafe8b032d6bb73ad426fd60b4ff0081a47fd7cffef3ad43898a79a6b3fd91fdc8
77e1d62a3f66a28f56447a8d01b1237fd06eefa1f45252f8196ecaa0db63054439cd80edc0c7e735e
5b5ff00d424d763e254e75b7ed63ed30eb9ff009d6bf6b2a6bacdbf4ad7fa74d5ff005aa96574dfabd6
74fb9eea198ccaf2ef3959c030b89b1cddb6369dff0046b7edaff73d3fd3d9fe1bd3aafe6747c6ca863
db5fd9c969b31dd4d6f638b5edb773b7b3f93ff007f494fffd93842494d04060000000000070005000
000010100ffee000e41646f626500644000000001ffdb00840004030303030304030304060403040
6070504040507080606070606080a0809090909080a0a0c0c0c0c0c0a0c0c0c0c0c0c0c0c0c0c0c
0c0c0c0c0c0c0c0c0c0c010405050807080f0a0a0f140e0e0e14140e0e0e0e14110c0c0c0c0c1111
0c0c0c0c0c0c110c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0cffc000110800
31015e03011100021101031101ffdd0004002cffc401a20000000701010101010000000000000000
040503020601000708090a0b01000202030101010101000000000000000100020304050607080
90a0b100002010303020402060703040206027301020311040005211231415106136122718114
3291a10715b14223c152d1e1331662f0247282f12543345392a2b26373c235442793a3b33617546
474c3d2e2082683090a181984944546a4b456d355281af2e3f3c4d4e4f465758595a5b5c5d5e5f56
6768696a6b6c6d6e6f637475767778797a7b7c7d7e7f738485868788898a8b8c8d8e8f829394959
69798999a9b9c9d9e9f92a3a4a5a6a7a8a9aaabacadaeafa1100020201020305050405060408030
36d0100021103042112314105511361220671819132a1b1f014c1d1e1234215526272f133243443
8216925325a263b2c20773d235e2448317549308090a18192636451a2764745537f2a3b3c32829
d3e3f38494a4b4c4d4e4f465758595a5b5c5d5e5f5465666768696a6b6c6d6e6f6475767778797a7
b7c7d7e7f738485868788898a8b8c8d8e8f839495969798999a9b9c9d9e9f92a3a4a5a6a7a8a9aa
abacadaeafaffda000c03010002110311003f00f58f94ecbcd91f9f75ad5afeee4905f25a7e93d1a49b
9db5944f14cd6ff560015e71f109315e22632349fb098abd3715762aec55d8abb15762aec552cf306
b09a16972df985ae66e51c1696b1825e6b9b87114318e21a9c9d802d4a22d5dbe1538ab1afcabf3
46b9e66f2bda4be698a28bccb1c30cb78f6a1beab3c7729ce29a1a8d95802acbd55d1bfc9aaaca35
b5d564d3278745658f519b8c514ee401089182bca010c18c6a4baa91f1300b8ab11fca5b2d5f4af2c
41a6de5c4da8e96a8b3e99a95e4c67bb22667f560999eaec6371c96427e2491536f4f1567d8abb1
5762aec55d8abb15762af33fcd5f3bf99fcb377e5cd3fca36b1dcddddea9649ab7d601e06c67774f42
36a504d3156119fd8e0c5baae2af44b1bc8751b2b6d42db97d5eea249e2e6a637e122861c95802a
687707718ab01fcf38758b9fcb3f31dbe993b59db1d3af65d46f2194c570b6f0dbbbfa7115dc34ac15
0b02bc10bb03cb8e2acbbcb36fab59e8f0d96b330babab52d0c77bcaad71021a452b8a0a48c94f50
7f3f2a6d8aa718abb15762aec55d8abb15762ac2ff333cc9aee81a048be568a37f30dc2b35b5c5d21
92ceda284a99269c2b292a39045553c99dd7f643515645a16a8dace970df496d259dc12f15cda4c2
8f14f0b98e44f70194f161f0bad197638ab08fcd1d2f5dd62efcbf6d6ba8cda469b0ea569245716729
59a6bf6327a624000ac3171e4d1b12b317a32fc1baaf41b06bc7b2b77d46348b5068d0dd470b178
d65e2398462012b5e848c55118abb15762aec55d8abb15426a77f1695a75d6a53abbc36913ccf1c

697

4a5e460809e28a372c7a018ab08fcaff003579a35d5d62cfcdf0c49a8db6a37c2ca5b542201690dd3
c22dd9b706580af066afef17849fb47157a162aec55ffd0f6ce8f4ff18f99a877f4b4eaff00c8b971564b
8abb15762af3b8ff003774e9d7d4b5d07559e025bd39556d0075562bc806b90d4247715c55bff95b
36f4dbcb5ab96268147d437de9b1fadd3f1c55a3f9b56c182ff86b57dcd09ff40a034e87fd2fdf156bfe
56d45427fc2fac000d3ae9fdfa114bcf7c5570fcd7899c46be58d5c9239290da7d0d29ff002f9d771d7
1541e93f9b5a549a6d91d2bca9ab4361246a6d6dc2585bf08fa01e9b5daf1a785315643e5cfcc0b2f
316b52e8234dbdd3efa3b417ea6ec4063783d4f4be130cd2d0863d182e2ac1fc95f9b96317966c60
8b40d52e12dda7b43711fd4951dadae25819943dd2b50b46dc6aa0918aa7edf9b96a85f9796f5605
6837361427dbfd2e9b77c55c7f37ed15793796f56551b124d86c7bff00c7df6c556afe6fdbb063fe18
d5c71a9a16d3ea4034dbfd33db6c557ffcadb84c9e90f2c6ad5ecdcb4f0a76af53778aa6de5cfcc0b6
f316ac348fd137da74ef049731c9746d5a36585d1194182794d7f78a45471f7c559862aec5528d7ef
34eb31a6fe91b192fbeb17f6f6f6a2283eb1e8dcc84f099bf91529bc9fb18aa6f8ab08fce4985b7e52f
9e6e48a88341d4e52075223b591a9f862ac4ed7f3a75db8b3b69e0f2782b3c713a2b6a91578ca9c
c7480ee075c555d7f383cc8797fce9f182bbd0ead1ee3dbfd1e98aa98fce6f3090bff003a7a026b5ae
aa94141e3f57fa3155c3f38bcca6b4f26c6587ecfe968ebf3ff0079e98aaeff0095c1e65e3c8793a361
4a8a6ad1ee7dab6e315657e45f3bddf9b9b5086ff48fd137361e83f0172b76b24771ea0560ca91d37
8db6a62acc715762a83d567b7b6d3ae26bbb77bbb745ac96d1c7eb3b8ad2813be2a8c18abce7f39
fccbfe11f2e691af8b437f25bebda543159ac8b09924bbb816c839b021406941269d062a96afe6d79
9d8ff00ca211000905bf4b2100834a6d6d5c55b1f9b3e662481e508b90ea3f4b27fd93fb62ad8fcd6f
33b538f942235ad3fdcaaf604ff00cb37b62abcfe6979ac0663e4f84052013fa593bffd1b76a62ab9bf
33fcd6b4af94ade8c680fe975a1de9dad4e2acb7c95e6a9bcd9a75ddddcd87e8dbbb1bd9b4fb8b61
30b85f520e24b2c8152a0861fb23156498abb15406937305d4572d059c96423bab885d258842649
2390ab4aa07da5908e4affb437c551f8abb157fffd1f6c68c49f38f99fd934e1ff24a438ab26c55d8abb
157cf5a082ba45b0e5451cc31e55dcb39a0ad07d18aa622491432104a934286a4fc43a9ee4d3be2
ab629555453e023e1e26ac0ee7607a11b7d38ab655c405a4525988ab03b577041f16dfbe2ab5e44
6454028095f8dbe13c7a93d41ef4a8db7a62ac622bdd527f30e95fa5088ae64d1279af6d6391a481
67fad5b83ecc40622b4e87154cfcad3ccbff3903e5a8239245b697cadad3c91076e0ccb7ba795e43
a12bc8d2bfcdb75c5521f2009bfc2702291c5afb54015baf2fd29744fb743e18ab2865918a935a108
db1aedd006aee77e87fe6ac554c972a81776a1e2816a0815dc03d3a0a8fd5cb155c8f250455763b
87a2f36a81d0d4f723aec7efc557209370f5e416a08a1141fb2a3a531557f213337e71e9e2a380f2b
ea44aa925431d42c2a77e84fbef8abdeb15762a96eb13eb707d43f42dac375ea5e431ea1ebc9e9fa
564d5f5654fe675db8af7c5532c5580fe7972ff952ff0098656b51e5bd5cec2bd2ca5ed8abcbb4a124
3a1e99b2976b3b46054d7ac08282876a0ea462aae7d300891c1e3f0803a80dd7a8db7e9fd98aac4
2620e9cbd38eb4a16eb5ee074a023fe0b156ffbc612d47da295a907c687e54af8b7cb1555b831a04
04d0025517af223a7e1d38ed5c559c7e56b17d5fcc2c5b91f434e04d6a6a0dcf5f7c55e9b8abb1542
ea4f7f1d8ccfa5c51cf7ea07a114cc5236351505874db154562af1dff9c95aff008074aa1a7fced1e5cf
8b6dbfdca41befb62a90fac876e69f1b06e5c97ed0a0a8aec46c36afebc554848dc99198721b8507e
2df7ebb91d07d14c55515d41401d086005119541e3d388ad3c294f01ef8aa2a3bb08402c00ad054
efb13b126b4a6dd69fe57438aaefad2a86e6fc581a426a15695e83b7cbafe18ab32fca260da5f984a
8a2fe9ebd0a06c000b10a62af43c55d8aa074b9355962b83ab411412adcce96cb0b170d6ab2110b
b57a3b250b0ecd8aa5fe76f34daf923ca1aef9c6f6092eacf41b1b8d4ae2de0e3eac91dac6d2b2a72
20722176a9c55e7b63ff393df92fa97e5e6a7f99961e624b8d07458a29755b54463a8dbb5c4a9046
925afdb05a475456feeea6bcf8fc58abfffd2f6fdd7927cab7b7f71aa5ce9b1bea17654dcdc0675790c
638af22ac2b41d31552ff00f946b5fd1ab5ff8c937fcd78aad3f97de4e26a74a42694dde53b7fc1e2ab
bfc03e50e5cbf45a57a7db97fe6bf6c550717e56f91608d61834c68a05144892eaed51456b40a26a
01f2c5570fcb1f2506e634f939ff37d72f2bff27b156c7e5979280a7e8f929d7fdecbcebe3fdf7b62ad1f
cb2f259249b096a7a917b780fe1362ab4fe57791d9831d3e5e4a0853f5dbcd81a569fbef6c55f066af
e5bfcfad3bfe726ad7f282cf54692daf0b4961adbc21c8f2dc93099ee246008e68b17a66bd66509fb6
b8aaa7e6f796bf39fcb7ff003927a17903caf751dcc3aff25f28ea9776b15c345a6dd95376b2b32d0fd
5cc459fbf0546fdbc55f70e91f939e43d2b4ab5d3574f2fe820f5248e7b8b659262794927a50caa885
dc972a8a16adb62a8f1f961e480c5869af52287fd2eefa135ff007f78e2ae1f95fe4704b0d35f91ad4fd
6eeea6a6a7fdddef8ab87e57f91c0e234d70b4a505ddd814ff91d8abbfe557f91c569a6b8a8a1a5dd
d8a83ff3db157c09abfe4c7e73c7ff00394b6df9636de65d626f2ddd7a9a9daeb925cc93341e58966
56987a9202048ad1ac1d379bd33f65b157df717e57f90a28d51744858280bc99a46634ee496a938
aaff00f9565e43dbfdc1c1b74de4ff009ab1543defe55792aec4022d396d7d2992693d2dfd544eb1bf
3e5f0b77e346f06c555ffe558f90a94fd07050fbbffcd58aa9cff955f977750c96d75e5eb49eda6431cd
04aad246e8c28cacacc41041dc118aa117f253f2955782f93b4b08082145ba85a8141b7b62ad7fca
93fca40c5bfc1ba5722285beac95a75a57c31577fca92fca3a153e4dd28a93c8836c8472f1a78e2ab
47e47fe500ad3c95a40a8a1a5ac7b81dba62aa17bf913f93971673da4be4fd2e08ae11e379228561
917d552a591d6855b7d986f5c55f147e4cffce35f9eacbfe723f59f28ebdac5fc9e40f2a491eab7b711
5ece91ea9693173611b70601f9f13ebaf45e12c7dc62afbb0fe5c7e5dd68747b4a934039375f0fb58
aaa7fcab0f20d29fa0ade9fecff00e6ac5546ebf2abc8b716f2411e9115b3b8a2cd1579aefd4722c3ef
18aab7fcab0f20ff00d58adffe1ffe6ac550f77f943f965a8426df50f2bd85ddb92ac61b98bd68f921aa9
e2e48a83b83db1541ff00ca8bfc9ca11fe07d1a84d48fa9c5d7a57a62ae1f917f9380d4791f460694a
8b38ab41f462aeff9515f9374a7f81b46a54923ea71753d7b62ad9fc8dfc9e3d7c91a3ffd21c5dbe8c

5520f3bff00ce38fe51f99bca7ab797adbcb9a6e89797f6f24567ab59c0905c5adc9158e547500d558
02c3f696aa7638abe5cff009c38ff009c7cf313f99fcd3ac7e67c972fa3f95ef6e344b6d066b895ad2e7
535a7af70f1f3e2f1a215e0c471767e5feebc55f672fe58fe599a2af97f4fa9228020dc8e9df1556ff955
bf9795aff86ec6a4d7fba1d7154a6ebf2dbf2b3cb3a5df6abace9367fa3e0696eee2e6e62561146cc4
840116bc501e2bb16a78e2ac4bf317c81f94bacf91fcc7e59b18f40d075ed534fbdb0b0babc9218c4
1332cb0a4ac51890aac8cdb6e38357756a2af27d27fe7073f27ad7f2cf5ff002edbf9805e79d2f6282c
eefcdf23a489637493c370238ed95c24692322a373632b46fb49be2aff00ffd3f7f62aec55d8abb157
62aec55d8ab1bf3ef982ff00ca9e57bdf32d940b731e9462bbd46228f23fe8e8a55378f1ac64169120
f51d17f69978f7c55e27e7cfcd0f31eb3f96ba9ea50b9d1752d235ad1eca6915ae34b32bde6b76e21
55959da915c69f224b28f8caadc6fbab2e2a8bd6349f3cdaf9d74bf326951c163e7cd3acf57b883cb0
9a99bfb7d63448ee2c54dafab72a8f1b382d2c4ca88915c81ceb1b3e2ac46eafafbcf1e72f2a7f84e7
b95d6b56f2c79ca5d09b53bc9ec2f34eb99357b78209dc3f3955a04aa18829e4a8c9f12ae2afa9b48
b7beb4d26c2d353bafaf6a505bc315e5f0411faf3a205925e0365e6c0b71ed5c551b8abb1568d482
01a1ec71578d796fce9f983ab6be3cb3e64d3da0b4657b6bcd4cd895b133e937122ea34667afa57
10bdb9b676fda797fbcf48e2af3bd0bc956fa8fe4fe8baa5f241a7c97d65a7e9bfa76c0dcdb79861b8
9f57b70e4cee58d51179d48f8594923862a8cf36c5e669747f315b79d34a47f3869579e53d3d75a0
25834fd66d4eb5c85cc663f50c624b7e497b1aab7a5c64fb7170c55ee7f97fe59d4fcafa3dd5a6a97a
b7325ddecf7d05ac2d2496d6304fc785a5bb4c79b46942c090bf13b71445e2a156578abb15762aec
55d8abb15639e7cff0013af94b549fc9b32c5e65b6885cd82ba2cab3340c24680ab2b0fdf22b441a9f
096e5db15787f9cf54f3f7997f2cfcdf67e66d26fa17826806911cb642e64bb4bebe82fad18436d172
e5676d486e00a7ef966a9d83e2a9d799bc817d75e67d00e9777058f9de18b53d5b43d7f4cd365b1
b34b84168b6f05eac664568a58c4f14a9249c9e32c538baad1563b67e5ed6bcd1aa795ecb5bf2fc7
e5dd6f56b4f3a47acdb5dd83ea76b6536a3a842631eb45e9c4fc8472496eecebea462b4f8b157d17
a0e94341d0f4cd116e66bd5d36d60b317974dea5c4c2de358fd495bf69db8d58f8e2a9862aec55d8
abb15762aec55887e6449e6cb4f2f47aaf93fd79f50d36f2d6eeef4cb5589a6bed3d250b756f1faaac
048626678a9c4991157971638abc7bccb07e63eb5e5cf2cc3e6382ee5d6f4af35e8f653cb269df5b8
5fea13ce6e753f4eda34adbcb1cb183bc683d33f67baac8356f236b36bafaea7e5c684fe65e8964f7d
677505949a6e93a9c7717531b8d3ee78f38409a210ad4c8d2c52c71dc6fc5d59561767f97fa9f9efc
c0da16a1a75d794ecf58f23e9d6f773c962ed358ddaeab77732c105c2f1852ea24917e305b8d5645
534c55f5122f0454a93c401526a4d3c4e2a81d7745b1f3168f7ba1ea418d8dfc4d04fe9b1470addd5
87423a8c5589ea1f94de5dd520bdb6bebbbf960d43eb1f58433a8def16f1642088ea2a2fa6a787c3f
cb8aa32dff002d7cb76de5bbcf29a1b96d16f65492585a724ac51cab28815a95117c3c38ff00bec95
e58abffd4f7f62aec55d8abb15762aec55d8ab4caaca55802a45083b820e2a9079ce61a7795b54d4
e2d1e2d6e4d3a07bd4d2a502937a0bc9952a927c7c0109f0eed45db1578af9d3f362e75bfcbff003b
eb7e5ab34d2f5cf2ed9cd2e99af5bb24927d45e481ac2e217922148ef23791947d90237fb58aa79e
64b0f3e69fa9d96b5e5a8ee175cb2bc966b6d0f559ad6ed354b3b5b2324b6e97010bc0d334ae236
e6784d1ab37eea591715635079ff5ef366ade5893cb77dacb69fe60bef3344fa623c3677d0c9636d0
18e0905cd0466d27322329e5f157fbc5c55ef7e538bcc50795f4687cdd34373e698ecadd759b8b61
c6092f446a2664141f097a91b0f90c5538c55d8abb15762aec55d8abb15762aec55d8abb15762aec
55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb157ffd5f7f62a
ec55d8abb15762aec55d8abb155937f7527faa7f562af9a3f313ff0024c79d7ff017f2d7fc45b157a0e
bbff29efe537fc60bff00fa815c55896a3ff939fc8bff006ddf33ff00d43458abe86c55d8abb15762aec5
5d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8
abb15762aec55d8abb15762aff00ffd900000840010824000000180000000210c0db010000000300
00000000000000000000000000001b40000040000000340000000100000002000000000000bf00
0000bf0000af4300004442030000000000008000000080fe7fe9430000008000000080ffff8142210
0000008000000620000000c00000001000000150000000c00000004000000150000000c0000000
400000051000000d84700000000000000000000d2010000400000000000000000000000000000
00000000005e0100003100000050000000280400007804000060430000000000002000cc00d301
000041000000280000005e0100003100000001000800000000000000000000000000000000000
00100000000000000000000ffffff00fdfdfd00fefefe00e4e4e400cacaca00fcfcfc00fbfbfb00f8f8f800cd
cdcd00d2d2d200f5f5f5007e7e7e00f4f4f400f9f9f900fafafa00f7f7f700cfcfcf00bcbcbc00656565003
1313100eeeeee00ebebeb002d2d2d0051515100ababab0002020200a3a3a300494949002c2c2c0
0dfdfdf00c3c3c300626262006868680089898900acacac00e5e5e500888888006c6c6c006d6d6d0
0aaaaaa00b7b7b700a7a7a7006464640046464600dcdcdc00e2e2e200c4c4c400a2a2a20076767
600858585007a7a7a0080808000b6b6b60099999900c7c7c700323232008a8a8a00d0d0d000b3b
3b300b5b5b50077777700f2f2f200f6f6f600a0a0a0005f5f5f009191910029292900f0f0f000e9e9e9
00878787000f0f0f00d3d3d30079797900f3f3f30097979700383838005a5a5a00c0c0c0008484840
0dddddd003737370035353500a4a4a40050505000828282006b6b6b006a6a6a0081818100ccccc
c00bbbbbb00e8e8e8008d8d8d005d5d5d0098989800a5a5a500d5d5d50086868600b0b0b0007f7f
7f00f1f1f100efefef0096969600d6d6d600e6e6e600d7d7d7001610000026060f002220574d46430
10000000000010000000000000004000000002000005826000058660000b9b9b900d9d9d900a8
a8a800a6a6a60093939300eaeaea00c9c9c90057575700d1d1d100e1e1e100a9a9a900c8c8c800

699

9b9b9b00b8b8b8008383830052525200ededed009e9e9e00bebebe00dedede00707070007d7d7
d009d9d9d009c9c9c0078787800adadad008e8e8e004d4d4d00c5c5c500ececec00afafaf00c1c1c
100cecece009a9a9a00e7e7e700aeaeae00c2c2c200b1b1b100b2b2b2004e4e4e00a1a1a100343
434008c8c8c007b7b7b007c7c7c0074747400bfbfbf00757575006e6e6e006f6f6f00696969006666
66007171710073737300636363007272720060606000676767009f9f9f0020202000949494008b8
b8b008f8f8f009090900095959500929292000e0e0e00bdbdbd00bababa005555550039393900c6
c6c600cbcbcb001919190010101000d8d8d800e3e3e30047474700b4b4b400d4d4d4001b1b1b00
3c3c3c00484848001c1c1c00131313000b0b0b003d3d3d001e1e1e00181818005e5e5e00030303
003b3b3b003e3e3e0015151500090909004242420012121200141414004b4b4b0006060600414
141003f3f3f00e0e0e0000d0d0d00040404004343430045454500252525002a2a2a004a4a4a004c
4c4c004f4f4f0040404000545454003a3a3a002e2e2e002f2f2f002b2b2b003030300036363600333
3330028282800242424001f1f1f0008080800010101000505050021212100070707001717170023
232300272727005b5b5b00dadada000c0c0c0026262600565656005c5c5c006161610053535300
dbdbdb005959590044444400161616005858580022222200111111001a1a1a001d1d1d000a0a0
a0001010101010101010101010101010101010101010101010101010101010101010101010101
010101010101010101010101010101010101010101010101010101010103010101034a390159a
9010e9651750101440ca1150101233c7aeef22e010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010100000101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010107010103010102030103010102010
1ae4373a8910701a917010107018e88060109473003db97030101030101020102010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101000001010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101030101030106
010801010601f753a84d305a016ec501065b08867701481de28f01f3a10d0706010301010106010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101000001010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010102030
1010101010106060301f6b70fc3f78c9401abd535839b4ab1b80714b77c6d0ba3e1a62270030601
02010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101000001010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
0303030101010303070101070108392624d8343fa65b80e4b5674901b14e26dc168e1b01eea13e
90d568010f03010702010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101000001010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
1010101010101010103020203010f06010301b60b082e65076502465201010e7d48d8e2b60fb82
30185820124ff69060101010102010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010

10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101000001010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
0101010101010101010101010102010101010101030201010107010102020f82e48a0aa64f6c008
90101469402cc415927f3640101010601010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010000010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
010101010101010101010101010203010302010108030f06030103010201010f0101019823355a
6248758a07010b6a987a3c90adae16010101020601010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010000
01010101010101010101010101010101010101010101010101010101010101010101010101010
1010101010101010101010101010101010103010103030108457a018701068e2874450101ad81
750301018c06b87c8d3f0103060108010106010107010103010603010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010100000101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101070102010103f55f0ed72e01aee87e0
d03013c388a010323413f0c001b0e0101020303010101010101010101010101010101010101010
10303010303030301010569012f1603690c4b8c01027232890f01016a01ad33190d010601020306
01010101010101010101010101010101010101010101010101010101010101010101010101010
101010101010101010101060101100107010d0b024a0f016b60096f0201f672690103074a0b69ef
110e03010f01010301010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010201030101010301010802013f451564010e10
2e6f0b0102030f65872e440107010303010101010303010601010201020101030f0102010303030
30701010000010101010101010101010101010101010101010101010101010101010101010101
0101010101010101010101010101010101010101010101010101010f018aeb3294c580033eb36a
030102642201036bebbc0286bfd001010803010f020302010101010101010101010101010101010
10101030301010101014d9c16386d0208e1940f0f013ff269010284510687fe1f070101060101010f
01010101010101010101010101010101010101010101010101010101010101010101010101010
1010101010101010101010103010103108f49012b8f063793cf2d01032f4cab100108414523fe491
50201010102010102020101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010701010f01b67f06844f0eb679140507017d5d3
1640101461f11e44d2e0e01010101010202010101010103070301010701030103030f010101030
10102000001010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010102010301953986f13a300e4af98b6f8
f5a687f0616179ea806adea74ad44010e030101020603010101010101010101010101010101010
10102030101010104f5a89cf75e0f01cc90010765013d2e075af9fa0708de2d010101010f01020101
01010101010101010101010101010101010101010101010101010101010101010101010101010
1010101010101010101010201060101f4a2adac3201022733010101037e68030db7b40b06c6590
10106010101030203010101010101010101010101010101010101010101010101010101010101
0101010101010101010101010101010101010102010302020195526091f40f0f3dd9010110018d0
401060c002f01ec660101010603010301010303010601010101020101060101030301010101010
70f010000010101010101010101010101010101010101010101010101010101010101010101010
1010101010101010101010101010101010101010101010601010104933e67b702ae057ac11c27b
a610d6102d9540f460112ac8025d36701070301020101010101010101010101010101010101010
103020301010306326303c5752f2e03cc5c245e80029904efb355883f4a1daf7e350101020101010
10101010101010101010101010101010101010101010101010101010101010101010101010101

701

010101010101010101020101060701354c6051254269012697010bef01970403a1fcf30b0edc775
b0301010601060303010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010701010168fd8982a14e2f017ecc02010406238
c025af94db202de61150f0106030202010101020103010101020f010603010102010f07020106010
11000000101010101010101010101010101010101010101010101010101010101010101010101
0101010101010101010101010101010101010101010101010e0748a18c364f10751b3ecb83031f8
e45257fe05b105c013be61601bbf701010701010201010101010101010101010101010101010103
03010101060ec9aeb24c160a9a01d8821f0c81024fb91d5d015e0b0e438e8ad9a70101020202010
10101010101010101010101010101010101010101010101010101010101010101010101010101
0101010101010101010201070103d99f0fde8c6b8d03953858c34b01976588c18a4f1e0de134a4af
b2010e01010106010101010101010101010101010101010101010101010101010101010101010
101010101010101010101010101010101010301013f017b2c01fa6d0da70378e40c9c41062a158c
fb7b8e4e0edf9d19a35a06010102010101010301010107010108030101100103010103010e0101
01000001010101010101010101010101010101010101010101010101010101010101010101010
101010101010101010101010101010101010101010601030101010b0101030301018cd1880e018
a24dee6b2034a7f066aea040fe0c303010101010607010101010101010101010101010101010103
010101030708057360121687b10891290102240131d64108017b3f06ed730336c6010101060101
01010101010101010101010101010101010101010101010101010101010101010101010101010
1010101010101010106020101025bc3742ff77d6884039c218c7089022283c162017e2401b07001
61da1001020101010101010101010101010101010101010101010101010101010101010101010
1010101010101010101010101010101010101030306013e853db9e23b0d56657ef873486601626
8c533013c8e01d5360161f97a07010103060601010301010301652a484b376e0a7b2da98c6e3c6
40102000001010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010601020302010e010f89e15e86
62225fa58d0107989c2d2ae9a48ba12d0106010106010101010101010101010101010101010101
0101010101010206080101060106017a1d78d0b56db5cec15b021ec31e50bd8f2ff261010102010
20101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010102030206100107013f0164019e3d01037a879fc13d0107336f3f523a
0f76934a0101060101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010303060e6f154a640d01b6019fc302010e2483d
31c0f023c370fdf760e74ea5b080101010307010102030301011ff4249b48785b97efceaa216d2d06
01000001010101010101010101010101010101010101010101010101010101010101010101010
1010101010101010101010101010101010101010101020306010e0103010e010201640e7a5b45
0125c9020107444a0b24e0970b0301080101030101030101010101010101010101010101010101
01010101010101010f010101010f989684a9eed39834b901011f95908f630ca67c010f0101020101
01010101010101010101010101010101010101010101010101010101010101010101010101010
1010101010101010101010201010701100301010f0104bca2b819976e9179030124f57c75e0426c
8512013f0103010201010101010101010101010101010101010101010101010101010101010101
0101010101010101010101010101010101010201010301010301010102017aa071b1b1224246e
d73011558a424dd78ada2550f010106010101010201010f01061282012224a43f7f04cc9c3575f60
30100000202030101020201010101010101010101010103030101010102010301060101020101
01030101030101010101010101030101060103010201010303030101010302010106030102010
16ff1e74003010201033600c2d00103010f010f010f010301010701010201010102010f0101010301
0101010101020201010201010201030601f2b31506010306030101020301010101010101010103
01010301010101020101010103030101010e01060301030102030101030301020103010103010f
010206010103030103060301020201010101010f060e4544450483521e0301060b157a3e658c16
3f0101010101010101010101020201010101010101010101010101010101010302010201060201
020303030103060101030106020101010103010301010303010301060f010f167a6f3e3df3870e0
6014a8765656565876402010101010102030101030302010f3cf416761e966d7e8156728fa14801
01000001020101030101030303030303030303010101030203030201060102010601010101030
10103030103010101010101010103010201030101010101010101030201030303010101030101
ab0000478c07010215e400e79601030f0101010101060101010201010301010102010301010301
01010303010101010101030101010101034ed200130301060203010101030f0303030303030303
01020101020101070301010101030101070101010601030303010303010103010101020101060
10101010101010101060101010103010102010102010101010101012c008301010f01030301030
70201010101010101010101010101030302010101010101010101010303020101060101020101
010102010101010101010102010301010101010101030101030101030301010f010102012ea5ca
8701060b0102030203030603010101010101030101030301010301675c01160f0e164a7a010115
0801060e000001060101020101030101010101010101030303030103030101020103010201010
70301010103010101010101010101010103010101030101030301010101010101010203010101
010186e5e60000960107013900cd00c2600601013f020101010201020301020303010102010101
0202010103030303010101010202010102020110d800c4008e0201010103020203010101010101
01010107010101030602010301010103030301010102020301020101010207010103010301020
1030201030301010606010101010101020301010601010201010f01010130f000c02e0601010101
01010101010101010101010101010e0f0201010201010101010101010102060101020101030106

01010103060101030101030301030201010101030303030203010203010301010103010101012
700009e0102010201030301010101030301010101010101010106060101010144890e01020301
0f0201010f01020000030301030101020101010101010101010101010101010101010101010101
01010101010706010103010103030303030103010103010101010101030206060301020103010
30102010191000000d2e85901efcbc400d20021010107010101070201010201010601010101010
30101020101010101010101010101010101010301035800e80000dc0d020606010106070101030
30301010303010706010103010101010101010101010203010101010301010103030101010202
010103030101030101010101010101020203030301010307010106010102067db4d2000027060
10203030203010106010101010101010101030101010106010101010101010101010101010201
01010101010101010101010303010101010103010101010101010101010101010101060701010
20202b2ace7e6bf700101010102010101010102030101030301010306010107060101100165020
10701efaf750103030802000001010103010101010303030303030303010101010303020201010
30302010101060601030301020203030101010103030201010302010103010101010101010101
010101010103013bd2cd00d20000a33f33001ad20000e828010203070101030101020103020101
01030103010102010303030101010101020301010303010187e9e7c4001a002901010102010103
0301010101010101010301010201646f0301010101010101010601010806010201020602010101
0106010103060603010103010101010102061610000026060f002220574d464301000000000001
00000000000000040000000020000058060000586600000101010101030301010101010310010
149000000d2c7b501010302010101010101010101010101010102030701010e640101010101010
10102010601010707060301010202010103030103030303030101010101030301010301030301
030301010102010f0301eee7000000d40806020203010103030103010101010101010101040101
010106010301010f01016000b46e45010601000001010201030f01010101010101010101030101
03030101010101010102010101010201010101070102030101010101030201010103010101020
202010101030201010f010e01020faf43c5deebce93da92c952dcecec4cde263f010101010101010
3010202010101010f010101010101010101030201010101010101020301029c0000d2c40000ed4
503010707010101010101010101010102010f010b81a6070302020301030302010101020107060
10101020103070101010703010101060102010106020101010101010101020601010101010101
01b1e6e600cd00004d0f010206010102020103010101010101030101010101103a880101010101
01010101010302060101010101030301010103030101010101030601030101010301010101010
30103020301010601010162e800cde8e7005e01010301010101020201010302030103030107abb
20107020301010801010107d0acd200dd8b4a0300000f654e6ab1127c4e7cad125a5a12ad7c129
87caeae98897c891f7c985a89898ea4aaaa42aa805e8b4b66a66ea6665e8baa66a6764b36aa5e8
13666a6a66ea984a6aaaba632ab6ea89c63a69bd3363994a725aaa84c328f885f2584424b4239a9
76a676ababa48b3681a88baa668b765e668b8b4b66365e6e36363666aa8b8babe0bde9e4002cb7
bb6e8898ad7c98adadae12adad5aae5aad128e7c984e741b7c5a5a5aad7cad5aae5a7c5aae5a5a
59984eb1ad8eb1124eb186892f1f86751f1f864e7c8e868686b12f75868eb170372f86b12f892f7529
bc000000e71a00008b4e7cad7c7cadad7c12ad7c98987cad12adad4ead7c7c625fadadadadadada
dad98ad986a89058e7070371f05593775b186b2708637057037058eb10975b175b170b27075707
5b175b1053a05598693000000000000b32859b170373759371fb2725905098ab2593a05663c75b
28a72097572708a481188ea00cde700938f000001240c9f883c8f293b9062888862903b83628d6d
53747453888f19232a888d6226a82935623c8d833c8f236c748d3c6a8f832377b88f83b8773b888d
8fb83c3c833bb83b8b6c628f888853a7186a88626c8d8f55d29f408b71148d8f19234019885f8d301
b3c2323b84074305f838f197b2a2319838f8d2a2a2a6d5f7490902a35353b36d68b8080a8429494a
baba86ea8aba66ea9a842a65ea6aba64ba6a9848484a842ab42a85c84a842a85c6e7fcb51d72c7
941d8d4d9ccd8bc4cc591d9bcd8c6da79dbc9dcc94cc6c552c0b7d3dcd3dddcccd451cc14bcc638d
4a8ab42615c84845c5c5c94a739945c84845c9439a7395c945ca89494949494949494949446393
958944db41752dedf4cc514e014de5214dfdde14c4c5243e0dce2e038dd4cdc51e151e1e2524cde
38ce51e3a5e4e1e5cf34493d3127a131a1970c829e950c3d994933313d9699499b9b34569f7e9d7
e979c9a49c3e6e700e7e800c9000001016a1901020101010101010101010101010101010101010
1010101010101011b924e053a5a9889b2119889378e7005adad708937aead86599837600ab1ad
b11205708eb8865a12ae898e53a205ad777c708e40bf600f0176d42f707c357c86ae05866a98092
9375a128e8e8f1275863777356a891f86b2ad8e86891289868e5a6aada62c010202010101010101
010101010101010101010301030102030603010101010101010101010101010110ba7f111f8eae
6a4ead4e77358d5aae8f3c983c863b3b778890ae3b8d4eb18dae5a12898e4e3574887c986a2842
01010201010101010101010101010101010101010303070101030303010101010101010102010
1010190ca1983b8aead8db88d77988e838f907798ad74775a6a8f8d3b8e758fae985a77123c1298
b1899890886a7232ab01010106010101010101010101010101010101010101030201010103010
2010701010850ac000000d5a43f000001016a19010201010101010101010101010101010101010
101010101010101016d282f8eb23711378e2fadb1594ead7c8a7712ae8e7c2f891f708a752f758e8
9ae7c3c05094e2f75ad05b276a259ae6a982f1142d27501034bd3b137891298b1127c595a757c7c
4eb8ae708f4e3b98777c35896aae881277371f7c5aad2f2f5a352f3a665110010101010101010101
010101010101010101010101010101010101010101010101010302010103017a47a77db18eb1a
d3b125a5a5a4e775a3c5a895a3baeb17712127723988eae6a8912b2123c2f983b778f7c2f77aa03

703

01010301010101010101010101010101010101010103030f010101010101010101010101010303
0162c26a704e895a8e2f37057c4e1f6a98ae1212052f4eb14e70708629372fb16a12290ab24e5a89
5a3786373a46ab030201030101010101010101010101010101010101070301010103010101010
10203017d00c4bd941e011000000301ae280102010101010101010101010101010101010101010
10101010101011b747586058e3798892f1f1f2f894eb1ad6a1f2f3a05372fad75707c893789124e70
89ad4e3c89707f5ab58041054e8612591194b43a01026ece708e894e6a98aeb1865a3b6aad4e1f7
77c988e6a5a3b12775a98293b983b5a12ae295a868e351f897536cf0f0103010101010101010101
010101010101010101020102628301010101010101010101010101020115be33678e3598988fae
1f8e4e1f86ad125a6a77286a056a1212ae5a5a982f29771f4ead2f866a774e2912866a6e06010103
010101010101010101010101010101010101010301012e1101010101010101010103010101194
790895a4e862f127798ad777c3c1f9889128e12864ead779829b1292f12752f599886ad898e2f378
64e0aa7a60206030203010101010101010101010101010101010335d001010101020106010601
0159d19a7d0701060100000303122801030301010101010101010101010101010101010101010
1010101018b401f891fadb2091f4e8e2f2f8e98b13c89b28e703786376a982fb15989ad860505b11f
b289ad70cc92111b412f5a7c4e3775abcd090701aace05775a7c8f7790b177126a1fad987c29ae8e
1fadae123c2f8e2f29893ab13c7c4e6a6a1f378e90ae2f6ec00e0101010101010101010101010101
0101010102010f010f3d9b01010101010101010101010101030164b333707c77122f77b8aeadb83
c3712ad7c5a29b888356a7798ae1277625aae8fad757798ad4eb1aeae98898fa903010301010101
0101010101010101010101010101010303010f7c7b0101010101010101010103010183cb297c89
9812356a7c705aaeb87789ad7c3bad1f4e9877ad7c2f8e8937770598892fb289989872091f986094
ab01010102020101010101010101010101010101010107277c01060106010101010601020d8d01
01010e0601000003017c2803030301010101010101010101010101010101010101010101010101
92748a868e7c752f8a98ad1f37b18e867086b22f4e1fb18e4e7c4e7569758986377589050998351f
a73b709241055a9809865976c80a010176c93788b85a3b121f7c2977096a7cad3c8f59ae5a8d1f8f
6a123c6a983c7c6a3cae988989987c983b2fb2abc51002010101010101010101010101010101010
101010202016a350301010101010101010201010101026fca96985a2fad773cae354eb812987c7c
2f125a7c6ab812126a898f29989029897737ad2fadae4e295a4e2f3ba90101030101010101010101
01010101010101010101010103010667090101010101010101010103030162cb88ae1fb1ae8686
866a6a6a356aae5a1f1f901289127cad8e75b1984e9886b137111f8e4eb2098a8e056b5c8401010
103010101010101010101010101010101010103307d0303010801060301010108020107010303
0101000001014e2803010301010101010101010101010101010101010101010101010101807b3
737058e2f98b1b1868e89701170758e750570b186054e1f2f898a37b17c7c70117037594e055a86
b97bc359ad8e752f595ec43a0303a9c559ad2f8e29292f8eadad5a626a895a861fb812776a5a3bad
adb18e3b3c98ad3cb84eb1ad29ae86b270a9c60603030101010101010101010101010101010101
0301060102010201010101010101010101010103066fc73475127537987c8eae777712296a12b8
296a9089ae294e8f89ae35376a624e12771fb21f628f987c77b177a8060103020101010101010101
010101010101010101010101010107010101010101010101070101010162475f8e8eae89b18eae
ae2fae896a5a125a7cad12b229b129867c59ae8ab2867c098659ad7c37b2592f7c50aba80201030
2010101010101010101010101010101010101070102010101020103030701010301030201010e
01000001018928020103010101010101010101010101010101010101010101010101019236988
eb14eb1b1292f05b2b17011985a891f898637b10a7cb1598e2fae86892f898ab159b2772937b1094
b2bae89377cae0542bf750e0136c005ad1f9898898f86982f3cad2989891f352f77377cb1837c121f
ad092f7cb14e6a777c4e8986ae4e05aab007010201010101010101010101010101010101030201
0103010101010101010101010101010302030344c1788a8faeb12f4e35adb889125a7c1f3b77b81
96a77ae98ae6a8998908f5a885a7cad77899829ad6a12372984060103030101010101010101010
10101010101010101020102010602010101010101010101010303018fc229b11f903ab11f770912
3c982f1f376a2905705a35ad2f987c6a2fb12f0a8a863a3a758a2f1f8e050567aaa60301020302010
101010101010101010101010101010f010307010201020301010102010101010606010e0200000
1018e28020103010101010101010101010101010101010101010101010101017b1b8a75707059
2f3a867c0ab970b24e5a1f05861f3a091f0a89ad8e721fb1ad2f2f7589705a371f69b2111f19752f353
78e0a4b203e01014bbb0937b27cad6ab1704e3b058e6a98b87c378612ae126a704e8eb11fb189a
d3c75b27c5a8e8ead8e3cb283bc0b0301010101010101010101010101010101010101030101030
701010101010101010103010101010115bd3309298e4e351fb1295ab198886a7729628898891f3
a777c2fad12358d985aad3b1f1f7c9829b85a11093c420101060101010101010101010101010101
01010106010101060101020101010101010101010303010183be358686b8b11f8e778e8e865a75
3c8e7cb119b1128e1f057737b1b20537b18a05117c090a59b15970723742660301010101010101
010101010101010101010101010107010103010f01010206010301070101010201010100000303
4e5f02010103010101010101010101010101010101010101010101010101811b0a98985970598e
4e597086868e11592f1205371f89b11fb2867005b2897589701f095a59b248aa358a1fad1f371170
59b5325c010202a6b772b8b26a6a2f05988eb1985a1277b1ae983789adae629812866a7c1f89988
e758e868eadb186ad86b10546150701010101010101010101010101010101010106010101b960
0101010101010101010102010102033eba95893c297c234e8eaeadad6a6aad7cae293b6a5a3577
293b5a5a7735777c4e7cb85a8989ad12ad7c3c4e4e320103060101010101010101010101010101
0101010103010702014a160301010101010101010102030788ac3bb1b8ad86b1b14e2fb14e98ae
1f8e372f898937b1757c7270113770054805378e75b10a1170b189592d6e8401020301010101010

1010101010101010101010101017a020701070301010101010101010101010101010100000101
8e2a030101010101010101010101010101010101010101010101010101017ba6adae5aad293b3
75a5a292912ae2f7c986a7c353cae8e894e6a4e8e89771298052f8e8f2f3705afa62f8e7c1f2f59ae0
93a63391003018bb0b17cad6a7c35864e3b907cad2912ae776aadadae2935ad8812aead868e3c1
f8e353529ae70b259988e89947a07010101010101010101010101010101010101010e0103589b0
1010101010101010101030101010165b358097c293735ae7c8689125a8e70751f6a6a775a3c358
9981f4ead7c4e8e8e8e7c4e8e1f8637864e984e35a8010103030101010101010101010101010101
0101010601010108751b030101010101010101020101013bb412b2987570b1751f8605b1b11f05
75b2702f1f7537709811373a8ab2b2698a70b2b50a69488a597572b6a8a8010101010101010101
01010101010101010101010101632f01010102030101010101010101010101010101000001012f
74010101010101010101010101010101010101010101010101010101013c63966334956355997e
497f347f9a26999682319a9b3d957e9c9d9e9f9e9a9e3d3d9a579c82319b719f583d9f9a9c9f610c9
fa01b0101068b933d9e9b279f3d99499a27637f9ba19b3197a13d99a1499ba256277e319fa39582
565626279997279b96279f65010f01010101010101010101010101010101030102010119a40201
010101010101010101010103017aa54da6a7615ea746a884a739a95e8b6ea746845c6e94466642
39225ca6aaa822466666aba8a942a7556e6134ab0f030601010101010101010101010101010101
010102010301026b5a0301010101010101010102010190ac82366e4bab8436a41b4b664b668b5e
5e66818b808180aa9236817b366653804b7b6da430921b6d1b288897ab0801030201010101010
1010101010101010101010107a911010f010103010101010101010101010101010100000101862
80101010101010101010101010101010101010101010101010101010101643f08100d0e3e104a1
01010104a100b0f3f3f0d0d083f10644a0e0d3e0d3f100d4a4a0d0d0b0d0f080d0b0e3f3e103e3f08
0b0601070188120b3f0e6565080d0b3e640d3f4a6465080b440b0d64084a6564440d0d440d3e3e
15644a4464874a873f443e010f0101010101010101010101010101010101030201020101010301
01010101010101010301030201159349942222397f33630c95957f630c7f0c317f3432634934957f
3349969695493382967f3396343496493d55290301010101010101010101010101010101010101
01010102030101020301010101010101060106010190185849826396820c0c630c0c636334630c
7f637f630c63495895967f494934964963343396334949973d337f98010101060101010101010101
010101010101010101014a0101030101010101010101010101010101010101000003018674010
30103010101010101010101010101010101010101010101010101070101030302010303020101
01010301010103010101010201030101060601020102010101020301030201010606010102030
60101070101920a02030201010101030101070301060101010303010103010101010302070103
010101010101010101010701020701010101010101010101010101010101010301010f01010701
0101010101010101010203010306872c0303010101020101010101010106030101010101030301
03010101060201010102010101020101010101070101060303010101010101010101010101010
101010103010101010201030101010101010101010301028f35060103010101010202030101010
1010301010301010102010201030301010101010306010101010101010f0102070103010101010
10101010101010101010101010301030301030101010101010101010101010101010100000301
1f2a03030103010101010101010101010101010101010101010101010101010107020103020101
0302020301030101030201010f0101010201060301010601010106010101060103030101010102
01010101010601076d59010103010101060303020101010601030101020101070106030102010
10101010101020702020101060e0106010e010101010101010101010101010101010103010203
01010301010101010101010103010101065b910b0601060601010602060301010102030103010
303010101070101010101010603010103010101010e0101010102010101010101010101010101
01010101010101020301010101010301010101010101030f0101015f3b01010607020202010101
01010103010101010101010101010301020101060101020103010103020301020101060101060
10101010101010101010101010101010106010206010101030101010101010101010101010101
000003018e6d03010101010101010101010101010101010101010101010101010101080101010
301030101010301010101020101010101070101010101060102010f0f010101070707014a01030
6030603010102070e01010101743a01070601010201010f3f02010101030201010301010303060
70106010106030101010101010101060301010e01010101010101010101010101010101010101
06010107081002010101010101010103010101010168546401010601010103010307070201010
10603020101030102010103060603010101030301010101010102070101020203010101010101
01010101010101010101030103010101030803010101010101010101010f018f90020303010101
03020203010701070102010303030302030303010103010201010101010303030301030101030
10101060301010101010101010101010101010101010201010201010301010101010101010101
0101010100000101896d010101010101010101010101010101010101010101010101010101010
10703010201030103010301010101010303010601020106020601010106010101010f010101070
1846b0101010102010701010f010106016c8a02020106010102010303010106030201010101030
10102010201030106010103030301010303030101070301030101010101010101010101010101
01010103010e0107238b0201010101010101010201010706018c540b0101010103010302010101
01010101030102010107010101030301010202010101010101020301010301060102010101010
1010101010101010101010101010101010101071e4e03010101010101010601010102238d0101
01010103030101010102010301010101010101030102010301060303010601010103010101010

705

2010102010201010101010101010101010101010101010101073c6b010f0103010101010101010
101010101010101000007011f74010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010103010106
01608101825016230301010101020101020102018305020106010201010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010607230e843d0629010f010101010701010201020168854a0f010101060201
01010101010101010101010101010101010101010101010101010101010101010101010101010
101010101010101010101010101010101010202010e3503054001868702010203010102010601
19880106010101070101010101010101010101010101010101010101010101010101010101010
1010101010101010101010101010101010101010101020101010f5b2f0226863e6003010301010
10101010101010101010101000001027030030102030101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
101010107010e71726173746d01080106010107010202010f2a750101030307010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
010101010101010101010106010276775c78670c4a01020601010101010101010124797a010701
07010102010101010101010101010101010101010101010101010101010101010101010101010
1010101010101010101010101010101010101010101010103037b7c09747d7e640106010102030
1010106193b020102080101060601010101010101010101010101010101010101010101010101
0101010101010101010101010101010101010101010101010601010301012e7f075660806a0703
01010101010101010101010101010100005e0e1f5f01113e010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
1010101020203010101604b6162630d010106010106060f01084e01193a015e640301010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
010101010101010101010101010101010265550c0c666701010101010f03030303011168152c01
04690201010103010101010101010101010101010101010101010101010101010101010101010
1010101010101010101010101010101010101010101010101030203011e2b193b256a01080301
03010103102f013b23036b06060303010101010101010101010101010101010101010101010101
010101010101010101010101010101010101010101010101010101010101020701066c6d61236e
6f010103010101010101010101010101010100003635481924494a010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
1010101010101010103010308014b4c4d4e010108010f0301010f01154f50192d4e0c06010f03010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101030203012951525301031001070101020106010109334
5540e550907070202010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010f010105565753010103
010106013f013f58593b5a5b345b01030101010301010101010101010101010101010101010101
01010101014203000026060f007a06574d46430100000000000100000000000000040000005806
00000000000058660000010101010101010101010101010101010101010101010101010201010
10e013e5c415d11010107010101010101010101010101010101000006342835363701070101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101070603010f0e383901010f01010102010f0303013a1b3b3
c3d3e0103010701010101010101010101010101010101010101010101010101010101010101010
101010101010101010101010101010101010101010101010101013f032c143e060101010201030
10103011001404041294210010301030301010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010301030
7012743440f0101020301030101014546401230120101060102030101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010302
0103010f070105473d010101070101010101010101010101010101010000071f202122010f01010
10101010101010101010101010101010101010101010101010101010101010101010101010101
0101010101010101010101010101010102020101010601062324010101030e0101030f01010108
2526272801030e010101010101010101010101010101010101010101010101010101010101010
101010101010101010101010101010101010101010101010101010207070102292a0103010206
01020f010201010107042b2c272d06020101020101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
2060101072e2f0601010703010101010202013020313206010b030101030201010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
010106010e0301010101332d01010701010101010101010101010101010101000001011314150
20103010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010f0101010301010d0601070103010601
02020f011617180106010101020101010101010101010101010101010101010101010101010101
0101010101010101010101010101010101010101010101010101010101010301010e0102010f01
01010103010107010108010106191a1b020302070102030101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010103010e01010f01010707010101060102010f01011c1d1e030107010302030301010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101

0101010101070101010301060e010103010101010101010101010101010101010101000002030
40501060301010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010601030101070203060103010801030
10101010101010601090a06010702010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101030101070
101010101010203010601010101010102010b0c0d020301010e010301010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010102010303030f010101020103030107011001111203010106030701010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101060101030106010101010201020103010101010101010101010101010101
00004c000000640000000000000000000000d2010000400000000000000000000000d301000041
0000002900aa0000000000000000000000803f00000000000000000000803f0000000000000000
000000000000000000000000000000000000000000000000220000000c000000ffffffff460000001c
00000010000000454d462b024000000c000000000000000e000000140000000000000010000000
140000000400000003010800050000000b0200000000050000000c024100d301030000001e0004
000000070104000400000007010400d1230000410b2000cc0031005e01000000004100d3010000
0000280000005e010000310000000100080000000000000000000000000000000000000100000
000000000000000ffffff00fdfdfd00fefefe00e4e4e400cacaca00fcfcfc00fbfbfb00f8f8f800cdcdcd00d2
d2d200f5f5f5007e7e7e00f4f4f400f9f9f900fafafa00f7f7f700cfcfcf00bcbcbc006565650031313100e
eeeee00ebebeb002d2d2d0051515100ababab0002020200a3a3a300494949002c2c2c00dfdfdf00
c3c3c300626262006868680089898900acacac00e5e5e500888888006c6c6c006d6d6d00aaaaaa
00b7b7b700a7a7a7006464640046464600dcdcdc00e2e2e200c4c4c400a2a2a200767676008585
85007a7a7a0080808000b6b6b60099999900c7c7c700323232008a8a8a00d0d0d000b3b3b300b5
b5b50077777700f2f2f200f6f6f600a0a0a0005f5f5f009191910029292900f0f0f000e9e9e90087878
7000f0f0f00d3d3d30079797900f3f3f30097979700383838005a5a5a00c0c0c00084848400dddddd
003737370035353500a4a4a40050505000828282006b6b6b006a6a6a0081818100cccccc00bbbb
bb00e8e8e8008d8d8d005d5d5d0098989800a5a5a500d5d5d50086868600b0b0b0007f7f7f00f1f1
f100efefef0096969600d6d6d600e6e6e600d7d7d700b9b9b900d9d9d900a8a8a800a6a6a600939
39300eaeaea00c9c9c90057575700d1d1d100e1e1e100a9a9a900c8c8c8009b9b9b00b8b8b8008
383830052525200ededed009e9e9e00bebebe00dedede00707070007d7d7d009d9d9d009c9c9c0
078787800adadad008e8e8e004d4d4d00c5c5c500ececec00afafaf00c1c1c100cecece009a9a9a0
0e7e7e700aeaeae00c2c2c200b1b1b100b2b2b2004e4e4e00a1a1a100343434008c8c8c007b7b7
b007c7c7c0074747400bfbfbf00757575006e6e6e006f6f6f00696969006666660071717100737373
00636363007272720060606000676767009f9f9f0020202000949494008b8b8b008f8f8f00909090
0095959500929292000e0e0e00bdbdbd00bababa005555550039393900c6c6c600cbcbcb001919
190010101000d8d8d800e3e3e30047474700b4b4b400d4d4d4001b1b1b003c3c3c00484848001c
1c1c00131313000b0b0b003d3d3d001e1e1e00181818005e5e5e00030303003b3b3b003e3e3e00
15151500090909004242420012121200141414004b4b4b0006060600414141003f3f3f00e0e0e00
00d0d0d00040404004343430045454500252525002a2a2a004a4a4a004c4c4c004f4f4f00404040
00545454003a3a3a002e2e2e002f2f2f002b2b2b003030300036363600333333002828280024242
4001f1f1f0008080800010101000505050021212100070707001717170023232300272727005b5b
5b00dadada000c0c0c0026262600565656005c5c5c006161610053535300dbdbdb005959590044
444400161616005858580022222200111111001a1a1a001d1d1d000a0a0a00010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
010101010101010101010101010101010101010103010101034a390159a9010e9651750101440c
a1150101233c7aeef22e0101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010000010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101070101030101020301030101020101ae4373a8910701a917
010107018e88060109473003db970301010301010201020101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10000010101010101010101010101010101010101010101010101010101010101010101010101
0101010101010101010101010101010101010101010101030101030106010801010601f753a84d

707

305a016ec501065b08867701481de28f01f3a10d070601030101010601010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010100000101010101010101010101010101010101010101010101010101010101010101
0101010101010101010101010101010101010101010101010101020301010101010106060301f6
b70fc3f78c9401abd535839b4ab1b80714b77c6d0ba3e1a62270030601020101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101000001010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101030303010101030307010
1070108392624d8343fa65b80e4b5674901b14e26dc168e1b01eea13e90d568010f030107020101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101000001010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010302
0203010f06010301b60b082e65076502465201010e7d48d8e2b60fb8230185820124ff690601010
10102010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101000001010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
1010102010101010101030201010107010102020f82e48a0aa64f6c00890101469402cc415927f3
64010101060101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101000001010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
0101010203010302010108030f06030103010201010f0101019823355a6248758a07010b6a987a
3c90adae1601010102060101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101000001010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010103010103030108457a018701068e2874450101ad81750301018c06b87c8d3f0
10306010801010601010701010301060301010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010100000101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
101010101010101010101010101070102010103f55f0ed72e01aee87e0d03013c388a010323413f
0c001b0e0101020303010101010101010101010101010101010101010103030103030303010105

69012f1603690c4b8c01027232890f01016a01ad33190d010601020306010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
060101100107010d0b024a0f016b60096f0201f672690103074a0b69ef110e03010f010103010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010201030101010301010802013f451564010e102e6f0b0102030f65872e44
0107010303010101010303010601010201020101030f0102010303030307010100000101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
1010101010101010101010101010101010f018aeb3294c580033eb36a030102642201036bebbc0
286bfd001010803010f02030201010101010101010101010101010101010101030301010101014
d9c16386d0208e1940f0f013ff269010284510687fe1f070101060101010f01010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10103010103108f49012b8f063793cf2d01032f4cab100108414523fe49150201010102010102020
10101010101010101010101010101010101010101010101010101010101010101010101010101
010101010101010101010701010f01b67f06844f0eb679140507017d5d31640101461f11e44d2e0
e01010101010202010101010103070301010701030103030f01010103010102000001010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
010101010101010101010101010102010301953986f13a300e4af98b6f8f5a687f0616179ea806ad
ea74ad44010e03010102060301010101010101010101010101010101010102030101010104f5a8
9cf75e0f01cc90010765013d2e075af9fa0708de2d010101010f0102010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10201060101f4a2adac3201022733010101037e68030db7b40b06c659010106010101030203010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010102010302020195526091f40f0f3dd9010110018d0401060c002f01ec660101
01060301030101030301060101010102010106010103030101010101070f010000010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010601010104933e67b702ae057ac11c27ba610d6102d9540f46011
2ac8025d3670107030102010101010101010101010101010101010101010302030101030632630
3c5752f2e03cc5c245e80029904efb355883f4a1daf7e35010102010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010102
0101060701354c6051254269012697010bef01970403a1fcf30b0edc775b0301010601060303010
10101010101010101010101010101010101010101010101010101010101010101010101010101
010101010101010101010701010168fd8982a14e2f017ecc02010406238c025af94db202de61150f
0106030202010101020103010101020f010603010102010f070201060101100000010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
101010101010101010101010101010e0748a18c364f10751b3ecb83031f8e45257fe05b105c013b
e61601bbf70101070101020101010101010101010101010101010101010303010101060ec9aeb2
4c160a9a01d8821f0c81024fb91d5d015e0b0e438e8ad9a70101020202010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
0201070103d99f0fde8c6b8d03953858c34b01976588c18a4f1e0de134a4afb2010e010101060101
01010101010101010101010101010101010101010101010101010101010101010101010101010
101010101010101010301013f017b2c01fa6d0da70378e40c9c41062a158cfb7b8e4e0edf9d19a35
a06010102010101010301010107010108030101100103010103010e0101010000010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
101010101010101010101010601030101010b0101030301018cd1880e018a24dee6b2034a7f066
aea040fe0c30301010101060701010101010101010101010101010101010301010103070805736
0121687b10891290102240131d64108017b3f06ed730336c601010106010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
06020101025bc3742ff77d6884039c218c7089022283c162017e2401b0700161da1001020101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101030306013e853db9e23b0d56657ef873486
Important Deadline miss handlers can be dynamically added and removed while the real-time
note
thread is executing. The RTSJ has two simple rules to ensure that the behavior of the
waitForNextPeriod method is well defined. They are
1. when a deadline miss occurs and a handler is released, the fireCount of
the handler is increased by the deadlineMiss count + 1, and the
deadlineMiss count is set to zero;
2. the waitForNextPeriod method always returns immediately if the
deadlineMiss count is greater than zero irrespective of whether a
deadline miss handler is still active.
The programmer is responsible for handling any race conditions that might occur as a
result of these dynamic changes.

709

[1]

Note they can also be called by asynchronous event handlers as wellsee Section 8.6.

In this context, calling currentRealtimeThread from an event handler returns the server realtime thread currently executing that handler.
[2]

12.2 The NoHeapRealtimeThread Class


One of the main weaknesses with Java, from a real-time perspective, is that threads can be arbitrarily
delayed by the action of the garbage collector. The RTSJ has attacked this problem by allowing
objects to be created in memory areas other than the heap. These areas are not subject to garbage
collection. A nonheap real-time thread is a real-time thread that only ever accesses non-heap memory
areas. Consequently, it can safely be executed even when garbage collection is occurring.
The constructors for the NoHeapRealtimeThread class all contain references to a memory area; all
memory allocation performed by the thread will be from within this memory area. An unchecked
exception is thrown if the HeapMemory area is passed. The start method is redefined; its goal is to
check that the NoHeapRealtimeThread has not been allocated on the heap and that it has obtained
no heapallocated parameters. If either of these requirements has been violated, an unchecked
exception
is
thrown.
package
javax.realtime;
public
class
NoHeapRealtimeThread
extends
RealtimeThread
{
//
constructors
//
The
following
constructors
throw
//
IllegalArgumentException
and
IllegalAssigmentError.
public
NoHeapRealtimeThread(
SchedulingParameters
scheduling,
MemoryArea
area);
public
NoHeapRealtimeThread(
SchedulingParameters
scheduling,
ReleaseParameters
release,
MemoryArea
area);
public
NoHeapRealtimeThread(
SchedulingParameters
scheduling,
ReleaseParameters
release,
MemoryParameters
memory,
MemoryArea
area,
ProcessingGroupParameters
group,
Runnable
logic);
//
methods
public
void
start();
//
Throws
MemoryAccessError.
}
Important
A no-heap real-time thread will only preempt the garbage collection if it has been given
note
a priority higher than all heap-using real-time threads. Otherwise, garbage collection
may occur on behalf of the high-priority real-time threads.
Warning

A no-heap real-time thread may require significant run-time checks to ensure that it
does not reference the heap. Some of these checks may be omitted through static
analysis if the compilation system is RTSJ-aware.

12.3 The Model of Periodic, Sporadic and Aperiodic Threads


Given that most real-time activities can be characterized as being either periodic, sporadic or
aperiodic, it is crucial to have mechanisms in a real-time programming language that allow these
abstractions to be represented easily. The RTSJ supports real-time threads and distinguishes
between them in terms of their release parameters. However, there is no clean separation, as the
real-time thread class has methods that support periodic activities only. Consequently, the structure
for
a
periodic
thread
in
RTSJ
is
given
by
(for
example)
public
class
Periodic
extends
RealtimeThread
{
public
Periodic(
PriorityParameters
pri,
PeriodicParameters
per)
{
super(pri,
per);
}
public
void
run()
{
boolean
noProblems
=
true;
while(noProblems)
{
//
Code
to
be
run
each
period.
...

noProblems

//

A
//

waitForNextPeriod();
}
deadline
has
been
missed
and
there
is
no
event
handler
to
schedule
for
recovery.
...
}

}
Periodic threads are those real-time threads created with PeriodicParameters. The start
method is called for the initial release of the thread (possibly with a time offset). Once the thread has
executed, it calls waitForNextPeriod (or waitForNextPeriodInterruptible) to indicate to
the scheduler that it should be made executable again when its next release period is due. Note that
there needs to be a loop inside the run method.
The models for sporadic and aperiodic threads are not so clear. Unlike periodic threads, their release
parameters have no start time, so they can be considered to be released as soon as they are started.
However, there is no standard mechanism for them to indicate to the scheduler that they have
completed their execution (other than by terminating) and no standard mechanism for them to be rereleased.
Warning As a result, currently, there are no facilities within the RTSJ that detect cost overruns or
deadline misses of real-time threads with aperiodic or sporadic release parameters other
than on their first release.
There is no equivalent of waitForNextPeriod (contrast this with sporadic and asynchronous event
handlers that have a fire method and a handleAsyncEvent method that is executed for each call
of fire see Chapter 11). Consequently, version 1.0.1 of the RTSJ supports only one-shot real-time
threads with sporadic or aperiodic release parameters. Programmers must, therefore, provide their
own support for this functionality if required.
One approach is to define an extension of the RealtimeThread class to provide the equivalent
support of waitForNextPeriod. This is illustrated in Figure 12.4 below for aperiodic threads. An
aperiodic thread is initially released by a call to the start method. When it wishes to wait for a new
release, it calls the method waitForNextRelease. This returns false if the deadline from the last
release has been missed. Subsequent releases occur by calls to the release method. In this
example, the constructor assumes the priority scheduler is the default scheduler. It also assumes that
calls to release are buffered and so requires the size of the buffer. Note that this class is not part of
the RTSJ.
0100090000032c2102000000a1ee000000001610000026060f002220574d464301000000000001
000fe90000000014000000002000003c4102003c610200010000006c0000000000000000000000
d2010000ca01000000000000000000006a400000333f000020454d46000001003c6102000c0000
00010000000000000000000000000000000005000020030000c40100001a010000000000000000
000000000000e3e306006e4e0400460000002c00000020000000454d462b014001001c00000010
0000000210c0db010000006000000060000000460000006082000054820000454d462b22400400
0c000000000000001e4009000c00000000000000244001000c0000000000000030400200100000
00040000000000803f214007000c0000000000000008400005ac810000a08100000210c0db0100
00000000000000000000000000000000000001000000ffd8ffe000104a464946000102010048004
80000ffed115250686f746f73686f7020332e30003842494d03ed000000000010004800000001000
100480000000100013842494d040d000000000004000000783842494d03f300000000000800000
000000000003842494d040a00000000000100003842494d271000000000000a00010000000000
0000013842494d03f5000000000048002f66660001006c66660006000000000001002f666600010
0a1999a0006000000000001003200000001005a00000006000000000001003500000001002d00
0000060000000000013842494d03f80000000000700000ffffffffffffffffffffffffffffffffffffffffffff03e8000000
00ffffffffffffffffffffffffffffffffffffffffffff03e800000000ffffffffffffffffffffffffffffffffffffffffffff03e800000000ffffffffffffffff
ffffffffffffffffffffffffffff03e800003842494d04080000000000100000000100000240000002400000000
03842494d0414000000000004000000023842494d040c000000000fc2000000010000007000000
06e000001500000906000000fa600180001ffd8ffe000104a46494600010201004800480000ffee00
0e41646f626500648000000001ffdb0084000c08080809080c09090c110b0a0b11150f0c0c0f1518
131315131318110c0c0c0c0c0c110c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0
c0c010d0b0b0d0e0d100e0e10140e0e0e14140e0e0e0e14110c0c0c0c0c11110c0c0c0c0c0c110c
0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0cffc0001108006e0070030122000
21101031101ffdd00040007ffc4013f0000010501010101010100000000000000030001020405060
708090a0b0100010501010101010100000000000000010002030405060708090a0b1000010401

711

030204020507060805030c33010002110304211231054151611322718132061491a1b142232415
52c16233347282d14307259253f0e1f163733516a2b283264493546445c2a3743617d255e265f2b
384c3d375e3f3462794a485b495c4d4e4f4a5b5c5d5e5f55666768696a6b6c6d6e6f637475767778
797a7b7c7d7e7f7110002020102040403040506070706053501000211032131120441516171221
30532819114a1b14223c152d1f0332462e1728292435315637334f1250616a2b283072635c2d244
9354a317644555367465e2f2b384c3d375e3f34694a485b495c4d4e4f4a5b5c5d5e5f55666768696
a6b6c6d6e6f62737475767778797a7b7c7ffda000c03010002110311003f00f55492492534b2abae
dea38adb18d7b7d3b8c38022668fde46fb0e17fdc7abfcc6ff00721e46e6e7e3da5ae35b6bb5ae735
a5d05c692d9d9bbe96c722fda6bf0b3fedb7ffe412539b9d9dd2f0b3e9c1b3118eb32367a61ad66e7
6f7fa2ff004eb3efb3eccdfd6b2bfd0e1d775ffe0927751e80683750caaf9dfe9b5ac03d42c67da5cda9
ef6b58ff00d07e959eef7d6ac6562f4ccbb05b914d8f7fb20edb847a560c9a74686fb9973777fea355
9bd17a131b4b5b8f706e3b5cca47eb1ec6383d9e9375fe6d95dd6d54d7fe029b3d2a3d3a9252dfb5
7eaf87b9af656d02401e912f241cb6be6a6d5b9acff26e53d967f846549b27aa743aa8b2da28af25d
5556defa98c6b5c2ba34c89f55acfd256ff00d1fa3fcefa9fe7a21e99d0d8fb2f38f6073b739ef2dbfbfd
a4bffa8dff0028e6fd1ff4e9a9c2e856d56d94d369a7a854e1680dc8d9632e2fb9ef35fd0f56cfb459fa
6dbf68d9fa2fe6d25303d53a2d375b8f9b8ecc6ba9735bb0d7ea6fde68ad9e89a58ff5375b998f5fa7f
cf7e93f9a47fb5fd5fd0fe820bcd61c583697867da36b5fb76bbf407d44f6e0748baf6df6d16bed6b9af
0e2dbfe930d0f63bf77e9e162ff00db284ee8dd0decaeb763dae6545e6b61fb410d0f05a58d6fe6d4c
6bdeda29fe6b1bfed3fa4929b1d38f4eea18c722bc5631a2dba9dafada0cd16d988f311f9cfa373559
fb1617fdc7abfcc6ff72161d7878540c7c6658cac39ef82db5e4bac7bafb9eeb2d0fb1efb2db1f63b73
91fed15f83ff00edb7ff00e412535fa4b5adc4735a035adc8c9000100017dcaeaa9d318f6e33b7b4b0
bafc8780e1076baeb6cadd1fcb639af56d253fffd0f554924925292492494a492492535735ceb0d58
8c25aebccbdcde454c875dac7f84f663feffe9f7b3e826c561c7beec688a9c4dd4f1f9e49bd8047e65
dfa4ffd0844cbc6c7bab73ada996398d76d2e68244f3b49fa3f4557e91898ccc2c4bdb5305c686036
868dc439ac73fdff004fdee6337a4a6fa49249294924924a524924929fffd1f5549516f52b5ed6bdb83
925ae01c0c55c113fe9d3fed0bbfee064ff00e05ffa5d25375254bf685dff0070727ff02ffd2e9ff685dff7
0727ff0002ff00d2e929b892a5fb42ff00fb8193ff00817fe974bf685fff0070327ff02ffde8494dabbf9a7f
f54fe440e95ff2661ffc457ff50d43b336f756f68c1c892d207f35c91ff1ea18793914e2514bf0b203aba
d8c77f3460b5a1a7fc3a4a745254fedf77fdc2c8ffc0bff004ba6fda17ffdc0c9ff00c07ff7a1253752547f
68e47fe57e4ffe03ff00bd097ed1c8ff00cafc9ffc07ff007a1253792548750bff00ee0648ff00b67ff7a12
3d46d00b9d8390000493fa2edff005f494fffd2f4ec2fe8747fc5b3fea423acbc5ea390dc5a00e9d944
7a6c823d0fdd1ff7651bf68e4ffe57657df47fef4a4a6f2e75ff0058b3e9b6c0fc526bc8b2a380fb43aa6
9aed6dcd654ef4d99363b23d5c4f57d27575dfb33abfd0d7f67b16a8ea1907fef3f27efa3ff007a542c
ca7dbb0d9d2ef79addbebddf673b5c340f66ec9f6bfddf492534475fea3692074f7d0d2cb9ce2f2ff52
a7522b3e8d8c663df8febddeaefc6f4eebeababfa1ea21677d60eab3663e3e0db53c91e964163ac6
870b4556635b5318e77da1f8dfacb36feafe8bff9ff00f4babfb4727ff2bb2befa3ff007a93fed0c9ff00ca
ec9fbe8ffdea494e5e4f5aea7663462e3dacbeb7e3020b25f60bb63acf49cfa9b4359b5d755eb5be8f
a1918ffac53554a5575fcf6e235f6623adb2baa936915dcc73ed7b5afb3d2c6f42d7d556f1914fe9ecf
528be9f4aff00f06b47f68e4ffe56e57df8ff00fbd497ed1c9ffcadcafbe8ff00dea494e4d5d77abb1f68b
b16cb58c75eea5c18facbc32ceade954efd15bedf4303a6ecd9fa4fd72ab7fc35555c4afeb0752b724
623ba7ba9758f731b904d9e98db75f8bf4feccefd2db4e3fdbb17733d1b6ab2bf56ea7d4a6ebb4bf68
e4ffe56e57df8ff00fbd497ed1c9ffcadcafbe8ff00dea494e3d7d53aed17d4e732ccaa7d5cbaee63aa2
cf65593462625acb29a3e9bb1ae764ffa1c9afd4b2bf4d88e3eb1751f45d63ba7b98e6d75bcb22e73
8bad6b6d632b0cc576e66d36d16db67a3e86551fa5a7f4b5ad1fda393ff95b95f7d1ff00bd497ed0c9
ff00caec9fbe8ffdea494d6e91d4b3b3b3f33d6a2cc7c5aebabd1aecadcc707fa9975dc1f63dad6d8f7
554e2ddb2bf6555dd57fa4deb4f235c7b47f21df91551d4727ff2bb287ce8ff00dea51bb3f20d3603d3
f247b5dacd1e1ff865253fffd3eef23073afc7c4cac4b4d76e2d03d1ada6059ea31d5df5dbbbd9fe82c
c67ff0082c8abfd17b12774beaef709cd2da2777a24971835dcdfb3d96fd2b595e4bf1edf57fc255ea
516ad3c1fe858ff00f14cff00a908e929c2cae9f9ec87e667d6ea058cdbea80c0db4da7ecee6443775
adbaac1fb3bbf45ec65ff00cfdcfad4727eae5d997537e63e9baea99915bac73092e1635adc67b771
3e8ba9733d4f4ebf67a8fb3d1f4d6af50e9f4f50a3ecf7b9e2a21db9ac204ee6bab05db83bf9bdfead7
ff0be9d8b33fe69e158fbadc87175979b77ed0cda7d475db6ed8fadcdfb5b6ac87d5f68ff0047fa1fe6
3f4492998c4ea55566d3d401aaa369b1f66ed18c114f71fcd6db1991fe97f9ff00577d4a8e574fbdb5
3aeea1d46822fa9f8a6cb0160790cc8353ac63cb98efb239f7ff00c655ea645bfcdabeff00aaf80e707
0b2d601ea06b1a59b036c2e7ba8f4fd3d8fc766efd0d16efaa97fe9ebfd63f4aa5ff36b08b9a6cb2db1
adbbd7daed9a92721eea5ee6d6d7bf19df6b7feafbbd3ffb7323d64a47fb0f329b5a70f2bd3aab1635
ac74b896da68b5cc6bff00ed3b7d6af27db8ff00a3fd2d357a7e863d55209e91d729acda7a83afc86
b0b4d8d6b585ce2ecaf4aeb1bbeaabd2a3d7c6fd5bf99fd0dfe97e96c453f54ba7b8dae75b697dcf6
bcd91487376cbb652463fe858fb76dcff4bfc2d685ff00323a38636b0eb3d36b4b4b3f461ae3e98a19
658d6d4d6bedabdd752f77f3775d91ff00722e494a3d03a9d2ecbbb0335945d977baddfb27d8e6d6
df7edf6d96efadeedee6fe8fd4fd07a5fe116462f526f50f4ddd5db557680dc6c52487ee24381f55defb
5efa68c866cff8cb91abfaa7d3ab2e707d85ee717fa8766e0e363321ae6bbd3ff07e9574d7ff00756b
af1ff9bad59cde87467d955b916d9ead4cd9b985a0105afaeddd596bd9fa46dbff005aff0001e97e93
d44a415f4deb81adf53a80b2c2e22c7069682c9f6baaac12caacfa0eff000bfcd7a7fcd647e84987f68
c077a7999acbd81b50b4da61ed7bc331ab35ffc1e565b2efd1d9fe13f9bb3d3fd0d55ff00e67f4c200

759698b1d693150973b7913b681fcd3ed7d947fa27a33bead61b859baeb8bec739c2d1b1af66f732
db1943d9537d2a9f657ea3ebff4dfa7fe7bd3b1253aae7b5801718921a3e2740a17d8cd963370dfb1
c76ceb006ba7f69516f42a1b823a78b5edc56edd81a18d70702e7db66f0cdbbb21efdd6fb1471ba1
6274faec38e4866eb2eda4347b9cdb18c635d5b6bfd0535dcf6554ff0083fd1ff6d29fffd4f43fb73f131
30e31ecbdb653cd43710e657eb35859ff000b5d76ec7ffa5f4e9ff0f5a033aed96e4368650e6b9d631
a1c5ae731d5921af7d16b3f9cf61f5d9bfd2fd5ff004a9ee6f59f4f02ce99b0b46339b632d315979fb3b
a975bb7f4bfcdd792c63eaff0b633f47e9ff370c93f595e5a69aeb6b58fded05c1a4b63f475dfb5cf6eff
00e77ed5e9fe8ffa37d9ecfe7bd34a5ffe7243dc1f857318dd038b5c4921d7d6ff00a2c357a6dfb3d6ff
0055b77fda846a7abe4597bea7e39abd27b184c921fea596d1fa07b855bbd2aeaaf2ecfd1ff33720b
2dfad3ead61d4d26a0eafd47986970dd5fafb58dbadf4bf42eb7dbbeefd3d7fce595257bfeb431968a
e9c7b9e2c031ddba26b2e7eff0055bfa3f4deda18cfe6edfe7b23f728f7a53b492c1655f59b78b496c
d6caf754e32c77e92cfb4b71f6d83f4d5e2bd9e83f2fd465b7d7fa6ff00b90a56d7f59adadaff00d1b2f
69735d535db297b09a831fea03764577d5165ecff0004f67a98b755fa5ab2284a77125865ff0059ec
c622c63596bea693e90634b6cdeef5ab6fa975edd9e8bebf4acff81b5ffe12ba956651f5c1981e897b
5f900076f96c1787d0e15b2ddeeb6ac6f4bd4f5bd56665cfb3ed75d76d74fd8bd44a7a5496236ffad4
5adfd5e8dfe9873b71d8d2f2efe67db7643ebd8c77badfd3fa9e9fd0afd6fd09b0dfd6dd6d672dad692
f69b406ed60a8d5612d6b5b6647eb0dccf4daff00d33ff43fcdfe7a4a7552492494a43bff0099b3faa7f
222285dfccd9fd53f91253fffd5f4434e7db8387f61bdb8e431bea97343a5a6b21bb247f395dde93ffe
2fd4aff96c17d87ac1caf51f7b1d439d538b012d70d961b1cddedaff004adf4bf47fe0f7abb84f70c3c7
8638fe899e1fba3f948dea3ffd1bbfe8ff00e4d25394707af39ce2fca63da1c5f50300077acfb19bfd3a
6b7b9b5e20c7a5bfa5ff00b91ebfadecb533317eb2b5c7f5ba8b40f60b21e49db1167a78f8dfe15dfc
eb3fd1ff0031fa4fd1eafa8fff0046efbdbff934bd47ff00a277dedffc9a4a7370713acd59a1f9593ead20
bcb89dbee6b9b4369a6195d2ddd45b5e43bd5f4eafa7ff000d67a5ac87ea3ffd13bef6ff00e4d3fa8eff
0046effa3ff92494cd250deeff0046effa3ff924b7bbfd1bbfe8ff00e49253349437bbfd1bbfe8ff00e492f
51dfe8ddff47ff269299a4a1ea3ff00d1bbfe8ffe4d2deeff0046effa3ff92494cd42ff00e66cfea9fc896f7
7fa377fd1ff00c9285cf77a364b1df44feef87f59253fffd93842494d040600000000000700050000000
10100ffee000e41646f626500644000000001ffdb008400040303030303040303040604030406070
504040507080606070606080a0809090909080a0a0c0c0c0c0c0a0c0c0c0c0c0c0c0c0c0c0c0c0c
0c0c0c0c0c0c0c0c010405050807080f0a0a0f140e0e0e14140e0e0e0e14110c0c0c0c0c11110c0c
0c0c0c0c110c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0cffc0001108015801
5e03011100021101031101ffdd0004002cffc401a200000007010101010100000000000000000405
03020601000708090a0b0100020203010101010100000000000000010002030405060708090a0
b1000020103030204020607030402060273010203110400052112314151061361227181143291
a10715b14223c152d1e1331662f0247282f12543345392a2b26373c235442793a3b33617546474c
3d2e2082683090a181984944546a4b456d355281af2e3f3c4d4e4f465758595a5b5c5d5e5f566768
696a6b6c6d6e6f637475767778797a7b7c7d7e7f738485868788898a8b8c8d8e8f8293949596979
8999a9b9c9d9e9f92a3a4a5a6a7a8a9aaabacadaeafa110002020102030505040506040803036d0
100021103042112314105511361220671819132a1b1f014c1d1e1234215526272f1332434438216
925325a263b2c20773d235e2448317549308090a18192636451a2764745537f2a3b3c32829d3e3f
38494a4b4c4d4e4f465758595a5b5c5d5e5f5465666768696a6b6c6d6e6f6475767778797a7b7c7
d7e7f738485868788898a8b8c8d8e8f839495969798999a9b9c9d9e9f92a3a4a5a6a7a8a9aaabac
adaeafaffda000c03010002110311003f00f7f62aec55d8abb15762aec55d8ab4dd0fcb1579afe57f9
3bca377f971e54b9b9d034d9ae67d26cde69a4b2b767766814966629524d772715657fe04f247fd4
b5a57fd20db7fd53c55dfe04f247fd4b5a57fd20db7fcd18abbfc09e48ffa96b4affa41b6ff009a31577f
813c91ff0052d695ff004836dff3462aeff027923fea5ad2bfe906dbfea9e2aeff00027923fea5ad2bfe9
06dbfea9e2adff817c923a796f4a1ff004636ddff00d862ae1e45f248e9e5ad287fd18dbffcd18ab5fe0
5f248dffc35a557fe606dbfe68c55dfe05f248e9e5ad287fd18db7fcd18ab7fe05f247fd4b5a57fd20db
7fcd18ab5fe04f247fd4b5a57fd20db7fcd18abbfc09e48ff00a96b4aff00a41b6ff9a31577f817c91ff52
d695ff4836dff003462aeff00027923fea5ad2bfe906dbfea9e2aeff0279209a9f2d69553ff002e36dff3
462aeff027923fea5ad2bfe906dbfea9e2aeff00027923fea5ad2bfe906dbfea9e2aeff027923fea5ad2
bfe906dbfea9e2ad9f237924d01f2de9440d87fa0dbf4ebfc98ab5fe05f247fd4b5a56ff00f2e36dff003
462aeff0002f923fea5ad2bfe906dbfe68c55dfe05f240e9e5ad2bfe906dbfea9e2adff00817c91ff0052
d695ff004836dff3462ad7f813c91ff52d695ff4836dff0054f156c791bc943ecf96f4a1db6b1b7eff00ec
3156bfc0be48ff00a96b4aff00a41b6ff9a31577f813c91ff52d695ff4836dff003462a90f9e3c95e4bb6f
257992e22f2de9492c5a5df488c2c6dea196ddc823e0c5535fcb3dff002dfc9e474fd09a6f5ff9848b1
56538abb15762aec55d8abfffd0f7f62aec55d8abb15762aec55d8ab47a1f962ac3ff0029ff00f258f94
3fed9165ff2617156638abb15762aec5528f32799f42f2869736b9e64bd4d3b47b7dee2fa60de8c4bf
cd23282117fca6a2e2a90c5f9b9f96d2c7a64ff00e25b38ed75928ba45d4ecd05bdd34db46219655
547e7fb3c5be2ed8ab35c55d8abb1548b4bf3979635ad7353f2d697a94573af68e9149a9d828612c
0939611970c06cdc1b8f8e2a8dd775bd2bcb5a3df79835cba4b2d1b4c824bbbfbb92a52282152cee
78826800aec3155da36b1a6798748b1d7b46b94bcd2353823bbb0bb8ebc2582750e8eb500d1948
3b8c551d8abb15689a62af399bf3eff0027aded06a13f9bec22d399fd18ef5d9d6dde4a91c16529c1
9aa0ec0e2a8d4fce5fcb079aeedffc4b691dcd85a49a95dc337a90c91d940556498ac88a782965e4

713

c3a62acab43d6f4af3268f65afe877497da3ea50a5d58de455f4e58651c95d6a01a118aa618abb15
762aec558f799bcf5e52f274fa5daf99b55874c9f5bba8f4fd2527e55b8bb99822449c41ab313d3156
438abb15762aec55d8ab1bfcc2ff009403cd5ff6c7d43fea164c5567e5b023f2ebca20ec468ba683ff0
04891e2ac9f15762aec55d8abb157ffd1f7f62aec55d8abb15762aec55d8ab4df64fcb1561ff94fff009
2c7ca1ff6c7b1ff0093098ab31c55d8abb15762af33ff009c8904fe447e63004293e5ed4b73b8ff0079
dfc7157cc5179eecbf32ff00203ca5ff0038c9e5ad16f65fcc6f3179634bfaab6af12e9da6c76b6a2295
ef5279db94c8a22631fd5d24672bd3e16c55f4579a7cfb0fe47f93fc85e56d5af1753f30ea3f54d022d
46ec4be931b2b4e5757b3089649182ac658228e4f23a2f255e522aa96f917f3d756f33f9dbccbe503
a21d5ecf4cd30eb1a179874ab7bcb5b4d40c7c43d9b2dea011dc06750b495d186ff0f4c550e3f3c7c
d3a36b1f967a579c34ad3ec357fcc0bb6b2d43cb093b7e94d19a489a485e4ab3095760b25638776
f87c315447951266ff009c98fcd46b7751723cb9e5b585a452d1abb1bda7200a922a2a77fa71548bf
2dbcfbf98567ff38ebadfe646b0fa7f98f53d3ffc47a93dbdc7af6deb2d86a77a6542fca7017d38f8411
84011782336d5c5515e67fcf9f36e85f925e44fcd6d2341d36ea4f339d2a2bdd2e6b89a0485f5628a
8b0b2a3d429241e54a75dfece2a9e6a3f98bf9a9a47e68e91f96f73a4e8572de65d2eeb53d2f50867
bb8a3b37d3e4413a5c065669978c8be998d62e4c7e2e0bf162a96597fce445ce97e5dfcd4bef37e9
30beb1f95fa8269d347a5c8e20d43eb7c05a141306688bbb84901f5387da5e7f671543d87fce425e
cdf985e56f279b6b7f31689e6912db5e6a9a1da6a501d1ef5557d359cdd47c6486566e2b28f49968
ccc945dd5487fe733b4bb4d1bf22742d1b4b88436363afe896b6b0aec16288ba20fb80c55ebff009b
be5ad2b50f296b9e65b98dbf4be89e5fd7a1b195188023bfb165991d46cc0fa68687f6941c55e19e4
efcd3f3ff00e56fe437e53f99aef45d2e7f235c41a168b7507d6a66d58417a890a5d2958c423f9bd03
560a57949cb90555e85e60fcd9fccd5fce6d4bf277ca7e5fd16e2f62f2e9f32e9da96a17d711c453eb
2b6ea93a4709604b5451395392bf2a0618aacd67f3edb4fb9d6f457bdd274ff00327976286d6f6da5
8352bf82e7593671dd4d04325b46bc21432a46b237390b73e50af1f8d54efcbdf9a9e6ef3a793bc87
e66d03ca92d83f9a27963f317e940e89a1c3691cdeb492a3089e40d2c3e9c47f76183abff00938aa
510ff00ce4569d67e5afccfd7753b783504fcb7bd4b149b4a94341a9b5d45135b08c92fe9bb4b2fa2
e3948108e55fd9c5585ffce4abf9d1adbf260f99174d58a7fcc1f2fc9771d899835bdd7ef78c6ad2122
54a17ac85623f0afc1f17c2abea6c55d8abb15762aec558dfe61ffca01e6bff00b63ea1ff0050b262ad
7e5dedf97fe541ff006a6d3ffea163c5592e2aec55d8ab4a081b9a9a9c55bc55ffd2f7f62aec55d8abb
15762aec55d8ab47a1c5587fe53ff00e4b1f287fdb22cbfe4c2e2acc715762aec55d8abceff003d347f
31f99bf2a7cd3e54f2a696755d735fb0b8d2eda233416f1c66ea3286591e7741c56bd179357b77c5
5e5b73f91de64f31ff00ce3f7953cbad67fe1afce7f21585aaf95b5959e26920d474f8d57e0b9819ff00
7170014646db7e4f1fc03155de70f28fe7b79ebcafe44f3d0d22c742fceefcbcd45aed74e92f23974bd
520b987d0bb48e585c9884c94f85e9c7e34e5f664c559b897f3e3ce5e5ff307d6f4db1fcbebf6d26f2d
341b48efd757ba93569e12b0dccb3c712470c50b1f811048ecdf1b9509c1d578f5b7e58fe77c9a27e
53493f92b4db7d5fc81ad5bdf6bdcb5a8e6bdd625485e192f9e768d80afdb7123cb3727e289c23f89
57af7947cb9e70b3fcf7f3c79cb52d0dad3cafe60d374ad3ec2f8dc5b48c65d24cfc99a2490baa49eb
7c151cbe1f8d52b8ab09f2ef927f35b47fc8ef3a7e525cf94a17b89edfcc76ba36a11ea56ccb7adaed
ddccb037a669e9a20b9265f5195804f811d9a8aaa5de65fcb1fcced4ff00e71d3f2f7f2dad7cb65fcd5
e5cbad19b5487ebb66902c3a23ab33a4865a37aa1470037fe7e3dd57a3f983cb9e6ebff00cfcf25f9
d6cf4391bcada3e8da969ba95fb5c5aaba4da9b42e9c61327361198692103f6be0e54c55e6937e4
779ff00cc43f3eb49bab5fd089f981a8596ade50d5dae609552e34a9049099560769222d2468c0f16
e2a7f9d78955e8de4cd4ff00e7227cc0ba5e91e78f2ee99e518ecfd37d77cc569a847a8cd7e212098
eced563e307ac47ef1e577f4d0b7a6bccab22a957fce56791bcf5f995e43b0f29f90f461a96a49ab59
ea934f3dcdbda5b47159176285a570c598914e28452bbe2af48f3847ae798ff002cf5fb3b5d1e68bc
c1ab69379670e8f2cd6e245b9ba85e15569964317105aa5c3fd9f7f8715782f9bff2c3f33b56ff009c7
0fcbffcb2d3bcae64f35797a7d20eab0bdf594702a68854b324a6521bd6a7eec01f0fc5ea71a7c4ab3
7b2f2bf9edffe727e4fccc97cb6d6fe4a9fcaa9e5937cf75686e16e56e85efaa614959b857f75b6f5f8fe
ce2a867d17f39ff2cbf32bcdba9790bcb367e72fcbff003a5cc5ad3da4daa47a55d69dab9812da1610
000026060f002220574d4643010000000000010000000000000014000000002000003c2102003c
610200e083323878a510c6e405a8fd9fb3475557cffe53fce3ba7fcbfd5c5bdaf9d0699a8df5e79cfca
b1dca69ba7ce97b6c62b7484cf412c56649e0b386699bf78e14fd85584ddfe4a7e67f99ecbf3abcb3
a968fa7e8567e7e7d3f56f2f6ab6b7eb7105bde69d0db986d8c4b124838bc0aaf2f1551f1322b0e38
aa27f30b40ff9c88fcd0d13f2fa0bff002369ba5ebbe51f33697afeab3cbad42d6f76da72ca19a01147
23246e5aadceb22725091ca39362afa910b9453200b2100ba83c803dc03415fbb155d8abb15762a
ec558dfe61ffca01e6bff00b63ea1ff0050b262aefcbcff009403ca9ff6c7d3ff00ea163c559262aec55d
8abb15762aff00ffd3f7f62aec55d8abb15762aec55d8ab4dd0fcb15621f94ff00f92cbca1ff006c8b2ff9
30b8ab30c55d8abb15762aec55d8aba8315762aec55d8aba8315762aec55d8abb15762aea62aec
55d8abb15762aec55d4c55d8abb15762aec55d8ab1afcc53c7f2fbcd8c760346d44d7fe8d64c55bfc
bdff9403cabff006c7d3ffea163c5591d0d7afd18ab78abb15762aec55fffd4f7f62aec55d8abb15762a
ec55d8ab47a1c5580793a1f3cf963cb1a3796e7d02d6e1b49b382c9eea3d480490c081392ab5bd4
06a5687154e7f4c79d684ff866deb4d87e935dcffc88c5577e96f395547f86ede87ed1fd24bb7fc90c5
5cbabf9cc86e5e5a8158741fa494d7fe4862ab1b59f3b8278f95e061d8fe9341ff323155c357f3a98f9
9f2d5b87dbf77fa4d6bf7fd5e98aac1acf9dc835f2b400d7feae89d3c7fb8c5571d5fcec0d07962dc8a
75fd26bd7c3fde7c55c357f3b15aff866d83761fa507ebfabe2ad2eb3e766e5cbcaf02d0d057534351
e229062ae3ac79dc529e58b620f5a6a8bb7df6f8ab6fac79d95805f2c40ca4eec353414fa0c18ab7fa

63ceb523fc31077a1fd2694f6ff007462a9079b3f30bcd5e4ef2fde798b53f28096dad04616dad7514
96e679e790430c10a7a239cb2c8c91c6bfb4eea31544797fcefe6bf32e87a7f9834df2ac7f52d4a08e
e60597538d2555916bc645f47e1753f0bafecb62a980d77cf9c549f28c2093bafe958ea3e7fb8c5577
e9bf3cd2bfe1482b5a506a91f4f1fee3155dfa6bcefb7fcead050f5ff00726951ff002431572eb5e7826
8fe568177a57f4a21dbc7fb8c55d1eb3e777af3f2b411904815d510d403b1da03d7155ffa5fce9bff00
ceb56fb12057535dc763fef3e2ad1d5fcefdbcb36c7627fe3a83af87fbcd8aae6d5bce80123cb76c4e
d41fa4c78ffcc3e2ad8d53ce84907cbb6a0763fa4f6ffa85c55bfd29e73aff00ca3b6a4509afe92efd87f
bcd8abbf4a79cbbf97ad6bdc7e92ffb36c55c754f39ef4f2f5a934dbfdc9f7f0ff79b156ff49f9c7bf97ed7
e8d48ffd9362aefd27e71a1ff9d7ed4107a1d4bafbff00bcd8aa53e698bcebe61f2beb7a0c3a259c13
eab6175611cb26a2c511ae616883371b52680b76df15647e59d326d17cb7a3e8d72eb25c69d636
d692bc75e0cf042b1b15a80684aed5c5535c55d8abb15762aec55fffd5f7f62aec55d8abb15762aec
55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb15762ac075e163e6bfcc3d17cb4
e1ae2dbcac9fe24d49177852f5eb069c9291fb5bcf708a7a3431c9fc98aa97936ea7f2ef9cbcc5e41d
4a526dee6493cc7e5567a287d3ef1c7d72dd28054dadd312c3f662b983157a1e2aec55d8abb1576
2aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb15762afffd6f7f62aec55d8a
bb15762aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb15436a17d6fa6585
d6a57678dad9c325c4ede11c2a5d8fdc315625f963a1dfd868971e61d7e21179afcd97075bd6e2ea
609268d2382d037716b6e91415fda64693f6f1551fcd08a0d2b4fd3ff0030bd291ee7c957075294c0
3948da64a860d4129dd440e66e3dde08fbe2ace619a2b88639e0759609543c52210cac8c2a1811
b10474c557e2aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55d
8abb157fffd7f7f62aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb15762aec
55d8abb1579cfe61c8de68d6b43fcb1b46262d49c6afe682a69c342b09013112083fe977023829fb
50fd67f93157a362ab258a39e2786645922914a491b80cacac2841076208c55837e59dbde79762d
5bc817a7943e5bb8034190bf377d06ec192cc3577fdc112da6fd45b86fdac559e62aec55d8abb157
62aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb157fffd0f7f62aec55d8abb
15762aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb1579a3689f99ba6f9cb
cc1e62d26cfcbd7b6fab9b782de4bbbabdb6bb8ecaca222189b85bcc8692c93c878ffbf7db1551f31f
9bff00363ca7a1ea3e62d5740f2e49a6e996ed757061d5efc49c1055b8afe8c6a9f01df15477e97fce
f15ff9d4bcb2dbec47986f976f91d18e2a945b693f9b379f991a179bb50d0f42d26c60b5b9d2b5e7b3
d66eefa5b8b09a9342122934eb65f5219d032317feee4997f6f655eb58abb15762aec55d8abb1576
2aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55fffd1f7f62aec55d8abb15762aec55
d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb15762ac03f3c155ff0028bce6ad4e2
74ab8fb5d07c3d71567cbf657e43156f15762aec55d8abb15762aec55d8abb15762aec55d8abb15
762aec55d8abb15762aec55d8abb157fffd2f7f62aec55d8abb15762aec55d8abb15762aec55d8ab
b15762aec55d8abb15762aec55d8abb15762ac0ff3ae9ff2a9bce1c8d17f465c72dabf0f1df6f962ace
c52829d3156f15762aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb15762a
ec55d8abb157fffd3f7f62aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb157
62aec55d8abb15762ac0ff3af97fcaa5f391534234ab9351b9a0424f5f6c559da9aa83e2062ade2ae
c55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb15762aff00ff
d4f7f62aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb15
762ac0bf3b555ff00293ce48edc55b4bb852d5e34aad3ae2acf145140f018ab78abb15762aec55d8
abb15762aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abfffd5f7f62aec55d8a
bb15762aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb15762ac13f3a6bff2
a9bce5c7ed7e8abae3feb7034fc715674b5e2b5eb415c55bc55d8abb15762aec55d8abb15762aec
55d8abb15762aec55d8abb15762aec55d8abb15762aec55ffd6f7f62aec55d8abb15762aec55d8ab
b15762aec55d8abb15762aec55d8abb15762aec55d8abb15762ac13f3a403f951e6f0686ba6ce07
21515236dbe78ab3a1b003156f15762aec55d8abb15762aec55d8abb15762aec55d8abb15762ae
c55d8abb15762aec55d8abb157ffd7f7f62aec55d8abb15762aec55d8abb15762aec55d8abb15762
aec55d8abb15762aec55d8abb15762ac0ff3a687f2afcd4a770f62e87e4ecaa7f5e2acf315762aec55
d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb15762afffd0f5f4
3f9d1e44b8823b981b579209904b1489a06b455a36155604596e186e0f7c557afe717921ba7e971
e15d035a15a75a56cbb571577fcae2f24f2e3fee62be3fa035aa7dff52c55cdf9c7e475152757f6034
0d6893bd36ff42c55a1f9c9e48242d3590e491c4f97f5b0411d88fa962ab93f387c94ea5d17592145
4ffcebfad57ad294fa962ab87e6f79259f806d56be3fa0b59a75a75fa9f8e2ad9fcddf250e553ab7c06
87fdc16b3d476ff0078fae2aa6df9c5e4957e046b05857a681ad11b7bfd4b15541f9b7e4f34fddeb43
97d907cbfad024f4a0ff42ebed8ab97f36bca0c55445ad55813bf97f5b14e2686bfe85b62ad1fcdcf28
05e620d7196a00e3e5dd71aa49a6d4b2df155e7f35fca4057d0d6c8a1351e5ed6cf434ff00962c556
0fcdcf29156616baf7c3d47f8735ca9efb0fa96f8aaff00f95afe543ff1efae7b9ff0f6b741f3ff0042f6c55
61fcdbf29834faaebd5ebb79735cec2bff2c58ab7ff002b67ca7523eadaeeddff00c39ae53e83f52c55
a5fcdcf2938a8b6d781fe53e5cd7036c69d0d9571577fcadbf2952a2df5d3b9141e5dd709dbdbea58
aae3f9b3e5114ac3ad50ed5ff000feb74affd2162ad8fcd8f28774d607cf40d6875ff00a33c5585fe6df
e61e81ae7e5c6bba568f69addf6a17b0a436f6b0683ac1791bd54240e568a3ec824efd315668bf9b
3e4d6d87e96af81d0b591ff006278ab7ff2b63c9b51ff001d6a1d837e82d6695f0afd4fbf6c55b1f9ade

715

4e24053aab31db88d0f5827e91f53db1571fcd6f2783c69ab13e0342d64f5ff00a33c55bff95a7e53d
cf0d5f6ebfee0759ffb23c556bfe6b795114b1b7d6d8015a2f97b5b63f401658aac5fcd9f29bf2a5b6b
a388a9af9775c1e3b0ad96e76c55b3f9b1e5409cfeadae915a711e5dd6cb7ddf52ae2ab4fe6df94c1
23eabafed4dc796f5c237f7fa962ab0fe707948043f52f309e60114f2cebc695f1ff41dbe9c55b1f9bde
53240fa9f9877a1aff86b5ea6ff00f4638ab49f9bfe53715165e611b57e2f2cebcbde9dec71577fcadff
29ec3ea5e61dc81ff0028cebddffe8c71577fcae0f29d69f52f30f8ff00ca33af77ff00a31c55cdf9c1e53
5ff008f2f309f979675e3faac71577fcadff29eff00e87e61d857fe51ad77c2bff2c38aae1f9bbe533c7fd
13cc0390077f2deba295f1ff41db156d7f36fca4dd2db5d1d69cbcb9ae0ad3c2b658ab67f36bca63fe
3db5d23c479735c237ffa32c55bff0095b3e5203fde7d72b4278ff8775baededf52c55cbf9b3e52601
bd0d6d4374e5e5ed6d7f5d962ab64fcddf25c32430cdfa5a39ae094b78df42d655a57552e5101b3f8
982ab3711bf1566e8a7157ffd1f71793083e50f2f95fb274db32bb536f413b54febc553cc55d8abb15
762aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb15762
aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8ab19f33b95d
77c98b4243eaf3824576a691a81dfeec55ffd2f6ff00916bfe09f2d57afe8ab1affd23a62a9fe2aec55d
8abb15762aec55d8abb15762ac3bc81f99be54fcca1e603e56b869c796b56b9d07512dc456e6d38f
278f8b37289b97c0ff00b546f0c5598e2aec55d8abb1563de5ff0033dd6b9abf98b4b9f43bfd2a1d06
ee3b3b7bebe8c241a82bc2b299ad48279460b70aff0030f1d82ac87155aec5119c2972a0908b4e4
69d85682b8abca7cb9f9e967e69d23f30352d2bca9ad9bdfcbfba9b4fbcd15e281b51bbbbb78bd46
8ede386690127a2fc5f17ecf862af4bd1efdf55d22c35492d26b092fada1b97b1ba5e171034d18731
4abd9d2bc587f30c554b5fd5a4d0f46bcd5e2b0b8d51ace3331b1b3308b8915376e1ebc912540a9
a33afdf8abc8f48ff009c99f2f6b3e498ff0032ed7c9fe67ff957ae2577f302da5a4e91c76eed1cb23dbc
17725c88d191833884a8e3cbecef8abd7741d7748f3468b61e62d02ed2ff0045d4e04bab0bc8abc2
58651c9585402363d08a8e87154c715762ac024fcd8d2e2fcdcb7fc9e934ad423d6ae74b935b8753
912116125ac4e233e9b0959cb72aa90635a5315670f7712adc18bf7f2db02658222ad272e3cc2d2
a28cc08a569d7154b7ca5af4fe67f2de9be60b9d26f7429f50844d2691aa4621bdb62491c2540580
6dbc7a62a9ce2aec55d8abc1359ff009ca7d1742f265cfe62ea1e44f34a7916dee0daaeb661d35639
4fae6dd648e27bf598c6ee28afe9d0e2ac924fcee92cae0dbeb3e40f33699cf4dbad5ece59934c9a2
b98ac51649228dedefe5512f06e611ca5555bc315659f96be7ab2fcccf2368be7bd36d65b2b0d7203
736f6b7250cc8824641cf812b53c6bb1c5595e2aec55d8abb1560de7ff00ccfd3ff2f752f2a69da8e95
7d783cdbabdae81657b6a21fab4377784f01397955c7c2aedf0a3fd9a62ace715762aec55d8ab17f
34a16d7fc92c0d02eb13d478d746d4462afffd3f70792401e4cf2e81d06976407fd23a62a9f62aec55
d8abb15762aec55d8abb15607f9c5e668bcb1e41d464fd25fa2750d58a68ba65f04925786ef516f41
6548e2567630ab34e42a9f86263db157cffe4af367e5dfe557fce41697e5ff0025caf1f923f32b49b3d
2dd1ecee2ce3b7d77448fd1b57e53c510637309e0dc6acd3d1dfed62af4bfcd3f307e63da7e70fe5cf
927ca9e678746d1bcdf06b5f5d56d3a1bb9226d2ed1655911e56f898997e152022950cc241542ab
101f9afe73fc96f34f9fbc93e7ed6a4f3bda689e556f3df97f5ab9820b3bbe1f59fa9b594eb6e12320ce
cbe9b855e09cbb71e2ab26d2e5fcfbb6f36795b5082c355bed06ea43079ead75e974382d9229554
25ce9c9633c92c66162c4c4cd27a9100a794bfbcc5526f256a7f9c9f989e79fccbd0479f23d1b4cf26f
99ece0b06b7d2ade5925b34459a4b471235046ebb17ab4acfbf354fddb2a9c68ff009a7e65f2ac9f9
e5a8f9defbf4f69df9733433e9905b5bc5664db49a5a5f88404e5f11690273766fe6dba62a81f3b6b7f
995e42fca187f3aadbccd26b3af58db59eb3aee81731c11e8d736172cad3dadb2471092168d651e
94fea3c87d3fdef3e7c7154f742f3e6a9f9b9e7bd47cb9a0ea775e5cf2bf97f45d1b57bc9ad161fd237
975e6285aeadd39cd1cab1c50451fc602f29647a13e9a95755e3df9797de71f29793bfe72775fd275
e8c79abcbfe61d5afd35a92ce197d7934eb33351a0f86352e1429a0e284b109db157b227e61eb1a
8d8fe51793135096d3cd1f985a48d5350d7228e16961b7d3f4f86eae9a34911a312ccf2a22928563
5677e3555c559459e89e73d117ce51eb5ae2eb7e509ed04be5d172a06a96b27d5e417514f2471c
69244582b4269ea2d595aa38e2af91ff002b3f33b5ff00247fce2cf907caeba6da69ba579e26d5f40b
7f3c6a572cfa6e9d3dd5ddd80d736f1c5cc16f8847f17a755e72baafc38abe8abab6d43f207f237cafe
4af2c4c754f3124ba6f9674abc1145fbcbdd4ae02c93ac53cd1c7501a478d2494217e08cd438aaaf9
265fce7b2fcc58adf51b0d56ebf2cafac9febf75e659f463a8d9eab196657b71a5390d04aa02346c9f0
49f12154f8715611af7e63f9dbc963cadaadf79a3fc45e68bff0038d9797bccf61a4c426f2cdbd86a57
7344b6d14a608cadc45198aa7d579bd55612feedb154db53abff00ce6d6911ac9465fcbbb83d0129
cb546018576ae2a957fce33e91e64783f38ee53cdba8cd7f179db5dd3209f514b6bd4325aa5b471d
dc8be9c6ed284409c04a9005002c43154bbccdf9b1f99907fce1ae99f9bb63af7d53cef2456973797
a2d2de4f585e6a42d59150af08c0493e12a84d1477f8b15641e75d7ff00367c9ff9c3f977e5ab3f39a
df5a7e64c7a9da5f59dce9d6e2d34d7d3a04b85b8b144a4bc82bb2859e5994b51a4e4bf0855011fe
6ef9a7f28f5ff00ce2f2f79b757b9f39e97e48d1acbccda05e5f476f6f7a7ebcac86d267b58a28d97d52
9c1c46a517975da8aa7fa037e7c4be63f26798625d4a7d2af9d13cf761a94da28d24db5c43c96e34
d4b59a59e3f45d8715e6c668c7ef393fc4caa57ff0039bf6b6d63ff0038d1add959451db59c375a545
0dbc4a238d635bd88055514000a7418abdabcc16f6edf97d7d24c8ac6df46b868e46505909b3752
57c0f1246d8abe4ef235c7e627917fe71c3f2c7f3374af38cf0dad8cfa55949e5286d6dbf45dc699a96
a6968e929923698ce449cccc25555fb31c6bf68aaf62f36dcfe6aeb1f9db7df96fa079da3d07cbfa8f9
4a5d62da58b4d827bbb19c5f456bca3691bf78c687e27d9159f8af3e0e8aa429e66fcd0f3dcfe6df2cf
96b50d60cde43787cb76fade8a747b67bdf305b59c72dc5edec5a8484fa2657555b78c70e3ea7277
7e3e92ac9aef54fcdc3e45f24b79fb54d3bc93a9c977f54f3dcf6b3acd7d78aaac90c7a508a2997d6b

a60199157d541c961f1c5581e97ff00390de60f26f90bf36f51d796e757bbf236bb1e8de583ac471db
dec8353112da477c21080885e4e52380247846ffbcc5519f9cbe56f31e877df92f75ae79b2f35fb8b9
f3fe87fa560ba8add6d9af4c33912da2451a3411af17022e4e0ab02c79a72655f5162aec55d8abb15
639e640875af27f22390d5e6295eb5fd13a874fa3157ffd4f7079229fe0cf2e71355fd1765434a6df57
4c553ec55d8abb15762aec55d8abb15762af38d67c99e76d5ff0035340f384bab69e7c99e5e8ee16
cbcbed6f37d60dcde43e8c978671271f5514bc512fa7c562924df93ecaa53ff003905f941ab7e73796
b4bd0347d52d342bcd37508b56b5d726824b8bbb5b9b5358dad82491804d583963e1b62ac17f32
a0f3bc7f9c5f90562ba8e9cfe768ad3cd265bf96de43a7dccd0e9f007ac4aeb220956bf65cfa677e2f4
a62acfe2fc99b6f32b79af58fccc7b5d57ccbe71d297cbb7a74e8e482d6cb478c332db5b7aacf21632
bb4ef2b105a4e144458d7154bbc8bf95df9bda435be8fe7bfccd7f30f9434b641636f67609a76a3791
463f7697d76aecfc536aac5c5e5a7ef25e25d1954cbf2cff002c7cd1e45f3b79e7ccba86b161a8699e
76d406ad2d9c16b2c13dacd1a7a48ab234ce1d4a01caaabf174eb8aacf2e7e536b10ebff0098d79e
74bed3b5af2efe6470fd2ba4c16d3dbb449159269e221234efc91a14f8cf146e7bae2a951fc97f38ea
1e48b7fca0f3179a2df50fcb3b78e1b496ed2d9e1d7aeb4cb5955a2b19a4f51a103d3558a4b84559
1d17ec23b73c5511ad7e4d799b49fcc45fcc6fca5f31daf972eafac6d347f30e85a9d8b6a1a65ddae9
ea63b6911639a092392143c578bf16f6f8f9aac7b4dff9c78f39e97e58fcd5d10f9dadb50bdfcd3babb
96f6eae34c11c7691dfc4f04ae8914c0bc86360154b2c69c7befc954ebcc3f923e63d57c99e478347f
32c3a0fe687e5dc4b6de5df355ada996dda0f416d268a6b599d814b88913d45e4dc5d415dbaaac9f
49f297e6541e54d522f30f9aad75df3c6a509b68aedacdecf47b585c052b1da432967600b31919f9b
b715f81071c5589fe5bffce3e45e5ffc9c93f23bf30ee2c7cd7e4e45956d258ade5b3b8ff48b892e58b
d65902bc723831491b2b0c5546d3f21bcdd75f95b3fe54f9abce8353b4d324b5b8f24f9a21b568358
d365d3a712d9997f7ac93187822871c1997929ecd8ab2af23f91ff00342de58aebf34bcf4be6192c4
71d3ed747b31a45bbbd29f58bbe0ccd349fcb18e102fdaf4ddb8b22af305ff9c6afcc88bf2e342fcbf8f
cf9a7b5bf9335cb5d73ca923692473fa9dd35c20d4184e4ca4736fee845c9bfbc77ad42acf0fe54f9c
1bf3d34ff00ce19b5ad3a7b7b3d097cb3369a2d268a596dda4fac4b702412b0590ca4f14e25447f0f
2e5f1e2ab3c97f94be76fcbdd67cfd73e5df31d84da079b757bbf31d86997b6321960d47520ab3fad
3a4c0bc49c432222a331eb220af2558c5cffce3c79c2fbfe71dedff00212ebcc9a72ada496f1c5afc76
53163676974b7a81adccc07a9ea28427d4e3c37a72c5592f9cff002abcf5e6ff003f7e5bf9ff00f4ce95
6175e4217324b60b6b713477736a51082e68e6552881107a5f0b3722dcc9db15425dfe41ddf987f3
07f303ccde6fd42cef7cb3e7fd213cbf77a3dac32c1736d6b6db4122dc348c1a4fda6fdda80d4e3b2e
eaaa7e5f7e537e6bf9723b1f2d79b7f3206b9e41d13845a6d9db69eb67aa5d5b41fdcc579782463c
23a2822201e50a39c9c79a32a99ffce417e536bff9d5e4993c85a76b769a1691792c3717f7535a49
7970cd6b20951630b344aa0b28e44f238ab2ebfd13cd57df97f75e5c7bcb05f325cd949606f84137d
487a8a62f53d1321734435e3ea7dbfdae38abcae5fc80f367fca8ef2efe4cc3e64d3cae85736b3b6b1
2584d5962d3af12f6dd042b7238b175e123733f0fd95ae2accd7c85e746fcdfb7fccd9357d33ea11e8
a3cbb3e90b693fa8d035caddbccb399e81f9af155f4f8f0ebf16f8ab1ad63f247cf1a4fe626afe7cfca3f
3ca79561f35bc52f9af44d434e5d56ce6b989380ba80349194938f55a8563b96a7c38aaef39fe46f9
af57d5bc87e6af2d79e6687ce1e4bb9bbb89efb5cb65d46dafdb53856dee247b789a048dc460ac4b
1704453c5781f8f1549e3ff009c619f514fcd0d0fcdfe673acf953f31e4b7d41e96896fa95b6ab00422
e04b1911718de30638c45d3e173f6b9aaa9a87e487e6f799ec3c9da779bbf322cae3fc11adda6b3a
6dfdae8b4bbbbfd1f1c8913dd996e590ca79d0f0554fb4cfea3f1e2abe8400800135206e7c7156f157
62aec558ef98c91acf9400e87569abff00709d43157fffd5f70792405f26f97541a81a5d90af4ff8f74c5
53ec55d8abb15762aec55d8abb15762aec55d8ab19d5ff2efc8bafeaf1f9835bf2f58ea1ae42a12df5
2b98124b98940a523918724dbaf122b8ab26c55d8abb15762aec55d8abb15762aec55d8abb1576
2aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb15639e6
404eb3e4f23b6af3577ff00b546a18abfffd6f6df926eed7fc1be5dfdfc54fd1965d1d69fef3a74df154f0
ded9852c6e220abf698bad07cf7c55a17f624802ea12585547a8b523db7c5577d72d3fdff001edd7e
35feb8aadfafd890585cc5c40a93ea2d287e9c55afd23a7f5fadc3b7fc589fd71570d474f3d2ee13b03
fde2743d0f5ef8abbf48e9e771770d3c7d44feb8ab4353d38f2a5e4078fdaa489b7cf7c55c352d38f4
bb87c3fbc4ebf7e2ab4eafa50a037d6f56af1fdea6f4eb4df155a359d1ca961a85b155a866f5a3a023
c7e2c55afd39a28343a95ad695fefe3e9d2bf6b156bf4ee88054ea56a17a57d78e95ff82c55c35dd1
1890ba95a923ad278ffe6ac556ff0088740342355b3a37d9ff00488b7a6fb7c58ab8798b402c106ab
67ccee17eb11569f2e58aaefd3ba276d4ad7ad3fbf8faf87dac556ff88bcbff00f575b3f0ff007a22ff009
ab156bfc47e5fe5c3f4b59f3d8f1fac455a1e9b72c557aebda1ba864d4ed194ee184f19077a7f378e2
ab8eb5a38a72d42d8577159a3dc7fc162aefd37a3540fd236d53d07ad1fcff9b156bf4e68b5a7e92b
5af87af1f6ff00658ab6bad68ee3926a16ccbe2268c8ff008962ae1ad68e412350b6206e7f7d1ffcd58
ab435bd159792ea36a57a544f191ff12c55c75cd1475d46d476fefe3f9ff362aefd37a296e3fa46d797
87af1d7c7f9b156ff4de8d5a7e91b51610000026060f002220574d46430100000000000100000000
00000014000000002000003c0102003c610200aee29eb47dbafed76c55afd39a2d01fd236b42390
3ebc7b83dfed62ad0d77443d352b53b13fdfc7d17627ed76a62aefd3ba2540fd256b53d07af1ffcd58
ab9f5dd1232449a95aa9068434f18a11b776c556ff88740152754b3a0ad7fd222da82a7f6bb62ad8f
306824d06a96876aff00bd1174ad2bf6bc71568f9874014aeab662bb0ff488baf5fe6c5577e9ed0e84
fe93b4a0d89f5e3a0ff86c5569f30682295d52cc5694adc45bd761fb58aaff00d39a2d397e91b5e3d2

717

bebc74affc162ab86b3a41ad2fed881d69347b7fc362ab46b7a3374d46d4f5e93c7dbafed62abbf4c
e91503ebf6d53d3f7d1efff000d8ab1df31eafa49d67ca1fe9f6db6af2ffbb63ffab4ea03c7df157fffd7f5
37937f263f286efc9fe5ebabaf21f97e6b89b4cb27965934bb467666b7424926324924f7c553cff952
3f9375affcabff002eedff006aab3ffaa58ab5ff002a3ff266b5ff00957de5da8e87f44d9ffd52c5571fc93f
c9d2493e40f2f54f53fa2acfe5fefac5571fc97fca029c0f90bcbdc363c7f4559d2a3a7fbabdf15697f25
3f2790f24f20797836db8d2acfb74ff007562ab8fe4cfe50b2f06f21f978af87e8ab3a7fc9ac5572fe4df
e522060be44f2f80e6af4d2ecf73d77fdd7b62abbfe5507e538a53c8da00a02a3fdc5d9f42371fdd7b
62ad1fc9ff00ca57dcf917cbedff006ebb3ea0ff00c62f1c55bff953ff0094f566ff0002f97ead4e47f45d9
ef4351feeac55c7f283f29cd49f22f97cd7affb8ab3df7aff00beb156bfe54f7e529143e44f2f9036a7e8
ab3e87fe7962ae1f93bf94a294f22797c71a71ff0071567b53a7fbab1572fe4f7e532f2e3e44f2f8e649
6a69567b93d6bfbac5578fca3fca90430f23797c32fd93fa2acf6da9fefac55cdf945f952c28de46f2f91
5277d2acfa9ebfeeac55a4fca3fca85038791bcbe17a8a69767ff0054b156bfe54ffe537fd489e5ff000
ff8e559ff00d52c55a93f277f296546493c89e5e646fb40e956441edfefac55a1f939f9462a0790fcbc2
bb91fa2acff00ea962aeff9537f94629ff3a1f97be1e9fee2acf6ff009258ab47f26bf288d6be42f2f6e79
1ff0071567d48a57fbac55dff002a6ff289a87fc07e5e3c7607f4559ed4da9fdd62ae3f937f94658b1f2
1f97b91a54fe8ab3edb7fbeb15687e4c7e5029e43c83e5e0d5e55fd1567d4f7feeb1568fe4bfe4f9a5
7c83e5d34a91fee26cff6baff00babbe2abbfe54d7e51541ff01797aaa6a3fdc559ec49affbebc7155a
3f25ff0027c0207907cba01001ff0071367d01a8ff00757be2aeff00952df93e4d7fc01e5daf8fe89b3ff
aa58aae3f937f94654a1f21f97b892091fa2ace951d3fdd5ef8ab7ff2a73f28fd432ff80fcbdeab6ecffa2
acea7b7fbeb1568fe4d7e51152a7c85e5ee27a8fd1567ff0054b155c3f277f29550c63c89e5ff004cee
57f4559d0ef5ff007d78e2ad2fe4e7e5227d8f21f9786e4eda559753d7fdd58aae3f93ff0094c4863e4
5f2ff00251c54fe8ab3d8787f758ab6bf945f95084b2f91bcbe09352469567d47fcf2c556bfe4f7e52c8
38bf913cbecbe074ab3ff00aa58ab43f273f290529e43f2f6dd3fdc559ffd52c55737e507e53b001bc8
be5f217a0fd1567b5053fdf58aaeff009547f954050791f40a56b4fd1767d7fe4562ae1f949f9540507
91f4003affc72ecfaff00c8ac55a5fca2fca952597c8da002c791234bb3ebe3fdd62a916bff0094ff0095
a9abf95b87927425f5753923938e99680320d2ef9806a47b8a8077ef4c55ffd0f6f7913fe508f2d7fdb
2ac7fea1a3c55817e7cde79cf54d05fc83f969726cfcf3aa5a5c6ad0dfad49b6b5d21a39a9f090435c
cc62b64ff0026495fe2f4e98aa67e4bfcded3fce3f9396ff9b1a7d84b72069f2de6a1a3dbb46b7115dd
9861756e0ced1a864747039b2f25a37ed62a93e83f9e77da8dcf926e75bf25df685e54f3f2409a16b
d71756b3aade5d5a1bb820b88616678bd5556589b7e4d4e4109a62a866ff9c94f298bdf2e4f1dba5
c794fcd1ac0f2f699abdbde4135d2ddc8f2450cb358ad644b795e3654979160bc5e48d030c551fe52
fce6d6bcebe60d6b45d27c81aa0b1f2f6af7da06b9a94d77a7a24371676c274289ebd64f54b2a510f
eef9c6ced466e0aa97927f313ca9a57e5cf9061f2a68f3599f3549269de53f2d5d5c99270d07af34be
b5c334e42c71c324923d64ec8bc8b2e2a994df9d3a4e851f9ba1f3b69f2687ab793e3b3b9b9b28a4
5bd5bcb5d55fd1b292cdc2c464f5a70d6e159632b30a37c2cad8ab12bb9b5b6ff009c93f27de6a7a1
369b7571e55d6d98c17ff5b86e5a19acb845c48895248b9b55b8f16f547ef1a9f0aa9afe5efe617947
4afcb9f2cb796342b8d30798359d4b45f2ff0096a7b8f5ee1afa2bebc372cf31696918304f70ef5711c
7f0af2f8171546df79797f37b5cfd1de7ad1751d1ad3c957d287b013ccba66b1f5cb55305c43750340
658e20cdc90afc12fc2ff00671578d7e497e55f97bcf56bf9b36d78d7969a9e89e7cd5f4cf2dead15f5
eb4b616f62d0c96d1c6beb80638dbf61bedab32b1c553ff2f7e616a5f9591fe706af63e55bbd67ca7a
1f9c2eeeb56befafc519b7b792cec0ca2de398c924863e4d2327eed029a46c7ecaaaf4df307e6cf98
6c7ce9a9f913cb5e45bdf306b3a7e9769ae44e97d656705c59dddc496e78bcd27c2e0c6dc51c02fc
4fd91462aa0357ff9c84f2ee8f7f11962b497426d68797a7b88f53b76d4a298dcfd48dc1d3c02e6059
fe16224f5027efbd2e18aa2fcdff9d90f93a3d6754d4bcbf771f96f41d6b4fd02f2fee1bead35c3ea260
5371650c8a3eb1144d708ae55c16a48cbb47f12a80fccdf3a7f8a3caff997e58f2e684faf5bf9634f96d
b5ab85bbfa90fafbdafd6beaf6cc012f2c28d1cb27c71aa9658f917e4155617f963e63b9d63caff0092
5f947672bc56da9f93adbccbe66b90c4c92e996515bc296aac7702e27987aadfef98de35fef2aaaa0
3cc69f96161ff00392be6db4fcc0bb8acb4693cada6ea70c5757b716f11bf7bb9d2692148e55fde322
475e039fc3f0fed62a8afcaefcccf3f791fc9da4dbf9a740d63cc3a7f9a7cd97fa2fe5fc9732471ea2ba2
346f3e9e6f3ebae931e4b0ca56497e25840791bec725596693e6fd36eff3a7411e6ef235e796bf316f
7cada84cda84fa9c5756d6fa65a5f0e7070b695a272cdc25f50c6ac15b8d7a80aa2e5ff9c84b4b5f28
69df9a17de5db9b7fcaad4ef63b58bcc06743750da5c4a6de1d427b3e20a5b49271e92b4ca8e8ed
08dd42a98693f9c7abf987cebe66f26685e48bebb6f296a96ba66b3a8bddd9c30ac17909992e220e
f57a2f12621f1856ab716f8315796c1f9bb6fe4efc8893cc5f951e55fd0b1af9b64f2f369dab5e3dcb5b
dcdd6a622b99cb567e7ca476a273e09cb90e417832af688ff0032afe1fcd4b1fcafd5f406b19352d1e
5d6ec35a5ba59ad66faabc515c5ba2fa68c648da504d683d3a3f7e38abc27fe720fcc9a679a3cb3f9
53e77d5603a269f79e7eb2d22f27faec8b15c681ebdca4cf249118ab6f3ac2261c8544654fc3538aa
79a279aec7c9de7af367983f2cc6abaff00e4f683e5a6b9d6f4eb47b9d46d1fcc11cffe8f0e926e0b93
23421feb1e8b7a0bfbb67a3e2acfaebf3cff0045dc79af4bd5bcb5709e60f2af9760f374da6da5d413b
4b613093d48cbc9e8fa7342626e71b8dd68c9cb9018aacd23f3bf58d57cada579b4790355874cf31f
e834f2d52582e1eea5d76a19a5580c8d6f0db0f8e49a55a346cacabc8f0c5501af7fce4869de5ff257
9e7cd773e5eb8b8bbfcbdd5a3d1b5fd36daea175acc6211cf0ccc143a1132fc3c0481b90e1b62a99
3fe7379893ce6de413e42bc5f32df698dadf97a292fad560b9b28a5f4a53752af216ce8c5014a4d56
91057ed51543e93ff003915e5cd5fcafe57d5d6d534dd7bcd336a56b6fa36ab7b0d9c76f2e872b437
c67bba3a048d828528aed27a89c53ed7155249ff00e7222efcc5e5cd0355f2469708d4aebceb0792

75db2beb852b04eaccd2082785258e5495147a73afc3c1f971e5f0e2ac97cebf9eba77931b5f592ca
d2e5fca76f15c6bf6cfaa5bdadd967b71772456304abcae5d21657dfd11216091967e4aaaaed43f3a
3529bcc92f967c97e4bbdf33ddb68763e67b0b88ef2cec6dee74ed4266894ab5c3828e38b154902b
3d0fd91f162a9ef947f32bfc6b7134ba2e9a25d16db58d4341bcb95b946bab59b4c6963692e2d825
63592488aa02fcf8b47215e2fb2acf715762aec55d8abb15762aec5520f30d3f4b7952a7fe96b2d3fe
e177f8abffd1f6f7913fe508f2d7fdb2ac7fea1931560fa47e5c9f3379b7cd5e66fccbf2f4125ddc5cc56
be5b9beb5f58f4b45b78c2a44047c0c6cd2fab7122fc40999472f8315607e59fcbef377e5abfe71585
ae890e9ff0094de61b7bdd4fcbf0477c92cb6372962d15c1fab84a04b9602440af58b8f17c5534fcb4
d13cd5e77fcbffca5b0d7745b7d33cafe5db1d135b6be5bd17525f4967a78faa24512c6a631cdd259
4c87e1e1e9a73e5ea2aaa9f953e42fce0fcb7d3edff2cd21d12e3c93a3dcb9d27ce4d33b6a6749698
ca96ad63e804370a094f59a7f4d568dc2465a32a9d7e50f963cf5e4d97f322f75fd12dd25f337986f3
ccfa3dbdadf24c596ee08625b69599102480c00b37c49f1edf677558cf97ff283ced63e47fcb6b9b8b
4b387f307f2c350b9bab5b31785ecb50b4be4962b9856711868d9e39bf76cf1fc324603feedb962a8
ff003efe4b6bbf9a967e6dd6b52787cb5e6bd62c349d3fcbaa929bc5b45d0af9b5489ae8aa84632dc
bf1758f9aa44aa5599ea3154cad3cbbf9b9ad7e637957f307cc7a4689a6c3a0e8fab69b77a65aea5
71773cb3dfb5b3abc6ed69120566b7140dba29f898b7c21562961f92bf98fa7f90bca0da6cba6d97e
64f907cc3aa6bfa4249712cda65f5b6af717524f692c8b0a491f386e8c45c237174afd96d957b77949
bcf1358cf7be768b4fb5d4a720db691a5c925c416c8a3a3dd4a91b4aec4fc4c228d1765556ddd957
9e7e457907cf3f97f7fe7c4f345a582e9fe6df32ea3e6ab29ac6f24b9920fd226302da549208aa5425
7d4534ff00271549b52fcaff00cc2bff0021fe7179656c74d4d43f30354bbbed199afe430c505f5a416
a7d7616fc95d0dbf3a22b2b730bcbe138ab2ed0fcb1e728ff00382ebcf7a8e9b676ba1dff0096ec342
748ef5a7ba8ae6cae2e2e998a7a08ac84dc7a628f5f879fed502ac7bca9e4cfcecf276a3a9f93f4c6d
024fcbdb9d56f2ff47f314b24edac69f61a85cc976f6ff55684c534a8f2b2c2ed2845146757a7a78ab1
4fccbfc98fce0f39e9bf983a33be8bac26afab5a6ade53d6752b99c5eda58dacf6d3ae971442064b75
0d03566490fa9ea3728ead54553d1f96df9b9e5ad57f30ed3cac9a26a5e57fcc86b8d5254d46eee6
da7d2758bcb35b6b8a7a76d20b9818a2f0fee5c537f1c5505e52fcb7f31fe556a1f955e68f303da4a3
cb9e5b9fc8be6dbab1676b682d1da29eceef94ab1b7a6b2c1e9ccc57e0f5449b46aecaab30b0f28f9
dedbf3ef57fcc5934db26f2aea9a2da6811b2df13789f52b99ae05c984c0178b7abc7809790a57e4a
a67f9ade5cf36ebfaa7912f7cb3a7dbdec5e5ad7935dbffac5e7d519a28ad6e2d7d28c7a520666facf
2ab1451c29fb58aa55e65f2279b356fcf4d0bcf3158db49e4fb4f2fdef97b5066bbf4eeeba94a92b489
17a44154f4c29fde066e551d31561517e4b7e625c7e5227fce3a6adf509fc991491daff008d44edf59
7d0e1bb172b10b131fc378154421bd4f4157f7bccb8f48aaccff2ff00ca5e78f2a7e64fe66f982f747b6
3e5ff0035cf6977a23417c24997f4558a58a47323c6bc4cc230e183384fb2deeabce2dff227f321ff00
2375ff0022cd6ba7dbf9a1fcd7fe2cd22117ad25a4f19d463bff00abc930841460aad1d7832f2e2dd3
a2acc3f39ad66f39daf95741d235bb4d17f39ec356b2961834ab88eeafac6cf51478751fb615c43f53
699cbbc4ab23c51d179fa78aaafe76fe5a79afcc563f971a27e5e68f64748f23ebfa57981a3b9bcfaa2
7d5b46578d2ce25114a7932b0a3b51578ef5c55e81f999a379d3ccdf96fade8fe46d4ff00c39e75be
b30ba65f97a7d5ee2aac57d44562bc8068fd4504af2e6b8abc46eff297f35cf983cc1e61b4f2d797ad
13cd3e449bca975a6d9ea330fab6a324b2b89a59a4b506e4b19f9492300dc578f291957d45592ddf
90bf37e1fc92f21793fcbaf69a7f9a3ca32e916daee9ad7f24567ace99a5c2209edfeb7045ea449714
57a70af15f4df929f89560de61fc82fcd0bcf2c7e72f9534ed2b418ad7f30eef4dbed19edeee4b7b7b4
6b7587d589a2fab578c7e8d1641432390de9a0e5c557a9cbe54f3edcfe73f97bf320e8f6b0e8da779
66ef42bdb537e1ae45d5dcb15d028043c1915a111722ca4f2e7c7e1a32af34d0ff0022bf377ca9a57
95fcc3e5f1a37f8dbca7ab7982e1b47bbb9964d3b54d1fccb702e6481e7580347344cabc0fa65792f
2e54f87157a279cfc99f9abe65f2ff0097b559a3d226f34689e67d33cc71797209e4834f8acec4491b
5ba5e34064925224e6d2bc4a9c87148c05f8d5527f2bfe74f973cffaf6bde59b3f2f6ade5ef39fd4eeef
6d752bab8864d1f55b7b18ace59a22b6edf588184119e1fba91caffbabe238ab20d17ca1e70d3bf36
dbcdba81b7bfd164f2d59f97e7d4cca22bc9aeed2e26ba7b86b54884688e66e0aa8f55a7862a9269
df95bab8f3d697e76fd1163e5cf3543a85c4de64f3168972d1c5ad69856558a0bab411a09647e513
3b4a3f73246cf14add0aacf3c81ac79bf58b4d63fc6569636d7965aaddda584ba5b4ef6d3d8c654c4f
5b8546322d5a3968387a88dc36c559762aec55d8abb15762aec5520f30ffc75bca9ff006d597fee97
7f8abfffd2f6f7913fe508f2d7fdb2ac7fea1a3c559062a81d6747d37cc1a55de89acdbadde957f135b
de5ab9212589c5191b8906846c47718aa9e83a0691e58d2adb43d06d56c748b34115a59c658c71
46a005440c4f150051546c3b62a9962aec55d8abb15635e75f3e796ff002fecb4dd43ccd726d6d355
d4ecf44b5902f21f5bd424f4e2e5b8e2a37676fd9504e2ac9715757157571542ea77ada769b79a84
76d35ebda4124eb676ca1e798c48584712920176a71515fb58aadd2af9f53d2ecb5292d27b07bc8
22b86b1bb5097301950398a5552c03a578b80c7e2ef8aa32a3156269e7db07f3ddf7e5f7d42f46b1
63a4a6bdf58291fd5a6b5966681562612162fcd1851957154ebcbfab3ebba2586b32e9d77a4c97d0
24eda66a51ac5796e5c57d399159c2b8ee031c558ff00e657e61e8bf96be5f5d7bcc5617b7ba44f71
0d8482c218ee1965bc710c4ae8f226d23b04efb9f8b1550d1ff34b41bff35c7e45d4ecaffcbbe6ab8b7
7bbd3b4ed5e148bebb041fdeb5acb0c93432fa7505d564e6a3e2e3c7156738abb15762ad0014506
2ade2a904be58f27587982ebcfd3697616be64fa99b5bcf30bc51c7722ca3a39479c80420e209a9e
8a3b2e2a9f0208a83507a62ade2aeae2aec5583f983f33f4bf2ef9c74df234fa46a977af6b305c5de9

719

4b690c2f0dc4364a8d7056479902fa7ea2860fc7ed0e3cb1545f92bf31bcb5e7b9756b2d21e7b7d6
b409d6d75cd16fe16b5bfb29655e7189626fd9914728dd4b238e8dd71565b8abb1575715762ac6f5
df39e9fe5ff31f96bcb7796976f71e69b89ecf4fbb86356b549adad65bb6599cb82a4c70bf1a29e471
55de78f37d9f90bcabaa79bf51b3bcbed3747b792f2f61d3e359ae0410a977708ee808502a77c553
bb3ba4bdb482f230cb1dc469322b0a305914300695df7c555f1548bcdde647f2a68926b29a3ea3ae
b24b04234dd1a017578df589562e4b19641c5397373cbe1404e2a9ee2aa724f0c4504b22a195bd3
8833052ce413c56bd4d01db154bf4dd7b4fd4eff50d2a2668f54d2dd45e59ca38cab1cb5314a054f2
8e40adc1c6c78b2ece8eaaaa0fcc3ff1d7f29ffdb565ff00ba55fe2aff00ffd3f6f7913fe508f2d7fdb2ac7f
ea1a3c559062aec55d8abb15762aec55d8abc33f30fcbdff002ba6fbcdbe5736325f795749d32e7cbf
05c46f0aaaf98af5639a49d44aeb56b3458151c0fef25b88ff0060e2ac5ffc7be68d53fe7123cd17f79
a95d691f995e4bd36fb45d7ee2d64115ddbeb1a27eed8f31cbfbd554939afda592a8462a8ed726f34
7e5879ff00c87a9691af6afe62b3f35e9bac2f99b47d56e9eee395f49d28dfc1756f1d025b37a88229
3d1558dfd555e1cf7c5511f97d69e7cf3227e5f7e681d7edf4ed2759b349fcc11fe9abebf8f521abda0
31c7159dc40b6f6f3433b298bd23f085684f318ab19fca8d2fccdaef907ce5e7bd5bcf9e66b9d7343b
cf36e936719d43fd17d1b595d617681a22beac7e9d51e838568bb5005592f943cc5ab79961fc8ff00
2a798356bf8ad75ff26bf983539927921b8d5751b2b6d382c32dc2112d00b99679555d7d42abcf92f
252aa456be7df35689e61f39fe53de6a579268967e73d03cbfa47995e726f6d34ef32dbfd79ed45cc
859d9e2a0b78a572d2afd623f8f92a62acb74cf2ddbe91ff00390bafe9da7de6a11db5d790ed19249
6ee6bb9ad98ea77284c12dd34ccb5a72a1e439d5bf68e2ac6bf2c7ce5ab799fc99f91de59f30eab7e
e7ce3a76a5a9eadab1bb962bcbd9f4908e96ad70acb27ef3d632b85656648387d8e6b8aaff00cfcf2
f5ff967f24b5dd260d766f303279b346bad3975295e5974f86eb57b2962b39662d24b2246cdf0339f5
3d2745fd95c5594f98bc81afdff009b60fce1fcc8d774bd153c81a5eaade5b1a6a4d35b59bdf5b15b8
bebd7b8e0651146bf0c2888bb722ddb1561de5bd67cc56df997e42f2fd9eafab8d07ce9e4cd42e75
1bebdba6927bcbcb458248f5286099ee05a4afea96e20fd975478ff0074b45521fcb3b8d7e7ff009c7
287f37fccff0099faf59798b57d327d2a6bdba90ded9c0d26b2d0c4d6f66aaa4ddb01f578a60fcab2ff
002a2705534d4bcc3e6bd335bfcf4f2859dfeada2e99a2f942cfcc7e5f46d41af2f6c6f16dae19cc53c
8d70ca2568979c7cdd7e16294f50e2a976896be647ff950178fe76f323cbf997a5b5b79b836a52b24
e83451a8ab42a7e1b7915e3e1eb4012628cdca42ff001e2a855fcc2f36f93f4ed67c876fae5dddd89f
cd38fc9967abeb1a8c89796fa45d58a5f7d5ff0048324d2ab3480c29332bc88921e2caca8eaaa5df9
e1e5cfcc0f2bfe487e6969be75d6e29f419e4d2353f2ae8516b37dab6a7610b5fdbdaddc73dd5cc50
4b3db397ac6b27208c78ef4e78abd035eb9f34eb3f999a97e4b796a7ba834dd0fcb16daa6986e3cc
3a8e9b7d35d5fdc4a0de1bb48ee67b84b76548d6277f4c12dcd645e2b1aa809e1fccabef39fe50f90
7cd7f98373fa42ff4af33d8f9c2f3cab70b0c17575a3ac2b1b0768834770166a4cfc414914fa4b19f8b
15456b1aaeb5f97fe72797ce5ac6b375e428750d074df2ef9d6c2f9af6dec5ad05bdbdcd8eb769149
1f192ee52deadd3472f233a72f4f82ae2afa6f157cfff009bebe698ff003e7f2bae3c991d84be61fd09e
6b16b16acd325a3944b03c59a0ab2d4903950d3c0e2a947e4969f61e61d37f357cd7ae5ddc41f9c9
ae4ad63e7fd2a176b27d26e34eb7922b486d3d2919c45e9fc70dcfa8deb7dae5f0950ab19f2c7983
ccf75e45ff9c65f345c798354935ad6f57874dd6e46bfb82b7f6b35b5e4acb73173e1310d12fc6ea58
78e2a94f98f51f3d58fe5ff00e7779e2dfcf5af9d5ff2f3ce5703cb5035dffa2a456ab60fe94f1a2a7ad13
24cd1985cfa4bf6d53d42cecab37f337f893ccdf9cdf997e589bcd5ae69be5fb1f26586ad6163a5de3
592c378deb0f5227887a89f12726e2c3d46f864e51fc18aa3bc8de6cd5fcfde4dfc96bbf30eb57f73ab
6bba4de5d6aba169a1ada5d55eda28a3377717314d0086281886700fef669a3554c5528d1af75efc
c2f24fe4ba6afac5dd86b12f9af5bd32e356b6914ea3f57d32cf5cb3e2b3ba93ea3c508479e9ea57f7
81849f162abf58835cf2c7933fe720bf2dae756d4b5ff2ce87e5a6d4f43d4b5ab992fefa1fd2da6dd99
ecdee64ab48b1b40248f91e4ab3713fb38aa7baaeb3e64f36fe605b7e56e9bea43a758792ecb5c88
47aadde857125d5e4ef6debacf6714aee20112808dfbbe729e6af45c55eb3f96969e6cd37c91a469
9e7ad5edb5df3758c4f6bab6ad67510cf34323206dd50f30a1449f08f8f962ac0ff00e72ab5cd7bcb3f
92bad7987cb5abdde8bab58dce9822bbb1758a42973a85bdb48a58a934292b7d92a6b4df15483c
c967aef9affe7246ff00c85379af5cd37ca32f91a3d5e4d3f4abd6b1e17afa91b6124524403a7c31d4
d0d49efc199315799f95355d5bf3334eff009c64d73cdba85f5d6b136afe60b1bebb86eee2d9ee0e9
36d7b1c72c821740646fab2977fb4c0baf2e2ef555f4279aefaeb4ffcedfcb886cea23d634ef315a6a4
140f8a0b64b3b988b7fa920f84fecfa8dfced8ab2ff30ffc75bca7ff006d597fee957f8abfffd4f6f7913fe5
08f2d7fdb2ac7fea1a3c559062aec55d8abb15762aec55c7714c558ff94bc97a17926cee6c3cbeb71
1dade5ccd7f3add5ddc5eb1b9ba732cd272b9924605dd8b350d391c55e5ff00995f931a6dafe5f7e6
527e5f6957b79e71f3dd8cf6f79036a334b1ddde4ebe9a4aeb7b702142a362ebc5827c3bf4c559df9
27c9da369d6da6eb6da55d59eb90d88b18a2d56e5efae6c603c4c96f13bcd3aa23322f2f4dfe30b1f
2fb0a15540796ff233f2c7ca1accfaf796f467d3f509dee26458ef2f1ad6de5bca89a4b6b6799a081db
91f8a28d08afc38aa3b42fca8f26796bcb3aaf94344b7bab5d075a967b8d460fafde4923cb766b3b2
ccf3348865df9f075ad71570fca7f242e89a0682b6530b4f2a953e5ab817773f5dd3c471fa2ab6f75e
a7acabe98f4ca73e2c9f03865c555efbf2bfc8da9f95f51f276a3a44773a16af31bbd52391e4f5ee2f1
9d64facc970184a660e8acb2f3e69c53815e2b8aa0349fc9af20e89a9cbaed85a5e1f30cd6674c7d6
ae753d42ef50fa9962de98b8b8b891c0049e343f0fece2a85bafc87fcb0bdf24e9df97b75a44b2f95b
479d2ef46b76bdbcfac58cd1d42b5b5d09bd78e956d964fda38aabea5f927f975aaf94acfc8f79a7dc
9f2c594eb791d9c7a8dfc4f25ca3891669e649c4b33aba865695dc8603c062acbe6d074dbbd0a6f2
dea519d4748b9b67b2bb82f9dae4cf6f2a947495a424bf25243723be2ac1ac7f213f2cb4c9f46bcd3f

4fbb8351f2fc13d9e8fa82ea7a89bb82d6e1046d0899ae0b98d54011c64f08bfdd6ab8aa32cff257f2
e2cbf2f26fca98b49693c8331623489eeaea71196945c0314b24ad2c7c651eaaf171c24f89715430f
c89fcb659f55bb5b0bb17baee97fa075abb3a9e1610000026060f002220574d46430100000000000
10000000000000014000000002000003ce101003c610200a0d717b6058b159e469cb3b9a9532b1
f57d33c39f1c551d0fe50791eddbc9ed0dadd27f8093d2f2a28bebbe366863f448e3ead24fdd7eebf7
bcff75f074c550777f917f963a9695e65d1355d18ea3a679baec6a5af417973733fad7c0051708cf21
68a401540684a502d3155f6bf91ff009696de50d5fc8eda3b5de83afa2c5acfd7aeaeaf2eee523a18c
3dd4f2bcf48c8ac4048046774e3be2aa1ad7e437e59f9863d14eada7ddcda8f97d1a2d33595d4f50
8b5548e424ba3dec770b3c88c49f8649197f9698aa66ff949e463a9796f56b6b196c6f7ca104b6be5
d36375716d1dac3754f5d4471c8a8feb711ea9915cbd37df155d73f953e4abcbed46f2ead269a2d5f
50b7d6754d3a4bbb87b0b8d42cfd230ccf6cd218eaa6089a8aa159a346756a62a8af2e791ac3cb9e
6af35f9a2ce49565f34cb6b35d5a99e6960125a4463f5824acca923f2e2e230a9c238b6e55c556eb1
f96fe58d77cd9a679df515bc6f3268ab2c7a55cc57f770476f1dc055995618e558a92845f53921e7c4
57a62ad0fcb2f26279ea6fcc9b7b06b6f38dd5b2d8df5fdb5c5c429756f1eca9710248219a82946911
98715dfe118ab1db0ff9c79fca2d3069ab67a0ba47a2df7e94d12237d7ec961735734b5569c88632
d23318a3e313351990f15a2aaf75f911f96d7da3798fcbd796379368be6ebdfd29e63b37d4f502977
7a5918cac7d7aa92634e410aa9088b4e2b8aa66bf94fe4b5d6f53f31fa17675ad674d4d1355bb6bfb
c66b8b08e231246e0cb4aa8624381ea733cf972c552e8bf22bf2d60b1f2c69d6fa75d416fe4ef5d7cb
8f06a57f0cd6b0dd8513422649d64689c228689d99081d3154469ff92ff97da4e916da26936171636
361a94dade97f57bebc492cafae448b23dabfab589184d22b449488891ea9f11c5532bdfcb6f2aea1
e5cd5bcab7b0dccda56bdcff004e31bcb91757a258c44eb35c0904acad1811f1e7c7d3f807c38aa59
e60fc96fcbff338d164d5eceedb50f2fc2d69a56ad6da8df59ea51db38a342d776f34733c67f95dd86
2aa7a8fe4ff0096ae359f236a7a546da4a7916499f4e5b59ae119a19e328f03289423acad4799e559
647e34ad6467c553ff003d790bcb3f991e5f97cade6fb696f3419e48e5b8b38ae27b512340e258f9b
5bbc6c42baab81cbed2ae2a87ff00956fe57ff16cde7a09743cd73e963407d485e5cf21a706e62209
ea70043fef3985e7ea7c5cb1548ed3f21ff2cac3cbfe5ef2cd96993db693e54bd9753f2f2c37f7b1cf69
73705cca5275984a564f55f9a33953cb1564765e5db99bcd7379b35868ccb6b6f2699a0da44390b6
b499d249e467201692768a2e43ecc691a2ad5bd466555bcc3ff1d7f29ffdb565ff00ba55fe2aff00ffd5
f6f790c93e47f2cd763fa26c3fea1a3c559062aec55d8abb15762aec55d8abb15762aec55d8abb157
62aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb15762a
ec55d8abb15762aec55d8abb15762aec558ff00987fe3afe53ffb6acbff0074abfc55ffd6f6f7913fe508
f2d7fdb2ac7fea1a3c559062aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb1
5762aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb1576
2aec55d8abb15762aec558ff00987fe3afe53ffb6acbff0074abfc55ffd7f6f7913fe508f2d7fdb2ac7fea
1a3c553e79238e9cd82d7a72207ebc55dcd3970e439d2bc7bd3c698ab492c527211bab95346e24
1a1f7a62a92f95ae7cd53e9b349e72b5b1b2d4d6eae5628b4d9a4b883ea6921103b34aa843b250b
ad280e2a91691e75d56fbf34f5ff21dcdadaae95a6e8fa7eb3a7df5bcaf24d2adf4f736ec92a950aa55
ad8d3896d8fdaec15670f24710e5238452680b10057e9c55269bcdde5f83cd76be4992f53fc4b796
336ad0d80a97fa95bcb140d2b1e801795556bf6be2e3f65b154e04d0b48d0ac8a6551568c302c07
891d71543dfea9a6e976b2df6a5770da59c11c93cd3cf22c689142bc9dc962000a0558f6c558b5e7
e66f9762f27e8de71d399f51b5f329b38fcb56910093df5c6a4a1eda340f4e3c94f372dfdd44af23ec8
7154c5fcc37ba66bba568bae5bc689ad2347637b6c5da2fafc1099a5b77e4011c91249217fda58dd
582b71e6ab23c55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8a
bb15762aec55d8abb15762aec55d8abb15762aec55d8abb15483cc3ff1d7f2a7fdb565ff00ba5dfe2
aff00ffd0f6f7913fe508f2d7fdb2ac7fea1a3c558e7e77f922e7cfbf96bade8fa5431c9e65b789752f2d
bc80563d5b4f71736a431e9ca48c237628ccadf0938abc57ce7e73f367e647fce3df9cff00377ca3a7
dce9b79a8e9365616314717a1aa269f65700eb4c8dc8b0ddee638e9bf183d45fb431566dad5af96a
6fcc8fc98d4bc8af6f1457f0ea7f59b7b1f812ebcb72e92eeaf3aa6cd1a4ff0056f4da4e923d14fc4d8a
bc6fcbdae0f2efe5c6941e71079007e70dfd979a678dc9b68b4a5bd9beae9330345b633adb8724f0
e1c55aa8c7157b4792f50f2649ff003927e728bcb379a7c935cf957447ba8ec258df9cf0de5f862446
48e4b1b43ca9d03272fb58aa8fe7543a8a79d34dd7bcb377a6ea7ae683a15f49acf917cc13082c75
2d02ee5417135bcac1962b989e055f5194af07e0e42b7c4ab1bf2e7987ca979f9ede43f324d147a1
e91aa7e5846fa35a6b1e9c574ad2ea56cd0c20b93ca654a6ca598f6c558ff947cebe4813fe53ddf96
753d3f4bd024f366a30c5a6de5d0b9d780bbb3d579b6a772ef58de49dc70b660df6a2fdeb140aaab
27d23cb1e4ad4bc8df9cfa85ae9ba7df6afa7eb3e6c6b39d522b89ad66361e811157918aaa482ab4
06a4d2a715635e49bab3ba1ff0038a179a65d5b4fa158d84f63ab7d5248d962d6ee3cb3c6dd67e04
812958ee138b7c7cb157b6fe74c17f756be48b6d28d3526f38e85242475115bced3dd74076fab473
57db157a68c55bc55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55d
8abb15762aec55d8abb15762aec55d8abb15762aec55d8aa41e60a7e96f2a7fdb565a7fdc2eff001
57fffd1f6f7913fe508f2d7fdb2ac7fea1a3c5536bcd4f4ed39a05d42f20b46ba9160b613c891196673
4544e447263d946f8aaadb5b5b59c2b6f690a5bdba57843128445a924d154002a4d7154bb4ef2b7
96747fac1d2746b2b1376196e8db5b4509955c9660fc14541249a1f1c556daf94fcad63a7dd69365
a1e9f6da55f545ed8c36b0c76f302287d48d502b546df10c55434383c95657971a5f96e2d2edaff00

721

4f8d20bab2d396de39ade2e4cc88f1c34645ab3155200a96c551da8f97f41d6258e6d5b4bb4bf9a2
056292eade29d9149a90a5d4902a2bb62aa975a3e937d776b7f7b616d737d624b595ccd0a492c0
4f531bb02509ff0024e2aa09e59f2e461c47a3d8a092e16f640b6d10e57495e331a2ef20aecff6b155
fa7e81a1692d33695a5da58b5c7fbd0d6b6f14264ff5f828e5d7be2a97ea1e48f2c6a1a3ae8634e86
cec22b98afed96c516d1a0bd82412c77111882f1915d41e5dfecb7252cb8ab69e5649f59b0d7759b
b9352bdd291974b57558a182596110cd3fa6940d2b82c391feed1d9230bc9f92a9a1d5b4a4d4d34
46beb75d66484dd269c654172d6eadc0ca22af3281be12d4e35c556ea5ace91a34692eb17f6da7c
321e31c97734702b375a0321504e2a83b5f38f946f6e21b4b2d7f4eb9bab83c60821bc8249246a56
88aae4934f0c553ac556c92470c6f34aeb1c51a9791dc855555152493b00062a86b0d4f4ed56d85e
e97770ded9b1216e2da449a22576203a1236f9e2aa7a6eb9a2eb0665d2351b5bf6b7204e2d678e
73196ad03fa6c695a1eb8aa3f15762a81d4b59d23468d25d5efedb4f8a56e11c97734702b3015a03
23282698ab5a66b9a2eb69249a36a36ba8c7110b2bda4f1dc05277018c6cd43f3c551f8aa02df5bd
1aeb509f49b5d46d67d56d579dcd845346f7112d40abc6ac594548ea31547e2aec55d8abb15519a
eed6db88b89a384b7d9f51d52b5654daa47ed328f9b0c555b15762aec55d8abb15762aec55d8abb
15762aec55d8abb15487cc1ff001d6f2aedff004b497fee977d8abfffd2f6f7913fe508f2d7fdb2ac7fea
1a3c55e75ff391d072d03c9977059c377a95af9dbcb2f60b3109495b518c51642ae5390d99803f0f6
38ab7e64fcf19ff002f6f7cd761f983a2c703683a0bf9ab4cb8d2ae4dd477f6514e2d648693450b453
24cf126fc9184aafc85197154eeff00f31f58f2d6a5e4d8bcd7a5db5be97e73bbfd1b15ddadcb3bd85
ebd9497914532bc6048ae21910ca8542b71f8389ae2ac78fe79dfb7e5743f9db0e8b09f20c8cb70f6
b25c326a69a51bbfaa9bc34468cb05fdf9b7af2f4fe0f53d4f8715625fe28d0ff2e3f3bff3c3ceb7f004d
3349f2ae83aa5dc76e8a8f3ba2ddb507405e434405bbd315675a37e6a79caff00cd169a2bf92afaeb
4bd42cee2e575582dafaca1b1bb821f552d2e5f50b7815fd523824f19e1ce8ac8bd71552f2f7e716a
b75e7cf2e7e5ff9834db2b7d7bcc3a5deea573656377f599347bbd3fd267b2bb9143472bd2600bc4
cbc590d62e0e8d8ab1ed07f3ffcd17fe51f2679f354f2fd8c1a0f99fccc7ca571696d75349770cb36a5
3e9d05c2178910aabc55910fc4ca79295fb18abd23f34bce1ae791748d2f5fd36dad6e348fd2b6165
e629eeda45369a7dfdc25b35d270a57d269159c36dc2ad5f871562b3fe70ea961affe69e81a8c3a7
9b8f23595a5f68a2dda6692f4ea3148d0c52ab114904823899632dbcb19aaf30b8aa9fe627e6ef9bb
f2df46d575dd7f44d3adacb43d2adb503cef0b3eb178ca4de5ad8471869625b7200334d1b2b7a8a4
aa22b3e2a8c4f3e58defe70f95f44b6f2ed90d43cc5e52b9d66cfcc9350ea115b24b0916678c75119
6903b525e355fb35df157817e62f9a3ce3e7aff009c25f3979a7cef2d8ea379737d325a4b6f0b2346b
6de6536d421cb2a8458d562e1b841f1b33f26c55eb29e6eb5d0ec7c9035efcb29b4af2dc16c750baf
335c8d34a591d274c96fd4c296534d22bc9f57a0e6224e354af26e38aa61a9fe796b7a07e5be87f9
cdade896abf97fac2e9b71756b05c3b6a3a758eaef1a457323327a5371f553d4894271e5b48fc715
4f3cb7f98be71f3679f3cdbe50b1d0b4d834df26eab6361a9dfcf7f33bdcd9df59fd68bc31adbd04a81
e3f81db81f8873c55e21e55b8f31fe445debbf9ab64cfa8fe4df987ccfae41e74d0a34a36873c3ae5d
59c7aa5aaa035804691adc44aa081f1fc5c47055e83a579dfcb1f96ff00e35d7747d3e1beff001679e
ad34ed2534d42e2eee350d26c2632d6d9267910209a7fdda396f8b8afc5cb15647a57e64fe666b70
f9aac74df24bfe96d0a08eeb42d42fe3bdd2f4cd683a9678231770a4d04c87f77f12c88c7e3e5c3154
5fe5a7e69ea5f99de4dbcf3ae97650d969f0dabc296b74b325d47acdb455ba865434a470cb58aa3e
27e2cdb2f1aaaf9c3f35bcc5e63f3affce1c7947cdbe75306afaa6a7ab68f785e38834927ab74e1959
180504d4a054a2f0f87157a1681059fe67fe7de8fe68fcb9d1bfc1b69f96b2dfe95e7dfad2c5a7ea1a8
35e40a2ded1acad998bc2a6b224d3d10fc5e972298ab2fd7bf3f353497cc72792fcad79e654f2cea7
2e8d269f6d67a8c93ea3716a625b936d756f6d35b47e933c8bc257abb44dfddd462a916abe61d1b
c95ff3917e72f3c6a16a6dac74dfcae835ad4608a255b99160d4aea49390d834bc5027c47f956bb62
acbbcb1f9c7e63d7bccde5dd2cf937509342f315a3dccbabc169a8430e9332c027486ee4bcb58239
04b52892c2dc43fda5e243e2aa5a6fe766a91f9f3c95e45f346896da76b5e748b50326956d7ab797
9a34fa75bfd6962bc68c189ccb1d69c19381fd9914f255557c9bf9e1079a2df58d61974f4d37cbb26a
71f9a34d8ee48d5f465d2bd504dcc1201ea094c468c9c1472d8c9f110aa8f95ff003bb5df336a3e529
ecfc9da84de58f35c2b34f7d1da5fc4fa409611344f72f716b1c12c6f5e25e19688771eaa1e58aab7e
466a16bf9a3e4abbfcd0d6ed92e2e3ceb717c91c13af358345b4bb9ad6ced141a80be9c7eac94a73
9e591cf6a2ac8bf2935d9b53d235cd0aeee64bdbcf286b97fe5d7bc9db94d2c56acb35b190d37716f
344aec777652e7ed62af40c55d8abb15762aec55d8abb15762aec55d8abb15762a916bdff1d5f2be
d5ff007272efe1fee32fb157ffd3f6f7913fe508f2d7fdb2ac7fea1a3c552afccff24de79eb41b2b1d32f6
3b1d5749d5b4dd7b4f92e23696de4b9d26e52e522995195bd390a716643c96bc87862a91eadf94a
9e7e83cc327e65fd52e2f75ed1dfcb912696b222d969f24867731cb312cf2bcc2390b14455f4625e1f
0b33aaed2ff002dbcc9787c9f69e77d52c752d2bc8ee27d3d2d6da4496feee0b592cadee6e4c8ec2
3291caecd147c95a56e5cc2a702aa47a77e45ea3a67936e3f28a2d6209bf29e4bbf5e1b7b881a5d
4e3d35ee85dc9a6072c233116aa099819161731f0e4165c555afff0023ee3cc7e6ff00cc2d5bcd57b
6b71e58f3fe91068171a5dac5245736d6f6224104a933bb2990faa58feed42b2a71ae2aafe5afcaefc
cc83429fcb5e72fcc89f52d2edf4f9f4ad1e7d2ac86997c16481ade3babbb8f5656967891b9205f4d3
d51eabfa8d4e2aa45e52fc83f39f96753fcbdd5a4f38d85ccfe41b1bed1e0b68f47305bdd58dea44ac
efc6ecb0b97312b4b3f22afd7d2e5cd9d57587fce3debd61f96fe53fcbf4f345a3b7957cd11f9b23d40
e9d20172d0dfcba92dbbc42efe10659594b87fb017e1e5be2af60f39795f4ff3b794b5af286ac2ba7e
b9633e9f7240a955b88ca725dfaa93c97dc62af3cb0fc82d1edb51fcbdd5aeb55b9bcbef2541731ea
72cc599b5bb9baf466f5ef18b92cc9750add206e7c6454fe45c5529f3e7e40ebfe6ff003079fb50b3f3

80b2d17f303468747bdb3b8b017975666d6278d16d2e1a6511dbc8cdea4f0fa679b722ae8ec1d55
4d344fca1f35e99e7af2879def7cc9637727967cbc7cb13d9c7a6cb00b9865923924955feb6fe9b0f4
915178b8ea4fdaf855623a87fce36f9b6fbf2775bfc911e6ed3d3caba8dfcd73617674a94de5b5acda
89d50ab917812493d53c03714511fecb37d955ee5a5f97dcf93edfcade666835306c0699a93451b4
305cc662f45ff0076cee543af55e67e78abcb6d7f213507f2469ff947aef985354fcacd2aeada682da4
b5e1aa5cd858dc0b9b7d3ee27127a7e946e881a58e2592489047f07c4ecab21f25fe5e79b3ca7e6
df3ff009ae6d5b4fbd93ceb3c37d0da25a4d0adadcd9daada40ace677f510a229928a8dcabc7154cb
c8be43bfd1bc9fa9f94fceb3d86bf6faadeeab777690da3c16d243ad5d4d7734324534b37250d3ba0
df74a577c55e790ff00ce2d68da5fe5e5f7907cb5af5d6906d7ccbfe2ff00266af1a096e347bd458c44
9476a4c91d1d3e2e3ca27e2df10e45565b1f923f366eb40bc8b5cf3d413f9a2f921b31736162fa7d8
dad90706e0c112ceeff005a99415170ee7d1dbd28968dcd577973f2a2f3c9de71d72e7cad7b67a77
e5af986d624bdf29c56f22b43a8450981af6de512f05795422ccbe9fef382c85b9d792af3bbeff9c6ef
3dea1f92fa1fe4f4de6fd323b5d02f6d2e2c3528f4b9f9fd5f4e95e6843a9bbf8a47661ea302aa02fc2b
562d8ab3df31fe526ada879b740fcd0f2c6a96be5efccab08d6d7cc53c36f2c9a66b562528d6d7508
951c8420341297678bfcbe2bc55415b7e51f9f7cb7e68f305d7907ce56fa1f93bcdf7cfaceb9a64fa77
d72f2d352b8455ba974e99a548d3d7e218fad14ab1bfc7c5bece2aed5bf24b51f32fe61f997cc9e63
d4edae3ca9e62f2ab79226d26286517c2c4c8f28b86b9790a99b9c8f5fddf1a71fda5f89544791ff2c3
f33342d2edbcb5e6afcc46d57cbda3c0f67a2be9d63fa3f51963f48c3035f5c19a5f50c2a7e158d63e
6eaaf2b3fd8c55897963fe71dfcf3a0defe5bdf5cf9cb4ebb9bf2eaf7506b72ba4bc4d7d65aa42609e4
ba6fad167bc65ff0077542f2f89d256fb4ab283f922bad79aacfccbe6d8b489af6d6d2ff4fd4354d32d1
ed751d62d751b592ccc37cdcca9448e4e543ea729551d7d20381557fe5c7e557e617926d74af2ae
a5e7f3aaf903cba4268d691d82db6ab35ac54fabdb5e5dfaaead142005a45144d2a80aefc2a85547f
e566893fe56687a9f90af6099b45d22fef6efcb37504324cb3695a8dd35cc50feec37efa0927680a10
b5454917e0278aac83f2d3cbd75a1e877b79a95b7d4f5af316a77daf6a56dc959a292fe5262898ad
54bc502c513f12579a350918ab32c55d8abb15762aec55d8abb15762aec55d8abb15762a916bdff
001d5f2bff00db4e5ffba65f62afffd4f6f7913fe508f2d7fdb2ac7fea1a3c559062aec55d8aa55a3f98b4
ad7a7d56df4c91e49345bd6d33500f0cb085ba48a399954c8aa1c71953e34e49db96c715527f35e
871f9aa0f25b4ee3cc5736536a70db182611b5a5bc914523898a7a44ab4c80af3e7f17d9c553ac55
d8ab1fbcf3a797ec7cd9a6f922e67953cc7ab5bcf776101b79fd2921b40a66227e1e955792d539f3f8
87c38ab20c55d8abb15762a81bbd5ec6caee0b199d9af6e525961b78a3795cc702f2762114d00a8
153d599507c4c062aa9a76a365ab58c1a969d309ecae50490ca011553e2180208e8548e4a763be
2a8ac55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8ab54c55bc55d8abb15762aec
55d8abb15762aec55d8abb15762aec5520f3002756f2a53b6a92d7fee177d8abffd5f6f7913fe508f2
d7fdb2ac7fea1a3c5543f316cfcdb7de48d760f21df9d33ce5f53964d0aeb8c2ebf5d8d79c48e27491
383b008f55fb2db6f8abcaf46fcdfbaf30f92ec7f34b4bbfb99748f2bf952ff59f36797552dc4f73aac08d
18b696b11789e296d6eabc0c618f0f81931557bdf3779cfcbfe57fcb8fcc77d665d4edbccd7ba2da79
8b4268adfeaa62f3298e247b468e25951ada5990a55dfd5883892ae448aaa8cbf9a1e6bd07cbdf99
573a9dfaea37fa3f9c2d3cada05c8b68e14b68b568f4c8e2674514710497cce4b9fde71e3df154ee1
d2350d23f3e3cb115cebd79ac5abf9535e31c3a80b732c528d4349e72078228aa24057e1228bc3e
0a74c5519f9bfab79bf4cd67f2eecbcafaf368d6fe60f308d1b56096d6f72d25b49617772594ce8fc5d
4db8e141c6a7e30c0712ab1be5e7ebfbef307e5d695e69d52fbcc3e4ed3ac8c7ad2b699693dcdf6a
62e6686e2e91addd5a34091c4115151f84a5c3374557dd5e6bd3fe677e499f349b53e651a479946
b434d90cd6a6fa1b6b28e7f49885f87986a022abf67b62a80f27798ff33bf30f47f287e69796efa5d3f4
dd4f53f575ed23519ed46983425b99e09618e3109992ea255421fd41ca55757f80d3154a35bfcc8f3
a695acc5acd9f9946b10b7e63d97952586ca045d0e1d2350b85b43624ca8b24b7907f7934f13388
e73e973e01e255591a7e60f98344fcd3ff000e79f2e351d25758d6cdbf93b508a28a5f2c5fe9a538c5
64d3a2b3c57c5b9965978b34aaab1bfa6dc3154b343f357e6dfe64e896bf987e42bd5b478fcc5776
93e8b7f2daa694742d36fe7b4962994472ceb72c91097d40ebf1b7fbea8315653f931a8dd798fce1f
9bbafea65dafad3cd4fe5bb4593ecc3a6e91656c618d177e219e796634fb4d272c5577e59dfdcdafe
707e7079423676d0ecaeb46d6ecd189290dd6b564cd771a57a067804e4034e52b1fdac55ebf8abb
15762aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb157
62aec55d8abb15762aec5522d7cd355f2b0f1d4e51ff72cbec55fffd6f6f7916a3c91e5a076234ab1a8
ff00a364c559062ac5bcb3f975e50f280f310d0b4d8e04f35ea171abeba8dfbc59eeef142cb50d5010
81f63ecfc4dfcc71543e95f969e5dd22c743d2217bab8d17cb52a4da16997537ad05b3408c900155
e6c2056a421ddb8517ba2d1542cdf945e4fbcd2fcd9a2ea69737fa6f9d2ecea5adc37139afd6f8431a
4b0b204689a316f098ca1f81a3575f8b7c555f4ffcb3d1ecbcc5a5f9ae7d4b56d475ed1eca6d32ceea
f6fe5706d2e191e449234e11c859a2462eea5d9954b31e2b8aa3fccfe49d2fcd97fa0ea3a95c5d453
7972f46a9a62db4a2345bc11490091c153ce91cb22713f0d1ced5a10aa4fe67fca4f2d799fcd30f9d5
af355d1bccf1598d325d4744d427d3dee2c95da45867111e2eaacec5491cd7f65ba62a8cff9567e5a
4d7bcb7e60b51716b73e53b6b8b2d12da0978db470de8459c3a1079990469c9dc96aad6b52d555
29d17f247c99e5ed5a5d43489f55b6d3a4bf6d5c7975353ba1a2a5f3c86632ada07e00190fa9e9ff0
075cfe2e1b0c552a93fe71c3f2e4c13da40daada58beb71f9a6cecedb52b98e0b2d62397d6fac5aa7
222325ea69f128fd8e38ab2883f2c3cb70c10d948f7775a6dbeaede6286c6e6e0cb12ea6d74d7a25

723

a91cfe1b86332a73e01fb536c5528b5fc8bf23d86ada9dfd8bea76ba66b37adaaea9e5c8351b98f46
b8be91c48f2bda86e3f1b2832203e949d1d0aed8aa69a77959fca3e6fd7b5dd06d64b8d37cd8cb7f
ac5946f1a88b56b5816113c624651fe931471c7250ed2468ffb7230555fc8de4f1e5f975cf31ea0a3fc
55e6ebc5d4f5c60fea246d14296f6f6d1b00a0a5bc31a461a9f1b7393f6f156618abb15762aec55d8
abb15762aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb
15762aec558ff00985a9abf94c7f36ab28ffb955f9fe18abfffd7f6f7917fe509f2d53a7e8ab1ff00a864c
559062aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb15
762aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb15762
aec558ff98a9fa5fca5534ff72d2d3dff00dc55fe2aff00ffd0f6f7913fe508f2d7fdb2ac7fea1a3c559062
aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb15762aec
5
The implementation of this AperiodicRealtimeThread class abstraction has the following
simplification:
For simplicity of illustration, deadline misses are not detected until the thread completes its
execution and waits for its next release, and there is no provision for dead-line miss event
handlers;
no overrun of the CPU cost is detected (the RTSJ has no primitive classes that would allow
an applications programmer to monitor the CPU time consumed, although an implementation
may provide such a facility as an extension to the Clock class);
the aperiodic thread can only be released by software, there is no mechanism for allowing a
hardware interrupt to release the thread (this situation is best catered for by the use of event
handlers see Chapter 11).
In order to detect a deadline miss, it is necessary to know the release time of the aperiodic thread. In
general, there are several models that could be supported. The model implemented here is that the
implementation of release (and start) uses the current value of the real-time clock. (An array is
used to buffer the release calls.) Of course, the releaser could be preempted between it calling
release and the clock being read, but this is acceptable as it could also have been preempted
between its decision to call release and the actual call of release. The priority inheritance protocol
is
used
during
lock
management
of
the
object.
import
javax.realtime.*;
public
class
AperiodicThread
extends
RealtimeThread
{
public
AperiodicThread(PriorityParameters
scheduling,
AperiodicParameters
release,
int
queueSize)
{
super(scheduling,
release);
releaseTimes
=
new
AbsoluteTime
[queueSize];
first
=
queueSize
-1;
last
=
0;
size
=
queueSize;
myClock
=
Clock.getRealtimeClock();
myDeadline
=
release.getDeadline();
MonitorControl.setMonitorControl(this,
PriorityInheritance.instance());
}
public
void
start()
{
//
Save
the
release
time.
synchronized(this)
{
releaseTimes
[last]
=
myClock.getTime();
last
=
(last
+
1)
%
size;
}
super.start();
}
public
boolean
waitForNextRelease()
{
synchronized(this)
{
first
=
(first
+
1)
%
size;
//
Check
for
miss
deadline.
AbsoluteTime
lastDeadline
=
releaseTimes[first].add(myDeadline);
if(myClock.getTime().compareTo(lastDeadline)
==
1)
return
false;
//
deadline
miss
try
{
while(((first + 1) % size) == last) wait();
return
true;
}
catch(Exception
e)
{

return

false;
}
}
}
public
void
release()
{
synchronized(this)
{
//
Throws
ResourceLimitError.
if(first
==
last)
throw
new
ResourceLimitError();
releaseTimes[last]
=
myClock.getTime();
last
=
(last
+
1)
%
size;
notify();
}
}
private
AbsoluteTime
releaseTimes[];
private
int
first,
last,
size;
private
Clock
myClock;
private
RelativeTime
myDeadline;
}
To use this class, it is necessary to extend it and override the run method to provide the functionality
of
the
thread.
For
example,
public
class
MyAperiodic
extends
AperiodicThread
{
public
void
run()
{
boolean
noProblems
=
true;
while(noProblems)
{
myLogic.run();
noProblems
=
waitForNextRelease();
}
//
Deal
with
deadline
overrun.
}
}
User-defined sporadic threads can be similarly implemented. Here, however, minimum inter-arrival
time violations also need to be detected. This can be done in a similar manner to the model provided
by sporadic event handlers.
Version 1.1User-implemented real-time threads with sporadic or aperiodic release parameters
note
are severely limited in their ability to detect cost overruns. Consequently, it is likely
that Version 1.1. of the RTSJ will provide the waitForNextRelease and release
methods directly in the RealtimeThread class.

12.4 Monitoring Deadline Misses in Periodic Real-time Threads


In many soft real-time systems, applications will want to monitor any deadline misses, but take no
action unless a certain threshold is reached. (For contrast, Section 13.8, gives an example where the
asynchronous transfer of control facilities are used to inform the schedulable object immediately of
any problems.)
Here,

health

monitor

public
public

object
is
assumed
with
the
following
interface:
import
javax.realtime.*;
class
HealthMonitor
{
void
persistentDeadlineMiss(Schedulable
s);

Now consider the following event handler for catching a missed deadline of a periodic real-time
thread:
import
javax.realtime.*;
class
DeadlineMissHandler
extends
AsyncEventHandler
{
public
DeadlineMissHandler(HealthMonitor
mon,
int threshold) {
super(new
PriorityParameters(
PriorityScheduler.MAX_PRIORITY),
null,
null,
null,
null,
null);

725

myHealthMonitor
myThreshold

mon;
threshold;
}
public
void
setThread(RealtimeThread
rt)
{
myrt
=
rt;
}
public
void
handleAsyncEvent()
{
if(++missDeadlineCount
<
myThreshold)
myrt.schedulePeriodic();
else
myHealthMonitor.persistentDeadlineMiss(myrt);
}
private
RealtimeThread
myrt;
private
int
missDeadlineCount
=
0;
private
HealthMonitor
myHealthMonitor;
private
final
int
myThreshold;
=

}
When the handler is executed, it increments the miss count and reschedules the thread. When the
count reaches the threshold, it informs the health monitor and does not reschedule the thread.
Note that it is not possible to pass the real-time thread as a parameter to the constructor of the
handler, as the handler itself is needed before the real-time thread can be constructed. Consequently,
either the real-time thread must be created with a null handler and the handler set later or the handler
class must allow the associated real-time thread to be set later. The latter approach is adopted here.
The
{

following

code

PriorityScheduler

sets

up
ps

the

real-time

periodic

thread:

(PriorityScheduler)
Scheduler.
getDefaultScheduler();
HealthMonitor
healthMonitor
=
new
HealthMonitor();
DeadlineMissHandler
missHandler
=
new
DeadlineMissHandler(healthMonitor,
5);
PriorityParameters
ppl
=
new
PriorityParameters(ps.getMinPriority());
PeriodicParameters
releasel
=
new
PeriodicParameters(
new
RelativeTime(
0,
0),
//
start,
new
RelativeTime(1000,0),
//
period
new
RelativeTime(
100,0),
//
cost
new
RelativeTime(500,
0),
//
deadline
null,
// no overrun handler
missHandler);
// miss handler
RealtimeThread
rttl
=
new
RealtimeThread(ppl,
releasel)
{
public
void
run()
{
//
Code
for
thread.
}
}
missHandler.setThread(rttl);
rttl.start();
Important Deadline miss handlers are schedulable objects. Consequently, they will compete for
note
processor time with their associated schedulable objects according to their priorities.
Hence, for the handler to have an impact on the (in this case) errant real-time thread,
it must have a priority higher than the real-time thread. If the priority is lower, it will
not run until the errant thread blocks.

12.5 Summar
The RTSJ supports the notion of schedulable objects with various types of release characteristics.
This chapter has reviewed two types of schedulable objects: real-time threads and no-heap real-time
threads. The chapter has illustrated that periodic activities are well catered for and has an integrated
approach to handling cost overruns and deadline misses. The waitForNextPeriod (wFNP)
method has the following semantics:
When the deadlineMiss count is greater than zero and the previous call to wFNP returned

true, wFNP decrements the deadlineMiss count and returns false immediately. This
situation indicates that the current release has missed its deadline.
When the deadlineMiss count is greater than zero and the previous call to wFNP returned
false, wFNP decrements the deadlineMiss count and returns false immediately. This
situation indicates that the next release time has already passed and the next deadline has
already been missed.
When a deadline miss handler has been released and the deadlineMiss count equals
zero and no call to the schedulePeriodic method has occurred since the deadline miss
handler was released, wFNP deschedules the real-time thread until a call to the
schedulePeriodic method occurs; wfNP then returns true at the point of the next release
after the call to SchedulePeriodic.
When the deadlineMiss count equals zero and no deadline has been missed on the
current release and the time for the next release has passed, wFNP returns true immediately.
When the deadlineMiss count equals zero and no deadline has been missed on the
current release and the time for the next release has not passed, wFNP returns true at the
next release time.

Deadline miss handlers can be dynamically added and removed while the real-time thread is
executing.
Unfortunately, support for aperiodic and sporadic activities is lacking. It is currently not possible for the
RTSJ to detect either deadline miss or cost overruns for these activities, as there is no notion of a
release event. Indeed, with Version 1.0.1 of the RTSJ, programmers are best advised to use event
handlers to represent nonperiodic activities. It is likely that version 1.1. will provide the required
support in this area.

727

Chapter 13: Asynchronous Transfer of Control


Overview
Introduction and chapter structure
An asynchronous transfer of control (ATC) happens when the point of execution of one schedulable
object (real-time thread or asynchronous event handler) is changed by the action of another
schedulable object. Consequently, a schedulable object may be executing in one method and then
suddenly, through no action of its own, find itself executing in another method. The inclusion of an
ATC mechanism into any language is controversial (Burns and Wellings, 2001) and its introduction
into the RTSJ is no exception (Brosgol, Robbins and Hassan, 2002). The primary reasons for this
controversy are that ATC
complicates the language's semantics,
makes it difficult to write correct code as the code may be subject to interference,
increases the complexity of the real-time JVM, and
may slow down the execution of code that does not use the feature.
Despite all these disadvantages, ATC is an attempt to meet specific requirements of the real-time
community. This chapter starts by reviewing the application-level requirements that motivated the
inclusion of an ATC facility into the RTSJ. The basic model is then explored, and the notion of an
asynchronously interrupted exception (AIE) is introduced along with its defining class.
Methods that allow ATCs to occur during their execution must explicitly indicate their permission by
including AsynchronouslyInterruptedException in their throw clauses. All other methods are
considered ATC-deferred; any ATC request targeted at a schedulable object while it is executing in an
ATC-deferred method is held back until it can be delivered safely within a method allowing ATCs.
Following the discussion of the basic model, the Interruptible interface is introduced. This gives
the programmer a high-level mechanism on which to build applications that use the ATC facilities. The
problem of nested ATCs is considered in this context.
One particularly useful form of ATC is where the request for the transfer is caused by the passage of
time. This is discussed, and an example of its use is given. The chapter concludes with three further
examples. The first uses ATCs in conjunction with asynchronous event handlers to program recovery
strategies for deadline misses. The second illustrates how user-level interrupts can be catered for.
The final example shows how error handling between concurrent schedulable objects can be
performed.

13.1 Application Requirements for Asynchronous Transfer of


Control
The primary application-level requirement is to enable a schedulable object to respond quickly to a
condition that has been detected by another schedulable object (or by the real-time virtual machine).
The emphasis here is on a quick response; clearly a schedulable object can always respond to a
condition by simply polling (as with the conventional Java interrupt mechanism and threads) or
waiting for that condition. The notification of the condition can easily be mapped onto Java's monitor
mechanisms. The handling schedulable object, when it is ready to receive the condition, simply issues
the appropriate monitor call. Alternatively, the RTSJ event-handling mechanism can be used to
schedule a handler.
Unfortunately, there are occasions when polling, waiting for conditions or scheduling event handlers is
inadequate. These include the following (Burns and Wellings, 2001):
Error recovery between coordinated threads. Where several schedulable objects are collectively
solving a problem, an error detected by one schedulable object may need to be quickly and safely
communicated to the other schedulable objects. These types of activities are often called atomic
actions. An error detected in one schedulable object requires all other schedulable objects to
participate in the recovery. For example, a hardware fault detected by one real-time thread may mean
that the other real-time threads will never finish their planned execution because the preconditions
under which they started no longer hold; the real-time threads may never reach their polling point.
Also, a timing fault might have occurred, which means that the real-time threads will no longer meet
their deadline for the delivery of their service. In both these situations, the threads must be informed
that an error has been detected and that they must undertake some error recovery as quickly as
possible.

Mode changes. A real-time system often has several modes of operation. For example, a fly-by-wire
civil aircraft may have a take-off mode, a cruising mode and a landing mode. On many occasions,
changes between modes can be carefully managed and will occur at well-defined points in the
system's execution, as in a normal flight plan for a civil aircraft. Unfortunately, in some application
areas, mode changes are expected but cannot be planned. For example, a fault may lead to an
aircraft abandoning its take-off and entering an emergency mode of operation; an accident in a
manufacturing process may require an immediate mode change to ensure an orderly shutdown of the
plant. In these situations, schedulable objects must be quickly and safely informed that the mode in
which they were operating has changed, and that they now need to undertake a different set of
actions.
Scheduling using partial/imprecise computations. There are many algorithms where the accuracy of
the results depends on how much time can be allocated to their calculation. For example, numerical
computations, statistical estimations and heuristic searches may all produce an initial estimation of the
required result and then refine that result to a greater accuracy. At run-time, a certain amount of time
can be allocated to an algorithm, and then, when that time has been used, the schedulable object
must be interrupted, stopping further refinement of the result.
User interrupts. In an interactive environment, operators may wish to stop the current processing
activity because they have detected an error condition and wish to initiate alternative actions.
One approach to ATC is to destroy the schedulable object and allow another schedulable object to
perform some recovery. All operating systems and most concurrent programming languages provide
such a facility for threads/processes. However, destroying a thread can be expensive and is often an
extreme response to many error conditions. Furthermore, it may leave the system in an inconsistent
state (for example, monitor locks may not be released). Consequently, some form of controlled ATC
mechanism is required.

13.2 The Basic Model


The RTSJ model of asynchronous transfer of control brings together the Java exception handling
model and an extension of thread interruption. Essentially the model is that when a real-time thread
(or more generally a schedulable object) is interrupted, an asynchronous exception
(AsynchronouslyInterruptedException) is delivered to the thread rather than the thread
having to poll for the interruption as would be the case with conventional Java (see Section 3.5).
AsynchronouslyInterruptedException is a checked exception.
The notion of an asynchronous exception is not new and has been explored in previous languages.
The main problem with them is how to program safely in their presence. Most exception-handling
mechanisms have exception propagation within a termination model. Consider a thread that has
called method A, which has called method B, which has called method C. When an exception is raised
within method C, if there is no local handler, the call to method C is terminated and a handler is sought
in method B (the exception propagates up the call chain). If no handler is found in B, the exception is
propagated to A. When a handler is found, it is executed, and the program continues to execute in the
context in which the handler was found. There is no return to the context where the original exception
was thrown. This model makes it difficult to write code that is tolerant of an asynchronous exception
being thrown at it. Every method would need a handler for the root class of all asynchronous
exceptions.
The RTSJ solution to this problem is to require that all methods (including constructors) that are
prepared to allow the delivery of an asynchronous exception, place the exception in their throws lists;
the RTSJ calls such methods Al-methods (Asyn-chronously Interruptible). If a method does not do
this, then the asynchronous exception is not delivered but held pending until the schedulable object is
in a method that has the asynchronous exception in its throw clause. Hence, code that has been
written without being concerned with ATC can execute safely even in an environment where ATCs are
being used. Furthermore, to ensure that ATC can be handled safely, the RTSJ requires that
1. ATCs are deferred during the execution of synchronized methods or statements and static
initializers. This is to ensure that any shared data is left in a consistent state (however, see
Section 13.4); the RTSJ calls these sections of code and the methods that are not AI
methods collectively ATC-deferred sections.
2. An ATC can only be handled from within code that is an ATC-deferred section; this is to
avoid the handler for one ATC being interrupted by another ATC being delivered.

729

Important An ATC-deferred section is defined in terms of the lexical scope of a method, statement
note
or constructor. This is the textual region within the method, statement or constructor, and
excludes any code within class declarations or the code within object creation
expressions from anonymous classes. The lexical scope does not include the bodies of
any methods or constructors called by the ATC-deferred section. For example,
void
aiMethod()
throws
AsynchronouslyInterruptedException
{
Runnable
at
cDeferred
=
new
Runnable()
{
public
void
run()
{
// Code here is ATC-Deferred as run does not have a
//
throws
AsynchronouslyInterruptedException.
}};
//
Code
here
is
asynchronously
interruptible.
}
The RTSJ model is best explained in two stages. The first is the low-level support for the overall
approach; the second is the use of the high-level support to provide a structured means for handling
ATCs. Use of the low-level ATC facilities requires three activities:
Declaring an AsynchronouslyInterruptedException(AIE)
Identifying methods that can be interrupted by the ATC
Signaling an AsynchronouslyInterruptedException to a schedulable object.
AIEs
AIEs

are

defined
by
the
following
class:
package
javax.realtime;
public
class
AsynchronouslyInterruptedException
extends
InterruptedException {
//
constructor
public
AsynchronouslyInterruptedException();
//
methods
public
boolean
enable();
public
boolean
disable();
public
boolean
isEnabled();
// The above are only valid within a doInterruptible,
//
they
return
true
if
successful.
public
boolean
doInterruptible(Interruptible
logic);
//
Only
one
Interruptible
per
AIE
object
can
be
//
running
at
any
one
time.
Returns
//
true,
if
the
Interruptible
is
executed,
//
false
if
one
is
already
in
progress.
//
Throws
IllegalThreadStateException
if
called
by
a
//
a
Java
thread
and
IllegalArgumentException
if
//
logic
is
null.
public
boolean
fire();
//
Returns
true,
if
enabled
and
a
doInterruptible
// is active and there is no outstanding fire request.
//
Returns
false,
otherwise.
public
boolean
happened(boolean
propagate);
//
Deprecated
at
version
1.0.1
//
Usually
called
from
within
an
AIE
handler.
//
Returns
true,
if
this
AIE
is
the
current
AIE.
// Returns false, if propagate is false and this AIE
//
is
not
the
current
AIE(or
if
not
called
within
//
an
AIE
handler).
//
No
return,
if
propagate
is
true
and
this
AIE
//
is
not
the
current
AIE.
public
static
void
propagate();
//
Deprecated
at
version
1.0.1
//
Propagate
the
current
AIE.
//
No
return
if
called
within
an
AIE
handler.
public
boolean
clear();
// Atomically checks to see if this is the currently
// pending exception. If it is, the pending state is
// cleared, and true is returned. Otherwise, false is
//
returned.
//
Added
at
version
1.0.1.

public
//
}

static

AsynchronouslyInterruptedException
getGeneric();
//
Returns
the
AsynchronouslyInterruptedException
that
is
generated
when
RealtimeThread.interrupt()
//
is
invoked.

The methods will be explained in due course, but for now all that is required is to know that there is a
system-wide generic AIE. This is generated when Realtime-Thread.interrupt is called[1] and
can be made pending for one or more real-time threads.
To indicate that a method is interruptible requires AsynchronouslyInterruptedException to be
placed in the throws list associated with the method. As this is a checked exception, any method
calling the AI-method must itself be an AI-method, or it must have an appropriate handler. For
example, consider the following class, which provides an interruptible service using a package that
declares ATC-deferred services (that is, ones that do not have throws lists containing
AsynchronouslyInterruptedExceptions).
import
nonInterruptibleServices.*;
public
class
InterruptibleService
{
public
boolean
service()
throws AsynchronouslyInterruptedException {
//
Code
interspersed
with
calls
to
//
NonInterruptibleServices.
}
...
}
Now assume that a real-time thread rtThread has called an instance of this class to provide the
Service:
//
Code
of
real-time
thread,
rtThread.
InterruptibleService
is
=
new
InterruptibleService();
if
(is.service())
{
...
}
else { ... }
and
that
another
rtThread.interrupt();

thread

interrupts

rtThread

by

calling

The consequences of this call depend on the current state of rtThread when the call is made.
If rtThread is executing within an ATC-deferred section that is, executing within the
lexical scope of a synchronized method (or block), a static initializer or within a method that
has no AsynchronouslyInterruptedException declared in its throws list (such as
those in the package nonInterruptibleServices) the AIE is marked as pending. The
exception is delivered as soon as rtThread leaves the ATC-deferred region and is
executing in a method with an AsynchronouslyInterruptedException declared in its
throws list (such as the service method).
If rtThread is executing within an AI-method (and it is not within a synchronized block),
then the method's execution is interrupted, and control is transferred (propagated) up the
calling chain until it finds a try block in an ATC-deferred region that has a catch clause
naming AsynchronouslyInterruptedException (or a parent class). Any synchronized
methods of statements that are terminated by this propagation have their monitor locks
released (and their finally clauses executed). The handler is then executed.
If rtThread is blocked inside a sleep, join, MemoryArea.join (or joinAndEnter) or
waitForNextPeriodInterruptible method called from within an AI-method,
rtThread is rescheduled and the AsynchronouslyInterruptedException is
delivered.
If rtThread is blocked inside a wait, sleep, join, MemoryArea.join (or
joinAndEnter) or waitForNextPeriodInterruptible method called from within an
ATC-deferred
region,
rtThread
is
rescheduled
and
the
AsynchronouslyInterruptedException is thrown as a synchronous exception (it is a
subclass of the InterruptedException) and it is also marked as pending. Even if the
synchronous exception is handled, the asynchronous exception is redelivered as soon as
rtThread enters an AI-method.

731

Important Although AIEs appear to have been integrated into the Java exception handling
notes
mechanism, the normal Java rules do not apply because
Only the naming of the AsynchronouslyInterruptedException
class in a throw clause indicates the schedulable object is interruptible. It
is not possible to use the name of a subclass. This is to allow AI-methods
to be readily identified in the source code and for the integration of the realtime thread interrupt semantics. Consequently, catch clauses for AIEs that
name the class AsynchronouslyInterruptedException explicitly
must exist even if catch clauses for subclasses are available.
Handlers for AsynchronouslyInterruptedExceptions do not
automatically clear the pending state of the AIE. It is necessary to call the
happened
or
clear
method
in
the
AsynchronouslyInterruptedException class.
Furthermore, as a result of the above, although catch clauses in ATCdeferred regions that name the InterruptedException or Exception
classes will handle an AsynchronouslyInterruptedException they
will not clear the pending state of the AIE.
Although AsynchronouslyInterruptedException is a subclass of
InterruptedException, which is a subclass of Exception, catch
clauses that name these classes in Al-methods will not catch an
AsynchronouslyInterruptedException.
"Finally clauses" that are declared in AI-methods are not executed when
an ATC is delivered. "Finally clauses" in ATC-deferred regions (including
synchronized blocks or statements) are always executed.
Where a normal Java exception is propagating into an AI-method, and
there is a pending AIE, the normal exception is lost when the AIE is
delivered.
From the above, it can be seen that the happened and clear methods declared in the
AsynchronouslyInterruptedException class have an important role to play in the handling of
ATCs. Essentially, when handling an ATC, it is necessary to ascertain whether the caught ATC is the
one expected by the interrupted schedulable object. If it is, the exception can be handled and the
pending state cleared. If it is not, the exception can be propagated to the calling method. The
happened
method
is
used
for
this
purpose.
Consider
the
following:
import
NonInterruptibleServices.*;
public
class
InterruptibleService
{
public
AsynchronouslyInterruptedException
stopNow;
...
public
void
useService()
{
stopNow
=
AsynchronouslyInterruptedException.getGeneric();
try
{
//
Code
interspersed
with
calls
to
//
InterruptibleServices.
}
catch
(AsynchronouslyInterruptedException
AIE)
{
if
(stopNow.happened(true))
{
//
Handle
the
ATC.
}
// No else clause, the true parameter indicates
// that if the current exception is not stopNow,
//
it
is
to
be
immediately
propagated
//
to
the
calling
method.
}
}
}
Here, when the AIE is fired, control is passed to the catch clause at the end of the try block. A handler
is found for AsynchronouslyInterruptedException. In order to determine whether the current
AIE is stopNow, a call is made to the stop-Now.happened method. This returns true if stopNow
is the current AIE. If it is not the current AIE, then, as the parameter to happened is true, the
exception is propagated. If the parameter were false, control would return to the catch statement
with a false value. Now the called schedulable object might perform some cleanup routines before
propagating
the
exception
using
the
propagate
method:
catch
(AsynchronouslyInterruptedException
AIE)
{

if

(stopNow.happened
//
Handle
}

(false))
the
else

{
AIE.
{
//
Cleanup.
AsynchronouslyInterruptedException.propagate();
}

}
Note that even if propagate is not called the AIE (as a result of the happened method call) is still in
the pending state, consequently when it again enters an AI-method, the AIE will be delivered.
Consider an AsynchronouslyInterruptedException object called myAIE. When the
myAIE.happened method is called, the following rules apply:
if myAIE is the current AIE, the current AIE is no longer pending; no propagation occurs and
true is returned;
if myAIE is not the current AIE and the parameter to happened is true, the current AIE is
immediately propagated;
if myAIE is not the current AIE and the parameter to happened is false, the current AIE
remains pending and false is returned.
Warning The propagate and happen methods have nonstandard Java semantics. They are not
defined to be AI-methods and yet they have the effect of an AI-method. For this reason,
they have been deprecated in version 1.0.1 of the RTSJ and the clear method
introduced; clear simply resets the pending state if the AIE is current and returns true,
indicating that the current AIE is now no longer pending. If the flag is not reset, the AIE will
then be redelivered when control next enters an AI-method.
Using

the
clear
catch

//
}

method,
the
above
example
would
be
rewritten
as
(AsynchronouslyInterruptedException
AIE)
{
if
(stopNow.clear())
{
// Handle the AIE; stopNow is no longer pending.
}
else
{
Cleanup and leave the current AIE still pending.
}

In this context, a call to RealtimeThread.currentRealtimeThread() from an asynchronous


event handler can be considered to return an object representing the server real-time thread currently
executing the event handler.
[1]

13.3 Examples
To illustrate the above concepts, consider Figure 13.1. This shows a chain of method calls made by a
real-time thread. Methods A, D and E are ATC-deferred regions, whereas B, C and F are AI-methods.
Here, "Arbitrary" means some exception that is not an AsynchronouslyInterruptedException
or an InterruptedException.
0100090000035ec301000000c1c6000000001610000026060f002220574d464301000000000001
00905b00000000100000000020000010d6010010f60100010000006c0000000000000000000000
d20100007c01000000000000000000006a4000007534000020454d460000010010f601000c0000
00010000000000000000000000000000000005000020030000c40100001a010000000000000000
000000000000e3e306006e4e0400460000002c00000020000000454d462b014001001c00000010
0000000210c0db01000000600000006000000046000000f4660000e8660000454d462b22400400
0c000000000000001e4009000c00000000000000244001000c0000000000000030400200100000
00040000000000803f214007000c000000000000000840000540660000346600000210c0db0100
00000000000000000000000000000000000001000000ffd8ffe000104a464946000102010048004
80000ffed0fc450686f746f73686f7020332e30003842494d03ed0000000000100048000000010001
00480000000100013842494d040d000000000004000000783842494d03f3000000000008000000
00000000003842494d040a00000000000100003842494d271000000000000a000100000000000
000013842494d03f5000000000048002f66660001006c66660006000000000001002f6666000100
a1999a0006000000000001003200000001005a00000006000000000001003500000001002d000
000060000000000013842494d03f80000000000700000ffffffffffffffffffffffffffffffffffffffffffff03e80000000
0ffffffffffffffffffffffffffffffffffffffffffff03e800000000ffffffffffffffffffffffffffffffffffffffffffff03e800000000ffffffffffffffffff

733

ffffffffffffffffffffffffff03e800003842494d040800000000001000000001000002400000024000000000
3842494d0414000000000004000000023842494d040c000000000e340000000100000070000000
5c00000150000078c000000e1800180001ffd8ffe000104a46494600010201004800480000ffee000
e41646f626500648000000001ffdb0084000c08080809080c09090c110b0a0b11150f0c0c0f15181
31315131318110c0c0c0c0c0c110c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c
0c010d0b0b0d0e0d100e0e10140e0e0e14140e0e0e0e14110c0c0c0c0c11110c0c0c0c0c0c110c0
c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0cffc0001108005c00700301220002
1101031101ffdd00040007ffc4013f00000105010101010101000000000000000300010204050607
08090a0b0100010501010101010100000000000000010002030405060708090a0b10000104010
30204020507060805030c33010002110304211231054151611322718132061491a1b1422324155
2c16233347282d14307259253f0e1f163733516a2b283264493546445c2a3743617d255e265f2b3
84c3d375e3f3462794a485b495c4d4e4f4a5b5c5d5e5f55666768696a6b6c6d6e6f6374757677787
97a7b7c7d7e7f71100020201020404030405060707060535010002110321311204415161712213
0532819114a1b14223c152d1f0332462e1728292435315637334f1250616a2b283072635c2d2449
354a317644555367465e2f2b384c3d375e3f34694a485b495c4d4e4f4a5b5c5d5e5f55666768696a
6b6c6d6e6f62737475767778797a7b7c7ffda000c03010002110311003f00f4773b0b35f5d8eadb7d
405ad69757ba1cc7b6ab2039bfbcd52fb1f4bef89581e269007fd4296662bb200688d910e1b9cc3cb
1eddafabddf98b34f47c4bdd7601692d60aecb1bf68b49d7d46b37eeddf9acdbefdff00f8124a74701
9531d92ca582bac5da35adda35ae927da965755e9d87978d859590ca3233777d958f3b7d42c35b
5ecadc7d9ea7e9eadb57f3967f83552ff00ab5d2b3d80755c5a733d371348b1bbf602caa92d0e7feff
d9d9bd50c8ff175f53f232b1f21dd3ebac636e229ac06576176c8764359efb7d2f4ff0046cdfe9fe92cf
53d4494f46fb2bae3d47066e30ddc4092017e93fc86b9ea23228331630c730e1d8edffaa2a191858
995536ac8a5b657590e631c340402cd3fb0e73505bd1ba5318e63716b0d7b456e1b742c6bbd46b
3fa8d7fb92536464639048b584004921c3403e97f9a97af444fa8d8d0cee1df56ff009d0aab3a2f4a6
6edb8cc05ff0048c6bdff00ea777b533ba1747708761d4e066416cfd2732c77fd3aab724a6eb2caec
dc18e0ed861db4830480f8747f21ec7a928574d55179ada1a6c3b9f1dc80193fe631ad53494a517b
b631ce02768263e0a4a2f00b1c0824419039292906eea31fcdd3ff006e3bff004926f5f319754cbaba
f65ae2cdcc7b890435f64ed756dff4680cccb0d7bdf8992d20b4066e976bba4fd3dbecd9fbc9a9cbf5
aca77e164b1e0b5c0d91b58e734b5fbbf48efe6daf7b7e8a4a7fffd0edfa9b2deab5e3646254e2d68b
8383cb58e10e633f3ddfbd57b564d38cfb6e6d14065973da5cd15d8c74b5a18ff739aefddbd8e62ea
73f1bed158afd6f4263dc3e94b5ccb5bb0ee6ff00a3596301f6e5d949ead6efc715d9a6c691ea36ea
78680cf7b1bbfd9fe1525367eafd7663635f4dfecb1b90ff006920f218f10413f9ae56b27abf4cc4cac7
c4cac9ae8bf3370c6658e0df50b0d6c7d75b9dec75bbafab6d5fce59fe0d57b3eaff0049cd6cf52c7a
3a910f2f63efadafda5cdaea7ecdfbf6eff42bf5151caff17ff547272b1b25fd369ac626e2da6a636baec
2e3590ec9654d6fda3d2f4bf475d8ef4bf496efade929e81cf63480e7005c61a098931bb4fecb526d9
5b890d702418306608ec85938389975b6ac9a9b6d6c3b9ad70d0100b34fec39cd416f45e94d63ab
6e33031ed15b9b1a16877a8d67f577a4a6def646edc220999d207296f6e8646bc6be2a9d7d13a55
7b8b71980bfe91efde07f6777b545dd07a3b810ec5add3333279732c3ff004eaadc929bccb2b7ee0c
7076c3b5d041870fcd77f29490eaa29a4bcd4d0df55dbdf1ddd019bbfcd63511252942d7eca9ef027
6b4ba3e0254d339a1cd2d7096b8411e45253cce5752198d67dab16ab3683b0fb811b843b6ba7db
b959e9598caf31b4538d552dc87458eae413b2b77a7ff0046ad8a77749aebb2c14e03adad8d69a8
8c87b4b892df519eeb3d9b1befff00844f8385655974b8f4e3486b9dfa5fb41b031bb1c1a7d373fdcf7
b9de9fd0494ff00ffd1ed7add56e7b31722ba9bb18cb4bfd57b6b2c04d406ff00503bddecfd237fc12c
6f47d8d21b43da0b5b35dcdb04d8e756c1babadcdf73ebd8bb3be96d9f48b769696b9ae01cd20c7
2d77f5553ae8c43936e331b8e054daec2d15b64177a9b1ceffb6ff46929a3d2f37a7744c47d3d5b2b
1ba7becc8b4b1975d5b01d2b7bbd373cd5ea6df519bff737a7c8faf7f54b1f2f1f15fd5319c7277edb6
bb59656d2cd9edc8b6a73db8fea7a9fa375dfa3fd1d9ef5aa3a7e23f71beb66417bcd93635ae0090d
afd923dbedadaabe47d5ce839393464df814596e2eef40960dad2fd9b9de9ff36e7fe899b1ef67e8ff0
0c1a4a6de566e261b1b664dada98f76d6bdc60130eb2377f558e40675ae94f6d8f6e556595343dee
9d0349f4daf9fdc73fd8d72b8fad96087b43c0320384ebf3511452262b689e600f1ddff0054929acde
b3d29d3b72ab25a37113ac46ee3f95f9a99fd73a4306e7e654d1af2e1d8b6b77f9b65b5b1dfcbb2b5
65b8d8cd0436a6343a661a04ee92eff3b7392fb363898a99accfb46b3f49252f55ccb77164c31c584
911a8fa5ff4bda889835ad248001719747731b64fdc9d252945cedad2ee6013f72926201041e0e85
252007348066ad4783923664d6e67a8185af76d3b641d41f1551ff6c65fe9d78973ea040f54e4f2dd
db1ce0c759bb7359fa5f77fe7c4a8766baf636ec2b1ad6ba4586f0f68d6cf7ecdfbddecd9f99f4edfe42
4a7fffd2f466e4577b6abafc7702e1600c2c2e88735b3ab7dbbe37352b327a65502d636b921a3732
24b890c68d3f3dcd76c56aea7d5d0ed730b4b1cd709043a3cfc950674de9eeb5f8c31a8fd0fa56e8d
d43a5fe9ba3f31ccf4fdae4949ba66cdf99b1a58dfb418696ed8fd1d3f99fca45bfa8e0636563e1e45e
ca7232f77d9ab790d366cd9ea36addf4dedf56bfd1fd354b33ead748ea6e73bab63559a458eb2a16
37e86f6d553dadd7f3bd062cdc9ff16df53f232b1b20e032a6e31713455ecaed2edbb7ed31fa4b3d2
d9fa367a9b3fd27a8929e9c900804ea784839a66083060c78a06660626756cab2ab1632b76f6092
20c3abfcc2dfccb1ec55dbd07a4b18eadb8e36bda2b70dce3ed0ef54364bbdbfa4f724a6fc81ca759
d5fd5fe9356edb4417c871dce1a19f6fb5cdfcd76dffab4cffabbd1de08763c833237bfbb9b67effef56d
d9fe8ff33f9cb1253a0d7b5d3b483b4c3a0cc1f02a4aa62bba735d73b19f59276bae735d312ddec93
3ed67a7ef6a37dab140dc6eaf6c033b8443be81e7f3ff0035252ceccc66daea5d606d8c00b819006e

3b59eefa3b9eefa2d42abaaf4cb9ad7d5974b83c0737ded983fc99ddd911cec124dae35131abced9
810efa5fc9f6a10aba486b98d6d0d699adc1a1ade091b34fdd7ee494c9bd53a73c80cc9adf227735c
1cd82431bbac6fb1bb9eedac526f51e9ee76c6e4d25d2d1b458d9979db58fa5fe11df4109cde8cd21
8e6e30363b60690cf739bfa4db1f9ce67d3536e3f4d6ba057487b75e1b220eff00fa2f494fffd3f467e5
b47a2fcba5ed73daff00d1b2bb2e88737e97a35bb6fb7f7905bd5fa1bae2d649b9e43086d1697121a
eb595e956edde97a96b19fe8d5ecaaf21e08a0869731ccdf305a5d1b5edf63f76d590de979a2f228b
d95dd5b5af790caf5739afab7b7f44eb28ff0009b3fd156fd9ef494e874cb5b69cb7337067ae435af6b
9840f4ea91e9da18f67bff92ae17b03c565c03dc0b9ad9d486c073837f93bd8b1f2feaf5bd41bfac67
65e1bc586c9c0bdd4974d7553fa77358ddffccef6ff00a358f9bfe2e1995d430728f5aea5b708d8e26c
c873ee978635bf65c931f64fa1fa7dac7faacff47f4d253d924819588dc9adb59b2cab63839afa9c5ae
900b7e97f55cab57d1ebacbcb72b266c0771369e4961dfc7d36b6bf4daeff0046929d04c402083c1e
567d5d1c5724e6653c967a7eeb49100399bf6bb77e976bff004967e7d95ef4cce88d657e9b7372c3
437637f4bc08635b1edfa4cf4bff0004b12536aae9f834822aa2b6027740680261cdddfe6bdcd503d
23a5b841c5a8882d8d8236bb4733fa8efdd45c6c566335e18e73b7bb738b8c9986b39fec2324a69
1e8dd20b8b8e1d3b8b8b8bb636771dbb9dba377f83affcc4c3a1f47049fb1524989258d24c0da371
23ddedf6abc924a68b7a27486eadc4a81ee43449d3d3f73be93bf47fa3fea25fb13a412f9c3a8fa800
782d104343837dbf47f3dcaf24929fffd4ee3adfdbacaf14b6bb4584585eca0b8c7d0dbbfd22dfcd596
29ea21ee70a32c39e002efd2498fa3b9dbff3373b6ff6d749d476c7bf77a7b0eff4f76ffa5546cf4fddfd
75958bfb17737d2dfbf7511eafabba77647d9377a9fcafb57f39efff0049fe092537fa07ae30de2f6dad
78b0c0bb76e8867fa42ef6abb6e66253914e2dd7575e464eefb3d4e700fb3600eb7d263bdd67a6d7
6e7ec5cdfd6dff009a5b69ff009d931ea3fecbe9fda79d957abfd03ddf4767f3ab8bea1ff8d17ed3e9fb
7ed7f66fd2fabb3ed5b377e8bd1fb47daff5bdbf4f67ecff00d27a9fcf24a7d76471e3c241cd33041830
63b159dd67f667d9a9fda1bfd3f507a5e9efddbf659fe87f49fccfadbd67d5ff0036fd2bf67afb3d26fa93
ebeed9eafb764fe937fadf4fd2fd36cf4fd6ff0006929e8925ce63ff00cdf8bb67da7876f9f57e8fbbf73d
9fcd7ef7bf67a7f6afd22859ff00367d376ffb4ed87fd1fb471baae3d3fe5ecf43fe07ed1e97eadf68494f
4ad735d3b483b4c183307c0a755b07ec5b6dfb26d8f55deaedff0049a6e9fececfec2b29294924924
a524924929fffd93842494d04060000000000070005000000010100ffee000e41646f62650064400
0000001ffdb008400040303030303040303040604030406070504040507080606070606080a080
9090909080a0a0c0c0c0c0c0a0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0104050508070
80f0a0a0f140e0e0e14140e0e0e0e14110c0c0c0c0c11110c0c0c0c0c0c110c0c0c0c0c0c0c0c0c0c
0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0cffc0001108011e015e03011100021101031101ffdd000
4002cffc401a20000000701010101010000000000000000040503020601000708090a0b01000202
03010101010100000000000000010002030405060708090a0b100002010303020402060703040
2060273010203110400052112314151061361227181143291a10715b14223c152d1e1331662f02
47282f12543345392a2b26373c235442793a3b33617546474c3d2e2082683090a181984944546a
4b456d355281af2e3f3c4d4e4f465758595a5b5c5d5e5f566768696a6b6c6d6e6f63747576777879
7a7b7c7d7e7f738485868788898a8b8c8d8e8f82939495969798999a9b9c9d9e9f92a3a4a5a6a7a
8a9aaabacadaeafa110002020102030505040506040803036d0100021103042112314105511361
220671819132a1b1f014c1d1e1234215526272f1332434438216925325a263b2c20773d235e2448
317549308090a18192636451a2764745537f2a3b3c32829d3e3f38494a4b4c4d4e4f465758595a5
b5c5d5e5f5465666768696a6b6c6d6e6f6475767778797a7b7c7d7e7f738485868788898a8b8c8d
8e8f839495969798999a9b9c9d9e9f92a3a4a5a6a7a8a9aaabacadaeafaffda000c0301000211031
1003f00f7f62ac27ce9a3697af798bca9a76b56715fe9cd2df48f6b70a2488ba5b1e2c54ec48a9a62a
88ff9559f96ff00f52ae97ff48b17f4c55dff002ab3f2dffea55d2ffe9162ff009a7156bfe555fe5b9ffa6574
cffa458ffa62ae1f955f96c3a79574cffa458ffa62ad7fcaaafcb6ff00a9574cff00a458ff00a62abff2c504
7e43d122038a47018d17a8544919540af6005062acb715762aec55d8abb15762aec55d8abb1576
2aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb15762ae
c55d8abb15762aec55d8abffd0f7f62ac5f5e3ff003b8794878bea1ff50b8ab28c55d8abb15762aec5
5897e589e5e43d1186f5858d4f5fef1f1565b8abb15762aec55d8abb15762aec55d8abb15762aec5
5d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8ab17b8d63cd771a
c6a161a1e9fa7cb69a7b4513cb7b793c123492c4b31a2c76d28000703ed62aefacfe62d47fb8cd16
9dff00dc8ddffd90e2ae373f98ddb4bd13fee2377ff6438ab5f5afcc7ffab5689ff712bbff00b20c55c6eb
f323b695a27fdc4aeffec831541def993ce5a2cfa636b5a4e99fa3efefedb4e792cefe792646bb7f4d5c
249671ab004ee398db1566b8abffd1f56797bce7abcff9a9a86957deb2f9575ab69479765b8312c2d
79a34be95ca5b14666712a3fac790047a4ddb154ffcdb6f7373e6af28c76b76f652fa97e7d7892391
a82db75a4aaebbfcb154dff436b7ff00531dd7fd23d9ff00d51c55a3a3eb6054f992e401d4fd5ecfb7fc
f1c55a8f4ad62455963f32dc491380c8c20b32a411b10443be2aa573697d6810ddf9ae4b7f50d233
2c5629c88eb4e510afd18abacedeeefc33d879ae4bb8e36e2fe847632053e04a4468715417e568f4
ff002f7cbeace5cada80d23501243354903615c55977a89fcc3ef18abb9a7f30fbf1563fe7cd62eb43f
23f99b5bd36558b51d374abebcb49182baacd6f6cf2212adb101946c7157c99f921ff0039ff00e57f3
208341fce0823f2deb678a47af5b066d2e734eb2afc4f0313febc7fe5478abecdb1bfb1d52ce1d434c
b98af6c2e54496f756d22cd0c887a323a12ac0f8838aa23154825f38e896fe6e5f25dccc2df5992c93
51b712b46893472492c6522ab72675f4599942ec9f162a8b8fccbe5d9ae2d6d21d5eca4babd0c6ca

735

05b989a4982f2e5e9a86ab5383578ff002b7862a91e9df995e58d4b57bdd2609e89a79bb171a933c
3f5202c63b49253eaac840005e47d69b87e54e3baac860d7345ba9a4b7b6d4ad669e2885ccb147
3c6eeb0300c24601890843021ba6f8aa8af99fcb6f1acb1eb164f1ba7a88c97313064abaf25a31a8a
c6e36ee8dfca7154369fe77f26eab1c72e9de60d3ae166823bb8c4775096f426281242bcaa158c88
0123ab28ea715568fcd9e579a69ede2d66c9e5b61099d45c46780b92cb154f2a7c65182f8d3156b
5df34e8be5e8cbea3728255f459ed9648c4cb0cf3a5b898a3b2911ab38e6fd14571555ff12f973d21
3fe98b2f44c0b7824facc5c4db4878acd5e54f4d89a07fb2715727997cb924125cc7ac593db446359
665b988a234fbc619835017fd9afdaed8aa95b79bbcab7917af6dad58c90f3b98b98b88a85ec58a5
c0156dfd26521ff0097be2a87f30f9dfcb3e59f2f0f34ea77c8742334100bcb722742d733adba90509
aaab355c8fb28acdfb38ab21c55d8abb15762aec55d8abb15762aec55d8abb1548b4514d73cc87c
6eadff000b387154f715762aec55d8ab12f3f2f2b6d03db5ed2cfdd7031565b8abffd2f7745a0e8701b
2306996911d38c8da7948235fab99aa2430d17e0e753cb8d3977c5525d78ffcee5e511fe56a3ff50d
8ab02f3379f75fb1bff37c4f7b79a6dce8f35bdb59e9d0e9e6789ed2f1ed56daf56e7d19403248f3c4e
009787fbe6b155d5639e5afcc3f31ea7ac359ea9a9df5bd86b3399e0965d3259edcca2cb4d9858d1
e25f4a29217bb7ab15f8959f98f4d91d54e7f2e3ceb3e85f95d7f25d5d497aba0d86930e9886011ba
497da65afa56f448d6aab3c8539302c82bea1f87156186f21b04d0fc8fe69b6adf793fccda944ad72c
da8f3b1d43cbba8ddc127d61a150d492e0404f15e32222f5e38ab39ff9c769b4efd0096b6d2d84f7d
1e93a3b5d1d2f4c934c5817eac42c3725d9c4b70ac242e6a187ed226d55539d3bcb53f9d7f2125f2
95b5d0b1b9d7b43bbd3a2bd20b885eed248964a29527896aec7157c91ff0044e7f3b8ff00ca9d0ffd
21dcff00d9462ae1ff003ee7f3c1fb5f99b053fe60ee4ffd8c62a94f9a3fe7dffe72f2ef9675af305c7e63
c373069361757f25b0b4b80654b585a564a99c81c82d3a62af93bf2fbf2c7cf5f9a7ae2797fc89a34fa
b6a068d2b4602410a569ce699caa46beecdbf6df157ea3ffce2dffce3b799ff0023b4590799bce377a
addde202de5db6918e8966cdf1318d65059a4a935917d253fc8df6b157d138abcafcfdf969af799bc
d8be65d1e7d3a1962b3b2b6b67bf89e768e4b49ee6672502d191c4ea0a725e5c4f2c55894df913e
68bbb5f4a4bdd36d6fda732a6a50199ee2de392f9aee410b344ac0d1885a32aff00aab8aa365fca0f
3a5dc37725c4fa443753f197eaf6cf771dbbbc4ba3a88dd91524092fe8c6e6e879a7aabc79f0f89564
5a17e54fe89f2d79a743b7b6d2f4cb9d6ecd6cac6eec2276f46316296c2393d5fde3c68e950ad2b72
5fe5e98aa572fe50f9827d6e4d645ce9f07e949c5c6a96c82564b7e122385b53c17906e259b984f8
d8ec79571561de55fcaed6b50d43cdba71b7d3ad356d16e6c618751304c82ee78f42d26de8b2342
a4db17b672cc3d43ea8fb1f07c4ab2a83f27fcd30e9df545bed3e2b93736f7ab751894fa52c325e16
5f4dd19258d92e423a49fde29917f76dc24c553ff00317903cc1aa6b5ad5ca47a4dfe91a95ce9f7d6e
9a8239ba89ad7eaf1dc5b86e12288648e0e55fda6768d9389e78ab0c9bf24bcdf70935adc2e832e9
ad1fa315a1f5557d333aca04b4b722529c07a65bec03c15542fc6aa6537e5179b97cd126b76a7416
d316ee429a3dc4529b49ac263a827192148d515d23bd523886f51d25e6ffbfe51aa97dffe436b9790
eaf6770fa56a36f796da8c3a63dd3dda0b39aee7d46449160406225d350292720de9fa754f53d4e2
8abd13cc5e42ff0010695a67960c3058f95edeceea3bbb5b26fabb8b99a0fabc6b1058b808c2cb372
d94f22842f5c5591f952db5cb2f2ce9165e659a2b8f305b5a4306a5736eccf14b7112047914baa351
c8e5baf7c5538c55d8abb15762aec55d8abb15762aec55d8ab1687513a4ebbae0bab2bd78eea68
25b79aded66b88dd05b4719f8a3561b32914c551ff00e27b4ff962d4bfee1f75ff0054f1577f89ad3fe5
8b52ff00b87dd7fd53c55dfe26b4ff00962d47fe902ebfea9e2aeff135a7fcb16a3ff70fbaff00aa78aa43
e68bd935cfd076ba7e9f7ef245acd85cccd25a4f0a24304bcddd9e45550140f1c559c62aff00ffd3f7f6
2ac5bccf65adb6b3a06b3a3d925f8d35aec5cdbb4eb6ed4b98422b2965606846e3155c75af385453
cac29e3fa461ff009a3155dfa6bcddff0052b8ff00b8843ff34e2a83b4f35f99ef6e2fada1f2b9f534e9d6
dae396a1001cda18e71c68a6a38cabf4e2a8cfd35e6eff00a95c7fdc421ff9a7156bf4d79bff00ea571f
f71087fe68c5557c8ba3de681e50d1b46d4422df59db24770b13734127560ad415009a5698ab21c
55d8aa0b57d2acb5dd26fb44d4a332e9da95bcb6779106642f05c218dd79290455588a835c5501e
53f26f957c89a343e5ef27e916da368f6e07a76b69188d49a53939fb4ec69bbb9666ee7154f315762
aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb15762aec
55d8abb154baff5ed234cb81677b7691de35b4d7c96c2af335b5b346b2bac6a0b30569507c22b56
18aa4f67f98be4ed46149ac352facac92b5bc091c170d24b2c6d2a3ac49e9f2728d0c81f803c38373
a62a9c1d7b491a23f98cdc8fd0a96ed78f75c5a820452ecc569cb600d452b8ab7a9eb9a668f05bdc
5fcde9a5dcab05aaa23cb24b2b2b385448d5998f1566341f6559bb62a9862a84d5353b1d1b4dbcd
5f53985be9b610c9757970c0911c30a97772141345504ec31555faddbfd53ebdea0faa7a7ebfabdb
d3e3cb97ddbe2aff00ffd4f7f62aec55d8aad77e08cf42dc413c54558d0568078e2ac23c9de63d2f50
d6f5d4b494c8fa95e2dddb2046e4b0c7a75907320a7c043b7021a879f25eaad8ab39c55d8abb157
62aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb15762a
ec55d8abb15762aec55d8abb15762af33f32f933cd9aaf9c74df3a585cac575a16a36eb63a699d16d
a7d2de1786eda56fabb48b230b894ac41fd3678add98edf0aa927973f2e7cdfe5db7f2beb422b4b9d
77cb773e6247d285d3adb5c59798ef8dd8759cc355962e318a18f8b0f55796ead8aa73e7af24f9c7c
c3612456b7b6d7b05dc71610000026060f002220574d4643010000000000010000000000000010
0000000020000010b6010010f60100710cba05db2dbd8db9bab396012473456ed2486391c49491
77dcaf03c71563927e5c79c45f696f7a6de7d4e2d56e255d5feb77335616b4d48433fa3e8848a484
de2a7dbfde2c2a3d55fdd478aac97f2b3cdd771c925d5a59c72cb656c86d9353ba9628ef06a31cd7
4d1b98538acb0abd38a2fdbf4cf567c55bf337e5679df54d2f59d3ecbea4d1defe91b15826bfb95b7b
9b3bbb7bb8ace6923109589ed7eb2aa50094c823afa83844a157b07e8fb8ff000f7e8ae49f5bfa97d

5b9d4f0f53d2e15ad2b4afb62afffd5f7f62af2efcdaf30798f47bfd0adb43d425b086ea2bd6b930a44c
cf2235b470d4cb1c83632b6c28493b091b8c4eab063e70f39ab281e62bd7e6a18305b3a7c5c7601
6ddffdf8a3afeda6effbafacaaa29e70f3d49288c7996f15882c2b1590aee0003fd1cf5e694a06fb4bf1
1fdd7d61549b4c6d5741d5758d7741d4aee0d4fcc7325d6a738fab48d3c91aa85e1fe8f2045a372e
317252f217a333a34eaa7d179dbce0efc8f986ecc045156965c99aa00a1101ebc94edcba8a72f83d
5554af7ce9e7786d27962f305eb4821678885b4346e355a85b56ad6a3eff00879fc3cd57b9791f52b
bd67c97e5cd5efe4135f6a1a5d95ddd4c02a879a7b7491da8bb0a924d06d8aa7d8abb15762aec55
d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8a
bb15762aec55d8abb15762af1cf34f91fccda9f98af6fe1b1bb9f4dbad597d54b7d4c5accd662c2d96
09e27676112c1731cacd1a2ac879fa881bec95588f9622f33f9a2c7574f2a5c5c0d60de5fb36adf5e8
a5b6e135aea10db4927a5732527f51e25991a28658c244fe88e18ab264f2379c57ccd69aad8d9dc
58e8f6f79a7cf6360d7e08b3b75bdaddc7c165653ca2323711c87093d25fe50abdaf15762afffd6f7f6
2af24fce74437fe5e7350eb0ea2b5edc18db0707fd61f0fbd69c5ffbb755e6c2de3984a8394909a891
9be22093d86fd7703fd7fdae749d55b22c607a73cdc605af028d5e67c684b56a2bd9b77ff2bfd2155
5f46292af312e63150adf12bd3aef46a9247f97f6bf6b97ef956b8913f22d4b9a72f4c1ab103df9375a
789ad7f6f97ef95434f1036b72abfbd778e5f515a868550d68287a91f4ff00c595f8d57d01f9600afe5a
f93549a91a1e9809f95a458ab2bc55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8ab
b15762aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55e7fe69fccd93cbde609fcbf6
7a05cea92db5b41773dc473dbdbc605cb4aaaa3d6752cc3d224d315497fe5746a3427fc1b77403b
5f59127e4049bf86ddf6eb8aaeff0095c9aaf3451e4dba21b6a8bfb2d8d6943f1ec7dbfd5fe74e4ab50
7e6e5f23cb1c3e4b9d1791790c57d604173b9278c9f68fde6abfefc8f9aabe3fce4bf96bc7ca177f092
1bfd36c8914ee2921a83d88fb5f071afab173551163f9bd35cded8db5cf966e6da0bdb886d85cfd72
c6754fac48b1ab9114ac596ac375ad6abc79738f9aaf4ec55ffd7f457903ccbe668bf33ae347d5efafd
f43d4aebcc96da79bf9e1b9b79e4d26fd1618ed9117d584c309939994f09578d393e2acdfcf5e548b
cdbe60d06c67bd9eca28ad752903db2c4ce589b5415f5a3905072e436fb4056abc94aa94cbf91fa5
4bb2ebfa9c4a011c6316606e1fad6dc9342e0fcd13fcbe6ab109fc9ff0097b6d0cf24be67d61ac62b8
480dd8b481ad43c92cb0f2497ea7c1952456466e4dc5a25afda3eaaac775ab4f2ac7e50d5b5fd275
7d68ea76705edcc5633dbdbf18dad24bb8d04b24568e13d516f2345c89a844afc4dfbc55e81a37e5
4f97fcc363fa534ff00316afe9bbcf6ec6682da09e396de5921915925b50cac8e1968c3f6475f8b92a8
8befc90d352cae593cc3a9a910cdf652c7f69187fcb29e95fc072afc555599fe59023f2dfc9e0f51a26
9a3c7a5a478ab29c55d8aa4fe6cd6dfcb5e55d73cc71c22e5f47d3eef505b766e02436b0bca10b50
d3971a5698abca7f253fe729bf2bbf3aede0b4d36f868de6f61fbef2d6a2ea973c852a607d9275df6e
1f1d3ed4698abdbb15762aa22eed5ae9ac44f19bd48d667b60ebeaac4e4aab94ad4292a4034a541
c555b154245aa6993ddbd8437b0497d1f3f52d52546957d3e3cea80d471e695db6e4bfcd8aa2f157
62aec55d8aa9cf7105b2096e6548632ca81e4608bce4608ab534dd988007738aaa62aec55d8aa0
6ff59d1f4a685354d42dac5ee09102dccd1c2642b4a840e456951d3154762aec55d8abb15762aec5
5d8abb15754569dfc315762aec55e11e7d603f3235905f883a66995a1a6e24bca76ad3af73f25fb78
aa4531b9a7a6e0b5d935079022876e8798efd3e2ff8d3155012488c6489b900c05c10686b5dc8ad
3f98f4ff0081df8ccaa261244f213216b370dc98372fb5f3e7fccdfdbcbfd2556c21358835798678f704
1e5d6a056b4e6d5fb7d0ef272ff4a557e9ef74d77a6171c99b53d3de75241e0cd770f72edbfc4dd19
ba7db9397fa4aafa3b157ffd0f70e8fe4cf2a797efae753d1746b4b1d46f19daeaee18956691a67f524
25fafc6df13ff336ed8ab579b79bf481524b596a04034a001ed06df7e2ac4ee7f32eead3cf9a8f94ee3
ea10dbd8cd6a9046ed70d7d7715c594b7b27a31c68e0bc6b0b9e3fb617f65b8a9558db689f96d3f9
7e182cfcd7aac3e55b8b9b9d574f10847b3b586e4caefc5dad1c2c1eabc8c924c4b2b82892715e18
aa4083f261e2d5ac74ef39eb06db5ab3b9b5d4ed2d90bdbb2bdcdd3465dcd9948e557925861e4eb
ea5635712b7a58ab3bf27f9fbca9a5d86a7f59d5296af792ea68b34530bbb7835086df5295aed1614
58d636bd5f894bc6b1bc5ca4e5ca8ab2ad2fcebe5af36d9eaa9e5fbc374d631c8b701a19a0a7c534
355f591392fa904a9c96a39230c558c5845e67bcff9c7bb187c90fe879c27f2940ba0bf244e17efa7a
880f29070147e3bb0e38abe4cff0005ff00cfc786ff00a7dbfe93b48ff9a7156ffc1bff003f1f3d75e61ff4
7ba3ff0005c5527f35793ffe7e0b079675a9fcc5ae3cbe5f4b0ba6d5a317ba5372b35858cc38a00c6a
9cbecefe18abe26d2ec754d4b51b6b2d16dae2ef5599c0b3b7b34796e1e41b8f4d63058b6d5f8715
7eb27fce2968ff00f3925a4f97bd2fcecbe81f435811345b0bdfdfebb111403d79a33c42051f664f526
a9f89938f12abe8ec55e29f9803ccfa57e6943e65d0adb559228f4ad3ed265d36d45c47728d777a6
5898bc6ca5d1591d41740accacdb62ac65bcc9f9c296f6f79649acc9aa5bcdc6d34d9ec5d6d6e239
afda35fac3496eafb40e3e22f1f1e3ccaaf1c5565a1f34d8ea3a8f9834cb0d685cdd34f249a85d69b3b
5e086e62f2fc774c9198e32cc821b9e11afc6de8b7a5c8aae2acef419bcf49a279bae9b52d5b55d7f
4fb148747b7bdb18b4f49a61611c8258a23180657979541964556f81d53ec85522fd31f992fac35bd
afe989b40be9045a24cf68eb29b7495448f745a1568587a8ea0cbc0b222b2fd9e58ab18f2cebff009
8ed06a50d9ea5afcf3e830d8c373a6dc597a8d0db8d1f4bbb7af2b7123dc9b879c7a7c9e478d9be0f
b0d8aa796bacfe64c56f2dec916b926a37573a7d2d25b69622f62b3dea3ac44c2638a5e2237fde0e
32718d2531acdea62ac8fcef79addeeabae6917835782cedee34a934c6b1b16b9b392c5e5b4679fd
410ca3d786e04a788f8d5151da3f4aad8ab0cb8f39fe6505b8b48a4f31c4b0db0b68efdb477939c8b
7042c8856cd94b34687d4675fb47e1444e2ccaa6bfe24fcc1b4f30dce9331f3149e5b37d25949aaa6

737

9c67bc88446f628254a5aac6d1c9225b1668d5d78346f230579f82a95fe95fcd3b0b1d7ed05e6bd6
97f6116b579a593a63ea0d793fd6750a45eb7a46340886c9e0146e55e317a9fbc555538fcd9d2afe
e6c7ca16f1cfa85edc1b0d6124d51f497d5a62d7964151268a081551a46608b558fa7b362af60f294
77717957438afed1ac2fa3d3ed16e6c5e433bc12ac281e2694eee50d54bfed75c5538c55d8abb157
62aec55d8abb15762aec55d8abc03f32aee3d3bf31b509aea29424fa769ab6d2fa1349131592f39d
1a346048a8aff002f2ae2ac706b3a5c6041134e549a8fdc5c122bd3e231ef43ef8aa847ae6920cbea
99d991898d56d6e78d3aff00bec775a53fe6ac557aeb7a398b9c0b70bc8a8688dbdc7634ad1a23b
ec0f4ff00891c55560d73451c2365b82ce41522de7a0a014eb1d05405fbf7fb4d55517a4ea3a7dd6a
9a55ad9accd2b6a363c3f733d5916ea16a92ca36a006a58fbf57e4abe96c55ffd1f7f62ac6bcc30ebd
0eb1a66b1a1e9d16a66da0bbb69e096e85a15fac340cac098e40dfdd1046d8ab049fcb3f982fe61d
5bcc16b68d672eaf25b4f2c315ed9b889eca03047e93c968586cc79f761f07d927154a2d3f2d3ccda
7d84fa3e9fa5dd5ae81756977a5cfa4c5abda888d85e3c9208848d66d22fa2f2cad1b290d494c6d5
454a2a9369fe51f3dea1e67bfd32fb417bdd0b4fd3ad34bd4279350d3adfeb5770cbf5e8e8b6f6abc3
80963725614e52035638aa6307e55f992de4bb91f4a9ee5efed7f46debbea96b1fa960f6569612c04
25981f1a5944fea0a323f3e3b1c553ef2af95fce7e531a80b5d045d0beb76b5e13ea902aa29bbbcbc
14e16a093caf5d77fd954ef5c55e8de4dd26e740f28e81a15e15377a669d676570632590c96f0246
dc49009155db6c553bc55d8aa55e67d117ccbe5ad67cb8f31b64d5ec6e74f6b8550ed18ba85a22e
1490095e55a62ac03f287fe71e3f2bff00256cd17ca3a4ac9ad98fd3baf305ed27d466a8f8bf784011
a9fe48822f8d7157aa62aec55d8abb15762aec55d8aa5f61a1e93a5deea5a8585aac17babcc973a
94ca4d679a38961576a922a23454dbf6557c3154c315762aec55d8abb15762aec55d8abb15762a
ec55d8abb15762aec55d8abb15762a925ff009a74ad3bcc9a4795ae4c9fa535a8ee66b32a84c2059
aab32bbf456604945fdbe127f21c556681e6cd335ed0ffc403958580b8b9b42d7ad1c6449677525a
39243b280d24678efb8a62a8f8b5cd1678ccb06a56b2441d222e93c6cbea4a0322d4352ac082a3b
e2a97699e73f2eeaf7cf63637d0c87d08eeade6f563e13c521941317c5c8f0f45f9edf0e2aa9aa79b7
46d2d74c669d6e46ad790e9f69f5678e42649dca72fb42aaa47c656b4f0c553cc55fffd2f7f62aec55d
8aad95fd38de40ace514b704dd9a82b415a6e715609e4df34695a8eb9acada33bbeab74b790205f
8a3861d3ac964330ff00759573e9156dfd40c9fb2d8ab3dc55d8abb15762aec55d8abb15762aec55
d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8a
bb15762aec5581799bc91ab6b9aafe9db7bb8e2d4ec350d32ef45e72cfe824164c7eb0b2c6a002f2
c73dcc608aed227f2e2a955a7e56ea5179662d26e6fd26bc8b561a97d58c92b69af00d7bf4c51a16
53fbde27d2e74ebbf4c55228bf24b55175a54973269975a7d9c26d6ef4d905ca5bccb24f3cc66a426
325e3f51022bd55bf780f1f85b1556bff00c9cf306a5a58d2e4bfb1b574861b48b51812437022b78f5
18c1a32fed7d7139272e3b4a2bf10c551a3f2af5f1e676d712eb4f4b4bdd4ac356bdb5093335bc9a7
dcc9294b66d81132c87d4a84fdefc543cb157ae62aff00ffd3f7f62af2cfcdef3479a342bdd0acbcb9a8
fe8e17915f4b7320821b867683d058d7f7cac00aca49a0f9fc35c5580c9e76fcc95e2479a65a10a4d
2c6c08f8b978c2294f87fcf9f055aff001cfe653bfa71f9a241cabc5decac78f5603710ff00abd7fe6be0
aa47a55c79abcbda9eb9ade8daf35bea7e619d2ef55b9fa8d9729248e3f493886868a280370f857d
4691cfc4f25154f8f9dff3299014f34482aadb9b1b22435580dbd01faffe36e2aa85ef9e7f342d6dde61
e6972446ee8a2c2c6bc8292bcab1014e9fc69d957bdf92f53bbd6fc9de5ed6750656bfd474cb2bcba
641c50cd716e923903b0e4c683154f315762aec55d8abb15762aec55d8abb15762aec55d8abb157
62aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb15762a
ec55d8abffd4f7f62af1dfceb40dac7960ee0fa1a90afecd0b5a547cc8fb3fe578f4c55e7c60125b3707
a43c16a106e4828763b815ad47fcf3ff0064aa8c2b109112e1bd48453827205c8a29fbbfebdffb2551
13a44f343eab8e7426265240aaf1fb3407c7fe21f4aaa36d6e45daa3c81a6d8965dd7603b0effcbfec
3daaaacd4ede17b2ba78a4e122a3faa03753c76a57dfecd3db8e2afa07f2cc15fcb7f2783b91a269a
09ffa348f156538abb15762aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb1
5762aec55d8abb15762aec55d8abb15762aec55d8aa4dab79afcbda15c25a6ad7f1dadcc89eaa44
dc8b18ebc795141dabb62a81ff9589e4cff00abb47ff012ff00cd18ab47f317c94054eaf101e25641ff0
01a62ad0fcc7f24b74d622dfa7c327fcd18aae1f989e4b3ff004b8876ff00264ff9a7155cbf983e4b675
41ad5b02eca8bc98a02ce78a8ab00372698ab25c55fffd5f5d790affccfe6eb3d3fce8fabbc3a75ddf6
a22e341782111a59432cf6b045cf87a8268de357958bfc4dea2538f1c5503f9a1e50d47cede65f2f6
93a76b5fa0de1b2d4ae64b816b1de17025b3409c64740a3e2a93dfecf438ab1f3f90de6c3d3f3048a
0007fb86b43b014ef27f9fc5fccd8aa90fc84f3424e263f98549989a7fb86b5dcd3c3d5df6ff008dbf98e
2aa16bf945abdf6a1a8e8b6df98c65d434d108d4603a25bd63fad299232599c06e4013b16fdae5b9
c558acbe5bd26c2e24b797f342ea4b8865bc864821f2d4b3b9934e645ba1c63472c22322f323e1f8f
df1565b7ff0091fe626d22e2e3fc7ef344b6d249113a45a7d93193d9c56a3157ab7e5d8e3f97fe545a
d69a3e9e2a3a7fbcb1e2ac9715762a90f9e35abbf2df92bcc7e62b04492fb48d2ef750b6498131b4b
6b6ef2a870083c495de87157807e47ffce6cfe5afe691b6d0fcccebe4ff0039c8b436d7b228d3ae241
4ff0079ee588009ed1cbc1bf657d4c55f4e835dc74c55d8aa44de6cd222f359f274f27a1aa9b28b508
3d568d1268e59264e1102dc99d3d066701765a1c551b0ebda1dc3dac76fa9da4b25f026c9239e36
3385e553180c79d38b578ff29f0c558f69bf997e5ad575abdd1eda5223b0fad99f5332406c78d8476
924ac255918500bd8fa814e2fcb8f1dd564d1ea9a64d2b430dec124c9189de34951996160087201
a85208f8ba62a865f32f975e259a3d5ec9e1741223adc44cac84b80c086dc131bd08fe46fe538aa9d
8f9afcb1a95bc37561acd95c4171147730b25c46794337108f4e55a317503dd80c557c7e67f2e4d3
cb6d16ad66f3c1e87ac8278c95fad9610d7e2eb215213f9b1559aef9974bd021325e4aad3298395b

23c7eb08ae6e12d84a51994fa6af20e4de1efb62a8a5d6b476e3c750b63ca1176b49a335b763412
8f8bec13b73fb38ab9759d1dd2591350b668e168d26713464234d4f4c31e5b17e43883f6abb62aa3
69e65f2f5fc7ead9eab693c7cee230d1cf1b02f66e52703e2ff75b0a3ff2f7c5501ac79cac34e9f4cb0d
3e0975ad575813c9a7d9583424bc169c7d798c92c91c6a89cd1492fbbbaaaf5c5537d2b504d5b4c
b4d4e3865b74bc85275b7b95f4e78c48a1b8c8b534615a30af5c55198abb15762aec55d8abb1576
2aec55d8abb15492127fc5f783b7e8db5dbfe7bdc62a9de2aec55d8abb15635f9835ff0007ea94ebc
23a7fc8d4c5592e2aff00ffd6f7258794f40d33519f54b0b4f42eae2592e6455925f405c4f5f565584b7
a6b24953cdd5033d4f2ea715425e2ff00ceff00a33d7fe953a9ad29ff002f1627afd18aa5bf981a6eb5
a8dce82963a54bace93f5978f53b682f469f25bb3aa982f39174e6b03a9e4abca4f8f9a23b271c55e
351f913f3524be5d625f2e4e2fed24bf7b58a7d4ede721aed104a52769cb7efd2dda2f51c72533c6d
c1143fa6ab31f2d7943cc3a6f9fecf5d8bcbf7da769b2359a3196fe2b916f6274fbff520900b86e5e9dc
496e9f0abf1e2be93b471f2c5521d6bca3e75bad756e97cbbaf259437fe67944fa26a3a7d8dcbc7aa
cb68f6ac1a4ba5f81fd17e6adbafc2597157bb5db5ccbe5e9daee2582edec9ccf023735490c479286
a0a8076ad3156171e93adf98ff00222df44f2cdf7e8cf30ea7e5586d74ad47d4787eaf753d82a452fa
9102ebc1883c94721db157c963fe7147fe73197ecfe727fdcf35affaa38ab6dff38a5ff398ecc5dbf396
ae7627f4e6b5dbfe78e2a9279b7fe717bfe72cf4af2aeb9aaeb5f9b5f5ed1ec34fbbbad42cbf4d6b127
ad6d0c2d24b1f07882b7350578b7c27be2af8bbcb3e55f3279cf588340f29e9573ac6b371fdd59594
4d34840a558851f0a8aeecd451df157eac7fce29fe52fe747e58f97443f999e6f37da74d0a8b1f28b7f
a67e8e3d452f1daa08ad0c31f28bf95b157d1d8abcafcfdf96de60f33f9a7fc43a4cba64652cecad6dd
b508de6647b59aee492a8a94647170aa5392f30ac1b15620bf913e6c974f8ed26bdd320bb1233ae
a10b4ef3c0b35e4b72fe933c4ad50b310a03229229f02f4551c7f28bcf329b8b9925d120b99292adb
5bb5da5b3c918d1d7d3938a237094698fcd97e24f59767e1f12aca74afcb29ac3cbbe69d120874dd
2e7d66d96d34eb9d3e37610c6b6315b04904803b223c7b2fa8dc93f94ec1563f2fe4ef98e5d765d6
d27d3201ab4a93eab68a2664b5314aaeab68422f20c0bb37311d1dbbf238ab15f2afe577982f6f7cd
36325ae9b69aae8b73631da5f98ae123bb9e0d0f49838ab98958da97b56e4cbccfacbf63e0f89564
50fe4d79b12ce1b66bad2e3996ead6ffeb51098fa735bcb764a7a6f19596264b808e8f4e6ad201e9b
049315651aff0090b5fd4b5ed5eed23d26f74abfb9b0bfb56be5905ec2f6c6d639edc30475f4648edc
b57bbbb23271f8f1560537e46f9de506063a03d9fa4b6e22fdfc75885ca4e44805b9572046150b7d8
53c142f1ac8aa7137e51f9ccf9b67d7626d064d21ef2523479d2736b358cdf5e8c2c90a44a8b22477
81b6e7ea48b27271eb728d541dc7e46f989adf5ab12345beb6bfb7d462d35ee8dca1b396ea6d424
89d224429f1adf949abcb870f87d5e7c5157a26a5e51d56df5af2cf997cb5158c577a258dee9571a5
4a5aded5edb5136f2b98a48a272ad1cb6a8547a7c5d19fec9a62acd2dfeb1f578beb650dd705f58c
5511f3a7c5c7954d2bd2b8aaae2aec55d8abb15762aec55d8abb15762aec55248bfe52fbcffb66daff
00c9fb8c553bc55d8abb15762ac6bcff004ff08ea55e948abff23931564b8abfffd7f7f62ac775883538
bcc5a66af6560d7d041697b6b3ac72451bab5c496ce8692b2023f74d5a1c5558eb3ad8e9e5cba3ff
0047167ff55f156ff4c6b5ff0052edd7fc8fb3ff00aad8aa0edbcd5a9ddcf796d0796ef1a5b0985bdcfef
ec80123451cc29fe91b8e322e2a8a1ad6b67fe99bbb1f3b8b2fe13e2aa17baa6bb7167716e9e5bba
e72c6f1ad6e2c80ab2900ff007f8aa2fca1a6dd68de53d0748be0ab7ba7e9d696972a86a82582048
dc291d4541a62a9ce2aec552fd7b46b4f31e85a9f97efd9d6c756b49ec2e9a22164115d46d139424
101b8b1a1a62ac73f2e3f2a7c83f94fa2ae85e45d1a1d32da83eb17007a97570e0005e699aaee4d3
b9e23f6557156678abb15762aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8ab
b15762aec55d8abb15762aec55d8aa53a8f96f4cd52f16fee0dcc776b1883d5b5bbb8b52630c5c2b
082440d424d2be38aa14f93b492286e352dff00ed697fff0055f15593f97b42b3f47eb3a85f41eb48b
041eaeab78bce57af145e53eec77a0eb8aab1f2be9b1a166bbd402282496d4af68077353362ab6d
741d26eede2bcb2d42f67b5b845960b88b52bb92378dc5559584c41520d4118aaf9fca7a55d44d6f
7725e5c5b395324335edd3c6dc183004193715036c553cc55fffd0f7f62aec55d8ab890054ec07538
ab1cf2e9a6b5e6baf43a94257dc1d3ad3156478abb15762aec55d8abb15762aec55d8abb15762ae
c55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55
0f7e6f058dd1d3821d43d293ea82434433713c391df6e54ae2af0bd7ee7f32351d12d20d134ff325b
df6a16b326a11de343c629a480dbc888637053f7bc644919d8712cd10e3ba2aed3b4ff3a6afa2e8fa
66b563afda5e69d79a4f27aa7a42cd2de13ea2b86771346eb2095bed82cfcab588e2acbed6e7ce1
269de49835bb6d57d5bad2a23ac4f64b1878b568c5bb30bc52768dc7aa1a80afda1f6fd3c5586695
37e65e950681a5da699ac5b699a7d868d15f44b1a3a7fa3b6966e162a508fdd7d6d193e2919d5fe2
fee5715538e4fce83a1e9f05e36ab0b5dd8d9c5a96a10c227d42c6630ac737fa32c889337adc6413
452d557d659629155392af74f4efbf41fa5ebcbfa4bea9c7eb3c23f5bd7f4e9cf857d3e5cb7e35e15d
bece2afffd1f7f62a94ea9adbd85fda6996d6135fde5dc534ea90bc31858edda35624cae9de55a015
c5540eb5ad8e9e5bba3ff47165ff0055f1573eababca8d1c9e5bb978dc156569ec8a9522841066e8
715607e4df2d79a7cb7af6ad7fa8699717ba5acbc3cb368b2da06b5b568218dbd5633fc520112c31
91f6608d7f69df1567dfa635affa976ebfe47d9ffd56c554e5d7758862799fcb97612352cd49eceb451
53feefc5530d0f57b4f3068ba6ebd61c8596a96b0dedb09000e22b98d645e401201a36fbe2a8fc55d
8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8ab
b15762aec55d8abb15762aec55d8abb15762aec55d8abb15762aff00ffd2f7f62a905eaffcee3a33ff0
0cb86a22bf396ccff000c553fc55d8abb15762a87be15b1b91e3138ff008538ab1afcad047e5979341

739

ad4687a6835ebb5a478ab2dc55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb15
762aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb15762
aff00ffd3f547963cfbe669750d0935992daf74ed7f5bd7fcbe9e9406de7b79b469ef7d092bea3aba49
0d9389071522465653c7e1c5591f9abcd1e5ff002c79a743b9f31eab69a458cb65a92c7717d3c76f1
b4824b33c434854134a9a62ab87e6d7e56b1a0f3a68848a547e91b6efff003d3155c7f35ff2c1412d
e72d1005153fee46db607fe7a7b62ab7fe56cfe57eff00f3b9e89b6c7fdc8db77ff9e98ab67f35ff002b
c52be73d137e9fee46d7c69fefcc5542fbf35ff2c459dd01e72d179ac526df1610000026060f0022205
74d4643010000000000010000000000000010000000002000001096010010f60100a42dab5e24ff
003e2a8bfcae047e5a7936a287f41e9bb7fd1a47e18ab2cc55d8ab4cc141662028dc93b003156f15
762aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb15754
62aec55d8abb15762aec55d8abb15762aec55d8abb157fffd4f68e81f971e5cf2f5fa6a56df5ababa8
25bdb8b4fae5c3ce96f36a733dc5d491464855795e47e4d4e5c5b82909f0e2a8cd42089fce7a2cae
0332e9fa92856a1d8cb6649a1f962ab7ccdaedb680da6dac3a70d4357d62796d34cb2468a1f5668
6d66bb606490855fddc0f4ff2a9fb356555886a5f9ada7e9dabdc69ada2d069ee5b5090bc4d4805a5
fdc56364aa1939589565e744e7f1b2b0655550ff00e3dd62c3f340f97359d27d1d1eeed74b821815e
da4fabdedf5c6a48260cabcdd254b5414247a74fb3be2ac72ebcdde681e7ed57458ae6eae34d83cc
779a64361a75b587d685a43e5cb5d4912369a300913ccc793316e344fb38abd9e1b5ae831a5d91
7175f540269de3446793d3a3332a0e2a49dc85d862ac5fc9daee9de57fc96d03cc9ac48d1e95a479
6acefafa545691960b6b1492460ab52c42a9d862af2affa1eff00f9c70ffabf5eff00dc32effea9e2aeff0
0a1eeff009c70ff00abfdeffdc32f3fea9e2a9079e3fe736ffe71f75cf25799345d3b5bbc7d4352d2efac
ed10e9d7481a6b8b778d0162800ab30df157c91f91ff00f39a3f997f94e6df46d7a47f37f92a20235d3
6fa5a5ddb2023fde7b92acc0281411bf28ff97875c55fa35f941f9fff00969f9d9a79b8f26ea806ab0a0
7bdd0af2906a16f51b9311279a03b7a91974ff2ab8abd3f15615a97e63699a2f9f53c99ac71b486e3
4d8b50b4d41bd464696496e11a2908429180b07256771cd8f05f8baaabe2fcd5f214d75656635711
dc6a0585b8960b8894147788895de30b11e68ca3d564ab7103ed2d554974bfcdfb1bed635182e6d
7eada0d89bbe1a81171ebc82da3d3a48f8db3c092132fe900a8179162abc39fa98ab25d33f313c99
aca5dcda5ead1dcdbd8da26a17772892fa11db491acaac652812bc18370e5cffc9c550c3f343c94ce
6217f20b80a19a06b5b94954b3c8815d5e2051b9464717e2df127fbf1392a97e95f9d7f971ab247e8
eab24370d0417325adcda5d432c4b7296f222481a2a09025d42ec95e4a8fea7f77f162a8bb5fcd6f2
55e4d3c50ddcfc20fab833359dd2c6ef74660a884c7f1327a1219453f76aa59e8b8aa23cd5f981a2f9
619ed649565d4a2303496e44a11629668a393f7891bafa891cbea886bea3a6f4e3f162aa47f35ff2fc
41f596d6912016a97eecd14ebc209182a870630564a9fee88f54774c55b5fcd4f2235b5d5dfe95e30
d9bac73f3b7b947ab0763c51a20ce104527aa501f4bd297d5e1e9bd1542c7f9c5f97a6dfeb573aa9
b283d5be8449776f3c2a4e98d32ccd564a053e84a6227fbd11bfa7cb835155dab79f2f9afbcb36be5
1d3e0d5a1f31a5ecd14f793cda7854b05462155ade4625f910bc820eff0064e2ac87cabe63b3f36f9
7ac3cc5608f15bdf47cfd1969ea45223149236e248e48eac86848a8db154e315762aec55d8abb157
ccdae0d2dff00312f527934e8cff8b3540e756a9b3e27caf67c7d50197e0f58b53b7a9ca9f1e2af53d4
bcc7e60d2ecbcbd179334f5bdd0e7b2859655b2baba558e8aa9c59254e2386e398269be2ac47cfd
adeaba2fe63eb32f976fe1b0d5aeb4cf2dd88b9962174234bad43515998445d473e223dcff91cb6a6
2a97796bf34bce7ac4ba27abaadadb49ad496b7f32dd4216044363a6ccfa740a88d234928ba9e68f
91e7fbafb5c125c556697f989f9822d746d5755f3469f2584d1797eef548a2d352168e2f305ccd049c
dccf204580469c5b8ee5ff00798aa1ef7f31ff003127d3a2b88f5eb68d25874dfaf2db59471dce9f15c
43a6dc497b2195e40559a79a1e2d1a200dcbac671550d4bf33fccde61f2f5c5bea77f6ba7d9eadf5c
99248a17f5ac6e74fe00e913891502cf210f246c0fabc63761b3478aaa69fa99d2b4ef326b5e51b8d
217ce9fa43cc2ba3c30896e752ba65d79cac13441b898e58d56285c8fdd738d93e1ae2a9b5d7e70
eb4f617373a76ad6c5216d32c0cb716de87a76daa4568ebae48c792a40ad34d1bab29891e3e0ce
1a3971550d53f31ff315358b3d3d755b036525ee9f69ac5c69f6b4fd1d03369723dd335c3b1315c7d
6a68979c6944e322fd87c55abefcd5f34e97e5fd4ef7463a7c6fa5db5e496f67e97286e1123be95af5
7f7dc82432dbac72272fe7df93c745599da79c7ccb73f97d7fa91d42d06bd67adae8e35316d5b731b
6a915af3307ab40de9494a7a9f6be2ff0027157fffd5f7f62a905eb8ff0019e8d1f73a7ea4c3e425b31f
c715456bfe5ad0bcd16d05a6bf631df416d3a5ddb092a1a29e3042c88ca4329a3329a1dd5994fc2c
462a92bfe56fe5fc925c4b26816ce6ee469ae15b9947793d72d542dc68df5a9f92d389f564dbe2c55
56c7f2d7c8fa6cd697165a3c514f62b6cb6b27395990593caf06ece6bc1a79482d5fb67156e5fcb9f2
64da9cfacb699c755b8ba7d426bb8a7b88a56bb92dd6d1a5ac722d18c28b16dfb0a17154ec5a5ae
9ba47d46ca310d9da5b98a0896a42c71a71502b53b018ab12f24e8da6f98ff00273cbba06b300b9d
2754f2e5959dfdb12c824b7b8b2449109421855491b1ae2ac107fce1affce35814ff0002c3f3faeea1
5ffa89c55aff00a133ff009c6bff00a91a1ffa4dd43feca71563fe7aff009c43ff009c79d2bc8fe65d4f4bf2
4c71ea765a55f5cd948b777eecb3c36d23c6429b82090c06d4df157c81f91dff00383bf989f99620d7
3cebea7937ca1200f1b5cc75d4ee908a8f4add8831a9fe79b8f8aa3e2afd15fcadfc93fcb7fc9cd2d74
df23e8d15acec812ef55982cda85cd09359a72031dcfd95e283f65462af41c55e7de70fcb17f35ebe7
5d8f5db8d2a4fab59db05b5890c886c679e74912463f0b1339fd934e23156387f20ada7d31b48bcf3
04d2d84d22cb74896b0c25c9bafadc8070345e4c5856955ad7e238aa29ff00256e6612cb73e689e6
be7a48972d656f45b88869a21731fd9655fd19173460449ce41f0d578aaca2dbc8289a3f98f43bcd4
a59ecfcc31fa6cf14515b4b6f5b54b6631fa6387ec734f8004fb3f162a923fe4f433ea8359b9d6e76be
ba97eb1ad98e08912ee5468ca1553cbd10163e24293cbae2ac6bcb5f941adfade6ad2759d427874

d8e7b31e5ebf305b7299edf46b0b0fad95491f6536ac9e8b2c75fb7bf25e2aa789f92aa964b61fe21b
83099edaee597eaf0ace2e6d66b899658644e26270671c0afd9e1f1735774c553dd53f2fef6f357d5f
51b0d7e6b2b3d626b0beb8d3cdbc5346b7ba79854481c957e2f1dbc6863afda1cebfb38ab179ff23
afa6bb96eff00c5b31670e9145259452470a4d2b4b2ac43982a1d8ab115fb4391ebf0aa8e93f27ef4f
9a1bcdf6fe699e0d616f5eeeda516903f18257b90d6f2f327d55115d3c71f2feef842c07c0caeaa16e
3f23437e9a4b6f31491c3ae5bdf5adc7ad656f3cd1ade4f753c66395a8ca636bc983f1a7aabc07c1c
4f25595f983c99abeada8f97356d3b5c1a6ea1a043730997ea69722637914713b0579004238557e
dee7e2e58aa7de5bf2fe9fe55d0ec7cbfa586fa8d846238da421a47624b3c8e4000bbb12ee683e26
38aa698abb15762aec55d8aad2886b5506bd76fa7155d8ab5c149a9515f1a62aee2be031568220e
8a05763b62a96e9ba0da697a86afa94324d2dc6b53a5cddaccfcd15e285205118a0e2bc235f87c77
ee7154cf8aff0028eb5e9dfc7155a228c12c11431ea682bb62adfa71f12bc071228450508f0fc7154b
b4dd0acf4bbad56ee079649357b917974266e6ab208638008c50715e31afc3e356ef8aa3c4108e9
1a8a02a3e11d18d48f91a62abbd38c2950a38935228295c55ffd6f7f62a95ea7a0d8ead716f7770d3
c3776a92450cf6b712db388e628cea4c4cb504c68687f971543ff85ed3fe5bf52ffb885d7fd54c55dfe
17b4ff96fd4bfee2175ff005531549f46d105d6a7e6082e352d4de1b3bd8e1b55fafdc8e31b59dbca4
6ce2bf1bb1dfc7154e3fc2f69ff002dfa97fdc42ebfeaa62ad3f952ca4468defb5328c0ab0fd2174363b
1e9262a99697a65968ba659e8fa6c5e869da7c115a5a42096090c081116ac4934500549c55178a
bb15762aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb1
5762aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55fffd7f7f62aec55d8aad939fa6d
e953d5a1e1cabc79536ad3b62af38f2079b5f5df33f9a34d8ed1a3bcb2bc43e60572c12cee458dac6
902371a485ca3c8083b43e9bb7f7ab8abd2715762aec55d8abb15762aec55d8abb15762aec55d8
abb15762aec55d8abb15762aec554ee2e21b4b796eae6458ade04696695cd15510726627c0018a
bc7ec3f35759d7f48d1ae74e7b5b5bdbaf35ae817c553eb31fd42e6192f6d9d3e31491ad9e06627e
cc9ea2f1c5535fcb0f39798f5fd0c6bbe62b93768da55a6a52dadbe953da3a497025622026494cea4
47401472aff372a05598daf9bb4cbad1eff5bf46f2d6cb4e8de6b8fafda4f60fc2343212a2e523a8a0e
bd315629e53fcd34d4b43d20eb76e87cd37d7b79a4cf63a7491c907d76c1c89162924740e385245
a1e4d1f27e3f0b62ab8fe747977ea763a92e9ba9be997d1c730bd48a131431bfd543996b3061e935
e46b200ac79730bcb8e2ab355fcd31a6ea7a4dd3e997c3cb3796f34934bf5642e55e5b25b7ba573
30fdc8172448bc4cbc8afc1b62ad597e77795ef74b7d68586a7069b12c724d2cd044ac91dccb3416
ce544c4f19e58248e3ff280e7c1595b1575b7e78f93ae34d1aacb05f59dac62392f85cc51a3da5bdc
1b610cd32acadf049f5b8b8f1e4c016e6abc1a8aa253f373cbf7935b69d670dd45a9ea3145258a5c4
712822e2d23bc43bcc0315490178d4fa9f049c54aa16c558cea3f9c77c3f2ea4beb188c7e788745b
6d566792db9582bcd6505db49c7d50c616337a4bf157d4f83f66b8aa7d27e7368106b0de5efa9deb
ea16d742d2e679a38e080c51dc4b6b7172ac64358e2785b90a2b1057806ecaad8bf3c7ca7730adc
5958ea977018e69e4920b5575486078a33213ea0e4ac678f8f0e47e2f8b8f17e2aa222fce2d0270f1
c5a5eaaf7f1cb25b369eb6f11b817115d8b168e9eb70a89594579f1a1af2eb8aa06c7f3f7c8d7ae87f
d2a3b7b8b88e0b19bd20feb44d0d9c8f3f0562eb1c4d7b1249c979a9e4dc7823b2aa936a7f9abafc
dacc6ba6cab63e5db9ba2b6d70fa64da85d3d99d205fc72a456d392c19fb90bf037165465e45565f
69f99da6453dd68daac17435fd31acad2e8476fe9c3757ba844b2422d39c8792cbf194e4df07a6e2
4652b8aa84bf9cbe5613dc59dada6a57b7d6ef0406d2dad794a6e2766430519d42c91ba14911ca1
0dd390df1551d23f38740d792df55d385c0d0ee1a486c2468149d41dbea62130b7aa38166bb5411
ca8accdfc8137557bfe75f9413521a5341a80bb6923b403eadf0fd7e633225a72e74f58bdbca94fb1c
93edeeb555fffd0f7f62ac4f5bd3ecb53f3a68b6da8dba5d5a8d3752710ca39a0904d6403713b5684
8ae2a989f277954f5d1accfce14fe98ab7fe0ff2b7fd59ed3fe44a7f4c5562f92bca08cee9a1d8abc879
48cb6f182cd40b56206e6800a9ec3155dfe0ff002a8ffa5359ff00c894fe98aa1ef7c9de55fa9dc71d1a
cc37a4f42214143c4d3b62aa3f96734971f973e509e5769259745d39dddc966666b58c9249dc938a
b29c55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb15762a82d5b4cb7d674cbb
d26eda45b5bc89a09cc4dc1fd3714601bb546d8ab1bbefcb2f2d5feb67cc0e6ea1d44cf6777fe8f70d
143f58d3a3962824118f8430499d5b6f8c539578af15513a1790b43d06c06950bdd5ee94b6634d8e
c750b87bbb75b41b1411c95535000626ac40a62a883e49f2c45a4dc689a7e9d0e99a75dc91cb730
e9f1a5b090c4cac030450083c42b023e25f87154beeff002e7cbf3dfdd6aa1257bab8bf835936cf330
b437f671c51c2fe9804253d088928397c3fe5372552f87f2b348bcd1adacf58e56f735bc9ef61d3257
8ad5a7d4ef23bf9c2871c8a89624e15a7c0b4a004ae2aa87f293caffa3e2d2d67d4458dbc72c16d11
bd95c436f2cd0ceb0c7cf971489ade3f497f61471ee7156adbf287ca369a7c1a5c3f5b5b28ad8d94b
19b863ebc2b2cb3c3eb123e230493c8f09fd92dfb5b62ab2dff0026bc936f1c71186e26854c4278a7
98c89710c115b471c33023e38c7d4e07e3fce9e0f22b2ae8bf273c9d0a2443ebaf124d6f70126ba79
97958a84b50049cb88802a88ca7160169c8867e4aa1c7e52e95770ea3a4ea45c687268f63e5ab0
68277fae3699624cbfbe90a0a39762bf0f2fddad797263c55453fe4f793e5d4df579beb72decaeef29
6b86e2feadd9bc91594000abbb3861fc8ec98aaf4fca7f2ea592590bdd4dc4762da5c73cb78f2ccb6
ad3c53850f206fb2614453fc837a9666c5501ad7e5558addcbaa796ccf06a9a86a50dddeccf7b246b
044d771dddcbdba949543bbc7cf895e2598fc4ab8aa3adff283c9b677f16a3611dd594b1fc1e95b5c
c9144f6ef0416f2dbbaa9f8a2956d606914fda78836d57e4aa8db7e4f797ac0da3e99a9ead633d831
36734379c9a24fab8b448c0951d78470811a02b5ee496f8b155d79f93de55be99aee7b8d47f4832c

741

15bf5bb6173eb5948b25b4fea52bea434658dbf92595583091b1543eb7f95ea444be5abcbab44b8d
66d755be46bc7e302c7c8dc496a1d25a4b293c9f97db72cdc90b1c55183f28bca50ac70597d6acac
20ab59d85bca160b6978db04922054b2bc6d691488796d202dbf223155393f27bca926a0baa34b7
bf5c59e1be0e26403ebb6e972ab714f4e9ea73ba9263fb3eaf16e3c578e2afffd1f5c7933cf1adf98fcc
9a9e97753582c161a8eab626d23b7ba8ee3d0d367586397d6676898b165e6b45ebf0fd938ab25bd
aff008df46f0fd1ba97fc9eb2c5590e2aec55d8abb1550bcff792e3fe31bffc44e2ac67f2b7ff00259f937
fed89a6ff00d42478ab2dc55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb15762
aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb15762aff0
0ffd2f6ae87e47b6d06fe6bcb4d57507827bebcd525b0924885b35d6a0ccd2160912b150589442fc
57aee40c552cf3b693e62d5fccba141e5af30bf96ef16cf51692ed2ce0bff00523f52cc7a7c2e3e15de
8790df6a62a811e48fcd71d7f34e53f3d0b4dfe0315619aaea1f99da745abde45e7bbcbbd334679ad
ee6f22d2347556bbb6085a011b3fa9c887f828adcb836c3e0e6aa5be5ed7ff353ccb6d2dc5879eee5
b934d35baae8fa52bad84420027955d80e41a7f8a3427e146a55b8ab2a997e5a5cfe6c79ef487b8b
9f3fdc699aa58a590beb79346d2e5466beb182f91e368d88e252702868548c5598cfe4bfcd316f373
fcce765e0d50742d3fa713b7518aa7ff95829f965e4c1d69a1e9a2bf2b48f1565b8abb15406b7ab5a
e81a36a3aedf07365a5dacd7b72221ca4315b46d23f1048a9a29a0ae2ac77f2ebf353c85f9afa28d7
7c89ad41aadaa85facc28785cdbbb0a849e16a3c6dfeb0dff0066b8ab31c55d8abb15762aec55d8a
bb15762aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55a66e2a5a85a9d87538ab7
8abb15762aec55d8abb15762aec55d8abb157ffd3f7f62a915eb7fcedda3a577fa8ea2d4f949683f8e
2aa3e7bf315cf95bca7a96b5611433ea90c7e9e9b6f752adbc125e4cc23852491ca8552ec391afd9
c55e57e64d4bc8bacdbc3ade8be576d5efbcc43cbdab6a1731a07826b7d56e56d6308e2e610b3ba
c6d1f2514f8144ff00bbc554ac358fcabb436da8d8796ae1f4eb54bab9411c6619ac23b7d3124b947
53724cc696ca851451658b97c4cab232ac9348f37791bc9325d69ba5797353d3efa67d3a1934ff4d
5ee256716da6dad04970c38a078220fc8253f69b83d1565de5ef3ae9de70b3be6d3adae60faa2cf1
5d2dd2223453c171716b242c15da8eaf6ec69d3832357e2c5521d0757d47cbff909a6ebba45a7d7f
56d33ca70ded8d97177f5ee2df4e12471f18fe23c9942d17e2f0c55f22ffd0e7ffce510d8fe4fad69ff00
56ad67bffb3c556ffd0e9ffce4f57ff250a787fc72f58ebff078aa55e68ff9cbff00f9c95d63cb7ac693a8fe
54ad9e9b7f65736b7775fa2f575f4a09e16477e4efc471562d56db157c6be55f3879a3c8dac43aff00
94357b9d1b5883fbbbbb390c4f43d55a9b329eeac0a9c55faa9ff38a1f9cff009b5f9b5e5cf5ff0030bc
a1259d95bc63eade715e3696fa83751c6d5c2b1343bcb0d61ff53a62afa3f1578dfe64eb5a8f97ff00
33fcb3a96997d1da8162b6da95b491fadf59b4bcd674fb52a3e2050a895dd5c2b35578f4e58ab0f7f
ce6f3a04d2e7b3d52c6f238ee21faec22d90c97915d5fe936ea8ac92d21223d425a7db65312f3269
262a961f3b5d5b6befe738f514d4b5178daf07a6be8c70b49a303346631caa2d8d5a40579feee8ff1
8c559f7953ce9e7ebb5f335eddeaba6f984796b444b9b6b0d22d9b86a379324f2c32acfcaa43ac0ab
c638f83348dc0f10b8aa4cdf9ade6b8c69a0eb36b3437f35ac76776b6aaa2e9e7b9d1ccd122d4fc70
c77b731b05355f4433fc71cb8aa54ff9a3f98fa7e8d04f67af596b5716da5db5cde5b359c6b7949ac6
7b99eee4f4e4a71b79adfd17558957f784337a8062aad69f9a7e70966f31ea835f8ee2d2d498b4db
58a0b65f56d20d7754b56b9b6595944d27d5ede01c038130feebf7af1d55641f9d3e6dba3a779afcb
abab41a67d5344fae4761346c27bd8ee164ff00498655746558258d55a9b7557a1922c5524d4bf3a
fcc9a537d446b1a6cf7f650eb905dcf2db88a0926d3cea42d67204a2a1cd8a2948df8af36e4dc9e2c
555e5fce2d7ec3cc77de55bcd76c658e39a3d3e7f311b316d0e9d3c7c51a79a0794968e5792240e
5d63e52c7e9b71dd955f79f9a9e6bd2afefec9b5ed35eead27d4ef3d0bf81a232c16c5556d2048873
2d123a5c518faa5245690fa5c9b155de73d4ae35af2c7e536abe62bdd167d5f58b992f643aa33586
94eb73a25e5c7a6eaaf237046310152dc9d11b66a62af67f294b6f3795f4692d191ed8d95bfa4f096
688a88d403197f88a1fd827aad3154e715762aec55d8abb15762aec55d8abb15762aec55d8abb15
762aec55d8abb157ffd4f7f62ac57ccf75a9e97ace93abd86877bae47141796d345a735aac91999ad
dd0b0ba9e0041f4d87c24e2ac7f58d6351d6aeb49bcbcf21f9948d22e5af21b649346f46491a09201
eb235f90e1448c547ecbd1bb62ac4b49f29dae89a75ce9da7f94fce8904e606814dc68b5b57b4d42
5d4e1307fa580bc2799c853c9387c1c78818aa1a5f2f699aa7d7f4fb7f26f9cedb8d2daea3b6bad1a2
f47d5b06b690026f4f2f5e29bd496bceb2d1fe16c55112f95619f5d7f31b794fcf097f25e41a84908bd
d1cdbbcf6af6b22d6237c54067b489d80a6fcbeca9e38aa7de5ad67ccba643ad5ddefe5bead06b1af
5dcb7b7ff51934b680b8892de2de4d4158b18e242ff0a8e65bfd62ab38f20e9b7da3791bcb3a46a71
7a1a8d8695656b7707257e13436e88ebc949534604541a62ac8b15762a9279c749bad7fca3afe85
64c897baa69b79656cd292b1896e607890b10090016de83157cd7f91dff3831e40fcb892dbcc1e7b
78fce3e6d88075867887e89b6936358e0704caca7a3cbf31121c55f56a22468b1c6a123401555450
00360001d062abb1568a29352a09f123156b821eaa36e9b62aee09b1e22a2a46dd09ebf7e2ae54
45fb2a06c06c29b0e98ab9638d68154000922800a16dc9fa6b8aa5565e5cb1b0d7754d7e29256ba
d5a3b78ae219195a145b55655f4d7882bcb912ff17c47154d0c513001914814a0201fb26a3ee38ab
6f1c727db456da9f100763bd37f962ab4c1015e062429fcbc453c7a62ad986135ac6a6bb1d874dbfa
0c55c61898d5a3526a4d4807723893f76d8aac96d2d66458e682391176557456007b023db15550
0280aa00502800d8003156f15762aec55d8abb15762ae269b9c55d8abb15762aec55d8abb15762
aec55d8abb157fffd5f7f62aec55d8ab4edc159a84f104d14549a780c5587f967cc3a45feb7aa7d4e7
32bea9347716c81589f4e0b2b6590b8a7c1c5995087a1f53e0fb55c5598e2aec55d8abb15762aec5
5d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8
abb15698d0120569d875c55bc55d8abb15762aec55d8abb15762aec55d8abfffd6f7f62ac0bf357cc

baf796749d2e5f2fcf05add5eea0b6d3cf7301ba0b00b79a66e28248be2263001a9ff00518ed8abcd
9ff313f32e3515d7b4f9392ed22e9440e4054fc3f5b6dbe16fdafda5fb5f0faaaae6fcc3fccaa701ae69
e25037074a3d76f0bcef46a53fc9ff0027d45521d1f55f35f9775ad635bd3f51d3a1d4f5b912e75797f
46b382f12040b1037842292aee552bca472fbb37ef1564b279fbf32515641aee9de952b21fd14796c
372297876d9bf0ff0064aad4fcc1fcc64f8ee35cd3f837d90ba5127a577a5e127a1edfcbedc957ad79
0759d4b5ff002a58ea9abbc526a3235c453c96e862898dbdc49086542f252a101a736f9e2ac97157
62aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb15762a
ec55c77040343e38abb15762aec55d8abb15762aec55d8abb15762aec55d8abfffd7f5f795ff00306
e7cc7e69d57cbe174e88e95a8df584d6a2e9dafcc164b1d2e3d2f4e9c59a5452396dcabc9b1541fe
74b05d2b40a9a13ab0e3bd3fe3caeaa6b51d06ffb5fea3fd8655e5041792408418ca90ec4fecbd284
1a1e951f77ed56972aaa2344d6bf562f442bc51eb53b007f6b9540e5e0df67e5ebaa860ca4c11cee
6347fee941e8db1dd8073d5bb97fb3fb5feef551572dcd5242c567a158d41217751bd016e80fbffb3ff
772ad59a92dc849599e9ea2b9af500f70694a8ee7fd97fbb557b57e53055f2169c10d57d6bea126bf
f1fb3f7a9fd67fd66eb8ab35c55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb157
62aec55d8abb15762ad1e5b712295debe18ab78abb15762aec55d8abb15762aec55d8abb15762a
ec55d8abb15762afffd0f6f796bcab6fe5b9758963b86ba6d5f52b9d54995115a16bb09ce342a012a
380ebbe2ac77f35343bef31ff0085f49d3af23b0ba975591d6e668de74509a75e120c692445abe05b
89e8cacbb62ac525fc96f37bf231f9a34f566ea4e993b5771610000026060f002220574d464301000
0000000010000000000000010000000002000001076010010f60100277e57c6bbf1ff0087ff007f4b
cd55dff2a67ce05086f33e9bca9407f45ce540dff64dfd0fecf5ebf1d7fbd9792aa7ff002a4bcd8ae1e3f
3369d55fb1cf4c9de87720926fbe2fd9fb55afc55fef64e4aaa1fc97f3616aff89b4fdab4274cb86604fb
b5f9f6a83f6be2aff792725567fca94f36a3738bccda70352d53a5ce4d4d7727ebdbf6ff005a8797db7
e4abd07f2d34fb8d2bc9f6ba65d4c9717169737f149344ad1a3b2df4e2a15d9d857fca663e2d8ab2d
c55d8aa59e64d653cb9e5dd5fcc3242d711e9365737ef0210ad22dac4d29404ec09e34a9c5582fe5
27e7efe59fe7469c971e4ed6236d584624bcd0ae888751b734ab06898d5941dbd48f947fe562af4d
c55d8ab5515e35f8bad3bd3156f156aa2b4aefe18ab78abb15762aec55d8abb15762aec55d8abb1
5762aec55d8abb15762aec55d8abb15762ad115db7eb5dbdb156f15762aec55d8abb15762aec55f
ffd1f7f62ac6bcc847e9ef280a0e47529e9e3b69b795a62a94f9c7cf6de5dd7ed746fadd85807b1975
4326a66402e23b79e38e68a1f4f7e691b9734590fd8f838f26c55e7ba5fe77df5eead3497ba9e9b67
a34616c9662a8d6e269aeada35bb91fd7aaa2acfc7873ead1f3e05a8154f3f2f3cddafdc79d351d1b
52bbb4bfd37549efae217b6699fd19ac2cf492e20792461e848d76ec89c54a75e4dcb15605e4ed7f
54bcbab23a96acf3699168f2de6a3717bac5d5ab4089e62bc81a78f8961248b1204018aec889bfd9
c55f4f035df1560b3dd6bb67f96de64bdf2bc46e3ccd6e9aecba340a8252f7c97174d0284340d5902
8e27ae2af8c4fe68ffcfc38004f94a6dffed516c7f51c556ffcad4ff9f86ffd4a33ff00dc1adffae2a967997f
333fe73e2ebcb7ac5b6bde559e2d0a6b2b98f5394e916e9c2d1e261337206a2885b7c55f15e91a9
eaba2ea76baae87773d86af692092cef2d2468a78e41d0a3a10c0fcb157eb1ffce2a79a3fe723fcc7a
0093f3a34586df45102b693ac5e7fa26b3707e1e3eb5aa0a15e353ea3885cff002c9cb9055f4762af
0cfcc2f325f7947f367f4dd8dc08a33a2e9d6b7b07d55aefd68a5bbbfe810872d11a3848cf27fb3d0e
2a905bfe7279d9aced2fed2ea1d4e482530b69cb68049a87ab792dbc24ba05e04a18cafa6b42dc7
72adbaa94e9de6f1a5eb5abf9a34cd4a3bcbeb91793b6b0f6e608e282f63f2ea4f394489814b72d29
66f4dffba769037193157a8681e6ff00384fa079af57bbbfb5d5754d06ce348f4dd3ece4446bafa8437
46602422670ecedc1382557ece2ac5ffe56779c7f4c369916a2975a5dd944f2eea71da2b1d4e212b
c72cd198d78fc1ea22b15010346a7f6c8c5527f2e7e6e79be6b5ba99bcc76d7f6ba35bd8b6a01acd
7eb09692697a5df4b7d332114065b8b885be045e3f12fc51b62a98597e6a79a845f5bb9d5ccb35d5
ce9d1c3642d23490da4935ec4f2dbc4ea864690c29ca3e5cdd164fabfef78295590fe6079b249f59d
63cb775acdbe9434db9d21e0b1b9b62c5ede7b9b378f50131641c52e0bc2416f4dbd3f4f690d7156
213fe79ebf016b61e61d3beb296821f566b4e317d685c0459bfbc50e6555936465893895f8d91b8a
a9abfe6f6b76de63bcf2ddc6b96e9025f9d39f5b7b0ac769710b5e4291bc31b123d69a0863f8db933
4bfbae1ebdbe2a96cbf9b7e76d3adf5bb7975bb18f53d1a3d6ef386a56e55ae52d6e350411431c68
bfef2886d19f948b449bf7bf6e36c553dfcc3d3f51d73cc5f969a59bbd2757d5efecf5b7126ab13ad95
cf2b681c32c3049d403f010cd41538abdc2ceda3b3b482ce10562b78d228d492c42c6a140ab549d
87538aab62aec55d8abb15762aec55a35db88aefbd76db156f15762aec55d8abb15762aec55d8ab
b15762afffd2f7f62ac47ce134b6fae793a786de4bb91752b802da031891aba65d8a832bc69b75356
f96f8aa2eeb595fac5afd77cbd73f5be4ff0051f5a4d33d4e7c0f3f4b95dd6bc6bcb8fecfb62a958d6bc
bbe83d3cba9f55113f2a49a3fa661f839ff00c7e538ff00775aedf63fc9c551d0eb36bf5b3f57f2f4bf5d
ac95e12697ead689ea74bbe5d3872f6e35ed8aa5c759f2bf286be5d879ff00ba3f79a357ed9fb3fe97
fcf5e9fb5ef8ab22fd33a952bfe1dd43e5ea69ff00f6578aa17c8f234de5f12bc2f6eef7ba9168252864
426fe7d9bd3675affaacc3df156458abb1563de7e82dae7c8be67b6bdba1636736937f1dc5eb23ca
b044f6d20794a4756608096e2bf137418abe4dff009c5dd13fe70db41d4ad6c7c9de66b4f367e6505
aaeadaddadcd8ccd21aed650df45146840ed1739a9f69f157da78abb15762aec55db7f4c55a14a9a
52bdf1570a536e9da98ab18f2c2795575ef37b68324afac36a309f332cbebf15befa85bfa617d60169
f56f43fbaaa7fb3e58ab276e3b72a7514af8f6c55a7f4e87d4e3c7bf2a53f1c55afdd71fd9e1f453155d
f0d37a52bf8d71569bd3fdba743d69d36ae2ad7ee6a9f66bfeebe9d3db155f8abb15762aec55d8abb

743

15762aec55d8abb15762aec55d8abb15762aec55d8abb157ffd9000000084001082400000018000
0000210c0db01000000030000000000000000000000000000001b4000004000000034000000010
0000002000000000000bf000000bf0000af4300008f43030000000000008000000080fe7fe943000
0008000000080ff7fbe432100000008000000620000000c00000001000000150000000c00000004
000000150000000c0000000400000051000000b88d01000000000000000000d20100007c010000
000000000000000000000000000000005e0100001e01000050000000280400007804000040890
100000000002000cc00d30100007d010000280000005e0100001e0100000100080000000000000
000000000000000000000000100000000000000000000ffffff00fdfdfd00cfcfcf00626262006d6d6d0
06868680069696900676767006565650066666600d4d4d400fbfbfb00fefefe00f9f9f900b9b9b9008
b8b8b00d7d7d700dddddd00dedede00dbdbdb00dadada00d8d8d800d9d9d90080808000bebebe
00fcfcfc00b1b1b100a7a7a7009e9e9e00b5b5b500fafafa00aaaaaa009b9b9b00b4b4b400a6a6a60
093939300b7b7b700ababab00bcbcbc00a8a8a8009d9d9d00bababa00b8b8b8009a9a9a0094949
400f7f7f70092929200b6b6b60095959500f4f4f400e2e2e200e4e4e400e3e3e300e0e0e000e1e1e
100e6e6e600e9e9e900f8f8f800797979007e7e7e007f7f7f007d7d7d007c7c7c007b7b7b00787878
00777777007676760075757500707070006363630096969600a5a5a50090909000b0b0b000d5d
5d500878787008d8d8d00a3a3a300dfdfdf0082828200a4a4a400a0a0a00083838300afafaf00888
88800cccccc00bfbfbf008989890057575700a9a9a900adadad00b3b3b300aeaeae00acacac00f5f5
f500f6f6f600bbbbbb008a8a8a0046464600c6c6c600ebebeb00e7e7e700e5e5e500ededed00c2c2
c20045454500010101004c4c4c008c8c8c00d1d1d100727272004f4f4f00efefef00f2f2f2008e8e8e0
0383838004a4a4a001c1c1c006c6c6c0091919100f1f1f100c3c3c300c4c4c400d2d2d2005151510
00606060039393900545454005f5f5f00e8e8e80060606000c1c1c1002b2b2b0099999900c0c0c00
0c5c5c5009c9c9c00cbcbcb00bdbdbd00444444000303030085858500eeeeee009f9f9f00c9c9c90
0f3f3f300c7c7c700a1a1a100c8c8c8002c2c2c0073737300f0f0f0004d4d4d00cacaca0081818100e
aeaea00b2b2b200d6d6d6002525250086868600979797004e4e4e00595959008f8f8f0071717100
181818002d2d2d0036363600292929002a2a2a003131310026262600080808000202020005050
5000e0e0e00585858007a7a7a00cecece00484848006a6a6a0034343400646464006e6e6e00989
898000a0a0a007474740084848400505050003a3a3a00a2a2a200cdcdcd005e5e5e00555555003
535350061616100040404001b1b1b006b6b6b006f6f6f0032323200d3d3d3004949490052525200
56565600303030005c5c5c00ececec0023232300434343005b5b5b005d5d5d005a5a5a00373737
001515150009090900131313003d3d3d00dcdcdc00474747001a1a1a0007070700222222004b4b
4b003e3e3e003b3b3b003f3f3f0014141400212121001616160033333300d0d0d000282828003c3
c3c00202020001f1f1f0053535300414141002f2f2f002e2e2e000c0c0c000b0b0b00242424004242
420040404000191919000f0f0f00101010001111110012121200171717000d0d0d001e1e1e00272
727001d1d1d0001010101010101010c01010198075289894e9021bf941d1d9489314790bf89474e
1d902989521dbf891d909090891d29291d905252901d298e4501010e0201010101010101010101
01010101010101010d1a0201013a011a010e01021a0d0d0101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
010d0d01013a1f011a1a0101010101010101010101010d0d01010101010d0d0d0d0101010d0101
01010d01020102011a010101010d0201010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
010101010101010100000101010101010101010c1a0138180c01010102010d0d0102010d010201
0101010201020d0d02020202011a01020d0d0d02020d01010d020260890e0d01010d0d0101010
10101010101010101010101010101010c010d2e9a9802011a01010d01010101010101010101010
101010101010101010101010101010101010101010101010101010101010d0d01010d0d0d0d01
0d0d0d010101010d0201020101010c010101010d0101020d010101010101010101010101010101
0102010d0d010d0101010d0101010d01010d010101010d0101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
0101010101010101010101010000010101010101010101010d011444010101010d010101010d1
a0d0102010c01010d010101010d010d01010d01010101010101010101010101688901010d01010
1010101010101010101010101010101010c011a011f010170a7211a016001010c0101010101010
10101010101010101010101010101010101010101010101010101010101010101010d0d01010d
0d0d0d010d0d0d01010101011a0102011a0101010101010d0101020d010101010101010101010
1010101010102010d0d010d0101010d0101010d01010d010101010d0101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
101010101010101010101010101010101000001010101010101011a01020c67181a020c010d0e0
101020201010d1a0101010d01020d1a0c0102011a0d0101011a0d0d01010d0d0d0d0101682c0d0
10201010d0101010101010101010101010101010101011a010d0c01d5000009ca0101020101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
010101010101010101010101010d0d0d68ca340101020101010101010101010101010d0d010101

01010d0d0d0d0101010d010101010d01020102011a010101010d0201010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010000010101010101010102010201364401010
11f010d011a010d011f010d1f0c010c011a0c010101010d010d011a011a01010101010101010101
68b91a010d01010d01010101010101010101010101010101010c011f010102806bc500ad771701
0e01010101010101010101010101010101010101010101010101010101010101010d010101010
d0101010d020d01010101020d0101010d0d0d02cae6641a0c01010101010101020c0101010d010
10101010101010101010101011a010101011a01010101011f01011a0d010101020201010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
010101010101010101010101010101010101010101010100000101010101010101010d0d0d381
80e010d0101019190795f5e8a19342379564e71172a6854350d2e275d131e5b2b5e6e0d0d01010
1010d0d8fa11a010d0d010101010101010101010101010101010101010c0102010201d300ae6ba
e00e48e3701010101010101010101010101010101010101010101010101010101010101010d01
01010d0d0d01011a1f0c0201010d1f1a0d0101010101015ff09e0101010c01010d02013a5f0d010d
02021a0e92715f2e0c02020c2e5f011f0201011a0e020d0d0d0d320c0c32920c010c72720e010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
101010101010101010101010101010101010101010101010100000101010101010101011a010d
353f020101010216c9c85b3bb7c759518303b6b7781b041f709e0c0d62a21f803c394e7702020d0
10101010171b91a02010201011a01010101020d01010101010101010101010101010102d40000
00ae6b007edd5e010d01010201020101010101010101010c92bb262f735cb5552c2f891e4568083
ca422d5ca93634a67c2540d02019159730114c2244a9c7d2a8580a40c11f4622367591977a5330d
0238e7b565cb4d3dc794e3a0d4cd080183d3405a22ac2b01772d2adf4de8e7210201716aed680d
01010102010201010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101000001010101010101010102
010165530202010c0194c801132c5a5c622123308e326657431ab19e010149051f464e011a6902
020d010101010171890d1a0d012e5042413b429745c84505050505050505050505b8bba505a5d1
aeae00aec58d6bae8dcc950d0102010d010101010101010101010e7dbf4818a247b1264d4a52c7
4d4230e27ccc8f6ca15a22c8660d0139cdc0281d6273a05357cd17e917317aa1a03cb52540935e0
f6f0101b718300f5834227804bc5094584860a2e8cd1ba99d2056d369ee272788c13301020c4624
0101020c1a0101020d010101010101010101010101010101010101010101010101010101010101
010101010101010101010101010101010101011a1a02010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101000001010101010101010
10d010d8f8e1f021a010dbf1c011f1f7ac83e5e901b4e011f9a0701d537013a31810106292e882e02
0d0d010101010172900e01010271fe0000aeae6b6bae8d0000000000000000006b000000008d00
6b0000000000aeae0000afb195012e0101010101010101011f0101c18b514c915e427a5a8b4a3bb
57b0d049cb89e770d0c5fbc65020c15c8026405c7229abf8b3d1a8582c048528722730f890284d65
7020c0833011a8e9c0f1dca90627a2851024889bc47c71f0112d393040c0c92d5670c0101c78601
3a0d0101020d01010201010101010101010101010101010101010101010101010101010101010
1010101010101010101010101010101010101010d0d010d0c0c0d0101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
010101010101010101010101010101010101010101010101010101000001010101010101011a0
1011a68503a01011a010fa40e491e199d42512960280ea12ac182bd170101730a0105995077790
d0d01010101010165291f01011f01850000000000000000000000000000000000c56b8daeae00d8
000000c5c5ae6b0000008d00f67c0201010101010101010101010c817a5e2f668bb1614e5757a54
4870181d005120a78c4955832010e13530d2b0a405e7b1d8b3b019f1f1e735e195458221d01d49d
8f0d01058f7235108f8b78919abb8b289401847abb1b430113035933702b6f878366010d3a06b72
655790101010c010d0d01010101010101010101010101010101010101010101010101010101010
1010101010101010101010101010101010101010101010d3a3a1a010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010000010101010101010102
01010271533a0101010d1a4e524d38524e61a0d4392b213e4be1bb3d0e0d0186461fb5b979571a
0101010101010101791d010202013aacaeaeaeae000000000000000000000000ae0000ae00ae00
00ae6b000000006b6bae006bd20f60010e010101010101010101021acf18455b8652a5031842b24
97a1d1ebd65c7d01d5b751ecf50190172538a5828045494891b839ec6b975224c1b2f9b4ab28262

745

9d2801012c226d86a453775ea4a54d6906cd48b72b3cdb43840a26da4b4887e02b7fbb251a01b7
e03f063a011f010101020101010101010101010101010101010101010101010101010101010101
0101010101010101010101010101010101010101010d0101010c1a010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010100000101010101010101
0101010192550c0d012e016001980d1a3a5f0125a10c018f020b465f02011a012f8301082801d0c0
010101010101010179a10e1a01013a5309090a0808060607060606060606060607b70a09b7050
7fd006b00006b00006b6b745a0d2e01010101010101010101010101014644100e3262520c935a5
38f011b44ed79a571718e2b0d6420190202331020922cdb5b4b1b7f8a2a5a31921c37267ba15938
165037011a01bf890e781b73380c481d1a11872a12100f01722c03568c61652c616087547b02010
89001d09c011f0d01010e0c0101010101010101010101010101010101010101010101010101010
101010101010101010101010101010101010101010d020d010102010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101000001010101010101
010101010d98a00c0d010d0101011f0101011f011a0d0101010d22c71f0101012ebcc166093e227
32901010101010101015f1d02010d1f0101010d0d0d0d0d020201010101010101011a1a0101010
12ed30000008dae00c5f3243a01010c013a010101010101010101011a02b1220101010101011a0
101010c0c398313c1711f01010201013a01010d0101011f010c0168560d0d0c1a01021f0101724f0
10e01020d1a0101010c4436010c013201010c01010102010d01010201db3a0101010d01013a012
e80503819282e0d01010101010101010101010101010101010101010101010101010101010101
0101010101010101010101010101010101010101010101010101010d0d0101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101000001010101010
101010d0d011a823d1f0101010201011a011a0d010202011a0d0d02799c1a010c0101728f602e39
9c331f010101010101010179290d010c010e0101010101010101010101010101010101011a0101
010e0159006b6b0000ad778201011a0c011a010101010101010101010d016063220d010d02012e
0c01021a0d015dcf8ab168010d010d021f010d0201020102011a0d0d01011f01010d0c0101010d0
101010d010201010e011f92443501010d011a0d010d1a1a010e01021f010d0d01013a010102010
11a2e3e0958b825010d01010d0101010101010101010101010101010101010101010101010101
0101010101010101010101010101010101010101010101010d010d0d0d01010d0101010101010
1010101010101010101010101010101010101010101010
Now suppose that while executing in method F, the real-time thread is interrupted. As the thread is in
an AI-method, the generic AIE is marked as pending and is immediately delivered and an appropriate
handler is sought. The resulting transfer of control is
1. the method F is terminated (without executing any finally clauses);
2. E is an ATC-deferred region but it does not have an AIE handler, consequently the call to
E is terminated (of course, it must have a throws Exception or throws
InterruptedException clause); and any finally clauses are executed;
3. D is an ATC-deferred region and has a handler for the InterruptedException (a
super class of the AIE); the handler executes (along with any finally clause), however, the
AIE remains pending;
4. as soon as control returns to C, the AIE is again delivered and C is terminated (even
though it has a catch clause for InterruptedException no finally clauses are
executed);
5. B is an AI-method so the exception propagates through the method (even though there is
a catch clause for Exception no finally clauses are executed);
6. Finally, control returns to A, which is an ATC-deferred region with an AIE catch clause;
this executes; if A calls clear (or happened) on the current AIE, control will return to the
point after the try block containing the catch AIE clause, and the AIE will have been
handled and be no longer pending. If the handler for the AIE is for a different AIE, the
current AIE will remain pending.
The output resulting from the ATC will, therefore, be the character D followed by the character A.
Now consider the example illustrated in Figure 13.2. This is very similar to the previous example
except now the real-time thread is active in an ATC-deferred method when it is interrupted (this
example assumes there are no finally clauses).
01000900000392b301000000e1bf000000001610000026060f002220574d464301000000000001
008da100000000100000000020000038c4010038e40100010000006c0000000000000000000000
d20100006f01000000000000000000006a400000ab32000020454d460000010038e401000c0000
00010000000000000000000000000000000005000020030000c40100001a010000000000000000
000000000000e3e306006e4e0400460000002c00000020000000454d462b014001001c00000010

0000000210c0db01000000600000006000000046000000dc620000d0620000454d462b22400400
0c000000000000001e4009000c00000000000000244001000c0000000000000030400200100000
00040000000000803f214007000c0000000000000008400005286200001c6200000210c0db0100
00000000000000000000000000000000000001000000ffd8ffe000104a464946000102010048004
80000ffed0e6a50686f746f73686f7020332e30003842494d03ed000000000010004800000001000
100480000000100013842494d040d000000000004000000783842494d03f300000000000800000
000000000003842494d040a00000000000100003842494d271000000000000a00010000000000
0000013842494d03f5000000000048002f66660001006c66660006000000000001002f666600010
0a1999a0006000000000001003200000001005a00000006000000000001003500000001002d00
0000060000000000013842494d03f80000000000700000ffffffffffffffffffffffffffffffffffffffffffff03e8000000
00ffffffffffffffffffffffffffffffffffffffffffff03e800000000ffffffffffffffffffffffffffffffffffffffffffff03e800000000ffffffffffffffff
ffffffffffffffffffffffffffff03e800003842494d04080000000000100000000100000240000002400000000
03842494d0414000000000004000000023842494d040c000000000cd9000000010000007000000
058000001500000738000000cbd00180001ffd8ffe000104a46494600010201004800480000ffee00
0e41646f626500648000000001ffdb0084000c08080809080c09090c110b0a0b11150f0c0c0f1518
131315131318110c0c0c0c0c0c110c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0
c0c010d0b0b0d0e0d100e0e10140e0e0e14140e0e0e0e14110c0c0c0c0c11110c0c0c0c0c0c110c
0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0cffc000110800580070030122000
21101031101ffdd00040007ffc4013f0000010501010101010100000000000000030001020405060
708090a0b0100010501010101010100000000000000010002030405060708090a0b1000010401
030204020507060805030c33010002110304211231054151611322718132061491a1b142232415
52c16233347282d14307259253f0e1f163733516a2b283264493546445c2a3743617d255e265f2b
384c3d375e3f3462794a485b495c4d4e4f4a5b5c5d5e5f55666768696a6b6c6d6e6f637475767778
797a7b7c7d7e7f7110002020102040403040506070706053501000211032131120441516171221
30532819114a1b14223c152d1f0332462e1728292435315637334f1250616a2b283072635c2d244
9354a317644555367465e2f2b384c3d375e3f34694a485b495c4d4e4f4a5b5c5d5e5f55666768696
a6b6c6d6e6f62737475767778797a7b7c7ffda000c03010002110311003f00f46b5f8d94fa9efc7390
c02d686bab0482c7b2b718b63e96dfeda42ac1009fb0b5a0724b2b007c7dca7d41b88e686e55b5d
6c7b4b76d87687096bfdbefaddedd8b34e3f407becc67bb18b031af2493aeef5aafa7eafd2f4fd4aff7f
d3b7fd1d8929bedcce9f82db1d90fab06b7d80305ae65609d8c77b7ddb1ded55b27eb7fd58c5ba8a
afea58ed3925cdade2c6b980b40745b6b0b99473f4aed8c473d37a3f51a037269c6ea1435d35b6c
632e630b5adabd9ea7abeedad54f27ea47d53c9ba8b6ce978cdfb338b9b5d7532b63898fe7d9535
9ebb5bb7f9bb7f45fc8494ec59958d5b6b7d96b1acb486d6e2400e241b06d77f51a86cea5d3ec73d
acc9ac9ae0bfdc20070f51ae9fdd730a23b1b1df53697d4c754c80dacb416881b5bb5bf47e8a88c1c
2682d6e3d4011b480c6c103f378494a6e6e1b9e2b6df597b8968687b49246ae686cfe6a61d4304b
4386455044fd36f979ff29266060b1c5ccc7ac38992768e480c31fd96a470304924e354492493b1bc
91b5c78fce6a4a495e4516b8b2ab1af735ad790d20fb5f3e9bf4fcd7ec76d44516575b3e834374034
00683e88feca924a524924929af4bf22eafd40e63649001693c12dfdf6a563b2aa0d717d6e6ef6348
0c20c39cd67d2f51dfbca9e453663becbad38f5618263739cd20bbe8ef7fd16eec877bbfe33f91fa6a
7867a8e46c153fa7df7565a6ef4df69dba377398df77b9b6b6d757bffe0d253fffd0eeba9e365f5218c
e6b1943da2d0e65c4831bebad85a5ac7ff39b77acb674eca75ada9acd5cff004da5f55cd6076c37ee
73df46df4f63367a9f43d7fd0ffa25d0f53b7a7b031b9af2c0f9da00719da5967e635df45e2b592d1f57
45a59367a0cadad619b4892e73dcc1cdbeddb57d2ffd28929b1466e07d5dc223ac6551882cb8863
cb8869258d76d05ed67bb6855337fc64fd4fc3b31daecf65ccc8739aeb68fd236ada376ec86b3f4ad
63fe83365762dde9cec476306e238baaacfa6370208d81ac0dfd206bbdad0d51cde93d3b3efc6bf36
86e45984f36636f92d6bc8dbea7a7fcdb9edfccdedfd1fd3ad2533b3a8e0d545392fbd831f20b45374
cb1db9a6c638583d9b1ec6fb5e84ceb7d26c2f0dcaacfa4039e7769b5c3735dbbe8b9bfd5571ec65
821ed0e1cc3848fc545b450d9db5b5b220c340d12535ebeafd2ecb0575e554e7925a1a1c26402ff0
0fa96a6fdb5d2b6ee39558e742e8220073a5a7dded6bdae565b450c9d95b5bb8ee30d024c066e3f
d86b589c514898ada279d024a458f9d8b92f7574582c7318cb0c4c6cb41752f0efa2eded6ab09835
a0920004f309d25292492494f2f7f59caf56f61cb686b2db99b08ac80d658fadadf737f71a8789d5f21
b918d4d792c15badaeaf49ada80da5cdaf637d368fcdfa3b56ee674e75b732cc7145625c6ef529161
7923dbee967e720d5d2f39975761b31406b985c198e1a61bf4fd27ef76c759fcaf51253fffd1ef7a9e1
e466b69758ff46ca996b9cc633d4244b36b59b6c6eefa3fdbff0083596706c15978664bbdec6ed18c
5a61e76fa81aeb7e8d4d3becff00d58ba6b9d507b439ae73c831b2663dbbb56ff6501a5c726c9aae
14ec66c76e305d367a8dd9bf7376b7d3f724a685996ffabf89b7ec997d50d971118548739b2c6bb7
58d7dcdf67b76efdeb1fa97f8c5bf0b270abfd81d48332ac35965b53596ba0077ea95d76dff68b1bfe
87f45ff1abb0a7643b602d83ee0e99981fbdfc95381331a8ee929ad7665b5e3d57b71adb0d85bba9
6edf5181c377bdbbb67b3e8bff0048835753ca79b27a75ec0c687364b25d3f499fce7d26bbf94b412
494d0aba964596169c0c863438b4bddb008dbea6f1fa4f77ee7f5ff00b697ed2cae3ec17ee1a69b22
603b476f1edfcdfebabe924a418d75d6c9b6975101a4071049dcd0e77d096fb1dfa3fa5f99fe8fd347
492494a492492535dae61ddbee870738448110481ff4533dcc0d965e4b8440dc0cea9b271b32d7c
d394686104168635c6488ddbddfbaa0713a87a9b9b9a5ac25a4b3d269e3e9b5a4fd1f51a929ffd2f4

747

868cc639a6e7b5f6359613b5a4fb7730b1ad6873373b6a03fab6436a758cc5becdb10cf41cd2e978
a4ed971fa3bbd6ff008957723d33630398f7be1c46c241025bbb8733f90abb43fed0f9a6ff004b6336
3bd4d0ba6cf506df5b7fb5be9fd2494c33baa37a630d97519195ea59b630e8b2e23d8d3b9f5d3eab
98dfe52c2ea9fe3168e9f918558e95d42c665d8ea8b5f8d6d364c0f4fecd5dec63729ee77b7d1659b
d7558fb36b835ae610ef707993303bee7fe6a93aaadcf6d8e634bd93b1e4025bbbe96d77e6ee4948
6ccfa6bc6ab25ccb7d3b76c0f4ddbda1c370f569dbeb33f96df4f7b106beb38d63ac02abc0ada1db8
d2f820eefa1eddfb99b7dfed57d2494d1a7ac61dcf2cac5b2d76c74d36000edf575967ee7fe8bff489
8758c58d6bbc3872df46c2418dfb7dac2dfa3ff90fe715f4c78f1f2494868cb6def2d6b2c680d63c39e
dda0878ddb75f76f6fe7b5e8eb3f1afeb0e2ffb462d6c05c1acdaf986ed76fb1c7ddea7e99add9fcd3f
d27a89caeb7b006e0d65e03771f586d996fa9b46dfa3b37fa6f4949b2ba6d793955e4badb2b7575d
95015bb6822c10e76e03d46d8cff0006f63d087478b1cf6e664b41758f15b5ed0c06c77aba3433f31
df4127e575a04b598159d603cde223693bf6fa63f3fdbb12195d6a63ec35b81121deb6d035fa05a58
e77d1fcffcff00f8249488f40df6d77599f96f7d45ce6cbdb00b9a18fda0d676fd1f67bbf46883a3bf787
9ea19660cc6f6ebad6edaefd1ff00c17e67fa4b14465f5d7c460d756a0cbad0f912e0e67b457b1ded
6fbff4a9dd99d6f73b674e6401203af0249edb831db7f39253ffd3f4770b71b697de0fa55dafb2eb1a4
fb7735fc31ccfe6d8a853d7326eba1b6e18c607dd70b3769c4b1ad7ed77bdd57e7fefad4c9755eb57
59adf658e6bcb7610df6b4b37ee25f5fe73eb4018ffa670386e146c6868dcd9dd2f2ff0067a9b5bfe0f
dfb92530bfac61f4fa3ed199639f5dcf02b7e3d16da0cd6cb1becc66e53fe87e7ac7ea9fe323a174eb
7103ebc97d19361aecb4e3df57a7c6d7eccaa29f5dbeefd236977adff000562e931456d6bab656ea
b6100b5c64fd16edd43acfcd52b7171aebaabeda9965d8e5c68b1cd05cc2e1b1eea9c7e839ecf67b
52523b73e8ab11998f160a5fb0ff36fde0591b3d4c72df5ebfa5fa46beadf57f8442afac61d85fb45db5
8d73cb8d36090d25af81b37fb5cdfa3b7f49fe0b7abc924a6933abe158f0c69b25c011355a043b897
3abdad4cdeb38446a2d6bb5969a6c9d03ddd985bf46a7ffad95abc924a418f94cc82e0c6bc35a1a4
39edda0ee9fa2d77e93dbb7f3988e9249294924924a524924929ffd4f42b31db8b978fe897ed6579
2e21b0e738bdd55ce68f53f3b77d0517e7e686b5d5e2653b73d8d7077a4d21af3efb3877f35ed5f35
24929fa5b3733a8618b1f8386fea969b181d536caaa7358584fabbef3554ef7336ecfa7ef583d5beb6
7d6fc37e1fa5f566c3ebdde93aa75f558e7cb5ce6fa6fc47ddf67d9b37d975d4fa1e92f0749253f5059
9594cc2af20623dd738566cc50e66f66edbeab77077a363e8ddf9b66c7fefa0d5d4339e4eee9f6b00
6976af6492246cfa5b7dfecd9eefe6ff72cfd12f9952494fd374f51cbb2d731dd3eead8d23dee2cd646
e3a6ff00ccf6ff0023fe1144752cf8d7a6dbbf6c901f591305fb5ae2e6f86cfa3fce7fdb8be6649253f526
3dd7db26da7d110d2d9702492373dba7fa3fa28cbe5549253f5524be5549253f5524be5549253fffd
9003842494d04060000000000070005000000010100ffee000e41646f626500644000000001ffdb0
08400040303030303040303040604030406070504040507080606070606080a0809090909080a
0a0c0c0c0c0c0a0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c010405050807080f0a0a0f140
e0e0e14140e0e0e0e14110c0c0c0c0c11110c0c0c0c0c0c110c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0
c0c0c0c0c0c0c0c0c0c0c0c0cffc00011080114015e03011100021101031101ffdd0004002cffc401a
20000000701010101010000000000000000040503020601000708090a0b010002020301010101
0100000000000000010002030405060708090a0b1000020103030204020607030402060273010
203110400052112314151061361227181143291a10715b14223c152d1e1331662f0247282f12543
345392a2b26373c235442793a3b33617546474c3d2e2082683090a181984944546a4b456d35528
1af2e3f3c4d4e4f465758595a5b5c5d5e5f566768696a6b6c6d6e6f637475767778797a7b7c7d7e7f
738485868788898a8b8c8d8e8f82939495969798999a9b9c9d9e9f92a3a4a5a6a7a8a9aaabacada
eafa110002020102030505040506040803036d0100021103042112314105511361220671819132
a1b1f014c1d1e1234215526272f1332434438216925325a263b2c20773d235e2448317549308090
a18192636451a2764745537f2a3b3c32829d3e3f38494a4b4c4d4e4f465758595a5b5c5d5e5f5465
666768696a6b6c6d6e6f6475767778797a7b7c7d7e7f738485868788898a8b8c8d8e8f839495969
798999a9b9c9d9e9f92a3a4a5a6a7a8a9aaabacadaeafaffda000c03010002110311003f00f7f62ac
2bcf3a3e91adeafe4dd3f5ab3b7d46c5b54b863677b0a5c42ecba5de104a48196abd46d8aa307e5
97e5b8e9e4ed0c7cb4cb4ffaa58aae5fcb7fcbb5fb3e51d147cb4db41ff32f155e3f2f3c80294f2ae8fb
74ff0071f6bff54f155dfe01f22712bfe17d2789ea3ea16d4dba7fbaf155e3c8de495355f2de940fb58d
b8ff008d3154bbf2dededecf44d46d2d214b7b5835bd6a3860894471a20d467a05550001f2c55986
2aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb15762ae
c55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb157ffd0f7f62ac57ccfff00293792
7db52bbffba55e62acab15762aec55d8abb1562be41ff8e66a9ff6dcd6bfeea53e2acab15762aec55
d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8a
bb15762aec55d8abb15483ced7f7ba67962fef74e98dbde208d629d555ca7a92a21601c3292031a
541c5561f2d6a6483fe29d5453b05b0dff00e9d3155afe57d4dcd7fc57abafb28d3c7ebb338aa89f27
ea676ff196b83e474eff00b22c556ff83753ff00a9cf5dfbf4effb21c55a3e4bd50ffd369af0fa74dffb21c
552ff00d25ac7fcab5fad7e929bf4bd7ea9fa538c3f58afd73eadea53d3f4b9f1ff008af8d7f67157ffd1f
56695e60d797f33feb570f72de4ef324573a669d0c811e186fb46625654e15645b85373c8c9f68c70
f1fb43154efcf9a7fe94d6bc9765f5bb9b2e7aa5c9fac5949e8cc38e9778681a8763df15460f23006bf
e23d74fb7d7cffcd18ab6be4755d8f98b5c6debbdfb7f0518aadb1f2e69ba95aa5e69fe63d52eece52
de9dc43a8bc91b7062ad465a83420838aa95ce95a0d8dbadc5e79a2fe1b796e059c734baa32a9b
a6731885492017e60af0fb5cbe1eb8aadd2ecfcb7ac37a7a4f9a6f2fdc29908b7d51e525158a16f81
8ec187127f9b6c557fe5bc4b6fa26a36e1de45875bd693d4998c92353519f7666dc9f7c55299bf3fbf

242dd8a4df989e5e4704ab29d4ed6a0aec411cf6231543bffce467e43c75e5f98de5fdbc35080fea6
38aa89ff9c95fc825343f98ba157daf6323ef07157c37e4ff00f9ce9f3d7e5f79e35cd335a917cedf977f
a56f7ea1cdc2dec366d72e6236d734f8d026ea9286dbe157418abef2fcabfcf5fcb1fce4b1facf91f5b8
ee6f634125d68f71fe8fa8db8e9fbc818d4807f6d39c7fe5e2af46c558979d7cfda679127d1a4d6c08
b47d4a6b88aef503ea30b55b6b592e79b2471b92b48cf363c5635f8d8f1c5566a3f9a5e44d25a74d
4356113db48d14aa20b876aaa4f2165091b1640b6d33735f82913fc5f0e2a95ea5f9ab6b0799e1d0f
4bb68efac38db3dd6a6d33c31a7afa8a69f2702612927a6cf5255e9b329e34c5536d2ff0033fc8bad
ea56ba4691abadeea37a6616f0410cf257eac23691999632a8a04d19e4e554fa894fb43155493f32
3c9515cb5a3eaa9f581cf8c62395bd458d6e199a32108751f549c725aaf28cafdae355508bf9afe48e
7c27bd96dd5a69218e596d6e044e217863697d411955883dc44bea3955f8f1575e7e6bf922c6e6c
6de7be70b7f1497497020944315bc3666f8c92bb28e2be90afcfe1eb5c553eb9f33691676f6b73732
48897848813d099a5f8080c5a3542caaa48e4cc388c558b7973f373cb5ab690b79aa4bfa37518885
d42ccc770eb01769555fd46890344de8bd251f07c256bcb154cc7e65f92f8472bea2d0db4b24b047
733dbdc4101920e7cc09248d576f4dc56bd51bc31553bbfcd0f27e9ed76751b99aca0b28639ee2e2
e6da68631eb49246918e680b3b7a4ec140f897e25c5530d07cefe59f3325ecda25e35cdae9ea8d7
377e84f15b80f189471964454721086608cdc432f2eb8aa9f91bce16fe75d1a4d52287eab7105d4f6
775665c3bc2f13d63e440143242d14c07f2c8b8ab25c55d8abb15762aec55d8abb15762aec55d8a
b17fcc534f26ea67c3d0f6ff77c78ab28c55d8abb15762aec55e75c07fcab4e14dbebbc69edfa5a98a
bffd2f7f62ac57ccea4f997c92dd9753ba3f7e957a31563be6cb7f3c49aa6b6da658ea37118860fd0f3
595fc36b6cd0c82349e3689dd58ce8eaf203fbbe71b705b846c558bf96347fcd3b7fa87f886cf5495ef
24b3fd3d710ea10473fad158c30473252e0a88e39a091ae1107ef1668df8cdfbc50aa65f96ba479f7
ca2be6117da75e4ba61b15bad274d92e20941d4dafb519264841988895e27b4d8958fafedf3c558f
c5e41f3fe891b6906cdb59d365f31797fcd8b716a21b648a78ee524d563114f74ed52d0fd6766a3cb
3c8171564ff0092fe5cf35796ed16cbcc56ba8c2561b9063bd9ac24b3b72f7d34c896a2d4b487d449
54c8653b7a68b5c55977e5f8ff0071baca93ff004bed6bf1bf98ff001c55f3ddc7fcfbd3f23ae6796e24d
43cc22499da46a5e5b5393924d3fd17df1558bff3eeff00c8a1d6ff00cc27fe8f6dbfec97155e3fe7de5f
90e3addf980ffd1f41ff0064b8abe1af2eff00ce37fe607e647e627993cabf975a4cb3685a26ad79a73
eb77ede9594115bdc491a7ab3f1a33954dd63567ff2298abeff00fc84ff009c33f217e4f4f65e66d627
93cc9e7fb63ea47a939682d2d64a53fd1a0523b1a7394b93d8274c55f4be2ac5bcefe44d2fcf962ba
7eab71716f6e21bdb66faa98d59a3d46ce5b296a5d1fa473315ff002a9d7a62ac7a5fc96d067bbbbb
c9f55d4a59af5258e72ef6f5e135bdedb01c84018f08efe554e45a80463a262aaa9f939e5f576126a3
a84d6857d25b391e1312c0d7aba83c408843f16997bb7254628a576a2a99796bf2e74ff2cdf69b7f6
fa95ede4da5585c6956ab75f5709f55b8920928c208220597ead1d1bed1f88bf366ae2a965d7e4c7
966e16311de5fdb35b19974f78658b95b4374d72d3451f3898157fadc83e30cca3d3e2470c5547fe
555c316ad6b6693cf71e527b5bc4d4619e588bb49712583ac402c2098dfea859cf20c0b517e16f85
5545fc97f2f2cf05d3ea7a94b3da878ad8cb25bc8896ef6af6461e0d6e5593d27e3f1862dc4726fb5c
954f22fcbfd2ed6db40b5d36f2f74e8fcb8645b2faacc179db4df6eda40e8e3d1345e2abc5a3089e9b
271c558fcdf923e5e9e3f49b56d5510c315b3ac72db8578a0372503ab40cac41ba7656a725608578
d37555f53fc9af2e6b36b6565aa6a1a95c5a5909c2c2668955feb333cce5b8c20ab1f55e3e51f03e9
b50d4aab2aa88bbfcaad3af96d5eeb5dd624d4ace3b74875369e0373ea59cb2490ca6b6fc39a896
58e9c3d36491b9a33fc78aa6b1791eca0d1b5ad161bfbd48b5d9e4b9bbb91221b8469d123711b94
200658ff006831f89b7c555fcbfe4bd0fcafaa6b1a968717d4d35a6825bab085638acd66b68842248
e3445a3ba05121a9e5c13f97156438abb15762aec55d8abb15762aec55d8abb1549bcd7a3dc6bfe
5ebed22d26482e6e157d196552f18747571c8290482568687154015fcc5a7c3268a0fba5d9ff008d
c62ad15fcc7a0a4ba257bfeeeefaff00c1e2ad71fcc9ff007f687ff22aeffeaa62aee1f993fefed0ff00e45
5dffd54c55a29f999da6d0be98af3feaa62ad7f85751ff02ff86beb90fe98f4b9fd77d26fabfd73d5fac72
f4f9f2e1ea76e7cb8fed57157ffd3f7f62a91f98742bbd5ae748bfb0bc4b3bdd1ee64ba88cd09b88dfd
5b69ad9959449111b4a4821bb62ab3ea5e72ff00abc69fff0070e97fecb3156bea5e73eface9ff00f70
d97fecb3154a2cafbce975e65d5fcbefa9e9ea9a6da58dd24e34f96aed7cd72a4106ef60be80a7fad
8aa746c7cdfdb5ab11ff006ee93ad3fe62f1570b1f37537d6acebeda73ff00d95e2aabe5ad0dbcbfa7
cd692dcfd6e7b8bbbbbf9e711fa4a64bdb879d82a726a052f41f11c5538c55d8abb1551b5b3b4b18
45bd9411db5b866711428b1a72918bb1e2a00ab3124f89c555b15762aec55d8abb15762aec55d8
abb15762aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb1571db7c55f36f9c
bccd2ea50f9ce6d42e6f8693aff0097353d7fc9d324ed14304da144f681a25818306985cc53aabfda7
5d96a98ab20d1b4bd263f356afe54f34dedd2696ba368ff00e1a8c5cdc22cb25db4c6f2e2d1d5f93cc
6611f3e259a34e1f66391b92a84fcddf3f6af617fa442d0bd85ce87776dad368fcd9ae2ee282db5095
d9a4b7660605faba07015be27e2d43c315539fce3af36bd6fac5ceb5a65cccd1da69ba45f470dc8d3
209f503a94f15c32d79b19a08a18010bc2591d3d3fd8c555ef7f363cdf6f74d70751d223d0e53171b
b6b7944702dfea571616a5e4f55c91e9db3cacde9ef2b451d155b155da7f9efcc1a86a3ac798a2beb
39f57d12c6db469f4e8e2b85b482fb51d5fea8ace953233d20f57d2e3ea2aca91fed6eabffd4f7f62aa
735c416ca1ee2548509a0691828af854d31543fe96d2a95faf5bd3c7d54feb8ab8eafa50dcdf5b8ff0
09ea9fd715792f97fcdf7d2fe707987499dada1582c34b6d475266516b25ac72ea260f40990fef25f5
630c2ade9fa52d57e28f157ac7e9bd1bfeae36bbffc5d1ffcd58ab5fa7345ff00ab95affc8f8ffe6ac5519

749

0cd15c46b34122cb0b8aa488432b0f1046c7155f8abb15762aec55d8abb15762aec55d8abb15762
aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb156b8af4
a0a7862a96ebbade95e5bd31f58d62430d8c0f1445d229267f52e255823554895d89677551c477c
558f2fe6af91de431a5fbb4a2558782db5c17a310a64e3e9d7d356f81dfeca3fc2d4c55487e6af932d
ac85e5fea0005476b89ededee64856484c958abe97212110c8cb191cd950b2ad315653a36a9a7e
b7a743aa69bc8dacdcd47a913c122bc4e637478e4556564752acac2a1862a8fe23c3dfe9c55ffd5f7
f62af1dfcf8b0b0d45fca76fa95b47756a6f2eeb14f1acc9c8da3a8f85811520941e25b8f17e5e9baaf
2a7f297953659343d3c8d997858c0c1cb1610000026060f002220574d4643010000000000010000
0000000000100000000020000038a4010038e40100d0123f76df6bd634fb5cbd45fb7ea8170aac4f
2f7962431b2683a73f31b27d4e062e4d002a3837207d4a747a999376f547d6555cde5df2eb90eba2
58cb2b9e214d9c0431623bfa6dcb97ac7bb57d55fb5eb0fad2aa83cbbe5b9b984d1f4f749051ca5ac
0c47a94206cac09632d69fb5eb2fc327aa0dcaae1e5bf2c0aa2e8d652472007d5167010c6600ec3d
36fb7eb1a1df9faabfdefaa3eb2abdfff00290463f2ff0048f4b8fa55ba2863e3c0a9bb9a8578b38a11b
8a337facdd71566b8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8a
bb15762aec55d8abb15762aec55d8abb15762aec55d8abb15762a95798741b3f32e98da4df3cb1d
bb4f6d73ce06092092cae23b98e848614e712d76dc62ac0f5afcadbe5b8d28796afe44b0b3bdbabff
46f2657faacb70c644102496f32b44acf2168de8e7f76ab32246171547b7e4df945acae6c19ef0db5
e177b91eb0abccfebd2527857922dc3a276e3c2a0f05c559968da45be8964d636af249134f73745a
6219b9de4ef7120a8036e72371f6c5530c55ffd6f795aeafa55edccf65657d6f73796c48b9b7865492
58883421d5492bbedbe2af28fcf89e1b793ca525c4891c66f2f12b210aa4bd948a16a76ab57885fdb
2dc38ca5bd19157970d5f4991c2b5f5b3ab0d9565465dcd2a08e40f2e741bb72f553e297d50b78aa
e3abe90b1af1d46d5ddc720eb710bf20453a737e5f6fad24af351c9fd655bd5548eb1a1b7a4b2ea56
8e588065f5a272d5afbb83cb9f8bf2f587dbf557ebcaa2a6d734454206a3695068aa2e6172e4f6039
bd4b72d850f2f501e32faa1af1552835dd09bd4e7a9da15e891faf0b0624d7975627972a83f173f51
6866f555aed57bff00e544f0dcf90b4bb8b79d2e6095aede3b88dc4a8ead77310caeaf20607f983bd
7f9dbed62accf15762aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb15762a
ec55d8abb15762aec55d8abb15762aec55d8abb15487cf1757361e4af325f594ad05e5b6977d35b
cf19a3a4b1dbbb2b29ec411518abc2a01acbdb5b39f306b8d218d5df96a978a1c155a927980a7afc
355eb27d9f4dbd055686d52a69e61d719106eefab5e276a50832250eddf8efcbf90ac6aa887d6427
03e63d7390aec355bd2e46fff00161dc57c3b28a12d495552326bbea065f306bae849e0a356bd556
04f726400015d8f2dc716e4fc95dd543cb26be1491e63f30024f052354bd2c4ed56a723f10fe5e3f6b
90f4fe1288abd3ff4c6a3ff002a2bf4a7e919ff00487d57d2fd25f583f58ff7abd1e5f58f539569fb7ea72f
f2ab8abfffd7f46f95bca9e63b3fcd0fd30da5cc9a70d6bcc371712cd1450431da5ec30fa3711ca843c
ad2489c046dcd78b3c8423247555e83e69b6b4bcf367946daf6de2b981e4bff00ddcc8b22865b5e4
0d18115dbae2a9dff0086bcb9ff00567b2ffa4687fe69c55e3de71fcc0f2ef966c7cc57b0e95e5e7b8d
16e26b24d2678825efaf02b48824aa8451708a1e12cd182bf67d56f871543d979d343d5d6e74d7b6
d02de6bafafcd6b218238d9ada111f182065af2b88e295672d4a18ca370443cd554fbf25350d2bcdd
e5eb8b5d4f4bd2ee2ff0042fd1d68f7d6f14727d645d693657e247e41887ff4928e6bf13272dabc42af
4c1e5bf2e8e9a4597fd2345ff34e2a86f2845143a20860458a24bbbf548e350a8a05ecdb002800c55
84cdff3929f9096f33c137e616889344cc9221ba4aab29a107dc118aa8ffd0cf7fce3f7fe5c4d17fe920
76fa31568ff00ce4fff00ce3e83c7fe56268d5ff988a8fbe98abe13f2dffce6bf9f3f2cff00317cd16a972b
e74fcb79f5ad425d3ecaea66f522b492ee468dacee48665428415470f1d3ecaa62afbc3f27bfe7223f
2c7f3b2c51fca7aa0875d54e777e5ebee30ea30d3ed7eeea448a3f9e22ebe3c4ed8abd5b15639e6
af39e8fe4e93483ae4a969a7eab7325a35fcd224505bb456b35d72919c8f84ac0cbf3f6c5552e7cf3e
4eb35b87bad76c614b590c370cf711a85902bb95a93b902392b4ff7dbff00235154a355fcccd1b4fd7
e1d06d956fe475b769ee2de68ca426e6fadec02b6fd435ca311fcb5c55398bce9e529efadf4b835bb
29352bb7922b6b349d1a791e108ce1501e4788910934a51d0fedae2adc9e72f2a453cd6d26b368b
716ec52688cc9cc32ac8e452b53410c95a778dd7aa362a8087f32fc873398c6bf688df593669ea48
23124ca2127d32f40ea3d78be35aa7c6bf162aab3fe61f92adee2c2d64d6adfd5d4cb0b3e2c59582
40f72cccca084511c6cdc9ca8dbc7154c2ebccfe5fb2b0b7d4ef75182dac2e9b8413cce23566dea3e
2a114a1e55fb3fb54c5524d13f333ca7ab58fd666d42decaed266b5b8b196656962943caa0301d88
85db9740aadcbec35154c62f3cf93e7ba1650eb76725d192483d35954912424ac8a48d87161c4d7f
6fe0fb5b62a861f98fe4a6b89ad975789a4b7b76bb9ca872a91248223521681b91144fb6c08651c4
e2aebbf3ff00977f446b5aa6897b6facbe8764da85d5bda4cad588426751ea2f2505d3e25f62a7a1c
5567913cf961e7bb7d467b080c6ba65c476b24e9225c5accd35b43740c13c7f0b85598249dd2557
43d3156598abb15762aec55d8abb15762aec55d8abb15637f9842be41f350ffb53ea1ff50b262af0c
b599c450285e463555e63e1dd54ec0154a11e9ff91d3ecafa6ff53555449246d293450b5520b0009
1515a16423ec53eca74e9f03240aa0c4ad2314295a1343b120578d08a1fe6fe5f1fe6e132ad248e1
51914fd9e654d07066a372afbf2ad797c55e5ea4bcc4b32aa4f29f4d1bd15219f88045554034ad381
343c694e15ede9fc3e9c4ab3cf50ff00d0befa94df87d9e5bffc747a57d5fa3fbdfa7157ffd0f7f62ac53c
c34ff18f938ffc5ba853fe90db15615aef9835083f35b57d2e5d53eada259e9fa05d719353fa8adbc97
3777cb23241c184fea88634742cb51b2fc4d8aa5da37e6edd6ad2dbd86a7a7e8f06b97535f1bb477
9443247a3c96aab146f24619e7b98ae85d598e241838f766e0aa124fcdfd4c693a6ead67a2e893db
5ec371a9456e939699ad516c2316c0468c16eca5d3c4c849fee97922abf05555b44fcccd42ce5b3b
2f434a8b57d56d6d0c97e8d25be9d14af26ad44960563c5a962b0f2e7c9a471cb68d50aacb7c89f9

93a8f9b75a8acef6ced6c6d2f2ce5bbb5b7595def627823b195d26560a2b4be03e11b7a66bf6e8aa
b2ef29ffc71da9ff2dba87fd474f8abe70bcff9f7e7e45df5e5c5ecf77aff00ad7323cd2017b001ca462c
69fe8de2715521ff003ef3fc851d6e75f3ff0047d07fd9362adffd13d3f213fe5a35ff00fa4e87fec9b157
c2da6ffce3af9e7cfdf9abe6bf22fe5a6952dde93a06af7da7b6a97ae23b5b782d6e64890cf3d002f44
fb28a5dbf653157df3f90dff3857e42fca59acbccde6294f99fcfb6ac2686f9f945636928dc1b7841049
1fefc94b1fe554c55f4f62ac3bf30fc8d2f9ef4eb7b08f52fd1be88bd5693d0171c85fe9d73a79d8ba53
88b92e3c4af1c558a0fc97d404f7130f33861729244eafa7a6d1bc17b02005265a1417d276f8b8ad7
e2e6ccaadb5fc91bab530c3fe2532e9d6dc16ded9ec5032a36a36fa9ce0c8b2824bcb01119eb1a3d
0fa9c54e2a9cf953f2bae3cb9af693af5c6b6b7f3e95a75e693c16c61b533c374d67c2491a26de545
b28d59c8fde78228550aa5f77f92d14cd1cb69aecb6d3d8cd70fa3c86dd2530417d2cf2dc452f26fdf
126e5c46e78fa744f85cf32eaa563f27b51b4d62c7474be7bbf295d5a6a10eab70f044b2225ca6969
e8022553594d93b89046de97d8e3f65b154c17f250f385e5f303cdf5532c36d1c9650b45f529adaee
d4c322163ccf0b915727729f67e3d95646bf97f343a77972cecf5bb88a6d01a5469e54177f58b3b90
564b76172d2b502f111bb3bba705e7ea7c5c9563173f92575751bc4fe689238e4b7fa9bac765151a
20da838e5cddaa435f922941fbb5db738aa2f50fc9c7d62ced6c755f30cd25bc2f78f32416d1422437
f78d76e454b94601e48c107a156fb4a79aaa9a87e52deea70d9bdef99649b52b482088dd3d8db18
e49acae04d048f08a2300bcd24435e7cb9064e0b8aa716bf978965e5bf33f96ed75131c3e63329f5
85bc4a2d967b38ac995238f8210122aa8a2aad7a71db1557f227902cfc8cba93dbddb5ccfaac9049
72a91476b6a86d6dd2dd7d28221c54b2a0691aaccefbd69c555565f8abb15762aec55d8abb15762
aec55d8abb154bb5fd2975ed0b54d0de53026a7697164d3280c505c44d19600d01a72ad3157924
3f91fe688638e2ff001ac0cb1aaa0ff70cabf6420a80b7602fd8fd9a0dff00e2b87d3557a7e48f99d555
4f9d62623f6bf4401d945471bb017a7ecd3f97eca4611552ff009513e64ab91e758817ebfee1d2942
08a53eb54effe619b92aeff009515e64076f3b474dea3f43a74258f5facd7bf5ea7ab7266919d5536fc
85f32b2706f3ca74a57f43c7e0a06df59a7ecf4e9f42a71559eff8065ff9575fe04fd2adf59f4b8fe97f44
d7d6f5feb1ea7a5ea74e5fb3ea74ef8abfffd1f7f62a966ada0e9facc9693ddfac97162ef25a4f6f3496f
223488636f8a26524153420e2a964de43d02e6717573f599ae969c6796e6579471e94766276edbe
2ad8f2468a18307bb5647591185dce0878d782303cb62abf0a9ecbb62ac2a2f2269577f9af3fab77a
8a41a0e916d79a6dbc77922c42e757b9bc4ba95bf68bb7d5a2f8b97ecff009471566a7c8ba1b0903
35d9130a4d5bb9eae3917a31e5bfc44b6ff00b5be2ab53c87a14739bb8e4be4bb62c5ae16fae5652
5e8189712577a0aefbe2a9d695a55968b64b6160ae2dd5e494996479a4692791a59199e4666259
989dce2a8dc55d8abb1543d9d858e9f1343616d15ac2f23ccf1c08b1ab4b3317772140059989666e
ac7738aa2315762aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb15762aec
55d8abb15762aec55d8abb15762a80d6f548744d22fb579d79c565049398c32a1728a484058800b
1f8457b9c55e2fa679dfcca8de5ad135dbabab6f32d879a9ecf59b1924856e6eac2f34bbdd42d9192
376529cb8429f17c4d076df1547ebdf9c3e64d3f51d4a3b6d2ad6d2cf4f80dc9b4d4d9e3bfa4760b7
ec8eb13322b155910519bf65fb152aa41e62fce0f335fdbc66c6ef4db0d3af575130bdbcb23ddc7258
9b72904ecac3d19918ca245dcc880fc098aa76ff009d5ad5bcd0dadd58d9239d41342ba995a431c1
70dc836a2d561fe848c8d1b8af2571bcb8aa3bfc47aaff00d0bd7f883f4a37e9cfd0ff00f1d6f51b97d6
abe97a9ea72e5f6fbf2afbe2afffd2f7f62a93ebfe6af2ef95a3824f306a31582dd1916dfd526b218636
964e20024f145666f0515c55256fcd7fcbc4a87d7a05e2486aac82854393fb1d844fff0000dfcb8ab67
f357f2f82b31d7600a84873c65a02bea541f83b7a527fc037862af30d0bcf36b0fe69ebb73a9f98215f
2bdbd958fd5b573cbd6bd4866d49c5b3a88c71101793d56a7c7e945bff007b8abd41bf34ff002fd03
16d7600143162565d82170dfb1d8c6f5ff55bc31571fcd4fcbf5153aec200e553c65fd8e7cbf63b7a6f
5ff55b1564da76a563abd9c7a869b3adc59cdcbd3992b42518a30de86a18107df154562aec55d8a
bb15762aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb1
5762aec55d8abb15762aec556c91c72a18e540e87aab0041f9838aa9b59da3cbeb3411b4c082242
8a5aa3a1ad2bb62ad9b6b6673234285dbed315049da9b9a7862aefaadb6ffb94f89b99f846ee450b
1dbad36ae2ab7ea769b9fabc7528d11f81778dcd597a74277231554f461f4bd0f4d7d1a71f4e838f1f
0a74a62aff00ffd3f7f62af25fce998c379e54ab95492e2f1485aee63b6f5c12390d97d2e75fd8e3cf94
3c7d7895600d2d3e369182c63820e4540e04100d5929c7d1ad3e1e3e97d98fd1e564aa973bd015
997d1b88f652c4c7c0000ee4842a01806d58f8fa5d13d1ff0042555239ae216f4e32c9728793c6180
5045074250ad0407f663a7a3d53d03f52554e37978332c5e8c49477562528d1fed124201c3d102b
b71f4bed45e8b2d92a8a1723d02858858885545608a9e89228a7928050c3edc3d2ff0074fa27ea8a
bd8ff2ad0c7e44d3232a50abdd8f4ca98ca817735178948f8d3a538253f917ece2acc715762aec55d
8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8ab
b15762aec55d8abb15762aec55d8abb15762aec55d8abffd4f728f35f978eae3425be46d50b987d2
55765f582190c4640bc048114b18f973e3f171a62af35fcf9b98ecdfca5712876417b74a4471c93355
ad1cafc118276603e2a7c3f6b945fdf46abcc1756b52bc95af0ab91c14da5daf12dc680008a453e0fe
5e3fcb170e568aa21f56d3f8a4682e58c8034721b1bcaafd8001fdca53729b131fd8e8be9f2b355d1
eab66e60510dd5030208b2bd0148e34ff75ad3ac7fb29f67aafa7fe86ab4faadac9c9a18af03295089
f50bc4153c38d2b02740537db8f0fb5170e368aaf8b54b551248b0def2214461ac6f0750bc36f4d69
4f83c38f1ff0074f0a5a2af74fca792097c83a54b6c1d6de46bb789658da170ad773100a3c7132915f
b263423f917a62acd315762aec5529d0bcd1e5df33a5dbf97f54b6d4bf47dc4b637eb6d22c8f6f756

751

eed1c914aa0d51d5948a3018aa6d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb1
5762aec55d8abb15762aec55d8abb15762aec55d8aa8dd3b476b3c8868e91bb29ebb852462a906
8da6df5f68fa7decfaddff00af736d0cd2106d80e7246ac68041e2715467e82b9ffabe6a3ff056ff00f54
31568e83747fe97ba88f935b7fd50c55dfa02ebfeafda97fc15b7fd93e2ab4f97ee8ffd2ff521fecadbfe
c9f154bf4e3a8dc69fab69f26a57465b5d512d21bea422e4424c0e45445c0fdb65af0fb3efbe2aff00ff
d5f62f92f45d7fcb53ea5a25dd8c371a5cfaaea5ac5b6b2265a94d4eee5ba11b44579fab1994c75fb
1c1410ffb18aa63aea96f38794e9fb075073f2fab05ff008db1544f9a3ccf1f97174e852d9afb54d62e5
ec74bb147487d6b88eda6bb29ea4842ad6381e95ead418ab08d63f3aed74bb89633a53fa36570a9
a948f321096df54d46e1de368f92348a74f65281f88e5f13ab2b2aaa8a6fcc1d76dfcef63a65e69a63
d1efada08de159a094c535d5d9861b85912a5d1d48aa7c257ed7facaa4daef9f3cdf69e72d4f48d3c
cf756369afd9e971d8d8db5b3ddb5b4da04daa48236b86442deaa2d0b36c9c862af55d0ae67bcd1
ac2eae98b5d4b046d3960aae252a39ab2a12a18354301d1b1541f94db968c5bc6f350ffa8e9f157c
7b7dff003f21f2a58de5cd93791351792da59212c2f600098d8ad7fbbef4c550adff003f2cf2befc7c81
7e7c2ba8423fe649c554cffcfcb7cbbfb3f97b7a7a75d4a21f3ff8f738abe2d93f377cdba57e66ebbf99
7e46d46ebcb7a96b1a9ddea4a96f3578c77770f3fa32ec12551ca843af16fe5c55f7dffce347fce695ff
00e6b6b169e45f397966e0799a550135ad12092e2c5a9b73ba88726b75f192af1d7afa63157d878a
bce7f377cc1a8796ac746d4f4bbc86d2fa1b9bd9916ecc86de616da4df5c7a52247247cc3346a055
be16e2df6a98ab127fce7d76e16ffea2fa6c4e033d92dc453311e95b5fcaf1951346ce43dac4bcbe0e
5ea7c2a51a3765524bafcc5d57cc7ad5aea6f72f642258223a2db3cf13c4e9afe98886562e15cdc42
ecf1fc0a0c3230f8d7962accfca5f98fe66f33799341d304da51d2f54b4bfd4ae65b78ae9e68d6ccd92
ad9b736458e756b9944950fb45f615b985550179f9afe6bb6b85692d2dadecdee6ee0bb1241334ba
7340d790c11ce4480334ed0c3246df0d55cad28f1be2a94d8fe6d79ee5a9f56c24bdb8375776fa4cd
672a5c32dbc3a53c7650f1995b94c2f65659195d9788f85955b15453fe6af9c6e2e74c36d3d9430a3
ca9a92bdacab17d6534fbe91609642ec62067b55ab01c96bc37eeab297fcc1d60f977cad7d222e97
7baec93c1713ea16b2491c3736e1ca40c96b2b8aca50a24892ba3fda8b9f3418ab0c4fccdf327967
4c9ed239adefbd2596f6c04b05cc9294136a8cf6d24beab55a9671f17215a927048ddb862a9addfe
6bf9a2c96d6e956cf5017536a061d36dad6e2391e1b3be365122ccd2b8691fe07d93f6ab4e14e4aa
d9ff00333cc314b05f43ab5a5c69179610490dcfd4268ade092e6f1219269793963f560ea9200788e
5c9f8717c551175e68fcccd63c87e7cbed29ed26f3269718b3d22d34db69e37330b3b7b89a689a79
0b396f5a4f414c69ba2579372c559df93edfcacbebddf95aee6b8b79e1b7132bcd3cf102bcd95cfac4
f195b9fef77e668bea0ae2acab15762aec55d8abb15762aec55d8abb15762aa3782b6938f18dffe22
71540f96bfe51cd23fe60adbfe4d2e2a9a62aec55d8abb1563ba4ff7daeffdb593fe4d5ae2afffd6f7f62
ac53cc269e70f27ef4acba80fa3ea6c7f862a9bebde5fd0bccf61fa2fcc16306a3a7fa91ce2dee143a8
96160e8e3c0a91d462a941fcb5fcbf6bb9ef9bcbb60d75753adddc486153ea4e8cee1d87426b239e
9fb6ff00cc71575a7e5b7906c3ea3f51d06cedff00462c4960224e0215b798dc461003b7190971ef8a
b5a97e5af90757beb8d4f53d0ad6e350ba9d2eee2e5c1f51ee2388c09292187c6b19f4d5ba84f87e
ce2ac8ac2cf4fd26c6df4dd3a28ed6c2d23586dade2015238d051540f003154bbca841d1c906a3eb
9a86e3fe6367c5558f95fcb4c4b1d1ac4926a49b586a49ff00638ab5fe16f2cffd596c3fe9161ff9a715
77f85bcb3ff565b0ff00a4587fe69c55f0b68dff00381dad79ebf33fcdbe6efcc5bc1e5ff25deeb7a8dd6
99a569c636bfb9b692f2468c920347046c8415d9de9fb098abed4f207e5af91ff002bf444f2f791b46b
7d234e5a197d25e534ce0539cd2b55e46f7763f762acaf1569915bed286a74a8ae2ae2aa69500d3
a7b62aea0f0c55ba0c55d41f7f5c55033e8f6171ab59eb72c64ea5610cf6d6b2f360162ba31b4abc4
1e27918937236e3b62a8ec55d4a6c315762aec55d8abb15762aec55d8abb15762aec55d8abb157
62aec55d8aac9a3f5629222681d4ad7c390a62ac7ac34ef36e9f636b6115f69ad15ac31c08cd6b3d
4ac4a1413fe91de98aa23d2f387fcb6699ff0048b71ff6518abbd2f387fcb669bff48b3ffd9462aef4bce
1ff002d9a6ffd22dc7fd9462ad187ce5daf34cfa6d6e3feca7155b67a46b16b637ffe956adab5eddade
7a9e8482d94a88978f0f5799f862ebcfed1f0db157ffd7f7f62a82d4747d2b5848e3d56ca0bd4858bc
2b711aca11882a4af20686848db15407f837ca43fe94763ff48f1ffcd38abbfc19e52ffab1d8ff00d23c
7ff34e2ac574af29f961bf307ccd6eda3d99823d374768e3302155679350e440a5013c457e58ab2af
f0006f94bfeac763ff48f1ffcd38aad3e49f27b7dad06c0fceda23ff1ae2a9bd9d959e9d6d1d969f6f1da
d9c22915bc08b1c6a09a9a2a8006e6b8aabe2aec55d8abb15762aec55d8abb15762aec55d8abb1
5762aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb15762aec558d7993cd8
ba16aba3e891431497fac8b87b77ba9beab6f4b3f48c89ea717fde32cb58d29f1707e9c7156017df9
dff0055bf858dbd9c7a48fac24f3b5cf28dc96d356de512f11c231f5e6697927d98f92ed8aa63e59f3c
6b12fe62ea3e5ed48c171657ed08b5fabdcfad1dacd169e93c8b17eed79c6fbb54b720c7ecd3154a
356fcd0d45bcc1e53d4acee6d63d0efa1d599ace2bb0e933450dbfa4975fbae51cb148ccbc1796fb6
2aeb2fcfb6bfd186ab068d17a9e82dc49662efd59d14c3a7cee7d38e32d2045bc7a88c33b7a3fbb47
66e38ab21d3ff3596ebcb9abf9a67b2b78f48b096dd6d1e3bd49649639ae3eace648c2f38995beca
b0e527ecaf2db157ffd0f7f62a87bbbfb1b04592fee62b58dcf1579e458c16a5680b11bd31541ff893c
bbff577b2ff00a498bfe6ac55dfe25f2eff00d5decbfe9262ff009ab15797796fcdb7737e6a7982c6eee
ad20b7b6b4d3bebdab19225b6bab747bf36eb6f57239b0947abbfeecc4db7ef63c55ea5fe23f2f7fd5
dacbfe9222ff9ab1577f88fcbdff576b2ff00a498bfe6ac551f04f05cc493db48934120aa4b1b07461e2
08a838aaa62aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8
abb15762aec55d8abb15762aec55d8abb15762aec550f7761637de8fd7ada2b9fab4ab716feb46b2
7a73c75e32272078b2d4d186e315408f2b796073a68b60049ea09296b0fc5eb2b2c95f877e41983

7f3026b8aaadbe81a15a5c25ddae976905dc6008e78a08d2450b1884519541148c041fe47c3f671
5537f2c796a4e7cf46b16f5249a67e56d09e52dc80267355dda4a0e67f6ff006b1568f95bcb26a0e8
b60430556adac3baa1aa83f0f407a62a898b47d22dfeb1e8585b45f5b956e6eb8428beace841591e
83e2705568c77d862aff00ffd1f7f62ac4bcc9696d7be6df29c575025c448da849c645575045b85068
c0ff00362ac8068da428a0d3ed80df610c7dfaf6c55c346d2074d3edbfe44c7fd3155dfa2f4c0001650
50741e927f4c55bfd1ba7529f54869ff18d3fa62aefd1ba70e9690ffc8b4fe98aa57e4e458f42544508
a2eefe88bb01fe9b374a62a9f62aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8
abb15762aec55d8abb15762aec55d8abb15425eea9a669a631a8dec16865e5e90b89522e7c055b
8f322b41b9a62ad69fab695ab23c9a55f5bdf47137091ed654982b52b46284d0d31555bcbeb2d3e1
facdfdcc56b6e1954cd3bac49c9cd14726205493418aabe2aec55d8abb154aef3ccbe5cd39da2d43
58b2b4911991927b98a260c8aacc08761b80ca48f061e38aa6608600835077047718ab78aa9adc
40f3bdb2ca8d7112abcb08605d564e414b2f501b8b50f7a1c5553157fffd2f69d87e61797eff515d35
45c40f26a177a343713c25609350b0e46584382406211993971f5029e153b62aef30ede70f271ee6
5d407d1f5363fc3156578abb15762aec55d8aa47e525e3a311ff2f9a87fd474f8aa798abb15762aec
55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55e
5df9c31c524de5ef52d9ee485d680f4eddee3897d1aed012511b8f266545afda660a37c5525fcb43a
e2791350b4d12e1e6f3147a6699f559e2d1e3d33eaf20b45416a56e9e349e58d91ddd9dc2afa813e
1fb38aa2b564f3737e5bc8be7b8e7bed506bba41610000026060f002220574d4643010000000000
010000000000000010000000002000003884010038e401004891bda5b1736d16a56721222d3e4
b85e2a15d8b13c8007951462ac535ff00327e64a4cf3797e5d5753bbb692eee6c606b5748dee8c3
ae416d0b848635684b416668ff000f3647771ea5715454fae79dae34d867d37cc1af48b2368b25bf2
d25ace5faa6a7ae1b7bce71dc5b4927286d4d393156455f5caf1f89955badf9afcd56b79169971aae
bda75926a49a45d5f2d8b9924e32eae17d077b57595da35b262d10218713fefcc5542db59fcd0b1d
42f74ee3ac7e9e9ee2eaeecdbea335ce9d3ea71dadab8b579582c50dbc885b83175895fd4e2deb2
04c558fa36ab75abd8eb531d6f4d6b99b5296ff0052bcf2edcea13192e346d1e3963681ada815a78
658d4814ac7c1095c559a8f3179a6cee2fc5dc7e634f2e5edf5bc9a7bd8d8cb2de59e957515c45c0c
6b0b90f0df2aab050cc2d0c0e7f77ea362a90ea3e69fcc86b9b1b59351d734fd5aeeff0054b292c3f4
72c48751b3b5b996cd20768e459ade5e30333c7fb8e35e72077902aa8f9354f3ed90bcd36da5d69
6083d65bdbb16b3cd72b766e358f43eaeef0b7ab134c2c94805e3113a7d985dce2a9ae97ac7e62f
e8af30fab71a949af83a6c96c935a30863bc7d62e2da68a12600a6131245ce8582c27d6e6a1fd4c5
5fffd3f59e97f96daa8bd0359beb77d1e0f325d79ae082d924f59e799e47822777202ac4d2063c47ef
1947d95e40aa99f9db4b8358f32f93ad2e26b9813eb17ce24b3b896d260459483fbc8591a9bee2b8
aa26fbca7a069b6af7b7dabeb105ac42af236b3a8d372001b4f5249d801b9e98aa4724df973098d3f
c53a8caf3cb6b6f1ac3ad6a53b192f8a880011ccdb3725f8ba2d472a5715424da979061d7b4dd17f4
d6a0f0ea02e512fbf4edff00a4b776d25ac6b030f5fed4bf5b468cd78b76fb6b8aa59e71f30683e4fd7
4e8f796fab3c4d73a35aa5f37982f608036bd2dd43197e737c2b1b5a373f665e35dc62acd341f2de9
5ace936daa34ba9c02e94ba226b97d73198f9108e92c7705591d407423f65862a9a7926de3b5f2fa
5b445da38aeafd14caef2c840bd9c0e4f212cc7dc9c55b6f3e791d18a3f99b4a575a86537d6c0823a
d47a98aa99fcc2f202fdaf3568e3e7a85affd54c556ff00cac6fcbdefe6cd1bfee236bff553157c2de5dff
9cf3f30f917f313ccfe59f3cdaaf9a7c8f6fad6a30e99a959320d42ded16ee5f482b544771185e212a5
5b8ffbb1b157dbff0097bf9a5e42fcd3d2175af226b96dabda80a678a26e3736ecc3659e16a4919ff5
977ed5c559862a84bbd4acec66b382ea42925fcc6dad471621a511bcbc490085f8636356a74a75c
5515c977dc6dd7db1549757f36f97f42bd834ed52efd0bcb858e4863f4e47aacb750d9a9aa2902b3
5c449bff3d7ecd4e2a9d0753d1875e3d7b8ed8abb9ad48a8a8ea2bd3be2aa10df595c3cd1dbdcc52
c96d27a170a8eac6398a87e0e01d9b8b29e277a118aae92eed6178a39678d249dbd38119d55a47
e25f8a82773c416a0ec315540e8543061c4d28d5d8d7618aa0f4bd5ec358b4faed8c85edc4b2c0c5
d4c6c25b795a0752ae01043a11ef8aa33d48ebc790e44d29515ad2b4fbb15439d4b4f1742c8dd44
2f1a27b85b7f517d430c6c11df8d6bc559802dd2b8ab5a86a765a5d8ddea3792f0b4b185eeae5941
91961894b33714058d003d062a97e87e6cd0bcc33496da65c335d4504176f6f3452dbcbf56bb04c3
2859554b23f1601976aab2fda14c553bc55d8abb15762aec55d8abb15762aec55d8aa0aff49d3b54
92ca5bfb759e4d3ee16f2c8b57f75708ac8245a11b85761f4e2a8dc55d8abb1541dd695a75ede58e
a1756eb2dee9ad249613b57942f3466272bfeb23153ed8aa3315762aff00ffd4f7f62ac53cc3ff00298
793bfe335ff00fd41be2a98f9a7407f31e98b6705f49a6df417105e595fc2ab23453db482452637aab
a9a71656eaa7b351b1561775f93c977e649fcc93f982ea49e6112089e0b7f862865825f4f922a1e24
c52000538faa69f12e2ab2f3f2764bcd2f49d2a4f325cb47a35b7d46d2792dadda436d1ddd95d40ae
54286641611a1722afc9dbf978aaade73fca593cdfaf9d75b5d7b32b3e8f7705a0b58a68d64d065b9
9e1e5cdbe20ed74fea0fe508178f52ab38d034cb9d1f4a86c2f2f4ea1711972d70628edd68ce59512
288054445211147ecaee59b7c550fe54ff8e39ff98cd43fea367c55f1edf7fcfb7fca77d7d737ade7ad4
51ae65926282ca0a032316a0fde76ae2aa1ff0044d5f28ffd4f9a97fd2141ff005531577fd1357ca1ff0
053e6a5ff0048507fcd78abe2a8ff0026fce3e60fccbd7ff2e7c81a55df98af345d4aef4ef5628c28115a
cef0acb3b922388304ad5d82f6c55f7bff00ce37ff00ce1347f961a8d8f9e7cf1af5c5c79c60e3243a66
8f3cb6b6301ad784b2a157b8ff00297e08bf64ac8b8abec2c55847e67f95750f37e896fa5d859da5e
7192e64912fa5685159f4fbab785c718a5a959668dba0a00587c402955e7a7f2afcfb732ca355b7d2

753

2f6d640d58cdedc51a4586ed2395d5ad492e4dcaf325dbfbbaaf152b1aaaa707e527e608bb57ba93
4c9846616fd226eae0de4a0ea9a66a051c35b91fe8e96724311e5471e91e31fc78aa71e52fcaff003
1e9de69f2d6b9af596925347835182ee5b5b9bab8796e654b38adef163b8882ac8e96cc644523d2
2fb3cd566c554b56fcadf39cd335e584f612dfd95ecf3c135cdc4f19d460bcba9e6a5d1485fd36b68e
e1a38b88979d08fdda30e2ab138ff29fcd763ab58796efedacae175786f58eb16c6e5859b9d3748b6
7999bd0004c92da48f6d5753275e7190cb8ab238bf2a7cf4b2da4d39d1e73a548d05906b8ba5696
d8c1ab5b099dc4158a6297f11e29cb8fa647a9b29c553fbbfcbcf33dc7963cb7a2cf358ea874fb9ba5
d5ecf512e96f73617ab345c99ada340f710a48ad558e14964e74f4392b2aac5b55fca3f3f5edbea56f
a747a2d8b6a2b73ea5c1b9b9f50cb713ead22ca0a5b6cea97d0825b91f81d1593e093154449f947
e74923b67b3fd0fa4ea0d7da85e5fdfdacb706e6b77a9c77913ac9e82f32b173428c128ea9f1b46c5
5555f37e54f9e19ed355b78f41b7d5d2c45b6a16f0bdd476d7335bde5a4ab593d22e16e22b72b310
a3d36e3f0cff001165591e8bf973a8e95e5ef3969896da6c37faf426df4c960798ac709d320b258a49
244694223c4586ef5535fb55c5532f25792f58d2b558bcc1e629adbf495b68d69e5eb6b5b0692480
5bda3191a5792548d99e473f678008abd5f962acf715762aec55d8abb15762aec55d8abb15762ae
c55d8abb15762aec55d8abb157fffd5f7f62ac7fcc9e5ebed66e74bbfd2f53fd19a86952cb2452b40b7
51bacf1344cac8cc9d8d410d8aa0ff004279f3fea6cb7ffb8527fd9462aefd09e7bffa9b20ff00b8527fd
9462a92d9b79faebcd5ab7970f99ad9534db3b0bd5b81a5a55cdfc9748548fac6dc7eae08ff005b15
4eff004279effea6c83fee149ff55f156bf4279f3fea6d83fee149ff0055f154eb41d326d1f4b8ac2e2ebe
bb70af2cb35d18d61e724f2bccc422921455cd057154cb15762aec5529d0bcb1e5df2c45730797b4
bb6d363bdb896f6f3ead12c6d3dccee649259580abbb3312598938aa6d8abb15762aec55d8abb15
762aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb15762
aec55d8abb15762aec55fffd6f7f62aec55d8abb15798f977cd36179f9a1aec10c337d7af2cf4db392c
d82896dcd84ba9facf30e4404158f8b0af2f5a2a7dbc55e9d8abb15762aec55d8abb15762aec55d8
abb15762aec55d8abb15762aec55d8abb15762a87bebdb7d36cae750bb6e16b6913cf3b804d238
94b31a0dcec315785dbf9ebccba8d9695a6dfde5dd96b31f9cec2def2278decae9f47d5e37bc82292
3655608a19adb953e336cdf175c55907e54ebbad4fe5587cc1ae49752c8747fae2cb7d7d1cb0de32
49297902d0fa3c02a066d8524f897e1c5590f96ff00326db5ed0b5ad72482de1874742f225adf457e
1a9197a1689471269403be2ac57ca7f997e60b2d1edac7cd1135ceb36faf368facea13c135a25b43
7a05d5a4b24253d448d9678edd2465e1cf8fa8cbcab8aaf5fcdff31b5bc337e84b359164bdb6d4237
ba9018aeb4784cb7d125226e5c48f4e363c6adb9db1542ebbf999aebdce83e64d252ddb44116ab7
c6cd6edd5a7b5b2b595de3b98c4678ca861f8372bcda878f06e4aa6737e6e6a96d75711cfa45b7a1
04b3b2c715d3bdc4b696fab8d1d9915a151ea7a87d42b5202948ebc9ea154341f9cbac3996d26d1
6d93538aca5d5c28ba736ef696d6c970f1091a2522660c78fc3c29f162aa517e77de4912cefa54696
e04125d4caf24a2d629350d42c5e4b8445e691a9b252f200de8fabc9d78465b1541e87e7ed6cf97e
5f2fdfccf25e5fd96b777a5ead24d27d6644b0bdd423b80197a35baa5af020ff00bb57a71dd54bf41fc
d8f34daf94f45b08d2da7bc3a6e9312eb17f3cb7134b7771a7585ecb34e08150c2e5c6cf5e5c5becf
c38ab203f9bde65bb5b79f4ad1f4f367a84972da7cb757ac927a16105ccd32cd0c492346f5b52a397
f3fd9fddb55553bafce4d76c2436f75a6e9e6ecdabde24297528054e96fa920e463aec10a3370ff002
862a8497f383ce76dac6aba34da7e96752b4960d36ca179dadede7bd91b5090ca279994085a3b3
11d08e4b3b1fb5c78b2a93799bcfdae7982f6cafacae8d8c17371a6dac5a3daea125bbf28fcc50e9f7
2b34b19e34907351222ef132fb1c55935c7e666a9e519d2c2fed6d7f4743a35eead246d7f2dfdd477
3653b24b6a6e1aa195432babb7c5e9453fc3fbbc5575d7e6c79a6def350b28ec746b96d24c56f7b7
11dfb08de6bb913eaf342bc4bbc651e922f1fddc8aebeabf038aa512fe6ef986c6eafeef5fb6b03fa22f
4e9f0c76d35c431a4a96170f2dcb9a9f56dd9e32cbcd3f771fc5f13af2c555e5fcebf3343e618fcbcda
6587392fa2d0d6ebd4980faecd73736c2e427fcb38faab3f0e7cfe2e3cfe1e58abfffd7f7f62ac33ce56
cfa96bbe58d19afaf2cacef25bc7b81a7dd4d65249e85b1640d240cac4026b4ae2aa9ff002aeb4bad
7f4c6bff00f71cd4bfeabe2aeff9577a57fd5df5ff00fb8e6a7ff6518aa5d6ff00937e4eb4d66f7cc56b36
b10ebda9450dbdfea29acea4279e1b5e5e8a3b7d62a42736e3f3c5532ff9577a57fd5db5ff00fb8eea
7ff6518aac6fcb7d1dfed6ade60fa35ed547eab918aa63e4a578fcbb040f3cd73f579ef2dd26ba95ee
276482ee68d39cb2967721540e4c49c559062aec55d8abb15762aec55d8abb15762aec55d8abb1
5762aec55d8abb1550bdb2b4d46d65b1bf812e6ce752935bcaa1e3753d4329d88c552ebbf29f962f
ef0ea37da3595c6a0c602d752c11bcc4da173012e5797ee8bbfa7bfc1cdb8fda38aaed27cb1e5cd0
5cc9a269369a73941096b581213e9062dc3e0028bc893c7a571547de595a6a16cf677f047736b25
3d482650e8dc4861556a834201c550537973419ef64d4a4d32d5b5295a3792f1a18ccccf0af18d99
88a928365af4c5501a6f93347b7d322b1d5a18b59b90d7135cdeddc10f39a7be62d70fc5542afa95
a1551c78fc38aa20f937ca27d72741d3eb7524d3dd7fa2c23d59ae5384ceff0fc4d22fc2e4fdb1f6b15
574f2df97a236ed1e9568ad6b2493db30823ac52cec1e4743c762ec03311f69be23be2aa4be51f2a
a27a49a25888eb19e02da2a56152a9b71fd956655f00698ab6be52f2aa4f3dd2689609757527ad7
532dac2b24b212c4b3b05ab12598d4ff31f1c550f6fe50d320bf9ee3846da6496d25adbe902de04b5
845dc864bb61c50331b860a64e6c47c3fe5362aa9fe0cf28fd5feabfa074ff00aa94f48c1f5487d3f4cc
420e3c78d29e9aac74fe4017ece2abe3f29795619659e1d0ec239a79249a6912d615679678cc523
b10bbb3a128c4fda53c4ed8aa07cc1e42f2debda65d589d3ed2d6eae2c9b4d8b508ed606b886d59
1a3f4e3665d9423b285fb3463b62a8d9fca3e55ba812def343d3ee2148d6111cb690ba88d64f5828
0ca7e1127ef29fcff17dac55ab9f26f942f679eeaf340d36e2e6e995ee6696ce0792564a712ecc84b1
1c452be0315578bcb5e5c8208eda0d22ca2b6889314296d12a2965743c542d055647534ecee3f68

e2a95ebbe41f2deb3a53e991585ad8130436515cdbdac0248ece0996716eb54a08895de3fb1bf4c
55353e5cf2f33891b49b2322c6200e6da2e42208d184af1fb3c1dd78f4e2ccbd1b155a7cafe5a6003
68d62404110adb44691aa346147c3d02bb2d3f959877c55ffd0f66e99e7fb4d4bccf7de58114315f5
8dfcba7c9135dc5f596115a4577eb2c14e4632b3203bd549c555bcc3ff00298f938ffc5ba80ffa7363f
c3156578abb15762aec55d8aa47e5250ba3103a7d7350fc6fa7c553cc55d8abb15762aec55d8abb
15762aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb157
62aec55d8abb15762aec55d8abb15762afffd1f63e9be40b8d3bcd3a879886afea43a8ea2daacb69f
548565576b48acc44b7152e23e30a330a559abbf13c7156bcf106a971e62f27268f7b1585f1babd0
b713db9bb40bf519491e98962eb4ebcb15467e88fcc3dff00e768d3ff00ee0cff00f65d8ab19d575af3
d69775776c35a4bc8ec541bcbbb6d110c314ae81d2162fa9290ccac1b971f4d6a39bae2a90d8fe60
f9cf529244b1d4cdc3130fd4a18347b779ee95eda3ba999233a9a9fdc2c8a1ff009d88f4b9e2a8cfcb
ef33fe61f9d52f2dee75bb7d3b51b22d21e7a3a9827b66bab9b68e684aea0cdc4b5ac8089151ea3e
cf12a71566aba27e618fb5e6db323db47a7fd8e1c5517e445b98fcbab15e4e2eaee3bcd4527b858f
d1591d6fa70584619b8827b7238ab24c55d8abb1579df927f3c3f2dbcfbaeeade54d13598d3cdba2
5e5d69f7fa15d9105e092ca6785da3463495094e41a32df0fdae276c55e898abb15762aec55d8abb
15762aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb157
62aec55d8abb15762aec55ffd2f7f62ac4fccd51e6bf2491defaf54fc8e9b727fe35c553cd77558743d
1afb579f898eca079b8bbac4acca3e14e6e428e468a09f1c55e27ae79b3f2f7cc3e578bce6fa5cf379
a35fd1e4d425d3237bf6841d02e1239fd56b3611ac96b3bfa493ff795e3c094c55103fe55445aa69f6
96b617b237d6adadeded237d4e3d420be135c59b195a49907a61159258eacd247c39abc7e962a9
fe89e69fcadf2ac0bad69a97b636d7da5b5e432cf0de9f574e8259ef418e294163bdc4d20e29cb8b5
0fec2e2acd345f39697aeea136976b0dd437f6cd225d41730342f0b471c12d1c36e392dc4653f9be2
fe5c554fc8efcb4abe1d9357d6107c97519c62af88f57ff009cbdff009caeb2d5efececff002ba29aced
ae6686de5fd09acb738e391955aab350d401b8c55047fe731bfe72dff00f2d5443fedc5ad7fd57c55d
ff438bff39714ff00c95517fdc0b5affaaf8abe30f34f9835ed4bcedad799f518df4af32deea5757f790c2
24b67b6bc9e66924550c79a14762284f25c55f777fce207fce447fce40f9dafe0f2c6bbe5e9fcebe538
1960b9f36b14b49ec577de6b8938c77040fd8fefcf5e4f8abeefc55827e6afd7bf43e8c34dba3657cda
f692b0dcf17911395caab1923478f9a052792960be38abcc87e74f9dafe2d2e3b05b486ef528f485b
9f52c6775b596f6eb4b86e28beb2b3523bd9a505b8a8f4bf6c24ad8aa5daaf9db5cf385a58de6b6af
a6ddc1a6dcab59c31dc41cda4b3b1bb5bb0c1fec34dea471ab74313272e5cd4aaccfca9f985e7df32
ea5690de7e8dd221bbd5e6b292c5adee67bdb686d12e59e19b99811647f42328e0c9f0cbca9c7d2
e4aa235bfcc9f34e9be6092d85aa47a4c1aa7d4b512f6d216b2b04b9b28d6e99c3519268ee2560d
40abc7fe2a971563e9f991f981334d2a6a76968f711dab59dbde69b2152c7499aed8463d689c992e
21319af2e3f617e218aab0fccbf3ede5da595d22e9535b6a9045a946b6723fa36c755920f4dddaa0a
bc1e9d5d77a37a8b40f8ab27b1f3d7984f91f4fd5f5be1a6ea9717e34fd4af96d5ee6d6d4b2311346b
1b1f52169022472370f8641eaaa3ab8c55875af9cbcdfe57b9d66dd2712d9ea17da9dc5a33585c48
61b95be8102f2797e18e6f5dca0614842803d4e98aa313f34fceeb6175abcbe8495d4e1b4d3f4d8b
4f9d79dbac5672cc5e66918d697325289fee9ff00264a2abb50fccbf39c567a4ebf62e6e6da682fcea
9a60d36e20faadec296d58252caf21fab869e4f816b208ff6b6c5593f947cc1e69f30ddeb506b97b65
368f65a6c2d1ad9da5c422e1aed653ea8967653c42c74a2c42a5b97d9e38aa03f2221d3edbcbba6
a47e97e969b42d21f50110bb128916160e2ebd766413732d5a5243f1731b2e2af5cc55d8abb1576
2aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55ffd3f7f62ac5bcdb61ad4da879775
6d16ce3bf9348bc9a7b8b692716c5a39ace7b7aab156150d20343db154b35d1e69f30d9a69fa879
541b259e1b89605d4adca4df5771208e557818346594725ef8ab124fcb9b98aeef6e61f2bdc4515e
c1a9dafd4a3d6204b5822d69ade4b958235b7013e3b68e44a7d97e6dfb6d8aa15fcb97777e6992d
3fc3b7a35fb0b6b4d4dee9758b68c3492de4f22ce4adbef2b3c522bfc3c3d2e2aa3f95555bdfcb4bdb
db2b6b19b40bff4adb4d8f4742baec409b586296015ff0047239149486206fc55bed6f8ab22d1adfcf
565e61d6fccb79e4fb01a96a82ded2396db54059acac83fa2672d001ea932bf2e038f108b56e38ab
2df2769da8e9ba4489aac296f7d757b7f7d25bc52faeb18bcbb96755e7c52a42b8afc3d7154ff0015
762aec55f1f796ff00e705bcb9aafe6379a3f30ff35ef06b10eb1ac5fea5a7796ec99e1b658ae6ea496
337530e2eec5596b1c7c141eaef8abeb2d1b44d1fcb9a65b68ba0585be99a459a08ed6c6d225861
8d476544000c551f8abb15762aec55d8abb15425d699677b75657b7085ae74f7796d1c332f07923
6898d0100d5588f8ab8aa2f15762aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55d
8abb15762aec55d8abb15762aec55d8abfffd4f7f62aec55aaee053af7ed8ab78abcd2c3cd7a6cbf9a
ba85b224a6f6e34eb1d37ea9c419925b6bcd45a47750c691842b273fe4923eeea3157a5e2aec55d
8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8ab
b15762aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abfffd5f7f62ac63cf7a86a
7a7e8f6bfa22ebea5797ba9e9b61f5bf4d2668e3bcbc8a190aac80a96e2c6950715533e5af35f6f3a
5e8a9affbc5a774f0ff0079f1568f967cd645079d6f41f1165a6ffd93e2a9543f965750f992e3cde9e67
bb1e65bab38f4c9f51167a6895ad2191e544ff7969b3393eff0d7ecae2a9b8f2cf99bbf9d7513b53fde
4d2faf8ffbc98ab8f963ccc4d7fc6ba881e02d34bffb23c557f9467d585d79834bd575193546d2efa38
2daee68a1865314b656f71c585ba46868d2350f1e98ab27c55d8abb15762aec55d8abb15762aec5
5d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8

755

abb15762aec55d8abb15762aff00ffd6f5e41e74d7ae7f30355f2a20b28ec74ebab28630f0dd34d341
7567f5991bd64ac48ea4371561f153b1231546fe67c9e8e89a4c95200f31797c123fcad5ad97f8e2a
cd715762aec55d8abb15631e5bdbcc3e71f7d4adbfee97678ab27c55d8abb15762aec55d8abb157
62aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb15762a
ec55d8abb15762aec55d8abb15762aff00ffd7f74d8797b4fd3b59d5b5cb6f53ebbad181af43b968eb
6b1fa519453b2fc3d69d71562ff9c16d35d793e08ede67b6946b9e5e65b88c2978e9ad59fc4a1c32
d47f9408c5539ff0deb94ff94bb53ad6b5f474de9e1fef1e2ad1f2deb84ede6ed4c0f0f474dffb23c557
0f2eeaf5a1f366a648ea3d3d387fd8a62ae6d0b5151f179af515a56a4ae9ff00c6d7155c3cbbaaec7f
c53a991dfe0d3f7ffa74c552df25c52daebfe73b39eea5bd923d46d5cdcdc08c4843e9b6b407d248d
6829b517156678abb15762af9397fe737fcabe56fcd4f347e5a7e6769cfa4da68daa5cd858798ecc3
5c40d0c6e447f598403221e34abc7ea03fc898abea2d175bd1bcc7a6dbeb3a05fdbea7a4dd2f3b6b
db395278245f1574241c551f8aa1eeafacac7d1fae5c476ff58952de0f55d53d49a4fb11af222acd4d
946e7154462a83bed5b4bd30a0d46f60b4e619d3d79163aaab2ab11c88d817507fd65f1c55198ab
b15762aec55d8aa85a5ed9dfc4d3d8dc47730ac9242d244c1d44b0398e442549f891d4ab0fd9614c
555f15762aa7717105ac12dd5cc8b0db42ad24d2c842a2220ab3313b0000dce2a84d335bd1f5a8d
a5d22fa0be8942317b791655e320aa1aa93b30dd4f7c551f8abb15762aec55d8abb15762aec55d8
abb15762aec55d8abb15762aec55d8abfffd0f7f62ac2bf35aa3c9af20eb1ea5a2c9ff22f57b46fe18a
aefcc2d5fcc1a4c5a32e8a9729657d7c6d755d4ac6d3f485c59c4f6d31824100562cad70218e43c5b
8abefc47ef11579a5df9c3f346e355bc7b7b4d585b69d7923d95bfe8d684dc1fa9eab188241c0a3c7
eac36ae844ac39491b34c39f14555ad2f7cce9f995a66bfa59d56e74dd52d749b1bfb8bed25ad5a6
b492ef537a4e3d1431b40248fe2a44d420c8bc5b75528d5747d563f3febd7915acf6a92f9a66b8835
1b8d1aeb55b4fa94be58b7b62fe9c614327d6632950d4f52bb1ae2af7ef2ff0fd05a67a7035b462d61
096ef1981a35118014c6dba53f94eebd31548fcb47fe76ff3a8ff0097ab03f7e9f0ff004c55f2379aff00
e718bfe72e356f346b5aa68bf9b5f53d1af6feeee74eb43adeb11fa36b34cef147c1212abc5085e2a7
88ed8aa4c7fe713ffe7321a95fce2e9d3fdcf6b5ff00547156bfe8533fe7317ff2f0ff00dcfb5bff00aa38a
be32fccff002bf99fcabf98daff00957cd57e75af35d95e18350bf4925ba6b9b960a790794091cb721f
6872c55f607fce217fce3cff00ce42e83a941e719f5eb9fcbef2acad1cb368d731fd627d4e2a72a3d94
84244083c7d4978ccbfb09df157e86e2ac27f33b43bcf30693a4d959dbdcdc2c7ad69b7377f5297ea
f3c76d04e1e591640f1b2f151fb0dcff0097157942e9df9d97efa5417d61ad5adbfa5a3c7abcd0ea36
e8f234573a6bddb874ba0c2b0adda3aa22d5b97c72fa8a5555cde5efcd6bfb1b487ccba1deea7a8c
363e91bc1610000026060f002220574d4643010000000000010000000000000010000000002000
003864010038e401001756a63114b0587ee991ae4169c4f6f3b48e168dcd5bd43cb8aaac9bcada1
fe60c9ac69ade6bfd368f0ea972fa94d1ea100d3654812568658e3b79164fabca4c204522d792f168
9543348aa2b58b1fcc88b5a9351b1b7bdb9b5b1bf927bbb582ee355d42c64bcb66b64b659264446
860f596657f4c3ff965d28ab021a47e60e9dab45a5eadfa5ed75af3192f626d3554064b8b7d06d600
5c8b91516f750bcb26ccac240fc65aba8553fd3342fcd71a930d7acf52bab5d3afdbeaf7116a105274
92ef5729710a9b8042c705dd9fc3285da1e1c1bd35aaac89ac3f3097c97a4d9dcdade5e5e9d42e22
d623b1bc5b2d464b19d678e1b88e49ae19616491e299a2f5e4e0aa563e7c4465562b3f96bf33f48b
1d6adf40d3b53336a736ab346cba840163b9bad46f5edae155ae6303f772c524817d3fe775774f49
956d347fce38605bcb4b5d5cead79ad4d7131bad5209a1b7b04bcb49234109b9f4c23406e17f77c8
8a32347fbc491156efbcbff99cf7da4798ed344d516f6df4dbdb4d4ec64d5ede594ce2ef4b793eaecd
39402ee2b5b8f4791f85dff7bf57f53e1559768da0798e3d1fcdc97f06b13de5ce9eb6da4dbea77f1d
d0915ec114a22a4de8ac9eb06591caa55b70ec9f19553efcb0f2d6a5e59f296996babddde4fa8b58
d825c5a5f3c121b392ded2281a088dba84e01919bab7c4ccdc8d7156678abb15762aec55d8abb15
762aec55d8abb15762aec55d8abb15762aec55d8abfffd1f7f62ac47f33797f82efb871f53d6b2e1ce
bc797d760a569bd2b8aa71ff3b37fcb87fc96c55dff003b3ffcb87fc96c55dff3b3ff00cb87fc96c55aff0
09d9ffe5c3fe4b62adffcecff00f2e1ff0025b1548fca7f5dff001579bfebfe8fd63d5b0afd5f9f0a7d51695
e7bd7156658abb15762af9cbc89ff0042dbff002befce5f53e1ff002bc3f4849f5bfd33fded7d38ff00e3
9dcbf75c78d3ec7fa47dae5f062afa3715762aec55d8abb15762aec554a4fabfab1fabc3d6dfd1e54e
55a6fc6bbf4eb4c555715762aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb
15762aec55d8abb15762aec55d8abffd90000000840010824000000180000000210c0db01000000
030000000000000000000000000000001b4000004000000034000000010000000200000000000
0bf000000bf0000af4300008a43030000000000008000000080fd7fe9430000008000000080feffb7
432100000008000000620000000c00000001000000150000000c00000004000000150000000c00
00000400000051000000f87f01000000000000000000d20100006f0100000000000000000000000
00000000000005e01000014010000500000002804000078040000807b0100000000002000cc00d
301000070010000280000005e0100001401000001000800000000000000000000000000000000
00000100000000000000000000ffffff00fbfbfb00eaeaea00353535005b5b5b005555550056565600
5757570058585800595959005c5c5c005d5d5d005f5f5f006161610064646400666666006868680
0696969006b6b6b006e6e6e00707070006d6d6d00737373007979790077777700828282007e7e
7e007f7f7f00818181008383830086868600898989008b8b8b008787870049494900e5e5e500fdfd
fd00fefefe00f9f9f90078787800fafafa00fcfcfc007c7c7c00e3e3e300dcdcdc0072727200dbdbdb00e
2e2e20075757500dfdfdf00f1f1f10071717100dadada00ededed00dddddd00d7d7d700e0e0e000e
1e1e100f8f8f800f2f2f200efefef00f0f0f000e9e9e900ebebeb00eeeeee00ececec00e8e8e800e7e7e
700dedede00f7f7f70074747400bbbbbb009191910092929200939393008f8f8f008a8a8a008d8d8

d00909090008c8c8c008888880084848400808080007a7a7a00767676006f6f6f00aeaeae00b3b3
b300a8a8a800c3c3c300b4b4b400a9a9a900b9b9b900c9c9c900acacac00aaaaaa00b5b5b500c7c
7c700afafaf00cbcbcb00adadad00b1b1b100b2b2b200cccccc00a6a6a600e4e4e4007b7b7b00e6e
6e600c4c4c400a7a7a700d3d3d30052525200a4a4a400a5a5a500a3a3a300ababab00a2a2a200c
8c8c8001a1a1a00bdbdbd0051515100b0b0b000b7b7b700bababa00c1c1c100bfbfbf00c6c6c600b
ebebe00cfcfcf00d2d2d200cecece00cdcdcd00d4d4d400cacaca00f6f6f6000404040003030300060
60600f5f5f500d8d8d800383838000505050002020200010101001b1b1b00a0a0a000d0d0d00097
979700606060003f3f3f0099999900f3f3f3009c9c9c00f4f4f4009d9d9d004a4a4a00a1a1a100d1d1
d100b6b6b600444444009b9b9b007d7d7d0096969600626262009f9f9f005a5a5a00d6d6d6009e9
e9e008e8e8e0098989800858585003c3c3c000f0f0f000b0b0b00131313000707070008080800c5
c5c5002a2a2a00d5d5d5003e3e3e00bcbcbc004e4e4e002d2d2d004c4c4c006767670063636300
3d3d3d006c6c6c002525250042424200d9d9d900333333000e0e0e0029292900959595004d4d4d
009494940043434300c0c0c0001e1e1e004b4b4b00454545003131310054545400c2c2c2003232
3200535353006a6a6a009a9a9a005e5e5e0047474700b8b8b8002e2e2e002b2b2b00505050003
03030002f2f2f002c2c2c0034343400393939003a3a3a003b3b3b0009090900484848000c0c0c004
6464600656565000d0d0d0027272700121212001c1c1c003737370022222200414141004040400
01717170023232300191919004f4f4f001818180026262600363636002020200011111100151515
00161616002828280024242400212121001d1d1d00141414000a0a0a00101010001f1f1f0001010
101010101012a01260126014fa86f6f6f6f6f6f6f6f828282828282828282828282828282828282828
282828282828282828282828284831d6101010125010101010101010101010101010101010101
010101010101019a2501260126010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101250126250101
25010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101000
0010101010101010101012a012601977e01010101010101010101010101010101010101010101
010101010101010101010101010101010101010173782a2601010101010101010101010101010
1010101010101010101010101c40a2d01020101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
012a0126260101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
101010100000101010101010101262a010101254c7801010101010101010101010101010101010
101010101010101010101010101010101010101010101290192d52a0101260101010101010101
01010101010101010101010101010101015000f5e4400101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101260102010125012501010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
0101010101010101000001010101010101010126012525014e480101010101010101010101010
10101010101010101010101010101010101010101010101010101010126977b01012501010101
01010101010101010101010101010101010101010125a9009090049f2501010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
1010101010101010101012a302f272601010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010000010101010101010101260101260114c826012a012a01b42a0
13e363c27033c016a29272c87404001253d3e333e8b3f443c01010101010125250151800125012
62601010101010126260101010126010101010101010101010120008f00008fcbb229010101012a
260101010101010101010125010101012626010101250125260101010125012a0126012a01250
102012501270146012501260101016b34020102012601260101250126012a01013b0101260101
2525010202262501252a012501252601250129010126012a010101010101012a0126010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101

757

0101010101010101010101010101010100000101010101010101012601012601137d020101022
64cc74a810619708c0e66aac1498cc55f541e0125b2eba8d2e149512b400126012601012501517e
012501012a010125012a012601010101010101010101010101010101254d880000b1000000198
201022901010101010101010101262501250243c0402d9a39403d362c3e243b252d3b874239013
e6a01242d25020101338501013c6c25019a3372aa370101466c2a019a432a2f330101872a3e018
b3d024246276a25463e422a279a98022a3c262a029a0143460241442a013b3e3601012a01013b0
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
0101010101010101010101010101010101010100000101010101010101012601012601106d010
1012535f685246e0d6f703f1024d4858c6f05681ea8010140fa8c38e44601673d260101252a01250
1227d0126010101403b338b3c3b3c3c3c3c3c989898989a9a9a9a9a9a9a9a33558900008f000088
908e500101262a010101010101010126012501014fcd2de9d5aca4ca4b04b2705ea39cca522256
3eebcc8049054601013856497d26cb0c0f6253a4a8701d602707cab76d759559aaab6a0101a5ff4
d39c75e1c1e4cec13470717020910705722c9718704a87ce8ba32caaa2a2527e4a03a010101012
62a01010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010000010101010101010126260101262695760
14601017dca012601c84da624162d50020101088120a8010144fa398534013d372901012501012
52601225a012601016dee77c9e8f1ffffffc9c9fffff4ffffffffffffffffffffe6fe008e00008e0000900000ac610
101010101010101010101262502016731010a571a81a6388d46d348c5872060605c1a0524b2819
b25012a4c59252e7c6b24e4c08d9371a801ab76b8329c2d1f5a6a2711d52543d8688630d03d697
21c351148bd923d0a32d45ba4646481daa7cad5816f493a25010194bb010101270201260101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010100000101010101010101260101262626058301012601430
63fd25aaa660543112c528b6537799f47712a0145c93083041c7078010101012a010126011fb201
01010180008f890088000000000000000000009090909090909090008e8f000090900000008989
0000966701010101010101012501012a029f28010c408031ba45a0290ec405019786637547d203
989e71290101473a01a44ba3015332de447375274f60b587d344536c2c23a23d01a70e2a012608
33a55c305fd8822e7201939bf05f75010182de37183e3d254e24290101d2d1012c3c2a012a01010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010000010101010101010101010126262508b401253b0
22682c64d0360515ab4f89376c62b36706b123001022cf13fc895394837012701012901010101ab
62260101019f00b0000089008f00909000000000009090909090909090909000008e9000900000
b0008800be5801010101010101010126252a01570e430b2fd57f9583d6380a9318014d64585caa3
49756803445022ad29346e45d4b271e30ac244eab3e0a48ac2509c0513c57716803268b21464c6
4d04597634840d36205a244aa32b9866e0172ceb59a47b22b9f197d02012592f3aa969e0101262a
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
101010101010101010101010101010101010100000101010101010101010101252626cd2f2a010
12a0129272529014601414c2925980201e35e0129262637ed32581801269e2901012a010125010
1ab5e260126015dafb0f7afe5aff5e5adadc2aee0fde2e0e0e0e0e0e0e0e0fd900089000090009000
8a00fbab3f010101010101010101012a2601265bbf12c43ea1755783e35153017f5b0f9374d23c71
4c7e6e0f2e46018ca5995dc8a19a1d32be659456154d830e3e472c0b638648534201255a57bb35
701c342cb661203215061e995d949872631d78ef6fd59f516814a4712501d2d3032039262a01010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010100000101010101010101010101252626d04501013
b01290101010126260201012725012a2c042d2a0125026896629714625c212a0129012a0101010
1ab8626012601876c41302c323f393a2c6a30452d373937373737373737372fcd00008f00000000
8fc210372a01010101010101010101250102012565478701263b33272601870146013e4d827397
2a2936013b013b0126019a3326292a273b87a38326013e01272529872a6137019898252a01014
12a0170358701023e29012701870140012601402a401203264298012a0198010297e426013001
26250101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
101010101010101010101010101010101010101010100002a0101260101010101260101010108
3a010101010101010101012626262601010125272702252525253b46469a983e03292a0101012

6260125012b860101262501010101010101010101010101010101010101010101010101a40090
89000000fd14a701262501010101010101010101260146012ac420260101010101010101010129
2aa99e92750101010101010101010101010101010101010101010101010101010101010101010
10101010101013fa624013b01250101010101010101010101010101010101010201012a0187a9a
49f756302013b01010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010100000125262625010101252601
01018bb7032601012626010126262626260101010101012525010101010126010101010126260
10101010101010102198426010126010101010101010101010101010101010101010101010101
2605008f8e00e0dab43e01012601010101010101010101012a0101020146870101010101010101
010129010140269a2701010101010101010101010101010101010101010101010101010101010
101010101010101010101016c01250125262a01010101010101010101010101010101012525010
1290136403c3f9a012501250101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
101010101010101010101010101010101010101010101010101010101010000012a010101012a
012a0125290146e12c260101262601012626262601010101012626262626262625012526012526
0125010126260101262501261b850229260101010101010101010101010101010101010101010
101010101e18a000004724601012502250101010101010101010101012a0125022a013b010101
010101010101260129012a2501010101010101010101010101010101010101010101010101010
101010101010101010101010101014601263b0126010101010101010101010101010101010101
02010101013b250101872a0102010126010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010100000102
010125010101010126010103c73601252601012625010101262525252626010101010101010126
25010126010101010101012626010126256bb4010101260101010101010101010101010101010
1010101010101010126cb00ea948b0127022a01010101260101010101010101010125260101010
101010101010101010126012a012a012601010101010101010101010101010101010101010101
01010101010101010101010101010101010101012601012601262501010101010101010101010
101010101010101250101262a2501012a01012a25010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
1000001012526022a0126252a0101253facb43336418b8b413633983c3e4141413d3d3e3c989a9
a9a873b8b8b3b278b8b878b8b46273b8b8b3b02268b2b39252501010101010101010101010101
0101010101010101010101010129d34c3301270101010101262601010101010101010101010101
01012501012a01010101010101010101010127012626010101010101010101010101010101010
101010101010101010101010101010101010101010101012625272501262a2601010101010101
01010101010101010101250101250101010101262601262a01010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
010101010101010101010101010101010101010101010101010
Suppose method F is a synchronized method when the real-time thread is interrupted. Now, the
generic AIE is marked as pending. The AIE remains pending until control returns to C. The AIE is then
delivered and the call to C is terminated as is the call to B. Finally, the handler in A is executed. The
output is, therefore, just the character A.
If method F had been blocked on a call to the wait method when the interrupt method was called, the
generic AIE is marked as pending and is thrown immediately (as a regular Java exception). This
would be handled by the local IE catch clause. However, the AIE is still marked as pending and will be
delivered when control returns normally to method C (that is D and E will execute normally). When the
AIE is delivered in C, the nearest valid handler is in A, so it is to there that control will be immediately
transferred. In this example, the output will, therefore, be the characters F and A.
Finally, consider the case illustrated in Figure 13.3. Here, if the interrupt is called when a real-time
thread is executing method F, the generic AIE is marked as pending; it is delivered when the thread
returns to method E and control is immediately passed to the handler in D. If the handler in D is for a
different AIE and it has requested propagation, the AIE is propagated immediately and control is
passed to the handler in A (again, the example assumes no finally clauses).

759

010009000003d26402000000b111010000001610000026060f002220574d464301000000000001
009b270000000016000000002000001082020010a20200010000006c0000000000000000000000
d20100000e02000000000000000000006a4000009048000020454d460000010010a202000c0000
00010000000000000000000000000000000005000020030000c40100001a010000000000000000
000000000000e3e306006e4e0400460000002c00000020000000454d462b014001001c00000010
0000000210c0db01000000600000006000000046000000147d0000087d0000454d462b22400400
0c000000000000001e4009000c00000000000000244001000c0000000000000030400200100000
00040000000000803f214007000c0000000000000008400005607c0000547c00000210c0db0100
00000000000000000000000000000000000001000000ffd8ffe000104a464946000102010048004
80000ffed0d9a50686f746f73686f7020332e30003842494d03ed000000000010004800000001000
100480000000100013842494d040d000000000004000000783842494d03f300000000000800000
000000000003842494d040a00000000000100003842494d271000000000000a00010000000000
0000013842494d03f5000000000048002f66660001006c66660006000000000001002f666600010
0a1999a0006000000000001003200000001005a00000006000000000001003500000001002d00
0000060000000000013842494d03f80000000000700000ffffffffffffffffffffffffffffffffffffffffffff03e8000000
00ffffffffffffffffffffffffffffffffffffffffffff03e800000000ffffffffffffffffffffffffffffffffffffffffffff03e800000000ffffffffffffffff
ffffffffffffffffffffffffffff03e800003842494d04080000000000100000000100000240000002400000000
03842494d0414000000000004000000073842494d040c000000000c0a000000010000006300000
0700000012c0000834000000bee00180001ffd8ffe000104a46494600010201004800480000ffee00
0e41646f626500648000000001ffdb0084000c08080809080c09090c110b0a0b11150f0c0c0f1518
131315131318110c0c0c0c0c0c110c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0
c0c010d0b0b0d0e0d100e0e10140e0e0e14140e0e0e0e14110c0c0c0c0c11110c0c0c0c0c0c110c
0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0cffc000110800700063030122000
21101031101ffdd00040007ffc4013f0000010501010101010100000000000000030001020405060
708090a0b0100010501010101010100000000000000010002030405060708090a0b1000010401
030204020507060805030c33010002110304211231054151611322718132061491a1b142232415
52c16233347282d14307259253f0e1f163733516a2b283264493546445c2a3743617d255e265f2b
384c3d375e3f3462794a485b495c4d4e4f4a5b5c5d5e5f55666768696a6b6c6d6e6f637475767778
797a7b7c7d7e7f7110002020102040403040506070706053501000211032131120441516171221
30532819114a1b14223c152d1f0332462e1728292435315637334f1250616a2b283072635c2d244
9354a317644555367465e2f2b384c3d375e3f34694a485b495c4d4e4f4a5b5c5d5e5f55666768696
a6b6c6d6e6f62737475767778797a7b7c7ffda000c03010002110311003f00f49cf38965757da0d6f
c736ed7fa9b4b24078daedfecf6dadffb7103d1fab5fb985f7548871b170995341db4baf363fd47480e
7b5e5eefd27d1f52efd27fc6d8b3df95d55cd7116f4fa06d610edfbb6b87befdfb9bb5d4ba3d2fdff4fde
929b9e87d5a3fe0f08ff66a46e9631db5dcdc60c140b9c2b1546c0219bb67a7ecfa7ff4d51c8bf37ed
2e3465e30c72f6398ddcc04301636da5fb98fded7b58fb6bb77d7fcff00a7fe098b4301cc7fda1f590e
63ae76d73783ed60d23f94929b6924924a5249249294924924a5249249294924924a7fffd0f4aea3
9ecc0a596bd85e1ef1580081a904cebfd559b95d785b8d6d55d3b6c7b1c185eef6c905befdbeed9b
be9ed52b999dd53068af299f62bce490d241702d636d731fe9ef6bdbea33f7dcb3f2705d4305955af
cc69da5a71b1dd603b9de9fd365ee6fb23f4bfb95a4a7459f585adada1f492e000710401b87d2dab4
b0331b9b8c321ad2c05cf66d3aeb5bdf4bbfe956b0713a4e4e4d97566d349a4b403650e01ec7b77
b5ec9bdbff14ffdc7b16bf45a8d1826973b79aeebc1701b41fd2d8efa25cff1fde494df492492529249
2494a4924925292492494a49249253ffd1f50be975be9b98fd8fa9fbda48dc0e8e6439b2dfcd7fef2c
63d019858a1cdcb7d7562d3e9b44433630121d6b039b5bbf976bff0033fe0d1feb0dec384c2cb61a
2f6b1e58f8d4077b1ee639bfe6ac075d51d0dc4b5c21cd36b88323e8c7a9f45253b357d5d6d9456e
199610e6b5db9b2d05c46b6ec0fdbefddbb67d05af8b41a2b2c73b7b9cf7d8e744097b9d67b5beef
de5c70b98047ac607616bb403c3f48ba4fabcfdfd2da77178f56f01c5c5da0bad6b46e7177d1494e9
a49249294924924a58e8095431b08db8d558fc9c8dcf635ce22c8d4893c057cc419e3bac4a7a8b0
8656cc6bea6cfa63d5b1ec0cd6d6526dfa5e9d36b2866cb3feece37fa4494e87ecd6ff00dc8c8ffb74
a164e07a78d6d8cc9c80e631ce6fe94f204840b3a9d0cbeda1b4e4b9d531af99b0024921ecf7ed77
e8fd8eff0084ff0007fcda4dea583707b1d5e57a7f45ce3b8b48733d6f6ecb1ce77e8bf77fe2ff009d49
4eaee3ff004652595fb75fff00706dff0093fedfc8e7fee0ff00c7ff00d049253fffd2f457518fd3e9c2a6b3
e9e3516063371d18c6d565753379fcd6fb2bf7a0dcfbdf787b3aad55d41c49a835925a7f337eef6ed
67fe09eff00e42d4b2c6d6c2f7ced6f30093fe6b7dc8273a8ec2c9ed35583ff0045a4a7371db757974
5f775665acaeb15db56803dc0ddfa477bdcdfa3655f47fd07fd6d5ee98e0ea2c7032d75f7169ec47a
8fd42174ecf07068f5eaba8b3600eadf5bcb847efed616ee5769bebb813593ed3b5c1cd2d20c077d
1786bbe8b925244924925292492494a557f6af4cff00b974ff00db8dff00c92b4b8caaaca6d2d61c7c
8100363d0b7b1ff8afdd494e9bed610dac75bacb403bac2e617070157a6e0ddc58ef7b6e7fbbfd2ffc
1ab187d430715f7d993d62ac865aedec6bdd5b45607e630877b99fd7588eaf2cb8feaf91cebfa1b7f
b5fe09072a8cd7e35ac6e36417398e000a2ee4b5c3fd124a7b949324929ffd3f476673ee6dc1d43d
9e8d81adfe5c5aea5bb77fa7ef77a7eaffc5dd57e911dd92e609752f68e249ac6a4ed1fe17f78a964b
5eea8ec6ee70735c1b313b5cd7c6bfd55923a363cee38d7b8ed6b0eeb1865adfa2d77bfddfcaff48ff
a6929d0b3a8d5518b5be999dbee7d43dda1dbaddf4bdec53c5739d6641734b0fa83dae89fa15fee3
9ed59efc0c7ca77da998f6b5f6863bd4658c05de990fa2c77bf6efaa3dab4719b6036bdec35ef702d6
920980d6335da5dfba9293a49249294924924a52af9cdce752060b98cb43dae26c982d69deeaf46

bff9fdbe86ff00f02cb7d6fa75fa6ac210b6c713b6b96825b25d1c1da929cd347d65ac54da6fc6735ac
6879b43cbcba4fa8e73dadf77b3e87b2bfd27f834e31feb132c7166450e638127d40e2777d1af66d0
c6d75fa5f4d9effd3fe9bfd2516e96ebff00d18ff3bff314dbf27fd1b7fcf3ff0090494d1fb0f54ffb947fa17
a1f4bfed4ff00dcafe6be97f2ff00f004959fb6bbd2f53d3d27646e13bfd4fb3c7f5377e7a4929fffd4f4de
a192ec4c3b7218d0f756243498075858e7eb06693029ae0f065cae64f4d15e1e631b67f4cb012edb
ab4d8ff8fbf66f59b9bd206282e6e4fab636096456cda1fb9954fa8f6edf56d6fa2c494ac3eb1d431b1
9941d971ac6d363c38131e4df6b56c749cebb368b2cb9ad6b9966c019311b5967e77fc62c4c7e95
92fb0b6eb99452d602e790c9166e2cf4dcdf57e83d9b2cad6d749c3384cbe9367aa7d4ddbb686f2c
ac6d805dfba929be924924a5249260e6930082476494baa45dd4eb7bdb563d2faf738b5eeb9cd24
38eef7306359b79fdf5701078d555cce9b8b9ae6bb203896086c38b63dccb34dbf45dfa3fa4d494c5
b91d4cb8b3d0c7de0025a321c480676bbfa2fe76d72932fea0f6ee6538ee1244b6f71120ed70fe8df
9ae41a7a2f4cacb9b503b855f6730e9736a277b6afdedbbbf7ffe2ff9b513f577a4ef71f4dc3d432582
c781a1deddad0ef66c79dfec494cfecd9de87a7b2a99f567d4746ff5bed1e97f33fcdecff0ff00f80249b
f60f4ef4fd2db66cf4fd28f51ff00477fda777d2fe7bd6f77da3f9fff008449253fffd5f51baa17566b24b66
082224107737e96e6f6556ee938f75cdc8b9cfb2d67d1718d069a6d6b7f376ee67ee3d41f98fc9c5e
a2d34be918c5f4b5eed37c303fd5aff91ef568e3e183ad7583f00929cae9dd1ba56560d77d4010f1a
3da06d96efabdb558d755ecdcff0063ebf4d6b6363578ecd9593b740018801a056d6b7686fe6b52f4
70ff0072bfb82130d755d906a036b6b63b6b789fd2feecf824a6da4b2317ad655d65a2cc0b18ca981
d0d92f73f6d46ca98cb194eef4ecb2daf76eff02ac3faa96645943b16e3b5cd6d7635bec787c3777a8
edac6edb77d6f67f23d4ff08c494df594de8358c8c9bbd7b1a329c1ce151353816d9eb8db6d45aff77
d0b7fd333f9c51675eb1f6b5bfb3f2c56f68871ae0b5fbad658db9ae8dac6b6baec658c7dbea32d52f
dbae35b5e3a7e60738121aea4c8206e8b3617f8fe6a4a476fd5c163af233722a179b0915b83768b1
feb38571fcdfbbf73f9cff0888ee841d707fdaae6b19b5cc6b1e443a5dea375ddfa3735dff1dff0a9ddd
66d619385758cf689a9bbe0eeb2ab356fb5cd6fa7bf733fc1ff0039e928d9d79f5b9ac76064eeb034b
06d1077073cb2413fa6adb5bfd4a5bfa4494aa3eaed34efd99578361dcf20b0171801dbcb6bfcedbb
bfaea2cfabac04baccbbcbbdc039af825a77eddc61dfa467a9bb757e9fe92ba7fd0d69875dcb764b8
7ecfc86e331a0ee35bfd473b7359ec66df4fe83fd5fe73f33f7d12ceb760b056cc2bddab773831c61a
5db37fa70db76bfdfe9fb3f33feb692937ec8a76edf56cfe67ecf32d9d9bb7feeff0063fa892aff00b7ad
89fd999bf437c7a62798f4fe97f38924a7ffd93842494d04060000000000070005000000010100ffee
000e41646f626500644000000001ffdb00840004030303030304030304060403040607050404050
7080606070606080a0809090909080a0a0c0c0c0c0c0a0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0
c0c0c0c010405050807080f0a0a0f140e0e0e14140e0e0e0e14110c0c0c0c0c11110c0c0c0c0c0c1
10c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0cffc0001108018b015e030111
00021101031101ffdd0004002cffc401a20000000701010101010000000000000000040503020601
000708090a0b0100020203010101010100000000000000010002030405060708090a0b1000020
103030204020607030402060273010203110400052112314151061361227181143291a10715b1
4223c152d1e1331662f0247282f12543345392a2b26373c235442793a3b33617546474c3d2e2082
683090a181984944546a4b456d355281af2e3f3c4d4e4f465758595a5b5c5d5e5f566768696a6b6c
6d6e6f637475767778797a7b7c7d7e7f738485868788898a8b8c8d8e8f82939495969798999a9b9
c9d9e9f92a3a4a5a6a7a8a9aaabacadaeafa110002020102030505040506040803036d010002110
3042112314105511361220671819132a1b1f014c1d1e1234215526272f1332434438216925325a2
63b2c20773d235e2448317549308090a18192636451a2764745537f2a3b3c32829d3e3f38494a4b
4c4d4e4f465758595a5b5c5d5e5f5465666768696a6b6c6d6e6f6475767778797a7b7c7d7e7f7384
85868788898a8b8c8d8e8f839495969798999a9b9c9d9e9f92a3a4a5a6a7a8a9aaabacadaeafaffd
a000c03010002110311003f00f7f62aec55e63e74f29e83e73fcc9d0349f32dab5f69b0689aa5d476
deb4d0a09c5de9f18722174a90acc057c71557ff00950df94fff0052f0ff00a4bbdffaaf8abbfe5437e53
ffd4bc3fe92ef7feabe2ae3f90bf94c7af9781ffa3bbdff00aaf8aadff9505f949bff00ceb8953b13f5abce
9ff23f155c3f217f294569e5d5dc50ff00a55e6e07fcf7c55a4fc84fca48c054f2da281b8a5cdd8ed4ff0
07f786d8abbfe541fe51ffd4b311ad77371747aec7fdddde98aad1ff38fff0093e1fd41e5683d4d872f5
ae6bf0f4ff76f6ed8aa0bf2f7cb7a2f943f34bceba17972dcd9690348d02e859896596313cd36a6aee
a2577a1611a034fe518abd5f15762aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55
d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55d515a5773d062aff00ff
d0f7f62aec5585ded3fe56d68be3fe1dd5a9ff0049da6e2acd315762aec55d8abb15762aec55d8abc
f742ffc9d1e75ff00b60f977fea2356c55e858abb15762aec55d8abb15762aec55d8abb15762aec55
d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb15762aefd78abf
fd1f7f62aec55855eff00e4dbd137a7fcebbab6de3fe9ba6e2acd715762aec55d8abb15762aec55d8
abcfb42ffc9d1e75ff00b60f977fea2356c55e838abb15762aec55d8abb15762aec55d8abb15762aec
55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb15762ab4ab1
7560d450082b41b934a6fed8abffd2f457987f31355d33f3ab43b8fd230c3f97c2edfc91a959b4aa5df
58bf812f2dee787da5559512cebfcf2362af74c55e53e7cb0f39ea1f99de5c8bc93add9e877cba16ae
d7571a85836a69243f5bd3804545b8b7e2dca879726f0e38aabff00867f3d8a8afe606861aa2a57cb
72529f4ea78ab49e58fcf6ab7a9f987a2d3f678f969c1e9deba91ef8aaeff0c7e7a1635fcc2d1425760
3cb6f5a7d3a962ad7f85ff3cfff002e268e7c3fe75a6ffbc8e2ab97caff009e351cbf3134823b81e5b3d3

761

fee238ab67caff009dd4a0fcc3d26be3fe1b3ff791c5578f2b7e74ed5fcc4d33a6f4f2e0ebff00710c55a
ff0b7e75d7ff2626974a7fd4b7dff00ee218aa5bf97761e66d3bf363cf3079af59835cd41b46f2f3c577
6d65fa39161336a80218bd69ea43063cb977fb3b62af5cc55d8abb15762aec55d8abb15762aec55
d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8a
bb15762aff00ffd3f557983f26dfccbf95371f979aa6b7eaeb97328bc93cd9f5451702fd6f7ebcb72908
9051d64a711ea711feafc38abd3acd2e62b4823bd996e2f12355b89d13d25924000660956e209df8
d4d3156217b4ff0095b9a278ff0087756a7fd2769b8aa7be60f3468de598229b5599c4970596d6d60
8a4b9ba98c6a647f4a1855e47e080b3f15f85776c55265fcd2f21cafa60b6d662b9b7d5a3b39ad2f2
05796d426a8c52c8cb32a948beb0ca5611215e6c388df1540685f9bfe5ad734ed4f5216da8dac7a7
6af77a1456f2585d9b9bbb9b2774736f0ac45e41fbb72420631aafef38e2ac3e7fcfad274dfccc9acb5
3d4e1ff00956f71e54d37cc5a6ea16f677133ac97f7f3db3c93c912bfa70aac6a5de458922a9f51b15
7b55cdd41696b2decee16d608da6924ea0468a589dbd862af3cfcaffcc6d4bf30b4bf30d9ea168ba0
79c742bd92d2eb4e914cbe8417718bbd3a675e4397a96d2c6cebc97f78b227c3c71579d5a7e71f9f
5fca7f959e63d5356d0f4e4f3eea33e9faa5c4b632adb59a25b5d4e8f1b3df0ef6c14fa8c6bcfdb157b
2790f5e9bcc3a75ede9d674ff003059c57b35b5a6a9a542d6f03ac1c524421a59c332481d4ba3f06f
01be2a94685ff93a3cebff006c1f2eff00d446ad8abd0715762aec55d8abb15762aec55d8abb15762
aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb15762aec
55d8abfffd4f7f62aec55855f57fe56e687e07cbbab8aff00d1ee9b8aa5df983a4f9d63f36f943ce7e4fd
3e0d6a3d19751b1d63469ae56ce592d7534838cd0492031f389e05a8723946ce17e2c55807e647
91ff0034fcc971e8d9e83612d9dbb7966fb4f5d3ef52ce18e7d2b515bbbd8a459154cac15425ab32f
a6a9ccf18ddca955136de4efccef2e6ab1798748d1a2d4a5d2bcd5e62bdfd14f7f15ba5f68fe6498cc
2789c82127b73c408e50bc87aa397c4ad8aa1bceff96be7ff00316b3e77d5a0d2ed97fc45f9791f95e
cede0b98d225d58dd5dcc63abd088d16e57f7a40e5c5e8a3e15c55ea3e76d2f5ad67c970f97ac2d2
7f535436965ab7d5a78a09adec1dd3eb85647600b7a41d07035ab7c3e38ab14b5f22f987c9df9c0f
e69f2b5a5c6a3e54f3068a6cfcd4d797feb4ff5fd3dcb69ef10b990b9211e585f7e3c590fecb62ac274
7fcb3f3edaf943f26f44bff2cacb3f917539af7cc16a6eece485added6f2dd5612d252424dcab51827d
96f6c55ed1e47d3ef74e3abc0da041e5bd19af1a5d334e81a27690ca3d49ee1fd066453248c6883a
71e47ede2a95685ff0093a3cebff6c1f2effd446ad8abd0b15762aec55d8abb15762aec55d8abb157
62aec55d8abb15762aec55d8abb15762aec55d8abb15762aec554d63e32bcbcd8f30a3813f0af1af
41dab5df1554c55d8abb15762aec55d8abb15762afffd5f7f62aec55e79e6dd42ef41fcc1d075e3a3e
a7a9e99fa2353b19a5d2ad5ef0c53cd73632c62454dc06589e87fc9c55123f33edcffd32be671504ef
a3dc76edf4e2adafe66c0cdc7fc2de661b1353a44e06dfd715687e6742481fe14f330aedbe9136df3
df154b35ffce8b0f2f68ba8ebb7be51f347d4b4c825bab8234a64fdd4085d9aaeea00a0eac462a8f8ff
0034e3902b0f2879a02b00413a4c94dc57f9f15687e69a9661fe0cf35500a86fd14d43ec3f795c55b
6fcd150c147937cd2c092390d29a9b77de41b1c556ffcad31bffce97e6aff00b851dffe4ae2a82f225c
ea3ae7e6379bbcd12e87a9e8da55d697a258dab6af6e2d64966b49751926e09cd890a278f7f7c55
e9b8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55d
8abb15762aec55d8abb15762aec55d8abb15762aec55fffd6f7f62aec55d8abb15762aec5581fe767
fe49ef3e7fdb0352ff00a85931567107f7117fa8bfab1554c55d8abb15762aec55d8abb15762aec55d
8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8ab
b15762aec55d8abb15762aff00ffd7f7f62aec55d8abb15762aec55e23ff003919aaea7e5af26f99b53
bbb99a5f276b3e5fbfd1aeadc441e2b0d45e195ad6e99d5792c7316fabca58f057f40fc3f1d55673f9
7baaea7e6786f7cdd2cf32796f53f4a3f2ce9d3442122c6dd4afd6c82a24e574cc6450fd2010fc2096
aaacd715762aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8
abb15762aec55d8abb15762aec55d8abb15762aec55d8abb15762aec5568e7c8d69c28388ef5ef5
c55fffd0f7f62aec55f3a7e645d5ecff009d1a869b25e5dfd42dfcb7a65cdad8c177710aacd2ddea4b3
4896f0c882525117d563fdc469f58dfd2e38aa57e9c4cd2217bb55f4a2258eada805085c2c2ecdeb7
c113907eaf75ff004b67fdc718f15576b658d552696f8ce4cbc4fd7afa39091fdf7184dc6eca7fde943ff
1c9fb5fbc18aa90b628a88d3dd905e111ff00b91d42acc5690f122e07a9ccff00bcd17dad5fed7ee97
15435fe93a4eb3a75ce9baa4535ee937504b15edadcea37b35a49006a5c23c86661c1580fadccc0f
e896fdd7ef315574d3e200416af7b0fa660430c7777a5c305e3128b5fac503141fe8f6c0d3518ff007f
ca3e98aaf6b6b49e0a2bcff578d19a493f4cdffd5cc21a9232dd99ff00b856da5bfe3fe8927fa2703f6b
155c2c6379a95bf6ba1318e555babf79beb014388cdb9b8f82e381a8d36bb45fe9bea7ece2aa4d69
a7c89e934b3183d20c8cfac5ff000fab72a2b2cbeb53d02df0aea34fdfcbfe8be9fed62af4efc959666b
6f35db4b35d48b6dacaa4715ec9234d0fa9a759cac86291e4301e4e498391f4ebe24e2af51c55d8a
bb15762aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb1
5762aec55d8abb15762aec55d8abb15762afffd1f7f62aec55f35fe644334df9dfada2b94b73e54d18
48c4058431d4752e1eacdf6a3e4d458d5769e52b04bfba91b1543c51fa4b1c52b91725a61c3e113
09483eb46b150a19e3505af6d98fd5f4e8bf7b69f1aae2aa90858624492446597d231cbea110f067e
16c7d4fb7c666ff8e7b9f8f546f82fa98aa9b1922e4d2bd62613272aaa05a505c3381b2ac24535090
7c7a67d9b1f83156f8485beb29248a9ce36f442441cbb5120554e8f24d5ae9f11fddea29f1df7c5c71
55cc0cc81e39a18ede14983c86491edb8abd276faced208636f86fa61fbdb09bf716bfbbe58aabfa8d
2c8e156659e1950bc090c66f0dc041c217b662224ba74f8adacc7fa35c41fe932fefb8e2aa102c17a
de87af0858a26fdf0964f41edb91733acbfde1b20e381be3fe99f58ff46feeab8aaa7c50dd9b5956e1a
69252b10f4a01722e1a32e61589818febc231ea3d99ff004386dbfd297f7f8ab3ff00c8e84c16de6d8

aa8c8baca18de173340c8da65932b43337c734743f04b27ef1fabe2af56c55d8abb15762aec55d8a
bb15762aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb1
5762aec55d8abb15762afffd2f7a43a9e9b732886def209a620b08e3951d881d4d0127154562af9ab
f326de73f9f57d35bc61ee8f9534c16e15ca5c102fb5112fa61bf76408d8faa64fb3172317efb862a82
b5b5b958995a202d5a1b60862e7e89b48e4ad99666a4a2dfd4ff788affa54937fbddfb9ae2a8b55d4
86d3894dd96bee1b2194348bfe9b5afeef981ff1d103e08d3fe399f162a83305c2b2894178f959344e
0312af1ffbc1c0935aee7f4772fb7ff4b4de98aaa476970227e2be95b94bee6adcf80591bfd3b93290
caa187fb912bf1a9ff008e66d5c5551bf487ae1edda617dcaccc8acb12dc35c2a52d485da11298ff00
de15fee1e2deff00f7fc71553fabbcd63e9a88d6c92d678cd44a6d1ac3d5e571c0ad27faa092bebf3ff
4c171f0daff00a3e2aab1aea115c18d23b86be178aed2562498ea020e21493f001610000026060f0
02220574d4643010000000000010000000000000016000000002000001062020010a20200bf683
ec9a7e8f107dbff0049c556185dad955561e2f66b173512c96aba77adc93986fdf35909683e1ff4f92
ebed7fa262af47fc905b858fce62f038befd3a0ddfaec8f71ea9d32c6beb98bf75eaf4e621fdd03b262
af56c55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb15762a
ec55d8abb15762aec55d8abb15762aec55d8abb15762afffd391798606d3acff0030efadf434d1346
d1bf3296eee3f316cbd0377a35ba3d84937a56d1f1b8756afa4e14f0e33bb302aad8abedb041008e
87718abc6b5cf21794fcf3f9d7acc3e6ad3ff0048476de57d20428669e0003ea3a83303e8bc7c8164
53f172a151d3154f0fe40fe52b3726f2f55b9cb2f237b7d5f5275e32bffbd1f69c6ce7f6875c554dbfe7
1fbf2752221fcb8ab02ac4181bcbd0812d4f28abfbfa5233ba7f27ece2ac287963fe719d85dfa9a618
d63b43aa234936a4ab7765a9ce2d0cf6e4cd4996e262b19e3bc85e3e5f0c88ccaa157cbdff0038ff0
03eb1e5ad1b4af2b5d5f49adea17ba5b3433ea35b0bcf2d828e9703d7f81a073c53f651393a370ea
aa41f989e5bfc93b5f20f98ef7c97a435beada76992ea7a75d5c26a4d677160d791c576f01965092a
3b1a3f1af2e71cc15d59199567be50f20fe4179d2eb581a0e8972ba9e8f79047abdbde3eaf617915c
88164b691e3b99239378594c3253ec7d9c55901ff009c78fc9c2a10f9650a085ad029bbbd23eaeefe
a3454f5fec17f88afd9e5f175c555bfe5417e52fac2e3fc3e7d7131ba12fd76ff9faec9e9992bf58af329
f096ebc7e1c5557f2b7cb5a27942efce5e5ef2e5a0b1d1acf5783ead68af248230fa558b100c8ccd4a
9d857157a262aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55d
8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb157fffd4f50c7ff38f1e55921d4ec758
d735dd6746d73531aeeb9a45e5dc29677da80319e73adb410b143e9475843884f05fdde2af5d028
29e18abce34f95ffe57c6bf010dc0f95347756fd9a8d4352069efbe2acafcc9e70f2d79412ca4f326a3
1e9e9a8ce2cec4ca18fad72c0b08902a9ab900d17a9ed8aa16db5ff2e79eac359d1f46d456691213
6b7eaaae92c1f5c898233248a877152be34c55e69a4e87f9f369f964be5392db43b5d7341b5d3f4b
d3eea0bb9a53aa4165344b34dea3c2bf53692de3654f8666499b9f25e0b8aa45e4ff00ca4fcc2f2d6
a9a7dec9a769ff568bcd9e63d4e6823d424731e95e67849122bbc15696ddcf0287fbd1c9b92d7154
c8792bf386fbf27752fcb1d5ec746175a7e990e8da36a16b7d37fa78b796358a6903400db858231c
d6b29794fc3c1462ac9fc97a75df97ff377cfd71ad3c104be773a7ea9a0da47234b335ae8f61058dd1
96881138c8cbc4733c837cf157aae2aec558779401ff14f9f8f63abdad3fee11638ab31c55d8abb157
62aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb15762a
ec55d8abb15762aec55d8abb15762afffd5f7f62aec55e7768bc7f3d357249abf9534ce2bfb345d46f
ebf4ef8ab1eff009c854d45e3fcb31a4c90c5a80f3d691f577b9469200e60bb039aa3a311ec1862a8
7f354bf9a1a5794bce97d73af69b63e7cb5bbb5bcf2ecba65aa88eef4d45852dec258a65b896b717
06e2043c9dc4b2728be1f831542e85f983abf9acf907cb567afdc5bcbe74d0f55d7a4d7d6181678ef2
c9edd7ea31a491041e834efea2b27a8560f89bed9c55176de69f37eb1aadf4565e68b38a4f25dde8
b06bb2388a0b1bfb3bab5b6b8bbb830fa1348bf58f5255b5293054923e3f151f92ac3e3f39fe649d27
4bd66e3cd125dfe96f3079afcad7ba59b6b580adae9e353fab5d5bfa5187135bfd4d1a46e4cae87ec
72f8b155fa5f9ff00cd3e4ef2e7e5ba586a13eb1a74df971abf986e2cee238a69aeaff4ab3b19e02654
556ff773a7107e2db9726c5513e6bfcc0f3b796a2bad3f43f3236ab06a7e4a93cdf69adcb0db492da
dec3756d1829188d13ead70971fbb460cc850f17c55eadf97f77ad2eb1e74d0357d526d5e3d17558
a3b1bbba4892710de69f6d78d19f452352a924ce23f87904e2accdc6b8aa27ca247f8abcfaa2b51aa
da135e9be9165d3eec5598e2aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8ab
b15762aec55d8aa0758d634bf2fe9775ad6b7771d8e9363199aeef276e31c51af5663d862ac2ff00e
579fe53578ff8a6d41a5775980dbdfd3c5563fe7c7e51a57979a6d85295fddce7ed1207fbafc462ab8
7e7afe531240f33db92a403fbbb8d89e9feebc55a4fcf6fca690728fccd030ea2915c548af1a81e978e
2ad9fcf3fca908cffe2487829e25bd1b9209ad36fdd6ff00462ad7fcaf5fca9e613fc449cc8e407d5aefa
78ff738abbfe57afe54d09ff1127c3d7fd1aefe5fef9c55c7f3d3f2a42863e624a1a81fe8d77dbfe78e2a
e3f9ebf952363e624dbaff00a35df7ff009e38aadff95f1f94f5a7f8896b4ad3eab79ff5471565be59f35f
97bce5a67e98f2cdfc7a8e9a2592dda78c32f19a06e32232b8560ca7a823154e7157ffd6f7f62aec55
e7daef943ce43cfcde78f296a5a643f58d221d1aeecb54b6b89c7fa3dccd70b223413c54afac54860
715487cdff973e78f3e47650f9b23f296a9169d2fd66c52e2c753a453914f51785f251c0fb2dd57b62
a97695f93be66d11d24d32d3ca16f2a5ddbea2245b1d58b9bbb3575824667d458b18c48dc43540e
58aa85c7e4a7986f74e7d22ff4ff00245d698fa89d6cdb4ba4ea4c835390d65b91cb5034792a79d29
cbf6f9d4e2aa1e76f21f9dec60befcc8b8b7f2549e69f2d695752697aaa68b786ea08ad22796244e5
7a50fa64562e6ac11b7518aa5bf951f955f9b7e5ad1e6d46ea6f27fe9dd5ae2f35297506b3d46f59c6

763

b12b5dca389b8b748cd6431b044f8d157931a62a9f693f93de6dd0aef49bed22dbc956777a0c135a
68d243a56a6a2d6dee8b19a38d7f489015f99e429e1fcab8aaa1fca4f391d1affcbde8f92c687a8f01
75a70d2752f41e28d8bac54fd2438c6ac792469c634fd94df154c745f21fe65f972ff52d4f43b9f2959
dfeb0c926a972ba6ea8d25cbc2bc23690bea4d52abf083fcb45e8062acbfc8de5df31e8afae6a1e6a
bfb3d4359d6ef52ee47d36de5b4b64486d60b5440934d3b5690f2279fed62acbb15762aec55d8abb
15762aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55e79f9e82bf94fe661d7f7117f
d4445e18abd0f15762aec55d8abb15762aec55d8abb15762ac03f2b8a993cf1c4d69e6ad441dc9df
d383c71567f8abffd7f7f62aec55d8abb15762aec5588fe63de5949e48f386962e62fd22ba06a13bda
735f596192da64590a579052cac03529507154dfcbd776ada5e9d62b3c66fa3b0b59a4b60ea6558
a44e2ae56b50a4ab00ddf89c5537c55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8
abb15762aec55d8abb15762aec55d8abb1579f7e78827f2a7ccc075fabc7ff27e3c55e838abb15762
aec55d8abb15762aec55d8abb15603f96086397cee194272f34ea0c157c0c56fbfccfdafa71567d8a
bffd0f7f62aec5526d63cdde54f2f4d1db6bfaee9fa55c4c9ea450df5dc16cee80d392acaea48aed518
aa5dff002b37f2dbfea71d0ffee2769ff5571571fccefcb61d7ce5a1ff00dc4ed3feaae2ad0fccff00cb56
151e72d088f11a9d9ffd55c55e5df9e3e6af26ddf94f52f33f957cd1a1dd79934dd3350b49ec63d42c
da5d474abcb764b8b4044a0f3078cf07fc5d12ad292362a9c7e56f9abc8da4682bad7997cd9e5c8fc
e7ae456d3eb3e86a568561482211db5a2b348094b78fe1afed4a65929fbc38ab3aff959df96dd3fc6
3a1ffdc4ed3feaae2ad7fcacff00cb5e5c7fc65a1f2a569fa4ed2b4ff91b8ab9bf343f2d1012de73d0801
b9aea767d3fe46e2a9de91af687e60b76bcd0753b4d52d11cc4f3d8cf1dcc6b2000952d133006841
a62a9862aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abcf
ff003bff00f255799b6aff00a326c3fe33478abd0315762aec55d8abb15762aec55d8abb15762ac13f
2d578dc79df6ebe67be3b7bc16d8ab3bc55fffd1f7f62aec55f387e6c59e9d7ff9db1437d676f74c9e5
480c6d2a2fd61396a3700fd5e79018edd8d3e3924d9e3e50afef245c55281a0e802323f466980048f
d4e3649e805ad0031bafa9e803fef2db0fdfd8cbfe9177fb9c55b9f43d15a41e969168e033299162b6
7981a565e33f1f4d242a7fd3a43f06a0bf0587c78aa8a68be5f0aaa749b02c7d22a86ce3286bbc652
1e1ca38d47fbc3137c7a6bfef6fbe1c55563d0741f4e834dd3f98328443691846e26ae1a30bca5e43
7bfe1ff1d4fb7618aa90d0b4467643a6599de3689bd1823b865607d33f59e1c0b85ff78e607869e9fb
bbefde53155cba2e80d047c747d37d058dca32d8c620e2cc030550bea2c04ffbd76cdfe91a949fbeb
3fdde2aa8fa1685cc32e9b68ca24a97586df9f3e3556f5ca85fac85fee2f7fde5b583fd1a7fdf62aa7fa
134158c489a6e98d188d8efa6abdb9466a2d6323d46b5e7bfd447fa535c7fa57fbcf8abd2bf22aded
ad66f3c416b12c4835880baafa6cfea1d32d39fa92420472c95af29231e9b745fb38abd7f15762aec
55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb15762aec5523f38796adfce3e59
d4bcb3757125ac1a945e8b5cc214c91fc41832870549047718aa03fc3de72ffa9c64ff00b87da7f4c5
5dfe1ef397fd4e327fdc3ed3fe69c55dfe1ef397fd4e32ff00dc3ed3fe69c55dfe1ef397fd4e32ff00dc3e
d3fe69c55dfe1ef397fd4e327fdc3ed3fe69c55dfe1ef38d7fe531969e1fa3ed3fe69c55dfe1ef397fd4e
32ffdc3ed3fe69c55c3cbde71efe7194ffdbbed3fe69c55bff0ff009c3fea7097fee1f67ff34e2aeff0ff009
be9bf9c25affcc059ff00cd38aa2bca7e571e57b7d451afa5d46ef55bf9b53bcb999238899a7544215
225550a163503bfbe2ac83157ffd2f7f62aec55f3cfe66c51c9f9d4e65dd0794ed6a81bd50dfee4ee4
8e767d6e40603e1e9135276feef1540d235609148658cb3956127a8fc8ed271ba140ae69492f5bfe
3a8bfe889f16f8ab52a4462315b10bc923257eafc93e034005b6c78a8fb1013fee0bfbe9392fc38aa1
e67b7494f327d460c47291cb004f13570794bcc7f79357fdce7f751d062aba37e71bb48bca65744aa
b188d54d14072d58a80feea9ff001c0ff7672f8b156bfd16454f5a81c890449e8f0fb4694faab1dc102
b2403fe3b7fef445c51698ab8a099da497a33232949db97a8943cbeb61824ac2bfbad41470d257fd
1fed8ae2ab51928f1923ea7c1fd34fab33a7a65aa83d1229e9f2eba57f797edfe9b5e35c55594a99d
107229ea16665ba0ce19541afd6d68a8f5dbf4bfd945ff0071aabea7170ab3cfc8d1107f39fa238a7e
95b6f8445f5550dfa2ecf9016a4936c01aff00a39de3efbe2af5cc55d8abb15762aec55d8abb15762a
ec55d8abb15762aec55d8abb15762aec55d8abb15762af30f2a7e735879dd7ced079674a9eef56f2
8dd2db5bd9bb7a635186e230d6d751394da195848a1f8b516367f8b1542cff009ade6c1e6bf34792
74ff0029dbea1e62f2c68f69ae3db43a93aade2de9940b7859ecc5240612017015aabf67154c7cbdf
999aa79e359d634ef25e8d1cda5f97a61a7eadad6a3726de0fd2c8aaf71650c71c5248ed007512ca
c123e7f0273a351564fe4fd7759d7b4fbb97cc1a29d0754b3bdb8b292cbd71768c90b0f4e6495523
0c92a1575f86ab5e2df1038aa51f99df99163f975e5abad6d56daff0051b596ca3fd12f74b6d33a5ed
d456dc947176aa890b81c7e2e34c5595cbac69305ec7a64f7f6f16a3353d1b37991677a824714279
1d81e831561ba57e64a798bcc7aae97a02585ce99e5fd49f4bd76ea6be115c4422b34b99278a211
b8744796385b93a6fcdb97c1c5956583cc7e5e36cf7a356b3fa9c728b792e3eb117a4b3b529196e5
40e6a3e1eb8aa82f9c3ca4d189575fd38c4c405717901525a4f4450f3a6f27c1febfc3f6b1546c5ac6
9135f36970dfdb49a9a0667b24991a755420313183c80048076c5589eadf9916763e7bf29f932c05
aea0be657d4629ee61ba5335a3e9b6cd706b12ab720c5781ab2f16f1c559ce2aff00ffd3f6cea5f983
e4bd22f2e6c351d6ed61b9b11cb505e7cd6d015e63eb2ea0ac355f887aa53e1f8ba62ac86dee20b
bb78aeada4596da745961950d5591c725607b820d7157cdff009bbac68ba3fe76c4dad5fdb58a5d7
95218e1fadcc96692f1d46e0ba7d6d88300a104b2ef27f73feecc55205f38792a58cac7e62d3248a4
48d5e5fad5b44783380ac600fc58bb003ea7f634cff7a93e2f87157379bbc8c8ee83cc1a596713095
3f4a4468eabfbd1f580f51e9ad0acfd75afeea7a018aa84de76f2699129e67d35ee394091d2ead98d
5f7572aadfbb2e0fc68070d17fbc87156879e7c8e579b798f4c8e53eb71417b07d98ff00bca23302fe
9815453ff1dbff0077f103655b7f38f9259b8cde60d2d0ab441221aa5b95208fdd2fd69df951f72d3afc

5a3ff710d57e2c5549bce5e4af4e223cc7a5ac4b1c946f5edc33a235391b5e6523319af0b053e9eab
fef44de18aab1f3a793195913cc9a6185678d28354853e30b554f5f97d9906f26a7fded9ffbc710e3b
e2aba3f37f91d543c3e64d39edf873691a7b552abea50482d95c23307f80698dfb9a7fa7b7ef3e12a
bd53f20afb4fd497cef7ba5dc41776726b71813dadcadfc3ea0d32cf9aadda93f58e2db7ac7e27ef8a
bd8f15762aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb15762aec5587fe6
66a7aad8f952ead342b7b99b58d54a69b6b35adacd79f55176c2392e9d615621608d9a5dfed3284f
dac55e49a9f94bce5f969f9abe45f37e9cd75e64d127b27f29f992d348d20c5e869312fa9637127a0
645616f36d4da4f4ddb8023962ac8bcb76ba8a7fce49f9cb5c9349d421d1350f2fe95a6d9eab259cf1
d9cd776135cc932899978ecb227163f0bfec938aa5df96763a9fe4a6afe76f2df98f4ad46f340d7fcc5
7be66d07cc5a659cfa9432a6ac519ed678ed12496196275a55d3d3914f257ea3157a4eab6de73f3
3416779e5bd664f28c68cfebdbdee9d0decf711d5783157997d2e8df09f8b7f8829db15786f9d743f3
2be81f9a5e53bef296a7ab79875df33da6b9a26a56765f58b6bbd3e1b8b17b7ff4853c51ed52068fd
39591be1e48183e2a9b699e5bbf97cd7e64d13cede53d6f54be9fcddfe2af29ea90cb2a694f0a089e
ca49ae626a5bbda843118a4f88aafc29207a62aa1aae89e6bbdd07f38ad746f2eea13ea57de69b2d
6b4eb29217b0fd27a6d97e8c1711c17132ac64ca2d664504fc5d7ecb571550fcc3f2c695e66f23799
b58d07c89af36b3e65bef2fc97e755b6b896fee64d2afe2663f547690c621b65914cfc63f501f4d5a4c
5598cfe51f2fcbf9e5a6df43e520347ff0d5dc0ba87e8965b14d42e6fa0bb50ee6208242a8cc4b7d97
f84d1cd315623e53f2e79a351f2958681a8f96b59b1fce4f2b58eaf6363e68d425946950de5ec1340
d7b6f72b2149d6e0b2388f8d439e4ea9e9f3c5530f2ae9fac5feb3f92923f94754d32f7c99697da6f98
e7bbb45863b6924d27eacdc662c04d1c93a821e2e6aff6f157d118abffd4f497fce3570bff00ca074f3
2aa379ae6d4b5a8fcfb1cd4f57f4b9bd996e56e2bbed1f054e47fb8f4a9f071c55ec3a5c5630699650
69655b4c8a0892c991fd44302a011957a9e438d28d5df156022dadeebf3d7505b9852654f2958f00
ea180e5a95dd7a83fca31567bfa2b4bff00961b7ff9149fd315582c346329805adafac17998fd38f905
2695a52b4ae2a976ada8792f42b21a8eaf2e9f6762d730d8acf288821bab895618a21b6eecec142e
2a8bba8746b786778ecada79e185ae05b22c224745048a72a0009140c7e1c552ff0029dfe83e6cf2
de91e63b5d3a1823d5acad7515b57489a5892f2259555f8822a0362ac7357f3d687a3f99f5cf2bc9e
59926b9d07441e65b9b98d6d043258b492c6047c9c37a9ca093e16555dbedef8aa37ca5e65d3fcdf
a6797f5db4f2acb6da37992ca3d46caee65b46f4e19e05b8884c91c8cca595a9b7250df0938ab30fd
15a5ff00cb15bffc8a4fe98ab13f25c7143e6cf3fc5046228d754b2a2aa854df49b33b00062acdf1576
2aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb15762ae
c558cf9a3f30fc95e4ab8b4b3f34eb56fa65e6a0b2c9636d31632ceb6e85e4f4d1033371515200c55
71f3f793d66b385f56894dfdcc563692b07581ef2e2312c56fea95f4c4aea41588b7335a71ae2aa33
7e64791edf51834a9b59856f6eaf65d26d9692149750b7fef6d9240bc1a54fda8c3725a357ecb62a8
3f2d79ef4cbcd2f51d4b53f30e99a8c116b573a45a4da5c73461645938c566c8ef2b4974a0d24f4f66
6fb28a315465efe6579174dd3ae756d435cb6b4d3ecefa3d26f65b82d11b7bf9b8f08265750d1bb73
52a1c2d4329e8c3154c740f35f97bcd1f5e1a15f25dcba5dc1b2d4a001e39adee02abfa72c722aba1
2acac392eea6a3154e715762aec55fffd5f6cde7e5f792eff549f5ab9d12d9b53ba2ad7b3a298feb2c
802a9b8542ab310a3883287f87e1e98ab234458d163450a8a02aaa8a0006c00031579dc0a07e7d
6a0c1b73e50b1057e5a9ddeff8e2af46c55f3d7972e744bfbcd5edfcd5a26a33fe70f9667f304f7d2e9
f6d776ad3d85e0ba16cd15e0511490cb6cd125b4664668e654e31abc44aaaf27bd161a9796ae49d
2e49bcb1f5efcbef3135926937696b1d8417be85fc8127879cc5114473c8c3d6982b33270c55e9de
4fbbd164d6755b4f39697a8c3f993e5ed6b58d5e0bb486ee187f405c7ae965319c2ac4d66b6ae91a
d9976613474f43d45c554bf239fcb1a7798fc85068b0fd52ff0051f20a45ac0582689e6beb39edf825
cb3a0acd1d2e42890f354e54f8298aa23cf1e61d22dff35ff3104b24a0b7e5fc7a644eb6d3ba497a97
17d2b411bac643c816788f0524fc6315407e433f9574b83f2e23b2d535ed4bce4fe5ab7d1f51d0af4
dec967a728b6826b890adca08edfd37b6f482ab55f9aa28217655f4de2ac33ca1cbfc5bf9800fd9fd2
b67c7ad7fe391655c5599e2aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb1
5762aec55d8abb15762aec55d8abcb3f30fcbfe60d4ff343f2bb5fd33479350d1bcb577aa5c6b1748f
6ea205bfb07b388aa4b22bb90efc9b829a27bed8ab1cd1bca3e69b1f366b9a1ebbe47b3d734ab9f3
04fe62d07ce1737303da5bc53ce2e944f6cec671736f2556131c7c0d13f79150b62ac73ca2acde61
b6d42f7cbdac6a3e417f385ff98bcadad5b5d6973e9314faacd3db25c86174b76d1bb5c4b2fa3e8fc0
f2feda262aaba5fe5dfe6143249e61fd0724179a37e636a5e73b7d1a6b8b52da8e93a9dbcd6b489d
2678d674597d45494a2edc79ef5c555bccff0096fe73d5af7ce7e6fb0d1676baf39eb5e50b8874092
6b4492dacfcad7114d35c5c334c62f5265565544673458b97ed70559d7e5b7957cc9a27e65fe6bf9
8357b06b5d1fccfa969d75a25c196193d68acf4f8ed246291bb327c71d47302ab4c55ea98abb1576
2afffd6f7f62aec55e71113ff002beee8763e50b627e8d4e7feb8abd1f1575315762aec55d8abb1576
2aec5585f93cffcedff00980bcabfee52c8d3c2ba459e2acd315762aec55d8abb15762aec55d8abb1
5762aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb15637a67e5ff91f45d52
5d6b48f2f58596ab33b4925d416f1c6e5dcf266141b12772475c559262aec55d8abb15762aec55fff
d7f7f62aec5583f997f2f6ef59f34279bb46f33ea1e5cd5869e3499bea31594f1cb6eb39b85e4b7904
d460cc775e3b62aa2be42f3803c9ff0032f5c634e82d346515f1a7d40e2ad7f803cdbc99bfe5666bfb
8a28fabe8b41ff0072edf156cfe5ff009a8b027f32fcc216b52041a28fa2bfa3ba62ad2fe5ef9986edf99
7e6427fe31e8a07874fd198aa57a7797755d4f58d5f43b7fcc9f347d73427823bd2d1688a85aee113

765

a71234ddfe13bf4df154dffe55f7992a4ffcac9f31ef5dbd3d1682bff6eded8ab5ff002af7cc7d7fe564f9
93fe0345ff00bc662ad7fcabcf31d287f32bccbf3e1a2ffde33154ebca5e505f2a8d4e49357bed6eff00
56b95bbbcbed4cdbfaa5e3823b75502da1810284897f62bef8ab24c55d8abb15762aec55d8abb15
762aec55d8abb15762aec55d8abb15762aec55d8abb1549fcd9713da79575cbbb6768ee60d3eee
586443c5d5d217652a7b1046d8abe6bf2b4b7d7be56d0f50bfd675ab8bbb9d36d6e679e6d5b51b2
3299adc3979d3d6616b0161ff1d2f8a266f8561c55339ed6ee1959db54d5c24618cdf58d72fad2358
fe2e22e25333fd521f8418afc8912eebf0c71f218aa94b04f081f58d5b575840ff4892e75abfd349889
6086e4c93b8b053b7d5e57e7f5e34551172c554459cdc564b8d4759a2c6a267bad5f52d3983b150
a6e636b87363351bfd1ed5bd4faff00c3c648ab8aa121b1ba1fbe9b50d69c95f4e4f5355d5124138a
15f5203720c57a49a268d5679bed7d617a62aa874d9648deba96b68f2f08e110eaba95cca671cbe
08a13729eb5d103f7fa6d55ecc727f5a4a62ab24d3a5762b6fa8eaefeab0f4bea9adea37ea1908591
2dd85c21bc40093732a88ff477ed7adc71553164816adaa6a92425de635d7f5158bd25515a5d19e
9f5256d9b5809c797eebd0fdac5549ac5c32a1d4b5926346e6f2eb1a95b39f518889ee57eb245af6f
a9ad5c6ac69c7d0e58aa11f4fba6f4c1d535f5b8a089962d4f53967137561f54fac83f5d23ede91cf9d
b47fe91ebc9f63157af7fce385fdd5ef95bcc905d5fbdf8d3fccba95a5b3c9a8beb3e9c0a21748d6f24f
8a40399ebf64fc1fb38abd93157ffd0f7f62aec55d8abb15762aec55d8ab01f27ff00e4c6fcc7ff00989d
27fee9b1e2acfb15762aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb15762
aec55d8abb15762aec5524f391a7943cc07c34dbcff00930f8abe6bfcbf2b1f917caa96c82e41d3ec6
28bd126e40b94b553c60926fb77bd0fe8f947d4e9f1f2e58aa7a8d294892c81553732476fe82acb27
d6555f98b449be19af4711eb59cffe896fbfa2c786eaa8a10df574b15925495e55b53628b7bfbc52e2
71602e801753809fe9705cfee6d5799b5dd062abac8caf0db1b764faacd1cbf558ad09bc89a0057d6
fd1ed7146bb8773f5c96ea925afc42d3f6715414771241610000026060f002220574d46430100000
00000010000000000000016000000002000001042020010a202008b14b1b44f0b59b496c2191a5
80d900a6436d332abcba6d4933ea120fd2109fee948c556dcbb98a48a7f4cc296892ccb772c91402
d3e2f4cbc91afa91e9c081e86a31ffa7caff0ccbc6b8ab72854171f5ae2045f577b8fd23fe8cf5908588
df1b6045b5453ea3f57ff007b76fae77c555c45220e2e67370b7421e32456eb7a2fe4018728e8621a
8d0feeec17fd01e3f8dcf3c554979c725bc7003c4bcf1dafa044ec163e5eb8b4f505277a0ff720b31e1
62bcbea35655c552c939c9109243682d9ac5a6abdc48969f5142389170a04bfa30bfd9d4a9fa48cd
48993d238abd27fe71ba39e1d37cf71dcfd67d61e6abae5f5e821b59c8365674262b7f80023ec30d
dd68eff001938abdb3157ffd1f7f62aec55d8abb15762aec552bf31dceb365a15fde797ad63bed66de
169acec65628b3bc7f17a418746700aa93b062396d8abc7b40f3fdb5d79c75e9fca8d1de5ff009cafb
43fd0ab282d18b54d3229eee6942302a2184303bff7c523ead8abdd715762aec55d8abb15762aec
55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb15762aec5525f38ffca23afd373f
a36f36ff009e0f8abe61f2b34b6de50d03773347e59b19253723d526c7eac839dc24268da6023ecc
47f48f2fd9e38aa7174d3c3f5d5938394b08a5945da31885902de9bdd884f26d3eaa3eab1db8fd20a
78fd63f6b1576ad2bc42fcdfb81e95bdac9a89d5419105bbb9584ea3f5424bdb9207d456ceb708dc
3ebbb73c5556e66b88e4d492fcf1303dafd70ea11a4d3a49204fab9d51ad8f0798d47d48d9fee631f
ef6e2a80ba9ee8ddde1b93324b0df5aadd9b8688dc26a12a2fa62ecc27d2fd2a4b7fa2cd07fb8c5ff8
f8c555525be69d1a2f59a7fd27243e9c4d18b91a8f172e90c921f49756a2fefa593fdc53aff727962ab
74f694476505b29e72497315945a6110f2912bf58162b76df032a83fa40ddd1255afd40d78e2a87b
70cda74207d50dbbd84b342b6e93ad99b446e4fc15ff7bfa32bfdf40ffee4cc9568ab1d31554134de9
ce666468d63b292e05d7c6a6de4908b77baf4b768aa07e8c5b7fdec4dc7f48d072c550ef36a8da89
4916f3eb2ba9346554db9be1a8347cd57993e81d60afda987fb89fabfc3cbd6e38ab3ff00f9c6210ae
8fe7a4845b2a8f36de865b149e3b70ff55b4e4156e3f780d6bcabf0f2e5c3e0e38abdd3157fffd2f7f62
aec552bf316a973a368d75a8d959fe90bc8822db597a8b07ad2caeb1a2191810a0b30f888db1561f
f00e2cfcd8ffcb7307453ff001dfb7ea4ee3fde7ed8aae3e6bfcd70683f2ea022adbfe9eb7ec363fef3f7
c556ff008b3f36695ff957307ecedfa7edff006baffc7bfecf7fc3156c79aff35ca927f2ea007e2dbf4f5bef
c7a7fc7bfed7fb78abcebc93e4cf3e7927cfde72f3c69ff97f173f35496cd0587f8822f42c94460dcfa48
602abeb4dfbc9388dfe1f0c55e89fe2cfcd8ffcb7300d98ff00c77edfa83b0ff79fbe2abbfc57f9af5a7fca
ba829502bfa7ade9422b5ff79fb74c55a3e6cfcd8a547e5cc15e35a7e9fb7eb5e9fef3e2ad279efcf16
5aa69369e63f24a69ba6eab7c9a77d7e1d5e1bb313ca8ee8c6210c64825389a1a8c55e898abb15
762aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb15762a976bf6536a5a16
a9a75b53eb17769716f0f2345e72c4c8b53e1538abe66f2e7e5d7e72e87e5fd1b436f27d8a8d2fead
1b3da6b30c6845b42919ba8c3db92b7a4afc3715e213e131e2a9943e4cfce143196f27dbc645dbdc
3b41adc113203d2e603f573c2f9fa4d734e2e397eed797c2aacb5f24fe72a3da3cde50b3b768a69d
e4361adc56c601202167b2ff00476f46ea4dbeb531e6271cfe04e7b2aba0f257e71a456719f2769f6
d242970929b2d69218e0697a7d4435bb98125ff008fc53cfeb1bff778aa11bf2fff0039cada01e4fd2e
1f46ce680c56fab2470432caa47a16c8603e9d8495ff0048b46e7eafecc898aaf6f217e73885a34f28
696c1ac52dcc0faba35a99d4d4db345e86fa62ff00baecb9555b7f571574fe40fce765b858bca7a6c9
ea456f1c46fb584b9f53d3a738ef3fd194cf0c7ff1e51d57eaedf112ff0067155697c91f9cb24cec3ca7
6c50ddc5389a7d7e392e5a3550ad34b20b5f8ef9294b6b9a010a5138353755420f20fe74a496eafe
54b358619ee5da48b5d449a38e4522392d9feabfbbb897a5eca41faca175e31d71541b7e5cfe7798
d0ff0083f45332d8bdbfa07544fa9094bf2faaac5e81234c61f149675e4d2fc7eb2e2af60fc96f2979a3
cafa6f9865f3643f56d4759d59afe2b76bd1a93c700b4b78154cc228850189b8271f8138ad4e2af4e
c55ffd3f7f62aec5525f35d7f43353afd66cbfea321c553ac55d8abb15762aec55d8abb15762ac2ff00

30bfbcf287c209ff0011d8d0904d3f7736e29d3156698abb15762aec55d8abb15762aec55d8abb15
762aec55d8abb15762aec55d8abb15762aec55a15a9af4ed8ab78aa9b4f024d1dbbca8b3ca19a28
8b00eca94e45475205457e78aa0350f31f97b49ba82c755d5acec6f6ea9f55b6b9b88a1965a9a0e0
8ec0b6fe03154cf15762aec5509aa6aba6689a7dceadacde43a7e9766865babdba91618228c7567
7721547b938aabc13c375045736eeb2dbcc8b245221aab238aab03e041c555315403eb9a3c7ac4
5e5f7bfb75d76681aee2d34c8bf596b78d82b4a23af2e00b005a94ae2a8fc55fffd4f7d35c41192af22
2b0a54330077e9d7c71554c5524f3610345624d07d66caa6b4ff8fc87154ef15762aec55d8abb157
62aec55d8ab0bfcc362b2f93c0afc5e63b21b1a7fbaa73bf88db156698abb15762aec55d8abb15762
aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb157cb9f9c3e6b96c7cc67f38f
493aade47f963a92599b1b4b3ba7b1b9d20298b5e22748cc1cc7aabf13bf147b0e3e38ab29fce19e
d350fcc8fc81d72d992e34e9f5fbb36f35032b2de69333c4cbf3e35071565be7bfcd25d37c9be76d43
cb105e47e62f2c68fa96a903ea9a46a10583c9a6c4cfc44d3470472062b45e12fc43e35e4a315619
1f9fff0034affcc96be55b7d574db7975df251f3a59dff00d419fea7750bc30b5a88ccd492266995b9b
1e6b461fb4bc5543da7e6ff00e6579e21d3b4af20d8da0f32cde4dd1fcd6cf2988db3df6ac65510c8b
34d1badb2b42c19a2e728e6bfcbf1aa976a1ae79a35ff0039fe72e97ae6a64e8769e43d3ae93cbc9
e9cf6714d7d617c6711494dc7a8b5e63fbcf841f8557155c3f377cddf96fa5da26acf6be60b093f2e66
f37e9b6d676cd6fe8dce911db23421cc8ed24322ceaeccdf1a7066fb278aaa9f79d3f353ce1f958b65
acead3c1e6af2feade5cd63594fabdb8b7920d4b47b217ea91b44587d5268f92f2939c91b2a932b7
2c55ad321f305cfe72fe5a799b58d493505d63ca9ad4948e0485219277d32e1a38ca7da8857e0f53
949fcced5d957bd62aff00ffd5f40fe66e8da26a3ff3927f94706a9a6dadf457da4f9a23b94b98239964
16f15a491f30ea41e04b71afd9e469d7154fff002c0dc797ff00337f31ff002fadae6e2efcb3a79d2f5bd
263b891a65d3db588e613d946ce4958c341eb451f48d65a2ed8ab35fcc6bbfa8793751bd11999ad
dada55895821764b988850cc180a9dab434c55dfa63cf3523fc316a454d0fe951d3fe91b1577e98f3
d53fe517b5aff00db547fd9362aefd31e7aaffca2d6b4dffe96a3e8ff008f6c55dfa63cf551ff003ab5ad3
6affb951ff64d8ab5fa63cf74ff00945ad6bbedfa547fd9362aefd31e7bff00a95ad7b7fd2d47d3ff001ed
8abbf4cf9ee9ff28b5ad69ff5751d7fe91b156ff4c79ebfea57b5ff00b8a8ff00b26c558c79b6ff00cd177
a8793e3d5b45b7d3acc7986cd9a78ef85cb72114f4509e827534df962af50c55d8abb15762aec55d
8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb15762aec5564d19962922591a2675
2a258e9cd4914e4bc81151daa315629a67e5de91a5791ee7c810de5f4da2ddc7750cb3dc4c935df
a77ecef30f51a3df9191f76527e2f962ac5e1ff9c7ff00275be97e50d1e0d4f5b4b1f224c6e7cb0bf5f6
66b694d554966425c2213122bf254898a018ab3ef34f972c7cdde5cd4fcadaac932699ac5b49657c
6d9fd295ade75e12207a1e3cd495246f43b50e2ac5a0fc9df2c5bea9a7eb31de6a7fa4b4bd05bca9
673fd6cd574b900e4868a39392a8dea9f8f9229ae2a96b7fce3efe5dfd5340b589752b597cb56dfa3
34dbfb2d4aeecaf8e961b98b19ae6da48e59adc1e8923371ecd8aa73a97e51792752d4ae354fabd
cd8dcdde909e5ebb4d3eeee2ce19b4d8b9fa71491c2eaade9896454622aaae7fc9e2ab567f93fe47
b3bbd1ef3eab3dcb685a3cbe5ad3a0bab99ae201a45c00b25bc9148c5245655452640cd444f8b6c
5511a4fe56793348410ad93df5a436736956569a94d25f5bdae9b721565b58239d9d52275555614
a940b1f2f4d5571543f977f27fc8be57bed3350d2adaf0dce88b345a2fd6b52bfbb4b282e5551e0812
79dd522a20023a715ed8ab3bc55fffd6f667997f2eb4ff0032f9b740f3ac9a8ded86bbe5a82f6df4a7b
4307a6aba92aa5c1749a19791654502bf6695c551fe52f24687e4c5d49f4a134da86b576da8eb3a9
5e4867bbbbbb7554e7239a001555551102c71a8e288b8aa07f34db87913546ad28d6a6bd7fe3ee1
c553fd6f5dd3bcbd642fb527708f22410430c6f3cf34f29a2471451866773e0a3a55bec8271562537
e747e5e41a5586b4da94ada65fc2f76274b4b93e85bc5722ce492e57d3e50aa4e7d26f50290fcbb2
395556699f9bfe5bbfd4fcd5a74d6f79663cadaac5a0b4d2dbc845edf4f142eb1db0553cdc9980545a
b15fdeed1ef8ab19d4ff3b747d2fccba6eba754b9baf20ea3a2eb32c9a75b69971717b6fa9f97efade
1b966486269c705964595594247e973e5f162af61b4bdb5beb28351b59564b2b9892e20986cad14
8a1d5b7ec41ae2af37fcacfcd1bef3e6b5e69d2353d3d74f1a7cb6fa8f96e65247d7fcbba92b8b4bb2
ac490ccf0ca1bc3e0db157955ffe66fe64d9793ecb55baf35882e7fe5654be4abdbdfa8d904fd13f5e9
2c95c2b47c5645081f99dbed5453157b9790efaf2f25d6e293cd50f9b2cacaea3b58eee38a08a582e
161592682436cab13503a3020725e4cadd31553fcc32c27f2680dc6be64b3076ad47a37069edd31
566d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55
d8abb15762aec55d8abb15762aec55d8abb15762aec55ffd7f7f62aec55877e6a1a790b5624540fa
b1a1dba5cc58aa57f9abe58f34ead3794fcd1e4e8e1bed6fc9faa9d4d744bbb83696f7f04f6b3594d1
998248124549cbc4cc8cbc9789fb55c5584fe6c792bf367cfba23e8d6da56991d9eaba25cc579651e
a525bc56bab8bb4b9839c896eaf709e9af015091098b48f19142aaa0af3f2e7f35ad757d7f5fd0ec34
d6bd3e6db2f3be956b737ecb15d2fe8a8f4dbab091960631b0065649e8cbc847f07dae2ab32d53cb
be7bd635ed3b5dbed2ece365f2e6bda6dcdadaddd522bbd5e4b3920843ba299028b5612cdc53e2
71c23a57154e67d27cdf07e525b79774cb48079b9749b6d2de17b822de393d24827759b892782f3
68fe1f89b8f2e3bd1563da87e5a6ada07e64791bce1e458e46d2749b0bdd03cc965777f2b97d2675
89ed96113b480b413461c2d5178f21cb1560bab7e527e655ef9486930e97607508bf320f9e9227bff
00dcbe9a2fdaf8445fd1244c797a657814fdae78abd9bca69e717d7355bbd6f45d3fcbfa1cb1426de
d6cee7eb973737a6ab2cd33886254558d228d14722df1163f6462aa7f98814cfe4de5dbcc96446d5
dfd1b8c559b62aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55d

767

8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb157ffd0f7f62aec55847e6fcb141f96f
af4f3c8b1410c514b2cafb2a224f1b33313d0002a4e2ab9bf387f29d2a1bcf1a08a1a1ff727687dfb49
8ab4ff009c5f94f1805fcefa1a86a115d46dbbf4ff007662ae3f9c7f94c3af9df43dff00ed636dff005531
5533f9d5f9420d0f9e743af87e90b6f97f3e2ad7fcaeafca1ffa9e743e95ff008e85bf4ff83c55b1f9d1f9
464023cf1a250f4ff7216fdbfd9e2ad9fce8fca45ebe77d1077ff7bedfbffb3c55dff2ba3f28ea07f8df44a
9e83ebf6fff0035e2ac73cc9f98fe41f34eabe4fd2bcb7e64d3357d4cf982d25169677514f3048e19cb
384424d00ea7b62af5cc55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb15762a
ec55d8abb15762a936ade6bd0b44bb4b1d46e1d6f1e3f5c431413dc308b9150c4431bd0120815eb
8aa0bfc7de58a57d6baa1e9fee3efbfea862abc79e7cb8d4a4b75b9a7fbc17dd47fcf0c557379dfcbe
a685af0ed5db4ebe3faa038abbfc6da0f6faf1ad694d3750edbff00cb3e2ad379df4256e3c350634afc
3a5ea2c3ef16f8aac3e7ad0c7fba3533d3a693a97734ff00967eddf15536f3fe86a40faa6ae6bbd574
6d4c8fa696d8ab43f30743201fa9eb02bbefa2ea9e34dffd1b155bff002b0f43dffd0b5adbfed47aaffd9
362aa17bf9a5e55d32d24bfd4d354b2b086867bab9d1f538a18c330505ddad8051523738ab33c55f
fd1f7f62aec556c91a4a8d1c8a1e361465600823c0838aa14693a5025858db8634048892a40e9db
155ffa3ec49afd562af5afa6bd7eec55bfa858d49fab4556ea7d35dfb7862ab85adaa905618c505051
1761e1d315629a3eaf7577f987e68f2e4a90fe8cd2b4fd22ead156350e24be6bd12f26ee3f70941db
1565a6184f58d7fe0462aef421ff7daff00c08c55bf461ff7dafdc3156c468a6aaa01f10062abb15762a
ec55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8ab1a87ff2605e
7fdb1ad3fea2ae71564b8abb15762aec55d8abb15762aec55d8abcf3f3d7ff0025279acf859d7fe4a2
62af43c55fffd2f7f62aec55d8abb15762aec5505abeada7e85a5de6b3ab4c2db4cb089ee6f2e0866
11c318e4cc42826800a9a0c55e7967ae695a27e6679ff005bd52e92df4a8747f2db49746acb4925d
45129c412c59980503ed13b62af50c55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8
abb15762aec55d8abb15762ad3568788a9ec3a62ade2aec55d8ab1a87ff2605e7fdb1ad3fea2ae71
564b8abb15762aec55d8abb15762aec55d8abcf3f3d7ff00251f9aff00e60ffe66262af43c55ffd3f7f62
aec550da8ea361a4585cea9aa5cc565a6d944f71777770e2386286352ceeeec4055502a49c558ab
7e6d7e5a28aff8a34f2295f86656d86c4fc35f0c554dff00383f2cd1951bccb67cdfec20662c6be002d
71553ff0095cff9601821f31db8620b2d5260081b6c4c743f462aa171f9d7f9542265b8d7a3781c323
ffa35d3a1007c40d2123a75c55e05e4dd77caba67e686a73eade6c6b9fcb3d161d364f2f486def1e6
bb92ccdd9b6b7b92b07d9d3feb0425777a5b48f56438abde93f3dbf2ae50cd1ebc5d50d1cad9df10
09dc569077ede38ab6bf9e7f95acccabae92cb5e4a2cafaa388ab547a1b507daf0ef8ab63f3c7f2b8b
841ae3172400a2cafaa4b0aa803d0ea46e3c71556d3ff3a3f2d354bfb5d36cb5be7797b2c76f6aad6
97912bcb2b88d543c90aa6ec78fdafb5f0f5c559ee2aec55d8abb15762aec55d8abb15762aec55d8
abb15762aec55d8abb15762aec55d8abb156350ff00e4c0bdff00b635a7fd455ce2ac9715762aec55
d8abb15762aec55d8abb1579e7e7b7fe4a2f367fcc17fccc4c55e878abffd4f7f62aec55807e797fe49
af3f134a0d03523bf4dad9cef8abca63bab8212291ef05fbf061234908bc174a828fea8fdc7d7047f0c
775fef24707ee25fdfe2a874962838c34896d9d6a907a52fd456dd888fd24b7afac2d0c9f19b56ff004
b92ebfd257fd197156d2f27b5b8e73c976970edc3d56b84138bba7132b4db446ed968b25eaffa1bc
1fe8b1feff1554867a49ebee5587f74b1c9c7d243fba804550c6de32dcad6c7fde9b393fd22e7f758a
bbd68e57f56379bd4553f69c171306e3249eb02504b38256e2e8fee7534fdc5af17c557432991009
2a1617a84f458c5c6dfe2854420f3a5bb7c56b113cf466fde5d72c55734d2ccfe9c80f0a6cce3986f5c
f295491fde2dc1dee107c5ac9f8adb828c556f2b8979a19248e28ea5a769143298e949125fd8920d
963ba3f0e929fb89d5df155a656173a240958ad935ad14c691ab5aaa07d420262e0e7f748e5449e8
1ab5ec9fe98948f157d318abb15762aec55d8abb15762aec55d8abb15762aec55d8abb15762aec5
5d8abb15762aec55897997c8d2ebfab45acd9799757f2f5e25b7d4e51a4bda049a2590c8bcc5d5b5
c6ea59a8578fdac552bff009569adff00e5c9f34ffc1e95ff0078ec55b1f96bac81bfe6379a49f132697f
c34fc55aff009565ab120b7e6379a8d0d481369a2a47cac062aa83f2d75006ade7ff0034b6f515b9b
1007b7c36431570fcb3bcf86be7cf34b7135def2d0577e8696836c55aff00956335496f3c79a58114e
3fa42202be3f0db838ab97f2b78d2be74f353915a93aa75a9aee04407dd8ab43f2b101a9f3979a9b
a9df5671d7e48315737e5542ec58f9c3cd553e1ac4aa3ee0a062a85bffc98d1f56b3934ed5fcc9e65
d434d9a82e2cae75799e19555837175a0aa9237c55e938abffd5f72798fce1e54f284305cf9af5bb1
d12dee5cc76f36a3711daa48e054aab4aca09f618aacf2d79d3ca1e728ee65f296bb61ae4766ca97
6da75cc574226907250fe9b371240a8ae2ac7ff003bc57f273cfc29cbfdc06a7b0214ed6b2773d315
78edb88563828b198bd38d76b274b5f41914b0fa812641073fb7a67f797737fa6a37a78aae595625
31ccd2477855a6a7d6e973eaf208a5f516aa3cd4a0fd283f730c5fee369eaeecab93d08e5788cb1ba
3482254166cd1fa6a01a2da1dd22e46aba47f790c9fee47ece2aad088a36692497e0f4d666669c86
ac8c636769fa0635fde6aa3e1d4ff00de31fb38aada25cc9c15d5e4532c24089d2a6db9557ead5a48
a95f874eaf3d1bfdea6f8b15555f4892795163f49fe29988224a713f591de4a9accdff001defee5a8b8
aaa1314808350231213f6e1e262ddc501263f4fbbff00d287ec272ae2aa1208e465b461e9a1290d0
c4ceacd306745f401ab87a7c36b4ff735fdf37118aac2d13dde8420915e37d6b4a915831bae5e9ea
36eb201231aced1b503cdff004aff0086c5392b57157d358abb15762aec55d8abb15762aec55d8ab
b15762aec55d8abb15762aec55d8abb15762aec55d8aa55aff99743f2c59fd7f5dbc4b3b6f8b89219
ddbd34323f148c33371552cd41f0a8e476c552bd47f323c89a55b59de5ff00982ce2b3bfb68efedae
04a1e2365332a25cb3a54240cceaa2672b17260bceb8aa1e1fccef29cfe7dd53f2e92e5c798345b1
8352d48b44eb6d145721dd034c470078273353c7891bf2e402ac7fceff9b9a6d9792fcc1aef92752b
1bbd5bcbe96575796f7c932aa59de4caa25284c2dc1e3e6d14bbc4dc7f68038ab31f2cf9e7ca3e72

9b52b7f2beaf6faa4da44ab06a296ec58c4f202c84d40aab804a3ad51c7d8638aacf3079f7c9de559f
eafe61d620d3dd562927698b08e08e793d189e7700ac28eff023ca5159b60715615a1fe685f45f989
f9a3a179c2eb4fb1f29f9222d16e2c75054781847aac12cae277795c3302a8abc152a7f677c559837
e62f9292dbeb72eaf14510d4a1d0e412a4b1c916a7725561b7963740f1bb974e22455e5cd7f9862a
ac9e7bf2948daa226a6866d1af62d2b5287848258afae0218a01195e4cf20910a040dcf90e35c554
e5fcc0f28c5a4c7ad9d47d4d3a57ba8d1a18279a5e560ef1dcd628e36900859184a4a5129f162a99
ff0088b41fd01fe29fd256ff00e1bfaafe90fd2beaafd57ea9c3d4f5bd4af1e1c7e2e5e18abfffd6f4f7fce
44a5dbf977c9ffa3d626bf5f3a796cdb0b80c60f53ebca07a9c416e3bef4df15659e4ff00f10c3af7986
3f36ae970ea93c90be94ba59a3c9a5430a00f287fde55677996ac38ff002e2aa3f9d42bf93fe7c1ff00
6a0d4fb57fe3d24eddf15789db4a9f52b7b8765f5d2d5595bebad2467e1505bf4837c4cbd9f532395
8b7fa126d8ab656362f05c33aba3a470f0b5e52b545513f4737c31bf2dd74b1f04d1ffb9263cfa2ad0
4e2164956331aa09791bc731fa61829a5cd033c3c80ff0072ff00df4b27fa0ed1e2a8db602097d42a
78bbc8a63f4fd4916640c5c0b7fb2675524c9a6d7d0b08ff00d262fdee2aa51a406361170f495212c
56790a1899bf74c65fb4222dfdcdf7f7ba9c9fe8d75fbac55130d5dc7a4acb246f36c53d19cb251ae0
0807c25bfe5a62fb3a58f8ed3e3c55a0bcdd5157881e87135201ef6e50d2b25771688df0eadff001f9
4c5561863a342515d1d2e1199247e0b560d73ca6a7354000fadcc3f79a5b7eeacbe0c5548d56ff48
5911839d6f423233a7a2c035f40d02caabb427806fabc519e377156e2ebf7d8abe9ec55d8abb1576
2aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55e47e76d27cf1a
4fe6d687f985e5fd09fcd3e5f1a1de797f52d26dee6dedaead659ee62b94b98c5dc9144eafe9fa720e
61c0a1f8b15613f9afe45fcc6f33e97af796b40f26d85ae97aaf92bf44e9d2e972d9da4916a46777fa8
5c4ee51feab1210d1244be8bcacfcfe16f85542eb7f95bf993aa6a9f982d61a6b590f3a7957cbf63a6
de4b736fe9dbdfe8a93b4d6d742394b8121658f9442442b21dfed62acbfce16de7cf3ff00e5e6bf0ddf
e5efe86f31df5ad9d98b292f34fbabab8297492c88268e4f4feaf1af32bea3ab396feed7f69564fa1e8f
ad27e70f983ccd2e9335a797effcbda4e9d6d7723c015eeac6e6f66910c51c8ce38a5ca0562b4d9d
41f155229f48f3ee93e79f37d9ff0084edbcdbe4ef394b697b6fa95e5ddb470d9490db456af6d796f32
977853d1f5a3689256ab95e3fb41563dadf92bf3221f357e71798340d02daf8799a3f2c8f2ec57e6ce
486e4e8ff00bbbcfddcccca8eaa4b5b99870f502b1e98aa4771f96bf99528fcc1bd8fcbd299355f35f9
5fcd7a3dbdd6a56b35c5ddbe90d646e60693d42a92816adc431117c4a88fc57154fa7fcbef35f98af7
cf72f99fcaf341a7799fcc5a36aba6c963aa4306a7650d958416ff005c82589e89736d2dbabf0ab23f2
6456917ed2a807f217e6dd96a3e5bf346bba7ff008e65b18b59d16f74e8efa1d16f869d7778973637
aed0b436ef72cb104bb452aadc83ad595b157a88f245bffcaaa3e4b3e56d27eabf55e03ca3cdff004
5f0f57d6faafa1610000026060f002220574d4643010000000000010000000000000016000000002
000001022020010a20200bc6bedea70e3ea7c7c38fc38abffd7f6ef9bbc8fe5bf3d5a59d8f99eda4bb
b5b0ba8b50b48e3b9b8b5e1776e79452d6de48c9643f1254fc2dbe2aed03c93e5df2d6a37fabe970
4c756d4d2186fafaf2eeeafa7922b6e7e9273ba9652aaa5d8855a2d589eb8aa4df9d3ff009287cf62b
4ae83a9026b4d8dac83ae2a93d87e447e5dfd5ede7f4753323448491acea9c4d54576fac8143dc5
28715459fc8afcb96285ed751768d7846cfaceaacca3906d89baad6aa37eb8aa47e6afcb1fcbdd21b
4bb3b6d26f751d6f5abf6834cb5975cd4e187eb06196796591beb2c56348a3766e08e49a00956ae
2af3af34689e4bf29797e1d47cc5e40d434cd3e2b2371ad4375e63d478016f7a2dfeaf65c2e499e52
17eb4bc9621e8f0e7c599822add87937ca10eb1e63d3b50d004b76de6d93cbbe52b58fcc1acc5ea
4d369d0de4af3b7a84aafa3ce59197d43cbf76abf65b15639e60fcb3d3ec7cf3a1243e4529aa1f2b7
982eeff00cbf71e67d4e3b5274abfb2862996f6379642af09ac49e9ad7d441305e1c9557b17967f24
7f267cd1e5fd27cd565a25f4706b7670ea5087d6356f5025fc2b290c45e75a300d8aa6a3fe71d3f28
79894e8972641c28e756d589fdd0e29b9bbfd91b0c5528f30fe4afe5af9522d235fd0b477b5d574fd6
747faa4ed7d7f308fd5d4ad918049ae1d08209142b8abdab15762aec55d8abb15762aec55d8abb1
5762aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb1576
2aec55d8abffd0f7f62aec5583fe732f3fca4f3d29340741d4b7ff00a3593e78ab2fd3bfe39f69ff00186
3ff00880c55138abcd756b1d0ff003b3cb9a2798fc97e64934eb8d17557bed175fb048a731dd5934f
653c4f1ca0abc6e1a447434e4b438ab08f38fe59db799bce67c957fe6cd7135ad7fca1756b757d2db
5bdc5a4b6f0ea514d71240d27c30cc659e2578523e1f575897e1e08d8aa73affe5baea1adeb96ada
bea7a44e97963e78d3bcd296b6a2cec355b7816c26092485849ce18099a1963e0b1cdf6cedc1564
52fe57ddddeb3a7798aefccb7179aa5a687a9e853dc4d6f0917035896299e6e29c027a6d0a7a71a
0e2107135eb8ab2cf27f9793ca3e54d0fcab1dcb5e45a258db69b1dd48aa8f225a44b12b32aec090
a2b4c553ac5588fe639e3e5eb53b6dac687f6ba7fc756d71565d8abb15762aec55d8abb15762aec5
5d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8
abb15762aec55ffd1f7f62aec5585fe6faf2fca8f3c29150741d4f6dffe5964f0df15653a5d3f46595284
7a11508e9f6062ac6bf32f5abad2bcb0f65a5b45fa7f5e9e1d134659e41127d6afdbd3e64f52224e73
305ab158cf115c55e1267ff955fa8fe6b7e574d345a245e62f2edf79e3ca31e9777246b6924368d6b
7b0c127085a36124097081074793f95b156acbca3e569a5fcb83e65f306ab0699acf92f58d4efb589
b5bbc8a67bcb88f4577e174660e028569d6246f4c3273e1c571563fe62bdf335df933cc1a3f9bafee6
7f30cdf95d677fa9e992dcc8e7eb36f7b283726dd5cac72342b1b4ec8ab5fdbc559eade793ae3cefe
7cd6b4ff30dfea1a4797bcada76b5a6d9e8babcf711c05a1d492696d6dd2568d9d91632bc95d39f0
7e3538abcd352f36586a8c745b6f367a7a1dd79cfc9725a2e99aa5cc60e99a9db2c37216e3d45696

769

391d184b2a0485a6e6c1525e58abd7e6f2cebbe58fcce4f266916b3dd7913ce16fa7de8be9ee679d
b4e93cb8ca2ee22f248cf4b98feafc37f8a5699dff6b157a2fe67370f2bc526e786afa21a0debfee5ad
7156638abb15762aec55d8abb15762aec55d8abb15762aec55d8abe6afccbd67ce5a57987f39bf45
79a353b5b7f2ef9260f30e8169149118adb50985eb3b80d1162bfe86802331501a4fe6d95647f937
e68d135ed574a874bfcc1d47cd1ad1f2fc5a8ebfa55d4d0dcdb42f75e8717ac714663903f3016adf0f
3e43ece2ac93cd3ff3911f92be49d72f3cb5e69f3859e99aee9e545e58cab399232e8245af08d86ea
c0ec71540fe7b6bd7d0fe57daf99bca9ad5d69b24fa96822db50b0711b4969aaea56b6b25448a410
d0cec56a2aadc5bb62a9927e70f966c3cc47c9b2596afead96af6de58b8d567b7adaaea1776cb716
c1e667e4e260caa24556f8dbf79c55b962a95681f9e897fe4a7f366a9e5bbf86ebeb3ac7a5a45b35a
4970fa6e8970d14f78395caaf08d428914b090cbf0c51b8e24aa88d47fe7203ca36975a9c561a66b
1ace9fa369f6bacea9aae9968b359c161a859c97d6f3166951d95e38c8f811a8c7e2db9305556ebf3
bf4eb18b5b96fbcb1adda0d17489bcc5c278ed124bad32da7f4649615fad1236fde0597d3664ff2fe1
c5511ab7e74e83a3ebb77a35c68fabbdb69ba858699abeb096d18b0b37d5950db4b23bcaae6266
9110bc68fc18fc7c57e2c552bf2efe765cea7a05feaf7fe5abb17d1eb3ac695a669b6d2da73b98345b
9961925f526b848d4a88a8dea347ca46558f90f8b1563bf9b7f9c56dab7e59ea979f97736a124e965
a2ead2eb760c96eb656fab5cc4d6eb233bab16923e5ea4710778d0fc7c792e2ac365d7b4e3e7efcd
ed0bccbe73f33698fa7eada7d87950585f6a4d15abea96303a8558ab101f589ab499b805f87e14c5
5ef16bf98d0379ca7fcbe934bbb1e60b46b724cad6c8b3e9f3c5239d4621eb166815e330bedea2cc
4270fdac550b37e6f695662eafb50d2750b4f2e2dabde699aebac46d2f963b98ad022112728de492
68fd1f5c462443ea55555b154960fcfed2ee62b2b6b4f2eea37fe63bcd56eb40fd0fa7cb6175e9dfda
d89d4915ae45cac1c26828f1bf3e3f695f83230c55011fe73c9e6bbcb7d3ecf41d42dbcada8f95b58d
6355b95962b7d5ecae74eba3633dba47ea6d2c522c89c958fef0a32b715638aa61a77e6e691a479
1b46d634fd3b55d4fcbd61e5ed3b5ed6b51ba9639aeecb48b98794735cb1766b8b8f4e3796548f93
71477af268d6455336fce0b43ae5be9d0e81a8c9a3cdaada68cfaf936c2d03ea76b1dcd9cc8bea99
1e398ca91fc29c90b5645418abd2b157fffd2f7f62aec5525f38686fe67f296bde5b8e55824d634fbbb
049dc16546ba85e20c40dc805ab8aa456907e6b5ada5bdaffcebcde8469172ade8af050b5a53bd3
155b7167f9997663377079665f45c3c5ea477929561dd79743ef8aac9b48fcc1bd9966be83caf2c94
e2d2496b7533f1f0059c78e2aa8ba4fe6048b14138f2d1b4b73ceda216574c2371f67883300b4f118
ab1cb09ff00316e7f32f5ad12eaef40315be8fa7de0ff007193b106ee7bc85ff786e15db90814105cad
00a28f8aaab2c8747f3a42e648ae34089f8f00c9a65c06e14038d45e0da8062abff4579db8aa1bbd0
b8a00a8bfa32e2802f403fd336a57154974df27fe63da799351f32ea1e6bb0d524b9061d2eca7d324
8adf4eb57e0d2451086e94c85de35769252cff00b0b45c551fae7967ce7e63b38b4cd4b57d322b11
776579335ad85c2cc458dd45741559eed957918b8d4a9a571566f8abb15762aec55d8abb15762a
ec55d8abb15762aec55d8abe7ffcc2f247e607987cc3f9a874af2e2c9a6f9bbc9b1f96349be92fada3
e77d11bb01e48cb1648a9795afdafdd1f83e25c5592f91e1fccb86e3c9fa5eade52b4d12cb45d356c
35bd724bdb7beb89d20b658d6dedd2250ca924ca92b3b1d847c7855aaaab23d77c95e6dd5757b8
bfd3bcfda8e8fa7cc1445a65b58e95347151429e325cda4b21a91cbe263d7c31549bf3abca5e6cf33
fe5b41e59f2c44356d756ff46b992e2ea68acc326957d05ec92390bc7949e8710a894e4fd028c5589
6a7e43fcc1d4b5dd5f544d0a0821bdf3a7973ccd02bdf445fea1a55bdbc573c828204a0c078a578b0
6fb7b62a95e9bf96ff009b3e58fd177da6e81a1eb7368ba9798f4f4d2f50be68e0bbd0f5dd406a305e
090dbcbe8cf13a8468f849cd0b7c43e1a2a9bddfe5dfe60c777f9b9243a759de1f38797b4bd274495
2e52d6292f2ceca6b597947c1bd18c34fca3fb5f047fcc462aabe7ff217e64799654b8d134fd390ebd
e4dbef29eb69a85eba369f3ce5648e54f462905c296e484563a7c2fcbf671540c3a279abccfe77f3ef
9466b0b13a76a12f960f98efd6e5985b7d5aca19a68e185e10d2893d3e1139294e5cdd3e1f89550b
6fcb0fcd5f2e18f50d134fd1356bad1bcc7e62b9b2d3750ba9238351d0fccd706f19a46fabca2dee20
9bd3e34593924720a8f531553f39fe50fe6a5e2f9b34ad05b45bed3bcfb6ba53ea9733c92e9cba66a
3a4346ade8c314337ab04b1a22a0e48d194ab72e58aa67a5794bf393cb5e6efcced7f47d0341be8
bcef796d77a58bfd56644b636564966a67892c5f9862824e2ae3f92bfb58aa76fe43f3ecbe76d13f30
677b197cc3a53ae8178c679123bcf2bcb02b5d39458f8add3de28b88d00e0888b17a9bb62a96ffca
b2fcd4befcbed4ff2eb51d57488ad748680f92f57459a79ae3f475e477963fa461745555410a432ac4
d27abbbedf65954b7cdd1f9e34cd6bf2a2ef54d3b458fcd53798eeda1d0f4eb87b7d3d40d0efd5956
e5edc48eee3e22c61a29e31d3f6d954ea3fcaaf38e997f6f7f613e9d7b25de81e61d2f58133cd6a12f
b5dbe3a92341c6297944b2b346c5f8bfa603d0b7c38aa5da3fe4d79d746f2b9f2d5bdde9de9f983c9
fa7793fcd0e1e6616b73a65b49642fed15e22250d04a54c3208be248cf3fb78aa6927e5a79bed2ba
7e8f6da6ae8f69e60d0351d3bd6bd9fd63a5e836d6f6e56402d4813b0b652a0553e2ddbe1f8957b4
62aff00ffd3f7f62aec55d8abb15762aec554aeaeadac6da6bcbd992ded2dd1a59ee26611c71c682a
ccccc400a00a9271560505cdb5a7e6eebd7f73731c5623cafa54ad3c8e12258d2fb51258b13c40df
ad7157a156bb8c55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8
abb15762aec55d8abb15762aec5527d3bca9e5bd2357d435fd334cb7b4d6b5621b53be85024d72
c29432b0fb445005afd91d3154e315762aec55d8abb154beff0042d1355b9b3bdd534db5bdbcd39c
cba7dc5cc31cb25bc86957859c128c68375a62a9862aec55d8abb157ffd4f7f62aec55d8abb15762
aec554ee2082ea096d6ea349ada7468e68640191d1c519594ec4106841c55e01a4fe5ff9ca5fccdb
8f29eb301b9fcb2d2b4cb154d66f3f7d26a7696d79737369a7b6c17940f2059d9aa648618aabfbe63
8abe82e4be23157725f118abb92f88c55dc97f987df8ab78abb15762aec55d8abb15762aec55d8ab
b15762aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb15

762aec55fffd5f7f62aec55d8abc87f2bbc97e59f307949359d6ec16ff559b52d6965bbb8791e4609a
b5dc6a2a5ba0550a3d862acc3fe5577e5f5154f97ed4853550cacd43f49c55dff002ab7f2ec9a9f2dd
8924d49308353ef5eb8aaf1f965f97abd3cb3a756a08ff468fa8e9db155e3f2dfc803a79674cffa448bf
e69c55b1f971e400283cb3a6507fcba43ff0034e2adff00cab9f20ffd4b3a67fd2243ff0034e2ad7fcab
9f20ffd4b3a67fd2243ff0034e2a81d6bf2f3c871e8da8c89e5ad315d2d672ac2d2104111b508a2f6c
551bf96d234bf975e5195d8bbbe8ba6b33b1a924da464927df156518abb15762aec55d8abb15762
aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb15762aec
55d8abb15762afffd6f6cf9efcf5a0fe5cf9766f357999a68f468258209a5b685ee1d5eea55822f82305
a8d23aad40fdac55ad0fcefa76b7accba07d4751d3b548ed45f88751b492d83db993d22c8e6aa486
a065af2151b62ac9b1579ffe4aff00ca0107fdb535dffbacde62af40c55d8abb15762aec55d8abb154
16b3be8fa80ff9769bfe4d9c5521fcafff00c969e4dffb61e99ff509162aca998282cc40502a49d80031
560de44fcc8b6fcc8f275f799bcb36ea2ead2ef50d3859ddbbc69f58b099a35e6e232cab2a0490108
d45907dac5582e97f9d9e79d662fcb5167e53d2d2f7f322caf750b5867d5e658ecd2c615b9e2ee96
0e642f1bafd955e2d55f7c55eb1e54d4f5fd534d924f32e970e93ab417135bc96f6b70d796ce91351
258a678a066575dfe28d4a9aaf6c553cc55877e657e62e8ff963e5e8bcc3ad2bc96d2dedad888e20
59c0b8940965a28278c3109267ff002236c55955c5ed9da46b2dddc45044e42a3caea8a58f400b10
0938aa98d574b26402f6dc986516f2812a7c1331a08db7d989e8a77c55743a8585c4c6dedeea196
e027aa628e4567f4c92bcb8835a5452b8ab0ff3c7e61c7e551e599b4f8edb52b4d6fcc167e5fbd9be
b0145b2de2b9328e2ae18a70dd58a6c6b5c55959d6b475b78eedb50b616930e50ce668c46ea085
aab72a115206d8aaf1aae9665b8b717b6e67b35e77717aa9ce14fe69056aa3dce2ab21d6747b94b
992df50b6963b300de347346c210cbcc190863c6abf17c5db7c55d0eb5a35c476f2dbea36d2c576e
62b5749a365964504958c86a31001a818aadfd3ba27a76b2fe92b5f4af58c764febc7c667078958cf
2a31076a2f7c558bf92fcfa35c3ab5af985acb4dd52cb5dbed0acade39ff00dea165c0868c4bc599ca
b8e4aa36c554359fcc09ecfcfbe53f2d69a6c6eb42f3041ab4d77a97aa59eddf4511191178550d4c9
c5b932fa655abcba62a9ceb5f983e4cd0b45d5f5fbdd6ad1f4fd0accea5a9fd5e68e7962b5e2595ca4
6c5be3a513f9cfd9c553187ccde5d9dec624d56cfeb1a9c626d3e0fac45ea4f1952dca35e5571453b
ad7a1c550e7cebe4d02627cc3a6016cbea5c7fa6dbfeed0066e4ff001fc2288e6a7f95bf94e2aaf079
a7cb37496f25b6b363325dbbc36ad1dcc2c259625e4e88437c4cabbb28dc0c5528d6bf33bc83a0e
93ac6b379e60b192d741b13aa6a71db5c47713c769b8593d38d99887238a6df137c38aa6b1f9abc
b92369911d52d52e358412699034f1892e1594b0f4d797c5b03f67c315605e78fcdb3a079d34af28
e80fa7ea1737561ae5cea313cacd716b71a4d9add408c91b6cb21621ebb8c5577e5ffe6079abcd5e
4bf2679f3545d2ad749f31598d4754b44f56296d2ddad5e72f1c924ac24e0caa1fe01f0b16fd9c559b
69fe75f286ac865d335cb1bb896d53516921b88dd059cacca9396069e9b1560aff0064d0e2aa6de7
cf25a68a3cc4fafd8ae86d2b5b8bf6b88d61f591b832162766523e21fb3df155d7be79f2669ba841a4
dff9874eb6d52e6686d60b296ee149de7b91ca18c216e5ca41f6053e2fd9c5521b0fcc9d1bcd3238f
2c6af636eba67989bcbdaa8d441e53cb0065921b50b227ef59c7eed8f20551fe03b1c5590c7e72f29
cb7f79a647ad5935fe9e924b7d07ae9ca18e034959f7a01193f1ff0027ed531553b5f3df92af97507b
3f30e9d3a69514373a93c775132dbc172bce292421a8aae05558ec7157ffd7f47ffce5c49047f913af
35c4eb6e3eb9a37a73315015c6ad6841f8f634a57e8c55ea1e5dd2f59b09efeeb53d7e4d72daf4c3
2587a91410adba2a51953d05556563f1f2356f7e3c7154ff001579f7e4affca0107fdb535dff00bacde
62af41c55d8abb15762aec55d8abb15416b3ff1c7d43fe61a6ff936715487f2bfff0025a7937fed87a6
7fd42458aa0ff35f5d8347f27dc58b5d25aea1e63961f2f695248683eb7aabfd5d5baaed1ab34adb8f
850e2af38f2bea67f2cff37fcc5e47d7eff4db6d13ccda1dbf9934d3056d2186f34d41a75ca149a5948
2f04504952ff17a5215fb2f8abccfcb5ab681716dff0038c66fb561636d63a4eb51ea1750dcfd59ed24
1a6a42a2575a7a757531d1e956f87ae2afa07c8f369179e43d6743f285dea1ae596972ea1616dab4
975e95c5f5c4dcae5cc17b5a9e2f3fa42e7fdf88cdbf1ae2a92f91fcb7e6dd3fccfa7de6a7a3ebf6f668
2613dc6a5e6d9356b74ac6c1795a12564a9a007f61be2fd9c5515e77d2dff32bcd9a9790e29ed60d
374cd0e78f546bbb67ba2d2f9815ed40882cd0d1a382392ad56a7aeb8abcba2f316b5e68fcadf29e
baf2da4be76f2adb6ada36b3e5dd6606fa86b9058b4569771ab0abc73ce91457168e95e4cdc38b2
3371559b8f2dfe8dfce8bdd0858b4fe56f390b7f3bde7aa17d1b5bfd1635b3995c36e4cced6528ff2a
3971578e2e891e9fe5fd08f90f4a54f325e7963f30e11169d0fa57370df5e85e0b7e68a1833468c2dd
7b7fbaa98ab37f35dc7e5bf9d74bf26eb3e55d1664d2b51f38f95a1d592eece7b786416114a8b0496
f38007d590ac7337a7e9fd98d9df8515548bca1e56f28eafe71f276917fa3da5ce9d67aefe6041616d
3daf282181ef566b55e257888c92cf086f80b7c51fc43156b4fd1f519bf2f3c9fa76b165712fe61f97f4
df37daf9e2478dde411dc69f7a938b87028eb7576f6b3415afadfde45f65b1540e9fa65c68d0f95bfc3
ba7490e9f6be49f23dff99f4fb6b59035cdae9bab192fd195632649a38d8bbc7fdeb2725ef4c559279
c6da483ced63e7bd361925fcbc83f30345d4a49eceda59238e4fd0777677b7a163424c6f2cd6d1bc
88a54c8ac4efcb1549f40b7d7acbc83e59bbd1acae06afa7deeae97de4ed56c26822d5b4eb9f32bc
ab145f0a4905d424c7730327c0cbfde068c128ab2fbed3f513e52f3d79a343b669bccde4df3c5e79a
3488194c6d7315bac5ebc31bb0155bab669e00cb552cdfe4e2a9aeab69268df981f93da7eb6866b
88b4ef3136bd32c0ef6a973a8db42efeabaa944124a2454e4472e98abc95bcb117f8163d3bcbda24
b15f5c7e50eaf6b35bdbd94b1bc9a825ddbcbe8b0e0099d9965658dbf78df1118ab3bb0bad1b5ff00
cc2bf8b59d2fcc65f54bcd035ff2834365716d61751d85a4318692692dc7d5cdb4914e6649648b9c5

771

27c28dea716552df28f96fc952f953f2cd753f2e4124efe75d605dc72696dcfd291f58f45ae0186ab0d
6e216532522f8d3155ba65bdd5879ddbc9cde5bd494dafe6a4dacf28b4c9db4e4d16fb4892286613
ac7e8fa459f8101be0e2dcf8ae2ac72e3ca76be6bfca9b4d3bc87a2baeada0f963cdf63aaa416535a
9985c878a0b6573181319a78d668d159b970f536daaab2f8a4b7d6bcf97f6daee81e6696dbcd0be5
cd5fca135adb5dda59cb26930a7c3772145faa1b6b889a62b318f94727d97e5c59563fa2b6bd14bf
97ba1eb5a06b2fe65f285bf9ced3cdb7bfa36ee5b75babeb595e3956e950c72add121e331349c998
2fc2db62a9bfe497f83bc99e51fcb8bb6f2aebe3f31ecf4c8b49d5fd4d33598a3b38248c497af319e0f
442afa5c9447f1c927044fb58aaed2e3d7bcabe5cf34f972dfcaba86ad6e6e74af3ee9163159dc947d
166d421ba9f4646938837366a8ec96f5ab730a13ed62a9e79ab56b5b9d4bcb7e778bc95e638fc89
acaeb765ab5be9b61710eae2f3524b311dd5d58a289963985b4b01661fefb91b8abe2a946a5e5fd3
a6d43cf7e40d3bcbf343abea1a4f93ac746b24864bb16bf5332ac066bc5565536ca8b2b3c9257e0f8
0c9dd55678b508674d36e745d5639ac7f371f54698e9f73242d637324d32dcc72246c0c3c645e728
3c10b71638aaa5be91e62b8d1fca7a1df6937b6baf790afbcc577e6099ad6668ae6c67b3d42da27b
79550a4e6f1aea1711a167fef39a868f1552b6b52da2ea30ae83a82daafe52da696d6eda4dcaab5f2
9b84faa2a186ad32b38ac3c792f2e54fb58abffd0f677e657fca3a3fe51ff00efd3fe52cff8e77d96ff009
29fcbedcb154ff40ff8e1e9bfef27fbcd0ffc733fde1fb03fde7ff8abf93fc9c5531c55e5ff00937f5bff0003
47c3eb3c3f4aebd4f4beabc29fa62f3a73f8befc559b1fd25dbf4876e9fa3fc3fceb8aac7fd2951c7f49d
3fc9fd1b4fc71559fee5ffed69ff72bc55c7f4bff00dad7e8fd158ab87e97a7fd2d7fee558ab47f4c6fff00
1d5fa3f4562ab7fdccfc5ff1d7e9b7fc727f0fedc552dd67f4e7e8abfa7e99a7d5a6ff00ab2d3fbb3e38a
a2bf2bfff0025a7933fed85a67fd42458ab21bde91ff73f6bfddfd3a7ecfbe2aa179fdfbffbc9f657fbff00b
7fb5d7dbc3fd962aab1f597fde7eff63e7fb58aa2a3fb0bd3a0fb3f67e8c55762aec55a6edd3af7fe18a
bcefcaff5eff9597e66faf7e90e3f574fa97e99fa957eafeb353f46fd4b7faa72af3fad7fa57a9c2bfbbe18
abd1715762aec55d8abb15762aec55e67f9c1cfd2f2f7fc76feaff00a407d63f45f0fd13c6829fa6bfddb
f53e54e5e8fc55fb7fbbe78abd3315762aec55d8aad9797a6fc7972e278f0a72ad3b72dabf3db1579
b7e41fafff002ab748fac7d679fad7f4fae7a3ea53ebd3f4f43e1e35e9dffd8f1c55e978abb15762aec5
5d8abcc3c9fea7fcae8fccaafd6387d5340fef3d3f47fb9b9e3c29f178ff00c373fd8c55e9f8abb15762a
fffd9000840010824000000180000000210c0db0100000003000000000000000000000000000000
1b40000040000000340000000100000002000000000000bf000000bf0000af430080c5430300000
00000008000000080fe7fe9430000008000000080ffbf03442100000008000000620000000c00000
001000000150000000c00000004000000150000000c00000004000000510000009823020000000
00000000000d20100000e020000000000000000000000000000000000005e0100008b01000050
0000002804000078040000201f0200000000002000cc00d30100000f020000280000005e0100008
b0100000100080000000000000000000000000000000000000100000000000000000000ffffff00fd
fdfd00fcfcfc00f8f8f8007a7a7a00707070006b6b6b006e6e6e006f6f6f006d6d6d006c6c6c00686868
006565650061616100646464006a6a6a0069696900636363006767670072727200545454005a5
a5a0060606000737373005f5f5f005e5e5e00585858006666660059595900565656005050500042
42420055555500515151008c8c8c00fbfbfb00fefefe00d5d5d500333333007676760074747400757
575007878780077777700797979007b7b7b007f7f7f007e7e7e007c7c7c00828282008080800083
8383008181810084848400868686002c2c2c00e8e8e800dedede00575

13.4 Synchronized Methods and Statements


Although, a synchronized method or statement is ATC-deferred, it is still possible for it to be
terminated
as
a
result
of
an
AIE.
Consider
the
following
example:
void
oneAIMethod()
throws
AsynchronouslyInterruptedException
{
...
}
void
anotherAIMethod()
throws AsynchronouslyInterruptedException {
synchronized
(this)
{
oneAIMethod();
//
call
an
AI-method
// Code here will not be executed if an AIE is delivered
// whilst the call to oneAIMethod() is in progress.
}
}
The reason for this is that there is no try block in the ATC-deferred regions (in this case the
synchronized statement). Hence, the exception is propagated through the synchronized block looking
for a try block (in the same way as a non-AIE exception would propagate). The safe way to code this
example is to encapsulate the call in a try block with a finally clause
void
oneAIMethod()
throws
AsynchronouslyInterruptedException
{
....
}
void
anotherAIMethod()
throws
AsynchronouslyInterruptedException
{

synchronized

(this)
{
try
{
oneAIMethod();
//
call
an
AI-method
}
finally
{
// Code here will be executed if an AIE is delivered
// whilst the call to oneAIMethod() is in progress.
// The AIE is held pending and will be re-delivered
//
when
the
synchronized
block
is
finished.
}
}
}
Now, the propagation is stopped and the finally block executed. The AIE is redelivered as soon as
control returns to the AI method at the end of the synchronized statement.
A contradiction?
Consider

now
the
synchronized
throw

following

code
fragment:
void
method()
AsynchronouslyInterruptedException
{
.
.
.

}
At first sight this seems a contradiction. A synchronized method is an ATC-deferred region, however,
the programmer has indicated that it is an AI-method.
In conventional Java, a synchronized method is equivalent of a regular method encapsulating a
synchronized statement (Gosling, Joy and Steele, 1996). Hence, the above example can be rewritten
as
void
method()
throw
AsynchronouslyInterruptedException
{
synchronized
(this)
{
...
}
}
Hence, the AIE can be delivered at the beginning and end of the method's execution but not in the
middle.

13.5 The Interruptible Interface


The above discussion illustrates the basic mechanisms provided by the RTSJ for handling ATCs. To
facilitate their structured use, the specification also provides an interface called Interruptible.
Both real-time threads and asynchronous event handlers can use this facility.
package
javax.realtime;
public
interface
Interruptible
{
public
void
interruptAction
(
AsynchronouslyInterruptedException exception);
public
void
run
(
AsynchronouslyInterruptedException exception)
throws AsynchronouslyInterruptedException;
}
An object that wishes to provide an interruptible method does so by implementing the
Interruptible interface. The run method is the method that is interruptible; the
interruptAction method is called by the system if the run method is interrupted during its
execution.
When an object has implemented this interface, it can be passed as a parameter to the
doInterruptible method in the AsynchronouslyInterruptedException class. The
doInterruptible method then calls the run method of the Interruptible, passing the
associated AIE as a parameter. A schedulable object executing the run method in this way can then
be interrupted by calling the associated fire method. The system then calls the interruptAction
method, passing the currently pending AIE as a parameter. The system also automatically clears the
pending AIE when its associated interruptAction method has been called.

773

Further control over the AIE is given by the disable, enable and isEnabled methods. Note that
only one doInterruptible method for a particular AsynchronouslyInterruptedException
can be active at one time. If a call is outstanding, the method returns immediately with a false value.
Warning Note that the firing of an AsynchronouslyInterruptedException has no effect if
there is no currently active doInterruptible. The firing is NOT persistent. Hence, care
must be taken as there may be a race condition between one schedulable object calling a
doInterruptible and another schedulable object calling fire on the same AIE. To
help cope with this race condition, fire will return false, if there is no currently active
doInterruptible.
Consider the case of a periodic real-time thread that has two modes of operation, A and B. Another
real-time thread wishes to signal a mode change. When the mode change request occurs, the thread
must abandon the operation being executed, undertake some housekeeping and then start its next
period in the new mode. The functionality to be performed by the thread when in mode A is given by
the
following
class
that
implements
the
Interruptible
interface.
import
javax.realtime.*;
public
class
ModeA
implements
Interruptible
{
public
void
run
(AsynchronouslyInterruptedException
aie)
throws
AsynchronouslyInterruptedException
{
//
Operation
performed
in
Mode
A.
}
public
void
interruptAction
(
AsynchronouslyInterruptedException aie) {
//
Reset
any
internal
state,
so
that
when
Mode
A
//
again
becomes
current,
it
can
continue.
}
}
The functionality performed in mode B is structured in a similar manner.
The system's current mode and the mode change requests are encapsulated by the ModeChanger
class,
which
extends
the
AsynchronouslyInterruptedException
class.
import
javax.realtime.*;
public
enum
Mode
{MODE_A,
MODE_B};
public
class
ModeChanger
extends
AsynchronouslyInterruptedException
{
public
ModeChanger
(Mode
initial)
{
super();
current
=
initial;
}
public
synchronized
int
currentMode()
{
return
current;
}
public
synchronized
void
setMode
(int
nextMode)
{
current
=
nextMode;
}
public
synchronized
void
toggleMode()
{
if
(current
==
Mode.MODE_A)
current
=
Mode.MODE_B;
else
current
=
Mode.MODE_A;
}
private
Mode
current;
}
The
run
method
of
the
periodic
thread
now
has
the
following
structure.
//
assuming
ModeChanger
modeChange
=
new
ModeChanger(Mode.MODE_A);
public
void
run()
{
ModeA
modeA
=
new
ModeA();
ModeB
modeB
=
new
ModeB();
boolean
ok
=
true;
boolean
result;
while
(ok)
{
if
(modeChange.currentMode()
==
Mode.MODE_A)
result
=
modeChange.doInterruptible
(modeA);
//
Throw
away
result.
else

result

modeChange.doInterruptible
(modeB);
//
Throw
away
result.
ok
=
waitForNextPeriod();
}

}
Finally,

the

signaler

of

the

mode

change

undertakes
the
following:
modeChange.toggleMode();

boolean delivered = modeChange.fire();


Note that the signaler must set the new mode of operation (here, it simply toggles the mode). If the
fire occurs while the thread is outside one of the doInterruptible calls, it is lost. However, as
the thread reads the current mode at the beginning of each period, it will start the new period in the
new mode. If the fire occurs during the execution of one of the doInterruptible calls, the
current mode's operation is interrupted immediately (assuming it is not executing inside an ATCdeferred section). In the worst case, a mode change may arrive just after the call to currentMode
but before the call to doInterruptible. This will not be acted upon until the next period.
An alternative approach would have the set and toggleMode methods call fire themselves.
Hence, a signaler would only have to signal the new mode.
A persistent AIE
It is possible to extend the AIE class and build a persistent AIE. With this approach, a call to fire will
be remembered if there is no outstanding call to doInterruptible. When the doInterruptible
is finally called, the run method will not be executed. Instead, the interruptAction will be called
straightaway. The following illustrates the approach (unfortunately, this suffers from a race condition).
import
javax.realtime.*;
public
class
PersistentAIE
extends AsynchronouslyInterruptedException {
//
first
attempt
public
PersistentAIE()
{
super();
outstandingAIE
=
false;
}
public
boolean
fire()
{
if
(!
super.fire()
)
{
//
No
currently
active
doInterruptible.
outstandingAIE
=
true;
return
false;
}
else
return
true;
}
public
boolean
doInterruptible
(Interruptible
logic)
{
if
(outstandingAIE)
{
// Outstanding fire, call interruptAction directly.
outstandingAIE
=
false;
logic.interruptAction
(this);
return
true;
}
else
{
return
super.doInterruptible
(logic);
}
}
private
volatile
boolean
outstandingAIE;
}
Although the above illustrates the overall approach, it suffers from a race condition. In the overridden
doInterruptible method, it is possible for a fire request to come in after the outstandingAIE
flag has been tested but before super.doInterruptible has been called.
To remove these problems, it is necessary to make the doInterruptible method itself interruptible
(Dibble,
2002a).
This
is
illustrated
below:
import
javax.realtime.*;
public
class
PersistentAIE
extends AsynchronouslyInterruptedException

775

implements
Interruptible
{
the
Interruptible
interface.
PersistentAIE()
{
super();
outstandingAIE
=
false;
}
public
boolean
fire()
{
if
(!
super.fire())
{
outstandingAIE
=
true;
return
false;
}
else
return
true;
}
public
boolean
doInterruptible
(Interruptible
logic)
{
userLogic
=
logic;
//
save
parameter
//
Call
parent
doInterruptible
with
this
object
//
as
a
parameter.
return
super.doInterruptible
(this);
}
public
void
run
(AsynchronouslyInterruptedException
aie)
throws AsynchronouslyInterruptedException {
if
(outstandingAIE)
{
outstandingAIE
=
false;
super.fire();
}
else
{
//
Call
original
user's
run
method.
userLogic.run
(aie);
}
}
public
void
interruptAction
(
AsynchronouslyInterruptedException aie) {
//
Call
original
user's
interrupAction.
userLogic.interruptAction
(aie);
}
private
volatile
boolean
outstandingAIE;
private
Interruptible
userLogic;

//

The

class

now

implements
public

13.6 Multiple AsynchronouslyInterruptedExceptionS


Given that AsynchronouslyInterruptedException can be deferred, it is possible for multiple
ATC requests to be deferred. This can happen when the run method of one class (which implements
the Interruptible interface) calls a doInterruptible method on an AIE. The associated run
method may also call another doInterruptible method. Hence, it is possible for a thread to be
executing nested doInterruptible method calls. Consider the following example illustrated in
Figure 13.4. Here, a method has executed a doInterruptible method call on an
AsynchronouslyInterruptedException object called AIE3. The run method of this has called
doInterruptible on AIE2 whose run method has called doInterruptible on AIE1. The run
method of the last Interruptible has called an ATC-deferred region.
010009000003684601000000d191000000001610000026060f002220574d464301000000000001
00dfef000000000c00000000200000b4460100b4660100010000006c0000000000000000000000d
20100001601000000000000000000006a4000006a26000020454d4600000100b46601000c00000
0010000000000000000000000000000000005000020030000c40100001a0100000000000000000
00000000000e3e306006e4e0400460000002c00000020000000454d462b014001001c000000100
000000210c0db01000000600000006000000046000000784100006c410000454d462b224004000
c000000000000001e4009000c00000000000000244001000c00000000000000304002001000000
0040000000000803f214007000c0000000000000008400005c4400000b84000000210c0db01000
0000000000000000000000000000000000001000000ffd8ffe000104a4649460001020100480048
0000ffed0a6250686f746f73686f7020332e30003842494d03ed0000000000100048000000010001
00480000000100013842494d040d000000000004000000783842494d03f3000000000008000000
00000000003842494d040a00000000000100003842494d271000000000000a000100000000000
000013842494d03f5000000000048002f66660001006c66660006000000000001002f6666000100
a1999a0006000000000001003200000001005a00000006000000000001003500000001002d000
000060000000000013842494d03f80000000000700000ffffffffffffffffffffffffffffffffffffffffffff03e80000000

0ffffffffffffffffffffffffffffffffffffffffffff03e800000000ffffffffffffffffffffffffffffffffffffffffffff03e800000000ffffffffffffffffff
ffffffffffffffffffffffffff03e800003842494d040800000000001000000001000002400000024000000000
3842494d0414000000000004000000033842494d040c0000000008d10000000100000070000000
4300000150000057f0000008b500180001ffd8ffe000104a46494600010201004800480000ffee000
e41646f626500648000000001ffdb0084000c08080809080c09090c110b0a0b11150f0c0c0f15181
31315131318110c0c0c0c0c0c110c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c
0c010d0b0b0d0e0d100e0e10140e0e0e14140e0e0e0e14110c0c0c0c0c11110c0c0c0c0c0c110c0
c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0cffc0001108004300700301220002
1101031101ffdd00040007ffc4013f00000105010101010101000000000000000300010204050607
08090a0b0100010501010101010100000000000000010002030405060708090a0b10000104010
30204020507060805030c33010002110304211231054151611322718132061491a1b1422324155
2c16233347282d14307259253f0e1f163733516a2b283264493546445c2a3743617d255e265f2b3
84c3d375e3f3462794a485b495c4d4e4f4a5b5c5d5e5f55666768696a6b6c6d6e6f6374757677787
97a7b7c7d7e7f71100020201020404030405060707060535010002110321311204415161712213
0532819114a1b14223c152d1f0332462e1728292435315637334f1250616a2b283072635c2d2449
354a317644555367465e2f2b384c3d375e3f34694a485b495c4d4e4f4a5b5c5d5e5f55666768696a
6b6c6d6e6f62737475767778797a7b7c7ffda000c03010002110311003f00f40fdbc1d78a6bc77eaf
731cf79d8046f2c7f0efd1db536bb98fff0087abf3d3bbaed6c2c63b1ae16bea6dbb76986b9c377a36
3ff31f5fb37ffea0c8f47512494e5bfafd2d81f65c97389da1adac133aff002fe8fb5dfebe9a77f5ea412d
af1efb1c2786803708fd1b9c5dec7bb77b37fb3fb1ea2d34c000490353c9494d5c4ce6e5b6c0dadf5
3ab0090f107ddbb6ff6b6b7deb27129e8870f1c9af0c9f4ab2496d33258d2efa43f796fbc4b481e055
1c1ccc7af0b1d8f2e6bdb53039a58e0410d120fb52534fd0e867fc1617f9b47f727af1fa4b6ea5f4558
adb458cd8eadb5078d75d8eac6ff00a2b44751c22e7303e5cd00b86d7480e9dbf9bf9db1ca36e553
68632b25ce363081b5dd9cd71fcdfdd494dc492492529250bb4a5e78f69d7e4bce6ac81e933f4e7e
8b7fc21f0feba4a7d2525e71ebb7fd39ff00b70ffe4d68740b83bad62345a5d2e7fb77933fa2b7f3772
4a7ffd0f554964dd87d71f901ccca6b6a170b368241f4e36bb1bf9b3bbdcc659eaffc2dbfe0d0ecc3fa
c9fa21465555b1b55ad78b0bac77a963b7d2fdfe9d3bdb8cd6fa75fb37fa7bfd5fd27e91894ed24b1d
b8ff0059c18fb5636c8812c717020fef47bbf467ddedfa69edc7fac8f3b5993431837fbb699735dbdb5
7fc5d957b1f66dfe73fe0d253aaf76c639dced04c7c166d79dd55f5b1fe8628ded0e8f5acee377fdc44
f8b4757a8641cebebbea7326bdad21c1db434eefccdbedfcc6b3f49ea7fc5d46c6c4fd5a9fd2bff9b60
e19d9a3fe0d25352bb7acb72eebcb715ccb5b5b595fa9602cd9ea6ff7fd9bf49bfd4fdcf67f2d1ebcce
a3ead62ea6815b9c1ae2cb6c7384f1b5afc7adaef77f2d59fb20ff0048efb99ff9043b71f67a6edee74
58cd086f8c7e6b424a6e24924929632012049ec3858f463f5d610ecb7e306068f54540000b7d6975
66dafdb539bf65f57d4ff0087f4bf316cacf17645b59dcf616be416ec91125bb7f9c494d26e5f50b0cb6
ec01ef0e2c659be1905afaf7fa6dff83b5afdbfa5fe6bf40ac33f6c5ad0fa9d865a6c616db56e3fa30f67
da59ee0f6eff004db7d2a03031c38b85756b04b7d33b2439f6ef157abe9b6cf52eb5fbff00968a1f763
540526b6303d92c6d703df6318fff0009fcb494ff00ffd1f55496665f58c8c7b6caebc1bad0c73036c0d
76d7b5c76db633d365aefd5ddfce6ff00f8cad11dd4dec7d6c38b738bdcf0ed8c790d6b4b995bcb8b
1adfd2edddfebef4a6fa4b32aeb4f77b5f8196d7c0e2b25a49697fb1eff4ff007767e95b4a19fac1179c
73d3f31b6801d0eac416fb7758cd963fd56d7ea57ea7a3ea7a7bf63d253ace00b48770441f82a6c3
801ad0dcb96c0dbfa69d23fac818dd56fcab2dc7bb06fc68ab77a8f69d84c1f51bea435bedf6ecff000
8ff00f45528e2bddf64c78aadfe6ab1a33c18d494ce9bf19d9d9157da1fe9b2ba8b4b9e430971bb77
a564ed7fd1fd27ee2b2dfb1b9cd02edee905ad3613246a3dbbbdc81becff00456ff99fed4db9c5f587
55601ea30cb9b006bdf5494e9249249294b172acc3c5b9d4d99594d2350d63039a27ddb18e14bfe
86f5b480dc92f687b69b0b5c25a7dba83f17a4a722ecbc3a6cb2a39398eb2adf2d6d635f4ff009cdae
f4367e77ef7fe7bb13e3df87956d1536fcb79b5fab2c686006a9b9dea38d4cf6fa94fa7fa27fbf7ff00a1
fd22d7f5dffe82cffa1ffa5131c9208df4d8c0486ee3b60171dadfa2f77e724a7fffd2f55492492529249
2494c6c69756e68e48207cc2ab8b664558d4d4fc5b77318d6ba0d5120007fc32b64c027c172ccfad
f98e635df66a86e00c6f7771fd5494f42331e6c75631added01c44d7c3b706ff86fe439275975a5acf
b3d8c1b9a4b9c6b8001ddf9963dddbf75734cfacd98cc9b72054c3eab58dd85c76b766ed5bedddef
dff00ebea2b981f5972f27368c77d15b5b6bb697073a468e7771fc9494f44924924a52ad49c9aea65
66912c686c878831a7829e5fdabd077d9361be5bb7d49db1b9bea4edff0083dca883f590b9a0fd95
ad13b8ed799d5bb76fe959b3dbea7eff00f83ffada537fd4bffd17fd21fdca168bed6b59b0346f63892e
ecd736c3dbf92b3c5ff589ccb5db7118ea9e0ed2e701b58edd75763e6edbebd1e9fa176cfd1fd3b68
537bbeb27bcd4310ced35efde047e783b0bbddfda494fffd3f55497caa924a7eaa497caa924a7ea97
7d13f05e6b4fabe957f4be8b7fd1f82f2049253ec5fa5fe57fe06ae745f53f6be1eedd1ea77d9fb8ff00d
cf72f1149253f5524be5549253f552c2fac5e87da317d59fa3646df577fe67f35f66ffbf2f9c92494fb80f
b27d8eddde9f0fdbe87da764cbb6eed9fe0fd5ff49fa3fb27abeafea8bb86fd11f01c2f95d2494fffd900
3842494d04060000000000070005000000010100ffee000e41646f626500644000000001ffdb0084
00040303030303040303040604030406070504040507080606070606080a0809090909080a0a0c
0c0c0c0c0a0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c010405050807080f0a0a0f140e0e0
e14140e0e0e0e14110c0c0c0c0c11110c0c0c0c0c0c110c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0
c0c0c0c0c0c0c0c0c0c0cffc000110800d1015e03011100021101031101ffdd0004002cffc401a2000

777

0000701010101010000000000000000040503020601000708090a0b0100020203010101010100
000000000000010002030405060708090a0b10000201030302040206070304020602730102031
10400052112314151061361227181143291a10715b14223c152d1e1331662f0247282f125433453
92a2b26373c235442793a3b33617546474c3d2e2082683090a181984944546a4b456d355281af2
e3f3c4d4e4f465758595a5b5c5d5e5f566768696a6b6c6d6e6f637475767778797a7b7c7d7e7f738
485868788898a8b8c8d8e8f82939495969798999a9b9c9d9e9f92a3a4a5a6a7a8a9aaabacadaeaf
a110002020102030505040506040803036d0100021103042112314105511361220671819132a1
b1f014c1d1e1234215526272f1332434438216925325a263b2c20773d235e2448317549308090a1
8192636451a2764745537f2a3b3c32829d3e3f38494a4b4c4d4e4f465758595a5b5c5d5e5f546566
6768696a6b6c6d6e6f6475767778797a7b7c7d7e7f738485868788898a8b8c8d8e8f83949596979
8999a9b9c9d9e9f92a3a4a5a6a7a8a9aaabacadaeafaffda000c03010002110311003f00f7f62aec5
5d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abcf3f35349d375d97ca3a4eb16a97b
a65c6af27af692d4c6fe9e9b78ebc8022b46008f7c5521ff009549f9634e3fe14d3f883503d334af8fd
aeb8aadff00953ff95952dfe10d3391d89f477fbeb8ab63f287f2b5410be51d3029142be8ec478115a
1c55cbf943f95aa19479434be2c28ca6dc3023e449c55bff9545f959f17fce9ba47c428c3ea91ee00a
787e38aad7fc9efca8724bf92f4724f53f538bdcf87be2ae3f93df9526bcbc97a3b5695e5671374f983
8aad6fc9afca374f4dbc8ba114a71a7e8f806de150b5c55917e50e95a6689a5f98749d1ad22b0d2e
d35ebe4b5b2b6411c312111315441b28a92683157a1e2aec55d8abb15762aec55d8abb15762aec
55d8abb15762aec55d8abb15762aec55d8abffd0f749f326843cc8be5037d10f32b591d5574da9f58
d8aca20335294e3ea1e3d7ae2a916a7f9a9e45d1a7f325b6a5a93c12f942086f3cc9fe8b74eb676d
720b4523b24441570acc0a72f8559ba29c551307e61f95a7f5394d756fe9db1beff004bb0bdb5e700
748eb1fad0a7a8dca445089c9c965f877c551fe5af36685e6eb5b9bbd0e77956cae1ec6f619e09ad6
e2deea355768a586e123911b8bab7c4bbab2b0d8e2aa97be65d1b4ed7b4bf2d5e5c18f59d692e65
d32dfd390acab64aaf35240a50150ea68cc09ed8ab7e64f31e8fe52d12f3cc7afce6d345d3a369efae
84724a22850559d963566e20752062a8fb5b98ef2da2ba84308a651220911a37e2c2a2aae0107d8
8c557a4b1c85c46eae636e120520956a03434e86841c557e2aec55d8aa02eb57b3b46894fa93b4
b7496245ac4f72629a41c87abe906f4d40a1677e2ab55e47e218aa1743f3468fe63d2a6d6b47924b
8b1b79eeed25261912413e9f3c96f3a08dd4312b244cbd3e2a7c35c555fcbdaf699e69d0f4ff31e8b
299f49d5208eeeca6647899e19472562920565a83d18038aa658ab08f3f7fc757c97ff006d79bfee9
77b8aa2715762aec55d8abb15762aec55d8aa17f2d7fbbf34ff00e0437dff001087156718abb15762
aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb15762afffd1ee9e69b1f37acd
a37e76e93a55c5deb561affa8fa0c3a75c8d6a5f2f5dff00b8d9ad0c6edb15842de7128abeb27f95ba
a93f9f34dd6afefbfe720e4b1d13559d3cd5e5ad26c3cbad1e9f7445edd4169770c9145fbbdd95e68
c3569d7c0362af4af2e6aa342b99af27b9f35eb968da6446eff0048699304b1fa9b1a98523b381a49
64330f811257e3173fb2b8aabfe5fdbea9e54975f96ee4d4b5ad035dd6ede6d16f2eaccfe93ade5bc
493c97412284882374a2492468d1c7f01fdda478abc94687f9877ba9f97f5ab0d1f5383f35ed74ff36
5b6b3a9dea5c369e9ab4f6dc34e7595cfd5fd1728a2168aaaa9c51ff6862aade69f2f799a6f2679b2d
fcb1a56b2346d6bc9335a6a7a25da5ddcddcde6d99d563f4d660c4c9e9faab712c7fb97fdcb72c553
afcc0d375dd5354f32798b47b4f30bdf59e9be58bbf2d2403528a21a9c37b71f5af4edc11196585a3
13a14e3c0b725fb78aa02efcb5abe93a86bf12e81acff0087756f3a5f5e79b469d6d3dc4b77a6ddd9
b1b29a25e5596259d94ca2dfe38f6e49f062a881e4fd56e7cc52c538f36cfa4695e498ce8f717d737d
14edacdbdc5c98cb9b4748dae7d131556858edea72901c55096be52d7bcbfa2f937508f49d7ef27d
67c9baa69de6988497d7775fa7eeacac045f588e596b112d04cab20e091bfed27a9c8aa849b42d6f
5a8b57d269afc7e7bb7f2879567d0123b8bd4163e6148efa1134c0398a321e35337abf0491abd79f
235553d8bcb9ace817fa8cb67a4ea96da8dcfe6359eaba85cd8437421bad2de38da499bd2255e0a
990ba9a856fb4b50b8aacf2bf9135fd2bcc3a6eaba55a6a9a66bf69e6af30dd7995e66ba3a7dc7966
f6eafee1218e3666824695a4b6921f4579a49c998afc78aa5da2797bccf2687e4df2ff0098b47f32da
e99079674cb7d3a5d1a348ae74ed7ec6e256b912b39ac0ceab6fc2671e8b22ba16f8be255f4f2d4a
82c28d4151d77c55807e66dfd96997be4cbcd46e23b5b55d665569a660880b6977a06e7c4e2a83f
f001b7943feaf967b6dfdf2e2adff008d7ca1d3f4e59d7c3d65c55dfe35f287fd5f2cf7e9fbe5c55aff001
af943feaf967bf4fdf2e2ad8f3af940d00d6ecea7a7ef971571f3a79446c75bb306b4fef57a8c5572f9c
7caad4e3acda1af4a4a0fb62abffc57e59dbfdcb5b6fb0fde0eb8aa23f2aeeedafad3ccf75672acd6f27
986fb84a9ba9a2c40d0fcc62acfb15762aec55d8abb15762aec55d8abb15762aec55d8abb15762ae
c55d8abb15762aec55fffd2f7f62aec55d8abb15762aec55d8abb15762aec552a83cb9a35b6bd77e6
782d786bb7f0456b79761e4acb05b9263465e5c68859b8fc3b726fe66c5535c55d8abb15762ac4bc
da69e62f231ad2bac4e3efd22ff1565b8abb15762aec55d8abb15762aec5586fe5f9acde6edeb4f30
de7fc9a83156658abb15762aec55d8abb15762aec55d8abe74fcc0fcc0f3dd87e60798747d2b5e96
c34bd39ad23b5b68aded2403d6b38a6725a685d892ce7be2ac7ff00e5637e657fd4d773ff00489a7f
fd9362aeff00958df995ff005365cffd2269ff00f64d8ab5ff002b1bf32bfea6cb9ffa44d3ff00ec9b1577fc
ac6fccaffa9b2e7fe9134fff00b26c55bff958df995ff5365cff00d2269fff0064d8abbfe5637e657fd4d97
3ff00489a7ffd9362ad7fcac6fccaff00a9b2e7fe9134ff00fb26c551da37e627e6249ade9515c799a7b
8b79afad219e07b5b15592296e111d494b75615563b820e2afa7b157fffd3f7f62aec55d8abb15762
aec55d8abb15762aec55d8abb15762aec55d8ab11f370ff9d8bc8bff006d99ff00ee917f8ab2ec55d8
abb15762aec55d8abb15762ac3bc81fdef9b7ff021bcff00935062acc715762aec55d8abb15762aec
55d8abb157ca5f991ff009347cddff19ac3fee9d6f8ab1ec55d8abb15762aec55d8abb1546e8a69ae

e8e7fed6363ff515162afb07157fffd4f7f62aec55d8abb15762aec55d8abb15762aec55d8abb15762
aec55d8ab0ef3d7d6edef3cababdbd85d6a16fa5eaaf3de45631faf32c52e9f776e1b8541239ca80d
3a56b8abbfe560c7c82ff00867cc35f1fd1b253efe58ab7ff002b0136ff009d6bcc06bff6ad7ff9ab1568f
e6020ff00a667cc1f469cdff3562a83d53f34ecf48d36f755bbf2cf9885a584325cce469ac0fa712976a
72703a0f1c551cbe7e56e9e59d7fe9d3c8fd6f8ab7fe3c14aff0086b5ff00fa4035ff0089e2ad8f3e06a
d3cb5af6de36047eb7c5577f8e0ff00d4b7aeff00d210ff00aa98aa97e5f437cb06bf7b7b633e9e351d
66eaf2d60bb511cc607489559943352a54d2b8ab30c55d8abb15762aec55d8abb15762aec55f29f
e6403ff002b47cddff19ac3fee9d6f8ab1ea1f0c55d43e18aba87c315750f862aea1f0c55d43e18aba
87c3154668c08d73473ff006b1b0ffa8a8b157d838abfffd5f7f62aec55d8abb15762aec55d8abb157
62aec55d8abb15762aec55d8abb15762aec55d8ab14fcceff00c973e6ca75fd137dff00261f156531ff
00769fea8fd58aaec55d8abb15762aec55d8abb15762aec55d8abb15762aec55876b7f957e42f316
ad71ae6afa4fafaadd88c5cdc2dcdd43ea7a28234aac52a2d42802b4c5501ff2a4bf2c7afe846ffa4db
eff00aaf8aaeff952df9674a7e83ffa7bbcedff003db156bfe549fe5956bfa0cffd265eff00d57c5577fca9
7fcb3ffab18ffa4abbff00aad8ab87e4bfe5a035fd0637dbfde9bb3ff33b156ffe54c7e5a74fd04bff0049
375ff55b155c7f26ff002d4ffd2893e89ee47fccdc5552d7f28bf2eecaeadef6db4455b9b5912781ccf7
2e1648983a351a520d1803b8c559b62aff00ffd6f7f62aec55d8abb15762aec55d8abb15762aec55d
8abb15762aec55d8ab1ef34f9d743f278b3fd2e2f2496fdde3b5834fb1bbd4666312f37263b48a5655
03ab300b8ab1eff0095cde52ff960f30f5a7fca39acff00d9262ad1fce7f2956834ff00311ffc17359ffb2
4c55b1f9cde533ff1e1e61ffc27359ffb24c55e77f9bbf9896dac796ef2ebca1a4f98af75e8ecaf2c5b49
6d0b58822beb4be8bd3922e4f6c116456092c5237429c3ecc8d8ab22f287e68e89a6696d71ae5a7
98a6f306a721bed529e5dd60c714b28016de2a5a53d38102c2a47dbe1ea37c4ed8ab21ff95d1e53
eda7f98bff0009cd67fec93155a7f3a7ca63fe95be63f9ff0087359ffb25c55bff0095d1e54ffab6f98fe5f
e1cd67fec9715661e5df30e99e69d1e0d7348695ac2e0c8a9f58865b5995e091a1915e29951d195
d19486518aa698abb15762aec55d8abb15762aec55d8abc0bf3bbf31b52f2c6bf65abe9336aa34ff0
0224d69a9f982cf4fb2bab8b2beb4bd263bc8ae668e168a336b66c6e939c8bf1b213d8e2a89f32e8
9a61fcd7fcbad3acafef6e743f33dbf996ff52e1a8dd98ae8fa56d3c0c0c7280163f55bd1e1408a7e1c
5553f2ced93cebe64fcc3b3f35df5e5f3f94f5b8fcbda469535ccd10b4d3ed2ca0786e691b21696ecc
8f2bcedf136ca8404c55906a9f983e5dfca9d02e340bc9357d62ff00cb9a44b7df5ab8b4bd9a3b88ad
a367025d44c2d07a8dc68c5e5e55dd862ac79fce1ad794ff0031fcc235858ae6f35a4f29e99a6c16b
24ad68971a8c9a9ab39499c05a0848f80afadc62fb2cdf0aaa5e66d57ccbe61f32793741f3958c363
a5dc7f885f5cd1ede66b813ae96913db4c1ade5564668a412a464f38a46df9514e2a88bdfce2f3a5b
791e4f3f5a796ece5d06eb4ab2d6346926bd58d9feb9711c66ddd633333158a6493d65554e5c919
57e12caabeaff9abe79f2bdef9a23f30695a43d8f9434db3d63529acee6e79cf0ea0f791c71c425895
5194dba17676e1466f0c553e6f3e79aacf5bb0f2beafa4db59ea9ae6a26cf42bd3287825b48ac24bd
9e69214919d194c324289cff7bb49555e4155798c171ae7fd0bb5c8f5dbf4cff8cc5a07f5ee38d3fc70
907a7ea72f57d2e1f052bfddfc1d3157ffd7f7f62aec55d8abb15762aec55d8abb15762aec55d8abb1
5762aec55d8ab05f391a79c7ca1f1303c755d80d8ffa3a7da3dbfae2a8da9f138abaa7c4e2aea9f13
8abaa7c4e2aea9f138abaa7c4e2aee4de27156d4b721bf7c5547f2bbfe5133ff6d4d6bfeeab758ab3
2c55d8abb15762aec55d8abb15762aec55264f2a797e3b1d5b4c5b206c75d79a5d5e1679185c3dd
208e52dc989f894052053e1db154b6c7f2d7c8fa64da05c586911c13795a092d3cbccb24bfe856f30
01e38817a05600295fe5555fb2ab8aa32f7c93e56d4357935f9f4e44d6e6856d6e350b7792dae268
10d56395e064322ad7e10fcb8fece2a9949a56932696da14d6903e8f2c2d66f60e8a60781d0a3445
08a152b5057c3156243f29bf2b9ac6eed9fcbf653595e41059dd34c5a6e50593f3813d491d98085f7
8a847a67ec71c55110f943ca9a66b7e5e874ff2e303a6417b2e99ab427f7166d2988488e4ca1d9ee
0356bc24e6236f5187c35554adff2a7f2c62b1d474eb4f2fd947a7ea527fa75b43c96266597d6e015
5a88bea7c6634e2bcb7e38aa76fe53f2bddddea5a94da7c17371ad5a269baac92d665bab3843aac
32ab12ac8bea38a11fb6ffcc7154b2dbf2b7f2fad3478f40b6d02da3d2e1b88ef608807e715cc2291c
91c9cbd44641f0a1561c57e15f871546a790fc9d1f97e4f2aa68b6abe5d967fae49a688c7a2d722e0
5d7aa47f3faca25e5d79fc5d7157ffd0f7e3cb1c40191d50330452c40ab31a002bdc9e98aa94f7d656
ce915cdcc50c927d8491d519b7036048aee715504d6747925585350b6699880b1acd19624ec280
1ae2aaf15f594d753d94373149796a10dcdba3ab4b10905539a8355e40556bd71575dded9e9f6ef7
77f7115adac74f5279dd638d6a682acc401be2aac59554b310140a927a01e38aa85adf595f2b3595
cc572a940cd0bac80122a2bc49ea3154462aec55d8abb155af22448d248c1234059dd8d14281524
93d00c550b69ab6957f2086c6fadee666863ba58e19524636f36f1ca0292783fecb7d96ed8aaa5bdf
d8ddcd716f6b7514f7168e23bb8a2915de17239059029254906b46c55118ab03f3a46cde73f26b8a
5231aa96a9de86d5576fa4e2a8ec55d8abb15762aec55d8abb155ca3718aa8fe577fca267feda9ad
7fdd56eb156658abb15762aec55d8abb15762aec55d8abb15762aec55e17e7cfcbbd43cc7e71f3e6
aba5e864ebd71e57b4b7f29eb9395485358805fabfa6e5c98a4e1710a7abe9fd9e5f17c0462ac7eff
4c1a3e97a6df5a79735ad2f57d67cc1a6ddbf97b51974fbb9afa5b0b4996e50594571140d1a42a2a
c922c92c891ca50fa7f1aaa5a5f912fe4d3741b2fcbcb2bdb0b887cbd1610000026060f002220574d
464301000000000001000000000000000c00000000200000b4260100b4660100e6dd1a5d72f218
ed5ed356d46485ed96658e590f159124e0633288d788e7cb155de6bfcbcf316b7a2dec9a67952e2
ced27f2ee93a3df79755add4cfaad96a314feb2912856fabc2b2afd60bf2916450bcb8e2af54fcb3d0

779

af340d5bcf917e897d2342bed745fe890522485e0934fb48e678e38ddb806b88a562085a96e74f8f1
57a1e2aec55fffd1f497e78a79a3cdd1cde52f22dbdecdaf6836f1f982daf2c25b58e2875b824f534a8
6e7d79a32636789e495406f8447c851b154ab50f32f96ff00336fff0020fce86d6da41aaeab78e62b9
48e4920b94d12fccb6e7957e28ae23a103fdd91a9fb41715625f95fa1e931d8798b54974df2aa6856
1f987ae3de5fdec4aba8c36f6daac8f1adbb2a80b223ac7e8a86fb3f0aad698abd034bd0ff002f61fcd
9d3bcc3e5bbdd3b4d9b43b7d474dd66ed2ea3fafeb17f75e9b18ae0f3324e2d846f23bcbcb849f0a7
f772d15611ff003919e758bccde51fccef2cfe93b28347d0749d0f50b080ac3336a0353b8f57eb2923
923d2511848da1e8fcd998fc2b8ab2e3f9a7e69b99ff00495acd6c618bcf71f932f3caf2448d20d3659
56dc4e1c37332b232df2b57d2fab371e1feecc5586fe59eaba9687a4e9ba3f93efac7475f327e6479
b349d42416914ec6de29751b98cc74740ac82dd4272575e27ecf114c554ffe574f9dec3d1f345e6a9
1ea074cf21ebbab3e990c71c5637fa9e95abfd485c144e727f769ea3246ff000af2e3f68e2aca2fbcff0
0f9874d220b1f386812c3afebfa4d858ddd9226a734361a8d9cef2894a8b788b9921e76e556bc1a9
22b53932a86bdfcc0fccad2f49fcc0d6ae3cd367710f91b5eb2d09201a6c3089a3b81a5b493cee656
e3417536cbc40eb5f87655349ff323cd7a8eb33e9fa4798ece1b15f3f0f2bfd696de0b82ba6cda2a5f
aa86e61448b37255760d5fb2cadc71540691e70f38ea5aee969aef985291693e74b64091409a76a
b268ba8db5adb5e1b76156631bb7245938555f87c0e6aab1ab6d6b5f926b3f3bf97353d3f41d7bfe5
54695ac1586c606b5ba9e1966992dfd3247086bfbb0b1fc681d4232f1f8954e13cfb73e57f34f9a754
482db45bbf31eb5e53b2d61ee1e38e3d3a4d4747f51da6728e0319116dc3ba11cdd6b8abdbbf2ff5
0d5b51f2dc72eb9aa58eb3a9c53dcc12ea5a58616b2a473308e95001754e2b294fddfa81f8507c21
5497cf9a65e6abe71f25c163a8c9a5dc21d51c5c451453920db2a952b32b2d0f2ad69db1546ff82fc
c74a0f37dc57b9fa8587fd51c55b1e4cf30d457cdd72452847d46c3af8ff738aaf1e4dd7475f365d1d8
ff00c79e9ff47fba31577f8375ddbfe76bbaf7ff0042b0ff00aa18ab7fe0dd6e9bf9aeeebe22cf4fff00b27
c557ff83f56ff00a99ef2bdbfd174ff00fb26c5568f276b3524f9a6ee9d87d534fdbfe9df155e3ca1aa8df
f00c4f79ff48ba7ff00d9362aa3f95d0b5bf94dadde569de2d535a469dc2ab395d56e8162102a827fc
914c559962aec55d8abb15762aec55d8abb15762ac7bcd9aedfe8916969a6c30cd77a9df2d8a9b9
6748a30609a72e782b13b454a7be2a96fe9af39ffbeb4aff0083b9ff009a31577e9af39ffbeb4aff0083
b9ff009a3155a759f3b57e18f49a7bb5d7fcd38aa5fac45acf986de3b4d7f48f2fea76d0c8b3c515e47
34e892a542ba89236a30aecc37c55136b7be6bd3eda2b2d36cf44b4b280718ada11711c68be0aa
88001f218aab7e99f3c53fbbd22b5db7bae9ff038ab635af3b6f58f49f6a35d7fcd38aadfd33e79aec9
a3d3e775ff0034e2ab6dfce3adcfe56bbd4feab68359b6d60689e9f397eaa49d463b1f56bc79d38bf3
e34ebb62afffd2f78c3a3e936f7977a8c1636f16a1a8055bfba8e2459a7118e2a2570033f11b2f23b0
c552c8bc89e48856d921f2de971a59cad7168a9656ea219dc82d246027c0e4a8ab2fc4698aa9c5f9
7be418274b983cada447711c8b3c72a585b2bacaadc838611d4303b86eb5c5556d7c8be48b1bd7
d4acbcb5a55b6a322c8925dc3636f1cccb3822405d50310e090dbfc5df155f75e4bf275ea5a4579e5
ed32e22b0845ad8a4d676f22c16e2804510643c1053ecad1715467e81d0c5f9d546996a35431fa2
6f7d08fd73105e3c3d4e3cb8d36a57a62a84b7f26f942d0c46d7cbfa6c06094dcc3e959c09c272389
9178a0a391b721f162aab6be57f2d597d57ea7a358dbfd47d5165e8dac31fa02e3fbdf4b8a8e1ea7e
df1a72fdac55645e51f29c16d0d943a0e9d1d9db4df5ab7b74b481628ee3fdfa8a128aff00e50f8b15
440d03410b7e834bb409aad4ea6a2de2a5d16a83eb8e3fbcad4d79d715637e64fcb4d075ff00d051
4305ae9f61a36a51ead258c56703c174f0dbc96a91ca8401c424a69b54714a7d9c55924fa0685749
6d15d699693c7668d159a49046eb0c7227a6cb18653c432fc242f55db155a3cb7e5d02cc0d22c80
d3b6d3c0b68a96e090dfbaf87e0dc57e1a62ae93cb7e5d98df19b48b290ea600d48bdb44df590bb8
f5aabfbca76e75c551d6b6b6d656f159d9431db5a40a23860854471a228a055550000074031562d
e60aff008efc9db7ecea95ff009111e2acbb15762aec55d8abb15762aec55d8ab12fcb81ff003aedc7f
db635cffbab5d62acb715762aec55d8abb15762aec55d8abb15621e7bfef7caff00f6d95ffa81bbc55b
c55d8abb15762aec55d8abb15762ac674fdbca9ab1a75f392ffdd7a0c55fffd3f7f62aec55d8abb1576
2aec55d8abb15762aec55d8abb15762aec55d8ab14d7003e78f299237116a847cfd28862acaf157
62aec55d8abb15762aec55d8ab13fcbaff0094767ffb6beb7ff756bac559662aec55d8abb15762aec5
5d8abb15762ac3bcf88cf71e54e2765d64336f4d8585e0fd67155f8abb15762aec55d8abb15762ae
c558d589af94b53f01e7151ff870438abfffd4f7f62aec55d8abb15762aec55d8abb15762aec55d8ab
b15762aec55d8aa49e61f2a693e666b393516ba8ae2c19ded6e6c6f2e6c264f5578b8e76d246c55
80dd49a62a959fcbad1cd3fdc9ebc29e1aeea83fec671570fcb8d10509d475d6237df5dd54ffd8ce2a
bbfe55de895afe90d6ffee39aa7cffe5a715631f989f97fa45bf907ccf3c57fadbcb1e977b2287d6f537
05960722a1ae0823d8e2ac9a0fcbdd0c451917bac9f846edadea84f4eff00e938aaa1fcbfd0c8a1bbd
629edad6a83fec67156d7f2fb42514faceae7dceb3aa13bff00d1ce2ab97c83a08ff77ea8dfeb6b1a9
9ff00b19c5538d1b46d3bcbfa7c7a5e951343651bcb22abc924ce5e791a69199e566762ceecc4b31
eb8aa3f15762aec55d8abb15762aec55d8abb1548fcd1e5a5f335ada422fee34cbab0b95bdb4bcb4
10b4892ac72447e1b88e5420a4ac0d57154887e5feb03af9df573ff003c34a1ff006238ab7fe00d5ffe
a76d63fe44e95ff6438abbfc01abff00d4edabff00c88d2bfec87156bfe55feaff00f53b6b1ff2234aff00b
21c55bff006afff0053b6b1ff002234affb21c55dfe00d5fa7f8d757f9fa3a57fd90e2aeff006afff0053aea
fff002274affb21c55b1e41d5475f39eae7fe78e97fc2cb1545c5e44861f2d4fe5e4d5af7d6b8be1aa3
eac7eadf5bfad0bc5bde417d1f469cd00e3e9538fdf8abffd5f7f62aec55d8abb15762aec55d8abb15
762aec55d8abb15762aec55d8abb15762aec55d8abcfbf3775e3a3795751b5bb800d2b56d3b51b1
faf16348af9ed99ade3714a049a8e9ea160164f4d3fdd98ab20f27f981bccda74baa4107a5a3999a1
d2676a87bab7840433f120511e40fe91fdb8b849fb78ab21c55d8abb15762aec55d8abb15762aec5

5d8abb15762aec55d8abcefcd9f9b763e55d635bd14e81aa6a73f97f494f30ea771682d5604d3dc5
c7c6ad3dc445981b6752817974fd9df1540df7e7af96b4f5d51e6d2f539134bb6f2fdeb7a31c1234b0
79aa636f68507ac375914894371e3d579e2acb3ca3e74b5f37daeaf2c16175617ba1ea171a4ea36
17622f592ead9524f85a291e365749119583fed6f435c558058ff00ce45e81a96936dacd9f96f5a7b4
bed16f3ccb620ad9ab4ba6e972ac578dbdd515a22e9f031064e43d3e5be2ac8e3fcdff2edd5ee9b0
69b6b77a8596a33d959b5f5b2248b6f3ea76c9756e26883faaa85258fd49021488c8bcc81c8aaac3
21fcdef356a37fe4dd720d16ee3d3b56b7f329bcf2cdb496534b31d1a58921944f23c61481cc11ea2
d58fd96f84e2acb2ebf3a7cb716913f986d2cef2f343d3b4cb1d735bbb8962536363a9c5ebc4d246f2
0676588196448f9144fe666552aa5de6cfcc8d45f5af2a45e56f5d7459fcd91797b55d442dbb5b5cd
20b9f5e10b256501248c0f5502fc68cb5e38abd6b157fffd6f7f62aec55d8abb15762aec55d8abb157
62aec55d8abb15762aec55d8ab09f3c6afae5a6b7e57d1b47befd1f16ad35e8bcb858639e4e16b66
f322a8941515602a68715437a5e6cdbfe7699e95a9ff42b2fb3e1fddfe38ab421f3689159bcd7398c5
7927d46c8127b7c5e9edf762ab9a3f349e3c7cd170b4356ad9d91aaf87f7429f3c552fd6fcbda97997
45d43cbde61d765d4746d52292daf2d26b2b1e0f04abc4a11e89fa1bc71546dad96bb656d05959f9
82682ced91618208ecec551228d42aa2810800000018aab15f32d453cc9734eff00e8b65ff547157
70f32ff00d4cb73ff0048b65ff547156c27994edfe25b91ff0046b65ff547154cbf2fb57d475af2e7d6f55
985cdec57fa959b4e2358b9a595fcf6f192abb03c235ad3be2aca315762aec55d8abb15762aec55d
8abb15762ac2f55fcb7d2f5ad77cc5acea37973243e65d0d7cb37f60be9a44b64a673ca360bcc484
dcc956e447d9f87e1c558a2ff00ce3f690d697b05d798f55b99efedb40b29ee1c598221f2b5c9bab20
aa96ea012c692ff0038fe538ab3bf2cf9421f2bcbe619adafa7b993cc5a94bac5c19d62a433cd0c501
58c222fc01614a06e47afc58ab05d37fe71fb41d2f48d2f45b6d6f51369a4e81aaf95602e2d8bb596b
722493bb9108fde298d38114514dd5ab8aa6de59fc9fb3f295fa5ce8de63d5e1b0920d3e2d4b4959
601697736956f1dac33b521f52391e286249fd178d2608bcd7ae2abf4ff00ca3b0d325d2dedb59be3
168c3584d3a1916d99523d75fd4995888416e0dfdd927fd7e58aa85a7e49f97acf4a9b458afef3ea1
a868d63e5cd713f723ebf63a646d0c064a4638cbe93b44ef1f1e49daaaa42aac3f27f498f538eeedb
58d4adf4c835f1e6cb7d211a036f1ea451d250acf0b4821979bbbc5cfedb33215e98abd1b157ffd7f7
f62aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8ab00f3d03fe32f229edeb6a9ff
74e93154c715762aec55d8abb15762aec55b1d462ab3f2d10c7e5cb846dcfe97d64f4a6cda9dc30f
d78ab30c55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb157
fffd0f6cf9f7cce9e51f2b5eeb1ea471dd7eeed6c5a70ed17d6ae9c4311711ab3145660cfc47d856c5
5e37e5bfcc6d435ff00c86f3f5bbebf35df9efc8365ab595debb6fced2e2796d2de59ec2fd5480409e2
11c94dd79f35de98aae4d7fcc917e68d968f1fe9dd7b4b6f2058eaefa569f7eb0b36a0f79246d3b34d
7107c4eaa13663feae2acabccb75ad68c9f94ab6faa6a70b5febd6f63aadb5d4cb24b3433e9d7970d
0ddb0452ed1bc682bf0fd9f8ab8ab37f3579b5740d43cbda1dac0973adf99af24b2d3a196430c405b
5b4b773c8ee15cd12384d001567651d2ac157987e597e627981f475f2c25bfe98f3844be64d66e05
fdf49c45ad9ebd77656f025c3c52339253d3562a1638d1797da55c55016bf9a171ab79b65f3e68af7
973e5b3f96f179becfcb73ddbdb40d72d73372e600750fe9a7a7cb8b25472a7ed62a9e5ff00e6ff009
ada09ed2df44b2d3b5a8ee7ca8f109aedeee07d3fcd37c2d7e2648632b34655c1a074fb2ea5bece2
a9dc1f9a3ad5fde5f1d2bcad35e687a7dc6ada7dcea66710c71dd68cb2292dcd378e59e26854a737
5f85da3e24f1552cd1ff35bcf9ad3f952283c9d611379c34c7d6b4c7935972b15ac51da48eb381635
e74baa284e60f1fb437a2a828ff3f2ea4d0b4ad6c79750fe93d23ccfabac02f48e127952710bc5c8c1
bace0f257a7c1d0a375c552bd7bf3c7cea9a4db476ba0d9e93abeab63e5ed734ab992e9efed9b4fd
6b54b5b0b8865a411149e2fac2d3668d95b92d4a32e2a97f9dfcddaa3ebd7963a1db5cd8ebba3fe6
1f96ac2e47e97ba6b4be5d42d2093895e3486068dd43c22374e6ad2712ed8aa2356fcc8d5aefcf9e
4abcd6209f44b9f2f6b1e66d2bccfa5d95e49736374ba7682fa8472201e92caac8f14b1fa91878dea
9db157a7f913cf3aef9c258a7bdf2ccda5e877ba65a6aba6eacd3c72c529bb1c9ad8a7c2fce352ade
a2ab44eadb355715407e666aba568be63f246a1ac5dc563662eb518beb370c1103c9a74d45a9ee
698aa5c9f9a1f972e18af99f4ff80726acb42052bd08dcfb0c5547fe56cfe5a6e079a2c49078ecce771
f25c5578fcd5fcb722a3ccd62401cb666e9b7f93ef8aadff95aff0096b5e3fe27b2248a8f89fa52bfc98a
b97f363f2d9f915f32da1e3b9da5ff009a37c55cbf9b1f96ec2a3cc76c4004fd89fa0ff9e78ab5ff002b6
7f2da95ff0011db529cbec4fd3fe45e2adffcad8fcb807fe52283e88ae0ff00ccac5594fe54ea167ab79
49b53d3e63716375a9eaf25bcc411c93f48dc007e2a1a6db57b62acdb15762aec55d8abb15762ae
c55d8abb154875bf355a68b7f6da61b3bdbfbeb98a5b9486c2033958a164466735007c522818aa0
4f9e581503cb1af10c4824592803dcd651d71577f8e64debe57d7b6247fbc69d077fef7be2ab1bcf9
2af4f2a6bedd3a59c7dfe730c5569f3ece0d07947cc2db56a2d20a7e370315543e79980aff008575e
3ec2d62ff00aaf8aa99f3edc0a11e50f309af85ac1fc6e062aeff001e5d7fd49fe60a78fd5adbfeca715
6bfc7b75ff5277987fe91adbfeca7154d7fc59a4ff847fc6bfbdfd0bf51fd29fdd9f5beafe9fab4f4faf2a7e
cf8e2afffd1f766a3a1d8ea97da66a37665fac69133dcd908e69238c4b244d09674560aff0003b01cc
35396dbe2ac7355fca9f266b3a9798b56bcb7b95bdf36d947a5f985a0bcb9852eeca1431a44e91c8
1400acebc942bf1771cbe2c55b8ff002b3cab0ea906b901bf8759b7d3a2d122be8b51bb8e5fd1d03
9912125650080c4b548e55fdac55143f2ebcac2d744b3f42e1a1f2eddb6a5a517bbb9774bd93d4e5
3bbbc85a572269013297fb6d8aaed5ff2f7cafae4af71a8c17125d9be8b5682e52f2ea39adaf6083ea
cb25b3a4a0c1fbbaab2c5c51f93f356e6d8aa06c7f297c89a5c56f1e9ba7cb6b25b7d7445731de5df

781

d6386ab209aee333194b949a45123a16e3ea7c6b47df1554b8fcabf23dcdcc97474e789e4d1ffc32d
1dbdcdc4110d1a847d55638e45454153420721d9b155b3fe557926e45c7af653bbdd41a75acb27d
72ec4823d125f5ec4ab094147824f8d1d68fc89e45ab8ab76ff957e47b4d4eff0057b5d3e586f35332
bde84bcbc103cd711fa32ce20f5bd259dd76699504a776e7c8938aa32c3c81e57d327f2fdc595b4b
14be56b3934cd0cfd66e1841672ac6ad1156908752228c7ef391f81715629af7e48793bf43eae7ca
da5a5af98ee2c358b3d2259ef2f3ea96b26bd1b2dcf188c924691bbb7a8e89171e5f12af2c5511e5d
fc9ff002dc7e48b2f2e79a6c16f7513a6697a66a970b77752b30d1996580413b324b1a24cbeb204e
1c5f154da4fca8f22cb35fdc4ba748f73a95ed9ead7570d7774d2fe90d31163b5b847329649224455
0c845557e2e58aab9fcb3f25b5de957eda6d6f346b8bbbcb294cd3126e752431dd4b355e9334a8cc
8e66e7f09e38aaaf943f2efc9fe438de1f2ae9e6c6128228e26b8b8b8486107908a059e49043103bf
a71704ff271541f9a6bfe39f21f87d6752ffba7cb8ab34c55d8abb15762aec55d8abb15762ac5bc84b
c74ad456b53fa6b5a24fcf52b83fc7156538abb15762aec55d8abb15762aec55d8ab189c53f3134f3
e3a2df7cb6bbb4feb8ab27c55d8abb15762aec55d8abb15688a823c7157937a8dff42ebcb6e5fe1b
e3d76afd5f8e2aff00ffd2f7f62aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8ab0
cf34ff00ca71e43ff989d4bfee9f2e2accf15762aec55d8abb15762aec55d8ab1af241074ed488e9fa6
757ed4e9a84c0e2ac9715762aec55d8abb15762aec55d8abb15637715ff001fe9dfcbfa1efaa29dfe
b5674df156498abb15762aec55d8abb15762aec55e45c47fd0b9d36a7f87abda9fdd57157fffd3f7f6
2aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8ab09f3bfd7ad35ff296b96fa6dd
ea567a6dd5e1bc4b08c4d2a2dc59c9123702ca48e440db1544ff008e8ffd4b3af7fd208ffaa98abbfc7
67971ff000cebdf3fa8edff00273156c79e49affceb5aeedb7fbc43feaa62ad49e7c5891a497cb9ae24
6809776b350a146e49265a003c7156c79e49151e5ad77fe9087fd54c55bff1c37fd4b5aeff00d212ff
00d54c55a3e79602bfe19d74d7c2cd7feaae2ad7f8e9bfea58d7bfe9097feaae2aade438ef97449e7
d42d26b19aef52d4eed2d6e4059961b8be9a488baa960094656a576c5593e2aec55d8abb15762a
ec55d8abb15762ac575db6f31dbf996c35cd16c61d46da3b1bab2b8b792e7eaacaf34d6f22382637
0c291b0ed8aaa0d5bcec454f96ad83787e931ff0064f8aae6d57ce807c3e5cb56f11fa4e9ff0062d8a
b8eabe74da9e5cb63e3fee4ff00ecdb155dfa4bce5ff560b4ff00b891ff00b25c55bfd25e72efa059f4ff
00ab9375ff00a44c55dfa47ce5ff00560b3ffb8937fd9262adfe91f38507fb81b3af71fa49bfec971568e
a3e71eda0d993ff006d26ff00b25c5524ff0005ea7ff2a93fc0bea43fa63f43fe8ff53937d5feb1e971fb7
c3970e5fb5c2b4fd9ed8abfffd4f7f62aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55
d8abb15762aec55d8aa43e780ade4af322b0e4a74bbe057c41b77db154dac7fde2b6ff8c49ff1118a
a2315762aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb
15762aec55ffd5f7f62aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb15762a
ec55d8ab00fcdad76ebcbbe58bdd42e047fe1796cafad35a9d851ad0cf6ec20ba67e400855c7a736
c69ea2c9f6637c5537f226b1a8f983461addc442df4abc656d0e165e33358222aa4f21a9fefc832a0a
0e313a06f8f962aca315762aec55d8abb15762aec55d8abb15762aec55d8aa02ff00527b1bbd3ed5
6c2eaed6fe6681ee2d911a2b60b1349ea4e59d4aa12bc0150e79b2ed4df1544dd5d5ad95bcd7979
325bda5ba34b713cac1238e3404b3333500000a927156e0b9b7b9862b8b7956586751243229055
d1854153dc50e2aab518ab5c96a05454f4c554aeef2d2c2d67bdbe9e3b6b3b68da6b9b89582471c
480b33b335005001249c5520f35f9fbcabe4bf2caf9c35fbf483cbcf25ac69789fbc56faf4a9144cbc7a
afc61988fb2819fa2e2ac90b2a8e4c405f126837c552bd4f5eb6b086f4da4326aba8d82c4f3e95a79
8e4bce33b7143c1dd00a8ab7c4c3e1538aa69cd7970e4399150b5de9e34c55d515a577eb4c55fffd
6f7f62aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abc9ff3c35dd6b47b7d063
d1f509f4f17571702e1ed9fd37711c3550586f4a9ae2af213e6ff00389ffa69353dfc2e5862aeff00177
9c7fea64d4f6ff9796c55a1e6df388ffa69354fa6e9ce2aa177e62f33dfdadc58deebfa95c59dd46f05c
c125cb324914aa55d581d8820907155cbe66f36a22c69e64d555140555179200001403156ff00c5
1e6fff00a99b56f1ff007b24c55a6f3379b9baf99b571d3a5eca3a7c8e2ad0f3279b6a3fe767d63b7fc
7f4bdbe9c55ef7f927aa6a3ac7e5e595eea97d36a379f5bd4a137772dce66482fe78903377e2aa14
7b0c55e858abb15762aec55d8abb15762aec55e63f9a5a2ea9a979abf2caff4cb1b9ba8f49f30c973
aacd6e18a4361269d750b9940600a995e1da8c7f6bf65b15786c7f957e696f28c5a669de58bfb7d6
357f2cf9f74ad67d6242caf7b397d1a19da49483b6f07511569f072c55975a795f5fd43cd366756f2c
ebf0e9c91e8379e519ac9acacedec1f4c8c7af6d78c794b6e0cc1e491630cb3c52f0a337c18aa5f0fe
52593e97a05c4fe4fbdfd252f9e2f9f56349965ff0f4b7da84b0faa44b56b7f4e78be0df66e25366c551
9fe09f32691e69b7d134ff002b5f7e85b2fcc2b7d7ad2f6dfd13631e81368cb62dc19a60ff000ca292c
5c6bb73f8b6aaac0fc91f96f7de67fcaab0bdf29e8b709aa4de5bf39697adde4a691ea86f1ae22d3ed
8999cfacc260924521da058caf24e7c7157b149e55d6fcf9a7e8fe4c9f4f9fcbbe5ad2fcbab15e0d474
f8a6b7babad4606b39a1112caa11e0883ee0d3fd236af038aa45a12fe602e81e49b1f3c794f55f306
97a145abf96f5fb48e383d6ba65f4a0d3754f4a59d03a4b6c92073c83c32ccdf0fed62aa5e6bf21eb7
05a7e66d8699e57bc66d674bf2f2f97e58196e65274d8521684dc7aa64692264152e7e2039f26c55
3dbbf2979b6fb59d63d5b19cf9865f38e97ade85e655a2c71e8111b5696167ad50470a5cdb3db903
d567e546f519f1579aeb5f967e6b8f4bf2a1d23cada82dcc9ac6aefe63f4b699b4b6f335a5f5ac7331
94164f422e71a0278aab2517932b2afffd7f7f62aec55d8abb15762aec55d8abb15762aec55d8abb1
5762aec55d8abc5ffe7207fbbf2cff00cc45d7fc9818abc6715762aec55d8abb15762aec55c3ae2afa
17f21c30fcb7b30c4337d7b55ab014ff00a58dc53f0c55e938abb15762aec55d8abb15762aec55d8a
bb15762aec5542f25b582d279af64586ce38ddee2591b82244aa4b333122800ea71562de4bbcf27
e9b7ba97e5f794ac0e9d6fe5d86d2f1a08a3e16661d5bd69236818310c19a290bf4f8be78ab30a8a

d2bbf5a62a91cde6ad360f3759f92e449c6ad7d6171aadbca13fd1cc1672c30caa5ebb3833c678d3
ec9ae2a9e62aec55d8abffd0f7f62aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55d
8abc5bfe7208811f966a40ff0048baebb7fba31578cf25fe61f78c55dc97f987de3157725f11f78c55dc
97f987de3156b9a7f32fde31577a91ff003aff00c10c55dea47fcebff0431577a91ff3affc10c55f42fe42
156fcb3b1656e6a6fb5621bc7fdc95cfeac55e978abb15762aec55d8abb15762aec55d8abb15603f9
dd61ab6a9f947e73d3741b6b9bbd72ef4ab9834db7b1e5f596ba910ac5e9942a410e41ad76c55e2
3ad794bccb06abe6fbdd1610000026060f002220574d464301000000000001000000000000000c0
0000000200000b4060100b466010017cbdaca46350f23dff96da18ae01436f34275692152ff000bfa
6a56e760d28f85bd4c55507923ce1aee99e78d3f5fd1fcc175e743a4f98b4f9a7b93651f97b514bf13
3da1b731a2c972c4887d149be2b5f897928f85d55dabf97351bc97cc9ade9de4dd66d674d37c9cbe
5b45b478278a5d3afa692ec4491bd11e34705ffc9664dfe25c5593ff0086fcf771aa8b6b7b5bab4f39
dbf9baf3561e67915fea937972e3eb0f04266350556178ad8da1dd658fd4f4f8fef7156bf2cf4cd75bcf
9e53d4f52f28ea7a56a1a5796350d1bcd3abdea44229f576b8b091a45984a4ce266865759957e20
4569f65557d018abb15762aff00ffd1f7f62aec55d8abb15762aec55d8abb15762aec55d8abb15762
aec55d8abe59ff009cddff00945fca3ff6d3b8ff00a847c55f1ac9fdebff00c678ff00e227155aff00647fc
c47fc6a715470fee87fc641fa862a871fb7f397f5e2aa16bfef437faabfab1544afda4ff3ed8aa053f67fd
66ff8962a8d8bed7fb16fd67157e88ffce337fe492f2c7caf7fea3a7c55eb58abb15762aec55d8abb15
762aec55d8abb15762aec55d8abb15762aec55d8abb15762afffd90000000840010824000000180
000000210c0db01000000030000000000000000000000000000001b40000040000000340000000
100000002000000000000bf000000bf0000af4300005143030000000000008000000080fe7fe9430
000008000000080ff7f8b432100000008000000620000000c00000001000000150000000c000000
04000000150000000c0000000400000051000000d82301000000000000000000d2010000160100
00000000000000000000000000000000005e010000d1000000500000002804000078040000601f
0100000000002000cc00d301000017010000280000005e010000d1000000010008000000000000
0000000000000000000000000100000000000000000000ffffff00fdfdfd006e6e6e00565656005454
5400515151004b4b4b005d5d5d005b5b5b004d4d4d004a4a4a0048484800414141003d3d3d004
040400046464600494949003f3f3f00444444004545450050505000585858004e4e4e003b3b3b00
4c4c4c00353535003e3e3e003838380042424200373737003a3a3a002d2d2d00313131002e2e2e
00333333002b2b2b002c2c2c001e1e1e002a2a2a00242424002323230028282800161616002525
2500a0a0a000f9f9f900fefefe00e5e5e5005f5f5f00aaaaaa00a8a8a800acacac00ababab00a9a9a9
00adadad00afafaf00b0b0b000aeaeae00b1b1b100b3b3b300b6b6b600b4b4b400bebebe00bfbfbf
00b9b9b900c8c8c800bababa00c0c0c000c5c5c500c7c7c700bbbbbb00c3c3c300bcbcbc00bdbdb
d00c4c4c400cecece00d3d3d300d2d2d200cfcfcf00cccccc00b8b8b800d1d1d1007a7a7a0092929
200e9e9e9006c6c6c00eaeaea00f4f4f400efefef00f3f3f300ededed00f2f2f200f0f0f000f1f1f100eeee
ee00ececec00ebebeb009f9f9f00fbfbfb00fcfcfc0068686800e4e4e400e8e8e800e7e7e700e6e6e60
091919100e2e2e200f5f5f5008e8e8e00636363009d9d9d0093939300fafafa00696969009494940
06d6d6d00e0e0e0009b9b9b00909090009c9c9c008f8f8f00f8f8f800f6f6f600e1e1e100d6d6d600d
ddddd0088888800cacaca005e5e5e00a7a7a7007b7b7b00656565007e7e7e00e3e3e3008282820
098989800d7d7d700d9d9d900979797009e9e9e00dfdfdf00d5d5d500202020001a1a1a005c5c5c
000c0c0c0005050500c6c6c600dedede0099999900727272000e0e0e0019191900d0d0d0006767
67001c1c1c000f0f0f00555555008a8a8a00c2c2c200b7b7b700a4a4a40081818100858585003232
3200dadada008989890034343400c9c9c90096969600666666009a9a9a007f7f7f003c3c3c00f7f7f
7006b6b6b001212120077777700787878007d7d7d00171717008d8d8d00717171007676760061
6161004343430030303000a6a6a60057575700212121000b0b0b00cdcdcd004f4f4f00535353007
97979001414140064646400737373008c8c8c0011111100707070001d1d1d00878787001515150
062626200cbcbcb0080808000747474008b8b8b00292929007c7c7c00606060000202020036363
600a5a5a500181818001f1f1f008484840047474700a1a1a10075757500959595006f6f6f00a3a3a
300dbdbdb001b1b1b000d0d0d0010101000d8d8d800838383006a6a6a00c1c1c10007070700060
60600a2a2a200dcdcdc0022222200d4d4d4008686860059595900b5b5b5005a5a5a00b2b2b2002
626260039393900525252000303030009090900131313000a0a0a000101010008080800272727
002f2f2f00040404000101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010133bb111dc1071b1306120f1907ba0d0ac1181d1107190
c05f6070cc1c10f0c0a140717101d0c120e1311190a0c070b0711db190a131814100dba1ddb1113
1910db07150b0c04af012f010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010100000101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101016334ddde77545454545454545454545454545454

783

547070707070707070545454545454545477777777777777776d6d6d6d6d6d6d6d6d6d6d6d6d6
d6d6d6d6d6d6d6d6d6d6dda105901020201020101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
1010101010101010101010101010101010101010101016401016401af0101010201640163012f0
12f012f642f01017101026301010201010101017a2f012f6464012f0164010101010101010101010
10101010101010101010101010000010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
010101010101010101010101010101010101012f2f010239537888acacacacacacacacacacacacac
acacacacacacacacacacacacacacacacacacac9696969696969696acacacacacacacacacacacacaca
cacacacacacacacacacac6d1559010101012f010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
1010101010101010101010101010101010101010101010164015832c988a69fb242449777714d7
4f048010134c54a88b43f80b387862f4172ef8a012f5dddb036dc550101010101010101010101010
10101010101010101010101000001010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
0101010101010101010101010101010101010101012f3b836f9688888888888888888888888888
8888888b8b8b8b8b8b8b8b8888888888888888888888888888888888888888888888888888888
88888888888888888888888888b16596401012f010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
0101010101010101010101010101010101010101010101012f010201642de93b7113265a80d58b
5924edc10845631c08826de38a67a8727a3b21487dbd8658f6f5da9b93357163010101010101010
10101010101010101010101010101000001010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
0101010101010101010101010101010101010101010101010238c3acaa88888888888888888888
8888888888888b8b8b8b8b8b8b8b88888888888888888b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8
b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b96045f02010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
010101010101010101010101010101010101010101010101010102022f2f2f014c9dec2f81ba0157
9c477f276601602d5e218963f3220101cdaa64f473017a03dda0e25701eed269012f010101010101
01010101010101010101010101010101000001010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
1010101010101010101010101010101010101010101012f2f2f6438c3ac8b969696969696969696
96969696969696969696969696969696969696969696968888888888888888969696969696969
696969696969696969696969696969696dec15f012f2f012f0101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101012f01010102af9ae44d0104ae64
57993d74b87b5e022e5ca5ce013aa8022ed4625bfc4f0201df1633f6630180215763010101010101
01010101010101010101010101010101010000010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
1010101010101010101010101010101010101010101010101010102395378888b8b8b8b8b8b8b
8b8b8b8b8b8b8b8b8b88888888888888888b8b8b8b8b8b8b8b888888888888888888888888888
88888888888888888888888888888888888886a075b010264012f0101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
010101010101010101010101010101010101010101010101010101010101012e0201015292e50
2cd13635d993b7020cd31bd6f02a8460138a57a01846a6cd98e6463b9b9470d01014e24572f0101
01010101010101010101010101010101010101010100000101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101012f3953768b9696969
69696969696969696969696969696969696969696969696969696969696969696969696968888
8888888888888888888888888888888888888888888873c15b0101020101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010201010171
35d588861b9ce53fea4667b77e40bf375c1a40583eb5f38a226264b05301691a366372ce2eacd95
d0264010101010101010101010101010101010101010101010000010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
010101010101010101010101010101010101010101010101010101010101012f2f010239c3768b8
8888888888888888888888888888888888888888888888888888888888888888b8b8b8b8b8b8b
8b888888888888888888888888888888888888888888888888889e5b02012f6401010101010101

01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010201
2e0102e8b3f377564f3ab76a632f52acb48202f3e9aba9492538b2e760015de0549f39016467706fa
499692f01010101010101010101010101010101010101010101010000010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
1010101010101010101010101010101010101010101010101010101010101010101012f013a83a
c88888888888888888888888888888888888888888888888888888888888888888888888888888
88888888888888888888888888888888888888888888b888896968b91672f012f0101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101017a0158e6e86449a802012f0201010271710201010
1015e95f4860102010101010101010101010101010101010101010101010000010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
1010101010101010101010101010101010101010101010101010101010101010101010101012f0
13a83ac88888888888888888888888888888888888888888888888888888888888888888888888
88888888888888888888888888888888888888888888888888b8888969696f2552f012f01010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
0101010101010101010101010101010101642f6401010201612e02efed7a630101010101020201
01017101012dcc692f010101010101010101010101010101010101010101010100000101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
1012f013a83ac88888888888888888888888888888888888888888888888888888888888888888
88888888888888888888888888888888888888888888888888888888b888896966ff0590102010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
1010101010101010101010101010101010101010101012f2f01582f01015896832f010164010101
0101010101012f0234035d64010101010101010101010101010101010101010101010100000101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
1010101012f013a83ac88888888888888888888888888888888888888888888888888888888888
88888888888888888888888888888888888888888888888888888888888888b8888969688f65f0
16401010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
101010101010101010101010101010101010101010101012f02010101010164010102642f01010
10101010101010101010101637a01012f010101010101010101010101010101010101010101010
00001010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101012f013a83ac8888888888888888888888888888888888888888888888888888
888888888888888888888888888888888888888888888888888888888888888888888b8888969
66d0b570164010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010163012f0263010201642f0
10202016301010101010101012f012f0101642f0101010101010101010101010101010101010101
01010100000101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
101010101010101010101012f013a83ac888888888888888888888888888888888888888888888
8888888888888888888888888888888888888888888888888888888888888888888888888888b
888896966a0661010101012f010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010163
02017b010164010101012f01012f01010201012f012f63010101010101010101010101010101010
10101010101010000010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
0101010101010101010101010101012f013a83ac88888888888888888888888888888888888888
88888888888888888888888888888888888888888888888888888888888888888888888888888

785

888888b88889696969160010101012f01010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101710101630
12f7175323e306301647101012f2f01012f2f0101012e012f64642f01010101010101010101010101
01010101010101010100000101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
101010101010101010101010101010101012f013a83ac888888888888888888888888888888888
88888888888888888888888888888888888888888888888888888888888888888888888888888
88888888888b88889696889169640164010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
12f01010201661e186701020101640101010101010101020102012f01010101010101010101010
10101010101010101010101010100000101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
0101010101010101010101010101010101010101020164013ad3968baa8888888b8b889696888
b889696888b96969696969688888873768b8b8b76de96888b88768b73968b96968b8b96968b96
888888888888888b8b88888b8b88966d1d602f0101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
101010101010101010101010201642f01020201020171016401010163010101710164010101630
163012f02010164016301c2912f01010201010101012f010101642f012f010101630101640171010
10101022e017101010101016401012f01000001010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
1010101010101010101010101010101010101010101010102010139b496ac8b889696888896ac9
69688881610000026060f002220574d464301000000000001000000000000000c0000000020000
0b4e60000b466010096ac968888888888888b8b8b76967073ac8b96ac8b88888b888888768b888
88b8b88888b96968888888b8b8b88889688888896ac73116001640101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
0101010101010101010101010101010101012e2f41763c5733889580884301809f4c2fa9796a616
44aaa495895766f8d2f02e8aa4844497bf0f5353b690102428b9a4b6a4201632f406f76672f37ac43
01015d3640553278ec01553af3a0020149828d572d470000010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
0101010101010101010101010101010101010101010101010101010101712f2f35837696889696
888baaaa8b88888b8b8888888b8b8b8b888888969673767396767370de8b96ac88aa8b96888896
968888969688aaaaaa8b889696968b88888b8b8b8896540661012f012f01010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
101010101010101010101010101010101027a012ea0f87871c98f5775e3a36323bd3b51e31fb074
66452b407159246e2e02c0b19bc79c195e088f7da114750120174447c4a02f0102f30084afefb1c1
84352fd3203966b80e5f02ae6d86b66a012d26677a277200000101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
0101010101010101010101010101010101010101010101010101010101012f01013ab42d73acac
ac969696969696969696969696968b8b8888888896968876aa968b96acacaa8b8b96aade88708b
8b8b8b8b8b8b8b96ac968896888b8888969688968888767809570101022f010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
101010101010101010101010101010101010101712f61bf492f6a1e0101fe3771d841711904af2f7
ddc66d25f0101f27f0201782c0101ed5401061564016ec7012c822f71c93f7101012dbfaf01f488010
1a92f65b70158889e01eb8f6001e5255a48a57b640587000001010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101012f2f38dd629688888
896acacacac96969696969696967676acac9696888878968896ac76887876ac8b7878966fac76ac
ac7676acac769676968876ac8876967876967676ac6f881755630101012f0101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
0101010101010101010101010101010163010201e1e4382f731a642fd69664b5412f1d620101026
457d2890164f26a010262fe63711e6d649e0b2f2faa176429770102ec09b653dafdb9716920e52f01
0102c59b020154f6646507012f5e254dce215e2ff6d3000001010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
0101010101010101010101010101010101010101010101010101010101022f41c9a7a7cbcbefa4a
4a4dae6a4a4efefa4a4a4efdadadaa4a4efefcb87e6efdaefcfefdae6cbcf87daade68787a3a38787a3
a387e6efe6a3da87ad87ad87cf85a3cfade6c90d610164010102010101010101010101010101010

10101010101010101010101010101010101010101010101010101010101010101010101010101
010101010101010101010101012e01016692f101de0f010125dc64b53401c2c58ca4f0895d2a696
42f09790101bcf47b2f205402160501639b0c712cc764010109794bef93a9015d1b892f647b0165d
00201aa1501ab8401018a2ba642217b0108b20000010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101020101017c82d762bcd7e0ebebdc
628cdcebebebdcdcdcebacac766f8c622ddc6f788c96ac763203ef96de70aa6a706a735454737354
547370aa6ab66d9fa47f7fc7a7cbd19f7fb66aa76c012f2f2f2f010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010102012e6462d53c717298f1a1983d7bfa3c2f35dd69dee36b35ea76eb34f
d1e353676282e022c6a5e25cc7d3c00e00128bc630164a1a2019b14636301cfa201370b2e74b701
5a74102f8e0e6601791a01629843602a3d00000101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
0101010101010101010101010101010101010101010101012f64640102010101012f0101010101
2f0101012f2f2f01010101010101010101632f0101016484e102010201010164012f2f01012f2f0102
012f02010164010201016401010201640101630102010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
1010101010101010101012e01012d15425bdfc679aeb201a9ea659a01aa70c58b01aa147fbbc6b9
c70884ad9101a0123975080972a5b96c4bc8f27d02015a53a998820101027b6a3c65762fdb0ece6
174b40102d7e636ab4f2f708154cd15580000010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101012f64012e0101dc00f00101022e0101020101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
0101010101010101010101010101010201012f010202022f0160032d5e01015c5c022f2f2f2f2f2f2f
2f2f636402637a7a63016401016c02015f09a4af0101018c262463010101012e5c5e2f643ada5901
01016401645f607a01010101022e2e020000010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
101010101010101010101010101010101017a01634cc9a76538630101646401010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101016301018d6d682f2f6301632f64015f66016302010101012f2f2f2f2f2
f2f2f2f01012f64642f0101022f630163016886010102015b2be60201010101012f01640102660101
a1490201012f020101012f012f64642f00000101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
0101010101010101010101010101017101026401153ebce8143002020101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
010101010101010101010163017a01441c9a2f010101630163640101012e2f0101642f010101010
1010101010101010101010101010101016364012f01630101018b6801012f2f01010101017a0101
0171ad6501010101010101012f0101010101000001010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
1010101010101010101010101010101010101020101398701c768e0c702012e2f6301010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101016301017b01646471016401012f01022f010101010201010
101010101010101010101010101012e64012f02012f01017a0101017a010101012f2f2f020202016
3020171015c71012f642f2f022f01010101010101000001010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
010101010101010101010101010101010101010164015db9a6026d8d01b0c00202010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010

787

10101010101010101010101010101010101010101010101010101010101010101010101010101
0101010101010101010101010101012e012f012e017101010101012f630101016401012f0101010
101010101010101012f2f0101012f2f01010101710101010164012f630102012f2f01010101010102
010101012e0101010101010101010201012f01012f000001010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
101010101010101010101010101010101010101016401015ae101016d7c026b3002012e0101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
101010101010101010101010101010101010163010101012f0101712f012f0163012e020201022f
010101010101010101010101010101010101016301010102640201020101017101012f01012f01
010101010163012f012f2f01012f01010102012f2f2f2f2f0000010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101710101632ec79501630101016401010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010163016364010102022f010101020101016
40101010101010101010101010101010101010101012f01010101012f2f0101020171012f010164
02012f0201012f2f01020101012f6402010101012f2f01012f0000010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
0101010101010101010101010101010101010101010101016402017101019f86630102012f0101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
010101010101010101010101010101010101010102012f0201020101642f010201010201010163
0164016401010101010101012f01012f2f2f2f010171016401010164020102010201640101020101
0101012f01012e01010201010101010101010101012f2f01012f000001010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101012f0201012f2fb67c2f01012f0101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010000010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
010101010101010101010101010101010101010101010101010101010101012f0101012fcb7c2f0
1012f0101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010100000101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
12fda7c2f01012f0101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010100
00010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
0101010101017f7c2f01012f0101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010

10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010000010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
101010101022f01012f016d7c2f01012f01010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010100000101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101022f012f2f01c77c2f01012f010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101000001010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101012f0101020101cf7c2f01012f0101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010000010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101012f010101020102d07c2f01012f0101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010000010101010101010101010101010101010
10101010101010101010101010101010101010101010101010
Now suppose that while executing the ATC-deferred region a call to AIE2.fire occurs. This is held
pending. If AIE3.fire now occurs, then AIE2 is discarded as AIE3 is at a higher level in the
nesting. If AIE1.fire occurs, then AIE1 is discarded (because it is at a lower level). Once the ATCdeferred region is exited, the currently pending AIE is delivered. Now this AIE will be caught by the
interruptAction of the innermost nested AIE (AIE1) first. However, if this is not the currently
pending AIE, the currently pending AIE remains pending. For example, the code for each call to a
doInterruptible
method
might
be
structured
as
follows:
public
class
NestedATC
{
AsynchronouslyInterruptedException
AIE1
=
new
AsynchronouslyInterruptedException();
//
Similarly
for
AIE2
and
AIE
3.
public
void
method1()
{
//
ATC-deferred
region.
}
public
void
method2()
throws AsynchronouslyInterruptedException {
AIE1.doInterruptible
(new
Interruptible()
{
public
void
run
(
AsynchronouslyInterruptedException
aie)
throws AsynchronouslyInterruptedException {
//
Interruptible
code.

789

method1();
}
public
void
interruptAction
(
AsynchronouslyInterruptedException aie) {
//
Recovery
here.
}
}
);
}
//
Similarly
for
method3,
whose
run
method
calls
method2,
// and for method4, whose run method calls method3.
Now suppose that a real-time thread rtThread has created an instance of NestedATC and has
called method4, which has called method3, which has called method2, which has called method1,
which is an ATC-deferred region. Assume that the thread is interrupted by a call to fire on one of the
AIE objects. This is held pending. Any further fire calls are either discarded or replace the currently
pending one (depending on the nesting). Once method1 has returned, the currently pending AIE is
delivered. Method2's run method is immediately aborted and a call is made to its
interruptAction. Recovery occurs. If AIE1 is the current AIE, the system clears the pending AIE.
If it is not, the AIE is left pending. The result of this is that method3's run method is immediately
aborted on its return from the doInterruptible method call, and its interruptAction is called
immediately, and so on.
Important If as a result of handling an AIE, the current AIE remains pending and control returns
note
from the interruptAction (or catch clause) into an ATC-deferred region, execution
will continue normally until control again enters an AI-method. Only at this point is the
current AIE redelivered.

13.7 The Timed Class


A common use of ATC is to interrupt a real-time thread after a certain amount of time. Although this
can be achieved by creating either
a second thread that sleeps for the required period and then interrupts the first thread or
an asynchronous event handler for a one-shot timer that interrupts the real-time thread.
The paradigm is so common that the RTSJ provides a special class for it. This is the Timed class
given
below.
package
javax.realtime;
public
class
Timed
extends
AsynchronouslyInterruptedException
{
//
constructors
public
Timed
(HighResolutionTime
time);
//
Throws
IllegalArgumentException.
//
methods
public
boolean
doInterruptible
(Interruptible
logic);
public
void
resetTime
(HighResolutionTime
time);
}
The semantics of the Timed class are defined in terms of a timer whose handler fires the associated
AIE. Consequently, when an instance of the Timed class is created, a timer is created and associated
with the time value passed as a parameter. A null parameter results in the
IllegalArgumentException being thrown.
The timer is started when the doInterruptible is called; if the time has passed, the AIE is fired
immediately doInterruptible is called. The timer can be reset for the next call to
doInterruptible by use of the resetTime method. Here, a null time parameter means that the
time is not reset.
Imprecise computation example
As an example, consider using the Timed class to implement an imprecise algorithm. The algorithm
consists of a compulsory part that computes an adequate, but imprecise, result. The optional part then
iteratively refines the result. The optional part can be executed as part of a doInterruptible
attached to a Timed object. The run method updates the result from within a synchronized statement
so that it is not interrupted (in this example, as the result is an integer, it could be made volatile;
however, for the general case, a synchronized statement is required).

First, the ImpreciseResult is defined. Here, there is also a boolean indicating whether the result is
imprecise.
public
class
ImpreciseResult
{
public
int
value;
//
the
result
public
boolean
preciseResult;
//
Indicates
if
value
is
imprecise.
}
The
class
that
implements
the
imprecise
computation
can
now
be
given.
import
javax.realtime.*;
public
class
ImpreciseComputation
{
public
ImpreciseComputation
(HighResolutionTime
T)
{
CompletionTime
=
T;
//
Can
be
absolute
or
relative.
iResult
=
new
ImpreciseResult();
}
private
int
compulsoryPart()
{
//
Function
which
computes
the
compulsory
part.
}
public
ImpreciseResult
service()
{
//
public
service
iResult.preciseResult
=
false;
iResult.value
=
compulsoryPart();
//
Compute
the
compulsory
part.
Interruptible
I
=
new
Interruptible()
{
public
void
run
(
AsynchronouslyInterruptedException exception)
throws AsynchronouslyInterruptedException {
// This is the optional function which improves
// on the compulsory part's value. It is called
// when I is passed to the doInterruptible
//
method.
boolean
canBeImproved
=
true;
while
(canBeImproved)
{
//
Improve
result.
synchronized
(iResult)
{
// Write result, in an ATC-deferred region.
}
}
iResult.preciseResult
=
true;
}
public
void
interruptAction
(
AsynchronouslyInterruptedException exception)
{
result.preciseResult
=
false;
}
};
Timed
t
=
new
Timed
(CompletionTime);
boolean
res
=
t.doInterruptible
(I));
//
The
above
executes
the
optional
part
and
//
throws
away
the
result
of
doInterruptible.
return
iResult;
//
return
the
impreciseResult
}
private
HighResolutionTime
CompletionTime;
private
ImpreciseResult
iResult;
}
Finally,

real-time

thread
new

can
use
the
above
classes:
RealtimeThread
(...)
{
public
void
run()
{
ImpreciseComputation ic = new ImpreciseComputation (
new
RelativeTime
(5000,0));
ImpreciseResult
pr
=
ic.service();
}

};

791

Fine detail
note

The semantics of the Timed class are defined in terms of a timer. A typical
implementation of Timed will, probably, create a Timer event, and the associated
handler will fire the AIE. The goal of the Timed class is to interrupt a schedulable
object after a certain time has expired. The RTSJ requires the delivery of the AIE to
occur within a bounded execution time of the schedulable object being interrupted.
One way of achieving this is for the implementation to run the Timer event handler at
a priority just greater than the schedulable object.

13.8 Thread Deadline Miss Handlers Revisited


Chapter 12 discussed the mechanisms that the RTSJ provides for handling deadline misses and cost
overruns of schedulable objects. The application can handle these misses and overruns by providing
associated event handler objects. In some instances, these handlers will want to let the errant thread
continue its execution. However, in other instances they will wish to terminate the current release of
the thread. To do the latter in a controlled manner requires the use of the ATC facility. This section
provides an example of how this can be achieved for a deadline miss. First, a new abstract periodic
realtime thread class is created (called FlexibleRealtimeThread), which is defined to implement
the interruptible interface (but does not provide the associated run and interruptAction
methods). A class for handling the deadline miss is also needed (DeadlineMissHandler). Finally, a
test class extends FlexibleRealtimeThread. The relationship between the classes is shown in
Figure 13.5.
010009000003de2802000000f9f1000000001610000026060f002220574d4643010000000000010
062f2000000001400000000200000f0490200f0690200010000006c0000000000000000000000d2
010000d001000000000000000000006a4000000640000020454d4600000100f06902000c000000
010000000000000000000000000000000005000020030000c40100001a01000000000000000000
0000000000e3e306006e4e0400460000002c00000020000000454d462b014001001c0000001000
00000210c0db010000006000000060000000460000006484000058840000454d462b224004000c
000000000000001e4009000c00000000000000244001000c000000000000003040020010000000
040000000000803f214007000c0000000000000008400005b0830000a48300000210c0db010000
000000000000000000000000000000000001000000ffd8ffe000104a46494600010201004800480
000ffed0fec50686f746f73686f7020332e30003842494d03ed000000000010004800000001000100
480000000100013842494d040d000000000004000000783842494d03f300000000000800000000
000000003842494d040a00000000000100003842494d271000000000000a00010000000000000
0013842494d03f5000000000048002f66660001006c66660006000000000001002f6666000100a1
999a0006000000000001003200000001005a00000006000000000001003500000001002d00000
0060000000000013842494d03f80000000000700000ffffffffffffffffffffffffffffffffffffffffffff03e800000000ff
ffffffffffffffffffffffffffffffffffffffffff03e800000000ffffffffffffffffffffffffffffffffffffffffffff03e800000000ffffffffffffffffffffff
ffffffffffffffffffffff03e800003842494d04080000000000100000000100000240000002400000000038
42494d0414000000000004000000023842494d040c000000000e5b000000010000007000000070
000001500000930000000e3f00180001ffd8ffe000104a46494600010201004800480000ffee000e4
1646f626500648000000001ffdb0084000c08080809080c09090c110b0a0b11150f0c0c0f1518131
315131318110c0c0c0c0c0c110c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c
010d0b0b0d0e0d100e0e10140e0e0e14140e0e0e0e14110c0c0c0c0c11110c0c0c0c0c0c110c0c0
c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0cffc000110800700070030122000211
01031101ffdd00040007ffc4013f0000010501010101010100000000000000030001020405060708
090a0b0100010501010101010100000000000000010002030405060708090a0b1000010401030
204020507060805030c33010002110304211231054151611322718132061491a1b14223241552c
16233347282d14307259253f0e1f163733516a2b283264493546445c2a3743617d255e265f2b384
c3d375e3f3462794a485b495c4d4e4f4a5b5c5d5e5f55666768696a6b6c6d6e6f637475767778797
a7b7c7d7e7f7110002020102040403040506070706053501000211032131120441516171221305
32819114a1b14223c152d1f0332462e1728292435315637334f1250616a2b283072635c2d244935
4a317644555367465e2f2b384c3d375e3f34694a485b495c4d4e4f4a5b5c5d5e5f55666768696a6b
6c6d6e6f62737475767778797a7b7c7ffda000c03010002110311003f00f554cefa27e1f0fc53a4929
1d4c60aeb3b402d6802358d3f35ca906f570e0df4710b1b25aedcf064176df67a6edbb99e97bf7fefa
bc2aa9bb618d1b043600d0783530a2901a031b0d32d10343e2125346a1d65d6036e3e2369739a5
cc0e717c1fe71dfcdfa7eab3fe9fefad035d6665a0eefa5a0d7e2a268a4820d6d871dced06a7f78a73
4d4774b1a77fd390358fde494ad80580868036c4fc08daddaa6aa65600baca722979a6fc790c7349
00b08f7536b07b1f5bbdbf4d9fa3ff0687664751b49188da9af640b2bbb76e0e2efa4367b5d57a7efa
dff009e929bea8da71db9569c8a8bf7066c3e93ac10377e7b58f426ff00ce4db0efb16e866b36f3b7f
4fdbfd2ff0035ff0006b459bf637d48df0376de27f3b6ca4a70a96f5015d2cb4e3bded045ae187700f3
b5bb1c1b1fa3fd26efec27adf90f6b6fa9d8efaec0d2d68c4b4d65b2f77a95bda37fe92af47f3dec5b3
92db5f43d94eddee10371206bcfb9b2efa2a1842d1513606b43ddbd8c612e01ae01d1b8b2aff09bd

df4125346a7b7ecb6b726b0fb9dbb67a58d6b5a011b58df7d6e72d51c2749253fffd0f554c5c07240
4eb35df6a1738e3d355d59b2c177a876b818afd2733daededfa5ea7fd6d253a1bdbe23ef4b7b3f787
deb358feac44bf0f141dbf4458637fbb4dfe9fb98ef67f83f67fc22707aa9789c5c50c0d3ba2c265d3a7
bbd26ed67a7fc8fe73fedc494e8ef67ef0fbd2decfde1f7acb6bbad0b5c5d8d866a9686343dc08107d
5739fe9bbf3b67a6cd8ace08ca2c70cfae863c1f69a8c8225dd9e3d9ecd8929b81cd3c107e0857d0
5e4595bb65ccfa2eec47fa3b07e756e4836b190dd8003b1d311e2c464948a9bc5a0823658cd1f59e
413ff0054c77e6bd12478a1b98d37b5e6b698639bea189125bfa3feabd56cb6df57a5f63c5aae630c
961218412e6366b77d166d69b2d7ff00c5a4a6ec850c723d0af5fcc6fe4596eb7acc380e9b47bed69
78f51a66a96efdded1fa7fa7b112bbfaa97b9cfe9b53750c69f55b3e9fb07ee7bbfc23f6ff21253a7212
91e2b2c5bd5d8c6b4f4fa6c73236bd963580173bddb6a7076df4d9eefe77f48afdb5b76432b6bc97b
5c5ba0e1cdf7ff00599f4d253fffd1f55437514bcee7d6d713c9201288924a45f65c6ff42cff00347f72a
9998b4efaf6d0c25a4baa8630cd804b7e97d1fd136e67fd756820dffce51ff19ff7cb1252bec98bfe86
bff347f725f64c5ff435ff009a3fb9192494c194d35926b63584f25a009fb94d2492534f3ebc8b1f58c6
d82d124bad6973367b77b34ff08f77a7ff004d54bc752a19eade70ebab46b9c1af905dec639ba3bf3
dd5abd9792cc5fd33cb9cd6b75a98ddce32ead9be07fa3dc83fb67a7b9a5c7d52c6bfd327d0b4fbb6
b2dfa3e9eefa36b3dfff00a4de929ccfda3780d6b72fa659b9e18d78264ec1ea5e36b37b3d4f49a9d9
9f732a687e6f4c758efa05dec739c00df57a4eb1bb6c67fad55abe33ba53acf44d2ef5006bb69a1e0
7b9a2c1fa535fa3f43f76cff82fe715e38f8e4c9a99324ced1c93b9dfe724a71f1eecfb9fb31f23a7646f
697b768712012e21b15bbdf5b58ea5bbd58f473c6d3975e39ab757231dae0f0eded3bc39ff00e0d8f
dbff5bf7ffc1ad16d353082c635a40201000d0ea4286498aa7d4f4bdecf7c4f2f6fb3feb9fcda4a7fffd2f
46c2c66dd8745b659717d95b1cf3eabc492d05c61af0d50caf431adaeb7372ec164fbea75cf0d80e7
7bfd373bf73fcff4ff00d22a54e4e6d38b5318cccb5adaea6b1f53682c24d7bbf3abf51b5b3d8dded6d
bfce7fc77a647e67500e76ca739ed6380738b71c133b21d537d2fd237df67ee7f35fdb494bfdb6835
0b0637512e21ce1501707435de9fbb7bd8d6b9cdfd332bddeafa69ecc9c40e1ba9ea0e0d20ee68c8
2039c1c06ddaedcffeb37f46cfcf4cfcccf6c86d59ee70d47b71c03eed91bbd3fa5b7f48a42fea301fb3
336eddd118fbe49fa1b3d2d9dbfd2a4a4b89f67cb7398199b516ceb6baf6020186905cf6fd3fa4acfe
cfa7f7efff00b7edff00d28b3db97d488934e6b408dc08c79d486b768f4bddf4bf4bfb8cfdf49b99d45c
e8f433c092248c61db737f33f3be8a4a743f67d1fbf7ff00dbf6ff00e944fd3f77d9882e73f6d96b01712
e30db6c6325cef73b6b5aa18f564db536c7df7d4e74cd6f14c8831ac52a5d39a5b8c5a5c5c45b74b
8c49fd2dba9da1ad494cf23ed225d8ccadd6069da6c240996fb4b981ee6b1cdddf98ab1775e91b6b
c58f50c82fb27d2dbece2bfe79d77d3fccf4ff7d5e7575b9e1ee682e6821aeee03be90fed6d5018d40
0d68600187734781f1494d571eb820b1b8ce2790e73da1a3db10e0c7eff00f09f9b5a96eeae1fa329
358dc249707932df49db5a3d3fa3ea7abef45c8aab6d36edae4d901d03b931bddfd4ddbd470eb61a
46e05ee60f4bd47032f60fa0edcffe737d7b77bff7d253690b203cd7ec6b5cedccd1fc46e6ee3fd66b7
e87f2d38a2901a030457ab34e3e091c7a0820d6d20b83c8201f734ee6bffacd77b9253fffd3ee3188
07161d9b3b2b259533f40e22a61d6cf4fe8ffd73f9c6284ef6fa4d7f55fd234cd8585ae6ed77d10e754
d6b5d6ffe7b5b15e21aab6555dd60656d0d68f6980d1b5bcb13fd9ecffb9167fd0ffd26929c5dac32e
addd518f2d24d4d0400e83743a6b733d4f77a5fe8ff0047ff006e3b2aaab7b290fea6776e69b1f21bf
994fe91d637fedafe5fa96ad9fb3d9ff722dffa1ffa4d45b4da5cf1f68b7da401f43c01ff0044929adfb17
98cecb05c089f50680973fbb3f377a90e8eddee73f2f26c6988adf602d041fa4df67d2567ecf67fdc8b
7fe87fe934becf67fdc8b7fe87fe93494828e97e8d95d872f26df4c001b6bc39a4811bdded6fbdf3ee4
6c1fe65dff1d77fe7db13fd9acffb936ffd0ffd24a7452da6bf4da4bb5738b9dc92e71b1e7fce724a489
20dfbc9ad8c79af7ba0b8004c06b9df9c1dfba81976fd8eb16df95636b2e0cdc18c20177e73e2bf6b3
f94929b6ffa27e054317fa355fd46fe40b31bd63a758eb18dea24ecd276b21d2377e89c6bdb6fd26fd
05670aca726b231335d6369863800c969dad7b43ff47ed77a6f63d2537d255ce3de7fed5583fb35ff
00e9250b28c8631cf1976fb41305b54683fe29253fffd4f55490fd7aa09924099201234fa5ac29ee6c
86c892240ef03fde929743afe9d9fd61ff0052d4455dd65b55af028b2c0e208730b2380dfcfb18efcd4
949e47dfc2448024f0a86554ccb2c37e1de4d73b4b5ec611bbe96b5e433c10ecc1c7b5af65b8790f
65ad631cd75a088ac8757b43b27daedcd6bb7b7deff00cf494e98735dc106398fbd3acea3169c735
7a38775629dfe9b43dbb47a9abf733d7db67f23d4fe6bfc1ab5f68b7fee35bf7d7ffa592531cd71656d
b06e06b25ded00ba031fa35aef6aa1fb4e8b1d1eb5e5adda4b8e39805c3d8ddaeafd473bfe2d8ae3
326eb725b5bf16da5ac7122d716161f6b86cf658eb37ff00d6fd3ff84566d60b2b7d7b8b77b4b7734c
38488dcd77e6b92538df6ec7b1cf631f7bf6169818ed876f901d597d7eff00e6fddf9ea5fb46b682daf
2325c403b5adc6dbb881bf633d4a6b6ee7b7e87e62b1fb32c610dfda59226031a5d59fa3f47e9d4e
b2c77efef7fe93fc2276f49b1a08afa8e5069e7dcc77ba5ce7b9aeb2a7bbe93be87f36cd9ec624a6bf
ed3aa606565389e2315daebb3fee3fefa332c764d169af2ae3b59ba1f535921c0ed7016d2cddc235
384faed69766df696ea6b7b99074dbc575d7f9dee56327fa35bfd477e4494ff00ffd5f49f45fe83c87dc
d69de7d21e94c125ded739bb7bfb77d8aa754fd90cca63f2f1edbaef4dc43ea658f0d67ee9f4bfd23a
b5783dbf647bbd3af6c38ecdc3610099defdbb3fae9b2ba863e23d8cb4585d6fd1d95bde34fa5b9d5
b5cc67f6d2521a7a8e15350a6aaae6d743000df4dfed680d6d624fd2ff005f51130faa63663f654db5
aeda5c4595bd806d218f6ef7b7d3ddb9df98f51afabe2d96ba9db735ed70680ea9e010e2d6b5ed76
ddbb3f48af24a5249249294924924a4393b21bbe764bb744cc6c7cfd1f77f9ab277fd5fd8e23d62d7
35a1c41c89dbb6dd9b7f3dbec177f37ff00a4d6c5ccb1e1a6b706b9a665cd2e1c16f01d5fef286cccff

793

004b5ffdb6effd2c929ca67fcdea8b6fac5bbf46b1db6f2e3a963435ae1eefe7b6ff005145acfab800b7
6dacf55e1d04e40f7bfdbee64edafddfce7f83658b5cd79863f4b569c7e8ddff00a592d99bfe96affb6d
dffa592534701dd25d9efb31aab2bc97ee2e73f7807792eb3d963bf7aafdc5a193fd1adfea3bf228ec
ccff004b5ffdb6effd2c99f565595b98eb6b8782d245667511fe95253fffd9003842494d04060000000
000070005000000010100ffee000e41646f626500644000000001ffdb00840004030303030304030
3040604030406070504040507080606070606080a0809090909080a0a0c0c0c0c0c0a0c0c0c0c0
c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c010405050807080f0a0a0f140e0e0e14140e0e0e0e14110
c0c0c0c0c11110c0c0c0c0c0c110c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c
0cffc0001108015d015e03011100021101031101ffdd0004002cffc401a2000000070101010101000
0000000000000040503020601000708090a0b0100020203010101010100000000000000010002
030405060708090a0b10000201030302040206070304020602730102031104000521123141510
61361227181143291a10715b14223c152d1e1331662f0247282f12543345392a2b26373c2354427
93a3b33617546474c3d2e2082683090a181984944546a4b456d355281af2e3f3c4d4e4f46575859
5a5b5c5d5e5f566768696a6b6c6d6e6f637475767778797a7b7c7d7e7f738485868788898a8b8c8
d8e8f82939495969798999a9b9c9d9e9f92a3a4a5a6a7a8a9aaabacadaeafa11000202010203050
5040506040803036d0100021103042112314105511361220671819132a1b1f014c1d1e12342155
26272f1332434438216925325a263b2c20773d235e2448317549308090a18192636451a2764745
537f2a3b3c32829d3e3f38494a4b4c4d4e4f465758595a5b5c5d5e5f5465666768696a6b6c6d6e6f
6475767778797a7b7c7d7e7f738485868788898a8b8c8d8e8f839495969798999a9b9c9d9e9f92a
3a4a5a6a7a8a9aaabacadaeafaffda000c03010002110311003f00f7f62aec55d8abb15762aec5521
d3343923d46fb53d42499ee1eede4b31f5a9cc4b6fc15517d20fe98a51b6e3ef8aa65a869769a9aa
2ddfab48ebc7d19e6b73f10a1a985d09fa7155ba7e9165a6348d69eb5640037ad713dc0a2f4a099d
e9d7b62ab2ef43d3ef6e0dcdc09fd56001e1737112fc3b0f8639157f0c55176b6b0d9c0b6f072f492b
c79bbcadb9aeece598fd27154b1fcafa3b9ab0b9ea4ed7b763afca5c5532b9b486eed9ad27e5e8b8
01b83bc6d406bb3a1561d3b1c55056be5ed32cee12ea01389a324af3bab99177046eaf2329ebdc6
2aafa8e9565aa08d6f04a444494f4a79a0fb5d6a6174afd38aadd3f47b1d2cc86cc4a0cb40feacf34ff
66b4a7aaef4ebdb1551bdf2ee97a85c35d5c89ccce003e9dd5cc2bf08a0f86391547dd8aa36cacadf
4fb75b5b6e621424afa923ccdf11a9f8a46663f7e2a961f2968a58b15baab124d2faf00a9dfa09b154
d2e6ce0bbb56b39837a0e02b70778de83c1d0861d3b1c552bf2fe9173a44dabc6f2bbd85c5dacda7
24934b70d1c3f5685196b29622b22bb71ad37c553bc55d8abb15762aec55d8abb15762ac17caba1
68baa37982e753d3adeeee7f4d5fa7ab7112c8fc15c0515704d00e9db154fff00c1be52ff00ab1d87f
d2345ff0034e2a94db43f95d3eb53f97ad134593cc16c78dc69918b6375190824a3443e2078b06e9
f64f2e98aa70fe59f2b430373d22c52de305dab6f105006e49f8698aa5f1e95f9797b169b7b158e953
c3ab851a4dc2c3030b95789a7510b53e2063567f87f6416c551a3c99e51560c341d3f903507eab0d
6be3f6715486ff55fc9fd1f526d1b519f40b2d5a36547b2945a473ab3842014201dfd44ff00834fe618
aa7b67a1f93b53b38350b2d334ebab1bc8d27b7b88ede078e58a401d1d485a1041041c555bfc2be
57f847e84b0a27d91f55876f97c3b62aa167a57936fcdd4563a7e9d39b299ad2f1238216f4a755576
8dc05d980656a7b8c55103cafe59028345b000f51f5587fe69c5521b0b1b2b0fccbbb4b1b68ada36d
0ad8b2c31ac6a48bc9fa8503c7156698abb15762aff00ffd0f7f62aec55d8abb15762aec5529d0efee
6f9f555b860c2d6fe5b686800a46888403e3bb1c5536c55d8abcf7f35766f26c81ca3a7992cc961ce
9c3d19c9e6108aa542960df0f4f6c55e6f3fe64fe645ada699aa4f762ef85acb7b7b6d69a7148d9ae7
4ab4b8489c032c9fe8ef25c49f0fc7208ca30aae2a8c4f3c7e675d6a4d676daf69df51b6b6d0923d42
3d2a69a1bb935ad56eace49959e487fb98228e52157d3ab16feed971541dc7e677e6109b4fd1a5d
62df4cbb9ae21d3351d4ae74c2c21b8379aac0ccb19745e4d1dadbbfa756a06e5f6645c5528f35f98
7cfbab69af6faac4d2ea57f6ba9b9856ce449b4c61a1595dc690142ae15e6792bea7276a7a6194ab
62a89bdf3479e348f384faa5d5f89e61a43e969e644b3992c3eae75ae11de34082651c55b8161c93
fdddfdd62afa1fcbf75777ba169b77a8146bf9ed6192e9a28e48636959017289300eaa4d4aab8e407
dac5531c55d8abb15762a92e8ba85d5e6a7e60b6b870d0e9f7d1dbda80002b1b595bcc4123afc52
31a9c553ac55d8abb15762aec55d8abb15762ac5bc92291ebfff006dbbf3ff000e3156538abc275af2
5f9f9ff3075df32e9b6867d2db545bcd22d2536e8a9a87e828ec2db530fcb9b470c8258a6b77fb48e
2644731f175517a3d87e695ad97969eee0d627bc5bd8aeb5dfae5d593fa71936f1dcc2a90ce15a26
fdec91b3190fdae31c7c938aa94e8de4efcc7d22de08ededb52b691adac2294417d188d120f2e5cd
9bc617d7e2a52fbd271c452bc64e5f6b156eeb40fce8b136cfa2cba9ca9bc7aa25cdf4372ef6c6d74
d9241009e70a2669d6f96362529cb8f2488a515665a7f95f5a875cf29cf796b79a85a58e81aad96a7
7da935a4974d7775358490fd6044dc5e465b56e4c819410b57fdac5586691e49fcd3b3d260d26de
5d4ec96c2c19b4d1fa4d444b7eba3daac71c9c6562625bd8a4a21568a8c7e1f4db1544ea1a4fe722
586923cb69abadeac93dc5c4babdfd833c62e21bb4f41d2093d3e11caf0ba1ff00486e007c4be9f02
abd0bf2e74bd4f4d8fcc536a5a7dc69e352d57ebd6b15ecf1dd4ed1358da44c59e3925dfd489c50b7
6fe5a62acdb15629181ff2b2ee0f73a1403eebc9b156578abb15762aff00ffd1f7f62aec55d8abb1576
2aec5507a7c9a7486eff47f0e4b70eb79c071ff0049017972d854d29be2a8cc55d8abb15762aec550
1a968da6eaef6326a30099f4db94beb225997d3b98d5915c7122a42bb0a1db7c551f8abb15762ae
c55d8abb15762a81b1974d92eb514b1082ea29d575228bc58dc186365e468391f48c7bf85062a8e
c55d8abb15762aec55d8abb15762ac32cb4ff3a68973aac7a6d9e9979617b7f3dfc32dcdedc5bcc1
6e38b15644b4940e26bd1f15467d6ff30ffead3a37fdc4eebfec831577d6bf30cffd2a7461ff006f2ba3f
f006218ab66e7f30a9b699a2d6bd0ea1754a7fd2162aefacfe61d4ffb8dd1694f87fdc85d56beff00e8

58ab1cbff3c79e6c7cdb61e533a0e9b23df44d2bea6b7f71f55b79183b410cb5b40dce610cc538f4f4
fe2fb698ab2033fe63d36b0d12be06f6effec93156bd6fccaaff00bc3a1d3fe632eebff50b8ab9a6fcc9d
f8596875da95bbbbfa7fe3db155a66fccded65a153fe62ef3fec9b156bd6fcceff963d07fe92ef3fec9b1
55da1e93e653e65b9f30f9896c2167b18ac20874f9269abc26794b399638e9f68000038ab2bc55d8
abb157ffd2f7f62aec55d8abb15762aec5525b5f2f1b2d4ee350b7d4eed60ba9daea6d3bf706dcc8e
810ee61f529f0834f53ae2a8ad574db9d45635b7d52eb4ce04966b31012f5a7daf5e297a76a53155
ba5e9773a7190dc6ad79a97a80002f3eaf44a5775f4218bad7bd715436a3a05e5fde35dc3e60d4ac
2320016b6a6d042282951eadb48dbf53f162a98e9d672d85a25b4d793dfba924dcdd7a7eab54d68
7d248d76e828b8aa432f94350924671e6dd6e30c49088d621457b0ad9934c553dbeb292f2c24b28
ef27b392450a2f2dca09d0823e252e8eb534eeb8aa51a7795ef2c2f62bb93ccbab5f2464936b74f68
617a8228c23b646dab5d9862a8ed6b479f5758560d5afb4af48b166b06854c9c80d9fd68a5e94da9
4c55668ba25c690d319f59bfd57d50a00bf6818271aee9e8c3175aef5ae2a87d53cb575a8debddc5
e62d574f470a05ad9bdb2c2bc452a0496f2354f53f162a99e9763269b669692dedc6a0e8589babc3
1b4cdc8d684c491aedd07c38aa44fe4ebe77671e6dd71431242ac96741535a0ada1d862a9f5f593
de69f258a5e4f68f22041796e516e148a7c4a5d196a69fcb8abc83cc7aa79d3f29bcd961716487ccb
e46f31977d6ae3507e1a8daea36f1a2aba4b0c6b1189ede3af074146858fa83962af4dd07cdfa2f98
5bd0b495a0d484627934db9023b9589a94902825648cf21496269226afc2e7154f715762aec55d8
abb15762aec55d8abb15762aec55a665452ee42a282598ec001d49c55e716fa4def987ca7acf9962
85135cd5ee86b5a2f59289a7b29d33a11fde470a3ba8ff007f38c559d68babd96bda458eb7a73f3b1
d4208ee6062083c2550c010770456841e87154762aec55d8abb15762aec55d8abb157ffd3f7f62ae
c55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb154a7cc9a2
2798347b8d34c9e85c37196caec005a0ba858490cab5ee8ea1bdfa62ac5c5a5c7e5f18f54f46397c
a4b116d4aceda3663a4c8e034d35a0ddbea84ad64800ac5fde47f07240ab3b86686e218ee2de459
609544914b190c8e8c2a1948d8823a1c55e13ab79f3ccfa76a5e67b6d36e23d3bea77dabc9194d3
9a63706d134bf439123e22debce8597ed88fe1a7a6d8aae3e7bf35dedf5e6969aa2dd8b77922fa8b
58706bbb34d4750b59e56915470e36d0c72ab280accbb725971548342fcc1f3de9fe4ab3b2b495ec
aef48d3743812d67d32eae6692daec69d08bb1294085817ba59232eceacbba27a6cccaa6917e66f
9f619a1b4bd9e5169768e1f584d2669bea730bdd4acedf9c5044e592536f6c5cf1d8bd79471ca855
56cf9ffcf5757f25bcf7f7315bc7ada24896da6babc3636bae2d99dc46e5d2489873fdae3f1a90b56c5
5ea3f969aeeb9e61f2d2dff00989546a6b3344f2471b4504aaaa844912baa3856249e1222c913728
5f9347cd956618abb15762aec558e79eff4a3f95afedb47b5b8bbbdbb54b531d9fa3ebac370eb1cd2
2faf2469548d99855bae2a9745e757b4920d261f27eb513ac1ce0b658ec401042563da979401792
8a62a88f2236a0b0ead6d75a65de9b6097f2cfa5a5ffa224682ec09dd42c324945499e455a9fb3c71
56598abb15762aec55d8abb15762aec55fffd4f7f62aec55d8abb15762aec55d8abb15762aec55d8
abb15762aec55d8abb15762aec55d81610000026060f002220574d464301000000000001000000
000000001400000000200000f0290200f0690200abb15762aec5584dc473fe5f4d25fda23cfe479df
9de5844bc9b4a673f1cf02a8a9b624f29a3ff0074fc5247fbbe48156670cb15c4493c122cb04aa1e29
50864646150ca46c411d0e2a858f49d3e2d5a6d71222354b8823b49a7e6f468216774529cb8fc2d
239078d7e238aa3715762aec55d8abb15762aec55d8abb1549263ff3b8598f1d36e8fdd3db62a9de
2aec55d8abb15762aec55d8abb15762aff00ffd5f7f62aec55d8abb15762aec55d8abb15762aec55d
8abb15762aec55d8abb15762aec55d8abb15762aec55d8ab099a29bf2fa67bcb28a49fc8f3c8f2ea1
689576d259eacd3c0bb936c4ff00790a8fdc7f7918f4f9aaaacce19a2b88a39e0916582550f14a8432
3230a865236208e87155f8abb15762aec55d8abb15762aec55d8aa4730ff009dc6ccf61a65dfe371
6d8aa798abb15762aec55d8abb15762aec55d8abffd6f7f62aec55d8abb15762aec55d8abb15762a
ec55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb15612d692fe5ec8d75a6445fc
8b23b497da744a4b696ce7934f6cabd6dc9f8a5840fddd4cb1fc3cd3156656f7105dc115d5aca93db
4e8b243346c1d1d1c555958541041a8231554c55d8abb15762aec55d8abb15762a914dff00299d9
0affd2b2ef6ff00a38b6c553dc55d8abb15762aec55d8abb15762aec55fffd7f7f62aec55d8abb15762
aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb15762ac3
2e20b8f225c49a869f1bcde4a999e5d434e850c9269f2c8dc9ae2dd141261624b4d10fb07f7b10a7
35c5597c13c175045736d2a4d6d322c90cd1b0747471556561504106a08c555315762aec55d8ab
b15762aec55229a9fe32b2db73a65dd0fb0b8b6c553dc55d8abb15762aec55d8abb15762aec55fff
d0f7f62aec55d8ab1ff3b6a17ba5f962faf74e9cdb5e27a2914e151ca7ab3246480e0ad68c6950715
5ff00e1fd47fea64d4bfe06c7fec971577f87f50efe64d48fd165ff0064b8ab8797efc7fd347a91fa2cbfe
c971577f87efe807f88f53ea0d40b2fbbfde5c55b3e5fbe35ff009d8b5315f0fa9ffd92e2ad8f2fde0ffa6
83523f4da7fd9362ad0f2fde0ff00a687533f3369ff0064d8ab8797af36ff009d87533414eb69ff0064d
8aadff0ede56bfe22d53e55b4a7fd4362aa8740bb3ff4bed487c8daff00d93e2ab4797aec57fe760d4
cd7c5ad7fec9f1577f87aeffea60d4ffe0ad7fec9f1577f87aeff00ea60d4ff00e0ad7fec9f1577f87aeffe
a60d4ffe0ad7fec9f1577f87aeff00ea60d4ff00e0ad7fec9f1577f87aeffea60d4ffe0ad7fec9f1543e8c6
fad7cc7aa6953ea1717d6b0da595cc3f5af48b23cf25ca3d0c51c7b111af5ae2ac9315762aec55d8a
bb1579c6a7e5ff0033e99e65d3f49f276b12e8de59d492f2eaf214b38ef23b5b98bd32a2169aab147
299198c5c69cd7947c6ae31567b1dbdda69e96b25db497c2111b5f1440cd2f1a7abc00e20d7e2e3
4e38ab151e56f3c822be7cb9236aff00b8dd3fb75a7eebbe2aca353b5bdbcb096d6c2fdf4dbc70a23

795

be8a38a57421812424aac86a05375c5524b1f2ef99edaf21b8bbf385e5edb46e1a4b492d34f8d245
1d559a3b75600f8a907154db59b0d4750b55834cd565d227570ed7304504ecca010538dc248b43
5ad695db154168fa2ebb6175ebea5e65bad5a0e257eab3db59429c8d28dca08636a8ff5a98aabeb
5a56ada8bc2da6ebb73a3ac6184896d0dacc24269424dcc32914ff002698aa1747f2dded86a6756d
535cbad62e9607b5805c456b0a471cae8ef416d0c5524c6bf6ab4a62abb55d0f5ebebc6b8b0f33dd
e976c5540b482dec65404756e53c123eff00eb62a98691637fa7da98351d4e6d5a72e585d5c4704
2e148145e36f1c6b414fe5ae2a955df97bcc53ddcd3c1e6ebeb5b791cb476b1dae9cc91a93b28692
d99881e2cc4e2a9dd8dbdc5ad9c56f757725edc20a3ddcab1a48e6a772b12a20ff62a315493fc3be
60e257fc5da8723d1beada6d47fd3a62a9e4d6f34964d6a97524370d1f017882332ab529cc065295
efbaf1f6c552a8342d5629e39a5f325fcf1a32b340f1d8aa385352ac52d95a87bd181c5533bfb59af2
0f460bc9ac5f903ebdb888bd0751fbd491687fd5c5522a7993fc2fe87d627fd37f5afabfd73d387d7fa
bfd7bd3f57870f4ebe87c55e14fdaa62afffd1f7f62aec55d8ab17fcc4a7f842febd39daf5ff0098a8b15
42fe65f9fa1fcbbd0135c92d0df01711acf6eb2246eb6687d4bb9c733f17a30abc9c46ec405ef5c555
afbf31fcad617d7b6124f24b369d2d8c37ef0c6cf1c075468d60676e810faa84c9f638f2f8be0938aa8
26fcdbf26c7a88d2e796e61b9652c864b59446cc604b948d5c02a5de270e801f8bfd6db1551ff95a1
a75a6af7b67ab5b5d59d8c36f1dc42ef693faa8eb0de4d34730008e416cdcc7c2bcff006797242caa
b3fe6d793e1b637972f776f682391ccb2dacaa39c569f5f30d3896f50db7efc2d378ff00caf87156dbf3
5fca4b6ad76cf70b0c0e62bfe50956b397eb3259c697009050c93c4f147d433782fc58aa222fcc9f2d
5d5f59e936f2caba9ea4c23b08e589956466b482f01ad40204771192a0f3fb7f0f18dd95562fe47fce
4b5f3068ba56b1ab8108d460d39ae22b7b4bb8d2d6e754595a3569a7a2c91d6164f553e1e7c07ed
ae2a9d4df9bde5682212bc1a89e6f6f0c2896723b497174e2258071a8122c8c11d5b8d1bc406215
49aebf3ab4f7d4b494d3ad261a1de6a96fa6dcea33412c9ce3bdd15b5889e08e0e527203846e1d3
e1e55ed8aaae8bf9d5a23f97ec756f312496f2dec3a9de44d6d6f2985a0d324bb242893e332186cd
e429c7e0fb2fc79c7c955fad7e70e9eba4d9de797ad669ef67d52c34fb9b7bb81e316d05d6a96fa7c
92ca392f1a89eb150b723d57886a2abf46fce3d1dfcbf63a96bd14c97f2d8b5f5f2d85b4d71042511a
5e155e44318d4baf2dbb72e4554aaf44b0bbfafd94179e84d6beba07fabdca7a73257f65d6a684771
5c55118abb1563f65ff0029aeb1ff006cdd37fe4f5ee2ac8315762aec55d8abb154beeb58b4b4d5b4f
d1a50e6ef528ee25b72a0140b6810bf235dbfbc14db154c315762ac6fce9e6f87c9b63a7decd6725e
9d4752b3d2208a278e3e336a12886366690a808188e5dfd8e2a97e8df991a46a171a9dbeaa8ba2
8d305bb3dc5ddcdbb5bccb74266468a5472acbc6066aff002efb6f8aa677be71d1e284c9a6dd5aea
52a4ff00569608aee04759292fc1f136ee5a265118f8ea1b6f85b154a744fcd2f2d6bf67e5fbfb1991e
cf5cb692e65984d132d8bc56b15db4570558f170928aff4231541eb1f9b9a2e93ad43a725b36a1a6
cb1e9d27e94b39a1963a6ad7d269d1044e41a429346448a9c9d57a2b10cb8ab2a97cdbe5785da2
9b5ab28e559040c8d71186121afc342dd7e16ff00816f0c5525d33f32346d4e57b05e16dad4374d6f
3e9f713246cb1aea7369625121f81b9c903fa7183ea3fd9e3c8e2a99daf9ebc997b71f55b3d7f4f9ee
3e22523b9898d1637949d9ba708ddabe08ff00cad8ab1cd73f35adf4dd4b47b2d1f4b7d76d75dbc6
d2f4ebfb3bab710bdfc76d7575242793554a2dab2b72a524745fe62aaa3bcbff009a3e54d6b481a9d
e5ec1a4ceb72f637161793c4278ae56e27b748d803f6a436f21403af16fe538aa74be70f2abc8b12e
b366647b8fa9aa099391b8f83e0a57afef23ff00834fe75c556e8de69d3f5cd6355d26c0acaba5a5b4
8d731baba38bb12500a742a623f304118aa7b8abb154a3fc4169fa30ea9e9c9e80bbfa8f0db97a9f5
cfa9d7ad29cf7ff0057157fffd2f7f62aec55d8ab17fcc401bc9fa803fcd6e7eeb988e2a8cd63ca9a5eb
b7e97da97398476773a7a5ab88de0097853d470ae8c7d4a2050d5fb3b53156197bf93f630682fa36
95336a0d73a6a796e7975c95a7f4b46758e2996330a233385895a356609ead5fe0692466551dabf
e4df93f5bbc96eeedaf53d5a71860b830c7195b25b0468f82865291a2b21e5b483962aaf7bf957a3e
a0920bbd57559249e38a39e66b946924f4adee6d8b16688eee9772f2a5054af10bc57155b79f947e
54bd82e2de57bc115d5bac132a5c100ca963fa37eb20104098dafee4b01c78fc5c39d1b155487f2a
3ca90cf3cedf59996f277bad4609650d15d39ba7bd4132f11558a791e4880e3c4b11bafc38aa85afe
50f966d23b6885dea532dac90ce9f58ba33565b44863b77a3a901a1582308cbc5b660c5964903aa
eb6fca0f2bc5e5bff0008dddc6a3a8f9792d20d3edec6eeed9921b7b591258c46630843068d3e324
b7c34ae2a88bbfcacf2e5ddf4f7cf71a8209b528b5a5b44bc93eab15f42e2432451355579ba8775e8
5b71c793f2554f4dfca5f2c69377a65e584f7f1be933dbdddac66e4b4666b4d3ce968cea548626dbe
06fe6fb5f6b7c552f93f23bca12da0b396ef5478c4371072378c18add9bb329d940a917d3af4fb2ff00
e4ad154549f937e519648e5692ff009a5c25dbf1bb74123437305e469204a02a935ba48a3b1e42bc
5d97155b17e4cf94a0b29f4fb7b8d4a1b5bab25d3ae638ef64559234e6124651f099152468c3d3ec
71afc488caabd0947150b52d400723d4d3b9c55bc55d8ab1fb3ff94d758ffb66e9dff27af7156418ab
b15762aec55d8ab1fd4f49bdb9f36f97f578554d969f06a115cb1601835d083d3a0ef5f4dab8ab20c5
5d8ab17f3cf9397ce961a5d8bdca5ba69dab69fac3092117092fe8e9c4fe9152ca0072b42dbf1fe5c5
58bebbf93d0ea5af0d6f4cbeb5b186336f1c3a5cfa7457b622da3b7b8b7962689dd01e6b71c91871f
4caeeb22332e2aae3f2aee7ebd7974dad2fa1a86a969ae5ddb2da855fae5aabc0e63224f84490885
083ca8f17a9feec65c5524bbfc83b6bed161d266d69a3923b2834e7b98ad80e49616915b5a31479
194953173941aaca1bd3f8140c551b75f930d77add8f998ead6d6bafe956f6aba55c58e9cb6d15bd
ddbdd5cdc4ae22598830dc2dd4914b093c8afc7eafabf185509a8fe47dfdfe88da0af99a3b7b4f5a5f
8e3d2e059a5b462ef0c5712a48af2bc2ef5593922b01fbc899999f1547a7e50ddc7aacdaa26bcbfe9
37905fdc406cfe12f6baecbadc414faf51f14f242dd6abc5f6228caa0dbf237d4d3469526bc45afd5ad
acdda3b4559385b0d487252d2b004fe926eaac3f76bb1e4d8aa75ff2ac2590f94269f53b74bbf2beaf

26bb39b3d3a2b382ee79ad27b365f4a37fddd567672c5a562ffe4fc38aa12cbf2865b5bbb19e4d704
90d9dea5fb44b69e9b394bdd42f38071312bff1d074affc56ade38aa06e3f242e2e340d37cbc7cc9c6
cf4c9617429a75bc6668eca4b77b53318d919e58c5b85794b7ef391fdda37121565de47f24dcf93c4
a93eac7538459d8e9966ad6eb03456ba609561e6cacdcdcac9476a2f22bc82ad7156618abb1562c
be5fbf1a0be9a4a7d60eaff00a407c478fa1fa585ef5a75f4fb7f36d8abffd3f7f62aec55d8aa51e67d22
6d7b42bcd2ada75b6b8b855f4a7753222ba3abaf250ca48aaef4618aa5c61fcc5fd9bdd140a6d5b4
bb3bff00d24e2ab0dbfe659e9a8e843e763787fec7062ab4dafe67ef4d574103f647e8dbc34f9ffa78a
e2ae16bf99e18d756d04af6ff00719780d7fe93ce2ab5ad3f34893c357d000aed5d32f4d07fdc4062a
b7ea5f9abbffb9bf2f8df6ff7137a683fee258ab4d63f9ae7eceb9e5f1f3d22f4ff00ddcf1562d79e65fcd
3b4f38d9f958ea3a035acd1aadd6a874abd548af2e16492dadd53f489e45d209598f25f4ff743e2f57
655947d47f35ffeafbe5fff00b83deffde4f1577d47f35ffeafde5fff00b83deffde4f1577d47f35ffeafde5fff
00b83deffde4f1577d43f35ffeafde5fff00b835effde531570b0fcd7a6faf797c9ffb635eff00de53156be
a1f9b3527fc41e5fa761fa1af7fef298ab62c3f36075d7fcbe4ff00db1af47fddd3157369ff009b069c7cc
1e5f5f11fa1af0d7fee6831547796f45f31d96a3a86ade65d4acf50bcbc8adede15d3ece5b28a38ad9
a66f884b7372598998ef55e9d31564b8abb15762aec55d8ab1fd6f5dbfb0d634bd0f4db58ae2ef548
eea5492e2568634167e9120f08e4279093c3b62abbd6f3a76b1d2ffe932e3fec9715709bce9decb4
bebdaf2e3a7fd22e2ae3379d3b596975ff0098bb8ffb26c55af5bcedc7fde2d2b97fcc5dc529ff0048d8
aae3379cabb596994ff98bb8ff00b26c55bf57ce5c7fde4d3397fcc55c53fea1f15684be73ef69a5d2bf
f2d371d3fe91f156fd5f38d3fde4d32bdffd26e3fec9f156bd5f397fcb2e99ff0049371ff543156fd4f38ffc
b2e99ff49171ff005431577a9e70ff00966d33fe922e3fea862aef53ce3dadb4cffa48b8ff00aa38abbd
4f387fcb3699ff0049171ff5471577a9e71ed6da657fe622e3fea8e2ad33f9cff660d2c6dde6b83bff00
c8a18abb9f9cf6fdce983c7f7b707fe65e2a9545e6ad69fcb336a8d6b6a3558f571a3a422497eae7fd
ca2e9dccb71e5d097fb38abfffd4f7f62aec55d8abb15762aec55d8abb15762aec554e79e1b6825b9
b99162b7851a496572151110559989d800054e2ac06d747bcf30f91eff54b691adf5cd7663afe9f3a
9e6d1cb1b249603e303611450a3aec3ed8ef8ab34d1754875bd22c757815a38afa08ee1637a734f
5143146a7465278b7be2a8ec55d8abb15762aec55d8abb15762aec55d8abb15762aec5525bfd12
4bcf31e8dae2cc123d2e2bd89e12a4b3fd70440106bb71f4f1579941f9b3e67b8bad512382c38697
aedde932db982ec3359d9df5b5999967e7e9fa84dca1f4fe7fcb8ab234fce8f274eeab6297b7b1497f
1e936f716d007825b9b8466842485c2912f065424fdb1c5b8f25e4aa5527e734161e67874bd46077
d12e1ae6d4ea305a4c0da5e43ac1d2905c8673c622ec8a6403763cfe18fecaa8bf2e7e68cfe68d33
47d36c96083cebaa594576fce19a5d32190aacd2c6c636e61bd125d1599437c2bea72db1562be5a
fcf1f31c87c9fa979ab4cb5ff0ff009bb4cb9d4525d2639e49ecdedeead2d7f7e24723d206e8169177ff
0023c55665a7fe75794752bdb6d3e1b7d492eeea69618a17b46f53842f2c42628a59fd29258258a3
7e3bbc6dd06f8aa8ea5f9c1a6b5a594ba1412cd726fad2df568668837d4ada6d412c6469b84a38b5
59b815f53743c97ae2a90ea5f9bfe678b59d2edf49d36dafedf54d22cf5fb4d2a38a77bfb8b7bebef43
d34915f8234701133bba70e4197e15f8f154efcbdf9d1a27996ee0fd1f677eb0ea363677ba4585c59
8b7bbba5bc92754963679f814290b3518214546666f8957155a9f9dde5ebf90be9565a8cba75b963
36a0f674b5988d31f521045219529298c03f12950418cfc5b85576b1f9bb147e56d6b53d2f4e9a0d7
b4cd29b571677cb1b4691fe8ffafa3cbe8cd5f48ff73c977f56ab4db15596bf9baba4db5d49e73b296
08c5ddc43a55fda5bc91437f6d0da35d09228a77f52bfbb963a0e4b58c3f2559171556b9fcf1f2ad96
910eb37d61aa5ac17362daa5b5bcb6e82e64b6530fc4b1894f55b88d81ad3ed2fdb565c5579fcecf2
c461d27b0d4e0bbe52a5bd9bdbc6669deda7b9b79d62092b02637b4943548afc3c39f218aa26d3f
36f44bab87b51a7dffd645e496896f1c2259fd18e48a2fac3c40f38e3e72d0f31c938bb38508d8aa2b
c99f9a1a0f9dff478d32deeed64d4ec23d62d20bd58a29db4fb8afa571e9ac8ede9bd281bb37c2fc5
8818aa689e5554d2a4d2feb4487d5bf4c7abc3707f490d47d3a57a547a7cbfd97b62afffd5f7f62aec
55d8abb15762aec55d8abb15762aec558ff9dac753d4fcb973a6e9708b892f1a282ea22eb196b379
145caa97f86ad173515fe6c5540798f558af22d2ff00c3b3adcbc0f3c71a5c5af1f4a26443bfa82942e
bb62ad7932cf57d3d357b4bfb1163a69bf96e7478f9c6ee20bb027955c44cca38ced2f1a1fb0576c5
59462aec55d8abb15762aec55d8abb15762aec55d8abb15762ac7755d62f2d3cdde5ed1a12bf52d
4a1d424b9056ac5ad56131d0f6fb66b8aa1e1fcbfd0a0d2f55d2227b916bac6a6faddd9f541717925
c25cb14257e152f1a9e3d3b62a95ff00caa0f298d2ce8beaea1fa3239cdcd85b9bc94ad8c81cc917d
56bfddfa2c4b434de3aff0092bc55440fcabf2a1bc37b2adc4b2bcd2dc4eaf31e12bcf7eba990ea000
545c289028a7f23724f87154ab4df2f7e5bf90bcc1696116bb2e9dabc9690c5069771a8b24728506
d21b86818847928442242bf11e0bbb84c5559ff0029bc91a5e83a6da4925dc1a5796b4ebab1b595
ae1b947653cf05e4bcda84b10d6b1907a855a77c551365f95de4f3f55d46ca5bd0ad693dab4915dc
b12ddd9de4d2dd849d50a870925c48f1545539b76db1548b40fcaffcb3be1cf43d4afaf55bd1b8b87
4d42671325b5e7a91090d68552e2d5cd07ed7aabf61b8e2a98f94ecbc896de646b2d2f5e8ae7cc9
a4d83796d74f8a65578ac6ce432a44d09a932c2245e4e37e3c4b0a30c551963f945e50d3bf459b4
17692e8b6565a76992fd618bc30e9b2c92c041a6ec3d57562d5e68c51ea31557b6fcabf28d9c2d6b
6b0cd15935d477c6d9666f4fd48ac7f4685a1a9e2d07c2c2bf137c7f6f7c55089f963a6dcfe96b1d61
964d3ef3488fcb362f6ed2c77ff00a1d149749e76725dcbb1a3285e2bfe5127154c3cc9f967e58f35d
d5bddeb1f5b796de05b55115d4b0a32209554ba23052c04d20ad3f6ff00d5a2a934df93bf97bad47c
5beb735bc36eba534297d702354b68a2b5652a1851f8dbc4ae7a9e15ee792a8cbdfca0f275fc91dc

797

482fa2bc82596e2d6eedafae2dae219a7bb9af6478e489d594b4971283bd3d3731fd8db1544ffcaad
f29aeaa9acc02f6daf1669676f42faea24904eb18923955640248cb44927a6fc97d4e4dfb6d555a8bf
2b7cb369a6695a669ed79669a1d9c7a768d7115d4a2e2d2089563fdd495e40b22847a9f8d7ed86c
55747e62d51b409afcc8bf5a4f308d2c3715a7d57f4dad8f1a74afa478d7ad7e2eb8abffd6f7f62aec5
5d8abb15762aec55d8abb15762aec55d8aa4532ff00cee564f5e9a65d8a7cee2dbfa62a9ee2aec55
d8abb15762aec55d8abb15762aec55d8abb15762aec552ebad16cef357d3b5a9b9fd774c4b88edb
8b5138dd840fc8537fb0298aa638abb15762af30f387902ebcdff98304f7c932f954e83259ddc913c4
b1cd7435082ea286406b2f1fdcf2631f0afd9e7bd31560cde44fccbd4f4eb77ba1afd9ea62c7576ba8
8ebc162fd306c618eda588d9cd17eea49d1a48c495e2ccc5d2207e255308bcabf9b51d8db4d73f5a
b9bd8da1fd2f026a22337ba6f0d3f95ac6dea5127531dc032068f97c7fbdff0048e58aa0b4bf277e63
e8d0c16a9a36a173a05228efb468b584b790c725f6b1233c327d602aba2dcd9c927c4beaf0e3c9de
3a62a98cbf969acc975e61f325ce997979acdbeb66e7cb7662fa2847d5aeecec2c6eae43aba1790c
70ca384d22735da89ea9c558ec7e42fcdf5f256a124f06a573e7ebab3b4b082e1b5b2042f168a227
9d13eb3e813f5d8d58b503fc5eb8e74e38aa6977e41fccd92fdb56b337f0ea125ec9780c9aa33469f
ee66c678ab17d60c6556d05daf003871731d3e218aa947e44fccc5b08f518acafc7990595f5bca6ef
55b69c2de4bf51f51edd851638ee92de648d983bac92879638fe238aa2bfe55d79dd2db54b9b08f5
68af8d8d8db68716a5ac1bbf4a925dcb731dc2473244c181822768f8ba250c12b18be255ea3e4cb4
d422bbf305ede46608af2ee031435675325bd8dbdbcee8ed46653246ca1881cf873fdac559662aec
55d8aa52be5cd296c9f4f08df567befd2acbccd7eb5f5c17dcabe1ea8ad3c3e1c55fffd7f7f62aec55d
8abb15762aec55d8abb15762aec55d8aa47311fe30b214dff00465defff004716d8aa798abb15762a
ec55d8abb15762aec55d8abb15762aec55d8abb15629ad5ede43e7af2a59453ba59dd41aa35cc0
ac424861480a161d0f12c69f3c5595e2aec55d8abb15762aec55d8abb15762aec55d8abb15762ae
c55d8abb1579e437b7a7caf7131b990cc3cd82dc49cdb9083fc48917a75afd9f4fe0e3d38fc3d3157f
fd0f7f62aec55d8abb15762aec55d8abb15762aec55d8aa4937fca61667fed5b75f3fefedb154ef157
62aec55d8abb15762aec55d8abb15762aec55d8abb15762a849ecb4f9afed2f6e238db51b55956c
a56a7a88b2851284f980bcb15637adf9fac748f34db794d638defe486d6eee24b89c5ac696f79746d
2328ccac1e4320a08eaa5be10bb9c55129f987e4692092e93cc162d6b0cab04b309d382c8c18804
d694a2392df65783d7ec362ab34ff3de8f71a64baa6a8cba5c11eb13f97e333b86125dc57ad63105
2a3acd201c07f9417ae2abae3cff00e554b7925b6d56ce499613731a4b3881191684d6465201018
311f6b8b2b538b038ab7079db4bb9f35ddf95a02ae6c6c1b50babd571e9c6639cc0f1114eaa41a90
76a329f8971553b3fcc9f21ea0865b2f3059cd12f126449014a490cb708c1ba1568e095d5ba32c6d4
e98ab93cff00a1dfa2bf97654d687a5777121b571444b1542e189df93196308b4f8b986fb1f162ac87
4ebfb5d574fb4d52c2412d8dec31dcdb4a3a3c5328746dfc41071544e2aec55d8abb15762aec55d8
abb154b96db4316ad1aa5b7d4cddfaaea387a7f5efac87e47b7abebd0ff37abfe562afffd1f7f62aec5
5d8abb15762aec55d8abb15762aec55d8aa49353fc5f67e3fa36ebfe4fdb62a9de2aec55d8abb157
62aec55d8abb15762aec55d8abb15762aec5586ebe9cbf313c98d4d96df5835f9c76e31551f337e5f
dcebfe616d7a0d596cd9a0d32016ed6deb8074ad4d75256e5eaa7db65e045365dfae2ac3b58fc84
bad6b429f41b9f35491dadcdaad9cde958c615d15af9c165695aa43def25f0312e2acc22fcb7b797c
97ad793b55bf7ba5d6aeafaf9efe1896de582e2fae1ae9648979380f0ca43c4dfcc8a7154a358fc96d
33527bdf435192d609e692fad22312cbf57bf9f4f4d3259812cbc95a04da33b2c8ccfcba205534f2dfe
5b1f2d6ad7ba8daeb124d04b05edb5859c90a71b75d42f1afdcb383ca4e32bbf1af1fddd15b930e78
aa443f24828b0e1e629c7d4f4bb1d2e41f5688acb26996979650ce6a6ab58ef642e80d0b2a6ebb82
aa3f41fcb1bdf2a5f5fea9a66a62f6f7518a6865fac47e8aaf3b4b3b6898702d5e26c958d47fbb1fc06
2ace7cbfa3c3e5ed0b4cd06ddda4834bb482ca291fed32dbc6b18634ee78d4e2a98e2aec55d8abb
15762aec55d8abb1579bc16f28f2a5ca7a2fccf9c04bc789af0ff13a3f2a53a71f8abe1f162aff00ffd2f5
ef93ad3cc7e66f29e8dafdef9ab5186f353b48aea68ede2d3d634795791081ad18f115a0a938aa75f
e16d66b5ff186aff2f4f4da7fd4162a1610000026060f002220574d46430100000000000100000000
0000001400000000200000f0090200f0690200eff0b6b3b57ce1abedff0015e9bff6458ab7fe16d58f5
f376aff0042e9bff6458abbfc2bab53fe52fd63e7c74dff00b22c55dfe15d57fea6fd63fe074dff00b22c5
5dfe15d57fea6fd63fe074dff00b22c55aff0a6abff00537eb3ff0003a6ff00d9162aeff0a6abff00537eb3
ff0003a6ff00d9162adff85755ff00a9bf58ff0081d37fec8b1577f85755ff00a9bf59ff0081d37fec8b154
33f91ef1ef13503e6ed685da42f6cb20fd1db47232bb0a7d4a95aa2ef8aab0f286a83fe9b2d6cfcff00
46ff00d90e2aeff08ea9cb97f8c75b1edfee369bff00d18e2ab5bc9ba9b0a1f39eba3e474e1ff6238aa
dff0005ea7403fc69af7fc169dff6438aad1e49d50107fc6dafff00c169bff6438ab7fe0ad4a943e74d78
ff00b2d3bfec87155a7c8da91ffa6dbcc1ff002334ff00fb22c55dfe07d46a0ff8d7cc1b7fc5961ff6458a
bbfc0fa8d29fe35f307fc8cb0ffb22c55dfe06bfff00a9cfcc1ff23acbfec8f1542f92a4d56d7cd7e6df2f5f
6af77ab5969bfa3a4b292ffd169a3fad40ed20e50c515412a0ee36c559d62aec55d8aa0ee352d3edf
50b3d3ae2554d42f5656b38483c9d600a64a1a53e10cb5c551659475207cf155092ed23b882df84
8ed705d4491a33c68635e47d46028b5e839753b62a86d2b5cd375986ea7b094bc56575716170ce
ad1f1b8b490c520f880a80c366e87b62aa7a3798b49d7cea434c98c9fa22f66d32f8b2347c2eadc2b
48a390150038f887c38aa36f2fecb4f83eb57b3a416f50a1dd80059b6555f1663b2a8dd8f4c558ad8f
e68795351b816b6cd7a25fad45a7b9974fbc8563ba9d21912391a48942314b889be2a6cdecd4559
54578925c4f6fe9c91fa0517d5914ac72191790f4d8ecd4e869df154834ef3ff0097355beb3b2b292e
244d4a4b8874ebefab4c2cee1ecc334c2398af020716e2c4859389f4b9818aa69e61d7f4cf2c689a8
f9875691934dd2ad66bebc68d4c92082d90bc8ca8b52d403a0c5552eb59d36ceda3bab89c2c72bc

30c6a0167696e48589022d4d58b0edefd31557b2bdb6d42dc5d5a3fa909674268410f1b147520ee
0ab29523c7154462aec55d8abb15762a96aebfa4b5a35f2dc0faaa5e7e8c6938b7fbd7f5a167e9d2
95fef8f0afd9eff00677c55ffd3f687e567fe4b7f2b7fdb32dbfe4d8c559762aec55d8ab14f31f9af52d27
cc7a3796f4cd362bebbd66d350bb85a6b836ea1b4d101319a4527f79eb8a37ecd3154bf41fcdff23f
982d2ce6b6bf31dedd41eb369cc8cf711488631240c230ca658da540c8a4fdae4b55df154b7cdbf9c
ba46870595c685126b49776b7978595e585116d74c7d52352fe93a8692345f8490ea1d5b89c5539
4fccef2bc1a87e8bd4ef921bf96f27b3b68e286ea45ff479e0b6632b984246564b9855c96f4c7a8843
b2ef8aa4daafe77794ecb51d16df4e91753d3b50d520d1f53bd858a7d41efa2e56933aba8e714ae5
23e4a68bcf9fecb62abf43fcdfd3354d4b55b7bf8a2d334ed3efef6cad2e6496499aeedec6cadef1ae5
7843c114ace08477e5c7e25e5f642a89f357e6d683a068973aad97fa65c5a9b7335b4eb35a2c71cf
776f6ce6491e222364fac2bf0701997a6df1055bd3ff36fcb53dd6b49a85cc16da7e9dab2e8b677d0c
8d7315cbb5bd9cc642d1a718c07bc8e2dd88e5fb58aaa5e7e6d794c68ba8ea7a55c497973656f35
c4168d6d7513cfe8c73bd54187998eb6d2ab48aacaa50e2abec3f34342a4c9aec91e9d70b7ed616f
1a33dc7a82b0ac6e78202bc9e748f714e7b0638ab22f2cf99b47f3868969e62d0267b8d1ef904b67
7324335bfab130aabaace88c5581aab528ddb154df15762aec55d8abb15762aec5583f967ff26479f
07f91a37fd434b8ab38c55d8abb15631ad585e4fe72f2bdfc30b3d9da26a2b75281f0a7ad1461391f
72b418aa59e77f225f799f5bd1b54d3afd6c23812e2cb5a1c03c93d94816784464f478aea18641fe4
7aabfb58abcea7fca5fcc37d32ceded2e6ced3508ed5adaee44bcb810cb711e96d66d72691f2addc
854cb4f8d10732d24b8aa7c7f2f7cd8ff0097da8f97a3b1d32d2fb52d72e751fd1f1dc3b5b41657939
90aa49f570bea461aaa0c0d1d478d195563fa47e4b79beccdddfcf25945accb7497f733453c8eba8c
4e74e796c6e4b44a4c64d9c8399e5fded78d1a552aa3acbf2775982f66d46eacb4eba9a0bcd26fb4
78a699e5faac569aa5cde4f6b1bc913145486648e3651f1fa40718d785156432791fcc32c9e6d8ee6
c6c6eec75bf3469daddbc125c37192c2d62b18a55954c2407ff004462a9f1237350cc37c558ddafe5
679e4da5b5b4df53b66b77d2990ade3dc43fee3ed8dbb892292d807465a01c4c72ad15e392365f8
954e1bcabac68df96177e42f31c10dce81a5591b0d3756b133dc5f4e11b8d83fd5238494990fa5ea
30775e6a5fe14278aa976b3f95de73d5f41d6b4fbc8b49bfd4f5ad025806a12c92db3d96b7796b710
ddac28914bfe8f3c970642dcf92eea6393e065551fa4790fcd1a2ea50eb57d6d6d737569aa2dcc975
69753cb717b633999424b048a91ab5a0b8f80a9769123f83d3feeb15665e40d06fb43b4d726bf621
b5ad6b50d5e0b76041820bb90704209346217d461fcce71565d8abb15762aec55d8ab038745d55
7cb73d99b56174de681a82c755a9b4ff102ddfa9d7a7a239f8d3df157ffd4f687e567fe4b7f2b7fdb32
dbfe4d8c559762aec55d8ab13f347921bcc7ad697aec1ad5e6917ba4dbde5a40d64b6e498f51f4bd
5359e2928c042bc08fb3d715482cff0025b44d1e3d4ed3cb9abea3a2e93aa456e24d3ad5adde24b
9b658a3fac069e192466923851264776865f8dde3f51d9b154adbfe71fb45fa9269d1f98f578ec238a
58d6dd7ea5c0c9369cfa5194836dd7eacca9c4513946afc7972e4aa6f75f943697979717b2ebb7c1
ee65b89a48c476bc2b777363732000c24d39584406ff659fbf12aaa98fc97d25f464f2e5f6b7a95fe8
31c37b670d95c1b6223b3bc84c090a3a408e3d00794529266e6aad248fc462ae1f935a72ea771a8
26b57be94f717372b62f159c96e82eb4d874a3171780f28c41027c2fcb9372e6583531541dcfe42e
813da25a45ac6a5008ad6dac23955a067f42d2ee1bc8d1cbc4dea2a4908112c9c8408f2243c03e2
aabe63fc8fd2fccd73a9cf7be61d5608b54d506b52db5b1b45856e121b58500592ddea13ea70b231
fde2b73f8f8c8cb8ab52fe47697218a55f306a90dd4368fa7477117d4c38b59deeda74a35bb29f57e
b8c18f1aafa7132712adc9546d8fe51c1a7eadfa6ad7ccdab4778ef37d6f87d4d56e6da658f8dbca05
b7d9478848ac9c25ab3ab398db862acb7c9fe5ab5f26f95746f29d8cf2dcd968967069f6d3dc70f59e
1b6411a17e0a8a5b8815a28c553ac55d8abb15762aec55d8abb1560de59a7fcac9f3e78fa7a37fd4
3cb8ab39c55d8abb154beef57b7b3d534ed2a44733ea7ebfa0ea0705faba076e44904541da83154
c315762aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8ab1e4f365abe9926a82
de411c7ab7e852955e4653a88d379f5a71e679f8f1f7c55ffd5f537e5b79ead2d3c81e5bb66d175c9
5a1d3e08cc90e9575246c5500aab2a1041a6c462aca47e6159115fd05af8ff00b745dffcd18aadff00
9589695a0f2ff984f5ff00a545d76f9ae2ad1fcc4b7a123cb9e6134207fc72a71b1efbd36c55b3f9870
8a7fceb7e61dc57fe397362ab0fe62c7b85f2c7989a9ff6ac906ff4b0c55dff002b137207953cc5502bf
f001cea57e93253156c7e615454f957cc4be20e9fed5ed21c554cfe63d2b4f28f991b7da9a77f59062
ab4fe6538e9e4ef331f969ebfc6618ab63f31e524ff00ce9be65dbfe5c23ffaaf8ab87e644a457fc19e6
6a7fcc0475fbbd7c55c3f31a63ff4c67997fe90a11ff6318ab7ff002b1a7ffa933ccbff004850ff00d9462
aeff958d3ff00d499e65ffa4287feca31577fcac59ffea4cf32ff00d2141ff6518abbfe562cff00f5267993f
e90e0ff00b28c55dff2b16e3fea4bf32ffd21c1ff006538ab7ff2b12e3fea4cf327fd21c1ff006538ab47f3
12e474f25f990fcacedff8dce2ad9fcc3baa03fe0af321a9a7fbcb6dff006558ab67f306ec027fc15e63d
bb7d5ad7fecab154afc83a8c9aaf9fbcf37b258dce9ccf1e8dfe897ca893ad209c55823baefd47c58a
bd2715762aec552dd5fcbfa36bc201abd9a5d7d5999edd9ea1919d4ab152a41150687154541656b
6d6696104612d234f4922a92025294a935e98aa4bfe04f29014fd171d294fb5274ff0082c553bb9b2
b5bcb57b2b988496b2284788d685476fc3154b20f29796eda68ee20d3a249a260f1b8ad5594d411
be2a985fe9b63aa402db50816e2dc307f4dfa721d0edf3c550b63e5bd0f4cb817561631c17001512
256b46ea3738aaaea3a3697abfa7fa4ad52e7d2afa7cebf0f2a5694f1a62af3cf2adfc767e79ba9eca
209e53d7249f47d1c4309f4d2f745e66777949ff0077b19d17f67fd1578fdbc559fdf797b44d4e7fad5f
d9457171c427a8e2a78aee07e38aa22c34bd3f4b8de2d3add2de391b9bac6280b5295fb862a849f

799

cb1e5fbab892eae34e864b898f292465a9627b9fbb154c2d6d2dac604b5b48961b78ebc23414515
35341f338aa5afe55f2e48599f4bb766624b1318352dd7efc553336d6ed6c6cda3536a53d23153e1f
4e9c78d3c29b62a9627953cb71bac91e976cb2210c8c2315054d411f2c5530bdb1b3d46036b7f02
5c5b3105a290065254d41a1f0c550c340d1069a7461a75bfe892dea1b2f497d1e7ea7adcb8d29cb
9fc75ebcfe2eb8abfffd6f52f9775cd5747fcbffcb0b6d31e18ceb32da6997324f134dc626b1b89f9201
247f1728546f5d89db154c7cbbf9a91de8bcd3b54b09e7d6f49bdbdb0d51b4b81e7b74fa9cb3c71cc
454b22ce206e2096f4dfe077fdac550edf9bb65ae436ebe528e492ea3d4acec75833468e966b737c
d6347a4ab52cd1c9c1a2f517e1f8b66c5509a4fe72dbdbf976db56d7adee6eafe4d3f4fbbbab6b1b7
8d511eeb4a9b539591a49c724f4ede56a1f894809f1d6b8ab5e6ffcdfbe8b407d63c81a54bab1b6b9
b7712dcc0e9677d64b34897b1db4a196970890c9c1587da0bf0329c550d0fe70dc5ef9bee6da2961
1e4c95f411e5fbdb284de4f7a356b8bdb7919c995156377b5e31b22b3ad3951b9f15551baafe75e9
5379726bed0232354b8d2750d534bfac185e366d395cbc6556605dd0ad26894fa901a7aaa98aa6d
ff2b77458e686daeb4ebe82679eeeca657584fa77562640d17c32b062de9d414254065e6cb5c552
bd6ff38a16d1a493cbf61711eb8a6095adeed22610d9c92d9fefdf8cd42af1de47c42b348acdba7c0c
31554b7fcdfb7d3f4c967d5f4ebdd427b0b7bcbcd5aeb4cb6e705bc56ef76d109393fc3ea476ad425
b8f3e0acc3d418aa86adf9a1ad18ad6e2c2cff46472ebf67e5fbab7bcb76bdbb88dc58b5ec8c23b49
583b51e10810bfed773f0aaaba5fe6a5f7d434d3e6dd2aeb43d4609d2db5c758a192d7eb274e9351
31283399507a2164278b706fdcfc47e2c5552f7f396c167b9d22df47d486b36f6f75757888b68e2d2
deded60ba13b17b8449018ee636548d998b734342b8aaac7f9bb147a89d32ef41bd532dedee99a6
dca3dbb477571611c32041fbc1c24984ac6346ed13d5b1563ba77e6ff9a2cff4beafaee93f5cf2a692
75882eafad2036a52eb4bd567b38638dee26e337a96f0348fc07c12f14ff007605555923fe72e90b0
b5f1d22fd7495d4934917cff560af2b48911748c4c642aa6543ba06e3c9a9f09c550cdf9e5a24005d5
fe8da959e93c5259350945b3224537d71636291cef21e4f6532502d47c0c7e16c5558fe6e4ab7e6c
a6f2c5fc0cd046d6e933451cd35dcf72d6f0c31a13bac814c8b357852aa7e218aafb8fce2b0b6469a
e742d42d204bbb3d31e4bd36b6b4bebeb78ee96060f3551c24aabfbce0ad2fee958b95aaacb3cad
ae9d6e0d46394ab5e693a85ce9974c8a5159e021958024d3946e84eff006ab8aa7b8abb1560fe5b
007e6579e69d4c1a293ff226e07f0c559c62aec55d8abb15762aec55d8abb15762aec5526f35eab3
e8de5fbebeb44f5350e021d3e1a8064bbb86114082bb6f23a8c5529d63cb72597926df4dd2ab3ea3
a0476f77a6bbd434b75a7959072e1424cdc591fc7d46c5592697a9596b3a6da6ada74a27b0be863
b9b5997a3c52a8753f4838aa2f15762aec55d8abb15762aec55d8abffd7f5a7937cada579a3f2d3c9
09a9b5c2b69b6d6b7d6525a5ccd69247702068837285d09a2c8e2876df154e27fcabf235c515b4d6
489ad66b0b8863b8b88e3b882e5de57fac22c804cdea4b248b24bca4591ddd5b93571543d9fe50f
91ac6533dadadd472bcc2ea661a85ed659d661708f2fefbe3292d644e75e2ccf4fb4d8aac1f939e45
167f50fab5dfd54431daf037f795f421b29b4f44afab5a2dbdc4b1ff00b2e5f682b62a8cb2fcaff27e9be
88b2b7b9863b7ba8afade217b74628e7886e523694aa8909e532a8e333fc52066c550edf943e423
716f711e9f2402cd34f8ad2dedeeae60b7862d1da47b348e28e454558da591a807c45db972c555a
ebf2afc997b65369f756b712db5c2cab71caeee79c8d344f0b48cfea72f53d391a31257d4e069cb15
519ff287c89737d2ea52d9dc7e9099e4925b94bebc476796432963c6502a1998aedf0f26e3f6b157
1fca1f2230025b2b8929c012d7d79568e3482358d8894168c0b580f03f0f3895e9cb7c55b7fca4f22c
b14f0c96570f1dd5b4b6374a6faf2935bcf24b21594098072ad3cbe9b355a2f5184657154c67f2179
7eeaee2ba9e395beaf7b6bab408b2c91f1d42ce016a93164652e4c4151964e4a78f4c5575df90bcb
17d7935f5e5b493cb3deaea932493ccd135d2da9b2e4632fc7898098cc74e0cbd56b8aa120fcaff00
255b232c360e19ed6e2c1e4facdc191adaee28ade44673254feea08a3424d6348d563e38ab6df97f
a50d42c64b758c6956d7a358b8b39d64b9924d4a085608278e4925223e0aa59f8a1691fe3e40f3e
6aaa1fcb8f283e843cb72d9492e902ee7d40c325cdc339b9bc695e773219399f54cd2f35e5c5bd47
14a1c550cbf951e431651e9e74d76b486696e2346baba24493fa45cf2f579104c31b71278874561f
162ae7fca8f21cb125bcda634d6d1ac482de5b9b992229035c3a2b2b4843006ea7d9bfdf8d5ed8ab
bfe554f918dbc36cf6133882248639def6f1ae02c32a4f137ae66f50bc4e8a6293973887c28cabb62a
8d3f97de5236975626c09b2be9d2e6f2dccf398e691215b71cc173c818d15594fc2dc6ad56df154df
48d260d1eda48626324b3cd2dd5d4ec0069279dcbbb10a00ef403b2803154c315762ac1fcb607fca
cbf3c9dabe868bf3fee6e3156718abb15762aec55d8abb15762aec55d8abb1548fcc5a04bae49a5c
b15c4509d2eefebd1a4f07d6636996278e3254491d0a17e6bbfda0b8aa0617f364faa5ee98baad92
b59c56f37a8d60e437d60c8294174294f4fc7be2a98f95f45b9d034afd1b737697845c5c4f13450fd5
e38e3b899e5589539bfc29cf8ad5bece2a9ce2aec55d8abb15762aec55d8abb157ffd0f4bd94ec7f2
ebf2c34d7be8ed34fd4de0b6bf8dd9e333c29a6dcce10491cb1321e7121aa9eb4c5527d17f3bb542
902ccba6db6909616ecac3eb13c91c9268b06a5cd98cac5915d9e335edf13c8bc58e2ac9bf2ebcd9
ac79b753f305e2dc451ead268ba6490d9348d2da5bde89f5381dbd357340cd147ea056a9dbe2fb2
d8aa5d6df9b9e67ba834aba3a6c768f7f147343a7dcdbcd14f752c5770e9f7969192df0c91c865950
d1f943e9b71e1ce4c552bd23cff00a86bdaaf9374e171069f0c3abc464b181ae1a4bc8668b534f516
49253ca157895594fa9fbdfb453f778aa73e63fcd6f30693e61bfd007e8fb08d6ed6dec355bd0efa78
ac733c693cb0bb14926787d111ba46e1f78fd50f17255221ac6adafdae91a86bdaa5c26a975e7abb
f2f4d6f6b35c69de9e976f717ab0c0d14522558a7a4c642a1deb1f2ed8aa1f4bf3ff009b7cbbac49e4
db1bdb5b882ff56ba834fbfd4d27bbb8b756d7a4d3c8909b84f5bf76cae82b1f1e3fb4a7e155305fce
7f33c5a2a6af76da67ab3dc5069b1c5702e6d4dbf2fad5a5d190aa24a9c091b972bbfa5c7e3c556e9
9e7bd735df396963eb0069fae4fa6c1abda44258db4d48c6b129b692ae4091a5b782295e91960d4

2bc59315631e55f30f9bacff002d7c9be74d4269f51bc4bf99208a3bebc9aeafcc43537315cc6f552c
7d38563a076ff8518ab3ad2ff337cc5777fe54966d5749b8d035a99a2d42eacedae18c0b322c969cc
bba7a6647e76af50c12551fb7cd15562cbe6ff331b3d52e6d2589b4dd5f46b53796919b856b543a1
dd48f796b2bcec5238a6856371466677fef7d5fb4aa275ffcc3f346b3a3ccb03c1672d8ebfa4e9f6fa5
19ee2cef484d5a282b73708a545bdedb112ab007f76edb3a2b51545794ff0032f5eb0b6d2f47baba5
5bab7b7babfd62db5486f2e2ec4ff005dba5b9d32dcc424791f4f0225524bb4f0709abe9b73c5522b
efccaf376a5269dacd96a22cb528d8d85c4d0c5ea406c64f316910b4ed0167407eab3c9f1d4f14e6d
cbad15655ff002b235e8cd959693a8695656d2cd1dbc8cf04b71592f357bcb0322f2b91408b1a4fc4
d7f6be2e0df0aaa5e5af3d6abf9908d16bd25b59693169a97977a4a7d6edeeccc9676f771de24d1f1
5fab3bc9346c8edf6e254e45d645c5526f296ada8796748fcbed634fbc6136a1e5fd226f31437cd717
46e1ef2f34fb3b87ac92feea44f56495de8dba37203e36c5538b2fcd2f3a243617ba95f69e527d2ff00
4d496d169b785a68254b9575b71134accf6af023481997e09be3e1fbb6c5528b7fcc2f3379ca6d034
fd4e75b496cbcc1691c91dbc1229d4e04d5ae6d0c8aead4558e28a279021743ebf2feeda3c55ed9e
45bdb9bff002cdb4d75234ed1cd776f0dc3b7369adedaea586190b772f1a2b72fdaad7154abcb7b7
e65f9ebde0d14f6ff007cdc0fe18ab38c55d8abb15762aec55d8abb15762aec55d8abb1548ec3fe52
bd6bfe6174ff00f895ce2a9e62aec55d8abb15762aec55d8abb15762afffd1f667e57246df971e5659
429ff71f0050c075e3dab8ab25b99eced6179561f5caf0061b74124856460a0f11db7a9f6c550575e
62d16c2e355864244fa3d92ea57fe9c6588b66f569c4a8f89bf72ff0008dfa7f362a8eb4d434fd46d2d
2fa0911e0ba5596d598804f34e4280f7e27718aa1b58d7749d0747bdd72f641fa3f4e8de4b96847a
aeaa839300abb934de83155da56b3a5eb113dc599e3fe917168cb2afa7234d65234320e2db9e2c8
687c37c554b4df32797f5897558b4fbd8679343bb6b0d56840f42e9634959189a6e15d77fa3aa9c5
5313359d48324755241a95d88ea3e62b8aa5faef98f47f2f68d7baf6a12d74fb0b67bfb8300f5a4fab
442af22a254b0037f87155906aba4eb36f2c77903daac6eaed05fa7d5d898c24ab22863b85aa9e40
fc2def8aa64d7762a0969e20049e9125d47ef6a071ebf6aa40a75c552cb8f34f97a147717497291ad
c34e6d41b811a58b88ee0bfa61a9e9b37161d797d38aa72a23650ca14ab0d88a1041dfeec55be2a
450814c55d41d698aba83c3156bd34fe51f70c55ba0e94db157507862add3155b24692c6d148bca
3752aea7bab0a118aadb7b782d208ad6d63586da1458e18630151110515540d80006c31561be5d
14fccaf3bd3bdb68a4fcfd3b9c559b62aec55d8abb15762aec55d8abb15762aec55d8aa4761ff295e
b5ff30ba7ff00c4ae7154f315762aec55d8abb15762aec55d8abb157fffd2f56687e5ab9f33fe4e795a
cf4eb84b2d6ad2db4ed4349be950ca905dda95915ca023902392b0aeeac7154af5afca3d7658af2d
f4a9ad1d22b879f4a96799e16920b8b8b494db5c04824a25b8b6fdc142dc8fa7f0c7c5b92a9968bf9
7de69b1b1f33da5e4ba7cb36a7a449a4595ea3cdebdcca25bc923b9bb2631c59beb4038532d0ab1
563cb88558e41f941e73b0d4aceef4f4d0e2b4b4ba86ed6df9dc2381126941a35658281246b19b98
0bbf3466e5f12e2aa07f267ce83456d2a11a24513e9c74c92d4c93b5b3493e9b0d9c977c45bafef63
7b7063dbe3495f93c6ca392a9e43f967e6dfd3d1eb17a34abc8a0b9bbbeb4b79a7bca5bdd0beb8b
eb59e3f4d50167370629d5eaaab1ab2fabfdde2a857fc9ff00355ac77d0e9fa9c1341ade9b62babfaf
33452c7acd85c99c5cdb18ed8a953ea3d44cafcf8c625564e4b8aaa5bfe5cdfea12eac907a72c50dc
68c1acaf6d1ac6c24bfd3e5b46d467b70524631cf159c291ecd1f2f53e36ab51540ff00ca9bf368f2ff0
09974463a24c359d3aead74c964fac0934f96ee192ccc31bac7fef3fa4fce81410fce3e34612aaa9ce
9ff00945751ae9fc16c7408acf517b9b8b3d364b8be5bab2bbb758af61926bb0ac3d678e161c5004f
457ed7238aa48df92de677d2e1b6b81a25c6ab6f05f5a9d449bb0d3992d3eab6974eb22cc1261f6e
411edc97e176fd85590e9be44d6bcbb26b170628ef5f55b4d5ad2186d3ec06bfd427bf89a4f538509
374e9230a8a448dde98abd1f41d35b46d0f4cd1da533b69f6905a19cf573046b1f23f3e35c5530c55
d8abb15762aec55d8abb15762aec55857978ff00c847f3afb5be8c3fe49dc9c559ae2aec55d8abb15
762aec55d8abb15762aec55d8aa4761ff00295eb5ff0030ba7ffc4ae7154f315762aec55d8abb1576
2aec55d8abb157ffd3f547e5e7e63f9174af24f97f49d4f5fb3b3d4ad2c6186ead6793d39229235e2c
8e1ba3022841c55930fcd5fcb86151e67d3c8ff8ceb5c556ff00cad8fcb7d87f89ac6a7b0941c556b7
e6e7e5b275f325a7d0cc7f52e2ab7fe56ffe5a0241f325a022b5a97edfec71568fe707e5a0207f88ed
8961c8504876fa13156dbf377f2dd3af9820de876494f5f9262ab3fe571fe5a7fd4c10f8ff00773ffd53c
55bff0095c1f96dc437e9f8a8c683f773f6ff009e78abbfe5707e5bedfee763dfa7ee6e3fea9e2ab13f3
9bf2d249258935e4324242c83eaf73b1650c3fdd5e0462abcfe70fe5b8ffa5e27fc88b9ff00aa58ab5ff
2b87f2e3feaf8bff48f73ff0054b1577fcae1fcb8ff00abe2ff00d23dcffd52c55dff002b87f2e3feaf8bff00
48f73ff54b1577fcae1fcb8ffabe2ffd23dcff00d52c55dff2b87f2e3feaf8bff48f73ff0054b1571fce1fcb80
2bfa6c53dadae8ff00ccac55aff95c7f96f5a7e9adcffcbaddff00d51c55b3f9c3f974016fd30c401534b
3bc3b52bda1c556afe71fe5d39e2baaca4f5a0b1be3ff00323155dff2b7fc815e3fa42e6bd7fe39ba8ff
d9362a82f20eb365e62f3af9d35bd2bd6934a99349821b99ada7b5579208a7f502fae9196e3c8568
3157a362aec55d8abb1561610000026060f002220574d464301000000000001000000000000001
400000000200000f0e90100f0690200aa3c71575478e2aee43c462aee4be23efc55dc97c47df8abb
92ff30fbf157725fe61f7e2a91583aff8af5b151b5ae9fdfc5ae7154f0c918eaea3e6462ad7ab152bcd6
9e3518abbd6847fbb17ef18aad3736c3acc83e6c3fae2ad7d72d3fdff001ffc1aff005c556fd7acbfe5a
62ff835feb8ab8dfd88eb7510ff009e8bfd7156bf48587fcb543ff2317fae2ad8beb260c45cc4428ab10
eb402b4df7f1c55ffd4f7f62aec55d8abb15762aec55d8abb15762aec5523d1bfe3b7e63ff98ab7ff00
a8383154f315762aec55d8abb15762aec55d8abb15762aec55d8abb15762aec554ee2a20969d78

801

3529f2c5583791bca3e57bcf257972eaef46b39eea6d32ce49a6960477791e042cccc412493d49c5
53ff00f04793c7fd28ac7fe91e3ff9a71570f24f93c6e341b0ff00a468ff00e69c55bff05f943feac561ff0
048d17fcd38abbfc17e51ff00ab158ffd2345ff0034e2ae1e4bf280e9a1580ffa368bbffb1c55c3c95e5
01b0d0ac07fd1b45ff34e2ad7f827c9c18b0d074f0cd40cdf568aa40e953c7b571571f24f938d43681
a7907ad6d613fad7156c792bc9c053f4069fc7c3eab0d3eee38abbfc15e4fff00ab069de03fd121e9ff
00038ab47c91e4b6a86f2ee98c0f5ad9406bf7a62ad7f81bc923a796f4adfaff00a0dbff00cd18aad3e
42f229ebe58d24ffd185b7fd53c55a3e41f221353e57d209f1fa85b7fd53c55dfe01f227fd4afa47fd20
5b7fd53c5526bef25f9420f3268f6f6fe5fd322b6ba82f52ee14b2b7549513d1755701006019430afed
0ae2afffd5f7f62aec55d8abb15762aec55d8abb15762aec5523d1bfe3b7e63ff98ab7ff00a8387154f
315762aec55d8abb15762aec55d8abb15762aec55d8abb15762aec554e7fee25ff51bf562a907e5ff
00fca0be59ff00b65d97fc984c5591e2aec55e312799fcefa079bf56b4d535ff00d2967a51d27d1d2a
3b0862fae4dad9bc8d6059230ce811e28d95fe33c55f92b721455376fcdd375a85ae8d69a2cf67a8
dcdd6976b35bea12a5b5d4116a8a59a5f44ab9611d19011c91a54911990afc4ab07f2bfe67f9d974
ef2cf987ccb797dfa26ea467d59ee2c2ca2b59e04b4d4e76368f6e4bd57ea68ccaf46f893f65b1567b
63f9ab7b7daa689a3cde59bbd3ae75d6bc8ede4bb916103ea2ab2bb2ac88198344eb247555e7f1a
edc3915586b7e6bf9a534cd71e3fac496d36976b3e8bacc8969ea59decba09d4c2cf02280fea346e
59941447608070fb2abd33ca9e7d1e68d6f53d260d22f61b0d3bd48e3d6e58f8d9dc4f6d3b5b4f123
1a7c48e848e3c814deaadf062acc715762aec55d8abb15762aec5520d4d82f9ab4007ab457e07cf8
447f862aff00ffd6f7f62aec55d8abb15762aec55d8abb15762aec5523d1bfe3b9e63ff98ab7ff00a838
7154f315762aec55d8abb15762aec55d8abb15762aec55d8abb15762aec5564a2b138f1523f0c55
20f200e3e46f2daff002e99663ee81062ac8b15762ac6b52fcbff00286b171ab5dea7a625cdc6b91d
b43aa3bc92fef52c58bdbd007011a263ca364e2cadf1035c55a6fcbef26b317fd110ac9ca1911d4ba
346d6c55a33132b031905149f4f8f32bf1f2c5575b790bca169a5695a241a5c6349d12579f4bb4769
248e192549237203b1e40acd22d1b92f17618aa122fcaef20c36f696b16891470d83c32d90579434
525b333c4cac1f90652e4035fb344fb2aa02abd3f2cbc8b1dabd9268b10b592cc69af1f394836ab19
8426ef5a88d8c61fedfa5fbbe5c3e1c5532d1fca5e5cf2fddde5fe8da745697ba8156bc9d012f232aaa
d58b13bb7105cf576f89f936f8aa758abb15762aec55d8abb15762ac6b592479bbcb1b5430d4013e
1fb953fc3157ffd7f7f62aec55d8abb15762aec55d8abb15762aec5521d17fe3bde65ff989b6ff00a83
87154fb15762aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55a7dd587b1c5581f94
bcb1f5bf2b68b73fa6754b6f52c2d4fa16f73c224a44bb22f03418aa73fe10eb5d7b5835ff0097cfe89
8aa9ff8292801d7b5b34ff97f7fe031570f24c21abfa735a2694a7e91969f762ad9f25425427e9bd6a8
0d6a350981dbc4e2ab3fc0d6f5a9d735cffb89cf4fd78aadff00015a7fd5f35dff00b8add7fcd78ab5fe0
1b33ff4bcd77fee2d75ff0035e2aeff000059ff00d5f35eff00b8b5dffcd78abbfc0367ff0057cd7bfee2d7
7ff35e2aeff00d9ffd5f35effb8b5dff00cd78ab7fe01b2ad7f4deba7feded79ff0035e2ad7f802cbafe9bd
7abff006d7bcffaa98aaeff0001581ebacebbff00717bdffaab8aae5f2269ea6a755d6dbe7ac5ff00fd56
c5578f23e9c3fe967ad1ff00b7bdff00fd56c558e6b7e4dd3a3f34795e11a86b044b25f0663ab5f9600
5b16d899aa371db157fffd0f7f62aec55d8abb15762aec55d8abb15762aec5522d1bfe3b9e64ff989b
7ff00a8387154f715762aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55a6e87e58a
bc6bcf4cda7fe48d9eb90ea173a75f585858476f7105ccb6c14dc4f6c8e5846ca19b8d5472fb3c9a9
d71540ddfe65798b428bcc96fa40b07b1d02ea6b48f4cba9a6b8d691629c399c8b8923596396163
25ba34b1b3a858e1795b6c5522b2f30f9bbce1e72d334e7d46daf2f2e61f35c4da64d3dde911c705
9ea7651dafeeedc991a78e06768cb846e0e496fdac5535f2d7e616ab6724de5eb2d5b4fb5b2b09b5
7b837fadbdc5e4b736ff00a4b528834051eaff0054f46032a16feea4f89a2fddb62a936a9f995aef986
d749fae9b6d17cc4f0acbaa2879e3934d9f4ff326996f343320b85568846ed248cc179c5fb6b133555
44587e667996dbccfab9bebeb2b2d46fadf4bb34babcf5ff44a490beb023b85843b34497c2de1e3f1
7fbb107291fd2e6aafd6afbccbe67d5bca96915f49a6f983cc2fe6db736d2dedd59476cf6b4b7b4609
180e4c2aab2227042cecc7e02cc7156bfe56979a6c6eacdef5ec757b8b49fcc7a541730c13adc226
873416cd7322c73b24864526e254118a2a522e237c55313f995e6dbdbfd474ebf974c3a468d1da4
ed70d04a0ea6926b3258a5cc6c970a234e31a4838fa8a5fb98d862a9b68fe6df3b4d75a3e9da9df5
bdde9facfe938ae6fc5a1436d2e937d27d6239bd39004e56a3846c69c655e4dcabc71560de53f33f9
c3c9be46f2a79a5f525b98bcc3a7e90a34cb87b8d4391b315bdb879a674f4e69967fde22073fe8e1
be2fdeb22a9e45f9bbe748adf45bbbab8b199f55b9bf0f6d1594914715ac17171670b7369d99e8f0a
39e3fefda371531f2554bfe56e7e6169ba0c1ae6a06d2f5e68a2f56cedb4f9e3683eb7a7595fb4e42c
b2bb25b19a65640b5754de8cb8aab3fe6279facaeae63bdd734fe178da7dbe9da88b09db4c467b7
ba93d70cabea347752c0b0f22382b9e3137c51f25538d37f303cf2d7f6b77a9b40da34faf6a1a65c4
56b66c935b59d9dc2c313bacb297915d4d649102b455593d268b9f155ec1617f67aa58db6a5a74c
b736179125c5adc466a92452a864653e041ae2ac7f5f2479b7ca40024196fea7c07d51b157ffd1f7f
62aec55d8abb15762aec55d8abb15762aec558fe884ff0088bcccb5d84f6869f3b48ffa62ac8315762
aec55e11e63fcc0d5bcabaaf983ccaedfa466b1935ab6b3d35afa6b6b1116956d6b7081e00245329f
51c348002bfcad5f8554737e72f99601adfafa1d9c9fa0a692cef8dade24d3a4b6932c73ca2d037d61
e1084cdfddac9e90e4892f25c553af3e7e6c0f27dce8b0411d9de36ad1094c6d3b230125bdc4b1c8
0951fbb2d071ad19db97d85e38aa23cbff009937d7fe50d7f5fd5eced61d43459238a2b6b599a4867
96eac6d6f2de30ceaac19daed21fb3bb6ebf6a98abcd06abe65bf3a2586bbe66d520f32d879a2d7c
a9ae5adb5c369e935add47737d15c886321d5a6865850331ff747c14f8eaab30f242dceb867b9d73
cd97f6be64d1bccb369cda7b5d84536da7c8f0dbdacb6ff000ac9f5bb755ba690afa8ef27346f4d553

155badfe71de43e746f296986c0241a9e99693de976942c3737a6d6e6265263a4ab45dfec2170bfb
c38abd9315762aec55d8abb15698d149f6c5520f250597c9ba0960195ac2d8d08db7897154f4c513
021914834a8201af1e9f762adfa69cb9711cbf9a9be2a94f99f548bcb7e5bd5fcc1f555b94d26cae6fd
ad8111fa8b6d134aca1a8402c169d315627a07e6cf94f5592e6db557834abc8ee6decd0492acf04e
d796d04e9c255503637090bf30bc66fddf574e4aa36c7f337c977f7172d67aa594fa74105b489240d
2497523dcbcaa8ab6e22e4c844558da367e7493e1023e4554b355fccbf28e91aac7068ad6376fa95
b5d6a97ba8fae62b48dad6da0950cd2a4528e524524676fde2a7a6c50ab2e2a8cf32fe66e85a2981
74bfab6a570da95b69579ce7faa456e6f1a58d6532989d5903c2e8c5760cacb5e4acb8aa8683f9c9
e43d5fcbda7eb57973fa264bcb4b6bb3a75d46c678c5db471c683d356123169625023e47f7916dfb
c4c55113f9f3f2cad7519f5e9f5645bf8621632337d65a91f19ae4f083895dd60999a444dfd16566fdd
715551e9f99be4278e39535984a4939b55f82407d5f82808280a87f563f4dda8927ab1fa6cdea2555
42c7f9b9f979f53b5bcb8d616c92f2c9353862bb866825fab3f0a12ac95e54910f0fb7c595f8f03cb15
470f3ff97a778858cc6e22fac5b5b5e394784c06f9de181984ca95accbe8b28f891f665c559562ad32
ab02ac2aa7620f81c55a8e38e18d62890244802a2280aaaa0500006c00c558d6bc48f36f9480e86
4bfaffd229c55ffd2f7f62aec55d8abb15762aec55d8abb15762aec558fe8a29e62f331f19ed37ffa348
f156418abb15762a97cba168939769b4db591a567790bc11b1669400e5aabb960072f1c557b68da
43c934cf616cd2dcf0171218632d2084523e678d5b88fb35fb3db155d75a56997acaf7b6505cba2f0
469a249085241e20b034151d31572695a64713c11d940b0c8c8f246b1205678f8846200a12bc578
9ed418ab52691a54b39b996c6ddee59d64699a242e5e314562c456aa3a1ed8aaa7d42c7eb7fa43
eab17d7f8f0fad7a6beb711b539d3953e9c554df49d2de579dec6dda694869646890b3329520b122
a482aa47faa3154662aec55d8abb1558d342b2a40d2289a405923240660b4a903a9a5457155c45
411e38aa47e4a509e50d090745b1b751f446a3154f715762a95799b451e64f2e6afe5e69cdaa6ad6
77160f72aa1da35b98da2660adb12036d5c558b49f9668979a05f69daa9b09746b0fd19710c7696d
2417512b24aafc2456f4a459139738cf4675ebc5d154aedbf26d2defb48d58ebb336aba15869b61a
6cdf574081f4a37416591037c5ea25e488e9c947d965e2715409fc81d360b6bcd3f4ed7af2db4bba
8eef8dab4504be9dcea36b15adc4a18a82432c2aea9d1242dfb144555365fca4516161a3bebd717
1a2e9bad47aed9d8dcdbdbcaa8b1cd25c1b62c155990c92b519aaea9c17aaf2655dadfe5145acf9a
8f9a8ebb730dcfd62da78ed8c30c91a456b716574b08620370f52c54815f87d493bb72c550d3fe4b
4336b17dad7f882e8dcea0f23cfea4103121e0d46dd3e250a4944d45d413fefb8fb62aa9a5fe4e269
bad0d6c6bf70f3c8915bdd45f56b6f4e5b682dad60441cd5ca38368adea2fc5f1c8bfc85155287f252
de1d36ef4b1afdd1b6bdb7b3866adbdaf3f56c121852457319701a2b7895e30dc0b2fa941c8e2a9a
4ff96368dacea5a94770cf0ebfa869fa86b16cd448396952fd66164890053333ac51bcbb33431a07e
6e9c8aaf40c55d8abb15627e6362be71f2601d1a7bf07fe90a43fc3157fffd3f75df798b41d32e0da5f
ea36f6f74156430c922ab847242923a80789a7cb1543ff008c7cadff00577b5ff91ab8ab5fe32f2ad2b
fa5ed694ad7d45e98aa7314b14f124f03ac90caa1e3910865656150411d4118aafc55d8abb15762a
ec55d8ab17bcf2ef9846af7da9687ae456116a1e8b4f6f3d88ba224863f4f92bfad1501503620e2ab4
e8fe7d236f34da03bee3491f475bac55c746f3d11ff00294db83e234a5fe3718ab7fa1bcf353ff3b4db
50f6fd16bff6518aac3a279f091ff3b5db81dc0d293a7d37071577e83f3dd77f36c34f6d2a3fe339c55
dfa0fcf5403fc5b156bb9fd17174ff91d8abbf4179eff00ea6e8a9ff6cb8bfeab62ab8687e77efe6c8cff0
0dbb22ffaab8aaefd09e74ffa9a93fee1b0ff00d54c55afd09e75ff00a9ad3fee1b0ffd54c55bfd09e74ff
a9a93fee1b0ff00d54c55dfa13ce95ff94ad3e5fa361ffaa98aadfd07e75a8ff9db176edfa360dffe1f157
7e83f3a529fe2c5af8fe8d83fe6bc558df9a7cb3e64bb92ca1bcb96d7e63eafa2f1e936045b6cbc98c
d713c663e5d3f76791f0c552ef2b7913f376cf52b6bebef3aae97a240c55bcba908d5c4d054150f737
5c5e370053f75c977fdaa62af43f26ffca27a27fcc141ff0026c62a9e62aec55d8abb15762aec55d8ab
b15762aec55d8abb15762aec55d8ab12f327fca63e4bff00988d43fea064c55fffd4f6fe9a7fe76cd78
785be9fff0033f154ff001550be34b2b93ff153ff00c44e2a80f2b1af963453d01b0b534ff9e2b8abc5ff0
033ff0032755bcf24f9c65d1b55b7d327d22e1ec4da5bcb2c1ad5acf67aadadb8918ab53d3b88dd9f
a27eede3e265e6dc554c350fcebd563d575ad2b4a874fbe92dd4c9a5fa720591bd0d4e5b09e2092
cb1fad3aac46458d9adb9bfeed19d7d39245594f93bf316e7cc7e67fd113a462c2e74e8b50d2ee61
8640b3fee6d9e6e4cce5a17469f78268a37e0d1ba349fbce0abd1715762aec55d8abb15762aec55
d8abb15762aec55d8abb15762aec55d8abb15762aec55a26809c558869ba9dde91f9656bacd859f
e91bbb2d212ea1b10fe9198c5007e01f8b50902836eb8ab1aff0095c715fc42e348d396f34db87b05
b2ba8aeb8bcf6fadcd34165731afa4dfbb6317273fb0a760fc1862a87d0bf30752f30799bc9b6b66cd
6da44cb716d7f1cd3a4d717138d22defd7d451128f83d6d9d5979fdae1c197155fff002b9af6de6957
51d061821325d2593477feab4a2c75b874590b836e810979848a017f84716a62aa3e55fcdbd43cf5
73a25943a70d1bf495cc12bc893fd689b3686fe5e1531c7c5d9ec0a9d9bf76fb7c5d15487cc3f99be
671a57e6444679f4d0345baf3179175110881d6dec41b79910c8acb2f17486e79d1818eed53f6715
47f95f57f31df79a7cdb697bad5f258d8f98aeb43d36ea5bab45b78c1d32de6821f4593d491ccb2b3
8237ff0061b62adf9dbf333cc69e4fd0aef4d686c2eb5ff2bdfeb92ceac5648aeed23b278d212c18712
6e1b97207e0c551c9f9d3a81d764d0e4d0ade336b225b5e5d7d798a2cf3eb526891955fab8263f51
1647662a555b8f12dd55509ff003dae6c7558f4dd47404b71712c96d6931bb25669a396eac4151e8
8f81efa08ad91bf6beb50bd3f6315667a37e60437a7cd0355b43a71f2b92d788cccecf0812b2cc9f00
578dd622636466a9e71b2a491b2e2af3cb5f3df9b27d324d1f5cbd9acbcd161e6bd05262b17d51a4

803

d1bcc17b0b47170607e10af3da57ed1f439d796f8aa7df947e64d635bb6b0b8d6eee6965b95d5923
965bb81d6e5ad753961005b2a87530c488398e2bf151c3351b157ace2aec55d8ab13f3153fc61e4
daf5f5efe9ff00485262afffd5f6c6ade509751d5a5d5ecfcc3aa68f2cf1450cf069e6cfd17f40b95622e2
da660df191f0b01ed8aa1bfc13aa7fd4edaffdfa6ffd9062ab64f236a52c6f1379db5fe0ea55a8da6f42
287fe3c31565363670e9d636da7dbd4c16b1241173356e11285153dcd062ab9ad6d5d9d9e08d9a
5a0918aa92dc7a576de9db1569ac6c9c387b6898495e60a29e55a56bb6f5a0c555161852469523
5595c00ee000c42f404f7a62abf15762aec55d8abb15762aec55d8abb15762aec55d8abb15762aec
55d8abb15762aec55a3d0e2a91f92d40f2868684540b1b714ebb7a6315450f2e797c1b72ba55a29
b4805a5a958235f4ad802044945f8500268a3e1c554ad7ca7e56b1bd8752b2d12c2df51b68d61b7
bb8ad6149a38923f49511c2865509f0000fd8f87ece2ab24f27794a648239f41d3e54b5964b9b6592
d617114f3b8924913929e2cec03330dd9be23be2aa6de4af2b88a38ad34bb6b1f4a48a58dad218e
16060e7c47c2b4e3496552a76e32c83f6ce2aab73e50f2a5e5bdb5ade68761716d67035a5a432da
c4f1c56cf40d122b290a8dc56a83e13418aa83791bca1ea4b3c1a2595b5ecbccb5edbdbc515c8696
330bbacaabc83b464a1707971f86b8aa2eefcafe5abfb5b3b2bfd1ecaeed34f430d8c3716f14a9046
50465630ea7882a02903f671572f95bcb48f7522e8f64b25ea3c778e2da20d3248e647590f1ab067
25c83d5be2eb8aa25747d211218d2c2dd52d9512dd442948d63712204db60aeaac29d1806eb8aa
d3a268cd05d5ab69f6c6daf896bd84c285262c492645a51aa4d77c554eefcb7e5ebfb9fae5f693677
3767d2adc4d6f14927fa33168be26527f764929fc84fc38aacd37cafe59d1ae9efb48d16c6c2f64564
92e6d6d6182565760cc0ba282416009dfae2a9b62aec55d8ab12f327fca63e4bff988d43fea064c55
ffd6f68dada79a6ffcd1ab5ccfac5d58687637704761a725b5afa1736e2d61924265921694f295e452
51d69c6831565b8ab16f3bd9f995f48bed47cb5ac5d58ea16567712db585b5bdadc2dcdca233c6ac
278647dd805a232d6be38ab25b7691ede27947195914baf4a311b8fbf1579f79e3f319b42bebaf2e
5bc2d6fa84f6b3ae9fa9abc5371bd5d3eeefd394146a204b47de4e3c9b65565e4eaaa49a57e76c91
e9f651f99f419f49d59e6b1b6b892e67805915d42dc4f04df588cbc71998f3448e4e03d55f4cbee85d
555d13f38b5ad4a1579bca8c7936b53b4b05fdb0863b0d0b526b092476b8311e668afc69c7fcbc55
34d37f3663d5ef068fa768d2dcf9822f5e7bbd3e39d102d8dacf0c2d7114b30895c1f5d5954fa7501b
71f0f3555b4efccb27c97279b75cd3d6cddf579b44b0b2826f5bd698ea8da5dad6464409ea49c7912
38a0f8b15415cf9efcc7a7798e65d42c4416c348b79ce8924f6f48efa5d54d873174a0f24652ae1685
c8d962f54fa78aa1f4afcf2d2358b4b4bcb4d2ae556f7477d6aceda53c6eae7d212fab0db4414facd1
34456408dea2f256f4b89ae2acf7ca9e61b7f3568167afdafa46def03b466de6173115491a3aac802
d6bc6b465574fb0eaaeacb8aa738abb15762aec55d8abb15762aec55d8abb15762aec55d8abb15
762ac6340d422d27c81a7ea97092490596969732c70af394a430f3608bd59a8361df1540c5f9a9e4
fb89214b6b99278e64b594cf0c6658921bf9121b791dd09015e57f4ebd995f951519b154a74afcd28
b59bff29e9fa4ba5ffe959c41acdd0b69ada384cba6dcdfc4aab2484a48c215251bd4a237c455b8e2
aab17e6e797ad751bcd33529e6b89e2d4aeec43dad8ce91dba5a5cdada3099999ebc64bc841916
8ae1f92a515b15435a7e7af9464d120d62fe0bdb5792c9b519ace3b77bb92185526940730061568
e077fe5fb2acdc99032a98db7e6ef972e24bb8dec355b5362d3c374d7564d085b8b5b337f243f111
57f407a800d8f8d71551b9fce4f2d4371059c367a84b7375771d8d9ab5b9852791af20b290c6f2950
c226b9899ffc96f83951b8aae83f35b4b4f35f9a342d44c5169da1dac77967770bfad25c08a536d78
8635dc3c3398e2e3dcc8b8aa22f3f322da1d4974f96d6eb4a58ae6c21b8b8beb62cac6fa6b884461
565529536e4acff001c5c486f881c5542e7f39fc9b6b27a120bd6b9108bc7852d999d2d0da1bd13b6
f4e0610cdd79551938f3f87154379abf34e4f2ff0093aefcd50db41239d42e2db4cb492420cd67a64a
ff005c949da8de8dbdc4b1af8fa49f69b154179a7f33b59d335bbcb5d24d9cba427f855ad2e0c134f2
345e66d42e2ce47a4722f2e0b0ac91855dcb7c58ab29d03cdd2deea1a769d7b22ca356b7bf9ec67
16d359396d32e960955e1999994959108ad3ecbfb62acc315762aec5589f98c03e70f26126844f7e
47bff00a1498abfffd7f6cd8dfeb76de60d5ed2fec6ee7d367bb80e93748216b78eddad210f53cc380
26121355af86d8ab25c558f79c2ff0058b7d1b50b5d02c6eae359b8b3b85d3ee2d843c22ba31b2c4
58caea07c641e8462a9edb89041109b79822890ff00954dff001c5520bef21f94353d5db5ebfd2a29f
5566577b862ff0013a412da862a1b893e8cd244495a98db81f87155a3f2ff00c9e21fab9d2a3688afa
6e1de473247c238bd390b312e9c228d783f24e28a298aa9a7e5c792116f231a2c1e8ea115edbde4
04bb43243aa49eadda18cb15e32bfc6e00fb5f162aa6bf963e435b8b7bbfd07035ddb4d25d4370e6
4793d59d63594b33312c241147ea2b12ae515981618aa3e6f257952e745bff002edc6936f3687a9c
d2dd5f5848a5e19279e5f5ddf8b13c4993f7838d38bfc4b46c55464f20793a648d25d2627114315bc
64972cb1dbdc8bc8e8dcabc9671eaf3af3e7f172c55659fe5df92b4fb1874cb2d1a0834fb73caded93
988e26a30e51af2a2300cc032d18034c553eb0d3ecf4cb7faa5842b05bf392528b5de49dda591c93
52599d99989dcb1c55138abb15762aec55d8abb15762aec55d8abb15762aec55d8abb15762a917
93406f28e8a0d0836505476feec62a9358fe53f91f4b3a78d32c1aca1d3604b48608657589eda1bbf
af451c88490ca93fef13c2acbf619971551d1ff28bca3a0ea5a7ea9a69bd8ee34d68a58a337729864
9a0b796d125963a856710ccd1569f12f1e552a0e2adcbf949e519af2f6f88ba59efee2e2eee38dc37
132de5cda5dca40a6c0c9650103c148fda6c550d0fe4b793ad6ceef4eb5975282c2fec9f4cbbb54bf
9fd292dd8c817921620b46b2b246dfb29c7f910aaa98ea3f961e5ad522be8aedef69a8de9d4ee9e2
ba9207370f6434e928d11521648070741f0fed7dac552ad2bf29f4fe17e9afbbcedfa465bcd16582ea
6325a41f5882ea3e0cc14a49ea5b4464a160dc3fca6c551faa7e52793759b6d36d351827963d2e1
bfb6b765b8922778b55a7d6448d1952e5980704eeb22ac83e31

Consider first the code for the FlexibleRealtimeThread. The constructor creates a private
persistent AIE object called myAie. If the PeriodicParameters associated with the thread include
a deadline miss handler, then no further action is required. If there is no defined handler, a default one
is created. The handler when scheduled will fire myAie and also call schedulePeriodic (to
indicate that the deadline miss has been handled). FlexibleRealtimeThread also declares the
run method necessary for the RealtimeThread class. In this example, the run method has an
infinite loop that simply calls myAie passing itself as a parameter and then waits for the next period.
Note that FlexibleRealtimeThread is an abstract class and therefore a subclass must be created
before the constructor can be called. This subclass (TestFlexible in this example) will implement
the Interruptible interface. Finally, FlexibleRealtimeThread provides a public method to
allow
a
user-defined
handler
to
abort
the
current
cycle.
import
javax.realtime.*;
public
abstract
class
FlexibleRealtimeThread
extends RealtimeThread implements Interruptible {
protected
FlexibleRealtimeThread
(PriorityParameters
pp,
PeriodicParameters rp) {
super
(pp,
rp);
myRelease
=
rp;
myAie
=
new
PersistentAIE();
handler
=
myRelease.getDeadlineMissHandler();
if
(handler
==
null)
{
//
No
handler,
so
create
the
default.
handler
=
new
AsyncEventHandler
(
new PriorityParameters (pp.getPriority() + 1),
null,
null,
null,
null,
null)
{
public
void
handleAsyncEvent()
{
//
Default
handler
actions.
schedulePeriodic();
myAie.fire();
}
};
myRelease.setDeadlineMissHandler (handler);
}
}
public
void
abortThisCycle()
{
myAie.fire();
}
public
final
void
run()
{
//
Run
method
for
the
RealtimeThread
class.
boolean
ok
=
true;
while
(true)
{
// This code is executed each period, it calls the
//
doInterruptible
method
passing
a
reference
to
//
itself.
myAie.doInterruptible
(this);
ok
=
waitForNextPeriod();
}
//
The
loop
does
not
terminate.
}
private
PeriodicParameters
myRelease;
private
AsyncEventHandler
handler;
private
AsynchronouslyInterruptedException
myAie;
}
Note that myAIE is a persistent AIE (see Section 13.5), this is because the real-time thread may not
even reach the call to doInterruptible before it misses its deadline.
A TestFlexible class illustrates how the FlexibleRealtimeThread class is used.
import
javax.realtime.*;
public
class
TestFlexible
extends
FlexibleRealtimeThread
{
public
TestFlexible
(PriorityParameters
pp,
PeriodicParameters rp) {
super
(pp,
rp);
}

805

public

void

run

(AsynchronouslyInterruptedException
aie)
throws AsynchronouslyInterruptedException {
//
Code
to
be
run
each
period,
called
from
//
doInterruptible.
}
public
void
interruptAction
(
AsynchronouslyInterruptedException aie) {
//
Action
to
be
performed
when
interrupted.
}

The DeadlineMissHandler class is given next. It extends the AsynchronousEventHandler


class and overrides the handleAsyncEvent method. A subclass of this class can be declared by the
application if it wants to provide augmented control when the deadline is missed. The default behavior
is simply the same as the default handler provided by FlexibleRealtimeThread. The
DeadlineMissHandler class also provides a method to set the thread to be interrupted.
import
javax.realtime.*;
public
class
DeadlineMissHandler
extends
AsyncEventHandler
{
public
DeadlineMissHandler
(PriorityParameters
pp)
{
super
(pp,
null,
null,
null,
null,
null);
}
public
void
setThread
(FlexibleRealtimeThread
frtt)
{
myThread
=
frtt;
}
public
void
handleAsyncEvent()
{
myThread.abortThisCycle();
myThread.schedulePeriodic();
}
private
FlexibleRealtimeThread
myThread;
}
Finally,
consider
a
public
static

main
method
that
uses
the
above
classes.
void
main
(String
[]
args)
{
PriorityParameters
priParams
=
new
PriorityParameters
(...);
//
If
defining
own
handler
use
//
DeadlineMissHandler
handler
=
//
new
DeadlineMissHandler
(
//
new
PriorityParameters
(
//
priParams.getPriority() + 1));
PeriodicParameters
periodicParams
=
new
PeriodicParameters
(
Clock.getRealtimeClock().getTime(),
//
start
new RelativeTime (10000,0),
// period
new
RelativeTime
(1000,0),
//
cost
new RelativeTime (6000, 0),
// deadline
null,
null);
TestFlexible
ta
=
new
TestFlexible
(
priParams, periodicParams);
//
If
defining
own
handler
use
handler.setThread(ta).
ta.start();

}
Warning Note that it is essential that the deadline miss handler has a higher priority than the realtime thread it is to interrupt. Otherwise, it will not execute until the thread blocks.
To terminate the real-time thread completely, rather than just the current release, it is necessary to
move the main while loop from the FlexibleRealTimeThread run method to inside the
TestFlexible run method.

13.9 Further Examples


At the beginning of this chapter, several motivating examples for ATC were given. Two of these, mode
changes and imprecise computations, have already been illustrated in previous sections. In this
section, examples are given of user interrupts (via POSIX Signals) and error recovery between

threads.
User Interrupts via POSIX signals
As discussed in Section 11.6, the RTSJ provides a class for interfacing with POSIX signals. This
allows the RTSJ programmer to write an event handler that can catch one or more signals. This event
handler can also fire an AIE if required. For example, consider the following class that attaches itself
to the POSIX SIGINT signal and provides a handler. When the handler is executed, it fires an AIE
(passed
as
a
parameter
on
the
class
constructor).
import
javax.realtime.*;
public
class
SigIntHandler
extends
AsyncEventHandler
{
public
SigIntHandler(
AsynchronouslyInterruptedException
aie)
{
super();
myAie
=
aie;
POSIXSignalHandler.addHandler
(
POSIXSignalHandler.SIGINT,
this);
}
public
void
handleAsyncEvent()
{
myAie.fire();
int
res
=
getAndClearPendingFireCount();
//
Throw
away
result.
}
private
AsynchronouslyInterruptedException
myAie;
}
An instance of this class can then be associated within a real-time thread to abort a long-running
computation.
public
void
run()
{
Interruptible
ie
=
new
Interruptible()
{
public
void
run
(
AsynchronouslyInterruptedException
aie)
throws AsynchronouslyInterruptedException {
//
Complex
potentially
non-terminating
//
algorithm.
}
public
void
interruptAction
(
AsynchronouslyInterruptedException
aie)
{
System.out.println
("Algorithm
failed
to
terminate.");
}
};
AsynchronouslyInterruptedException
aie
=
new
AsynchronouslyInterruptedException();
AsyncEventHandler
handler
=
new
SigIntHandler
(aie);
PriorityScheduler
ps
=
PriorityScheduler.instance();
handler.setSchedulingParameters
(
new PriorityParameters (ps.getMaxPriority()));
aie.doInterruptible
(ie);
}
In the above run method, an Interruptible is created, which undertakes a complex, potentially
nonterminating algorithm. An AIE is created and passed as a parameter to the SIGINT signal handler.
The handler is set to run at the highest real-time priority. The Interruptible is then passed as a
parameter to the AIE. The user sitting at a terminal can now send the appropriate signal to the
program. This will result in the handler firing the AIE and, thereby, terminating the complex algorithm.
Error handling between several threads
Where several real-time threads are working together on a problem, a situation may arise where one
or more of them detects an error condition that must be handled by all of them. Alternatively, an event
in the environment might mean that they all have to stop what they are doing immediately and perform
an alternative action. Both these scenarios can be programmed using the RTSJ ATC and eventhandling facilities.

807

Consider the following system as an example of where an event in the environment requires more
than one real-time thread to take immediate action. Three tugboats are towing a disabled tanker
carrying toxic chemicals. Each tugboat is connected to the tanker via a steel cable. A supervisor ship
has an on-board computer that monitors the stress on the steel cables and sends control signals to
the on-board computers on the three tugboats (via wireless communication devices). In the event of
one of the cables being in danger of breaking, it is necessary to instruct all tugboats to immediately
release their cables.
The control software on the supervisor ship executes on a single-processor embedded computer. An
interrupt is generated when the stress on one (or more) of the cables is near breaking point. The realtime JVM associates the string "BreakingLimit" with this interrupt. The control software contains the
following class for controlling the tugboats. The class implements the Interruptible interface as
the
control
algorithm
may
need
to
be
stopped
at
any
point
in
time.
import
javax.realtime.*;
public
class
TugControl
implements
Interruptible
{
public
TugControl
(int
tid)
{
//
tid
is
a
Tug
identifier
}
private
void
computeAndSendTugCableTension()
throws
AsynchronouslyInterruptedException
{
//
Computationally
complex
periodic
calculations
//
send
communication
to
the
appropriate
tug's
//
on-board
computer.
}
private
void
sendEmergencyRelease()
{
//
Send
a
emergency
command
to
the
Tug
to
release
//
the
cable.
}
public
void
run
(
AsynchronouslyInterruptedException
aie)
throws
AsynchronouslyInterruptedException
{
computeAndSendTugCableTension();
}
public
void
interruptAction
(
AsynchronouslyInterruptedException
aie)
{
sendEmergencyRelease();
}
}
Each tugboat is represented in the control software by a real-time thread. Each thread simply
executes its associated tug control software as part of a doInterruptible.
import
javax.realtime.*;
public
class
TugThread
extends
RealtimeThread
{
public
TugThread
(TugControl
tc,
AsynchronouslyInterruptedException aie) {
super();
myTug
=
tc;
myAIE
=
aie;
}
public
void
run()
{
boolean
OK;
OK
=
myAIE.doInterruptible
(myTug);
//
Throw
away
result.
}
private
TugControl
myTug;
private
AsynchronouslyInterruptedException
myAIE;
}
An asynchronous event handler handles the interrupt and sends an AIE to each tug task.
import
javax.realtime.*;
public
class
EmergencyEventHandler
extends
AsyncEventHandler
{
AsynchronouslyInterruptedException
ael,
ae2,
ae3;
public
EmergencyEventHandler
(
AsynchronouslyInterruptedException aie1,
AsynchronouslyInterruptedException aie2,

public

AsynchronouslyInterruptedException aie3,
AsyncEvent
ae)
{
super();
ael
=
aie1;
ae2
=
aie2;
ae3
=
aie3;
ae.setHandler
(this);
}
void
handleAsyncEvent()
{
ae1.
fire();
ae2.
fire();
ae3.
fire();
}

The relationship between the classes are illustrated in Figure 13.6.


010009000003be0401000000c170000000001610000026060f002220574d464301000000000001
008acb000000000a00000000200000d8050100d8250100010000006c0000000000000000000000
d2010000d600000000000000000000006a4000009a1d000020454d4600000100d82501000c0000
00010000000000000000000000000000000005000020030000c40100001a010000000000000000
000000000000e3e306006e4e0400460000002c00000020000000454d462b014001001c00000010
0000000210c0db01000000600000006000000046000000bc420000b0420000454d462b22400400
0c000000000000001e4009000c00000000000000244001000c0000000000000030400200100000
00040000000000803f214007000c000000000000000840000508420000fc4100000210c0db01000
0000000000000000000000000000000000001000000ffd8ffe000104a4649460001020100480048
0000ffed0a4a50686f746f73686f7020332e30003842494d03ed0000000000100048000000010001
00480000000100013842494d040d000000000004000000783842494d03f3000000000008000000
00000000003842494d040a00000000000100003842494d271000000000000a000100000000000
000013842494d03f5000000000048002f66660001006c66660006000000000001002f6666000100
a1999a0006000000000001003200000001005a00000006000000000001003500000001002d000
000060000000000013842494d03f80000000000700000ffffffffffffffffffffffffffffffffffffffffffff03e80000000
0ffffffffffffffffffffffffffffffffffffffffffff03e800000000ffffffffffffffffffffffffffffffffffffffffffff03e800000000ffffffffffffffffff
ffffffffffffffffffffffffff03e800003842494d040800000000001000000001000002400000024000000000
3842494d0414000000000004000000023842494d040c0000000008b90000000100000070000000
3400000150000044400000089d00180001ffd8ffe000104a46494600010201004800480000ffee00
0e41646f626500648000000001ffdb0084000c08080809080c09090c110b0a0b11150f0c0c0f1518
131315131318110c0c0c0c0c0c110c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0
c0c010d0b0b0d0e0d100e0e10140e0e0e14140e0e0e0e14110c0c0c0c0c11110c0c0c0c0c0c110c
0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0cffc000110800340070030122000
21101031101ffdd00040007ffc4013f0000010501010101010100000000000000030001020405060
708090a0b0100010501010101010100000000000000010002030405060708090a0b1000010401
030204020507060805030c33010002110304211231054151611322718132061491a1b142232415
52c16233347282d14307259253f0e1f163733516a2b283264493546445c2a3743617d255e265f2b
384c3d375e3f3462794a485b495c4d4e4f4a5b5c5d5e5f55666768696a6b6c6d6e6f637475767778
797a7b7c7d7e7f7110002020102040403040506070706053501000211032131120441516171221
30532819114a1b14223c152d1f0332462e1728292435315637334f1250616a2b283072635c2d244
9354a317644555367465e2f2b384c3d375e3f34694a485b495c4d4e4f4a5b5c5d5e5f55666768696
a6b6c6d6e6f62737475767778797a7b7c7ffda000c03010002110311003f00f55517bd8c6973dc1a
d1c92606ba2c8bfabd84bdf8d9b802900863ac73899867a45fb1cd6ecdefff00cf6a587d50663b67da
71afdc5afadb413bb687b19b9cc793f9db9253a5f6ac6ff4acff003825f6ac6ff4acff003822a4929ab7f
50c6a9addb631efb1edaeb66e03739c61adfce4afcab31d9ea5edad8c90ddc5ee804e8ddc7d1f6a3
d95b6c616389024191a1041dcdfc8a0ec7de21ef7387838348fc58929aa7ab50d04badc66b410ddc
6e86ee203b60b0d7b1cff007b3d8a78dd499971f657e3df2dde0d576f1b7f7bd95b940f4fa19914d6c
86d5b6c71af656413bab2d74babdcdd8e7bd58af0ebabf9a3e9e91ec6b1ba787b6b4948f305d6505
974535b9cd0eb6ab4b5edf7360b5c6b6fe72a55f4cc66db63ddd4f25e1ee25ac39061a0b5acf4f9fcd
735f67fd716a7a2491bac7b8020c188d35fcd6845494e4e063bdde9e563645b9353658c75b90e2d
7866ea77d958ab66edca47afe18306ec704004836b81f74edf69a7f90e57fd0209db63da0926011df
f00acd29becadfde3a71ed67fe93494d2b3aee2d4f756fb280e646e1ea38c6eddb77453f9db15bf5b
28d7ea36ba9cd237022c76a227fd0a76e231a0b5ae2019246d6724cbbf3148d04820daf83a1fa3ff0
091494fffd0f46bf29b41ac58dbdfea30b8beba83d8d82d6ec7b9acf6eef51ee67f22bb7feb837e6d50
d269cb2019d28320b483c359bbddb777ee2b391bff0067586bb7ecef1512dbf6efd840fe73d3f6efd9
fb8b32cea1b779fdb548747b6b35b3431bbdcdddeafe76e494dbfda6d92d15664eb134103413f4dd

809

5ec6ff00695866535b4bf21c5fe90a5b7439bee0087b9dec68ddbb6b7e82a5d2b29d916d73d52bcc
9acd86a631ad2403b1cfdcd3f41963b67d057dd539f985e2c7b36d6016376ed32e77b9db9aef7336
fb5252d4751c1c8adf6d5735d5d705ef3a001df47576d52fb7617fdc8abfcf6ff7a6be9b4b3daf73cb5c
c76d3b403b5cd7f3b3f9295c6eb6a7d46a7b43da5bb9af0d70911b9ae6b9ae6b92535f2eec3c87b6
bfb536a963ff004b5bda1cd21d539b0ef737f354f16fc4a2af4df9c320c926cb5ecdda998fd18adbb7fb
2abbf0331ef6b9d9192055fcc863dad2341fcffbb664fd1ff0fea23554e632c6d8fb2eb832618e35341
99f73bd2d9bbe924a6cb73311ee0d65f5b9ce301a1c0927ef4655ec37da033d32cf73497ee6e8010
ffe57eea7b68b5f539adb5c1c440981f8d61967f98f494bbb3311ae2c75f5b5cdd0b4b8020fc2537db
b0bfd3d7fe7b7fbd02ca321f8eec69b1b2e2ef5ea7b5aff00a7eae9ed1b777d07fb50bec39660bafc9
73dbf45fbeb6c691f418c6d4efdef7d6929b9f6ec289f5eb8f1dedfef4c73f04739150fedb7fbd541859
7a137e4bac68da2cf52b063ceb6d7e87f6bd244a6acda8d85c6dc836001a2c7d6032274afd2633f7
bf3f7bd253fffd1f4a3856c9db997b5b3a340a8803f746ea5cef6a0646365b1cc68c9b4d26373c8a64
3b7d4da9adafecffcab1dbffc1ec62d241cb205327401f5927c007b12522fb15dff00736ffba9ff00de74
5c7c77525ce75d65ee7409b36e804f1e932afde4ff0069c6ff004acfbc215b9ac63b735ec75618e2ef
70ddb8167a4d6ebf9dfa4494da4953b7a9e2d369a6eba8aac040d96581a648dd0dded1bbda98f54
c36900e46382e21ad06e6c971e18dd3e924a6ea4a8b7ac60b8170c8c7dad925c6d0043407b9c1c
5bee6b58eddb947f6d74f169a8e563b6c1f9aeb434f2e6fb7737ddf41df45253a092a58fd571326966
4516d56d2f0d3b98f921af77a6c7b9ae6b76fbc23bb2f198d2e36348689869dc74fdd633739dfd949
499254dfd4b1eb0d3659556db1ef656e7bc00e35eef52342df6ec7289ead861ed67ad4b9cf9236bf7
0000f50b9ee6b36d6cd9eedcf494de49679eb7d3c3c57f68a0b8cfd1b37011b376f73585b5ff3d57d
352abab61dc5ada2ea6d36026bd96487c02e3e8bb6edb76ec76ed8929fffd2f55497caa924a7e916
ff00ce6fb6593e9fd9375be94edddb76d9f67dd1ff000be8ff00d6ff009d57eafb47d83fca1b7d6d8ef5b
d298eff0043f3be82f97d2494fd3b6fa1bbf4bf4a7f3bd199d3f790dbf62dcfd91bb78f523d29f5348ffae
2f9992494fd38df43d31b67d2811fcd44469f4bf9099ff6791bf9fcd9f43893c4ff00297cc8924a7e9daf
d1f6edddb3737e8fa7133ecdde8fbbf9c566ff0047d0b3d78f476bbd4ddc6d8f7eefecaf9652494fd3c
ef4b63a37fa3b8ffa3db33eedbea7bbe92667a7ecf4f7703d38f47e8c7b36ff00657cc4924a7e9dfd1c
1fa511aff31c69ff0098a61e9c1dbbf83f47d19e3dd1b7f92be6349253ffd9003842494d04060000000
000070005000000010100ffee000e41646f626500644000000001ffdb00840004030303030304030
3040604030406070504040507080606070606080a0809090909080a0a0c0c0c0c0c0a0c0c0c0c0
c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c010405050807080f0a0a0f140e0e0e14140e0e0e0e14110
c0c0c0c0c11110c0c0c0c0c0c110c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c
0cffc000110800a1015e03011100021101031101ffdd0004002cffc401a2000000070101010101000
0000000000000040503020601000708090a0b0100020203010101010100000000000000010002
030405060708090a0b10000201030302040206070304020602730102031104000521123141510
61361227181143291a10715b14223c152d1e1331662f0247282f12543345392a2b26373c2354427
93a3b33617546474c3d2e2082683090a181984944546a4b456d355281af2e3f3c4d4e4f46575859
5a5b5c5d5e5f566768696a6b6c6d6e6f637475767778797a7b7c7d7e7f738485868788898a8b8c8
d8e8f82939495969798999a9b9c9d9e9f92a3a4a5a6a7a8a9aaabacadaeafa11000202010203050
5040506040803036d0100021103042112314105511361220671819132a1b1f014c1d1e12342155
26272f1332434438216925325a263b2c20773d235e2448317549308090a18192636451a2764745
537f2a3b3c32829d3e3f38494a4b4c4d4e4f465758595a5b5c5d5e5f5465666768696a6b6c6d6e6f
6475767778797a7b7c7d7e7f738485868788898a8b8c8d8e8f839495969798999a9b9c9d9e9f92a
3a4a5a6a7a8a9aaabacadaeafaffda000c03010002110311003f00f7f62aec55d8abb15762aec55d8
abb15762aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abc
a7f36bcfd71e47d461b8b2fa8b5ec3e5cf316ad6cb7af203eb69896b2469c12540c921621aabcfe1fd
db2fc55558b79a3f3a7ccbe5b83ccb2c379a35fc9a3cdac5a59a08dd7d4934ed0135a899f8dcb13f1
b181d17aafc5c95f6c5505a8fe687985b59d3f5477b7d463d2db579f459b4c774b6d6123f2f0be688
42934bea3413b184952db81c78c9cd71547ea3f9d3aedbe9175ab586b5e5cbfb24d235ed7b4dbbb
613cb15d43a38b3682225a58807633cb1cde9f3e3c578fc61d315579bf3a35b8bcc73f95beb3a3c3
3c77f716765aadd89a3b4bb9a25d3e68ecd4446522e1e2bb9782825a4f4c18d1a920c552ed53f3a
3cc66d2774d4f4eb24926b875b88610ef6969a679ae0d1a579449330612db485dd88411b2b32edf
6557a77913ce97be67d4f5dd3afa3881d36406de7b4e32dacb6f24f3c71ba4caedf1522a49148b1c
b1c81be1689e272ab39c55d8abb15762aec55d8abb15762aec55d8abffd0f7f62aec55d8abb15762
aec55d8abb15762aec55d8abb15762aec55a660aa58f402a7e8c5587d9f9cf5fd42d20bfb3f266a52
5a5d46934127d6b4c5e51c83929a1bb04541e8715563e67f3476f246a3ff497a5ff00d9662aeff13f9
9ff00ea49d4bfe92f4bff00b2cc55c7ccfe68a6de48d489ff0098bd2ffecb31577f89fccfff00524ea5ff00
497a5ffd9662aeff0013f99ffea49d4bfe92f4bffb2cc55dfe27f33ffd493a97fd25e97ff6598abbfc4fe67ff
a92352ffa4bd2ff00ecb31577f89fcd1ff5246a3ff497a5ff00d9662aeff13f9a3fea48d47fe92f4bff00b2c
c55dfe27f347fd491a8ff00d25e97ff006598abbfc4fe68ff00a92352ff00a4bd2ffecb31544e8daebeb5
a85e69ba9e873e95a859c304e63bb6b59f9c372d2a2956b796603789aa1a98aa2fcc3e58d17cd1a
1ea3e5dd5edb9e95aadbc9677b1c4c617782752922878c865e4a48aa9ae2a8db3d3ed6c2d6dace
04fdd5a46b1405fe270aa29f68ee49a6e7be2aacd6f6ed40d1210bb2d541a0f6c552bf316ad6be5ad
1ee7597b36ba1034405b5b88c4b2492c8b0a053232283c9c6ecc298aa50baf79841ff9412f5796c4f
d6b4be87ad69758aae4f31f99d7915f23df2163c9a977a66e7c4d2eb155c3ccde6aad0f92af80f1fae
69bff006538ab67cc9e69de9e4cbe3e1fe99a77fd94e2ad1f32f9ab6a792ef4d7a9faee9db7fd3c62a

b8798fcd27fe98dbd1f3bcd3bf85c1c55b3e62f348e9e4fbb3ff47961ff0055f155a7cc9e6bede4cbb3d
3fe3f74f1d7fe7bf6c55dfe23f35edff3a6dd7fd26d853fe4f62aeff11f9b3fea4dbaff00a4eb0ffaad8aacff
0012f9bffea49baffa4fd3ff00eab62aa13f9c3cd36f2db432f92af03ddca608697da79abac6f2effbfd87
18db157fffd1f7f62aec55d8abb15762a906b5e6b8347d462d2934dbfd4efa584dc98f4f8565e1107e
1572ee8054f4c5507fe369ff00ea56d77fe91a1ffaaf8abbfc6d3ffd4adaeffd2343ff0055f1577f8da7ff0
0a95b5dff00a4687feabe2aeff1b4ff00f52b6bbff48d0ffd57c55dfe369ffea56d77fe91a1ff00aaf8abbfc
6d3ff00d4adaeff00d2343ff55f1577f8da7ffa95b5dffa4687feabe2ad7f8da7ff00a95b5dff00a4687fea
be2ac6fcc1f9a97fa46a1676bfe17d5aea0d42902e9f15b47fa495998299d105c3078501ac9511fa6
37e6df671566de501c7ca7a10ad69a7da6e763fdca62a9d62ac43f32fcc5af7947c9fad79af458ece5
5d0f4dbfd4ee21bd129f50d9dbb4b1c69e9b2d3915a3313f08e8ad8aa59a67e6508b537d035f80c9
ab03a44ab2584256dd6dbcc0658ad59fd4959aa26b79524e35a0f4da9f13715526d6bf3cb4e0fa6e
9de5cd3e69f54d6b54d374ad36e6f544762d1eaa6e785d728dd999156d27fdd1f4e52c815b8720d8
ab23bff00385ff9427163e6829ab5e5dc725c6930e8f6cf1dccb6d6512bde4924534cc8a22e4b4a49
56e6aaaacfb62a91ea9f9f7e51b1d2aff59b1b3d4352d3ad2cae6fad2f208912daf3eaba726abe9c32
49229e4f6d20914b2aa7da5e5cfe1c5534b6fcdad2ae2e9f4e3a36ab16a692dbd97d59e18807d42e
ed23be4b5493d6e0d20824323372f4d5637abfd9e4aabf957cfe3cd9e679acb4e453a09d1ed75381
e4468eed2ea4bcbbb49e1954b100c6d6dc480366e5f136d8ab39c55d8abb1560d7baebe91e7dd4
635d2aff005112e95a712d610a4a91d2e2f47c65a44a13db15477f8da5ad3fc2faefcfeab153fe4f62a
eff001b4dff0052bebbff0048b17fd57c55dfe379a9ff0028b6bbff0048b0ff00d57c55e79e7bfcc7beb8
66f2acde5ed44c7a85d69e63b848551ec63fae424bdea899c2c648a2c808e4c78fa7fb58abdbb157
62af31fcc8f3eeabe49f33e992c7cae3408fcbfe62d7352d3916312ceda1a5ac91ac72b0aa1226707
b1f87a62a80d7bf3b1fcbf7f247a8e90b058e972eaa9aeb9b8f52448f4dd2edb5446b7a22ab174ba4
56e6502306f888f8b154d2f3f33f58b39a5b57f2b48b736f6ba9ea33092f6245367a51b62648e88cc7
d55b9531abac67e16e545e2ccaaa587e67de5c5c476d79a18b49a4fd0b22afd7165fdc798259e185
b6887c6860aba7837c2fb6eaa4d63f9cfa8ea4fe588a2f2f0b47f3249a5cb099aec4a8b65a98bae44
98e3da58cdb7d83f0b2bf2e7f0ba85527d07f37f5a97cc26696dee2f3cad269fa2fad04ad07d6ed2e7
54d6eff0049330f4605f5816862e4bf0718d4b2867a865593f927f31f50d4edf47d2ee6ce6d5350296
cbae6a4a61816ddaf5667864642235653e92a9f4fe2e4e38a3717e2abd3f15762a946b1ff001d0f2fff
00cc7c9ff501778abfffd2f7f62aec55d8abb156832b6ea411d36dfa62ac6801ff002b0c9eff00a140ff0
0a7a38ab26c55d8abb15762aec55d8abb15762a879ad20266b84853eb72446233050246515214b
75a027a62ac3bcb3e6dd2f4ff002e691a7dddb6a91ddda595bdbdc46749d449592289518545b906
847507154d7fc73a1ffbe753ff00b84ea5ff0064f8aa55e63d6bca5e6dd0351f2deaf06aefa4ead6f259
df471699aa42ef6f32949139adb865e4a4a9237a62a91dd69bf97975a8dbeb26df5c5d52da0b0b75
9d6cb5955906912bcd66d32244ab2189e590fc5f6b9b06ae2a90e85e5ef2fc7a5cda5f9bae754d5e
dccd0de4090e93abc420d42d6633477b6eff0057f5619439a808edc7a72618aa6d7d3fe595fea7a7
69faaddeb575e6bb486e2e6c669adb541a91b3982dbdcf155817f72e1963938a71e5c5b6938b62a
a775e57fca8bcb4974e9b4cd63f45c8274fa8269fab476e91dce9cba4ba22a4038afd55446a07d9fb
43e3f8b15458d33f2f5629d1a2d7e4b8b8bcb6d4d6f1acb576b88afacadd6d619a37fabfc2c22408df
b2ebf6d5b935554c34493c89e5fd4db54d2ad3578ae9ad134f60da6eaae8618e796e6a435b9ab99
6791d9fed31735c55917f8e744ff7cea7ff00709d4bfec9f1577f8e744ff7cea7ff00709d4bfec9f1577f8
e344ff7cea7ff00709d4bfec9f1543e81789aaf9af58d52d6dee63b2363616cb35d5adc5a1696296ed
d9545c2465b88916a40fdac559662aec55d8ab11fcc0b103ca9a8b5858b4d70f7167733c56909926
97d1bb81ddb8460b3b2a257a16a2e2a8aff001c689fef9d4ffee13a97fd93e2aeff001c689407d0d4f7
ff00b54ea3ff0064f8aa45ae49f971e65b94bdd7f41b9d46ea3b79ac925b9d17519185add0e33442b
6ff006241b3af47fdae98aa8fa3f9605c48fe5b9a4904cf725a4d0efe42d34b6c2cdddb9db1e45a002
26af54017f6462aa76b63f955656f0d9da7966682dadedae34f8628f44d41556d2fa9ebc5b5bfd8928
398ef41fca31556907e5bc9359dc8f2fce6f74e822b4d36e24d0afe46b78addc490aa72b6d846e032
6ff0fecd2b8aa51e54d0ff002efcb7e56b0f2c4fa65eea8964d0ca6f2e342bf5964b8b562d0cad4b7d9
d2a68569b963fb4d8aa71687f2daca7b4b9b3f2edcc171628d0da4b1e87a82b468ced29008b6e81
ddd96bf659d8aeec7156f4f5fcb5d2aeacaf74df2d4f6d79a640d6b61711e857c2486067690c68df56
a85e4cc40edc9a9f68e2ac8079db473b7d5b54a93415d2751ffb27c55a3e78d1c6ff0055d5683c348
d44f5ff00a37c552cd4bce3a6cf7ba3c91596acc96d78f2ce4691a8fc286d2e2304ff00a3ff0033a8fa7
157ffd3f69fe606b3ab685a35b5ee970dc49035f5ac3aacf65035ddcdb69f2bf19a78e1459198a0a56
88fc56afc0f1c55e7cfe66fcd1b6d58da29b9bb305d698964d369c2d6defb469e156d42f642158c53c
0c5c88b927f771a7a4debe2a90db79a7f33aeaebca0da95e6aeba78bad0aefcc1710e96d01417fa4
5fb5d4322a5bef125da5b725e25a267e32371e8aa3f4cf35fe6d3f96746bab87bd97cc3a8e8b63a85
ac72e98b14536b6f370bcb0b855854dba468a0af328dfbc91fd461171c5531f2beb5e60d2b54d334
7d32c2ed746bbd735d37b02dacb03c6971acdcbc53f29e1e0f0988f2655922754749d3d55aa62af4
256afe62baf868a87efbb6fe98ab28c55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8
abcf6efc9f0cfe7e835896e6baf9866bab5d48463d482da1b8b755b44049a44d1975900239b48f26c
dc78aaf42c55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb15
762aec55d8abb157ffd4f5adefe74f97ac341b9f354ba6ea6fe56b68adeeceb296e3eaad69733b5b7
aaacccb5f4d94348a3e3589d24a539715531bff00ccfd2b4d7ba379a7df0b5b0668751bb8e34920b

811

6b95b68ee8432babf10584a91a3578b4adc7bf2c554354fcd5b1d09eee0d6f44d4acae6ce17b968d
96ddfd4823bb82cfd488acc432b35c232d78fc2affb4b42aa5527e6fd9da5c5bdeeb505ce99641fcc5
6e6d5161b98e66d03518b4fe666e68c8cf230f4d02f16f53e375e152aa2f59fce3d3345b9bdd3a6d1
afe6d5b4d17cf7f691fd5c7a71699696f7d2b87795430682e51a3e3f69b921e34c553f85d64fcc3925
5fb2fa1c2c2a3b1ba908c559562aec55d8abb15762aec55d8abb15762aec55d8abb15762aec5523
9bfe531b3ff00b665d7fd445be2a9e62aec55d8abb15762aec55d8abb15762aec55d8abb15762aec
55d8abb15762aec55d8abb15762aec55d8abfffd5f61a793bf2bb4696e2d7d3b3b5f52e24bb9ec26b
b6f44493a386516f24a51233eab3fa4a822e6dea84e746c550169e46fc9ab159d624b178aeec534a
ba8a7d4249e29ad6388408244967657711011099819bd30139f1c55bbdf247e4eea56563637e6d2
e2db4e8de0b7326a93191a391d24659a4fac7398738d1ff007ccf4645618aab4be53fca39ef64bd99
ac659a5fd21ea44fa833c07f4c956bd061698c7499903b0e3f6c735a36f8aacbdf287e52ea100b6bc
b9b7907a3796cf29d56613c916a514705c89251702490bc71469c9d999511550ae2aad65ad797e
dff0030668a3d52d7ea90e83690c4ed751b9256ea7142ece4920015a9ae2acb4f98fcbc054ead640
78fd662ff009ab1577f88fcbc771ab595075ff498bb7fb2c55c7cc9e5d1d757b215ff009798bfe6ac55c
3cc9e5e3b8d5ac88f1facc5dbfd962aab6face8f7930b7b4d42da7b8604ac514d1bb9037242a9276c
551d8abb15762aec55d8abb15762aec55d8aa452ff00ca6567ff006ccbaffa88b7c5588f973f366dee
9aef4bd72d2e175bb59aff00d336d6e56dae2d2cf58934a5923669180e2c23f58c8c8abc8bff0077d
154e7cb7f99de55f366a36da668b2cd2dcdd5945a9c61e3f487d5a70fc1c0620b0ac6cacc81915fe0
66e4cb8ab32c55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8ab
b15762aec55fffd6f6de85676b35eebef3411c8ffa4dbe274563fef35bf723154e8d869fb06b687fc906
35fc36c55dfa3ec294faac34ff008c6bfd31577e8fb0ff0096587fe45aff004c556b5969a8579dbc0a58f
14aa2024f80db155ff50b1ff9668bfe45aff4c55c6c2c4ec6d62a7fc635fe98ab858580e96b08ff009e6
bfd31569ac74f552cd6d0855dc9288001e3d31572d8e9eca0a5bc25185410884107e8c5526d62de
da1d6fcb2d1c491b1bd9c02aa01ff782e76a818ab22c55d8abb15762aec55d8abb15762aec552394
9ff18da0edfa32ebfea22df1563973f939e4dbb952e26faf0b988caf04f1decd1c91c93ea4356675646
0437d64071e03e0fb1b62a8ed03f2c7ca9e5c9f4eb8b08ae657d1da67d285ddd4d75f556b88da293
d232b3150c8dc596bc4fda2390e58ab31c55d8abb15762aec55d8abb15762aec55d8abb15762aec
55d8abb15762aec55d8abb15762aec55ffd7f71f97c0175af53bea4c4ffd235be2af30fcd797ce9a86a
52eb5e51b39fd5fcbb7b6d560478ee55b519e4f8ae6dad12385c5c7a96864b51f1718e69ebd16100
00026060f002220574d464301000000000001000000000000000a00000000200000d8e50000d82
5010052b8aaebdf347e60dedc79aae34c7bbb5d3aced3f4b68735dd98b1402d4dbcad633addc237
9d44aa93a48d45793d54864823e6aacd4fcc3f99105fd95e2c9a9451dc5b695a836976fa78bbb746
bed6025c5bbce96ec4986c9e920571c78fad8aa5d7d3f9abccefe5cb8d4ff4eda5dd87982d5353b77
d2d112c2e2086fd669ed6610bfa903ac9122c94962e3c1b9fa8eeb8ab7a6f9a3f352eed53522faaba
da43e5e1ab594da58b56105c803579e056b6579678c2f211213c393718dfe05c5548799bf3822bd
67ba3a81b180c53e9a22d3030bcb47f3135ba1b90b033248da710f2c6a63745fdf1446a8c555a4f3
4fe6f5b3d8ea1736f7de8591b63e72b1834ff00585bccbabdba4ab61c62325cc4f64d331f4bd56089
1c8ac2562b8ab63cc1f98da8e9434ed674ed42e6daf74ad5e2bf865b178275917f48081caac05255
78d20431ab472abb42cab32ccfc554ff00c99379ca2d63cbba135cca9e5f9b43d375378a58a38e5b
36b2b7faadc59488c82406692486552ff12fa570bf0fc38ab3ad7d8aeb5e56a77d42607e5fa3ee8ff0
c559062af24f2c7e68ea71c12587982d7eb176d3eaeda7df99a2884f0586beda52a3a2a2f1755961
e217d4926a3714f528acaa73e5afcd9d2bccda9689a6c167359beb9686f2d5ef09883fa7eb096288
95e2f24461fde47c96508eb2fa7e9f260abd0b154a4f9a7cb009075ab0046c41ba87affc162ad7f8ab
caff00f57bb0ff00a4a87fe6bc55dfe2af2c7fd5eec3fe92a1ff009ab1577f8abcafd3f4dd87fd2543ff003
5e2ad9f34f960120eb56008d883750f5ff82c552397ccfe5aff0017da49fa66c380d36e94b7d6a1a54
cf6e69f6f154eff00c55e57ff00abdd87fd2543ff0035e2aeff0015795ffeaf761ff4950ffcd78abbfc55e57
ffabdd87fd2543ff35e2aeff15795ff00eaf761ff004950ff00cd78abbfc55e57ff00abdd87fd2543ff0035e
2aeff0015795ffeaf761ff4950ffcd78aa32c754d33530eda6de4178b1902436f2a4a149e80f02695c5
5178abb15762aa771716f690bdc5d4a905bc639492cac11154772cd40062a967f8abcaff00f57bb0ff
00a4a87fe6bc55dfe2bf2b7fd5f34fff00a4b87fe6bc55dfe2bf2b52bfa6f4fa7fcc543ff35e2aeff15f95bf
eaf9a7ff00d25c3ff35e2ad7f8b3cabbff00b9cd3f6ebfe970ff00cd78ab7fe2bf2bff00d5eec3fe92a1ff0
09af156bfc59e56ff00abe69fe3fef5c3ff0035e2ae3e6df2a8ad75dd3c5054ff00a5c1d3c7ede2ad7f8
bfca75a7e9ed3abd69f5b83a7fc1e2ad1f38794856bafe9c29d7fd320ff009af1568f9cfc9ebf6bcc1a6
8edbde4037ff83c55a1e74f271ad3cc3a61a6e7fd36df61ff00078abfffd0f71797cd6eb5ff006d4987fd
3b5be2a9e62a936bf75e571f50d2bcccf667f49dca47a759df046171770fef9162492a1a45e1ea003
e21c797ece2a9c160b4aed534df6eb8ab78abb156890a0b12028dc93b0c55bc5507a6eaba76b16e
f75a5dca5d5bc734d6b24911a813dac8d0ca87dd1d595bdc62abadf4cd3ad2eeeefed6d2182f6fd91
efae638d5259da25e0864600162aa38af2e831548fcd5736d65a9796aeef678edad20be9e49a799c
471a28d3aeaa59988007cf154df4ad62c75ab4faf5833b5a3332c52c91bc4240bfb68240a590fecb5
38b755db1549e4fcbef224cbc26d06c644a4aa15e256005c5cade494af4e53aacc7fe2d1cfed62a89
d33c9fe51d1658a7d2748b3b29202cf0982248c46efcc332802818891c721bf1665e87154deedd7e
a93fc42be9bd37ff24e2ac7bcada0684fe58d159f4cb4766b0b52cc6de3a92615a9355ef8aa6dfe1ed
03fead567ff0048f17fcd38abbfc3da07fd5aacff00e91e2ff9a71560bad79afcbba26b91e8327912f2e
aea74bb9ed24b7b4d3b84f6fa71845c4a824b846e2beba50150cff17056c559396fcbff00464ba274
7fabc6b14b2cc7eabc152e072898b7402402a87f6bf6715621ad79e7ca1a46b9a76856fe4db8d5df

59f5ff00435de9b6da74b6d7a2ced85d4e61679d0b04434a9039bd513962a9a796fcd1f96de64b3b
cba5b6d3f4d9ec2eae6cafac7505b38aea17b5ba7b3e5222b37157913f7649f8aa3f6b6c553b88f90
2605a13a3c8ab08ba664faab016e69496a3f60f25f8becee3c7154b3cc9ad7907cb7a7d96a335858
de45a85d5a5a5b476a968d23fd7aea3b459143b2f24579179f0e4d4e8ad8ab26ff0f681ff0056ab3ff
a478bfe69c55dfe1ed03fead567ff0048f17fcd38abbfc3da07fd5aacff00e91e2ff9a71549f48b5b4b2f
3b6b56f656d15b45fa374d76586358c3319af454f1001d862acab15762a94f98b5bff0fe9eb7e2ce6d
41da782dd2d2d4a7acc679163aa89191495af2e3cbe2a5177c558cf9cf58d2bcc1e46bd9b4f996e2
1173650dc42e85648dfebb0728e68650ac8d43ba3a834c55957f87b40ffab559ff00d23c5ff34e2ac5
fce1a9797bca775a05a9f2fd95cc9afdec9a7c0f20b7b68a2922b49ef7948ee87e1296ee36fdae3f42
a86f2ef9b7f2db5fd0742d725b4b2d27fc40aa6c6c75186086e0bbc86155a50821dd78c4e0f09aabe
9b3735c554f57f357922dad6d2ebcbfa4d97990dd5e0d3843a78b62e2592da5b88a9c8716127a5c
51b9713cb972e38aa5b6be73d3a6bbd4adae7c9b63671e91aac1a1ea7753dcd9a4315d5c416d70
9f13462a196e9634a7c4f3feec0f895b15648de62fcaa499eddaf3461346e6374a4150eb3fd5581dbf
666fddbff23fc2d4ae2a86f30f987ca1a4d8ea971a569761ad5d6890cb77aad95b9b64920b6b78a59
19cf2535f8a1688507f7bf0b71e2d45529d33f303ca32ae813f98744b3d034ff31e9ffa574cbcbb7b76
88c4c2cf82310a38b1378aa6bb0646de85495591b798bf2c63e41aef490b1ce6ce47a43c16712185
919a940564051aa7e17f85be2c554755f327e5fe9da36a9abc234dbb1a624acf046b15649638de40
8a429ebe9b7c40151c5cfec35154ef47b5d0b58d22c3568f4ab68a3bfb686e96230c4c544f1ab8048
5a1a5698aa8ea9a268c2fb45a69d6a2b78e0fee23dc7d4ee7fc9c55ffd1f71f97ff00dead7bfeda4dff0
050d6f8aa778abce3f33b46d6f54d7ff2f2f749d327d42d343d7a4d4b557b7786330dab6997b67c87
ab2c6598bdca50254f1e4ddb1579c68fe42fcc692dbcb116ab63a94ada7cde5bd4752faf6a22e69a8
da5bea16f7b3026ed8b05692d1e440c12554aa067ae2a98697e4efcc1ba5f2dc5e60835d532ea30
bf9c95357892da46874ebb8679ed85acd1c8209ae1e0938f3e7f083f578b837355007c8bf9990796
2d25b5b4d5a6f31dfe95af596a6936b15923d426bbb7974c999a4bb2802450b28688f252d465f8dc
e2a95ea3e5bf377e6047e6e1e5fb8bed42cad753d7f4fd4ede5d4cbdbde4493c4f69696e8d3d2378
6456218fa3c57e0e6c8fb2acb65f2dfe650bfd5ef85a6a8d22de846b65d4ad96c6fbcbcd7b14cb0408
1f9a5dc76caf072768457d4fdfbfaaaeaabd03f2bf43d43cbfe5cbab2d46cdec1e6d5b56bdb7b69a65
b8956d6f6fe6b8879babc956e122f21cda876ae2acd315613f989e5bd0bcdcde5cf2ff00996c22d4b4
7bbd464f5ed2704a968ec6e9d18528432b00cac0d41c55574bfcb1f27d85b9b7bad2acf51657262b
9bab4b733f0ecaee88bcc8dfe32391fdaa9df15478f20f9214d57cbba7023a116b17fcd38ab47c81e4
73d7cb9a69ff00a3587fe69c554aebc83e475b799c79734ee4b1b907eab0edf09ff27154c7cab4ff00
0be894e9f50b5a53a7f7298aa6f8abb15629ac795afb53f3be85e688ee618ec748b2d46c65b56466
965fd266dc96570c15787d5d762a79726e94c55e49aefe53f9a746d2f46582e62d4eeacbf40e9d6b
3d958ca3eab0797e3bf549e5413bb399d2ebd370b1bac7c8fc3c7e24559b597e5f6a7717bf963ad4
71dae896fe47b6b981f445124f58eeecfea4a892961c78200df10735f84ff362a925dfe486a77324d2
1bfd3cb4f36a73c864b4762dfa4f5eb7d6d558f3dc47f57f4b7ebcf9fc3f6715471fc9fd4edef35eb9d3b
50d3229350b99ef34abcb8d39ae2eed45ecd0cd716a4bcde9fa24c4023471a48bfbbfda8416550f6
bf933aedadb4b649ae5a35b5d4b6524fea5a4d2b4634bd6a6d5e1f44bdc120c9eb98e5e45b75591
7bae2af65c55d8abb15618fa3c3a879fb56925babc87fdc569b44b6ba9a04fefefb7e31b018aa6ff00
e17b4ff96fd4ff00ee2175ff005531577f85ed3fe5bf53ff00b885d7fd54c5524f346996da1d959ea826d
46e85bea1625a169aeaf890d731afc30d5ea77dbe1dbae2a9179bb44bdd46c6e7ce1ac5b8d36ea3
36d6d65a74047aa6de4bc837bd910912bd54148c131c1fb2cec7962af54c5585f9ff00f2f2cbf3064d
022d56688e91a45ecd797ba6cf6e2e23bd8ee2ce7b17858975e03d3b9721802c1f830fb3baa9269
5f94da969da8e9f7d71e687d47ea56b1e96ed79616f34f2e9f653bcf643d57278dc43ea32b5c05fdf7
c2cd189179e2a82d07f256fb45d4edf5397cd325fccb7fa76a57af35946925cc9a5c13db29668e450
ad224c3990bc7927c08a8782aa98de7e545cddc1e6e80eba1079af5cd3fcc15faa03f566d34da521
1fbdf8c3ad9460b1e2412e7c02aa836fc99b826f5d7cc0165bc4d6d2bf520421d7f568b5590d0cdbfa
6d1fa6bfcca791df1547e97f94e9a4f9775ef2cdbeac5b4ed52d6fec34f77b487eb16906a4f24aeb24c
0879f83cade9f229f0fdbe6df1e2a82d53f26a6d4fcb1a37961fcc1e9c3a4f979bcb26e059a97963692
c9fd620cb45602c9071e9f131f018aa36d7f2aee6d1b4d78f5d0c6caf3579ee124b08268a7b5d72fc6
a12c5c256709247280239857e1fb71be2a934bf9172cba93eb4fe689db572268d6e5ad626062b98
eea097d452ff1b986e42ab5542346acabc098b157a9689a68d1746d3b47595a75d3eda1b413b00a
ce208d63e442ec09a576c554b55ff7bf43ff0098e7ff00a82bac55ffd2f71f97cd6eb5eda9fee49bfea1
adf154ef1548fce7e613e52f28ebbe6a16ff005b1a2585cea4d6bcfd2f556d22694a07e2dc490b4069
8ab1fb2fcd0d123b39eff5ebcb0b5b284d9c4d3d95c497ab1cf7f199238a62b0208c91c789278b170
bf0b710caa772f9e7caf6f2247717e202e8b2169a3963440f6ef761646640237f46379383957e2371
bae2a93dcfe70fe5c5a1659f5b5574172d3a2c172ed0ad8344b70d30488fa6b17ad11767e2156457
fb0dcb154341f9a5e4d8f534b3b59edecad5ae35982f25b9596d5da5d042fd69e151094951093cdd
a48f6154f52b8aa63aa7e69f9174589e4d575436ad1bcf14d0b5b5cb4d1bdadb2de4a1e2588baf18
184df12ff77f1f4c559743345730c771038920955648a4535564615041f020e2abf1563be6204eb7e
54a76d46627e5fa3aef156458abb15762ad328605585548a107a1071562b0fe5cf95ade3586dd6fe
286301638a3d5b5344555140aaa2e40000e8062abdbf2fbcb6c28c75223fedafaa7fd9562aeff0095
7de5bad6ba8d6b5ff8ebea9f2ff96ac55aff00957be5a2295d469ff6d7d53fecab1571fcbdf2d352a752

813

db6ff8ebea9ff6558ab87e5ef9697a1d4be9d63543faeeb1568fe5e7964b722752e5d2bfa6354ffb2ac
55a6fcb9f2c35037e91daa07fb98d5075ff00a3ac55507e5ff96c0007e90a0e95d5b533ff006338aac
1f977e5856e606a1ca94a9d5b533b75ef738aaeff00957de5ae3c69a853c3f4b6a7ff006538ab8fe5f
7968f5fd214ff00b6b6a7ff006538aa61a3796346d027b9b9d362945cddac697135c5cdc5dc8c9097
28a1ae249080a5d8d0507c58aa718abb15762a83d574ad3f5bd3e7d2b54845c585caf09a12592a0
10c28c843020804106b8aa4a3c83e5a0bc785e5294ff8e96a1d3aff00cb462ad1fcbff2c11431de787
fc74b50ff00b28c55c3f2fbcb0bd22bcdb6ff008e96a1ff006518aad1f977e5556e421bbe5d6bfa4b50f
f00b28c55b3f97be5626a61bbff00b88dff006ffa38c55dff002af7cadfef9bbf1df51bf3ff0033f156ff00e
55f795810de85d541ad7f485f7cbfdff8ab47f2f3caa7ac1747fede17ff00f55f155a7f2e7ca6c4136f74
48a53fdc85ff006ff9ef8ab5ff002adfca35afd5aeabd7fe3a17ff00f55f156bfe55b794294fab5d53feda3
7ff00f6518aac6fcb0f26332bb5a5cb321e484ea37e4ab508a8adc6c6848f91c55fffd3f70f977fdead7f
feda6dff0050d6f8aa7b8aa4fe6cf2fc3e6cf2c6b3e57b89ded6db5ab2b8d3e7b884299522ba8da276
4e60af2e2c69518ab15bbfcae3abe9777a2798b5db8d4f4abd861b69ed7eaf6d6cad1db24810930a
2b730ed1c81f9555a14e3c579f2550cdf93f15d5bea9a7eade67d5750d275eb08ecf5eb190db22dd
de4768b65f5e2eb08912668e38cbaa32c2d246afe9fdae4aa5f79f957ae5deb5a4417dae5cea7a38
d1b5ad235dd4e74b48aea65d55ec42c71c30431c483d3b670cea9cb9357e2e5f0aabaeff0020bcb5
7d3b2dcea37874bf5f5b9e2d3d3d2458bfc471aadc2a384e548d979c35af13b1e4a3154c355fc9fb2
d626b9bebcd66ebf4bdfa5da6a17c91c0ad31bbd34696adc38715f4e2ab2802864662df0fc38ab3e
d2ec574bd32cb4c47322594115b2c8c006610a040481b54d31545e2ac7f5f15d6bcadb5697f39ff00
b97dd62ac8315762aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb15762ae
c55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb157ffd4f6a5ff00e5fe87a86a375
a9b5d6ab6b7178e25b84b1d5f51b281a408b1f210c17091825516b45dfe78aa87fcab5d0ffeae5aff0
0fdc7f57ffb2ac55bff00956da1ff00d5cb5eff00b8feafff006558aadff9567a1508fd25afefdffc41abd7fe
a2b1548fcd7e5ef2bf94b4b9758d427f34dcd8dba196e5acf5bd5a531448402c41bc5af5d917948ffb
08d8aa2352f20e9306a7a25bc5aa6beb0dddc4d1cebfa7f56f8956da5940dee6bf6941c5534ff9569
a17fd5cb5faff00e041abff00d9562ae1f967a10040d4b5fa1ffbf8357ffb2ac55b3f969a130a1d475eff0
0b8feaf5ffa8ac55aff009565a083c86a5afd7ff020d5fb7fd1d62a8bd33c87a2697a95b6ab15c6a973
7769cfeae2ff0055d42fa246910c6cc22b89e44e5c588e5c6a2b8ab27c55d8abb15762aec55d8abb
15762aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb157
62aec55d8abb15762aec55ffd5f7f62aec55d51d3b9e98abb15625e7ff002a4fe75d2d3cbb341a7dc
68377c97535bf8e49268e801866b6e0ca04b1b8e4a5becb716560577551ba8c3e86a9e57839b49
e95c4c9ea48793b71b298558f727b9c559062aec55d8abb15762aec55d8abb15762aec55d8abb15
762aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb15762
aec55d8abb15762aec55ffd6f7f62aec55d8abb15762a91eb3ff001daf2e7fcc55c7fd41cf8aa798abb
15762aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb157
62aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb157fffd7f7f62aec55d8abb
15762a91eb3ff001daf2eff00cc55c7fd41cf8aa798abb15762aec556c8dc119f896e209e2bbb1a0e8
3df154b7cb9aeda799b43b1d7ec63962b4d42213c31dc2849955bb3a82c01fa7154d315762aec55
d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8a
bb15762aec55d8abb15762aec55d8abfffd0f7f62aec55d8abb15762a91eb3ff001daf2eff00cc55c7fd
41cf8aa798abb15762aec556bf3e0de9d39d0f1e5d2bdab4c5524f2668371e57f2c69ba05cdc25dcd
6117a4d731a1895fe22410859c8d8ff0031c5523f2869b2eb9a3b6a9a86a7a8bdd4b7da8ab70bc96
340905fcf146aa884001511568062aaf7a7ca7a6df49a6dff00996e6db508a01772dac9aa4cb2a5bb
31512952f5084a91cbecd462a9a0f2bdab282ba96a654ee08bfb8dc1ff00678ab7fe16b6ff00ab96a6
3fe8fee3fe6ac55dfe16b6ad7f48ea7f2fafdcd3fe278abbfc2d6bbffb91d4ff00ee2173ff0035e2ad1f2a
5a9ffa596a9e1ff1d0b9ff009af154a6fbfc23a75ecba6dff996eadf50b7856ea7b593559d664b772556
565f52a1090472fb351ed8aa6e3caf6868c350d4c83d3fdc85cd0ffc3e2aeff0b5a6ff00ee4353ff00b8
85cffcd78aa026b2f2edb6a09a44faedea6a8f04976966753b8f5cdb4242bca13d4a9552402dd2a46
2aa9a5e97a16b7616faae8fad5edfe9972a24b5bcb6d4ee2586543d191d642181f118aa227f2e69f6
f0493cfa96a51c30a992490ea17202aa0a924fa9d80c552cd17fc27e63320d0bcc3777e6282daea4
16fa9dcbf182fa3f56de43493ecc883921ee3154dffc2d69ff002dfa9ffdc42ebfeaa62a81f29b5c45ab7
9ab4d92ea7b9b5b0d4208ed05d48d33c69269f6b332877ab11cdd9b73df156558abb154bb5dd734
cf2de973eb3ac4ad069d6e63134a91c933032c8b12d1225676ab301f0a9c5522f38eb493792a6d5
742bfac53cb691c57d65202784b79143270753b1a16534dd7e78aa65fe17b4ff96fd4ff00ee2175ff0
05531540e95a7681ae5b3dee91ad5f5edaa4f3dabcb0ea572ea27b495a09909127da491195bdc62
a8eff0b5a7fcb7ea7ff710baff00aa98abbfc2d69ff2dfa9ff00dc42ebfeaa62ac72cf52f25dfdfdc69967a
dead35dda5fb69175c27d4cc715fa28730bcb4e0ad4653bb53e25f1c5591ff85ad3fe5bf53ffb885d7f
d54c556bf966ca352efa8ea4a8a2accda8dc8007b93262ac6eeb59f2258c5a94d75e61d4a38b48bf
8347d49feb5a8110ea1766210c2695ab399a2a71a8fde27f30c55937f85ed3fe5bf53ffb885d7fd54c
5526f3049e56f2b24326bbacea76a970b70f0b7d6efa50cb6703dd4dfdd96a158a377a770a78d715
4de2f2dd8cd1a4d1ea1a9346ea191bf485d50a91507fbcc55077fa04505de971c7a8ea4a97372d0c
c3ebf727920b59e4a6effcc8a76c55ffd1f7f62aec55d8aba80f5c55d8aa53ae687fa685a347a85d69b
7365299e0b9b2f47d4ab46f132913c52a9055cfece2a96ff84f56ff00a9c759ff0081d37fec87156ffc29
ab7fd4e1acff00c0e9bff6438abbfc29ab53fe530d67fe074dff00b22c55dfe14d57fea70d67fe074dff0
0b22c55dfe14d5bfea70d67fe074dff00b21c55dfe14d5bfea70d67fe074dff00b21c550ff96313c1e4e

8219267b8923bdd511ae25e22490aea5720b370555a9ea78a81ed8ab0ff0039794bccfa87e65ddf9
8ac2df554d21fcb90e96973a35dd95b4b2ddc77935c18dc5cb5427170398a756c5520d7fc99f9a1a
a4fa94d02ea5035ecbae708e0d61a38e386e34f8ce9e91159d38ac77aa594854641f6bf76dc3156a
f3caff9bb79a56b72cdfa593cd33044b3b8b5d56dadece4b592e2da50823470c93c2892c6cdf029ac
94925f568aaa5d3df7986e7ce9e61d1bca3a8ea92de59fd6f4bd004b781a15b84d3e13f57ba592e1
e6548de398c57525bb8f5a7e46574e3c95476afe49fccc924b797cbebae5b5943a7ddcd6b677bacc
4d2c3a9bea5a7cf0a3fa3384645862ba555669902bf066f8f82aa8af3258799f4bf2ceafab6b9793e8f
e7082f849a25fcfaa4afa6ea9770dfb5cd85ba5a4125409e1ff0045923f4d4d0d384dc55f1556bef217
9c23f37c9acc51eae6d0f96ed2c1e6d2f50b55967d496fae6f6689daf58bfa359c2ab7c345aa0f8698
aa3f55f24fe60c0fe60bad1ee6592079a0d4745b11a94dead6fdedff004b590698fa6aa23824166edf
044d7278ac413962a95b7933f3220f31e9f7d60dac1d12c62d20db5bddeb092c88f0ebad3dea4a91
cab1bffb8f91a21cbd5aaf18fd47750f8aa8794bf2cfce3a76a7e5b17aba9697068fa1eb163797d617
d6d2cb35dddea50dcc4a1ae0cce524488b0f8578371e5c71540683e45fcdad1b42f236936f67736a
ba069b6363aa25bea712ac9c6defa0b940a25551477b770ca0993e17e48d0842aa71a6f953f336d
a18edafe0bfbdd2264d3bf4a59cbab07ba92e46952dbdcc91cad3d42add089dd3d4457fef12b428e
aa4de5ffcbafcc8d1ac6ced26d3ee16c8697e5ad2f56b7d3750b7b7bb94695a55cdace6198c807ee
ee2489c7229cd57903f0f0655e93f96fe5bf33e91ad79aaff00cd135f4e2e6ee05d09ef3506bd41a7a
d85a46ebc15846aff00598a6766f490b73e4366e38aa2749b0d4eefcd7e737b2d5a5b08d751b50d1
470c12866fd1567f1132a31fbb154fbf42ebf5ff9496e29e1f56b4ffaa58abbf436bfff005325c7fd235a7
fd52c558afe62596a5a7794e6bdd4bcc124d656f79a649389e2b582308ba8db12ccea8a540eb5a8c
5522f3740faae9f3f993cbb04ba3f97e4bab19af6665643ab16bc878b2dab00235a90df59609349d3
898fe2c55ea1e656d6d742be1e5c8527d71e231d92cb208516490f1e65c86fb00f3a53e2e3c71579
4afe5779a7419bccfa37972f263e5ad7869ba95bdd09a186e6d758b42b15cb087d3f4e48a68a181e
58df8fad27ae1997d5e78aa9db796fcc3a9eb5ab6976f7c8d25be856ebe61b0845dc7047e671606d
e0faadc4c7685a29448e10bb2bc713b37367e4aacb1fcbdf3de9c16d5ece3d4f409de05bed227d5a
e6076f534882d26b849d43b074b88ddfad5bd4f597f7c3154cbcb5e49f37683ae7986ee4b2fac43ab
799a4d4ed8fe94952d174cb9b486d24335b853ce45547644a7c4de9b34828715405efe5a79e63d1
f4dd2d67fd2569697371a7dd4516a73585ccfa2451c9169f234e6293fd2220fca5a0562cdcd24e71a
62a83d63f29fceb797facdcc4d1cf06a0facf286e2fe6759adee62b036513870c0525b795becfeef9f2f
db7c5515ac7e5979af51b2f34c904020bcd5fcd3a2ebda7d98bf65b5167a71d2cccb2285e1ea7fa0c
9c7e135ac7f10df8aaa575f975f989a96bab3df2c31e88750b7b9b9b483529fd392282e353691b895
0c7d48eeadf92bbb6f1f1f851235c550775f963f9917ba669d65a9456b7fa859594b11d526d4242e0
dcf969f4978383446bfe96c662e4fc48e5fedf25c553397f2cfcdf7f7f72dab06b989f52b1945c0d5674
8a5d252f23b87b63691a22ab45186879177f517a71576a2af56d5a087eb1a15af1fdc7d6de2e153f6
3ea174295ad7a62afffd2f7f62aec55d8abb15762aec5587fe60eadaae8f0797a7d2ae9ad8dcebfa65
8dda848dc4d6d77388a48db9ab710437da5e2c3c715617e5afce2bbb94d12c5b48babc5bcb7d3ae
2f752bcb9b74b8886adabcba4a031c10a23b472a296e3c07a7bfda146553bfc9ef3c6a1e72d1268f5
0956ef50d2659ed351bc90a4370d70b7328406da38d42a18821597ecc9bf05f87962a95693f9daf7
1e59875fd4f461610000026060f002220574d464301000000000001000000000000000a00000000
200000d8c50000d825010011b436165abead0db4fccc367a9df4d6701843c6a6561e8bbc83e0a50
052ccd4c55ebd8abb1562fa6f95f57d1ad9ec74dd70a599b8b9b98d25b58e475faddc4970cbcb92d
42b4840dba62a8c3a6f9948db5d41d371649fc5f1558da579a083c7cc2aa4f43f518cd3fe1f1570d2b
cd1415f30afb9fa8c7bff00c3e2ab5747f330667ff102176a0e5f508ab41dabcf155c34af34537f30af4
3ff001e31753d0fdbed8aadfd11e68a50f98549ad4136316dff000f8ab8e93e6a24d3cc6a011b0fa8c
5b1ff0083c55cda479a891c7cc6145771f5188d47fc162ad7e88f356f5f320dfa7fa0c3b7fc362ad1d1f
cd8450799803e3f5087fe6ac55a3a379b0f4f33d3fe8c20ff009ab1570d1bcd9ff533ff00d3841fd7156
ff4379ae94ff136f4ebf5083aff00c162ad9d1fcd67a79969ff0046309ff8db1557f2fe81368d2ea97777
7efa85f6ad7097571334690a831dbc56caaaa9d071881dfbe2a9de2aec554ae6dadaf216b7bb852e
2dda85a29543a12a430aab023620118aa03cc5a2a798747b9d21e76b6f5f815b88c066478a45954
d1b63f128a83d71540368de6b34a799e9b6ff00e8107f5c556fe84f36ff00d4d07fe902dffae2aefd09e
6dffa9a4ffd205bff005c55dfa13cdbb7fced27dffd02dffae2aefd09e6dffa9a4ffd205bff005c55dfa17cd
b4ff94a0ffd205bff005c55dfa17cdb4ff94a0fcfea16ff00d71577e84f36ff00d4d27fe902dffae2aefd09e
6dffa9a4ffd205bff005c55dfa13cdbff005349ff00a40b7feb8ab5fa13cddff5351ffa40b7feb8aa1e7f2c
79a6e66b59a5f35bf3b494cf081616c073314909af88e32362afffd3f7f62aec55d8abb15762aec55e
4df9f7ff001c9f26ff00e05fa1ff00d441c55f34795bfde6d13fe60bcb1ff89b4f8abd27fe71bfff002615c7
fe02b1ff00dd7f54c558ff00947fde5f297fad2ffe245162afb1f15762aec55d8abb15762aec55d8abb1
5762aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb1576
2aec55d8abb15762afffd90000000840010824000000180000000210c0db0100000003000000000
0000000000000000000001b40000040000000340000000100000002000000000000bf000000bf0
000af4300002143030000000000008000000080fe7fe9430000008000000080feff5643210000000
8000000620000000c00000001000000150000000c00000004000000150000000c0000000400000
051000000b8e100000000000000000000d2010000d60000000000000000000000000000000000
00005e010000a100000050000000080400005804000060dd0000000000002000cc00d3010000d7

815

000000280000005e010000a10000000100080000000000000000000000000000000000f8000000
0000000000000000ffffff00fefefe00fcfcfc00bbbbbb00ededed00fdfdfd00fafafa00e1e1e100cbcbcb0
0f9f9f900f7f7f700fbfbfb0094949400e2e2e200797979006a6a6a00f6f6f600f4f4f400f5f5f500deded
e00f0f0f000dddddd00efefef00d9d9d900aaaaaa006c6c6c00e7e7e700e3e3e300f3f3f300dfdfdf00f
1f1f100dbdbdb00e8e8e800ececec00d1d1d10063636300b9b9b90052525200cccccc00e0e0e000
42424200aeaeae00828282005f5f5f00ababab00737373009d9d9d0030303000868686006464640
09e9e9e0070707000a7a7a700b8b8b8006e6e6e0080808000434343008c8c8c005b5b5b00b5b5b
5007c7c7c008a8a8a009a9a9a00c0c0c00067676700b4b4b40045454500a5a5a500242424009c9
c9c0095959500cfcfcf00a1a1a10040404000ebebeb002e2e2e0034343400c6c6c600606060001b1
b1b00c7c7c700b6b6b60069696900cecece0051515100f2f2f2004646460058585800c8c8c8004d4
d4d00cdcdcd007d7d7d00e4e4e400f8f8f800c5c5c50055555500d5d5d50047474700d3d3d300dad
ada004e4e4e003d3d3d006565650028282800727272004b4b4b005a5a5a00a0a0a0003b3b3b00c
4c4c4005656560044444400a8a8a8002f2f2f0092929200cacaca0038383800c9c9c900666666002
32323005c5c5c00a4a4a4006d6d6d00b7b7b70050505000363636005454540016161600dcdcdc0
03f3f3f00535353003e3e3e008b8b8b00bfbfbf0098989800212121008d8d8d00252525003737370
0c2c2c2002c2c2c00d4d4d4009b9b9b001f1f1f003c3c3c00d0d0d00068686800494949009797970
0e6e6e600eaeaea00eeeeee001e1e1e00e5e5e500e9e9e90015151500d6d6d600d7d7d700d8d8
d800d2d2d200c3c3c3007b7b7b007474740075757500777777007676760071717100787878007a
7a7a00848484007f7f7f007e7e7e008181810083838300878787008585850088888800919191009
09090008f8f8f008e8e8e00898989005959590096969600adadad00a3a3a300bcbcbc00bdbdbd00
9f9f9f00bebebe00b3b3b300a9a9a90017171700acacac00a6a6a600b2b2b20031313100b1b1b10
033333300b0b0b000999999002222220093939300626262000505050048484800a2a2a2003939
390026262600bababa00131313002a2a2a006f6f6f005d5d5d004c4c4c00292929001d1d1d00191
91900616161001a1a1a00202020004f4f4f00272727002d2d2d005e5e5e00c1c1c1004a4a4a00afa
faf0004040400575757003a3a3a001c1c1c004141410032323200353535006b6b6b00090909000f
0f0f00121212000e0e0e002b2b2b00111111000808080018181800141414000d0d0d0010101000
01010101010101010101010101010101010101010101010101010101010101010101010101010
101010101010101010101020102075c292858cc088b73a04c8ea24f63ca0d070101a9798e19a4bc
a2200101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101000001010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010102030102c47706b02b017f2a026b01baa6d685020101016b
e40cd02001aa5c01010101010101010101010101010101010201010c0101010601010101010201
01010101010101010601010101010101020302010102010102010101020101060101010101010
10201020202020201010101010102010101010102020202020601010101010101010202020202
01010102020101010101010101010101010101010101010101010101010103010102020101010
1010101010101010101010101010107010101010601030c0101010c01010101020201010601010
10101010101010101010101010101010101010101010101010101010101020101010101010202
02010101010202010101010101010101010101010101010101010101010101020202020202020
20102010202070000010101010101010101010101010101010101010101010101010101010101
0101010101010101010101010101010101010601010101c0d601693e013942027d01ba682b0101
010306b71997290b01af770101010101010101010101010101010101030102010101010c020606
01010201020101010206060202020202010202020101020606020101020101010101020101010
10102010101020101010101010101010201020606020101010101020101010202020201010101
01010101010101020202020201010101010101010101010101010101010202070101010103020
101010101010101010101010101010101020602010c02010201010101070101010201010202010
10201010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
101010101010c06020102000001010101010101010101010101010101010101010101010101010
1010101010101010101010101010101010101010101010c0701012a320c6aae0b6d31746206463
242861d01010179465eec231fb7ba010101010101010101010101010101010201010601060c010
10101010101060102010101010101010101020101010101020101020101010606010602010106
01060201020603020103010102060101010106060101010101060101010202010101010101010
10101060202020202010101010101010101010601010303010106020202020101010101020307
07010106010101010101010101010101010101010101010101010106010102010103010202010
10101010101020202020202020201010101010101010201010102020101010101010101010106
02020202020206020202060602020201010101010101010101010101010101010101010101010
10101010101010101020601010201000001010101010101010101010101010101010101010101
010101010101010101010101010101010101010101010101010101010106022a1a1247e217a89
534bd012f3d05adbe010113702c9b0e3f19350c0101010101010101010101010101010101010603

01060101030206060101020101010101010101020202010101010101010101010101010102020
101010101010101010101020202010101030601010601060601010c03010202060201010101010
10101010102020101010101010101020202020201010102010101010101020202010101010101
0306010102010606010101010101010101010101010101010101020b010202060202060102020
10202010101060201010101010101010101010101010101010102010101010201010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010c010102010100000101010101010101010101010101010101010
1010101010101010101010101010101010101010101010101010101010101010306023f4101989
b0101010c06068534010103130101925f030103030301010101010101010101010101010101010
37c4e86be0486bebc8686be4086bcbe86bc0404bbd252c63c25bbbbd236d2bbd27cbf7cbbd236bc
257cbebb42bca152d27c7c04bc04367cbb047cbf3cd225bf40bcbcbb36c442040436523604bc0436
527c3636365242c43636367c523c3c3c36363636363625254225d23636d22542bbbb04d225367c
5252a125070102020101010101010101010101010101010101030101010101010201030101030
1283625bbbcd27c7c367c36363636363636367c7c7c7c7c7c7c7c523625367c527c257c7c7c7c7c
7c7c7c7c3636363636367c7c3636252536367c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c
7c7c7c52525252525252527c3642bfbbc800000101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101060a01019a695301a7b40
10a0101010353ae065e0101110201070107010b0602010101010101010101010101010101019d
93516354482727a08e6323235474745b74515974766e86a1517474594e51765f6ee25f27765f594
e8c7476867648e26e40e24e74595f6e764e8c868c4e6e865f6e6ea1bed2bb8ce2bc04bb408c86bb
bbbbbcbebc04257cd2d225367c7c525252525252527c7c7c52d204d2d204d25286bebebcbb04d2
d27c524114010c010601010101010101010101010101010101010101010a060102010101020106
443a36d2d27c3c3c3c3cc4c4c4c4c4c4c4c4c4c4c4c4c4c4c4c4c6c4bfc4c6c6c6bfc4c4c4c4c4c4c4
c4c4c4bfbfbfbfc4c4c6c4bf4242bfc4c6c4c4c4c4c4c4c4c4c4c4c4c4c4c4c4c4c4c4c4c4c4c4c4c4c8
c8c8c8c8c8c8c8b92d71c0c2a80000010101010101010101010101010101010101010101010101
0101010101010101010101010101010101010101010101010101010701121301151d010106010
6030312010c010b010106010601010101060101010101010101010101010101010116a70201010
20c0102010101010102010102060201010106060201010102020102010c0701010101010201010
2010102020c0601010606010101020602010203010201010206020101010202010101020101010
1010102060101010101020202010101010101010102010101010101020202020202020202010ca
796010701030101010101010101010101010101010101060c010c0113010c0101060107c904010
10101010101020101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101350000010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101020101010c010301010701
070103010201020107010601015e010301060301010101010101010101010101010101019fac01
0b010101010201020201010201010101010202010101010202010101020101129b56060102010
1060101020c0101020101030b0a020201010101010101010102010101010601010101020202010
10101010101010101010101010101010202020101010101010202020202020101010101010101
010201a40e030101010101010101010101010101010101010106010101010a1952015e01010a0
146bc0201010202010102020202020202020201010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010106060149000001010101010101010101010101010101010
10101010101010101010101010101010101010101010102010102020301010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
1019f3d0101060c01020601010201020103020601015e0101020111010a01020202014626b33f36
0602010c0101060102010301010202a2e754060102010601060106010301020601030203070103
01010101010101020301010102010206010301010306010c010602020203010302010206060201
010102020201a60802020101010101020201010101010101010101010101030603011a67c90c01
030101cbbe01010102010701010101070102010106015ea5760601010102010101070102010201
07020106010101020c010302010601010b010106010602020101010c0606010606015e01010701
01070301010c06060103010202010101010c020135000001010101010101010101010101010101
010101010101010101010101010101010101010101010101020c06010101010c02020202020202
02020202020202020201010101010101010101010101010101020202020202020202020202020
20202200f030201010202010207070a111202020703120212070113010c06010a0c5e5ea53e151
c5314010b010c03025e010702020307019ad2af070c030101131102010206020101060101010c0
10c5e0307035e011f01010c0b010b01010201060101120106010c0a010101020601015e01015e0
112020a01010103a70e0101010601010101010101010101010101010101030201010601312785
8516010b02adbe010103010c0101010a0101010306010c0115d6ec2201030c0201070106020102
010701060101060307010101030101010701010302010a010201010c060301010101015e010202
01030601015e010301060201030201130102010101012d0000010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101060c010106010101010
10101010101010101010101020201010101020201010101010101010101010101010101010101

817

010101010118a901010101030106036177d52fb82e92bda49db53d18a3af16ec6f339aa5a821176
555602e120dde3d16e45a8e473d1f2f583f5d0601cb18015f93ad35b87b2803173c0107a0582ebf9
61ab88edb485fa7408fde76014067879aec2d38b344348eb2aa076ca295a6540da25dc2930f5459
24c807010c010102a45d020a060101010101010101010101010101010101010307020103a55401
a15cbe010747360202010703022d8c03011cbc865d596e14010151d2010b59be1b4023018cba14
0c59426e5142a001011e150c0148445b0154271d041801bf5b63e29d0328422707d24854645954
97a11d56c209489ba12001bc3c1f145f56010102030619000001010101010101010101010101010
1010101010101010101010101010101010101010101010101010601010a010101010202020202
02020202020202020202020101010101010101010101010101010102020202020202020202020
20202020218a902020101030703011166ab1d0386bd44370138cc026fcfa44f17e29dcca90112b4
3323025bd89f1ec4d2780138a559e04e16860116cacb035ec789071f42e401bad15d01628998c08
1ebb113c50a34a50be4e712014be840516622667a3ccc0785a49ec716745007b36b22755264c64
ef216010a01070601a40e01010103010102020202010102020202020202020201010101010f270
a0115b1871d2f6e010601060111ae100106014c85a13a1ce11501c64f0c013da90a7dc8bf4cabaa4
baae8e2163a6a1f0162bd010450a7b10ecb3b075549a1558c7c45280a1ec17a3cce197e366b8964
4a98e6b0b68d16605bc64aec35d2b7120102010101b90000010101010101010101010101010101
010101010101010101010101010101010101010101010101010101030601135e010c0c0c0c0c0c
0c0c030303030303030307070c0c0c0c07070c0c0c0c0c0c0c0c030303030303030303030303030
30303922b0306010201010207017fb80103050bb9a41189d502db7a2cbf98010ca5af0605b742b6
0ec92b11110286dd012b5c2da4030106014f26350c03d02a01011b1302650d7415721717060357
b213d0012e73013c2901010172040349717f2a093401ba31c2b0079ec50cb86f593417020163d39
b030102010101344e9d641e18168164181864811620202020202020209d649f168108a39201060
10104312e7601030603010115b6089b76dd180622a3660306b7ea4e01738901d68caa3a0a0113b
275070101a12264e3cf01afb6010713444f02b7498cb301207212011d8d095fa51260641a2f21942
84f061e2601ec18d6be011dbb67020101020602190000010101010101010101010101010101010
10101010101010101010101010101010101010101010101060201025dada2a6a8a8a8a8a8a8a8
a8a9a9a9a9a9a9a9a9a2a2a23d3da2a2a2a2a2a2a2a2a2a2a2a9a9a9a9a9a9a9a9a9a9a9a9a9a
9a9a977670101010601030101015565cbd52b01336b01b1d60183192e3a6e5892532e5e518b0ca
50d54d5515c31bc7803abada110018e6e562963515402662caa77cb015f26214422e1c8bb7d208
2b412c701a5cb01d299ad38addc4017ba548bc8862c02b13d816901238d018f6f052c09b85ca1f71
e5e010103030193c2c0ba2d2dc22d19c0c0192dc22d2d2d2d2d2d2d2d7a19c02a2d04675406060
a01400f4151010201060103017a31bc8d6701567f7714064ee69db4010db2035325b427011102af
8b9b1bc20106a7bd5b2247a819c821491a012c49beb3029fd881219dd976035486d09a24bd9b6a
1e10060e7d06939ddb8fc4274832010201010101b9000001010101010101010101010101010101
01010101010101010101010102020206010101010101010101010101973f1c1797979797979797
974b4b4b4b4b4b4b4b97974b4b4b4b979797979797979797974b4b4b4b4b4b4b4b4b4b4b4b4b4
b4b4b6ead060c01020601020102d7ec0944b2012ba3b826cf2b4c165d87aa2c9737936759c9c983
b812c83ab7c8beeb7375860cbacbd72a5ce713c6340291a992cb35986d2401ccb81e0d1aaf21823
7531a026a949e40d0407425ca864ba7c66064c9588f94bb03496cabd107bab706719532338c723
7b30301010301a80e06020101020202020202020201010101010101010202020101013d590201
8eadc01d898c060c0103010107088f1ef6740c1e6b14c206de8f01cf14a762096da04e3e08551887
8871c334132175640e73090fbe306e859159eaa1c8ad139ddf7119c6ca749ea997601e94d5c4550
b319d7a7002109ee4469379c3e7e4140c020101190000010101010101010101010101010101010
10101010101010101010102020606060101010101010101010101039b44010301010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101203d02010601010101060162b803015d1211071c14018196010a17545e0c0c131b0c01591
5110107485d015e220508070103641c0c088112131601827101020897189b01089a011e6306019
70a8e13013fb60bbbe7010a01d4bb010b5b4b0113071d6401015e815f4d023fcc01061816010c56
219a0102010106a79a0103060101010101010101010101010101010101010201010202a59d074
63aa00103b276010106015e020102c8d6b70a015e9da174057a9d0c5f92a16ee4c203066336b91f
2f9401029a069d2f1297bf0a143c860127c82d7a0cbd771692ea01061168485e04a1540cd236c05
40621748f5506539d0c632d1e18358f20010106022a000001010101010101010101010101010101
0101010101010101010101010101010101010101010101010102010296c0010201010101010101
0101010101010101010101010101010101010101010101010101010602010102020c0102020102
01019fa901010701010103010e626959beb6980c01020201010101010101020202020101010101
010101010206020201020601020201010202010601614aa95404b1130c01010103020101020602
010102020c0c5e87828e0163df6c5e010202060101060601010107c41610000026060f002220574
d464301000000000001000000000000000a00000000200000d8a50000d82501008d17a37f0a010
10301010101010101010101a49602060103010101010101010101010101010101010101010c060
13d3385730a010306b48c010101010101010127c16301070101010101010101010101010101010
1010101015cf11d1d51be0101010101010101010101020601011581018ce84b0296f5bc01010101
010101010301060127e30ce1920c01020101010302010201032a00000101010101010101010101
01010101010101010101010101010101010101010101010101010101010102010296c001020101
01010101010101010101010101010101010101010101010101010101010101010101020201010
101010101010603613801010101010a010707184b9796215e0101010101020101010101010101

0101010202020201010101010101010101010202010102020101011f160505169a0c0201010202
01010101020101010102010b011f8e56032108155e0c01010606010101020201011e3606095f010
3010601010101010101010107a30e0101020101010101010101010101010101010101010a0a01
01072ecc285e015e01013a4001010101010101010aba0301010102010101010101010101010101
01010101015695ec7acfacbe0101010101010101010201010601010106064237040a7653350101
010101010101010a0107c0a328539a010102010201010102030601420000010101010101010101
010101010101010101010101010101010101010101010101010101010101010102010296c00102
01010101010101010101010101010101010101010101010101010101010101010303010106010
10c01070106060102019dab0207010701010201010101030101010102060101060601010101010
10101010101010101010101010101010101010101010101010101070102010107020101010202
01010102010102010101010106020101010a01070103070102020101030101030203010c010a01
01010c010101010101010101010102a52801010201010101010101010101010101010101010101
01020b01220102010103020c316e0101010101010101060c010c01010201010101010101010101
01010101010101010b0102011d01010101010101010101060101060c0302010103010601070701
01010101010101010a0101065e5e015e0a0103010106010101010102012a00000101010101010
10101010101010101010101010101010101010101010101010101010101010101010102010296c
00102010101010101010101010101010101010101010101010101010101010101010101060101
0601079b0e9a01075e01060164a6010601030206010602025e010102010102010101010102020
20202010101020201010101020201020202010101020101010101010101010201020301010601
02020101010203010202020101010202010106030c01010c060101030601030101010101010601
060201030201020101010101010101010a010f9a03030301010101010101010101010101010101
010c01010102010601020607010101475901010101010101010601070101010201010101010101
01010101010101010101010602010101010c01010101010101010101010101010606010101010a
0101060101010101010101015e5e0101010701010103010102010206060607012a00000101010
10101010101010101010101010101010101010101010101010101010101010101010101010102
010296c00102010101010101010101010101010101010101010101010101010101010101010101
0601010601079bb78713010101060116a601010c01010101030101010106010203060101030601
01010101010101010202020606020202010102010101010101010101020102020106010103010
30101010101010101010101010101010101010a03010201030101020c030101010101030206020
10601020106030201010c010101010101010101013796010101060101010101010101010101010
101010101010203010101020c01020602038574010101010101010101060a01060302020101010
10101010101010101010101010201010101030201010101010101010101010602010101010202
0601010101010101010101010101010101010102030102020201010201060101060201c8000001
01010101010101010101010101010101010101010101010101010101010101010101010101010
10102010296c001020101010101010101010101010101010101010101010101010101010101010
101030301010601010cab7c0101030101016137631464289f0e28961c18140e08161416280e142
0161416161616818181811c081e16161e081c0828282808080828141e1e1416141481819696162
8289a080e0e0e281e281c960e0808080e0e0808085d1c1c0e96211e081b965d960e281b1c1c9a1
b0e9a0e08219a5d210896215d9a9a9a9a9a9a9a9a9b64ec1403060102010101010101010101010
101010101010601010601010601010601020101892d96969696969696960e211c1c5d5d1b1b9a9
a9a9a9a9a9a9a9a9a9a9a9a9a9a9a5d211b281b9a210e9a9a9a9a9a9a9a9a5d9a9a5d1c0e1c9a2
897965d081b5d089696969696969696081b1b1c5d9a5d1b5d1b219a5d1b9b1b0897969628c3000
00101010101010101010101010101010101010101010101010101010101010101010101010101
01010102010296c001020101010101010101010101010101010101010101010101010101010101
01010101010101020201015c2501010101010213cf19b9c8c6c27cc6c271c6bfc8b92ac22db9e4c2
2dc219b9b9b9b9b9b9b9b9b9c219c0c019c2b91919c0c0191919c071c0c035c37135c31971c0c0b
f4935442d2d197171c02db919c0c0c0191919c0cfb9c2191935c2c044c2c2c0c0c0c0c2c3b919e41
9717a35c0c2192d7a1971717171717171717171c3c6ba110101030101010101010101010101010
1010101010101020101010c030102030101014e6c717171717171717144b9c0c319c0717171717
1717171717171717171717171713544712db9c0c37171717171717171717a351919c0c0c019c27
1352d19b9c02d7171717171717171e435c0c219e4b92d352d2d3535c0192d2dc27119b92f00000
10101010101010101010101010101010101010101010101010101010101010101010101010101
010102010296c00102010101010101010101010101010101010101010101010101010101010101
01010101060201010202ac0406020103010102010c0201020601020101015e0101010106010101
01010602020201010101010101010101010101010101010101010101010101020101060101010
10701010101010201010101020102020201010202010106010201060101060201020c060103015
e0101060c0103010c01010102010101010101010101010706010c010c010101010101010101010
101010101010101010701020101010601020106020101010101010101010101070c01020103010
10101010101010101010101010101010103010603010601010101010101010101010106020101
020203020103010301010101010101010101010106010102010201010601010601010101030c01
00000101010101010101010101010101010101010101010101010101010101010101010101010
10101010102010296c001020101010101010101010101010101010101010101010101010101010
1010101010103060101030102ac4e0a02020101020101010101010101010101010101010101010

819

10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010100000101010101010101010101010101010101010101010101010101010101010101
01010101010101010102010296c001020101010101010101010101010101010101010101010101
0101010101010101010101010102010c966b250101070301010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010100000101010101010101010101010101010101010101010101010101010
10101010101010101010101010102010296c001020101010101010101010101010101010101010
101010101010101010101010101060101020201031ca3400c01010101030101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010100000101010101010101010101010101010101010101010101
01010101010101010101010101010101010102010296c001020101010101010101010101010101
010101010101010101010101010101010101020206010202010a5e01010c030101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010100000101010101010101010101010101010101010
10101010101010101010101010101010101010101010102010296c001020101010101010101010
10101010101010101010101010101010101010101010101010201010701010106070201010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010000010101010101010101010101010
101010101010101010101010101010101010101010101010101010102010296c00102010101010
10101010101010101010101010101010101010101010101010101010101010101020106060601
01010206060101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101000001010101010101010
1010101010101010101010101010101010101010101010101010101010101010102010296c0010
20101010101010101010101010101010101010101010101010101010101010101030102010101
01070102010206010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010100000101010
10101010101010101010101010101010101010101010101010101010101010101010101010102
010296c00102010101010101010101010101010101010101010101010101010101010101010101
01020102030101010602010202010201010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101

01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
00001010101010101010101010101010101010101010101010101010101010101010101010101
0101010102010196c0010201010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010100000101010101010101010101010101010101010101010101010101010101010101
01010101010101010102010196c001020101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010000010101010101010101010101010101010101010101010101010101
010101010101010101010101010102010196c00102010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101000001010101010101010101010101010101010101010101
0101010101010101010101010101010101010102010196c0010201010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010100000101010101010101010101010101010101
01010101010101010101010101010101010101010101010102010196c001020101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010000010101010101010101010101
010101010101010101010101010101010101010101010101010101010102010196c00102010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101000001010101010101
0101010101010101010101010101010101010101010101010101010101010101010102010196c0
01020101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101

821

01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010100000101
01010101010101010101010101010101010101010101010101010101010101010101010101010
102010196c00102010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010
A main program ties the software together; here, for clarity, all issues associated with scheduling have
been
ignored.
import
javax.realtime.*;
public
class
tug
{
public
static
void
main
(String
[]
args)
{
boolean
OK;
AsynchronouslyInterruptedException
emergencyStopTug1
=
new
AsynchronouslyInterruptedException();
AsynchronouslyInterruptedException
emergencyStopTug2
=
new
AsynchronouslyInterruptedException();
AsynchronouslyInterruptedException
emergencyStopTug3
=
new
AsynchronouslyInterruptedException();
AsyncEvent
breakingPoint
=
new
AsyncEvent();
breakingPoint.bindTo
("BreakingLimit");
TugControl
TC1
=
new
TugControl
(1);
TugControl
TC2
=
new
TugControl
(2);
TugControl
TC3
=
new
TugControl
(3);
EmergencyEventHandler
emergency
=
new
EmergencyEventHandler
(
emergencyStopTug1,
emergencyStopTug2,
emergencyStopTug3,
breakingPoint);
TugThread
tt1
=
new
TugThread
(TC1,
emergencyStopTug1);
TugThread
tt2
=
new
TugThread
(TC2,
emergencyStopTug2);
TugThread
tt3
=
new
TugThread
(TC3,
emergencyStopTug3);
tt1.start();
tt2.start();
tt3.start();
}
}
Figure 13.7 illustrates the main object interactions.
010009000003f012010000003f76000000001610000026060f002220574d4643010000000000010
0a5cd000000000a000000002000004017010040370100010000006c0000000000000000000000d
2010000e000000000000000000000006a400000fa1e000020454d4600000100403701000c00000
0010000000000000000000000000000000005000020030000c40100001a0100000000000000000
00000000000e3e306006e4e0400460000002c00000020000000454d462b014001001c000000100
000000210c0db01000000600000006000000046000000284900001c490000454d462b224004000
c000000000000001e4009000c00000000000000244001000c00000000000000304002001000000
0040000000000803f214007000c000000000000000840000574480000684800000210c0db01000
0000000000000000000000000000000000001000000ffd8ffe000104a4649460001020100480048
0000ffed0a8650686f746f73686f7020332e30003842494d03ed0000000000100048000000010001
00480000000100013842494d040d000000000004000000783842494d03f3000000000008000000
00000000003842494d040a00000000000100003842494d271000000000000a000100000000000
000013842494d03f5000000000048002f66660001006c66660006000000000001002f6666000100
a1999a0006000000000001003200000001005a00000006000000000001003500000001002d000
000060000000000013842494d03f80000000000700000ffffffffffffffffffffffffffffffffffffffffffff03e80000000
0ffffffffffffffffffffffffffffffffffffffffffff03e800000000ffffffffffffffffffffffffffffffffffffffffffff03e800000000ffffffffffffffffff
ffffffffffffffffffffffffff03e800003842494d040800000000001000000001000002400000024000000000
3842494d0414000000000004000000023842494d040c0000000008f50000000100000070000000
3600000150000046e0000008d900180001ffd8ffe000104a46494600010201004800480000ffee00
0e41646f626500648000000001ffdb0084000c08080809080c09090c110b0a0b11150f0c0c0f1518

131315131318110c0c0c0c0c0c110c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0
c0c010d0b0b0d0e0d100e0e10140e0e0e14140e0e0e0e14110c0c0c0c0c11110c0c0c0c0c0c110c
0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0cffc000110800360070030122000
21101031101ffdd00040007ffc4013f0000010501010101010100000000000000030001020405060
708090a0b0100010501010101010100000000000000010002030405060708090a0b1000010401
030204020507060805030c33010002110304211231054151611322718132061491a1b142232415
52c16233347282d14307259253f0e1f163733516a2b283264493546445c2a3743617d255e265f2b
384c3d375e3f3462794a485b495c4d4e4f4a5b5c5d5e5f55666768696a6b6c6d6e6f637475767778
797a7b7c7d7e7f7110002020102040403040506070706053501000211032131120441516171221
30532819114a1b14223c152d1f0332462e1728292435315637334f1250616a2b283072635c2d244
9354a317644555367465e2f2b384c3d375e3f34694a485b495c4d4e4f4a5b5c5d5e5f55666768696
a6b6c6d6e6f62737475767778797a7b7c7ffda000c03010002110311003f00f47394fba9b36b5b4bd
966c6fae08692c70f563706ee6eddfb2c6a850f736e37647d981ad8f6b5f53c976a5afdbb4b5addbfa
3576aa194cec901da904cc9eeff00eb3ff3d4dc25a47122252539d7e4756aa8a6eadaccaf50b43995
550e68709f53f4b955b1cd6bbf968673faa35af71a1f0c68740a353225cd03ed9f99fd65632306fc9c
4fb25b606d65a18f35cb5c446d73771dfb5aff00e4fbff0096aa9e804997655ee30e6926c3ee0f1b1d
ea7b36d9fc8fdc7a4a62dea7d62017e1583713b76d4d3ed9863acdd96cf4ddfbec5a61b9bfe9aaff0
0b6ddff00a5d679e82e223ed57ea20fe9483cef9d1bf4b7fbb728ff00cdf21ae68c8bbde7739dea90e
93fca15fbbf7bdfef494dfb2ebe8b2816beb732d7ec77b4b23d965920bac7fe756a9668cd7643dd8b
93756d320168a1ecf70afe836eb58efd1fa7f9ecfa7658add78b78fb330b9be9e2904192e71018fa46
e71dbeef7eedeadc0494e474e6e5d3eb6665675967acd2f6e1de2a6bab2037637f577d8cfa2cff000
7fbfbff009c563233f2e8b0b0635d70040df556d2d3201f6eec863fdb3fbaaedcc2ea9ed68f739a40f8
90b3f37a5333325b92f76455635bb5be93ab6e9afe77d3fceddf4fe9ff00c5d692966f55c874918b7c
02e049a604b776eff0ff00c85787da48fa4c07c0b4c8f8fe91663ba0b5ee6b9d939d2dda5a05cc6c16
fe77e8f6b9fbff00c27a8887a2d07712ec90e796ef736c6b09db1b43bd3dbb9becdbee494e86dc9fdf
67f9a7ff004a2677da9ad2edf59804fd13dbfeb8b2f1fa2e2861752fca6ee71dee1680e739a764bdff0
049db7d3567a7f4ba7a750fa719b69616ed6b6c787068d4edadb3b6b6ee77e6a4a7ffd0f527dac61
01d3264801a5dc7f543bc547ed354c0dc48d480d7189f8353bdcd6dcc9207b5dcfc58b26a6e6e264
dbf66c4a4536bb6b6c6380735ad6fa8d3756eb76bff0059b323f9b7fe7d7fa2494eafda6bf07ffdb6ff0
0fc826fb553b9ad3b9a5e76b7731ed04c1746e7347eeacf399d7857a6363bec989366d1127dfb7f4
9f99b1de9efff00ae7e7ab998e1ea628046b70ffa8b4a4a6d28bdedad8e7bcc35a0971f20a48397fd1
6dfea3bf224a57daaaf0b3fedb7ff00e4137dae9f0b3fedbb3ff20aaf5aa197515cd2ebdd5d81cd6b09
69120d2f7ee632dfa15dae7ec77f38abd1d5326b6d8dafa6e4fa4c73b607087b892e73b634edad95
35dec67e93fd1ec494e97dae9f0b3fedbb3ff208ac735ec0f6ead70041e342ab62e6df7dceadf8cfa5a
1a48b1fc133b768d3fb4ac53fccb3faa12533492492520c23fa0fedd9ff009f1e8eaa62b9a1f5b35dc4
5c46863f9c13ee8dbdd42bc7eaacb184e5b2cac6d0f6beb1246e2eb21d5fa5b5fb1de9fd0d9fa3fe69
253fffd1f45cccfe9cd7babcaacd8eadce001af7f15b6f7399a3bf36c6b3fe3106acce836b03db40f734
3a0e3ba60fc2a5ac924a71bf687417d6d753535cd7b0d8cb063b8b4090ddc7d8df1ffa0ac63b7171e
c0e1432a00c3806b41a9eef07340fd05fbbdaff00fd29fa2d03a09f055aaf52e60bfd0aa6fadbb89712
4b60b9b5b9de9fb9adf51e929b4a865f54c2a8db4e436c2d07d37ecadf603b9ad77fda76d8e6ff003
acfa6abe3f5cc40c2d6df5bd8d12d2e364864077b9ceabdfb3fd27fdb8a63af6210f2db2b77a7f49ad
2f2efa2eb006b7d21bb7318f4949696577b83c35c2a7387a6ef52c9735d5fab3656fd8eadfb8fd04d9
f48a9b53aade5c5e7d9eabda1d15daf0c73b73b6b773501dd671596fd3693bc17c6f21bb98f6b7d4
3e9b7633f42f476daeea0daeca0d6eaea7c97073a1d2c733da7d3ff0085fa4929575bd3b18b1b956
1a5ef6ef836591cb587dfbb6fd3b1a9aaebbd105750af32ad8f03d2f772350209feaab9395fb95ff9e7f
f0049a670b9cd2d757590ed082e2411fe624a6ab3af746b0b0332eb76f0d2d83d9ffcdeefdcdffcb47
a7a9605f636aaaf63ec7496b01f769f4bdaa58f70bfd50e6069a9e6b3ac8301aeddc0fde46da26604f
8a4a4589fccff0069ff00f56e4641c4fe67fb4fff00ab72324a7fffd2f55497caa924a7ea977d13f02b219
5751b2ba1d8f7be8afd0600c1531ede1beedc6dfa6be6d49253f483f17ab7bfd5cf7ecdaedfbe8ab66
c25db776eb3d2fd1fe77f23f9e527e2f5801bbb39c487089a2bd5ddbe85ad77f5ff00f49fa8be6d4925
3f48d58bd5750ccf70710757d0cde1a5ced9fce5bbfdbefd9ea209c2eaff0063dacea67d2d901d4633
389e6bfb3dbf4ffe297ce8924a7e92389d79c096f51dac70f6b7eccd96886fefde6cdfa7f84ffae2b587
5752aec2fc9c8fb45458036b1536b874fd3de6db1ff47f357cc6924a7e9ac50d3665171b1a7d7768d
dd1f42afdcf6ab01aceceb7e7bff885f2ea4929fa9b1fd3f487a525927999993ba77fbbe9222f955249
4fffd9003842494d04060000000000070005000000010100ffee000e41646f626500644000000001f
fdb008400040303030303040303040604030406070504040507080606070606080a08090909090
80a0a0c0c0c0c0c0a0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c010405050807080f0a0a0f
140e0e0e14140e0e0e0e14110c0c0c0c0c11110c0c0c0c0c0c110c0c0c0c0c0c0c0c0c0c0c0c0c0c
0c0c0c0c0c0c0c0c0c0c0c0c0c0cffc000110800a9015e03011100021101031101ffdd0004002cffc4
01a20000000701010101010000000000000000040503020601000708090a0b010002020301010
1010100000000000000010002030405060708090a0b1000020103030204020607030402060273
010203110400052112314151061361227181143291a10715b14223c152d1e1331662f0247282f12
543345392a2b26373c235442793a3b33617546474c3d2e2082683090a181984944546a4b456d35

823

5281af2e3f3c4d4e4f465758595a5b5c5d5e5f566768696a6b6c6d6e6f637475767778797a7b7c7d
7e7f738485868788898a8b8c8d8e8f82939495969798999a9b9c9d9e9f92a3a4a5a6a7a8a9aaaba
cadaeafa110002020102030505040506040803036d010002110304211231410551136122067181
9132a1b1f014c1d1e1234215526272f1332434438216925325a263b2c20773d235e244831754930
8090a18192636451a2764745537f2a3b3c32829d3e3f38494a4b4c4d4e4f465758595a5b5c5d5e5f
5465666768696a6b6c6d6e6f6475767778797a7b7c7d7e7f738485868788898a8b8c8d8e8f83949
5969798999a9b9c9d9e9f92a3a4a5a6a7a8a9aaabacadaeafaffda000c03010002110311003f00f7f
62aec55259345b89277235ed4236625c428d6d45527a00602683a0a9c554db46951d637f31ea0b
23fd8467b40cd4a0d87d5f7ea315639e70f20eb1e6182dad2c75cb9b7b88cc8d16b92b43f5bb0764
2824b558a0426435a7c522a53edac83e0c559ddac2f6f6b0dbc933dcc9146b1bdc4bc7d49194005
df82aaf26ea78aa8f018aab62aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8ab
b15619f98fe7d8bc8ba2c9790c70dd6a9c5658ace79840be82cd1c52cac77345f500000f89d9576d
d9554afcddf9ad0f94b58b08aef4cbb6d11c6a9fa46e45b4a6658f4bb68ae8dc40a36920e3237293f
9978ad5b6c5519ab7e6ef93b46bcbab0bc92e8de5b46b38822b596492689ee6decc3c4aa3932fab
750af2a51b95579056a2a94f997f39f4bb0d05f51f2fdb497daac3716915e69d711b42f6b1dc6ae348
7371bd50faa9308e9cb99898fd8f8b1545e8df9b7a3cf1e9d69acab45adea17f3d80b6b28a5b84882
ea573a75bcb210094495ad8fc54e287ed954f8b157a362aec55d8abb15762aec55d8abb15762aec
55d8abb15762aec55d8abb15762afffd0f6b2798f5bd4a7bd3e5ed2a0bbd3b4fb896ce59ee6ecdb49
34f6e78cab0a08641457e4959192acbb7c146c5538d0f57b7d7b49b4d5ed91e386e93988a500488
c095646a122aac0a9a123c31579df9a74f967fcccf2feb1a1dab35c6966f22d7e71657093456f75a7c
9e9dc4774691ce11d238d6d42caa5e4e74578f1562da98d613cf7a96b46def752e173e4d8f4f9af74
9332a412cccb7f2c3cad8fa2e91bb49298cafa2c7e2e3c540551ba4f9a7f342e2cf45fd2135edacda9
9be90dd1d0dee425c5a5f88e2b49604584c4935a83224d23a296ab7aa02aa32af701d3c31579f41
e58baf326a5ad5f5c799b5bb2116a12db436b6376b05bc71c491d02a7a469d6a77eb8aa2bfe55c3
7fd4e1e65ffb882ffd51c5589ac3a0c5e72d43c93a8f9dfcc3a76a965059dcdb35deaf6f1ade25f09c8
10295e64a7d5df982a3c46d8aa6367a4f953504864b0fccdd56ea3b994416f241ad5bcab24c40211
595082c790a01e38aa03508343b1bbd1a18fcede61bbd3f57b89ed4ea96fab5b35b5abdbd94b7d5
998a8215a289882011f66bb362a8b1a7e856c6edb51fcc0d634fb7b7b836d14d75ad590598adbc7
70c57e12578ac9528fc5f88e7c7d32ac556b5eb0d07cbf657b3cde7dd76e2f6d6d67bc5d362d5ad7
eb7324109b861123a2f26f4c721fe4eff00671549bcafa8687ae8ba8eefcdfe68d0ae6d6d6c75078b5
3d46cc29b4d5a2926b791644491371149c90b074f4d895e1c5d954edacf47b5b8d4a3d53f30357d
3adad264812eaeb57d396395a4b65b93c008cb21546af170ad41cc031d1b1547695a0e9bab5f5fd
8695f981aede5e692d147a8451dddbbfa4d7112dc46189b5a1e51bab8a13b362a9a8f21df0040f3a
798403ff17d99fc4da138ab63c897ea08ff001af98483e32d893f7fd4f1577f8175006a3cebe60ff91b6
27f5d9e2aaa3c99a98047f8cf5ddffcad3bfec871549bcdda36bbe5df2ceadaed979c35992ef4fb67b9
8639869ef133443900ca2c8120f7a118abd171548bcd1e4ef2df9cb4f934df3169f0dec0ea143c88a6
540195e88e412b52a2b4c5525d77f2bb41f30c8efa85eea455935081234ba2238a0d5ad92d678a2
52a7827041e9aaff76c5997738aa4f7bf923e4a6bfb9d7ae2ef5559c86926a5ec8d185f5ad2e9808e
8c29ead8c52500fb5c80f85b8e2aa1ff002a6bf2f7ccd08d52d751bfb8b7bd95e6bcb8b3bf645bc035
17d4d239cc4072582ea491e31f0b47cde3af1f87154e74cfca5f2fe91aa596af63a86ad15e5a35c19f
8deba47791dcdd4b7be95da20512a4734f2bc60fd9f51d2a50f1c559179bf50bcd2bcb97d7da7c8b1
5ec6a8b0cae9ea2a34922a72e248ad395695c5507fa13ce20ff00ca5429efa741fc1862a944b7d776
d01b8b8fcc5d3e3815da133490592a0922019d2a650392820b0ed8aaa0b8d40dbb5c8fcc0b1fab8
9fea667fabd9f0173b7ee797ab4e7bfd8fb58ab52dd5fc3ebfabf983611fd564586e795bd9afa52b160
11eb2fc2c4ab000eff0009f0c55524935589e68e5f3e592496e91cb3a35ada831c73102367065d95c
90149fb5db155a8daa84b7b93e7fb36b7bfafd49cdb5a7a72f0146f48893e2a77a16c55156d6be63b
d086cbce76f701e349d7d2b2b793943254238e32fd962a68dd0d31557fd09e74ff00a9a93fee1b17f
d54c55bfd0be74dff00e7698fdaba6c7b7fc95c55a4d17cecad57f34c2eb5e874c8c1fbc4d8ab6348f
3a84e27ccd0193954bfe8c51f0edb53d7fc71558746f3df2257cd36bc6a68a74a076aedd2e462ad0d
1fcfdb7fced367ee7f44ff00d9de2aefd0fe7fff00a9a2cabff6c834ff00a8cc55bfd11e7fede67b1ffb8437
fd96e2a81be83f30ad2eb4cb75f31e9ee2fee5ad9d8e92e0a2adb4d3f21fe9bb9ac417fd962aff00ffd
1f507e6168be623e66b19fcb3f58b2b0b9b90faada5bdd496e35b9fea73b35b9a301101140abeba1
47695a3e4dc237e4abd29a5b7d0b4484d869b335adb47147069b671a99513650aa9c80f8475f8b1
54b0f9c9c71af9735af8bc2d14d36aeffbcc55c7ce4e3a79735a3df6b54ffaab8ab97ce44fdaf2f6b4a7
6d8da03d7e521e98aaf5f378604fe82d6053b1b33bff00c362aa1e46bd37f16b9706d67b4aead703d
2ba4f4a4fb111ad2a76df156578abcfbccbf95967e65d7ef358bbbd22d6f9b459a7b4f481713f972ea
5bcb531ca181556925fde8e35645e2acbcce2a95e91f932ba49f2f04d4edae22d1b4bb1d22e52e74
c867327e8b95e6b7b9b7323916f30690963c6607e02a15915b154a1ff00213539e48ee6e7cdc4ea
115f59eaf1de4563e9b8bfd3b4e974f85f81b874294915de12be9b70f4c2aa37c0ab21b9fcaed42fae
ef2f6f357b779efaf67d466e3625544d71a20d1982833b50507add7fe2be9f162ac1b4bfca6f3347e6
3d62c1e048b4f9acce9b6faacf02985564d1a0d2defe131de3335c482de35785e08d5635e3eaedcd
d56710fe4ee95a7d9794d747960b0d4bcad04d6e648ad105ade8bbb2fa8ccf3c0aca4b950ae8dcfe
1a70f8918e2a96e87f91569e5c4b1b6d3755f56c74d9ad66b48ef2dfd7938d9e832686ab23fa8bc89
593d62c146e38538ef8ab28fcbff20cde466d417f498bfb7bf8f4e063f43d164974ed3adf4e2c1bd47a
abadb2bf1a7c2c5be26c559b62aec55d8abb15625f9a0e91fe5df99e490858d34eb86763b00aa849

27e43154c7fc69e51ffabe58ff00d2447ff3562a956b7a87e5e798a28a1d5759b678e12cd1883517b
5356143536f3464ede38aa48ba2fe5147b26afc6be1af5f75ff00a4bf6c55cfa47e552c2eb6dad0498
a9f499f5ebf650dd8902f01201eb4231543f91b4cfcb2f215c6a5a95af99edee35ad64c6753b9b8d49
9a26308214470cd3c8100a9dc9695bf6e47c559a7f8ebc97d7fc43a753fe62e1ff9ab15483cebe6ff0
029df7966f2d6cf5cb0b8b999a048618aea2677633c6005018924fb62ace2f2d85e59dc59991e217
11bc46588f191048a57929ecc2b5071578f69ff0090d1d9dae9b135e69c6f2c5674b8ba8b4e756bc6
934b9b4b8e59fd5b99497549431e2427c3c15546f8aa9dc7e42cb717514926a5653e9e21b7b3b9d
26e2ce636734115847652332437517c6de92b0dcaf0e513ab579aaa96f9bff2c753d3ec934cd3f4b4
d5535ad5b58bfd4ee6d2dc2c6b6baa40f01b49d44e8e448b338f5857d3e1feeb62b8aa32fbf222eb5
bb4d5dafa6d3a0bed5de2b98a57b69ae6e2cc49716b773d987370237883db04465891997d3e5fdd
fc6ab20d23f2cf55d0f599b556b9d3ef74b9dee25b8d264b1337a63f4a5d6a901b4e52aaa480dd346
c48a131c522f1e3c7154d7f2a3cab3f96741985c25cc115cdc4a74ab0bef4beb161a4891dad2cdbd
22540883b715e4c543702df0e2acf715762aec55d8abb15762aec55d8aa4fac93fa47cbdefa8495ff0
0b87dde2aff00ffd2f62dc5b7983cd7245e61d3a66b0b6d324f5fcbb63728631752a878de6ba054ba
c72c6ed1c494e48adebb0e7c5115653a2eaa9ace9f1df2c325b484b47716b30a4b0cd192b246d4d
895604547c2df697e1c5530c55d8abb15762ac7fcadf6f5dffb6b5c7fc423c559062ac03cf3e7db0f2a
1d462fd356c358920b3b4d2f4693d34912ff00519e486099e576a7a6c685c30a4691339fb58abc8b
4afcd9d63c9fe5abff0027c9aa5a4be62f2aeaef6a8b7174b7d777ba15c5acb776862b83c6296ea31
48e44729ea981a257496689b15645e66fcd1f3568d6fe6c11eaf610b68621bbb0bc9e28dd26b5d5e
5b75b34f4d5c12f071ba598023a44dd1f1554d13f386e2fbcc2de59d475eb182286eae22b0d64c02
68354faaea52453db9589a91bc76aaadcc32ab1944dbc71bae2ac2b41fcd9d774ab1f2a795f4df345
80b7d43f4120bdb8812592de0d467d4a19e3f8a51531adb5bb7390d417ab7c32280ab2197f397cd
9f50b5986a7a7dbdddc5d4767acc734295d2273af5bd82ab27aaa5d66b496595496ff0074faf5f45b
8e2a8cd1ff003975abb91ed1b54b09ef6dae61b7d354ac71a6b5126b5736174eadca91bc76d1472
d17e14e7eb3728585154b6d3f3e35c7d2a59e7d42c1afedac6ce5bcb63e9d9c9f5c175a8c377042f
3d62f5963b7859629194331f4fd4432c642a84f2e79cf4193cf1e61926d7749412f9a2d2486dee9e7
3abf09f49b11c6ce3590aaa8bc663221e51a9172b27738aa7137e6df9d2cb44b25d62ff4cd2b5696
eae343bad56ee36fd1f1ea76114ec271e98666b7bc7f4bd2a53ec3c7cfd475c5526f317e7379ca1b7
f30c36dafd824e8bae45606d2d544b6eda4c36370922facce5ebebcc9474e8aa78aba362afa56ca7
8aeacedee6de75ba8268d248ae5285654750438e3b5181aed8ab1bfccdffc97de64ff00b67cff00f10
38ab2ae2be03157715f018abb827f28fbb157704fe51f762ad18e33d517ee18ab5e945fc8bf70c558
e79f638d7ca77ec116a3d0a500ff007fc78ab252400493403a9c55f3a798b55d32fbceaf2ea9e62d2
aea197ca76f72f7f35f5d69962f2fd7e6469a08e099b8c9e96cb46e7f63e2a62ab3fe572f9d0b798ee
d358d1edb4dd224f32be9d6f3da48679edbcbaf6ad6e0bb5d2d5ae12e195db87ecf244af2c5530bdf
ce2f35dd9d524d2752d06c0dbeab6ba41d3ef04d737d67ebeb115809668d1a14e12db49f588c993
7d8a738f970556ea1f9c9e68d2ef7cc304ba9e8f2c5e5d64b1d4fd48c45e94f2df5b5b25e27a7732c9
e82c32bcd701e1fdc3aaa7364f8b1575d7e6f79e74dd434e596ef42d4edf8685f59b6d392693ebada
cde6a168df569de5400f1b78644fdd32f2661c990a3e2a99c5f9a1e68b9d0348f396977da7eb3a1dd
cf6f69abe9da7da4925ed95cea96c2282263eb52b0df3469286557589cf3e2c9baa82f2f5c9ff00958
5e6e8f56d5edd9acbcc9a7dbdbcb36a17914a1e6d1ac9b859da24863647bb918b45529f14cadf671
55d79f9a7f98567a55ac5751e9da6eacd7971e5fbbd53558e5b4d2d356d3a3b99a4955aae7eaf71c
21586a4135938b33f1c554758fcd2f3f01e688a0bcd32dcda47abdbe96b6d6b2c93c53e9961697cb
2b19a5a483f7f24657d24fb2aff00cc98aa03cd1aa6bad6df99df53d4ccd656daff0097120bc8b50b98
248a29e1d31a616eb192ab1c8d24a4aac8aadce407a62ac8a6fcd6f3049e61bdd0b47b9d31a0fad
5adb594f730cc0c41b59974a9d193d6577645549013e9f26e4c3f74f1b62a906a3f98be62f3445e50
8ae6f22d2ee20d6f403a8c36beb40da8c7737b716b34909136d6f584868dbd5a1e41dbe146c5553
c9df995e6d87cb7a3e9963358b4da668705e5db6b92cef797e26b5b9904d6e549697d2961549413
da5e724678362af6af26deeb1a9f9674dd535d96d65d42fe04bb6fa8c6f140a93a89111448f231e21
a85abf175e2bd31556d645751f2ff00b6a121ff00a70bbc55ffd3f7f62aec55d8abb15762aec5584447
cf1a25fead1e9fa0da6a561777b25e5bdcbea5f567e12a20e2d19b67a1054fed1c5511fa6ff30ffea52
b3ffb8c0ffb24c552fba4f335f4cd737bf97da45cdc3801e69b518a47200a0ab359127618aa1ce9bac
9ebf96ba19edfef6c1d3fe9071541697e57b8d196e174bfcaed0ad85d4f2ddcfc2fa13ca79cd646dec
8d2be036f0c5516da66ae7afe59e86d5a03fe9b6fd074ff008f1ed8ab9b4bd59bed7e596846bd6b79
6fdfaffc78e2aa4da5eac294fcadd08d2a052f6d7a1f9d977c55afd15aa30f8bf2af43df623eb9687a7f
d19e2ad1d375703ff25568869d00bdb4fe3663156858eaa168df94da574a512ef4f23f1b75c55a7b1
d4d4111fe52696d4a52b75a72d477ff00749e98aad4b2d455ab1610000026060f002220574d4643
01000000000001000000000000000a0000000020000040f7000040370100ff002a834d141f0b2dd
6964edff3cc62a9cc3e64f3ddbc696f07e5ebc56f12848923d52c155557600282000074c552cf345ff
e61f997cbba9e811f91deda4d4a07b517126a964638fd51c79b0525885ad4802b8abd3b15762aec
55d8abb15762ac67f306a3ca1a971ebfb9a7fc8f8f156472c514f13c13a2cb04aa5248dc065656142
083b1047518aa4527913c912f132f96b4a728aa89cac6d8d1505140ac7b003618aadff00790faff00
85f48aff00cc05b7fd53c55bff0001791a817fc31a4f11d07d42da83b7fbef1548f48fc96fcafd1353b8d
5ec7cb76a6f2e1a5702e035cc509b893d593d08a62e910663522355f0fb3b62ac87fc17e4fa83fa03

825

4ea8dc1faa435ff88e2a97dffe59790f52d4b4dd56eb42b5373a4b4b25a2227a70179d42b19614a47
2914aa7a8afe9b7c69c5b7c55321e50f2a860c345b20c3a30b78c11f234db156cf94bcb07ae91687
e70a1fe18aad3e4ff002a96e4746b32dd2be825687e8c55b3e51f2b9a5748b4db61fb94edf462ad8f
29f9642b20d26d78bd390f496869e3b62ab7fc1fe56dbfdc3da6d5a7ee536af5ed8ab7fe10f2b7fd59
ed36d87ee53bf5ed8aa65656367a75badad8c096f6c84958a250aa0b1a9a01ef8aa0358ff8e8f97ffe
63e4ff00a80bbc55ffd4f7f62aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb1
5762aec55d8abb15762aec55d8abb15762aec55d8aa1b50d3ecf55b39b4fd4215b8b2b85e1342f5
a32f5ed438aa55fe0cf2e8ad2de5dcd4ff00a55cf5ff0091b8abbfc1be5eff0096797fe92ae7feaae2ad
7f82fcbd4a7a1353c3eb775ff5571570f25f9754d441383d7fdebbbffaab8ab63c9da001410ce075daf
2effeaae2ab87947431b88ee3fe932eff00eaae2ae1e51d0c00a23b8a0e9fe9977db7ff007ee2ad8f2
9e880050b7200edf5dbbffaad8ab43ca7a21a9e375bf5ff004dbcedff003db154a7cd9e5ed36cbcafa
d5edab5dc575058dc490cab7d78195d2262ac0fadd4115c55364f2a68cc8095b9a902bfe9d79ff55b
156ffc25a2ff002dd7fd275e7fd56c55a1e52d107ecdd7fd275e7fd56c5570f2a68c3f66e7fe936eff00
eab62ab97cb1a42d282e7e1e9fe99767fe66e2aa6fe51d0a568de48ee19a17f56226f2ec9572acbc
87ef7634661f238abfffd5f7f62aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8ab
b15762aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb15
762a9179d29fe10d7b96ebfa3eeaa3dbd26c553b8ff00bb4f90fd58aaec55d8abb15762aec55fffd6f7
f62aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb15762
aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb15762a9079e0f1f267981bc3
4fba3ff00249b154f63feed7e43f562abb15762aec55d8abb157fffd7f7f62a96eb3ac2e8d15bbfd52e2
fa6ba9c5b416d6823323394792bfbd78d400a8c4d5b154bff00c4da9569fe16d5be75b0ff00b2cc55
dfe25d4e95ff000b6abf2ad87fd9662ab3fc55a88ffa64f58f0ffa57ff00d9662ad8f34ea64ffca27ac0f72
74f1ff6398aad3e6bd4d46fe51d64fcbf471ffb1dc55a1e6dd489a7f8475a1d77234fa6dff47b8ab9bcd
9a928aff8475a3ec069e7fec7715587ce3a88ff00a63f5cfa174fff00b2dc55c3ce3a89ff00a63f5c1f35
d3ff00ecb71554d3fce4b77ac5ae897ba26a5a55d5ec734b6b25f25bfa4e2db89750d04f2d0d1c1dc
0c559362aec55d8abb15762aec5524bbf34e9769a94fa4f1bab9bfb68e296e62b4b4b8b9f4d2e0b8
8cb3448c072f4db6af6c55a1e69b2248fa96a5b7fdabaf3fea962ad7f8aac7bd96a7ff70dbdff00aa58
ab43cdba7d056cf535af8e997a3fe64e2aeff16e9dff002c9a9ffdc32fbfea8e2aeff1769c6bfe89a98a7
8e997dff5471577f8bb4da57eaba97fdc32fbfea8e2ae1e6ed34ffc7aea5ff70cbeff00aa38abbfc5ba6f
fcb2ea5ff70cbeff00aa38abbfc5da6d2bf55d4bfee197dff5471545e95af69dac4b71059fac9716a11a
786e6de7b5902cbcb83719d109078b6e3c3154cf15762aec55d8abb157540c55d8abb1563fe79ff9
42fcc1bd3fdc75d6ff00f3c9b154f93645f90fd58aaec55d8abb15762aec55ffd0f7f62a926be09bcf2fd
3b6a43fea12e7154ef1578cf9a3cc3e76b1fcc2bcb3b7d46eedf405d4bcb4891259acb0ad95d7d652
ec893d3268f2ac68edcaa9b7d918ab2afcbb91db59fcc085e495a38fcc6e6dd2669182c4da7d957d
3f52bf01944bf67e0e7ce98ab3cc55d8abb15762aec55d8ab13d6b7f3e79537e96dab1a7fb1b61fc7
156598abb15762aec55d8abb1561fa186ff00958be6f627e0fa9e8cabf302ec9fd78ab30c5583fe68f
9abccbe4bf2dddf99b44b4b2bbb4d3a132de457af2a3bb3491c71ac7e98207da62ccde00537c552e
b1f3879e356f32eafe4db2b3d2e2d5fcbb6f6f75aaea12bdc35a48750698dac30c602c8098e2e52bb
3158c90a8b27ecaa9ee97e67d5e7f355bf95f55b086d6e1b438b57b978a63294b969bd092103880
51483c5ebf1780c559662aec55d8abb15762a92590ff9dab583ff002e9a78fb9eeb154ef15762aec5
5d8abb15762aec55d8ab1ff3cd7fc19af81d4d85c81f4c4d8aa7e07c2062a9768979717b6d712dc90
5e3bcbb81388a0f4e0b878d3e9e2a2b8aa658abb15762aec55fffd1f7f62a92ebdfef6681ff006d1ffb1
4b9c553ac558979d7cdf79e59d1f58d4f4bd3c6a12e83652ea7a8c770f2da45f568ade79808e5f4a4
577630f0e2bf639727a7c3c954a343fcd8d2a6d2ed2f7cd4b1e8d757d69a66a56d6f119eed7ea9ad
3450dbb33881003f5893d06ec1b8b1a2be2a8ebafcc5d3ef56f61f29341aadfe9b13dddf473bcd6b1
0b38bd78ccd1c9e8b89419a068470db92beff00062ac5e1fcea9ec65f2a5df9af4b834bf2f79a7469b
5d4bfb79e7bd7b78a18ad252b2c696ca405facfef24fb0aabcbc68ab2cbefcd6f20e9b1ea135f6ae20
834a96782fa6782e0471c967cbeb0037a746f4421697816f4d7e26d88c5559bf327c982e6e2cff490
371005e082294fae5e65b70b6d44fdf37aaeb1d22e479b2ae2a8bf24f995bcdde5cb7d79adc5a99e
6bb87d105cd05a5d4b6c09f5123605bd3e4559415af1c5590e2ac475b3ff002107ca6b4eb67ab9fb
85a62acbb15762aec55d8abb15762ac4b4320f9f7cdc3b88349afd29718ab2dc558ff9e347d075ef2
aea7a679a2e4d9f97a48bd4d4ae7d616c2382022566695b6451c6acde18ab1cd38fe5c79b7cd2fae
795bcd104fe6bfa80b1bf9346d4209259ec6de5e4bebc285d4fa4f21e32700f1fa8543057e38ab29b
7f2be9d6bafa798e379db504b05d294492974fab249ea8a86a92fcb72e5ab8aa95979e3c9ba96ae7
40d3f5fd3eeb5b0d227e8f86e629272d07f7a022b124c7fb74fb1fb54c553fc55d8aa0eeb55d32caf2
cb4fbbbc860bfd499e3d3eda491525b86850c8e22526ac550166e3d177c55198aa4b65ff002946b1
ff0030b61ff12b9c553ac55d8abb15762aec55d8abb15762a9179d38ff0084b5ae7f63ea7372f97135
eb8aa7b8aa49e5720d95e53feae5a8ff00d464b8aa55f99a915cf9526d35fccb179524d4658ad21d4
e7731ab48edc8401d2681d4ca14a5629639695f4d95b7c5583ea9e61d4ad3c8be5db17beb7d1ee
6797cad697da63493dc5d470ea3a80b79b9dc5c4deabc73a2b042f49a8927a8eccdf02ac7e1fcd0d
6bcaf6579a679760b1b9d3b43b3f31ea26d647bebfbc9a3d13586b2016592e2590868dbd576a4a4
712235e3c42aaf4687cf53bfe5e5cf9c9f5ad005b453868f5b5b893f439b137489cda6207ef3d262bf
0931faf41cb8d68abfffd2f7f62a926be7fd37cbfefa97fd8a5ce2a9de2ac3fcdbe54d7bccf63af68c9ac
a5b68daf599d3a484dbfa92410c88f1ccd1373003c8b2104b06a5178a83d5561f73f92977776da45
a4fae0316916161a529484a35c5ae937715eda89887fb492c2b568fd3e6a595ab8aa0fc9bf965f997

a4c3af41a9eb5a5dbc5adc3730ca2ded45c344f757134ecd6efc20648c19df8c52fac03372ebc8baa
afa8fe4a6b1a9e91a3e8b3f99145ae89a25e7966d645b40256b1bf8e18a42e79d0c8a96f18460a07
5e4ac4e2a895fca1d750c538f31463518754bed663be1683987d5052e6128ced198dfb5539a1a14
7db15415efe45ea17daa9d6e5f31b0d4e39cddd95c7a6ccd6f37d6a1bb8ca97762eb1bc20224a5d3
d3668f8f0e3455e93e4bf2e4de55d093469eefebae93dcdc7d60af125aee77b87a8ff5e46fa3156418
ab11d6857f30bca67c2cb58ffb13c559762aec55d8abb15762aec55896863fe77cf369efe8695ff26e
7c5596e2ac4bce5ac689a65d6930eb90df4f693bcfea25ac13dcdafa620653f5b8a147f510960110a
b7c655e9f096555e3563af8d2e1bebdb6b4d4a39dbced75aac91dad95da5c4fa1df555f89118d9be
1668d995be0fe655c558969bf991a8dceb5a7793bcc5e6bd6ed7578b46b0b7b81041772cd0ea73e
9f731c8b2a403d4994cb2437324ed19e3e92a2b7a6cec1566365e6786cff002c340f2de9fa4cda679
dfcb5a7416b6d7a6ca6f4639a18d60bb36938849e57317aa11d9528d20697830c5524d77ccbe729
757b8b9d1359d6d742861d427d0ed47d6d65498dc69725a4775cd2b27d9bfa2bb38f4596393f654
2a989d735737b3a691abeb3633467cd9776d35c1bdfa83df5ddeacfa2b4aacaccd12c45818e9c147
c0e9d3154e344d66eb50f3a7971da5d427d223d622bab4b7d4449717368d2e89776973ca671fddb
dc4d1051c9be2f55942c5c7157d018aa4b6447f8a7581dc5ad87fc4ae7154eb15762aec55d8abb15
762aec55d8aa45e75aff0084b59a6e7ea92d07fb138aa67a95fc1a5d85cea5721cdb5a44f3cde9a9
77f4e31c98851b9a01d062ac6bc8daee9da92ea1636329b968aeef2edee2305adfd3babd9cc404a
3e166655e7c549a21463f6d6aab2d7449178c8a1d76346008a8dc75c55cd1a3fda50df315c55a586
25219635057a100022b8ab7e9c7c3d2e0be9d29c2838d3c298abfffd3f7f62a927992cb57ba8f4fb8
d116da4beb0bb5b9115ec924313a7a32c4c39c692303fbca8f87b62a979b9fccaaeda6e854ff00b68
5e7fd9162aefacfe65f6d3342ff00b885e7fd9162ad7d67f332bb697a153feda379ff006438abbeb3f99
9ff0056cd0bfee2179ff6458ab62e7f32bbe97a1ffdc46f3fec87156c5cfe64f135d2f43e75f869a8ddd2
9eff00e838ab85cfe64fed697a1fd1a8ddff00d90e2a81d67cc1f983a2597e91b8d0f499ace3751772
43a8dd13040db34eca6c6a513abf1dc255bf67154c52f7cfb2a24b169ba33c4e392b2ea572432915
041163420e2a87874bf355ff009ab4ad735882c2d2cb4cb5bd83d3b4b99ae65924bc3053692de10
02888f73d71565f8abb15762aec55d8abb156096fade95a279f3ccffa62ee2b15b9b7d31addae1bd3
120449c3712d4078f7a74c553dff001b7946b4fd356753ff00172ff5c556b79ebc9a940faed8a92788
0d3a0ab1ec2a7ae2abc79d7ca24d06b7664f5a7ae95fd78aa90f367925ae05c8d5b4f375c4a09bd5
8fd4e15dc72ad695ed8aaaff008d7ca35a7e9cb1af4a7d623feb8aad5f3c7935e3f563d7f4f78a9c83
a5cc4ca47882188c557ff8cfca3b7fb9cb1dfa7fa447bfe38ab5fe34f28ffd5f6c3fe9262ff9ab156ffc69e
51ffabed87fd24c5ff3562a84d0752d3f55f32eb775a65d45796c2dac2332c0e2440ead724af25a8a8
046d8ab27c55d8abb15762aec55d8abb15762a91f9c7fe515d5ff00e6164ff88e2a9e62a94f977cb1
a1794ec64d37cbd649616535cdc5ec90c75a35c5dc8659589624eecdb0e8ab455a2a818aa6d8ab
b15762aec55fffd4f7f62aec55d8abb15762aec55d8abb1552b979e3b79a4b68c4d72a8cd0c2cde9a
bb804aa96a1e209dab434c5507a36b169aed80bbb6aab06686eed64a7ab6f709b490caa2b4753d
47fb21f0918aa4164abe46bd87492bc3c9f7d204d325afc361752b6d6ad5e90c8c7f707a23fee7a34
23156618abb15762aec55d8abb15762aec5563cd0c6f1c7248a924cc52246201760a588507a9001
3b7618aa4de6134b8d0bfeda483ef827c553cc55d8abb1561bf9692c16ff975e5c927748a3faa429c
dc855e4edc5454d3724803df1566341e18abb8af80fbb157715f01f762ad8007414c55d8abb15762
aec55d8abb15762aec5523f38ffca2babffcc2cbff0011c553cc55d8abb15762aec55d8abfffd5f6cfe60
f9adbc8be4bd6fce0b65fa47f435abde359094406458b7601cabd0d3fc9c551b77e67d22c6492dae2
664bc4f45443e8ccc5e4b84778d63e087d43c6376611f228abc9f8e2ac7fcb3f99fa0ebfa1e877f733
4561aa6b905a491d83b3c891dc5fc66482179bd3501a400f00c159fb2ee3154bbc91f9cfe5af35797
b43d5b5474d1752d7238e6834b6692e0c697178f610179562551ea4c9c14b711cd953a9155535d
2bf35bc8dab41632a6a62d65d4a5786d2d6ed1e19d996796d949423e1123c12088b53d4e345f8b6
c5560fcdff00cb9683eb4bada9b7fab7d7fd5fabdcf1fa9f1e5f58afa5fdd53fdd9f63fcac5513a87e67f9
134a9e5b6d47584b7b881ae9278da29c943a7ac4f725a919a2c4b3c4cee7e108ead5e38aa45e63f
ce3d174ad175bd5b4a44be97444d683d95c3cb6725cdc6816e6e264b7630c88eb406b25401f6979
e2a8aff95b5a04ba86896d68f1c963a835ec5aadd48ef0369d258588bf2258e58d5a8d190c09e1f03
2baf256c555175bd32ea7b8f3d7932e9353d3e195ac3cd3656e18bb1b5a0322a1008b8b7045548a
cb0fc3bb2c38ab2f9e0d2fcc1a53c1308efb49d421a1a1e51cb0ca2a08653dc1a8607dc62a926817
d77a45f0f27eb73493dc24664d1b5398d4de5aa75476ef7108a093fdf89c66ef2045594e2aec55d8a
bb1561fe61f32f98f45f33f97ec20d36daef42d66f0e9d232cd27d7e33f5792e0dcac610a18a3f4f848
0b06f8b957a23aaa337e6a79560be8f4e993508ee196c1ee0be9f76896dfa56458ad56e19a302369
1db8f16f897e2e54e271559ff2b77c8e2eed6c5af274b8ba9045f15a5c88e22d7f26980cd27a7c101
ba8cc1566fb653b329c5507e77f29cbaef9ab40d425bbf4ae2d65917cbeca9c8595dadadc4af72413
f1339548c8e9e9074ff76be2ac9fcc3cfd5f2ff2a73fd27172a6c2be84d5a62a9f62aec55d8abc2af3cb
8de67fca7f25db5e5cb2e811c9a4b4d6b0178e796e64d42dd2193d45228b106791450fef7d37ff007
5eeabda74982fad74db5b6d4ee05e5fc31ac73dd85e1eb320a7a8546c0b52ac06dcba6d8aa8dfeb
ba6e9f7b6ba64d233ea77a19adace14696668d1955e42a80f18d4baf276a28af5c55122f6337e74ff
4e5f544227f57d27f4389629c44b4e05ea2a52bca9f15298aaffadda7d605a7af1fd6cc7eb0839afa9
e903c79f1ad78d76e5d31556c55d8aa935d5b25c476af322dd4cacf14058091d63a722ab5a90bc85
69d2b8aa075ff0030e91e58d31b58d6ee3eada72cb04066e0f27ef2ee64822148d58fc4f22ad69415

827

df6c555135bd264d6a7f2ec7771b6b76d6d15f4f620fef52d6e1e48a3908fe56689d47fab8aa267bab
7b60beb48159f97a71f591ca29721146ec6809a28ae2aeb4b98ef2d60bb896448ee235951268de1
942b80c03c720564615dd580653b1c555b1548fce5ff28aeb15ff0096597fe238aa798abb15762aec
55d8abb157ffd6f7079d3cad6be77f2aeabe52beb99ad2cb58b77b4b9b8b5e1eb2c526cdc3d45750
48daa54e2a82d6fc972eb53d8deb6bb7b6b7fa54d0dd6953c296bfe8f3a4135b4cc15e160e278e77
5915f905f85a2f4ce2a92e95f93da268f0dadadaea57d25a4034d79a19cc0e27b9d169f539de912d1
90aa1609c564f4d392fdae4aa59a37e4368da269963a45bebba94b67610d8dbc22516858a69baaf
e9788b15805499be16ff008af6146f8b154c344fc9ed37cbba98d4f48d6f51819e16b4ba82b6cc93d
b2dd5c5e5ba3130f25f464ba94064657910f1959f15565fca4d25b4b3a3dd6a97d3d8bf973fc23203
e823b598e5c65e4910a4a01a547c1fe462ac7751fca0d565f37d85cc3aa5cdce877d06b5fe28bf9da
d45cc926af0585b98a2892dd515192cbe26146466f87154def7f24bcbf7d1df59cba8dea6957afac37
d462f411625f305a9b5b948dfd22c02862d1549e2dfccbf0e2abaff00f25b43d5656b8d4b52bd96eee
52ed352b98bd1864b9fade9c34b53548fe030c2a3d3f4f8fc7f1b72c559af97b469f43d396caeb519b
54b8af292f2e23821663403fbbb68e28d761d9715603aef994fe5ceaf6da65a5adca797f55d52c6de
202d65782da7d42e52391627446410c9cd98d594c12f6f4e5f8157a16bba2dbebb606ce77782547
59ed2f213c66b7b888d5258dbb11d08e8ca591aa8cc31542797b5bb8bc7b8d1f5845b7f31e9d417
71282239e26244775057ac5253a6fe9bf289b75ab2a9ee2aec55d8ab1cbef2825f79921f321d6352
81e28e384e9d04d1a59ba44e5e847a4641c988f538c8bcf8a86d97154bee7f2db4abc5d4feb7a8ea
134faac7a625c5cb4b17aab268b27ad6d3211101cfd4f8df90657fe5e3b62a953fe4af961c329bfd4c
8731b3d678daad0eaedad86de2ea6e9893ff0015fc18ab2dd64d359f2e8a56b7738af87fa1cf8abbc
c3fef4685ff006d24ff00a879f154ef15762aec55e61a153fe553f94ebd3d7d1bfeea1062af4fc55e61e
73fcb9d5b5ef37bf98b4b9e3b79aeacf4cb28f51f55e2bad39b4bbf96f1a4855548904cb2fa6f1b1553
c579f24634552df31fe5c79a356be7974fb6b0b0d326b2b3b57d3a2bc9d62592db5c1a8cae290283
eac2082683f78c50fc1f1e2a9037e5079eadb50b8d534e1a6ab982682daddae658c8b38fcc536ab1
580905bb70865b59beaed4056229c7d3963c55ad4bf25bccf7306a90d9dbd944b345e5d8f4712ea
3773bda26977ef757f17aaf172a4b13fa0197fbc55e2e891f150aa07cddf961e73d074bf39dce9890c
fa23c7e60bad26dac66b9fae11abdada2416f1dbc71103d196d9a9c5ff6f9a28355c5513a97e4cf9ce
ef5bff13e82d63a5cd756daba5be9ed71214d34ea274b9163865486a5276b09c4dc553d3fadb32ab
f160cab7ae7e4ff009f353b36b1b58ec134dbf5b19a2d36ef50b8b94d1aeecf57fd273b4121b7fde8b
853e9f148e0587d34441e9e2a9e5cf903f308798f4cf3ce9b3c76fe63bdbcd42dbcc368f7119b78347
bf4114660956dc492cb07d5ed658d1c88f92ccbf0fa9cb1543c7f963e6d94795353bcd374e1ae684f
7706a8e97f3cbf5cf5349934f4bd469211e9c8efc5de3a72a1ab4aeeb8aacd0bf2cff30ac34dd26d35
1ba49af2ca0d22637a979234919d334d4b3bad3d7928e715d488ce643fefe769139a2f25590fe4ff0
092fcdde4f9b575f31320b1bbb2d0d2d608eee4bb0b7b6560b6f7d21f50023d4954372eb27da6a36
2acdfce3ff28aeaff00f30b2ffc47154f315762aec55d8abb15762aff00ffd7f7f62aec55d8abb15762aec
55d8abb15762aec55d8abb1548fcc5a1cda90b7d474b985a79874de6fa6dd37f7679d39c1301bb4
32f150e3a8a2ba7c68b8aa2342d6e1d72cda7589ed6f2de436f7f6330a4d6f7080168dbb1d886561f
0ba32ba7c2c3154d315762aec55d8abb1549f558269756d0a58d19a382e667999412115ad26405
bc2a580c554fcc440b9d07df5341ff4ef3e2a9e62aec55d8abce3cb36b34df95be528628da470da44
aca83910a9770c8cdb7600127157a3e2aec55d8abb15762aec55d8abb15762aec55d8abb1548fce
5ff0028a6b1ff0030b2ff00c47154f315762aec55d8abb15762afffd0f7f62aec55d8abb15762aec55d8
abb15762ac3aff484d7bcdf7b6b777fa8c16d69a7d9c90c1637d73631f39a6ba0ecc2de44e4484515
6f0c555ffc05a5ff00d5d35cff00b8d6a5ff0055f1577f8074cffaba6b9ff71ad4bfeabe2ad3790f4a5a72
d575b153415d6f511b9edfdfe2a865fcb6f2fc77935fc7a96b31dece91c5712aeb5a806748cb7a61bf
7fbd0b3053d7b62a88ff0002699465fd33adedf6bfdccdf5477ff7f5462ab7fc07a65081adeb9b50b7fb
99bed875ff007ee2ae1e41d3c10cbaeebbf10a2ffb98bc20d4576ac871570f22e9e1abfa7b5ce409ff
00a5bdd751d76e74c55225b7f28c9aacba4a79a35e3730dc3d8cd20d42fbead1dd476ff5b785a7fe
ec3887f78416e98aa750792b4eb98e39adfcc7adcd14a8248a44d5a76578d8021948620823a1c55
21f35699e4ef2cc30def997cc3e608eded79de25c25e6a13ac3e915859dda00c1779828e5f6b96d8
aa6ba5796749d62d8dd597983cc3e9a4b240e935fde412acb0b157564942b0a11e1bf51b62ab35a
d0741f2ee9edaa6b1e67d72db4f592281a73a8dd38125c4ab0c6084e477760b5eddf154c7fc076e4
53f4f6bbff007139ff00ae2aa367f96fa6e9f69058d96b3ae43676c8b1410aea771c523414551524d0
0c555c7912dc7fd2fb5cfa7539ff00ae2ae3e44b73ff004bed77fee273ff005c5572f91e15208d775ba
8f1d4a623f1c5571f2542578fe9cd6a9e235096bf7e2abdbc9f1b10dfa6f5814ec2fa403ad77db1577f
8405548d77581c7a7fa6135f9d577c552ff3268573a6797757d46d35ed556eacec6e67818dc2b012
450b32920c743b8ef8aa7de57bcb8d47cb3a2ea176dceeaeec2d679dc8039492c2aec6836152715
4db15762aec55d8aa47e72ff945758ff98597fe238aa798abb15762aec55d8abb157fffd1f7f62aec55
d8abb15762aec55d8abb15762ac76c9c9f3ceb294fb3a669a41f1e53df7f4c559162aec55e77f99fe4
bd77cd973a2be991da5f6970ade59eb1a55f5ddd58472417eb1289d25b457732c3e99e29f0f21237
19636f8b1579c6adf927e71bd97549e1b6d28dc5f1f34bc729ba9508975a96d64d3e434b724183d0
72773e9349fba2df162a98df7e5179a751bbbcb9d4b4fd36f666d6ad6f23bf9751bb32dd6943575d5
24b79edda1f411a24e56ea47a9ea0fda8a3664c558d8f2679b7cc1af799ecf43d30e9f3d95e4dfa12
eae24bab584d9c3aadbdebd95d136919115cadb98e092096e44303f0e0d19c5592ff00caa4f32437
f6f77a7e97a758491c1a1c5677115fcf73369ad657d797379e83dc4259e91dcaa213c04bc7832471
715c55b97c8bae2697a0e9faa5859e99e7a37705b457fa38bcbfb6bab186dcd8df4d7533c312db99

ad65919558f2f5962fde4ccbf0aa995f7e55eb3279aaef53d0ed6d341b5bab7bad375596d6ea57b7d
5b4bfa83db59457564f19559e191908b856e4218f8727593d34558edffe56f9d6db42b89752b8861
86c92df521f50924b89e2b6b1d08e9d3e910a2c485e19a45f58710a3f7aff00ba1610000026060f00
2220574d464301000000000001000000000000000a0000000020000040d7000040370100f51559
9544e9df965e64bbfca5d734fd26c6dac351f345868df56d1e49e48a18a6b4b681669e6668895964
2bf1811d7e04e7f196c5591eb7e52f3843e77b8f355b5adbdc682d7963ad5ca47712fd7d3ea3a65c
d94d6f04090b09246322321f5179fd8d8d0e2ac23c93e52f336b9f971af58c3a588fcc3aadd68b2cb7
77334b05a4d169af6e1b8acb6b0ba4ab1db9f57f764493b97e6391e2abe931d37dbdb15762aec55
d8abb15762aec55d8aa4be6faff0084b5ea75fd1d774ff910f8aa9791aa7c93e5b27afe8ab1aef5ff00
8f74ef8aa7f8abb15762aec5523f38ff00ca2babff00cc2cbff11c553cc55d8abb15762aec55d8abffd2f
7f62aec55d8abb15762aec55d8abb15762ac72c47fcef3ad9effa334c1ff25afb1562bf98de62f321d1
2e3cbde53ba8dfceda8cb78748fd1663965860d3c072d2acccabfde18609f71c7d7f877c552cd2bf3
96efcc27cae9a4da5b46de61b1066695de7fa9eb0c2e13ea9711c279c6a25b69116521a393d3917
9c6ca9ea2a84ff0095c1e6b9b45b1d4e2d32c6ca6bc6bdb27875133c3e9ea1a369f3dc5faa8eaf1a5
cc0f6e8df0d78b3fc438d554afcd7f9b9acebfe45d7f53d0a7b5d19ad6da31e81b978b5782e592d2e
629542a95682559c8e5f07c1c5c17e7e9aaa88bbfcf4f3269f3eab6b268b657b71e5db0d7752d592
d2698c93a6817cb6852de3e0c54bac8ae4b96e1c5be16c5513ac7e73799f4b9753d3e2d3b4db9b9
d263bdb97d50cb2c7617b05969916a87eac0736e4164f4a4ab108dc64df97a61575efe796ad0dbd
dea569a2c5358c73ea96a2d8c8e2e6d0e8dc59e6bb34e2b14c86b1b28f839c352fccf05538b6fcd7
bcbad662d324b380e9326b177a24fab5ac8d2ac6d1cb1c56c5950978fd5f50812f178848bc1da3e6
ad8aa0bc89e7ef334d1f943cbba9c0b7a3cc1a2d95fe9fadbc8cf25c7a40fe93f58ad02bc2ad0b46c0
fef0cdfe4362a92f913f35b5f4f2ff0096e19cc3ab1b9b6b2bcd4b53bdba6fac3aea3adbe97c630a9c6
a95565a9a1a70ff002b154d3cb3f9bde60d421d36d6f62d2ae3536b717da91facfd4435bcf79796aa
2de390c8ccf0fd57f7abf154baafeefbaa9527e7cf9adb418f5b6d0f4c543e5087cf1246b793b916d72
c516df7857e25a1e527d9ff0027154e350fce9d56293518f4cd3b4fbbfd1ebe62b90ed76ea2e20f2dc
d66be9c5c6371eace977f0ef4575e8c0e2a86d0ff0039f5fbdba7d326b2d3e4d51f52d582433dc8b0
11e9da66a4965e89f53956e951fd4651d761c7e3e4aab12f32fe6df9835bb497cc1a26a234db3bcd
3b47b8b1d3a0bb5496369bccb0d84cb3b3a52395a2668a4dbe0e5fcc9c8aacef54fcc7d4bca16967
2dc25a70bcd59ac7555bdd50de8d3239444b0ced2c717f71564f5796f0bdc4553c1b65511aa7e732
d95afd7adadace6b79f567f2ec50bdd84b9b4bf4bf6b0125ea15023858af3af30778d7e2f5432aa839
3f393cc4b3cb00d0ec5a4b46d32daee3b7be37727d63564907284244aaf142f1d5d837c51f2238b2
531541f953f37754bdb7d0cea115bcbad79874bf2d4c6ed2e1c6970dd6b905fca498b8968806b429
4e6deac9244954a62a8ed27f3b750d4b58b2b09b4382d6d65b8d2ecee9cde7a92fababcd7d6cad0
8110578d5ecb9ab72fdec520650a76c55ec78aa4fe6c00f9575c0df64e9f775f97a2f8ab0cf2541f998
de4df2eb41a9e84216d32c8c61f4fbc2c14dba52a45e804fd03154f85bfe67d37d474127b11617807
fd4662adfa1f999c87fa7e85c36a8fa95e57df7fade2abd62fcc70073bbd109daa45add8f9edf5838ab
623fcc5dab73a2fbff00a3ddf5ff0091d8aa1b51d33cfbaad85c69b7575a3a5bdd2186692386eb9846
d98a832d2b4e95c5598e2aec55d8abb15762aec55fffd3f7f62aec55d8abb15762aec55d8abb1576
2ac5ece6863f3debbeac8884e99a5d033004fefafbc715583c95e411299c69b66272598ca1a8f590f
26f8b957e23b9f1c550527e5a7e5abc72243a55adac9223a2dc5a48d6f3c7ea8a3347246e191bbd
54f5c554e2fcadfcb15b2b7b19b4ab7bb8ad938a35dccf712127edbb348e497724976eae4fc58aaab
7e597e593a344da2d93c6e8913a1662ad1446b1a105f7543ba2f45fd9c55b87f2bff2d2dee0de5b68
7690dd9e55b98999253ccd5aaeae18f23d77df1568fe567e58bc690368364d0c6aeb1c44b15559bf
bc0a395007fdb03ed7ed62aaabf965f9780ca5746b70d3c6209c8792b24205046ff1fc4806c14fc38a
adff009557f96f58dbf40dad620c90b55ea8ae38b053cf6046c698aa12d3f27bf2ead35096fe0d3db8
c90adac163f5a9fea56d10fb62de012048fd5dbd5e23e3e2b5e98aaaafe4f7e5746a153cb16288b4e
2a148028dc85006da8df17fadbf5c557b7e50fe5ac8e9237976d8c91faa627ac9c90dcff7dc487dbd4
ff7653edfed57155b0fe4efe59db9060f2edbc44426d4146957fd1daa4c5b3ff766a7e0fb3ed8aa5b37
e417e564babe9dab8d1044da5c73c56b671cb22da8370d13349c396d2298538ba952298aa3dff26
3f2ca4916693408de649cde24ad35c175ba2029983196a242000641f1fbe2aa527e47fe54cc27137
966de5fad3fab73ea493bfab213c8b3f290f235dea7155a9f919f9511c2f6d1f96608ede4574921496
e1636490a9752a2500ab1452c3a1e2bfca315551f92bf96412ee21a0afa7a82ac7a827d66ee97291
8e28b30f5bf78140a287e5418aa0acff217f2dacb5fbaf31476372d7b730c16f1235edcf0b68ad90c6
1606590488acad465e657c00c55131fe46fe55c492470f979238a6458668d2e2e955e28db9a2301
300555be2553b2b6e315578ff26bf2da3bd87511a186beb778248677b9ba9195ed3fb83f14c7fbbfd
8fe5ed8ab3bc5528f358af95f5b1dcd85d7fc997c550de4304791fcb209a9fd136153e3fe8d1e2ac83
15762aec55d8abb15762aec55d8abb15762aec55fffd4f7f62aec55d8abb15762aec55d8abb15762
af953fe7273fe537d2ffed94bff005112e2af15f0c55523e9f48fd471544c7f665ff51bf562ad8ebff3c8ff
00c44e2a9ec1f67e94c550567fdfa7fc634fd43154443ff1d51ff1922fd6f8aab3fd85ff005cff00c49f154
1d97dbb7ff58ffc6d8aa225fb527c9bfe2431545dbff76bf47fc4b154c53fbc93fd63fa862aaf2ffbcdff00
3cc7ea38aa24745fa3f862ad8c5568fb5ff3d3fe35c555475c55a1d47cf155bfeec6ff00547fc4715573
f6e2ff0054e2a829ff00bf8ffe79ff00c48e2a89d6ff00e395a97fcc0cff00f116c55f51f93bfe511d03fed9
d67ff2613154eb15762aec55d8abb15762aec55d8abb15762aec55ffd90000084001082400000018

829

0000000210c0db01000000030000000000000000000000000000001b4000004000000034000000
0100000002000000000000bf000000bf0000af4300002943030000000000008000000080fe7fe943
0000008000000080feff60432100000008000000620000000c00000001000000150000000c00000
004000000150000000c0000000400000051000000b4ec00000000000000000000d2010000e0000
000000000000000000000000000000000005e010000a900000050000000040400005404000060
e80000000000002000cc00d3010000e1000000280000005e010000a90000000100080000000000
000000000000000000000000f70000000000000000000000ffffff00fdfdfd00fafafa00fefefe00acacac
006b6b6b00d7d7d700fcfcfc00fbfbfb00f9f9f900e2e2e200e5e5e500eaeaea00e3e3e300e4e4e400
e6e6e600e8e8e800ececec00e7e7e700e9e9e900ededed00b8b8b8008787870080808000e1e1e1
00f7f7f700b1b1b100a9a9a900ababab00a6a6a600adadad00a7a7a700aaaaaa00a8a8a800b0b0b
000bebebe00b3b3b300151515007a7a7a00f3f3f300f8f8f800c3c3c300898989008d8d8d00f4f4f40
0d2d2d200c5c5c500a0a0a000c9c9c9009e9e9e00cdcdcd00afafaf00a2a2a200848484004848480
05858580096969600373737009f9f9f00bcbcbc004d4d4d00f5f5f500f6f6f60083838300cecece0081
81810072727200a3a3a300b4b4b400ebebeb00c2c2c200dfdfdf00c0c0c000a1a1a100b7b7b70033
3333004f4f4f00c6c6c6009a9a9a00b9b9b90085858500666666007d7d7d008b8b8b00b5b5b5004
e4e4e00676767003f3f3f00999999009d9d9d002e2e2e00d4d4d400505050006565650034343400
d3d3d300d1d1d1006c6c6c006f6f6f009b9b9b0086868600262626005a5a5a0053535300dcdcdc00
28282800dedede0043434300d0d0d000f1f1f1008f8f8f00bababa00545454008a8a8a006a6a6a00
dbdbdb0092929200939393005252520077777700949494005e5e5e00d8d8d800b6b6b6003b3b3
b005d5d5d00bfbfbf005f5f5f00d5d5d50012121200d6d6d600dddddd005b5b5b003a3a3a00efefef0
0f2f2f200a4a4a40098989800979797009595950090909000a5a5a5009c9c9c0091919100aeaeae
00c1c1c100c4c4c400c8c8c800cacaca00c7c7c700cbcbcb00dadada00d9d9d9008282820055555
5007575750005050500e0e0e0002b2b2b0070707000474747001a1a1a002f2f2f007f7f7f002d2d2
d003d3d3d00bbbbbb006e6e6e00888888008c8c8c008e8e8e007e7e7e007b7b7b0078787800747
474007373730076767600717171006d6d6d00cccccc007c7c7c00bdbdbd00cfcfcf00393939005c5
c5c0044444400b2b2b2001b1b1b004040400062626200606060003c3c3c0036363600f0f0f00061
61610056565600303030004a4a4a0046464600eeeeee00232323002c2c2c002222220079797900
19191900353535006464640038383800515151002727270069696900414141006363630029292
900313131004b4b4b004c4c4c00111111001c1c1c00070707001e1e1e000303030059595900686
8680017171700202020003e3e3e0045454500131313001d1d1d00161616004242420032323200
57575700242424004949490021212100101010001f1f1f0025252500141414002a2a2a000101010
0181818000f0f0f0009090900010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
1010101010101010109a9b3b19cb0af9c9c9cafafaf9caf9c9c9cad9caeccccccae27ad42409caea4a
caeccad5178362b17a98daaa96fcc2b18b5a4172bab6fa9369c72a41764ab9a75728d51a97253b5
1736515354758d172ba940ab1736172b8dab8d762c76648cab8b398a598a793b304f32644f8d643
03230323b8f4a323b3b3b3b3b3b3030328a4a4a8a324a30303030304a4a35303b3b4a303b30353
b8e6464323b44324a8e20448f3b8e893b354479648a76351c221f4a351f21623901010101010401
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010100000101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010104040dae0e0c10110f120e0f460c0f131013111110110d0d0d1311110e15130d101
50d110d14148712c888c888281228c8876ec215c22828281a3e6e2d1a1a293f2802093f0a3f1a88
3e3f291a3f1a080429020a0a021a0a090904010204010108010108010901040103010102010108
0108010109010804020104010408010404010104080401080102010801090101020104010a010
1040102040101010101010102020101010101010101010101010101010401040120ac010101040
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101000001010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
101010101010101010401c21703010101040401010101010104010404010401040301010401010
108010301010801010801080101010101090401023f01010201010803010103040101040804010
40201010102010101010108010101010402040101040801010404010102010109010401040101
02010101040102010101010101040201010404010103080401010101010801080101010201010
10102010201040101010404010101010101010404010101010101010101010101040104011e18
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101000001010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
010101010101010101010101010404c8170801010201010102080101010a010102040408010102
0101090801020101010901010a010104020409090104040801010101010408010404010101080
20104010103080101040101020902010808080a010109011a0101020101040101020901040401
01010102040101040201010101021a02010101010801010204020401020401030401090101040
201010404020109040101040102010104040a0202020404080201010101010101010101010104

0104018e420104040101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010100000101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010104080d9a290104080801010101010108010402080
1010a010301020801010a01010904010108010101010401010401010401080901010201020104
04010208010101010101010104010208010201010101010402010104040101010201010104010
10401020101040801010101010401010401010101010a03010102010208010208010204020101
01010804010801010108010101010102010a01010402010101020101020101010101010101010
10101040101010404445301040101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101000001010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
101010101010101010101010101010101010101010101010101c83629010101010109010402010
109020401020901010101030102010101030109020101010a0101080101010103040101010301
01010108010904010408010201090801080102010101040102040402010108080102010101080
80401040901010201010101010902010302040101080108020408010101030101010104080103
010901011a03010101020202010801012d0101040101010103020109040201010401010403010
10101010101010104010101010435ae0401010404040101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010100000101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
1010101010101010101010101010101010101010101010101010101010101c2512904040201010
2010101030104010204080101977f0101080201010201080101082901010801010901010301040
1080201010801012901010203020101010201010108010101968a0401290101010a0101080102
0201020401010208010201020108080104010199ae2f01040901080101011a0108010101040201
040101020201030901013f010103010101010239b348011a0101012901043f0101010901010803
01010101010101010101010401040101044a78040101040404010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010000010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010404c8510a0101
016047b761416d9697b493b64e93940556d48e4920929255a73c2170244516501645bb92b67c7c
1f344ba745bbb6a7254b25553450161d4570257c2570bbbb4905244b85e7ac341f1b55a71b25705
57c5545550521bb05891c054f21221c322105201c4a36f6171c8a54326f59905a8f2b8c51758b8a8f
795a64a9906fab542baacc6f2c6f369aa9aba9654ce9aa4036acab426517189a36364254a4b5a91
88d960101010101010101010401040104024ab501040101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101000001
01010101010101010101010101010101010101010101010101010101010101010101010101010
101010101010101010101010101010101010101010101010101010101010101010101129a1a01
04082f424f8bae8f25bba4739a17e0ac1bb61d06911baebf78c3bf4579564fbb7ebe8f7ed5bf77724b
25627e22239b628a4d9a2553c4542f55c36372398db9be3b51ec27a72f384f3c72d1d99abee0a43
dac4fc67921c5561db2585364375630a7cf4dbe9c05dd4dc6352452d825186a9b55bb68a1cf4227b
a58c7a1678ce425adb8aa5ac1c7b660a9ce629642e956b393a737b253c1a933d5d540b4aea176d
537190101010101010101010101020104024a4201020401010104010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101000001
01010101010101010101010101010101010101010101010101010101010101010101010101010
1010101010101010101010101010101010101010101010101010101010101010101016e720a01
010102224e13e9190801653a614d6940a7012dd43f011fd80cb5d346d06f8fb7406701d16490a388
01ea3533ae1a623609ba3165d569650707779257427f4781ae1237330101d9050129a16229578b
1aec9e39be1256a03b1b3ce6480137430133a37c67401aa531b7ad03d02b9386798949afe4945e
b012ed757431780f4274d1ea2dd443914bbb6a8e3545397e485a1e60f0416d4c3f90731136457f3a
3fb506010101010101010101040101040101015aad040104010408010804010101010101010401
01010101040101010104010101010104010101040101040201010401020101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010000
01010101010101010101010101010101010101010101010101010101010101010101010101010
101010101010101010101010101010101010101010101010101010101010101010101046e720a
010101010108044a3b997b80cc097b933a34048ec91c01955e01644254b309299e90630806451e
a601a7f4c801d98f5a8f01677fe38e015a801627082caa3f19c30604e098015c868f0301e04002cc4
401a046405a28c70904875cc90d01c42b0224ba04408b29a58801c445d86d4a80010113b81e016
5ab01b8310104480e0aaec61198a601012de0380109103636014967243a0811ba3e58470107579

831

3c70159420801010101010101010104010101010130b5040109080401010101040404040101010
10402040401010201010101040809020202040402020401080101020101020101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
00001010101010101010101010101010101010101010101010101010101010101010101010101
010101010101010101010101010101010101010101010101010101010101010101010101046e7
20a010104010101086ebe6485ef48011dd022083e85a77828b773018fb17239012d0a757301d52
544370125a50129b8368b3003c3163a99028bc71daf018d900be99a8701b9843ea1444a810152a
b01b08929a80c8d5929712e7c162e666e0167531a49a101a47504d02908e41bc6603462b45a926
72101ac4f083aaab68f810103b8640107d501010badd86d8a4e32af0825ec3cbd0211ce2d5d8301
39be94c00490780101010101010101010102010101040144360801010101010201010104040404
04080101040104080108010402010404010201010101010101010904010101080101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010000010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010104
046e2b0a010104041fb40108390cb97e040a80231e9e308601222123e32f7a750f54995d351eba5
5bd49aaf044457e49475d84788545e39e655133803c3062299c762aac337c03c34855f513954401
061809beae1e376ead9c465434b0432fee548ec7d8218ad404c3599eca892b5d699f5919a41de81
bbb2749ea791ae9af8ce04e039cdf1722045a501e4348514ad493656c89be321be27b50e80a45aa
927e9221c591b922010101010101010101010201010104018e0681819881336107b7b76d2e602e
6d413360b797b733b46031b79794973196412a96944e2f4e94942a2a937f2a7f920e01010101010
1010101010101010101011610000026060f002220574d464301000000000001000000000000000
a0000000020000040b70000403701000101010101010101010101010101010101010101010101
01010101010101000001010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
0101010104016ea92901010201454e0401078bc5920401151fbb468c5904474a9825252b3e0484
9035027667395901483c204e08762b1202977f764b0104252cb40293600d1e74084e211301c360
4e1e6e144b09524f0107601b4901d55d1901bb161a29973c336b94b624931a55840a5c074487c8
c054010aa79504010e93435401c14e010a8809167497b7040210703f010a458301c8104e4709a7
eb95084629010ebb1403090c7b49010801010101010101010102010101040189caa47362b243b0
63b09c78275353adcc4017a4aeb553a4729aaaab8d8b397659395964598a5964648a3b35324432
904f01010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010100000101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010104016e171a01010204010301011a9bd50108010801010401010103010a01010a0
9010204020317bf0103010a0102010809010101020101010109010102010304010401010101011
5d9950101090901027aa02804010801010e480209010901080101010108020102040101010108
080101970f0129010401010a01632c2dcb8e0d7475090102010304010109080801010801090108
010909960174340801010804010a010401020401010101010101010102010101010130170a020
10101010902020401010101010101010801040401030101010101080108040104020401010802
010101010f34010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101000001010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
0101010101010101010104016e653f010104010104010a0149b701090102080904010102010201
0201010101010901048f3904010801010801010101080101010104010801090104010302010204
0101089e2c1401020801010e2044120301010401011a0101020102010901020201020101010103
0801010104010129020101010409011a05951021452fbb24020901010103010901010129010102
04020102010101296b20010903010101020101010101010101010101010101040104010104646
50101040802010101010101010404010904010101010208010101040404010101040101010401
01010101020a01141e01010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010100000101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101016e513e0101040109010104090108040109010101010101
04010401010201010201010101040104010408010104010108010402010801020108010102020
10404010801090101010401080102040404010104010101010201020101080109040101040108
01090108010201080401020901080109010401020802010401010101010101010804010204010
30401040801010129010401020801040901010101010102040101020101010101010101010401
040101028aa902040101010101020401010104010101040101040101010104010104010104010
40401010404010101080101011120010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101000001010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
0101010101010101010101010101010101010104013f4029020101010101010101010101010101
0101010102010201010403010402010908010102010201010104010a0428b4690201010101010
a010a010101010101090b13040204010a020201010201012901022901b7830802012901010101
0208010801090194b614040401010801010101010404040101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101

010104010101010401649a0201040101010201010101010101010101010101010101010101010
10101010101010101010101040104010401101c010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101000001010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010428421a04010101010101010101
01010101010101010101010101020101080201090104090101080108040102020115d1b318bb8
7040404080108010901020201010a06686901011a0101010808040101010204013f67cf01080201
0204010104010104010140389a599208020101040401010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
010101010101040101040104014fa9010102010101010101010101010101010101010101010101
010101010101010101010101010101040104010401101c01010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010100000101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
0101010101010101010101010101010101010101010101010101010102c2423f01010201010101
01010101010101010101010103010103014610043f0f870f0d0e129e0c016946010f740b1340615c
3645046b8401145c0e83b73e022e1202016d210801280e92b401013e60c8019933090490a06d15
010488b433190101956b0d88305a604a65280cb460080201010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
101010101010101040101040101048a4202010401010104010101010101010101010101010101
0101010101010101010101010101010101040104010401101c0101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010000010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
010101010101010101010101010101010101010101010101010101010101026e653f0101020101
010101010101010101010101010101080801935bef5a84e91861f0aa25c57b8aeee83c22d22a01b
ef2d063298abca59333db7c8dce0d80263d840a01579e011b581fae51011d5f3cbb800554038be8
45b10f010c67a5980134d078ce8d0a58c7b970026b9f51080204010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010104010404010102395303010101010402010101010101010101010101010
1010101010101010101010101010101010101040104010401101c0101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010000010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
101010101010101010101010101010101010101010101010101010101010101023f2c3f01010101
0101010101010101010101010101010202040177ac0f4b69855a01a33399563e4c2f8492956c012
9a79c55016b8221147c19372883b092e8846b9404319f49031d960128a5485aab87f44901778c30
3601365901016fbe03019caa099bb70318ad83010104b989040401010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010104010404010102395101010404040101010101010101010101010101
0101010101010101010101010101010101010101040104010401101c0101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010000010
10101010101010101010101010101010101010101010101010101010101010101010101010101
0101010101010101010101010101010101010101010101010101010101010101010429753f0101
01010101010101010101010101010101010101011ad996280928e06f014c940f5d07560e3f0a2ed
40301cc54231761c984c86e0dd9099951722c010101045275bb041a040ab0cdc85a546be748027
7bf35360125a0040390670101636f0163b43e6847bf970401bf8e01010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
1010101010101010101010101040101040101048a360101020101010101010101010101010101
01010101010101010101010101010101010101010101040104010401101c010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101000
00101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010229793
e0101010101010101010101010101010101010103010801bf4fbbce0a9b2b01f24bb7ecc87e7f5e7
794c51012d1994ec610e91fae520c5b699562745302b68910c6888d7f2947d25b6d014f4f153a6b0
8a64aa9d5c8cf17040154be0201ad2c09a833107801c1390201b34f010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
101010101010101010101010101040101040104014f42080102010104080101010101010101010
101010101010101010101010101010101010101010101040104010401101c01010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010100
00010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101023f762
d0101010101010101010101010101010101010101020402961b1cb00c5eb0645e8f276501bb4bd
344bb4da48a552172c39e7023b3230756658535041c50ad052bd301222c1966560e020278df1a6
d3589903f42d518569e010151d50102ae1d3e0669043089c3320809d5300204010101010104010
10101010101010101010101010101010101010101010101010101010101010101010101010101

833

01010101010101010101010101010101040101010104016472010108040101010101010101010
101010101010101010101010101010101010101010101010101040104010401101c01010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010000010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
041a90880101020101010101010101010101010101010101040801026e8709082901100104140
40103c8880308022d2909888803020828c8020201036e0301026e2d03282d033f2d556c0102ae2
d49593e016e88090104023e1a3f45011785011d6d02023e010104c801030187d13004040404010
10101010104010101010401010104040202020101010101010101010101010101040202020101
0101010101010201010101080201010104020401010101020101048d720101040101020401010
10101010101010101010101010101010101010101010101010101010101010104010401102201
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010000010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
101010104043e8b6e030101040404040404040404040404040404040101010101080801010104
04010101020201010101010102020108080101010804010401010801010109020102040101010f
18898b4209013f01080408040101012d0115b14fad523baf60010901040804010109010b6325010
10101010101010804020101040808010101010101010101010101010101010101040401010101
01010104040401010804040402020101010402040101010401010102080801752b01010104090
10101010101010101010101010101010101010101010101010101010101010101010101040104
01102201010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010100000101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
1010101010101010104c2902801010801010101010101010101010101010101020101040101010
10102020102090101010102020202010104010101010401010101090401010104010201010101
0102080129460d2d010101033f010101010808010101463e2d3e87c20101010301010104020102
01c201040404040101010101010102040104010401010101010101010101010101010101010101
0101010101010101010104040101010101040101010101010404040401010101010101aa65090
80101010108010101010101010101010101010101010101010101010101010101010101010101
01040104011022010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101000001010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101040104393f040401010101010101010104040404040404040401010
20204020903010401090104010101040101010104020101010109080104010101010401080101
0208020401010409010401010a01010101010801080102010a08010104010201041a010101080
10104011a01010801010101010101010404010104010208010101010104040401010101010101
01030802040404020204010101010101010102010101010808040404010101010102010201090
101906f01010901040102010101010101010101010101010101010101010101010101010101010
10101010101040104011022010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101000001010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
0101010101010101010101010101010101293f8d29010201010101010101010101010101010101
01010101010101010101010301010204040804010104020201010101010104090108010101040
10101040101010101010101020201010202010201020401010901010402042904010101030102
08010101080808010101020804010101010104040103040101010101010101010104040401010
10101010101010101010101010101010404040101010102010401010401010102020101040801
010201010102902b0401020109020101010101010101010101010101010101010101010101010
10101010101010101010104010401102201010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010100000101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101023e2b33190f0c19191919191919191919
1919191919190b6b480b19489e0b0e9910989881746999830783079983076061612e815cb72e6d
b7b4944e31974e934e949595944e9631317f494e4e4e9224247f2a7f2ab6b6b67f7f2f9596934e3c4
7b6499216b69247702a7f7049497fb624247f2424b63c9347b67f2450b649b624247f7f4992927f7f7
f7f242424b67f497f24b6b649477f922a932a92243c969394493c24242fa77f92b67c254b3c7c3c165
0503c16a8440a01020101020101010101010101010101010101010101010101010101010101010
10101010101010104010401102201010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010100000101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010109010976b563b0b19c9c9c9c9c9c9c9c9c9c9c9c9c9
c9c9cae9cb1ae9caf9c9cb127aea652aeaeb0b5aeb5a43651279cad27b5adacacaeadb527ad27b5
36a9512c65409a189a2b6faaab2c722b725454726f2c2c51ab75abaa8d7975aab9ccab2c54ab759
06fab8daa908c8d6f39758d907576767675908d56406f908b8d757675757576798c8c3979797676
767575758c398b8a598f4a8e324a8e222044324fbb34451d8e221e911d25704b341f7c49b696964
7b624b74914010109020101010101010101010101010101010101010101010101010101010101

01010101010101010401040110220101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010000010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010103010201010109010101010101010101010101
0101010101040101020401040401952c2901020101020104020102010202010401010801040101
04090101010109020104080101010901010901010201010801040401020103040108051101010
40101020104010101090101010401040101010101020240150103010201020404040101010101
01010101010104040401010104040101010101010104040401080104040108010101040404010
10104040801010201010402040102010409010101010101010101010101010101010101010101
01010101010101010101010101040104011022010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101000001010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010104010402040103040113272d01080101010101010101010101010101010
1010101010101010101010101010101010101010101010101010101010309011a010401040401
041d6901010101010101010101010101010101010101010101010101b57401010201140101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010401010110220101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010000010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
1010101010101010101010101010101030101040401010f9cb7090404010201010101010101010
1010101010101010101010101010101010101010101010101010101010101010a01010413933f0
40104010101058401010101010101010101010101010101010101010101010101428401010115
253e0101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010401010110220101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010000
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
010101010101010101010101010101010101010108012902010a0317470102010108020101010
10101010101010101010101010101010101010101010101010101010101010101010101010401
01010b1d080101010101011f6b01010101010101010101010101010101010101010101010101cc
5c020101468b090101010101010101010101010101010101010101010

13.10 Summary
The ability to quickly gain the attention of a schedulable object, in an asynchronous manner, is a core
requirement for the real-time community. The modern approach to meeting this requirement is via an
asynchronous transfer of control (ATC) facility. The RTSJ combines thread interruption with exception
handling and introduces the notion of an asynchronously interrupted exception (AIE). The presence of
a throws AsynchronouslyInterruptedException in a method's signature indicates that the
method is prepared to allow asynchronous transfers of control. Such a method is termed an
asynchronously interruptible method (AI-method).
The RTSJ requires that ATCs are deferred during the execution of synchronized methods or
statements and that an ATC can only be handled from within code that is an ATC-deferred section.
Although AIEs appear to have been integrated into the Java exception handling mechanism, the
normal Java rules do not apply because:
Only the naming of the AsynchronouslyInterruptedException class in a throw
clause indicates the schedulable object is interruptible. It is not possible to use the name of a
subclass.
Handlers for AsynchronouslyInterruptedExceptions do not automatically clear the
pending state of the AIE. It is necessary to call the happened or clear method in the
AsynchronouslyInterruptedException class.
Although catch clauses in ATC-deferred regions that name the InterruptedException or
Exception classes will handle an AsynchronouslyInterruptedException, they will
not clear the pending state of the AIE.
Although
AsynchronouslyInterruptedException
is
a
subclass
of
InterruptedException, which is a subclass of Exception, catch clauses, which name
these classes in AI-methods will not catch an AsynchronouslyInterruptedException

835

"Finally clauses" that are declared in AI-methods are not executed when an ATC is
delivered. "Finally clauses" in ATC-deferred regions (including synchronized blocks or
statements) are always executed.
Where a normal exception is propagating into an AI-method and there is a pending AIE, the
normal exception is lost when the AIE is delivered.

Note the firing of an AsynchronouslyInterruptedException has no effect if there is no


currently active doInterruptible. The firing is not persistent.

Chapter 14: Resource Sharing


Overview
Introduction and chapter structure
Although the RTSJ allows an implementation to support many different approaches to scheduling, the
main focus is on priority-based scheduling. Over the last 25 years, much research has been
undertaken on the analysis of timing properties in priority-based concurrent systems. One key aspect
of this involves understanding the impact of communication and synchronization between differentpriority schedulable objects.
In Java, communication and synchronization is based on mutually exclusive access to shared data via
a monitor-like construct (see Chapter 3). Unfortunately, all synchronization mechanisms that are
based on mutual exclusion suffer from priority inversion. An example of this is where a low-priority
thread (schedulable object) enters into a mutual-exclusion zone (synchronized method or statement),
which it shares with a high-priority thread. A medium-priority thread then becomes runnable, preempts
the low-priority thread and performs a computationally intensive algorithm. At the start of this
algorithm, a high-priority thread becomes runnable, preempts the medium-priority thread and tries to
enter the mutual-exclusion zone. As the low-priority thread currently occupies the zone, the highpriority thread is blocked. The medium-priority thread then runs, thereby indirectly blocking the
progression of the high-priority thread possibly for an unbounded period of time. It is this blocking that
makes it very difficult to analyze the timing properties of schedulable objects.
There are two solutions to the priority inversion problem. The first is to use a priority inheritance
algorithm; the second is to use nonblocking communication mechanisms. The RTSJ uses the former
to limit the blocking between communicating schedulable objects, and the latter to facilitate
communication between heap-using and non-heap-using threads/schedulable objects. This chapter
considers these two approaches. First, the overall approach to priority inheritance is explained. Then,
the details of the supporting RTSJ classes are described along with some examples of their use. This
is followed by explanation of the need for nonblocking communication and the classes that provide
this facility in the RTSJ.

14.1 Priority Inheritance


With simple priority inheritance, if a high-priority schedulable object attempts to enter a synchronized
method (or statement), and the lock is held by a low-priority schedulable object, the low-priority
schedulable object inherits (i.e. runs at) the priority of the high-priority schedulable object until it exits
the synchronized method (or statement). If the low-priority schedulable object itself is also blocked,
then the schedulable object that is blocking it also inherits the high priority (and so on).
With priority ceiling emulation inheritance, each object that can be locked (i.e. is a monitor) is given a
ceiling priority. This priority is higher than (or equal to) the highest priority of all the schedulable
objects that wish to synchronize on that lock. When a schedulable object obtains the lock, its priority is
immediately raised to the ceiling priority. The execution profiles of three real-time threads (high
priority, medium priority and low priority) are illustrated in Figure 14.1. Here, the high- and low-priority

threads wish to share a lock.


01000900000358e402000000314e010000001610000026060f002220574d464301000000000001
000155000000001a000000002000006c0703006c270300010000006c0000000000000000000000
d20100008302000000000000000000006a400000ac58000020454d46000001006c2703000c0000
00010000000000000000000000000000000005000020030000c40100001a010000000000000000
000000000000e3e306006e4e0400460000002c00000020000000454d462b014001001c00000010
0000000210c0db010000006000000060000000460000007089000064890000454d462b22400400
0c000000000000001e4009000c00000000000000244001000c0000000000000030400200100000
00040000000000803f214007000c0000000000000008400005bc880000b08800000210c0db0100
00000000000000000000000000000000000001000000ffd8ffe000104a464946000102010048004
80000ffed0d3450686f746f73686f7020332e30003842494d03ed000000000010004800000001000
100480000000100013842494d040d000000000004000000783842494d03f300000000000800000
000000000003842494d040a00000000000100003842494d271000000000000a00010000000000
0000013842494d03f5000000000048002f66660001006c66660006000000000001002f666600010
0a1999a0006000000000001003200000001005a00000006000000000001003500000001002d00
0000060000000000013842494d03f80000000000700000ffffffffffffffffffffffffffffffffffffffffffff03e8000000
00ffffffffffffffffffffffffffffffffffffffffffff03e800000000ffffffffffffffffffffffffffffffffffffffffffff03e800000000ffffffffffffffff
ffffffffffffffffffffffffffff03e800003842494d04080000000000100000000100000240000002400000000
03842494d0414000000000004000000023842494d040c000000000ba3000000010000005100000
070000000f400006ac000000b8700180001ffd8ffe000104a46494600010201004800480000ffee00
0e41646f626500648000000001ffdb0084000c08080809080c09090c110b0a0b11150f0c0c0f1518
131315131318110c0c0c0c0c0c110c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0
c0c010d0b0b0d0e0d100e0e10140e0e0e14140e0e0e0e14110c0c0c0c0c11110c0c0c0c0c0c110c
0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0cffc000110800700051030122000
21101031101ffdd00040006ffc4013f0000010501010101010100000000000000030001020405060
708090a0b0100010501010101010100000000000000010002030405060708090a0b1000010401
030204020507060805030c33010002110304211231054151611322718132061491a1b142232415
52c16233347282d14307259253f0e1f163733516a2b283264493546445c2a3743617d255e265f2b
384c3d375e3f3462794a485b495c4d4e4f4a5b5c5d5e5f55666768696a6b6c6d6e6f637475767778
797a7b7c7d7e7f7110002020102040403040506070706053501000211032131120441516171221
30532819114a1b14223c152d1f0332462e1728292435315637334f1250616a2b283072635c2d244
9354a317644555367465e2f2b384c3d375e3f34694a485b495c4d4e4f4a5b5c5d5e5f55666768696
a6b6c6d6e6f62737475767778797a7b7c7ffda000c03010002110311003f00f4671c4c5caa31db55e
5eefe6cb45afa9ba167e91feea59edff48aeb1c5cc6b8f244a05edea2722b38f652cc791eb35ec739e
40277fa6e6d8c6fbdbfbcdfd1ff00c22060758c0cbe914f53c6b03b12cac58d7bc8ae1b3b1ce7fa9b7
67a7f9c929bea8d59994cc8caaf2d8d6b05a0619afdc4d5e9d5eeba4ff3bf69fb47fd6bd34173f032b
3db9d83955dd934d2ea5c19735cc6d7639966e7540b9bbdd650cfd22b75d8edbfa5702f9e5a5910
929ab5f5ec535b4b9af26049868d7e1ea297eddc3fdcb3ee6ffe4d49c2f24c3aa82749db31f72859f6
a6d6f733d2b1ed6973580b0171025acdc5bb5bbff79253cf757ff1adf577a4751bba764e3e63aea36
ee756ca8b4ee6b6d6ed73b219f9affdd5d433aa62eca9d6bc562ef4dad73c86b4bad8f498373be9d
ae76cad887d3b270fa860d196fa6aadf7d6c73d92cb035c5ad36542e67b2ef45ffa1dedff0046acdac
c3b9a196863dad732c683061d5b85b53ffad5d8c6bd89293a49839aefa241f814e9294924924a7fff
d0f4db70316ec9af26c66eb6a2d730c9805a2d631db7e8fb1b9372a9d47a253d4b0b2b0b20b8579
95baab5cc743a1ff9ccdd5bdad72bff0068a37167a8cdc08696ee132740d844494f31f56fea6f49faa5
65f6e0596939818c77aef6b87b0b8b767a7457f4b7adb39f58e5e048275dd3a788f4d5c4925349dd
42a6968360970dc3e91d3fedb44aaf1901e2a7b5e1b2d741e3b7ee2b2924a733a1745aba0f49a3a
4e139cfc7c6dfb1d6b839e77bdf7bb7b99556cfa767ee2baf65b630b1d05a79d7ff003046492534db
8059955e4b1ef6fa6cb18690ff00d1bfd4359df6b367bdf4fa3fa0fdcf5ae40eabd54e10656cb70ebc8
716b8b32ef34b7d325cd7b98ff4ecfd27b7f47ed5a6a0faaab357b1aeedee00fe5494b7da31ff00d2b
3fce09296c67ee8fb92494fffd1f4acd19c0b0e1534dae27de6e716edd5bee6ec659bbdbbd59accd6
d3ce8352b3facb70dedaaac9c9bf15ce2767d99cf6bde3db53abfd135ee77badaffe13fd1aaffb6df81
d09d9bd528fb35d8951b32a9acfae1a1876b9acb3733d576cfe5a4a754e4d0dc96629b00c8b18eb
5954fb8b1858cb2c8fdd6beea954a7173716eca2db5d92ccab8dc05b04560b2babecf54399fa16fa5
bff00eb8b1fa1fd68e83f5b326d7f4c659f68c2600fb6ca9ad76cb4ff0034cb0bb7ec73a9dcf62dfaa9d
8dda59bb5fa4e0deffda494f33d673ffc6362d9455d0ba56264e38a87aa6d735a5af05cdf4d9faed1e
cf4c57f9ab571b3bad62f436e6f53c48caaa975f978d8f0f70702eb2dab1dbebbbd476dfe699eb2974
4eb785d72bc9bb0aa26ac5bdd8afdec0d77ab5806dd37fd0f7d7b5689648205504f701ba7fd34949
871e09d67fd85e3f39ff737ff00268597899ccc5b5d84f0cca6b7752eb9a1d5870f77e9595d8d7b9bf
d5494eaa4815e663d960a8380b1c0b9ac7402e0d8de58dfa4ed9bd9bd1d25292492494fffd2f5480
79ec816e0e2dd5be9bab6db5580b6caec6b5cd734fd26d8d7b5dbdbfd65337c3dccf4de6080081a1
9fdd77f251010448d41e0a4a6863f45e99d39b63fa660d18d63c00e14575d1be3e8b6c7d55fe6a99

837

1921f1e8b8b7746f1637e8feffd1ffa0aea85775363ec656f6bdd4bb65ad064b5c5acb763ff0075de95
b5d9fd4b125343130abc60e66360b30d96b8d968a7d36073c81fa5b1b531bbed7fd17bd4c7daf6c9
c67cf80b5a7c3c82ba1edda1fc03e208e7faca492903289682e2e693cb6418fb93fd998742e711e04
c8fc88c924a6bfd871fd665fb47ad535cdaec86cb5b66c36b5bedff0009e955bffe2d55eaff006b147a
38e32dc6ed0dd88681657b4b5db9bf6c1e97e93e87d17fb16924929c8f5737fd1f50fbb17fbd25ae9
24a7fffd3f41eb8ec463697e5f50b3a7d6d7127d376cf50376d8fadce8ddf418efa1fa4d9ea2d1a4875
4c70e0b411f30abe77da89adb4635790d265c6c700184166d770efcdf53e82cac9b7ae60740b9b46
eea9998b4b9d4d9656775ef69dd56eaf1df5ff00e07fce24a762dc8bebcbaaa1417e33ebb1f6e4870
8adcc357a551abf9c7faed7ddef67f37e8ffc220d789436eb2fc66fa62eb05b76c6c6f780d617bfdcdd
cfd8c63170fd2beb47f8c8ceea9898bd4fa1b31b0aeb5acc8bdb8f7b4b2b27f48edefc87319edfdf6ae
f9ad634434ed1e003c7fdf9253c4f4fff0016fd530faae3e7d9f5872322ac7bdb79c5754fdae0d77a9e
97bb2dedff00a0bac69c9c4cca8bc87623ebb3d57b83b78b01abd0656d0e7fb1ec7646ff00f8b56f4f
de3f73ff00f24a2faeb7c6ff007471b9ae3f95c92997db71cfe71fb8ff007276e5d0e70682493a0107fb
90c5347eeb7fcc77f7aadd4ba66267e05d876b5de9dcd877a5beb7e843dbb2c69f6fb9a929d34951
af3ae199562dd4bc1bd963db635a7637d2f4f70b9e5decf53d6fd0feff00e915c7d95d6d2fb1c18d1c
b9c401ae9c9494c92492494fffd4f5550f4abfdc6fdc1356fb9ce22cac300260876e901ce0cecdfa55e
c7a15b665b5ee15d61cd1f4491ce9fd609292be8639a434063bb38341ff00aa08230dc0ff003ef226
60b6b3a4cecfe6fe8a2b9f787436b0e6f8ee8fe09ea75ae9f5582b20e90edd223e0d49484e1d9bf70
bcc6b2d2c644797b137d8add47da5fde3d9577e3fc17e6ab6924a61e9d7fba3ee09fd3aff00747dc1
71e3a8ff008cdfdbfe81e958bfb17ed7b3ed3b99ea7d93d4dbebedfb66ef57ecdeff00e63feb4bab2ec
d1ba2baddcec25ee1dfdbbbf44ffcd49497d3aff747dc150eadd2dfd429f418fa594bb4beabf1db90cb
04b5cc0faec733e839bb95adf99edfd15635f74d8789fcdfd17eea76bb3369dd5d61c3b07920ff00e0
4929cffd8d7fefe27fec237ff4b24b437667fa3aff00cf3ffa4d2494ff00ffd5f536bd8f9d8e0e8e60ca196
3c9741064983b9c23b70d41e9b57a54b8032d2ef68f4db501a0e18cff00aa556dae92fb25b5fb9ce1
0ec5b5d32f7b8ced7edb3e8dbbac6fe7fe9bfd1a4a6fbeabcb816e4160303696b4ea3f767ddee4f43
2e64fab77abc0fa21b079fcdf8ace7574b9801655e9b9fb769c4b7e909fa52efdd7bff4bb15ac3aad6
86baa756da1cf739cd15398e20cb75df61f76ff00cfd8929ba92a57fa3fb5f0f7536beef4723d3bdb3e
931b38deab2ff706fa977e8fd0f63ff9ab93e5d9535ee0fb2eac86027d36b88893f44b58f6ef494b8c4
bfd5dfebbb6efddb64f13bb6fd2452dca9743eb89f68d8741e0efd27b9567df402e26cc911b81018fd
08f0fd1ff0098adbfd30e05d3bc35d047d28f6ef8ff00a292998981bb53dc8d04a754596d3b0116e41
900896be7e7babffab526d950ae7d5b9c346ee2d74cfef695a4a6e24a97a957efdff73bff0022924a7f
ffd9003842494d04060000000000070005000000010100ffee000e41646f626500644000000001ffd
b008400040303030303040303040604030406070504040507080606070606080a080909090908
0a0a0c0c0c0c0c0a0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c010405050807080f0a0a0f1
40e0e0e14140e0e0e0e14110c0c0c0c0c11110c0c0c0c0c0c110c0c0c0c0c0c0c0c0c0c0c0c0c0c0
c0c0c0c0c0c0c0c0c0c0c0c0c0cffc000110801e3015e03011100021101031101ffdd0004002cffc40
1a20000000701010101010000000000000000040503020601000708090a0b0100020203010101
010100000000000000010002030405060708090a0b10000201030302040206070304020602730
10203110400052112314151061361227181143291a10715b14223c152d1e1331662f0247282f125
43345392a2b26373c235442793a3b33617546474c3d2e2082683090a181984944546a4b456d355
281af2e3f3c4d4e4f465758595a5b5c5d5e5f566768696a6b6c6d6e6f637475767778797a7b7c7d7
e7f738485868788898a8b8c8d8e8f82939495969798999a9b9c9d9e9f92a3a4a5a6a7a8a9aaabac
adaeafa110002020102030505040506040803036d0100021103042112314105511361220671819
132a1b1f014c1d1e1234215526272f1332434438216925325a263b2c20773d235e2448317549308
090a18192636451a2764745537f2a3b3c32829d3e3f38494a4b4c4d4e4f465758595a5b5c5d5e5f5
465666768696a6b6c6d6e6f6475767778797a7b7c7d7e7f738485868788898a8b8c8d8e8f839495
969798999a9b9c9d9e9f92a3a4a5a6a7a8a9aaabacadaeafaffda000c03010002110311003f00f4d6
8da9f9aedf50b4d6e49a69e7bbb0f2f5aea427b461eb4b2cd7c9392155046d1920b71141b73d88c5
53e83cddaec5616435190c37f26976fad48c2c269bd75f4656bab786342292464465559b99e54a6
2a92ebfe6dd6359d2752d2ae2d25891ae87e8eba86de6aceb6da9dbf1500aec4c2439f62597ec36
2af60c55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb15762
aec55d8abb15762aec55d8abb1568302480771d47715c55bc55d8abb15762aec55d8abb15762ae
c55d8abb15762aec55ffd0f7f62aec55d8abb1540dede496d79a75ba2829792bc4e4d6a0242f2023
e95c551d8abb15762aec55d8abb15762aec554e79a2b6864b89dc47044ad24b231a2aa28a927d8
018abc4bfe719bf3ba3fcebd0bcd57ef2abdd691afdedbc080508d2e773258b7d31d57fd862af71c5
5c4802a7a0c558b69dafea971e61ba82e6d4c7a13ac22c252b4903bf2a190750b2713c6bd282bf6b
156538abb15762aec55d8abb15762aec55d8abb15762ab5d822b31048504d14549a78018aa45a5
6a9a7dc6a9786de5121bd689a00a092552004923b01d0d7bedd7154ff0015762aec55d8abb15762
aec55d8abb15762aec55d8abb157ffd1f7f62a94f987ccba17952c63d4bcc37a963632dc41651cd20
660d7377208618fe00c6aeec147b9c5525d47f34fc81a4cfe64b6d475b86de7f27c30dd7995192526
ca0b91ca2792887671b8e35db154d343f38f967cc9737365a26a70dddf59c56f717768a4a5c450de
a7ab048f138570922ee8d4a362aadaaffc75343ff98997fea166c5536c55d8abb15762aec55d8abb1
5762ac47f34b42f31f9a3f2efccbe5bf295cc167e62d5ec27b0b1baba6748636b95f4d998a2bb0a233
528a7e2c55f2c7fce227e4bfe607e45799fcd971e62b9b0bed12fe3fd1cf158cf217fae584e78c9c648
9071e2ce3ad77c55f5aff89e9d6cd874ff00762f7fa31571f340007fa21af70645dbf0c558bcde7e6d3

bcd57966fa6b37d62d2de789bd503e1491a33d15bbb7f018aa287e654ac540d1cd1ba1faca78a8d
be0dfaf6f6fe618abbfe565b71057496627b0b85ebb77e14a6fd7fe6a4e4aac3f99b20254e8c41a814
37283b0353f076aff9fc3c95543f9912004fe88600776b8451fb5e29edfaff0095b1558df99922d69a3
3b104d47d6176a72ebf05074ff897f2362adb7e65c8a581d1daa391a7d65770bfec36fa7a77fdae2a
b8fe65b6d4d1dcd481fdfa8ebf34f0edf21d7a2ad2fe6692a49d249614f852e15fa853d4253bede3fec
971540ea1f9bc74ed3aeb529f436f4ed6192774fadc60958903b50f1a77ebf4fed27255f387fd149fc8
7ff524eaf4ff00988b6e9f7e2adffd149fc875ff00942757a76ff48b6feb8abbfe8a4fe43ffa92757ffa48b6
feb8abdc7f27bf32fcade7df2e9fccef2fe897161fe2079165b7b892332466da431b01c76a330e5b62
af491e6b43ff001e8d422a0fa8b8aae5f342b00459bee2a0075269ed8aa2b4ed752fef5ec7d068a44
8bd60c486057971a6ddeb8aa6d8abb15762aec55d8abb15762aec55d8abb157ffd2f7f62af2bff9c8
2d1f58d77c856961a15b5cdcdffe9fd02e3fd0a137134515b6a96f34b370a30a4688ce6a29b62af19f
3bf927cef35eff00ce4c451695aa6aa7ccfa268d6fe5fba16640be9aded248648a0f49155cc6ceaa78
8c55edff0095ff0096f67e5e9c79eafe6bab9f386b7a3693a6df9ba45b75820d3a0016148154703c99
8c9ccb372f01b62acd355ff8ea687ff3132ffd42cd8aa6f8abb15762aec55d8ab4cca8a59c8551d493
418ab78abb15762af3ebab38e1bdbe16c9c795dcb348a2bbb48d563d7b938aa8149f7a38561d01a
9af6eb8ab8432d0f073c48dfe7f4d715615afc733f9c626626834ea7104ee7eb02a36ad7e5fb5d3e2
1552ab51ab096a788277afda24edfeb56a5be9e9fb643aaa8b0c89fbd22a6a092c7bee7bb0e9cbfe
36fda562aac74ab3b72241ef523afb8a7f9d4f756c554784a7e20bc4af6e9c791e8d4f65edff001a7e
ed55fe9b970a3918d08e44ed5a55a953403a53e8ec23fddaab8c5281c94fc69ba2014f9f6dbafb71f
6f8b1558d0c80f05502bb03b577a2ed507c7a7fb1a6eeacaaf488eecbf1293427770791f7143b1e9f
b5fe573f8d5493cccad27973580cfc55acae8970c1685a1735a835e87af2ff002b97c6aceabf26b157
62aec55fa6bff387d03cff00913a0915651717fb723d45c3f6c55efe63220009dc0e4081535f0c55cbc
b8270068b5e44541dfc7db1563be5ff00cd7fcbd83cfb2697379b3478596c268a68a5bf82374ba8ee
635f48877146ddbe1fb5b62af6c041151b83d0e2aec55d8abb15762aec55d8abb15762aec55fffd3f
7f62aec55d8abb154a355a7e94d0ffe62a5a7fd22cd8aa6f8abb15762aec55d8abe7cff009cccfccab
8fcb6fc95bcb9d327f435dd62f6d34ed3581a302241712914ff008ae161fecb157b3792fccd67e74f28
e85e6dd3d8359eb7636f7f17135005c46ae57e6a4d0e2a9ee2aec55269bcbd0cb3cd38b8953d662
ec8385013bed55ae2aa07ca96e47fbd73d6b5afeefaff00c0e2ab8f95e0ed773eff00ea7fcd38aa517f
f96da5dfdf2ea4d79731de2c46dfd45f4d87a6cdca9c5908ebfd3ecd71551ff95676c3a6af79d284158
4827c778ffcff00d935555c3f2d2d86dfa5aee9dcf182a4541a13e9d7c7ef38aa9afe585a8ffa5c5e135
041221ed4ff0023e7ff00047da8ab97f2c2dd0711acde71ee38402a28053e18c787f9f15a2aeff9561
6a051758bb5f1212dfaf8ff0077f7786dfcab8ab87e585b54b1d62f0926a2ab01a6e48a7eefb6d4f97c
eaab6bf9636eb5ff0073175b9a81e9dbd075dbfbbdc6ff0087bb7255a3f96168493fa5aeaa493ba40d
d6bb7c519f1fa7f6bed362aa377f94d617b673d9cfabde3453a3c6e408410b22f1343c3ad09dfafc4c
7ae2af9eff00e89c5f945dbcc7e601ff003d2d3fec9f1577fd138bf28bfea63f307fc8db4ffb26c55aff00a
2717e51ff00d4c9e60ff91967ff0064d8abdebf2d7f247cbff95de52b1f27683a85ecfa6d834cf1cb746
26959ae24323722a8a3a9db6c55977f8520ea6ee627bec9ff0034e2ae5f2ac0a857eb736fbd689d7f
e07157e7ef9fbf2095bfe738342f2fc70bcde5df31dc41e6998b280be85bf296ed4d00143240c3fe7a
0c55fa44315762aec55d8abb15762aec55d8abb15762afffd4f7f62ac5fcff00e7ed07f2d7cbafe6af33
19934586e2dedae67b78fd530fd6a55856471507d352c0bb0af15de98aa0f5ff00cd0f2c7977cede5
6fcbfbc3713798bcde2e1f494b78c49088ed2332c8f2c858051c41e34e45a9d3154abcabf9dfe4cf36
de58d959a5ed9bea7a96a5a1d8497b0a4692ea3a282d73082923d0f15664e54e611a9b8c5598ea
c07e94d0bdaea5ffa859b154e315762aec55d8abb157897fce48fe44f973f3a7cb7049e61bfd4ad9b
cbb1dcdce9f6fa73c4b1bcf32a82d2abc5216a04a0a15ead8aa3bf2c74093f2abc95a6791349d425d
4348d20489693ea081ee4472c8d27026328a4296217e1fb38ab2e3e63d5c3d0341422bc7d36affc
4f1572f98f576e5bc24a9a53d36dcffc1e2a9a5836b9a85b0ba17d0c2199808c5b16a7162bd4ca3ad
315447d4f5eff00aba43ff489ff005f7156fea9aeff00d5ce1ffa44ff00afb8aa0353b9d73498e29daf21b
912c822f4feae5284a935a894f862a803e66d5aa157d063fb548db6ff0087c5577f88f573c88f4001b
6f1b6dff0f8aa97f8a75602bfb8277ff75b8dbfe0f156879a7582091f57a7fc637efd3f6f157379a35807
adbd3b7eed877e9f6f15553e65d5400d58287b7a6ddffd9e2ab5bcd1ab03c57eae4f8706da9fecf15
5f0799b5379a047f419649638dc2a303c5d829a7c67c7156618abb15762aec55d8abb15762a90dd
793f41bbf3769fe789edb9798f4cb2b9d32ceeabf66daf248e49148ee6b10a1ed56fe6c553ec55d8a
bb15762aec55d8abb15762aec55d8abffd5f7f62ac4bf31fcb36de73f2ccbe55bfb47bbd33586fa8ea0
b1f1063b7b88de3794f22364e5cb6df15788689f96df9a363e61fc86bcf34dafe96d53ca67588bcd7a
bdb344218607b0163624f29033b322297e01be3676c55917fce3f7e55dc685637dac79d747b8b4f3
1da799bcc1a8e851ddccb22436dab4d513c51c523c61a488f125be35f8d7e1e47157b1ead4fd29a1
57fe5aa5a7fd22cd8aa6f8abb1541ea9a9d968d613ea5a84a21b4b75e5239f0e9403b938aa2619a2
b88639e160f0caa1e371b82ac2a08f98c557e2a86d476b0ba3ff0014c9ff001138ab07e1eab292a45
071a9ebee7155ae8a0f3248245028eb8ab961e3cf855856a6bb1dfbe2acb7cb94fd13152a4079402
7fe32362a9b62aec5521f350ad9db7fcc429fb91f156302352e19c11535f99f9e2ab6814d0541a825
7aed8aa9ee0f22790de9e35c55dc2a0b5082db7b0c5577a6635200249ea76ebf338ab4d1b507214
07a53db156a442cc5829d8018abca3f393f3b3ca5f9491e8f6fe656bd8e5d5268e6b59aca1f557859
5c42d3066e4b4214f4ef8abddff2fbf30fcbdf99de51b4f3bf954cefa15f1985ac9750b5b48e2de46898

839

f06de9c94d0e2ac8b4fbbfafd8db5e84f4feb11acbc09ad398ad2b8aa2715762aec55d8abb15762ae
c55d8abb15762aec55d8abb15762aec55d8abffd6f7f62aec55d8abb157c7ff00f3933f9eb27907fe7
207f28bcbf6f74d169da75c1bff0031468c42983556360a1c5687847eac9bfb1c55f5f838ab78ab1ff3
858c375a35dcf382ff005682568a16a7a7cd9681c8ee54578f857154d74eb1874fb7f42dea202c5d2
33f6630db955f05af418aa2f155b2c69346f1483947229575e950c2846d8aa4e3ca9a08dc5b37fc8e
9bfe6bc55dfe13d03fe595bfe474dff35e2ae1e53d000a0b56ff0091d377ff00678aaf8fcb5a4c438c2b
3c68092112eae554126a761253156cf9774d2082d7543d7fd32ebfeaae2abbf4069ffcd73b7fcbddcf
fd54c55aff000ee944ab4892cbc775596e279541f1a3b915c557fe80d23fe59878fda7ff009ab1568e
81a3b1a9b615f6671fa9b156bfc3ba2f2e5f551cbfd67ff9ab1577f87746a505a8037d83b8ebfecb157
7f87b46a53eaa29e059ff00e6ac55bff0f68fd7eac3fe0dff00e6ac55aff0f68d4a7d547fc13ffcd58abe5
fff009ce8fca887ccbf94967ac681625f5ad0755b53188f933341a838b475a1aedea3c47fd8e2af7af2
ef9567fcbdfcb2d0bcade5e4567f2e69f05bb5b2814b9f462a4c01eccec59c1fe7c5536f22c9a8cfe5b
b2b8d4626b6678a3105b3d39a44881416ff0029882df4e2ac9315762aec55d8abb15762aec55d8a
bb15762aec55d8abb15762aec55d8abfffd7f7f62ac47f31fcee7c81a0daeb62c3f48fd6753d3749f43
d5f4389d52ee3b45939147a84690315a6e31540fe6a7e640fcb2d2f44d4db4efd243516100000260
60f002220574d464301000000000001000000000000001a000000002000006ce702006c270300a
d6f4ff2faa19c5b085f5390c69333147aaa11f10a74c555ff002e3f316d7f312db5f7b7b192cae3cbbac
de6817956135bcd3d8900cb6f300a248d830de80ab72561b62af9f7f3ff00fe7127ca9f98de7c8bcf9
ab7987588750d6e74b6b88a0f41e0b786d6d1bd311068eaa39463ed31fb4d8abdb34ab9d5b4cd2a
cf4e6d56e6f0d9c115b9ba9bd3f52531a05e6fc540e4d4a9f7c551a356d4d95697d31a7dafb1ff0034
e2ac37f35fccfae695f969e6ed4f4fd4a64beb4d2af6e2d9a8878c9142cca6854834a57157e6effd0dd
ffce47d00ff001fded074fdcd9ffd50c55dff004377ff00391fff0053fdeffc89b3ff00aa18ab25fcbbff009ca
6ff009c81d7fcff00e55d0b53f3ddecba6ea7abe9f6579108ad14bc171731c722d5600455588a8c55f
aa9fe1d51ff004b4d47c7fde96fe98ab7fe1f5ad7f496a1ff00492dfd31577f87d77ff725a86fbffbd2dfd3
1577f87d694fd25a8787fbd2d5fd58ab634051ff004b2bf3f3b863fc31577e801d3f495fff00d241fe98a
bbf400dbfdc95fedff2f07fa62adfe821ff00572bff00fa483fd31577e821b7fb92bfdbfe5e0ff4c55afd03ff
006b3bfdbfe5e3fe6dc55c741a9afe93bfff00a48ff9b71570d0a9ff004b2bff00f91fff0036e2ad0d029ff
4b4d43fe923fe6dc55c740aff00d2d3501ff471ff0036e2af9eff00e732bcc5e6afcb3fc9e4f3179435eb
db5d51b57b2b56926315ca189c4b2105258d96bca3535a62af85acbfe7303fe723a5bdb78a4f3ddc
98e496357ff45b1fb25a87fe3dfdf157eb45b686cf045236aba8333a2927d71b9201afd9c5553fc3e7f
eaeba87fc8f1ff34e2ab868447fd2cefcfce71ff34e2ad7e803ff00574d43fe47ff00cdb8ab7fa04ffd5d2f
fc3fbf1ff34e2ad7e8035afe94d43fe47ffcdb8aa0756b3bad2ede2b9b5d46f1dcca91b2c92aba956ad
762b8aa5bfa4b56f537bd93d303afc35aff00c0e2ad8d4f523426f640bbff00257fe238ab57baddf585
85c5fcb76e61b789a6720213c63058d071f018ab3482559e18e64fb122875aec68c2a31554c55d8a
bb15762aec55d8abffd0f7f62ac23f353c97a979f3cb767a2e977305a5c5beafa56aaf2dc872863d2ef
62bc641c37abfa5c41ed5ae2ac63f34bf2cbce1f99da7d969d7b7fa64165a6f99b4ad76ced1a29654
361a59e6f0cac402d24ce4d4f108a9f0d1b738abd66dadadace15b7b48520b74fb1144a1116bbeca
a0018aa4be6ddac20ad29eb8ea683ec3e2ac3db853d369141a7f36d4c556b4aab1fc0cb5153f0b0a
0a9f1c5584fe702447f29bcf2048bcdb43bf03e2a927d06c55f9118abb15663f948ca9f9abe4677215
17cc1a5166634000bc8b727157ee07e97d247fc7fdbedb1fdf27f5c55bfd2da57fcb75bffc8d4feb8ab
bf4b697ff002dd6ff00f2353fae2ad8d534c3d2f603f2953fae2ad7e95d2c1a7d7adea3a8f553fae2adf
e94d33fe5b60ff91a9fd71570d534c3d2f60ff91a9fd71577e94d33fe5b60ff0091a9fd7156ff0049e9a3
7379053fe32a7f5c55a3aae983adec03e72a7f5c55dfa534cdff00d360dbafef53fae2ae1aa6987717
b011ed2a7f5c55dfa534cff96c836ebfbd4feb8abbf4a699ff002db07fc8d4feb8abe56ff9f81df594ff00
90d1450dcc524875db12111d5988115c57606b8abf2fb4fa7d7ed6a683d68ea4f87218abf792cf53d
33ea96f4bd829e9253f7a9d388f7c555bf4a699d7eb906fd3f7a9fd7156ff004969dd7eb9053fe3227f
5c55dfa4f4dff96c83fe46a7f5c55dfa4f4ea57eb9053c7d44feb8ab4754d300a9bd8001d4faa9fd715
4a7cc57f61358c6b1dd42e4cc868b2293dfc0e2ac74dd409421d5b605be206be2284e2aa4ed0926
5695294a840453157cf5ff003993a9f9cf43fcb3b5f31f9375b9f4a16378b06b11da4bc7d6b4be4310
e407657e207fad8abd2bfe70d353f3ef987f262cfcd5f981acdd6b1a86b3773c9a73de71ac5616e45
bc6abc55762d1bb54f8e2afa0f15762aec55d8abb15762aff00ffd1f7f62aec55d8abb1548bcc33416d
75a35c5d0636b1dd3faaca8d22af2b7942960a0d054f5f1c55c7cc1e5bad0b8aff00cc3cbff54f156ce
bde5c5342e2bff30f27fd53c556beb9e58911a390abc6c38b2b5b484107b1063c5503ebf907a0b1b
5a0db6b03ff0054b155deb790e9fef15ad07fcb89ff00aa58ab427f21020ad95a86ea08b03ff54b1555
fd21e4b1ff001ef0efff002e4fff0054b156ff0048f932b4f421dffe5cdffea962ab46a9e4b350218453a8f
a938ff9958ab6354f267510c3ff00486fff0054b156cea1e4cad0c1054ffcb9b7fd52c55c350f2613b41
057a7fbc6dff54f1568ea3e4b5ff74c02bb7fbc6dff0054f156cdff009329530414ff009846ff00aa78ab4
da9792e956860d881bda31ebff3cf1571d43c927ac16e69b6f68dff0054f1571bff00257782df7a7fc7
a1efd3fdd78abbebde4a5dbd0b61d3a5a1f97fbef15685ff009249a086dabff3087b7fcf3c55c6fbc903
ac16dbff00cba1ff00aa78aa9bddf90a60165b5b49013b07b2aeff0023162ab3fe41dad48d3ec07734
b11ff54b155617fe4603682d405ff9733ff54f156cdef9207582d7b0ff00790ffd53c55c6fbc90454c36a
413ff002c87affc8bc55c6fbc9141586d69d47fa21ffaa78abbebfe48e9e8dad3c3ea87fea9e2ad7d7fc
8c4f1f42d49209ff790d36ff9e78aaa45a9793616f5218ede37150192d4a9f7dc478aab8d7bcb06949
23df61fb87eff00ec3156ff004ef964edea474dc01e8bf6ff00618ab13fccfd1bcaff0098bf97be65f24c9
3c513eb76135a413342f48ee1949864344fd8902b7d18aa61e418bcb5e47f25797fc9d6774be8687

a7db5802b1c8033411aab3fd9fda605be9c5591ff0089744dff00d286dd7e093fe69c55c3cc9a21e97
437ff00224ff9a7155b2f9a34282179e4bafdda02cdc63959a837d955093f2031561bf9a9f9cbe5ff00
cb1f21ea7e799617d562d33d066b08b9432c8b3cc917c2ce940407e5f1785315795f94ff00e73cff00
217ccb716f657971aa685773908a350b26923e67a0e568d3feac55f467e9dd27f42ff887eb23f43fa3
f59fad717a7a34af2e34e5d3b52b8abfffd2f7f62aec55d8abb15762aec55d8abb15762aec55d8aac5
9637e41183146e0fc48346a0343efbe2a83d5358b0d1f4dd4356bd90fd4f4c864b9bdf495a5912389
3d46f81016278efc40a9ed8aa9e99afe95ad456971a54e2eecefad52fed2ee205a092de4238b2bf4a
9af4eb8aa625d42f224051b927a62ab64996328bc59cbb05a20a900fed1f003c7155e5940a92001b
6fe38aa8c17904e4a2b813aaa3c9031025412578f35ad456869f2c5551a50ae89c58f3247202aa28
2bb9ed8aa0ee358d3ed751b2d2a69697ba82ced6a8012185a85325586c29c875c551dc86fbf4ebe
d8aa8c77704927a3c82dc519fd072049c158a73e3d78923638aab7215a77f0c55d518ab78abb157
62aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55dd31562be70f2cf93ff34bcb9ac7
91b5f64d4b4795e2b7d66cedae38489244d1dcac72344c1e363446e3f0b713ef8aa17c9bf947f965f
97f1ac7e4ef2a69ba43af4b882dd0dc1f9cce1a43f4b62acd3157ffd3f7f62aec55d8abb15762aec55d
8abb15762aec55d8ab02d73c93ad5f68ba9691a65fdbc126a175a85c8bc952533422f91f818d9185
1a366e3ef1f4e2d8aa771e857f15df982fa3b8433eae96e96f13f23146d6f0fa659a9bfc4c4f4ecab8a
a4517e5bcfa6ea57b71a16b1259e8d73776ba8c3a218c1b78278ee7eb176b1b021845727e268fec
a4bc9d3e1764c55da8f941a18bcb9a3b46755d39357bfb8ba1708cf0c36b796d7ccb19515fddc665
489031a7d9f6c550765f958f65c1e3be46bc8b51b0bc5d49958dd9b5b1b18ad0c65c93f1334664fe4
f8be20c71544c3f96b235f796aeb53bc8f518f468562be8678c94b9962b592dd6e389247a8c5d5df9
57ecfc3be2a9637e5e5e699a5344d77cb569adf44b5b0bdb4b792668351d19e4314d20a9ac04b0e
7c88f839ad7e2c5592f99bc9d73acdae9b6d61731db2d8c37d13f20f4737b632db03f09ecf2073f2f1
c558acbf9433ca86333d9982386f16d61313948e7bad2ed2c4483c08960794b0f8be3fe7df154c22f
cb8d4ae52c575cb9b6bfb8b3d46dee27bc733bb5ed8da9b96449e27629ea03714a8aab2aff002f14
5555ad7c81aa58cf35ddacf67f5996d6eec90ba487d38ae7557be40ad5afc31c8569d048aa775db1
54aedbf2bbcc70c31cbfa6e28f5a58a089b534595e5ac1a31d398eec090f305998546cbfcf46c5594
5b79735a3ace9da95dbda2d9fa464d52c2dde758d351572eb716e76e5cebc645907d9a7bd55661
8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55e4bff3918fac45f97704d
a3dd5f5998f5dd08dfcfa60669d6c4ea702dc12115db804259b6edf17c3c862af3fd6bce3f98165aef9
8ecb45925d323b8fcc4b4d21afad34c80cafa34da22cb2c8ce606127199020b87e4c9458f9d28b8a
a41a77e6f7e78c1e525d67d19f55d627f2258f986e2ce6d3780b7d4d756faa5d98d218958b8b5e53
181b9b724e4abc7e0c55ef916b7a90f21cfe629bcc968d6a6e45f5beb6b6b22c6ba3fd6d5cc4c8416
327d5f943ea841f1d24f4f6a62aff00ffd4f7f62aec55d8abb15762aec55d8abb15762aec55d8abb157
62aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb15762a
ec55d8abb15762aec55d8abb15762aec55d8abb157ffd5f7f62aec55d8abb15762aec55d8abb1576
2aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb15762ae
c55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb157ffd6f7f62aec55d8abb15762
aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb15762aec
55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb157ffd7f786a
baadae8d6ab7979cfd179e0b651121918c97532411ecbbd3938a9ec37c5524b5f3ee84f1c82f656b
5bb8a6780db7a7348cc45e3d9218f8c7f1f39138fc1ca84d0e2a981f35f97945cb1bf8b85a44b7170e
2a55617591c3d4020ad219371fc8c3155ade64b66d734dd1ed78dc25fc5772b5cc6d558cd9fa1f0e
c0824fade3db154ef15762aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb15
762aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb15762
aec55d8abfffd0f77eb1a545acd90b39657878cd6f731cb15392c96b324e9f6810472415dba62a913
f9034c6d46d7535bbb959ad4928bc90ab06d406a241f83a7a8bc7fd4f7df15513f97b09d01fcb275a
bf1a516b8448c18430b3ba8a589ad58fa5f1c6a25250bf2752a9f17c3baa89d17c8f69a26a30dfc37f
75325bfae60b594c66247bc5884c7640df13441c0e545667a7c340aab209ef23b7b9b5b67525eed
9d2323a02886435fa171544e2aec55d8abb15762aec55d8abb1552b9b982ceda6bbba90456d6e8
d2cd2b6cab1a02ccc7d8018ab08fc9dfcced2bf37fc8763e78d214476f772dcc125bd4968deda778a
86bdcaaabfc9b156798ab89a024f418ab11d2751f3249e66befaf45fee1a5110b7b703f796c183947
7ff005f89e7fcb55c559762aec55d8aad7748c72760ab502a4d0549a0fc7154abcbf77eb58aa4d3fab
765ee1c866abfa62e245534eb414e38aa6f8abb15762aec55d8abb15762aec55d8abb15762aec55
d8abb15762aec55d8abb15762aec55d8abffd1f7f62aec55d51e38abaa3c7154a3533fee5f44ff008c
d3ff00d43498aa6f8abb15762aec55d8abb15762aec55e59ff00391d379b13f25fcd967e47d2eef57f
33ea76874cb2b4d3e332ce05eb086570a37a246ce7157cedff00380b75e6ef27797fcd5e4ff39689a
8e97a70bc8f50d26e2eada4489a6606dee6252453929890d3fd6c55f627f89b4ba392d20e068dfba
7fe98aacff15e914d9a53f289ff00a62ac7e5f3ef97b4cd7ef63b9926325cdbc32c51c7048edc212eac
4d06d52c00fe638aaebdfcdaf26e9d6573a8decd710d959c524f733b5b49c12385599dab4ec17b7f9
3fccb8abcacff00ce737fce370151e66b83d3a69b7ddffe78e2ab97fe7393fe71b8ff00d34f38efbe9b7
dff005471552bcff9cd9ff9c69bcb596d26f344e629d191b8e9d7d500ed51fb9d88ea3157a07e5879b
7cad75e55b3d72c3559b56835706e6dafdede58cc9033318c056504000d4d7f689c559ba799f4a7a
716977dc56271fc3155dfe25d2b905e5202dd2b13ff004c551563aad96a2d225ab9668a85c32b2d0

841

3540ea3db1546e2aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb15762aec
55fffd2f7f62aec55f307985ae4fe7d7e6fc507a4f1afe5e5bb959e678d519feb019c050c05422f23b1d
9715615e4dd166f34797ff22b43b49e23a96b5e40f3243eb5c4d2009712c569c2e1b87262f149233
0228c1b97165c55f4f797742d4fcb7a4791bcbfaceab26b9ab69507d52f7589c1592ee686c9d1a560
598d588aeecc7c4938ab36c55d8abb15762aec55d8abb15762aec55e7163a0c7a4473e9d14af308
eeae245918d1bf7d334a761e05e98aae7408de9a82577e47ad7e9c5548c618b2fd9fbc9df1560dad
42479c955c75d33e102bdae29d0034ad7e67ec8fb5c595635e7c8e9e46f321401386937d4666a11
fe8edbd6a4f56ec7e5f6fe355f9538abb15762afd5dff9c75841fc90f23b38f83f45c66adbfed374c55e
a6b1f1e255883420163dce2aadc99580ad69b72dcee462a9af94eeebacdd59f0fb56b1cfea57c2575
a53f8e2accf15762aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb15762aff0
0ffd3f7f62aec55012687a24b75737d2e9b6af7b790fd5af2e5a08da59a0a53d391cad593fc963c715
5b6be5fd06c5ad1ecb4bb3b67d3d1e1b0686de28cdbc526ee917151c15bf682d01c5547533fee5f4
31e334fff0050d262a9be2aec55d8abb15762ac4ff333cf163f96de42d7bcf1a880d6ba2dab5c18cfed
bd42220f76760b8ab24b0beb6d4ec2d752b3712d9de431dc5bc83a3472a87523e60e2a88c55d8a
a452e8978f7334c93442391da455656e439789ae2a846f2dea2cfc8dcc343d4046f1f9e2ab57cb17f
525ee2127a8f81b623a1eb8aa43aafe5c6a97fabaea90df5aa016a6d4c2f148db9939f2a86f024529f
f000bc815529d7ff2935dd6f44d53491a9dac4da85acf6892fa72fc1ebc6c818d1aa69c8f42bf4726aa
af91bfe89a9e6aaefe7ed3e9ff003013ff00d55c55affa26a79aff00ea7ed3bfe9067ffaab8abbfe89a9e
6bffa9fb4ff00fa419ffeaae2afafbf2cff0028f53f20791742f27cda9dbdfcba35a25afd6844e8aeca492c
14b1a75db7c55969f2adf9ff0077dbfb1e0fd7efc55cbe56d491b92dc405bf64b2b9a7e38abe0cd13f
2f3cf9a6ff00ce6f47e45935dd47f41a5e9f31cc21bcb9485f4a00df2c4579ef1faa7d12a7e1c55fa418
abb15762aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb157ffd4f7f62aec55
0516b1a4cfa95c68d05fdbcbabda224b75a7a4a8d7314727d877881e4aadfb248a1c5505379c3ca5
6df59fac6bda745f53b85b1bbe77702fa37727d8824abfc32353e18dbe33e18aa8cd7f63a9ea3a15d
69b7315e5b1b8b95f5addd654e496f2061c9491507623156418abb15762aec55d8abe5eff009ce5d
23f31bcd1f95d65e53f2068575ac417f7bf5ad7e4b40ade959d8afa88ac0b03f14855b6ff007de2acaf
fe71afcc3e6fb1fc9df2e685e7fd0ef74cf32e871b69724577c52492ded4f1824009ad3d3e2bf3538ab
d6079995ab4b3936153f127f5c5578f312d037d524008aeec95fbab8ab70eb1aa5ca996d74967809
211dae225278920edbd3718aaf1a8eb9bd7453edfe93162aefd23adff00d598ff00d24c58ab7fa435a
dbfdc3b7bff00a4458ab5fa475bff00ab2b7fd24c38ab8ea3ad01b68ac4f87d621feb8ab5fa4b5bff00a
b23ff00d24c3fd71570d4b5ce353a23d6bd3eb30f4fbf1570d4b5c277d11c0ff98983fae2ad9d4b5b1
d345723fe6261feb8abbf496b7ff5647ffa4983fae2ac325d174ab4fccb4fcc6bfd1a583cc9268c74259
16486506d45cfd63f65b63cb6f962aca879aedf7ada4c00a8ad63edfecb155e3ccf015afd56507c2b1
ffcd58aad1e69809a7d565ef4de3e83fd962ae1e6984a07faa4c14f7263ff009ab156dbcd16e1b8fd5
663ff0001ff003562ad8f3342457ea9375a7ec7fcd58aae1e648680fd5a5debb563da9fecb156bfc4b
07c43ead2f25ed54f9ff362a9c412acf0c73a8216455700f5a30ae2aa98abb15762aec55d8abb1576
2aec55d8abffd5f7f62aec55f397e64d8ea3e5cfce4d0ff353c9d64752d663bfb6f27799f4fb63fbc934c
d6ad90dacb28ad00b7b90b2127f619b157896bf6f69a6587e635a58344ad0fe72e82e8d212cbea13
6eccee6a4d0b872dbff00362afaa3c95f9749f97dacdd4e6fdafefbcdbe62d4bcc5a8d13d1b7866bbb
661e9411f26a2a851562c59dbe26c55ea58abb1569995416621547527603156f15762a81d66159f
48bf85890b25bcaa48ea0143e38ab0c335186e6a69573d2a3155c24ac920e2086a6c6bbe2aee48
8bc4d7e16dabdbc2a715657e5dafe8986a6a7949bf5ff76362a9a62aec55d8aa9cd3c36f1fab3b88e
3aaaf26341562140fa49a62aa98abb15762aec55d8abb15623e6c97d3beb6141c4c2f5aedd580c5
58f89a64f880d828edb57e55c554639e432d58d1282ab4f0ed8aaafd61e84a8ad4d0a914afc88c55
b37325146cbc69534ea4e2ab4dc3060450bb36fbfc3b0ad71544cb3710a43050c410057e223ae2a
b3d52528fb93bb01e1dfefc55516f6de1595e69405a710d2305d88d86e40c5595f93f541acf96348d
488456bab58a4291b7351551d0f7c553bc55d8abb15762aec55d8abb15762aec55ffd6f7f62aec55
6ac71ab33aa80ef4e6c0004d36153df155336b6a7903047463c9be15dcf89dbdf157cadff3925f9e6
7f2f7f3cff27bcb705d986c12f1afbcc68ad45369a893a7c7ea0f050d2c9bff002a9c55f57e2aec558bf
9eac6e2ff00449e313345611c6f25cac6c524958502254745a925be43154eb49b6bbb2b35b4bb97
d730131c33924bbc23ec17afed5366f1eb8aa3b1552ba87eb36d35bf2e1eb2347c86e4720457156
343ca3761427e96254529fe8e9b7e38ab8f946f0b723ab1affcc3a75f1fb58ab87942f02d0eac49a82
09b74da9fecb15465968fad58dbadb45abc66352c54b5a2d7e362d4da41dce2aae6cbcc35db5784
0ff9831ff557156858f98456babc27c3fd0c7fd55c55b365e61edab423fe8cff00ebf62ac5bcdf77ace9
d0a5b6a1abc315b4ef03c570d681632f1dc216527d534217e3ff002806c553fd3d7cc77f6915e1d46
28566aba46f67f17a649e24d26db90a1c5515f52f316ffee5a0f6ff0043ff00afd8ab859798b6aead01a
75ff43ebff25b1577d4fcc3ff0057583fe90ffebf62ad9b3f3052835582be3f53ff00afd8aad365e63a1a6
ad054f43f533b7fc96c550977e5cbfd464596ff005256745e09e95b841426a6bc9deb8aa9ff00840f1
03ebc76e84c29fd7156bfc1c09ab5eb37ce25feb8ab97c9e56b4bf6f6fdd2f5f1eb8ab4de4b465e2d7
ac477fdd81fc71577f8300e3c6f9978f4a44bd853c7156c793e808faf354f53e92f4f01be2aeff079dc0
bf60a4d40f497a7df8abc97fe7263f2966f367e4a79aad6d2f247d4b4db63ac58a246159a5d3c198a
020d7e340cbf4e2af3eff9f78793ee34cfcadd5bce77ccef3798b5030597a85885b2d3818c7104d003
2b49d3f97157d878abb15762aec55d8abb15762aec55d8abffd7f7f62aec5520b5f3a7972f7cdd7fe4
4b7bb2fe68d32d21d46f6cbd29404b5b962b1bfa85421e441140d5db154975dfcdff00cbdf2ceb3a9
683afeb034fbed1e1b3b9d51e786716d6f0ea52fa16cf24e233181249f003cb66fb54c55f377fce48ff

00ce2527e677e60c3e7d7f38cf6975adcb0d8c5666d12586d60b4b4665f4dd64526ad196dfbb9c55f
46e89af6b5a768f61a75e3437b75656f15b4f7adca369de2408d295df89622a4571547379b3515a0f
ab407c4f27e8715627f99ff983a9687f979e67d692d2de57d3b4db8bb5899dc076810bf1240a8ad29
5c55f20ff00d14abcddb7fce87a6fbffa6cff00f54f156cff00cfcafcd9dbc85a701deb7d39ff009978aa73
e4ff00f9f8679b7cd5e6cd0bcb1fe08d3ad8eb5a85a69a2e3eb93bfa66ee64879f1e02bc795695c55f
7284f36d4d66d3a9dbf753ff00d54c55b09e6ca6f2e9d5aedfba9fa7fc8cc55705f34f115974fe7dff00
77353fe278ab417cd3de5d3e9ed1cdff0055315715f34f2f865d3f8fbc7357fe278ab5c7cd7da5d3ff0
0e45cff00f35e2af09ff9c96ff9c88f36ff00ce3d69fe5fd40e8ba76ba9aecf7307a7eacf6a62fab22356b
492b5e78abc63c87ff39b9acfe7279e3cbbf96fa979174db7b7d72fe1845d3ddcd3089d4f30fc3d35e
54e3d2a3157db8a9e6c008f534eff002691ce07b7ede2adf1f35d7fbcd3e9dfe09fc3fd7c55b0be6aa
6efa7d7fd49a95ff82c55b03cd3ddf4fe9d926ebff058ab457cd5d9f4ff00a527ff009ab156a9e6becfa7
7fc04fff003562aea79af6a3e9deff000cff00f3562add3cd5fcfa7ffc0cff00f3562ad53cd7fcfa7ffc0cff00
f3562ae03cd9ddf4efa167ff009ab15753cd951f1e9dc7bfc33d7fe258aba9e6caecda752bfcb3d69ff0
58ab88f35d0d1f4eaf6f867ff9ab15753cd75ddf4fa7fab3ff00cd58aa95d2f990dace2e869d2db98d84
b1719a8d1f13c94d49ea31561ff97d696ff97de4cd1fc9ba15a44ba66950fa56e3930af3669093b1dc
b31271564bfe29baa53eaf0f2f0f51bfe69c5573799eea356924b7884483933736141dfa818ab2604
300ca6a0ee08dc118ab78abb15762aec55d8abb157fffd0f7f62aec55e236da6798342ff9c82f3c79e
65d0afaebcbd73e57d36d2c2e6d63597eb3776734b2490463903ca922d39715ebf16d8aa42ff9613
f9fff003cbcc1aaf9efcbb7b1f92f53f2ce82af6ef281613ea3a7dd1bc6b698c4d593d1764dbfbb7e2d5
e43157b8799101b6b614a1137c3415fd86c558b089d58ad012c2bd3df155ad148ea2a0034fa2be3
8abcff00f3aa099ff29bcf0abdb43be35d88fee1abef8abf22315762accff283ff0026c7913ff021d27fea
362c55fb978abb15762aec55d8abb157c2bff3f2cff946bf2fcffcbf6a3ff2660c55f24ffce2d1a7fce42fe
5e7fdb5e2ff0088b62afda0c55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8aa85f7fb
c5735ff7d3ff001610000026060f002220574d464301000000000001000000000000001a00000000
2000006cc702006c270300c44e2ac0236fdd454342c8bcb7ed414c5572ab3a9741f10fb27bff0099c
55e3fff003925f9b17df945e4b8b558b443abdaeab249a5dcb7ade80b769e0728ff0061f90620edb62
af41ff9c6efce593f3bbc86fe665d024d06cec2e06970896e16e7eb0d6f0c664914844e2016e3438ab
d8f15762aec55d8abb15762afffd1f7f62aec55d8abb154975c8c5cdee8f672315826b893d40a4ab1
e16f230151bf518aafff000de9952692d4ff00c5afdbe9c55dfe1ad377afaa41ec656c552ed6fc81e5bf
30e8f7fa0eab14d3699a9412dade4427910bc3329575e4a411507b62af163ff3825ff38de7fe99fbcff
b89deff00d55c55dff4229ff38df5ff00947aeffee277bff5571546e91ff3853ff38fba0eab63ad697a1ddc
1a9e9d3c577673fe92bb631cf6ee248dc0690834600ee3157b6fe813ff00574d43fe478ff9a71577e8
134a7e94d43e7ebffcdb8ab7fa08ff00d5ceff00fe478ff9a7156bf409dffdca5fefff00178ff9a71568e82
4927f4a6a02bb504e29ff0011c55c3402011fa5750df6a99c57fe238ab05fcc8fc80fcbff00cdbb7d3ed
3f3016ff57b7d2de496c51af658446f305573fb9e15a851d715627e59ff009c35fc8af27ebfa7f99fcbb
a5df596b9a5ccb736374351b9731ca9d1b8bb953f48c55eca7406a53f4b6a1ff23d7fe68c55b3a0b7f
d5db50ff91cbff3462aefd00fff00576d43fe4727fcd18ab434071ff4b6d43c77997fe68c55bfd02fff005
76d43fe46a7fd53c55a1a038ffa5bea3ff2393fea9e2ad8d064a53f4b6a1f3f553fea9e2ad1d01c907f4
bea3b76f593fea9e2ad8d05c0a7e96d43e7eaa7fd53c55dfa064dbfdcbea1b6dfdea6ff003fdde2ae3
a0c9ff577d436ff008b53fea9e2ae3a0487fe96fa87fc8d4ffaa78ab474193afe97d43fe46a7fd53c55df
e1f7a53f4c6a3ff2393fea9e2ae6f2f97528faadfb230e2ca654a107623ec62ad2f95f4b500012d1400
07a8dd06c3156d3cb3a6a6ca651dbfbc6c55e65ff00390df94769f983f939e69f2ed8c724bab2da35f
e928d23106f6cbf7d181d7edf129fecb154d3fe71cfc82df96bf92fe51f2adc4422d4a3b25bcd4d4751
797a4dc4a0fba97e1fec7157a962aec55d503af7e98abb157951ff009c91fc9587cd9aa792353f365a
693e65d22e9ac6eed352e7669eb252bc269408986fd9f157a30d6f463a69d646a36a74755f51b501
3c7f5609fcc65e5c69bf5ae2afffd2f7f62aec55d8abb15435ee9d65a8a2477d024e91b738c38af16a1
151e06848c55047cb1e5f3ff4af8b7d8ec7fae2ab7fc2de5eff00ab7c5f71feb8ab63cade5f0388d3e2a
7850ff5c55dfe16f2ff00fd5be2fb8ff5c55dfe17f2ff004fd1f153e47fae2ad7f857cbbbff00b8e8b7ebb1f
eb8abbfc2be5d041fd1d0d474d8ff005c5562f96bcb323ba258c0ef19e1201b95240343bec686b8aa
d9fcb9e55b58cc971676d0c3d0bc8782edbf5247862adc5e5bf2c484886caddcad397135a721515a
1ee0d462aa9fe15f2eff00d5ba2fb8ff005c554e2f2d795e6e662b281f83147e2797175ea0d0ec4786
2abcf953cba69fee3a2dba75edf4e2ab47967cb4ced18b184ba81cd413501ba54576ad3156a4f2c7
96528d2d8c2a0b2aa962402cc6800a9ea4f4c5577f84bcb805069d153fd97f5c5568f2bf96599916c
612e94e6a09aad45454576db15747e58f2c4bcbd3b285f83146e249a30ea0d0ec462adc9e58f2d4
6bce5b2895490b566602ac400376ee7618ab87947cb60d469d183f36feb8aaeff0a797bfe5813ef6f
eb8ab5fe12f2e9a56c2334d86efff003562adff00853cbc294b14db61bbf6ff00658abbfc27e5edff00d
0137ebbbffcd58ab87953cbc3a58a78f57ff9ab1571f29f974820d821077eafff003562aeff000a797b6
ff404db61bbff00cd58abbfc29e5e241360951d0d5ffe6ac55bff000b681dac537ebbb7f5c55dfe16d0
36ff00414dbddffae2adff0085f41dbfd0936d86edfd71570f2be823a5920f1ddbfe6ac55dfe17d0474b
241f267ff9ab1577f86342ff009625ff00827ff9ab155c3cb7a20e968be1f69ffe6ac550d77e4cf2bdfac
697ba64570913892312726e2e3a30a9d8fbe2a881e59d080a0b35a0e9f13ffcd58abe5ad73fe7023
c99e70fcc4f3079e3cd5e63bd361acdfcb7d0e8ba6c696e23490d783cf29959bfd8aae2af56b1ff009
c57fc92d37c95aa790acbcbf245a06b49126a7fe9974d3cbe84c9711b7a8d2920892356f869d3c31

843

57fffd3f7f62aec55d8abb15762aec55d8abb15762aec55d8aa59e628f539743bf8b476e1a9bc2c2d
9ab43cc8ec7b1f0c558c45a16bf6de6cd6b58b69a6874dbbbb8259ad818da2b8b55d3440c540064
12aca8b4f897a7862aa3af68bafea9e58d024692e22f35e9b0fd6feb1124571035d8b368e482ea090
812453f368db8d1837c4b247f6b154157f320c576a6d8e9f20b588c16f60b6ed0a4e34862d1c4ce2
ac897602a72f97d8c550fa85ff009f1f568f455babab292fd750934e9112d4b3345a759cd1f22cac02
a5cbcc9eff0065aab438aa2f418bcdd63afddd85cd94f6ba65fea325e9d46d121785a54f4bd559448
e5962996a2360bcaa1ba371aaaa9aadd79c2f3cd1ae5ae837f322e95fa3e48ad3d380db98ae6dee
0cc2acbcd9cb2215f8be17e1fb05f156f486fcc24bdb04bb12cba7cb1e9bfa527992da3b9065b4b9fa
c14f4c004a5c7a3cd69f0a57d3ef8aa1ec17f3301964d6a4926b986f3468a38208ad8dab5bbfa1f5e
945579557f7858f2f80d7d21f67154cbcbc7cd715fe8b69733cd3d84ba647fa5a3ba92137969796ad
b33000b38ba0c431afc3e9557ed62a83f374bf982b3eac3cb82e115268dec1e186d9bd445d32e58
ad640495372b0835f8aa788f82b8aa5561079ff00cbf79aaea3a758dc5cc57f7fa85f4da6b2c1e994a
d915311255848ea2711867e2cff006a9f0e2a9c4ede76379eb4125edc69d143a54d0413dbdaa348f
3ea327d6d655e350d15b70e85694e6bf1e2a84b3befcc1d36df49d3cd95fddceb76dfa4af65f42643
6cf7f70ae2bc95c1588c4f19e9e9fecf256c55af2e6a1f99115c5a59798edafa5b2bfb4b0f5b508a2b5f
5ad35096d91a7e4a283d25915d5be07e2cdfcbd15657e52bbf30defd726f30c1359ddc4e6dded192
316a5a2964a4d6d22b333249198fed9da9d15b90c5592e2aec55d8abb15762aec55d8abb15762a
ec55d8abb15762aec55f38ea7f9a5e66b8d435f87512b259693f99da279534c86ca59ac1e3b39c5a
3334af1b132d5a6abc6df038f84fc3d1540dbffce46f9f25d09b5c7d0b4b10bf97fcd1e618407baa21f
2adf9b430b9ee675a114a7a67f9f1566ba57e79de6b571e6192c3cbf23e9be58b7b3b8d564322874
5bed14eaa8c2a45579b4706ca7ed349f657157fffd4f7f62aec55d8abb15762aec55d8abb15762aec
55d8abb15762aec55d8aa9bc10492c73bc48d3c2184529505d03d03713d4569bd31554c554d6de
149649d23559a5e22590280ce1365e446e695dab8aaa62aec55496dadd2792e92245b9942acb30
501dd52bc433752054d2bd2b8aaae2aec55d8abb15762aec55d8abb15762aec55d8abb15762aec
55d8abb15762aec55d8abb156373f903c95737b75a8cfa159497b7b7b6bab5dced0a969750b050b
6d70de32c407c0ff6862aa69f973e458ecff47c7e5fb15b1fabddd91b710afa66db51732dd4457a149
9cf2907ed1eb8aa213c8de508efe5d4e3d16d23be9ec57499e64882992c235289048050322a92aa
187c2bf08db157ffd5f7f62aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb15
762aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb15762
aec55d8abb15762aec55d8abb157ffd6f7f62aec55d8abb15762aec55d8abb15762aec55d8abb157
62aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb15762a
ec55d8abb15762aec55d8abb15762aec55d8abb157ffd7f7f62aa115e5b4f3cf6b14aaf716a545c44
a6ad1991792f21daa3718aabe2aa1737b6b666117532c5f58956de0e669ce57a9541ee6871557c5
5d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8
abb15762aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb15762afffd0f7a6a5
04d73a7dddbdbb719e58648e2604ad1dd0806a3a6e7157946b3e4ff3cc7697173e5e7bbb6d5a5b7
b3b6062bd0954874a9e07243bf12e2768fe36ab542bab501c55928d3fcd36d3ea11f0bfb8b6b05e7
a2a4579122dd453db44924534929693d54984922336dbaf17e3f0e2a95c7a579f6eaf34d8b57b792
e6cad3548ef6198cd0a98e28af6f6a64024ab7fa3c96fc1472fb2c0fc43157a4cd770c1716f6d213ea
5d332c541515452e6a7b6c31557c55d8abb15762aec55d8abb15762aec5523f2b79bb41f39d8dd6
a3e5eba17769677b77a5cf200471bab099a09977f065d8f71be2a9e62aec558c6a9e6992c75ab5b
38adccda62faa353bb5dfd164556141d4f10c0bd3a038ab26041008350770462ade2a82d4ef5ec61
864450c649e18086da82690213f315c551b8abb15762aec55d8abb15762aec55d8abb15762aec5
5d8abb15762aec55d8abb15762aec55d8abb15762afffd1f7f62aec55d8abb154a353a7e98d0ffe33
4f4ffa477c5537c55d8abb15762aec55d8abb15762ac4ff33bce16fe40fcbcf3379cee582ae8ba75c5
dc75fda99508897fd948557e9c55f1affcfbbff337d5b5f3b792b5bba266fac47e60b467ab166b9fdd5
d6c01fda589bfd962afb90ebfa40a56e46fd3e17fe98aacff0011e8b523eb6b51d7e17f9ff2e2af3df3d
7e727e55791f5ed117cd9e64b3d256e22bb9156e1641cd5d516b4543504ed5c55029ff395dff38ea
4517f3074c006d43eb2feb8c62aeffa1b0ff9c75a57fe560e9bf74fff0054b1548358ff009c8afcb0f31e
ada5d87903ce3a7eb7ab5f5c410ae900ca0978a4f556540c83a50871dd7e58abd9b4fd7349b6b38
2de6d4beb13aa8124ee1eaee7763f676049d876c55143cc5a2b1a0bc5afc9bfa62adff887462bc85d
ad3c78b7f4c55318e449a349636e51ba86461d0ab0a838aaec55d8abb15762aec55d8abb15762a
ec55d8abb15762aec55d8abb15762aec55d8abb157ffd2f7f62aec55f30799f5bf3445f9e7f9ada669
b35c5c69d67e4386f6ded1f509ada0b5ba904d59e240195643c07c4a14fc3d715627e5abbf3a7993
43fc95d374dd5afe7d6bccbe45d7a59e79753b9803ea423b5305e4ee1999de1794b2b5198576c55
f4be83a76bfa4699e48d2fcd5a92eb3e64b384c1aaeaa89e9adcdcc766cb24a176a7222b8ab34c55
d8abb15762aec55d8abb15762a86bfd3ec355b4974fd52d61bdb09c0135adcc6b342e0104064705
4ee2bb8c55e5da4792fcb3e57bfd526d2745d3f4fbd9ef2e49b8b1b68ade430492f358cb22a9a0db6
e98aa72cec6a48df7e9b1ae2a8794b3124b6d4a780af8e2af81ff00e73e5abe6cf280a51469f7407bf
efd7157c858abb157a5ff00ce3d923f3afc9040248d4e2a53af438abf5922948341f129a0a751d3155
c8e412bc475a815e94f0c557dd5f476f6b2dc4eff00b98237924af648d49341d4d062aceb429e2bad
0f4db980f2866b58248db715478d581dfd8e2a9862aec55d8abb15762aec55d8abb15762aec55d8
abb15762aec55d8abb15762aec55d8abfffd3f7f62aec558edc790bc9d75ab6a5aedc68b6d26b3acd
a7e8ed56f993f7d73654a7a12356ac94fd9e98aacd33f2f7c93a35c69175a5685696771a0412d9e8
8f0c610d9db4ff00de450d3ec237ed28d8e2a8ed53fe3b1a1ffc669ffea1a4c5537c55d8abb15762ae

c558afe6679a07927f2f3cd3e6ee6a9268ba55e5ec05fecfad0c2cd103f37e23156bf2cbcdf0f9ff00f2f
bcb3e73808a6b7a6db5e48a3f6669231eaaff00b17e4bf462acaf15762ac6ee342d41aea79a230b2
4b2348a19981a31aeff0009df15507f2fea849e22de9bf576effec31543bf95f552f5ac05694a7371ff0
01a62af9bff00e725ff00e713bcfbf9d5ab797f53d0354d2ac46956d35b5c477af382c65915c1531c4f
d86f5c55e15ff44e3fcdff00fa987cbfff00236eff00ec9f155a7fe7dc9f9c3534d7fcbf4edfbebbff00b26c
55977e567fce07fe6a791ff30fcbde6dd4f5ad126b0d22ed6e678a096e5a56555228a1add454d7b9c
55f69c5e53d694f290db020edc5dffe68c55bff000aeb543bdb13dbe361ff001a62af16ff009ca5bffcc1
fcb6fca5d43cdfe579ad2292d2e20b7d43d443704da5e936edc55940043ba6f8aa73ff003869f981e
7ff00ccafca93e61f3bb5a9b7b7bafd17a17d560f40b5a58431c6ceff0011e44bd56a29f67157d118a
bb15762aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb15762afffd4f7f62ae
c554d6e20795e05915a78c03244181750dd091d45715519352d3a112196ee18c44c2394b488bc5
c8a856a9d89f038aa5fa8cb1cbab680f1387469a72aca41523ead27423154eb15762aec55d8abb1
57857fce5df967cefe6ffc91d7342f24fa01e4e375ad35c4be8d74cb156b99523f85b93b346829b6d5
df1549ff00e713740fcd0fcb5fca987c99f985e5f984b637524da2c96b7169720d85d8137162261c4a
c8cfb78362af734f32da9d9edae23704a3a32255594d0834738aaa7e9fb6ad3d09ebe1c57fe6ac55
6a6bd34c8258348bd9626af070200180daa034c0fde3156ceb5763fe94b7c7e5f57ffaad8abbf4cdd
edfee16fbfe9dff00eab62ad7e9bbbffab25fff00d3b7fd57c55a3ae5d8affb83d40fb016dff55f1570d76
ee9be85a80fa2dbfeabe2ae3ae5d8e9a1ea04fcadbfeabe2ae3aedd06a7e83d408f1a5bd3fe4fe2aef
d3975b7fb84d437ff0026dffeabe2ac33f36b496fcc1fcb4f357936e340d424fd2da75c4300a5b0a5ca
a1781abebedc65546c5503f92967a4fe5cfe55f94bc96b6f34573a6e9d02de80837bc997d6b8350d
bd6577c559dff8bf4c069e9dc77dfd3e94ff00658aaf6f35e9ca68629ebff18ffb71570f3569c69fbab81
5e80c601fd78aaeff0013d8712c629c01d7e015fd78ab97ccfa730a88e7a7fc63fedc55cbe67d3d813
e9ce294eb1d3afd38ab7fe25b0ff7dcf5ff0053fb7156c7996c08afa737fc00feb8ab47ccd62090629c5
17913c074ff0082c55368a459a34953ec48a197e4c2a3155f8abb15762aec55d8abb15762aec55d8
abfffd5f7f62aec55f38fe624175e48fcecd1ff0036bcbd6f3dfcb7f756de48f356996879b496daa408fa
7ced1d401e95d050cc7fdd6fed8abc4bcc5616d63a77e63d9c263b8b85fce5d06ad72f5f525736ecc
5d886214b33f63c472c55f517907f2faf7c81a9dc1bfd456f25f32799754d7a3b3803259d825ddab85
b7b75724f1017939a286762782e2af59c55d8ab44851563403a93b62ade2aec552af32dadbdf7977
56b1bb4f52d2ead2782e23e9ca39232ac2a3c41c55328628e08638621c628d4222f82a8a018ab0f
9c9fad5d7115a4d2ef4ff2cf7c554164f8d5537727dfa8dce2acab44afe8ab5e5d786ff79c5530c55d8
abb15762aec55d8abb15762aa573b5b4c47646fd4715796c7c9208ba316452180a751ed8aabc6a
586df13027891b1c555555a47e352547da3bfd3be2abd4485fa5517ecd7b018aaf60c47256af2209
24d41f1c557a2ba2f2e84eca3b5062ad162ac40d8d6a2a7e9c5562c8c19a8a77a134d87b9f962ad2
9e3f1d77e445454ec3a6d8abae264862958b716f4dd8abec182a938ab33f2ddefe91f2f693a8710bf
5ab3b79b8a9a81ea44ad407bf5c5534c55d8abb15762aec55d8abb15762aec55ffd6f7f62aec5545
6d2d525967482359a72ad34811433b4628a58d2a4a8e95e98aa09fcbbe5f93d6e7a4d9b7d6265ba
b8e56f11f52e12bc657aafc4e2bb31f8b1578efe74fe72d9fe5efe697e51f95257403ccbaa4f1ea0cfd
63b696136911f6acf3aefe08d8abdd715762ac5fcf169757da44d0890c3a7246d2dd18d8ac923290
1136e8b53c9be4062a9de950de5b5a2db5ec9eb3c2c638e6ad59e25fb0cffe553ed62a8dc550da85
b35e58dcda2388de789e357239052c08048a8ad3e78aa0563f340039dcd81f1a4130ff0099d8ab1d
d3747d6b515bcb89350b705aeee178885881e9caca69593a5462a8f1e59d5958117f05294ff79dab
5f1fef31547d9d97986ceda3b54bab3758c71576825048af7a4b8aab7a7e64a7f7f635ff008c3374ff0
091b8ab423f3377b8b1ff0091337fd55c55be1e65a7f7f635ff008c337fd55c556fa7e67aff00bd1614ff
008c337fd55c55c13cd14de7b0af6fdccdff0055715714f346d49ec3dff7337fd55c55dc3cd1feff00b0
a7fc619bfeaae2aee1e67ff7f587fc8a9bfeaa62ab2487cd1223c7f58b00ae0ad7d1989008a1ff0076e
2a961f274fc1116f107050a0fa47b0a7f3e2ab97ca372284dea122bb7a46943b7f3e2abd7cab72bd2
f13fe451a7fc4f1570f2add852bf5d8c9a920fa276ff0087c557ff0085a62286ed763b5233d3c3ed62a
d0f2c5d8ad6f908a500311a7fc4f1568f95672056ed0d3b7a440ff8962ad8f2ace1388ba4af8fa47fe6
bc556ff856eb6ff4d40056a044457fe1f15789ff00ce57fe59ea3adfe48ebf7763785afbcbc175c85214
64775b4a99d032b743117da9db15497fe7017cb37961f94779e6ebf967924f32dfb9b28e777711d8
e9e3eaf1840c4d017f54edb74c55f5762aec55d8abb15762aec55d8abb15762aff00ffd7f7f62aec55
26b7f367976efcc979e50b7d42393ccda7dbc7797ba60afad15bcc691c8c294e2c7a1ae2a95eb1f9
9ff97fa06a77ba3eb7e61b4d3f51d396d64bf86e5fd31025fb88adda4661c5448e42a927ed6d8abe2
eff009cb7fc8efceefcc2fce3b2f38f97eded0689025ae9de5a91afa38e557b58deeddd95a9c6b27a94
f92e2afb1344f396b7268fa7beb5a6470eb0d6f09d46249f9a25c701ea0560942395694c551ade729
c20616295a9d8cc7fe68c558a7e627e664ba1791fcc1accda58963d3b4f9ef24856e38b308179f104
c640ad3157cb9ff452e836ff009074feff00ee507fd9362ad1ff009f9745dbf2e9abdffdca0e9ff48d8ab6
7fe7e5d076fcbb7f7ff7283fec9b1543de7fcfc8ed6face6b497f2f648fd54a2c91eaa03238dd587fa30e
8687157d71e405f3bdf69767e65bfb6b257d4a01736f6d24d223451dd9f5d8911c6ea59cb0debd05
315667ea79a7bdb69ff00f49137fd51c55bf53cd1ff002cd615edfe9137fd51c55dea79a3fe59ac3fe9
226ffaa38ab5eaf9ab7ff45d3fdbfd226ffaa38ab8cbe69ed6b61ff49137fd50c55deaf9a77a5a587b7fa
4cdff005431577abe6aa1ff0044d3ebdbfd266ffaa18aad12f9b77ada69ded4b99ffea862abbd5f357fc
b25853fe6266ffaa18ab7eaf99e9bda58d7fe6266ff00aa18ab465f34d4d2d2c29dab7337fd50c55af5

845

bcd75ff78f4fa7fcc4cdff005431577ade6baffbc7a7f1effe933569ff0022315709bcd55decf4fa76ff004
99abff263155c26f33f7b4b1fa2e66ffaa18ab8cbe67ed6963edfe9337fd50c55af57cd1ff2c961effe93
37fd50c55b12f9a3f6ad2c3e8b99bfea862ae32f9a37a5a587b56e66ff00aa18ab5eb79a69b5a5857f
e6266ffaa18aa0b588b5dbed1efecb52b0b096c2e6de686ee217329e504919571bc14dc138ab19fc
bf4b3f20792b41f25e93640e9fa2d9c5690b99777e03e273f07566258fb9c55931f354c1b8ad903e0
7d5ff009b3155e3cced4e4d6a388346225a9eb4e9c7156458abb15762aec55d8abb15762aff00ffd0
f7f62aec55e0765f5ef2f7fce49fe6079bb50d33503e5f7f2b6976f6d7b0595c4f1dc5c5b492c9243098
d183c8030f8571563379f9683f35bf3d7cdc3cdfa5eab63e49d5fcb5e5c9a788c4d04373736573f5c3
68f70508263629eaa46c1ba8ae2af7bf385a412c3a6b3a2d6dae79427f94989d36fa0918ab169078
548af634fa7155aa1072e23e1ad2871579ff00e7683ff2a8bcec588e4744bee9d4fee5b157e49e2ae
c55d8abb157eeff0091abfe0af2dd7afe8bb1affd23a62a9fe2aec55d8abb15762aec55d8abb15762a
ec55d8abb15762aec55d8abb15762aec55d8abb1542ea54fd1d795e9e8495ff008038ab0002b1c6
147c200f98c55b2ccec4b538f6fe2715605f9b5f9a7e5bfca7f2cfe94f3449756f6fa8b4965653da42d3
917263675e4569c7a6c4e2ace7f253f38fc9bf9c5e593a8f93ef2e2f974916f67a9cd756f2db9fad984
3b00640399eec56bd7157a662aec55d8abb15762aec55ffd1f7f62aec55d8abb15487cc112de5fe8f
a7c8ccb0dc4d3172940dfbb81d850907be2ad7f8474e000135c507f96bff0034e2ab4f93f4d3feefb9f
f00835ff9a7154a7cc7f95be5cf34e85a97973559af0e9baadb4b6774229551fd29d78b716e068687
ae2af09ffa27b7e41ffbf75eff00a4f8bfec9f156ffe89eff905fefcd77fe93e3ffb27c55dff0044f7fc82ff007
e6bbff49f1ffd93e2adff00d13dff0020bfdf9aeffd27c7ff0064f8abe8bd3fcb571a5d85a69967ad5eada
59411dac0acb6ccc2385022d4fa3b9a0eb8aa2ff44dff00fd5eaeff00e02dbfea8e2adfe8bbeaff00c76
2ebfe02dbfea8e2aefd177fb7fb99baff0080b6ff00aa38ab5fa2b50ad7f4cdd7cb85b7fd51c55c74ad4
0ff00d2eae87fb0b6ff00aa38aad3a4ea3bd35cbb15ff008aed7fea8e2adfe8ad47feaf575d29fdddb7f
d51c55bfd15a8d6bfa6aea9e1e9db7fd51c55a3a4ea4453f4e5d57c7d3b5ffaa38abbf456a5ff0057b
baff9176bff00547156ff00456a3ff57abaff009176dff547156bf456a5ff0057bbae94feeedbfea8e2adf
e8bd47feaf573ff0022edbfea8e2aefd17a8d29fa6aeabe3e9db7fd51c55dfa2f51ff00abd5cffc8bb6ff0
0aa38ab7fa2f51ffabcdcff00c8bb6ffaa58ab434bd4475d6ae8ffcf3b6ff00aa38abbf45ea3ff57ab9ebf
efbb6ff00aa38abbf45ea3ff57abaff009176dff5471571d2f51edad5d0ff009e76dff5471559268d7d34
6d0cbad5d344e0ac8385b02cac2845443b6de18aa81f29d891c7eb1700529b328e9fec7155dfe15b
0ff7fcfdbf697b7fb1c55e49ff003935f9436de7cfc97f3469d6924b26aba7db1d5b4c562a41b8d3c197
8ecb5f8d03a6dfcd8aadff009c38f213790bf213cb715c270d4b5e56d7af6abc5ab7f46881aefb42231
8abdeb15762aec55d8ab07b4fce4fcadbcf31ea1e508fcd9a6c5e67d2e76b4bdd2ae275b6b859d36
2aab370e7fec3962acdbd48f87abc87a54e5cea38f1eb5af4a62aff00ffd2f7f62aec55d8abb15416a1
a558ea9e8fd7232ed6ec5e1747789d5994a921a3653b82462a853e59d24d2a2e36d87fa5dd7fd55
c55dfe19d2694a5c53fe62eebfeaae2ae3e59d248a71b8a7fcc5dd71610000026060f002220574d4
64301000000000001000000000000001a000000002000006ca702006c270300fd55c55a3e58d21
a955b8dbfe5eeebfeaae2ad3795f476eab71ff49775ff00557156ff00c33a4ff2dc7fd25dd7fd55c55a1
e57d1d7a2dc7fd25dd7fd55c55bff000ce93d2971ff0049775ff557156c796b495ed71bedfef5dcff00d
55c55dfe1bd254f4b8a9dbfdebb9ffaab8ab47cb3a47522e36dff00decbaedff3d71570f2ce904540b8
21b7afd72ebfeaae2ae1e59d241240b8a9d8ff00a65d7fd55c556ff867475017fd200de95bcbaf99ff0
076e2ad8f2ce8e4711f59a0f0bdbaefff003d71577f85f49ff97aff00a4dbbffaab8ab7fe18d27fe5ebfe9
32ebfeaae2aeff0ce95e375ff0049975ff5571577f86f4b27adcedd7fd32ebfeaae2adff8734baf1e5735
eb4fae5d7fd55c55bff0de99b8adcd0f5ff4cbaffaab8abbfc39a678dcff00d25dcffd55c55dfe1cd32a4d
6e6a7fe5eee7feaa62aeff000de99e373ff49975ff005571568796f4b06b5baaff00cc65d7fd55c55a1e
59d287fcb57fd265d7fd55c55b1e5ad2c0a56ea9ff0031975ff557155dfe1dd33c6e7fe92ee7feaae2a
d7f86f4bdf7b9df7ff7b2ebfeaae2ae3e5cd30d37b9dba7fa5dcffd55c55c3cb7a62d686e77ff0097cbaf
faab8aad93cb1a4cb1b452fd65e27055d0dddc905585083fbde8462ab6dfca9a35a5bc3696ab7115
b5ba2c70429777211110715503d4e800a0c555bf4069ff00cd73ff0049773ff5531577e80d3eb5e57
3ff0049773ff5531543ddf94b46be545ba174e22712c74bdbb521c743559478e2a885f2fe9e86aaf73
e1fef5dc9ff009998abe3df33ff00ce0241e7afccdf32f9d7cc7e6f7b3d0f59d426bdb6d3ac2169aec47
2b56925c5c3101bfd83e2af67b0ff009c59fcbad3bf2f755fcb78351d7db46d6228a1ba9e5d5679265
10cd1cea6246fdcc7568d79718be25aaf7c55ffd3f7f62aec55d8abb15762aec55d8abb15762aec55
d8aa4de6c935687cb7a94ba12f2d556126d80fb55a8e457fca0b5e3ef8aa417faeebd22f9a6c21b6b
9b4bfd2adee24d2196dddedeee37b646b7912e082a641373568c1e5fcc9c68c554b3ce3a16b1e60f
327942de48de2866d375ab6d5aee389e58ade4bbb58117e252155b972f4f91fd9db1543c373e7dd
1ecae60b5826d62e34c96f6c3474bd80739a2b2d3c35bcd24f404bcf20e2d25423b1e238e2a8fbad
4bcf771e627b48e2683cb4f0dd4f6b742d03cd27a76d6b24714a1c10b59249900e219f8d3f679155
0b6bab79fa1d3adb528ace577126922e7476b78e0a417b651c53087971e260b87f55d4b542a3c7f
cb8ab29d5355d5acb5cd2b4810cc74ebf82456d5a0b76b858ef62788ac72840446922190f36f86a2
9c97e1e4ab156d5fcd7ab69fa6bdfe9d27a9a83ea36da8d8c961223589874e987059096e48f32811
cc3e19164e039571540e93a879cacf49b1d32d6d67b231c5a7db99c5833ca235d09e67e65d684ad
cc691f261f0b1f4bed62ac83cb1e69d6358f33dce9d7b22436b6892a1b7169711fab27a76ce0acce8
23e51334d1ca8aedbf1d978b62a819bccbe76bcb091edada7b2d4e2d4574ebcb33a74ac21884d38
f5e195c94991e2113725e4aa7ad39705552f6f367e625be9eb70f637134d25ac72151a7c85d6eae7
477b858c228ad16ed021afd82fe9c8d8aaabeb7e66d125bfbbb3d22f25d4355d534d79956ce592df
d336560b74c78eeb4065a30a8e71956fb38aa234fd6bced6afa789b4f9b507f4946a3733db7a73aa

9d58c137128aa0f080fa8a807c48bea0e5fb4aa221d67f30e2f33da59ded9d7483742091e2b7251e
d649afd56679013c18470db3301b0f537fb6142af46c55d8abb15762aec55d8abb15762aec55d8ab
b15762aec55d8abb157cfb77f9b1e63bbbfd5edf514fab5a699f995a5f93f4dfd1337a12bdaccb0393
72658e50eac65fdea2f0e4b55575ea55412ffce4deb92694faaa794edbd37f2e6b9e68b58bf48b963
0f96efcd9dc46e7ead40d281ce2a569d1f15671a77e77da6ada96b36d61a25d4b61a01b78f55ba15
fdd3dde943548c9f878f13cd20fb5cbd57ad386f8abffd4f7f62aec55d8abb15762aec55d8abb15762
aec55d8abb15762aec55d8abb15435c69f6575716b7773024b7364cd25a4ae2ad13ba9462be04a
9231544e2aec55d8aa02c746d2f4cb8bcbab0b54b79efe4f5ef1a3a8124a7ab915a723d5881f177c
551f8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55
874ff00957e43b9bcbabe97491f59bdd5ed7cc9725669d55f57b150905cf059028750ab5a0e2d41cc
362a804fc92fcb18ec534d8f430b651e9da8688910b9badb4ed626fac5e435f56b49643c89af21fb2c
b8aa656bf965e4ab2bebfd46cf4e6b7b8d52c22d2752115c5c24773696d0fd5e212a0938bba447d3
5948f542fede2aff00ffd5f7f62aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb
15762aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb157
62aec55d8abb15762aec55d8abb157ffd6f7f62aec55d8abb15762aec55d8abb15762aec55d8abb1
5762aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb1576
2aec55d8abb15762aec55d8abb15762aec55d8abb157ffd7f7f62aec55d8abb15762aec55d8abb15
762aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb15762aec558edf79ff00c8
9a5ddcda7ea7e68d22cafedcf19ed6e6feda19a36eb464790303bf718aa18fe687e5a0343e73d081f
0fd2769ff00557156ff00e5677e5b6fff003b8e87b75ff72769ff00557154db46f32f973cc6b2bf97b57b
2d5920204ed617315d042d5a72313352b4dab8aa698abab8abb15762aec55d8abb1575462aec55
d8abb15762aec55d8abfffd0f64f9d3f3234af246bfe58d13565544f33c9756d6b74d27002ea058cc5
0d38904ccd2710ccc8abfb47154db55f3868be5fb513ebf70b692469caee3884973e8b085e7218c6
8481c2372a4aaf2e38aa6b0dfdbdc4be9c3cdfedfef023fa7fbb2a0fc74e3bf2db7f8b7a7d938aa2b15
762ac175405b54bca9e444b41563b2f05da80e2a8328ca006069feb13bfdf8abb8f235afc55fe6600
7cb7c553cf2c1e3a85c462bc7d0434a922bcc8ef8ab2890b2a315a720095af4ad3be2ac03ca7f987
3ea9e45b1f3b6bd6ed041269906a57f1db5ace16333b1afa6d213cd51412d4f882fc7d1862ac8ee3
cdda3db4cf14ad2d2294db5cccb0bbc30dcd212b148ea0a876f5e309bfc476ed8aadbbf386956375
3d8dca4e9796e9148d098f72b7124f1c7435a7c46dde9bf4e3e38aa5907e6368d235b875b8135ea
69a6dec441fbe47d5a2966895dc3942691372a1a271fb46b8aa63a379db41d7e6b7834b96499ee6
de1bb5ac4e8161b9844f1962c053921ff82aafdac559162aec55d8abb15762aec55d8abb15762aec
55d8abf183fe729801ff00390bf9874ffabb49ff00104c55e418abb157e817fcfb44feebf31476e5a57e
abac55f786ad3496da5dedc44dc258ade59237d8f1644241df6db1579de93e7ad5b4efcbcb0f396a
b6975a9dc9d234cbfbdb4596d4cd324d12b5cdc411420b12bc8b14db9538c7be2a9e7fcac7d29a6
9044a9359da4d6d6da95e25c43e9c0f7d15bcb6ee03306785c5c2812814dba71c554b50fcc68f4dd
40e91756013522f6912a0b84642d7f1ddc9190400580faa9ad07ed7f938aa576bf9a13b598ba3a59
96fdf4ed3f519add6e516d97eb9a7dd5f308dca723c45b32548f8b929f87e2c559268de726d73548a
cacf4c985998567b8bd7650b17ad6f05cc3f08af20e262bb1a868daabc789c550d69f9816973e6db9
f25cb6c6df5985e458d647aa4aa823954821695685fd555ff0021d7f6715636ff00987ac5f269c9a54
0b17a93797dab3cc8d2cb1eaf35c473472111f15e221d99055bb0c559345e7fb29749d2b505b493
eb1ab595ddf5bdb725e23ea1187923327d9a9ad13f9b76ec71563ba77e636a525aeb37777633cda
689351974eb94648ae228ad2d61ba58658d928878c8caacc5fe35e2c3e218ab2987cef6133da708
c8b6d4a57b4d36e5e48d565bd885c1920715ac6c3eae7afdae5fcc1862ad1f30dfdde8fe679c42b67
77a3c935bc055c4a79476914e19aaa1410d215a6ebf0d7be2a8797f32343b796c1278e7582fef2e7
4d5b8e1f0c575677296ac2615fdda976f85db6ff825aaaa56fe6fba4f3c6a1e5aba8c899b4fb3bcd3e
d1a8b117692e44c1670bc4bf18d1f8135e01997a362afffd1f6df98fc93a1f9aafec2fb5a8dee12c20b
db41684afd5e687528d23944aa549340838d08e271542db793574859ae6caeeef539a4b04b0b9b1
d4278cc17be82b246f70fe8b373e0dc19d7edad39abb0ae2a9c687a15b797f4dd3b49b1966163a6
db0b48a291fd5e4abc68ceee0b330e3b1af738aa6b8abb15615a8c328d52f0fa3310d202acb1bb2d
38aee0818aa1784ecca7d1b823aef0b8dfbf418ab8a4e3a5bcfc588afee9ff00a62a9c796e1952fee2
468648e3f4954348a5413c89daa062ac95d0488c86b46054d0d0d0edb118ab1bd3bc87e5ed2f4b8
344b64b87d1edad069f0d84d753cb00b5041e055dc86ad0025aa78fc3f6715521f975e5516b7f626
da66b2d4ede1b5beb76bab868e416c8914729064da6558d07ac3f7bf029e7518aa2e5f25e81717b
6ba8dd4534f796b0c76cb2cb733b19238199e3f5817a48ca5dc867e47e36c55460f20f962de6b69e
2b57f56d3ea5e8334d2b11fa323962b6eac6bc16671bfdaafc55a62a87d07c96ba06b4d776933269
3059db69fa75a24d3911dbdac7c16392376647a1e4cb27c2ff00151bdd565d8abb15762aec55d8a
bb15762aec55d8abb15762afcc8fcfeff009c51fcf6f39fe7279cbcd5e5bf2bfd7742d53506b9b1ba179
671fa91b228af1925561b8ee31579b7fd095ffce49540ff00069dff00e5fac7feabe2ad9ff9c2aff9c92ff
a937fe9fac7feabe2afb0ff00e7073f25bf31ff00286dfce83f30747fd12fab3d87d414cf04e6416e27e6
7f72ef4a735eb8abeba78d25468e450f1b82ae8c2a0a9d8820f507154059f97f42d3e9f50d32d6d78
aaa2fa30471d123042a8e2a365e4683b571552ff0bf96b8bafe86b1e32db2d8483ead0d1ad13ecc0
7e1de31d93ecfb62a883a2e8ed3c172da7db1b9b5458eda630c65e244af1546a5540a9a018ab49a
1e8b1a858f4eb55508b180b046070456455fb3d02bba81fcacc3f68e2a9769be51d2b4cd66eb5c8a

847

347bcb823d2768605781046b1fa692222b98f8aa8546660bfb38aa79e8c3ea7abe9afaa7abd072e9
4ebd7a62a858f46d1e2f4fd2d3ed93d111ac3c618c7010b178c2d06dc1998ad3ec92698aabc76365
14514115b4490415f4635450895041e200a0d891b62a86d4347b3d46caeac24411db5f065bd1185
532a48bc1c31a57e25a0e5f6b1569b40d0a48e68a4d32d1a3b9996eae11a08cac970a4112b82bf1
3823ed1f8b15451b2b322e01b78c8badee8705a4a7884f8f6f8be10177ed8aac9f4dd3aea09ed6e6
d219adae6a2e61923574939501e6a410d5a0ad71568e97a6135365013c163afa495e088d1aaf4e8
15dd40fe5661fb58abfffd2f7f62aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8a
bb15762aec55d8abb15762aec55d8abb15762aec55d4c55d8aba98abb15762aec55d8abb15762a
ec55d8abb15762aec55d8abb15762aec55ffd3f7f62aec55d8abb15762ac7ece7d6b539f5130dec36
d0daddc96b147f57321e31aa9ab31916a493e18aa2859ebfdf5584ffd1a7fd7ec5570b4d77bea90ff0
0d227fd7dc5546d2e354875c6d36f6e22b9b76b5fac2324461657127020fc6c0820e2a9c3b704672
090a09a0ebb62ac67cb9e7ef2f7995a08aca4960b8bad3edf58b786ed3d177b1bb6648e41b91f694
a95af21e1be2ac94cd1004975014856248d98d363efbe2ab45d5b17318990c80805390ad49206d5
f114c5545f54d36265592f20467952dd15a5404cd254a20a9fb4d4f857a9c55435bd72c341d22fb5a
be626cb4e8da6baf4e8ce15054802a37a76c553206a2be38abb15762aec55d8abb15762aec55d8
abb15762ac1eef5fd75efafada09d2d84371f57b5e51021800df11f50ab375afc238fc1b37f78f1aa82
83cc9e6192692392f554b559296e81631c64a025d949df89f88293c7a01cfd25559bcc7aef22d1dda
3468e15905bf393e1a3303c69d871dbe2f8becf3e28aaa71e52d5353d41efe1d4271722dcc5e94c2
21157986e4289c976e35d9d9b7df88e355593e2aec55d8abb15762aec55d8abb15762aec55d8ab
b15762aec55ffd4f7f62aec55d8abb15762a927973ed6b1ff006d29ff00e2298aa778abb1549cd7fc5
4bb6dfa3db7ff009ee3154da4059195480c41009e95231579d69bf94da7d97977cada3c8f0bdfe806
cc5d6a1e91692e12ca19a355532339401a63220ab2a376c55d17e5b6a06d74f8afaf6d2f254adb6b
a2482610ea768218add24957d7aadca2429470c57ed7c3bd42abe3fcb1687551aa457b1249f5abc
ba6a41463f5bd5adf52505b975410b475ff002f96dd0aa947947f2bdd746f2eea3788ba66bb626d5a
eadbd30430b4b9b992af43bc9c673c1ff60f886c55313f969aac9e59bad0a7d46d1ef6fade4d3aff00
5036d2b1b9b710a4304d346d310d3a08d7910c15b7e9b62af49504000ee40eb8ab78abb15762ae
c55d8abb15762aec55d8abb1579f3a5bbdf6a2ac444df5bb8791d4d3e23f0a9e91d0ec2ac7f957e3
609c91540c90d9c175288d8214057e3741c154f53b9ea13b943f0fecd19a2551118708519e31cd94
716242ee49a55a8361f0f4fe6dbe228aaa75e4d48d2e75311fc442db0693973e44abb1dc2d3a9e82
47f7a5775590eab33dbe977b3c6dc248ade57471d4154241fa31578c68de75f345c6985751bf65b9
7d2fca37d13dbb89d39ea37690dcb3cde9a71926fb260a71e1fbc46f8cf1559627e67cf24fa446fa63
5adaeb904862beb82560b1bb49648443784d3896650a29fb7c97f97154bf4ffccb7d2b54f38596bac
c0e8fa8a7a26721206b4952c6391e096bfdd5b3cccd3f35e4a1d5bece2a9949e74d466d6b45d12e5
eded2f8dedab5c1b697d486eed2ee2be28612c0725fdc46cd4af17f82bb72655e8b8abb15762aec5
5d8abb15762aec55d8abfffd5f7f62aec55d8abb15762a94bf96f4979a7b811cb1c972e669fd2b89e2
5690800b714702a401db156bfc35a5d29fe93ff0049775ff5571577f86b4aa529714ff98bbaff00aab8
aabd968ba7e9f70f756c8ff58741134924b2cc78025b88f519a82a6bb62a9862aec55d8abb15762a
ec55d8abb15762aec55d8abb15762aec55d8abb15762a836d274b63233595b9699cc93131255dd
b882cdb6e4f05dcff28f0c556fe85d18ec74fb6a0047f731f426a7b77a62ae6d1b4872ccf616ec5810c
4c286a183a9076ee2471fecdbf98e2a8986dadad8116f0a44080088d42ec2a40d876a9c55508041
04541d8838aa925a5ac6862482358c904a2a285256943403b5053155ef0c32218e48d5e3635646
504120d6a41f7df155ad6b6cfc8bc31b72e41aaa0d43801abb77028715696d2d54c4cb0461a05e1
0908a0a2f4a2edb0f962aad8abb15762aec55d8abb15762aec55d8abfffd6f6cc5e7ad0254b275798
2ea1ab5c797edab130adfda19d6453e0a0dbc9473b1a7be2a89d2bcdda26b3790e9f67338bdb8b3
1a94104b1b46cf69ea984b8a8a7c2f40c3a8e4bfcd8aa798abb15426a7a9d968f652ea3a849e8d9c
3c7d49285a9cd820d9413d48c5513cc732943502b5a6df7f4ae2a868b52b49b50b9d2e3726f6d23
8669e32a4523b82e23209143531b74f0c55175a62aa7ea8f54c3c5aa143f3a1e1b92295e95dba62
adcb2889431566a955a202c7e2205683b0aef8aba39639943c4eb221a80c8430a8343b8f0231541
5f6b7a669d71696b75385b8bdb85b28231563ebc91bcaaadc6bc6ab1b105b1547d715757154269
5aa596b5649a869f27ab6923491ab952bf1432344e28c01d9908c55198abb15762aec55425bcb58
2e20b59a648ee6e8b0b685980790c6bc9b803b9a0dcd31557c55d8abb15762aec55d8abb15762a
ec55d8abb15762aeaef4c55d8abb15762aec55d8abb15762aec55d8abb15762afffd7f5559fe586a3
6f2e9172d25bfd66c3cdfa979a276134e55ad750fae05455238fa805c27214e1f0b51b1565fe50f2bc
3a069d69f5a8a26d6e2b7faacf768cf29f484af28447900212ad5e20015c5592e2aec558ff009e344b
8f31f95b52d12d951a6bc4440b231442048acc0900d2a01c5587dce85e62d0acafe4b7899a237ad2
69d6d6d3b00236d5beb488dfbb609198c90e08e201f4ea07c58aacb3f216a515ee9da8da5b1b536
8ba2c509babaf5aea286c6e6edee94ba021b947380bfcea789e3c715445ff0095351d57cd9a933b4
ad2dbc1a34f69abc8cd17c704d78d3c7188c2a55e32b1c9c7aa3fc7d062a85d37c85e68d2ff00421
d3e68ad12c74ed222d463133b8babab3baf52ed1891bfa886a253bb300aff000e2aad6fe42d72cef3
51bc7916fae9ee7467b0ba92765916dacae966b88c6c7880838803fbde2bcf1557d07c99a8e9177a
0a2490c33591d461d5a151234571a75c5dc9750b2150aab2acbe99a1df8bcc3e2eb8aadf30f906f3
59f33c97cf656b71a5dc6a5a75fdc191e8ef15a58dd5b3abaf1f88ab48856a7a3374e3baa94587e5e
79aad34f9beb11c3757737e8bb7bb84de4a8d7363069896575089f8968ff7a3d652a3e368d4ecc6a
154c6f7cbbf983fa7a4d434e5b58b4fb56410db0bc96b790c37b6f381273462923c4b22337223901f
0f076c5595f90744bcf2ef95ed749bf861b7b98a6bc94c16ac5e244b9bb9a7450c556b45715dbed62

ac9715762aec55d8abe28ff009c93fcf38fc9bff394bf953a54775c34af2cb7abaf5080aa35f3f55939ff
00c63b702415fe7c55f6b8208a8dc1e8715762ab6491228de595824680b3b1d80551524e2a905af
9e3caf77773d9c7a9408f0dbc17a24924448e4b5b985a7496325b74e08cc5bb53154c935cd1a458
9e3d42d992647961613251e38a85d94d770b5dce2a86bff33691a7be991c93895b56bb5d3ecfd12
ae0ccc92befbf41e8b8247718aa25f5ad1e3b8b8b492fedd6ead13d5ba80ca82489281b93ad6aa28
6bbf6c55643af6992fd658ce91c36d2c5099e474589da78e392328d5a10c25403c5b154525f59cbc
bd2b889f86cfc5d5a877eb43fe4b7fc09c5546ef57d3aca1bc9a6b84ff408da6ba8d594c888a8d26eb
5a8aaab115f0c55534dbfb7d574eb4d52d2a6d6f618ee602c28de9cc81d6a3b1a1c55158ab139ad
75693cd56fa9faae8238a548ec030e0d6e244462ddb93722ff00ec557156598aa4b77e6bd06cae85
adcdec51b099ed66919d15219d2259f848588e24a3ab0f9e2a8bfd37a37fa4ff00b90b6a59b70bb3e
b252160789126ff0009076df155f73aa58dadb5cdd3cc8c96a9249305652c04418b0a57a8e0dff027
1550b7f306913d869ba83dd476f0ead1c72d8a5c3ac72482640eaaaa4eed46dc0ae2a8b6bfb2457
77b8895236e32333a80ad5028493b1f897fe0862ad47a8d84cc522b98a47553232ac8ac422b1466
a03d032953fe50a62ab25d574d82186e25bb8960b992282de5e6a56496721635520d0972471f1c5
57dddec1676935ec84bc302191f8518f102bb6f8aaa8b881a4f4448a65a13c030e5453c49a7b1dbe
78aa5f6dafe9975777d691cb4fd1eb0bcd3b151015b856652af5a1d94d7157fffd0f4a4ff00989e75b4
f2bea96375258a79f343d5ac52f4f0ac72e85a85f4421b98e2a8f89e094c55fb2b3c72ff002d315655
e5df3079bb55f30dc5b08e39f45b3d6355b1d42668c45e95adbc71b5afa6c0fc6fcdb836c6abc98f12
a392af40c55d8aa0756d5ad345b3fafdef3fab896180fa68d2373b999204f854134e4e2a7b75c552a
b7f3be857111915a647a4be9c2f132cb2bdbb4eb2471a7566536d2ec3af1f86b518aa57aafe60da5
b5cd83d91f534a9adb529efeecc32bb5bb69f6d1dc71280ab72a3fc51d396c57e165c5531d43cf7e5
fd29a58ef24944902977090bb542dc436c6941bfc73c7f41af6c55574df3ae83a9dcb5ac72bc12aa4f
237d650c2a3ea974d6532966daa92af1f7aa95ae2a96dc7e67f962d9bd3916f3d477315b22da4ac6
774be1a7308a83e2e33b2a9f6757fb1f162a8cb7f3be86c6e926b92b3dab5cb4d0189d248a2b3923
8a566525aa11a5505c6c7f67a62a9649f9a1a18b49b53861bd7b38adef2e6389ad5a392e56c6e23
b691a16919168af2528d4e75e4bf08dd5645a7f9974dd4f50bcd2ed7d5fae585c4969748f1b270922
8e296bbfecb2cc851ba3576c558b597e685b5ceb76d6d3595c5be8f79676d3c533c45a58ae2eb50
96c144c519955199138ff00adf17b2a9ce99e7ff2fead0d9cd69f593f5fdeda36b69448d19e7c65281
4b2a3346caacc07c5b7718aa0bcc9f987a7e9de5dd7352d18addeafa3c33c8d612aba9125afa5cd5
c6c453d64afcfd8e2acd715762aec55e21e7bff009c57fc9afcc0f39ff8c3ccbe5c7bed5f50919f56ba1
7b771093840228aa893281c78ad38018abdb21892de18e088523895510124d154506e77c557e2a
a5710adc5bcb6ec4aaca8d1923a80c08fe38abcfa6fcaf9ae348bcd2e6d52366bbb1b6d3ccdf55e82
d6c27b1e457d4df97adcf8d76a15fdaa8553097c93a9adc6b53d96a76f11d4d164b1965b159e6b1b
c16d15abb44cd250c4e912d63e20ee7f794c5529d2bf2b2ff4cbfb3bb1ae2491457c350ba80da1a37
0babdb94484b4cde9ff00bdaeaec79f2e0a76df154d355f21dd5dea57fabd8ea10c17975a95a6a912
4f6bebc34b6b2fa8bc332fa885d5d198820a706e3d69baaba7f21c9fa7ed757b3b9b54b04536d75a
44d6625b47b331daa858d048a23747b5568da8caaa78f0f84362a834fcb6bf9e6d467d4f5c32dd5e
1b67b5bdb480d9dcdacf64f72d14a8c92952d4b808ebc3d37556564a48d8aa225f20df3429e96a50
25f432dca4775f54ab4b657314d1ac771494191e2f589470517fc8f8db15657a269c747d1b4ed24c
beb9b0b582d4cfc7873f42354e5c6a695a5695c551f8aa1dad55af63bde479244f0f0ec43b2b57e8e
38aa2315619ac790cead1ebb0fd7c4
In Figure 14.1 (a), the low-priority thread (LP) is released, executes for a while and acquires the lock.
When the medium-priority thread (MP) is released, it preempts LP and executes until the high-priority
thread (HP) is released. When HP attempts to access the lock, it is blocked; MP runs to completion
followed by LP running until it releases the lock. At this point, HP preempts and runs to completion.
Finally, LP runs to completion. Figure 14.1(b) shows the same scenario, only this time with priority
inheritance. Here, MP still preempts LP and, in turn, is preempted by HP. However, when HP
attempts to get the lock, LP inherits HP's priority. Consequently, LP runs in preference to MP until it
releases the lock, at which point LP's priority reverts back to its original priority, allowing HP to
preempt it. Now HP runs to completion, followed by MP, followed by LP. Figure 14.1(c) shows the
same scenario, only this time with priority ceiling emulation. Here, as soon as LP gets the lock, its
priority is raised to one higher than HP and consequently, neither MP nor HP can preempt it until it
releases the lock. At this point, its priority returns back to LP's original priority and MP preempts
(which is later preempted by HP).
The advantage of priority ceiling emulation is that it is much easier to implement than priority
inheritance. The disadvantage is that the programmer is required to have details of all the schedulable
objects that can call the monitor. Also, the priority changes occur irrespective of whether there is any
priority inversion happening.

14.2 The RTSJ and Priority Inheritance


849

Priority inversion can occur whenever a schedulable object is blocked waiting for a resource. In order
to limit the length of time of that blocking, the RTSJ requires the following:
All queues maintained by the real-time virtual machine must be priority ordered. So, for
example, the queue of schedulable objects waiting for an object lock (as a result of a
synchronized method call or the execution of a synchronized statement) must be priority
ordered. Where there is more than one schedulable object in the queue at the same priority,
the order between them is not defined (although it is usual for this to be first-in-first-out
(FIFO)). Similarly, the queues resulting from calls to the wait methods in the Object class
should be priority ordered.
Facilities for the programmer to specify the use of different-priority inversion control
algorithms. By default, the RTSJ requires priority inheritance to occur whenever a
schedulable object is blocked waiting for a resource (for example, an object lock).
Monitor control
The programmer can change the default priority inversion control algorithm for individual objects (or
for all objects) via the MonitorControl class hierarchy. At the root of this hierarchy is the following
abstract
class:
package
javax.realtime;
public
abstract
class
MonitorControl
{
//
constructors
protected
MonitorControl();
//
methods
public
static
MonitorControl
getMonitorControl
();
public
static
MonitorControl
getMonitorControl
(
Object monitor);
// Throws IllegalArgumentException if monitor is null.
public
static
MonitorControl
setMonitorControl
(
MonitorControl
policy);
public
static
MonitorControl
setMonitorControl
(
Object
monitor,
MonitorControl
policy);
// Throws IllegalArgumentException if monitor is null.
}
The four static methods allow the getting/setting of the default policy and the getting/setting for an
individual object (the methods return the old policy). The two RTSJ-defined policies are represented
by subclasses. The default policy can be specified by passing an instance of the
PriorityInheritance
class:
package
javax.realtime;
public
class
PriorityInheritance
extends
MonitorControl
{
//
methods
public
static
PriorityInheritance
instance();
//
The
instance
is
in
immortal
memory.
}
or

an

instance

of
the
package
class

PriorityCeilingEmulation
class:
javax.realtime;
public
PriorityCeilingEmulation
extends MonitorControl {
//
methods
public
int
getCeiling
();
//
Returns
the
current
priority.
// Added at version 1.0.1 replacing getDefaultCeiling
public
int
getDefaultCeiling();
//
Returns
the
current
priority.
//
Deprecated
at
1.0.1
because
of
poor
name.
public
static
int
getMaxCeiling();
//
Added
at
version
1.0.1
public
static
PriorityCeilingEmulation
instance
(
int ceiling);
//
Added
at
version
1.0.1.
//
Throws
IllegalArgumentException
if
ceiling
is
//
outside
the
permitted
range.

Warning The PriorityCeilingEmulation class has changed considerably since version 1.0.
This is partly to make it more efficient but also because the interface was poor. In version
1.0.1, the instance method should be used to obtain an immutable object at the
required ceiling priority. The returned object is held in immortal memory.
Changing the monitor control policy does not take place until the object is unlocked.
Warning and Changing the default priority inheritance algorithm takes effect immediately after
version 1.0
the call to setMonitor is made. The initial default is priority inheritance. In version
note
1.0. of the RTSJ, it was not possible to change the initial default. Consequently, all
monitors created before the main method was called had a priority inheritance
control policy. Version 1.0.1 of the RTSJ encourages implementers to provide a
mechanism by which the initial default value can be set. The programmer can
retrieve this value via the getInitialMonitorControl method in the
RealtimeSystem class (see Section 14.2.2).
Important The code used inside a synchronized method (or statement) should be kept as short
note
as possible, as the time taken to execute this code will dictate the time a low-priority
schedulable object can block a high-priority one. It is only possible to limit the
blocking if the code does not contain
unbounded loops,
arbitrary-length blocking operations that hold the lock, for example, an
arbitrary-length sleep request.
Fine detail If the code within the synchronized methods of a monitor contains no operations that
note
suspend the calling schedulable object while holding the lock (for example, executing
the sleep method), then it is possible for the real-time virtual machine (on a singleprocessor system) to optimize the implementation of the synchronized methods so
that they do not require a lock. This is achieved by simply using the priority
mechanism. If a schedulable object is
executing within a synchronized method in a monitor at the ceiling priority,
and
preemptive priority-based scheduling is used with FIFO scheduling within
priorities, and
preempted schedulable objects are placed at the front of the run queue for
their priority level, and
the method does not suspend itself holding the monitor lock, then
on a single-processor system, no other schedulable object can issue a call to a
synchronized method in the same monitor.

However, it is doubtful whether many implementation of the RTSJ will support this "no-lock"
optimization.

14.2.1 Active and base priorities


In the presence of priority inheritance algorithms, each schedulable object has two associated
priorities. The first is its base priority. This is the priority that the object is allocated as a result of its
scheduling parameters. The second priority is its active priority. This is the priority at which the
schedulable object is currently executing. It may be different from its base priority because of priority
inheritance.
Important note With priority-based scheduling, execution eligibility is based on active priority
rather than base priority. Hence, the scheduler always chooses the schedulable
object with the highest active priority for execution. Similarly, all queues are
ordered according to active priority. However, it should be noted that a
schedulable object that inherits a priority while inside a monitor will lose that
priority when it calls the Object.wait method (because it has given up the
monitor lock). Hence, it will be queued at the priority it had before it called the
monitor.
Ceiling violations
Whenever a schedulable object calls a synchronized method (statement) in an object that has the

851

PriorityCeilingEmulation policy in force, the real-time virtual machine will check the active
priority of the caller. If the priority is greater than the ceiling priority, the unchecked
CeilingViolationException is thrown.
Dynamic priorities
Both the base priority of a schedulable object and the ceiling priority of a monitor can be changed
dynamically. In the later case, this is achieved by calling the setMonitorControl method with a
new PriorityCeilingEmulation object for the monitor. The change does not take place until the
monitor becomes unlocked.
Warning
The semantics of priority changes can be quite complex. For example, consider
what happens when the base priority or active priority of a schedulable object,
so1, changes (as a result of the actions of another schedulable object, so2)
while so1 is active inside a monitor with a priority ceiling emulation policy. The
problem is that so1 may now violate a ceiling constraint but it cannot throw an
exception. Given that so1 already has the lock, then in the absence of any "nolock" optimization, it is safe to allow so1 to complete the synchronized call.

14.2.2 Tuning monitor locks


As well as allowing priority inversion to be avoided when using monitor locks, the RTSJ also
allows the programmer to determine the initial default priority inversion avoidance algorithm,
and
gives the programmer the ability to get and set the number of concurrent locks that are/will
be in use at any one time. The goal is to provide extra information to the real-time virtual
machine so that it can make the mapping of objects to locks as efficient as possible.
The

following

mechanisms

are
available
package
final
class

in

the

RealtimeSystems
class.
javax.realtime;
public
RealtimeSystem
{
...
public
static
int
getConcurrentLocksUsed
();
public
static
int
getMaximumConcurrentLocks();
public
static
void
setConcurrentLocksUsed(
int numLocks);
public
static
void
setMaximumConcurrentLocks(
int numLocks);
//
The
following
method
was
added
at
version
1.0.1
public
static
MonitorControl
getInitialMonitorControl();
...

14.2.3 Communication between heap-using and no-heap-using


schedulable objects
One of the main driving forces behind the RTSJ is to make real-time Java applications more
predictable. Hence, schedulable objects that need complete predictability can be defined not to
reference the heap. This means that they can preempt any garbage collection that might be occurring
when the schedulable objects are released.
Most large real-time systems will consist of a mixture of heap-using and no-heap schedulable objects.
There will inevitably be occasions when they need to exchange information. To ensure that no-heap
schedulable objects are not indirectly delayed by garbage collection requires
all no-heap schedulable object should have priorities greater than heap-using schedulable
objects,
priority ceiling emulation should be used for all shared synchronized objects,
all shared synchronized objects should have their memory requirements preallocated (or
dynamically allocated from scoped or immortal memory areas), and
objects passed in any communication should be primitive types passed by value (int, long,
boolean, etc.) or be from scoped or immortal memory.
If these conditions are fulfilled, then there will be no unwanted interference from the garbage collector
at inopportune moments. Note that if priority inheritance is used and shared objects are preallocated

on the heap, it is possible that


a Java thread, T1, enters into the monitor first (the schedulable object is currently not
released),
it is then preempted by a higher-priority Java thread, T2, whose operations cause garbage
collection to occur,
at this point, the schedulable object is released, preempts the garbage collector but cannot
access the monitor
priority inheritance occurs, but it is not safe for the Java thread, T1, to execute as memory
compaction may be taking place.
With priority ceiling emulation, the above scenario cannot occur, as T1 will inherit a priority higher than
all Java threads the moment it enters into the monitor. Hence, it cannot be preempted by T2.

14.3 Wait-Free Queues


The alternative to blocking communication based on synchronized objects is to use non-blocking
(wait-free) communication. The RTSJ provides three classes that facilitate this form of
communication. All are based on a queue.
WaitFreeWriteQueue this class is intended for situations where a no-heap real-time
thread wishes to send data to one or more heap-using threads. However, it can be used by
any thread. Essentially, the writer thread is never blocked when writing even when the queue
is full (the write fails). Readers can be blocked when the queue is empty. The class assumes
that multiple writers provide their own synchronization. If the queue is only accessed by a
single reader and a single writer, that information can be provided by one of the constructors.
This
allows
an
implementation
to
optimize
the
access
protocol.
package
javax.realtime;
public
class
WaitFreeWriteQueue
{
//
constructors
//
The
constructors
throw
IllegalArgumentException
if
//
maximum
is
less
than
or
equal
to
zero
and
//
MemoryScopeException
if
the
MemoryArea
parameter
//
results
in
a
scoped
memory
assignment
conflict.
public
WaitFreeWriteQueue(Thread
writer
Thread reader, int maximum, MemoryArea memory);
// Where memory defines the memory area to hold the
//
actual
queue.
// The following have been added at version 1.0.1
public
WaitFreeWriteQueue(int
maximum);
public
WaitFreeWriteQueue(int
maximum,
MemoryArea memory);
//
methods
public
void
clear();
//
Empty
the
queue.
public
boolean
force(Object
object);
// Overwrite the last item in the queue.
// Returns true, if last item over-written,
//
false
otherwise.
// Throws IllegalArgumentException if object is null
// and MemoryScopeException if a memory access error
//
occurs.
public
boolean
isEmpty();
public
boolean
isFull();
public
Object
read()
throws
InterruptedException;
public
int
size();
//
The
current
size.
public
boolean
write(Object
object);
// Throws IllegalArgumentException if object is null
// and MemoryScopeException if a memory access error
//
occurs
// Return true if write successful, false otherwise.
}
WaitFreeReadQueuethis class is intended for situations where a no-heap real-time
thread wishes to receive data from one or more heap-using threads. However, it can be used

853

by any thread. Essentially, the reader thread is never blocked when reading even when the
queue is empty (the read fails). Writers can be blocked when the queue is full. The class
assumes
that
multiple
readers
provide
their
own
synchronization.
package
javax.realtime;
public
class
WaitFreeReadQueue
{
//
constructors
//
The
constructors
throw
IllegalArgumentException
if
//
maximum
is
less
than
or
equal
to
zero
and
//
MemoryScopeException
if
the
MemoryArea
parameter
//
results
in
a
scoped
memory
assignment
conflict.
public
WaitFreeReadQueue(Thread
writer
Thread reader,
int maximum,
MemoryArea
memory);
public
WaitFreeReadQueue(Thread
writer
Thread reader,
int maximum,
MemoryArea memory, boolean notify);
// If notify is true, support the waitForData method
//
The
following
have
been
added
at
version
1.0.1
public
WaitFreeReadQueue(int
maximum);
public
WaitFreeReadQueue(int
maximum,
MemoryArea memory, boolean notify);
//
methods
public
void
clear();
public
boolean
isEmpty();
public
boolean
isFull();
public
Object
read();
//
Returns
null,
if
the
queue
is
empty.
public
int
size();
public
void
waitForData()
throws InterruptedException;
//
Suspends
the
caller
if
the
queue
is
empty.
//
Requires
constructor
with
notify
boolean.
//
Note,
the
writer
is
not
suspended
on
the
//
waitFreeReadQueue
object,
so
no
priority
//
inheritance
occurs.
public
void
write(Object
object)
throws InterruptedException;
// Throws
IllegalArgumentException if
object is
null
// and MemoryScopeException if a memory access error
//
occurs.
}
WaitFreeDequeuethis class is intended for situations where a wait-free read and waitfree write queue is needed. The class simply combines the two. It has been deprecated in
version 1.0.1 because the semantics were not well defined and there was confusion between
the
two
queues.
package
javax.realtime;
public
class
WaitFreeDequeue
{
//
constructors
//
The
constructor
throws
IllegalArgumentException
if
//
maximum
is
less
than
or
equal
to
zero
and
//
MemoryScopeException
if
the
MemoryArea
parameter
//
results
in
a
scoped
memory
assignment
conflict.
public
WaitFreeDequeue(Thread
writer
Thread reader, int maximum,
MemoryArea
memory);
//
methods
public
Object
blockingRead();
//
Read
from
wait-free
write
queue.
public
void
blockingWrite(Object
object);
// Throws IllegalArgumentException if object is null
// and MemoryScopeException if a memory access error
//
occurs.
//
Write
to
the
wait-free
read
queue.
public
boolean
force
(Object
object);
// Throws IllegalArgumentException if object is null
// and MemoryScopeException if a memory access error

//

//

//
occurs.
write on the wait free write queue.
public
Object
nonBlockingRead();
Read
on
the
wait-free
read
queue.
public
boolean
nonBlockingWrite(
Object object);
Write
on
the
wait-free
write
queue.

Forced

//

If a wait-free queue is being used to communicate between a no-heap schedulable object and a
conventional Java thread, then
1. the queue must be in immortal memory as
a Java thread cannot enter scoped memory
immortal memory cannot point to scoped memory
a no-heap thread cannot access the heap
2. any objects passed must be in immortal memory, otherwise an exception will be thrown if
a writer Java thread passes a heap object the reader no-heap schedulable object
will attempt to access the heap
a writer no-heap schedulable object passes a scoped memory object the reader
Java thread will try to store a reference to a scoped memory object on the heap.
Under these circumstances, garbage collection will have no impact on the queue itself and the noheap schedulable object never blocks waiting for the thread so it cannot be forced to wait for garbage
collection.
If a wait-free queue is being used to communicate between a heap-using schedulable object and a
no-heap using schedulable object, then
1. the queue can be in immortal or scoped memory
2. any objects passed must be in immortal and scoped memory
Under these circumstances, garbage collection will have no impact on the queue itself and the noheap schedulable object never blocks waiting for the heap-using schedulable object so it cannot be
forced to wait for garbage collection. Of course, exceptions can still be thrown if memory violations
occur.

14.4 Summary
Limiting the impact of priority inversion is fundamental to any priority-based real-time system. There
are two approaches to the problem. The first is to use a priority inheritance algorithm (the RTSJ
supports both simple priority inheritance and priority ceiling emulation); the second is to use
nonblocking communication mechanisms (the RTSJ provides wait-free read and write queues to
facilitate communication between heap-using and no-heap threads).

855

Chapter 15: Physical and Raw Memory


Overview
Introduction and chapter structure
Today's computers may have many different types of directly addressable memory available to them.
Each type has its own characteristics (Barr, 2001) that determine whether it is
volatile whether it maintains its state when the power is turned off,
writable whether it can be written at all, written once or written many times and whether
writing is under program control,
erasable at the byte level if the memory can be overwritten whether this is done at the byte
level or whether whole sectors of the memory need to be erased,
fast to access both for reading and writing,
expensive in terms of cost per byte or power consumption.
Examples include dynamic and static random access memory (DRAM and SRAM). read-only memory
(ROM and EPROM) and hybrid memory such as EEPROM (electrically erasable and programmable
ROM) or FLASH memory. Memory may also be added and removed from the system dynamically.
Furthermore, on-chip and off-chip caching may occur.
Individual computers are often targeted at a particular application domain, this domain will often
dictate the cost and performance requirements, and therefore, the memory type used. For example,
embedded computers targeted at, say, mass-produced consumer products will need to be cheap and,
as a consequence, will only have a limited amount of fast (expensive) memory. In order to obtain
maximum performance from the given computer, the programmer must make judicious use of the
available memory. Placing a heavily used object in a slow memory area may seriously degrade the
program's overall effectiveness, particularly if the system has a limited cache size or the cache has
been turned off to ensure predictability.
As well as having different types of memory, many computers map input and output devices so that
their registers can be accessed through memory location. Hence, some parts of the processor's
address space will map to real memory and other parts will access devices. The situation may be
further complicated because a Direct Memory Access (DMA) controller may access the real memory
independently of the processor (although doing so may steal bus cycles from the processor).
For multiprocessor systems, the above complexities are compounded by the possibility of shared
memory or dual ported memory. Figure 15.1 illustrates a multiprocessor system with shared memory
and various classes of local memory and I/O devices.
0100090000031e8e01000000c1b0000000001610000026060f002220574d464301000000000001
00eceb000000000e00000000200000e8970100e8b70100010000006c0000000000000000000000
d20100005201000000000000000000006a400000ad2e000020454d4600000100e8b701000c0000
00010000000000000000000000000000000005000020030000c40100001a010000000000000000
000000000000e3e306006e4e0400460000002c00000020000000454d462b014001001c00000010
0000000210c0db01000000600000006000000046000000cc540000c0540000454d462b22400400
0c000000000000001e4009000c00000000000000244001000c0000000000000030400200100000
00040000000000803f214007000c0000000000000008400005185400000c5400000210c0db0100
00000000000000000000000000000000000001000000ffd8ffe000104a464946000102010048004
80000ffed0c4450686f746f73686f7020332e30003842494d03ed000000000010004800000001000
100480000000100013842494d040d000000000004000000783842494d03f300000000000800000
000000000003842494d040a00000000000100003842494d271000000000000a00010000000000
0000013842494d03f5000000000048002f66660001006c66660006000000000001002f666600010
0a1999a0006000000000001003200000001005a00000006000000000001003500000001002d00
0000060000000000013842494d03f80000000000700000ffffffffffffffffffffffffffffffffffffffffffff03e8000000
00ffffffffffffffffffffffffffffffffffffffffffff03e800000000ffffffffffffffffffffffffffffffffffffffffffff03e800000000ffffffffffffffff
ffffffffffffffffffffffffffff03e800003842494d04080000000000100000000100000240000002400000000
03842494d0414000000000004000000023842494d040c000000000ab3000000010000007000000
0510000015000006a5000000a9700180001ffd8ffe000104a46494600010201004800480000ffee0
00e41646f626500648000000001ffdb0084000c08080809080c09090c110b0a0b11150f0c0c0f151
8131315131318110c0c0c0c0c0c110c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c
0c0c010d0b0b0d0e0d100e0e10140e0e0e14140e0e0e0e14110c0c0c0c0c11110c0c0c0c0c0c110

c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0cffc00011080051007003012200
021101031101ffdd00040007ffc4013f000001050101010101010000000000000003000102040506
0708090a0b0100010501010101010100000000000000010002030405060708090a0b100001040
1030204020507060805030c33010002110304211231054151611322718132061491a1b14223241
552c16233347282d14307259253f0e1f163733516a2b283264493546445c2a3743617d255e265f2
b384c3d375e3f3462794a485b495c4d4e4f4a5b5c5d5e5f55666768696a6b6c6d6e6f63747576777
8797a7b7c7d7e7f711000202010204040304050607070605350100021103213112044151617122
130532819114a1b14223c152d1f0332462e1728292435315637334f1250616a2b283072635c2d24
49354a317644555367465e2f2b384c3d375e3f34694a485b495c4d4e4f4a5b5c5d5e5f5566676869
6a6b6c6d6e6f62737475767778797a7b7c7ffda000c03010002110311003f00f5549019994d95b6d
af7b98f68735c18e32d237348f6a73975005ce0f0d6824935bc081afeea4a4c92604112382aa6675
5c0c1b1b5e4d858f7b4b800c7bf41a6be931fb525371259ff00b7fa4edddeb92d2d2e90c79d1a373b
867ee94d6fd60e934dcfc7b2e736dafe933d3b2786bbfd1fbbf9c624a7452598cfac5d2ada8dd4d8fb
58d01c4b6bb3e8935fb9bb98ddfb3ed156ed9ef57313371b36af5b15fea57a43a08e435e3e986fe63
da929caeaccb5d6663b128a323398cc614b72034b402fb3d4d6c2cf6b6bf59ff4954b9b9eeb5de974
cc36d444d7bdb497096b76efdb7ff3d55d55bfa36fe87d0ccc7fd67d5c5beabba5756c76ae6877c44
a0534d26dbe6b6fd31f9a3f72b494b60b31eb764331dac6562c1edac00d935d7fb8ad266b5ac10d0
1a3c0084e9294924924a7ffd0eeaea19f6061c93763b31b15d55aeda218035a5f90c3bbdb653e8fd
34afc20ec2b7198dbdccb35af702e7001cfb8305beab5dbb7bf6b6cdffcd2d5cc635f89735e25a58e9
1e30382895b1b5d6dad836b18035a3c0010024a60caa58dde5c1d0370dc798f229fd16493ee93a1
3b8cfde88924a6be457e9d16bdae787358e20ee260c1f12882a6903dceff0039dfdeb2f2ba8d557a1
8d7bb21efcca5ef1e936b23daddceaa607e96eddb31ebff000bff006e21e1f59c7cdca3878f7e56f151
bdb63d9535a581b43bf3abddb9cecbf4f67a7bd96e364fabe9fb3d54a75fecec999748efb9d3f953fa
2dfde7ff009eefef4d8b63adc6aac76ae7b1ae3db520145494d5bdf898c1a6fb8d61c61bbac709206
ed3dc8033ba434b88ca00bccbbf48ed4c06fef7eeb51b29c6bc9c7b087160160716b5ce89036eed8
d77eeac8c7abacb29ae9bfa917e435ac77ac2978ddb3f9c071dd59dd5d969afd67fabeafa7fa2adf47
adfa24a7571f23a7e4d86bc7c9f51e06e2d6d849898ddb7729d96e256f2c758fdcde402f3123bed94
0c1f58598b5daf7dd6558ef6dd7b98e6873e68f71dccad9bacdaf77b5367d795632fab1ae762daeb6
b7b6e0c73fd8d15fa8d10d2dfd26c75492937af8674f52cfbec5629baab584d4edc1a76bb99047e6b
b77bb72c734f56b6fdd5f52218cbf75950aa7dbbf1f21f89bc319b7d36556d55ddfe131f32cf519ea7a
3757a789b8d992e2086bad961702247a75091bbf941253fffd1f42cfc9f5305f5dae6637da29739b61
792e6023db76df4ff00c1d8faff003be9a2519adfb334d2eaad631ad0c77aa4eed4d2cf7fa5ee7596d
7e9a93f05b6b1acbe9aec02b34b897386eadd02c63dbb7dcc7edfa0e52fb20daf8a98d75843c9dce
237871b58efa3fe94fabfd7494d8aac1656cb0681ed0e00f9895291e285562d55d4c61635c58d0d9
da3b0852345079ada7fb2125237546aa48aed700c69da3da62069f49aa89caea8496b316dbaaf68
168b296ee076b6c7b58f6b7dad6b9ef5a231b18715307f6421e463e3c326a67d36fe68f1f824a6a33
33a9d4caaa674b76d018d3fa7ae183f44d3bbddbdde931f67fec3ff00c56f93ba87561ba3a638ed30
dfd3d4370fde1aff00d52b9f64c5ff00435ff9a3fb93fd9317fd0d7fe68fee494d03d43ac1acb9bd362c6
b9b34bae64bab25ed739968fd0fa8ddac7fa7bffedb46a6eb6dcaa5d7d471dfe95d35b9cd7681f46d
76eacb9bee563ec98bfe86bff347f725f64c4ff435ff009adfee49496478a523c554cdc5c56e15e7d1a
c454fd768fdd3e48c3171481fa1af8fdd1fdc929161387ab97a8d2f23ff0003a95b41fb2627fa1aff00c
d1fdc8a00680d68803400710929ffd2f5549249252924c48682e71803524f8210cbc53c5acff387749
4c33ecb2bc52ea9db1e5cc68740301cf656efa5edfa2e58cfebd8a05feb5b96dfb35efa4fe8eb20bab
2f0d7b5cca766cb1f56cfd27f6d6c5d7f4fbd9e8d97321e41680f0092d2d7cb60fe63b6215d93435f4e
dcb80fb36bbdcde3658efddfdf6a4a6be2753a32dcefb265dd6ba97d62d6beb6b5beeb3d173777a1
5feed9fcdbd6baa5bf0600390dda1c1db439a0483be7d9b7f3d1bedb87fe9ebff3824a4eabe70ace3
3bd6687540b5d6348dc0b5ae6b9decd777b42719b86662facc1830e1a1f051b3270ac66d37b06a0
821c01969dcdff00a9494f3f9991d3720b1d8d7d580d7d3ed6ed05dfa568b29b7d1a85b53fd463d9b
3d4fd257ff5c4b133b031f26b195998f7d2e3631ccf4621f63cbf19dea39bbab6b1bbf068c7f7fb3d1fd
2d8f5b56db88ca5fe9e4b410d25a07a7cea47b767ef299b30c03bb25b1c9935c471fba929874f38ce
cabacc500516d34bd9b46d041377bf6fb7e935aafaa0ebb1a96dd763dacb725d580d0fb03438b03b
d1af4f656ddeff00dc558f51eacc7560578974cb2c02fd8778d196b3736cf65bfe87e9d5fe92cfe6d25
3ffd3f5549249252936e6f8841cc6b5f535ae01cd365720891f4dab0b34598dd4f231cbdfe95cdaecc
7db84db2ba416bd9e936e0efd26eb715f63eb7d7f4f2b1ffc1fa8929d8b88fda58ba8fe6eeefe74ab60
83c2e5e9b1f6bab632f2c75c76ef1d3b66c3eca5db9d6ee632bb6eb2afdff659ff00076db4ee62e37d
9edadafd8eb4d6fdf63182bddee66df6367e8ca4a6ea6240e4a759993e80fb73f655665375a5b66c2
4b854cf4d9fa4757f49ff00cb624a6d6296fa993a8fe77fef95ab0b23061d6d9f6ca71595ea59b457dc
9dadf6becdee6d5b7ed1bfd2fd3ff33eb55ef56ba6fa42ccd14edf4c6469b236ff003546efa3fca494de
41cb70fb2dda8fe6ddf90a29e160b9e2be97827071b1b26d7b18db9b66c10d34bf6d8e739ecf6fda7
d0f5bf9e7fa3ea7e86c494ee87081aa92c6c6731f859073a8c7a6c6870af6ec04b3635dbdcc0eb7d3
d973adabf9db3d95fadfe116b5266a61f168fc8929ffd4f55497caa924a7ea1cff00e8e3fe32affcf8c55
a9fe67fd7c97cce924a7e94cafa547fc7b3fea2e53c0fe9c7fe2dff00f56d5f3424929faa953ccfe747f5
47e52be6149253f4bf757b17f986fcff00295f2d24929faa9663fe9bbfac7f2af9a12494fd2fdbfd7c569

857

af9552494ff00ffd9003842494d04060000000000070005000000010100ffee000e41646f62650064
4000000001ffdb008400040303030303040303040604030406070504040507080606070606080a
0809090909080a0a0c0c0c0c0c0a0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0104050508
07080f0a0a0f140e0e0e14140e0e0e0e14110c0c0c0c0c11110c0c0c0c0c0c110c0c0c0c0c0c0c0c
0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0cffc000110800fe015e03011100021101031101ffdd
0004002cffc401a20000000701010101010000000000000000040503020601000708090a0b01000
20203010101010100000000000000010002030405060708090a0b100002010303020402060703
0402060273010203110400052112314151061361227181143291a10715b14223c152d1e1331662
f0247282f12543345392a2b26373c235442793a3b33617546474c3d2e2082683090a18198494454
6a4b456d355281af2e3f3c4d4e4f465758595a5b5c5d5e5f566768696a6b6c6d6e6f637475767778
797a7b7c7d7e7f738485868788898a8b8c8d8e8f82939495969798999a9b9c9d9e9f92a3a4a5a6a
7a8a9aaabacadaeafa110002020102030505040506040803036d01000211030421123141055113
61220671819132a1b1f014c1d1e1234215526272f1332434438216925325a263b2c20773d235e24
48317549308090a18192636451a2764745537f2a3b3c32829d3e3f38494a4b4c4d4e4f465758595
a5b5c5d5e5f5465666768696a6b6c6d6e6f6475767778797a7b7c7d7e7f738485868788898a8b8c
8d8e8f839495969798999a9b9c9d9e9f92a3a4a5a6a7a8a9aaabacadaeafaffda000c03010002110
311003f00f7f62aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55
d8abb15762aec55d8abb15762aec55e4bf97bf975e45d6bcaffa4f55f2fd95e6a37d7fa94b79753c4a
f2cd226a172aacec77240d857156510fe53fe5adbf2f43cafa747c94a371814555ba8dbc7155dff2aa
bf2e38aaff008634f0a9f64085760493b7de7155abf94bf9688fea2f95b4e121ad5840b5dfaeff004e2
aa5ff002a7bf2b89aff0084b4caf8fd5d715551f94df9640f21e53d2c37f30b58c1fbe98aa1bf2beced7
4db6f33697a7c4b6fa758ebf7b0da5b2578451f085f8a824d05589a7be2acef15762aec55d8abb157
62aec55d8abb15762aec55ffd0f7f62aec55d8abb15762aec55d8abb15762aec55d8abb15762aec5
5d8abb15762aec55d8abb15762aec55d8abb15762aec5585fe54ff00ca136bff00319aa7fdd4ae715
781fe7ddc43a47e6eeabab49e54ff0014da5bf901ee6f2dd65310b52354f4bebe55033b7a286aed0a
9996256e18abd0de7bdd3ff24bca7e4f97cc975e67d63ccd676da3bf9a347325cdddc5acd097bbbd
b7750ee4a5b8731ca77e7e9b37c58ab086bf97f30ffe71c356f21f98eeee2d7cdde5ad4ac3ca5abdd
38783508a48f52b6b7b6bee2fc5d5e7b69239c57ed1765f1c558af9d3ce9e63f3e7e4e3f95f54bab9
b3f30fe5edf5869df985e83b422ef51b7d56db4eb78d986ed0dd46d25e1e27f66318abecc4458d163
40151405551b0006c00c55867e5e2f19bce27f9bcc77a7fe48db8c559ae2aec55d8abb15762aec55
d8abb15762aec55d8abffd1f7f62aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8
abb15762aec55d8abb15762aec55d8abb15762aec5584fe531af922db7aff00a76adff754bac55329
3c85e5497ce23cfd25872f368b33a67e90334e6b62c79180c5ea7a450b7c54e1f6be2fb58aa03cb7f
951e40f285c69d73e5ad1c69cda42ddc7a5c514f7260b74d45c4972b1c2d298d564650c578d011f0
d31552d47f283f2f356bed7353bfd21a5bef324b6771ae4c2eeee33732e96caf68cc126500c2517d3
e2178d315477983f2dfc93e69d3753d235cd222b9b0d6ae60bdd5a2479203757368b1ac324af0ba
331410c7c6a7f617c3156511a2c51ac6b5e28028e44b1a014dc9a93f338ab08fcb724dcf9d813d3c
cd7a07fd23db1c559ce2aec55d8abb15762aec55d8abb15762aec55d8abffd2f7f62aec55d8abb157
62aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb15762a
ec558c3fe5d7916496499b40b2f52691e694ac4143492b1776205055989627b938aadff956fe44ad
7f405a57da3a7f1c55637e5979058156f2fda153b91c0ff5c558a7e5bfe5df92753f217976faff0045b7
b9bb9aca29259e5e4f23b30dd998b1249c5594ff00caaefcbe06bfe1fb5f1fb2dfd7156ffe558f9007fd
282d7fe04ff5c553dd1b42d1bcbd686c343b186c2cda4699e1b7408ad2c9f69da9d58d3727154c31
5762aec55d8abb15762aec55d8abb15762aec55fffd3f7f62aec55d8abb15762aec55d8abb15762a
ec55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb15762ac3bf
2a7ff0025bf963fed9f08fb97156638abb15762aec55d8abb15762aec55d8abb15762aec55d8abb15
7fffd4f60f96fcd7e79f34f97f4bf3269da0e971596ab6e9770c371a9ce2544947250dc2c5856877a1c
55366bcfcc21f6347d1ceddf53b91bffd201c554ae350fcc84f4feaba068f2d50197d4d5ee63e2fdc0a
69cd51efb7cb15506d53f3500f87cb3a193ff6dcb91ff76bc5570d4ff3478d4f96b45e7dc0d6ee694f99
d3315465bea1e7c78eb75a0e9914dc94718f559a45e069c8d4d8a9a8ec29f4e2aade4df3249e6ad
15b549acfea17115edfe9d3db0944ea24d36f26b366570a955630f25f846c7154ff0015762aec5588
7e6179a356f2b69fa44ba2db5b5cdeeadac5868e3eb8ef1c51adfc9e9997f76a4b15343c76e5fcc31
5792c9ff390be6bb48b55bcbed034f167e5dd3adaef57f4ee66e52dc5d6af7ba2f28098e8b6e24b55
9cbbd4fa0cdfb5be2ac8acbf38f5ed47cd9aef9022d3f4eb6f33e8335c85babdb8920d3f508adc594a
ab6edc4b2c9c2f02ca3f79e8ba0fb6b27c2aa1ed3f3b3ccfa868b7fe67b0f2f4173a0a4852d45adc0b
ad421fabea13595d89aca263348d1245eb948d55e9ce3e2ce9f12ae97f3ea4864851ad6d0c5a8c5
a6b6877c8676d3af535492c20fae4577c02186092f1bd789c477088b1b71e32f25551ba57e6bf9af5
2f349f2d7e89b45fd1875a6d66e23fac4d24f1685756911fa8c11ab167952ec51598f1951a3f8b156f
cc1f9b3e67b6d66e6db43d2ad534db44f2dbc89abfd66d2f89f33ea33e9aaad170fdd985e359086dd
d2abf09f8b1540f967f3afccbe65b9b4d2ed748d3bf4b59dcc10ebf1c97ab6d1bdbcbaa5ee9724f67e
b10cde99b3f5781572fcfd11c5fe22aa4107fce41f9d228a2d4352d134a1a68b3d2b559d6de7b869b
eaba9eb5268af1a7350bea23aacc18fc3c7f77c6bfbcc5533d5ff3ebcc76ba3da6b1a6e85677116b3
6f733e971cd3cb19b67b2d6adb49963bce28c4122e95c150292472447b362acab43f3f79c64f3f49f
977afe9f64babc0d1dfc97364b38b77d0e4b335b94329d9febc0db043fb2a5f1579aa7e6df9dbc811
ea867b6b6d6b42bbf31ebf6f6573757370f796ab65ad47132cc5f9288445332c5c4d2265895be17f8

5567369f9d17afa8e9b05fd95b5be8f7baeea5e5f6d6d1a59ad16e2cf553a7db44e630c6192e54728
9e4fdcbcdfb8e4accb8abd8b15762aec55d8abb15762ac37f29ff00f25b7963dac22047b818ab32c5
5d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abffd5f657e518e3f963e535fe5d32d9
7ee403154279afcf5ab5af9ef41fcb5f2b5ac12798358b2bbd62f750bee6d6b63a658bc50b48638d9
5a5924966448d03a2fda667d82b2ac5fcfbf989f99bf97d05a4ba9d8e8b3da6a1e63d0f40b0d4d4ce
91bdb6b1234134d242652d1bc12713c7994743f6ebf6554ad7f3cfccd2eb09a15be9fa74e6dfce961
e4eb9d6a069a5d3aeadf50b26bd335a90c089a1e3e94d11675593f6fb62af528bcc1aab7e62dcf95
1e3b7fd0f1e8f0ea90cc03fd67d792e648191b7e1c004045072df15631e72f3afe60f94fccbe5e6fd17
a65d79435cd76d7cbc2d5249db570b780d2f0301e9708f83bbc3c49112f3f546ea1557fcb0d7346b0
f2f6a56f797f6f6f327987cc84c72c8a8c07e9bbd35a310715660be6df2b322baeb36451855584f1d0
83dc6f8aad7f3879523711beb564b230aaa9b88ea47b7c58ab8f9c7ca8215b83add97a0e2a927d6
23e24115d8d69d315631e781e48f3b69ba45adef98aca1b2b3d56c3565abc134770d632faab0912
1a51c8ea3e21fb38aa64cdf9636f25d5eb8d1a396ead134ebd9996dc7ab628484b79091f14439351
0fc3f11db7c550772ff0093b73158a5e7e809a1d066177a70985ab8b2b81b0962e40fa6ff00e50a1c
550e93fe48a4fa85d44de5c4b9d5ae23bcd5264168af73750d784b2b0dddd6a4866f8b738aa3a1b9
fca7ba8ee1207d0e682fe36b5b945fab3473445111a375e8ca5238d4a9fd944fe55c557c7aa7e566
9faadb4d15de8b6dad5a4125bda3abdba5cc76f7322b48a9b8609249c4bf667a57e2c5565edcfe54
6a3a93dd6a1268975ab5cb5bac934c6dde791ac25335b825aa498643ce3fe47f8968715433597e4
ce9b79a6dcb5af97edaff004d92e24d22631daa4b6f25e3979da06a550c8ec59f8fda6353be2a8292
cff21123104b6fe5a589218ecc46c96814416f706e238a94a7149eb22af4597e3fb58aa26eae3f24e
e96ed6f24f2f4a9a9c89757a24faa91712c5289564707ed1128e753feecf8fed62ab74af30f90ec35fd
57cc57be76b1d46fb512905a09a7b48d6ceca2abadb45e9712cbea33b977e4e79015a22e2a8897
51fc9cbbb5d4bd6b8d027b3d64c916aa18dabc7746703d459ab50fcf88e5cbed71df156b4f97f26ac
e382e34bff0f5b43a7b1fabc96cb691242ece1cf1e0005259437fac3975c553e8bcf3e4d9c3343afd8
48a80962b7319000ea4d1b1570f3cf931a0fac8d7ec0db8d8cbf598b875a75e54eb8aa9a7e617916
42047e64d3589d8017511ad3fd962ad9f3ff91c024f98b4e007526ea2ff009ab15737e60791924313f
98f4e5954f1643751020d2b4a72c55b93cfbe4988b2cbe61d3d0a10ac1ae6214245403f162ac43f2
bbcf1e51b6fcbff002fdbde6b7636d751da2abc12cf1c722d19945558823a7862acb4fe617914120f9
934da8d88fad455a9ff00658ab8fe60f9142863e64d342b578937708069b1fdac5569fcc5f208ebe66
d33c3fdec87af5fe6c55bff009587e432390f32e9943d0fd6e1effecb15578bcefe4e9a53045af583cc1
4398d6e622c15ba1a72ad0d7156bfc71e4da4c7f4fe9f4b7afaff00e9317c14ebcbe2db155b079efc9
572e23b7f30e9d2b90582a5d44c683a9d9b156bfc7de48ffa98b4effa4a8bfe6ac55aff009581e46e9f
e23d36be1f5b87fe6ac556bfe62790e3fef3ccda62f6f8aee11fadb155f6fe7df245ddc45696be62d36
6ba9dd638218eee1677773455550d5249e94c559162aec55d8abfffd6f667e53865fcb9f2ec6ff6e3b
511b53c63665fe18aa0fce3f97b7babf9bf40fcc2f2cea69a5f9b740b7bad3f8dcc26e2cafb4ebee0d2
5b4ea8f1bad248d248e446f8186e8e36c552df3ffe5c79a7f30f42d2f4ed5756d3e1b8b0d774ad7bd2
4b3924b609a4ccb39828d3727f55968ced4017fdd78aa75e7dfcbf4f36e8ba459e91749a2ea5e5ed
56cf5ed166484496cb7762ec424b0a98f94522bba385656f8f929a8c5517a0796f598bcc175e6cf32
dddbcdac5cd8c1a64769611bc76b0c104b24cc434acceeeed26e4f10155405fb4ccaa49acf94bf326
fbcec3cc3a7f98b47b7d12158e0b0b3b9d266babcb581a9f5968a6faec69eacd4a736848550abc7e
df35513f94f17a5a2ebb09dfd3f33798a95f07d5ae6403fe1b15679c57c062aee2be03157500ec315
7507862add062ad507862aee2be03eec55d41e031561d381ff2b5ec45055bcbd79bff00ab7d6bfd7
1566541e18abb157507862ad507862aee2be0315750780c55d41e18aba83c315750780c55dc57c
062aea0f018aba83c3157715f018aba82b5a6f8abb88f018abb8a9fd91f762ad704fe51f762aee09fc
a3eec55be2bd682bf2c55dc17f946fed8ab8220e8a07d18abb8af80fbb157705fe51f762ad7043fb23
eec55c2341b85008e9b0c55762aec55d8abffd7f5ee85a47e6579734d8b45b35d0ae6c6d1a45b69
a596f2395a2791dd4baac6c0351854034c5536b77fccaf5c7d6a0d0c5aefc8c535e193da81a20315
48fce7e6ff003af913ca3adf9c75d8f434d3344b69af67a4d79568a242428fdd1f8ddb8aa8a7538aa6
b637bf98f7d6d6b7b0c7a0496b72a932c893de10d0c8a1815ac43a838aaacd27e67f21e85be83c78
8af39ef2bca9bf48ba57a62aa7ea7e6ad052dbcbdca9bffa45ed2bff0022715457913cbfa9f97749bb
835996de5d4aff0052bfd527fa987f410dfdcbce114c9463c4352a40ae2ac9f15762aec55d8abb1576
2aec55d8ab0db8a7fcad7d3bc7fc3d7ff77d76cf156658abb15762aec55d8abb15762aec55d8abb15
592cb1c31b4b33ac71202cf2390aaaa3a924ec062a978f31f978f4d5ac8ff00d1cc5ff3562adff88bcbf
427f4b59d06e4fd622ff9ab1577f88bcbe771ab591610000026060f002220574d4643010000000000
01000000000000000e00000000200000e8770100e8b70100d3affbd117fcd58ab4be63f2f36ebab5
91f95c447fe36c55b1e62f2fb6cbaad993ed7111ff008db156c6bfa11e9aa5a1edfdfc5d7fe0b154c71
5762ac7f55f3df92342bd7d375af32697a76a3105692d2eef6de0995641552c9238601874db7c550
23f357f2c1ba79d3433f2d4ed3feaa62aa83f33bf2d9becf9c7443f2d4ad0ff00cccc55b1f997f970680
79c34425ab4ff0072569bd3fe7a62ad8fcc9fcba22a3cdfa2d0753fa4ad3feaa62ab9bf31bf2f529cbcd
9a32d7a5751b51ff333154cf48f31f97bcc1eb7e81d5acb54fabf1171f51b88ae7d32f52bcfd266e35a
1a57154cf15762afffd0f7f62aec55e5df9e11cbab796cf961638a6b2bab7bed4b578a601d5ac74ab6
6942f13d795cb5b0ff0057962a9f7e58c6da6f9764f2b497125d4be58bb9b48134c28e6de3e335afc
e96d2c2b5f6c5599e2aec55d8abb15762aec55d8abb15762aec55d8ab0bb9a7fcadad33c7fc39a87

859

fd475962acd315762aec55d8abb15762aec55d8abb15762ac33f36228a7fcbcd7219d1648258a349
637019191a68c32b03b1041a10715469fcbafcbeefe53d1bfee1d6bff0054f154341e49fcadb97315b
7977409a502ac91d9593b003b9010e2ae9fc8ff0095b6b3456f75e5bd021b8b83c608a4b1b24790f
82a9405be8c5578fcbcfcb2331b71e54d0beb0aa1cc434fb3e617a034f4eb4c556c9f971f95c66582
5f296806e1c1648db4eb3e6c0752018ea71549fce1f965f96d0f94b5e9a2f276871cb1e9d76f1c89a
65a2b2b2c0e4104460820f7c5598795c96f2ce8ac4924d8da9249a935857b9c5536c5581795acad
27f3cfe61493dbc7231bfd38727456341a55b6d52315645a95c794344f44eb12e9ba77d618adbfd6
da0b7f51945484f538f223db154459db797b50b64bcd3e1b3bab494728a7816292371d2aaca0838
ab5f56f2e7d5e4bdf46cbea90fa9eb5c718bd34f4495939352838904357ecd0d7155b6f1f966eec57
53b44b19f4c7432ade4421781a35a92c245aa95143bd71554b4b7d0352b58af6c62b3bbb2997943
7102c52c4ea7bab28208f962a92697696b6bf985ae7d5a18e12fa4695c846a12b4b8bfa568057ae2
acb715762afffd1f7f62aec558b7e61db5bff00833ccb7be8a1bc4d1efe14b8e23d411b42ccc81a95e
24aa923d862ac86d60822433471aa4b38469dd540676540a0b11d48000dfb62a88c55d8abb1576
2aec55d8abb15762ac67cd736a9f5ff002e69ba66a32698ba85fc915dcf0c70cb2345158dcce107ae
922805e352481cb6c55cfe5af303488ebe70d491539728c5be9bc5ebd2b5b4276f638aacbbf2c798
6e2178e1f39ea76b23538cd15be9859686bb092cd86fd3718aa4fa8fe5beb37daf5af98e1f3d6b165
a8dad94ba72b436fa532b433c91caf5596c5c54b44bd315566f2379c0d3fe4256b82829b5a689bffd
cbb15445cf93bcd53242917e60eb16ed1270778ed7472643fccdcec1857fd50a3154aef345f37f96a
e34ad465f3dea9ab5bbea3676b71a7de5ae9490cb15d4cb0b066b7b28a4140d5055c6f8abd1f157
62aec55d8abb15762aec55857e6e314fcb9d79d762b0c641f94d1e2acd7157c45a3c10c1e705d32
6d2ecbcb3a1dc7e6a6aef07e61c2145d43756378258f4921234f445e0e50a3bcaf0baf38bd2e6c831
57adfe59e87e54f37d9fe68ea7f9916b697fe608fcc9ad586b92ea5c5e4b1d2ad188b18e369378215
b5e12c4c9c2bc8cdcb9fc58abc96dae7cd76de58fcacfceebb9ee26f347923cb6354d74302d75aa79
6a5be16d73ebf46775b365ba52ff00b684f56c559e792ee3fc47ff003949a5f9eae239387993c91a8d
ee8f15cc6524834c8754b586d0aa3d4a34b1b3cedd1bf7fc1ba62afa13cebff286f98bfed997bff50ef8
aaa7949b97953426fe6d3ed0fdf0262a9c62ac27ca5ff29bfe600ff97ed388ff00b85db0fe18abcebfe7
23e4bd8f5ffc9f3a48b27d6bfc5dfe8316a4cc96af21d32f405919033052c545541f88aed8aa4bf943e
66b4f2d7e5679c753b49923fcc8d4fcc17ada97946454b31a6f9a35478eda1d3e189dcfee3d4e0e92
d7f7d1b3cffccaaabbf2faedbf2df58f3cfe506bb6efa5d86a3a64fe6ef2a25f4f1dc738a583d1d563322
c8eb55ba56b9e1d78dc3b7418ab01f204579a6f91efbf20258a79bc93ab6830f9cf4cd65657302797
2f6d3d7bfb233820022f81880e5f15bdcbf4e3baafa43f215a27fc91fcb9684a18ff00c37a48fddd38d4
59c4187c3b6c6b5f7c553ab26ff908dada76fd0da537fd3cea03156538abb157ffd2f7f62aec558c7e6
392bf97de6b61b95d1efdbeeb690e2ac86d0f2b581bc6343f7a8c555b15762aec55d8abb15762aec
55d8ab15f354863f30f9269fb7ab5c21fa74abe3fc3154c3cdf757963e53d76fb4e9cdadfdae9f753da
dc2aa398e58a16746e320653423a30a62af04fc8dfcdbf3b79f758f274116acde66b1bdf2f2ea3f985
eb58c5669a36a3710c5359ac12c51c3cfd72ce3d22b2feed7d51278aacbb5afce2bbd1bf39748f2d5
c4b6517906fa76f2ccd70d345f5aff12cf02dedbd1012e21e0a6dea695b8938fece2aa1a87e69798bc
aff009fd1f9475e991bf2df5db782c34cba648e3365afbc325d244f200094b88a2938722dfbc4a0c55
15f94df981e6af3b7e6279fadb569bd2f2c5841a3de795f4c302432c765a9a5c912ccd4f50bca20594
2b37c09271e35c559df9edc2586924f7d6f485ff82be8862aca715762aec55d8abb15762aec5582fe
72c8b17e58f9924760a896caccc4800012a5492760077c5591ff008abcb040235ab021bec9fad434
34f0f8b1548468bf94cda5ea1a20b3d01f46d5e6377aa69e52cdadaeae0b0632cd19aabb965079b0
2dc8571575fe8bf953abdd0bbd46db44bbba11a42f2486d99a48621444977fde228fb2afc957b62a8
d987e5e5c5fbea570da44ba94b68da74973235b34ad62e6ad6e589a9889ea9f67db155ab0fe5cae
b50f989068c3cc16b6ff0051b7d4d4db0bb8ed3fdf29283c963ff201e38aacf39ebfa0bf93fcc08baa59
966d32f6805c4553fb871fcd8aa65e4dff009443cbf4e9fa36cffe4c262a9de2af37d1bcc5a068bf981e
7cb7d6355b3d3e696e34d9a28eeee22819e3fd1f127251232d45452a3be2a9c6a1e65fcabd565b6
9755d5b40bd9ad1fd4b37b9b8b399a17041e51976254d40dd7155926a5f94fa95fbea32ddf97aef5
3531cf25dbc9652ce1adc7eedcb925aa83ecb57e1ed8aaadc6a9f95faddda5d5d5ee83a8dfa235b4
734b2d9dc4c239010d18662cc010c6abdeb8aaac1ad7e5b9b55d0ed750d10d918cdba69d1cd69e
97a4fb98c440d389a6eb4a62aaf6de62f2268d6f169d67aae93a7da435486d22b8b68234a1dc2a2b
00373b803154b346bfb2bff00ccad79ac2e23ba8a3d1749592481d64557375a81e24a9201a1069e
18ab35c55d8abfffd3f7f62aec5583fe67eac90795bcc1a2c913037fe5ed66786e79284e76d6c018e9
5af22b2721da88d8aa7fa06af0ea5f5cb3850ffb89786d26989055a66b68a76029fcab2a835ef8aa73
8abb15762aec55d8abb15762aec5588f9bc03e60f23788d66623fee137f8aa79e60d29b5dd0b53d1
16e0da1d46d66b3fad2aac8d189e331960adb1201dabb62af38f2cfe45697e519fc97a9687acdddb
6b9e50d353cbf3ea0a918fd2ba3440fa76b7b1538b7a6d478e45e2e8fd366e38aaff00307e45e85e6
4f204be4ebebd64d6a7ba5d45fcdf0dadba6aa2fd2f45ff00d61582d164f5052bfcbb62aade67fc92d1
7cf36fe60b2f39dfcbaa58ebeda44af12c51dbb5bcfa2b725921750483292c24ff0025995683154f7cb
df97f1797bcf5e66f3ac1a83c83ccd6fa75ac9a59863486d93498de387d265a36e257e5cbda9c78e2
a8bf3da86d3f4aaf6d6f483f75fc38ab28c55d8abb15762aec55d8abb1551bbb4b5bfb696cafa08ee6
ce7431cf6f322c91488c285595810411d41c5520ff009575f97c1788f29e8dc40a01fa3ad6943ff3cf1
5727e5dfe5fc6289e53d1947f93a75a8fd51e2ac1ff00363c8be48b4f2bd8cb6be5ad2a190f983cb88
5a3b1b642564d6acd194911f4652558775db15672df979e406356f2a68e48ee74fb5277ff009e78ab
47f2eff2fcf5f2a68c7a7fd2bad7b74ff75f6c5569fcb7fcbb6a72f28e8a69d2ba75a1ff009978ab26445

8d551142a280155450003a00062ade2ab1e186435923573e2ca0febc556fd56dbfdf29ff023fa62aef
aadb0ff0074a787d91fd315621e48b6b6fd23e73fdcc7b6bf253e11ff002c165ed8ab2f16b6c3710c6
29fe48fe98ab8db5b1dcc29ff00023fa62abd5112bc142d7ad0018aaec55d8abfffd4f7f62aec55e59ff
39096de9fe586b3e638ade5b9bcf2ddb5d6a31c36f412bc0f6b35add2efd47d5e695a9fe48c5591fe
57d9ea16de48d32ef58554d6b5656d5b525514e33dfb19fd33e3e9ab2c5fec3156618abb15762aec
55d8abb15762aec5525f30f97575f3a6ccb7d71a75ee93746f6cee6d444cc246825b760cb3c722b2
9499b6e3d6871542ff00873cc1423fc5fa8d4f7fabe9bb7cbfd1315697cb9e601d7ce1a8b7cedb4cfe
16631549750b3f34d9f98b45d213cdd7ed6fa94778f2bb5b699c81b658d978d2d075e66b8aa727cb
7e61ff00a9c7521ff46da67fd91e2ab87977cc1bff00cedda81a8a7fbcda6edee3fd13155193c9fa85d
c969fa53ccda85f5b5a5d417a2d9e1b0895e4b5904b18668ad91a9c9413c5862acab15762aec55d
8abb15762aec55d8aa0b4cd5f4bd6629a7d26f21be82de796d2792de459552e2ddcc72c4c549a3a
302acbd54e2a8dc5580fe70ff00ca25647fefe1f2d7fdd72cb1567d8abb15762aec55d8abb15762aec
5588f9276d47ce9ff006df7ff00ba7d962acbb15762aec55d8abb157fffd5f5bf96b40d67cc7a4aeb17
be6fd6a0b8b9b8bbac36cf651c31ac7752c6aa8a6d58801540dd89c55383e47be31ac7fe32d7c712
c79fab65c8f2a6c4fd4fa0a6d8aae93c8ad73a65d6917fe64d62facef23920b9170f68c5e2994a321a
5a814209ed8aa9af912f12dd2dd3ce3afaac7d1c4b65ca80500ff79294c55521f255f4292a1f386bd2
9917886925b3253dd696837f9e2aa63c8b7e053fc69e61f9996c4ffd89e2adfe5e5c6a92e9fac59ea
b7d3ea3269bac5f58dbdddd7a6676b785c7a7ccc491a9201a7d9c559862aec55d8abb15762aec55
d8abb15627ae863e7af289036116a953e1fba871578febedf983a8f9ebce11795755d71eeb47d72d
638ad6297969b169771a025c5c47c080a5ccae1a2eb2accd171fddf3c55b874afcdeb6d0a1863bbf
304da95e793edeef4bba9a657921f39165f5e2bd5200588910f1465f4047f5afda618aaf9aff00f36bf
41de5cdd69fe625f3a69d7e62f304763e9b69777a43eab1b97d295e55e52ad98a45c0c5271332ca
7d7f4b1546f1fcd1b1baf2dc9a4cbe60d574368da0d4e1d4a38ed7528239a5bc78af030678e56850
a4725b5cd257416d2093d5f594aa965bafe76480e97e628754fd1b0e97aadb59eb3a24d2a4f75ac2
41692585dc90ce7d5855d7d54f45d9e04ba12726681e3a2ac9fc87a6fe6ffafafea5aede93e664b9b
1b68a0d4de7fd06616d2ac5ef64b3861e35a5e8b858dcf45e4bf678e2ac5f5bd3ff00372e6eaf9edae
3cc2a25bbf39aa2dbcad146b6d143ea68de985a7106503d023e27dd1cb27c38aa9fadf9d7a841e6
03a9c9e61b1d7ad74ebe9b448b4fb58069f750dc68b17d591e4673c6e63bc0e78ac7eb7adb7fbced
8aae5b2fce7b2d5a67d22e35c99a3bfd156c7f48c8d359f0bbd166faf1914fda892f3d2e75fee9ff00b
be2b518aa97d57f396e62f2fabdc798ed2c6eadbcb31f9af8906ee2d5beb8f1eaa60215c884c35329
8ff73fdd341bf2c559bf92edbcd76bf999ad796db5d9f5af25697e9eaf697f35d9b9b88e7bb83ea474b
b820ee217825baf8be2fdf47fcb8abcd753f287e7268ede65b9f241d62d27bcd5fcdd7d7b669322da
cb6b72c27d3a4b4563413c921054a1e54f5565fd918ab319af7f3725bad4354d1ec7549ad62f30dc
5cda689a852d3eb7a23c16081619c3130491ca679218e64313a89a397d3fddb0559bfe730e5e4eb
5f6f3079689ff00b8ed962af41c55d8abb15762aec55d8abb15762ac3fc8f5fd27e76affd4c0fff0074e
b1c559862aec55d8abb15762aff00ffd6f6cf909787966041fb3737c3fe9f67c558479bb50bfd7bf3b7c
b7f971797b7163e543a05ff00986e20b49a4b57d4af6deea0b68e079626493d3856532b468c3d42c
9cf92295c5587fe72797ae3c8ede4e9b44d635e9b4cd77cf3a25a4fa443a9ddf25b4960b88a7b586
47b856f4a62a8e636938ab8f8698aa1ae74ef3e68fad7934f986ff53b0d1b53fcc210f97f499f52966b
c8b426d22e65fab5ecb04ccb32b5cdbfaa91c924c634a2339f8902af56d2ccff00f2b9bccd11b9b87b
55f2f68b325a34f2b5ac72cd77a923ba4258a2bbac318660b53c31540dedfea917fce41e8da60beb
81a2dc794352b87d37d46faa9ba8352b1459bd3e9cc248cbcbf971545f95f57b9d36e7cc16f6fa3df6
a492ebd7c5e7b4fab7a719210d1fd69e26ff008156c5591bf98ef954b0f2d6a8c40242afd4aa69d856
e862ab7fc4da87a8a9fe17d5b8b004c9fe83c456bb1ff4bad4537dbbe2aa87cc37a07fca3ba99f61f5
3ffb29c55a93cc77c91b38f2dea8e57a22fd4b91dbb56e80fc715525f346a06de398f95b575793ac04
58fa89d7ed52ecaf6ecc715411f3beab5a7f81fcc077a569a67fd97e2adaf9db542acdfe09d7c7115e
2574da9de941fe9ff4e2a88b6f36ea3711c8efe51d6adca7449458726dabf0f0bc61edb918aa4fa96a
bad5cf9a7cbfa845e55d58da59c57bf5a94fd447033a461053eb752495ed8aa3d358fd1d7d34f63e4
8d4d6e7539164d42eede3d390bba288d5e66376acc428001f88f114c554b54fcc1b8d22c27d4af7c
9fae8b3b546967744d3d8ac695ab505ed4ec2bb62aa87cf3aa034ff00037987e85d30ff00d8fe2ad1f
3d6a829ff003a379877ff00234dff00b2fc55bff1cea83fe987f30ffc069bff0065f8ab63cf1a99527fc11e
6014a7c2534ea9af87fa762ad7f8e753ff00a91fcc3ff01a6ffd9762ad7f8eb53ffa91fcc3ff0001a77fd9
762adff8eb53ff00a91fcc3b7f91a77fd9762ab7fc79a90ffa61bcc5ff0022f4effb2ec5503a7798e1d1da
ece93f96facd835fcef797c6d6d74b87d7b9969ce694a5e0e72353e276f88e2a8dff001eea5ff52379
8be7e969ff00f65d8ab63cf9a91ffa61bcc43fe7969fff0065d8ab10fcc8f3279875ff002d4361a6f90fcc
4f729ab68b7855a2b0a7a565aadadcca7e1bd63b246ddb1565bfe3fd46bff283798c7bfa561ff65b8a
b5ff002b0751ff00a917cc9ff226c3fecb7155dfe3ed47fea47f31d3c7d2b0ff00b2dae2ae1e7fd40ffd3
0fe631efe8d87fd96e2a82d1ff35535eb46bfd27ca3e61b8b44b8b9b37905bd9a527b19deda74a3dd
a9f8648dd6b4a1a6db62a99dc79defe099a15f276bf305a5258a2b2286a2bb72bb07f0c5548f9f6fc0
aff827cc47d84363ff006598ab47cff7e3fe988f31fd10591ffb1cc558f796fcd1ade957de64b8bbf23f98
7d3d575537d69c61b263e89b3b582adfe99b1e70bede18ab20ff0095837dff005247993fe91ecbfec
b3155787cef792bc28de50d7a2f59c216921b4e29534e4f4ba3403a9a62acbb15762aec55ffd7f6df
91453cb710ff0097abff00fa8e9f155fe65f25796fcdb269f73ad5a33dfe912b5c695a8dbcd2da5e5ac

861

8ebc5cc53dbbc722871b3a86e0e3edab62a80bffcb2f27eab069f06a96d7179fa2f538b5eb29a7bdb
b799353b704453990cbc98a0242a13e98fe4c5536f33795341f3869f1e99e60b5fad5b413c57b6ce
b24904d05d5bb728a6865859248e443d19181ea3a138aaa68be5cd2f413732d8a48f777ac8d797b
733497573318978a079666662aa3655af15df88f89b155297caba24de69b7f39c9039f315a594ba5
dbdd7ab2855b3b89125923f4837a6793c68c58af2f846f8aa5be46146f33ef5aebb787ef58b156598
abb15762aec55d8abb15762aec55d8abb15637f98209f23f9840ea6c2e29f3e07156498abb15762a
ec55d8abb15762aec55d8abb15762aec55d8abb15762aec55807e4e2f1f275cd3bebfe643f7ebb7b
8ab3fc55d8abb15762aec55d8abb15762aec55ffd0f6adbf91adace6792cf58d5ade079669c59a5d9f
abab5c3b48c15594d1793120576c55747e4d68e4127f8875a6a1e5c5aec153ec47a7d3155787caa
d0dc34ffa735593957f7525c868c57c070ed8aac3e52632349fa7b571c983f0174a1450d6807a7d31
5449f2e9327a9fa5f521b71e2271c7ad6b4e1d7155dfa05a94fd2ba87cfd65ff009a31555d0f42b3d0
20b986d1e694dddccb7b712dc486591e69c82c6a7a0d80006c062a99e2aec55d8abb15762aec55
d8abb15762aec558ef9f457c97af0f1b19ff00e207156458abb15762aec55d8abb15762aec55d8abb
15762aec55d8abb15762aec5580fe4f2f1f27dcef5aebde633f7eb97b8ab3ec55d8abb15762aec55d
8abb15762aec55ffd1f7f62aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb15
762ac73f3036f2479808ebf50b8ff881c5591e2aec55d8abb15762aec55d8abb15762aec55d8abb1
5497cc5e70f29f9422827f35ebb61a1c374cc96d26a5750da2c8c82ac10cacbc88077a62a90c7f9cff
0094331a45e7df2f39dba6ab667af4ff0076e2a8b1f9a5f964c2a3ce7a111d7fe3a769ff00557155f1fe
66fe5b4bcbd2f38e88fc4726e3a95a1a2d6953fbcc5582fe4f7e61f90e2f29dd4371e69d1e298ebbe6
291637d42d958c526b579223d0c80d1908607ba9ae2acfe2fcc5fcbeb8956083cd9a34b33ec91a6a
36acc7e4049538ab87e627e5f993d11e6bd1ccc5b808c6a16bcb974a53d4ad7db1569ff31ff2f6376
8a4f36e8c9229e2c8da8da860c3b1064eb8aa32c7ce3e51d52fc695a6ebfa6deea6c095b2b7bc826
9c851c8911a396d86e76c553ac55d8abb15762aec55ffd2f7f62aec55d8abb15762aec55d8abb157
62aec55d8abb15762aec55d8ab02b4fcd05d4f4fb6d5748f29798350d3af17d4b6b882ded42bc649
018092e90d0d2a2a315440fcc0bf3134bfe07f3202a547a660b2e6795771fe994a0a6fbe2a95f993c
d7ab6b9e57d734eb4f2579812f26b3963b78a686c93d5775e21548bb23bf7a62a9a0fcc1be2acc7c
91e6405403c4dbd954d4d36ff4ced8aacff95877f5a7f817ccb4f1fabd8ffd96e2adff00cac2bf240ff037
9969e3f57b1a7fd4662a9ff963cc76be6ad246ad696f7168a27b8b49ad2f5163b88a7b399ede54755
675a8743d18838aa718abb15762aec55d8abb15762aec55896b16f6f73e7ff2ea5c449328d335721
6450e3fbed3fc6b8ab223a56967ad95bffc8a4fe98abcc3f3ab59d47c9fa77949bcaf0e9d6d75aff9a3
4af2f5ccd7562974a96fa9c8d1bc8881e3f8d280ad4d3154975ef357997ca3adeabe46d62db48b9d
4ef3cb7a97987ca7e6482c0430bcda470f5edaf2d1a57dd7d589d5e3902ba16f851977558dde7e77
ddc5f903ab79d97cbfa7a7e6b689fa4348d4f427894c10eafa3c6f2ddc85090c615823374a397f76c8
bcbe2e58ab31f3579c35af2dfe51e8de67d0f42b0d7ff30b52d3edefadb4c5805bc770d1db0bebcf4d
179b0e30249e9af23593d34afc58abd1fcb575e58f35681a579a346b6b69b4cd5ed61bfb298451d4
c57082453d3ad0efef8aa66748d249e46c2dcb1dc930a56bf762ac5bcd365656fe66f22cb05b4514a
dac4ea6448d55a9fa26ff006a800e2acdb15762aec55d8abb157fffd3f7f62aec55d8abb15762aec55
d8abb15762aec55d8abb15762aec55d8ab07fca3263fcaef2c9442ec9a7c6551680b115d85481bfb
9c5522f2c7e7ef953ccabe5ab83a5eada4e99e6fba9f4ef2f6a5a8410adb5c5f5a9995a02609e668dc
9825e1ea2aabf0f85b157a36aba8cba6c30cb0d85cea2d2dc416ed15988cbc6b3c810ccfea3c63d3
8c1e725096e23e1563b62a967987ce3a7796f56f2e68f7b0cf2dc799af9b4cb39605468e29c5bcd74
0cdc9d595592070a555be218ab210cac582904a9a3006b434aeff41c55cacaea1908653d083518a
b10fcb714d1f5614a7fcec1af7e3aadce2acc315762aec55d8abb15762aec55d8ab16d4bff261797bf
ed95abfcffbed3f1544eafe7af26e817ada76b5aed8d8df47189e68279d11e285ba492827f76869b33
f15c558dfe63792e4fcd3d23ca973a06b76b6b6da46b5a6f9aacef0c06fe0bb1604cb0a2fa7345f049
c81e6ac7e1fb38aa0753fca7d575dd4f5df346b7af4573e6cbfd12ebcb7a248964d1e9fa5d9df1e533
25bfaecf2cb23042eed32d44688a1072e4aa59e62fc81b0d71fcf3a9c5a98b5d7fcf5a02e817b2980c
9676d7125b1b3b9bd860f554fa92c2b12105fa42b576e4d8aa607f2b74d57d3352fcc5bcd3f59f2ef9
5f408b4cb5b4bab4f46d6de68429babf2659a455322468b4ff75a27db3c9b1554fc99d2745f24e8c3
c8da5f99ec35ad3a4373aff95ec6d00492db41d46e5a68516b34a6582369784530e2a578ad3157a
8e2ac47cddc3fc45e45e5ff005789f8d7f9bf44dfe2acbb15762aec55d8abb157ffd4f7f62aec55d8abb
15762aec55d8abb15762aec55d8abb15762aec55d8ab06fca59045f95be5a90ab308f4f46e283931
e35d801d49c55f397913f2e3cf96ba67e52c763e5cd62c7cdbe57f30de5e6b7fa6e557d0adb47bcba
bb6b87481e674facb4332081add3d44767e4cabcb156496bf96baadbf9364bfb5f2cea10f9b24f3fc5
76ceccc6ecf97e1f327d7e36ab4c7f70b6a49e15f14e3cb154541e5cf33279bbcb975af7946f24f31e
85e76d4f55d5fce645b1b49741ba87504b5904ed307f4e28a7b78cc1c7f73e937c3fccab0af2d797fc
cba97962fe6d0ed35bb7f3c6a1e5abcb1d0f529e01689ada497e6fbeb0d7c9349135dcb684471cac
157e391b9f0e28aabe86fca1d0acf48b0d5ef34ed1f59d0ad356bb5bb3a6eba6da2749844b13982d
6d098e143c0569fde49ca4a6fc9954e3f2e45349d5bfedbfaeff00dd52e31565f8abb15762aec55d8a
bb15762aec558aea5ff9313cb9e1fa2b58ff0093da762af27fc9dd5f46f2acff0099da27e66de5a58f9c
ee3cc9a8ea5ab1d48a466fb47b9551612c465a09adc5ba88951797a5c5a36556db154a3cc9e79f3
1e87a5f9d6cfc8f3cba5df7938797d7f2efcab1dbafd5b51d26ee3b758ff772c665904f23cd6cc1595a
dbd28fec1e4ccaa8e9de7cf3a2f9da93f9b6eaeac6e3f32353f24ae92e966b0a6967487bb88a18e05
93d58a75509217237e0e1ab8aa57f967e64f356b3a67e50797ec7cf3a97a9abe83ad5df9862f52ce
7bd9355d325b4904124b71048e8c1a4923743bf0e5dfe2c5536d23cfbe72d6b40f2cea7a8eab2cb7

be61d1610000026060f002220574d464301000000000001000000000000000e00000000200000e
8570100e8b701002fcc51fe60f976e238e387489ac2d276aaa70592dfd1b854b6fde330952456f89b
f798ab13d27cd9a9f953cb9e4ef30795d16e75cd37f27eca48e109ebc91462f74f13cde92d598c117
a9370a12de9d38b74c55945cf9dfcc97175e57d3bcbdf99dfa4fcb9e67f3747a6dbead611dacf710e9
b75a45c4ed6c6ee6b6f4a591278e375648b943eaac52f2f8062af6ef334461d6bf2fe196569e48f569
50cf2539bb2e8f7e0b3710a2a7a9a003156678abb15762aec55d8abffd5f7f62aec55d8abb15762ae
c55d8abb15762aec55d8abb15762aec55d8abcfbc8ff00e29f2b793b48d02f7cb3733dee9d0adb4cd
05cd898d8a96f8d0bcea78f4ea036fd3154f8f983cc1dbca77ddbfe3e74ff00fb29c55037fe75d5b4b8
ade5bdf296a09f5ab986ce155b8d39cfad72e112b4bad854ee71545c9af6bd223472793ef9e36055
95ae74d2194ec6a0dd7438aa51a1585b796439f2f7e5d3e9658152b68fa5c544ad78af1b80156bbf
1145c553b1afebe6b5f2a5f0a78dce9fbfdd738aa9790f4fd4f4ed1ae86af6a6caeef354d52fc5ab3c7
2b4715edf4d3c419a2665e5c1d49e2c698ab27c55d8abb15762aec55d8abb15762ac4bcc70eb36f
e69d0b5ed374a9755b4b4b3d4ad2ea2b696de2951eeded1e36a5c491295fdc38346afd9db155d36
b9abccd14b37926fe59233ca2669b4b6646f104ddec7e58aaab6bfad97573e4fd419d6bc5fd7d32a
b5eb426efbe2aa7fe20d681aff82751a8f8c1f5b4bfb5ff00499d71541e91e73bfd634eb7d5b4ff0025e
a62d2e47ab097974b472189a923eb9b571547fe9dd63939ff0006dffef68256f5b4cf880dbe2ff4ba9a
0c55cfae6af14ade97936fdf81e2b2a4da62d4788add834c556cbacea91b2c29e4bbe96288d62659
74c0809deaa1aec11bfb62a96ea4be61f30f98bca92fe80bad3acb47d465bfbdbbba9acd93d26d3a
eed82aac13c8e58bce9fb34a577c559de2aec55d8abb15762aff00ffd6f7f62aec55d8abb15762aec5
5d8abb15762aec55d8abb15762aec55d8abb15762ac6fce74faa6935ff00abc69b4ffa4a4c559262a
ec55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb1562df96c49f22e864f5fab8ff8
9362aca715762aec55d8abb157cdfa979cb51d59757b6d3b4f4b8b8f286bbe65f31cf63a4b49135e
2f96c0fa9c5380f2316b9b99d19c0da4f41f8a76c55e89a0f9b757f31379a34bb87b7d4b47b7d1ac7
50d3b5ab0468e395f53b79ccb6e4177f893d2591789feee78c37c43932af20fca9fccff0039f96bcb7f
96ba06a93d84fe52bcd1fcbc6e7cc12c5243f5337d6f770b59dc4af3b29983dbc4e243c4fc4e8f1fc48
715474bff003911e7183cb316bb730e9c12ebcbcbaa58dcdb44f7107e935b39aea5b7ba417024b7
1c5166818868e58c491fa8b371c55fffd7f7f62aec55d8abb15762aec55d8abb155aedc119e85b882
78a8a934f018ab1083f30e19e5484796fcc31972179c9a64aa82bdc927618ab71fe60c324eb6ffe1cf
302966e1ea3699288c6f4a96af4f7c557cde7d8609258cf97b5e93d2342d1e9b2b2b569f648ebd71
56aefcfd0da4c613e5dd7e62003ce0d365913e215a54771df15527fcc58518aff00867cc469dd74b9
88fd78aa12dbf3634bbcbabbb3b6f2ff009864b9b09161bd8d74a9ab149246932ab7b94756dbb362
a8f7f3fc4968b77fe1cd7d83394f4574d94ca29dcad7a7be2ad27e60c4e923ff0086fcc0be9a86e2da
64a19aa40a28aee77e98ab1cf36f9f62b8b0d3641e5bf3027a3abe9ac51b4c98337fa429d8577e98
aa7bff002b261ffa95bcc9ff0070a97fae2adffcac787fea58f31ffdc2a6feb8abbfe56443b7fceafe63eb4
ff8e54bf7f5c55a3f993006e3fe18f3278d46933918ab4ff9996c9218ff00c31e656a1a175d1ee0afd06
9be2ab5bf33ad57fe998f331f71a35c9fe18aaf1f99766481fe1bf320af8e8d77ff0034e2aa375f9afa3d
8c71cb79a1f986149658ede32fa35e7c52ccc12351443bb310062a88ff009591674aff00877cc7d69
4fd0d775ff8862ad7fcac9b3ffa977cc7ff00706bbff9a3156c7e64d99ffa677cc7ff00706bbff9a31570fc
c9b235ff009d7bcc629e3a35e7fcd18aad1f997624ff00ca3be641f3d16f3fe68c55bff959565ff52ef98f
fee0d79ff3462ae3f993643fe99df31d3db46bcff9a3156ffe564d9569fe1ef31fcff435e7fcd18aa45e48
f3b2e97e4fd1acef7cb7e618eea3b7e3245fa22ef9290ec28c38ede3f2c5590cbf987671246e740f30
3fa8bca89a45db15dc8a3009b1db15536fcc8b2500ff0087bcc46bd868d787fe34c550d17e6ce8b35
ddc5843a27985ef6d046d736eba35e738d670c632df053e2e269f2c5511ff002b2acbfea5df31ff00d
c16f3fe68c5577fcac8b2a57fc3de62f1a7e86bcaff00c43156ed7cefa5b7af3c5e5ed6e0745e7216d1
eea377dfa0fddd58fb62ab62fcc2d36350b1f977cc11a6e68345bc515ea7611f7c554879fb47e061ff0
00cebe2266e6c9fa0eef897af2e4408e95aef5c551f6de6dd36e74fbdd4d742d5a34b2f4e37865d2a
e23b995657e23d188a739029ddf88f846e7157ffd0f7f62aec55d8abb15762aec55d8abb15762aec5
5d8abb15762aec5585793c53ce5f987efaa589ffb93d962acd715762aec55d8abb15762aec55d8ab
b15762ac5fcf31992c748a53e1d6f49635f6bc8f156518abb15762aec55d8abb15762aec55d8abb15
762ac3b41007e61f9c8f8db68e7fe12e7156638abb15762aec55d8abb157ffd1f7f62aec55d8abb15
762aec55d8abb15762aec55d8abb15762aec5586794bfe531fcc0ff00b6958ffdd26cf156678abb157
62aec55d8abb15762aec55d8abb15637e74ff007874cffb6c697ff519162ac9315762aec55d8abb15
762aec55d8abb15762aec5586e83ff009317ce5ff30ba3ff00c42eb156658abb15762aec55d8abb15
7ffd2f7f62aec55d8abb15762aec55d8abb15762aec55d8abb15762aec5586f94e9fe30f3f53feae36
35ffb855a62accb15762aec55d8abb15762aec55d8abb15762ac6fce86963a674ff008ec697d7fe63
62c559262aec55d8abb15762aec55d8abb15762aec55d8ab0dd04ffc845f397b5ae8dff10bac55996
2aec55d8abb15762aec55ffd3f7f62aec55d8abb15762aec55d8abb1560de778b58d4fcc3e5af2fe9b
af5ee816b7cb7f35dcfa68b6f5e436d1c7e9ad6ea09d4282e49a2d7df156dfc81adbc85c7e60f98d14
ffbad7f44f11b7be9c4fe38ab10d39f43d6efe0d2b4dfce1d7df509e7bbd3e087fdc64666bcd3cb7d66
1432698034b150f3453c942fd9eb8ab306f20eb46d23b61e7ff31ac88ccc6e41d2fd560dfb26ba7f1a
0ed45c5543fe55d6ba69ff00211fccdb7fdb23fef1b8ab6bf975ae2edff2b1bccc7a753a41e9ff006edc
552c1e48b5f255d5cf98754fcc2d7d1757bdb486e5ae9b4e314d7971e9585b2111d8020b1f4d169c
7e2a571556baf2cb43addae833fe65f98e2d6751867bcb2b2e5a606782d1a359997fdc7114432c60

863

d4fed62a8f3f977ac1a7fc842f33023ad1f4bdff00ee5f8aa27f2fff004a5bb799b48d4f56bad6bf456ae
6dad2f2ff00d1fac7a0f636970118c1142a78bcaf43c2b4c559962aec55d8abb15619f9ada8eaba5f9
1ef6e745bd934ed41ee74eb64bd8046d2c51ddea16f6f29412abaf2f4e4600b2b5315431fcb7d509e
5ff2b07cd03dbd6d369ff5018ab63f2e753e5c8fe60799cfb7ada701f85862a86bff00caabad49238ee
bcfbe67648a68ae23027d38012dbc82443b5876650715451fcbbd4c8a7f8ffccdf3f5b4eaff00d4062a
d7fcab9d50f5fcc0f339f03eb69a3f55862a9279d3ca1e60d0bc9de60d6f4ef3ff0098c5fe99a6de5eda
9924d39e3f5ade079539afd44545545457a62af4eb095e7b1b59e4359258a3773d376504e2a88c5
5d8abb15762af3bd7ed35af307e619d06dfcc9a9687a65ae8b15f08b4b36aa64b896ee58cb3b5c5b
ce4d150000531544bfe5d6aeca17fe561799d4835e424d32bf2ff008e7e2ae6fcbbd5da9ff210bccc0
d474934bffbc7e2a81b5fca6bcb5d5eff00584f3f7997eb3a825bc73fef34d1516a1c2d7fd07fcb3d862
a9937e5f6a8dc69e7df32a8514da5d377f73fe818aae3e41d4cc2917f8ebcc6190b1328934ee6dca9
407fd069414da831541d8d96b3e5af3ce87a4c9e65d4f5ad3f53d3f5496e21d50da3d25b492c846e
86deda020812b8eb435c55e838abb15762afffd4f7f62aec55d8abb15762aec55d8abb1561de6020
7e60f9301ea61d5e9ff22a0c5598e2af993cb3f961f993a5f9a6d7cd179632dce989e6cf335fc1a05cc
f6a534f3adcd31b3d6e1114804ad1c72b4535b4aeeeab2bbc2aaebf12a8fd0fc95f99b7b69a14bafe
9facd96b09aa68abe6ee5adc32d95ec56105dc377756d15bcaa5639cbc6d22b71925aa2b43fbae5
8aa034bfcbffcdfd3b4fb016716a08ff51806bb6b73aa099ef22b2d7fd5166b235cbfa72c9a7131acaa
40e348a492bf6554f8fe587e6236a50ea5657f71069975aceada75d693737cecf0794b57f4df92387
602786789e5b603e3861b8f4392ac7c715633e62f20fe6d798f5dd6a2bcd0af62f2c5cc96f23dac7ab
c6e93369fe6c87515921637225591ec15bd36a43e99ff00475e0a885954d352fcb8fcd1d3e45ff0b2c
e66b6b4f372f97e7b9bc491ec62d4ee74f96c6cda79a47901916da708f4916dbd4404fc18abd6bf2c
b4dbfd3b43bc7d434fd4f4992fafe7bd4d3359be83519edc4e10b246d6ecf1c71730de9c4aedc7afc3
cb8aaaade4b2c75bf3d54529af281f2fd15a7e2acbf15762aec55d8ab03fce3ff940ae7feda1a37fdd5
ed3156798abcd7f343ccbe63f2ef987f2e6d743be5b6b2f317989746d5a0782398c96cf6575755466
dd181b70bb76738ab11d4bf347cdfa8fe60db7933cbb710db5a79935cbed1749bf96dd6516967e59
b159f54b94a9025965b997ead1abfeee3f499f8b7c4b8ab29d07cdfaf691f9b13fe54f992f97595bbd0
ffc49a26ade825b5c08e1ba169716f70b152362acf1bc722247f0b32b2fc3c8aaf4fc558b7e66103f2e
3ce04f41a26a55ff00a4497154f748ff008e558ffcc3c5ff001018aa3315762aec55d8ab098abff2b76e
876ff0ddb6dff47d3e2acdb1579f5e79d35cb6fce7d33f2f80b41e5ebdf2edeebf34ed1c9f5b59acaee
ded7807f502706171ccd52bf0d3be2ac4fca5f9b3e6af3e7996cbcafa2c56560d75a64de69b8d46e6
de59443a2dd5ecb6da5c29089939cf3c7199a590bac68bb2c6dcb65597fe5df9f2fbccbab79bbca3a
fc10c3e6af25dfc363a8cb661d6d2e60bdb74bbb5b889642cc9ce37e2f1977e0e8df195231567d8ab
0dd68ffc84bf297be99ae7fc4f4fc559962aec55d8abffd5f7f62aec55d8abb15762aec55d8abb1561fa
fad7cffe4d6ecb16adf79861c559862af08fcf6f327997c9fe70f26f9af44d42e22d1fcbd69aa6b1e6ad1
e277315f68d6d3d841745a1068cf6d0dcc9731b71a831fbe2ac4b46fcd6f30699f9a5e6cd5350d427
bcd1bcc30f9557cb1a75d4a12c34d835d9efa2865f4d9e35532c56f148f565769a558b90c55926b9f
9c7f997a32949f4ad0a2bed3b4dd26ff56b713cd728f36a5accda4c890cb0b95500224ab5f50ab728
5ea7e30abadbf3cfcdd2d8f992d5f4fd37fc43e53b3f316a17ae7d78ecefd7cb9a9359fa76c19d9a32e
89ca42cd27a4f245f6d5b15565fce0fcc2169adf9d6eec348b5fcbbf2f6b7169fab47225e1d5e0d29be
af24f7720e4115a08ae03ca9c5a9e9c98abd9fcbd7d77a9e8d69a8de2c6b2dda99d0441957d1918
b43b312797a65797f955c5533c558879329fa73cf43fed7a9ff00749d3f1565f8abb15762aec5583fe
6eaf2f225d8f0bdd24ffc0ea96a7f862ace315611e7ef21def9cf53f28ea36dab269bfe13d586b9142f6
df59fac4e96f35b2a337ab1f14e33bd69535e3e18aa4c7f26ada3d0bc9b0596af25b79bfc95732ea1
a7798bd1593d6babf120d404d03351a2baf5a4e681d597e1292064ae2a9cf97bc837167e72bdfcc2
f336a49ab79b2eac22d1ad5adedc5a59d969f1ca6768a08cbcae4cb29e72bc92b96e28abc55698a
b37c558bfe648afe5d79bc1e8745d487fd3a498aa75a292746d389ea6da1ff936b8aa3b15762aec5
5d8ab098fff0026fdcffe0376ff00f51f3e2acdb15790fe607e5b79dbccbe7a97ccde5fbed3ac6ce5f2ae
a3e5449276b8fadc4faacf0caf728110a562108e0b5f898ef4c5530bcfcb3bfd03cdfa5f9e3f2f9ace3bf
b6d1a1f2bea5a56a6d2c76b73a5da3996d9a39615768a6858b007d391248dd95941546c5533fcba
f215df95af7ccde67d7aea1bcf38f9c6f62bfd6e5b4574b3896d604b5b6b7b759096e11469f6dfe277
676f87655559de2ac335b3ff002133c9e3c74ed73fe25618ab33c55d8abb157fffd6f7f62aec55d8ab
b15762aec55d8abb15613e6bb8b8b5f3b793a5b7b49af988d4d1a0b7312b856862f8c99a48968b4
dfe2e5bfc2a7154e5f5ed5566f497cafa9ba569eb2cba670a78d0df06a7fb1c558f6afe61d0c6b76eb
adf94ddb5dfa9dcfd51eee5d0feb3f51e23eb5c3d5bf0fe9529eb5070e9cf1548b5af317e59a4fe601a
d794aca49859c3fe263752f9741361f0fa1f5bf5afc1f4abc7d2f53e0e9c31551bff0031fe567d5d7f48f
946c7ea9f52b2e3eb4be5df4bf47fd63fd0baea14f47d7fee3f63d5fb1f1e2aaabe64fcb9e09c7c9f6dc
3f48de88c7abe5dff008e9d47d748ff00721fded69f58fdbaff00798aa13cc7aa797b50d175c36ba2de
e93e5eb5bf9ae7f30069dfe1f9a3bb0909faddb6a14bc91939a15f59fe19822fdb0b8abd2a2d72fcc0
5a2f2d6a02344430a2c9a6d1c30ad1297bc76e9b951fcb5c5562f98b57237f296aabec65d2bf85f9c
5527fcbeb89aef54f3c5c5c5a4b632beba9cad2e0c4d2a534ad3c7c4609254de951c5db6ebbed8ab
38c55d8abb15762ac73cf91f97a6f2adec5e699a6b7d159adc4d35a894ceb2fd623f40c620577e5ea
f0a7153f762a90c9a458edcb5ff358ff00552f7f85a62ab5b47b0efe60f367d11deff0b4c55a7d1f4f2e4
9f3079b47b2c77d4fa29698aaefd0f63cabfe20f367cbd3bda7fd4262ab8e9163c08fd3fe6ba5454fa7
7bcbbf4ff44c552dd7b47f2e7e82d4ff004f7983cd5fa0bea93fe930f1dff1faa7a6deb5785a72a70e55
e3be2af4bb2fabfd4edfea9bda7a49e81dff00bbe238f5dfa62aaf8abb15762aec55827996cbcb577e

6d8ccba8ead63e675d38075d1d6e9b95819db8993d18654da4e5c6b46ebdb1543368d63415f317
9bbda91ded7e9a5a62adb68d63c457cc3e6da53b47795fa69698ab6346b2e1ff00290f9b295ef1de
72ff00a84ae2aa8da45998547e9ff348505a844777ccd69d7fd12bf2c55b5d1ed3eaeea35ff3415245
58a5d7a83af4ada57e74c55668fa7f966d7cdfa6c93eabacdef98cd9df2e9716acb74b18b7e56ff5a2
9ea411272afa3d4f2fe5fdac55e818abb15762afffd90000000840010824000000180000000210c0d
b01000000030000000000000000000000000000001b4000004000000034000000010000000200
0000000000bf000000bf0000af4300007e43030000000000008000000080fe7fe943000000800000
0080fe7fa9432100000008000000620000000c00000001000000150000000c00000004000000150
000000c0000000400000051000000b86101000000000000000000d201000052010000000000000
000000000000000000000005e010000fe000000500000002804000078040000405d01000000000
02000cc00d301000053010000280000005e010000fe00000001000800000000000000000000000
00000000000000100000000000000000000ffffff00dedede004a4a4a004e4e4e00545454008a8a8
a006c6c6c0060606000656565005959590056565600616161006262620063636300818181008c8
c8c0067676700848484007171710073737300686868005d5d5d005e5e5e0066666600787878007
47474005c5c5c0058585800575757005b5b5b005f5f5f005a5a5a006b6b6b006e6e6e00c3c3c300f
dfdfd00b9b9b90064646400c7c7c700d1d1d100cbcbcb00cdcdcd00cacaca00c9c9c900d7d7d700d
adada00c8c8c800cccccc00cfcfcf00d4d4d400d6d6d600d8d8d800d5d5d500c1c1c1007e7e7e009
8989800fafafa00fefefe0075757500fcfcfc00aaaaaa008e8e8e00bebebe0077777700fbfbfb00a7a7a
70085858500f9f9f900bbbbbb0076767600a6a6a60087878700bdbdbd00a3a3a30088888800b8b8
b800a8a8a80089898900bcbcbc00b5b5b5006f6f6f00e1e1e100b1b1b100b7b7b700e4e4e400f6f6f
600d9d9d9007c7c7c00f0f0f000333333001e1e1e00dddddd001b1b1b00c6c6c600f5f5f5000f0f0f00
3e3e3e00ececec00313131009292920007070700f1f1f1007d7d7d0042424200444444000101010
0b4b4b4002929290009090900d3d3d3002f2f2f002a2a2a000c0c0c007f7f7f00434343008f8f8f000
60606009f9f9f00f8f8f8002d2d2d0090909000363636001818180091919100696969002e2e2e006
a6a6a008d8d8d000d0d0d00dfdfdf0046464600ebebeb00efefef004d4d4d00727272009d9d9d005
3535300b2b2b20028282800797979000b0b0b00979797008b8b8b00c2c2c200f2f2f2001c1c1c002
c2c2c004949490037373700ababab007b7b7b0003030300a9a9a900c0c0c000e5e5e5002222220
0121212000a0a0a0011111100e0e0e000f3f3f30014141400e9e9e900e3e3e3001d1d1d000e0e0e
00404040003f3f3f004b4b4b0095959500bfbfbf00a4a4a400b6b6b600f4f4f400b0b0b00047474700
52525200d0d0d000a5a5a5007a7a7a004848480080808000828282008383830086868600cecece
00d2d2d200c5c5c5004f4f4f00c4c4c400eaeaea00707070006d6d6d00f7f7f700252525003434340
0eeeeee00ededed00e8e8e80099999900afafaf00a2a2a20094949400adadad009e9e9e00dcdcdc
00b3b3b3009c9c9c00e6e6e600969696005555550050505000a1a1a100bababa00a0a0a0004141
4100202020003d3d3d003535350024242400e7e7e700939393003939390045454500262626009
a9a9a0038383800303030003b3b3b00515151009b9b9b00171717004c4c4c003c3c3c003a3a3a0
01010100019191900e2e2e200131313001f1f1f0032323200aeaeae000808080021212100dbdbdb
00acacac001a1a1a0004040400232323002b2b2b00161616000202020027272700050505001515
15000101010101010101010101010101010101010101010101010101010101010101010101010
1010101010101010101010101010101010101010101010101010101010139014d0d0fc9cfe2b8b4
3b46b9d07474b68746467272aa80b78c404640c1581958b440b458581913075837c0c019879721
14c040678c484a72b7546b798c3b40b437b71243b9464005014401440101010101010101010101
010101010101010101010101010101010101010101013c013a3a4101410101010101013a010101
0101010101010101013c240101010101010101010101010101010101013a2424010101013c0101
c201013a413a010101010101010101010101010101010101010101010101010101010101010101
01013c012444010101413a010101243a01443a0101242424242424240101010101013c01012401
01243c010101013c3901010101015601013c010101010101010101010101010101010101010101
01000001010101010101010101010101010101010101010101010101010101010101010101010
101010101010101010101010101010101010101010101010101010101012401018e960101013a
3a01013a3a012401240101010101010141010124013c0101010101010124013c0101013a013a01
013a3c01440124410101013a3c010101010101013a243c01621cae010101410101010101010101
010101010101010101010101010101010101010101010101013a0101013c01243c24242424243a
01010101010101010124010101010101013a0101010101013a0101013c01393a013a0101012401
44010101240124013a01010101010101010101010101010101010101010101010101010101010
10101013c013a3a0124440101013a01010101010101013a0101010101010101013a3a01013a440
13a013a01013c3a3c243901013c243a01013a3a010101010101010101010101010101010101010
10101010000010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101014139017cf6243a
3a01013a3a013a3c0101243a240101013c0124010124010124013a3a013a3a3c0101013c3c0101
24243a010139992c01013a413c010139243a3a3a010101010139c61e6601243901010101010101
0101010101010101010101010101010101010101010101010101243a010124240124010101010
10101010101010101013a3a0101013a2424010101013a3a3a3a01010101013a01413a01010101
3a3c01440101013c013a0101010101010101010101010101010101010101010101010101010101
0101010101010101012424010101013a242401010124010101243a01013a013a3a01012424010

865

1013a013a012401013c01010101013a0101013c0101013a0101010101010101010101010101010
10101010101010000010101010101010101010101010101010101010101010101010101010101
010101010101010101010101010101010101010101010101010101010101010101013c01410174
cf0101010101010101010139010141010101410101013c413c013a013a01012401010101014401
01243a0101243901dd6ca8c23c01012401013c01010101010101010101bf16c241010101010101
01010101010101010101010101010101010101010101010101010101014101010101012bb3424
24247ac4a4a4acacacacacacacaca9647d7cd76cacaca47acd57676d5ac474a4a4742f242cad7ca4
acacaca764dacae010101240101010101010101010101010101010101010101010101010101010
101010101010101012401ceb3ca42cde7cdd5d576888876e276cad576cd76cd76cd76d5cad7d7d
54acaf6cfd7764a76cdcaac47cf9976cdcdd7d7d78ac701010101010101010101010101010101010
10101010101010000010101010101010101010101010101010101010101010101010101010101
010101010101010101010101010101010101010101010101010101010101010101013a0101017
9530144013a243a3a2424013c013939c25601010156a139660124c556014166ae91c6915666590
13ca1c501015991563ac629d01610000026060f002220574d46430100000000000100000000000
0000e00000000200000e8370100e8b70100013c0101413a0101010101010101010101621b56010
1413a0101010101010101010101010101010101010101010101010101010101010101013a0141
01013bc0afafc9f69947b3b3cccc963d4d4247b38acc474a4aac4ad5cc969942429996cc963df6cca
df299473d963d42afccb3eab2413a010101013c0101010101010101010101010101010101010101
010101010101010101010101010101431842f642423df63d47caca4a4dccc9cc9947b3acac47f653
8acc99429696455e8ac9f2424d3df2ad2b36af4796af9999eab201c2010101010101010101010101
01010101010101010101000001010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
013c2476cf24012401010101010124013c013f95d001e7bb917f78e7561ad90ab255e37957fac02d
e1b73ab826d54a01c1dba0010184fa573c01010101243a242401010101013a01bf1b774101243a0
1010101010101010101010101010101010101010101010101010101010101013c0101010141134
501010101010101013a3a3a3a3a3a3a3a3a3a013a242401010101010101010101010101240124
3a013a3c01013a3a01182f0101243a240101010101010101010101010101010101010101010101
01010101010101010101010101240f8a01243a01010101010101013a01013a0101012401013a01
013a3a01012424013c013a01013c013a0141013a01410101082a24010101010101010101010101
01010101010101010101010000010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01012401d2533a010101010101010101010144916f32396d0a014a6ab2d0ec4f32ac5f959901613
83cf9ca536cc291a8ce64b1243c012700ca240101013c2401010101010101010101a31fc23a3a01
0101010101010101010101010101010101010101010101010101010101010101010124013a010
1135001010101010101010124010139013c3a3a240141014101012401013c01013c01010101010
101010101013a01013a3a0e5e0101013a3a010101010101010101010101010101010101010101
01010101010101010101010101010101b4963a010101010101010101010124010124013a01240
101010177013a013c01c201013a3a01010101010101013a3a013a262b010101010101010101010
10101010101010101010101010100000101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
1010101012401aa53010101010101010101012444015f94626481059199fe57086724010156eacf
24a9aa019cacd31a0101b51a88b10101391e1c384441010101013c010101010101010101a31fc2
3a3a01010101010101010101010101010101010101010101010101010101010101010101013a0
13a01015150010101010101010101013a3c013a01010101440177013a01013a2401243a2401010
101010101010101012401013a010ebc0101013a3a0101010101010101010101010101010101010
1010101010101010101010101010101010101b4963a010101010101010101010101243a3a2401
390141013a0101013a010177013c01240101010101010101013a3a013a262b0101010101010101
01010101010101010101010101010101000001010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101013a013a0164af01010101010101010101013c01c669a05a67afe253005c7d16274e4e4
4739624e6cb3cfaca1643013c93aad2050101ba7084d6823a243c010101010101010101010101a
30877010101010101010101010101010101010101010101010101010101010101010101010101
013a01010101c1ad010101010101010124390101013c013c0101013901013a014101013c01013a
3a0101010101010101013a2401013a010ebe3a3a013a3a3a01010101010101010101010101010
1010101010101010101010101010101010101010101b4963a0101010101010101010101010124
013c390101012401440139010101014401013a010101010101010101013a0101092b0101010101
01010101010101010101010101010101010101000001010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101013a01013a74c90101010101010101010139010166b5aaec5cae514d00bb2b19
d1830b66fb672c6022befc25ab05c5ad92a3057b46cb26ea012ad501013c3a3c010101010101010
10101bf08770101010101010101010101010101010101010101010101010101010101010101010
101010101010101017dad0101010101010101013a3a0159010191c50124012401413cee8577014
40101010101010101010101013a24013a01010dbe243a01010101010101010101010101010101
010101010101010101010101010101010101010101010101b4963a010101010101010101013a3
a2a1108cb0fcc013c01c2014e1f0d113f2401013a24010101010101010101013a01011829010101

01010101010101010101010101010101010101010100000101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
010101010101010101013a01013a80f2010101010101010101010141415fa7c3860124e28981310
127d51ba091157620078a8608c241d7548c8a0179131c0cd37424328e770124012401010101010
101010101a3084401010101010101010101010101010101010101010101010101010101010101
0101010101010101010101095401010101010101013a013c9b4be01af6039124240185b8111e09
5852010101410101010101010101010124013a01010cbc3a3a0101010101010101010101010101
0101010101010101010101010101010101010101010101010101b4963a0101010101010101010
1013cc50d988af2e0c20101391be48a523bfa9901443901010101010101010101013a0101183001
01010101010101010101010101010101010101010101010000010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
0101010101010101010101010101010110f6010101010101010101013a390177dc98363a016e71
00283c3a410101013c0139013a0124390101ae7701013a014401013a0101590101010101010101
01010101010101a30844010101010101010101010101010101010101010101010101010101010
1010101010101013a0101013a010d5401010101010101010141013a9065b656a7f6013a4194fa3
43cc7b1a5550141010101010101010101010124013a01011f27013a01010101010101010101010
101010101010101010101010101010101010101010101010101010101b4963a01010101010101
010101240101e2a6c23ce1293a0197ed5901240138f3f50101443a0101010101010101013a01011
13001010101010101010101010101010101010101010101010100000101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101013a0101103d010101010101010101013a014129c42001240
1011470cf010139010124013a0124013a0139390101010139013c0124014101410124410101013
a01010101010101013aa308770101013a01010101010101010101010101010101010101010101
010101010101010101013a0101013a011f4c01010101010101010144010166983801b7260124c8
9828013a0124f413014401010101010101010101013a0101013a162b013a013a01010101010101
01010101010101010101010101010101010101010101010101010101010101b4963a010101010
101010101010101c2de6559011b7924dd987f3a390101ce0087392401240101010101010101013
a0101112a013a0101010101010101010101010101010101010101010100000101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
101010101010101010101010101010101010124010180993a0101010101010101012401015f590
1410124013ac2ae413a01013a3c013c240101013a010124014101013c013a24010124012424010
124240101010101010101013ac708770101013a010101010101010101010101010101010101010
101010101010101010101010124013a013a01164c0101010101010101010101019bf3e2013f6977
24835d3c24012401e6a285013a010101010101010101013a0101013a1e290101013a0101010101
010101010101010101010101010101010101010101010101010101010101010101b4963a01010
101010101010101410101cb756201ca0b3aba00724101243a859d860101c201010101010101010
1013a0101152a013a010101010101010101010101010101010101010101010000010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101b99624010101010101010101017701
0124243a0101010124013a39010124012401013c01010124010101012401013a3a01010101013c
013c01010101013c01240101c20101dd0d41010101010101010101010101010101010101010101
010101010101010101010101010101013a013a3a011d4c0101010101010101013a3c01526dd701
59f12c016c730101013a3a26008201240101010101010101013a3a2401013c0b31240101010101
01010101010101010101010101010101010101010101010101010101010101010101013ab4cc01
010101010101010101010101247cfec501dd63a32a00803c01010166efd43a24013a01010101010
101013a01013a0e28013a01010101010101010101010101010101010101010101000001010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010148cc24010101010101010101915
f5f393a0184560191a12401c25f56c677415685010166dd01013c0101390101a1663ac23c24dd59
010144bf853c01a3a1013a0101012401551f4401010101010101010101010101010101010101010
1010101010101010101010101010101013a013a3a011d4c01010101010101013c010124d1f3d74
101518701a5733a013a01011798bfa1010101010101010101013a013a013a241c3124010101010
10101010101010101010101010101010101010101010101010101010101010101013a013ab4f20
101010101010101010101243a013e98620124b0acce753b013a0101c7001b0101c201010101010
10101013a01013a26bb013a010101010101010101010101010101010101010101010000010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
101010101010101010101010101010101010101010101010101014ec93a010101010101010101c
cfd183941b1a9a1aaf7c40f3920b8910de6443b89449620281f820124c8af3aa4da0ce66f347f9729
aa77ba9cd04118d9e388010177014101521b7701013a0101010101010101010101010101010101
01010101010101010101010101010101013a013a3a011d4c01010101010101013a242477c5f8d5
41016bda390b5da141010101686f91013c01010101010101010101013a013a3a1e312401010101
0101010101010101010101010101010101010101010101010101010101010101010124013ab4f2
01013a0101010101010101014401defe564401b7c044dfda3c013a0145982541010141010101010

867

10101013a01013a26bb013a010101010101010101010101010101010101010101010000010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
101010101010101010101010101010101010101010101013a01018f5301010101010101010101a
175803aaa8d909b8119338fdd1b72014ee63c4b0d9bfa3d41c0140191f41c249a6da4a783d1fb353
a1f9601dc309a65962a7c444101410101521b77010124010101010101010101010101010101010
101010101010101010101010101010101013a013a3a011d4c010101010101010101410101c76d8
8013c625a62f6004c3a3c0182ffcb01012401010101010101010101013a013a0117312401010101
0101010101010101010101010101010101010101010101010101010101010101010124013a8ccc
3a013a01010101010101013901019798ee0101cea859beef3801242ed8d341013c3a0101010101
010101010101013a266e012401010101010101010101010101010101010101010101000001010
10101010101010101010101010101010101010101010101010101010101010101010101010101
0101010101010101010101010101010101010101010101013a0101108a0101010101010101010
166a2d74c65e701d7f9ae3a770105120143170143878e9f44014ff701b77848a33cb74c0ab15f925
23a121601fd2851180101393a01013a0101551f3901013a0101010101010101010101010101010
10101010101010101010101010101010101013a013a3a011d4c0101010101010101013a015f887
5b49101240d093c8ce39933ccc408ae01010101010101010101010101013a013a011f312401010
101010101010101010101010101010101010101010101010101010101010101010101013a0124
19f63a0101010101010101010101013326f196773c0103d501bcd3c174058c3a0101013c3a01010
101010101010101013a096e012401010101010101010101010101010101010101010101000001
01010101010101010101010101010101010101010101010101010101010101010101010101010
1010101010101010101010101010101010101010101010101013a010110530101010101010101
0101a1e886e4f9a33c31f12df61ea41d974143d4011007536c773c1aa7566f1931e2414c0269d485
5d343c0b7d447032aae635b70756013a243a01dd0d3901013a0101010101010101010101010101
01010101010101010101010101010101010101013a013a3a011d4c010101010101010124242484
e21488a377015e510101d6b4218c50390139010101010101010101010101013a013a0117312401
010101010101010101010101010101010101010101010101010101010101010101010101013a0
13a8ccc3a0101010101010101010139014191245f01243a56a14101c284a056010139012401010
1010101010101010101013a093201240101010101010101010101010101010101010101010100
00010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101018faf0101010101010
101010156ef0fee168bae24c85e7f5d6269d46b7e0b47c38e0114642c9f27e298eea389a3a72bb03
b3c6d69c1fb49016cbe9143bae41d3c2401012401c726393a01010101010101010101010101010
10101010101010101010101010101010101010101013a013a3a011d4c0101010101010101013c3
c0144012401014101013a013a01014401017701012401010101010101010101013a013a0116312
40101010101010101010101010101010101010101010101010101010101010101010101010101
24010197c901013a01010101010101013a0124010141440101013a013a014101013a3a01010139
0101010101010101010101013a093201240101010101010101010101010101010101010101010
10000010101010101010101010101010101010101010101010101010101010101010101010101
010101010101010101010101010101010101010101010101010101010101010106c90101010101
010101010156a2c80152f3d62441356b620128552fafae3f53a10156bc9ab2245ef2665f4c44ce5e9
a56c5f950ca5e018570be39912f259101440141013aa30939240101010101010101010101010101
010101010101010101010101010101010101010101013a013a3a011d4c01010101010101013c01
013901c201243a410124013c012401013a24013c410101010101010101010101013a013a011b31
24010101010101010101010101010101010101010101010101010101010101010101010101010
13c010167af010124010101010101010101410101013a01413c41013c013901443a013c01243a0
10101010101010101010101013a18320124010101010101010101010101010101010101010101
01000001010101010101010101010101010101010101010101010101010101010101010101010
101010101010101010101010101010101010101010101010101010101013a013a8f6b013a01013
c010101013a34fe72c77d8b0201010101013a3a01013a3a3a3a01010101013a3a3a3a3a0101013
c3a3a012eef9b013c01ee7bbe01410101013a3a01010101d17fc201410101010101010101010101
010101010101010101010101010101010101010101010101243a013c240c540101010101013a3a
3a3a01010101010101390101013a01013a3a3a3a3a3a3a013c3a0101013a01013a014401012401
206e010101013a013a01010101010101010101010101010101010101010101010101010101010
10101012401585324240101013a01013a3a01243a242401243c010124243c3a0101242401013a0
10101242401013c01013a013a01013a0e2d3c01010101010101010101010101010101010101010
10101000001010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010124242441ded641013
a013a0101240101bc48ca96d03101c201413c01010101242424243a3a3a013a010101010101010
139010101018267623a3a3cc7192e410101013a3a0101013a249b7f44010101240101010101010
1010101010101010101010101010101010101010101010101012401010101011e250101010101
01010101013a3a3a3a010101240101013a24013a3a01010101013a01010101010101012401013c
0101241fb23a010101010101010101010101010101010101010101010101010101010101010101
01010101010101018caf0101390101013a3a3a3a2401010101013a3a0141240101013a01010101
010101010101013c3c0101013a3c01393a012632013a0101010101010101010101010101010101
01010101010000010101010101010101010101010101010101010101010101010101010101010

101010101010101010101010101010101010101010101010101010101010101010101013a64d6
41013c010101012401010141013c010124013a010101243c3a0101010101010101010101010101
010101014141013c012401390101015601013c013a3a3a0101012401c509413c01240101010101
010101010101010101010101010101010101010101010101010101013a0101247701052524243
a3a010101010101010101010101013c013c0101010101010101010101013a3a24243a0101013a0
1013a013c3c1b28010101013a24010101010101010101010101010101010101010101010101010
10101010101010101013a8ccf3a01013a01013a3a0101013a013a0101243c01013a4141243a013
a0124240101243a01243a010124243a013a01010118f5013c01010101010101010101010101010
10101010101010100000101010101010101010101010101010101010101010101010101010101
010101010101010101010101010101010101010101010101010101010101010101010101243a3
94ead01393a0124013a24010124010101770101243c012441010101243a0101013a3a010124013
a2401013a01240101012401013a0101014401442401243a01010101010144bf163c01010144010
1010101010101010101010101010101010101010101010101010101010101013a3a010101bd9a
3a0101010101010101010101013a24240124013c013a014101013a2424243a010101013a01013a
24013c413c24010105bb010101013a410101010101010101010101010101010101010101010101
010101010101010101013c013a8ccf0139243a01013a3a010101243a3a01013a24013c01013c01
010101013a3c24010101010101242424010124240124010c357701010101010101010101010101
01010101010101010101000001010101010101010101010101010101010101010101010101010
1010101010101010101010101010101010101010101010101010101010101010101010101013c0
10124064a3ac239395644413941775fae775641a1565f415f3c014491c24156c277c25656c277444
1447741397739445f91ae412441013ac23c7701392424773c3a243977393c016e09013a4401010
101010101010101010101010101010101010101010101010101010101010101243a01010144d4
6b0101013a3a242424242424243a010101010101010101242401010101013a3a3a2424243a010
101013c3c010101015904353c013a0101240101010101010101010101010101010101010101010
10101010101010101010101013a0197ac0101413a3c3a01014477413c3a24243a4144242424553
339243a010101013a3c0101243a410101c23c0124010101240c823c3c010101010101010101010
1010101010101010101010100000101010101010101010101010101010101010101010
A possible physical memory map of CPU 1 in Figure 15.1 is illustrated in Figure 15.2.
01000900000318ce0100000061d0000000001610000026060f002220574d464301000000000001
00628e00000000100000000020000044d8010044f80100010000006c0000000000000000000000
d20100008f01000000000000000000006a4000001337000020454d460000010044f801000c00000
0010000000000000000000000000000000005000020030000c40100001a0100000000000000000
00000000000e3e306006e4e0400460000002c00000020000000454d462b014001001c000000100
000000210c0db01000000600000006000000046000000e8550000dc550000454d462b224004000
c000000000000001e4009000c00000000000000244001000c00000000000000304002001000000
0040000000000803f214007000c000000000000000840000534550000285500000210c0db01000
0000000000000000000000000000000000001000000ffd8ffe000104a4649460001020100480048
0000ffed0e0450686f746f73686f7020332e30003842494d03ed0000000000100048000000010001
00480000000100013842494d040d000000000004000000783842494d03f3000000000008000000
00000000003842494d040a00000000000100003842494d271000000000000a000100000000000
000013842494d03f5000000000048002f66660001006c66660006000000000001002f6666000100
a1999a0006000000000001003200000001005a00000006000000000001003500000001002d000
000060000000000013842494d03f80000000000700000ffffffffffffffffffffffffffffffffffffffffffff03e80000000
0ffffffffffffffffffffffffffffffffffffffffffff03e800000000ffffffffffffffffffffffffffffffffffffffffffff03e800000000ffffffffffffffffff
ffffffffffffffffffffffffff03e800003842494d040800000000001000000001000002400000024000000000
3842494d0414000000000004000000023842494d040c000000000c740000000100000070000000
600000015000007e0000000c5800180001ffd8ffe000104a46494600010201004800480000ffee000
e41646f626500648000000001ffdb0084000c08080809080c09090c110b0a0b11150f0c0c0f15181
31315131318110c0c0c0c0c0c110c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c
0c010d0b0b0d0e0d100e0e10140e0e0e14140e0e0e0e14110c0c0c0c0c11110c0c0c0c0c0c110c0
c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0cffc0001108006000700301220002
1101031101ffdd00040007ffc4013f00000105010101010101000000000000000300010204050607
08090a0b0100010501010101010100000000000000010002030405060708090a0b10000104010
30204020507060805030c33010002110304211231054151611322718132061491a1b1422324155
2c16233347282d14307259253f0e1f163733516a2b283264493546445c2a3743617d255e265f2b3
84c3d375e3f3462794a485b495c4d4e4f4a5b5c5d5e5f55666768696a6b6c6d6e6f6374757677787
97a7b7c7d7e7f71100020201020404030405060707060535010002110321311204415161712213
0532819114a1b14223c152d1f0332462e1728292435315637334f1250616a2b283072635c2d2449
354a317644555367465e2f2b384c3d375e3f34694a485b495c4d4e4f4a5b5c5d5e5f55666768696a
6b6c6d6e6f62737475767778797a7b7c7ffda000c03010002110311003f00ebedc1fac7838ccf42c6

869

dbe9d62960690e7b779c1dfe9bfecbea36967a19dfe9bf9dc7f52af67ead72ac1eb74e2e6368b5adb
2f97e335ef6fe8defb6eb6d2e7371ad6b7753655ea7f4867afea7a5e933f4ab692494f376f4afacb7d4
e17d98efb6ea063e4bdb63d81e365bee606e3fe83d3beefccfe91ff75bf9847ab0beb43092ecd63ff4
60b7716b9bea1b375ac7b2bc5c77fa5f676b7d0b2bbea7d5ea59ea557fb2e5ba924a6a74faf3ebae
d19f632d79b5c6a733fd198f4daf1b59fa467d07edfe73f9efd0fa9f67a4765b9f6f50b71b1edae9ae9a
aa7fbab36126c75cd3afab57b7f42dfcd57d670c9c7a7ac650bad6564d18f1bdc1b3eecafde292927
a1d5ffee5d3ff006c1ffde941c97752c6635f76752d6bdeca9a7eccf3eeb1c2bae76641dbb9eefa4adf
dbf07fee4d5fe7b7fbd0335fd2f369145d9558af7b1e436c67bb63859e9bb76efd1bf6ecb125348754
b1d8d76537a9e3fa18f50c8b5ff65b34a5c1cfaf240fb46e7e3bdb55bb2e67e8dfe959fb88b5e4e659
9376233a9633afc6159b99f6777b45bb8d3b8fdab6fe93d351c7c2e8f456fafeda2d0fc7ab0e6cb2b7
91555bf6b7dcddae759eabfd77d9fcf2ac3a07d5c0fadcdca115b1b5b6b75953d85acdfe96e65ccb3
7beadd5b6ab7f9ea598f4329b19fa4f5129d069ea4e04b7a8e2b80892282793b5bff6aff39c1268ea8
f716b3a862b9cd3b5c05049075f69fd6ff92a855d0beafd4dadaccad2a32d1ea5627f57674c735fb1a
dddbb16bffb73f488dd3ba7749e9d7b1f464d7e9535bd8c06c6ee71b6db325efbf6ecaecf47d47b71
5fb7d4afed197fe9925373d0eb5ff7328ffd8677fef5267d5d658c73ce65076827fa33bb7fe85ab3f6ec
2ffb9157f9edfef50bf370cd3646455f45df9edf0f8a4a7fffd0f554924925292492494a546900f58cb91
3fa0c7ffaacb579666ec96f59cbf42b65938f8f3b9e59f9d97e15da929d1d8cfdd1f72e587d62ea5464
edc8c6aefa19b8dcea6b7c6d3663d55598b77e93d67b2bc9df9587753464d0fa6efa75fa16dbd07a
dd4ffee355ff006f1ffd2097add4ff00ee355ff6f1ff00d20929c867d657d99029afa7820fa6df50bf6b3d4
b1f96cad9bdf4ecd8faf037d5659e9efb333068f4ff005853fdb393774fc8ccc7a2b0f65f50a31ec6b83
dd5b9945b7e3bdad1b9b9fefcaa5b5edfd0e533d1b37fe916a7add4ff00ee2d5ff6f1ff00d2097add4ff
ee2d5ff006f1ffd20929c6abeb0e507650b70eb79aadb8d4d1baa77a2ca6ac9a439b6b2c7dd93bef6
d794dad8cfb37fa3fd0bd2ff009d2f6faa1fd2ec73e91b8b6a97ef1ea3b176d05d555ea5dbabb323d3f
67ea7fac7fa4aebd9f5ba9ffdc5abfede3ffa412f5ba9ff00dc5abfede3ff00a412535ba5751b736c7559
188cc77b6aaeff006bfd469aee1fabb9af34d3ee73ebcbaec67f82fb3fee6456af5f5b05167b47d0776
1e0abb3edd5bac75785431d6bb7da5b6c173a1b5efb231fdeff004ebad9fd462575bd48d36038d54
6d74fe98f87fc424a7fffd1f554924925292492494a5468ff0096733fe231ff00eab2d5e5429701d6732
481fa0c6e7fad96929155f58fa63edbeb7bcd3f667399639fb6016d966341f4dd63abf51d4baca7d5f
4fd5a3f4b5ff86f4cc3ae748758ea9b975bac66e9634c9f69f4dc1ad6fd377a9fa3f67f84fd1a1bba274
673fd4f4e2cdeeb058db5ed7ee758ecbddea32c6bfdb7dd7fa7fe8aac9cac7abf57cac8aad89e83d1
1ce0e356ad32d22db06d3bdf901ec8b3d8f65d759656f67f37f9892938eb3d2dd57accc9adf5ef158
735c0b4bdc1ae6337fd0fd27ab57a7eeff0b5aaf8ff00597a4df55770b7d3aadad966eb21bb4bf6eda
2df76eaefdb631fb3fd17e97f9b53b3a1f45b2a151a1adac1afdac7b993e8b7d1a059e9bd9eab6aafd
9b6c4cde83d1dbe9ecacb0d25a6b7b2db1ae1b07a6cfd232c6bff009a1e87fe17fd07f329296ccfac1
89876e4d575576ec538e0ed6887fda5fe856ea25e37fa2ffe93fe859ef463d73a3b62732912e7307b
c7d26497b7fcd6eefea2593d27a6653dd66457ea3dfa176f7031343dcc66d7fb2b7bb0b17d4ad9ec
b3d2fd27f84431d07a40aebac56ed94c8a87ab6fb0116b3657fa5f656c6645d5d55b7d94d7fa3abf3
125257f5ae92c716bf2ab0e1a96eed768d0d91fe89aeff0dfcd23d9632cc6b1ec3b9a5ae00fc25aa93
ba074b1bdd8f58a6d7d4fc7f5012e8aac77a9651b1eed9e8efdde955fcdd1bdfe8ecdeae3abaeac43
5562195d65ac6cf01addad1aa4a7ffd2f554924925292492494a5967070b2bad651cac7aaf2dc7c70
d3631af206ecbe3782b5151a3fe59ccff0088c7ff00aacb494cbf63747ffb838fff006d33ff002290e8dd
1c71838fff006d33ff0022ae24929a7fb1ba47fdc1c7d3fe099ff914ff00b23a4ffdc2c7ff00b699ff00915
2ceea38980dadf94ff4c5ae73590d73a4b2bb729ff403be8d18f759fd8d9fce6c50bbabf4ea1b73acb
606363fdaed86b89141dffa501ad3bff9a7fe8ebfd2ff00db95a4a5ff006474affb858fa7fc133ff2297ec
9e95ff70b1ffeda67fe453e3f52c1cacabf131ed165f8cdadf735a0c06dc1cfa1dea47a6ff51b5bbe83d
5a494d5fd95d2ff00ee1d1ff6d33ff22a1774ce9ada6c2312810d3fe0d9e1fd55750eff00e62cfeabbf2
24a7fffd3f554924925292492494a5468ff0096b33fe231bfeab2d5e5428ff96b33fe231bfeab2d2537
d2492494d2ea9d230baab29af35a5f5d161b5ac06017165947bbf3bd8dbdcfaf67bebbbd3babf7d68
07a0639b9993f68c8fb4d7ea0f5f7b4b9cdb595536d7602cf49d5fead459b3d3fe76bf516a24929a3d
3fa360f4db1efc36bab6baaae86d45c4b195d2ebeda9956ef737df9777e77ee56cfd1d6af24924a52
1dff00cc59fd577e44443bff0098b3faaefc8929ffd4f554966f52bba9d39d8cec5add6e31aac6de0005
ad73adc3655739ba5af7534bb2ecf4ab77e919ea7fc1a874fceeb975fb33ba70c5abd30f3636d6bfdf
0d7ba96b47bbfc2b6af53fd2e3657f83fb3fa894eaa4b9cfdabf58adb319e7a7d94b2bb5aebdad83ea
54f664b6cdcd7fba97623becb7fa5fce645bfa0a2cfa689839dd7d94d5564e39b1f1b4dcf6105ce6b6
97fe97d1f6d3eb3adbfdfe97a5faa7efdd524a77d66b2a6d9d673371708a31be8b9cdfcecbfdc2d52e
979bd4b28bfedb8671035ac2df7074b883eb57fd87ff003767f85abfd15bea535aa9ec6759ccdce0df
d0637263f3b2d25367ec95fefdbff6e3ff00f2697d92bfdfb7fedc7ffe494fd7a7fd237ef097af4ffa46fde1
2520b5b8746df5af755be4337dce6c90373b6ee7feea8b9dd3d9b83f2b69610d74de4417115b1aef
7fd27d8f6b3faeaa75de974f58663b3ed4ca463b9efd5a1fb8beab31f6387a95b7d2fd37e9ea7eff00b
453be8ff08a9bbeac6158d657664b1f4d6329adadc265b9b7d79995ea3bd4dcf756eaff00557ff83b3
d3c9b7d7baa494edb2ac67b9ec65ae73aa21b6345ae25ae21b606bc6ff63bd37b1ffd453fb333f7ac
ff00b71fff0092547a3e10e9c327d5cc6e55995632eb2d2d0c71b0534635cf7ed7b99fa6b31bd6f636
b653ea7a0cfd1d4b47d6a7fd237ef09298fd999fbd67f9efff00c9285d4305361dcfd1aefcf7787f5917
d6a7f7dbf7843c8b6a3459ef6fd07771e0929fffd93842494d0406000000000007000500000001010
0ffee000e41646f626500644000000001ffdb0084000403030303030403030406040304060705040

40507080606070606080a0809090909080a0a0c0c0c0c0c0a0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c
0c0c0c0c0c0c010405050807080f0a0a0f140e0e0e14140e0e0e0e14110c0c0c0c0c11110c0c0c0c
0c0c110c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0cffc0001108012c015e03
011100021101031101ffdd0004002cffc401a2000000070101010101000000000000000004050302
0601000708090a0b0100020203010101010100000000000000010002030405060708090a0b100
0020103030204020607030402060273010203110400052112314151061361227181143291a107
15b14223c152d1e1331662f0247282f12543345392a2b26373c235442793a3b33617546474c3d2e
2082683090a181984944546a4b456d355281af2e3f3c4d4e4f465758595a5b5c5d5e5f566768696a
6b6c6d6e6f637475767778797a7b7c7d7e7f738485868788898a8b8c8d8e8f82939495969798999
a9b9c9d9e9f92a3a4a5a6a7a8a9aaabacadaeafa110002020102030505040506040803036d01000
21103042112314105511361220671819132a1b1f014c1d1e1234215526272f13324344382169253
25a263b2c20773d235e2448317549308090a18192636451a2764745537f2a3b3c32829d3e3f3849
4a4b4c4d4e4f465758595a5b5c5d5e5f5465666768696a6b6c6d6e6f6475767778797a7b7c7d7e7f
738485868788898a8b8c8d8e8f839495969798999a9b9c9d9e9f92a3a4a5a6a7a8a9aaabacadaea
faffda000c03010002110311003f00ea9f93ff009a9a4fe5e681f9af3ebb06bbaae95e5cf3bebdf5bbe8
a1b9d53ea5a743245146659e772cc1154960ad23a20f51c01be2af44f3b7993f2bf50f3dfe536a5ad
5deadfa6b52965b8f22cb61f5a8b4eb96bf810b7d64a718dbf77c5b849f1286e9c59b15657abfe6d7
95b4ad53cc9a2c11de6aba8f93ece1d4bccf0e9b07ae6c6dee637962e7565e4ef1c6ce228f9c9c37e
3bad55791fe6f79f7cbfaee9ff931f99da55c6a96fa05df9c74f58d8c77b0fd6ac27b4ba994fd45379bd
4648cc47d267fe5fb4d8abd97cabf997a179afcc1ab79521b5bfd2fcc9a2c36f7779a66ab6cd6b335a
5df2114f16ecaf196465255be161c5a871546f9cfcf9e5bf21c1a54de61b868a4d7352b6d1347b689
0c935cea37ac5628500d813424b3154503e26c550561f9a1e4fbdb7f35dc4f76da77f822468bcd11d
ea189acf8c0b721988e4acad130656466af4fb5b62af1efcddd75b50fccbfc8dd42dadf5bd29f52f308
4682e9e6b6b49ad05acb2525b6499a312866523d58d65e3c97f6595557a1fe6079ef42d47cb5f981
e5fd2cea37977e5cd3674d6aef47f5626b2b97b537091acf13c6e65542b232c05d90101be26e38ab
ce3f257f387cafe44fc8efca3b6f39dddebea9e6c83ea5a64c96f71786e2f1a79288d2286f8d8900027
9357157ade97f9afa16b09630d9e9bab2ebba825e4d0f97ae6c9ad3534b7d3a716d3cf2c570d188e
31232a2bbb0f50b7eef97c54556f97ff393c89e68f2e5b799745bd927b5bad4ce811d9b44d15e0d59
5cab5abc52712b22d0b1a9e3c3e3e5c71546b7e6579762b7d4e6bb4bab4b8d2b55b7f2fcd657117
0b89751be581ade284722b27aa2e622ac1b8ee7911c5a8aa6ba279a74fd7750d5f498229edf51d0
e58a0d42dae6311b29b885678d9482c19195b6653f6832f5538aa798abb15762aec55d8abb15762
aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb15762aec
55d8abb157fffd0ea1a069badc7f929ff00390ba4cba2ea91ea9af6b9e709f43b16d3eed66bd835787
d3b392dd0c7c9d65634040f87f6b88c55bf32695addd5cffce30fa1a2ea720f2dbc12f985d6c2e8ad8
2c7a7c36cdf593e9feecfa8a568dfca4fd9c55bd7756d3bcb3f9edf99f71616be64b14f30697a6e99af
5cd8e8375e63d3a6bb1683d2ba8dac89fabbc50b88bd29437a8c5a4e0ab4f5154cbcd11f9724f29fe
45da7e5bda6a7a9f94fcade6bd31a468f4fbe7b9b5d3f4db3bab3925bb8da059232af227a9ea2237c
5cc2f1c559a69ab74fff00393fad6aa2c6f574793c9d61a545a93d9dc259bdf5bea37773242b3b4623
2cb1ca8db377a7518aabfe7ceb9e6cd1e0f2847e5fd0ae753d22f35b823f316ada6d836aba8e9564
06f716b022bb2c8d529ebaa398455954bf1c55e03a8f90bce1e60b1ff9c84f2e796f40d6ece7d72e7
42d73cb035682f11754b7d2042f343f5ab9e55926319511c927abf17c68b4750abd17f313ce379e7
cd6ff0027b5ad17c9de6955d23cc71eabaf433e897b03e9f10b39a16494c91a8621a51bc5ea21556f
8fecf2552ff240f337e5cd87e74790fcd1e5cd62eaf35cd5f5ad7fcb1aae9da7dd6a106a906b30d1231
3411b224d1f1556595d3ad06c98ab0cd0741f33d8f923fe7192cef7cb5ad5bddf9535a797cc56efa65
db49650fc6beaccab1b71425c518f6dff0064e2af4bfcc1d36fbcabff0039056bf983aef95eff00cd9f97
be61f2f45a1cd3e99612eab3e917d6774f3a33dbc0af27a32890d5950fc7feae2a986b3e5df2b799b
c923424fcbbbef29f947cc5afc616eb4db6fd1bad5acb1dbbcd1eb661b589e481c5c451c21a5a49e9
b739b8a37a78aa43a668fe6eb8f24ebff979f9a163a9f9cfca71f982c349d0fce51dbcb69ae3d83c292
aea6dc11e432584c1105d71fde702d56e3f12acdff22ac3f303cbfa8f9b7ca3e68bcbaf30f957457b08
fca7e72d56dcdbea7a8432c0cf3433b300d37d55b8a2ce47c7c9857e1a2aaf67c55d8ab02fce3799
7c8ef1437135afd6b54d12ce696d6792d66f42eb57b4865449626475e68ec9f0b03f162ad9fca0f26
33722facf5ad3fc41adf1f0e9f5da62ad7fca9ef26f4f575ba787f88b5ba74a7fcb6e2ae1f93fe4d0bc7d
6d708ef5f316b9bfcffd37156dbf283c9ec4133eb808046de62d7075f95ee2ab4fe4e7934ffbbf5de84
7fca47ae77ffa3dc556ff00ca9af277fcb57983c3fe525d77dbfe5fbdb1577fca9af27d00fadf9868294ff
9d9b5eec6bff2dd8ab8fe4d793cb16fae79881229b799f5e14a9aedfe9d8ab97f26fca0a41179e61a8
f1f336bc6b5f1ff004edf1569bf267ca0c29f5ef31814a1a799f5f15f9ffa76f8ab4df933e506ff008fef318
a7f2f9a35f1faafb1570fc99f28835faff9909f7f346be7f5df62adafe4d79415830bef319a6f43e67d7c8f
a41bec55aff9533e51a53f487997ff000a9f307fd97e2aeff9533e51ff00ab87997ff0a9f307fd97e2aeff
009531e51ffab87997ff000a9f307fd97e2ae1f933e521ff004b0f32ff00e153e60ffb2fc55dff002a67ca
5ff570f32ffe153e60ff00b2fc55dff2a67ca5ff00570f32ff00e153e60ffb2fc55dff002a67ca5ff570f32ffe
153e60ff00b2fc55dff2a67ca5ff00570f32ff00e153e60ffb2fc55dff002a67ca3ff571f32ffe153e60ff00b
2fc55dff2a67ca3ff00571f32ff00e153e60ffb2fc55dff002a67ca5ff570f32ffe153e60ff00b2fc55bff953
5e52a01fa47ccb41ff007f4ebfff0065d8ab7ff2a6fca7ff00571f32ec6bff002946bfff0065d8aa4dad7e5

871

6797ecf53f2e416dab799238b50d464b7bc43e66d75bd48974fbcb80a2b7a69492246aaf1fb34fb24
82abffd1f7f62aec55e4d37e50f9aec7cc9aceafe4efcc9d57cbda3ebf78da96a3a20b2d3b508d6ee6
08b2bdbcd7703c91f20828a79aaf61c68b8abd2747d220d16cc5a4334f72e58c93dd5dc866b89a52
002f239ee4002802aa8f85555453154c315762aec55d8abb15762aea62aec55d8abb15762aec55e
7ff009cc40f265b72e875ff002d8e95ebaed8e2af40c55d8abb15762aec55d8aa8dd2dd35b4cb64f1c
7785184124ca648d64a7c25d5590b283d4065f9e2af15fcacfce2f32f99ecbf3075ff003d7e88d2bcbb
f97dac6aba15f4d64b71ce53a3aa3c973ce6938a2156d938b37f943f69547793bce1f9b3f9a3e5ab2
f3e79661d23ca7e5ed523373a2695ae5adcea37f756a49f4a6b892daead92dc4a0724545b8a232b
16afc38aa75f955f9ad1fe61dc7997cbda969cda379d7c977a34bf326985fd587d560c639eda4a297
8260acd196557a7da5c558fff00ce457e6bf9d7f27b41d2bcc7e55d1ad3cc515e5efd4ae749944cb7
7c52d6e2f259a278da842456cc4a14afed57f67157a5f973cdfa079a3ca5a7f9df4bbc46f2eea3649a
94576cca152064f51bd435a294150e3f659581e98abcbbf243f37fce9f9afe60f3843ab68d65a068be
59bf4b286d4b4b3ea334773119e17918308d0fa6d1960037c4597e1a62af648752d3ae6e65b2b7b
b865bc8379ede3911a58c569f120351bedb8c5564fac6936caef737f6f0a44eb0c8d24d1a0595c555
09245188e8315543a8582ddae9ed7510bf75f512d4c8beb326ff00104af2236eb4c55abcd4f4ed3ca
0bfbc82d4c95f4c4f2a45ca94069c88ad2a3155692782254796454591951199800cce68a057a927a
62a841ae68a59506a36a5dc908bebc7562095200e5bee29f3c5512b776af70f6893c6d77180d240
1d4c8aa7a12a0d40c555b15762aec55d8abb15762ac67ccf4fd39e4bdc8ff73135078ffb87d47157ff
d2f7f62aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb15605f9c269e4d88f1
2d4d6fcbbd36a7fb9bb2dcfb0c559ee2aec55d8abb15762aec55d8abe36f27796354f3bfe507fce4e7
94b445126b37de77f342d9c3de49944122c63ddca701ee7157be7fce3d799f4bf35fe4b792aff4b95
5fea9a4da6997f0aecd6f7da7c296f710ba9dd591d0ec7f668dd1862af37fc8c8dbccbff390df9e3f98f
a5bc8fe559ee34bf2fd95c807eaf7579a55b086e9a36e8c2278f88236a498abd03f38beaa75ff00ca8
8eef8fa3379bd602ae2aae65d17544e1d0fdaad315786f90b47d4741d7fccbff386e4cabe5b82fd75c
b0d428c59fc937cc6e6eed5a4dbe369992d19a9f1acf37f262a88d2f5bf30796ec7fe72c35af28861e
62d375192e34f6880692264d3bfbd453504c6a0ba8a755e98aa73e55f21f9775cd07f2a3f34e3fcc0
8acadb47fa9c9a3cf61616f6f757f25f2471cf61732079259de660c9329065f53d476f8ead8aa5de55f
cb8f225e6b7ff0039216379e5db19ec6c2f00b0b4960492dedccba324ccf0c4c0a46e5fe2e6803ff95
8aa5361a4e9507e44fe4479fedad54f9de4f30f94d66f313067d4a45bcb95b3b88dee1c991a392226
23196f4f851556817157a37e54093ce5f9b1f9e7a67e61da43a85f596a167a55958de46258e3f2dcf
04ad6d1c6920a08e71ca49388a49254b568315785eb1a3fd6bf2f7f2db46d5217b9d0b41fce83e57f
296a324aed34de5b4bcb88d156606a539466256afd98578f4c55ee5f9d5f959a6791bc9fa57e607e
52f96eced3cc1f96da9cbe66b7d36da308b716170acbaadb22ee144b112e1546cd18f4c72c559efe
546ab69e7bb8d73f35ace051a57985e0b1f2d5d345e9dc4da2e9aac1247e4030125cc972e80ffbaf
d338abd3315762aec55d8abb15762ac7bcc60fe98f28d29b6ad2d6b4ff00ab4ea1d2b8abffd3f7f62a
ec55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb15605f9c42be4b8d680d75bf2
f021ba6fadd962acf715762aec55d8abb15762aa73c115cc325bccbca1954a48b522aac2846dbe2a
90f97fc85e4cf2a5d5d5ef96743b3d26eaf5da5bd96ce210b4f2b9ab3cbc69cd8ff003355b1542ea1f9
67e44d4aee6beb9d1204bab990cd76f6c5ed05c4adf69e75b768c4ac69bb48189c5590697a4e97a
1d841a568b65069da65b2f0b7b2b489208235ad6889180a3735d862a96ebfe4bf2af9aae2caebcc5
a541a95c69b22dc69f25c29636f32569247bfc2e391f887c5be2a989d1f4a3a93eb1f5283f4bc96e2c
5efc46a2e4daab99043ead39700cc5b8d69c8d71548745fcb3f21797353b9d61610000026060f002
220574d46430100000000000100000000000000100000000020000044b8010044f80100b42d02d
34fd56fabf5fbab7528f72583026720fef4d19b79391df1543797ff0028bf2c3ca9ad5c798bcb7e53d3
34bd6ae5da592f2d6da38dd6470559a3005232c090c630bcbf6b154459fe59790f4f3abb59687040
dafa94d6d90c81af01a54ce7955cd052adbf1f87ece2aa12fe52fe5c4da2d8f9724f2e5a1d034b97eb
3a6e9a1596dade6a860f146182a3295054a8f80fd9a62a986a7e42f286b1756d7fa8e9514ba85ac4
b6f15ea978ae4c0bd22796365778ff00c87665f6c550dad7e58fe5ff00986cb4bd3757f2f59dc69da2
37aba3d988fd382d251d248638caaa3afecba8e4bfb271548bcffa87e695a5f697e54fcbdf2b5adfe8
baadacb6d7de6abed41634d21e811247b575792e6884b0556f8dfe17641f162ace742d1ecfcbda2e
9da0e9c822b0d32da1b3b58d5428115ba08d400361b0c5530c55d8abb15762aec55d8ab1cf3293f
a6bc9d4e87589abf2fd11a8e2afffd4f7f62aec55d8abb15762aec55d8abb15762aec55d8abb15762
aec55d8abb15601f9c8bcbc9900e3cbfdcf796f6a57fe97b658ab3fc55d8abb15762aec55d8abb157
62aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8ab1af333f1
d6fc98bc88e7ac4c283a1a68fa89a1fbab8abfffd5f7f62aec55d8abb15762aec55d8abb15762aec55
d8abb15762aec55d8abb1579afe7c69b69ac7e5dbe97a8076b1bbd63cbf0dcac723c2c627d6ec95
809232aebb1fb4a430ec71569ff00213f2d5c9636baa02dd4aebdad0e9d3a5ee2ab97f223f2dd4d7e
adaa1a9e8daf6b4453c37bde9b5698aaf3f919f9764d7d0d547cb5ed680ffa8defdf155a7f22bf2f0d2
91eb000dc01e60d6c50f88a5ef5c5569fc87fcbc2dccaeb45f907e7fe22d72bc8106b5faef88ae2ab0
7e41fe5d81c54eb8abfca3cc9ae81b1af4faf62adbfe42fe5ebb0666d77986e61879975e0797fd2762
ad8fc86fcbe15f8f5ddc50ffcecbaf78d7fe5bb156c7e44f908387f5b5f2c2b427ccdaf1ebd7fe3fb156d
3f22fc8512f18e5d7d69d08f32ebd5aee6b5faf75df155bff2a27c87c42fafe60a00147fcecfaff41523fe
3fbb57155cbf917e455208b8f30d4540ff009d9f5fdabd7fe3fb15687e4579102f0171e610bdc0f33ebf
bef5dffd3b156ffe546791a847d67cc5bee7fe767d7faffd2762adb7e477921a85aebcc469403fe767d
7fb74ff008fef7c5570fc91f25862df5cf31f226a4ff8a35fdcf5ff0096ec5572fe4af9397905bef3200d5e

43fc51afef5ffa3ec55bff00952de4f35ff4ef326fb7fca51aff00fd9762aeff00952de4fad7ebfe65af4ff94
a7cc1ff0065f8abbfe54bf93fa7d7fccbbf5ff9da7cc1ff0065f8aad5fc93f26a9aadf79901ff00c0a35fff00
b2ec5577fca97f285797d7fccbcba57fc53e60affd47e2aeff00952fe503b9bff329ff00c1a7cc1ff65f8a
bbfe54b793c1e5f5ff0032d7c7fc53e60ffb2fc55bff009533e52ffab8f997ff000a9f307fd97e2aeff9531
e51ebfa43ccb5ff00c0a7cc1ff65f8ab1ff0030fe4ff94e2d63ca68b7fe61227d565898c9e66d75d828d
2afdeb196bd251aa807242adc792d78b32955ffd6f7f62aec55d8abb15762aec55d8abb15762aec5
5d8abb15762aec55d8abb15601f9cb5ff000547415ff737e5daef4dbf4e5954e2acff0015762aec55d
8abb157cf3f95ff0099de7bfce5b0f366b1e5ed7f4dd13cc3e5fd4b50d2adbc9d7167f588e216ac52dd
ef9cc89704c87ed3c26345e9c1995aaaa23ccbf999f98be57ff951d6baf3dae99a979bae62b3f3ddbc
d020f4e68ac7d7b911b972b1aac81b715f87f6b157b07963cefe4ef3a59dc6a1e51d7ac35cb1b494c
17571a75cc5731c52a8a95768d88069befdb1553d17cfbe49f31dfbe97a0f9834fd47518d0cc6dad6
e639646894856910293cd013c4bad5797c35ae2aa3ff002b27f2f7ebf6fa50f35692da9dddeb6976b
66b7d6ed3497e8aaed6e881c93228752c83e25e4b5fb4315564f3ef925fcc7fe104f30e9e7cd15651
a40b98beb65a30199447cb91655219947c4abb914c554fcd1e76f2bf9758699a9f98f4ed1759b988
cb6897d2c7c8272e025689a48cf0e5f0f22cabcbe1e55c558f7e4279cf5bfcc2fca1f2b79d3cc6f1beb
7ac5b493ddb411fa31f213c88bc50134f8547738abcebf337f3d7cdff0095bf9dfe58f2bea56f6b7df95
dae2d9c3aaea42de48eeb4dbbd567b9b7b5acab2943196b7a92d1fd91277e38abd37f383cfba8f90
7c9d3df7976d23d4bce37c5ad7cbba6cfcbd19ae9227b891e52a5488a182296794f25f823e21b932
e2a977e4bfe60ea9e6efc9ed0ff0032bcf977616336ab6ada85dbc4bf53b2b587d47500b4d2c9b055
04b33e2acbf47f3e7927cc1a75e6b1a1f98b4dd434ad398c7a85e5b5dc32436cea391133ab111903
7f8e98aa8dafe647e5ededfe9ba5d9f9af48b8d4b598bd7d22ce2bfb779aee1dcf38115c991763ba8
3d0e2a89f2ff9dbc9de6c9efadbcafafe9dad5c698eb1ea3169d750dd35bbb56824113371af134af86
2ab4f9efc94badaf968f9874e1e60794db26986ea1fac9b80bccc413954c817e229f6f8fc54a62aa9a
c79d3ca1e5efad7e9ed7f4ed30d8dbfd72f16f2ee181a1b6e6b17ab207605539b2a723b7260bd715
53d27cf7e4ad7b54b8d0f44f30e9da8eb3689eb5d69f69770cf73147b7c6f1a316553c85091df1547
687e62d07ccd68fa8797753b5d56c6395eda4b9b2992e2359e2d9e32d192032d7e25ea3154cb15
762aec558d799ca8d6fc980f53accc177037fd0fa8f8f5dbc3157fffd7f7f62aec55d8abb15762aec55d
8abb15762aec55d8abb15762aec55d8abb1579f7e73827c95091fb3aef97188f1035cb227157a0e2
aec55d8abb155b212a8ccabcd802428d8923b62af933f33fca7f96be78f246a1ff00391df951e648bc
91f987a5584da94daf697711dbfad3c71f396cb53894f1695997d23c8733271e5eaad171542f9db59
bbf3e5aff00ce2e6adf98165026abae6ad15ceafa7dcc6238a4964b2dc9864e81d8a9e0453e3098a
a6136afe5ff0027fe7e7e7c5ddedb16f2edbf9234fd4357d2b4ff00dd49722de09030558ca91214728
1f6e3cfed0eb8aa06cbcc5a1c9f9c1ff38fb7767aae8d67e5a8f45d72cb4fd1f4db849a0d3addf4db51
6f6b35dbc84cb2300a8032c7bc7f0a162cd8aa97e47f95f44bfd2bf3eef749d0ec2f3cdda279dfcc737
95dfeaf0bcf6b770455b336ff0009311592bc0a05fc3154aff2fb43fcb7f3cfe52f90aebce1f99dabc5adf
972e20d463f2cc33e951eaf6be64b591d26558a3b2faf3cb24c643c6477924e7cdcb37c78abd3ff00
2d3ccfe598bcd5f9d5a4fe625e69d69e6a7f30ceb730ea92450b4fe5b6b2823d38013f1e56e23e629
f127a8d237fbb3154dffe710b50b3beff009c76f23a5adcc57125a5a4b6f72b148b218a44b894f070a
4f160a47c277c5501f98fe50d1bf357cf3f985f97374f14b737de47d3040ad254dbde8bfd464b59b88
dd5a39023d7c3d9b755897e56eb9e77fcc2fcb7d4fcddf99169269b71e48f2eeade5661a82aa4d73
ad431b477fa8723400048a3801ff7e1bae8b8ab10d175c82c3fe71a3f20aeafb569349f252eb16f079
9b5bb316f28b2645bc5b579d6e61b880471dd889a432c6423aa1f85a842af4db6f297902cee7f31b
5cd2fce375e78d73ccfe5ab8ff11873a65ce99e9d8c045b4b7234eb5822598ab158b9fc7247cf6213
9055e352f96fcadff42a3f91f7a74cb217b75e66f2ff00ad73e946934ad35e4d1cc1dc00cf54255813f6
7fd5c55e9baed9cfa3ff00ce5c5e58f93208b4fbf9ff002b2e7ea96f691c7146f7715fbadb128a0292a5
502f2e8a38fd9c5522967d0b55ff009c166fd150ac7e61b2b08527863a8d4a3f37db5da0958814956
f5eec1907fbb8b38fe6c553bf2bf92f4ed7bf3e34ad3bf32b46d3b53f305cfe55e9b2f98ed6ee186613
6a86f8c37324a8c0876eabcd81207438aa6df9a2b63f913f9a5a3fe6fe8fa791a279b6c8792f5fb1b2
b72c16fe28f9e9173c621bef12d991b52329c7ece2af6ef20f9553c97e52d37cbc65facde411b4ba9d
f1146bad42e5ccf7770dd7e29667790ffad8ab24c55d8abb15637e65a7e9af276c4ffb989a84741fee
2351dce2afffd0f7f62aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb1579efe
7472ff054012b53aff96c1a75a1d76c6b8abd0b15762aec55d8abbae2ac564fcb2fcb89af6df5297ca
3a33dfda0416b72da7db1962f4bec706f4ea38fecff002f6c551facf937ca3e63bbb7bff30683a7eab7
d680ada5cdf5ac3732c2a58352379158afc401f87be2ab2dfc8fe4cb4d52e35cb6f2f69b0eb776255b
bd4a3b3816ea613ff78249427360f5f8831f8b1543da7e5cfe5fd859d869d63e55d22dac34bb937da
6dac3616c915b5db020cf0aaa0092107edafc5ef8aabe85e47f26795ae26bbf2cf97f4ed1aeae5447
73369f690dabcaa0d40768954b50efbe2abad7c93e4eb1f30dc79b6cbcbfa6dbf9a6f015bbd6e2b38
12fe5040043cea8246a81bd5b156b54f2479375cd5ecfcc1acf97b4dd475dd3f6b1d4eeece09eea0ff
8c72c88597e838aa67a7699a6e8f691d86936705858c42915adac49044a3c1510003eec5528b5f2
17922c75e93cd365e5cd32dbccd2b4924bacc3670c77aef357d42d3aa8725abf155b7c5519ad795f
cb7e63d39f48f3069167aa693249ebc9637b6f1dc5bb4b52dcda3914a96a926a462a83d3bc81e46
d2348bcf2fe95e5ad2ecb41d40d6ff4bb7b2822b49c9014fa90aa046d801f12e2ad587e5ff9174bd02
e7caba6796b4bb2f2cde72fae68f6d6504365373fb5ea428811ab4df90df1540cbf94bf95d369d6ba4

873

4de4cd124d26c657b8b2b17d3ad9ade09a5003c9146538a3371156500e2a8f5f21792135e8fcd29
e5dd38799a2448e3d645ac3f5e58e2411a289f8f3e2140503974c5554792bca0bad9f32ae83a78f3
033091b5416b10ba32052a1cc9c7917e278f2af2e3f0f4c5544f903c8e7cc3fe2d3e5cd34f9ab973fd
37f5487ebfc80e35f5f8fa9d36fb58ab11baf2f7e60f9c3cf29079cecb4bb6fcb5f2f6a11eafa13595c4d
2dfdfdddb006d3eb51b2048d2190b4c78b7c52c70edc795557a8e2aec55d8abb15633e682c35cf25
00050eb3372affdb1f51e98abffd1f7f62aec55d8abb15762aec55d8abb15762aec55d8abb15762ae
c55d8abb1579efe7457fc1969415ff009d87cb35f97e9eb1ae2af42c55d8abb15762aec55d8abb157
62aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8ab18f341a
6bde4914ebaccff00868da8e2afffd2f7f62aec55d8abb15762aec55d8abb15762aec55d8abb15762
aec55d8abb1579c7e78da25f79161b4959d22975ff002d2c8d13b452053af58d4a3a32b2b53a329e
43b62a9cb7e5c680dff1f9ad0ebd35cd5875ff00a3ac55a3f96fa0123fd375b14ec35dd5857e7fe958
ab5ff2adb41ad7ebfae7fdc7b56a7fd4562ad37e5ae82c6bf5fd754ff93af6ae3f55d62ae1f969a105e0
351d7bad6bfa7f57e5f7fd6ab8aad1f963a00141a96be3ff00060d63c6bff2d78ab7ff002ad342a11fa4
b5fa1ffb5feaff00f6558ab727e5ae8727dad475e1535f875fd597a7cae862ab4fe59684482753f3054
787983571faaeb156ff00e559e84011fa4f5fde9bff0088357edff4758abbfe559e87b7fb93f306dff7f0
6aff00f6558ab8fe5a686401fa4f5fdbfefe0d5ffecab1577fcab4d0ff00eae7e60dbfefe0d5ff00ecab156
ffe55ae89ff00574f307fe141abff00d9562aeff956ba20ff00a5a7983ff0a0d5ff00ecab156bfe55a689ff
00574f307fe141abff00d9562aeff9569a27fd5d3cc1ff008506afff006558ab7ff2ad744ffaba7983ff000
a0d5ffecab1577fcab5d1294fd29afedff6bfd5abbffd1d62aeff00956ba27fd5d3cc1ff8506aff00f6558a
bbfe55ae89ff00574f307fe141abff00d9562aeff956ba27fd5d3cc1ff008506afff006558abbfe55ae89ff
574f307fe141abffd9562aeff00956ba27fd5d3cc1ff8506aff00f6558abbfe55ae8a3fe969e60ffc28357
ffb2ac55dff002ad745ff00aba7983fee3fab7fd9562ac7bcc5f975a3c7ac794946a7af9f575596324eb
ba9b507e8abf7a82d704a9f869c928dfb3f659862afffd3f7f62aec55d8abb15762aec55d8abb15762
aec55d8abb15762aec55d8abb1579efe747fca196c3c7cc1e5a1f7ebd638abd0b15762aec55d8abb
15762aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb157
62ac77cc9ff001d9f286d5ff72f2fd1fee2750c55ffd4f7f62aec55d8abb15762aec55d8abb15762aec5
5d8abb15762aec55d8abb1579efe7453fc196808041f30f9646fdabaf58ef8abd0b15762aec55d8ab
b15762aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb15
762ac73cc8ce359f2785ad1b57983d2bd3f446a077fa40c55fffd5f7f62aec55d8abb15762aec55d8a
bb15762aec55d8abb15762aec55d8abb1579e7e74123c9b674efe62f2c0dfdf5fb1c55e878ab8f4c5
5e1de5cfcd7fccdf3579fbf307c85a4e81a1adef9065b38e4b8babfbb8d2f86a50bcf070e16cfe95156
8f5e7463f0f2c55977e52fe6a41f99ba7eb31dd6992685e6cf2c6a3368be66d0a4956e45adec1fefb9
d02acb138dd1c2ad77f87157a1d7b77c55d8abb157569d715762ad1aed4fa7156a42fe9bfa4034a0
1e01890bca9b0240240fa31579ff00e4dfe626a1f999e57bdd7755d362d26fec757d47469acede76b
a8c369970602c24648c9e456bf6462a97f9d3f35355f297e6dfe5efe5dfe8ab6b8d2bcf675145d50dc
badc5bc9a65bfaec3d0f4b890dc9429f53f9be1f155ea58aad939f06f4e9ea50f0e5f67976ad3b62af0
efcb6ff9c846f36fe6e79aff0026fccda443a3798bcbfcdb4dbab7b97b8b7d4a381b8ce63f52188ab20
656e3f17edff262a997fce42fe7b45f917e57b7d66df457f316af7525574c8e536eb159a3a472dd4d2
8493846b24d0c5f67e29268d7157a9e8f2ea93e996b36b51416faa4881ae60b491a68118ef447744
2d41dcaae2a8ec55d8abb15762aec55d8abb15762ac73cca69acf93faefabcbd3fed91a875c55ffd6f
7f62aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb1579efe747fca1d65bf1ff
009d8bcb146f03fa7ec7157a162aec55f16b597e6b4ff9bdff00392b7ff943ad47a7f99ec0f97e58f4d7
b3b7ba37e469ce4471cb312229428611fc2cad230f50782acdbf2efcd1e51d17fe71b3ce9f989f95b0
ddff008afea9ab6afe64fd2aeb73ad2f99228a4699afbe1405d18735558e3431eeb1af2c5517e5efcb
89e3bcf227e6be99e6cd274ab1b5104d7daa59c1792cde61b4d4942986f249ef1c49248f2728dd96
492394fc1d38e2ac5f46f25687e6cb7ff9c88d3fcc0d7d7f67a36b57726910cda85e95b5962d29268e
48ff007bf691cf2427971da98ab1fd4eda4d33f28bf20ff36ad6f2f4fe61ea3acf95acb52d765bdb9926
b8b2bd468e7b7915a4286290001978fbfdaad557acf93ad34bfcd4fccefcdbd33cff006c7526f2d6a56
9a4e8ba55cc8e21b2d366b18e459e08c32f0967939c9f585025fb2b1c9c5715791c1a7f9d7cdbff00
38f9ac799a6b99fcc9e73fca6f35df9d0ef6e2694c9aa68de5ebb4696de778f89b949225917e30c642
8a3ed62af5997ccde56f3af963cedf9d8ba9dc796fcaf1e8234cd1fcd565cdaf22884067bbba863155
69125956da32a39fa96f2056a362a947946093cb7f9c3f95b0e87a6be87a2799fcadabfd7e09e7f57
50bf364b6334371a8c69ca21703d4afa8b24b27c72233f1a0c5586f923f2bfcb5e72fc93f3ef98351b9
beb1f30e95aef9baf345d5ed350bbb6fd1f716d7734a92c51c72a443e241cea9f12f7f05530bdd5f5df
317e62ffce23ebbe68429e61d4b4cd62f35205789371368f6eeec568389627915fd9ad31546d8795
bcc7f9dd6be7ebc5d6f4fb6d7f4af336b1a569fabcef7c354d04e9974e967f57105c471c6ab1859765
513f23eb73c55f4b794aea4bcf2c6917171aa41addc9b5896e758b4511dbddcf1a849268d416015d
c33280cc3c09c55f23fe636997fe5ab0f317e7e795edccbe6bfcb4f3fea771711c6b56bad0af16da0b
eb77a7ecf17f5391feed79b7be2aabf9fbabcdf981ff38e9f989f9b42368b41d75745b1f28413c623b9
5d1ad755b66799c7506eae0bc807fbe63b738abd3fcfd79ab79b7f38ac3f2aeb607484f2b0d760d3b
566bb4b6beba7bd3049416b245ea3411c6a783960beaf3e1fb4aabcc3f3b3cb3e61fcb8ff009c60f39
e8377e6f9b52d5746d66d2ef4a3a75cde432e99a7ea77d07a5632c8f3bcb2a22bc8233331f81a3f8
7e1538ab24f317962c74aff009ca1f2579634dbbd46df42f38f97b549bcd766351bc61a8bdb0668ccc
cd3160410378ca1e3f07f77c971561f3f9cfcc9f97be4efcebd0bcbba85d5a7977cbde74d3748b0b86
b89249346d23569205bb782594bba001dbd3f8bf72d27a8bd3157a57e6fd8ff00caa7f31fe567987f2

de392ceeb5cf3458795b5bb28a69a64d434bd416567f5524760f247c3d4170dfbd5ef271ae2a88fca
af26e9de6ef317e63cbe64bed57515f2d7e605cb68914faa5e98e0f474fb270b4128e719f5594c527
38f87c0100e555585e9da3dd792353fcc9ff9c78bbd44c57de78bbb7d43c85a95c4934972fa46b121
82ea28a42c5b9e9ab148c94355f864fdac55f57e99a6d9e8fa75a695a7a18ac6ca18ededa32cce56
38942a82ce4b1341b926a71545e2ac6fccb4fd35e4edff00e971353fee11a8e2afffd7f7f62aec55d8a
bb15762aec55d8abb15762aec55d8abb15762aec55d8abb1579e7e74d3fc1f615e9fe24f2b7b7fd3
41618abd0f15762af3cf29fe4b792fc95e6cd57ceba03ea516bfaec9eb6b92cda8dd5c457b20560a6
68a57646e1cd8a7c2387ecedb62a89b0fca0f23697e79d6bf30f4eb39adbcc5e638c43afaa5ccdf52
bd458fd21eb5a9630b1037af0af2a9fda6aaa92791bfe71cff29ff2eb5e3e61f2b693341731bbc96169
3dedd5cd9593ca0891adade691a38d9aadf1d0baf26546556231545d87e47f93b4d8fcdb15add6ae
23f3c176f3206d467633c9280aeead5e51b320f4eb195fddfc3e18aa0af3fe71e7f2fefbca5e5ef245c
4baa9f2ef956ed350d02dd752b80f6b7308a40caf5e4de8efe9072c139362a9e6bbf949e55d735b8b
cd025d434af348b55d3aef5bd26f25b1bbbcb24a110dd34442ca2a2a18afa89feeb74c5594e83e5e
d13cafa2d9f977cbd610e9da1e9f10b7b3b1b750914718ec077af524eec776df1549e6fcb9f26cfe43
9bf2cce971a792a6b27d35b4b8898d05b480d429520a9a9e4181a86f8b1561fa4ffce387e58e8d71
e59beb383513a9f955a43a7ea12ea77925d4b148154c1712192b240382f18368978d38712c19547
9fc89f219bbd48afe918f40d66e64bfd57caa97f70ba1dcddcefea4b249681b8d246f8a488110c9fb7
1b6f8aa37cd1f943e57f3779c7cbde79d4ee3518b5df2a861a0fd52eda0b7b632d04a56100a132a8
0927207927c38aa47afff00ce36fe54798fce373e78bdd36e60d575228dae5b595edcda58ea66335
5faedbc4ea928fe65238c9feec0f538abd50db442d7ea707fa3c223f4a2f4689e9af1e2385050711f6
76c5583f93ff287cafe4cb4d7ec2ceeb52d46c3ccf24f71addb6ad7b25f47717178a12e25224dc34aa
38bd3e1a7ece2a85f3bfe48792bcffe52d2fc87adbea10f93749821b58745b0bc92d6de58ad551601
370f89fd2f4d4a55baef8aa879bbf213c87e7ad0b40d1bcceda95eddf96199f44d7febf347ac4064a7
2ff4b8cabb542a83cabf657f6872c55af30fe407e5e798fc8107e595dc57d079463b917b736f6f7b30
9eeee031939dd5c485e59497f8c967fb417f9568aa3750fc9cf2cea9e77f2e7e625f5f6a92f9a7cad6c
b65a55d7d6caa7a3c592512c6aa15cce1cfac587c5fb3c71553d0bf243c93a1cde7167fae6ab6be7d
7793ccf63aa5c7d6adae5e5054b042a387c2dc07123e1e3fcab8aa3bcaff00953e5cf2acda7cb6f73
a8ea3fa1607b4f2fa6ab76f7cba6c120e0c2dbd50486e148c48e5e4110f4c3f0670caacf22fe55e8bf9
75a86bbaae8ba96af7b3f986e1f50d5a1d46f3eb71cd7ae1419c2b2a8590aa2a7c255782aad3e15e
2aa47e55b6b8fcc5f3ce9ff995af794752f2bbf962c2ef4bd12db5c5b68ef249f52913eb7304b79a7a2
22408913315e7eacbf0d287157ac62aec558ef9929fa67ca15aff00c75e5a53fed93a875c55ffd0f7f6
2aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb1579efe73d3fc1f63cba7f89
3cafb789fd3f638abd0b15762aec55d8abb15762aec55d8abb15762aec55d8abb15762ad1aed4f1d
ebe18ab78abb15762aec55d8abb15762aec55d8abb15762ac73cca01d6bc9d5ea358988de9bfe88
d47efc55fffd1f7f62aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb15799fe7c
dec5a6fe5fa6a33ac8f05a6bde5ab8956de292e262916bb62c7d38a256776a0f85554b13d315451f
ce7f28834fd1fe653f2f2b7980ffd8862adff00cae6f28d40fa8799057b9f2bebe06feff51c55a1f9cde50
a81f51f31827a57cb1aff006ffa31c55b3f9cbe5115ad8f98f615ff00945f5fff00b21c55bff95c9e50a16f
a9f98453b1f2cebd5fa07d471558bf9d1e4e660bf52f31826a77f2c6be00a0aef5b1c5572fe73f939c1
2b69e61a0f1f2cebc2bf2ff0041c55b1f9c9e4da13f57d78102b43e5bd701fa07d4b1572fe72f935880
2db5ff008856a7cb7ae8037a6e7ea3b62ad9fce3f260afee75c245361e5cd709dffe8cb155a9f9cfe4c
90f15b7d7c1ff002bcb7ae8fd7638aaf6fce2f26275875cf1dbcbbae1fd5658aaeff95c1e4cad386b5db
fe99fd6bbff00d1962ad3fe7179293a8d64ec4ede5fd68f4f95962aeff95c7e490c89c759abf4ff009d7f
5ba7dff52db155e3f377c98406e3ac7c5d07e80d6abd2b4a7d4f1558bf9c3e4961c87e98a7be81ad
0a7cff00d0f155eff9bbe4b4a54eacc4f65d0b5963bf8d2cf6c55cbf9bfe4963c436ad5dfae85ac8e9b7
fcb1f7ed8ab47f37fc90013cb552078685ac9fbbfd0f155dff002b77c91523d5d4ea3b7e84d62bff005
07ef8ab67f36fc9009066d46a37ff008e2eafdffe8d3156d7f36fc8ec011717e2a2a01d1f5507f1b5eb8
abbfe56df91ff00e5a2ff006ea7f446ab41b5773f55c55dff002b6bc8c18a9babd0478e93aa01f7fd568
7156ffe56cf91fbdd5e8dabf1693a9afebb5c5521d7ff00353c932eade5674babce10ea92c9213a5ea
60713a5df2edfe8db9ab0db157fffd2f7f62aec55d8abb15762aec55d8abb151610000026060f00222
0574d4643010000000000010000000000000010000000002000004498010044f80100762aec55d
8abb15762aec55d8abb1579efe74547936d4ab713fe21f2cef523fe97d63e18abd0b15762aec55d8
abb15762aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb1575315762aec55
d8abb1563fe62ff008ebf94bfedad2ffdd2aff157ffd3f7f62aec55d8abb15762aec55d8abb15762aec5
5d8abb15762aec55d8abb1579f7e73063e4db50bd4f983cb55f97e9eb1c55e838abb15762aec55d
8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8ab
b1563fe62ff8ebf94baffc7565a53fed957fd7157fffd4f7f62aec55d8abb15762aec55d8abb15762aec
55d8abb15762aec55d8abb1579efe740e5e4bb715a575ff2d7fdd76c7157a162aec55d8abb15762a
ec55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb15762aec5
58ef990d359f278ad2babca3e7fee275038abfffd5f7f62aec55d8abb15762aec55d8abb15762aec55
d8abb1575315762aec55d8abcfbf39c13e4cb7a1208d7fcb476deb4d76c76c55e838abb15762aec5
5d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8
abb15483cc0fc756f2a2f146e7aa4ab5750c57fdc5df35509e876a547ecf21df157fffd6f7f62aec55d8

875

abb15762aec55d8abb15762aec55d8abb15762aec55d8abb1579e7e74951e4cb5e4401fe21f2cf5f
fb6f58e2af43c55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8ab
b15762aec55d8abb15762aec55d8ab1df320aeb3e50d89a6af29dab41fee2750eb8abffd7f7f62aec
55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb1579f7e738af932dba6daff9689a
8e5d35db1c55e838abb15762aec55d8abb15762aec55d8aa0f56b48aff004dbbb399a458a689d19
a191e190023aac91956523b1538abe35fcb6f35e83a9ffce2adbf983cc9f981a95bfe6835aea9259d
e5bebb752eb925fc1797296712dafd618ca5f8c6821315244ff83c55f517e51eabe6ed6ff2cbcabab7
9f6d5acfce179a7412eb16ef17a0e2e19772f16dc19851992838b1e3c57a62af14d5ff00347cdfa77e
7a796fcea6574fc90d76f2ebf2f473765b6fd276f2738b523d5292dd096d227ef1c2cdcbf78b8abd57f
3ef4cbfd4ff002bb5b8747d52eb44d708b78b4dd5ac6e27b596da79ee628964e503a3151cbe25aee
b5c558f7fce3afe61df6b5f97177a3f9eaf18f9eff2f6e2e742f393dd3f29bd4b02dc2e989f8992584061
21fef195fae2af30fca8f3179f7cc7ff0039537ede6fd57518f47d5fca0be69d23ca525c4f15a6991dc5d
c305ac725bab88da6107c53165fefa593f97157d758abb15762aec55d8abb15762aec55d8abb156
3de620a758f2913d46ad295f9fe8abf18abfffd0f7f62aec55d8abb15762aec55d8abb15762aec55d8
abb15762aec55d8abb1579e7e741ff009d3acc78f98bcb00fc8ebf623157a1e2aec55d8abb15762ae
c55d8abb15762a976bda941a468b7fa95c473cd0db40f2343690c97370f41b2c7142aceec4ec028c
55f17fe577e4b6afaff00e417946e7cb76771e4aff9c82f20dc5fea1a75eea1a74da7cf21b8bcb9716b
72f3429eb433c2eab5064e1f67ecf352abdb2e3f3cbcc77ff9393f9a2d7c95afe97f98f2a0d38796a5d
2af6596d7519eb18b9a084fa96b1d0cfea28dd17d3fef5b862a967e6a7e45e8d7ff00917abf96b4fd6f
5d68ad74b8e4d22dfd6b9ba437766166b6a5a468d212d2a2fc2abc872c55423fcc8d6fcc1ff38f7a4c
9e68d03cc03cfeeba5d9eb5a49d16fbebcd776d7707af71e9ac1431b2234fc97e1e3f0fdbf831540f9
9ff283cc3ab7e7747e6ff23ca60fcb9fccdd352dbf320b24b0ca134a92375e0afc191af235faa9aad55
1a76fb4c1b155da3cd7727fce666a9e66fd15aac7e58b8f2947a05aeb326997b1d83ea297914e621
3b44107c21be3278721c7962afa6f15762aec55d8abb15762aec55d8abb15762ac77cc848d67c9f4
e8757941f97e89d43157fffd1f7f62aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55d
8abb1579e7e748e5e4eb215a7fcec7e57ffbafd8e2af43c55d8abb15762aec55d8abb15762aec55d
8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8ab1df31af2d63ca069
5e3ab4a7e5fee27501fc7157fffd2f7f62aec55d8abb15762aec55d8abb15762aec55d8abb15762ae
c55d8abb1579e7e747fca2161ff812795bfeebf638abd0f15762aec55d8abb15762aec55d8abb1576
2aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb15762ac77cc647e98f28569
bead2d2a7fed53a874c55fffd3f7f62aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55
d8abb1579e7e73d7fc21614343fe25f2b7fe241618abd0f15762aec55d8abb15762aec55d8abb157
62aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb15762ac7fcc54fd2fe52af5f
d2d2d3e7fa2aff00157fffd4f7f6f5f6c55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8a
bb15762af3dfce7ff0094474fff00c097cadff8905862af42c55d8abb15762aec55d8abb15762aec55d
8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8ab1df3253f4cf93eab
53fa5e5a1f03fa2350dff00862aff00ffd5f7f62aec55d8abb15762aec55d8abb15762aec55d8abb157
62aec55d8abb1579efe73ffca23a7ffe04be56ff00c482c3157a162aec55d8abb15762aec55d8abb15
762aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb15762aec558df9956bad
7938ff002eb131e95ffa546a23e8eb8abfffd6f7f62aec55d8abb15762aec55d8abb15762aec55d8ab
b15762aec55d8abb1579b7e795ddbe9fe46b6bfbb6296b6de61f2c4d3b85672b1c7af58b310a8198
d00e8a09c5533ff95b9e41ff00ab8cff00f4817fff0064f8abbfe56e7907feae33ff00d205ff00fd93e2aeff
0095b7e41ffab8cfff004817ff00f64f8ab5ff002b73c83ff5719ffe902fff00ec9f156ffe56df907feae537fd
205fff00d50c55dff2b73c83d3f494dbff00cb85ff00fd93e2ae1f9b5e42248fd253547fcb85f7fd50c55d
ff002b6fc83ff5729bfe902fff00ec9f156cfe6d79047fd2ca6ffa40beff00aa1ed8ab67f363c84a013a94
b42481fe837dd47fcf0c55c7f363c86003fa4a5a1341fe857bd7fe4462ae5fcd8f21b3701a94bc8d46f
637a3a7b9831570fcd8f2116e23539396e29f52bdedd7fdd18ab87e6c7908f2ff0072727c3d7fd0ef7f
ea862aeff95b1e42a03fa4e4a1341fe857bff543156c7e6bf908b151a9bf20694fa9de77f0fdce2abbfe
569f917887fd26fc49a0ff0044bbebd3fdf38ab7ff002b4bc8b40dfa51a8457fde5bbad3e5e8fbe2adff0
0cad1f236dfee51b7a53fd16ea9bf4ff7562ad3fe6979163157d5481ed6d747f5458aafff00959be47ff
abaff00c90b8f1a7fbef155c9f995e497202eaa2a5790ac338dba778f156cfe63f92827a87555e35a7f
753d6bf2f4eb8ab5ff002b2bc91407f4b2d1ba7ee67f1a7fbefdb155c3f31fc94d4a6ac9bf4fddcdf2fe4
c55b6fcc6f2523703abc7ca95d9252294af509ed8aa43e62fcc0f2636abe5397f4b445535595ebc64
d87e8abf5fe5f7c55fffd7f7f62aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb
1579efe73123ca5a711b1ff12f95a87ff060b0c55e858abb15762aec55d8abb15762aec55d8abb157
62aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb1563de63a7e98f28ff00db
5a5a7fdc2750c55fffd0f7f62aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb1
579efe737fca23a77fe04be56ff00c482c3157a162aec55d8abb15762aec55d8abb15762aec55d8ab
b155aae8f5e0c1a868686b438aaec55d8abb15762aec55d8abb15762aec55d8abb15762aec558ef
99081acf93c115aeaf281edfee2750c55ffd1f7f62ae240eb8abb15762aec55d8abb15762aeaf6ef8a
bab4c55d8abb15762aec55d8abb1579efe73ffca25a77fe04de56ff00c482c3157a162aec55d8abb1
5762aec55d8abb15762af2aff9c93b6b79bf233cf575228173a7e8f797b6338aac90dcc30b18e48d9
482ae09d88c55f30dcea1e5ff00fa171f271fcaebdb99ff00e722ae6c3489ace3f2cdccf3eb02e24923f
accb7f1c2ed481a32e246b95f4b9b2f7e38abd9fcf9e64d7fce3f9e1e49fc86bcbc934fd197456f35f9d
25d36592ddf51f48bc0962b246cae96ed22979457f7a85536deaaa23f3dbc95a1fe587e586b5f98ff0

095b636fe51f37795961d4edae34a416905d470cf1fad6f790c5c52e22910b02b2063cb8b0208c55
e75f9d8bad7e64f97bf2cff00367c805b43f370d0ef3cf2d0c0f256eff45436175f5194c650c828ce895
1fe4d28e7157b7cdf9bf69e67fca4f2f79cbca31b3eafe7c5b5d3bcbb621ab247a8df931cbc99474b2
0b34d3b01f62de4c55e7dff00384fa5c30f903cc577753cda96af69e66d574a1ab5ec8f3dd3da5a185
6342ee49036e5c47c3cb157d378abb15762aec55d8abb15762aec55d8abb15631e68afe9df24f5a
7e999eb4ff00b636a3d7157fffd2f7f62af04ff9c92b545d73f26b5189e54bb3e7fd1ec9b84d2a46f6f22
5c4ae8f10708d56890d594b0e3b62af479ff3274a93cd9aaf92341b2bad77cc7a15b417baddbd97a
4b1da25e54c11c92cf2469eac8aa5d2207970f88f11c6aab1b4ff009c84f244fa0795fccb676da8cda
5f9ab5a1e57819a04825b2d61a46845bdec73488d09e68cb5f8976ff2d392ac9b4afcc5d3f55f3feb5
f97234ebdb5d7343b58350b89ae042b6d35a5e332c32c0cb2b33a964656f807061c5b154efcb3e6
0b6f3468f06b7690c905b5c34ab12cc63666586568b98313ba95629c9086dd68715615af7e77f95f
423e7293ea3a85f58fe5ff00a23cd7796914652dbd7856e3e057911e5f4e360f27053c47f31db154fb
57fcc3d134ef3068fe52b249757f32eb96b36a565a7d8fa6c56c2dc2f3b999e47448e22cca88cc7e3
91b8a577a2af04fc85f37693e58d57fe720bccfaf497d65a1687e6479268f5069aeaea08a185ab128
67999897a889119b95542755c5517f9afab5e6a1f9e5f905752695aae8e6fb50d45e482f260219228
ecb9a2c90413cb1acc85c93c97976e4d4f8557a0e99ff00390be5ad6b59bbd0b48f2d799af750d375
98740d5d62d29cad8cf73c784d724b8e107c5bbfda500b3270f8b15465e7e7cf936c34eb0f315cdbd
f2f92f52d506896de68f4e2fa81b8798dba4ac0ca2616ed2a98d6e3d2f4c9f8bfbb2aecaa6ba87e6be
8767a8f9974fb5b2bdd48f93dad63f31cb689115b792fa349a35512488d2111babc9c01e0bfe57c38
aab6a3f99da3da6b3e64d0ac6c6f756bff0028d9dbea1e604b1588fa11de472cb146a25923324ac9
133f0407e12bdd862acd2375911644dd1c0653ec45462abb1579e7e73903ca5a757bf99bcac07fe1
41638abd0f15762aec55d8abb15762aec55d8abb15798ffce425b6a9a97e4ef9b740d1349bcd6759
d774eb9d2ac2cb4f8bd67f5eea265467ab2848c1fb4e4ed8abc42c7f2a3cf83f29bc81e7bfcbed32e7
cb3f9f5f979a641a45dd8ea49e80d5ec6d62027b097e26496373f15bbb1a2b7c3ca36f8a35599ea7
e5ff0034f983cf5e4dff009c8af2c7956fec7cc5a65a4fa079bfc97aafa569a84fa5ca19f9dab349e8b49
0cae59393a2ce9f0f28d862a8ff00cd8baf357e75791b51fcb1f26f96356d224f31086db55f307986d0
e9d65a7d97acaf3909237a9712954e0890a327c7c9a55518aa326b1ff0679ebf2d3caba1796359bff
2a795b48bcd0a7d5e2b5f5ad614ba8ace2b732485817daddbd66456e1fb58aa43f94df951e63fcaef
39f9ce5be85a6fcabf2f5d5c5f7e5be8f6f18bab98e4d622496f7d00bf1809f1411a1ff7e4be3c99554ff
9c48d3bccbe5af2b7993cbde6bf2d6a9a06a375e60d4b5bb63a8db88e192d2fda331859119d798a
1e4877f98c55f44e2aec55d8abb15762aec55d8abb15762aec558cf9a037e9cf2515e83599b97cbf4
3ea3fc7157fffd3f7f62af16ff9c81d1f5bd6af7f2b4e8ba55e6a69a2f9db4bd6f556b385a65b7d3ed63b
84965723f94c8bf08ab1ec3154079534cf327e5c7e767e646b5abe977377e45f3e7e8cd5749d66c6
de6bc921beb5816d24b49e1815e5426bcd1ca7a7c46efcbe10aa4161f913a879b3f277f32f45d6ed
65d135cf3e798f56f3768966ecbebe9b72d323e9eccd1bb0576faba492857dbd574db1548352fcaaf
ce5d72f7c9ff9b5eb49a47e66f99d5fcb7e77b189cbc3a4f96b52b7f4d4c2397f7b68d1fd62b5deee77
afeed00c55f55693a5d8e87a55968ba5c22df4dd3a08ad2d201d121810222efe000c55f2d7e6b59fe
6079d2d3f38fcb3ab794b5ad4ae85bbdb7906c2c201168b3db4b6a145ebcc1d167bb0e1ea923bb2
058d208793355547e851f9b7c9df9bbe5bfccabaf2b6ad75e47d77c9561e59d4e686ca59f51d3351
b197d45f5ace30f70227ad0958cfc4dc9f884c55885ef903f323cc9a2fe7b3e9be57d4ecb51d57cd1a
6f99fcb16da82a5b47aa43a44f0ca6107993590444a8206fc37e5c862acdbcf1aa7987f30bf31bf24b
cd7a4792bcc7058f97751d46ebcc71ddd835abd8b5c5b25b847333207e2f5abc45e3741c919fa62a
cbbf25ac354b5f35fe6db6a1a66a1a6dbf983ccb26a5a3dd5dda4d6f15c5a3595bc1ea46d228df9a3
6c69e231579f7e56aeaba0f90ed3f2c7cd5f9392df7e626871fe8cb5bbb8d32ddb41bf82394a417b2
ea043c48bc407997e298f1e51a3b3818aa37f31fca3e60bcf33eb5e7ff00265aeafe5bfce6d1dd6cb4
a5d36de69343f35dac1043246b7aac1a1f4f93c9033492c6f12afdb6e31b05517f993e4ed4b5ef326
b3e72d2a0d63c99f9bbe5e8e1b6f2eebfa0dbcf7361e6188d84570b6d751f078e5896e9e580fabe9f
14556e7c7ecaafa234693539b47d3e5d6e18edf5992da16d46de03ca28ee9a3532a21a9aaabd429
af4c551d8abcf7f39ff00e512d3bff025f2b7fe241618abd0b15762aec55d8abb15762aec55d8abb15
762aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb15762ac63cd069aef9286
fbeb33f4ff00b63ea3d7157fffd4f7f62aec55d8abb156b6c55bc55adb156f15762ad6ddf156f156b6c5
5bdb15762aec55d8abcdbf3cfebbfe06b6fd1be8fe91ff0010f963ea9f5ae7f57f5bf4fd8f0f53d3f8b857
ed71f8a9d315457fc86ea7fd32b5ff00b78e2ad2ff00caf0a7c5fe14e5de9fa4698abbfe437ffdfabff731
c55bff0090dfff007eaffdcc71577fc86fff00bf57fee638abbfe437ff00dfabff00731c55aff90dff00f7eaff0
0dcc7156ffe437ffdfabff731c55aff0090dfff007ead3fede38ab7ff0021bbfefd5ffb98e2aeff0090ddff00
7eaffdcc71577fc86eff00bf57fee638abbfe4377fdfabff00731c55b1ff002bb7bff857fee638ab87fcaec
aeffe16a76a7e91c55aff0090db5ffa6569ff006f1c55b1ff002bb7bff857e8fd238ab87fcaecdabfe16e9
bff00c747ae2adffc86ba7fd32d5aff00dac7a62ab97fe573edcffc314a9ad3f487d9a6df4e2ad9ff0095
cb5f87fc314dbafe90fa7155c7fe570d0d3fc35ca9b7fbdf4ae2ae1ff2b8781e5fe1af529b53ebfc6b8aa
f5ff95bb51cff00c394ef4faf57a62abc7fcad8a1aff876b4da9f5eeb8ab43fe56cf26aff008778f1f83fde
eaf2f7f6c558e7993fe569fe9bf277a9fe1fe7fa5a6f4b8fd729cff44dff00daaf6e35fb3f172a7ecf2c55ff
d90000000840010824000000180000000210c0db01000000030000000000000000000000000000
001b40000040000000340000000100000002000000000000bf000000bf0000af430000964303000

877

0000000008000000080fe7fe9430000008000000080ffffc7432100000008000000620000000c0000
0001000000150000000c00000004000000150000000c0000000400000051000000f8a001000000
000000000000d20100008f010000000000000000000000000000000000005e0100002c01000050
0000002804000078040000809c0100000000002000cc00d301000090010000280000005e010000
2c0100000100080000000000000000000000000000000000000100000000000000000000ffffff00e
5e5e5009a9a9a0081818100fcfcfc00fdfdfd00fbfbfb00fefefe00787878004e4e4e00dddddd00fafafa
00f6f6f600dedede008282820089898900f2f2f200d6d6d60075757500acacac00d4d4d4009797970
0f7f7f700f9f9f900464646000303030031313100eeeeee0083838300f8f8f800cacaca003e3e3e006
1616100707070000d0d0d007a7a7a00a0a0a0000b0b0b006e6e6e00ebebeb0011111100353535
0079797900d9d9d900dfdfdf0007070700606060008e8e8e0005050500808080006d6d6d0012121
20032323200060606005e5e5e00b2b2b200848484006c6c6c00f5f5f50013131300272727000909
09006a6a6a00b3b3b3007d7d7d00727272000c0c0c003a3a3a00dadada009d9d9d006767670094
949400ececec00d2d2d200b5b5b50086868600bdbdbd00c4c4c4009e9e9e00bbbbbb0071717100
8f8f8f007b7b7b00b9b9b900f4f4f400adadad00a9a9a900bcbcbc00a4a4a40095959500b1b1b100a
6a6a60077777700aaaaaa00f0f0f000c1c1c100c0c0c000d3d3d3007f7f7f00a8a8a800929292008d
8d8d00c3c3c30096969600d1d1d100a1a1a10091919100e9e9e900ededed000e0e0e0050505000
93939300b8b8b800262626000f0f0f000202020073737300cbcbcb00101010005a5a5a00efefef002
12121003f3f3f0099999900d5d5d50044444400a7a7a70055555500e4e4e4003333330041414100
47474700dcdcdc00d0d0d0003d3d3d002d2d2d0085858500454545009c9c9c0039393900aeaeae
0051515100cecece00d7d7d7002c2c2c00f3f3f30014141400cccccc004343430053535300d8d8d8
000808080022222200c2c2c200c7c7c700c6c6c600eaeaea00a5a5a500010101006b6b6b00e3e3
e300b6b6b6001f1f1f008c8c8c002f2f2f0040404000e6e6e600242424007e7e7e00373737000a0a0
a00a3a3a300b4b4b40065656500f1f1f1005858580030303000b7b7b7008b8b8b00282828006969
6900151515003636360066666600bfbfbf00dbdbdb00e1e1e100e2e2e200e7e7e700e8e8e800e0e
0e00038383800afafaf00646464005d5d5d005c5c5c00c9c9c90074747400bababa0063636300484
848003c3c3c003b3b3b004a4a4a00343434002a2a2a002b2b2b00252525002e2e2e00232323001
e1e1e0020202000292929001d1d1d0057575700c5c5c5004d4d4d0004040400686868005f5f5f00
7c7c7c009b9b9b006262620052525200b0b0b000ababab00a2a2a2004949490018181800191919
00cfcfcf004c4c4c004b4b4b008a8a8a00545454001a1a1a00161616005b5b5b00565656006f6f6f0
0c8c8c8001c1c1c004f4f4f00bebebe00767676001717170087878700cdcdcd00424242001b1b1b0
09f9f9f009898980059595900888888009090900001010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101080801010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010801010118113c
c63232040f0f043232095363040f043232323232323232323232323232323232323232323232323
23232323232323232323232323232323232323232323232323204323263633232040404040404
0404040404040404040404040404040404040404040404040404040404040f0f1d1d1d1d0f04041
d894c4c1d0f043232040f1d323204040f1d393963394c0f04394c39890f1df7f71d0f89ea321dffea1d
666b666bb3f7a4104cb3306b65ff6b705210f7a46b655a166b106b4865487048038b687c7cfcdefb4
6fcde46686648ac6a70de164ffc6bcb000001010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101080801010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010108080101be990c0801
01010101010808080101010101010808080808080808010101010101010101010101010101010
10101010101010108080808080808080101010101010101080808080808080801010101010101
01010101010101010101010101010101010101010101010101010101010101010101010808010
10101010101080801010101010101010101010501010806010101010801010101080108060801
06050101010101060101080101010106080101050801010601010105070106010105010101010
1010101010601010806010101010701080101ee00000101010101010101010101010101010101
01010101010101010101010101010108080808080808080101010101010101080808080808080
80101010101010101010101010101010101010808080808080101010101010101080808080808
080801010101010101010101010101010101010101010101010101010101010101010108010c08
28d66d01010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010808080801010101010101010101010101010101080101080801010101080101010108
01060101010608010508010808010101010101010608010101010101060608010108010101010
80108010101010101010808080101010608010101050155090000010101010101010101010101
01010101010101010101010101010101010101010808080808080808010101010101010108080
80808080808010101010101010101010101010101010101080808080606010101010101010108
08080808080808010101010101010101010101010101010101010101010101010101010101010
108010101016cd49d0101010101010101010808080101010801010101010101010101010101010
10101010101010101010101010101010101010101011610000026060f002220574d46430100000
00000010000000000000010000000002000004478010044f801000101010101010101010101010
80101010101010801010101010101010101010101010101010101010101010101010101010101

01010101010101010108010101010101010801010101010108080101010101010101010101010
10101010101010101010108010801010801010108010108010108010801010101010108080101
01010808010108010108010101080101010101010101010608010108080106010747000001010
10101010101010c010105010106050108010118a10518010101010101050108010c01010107010
10701010108060806019201060c010c080501080679170601010101050801061c1e01050801013
b070101170606010c01054955060805081e01012c81080118010108790b4901010508010801080
10101010101010101010101010628a32801010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
0101010101010101010101010101010101010101010101010101010101010101010808010cb500
0001010101010101010801014557753214bc1808a1165dc34cac2d010c011801924805060108b2
4d01070806010101010101bdf0d647c16cdf446479015447d6e89e09b8de90010603ae93214fdb4
1ac97e3dbcc045b6c050118252226a83a8f0101bf7532a913668f011c4189fceaf503180105010108
05010101010101010101010101010628a32801010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010117c
2000001010101010101010601011ef174a3a7180176edd4be9211193da701080606a2745c18010
882db08060101080108060607f79f8c5065d59fc3c7812b00294b9d403400886101482e2e57a746
23008a7692091a669d0101065d00dafd2509ec71076198f801014fed5f062e4c1801060a66050801
010801050101010101010101010101010628a3280101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010801
0117c200000101010101010101080805015523a5010118cf000f050105909f7f06080108c200b101
054a003c5501060808010801080142009c0d01300010019d23dab30c0106b5004c0707d1005401
0c019531b20601399f9c01180805c000dd010801573d6d9e37010105a2009e17d292010607d9e9
01010c010601010101010101010101010101010628a32801010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
108080105a000000101010101010101010501087936cb0c06869f7790010c0105fa20060801692e
dc83de01dc98d1240101060101050108087c001401014b00ea051f9f4311010801a90004082ddae
9060606019574e1010689004e0101054931cb3b060c0808c15ebf6701288d951a58922501018f39
0041051801010801060101010101010101010101010628a328010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010106060105a00000010101010101010101010105afdaaa05014b006f05010101088e316c180
1dc009c0e7a5b98d190a3970101010107010805014ce564051274fe018dabd907080108422ec60
1e3004c01050101a6001401066b00540601070e0046011801060506010101c53d3100380601011
7a99800f955010501180101010101010101010101010101010628a328010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
0101010101010801010c470000010101010101010106050101792eaa0c05ad9fee010601051ed0
009d01bf9f2e6c05b5b600ff0180a91e010801010101010106f8df04ff1a390140000905010118a900
040ce1000f050106070a004601011d0061010601bfed8f55923b01010605068f73007a5608010c55
f30036516d01070101180101050101010101010101010101010628a32801010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101

879

01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010801010c47000001010101010101010101010179ab820c016100fd010107011c2
6ec5f07101a3705014500f60b01e72a49010601010708065f58af0138b000ff08f89fc906010601247
4a901a73e630101050184008d0101a936580108085577c4483089eaef8017af8c6e248101bd0806
dd00a6f101181e010806010107010101010101010101010101010628a328010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010106060108330000010101010101010101050806af9fcb0601af3c771c01060125
1add0608839f0e06018fda3201060175ac011e010601010154001007019b00e2080ce0740e01060
1ef00dd01065d4406010105cc1a5b01018974f00105bb0144dc075f5f4f00eb01970032060894a40
105353d01070656bf080108010801010101010101010101010601010881fa28010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010c010501010107010106
0808080101010c050101060601010105010101011e010101180106080805010606050106010601
08010701010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
0101010101010101060101014200000101010101010101180101016d43870708015e74a90501b
d771a2c01bf00a5080108df1a50010c011f3901010c01080106e73e370107630028060181d2fd080
12c2900c607081500de0701bced00140d10b4009509a69881712958083bc974f8060c99dc010170
42011e4c3449013b6f6c010108010601010101010101010101010601010102f2280101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
0101010101010101010101010101010101010101010101010101010101060192663a65ea63891
80105056053276a010608078f3acce0aeb206170108084fa0f72424ba0601f128010c4a415d1d097
5253b010601010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
1010101010101010108010108270000010101010101010101010501af36a507010c068d3f257075
fdad0c06097bb0e71756a6c0689008057c21bc010801060101016bc26a4696630c010801612fde7
c307200891e0101400afc5cb3f2da5e065b228a6016d67b2d01542f4fb58c5c010106542b7ce12f8b
01011cb565e203213b0108080105010801010101010101010106010101bdd32801010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010107010c6ad9001acdc71e0
1061f6eda445b0101609688759eadc8cfb7f1010c08f80400d2a41701afce391801794fe6003ea9f8
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
0101010101010101080106470000010101010101010101010105793eca0d06060105080b0b6d01
01051711110c1101a73b019d18010c92490108010601010701010581a15506010606010107be81
18c600a90106060101be810c8adafb050508060192010c08050501815f0701070c010106bc81080
70c060106799daf080801060108060108010101010101010101060108016cd4280101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
0101010101010101010101010101010101010101010101010101010601010501014e7400b9010
101b9439ffe010101f43e8249080106011184264f010c010ca68b010708a231432d0101072b1a190
60101180701010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
1010101010101010101060105df000001010101010101010808080c1e74d10c010105010701010
808050101010c01060601080107010101060105060108080701010101010108010801011806010
8080c5100a90107010808080101ef00e2010101060701010c0601050c010101180101180101080
1010101011e01011e010101010601010801080101010101010101010601080128d42801010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101070601011e06d80000c
50601119174b41e01079dd0002c060106011801a1ababbf010701e4c101080770009f53070c0163
00e9010c0601010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010801060107df00000101010101010101010101012877d10108010501050
10c01010101061801010601060101080601070806010106070101010701010708010707013b010
108070801ae9f0408010c01010501057eda8d0701180101070c010105010101170101010601011
701010c010501010505010608010806010101010101010101010101010108010601287a2801010
10101010101010101010101010101010101010101010101010101010101010101010101010101
010101010101010101010101010101010101010101010101010101010101010101060101089a2
e986701016374e6a2060801241aef1e01010807010101f900db180101e9ad0601a7d598b0ef010c
010400f9010101011e010101010101010101010101010101010101010101010101010101010101

01010101010101010101010101010101010101010101010101010101010101010101010101010
101010101010101010101010101080107ae000001010101010101010501019ac30035180155080
10807010601061e0101010c010118010506011e010808010106010106060101010108050801080
6010d010101fbda005d010501050c01925d73005c0101060601010105010808080106010601010
801010601010601010808010708010801080801010801010101010101010101080106019dd49d
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010801080c070
19a0000ad01650077f808010128f600b30108010701081e0122313e49011ee971010527006f1789
b901010474e80701010c0101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
1010101010101010101010101010108010807a000000101010101010101010106119edb8e3b08
01060101010601060101050105010101010101080101080101070118011701050801060501080
10107010801010505bd1696100c010c01010705bb707e5c0101010808010501060101060801010
10801010701050108010105010101080106060101060101060101010101010101010108010608
6cd49d010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010105060
1010606589fdaf854da264d010105077d31362501050501050101080f00269018018ac101bfab746
1014fe80106a900e9080806010c010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
010101010101010101010101010101010106010605f00000010101010101010101010108080605
05010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010806060801010101010108080808010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
101089dd349010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
1060106010801adda9fee7e23d68d2c180c01151a00e20105080801010708410036600801e9710
1329fd50101bcf68608630019070101080101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
1010101010101010101010101010101010101010101060108a000000101010101010101010101
01080806060101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010108080808010101010101080808080101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101089dd3490101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
101010101060101010501b9009f645549c13e1a2b010cbb43747c01070108080108014c009f1f01
18d95401b400b31e0107a9b705320095010105010601010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
0101010101010101010101010101010101010101010101010801010118c2000001010101010101
01010101010101080801010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010108080801010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
1010101010101010101089dd34901010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101060101011801c59f00580101014f0098790c6d36004f0606080501010105c6
1a26bc01078a717d2e3ea10107016c368610dae808180101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
1010101010101010101010101010101010101010101010101010101060101011ec800000101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101080101010101010801010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101089dd3490101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
0101010101010101010101010101050101014e7400c101180192d300460107e800c6060807010c
080801e900b1af0101954fdc7442050107010122b5ff008a01010117010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101060107470000
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010108010101010101080101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
101010101010101010101010101010101089dd349010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010106080107554d74004b010c0806b6365205019023ab0b0
106010101011ef62ec5010c05b082009917010101051811dfc474d9010805060101010101010101

881

01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010601
07470000010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101089dd3490101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
101010101010101010101010101010101010101050101060101600000f10608019b00000e01010
c6431c40c010107010604361d080c0101e87400a401050801080701eaab9f7e080107010501010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
1060101011ec800000101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010
Of course, the Java programmer is not concerned with any of these aspects and consequently the
Java programming language provides no mechanisms to manipulate the different memory types or to
interact with input and output devices (other than those that have a higher-level access model such as
standard input/output or files). The programmer has to resort to using native methods if access to raw
memory is required. The RTSJ, in contrast, is targeted toward the real-time and embedded
programmer and, therefore, has to provide facilities that allow the programmer to exploit the
underlying memory and I/O architecture.
The memory used to implement all Java programs can be divided into three components:
the method area where the Java byte code is stored during interpretation,
the stack where local data is stored during method execution, and
the heap where an object's data is stored during its lifetime.
It is important to realize that the facilities described in this chapter can only be used to influence where
the data associated with objects is stored. It is not possible, say, for the programmer to control the
type of memory to be used for the method area.

15.1 The Basic Model


The RTSJ supports access to physical memory via a memory manager and one or more memory
filters. The goal of the memory manager is to provide a single interface with which the programmer
can interact in order to access memory with a particular characteristic. The role of a memory filter is to
control access to a particular type of physical memory. Memory filters may be dynamically added and
removed from the system. and there can only be a single filter for each memory type. The memory
manager is unaware of the physical addresses of each type of memory. This is encapsulated by the
filters. The filters also know the virtual memory characteristics that have been allocated to their
memory type. For example, whether the memory is readable, writable or executable.
Each

filter

must

implement
the
following
interface.
package
javax.realtime;
public
interface
PhysicalMemoryTypeFilter
{
// Where the following methods have a base and a size,
//
parameter:
//
IllegalArgumentException
is
thrown
if
size
//
is
negative
//
OffsetOutOfBoundsException
is
thrown
if
base
//
is
negative
//
SizeOutOfBounds
is
thrown
if
the
base
+
size
is
//
greater than the physical addressing range of the
//
processor.
public
boolean
contains(long
base,
long
size)
;
//
Returns
true,
if
the
filter
has
some
memory
//
in
the
physical
address
range,
//
returns
false
otherwise.
public
long
find(long
base,
long
size)
;
//
Starts
from
the
base
address
and
looks
for
a
// memory area of the filter type of at least size
//
bytes
and
returns
the
start
address;
// returns -1, if no memory found of the filter type.
public
int
getVMAttributes
()
;

Returns
any
implementation-dependent
access
attributes
associated
with
the
memory
type.
//
This
is
intended
for
use
with
POSIX.
//
POSIX's
mmap
function
maps
the
processor's
memory
// into the address space of a process. The memory can
// be specified as having a combination of read, write
//
and
execute
permissions,
or
no
access.
public
int
getVMFlags()
;
//
Returns
any
implementation-dependent
flags
//
associated
with
the
memory
type.
//
This
is
intended
for
use
with
POSIX.
//
POSIX's
mmap
function
maps
the
processor's
memory
// into the address space of a process. The memory
// can be specified as private or shared, and fixed at
//
a
particular
location.
public
void
initialize
(
long
base,
long
vBase,
long
size);
//
Initializes
the
memory
if
required,
//
null
operation
otherwise.
public
boolean
isPresent
(long
base,
long
size)
;
// Return true if the memory is present in the system
//
returns
false
otherwise;
//
Throws
IllegalArgumentException
if
the
memory
range
//
is
not
covered
by
the
filter.
public
boolean
isRemovable
()
;
//
Returns
true
if
the
memory
type
is
removable;
//
returns
false
otherwise.
public
void
onInsertion(long
base,
long
size,
AsyncEventHandler aeh) ;
//
Associates
an
event
handler
with
the
insertion
//
of
the
memory
into
the
system;
//
Throws
IllegalArgumentException
if
the
memory
range
//
is
not
covered
by
the
filter
or
aeh
is
null.
public
void
onInsertion(long
base,
long
size,
AsyncEvent ae) ;
//
Associates
an
event
with
the
insertion
//
of
the
memory
into
the
system;
// Throws IllegalArgumentException if the memory range
//
is
not
covered
by
the
filter
or
ae
is
null.
//
Added
at
version
1.0.1.
public
void
onRemoval
(long
base,
long
size,
AsyncEventHandler aeh) ;
//
Associates
an
event
handler
with
the
removal
//
of
the
memory
from
the
system;
// Throws IllegalArgumentException if the memory range
//
is
not
covered
by
the
filter
or
aeh
is
null.
public
void
onRemoval(long
base,
long
size,
AsyncEvent ae) ;
//
Associates
an
event
with
the
removal
//
of
the
memory
from
the
system;
//
Throws
IllegalArgumentException
if
the
memory
range
//
is
not
covered
by
the
filter
or
ae
is
null.
//
Added
at
version
1.0.1.
public
static
void
unregisterInsertionEvent(long
base,
long size, AsyncEvent ae ;
//
Unregister
the
specified
insertion
event.
//
If
ae
is
null,
all
async
events
in
the
range
//
are
unregistered.
//
Added
at
version
1.0.1.
public
static
void
unregisterRemovalEvent
(long
base,
long size, AsyncEvent ae) ;
//
Unregister
the
specified
insertion
event.
//
If
ae
is
null,
all
async
events
in
the
range
//
are
unregistered.
//

//

883

//
Added
at
version
1.0.1.
public
long
vFind(long
base,
long
size)
;
// Searches the virtual memory for the memory type and
// return its address or -1 if the memory is absent.
}
The physical memory manager is defined by a final class with only static fields and methods:
package
javax.realtime;
public
final
class
PhysicalMemoryManager
{
//
fields,
names
for
typical
memory
types,
for
example
public
static
final
Object
ALIGNED;
public
static
final
Object
BYTESWAP;
public
static
final
Object
DMA;
public
static
final
Object
IO_PAGE;
public
static
final
Object
SHARED;
//
methods
// Where the following methods have a base and a size,
//
parameter:
//
IllegalArgumentException
is
thrown
if
size
//
is
negative
//
OffsetOutOfBoundsException
is
thrown
if
base
//
is
negative
//
SizeOutOfBounds
is
thrown
if
the
base
+
size
is
//
greater
than
the
physical
addressing
range
of
the
//
processor.
public
static
boolean
isRemovable(
long
address,
long
size)
;
//
Returns
true
if
any
part
is
removable.
public
static
boolean
isRemoved(
long
address,
long
size);
//
Returns
true,
if
any
part
is
currently
removed.
public
static
void
onInsertion(
long base, long size, AsyncEventHandler aeh);
//
Registers
a
handler
to
be
run
on
insertion.
//
Throws
IllegalArgumentException
if
the
memory
range
//
is
not
removable
or
aeh
is
null.
public
static
void
onInsertion(
long base, long size, AsyncEvent ae);
//
Registers
a
handler
to
be
run
on
insertion.
//
Throws
IllegalArgumentException
if
the
memory
range
//
is
not
removable
or
ae
is
null.
public
static
void
onRemoval(
long base, long size, AsyncEventHandler aeh);
//
Registers
a
handler
to
be
run
on
removal.
//
Throws
IllegalArgumentException
if
the
memory
range
//
is
not
removable
or
ae
is
null.
public
static
void
onRemoval(
long base, long size, AsyncEvent ae);
//
Registers
a
handler
to
be
run
on
removal.
//
Throws
IllegalArgumentException
if
the
memory
range
//
is
not
removable
or
ae
is
null.
public
static
final
void
registerFilter(Object
name,
PhysicalMemoryTypeFilter
filter)
throws
DuplicateFilterException;
//
Throws
IllegalArgumentException
if
the
name
or
//
the
filter
are
not
in
immortal
memory.
public
static
final
void
removeFilter(Object
name);
public
static
void
unregisterInsertionEvent(long
base,
long size, AsyncEvent ae);
//
Unregister
the
specified
insertion
event.
//
If
ae
is
null,
all
async
events
in
the
range
//
are
unregistered.
public
static
void
unregisterRemovalEvent(long
base,
long size, AsyncEvent ae);
//
Unregister
the
specified
insertion
event.
//
If
ae
is
null,
all
async
events
in
the
range

//

are

unregistered.

Important The PhysicalMemoryFilterType interface and the PhysicalMemory-Manager


note
class are not intended for the applications programmer. They are intended for use by
the systems programmer who is providing the software necessary to host a particular
implementation of the RTSJ on a particular hardware configuration with different
memory types. However, the applications programmer will need access to the
memory names defined by the static fields in the PhysicalMemoryManager class.

15.2 Creating Objects in Physical Memory


In order to create objects in physical memory, it is first necessary to create a memory area that
defines the scope of the objects. The RTSJ views all physical memory as being nonheap memory.
Hence, the following memory classes are supported:
ImmortalPhysicalMemory
LTPhysicalMemory
VTPhysicalMemory
Immortal physical memory
Unlike regular immortal memory, which is accessed via a final class with a single instance, immortal
physical memory access objects have to be created. Many areas of immortal physical memory can
exist; each placed at a different location in physical memory and each with its own particular memory
characteristic. The following class defines the interface. It consists of constructor methods only.
Blocks of immortal physical memory can be allocated either with or without defining a base address:
package
javax.realtime;
public
class
ImmortalPhysicalMemory
extends
MemoryArea
{
// All constructors throw the following unchecked exceptions:
//
IllegalArgumentException
-size
is
zero
or
negative
//
MemoryTypeConflictException
-incompatible
memory
//
OutOfMemoryException
-insufficient
memory
//
SecurityException
-no
permissions
// SizeOutOfBoundsException -- extends to an invalid range
// UnsupportedPhysicalMemoryException -- memory not supported
public
ImmortalPhysicalMemory(Object
type,
long
size);
// Where type represents the type of memory required
// (e.g., dma), and size is the size of the area in bytes.
public
ImmortalPhysicalMemory(
Object type, long base, long size);
// Parameters are as above, with base being the address of
//
the
area;
throws
(as
above
with):
// MemoryInUseException -- the specified memory is already in
//
use.
...
}
The other constructors provide variations that use a sizeEstimator and have an associated
Runnable.
package
javax.realtime;
public
class
ImmortalPhysicalMemory
extends
MemoryArea
{
...
public
ImmortalPhysicalMemory(
Object type, SizeEstimator size);
public
ImmortalPhysicalMemory(
Object type, long base, SizeEstimator size);
public
ImmortalPhysicalMemory(Object
type,
long
size,
Runnable
logic);
// Where logic contains the run method which will be
//
called
whenever
the
memory
area
is
entered.
public
ImmortalPhysicalMemory(Object
type,
long
base,
long
size,
Runnable
logic);
public
ImmortalPhysicalMemory(Object
type,
SizeEstimator
size,Runnable
logic);
public
ImmortalPhysicalMemory(Object
type,
long
base,

885

SizeEstimator

size,

Runnable

logic);

Linear time physical memory


The LTPhysicalMemory class is the physical memory counterpart to the regular LTMemory class.
Its
definition
is
given
below.
package
javax.realtime;
public
class
LTPhysicalMemory
extends
ScopedMemory
{
// All constructors throw the following unchecked exceptions:
//
IllegalArgumentException
-size
is
zero
or
negative
//
MemoryTypeConflictException
-incompatible
memory
//
OutOfMemoryException
-insufficient
memory
//
SecurityException
-no
permissions
// SizeOutOfBoundsException -- extends to an invalid range
// UnsupportedPhysicalMemoryException -- memory not supported
public
LTPhysicalMemory(Object
type,
long
size)
// Where type represents the type of memory required
// (e.g., dma), and size is the size of the area in bytes.
public
LTPhysicalMemory(Object
type,
long
base,
long
size);
// Parameters are as above, with base being the address of
//
the
area;
throws
(as
above
with):
// MemoryInUseException -- the specified memory is already in
//
use.
public
LTPhysicalMemory(
Object type, SizeEstimator size);
public
LTPhysicalMemory(Object
type,
long base, SizeEstimator size);
public
LTPhysicalMemory(Object
type,
long
size,
Runnable
logic);
// Where logic contains the run method which will be
//
called
whenever
the
memory
area
is
entered.
public
LTPhysicalMemory(Object
type,
long base, long size, Runnable logic);
public
LTPhysicalMemory(Object
type
SizeEstimator size,Runnable logic);
public
LTPhysicalMemory(Object
type,
long base, SizeEstimator size, Runnable logic);
public
String
toString();
}
Variable time physical memory
The VTPhysicalMemory class is the physical memory counterpart to the regular VTMemory class.
Its
definition
is
given
below.
package
javax.realtime;
public
class
VTPhysicalMemory
extends
ScopedMemory
{
// All constructors throw the following unchecked exceptions:
//
IllegalArgumentException
-size
is
zero
or
negative
//
MemoryTypeConflictException
-incompatible
memory
//
OutOfMemoryException
-insufficient
memory
//
SecurityException
-no
permissions
// SizeOutOfBoundsException -- extends to an invalid range
// UnsupportedPhysicalMemoryException -- memory not supported
public
VTPhysicalMemory(Object
type,
long
size);
// Where type represents the type of memory required
// (e.g., dma), and size is the size of the area in bytes.
public
VTPhysicalmemory(Object
type,
long
base,
long size);
// Parameters are as above, with base being the address of
//
the
area.
Throws
(as
above
with):
// MemoryInUseException -- the specified memory is already in
//
use.
public
VTPhysicalMemory(Object
type,
SizeEstimator size);
public
VTPhysicalMemory(Object
type,

long base, SizeEstimator size);


VTPhysicalMemory(Object
type,
long size, Runnable logic);
// Where logic contains the run method which will be
//
called
whenever
the
memory
area
is
entered.
public
VTPhysicalMemory(Object
type,
long base, long size, Runnable logic);
public
VTPhysicalMemory(Object
type,
SizeEstimator size,Runnable logic);
public
VTPhysicalMemory(Object
type,
long
base,
SizeEstimator size, Runnable logic);
public
String
toString();
public

}
Example
Consider a multiprocessor implementation of the Real-Time JVM. The multiprocessor has both
memory that is shared between the processors and memory private to each processor. The RealTime JVM uses the shared memory area by default. Furthermore, for predictability, each schedulable
object is assigned to a processor when it is created. The schedulable object is then always executed
by that processor. The PhysicalMemoryManager allows application threads to use the private
memory
by
defining
public static final String PRIVATE;
An application schedulable object can then allocate objects from its processor's private memory by
first creating an appropriate physical memory area and then allocating from that area:
{
SizeEstimator
needed
=
new
SizeEstimator();
needed.reserve(...);
try
{
LTPhysicalMemory
privateMemory
=
new
ImmortalPhysicalMemory(
PhysicalMemoryManager.PRIVATE, needed);
privateMemory.newInstance(someClass);
}
catch(Exception
ex)
{
System.out.println("failed
to
get
private
memory
access; reason " +ex);
}
}

15.3 Accessing Raw Memory


While the above physical memory classes allow the placement of objects to be controlled, the raw
memory access classes allow memory to be accessed outside the object model (but under control of
the physical memory manager). In real-time and embedded systems, this is necessary for two main
reasons:
The memory is being written by a process external to the Java application
The memory is being used by a memory-mapped I/O device.
Clearly, accessing raw memory is very dangerous and it is the job of the physical memory manager to
ensure that the integrity of the Java system is not undermined. For example, the physical memory
manager should not allow the application to read and write raw memory that has been allocated to
objects, say, via ImmortalPhysicalMemory. This is because the memory may contain references
to Java objects that, if written to, would corrupt the system. Furthermore, again for security reasons,
only primitive data types (byte, ints, longs, floats and doubles) can be read and written.
Byte ordering
The RTSJ allows the byte ordering of the underlying hardware to be ascertained via the
RealtimeSystems class. The BYTE_ORDER constant indicates the current hardware's ordering.
BIG_ENDIAN and LITTLE_ENDIAN are constants representing bit number 0 as the most significant
and
least
significant
bit
respectively.
package
javax.realtime;
public
class
RealtimeSystem
{

887

public
public
public
}

static
static
static

final
final
final

byte
byte
byte

...
BIG_ENDIAN;
BYTE_ORDER;
LITTLE_ENDIAN;
...

Raw memory access


There are two classes: the RawMemoryAccess class and the RawMemory-FloatAccessClass.
The RawMemoryAccess has two constructors: one that simply allocates a chunk of memory and one
that
allocates
it
at
a
particular
location:
package
javax.realtime;
public
class
RawMemoryAccess
{
// All constructors throw the following unchecked exceptions:
//
IllegalArgumentException
-size
is
zero
or
negative
//
OutOfMemoryException
-insufficient
memory
//
SecurityException
-no
permissions
// SizeOutOfBoundsException -- extends to an invalid range
// UnsupportedPhysicalMemoryException -- memory not supported
//
constructors
public
RawMemoryAccess(Object
type,
long
size);
// Where type represents the type of memory required
// (e.g., dma); size is the size of the area in bytes.
public
RawMemoryAccess(
Object
type,
long
base,
long
size);
// Parameters are as above, with base being the address of
//
the
area.
...
}
There are methods that allow read and write operations on data (or arrays of data):
package
javax.realtime;
public
class
RawMemoryAccess
{
//
constructors
...
//
methods
//
All
methods
throw
the
following
unchecked
exceptions
// SizeOutOfBoundsException -- the object is not mapped, or
//
the
item
falls
in
an
invalid
address
range,
// OffsetOutOfBoundsException -- the offset is negative or
//
greater
than
the
size
of
the
raw
memory
area.
public
byte
getByte(long
offset);
public
void
getBytes(
long offset, byte[] bytes, int low, int number);
public
int
getInt(long
offset);
public
void
getInts(
long offset, int[] ints, int low, int number);
public
long
getLong(long
offset);
public
void
getLongs(
long offset, long[] longs, int low, int number);
public
short
getShort(long
offset);
public
void
getShorts(
long offset, short[] shorts, int low, int number);
public
void
setByte(long
offset,
byte
value);
public
void
setBytes(
long offset, byte[] bytes, int low, int number);
public
void
setInt(long
offset,
int
value);
public
void
setInts(
long offset, int[] ints, int low, int number);
public
void
setLong(long
offset,
long
value);
public
void
setLongs(
long offset, long[] longs, int low, int number);
public
void
setShort(long
offset,
short
value);
public
void
setShorts(
long offset, short[] shorts, int low, int number);

...

Where the Real-Time JVM is hosted on a system that supports hardware memory management, the
physical memory may be mapped to a particular virtual address. Raw memory access allows these
addresses
to
be
manipulated:
package
javax.realtime;
public
class
RawMemoryAccess
{
//
constructors
...
//
methods
...
public
long
getMappedAddress
();
//
Get
the
virtual
address
associated
with
the
//
raw
memory
object.
public
long
map();
// If the object is not mapped into the virtual memory,
//
map
it
and
return
the
virtual
address.
public
long
map(long
base);
public
long
map(long
base,
long
size);
// As above, but the virtual address that is required is
//
given
as
a
parameter.
public
void
unmap();
//
Undo
any
mappings.
}
Raw memory access to floats
For completeness, the RTSJ allows raw memory to be accessed by reading and writing floating-point
numbers. While this has limited use for memory-mapped I/O devices, it may be useful if the memory
is shared with a process outside the Java system. However, care must be exercised, as it is essential
that
the
process
and
JVM
use
the
same
floating-point
format.
package
javax.realtime;
public
class
RawMemoryFloatAccess
extends
RawMemoryAccess
{
// All constructors throw the following unchecked exceptions:
//
IllegalArgumentException
-size
is
zero
or
negative
//
OutOfMemoryException
-insufficient
memory
//
SecurityException
-no
permissions
// SizeOutOfBoundsException -- extends to an invalid range
// UnsupportedPhysicalMemoryException -- memory not supported
//
constructors
public
RawMemoryFloatAccess
(Object
type,
long
size);
// Where type represents the type of memory required
// (e.g., dma); size is the size of the area in bytes.
public
RawMeoryFloatAccess(Object
type,
long
base,
long size);
// Parameters are as above, with base being the address of
//
the
area.
//
methods
//
All
methods
throw
the
following
unchecked
exceptions
// SizeOutOfBoundsException -- the object is not mapped, or
//
the
item
falls
in
an
invalid
address
range,
// OffsetOutOfBoundsException -- the offset is negative or
//
greater
than
the
size
of
the
raw
memory
area.
public
double
getDouble(long
offset);
public
void
getDoubles(long
offset,
double[]
doubles,
int low, int number);
public
float
getFloat(long
offset);
public
void
getFloats(
long offset, float[] floats, int low, int number);
public
void
setDouble(long
offset,
double
value);
public
void
setDoubles(
long offset, double[] bytes, int low, int number);
public
void
setFloat(long
offset,
float
value);

889

long

offset,

public
float[]

floats,

void
int

low,

setFloats(
int number);

}
Important
note

The RTSJ does not require access to the primitive data types to be on address
boundaries (for example, word boundaries for integers). Consequently, if the
programmer tries to read/write to a primitive data type at an address, which is not on
an appropriate boundary, the read/write operation may not be atomic. For example,
writing a long on a byte boundary may require more than one read and write
operation to memory.

Example
Consider the case where the applications programmer wishes to control access to an analogue-todigital converter (ADC). Suppose that the device is accessed via two memory mapped IO registers: a
control and status register, and a data buffer register. The control and status register resides at
address 0x77FFE000 and is 16 bits long with the structure given in Figure 15.3:
Bits

Name

Meaning

Start

Set to 1 to start a conversion

Enable/Disable

Set to 1 to enable interrupts

Done

Set to 1 by device when


conversion is complete

8-13

Channel

15

Error

Indicates the required input


(the
converter
has
64
analogue inputs)
Set to 1 by the device when an
error has occurred during
conversion

Figure 15.3: The Control and Status Register of an Analogue-to-Digital Converter


When conversion is complete, the value is returned via a 16-bit data buffer register that resides at
address 0x77FFE002.
To program the ADC, it is first necessary to produce a class that encapsulates the control and status
register. The constructor of this class creates the raw memory access. Assume that the physical
memory
manager
supports
the
IO_PAGE
memory
type.
import
javax.realtime.*;
public
class
AdcControlAndStatusRegister
{
public
AdcControlAndStatusRegister(
long
base,
short
chan)
{
try
{
if(chan
>
63)
throw
new
IllegalArgumentException("channel
>
63");
rawMemory
=
new
RawMemoryAccess(
PhysicalMemoryManager.IO_PAGE, base, REG_SIZE);
shadow
=
chan
<<
8;
}
catch(Exception
e)
{
throw
new
IllegalArgumentException("illegal
base
address);
}
}
RawMemoryAccess
rawMemory;
short
shadow;
final
long
REG_SIZE
=
2;
final
short
START
=
01;
final
short
ENABLE
=
040;
final
short
DONE
=
0100;
final
short
ERROR
=
04000;
...

}
It is worth noting that on many machines more than one device register can be mapped to the same
physical address in the memory map. Consequently, several variables may be mapped to the same
location in memory. Furthermore, these registers are often read or write only. Care, therefore, must be
taken when manipulating device registers. In the above example, if the control and status register is a
pair of registers mapped to the same location, the control register will be write-only, and the status
register read-only. The programmer's code that accesses the register pair may not have the desired
effect. This is because to set a particular bit may require code to be generated, which reads the
current value into the machine accumulator. As the control register is write-only, this would produce
the value of the status register. It is advisable, therefore, to have other variables in a program, which
represent device registers. These can be manipulated in the normal way. When the required register
format has been constructed, it may then be assigned to the actual device register. Such variables are
often called shadow device registers.
The

remainder

of

public

the

class

provides
import
class

methods

to

read

and

set the various bits:


javax.realtime.*;
AdcControlAndStatusRegister
{
...
public
void
startConversion()
{
shadow
=
shadow
|
START
|
ENABLE;
rawMemory.setShort(0,
shadow);
}
public
boolean
deviceError()
{
if
((rawMemory.getShort(0)
&
ERROR)
==
ERROR)
return
true;
else
return
false;
}
public
boolean
conversionComplete()
{
if((rawMemory.getShort(0)
&
DONE)
==
DONE)
return
true;
else
return
false;
}

}
Now

the

program

can create the device registers at the required locations:


final
long
csrBaseAddress
=
0x77FFE000;
final
long
dataBaseAddress
=
0x77FFE002;
final
long
REG_SIZE
=
2;
final
short
channel
=
6;
myAdcReg
=
new
AdcControlRegister(csrBaseAddress,
channel);
dataBuffer
=
new
RawMemoryAccess(
PhysicalMemory.IO_PAGE,
dataBaseAddress,
REG_SIZE);
myAdcReg.startConversion();

To handle interrupts from the ADC device, it is necessary to attach an asynchronous event handler
(see Section 11.1).

15.4 Summary
Normally, the Java programmer is not concerned with where the JVM stores the objects created
during program execution. However, embedded systems may support different types of memory with
different performance characteristics. Furthermore, I/O devices may be accessed via their memory
locations. For these reasons, the RTSJ provide classes that allow
memory areas to be created where the physical memory characteristics can be specified,
memory locations to be read and written as primitive data types.
It is the job of the memory manager to ensure that these low-level uses of memory do not undermine
the integrity of the Java program.

891

Chapter 16: Case StudyAutomobile Cruise Control


System
Introduction and chapter structure
The automobile cruise control system (ACCS) case study has often been used by the real-time
community over the years as it illustrates many of the differences between real-time embedded
systems and traditional information processing systems. The requirements for the ACCS are
presented first, followed by a discussion of the interactions between the system and its environment.
The software design is then presented along with the RTSJ implementation.

16.1 ACCS Requirements


The overall goal of an automobile cruise control system is to maintain the speed of a vehicle
automatically to a value set by the driver.[1] Commands to the system may be given explicitly or
implicitly. The explicit commands are given by the driver's interface, which is a lever on the side of the
steering wheel. The command lever has several positions that represent the following instructions to
the system (the commands are only valid if the engine is turned on):
activate turn on the cruise control system if the car is in top gear, and maintain (and
remember) the current speed
deactivate turn off the cruise control system
start accelerating accelerate the vehicle at a comfortable rate
stop accelerating stop accelerating and maintain (and remember) the current speed
resume return the car to the last remembered speed and maintain that speed.
Implicit commands are issued when the driver
changes gear the cruise control system is deactivated when the driver changes out of top
gear
presses the brake pedal the cruise control system is deactivated whenever the drives
brakes.
The speed of the car is measured by the ACCS via the rotation of the shaft that drives the back
wheels. The shaft will generate an interrupt for each rotation. The system has a default setting for the
number of interrupts that should be generated for each kilometer travelled.
The speed of the car depends on the throttle position. The throttle position is determined by two
factors: the amount of depression of the accelerator pedal and the value supplied by the cruise control
system. The throttle's cruise control component is controlled by varying the voltage to the throttle
actuator. The values range from 0 (throttle fully closed) to 8 (throttle fully open). Voltages can be set in
units of 0.1 volts. A voltage setting holds its value for 3 seconds. If it is not reset, then a default of 0
volts is used. It is assumed that the combining of the two throttle component values is performed
outside the cruise control system.
Cruise control throttle settings are defined for "maintaining the current speed" and for "comfortable
acceleration". The required settings are as follows:
Maintaining Speed. To maintain the desired speed, the following algorithm is used:
if the desired speed minus the actual speed is greater than 2 kmph, the throttle is set to fully
open
if the actual speed minus the desired speed is greater than 2 kmph, the throttle is set to fully
closed
otherwise, the value of the throttle is set to 2 (SD SA + 2) volts where SD is the desired
speed and SA is the actual speed.
More formally, if V is the voltage, then

Comfortable Acceleration. In order to avoid rapid changes in speed, the voltage to the throttle should

not be changed by more than 0.1 in any one-second period.


The requirements for the system given in this section are based on those defined by (Hatley and
Pirbhai, 1988).
[1]

16.2 System Interactions


All devices are memory mapped and have associated control and data registers. Sensors in the
automobile detect state changes and generate appropriate interrupts to the control system, as
illustrated in Figure 16.1. With each interrupt, the data register contains the event that caused the
state change. The throttle actuator's data register takes a value between 0 and 800. This represents
the requested voltage in units of 0.1 volts.
0100090000037257010000002593000000001610000026060f002220574d464301000000000001
00f1cd000000000d00000000200000f4650100f4850100010000006c0000000000000000000000d
20100001801000000000000000000006a400000b026000020454d4600000100f48501000c00000
0010000000000000000000000000000000005000020030000c40100001a0100000000000000000
00000000000e3e306006e4e0400460000002c00000020000000454d462b014001001c000000100
000000210c0db01000000600000006000000046000000105e0000045e0000454d462b224004000
c000000000000001e4009000c00000000000000244001000c00000000000000304002001000000
0040000000000803f214007000c00000000000000084000055c5d0000505d00000210c0db01000
0000000000000000000000000000000000001000000ffd8ffe000104a4649460001020100480048
0000ffed0c9850686f746f73686f7020332e30003842494d03ed0000000000100048000000010001
00480000000100013842494d040d000000000004000000783842494d03f3000000000008000000
00000000003842494d040a00000000000100003842494d271000000000000a000100000000000
000013842494d03f5000000000048002f66660001006c66660006000000000001002f6666000100
a1999a0006000000000001003200000001005a00000006000000000001003500000001002d000
000060000000000013842494d03f80000000000700000ffffffffffffffffffffffffffffffffffffffffffff03e80000000
0ffffffffffffffffffffffffffffffffffffffffffff03e800000000ffffffffffffffffffffffffffffffffffffffffffff03e800000000ffffffffffffffffff
ffffffffffffffffffffffffff03e800003842494d040800000000001000000001000002400000024000000000
3842494d0414000000000004000000023842494d040c000000000b080000000100000070000000
44000001500000594000000aec00180001ffd8ffe000104a46494600010201004800480000ffee000
e41646f626500648000000001ffdb0084000c08080809080c09090c110b0a0b11150f0c0c0f15181
31315131318110c0c0c0c0c0c110c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c
0c010d0b0b0d0e0d100e0e10140e0e0e14140e0e0e0e14110c0c0c0c0c11110c0c0c0c0c0c110c0
c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0cffc0001108004400700301220002
1101031101ffdd00040007ffc4013f00000105010101010101000000000000000300010204050607
08090a0b0100010501010101010100000000000000010002030405060708090a0b10000104010
30204020507060805030c33010002110304211231054151611322718132061491a1b1422324155
2c16233347282d14307259253f0e1f163733516a2b283264493546445c2a3743617d255e265f2b3
84c3d375e3f3462794a485b495c4d4e4f4a5b5c5d5e5f55666768696a6b6c6d6e6f6374757677787
97a7b7c7d7e7f71100020201020404030405060707060535010002110321311204415161712213
0532819114a1b14223c152d1f0332462e1728292435315637334f1250616a2b283072635c2d2449
354a317644555367465e2f2b384c3d375e3f34694a485b495c4d4e4f4a5b5c5d5e5f55666768696a
6b6c6d6e6f62737475767778797a7b7c7ffda000c03010002110311003f00f4bb6c6554597bfd47ed
711b6b2493eed8d6b580855f17aa6265b98da997fe91cf60710e001617b5fbddbbd9eea9cd562d69
b28b29165943dce31656df70f76ef6ee63d9ee42c7c6753736c765e45ad68815bc7b78db2e8af7b9
dfdb494d882cc9ada1c76b98f24124ea0d71f4bfac8eab97b5d9551131b1e248204cd6e8923f9296
65f914561f8f8e729c5c0398d735a437f39ffa4fa5b7f7125361259edea1d41d5bec1d3dfa318eada6
c634b8bbe9d7ee23d3f4bf3fd45769b3d5a596c46f6874021d1238dcc96bbfb2929ab6e2635f9963a
ea2bbdcca99b3d46b5dcbaef687383b6acfb29c8f49a5bd0287be5bb9bba91a11fa42cf6fe6fd15ac4
58dc97bf61731f5b1a0b48e5a6cddf49cdfdf598fc3e89564e360be87b6fb83ecc7acd8e970a63d476
ef5bdde9fda7fc27fdf125374e060d42bb6bc5a6ab5af61058c6820970076bdadf3575556542ba2ac
6a29757555b1ac048203585bdf7b9ff45a9f2b35b8cf630d575bea0266a6178111f4cb7e8f2929b07
82b398ef4ba7e35de95f92fb18cdde9b9c4c966ff0052cdd637dbedfe5bf7bd4a9eb15df91f6618d93
5b8b771759539ac6821f1b9e7fe2d3575b6de9f8b4bdd9143ab63377a6d7b1d219b0b1fecf34948c
e5b0d7ea0c2cb8240da7787419739db77fd16b3fe9fe8d1ba5de6f0fb7d1b718383629be778d6c87
ed7976ddecd8a5874578a5e7d6c9bf7803f4dbdf1b67e87b3dbbb77bd1eb3bb22c780e0d2c60048
23506c9fa51fbc929fffd0f55517efd8ed91be0ed9e27b4a924929cf6bbad9a8fad56317ed3b98c7bc
8275f6b5cf6b3f37f7935bd38e5e1d54e7341359de6ba5ef1fa46eef4dd5dae731cee7e85bec5a292
4a732ae8fd30b4b48797dd5b1af6bdee6b9c2a2df73aa058d6fbb6fa9b18b429aaba2965350db5d4
d0c637c1ad1b5a151ea9d33072f230afbab3f6cc7b4fd8f218e731f59734baedafadcddcc7d55bb7d3

893

67a945dfcddd5595ab47070dc65f535eefde78dc7fce7ee724a4eb3b3f0f16eea587956d3ea5f895e
41c7b44ef617b6baecf4b5dbbac67b3deac8c0c03c63d7fe684bf67e06e0efb3d5b9b30760913f4a3
4fce494e0973dfb19ea756a01b181d6bd83de2c6e92581be8edf536fbb67a777d3ad6fe666e26063
3f2b36e663e3d71bedb086b5bb88adbb9eefe5b92fb1627fa167f9a146de9d836b0d76515b9a4824
168225a43d876b86df63dad7b7f969296cafb59acd98ec63ec6906963dce68d7e93edfeafe657feb5
d76ddd7c9797635006f3e9b7d432191a6e76df73f72b98cf796398fd5f538b1c6201801cd769fbcc73
519253430aeeb0fb23371eaaab33eeaec2f207e67d26b55f492494ff00ffd1f5559fd5acbb60a061d9
9745cd7fabe93fd3702dda6b6b5c1d5bbf49ff00195abeefa279e3b73f25cde3b686d16b455d56b30
d92e975801bf706d7b5cf77bdefdf6ffdd6f537bd2524381532d6583a45876d9f6866dbdd02c79fd23
8d4e7b59ed6bf76cfe6ff009c5d0ae72fae8f50135754741743ebdc0f1f45edf6eeaffd0abfd2db5b72b
24b5996c26ba41fb44fa440f5a1b8ad27f9c6ff00da8f67fdc7494dcca1068b4fd0aacdcf3e00b2cab7
7f65d67b95859fd4f0b27aa6257553977f4d06c0eb5d540b5f5890fa3d4d5d8feab4ff003b57e9ea41
ab2eaa0d78cdc3caadbb8d4d0d6bcb1a18456c76e07632ab3f33e824a4c7a2e246d6beeac6e0e8a
ec73350664fa459b9cfff000963bf496ff844ff00b1b1431ad63ed66d6961736c70716b9ceb5cd7583
ddfce3f72adfb66824fa78d99606b8b5e1ac7ee105f5eef4e77fb9d5fe7ecf629dbfb55fd4ba63f19a47
4eb2bb8f500f790f6b8b6a76196877bddeff558e67b125377170998aeb1cdb6db4da4122db1cf023f
d1b5ff00cdff00615850f49be2eff39dfdea2fc6a9e36bf739b325a5ce83fd66cfb92531c53bbd5b47d0
b1fb98477686b6bddfdad9edfe423acac4a73ba6539adc8cd66456e7db7609bc169a9841b3ecf75d
b9ceba9a3f31ff00cefa2836757cf6d45c2cc00e9b21d65c5b5c33e8fb80b1df45cdb2df6fb1253b692
c5caeaf9d55b636a76139a3f9bdf71addcb347ef6fd2b3d4f66cf67a9fa3b1e8f8dd5ab0eb8e6e5623
5a0b7d26d36ee305a6dfd26edbef7b7dec633fc1a4a7fffd2f4c6750c6b1a1f5fa8f63802d736ab0820
ead735c188198eab276fe9b2b1f64eb532c6c931f4a6a2d72a36d55b7a5605ce20b9d5535b98fc87
50d20337ee63839adf51aff7ff00c5a9747c5c1c870b9af97639fd132bcc7e4b0d64ee65af976cf75c2
df4bfe2ff00eb6929b580cd965e29c9bf26c3efd9932d6b038fb76fe8eb76df63bf7d429ebbd16d8b7e
d2db2c635cd73c35d03d3fe788d1cdafe97bd5caff00e52bfc3d1a74fed64ab292906365e3e6d2eb3
1acdcc973374110e6fb5da3c37e8b955a313ac57657eae732da9acdaf1e906b8bbfd26e0efeafb76a
bec632b6358c686b1a006b5a2000340d680a4929c6b7f6b50f15bfa8d65f1b9dfab39fa1dad1fcd3ff
0047ee65dfeb57e9096e5bbd3abd3b5e7259596ee7556fa45dfa3dcfb76b3cbf46ae99fb4df0769f46
b83e066fd566e3f51c8764d65dd430adc570668c3ef76e96cb35d8ef52c752d67fea4494c5d7f5ab2
198f95436c73837df4d806dda41873806fabea6d7fee7f825a7959b56152cb324bbdc433d8d2f25c4
13f4583f928b77d11fd66ffd5044494e4ddd7fa5bb7545d66f915b668b1c37bc1dbb7f47b2cfe56d56
433a7fd1b6b61b192c7b7612d05fb6db037737e839cae100904892351e47855efb5f551976b0b43a
b0e734bc80d915b5c37b9c5ad6b1252c4e03c97398d713c92c93ff0052a146274b610daaaac12d6
d6011cb581c183dff004bd8f7a1e0750def2cc9cbc5b5ef2d14b6876a49deefa2e73be96df67fc5ab9
6ff00394ff5cffd43d253ffd3f41c2fb5fecec5fe63d3f4abd9bf74fd06c2b15fdb63f47f678efb777cb85f3
0a4929fa7717d7fb7e47afb377a54c6c988dd91fbcaeaf9552494fd5492f9552494fd40ef5fedb67a5b
3f9aae774fef5dfbaa2d99d3ecf33a478cff00e4d7cc2924a7ea27fda3dbbf66dded9899e42b0be554
9253f552ae7d5dd746cf4e7ddbe7f719ba57cba924a7ea06eddcdd9e86efcd8e78fcd527fadeb53bf
6c6e3c4cfd07af9752494ff00ffd93842494d04060000000000070005000000010100ffee000e41646
f626500644000000001ffdb00840004030303030304030304060403040607050404050708060607
0606080a0809090909080a0a0c0c0c0c0c0a0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c01
0405050807080f0a0a0f140e0e0e14140e0e0e0e14110c0c0c0c0c11110c0c0c0c0c0c110c0c0c0c
0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0cffc000110800d3015e030111000211010
31101ffdd0004002cffc401a20000000701010101010000000000000000040503020601000708090
a0b0100020203010101010100000000000000010002030405060708090a0b1000020103030204
020607030402060273010203110400052112314151061361227181143291a10715b14223c152d1
e1331662f0247282f12543345392a2b26373c235442793a3b33617546474c3d2e2082683090a181
984944546a4b456d355281af2e3f3c4d4e4f465758595a5b5c5d5e5f566768696a6b6c6d6e6f6374
75767778797a7b7c7d7e7f738485868788898a8b8c8d8e8f82939495969798999a9b9c9d9e9f92a
3a4a5a6a7a8a9aaabacadaeafa110002020102030505040506040803036d010002110304211231
4105511361220671819132a1b1f014c1d1e1234215526272f1332434438216925325a263b2c2077
3d235e2448317549308090a18192636451a2764745537f2a3b3c32829d3e3f38494a4b4c4d4e4f4
65758595a5b5c5d5e5f5465666768696a6b6c6d6e6f6475767778797a7b7c7d7e7f738485868788
898a8b8c8d8e8f839495969798999a9b9c9d9e9f92a3a4a5a6a7a8a9aaabacadaeafaffda000c030
10002110311003f00f73eadaadf59ded969fa75925e5cde24f27ef6736e8896fc2bb88e4249320a0a
62aa5f5ef367fd59acff00ee20ff00f64b8ab62f7cd5df47b41ff6f07ffb25c55bfaef9a3fead16bff0049ed
ff0064d8ab7f5df33576d22d69ff0031cdff0064d8aad37be69eda3da7fd27b7fd9362ae37de6aaeda3
5a53feda0ff00f64b8aad9351f34468f2368d69c514b1a5fb57615ff966c5532d2ef86a7a6596a4a863
5bc822b8119352a2540f427bd2b8aa2f15762aec55d8abb15762aec55d8abb15762a96798c91e5e
d5883422cae6847fc626c5587796ff2abf2ca5f2ee8f2cfe4cd0de76b1b53248da6da162de8a5493e9
f5c5534ff00954ff95fff00525e87bf5ff71b6bff0054f1571fca7fcaf3d7c97a1f4a7fc73ad7a7fc8bc556bf
e527e56c940fe4bd1180d803a75b1a0ff9178aa9ff00ca9dfca8e2147927440abf640d3ed8015dfb26
2adffcaa0fcabad47933460dd2a2c6007f05c55b1f943f95c0d4793f4807c459c23fe35c556f957cbba
17967cddaed8797b4fb7d32c64b0d3667b6b48c451994cb78a5caa802b4502bed8ab36c55d8abb1
5762aec55d8ab17babfd72efcdb77a0e9f77059da5ae9d697dcdedccf2349733dcc4c2bea2000080

536ef8aa37f47f99ff00eaf56fff00483ff5ff00156c58f99c0df58b627fe604ff00d9462aefa9799ffeaf16d
ff482dff6518ab46c7cd3db59b5affcc037fd94e2ad7d43cd5ff57ab5ff00b87b7fd94e2aefa879affeaf5
6bff70f6ffb29c5507aa49e68d22d05fbea56b72893db47241f5268f924d3c71351beb0d434634db15
6518abb157fffd0f715ff00fca57a2ffcc2ea1faedb154f315762aec550d657b0ea16ff00598048b1f392
2a4d1bc2fca191a36f864556a554f16a5197e25aa9071544e2aec5546eff00de49ff00e31bff00c44e
2a977957fe517d13fe602d7fe4ca62a9be2aec55d8abb15762aec55d8abb15762aec552cf31ede5e
d58ffcb95cff00c9a6c556f964f2f2de8e7c6c6d8ffc915c550fe71d76efcb7e5fb8d5ecad92f2e6296da
24b796430a37d62e638092e15a9c43f2e9db1579d597e6e6a9a52cda5eaba45c6abab4bab5dd96
92d14d6d17d621fd373e99172af054f4cac6a49f8997e3fb55c55348bf37e3be9746874dd2f936b72
5b4966f3ce151aca5bdfa8cd25551a8f1b94223fda571f15432e2a91691f9cba89b6875cd534e9a76
d6349d26e74af2f69ea6e64faedebea6cea8e91f33ca2b35eab4561fb20b362af61d36f0ea3a75a6a
06de6b43770c739b5b95f4e78bd540de9c8b53c5d6b461d9b154562ac76c987f8df595ee34dd34fd
f35ee2ac8b15762aec55d8abb15762ac56d7ff002646adff006c3d33fea2f50c559562a9736bfa1adc
4968da9daadd446412c2668c3a1811249792d6a382c88cd5fb2aea4fda18aa53a0f9f3cbdad69136
acf796f65f54778f51b79ae612f6ac9349081315621791898ad71556d73ce3a4e8d1064912f6e16ea
c2d67b5b79633344ba9dcc56d1caca4d78832ab7b8e98aa1bcf1e7dd1bc8ba1df6b37ec2e5f4f586
59ac219235b8f4669e380c9c5d87c2bea72627b0c553297cd7e5b8ad0de8d56d6583eaf2dea1867
8e4e76f0066774e2df10011b71fcade18ab1287cf3a4f9d7caf34f62c91dc23e9776f6ab3473ba5adf
5c452db48e632403220af1eab8abd1715762afffd1f706a35ff16e85e1f55d42a7e9b6c553ec55e31f
98be5af37eade6bd4e7b3b5d56e2d868d2b797af34dbbb7b6b58ae8da5e4135bdcabb2cc4cad2c2
f188fe067546778fd1e58ab06d56cf5ad0fcc1a4e8778357b4d37ebd717ff0056b7b88e4682cb868e
c6ed55aed2524dca5cc3f0fa9c527b8fdd7ef1392ac847977cf6daa5bde1d3b535bab5b990d8dc3cf
ce284cde65b8944850cf4651612fc5504fa47d2fb5f00559d7e4fe8face93a1dd36bd69a9d8ea9752
44d7f06a9736f70ad7b0c090dc4d6a2d8b2ac32ba7a80b11248ccd23a216dd57a2e2aa377fef2cff0
0f18dff00e227154bbcabff0028be89ff003016bff2653154df15762aec55d8abb15762aec55d8abb15
762a96798c57cbdab0f1b2b9ff00934d8aacf2b0a7967451e1616bff00265715446b3a3d86bda6dc6
91aa46d2d8dc8025547789fe060ea55e32aca432820a9041c558dc9f963e4af5edafa4b497d6b198
ddc3335e5cfc331bc3a81724cbbff00a41329e5f2fb3f0e2a8a8ff2f7ca51348f0d898cbcf1dd4652699
7d178ae05d81051c7a48661ea3471f1466fb4b8aa5f1fe53791628d2de0b4b8896dd6d96d8457d76
8f6e2ca59a683d1759834450cf28050afeee468ff00bbf87156696f0436b0456d6e823821558e341d
02a8a01bfb62aa98ab1cb21ff3bd6b47c74cd33fe4fdf62ac8f15752b4f6c55d8abb15762aec558b5af
f00e4c8d5bc7f41e99ff5177f8ab29c55e63ae7e524baaf9ebfc5f6dae5c59d9c93dadcdd692801865
78e16b6bb04d46d71025bc67f97d22dfb5f0aac6f50fc9af345fcfa75dc93692e74e76964d3e5fac359
defaf73a919639c2a210be8ea1556f8bf7c9baf06ae2a9a3fe546b497376f0b69069a8595d69d7be8
cd0ddad9457f6b7d35ab105d5115adb8c412bcc7a7cf87a7f1aabff0032bf2a759f39de6ad73a55ec1
629aa59dbd95d452cb335bdc8b6b8867479a0e0cab247c24549a33c9e393d2914a8565550373f9
4fe6f9352b2bb82eb4a4b5b3bdd46f9601eb46dfee427d55c21648fe20a9a825037c28d1cbc07ef4b
62a9b58f93f53f2968b73f5e9ade78a5b4f2e59b180b86171a63456d26cca2a8d45643f6ba82b8abd
4f15762afffd2f70ea07fe76ad0c78db5ff00fd8be2a9ee2ac2fccbf997a1f95b55bbd2b5349164b3b04
d4a471c4728a591a18fd34af392b2058d9915846f245ce9cf156309f9b9a0ea9a8e9eb7fe4fd4bd78
444e6e2e6dadda5b59ae9af6385238da4f599a57b0708624a32bc4fd1b1547db7e767966e6dacef6
38257b396decaf7509e278a44b3b7d56e9ecacde42ae797a9323232a55a1e2deaf1e38ab2cf2679
a1fce3a141aff00e89bbd1edeea8f6906a060f5a481915d65a412ca14372a519b97c3f67a62ac8315
51bbff007967ff008c6fff001138aa5de55ff945f44ff980b5ff0093298aa6f8abb15762aec55d8abb157
62aec55d8abb154b3cc5ff28feadff30771ff00269b1559e56ff946745af5fa85affc995c5509e783783c
b1782c2d2e2fa766811adac98a4e6269e31295e2f1b30542ccc8ae8cea0a2b2b35715789699a4fe6
26b1e58d5348f36e8dafc9aca68aeba65d8ba48ad668d6d1a17b59a38ee2a6733a734af22fce36f5
782be2a8982cbf316df54d7a3974bd7a4d2bd6bf1694ba62ad6779aa69f2db08c7d6391f4a0371c9
0707e02487d44e58ab5a2e8be7e3a72dceaba76b297da9416075f92399a2ba7b8834592da374e1
315052ee306409f09e7148fc90362af40fca7d23cd5656daadef9de6bc9fcc724f04323dccf23db324
7656dcdade2e662553399be2455e5feaf1c55e8d8ab1db2ff94e759ffb6669bff27efb156458abb157
62aec55d8abb1562b6bff932756ffb61e99ff517a862acab157977987f34b54d27cc975e56b4d3124
d5a59e3b6d16398fa71dd7a911904a933ba44ca1d5a178f9a4d1cbe9fc0e244aaa9627e6e79abd4
d4b96856b70d686682dececa76b8b879eded74eba9154fc2929a5ec88891b5657890237ef765565
ffe75df2e8b36bda2d95a6a964933e9f132b4d187b94d1bf4b89eacbc960600c5464f514fc4ddd715
7ae6987526b080eae205d48ad6e05a173006a9fb06401a94f118aa2f15487ce269a04a7fe2fb3ffa8
b8b154fb15762afffd3f706a3ff00295e87ff0030da87fd8be2a9f62ac43cd1f96be59f38dcc975af24f7
0c6268a04599905bc8c8d1fad015f8a39006eaadc792a315e48a42a839ff002a340ba94cf717fa9c9
74e2c8cd72d75fbe924d38dc18a467e3c8313752962a57f678f1e0b8aae8bf29fca50ddadfa4737d6
e4657d424e6a3ebcd1dcfd722372a102b18e7fdea7109f1579720cc0aac9fcbfa2db797344b0d06ca
4965b3d3a14b6824b860f298e3145e4c02d4d3db154cb1551bbff007967ff008c6fff001138aa5de55
ff945f44ff980b5ff0093298aa6f8abb15615e61fcd8f22f95f50bdd3358d4bd3bdd3e16b8bb8a28dee1
915044c54ac419b9719e36a53756dbbe2aeff0095abe4ef574eb737170b71a9cdf548a26b59f9c57

895

26e65b358e650b58cb4d04b1af2db946dbf4c550f67f9b3e51f4ac96faf9c19ace1bd9f51faa5c5b58a
24f6b25e2167941f4f9c70c8ca8cc5871e2df152aaa6761f989e56d4f421e60b1ba69ac9af0e971c6a
84ccf7c24f48408a3ed316e841e34f8b971df1550d27f347c9bae6ad6da2e99772cf7b7223e27ead3
ac4af34534c91bc8c8155cadb4df013c8346ca7e2c5598e2aec55d8aa59e63ff947b56ff982b8ff009
34d8aacf2b57fc33a2d7afd42d6bff2257154db15762aec55d8abb15762ac76cbfe539d67fed99a6ffc
9fbdc559162aa2f731477115ab16f5a65778c0562b48f8f2ab01c47da1404efdbbe2abfd58bd51073
5f58a9711d472e20d09a75a54f5c557e2aec5562cb13b3a23ab3c442c8a082549018061d8d0838a
b19b5ffc991ab7fdb0f4cffa8bbfc5594e2a935ff947cadaaadda6a9a3595ea5f98daf52e208e5599a1
65642e1c104a95520f8aaf862aa53f923c9d732cb3dc6836124d333c92c8d6f196679163566278d7
9111462bd7f769fc8b8aaa5c7943cab77ea8bad1ace659ed8584caf046caf6a05044c08a14a6dc4f6
db154e238d228d22894246802a28d8055140062abb15487ce3ff001c09bfe33d9ffd45458aa7d8ab
b157ffd4f6feb716a31eb3a56a96562f7f1dac77714d1452451b833fa454fef9d011f01aef8aaefd37ad
52bfe1abcf97af63ff006518abbf4deb3ff52d5eff00c8fb1ffb28c55c75cd641a7f866f88f113d87f1b9c5
56fe9ed67bf962fff00e47587fd9562adaebbab9153e59bf5f9cd615fc2e7156ff4e6afff0052d5f7fc8eb
0ff00b29c554e7d6b5a9219635f2cdf55d4a8266b0a7c4295ff007a71553f256ab6f75a35b692e925b
6b1a45b5b5aea7a7dc2f09a1944400af50cadc494910b23fecb62ac9715762af3ff0030fe5469fe606
f314526b17f69a67998c336a1a741f57f485dc0214f5d19e16901648235642e63db9f0e7be2a905cf
e5b6b36be77d3752d3dde6b0b233de45793c5653422e350d4e7beb95951f84aa6312ff00a33461f8
d4d78b559d5460fc96d16f7498b4cb9d6af2ef4b782d609388815a68ad2cae2ca322444d894b82fc
97f6d508f86aacab279bc906f740b2d2753d62eefb52b0bbb7d4adb5895608e65bbb470d1b7a50c7
1c5c76e2e810060cdfb4dcb1548f4dfcb1f2ef9635a8f588b589a19c4d06a12c33b5b8595ece1bc8d
ddaa80d1cdf4924841d9b8fd95d8aaf47565650ca432b0a8237041ee3156f15762aa73c115d412db
5c20920991a3950f46471420fcc1c552087c8da05bc315bc06fe3821458e28d753d402aa200aaa07
d63a00298aaff00f0668bfefcd43a53fe3a9a87fd9462aeff0006e8ff00efdd47fee29a876ff9ef8abc5bf
3d7ce7a2fe556bff963a525eea118f35f98e2b2d497f4a5fb39d37818a53bdc6c04b3c0c4f80c55ed1f
e0cd27a7d6753ffb8aea1ff55f1577f83349ff00969d4ffee2ba87fd57c51610000026060f002220574d
464301000000000001000000000000000d00000000200000f4450100f48501005dfe0cd27fe5a753
ff00b8aea1ff0055f1546695e5ed33469ee2eacc4ef7574b1c73cd73733dd39484b1450d3bb900176
341e38aa6b8abcebf342cbcc57a163d0535062fa3eb11574f95e102f1d6dcdad4a3a51f92b7a6dfb3
f1ee036eabce65f2df9dec6fafaf1348d5ee6da3faed82491ccb35eb6889affd6043134f354bb5b3868
b99e4d1a347c835062a9ac5e4bf314f7da7b5d1f314b1c5ace996f70f75a9ceaeda3a696a25328b5
9a384ff00a42afac513fbcfe652599562cba7f9dadfcc1a65a79aadfcc10683733d869324515fcaad79
71047e6092630fd5ee799063366dccf0e423427fbbc55e9bf933e5ef327975bcd70f9a6dee06a97b7
d6176da94eeb2ade5346b1b791d595daacb3432ac9b2fc5bee08c5539b64f335ff9a752f32e8f6b05
be9b2dadbe970aea7eb4334df529ae2469d1154958d8cfc539d19b8f3fb2cb5553a57f3bfed43a51f
94b723fe659c55ae7e77a1fdce955edfbeb9e9ff22b155c24f3aefcadf4b27b527b81ff00328e2adfa9
e73a7fbcda657fe622e3fea862aef53ce7ff002cda67fd245c7fd50c55b1279cbbdb699ff49171ff0054
31541ea563e6bd5ed7ea1731e9d040f2c0f24b1cd3bb85866494d14c4a092169d462aca315762aff
00ffd5f7f62aec55d8abb15762aec55d8abb156a82b5efe38ab1fb9d4b5ed1aee47bfb4fd27a1c8e4c
775608df5ab64245165b7ab195457fbc87e3ff008a7f6b156420d457157837e637e6379c348d4bcd
b6ba2ea634ed47448a2365a43591bb69ed2e4d97a77c8e62e2009249e26ac8c36e3e9abaf2c554
a3fcc5f339f31f96fcb53799ece1966bdbd86e27bc4b685af6d2c357bbb2903a9455f55e18a1f43d00
2b27a85d783262a8183f323ce165a569fa8e957c97b143a769e2db41b7b48228ee26b9d1af2e9f88
8d39a9596d94a469c40f8a2e2dc968ab34b4f376b337906c758b3d73f4b59df6b105abf9960b7589
a0d2aeae154cc44912465a20de9bca6158d77764f81b15799eb0759f33eaf677dafead3a5d1b8f27
c46dd61b5317a33eb17f13caa935bbb27af024534a95e3fbca38f4f82855f51471c70c690c28b1c51
a848e340155554500006c0018aaec55d8abb15762aec55d8abe13ff009cd2fc9afce6fcd2fcc9f2e5ff
009574d864f2dd9c10e95a3ced79040eda8dc196e656e2ee19768d5791ff007de2afafad3cc5ab68
3f97963e62f38e9b2c3ac5a58db49af58dbbc570f0cd444b860e18232464b48cc1bfbb53df6c552eb
bfcd2d29a7bbb0b2b7b9f522996c3ebfc11ede3bbb959beadc873e4524f46a1b8f1a491d7ed7c2aa
45a0fe73aa7962e759f32e9f2245a4dae96f7d7d6ef0f19a4bfd2e1d424758d9d386f2f048eacccdd3
154ce6fcecf2b432ea517d56fdd74e95edfd5484309678af66b068d143970deadbc94e48b58d7d4e
8462acef45d560d7347b0d6ada29e0b7d42de2ba8a0bb89adee116640e16589c064715a329e871
54762aec55d8aa1aef4fd3ef5eda6beb68a792c65facda492a2b98660ac9ea2161f0b71665e43b13
8aa53a2eb17faf5d3ea16b1ac3e580852ce5914faf78fcbfbe415f82100512a394b5e7f0a71e6aa7f8
abb15762aec55d8abb15762aec55d8abb157fffd6f7f62aec55d8abb15762a87bf90c5637328058a4
523050c509e2a4d390048f9e2af139ff003ab59b6d0d5f4cd16158c69492d9dcde5ecb7328ba7f2fb
6b518947a4a5d404313bfa9cddbe3f1c553d97f35bcc2279a3b3f2e4571691ea50e809a8cb78b042
daa35f43632af00924be9832348adc3eca51b8975c55c3f34bccb0c175777da258c56f12eadf5758a
f6596476d0afa3b29f9036e8143f32d1d391e9cb155b37e68f995b5ab2d21748b4b64bdd45edadee
0dcc93f2b6b2d67f455c7351147c1dc15922ddd7ed2b7d9dd57a3eb365a95edb47fa23503a75fc12
09a290c6b34325011e9cd19a168dabbf0647e9c5c62aa5a2dfeaf75ebda6b7a6fd4af6d4272b885c
4b67701ebf142c68e29c7e247452951bbfdac556dd795f48bcd6175c9966faefa71432225c4c96f2a
dbc8d2c5ea42ae23728ccc54b2d77c5538a0f0c55b201143b838ab541e18ab78abb15762aec55d8
abb15762ac43cf3fef5f93ff00edbf07fd42dd62ac9b51b0b4d574fbbd2efe31358df4325b5d446a03c

5329475dbc41231562abf95fe5286e2dee2da29edc5bda5b597a2933fa4eba7c4d05ac922b57949
0a3b0473e3f1f3e09c5549a7fc9efcbeb80342696f1267b38a392de3be963924b5b7b3fd161982915
ac3c2366a54944ef5e4aa5ba17e516a2f3eb87cd3a8ce1351bf6d4a196c6f5da45bb8ee7d6b6b985
9ade392078d3f7663696e1194f1fb1b62af58b5b68aceda2b48397a50a844323b48e40eecee4b313
dc93538aab62aec55a665452ee42a2825989a0007524e2a91e83af5c79867babbb5b609e5b4fdd5
85f3b1f52f1d490f2c694a083b46e4d65dd957d3e0ceab1ffcc5f3bb796445a24486deef57b2be3a7e
a0ce21459ede067e1112acad301fbc4898a99111fd3e7c1862a9268df9af7f1d8e9b6bace9483525
b9b0d36fd92f04accf7d169ef1cb1a88959aa2fd5a5f85638ca32fa879c7c955bf97fe71f31ea1e7497
40d5b8cb0df69fa86ad2bfaad20825b3d5a4d3a38605f4d38c6634e4d5a9e7d298abad3f3aa69aca
3d46e7cbe60b6f4a1beb88d2f165992c2e6fc69cb285f49559c4824768f97f769f6f9bf0c55017bf9dfa
969be5ad3750bdd1a0fd31abe977b7d68b15c16b75b9b4b2bebd449178fa8b195b2e258d3933feef
9f072aaa3ae3f36d742bdd62c2eec67bad56d62bbd5e7b669d3d14b0d334dd3eeae4db911823fde
c411c4fbb3fa8cd222d315649e50fcc197cd5abcb60da51b2b268aea7d3eecce2569e3b3bb368e5e
308a63afc0ebf136cc6bc78fc4ab37c55d8abb15762aff00ffd7f7f62aec55d8abb15762ab258a39e27
86550f148a51d0f42ac2841f98c558f8f207929551068567c23411469e929511adb1b20a074a0b72
61ff8c7f07d9c55b5f21f9312692e1343b35b8964b79e4956250ed2d99430b9237e4863421bafc0bf
ca315549fc93e51b9812dae745b49add26b8b948a5895d44d7ac5e76a3577918f27fe66df154bbcb
be40d2f4ab1bcb7d521b6d46e6f2fe7d464b91018cd65bd7be8968cf21ac523ecc08a95e54e58ab2f
c55d8ab19974ef30e89335ce8331d534f9242f368f7f29f513d472cc6dae5aa452a488a5e49fb28f12
e2ac9aa2b4ef8aad57462c15812a78b006b434ad0fd07155d8abb15762aec55d8abb15762aec558
879ebfdecf27ff00db7e0ffa84bac5519e7c4d624f2adfc7a05c35aeaefe90b69824aeb5f552aaff0057
fdea238aa3c917ef22463227c4b8abc57546f3beb9a6de26b11798eda7b5b9d22597468619e584e
9b1de69b70244bb8957d69630b70b20897d693f79ebc7c563a2a9869afe73d3eca4d261975db7e5
3de3dcc8d15ccaeaf2f99d3e28e59627a86b376238964115596942d8aaef2af993cdb27997cafa6f9
8b51d46d6186311dd3cf0dcc6924bf59bfb78adeeff00d1da232dc20b5911e49217f83e0e5eb7c4ab
def15762ac13f333f373c9bf94a9a05cf9d6e8d8e9fe60d4974986f6958a095e2925124ddd620502b
3fec720cdf0f238aa79a26bd63e71b6bd96d6d85cf9664021b4d41cac96da846ea44ad12d0f287f65
5feccbf170aa519954f51123458e35091a00aaaa28001b0000e8062a916bde4af2cf99e75b8d72c4
5d4a919854992441c0f2a6c8ca39297628df6918f242a7154a66fca6f20dc4c9733694cd3c650a49f
5aba56ac51dbc49522515e2b69071af46891fedfc58aa65a4f917cafa25f5aea7a759347a8d943736
b6f74f3cd2c820be9feb3323191db98697e31cf97035e1c6b8aa845f971e4d822d3218f4d022d2390
b2532ccdf034e2eb849c9cfaa8265595525e6aaeaaca071c552e7fc9afcb69258a67d1033c2af1c55
b9bae21245b88d978fab4a70bb9906df0a3f05f80280aa37fe559792b890da7339320959e4b8b891
dbfd1a3b3642cf21631c90c491cb193e9ca117d4566df1547e95e4cf2fe8baa3eb1a7432c77ceb728
4b5c4f24616fae3eb53058ddd907297e2d97e1fb2b45db154ff0015762aec55d8abffd0f7f62aec55d
8abb15762aec55d8abb15762aec55d8abb15762ac6fcefa64d79a0dddee99a7bea3e64d3a09a7d0
a2827167706f3d321112e19942073457e47815fb6ac36c55f9f5f979f997ff003923f903f997aa7997f
38bcb5ad5cf93fcd37cd3f9b1beaa67b649dc041756b25bd61568d555782b70789787eca32aafd07
b4f3df946ff00cbba7f9aec35682ef41d5911f4bbab7265373ea7d9489101777aede985e60d415db1
55a9adf99afb9b69be5d304140609b55ba4b532577afa70a5c3a8ff5c2b7f938ab5f5bf3f7fd5a348ffb
895cff00d90e2aefae79ff00fead1a47fdc4ee7fec871577d73cff00ff00568d23fee2773ff6438ab7f5bf
3f7fd5a349ff00b895c7fd90e2ae177e7daefa46934f6d4ae3fec87156feb7e7baff00c7234aa7fdb4ae
3fec871548fcc363f981abdce832a695a4aae97aa477f29fd253d4c6904f1102b63d6b20c553dfadf9
ea8bfee234bafed7fb919ff0ff0042c55b379e7704d347d30af6ff00723383ff005058aae5bdf39d7e3d
1f4f03db5194ff00d89e2a943687a8b6b8de633e57d33f4d384592ec6a3302fe8865899d45a716640
c42b302ca36538aa726f7cdf4f8746b1afbea32529ff4898ab42fbcdfb72d16cbfcae3a8c877f6ada0c
55f37ffce4a7e4f7983f3db58f2b5af9a2f9fc91e49d03eb4f7976621a924d3dcb46a1c3c0c12250894
125cfa60723b62af6efc9cfcb2b4fca4f24daf93f4df306a3e61d2edc992ca7d5248a530c4e01114062
44e310eaaa4b52bf09a62af40c55d8abb15762aec55d8abb15762aec55d8abb15762afffd1f7f62ae
c55d8abb15762aec55d8abb15762aec55d8abb15762aec5505abea96ba2e9b73aa5e876b6b642e
c912192573d1511177676242aa8fb4c698ab1ff00287942db497975dbdb382df5fbf324d3436eaab0
5a0b860ef0c2aa0282c4299e40394f20e6e7ec055596e2aec55d8abb15762aec55d8abb15762aec
55d8abb15762aec55c402284541ea31561c205f22dfdb8b3558bc97a84cb6ef683e14d3ef6e1c2c4
d10e8b04cedc193a472b2320e2f25156638abb15762aec55d8abb15762aec55d8abb15762aec55f
ffd2f7f62aec55d8abb15762aec55d8abb15762aec55d8abb15762aec558b79a5d27d6bca9a44a81
e1bad45eea5049a7fb8fb69678fa7522511b0aff002e2aca715762aec55d8abb15762aec55d8abb1
5762aec55d8abb15762aec55d8aa57e63d27f4ee81a968e1fd392f6da58629a9531caea4248078a
35187b8c556f95efaeb53f2de91a8df53ebd75656f35d71145f59e2532507872ae2a9b62aec55d8ab
b15762aec55d8abb15762aec55d8abffd3f7f62aec55d8abb15762ac2bf317cf4fe46b3b6bc4861bae
7ce592d59d85c3c51490a398d5548a2fab57762153e11462e3156377bf985e61be8f43b8d38e967
4ad727b950893ccd73f5786cb509bd3764e3e949ced514c8bcb8bfaa9c2b1f26550de5dfcd4d52ea
c2c6da5b4b3b2964d3348d5ad85d5ccd3bb69daa5ac488e490d2cb20bc66b71b729481fb6f8aa57
a7fe7579a751ba31d9e956f7373a9da69ffa0b4b5fddbfd76787529e659a696545e2c2c38a8d8a72f

897

dbe26aabdb74fb992f2c2d6ee68c432cf0c72c90abaca119d43150ebb3004d390d8e2a89c55d8abb
15762ac4fcc5ff298f937fe336a1ff504f8ab2cc55d8abb15406b9ab41a0e89a96b974acf6da65acf7b
3227da296d1b48c07b90b8ab04d3bcdfe69d374ed13ccde6c9eca4d23cc16b11874ab28192f62d5
2f8c2d696703bce567e4ad22b332c7f127a9f027c2aaa227fce3f2afa124da7c37ba815b596e93d1b
7658da486dee2e3eae6490aaacac2d264e27ecc91957e3b5555f6ff9b5a14f2fd4c69daa1d480850
da2da962d7335a25f1b78d8b057912ddfd57e278f1e84b7c38aa6be4bf357f8adf5cb882586e34ab5
bd863d26e60565f56cee74fb4bc466e44d5ab70dd976a7c35c5589d97e695e5af98bcdb6be66f4ec
6d7cb4d3cb2e8c2d65fd2074c124696da8c327a8567b790190cac89fb865e0e6aa792a9eebbf9a7a
068b6fab34705cdf5ee936775a84b690228678ad1a58c952cc3e167864557fb155a315664565552
4fcd3f29457d71a634b3bea16cd0452410c0f31335c5ca5988c7a61be259a458deb4a135fb356c55
32f2bf9db42f37fabfa1da7ac30c37256e607b72d0dc34888ea1c0a8e70ca87c191bdaaab23c55d8a
bb15762aec5522f25ff00ca25a26d4ff42836f0f8062a9ee2aec55d8abb15762aec55d8abb15762ae
c55d8abfffd4f7f62aec55d8abb1543dfdf5ae976373a95f49e95959c4f71732d19b845129776a2824
d00aec3154b750d0bcade6fb5b3b9d5f4cb3d62d38196c9ef208e70a97082a53d4534e6b4ae2aa4
de4af26245731b683a72417974750ba5fab42ab2deb828677f845642188e67e2f88f8e2ab6dfcb5e4
dbfd24e9b168b66fa3c70fe89faa4968a910b6b39481004741fba475aa00387ed27638aa9cde41f21
4d17d4a7f2e696f0baa01035a41c4ac1335c25178f44964671fcaee5bf6b15648aaaaa1540555140
06c001d862ade2aec55d8abb15627e63ff94c7c99e1ebdf8afbfd4a43fc3156598abb15762aa5736d
05e5bcd69751acd6d3a345344e2aaf1b82aca477041a62ac293f2bf4d1a3e99a1dc6a97d7361a0cb
6b3f97c4cd117b292c24592dd8308c7a850288c1979d62e4ad52ccc55535fca6f2fc512dbdbdcdd41
6bb738a33151d8c179048c498c9ac9f5e9a4635fb7c78d1471c5552d7f2c6c2d15655d56f5f5486f2
3d46db51716feb453c7a72e94d455842157b75a302bf6be25e3b5154e3ca7e4dd2fc9b15e5ae8ef2
0b2ba781d6de42a56216b690d9a2a10a0d0c70257916f8b91ef8aa49ac7913835deb50fabe62d51
2d751b2d374cd4668a18120d6a78e4b988ccb097318080207e7c51780a9a62a859ff26bcb979a5e
99a65c4f70aba5e94da3da49114f56249ad65b59dd247467fde8979caac592492389dd4b262a8ab
7fcb082dbd78d75ed4a4b49752875a8ece436fe843791dd45792b22ac2a78cd345cd958b70e727a
3e9f3c5532f297912cfca33bcf6b7d7175ceca1d3f8dc08a823b7b8b9b956fdda2fc5cae9d4f6e217b
d495595e2aec55d8abb15774df1548bc946be51d10f8d9407c7aa038aa7b8abb155a8c5c1254a50
9146a6f434a8a13b1c55762aec55d8abb15762aec55d8abb157ffd5f7f62aec55d8abb1579b7e6fe9
9af6ada6da58e9fa7dd6a9a3dc477f0ea167a7cbe8dc7d624b475b372deac27d3597edfc5f699198
715a855e6b71e5efcc15d235143a1ebd2eb372f69637890dedbc561f51521ade58624995a4302d2
39a31243fb75791715470f2cf9b7cc1a2491f9bf42d66e75a863d1e4b87fadaadb5d59432d84ef07a
4971f15cc4f0cfcb64f88bb7a8c25518aa6969e4ff003936b506baf1ea53a4f77adc3a85acf7cd1916b
6baa4ba9e92f1f37600c944b7af685d55fe18f8e2ac60795ff30fea96f7fa7e89a9c3aad9c1aa4369eb
c88668ad2fa5d2ae65850bdcc80c924715ec71bb9fefcd7f77c978aaf79f24d9cb61e56d36ce55bd4
10c65624d564596f962e44c6b3325472552052adc46ccccd8aa7f8abb15762aec558d79ce09e3b3
b1d7ad62335c681769a898951a491adb83c1722355dcbfa12c85147da6017156416d7105e5bc57
76b22cb6d3a2cb0ca86aaf1b80cac0f7041ae2aab8abb15762aec55d8abb15762aec55d8abb1576
2aec55d8abb15762ac7bced7935bf97ae6cec5ca6adab7fb8cd338101c5cdd828aeb5ff007d2f295b
fc88d8e2a9b695a75be8fa5d9691695faa585bc56b072356f4e0411ad4f8d062a8bc55d8abb15762
aec55d8abb15762aec55d8abb157ffd6f7f62aec55a665452ee68aa09627a003156127f35bca3fa52
db4c596e185cd9cba825e7d5a51008a296d625152a09695aee2f4b8ab07e5d715529bf38bc88b7d
6fa5da5e4f7fa95c3d9a0b6b4b3ba98a2ea12fa31348e23e083972079372f8585392918ab21d47cd
be5ed26f9b4ed4af56dae5216b97e6ae2358d52490d5e9c41e1148dc6bcb8a1c552f5fcc9f2635396
a3e97ef5ede6f5619e3f42647922293f341e912d14817d4e3cb8fc38aa5f1fe6868571acdadb5a4a9
268d25adfc9737644a93c579a7dcd9db7d5cc2c818b31bb5a7ed1f87883cab8aaeb6fce1fcbbbdb8
6b5b2d63eb370915bccc90db5d380b79fdc82c22e3c9f7a2579fc2ff000fc0d45561fcd5f2c36a62d5
6f12daca19e686e2eaf229e249961d317552f6ce10a3aac2eaec58afc3cb8f234c551171f9b3e40b4
bbb6d3eeb56f42feea47852da4b7b91223c524113faa3d2fdd00d75055a4e2b4951becb62acd3157
62aec55d8abcb6fbce7a07e5c6bf65e5ab6d460d46d7579cc561e55b2759f57b49492f21b7b78c96
7b65af275217eaeb5e05938c68ab3bd1fcd3e5dd7a212e93a941715255a20dc264653c4abc4fc5d1
81142aca0e2a9b5478e2aea8f1c55ba8c55d8abb15762aec55d8abb15762aec55d8abb1548754f3
8e87a64c962b31bfd5e62cb6fa5580facddbb20a91c54d1078bcac918fda718aa45a5ddda5c79d20
8fcd975041e756b292ef44f2faca592dac1d84733c6c42acf372004f228fdd2b2469446679956778ab
b15762aec55d8abb15762aec55d8abb15762aec55fffd7f7f62aec556ba9646556e2c410186e413df
7c55e4b07e48369f34773a2f98a5d2e5486eadfd0b7b65faa2477b7365752470c464fdd44f2599324
48dc0fd62609e9fc345511a07e4e49a05b5c410ebbea17934a9ad5bea6a8226d1ef25ba40544b46
0e252840e3c69c87862a8cf3cfe54c9e78d564bdb9d7a6b5b27b76b78ed5608e4780c96d3dbb3c3
2311c6a66592851aaf1af2e49f0aaaddcfe59eb5a9bde1d5fcdb71730eb5a61d2bcc50c567040b721
0cde9490d0b7a1c44ecae3f79ea2d3e2077c552ebefc98b8d4f4fd3edafb5d84de69d03ac53c1a65b
c101bbfad59dd4731b657f4caf3b24f52235f539c9f127c1c15577fca0b8326b7345e6030bebada51b
a8e2b38e3b711e951bc6d0fa49228314a1fec7ec715e5ea7c5c9541dd7e46c57f656fa65eebaed61
1f2698456cb14af23e863432cafea109f02accbf0b51c5375c555b56fc976d6355b8d72eb5c2353bd
8668af5c5aafa6ed34ba5b8655f53e1e2ba5c6b4ab54c8ed5fb23157abe2aec55d8abe35ff9cced03f
387cd36165ad7e54ea3e601a1d94e9a46b5a2583c96b0dcdc4d37a51cd0a46c92ca03b7a52965f4

7ec3a31a48d8abd0bfe7163fe71a34ff00c8ff002f9d6f5ee17ff999ad440eaf7d5122da46c797d5606
3bd01a195ff00dd8e3f9157157bbea3a0685ac3c726ada65a5f4917f74f7304733257f94ba923e8c5
507fe0af287fd58ac7fe91e3ff009a71577f82bca1ff00562b1ffa478ffe69c55dfe0af287fd58ec7fe91e
3fe98ab5fe09f287fd58ec7c7fde78fafdd8abbfc13e501d343b21dbfb84fe98ab7fe0af28effee12cb7e
bfb84fe98abe6bff9ca5f3ef957f29fcc9f955a75be9d6b047a8f9823bed755624557d22d87d5e5590d
3a1371cc0fe68b157d2bfe0ff29c8a0fe87b464eaa7d242294edb7862adff83bcac0d46916a0f8fa4b
8abbfc1de5606bfa22d6be3e92f7c55dfe0ff2b56bfa22d6bff18d71571f277958d6ba45aefd7f74b8ab
47c9be556fb5a3da37b344a47e23154c74fd2f4cd260fab69767058db5797a36d12429c8f53c5001
5c55f337fce73f95b5397f2d34dfccff002bcd358f9bbf2ff508efad753b47315c4369764413716143f6c
c4c7fc956ed5c5533ff009c45fcff00f36fe76f95674f36e81710ea3a305825f3445184d32fe45a0206e
38dc004348881a3fdafddd553157d05adea69a268da8eb3242f711e9d6b35dbc1153d4916de3690
aaf220723c682a71561d7bf9c5e51d2add27d5beb56a1e06900109981b88ade3ba96d54c45ab347
1caacc3ec9f8b8b31460aaa6917e616832e88fad84b95e17e7473a7490f0bcfd2226f405bf0621793
311c4f3e054f2e54c550169f9bde4bbf96de2b29ee276bab4faf4012de42cc0c11dc888a539890c52
a3d1942d0fdaaed8aa65a0f9ff41f32df2e9fa48b9924fa9c7a84d3342cb6f1453bcb1a0797ec722d0
4838a96fb07b531549e4fce6f25c704d701af258e02c64315ac925204b6fadfae4a82046610d2549e
54561c797c38aa632fe64f9763bcbfb148ef279ac5598b436cef14de9cff0056904527d826397e07e4
569f6becfc58aa841f9b3e48b99c436f7af206b7174265864310adb4176232d4da4f46ea07e27fdf8a
3ed720154bef3f3634eba6d0879651af5751d5edb4bd45a586455b559a69eddd5cd578ca1e070bf6
90f1afd9746655e8f8abb157ffd0f7f62aec55d8abe7fbefcebf36db5d59dc5cdada58c76a3596d6348
68a491c8b48ad8d9b47722428f038b8fac7af1a957847d947475c5532d6ff0037bce5a2bea310d33
4ebb6f2fcb70ba9b033c5f5d4b6b9b08cfd4d6b270664bf028ed25268f86fcfe1553ef3f7e6bc9e4ad7
65b2f46daeac2dec25b9b950e5678a74826b84f51890aaa561af10aedc3948cc9c5564550f77f99fa
ce95fa516fa6d0eee5f2fda9d47514b4b8955af2d256ba111b40c5b8c8a2dc7343ea8e6c53d45a72
65521bffcc1d774ed7349d63526b46d427b2bdb08e3b1ba32e9ac2ef52d2a1b3b99a3f5ca2941744
bfef39713b48ab27c2aa24fe6d79ca39f5ab6bbb4d1ada6d121d2e3995269ae8cd7da9a3bb2c3c0a
ab05113514b2f5f8a5511b16552dbdfcddd5ec641e63d52dadaf6c61bab87d3ed6da49e192de05f2
b26ae55f83b24f577652ee9445f8d1390145530d63f393cd5a2ebeda04ba7e9b74da799a4d46f627
99239e08a7d2107d592afc58a6ab43cddc078bc1fe155edf8aa47ad799ed74ab98b4cb5825d4f5db
801a1d32d00690212409666242c315450c8e7d939b7c38aa37491ac1b4e7ae1b717ceccde959f33
14487eca737ddc8eefc5397f22e2a8fc552df30c9243a06ab34523452c76770e92c678ba32c4c432
9ec41dc62af2bd0bf34bcd31a69ba16a1a459b6a0b630de5d6a571a93c76e6d469f1dd991e46b63f
bcda40e1a8abf03f3e2df0aa80d37f36efb53fcced1b4f68e4b4b5bdb7d4b4a6b595e54b16bcb4b8b
29967dd010ed0c8eb00650d2b7c229cb15671a1fe625d6ade59d4bcd175a5c7a669f0dac5a86952
dede411c7736d711734690a17684061c0975dff641fb38ab1b8ff3a358b8f4ee2dbcb913584020fd2
465bc786e13eb1ac5d68e0c70b5befc64b712b2bb237062bf6d7e25529bbfccef31eacde5cbeb8b1f
d16b35bbea9259595fbbc575657de5ebebe8a2925f461610000026060f002220574d46430100000
0000001000000000000000d00000000200000f4250100f48501003292472dbf508dc68922f5e38ab
21b5fcddba9aea182df427fd132dddb6896fa9cf7518075599add3d2743590a8133b7a817fdd5f67f7
ab8ab2afcb4bed4351f2569d77aa4cd3dfbb5d2cd2bc86624c7752a01cc805800a0034e98abe63ff9
cacff9c60f32fe717e61687e675f35dbe9da65cfd5bcbda769d2db493184959ee2494912283c981d8
0fe5df6c55f56f93b4cd6345f2a68ba3ebf791ea1ad69f656f697d7f023471cf3411846942b12472a72
22b8aa778abb15762aec55d8abb15406b7a2693e64d22f741d7ace3d4346d4626b7bdb29d79452
c520a32b0f038aa5fa2794347f2cde3cbe5e8974cd2e4b78eddf47b5458ac83c1f0c72a46a004709f
0371fb6a1397d85c5534d4ec21d574dbcd32e4b2db5ec12db4cc84060932146209aef438abca3cd
1f9351de7952fedf43bf9f50d4e4b73269cb70f6f1c27529ad62b292f79471aaf37852bc69e9736760
9f1e2a9c79bfc81a8ddf9226f2f68d7134f7f7fa9c3a96a97fcada3bb76fac2cf23c4268a48030288aa8
542f05d9837c58aa8d9fe52dcc9637eb79e65d4aca5d66cade0d42cac0dac56897b6d0a5badd46a
b06cc628d239221fe8b271afa18aa79e4afcbab5f25cd7b245aa5d6a497b6f0da18ef12dd42456f3d
cce817d08a21d6e9d771f642e2ac567fcb7d1d34f8fc8b77e6dd56e9ed6d6e6ded12e238679e0d3b
57865d3618c325b852b102e1647e4fb2faeeca062a86d3ff002b3ccd7daa6badab6a2fa7586a776d
732fd5d2c67e620b84780464c1c8c72c69fe9115c2b8e6dfbbfb3cf1551d1bf2775782f356d22fb509
d3cbd2da43a558dea7d4beb22ced6ce086de68e48ade3963b9492152fcb9c4e117ed7d95559537
e5509b56b0d62efccba95c5c413d8deea0aeb6816faf34d791a29640b00f4c7194c6c90fa6bc153a3
2f2655e878aa16eb52b1b2b9b2b4ba9962b8d4656b7b28dab5965489e7655f711c4eff2538abfffd1f
7f62aec55d8aa563cb5e5d58a28469167e8c0cef047f578b8c6d2a189ca8e345e484a353aafc3d31
54b4f923461e60d2f5a8adede3b6d22d27b4b1d3d6da3f4e27b89a29ccb19a7c0c0c2b4e23c7154c
af3cb5e5cd46f86a7a86916577a92a08d6f27b68a59c200e0287652d4024714afedb7f31c554edfca
7e55b37b292d343d3e0934d864b6d39e2b4850db41357d48e12a8382357e255a06ef8aa947e4bf
27456634f8bcbfa6c7a7ac12da2da2d9c0b08b6b860f2c5c0271e0ec033a538b1ddb15546f28f951e
17b77d0f4f6b7945bac909b584a30b2dadc15e343e97fbabfdf7fb34c55b8bca7e568248e68744b08
e5854244e96b0ab22888c00290bb0f4c98ff00d4f83ece2a86d4f48f24e9563f5dd5ec34db6d3ecd1
904d710c2a91a48e8e514b2fed3c68788fb4e89fb4ab8aab687acea1ad4f3dc7e8c92c7440aa2cae

899

6ec98aeae1aa7937d599434718fd9321591bfdf6ab42caa722340cce14077a7260054d3a54fb62ab
b15762ab5d125468e450f1b82ae8c2aa54ec4107a838aa4e9e50f2ba470c4ba3da7a76eb2c70a18
50858ee2310c8a2a3ecb460230e9c071fb38aa0e1fcbbf22dbb0783cbd611382a432408a6b1bc522
9a81d43c11303fcd1a375518aa2e1f27f956df4dbfd1a0d1ace3d2754691b51b2581043399c92fcd2
9435249c558f47f95da1daf98ee75db1b7b3b7b76d3d6cac2c52d405b6b913cf70d7208700b3bdc1
27e106abcb9d49c555bcbff0095fe57d27cb7a3e83a8585aea136956cb6e6f3d131995feabf53924e
25dc8f522aa11c8fc0cc9f67154c9fc81e4a7173cf42b326f23821b96312f274b40821ab75aa08e3e2
df68704dfe05c5539d374cd3b47b28b4dd26d62b2d3e0a886da0411c69c98b1a2ad00a9249f7c55
bbd9b4e85ed05fb44af2ceb1d97adc6a6e0ab1511f2fdbe21a94de95c55158abb15762aec55d8abb
15762aec55a20302ac2aa7620f42315629a5d86a7a745a9794e646b8d296dddb43bd35205b480a
7d566624fc7093446fdb84a7eda48d8abc5afbcafe79d2bc8b702eadef3496d274681e1b986e442b
6d6167a03db5dda1f466d9cdda9950af774979feef655995c59df795bf2efcc93dbbde5bda5fea36b3
681a75f4e67b90273691bdb979a72c56e27137c1eb03c25f838d462ac5743d07ce6f2cf79649aeea
7a65ae93703408c5e2d9c66f7d3be86f2d6e9e6924b80c6692336c63768e8b0b2c8be862ac9ff002
d7cb9e676f3247a8f9b6cf54b65d2e2be5d37eb174c9683d5d46e9a1fdc4373246c45acc8abcc3f10
38f2e48b8aa4fa3681f9830dfc5a8eb3a56a275e4b8d3a3d4f5082e57d1b936daddc4f23204981f44
dacaa7898c2f1a46ca5a3a055bd2fcbdf98ff005dd2e0d520d50e9714924d6d75693c50dc1b98dedd
f9df896497887844903fa00a4af1cb2a247f594c5526bcb1f3068fe56b1d06fa4d6acaf35182de4ba5
69a6bbbd33c7a318af2ea1ff004912f2b79cc4ff0003f132f6fdbc551daf4de73175abdf496baad9683
a95c59c1a7db99c4ed7889a848f54ff00484947ab68564f4d447246abe8b7268deaaa9fd47f303ea5
6b2797a1d72fec22b2b5b5b9d46e640f77a85a45169a67711dcdc1f4e77115da088a8fdef3fdefefd4
e2abaf3c9de75bbbcb2d32eed7cc52d858cd1be9dada5ec1f5c8b486d12f2da5461ea05175f58928
4706661247fbcf80baaaff00ffd2f7f62aec55d8abb15617f989a3dfeb69e5bb1b68eea5d3ceb50b6b2
96733db9fa8fd5ee15bd568de3631fa8d1f2504ff00abb62af31d37ca9e7e86df4eba36dabbeb67538
6e35ab5d4ee207d3ae2684886768bea8eb244ae87d582e496f89384d0fc4d8ab51795bceb716a96
37ba4ead1c01f4eb59d85e71f5bea4baa473484c573cbd32af6c2a69cfe0dbe0f8554bf4af297e65c9
63a6d8ead1f9863b390584f7af69796e6fd356fd1765ce732dd3ca0462ea2b8594a7477e6aac8c71
57d242b41cbaf7a78e2a93af9974e9b581a258092fef23245ebdaa8782d282b49e5a85563da3a997
bf0e3f162a8dbbd2b4dbfbab3bdbdb58ee2eb4f7696c649179186475e05d01d83712472ea013e271
54662aec55d8abb1579a7e697983ccbe5dd5bcb17be5c45ba741aacf79a64f72d696f730dad8b4d4
7658e5ab294fddd569cceecab5c552583f3af55b9b0bad6d342b78f488355934e8a36bb77be96ded
a48a3965f4560a29fdfa757289f17a8e3e0e4aa5fe52fcd1f3043e5fbab2b6b61afeb56daeea5a059c
37770f0ddcd7915c5f5ca2b9952821fab40a90ca0b737f048d9b1565be75fcd0bbf2741a65edc68e1
aca7d2aef5bd583dc0f5ada2b36b58cc31ac49224b217bb55afa8b1fc2cdca98ab19d47f337cc9a2f
982d67d534d922d5b52b08b4eb4f2dacfced8ea72ea534314a5c0aa89224e7bafa9c4aa70e58aa6f
77f9bda8d9cf756d71a018ae21d29752f42399af248668fea5f598a616d1b8261fae83c2132cac913
3fa7fbc8eaaadb4fce3b9d45a396c3488ae34abb7b5d36c7568eed64b36d62edadd5622ea95684fd
6392cd1ab9658d8f01ce3aaacb7f2d6eb52bcf26d8cfabcad36a3eb5ec73c8f219cd62bc9a303d465
52c1428504a8d862adf9d2de79eebca86189e510eb904b29452c12316d720b353a0a902a715493
ccbf99b1f94eeb58f574cbed452c6e19248d1ed11238adf4a3a93bc7c9918a98e37d9b93fabb7c285
71559a6fe6acb7771796e744b8bb9a2d4e6b4b7834ffdfcdfa3a192d62174ea69fb57419d47d98d5d
bf677552f3f9e0a90bdd4be53d4a2b38ec575769de7b1a7d41e5302c9459d9b919015094e9f162aa
c3f3aed5ef65b487cbd7d24569713db6a174b25b08e0f43569f460f432736533c3cbe14aac4dcbb15
c5596fe5df99aefce9e45f2f79b6fad16c6eb5bb0b7bf92ce37f5162fac2070a1bbec71564d8abb1576
2aec556c9ea7a6fe950cb43c39542f2a6d5a6f4ae2a9068fa8d979bf45b9b2d62c105ca17b0d7b46b
a412a24c14738d95c51e27521e36238cb132b7ed53154d2e348d26ef4c6d16eec6dee34768c40da
7cd12496c625000431b02a54507c34a62a8982de0b5823b6b58920b6854471431a844445140aaa
280003a018aaa62ad0e5c8d48e3b7103afbd7156f154bf54d0b44d73eabfa6b4db5d47ea532dd59f
d6e18e7f4674fb3247ea29e2e3b30df155dab68ba3ebf64da6ebba7db6a7a73b23bda5e42971097
8d83a3149030aab0041a6c71546a22a284450a8a0055028001b00062ade2aff00ffd3f7f62aec55d8
abb15762aec55d8aa0356d6b4cd0e08ee3539c42b34821b78c069259a66a958e28d01777343454
52d8aafd4ac1355b27b29269ede2978f392d656b79b8ab062a244a32f2a51b89069df1550b0874ed
1161d0f4eb1163a6dbc06489a258e3b5401c0e1b303c893cbeceff00cdcb15574d5f4b92ea7b18ef2
16bbb68e29ee21122978e2b82c227615d83946e27bd3154435c408583ca8a5685aac0501d856a7
15719e10a58c8a141009e42809e9faf1552b4d42c750f5fea3711dc0b699edae0c4c1fd39e2a738d
a9d196bb8ed8aa27154bb55d0747d73d0fd2d671ddfd58bb40641bafaa8637008a6ce8c55d7ecb2f
c2d8aa4f7bf96de43d4a368aff40b3b88deeae2fd9648ea0dd5e71f5a4ebd5f8a96f7556eaa3155297
f2bbf2fa7b796d67f2fdacb6f37a6658dc330630cd2dc236e7ed2c934ac1bafef1ff9db154def3cafe5d
d40c7f5dd3609d22b39f4b8e2740621637611668387d9f4dc4681969fb23154aa4fcb2f214da72e93
36836afa725ba59a40c18810453fd650024d41597f781ebcc3fc5cb155cdf96be443a8aeac342b68f
52408a97512b45228896245e2508a5160886dfefb4fe518aadff9563f97e1ae5d3cbb651b5dc305b4
fe9c7e9d63b3118829c48e263f4a3e2eb471e9a7c5f02e2a9f68fa3695e5fd3e2d2b45b48ecb4e84b
b456d08a22b4aed23903c5998b1f738abb51d5acb4a7b18ef1995b51b95b2b5e2a5ab33a3c801a7
41446df1563dad7e5a795fcc1737d73a9add48fa8b48d74a9773c68c66b16d39e8a8e00060764db
b9e7f6fe2c554a3fcaaf26c5790dfc76f72b750cd2cfc85e5c8573711c31ca9228938bc727d5e2778d

8146913995e58ab4bf955e4f168f632437335bc9a51d05d65bb9dc9b13335c01c8bd79abb12b20f8
d7f9b154a34cfca1d2b4bf370d4adc39f2dad99ad9c9797334936a526a52ea32cd70242c2453249e
a2f273492bf0531566fe5bf2ee97e52d0ac3cb7a246f0e91a6442deca192579da3853eca73919988
51b2d4ecbb62a9ae2ac52e7f317ca1a65cdc5b6b3ad69f62f15e3d842ad748cef2c51c2f22b2d0707
433af24df8a9573b362aaf079ffca132f33aac50a9babab006e39435b8b191a2997f781765752a1be
cb1fb38aa5d69f9bdf95da84f0dad879bb4abab8b868d618a0ba8e466333fa71d0293b3b7c2a7a31
e98aa224fcd1fcbc8ae21b47f32d80bdb88da6b7b5f5d7d791104a4f18fed13fb89682956f4de9d315
4c7497d0b5148bcf1a739106ada7c127d60968d24b4a19a279236a00ca243f111c829e38aa6f6f71
6f77045756b2a4f6d32ac90cd1b07474615565615041076231555c55d8abb15762aec55d8abb157
62afffd4f597e5e79721f307917cbbae6abaa6af3ea5a8d85bdd5dcebabea118796640ecc15270a01
27a00062a9a4fa2f932d24b886e7cc37f0cd6a15ae63935fbe568c390aa581b9a8a9200c550d3c1f9
776f3182e3cdd3c53aaabb44fe64bb560afc4a920dd56879ad3c792f8e2ab859fe5fb5e9d3079aee4
ea2265b63683cc777eb09dd8a2c7c3eb5cb99652a1695a8c55d359f902d9239ae3cd9730c72ca6d
e2797cc7768af30e35452d742adf1afc3fe52f88c5546ced3caf7de6dbef28da6a3accb7da7d9437f7
3347addf3c4beb4d2c1e9102e4b0753112411dfe78aa7ffe06d2ff00eae1acff00dc6751ff00b28c558
e69da4dbe91f9b56f6705cdddcc47cbd7170ab7f773df34727d7614e51b5cbc852aa4ab7023977c5
5e938abcbbf30fc85ad79a7cc497d696f6d3e986c2cad274b8902f36b7d6ad2fe452855815f4a0703
7fb4dc7fcac5581d8fe48f9ba0d296c2f2d6ce7b5736a97d6305fcb6866b2827d541b513c70f25558e
fa174fd9fdd18e83e16c553ed2bf25638b53b79f55d074cb88175ababb9649585dc9fa38e962d2d51
9e742f2f09406e321edeafdbc5589cbf96fab69f79a2797fccd61a75e5deaf0369d61019c48a5ec7cb
aba7c93b7a912d09741200bc9f8ff00963157b3fe5af94f51f2769baae99a8bc73bcfaa5cdec57a86af
731dc046f5251404484821f76df7e58ab34c55d8abb15762aec552ed7e796d742d52e6ddcc73c369
71244e3aaba44c411f2231562ba3f91e1bbd234fbab8d7b5e3713db4324ac356ba15778d4b1a07a
6e4e2a8dff957f67ff57dd7bfee2d77ff0035e2aeff00957f67ff0057dd7bfee2d77ff35e2aa175f963a45
eb5bb5deafae4cd6930b9b62fab5d9f4e655650e3e3ea0330fa715573f97f69ff0057ed7ffee2d75ff35
e2aeff957f69ff57ed7ff00ee2d75ff003562ae1e40b61d35fd7bfee29707f59c555bcb9693699aeeb1a
61bfbcbeb48a0b29a1faf4c6e1d1e53387e2cdb80782ed8ab28c55d8abcab5efcacd6758bed72ee3
d42d235d5a6d4e4895e2918c4ba96976ba62d486152a2df99a75e7c76a54aab64fca6d48eba9aa9
bed3eeadc49792086f6cda792133dfc9a8c1240e64e29223ccf1b37035511c8bc5d3755036ff0092f
ab5b59490c5aa598b91a1f95f4781cdbb94f5fca97b25e0918070784fcf895079253ed362a96dbfe5
7dfdf6b175e51beb843676b6da6df5d6ac2ca64125c45a9ea97e915b3b929546b94127c6ce13fe32
7c2abd83cada55ce85e59d1f43bd963b8b9d36cadece59e25291b9b78d63e4158b115e35a57156
39a07961125d66cecb54bfb1d3acf50923b3b1b599120822786298a46a633c543c8dc56b45fb2bf0
d062a9d7f85a4ffabf6adff23e3ffaa58abbfc2d27fd5fb56ff91f1ffd52c55dfe1793feafdaaffc8f8ffea962
adff008625ff00abf6abff0023e3ff00aa58ab63cb528ffa5eea9f4cd11ff9958aafff000f4c001fa6f52dbf
e2d8bfea962a95ea5fa4747f30f95e08754ba9edb53beb8b6bc82e3d27468d34fb99d6948d4821e2
535071565f8abfffd5f647e4ed4fe54f92cb1ab1d1ac4926837f413c3154bd7f2eb5986edae60d5ad4
ada6b536bba4196c8b4c3ebb24b24f6d7127abf1a5667f48a08f87eed9b998f156191fe4841aae90b
1685afd9dc69a20bab3b6bcfab7acd593477d11cf34900ac6e59e83a53d2ff2b154cef3f25353bcd5a
5d5bf4ad9c534b70d73f0da39652dab58ea6287d4dcff00a17a67fd7e5fb3c4aa84bffc8ad6f50d3ae
6d2eb5cb19ee2e52f43dc496326d25f585b581755f5c85e3f5612044e2abcb82f15418ab2ff00227e
5d6a3e51d6ae351bbd562bfb6fa9369f6b1ac0d1cde99bfb8be0f2c86460cc0dcb21a2af2e3cfab531
57a162ac01dbfe436c0b5e9e559881f3d462c559fe2aec55d8abb155a5118866504aeea48a91f2c5
5762aec55d8abb15762aec5529f34923cb1ad11d7ea1754ff912f8aaaf97ff00e383a5ff00cc25bffc9a
5c552ff3af98e5f2ae85fa662884c16f34fb69232924ade95edec36ce51220599c2ca4a800d5b154aa
3fcd8f25cceb1413ddcd3b46923c31e9f7acd1996e24b458e5a4348e43345245c1cab2ba372a62a8
5d33f35343bbd4758373750ae83676d65a858dfc6b2106c6f2d05c99a727645a9e2a5b8f23f0eed8
ab2cf2f798b47f3569516b5a15c8bad3a5796259402b492de468645208041574653fd3154d315762
a91587fca59adffcc2e9ff00f12b9c553dc55d8abb15762aec55d8abb1548fcbdfef5ebe7c7536ff00a8
5b718aa798ab0db9fcd6f20d9a5dc973acc71a59aac92b18e521a3759983c4425245e36d33563e5f
0c4e7b62a89befcc6f2769c256bad408113c51d2282e27691ae19923112c51b993932328e01be2f8
7ae2ac9d1d6445916bc5c065a820d08af43423155d8abb1562be67ff009497c93ff6d3baff00ba55e
e2acab157ffd6f657e508e3f95be4e5a529a4590a7ca151db156698abc16d7cb9e7bd46fd740906b
ba268f723527d3f50d36486da0b69ae6ef53f50de7294486ab3db4d0fa6ac59957e38f8498ab5aa59
7e6d5d40c6e60d5ed754bed166beb41a3dd42d6b6bab9b7bb492d6e1e5915c29e76c61f495bf789
f0b47c599957aef926c6f34ef2868969a8bdcc9a9259406f9afa67b8b9facba0697d49246624f32dde
83a2fc38aa7d8abb15604eabff2baa07afc47cad30a7b0d462c559ee2aec55d8abb15762aec55d8a
bb15762aec55d8aa55e6734f2d6b27c2c6ebfe4cb62aa9e5f6e7a0e96fd3959db9a7ce25c554bcc9
a1a798b497d31ae1ed64f5adeea0b98d55cc73d9cf1dcc4c55b661ce35e4bdd76db1561d73f94904
c351106b77568daa7d4a5bb6823894bdc59ea136a5233820864b8927912589870f48f0f9aa90c5ff
38f5a5c51344baf5d812e996fa25c4890dbac92d8d94212dd5be12a5a2911278db8fc2eacb4f4e49
11957a9681a54fa36970d8dd5ebea374b569ef1d121e6ec6a4ac510088be0aa3f1df154cf15762a9
1587fca57ad7fcc2e9fff0012b9c553dc55d8abb15762aec55d8abb1548fcbd5fad6bff00f6d36a7fd23

901

5be2a9e62af07f2afe5af9a3588c5ceb287cb5a9695a89bdb076b1b292a64facc735b911dc5c25c5b
7a772fe8b94b66493f7822fb498ab2d3f955787ccc7cc27cc4f283756f726de6b48ddcc769722e628
8caaea4f1aba034d90a8e3f07c4abd2f15762aec558b799c7fcec9e4a3e1a9dd7e3a55ee2aca7157f
ffd7f65fe51d7fe5587946bd7f455a57e7e92e2a9e79a2f350b0f2eea779a498c6a90dbbb59fae1da2f
5a944e7e9abb05ad393056e23e2e2d4a62af207fcc3fcc39edb52748e5d36f2d2cad65b5b0bad325
9a7956e7ead5b932463d01c6469e228aedc8287f4d3ed62abe0fcc1fcc78e3954db36a11c2d3c1f5
a8acca4891db6ab3dbc971342caa58359aacf0bc2593d4468e48c7a9192aa7fe46f3179ef59f3eead
a66b5371f2ce9b64b369ce2cc45f5e32ea17f024ad29140443040fc129f6fd4fb1228c55ea98abb156
09203ff2b9edcf6ff0c4e3fee610e2acef15762aec55d8abb15762aec55d8abb15762aec5529f340af9
675a1d3fd02eb7ff9e2d8aaa797453cbfa501d059db8ff924b8aa57e7fbfd6b4ef2adedcf975a35d683
42b68b337a68ecf32031fabe9cab1175251657468e3660ee38838abc8a5fcc5f3dddc37d736b7d73
a6ddc571a5d9ae8f73a593751dadeded8462f198c66256782698ba869139fd909e83e2a8a93f303c
fd6f0c4f134da940d62236ba82d54c90c905fb4571737308894d4da8f5a1788fa5ea23c4f08aa5556
59e4ad6bcd5a9f9b2e74dd4f53924d1f4f86692c8fa1083a8422f2e2de29e490463f615368b8072ab
27d87e2557a6e2aec5522b0ff94af5bff985d3ff00e25738aa7b8abb15762aec55d8abb15762a91f97
bfdead7fdf536ffa86b7c553c3d31578558fe6479e6ef50d2348b8b9b4d3e7bab8944ba9cf0b4b6178
6196d1920b23146598cd6f2c8e2297d2b88a40c8fc842dc954bfcb5f9a7e7cbcd261bdbf9e3bb773a
75cdd470dbc705ca417736a30cc96e8d5595a3fab4327a64891d3d511b7368d7154c7fe56179f2ee
ff48b35ba8b4ffd2d7d1d8ea2925a2b49a74e6f6ee0f40722012f1468c9ea726f87d4fb12aa855ee6a
085009a90373d2a7156f1562de67623cc9e4a03a36a7720ff00dc2af4e2aca7157fffd0f667e5280bf
963e5251d06956a07d110c559962aec55d8abb15762aec5582c807fcae6b63dcf962e3ee1a843fd7
156758abb15762aec55d8abb15762aec55d8abb15762a94f9a3fe519d67fe606ebfe4cb62aa9e5da
ff87f4aaf5fa9dbd6bff1897154cb15762aec55d8abb15762a91587fca59adffcc2e9ff00f12b9c553dc5
5d8abb15762aec55d8abb1548fcbdfef56bfff006d36ff00a86b7c553cc55aa01d07bfd38abb8a9ea0
62aee2be037dfe9c55bc55d8ab16f341a798fc95b75d52e457c3fdc55ee2aca7157fffd1f43792bf4cff
0083b43faa7f8c3eabf558bd1fd17fa23ea5c29b7a1f5afdf7a7fc9eafef38d3962a9f7fcecdc453fc794
a1ffa976bf4d77c5571ff00146dff0029df4ffbf6ff001f7c5560ff001457fe9bcebff7edd3156cff008a38ff
00d379d7b7f86eb8ab87f8a287fe53cffc36eb8abbfe768e43fe53cffc36e98aacf27fd7ff00e56b37e9
3fd31f58ff000f49e97e9ffa97afc3ebd1d7d2fd1dfbae35fb7ea7ef2bc78fc3cb157aee2aec55d8abb1
5762aec55d8abb15762aec55d8aa57e65a7f87358ad29f52b9ad6b4a7a4dd69bfdd8ab03d0ff00c4
bfa1f4be1fe29f4fea76fc7d3ff0f7a54f49694e7f17dfbf8ef8aa387f89f98ff94b29effe1ba74efdf155ff00
f3b3edff0029576ffa973f1c5557fe767f4c7fca4fcbff0005ce5d3eec5555ff00c4dc76ff001257fc9ff0ed
7f1c55a3fe27da9fe24fa3fc39fc7156ff00e766affd347d3fefdcc5557ca7f5dfd3faefd7feb9ebfa3614fd
23f53f5b8ffa4529f51fddf1ad695f8eb5aedc7156618abb15762aec55d8abb15762ac121fd31fa635ff
00a8fe97f43ebfb7d47f44fa15faac15a7d73f795f1fd9fe5c5515ff003b1ffdfc1ff86fe2ab93fc4546afe9
ff006e5fa03f0a7f1c5577fcec141ff1deebff006a2e98ab87f882a7fe3bd4a7fda8a98ab63fc4143ff1dd
ff00b9162ad1ff0010ff00dafba7fda8715492ff00f4aff8bfc97f5efd29e8fe91bba7e90fd19e972fd1779
4a7d4be3e5e15f87af7a62af48c55ffd90840010824000000180000000210c0db010000000300000
00000000000000000000000001b40000040000000340000000100000002000000000000bf00000
0bf0000af4300005343030000000000008000000080fe7fe9430000008000000080ff7f8c43210000
0008000000620000000c00000001000000150000000c00000004000000150000000c0000000400
000051000000802601000000000000000000d2010000180100000000000000000000000000000
00000005e010000d300000050000000100400006004000020220100000000002000cc00d301000
019010000280000005e010000d30000000100080000000000000000000000000000000000fa000
0000000000000000000ffffff00fefefe00fbfbfb00fdfdfd00bbbbbb00272727005a5a5a004141410046
46460045454500444444004d4d4d004b4b4b00494949004a4a4a004c4c4c005050500047474700
54545400565656004e4e4e0043434300424242003f3f3f00353535003a3a3a00484848005151510
0525252004f4f4f0058585800555555005c5c5c0083838300fafafa00fcfcfc00b5b5b500a7a7a700f5f
5f500f6f6f600f4f4f400f7f7f700f3f3f300f2f2f2001610000026060f002220574d46430100000000000
1000000000000000d00000000200000f4050100f4850100f1f1f100f0f0f000eeeeee00ececec00ebe
beb00eaeaea00e6e6e600e9e9e900e2e2e200e0e0e000e3e3e300e4e4e400dfdfdf00dddddd00de
dede00dbdbdb00dadada00dcdcdc00c4c4c4008a8a8a00b0b0b0009c9c9c0088888800e5e5e500
e7e7e700e8e8e800a3a3a300878787007f7f7f00a4a4a400b2b2b200adadad00b6b6b600aeaeae0
0b1b1b100ababab00aaaaaa00a9a9a900a8a8a800a5a5a500acacac00afafaf008f8f8f00bfbfbf00a
6a6a600c2c2c2008585850077777700c8c8c800ededed00d8d8d800a0a0a000a2a2a2009191910
071717100efefef008c8c8c007373730086868600b4b4b400f8f8f80092929200f9f9f900d5d5d5006
262620068686800b3b3b300d2d2d200d6d6d600909090006666660081818100cacaca005f5f5f00
8e8e8e00d0d0d000b8b8b800d3d3d300d7d7d700727272003b3b3b007878780031313100a1a1a
10079797900bebebe00b7b7b7005b5b5b00b9b9b9006565650070707000939393008484840074
7474009f9f9f00c7c7c700d1d1d10089898900bababa006b6b6b00c9c9c90097979700c5c5c5005d
5d5d00c6c6c600616161006e6e6e0075757500cecece00646464007a7a7a00d9d9d9008d8d8d00
c3c3c3005e5e5e00e1e1e1007b7b7b00383838006f6f6f008b8b8b00c1c1c100c0c0c0009e9e9e00
cbcbcb00bdbdbd00595959007d7d7d00989898009d9d9d006a6a6a0076767600959595003d3d3d
006d6d6d007c7c7c006c6c6c00333333007e7e7e00363636006363630053535300cdcdcd00cfcfcf
00606060003030300023232300cccccc001c1c1c002f2f2f0080808000bcbcbc009b9b9b00575757

0096969600696969003e3e3e009999990082828200404040002b2b2b0021212100d4d4d400949
49400676767002e2e2e003737370039393900181818002a2a2a003c3c3c00323232001d1d1d002
d2d2d009a9a9a001717170024242400050505001a1a1a0016161600010101000d0d0d00020202
000404040009090900141414001f1f1f000b0b0b0029292900262626001e1e1e002222220007070
70011111100060606000303030028282800080808002c2c2c000e0e0e001b1b1b0019191900252
525001010100034343400151515008098afab9b7c8aaf7c66987cb2976387b4668aa3b4a363a3a3
b2b4b2b2b4978797b2a36387b29090b4b2b2a387a397b4a3a397b490b4a387b2b27c9f55010201
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
010101010101010101010101010101240401c3b4c6a4894948409d488e89cac2744077436565a4
40438e9d48776292c6729d43c9c9c9c992887277c6c6c6cf6a627272b0c6b0cfcfb0c6b092925b50
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010431c2c9428bc4a7a7a7a7a7a7a7a7a760c
4acad59515980594a5453264a4a26262654474a26532659595926535326594a54544747544a476
08060807273010101010101010100009a4c37ce7acebb7a786c3a393c3c3d7b3da0373a3d3b393
a3a3c3d3c3c3c3e3b3e3e3a39393c9c3d3c3c3e3a3b3b3e3c3b3a3e3c3d3c3a393b374622b20224
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
010101010101010101010101010202010101245153022b2f2b2c28282e292928292d28282b2a69
282729296969242324036b0323040201010102240304020101020201010101010202010101020
23347010401020101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101385102010201010101010101010
10102020101010101010202010101020201010102240401010101010101010101010101010101
0101010102040136a301240101010101010000867b01010104040101010101020101040101020
10101020102040201010202010102020101010101010102020101010101010101010201010103
014a7e24010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
010101010101010101010101010101010101010202020102506f02010101010401010124020102
01020101020201010201020101010104010101010101010101010201010101010101020101040
40101020204384701010301010101010101010101010101010101010101010101010101010101
010101010101010101010101010101010101010101010101010101010104344b0101040101020
20202020202020202010101010202020101010101010104010101010101040202020101010102
010101020201010201020101458a28010101010101010000bc7b01010224010201010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
101010201014aa301010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
101010101010101010101010101010101010101010101010201020101528f01010101010102010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101385901010201010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010137510101
01020101010101010101010101010101010101020202020202020202020101020402010101010
101010101010101010101010101010201326603020101010101010000967b0101020401020101
01010101010101010101010101010101010101010101010101010101010101010101010101010
1010101010101010101014a870101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010102010201015283020201
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101013859010102010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10137510101010201010101010101010101010102020101020101010101010101010101010101
01010101010101010101010101010101010101010101458703010101010101010000965f010101
02010201010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010102015466010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010201020101
52250402010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101385901010201010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101013751010101020101010101010101010201010204010104010101010101010102
01010102010101010101010101010101010101010101010101010144a30301010101010101000
0969c0101010101040101010101010101010101010101010101010101010101010101010101010
101010101010101010101010101010101010102014a9801010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010

903

10101010101010101010101010101010101010101010101010101010101010101010101010101
02010201015225020101010202020101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010138590101020101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101375101010102010101010101010101020101020401010402020202
01010101040101040401010201010101010101010101010101010101010101014563240101010
101010100009f9c010201010102010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101040161af02010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010102010201015225020101010202020101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010138590101020101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101375101010102010101010101010101010101010201010
20202010101010101020101020201010201010101010101010101010101010101010102013298
02020101010101010000849c010201010102010101010101010101010101010101010101010101
0101010101010101010101010101010101010101010101010101010102018baf02010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010102010201015225040201010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010138590101
02010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101375101010102010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10201315c01040101010101010000c55f010201010102010101010101010101010101010101010
101010101010101010101010101010101010101010101010101010101010101010201c49802010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010102010201015283020201010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
13859010102010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101375101010102010101010101010
10102242401010402010101010202020404010424010102040101010101010101010101010101
0101010101010134af01020101010101010000137b010101010102010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
1c98a0201020101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
0101010101010101010101010101010101010201020101528f0101010101010201010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010138590101020101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101013751010101020101010
1010101010104232302012424010424240303232323026b692402232324010101010101010101
0101010101010102010102338a02010101010101010000949c0401010102010201040424015e5a
7a032a475d02a88c5f4d33a6bf2d0193a632326f352401010101010101010101010101010101010
1010101805c0102010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010201015385020401010101010401230
1246b4f8cce015574702f726c85563e565d5e04564e70694a8f0124010101010101010101010101
01010101010102382601010201010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010237500102010201
0101010101010202614cc3244d13926bc257789838ad56ce0253c9412d22670301010101010202
01010101010101010102010401458702010101010101010000849c040101010201010201010124
a92592058e0d9bce6757a80d4c545f8041893a7438c09101040101010101010101010101010101
01010101010180af01020101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101020102010152850102010101010101
010401043c6224b24119c4895f19954a6558954143ad7e2aca358ac30102240101010101010101
01010101010101010102382601010201010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010237500102
0102010101010101010202da01895508a693bb90ab5f20468d8db34d9f019d8522ad0102020202
0101010101010101010101010201040133a3020101010101010100001f9c010102010101240201
6b0101316c0c61072f0338acac640c2b3b1cc4bca5249b79c13d010404010101010101010101010
101010101010101028b9801020101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101040204010151850102010101

01010302020101015eb66d81ad24283316998c62015f1b8096a901775177992401010101010101
01010101010101010101010102382601010201010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010237
500101010201010101010101020201981541970101049a8e3b946bcecb4ea4af01856a43612401
01010401010104010101010101010102010201448704010101010101010000149c010104010101
0102010123015ed3612d0d4ea52dac92461532089d041e71016e26cc6c23010301010101010101
010101010101010101010102a7660202010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010102010401015279010
1010101010102010204016b9b0664435b91bf2a7d6c3f8828b76702c5990148b0578d2401010101
01010101010101010101010101010102382601010201010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
0101375001010102010101010101010202c2122b7a09c48e3aae6aa09f690f9d2440422447778ea
d012401010204010124010101010101010101010102446304010101010101010000149c0101040
10101010401010124a89d587a5756bc4f43a34e1493ae29a8c2835f2199f3723c01010101010101
0101010101010101010101010102ad7c0202010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101020101010201025983
0101010201010101030101042ebc36bb6fa4c3123db72551da5a8a32a0814f6bc78da3422d02040
10101010101010101010101010101010102382601010201010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
1010101375101010102010101010101010202c73fa839499116a9769f681f2da1a05da57e031f4faf
868229240101040101010101010101010101010101044466040101010101010100001f9c010102
0101010101010224012a955046278359018f50b079039e793e288256953042b08f010201010101
010101010101010101010101010102ad7c01010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
1010101010101010101010101010101010101010101010101010101010101020101010101044a
25010101020101010124010104014c924a01687ea72f5c77aa9c27c448392e4249802ac46ac2020
10101010101010101010101010101010101023826010102010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
1010101013751010101020101010101010102023d0555699c4c512b688bc98c01bf567001a9554
c049e4b602924010104020101010101010101010101010104455c02010101010101010000849c0
40101010201030124040124016b02012824012402010304010104010104020101012a01010101
010101010101010101010101010101010101ad660101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101020101010
20102546f02010101010102010224010101234603012944010301046b2301272c01042c4402026
90124240101010101010101010101010101010101010238260101020101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101375101010102010101010101010202010401040101030101030201040202
2401010101010401010302010102020202010101010101010101010104349b010101010101010
10000949c0401010102010101240103012401010301022401020201040124010404040202016b0
102690101010101010101010101010101010101010101ad660101020101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
02010201040101264f040101010101020202010401240201240202016b01010102010304010224
0101016b010201010201010101010101010101010101010101010238260101020101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101375101010102010101010101010202020104010201012402010
103010104010401242301010124010202010101010101010101010101010102010432b3010201
01010101010000aa3c010102010201010101010101010101020101012401020401240102020401
040101230101020401010101010101010101010101010101020401ac8702010201010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
0101010101010401010102266f0101020101020102012301040201010101012401010102030101
24012301012401010401010101010101010101010101010101010101010102442601010201010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101013855010101020101010101010101010102016b01240
10102240301016b01010101010101010101010101010101010101010101010101010101010134
af020201010101010100001f3e01010201240201010101010101016c4e3531805f2a013a02042e5
4ba02a59e2901010401010101010101010101010101010101010101020401da8a010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
1010101010101010101010101010101010101010101010101010101010101010

905

16.3 Software Design


The system consists of the following major components:
Interrupt handlers for the command lever, brake, engine, wheel shaft and gear interrupts
A periodic real-time thread to control the throttle
A periodic thread to monitor the speed
A cruise controller to coordinate the system.
The interaction between these' components is represented by the object collaboration diagram given
in Figure 16.2.
010009000003c079020000002f0c010000001610000026060f002220574d4643010000000000010
05efb000000001700000000200000c4b60200c4d60200010000006c0000000000000000000000d
20100000302000000000000000000006a4000000c47000020454d4600000100c4d602000c00000
0010000000000000000000000000000000005000020030000c40100001a0100000000000000000
00000000000e3e306006e4e0400460000002c00000020000000454d462b014001001c000000100
000000210c0db01000000600000006000000046000000ccbc0000c0bc0000454d462b224004000
c000000000000001e4009000c00000000000000244001000c00000000000000304002001000000
0040000000000803f214007000c000000000000000840000518bc00000cbc00000210c0db01000
0000000000000000000000000000000000001000000ffd8ffe000104a4649460001020100480048
0000ffed124c50686f746f73686f7020332e30003842494d03ed0000000000100048000000010001
00480000000100013842494d040d000000000004000000783842494d03f3000000000008000000
00000000003842494d040a00000000000100003842494d271000000000000a000100000000000
000013842494d03f5000000000048002f66660001006c66660006000000000001002f6666000100
a1999a0006000000000001003200000001005a00000006000000000001003500000001002d000
000060000000000013842494d03f80000000000700000ffffffffffffffffffffffffffffffffffffffffffff03e80000000
0ffffffffffffffffffffffffffffffffffffffffffff03e800000000ffffffffffffffffffffffffffffffffffffffffffff03e800000000ffffffffffffffffff
ffffffffffffffffffffffffff03e800003842494d040800000000001000000001000002400000024000000000
3842494d0414000000000004000000023842494d040c0000000010bc0000000100000065000000
700000013000008500000010a000180001ffd8ffe000104a46494600010201004800480000ffee00
0e41646f626500648000000001ffdb0084000c08080809080c09090c110b0a0b11150f0c0c0f1518
131315131318110c0c0c0c0c0c110c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0
c0c010d0b0b0d0e0d100e0e10140e0e0e14140e0e0e0e14110c0c0c0c0c11110c0c0c0c0c0c110c
0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0cffc000110800700065030122000
21101031101ffdd00040007ffc4013f0000010501010101010100000000000000030001020405060
708090a0b0100010501010101010100000000000000010002030405060708090a0b1000010401
030204020507060805030c33010002110304211231054151611322718132061491a1b142232415
52c16233347282d14307259253f0e1f163733516a2b283264493546445c2a3743617d255e265f2b
384c3d375e3f3462794a485b495c4d4e4f4a5b5c5d5e5f55666768696a6b6c6d6e6f637475767778
797a7b7c7d7e7f7110002020102040403040506070706053501000211032131120441516171221
30532819114a1b14223c152d1f0332462e1728292435315637334f1250616a2b283072635c2d244
9354a317644555367465e2f2b384c3d375e3f34694a485b495c4d4e4f4a5b5c5d5e5f55666768696
a6b6c6d6e6f62737475767778797a7b7c7ffda000c03010002110311003f00eece0b3f67e2598f8f8
9bdcdafd575ec0376e0cd37863bf49639db7fae80dc3c96b831d574c712377b982646ddfb3636bfd1
b7dffcb5a6703d5c1af0f26b6db5d6c6b5c03ded0edadd9aec6a0fec3c1dce71c5612f6963e6d7c16
b89743991b3f392531e9fd35b6079cec3c12040acd15820913eabcefddf9df458a4f65b8a2daba632
aa1c2d0e2df49de9906b03fed3b7e9fa9e9ff615bc6c738b48a68a98cac1738377b8eae26c79f730fd
27bb72254c7b5d639f00bdc0800cc00d6b3c1bfba929aeec8165d8b43daf2f74b9e7d37b6bf6b1c1c
373c7b7dcefd1b5e879cdea0cb6716ac7346dd5f69821c777bbfb1fa356336b36318d876d2e21e59f
4802cb19a7f9cb34f41e9c742328b780d2e71100d6f0cda7daf6b5f4b1fef494c5acfaccd6b5afa7089
912f97027ddbb6eddbb7e87e8d5e731e3a63ce436b194da49b7d210d0fda7f9bd5cf6b777d0f72a8f
e8dd3edfa5f697164b412e32d997fb5dfbdfa4fe7131e8d8d57ad750321f7bd96407b890e73d8eaf5
ddf1494eda498709d25292492494a49249253ffd0f554964dbd568c3c3c7bf36f7b4dd4fab2d0d825
ad639ed036ff00c27b10c7d62e965d1f6ab20c9076b6342d6c3bd9ec76e77e7a4a769259d81d431
ba8bad6e2e45ae34edf524344176ef66acfa6cd9ef56e82fdd6b1ce2fd8e01a5d1305ad77e686f8a4
a4c92a59f59b6da18ddbb8efd9bc6e66edbf9ec96eef6ee559dd3ba887cb1f885a49258fa2634d9b1
9b1cc77a7bbf4beff00d27f83f512527ce65be9db6d6e7b0d25ef9ae49fe64b5a7d11fd23dc7d957ef
acc75d94dac387ed32eb9ce73a18cded69fd26d735cdf46bfe6fd2a995fe93f4dfa55628c0cef4e9b7
d7c579206e70a9bb1fbbe85bed0d77a9fbbb2cf4ffe0d4fec59cca9efbce3168127d3a883b40ff06edc
363ff97fa4ff00c9a536317a9fad6329fb26557b896fa96d7b5a36877b9eeddf9fe9fb3feb6afa4a9d00
d995961ee710cb1a1837100035d4ed034fef9724a6e24b1bf6ef4e2d63aa6645ad7cc398db0881b8
4b4fe7eeb19b14d9d67a7d96d7535991bed7358c96bc09779b8fe67e7a4a7592413537d46897416
93f49de2dfe524929ffd1f413f6afb0e35343df8f6d4c687b8d4f76ad6edd9a34b7e92ae6beb02c361c

f735d635ac0cfb3b8b411eabde5bfa3fa4ef53e9edff0000b7106ffa747fc67fdf2c4948f1ef7b296b6f2f
b2d1f4de2a7804ff0057622639dcfb9f0e01cf11b816cc3583872a7d3b3f332d98d68a996e2df4d763
b298f11bdcd739fb2bf76e66ed8b492535727fa661f9b9ff00f50e58f9cee9793d46c393d332efbeb01
9ead6cb36ec25c5aed1d57ee3fe8b56edb40b1f5d9b8b5d5125b11dc166bb83bc53fa767fa577dcdf
fc8a4a798ab17a46c6bade8b94cb491f405ee0236343dd63bd27fd16eefa1fe0ff00d2fe8d6f57e97e
c9029a9f8f532a2caeab016b9ad68d8c6b9a773be8b538b80bdf43f20b5ed05e04347b1a2bdef71d
bb7daeb105d9fd3ac639aeea2cd87da5dbab0d3a6f731b6edd8e77a6edeed9f418929d255182da7
2721de939edb5cd734b76c406319f9cf6fe73147f6d748970fb6d0364ccd8d03490e824fbb6b9ae6b
95c6b839a1cd32d70907c8a4a70f33a664dfeb39d9197532d92f6d4e6b7fcd6fadb7e835acfa3ffa31
1b1b072a8c9aef75b976b6b047a2e73361911f47d6fcdfcc5a77ff003167f54fe455ac7e7d963bec65
915da5b6b6f6bc69b6b77e8a03777f5be824a4a6eb77877d9ecd011cb3bedff84f2495849253ffd2f4
0c8ea6dc4c7c7bb26dba3219be6aadaf00868b0b76b58f7b7fe0ff00f4a6c55eceb983b985f764801d
fa37fa20c9036bfda29dfb59ea22369ea26aa8d19c319be8d759a5d5871616b7dd67bffc2ee76d757
feaf9fa1d40496f526b4b8cbbf441c276867b458f7fa6ddcddfb189292f4ec86e6d1be8b6cadac80585
b58da480ed9a33f315ba0bc3ac63de5fb5c0349001d5ad77e686ac8674fea8c6555feda2e654413b
aa05cf83bbdf6fa9ea7d2ffa1fa35759458eac973ce439bb05bf9bea39ad67e9ab8dada6fdff004367e
8ff00c1ff00c254948cf5e68dd18790435a1fbb6b434825ccf6bf7ed76ed9fa3ff48afe3645793457915
19aed6873783cff00565665181861cd79c4a9cf363aba6d04b49696bac7bec66c1e8dbbc58cb6adb
f4d68d4c7d3532aaaa632bada1ac687180d036b5a3f469298b296596dc5fab65d5961e087b6addb
bfcd531878800028ae1ba01b468236787ee7b5356dc863ac3b5877bb77d23a68d6fee7f2554cfc2b
adf52fb2db056d649a2bb4b59ed0e9dcdf4ff49ea6ef76f494d6b3a9f486c58dc1b1f496975978c73b
1ac2cb72376f733f48d7ed7b7f45bf65b67e97f9c57817d96649df606d3b7656c81a6c6bf6c6dddbb5
559b516e4fa82dc990e901d66e1697b5a5de8d1fcd7a6cddf4fd94d2fdfecff0c9edc675f659f6a16d4
4bd9633d01b8486359fce6c77d077a9fe892520195d4df5b4fd87236bc0ded36b03e1c1df407b3e8
7b37eff00df47c4b3a85f7ecc8c7bb1abdbbbd436b5dac37d9b180fe7ef401d1b0f6c3adcc73a0fba0
82090ddcf616d7fa2ddb3fc1a6fd8783000b735a438bb734b9a6492637359bb6ee77d0494e99c71b
87e9edda41d7788905a3c125983a1f4f153a91f6af4dee6bdc358963dd7b1a1bb367a7eadafb3d3d
bb12494ff00ffd3f554965657576618afed5915d4eb582c68f49e743ed1ee167ef1da82efac58c1c07
da58185bbbd4f49c5a0e9fa28177a9ea7bf77d0494ec5af732b73dad3639a096b0100b8f660ddb5b
ee5996759ca610d382e63dda303eda9bb9d21ada9bb9fbb7daefe67637d37fefa131f8fd7986b2fa6
e6e3b83c35d53a5ae05f5d76b1ccc8f6eed8e7d6a4de95858c36b69afd7f543abf49ae6b9ce6b3dae
f75b6edb18d77f4977f36c7ff00c224a6d7ab8f6df45b558d0f371aeeac39aefd236ab3756edbfe1e9f
cfd9fdb54b2adc9659613d55b8eddef70f518d0035ae3b9ad7581ad736a6fb2c7ffd715ffb37a269b5
d2e735f07682435bb6cf631a25db773bdeff00a767f844cec5e94f7173f0d8e712492682492793fcda
4a65fb5fa68db37b5bbcc33769bb5db2c9fa4dddeddea765f56460db6d2edec731fb48e0c6e69ffa4
10463f47797346256e35901c3d0e0c0b07f83fdd735c8967a2cc4b29a2b2c6ec7063195b9a2483f4
5a1a1bf4925352ff4ecc434e28b3272b6e3da4b1fe939ecded732c664b8369f4d9b5cf7d74fe67e8fd
3fd32cf75d26b205afaac77e85cdce6cbfdcf7b3739f66e733f9bf43fc27bff004cb69f8e6b635ed692d
10e7b1bf49aefceba88fceff4b57f86ff00b73d7a17b3a6e336cb86231f4b5d5b2b6d14d6490f01dbbd
ccfa3ea7f292535f6d97fa9536abecb1cc3b98dcbac876d1e96cdadb3e858cff000d7b3d4fe6bd5f7ef
48e1f51a898c6cb756d05ad6b72dbed83b1aea5a36fb763ff00e827aba974bc7bbd5a706ea9e4b98
2c663d61e49da5ffcdb377a76ecfcff00dc5a1d33a91ea26c02bc8a3d28936b5ad077176dd92ddeef
a1eff624a41b3a97d87ec5f65c9fa5fcf7da9bea7f3bbffa44fabe9ecffae7a3fa1496aec7ee03d476a0f
eef97f252494fffd4ef1e33dcf6ba8cda6ba7d3630d0f00c6d82e7fba7f4bf4d8ff00fadff368429eb31ff2
c522c305c456d20c3195ba2b7b9de9ee7b7d6f67fa55bcaae5db6544d95b43decaac735ae3b4120
d7cbf6bf6ff0098929cb7e3f582c2c6f58a5809907d3048321ff48d9f45bb7e8ffa3fa68f7d563f05defb
6fca258cb32317631ee2c1ea37dce0e65756efa7b18b429c975b7db49a6cafd23a58e10c77fc5bbf3
92ccc2c6cea4d192d2eacce8d739875059f4ea731ff0045c929c1b6acdb9e58dafa91de411beca58d
1ed876e7063f63bd37d95fb7fc2329ff0048fb116bc27b8b717fca155577a86cb9cfac806cfd2bf77b6
cdbea6ef7fee59fcdad9632ac3a2ba28acfa6c86575b4f000f179f25119ac2f7561b2f66ddccdf5c8ddf
cdee6fa9fe13f31253468ccdb8c5dea906f7b18db747bcb9d8d5bdae66d6fa765db9bfb9e9bd566e4
e7b18c7badea0e02c7b7fa3565ce68f737756dafd95ed6fe86efa6ff00d2fabfe0d5dc5c8c7c5b9f480
cac645918b4b5f58914d75d16555d7bff00c03a97fb19f415c1924bb60acef0038b773260ced746ff0
0ced8e494e2d76f507138edbb3d966e7016bf1d8e6836d8ef4dce7eddbb2863be87e663ff00c22b7
76234daf6bedba8717b6d2fc76bbdced82a73b76cb3f95ed62d4ade2cadb637e8bc0709e6089524
94e19c1c76836db9f9b2d699b0870db21bea3ab73a9df533f45bbf9c52fd998f33f6dcf0f924bfddb8c
99d85fe8eef4ff90b4b3ffa0e4ffc53ff00ea4a15d919f5bdde950325a1f1b58431cd6ec63bdc6d7b5af
7bac73bfb1fe7a4a680e9182315d89f68cc3439c1fb48769b5cebb635be8ec6d6f7bfdfedfccad25b8
924a7ffd5f4c16dde9b6c73ea635f1b774f7d437e93509f6b2c70df7d25ae6d8c8d7582df575dff0098
aaf53a465f4fa296d35e4ed00b9b63f601ec35f2c7b1fbbdeb2cf49b8fa80f4fc6756f0dd1f7bcb8fd3f5
4dcef59deabff0099fa6fff004b67fc6253d18bc921a2ea4b89da00e67f77e9a356e792e0f825a796c8
ede6b2f07a574cabd0c9b2a6539758e196bcb41927fd26d7fd277d3fdf7ad3a9cd73ac2d21c246a0c
f609296bdad7ec63c0735ce21cd224105af0410b1b32efab38f7594e4d61b6619076c1d0d82ad6bd

907

bfbdbebddff005cb3fd2bd6cdee6b7d373886b43f571d00d1c3559f935e4597bada3aa331dae3f436
87e901bb7f4976cfa437eeaebad252b0ba6f42cbc10fc6a1aec5c83bcb4ee8240f4bdcd2efcdd9e9a
3d3d17a5e312fa71dad74874ea75600187dc5df476b15166367b5841eb4c73e006d86b12d8efb7d
6f4dce7fe77a8cfea2b382c7e3b9eecaea232c3ab6b1a080d00b4d8e759ed73bdd67a8c67fd65253
770ffa251ff16cff00a9099c2f7daf0cb7d36b40d3683ceb3254b18118d503a10c6e9f24cd7359759b8
ed9db13a76494e25ff583a6bf1a1f9aef4ef6ed3b6a121af0e697705bed8fcdf5117f6ff4f0d0efb7187b
835b157d23e5edfdd08978ebcf6dcca7271abf5777a6f2e25d5cb76b437f44ddfb1dfa4f723631ea83
25a726ec738cd0416b092f98f69dee6a4a6d7a393ff721dfe6b7fb9244f56a9fa63ef49253ffd938424
94d04060000000000070005000000010100ffee000e41646f626500644000000001ffdb008400040
303030303040303040604030406070504040507080606070606080a0809090909080a0a0c0c0c0
c0c0a0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c010405050807080f0a0a0f140e0e0e1414
0e0e0e0e14110c0c0c0c0c11110c0c0c0c0c0c110c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0
c0c0c0c0c0c0c0cffc00011080183015e03011100021101031101ffdd0004002cffc401a2000000070
1010101010000000000000000040503020601000708090a0b0100020203010101010100000000
000000010002030405060708090a0b10000201030302040206070304020602730102031104000
52112314151061361227181143291a10715b14223c152d1e1331662f0247282f12543345392a2b2
6373c235442793a3b33617546474c3d2e2082683090a181984944546a4b456d355281af2e3f3c4d
4e4f465758595a5b5c5d5e5f566768696a6b6c6d6e6f637475767778797a7b7c7d7e7f7384858687
88898a8b8c8d8e8f82939495969798999a9b9c9d9e9f92a3a4a5a6a7a8a9aaabacadaeafa110002
020102030505040506040803036d0100021103042112314105511361220671819132a1b1f014c1
d1e1234215526272f1332434438216925325a263b2c20773d235e2448317549308090a18192636
451a2764745537f2a3b3c32829d3e3f38494a4b4c4d4e4f465758595a5b5c5d5e5f5465666768696
a6b6c6d6e6f6475767778797a7b7c7d7e7f738485868788898a8b8c8d8e8f839495969798999a9b
9c9d9e9f92a3a4a5a6a7a8a9aaabacadaeafaffda000c03010002110311003f00f4ff00e5b7e5d791b
5df27d9eaface83677faa5d4f7d25cde5c46249647faf4e2accdb9d8537c55967fcaa3fcb3ffa95b4eff
910b8aa89fcaefca91722c8f9734afae321985bfa49ea98d4852fc7af104d3978e2aa77ff00967f945a
4d9cda96a9e5fd22cac2d979cf77731c71451af4ab3b90146fdce2aa69f97bf936f7f1e989a2e88da9
cd17d662b30b099de0ff007e2c75e453fca0298aa31bf287f2c1c057f29e98ea0f201ad908a8e8771
d7156c7e517e580e9e53d3057affa3a7f4c556b7e4f7e563905fca1a5311d0b5ac67afcc62ad7fca9e
fcac351fe0fd2a8df687d563dfe7b62ab47e4cfe538a71f2668e38eeb4b388529bedf0ed8ab43f25bf2
8d6a57c91a28a9e4dfe8306e7c4fc3bf4c552cd0fca7e57f28fe6a456be57d1ed34786ebcbf7125d25
8c2902cad1dedb842e10004a866009f1c55e984802a4d062ade2aec55d8ab0ef2e68c756d12cf52b
dd4f526bab95324a52f668d79163d1558003d80c5534ff000b5b7fd5c753ff00a4fb8ff9ab156bfc2b6
dff00572d53fe93ee3fe6bc55dfe16b6352352d537ff97fb8ff009af15531e57b157f4bf4b6a7ea05e65
0ea371cb8d695a73ad2b8ab43cab635ff008eaea956e83f495ceff2f8f1554ff09da921bf496a9f2fd21
734ff0089e2ad0f2ad9237fc74b5424ed43a8dd1ebff3d3156ffc2569ff00571d57c3fe3a375ff553156f
fc2767403f486a9b6f5fd23775dbfe7a62adff00856cff00e5bf53e94ff8e8ddff00d54c552dd3ede4d2f
cee74d86f2ee7b1974a370d05ddccb72a265b9081d7d5662a789a6d8ab2fc55d8abb15762aec55d
8abb15762aec55d8abb15762aec55d8abb15762aff00ffd0f637e507fe4bed2ffe32df7fd474f8ab30b
e94c165733ac8b0b4513b89a405910aa93c980a120752062af96350fccaf30c26cfce32ea5141e6c
d0f48bc4d4107d4ee2daee2fd29a32308674401ed25599a58e4511ca9cfd37e2f1362a9b6a7e7d5f
39de689a65d6b30ea3a59f37e8cb0a158a179a09a6d46078e5b6218aa7381504721773c7931567
e0aaa0479a9f4c92cb56d3b5c821f335af94e7b55bd98dbcd3c2cbe6082178ca38a7c0094e057e1a
788c551aff99be61b0f366a4f79e6306d2c6d67d305cdd3c50d920b5f354b6135d4de9c451648edfd
0595c2718c3ac8eaa98aa603ce3e7a76293fe60db7ab6d7de5dd2e692c6cec85b4bfa6e5114b327
d66367e457e384d781f89b83c7c68aa8dd7e6979aecf44b9b3b8f33a41ade9dab49a5dfdccb05a2c
b15b47e6cb7d3165951a3088cd63387a950a4324a17be2acb7f2af5fd7f53f3e799acbcc1abc97cb0
69d667450cd12c779631ea3a9c0b7e91c6aabca448e2f51e3011be1db74c55ec78abb1561f3a81f9
a960fdcf97ef47dd7b69fd715493f392b35bf9374e92e96decb51f34585adf432aa3c3736e62b87304
8926ccacc8a48f6c55e776df9a9e6b92ce58f4bd6f43b0b08468d616d2cb1adb595a3dfe906fc4b2c
bca701249a2fabc51f01fde7057f53862afa26ce579ed209e4a079634760a180ab282681c0603fd61
5c555b15487c95ff0028b697ff00187fe3638aa7d8ab0cf3e799750f2e5c797deddb8699737e916ad
244893dc476e59503fa2c431879baa4cf1d5e1e69271e01f15791681e7cf31796f47bad11f58b48ed
d74db7d4743e36e8258d9ee7538e4b5e72cde9b93f520dea49c028f515549e18aafd3f5ed5b52f39
796fccff00a5e04b7f32798acb4fba4582dd80d3aebca7fa53ea627605cc4f384a2d7e26a37dac5586
f92754bfd03cb5f961af5fc9a5e9f67a77973cd13693a932cb752c4cad080f34744a81cb7547dc9fb4
315656bf9d5e7916369ab25c594d6b617c965a858882379ef17fc5126827f7b14cc91bb44525fdda
b2faabf0feedb1543d979aa4f30eb9a179a2eb518751d43546f2b6b0ba75a88d64b61345ad31b455
53cdb837eef938e65bed7862a9ff0093bcfdf993e68d53cbb6136bda1c765ad4f2df47369c1353b93
6305b5b5cb5bcbc4c51c4dc9e48c1a3bfa6c8cdfbc5f8d57bee2aec558bb7fe4c58ff00ed8aff00f516
b8ab28c55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb15762afffd1f637e507fe
4bed2ffe32dfff00d474f8ab359a249e27865158e4528e2a45558508a8df15634fe43f2541183269d1
c710a46394b2aafc6d40bbbd3763d3bb62aaa7c87e546a16d3ea41a82669ea0f5aff0079d7155393
f2f7c9b254cba52396fb45a49589aee6a4be2a83b6f2e7e5cdecc6d6cfeab71393221821bc777254f
ef01559493423e3ff0086c551aff97be4f91b9c9a62bbedf134b313f0f4eafdbb7862a957993f28fc99e

66b0161756f340bf59b4bc69a19e42ecf63709708adea17054b46036d5e3b5462ac934bf2be85a34
ff5ad36d3d09fd3f4797a923d23a83c4076200a8ed8aa6f8abb1579ef98b579747fccad2a78b4bbdd
55a4d0afd0c5a7a46f2201796679309648c53e4715474de729a70a26f24ebb3706e481adac9a847
71caeb6c55497cd091a3247e43d6951a9c956d2c406e06ab51f5aec7a7862a88ff1d5f52bfe0cf301
3e1e8d9ffd95e2ac47ce7f9b5e61f2dcba7ea167e52d5e5b7924fabcda1cd05a7d6ef1a52027d4da3
bc66f554fec18da361f69e2a73c559d7e5f5c3ddf92b43ba92092d649ed5257b59f889a267ab1470a
59792d68d4622bdf1564b8aa43e63f27681e6b92c66d6a1965974d73358bc37135bb452353e2061
74df6143db156289f907f9531ab2a682023fa6197eb372411048d3475065fd89199d7f95d99ba9c55
5ad7f23ff2d2c63786cb487b7864962b878e2bbbb44335ba18e292825039a29e28df6957618aa99f
c88fcad36f696874426d2c229edac6dcdd5d7a7041775f5e38d7d5a2a4bc8fa8abb3d7e2c55dff002
a23f2b79171a1d1884048b9b91511b8953a4bfb2ea1d7c1c72fb58aab47f925f96f0dc0bc874a922b
c175fa405c47777492fd70b33fafcc4a1bd4e4cc79d79558f8e2aafa67e4ff0090346bbb3bed2f4d92d
2eac279aeecde2bab95f4e7ba6e53b8025a5653fdeffbf3f6f962aceb15762ac598ff00c8478c78e892
7fd45a62aca715762aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abfffd2f63fe
50907f2ff004c2a283d5bfd87fcc74f8ab37c55e2bf9956f75e78d22e3f2f7cbdaf2ea7ab5edd6a3a84
b4b886d2e6cbf45bd6d914a47f66daf8dbd790e4cb1b0666df1541279f3cd7e7db6b45f286a06d2e7
cc3e5979b49b9b6780fd4b5d48a72c9776f346cc233245c5274e68ad1bc4e80ba332a97eb1f983e6
f6d1b43f32b6b173e5d9afed5f585f2fce968ced1c7a9e9d6890cc65899f8ba4d216e0cadf1d432f1c5
547cbfa9daeaf61aaf97fcb1e68d3adbcd771acf9c62f2dc5690c33ea367a8497f772c374c5bd6021f
4c38776895192555e46ab8aab8f3e79bf55d7fcba17cc4fe59b5d62d62d6edf4ed4ad87d62e6de59
658ae6da2436ec0b431c71cbf13ab43ea7ad2738f655529f22f9dbcd5adf9a3cab67aef9a6eef6c92f
348bbb89d45b40b2beb5e5c9ae85bca208954c46e63fdd2d3972257993c78aafa7315762aec5588
dc7fe4d0d3bfed837dff519678ab2ec55d8abb1551367686ec5f982337cb19845cf05f51610000026
060f002220574d464301000000000001000000000000001700000000200000c4960200c4d60200
4444f2281e95e35de95c558f793e7b88fcb3a12c36cd3a4c19279032a0850091b990c4160595528b
bfc55fb35c55e7ba07e765afe90f3ea6a170babc3a32aeb9a443a7465cae8cce6c9831504b18a5b7
79e6600f18a6520362a9d0fce0f81a46d09e48dacadf56b392daf2dee22b9d3e5b7ba9e59e1910f06
58feadc7afc7eac276e78ab7a37e6fb6bf6a8ba6796eee6d71d3eb434913db87367f55b3bdf51642c
10b98efa1023ff007e725e407c78ab16f2a79bbcd4f2f9975268fcc1accde5bd4bcca60b7a5b269b7f
6ba75cbc3059a4856a2550c0c668a5da36576618ab3887f331ef2feced74ed0aeafa0bb96dc8b8b6
65938d95d32c497440140824f5038665e2913c9bfd9c5520b2fce4bdd7b5cd2fcb961e5f92d2e6fe6
b4176f73751868ec352d3af2f229a231070645368eac87a6c797c5f0aac23f2f7f34fccba8695e43d5f
578f5cb878bcadab6adabfd616dadedf57b9b416a51e372ea8788964209f4938905bece2acfe7fcee
b3b4b3b1d46e7449c69f34d041a85d47344c96df58d564d1c380dc1e4513206d957f74dcbed0e05
562f07e657986f3cef7b7d2dccb63e5565f2c6a16166258e646d3f52875792590811a9532a5bc4cf1
92dc593e17c559b685f9a5a96b977a6d90f295f59c9aadc30b596e9d6185ac92182e0dc2991519a8
931564543fbd4640ecbc64c553d761ff2b2e04eeda14c7a7617917f5c5595e2aec55d8abb15762ae
c55d8abb15762aec55d8abb15762aec55d8abb157ffd3f62fe506df97da67fc66bfff00a8fb8c559ce2
a913f92fca7248f33e8d6865909677312f2258d49269dc9df15406abf96de4fd52c2e6c534e8f4f92e
62308bfb055b7bc8958824c5285250eddb1557b5fcbef25da5adbd9c5a1da186da34862e71091b8
46028ab35493b6e49a9c55597c8fe4f43c9343b256a52ab0a034f0a818ab67c95e523d746b43db7
897a1ebdb155f6fe4ff2b5a4c9736ba3dac33c4c1e392389559597704103a8c553bc55d8abb15625
71ff00933f4eff00b60dff00fd4659e2acb715762aec55d8abce2c3cbfadebfe4cd023d1f5b6d15adc5c
34cc2169fd512acb005216687650ecc2bcbe3e0fd5062a9649f945e6366d1a487ce0b6b368363fa2
b4e9adb4df49c5a7281f84845d7c7f15b4477dbe1e9f1355548b4ffc94f3747aab5a4bac69965e5ad
234abad13409ad74f76ba9adb5a292dff00ac86e15632af1810f0661477d97ece2a8b4fc82be8a7b3
bbb7f363dbddd8b446de7b7b59a093d386ca0d3cc4cd15e29689e1b6896443f69903ecfbe2a9869
7f93fe63d1ef12eecfce8e563d4af35b16725931b56bfd47d43348d1add2f25acaec91b1f4d1be255a
818aa85a7e48eafa6cfa2cfa5f9b3f47fe8188dad9c56b652c51496a6617021b9417b4991651cd79f
42587d96652aa8db7e446a7697906a36de6e68efed96c521b95b37591574c8ae2080556ec7fbaee
a5493fdf81be2c550b71ff38f17773e5fd37caf2f9b5ff41e93a6dce89636cb64ca56caf0c6645675ba0
ccd58632af5e4bc3fd6e4aae3f901abbdb1b39fceb35c5b99e1bb649ec8cdca682fff004a2b333dd33
30373591949e26a57ece2aa3a5ffce3b6a9a45cbdd5bf9da591dc59208ee2c7d7852df4cf5c5b5bac
6f7254431adcca8129f61b8f2c5537f267e4aebbe4ebbd1258bcef73a859686cc2ded6eed9a626de4
8d21680492dcc852311c6ab1aaed1fdaa16c559ac83fe4255b1a7fd28ee057b7fbd9062acaf15762a
ec55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abfffd4f6968de4cb9f2f69d1e93a4
6bf790e9f0bcd24313c569232faf2bccc39343520339a57b62a987e86d6ff00ea64baff00a47b2ffaa1
8abbf436b7ff005325d7fd23d97fd50c55dfa1b5bffa98eebfe91ecbfea862aefd0dadff00d4c975ff004
8f65ff543156bf42eb7ff005325d7fd23d97fd50c55dfa175bffa992ebfe91ecbfea862aefd0dadff00d4c
975ff0048f65ff5431577e86d6ffea64baffa47b2ff00aa18abbf42eb74ff009492eabe3f57b2ff00aa18a
b6345d6c1dfcc9767dbeaf65ff543155b65e5a6b7d757cc17ba9dc5fdf476925842b2ac11c6b14d2a
4ae6914684b131aee4f4c553ec55d8abb15762ac43c93ac6911795b4e8e5bfb68e45470c8f346ac0
891aa082db5315641fa73442011a95ad0f43ebc7ff003562ad1d7b421d753b41ff003de3ff009ab156

909

bfc41a0ffd5d2d3fe9222ff9ab1577f88341a57f4a5a53c7eb117fcd58ab87983413d354b33dff00de8
8bfe6ac55aff11797ff00eaeb67ff0049117fcd58abbfc45e5fff00abb59ffd2445ff003562ad7f88bcbfff0
0576b3ffa488bfe6ac55bff0011797ffeaed67ff49117fcd58abbfc45e5ff00fabb59ff00d2445ff3562ac6
e2d46c2fff0033ad7ea37515d04d06ebd4f4244902d6f2de95e24d2b8ab36c55d8abb15762aec55d
8abb15762aec55d8abb15762aec55d8abb15762aff00ffd5f7f62aec55d8abb15762aec55d8abb157
62aec55d8abb15762aec55d8abb1549e4f297956691e69b43d3e495d8bbc8f690333331a92494a9
27be2ad0f28794c0a0d074e03c3ea907fcd18ab87947ca80d4685a7027b8b483fe68c55b1e52f2a8
e9a169e2bd7fd120edfec31577f84fcadd7f41e9f5ff0098487fe68c5522f387963cb29a346468d62bf
e9fa6814b68475bf807f2e2ac83fc31e5aa93fa1ac6a7affa343ff34e2ae1e58f2d0e9a3588ff00a3687
fe69c55dfe19f2dff00d59ec7fe91a1ff009a71570f2cf96c6c347b11ff0046d0ff00cd38ab7fe1af2e7fd5
9ecbfe91a2ff009a71544d9e95a5e9cccfa7d95bda3b801da089222c07404a815c55178abb15762a
ec55d8abb15762aec55d8abb15762aec55d8abb15762aec55fffd6f7f62aec55d8abb15762aec55d8
abb15762aec55d8abb15762aec55d8abb15762aec55d8abb15762a90f9be9fa156bff002dda6fbeff
005f83155de6dbed62cb4594797edbeb1ad5cb2db5996da185e5ad6794d0d12250d211fb7c7d31f
138c55837e5d79d75bd3bf29a2f3079f05c5f4fa3e8f6da9cdab451fab26a567259adc098220004d5
e51ca9d9d3d4fb0eb8aa85cfe79dbfe8b96e74ff002f5edc5fc3a7dfdfcf0a9496deddec85d0884d716
e658c453bda4aa9306fe43c7e3c555b44f3379a3cc961abf9c64d49b43d3b42d4da0bbd0da186641
65a5aafd783c850c86493e3689d59555447b6ecd8aaba7e735a2ea72e8b7da15e5a6ab6a6dc5ed
bb49038885ddcd8c1110e8e55c15d4229363fb3227da51c956bcadf9c12f9bb52d32cac3cbb71690
dfcc39cb79716eacb6524374c93aac4d254992d258cc668c367e8d8abd4315762aec55d8abb1576
2aec55d8abb15762aec55d8abb15762aec55d8abffd7f7f62aec55d8abb15762aec55d8abb15762a
ec55d8abb15762aec55d8abb15762aec55d8abb15762a91f9b7fe38c3fe6374eff00a8e83154deebf
de69bfd46fd471579c797747d47cc1f90ba2687a4dca59dfea3e59b2b58ae65f538a89ace346de26
475254901d4f243f16f4a62abb48fca4d0ed3498ad35fb9bbbb096b3698627be9da13633b37a504a
c3d113980c8e209244e71fa878fece2aa5a6da7e5a4be624d26cb53bc9eeef84d653581b8bc7d3b5
0b9d360582e1a427f7334f1c6a16621f9332fef793a7c2aa16fbcb1f94761a95b68d7f25ca6b36f728
aa7d6bf375713456c97f14724a9f14ca90e9e8f1a1665ff0047e23e3a82aa6de50f257e5fa4ff005df2
bc97465d12e63b46adcdd8f466b4499c42cb29155e37d233a9147e7f17d91c5567f3cf15b44d34a6
88a0b1a02cc4282c680549341d06f8ab70cc9710c73c55f4e55574e4a54f16151556008f9118aafc5
5d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abfffd0f7f62aec55d8abb15762aec55
d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb15762a91f9bbfe38c3fe6374eff00a
8e83154e9d0488d1b7d96054d3c08a62af36f3f59c7e50fcafb2f2fe8c2e2e92cce9ba5585824845cd
ec51491c66df9a344dc9e24627d32adb6de18abca13cb1e6cf3569cf78e9e65d5ec627d0e6d3dae2
7862b6bcd36cef34d9e4e71b4c2617b1496f7478b151f1337ab22c91e2acde1b6f34e99f96b2f9213
cada8dcebfa30f40de5a4b0dbc57113ddd1ae2dae0488ccf2c0ef2491afa6ffde44cd1f2562ab1a93c
bdf981258f974dce8dab3eada4c71adddd078beb1ea43a16b366ae92adc12584d7502860d5ab72e
5f0b362aa17be47f3f4b7379736f69addbcd7fa95a4dab7d5af9a18ee74fb8fd15cf8aa5c2d244f46e7
d565e3271e6a59fd44aaad0f257e61379d2e6f6e747d58f972c6ea49f4a8cea1f5868e75875bb349e
277ba2e6b1cd6045427150abc3944599544cde57fcd69f4cb99658b545d55dad4bc915e147974c2
34ff004edd78cc024d03c77066deae3d46f51fd7e2557b0fe59596b1a7792ec2c35d4b88b50b796f2
311de48669d6d85e4df560ee5dcb7ee7d3a5589a7dadf1565d8abb15762aec55d8abb15762aec55
d8abb15762aec55d8abfffd1f7f62aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55d
8aa5faeea8ba1e89a96b4f199934db59ef1a15342e2de3690a83434af1a62ac4f4fd7bf34f51b0b5d4
22f2d684b15dc31dc2236b777c82ca81c034d2fa8aef8aa23f497e6c53fe51bd06bff6dbbbff00bc5e2
aefd25f9b1ff52de81ff71bbbff00bc5e2ad1d4bf3629b796f40afbeb7774ff00ba5e2ae3a97e6c6f4f2d
e814ed5d6eeffef178aa07563f9b5aa59fd50681e5f8bf7d6f3873ad5e37fbcf3c73529fa2c75e14c55
1dfa47f36bfea5df2f8ff00b7d5e1ff00bb5e2aa17927e676a103dadf795bcb5736ac4130cfab5d4a8c
54822aada591b7518aab4779f9ae8aa8ba0797638d400aababde5001d801a68a6d8aae5bdfcd835
e5a2f97875a5355bd3bf6ff00a5762ab92eff0035bfdd9a479786dd06a77bd7fee1f8aa27cb1af7986f
b57d5f43f32d85959dee9b159dcc7269d732dd452477a67001334101565301ec7ae2aca715762ae
c55d8aa517be6bf2c69b712da6a1acd95add41c44d04d71124885d432f252d51504115ed8aa1c79
dfc9cc095d7ec081d48b9888db6fe6c5577f8d7ca03fe97b63ff004911ff00cd58ab879d7ca04546b9
634d8d7eb11f43d3be2adaf9cfca6dcb8eb56642fdaa4e9b7cf7c55a1e74f2911c86b5674f1f593fae2
aeff1a794ab4fd35695ec3d65feb8abbfc67e54ff00abcda7fc8d5feb8ab7fe33f2a7fd5e2d7fe46ae2a
eff00197953a7e98b5aff00c655c55dfe32f2affd5e2d7fe46ae2ab4f9d7ca4bc796b566bcb64acca39
1a134153b9a027157fffd2f5cf91e2f3179abcb56baf5ff9a35086eaee5bb0d0dbc560b0a2c5752c48
143dab3502a01bb1c5590ff86757ff00a9b355ff0080d3bfec8f1577f86757ff00a9b755ff0080d3bfec8
f1577f86757ff00a9b755ff0080d3bfec8f1571f2c6ae7fe9add587c934effb23c55a3e57d5cd7fe76ed
5c57c134eff00b22c55dfe17d5b8f1ff176aff3e1a757fea0f155bfe14d5aa0ff008bf58d8014e3a7536ff
a32c55a1e53d55542ff008c35934ee469d5dffe8cb155a7ca1aa114ff00196b63e5fa3bc29ff2c58aad
3e4dd4cf5f39ebbdba1d387414ff00962c5509a5c5ab68de7b87469f5dbed5b4ebcd26e6f1a2bf16c
784d05cdbc6a50c104247c32b020d7b62acdf15762aec558ef9febfe03f3453afe88bfa7fd23498aa5
1a879c74ef22f91f42bdbb825ba9ae60b3b1d36ce0e11fad752400c719965648620789f8e5744edb
b15565506de7df30beb569e49b5d36d1fcef2c0350d4d1ae1934ed3aca566119f51d524bb7f878f18
230bcb791a15e3c9579a794fce5e71d1b50d2f559a7d4f52d0afb50d6b40bd6d4e532db4da93ebb2

5b696b6c28f28f4a08e6f59a35e05155486978e2ac9751fcd8d6eee568350f2cdc69565a56a9e5cb4
d4e68f54f46e92e7599eda91fa4903738a3f5a932975f553e1db93705515a7fe78dbeb5aaf977cbb6
da5b437fe75d3e1d5bcb3334f489eca64b991cccca84c72451db86e203d4caaa0fc2f8aa4ff96df985
aeb69d6ba6b5b5c6b1e6ebad1744b98a3bed48fa375249a54d72e53942442ecd0f17279091dd646
e3438aa86afa27983fc53ac5ac9e6af30593c7e596f32fa0ba8b1582fa4bdb8668422563f4d500802
afc3c5792fc7f1e2a99683f9c9aec3a7e9da76a3a2432df5aa449ab5ebea0c40b78b44b6d5e4b814b
5abc8639997d3a01ea2ff0079c5b92aa99dcfe71eab631c1737fe587b7b1b896336f74f7207af6937
d4f8cb143e9997e1374eaece8912b41fdefefa2aaa82b5f3af9bf50f3a5eeaba2c304da53796edb55b
5d1aeafda2b7962faf5dc7ea090c7c209dd113760c9fb0ecb4e78aa6b37e735a5be91a4f9cdf4f91fc
8faa482ce6957fe3a769782468580b55e7f5c8cb80a1ec9a63feec8d668bf78aab27d20d7f30fcd07f
ed5ba37fc4eff156598abb15762aec5585f93514f9a7f306aa37d6ad4d4f7ff70da7e2accf8a8ec3eec
55dc57c062ade2aec55d8abb15762aec55d8abb1548f5dafe94f2c53a7e9292bff70dbdc55fffd3f637
e50ffe4bed2ffe32df7fd474f8aa63e75f344be548748bd1134d6b75a8259de450dbcd77706278267f
dcc56e19d9f922d0056dabb77c552e83f36bc95796cb77a7dcdcdedbbc304e925bd95d3a11751ac
b12063105f5191b970af2015f97d86c552ed1ff003634b9b57f33596ad3a0b3d2ae627b0b9b686565
fd1b3e9b677b1cb70df1042ef72638ebc3d4a7145e4ad8aac5fcd7d2e7d56d75282f231e496d36fae
af246b59daf62bdb0bf834f784aa12c3849295917d224100f2e38aabc3f9d1e519f5d9344892f3941a
7c9a8dc4ef6f2208e48afff0046fd55918071399c15e047f2ff00362aba3fcecfcbf9ed20beb3bbbbbdb
4b85b7659acf4fbdb94592f5c476f133450b01248ff0002a56bcc15c555bfe570f92174e8f539e7bb8
2095e4816396c6e84c2e21bf8f4c784c4232c241732c71f123f6c37d9c5511e54fcced0bce5e61bef2
fe8d6f77ea69f636f7f75717103c0b1bdc5c5c5b35b3ab80c9346f6ce2447008a7b62acd715762ac4
6e07fc850d38ff00da82fbfea32cf1565d8abb15762ac7bcfaa5fc8be6751d5b49bf03b75b69315446
896f6da879534db6bc852e2d2e74f81268265578dd1e1505595810410770715413fe5f7945f45d3b
cbeda70fd19a3cab71a38f56613594b1b1646b69c3fab171af15e0e289fbbfeefe1c554cfe5cf94cf97
0f954da4bfa1febadaa44bf59b813c57cd746f7d78a7127ab1b89c9901471c49dbe1db15534fcb3f2
6c6970896522add5d69f7f714b9b8abdd690c8f6b293ea5792b46acdfefd615979e2aa43f2a7c88a6
de48b4bf46e2c9e2934fb98679e29ad3d0699912de4470d120faccc3d342138c8cbc78e2a854fc9af
cbd8ede2b58b4e9e28e0fa98b778efef5258974e825b68152559c3aa88a7923650d4911c893962a
9ecbe49f2e4ba8cfaa35b38bab9d33f414a1269522fd1c0b1112c6ae116858d19407ff2b1540e9ff96
7e4dd32f63bfb5b17facc6411eadc4f32352c534ea3248ecac3eaf1a47461fb3cbedfc58aa58bf925f9
6eb15b45fa2e726d23fabc32b6a17ed30b70d03a4264339768e36b684c71b1291fa6bc15715564fc
9bfcb813492cba37d6565285edaeae2e6e6d8a457325e247e84b2b47e9acf2bcab1f0f4c31fb3b2e
2ac98f96f426d7a3f333d8c4faf436df51b7bd7059e2b6e45ca4409210313f1700a5fe1e55e2b8aa51
a4ff00e4c3f347fdb3b46ff9397f8ab2cc55d8abb15762ac33c9c00f357e608ad6bacdab7caba3580fe
18ab33c5527f32f9934ff002ae98baa6a21da292ead2c208e200bc975a85cc769020a9007292551c
98855ea71562507e72797ae3f470874cd5649b518cc9f5586d3eb17101f4ee24459a381e42a6416
ecaa45579bc4ac54c83154b3cc7f9c367368fa85a796adaf9b5a7d2b59bd82fe04b59adac64d1b94
523cecd2b29e3298fe155939731f0fdaa2aa1a0fe7098bcada5aea3637da97985b43b5bfb8bfe16d0
da5c5f4da3c9ab7a60abaf1e690ca368c2295e3dd6aaa6e7f39b418d2f6ba6ea3732e991ffa7fd4e0
59916e6336c92c0adcc02ead74a057e17e12f02c53155483f37b4d74be92e742d56c63d3e5bbb5b
86b94b51fe95a7d9bdf4d0afa772fc888a33461f072f8797daa2a936adf9f9a4d9e8f77aa59681a9c8
1209a4b196e56086da7b88b4e8b541173599d9795bcc1c314e27848bf697157ad44cef1a348bc1d
94164a834246e2a2a36c557e2a926ba4fe94f2cd3feae5257fee1b7b8abfffd4f63fe508a7e5fe980f5f
56fbfea3a7c555ff003074cf34ea565a54be5086ce5d5b4ed423be51a8ccf041c638e4420fa7148cd5
1252838f8f2ed8abcb57f2e3f366d7469b43d32d349b6b479ec27064d4a5b8122d941e94b1dc21b0
5591666fded07058dc2fc2ea298aa416ff00929f9b76d71ab5fc274a8b52d6ed2db4ed42e22d42658
de1d3ad2dadec9fd06b278cc90496deb2b1d984b3424706f855643a8f91ff003cb5316c6f22f2f4932
69b73a6dcbadccd0a3bddde5bddfa91c71d9808a9f57540956e5c99ddd9a98aa5175f941f9b326ab
a9eb9609a4d96a7a849753a486fdee238e49b554d5a0f824b0a32c522b46ea69eac6ffeeb23154fc
792ff003998cef7167a0cd35c5d6877b2c82fe58473d0a759caaa4760155652a1401fdd2ffbf1be2c5
58af9cfc83f9c9650dd6ab61a7585ddbbeacb7f65a4db5d4d772c0f7fadd8eab3bb91631b48b1c96c
4f54e311a71765f8957a3fe5c7917ce3e5cf3b6ade65d62db4fb4b2d6ecb86a70d9de4b78d26a2b7
d7378274125ac26343f5c953d3e4d4e29ef8abd6f15762ac4ae3ff00267e9dff006c1bff00fa8cb3c55
96e2aec55d8aa49e725e7e50f3021340da6de0afce07c5577949b9f953426fe6d3ed0edef0262a9c
e2ac6fcc3e77d17cb576b617e2796edad26d40c36d1fad20b5b6fef24e00f22aa4804a86e3c97971e
431563107e7b790e7b79260d7a93c51c3752594968eb742cee618ae23b811f568d9265a71abd79
2f0e4ac31547b7e6c7952e7519f41d3a79a6d70fc1610c709916e5985cfc50bd42304faacace0bab2
aa863b491f2552ad23f3a3cb90f94ac758f30cf29b88acadceab770dbb083f48b69635592d9003fde
7a357082a2b48f97a9f0e2a8aff95dfe4889166bff00af69d6ac2422e6f2d5e28b9c76915faa72a9f89
e0992441fe5703c64f831575b7e71e8175aa5cda2db4f1d85b5a45335dcbc2326ee5bf9ac05b0576
009e703309397a4c9f107e3be2a99f94ff33fcbbe75d566d2b4182fa46b6b5b7bdb9ba9ad5e0b78d2
f2312428cd250f361cbe1e3fb0ded5559a62aec5589e93ff009313cd03fed5ba37fc9cbfc559662aec
55d8abb1561de5250be6ef3f53f6b53b263f3fd13663f862acc715609f9bda3798fcc1e48b8d23cb16

911

e2eaf6e2e6ccdc43fe8e5cda4570924de9addd2076e2bf625211854571561d6bf957e6dd4f4a92d7
cc3e655b5bdd6b4b3a6eada7da442cfd68a012470c8c2d2501658639823fd5d9207f839a3aaae2a
8b8ff002775b492fb9f991253a869ba8e95701ed00021d5cc6d3baf065018344a53f657e2f878d28a
a0dff296f341d3e19b51f365ac1a26996f6f6eef776eb0c4b05ae9b3e9086494cab4ac370dc9aabfbc
e2db7d9c556e8ff96173776dac5be85e7582e2db519e2bad463b6513c71ea2121e772104ac12499
6142e87f735e52471233f2c5536bffca5d7351b6beb69fcc10c6ba86a573ab4af0dab232c97d68f637
112132b523786465deaeadf12b86c5521d37f26fcc57abaf68fac5dc11680b235ae8b0bc0cc0dbbe9
16fa5b5ca98ae79897d38de3025ad3fbce1f162af70b28ae20b3b786ee5fac5d471a24d385e3cdd4
005a9bd2a77c555f154975b15d4fcb7eda8c87fee5d798abffd5f637e507fe4bed33fe32dfff00d47cf8
ab30bdbb5b1b592ede396558854c70234b29de9f0a2824fd18ab0dbbf3cdcda7e6858793668a18f4
3beb29a386f19ff7efaca28b916eabfca2d56490b78ed8aad5fcdcf2a3c315d225eb58dcc177736778
2d98c1711d842b3c8227068ccc8df027da621d29c91c0558e79f3f3a2d34ef2a6b9a8f965a4b7d574
69e38e49751b198db158354834ebd0a2a85da132f63d4a95e63154d746fcd2d163b4926bfd55f58b
7965d47ea57d6f6325a82ba5448f3c0caed5692ac7d3a01eafec8f849c551127e73f9255bd2825ba
bc9dee20b4b586d2dde67b896e9a748fd2e3b11ceda68c962bc5977f85919954dbc9be7dd3fced73
aa2e956d3ad869e2c9a1bf9542c7709a859437c8554fc4a552650cac3ae2acb315762aec5588dc7f
e4d0d3bfed817ff00f519678ab2ec55d8abb15497ce0c17ca5af31e834ebc3bfb40f8ab5e4d5e3e50f
2faf869b663ee813154ef157997e6c792759f33ac1ab69515b4f73a2db5d4d61149cd6ecdcc904b19
8e1745a84995fd3990b849978abfd9e58ab08f28fe5279fed2d3cbfe678b508347f3947a7da5a6a72f
260ef691d9436ff52961314918319883091093ead5fec9e38aa6ebf94de7d81b4d6b4d76da2fd057d
35ff97d0c9234764976b324d6fc7d01eb2324ee8a652ce8bc29bad5954a87e417987f41ddf979afac
5f4cbc44792391a5723508b4dfd14b78b489407f4284a71f4ccaab271fb5c9554d53f22bcd5add926
9baa6a9632d8c6c658d23f5a391261a643a623ac810ee8b6f1ccbb7f7c3f93e0c551d7ff951f995a95
f26b175e63b36d7d20b54fd25c5c91736176f7504e9118b82f1f52488c407a6d148dcbe3f8f15659e
43f2579a3cb7e64d735ed7350b6bf6d7a2b4178e86432fad61198a361c95451833161fea84e2b8ab
d1315762ac4b48ff00c98de69ffb66e8bff27350c5596e2aec55d8abb1561fe553ff003b7f9efa7fc742
c7a751fee2ed7ae2acc315426a92a41a65ecd25d1b18e382577bd50ac6055424c8030604a7dadd4
8f6c55e2be6dd77565f3e69be7cd1bd39bcbbe51d46dbcb3afde4974c9cad3555417852d847c5b84
b3594ad27a83fde77508462a807f3d79fe08b50bf175757834cd661b19a4b55b5934fb8b0d6c5c5a
5a5cc2a22f5d0dbdc341ebdbbfef10c7237292291715635f991e6df33ae99e73f2deadadbea7a4c96
5e65d27d29e0b754ae99a5d85c4320f422463234b3ca0d5b8b03c42f25c559cdf6bbe71b44fd27e5
cd76cfcd37969aad9c1ac41a35ac56f1b69da9d9b59db248c5ae0f3b7ba65b962b2d7d1279055db1
548b50f3d79d65b892d61f34fd4afa3f3069de5ed5f488ada392eed22975a86cfd71249098e313d9b
9977f539f2f56228b1bae2acaff002975cd4758f35ea6fab6ad73793bf97f45920b69587a0fe9cf7d04f
70a8aa1448cf1a894ad3e2fd91f0e2af62c55d8aa4facff1610000026060f002220574d46430100000
0000001000000000000001700000000200000c4760200c4d6020000c747cbdff6d093fee9f778abff
d6f647e52284f2169c82a02cfa8015ebb5fdc0c5590f99135f9346b94f2c18175b60a2d9eea43144bf
10e44b0867e8b5a7eedb7c55e437ff00969e7fbebe5d75b49f2e2f9aa2d6d35eb6d7cdecef791ac7f
02da073a68262f46b07dafeecfd9e7f162a9349f97bf99361a969da55a797b4b912f75f8fcdd75a8db
6a73dbe9d6d756514714f1b442c4156be058bfa68c8eef348c17baaadabfe517e676ad6779675d16
de3bcb9bebc765bfb972b26a1ab5beae40ae9e05124b658c78a337ed62ac8b50f277e68ebb359dc
f992c741d42e34ed5edf5cd3bd2d4ef2d63824b688c222541a7484ab867f50b312dcbc157154934ff
cadfcd2d3ad74cd3617d25f48d0b575d6b43b193529d92d82bcf20b72c34c56916b70c048c790454
5fe66655987e52791fcdfe499351875f92c9b4fb9b7d3e3852cee1e76f5f4fb48ec8c879dadbf1f5238
632579300c0f1a57157a7e2aec55d8ab12b81ff213b4d6edfa06fc57fe8f2cb1565b8abb15762a93f9
b403e55d701dc1d3eeff00e4c3e2aa3e486e5e4bf2e356bcb4bb235f1adba62a99df6a761a6fa02f6
e23864ba7686ce276559279963797d3894905df846edc577a29c5585e83f9ada25fe82be68f30c96
5e5ff002d5cc10dde99ac5cea36ef657314cb2b95129e016589623eb47fb07f6982f2c55938f36795c
cb2c0bacd89961b41a94a82e22256c9806139f8b68c820f3fb3b8f1c5527d5bf323cb562fa041a75f5
a6a975e649e0874c860bb8ab243721f8dc2d0b168ea8472507bff0029c558edb7e75d85e793740f3
45be8b77f5fd77588bcbc745778d27b3bd92e8dab9b86dc2c684062c01251e3a2fc78ab309bcfde4
8b7fae7d63cc7a64234e996daf8c9790a7a33b970b1bf261462637001ee8e3f65b1543cbf987e54b
7bab28a6d5ac7eadaacb636da3cf0dd4731ba9b528e49600112bc55d232d1b93c641f67a62aaffe3
ff237a325c1f32698218ae3ea723b5e42145c91c84552df6881503b8dc62ac8f15762ac4b4907fe56
2f9a36d8e99a2eff00f3d350c5596e2aec55d8abb15621e57503cdfe793bd5afac491db6d32d862ac
bf1541eaba569dade9f3e95ab5b4779a75caf0b8b698728dd4106847cc62ac63fe5527e59720c7ca
9a692050136e8761f462a97ea1f91bf95da8dde9f7337976d638f4e98dc0b486358ede7938d17eb0
8a3f7810fc48a4d396fbe2a980fca4fcb21d3ca7a67fd2327f4c55c3f297f2c97a794f4c1da82da3a7e
ac5577fcaa7fcb4a53fc29a653c0db47fd3154cf43f24f947cb57325e797f45b3d36ea54f4a49ad6158
9da3243712540daa01c553ec55d8aa51acffc747cbdff006d093fea02ef157fffd7f5bf9734cfccff002b
696ba1dae9fa1ea16b6f3ddc90de4da95ddbcb24771732cebca35b0902901c0203b62a9afd77f35ff
eac9e5eff00b8b5effde371571bdfcd6de9a2797fdbfdcb5eff00de37156feb9f9aa49ff70de5f036e3fe
e56f4d7c7fe95c3156c5dfe6a71df48f2f86dffe9697b4f6ff00a57e2a967983ccbf99be5fd35b539f44d
0a6884f6b6c123d4ef0316bcb98ed94ef61d14c809f6c5533facfe6a547fb8bf2fd3bff00b91bdaff00d
40e2adfd67f34a9be9be5faff00db42f69ff5058abbeb1f9a5db4ed00ff00d1fde8ff00b13c55c67fcd3e

d61e5faf81bdbdff00b25c55a337e69ed4b1f2ff00bffa65effd92e2ad691a3f9b67f3647e63f320d3a18
6db4e9f4f821d3e59e6666b99e194b319a38c00a21a0a56bcb156638abb15762a93f9b091e56d70
8ea34fbb23fe44be2aa1e4624f927cb64f53a558ff00d43a62aa7e6ebbd6ed61b2fd07a58d4277965
124f4466b41f579424d1a39019bd428bc6abfbb693e2ec557ceb77a4799bca7aed8eb5fe0d5b49f5f
f3369f77079623b98db4d93535d335086eee91dc520372644aa245feeae6ff00bd90e2adddfe51f9c
6e34cb8d25741324b622d2f341d6679a5f58cd035a3cda7340970ab05b486d047f588d9e4f44a2fa
5c93962a9f5af963f30f4dd5ac25b0f27430e8cd79a6eb37b6c9745e5b3b9b133996da1794b19d64f
5b989d8c3fbc32fee68c28aa5d07e5ef9db4f957cc36be5aba9f59babaf2eea175a149750ad8d9dde
973db36a73dbcdc8977bb8ec2d5543469421c9a726aaa980f27f9f45d68524be586ba1e5bb9b486
da4f52da2faed8417ed7666994b111cc8bc1552afca5695fd450462a85d0bc93f98d6561e5a82e7cb
6d04da0268f1cad14f0bfabf518752b5ba65e2ca4111df8682bf6da2e0de9d7962a9ce8fe56f3d45e6
0f2b6a9ab79604a3433a769d72f1c900596cf4eb4bfb5179c598d25637aade8ff00bad5187aad55c5
5f4062aec55896924ffcac7f340edfa2f4534f9cba8e2acb715762aec55d8ab15d53f2ff0042d5753ba
d5dee353b3bdbd3135d369daa5f58248d027a68cd1dbcc8950a02d698aa18fe59684cc19b52d7cd
0d69fa7f5603ee17431571fcb1d01810da86bc46d4ff0073fab8a53c29758ab8fe58f978907ebfaed4
0a7fc77f57e9ff004978ab5ff2abbcb7c837d775da8ffbf8359a1f98fadd3154a35cfcbbd0ad6e346486
ff005c45bad41609c7e9fd63e38cc13315ff007af604a8e9e18aa6ff00f2ab7caf4a7d675cdbfefe0d6bf
ecb31577fcaadf2b7fcb46b7ff8506b5ff6598ab7ff002abbcadd3d7d6bff000a0d6bfecb31577fcaaef2
b7433eb5ff0071fd6bfecb3156bfe556f956a0fadacd474ff73fad7fd9662ab1ff0029fca1214691f5866
89bd488b6bdac92afc4a725ff004cd8f16615f027157fffd0f7f62aec55d8abb15762ac4ff32003e5620
f4fd23a3d7fee296b8ab2cc55d8abb15762aec55d8abb15762aec5528f35d3fc2dae57a7e8fbbad7f
e30be2aa1e4814f2679700e9fa2ecba74ff79d3154fb1568807a8c55bc55d8abb15762aec55d8abb
15762ac534a1ff002113ccdb0df4cd1b7ee7f7ba875c5595e2aec55d8abb15762aec55d8abb15762
a90f9909facf97e9ff005748ff00ea1e7c553e269b9e98aac8a58a7892781d6586450f1c88432b2b0a
8208d8823155f8abb15762aec55fffd1f7f62aec55d8abb15762ac47f32cf1f29b9a569a8e91efff004b
4b5c559762ac6fc8dac5f6bba0c97fa8b2b5caea3aada028a147a565a95c5b44283b848d6a7be2aa
ba0f9b2d3cc37ba85ad9d8dec56b63c786a73c212c6e8167426da50cc1f8b210e28a576f1c553e04
1ad0d69b1a78e2ade2aec55d8abb15762a85d4ec63d534dbcd3656648af2096dddd29c95664284
8af700e2ac7f4bf2df98f49d32cb4ab6f312b5b58dbc56b0b496319729020452c4482a481be2a8afd
15e6bff00a98a3ffa408ffeaa62ad7e8af35d4ffcec4943d07d423dbfe4a62aefd15e6ba53fc451d7c7e
a11ff00d54c556b68fe6d2081e6545f71a7c5e35eeff462a92eb9fe34d26ef41b78bcc314a9aaea5f5
198bd8460a466d6e2e2ab4906f5840dfb138aa71fa1bcdfbffcecebbf4ff71f0edff0f8ab4344f38002be
6904d284fe8f837f7fb58aa9b681e7362a479bd940352174eb6df7ad0d6bf2c55b7d07ce2d4e3e6e6
4a0a1a69f6db9f1deb8aad3e5ef389a53ce120a75034fb4dfef5c5511e5ef2cde691a9ea7acea7abc
bab6a3a9476d6ecf2430dba470d9998a2aac4a2a499dcb138ab23c55d8abb15762aec55d8abb15
762aec5520f3357eb3e5ea7fd5d63e9ff30f3e2a9e4bfdd3ff00aa7f562ac3fca7792e99f955a3ea10c
3eb4d67a141711c15081da2b40e16a680548a62ac2341fcdebbd2b4ad2ffc436ba9eb3ab6b012f1c
471e9f0c56703e9b16a9300cb2c41e286376e24833370e3f11e2ceabd47cb1e603e64d3def9f4dbc
d2e48a796d9edafe2f49d8c4769233b878d81051d763f318aa738abb157ffd2f7f62aec55d8abb157
62ac47f32d82794dd8f45d434827e8d52d71565d8ab0cfcaff00f94526dabfee675fdbfedf3798abcca
c3f2c35e9359b26d4bcb517e8278f4c8ef6d1a6b5312b5aea9a9dc4c5e357a38f46ea2da8796e9fb3
8ab3dfca2f2ceb5e5ad16eedfcc1a70b0d59e548ee255bdfaec7766da3108ba4011046245553c48f5
2bfde6fbe2af43c55d8abb15762aec55d8abb15762aec55d8abb15629e71709a9f93abfb5ae051f33
a75ee2ac9ccf08996dcc8a27756748891cca2101980ea402c013ef8aaa62aec552fbfd7744d2a682
df54d4ad6c67ba245b45733c70bca4100f00ec0b6e40db154c315762a86bfd46c34bb57bdd4eea1b
2b28e9ea5c5cc8b0c4bc8d0559c802a4d3155582782ea18ee6da549ade6559219a360e8e8c2aac
ac2a082370462aa98aa8dadddadec22e6ca78ee2dd8b2acd0bac884a314601949150c083ef8aab6
2aec55d8abb15762a907994d2e7cbfefaac63fe9de7c5530d5754b1d2e383ebd21896f664b385f8b
327ad303c1599410a188e219a8bccaafda65c558a7e5fdee95af7916c3cbc970659edf47b1b7d4d6
224345f5bb4042970281f810dc47c4a191987c4b555521fcaaf2945259c8d1dc4a9636ff548229276
29e89b01a69069426b00a135fb5f175c553ef2d796ec7cada62e976335d5cc6a416b8bfb896f2e1ca
aac6bca494b13455551f2f1ae2a9c62aec55fffd3f7f62aec55d8abb15762ac3bf34881e4cb927602f3
4b3f76a56c715641ae69f75aa69375656178fa7dfba86b4bd41c8c53c6c1e362b51c94328e695f8d3
927ed62ac03f2634af3a5be977b7de74b73a55c7d7f548ecf458db944a93ea7737325d16a9e5eb19
07a351f042abfb523e2af50c55d8abb15762aec55d8abb15762aec55d8abb15762aec5588f9d7fe3
a5e4bff00b6f2ff00dd3ef715625aa793757b9fccc87cd70ddc49e6c4b4ba6d28caf249670e9b05cda
c7f55e34057eb11bc8f3300693346df1ac098abd52f2478ad279636549123764790128acaa482c06
e40ef8abe6dd17f313cefe658f45874bf344aa9a84970e1934c6bf9bd78fd0e5a7ccd0c51085da369
648a49428542afcdfd174c5519f96f068f756fa8693f995697ba95ff0099ac3425d3af755b69a69af23
b6b081258518460acb6d7a934920a2321759fa1f53155ba479dff0030afedb48b5bcd5b53b2bd30b
7e979df4e8d0fd7ac74bb9925894cb685389b88179f0fb4c4a46c39ae2aae9e71fcc14975313eb97d
19b6d2acaef4c43a57a9f5c8b5086d647b9f596010a3c372f341e971e611503257f798aa490df799b
58bef31cdaf6bdaa69d756a34e1e5cd5aeec5aeb4e8e7d2aff57844d3db88511967448e3b8e1c19b

913

d5491387eedd555c9e76fcc9b2b451a04171a74ba65ae97fa53c9d6f662e22d274bbad2a2b8b892
155884cd2c137c31465d9f8b70f4b6d954e21f397e65413ea514ba9df5fc1616b692d8ca9a2cd6df5f
d16e9a1fac6a40b29e1716c0cc161a7a927043e8fef3655e91f9291bc5f97b6a8cb7014ea1ac4913d
e44f04f2432eab75247232c8919fde232b83c454357157a0e2aec55d8abb15762a90799bfde8f2fff0
0db562ff9313e2a98eb5a4596bda4de68da82b359df44f04dc18a380e29c919685594fc4ac3756f88
62a957917c9d63e43f2be9fe57b0b89ef52ca30b2ea178c1eeee65fda9667500331f96ca1547c2a3
156478abb15762aec55fffd4f694df99df9796f3cb6d3799f4d49e091e1990dcc75592362aea77eaa4
10478e2ab7fe569fe5c7fd4d3a6ffd24c7fd7156bfe569fe5c7fd4d3a6ff00d24c7fd71577fcad4fcb8ffa
9a74dffa498ffae2aeff0095a9f971ff00534e9bff004931ff005c558a7e637e63f90750f29dc5ad9f98ac
2e27377a6b7a51ccaedc63d42dddc855a921554b1f618ab2bff95abf96f5a7f8a34daffcc4253efae2a
d1fcd6fcb714af9a34edfa7fa4276fa71577fcad6fcb7a72ff13e9f4f1f5d7155bff2b63f2dbfea68d3fc7f
bf5c55dff2b63f2dbfea67b0ff0091c3154cf43f3bf947ccb77258681acdaea17b0c7ebc96f0481a4117
20bce9d6952057154ff15762aec55d8abb15762aec55d8abb15625e7404ea5e4ca76d7949f97e8fb
dc5517704ff8f34e1dbf445fff00d44d9e2a9dde59db6a16971617b109aceea3782e216fb2f14aa559
4fb10698aa0b44f2f695e5db77b6d2e275590a99249a696e667f4d04681a5999dc85550aa0b6c315
4d315762aec55d8aa02cb46d3b4fd4351d52d62297dab3c525fca5ddbd478231121e2c485a2285f
840c551f8abb1562127987cd37be60d5f48d074ed3e4b7d1deda39a7bebc9a0776b8844c78a456d
2800060376df155e6e7f337b699a174efa8de7daff00a41e98ab5f59fccfff00ab6e83ff00710bcffb22c
55df58fccff00fab6e83ff49f79ff006458aae6b8fccbe29c34ed0b953f795bfbca72a9e9fe87d294c552f
d46d7f337507b07365a1466c6e96ec017d7879f1474e3fef18a7dbad715477d63f33bfeadda0ffd27d
e7fd91e2aefac7e677fd5bb41ff00a4fbcffb23c55afac7e68537d3b40aff00cc75e7fd91e2aefac7e687
fd5bf40a77ff004ebdff00b23c55689ff34e9bd8f97f97fcc65ed3fea1715425d6a7f9a76b35940f61e5f
67beb836f191777b45e314b3d4ffa37f2c447cce2afffd5f667e55a85f24da05351f5ad4b7ffb78dc62a
9febbe60d2bcb7670dfeb13182d67bab5b08dd63793fd22fe74b681484562034922af23f0ad7e238a
a678aa06db57b1bbd4afb4981d8dfe9a216bb8d91d42adcab34655980560429fb24d2943be2a82d
53cd7a2e8fae691e5cbe9645d5f5e5ba6d2e04865904a2c6312cd57452aa554823995e5fb35c555
7cb5e63d2fcd9a35b6bfa2b4afa65df3f41e7865b690fa6ed1b5639951c7c4a46eb8aaaebfae69be5
9d1351f316b3298349d2ade5bdbe9951e52904085ddb846199a8a09a28c55ad1b5ed335f86e67d3
247923b4b892cee3d48e4859668a858524552451810c3e16ed8aa658abb15762ac52e547fcacad
31bbfe82d447fd3e58e2acaf15436a17b169b6175a8ceacd0da4325c48b18ab94894b90a0915341
b6f8aa1edb5ed1aead6def23be8043740984b4a82a5012ebf6baad0f21fb3438aa1adfcd3a35ceab3
e90b3aacd0c16b751cecc8209e3bdf58c7e8b863ccd20909f615e98aa0753f3f681a74f716d0b49a9
4b6760358bffa8049c41a7b332a4cc798a8731c9c15393b08df8afc38aa7967ab697a8b70b0bd82e
9c46931486549184720aa310a4901bb1c55198abb15762ac4bcebff001d2f25ff00db797fee9d7b8a
b2b31a1712951ea00543d0720a482457c0903155d8abb15762aec55d8abb15483cd9e75f2cf91b4
f1aaf9a6fbea1a7fc64cfe8cd3aaac6a5dd98428e55540ab3b51478e2a9868fac69faf69f16a9a5c8d2
d94c5d51a48a481f946c51834732a3a90ca4519462a8fc5589796ffe532f3aff00cc469fff005031e2a
cb71560de77f3fdd795354d2b4ab1d2bf49dc6a0f0874699a06f4a7bb86d19a2a4527a861f57d6997
6e10af2c5587dcfe7bdf5bf9426f3c3796597cbde90d4ec2796e1a27bad2cda4975ca28da1e6f3d23
0ac88af0a07591a7e0ad8abb5ef3af9ab51d77ca73269d71a6e95fe2cb8d1c43a7dfa4936a505a59
ea4ce2589961444f52da1700c8cc7e35e9fde2a957913f34f58d2b4685b5e13eaafaaf9b759d211ae
e753776d10d65f4fb487844ae384438f376609fe5bc8e17154cb4afce6d77ccba1d9c51e83069daf7
98ac62bfd1a21a833c4969736371765e5985b02b227d5d942a23d4bc6d5a73e2aa49e55fcd0f326
9979ad69eb1ddf9a75ab86d2e6d2f4c7672c208fcbba7de5d0460842b492cf55e402fa92f2765518a
bd4bf2f3ce9acf9d975bbbbed162d274cd3b52bbd2ac1d6efeb53dc3585c4b6f2bc918863110aa295
01e4eadfcbf12acd715762a946b1ff001d1f2fff00cc7c9ff501778abfffd6f64fe53b16f22d8b13526e75
1dcffdb42e3154bbf3bec1752f21fd56552f6a357d0e7bc4493d2736b6daadacd39560cad55891da8
879edf0fc58abc66dbd2d2b58d726bed46fef34cd3ecf4e8fcb10a6a970d1456f2eb77a191e2171fbf
922b192069e36fdec902fa7cbd4f882a97e89e62f3a5ae8d2336a2926b2743974e87eb4c22b8875e
8d752fa85d3ccd29530a2324454f2f49e5865e6ca8dc554ead24b3d43cc9f977a8db6ada9e8fa759c
fad5dea3777b3599bbb17bbd36de311157491511e65755e4ac65939c88dc5d31563da56b9796d6
de58d3e39ef6ddb4fb3106a6ef3d3d48e74d6158158a54585c3cb034d456698bdbb0e0b0571542e
bd797ede5af34797e3b89f51f2eea3a56a1169f6325e35cdc36b175e5dd3a3825acd317f4cdd2dea
3127825cb736e35ae2accbfc4ba45c6af6b1deea1776da3dd6a575790cda6dc5bc5343790be9d34
2f39763c6191229a3f547c3c44d1b1fde0aaaf5ffca14d3c793a29aca796e269ee2e24bd7b8ba96f26
f54c8428669649187ee84745afd9e38ab3cc55d8ab14b93ff21334c5a1a9d0b5035edb5e58e2acaf
154b3cc500b9f2feab6c5c4626b3b88cc8c0b05e7130a90a0934af615c55e1ba67e585eeab671f9a
3cbba2797beadaae852c9a55b5ca992d23b9be4d3f81086d94812c76d23bbf1055e6f8a293f79c95
4a6d7f2abced15ddd79722b8b037bfe1f934e8d64b99de1105d5fea17115dabadb47c645332dbc8a
843340f2d387eef9aa9e1f2a4de41bcd625d26d6cad2f7ceba2bc1a968b6f35ddec5a6fd4a5b9925b
d497d07925881bf6f514a43ca4e0b1fdb3c554bbf2db4bd27f2ebce02e216b7bed2b5017b6fa5dee9
8b2dddcddc7a9fd46eec63631c203badadacb70e3910a8dc9397c58abe90c55d8abb15623e753fe
e4bc97ff6de5ffba75ee2acbb15762aec55d8abb1579ffe72ea52e9be4b0d6d2ccb7771a96996f0db
dbb2a49741ef62325bd4c911a491ab86e2e1b8d7ed7d92abcc4e9fe6f7d34a691a5798b5886dedb
4e8acb5217a96f05de9eeb651ce268a59feb124f0cb0ceed0978fd442ff00be659be2552d1e44f3ddf

f00e4f7e605b6a9a5ead73e79d4b43b4d274fb7bcba33bccffa3ad629d62569de15e5711bb3bd579
7daad0e2a9c79fec3cd36b16b9ab5ec5a9d9da4578b20be82ede28a7d36e5b4d4b781522995964
490489c388fb331ad27f8d57b07e5ee93aa689e57874dd59e46963babf7b449e469e68ac65bd9a4
b489e462c59a381a343527ecd31551f2d57fc65e76ff00988d3e9ff481162acbb15795fe61fe5979ab
ce3e71d235fd27ccf3e8565a5c0a901b19e6b79e39ccfea4ad246a1a2ba8e44554f4a6e2a9427e30f
c715435c7fce3cf93eeb4e7d226bcbefd16ef72cb6893b471c715e46f0cb6d1852385b149180b64e3
0293c963ae2a99c7f93ba7c4fa5baebfaa96d1b52975bd3b9ceafe9dfdc23c72487929e6196491783
f24fde3fc3f162a957fd0bbf94283fdc86a4196ee5d4448b72e8ff5a9ef16fddc95209ff485f5541f8519
9f871e6d8aabff00ca82f2c1b5b5b33a85ff00a1631da4163c66e125bc7a7a4d142b1489474fddcf2c
6f46fdec6ec927318ab87e43f95636e49a8dec6e27b6b90c92f060f676ab651a865a308cdbaac32c5
5f4e68c28995f15667e4cf26d9792aceeec34db9966b4bcba9b5078e6e345b8ba7324ccbc40a0763
5e3f657f642e2ac96b4eb8ab40861506a3c462a94eb1ff1d1f2ff00fcc7c9ff00501778abffd7f637e52
b2a79074d2e42f2b8bfebb6eda85c6dbfcf154eacfcd7a26a9e67d63c9d13336b1a24169777b1c894
8fd2bef53d328c7ed53d33ce9f66abe38aa688fa7488248da0646019594a10431a0208ec4e2ad097
4c29238780a44c1256aa5118d080c7b13518ab10b3f3e25ef98b52d0a1f2b6a1f54d27515d22ff005
8ff00413691ccf6f1dd2bf1171eb18cc734756f4be1e5f17d96c559972b11c6ad080c555375dcbfd90
3e7db1542deea7a0e9c8b25fdddadb2493456aad2bc680dc5c3048a3dcfda763451df1561ba3fe69
e95ad2e86f6ba15fa47aeeb5a9797626905a8105d68e6e44cf2d273fbb636937a7c39bb711f02f2c5
59e25dd8f05749e2f4e46e28caebc59b971a020ee6bb7cf15625ae7e6668fa1f9a0794e4b5b9babf1
058dd4b35b984c51a6a3a8269a9cb948ac0ac922b38e3f60d57974c55977d72d28e7eb11d227f4e
43cd68afb7c277d8efd315605e6bd7e3f2dfe6268ba9dec0efa3fe86d463d46f23a15b388dd59113c
abd7d204719197fbbaf361e9f36555996ada6d9f98b4896c649e45b7ba45686eece5f4e68d810f1cd
0c8b5a32901d1b71f318ab1db2d67534927f2579a1963d76e2095347d5e823b6d4e3e0fba815e17
11a8e53c34ff8b22e51d782af2df2c7e56f98743d1f4bb71e5bfdedb69d3a269925e471dac3abc1a6
416e2e1e4826e405d4f0d5648c3491fc32b08dcfc2aa88f20fe65c42ca0d374a7b35b7d3f52b0b632
4f6061b4bad46e2e65b3bd4f49b906b132ad1117ec349c7d49523c553ef287937cd7e4d6b3f3059f
97a79aeee74bb8d2ef3459750b6b89adae5ee3eb2b30959a38bd19246939ac7f1aaf07f4de467555
528f297e4f6a7e5bd4fc9d04de5eb7b96f2eea7a74b7daea7d553d68ed3cbd358bce80bfabc45d3a
71561cf88e74db157d0b8abb15762ac47cebff1d2f267b6bc9ff74fbdc559762aec55d8ab0bf34fe625
a795f5cb4d0e4b09eee59e217534b1b2208edcfac59d439064e02163205dd0327f3e2a924bf9c896
b2da417fe58d4ece5bc967860f5c246b298903a3425ca974707ed95455f1af55543cbdaddc79bb5df
301f374253ca6da0e91abc7e5bd4a3b3ba82dbeb725e977768e362f54b58df8b3b8462d4f6552fbff
00f9c83d0b488d63fd0774231676f7d07168d226b6bbb65bab5087a7392312d23ecd03aeff0009c5
536f317e7569da158ea5a8db68d79abda69681aee5b128d1a997e282b249c100950ab2372eaeabf
e562acf678acf53d190f996c208e07449aeecaf0c5710c4ea435198d50f061b378ef8aa678ab11f2ed
7fc61e76e34e5ebd852bd2bf508f1579ffe69799bcd5a4dcf96756d3e492e17ca66d35cf353696aa6c
a5b5b96faadcfabce5e690adb35d5c47fde7c51c64fd9c5519aff00e6cebba14be64ba9ece26d33cb
5796b7370218649c5c7975e548ae6f2de74938349072733c440687d2f89596446c5524f33fe74f9cf
c98f1de6b365612d822442eec1229a2ba4926d0eff5620c9eaba8f4decc46c0466aacc7f6455541f9
d6df53f327e62f95209ed742f34decba179a0da5b492491584ca834b92dbd5044d4914ccdde9c1f9
2ba72c5534d7ff0035756f235bdd693636b672d8e8d6da55cda48dea7a0ba3ea860d3ad9da66958
37a57465323f2a7a116f466e78aa2ef3f327cf761abd9d85d7e8731c73e9167a9c7024b34a64d5b5
2bcb025241370431ac11bb27192927a91f2228d8abcf75a7d5b52d03ccdaacb058eabaa6a5f95367
77acea37321b476793ebcc655548a6e4f445eac9bc69f16c38aaca353fcdfd6fcb7a7fe88f2f269b71
1585a59db59cd2abbc514b1cfa3da4b0caa921610000026060f002220574d464301000000000001
000000000000001700000000200000c4560200c4d60200a3348aba8333710a89fba1c9dbd45555
1bae79bb51f32fd474ad42e6c566d13cc5a17d651226592e5d7ccd369dea461a63e9ad2d771fbcf8
9dd2b8ab1afcbcfccbd7747f200d37468f4e82dbca9a38b99975391d65ba3736b7d750b5ba2105d4
4b0a47c6bf105b8f8d4a2e2af4dd5b59f361fcbad0fcd06eec0f99c42fac09beab2fd447fb8dbab8f4bd
1fac73a70fddf3f57ed7ef38ff00baf157ffd0f52795753d334afcb2d06f357d39b51817569d911226b8
68645d4ae1c5c05447358a9cc5057f977c5581de6ad7926ad61aec936ad7b16b50eb961e68d2058
bdb3dad9ea881edc433ac1c8b44f0c51a9e72515ddfe1e98aa0b40d4f43b0f32f966db51b98eef5e8
85e41e615fd1d771de4ba14775fa42c2ee7b586028931b98511fd31e8f296564a7d85552df2d13a1
d9e97693f9664bdd392cecadf5cd25ad66852ea5e3aa433c81bd165678c5d5b9e4d42f1f2e0dca35
5c553fd16f743d3bccbaaea33796f5193eb5aada8b07aea1fa3a2d2869369a5dc19202a4c8552398
461adcc8ff00bbe4c956e2aa59369b650e87a4f962e21bcd5b40b65bcd25adad62bfb0992c2dcc11
e913c93b5af3ac715b012fa5fbd4697947cf8b72552e874e55d72db525d2658ed62beb7d46ea2fa9
5c0f59e0f33dcea3b8109e4e2d2756566fe568aa1b6c55669da5da69b6f65a82695a9dc798ff004ff9
a752bcb5b87d5ff477d47598f534b51e92fee54b9bb8449e8209907aadd7ed2a81b8d2ee65f27eb1
a649a35c3eaf7106a0da49fa94a05bcf7916922254290d22e0f6936eb5e3c51b9b33f3c5533d23f4a
59ebd0ea1a95a5dddcd1c36d6f7bab2d9dd7a979241e684d5fd7e2d0063fe8c0d43f12b28f4954af1
6c5535f2bdae93fa6f45bcd6b43ba9b508f52806b17b3c3797505da5ac17f041731dbbdaa2a02d74
8e797eff00e2657f86057655ef574aa7f3174ca8affb84d441f91bbb1c552f30cff9752996d54cde409

915

5cb4f6ca073d21e57ab49180072b4258b48b5adb7da4fdcd5625591eb1a3e8fe6cd1cd8df0175a75
d049a19a172acaca43c53432c66aaca68c8ea71563d6fe69bff002cb4da2f9c164bbbd8609ae34ad
5208d00d522b742e6208382ade7104b4228b20fde45f0f3489566367750df5a417b6e795bdcc6934
4c76aa48a194fdc71556c55d8abb15762aec558979d07fb91f26ffdb793fea02f71565b8abb15762af
3df327e5fea9aff009f2c7cca7511168d6f64b652daa493a31432bbcf1bc20986649d1846dcc2b45c7
92f327e155420fc8afcbdb7160d143a87d634d88416b74faa5fc93fa68c1a35791e762e230bc630fc8
227c2bb62a993fe5579624bc8ef7d7d49245b5b1d3e58e3d46e638a7b4d2d99ade29915c07505df
972fef39b7a9c8362a8ab5fcb3f265a5b1b41a6acd17ab1cca67669597eaf03db408acc49090c5232
44a364076df15633e74f20fe59d9daa8d4f4fbb964bbb08343b3d0f4bb9b8496ea1b4a2c222b68e54
4696256e3f586a345113ce548f1564b67e5cd4b5cb98356f3a989d6dd966d3bcbf19f56d6d645a81
2cd2103eb1350d431558e26feed4b7ef5954ff0057d6b4dd0accdf6a93ac1003c106ed249210488e
345ab3bb53e145059b1561be4ab8bdd675df3c4b7f672e92d753d908a067537490be9f171693882
a926e6a80bf0fe638aaba7e54f9723b7bbb44b8bc16b7f1476d7d0878b84f0429e9c7148be951915
0f1553f085db154b354fc99b29ecdecb43f306a7a247792469abc96ed13497760a0892daa5070e6a
788907c48bf671547cdf949e5eb8bcfd213df6a52df7a8930b87b90d209624312372284d5519914f6
5665e8c71543bfe4a7935e0b4b666bbfabd8c6f059442540b0c529e4eb1811fc218eec07da3d7154
637e55e86f6e6cdf52d55ecdadc5935bb5eb188daa8a084af1a70a7ecfd9c550c7f26bcaa5a065bad
4d0da8856db85e327a4b6c4b4212807111925929f618965df15693f25bc9d124b1472ea091cf0fd5
2755bb75125b72e5e9380374aefc0fc38aa9bfe48792a56f5256bf793e1f8daedcb7c0102ee77d846
94f0e0bfca315561f935e51578e5136a5eac2cd24329be94ba3c927acccad5a8264fde123f6fe3fb58
ab97f26bca0bc38cda88f4a192d62a5f4c385bcc499225df68dea7920f85bbe2a98ea7e51d3bf43e8
de54f5ef3f460b978bd4facc9f58f4bea972787ab5e5c69f071e9c3e0fb38abffd1f647e522f1f2169cb
e13ea03714ff8ff00b8ed8ab36c550c34fb05bf7d516d611a9c912dbc97a23513b408c59633253915
0c490b5a54e2a89c55d8abb15762aec55d8abb15762ac6ae969e7fd29fb1d1f515ff00a79b138ab2
522bb1e98ab0b961b8f214ad77631c973e4995cbdde9f129925d2cb559a68156a5adebbc90a8ac5
f6e2f83f76aaaa799bc97a579f2da3b93ac5f45657102aa7e8fb9536b2a125e39551d6440e09e4934
7c251f0d1f6c5537f29e80de56f2d695e5b6bfb8d506956d1d9a6a17a54dccc90af04694a0552dc40
04802bd715623f97de5dd0f56d12fafb54b086f2f64d6f5d592e275f5242b16af76880b354d15542a8
eca298ab2aff05794bfeacd69ff0022971577f82fca7ff566b4dbfe2a5c55dfe0cf298ffa535a7fc8a5c55
dfe0cf2a7fd59ed3fe452e2ab5fc8fe4f94a19343b373137a911685095700af25a8d8d0915f7c557ff8
37ca9ff567b4ff00914b8ab5fe0bf299353a35a54743e8ad7f562aeff05f9489a9d16d2be3e8aff4c55a
3e49f28b0e2da25995143430a11b74eddb15697c8fe4e4fb1a1592d3a52041fa862a92dc687a3e8b
e77f2c1d22c61b133c5a92cdf57411f3511c4c0371a56877df154379f3cc3e64b0f33797b49d034fbc
b885d2eaf6faee2b5b896c90a47e8c2b3c900351ca4693d11f14ac89f1469ca40aa79e54f2fdad923
ebb72d7379e61d414fd6f51d45385c84a8fdcc7192441082b55853e1fda6e527272aafd5fcd260bdf
d09a05afe98f30d53d6b74711c1691c84fef6ee6a111ad01210069a4fd88c8e4caabb46f2b0b6bdfd
3bae5c9d5bccacbc45db82b6f6ca54a94b3849610a904f26a9964ff0076c8ff000f1552cb1ba9745f3
6f9a67bcb0bd6b6bf96ca4b39eded66b88e458ed1237a344ac0156520838aa75fe29b4ff960d4ff00
ee1f75ff0054f1577f8a6d3fe58353ff00b87dd7fd53c55dfe29b4ff00960d4ffee1f75ff54f1577f8a6d3fe
58353ffb87dd7fd53c55dfe29b4ff960d4ff00ee1f75ff0054f1577f8a2d3fe58353ff00b87dd7fd53c55c
7cd1683fe3c352ff00b87dd7fd53c55b1e66b53ff1e3a97fd205cffcd18abbfc4f6bbffa06a5ff0048173ff
3462ad7f8a2dbfeadda9ffd205c7fcd18aa0ef3cc114d73a7c89a6ea456dee1a490fd46714536f3475
fb3beee062aff00ffd2f6ec7e48f2e40ad1dbdbcd044cf24be94379771461e67691c8449428ab316d8
77c5578f27e86b5216eaa7aff00a7deff00d56c55a3e4dd049a95baaffcc7deff00d57c55dfe0dd07f9
6eb714ff007bef7feabe2ae1e4cd04744bae94ff007bef7a7fc8fc556ff82bcbe483e9dd541e40fd7ef7
af4ff7fe2ad8f25e80b4023bad8507fa75efcffdfd8aae3e4dd04d4f0b9a9dff00deebcffaad8aac3e49f2
f30a345727fe8faf3feab62ad8f24f9781a88ae6bff31d79ff0055b156bfc13e5e06be95c57a7fbdb79d
bfe7b62a89d37cafa1e937c752b2b765be311b7f5e59a69d844ccaccabeabbd012aa4d3ad062a9c6
2aec55865ddb5df91a59b55d22096f3cad3389350d16dd0cb2da3c8df1dc59a20259093ce6b71fe5
490fc7ca3915659657b67a95a417fa7ce97365728b2dbdc44c1e378dc5432b0d882315625f95dff28
cddff00db73cc1ff759bcc559a62aec55d8abb15762aec55d8abb15762aec558b6b7ff29b7953fe31e
a7ff26a2c55915e5e5a69f6b35f5fcf1dad95ba196e2e26611c71c6a2a5999880001dce2ac54ddeb9
e745921d2cdc683e596250eac408f50bc5f8486b44607d1898721eb48beab7fbaa35f826c5513e58
d53caf16a3ad79374180da4fe5c9605d42268d911a5d463facabac8d532b3824bbd4b17af2f8b156
4dea47b7c437d86e3bf4c5501abebba4e851db4bab5d25b4779776fa7db339a73babb711c518f76
63418aa26f2fec74f884f7f7315b425e2844933ac6bea4ee228d6ac46eeec1547ed31a62ad59de2d
e5ba5c7a725b97afee6e17d3956848f896bb56951ed8aa035af32e97a04ba3c5a8338fd377c9a5d8
c91af34faccb1c92a0723ec8611b007f9a83be2a9b092334a3a9af4a11f2c552df306bf63e5ad0efbc
c37e25934fd3a17b9b916c86697d28855caa2eedc4024d3c31543e83e6ad2fcc06ea1b759ed6fec8
c7f5dd3efa26b6b9884e09898ab6c55f89e0e8591b8b0e5c95b154e8c918ad5976214ee3ed1e83e
78aa02d759b2beb8f46cc99edf839faf45c5ed7d48e5685e2f501fef1594d5698aa22e2fec6cd51eea
e628564923823691d5434b3b048d054ee598d1477c5510acac2aa411b8db7dc75c55bc55ffd3f7f6
2aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8ab0bbed3efbc977173aef976de
4bcd0ee246b8d67cbf086924566157b9b1415f8f6ac96ca2936ef1d26a899551fca2bbb6bff0027c97
d67209ad2e759d7a58255a80c8fac5d90686846c7a1df15643e68d69f41d285ec5e8faf2dcda5942

d72e638164bdb98edd59d86f4064ad07da3f0ed5ae2ac0a4fcc0f3dda6bd26937fa66931c1a7cba1c
5a94905cdc4ceffa775196c018418d02f0117a84316fb5c3f67962ac7e2fcdad4619b53f324ba23493
c1a65abdcb59c9777812d63d62fec6493ea4bb111084cced15653196e5c961518ab33f22fe606b1e
74d5ee4c3a6db8f2947f5bb6b7d620b98a5f56f2c66485846a1cb347202eeac634e2aa95e5eaae2a
f43c55d8abb15762aec55d8ab04f3b6ac748f35f94678ecae350b998ea105bda5a47cdde47863a72
63458d052ad239545f9d015530b3f2cdf6ab730eafe73952eee626135968b0d4e9d66fc40aee01b8
9476965145ff0075471775595e2af11d7bf2ebce375f989af79860b486f7cb5ac5d5872b2379f55908
b6b15856e4911b9061950d1415729233235762aa0b50fc9cf315bdedbb431c1ade8ff5ebe81ec0dd
b69ad16953ca6e6c489162725ed6596715149384958db92e2a8cd5ff0027ef75df294be568adc682
258f52bf92fec5edde67d5a5988b3622447dd23a37a8195928230d8aa1753fcbaf3c7995def35cd0f
4e3abc3abe8fae5bea1f5e6791e1b7bbd36e6eec5a3f4ca0e26ce411392cbc7d3e2aad24b8aab9fc
a6f37369374da7de47a5ea973a55dda496e24e68d7b6f7772fa7389141e0a60bb9a39580e43f77fe
fbc5511e66f26f9cf5fd1740f2d693a62684fa66a316b66fbebbf585b66b8fd20af1a37052cf0b491483
85128fc13888d792aa6bf951e65d4ac6c67ac3a0df49697f06ab622e9ef97eb4e239aca6497d35e2
22ba8ccdc23555e2ffcf5c550307e56f980e91aa4b27972d2d75dbef2fdfd82a8bf1768baa5e88e267
49248d3d3465566f813653fcf23e2a8ff00387e5cf9bbcd1af8f33cba75bc96f3431e8775a01d49ed1
a4d3161baff00497b88617e332cd755545e5c635e692fabb62a80b0fcb9fcc3b5f30deea179a56997
ba25ecfe95d693f5f97d196176be4373ca485a40e8b711bf12ccedca4a48bc235c55507e53f9c1eda
fe2b5167a5ea5691cf2e857e927ab19bf835d9754b496440808568dc24b5ab7c4ebf17dac55083f2
77cd969e6fb9d46c6c74e4d02d27b16d2a25ba7e52c5617b63323ca8f0b719bd38a6df932720aa8
a8ad8abd13f2a7ca7aaf95749bc4d72ce2b4d5af2589ef1edefe7d423b996de04b7facfefa38844645
8d4fa68bfebbbb62acff00157fffd4f7f62aec55d8abb15762aec55d8abb15762a95f98f5cb5f2ce83a9
7982f55ded74db792ea48e3157711a93c56bdcf418ab061f9adab5b6a76da76afe51bab10f13cd74
df588e5957f7f73044218428797d5302b257d33c655db90e38aa48bf9e2f2e87279b4f97ee459db5b
cf3416b0de5bb47749cb4ce2dc9905180be03ed05478e546afc271559aefe78ea0be55f30df68ba2
345ad6876970ba8c8eff59b6d3efd64b8823f50858c4b10680b332b26cc829f68a2a8ad53cf3e67f2
2f9c2e3cafc64f365bcda55b6a76f25cc90d9cb0cec6f7d6e72a47c4c6eb6c191446591b97da5a055
5eada56a116ada6596a90ab2437d045731a3d390599038069dc038aa2f15611f9554ff0cde800003
5ef310a0dbfe975798aa7de6bf2d5879bf41bcf2eea8ceba7df2aa5c7a6b0bb15560f4a4f1ca9d475e
151d568dbe2ac387e4b68821b8806b7aa886ee1b7b6ba51f501ea4366c5e056a59ffbad896423e2
5625abc8e2aa507e46f976d791b5d5f54b72d1880980d8427d2591e6080a59ad0739647dbf69dff9
9b154e3ca9f961a2f9435bbad7b4dbdbb92eefa311dd452ad9a43271555562b6f6d0d182a28a83f1
055e5cb8ae2acdf15762aec55d8abb15762ac575cff94dbca9ff0018f53ff935162acab15762af09b7f
3ef98f48f3bf997caba1c10ea17977aedcdd87d56efd2820b1b7b4d2239521f5245238b5d9978a721
b70e1fbde68aa3adff0036fcd7751e9ed67a7699752cf34915dc325c8b1e274a96ded755456b8905
1a19a67f4f673c62e2cbfbce68aa4b67e6af35ebb7be49f3feb6239341d662b08e5d3348ba9e17d22
4d42e6b6775344ce3eb31cee0da4e38fc238ba2f11251555b4fcf0f30dbd8e929731e97a96a175a2
417d76f04924452fe7861b8e32a0e5e9a949be145e6c69ccb47b262ab751f3879f35cf27f9874d7be
09e6fb2d7f528f4f9742b69142da7970c774b1c8acf23149a458e0909fb49714f7c55932fe71dbea66
eb50d125b1fd0511d32da192e99c4cf26b70da4f6d78006506d916eb8cbf6778dff79b71c5522d5ff3
07cc3e6383cc9a14d0594367a1a4505e6a1a7dff00198ea517d4ee91edd448b298645988a34629c
3fbc9558a8551fe77f396a7e5bf3fcede5a11dfdfeada558dada457370a34f4b88e7d4a42ce249e18d
0b081a2e4195b971af3e1c0aa97ea5f9cfe73b3bcbbd21349d3d7554d47f455ac934863b2f52f6d9b
50d3dccef3223a49046f1b9565fdf71e1fefb6550fe79f32799758d1e6d5ef05acba768f71a935d7973
4cbd96d2fee34db18cc3777705d1215e7b4f5639a18f8aac9bfc41990aaab6c3f39fcd5069dacdfc8b
6ba9ae99aaea662b6fabc904d3e956ba9c3a74104644848b80b2895d9d1b9728d382f3e61544279
ff00cdde71f224fa75f04b5d6fcd56766ba1dcf9743adc5b0d492e4cb41348c5a4b64b6798b294aab2
0e20ef8aa65a57e74c9abe9316b168f6705bd8e8506adaadb5f728ae269a68ee56510156e96b3da
ba4e38b7edfc6be98e6aaf6fcc7f38cdaf0f2dd9ea5e5756b38e27d4b589e675b7786e9a768a7b78b
d70c78a43c5a2e4c9ea96fdfa84f8957ffd5f7f62aec55d8abb15762aec55d8abb15762a95ea7fa035
8d3a6d23556b5bbd3355496ca6b599d1e3b849018a48b893f156a54ae2ac4aff00c9be5016f1d969
16a56731c9629ab25cb4e34f7b549a68a49bd5b80edc242453e26e4407a20f8554b743f2179674ff
002a4569e76bbb4d4228619d5425ede359476d0089e6588dcdccb21506d5259072e28c9f0aaef55
5268750fcad885cdf6a1e556d3efb51b06b8b0b3d525847e98b1d4ae5e3e5c1ae1e325a5bd60c2e
29242b75fb29232e2a9f7916c7c91e6eb4bcbfd3bcbf3dadb5b5c2da2df5d5c2ccf33d8a4d68d0ac9
15c4afc2d8bcf008dc845e4cd1af17e58aa8f99ff0033c7e5fc31e87a6793354be8ec9adf4fd3618e5b
5437119921b656815e7798c48654569a48d13f64333d14aaf4f9ee21b5b792eaee5482de1469679
a46091a220ab3333500000a9271560df93d796ba8f93a6d42c6513d95d6b7afcf6f3ad78bc526b17
6cacb5a6c41a8c5599ea13de5bc492595ba5c10e3d74790c6442012ccb447e4db6cbf0d7f9862af1
cd0357beb1fca9d13f392ef53bdd6759fd1edacea564b792436776fa92d7eac623ca28d6d9a4558b
8c755f4f7f8998e2a99eb9f9a5a969f25c689ab68f1adc31d6ad6e5ec2fe4528da66951ea486295a0
8d817497872a2fa6e392f2c554352fced974ff0030ddf94a1d215b5efad25868fa74b34a6f2e0b5bcb
74972f1470bb1b6963824f4e688c9fbc431c8a8d5c554fca32eb1f99d71e77d4355d5750d06f74dd5

917

2db4cd334bb799a07d2a3b5b3b4bc6f55227512c933cefea97e4ad17144a2e2a8e5fcdbd6656d2d
6d743b7997cc4b6573a0cc6f1d23369a848d129b8fdc315910fa6ccaa194ac9b3724f89549f45fceaf
33ebf269f369ba2583c1af1d160d2ade7bd9617827d574a9f5390dc3ac127255f44a2fa6bcbf6b8e2
a82d6bf35755d7e0f2649044fa545ae6afe5fd4f4e7b2b8767974abcd405b4b05cd15072355e680b2
32b91d63dd57bee2aec558179eb5a8fcbfe65f2aeab3dacf75690fe90177f555591e181a28c3ceca5
81648c7c4fc393f1dd51a98aa7de65b69bccde4ed4adfcbfa9cb6971a9584874ad5f4d9144a8f2c7c
a19a193e253b956077561ed8ab08fcb0d575db24d3b4ff0037ebb7f7b26a9691cda3c9aa430442eb
9afa84092386274b94507d6b694c8c3e278de4453c156732792bc9f2defe929740d3e4d405e8d54
5d3dac2d28d4163110b90e5491284013d4fb5c452b8ab10d4f5cf2745e71d5748f36e91a643a7f96
62b1d6f49d4e78966945deac6f84f22a18898dd45b3b3c884928ccee450e2aac758fc98d1a2d3ef78
e93651e8d1cc9a64a2d56336b159c9345288691d5123649abc7e150b23fd9ab62ac2bcede60fcafd
11629346f29f97756b08a1d456f66b8823b4e2fa523cc6da0636ccb2bb96991555be190ff978ab3d8
35bfcb48aed354bbb4b3d37ccb7d6e935d413db2aea40dec76eaf0c9c14b34b4681254059bfbbe5f
0f0c55071dffe494515c69f0da68e20faa36893dbc760a51ac52ed6d8d9f15868d17d62755f445579
c83e1f8b15727983f24f5582e35251a45cc3f57b5b4b9b86b3524d9a565b7462d154c1198d987fba
a26435e2c98ab258bf2fbc8f1dacd66de5ed3e682e1cc970b3dac337a8ff00597bc05f9a9af19dda55
07ecbb725c5537d4745d1f57b69acf56d3edafad2e0a19edeea18e68e43110c9cd5c10789155af4c
550537937ca570aa93e85a7c8a972d7ea1ed61602ede9ca6155fef1b88abfda34c5514740d0cdc0b
c1a65a0bc59def12e3d08fd41752208da60dc6bea15014bfda2a00c5526f26fe5ff97bc97a0e93a25
8dac33be900fa17f24112dc34aea63798b228a48c878b30dd976c5535b7f2c796ed387d5747b183
d249a28fd2b68538c774dce645a28a2c8df1483f6ceed8aad7f2af95e4863b79344b06821b66b086
26b584a259bd3940a0a5044682b18f83db157fffd6f7f62aec55d8abb15762aec55d8abb1551bb85e
e6d27b78e430bcd1bc6b2aee50b290187cab5c55e0fa27e5179a34dd4345d5a6d1f4b8ef6ca1985f
3aea5757f235e3df69520b8496ee02c0b45a7bb70408236748fe2f8e5c5520d0bc8de61f34e9da92
d869d686f249750793509ee1923782f748bdd32d2ddc7d4e361343ea47f58560edfb6cecff0e2a99d
b7e437982e75ed51b598ac64f2c6b2d7d1c76d15edcc4fa52dc07e135bc3144b14cefeb48af1bf054
6549393d4a62ac9afbf2f3cddad5f685abeaf6b606f3cb5656ba4db5b25c1786e54ea163757774c5a
01c3f77608218b89f8a47e4ea14315534f2bbeafe4fd265f26d85a5a5e79c2ef53d5f525820959acad
2d751d467bb8a6bc9163564a4732858f8f395d4a47f00691156431795f43d0b4f9354f316a066bd49
e1d4b57d76ee45b712cd6d429ccd78c7021a18e107d34f772cccaa0ed6d350fcc09e2d4b5a81ecbc
950bacda768b3078ee2fe48d8347717a8c14a46a4728ad8f2e7f0c93ef4891557fcb02a7cbfa87035
51af6be050506dabdd0a7d18aa6de69f2e4de6482c628355b9d265b1ba8efa39ad044ccd2420f10c
2557054135e2450f7c55e7527fce3f59c9637fa48f36eb3168fa809849a6406da2b487eb527ab31b6
8521090177ab13105fb4fc78f36c55bd4ff00e71fec758d5ae75cd47cd7ac4baaddc334134e0db20e
373682c66648d2208924902ac6f22a876e2bf155462aa57bff0038eda66a2920bdf356b334cccb24
3785add6f2d9d6533f2b6b84884b01690966f49d7954d7638aa623f24523d49356b6f366ab697612
da2985a47656f0dca587fbcc2e618edd639bd21b299558f1f87eced8aa193f212da2904b079bb588
5d6ee2bf88c62cd7d296de59668d621e81e11092691fd15a45c9fecfd9a2a87b1ff9c76d374cb9d12
eec3cd7acc1379792d934a086d7820b18e58a02e8612b232473c91f2903318cf0625557155787f20
34e85a051e67d57ea96da85b6ad059a2d9c70c771653bdcc4b104807a71096477f4938c7c9abc7a
62af60c55d8ab15d73fe536f29ff00c63d4ffe4cc58aa02e6caf3c833cfaae8904979e4f99dee354d0e
dd3d49ace5958bc9736680559198f29adebe324039f28e45591ded9685e70d13d0b8f4b52d16fd12
48a58a42519767492296320820d191d18329dd4e2a93daeaba9f95eee2d23cd137d6f4a9dc45a5f
989a8a4b1a910df0015524e8b1cabf04dd1bd3938ac8aa41e67fca7b8d7fce52f9d2d75886d3500b
611dac1716097b02c7671dec528911e55121916f5b89f87d268d0fc63929554f54fc9c8e6bebad534
5d5fea57d71abfe9955bbb38b50b6532d8b595cc5e8bb20a4a5dae2a08e139fb25392155dab7e4e
c7aeda59e9faa6a6b2d9da4dacdc865b555984fabc8668a6898b958e5b590874609f1328d931543
cdf935737b6fae5a6abad5b5fdbf9804336a292e991ac8f7cb1411cf3acc9289230ed6e934291b27d
5e6f895dd4222aab34efc95bcd335cb8d5a3f333dcc525d0bb8a0b9b44690336a167a94dce54914b
b3cb69d78af1593ecb71dd541e93f9092e8b73a6ded8f9897ebba6c50d9a49369f1ce8f68a6e0cca5
2494a8773329493fdd4621f0c8accb8abd9c0a003c3156f15762aec55d8abb15762afffd7f65695abf
9df5db79b50d3e3d2a0b31797b6b0473fd65e5e167752db02c5682ade9f2dbc698aa3e9f983fcda3
57fd5bafeb8ab417f306bf14

16.4 Implementation
Interrupts and their handlers
As mentioned in Chapter 10, interrupts in the RTSJ are represented by asynchronous events. Hence,
for every interrupt there is an object of class AsyncEvent and an associated handler. Assume that the
following
class
exists
for
interfacing
to
the
device
registers.
import
javax.realtime.*;
public
class
DeviceRegisterPair
{
public
DeviceRegisterPair(
long controlAddress, long dataAddress) {

rawMemoryControl

=
new
RawMemoryAccess(
PhysicalMemoryManager.
IO_PAGE,
controlAddress,
REG_SIZE);
rawMemoryData
=
new
RawMemoryAccess(
PhysicalMemoryManager.
IO_PAGE,
dataAddress,
REG_SIZE);
}
public
void
enableDevice()
{
shadow
=
ENABLE_DEVICE;
rawMemoryControl.setShort(0,
shadow);
}
public
void
setOperate()
{
shadow
=
ENABLE_DEVICE
|
SET_OPERATION;
rawMemoryControl.setShort(0,
shadow);
}
public
void
clearOperate()
{
shadow
=
ENABLE_DEVICE
|
SET_OPERATION;
rawMemoryControl.setShort(0,
shadow);
}
public
int
readDataRegister()
{
return
rawMemoryData.getInt(0);
}
private
RawMemoryAccess
rawMemoryControl;
private
RawMemoryAccess
rawMemoryData;
private
short
shadow;
private
final
long
REG_SIZE
=
2;
private
final
short
ENABLE_DEVICE
=
01;
//
for
example
private final short SET_OPERATION = 02000; // for example
}
Now consider an example interrupt and its handler (for the cruise control lever). First, the interrupt
handler is defined as a class that extends AsyncEventHandler. Its constructor takes a reference to
the cruise control system and the device register pair that controls the interrupt. It also takes the
parameters
necessary
for
calling
the
parent
class's
constructor.
import
javax.realtime.*;
public
class
Lever
extends
AsyncEventHandler
{
public
Lever(CruiseControl
cruise,
DeviceRegisterPair
reg
PriorityParameters
pri,
ReleaseParameters
rel)
{
super(pri,
rel,
null,
null,
null,
null);
myReg
=
reg;
myCruise
=
cruise;
}
public
void
handleAsyncEvent
()
{
int
last
=
myReg.readDataRegister();
//
Get
last
event.
switch(last)
{
case
(CarEvent.LEVER_DEACTIVATE):
myCruise.deactivate();
break;
case
(CarEvent.LEVER_RESUME):
myCruise.resume();
break;
case
(CarEvent.LEVER_ACTIVATE)
:
myCruise.activate();
break;
case
(CarEvent.LEVER_START_ACCELERATING):
myCruise.startAcceleration();
break;
case
(CarEvent.LEVER_STOP_ACCELERATING):
myCruise.stopAcceleration
()
;
break;
default:
System.out.println("UNKNOWN
LEVER
INTERRUPT");
}
}
private
CruiseControl
myCruise;
private
DeviceRegisterPair
myReg;
}

919

The interrupt handling code is given in the body of the handleAsyncEvent method. In this case, it
reads the data register associated with the device to determine the cause of the interrupt. The case
statement then undertakes the appropriate action. Here, it is assumed that the values returned in the
data registers are unique across all interrupts and are defined as the enumeration class CarEvent.
The interrupt handler is associated with the interrupt and its device registers by the main program (the
configuration constants for the device register pair address, the handler's minimum inter-arrival times
and
priority
are
assumed
to
be
defined
as
constants
elsewhere).
public
static
void
main(String
[]
args)
{
...
//
LEVER
AsyncEvent
leverInterrupt
=
new
AsyncEvent();
DeviceRegisterPair
leverDevice
=
new
DeviceRegisterPair
(LEVER_CONTROL_REG_ADDRESS,
LEVER_DATA_REG_ADDRESS);
PriorityParameters
leverHandlerPriority
=
new
PriorityParameters(LEVER_HANDLER_PRIORITY);
SporadicParameters
leverHandlerRelease
=
new
SporadicParameters(
new RelativeTime(LEVER_HANDLER_ARRIVAL, 0));
Lever
leverHandler
=
new
Lever(cruise,
leverDevice,
leverHandlerPriority,
leverHandlerRelease);
leverInterrupt.addHandler
(leverHandler)
;
...
}
Similar structures can be defined for the other interrupts and their handlers. The shaft interrupt is
slightly different in that it simply maintains a count of the number of rotations.
Periodic Real-time Threads
The system consists of two periodic activities: the speedometer and the throttle controller. Here, the
SpeedMonitor class is presented. This extends the Realtime-Thread class. The constructor
saves the last count from the wheelShaft and determines the wheelShaft calibration. It also
calculates the number of iterations that the thread will make in one hour. On every period of the
thread, the current speed is approximated from the difference in the number of shaft rotations since its
last period. The value is an approximation because of the variability of the thread's execution due to
the
nature
of
fixed
priority
scheduling.
import
javax.realtime.*;
public
class
SpeedMonitor
extends
RealtimeThread
{
public
SpeedMonitor(ShaftHandler
wheelShaft,
PriorityParameters
pri,
PeriodicParameters
period)
{
super(pri,
period);
lastNumberRotations
=
wheelShaft.getCount();
calibration
=
wheelShaft.getCallibration();
iterationsInOneHour
=
(int)
(
(1000
/
period.getPeriod() .getMilliseconds()) * 3600);
shaft
=
wheelShaft;
}
public
synchronized
int
getCurrentSpeed()
{
return
currentSpeed;
}
public
void
run()
{
boolean
ok
=
true;
while(ok)
{
numberRotations
=
shaft.getCount();
long
difference
=
numberRotations
lastNumberRotations;
synchronized(this)
{
currentSpeed
=
(int)
(
(difference * calibration * iterationsInOneHour)/
cmInKillometer);
}
lastNumberRotations
=
numberRotations;
ok
=
waitForNextPeriod();

}
there
here.
}
private
WheelShaft
shaft;
private
long
numberRotations,
lastNumberRotations;
private
final
int
calibration;
//
nearest
centimetre
private
int
currentSpeed
=
0;
//
nearest
k.p.h
private
final
int
iterationsInOneHour;
private
final
int
cmInKillometer
=
100000;
//
ok
// is a

should'always
be
true,
if
it
serious problem and action must

is
be

not,
taken

}
Associated with the speedometer thread is an event handler that is run when the system detects a
deadline overrun. In general, the system can tolerate a missed deadline as the speed is only an
approximation. However, the handler keeps track of the number missed and when it passes a
threshold it informs the driver (via a light on the dashboard) that the system needs maintenance. The
following
class
illustrates
the
approach.
import
javax.realtime.*;
public
class
SpeedDeadlineMissHandler
extends AsyncEventHandler {
public
SpeedDeadlineMissHandler
(PriorityParameters
pri,
ReleaseParameters rel, SpeedMonitor speedo) {
super(pri,
rel,
null,
null,
null,
null);
mySpeedo
=
speedo;
}
public
void
handleAsyncEvent()
{
//
Deadline
has
overrun.
missedDeadlines
=
missedDeadlines++;
if(missedDeadlines
>
THRESHOLD)
{
//
Turn
on
light
on
dashboard
to
indicate
//
that
the
system
needs
maintenance.
}
mySpeedo.schedulePeriodic();
//
reschedule
the
thread
}
private
SpeedMonitor
mySpeedo;
private
int
missedDeadlines
=
0
;
private
final
int
THRESHOLD
=
10;
}
The actual handler and thread are created and linked in the main program. Note that the handler is
set
after
the
thread
object
has
been
created.
public
static
void
main
(String
[]
args)
{
...
//
SPEEDO
PriorityParameters
speedPriority
=
new
PriorityParameters
(SPEEDOMETER_PRIORITY)
;
PeriodicParameters
speedRelease
=
new
PeriodicParameters(
SYSTEM_START_TIME,
//
start
SPEEDOMETER_PERIOD,
//
period
null,
//
cost
SPEEDOMETER_DEADLINE,
//
deadline
null,
//
overrun
speedoMissHandler);
//
deadline
miss
SpeedMonitor
speedo
=
new
SpeedMonitor(
shaft,
speedPriority,
speedRelease);
PriorityParameters
speedMissPriority
=
new
PriorityParameters
(SPEEDO_MISS_PRIORITY);
AperiodicParameters
speedMissRelease
=
new
AperiodicParameters();
SpeedDeadlineMissHandler
speedoMissHandler
=
new
SpeedDeadlineMissHandler(speedMissPriority,
speedMissRelease, speedo);
speedRelease.setDeadlineMissHandler(speedoMissHandler);

921

...
speedo.start();
}
The cruise control state machine
The final object presented is the object that coordinates the cruise control system. It is a state
machine. Figure 16.3 presents a state transition diagram for the object. When the engine is switched
on, the system goes into engine active mode. There are various submodes within this and if the
engine is turned off when the system is in one of these submodes, the system returns to the engine
off mode. The initial submode is the running mode. When in the running mode, the system will
change state as a result of receiving one of the following events:
ignition off move back to the engine off mode
engage top gear move into the running in top gear mode
engage brake move into the braking in low gear mode.
All other events have no effect. Similarly for the other modes, any event not specified on the diagram
results in no transition.
0100090000037ae40100000065d2000000001610000026060f002220574d464301000000000001
0064a3000000001200000000200000a8000200a8200200010000006c0000000000000000000000
d20100009301000000000000000000006a400000a037000020454d4600000100a82002000c0000
00010000000000000000000000000000000005000020030000c40100001a010000000000000000
000000000000e3e306006e4e0400460000002c00000020000000454d462b014001001c00000010
0000000210c0db01000000600000006000000046000000447a0000387a0000454d462b22400400
0c000000000000001e4009000c00000000000000244001000c0000000000000030400200100000
00040000000000803f214007000c000000000000000840000590790000847900000210c0db0100
00000000000000000000000000000000000001000000ffd8ffe000104a464946000102010048004
80000ffed0f2050686f746f73686f7020332e30003842494d03ed000000000010004800000001000
100480000000100013842494d040d000000000004000000783842494d03f300000000000800000
000000000003842494d040a00000000000100003842494d271000000000000a00010000000000
0000013842494d03f5000000000048002f66660001006c66660006000000000001002f666600010
0a1999a0006000000000001003200000001005a00000006000000000001003500000001002d00
0000060000000000013842494d03f80000000000700000ffffffffffffffffffffffffffffffffffffffffffff03e8000000
00ffffffffffffffffffffffffffffffffffffffffffff03e800000000ffffffffffffffffffffffffffffffffffffffffffff03e800000000ffffffffffffffff
ffffffffffffffffffffffffffff03e800003842494d04080000000000100000000100000240000002400000000
03842494d0414000000000004000000023842494d040c000000000d90000000010000007000000
0610000015000007f5000000d7400180001ffd8ffe000104a46494600010201004800480000ffee00
0e41646f626500648000000001ffdb0084000c08080809080c09090c110b0a0b11150f0c0c0f1518
131315131318110c0c0c0c0c0c110c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0
c0c010d0b0b0d0e0d100e0e10140e0e0e14140e0e0e0e14110c0c0c0c0c11110c0c0c0c0c0c110c
0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0cffc000110800610070030122000
21101031101ffdd00040007ffc4013f0000010501010101010100000000000000030001020405060
708090a0b0100010501010101010100000000000000010002030405060708090a0b1000010401
030204020507060805030c33010002110304211231054151611322718132061491a1b142232415
52c16233347282d14307259253f0e1f163733516a2b283264493546445c2a3743617d255e265f2b
384c3d375e3f3462794a485b495c4d4e4f4a5b5c5d5e5f55666768696a6b6c6d6e6f637475767778
797a7b7c7d7e7f7110002020102040403040506070706053501000211032131120441516171221
30532819114a1b14223c152d1f0332462e1728292435315637334f1250616a2b283072635c2d244
9354a317644555367465e2f2b384c3d375e3f34694a485b495c4d4e4f4a5b5c5d5e5f55666768696
a6b6c6d6e6f62737475767778797a7b7c7ffda000c03010002110311003f00f55492492529249249
4a4946c79656e7b5a5e5a090c6f2481f45bfd6540753cd35b6c6f4eb887090ddcc0e12377bdb63d9
b12536b31ad751b5c039ae7d61cd224105ec990b2efaf243d8dafa363d9be4979732047e6bbf47f9f
f00bfb96bc36fa5bea30b7706b8b0e8e69d1f0761fa4c77eea0b995fda9b5ef7eac712df51fe2ddbf9d
fd7494e7e4e2e57d989c5e9388720921a2c2cda00d9b5fed60dfba6cf6fe8d68e0d4da6b73031959
041736b686b771630be1adfe521e6633f65668b1f59f56bdf2f79966e1babfa7eddff477a6b332ac3b
1f4368c8b1da3c96b5f603ba19fce3b77d1ffa0929bc92ad879a32c3e29ba9d91fcf30b267f7377d25
6525292492494fffd0f4cc636dd8d55c6c20d8c6b8c06c4b8077eea21aacff004ce1f26ffe410fa6ff00
c9d8bff135ff00d4b507a85b9b5d80e2542f2360754eb3d21b5deacb9b67efef6d5fbe929b5e8dbfe9
dff733ff002097a567fa677dccff00c82ce7647560f77f93de6b69747eb0012070747bbe96df6fb7f3ff0
090a555d9b643ecc5b28a1d436d2f3692e63c87baca5d4cef7fa7b6bff3d253672f65549fb45f67a6f
9690181d3209708aeb73be8b551a3a874ba291562e4d82b64edad951f19d3753f9ce7a35bea6630
33243aa756f0f68c77dcd20c39beeb19556ff735ff0043625895b70bd47875af6bc09f58d85ad0d9fa
1fa16ecddbb758929bbe8dbfe9dff733ff0049aaefa1a7a8564deff59b53c34c32435cea9c7fc1edf77a
4a0dcf658321c2bbec7d0e634d4c63da7dfb5bfa373fd2aedfdfb3dffa267f3884ecda8dbebfd8331d6

54c7358fda412d76db1ecae6cff0008ea59f492537dd8cf7800e4590083c57c83b87f8241774c6bb2
d996ebee36d60b59259b40221d0cf4f6a1579e2fc0766514e40732cd9e83e1b692d78adec0cb2cf4
bdff00cbb15bab22e7b039d8ef6133ed9678f9bda929af9995f632d0f764581c0926b631c1a072e7fb
1031faa3722ef49bf6b6c89161a9be99105ffcf7a7e9f6fa3ffa93668faaff00f42ffbd9ff00a513d3636c6
9da0b7612c2d31a11f0494e71ea441643731ec7b4b8b854dd2086ed7b3d3dedfa5feb57bd5d02c3
40b45963496eedae0c91a6edaedac56142efe65ffd53f91253ffd1ef707a865d783534605cf6d55d41
8f6967bdbb1b2f6fbffe87fe8cfd129b5eeea56be9bb1b231d8e630b9cf0d0d31fa6af6bbf9cdec7bbff
0026c4d85d2a8bb0e9bbd4bab7dd8ed0ed9638005f5554ef630ee631edaeaf66dff8cfe715ec5c2a3
14bcd5bfde1a0ef7becd1ba363d573fc52539b8bd1287d26b2c38b532f7bc53596ed7e868aecb096
b9fbbd2fcc63ff9d56f0b098ca5fb1ee6faaf77a9c12609672f0f77d16ab58ff41dfd77ff00d539645bd3
6ecdb7d763a9754c2fda3de1f2ddde956eb2bb7d3f4dd6fe91dfa2fe6ffedc494972ba6655993658cc
7c4b58e7cb0d86c0edae635976fda1ec73def6ff00db68ace8fd271ea6beda6b6fa604b9ce7168323
dd36bbf39ff009ff4d4fa661d984db5963eb21c7d4f6eedd27473ec75af7feeb7e8b58a79d856e53ab
1ea3050d20d94d9536c0e870772ff00a0eda929575906c34e4b5ae22457ed71dc076d777e6a27a3
95ff00723fe8059f474518affb439d482d658d2194b5a7ddfccb5b74efdb4fe918dff8dfec2d71c24a69
d4dcbbadb6bb9e45753d8584340dcd1b5feefdd77aad7ffd67d257565755c6bafb18eaabb6c35d93
34dde8905c2aaa5d03dedf4df63ffb0abd3d2f2acbc31e732aa03ec3bce54e80b9bb766cf53d3bfe9b
3dff00a0ff0005e924a775031847adff001aefe08e838ff4aeff008c3f91a929321e418c7b4f831df9111
0b27fa3dbfd477e4494ff00ffd2f4ce9bff002762ff00c4d7ff0052d55f3ba8df8d6c36ab6d613b669abd
4dbfcd6b67bd9f4bd6fcdff4762b1d374e9d8a3fe06bff00a96a0e5e3675964e3b9ac6878b376f2d71
3b3d1756e67a7635ccfcf494d5abac06e3befdb7b2a6b9ee79b282c803f4aeb4ef7b3f43eef63d46ac
d7e1d4fa31eabed149659eeac4582fb1963aba6ff52ba1cf67da7633dff99f9eab598bd7716aa2bb33
19ebe45cc175bbdd1a36c6bb656e61d9ea3bd16fd3fe7362bb8fd3baab1d60c8c819355b654f02c7
13e9b6b70b0b2a60a86ff53fe16c494aea38f6f50632caf1ab0fac3c1192d93afb4b07a5756e66fdbef
4b12aea18ae2c02aab15afdfe9d606e20fbec975969dbfa4ff5ad42fa3aadecaedb31fd3ba92e2062e
46c2e0e3fcdb85956c7fe8c57bf7bd4b11b9b8c1b5e5540d25c5ae75b68b6c743086b28632aa5bef
737fe33f9dfd124a659395765d77d3531d652e9a5de90639cd2e6b797fafb5aff00d26eff008250fda3
d4696300c1b9b5810036b61db1ed682d664b9dfe633d889f64b326879340c6aacb05cd68b0d560d
a1ac6bacf46b7b5bbdacfdf55b07a6596e1d0eaadb4d30f77e92e78b5dbdd5b87aaeb2b7bdaea9b4
fa5ff000bfa5b6cfd2a4a6f36ecd658fded868b18d2e73006b839cda7f47b6e7bbe8fbfdeb4164eb838
6f1796b31f1ec6d97e45b6b9ee805976efe659bbfd1b519fd7ba531c43eedb0f158f6be0b89dbec86f
bbe97d2494e820d1f4aeff008cff00beb5190a8fa577fc67fdf589292a1e47f47b7fa8efc8888593fd1e
dfea3bf224a7ffd3f4ec2fe8747fc5b3fea42cecdeb55b1cc7d1902b600e6bebb68b89739db7d177b1
8d7b59ecb5bbfe82d2c3fe8747fc5b3fea4277dd8ec7ed7bd81e2241227c424a68e0e5646431bf68
2d73eac835ef6b1cc6b80af76e0db76bbf3be97d045fd9b64b89cdc98738bf6cb00125aedad8ab7ec
f6fefff0084ff008bd92c9cbc71e938581db6c121bee3a873786ff28a46daee3fa6b5acafb54d7093ff0
01af6ff00e7b67fe08929863d56576d869c9b728ba1a4dc5a6a61686b0ecf4abaf7bfdbb9ccfdff00f4
4a2ee9b9bf6975cccf7b5af32e61631d02037656e3fcd374fccffae7a88d7645cddadc5c63915169f7
d6f634348f6ecf7b9ab3f14757c52d71c6c8c87196385d935b806ceef5340ddef7437fe9a4a6ed1839
d55d5b9f9f65d4b1a43e97b2bf792225d635ad7fb5cad51fccb3faa10b1b30be863f2ebfb1dceddba8
b1ed24438b27730ed735fb77a7a72b1854c06e603b47e70f0f8a4a50161fb48a9c196130c7386e01
db19b5ce6cb7720ba9eb04340c9a411b64fa4e33a8f534f57f7776c4f8d9b43f272585cd686bdbb5e
5c21f2c67f37febf4d5d494a41a3e95dff19ff7d62320d1f4eeff008cff00beb1252643c8d68b07f21df9
11142dfe69ff00d53f91253fffd4f50c5d31691ff06dfc8157ca6e458d7b31725b8968b58e73dcc164b
40697d7b1cfaff9cfdf5668fe66bfea8fc89dd4d2f3b9ec6b8f1240252539e71f30ccf5400ccb0863040f
d27e6eed8ff6baafe71bfe0bfe13d8138dd4c596d8deb2d76efe6ab35d61ad0377b1d1f4b76ef7d8b4
3269c76561c58c680f6492001f49a9f76078d5ff0045253529c7a9cefb439b6db68963ee6d90d7edd
cc2ef4c595d4cfe5fa75548adb28783e931f639a3716b6d04c1fa27db73be928df6e49b1d5e3bf13ec
a5806db092e93bfd56b9acfd1fa7fcd7fe0aab63e3e750e7bea3815d8e0d66e635cd96327d36bf6bb
f96ffa3b125362a390f7e43a8a8d171656d6b720eed03adfd27e89f77b36ff0036cf63ff00d27a69995f
5fff000b6629d0096b5e3507e96d7177d2fdc47a76594b1f9c2839310f2c82d1afd1697fb94ff511fe8
bfe8a4a414fdbce05ff00b40562df7868a810dd804077b9cffa7fce2be81fa99ff467ee5337d239b1a3
e612524541edea06f79c47d4d6071dedb0132e2d66d3edfdd56bed38dfe959fe70fef555f85899e2cf
565ed6d876398f73796b1ae8754e6ee494c5adebf203df891bf521b649ae3c377f3aaf5bfcd3ff00aa
7f22033a6e2b2d1700f2f0ede097bc8040d83d9bb67b5aac5bfcdbff00aa7f224a7fffd5f4167d06fc14
d7ccc924a7e967707e0a0395f3624929fa45dfc106cfe2be7449253f4377520be7749253f441e12af
95f3ba4929fa4188bfbbf05f3524929fa53fd7f14bf35df02be6b49253fffd93842494d0406000000000
0070005000000010100ffee000e41646f626500644000000001ffdb0084000403030303030403030
40604030406070504040507080606070606080a0809090909080a0a0c0c0c0c0c0a0c0c0c0c0c0c
0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c010405050807080f0a0a0f140e0e0e14140e0e0e0e14110c0c
0c0c0c11110c0c0c0c0c0c110c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0cff
c0001108012f015e03011100021101031101ffdd0004002cffc401a2000000070101010101000000
0000000000040503020601000708090a0b0100020203010101010100000000000000010002030

923

405060708090a0b10000201030302040206070304020602730102031104000521123141510613
61227181143291a10715b14223c152d1e1331662f0247282f12543345392a2b26373c235442793a
3b33617546474c3d2e2082683090a181984944546a4b456d355281af2e3f3c4d4e4f465758595a5
b5c5d5e5f566768696a6b6c6d6e6f637475767778797a7b7c7d7e7f738485868788898a8b8c8d8e
8f82939495969798999a9b9c9d9e9f92a3a4a5a6a7a8a9aaabacadaeafa11000202010203050504
0506040803036d0100021103042112314105511361220671819132a1b1f014c1d1e12342155262
72f1332434438216925325a263b2c20773d235e2448317549308090a18192636451a2764745537f
2a3b3c32829d3e3f38494a4b4c4d4e4f465758595a5b5c5d5e5f5465666768696a6b6c6d6e6f6475
767778797a7b7c7d7e7f738485868788898a8b8c8d8e8f839495969798999a9b9c9d9e9f92a3a4a
5a6a7a8a9aaabacadaeafaffda000c03010002110311003f00f7f62aec55d8abb15762aec55d8abb1
5762aec55d8abb15762aec55d8abb15762aec55d8abb15762ac220f277967cc1aaebd7bade9b15f
5d0bff00484b37262234b5828a37d80af4c5518ff965e407a72f2f599a0a7f77fdb8aa99fcacfcba6fb5
e5ab034f1881e98ab43f2a7f2d853fe757d3b6e95b7438abbfe5557e5b7fd4ada6ff00d2347fd3156c
7e557e5b0ffa6574cffa458ffa62aeff009555f96dff0052ae99ff0048b1ff004c5546eff2aff2d96d6761e
54d2c111b9045ac55d94fb62ac87cb449f2e6904ee7ea56d52773fdd2e2a9a62aec55d8abb15762
aec55d8abb15762aec55d8abb15762aec55fffd0f7f62aec55d8abb15762aec55d8abb15762aec55d
8abb15762aec55d8abb15762aec55d8abb15762a91e8047d6bcc07c3526af7ff8f5b7c55e6371f9cb
e6b3e4d93cf763e5cb53a05cd9dadf692f737891c921b8bf8ad5a17484ccff000c732b9938af092b13
a746c5557fe571ebca2eece5d26dd6f2d3ccba9795a5bf469e5b357b2d38ea16f23468a651eb9290
d3708df155be152aa1359fccff0032796a1d4b5bd53cbf6f0f98a1f2c68fabcd62d7973e924b797f25b
bdb3a152aa622e7f7aa9cdcfc2ff0aae2a99ffcad7f31b6b373e4f8348b6b8f35a6a7a969b68639785
acaba769d69a829fdf3c67930bc44650c68a924b43f6715649aef9f6ef43d23c9d3dd59c30eade6cd
46c74774f5c4f6b6775770c9349596303d50a6268e3e3c7d4729bad71579b5ef9b75ef3c79fbca5e5
8d4556c6ca3d43cd5a66af656d2cdf56bbb8d123b76b5b8478de27007a81b8d6b14bcd793700d8a
b2ff00c91377a87e54e99e68d5a7375e60d7ecbeb7aadd969089a601d43157765069b1e017f67f94
62acfbcb06be5bd189ef636c7fe48ae2a9ae2aec55d8abb15762aec55d8abb15762aec55d8abb157
62aec55fffd1f7f62aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb15762aec5
5d8abb15762a91797852f3cc3efa993ff004e96d8aa0bfe559fe5f7a3a95b0f2d69eb6fac4a27d4e25
b7454b89564f583380284fa83d4ff005fe3fb58aa41e6ff00c9ed0fcc53dbdc69d0e9d634bc9f52d4ad
af34e5beb7bcbcb9896137322acb03faea8bc565f53ecb32bab7c3c554e2d3f2b7c910e9cba7dee9
16fa8d6d174d9e6bb8c4af259a4c6e1206e55fdd24879471fd94a0a62a8abefcbaf226a71dc43a8f9
76c2ee3baba4d42e44f6e92192f224112cec5813ea040139fdae1f0fd9c5539bed1749d4f4efd11a8
58c173a5d1145a491ab44046414e2b4a0e2402b4fb34f8715407f833ca7ebe9f74346b3173a4a4d1
e9930854496eb7429388d80aafab5fde53edfed571557b2d1348f2ee84da3e8363069ba55bc520b7
b2b58d618230c092111400a2a6bb0c55bf2bff00ca35a37fcc0daffc995c5535c55d8abb15762aec5
5d8abb15762aec55d8abb15762aec55d8abffd2f7f62aec55d8abb15762aec55d8abb15762aec55d
8abb15762aec55d8abb15762aec55d8abb15762ac6207d6f4ad4357f4b4692f6def2ec5cdbcf0cf6e
8a50dbc3190c257460432376c5511fa6bcc1ff0052d5c7fd255a7fd55c5503fe2fd586b2ba13796ee0
5fbdabdf2ffa4daf0f4924588fc5ea75e4c3b62a8d3acf98e9b796a5afbdddb0ff008d8e2ad7e99f3376
f2d3ff00d265b7f5c5569d6bcd55a0f2c311e3f5eb7c5529d37cf9ab6adaaeb1a2d8f97bd4d43419a1
b7d522fafdbd6292e604b98c743d63914e2a985c6ade709619224f2b8aba3282750846e411fcb8aa
75a25a4d61a2e9d63714fac5adac10cbc4d579c71aab50ed51518aa3f15762aec55d8abb15762ae
c55d8abb15762aec55d8abb15762aff00ffd3f7f62aec55d8abb15762aec55d8abb15762aec55d8ab
b15762aec55d8aa54fe62d2a096fd2fae22b28b4e923866b8b99a18e22d346245a1f5091b1a51c21
fe5aafc58aa9dc79ab41863b9305f5bde5cda28926b3b7b881a70a5d52a55e45005580f888c554e0
f37e81757cd6767790dc2442f05d5d4734061824d39d239e396b2070ca5f7a2155e2dcd97e1e4aa
2d7cc5e5f796da04d56cda7bda7d4e21711179aa580f4c72ab6e8df67f95bc3154cb15762aec55d8
ab1393ff2665aff00db0ae3fea320c559662aec554ae6e21b4b69aeee1b8410234b2b9ec880b13f40
18abc53f2ca09b45f3b6a9ab4c933bf9ca78e4d4e593e1f4ef65d3e1d42dd5d4f4e31b4d02f87a71a
7862af70c554adeeadaed1a4b595268d1de2668d8301244c51d491dd581523b1c55ab8bbb5b4f48
5ccc9099e45821e6c179caf5e28b5ea4d0ed8aba3bbb596e66b38e647bab708d3c218174596bc0b
0ea397134f962aad8abb15762aec55d8abb15762aec55d8abb15762aec55fffd4f7f62aec55d8abb1
5762aec55d8abb15762aec55d8abb15762aec55d8abc33cfff0096fabcbafeadaad9daa5fd9f997504
9aea08e2918476f1e8b2e972c737a66a4dc092824e0de9f8ab51f1545a7e4bdd98f5a9a11a6da4ba
e9d464780c25cc03518b4f548cba81cfd16b22d5db9332b0e3c77555f5bfc9ad4f57d697538f53b5b
5581f5796d992076998eaba8596a489312c0346b25a3248a3eda49d8f555527fc9cb96d7a6d7eda
e6d23b9b8bab7bd3ce26768248b5a4d564485e80aaba218fb7ef1e497f6b862af5dc55d8abb15762
af3db9f31e930f9da1d6e594ae9f168d756eee54f2f5935386d8a71ebcbd51c29e38abd0b15762ab5
d125468e450f1b82ae8c2aa54ec4107a838ab14f2f471b79b3cdeac8a4477762d1d403c4fd422151
e1b62acb7157cfdaaea9e75b5f3169ba5ea57daa5947fa4afefa48e29adde75d37f4e4525a929f594
69239ad565b6e01646851b9f012050caa61a3e97f9a56f369f15ec5ac3c534da53ea4f35f432aa84b
ad452f413f582427a0d69558c7c54057e356c556797745fcc8b1874bb2b9b0d553cbf6765a241a9d
835fc66e657b7b5bf8af7eaf2adcb357d77b495ab227a88bb36dc3154d3ca1a57e66d86bfa4b798e
4d42ed21bb78b52bb7b989acdec4e8f12ab7a425fb5f5c4f89847cb9f37148df157b062aec55d8abb
15762aec55d8abb15762aec55d8abfffd5f7f62aec55d8abb15762aec55d8abb15762aec55d8abb1

5762aec55d8abc73ce3a87e66acfe64fd05f5fb7bcb66bf8f4e8adedd26b57b0fd0cd2da4f0168db95
c0be0a853e2352c9c3d3e2d8ab2dfcb497cd2d63ae5bf9a64ba9ded359bb8349b9be89619a5d3b8
c6f137c091865e4ceaadc7a2fb62acdb15762aec55d8abb15762af0ebab0bd87f3f2dbcad656863d1
2fec65f33dddc91ca2e315d5bfa912d760ed771c329f6776c55ee38abb15762ac53cbb5ff17f9cbfe6
22c3fea063c5595e2af05f3d7e667982ef4eb64d220b6b096ff50b6b7b6bd7e46e6ce24f30da69175
04e01568e49927aab21528048a3e255931567df956754b8d1f51bdd62ff00ebf78354d46c159659a
58d61d3afa7b68978caef460a8031142f452fc9fe2c559e62aec55d8abb15762aec55d8abb15762a
ec55d8abb15762aff00ffd6f6679634cbdd63cb1a2ea977aeea4d757d616b753b2490a8324d0a3b1
016214049c5532ff0b3d6a75dd54f7ff7a107ea8c62ae3e55e4413adeabb785d53f5262ab7fc24bff0
057ad5b7ff97c6fe98aac7f26c4fb1d6f591b53e1bf917dbb62aa6de4781f73aeeb636a6da94c3f562
ab3fc076fff0057ed77fee273ff005c55dfe02b7ffabfebbff7139ffae2ad8f225bff00d5f75dff00b89dc7f5
c5577f81adb6ff00737ad9a0a7fc74ee3fe6ac55b1e47b406bfa675b3535a1d52ea9ff0013c55b3e48
b26ebabeb5f46ab763f5483155a7c87a7b0a1d5b5beb5db58bf53bfca618ab47c83a6375d535cfa3
5ad447ea9c62ab1bf2f3486055b53d7684d4d35dd501fc2e462ab4fe5c68a453f49ebfb7fdaff56ffb2
ac556ff00cab6d10eff00a4f5ff00fb8feaff00f6558ab7ff002adb44ff00ab96bfff0071fd5bfecab1570fcb
6d107fd2cb5efa75fd58ff00d8d62abbfe55ce87deff005c3f3d7756ff00b2ac55dff2ae741dab7bad1a
1aefae6adff6558aafff009579a0541371ab9a78eb5aad3fea2b155c7f2f7cbac6ad26a84d29ff001d9
d53beff00f2d58ab139fc83e5ff00f959565013a89b76d0eedc83ab6a75e4b796d4f8beb35037fb35e
38ab293f96fe553d57513ff006f7d53fecab1577fcab7f2ad29c750a7fdb5b53ffb2ac55dff002adbca9f
c9a87fdc5b53ff00b2ac554a3fcaef264534d7115bdea4f7254dc4abaa6a41e431af052e45cd4f1514
15e831554ff956de54ff007ddfff00dc5b53ff00b29c550aff00945f97b234ed2e92f2b5d3a497464bcb
d90cb247f61a4e539e4cbfb2cdbaf6c551569f967e4bb0478ac6c25b68a46324890dede46acedd58
859802c7b9ea71544a7913cb3180ab05c5074adf5eb7eb98e2abcf91fcb67adbcdff0049977ff55715
77f823cb74a7d5a6a7fcc5dd7fd55c55dfe08f2d7536b27fd255cffd55c55647e4cf2a4e8b3456c648d
b75916e676523c41126f8aae3e45f2b3001ac4903a7efe7ff00aa98ab5fe03f2a74fa81ff0091f3ff00d
54c5570f2379581a8b0deb5fefa7ebff233156a3f27f94e566f4ad15da32637e334adc586e54d1f63b
e2aadfe0ff2dffcb08f0fb727fcd58ab8793fcb6b4a58aedd3e393fe6ac5553fc2be5f3ff001e2bff0004f
dbfd962a96dc683a4c1ade9f6715b05b5bab7bbfac461df8bfa6f03ad7e2ec7a62aff00ffd7f6d7e5e3
73f20795587ed68fa79fbed63c559262aec55d8abb15761610000026060f002220574d4643010000
00000001000000000000001200000000200000a8e00100a82002002aec55d8abb15762aec55d8a
bb15762ac5bce5e709bcae2cadec34c7d6357bf5b97b4d3d268ad9a45b38bd5902bcc4272a74e44
2fed332aa938ab0f97f3a65b79eee3b9f2fb470c734d0da4e974255296bac47a44b34e162fdd46ad2
aca4afabfbb0de1baaddc7e74cb60da743a9797268afefac26bd7d3e29d65b986686c6e750f4245e
0bc4bc76c4273e2cc5aaa85559b15455a7e6c5edd5cc76aba0733f1dcbc915da717d2d2e22b7379
089522675fde3371a57e0e0bc9e445c5577e5f79e355f3779cf5d596455f2e3e87e5fd6345b3055de
35d57ebc5d9d8468dc99618f9212c10afc27ae2af4cc55d8abb15762af39bbf33e91179e6df5b7988
b1b6d2351b398f1ab8b98754b4b631f11bf2327c2077a8c55e8d8abb15762aec55d8abb15762aec
55857e6679b67f28693a65d47345656fa8ea76da65e6af704241610dc87fdfc8ccae8a0baa44ad22f
00f22f2c55e63e66fcc9f3ee8b6575e8ebfa5ddcda4f952efcc725e59db092def2e2c751faba805df68
e48a892701fde726899578e2aca0f9dfcc779f9a527962db54b0834db4bd48aeb4f93eaeed269936
94b7492ab19565171f5a6e063e2cbf572b271fdbc55e5907e6cf9db4ef22d8dde81369ba5c161e43
bff35ad85a69f1adbb5e699a8ac2b02207a470c884a144f8c7da57e58abd5fcafe7bd6bcc7e769ed0
ead61656d617f75a75ef95a45e77ef02c025b5ba8a881c093693d42cd0344dc568e3962aa1e73fcc
9d4f43f3ee9da16977d0cd08d4b4cb0d474a92111308b53b7bb65225724bb3c91c7c1938471fd87f
51de8aab1ed47cfdacf987f2f21f33e8be734867b8baf2e2ea76d656d0c571a4cb75ab436f7d04a65
0c51423b46d1cebea2fa4cdcf8315c553197ce5ad68235bf315b4b07f87f43f383d9f98a0b2b2884d7
5a75dd95b471ccc630ccd2c771346cf228abc4add9451545d8f9cbce5279c8795751d62cb4bd4347
b9d2d6eac6fa20d2eaf677f6c259e5b511a2925266786378db8466dd8cc879e2af63c55d8aa4f7b5f
f0011e91e1f57bdafdf062aff00ffd0f6b7e5a9e5f973e506f1d134d3ff004e91e2aca315762aec554a5
b9b680813cc9193b80ec1491f49c554ff0048e9ff00f2d70ffc8c5feb8ab5fa4b4e1d6ee1ff009189fd71
558758d246c6fedc1ff8cc9fd7155875ed0c0a9d4ed003d3f7f1ff00cd58aad6f30e80bf6b55b31d7ad
c443a75fdac5569f33796d4d1b58b107c0dcc23fe36c556379abcaeb52dadd8285fb55ba8453e7f1e
2a98dadd5adec0975653c7736d26f1cd0bac91b0069b32920ee31556c55e6df9abad79774cbcf2dd
bf9b342875cd05e4bdbe9b9d9bea1716b2e9d6c6659a18955fa2970e695e3b77a62ac5fccf71f947
e65d0efa55b47b0d3adaf196e75d4d291ed4c82ec5d4eacd731323c6f32a48fb7ef2431bc7c9f1540
dbc7f960fe50bc4f34d8d943abe973dff0096575ab6b6865b8496d6e2f2d218627995e931839c9e8f
d848a42b411328c55e83e4cfcbdf22db68ba1ea369a7daea26ddbf4ae8da84d650c0f6ed771a1e76
f108d3eafc955392aaafc42adf162ac9b45f29795fcb9717775a068d65a65d5f9e57b359dbc703cc43
338e6c8a0b519d8807bb378e2a9b92141663403a93b0c554cdcdb8eb2a7fc10feb8abbeb56dfefe4
ff00821fd7156beb56bfeff8ff00e097fae2af13d4acee93f3f34fd1ace2853cbba8584fe61beba0470e5
6f3daabc7b9a076b886d64f75f50f5c55ed9f5ab5ff007fc7ff0006bfd71577d6ed7fdff1ff00c1aff5c55d
f5bb5ff7fc7ff06bfd7155f1cd0cb51148ae475e241a7dd8aafc55d8abb15762ab5d12452922864614
65615041ec41c55af461a01e9ad02f00388fb3e1f2c558b41f97fa545ab5c6a92dddd5dc73defe935

925

b1ba30cd145740ab031c8d17aea80aa958fd5f4d294550bf0e2aca7d2886c1169d3a0e98ab62340
dcc280f4e3ca82b4f0af862ae288c6aca09e9523c0d71577a71d1870147ddc506e7dfc7156c2aad6
8a057ad075c55dc54b0620721d0d3715c55bc55d8aa4b7e69e65d1878c17dff327157fffd1f69fe58
1afe5af934ffda8f4cffa838b156578abb15762ac1e4d334fbffcd0be6bfb586e82e816411678d250bfe
9b775239034ad77c552ef2d79a7f2f35dbfd6748bcb2d1f4bd6747d42fec1b4f9ded0cf2c3a6f12f72a
8555847c5831aafc23a9c55378754fcaab84f52deef409a2e5c39c6f66ebc8aa352aa48e9221ff0066
9fcc3154268ba9f93b51d535cd2af747d374db9d23566d1edc4ab6e4ddb2d95bdf178c145228938e
4bf171e35ae2ad5aebdf96b169ba7ddebd2f96f4dbbbeb717490adcd9cd1188bfa7ce294ac7ea47c
be1f502f1e5b62a9c5d4bf97d637f0e957a748b6d4ae1d6282d26fab473492b8e4a8a8d42cc46e14
7c54df1542ea177e51d235a92c3528743b2b3834e9353ba9ae26b786e628e195632ed0320a4003
7c53970aad44a7c55c5531d27fc15af453cda22e99a8c304a60b87b5582654942abf16280d0f1656f
f005581e87154bf45d63cbfe5dd3ee63d46fad34c85f53d452da29a58e00c7eb5212b1a922a7d946
2a89d3bceb63acc91b693657935834a627d4278859420283575174d148eb5d83471b06edb62abf
cc3e5ff002ff9965b39f50b9649ac56e63824b79c46de9dec260994f5fb48dd47c4a7e256071563b7b
f95de43bdd31f4992ea7874e92e2f2e8c50de7a6b5d410248a29fb2001c3ba7f375c5543fe5557909
64b8b88751b9b6bd9ef3f49c97705eac530d43eb12ce2e6a800f507af2c5523e281fd17e48178aacf
2d6eb4ab3b786d22be8d922511a99271248788a559998b313dc9c555bf49e9a0f1379072f0f552bf
af15631e799ac352d22cadd2586ea13ac68eb711064954a36a1002196a4107a50e2a9d7f853cadd
3f41e9f4ebfef2c3ff003462aeff000a795ab5fd07a7d4743f5487fe68c5577f863cb5ff00566b1ffa4587
fe69c556ff00857cae64129d12c3d50a503fd561e4149048af0ad0918aa95a68de4fd42137161a7e9
9756e1de232c10dbc89ea42e6375aa82392b29561fb2c298aabff00863cb5ff00566b1ffa4687fe69c
55dfe19f2d8e9a3d8ff00d2343ff34e2a80834dd3b4ff003741f50b482d7d5d3ae0cbe84691722b3c1
4e5c40ad2bdf156498abb15762aec55d8abb15762aec55d8abb15762aec55d8abb15762a916a3ff
00294687ff00186fbf5438abffd2f69fe57ffe4b3f267fdb0b4bff00a838b156578abb15762ac46127fe5
685e0a7c2740b435a7717973dfe9c55845c7e4eea77b7f72d753598b58bcd577e72d3eea2675b97
967b36b74b59418e8884b9f55d59f9c43870f8be1552dd6bf273ced7be43d03c9ba75de8f6cb63e5
997cbda9bd278cb5dfa76e91ce92c5187788fa3f140dc1791591bd431aae2a9b683f975e7cd0ff003
1357fcc28ef34f76f305d81ab68ad7170f6bf514b1b7851edd9a0ac772b3404b10be9cd0bf193e38d
182a90dbfe4879ba2f2a2680f73a535daf93759f297afce7e02e357ba595251fb9afa688bb8fb45b15
4169967a8dcfe6a4827d14cb1e99ad5a5ead8cff005fb794df5be969a54ba9c2c6d5ade488c4efc39
5c46b22c6bf02ce3e25599fe657e58f987ce5afea3a9e97756505adef93f58f2904ba32fa827d62481
d666e08c384621fb35ab72ed8ab22f24f94358f2eebfe66d5b5092d5adb5c1a635bc16a5c989ec2c2
3b4903734514631f24a7ecf5c55254b1fcb0d7de797cd56fa5deeaba66aba98b3b9ba48cdd5b31b9
915bd2969cd2a0d0f1618ab563a3f9174b9a2faaebd6b7362b29925b5d4a1b5be3e9b57f769398d6
6007ec9779298ab22171f967d163d276f0861ff9a71558d79f960b5431695b7502de23fa9315696f3f
2c08aac3a5d0ff00cbac7ff54f156c5e7e59f2dadf4de5e3f544fd7e9e2ab27d43f2e234222b7d3beb0
c1843cacfe12fbd2a5623b57ae2af3af38fe637977cafa5584dac68f6da6da36a3a54d79ace8e166b3
8c5bdfc323faa1a2b79e94048e31498abd93cb5e67d0fce1a443aef976e8de695715f46731cb0934f
f2265471d7bae2af1f9bcdbe758a5d53cc32ebf7034fd27cef0e853e9eb6b6c2d22d0e4bab7479253
e8197e1491ff7dea2a85dfaaf2c55289fcf1e7fbcd3c25aebb7b6c560f3ccf1ccb656e27946877a8349
27d5b63b3447b2fefd37ebf162a896f3ff009e67d5e5d486ad3c5696f75e49116951dac06da58f5e65
8f5346261329088ed2d4480c2c9f17c1f0e2a84baf3879f1adececb4fd62e2ca376f3e34f3d9d8daab
b1d1ee58e98d46b72a0b26fb2ffa475f88fc58aafb3fccaf386a5aef95ed356f31c1a135f68fe5bd56e8
30b7b5815af5243a9c370b77193eac8422db0889f4dbe17e1bf255f46e2af36fcc1ff95967cc3a72fe5
c1d1c5d9b0b8fad36b1eb97110b8b7e5e8088712e46cbea1e15eb8aa51a5ff8ba4d46dae7ccc2e62
d6e59e3482df515bc7b18e55fb3c3f4731b4dcee1a43c8f7a74c55e8217ced5de4d2a9fea5c7fcd78
ab7c7cebfefcd2ff00e45dc7fcd78abb8f9d7fdfba5ffc8bb8ff009af15771f3a7fbf74bff0091771ff35e2a
d84f397ed4da67d115c7fd54c55770f377fbff004d1efe8ce76ff91a3156fca5ad4de62f2de9baddc44
b04f7b089248a325915aa41009a1a6d8aa758abb15762aec55d8abb15762a90ea669e68d03de3b
e1ff0919c55ffd3f69fe57ffe4b3f267fdb0b4bff00a838b156578abb15762ac4e23ff2132e87fda8adff0
0ea327c5589f9a7cf571e4efcc5d445ccd2dc6993693a1c163a6b395b71aa6afabcfa7c6e4f16f4d49
31fa8dfcabf64b6ccaa1f55fce5d5f46d66e343d4343b58a4d3ef67d2f52d45af592ca3bb974c1a969b
c58c1c8add54c0d501a29871025e69c95653f96fe7d9ff003074a83585b05b2b76b3b57bc84bbb4d
6daa48acd7564e1a34f8adbe1573f6b992a51698ab199bf3a6e2cee358babdd102f97b48875696ee
e04ce2eada5d22f12c921b889a2e0ad746412c07d4a7a21dfe2e38aab6abf9a5e6ad0f4ebd9756f2
cc3697d6935e98565bd005dd959d835e89a08551a73c9d5a06063fdd71698b18f154e3ca5e7fd5b
cdde66d434db4d2adedf42d36df4eba9af65ba76ba71aad90bb8c242b0f1f809e0f593fca5fe5c559f
e2a91f95bfde4bfff00b69ea1ff00515262af2497f306ff0053f32fd7ae264b6860fac69f3e84d2dc40d6f
25a798acacd1e7e32c759648899a33c554c6fc7f7d0d792a9937e6c798249db4f58ac6c6f7ebb770
c1797cb29d3674b6f4de28629edda56692e2276641e9aca8f13c6d6fcb8f255037bf9c7e60d3c5cbd
dc9a71b5924021b88e274faac0bae4ba4bc8e24b8a4c782a4bc7945fb7f6b155797f3835fb59238a
65d36eaebf41cb7d7315ab1102ea1169df5f0b1ced2959236a32823e0dbfbee4ae11554b7fcd7d7e
448160b8d2f51baf4ae2f6d21812557d5a082e248bead6de9c93aa5dac6b1bb47c9e8d2af2444e4c
1547fe546b5a879a358f366a97b7aceba95b68b731241eaa456af71627d48a35959c2bc6e38c940
bf1afef115eb8aa71e6af2768169696da935b1bcd4cea7a3ab5edfc925e4c15750836569d9f803dc4

61462af41c55d8abb15762aec558c5c790b41b9d56ff005594dd9fd2ad1c9a9d80bb9bea3712431a
448cf072e15e11a290b457e3f1ab62ac9f1548e6ff0094c2cffed9b75ff27edf154f315762aec55d8ab
b15762aec55897e58ff00ca03a17fcc37fc6ed8ab2dc55d8abb15762aec55d8abb1563faa923cd3e5
da7464be07fe45a1fe18abffd4f697e57ffe4b3f267fdb0b4bff00a838b15658083d37c55d8abb1561fa
c69fe6bb5f367f887cbf6563a85bcda72584b0de5e4b64e92473bca1870b6b80c087a7ecd298ab1fd
5fcade60d76f2fefb57f2668b7b71aad9c7a66a3ebeb97ad1bda412b4d1a2a7e8fe2a52462eaea15d
5cf2e58aa4fe6db8bef267952fb56f33794f416d062beb3d4afa5bad6af2e6592fd6e604b7999a4d39
99dd2458b854ec11546db62aca34c8bf303464b88b4af29797eda2bbb99efae563d6aec092e6ee4
32cd21ae97f69d89638abce7cb3f953f997a4dedf5c6b7a5797753b7d545f8d5ede2d6b588a0bf5d4
9a4322dcda4d6f35a81490d7d2852afbaf05aa95531bff00cb84b0d274dd32ebf2fb41974eb7bc58a
d11b5fd4a59164d41459bf391ec8bbc6636e0d1bb327a7f0f1db15657e57f29ebde516b89740f2be8
d632dd436d6f39fd37a85c178ac50c5029335936d1a1e2bed8ab245bafcc23f6b4ad19476a6a5747
fec4462a8ff2dd85fe9fa7c89aa0856fae2eaeaea54b6769224fac4cf205577542d40c2a78aef8ab10
bbfcd7d0b44d73ccba679a2392c6cf45b8f4a0bf8edae2786554d2e2d4dd5de34651284693847d5d
63f87e2db156bcddf9afa3f97747d427b589a2d62dad64d420b4d4a192ce3912031b4c4970a7e18e
40e5bec8f1aab28551bab7983c97afdce95a45ec97497535cc773a6c96bf58824477f5a28272f6e43
2c53059446cdf03afb15c5591dd796745bdd09fcb73c0dfa21d421892592393e17120612a3070dcc
72e5cb972c5513a669365a440f059abd247334d2cd23cd2c92300a59de42ccc68a06e7a0c551c00
1d31548bcdd63a86a1a37a7a5c29717d05d595dc56f249e8ac9f54ba8a765e746a12a869b75c550
7fa6fcefdbcab0d7df538c7ea84e2a95ea5e71f3ce9fa869161fe11b777d5ae24b64275551c4c56d2d
c13b5b9ed15315478d6ff00302bff002895a01ff6d71ff64b8ab7fa6bf303fea53b4ffb8b8ffb24c55dfa6
bf307fea53b3ffb8b8ffb24c5529f3379fbcd3e50f2fea5e68d7fcb7656ba2e936f25ddedc36ae3e18a2
15341f54dc9e807738aa6307983cfd730c7710795ac648255592291759aab230a8208b320820e2a
89d1d7cd37de601a9ebba55b6976b6f6725b43e85e9bd79249a58dcd47a11050047e26b5c5594e
2aec55d8abb15762aec55d8ab13fcb204790b4207622dffe376c559662aec55d8abb15762aec55d8
ab1dd65b8f9a7cb22b4e46f97e7fb807f862afffd5ee37fae6babe41f24796c595cff87ef3caba1de5a5
dd95a4b78f71a95bcf66ed6e4c49218f840a651b296dc86fdd95c55398bcfbe72b58ca68fa74b7b1f1
d75e1b7b5b16b76325b5edf1825685e25122c914486b1babfacc9ca3956e4322ae7f3cf9e23bdb39
2df539ef34a6fa95d40e7469ad8dc5ade6b715a95984d12b868ed6472e5561fb1eb7058c37255228
bf33ff00316e7ca5aaea96b753dd6bf11ff46d3adf4a9dd85c476d7ce280db86faacf2430889e9237d
a89e48fd4591554e25fccff333dfeacf0dcdc3470b50e9f069f3bba59fd62d43dc5a836c5e49208649b
eb115667e6bc922f8593157aff94a6d4ae3cb7a74fabdc7d735078819aebeacf65ea8a9e2e6090f24
2cb424371ff513ec05586fe6ec3fa5ed6c7cbd344b2696796a7aa13f1308eda48a285557c5a59c383
fb3e962acafc93713cbe5eb7b3bcb86babfd2de5d2ef2e1c157925b191a0f5181eee1449fecb15643
8aa47e68afd52c29ff00573d3ffea2a3c553cc55d8abb15617ae7e587973cc13eb135fcb7623d7016
bdb68a60b10b86b3fd1feba0e2489041f00dca0fb7c39fc58aa0b5ffc9ef2cf992e6eaeb54bbd46492f
23f4675170a10ab5b25a380a63200748d4b28f879fc4aabc9f92a8ed23f2cf43d0f50b7d434ebcd46
3faba7a02d45d32dbbdb24cf3c103a285ac76ef23fa2b5f811cc7f14744c5599e2aec55d8abb15762
ac6fcc6a0ebfe517a54aea37143e15d36ec62ac9315762aec55807e6b98efb458fcbcfe9c91dea5d5
e5e5b4a9ea2c967a6dbb4ec286a29eb7a00d7f9b154dfc832ac7a09d0da5496e7cbf3c9a4cc1011c
12de8d6e083dcdbbc2dfecb156518abb15762aec55d8abb15762aec558e7909047e51d2e31d123
75fba4618ab23c55d8abb15762aec55d8abb1562be62623cdfe4e1fcd717e0ffd21487157ffd6f5ef9
27cc3a57973f29bc8b7dab4a6182e34bd0ec21e08f2b35c5e430411205404fc4ec057154f2ebf30bc
9364aed77aeda4411d221ca4a17794c810463abf3314817872e4c8ca3718aabdef9cfca565a35b6b
d7babdac7a25fc26e2d6f4c8ad0cd02c46769148ad516352ecdd150166db154b74bd6bf2eb40f5f4c
d1eeec6cda08d2592d2dc8e62267089c116a4a8670bc50510b71f87155fe5cd47f2f6fb56b94f2b4d
613eacebf5dba366159b8ddac7399095141ea895243fcfcb9ef8ab2dc558cf9ff8a794b52968032a45
f1537a0990d31564a0015a0a5773f3c55bc5524f33ff00bc963ff6d2b0ff00a8a8f154a3ccdf99de58f2
a5f5ce9fa91b996e2ced9ef2efea9034e2244826b901f89a82c90395db8d78ab32974e4aa5171f9df
e4db5d30ea7730ea10859a4865b47b53f5a4119b5ac8630d5e045edbb0e357a4bf67e17e2aa3f51f
cd9f2b698d730dd25d8bdb69e3b6fa97a216791e6fad14e2aecb40459cec39942554507c69c95456
81f995e5bf32eaf0e8da58ba6b89ed45e24af032c207a70cc6276df848ab3a128e16bf105e451e8ab
30c55d8abb15483cebaddf7973cada96b7a6da9bcbbb38d6410aa3c8421755924e1182cc2342d21
55153c71579841f99de6b1afe9f66d79637ba332e94ed790595c449771eaba85ddaf259246f87d38
638646609c79736feed97154a8fe74f9a0f972e754b79ec6f75304bdad85a5bcb332c905a09e68a6
31b31557916416d545967893fdd6eacd8aa3dff00373cc4f7be608c5de9eb69a75f1b1616f0cd3cf6b
6ff005f783eb9c3edbc31c262f5d8c7c52766e3ca1507157a00b8d42ed3c8973aac914ba94974e6e
e5b78a5b785e53a6dd7268e29c991149dd55cf2a62acd315762aec5523f384719f2beb93140644d
36f155e9f1056858900f5a1a0c5547cc7e65d17c93e5cbdf32ea944b7b5b73753a45e9acf3fa318a8
40ec9cdf88d8571546d979874eba2565963b698dc4d6d0c524f0334a6062a597d391fad2bc4d1d7f
6d55b6c5570f327979bd1a6ad667eb0c63b7ff488bf78e1c46553e2dc8660b41fb4698aba5f31f97a
06b959b55b38dacc85bb569e3062662400e0b556a41eb8aaa36b9a2a5cbd93ea36cb791c5f587b
7332090434afa856b5e343f6ba62a89b4bcb4bfb78ef2c678ee6d25158a7858491b0ad2a19490771

927

8aab62aec55d8ab1ef2380be56d3d476128fba57c5590e2aec55d8abb15762aec55d8ab13f31ff00
ca61e4cff988bfff00a8193157ffd7f5a794fcb91f99bf283c8d606e9ed24b4b1d0750b7b88d55f8cda7
082e10156d8a931f161e18aa5b7ff95371a4379565f2e4b25dcfa1ddd9d9c12cc23adb68f0cb2cce1
c33209581645a8a3f151c472e4ccaa979ebf2d750ff000ef943cb7e53b26bdb0d0a794cce64b759b8
4b6f244448263187825f55d6e23471c90f1f4dd7e1c55398bf2a381bf9135a96d5b50ba5bf78adad6
d02a3cb30b8ba84c8d11965824939718e573c14f1f882ae2a9e790fc8f1f9174f974d87509750b764
b48e269e38e3744b1b48acd0563001aa4284edf6ab8ab2cc558b7e6453fc11ac96e822527e89171
56538abb15493cd1fef1d97fdb4b4effa8b8f1579aebba97e5aeafae799ee3589755b0ba8e2bcd1f5c
b68259e3b7bbb1d3add3eb178f0444868edd6f82198aedc97ed714e2aa5d168be5ad7fcd56163e4
ed56eacee6da6bcd4166bc8ae9239eeacd6d34f925b691d44537a2b6f12b474a1e6b2ab7166e4aa
4fe60d2ff002dfea52c9a1ea9a85bac7716f7b722e4dfcd15cdbac9a8dcc46d4ad451256b990001be
c7065feece2accac75af20795356bad5e6d4354bbd7268ac5eee144bc920bab9bdf4ac23b986c901
4f5266f4e36709b935fda762abd661904d124a159048a182b82ae390ad181dc11dc62abf155b2165
8dd929cc292b5e95a6dd31578a689f9c9e61baf2d596ad3d9d8df5ec763a6dc6a51c0d243eacbab4
124aaf6e0993f770b270947c6db4ad55f4b8b2a9d797ff0032b56d73c97afebda968704ad61a55b6a
d05bdb4fcad6e61beb0177f57324c14078ea524afc3c4a37ed71c5521f2f79c9bcb6fa6689a1e93a6
c51dc03733dcbdf48b14fa5457ad66af6cf74ed2031a0f57eae049c032c4a179f2c5503e46f3cdb4de
71d3743f2c68fa5db49acdcdccd7d789733cb12db9b1b2d51cda444909ea1bb6068225768fd568c1
aa2aaf5ff308ff0072fe57dbfe96526fff00461778ab20c55d8abb1549fcd82be56d70763a7dd8ff0092
2f8ab16f3ef902f7ced670c763aa45a789b4abed16f05c5b1bb536daa2c25a48c0923e32a340bc492
caca59587421563737e47df5e4f772dc6be2d5aeef355ba7b8d3a09209841ac39792060f3491c8a0
90579c64c6ebeac263666c555353fc9cd6b55b75136ada5db5f3d8dc59dccf63a49b68da7b8b9b09
feb0a8b724f2a58283c9d8d5be1655454c552cd2bf2e7cddad47aad9dfac5a159dfcb2990c9019278
e07babb94d9a491ddb738ffd3249166430d0feecabc4ed18550f63f95de6abdbfd534cbb8a1b0b190
ac30ea46dd58f3b486c425da017722badd49a7c3eb5b3471958ea3d5e5f13aaf69f2fe92344d260d
3f8db23a179255b0b71676beacced2398e10cfc416627766627e2662d8aa678abb15762a90f932bf
e1bb4af5e53d6be3ebc98aa7d8abb15762aec55d8abb15762ac53cc65bfc5de4d007c3f59bee47fe
8c65a62afffd0f677e541afe58f93cf5ff70f63f84098ab30c55d8abb15762aec558a7e667fca09adff00
c601ff00135c5595e2aec5524f34ff00bc3667c352d37fea322c5526bbfcadf295eea37daa4f0cdf5bd
47ebab74cb2901a1d521820bb8694feee516d1165fd974e48571555f2b79221d0ae25beb92925dc
573a93e96b1ff736b69a95c098c68bc5286891ab75fb3f0ec71563ba17e53dcc56b141adea73432d
add7e91b49b499dade55be6332cb2ac82347092a4ce8d048d3ad0fdb2d46c5536ff9549e551a8be
a6b25f7d61ee22ba21ae9e41ea5bddc57a9bc9c9881342adb93dd3ec7c38ab3bc55d8abb154b2e7
cbda3dc59c9642ce18237826b55782348de38ee411208d82fc3cb91269df154b8791b415f262f90e
24960d052d63b11f5790c13fa512aa82648f8d58f11ccfedefcf90638aa2745f29e85a0c0b15959c5c
d666baf58c30a37af222c6ceab1222212aaaa7d354e98aa611695a641224b0594114b1ff0076e912
2b2ed4d88151b6d8aa5baf8ff721e5c3e1a937e365758aa7b8abb15762a95799e9fe1bd66bd3ea37
35ff00912d8ab03fcc5b4f3ac975e5ed43c9897325ddbe9bab44821902db8bc9ade136c67466087fb
b9163670ca9232ff362ac5b589fcfff00a60e91a46a7abc22fad6feefca569270fad2c96cfa67a4d7feb
29630acd25ca9f50ff70dc5bf63154fbcf3ae79822fcc7d3b4ad2f55b9b6b48ed2d26582de3f5601773
5c4f184b955258c53808acccbfb9e1ce33567c55249bfe56b0d12c1ecadf5efd261610000026060f0
02220574d464301000000000001000000000000001200000000200000a8c00100a8200200d325e
ceb7325afee678a4b53736dc56526489c0b83133c8d1eec891f1307055e97f9776dadc1e5c497cc7
2de49accf34ed709a83ab3a2acceb10509f0aa98c21a2ff00c4ab8ab2cc55d8abb15762a91f9436d0
611e135d8fbaea5c553cc55d8abb15762aec55d8abb15631e6314f32f93dff00e5faed3efd3ae4ff00
c6b8abffd1f677e54003f2cfca400a01a4d98a7ca15c559862aec55d8abb15762ac53f333fe504d73f
e300ff0089ae2acaf15762ac37cd7ab347a8c3a35c04485a4d2efad24f8b9308b538a3b806bb5139c
2453f9f154f3cb5a9de6b5a25a6ad7b6bf5396f434f1db1356581dd8c3cbfca31f1661d98918aa6d8a
bb154bbcc17f3e95a0ea9aa5aa24973656971730a4b511b3c3133a86e3bd091bd315623a37e6df9
73535d36d258af535cbe31c72582d8dcf38e46b58eecb1052a23f4e4e6ae7ed00c3ed2b2e2ae4fcc
ed3ae7cc9a6e996349ec6f63d42078823fd7c6a5a7c9660c2b1f42047726493f90255a9c5e8aa7fe5
cf3a797fcd935e43a15c1b9fa8889a594230899272e1191e9c5aa636d81e4bfb40725aaac8315762
aec55d8ab09f30798adedf588a3d49459db68778b7925cbb82af66fa65dc865edc42b472a107f92b
df15655a4ddcf7fa5d95f5cc3f56b8ba8239e4b70dcfd36914314e442d695a74c55198abb154abccfb
f96f59ff981b9ff00932d8aa3ecff00de483fe31a7fc4462ab5ec2c64bc8f5192d627d421468a1bb68d
4cc91bfda557239007b80715749a7d84b7716a12dac2f7f0a98e1ba68d4cc88dd555c8e401ee01c5
5118abb15762aec55d8abb1548fca3ff001c288f8cf767fe9ea5c553cc55d8abb15762aec55d8abb1
5633e6415f31793bdb51b93ff0072cbb18abfffd2f67fe55ffe4b6f2aff00db2ed7fe4d0c5597e2aec55d
8aa4ade6ff002ba3bc6dabdaf38dda3900954f178d8ab29a1ea0820fbe2ab7fc63e55ffabbdaff00c8c
5c558df9ffccfe5ebef266b36b69a8c17171241448627e6ec792ec1454938ab26ff0017f962b41ab5a
93ed229c55bff0016f96695fd2b6d4ff8c831579cfe6fdd41e62d1b4b3e58d5adff004843a95ac1771f
a8543e9b79324574432ee1a2522e14ff003434ef8abd061f347956da18ede1d46048614548d031a
0450001f40c55a7f3b794e246965d5ade3893edc8edc514789620003df154ff001550beb38351b2b
9d3ee94b5addc4f04ea095263954ab0a8dc6c71578fcb7bf943617a4b6a37d75ab6964d871b44ba
b9ba9fd7b296c5022dac459c08ed658e378ffdda8ff17a8dbaa83b5d17f26c5d5ac16ba96a53dd428

faae9d7911ba93d2996d2caf1de29922216636f0dbbb475ab46e578112ba95593796bcc3f979e4eb
7b5b1d3353bf7b1d466105a5b4ff5abb8ac4bdccd02c04706faba7ad1cd1afa9b0f4ca72e08b4555b
5afce4f2bdbf96f56d6340986a7a969b15c4a9a6849564716b0a5c3390a8cc21292c67d60a53f789b
e2af4653c941f100e2a86bfd4f4ed2a0175aa5e41656c5963135cc890a736fb2bc9c8153d862a968f
3a79388a8f3069a478fd720ff9af157967e685d797f5bf32794ae34bd4f4cbbb1bfbbfd15e6867bf884
69a508e5b9e6c9c886dd5e01ff3127157a87f8dfc99ff0053069db7fcbdc3ff003562adff008dfc9bff00
53069dff004970ff00cd58ab5fe38f267fd4c3a77fd25c3ff3562a96f98fce7e509bcbdabc516bda7bc8f
6572a88b7509258c4d40006dc9c551f69e73f288b5801d76c2a235a8facc551451fe562a99e9fae68
dab49245a5ea16d792c4aaf2a5bca92b2ab121490a490090687db1547e2aec55d8abb15762aec5
5d8aa47e51ff008e143ff19aefaffcc54b8aa798abb15762aec55d8abb15762ac63cc95ff11f937c3f48
dd7fdd32ef157fffd3f67fe55ffe4b6f2aff00db32d7fe4d8c5597e2aec55d8abcc62f315df94bf27fcc1e6
ab0862b8bbd0ffc41a8c76f3b324527d52feee528cca09150a457154cbfe5727e5da42ef71ab98678
aeadb4f96d1ed2f16e45d5ec4d35ba080c3ea3099518c2e1784bc4f06638ab7af7e68f976cb48d4e
5d26f239b5cb6d3f50bed3ecae639a159e5d32d96e668be2553c90489ea2fdb4e5bafc2d455b4fcc5
b19f40d1f551710d9cf7d75a459dd35c437325b0b8d54c5fe8f1491ad0c87d4e0ad5e092155978f4c
55196bf99fe47bbd464d2e2d5785d4525f40ed3c1716f089b49def23134b1a465a11f1380df67e2fb3
8aa3b41f3b7973ccd7b75a768f72f35ed9c16f777113c13c3c6def54b4120691154ac81495a1ed8aa
4507e6af95ede39bf49ea426b86d4354b0b582c6c6fda5e5a4832cd1347e93399628872720057dc
c7b62adfe606bda3ea3f943aef992cef239742bdd125bdb6bead227b69e0e69254d280ab03be2a83
b7fceaf27eb515bcfe50986bd6770c40d49258ad2c10292a59a6b9642c2a0ff74929c55925879d344
92d91b52d4f4f86f18b728adae7d78c0e478d1d923276a57e11be2ac474fd03c8ba6b411daf9aa63
6b657efa969d66f3dbb456cd21b86312011026306e1f8f32f22a8440fc178e2ac734bf27e89617d7d
6a9e6482df46bab54d312ee0b8b7fae9b282c62b48883f545659c7a40bbfaad1bafc3e9d3e1555a3
e53d12d75b85ec3cc1633e831894ff00a6bdb3c95bebd9eeaf51e25b41556f59843e9cb098eaded8
aa612f913f2f2e34db5b0b8f395fcd25a69f79a1c57ef776c6e3f455fc714725a93e870207a31b2c85
3d6e6bc9a46c55e91179b3caf0c4911d66ddfd350bcda45e46829534a0a9f962ac4fcf3af685aaddf9
32dacafa0ba9bfc4964c22460cdf0c3706b4f6a62a9749f997adc77fa931f2f582e89a6f9a2d3ca2f37
d6ddaea492f66b38d6758feae102aadd722a5ebc938f7e58aa02f3f37b5e57fa9e99e5ed3e5be177e
66b22d3ddc91455f2c303c871b773fbe5edfeeb6fe7c55067f3e2f5ee22bbb7f2e5b0f2f8ff083cf2497
4c2f3d2f3a308a3e31ac05395bb9f881928ebd389c556697f9a5ada4e747d1742b692faf7cc9e6ad2
1a4d4b52b99e349743592e43ab18198472716558942ac038aa725c553c8ff003575ad56df48b8f2f
7969277d4b4ff002fea82dae1e456921f304ad1ca6192389d4fd480f526e43e24fe4d8b2ac87ce3ad
b68fe71f2758c365eb9d4ff4b224bf5a96de28e4b5b16b8512431a94943702b57feebed2027154b3f
2dbf32353f395fd9d9eafa4dad87e94f2e69be6ab136933ce521d459d1a1979c71fc4ac950cbb107d
b755914200fccebc00507e81b5ff00a8cb8c5596e2aec55d8abb15762aec55d8aa49e5314d0e21ff0
017ddff00d454b8aa778abb15762aec55d8abb15762ac5fccc40f31f92fdf52ba03fee17787157fffd4f
67fe55ffe4b6f2aff00db32d7fe4d8c5597e2aec55d8abcf34af2ec5e6cfcafd73ca934ed6b06b4fe61d
39ee6301de35babfbc88b80762579568715416b7f9473ebdad69fe65bcd5e34d6ecb50d16f5de2b5
2217b6d03eb0f15b85331605e4ba95da42cd4aaa85f877552cd77f24756d775f9b5cbaf361958b6b
896ab7160259a2b3f305a8b66b73289d2ab6d406de8aa29b3abb373c555b4cfc96bcd1fcb707943
4ff302a7976cf51d2358d3ec9eccb2dadc6953c17534711f5c521b89a1f53d3ff74b4927062bc42aab
b50fcabbfd3c3ebb6776357bfd36f7cc9ae59e8e6de38d6ee7d7ede54168cd348c802b4940ce38bfe
da815c557fe4ae87e62d12d268354b4f4ac85a5a5ba5c5d58369d7e5ed50a242795edefa9144a68
9bc489d22565278aaaf6ff009433c1aa8d57f4e8697f4aeb7ac98fea802f3d76dbeade98fdf74847c4
0fedff00938aa2755f2d0f277e46dcf9456ebeba9a1f978e9a97663111952d6dbd257280b00485de8
7154d751b1f2a5cddc972da35f41a880f11bfd3ed6eed2e08277a4d6c1188aee37c5530d2f53834c
b086c9c6b17e61040babcb49a49d85491cd962406836ad2bfcd53be2a8bff00115b7fcb16a1ff0048
571ff3462ab7fc4b6fff002c1a8ffd20dc7fcd18ab47ccd6e29fee3f5235df6b19f6f9fc38ab7fe2583fead
fa97fd214ff00f34e2a946ade63d5964173a5473c16f1c6c25b7bed32e4a3bd6aadeb23298c01b1f8
1f1579cebbf9a11f98fcc5e49d05745bd667d76ce76d6aca37bad1d19127531bdc948f8bb13545e06
ab5df6c55ea93f913ca17165aae9f71a4c32d96b574ba8ea913f26135e214659c92d512298d0abad
19782d3ec8c550967f979f97c618a7d3f46b4fabb8bb96192dea236fd29184ba7051a84ce80076fdb
c55b5fcb0f20a426dd741b61015d3d0c746e3c74620d88a72ff8f723f73fc9fb38aabc5f97be4b8274b
a8746812e52e6f2fd255e4185d6a6863bb96b5fb73292246ead8ab10bcfc94d2a5f3047a8da1b4b5
d2adadacacb4bb78e0b88aef4f834faf04b69e1ba8d78fc45904913fa6c7f697e1c55e85a8f97745d5
afac752d4acd2e2ff004cf58585c3d79c3f5a8cc52f0208a734255bfc9c550da4793bcb1a04f6f73a36
990d94f6b631e936cf1020c76103178edd77da34662557b62a9745ff00933ef3fed836bff519718ab2
dc55d8abb15762aec55d8abb15493ca5ff001c28bb7efeeffea2a5c553bc55d8abb15762aec55d8ab
b1562de66aff893c974e9fa4aeabff70bbcc55fffd5f67fe55ffe4b7f2aff00db32d7fe4d8c5597e2aec55
d8ab15fcbd507cb0ca4554ea5ac820f81d56eb157cfde5cf3beb5a1fe533e877b1596ada54de4ef33
ebb676d72b70ae3f425ffa4d0dc4c27e5224a970a3927a4d1f0ead5ae2af52b8f3e79ce7f3a5b796b
44b3b436d14ba50b98648a498c9a75f4065b9b91324aab0b40471586405a41f16fc971563ff0092b
e62d7b4e3e58f2adccd6d71e5fd5e1f344d67184905ddbc9a3eb5e92f299a56122ba5c538fa69e9f0

929

1f1362ac96f3cf5e739ff332e7ca3a45bda0d3b4ebcb18ae92489e7924d36eac9ee66b9f5526458e4
8e555896175e4cac24a3065c558fe87f9bde62d57411e679afb43b5d1f57b7d3e4d303cbea5d5ade
5eea11da3db3c513b172049c11a4f438dd0f4e50b1f264557f93ff34bce5e70f32795f42b79f4bb683
50b2d7ef353b816ef71239f2f6b9169bc620972113d689cb1359383fc4bcd7e1c55e91f99209fcbff00
330e95d36eb7ff009e67156538abb1578479a75cf3df957ccbe7dd57cb6e9327a91cf0e9573692cc1
d22d07d4facc4eb22d5567855191451db9272f51d7154bfcd9e75f36dd699a8f95f501fa4d2ef44bb9
2e654b09ac4477674afafdb7a4e1e50dca53e907f842b2f0e2f22b1c5593697f98be67d4b5ad134f0
56c85d18dafadef2cae0b9b817524579631b431b206b7458d9666902c8ae26f8a2fb2abd86a3154a
b50f2d683ab6a16fa9ea96115ede5a46f0db35c0f55116420b718daa95341f171e5ef8ab1bfcc3448
9fc971c4a1234f3258854514500433ec00c5592799ac64d53cb7ac6990a9796f6c6e6da340dc0b34
d0b20018114a93d6b8abe70d17c99e7eb5fcbeb6d0adb47d534fd4ec7c97a65bf928c533c3fa3bcd
56eb2a5e7ae3d5201698c3209650d0b40af18f87e09154fbcb9a4f99b57f36dcdf58de6a6de61d17c
ed3457fa8497172fa60d13ea70bde5b08a490c252466a44823e71cbc1978a262a8ff00cd9966bef3
c1b16b9d5068d61a6595ddfdee92b3bbe8ee97af33cc0da4aae1ae608de393d45da25568f97c698
aa0db4df3ac97be68d5eeb47f30ddf9aadedf5d82d7f475e4363a46a3a65e726b010cbc8bfad1c422
587649619bd562df17c6aa5fa7f94bcd1abeaba4e89abe93ae43e511e68bab99a212cf6102e8779a
07a68acb05d338417bfb05d9d1cf3eed8abe925508a10745000aee683e78ab158969f99774d5eba
15b0a7caf27feb8ab2bc55d8abb15762aec55d8abb15497ca9b68b18f09eefdbfe3ea5c553ac55d8a
bb15762aec55d8abb1562de663ff003b2792bdf53baffba55ee2afffd6f67fe557fe4b7f2b7b69b6c3ee
4031565f8abb15762ac1b4ff002f79fb45867d3f4ad57476d35aeef2ea01756174f384bdb996e78bb4
7788a4a9978d42ad69d3154bff00c09e6210adb2db79405aa5bcd6490fe8398a0b5b96e72c217eb
94f4e46f89d3ecb9ddb1563537e4a79a6e7cd9379b2e359f2ebdc492db4d0c4fe5c0f716a6ce248a3
4b6bd378278a2a460f056fda7e2cbcb1565b69e4cf35584b05c69f2f95acee2d04c2ce5b7d0264684
5cb7398215bf057d46f8a4e3f6ceed5c55e58be4bd5b5bfce8d6f4ab9d7f4ab9d7ed62b1f31497737
96119a29397a496d6fa81bb13a88d628a431ac9c9566a060ad8abd347e5deb420d46dc49e56116
aee26d5631e5af82ee556e7cee17ebf495b97c557a9aef8aaeb4f21799f4ebc1a869d7de59b3be5f5
385cc1e5a68e61eb9064f8d35107e32017fe6ef8aa2356f2afe61eb9a65de8fa879a74bfa8df44d6f7
3e8e8b324be94838b7066d49806a74255be58aa45f9e1aaead1e8d73a05b43762d753d3a736b2d
8db4b76f36a114f014b73e947218eb197753f0f2a6cdf050aac761f3f79fac12fc68da39bfe37bafa5b
69f6d64f6b2b3c37b786da7649115658e58d519da39164e747e122ce38aa897f3ff9d1757d324b6b
db8bbf2f5c4497ab30d1a781a58a5d66d2d4432fad0abab2dbcb31660917d8f57884562caa07fe56
779d2e2c75696d2f24bad4d5bd1b4b1b3d3277293a25ff00ef14b4058dacaf15b2c727197e3668d9
a312a4aaaaa5bfe6979c2e752d63fd20b25a01c74d834eb912980bd834925b8921e524d6f14b76d
3c6ad21e689c226e0e98aa224d47cdfab6bfe50b0d6a4bcbe9ac356b0bd8ee2db4b9ad2d2e6c64b
5bb57ba979a3344c8ee91ba3347c76731fef47155eb7aa79b342d26f534cb9b8326a9221956c2da
37b89c46a2a5d92256e09fe5bf15f7c55e772f99b54fcd2d66d6c3cada44965a7f962f2d7569f5bd55
916da5ba4122ada47140eeecc51fd4692aaa8bc3edf3c559cd3f307c746fbaebfae2ad11f983d8e8df
75d7f5c558ef935b52bfd3ee3cc5e4e1e5f361ad5ccf7173776d1dd28b9ba8a5682591f7f89f946ca5
8eff0e2a8dbcf2a6b7a8ea49acdfe97e5bb9d5915635bd96d6679f846c5914b93521492541e87a62
a9bf1f3fd3fbcd1f97fc63baa7fc4f1550bc93cff006b6b3dd9974729046f2b27a37553c14b52beafb62
a85d16fbf30b5ad134ed6126d1a11a85ac176b1182e9f87af1ac9c49f58569ca95db154768da2f982
3f305c6bfafddd9cb23d9c7630c1630cb128092bca598cb2484d790000c5592c92471234b2b048d0
167763455502a4927a018ab91d244592360f1b80caca6a083b8208c55762aec55d8abb15762a93f
96001a4281d3eb179ff005152e2a9c62aec55d8abb15762aec55d8ab16f33ff00ca49e4affb69dd7fd
d2af7157fffd7f68fe582f0fcbff2ea7f259c69ff000351fc31565b8abb15762aec55d8abb15762af24b2
86f60f30daf9adedef24bd96e63b8b9b511959d6c755bab9b3512454e5c618feaf23f751116ed8abd
6f15762aec55d8abb15762a9668fe5ed13cbf1343a2d8c5651313f042bc54026bc547eca827645f85
7b0c55d63e5ed0f4dbdb9d46c2c21b6bdbc769ae668d02979643577a0d8339ddc8ddceed5c554f5
7f30d969324766aaf7bac5c0adae976a03dc4839052e4120246b5f8a472a8be35db1548754f2e798
f5eb679b51b8b78ee65e0b0699432d85a82df14d20214ddcc8bf6164e1072e3fbbfda2ab27d2349b
3d134f874db10de8c4092f21e7249231e4f248dfb4eec4b3377638aa3b1548bce37d79a7f972f9f4d
748f56b855b2d31e4fb22f2f1d6de0247701dd4918ab11fca3b18fcb76d7de53b748934c85daff004c
31d10b24d71343382836044d099091fefef1c55e978abb15416b02ba4df8f1b7987fc21c552df237fc
a15e5bff00b65d8ffd43a62ac67f32757f3869da868a9e55b3bfb92d2c125cb5b43eb5afa4b7d6ab3a
cdc41607d06948a9038f3e1ca50bc5561324ff00981a9e8fa1ea57f0f98adf545fd216faf591b68d921
d47f43cf172822895d66b66b8a185a41243cb871ea7154c9a6fccfd374db9ba9a1d46eb4dfa9e937f
66b60910be49af16ded6f2ccdb347b2dbfa72dc9e0398597847f1a2d1562f6da9fe70471477ba8596
bd1c97f6fa65beb371696a26b9b7f4a0d420696ded99c272173f5692609f134443b728f962afa2ac4
4e2cad85d333dd08904cce1558c9c47224212a093d42ede18aabe2aec55d8aa4fe57ff008e42f6ff0
048bcff00a8a97154e315762aec55d8abb15762aec558b799ff00e524f257fdb4eebfee957b8abfffd0
f6b7e5cffca13a38a529132d3fd591862aca315762aec5501ac6b3a668162752d5ee16d6c5648603
33862049732ac112fc209f89dd57e9c551f8aa121d4aca7bfbad2e29435fd92432dcc3460512e39fa
66a45086f4dba1fd9c55178aa4917fca5f79ff6cdb5ff0093f718ab1dfcd4f36ea7e5bf2dea90f97853cc
9fa1f54d52ce6668d5608f4c8559a5a48922b90f24604657e2e5d5698aa5d17e6e892cef2eedf44b9
b9b1b5575b5d499d60b6ba9eda5920b8894b8e5ea2bc6dc523598b2ff002ee02aa179f9c17573e5

65f34f96f44173632cd6168925ddca43c2e6fa7b288c72c6a198516ec9564e7f14679055646655156
ff996f61750e9779672cf717f71a9c3a6cd733c08f3dc69faa3dacd6e0451aa8114244cac7ac2a7d43
c9247c55299bf3c4c57f0c6da385b0861bd9b537f5c48e0c169a7dd5b88195424824fd208acd5e03
896469168c557a5f97757bbd6b4c17b7da6cba55d0966864b39c8661e8c8c81c1143c5c00ebc955
b8b7c48a7154ca79e1b685ee2e2458608c16925918222a8ea49340062af1cf337e737abe61b4d07
421269fe59925bbb4d63cdf7109e314b6fa79bf0962afb3c9c38fc72a7a7f1afa6b36f8aa79a27e617
e5ee8f6569731fd6ac62d55e65b9d43508a4f54dcdb09cbadccd216667020978d0ba2a85e3c51e3e
4aaff0030fe6e69fa4c3301617f6463b0bdd464bfbeb198dbc1158496c84c91a32cae1c5d23298c11
d79952ae1554c66fcd2f2ec169717725bdff001b496e6dee625b72d245259cff00577122ab1e018d5
d1df8a34639f2fb35552e3f9d7e528e5be13c5762dad6e2086dae2284cdf5a827b3b5bd3731c684bf
a48979107aaf3ab6c87157a24b04170104f124a23759230ea1b8ba1aab0af420f438aa47e52b7b7f
d16973e9a9b849efe2598a8e62337b292a1bad0900d3db156418abb15426abff001cbbdff98797fe2
07154afc8bff284796bfed9563ff50c98aa792cd0c09ea4f22c718eace428fbce2ab3eb56bbfefe3f85f
d26f886d21fd93bf5f6c55a37d64aa5cdcc411406662eb400d6849afb1c55afaf58f167facc5c11846e
dea2d03b528a4d7626a283154462aec55d8abb1549fcafff001c815dbfd26f3fea2e5c5538c55d8ab
b15762aec55d8abb15631e65603cc5e4c046eda9dc81ff70abd38abffd1f6bfe5defe4dd2ff00d593fe
4f3e2ac9f15762aec5587fe68f95efbce3e48d43cbfa7089af2796ca78e39dda28e4167790dd3465d
4315e6b115069d4e2ac123fcb5f35d95dea575676f6d2c5269de9e9169737d394b59a5d567bb92d
d48068ab6f308d5f75aafa5c3d01c7154ae0fcb9fcd68e6123cf691fa7a6b690b3cb78d3f090b5ff00a
3a8a1f4633eadb2dc44ab1bf243199787a6e88ecabd4ff2f34dbbd3f40e77b6f05a5c5f4cd76f6d697
b26a56cad22aa9314cf1c438b15e41523551cbf98b1c55318bfe52fbcff00b66daffc9fb8c555b5bf2d
797fcc91c516bfa6dbea31c1cfd25b98d640a26431c8a2a3ecba9e2ebf6587dac5506de44f25bbcf2
3e8160cf7532dd4ec6de33ce7414121dbed789efdf15589f97de478a29a08fcbda7a437314304f1ad
b4615e3b6e1e929007ec7a69c7c3827f22e2a9941e5fd0ade31143a6db246b24f3aa0892825bbe5
ebb8a8d8c9cdb99fdbe4dcbae2a96a7e5ef91638c429e5bd344211e3f4feab115e1242b6cca415a1
0d122c647f22aaf4518aad9b53d1fcb31a796fcb9a7adc6a71c7cedb43b00b18456248795bec4284f
577fb5fb21dbe1c557c3e5b9f52b88f50f35cc97f344dcedb4c8c7fb8fb76da8c118565905052497ec
9f8a248b1549f5dfca2f27f986faeaf7505bb02f6792f27b682e5e187eb7359fd45e750942b21882ee1
b6745929cfe2c554f53fc9ff2aeb6d1beb73ea3a93048d27facdec8e27f484ea0c8053aadcca878700
548daa8855555bdfca8f2eea3a445a35fde6a7730456573a59b89af6496e24b3bb30178de47a934f
abc7c4f5dbf99989555f58fcaef296b526a1713c33dbdd6a9796da96a171693bc0f35cd95bfd5632dc
4d29e91e2c29bfdafb5438aa0adff00273ca36975677b672ea36d7965e9ac33c17d344e638ece0b0
68dca11c96486da10e0fed46aebc5fe2c55e818aa47e5135d1149ebf5abeffa8c9b154f315762a84d
57fe3977bff30f2ffc40e2a95f917fe508f2d7fdb2ac7fea1931542f9dfca49e6f8346b59a3b69adb4ed5
ad352b88af13d5478adb972555208e44350576c5580695f92fab699a5dac316a16abe60b2b98a68f
5d3f599dee8db2cb1472dd5bdc3c913978a5292c602fc5fbd8e54709c15568bf27f55faf59bddcfa75
ce9b6573672242f0c9c9e0b1bfbebb01837250cc97bc294a0e1d486a0552687f20352821d36dcdde
9d73616f6165a7ea7a64a9730db5e1b7b6bbb6966636f246c1e9709c4fc555578dbed2b2aaf77b78
bd082282b5f4d152a2b4f8453b927ef271554c55d8abb1549bcaa7968e08ff969bd1f75dcd8aa738a
bb15762aec55d8abb15762ac63cca8cde62f2630e89a9dcf2fa74bbd18abffd2f6bfe5dffca1ba5ffab2
ff00c9e7c5593e2aec55e3de65d6bf333f4bf9922d325bdb2fa8c891695676fa4fd6ade7b495acb8dd
25e3874322f2b8578685bc500457c552b8fce9e7987cc967a16a1a8dd5bdadadcccd7b7474fabfd5
5358bcb7b6172e2dda243796c908b76fdcee1a4e5f1e2a95c9e7ff00cd0114d6b72351d35eee773a
6cd71a4c8f7505a9d32d643713a476d22fa705d34ab70047d59511caf12eab21d3fcc7f98175eb4fa
a2ea66c7f491b3d46dedb4a5658b4e6b8b8fabddd9cc0482e5658beafeaf057f4d0bbb2c727c38ab
2efc98d36ff0047fcaaf28e95a9dacb65a85969b0417369731fa3346f18e243a0a053b7418aa7f17fc
a5f79ff006cdb5ff93f718aa778abb15762aa1797b69a75acd7d7f3c76d656ea649ee266091a20ea5
98d0018ab1ff00ae6bbe6460ba62c9a36846a24d4278f8df4e2bff001ef13ff74a77fde4abcbf923e92
62a9ce95a3e9da25b1b5d3a1f4d1dccb348ccd24b34ad4e524b2392cee69bb312d8aa3b15762aec
55d8abb15762aec5523f28ff00c7117fe62afbfea326c553cc55d8aa1354ff008e65effc6097fe207154
abc8bff284796bfed9563ff50c98ab20c55d8abb15762aec55d8aad3ea1610000026060f002220574
d464301000000000001000000000000001200000000200000a8a00100a8200200735208f4a8798
20f2aed4a1afceb8aaec5524f29ff00c7147fcc55f7fd464d8aa778abb15762aec55d8abb15762ac7f5
f6035af2aaf76d467a7d1a6de62aff00ffd3f6bfe5dffca1ba5ffab2ff00c9e7c5593e2aec55d8aa593f97
741bad5a1d7ae74db6975ab74f4a1d41e2433aa024850e45680934f0ed8ab7aa797f43d6e4b49b5
8d3adefa5b1732d9bdc44b2342e69528581a5682b4eb8aa64000283a0c55d8aa4917fca5f77ff006
cdb5ff93f718aa778abb1548f54f31c76b76349d2e06d535d61cbea50b0548576f8ee253558977db9
7c6ffeeb47c5546cfcb72dc5ca6a9e67b85d4f5046125b5b05e36368c06de8c47ed30a9fdf49ca4fe5
f4d7e0c559162aec558df993ce365e5ad434ad36ea1632eb0d2456933b2436e668f852232c842fa8
c1b9247f6a45493d3e4cbc4aac3a6fcecb2d3b44d3353d5747b85bbd4b456d752d2d65866fee6c4e
a1243c9993891129e2d27a7cdbecd47c58ab2ef2879a750f324dad41a8e90da3cda45d456861927
8ee1d8cb690dd5498aaa369946ccd8ab27c55d8abb15762a91f947fe388bff3157dff00519362a9e6
2aec550ba98ae9b783c6097fe207154a7c886be47f2c9ffb5558ff00d43478ab20c55d8abb15762ae

931

c55d8abb15762a92794ff00e38a3fe62afbfea326c553bc55d8abb15762aec55d8abb1548f5c8d5b5
6f2cc847c51ea32f1ff65a75e0c55fffd4f6bfe5dffca1ba5ffab2ff00c9e7c5593e2aec55d8abb15762ae
c55d8aa45113fe33ba1d8e996df85c4f8aa697fa8596976b25f6a3711dada44019269582a0a9a015
3dc93403b9c558efadaff9ad00b4f5b40f2f4abbdcc8a63d56e118748e361fe8ca7f9dff007dff0015c4
68f8aa7fa6695a7e8f6a2cf4db75b7b704b955a966763567766259998eeccc4b1ef8aa331542ea5a
841a5d8cd7f72b234308059618da690d48501510127738ab188ff33fca12590d4d2ea47d3163692e
6f1217921b7e292bf199903712442fc7f99b828de58f9aa97eb5e62f23ead79636dac58c926abf584
82d6dafad66022b95b80d6ed3474a7069e0568a521939272e6bd71560f61a8fe4c4fe5ad2b53d7f4
28a1ba93428af2eedece1b9ba8a085b4d0f2db8f4eadf0dace57895f8a1f83b70c55953fe66791bcbf
7b74d0e9d7d6de61d496de69f4f96d64b5bbb811cd67a7872b395158feb76eacc7ed26cacfe9b2aa
a994df9ade5bd3a64b6d55ae16496eee2d84d159dc7a112c1a8ae9b595d851693491a33743cb9af
eef7c553bf2ef9d744f345ddd5a69266736b1ace667899229219269add5e373b1fde5bcab4fb5f0f4a
15c559162aec5523f28ffc7117fe62afbfea326c553cc55d8aa4fe62d561d36de0867462ba93c9651c
8a2aa923412c8bcbc037a7c07f94cb8aa4ff0096fabdadf79674ad32dead2e97a5e94974fd84b3d94
7304ff5823231f675c559862aec55d8abb15762aec55d8abb15493ca7ff001c51ff003157dff519362
a9de2aec55d8abb15762aec55d8aa4badff00c74fcb7ff6d193fee9d798abffd5f6c7e5f6de4fd34780
946fb749a4c559362aec55d8ab143f991e50e4cab7573205664e7169f7d221284a9e2e90156151d
41a62ad7fcac8f297fbfef3fee19a8ffd93e2aeff009593e52ff7f5effdc3351ffb26c55aff009593e53e9e
adf1f9695a91ff00b16c558beabf9956167e66373a4e9da9dfb5dd8c76d1ca74bd4a2b58a48e595d9
a797eaac554023655776fd95f05519a7ebde593789acebf73a8eadaca50c05b46d4d2d2d0effef342
6d9b8135de462d2b7f3f1f8715643ff2b03cb9bd06a3b6e7fdc46a7dbfe8db155dfe3df2f1d826a47b8
ff711a9ff00d9362ad8f3de824d045a9d7fed91a9ff00d9362a89bdb6d2fcf1e596861ba9d34cd4e347
8aead8982750ac1d48122d54865dd5d3fc975ed8ab15b7fc96f29dbc77d6bf5bd4e4d3354b59acf5
4d39aec8b7b913348c259022ab7ab1894ac722b2b0554af268d085532b5fcb7b0b5bbd3eff00f4de
b535fd95b1b3b9b996f4b3df441da48beb7440243133b18e817ed32b7246652aa5f0fe4df972dac2e
34cb6d4b56874ebad322d26e6d63bce30c820816d56e5a3e1c4dc7a2ab197a713c55b873556c55
ad6bf263cadaf6bb75e62bebcd4c6a5721a862bae29117368c4c4a5085f8eca0929f643aec38b15c
555ef7f28fcbba824d1dddeea12473bcd2c8beb462af71a8c3a9b9a88abfdf429fec2abdf1577e5c79
1f5af284dabcdaaea22e86a57125c9851fd58fd5965795a552d0c6f1d7991e917982ffbf3156726ead
86c668c1ff587f5c55afaddaffbfe3ff835feb8aa49e53bab55d156b3c63fd2af8eec3fe5b26f7c553bfae
5a7fbfe3ff835feb8abbeb969ff002d11ff00c1aff5c558f79e6dff004bf95353b5d3ef161d4922facd84a
8cac45cdab09e2142770cc815bfc9271548bf2600b7fcb6f2fdeea11c565aaeab6906a37d6dcd7923
cf0a08d1cd776489638dbfd4c559fadcdbb90a92a331e803024fe38aaae2aec55d8abb15762ad1ad
45294ef8ab78aa49e54ff8e32ffcc4def5ebfef64d8aa778abb15762aec55d8abb15762a93eb54fd25
e5dffb68494ffb87de62afffd6f6d790bfe513b0f9cfff0027e4c559262aec55d8aa45e4baff0085b4baf5
f47fe3638aa77ea273f4f90f529cb857e2e3d2b4f0c556fd62dc24929953d388912bf21c54af5e47b5
3be2ad99a20d1a19143cb5f4949156a0a9e3e3b62a927973cdba5799b4e9b52b4125ac36f7f77a5
4b1de058641756370f6d22d033035743c687e218aa74f3c3192249150aa976e4c05157a935ec2bb
e2a965ef99746b2ba8f4dfad4771acdcda4fa858e9503a35ddcdbdb71e6d0a165e42aeaa0d42f261
be2a8cb6d4209ededa692b6b2dd246eb6b3945995a45e41182b30e4286a149e8715575b8b7795e
05951a78c03244181750dd2a3a8af6c55e4a3cf1e6af2cf97f47b4d0fc9d7daddac8b3b5d6b68f0fd4
ad912692a1a28de4b977a74510aa7fc58b8aa73e5df366afaadf3c8f2c97f228f506936434db7f4e26
14065492ee59eb5dea7d315fd9c55968d5f543ff004a0bc1f396cffeca3156c6adaa91be837437e86
6b3fe13e2abbf4a6a7503f425cd3c4cb6b4ff0093d8abbf49ea9523f425c6dd0fad6bbffc95c5501ace
abaa8d1f503fa12e57fd1a7dc4d6b51fbb6ff8bb1541791f41d067f25f96e7974ab47964d2ec5ddded
e2662cd6e849278ee7154fbfc37e5dff00ab4597fd2345ff0034e2ad7f86bcb9d3f43d953fe61a2ff9a7
15528bcbfe54b80cd0697a7caa8cd1b14b78180743c594d176208a118aba3f2f794e6320874ad3a
431318e5096f037070012ad45d8d08d8e2aa9fe17f2d7fd59ac7fe9161ff9a71570f2c796874d1ac7f
e9161ff009a71563de70d1b48b3b7d167b3b0b6b69d35bd2f8491431c6c01bb4520155077048c55
9b62aec55d8abb15762aec55d8aa49e54db486aec3ebba853e5f5d9b154e832b7420d3c3156f157
62aec55d8abb15762a946b3ff001d1f2f7fdb424ffa80bbc55fffd7f6d79076f29e9e2b5de7dc7fc6793
156498abb15762a917932bfe16d2f6a7ee47eb38abc93cc7e49fcc6d4bcf97babe91a72697cb51bb
8ed75eb7bb8d8b69f77e5f92ce29a5595ccb58af0a3341188e2508b2c71cb2977c55563f2979b4e8f
a26a56fe47b6b0beb5bbb31e6ef2d7d76de44d6a0b7b6b8b66757e4616f4e4996e23339492e3871
9fd3654c5575bfe5c6b11799ed3d7f2cabf96608f4bb9f2e25bea8621a15c584acf240d4a48e8c5bd4
ac25964dede45f4806c552e9bf2cfcd972e60d6b42fd2fe5bbdbff343de68f1ea11da4919d67511776
578181e3b45ca37e2c2680b738b96f8aa647f2df5e826f3cea4be5cb3bdd4f56d674a9f4c7ba9d659
1f4b821d362bc5491db906e569248a93158e77f4ccead565c558d58fe4ff009ceda4b69aeb46b69e
6b6f2ff9c7418243716ef2c326b3a97d734e7472a94410b3447804f48d470e0715509ff267cef2db49
70ba54035a87cbde48d374ebb3710fab06a3e5dbd696f9d24a929fba6e08ebbc9f67a62a9d790069
da97e664daecb69f5e806adaec7a0ea30496934e9f5a9499beb80482e42235bb25b87857d05758b
932f06c55ebfe4314f2a580f79ffea224c553a7d3ec24bc8b5192d617d42156486eda35332237da55
7239007b8071544e2aec55d8aa97d62dfd7faafaa9f5ae3ea7a1c87a9c2b4e5c7ad2bdf1542eb7be
8da881d7eab3ff00c9b6c552df22ede46f2d102b4d26c6807fcc3262af1ad43f37bccb75f9737be7dd
17cc1a65a6a715ad6f3cb3756eb35c69b7e9aa456af14c44b1b2844768a459072697f791b05f8315

6f5ffcd3f39794fcc5aef96aff0059b4b9b8d3357f275b584b2db456f25d597986f3eaf7a4206dc2a9f8
5d7ec32efe18aa9699f99be60d2b4ed72f2de1b4934dd3bcd1e66b5d57f43c16d0de2da69f73105b
c16cc42dc9532137611d6e65e6af1726050aa9b2f9cb5c4d76e348d26fecb4dfaff9fe5d0ae2e2dad2
012bd9be862f83b03b35c07554f55c36ca15936a62a9245f9bbe7fd5bcbba11d3b52d1ed75dd4f4a
1716d3dc496d1453df5beaff0051b869e39e452b1340a5e3f48ff7bcd7f6511d57d1ca085009e4401
563dfdf6c558bf9eebf51d1f7a7fb9bd26bff004991e2aca715762aec55d8abb15762aec55e79a86b3
79a3797b4d78d261a65dead7d6bab5edb40d7725b5bbcb7651fd2549490d308a266e27887e5ee1
579b7913cc1e78d074bb7d3e2d2a58e3b087cbd6d35b3583da5fdc46fa4209c2cb2c45249619a83
d390afc21a1591180c5532bef3cfe664ba7d95d5a49756f77733dd5beab6234794bd85cd9e91a85c
346b2491959236ba8ad523750e1b97112bfaabc55458fcc5f36cdaacf0cb72f04715ac6d258db69b7
134ccf3c5a74a0c5ce200bc3eaddfd617d47288a8cb133472262aa567e7efcc53a858da5e7ee6e44
0e12ce4b29a35babb89f518bd09246842249298ecde13ce25646936f8e3c55e95e41d4b55d5b479
350d52e269d2e262f662eac64d3ae2184c6958658e50859924e639f0414a2fc5c79b2acab15762a
93eb35fd23e5ef6d424ff00ba7dde2aff00ffd0f6ef91c71f2c59ad41a3dc0a8e9b5c498ab21c55d8ab
b15487c9608f2b6960f5f47fe3638aa7d8abb15762aec55d8abb15762aa51dadb452c93c50c693cb
bcb2aa80ef4fe62054fd38ab06f235af986e3cb16925b6ad1410fab781236b3f51801773000b7aa2b
4f962ac93f47f9929beb5157c4590ff00aaa7155874df32806baf463a9afd493a7fc8cc55b1a679937
aebcbed4b38c7fc6d8aad7d2bcc8df67cc1c3e56709fd64e2ac57ccde5cd7efee521688eb5751c24c
17d35a58410c5ea12ac82772d323102a7d38db1541697e48fcc3d26e6fb51d53ce6d2797059490a
795d605ba8f68dbe36bcb9acf5ec02f15a75a9c559a7907fe505f2c7fdb26c3fea1a3c55357d274a93
d7f52c6ddbeb4eb2dd72890fab220a2b3d47c4401404e2aa8d6162d2a4ed6d134f127a71ca6352e
a8086e20d2a054034c5560d2f4c0140b2800493d641e926d2ff38db66f7eb8aaefd1ba7d4b7d521e
458b93e9a54b9eadd3afbe2ac33cc1f951a17987cc0bae5c5e5d43035bc76777a3ac7673d84d142
d232d12e6da6785ab23726b77859f6e55e23156730c51c1147044a122894246a3a0551403e818a
b18f3e2f2d3b4ade94d73473ff4ff000e2acab15762aec55d8abb15762aec5527f2c6da49a74faddf1
1f4de4d8aa714c55d8aa02d744d26c6f2e750b4b48e1bcbc7f52e65414e721142d4e818fed102adf
b58aae3a3e98751fd2c6d63fd225421b8a51881d2bd8914d89dc62a8dc55d8abb154a757a7e90d0
2a37fafbd3fe906eb157ffd1f70793805d022555e2167bc007caee518aa7d8abb15762ac2e1f215fda
442dac3ce5ae5ad9233986da3fd1acb1a3b16e0ad258b310b5a2f2666a77c5558f92b543d7cedaf7
d074d1ff006238ab7fe0ad44d6be73d78d7fcbb01faac862ad0f245f6d5f38ebe69ff17598afdd68315
49357f2f6ad65aff9774d87cddae7d5b539aea2ba0d35a96221b59265e27eadb1e4bdb154f3fc1175
ff00536ebdff004916dff64d8abbfc1175ff00536ebdff004916dff64d8ab63c93740ffca59ae9f9dc5b7f
d9362adff82ae76ff9daf5ddbfe5e2dffec9f154eb42d1ad3cbda55be8f62646b6b60dc5e67f5256677
2ecccddcb33127154c715791fe647953cf5e63d475ab7d1d1e6d12fb497b35825bc36e9f5858ddd1
a031488559dc88e5495194feee54963e0c8eaa43e72d2bceda568fa86ad797379691adec897125b
ea0ebf59b3bcd62d0d845104957d292183941211c569cfe3904bc9557ac79274ad4345d0ff0047ea
124cdc2eaee4b38eea76bb9e1b396e24782279999cb948caaeeef41f0f36e3cb156458aa85ec06ea
cee2d94f169a278c31e80ba915fc715615e5eff9589a1e81a5688fe5ed3277d36cedecda65d5e555
736f12c658036048078d698aa68ba9f9f8d39f9734e5f1a6af21ff00b10c55546a3e78a9ae81a781d8
fe9593fec87155ff005ff3a53fe389a783e1fa4e5ffb22c55b17be733d747d3c7fdbc653ff006278aaf17
7e6fa0ff717a7863f687d7e5207fd3a62ae173e6fad0e9ba70f7faf4dff006498aa5dabe9de6ad716c2
dae6dec2d6dedb50b2be9a58eea695f8595c24e5554dba025b8537618ab2dc55d8abb15762aec5
5adebd76f0c55bc5525f2a8234700f5fad5eff00d464d8ab006fcdbd46d9f5f826d3a09ee347935db8
8e3491a2f56cf429618c42a58356e6559b9a8fb3ff00058aa79e52fcc1bef326b834c9f4d8aded678f
5492de68a732cb19d2350162c9708634e0d207575009a7175edcb154934efcdfbfd474c8efc6936d
6b25f4ab6fa52dd5eac3149742de79e4b6925640a922987d30c3923f2f513905e38aaeb8fcdeb85d
7c797ed34fb49e69a7b6b6827fae7ee9659ef1aca4462b192cd13852dc453e2e018f1e4557aa273e
0bea53d4a0e5c7a57bd2bdb155d8abb154a35815d4340f6bf90ffd385de2afffd2f717947fe388bff31
57dff00519362a9e62aec55d8abb15762aec55d8ab14f329a79b3c97ef797a3fee5f39c5595e2aec5
5d8abb1560ff00993f98b07e5e58db5ecb6d1dd9b8170ff576b8582531dac5eab98d0ab17a0fb47ec
c63e2738aa5e3f348cf3db476b6d67f57d52e2e2c74ab89ef4454bbb4375ce2ba4f4cb4248b5f87ed
7c6fc2955c558ef9a3f34f5bbbd1ee66d1a14d316cf57d3b4e9ef23bab79e659935bb2b2ba81a1605
8a4b1ccfc250a3e0e2df0974c55170fe725f6a171e5b8acb44b56b4f34de2dae9f713ea08be9462caf
2f2433c51a48e8f18b3285582fc4fd7f76f8aa5fa87e755fdc69f7535b59db476b6d6daabde986e984
ccb6ba2c3aac26d6531d012262bcde361f07a8abc715575fcf0bbb7b79a73a12dc5b416d7124212f
035c48f67a7586a2c5f9c48a070bd20d1b9563f854f30b8abd3bca9ac5f6bda2c7a9ea166b652cb2d
c2451a3b3abc30ccf1c7302e88c04aaa24552b555703154eb15762aec55d8abb15762aec55d8abb
15762aec55d8abb15762aec5527f2c57f449a8a7fa5df7bff00c7e4d8aa2df47d22490cd2585b3ccd3
0b932342858ceaa10484915e61401cbad31541683e57d2bcb905e43a7210d7f73737b753b71133
cb7933dc3d5d154901a46e15dd462a80d0ff2f7cada0dac967058c37314c61694dc5bdb55dad8968
99fd28a30eea5891238692bbf3c553a7d0f44926facc9a6dab5c7a9ebfacd0465fd63c7e3e456bcbe
15f8bafc23c31547e2aec55d8aa53abffc74340ff98f7aff00d20dd62aff00ffd3f71794bfe388bff3157df
f00519362a9e62aec55d8abb15762aec55d8ab14f328ff9db3c947fe5f6f7fee9d718ab2bc55d8abb1

933

5762a96eb1e5ed03cc31c50ebfa5da6ab0c0ccf0c77d6f1dcaa33a18d8a891580255994d3f64d315
42c9e4cf284b0dedbcba069b25bea334773a844f670325c4f0504724aa528ee9c578b354ad36c555
2e3ca5e55ba9eeaeae744b09ae6f8c2d7b3496b0b4939b520c06462b57f4c81e9f2fb1fb38ab7179
53caf05c7d720d16c62bb374fa899d2d61593ebb22f07b8e416beab2fc264fb446d5c55457c93e4d4
805aa797b4c5b5043084595b88f90468c1e3c295e2eebfeab30fdac5507ae7e5df94b5cd22e34793
4cb7b38ae1789b8b38208e640422b005a36521d2358e4565649221e9bab27c38aa3fcade56d1fc9
fa52e8fa1c096f67ea3cec91c71c286594d5d8470ac71a723bf18d157db154eb15762aec55d8abb1
5762aec55d8abb15762aec55d8abb15762aec5526f2b10748dbb5ddf03f31793038aa738abb1576
2aec55d8abb15762a94eae7fdc8681ef7eff00f503758abfffd4f6879675cb2b6d28c124578ce9777e
18c763792a57eb937478e1653f41c5538ff11e9ffef9bfff00b86dff00fd50c55aff0011e9ff00ef9bff00fb
86dfff00d50c55bff1169ffef9bfff00b875f7fd50c55b1e61b03fee9beffb875f0ff9918ab8f986c07fba6fb
fee1d7dff005431568f98f4f15ac37fb7869d7c7f5418aadff1369d4afa1a87fdc3350ffb27c5522d7f51
d0353bbd21e5bbd534dd52d67964d31e1d3ae84b248d6f24722aa4f69207fddb331a2d453976c55
bfac0efae7987a53fe394ff007ffc73b156feb08050eb5e62af8fe8b93fef1d8abbd74ffabdf98bfee16fff
0078ec55c674ebfa6fcc3ff70c7ffbc762ad1b98d773acf98cf5d869721e9f2d3b15685ec5ff00575f31
9de9be9728ff00bb78c55afd2308343a8f990f6ff8e5cb4ffa80c556fe9681695bef32b721ff0056a9f6f
bac71569f5cb58d88375e666ff5748b961f858e2aa67cc36743fe91e69ebdb46baffb21c5569f31d9e
ffbff00357fdc1aeff0ff0040c556ff0088acff00e5a7cd9ff705bbff00b20c55afd3b6add2efcd83bffc71ee
47ebb0c55dfa6adcd2979e6cdffed533ff001b1c5570d562ed79e6b34ffb55c83f5d962aefd2a9414b
bf356fff006ac7ff00b23c55b1ac2d7889bcd47b54e9ac3fec5062abbf4d28a1e7e696ff00b7737fd930
c554ff004d20a6de6b3d7fe3c1ff00ea862aa675b848a98fcddd29416328fd50e2ad1d5607527d3f37
8ffa34981dbfe79e2ab7eb50391ff2980ff9e338ebfec31572981b71279c053c5271fad7156c45036fe
b79c07cfd61ff001ae2abd6da222beb79bb71d0997fa62ab92d23247efbcd9fec9e403154df43d56c
74fd363b3d3b4fd52e2da279419a48fd67695a56694b397ddb996e5e076c55321e6063d348d47e9
8547eb7c55c7cc120008d1f513f28a3fe3262ad7f8825a57f436a3f2f4a3aff00c9dc55bfd3f2fa7cff00
436a3f6b8f1f4a2e5d2b5fef7a62ad0f304a69fee175115ff8aa2ffaab8abbfc4136dfee1352dffe2b8bfe
aae2ab86bb31ff00a53ea03e71c5ff00557154bb53d5a796fb4661a55ea886f1e421c40a581b3b94a
2032fc46ad5a0fd9ab74538abffd900000840010824000000180000000210c0db010000000300000
00000000000000000000000001b40000040000000340000000100000002000000000000bf00000
0bf0000af4300809743030000000000008000000080fe7fe9430000008000000080feffc943210000
0008000000620000000c00000001000000150000000c00000004000000150000000c0000000400
00005100000000a501000000000000000000d2010000930100000000000000000000000000000
00000005e0100002f010000500000001004000060040000a0a00100000000002000cc00d301000
094010000280000005e0100002f0100000100080000000000000000000000000000000000fa000
0000000000000000000ffffff00fefefe009b9b9b00959595008a8a8a008c8c8c008b8b8b008484840
087878700808080007e7e7e007a7a7a007c7c7c00797979007676760075757500727272006f6f6f
0071717100696969006c6c6c006e6e6e006d6d6d006a6a6a006868680066666600676767006565
650063636300626262006464640058585800b8b8b800fdfdfd00e3e3e3008f8f8f00c1c1c100cacac
a00c4c4c400c3c3c300cdcdcd00d1d1d100cccccc00c9c9c900c8c8c800cbcbcb00cecece00d0d0d
000d2d2d200d3d3d300d5d5d500d7d7d700d8d8d800d9d9d900dadada00dbdbdb00dcdcdc00ddd
ddd00c7c7c700afafaf00e5e5e500a9a9a900f9f9f900fcfcfc00e6e6e600acacac00fbfbfb00b0b0b00
0aaaaaa00e7e7e700aeaeae00e8e8e800e2e2e200adadad00e9e9e900e4e4e400fafafa00f7f7f70
0e0e0e0009898980099999900f5f5f5005b5b5b009f9f9f007d7d7d00a8a8a800858585009a9a9a0
09c9c9c00ababab00f8f8f800474747007777770046464600a1a1a100ebebeb00b5b5b500b1b1b1
00efefef00cfcfcf00b9b9b9009d9d9d00e1e1e100bbbbbb00a7a7a700b3b3b300bebebe00c5c5c50
091919100a2a2a200c0c0c00028282800595959001b1b1b004f4f4f00f2f2f2003535350044444400
4a4a4a005252520040404000252525003c3c3c008e8e8e0042424200bfbfbf003e3e3e00f4f4f4001
21212003b3b3b00eaeaea0031313100898989007f7f7f00303030004d4d4d005c5c5c00a4a4a400
7b7b7b0060606000747474008d8d8d00f0f0f00034343400434343007070700038383800a0a0a00
05d5d5d008282820036363600dfdfdf002a2a2a0053535300888888005e5e5e00787878003d3d3d
00b4b4b4002c2c2c00a3a3a3005a5a5a002f2f2f00dedede005050500094949400737373003a3a3
a00bababa0021212100bcbcbc00eeeeee00393939001414140023232300565656006b6b6b001f1f
1f00373737008686860024242400494949001d1d1d00d6d6d600ececec009e9e9e0081818100c2
c2c2004b4b4b00a6a6a600b7b7b70057575700a5a5a500ededed0092929200bdbdbd00b6b6b600
b2b2b200f6f6f6001717170093939300181818008383830097979700f3f3f3003f3f3f0090909000c6
c6c6002d2d2d002e2e2e004c4c4c0011111100d4d4d400f1f1f1003333330045454500191919005
4545400515151004e4e4e009696960055555500616161002b2b2b000e0e0e001e1e1e00484848
002020200013131300292929005f5f5f000b0b0b002626260032323200151515001010100027272
7001c1c1c000d0
The code for this state machine is given below. First, consider the constructor, the activate,
deactivate and resume events. The cruise controller needs to interact with the speedometer and
the throttle controller. Hence, references to these objects are passed through the constructor. The
approach adopted is that the first time the system goes into the cruising mode, the real-time thread

controlling the throttle is started. If the system then comes out of the cruising mode, the thread is
descheduled. This will cause it to block when it next executes its waitForNextPeriod method call.
If the system enters the cruising mode again, the thread is simply rescheduled.
import
javax.realtime
.*;
public
class
CruiseControl
{
public
CruiseControl(
ThrottleController throttleControl,
SpeedMonitor
speedMon)
{
throttle
=
throttleControl;
speed
=
speedMon;
}
public
void
activate
()
{
if(engineActive
&
topGear
&
!braking)
{
cruising
=
true;
throttle.setCruiseSpeed(speed.getCurrentSpeed());
if(throttleStarted)
throttle.schedulePeriodic
()
;
else
{
throttleStarted
=
true;
throttle.start();
}
}
}
public
void
deactivate
()
{
if
(cruising){
cruising
=
false;
throttle.deschedulePeriodic();
}
}
public
void
resume
()
{
if(topGear
&
!braking
&
throttleStarted)
{
cruising
=
true;
throttle.schedulePeriodic
()
;
}
}
...
The

code

for
public

if

the

other
class

below:
{
...
public
void
startAcceleration()
{
if
(engineActive
&
topGear
&
!braking)
{
accelerating
=
true;
if
(throttleStarted)
throttle.schedulePeriodic();
else
{
throttleStarted
=
true;
throttle.start
();
}
throttle.accelerate();
}
}
public
void
stopAcceleration
()
{
(engineActive & topGear & !braking & accelerating) {
accelerating
=
false;
cruising
=
true;
throttle.setCruiseSpeed(speed.getCurrentSpeed());
}
}
public
void
ignitionOn
()
{
engineActive
=
true;
braking
=
false;
topGear
=
false;
cruising
=
false;
}
public
void
ignitionOff
()
{

935

events

is
given
CruiseControl

engineActive
=
false;
braking
=
false;
topGear
=
false;
if
(cruising)
{
cruising
=
false;
throttle.deschedulePeriodic();
}
}
public
void
topGearEngaged()
{
if
(engineActive)
topGear
=
true;
}
public
void
topGearDisengaged()
{
if(engineActive)
{
topGear
=
false;
if(cruising){
cruising
=
false;
throttle.deschedulePeriodic();
}
}
}
public
void
brakeEngaged
()
{
if
(engineActive)
{
if
(cruising){
cruising
=
false;
throttle.deschedulePeriodic();
}
braking
=
true;
}
}
public
void
brakeDisengaged
()
{
if
(engineActive)
{
braking
=
false;
}
}
private
boolean
engineActive
=
false;
private
boolean
topGear
=
false;
private
boolean
braking
=
false;
private
boolean
accelerating
=
false;
private
boolean
cruising
=
false;
private
ThrottleController
throttle;
private
boolean
throttleStarted
=
false
;
private
SpeedMonitor
speed;
}
Finally,
the
public

main
program
static
void

creates
main

an

instance
(String

class.
{
...
//
CRUISE_CONTROL
CruiseControl
cruise
=
new
CruiseControl
(throttle,
speedo);
...
[]

of

the
args)

16.5 Summary
The chapter has illustrated the design and implementation of a cruise control system. This
demonstrates many of the facilities of the RTSJ in particular, real-time threads, asynchronous
events and their handlers, device register access and interrupt handling. The chapter assumes that
real-time garbage collection performs adequately enough to cope with the memory demands of the
system. No cost overrun detection has been performed.

Chapter 17: High-Integrity Real-Time Systems


Overview
Introduction and chapter structure
Increasingly, software is being used in high-integrity systems; that is, systems where failure can cause
loss of life, environmental harm, or significant financial loss. Here, it is essential for programs to be of
the highest quality. In recognition of the demands placed on this "high-integrity software", there have
been national and international standards agreed that give advice on how to develop high-integrity
software components and present style guides on how to use particular programming languages. For
example, the US Nuclear Regulatory Commission (NRC) has guidelines for the development of safe
programs in languages like Ada 83, Ada 95, C and C++ (Hetch, Hetch and Graff, 1997). Most
countries' safety-related industries also use guidelines on developing high-integrity software (DEF 055
in the UK and DO-178B in the US). Many of these standards either assume that systems are
sequential and forbid the use of concurrency or recommend that concurrency be kept to a minimum.
To illustrate a typical standard's requirements, consider the NRC. which has developed a set of
generic safe programming attributes. There are four top-level attributes (Hetch, Hetch and Graff,
1997):
Reliability defined as the "predictable and consistent performance of the software under
conditions specified in its design". A key factor in obtaining reliability is to have predictability
of the program's execution, in particular, predictability of control and data flow, predictability
of memory utilization and predictability of response times.
Robustness defined as "the capability of the safety system software to operate in an
acceptable manner under abnormal conditions or events". Often called fault tolerance or
survivability, this attribute requires the system to cope with both anticipated and unexpected
faults. Techniques such as using replication, diversity and exception handling are commonly
used (Burns and Wellings, 2001).
Traceability relates to "the feasibility of reviewing and identifying the source code and
library component origin and development processes", thus facilitating verification and
validation techniques which are essential aids to ensuring program correctness.
Maintainability relates to "the means by which the source code reduces the likelihood that
faults will be introduced during changes made after delivery". All the standard software
engineering issues apply here such as good readability, use of appropriate abstraction
techniques, strong cohesion and loose coupling of components, and portability of software
components between compilers and platforms (Sommerville, 2000).
For many people, Java is the antithesis of a high-integrity programming language. Ironically, many of
the features that have led to its success as a programming language for general applications are
problematic when used in high-integrity systems. Its combination of object-oriented programming
features, lack of any mechanisms for memory reclaiming (thereby necessitating the virtual machine to
undertake garbage collection) and its poor support for real-time multithreading are all seen as
particular drawbacks. The RTSJ has introduced many new features that help in the real-time domain.
However, the expressive power of these features means that very complex programming models can
be created, necessitating complexity in the supporting real-time virtual machine. Consequently, Java,
with the real-time extensions as they stand, is too complex for confident use in high-integrity systems.
Ada is one of the most important programming languages for the high-integrity systems application
domain. As with Java, full Ada is not appropriate for high-integrity programming. However, the SPARK
subset of Ada (Barnes, 1997) (which removes many of the language's eomplicated or advanced
features such as tasking, exceptions, overloading, etc.) allows programs to be proven correct
mathematically. In recent years, advances in real-time systems research, particularly in the area of
schedulability analysis, mean that it is now possible to show mathematically that a concurrent
program will meet its deadlines. Of course, constraints must be placed on the particular concurrency
mechanisms used to ensure predictability. However, it is no longer axiomatic that concurrency should
be forbidden or even discouraged. To encourage the use of concurrency in high-integrity real-time
systems, the Ada community has developed a subset of the Ada tasking model (including the RealTime Annex) called the Ravenscar Profile (or just Ravenscar) (Burns, Dobbings and Romanski,
1998). The main aims of the subset are to support a predictable computational model and to enable a
small, efficient and predictable run-time support system to be produced. The Ravenscar Profile has

937

attracted support from users and compiler (and run-time) vendors, and has become a de facto
standard in the high-integrity systems domain. It has recently been incorporated into the Ada
language standard.
The goal of this chapter is to discuss a Ravenscar-inspired subset for Java and the RTSJ extensions.
The discussion builds on the work of (Puschner and Wellings, 2001), (Kwon, Wellings and King, 2002,
2003).

17.1 The Ravenscar Computational Model


The main goal of Ravenscar is to define a computational model for application programs so that they
can be analyzed for their timing properties on single-processor systems (using standard feasibility
analysis techniques such as Response Time Analysis (Audsley et al, 1993; Burns and Wellings,
2001)). Hence, it addresses the "reliability" aspects of the NRC's top-level attributes rather than the
"robustness" aspects. Ravenscar is silent on issues like exception handling, which it considers to be
part of the sequential language and, therefore, outside its scope. For high-integrity systems, an
application might also impose other nonconcurrency-related restrictions.
The model classifies concurrent entities as being either periodic or sporadic. The use of these terms
in Ravenscar is consistent with their use in the RTSJ. That is, periodic entities are released on a
regular basis (they are usually time triggered) and sporadic entities are released on an irregular basis
(albeit with a minimum separation between releases they are usually event triggered). Aperiodic
entities are not encouraged in Ravenscar as they are, by definition, unpredictable[1].
A Ravenscar program consists of a fixed number of concurrent entities that are created immediately
after the program begins its execution. A program is considered to have
an initialization phase where all the concurrent entities (and all other permanent objects)
are created; typically there are no hard time constraints associated with this phase of
execution,
an execution phase where all concurrent entities execute under time constraints.
Concurrent entities, in Ravenscar, do not terminate and, hence, the program does not terminate. All
concurrent entities have unique fixed priorities and they are executed using preemptive priority-based
scheduling. Sporadic entities are usually released by a single event that can be either software
generated or hardware generated (by an interrupt).
Communication between concurrent entities is via shared data. Where data cannot be accessed
atomically, it is encapsulated by procedures that enforce mutual exclusion. Ceiling priority inheritance
(called priority ceiling emulation by the RTSJ) is used to bound the time that a high-priority entity can
be blocked by a low-priority entity accessing shared data. Concurrent entities that access shared data
must not suspend themselves while holding a mutual exclusion lock.
Although Ravenscar says little about memory management issues, it is targeted at static real-time
systems. Hence, no dynamic creation of concurrent entities is allowed. For the purpose of this
chapter, it will be assumed that there is an implicit requirement that all memory management is
predictable. This is in keeping with the guidelines given by other standards; furthermore, without
predictable memory management, it would not be possible to analyze Ravenscar-compliant programs.
The profile is also silent on control flow issues, although, again, there is an implicit assumption that
they are statically analyzable.
Although the Ravenscar model is very simple, it is reasonably expressive. User experience with the
model has shown up some "ease of use" problems, however, in general, the experience has been
positive (Brach, 2002; Michell, 2002).
It is possible to bound the impact of aperiodic activities using server technologies (for example,
sporadic or deferrable servers, see Section 10.4.5). However, these are not supported by the
Ravenscar profile.
[1]

17.2 Java, the RTSJ and Ravenscar


In recent years, the scope of Java has been extended to address the demands of small-scale
embedded systems and consumer electronics. The Java 2 Platform Micro Edition has been
introduced (J2ME) (Sun Microsystems, 2000). In essence, this consists of a three-layered
architecture:
a virtual machine layer (usually implemented on top of a host operating system);
a configuration layer that defines the set of Java language features, a minimum set of virtual
machine features and the available class libraries that can be supported by a particular

implementation platform (for example, a mobile phone);


a profile layer that defines a minimum set of Application Programmers Interfaces (APIs)
targeted at a particular application domain.

More than one profile may be supported by the same configuration layer, and different configuration
layers may support the same profile. A configuration layer, called Connected, Limited Device
Configuration (CLDC) has been defined for small, resource-constrained mobile devices (mobile
phones, pagers, personal organizers, etc.) typically with a memory capacity of up to 512 kb. The K
(kilo bytes) virtual machine (KVM) is a specifically designed virtual machine to support the CLDC. The
restrictions imposed on the Java language and this virtual machine include (Topley, 2002): no support
for floating point operations, no support for native interfaces, no user-defined class loaders, no thread
groups or daemon threads, no object finalization, etc. The main motivation for these restrictions is to
reduce the size of memory required to implement the virtual machine.
It is clear that the overheads of implementing the RTSJ make it unsuitable for the CLDC configuration
and consequently RTSJ, as it stands, is probably best targeted at Java 2 Standard Edition (J2SE) or
the CDC Connected Device Configuration within the J2ME framework. However, a subset of the
RTSJ along the lines of the Ravenscar model would be appropriate for J2ME CLDC, and it is possible
to imagine a Ravenscar virtual machine and a Ravenscar CLDC along with one or more profiles.

17.3 The Ravenscar-Java Profile


The Ravenscar profile for Java, augmented by the RTSJ (Ravenscar-Java), focusses on the
"reliability" attribute of high-integrity programming. The attributes can be summarized under the
following headings:
predictability of memory utilization
predictability of response times
predictability of control and data flow.
Although restrictions on the use of Java and the RTSJ will be specified, there is an underlying
requirement that the resulting Ravenscar-Java programs are valid RTSJ programs and will execute
on a standard RTSJ platform with the same functional results (although not necessarily with the same
response times).

17.3.1 Predictability of memory utilization


Initialization and mission phases
An overriding concern of a Ravenscar-Java program is to avoid garbage collection (it is assumed that
the underlying virtual machine does not even support it). However, with the current RTSJ definition it
is not possible to write a program that does not use the heap at all. All Java programs begin with the
execution of a main method. Any objects created by this method will be allocated from the heap. This
problem is compounded by the RTSJ rule that only schedulable objects can enter into a memory area.
Hence, to obtain predictable memory usage, the main method of a Ravenscar-Java program should
be structured to construct a high-priority real-time thread whose run method executes in immortal
memory.[2] Its function is to perform the initialization phase of the program. The following illustrates the
approach.
import
javax.realtime.*;
class
Main
implements
Runnable
{
public
static
void
main(String
[]
args)
{
RealtimeThread
initializer
=
new
RealtimeThread
(
new
PriorityParameters
(
PriorityScheduler.MAX_PRIORITY), null, null,
ImmortalMemory.instance(),
null,
new
Main());
initializer.start
();
}
public
void
run
()
{
//
Initialization
phase
of
the
program.
}
}
Note that the initializing thread has no release parameters, no memory parameters and no processing
group parameters. In the context of a J2ME profile, the initializer thread might be predefined as an

939

extension of the RealtimeThread class that sets up its own parameters, as illustrated below:
package
javax.ravenscar;
public
class
Initializer
extends
RealtimeThread
{
public
Initializer()
{
super(
new
PriorityParameters(
PriorityScheduler.MAX_PRIORITY)
,
ImmortalMemory.instance());
}
}
import
javax.ravenscar.*;
class
Main
extends
Initializer
{
public
static
void
main
(String
[]
args)
{
Initializer
initializer
=
new
Main
();
initializer.start();
}
public
void
run()
{
//
Initialization
phase
of
the
program.
}
}
Use of immortal and scoped memory areas
Objects that are needed for the lifetime of the program must be created by the initializer in immortal
memory (this includes all periodic threads and sporadic event handlers). Objects required for the
lifetime of a periodic or sporadic activity must be created by the constructors for the classes. Objects
required for each release of an activity can be created in a scoped memory area that can be entered
as and when required. All scoped memory areas must be created by the initializer (or by constructors)
in immortal memory.
Only the LTMemory class is defined by Ravenscar-Java, as it gives predictable memory allocation.
The set of methods in the MemoryArea class that deal with joining a scoped memory area are absent
from the Ravenscar-Java specification, as these potentially block the calling schedulable object.
The MemoryArea class hierarchy is defined below. First, the base class is illustrated.
package
javax.ravenscar;
public
abstract
class
MemoryArea
{
protected
MemoryArea
(long
size);
protected
MemoryArea
(SizeEstimator
size);
public
void
enter(Runnable
logic);
public
static
MemoryArea
getMemoryArea(Object
object);
public
long
memoryConsumed();
public
long
memoryRemaining();
public
Object
newArray(Class
type,
int
number);
public
Object
newInstance(Class
type)
throws
IllegalAccessException,
InstantiationException;
public
Object
newInstance(
reflect.Constructor c, Object[] args)
throws
IllegalAccessException,
InstantiationException;
public
long
size();
}
The MemoryArea class has been significantly simplified compared to its RTSJ counterpart. Note also
that for predictability any high-integrity profile will probably impose restrictions on the use of
java.lang.reflect. Also static analysis applied to the application program will require memory
sizes to be accurately determined. Hence, no OutOfMemoryError exception should be thrown.
Further restrictions can be imposed to reduce the complexity of the underlying run-time support. For
example, run-time support will be significantly reduced by disallowing nested scoped memory areas
and allowing only one schedulable object to be active in a single scoped memory area.
The

remainder
public

public

of

the

MemoryArea
class
hierarchy
can
now
be
given.
package
javax.ravenscar;
final
class
ImmortalMemory
extends
MemoryArea
{
public
static
ImmortalMemory
instance();
}
package
javax.ravenscar;
abstract
class
ScopedMemory
extends
MemoryArea
{

public
public

public
ScopedMemory(long
public
ScopedMemory(SizeEstimator
public
void
enter(Runnable
int
getReferenceCount();
//
returns
class

package
LTMemory
public
public

size);
size);
logic);
0
or
1
}
javax.ravenscar;
extends
ScopedMemory
{
LTMemory(long
size);
LTMemory(SizeEstimator
size);

The timing characteristics of LTMemory allocation must be documented. Furthermore, if object


finalizers are allowed, the implementation of Ravenscar-Java must document when objects created in
LTMemory are finalized. One possibility is that finalization should be executed by the thread that, on
leaving the memory area, causes the reference count to become zero. The thread should not return
from the enter method until the finalization is completed and the memory reclaimed. Finalization
should be performed at the same priority as the thread.

17.3.2 Predictability of response times


Ravenscar-Java requires all concurrent entities to be either periodic or sporadic. In RTSJ there are
two vehicles for creating concurrent entities: real-time threads and asynchronous event handlers.
Threads with sporadic release parameters are not very well-defined in RTSJ (see Section 12.3);
consequently, in Ravenscar-Java, this requirement is interpreted to be that
all threads other than the initializing thread must not require access to the heap and have
periodic release parameters
all event handlers must be statically bound to a thread with no heap requirements and have
sporadic release parameters; each handler must be attached to a single asynchronous event
and each asynchronous event can only have one handler.
Use of the scheduler and on-line schedulability analysis
In Ravenscar, all schedulability (feasibility) analysis is performed off-line. Fixed priority scheduling is
assumed. Consequently, the following APIs are defined in Ravenscar-Java. Firstly, the SchedulabLe
interface is a null interface. It is not possible for application threads to interface with the default
scheduler.
package
javax.ravenscar;
public interface Schedulable extends Runnable { }
The Scheduler and the PriorityScheduler class are essentially redundant for Ravenscar-Java
(as no on-line analysis is allowed and priorities are, essentially, static). However, it is necessary to
have access to the maximum and minimum priorities that the scheduler supports. Hence, the
following
classes
are
defined:
package
javax.ravenscar;
public
abstract
class
Scheduler
{
}
package
javax.ravenscar;
public
class
PriorityScheduler
extends
Scheduler
{
public
static
int
getMaxPriority();
public
static
int
getMinPriority();
}
Furthermore, it is necessary to have restricted PriorityParameters that allow the priority to be set
and
queried
but
not
changed:
package
javax.ravenscar;
public
class
PriorityParameters
{
public
PriorityParameters(int
priority);
public
int
getPriority();
}
There is no ImportanceParameters class.
Use of release parameters
Given that it is assumed that schedulability analysis is performed off-line and that the on-line

941

environment is predictable, Ravenscar provides no mechanisms for coping with overruns or deadline
misses. Consequently, in Ravenscar-Java, the support for these mechanisms is removed. This is
reflected in the ReleaseParameters class hierarchy. Note also the absence of an
AperiodicParameters
class.
package
javax.ravenscar;
public
class
ReleaseParameters
{
protected
ReleaseParameters();
}
package
javax.ravenscar;
public
class
PeriodicParameters
extends
ReleaseParameters
{
public
PeriodicParameters(AbsoluteTime
startTime,
RelativeTime period);
protected
AbsoluteTime
getStartTime();
protected
RelativeTime
getPeriod();
}
package
javax.ravenscar;
public
class
SporadicParameters
extends
ReleaseParameters
{
public
SporadicParameters(
RelativeTime
minInterarrival);
protected
RelativeTime
getMinInterarrival();
}
There is no ProcessingGroupParameters class in Ravenscar-Java.
Use of threads
Given that Ravenscar-Java only supports periodic threads, the API for Ravenscar-Java thread
classes will be very restricted. For example, a restricted version of java.lang.Thread for a highintegrity
J2ME
profile
might
be
simply
package
java.lang;
public
class
Thread
implements
Runnable
{
protected
Thread
();
protected
Thread(String
name);
protected
void
start();
}
The goal here is to restrict application programmers so that they cannot create Java threads, yet at
the same time allow the classes in the ravenscar package to extend from the thread class (to be
compatible with the RTSJ). Unfortunately, Java does not allow this fine level of control unless the
Thread class is in the ravenscar package as well. Here, it is assumed that static analysis has
shown that no attempt has been made to create a non-real-time thread.
The Ravenscar-Java RealtimeThread and NoHeapRealtimeThread are equally simple.
package
javax.ravenscar;
public
class
RealtimeThread
extends
Thread
implements
Schedulable
{
//
Constructors
only
callable
within
the
same
package.
RealtimeThread(PriorityParameters
pp,
PeriodicParameters
p,
MemoryArea
mem);
RealtimeThread(PriorityParameters
pp,
PeriodicParameters
p,
MemoryArea
mem,
Runnable
run);
public
static
RealtimeThread
currentRealtimeThread();
public
static
MemoryArea
getCurrentMemoryArea();
//
The
following
methods
are
only
callable
//
within
the
same
package.
void
start();
static
boolean
waitForNextPeriod();
}
package
javax.ravenscar;
public
class
NoHeapRealtimeThread
extends
RealtimeThread
{
NoRealtimeThread(PriorityParameters
pp,
PeriodicParameters
p,
MemoryArea
ma);
void
start
();
}

There is very little that can be done with the above class. Indeed, the programmer cannot create
objects of these classes as there is no valid constructor available. Instead, the programmer must use
the
PeriodicThread
abstraction:
package
javax.ravenscar;
public
class
PeriodicThread
extends
NoHeapRealtimeThread
{
public
PeriodicThread(PriorityParameters
pp,
PeriodicParameters p, Runnable logic);
public
final
void
run();
public
void
start
();
}
In the above, the logic (passed as a parameter to the constructor) is the code to be called each
period. The implementation of the PeriodicThread class might be structured as follows. Note the
class assumes that the default memory area is immortal. The Runnable logic can enter any
appropriate
scoped
memory
area
as
required.
package
javax.ravenscar;
public
class
PeriodicThread
extends
NoHeapRealtimeThread
{
public
PeriodicThread(PriorityParameters
pp,
PeriodicParameters
p,
Runnable
logic)
{
super(pp,
p,
ImmortalMemory.instance());
applicationLogic
=
logic;
}
public
void
run()
{
boolean
noProblems
=
true;
while(noProblems)
{
applicationLogic.run();
noProblems
=
waitForNextPeriod
();
}
//
A
simple
extension
to
Ravenscar-Java
// waitForNextPeriod to return false if a
// been missed. In which case, recovery
public

void

private

Runnable

would
allow
deadline has
occurs here.
}
start()
{
super.start();
}
applicationLogic;

}
Use of sporadic events and their handlers
Sporadic activities are represented in Ravenscar-Java by using the RTSJ asynchronous eventhandling mechanisms. In keeping with the approach outlined above for threads, events and their
handlers
have
equally
simple
APIs.
First,
the
AsyncEvent
class
is
given:
package
javax.ravenscar;
public
class
AsyncEvent
{
AsyncEvent();
void
addHandler(AsyncEventHandler
handler);
void
fire();
void
bindTo(String
happening);
}
Ravenscar-Java distinguishes between software-generated sporadic events and hard-ware-generated
events.
The
following
classes
are
defined:
package
javax.ravenscar;
public
class
SporadicEvent
extends
AsyncEvent
{
public
SporadicEvent(SporadicEventHandler
handler);
public
void
fire();
}
public
class
SporadicInterrupt
extends
AsyncEvent
{
public
SporadicInterrupt(SporadicEventHandler
handler,
String happening);
}

943

All events must have their handlers bound to them when they are created. This binding is permanent.
The

handler
public

class

public

hierarchy
is
given
below:
package
javax.ravenscar;
AsyncEventHandler
implements
Schedulable
{
AsyncEventHandler(PriorityParameters
pp,
ReleaseParameters
p);
AsyncEventHandler(PriorityParameters
pp,
ReleaseParameters
p,
Runnable
logic);
void
handleAsyncEvent();
public
final
void
run();
}
class
BoundAsyncEventHandler
extends
AsyncEventHandler
{
BoundAsyncEventHandler(PriorityParameters
pp,
ReleaseParameters
p);
BoundAsyncEventHandler(PriorityParameters
pp,
ReleaseParameters
p,
Runnable
logic);
void
handleAsyncEvent();

}
Again, there is little that a programmer can do with these classes, instead they should use the
following
class:
package
javax.ravenscar;
public
class
SporadicEventHandler
extends
BoundAsyncEventHandler
{
public
SporadicEventHandler(PriorityParameters
pri,
SporadicParameters spor);
public
SporadicEventHandler(PriorityParameters
pri,
SporadicParameters spor,
Runnable);
public
void
handleAsyncEvent();
}
This handler will automatically be created so that its default memory area is immortal memory (it can
enter any scoped memory area as and when required).
The implementation must document the model for mapping bound event handlers to no-heap realtime threads. RTSJ requires the handler to be bound permanently to a thread and each thread should
have only a single handler bound it.
Use of priority ceiling inheritance
Ravenscar requires the use of priority ceiling emulation. The appropriate RTSJ classes are
package
javax.ravenscar;
public
abstract
class
MonitorControl
{
public
static
void
setMonitorControl(
Object
monitor,
MonitorControl
monCtl);
//
throws
IllegalMonitorStateException
public
static
MonitorControl
getMonitorControl(
Object
monitor);
}
package
javax.ravenscar;
package
javax.realtime;
public
class
PriorityCeilingEmulation
extends
MonitorControl
{
//
methods
public
static
int
getMaxCeiling
();
public
static
PriorityCeilingEmulation
instance(
int
ceiling);
}
Ceiling priorities should be static; hence, a call to setMonitorControl throws an exception if the
ceiling priority has already been set. The intention is that Ravenscar-Java should facilitate the no-lock
implementation of synchronized methods and state-ments (see Section 14.2)
Other RTSJ restrictions

The following RTSJ classes/interfaces are not available in the Ravenscar-Java profile:
Timer and its subclasses only periodic threads can be released by time events.
AsynchronouslyInterruptedException, Interruptible and Timed
asynchronous transfer of control is allowed.

no

17.3.3 Predictability of control and data flow


It is beyond the scope of this chapter to consider restrictions that might be applied to the whole Java
language in order to obtain predictability of control and data flow (see (Kwon, Wellings and King.
2002) for a detailed analysis). However, it is worth noting that any class loading is only performed
during the initialization phase of the program execution, and there are no user-defined class loaders.
If further controls are placed on the use of class paths by the development and execution
environment, static analysis tools can determine which classes will be loaded.
The other major impact on control and data flow predictability is that all nonstatic and nonprivate
method calls in Java are virtual (that is, they may require a run-time look-up mechanism to determine
which method to call). In Ravenscar-Java all classes and interfaces are known statically and hence it
is possible to determine the set of methods that can be called (given a complete program). This
means that it is possible to predict the feasible control and data flows.
All forms of schedulability analysis require that the worst-case execution time (WCET) of schedulable
objects be known. With Ravenscar, the values must be known statically. The restrictions mentioned
above allow the worst case flow through a schedulable object to be determined. However, without
programmer annotations, these WCET values may be very pessimistic. Consequently, it is normal
practice to add some annotation to the code to aid the analysis. Of course, for high-integrity systems,
it must be possible to show that the annotation correctly represents the control flows through the
program. See (Puschner and Burns, 2000) for a full discussion on worst-case execution time analysis
and (Hu, Bernat and Wellings, 2002) for details on potential Java annotations.
In the absence of garbage collection, heap memory is equivalent to immortal memory. However, to
be compatible with non-Ravenscar RTSJ implementations, immortal memory is explicitly used.
[2]

17.4 Summary of Ravenscar-Java Profile


Figure 17.1 summarizes the main classes in Ravenscar-Java that have been discussed in this
chapter. Other classes associated with physical and raw memory access are assumed to extend the
Ravenscar-Java ScopedMemory class hierarchy.
0100090000038cb702000000e12d010000001610000026060f002220574d464301000000000001
00ffb9000000001900000000200000a0ee0200a00e0300010000006c0000000000000000000000d
20100004402000000000000000000006a400000ff4f000020454d4600000100a00e03000c000000
010000000000000000000000000000000005000020030000c40100001a01000000000000000000
0000000000e3e306006e4e0400460000002c00000020000000454d462b014001001c0000001000
00000210c0db0100000060000000600000004600000044b1000038b10000454d462b224004000c
000000000000001e4009000c00000000000000244001000c000000000000003040020010000000
040000000000803f214007000c000000000000000840000590b0000084b000000210c0db010000
000000000000000000000000000000000001000000ffd8ffe000104a46494600010201004800480
000ffed0ed850686f746f73686f7020332e30003842494d03ed00000000001000480000000100010
0480000000100013842494d040d000000000004000000783842494d03f30000000000080000000
0000000003842494d040a00000000000100003842494d271000000000000a0001000000000000
00013842494d03f5000000000048002f66660001006c66660006000000000001002f6666000100a
1999a0006000000000001003200000001005a00000006000000000001003500000001002d0000
00060000000000013842494d03f80000000000700000ffffffffffffffffffffffffffffffffffffffffffff03e800000000
ffffffffffffffffffffffffffffffffffffffffffff03e800000000ffffffffffffffffffffffffffffffffffffffffffff03e800000000ffffffffffffffffffff
ffffffffffffffffffffffff03e800003842494d0408000000000010000000010000024000000240000000003
842494d0414000000000004000000023842494d040c000000000d47000000010000005a0000007
0000001100000770000000d2b00180001ffd8ffe000104a46494600010201004800480000ffee000
e41646f626500648000000001ffdb0084000c08080809080c09090c110b0a0b11150f0c0c0f15181
31315131318110c0c0c0c0c0c110c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c
0c010d0b0b0d0e0d100e0e10140e0e0e14140e0e0e0e14110c0c0c0c0c11110c0c0c0c0c0c110c0
c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0cffc00011080070005a0301220002
1101031101ffdd00040006ffc4013f00000105010101010101000000000000000300010204050607

945

08090a0b0100010501010101010100000000000000010002030405060708090a0b10000104010
30204020507060805030c33010002110304211231054151611322718132061491a1b1422324155
2c16233347282d14307259253f0e1f163733516a2b283264493546445c2a3743617d255e265f2b3
84c3d375e3f3462794a485b495c4d4e4f4a5b5c5d5e5f55666768696a6b6c6d6e6f6374757677787
97a7b7c7d7e7f71100020201020404030405060707060535010002110321311204415161712213
0532819114a1b14223c152d1f0332462e1728292435315637334f1250616a2b283072635c2d2449
354a317644555367465e2f2b384c3d375e3f34694a485b495c4d4e4f4a5b5c5d5e5f55666768696a
6b6c6d6e6f62737475767778797a7b7c7ffda000c03010002110311003f00f4b7dbef70392cae0c6c
3b647f9c5567e75edb1cc01ef6b7e8dacf49cd768d3f45d631ecfa5b569a680929a6cbcbab0e394da
c91258e0cdcd91f45fb5db77353e3e5e5585c1f8eeda1ac735e080097076ffa67f376b7fedc562e6de
59143d95bff0079ed2f11fd56be9ffab42ac65d8ddb63da2090eb18d2d260fe631cfb7d3febef4948b2
32ed6174020b367e841af79dc61eff007bf67e8dbefda83fb42edc1a5b680486874531affd7d69575b
2b606304347cfe64fe72af99517d941040f710244c3a37b6c6eadf7fe8f67fd7125354f50c9035aecd
d206d6fa246bfcbf59bed6fe7fb54a9c5171759eb5eff7bc4b2e21bf49dc303fcd684b7c42a1731d8be
9dbf687d8f3b9ae2e35377fb1ceaeb77e8ebab76f67e8de92958f63a9c7b9c1d6d8f6d8e6bab73dae
7d6d0f7b1b67bddf4767e97def4bf685a2b7114dd644cb9a68f6c0f1f5437de87fb4ecd849659b87e6
8b318c9fe49f53fead38ea5698965bc8048b314b75dbee04dad76d6eefdcff0006ff00f83f5129b3464
fa98efb1ee34ed76ddd61acf86b3539f5fba52fb55de03fa3fabc1fa5e1ff0098a1d3982c00d969c726
00163a824977e67e85d67b93fda9ff00e99bcc703e8ffa7ff5fd124a7fffd0f44ca7e5efb7d1b6c6bdae
68aebd83616c3371f57d0bbc6c40f57ab6e30e796fb76c96cfe77a9bbf53dbfe8f62d843b63d93bbe
90fa1ff007f8fcc494e70b33e0eeb2e600d710406bc970fe6fd8dc467f39fd657dc5edc7b4b24386f2d
81267dd1b5bf9ca916f5516b8d77566b2e3e887d574b75e2c70b36bdbb3f3fd95fd0ff00ae0e91d40
d2d7e2be9db6073dbb997c1738eeb1ef97ef67f21967fd6d252e6eeaa0ff32e220c96dd5ccfbf686ef
a19fbb5fd2ff49ff0686eb73ecf4c5f8ee05cf3e9b5d752661ae7325aeabf9dd9ea7e8bf49b16a565a6
c6edf53e87e76edb13f9dea7f8443cbadceb68daedbb9db7898806edcdfe5eea525345bf6c21a4e2
ed9243c6fa647eeb8451b1cd77f5f7a3e132c7dc45f46c6ed30d77a6e9fe6fddba9ad9b7dceb19b37
7e66f5a2924a72ec6c52d752eadf77e75769aeb03c7dc31ed7376bbf90998fce639c19e8b58483a5
ed067f38edfb22428eb009875459eddad7bad0f0207a8d7bebb1cc73bd4def6bffeb6a2c6f5775a59
be93b0b77b7f4e2010cfa0fdff00a4ddfa6ff8bfd1d6929b56b6bb031beb3aefd230ec3b4f0e0777b58
1edd9f4f720ee7fefbffa5fa7f4ddf47f739fa29851d5f69169acfb7fc13ae0e9fe4fa966d6a53ffb7c929ff
fd1f554950b7abe3521c2e736ab035b6ed7970fd1b8ed63f7358ef0fa2d55aceafd35d6bdd658c25a
d6e87d4da0732cb3d2daefe76aff005624a759ec0f6398efa2e05a634307450c76eda81924bbdce2
7c4f2a95195d3f2438e386dbe93dacbb697434be36ed739adf53e92591761e3da2975400e1a7df12
035e5bfa2659b7e9a4a49946f0f77a41ce76f12d71b5ad2cdbfe0dd435edddea7f2501c331e75ac33
641a9fbf25f0e8dae2eafd3abf31cff00f08876f51c3635af6360fa8002c1713ed21d669e8fd1d8df7ab
0ceb34bcc36371204116032efa3fe0125306d97b4b0e433d2abfc2bdb6e4388d3dbb5aea6b6ff003
9f9cf7fd057f1b77a0cdf331f9dcc4fb774ff002567e7750a096d2fb1f8ce0d6dfb9a5cdd083ec73d95d
d5ffd6dc836753c5d8d657656ea4bd85ed71796b58d3ea3ac6b9b41dbf4366c7fe8bd4ff46929da91
e28145758c8b9c2643a009240dc1b63e1b3b5bb9fee543f6af4b0e737f41b9a48701b8905a0977f8
0fe4ab55baab0e35d5b1ad0f7bb56f71b2cef0df6bb6a4a6eacbff00dee5a8b2bff7bd253fffd2f500da
1adf4c10003f4678fc7da81539df6ab5b6380ac0047e909e4b9b5ed6fb767b5b67aa876f4df56914b
98c01ba6f61d8e3a16fbbf46ffdeff3d09bd1cb6763ec00bb747ac481a6dda37d2ef66d494e8c52f86c
8744102678f709d7ddb52763d2e717968dcefa446931e3081562166c06bafda41f5397e9affa367f5
55b4948becd4feefe27fbd31c5a0882d91e127fbd567d1906b686fa8cb446e7eedc1d1f4bdaeb59ed
720b6acd758e6faaf0f601a6d1b0921b3fe1fdfe9c7fe0c929d114d6dd1a368d043490341b47d1fe4a
7f4dbe2eff0039dfdeaad746406343b7bad0f9f5376d1b77eedbe9b6d7fd1abf47ff0008aea4a6b7da
7137399bdc5cc3b5c25da1086fc8c516d0d63a36bdee8efa35cd79d7e97e92c6a7b3a4e1d969b9e
c6bac33ee732b71124980eb2b7bbf39551d26a63eba3d0c7af1b7c35acaeb32d602fa46cf458cabd
27d553ffc27f36929bff6cc789ddf81eca8ff00ef6cfc949fd2fa7d4456cc769dc0986d540107d87e9d6
cfa7bb6a5e8e4ff00a177f49f53967f37e3fce24a7fffd3f4dbb25d5566cd9ea343c308ae5eeda48617
ec63777b3e93d9fb8abfed5331f66bc133cd364082d690f7358e6eef7ee66cdec56bd4c376a5d5987
6e996fd21edddfd655aafb3fdaae2f3490e01cf2083bb53e96ed3e955b5dff6e24a6c9bacf4dd66d6b
5a1a1cd0f76d3af3ea7b7f468c83bb11ce806b2fb0c72d9711ff55b5192534adea2ea5ed63e879f50
6e6398db2c079f693554fdafdad559992caf29d73316fdd613593b6fdad30fb2eb363abd8d63dd4ec
df533f4b67a7fe96b578b303596d5af3a3502bab1c6558e7369d840ee0e83f9af66ddadff000bbd252
adcfb4d0e7b2b357bd9507bdaf90eb0b1ac736ab5953ad637d56ef4f8f9d65b86726b0dc96337b4b
abdcd2f756e7556fa7416bffc231ecd9ea293dd84cb6b6b290f73cfb5f5b03834fef3dccfe6ff00ae9e8
a713d0a8bd95ee2c692486c93012523fda849686d16bb79da08aed8d3f38bbd0fa1fcafcffcc507f51
790cb7ecd702c25de9fa76171043d807f35b3bfefa365d788dc7b1cd65434f7388036b7f3ecf68ff06d
f7a9d35633eb6baca6a639c24b6077feb35a929a96e632fb5acb712cb2b78731cd7d3696023ddefd
f46dfccf6391fd5a7fd033fa3eee5bf47fd07fc57fe068ff0067c4ff00475ff9ad52f4a9fdc6fd1d9c0fa1fb9
fd4494fffd4f431d131430561ac0d049801ed92e25cf7bbd3b58d73dee76edc93fa562979dfb0bdc0b
9da592410da9ee745deeded6b37ff00a45a4abe5e0d19adf4f207a95ffa32016eefcdb38ddb9a9291
63e1d741058435ae0ddded7f15fd0975b659b15b0f698e7ddc687f1d3dab36ee9d894d8c2185c6c7
87dbbb73b7b9bf47fab67f8666cff468ece9386d7b1fb49731dbe493a9077b74fa3ed7a4a474f4d11b

d97ba1cd6b0861735b35fe8f7b59bbd8ff006ec7a97ecc0040bac9fdedeeddaed9f74ffc1ee5758d2d
6c17179d7dc6275fea86a924a68b3a73db736df5de436218497007dd2e6ef2ef7bb726b3a58758f7
b2d7d7bc35a0308101a0347d36d9efd3f9c57d53cbcac8a6c0daabf55b00b8376ee13bfddfa5b696b
be87d16a4a41760fa15d96fda2c1cba37b46bee7ed63bd3f67eeff5149bd2e5a7664dc5af2e76e0f1
aee1fd4ff336215d979f68733ecee6b4025af06a0fdc1decd8d7646cf7b3dffce7f214999b9cc22a6e2
16d4006d6e06b20003fc20fb46e6edfe47aa9299b7a416ed0326f863b7341b018fed3abdeefeda5fb
27fe14ff0044fb271ff8373f491f0b22fbc3bd6afd2700d3b0c4899ddbbd37dd5f6fdf569253ffd5f4ccdf
5767e8e77ed76c8dfb77c7e8fd5f43f49e9aa6f76789d9503a684d99035fde2df4bf37fadef463937b2
b758eb981a6ab1cd716b9c373350fd8d6d6fd8cff0047ea6fb3f3108f51b8027ed58ba349d5af1c7fd
73f37f3d2531b8e7686aa43c8fa3bacc86c3be836cd2bf73763b75957fe7c4e5dd420454d2759fd2e
481c7b4ff33fbc8adea21b7edb7228f4c0f700d7074ff58b8b3e9162b55e5e35b61aabb03ac6ccb7be
91ff0092494d66171a8faadb196eb02b75cf6ff23dd632bffa957d24925292492494a4924925292492
494fffd9003842494d04060000000000070005000000010100ffee000e41646f6265006440000000
01ffdb008400040303030303040303040604030406070504040507080606070606080a08090909
09080a0a0c0c0c0c0c0a0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c010405050807080f0a0
a0f140e0e0e14140e0e0e0e14110c0c0c0c0c11110c0c0c0c0c0c110c0c0c0c0c0c0c0c0c0c0c0c0
c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0cffc000110801b4015e03011100021101031101ffdd0004002cf
fc401a20000000701010101010000000000000000040503020601000708090a0b0100020203010
101010100000000000000010002030405060708090a0b10000201030302040206070304020602
73010203110400052112314151061361227181143291a10715b14223c152d1e1331662f0247282f
12543345392a2b26373c235442793a3b33617546474c3d2e2082683090a181984944546a4b456d
355281af2e3f3c4d4e4f465758595a5b5c5d5e5f566768696a6b6c6d6e6f637475767778797a7b7c
7d7e7f738485868788898a8b8c8d8e8f82939495969798999a9b9c9d9e9f92a3a4a5a6a7a8a9aaa
bacadaeafa110002020102030505040506040803036d0100021103042112314105511361220671
819132a1b1f014c1d1e1234215526272f1332434438216925325a263b2c20773d235e2448317549
308090a18192636451a2764745537f2a3b3c32829d3e3f38494a4b4c4d4e4f465758595a5b5c5d5
e5f5465666768696a6b6c6d6e6f6475767778797a7b7c7d7e7f738485868788898a8b8c8d8e8f839
495969798999a9b9c9d9e9f92a3a4a5a6a7a8a9aaabacadaeafaffda000c03010002110311003f00f
7f62aec55d8abb15762aec55d8abb15762ae22bd715762aec55d8abb15762aec55d8abb15762ae
c55d8abb15762aec55d8abb15762ac4fcf9e7487c9165a75f4f6ed7297b786d38232ab022d67b9fd
af1f469b78e2ac0afff00e720a2d334c8755bcf2ebfa1710fab1a457b0bbf3369697caad5550a3d1bb
5ab5767465dd68f8aaa6a1f9df3697afc7a7de696890dc59fee20694463ebeb7b776b56bb7a462de
416bfb890a7c6ee83f6b655187f3be11a9de69eda13aa58c9324d2b5dc3cb85a4f630cc42286f881b
f8f82d7e3e0ff12fc2595425dffce41e95069716b3168b349612bdd90ed736e8e2df4fb71733964ab3
2cc8392181c237a838f2a1e58ab2ad2bf31a2bef3058f97a7b4549afe5d4628ee629849129d3e79a
258d871a895d2132153c4015e2cfc4e2aceb15762aec55d8abb15762aec55d8abb15762aec55ffd0
f73f99ae2fedb45b87d3275b5bf7686182e5e31308da79922e5c0901a81ab42715493fc39e7fff00a9
d87fdc2adbfe6bc55dfe1cf3ff00fd4ecbff0070ab6ff9af156bfc39f981ff0053b0ff00b84db7fcd78ab7fe
1df3ff00fd4ecbff00709b7ff9af156bfc39e7fede765ffb84db7fcd78ab7fe1cfcc0efe765ffb84dbff00d54
c55dfe1df3fff00d4ecbff709b7ff00aa98ab5fe1df3f9ffa6d97e7fa26dffeaa62ad8f2e7e60577f3b291ff
6c9b7ff00aa98ab5fe1cfcc1ffa9d97fee136ff00f553154bf568fcf9e5cfd1ba85c79a23d46d64d4f4eb2
b9b36d36187d486f6ee2b67a3a484a9024e40f8e2aceb50d46c749b29f52d4ee12d6c2d90c93dc4
ac151147724e2a85d035ed37ccda5c5ace90eef6133cb1a34d1496f272b795e170d1caa8ea43a30
a328c5533c55d8abb1579f68f69e7ed7f4e8b574f3625925db48e9689a64122c4a2560aa19dea680
01538aa3ffc3be7ff00fa9d97fee156ff00f35e2ad7f873f302bff29b2d3fed936fff005531577f877cff00ff
0053b2ff00dc2adbfe6bc55bff000ef9fbfea755ff00b855bffcd78abbfc3be7ff00fa9d97fee156ff00f35e
2aeff0ef9fbfea751ff70ab7ff009af1577f877cff00ff0053b2ff00dc2adbfe6bc55dfe1df3ff00fd4eabff00
70ab7ff9af1577f877cfff00f53aaffdc2adff00e6bc556c9e59f3dc82afe73462bbad749b6343f4be2ab
745d3ac7f30bf2df4b8fcd76b1dc2eb5616936a51c1cad95e4a24a7898d8328e4a0d037f93d31566
06d2d581568232a5421051482abb81d3a0c55b36b6c49261424ee4951527af87b62ac63f3066b8d
37caf7177a518adb506bab2823b968639bd3faedec16f2b8490152dc1cd3977eb5c556a7953cc91b
f34f37dd035276b1d341f88efb8b71d71565a2a0004d4f73e38aa49abe91ae5fdd2cda6f98ae34981
502b5b436f6932b302496e53c4ed535a52b4db15407f873cd74a0f395d835ebf52d3ffea862a98691
a46b76170d2ea5e60b8d5612a544135bdac2a189043560891aa00a75a62a9dd7156352e83e6576
629e6cba8c3312aab6962788a9d87284f4f7c5560f2f799c0ff94c2f0f4ff8f3d3ff00ea877c553cd32d6
f6ced4417f7cfa8dc02c4dd4b1c513104ec38c4aabb7cb1576a76b79796a61b0be7d3a7e40fd6628
e295a83a8e332b2eff2c5587f98a2f36797b4f8f558bccb2dd88ef74f8a5b69ed2d046f0dcdec30480
98e35607848d420f5c559e62aff00ffd1f73799ff00e3927fe622cffea2e2c5538c55d8abb1579afe7b0
beb2fcb3f33f9974dd66fb48bfd0346d4efac9ac2736e1eed2d58c2d215dd8230aaa578b37da0d8ab
08bbf36eb9f97b258eb50ea773ae69afe573aedee9daa5e3c8394975a7c27d2908620fef64285ea3
e32bf669c554effe575ea724cb69069760b71777be60b2d364b9bffabdabb796eed6d8a4933c7459
2e037a91aa87e08923524e38aaebefcf6b7b4f3449e5f5b6b57b591962b7d50dc94822986a30e9d2
acc19435236983310156a3806653eae2ace3f2e753b9d5bcbb35d5e5d8bd9d754d5e0f5d5fd45f4e

947

0d46e238d54eff000aa2a85ff2698ab2cc55d8ab14fcc0ff008e469bff006dcd0ffeea96d8ab1fb5e7a5
ebc8ff0099edf5cbb96e565d0b562a7f4243202dc238a2a116d3283b3dc33bc87fbb9ffdd68aa9792
2d3cf33e91792e91ace976fa6b6b1ad9b786e34d9ee2555fd2b75f6a44be895b7a9a845c55927e8ff
00ccaffabfe8dff707b9ff00bc8e2aefd1ff00995ff57fd1bfee1173ff00791c55c34ffccaa8aebfa353bffb8
7b9ff00bc962aadf97bcbfc1ba4f260efe937260280b7a8d5206f4df15796fe68f997cc3a379e2f22d1f
50bab5b38ac74492e6fd6ec7d47486bbbfba89ef2e6c9b69606589239bf917e36e0bca455591ea7f
9c0f6371abccb6b611e8fa4dc5c584b35e5f7a375f5989e14848b78e395da39fd5f808036e0df664a
a2ac63ccdf9b1ae5a07f32e90f1c12c5a3de0974bb9904d6693da7982d74d69dd627d888de46d9f6
ad199a98aa2eeff39e6d067d66d6d74f178f6b79e689247bcd41dc05f2e5b4174563fdd1e092acbc5
53a434ff7662a98defe74dec17bfa1ad749b5935995dfeaa6e2f96d6c982e9b6da9246f3c89f03badc
f01f09feede4a30f8715414d6faa5ff00e6843a045e68d56d2d6efcb527988a437a5d63bbfd29195e2
87e0318898c3c38f031ef4e7f1e2ab743fcdad6ec740f2c595ddbdaea3ab6a70f96628ef25bb705cf9
845c45ea4b48892e8f6c5982fdbe7d471dd54c74afce7bad52ccea074db4b3b4b898d9d924d7a1af
05e477af672432db2a7243f00705da35f8b8b32f1e6556329f9d977e746f244fa60fd07f59f3168b69
a9d8fd6034f3c3a9e972de32850a035bf2658f9fed4913fd9e3baafa0cf435f0c5580fe5b4baf9fcbef2
c9b682c9e03a6db1899ee250c54c6284d2122b4c5594897ccfded6c07cae26ffaa18abbd4f33ffcb2
d853fe6226ff00aa18abc93f37b53f34c52dadbe9149753fade8ff005fd3449712e95f557d4e108f3c8f
6e16072db2b44ed2bf7825415555ee0bca8390a37703715c5524f394b343e56d59adb514d26edad
a48edb539433476f34a384723f0dc28661c88fb237c55e63a2fe63ea9a75c49a15f5a47a66b173a8
deda35cea3a8c9a8e8b14d61636d70896f76555ca5c2c9c955c2c913acd58db8f16550d6ff9adac7
9634ed7f52d4621abd8c3a97981ad53d5733c71d85ec28a39153fb88e39cb1a255238f97b2aa8ff0
031fe616b72f97afad1aeb4eb1d5e18e3b98eef4ebb79e3b884dfa420dbbd128c23f8a65fde84f5153
9107962ac73ce7f9c1af5e689e63d26d847a56a1a7c7a8b25ed9cceb7113e91e628b4c4a834a09e
161211e07f691ab8aa63e7dfccfd665b8bad0f4864b536da8593db6a56d3bc66969e62b2d3ee6198
0f88a347337a84aaaf1e5c7d44fde62aba4fcd4f3059eaf36afa95a148ec6c350b396ca295c69f34b6
dae5ae9c9a8af215108595a4663f663590732073c55eb1e52d5751d63475bbd54598bf59658653a
64e6ead5846e42b2bb2ad0b2d0b27c5c1be0e6f4e58aa798ab16fcc2283cb27d42c14dfe942ab426
a752b603afbf5c5594e2aff00ffd2f7379a20bdb8d1275d3eddaeef1248268ed51923693d09e394aab
485541214d393018aa55fe28f3557fe507d469e3f5cd2ff00ecaf156ffc51e69ffa91f51ffa4cd2ff00eca
f156879a3cd5dfc8fa8f5ff0096cd2fa7fd25e2ab5fcc9e6695784be44d41d0ee55aef4a6151ec6ef155
8fae6bce007f205eba85e0035ce9268a0d69bddf4ae2ab46b3ad88c443f2faf046ae2554fac691c44
8bd180fadf51e38aae7d775e939993c817ae5c32bf2b9d24f20f40c0d6ef7a802b8aaa47e64f32c49
e9c5e45d41117ecaadde94a3ee1778aaeff001479a6bff283ea34ff0098cd2ffecaf156ff00c51e68ff0
0a92351ff00a4bd2ffecaf154af5cb9f35f98e3d3b4e1e53bcb08d354d36f27bbb9bad3da28e1b2bc8
ae242443732393c63200553be2acf258a29e278664592190149237019595b62083b10462a82d17
43d23cb9a6c3a3e8567169fa55b991a0b3b7509121964695f8a8d802ccc683154c315762a946a1e
64d2b4ebf8349790dc6af71c0c7a75b0f5ae444ee10cce8bba44a4fc523d176f1db15633e5cbef33f9
7f46b6d1a6f295fdccb67ea466e21b9d3bd293f78c43273ba46a1041f8954e2a8d6d735a67798f90e
fccd3270998cfa4f265e9c58fd7371ed8aac3aceadc64afe5f5f7ef504520f5b483ca35d821ff004cdc0
1d074c55dfa675521ff00e41fdf7c6ad1b832e91f1231a907fd33707b8c550f71af5d5a4335ddd7e5fd
e456f123cb3ccf2e8c15500abb331bd029c47c44e2a977967cf375e66d38ea10fe5cea56ead20ac5
2be921fe001eddd94ddab02d13a48b55f843d3154f7fc41ac999ae0f90f51f5caf13319b49e657c2bf
5dad31552fd2d7c19587e5f5f724e3c183691b71e94ff4cda95db155c75ed5df9f2f206a24cacb24b5
9748f89d29466ff4ddcad3638aae5d7353f52390f90f5159231c637f534925456b4045e546fe18aa20
f99f5f229fe0dd53e21feffd336f9ffa6e2a80fcb1bdfab795f48f2a6a70b69de67d1ec2186ff49b868fd6
5108117aa9e9b32c91311f0c88597f64f17aae2acdf15762ac67f3034bd4f57f2bdc59e8f6eb75a8a5
c585dc36cf22c224fa95ec172cbcd810a4ac640af7c55063ccbe7adbfe747937ebfee4ecf63f7e2acc
7ed2d18751ba9dfaf6c558deb9a9f9834eb94b4d17caa758b1e2b21b84bbb5b5459391aaf0948351
406b4ef8aa05bcc5e740030f22cacfb9a0d46c7627dcb77c551da16a5afea175f57d63caada35a451
968ae1eead6e473a81c024249151bd7a6d8ab223144d5aa29aee6a06f8ab127d7bcdeb33a47e48
91a22587abf5fb11c871610000026060f002220574d464301000000000001000000000000001900
000000200000a0ce0200a00e03004069cabb81df1558be61f3a32fc5e4690000a85fd23647e1ff008
2a5315647a35cdf5d58a4ba8e9a749b904afd4ccb1cfc554ec43444ad0f862abb57bbd42cacccfa66
9eda9dd725516a92c701e27ab739485db15617afcfe74f32e9f0e93fe147b1592fb4f9a5ba9afed1d2
38ad2f61b8918ac6ccc7e18cd001b9c55e858abfffd3f7f62aec55d8abb15762aec55d8abb15762ae
c55d8abb15762aec5564d3456f1493cf22c50c4a5e495c854555152589a0000ef8ab115d6f5cf367a
43caaa74ed019cfd63cc1771912cd12d0ffa0c120f883f69e6023a7c51c73835c553dd17cbfa6e831c
e2c519ae2edfd6bdbc9dda6b9b893f9a595c966a0d947d945f8102aed8aa698abb15762aec5589f9
d675bf3a7793238c4f2f986465bc8d8b055d2ad8ab5e3b71eccacb08ff002e65ed5c55d716b2e85e7
4b7d52d401a4f9863fa8ea51d40097d6c85ad6600ff003c6af0bd3c20f0c559662aec55d8abb15613
a5fe6b793b51d3eff519ef0e9d1e99777563789768cac8f67753da3382bc83216b69183293c57edf1
e98aa61729e5df38cf20d3af47e9ad0a4658353b3a19ad26941565576528c1b8d248cf246a7c6bf6
71563f6bf992ba76bda3f94bcc52db3ea77d732e9a351b67436b73731a3ba7001d8c721f4c892ddf
e34665e06440cf8abd1b15762aec55d8abb15762aec55d8abb15762aec55d8abb15762aff00ffd4f7
f62aec55d8abb15762aec55d8abb15762aec55e65e73d53f35e0d435b8bca961ce0b6b432686c21

b79e0ba95e0a7191e4b989e39527fd9e1e9bc5df96eaaa4fa85f7e75db6a9f58b5b59ae74e6845a4
8628eccb208f50bb5374903ca81a5680da3702e13d3f576f5071c5539d3af7f359b5376be847d406
a7e8080c10440e9eb15bfef5645925352ef3ecc3758c2f2434691565faf79a2d34678ec6de27d4f5fb
9dacf47b52bebc87bb39621628d7ab49210a3b726e2a5540c3e57bdd66f0ea5e739a3bd880a5a79
7e25e5a6db569567e62b712ffc5920545ff75c2879332acac00361d315762aec55d8abb15762ac53
51d1bcdbfe249b5ad1ef74c5b792d21b48a1beb59a59a208eef2159239e30448596a38ff00bad715
6310a79fbf30fc9c257b9d22c24b992436f34505d3496f736372cb0cc87d6152af12c94ff618abd413
9f05f5083250722bb0af7a56b8aaec55d8abb1561173f94be47bbb09b4bb8b3b87b1b879de7845ed
d2873777135dcc09594121e5b895997ecfc74e8168aa79a1794b42f2dcf7775a4dbb45737cb0a5dc
af2c92b482d94ac7c8c8cd5201a72fb54a0ad1568ab13fcc6f2be817d7be56965b0862bcb9d7ed84
b7d6e8b05e7c305c480adc4616453c914f2560db62a9cddf94740b188dc5feb3aadb41554f566d73
508d3939a01c9ae00a93b0c554d3ca1e5e96d9af62d77577b38c317b85d76fcc4a23af22585c5071
a6fbed8aaba7923499e35962d5b5978a40191d35ad40ab2b6e08227dc1c556ff0081f47327a2357d
6bd603998c6b7a8f2e24d2b4f5eb4a8c5565d792f43b2824bbbcd6f59b7b58872966975cd4238d54
77666b8000f9e2ae83c9fa0df296b4d6f579d633c1da0d72fdc06eb462b7077a1c5557fc01a67fd5d
75cff00b8d6a3ff0055f1577f8034cffabaebbff71ad47feabe2aeff00699ff00575d77fee35a8ffd57c55c
3c83a67fd5d35cff00b8d6a3ff0055f156ff00c03a61ff00a5aeb9ff0071ad47feabe2ad1f206984d7f4a
eb9ff0071ad47feabe2adff008074ca53f4a6b9ff0071ad47feabe2a84d23454faf798fcb8fa86a5269c
bf5292277d42e9eea36752cde9dc193d5504a0a857a751fb47157ffd5f7f62aec55d8abb15762aec5
5d8abb15762aec55d8abb15639abdc6bd7bac0d0346962d3e0fab0b9bfd5187ab711acacf1c6b6d1
3029cea8cc5e4e4abf0feea4e5f0aa98687a069de5fb56b6b15777958cb757770ed35cdc4c7ac934
af56663f728f8542a80b8aa678abb15762aec55d8abb15762aec55877e5657fc0da696ead25e374a
7dabc98e2acc715762aec55d8abb15762ac3fcf5cbebde4c0bd0f9821e5f2165767f58c552efce9d1f
59d7fc853693a059c97da9cda8e912a45108c958ed752b6b99642256452123899a95f8bec8eb8ab
10d67c8be71d27cc97dfe1cd4758934dbdd235bd5aeee2d6682da19bccb71241f53531a85a52347
5514f4f61eab1762c5552d234efce873a7bea525dc37f0cda6bcd2fad11b57d1bf442a5f41244aff00
ef60bc1232b81fde185964f439ae2abafbcb1f9847cb474d8e6d6afae6ef45d36eaf3eb37a8261aac5
7d04b770c722c89c18c48ff02b7a2dbaf2f8b154b7ce7a5f9abcebe59fcd2d0fcb77d3f98f4a365a959
e8d0477714cd26adaac021974e92acb1aad83a1239bd53d70a7fba3c9545f99fc8de72d074ed47cc
3e461a9dd79ebcc7628f7734525b5b470dde976891d840f0f389380264e4ccd2d5be17e6a63e0aa
9ddd97e6f45a65f4f629aedc6a375aa6baf6a925d5a0105aa4733e92be9734ac6ceea369071e2a27
575a2e2a8ed6b44fcccd4350d42ead6e35cb7b6b8bdd57d0861bc8e058ec4e8d1bda045593e1235
00421fb7f695ff727154a2f74afce5f32f917ccda3eb969aa43e6db9d2ae63b492daeedadf4fb859ed2
dcc51a18a50d1dca4ab2236d182cd27295a16418aa7d25b7e675ccbe64f562d6ece6885dc5a3b5a
dc597d4a7b399e07b168c33bc8b730aab24bc82035959de4fdd62aca341d37ce1a579d9ad9a5bbb
ff0025a5a4b0c7737f705ee239d45b98cfda613ac95928ecb1cd132c81cc91bc5c557a0e2aec558e6
900ff008bbcc86bb7a7a7eddbfbb97157ffd6f7f62aec55d8abb15762aec55d8abb15762aec55d8ab
b1549a203fc5776d5dce9f6a29f29ee3fae2a9ce2aec55d8abb15762aec55d8abb15762af2cfcbff00
3c68ba6f952cec2e2db5469ade5bc8ddadf48d4ae22252f2653c258ad991c6df69588c55937fcac7f
2f7fcb2eb3ff703d5bfec97156bfe5647977fe59759f0ff008e16afff006498ab7ff2b1bcbfff002cbacffdc
0f56ffb25c55bff00958be5f1ff001edac787fc71355ffb25c55aff00958de5ff00f965d67fee07ab7fd92e
2ae1f98de5edff00d1b5814f1d13561ff62b8ab1cf3879a6cf5a8b4a9b455bf8752d23508f5184dee83
ad496efc21961287d2b60c2a252411e18aa0ffe56179c80f8feab53e1e5ef32ff00d93e2ab7fe563f9b
ba52dabdff00e75ff337fd9362ae3f98be71a8005aef5a57cbfe66edff0046d8ab4df98fe6f4a72faa6fb
7c3a079948fc2d8e2ad27e6179b50718a3b342ec59a9e5ef32804b1dc9a5a8dcf7c557c9f98be708
bedfd4fa7234d07cc87f55b1c5592595e7e676a5676da8d8cde5e96ceee249e093d3bf5e51caa194
d18822a0f422b8aabd3f35ff9fcbdff00017dff003562aea7e6bd7edf97a9dfe0beff009ab156b8fe6cff0
0bf3cbbd7fdf77dd3fe0f155e57f3528692797f9576f82f694ff83c558979f3ce9f9ade49d2e1be8ec34
4d5ef279e2862b0b61771b1579523791a476e2a139af5fb6ec883ed542ac9ac2eff0032b52b2b7d4
2d2e3cbd2da5d46934122a5ed19245e40fdb3e38aa234fd2fce76b16b1a94f3698fe62d41adc5b22
25c0b248edc053ceac642482dd3fc9c55ffd7f7f62aa06f2d056b7118a75abaff005c55df5db3ff00968
8bfe0d7fae2aefaed99ff008f88bfe0d7fae2aefaed97fcb445ff0006bfd71577d76cfa7d622ff835feb8a
bbeb967ff002d11ff00c1aff5c55bfae5a7fcb447ff0006bfd71577d6ed4f49e3ff00835feb8abbeb56a3
6f5e3ff835feb8ab7f59b6e9eb257fd61fd7155e924727d8756a75e241fd58aa4f10ff009db6ecf8e9d6
bf84f718aa758abb1562977f995e48b2bdbad3ee3555fadd94a6dee91219e511cab4aa168e365a8a
ee2bb62aa3ff002b4fc89ff5746f0dad6ecffcc9c55a1f9a9e4335ff0072a76ebfe8b763fe64e2ad8fcd4f
219341aa9aff00cc35d7fd52c55dff002b4fc89ff5753e3fef35d7fd52c55aff0095abe42e9fa58ffd235d
7fd52c55b3f9a9e4306875620ffcc35d7fd52c558b7e5e7e6379434cf28d8d96a57ef6d791c9765e19
2d6e95c07bb99d6a3d2eea411ed8ab28ff0095abe42ffabb1ffa46baff00aa58abbfe56af90bfeaec7fe
91aebfea962aeff95abe42ff00abb1ff00a46baffaa58abbfe56af90bfeaec7fe91aebfea962aeff0095ad
e42ffabb1ffa46baff00aa58ab8fe6af90bfeaec7fe91aebfea962a9fe85e61d1bccb64751d0eed2f2cd
64781e440cbc6588d1d195c02181ea08c5533c558c6aff00987e4cd0b519b4ad53558e0d46dc299
edc24b2327350ebcbd346009520d3c31541ff00cad7fcbf2037e995a1e9fb8b8ffaa78ab7ff002b57f2

949

ff00a7e9a4affc619ffea9e2ae4fcd6f203b145d653903420c3703f5c78aba4fcd2f217061fa6a304a54
031cc2a186dfeebc5528f2afe67f916d7cb1a3413eac1268ecad9244305c72561128208f4f63b62a9
dafe67f9118546b3181ef14c3f5c78ab5ff002b43c87b7fb998cd4d368a63ff0032fdb1570fcd0f22374
d6137ff008a671ff32f1569ff0034bc831805f5a8c03d3f7731fd51e2a9079b3ce3f973e61d2e6b73e6
0834fbcfdc98b5392da56f47d0b98ae406e6a8381789798e4bf3c55915ae81e71b1845b596bba65b
5b29664861d1da3452ec5cd145ed3724938aa0eeef3ce963e61d33419357b1986af6f7924771fa3d
d0c325918181e3f5a3cc32c8e08aad3e135ec557ffd0f7b5f9a58dd1ad290c9bf87c2715603e41f21f
916efc8be58b9b8f2ce933cd369363249349616cceeef6c84b3131d4924d4938aa71a9f913c8f69a7
dddedb792b49bebbb7864960b38ec2d1649a4452cb1ab347405c8e209f1c55e63e59d6ff2eb5fb0b
2bb9741f2a7a775abc3a24d145a6bfd623bb7b792596ca6b66b6f521ba8d900025a2489f10a1655c
5592dede7e4469d0dcc97ba1e930fd56692d6585b474f54cf6f6e2ee58d23f4393b47110ce10370fb
07e3f8715617a0f98fc9fe64f37eafe5eb1f26795d2df4dd760d1ed0cb60e66bc826b3875033abada1
8e3710cac44721f89a3a725e63156537fa97e4dadad91d27cb7a4dcaeab67a8dee997e74989ac02
6996cb72ef23a4458a7c6a291ab3d792d39ad3154558ddfe4cdda5ac72e83a4dcea322d8097ea9a
37a90fafaa5b0b9802335b83495374aefd9f8b62aa82e3f23d4d904d0b4b12dfc4f2e9c874858ccc6
3b79ae5e38cb40a0c823b794b256abc78b7c456aaae597f24dede09e6d034b8c49f534915b4a898
c13ea712cf6f0ca56260923abad149eac9fceb55538f2df977f2abcd7a2da798342f2d6993e91a846b
3d9dcc9a5c707ab0caa1d645596246e2c0820d31554b3d0341d0bf302c8689a65ae9a6e346bef58
59c11c1ea7a77567c797a60569c8d2be38aa7b153fc5775e3fa3adbfe4fcf8aa738abb1579541e76d
3bc81a06bbaf6af6d733e967cd17d6f77259a099ede39ae0833b4608668e3fb527a619c2d582362a
ca2d3f313cbb746fee0ce1346b3faa7d5f560e92dbde0beb65bb8dadfd22ecca2360c4f11dd87c239
62a945efe70797ad355d7b4d489ee63d1342b7f33c77d0cf6a6def6c6efd6f4c5b31947263f5793af1
4fb3f1fc58aa796bf985e5292ded24bdd52db4ebabab05d54d95dcd1c72c56de8acee5fe2e354460c
f43b2fc5f677c554ee7f33bf2f6c56d8df79974fb43765c409717090b9f46616f255242acbc24608fc80
e2c7e2c5526d37f38b42d43cc4be5e7b0bdb6925d72fbcaf6d74eb1491c9a969b01b990718a47916
368c12b23271ecfc2abc954fe4fcc4f234515ccf37982ca28ace54b7b9692654e12491b4a83e2a543
223b861f0f0476af146a2ab0f9ffcbd0ea336977f37d4ae85fb69765ead0add4c9631ea04c6c9c8051
0bd6ae57ec9c550d69f9a5e4696db4d7bfd774fb0bed4adad6f23b196f6de4754be46687e38dd918
3f0611bab1490afc05b1547cfe7bf2ac76567796fa9dbde0d510b68f1413465af6421b8450b332a19
2465288a59793fc3d8e2ac4752fce78b48b3d76ff51f2bea705a7966782d35d94cba7916b2dcc16f7
0a5a97479284b94e4cbca87962acbbfc7fe48e362dfe20b0a6a523c161fe911d679629440ea82b53
c64211bf958ef8ab6be7ef25b8529aed931699ad788994b89902332b2d6ab41246c49140ae8df65d
71543b7e60681fe38b2f20c0ed71ac5e5a5ede1788a34308d39edd248e43cb97326e168003d1b97
138aa1ff002ffedf9aff00f021beff0088458ab32c558f797ffe3b9e6bff00b6841ff74eb4c5590e2ac43f3
37cc1a9f95fc9f73ade8ee897d0dd69f0a9953d4429777d05b382b51fb329a1aec715629aff00e796
83611ebb6bf55d4eca5d257540b7e2dede7495f429ade3bc1147f5804f11711bafa9e9874e5c7e35
e38aa69a6fe6747a96bcda5cf673d8a45ae6a9a140408a74ba3a5599b9790b7356881a3711c5ab4
a7be2ac7754fcec4b8d574e8b450f6fa74726b76baec72c2935cacba6e8c9aac2d6c44a11ea92a1d
db8bd78d57ed62a9edc7e7379774b8ac1b5082f1e0b8d1a3f304f788909f46c658d0c72cd124a590
cd2b08225a1e72f3e3fbb8de40aa776fe7c79f52d3f48ff000e6ab16a37d25c878e64b7896086ce68
619676679d7947fbf47531f32e95e2390e38ab30c55d8ab14fcceffc975e6aff00b655e7fc996c55950
e98ab12d6e9ff002b03ca5ff30babd3fe06d7157fffd1f7aea15fa85d53afa32529fea9c55867e5d799b
cb70fe5ff0095229758b1495347d3d5d0dcc2a430b68c10473da87154ef52d6fca3aae9f75a6dcebb
68905dc4f0c8f0df4714aaae284a3a386561d5587438ab119bcabf96975771ea577e624b8d5a3d4a
d3593a83dfdb099eeb4e81ededb9f00aa56347614e3f157e3e58aa1b4df23fe58e956f610d9f99e45
9b4bb89af2c2f4eab11b98e7bc321bb6326c5cdc9918ccd27366da8cbc568aaa58794bf2ef48d435
7d474cf37cf6675ebe4d5357862d5e20b3dcc71c71025cd6503d38910f1917901f16e4e2aa23c83f9
448d2cb6dac436b713c97d35c4d6d7f6f0faafaa5aad9dd168d291d64445666081da45f519b9d4e2
a8ad2fca7f967a43c0f67e615ac126972a73d46ddaada25bfd56dabede9ecffcfd71540c3f97bf94d16
a7a7eacde60335d69854daacdaac4f18a4573030e35d83c7772abaaf156af3a7a839e2a8f8fca5f95
f1c2d6e35d8da197ea525d236a10113dc6971ac5693c9e3244b1c60528ade947cd5f8e2ac87cad3f
91fca1e5cd2fcafa4eb96874ad1eda2b2b2f5ef619241040a11033f21ca8a00ae2ab23d5b4ad4bf30
b4e1a75f5bde18f45d40c82de5494a86bab2a13c09a5687154de2ff0094b6effed9d6dff27ee3154eb
15762af34d0f41b8d7adef16def4592e9de71bbd4a6fdd098cc96b705bd204b2f0e5ddfe2a7862abb
4bfc9cd13cb573f5bf284e749f43577d6f4fb32866b3b67b8b2365710245cd29138679155597d291b
e0f83e0c55265fc80d2525d599af60ba8affcb76fe57b25bcd3a1b86b416ed72ff59462e01666ba90f
00a89b463f63755563fc8f9207bf7b5f31189af6d6211cada75a4f3db6a5169f1e9a6e609a60ee91bc
51297801fb55e32aa371c5528bbfc94d5a5d706986ffd6f2c6ada7798edf5ebf6863f547f88ee6c259
20891e5661516f2f195bd4e1c979736f8b154e748fc914d035bbbf32e8dad0b3d7aef58bad465bb5b
34632e977e23136993f290b491fee91e394324b1c8bc86c5d5d5435dfe466a17be587f2d4de6be08
e86ca5bc834ab48279f4d1693da2433ba10d2488b3f259432ad57e28b8bbab2a9fdafe59ea16d716
97c75e56bfb2bf8b51864166163629a38d1e4474f54d43a2fa80823837c3f10c558dd8fe409b2b7d3
adc798b9a69f69e56b2526c57932f942fe4bf89abeb6c666938bff2afd9df1547f97bf24bfc3f776532e
b89796b14c6e2f60b9d3a198c8f1ea173a85bb5bb4aeff5778dae9d0ba862ca1597d393e2c5531d6
bf2aee359b0f3d583eb4b1279d6fad2fcb8b4e66d7ea715ac1c2866a481d2d56a4f1a3337cb1575b

7e53225eea92de6ac66b0d58ebe2e2de3b710cab1f991adda4092fa8d4317d5fe13c3e2e5bf4c552
897f253549ac92ddbcd31c53b4125b5fcb6da45adb25d0f4e08e0964113abb4b1fa0391791e39037
1f4938c7c154e341fcaa9b44f37e9fe64fd3cf7361a57e9bfa8698f6c8ae3fc457515e5c09270e4b849
63fdd7c0a421e2e5e9cb154dbf2ffedf9aff00f021beff0088458ab32c558f797ffe3b7e6bff00b6841ff7
4eb5c5590e2a96ebba0e95e65d39b49d6a0face9ef24533c1cde305ede459a324a153f0ba2b75ea
31548afbf2bbc89a91b937da3a4c6f0df9b9acb32873ab988de542b8fef7d18f953f97e1a62aacdf97
1e4c7b99ae9f4b5696e2e2e2f670d24c637b9bcb636771218cbf0acb0b14936f8fed37c5be2a8483f
29bf2fede6371168cbebb7abc9de7b890b19ecd74f90b7390d4b5b22c249df82af862a8a6fcb6f24b
d95d69b26931c9a7df5a43a75edabbc8f14d696b035b43148acc432a46c4283d09e7f6fe2c551da5
794740d165b6b8d3ad992e2d639618a79669a79785c18cc81de6776727d18c55cb10115576c553
cc55d8ab14fccdffc977e6aff00b65de7fc996c55950e98ab10d78b0f3ff93a83e130eac09ff9e5011fa
b157fffd2f7f62a929f277944925b40d34b1dc936705493fec3156bfc1be50ffa97f4dffa4383fe68c55d
fe0df287fd4bfa6ffd21c1ff003462aeff0006f943fea5fd37fe90e0ff009a31577f837ca1ff0052fe9bff004
8707fcd18abbfc1be50ff00a97f4dff00a4383fe68c55dfe0df287fd4bfa6ff00d21c1ff3462aeff06f943fe
a5fd37fe90e0ff9a31577f837ca1ff52fe9bff48707fcd18abbfc1be50ffa97f4dffa4383fe68c5517a7e85
a269323cba5e9b6b632c838c8f6d0470b32835a128a0918aa536fac6952798a4bd8efa06b4b9b4b
5b6b79c48a5249dae6e2311ab5685f9295e237a838ab26c55d8aa4b27947cb524f35cb6990faf732
34f3baaf12f2bfda76e34ab1ee71568f93fcb47ae9d17fc37f5c55a1e4ef2c8dbf46c5ff0dfd7156ffc21e
5affab745ff000dfd7156bfc1fe59ff00ab745ff0dfd7156ffc21e5affab745ff000dfd71549bcd1a1e85a3
e89737563a65b3ea9270b6d3629d99637bcb971142a77ad39b0ad37e35c5501e47f2b697069d37
9735bf4b55d77419059dddfb82935cc6c8248279101a0678d872a7c25d5f8e2ac9ff00c1fe59e9fa3a
2dff00d6feb8abbfc1de591ff4ae8fef6feb8abbfc1fe59ffab747f7b7f5c55a1e4cf2c0e9a6c7f7b9ff008d
b156ff00c1de593ff4ae8fef6feb8aad3e4bf2bb020e9d1efb9f89c7fc6d8aa63a5e8fa668b6ed6ba55a
c769049234f224429ca59376763d4b1ee4e2a8dc558ddff917cbda96a571ab4c2f62bdbb286e4da6
a57f671c8d1a08d58c76f3c69cb8a85af1aed8aa80fcbbf2e0ad25d577ff00b5d6abff006558ab63f2f
7cbe0d7d7d5bad6875ad569ff005158abbfe55ef97ab5136aa0f4ff008eceabff006558ab6df97fa030
00cfaa8a0a6dacea8361f2b9c55dff002aff00cbf5a99b5527df59d53feca7156c79074002826d5295a
ffc76354fe3738ab63c85a08a7efb54dba7fb98d4ff00eca71577f80740dff7baa54f5ff731a9ff00d94e
2ae1e42d047fbbb543db7d63533ff6338aa95cfe5c795ef2de4b4bc1a85c5a4cbe9cd6f2eada9491c
887aabab5c90ca7b83d7156598ab10d7c13e7ef271f08b553ff00246118abffd3f7f62aec55d8abb15
762aec558d79aaf35c86f7cbfa768b32da8d4efa482f6eda0fac7a7047677138a296502af1a2f23e38
aa79630ddc16a915f5cfd6ee96bcee04622e55248f814902836c558ccc9af45a943a4c9e71b58b53
ba4927b5b17b2844f2431101d910ca0b04e4bc881b577c553b17f06a2b7fa5697aac0dad58048af5
a3e13bdb4d22074f5610df09653c82b53e1c55096ba5f9a62b885eebcc11dc5ba3299a116291975
1d543090f1af8d3154c355b6d4eea044d2afd74f98386795a05b80c943f0f1665a6f435c5584689f95
9369be777f37dfeb8d7f6f49278345faac705ac3a8cf5596ed38b121d959b6355e524ce3e290e2aca
f545d4aeafd6d34ad721b0b88e112cd64d025cca51d8aac94322b05a82b5a52a31544e9569ac5af
adfa57524d439f1f4785badb70a56b5e2edcabb62a86bfd3fccb3ddbcba7eb715a5a35385bbd92cec
b4143f19956b53bf4c5531d3a1beb7b558f51ba5bcba04969d22100209d8700cd4a0f7c552589bcc
763e62b5b6bdd422bed2ef56e5844b69e8bc262e0d1fef048c0ec48dd77c559262aec55d8ab13bb
8a1f3079d2d606944965e57417b2db015ff725788d1c0589dbf77099182f8cb1bfecae2adeb50268f
e68d2fcd11c82182f78689ab86af1749599acdf6d8324efe9ad7b5c37f938ab2bc55d8abb15762aec
55d8abb15762af3fb9d321d7bcf5e60b7d5750bf82c34dd3b4b92da1b4d46eec218cdc3de7aaecb6f
2c6096f4d6acd5fb38aa3e0f22f96ee417b6d53579954f1631ebda9b80de0697477c5550790f4212f
a5fa4758f58a96f4ceb9a9f2e35a569f59e95ef8aaf1f97fa3035faf6b5ff71bd53feca715737e5fe8cdd
6ff005ae806dadea8361f2b9c554a2f26f976e647f4355d5669129cd63d73516e3d8540b9dba62aac
3c85a40ad2ff0059dffed75a9ffd9462ad0f2068fc78fd7f5a201ad4eb7a9d6bf3face2ae1e40d1c5697
fad6fd7fdcd6a7ff006538ab67c83a39001bfd6a82b4ff00735a98ebff004718ab4be40d197a5feb5f4e
b7aa1fd7738aa0bca56f269be71f3468d1de5e5c69b6f069735b457b753de98de75b912156b87760
1b82d4569b62a88d7ffe53ef277c54fddeabb6dbfee62c55ffd4f7f62aec55d8abb15762aec55d8abb
157947e6e794bcd3e63d5b40d63c9d018bccfe554b8d5343d4a59123b36bc2f0a3d8cf47f53d3bbb
71342ec23654e48ff6862ac4a2f23fe63e81ac798e5d02cef63d3b58d56d2e756bbb1b9b28752bf47
d29ada6b981e670a1a3bbe321597d22d12af0e4abe932acb2df46f3f2ea416fe4d5ae2ca2d4a0533
25f42a65d3068623959842f08e46f96a78c68799e68ab162a90f96349fcf71a7e969e64b9986b115c
e99757374b716ed01d322d3d62bfb296343f15cbceb23acab55669237599151902a99da9f37586b
de49d1a1d5277d4755d341f37e917d7867bbb3f43d299af942348a15de292d3e12b1b3ce8c9f61f1
56a5f2df9c479e74cfcd4874b74d41eee7d1f54d163308bc6f2f4b58e269666ba30b08648d2f1638c
731eaca82aecdc95432e87f9aed6fa14725ceb3141771cebab3da5e5935edadf25ea3c12ca6e9de2
36e6dd4a3242253f16f0b39e4aab2afcbcff001f0d53536f3759dcda69f2c7fe86973736f761658eeee
6a4491484b7a91342c291421610000026060f002220574d4643010000000000010000000000000
01900000000200000a0ae0200a00e0300a157870e4bc9957a1e2aec55d8abb15762ac43cc1e42f
295f0d5358b8d313f49dcc6f2dc5cc524b0bc9247104566313ad582a2a83d68a31563fe4afcb9f27e
abe4af2cdfea7632dddd5c69ba75ddc35c5e5dca1e7f4629b9b069882798e5b8eb8abd3f15762aec

951

55d8abb15762aec55d8ab0074593cd7e7e5685ae03e8da646605432b480adffc01003cab5a53be2
af0cfcb7f2a7e69790bcad15f47a05c379a9bca7a5d9693f50823b78e282c6480deda5e41230e5a92
832b5bceefe8ceb48d7d26e41d566f20fcc2b5bb4f325859ea7a9eaa9a2ddc71de5e58476b786d1f
5ab698dbfa4ae57d74b4f57d047659256452f47638aa3ecb5bfccbb4d4f4db768f5dd42c1e48a492f
2eb4eb7803595c5c5d82a6388b159625302b7aee8fe9ac727a7c9a76c550d1ea9f9bcfa65858dfae
ab6d733acb0fe9bb2b286ea57bf44b392091ad65f44410483eb0922cdc9239f9a89bd2f41f15483ca
1f977adda4de69f3b4f67a8699a8e8be67f32eaba0697a7da25a5edec3a90f4e3669642c2684a969
238020fde0566e6ca8b8aa63a76b1f9c735e6ad26a516bd1dae9ba6ebd358db59d9daa9b9b84d40
fe8d11bdcc679c9f547aaa3b0e4507a8bea72055444babfe6ddff00973569625d66cb55b3b5f324ba
5247671879a6824b693470deb424b965775a109cf8b8916ab8ab5fa63f372db5ebed2ae535b6f2eb
5e4b0e91abdbd8417370b3496ba7cd1faca4c23eae253791ac9c4a2fd994d3d36c5570bdfcdb82fdf
4ce3ad436571ac6b220d4e0b682fdd241a9c7358a38b891156c9ec898d641f0a373e651d53154ea
6b9fcc8b5b3b7beb37d5350b9bad4afe2bbd3e78e38248ece0be64b56b6716fc14984a37fa40f4a6
883fef639389c5598e88b4fcc3f36b57ad968fb7cbeb98aadf30d0fe607932bd447ab11ff2261c55ffd
5f7f62aec55d8abb15762aec558bf9b46bb15ef97751d1acae35182c6fa59353b2b59a18647b796c
ae225244f2448e16578cf12dfe50fb38aa7da75d5c5ed9c77375652e9f3bf2e56970d13ca9462054c
2f226e054518e2ac75bcd9e615240f23eaec0120113e93b807a8adf0eb8ab22baba9e0b092ee2b2
96e6e123e6b6313442676a5780323ac7cbb6ee17fcac5520b3f34ebf737705bcde4bd56d2195d52
4ba9a7d2da38958d0bb08ef5dc80373c559bc062a8df36798cf953479b5a6d36e752b7b60cf711d9
b5bac891a2962dfe912c21b71c42a92eccc02ae2a97f957cd971e68fab6a09e59bfd3acaf2dc4b1ea
376f60cbc7a88d85bdccb2060491c4a7c2c1b950e2a98eb5adea9a5cf14563e5dbed663752cf3594
96488841a716175730357bfc208c555344d5f51d504e6ff0042bcd17d22be98bd7b493d5e55af1faa
cf3d38d37e5c7aed8aa1353f316b3617b2dadaf95352d4a08f8f0bcb5974f58a4e42a7889eee27dba
1e483db154d74abebad42c92eaf34e9f4b9d8b06b3ba685e550a680936f24a9bf5147c5525b6d435
cd4bcc7024ba25f699a659a5d092eee26b4304ecc5163e2905c4ae6b4661cd1788f7db1564f8abb1
5762a84d577d32f47fc512ffc40e2a93fe5f00be42f2b28e8348d3c0fa2d63c5591e2aec55d8abb157
62aec55d8abb15636740d52dbcc7a979834cbc817f4a5bd9dbcd6f730c92703646621959254fb426
dc53f6715467a5e69ff0096ad3ffe91a6ff00aaf8abbd2f34effe95a7d3b7fa34dff55f156fd3f34ffcb569f
f00f48f37fd57c55c63f3457e1bab0a6dd6da6fa7fddf8ab0ef2cf9abcd9aceab325c5d69d0d86a4279f
cb6ad6b3abcd6b632fd5e592a6615e64a4c83fdf522f5c559888fcd3bd6eb4ff6ff00479bfeabe2ad18
fcd0057eb5a7ff00d234dd3fe47e2aef4fcd3ff2d561ff0048d37fd57c55b31f99fb5cd857fe61e6ff00aa
f8ab5e979a7fe5ab4ff6ff00469bfeabe2a87d1741bdb1d7357d7afeea29ee7558ed21f4a089a248d6
c84a01ab3b9258ca7c294c552df30edf981e4b35eb1eacb4f9c111fe18abffd6f7f62aec55d8abb157
62aec55d8abb15762aec55d8ab14f31241aef98347f2bb4dfbab765d7353b75049786ce402d51cf4
0ad7147a7ed7a0c3a72c55da0c2ba0f99755f2f7acbf52d479eb9a55b9af3433494be45aec504ce92
edd0dc1ff0027156578abb15762aec55d8abb15762aec5507ab1a6957c7c2de53ff000871549ff2f2
a7c81e552df6bf43e9f5f9fd563c559262aec55d8abb15762aec55d8abb15762aec55d8abb15635e
76d46f6df4c8b48d21f86bbaeccba769f25397a5ea02d35c11e10c2af26fb16554fdac5543cd7a3a5a
e83657fa6d62bbf2ab477d6040e4c61b68cc73424015225b7322507ed156eaa31564d69756f7d6b
05eda4826b4b98d268254dd5e391432b03e041ae2aad8abb15762aec55d8ab0df310af9ff00c947c
13563ff004ef18c55ffd7f7f62aec55d8abb15762aec55d8abb15762aec55d8ab0ab3d33cd9a36a5e
60d63eada7dfcda9dcfad1cf25d4f03a58dba04b78380b670380e4c68d43249237ed62aa725b799f
ccb279775d5b2b1d3e4b49a1bd4b84bb92697ea970805c4054daa86e71b7f301ea2a3fece2ace71
5762aec558e79aa7d584ba2e9ba45f7e8d9b52bd7826bb10a4ecb1c76b3cf45592abbb46bbd3a62
a871e5ef3906a9f38ca4781d3ecffe69c556ff00877ce7bffcee72fb534eb3ff009a71572f97bce81403
e727620eec74eb4dc7d0062adff87fce9c89ff0018bf1fe5fd1d6b8aa95c795fce5730496efe739384a
ac8f4d3ad2bc5c1069b781c550da57933ce1a3e9b65a4d9f9ce4367616f15a5b8934db567f4e0408
a588a54d00aed8aa33fc3be77ebfe336f97e8db5a62aeff000f79e7fea72ffb965b7fcd58ab43cbbe79
efe7427aff00d2b2d7fae2ad8f2ff9e47fd36551efa65b7f0618aa044fe6dd0bcd7e5cd3352d75356b0
d61af22b888d9476cca6dedccc8caf1b1ee2841c559e62aec55d8abb15762aec55d8aa4dae796acf
5e96d679ee6f2d2e2cc48b04d61752dabd26e3cc1f4c8ad780eb8ab09f2ff009524d4359f355a5d79
8b5e6b7d33518ad6c946a738e113e9f697046c7e2f8e573f157c3a62acf3cbda159796746b3d074d
695ac2c23f46dfeb1234d20404900bb924815a0f05db154cf15762aec55d8abb1561fafd7fe560793
7c3d1d5bfe4d418abffd0f7f62aec55d8abb15762aec55d8abb15762aec55d8aa8ddffbcb3ffc637ff88
9c5505e5bff00947748ff00982b6ff934b8aa678abb15762ac7bcc1ff001dbf2a7fdb427ffba75de2aa9
e7597d0f27798271335bb47a75dba4f1bb44e8cb0b95657520a907a1071578de8be62f39f9334fd1
353964866d37cdb63656fa70d5f54b8bbb3b6d420b09ae64b8b8bb9d6b17d6e431c2b12b32d50ba
fef1bd32ab289bcfbabdd4d6b25e4564b6d079874bd1a682d6e2e56459af6dede667f5418c3a234c
e811e3e328505957ece2a972fe76ea887cb935d68f15bd8ebd1c07519dda41fa0a692ec40f16a151
45201a024c5fbd5653f0fc58aa53e41fcc8bdd2fcb5a74fac4ed7d3b5bc8f71a9dddccd22c50cde639
ec3d69848e408a18d95cc87708bc59f874553bf30d85bdfeafe50d4352d7ae0cfe66d6e5b3b84d2b
58beb6d3e5b3874dbdf4d2de38a68c00cf1c32395a9f58ed232f1c558df97bcffaef91347f37dbdddfb
6b70e95a9799934c9b58b8966bbe3a159c13c31492b37c41fe25a2a8a16e5beeb8ab2893f3635fb
6d4f50d3aeedb4a85747b78ef2fa5b89e781e6b59f4f6bc5b8b5855269258e390ac327107eccadcd
59550aac67cf3f9c9a86a1e4bf3469d68d1e8fa81d1b5d9f4ed622b868cbdc69f05bc96f1db3c321a5

c48b71eaaa8919b826cad56e0abdf34c90cda6d9cc5b9992089cb9352dc901ad7df15635e66ff94df
c91bffbbf52dbc7fd05f156618abb15762aec55d8abb15762aec5589794bfe522f3d7fdb620ff00ba4d
862acb715762aec55d8abb15762ac3bcc15ff9581e4ca01fdd6ad534de9e8c38abffd1f7f62aec55d8
abb15762aec55d8abb15762aec55d8aa8ddffbcb3ffc637ff889c5503e5bff00947748ff00982b6ff934
b8aa698abb15762ac6fcd906b1ea68ba968b603539f4dbd79a6b4f592dd9a392d2782aaf27c350d2
2ede18aa11bcc3e7365e2fe4a91813420ea366453fe0b15587cc1e731fbb1e4790c5b500d46ca9d7
c3976eb8ab475ff381af2f23486b463fee42c4d5be961d3155ff00a73cd816503c91251ea587d7ec6
8e4edbfc5dfdf156bf4f79b58d1fc8f3152bc49fafd81f84f55ddc6d8ab7fa77cd6dc4b791e6aa53856fa
c0f1dc74fde6d4a62ab5f5ef36372af91676ee2b7da7ee7e993155ff00a7fcd47e23e49b8e61788ff4d
d3fa1ea2beaf4c556fe9ef350e2a3c8d71c14823fd374ea02050103d5ec31540d97e626b77ba95d6
8a9e4dbe8758b21ce6b19eeec2391a1268b34559e92444edcd0901be07e2ff0e2abd97cd5aef9bb
cb97f75a049a4e99a435e4b753dc5d5aca5bd7b66851512091c93c9b7ad053156798abb15762aec
55d8abb15762aec5588f947fe523f3d1ffb5c5bff00dd22c31565d8abb15762aec55d8abb1561daff0
0fe4c1f26ff00c61d5ffe4d418abfffd2f7f62aec55d8abb15762ac7f59f3bf963cbf7e34bd52f5a3d40c2
b73f578a0b8b9710bb322bb08237e2199180af5e2715407fcacff0025ff00cb65c7fdc3efff00ea862a
eff959de4cff0096cb8ffb87dfff00d50c55b1f99be4c35ff4cb8db73fe817dff543156bfe5677933fe5b2
e3c3fde0beff00aa18ab63f337c967a5f4de1bd8de8fd7062aa171f99fe4a7b6982dece4b23003ea17
db9208ff007c62a86d0bf323c9f6da2e9b6b7179345710da4092c6f657aa559635041ac3d8e2a8f6f
cd0f242900ea12d4f4a595e1fd50e2aeff959fe49a72fd21281ef65783f5c38ab87e67f920d69a939a1
a1ff0044bbebff002271571fcd0f240201d464a9e9fe8779ff00547156ff00e5677920b04fd24dc8ec07
d56eff00ea962a8bd2fcf9e53d67518f49d3b51126a532bbc36f245342ce22019f8faa89cb88209a62
ac8f15762aec55d8abb15762ad1214124d00ea4e2a966b5a069dafc31add878ee21e6d677f6ce61
bab779178978654dd491d7f65bf695862a92c3e62d43cb6f6ba6f9d4a149dfd0b5f315ba14b395cb0
58d2e577fabcaf514a930bbec8eaccb162acbb15762ac3d3cc1e6bd4b59d734fd134ed3dad345ba8
ec8cd7b773c524b2496b05d16e11db48000270a3e2fd9c5513f58fcc3da9a768b5effe9d75d7fe90f1
5685c7e62f7d3b45fa2faeff00ec8f155febfe606dfee3f47f7ff4ebaffb24c55b13f9ff007ae9fa3fb7fa75
d7fd9262abfd7f3ceffee3f49ff27fd3ae7f1ff44c5526d1b4cf3f697a9ebf7ed69a4489acdec77b1a0bd
ba06358eceded789ff44dc93096fa7154cf49f316ad3799eebcafacd8dbdbdcc3610ea715c5a5c493
c6c92cd24250892188820c75efd71564f8abb15762aec55d8ab0ef309a79ff00c963c53561ff002423
3fc3157fffd3f7f62aec55d8abb15762ac46c07fc84ed78efb687a40f6ff007ab52c559762aec55d8abb
15762aec55d8abb15762aec55d8abb1561be65aff8f3c8fe1cb54ffa84c559962aec55d8abb15762a
ec5527f3669973ad795b5cd1ecf81bbd474fbab4b7f54958fd4b885e35e6406216adbec76ed8abcb
b46f24fe7069161a269b6fac406db49be8646f56fa691df4e45b3492dc936e4383c2eb873fb1ca3e2
7f9157a2f94b48d6acb449b4df354f1ea533cd3059199e6e76cff644bea54163bf255f83f940fb38aa0
5f4fd5bc931197cbb0c9aaf9691f9cba08f8eeeda223e2fa8bbb8e4aa7e2fabbf6aac0cb448b1564ba
5eafa76b36c6ef4d9d67855da29695578e54d9a39118064753f691c065ee31563de50ff009487cf5ff
6d987fee93618ab2ec55d8abb15762aec55d8ab0d8947fcad8ba7fdaff0f5b0a7b7d7a7c559962aec
55d8abb15762ac37cc5ff9303c95e1c356fbfd08f157ffd4f69cdf989e5f8af2f2ca28354bb92c676b4b
a92cb4ad42ee159d002c82586074256a2b438aa77a46af6fad5a9bbb586e608c398ca5edb4f652d
5686be9dc223537d9a94c557eaba9c1a4593df5cc57134485414b4b79aee63c8d0522815dcf5de8
bb62ac7ffe561e8dff0056fd736ffb51ea9ff64d8aaa47e7fd1e5963856c35a0d2b2a297d175345058d
01666b70147892683155b66922fe64eb1218dc432689a60598a9f4d992eafeaa1a94a80c2a2bdc6
2a8cd4fce1a66937b258dcdaea52cd1aab335a6997d77110c2a292c10ba13e2036d8aa0bfe56168
94afd475a03fed89aa7fd9362a9be8be61b1d7d666b286f2210150ff5eb2bab127982471173147cba
6fc6b4ef8aa36faf22d3ed26bd9d64686052eeb04524f2903f9638959d8fb2a938ab17bafcccf2bd8d
bcf797cba9dad9db2196e2e26d1f5348d23504b3331b6a00a0549ed8ab2f560c030dc1dc1f6c5546f
6f2df4fb3b8bfbc7f4ed2d6279e79284f18e252cc682a4d00ed8ab1687f32744b8863b8834ed72482
65592275d0f542191c5411fe8fdc1c557ffcac3d26b4fd15af7cff00416a9ff64f8ab63f307493ff004acd
747fdb8f54ff00b27c55c7f3074903fe399ae9f9687aa7fd93e2ae1f983a49ff00a566ba3e7a1ea9ff00
64f8ab19d73cdf6b75e6ff0029ea10691aeb5a5836a06ea4fd09a9d13d5b6e095ff47fda3b6d8ab26ff
9585a47fd5b75dffb81ea9ff64d8ab7ff002b0749ff00ab6eb9ff00703d53fec9f156bfe561e8ff00f56dd
776ff00b51ea9ff0064d8ab8fe61691d7f46ebbff00703d53fec9b1546e89e70d1f5ebf9f4bb54bcb7d4
6da14ba92defec6eac1cc123b22bafd6638f90e4847c3d31544ebbe63d37cbab666fc4ef25fcc6dac
e0b4b69aee692511bcc404811da812366248a6d8aa59fe3bd38ee34bd6ff00ee0fa87fd51c55a1e7
dd34b713a5eb80ff00db1751a7dfe862adff008f74ca16fd17add07fda9b51afdde862ab7fc7da66f5d
2f5c0077fd0ba8fe1fb8c558bebdaf69b1dc4be60f2de99afd8799a658e296e61d0350962b8443551
770b451891401c79ab2ce8a691b8e98aa4df959e6bd4f4e3e6a7f34e87e6282e6ff59377646e348b
d999ad1aceda345f5228983fa6d1bc61db83b22ab322b62af41ff9581a5d69fa2f5daffdb1352ffb27c
55dff002b034ba8034bd74d7bfe84d4bfec9f156ffc7fa57fd5b35cdffed49a97fd93e2ad9f3ee960d3f4
6eb75ffb62ea54ff00a87c555ec7ce9a45f6a90691e8dfda5edd7a9f5617da7de5a47218579b85926
895090a3953974c559162ac2a2247e6e5d0ec7cb96c6bf2be9ffae2acd09a0af5f618ab78abb15762
aec5586f98bfe53ff24ffabaaffd43c78abfffd5f66fe5fa955f33d4f5f306a2453fd64c558b6bfe7fd6fcafe
7f6b7d7dae6d3c9b2176d3afa0b682eb4e9c5b58bcf3dacd2a137105e73477883afa32c68234fdeb

953

62ac8ac7f30defce9a91e8f2a4bad5a9d4348e7716e527b55b54b963c9198ab299163e2cb42df12b
3460be2ac5350ff009c85d074bb09b5dbbd1af8796e096ceddf5053097126a5a6aea505612e18295
7113127e093b7a7570aa27cebf9b37ba6f9735f874bd367b0f365ae8daceb1a7fd6d53d1f4747b686
533812152eacf731a05e20b7193f602bb2a93e8bf9abe6cd3fccdace8de6248351b3d4920ff02bc0a
20965d445a5a49716335362795dacd1b8e96e93337f747154d3f2f3f3435cd53ca9e579359b09f5bf
316a76b6775acdce9d088adadff48cd3c68fc4ecb12184f2e4fcf87c5f1b5462aed23f3ef4ad4d74e9a
5d0af6d2d351b6d16fd2692481ca5bf986fdf4cb62cb1bb1e42743cd45691fc55e5f062a88bff00cf2d
2ed20d16e6db45bcbd8bcc69693688617813d58ef6fe2d3d7d4f55d3d3657b889994d7e07ebcd59
315643a0fe60aeb5e65bcf294ba4dc596b5a6cb32ea114ae8cb1dbc714124370197668e7f5f8c74df
9472ff00beda8aa33f3294b7e5df9b14753a3df807dcdb3e2ac8ed052d600773e9a6e7fd518aa53e7
5dfc9de61ff00b665effd43be2af38d7fccda9f97754fcaf5b4bd912c2f34dd4a4d474c0e8915d2e9fa3
9ba8c3165665e2ea3e25ff65cb15768bf9e8fa95fe996977a225b26a52e8910922bcf54a7f88ec65b
cb6a830a54a7a2c92efdd5939fd9c55167f38ef21b5b5d4ae74487f47cf6fa25f3a5bde99ee85bf982
492089523f4143ca92466abcc2b2fd96e5f0e2aa363f9dd26a2fa35bdae88af3f986d34bd434c93eb
74b78e1d62578522b99042c5278d93e38d55f90e5c5be038aa96a7f9d579e5af2e49adebb616571
730ea9a85a4f616174deac76761a9269fea5258c5594c8ace5b82f4a7db0a1561927e6279cf47bbd
33cc07cc5f5af2de83acf9bdfcd76732452b5ce83a66af1d8a3a18d0307b28e6f5870fb71c6cadc8e2
a9d797bf34fcca3ce7e776d51beb16cf75a2db795745b9961b2b7b38751d3a6bc5371232d55e510f
26e658abbac4a315640bf9d572dadc7a0b6831c778d7fa5691293a8472225e6b3a7c97d18e5144e
ac91988c6eca4f2fb680fd9c55da4fe795b6b568350b2d1a416b17e874bc59a758e5e7ae81e9b403
8912c71b1e323d57ecc9c57e0a62aa9a77e71ea37fa4793b59ff0d30b4f3d59a4fa234375eb85bd9
962923b5b86108085a26965f507240b049de98ab298ff00f2695c7fe03f07fd46cd8aaff35827cc9e4
800f12754ba1c852a2ba4df6e2b518abc77f2eff367f322e6cb47f30798a09354f2d5fdd5f6917f7525
b5bd9d3521ab358580b231372911d158dc738fe12bfbb72cde962accfcd1f9bb77a7e99af2fe85bfd
32e747d01bcc37d721ad249ede2f56e610a9148595e4e56cc68f45e2cbca8d55c551975f9dde5eb4
293496772da7cda8eaba1c374387fc7434589e49524426b1a3fa5208dcff282fc55d09552fd5ff342e
7ca9a9de5c799a79d74db1bfd5f95bda476f2a1b5d3f4882fc46eeca8f5059ca32d37a2ca78ef8aaff3
a79cfcdd0eb3e5cd3f4b4bbd317529b5382586c23b2d526b95b6b04bb8258b9921579b7060e6327
d94a498aafb7fce2b8d3255f2ff009a348ff9dbed349b9d4752874eb8866b6371a6dadadc5cc4adcfe
027eb2046b210ff000b547a6639245530d7bf372dfcb3717167abe91325e5bc37d3b436f3c53ffc73f
4f7d4882cbb217890840e55f97ec7a7fbcc5500df9eda45a9965d5748bbb3b18248a29ee43c53713
71a349ae46422b54fee22646fe59683e24f8f156e7fce76b6d62cec6f3cbf7563612d9ea9a9cb7774
e8acf69a5da5bdc87b74152c1cdc703ea7a5c5a36e3cd78b62a9bcff00995796fabd8e8cde59be37
37ff005f7818c90a2bc1a6c56f33c881d958f3171c5032ad5d1ab44e2e5542e9fe6ab4f3aea5e4cd6e
c11a0856fb508a4b7908f5a3923b09434734740d14884f178a4557561d2942557a562ac2d3ff0026
d4e7b7f8761ffa8e97156698abb15762aec55d8ab0df317fca7fe4aff5755ffa878f157fffd6f5ef96758f
d0371e63b3d534ed4a3925d6af6e2dda1d3eeee229209b83248b24313290d53df154f34dd13caba
a6a4de69b7d24c5aa9918b5c5d5b4d6b2997d210990c532a55bd3fddfa9c6bc3e0e54c550b3f927c
83a2e8e2d22f2e5b43a5c3706e92d6c2cd9996e250632e896ea5c5558a1e3b7a755fb18ab1ed3f4
5f24daf9875df30dde9b7b7d3eb4f11fabdc68d7661b78a2b24b031c68602bc5a24e2db74665fb0dc
715575f2c7e544ba6d9f970f9455b48b377fa9d949a2dd7a111ba5f4a40394140ae87838af1e1f0b7
c23154dfcb367f97b3dfeafa7f96ac6d63bdd1ef38ea09143e998aededfd02f1920758b941ce3fe478
6bfbb650aa0e4f2b7e59e837ba704f2d24777a1c461d2e4b5d36e2616f0c8cd27089e2899400cccc
141f819891c4e2a844d03f2aad9638e1f2bbc690456d044b1e917a02456339bab745e30ec2298fab
181f61fe25df154ded3cade42d6ccce9a12352e21bc7fad5a4f6f4b88a533c6f189d529c65ac8386cb
27ef3edef8aa6f67a71d1a7d535ad46edefae2ecad645b750f1da425cc502ac2a5df8191f73c98f2c5
58f79e75db4d5bc95e63d2f4eb6bf9f50bcd32f2ded601a7deab4934b03aa2826100124818ab37b6
0cb6f12b0a30450c0f8803154bbcd169717fe59d6ac6d23f56eaeac6ea0822040e52490b2aad4d06
e4d31560fa77995134cd2e0d4ff2ff005cb8beb2b48ad4c925859ca52918475566b826877069d715
440f3469c0861f973ad0642854fe8db3a8310a211fe91fb2365f0c55b4f3469c9c4c7f975ad294f4c25
34db314f44968e9fbfdb8924aff002f6c557af9bed3e21ff2afb5d5065172dfee3ad379c6e24ff7a377ff
002bae2ad49e69d3a6e665fcbcd6a4f51dde4e5a6da37279942bb1acfb9600063fb4315745e64d2e
cd925b6fcbcd622901902345a65a2b0f57fbcdd6614e7fb5fcddf155b71e64d22f3eb125e7e5deb13
35e84179eb6976b234a22a32092b29e5c48f86b5a62ae5f3268f34c6e9ff2f3581721e3984cfa55b7
33244b48d837aa4f25068a7f67156ffc53a4c42303f2fb5a51023c3005d2adcf08a4af245e32ecad53
503ae2a805d6ed62d5ec352b7f2cf9aadb4ed2e030d9e836fa7c1169a92bf2fdff00a68437a815d90
7c7e981fb1cfe2c5536f2e5edfebde7cbdd71b45d474ad363d22decd5f53856dcc93fd66594aa2877
278a9153ef8aa61e71578f57f295fb4134b6567a8dc3de3c1149398e3974cbc855996256600bbaad
69d5862a838ac3f2de0f2ecbe508b4151e579cb997473a45c9b36691fd5626236e56a5fe3269f6fe2
fb58aa93e8df961241716b2797a336d77631e91730fe89b9e1269d0b174b661e850c4acc484fb3bb
7f31c5516d0fe5ffd62f2e9f460d71a844d6f7d21d2ae58cf13c6b13ac9580f20d1aaa357ed22aa9d9
462a84b3d2bf2c34ef43ea5e5e8e0fab195a1e1a45c82ad7308b694ff00bcfb978808989eb1fc07e1
c5552cb4bfcb6d2c696ba6e82966ba1b4b268eb6da5dcc62d5ee4525310480052e366a751b1db15
52bed1ff2bb51bfbad4effcb915c6a579cfeb776fa3dc19a5f562103f27fabd4f28c046dfe25014f4c555
2f74afcb3d4a79ef350d023babbba411dcdc4da4dcbc922080db5198c1535858c47c63f83ece2ab2

0d2bf2cada74b8834154b88e586e1241a55d72135bc06d22704c1d52163129ed17c1f67156adf44f
cacb4b5b5b4b6f2dc115a59492cb690ae8f3858dee53d294a8fabedcd3e06ec57e1e8315769ba3fe
57e9a2d23d33cbd15a258c73c16691e91731ac515e80b3aa8f4000240aa1ff0099556bb018aae10
e947cc7e5987cbba7c905adadd5edcdeb259cd6f1a992ce48f9bbc91a02598aaf5af4f0c559ee2ac2
509ff95bd30a1a1f2dc46bdb6bf93fae2acdb15762aec55d8abb1561be63ff0094ff00c95feaeabff50e
98abffd7f7f62aec55d8abb1549bcd5ae3797b43b9d4628beb17df05be9d683acf7b1610000026060
f002220574d464301000000000001000000000000001900000000200000a08e0200a00e030072e
21b78bfd948ca09fd95ab7418ab181a68f23c9e5bd62f5feb12b46ba27987525aaabc97d2fab1dc3a
740bf5b7651fefbfac37ecf2c55e818abb15762aec55d8abb15762aec55d8abb15762aec55d8abb15
762aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb15762ac2957fe42e3bd0
7fca3882bdffdee6c559ae2aec55d8abb15762ac37cc5ff0029ff0092bfd5d57fea1d3157ffd0f7f62aec
55d8abb1561be7087cdefad68575a0e9906a7a4e9e67babcb696f05a48f74504507da86405115e4
73b83cfd3f0c5522baf3379a7cd316bfe55b8f237ac96d4b0d4546ab6dc7fd2add265284a29d92406
b4055ba78e2acf7cbcdaab687a71d76116fac0b7885fc4b289c2ce1407a4802f2a9deb4c5532c55d
8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8ab
b15762aec55d8abb15762aec55d8ab0c43ff00216261b53fc3b17cff00dee93156678abb15762aec5
5d8ab0df317fca7fe4aff005755ff00a874c55fffd1f7f62aec55d8abb15762ac43cb057fc63e7951d45e
5816f99d3a0fe031565f8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55
d8abb15762aec55d8abb15762aec55d8ab1df3e6ab7da1f9335dd5f4d9043a859594d35b4ac8240
922a9e2dc5b6343bd0e2ac7ecd751d42fdac6cfcff00a8493f39e251fa3ec044d259bfa73a2486cc2b
346df0b80c686be07154dbfc39e6902a7ced7b43b0ff0043d37aff00d23e2aeff0e799d082fe76bea0
a6c6cf4c03fea1ab8aa0afed756d32f2c6cef7cf77915d6a92c90e9f6e6c6c18cd2450bdc3a284b6ad
4471bb7fb1c5552f34dd76c74fb8d5ef3cf17b6fa75b40f773c8f6360be9c31afa8cc54db721451b8a5
715487408ec3cc7ac7e95d17cfb2dd6b6fa6db4eae6c6c22b96d26f19a4b791564b64630c8c18a38
1c4b6dcbb62ac9dbcb9e691b9f3adea81527fd0f4de9f4dbe2ad8f2e79a57ed79d2f4fb1b3d3874f95
b8c55a9742f31c28d24de75bb8a28d4c923b5a69ca151454924dbd001e38ab50685e629e38a683
cef7734322092374b5d3595d18543022df7041d88c550faa69de69d274eb9d453cd97572f689eb08
25b4b008e1372ac5205343ec41c557f98bfe53ef257cb55ff00a874c55fffd2f5ff0097ac350f324baed
e5f6b9a943f57d62faceda0b699228920b77088a14467c3be2a9d9f28c9dbcc3ac0ff00a394fe3162a
c6fcc23f40ebde58d08eabae5ccfe66bb9ec60952ee14484db5ac976cefca2a91c226a71fdaa62ac7
b59d7f53d27ced61e4711798ee352d52df50bfd3654d4ac9566b5d2de1495a8c9f0b319d7d353f6bf
6b862a833f983a245e59f396bf36a5e65179e49bab8b2d4b464b8b77ba95a0a98e486a8aa629555
991d8a8011f9f1e0d8aa6da25d7929a01adc9e6ed474ad4b5bb0875bd4209efa2e6b147651cdfbc6
31700d1db956755fd8fde538fc58aa32cbcc1e43d42ed6c2d3f312f5ee98c8a236bc8d3e2861fac38
25e1007eebf7a2a7e28bf78b54df15559b58f25dbdb2ddcff009817f1c4f32db206bb40ed349109d10
27a1c89688fa8bf0fc51fc63e1df154cf4cb5d1f5936eba679c754b96ba865b9b70972957860944323
80611b2c8789f7c5535ff0007cbff00531eb3ff004931ff00d51c5541f47bbd1751d2678f5cd4aed26b
bf426b7bb9639227468256dc0894ec5411438ab2dc55d8abb15762a83d5b54b2d134cbcd635290c
5a7d8c2f7173205690ac7129662150162683a015c55216f3ee9aa481a56b8d4f0d1b50dfe5587155
bff002b034ce3cbf456bb4f0fd09a8d7eef4315737e60e963a695aeb7cb44d4bb7fcf0c55a1f985a5d
68749d787fdb9352fe1062ad9fcc2d247fd2af5d3df6d0f53f1a7fcb3e2ae1f983a5115fd17aef7ff00a5
1ea7dbfe8df156c7e6069277fd1bae7fdc1353ff00b27c55dff2b0348ffab6eb9ff703d53fec9f1577fcac
0d23feadbae7fdc1354ffb27c55dff002b0748ff00ab6eb9ff00703d53fec9b1547e87e6dd27cc17777
6164b7705f59470cd716d7f677363208ae0c8b1baadcc71f2563138aad7ece2a9e62aec55d8abb15
61ff9abff0092e7ccdef6132ffc10a62af34f397e5e6bba7699e7bd674bb31671eada3eba754b0d2ae
2e6ec6b3a85d4456ca64b2f4e905c8a0324907c5239e2dea0f8d5552b2fc9bf3289aeb53b2fa9db6
89acd9dcc23ca8f2ce2d6c2eaeac6da14d4613e9ad2e7d489da450894127247f5b9b48aa683f2875
b8f4fd5e2e3657badea3770c72eb577349f59b8b04d2e2b5691cfa2fc246ba4372d100cbf13719165
3cd554a742fca4fcc5b5bdd1e6f303697abcda74f35d4dab4b79706f1e1b8d05f4b364395b1251266
f515f9a8643c9904bc8baa9bffcab1f39dcc5ab5bea434ebdfaf692906977b35d5cfd634dbafd0c74c9
6d6355882c96ef2169fd4620fef24e503b8465554ee7f267525fcbcd1f41d3a0b15f368d1ed743d735
2b8b9b8918c363a7cf6f0082731b911c7712fac13d34d8b15e12f16c550363f93fe71486f2eb50834c
b8d6aff58b4babcb892ee799db4c8f4982d268d247808573750fae55a36475666f826e2eaab6ff009
35e69bcd62cf56d50585c48b79e5f92f03dccf233d9e99a74b67a845c9a215170cc958cd12655fdf7
4031555d1ff29fcea3405f2ef9862d32f9ce86fa643adc979752dc5acaf61358b4021f4556681b9abf2
7714e4f58999236c55bd3bf2abcf1069f7fa7df41a54ad2e91f53d26f92faf125b277d1934d7b158e38
511a0f593d7498fd9e6c7eafeb05931544ddfe5beade5d9a1d534ffaa58e8961a5b5a5fd9c4ef2acee
f6efce48d1914c52fd61d999d5fd39a266f562f5823aaacefcc5ff0029f792be5aaffd43a62aff00ffd3f6
77e5f306b7f3150529e60d501f9faf8ab30c558879cbc9977e66d4fcb9ac69fac3e91a8796aea7bcb5
75b78ee9256b9b592d195d5c8d824ac7623e2a62a96dafe5a5e0f387973cedab798ee353d5b40b5
d52cd9648228e3b84d6258e47d929e9888431a46abfb2bf17266271549eeff22b49be8f53b99f55b8
5d7355d3757d1eeb5086358924b7d66e259d5a4801e32496a279a3b677af0595eb5c556695f9156
ba4daea1610f982e64d3f52d3cd9cd0496d6acc978fa6ae96f7314a50ca81e24566843fa7ea6fb212

955

98aaed7bf22b4af32db4da76abab5c369775736d73756f14491bbc76da3be8fe989012579248d272
1b87a7eced8aa75a57e58ae9dadd9798a6d5e4bbd66196d5efae5e08d3eb51e9f633d8c0a550808
40b99247651f13b6dc630131545f90bca3368373aeeb9a8446db51d7efa4bb1a7fd60de45630b509
86190aad16497d4b9755017d499bf971566b8aa4fae7fbd3a27fdb407fd43cf8aa718abb15762aec5
58a7e66ffe4bdf3354547e8eb9dbfe799c5595e2aa73cf15b4325c4ee238225692591b60a882a49f6
0062af12b2f3a79a3cbbe63d4e6d69d95bceba55c6b5e56b7d4670da659dde968105a0780334692
c125bcae48a9952e197154c6d3f313f30eea6d053f422429ae4f75a3cc9716edea69dabd9cc5c99d
a1b992396d9ada39992489fe3951371eaf04550baa7e6f799345b90f7d6f652e953b5ca1ba821b83f
508ed75c8f4a6b9b9a48fce3114a2670a23e3c0fc7e9fc48aa035ad5ae754f35336a3abda3da49e5
492e1ae22bfbdd2f4d69535178feb117a6fc83fa40d181aff0023b250e2a9aeb7f9afe60d022d652d3
487bfb2d1adacf55b6d465b7ba58a6d175048e286566f8dccd14a657b95e3cbd1859b82175c550b
e61fcdaf36e87a7fd7ed7f43ead05a594fa8dccf66974f0dd4706a76d68a90485942978ae2bcc0991
65434e6b5e2ab39fcb0d7759d7f42d42e75fbb86e752b6d6758b2e30c3f57315bd9ea33c102ba177
35f491181fda520eff68aacd71562563ff93335cffb62693ff515a8e2acb715762aec55d8aa55e66d0a
0f33e81a8f97ee6692da0d4607b77b8838fab1f3140c9cc32d41dfe25231549bfc31e6ff00fa9e2f7fe
9074dff00b27c55dfe18f37ff00d4f17bff00483a6ffd93e2aeff000c79bebff29bded3b8fa8e9bff0064f8
aa0eff004cd774bfab1d47f306e6d45edc476769ead9e9abea5ccd5f4e35adbeecd4d862a8bff0d79
b77ff009de6f05373fe83a6f4ff00a47c55826abe63f36697f983a6f935fccf7ada4ddc329bcd79adf4c4
8edef034222b711fd5896e5eba066e4bc5a5897e2e4dc55679fe18f37ffd4f17bff483a6ff00d93e2aef
f0c79bff00ea78bdff00a41d37fec9f1577f863cdfff0053c5effd20e9bff64f8abbfc31e6ff00fa9def7fe90
74dff00b27c554ee7c9de63be89ad6ffce37b71632d05c5bfd4f4f4e71d412bc96004546d51be2aef3
17fca7de4af96abff0050e98abfffd4f6a4ff00975e589aeeeef556feda6be99aeae96cf54d46d2279e4
0033fa505c2202d41cb8a8ae2ab3fe55c796eb5f5b57ffb8e6adff6578abbfe55c7973fdfdabffdc6f56f
fb2bc55aff00956fe5bff7feafff0071cd5ffecaf156ff00e55c797294f5f57ffb8e6adff6578ab5ff002adbc
b74a7afac7fdc7357ff00b2bc55dff2adfcb9ff002d1ac7fdc7357ffb2bc55dff002adbcb7b7fa46b1b7fd
af757edff004778abbfe55bf9777ff49d637ea3f4e6adff006578ab43f2dbcb80102e759dfaff00b9dd5e
bff5178aa2ac7c8ba169f7f6fa94526a335cdab19205bbd5350bb855d91a3e4629ee1e3278bb5095
db1564b8abb15762aec558ef9fac2f755f24f9834ed3613737f75617115b5ba955692468c85505caa
824edb9031552ff0017ddf7f2b6b5f3f4ad7f85ce2ae7f375c8dbfc2facb03e10db7f1b8c5568f37dc95
a9f2aeb43d8c36d5dbfe8e7154b1af6c5f5e8fccefe51d75b5886dcd942ec10c71c458b12909bbf495
cd686409ea15f83971db1544eabf9836da1e9577ad6abe5fd5ed74db189ee2ee77820a24518ab12
16724edd8549ed8aa221f38fd6a28ae23f2ceb0f0ca16489feaf0105585411fbff00038aab8f35cc7fe
99dd5fc7fb887feab62ab7fc572ff00d4b3ac741fee883eefeff155cbe6b97fea5dd5d6b4affa3c5f2ff7f
62aeff164f5ff00947358a52b5f421fbbfbec5505a07d7eff00cebaceb92e9975a7e9f2e99a6d9c0d78
a88d24d6f3dec920554773451326e69d7156638abb15762aec55d8abb15762aec558c79e3c9d07
9d6c74ed3aea544b4b2d4ecf539e1962f5e39d2c9fd4f4594b2ece69beff00ea9c5584c9f929753c93
b4fe6490a4fa4c5a332456e6327d0166639d8fac79bab5a54070c9c6468d9593973553e9343b1b6f
38796b49b8860b98ce89ab25e560444b8904ba60791a300ad58a827af6f0c559fe2aec554ae6ead
ace16b8bb992dedd29ca5958220a9a0ab3103ae2a801e64f2e9e9abd91ffa398bb7fb2c55bff12797
7feaef65ff0049317fcd58ab10f306bda1c9e7bf274b1ea768d144baa995d678caa03046a0b10db6e
40df157ffd5f7f62aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb15762aec5
5d8abb15625e648edf5fd7f48f2a49272b7808d7355b5a544b05a3f1b68dcf40ad70564a7edfa0cbf6
7962abbc9af77a7b6a5e52bf2f249a2ca0e9f70f53eae977459edbe23d5a20ad037fc62e5fb58ab2b
c55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb15627a90a7e637975a877d275
85af6feff4e3be2acb315762ac4bf3060b5bad374ab7bd8639ed65d6b4b49219943a356ed00055aa
0ef4c551971e5bf23599816eb48d2606b990416e25b6b64324ce09089c947262149e237db1557ff0
7f94bfeac1a77fd21c1ff3462ab97ca7e5640ea9a1e9eab20e320169080cb50d43f06e2aa0fd18abff
d6f7f62aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb15
79bdb6a1e60f2bdef99f5ed4fcad7f7ef75712cef7f6f3e9de9ae9b64856da38d64bb47e2115a420aa
9f565936df155c9abf99355f3379775ed3fcafa9d9da4a8d69aa35d4ba7fa06c2ed04c929f4aee46e7
0c88b40109e324ab8abd1b15762aec55d8abb15762aec55d8abb15762aec55d8abb15762aec558
a6a6f4fcc4f2e47c41e5a56b079771c66d3fa7ceb8ab2bc55d8ab14f3e8ad868fff006ddd23dffe3fa2c
55de7af28b79c20d12d84cb145a66ad6daace1b9832476cb2028ad190558971f1571562737e5d79
f2e1ee8379a4c314fa7c5668617b9a8ba83ea652e183b3024b4128910715923978d159a47655e8ff
0054bdfd09f51f563fd23f55f43d6a49e8fade9f1e54f53d4e3cb7a7a9ce9fb7cbe2c55fffd7f7f62aec5
5d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb154a3cd7ff28b
6b9ff6cfbbff00932f8aabe85ff1c4d37fe6160ff936b8aa618abb15762aec55e79f985e65f36f96f56d3
aefcbb6ada8e9f1db4926a5a70b6966f5b95f5940be9c908aa4ab1cb338af25e28c5a3f8792aa92e9
3f993e7dbdd662b1b9f2c48ba51be82de4d412d2ea3636f729011288a62a42a3b4d1cadc99d38a3
b41c3d428abd7715762aec55d8abb15762aec55d8abb15625aa547e63f967c0e95ad7dfeb69d8ab
2dc55d8ab13f3fb14d3f4623feafba38ff0082be887f1c559662aec55d8abfffd0f7279a74bb9d674a1a
75b3bc625b9b4370639a4b6736d1dc46f3289222ae3946187c2457a62a8bd2747b1d12d7ea7a78
945b9732113cf35cbf26a57e39ddda9b74ad315623f98b69e54f2f685acf9ef5db5d4aea1d3a0facde
45a75e5f2398e3e2a59628678d0051f13903650ce71552f2d799bc9fa0e90d7f732fe89b1be9795a5
cdcea4faa5bddc0b144ff005ab79da597f7004a159fe0556fb74daaaa5d1f9b7f2d7ce5a8ea716b379

2d86b7a24b79657362da85d5a3fa5a7de1b569552da64470d232d281a4fde468dbb28c55bbdf367
e5e79074c87cc5a4cf3ea126a0f6d6b0db2df5d5dc8c9737d1d8f2e1732b84e133f16e411b92b47f6
be1c551be65f32f90358b01a8fd71b5696d2249e2b6d36fae2d6436f717a2c5a4a432c4195665653
cab428ca315743aa7e54795353b994ebab6ba8e9a522b98eef54bb9821b994db28f4e799d589941
8b656e32fc1b3e2acb6e6cb45f37e97693bc925c69970a9776b2db5c5c5a175912aadca078d882a
df64fdd8aa16cbc91e5fd3eea3bdb55bc17113074326a37f325474aa493b29f9118aa6fa969b6baad
ab595e7a86062ac7d19a5b77aa9a8a3c2c8c3a763be2a93f94745bed0c6b56d732c9258cba93cfa
4acd712ddba5a35bc038f3999d87ef5643c4b77c5591e2aec55d8aa4fe687ba4d12716773259dc48
f042b7508432c6269d23664f515d79518d392b62a95ff0083353ffa9cf5df1eba77fd90e2ac634a9a3
d5ae2e45bf9c7cc49616b35f5acda948fa40b549f4b98413c72116a5a36e5ba89157928e58aa6ab6
16525bc5789f991a8b5a4d29b686e16e74931bce0f131ab0b3a17045388df156e7d32d6d649a1baf
cc7d4a196dc069e396e749468c337105835982a0b6dbf7c552af31dbd8595d59795f51f3b6bb3dd7
9856eada2b685f49e5c12ce6b972fcad14a2b471b057fb3ca9b8eb8aaaea36d6be58f2fcba85d79df
5c4874dd324d48e9e92692f786cece0323944faa7c65557a86e24fed62aa3a0cf26bd15a5c8f33f99
b4fb3bfb4b6beb2babd3a2a452c77b4f45018ede42b2302288c158fecd687154f4e80e248e13e7ed
5c4d27331c665d283308aa1e83ea553c687953ece2a80ba4d2ecdece3b8fccad495f50bb4d36c94
4da5b996f64432ac2bc6c8fc6514b53f977c553aff00076a9ff539ebbf7e9bff006438aacf264ba947a9
79a347d4354b8d5934ad4208ad2e2f0402758a6b0b6b8284dbc50a901e4623e1ae2acb6a2b4aefd
698abcd7c8da4f987ccbe4fd13cc1a979c7594bfd4ad22bab848469c91079579108a6c890057615c
55907f83b53ff00a9cf5dfbf4dffb21c558d6bb28d0b57874197cdbe63bad5e7b1b9d522b4b7fd1465
7b5b264594c6af6886470641f02726fc2aaa68ba65b3de3e9ebf98ba91d42346965b4fac693eba47
1d393347f53e402d472246d8aadfa8d97a105d7fcac8d405b5c37a76f37d6748f4e47e4138a37d4e
8c79305a0ee462a85d4869fa66877fe6197f317549b4cd39656b89619f4871ce042ed103f540bea1
03642462abf498a3d4b498b5eff001beb76ba64b05bdcacb7926911811ddc293a73a5a1e078b8a8
6a7b557e2c5521875f8eef57f30e8ba7f98fcd57b75e59b9b1b4d45a01a31576d5218e781a0e56e0
c8a639031e2397f2ab1c55947e8cb6fabfd73fe5636a5f5411b4febfd6349f4fd146e0cfcbea74e21be
12d5a72db15424de59d2df55b4d427fcc2d48ea96d6f3ada335ce94185b5cac73ca428b300a95851
f91068abcba62a9259798f49d53513a7e91e76f30ea08da0af9aad6f6dff451b5b8d36491a2531bb5
a03ccb29d9828ff2b154eb49860d634bd3b548fcfbacdaaea7631ea96f6d7326911dc2da4b18943b
27d4cd0053563d078e2aa1aee85a5dee8cfa8ddfe606a93e9da5dcc178d2c53e9257eb362cb7291f
2faa05e64aa9e24e2a80f2c798b48f33457d341e75d7ec2df4fb6d36f6e2e3523a4dbc621d62d45dd
b90df5522bc0fc60fd96f1c5593c5a31b8bb96c2dff00303549afe25f524b48e5d29e544a0dca0b2e4
07c4bb9f11e38aa0bfc47adff00ca93ff00157d6cff00883fc3bf5ffaf708ebf5afaaf3f53871e15e5f1538
f1ff002698abffd1f766b7aafe87b486e8c62412dd5a5a105b801f5bb848395687ecf3ad3be2a98ab2
b0aa9047b6f8aa57afd8cdaae9cf6565aa49a4de8921962bd83833a18645938b2480ab2385e0ea7
aa337cf1579e68df92565a16b07cc3a06bf71a76ab75757b36acb6905b8b29adb52681a5b78ad9d
5d2001add1d1d0f3f50c8efea73c550dacfe4559eab3dadcc9e65b9b3bcb1bbd5b52b19e18600d15
e6ada95bea8af4903ab2c325b2284604491f30fb9a85517abfe4d0d6a57b9ff145cc1777d6f6106b8
d0dbdb7a774749d41b51b6748ca910f191e4460b50f1b7c5f18e78aa969df9256da43df18bcc770d
14f09b5b28a6820a5bdbfe966d5f892bc4c8c24774e469fbba6dc872c551507e505bc309b083cc13
369906ad0eb1a5dabdbdb3bdb98b521aabc0d30559254330a2f36f823fe66f8f157a81217a903e78
ab41d09a0604f8038aaead3154a345d6c6b173acdb887d2fd117e74f2dcb97a94b7827e7d053fbee
34dfece2a9be2aec55d8aa4fe68ff008e4353fe5a6cff00ea2e2c5538c55e2bf995f95b7377a0f9bf5e
d3608ef7ccfa9797757d1dedf4fb65827d55ef940b51743988dde12005908e5bb1e4a954c555e5fc8
d82f353d7b5f8f515b49fcd7a65d697aa69ff00541f55862bcb4b5b612431fa8384c9f56e4ce6bea73
e2df617154dae3f2911bcbf7de5fb5d4238e3bf9dda7ba92dcbdc496afa78b111c92ac88e5eaab2b4
8acbccd519783362a93797ff00232f743b6d36c64f30477b6da6dc5cdda34d647d6792f3476d25e36
6f5c8f4c72f51011503f755a0e58aa61ff2a86f4699e61d206b36f25aebf642d84d3d8096e6ce73a42
690ed6f27ac0ac6ca824f4fed2969139f17d956c7e4e46de556f2a9b9b2b38ff45d95947a969f61e8d
dfe91d24a3d85f16695872b774322c74f88b7c4f4c5556dbf2856dfcc326bb35fdb6a2f3c363c9f51b1
59eea0bcb18a589ee2da5f5008fd7f59d9d781e2cce51be3c5542dbf25e3b5d4f44d4e2d4a246d1a
e345b95852d38a4ada2d85dd8356926c655bbe60ff00bafd351f1e2af57c55e6b61a5799ef3ce5e76
9b45d7d34bb51a859abdbb58c77459c697684b7367522a0814f6c5580fe675ef9b2d66b7b8b5f35d
acb0e93eb49a9f99ed60b68aef4710b01294b759f9dcd006f5a03f0517e2573f0e2af50fc9a992e7f2
9fc97711ceb74b2e8d64ff5951c564e50a92c076a9de9db156718ab0cf3ff0090d3cf9a7cfa5ddcb6e
96f241c6cee24b7f52eec2f031297969307568e54d8ad3f6957b72055609aa7e513f9fad7cc3a76ab
24ba285d6ef6eac6fc5b27d6a7f56ce2b78e6f53900f13306324745f578f16a2e2acb2cbf2c21b7f345
d79aa7ba865bdbfba96faea0fab0f412592c2dec54c2aeedc48fab891cb723231edc462ac497f20af6
2d5afb5b8bcc8bf5dd46d9ecef2192cda4b7713e9aba74b2716b82448782c88410a839c3c7d36f85
5649a7fe56dee9716946d35785ee3496b264135a335bdc2dae9474a904d189813cd0fa8946fddb7
c3f1ae2a86b0fca5bed335cf32ebb6ba8e9d25df982e34cbb81a6d3037e8f9749b48ad2368144e16
b48f9a8d9509e3465eaab579f92f172b86d2f57f4205d762d7f4bd3ae6d52e2c6d97f78f7366630c85
e19a69e69bed2fa523af0fb1baa8eb1fcaa834fd412f609ed208925b075b6b5b15b68a38ac2d2e2d0

957

c512a3d110acff00fd80bc7e3e55c5528d03f23e0d1e6b092eefedb528f4df2841e4cb58e6b214a5b
48ceb74794ad427951a35a7faf8aa1351fc8abed4d7478ee3cc7198345d3e3d36d6316007c1fa1ae
b4894d5660583fd67d61cf9b2327a61b862a9a2fe4f4904ba74f6bab471369d10816dfeaa7ead2a3e
92ba548648c4a2ad4412466bf0fc519e5cb962a96693f91371a34f69750eb56d75259a69508b6bcd
3ccb6b345a5e90fa4b2cb1fae0d6457f55486fddb0e3f1ab1c559bf947c8d0f95354f316acb2c1349a
e4b6b2aac16ab6de8259d8c167e98e2c4153e80700050b5e3dab8ab1bff00d776affdfad5e83fe58e
bd3a62afffd2f7a6a3a669dac594ba76ad690df69f38026b5b98d6589c290c3923820d08071552d27
44d1f41b5363a2585be9d645cc86ded224863e6d4ab7140054d3ae2a976a3e45f25eb17b2ea3aaf
97b4ebebf9a9eb5d5cdac32cafc4051c99d4934000c551ba3797740f2ec72c3a0e996ba6453b0799
2ce14815d80a02c100a9a62a97f99bcb9e48bd8e7d7bcd9a4e9f769616eef35f5f5bc5318ada10d2
37c4eac42afc4698ab09fcbbf2c69de50d7d75682c20d323f3c4325e7d4da248e7b5bb8e9225ac5c
000919b6552d08d96581e4fb4ef8abd0f58f2bf96fcc2d13ebda459ea6d006101bc8239ca07a720bc
d4d2b415a62aa1a6792bc9fa2ddaea1a3e83a7d85f20654b9b6b58a19407146019141dc75c55

17.5 An Extended ExampleA Mine Control System


The example that has been chosen here is based on one that commonly appears in the literature. It
concerns the software necessary to manage a simplified pump control system for a mining
environment; it possesses many of the characteristics that typify embedded real-time systems. The
software design is based on that given by Burns and Wellings (2001). It is assumed that the system
will be implemented on a single processor with a simple memory-mapped I/O architecture.
The system is used to pump mine water, which collects in a sump at the bottom of a shaft, to the
surface. The main safety requirement is that the pump should not be operated when the level of
methane gas in the mine reaches a high value, because of the risk of explosion. A simple schematic
diagram of the system is given in Figure 17.2 (taken from (Burns and Wellings, 2001)).
010009000003627c010000007fa8000000001610000026060f002220574d4643010000000000010
0ec2f000000000e00000000200000f4840100f4a40100010000006c0000000000000000000000d2
0100004201000000000000000000006a400000792c000020454d4600000100f4a401000c000000
010000000000000000000000000000000005000020030000c40100001a01000000000000000000
0000000000e3e306006e4e0400460000002c00000020000000454d462b014001001c0000001000
00000210c0db010000006000000060000000460000005c52000050520000454d462b224004000c
000000000000001e4009000c00000000000000244001000c000000000000003040020010000000
040000000000803f214007000c0000000000000008400005a85100009c5100000210c0db010000
000000000000000000000000000000000001000000ffd8ffe000104a46494600010201004800480
000ffed0bfa50686f746f73686f7020332e30003842494d03ed00000000001000480000000100010
0480000000100013842494d040d000000000004000000783842494d03f30000000000080000000
0000000003842494d040a00000000000100003842494d271000000000000a0001000000000000
00013842494d03f5000000000048002f66660001006c66660006000000000001002f6666000100a
1999a0006000000000001003200000001005a00000006000000000001003500000001002d0000
00060000000000013842494d03f80000000000700000ffffffffffffffffffffffffffffffffffffffffffff03e800000000
ffffffffffffffffffffffffffffffffffffffffffff03e800000000ffffffffffffffffffffffffffffffffffffffffffff03e800000000ffffffffffffffffffff
ffffffffffffffffffffffff03e800003842494d0408000000000010000000010000024000000240000000003
842494d0414000000000004000000023842494d040c000000000a6a00000001000000700000004
d000001500000651000000a4e00180001ffd8ffe000104a46494600010201004800480000ffee000
e41646f626500648000000001ffdb0084000c08080809080c09090c110b0a0b11150f0c0c0f15181
31315131318110c0c0c0c0c0c110c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c
0c010d0b0b0d0e0d100e0e10140e0e0e14140e0e0e0e14110c0c0c0c0c11110c0c0c0c0c0c110c0
c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0cffc0001108004d00700301220002
1101031101ffdd00040007ffc4013f00000105010101010101000000000000000300010204050607
08090a0b0100010501010101010100000000000000010002030405060708090a0b10000104010
30204020507060805030c33010002110304211231054151611322718132061491a1b1422324155
2c16233347282d14307259253f0e1f163733516a2b283264493546445c2a3743617d255e265f2b3
84c3d375e3f3462794a485b495c4d4e4f4a5b5c5d5e5f55666768696a6b6c6d6e6f6374757677787
97a7b7c7d7e7f71100020201020404030405060707060535010002110321311204415161712213
0532819114a1b14223c152d1f0332462e1728292435315637334f1250616a2b283072635c2d2449
354a317644555367465e2f2b384c3d375e3f34694a485b495c4d4e4f4a5b5c5d5e5f55666768696a
6b6c6d6e6f62737475767778797a7b7c7ffda000c03010002110311003f00f554924925292517bd9
5b1d658e0c6301739ce30001ab9ce7154ebead8f757eb63b1f914b89f4ada47a8cb0068b3d4aada
cbaaf4ddbb6b1fea7becfd1a4a6f24aafdbd9b4bbd1be047f827cea1cefa3b777e6a6fda15c91e8dfe
d207f34f8d7b8f6a4a6da4a98ea4c355767a1903d404ec353f70da763bd46c7b3fefff00e0d16acbae
c6b9c1963031a1e77b0b0c104fd17c3bf352527490dbeb992edac9e1b1247f59d29c6f3c39bf77fe6
49299aaf99895e53181fba6a76f6161dae0edae668efeda2c59fbc3eeff00cc93c59fbc3eeffcc92539
5662e5bb20dc2ac9f789d832a180fb9d1e983fbc50f23d4e99d25dd41f4e5e4e452187ecac7bafb49

0fdb0cf4f7eedfea6fbf67d3abf9cfe6d6b6f7b1e1b6410f30c70d35e7639baa7bff997ff0054a4a7ffd0f
55492492535ba91c71d3b28e554ec8c7f46cf5a86b77bac66d77a9532bff08eb19ecd8b2feaa5fd1b
23eaee0dbd2f0acc4c0731df67c7b184b9a03dfb8b8eeb77faafdd6fa9ea7e977fa8b6328649c6b86
2163724b1de81b012c1641f48da19eef4f7fd3daa9f47675cafa5e3b3abd945dd45ad2326daa431c7
73b639a36d7fe0b67a9ecfe75253135e6075bb0d458e9f4b752f96ebeddfb7e9f3ff00413b7eda1d66
eae8db1fa202ab6667fc23a3f73f7518e1d86e75dbdc0bc43981eed9c6cfa11ed72833a7d8c66c658
f6b760adb16bbda0196ec6eddad7b7fea12530afed608f559491bb5d94da0edfed7e7ed54f27f64bb
afd65dd3ae3d41b4d42acf343cd4dacd8f77a1f69835d1635dbdeff53d3fe71685783756edc2eb1de
e0e2d75ae234edf47e8ff00250f2875d7e754da9b887a6ec06e2e759ebfaa1c5dfa1686fa1e96c15fd
37a4a74963ba9c6a2db2baf0329c1af80e63fd8779f59efae6f6fb7d4b9fbfdbffa2d6a36fa9df9c01ee
d2608feb34a1e4b5b7d618dc8750419df539a0ff57ded7fb525397b28735f6bf033985bb5e7f4af925
bbbf9b6b327f75bef6ff84ff845ad895d75e3b0541cd6386f0d79739c377be1ceb0b9fdd56c6c2143e
b71cebae15ee96d8f610fdc033f4bb58cddb76eff00ebabbea57fbc3ef0929864922b046a77b341fd6
6aa9979d94cc86633706eb29b6b25f94d75419519db16b6cb9963bf7ff40db95a7bdb6b9b5d643a1
c0bc83a0da777f9db94affe62cfea9fc8929fffd1f55492492531b090c711a1024260e3ea96f60d07ef
2efee4adfe6ddf02987f3eefea37f2bd2524493033a8e13a4a5249249298b98c77d2683f1129bd1a7f
71bf7049f66c8006e738c35a3fd7e8a1ce6f8543ca5c7f186a4a49e8d3fb8dfb825e8d5fb8dfb821feb
be157deefee4a737c2afbddfdc9293000080200e0050c8fe62cfea951165ac137b5a0481b984989fd
e0e014b23f98b3faa7f224a7ffd2f5550b89153c8d0ed307e4a6a177f32ffea9fc8929a6eea1d2196be
9b6e657654f15b8592d1bc863f631d66d6dbedb6adde9ff00a44f9985d3bac626cbabab2f16d90f0e
d5ae6c39901e3f75ce5645d8e63dec27e210acfb33fd0a5a18e60740ac410006be3dbfc9494c3ece
cc4c3ae8c6aabaeba1b5d5536490d6376d4d6fb9bf9b5a332b6beb6d9c0700e886f713fbab2beb1d
b9fd3f16bbba2f4c6f51ca73dac763b5cdabf465cc73eeddf9db1cd657ff0007eb7adfcd5562d8ac014
3403203041f1109290b596b9a1c18208046adefff005a484ee01c19cc11b9bffa4d1e9fe659fd51f91
0f1abacd2c3b44ebd878a4a70feab64750bb273867dcdb8d775aca1a2fa2f73182d7fe8f66263d366
3fb3d1fd16464e53ff00e27f9b5af9afcb2c7d55e20c8adf0c20da192c708b0fd177d1952a7a674fc77
5afc5c7ab1acbdfea5b652c6d6e7bf5fd2d8e637f48ff0077f8447db6fef83f16ff00b525397f61b586bb
5988e06a787b6a6e4bb6ebb8bdbb5dfa3f4aa7329f4a9d9b3feb4aed37e73ac636dc615b0cef78b0
3b6e9edf6edf723c5bfbc3fcdffcc928b3f787ddff009924a55dfccbff00aa79f82a39391d5ce6578b560
b1f876d64df986f0df4dc496fa6dc7f4dd65dedf7fd2ad5d3517106c76e00c8681024704a224a7fffd3f
481d39ed90cccc800b8ba0b9aed099f4f73eb73bd36fe6221c377abea3322e602fdee602d2d771ec
3ea56f76cdaddbec54f2bfa5e46cfb6ced6eff463d398f6fa3bff00c27ef6cf67efabf87bbecedddbcba5
d26dd1d3b8ff00d1fdcfe424a6be452ea2b36db9d6d758709738d4d0d0e737da5ceab6fb7e82957d
4fa6318d61cea5e5a00dceb59b8c0e5d047b90beb07fc937fc6be3fe318b8ed7b83f7ffb1253b5f5a3
3fa75adc7d97d57436dd18e6be2433b3772d7c6eabd2c61d5399408adbcdacfdd1fca5c708f51b01
dbb6ba209fa3eddf3a7f5557c9dc7a7dc31fd46b8e3bbd1755eeb07b3f446b63bd3df6ff006d8929ee
99d63a63719a5b97439c18086faac0498fa3ee77e72a3f577eb1b337a6b6eea5557d2723739bf65b
6f639db41f6d9fe0ddeffe5d7ff81ec5c6f4a178e978c324defb85637bb20065a753b3d5635d6edfd1e
dff0009ea6cfe73f48ae69e07efd1253dcfed5e97ff007328ff00b759ff00924c73ae7562ec7a7ed1410
e707d6f0660be367efeed8cff00b71710de47d2e574fd2c659e9541a1d68fd0374adb593336ff0036e
c87b6adff00e93dbfe8d253a0ecace6b5a7ec4e7388d5acb19a1dc5bf9e6bfccdb6297da7321a4e23
bdd3203d92d83edddeedbb9ffc855ed6f52dccd8fbc0fd1ef865041f6bbd4ff08d7b7dff00ceff00e03ec
4a33bd676d7de3d954cb6adbbbdfea6ddcffa5f43d5d9ff005b4949bed59e0b47d89c65a4b88b1900
c9019ab87bb67bd12bbf29d6ec7633ab64ff00385ed22227e8b4b9dbb77b151637a8fabecb3276fa
756ddccaa3e8bf7cefb37fabbff9efe5fa5f98ae630ca173fd57586bf76ddcdac37e97b76fa6e75bff001
7bff33f9c494fffd93842494d04060000000000070005000000010100ffee000e41646f62650064400
0000001ffdb008400040303030303040303040604030406070504040507080606070606080a080
9090909080a0a0c0c0c0c0c0a0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0104050508070
80f0a0a0f140e0e0e14140e0e0e0e14110c0c0c0c0c11110c0c0c0c0c0c110c0c0c0c0c0c0c0c0c0c
0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0cffc000110800f2015e03011100021101031101ffdd0004
002cffc401a20000000701010101010000000000000000040503020601000708090a0b010002020
3010101010100000000000000010002030405060708090a0b1000020103030204020607030402
060273010203110400052112314151061361227181143291a10715b14223c152d1e1331662f024
7282f12543345392a2b26373c235442793a3b33617546474c3d2e2082683090a181984944546a4
b456d355281af2e3f3c4d4e4f465758595a5b5c5d5e5f566768696a6b6c6d6e6f637475767778797
a7b7c7d7e7f738485868788898a8b8c8d8e8f82939495969798999a9b9c9d9e9f92a3a4a5a6a7a8
a9aaabacadaeafa110002020102030505040506040803036d01000211030421123141055113612
20671819132a1b1f014c1d1e1234215526272f1332434438216925325a263b2c20773d235e24483
17549308090a18192636451a2764745537f2a3b3c32829d3e3f38494a4b4c4d4e4f465758595a5b
5c5d5e5f5465666768696a6b6c6d6e6f6475767778797a7b7c7d7e7f738485868788898a8b8c8d8
e8f839495969798999a9b9c9d9e9f92a3a4a5a6a7a8a9aaabacadaeafaffda000c03010002110311
003f00f7f62aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8a
bb15762aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb15794f9af40b18bcf

959

964f67a5b5f3cda2ebb7d2dbf29545c6a025b26b7532d688e69208b7f8179f0dab8aa79a1f993ccf7
765ab5cfd4cea1e869369a869cad11b5793509e199a5b2351d51a38fb724f578bfd9c558cdd79d3c
e4f71a4da25f4761a7ead3e9f17e979ecaaf1cb79a7df5c5c5b88d8a2f2864b689aa6a544be9bfc42
b8aa8d979fbcf971677a2fd21d335cd2ac259e4d3e5b2b8905e29d3fd786ee12000034f54688c9f06
f137ef3812aa3352f3979aac648b4a8ee5ee6fe5b6712ceba7b44a92dce9d7b7903c5f6d5f8c91450
ff002f2f81b948df0aabe0f3979cbea5135b40d732dbfe8d41eb5b906f2d2f2c5669ef2a02f130ca5c3
20ff7c943f148b45530d26e75f9bc97a4f9eae963bbf3b5fe9f663d1f4deca255be682592db8132056
56e4a924a3e06fef28bcb15645fa76f3fc0ff00e20fabdd7e90fa97aff57faa8fadfadc7ecfd5f9d3972ed
cf8ff0095c7157fffd0f7f62aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb157
62aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb15762a
935f79812d7507d36ded65bdb9b78ede7bc584a030dbddccd0a4843b2d40e123b01bf08dbab7156
55895e79f7cbbaa4ba1cd369171797337d4756f2fef18aa6a523d9c7383ea00a544a03a9f8824df08
6f8c2aabd7f38fcad1da0bdd4566d3e1fa83ea6ff00590ab58e1699264888244ad13c25641192579c
6ff61b962aed53f3212c35b5b4b88dec6d74996ed3cc314c8ae7d18b4c3a8452c2e8c4152a29feb0
65f9aacc747d565d562b879ac2e34f92094c3c2e978fa8bc15c49191d5086a576f89597b62a9962af
27f297e74e93aff009eff0030bca734b1a47e50d4f4bd2ed883491df5231dab54770b744a57df157fff
d1f7f62aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb15
762aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb15762a94df796742d4b5
6b3d76f2cd64d5ac14c76d7219d182160fc582b00ea18720ae182b7c4bbe2a8683c95e57b6861b7
b7d3a38a0b79629ede38d9d5637b795a78c200df0aac8cce107c15fd9c556c5e46f2a436cb66ba64
4f649cf8db4a5e68819565473c246615659a452695e2e462ab9fc95e57938faba7249c4c84fa8cefcf
d6b6faa3fa9c98fa95847a5f1f2f831546e87a0e95e5cb04d334784c1671d38a3c924edb00a017959
d8800002adb0d862a8db992486da69a188cf3468cf1c0a42b48ca090a0b1001276dce2afcdbf2c7e
4a7fce5069de63f3b6b16de5e56d7357b8b59ef98ea167c96f22d5ecb5c8cf2f540e9152bfe553157f
fd2f7f62aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb1
5762aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb1576
2aec55d8ab1dd08ffcec5e691e1756bff5050e2aff00ffd3f7f62aec55d8abb15762aec55d8abb15762
aec5548dcdb89beae65413915f48b0e743ed5ae2aaa4802a4d00ef8aad4749115e360c8c2aaca6a
083d0823155d8abb15762aec55d8aa999e154695a45112121dcb0e20834209ed438aaa62aec55d
8abb15762aec5528bed744571269fa5db3ea5aac601782321228b96e3d69882a951b85f89c8fb28
7157431799a42ed7575650027f771410492951fe53bc89cbe845c5554daeb9bd35183dbfd14ff00d
56c55afaaebbff57283fe910ffd56c55b16bae77d4603e1fe8a47fccec55a36baef6d4601ff004684ff0
0ccec55c6d75eeda941ff004887feabe2ad0b5d7bbea56feffe88dff55f156feabaf7fd5c6dff00e911bf
eabe2aefaaebbb7fb9183dff00d11bfeabe2aefab6bbff00571b7ebff2c8dd3fe47e2adfd5b5cffab85bff
00d2237fd57c556496de6208c61d42d7d4a7c224b472b5f7e3700e2a876d6751d309fd3f66a966aa
09d4accb4d0a9df97ab1901e30295e5f1a7f332e2a9d452c73469342eb24522878e442195958541
046c4118aafc55d8abb15639a0823cc9e6aaf43736847fd21423157ffd4f7f62aec55d8abb15762aec
55d8abb15762ac41bf357f2d57cd5fe076f366943cdfea7a3fa17eb90fd6fd6ff007dfa7cabcffc8fb5ed
8ab10f216973d879356dbcefa3dc5e7e6169d79797f7b76b6a679ae6fa2965921b98272151c345c1
62f8d42afee0f1e3c7156fcbdaef9f7cc17761677e752d36cae2edbd5966d352294d936956f3a894cb
018d1beb5eb46f41d6b1834e0d8aa07cb927e62f97b4ff002c699690dd4de5b5b7d2adb59125ac6b
75a793ebc73a428114b220584484ac9e9ad5d49afc2aa2ac75afcd6faddbbeaa93c6914fa5466082
cd1a39ad6e357bb82796561192aff525b79a54561e8bb5683ece2a9d79b755f3b5bf9a27b7d19ae9
3468a0d11e330d9acf1b4b75aab417c3998d89e16b491803fbbfef31540aebdf98cf6d7f0adb5cadd
dbfacba2ccd680addcb06ad3c012e3e00115ed56060e380292492afd8d95515d7bf3222bc348eeee
ad24facb4e0d92a9861875e4b7568a91af27360cf2aab72f5380751fccaa2a7d63f302dafac6e196e
a6d1e2d56e20be8e1b456964d1659952dae7ec7212a49f0b220f8ad3d49ca875438ab1df3b3f9ab5
2f28f993cba74dbb6b6be8b5e1666cf4ee4d3dcc77f5b68dd12234f5213cd24a0f54f27e7cd715673e
4ad63cd1ab6ad7e75d17166903dd42da5cb612430a04b9616d34776e42ca1e0e24aa73f88fc5e9b
2f1c558fea1e64fccab6961b196d658aca6b9b88a5f30d959497c238e48a56b36fa9845954870a97
00ac88ac12927094955575eeb3f98f1ea1751dacb38579f50b585e6d35a4b68163d3219ade72b0a
19197eb4597677e4bca3f89971555ff11fe634f0ca0e9771637d147686c22f496ea1bab9fd2124376
92481138c5e8ac6f0bb085fd193d565e4aca1565de49935cb9d29af75fba9e6bc9a69d05bcf6e96be
92433c8885542237c6811aad5f15a62a8ed7ef6ee086dec34d609aa6a528b7b79080c22500bcb31
07af040c57b17e0a7ae2a8cd374eb5d2ad12ced1488d4966773c9de473c9ddd8eeccc492c7c7154
5e2aec55d8abb15762aec55d8abb15762aec55d8abb15762ac72d614f2d6ab0d84042687ab4927
d560340b6f7b432b471d4fd89543b8503e0756a6cf455591e2aec55d8ab1dd0ffe523f340f0b8b4ffa
838b157fffd5f7f62aec55d8abb15762aec55d8abb15406b706a175a36a36da4ce2db559ad678ec6
e4f48ee1e3611b9ff558838abf14e6fcb0fcd68fcf4de5793cbdab1f3cb5df1e02098dc35d192beb096
94a72f8fd5e5c7f6b962afd8ed122fcc2b5d174fb5d48e973ea305ac315d4e64b82649d2355763f07
7604e2a8ee5e76ff007de95edfbcb8ff009a315772f3ad3fbad2ebff00192e3fe68c55be5e75aff75a5d
3fe325c7fcd18ab7cbce7fefbd2e94ff007e5c75ff0080c55ae5e75ff7d697ff00232e3fe68c55ae5e75e
f1697ff00236e3fea9e2abb979cebfdd6974ff8c971ff0054f1568b79ce9b45a5d7de4b8ff9a31573379
d3f662d2fe992e3fea9e2aee7e74dbf73a5d3bfef6e3fea9e2adf3f397fbe74cff91b71ff0054f15699fce
5c5bf73a6743feedb8ffaa78abe0cfcaad7ff00e73acea938f2f59df6a5a034ec89fe2d8d56d15039a1

492eda39f881fc8c7e58abed3f2745e74bbd692f3f30a0d2e1d7acb4e54823d164b896d945e4c4ca
7fd21148626dd06d5dbbe2acfb15762aec55e55e6fd53548ff0033a1d2acae5deddbcab7f7a9a63ea
1269d6ef7715e4091c8592b46a332f2f0f962abdbf3135d376da5e816969a9069ae74ed22592790c
97135b68d16a713c8d4029217f4891ed27f938aadbffccc9c69d6be67b5b346b4b8d2758d534b496
7960f5134eb6826a4b10d8f27e6b5239228aafdb6c55315f3fead15ccb6771656f25cdadc69304d0c
2d207962d69f8a4b0861bac40fc7fcde94df6388c5526d33f3675bbd9ec2ce5d3ec45c6a034096392
39a568d23d7c5e02375059a236951f64387a7c34a955413f3aaee23a6a5fd8da447568eccc171eb
94b781eeaeaead5bd6770071adb0e1bad5e458ff00ca2aa6edf991ad47791dacf656228fa7dbce61
9de7533ea36734d589c2a8744922a03feec43fb2715651f97daeddf99fc8de5cf315fbc325f6aba75a
dedcb5b0a43eadc42b23051c9a80134a7238ab24c55d8abb1563de759cd9e84da82a8692c6e6ce
e1390ad385cc61a9ee50b0c5590e2aec55d8ab1dd087fcec7e693dfeb369ff00505162afffd6f7f62ae
c55d8abb15762aec55d8abb15762aea77ef8abb15762ab2660b13b31a285249af1a003c7b62af9e
27f3bf9e2c7f2fefb47bcd6647d7b48974ed40f9a15123fad689aa5cc4d69c5b818da47e525acbc77f
dc3c9b174c559d5efe66df992f0e9cba6a5959ea11e9b3c935d07b98255d622d3a4135b82acaad1b
9955d9942fc3b32b06c552bd37f33751d17f4847ad5cd94f64f7baf1d3ef2eae5e3644d3f5c874f8e2
908461c6974ab1f1fe45563f1f2555171fe6fde4e96f75058da1b202dbeb95b82660d3eb4da3b2a2a
865d88120ab75fddff978ab23f22f9f5bce76d71a9247691e9c2059e110dd2cb7114824952586e63a
56278f82d4b53e22e9c7f775655213f9b7732c16f6f6f65696faf4eb33fd4753ba163173b6faab34293
b86472c973eac524664478b8bd3e26e0aa2adbf32b55927b84934c82614d58d8dbda4fea5cc9fa1
b548f4f61c6411a97904a1d1037db1e9f2ab2e2ab87e69fd615a7d3ac85cdbc33e976d22b7a90cd2
8d5d2ab3469220611c4c68fc9797eee7e9e9eeab22fcbdf31ea1e70f26e8fe6ad42da0b47d66d20bf
86dada4699638ae624902b3b2a5581241a0a62ac9b15762a94455ff00145d9edf50b6ff0093d718a
a6f8abb15762a879ec2c6e9b9dcdb4533d38f2923573c7c2a41db156d6cecd1c4896f1ac80f20e11
43034e35ad3c36c55b92d2d660a2582390282abc915a8adb102a3a1ef8aa9c5fa3ae2571088659e
ccfd5e4e2159a26281b81a6ebf0b03c7c1b156c69f60bc78dac238f1e348d4538578d36ed5db1551
86db46bfb6630436d7366e1e06e091bc6c239087434041a38355fe6c5511f52b32cae6de2e6a54a
b705a8318a29069fb23a7862aa90c30dbc6b0dbc6b142bf663450aa2bbec06d8aafc55d8abb1562
bf99048f25ea74d8fee3fea223c559562ad332a29772151455989a0007727156c104546e0f438ab1
ad00d7ccfe6df6b9b3ff00a818b157ffd7f7f62aec55d8abb15762aec55d8abb15592b98e279150bb2
29608bd58815a0f9e2afc7df327fce557e7d5ef9e2efccf1f9baff004d9adeea436fa3c0fe9e9f0471c86
90b5aff0076e00f85bd40ccdddb157ea7fe5ff9c35ff35791bcb7e65d4b409ed750d5f4db5bebab712
40a1259e2576003c818024d541de9d715646351d47be8f703fe7adb7fd55c556bdfdfc88c9268b3b
a302ac864b52083d41065a50e2a8578d25b35d3a4f2c17d3d02aa5a30b2308119aa80864e22877
1b6d8aad7b6b791aeddfcacacf7e105f332d913388c517d5264f8f8d36e5d315536b2b3911924f28a
323ac8ac852c08659d834a08327472017fe63d715685a5a2f3e3e5051cc82f44b0f8887f5413fbddf
e3f8ffd6f8bae2aaf6d23d9bdc4969e5892de4bc7335e3c46c6369653b1690acc39311dce2aa2f040
e9044fe51e715ac82e2d90ad8158a65140e80cbf0b01fb437c55de85bd4bff00847e23cea78d854fa
ae247ff0076fed380cde2df162aaa6573224ade5794cb1610000026060f002220574d46430100000
0000001000000000000000e00000000200000f4640100f4a401001a7a28f5b12cb1508e00fadb2d0
9db1554b5bcb9b2b78ed6cfcb93dbdac43845044d651c68a3b2aacc001f2c5505e62f306b563e5fd
5af6db45ba86e6dacee26865325990af1c4ccad4f58d68457a62af8b3f277fe7347f3c7cc7790e937f
e41ff001d970a16e3438a4b39ebb559da92414f1da2a62afb33ca5ad6a7af6a32ea1aae8577e5dbb
934fb5e7a6dfbdbc9329f5a7aef6d2cab4f990dfe4e2acc315762aec558d7e6147e6197c91af45e523
28f333d9ca34a36ec8928b923e0e2d210a0d7f9b6c55855f5a7e6747777aba19bd3cae3578ecdaf2
688c22ddec51eccfc4cc47fa4f254623927ed7eef1552d7f4ff00cc89e6bb7d1a4d4e1d3258b50974d
804f18b98a7fd18a21595da424a9ba158872d9b9723e930c55157f63f9857537d6605ba5bd875232
e9cd2488b044b3f97fd1579111c07852fc92e8431fda552b8aa1a0d3ff3427d43454bb9afa1d1253a
5c7acc693c5f594b94b5bd4d41c48a41f41a436bc781fb419a3455ae2ab2f6dff339f4a76b71a90d4e
de2d65ad956581564986ae8fa773f8c06ff44e428df0f0a893e3c5536f256b7a86abe6bd45aef52bbb
bb249f5282c7e08fea52c697558a9e948fc5a045686ae10cbf6d873c55e978abb15762aec558b7e6
32349e4bd5515b83948f8bd03713eb250d0ec687154d0d86b3db57a7fd1bc7fd715493ce5a1f98b5
3f286bfa6d9ea466bbbcd36f2de0845bc4a5e4960745504900124d3157c77f937ff38f1ff397fe5f4b5
97fc7c7c97a7aaaf2d3aeaedb5ae217a0faa912400ffcf418abea8d0344f3b2d8f9b7486f34c4fe7376
b309e64fd1b188925faa43f17d4fd4e0450114e7df157fffd0f7f62aec55d8abb15762aec55d8abb157
62af24d63fe7193f2375ef38ff8ef54f285acde606996e673ca54b59a7535f525b657113b13bb724f8c
fdbe58abd69555142200a8a0055028001d0018ab78abb1563fa879bb4ed37cd3a4f956e62985ceb
11ced6d76109b659a15f516077e82491165741dc44fed8abadfce1a23ce2d2eef6d21bc9aeee2cad
208ee166795ada51136ca010c0b2874ff0075934638aa4be6afcc88fcbb7d79656ba736a0da59d39
b55265fabfa51ead70d6f0b47c91848432fc4bc97afcf156473f9a3cbb6ced1dc6a76f13ab0421dc0f8
8ceb6db78d25758cd3ecbb2a9dce2aaf63ae691a9b2a69f771dc3bfac542127fde597d097fe024f81
bfcac554ae3ccba05a59bea173a8c1159272e53bb8080229666aff2851c8b7d9037c55453ce3e559
2e6e2cd358b46bab412b5cc6255aa0b7e064aefd54488587f94be38aa25fcc1a246d1a497d0a3cac
888acdc4f296430a035e85a4528b5fb4e388df155da4ebba3ebd1493e8d7b0df411370796dd84881

961

bc390d8e2a8e9238e68de1991648a4529246e032b2b0a1041d88231551b1d3ec34cb64b2d36d61
b3b388523b7b78d6189478054000c5501157fc5177b6dfa3ed687fe7b5c62a9be2aec55d8abb157
62a95cbe63d061bab5b39751b75b9bdf5beab1fa8b57fab287969bd3e05605be78aa1ef3cdde5fb5
290a5fdbcf7d3c1757367691cf1079d2c955a6e2ceca838f350c59955790e4462a8e8f57d39d62f52
e618a696213fa2f2c65c270e64fc2c41006e483c69bf4c5556cb51d3f5247934ebb86ed236e1235bc
8928562a1a84a1343420fc8e2adc163636b2cd3db5b450cf72dcee258d151e46f172002c7e78aa23
15762aec55d8ab19fcc120793f532c6838c553ff003d931564d8abb15762ac6f42ff00949fcd5bff00b
becf6ff00a338f157ffd1f7f62aec55d8abb15762aec55d8abb1552b9b88ad2da6ba9c910c08d2c840
24854058ec3aec3157e686adff3f06fcd99bce72ea5a258e991793a29dbeafa14d017965b457207a
b71cb98919772578a06fd9c55fa1fe57f3df973cd3e5ad23ccd697b0416babd9c17f14334d1ac91ad
c46240ae396ccb5a1c55353af684bd753b415e959e3ff9ab156ff4de8a057f48dad0f43ebc7ff3562ac
335cf2df9735d59a697cc1043ad1d46d755b2d462963e76ef6122342a23327060155a36e43e2591f
c71544693a2e81a46b1fa597cc16f21fad6a7766177840e5aabc523a860fd10c429f3df15436bde5a
f2f6b975aedcbf98e1b73ad2e92b22abc2de97e85b96b94e24b6fcd9886af6e98aa8c9e50f284f64fa
75c6bf149691dbea76f603d680496c9ab4cb3bb0724f23132afa448f868397261cb154dfcada6f953c
a86fbea5ada5c1d4651732fd62ee39292951eb3a6fb7ab2179a4f19646f962ac79fc89e565bc8afac
bcc56d0bc13cf32d949f57b9b0517b1f1b9096d2b30432b0590f02aa1c1a251e40caaa9f25f95a5bc
9ee25d7ed6e20b89b52965b29beaf240f1ea90410491b2f200aaac1da9f68fb62abedbc9fe59b5867
b497cd06eedaf12d62bb4bcb98e691a3b0bb92eadd12467e6a1049e8d58bb18d53e2f53e32ab27f
2d0d1bcbba2c1a50d62dae961699feb0648a3afad2bca760c46c5e98aa6bfa6f461ff4b1b5ff0091f1f
f00cd58abc2349ff9cd2fc8ebcd5af344d6752b9d02facaea5b2924bfb766b56786431f359e0f557835
2a19b8e2af4ef2ef9ebca3e6af31c73f95f5ab2d6acefec1bd3b9d3ee23b9412594c0bc6fe9b1e2d4b
85601a8681bc3156718abb15762aec55a61c94a8ea4537151f762af315fcb2d720b682ded357816
2896fe05b7ba85ef60820bfb3583842b3392512445758a53222c75847c3c7154a8fe4e6bd2ade497
1ac599b9bfb7d66d6754b79bd354d72c2ced9caf3999ab1c9661857628e57638aa6b17e555ead8a
69f2ea71c90c72c5a8c7218dbd45be8b4a1a59404b1fdc301ea71fb63e28fec9d954e7f2ff00c937be
4f6bff00ad5cdbce97706990462de368f89d3aca3b4666e4483ccc7c853a0f877c559b62aec55d8ab
b15762ac7bced07d7340934d52a25bfb8b5b58c31a57d4b88f953dc2866fa3156438abb15762ac6
b413ff003b4f9ac7fc5f65ff0050698abfffd2f7f62aec55d8abb15762aec55d8abb1571008208a83b10
7157cb1aaffce04fe4cea5e726f3324fa95a69134cd7375e5c8254168eeec5ca2c854ca91927ec06e
9b2b2e2afa5ed742d12cada1b2b4d3ada1b5b7458a0852140a91a0e2aa053a00298aaa9d2b4b3d
6cadcff00cf24fe98ab8e97a61d8d94047fc624fe98ab5fa274aad7ea36f5f1f493fa62adfe8ad2ff00e5
8adffe4527f4c55a3a56967ad8dbff00c8a4fe98ab5fa2349ff960b7ff009129fd31577e87d27afd42da
bff1853fa62adfe88d27fe582dff00e44a7f4c55afd11a4ffcb05bff00c894fe98abbf43e90773616d5ff8
c31ff4c55dfa2349ff00960b7ff9129fd31577e87d27fe582dbfe44a7f4c55e1fa27fce1c7e4769baa5d
6b7abe8d2798754bbb99af257d4e666b70f3c8d2155822f4e3e0bca81595b157aa47e47d0740d36
183c97a458e8d3d848b71670d9411dac6ec80ab46fe905a8910b2126b4e5cbf67154f34bd4edf55b
6f5e10c922931dc5bc838cb0cabb346ebd88fb987c4b5520e2a8dc55d8abb15762aec55d8abb157
62aec55d8abb15762ad1200a9340372715482d5d7cc5a943a9c60368ba7339b090ee2e2e8831b4
cbb7d8452c91b03f1f266fb2119956418abb15762ac6b411ff003b479acf8cf65ff5071e2aff00ffd3f7f
62aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb15762a
ec55d8abb15762a96dee8b05d5c0bfb7964b1d4c284fae5bf10cc80d42c8ac195d7c390f87f64ae2a
8364f39dbaa2432e9b7d4d9e49966b463ef44330fd58aac32f9e6a696ba4d3b56e6e7fea862ab3d6f
3f53fde3d1eb5ff0096abae9ff48d8ab7eb79f7fe58f48ffa4bb9ff00b26c557097cf55decf49a6f5ff004a
b9fa3fe3df157197cf5dacf49ffa4ab9ff00b27c556fade7dff962d23fe92ee7fec9b155deb79ea9bd969
35edfe9773d3fe91b156bd6f3dffcb0e91eff00e9973ff64b8aaef5bcef5ff78b4aa7fcc5dcff00d9362ad
7ade79ef63a4d3fe632e7fec97156d65f3c3101ad34a8d49f89c5d5cc842fb2fd5d2a7fd90c555a4d1
2eb512cbaedefd66d09afd42dd3eaf6ec053693e2777dc74e610f46438aa728891a2c68a15140555
514000d800062ade2aec55d8ab1ad09abe69f35af84b647efb44c55ffd4f7f62aec55d8abb15762ae
c55d8abb1542dfdd4d67099a1b492ee952c91346a4002b5fde320fc71554b4b98ef6d20bc881115c
4692a06d9b8c8a1857aefbe2aa17fa9476135842e85cea173f544229f0b7a524b535ed48c8c551b8
abb15762aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb
15762aec55d8abb15762aec55d8abb15762aec558ce8449f3579ac6d412d8d3c7fde45c55fffd5f7f6
2aec55d8abb15762aec55d8abb1552baff0079a6ff008c6dfa8e2a84d07fe387a67fcc241ff26d7154
0798c56f7cb7edaa0ffa83bac553fc55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8a
bb15762aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb15762ac6f4314f34f
9a8f8cb65ff0050ab8abfffd6f7f62aec55d8abb15762aec55d8abb1552b9ff0079e6ff0051bf51c550b
a1ffc7134da7fcb2c1ff26d7154bfcc9fef6f96ff00edaa3fea0eeb154ff15762aec55d8abb15762aec55
d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8a
bb15762aec55d8ab1ad0e9fe2bf350ff002ec49ffa461fd3157fffd7f7f62aec55d8abb15762aec55d8a
bb1552b9ff0079a6ff0051bf51c5509a0ffc70f4caf5faa41ff26d715407993fdedf2e7fdb547fd425ce2a
9fe2aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55dd315762a
ec55d8abb15762aec55d8abb15762aec55d8abb15762ac674314f3779acd7ab586dff46d8abfffd0f
7f62aec55d8abb15762aec55d8abb1552b9ff0079a6ff0051bf51c5509a0ffc70b4cff98483fe4dae2a
97f996bf5cf2dd3feaeabff509738ab20c55d8abb15762aec55d8abb15762aec55d8abb15762aec55

d8abb15762a93deeb139bc3a568d6e2f350415b991db85b5a82bc97d6615259bf663405bf69b827
c58aa1a7f2f6aba822fe91f305e46c09631e9a23b28a87a0dd65936ff8c98aa83792216ebaeeb63be
da8cc3f562ab4f91a035ff73bae0af86a5362aeff0003c5ff0057fd73c3fe3a32e2adff008263a0035fd6
f6dabfa4243fac62ae1e498c2f1fd3fadedb57ebef5fd58ab67c9319ff00a5f6b63e57f27f4c55b5f25aa
9db5fd68ed4def98feb5c55b5f260535fd3fad1f637a48ff88e2ae5f2705a7fb9fd64d2bd6f09ebfec315
5687cbfa9d9239b0f305ebc87ec2df886ee206a3a8e11c87e89062a89b7d5ae60ba4d3f5a816de79
4f1b5bb88936b3b1afc0a4fc49250578375fd877de8aa6f8abb15762ac674314f3779afddac3fea1b1
57ffd1f7f62aec55d8abb15762aec55d8abb1552b9ff0079a6ff0051bf51c5509a0ffc70f4cff98483fe4
dae2a97f998917be5aa77d597fea0ee7154d751d574bd1ed9af357bd82c2cd2a5ee2ea54823006e
6ad21031579e797bfe720bf29bcdfe71b4f22f94fcc11eb7af5e2dc48a2ca3924b755b442ee5a72a1
0ec36e2cd5c55e9d8abb15762aec55d8abb15762aec55d8abb15762aec55d8aa57e60d49f4dd38b
5b151a8dd3a5a69eaff65ae673c52b40765fb4dfe4ab62aafa4e976ba3d8c7636a09552cf2cadbbcb
3484b49239eecec4b31c551b8abb1540eb3ac69fe5fd2af35bd5a530699a7c2f737738569384318e
4cdc50163402bb0c554f4cd7b4ad627bdb4b19f95e69ce915f5b3a3c52c4d2a0963e48e14d1d5832
b0f85be838aa658abb15762aec55d8abb15762a85d474fb4d56ca6b0bd8fd4b69d78baf4208350c0
f665201523a1df1540f97b5092eedee2c6ee512ea9a54c6cafde9c4b3aa2c89252807ef23747db6a
b15ed8aa718abb15633a211fe2ff352f71fa3c9fa6dc8fe18abffd2f7f62aec55d8abb15762aec558af9
76c3f4ae930dfdddf5ebdc4b24e5d96ea645f86775002ab00000298aa67fe1eb61ff1f97fff0049b71ff
35e2ad1f2eda9054dddf90c0823ebb71d0ffb3c5534b7822b5b78ad605e30428b1c6b52688828054
efd062a84d5746d3b5b823b7d4a132c70cab3c255de27495410195e3656068c46c7be2af26f387fc
e3ffe5479fbcc935979ab4237eada72c893bddde19e390ca53923998906829e18ab11fcbcff009c33f
25fe58fe63d8f9e7cbdacde5de9d6b1dd44fa26a6914eb4b988c6a52641191c3afc4ad5c55f410f2e6
843a69f00ff006031577f877421bfe8f87fe0062a93c32793aea259adf4c925b790074956c2e4a3a9e
8ca7d2dc1c5550a79508a9d2663ff006efb9ffaa58ab457ca9df4a9be8d3eebfea962ad83e553d34a
9b7ffb57dd0ff9958ab7c7cab4afe8b97aff00cb05cffd53c55ae3e54a91fa2e6dfaff00a05d7fd52c55a
03ca9514d2e6141b1fa85d7fd52c55c4f94fec9d366a57fe582ea95ff009158abb9f94b75fd1b3507fc
b85dd37ff9e58ab8ff0084694fd1d2d3a7fbc377ff0054b157cb1f999ff396fe5efcadfcd2d6bc93a9f91
63d4f41d3d6d5adaf21924b2bdff48b78e57e715cc746a3310bbc7b62af58fcb5fcd7fcb8fcdad5f44b
8f2b685aa584b6b2cd7224d4b4d9eda10eb6ce070b81ce1661cf601f962af78c55d8abb15637f983
a26a1e65f23f987cbda588cea1aae9f71636e67731441ee23318666557202f2aeca715627e70fcb6
bfd42d4cfe598ede2d62fed2fed3579ef2e26f51defac3eab14866e32338819538a51471ab2716fb4a
a121fcb8f3099b9dea5adc72bd79a476b891ab68fa0a69de950c7b83749eb71fb34fde7f79b62a92f
93fc97e649fccd2c77f70d6f7fe5dd43449eef56f5667372b6da1c16f75043cd5794534b5323578f2e5
c97d418abdd715762aec55d8abb15762a93daf14f336a68aa07a969672b11b12dcee137fa1462a9
c62aec558c68829e71f357bae9dff00265f157fffd3f7f62aec55d8abb15762aec5520f25803cb7694fe
7b8fc6e24c553fc55d8abb15762a935d58ea69ad0d56c160951ad7eaaf1cf23c441590b820aa3d7a
e2aabeaf98b6ff44b2f7ff4997fea862aef57cc5ff2c965ff004932ff00d50c55c65f31536b4b2e9bff00a
4cbff005431548fcaba8eab6da27966def2d2dd6def608a012433bbb232dbb4a0f16894104253ed62
acc315762a85d42f934eb713b4524c5a48e248a10a5d9e5608a072651d4f738aa10eb174081fa16f
8d7b8fab7fd57c55c758ba1ff4a6be3ff48dff0055f1577e98baff00ab35f74aff00c7b7ddfdfe2aefd317
55a7e86bef9ffa37fd57c55afd3375b7fb86bef952dbfeabe2ae3acdc8ff00a535f9fa2dff00eabe2af83
3f37bf3b2f3f2f3fe7243cd696bf96da379a2eee069cc3f49d919b5750b650ed1cb134c147f2d10e2af
a77f2d3f35bccff98fa8e8cfae7e5ceb5e4a8a3333c53ea423faacc1ad9a8232de94bff24694fdac55e
d98aa85f5cfd4acae6f3d2798dbc4f2fa310e523fa6a5b8a8ee4d2831579f5bfe62df5e0d2feab36972
43adc6f3d8df24923c107a5682e0c1734a7190b720b47fb08edc030e38aa437bf9c3afc71db4f169b
6b6e97eb2430da4ed235dc1727cbcfada7aaa2808568da1741466e4ac0afd92aa3ec7f32b5f91834
cba74d6310d1ade7bb87d5349f5b48c899c072a9123330a54f2f87e34df154c7cb5e63d4759f3ca47
78e6154d3b51864b48a566b5964b0d4d6d92e638d8feda83bf515e1c9b8d7154bef7f337555d634e
d2ca5b69cefae4561782e11a48df4e963be68e686757f4dbd436aa2a3e38e4e71bc5c82f2556695f
9a7a8ebbaa69f6567f504b39afed2dee2ed59e48e4b6bfd227d4233112c854f38bd30ccbf17fbed1b
e1c554bc9df99f79a8f977449e1b10a1adb4269edae2e25b9b99935b94405e19a425a4f4093cd9c1
6728e0f0fb58ab20fcbef3e6a3e6d9bd3d46ded60f5f4eb7d52dd6d646919565b8b8b7647e5d77843
0614fb54ed5c559f62aec55d8ab1a96fa4b4f365f70b2b8ba56d3ecfe2b754600fad75b1e6ebbe2a9
2fe6579e355f2bfe5ef9a3cc9a5e997516a5a4e97797b6925c4513c2b2dbc2cea5d44b52b51bfb62a
f98ff2b3fe7387cf5e6dba8f4cd47f2c6efcc370c429b8f2a899d8003e2630cc1d7fe4b2e2afa7749d67
51822f3179de7f2eeab1c1770594d69a318623aac86188aba0804a40705ba17c55ffd4f7f62aec55d
8abb15762aec558be8ce63f253bab98ca4378c1d4f02a44929a823a53c7157987e5f7987ce5a7796
3c95e72d6b54173a06bfa668961790dfdc19e46d42ec7296fccac29155485f4b971763bf061f12a9b
c3f9c5a9dc69ba76a50595918ef134332a99df66d7355974c3c481d23e024dfed7d8dbed62a8e9bf
33b5b447682c6ce692d6dde79e01248249de0d5a4d3644840069c82724af2f8d951bf9b157a962a
ec55d8abb1568f438ab11d2589d17c967c4c5ff00503362acbf15762a966b74f46d2bff002db6bff27
97154cf15762aec552e97cc1a0dbcd25bcfaa5a453c478cb13dc44ae8de0ca5aa0fcf155a3cc7e5e3
4a6ad65bf4ff00488bfe6ac55aff00127977feaef65ff49317fcd58abc3bcebff3929f92bf959f99375a3e

963

bba798b55bfb5b7babbf3469b6f6f74250e0a224cf137ac78aa0036618ab32b2fce2fcb5f3adb697ae
f937cd3a66a5f52b9596eacfd711de0b5951a194fd5df8caa504824354e887157a9e2aec5547ea96
be998bd08fd22dea14e0bc4b93cb95294ad77ae2aefaa5afa9eafa11fabcb9fa9c17972a52b5a56b4
c55a4b2b28d5d23b78952450922aa280ca0500200dc53b62ab96dadd2459521459557d3570a030
41fb20d3a7b62ad1b4b535ac119ab890fc0bf6d770dd3a8ec7155a2c2c5578adb441763c446a0556
a476ed538ab696567198cc76f129843084aa28e01fed05a0dabde98aba0b2b2b66e76d6d142fc78
728d150f1ad695006d5c555f15762aec5524d1657bdd4756d4c05168d2a595a3a9afa8966183bedf
f16bc883fd4af7c5532d474eb0d5ec2e74bd52da3bcd3af23682ead67512452c520a323a9a82a41a
107155ba6e99a6e8f67169fa4d9c1616108e30dadac690c283c1510003eec55178abffd5f7f62aec5
5d8abb15762aec5522f292ac9e5cb7470194b5c2b2b00411ebc828462a9bfd4ed3eaff54f423faa8e
90705f4f635fb34a75df155bf50b1ff9668bb7fbad7f64d57b763b8c5500be5bd3135e1e624422f45af
d49631c442b1faa66e4178d439626ad5c5537c558feafa6d8ea9afe9d6fa8c09736e96976eb1c82a
a1c496e0353a5684e2abffc17e54ffab45b6fff00158c55aff04f94b7ff0070f6bbf5fdd8c5543c970476
ba65fdac2bc2de0d4b508e08c1f85235b97a2af801d862a83d229fa13c915d8d62a0f7fa84d8ab31c
55d8aa59add0c3695ff0096cb5ff93cb8aa678abb15762ac5fcab61632dbea724b6b13c8daaea259d
a352c7fd29fa923154fbf4669bff002c707fc8a4fe98ab5fa2f4cff96283fe4527f4c55e47e77ff9c5efca9
fcc6f3b8f3c79bacee6f6e96de1b55d3239beaf6252dcb1059615572496dff798ab3cf2d7e597e5e79
36dcdaf95bcafa66951302ae6dad62491c11c4f3938f26db6f88e2aab6f7571e5529a76a5ea4da028
e365aad397d5d010161b9a6e028d926a712bfdef16f89d564504f05cc493db4a9341200c92c6c1d1
81e84115071554c55d8abb15762aec55d8abb15762aec55a6655059880a3724ec00c5521b8d4e6
d689b0f2fc9fb86aa5deae9fdd44bb55613d2490d762bf027563c87065539b4b4b7b0b586cad1047
6d6e8b1c4837a2a8a0dcee7e78aab62aec55d8abffd6f7f62aec55d8abb15762aec5521f269e5e5d
b63ff165cf4f6b993154fb15762aec55d8aa53707fe765d3c77365794ff9196d8aa6d8abb157cadf9f1
ff392b2fe446911e97a0e9f0ea5e6ed7754d567b75bce7f55b7b486e9d1a5711952cc58f144e4bfb4
58f8aa80ff009c60ff009c929bf38a6d33c9daee9b169fe62f2fb2cf0cd665cdbdcd9adacf0962af5292
2929515656ad453a62afae315762a966b7fdcda7fcc6daff00c9e5c5533c55d8abb15483ca641b4d4
a9db55d447fd3d3e2a9fe2aec55d8abb15762a92cbe52f2fcb77f5f4b3fab5e71e2d35a492da330ebf
17a0e9cbfd962aeff000be9b5afad7dff00710bcffaad8ab7fe18d3bb4d7dff0049f79ff5571570f2ce9e
0d7d7beffa4fbcff00aab8ab7fe1bb0ff968beff00a4fbbffaab8abbfc3761d7eb17d53ff2ff0077ff005571
55cbe5db24dd6e2fbe9beba3fae5c55b3e5fb426bf59bedffe5faebfeaa62aefd0169d7eb37dff0049b
73ff553156ff415ad6bf58bdaf4ff007b6e7feaa62aa4de56d1669e3b9bb85ef258bfbbfadcd35ca0f70
92bb257df8e2a9c222c6a11142a280155450003a00062ade2aec55d8abb157fffd7f7f62aec55d8ab
b15762aec558a796351b7d3b468acaf52e22b98a6b90f19b69f6adc48c0d447420820838aa71fa7f
4df19fc3fde6b8ff00aa78ab635dd38f79bfe91ae3fea9e2ad9d734f1d4cdff48d3ffd53c55afd3ba778c
dff0048d71ff54f15412dcc77fe64b19ad92568a1b3bb592478658d55a492df88abaa8a9e269f2c553
fc55d8abe79fcd6ff009c74f2dfe7e6812c57d7b268fe62d2756d4ff466b30c4b3158e6b863243246c5
79c6cc036cca558541fb55554bf243fe718fcbbf907736b7f06a72ebbe67d56e960bbd4e6896dd12d
d2dae18450c4acfc416a3312cc5b8af4c55f45e2aec552cd73fb8b4ff0098db4ff93cb8aa678abb157
62ac7fca3fef2ea7ff6d6d47fea25f156418abb15762aec55d8abb15762aec55d8abb15762aec55d8
abb15762aec55d8abb15762aec55d8abffd0f51bfe6ddfe97e618744f312595b25b6bb71a36b7227a
80db5a4d6e27d32f096721639cc90c2ecdf089a4e23ecb62a9ecdf9976ba369124fe6181d35b8ec6f
3531616e8544b1595baddb2465d8d5844e9c989e1ea73553f0f1c551b37e66795edd2f1a47b87fd1
d1cef7e608249d6192d11249a1668830f5104836ef4655ab2918aab7983cd77761a768f35858cb1d
e6b7a847a642b791f136ed2890fa92c5cd4903d3fb218135c5529d1bf336c93439af3ccee91ea5606
fe4d516c239248e1b3b0d426b0fac9425dd6363096fda238bf6438aa6d6bf987e5cbbba163134c2f5
92e1d2dde3e1231b4bc1612a05241e4b295dbf9595fa362a8fd4fcdfa068fa8be97a8ddadbddc568d
a948af4502d23e7ce41520b05f4cf2e21b87c3ca9c97154a751fccdf2d6976d25d5da5e88e2176f20
5b594911d85badd4ce36a32889c35549a9e49fde295c5519fe3ef2cb4f2dbc774659a2b986c4a229
2c6eae4afa51f1fb40b870ca580529c9f9715638aaed3bcefa2eafa8a699a71610000026060f00222
0574d464301000000000001000000000000000e00000000200000f4440100f4a401002dc5c5d564
171c216e16ed0cd2dbc8b331a05649216461e3c7f65ab8ab24c55d8abb15762af98b5850fe66f335
791e3ab5d9a2b30e8c3b03e1be2a9b791a303cf7e5e6e4797af73b1766a8fa94fdb9118abe87c55d
8aa59adff716bff3196bff002797154cf15762aec558f7947fde5d4ffedada8ffd44be2ac8715762aec5
5d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb157fffd1f6dead
e42f27ebb3ea975ab6916f7571acdbdad96a9248b569edec2569e08dcf823b9618aa1352fcb6f2be
ada85f6a57d1dc492ea2b7097317d66510917966b6137140d45e50a28dba15e4b435c55a4fcb6f2
dc71ead0c66f12df5c56fd256e2ea5f4649a48d62927e1cb8895d5473751b9f8bed7c58aa7baa689
63ac7e8f37dcd9b4dba8efed4ab15227855954b53a8a31db15497fe55c79578caa6de422e23bb82
ecfaae0cf6fa85cb5e4d0c85482c86577603f679baafc2cc3154547e44f2a47adbf98869b19d61af0e
a42e58b315ba6b65b467504d16b1a8a8038f3fde7dbf8b1554f307937cbde69283cc1682fe18ebe9
c131ac6acd1c91332f752c9232b712390a72ad062a809ff2ef41bcd363d2f509afafe18adeeecc4b77
7934f39835087eaf2ab48ec58fc1b035a8fb5f6b7c550ba9792bca92eafa647796525c6a120a59ea0
d2b09edc58cb1dd47c5c51a8b2229406a17e25fb0eca554fb4cf2b68fa46a12ea7611345753c6f1cff
11e2e659dee5e465e85da491999bdf154e715762aec55d8abe66d70aaf993cc454a82355bbab1db
7257c31547f9159879efcb5c893cee2ee9e155b29ea7157d158abb154af5d3482d3fe636d3fe4fae2

a9a62aec558c7e60f9fbcb3f963e52d43cebe6eb936ba269aaa66645324aef230448e341f69dd885
51f7d062af06fc89ff9cbbfcb5fcc6f34cfe4586defb46d6b54bdbcbad24ea022f46e7d691e6f483c6ed
c640bd14ecdfb2c4e2afa8315762aec55d8abb1542c97a91ea16fa79525ee229a657a8a010346a4
11efea0c552abcf34c167e6ab3f29b5bb1babdd3eeb548ae4ba2c423b39618590d4f2e45a74a6d4a
72f0c552ff002d7e61691e63d2ecb583c34fb5bcd3a0d5847753c3ebc70dcc8d1c61e3562454ad15
becb37c0b56c55a8bf337ca13eaf6ba6c3a9db3db5f5b89ecb525b889ada690dcfd50c084354c824
a291fcc78fdadb154ef50f32f97f49b86b4d4f52b7b4b9548a568a691518477130b78da87b3ca446b
e2ff0e2adbf98f418e716d26a36eb724ba884c8a242d199030e35ad41864ff916ff00ca71543c1e71f
2b5cd9d96a11ead6cb67a8c02eeca591c442480c6d2f3024e240e08cfbfecab1fd938aa9dcf9c7465
d163d7f4c9d356d364bab5b213594892272bbb88edc306ad08532a9343f67a62a8a7f3479763bb3
6126a96cb7a268adbeae655127ad39711a71ad6ac6370be25587ece2aa37de6ed02ced5e75be86
79feaf35d5b5ac72a7ab3adba3c8c220c454d236ff8127a038aaa9f31e9c9a05bf98ae245b6b3b9b6
4ba8967748d8fa917aa12a4d3953dff0c550165e7df2d5ce8363afdd5ec7636f7ba6aeb220b875f59
2d1a15b8666552d5e08c0b71e5f762a9ac7afe892cab026a16febbc1f5b588c8aafe805562fc49040
01d49f00cb5eb8aa1e1f36f966e2ebea506ab6d25c8864b96449010b0c1218646661b0e0e0ab026
a1862aa83ccfe5c2f6d17e96b3f56f1cc569119e30f2c8b27a4ca8a5aa487f8080366f87ae2a9ae2aff
00ffd2f7f62aec55d8abb15762aec55d8abb1562fe66d634bd175bd02e756bc86cad9cddc4b2cee23
52e620428276a900e2abdbf30bc8c82ade61b003a57eb11ff005c55aff958be44a95ff1169fc8751f5
88ebf7571570fcc5f221214798f4fa9e83eb11d7f5e2ae3f989e440013e62d3c03b026e231bfdf8ab5f
f2b1bc860953e63d3f90ea3eb31d7f5e2af9935cf37f979fccde65b9875481e17d56eda192362eadb
8a10501a8d8f4c551fe43f3879720f3f7972e6f758b686de39ae834923f041cece7e2391a01527157
d187f31bc840907cc9a7540a91f598ea078f5c55b3f989e4402a7cc7a750f4ff00498ffae2a946bbf98
de41920b20be65d34937d674ff4a8b7a4ebd3e2c55373f98de4215af9974d14eb5ba8b6af8fc58ab6
3f313c864803cc9a6924540fad455a1eff006b15795ffce42e97e46fcebfcafd4bc8969e74d274dd52e
2486ef4dba9aea3687eb36afcd5640ac5b830aa92012b5e5c5b8d3157c99ff38eff00f38d175e54fcc
ed2bcebf989e6cf2fd868de5aba5beb582c75582ea6bbba86be950a1a2461a8cdce8cdf678ef5555f
a0ff00f2b0fc885b87f8974de5d78fd6e1ad3fe0b156ff00e56179176ff9d934df8b65ff004b877a7fb2c
55c3f307c8a4161e64d37883427eb70d01ff82c5577f8fbc8ff00f531e9bd397fbd50f4f1fb5d31570f3f
7920d29e62d38f2d97fd2a1dcffc162a87b5f31681ae79a6c63d1b53b5d42582caf0ccb6b324cc80c
96c016084d2a7155fa9793a1d4fce163e6bb89229458e9b77a5c76334025426f2682632f266d8a9b
75140370cdbe2ac16fbf2baff0040f28c361a54efab5cd8e95a7e8b0c714089301637c2e85d46ad71
10e69f6953d54f894157fd9c551769f95b71a869b18b99d34b76b64b6fabc70726aa6a8baa34cf59e
5a492b83ea2891c55b972fd9c559479d7f2ff004df3b9b637f712db8821b9b69521a719a2b908ea1e
bbfeea68a19e323a3c7e0cd8aa53abfe585c6ab7fa1dcb6b8cb6da34b6574616b65679ae6d05c896
56757500cff5a62d556e0ca0afda752aa174bfca4974d845abeab05e5b369d6ba7b9b9b1579a39ac
2d1aca29eddcca7d225082eb46f8b97064e671564dfe1165f27693e548eed54e94ba62addfa5b49f
a2a58651fbb0e29cfd100fc5f0f2c5522b5fca9b78b42bdd067be470c43693aac56ab16a56cd0dd1b
cb779272edeabc32d0a9e31ab7eda9e4d8aa26e3f2de39755d42f52e6d9acef6155822b8b249ee2
d2e12c9ac7d4b79f9a94568cfc4bc397dba3812362a8fb9f275cbe9fe5bb7b5d444375e5e4f479b43
ea41711b5a35a3868f9a9068dcd486f848a6eac71563ba3fe513e97a55ce892eab0de58dc588b54
9e5b15fae4171fa3974c796297d52151a340dc38f21565f538353155797f2baea73ad1975783d5d5
1cdd5a5e0b056bbb3ba78e147092b4a7940cd0293115e457f7664e14c551dab7e5fde6b331bcb8d
563b7bd92d5209dad6dbd38fd786f63be8e554691b6e71f19158b7a8a7ed0c5515a6f9156c3cd87c
d4d72924b22dffad6e21e2bea5fb5a1e48799e3c459ad76f8d9ddf6c559862aff00ffd3f7379af5ab9f2
ef96b55d76cf4e9b56bad3eda4b98b4db605a69da315e0a155989ff005559bf9558ed8aa41a27e65
6857da547aadf5f599b3bb377269d7761249750dc5bd840279d88f4c34524603ac90c803ab211be
2a8e97f317ca10dcc3686fd9ae6e245b7b78e3b7b87324f25afd792342b190ced0032aa8eaa0f862
aba2fcc3f27cf7b05843a9079ee5ad121710cde896d4a2335a832f0e00cc82a956dcfc3f6b6c5593e
2aec55d8abb157907e7b48513cb54ad1aeae8120d29fe8cc7157914d78fea4483920248ebc89f87
6ff318aa98bd9b8f22c43900860295efb751f40df155a2eae11d8ee5dc6c46c09f99e94c55b92ee67
29f11000d8d475f038ab4f7531615ac8cc0ee2bb53b7bfd18aa4be5cbaa5bdff2e5bea97fc509e26b
ebb0ee7fae2a88d4e599350d0c213f0de486bd77369703ec9f03e38aa3d6ea78b956561cb7029be
d4af7eded8ab66e9dc866762cdb82db03e07c31579ef9eff353c9fe52bbb3b2d7b54583511756d72f
6e1249e510a495e4c918254505457af6c5596e93e64d2f5ed2adb58d12e96ef4ab9526dee62ab03
4ea3a860c0d6aa40e38aa6125cc8a0ab54b30e22a3722b415edf762a87fadc87a16a11c799eebf6
69b93434f1c55584ae9c8053cbedc657e2f9fbe2ae4bb2cd59243caa40f73e1b77c55c6ea57600b1
15ad4fb537029debe38aaf178e0945abf11b0a1e5d7c00ede38aae4bd701802dcb60a29fe7d7db15
5d1cccca64e4c19aa493d284f5a9fe23157a17e4bcef71e7a95e422a34ab9e22a4d6b736f522a3db
157b845aee9936b973e5c8e563abda5bc57b71018dc05b7b86748df995e079346e281abf09c5532
a8e9df1575462aec554e5b882031acd2a46d33fa508760a5e420b715af53404d07862aa98aa5c35
cd2ceba7cb5ebffb9a5b41a89b6e2ffef2990c21f9538fdb14a57962a98e2a97df6b7a669b7fa66997
b37a57bac4b25be9d1f166f56586179dd790040a471b37c447d9c5552fb55b1d365b182f25f4a4d4
6e3ea76638b3739cc6f2f1a8040f82373bedb62a8969624748d9d56492be9a120337115341de831

965

55f8aa9c33c170a5ede4595159a32d1b0601e362acb51dd581047638aaa62aec55fffd4f7aea166d
7d68f6c9732da3b1565b8b72ab2a1460c29c830de94208351b62ac2eeff00297cb976d7930b8bab
6bbd46eef6fefa7b63147eacba9590b09fe0f4ca0e512aeeabcbd41ea333316aaaae9f963a2c779a7
deaddddfada6dec3a8db02d171f5adf4c6d25790f4f753031247fbf3e2ff27154bfcbbf968ba4eab730
dc4b249e5eb54d157498cba3492b68907a71b4f48d4d558230e268c56bec557a362aec55d8abb1
57927e79469247e5b57e9f5ab9a50d3fe3d5f1578ede5a7078da9c996a6b50092d500f714dfe78aa
c584c01580340393f5e8a76fd5df15692dcb020f2dd895f0f877c557b5a7c340284d2800dbc05474fb
b156fd03ea0e4096a15dbe7d37dbb77c55421d321b41318a254e524970f4e5bcb2b73622b5dd8f5
ed8aa224d3a395a19248b9b5bf2781d89e48eea50914a766a62aa6b0871c9ba29e2031df91aede0
462ab3eaadea16156e951db6ad3c69b62af91ff3cbf27fcff7ff00981a9f98745d2ae359d2f5578e581
ecd7d578a91aa7a6e83e214e3d40e34c55ec5f917f97baff927c922d3cccc20bdbcbc92f3ea21b9bd
b2322204342579b712c42d69f3ae2af51fab891f91561c8f4af400500a9c554d6c844e5694046c37e
8c3b62ab8441b8c7434268196a2a36a9db6ed4db155e6cd53e259080b45f8ff00649db6fc3ae2ad8
b422462a150d694af456153d3f1c55afaa142a5980a13423720035f035fa3155eb6ab2161c4f82fc8
9a807dbc2b8aba18194482a6854075af420ee7c77a0f6c55e85f932a57cf92035afe89b9dc9ebfe91
6be1b62af48b9d2fcd565e7cd67cd1a669f6d796779a45869b6892dd9818cf693ddcccce3d17e287
eb0a011c9be16f87a62a91dc7e5bf99352b49edafefe38af40d5986a50c9272ba96f675b9b1695280
8faabaaed56feec2a7c0eeb8aa7fe45f276afe5d9efaeb5dbd86fe69a4926b230a346206bfe13dec6a
0ede99b804c5fb4b171527154a2cff002d75bb6f338d41b5489fcb8b7374834c657666d3ee254d42
356726bea4779c957f67eaa7875c552683f2f7cf32dfd9dfde259c52417b657aa897524d1dbcd1585
fd8cd2c224841af29e1997912efc78bbf315c551da57903cc1237971b5bb1b746b1bb0fe6111ea171
731de8874e96d04e124441f1c8d1c86323f679bbbbaae2a8bf39f92fcd9a8f9d3fc53a03c0608b4cb2
b36b59677b76b936da97d6a6819d11f82c91ec1be2f8be165e15c5510bf97faac72c32e9774ba5db
cba63db5dd9bcb3df18afadcb3584d1cb2105bd13349ea547c7c221f6505154269be49f30fe92f28e
ab756705a5ce95a8cb7bad2adf4b76b216d2a7b0f561f52350a5da4562802ec0b3167c554fcd9e49
f3aeb5aa5cbd84d6e94d49b51d2b589277496d2193489ac042b12c64d639e4f5810ff001076fb2e3
155b3f913cd3710585c59c76fa56b31db6a70493fd726bb105d5ed9456f1dc445d010bce10591429
dfd4de42d8aa3ad3cade618ee6d659b4e8ce997ab28d574a7d56790db5cc8f091730ca235da9111
e9a08e84f25dde4c552bd3bf2efcdd67a56a3a4acf05bc774bada5a3dbcce9e85dea3a9cd7b6f7a0a
aa9e41245575fb4ad1fc25958e2acdfc9fa0dde8cbab4da8fc77d7fa95edcacc656989b596e1e4817
e2fb3c55e9c06cbd31564d8abfffd5f7f62aec55d8abb15762aec55d8abb1578c7fce43ffc72fcbff6bfd
ed9bfb9feff00fde67fb1ff001b62af046eb17fc75bec9fb7f31f6b15587fb94ff8eaf6fb1f33f67db154441
fef3cbff1d5e8df67fd638ab70f58ff00e3adfddb7cfecfed62aa56ff00ddc1ff001d9ebf4f7e9fe4e2a88b
cfdaff008eaf5fe07a7f1c55d75fdd2ffc763a374f9375c550d6fd53fe3abdbe7d3f6bdb15548bfddbff00
1d6ea9d3a743f67fcfc315561f6e5ff8ecf53d3ecf43f67df15526feea1ff8eb741f6becf7fb58aac87fb93
ff1d6fb7fb3f6ba7ecfb7fc6b8aa99fb727fc74baf7ebd4f4f7c551b17f7e7fe3adf624fb7f2ef8aa92f57ff
8ebff007a7af5efd3db156e4feedbfe3adf63bfcbfdd7ef8aaa37f7907fc75fed9ff888fb7efe18aaa3755f
f8ec7f7a3fd6efd3db15537fb179ff001d9e87a7d9ebfb3ff1b62af4cfc8bff94e26ff007abfe3913ffbddfd
effbd36ff8ff0037d18abe8bc55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb157ff
d90000000840010824000000180000000210c0db01000000030000000000000000000000000000
001b40000040000000340000000100000002000000000000bf000000bf0000af430000724303000
0000000008000000080fe7fe9430000008000000080ff7fa1432100000008000000620000000c000
00001000000150000000c00000004000000150000000c000000040000005100000034510100000
0000000000000d201000042010000000000000000000000000000000000005e010000f20000005
00000002404000074040000c04c0100000000002000cc00d301000043010000280000005e01000
0f20000000100080000000000000000000000000000000000ff0000000000000000000000ffffff00f
efefe00c9c9c900a0a0a000a7a7a7009a9a9a00a6a6a600a5a5a500c6c6c600fdfdfd00fcfcfc00fbfbf
b00b6b6b600a9a9a900a3a3a300c1c1c100e1e1e10047474700cfcfcf00d3d3d300aaaaaa00fafafa
00f8f8f800f9f9f900f4f4f400c7c7c70086868600f3f3f300f2f2f20050505000e9e9e900f6f6f600d5d5d
500d0d0d000bfbfbf00c3c3c300bcbcbc00bababa009c9c9c00c8c8c800d4d4d400e8e8e800d1d1d
100e4e4e400898989008a8a8a00dbdbdb00cbcbcb00cdcdcd00ebebeb00d2d2d200c2c2c200e3e
3e300efefef00d9d9d900cecece004e4e4e00dcdcdc00e0e0e000a4a4a400eeeeee00949494009f9f
9f00f5f5f50095959500e7e7e7004040400051515100e6e6e600b3b3b300cacaca0079797900e5e5
e5005f5f5f008e8e8e00a1a1a1009d9d9d00dadada008080800092929200c0c0c000bbbbbb007f7f
7f00b5b5b5003f3f3f00bdbdbd0098989800f0f0f000aeaeae00f1f1f100adadad00eaeaea00595959
0072727200b2b2b200d8d8d80069696900dedede0075757500dddddd008c8c8c0067676700b8b8
b80056565600737373004f4f4f00888888008b8b8b00ededed004d4d4d007d7d7d00626262005c5
c5c00f7f7f700686868008383830066666600acacac00535353006b6b6b0058585800919191006c6
c6c00d7d7d700424242006f6f6f008d8d8d00c4c4c4007676760090909000575757009393930063
636300c5c5c50099999900b4b4b400d6d6d6009e9e9e00ececec00b0b0b000afafaf00dfdfdf00e2e
2e200bebebe0038383800ababab006d6d6d0064646400858585001a1a1a004444440055555500c
ccccc007b7b7b000f0f0f00363636006a6a6a00a2a2a20061616100b1b1b1004646460011111100
0b0b0b0071717100707070007c7c7c0025252500131313000e0e0e005e5e5e00818181008f8f8f0
01717170001010100121212002424240015151500141414000505050010101000080808006060
6000373737003a3a3a001e1e1e005a5a5a009b9b9b00a8a8a8009797970054545400525252005

b5b5b00969696007a7a7a008787870082828200b9b9b900777777005d5d5d0078787800b7b7b7
004c4c4c00272727003b3b3b00656565007e7e7e00434343006e6e6e0045454500020202000d0d
0d00747474000606060003030300040404004b4b4b0041414100090909002e2e2e00343434000
70707000a0a0a0016161600333333000c0c0c00202020004a4a4a003d3d3d00848484002828280
03535350019191900484848003e3e3e002b2b2b00292929001818180030303000323232002f2f2f
001b1b1b00393939003c3c3c002a2a2a002d2d2d00494949001c1c1c001d1d1d00262626002121
21002323230031313100222222002c2c2c00010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010102010a0114c26b5381ce95ab63a6cee54f9a4fce74a681c84fc874ab956b74c263c41be
5c2a62e748169a6c474c69a746c2dc44f6b53ce9ac4746ce5abc64fc6636fcec44f48536b7453c863
6cc4c4ce2dabc2c8ab74c39ac8c42dab5348531b4fd49ae52de5c86f746fce48c4e5aba64f53ababc
2e57ac3c381c8c42dce53c4c4956fa6e56c1b69ce95c365c863e52d6b53ab6b7f6f6f1b6c74c881c3
7fcec6811b7a749502020101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101000001010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
0101010b0101905e044d9e9e9e045704270650bb074d4dbb273f273e4c040815084d4d0f043f4d0f
5b0441040e4c3f8a0705150807089ebb4cbb05089207053f0706873f06878a4c3c4c064c273f079e
0408054c0fbc159ebc054d0f050f07044d06c104063c0f06053c0f57065727bd574d0e3c9e9e27085
904058a049e3c8a0f088a050e05042704040e054d0e078a9e0e15bc0e07bc3f0859928a0715055b
1506590808bb6f1601010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
010101010101010101010101000001010a0c01010c010b0201010a0a02010101010b020201020b
0101010a010101010101010101010101010101010101010101010101010101010101010101010
10201010210a65905bca0590f9e3cbb9e07079204071507579e043c920f4c9207080e153cbcbc4c
925b4c073c059e070e150e07050e059e4c1592765b07a005159e273f3c1527bb080f088a3f92080
e3c0f089e9e050f768d929e3f0f0e50874c043f044c9e043f0f4c923c274d278a9ec157074c87274c0
8054cbb9e3c3c5006083c068a3f3f058a4c4c3c3c27bb4c8a3f074dbb0ebc0f0e080427870415083f
4c083c8ace1802010a01011801010a01010b010a010b020102010b010c0102020201160101010b
01010101020101180101010a010b02010b010c010101010a01010a01010101010102010202010b
0101010b010101010c010102010b020202010102027201010b02010b0102010b0101011602010c
010a0101010101010100000b0101010101010c0101170a0101020c0a010b01010c010101171601
0b010116010101010101010101010101010101010101010101010101010101010101010101010
1018053a015a0a059080f3c8a3c8a0415044d8a04874c278a3c8a8abc0f070708040f3c3f08054c0
53f4d270892053c4d4c05079e060f050715057608080706874c5b3c9e050f083c3f9e279e0f3f3c4c
2d73f3f9e0d0060e05040e3f8406bb4d27bb4d9e073f3c27574d4d4d274c06c1bdc1c1273f8a8a3f9
e3c9e063c3c928a04bc4c9e08929e040f4c4c8a41274d3f9e3f274c0e9e573f3c05084c3f05054c87
9a18010116010a010a010a020c010a01010101170117011601020b010a0a01010c010b010c0118
01011801020172160101010b010101010b72010a010101180c0a01170b020102010c0101011601
0c010b01010c020201010102010a0101010116010101010a01020b0101011801010b0101020201
010101010100000a0201010a0201010a01010202160101017201010b0216010b014e7c1d011801
01010101010101010101010101010101010101010101010101010101010101010101010224538c
bc764c3c0e07bbc1270f8a07043f4c9e060406bb4c8a3f084c4d0f15bc0f048a0f084c083f4c0f0487
08053c4c9e5b59579ebc3c080f08080f5787040f923c9e040f4d4c273f3f043f4c5bc6a7000000d700
9c8a5487048a9ebd874d8a57574d273f4c06063f8a3f4dbb27bd048a3ebb0f4c04048a073c049e06
4c578a058a3fbc8a8a07bc3f270f0e4c57874d3f9e0f3f4d060f06273f3c3f278a4d064f0a010201163
a7c2f60383b0b012f8e160b0c010b0272010101010a010158017216010136030a22163a89021980
6016457c5c0a0b16013a620a1d2433010b01200b010111242c0a5c2b5802010c17802f3a58018f0
36d0c1d381901099972011990330a01297c013d3a49020b1a49010c01010101010101010100000
101020102010101010b0b01010a0102010a01010a01010c0140651b0101010a010101010101010
101010101010101010101010101010101010101010101010101010a0a24538c055b927604bd874
d414d27050f06063f4c4c06270f0f0f0f0408043f4c0f080f8a3f3f3c3f279e080804068a9e06279e574
c073cbb4d4c084cbb9e3c8727043c3f054d0f278a3fbb870e2decae00d6d500d200f34c41878a088
7bdbb4c2706048a0627bd578757274d3f4d50062757874c0408158a0457273f4d873e274d415727
27bdbb27bdbdbb4c048a27063f084c4dbd874c879e8a8a3f9e9e8a57a61802020b1834e03f808dc
d8f4141604c200b5927018a860a02010a0b6d691649500216aaac044a4566503b70cd6b3399e95
c01010101cd2d8b947b3e0316014b490c89c7530f2a23cf4201010aaba69077c908943f761757e55
ac17327242a5e1b046264f3093a2e214e3c165ec5010b0a020101010101010100000c0a01010c0
1161d8b5a0116011732011718181901205a01400a0f4b202001020101010101010101010101011
610000026060f002220574d464301000000000001000000000000000e00000000200000f424010
0f4a4010001010101010101010101010101010101010101010101020186ab5f153f0f923f574d153

967

fbb273c0f06bb8a08048706040f9e3f8a044d27049e9e8ac18a4d4c04279e3c05bbbd4d3f8a3f3f9e
0507154d9e0805bb3c4c3f578a9e088abbbd4c8706bb8a0f8d9d00aedaaed2d6d700d64f414b849
e0727bd8a4d874c9e875741bdc1c127bb570657bb063fbd044d044cc1064187c13cbbc1bbbbc157
878a843e57273f274d9ebb2727043c8a4dc13f8a7a4c0f4d3f040f9e27ce1601010a0117a1647201
8bc5773d017f26019d7333bf9e0102010b0190d11a6bba36204f6d0d7401ba42a0c701013a21947
2011801017b6b52850116420189e426016f57010a6d2b1219010b7c710101c737c746181c406bc
95abe1d010c54ce1602182be3014b8201367840c213010102010a0101010101010000010b020b0
118920f7cbc1502337825ce4c3da6303a68222fd02a066331076401010101010101010101010101
01010101010101010101010101010101010101010101010134a6929e3fbb05078aacbb87bbbb27
8a8a9e8a084dbdbd068a27574d064c9e0f8a5787064c4d8a044d9e2706074d9e274cbcbb4dbb87
0f4c059e8d3f27bd4d040f278a3f8abb0650bdbd063f9ecd0000000000d600d2ddc604504b7a084d
50570684bd5706c15041bd068abdac879e0f578a500657414b7f57bbbb824c4d41c127bb0627573
ebb87413e82c10850578a274d06063e4c57c3bd078a2741273f4d4f0c010101011c1221010b0b24
7b020ac1823d73227bc6333d0a1601019a513cca1038012a222e5301ba2a597f20581729701802
0b01727e6b5f1b171d3d1641274701e5541c8b1c47e9720b0160c00a0a9d3869221d1f1682525c7
b2f428f460401010214770b8292021c7020a530160a01010a01010101010100000101010b011890
110132cc49085e0a698a0178646da78e1877018abd1624bd0b0101010101010101010101010101
0101010101010101010101010101010101010101010223813c060f8a0f06c17f3f8a7a060606064d
870527bd57064d06414d9e0f57c1bb064d8a8a0404067a27043c4c9d74bb068ac19ebb064c0f3e8
18a41bb573f4d8750bb0f27bb504b2706274dbc7b00aeb3d600d6d6aed26f4b4bc17abd06ac8487
844184824b7f7a7ac1bb7abb27c1068257824b7f415041504106064d87c13e3e87bbbd41842757b
d06bd3f873e3f278441410684417a874d07c1bd8a0427c1c8200a01010a40d1210101012a483220
9d2b6bc1019f303abc01010b7c7902bc81010f32bc2a571b0c5d112fc435743f3743228f0116017bc
435ab3a488a6277209999478d2978234ecf020a0a408445587937419233701d7a1501062b3c4a3
508195604896e2013072023d4179f3f220c010a0101010101010100000a0116010a0a1901015e91
72071b014f8a0cc64e6dfc8e3d7102c17a013ad00b0101010101010101010101010101010101010
1010101010101010101010101010a01010151c8074d08278a87572ebb274127c157040527054d8
74d3f4c4d418a7abbbdbb9ebbbdc13f0f4cbb840f3f0607d8483c4b3e578a4d040fbcc383279e8a3f3
c2706872741069e573e3f4157bb271ba9d20000d7aed200ee57412e82bd063c417ac13ebdc12e7f
7a3e823e27847abd849ec10606bd7a2757277a3e874d3e65414165873c574141273e8241413f41
274d7f3e043e7a87bd3e0406923f06044c3fbb530a0101010119d87c010a010131c5262317ac306
4c31158bd36010a990f40155f165f387c80463b2a978c012f034d2c7c59468d01010aa5ab0162609
23509070c49c9202f808d17037d7201010c1f2860be7c172b864701698a7258375160018f3a102f3
8ee7c0c608f3042011003c9190201020101010101010000010b01011601014e70f034014c6f01ce
27027b312afa135a66016c4801c1d40b0101010101010101010101010101010101010101010101
01010101010101010101020c0156c6074d3f08043f574bbb08848a4c9e4d41874d3f274c9e06068
a27bb87064d2757bd06bb873f0457874c3c3c444f8a84ac502705874cbbc1c04d9e3f068a044b412
7c1828a9ebb57bdc157bb871e00000000ae00a8d4078765bd508a8a4cbd41c182bb84ac84bd573
eac84bd064d5784bb4c4dbd65ac873e6c82270682bd06843ebd0627414182ac4d9e3fbdbbc13e87
bdc104840604bb4d0f273e41c10884531c010101013de98901010b01010a0a0a0a010102020202
020202020101010101010101010b020120bc600201010101010101010102017bab010a01010101
0101010101010b010109e40c0a010201010175890a0a01010b60140a020101010101010101194c
6d010b0102010101010101010101010101010101000002020a010b0199cb7e32010c3f06167a10
42c38c05c651bb5b014b1b5b5e4701010101010101010101010101010101010101010101010101
010101010101010102010a015281054c0f9ebb8a068406bbbd4c87ac41040450064d27bd3e4127
3c068a4c8a06064d3f040657bd4106bb8487e9c23f2727068a87063c3f0668c18abb0657bbbd275
7504157bd3e3ebd274c50ac4baaebb300d5fd7b4cbbbd84652e4dbd5750504182bd2e7abb50657
a8487874d4d573ec1417fbd3e4141843ec14141570641ac3e06414182503ec13e7facbd84ac50bd
57413eac3e270687274d4c063e4d501b160102010c30c0887201010101020a0a02010102020202
02020202010101010101010101011602011d010101010101010101010b0118538216010b01010
10101010101010101725266360101020a0b3d742902010102010b17010b010101010101010101
58011601010102010101010101010101010101010100000b01011701183cbe02014c200a160136
0c010b013d010132010c0118401901010101010101010101010101010101010101010101010101
01010101010101010101010101c95e3c04bb272704c17a3f4c4157578a4c2706bb8a4c878487873
e3ec14d8ac184572706064c074d82508757bdd8ce4c874184419e9ebb4157bebdbb844d06bb060
6410687c1574d27bbbbbb87ac874b657bbf95ac04bd657f575784413e8a4dbdc1823e414bacc37f8
75082bb063eac50bdc184843e4141bd3f04873e577a823e0604c187270641278a41c1c13e57bbb
dbd57c12741bd06278abb8a4c574dbd4b0101011601171d0c010c0a01010101010101010101010
101010101010101010101010102010101010101020101010101010101010b016d720101010101
010101010101010c16010c8b010b0a010101015c0a010b010a010101010b01010101010101010a
010117010b010a010101010101010101010101010100000b0202010c0164b63065ab0c020a0c01
02160101010a7201011801010101010b010101010101010101010101010101010101010101010
1010101010101010101010101026781079e0f3f270487bd089e4d3f274d048abbbb87bbbdbd3f9e
065027044dbdbd4d8a87874d4c2741bdbb870777ce4c4c4c8a874d9e2757846a8a9e4d4c57064c
3c27049e278a044d274d873f503e823f95753c8abdc115bbbd8a4d0fc1bd57874d57849e41bd41c

157825741417a848a0487c18741c106278a8a27412741bbbd7f878a8a3f87ac8406bdc14d875727
4c4c4dbd3e414cbc080406278450bd82e5170c0101011801162001010101010101010101010101
01010101010101010101010101010202010c0117020101010101010101010a0a01011601010101
0101010101010b01010a0b010b01010a0b010a010c010101010b0a0a0c0101010101010101010b
0a0b01010a010101010101010101010101010101010000010101010101185a226458010a01020
10101170b0c0101010a0a0201010c0c01010101010101010101010101010101010101010101010
101010101010101010101020101905392085b9205bc27bd0f3f7abb8a068a3c4c4dc15727bb873f
0f8a4c9e044d274d4dbb8a57bdbb3f9e3f060477534c278a3c07574d4c08576a8abd87bd823ebd4
d575727bb8a3fbb4d04bb57c1043f06c89f062708c157c1bd3e843fc1bd57874dbb3e84ac57bbc17
a824dbb06c1879e04bd3e8784c127bb87bb8a5727413fbb65c14d0457bb27bb4d2727bb4dbd579
e9e06878a068a4d064d3f044d3f0fc1c40c010101010a020101010c010101010101010101010101
0101010101010101010101010101010a0101010101010101010101010b010102020c010b010101
01010101010101010c010102010101010120010c01010a01020101020101010101010101010101
01010a01010101010101010101010101010101010000010a02010b0a01010101010101010a020c
010101160101180101020b0101010101010101010101010101010101010101010101010101010
10101010101010101010a0202564f0e043c1592924d3e0404273f3c07088abdbb4c4d8a8a06043c
4d3f4c0f4cbbbd574d048a3f9e4c044c9ebc68a69e4c4c0f0404bb8a3c57bf4c5787bdbd4d874d274
dbd068a4d274d8abbbbbb578a0f747b92bb080427bb4c4cbb7a879e9e4d27bb87872706060657c
18204bbbd068a278706c1415787bd878a8a270684874d06273ebd3e4d3f4d9e9e8abd042787043f
06043f57bb274d9e273e073c0757530c010a0b010102010b160101010101010101010101010101
01010101010101010101010a010101010c010a0101010101010101010a0a01010c010101010101
010101010101010a0118010a0101010101010217010b01010201010a010101010101010101010
b020a01010a01010101010101010101010101010000020101010201010b01020b020101010101
0b010202010b010a0101010101010101010101010101010101010101010101010101010101010
10101010101010101010a010a254f053f0f070f05074c079e59059e3f07150807bc4c278a0815bc4
c3cbc920504273f3c07089e04044c4c3f04be53073f578a3f4d064c0fbd77058c4c27bd043c0e0f04
bc088abbbb273f3c9e27c1bb04e5939206504c073f4d4d3e040f3fbb3f089ebb828abdbd874d08c1
573e874c4c4d273f4c04042757bb8a279e9e0f3f87bb8abd274c05048a3c0f3f049e8a8a08bc0f4c3f
874d4d06040f0fbc9e0827ce0c01010201020201010101010101010101010101010101010101010
101010101010101010c02010101010201010101010101010c0101161601010b010101010101010
118020101010c0101010c0a010116010101010101020b01010101010101010101010b0101010a0
a0a0101010101010101010101010101000001010b0a0101160101010b010202010c020201010b0
10a01010b0b010a02010201010101010101010101010101010101010101010101010101010101
01010101010a0101511b8d0e0e8c925b92089292150e9208059215a0760e043f0592158d155959
1508070505598d920f9e07070f0eba9559bc043c089e3f070e3c710f7608059ebc9259158da07608
070e0f3f0892923f870f6c9d76063f1527043f04059e0e0f279e0704bd3f5b4d4d8a3f15578abd0604
bb870407150f4c9e04040f3cbc4c070f8a3c08048a0f070f080f3f054c0f05053c0515bc8d3f8a4c4c0
7070f5fbc5b0753200201010c0101010a010a010101010101010101010101010101010101010101
010101010a01010c01010101010101010101010101020101010b01010101010101010101011801
1601010202010101010a010a0c01160b0102010101010101010101010c01017201010c01010101
01010101010101010101010000010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
020202012566c37a6c2e6c652e95abab6c95cea653741bc37474c4536f53956c95956b2e1bce6fa
b2d746fc26f4fc4c45312bf7b7bb69dcdb66670757391c653e595ce6348e574484f749595c453534f
5e81ce9ac670d91be54fc8484f4f486348e5c4c6c84f95e54848534869616f53637ed49a5374d4c8c
4c46f63636f74e56f539595a64853954fc29a956c95ce6f5365655353656553abe52e651babc37a2
eab9a7453160101010a0101010a01010101020c010201020c0118010b0201010a010a020202010
a0102010a02010102010c01010b010b01010a0a0117010102010201010c0102010a01020a01160
10a02010b01020c010202010a010201010c020a010202010b010101010c0201010a0101010b010
b0102010101010101000001010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
20b1a7649424549494549113b3b3511118f2c498f3b3b8f358f111135453b3b35452c118f4945351
1118f358f114574786b65536f5e1b6b7474ce73212a2c452c118f492c8e2c4542424935353549354
549453376322a5c2a421f2a452a498b8b422a5c3232428b325a456d453d1d581d40365c6d326d3
d6d5c5c6d363d6d8b585a8b5c3d58365c5c581d366d3636585836365858366d6d585a368b3d191
d5a1d1f9218160b010b0a010b01010101160101020c6d294202011601010102010a0c0101010c0
10a010c010b16020102010101010b01010c01010b010a0a010c0a0102010a01010a0a010101011
6010118010b01010c020118011601020c01010c011701010a0b011701010101010101170101180
10b01010101010101000001010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010102020
1011a38010b01020202020a0a02010202010101020a0a01010101010101020201010202010102
0202010101020b01064fbc050715bc0f4c0f0557e50201010101010101020101010101010101010
10b0b0b0132100a0c010101010a01010201010101020a01010c160b010c01163f9f712e3201010a

969

0a02010101010202010a0a010102010201020201020a0101010202010102020101020a0202020
20a020a01018c1d01010201010b010c0c01020a020c01427b5ebd520c010b0201010101010b0a0
c01010118010101010a01020a01020101010101160218010a0172010a017201180117010217010
20201010101020c0a01020a0172010102010a0101010a010b1801010a01010a010a01010201161
6010b010a01010101010100000101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10a01019047020b01010201010101010101020a0a0201010101010101010101010101020a0101
0a0a020202020202010abbce078a073c578a878a074153010c01020201020b0a01020a0a0a0202
020a01010101012a2301010101010101010101010101010202010a02010a0a0138e70000aeaeef
250c01010202010102020101020a020101010a0201010102020101010101010101010101010102
0101010a0102160b8d5a010a010c01200b1801180b0b0b1672648a16202347180b0b720a0c0102
0101010a0c01017201190a0116014001165a720c162002010b0c0119010a011d0a01010a01180a
0a015a010172581802010a018b0a0c0101361c0202011d010b5a0c01010c320b0c015a720a1640
1701401c1701010101010101010000010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
101010a010134310b010101010101010101020101010101010201010202020101010201010201
0101020101010101010101013f6f3c8a9205873fbb8a044b6916010101010a02010101010102020
10101010b0101010245560101010a020101020b0101020a0a0101010b02010c018ff900d6d6dd00
00ec49010101020101020101010101010101010101010101010101020a01010a0a01010a020101
02010101020a01020a461d010a0c0c17265e4e0a6293670c848c02c37e1b571108bb194bc5020c
010c3692013025011cc8bce5c31d63518fc481411c8dc43d0201018be5470c6f7e8a4501190e200
114941b762005bd400a010b6c4ca0934215716c470a4c92459a783e8e5c7e2e8d1938ab357c061
115894ed08f010a010101010101000001010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010a010101282b0c0a0a0201020201020a0a02010101010202020202010101020a0a01010201
01010a0a02010101010102028a4f0e3f0f08084c274c9ebdc218010201010a0201010b010102020
101010201010102011f90010101010101010101020101010201010101020101180fd700d7dd00e
100b39a16010a0a01010a0a020a0101020201020101010a0b0201010201020201010202010b02
010a0a0101021701010c461901020101011ae419010cf609194f5f0b863f091701655718d4590102
0101bbc7361bab188bc73679ac3abf1782d03245459e7e010101010b633d575e586d8e0138bf494
0c87a16623d7650010a0286715a8e682bc02b163717c21f886e11013b276320321c4c5702a63f72
21271f710b01010101010101010000010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
1010101010c0938010a02010101010101020101010101010101010101010101010101010101010
101020202010101010102013fab15059e0f07769ebc04bd6f720c020101010101010a0101010101
0101010101010b011f560a010201010202010102020101020101020a0c010a014800b3aeb30000
9b00ea0a0101010101010202020101020101010101010a0201010101010101010101010101010
10101010101010101178c1902010a01189943010b02bf90016b8801064b3f8a01c14c01a5670101
170170463ca523490a902bba062c9f17485b40180208c60101010c0ac65c9a3f185817019fbc1401
d437202001bcbb0b02018d7a012c7531c81958200c9a36073e7232187a80010b02060f0b736201
1169497072010a010101010101000001010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010b0201012847010a0201010a0201010101020201010101020201010101010101020202020
20a020101010102010101010104e5050e07158cbc3c540741530c0101010101020a02010101010
1010102020201010b014225010102010101010102010201010a0a010101010a020ac4aed2dd00d
7b3b5aee30201010101010101010101010a010101010202010101020201020202020202020201
010201010101020102010c591d0201010b012b9c563424d9100195880c713b03ca0a046c0b63c9
010a0121c601aa1b5aa0165240bebb359f01bc8260c65459cd720c0a010cc28b764b22a65638bf2
09058bd9226558f157a02010c4e3e0a608535814e567e0cce8b33c689697624540a1a2c8d9e01ac
2b010e4111983b6d010101010101010000010172010102010b0a02010b0118010a0a0101010b0
2010a0101020a010b01020a01010a010b0101010102010c01010b01010101010c010201020b0a0
20101010101010a24140201010101010c01010b010101010101010101010101010101010101010
10101010101010101010101010b9e6ba05b15083c760846c54d6f0a02010101010101010101010
101010101010102010a025c340a010101010101010101010101010101010102020101a000ddb5d
ad2dad6d2ac0b01010101010101010101010101010101010101010101010101010101010101010
101010101010101010a0c0292170b01010c01995542328bd81a40b6c9014c677ecf3b0f948abf11
01170193848bf66701066dc399488f47e34e1c46247e49c3c06b0d010b02c2351752c9cd494f6516
8c566d5b0f8120054101180172c5547a390c37097488328388186751d464403403d0896581421f5
f034f6d809a7a2d020101010101010000010102010b0202010101010116010201010b0c0a01010b
010b0101010a0a010c0101180102010117010b0201010116010101010c010201010101010c0101
16010b0c010147470c0102010b0b01010c01010101010101010101010101010101010101010101
0101010101010101010101010765888d5976765b088d54279a160101010101010101010101010
10101010101020102025c340201010101010101010101010101010101020101180132ca00a2aeb
5d700f632010101010101010101010101010101010101010101010101010101010101010101010
1010101010101010101018c4001010b01017c550b010bd824018b7217013a373d189e068f8f1701

0116608e023332163b021c3d1f2032ab620c72114501726d3b1f01010a7e450236354201648e011
f5c0236491c019ec101010101171838c701403d8f0c40063001165c5c0101163d1f0123463601725
c6d01010a401d0101010101010100000b010101020102010a0b010b010116011901010b0b160a0
10a0b0101020a01010a010172010c01010a01010c0a010102010a0a010a0a0101020b010101021
70101010a01100901011601010101010a01010101010101010101010101010101010101010101
010101010101010101010101054b88598ca08c5b05765f046f17010101010101010101010101010
1010101010201020132340201010101010101010101010101010101010b0a010c014e61b2a3e1d
57031010201010101010101010101010101010101010101010101010101010101010101010101
010101010101010c01176758010201017246e98e016dcf5f190d7c01020b0a0118c44d010b01020
17201011601020c0a0201170101180a01010b0c0117010101010b0145783b020118010202010a0
10
The relationship between the control system and the external devices is shown in Figure 17.3. Note
that only the high and low water sensors communicate via interrupts (indicated by dashed arrows); all
the other devices are either polled or directly controlled.
010009000003e8730100000011a5000000001610000026060f002220574d464301000000000001
00cb1e000000000d00000000200000087b0100089b0100010000006c0000000000000000000000
d20100003b01000000000000000000006a400000822b000020454d4600000100089b01000c0000
00010000000000000000000000000000000005000020030000c40100001a010000000000000000
000000000000e3e306006e4e0400460000002c00000020000000454d462b014001001c00000010
0000000210c0db010000006000000060000000460000004c4f0000404f0000454d462b224004000
c000000000000001e4009000c00000000000000244001000c00000000000000304002001000000
0040000000000803f214007000c0000000000000008400005984e00008c4e00000210c0db01000
0000000000000000000000000000000000001000000ffd8ffe000104a4649460001020100480048
0000ffed0c6a50686f746f73686f7020332e30003842494d03ed0000000000100048000000010001
00480000000100013842494d040d000000000004000000783842494d03f3000000000008000000
00000000003842494d040a00000000000100003842494d271000000000000a000100000000000
000013842494d03f5000000000048002f66660001006c66660006000000000001002f6666000100
a1999a0006000000000001003200000001005a00000006000000000001003500000001002d000
000060000000000013842494d03f80000000000700000ffffffffffffffffffffffffffffffffffffffffffff03e80000000
0ffffffffffffffffffffffffffffffffffffffffffff03e800000000ffffffffffffffffffffffffffffffffffffffffffff03e800000000ffffffffffffffffff
ffffffffffffffffffffffffff03e800003842494d040800000000001000000001000002400000024000000000
3842494d0414000000000004000000023842494d040c000000000ad90000000100000070000000
4c00000150000063c000000abd00180001ffd8ffe000104a46494600010201004800480000ffee000
e41646f626500648000000001ffdb0084000c08080809080c09090c110b0a0b11150f0c0c0f15181
31315131318110c0c0c0c0c0c110c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c
0c010d0b0b0d0e0d100e0e10140e0e0e14140e0e0e0e14110c0c0c0c0c11110c0c0c0c0c0c110c0
c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0cffc0001108004c00700301220002
1101031101ffdd00040007ffc4013f00000105010101010101000000000000000300010204050607
08090a0b0100010501010101010100000000000000010002030405060708090a0b10000104010
30204020507060805030c33010002110304211231054151611322718132061491a1b1422324155
2c16233347282d14307259253f0e1f163733516a2b283264493546445c2a3743617d255e265f2b3
84c3d375e3f3462794a485b495c4d4e4f4a5b5c5d5e5f55666768696a6b6c6d6e6f6374757677787
97a7b7c7d7e7f71100020201020404030405060707060535010002110321311204415161712213
0532819114a1b14223c152d1f0332462e1728292435315637334f1250616a2b283072635c2d2449
354a317644555367465e2f2b384c3d375e3f34694a485b495c4d4e4f4a5b5c5d5e5f55666768696a
6b6c6d6e6f62737475767778797a7b7c7ffda000c03010002110311003f00f5558f761d9765df7555
e2bc32f8bc6457b8967a34edf4edff0007b1dfbec7ad8558633c3aff00731ccc876e731cd9d363292c
3eef77f36929ca6d24d0ef571ba65592c225a1c1ec8f73bdce75353d9fe0dbf43fd22bb878e69cdf76
3d18e5d5ba3d0fce68357f3bfa3abe8b9dedfa6a5fb1f0667ec98b3004fa0de06ad08b6fa955ccc8b2
1d5b5ae63cb4196ee2c76fe5dec6ecf724a6d24ab65752c0c30d395915d21ed2e6ee7012d058c7bf
fa8c75d56f7fe66f45c7be9c9a597d0edf5583756f1c39a7e8bdbfbcc77e6392524492492529243b6f
a291baeb1b588265ee0d10353f4945b978cf65afaac6da283168ac8796bb6b6dd8e6b27dfe9bd8fd
9fcb494c431af7de4b5ae70700dddafe6374541acebb5d6c1662e15cf1b03dec7399321bea3db53e
b76df49ce77f86fd2b2bf57feeba974cea19dd471867d18871a9c83babaf2c9aee81fa3df652c658da
b7ecdd5fe93f9bf7ff00210c743ac49fb162ea083efb38236bbf33f39a5253a058c66653b1a1a0d764
c693ad4acaab557966f63ee6d4c631ae681597132e2cfde6b3dbec569253ffd0f4b1d4f0dcd0e6bdc
e6b802d7358f2083ab5c08627fda38be2ff00fb6ecffc82c77d9918f8b8c7f681c7665d35b2a67a25e6
bdb5bbdf59635fbddbaca7f9dff468d5e45fd4327f50eaa58ddc6df48e37f820057e97a97359fe17f49
bff009c494ebd1914ded2ea9db83496b81041047e6b9ae87351165d75e43b1f3a96643eac86dad6
9c96561cedc2ac7dd636a70757effdcfa084ee9bd65ce706759bd8e01a5938f4960027735dbaadd6

971

3ac9ff004a9299756b6ae974b72dd85666e336c687d74d62d7d01c7df94caff9cf42b6ff003b5d0db2
cfdcaff9c5a75ba86d6d159636b81b0360360f1b6165f47cf7f51a1955956655f6705b73b32938f65a
e69d8db3dbb6b7d767f3aff43d9f43f9bfe6569fd971bfd0b3fcd1fdc92997ab5fefb7ef097ab57efb7ef
0a3f65c6ff44cff00347f725f65c6ff0044cff347f724a47938fd3af61b32aaa6e6b011bac6b5f00fd21ee
0e41c3e9b875bcdd4e2d78ac7ed3e956c6b0b8b46daecc9d81bb9d5b3db457fe07faffcc1edc5a76
1754c6b2d609639a00d47ba1da7d1f6aaf8bd5dd93996e28c1caa854c6d8dc8b18d14d81df9b45a
db1db9edfcf63b624a74145ef6d6ddce98d068093a98e1ab348eba7303f7d630c3c935067e90b0c6
d67a9ea1632caddefdfb7f4acfd0ecabf9f572cb5c4341aded05edd4ed8fa43c1e92997daaaf0b3fedb
b3ff2098e6523522cd3fe0acffc82033333cb897e1b8306f30d7b4bbdbbf68f76caf759b2bff09fe1ff00
e0ad49d9d96583f50bbdf00fbaaf6825addcff00d2fe6efdfecdff00cd7fa4f4eb7a53ffd1f4cab0dd554c
aabc8b432b686347b0e8d1b4735297d9edff00b936fdd5ff00e92552dc8cc600598d7e4cc19a9f5b7
421ae71fd33a96fd2739ad633fd1ffc5a7b2ecb639ed6e2e459b088736caa1c086b9c59b9edfa1bb6
7e93d3fa0929b9463b68f508739eeb5fea3dce89261b5fe686b7e856d4559b9191d4aac70ec4aebb
2e0f06dab22dd818c7309fe758c7ff0086d9f99fe9102ecffac6da9869c0c5b6e711357da8b486981e
b077d9cee631fbbdbfe8bfe13f46929d4ffb543fe2cfe5556deb3894df7556b6c60a0ed2fd8e209d8db
fd8d60739d5ec7ff3bf437b2e67f8241e95d6703a9e4bd98d9355d938ad7559955449f4ed6b832c6e
d786bfd3f51b67a567f855aa929cda7eb074fbcd229f51febbcb19fa3737e8b4d8e73b7b5bf9adfeba
9fedbe9fb43839e41e3f46ff0009eedf36abe99ad6b44340024981a6a4ee77fd2494d5c2ea38bd4b1
5f7e2971ac12c3bd8eacc801df42d6b1df9c8d8bfd1a9fea37f20537fd077c0acec1eb9d1ad8c4ab3b
1ecc8a2b69baa6d8d2591fa322cdaef63b7fb7624a74d42eafd5acb37399a821cdd0820eeefb9666
475ac86657a58f8f5db4ee6b7ed0ec8a9addae0d9b5acdceb7f43fa4f56bdbbff00d0fa8ad64e6e11a
4c64b2010e7ec78ddb5a77bfe81dff41bf9a9299fd8dfff0072aefbd9ff00a4d3fd91ddf22d3f31ff00905
57edbd2458ea9d92f6595efded7d96348f4c7a9693bdcdf6b19ef503d47a2bab73abcd92069173cf2
06c706eef76edec494ff00ffd2f49baa37638a2caae01b1eeade18647eebd96b1e80ce9d8ecbabb85
3905d4bb7b1a6d9683b5ecfe6cdfb1dfcebbfb7e9d9fe0ab5a6924a4549793639cc7572ed0388248
dad1bbd8e7a2a4924a42fc71a1a48a9ed25c081a1dc7759bd836eedff00f569daecada3756c0e8d4
079227cbf468a924a47bb23f719fe79ff00d2696ec8fdc67f9e7ff49a224929caeb5d49fd3710e5e5d4
e382c735b92fc71eabd95b896d973eb863fecf57b3d6f4197dfe97f83fd1ad0aeac72ffb4d75b7d4b1
a01b4340716fd26873a37a2acecfc07ba97d74db6d3458edd60a08dedfde3536c65ad756ff00f0f46
cff008af7ff003a94e8285fbbd39634bc82d3b440240227e943557e99d3f1f06970a2c7dcdb4ef1658
e0f7111ed1eafe7b1bfe0bfd1d7fa2aff00435d6c571253543ded10dc37007b035c7fe7c4c4bf696b7
10891035afc34fcf56d2494ff00ffd3f54240127403ba41cd320106398fbd54ea9f60fb30fb7eef477b6
366fddbe7f471f67fd2acf1ff00367f679dbfd122edbe9fab31ff006b3d0f4bf4df4be9fa5fe13d4494edcf
6ee948e17235ff00cca9c5fb3fda27d56fa11f6ae375bf4fed3edfb1ff0048dfbbf429f37fe647ab8beb7
adbfd1fd1edfb57f478bf7faff9be87f3dea7abff0007ff0004929eb64198edca75cb5fff0032becbfa6dfe
87da1f33f6a9f5e5bea7a9fe13fd1ff39fa3f4ff00e0d499ff00327d6a36c7abebb7d2fe7ff9ddccd9be7f
c1efd9fcefeae929e9d2492494a492492539763ce3e363ba9c1fb56f602f3586ee0606d90fdbbbd4f7
7bff003148dd736f757fb31d657ea06b6c67a701a7dbeabfd5755f47e97e8f7fb10f2bd2fd9f4fdbbd0f
43d9b37eefa51ecfa3fc95531bf657dbaafb3fd8fed7b8fa31be776c7cfa7f9bfccfa8929dca5ad6bac0
d01a370d0683e8b515071bd6fd27adb77eefcc988dadfde46494ff00ffd9003842494d04060000000
000070005000000010100ffee000e41646f626500644000000001ffdb00840004030303030304030
3040604030406070504040507080606070606080a0809090909080a0a0c0c0c0c0c0a0c0c0c0c0
c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c010405050807080f0a0a0f140e0e0e14140e0e0e0e14110
c0c0c0c0c11110c0c0c0c0c0c110c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c
0cffc000110800ed015e03011100021101031101ffdd0004002cffc401a2000000070101010101000
0000000000000040503020601000708090a0b0100020203010101010100000000000000010002
030405060708090a0b10000201030302040206070304020602730102031104000521123141510
61361227181143291a10715b14223c152d1e1331662f0247282f12543345392a2b26373c2354427
93a3b33617546474c3d2e2082683090a181984944546a4b456d355281af2e3f3c4d4e4f46575859
5a5b5c5d5e5f566768696a6b6c6d6e6f637475767778797a7b7c7d7e7f738485868788898a8b8c8
d8e8f82939495969798999a9b9c9d9e9f92a3a4a5a6a7a8a9aaabacadaeafa11000202010203050
5040506040803036d0100021103042112314105511361220671819132a1b1f014c1d1e12342155
26272f1332434438216925325a263b2c20773d235e2448317549308090a18192636451a2764745
537f2a3b3c32829d3e3f38494a4b4c4d4e4f465758595a5b5c5d5e5f5465666768696a6b6c6d6e6f
6475767778797a7b7c7d7e7f738485868788898a8b8c8d8e8f839495969798999a9b9c9d9e9f92a
3a4a5a6a7a8a9aaabacadaeafaffda000c03010002110311003f00f7f62aec55d8ab1ff3db32791fccc
e8c55d74abe2aca48208b6928411d0e2a90689f95df975368ba6cb2f9634e7964b5819ddadd092c
635249246e4e2a8fff009553f96bdfcaba67fd2347fd3156bfe553fe59ff00d4a7a5ff00d22c5dfe8c55b
ff9551f9674a7f84b4aa74a7d4e1e83fd8e2ab47e53fe5728e1fe0fd1806e8a6c6de9b780298aaa0fc
abfcb31b8f27e8dbf8d85b9ff008d31548fce7f961f96d0793fcc33c1e50d1639a3d32f1d245d3ed832
b2c0e410447504115071565fe4e24f9474024d49d36cc927fe30262a9de2aec55d8abb15762aec5
5d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb15617a2e9b06b5acf9aa4d4a5b9
98daeacb6f6cab7771124708d3ece408a91c8aa072766e9d58e2a9cff0084f45dfe1badff00e5faf3fe
ab62ab4f94f433b52e6be1f5ebcaff00c9ec55bff08689fcb75bff00cbf5e7fd56c55aff0007e87fcb75ff0
049f7bff55b1577f84343a538dd7fd275effd56c55dfe0fd0ff0096ebfe93ef7feab62a87f2ac42d6f7cc5

631c92b5adaea0896e934b24e515ac6da42034aced42cccd4af7c5592e2aec55d8abb157fffd0f7f6
2aec55d8ab1ef3effca0be67ff00b64dff00fd43498aa59af79520f3c7e584be569e5780ea5a54715bd
cc4ed1c90dc7a2ad0caaca41051c2b7d18abc63c9d6fe72bbd4e5d4bcc5a24f61a3f9e2ce1f31eaf6
6f6cf30d3afbcb016dee2dfd30e4ff00a6b88668963a724f5a9f1b72c55306fcd5f3f5e5f6937161ea5c
da417370f25b4367e99be0fe5a1a85b5bca4ab7a7ceecbc4a11abc87a5cde48eb8aa7fa379dfcf3af
5d796a1b4d6ec3ea3aedeccaf77069b72cd1410e9eb70627fac0b70b27ac197ec7c0ae236fdeaeea
a1bf392d3f48df79c21ba2f75059f926eaeb4eb4f4bd411df979955e16552e26d969c4f2fb38aa26e7
cebf99f7f7f3e93a05ac56fa93eb1a968f6f6b736aef1c3a6c1a6c97163aa34951c9249d625624fa6c2
6f4969225715596be73f39f9ab43f34c7a9e9771a7e8ada3dcead6b71756e6dc9b2bab030c768c18
06f5d2e63b977ff8a5603feedc55ea9e4dff009443cbff00f6cdb3ff0093098aa778abb15762aec55d8
abb15762aec55d8abb15762aec55d8abb15762aec55d8abb15762aec558b7947fe3abe72ffb6d8ff
ba658e2aca715783ebfe4ebbf38fe6df9bb4fb19e2d2e9a7f96ee06b8a92fd7eda5b5b9bb964364e3
8a091904692316f84347cd1d7e1c552eb1fcd7fcc6bbbc8aca64faabc56762351925d325a437f2799
069d7119a955a8b36f578f2f87fbdfb18aa2eff00f31bf3034fd2358bb37e9ea5a5bf991a09e6d3fe05
3a16ad6f6d6b2b052a1bd7b7924765a80fc79c40018abd3fc83aa6bda947af2eb538beb5b2d565b6
d1b5316ff54fad59082193914fb2dc257962f5128b27a7cb1565f8ab1ef2effc763cd5ff006d28bfee9f
698ab21c55d8abb15762afffd1f7f62aec55d8ab1ef3effca0be67ff00b64dff00fd43498aa61a07fc707
4bff984b7ff00934b8aa3a69a1b6864b8b891628225324b2c842a2a28a966276000ea7154a9fcd9e
5a8d6dda5d56da317520820e722a72959c46a9f15284b90801eae42fda38aa16d7cfbe4abe6992c
b5eb1b97b708654867491c0925302d154926b2a98f6ff760e1f6b15571e70f2b1b88ad1758b43713
22c9120954f259233326e0d2ad182eabf6993e21f0e2a89d0fcc1a27996c46a5e5fbf8752d3c9e2b7
56ce2489895571461b105594d478e2a82f3c7fca15e64ff00b65df7fd43be2aa9e4dff9443cbfff006c
db3ff93098aa778abb15762aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb1
5762aec558bf94c5355f38fbeb40ffdcb6c7156518abb15762a976ada5e95e64d32f345d497eb3a7d
c0f46f21491a33d9b8968d9597b771b62a98280aa1454d052a4d4ede27156f1563fe5f14d63cd1efa
8c47fee5f6b8ab20c55d8abb15762afffd2f7f62aec55d8ab1ef3effca0be67ff00b64dff00fd43498aa6
1e5fff008e0e97ff003096ff00f2697155fad69edab68f7fa5ab468d7b6f2db869e217110f550a7c7131
01d77f896a390db15797e9bf931a9699ab585fc3af4373631a7d56fb4ed52cdb550b650dd1bbb58e
ce7ba9cc91bc0ccc1649beb1b15f847a51e2a861f91d7f2dc47757fac59de71b09b4f96dcd9cd023fa
dabb6aa245922ba596275242a3c6fcd1d44aadfb38aa3adbf266ee20b6d77e639751b17bcd375bb
93750d2e9b58d1ed62b78a659a391488e43044f2c742c78b289292b62acf3c95e5f97ca7e50d0bca
f3dcadec9a358dbe9e6ed23f404a2d635883fa659f8d42d69c8e2ad79e3fe50af327fdb2efbfea1df15
5fe4dff9443cbfff006cdb3ff93098aa778abb15762aec55d8abb15762aec55d8abb15762aec55d8ab
b15762aec55d8abb15762aec558bf94e9fa5bce20751acad7fee1b638ab28c55e51f9a9e4df36799
6faea7f2f2cd4fd01736b652457cf66135537704b6efc56450195164a494aad698aa557bf97fe787b9
d6e0b5573e5ab88f598748d2cdfb4725bdddf456ad697a928766411c8970bc41e70fa9ea46bb9c55
ad13f2efce5a4dd3a6a70a6aba74da95f5e6b0b1dc880ea06f6c218a3b81ba51a29a392aae578fab
ea475645c5591fe59f92fcc3e5ebfbfbff00364f25feaa6d74eb58b527ba926599e1b2862ba75899c8
4e72c5cbeca97fb5d49c55e958aa45a27fc767ccbb0ff7b60e9ff3036d8aa7b8abb15762aec55fffd3f
7f62aec55d8aa57e64d325d6bcbbabe8d03ac53ea3657369148f5e0af3c4d182d4de80b6f8aa51a7
9f3d58e9f6b65fa2f4b76b686384bfe91b8018c6a16b4fa96d5a62a8a173e78a6fa66940ffdb42e3fec
8f156c5c79dfbe9da50ffa3eb83ff6278aae33f9d36a58697eff00e9b71ff64b8abbd7f3a7fcb0e97ff49
971ff0064b8ab7eb79cbfe58b4cff00a4bb8ffb26c552df315af9db56f2feada54167a589afacae6d622
6eee281e6899057fd1ba54e2a8af225f4371e5ab0d3e862d4b48b7834fd4eca4da6b7b9822556471
e069c9187c2e855d09538ab25c55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb
15762aec55d8abb15406b5ae68de5cd36e359d7efedf4cd26d54bdcdede4a90411a8eecee4018ab
cdbc9de7abdd71758f33f933cb77be61f2a6bb7e6eb4ad6239ad2ce3b88e1b782d19923bb962938
19207e0e52922d1d7e138ab26ff001579cffea43befa6ff004cff00b28c55c3cd5e733ff4c1de8f9ea1a
6ff000b8c55bff14f9cff00ea44bcff00b8869bff0055f1577f8a7ce7ff005225e7fdc434dffaaf8abbfc53e
73ffa916f3fee21a6ff00d57c55c7cd3e74ede44bc3ff006f0d37feabe2a8df298d6669358d4b5ad31b
4896faed2482cde68ae1fd28ed618b933425945591b6af4c559262aec55d8abb157fffd4f7f62aec55
d8abb15762aec55d8abb15762aec55d8ab1dd7bcbd3dc5c8f30797a48ecbcd5046228ee255260ba
8149616f7417768ea49461f1c2cc5d3aba3aa8bd075fb7d72199446d69aa59308753d366a7af6d31
1cb8b5362ac3e28e45f8245f897154df15798798bf3cbcb1a0f947cf5e6e8ed6eaf61fcbfbc6b0d6ac5
15629d9d442dce1f5085646598146ad1a8d8aac93f3cb418f5c6f26fe8fba3e7cfd276ba3a6840c7f1
3df5a3dfc7702704a7d5c5b46f23bfdb5e063f4fd4e2acab3dd0355bfd5adeea4d474a9f48b8b6ba96
d7d0b8647f5522238cf13464868e406a84d1bf9955b6c5535c55d8abb15762aec55d8abb15762ae
c55d515a77f0c5503a9eaf63a425b497ace16eae61b387d28a498fad72e234e423562ab53f13b511
3ab3018aa0350f38f96b4cf2b5f79d67d42397cb1a75adc5fdd6a16d5b9416d6819a67511062e102
357883d3154dacaf2df51b3b7bfb37f52d2ea249e09284728e550ca68684541ef8ab77727a3693cb
eb476fe9c6edf589b78a3e2a4f37f897e15ea7e25dbbe2afcc7d7bc8ff9f9f9efff003901a27e5ffe6a6a
9717de5c9dcead05d5a24969a3b681038592eece12100f50523466532f3913912a6b8abf4cb49d2
b4fd0b4bb2d1349b75b4d2f4e822b4b2b58f648a08102220f60a00c55198abb15762aec55d8abb15

973

762aec55d8abb15762aff00ffd5f7f62aec55d8abb15762aec55d8abb15762aec55d8abb15483cc1e
5f9afe58b58d167161e66b35e36d7645629a1e5c9adae547db85cffb38dbf79151baaab6c75897cc
9a66a161017d13cc9046d6f756f285965b39e4421255150b2c64fc5138f82403f6583aaaaf27d7ff00
e719ecf59b6f31e9f6be67b9d2f4af35e8761a0eb9656f6eb224cfa73864bc06691c8988e51ff288cf1
dcaf2c553fb8fc88d267bf3e6bfd2f729f98ffa46d3588fcd0b1c638cd616af611422d4523fab9b791e2
78ebc9b9b49ea7a9460abd3349b4bdb2b248751bf6d4af6a5a6bb78d210cc7b2c6828aa3f64558ff
3331df154762aec55d8abb15762aec55d8abb15762af2df3dfe565ef9d3ce56fab3de883cbf2e9575
a36af66cecfebc3730dca2342bc018268e499584d1ca3d44e49221e1132aac2749ff009c7df376936
0b1cde654d53519f58d0356bdb8b86922551a7c70fe931104434175245558f64e3f6bf6aaaa41a4ff
00ce35f9e6c3c9371e4fbcbcd16f51fca0fe58d3e532ddc6ba76a082fa31790058be25b95bcadc2b0
07946bfdea85c55eb3f949e43d47f2c34bf31c1ad5dda2691757c9a8d8c56f2c9f57b3b68b4eb5b79
81f59502032c124cd4f87f79c8fc5cb154e52da7f3fcb1ddea113dbf91e221ed34f94149354704159a
e14eeb6c2958e16de6fb72a840a8cab32f462f5165e0beaaa9457a0e415882541eb4240db155f8ab
b15762aec55d8abb15762aec55d8abb15762aec55fffd6f7f62aec55d8abb15762aec55d8abb1576
2aec55d8abb15762a91ebfe5f3a9bc1a969b3fd43cc5635fa95f81c94a93568275047a90bd3e24ae
df6d0aba86c550da679c6c5acef0f98da1d0f55d221f5f5bb5b999445044054ce933f00f6e684acd45f
e570922ba2aac8609e0ba822bab69166b6991648668c8647471556523620835071554c55d8abb1
5762aec55d8abb15762aec55d8abb15762aa1797969a7dacd7d7f3c76d656e8d2dc5c4cc238e38d
0559999880001dce2ac4a2b2bbf3c5d47a86b10b41e4fb79166d3349954ac97ce942971788c0523
0df14301ff2659be2e31a2acd315762aec55d8abb15762aec55d8abb15762aec55d8abb15762aff0
0ffd7f6543f9b3e40b9861b9b6d58cd6f708b3412c56b76e9246e392b295848208dc118aaa9fccff25
004fd7a720541a58df1e9f283df155abf9a3e4a6a95bcb92052a7f476a14dff00e8df1554ff009599e4
ea72faddc915a6da7df9dfe8b7c55dff002b2fca35a7af795ebff1ccd47fec9b156ffe564f94e95125ff00
fdc2b53edff46d8aad6fccbf292066696fc2a82cc7f456a7b01dcffa362ac9ac2fad354b1b5d4f4f9567
b0bd8a3b9b59d6bc6486650e8c2b4d8820e2a88c55d8abb15762aec55d8abe5bff009cc9fca0fce0f
cd4d06cd3f2e67b29b4ab189cea3a2826d753bc624b155b82c11e2d90fd5d8a2991799e6c138aa8
2ff9c28fcd5d6b52d02f7f24bcff006f71a779f7c8a9c2dedafd1a2b8974a57f4d415600d6dd888bde3
68bfcac55f58e2aec55d8abb15762aec55d8abb15762aec55d8aa1efafad34cb39f50bf996decad91
a59e790d15114549271562f67637de6fba4d5f5d85ed1610000026060f002220574d46430100000
0000001000000000000000d00000000200000085b0100089b0100bcb91149749d0e75e124ae86a
b7378877af43140dfddfdb93f7b458956618abb15762aec55d8abb15762a80d5756b5d1e18a6ba59
5fd79560863b789e791e460580091827a2938aa01fcd502f4d33546ff0056c66fe2a3155a3cd91107
fdc46aa0815a1b29315587cdc0123f41eae682b51667fe6ac5569f38115a681ac350576b41bfb6ee
315587ce6fdbcb9ad9ff00a345fe32e2ad1f3ac83fe99ad70ffd1a27fd55c554e4f3dfa4f123f96f5c0d3
3148c7d513760acf4fef7c149c55fffd0f657e5cea16163f971e4486f6ea1b79aef46d2e1b549645469
6536719e1186239350745df156470f98342b9b95b3b6d4ed66bb6964b610473c6f27af0a97923e2a
c4f3551c997aa8c555eeb53d3ac67b3b5bdbb86dee75090c1610cb22a3cf32a34a5225620bb0446
6217f6549c55158abb15762aa17a69657047fbe9e9ff02715639f967ff92e3ca3dffdc369dd3fe6163c
553ebad534fb2bcb1d3eeae122bcd49e48ec616fb52bc51b4ae17e48a58e2aad2dddac13416d3cf1
c77174cc96d13b05795914bb04526ac4282c69db1556c55d8aa94f716f6b1fab732a43116540f230
45e7230445a9a6ecc4281dce2aab8aa1352d4ac348b29750d4ee12daca11592590d00a9a003b92
49a2a8dd8ec3156193e93a9f9bb56d3bccb1e8d67a1cfa7873a6eafa94067d69639a328cab1a346
21460c7947249272fdb851c6caa38f943ccd21e52f9f35756eeb0db6931a7d01ac5cffc362ad7f82f5f
efe7dd77ad768f481f47fc73f1568f9235d24ffcefbaf8af6e1a46dff72ec55c3c91add6a7cf9e603b53e
ce93d7c7fe39d8ab8f91f5a26bfe3cf300fa349ff00bc762aeff03eb3ff0053e7987eed27fef1d8abbfc0f
acffd4f9e61fbb49ffbc762aeff0003eb3ff53e7987fee53ff78ec55a3e45d60ffd379e61ff00b957fde3f1
577f81b58ffa9f3cc35ffb757fde3f15575b4f3d68aa1e0d421f335b2fdbb7bd892c6f48f149e0021269f
b2d0206ff007e262aa5a78b4f38eabfa4eeee24369a4b4622f2e4f19825b5bd039996ee324f371fee
8ff7501fbd8f9b71755598e2aec55d8abb15762aec55d8abb15483ccbfef4797f7a7fb948faffcc3cf8a
a7f8abb15762aec55d8abb15406a03fd2f4af6ba6ffa859f157fffd1f45cba5eafaaf933f22c68eb7713d
9c9a6dd5d6a5656d1dd7d4e03a05cdb7aae255640a5e744a9534e5cbf66a154afcaa9e6df295d5e
35e2ea763a73f9abcc9a96b1abdc59a476f269f2e9ee6def270152309eaaa114e03e1f8e8b8aa55a
743aff009c17cab3ddcfe60b9960d72df50d49025cc7369b6efa0df5b493c33c8a1825c5c481808f97
a5cf827c3be2af49b98ff30b51fca7f2cea9025eb79f74e8b4ebdd4f49f5bf474b7f22288af2da67d827
25777046dea2a374c558cc9a57e6be9de558ed2fdf57bdd7d6797488eeec6ecc88d0d95b5e3db5fc
8a64593fd22592257fde2d192232fee83232a9069767f9a16d7bad5dea761e6186d7cc1a859dc6a7
7360c5af2149bcbf67144f6d189d55162be4b813c69b21f4f9a3438abd4fc9967e6017be6dbbf305c
6ad218e54b6d3a3d45d56ddedff0047da99248a38808aa6e04f565f709fbbe38aa79f9675ff009573
e51af5fd0da7d7fe91a3c558afe71f943ce9e6b7d107946411ada41ae477cc6edad2af7fa45c59da8f
841e54b89637affbaf8731f15315790dafe44fe6e1bc86ec5cc369796bfa6e2d2efa7d4a6ba96c1b59
f2f5ad8a5c44c559aa97b6f24a501ff76f3535e58ab20b7fc9df3fdf6a3657fa9096de1b7f2c6a96d0da
9d6e6710798aee657b66a5b4502343181271e4afe9fad4a362a96defe447e66c1a579560f2fde8b7
bf4d1ac2d3cd0f73acdf38fd2d65a969d7935ca3b2cad209e2b59e30070e3ea9a8e2ef8aa4ba2fe51
fe6379caca1d69a316d69a7eb50dcae91abdd5d2bea074cf355c5f896459626f40ad9910c0407124
6ebf6538e2afaf0569bf5c558ae9b1ff8975eb8d6ee897d27479e4b3d16dc8a46d730d63b8ba208dd

83f2862ecaa8eebfde6cab2bc55d8abb15762aec55d8abb15762aec55d8abb15762ac5fcd96b269e
17ce3a6ab1d4b498c9bb863a7fa5e9ea794d0b02455907292124fc327f9323865592c3345711473
c0e2486550f1c8a6aacac2a0823a823155f8abb1563be79d5b50d23caf7f368ac8be60b88cda68a2
41cd7ebf71fbb858a50965463ea3a807e046c55e19a57e6ff0098fcd6df93aa75c3e5f9bcc707982c7
cef084b5e506ade5fb23ea86f5a36f4fd3b88d9b8fc358c8e5b62aadf951f9a5e7efcc99858f9b2effc1
d2af93ec359b4b88e1863faddd5f4f751497eab74ae3d28c4111117d91eafc64868f157d156dcfead
0fa92899f82f2994001cd055801d2bd71555c5520f32d7d7d0294ff8ea455af87a1362a9dcf3c36b0c
9737322c36f0a34934d230444441566663400002a49c558e45f989e49958a0d6ed9185949aafef98
c20d842ca8f70a640a1a20cea39afc3f12f8e2a9a699e61d17599a7b6d3af126bab658dee2d8d527
8d2604c6ed1b8560ae01e2d4e2d434e87154cf15762aec55037ffef5697ff314dff50d3e2aff00ffd2f6
a7e590a7e5bf93878687a67fd42458aa27cdfe6bd1bca9656d2eb6acf6fa8cff005185289c1e578ddc
46cd2b2202e1195159bf78e5624e4eea3156236bf989e40f295b5fd8e89a1cf65a4e9fea48c34bb08
e1b57952fa3d3e64511940b22cd2282b2046750ee9cd51b154c93f36fcb02eed74fbd49f4fbe9febfe
b5bde18226846952fa57249f58893d3fb6c2132b08bf78471c5506df9d7e5859b4fb5fa8ea2d79ac4
7a7dc68d6e90c65aeed757f545acc8c6508158c4c1d5d91e3aa7a8abc862af4686469618e568da2
6750c62929cd0915e2dc49151d0d09c5565def693d7a7a6fd3fd538ab07fca3d52f6efc87e55b69f48
b9b3b74d12c4a5ecaf6cd0c9c6de303808a677f881e43922edd77c55946adab6a5a7cb1c763a1dd
eaa8ea59a5b592d235420d389fac4f11a9f60462abf47d4b50d45256bfd1ee74868c80897525b4a6
406b52bf569a6029fe5531541ea3af6b7677b25b5a795eff0050b74a70bc827d3d237a804d166ba8
dc509a6ea3154cb4bbcbbbeb41717ba7cda5ce5981b4b978649000763cade495287fd6c55f3aff00
ce59fe737e62fe56fe5e41e61f2869d71a1df26b56f69fa4eec69f776d3dbbc73929e9096571cf82b0
2515853aae2af3cfca0ff9cc2fcecf3a5b08f52fca2bad761485de4d7b46f52c6d4705279b9bc061edb
fefd7fc91db157d61f9670dc41f97de594bc89e1bd6d3ada4bb59591dccf2461e472636653cdd8bec
7f6b156558abb15762aec55d8abb15762aec55d8abb15762aec55a74591591c064605594ee083b
107157816b1ae7e7e7967c8da7587e52793b49f31c3616f258c171a86a461b9416523c083eaae90
a300a838ffa554ff2e2af993c95f9b9ff003965aa7e7df93742fccc5d4b49d3e5d45a16d1a5b56d1f4c
b8221918234d142deaaed5156946d8abef617be7ba9ae8da581dbfdc9cff00f6438aa0af62f38ea0d
6cd7be5cd0ae9ace65bab569f509a430dc2290b247cb4f3c5c722030de8715484f91a5f59665fcbcf
277a91caf71148d21e6b3ca417901fd19b3b103930ddbbe2a9aea3a5f9a35896d27d5bca9e5bbe9
ac5bd4b292eaf2699a0734a98cbe9c789d87d9f0c5531fadfe62ffd5a345ffb89dd7fd9062aefadfe63
7fd5a345ff00b89ddffde3f154ab55b9f3936a5e5d5d62c34bb6b13aa441e5b5bdb8b8941304d4012
4b4886e7fcbc5517f9afe55d4bcedf977e60f2be8f2a45a9ea16c16dbd6256191a39165f464600909
304f49cd0fc0e7638aa41e7ad1f5cf3ff96218edbcb7269fae69d369fa8c50ea125a8327d4750b5bd9
ec1258649071985b712f5588b08f96df6554758683adea9f9aebe7d9ecdf49d1acfcbefa22c170d19
b9bcb8b9bb4b92ce90bbaaa5b88b8a166ab34f271017775587dde83f9b51a8b4906a1a8682f7931
b896c6f20b3d71a0ba8e7f4c133ced6e7eaae507a91bc4654647f479c2792addc7963f3222d72e6fa
d86b32446fa78e375d56335d39fcb896c0aa492ac5ccea2bea2930ad24fdef1446c550977e50fce7b
8b5bdb66bb6170da45d596817b6974d6c96fae2ddb341a94f03cb2f14922652d0abce917a6f12a71
978e2a9b0f2c79e21f2f38925bdff155d79b52e6299ef59ffdc445a93dc0f4c198aa47f5432030a9566
4fdcb57618abfffd3f6a7e590e3f96fe4e5ad69a1e982a3fe6122c551be6af29693e70b0fd19acfaa6c
88912586293824b1cf1b44e922905594ab6d51f0b7174e2eaad8ab1cff00953be5158357b2825d46
0d3758963b9934f8efe736b6f324eb72ef6d13b32c46591034bc47c5f174e6fc95447fcaa9f2ac9216
bdfad5fc0d7f2eaf2da5e4debdbbde4b2fadc8a32d0717fb3c78fc3f01ac7f0e2aa517e4ff0093a15b0
10adda3e953da4da5cbf5a90bdb43a7176b6b58cb5696f1991a919ad76e5cb8af1559ee2aa573fef
3cd5e9c1bf51c558a7e54107f2c3c9a474fd09a7d3bff00c7b478ab30c55d8abb15762a82d4b47d27
598e28758b0b7d4218255b8823bb85275499010b228901018063461bef8aa8ebeaa9e5dd511142
a2d95c055028001136c062aa3e51ff00945342ff00b675a7fc984c5539c55d8abb15762aec55d8abb
15762aec55d8abb15762aec5520f25b06f2fc4474facdf53e8bc9b154f9955a9c8034351515a11df15
6f15762aec55d8abb15762ac77cd4693797be2e3fee5e01bf7fdccdb62ac8b15762aec55d8abb157
62a82bdafd674dff9896aff00d23cd8abffd4f6768de4fd7742d1f4fd0ec7ccf3fd4b4db686cad8c9696a
cfe95bc6234e4788a9a28a9c5519fa0fcd1ff534cbff004856bff34e2adfe83f33ff00d4d12fb7fa15a7fc
d18aadfd05e68ad7fc5737cbea569ff3462ae3a0f9a09a8f35ce0546df52b3ff00aa7df156ff0040f99bf
ea6ab81ff0046767ff54b156ce81e6178da37f345c9e6a549faad903bff00cf1c5531f2f6896be5ad03
4bf2ed8b3bd969369058dbbca4191a3b68d6352c540152177a0c5532c55d8abb15762aec552df30
ffc70355ff983b8ff00934d8aa87947fe514d0bfed9d69ff2613154e715762aec55d8abb15762aec55d
8abb15762aec55d8abb15487c9d41a1201d3eb57f4ff00a4d9b154fb15762aec55d8abb15762aec5
52af3068307986d22b596eae6ca4b79e3bab7bab2758e68e58ab420babaee09041538aa4c7c8f78
7fe9afd7ffe47da77ff00a35c55a3e46bb3d7ce1aff00fc8fb51faad7156d7c8f720d4f9b75e6f63716c3
f55b0c55b5f234e0d4f9af5e6f63750ff08062abbfc1326dff003b36b9b75ff4b4dffe4962abbfc1277ff9
d8f5c35ff97c1ff54f155ade4647285fcc1ad968db9a37d74d43712b5fb1e04e2aff00ffd5f7f62aec55d
8abb15762aec55d8abb15762aec55d8abb15762a96f987fe381aaff00cc1dc7fc9a6c550fe4e35f28e
806b5ae9b666bff003c13154eb1579d6a9e6dd6b55fcd34fcb4d06e134d874dd1e3f306bba9344b3
cee9777125adb5b5bab9e08498649259195fe1088abf116555b8fce5a9793def345f384ede60d751

975

6fb58b44d1ed424c341b531812cd1970bcd59fd3a231695bfbb8fa855565afe76f936ff005182cac12
fae6d2e26d2608f568edffd0a9e618965d3e4e6583709b92a7d8aa39f8d557e2c550ba37e76e9daa
5b696f2f9735786ff005ab9d5adf4ab18a286e1e64d12e4dbcd27249b8a0fdaa395fda0396c5956f5d
fcddd265d0a73a2493d96a5abe93ab6a3e50d46e6057b5be6d2a16919e31c8922804aab288fd48b
e24ef4553ab6f3e5a695e42f2cf9a3ccb2527d6a0d2e2664091a35eea71c7c412eca91a976eacc14
74eb4c55649f9a5a25bdf5ce997b637f65a841a7d9eab1db5d451c524f16a138b548e1064f8a5498
ac5221a71774dc8752554bf5afce2d26c343d5f5ad2b4db9d5e3d23518f47996178101bc6d4534c9
2362d2131b248fcf8c8a8cf1d1d3e135c557ea1f9d5e50d3b5a9f4274bb9eee017eaed6d1c72afd63
4ab63757101024e4ac11582b3aac4f22346b272a7255273ff003913e504b67be9f48d6a0b08ac34b
d6a6b992da1089a56b92186d6e881393c4bab2b201eb2d397a7c77c55ebd8abb1548bca1ff1c35ff
98abfff00a8d9b154f715762aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55fffd6f7f
62aec55d8abb15762aec55d8abb15762aec55d8abb15762a97ebc2ba1ea63c6d271ff0024db1540
f91c86f25796d86e0e976241ebff001ee98aa7d8ab11d67c8b1df79bacbcf5a46a12e93e65b5b37d2
ae6548d27b7bcd3de4f58433c4f42784839c6e8e8e9c9c54abb0c55037ff96cf7facdb799db5eba4f3
345a75ee8b737eb141e9cd617ee9298fd1e0154c2f1ab42db91f17a9ea7338aa496df919a5e9a1a0
d23579ed2c127f2dcd676c628e510af94c20b64e4685bd4e0bea93bff002f1c5530d17f2961d1357d
1350835a9e6b4d06eb5ab9b2b19a184a98fcc1319e689dd42b108cc78375a7dae58aa0e3fc8ed16
2d2ac7455d52edf4fd0ad354b0f2c2c811db4f875989a09072a0f57d2898c5073fb11fdbf51be2c559
449e47b79bc9ba5f92ee2e16eb4ed3ededacee16eeda1b982f6dada2f44c7710480a32b81560294
6a32d315623a67e5d241e68f28695fa2af1742fcbbb465d33cc577750cdfa43eb30ac62d8c6ae65e3
0baacbfbd455592187d3af65513ac7e4a695ad4fad5fcfaa4f06adac450c4f7f6d14114a4da5fc7a85b
49380a56e2481e248e379179087927ed96c551707e553dabf9820b7f33ea49a2f985aeeeae749e3
6c618eff5087d29e747f4bd4e2cc5a5f40bfa5eab16e3c7e1c5521bcff9c7bd22f747bad1a4d7af96de
efcbda379564758edc38b4f2fced716f28aa11eab166127ec11f6557157b12060aa1cf2600066a52a
7c698ab78aa45e50ff8e1affcc55fff00d46cd8aa7b8abb15762aec55d8abb15762aec55d8abb15762
aec55d8abb15762afffd7f6668f6fa96bb3eb33dc6b57d02db6a573690436c6048d228788502b0b1e
fd49c5534ff0e5cffd4c1aa7fc1dbffd50c55dfe1cb9ff00abfea9ff00232dff00ea862aeff0ddcffd4c1aa7f
c8cb7ff00aa18abbfc3773ff5306a9ff232dffea862aeff000ddcff00d4c1aa7fc8cb7ffaa18ab8f96ee0ff0
0d2ff0054ff0091900ff9918ab7e5992e69aa5a5cdd4d79f52be7b78a6b9e064f4fd18a4a128a80eee
69b62a8db5d6ac6f354d474887d5179a5884dd99219638a97285d3d395d4249b0f8bd366e1d1e98
aaadbea9a75d5e5e69f6d7514b7ba798d6fa04605e169d79c61c0e8597700f6c5515c97c462aee6
bfcc3efc5508755d346a5168e6ea2fd293c0f770da720656b789911a40bd78867515f7c556eb4396
8da8af8db4c3fe49b62a957e5f373f217959c9a96d234f35f9db478ab23c55d8abb15762aec55d8ab
b15762aec55d8abb15762aec5522f287fc70d7fe62afff00ea366c553dc55d8abb15762aec55d8abb
15631e6e85eeef7cb760669e2b4bad49d2ed6da796d9a48d2c6ea40acf0b2b71e6aad4af6c5513fe
0fd17f9af8fcf52bfff00aaf8ab7fe10d17c6f7fee237ff00f55f1577f84345f1bdff00b88df7fd57c55a3e4f
d14f7bdffb88dfff00d57c55c7c9fa211426f69ff6d1bfff00aaf8abbfc1da1ffcbe6fff006b1beffaaf8aa5b
aa79674c82f7448617bc58eeaf5e1b851a85efc518b2b99003fbefe6453f462afffd0f67682b6a34ff35
8be282cff0049df9b83210a8232885b91245053ae2af32f297e6443e5cfc8df258d0e54d5bccd2e9b
a48bf895daee6b486e24b786f6fee954b3d201334afccaf261c6a37c5546ff00f33bf342da29c59430
ea30bdcea1a4e85a85ad93ca9a8dc699e8df0b8d9f8aa4d662ee2057f77f5983e063ea2478abd0af
7cc3e6d93f2d6f3ce3a64663d5190eb363a7dd5b5275d316413fd59a356afaef6c194577499c061f0
e2ac374dfccff0035dd68f7fa96a2d36976b6b7b14305fdde9eb1c73daebb7503e98e9ca455468ed2
4a4e643c239dff007df61a3c558f27e7079d522b6d6ae6fa38a0d4ac747b6b8b56b7516fa6b5c6a7a
8585e6a8cdc0b948feaf17357fdd45eb219288bbaaf41f237997ce9aff9b0e9baa6b1a7c9a7699a4d
8de5e4763652a2dedc5dbdec0ef1cd3bab2c60c114ab48f7127da646472ab35f2e57eb9e62affd5d
1a9ff4896d8abc7bcf3f915e68f3679f357f31a5f58c9a16a37d63791e9d7525c0212d344bed31d595
5197e29aea39853b45bfc5c715631a6ffce3479eecc426ef5db1bd57bbd26f3568d67bcb692ffea9e5
e1a25d2493a46ce0871f59824a33736dfd37a498ab2597fe71eef2ea2bbfaf0d36e2e750f3a0f316a2
eef70c6e34005c8b1762952c39b7c27f77b9f8b7c55837e66fe42f9df49d0bcdfa8797445a9584b1ea
eba2689a60b96be64d6b51d32e228c47c78816e2d241f0b1f85cb0a6eb8abd23f2d3f26b5ff26f9de
1f3bdfdfd8cd6b7367ac5bcda6469305d3d355d506a304164d22a9114609465711fc45b8a81f0855
ecfaa8ae977a0f7b7947fc21c5523fcb63cbf2efca248009d174d341d3fde48f1564f8abb15762aec55
d8abb15762aec55d8abb15762aec55d8aa45e50ff8e1affcc5dfff00d46cd8aa7b8abb1542ea7a85b
693a75dea979cbea9650c9733fa6a647f4e252edc556a58d06c075c55f21f9e7cd3e7a3e41fcd8f29
6bb16a6dadcb3e97e6af285e40649265b3d5aeadfd5b289ed760d6acb27c0adcbd09559bf6b154e
6f9fcff000f9dcd1b516fc806f39da4256972cdf513a3f17a1ddff467e90e3c8ff73cabfee9ae2afa3fca3
6ba3dae992fe817b97d366ba9e58cddb4ef4667f88426e3e2f4411fbaa7eef8ff0077fbbe38aa7d8ab
1ef31ff00c757cac7fed68fff0074fbbc5519a9799bcb9a3cad06adab5a58cc8825912e278e2291b1a
076e4c38a922818ed8aad6f357965209ee9f58b25b6b6b85b1b898dc46123bb7202c2ec5a8b212c
0043f16e36df154c05f599bcfd1c2e22fd20221706d79afade896e024e15e5c796dca94ae2aaf8ab4
0d457a7b62ade2a93eb3ff1d1f2f7fdb424ff00ba7dde2aff00ffd1f6d79516afe61570083abdced4da8
638bae2ac89638d092a8149ea4002bf3c5501fa6b44884e9f5fb655b3a2dc28913f75f11401803b7c
4a569fcc38e2aa11f9b7cab2ddc16116b76125f5d08dadad92ea16964132196328a1aa43a2964a7
da5048c55749e67f2d456df5c9756b34b32597d769e311d5543b7c45a9b2b063fe49e5d31554b3f3

0681a8ea173a4d86a76977a9da0addd9413c72cf10f84fef1158b2fdb5ea3f6878e2a995075ef8ab1
2d162d6ceb7af3db5d5aa699fa50196092de479c81696dcb8c8265515edfbb34f7c5590ea51ea924
0aba4dc416d73c8167b985ae10a50d405496235ad37e5f462a86d3edfcc91dc72d52fecee2d7891e
9db5a4903f2ec793dc4a283c38e2abb54b7d7a678ce8f7f6d6718044ab736af7458f620acf0d3ee38
ab7a55beb907abfa66fadaf7953d1fab5abdaf1a56bcb94f372aedfcb8abcc3fe721f40f3debbf957e7
6b0f2ddd25d0bcd32586cf45b6d3e59afe591940e11cc9703e266dc110ed8abe50fc96fc94ff009ce0
d2cdb187ccf2794f41e7492c7cc17a3528fd2228d4b3ff00481b8fd9262f9af5c55f6bfe50daeb3a6f90
f4dd0f5fd46df53d53440da44d3dadb359a0fd1c7eacaa63692535210372a8e4ac0f1c559ce2aec55
d8abb15762aec55d8abb15762aec55d8abb1543dfdedb69b6373a8de3fa7696913cf3b9fd98e252c
c7ee18abc2fccf37fce4ee9be50d34fe5868be5b9af6e2dfebb7d0ead713adfc37576cd712c2915238
3e169388669bb7d9c55f2d681ac7fce63dd7e7a79353f33e3d6ad74e9b5785beab22490797aa390
5573601a12a3fca2c7157dedcbf32bfdf5a153b7ef2f3fea9e2aee5f995fefad0ffe465e7fcd18abb97e
657fbeb43ff91979ff003462ad06fcccdeb1e854edfbcbcff9a315716fccca8a47a153bfc779ff003462a
eafe666ff000684076f8af0efff00038aa5d7c7ce1fa73cabfa77f460b3fd26e08b2fac194c9f50bbe34f
56829d6b8aa47e55d1b52f2d6aff00985a5f9a347b9d6adbcd3accdaa585ec312dd4173a6de5b436
e96729661e9983d378ca4bc62f4cab231e4c15561ba97957cd93e83e7010d8ea5c6f7cff0061ab5a
e942da2227b082ff004e9dee54b2f30812de46fb41be0a71f896aab39f2ef977cf565f9ab75aeeb50e
9f2e9175a5cd0bea76a67f599cde7a9042564a81c23a0a0f87bfda66c558b6bc3f3662d46fdadadb5
5bbf2dbea6935c4d64445a9ad8b497a8d024125c2c7208dcdbc8b35bc9133daf14923f551b9aa887
d2bf30acf5a86ea09bcc97515b5c685047ebdc46c24b41632c57f249123080ca5b834bb71f5f8b47d
db15425a69df9b2b62fa7eb0352b9d252c751b4b2d474e9a5b6d526d4dedad0d95e4b14b3318684
5c46ebea4900b91eb7f732270557dbe85f9911d9dddcea17b7e7cef2eb891694d3dccada685fd16a
cd2410f2e2b0faeb316f8797a5cd7fbb60b8abfffd2f6f7960fefb5f1e1aacdff0026613fc7156418abc7f
5afc9dd6aef53b8d6744d722d3ee17545d6ed74b9639ae74a96f04b37379a132aba196199964104
891b4e16eb87a9b155cbf9357d6d7eb77a7dd697691a4da0cd15b5bd8182de35d116e83a47123d
155cdcfc0b53c5568dcf957155da6fe4f6afa541682d75a89feab6da869b1d85c4524f650d8eab6d6b
1c91c22490c8aa92db7a90c6ceeb1c4ed6cbfbb546555927e5afe5e1fcbd5d76d92e92eed353bbb7
b8b47e056e122b5d3ad74f5499c921d88b50fc805ddc8e3b62aceb1548bcbdfef67987feda67fea12
db154f715762aec55d8abb15762ac4b55fac795756b9f3344af3f976f1036bb6d1234b2c12c2a156f
2345a965f4d424e88bcb8aa48bf65c32ac9ed6eadafade2bbb3992e2d6650f0cf13074753d0ab0a8
20e2aad8abb15762aec55d8abb15762aec55d8abb1568900124d00dc938ab0bb8baff1e5e269da6
b2cbe4db49ababdf539477d2c0d516b01e8d18751f5893ec353d15e5ca4e0ab35c55d8abb15762a
ec55d8abb15762a90798e9f5ff002d122b4d536ffa41bbc553fc55d8abb15762aec55d8aa51acffc74
7cbdff006d093fea02ef157fffd3f645a79861d0353d76d350d3f5476975037104b69a65eddc2f13dbc
001592089d0ee181df638aa34f9f74a02bfa375b3ec345d4bfec9f1577f8f74affab6eb7ff705d4bfec9f
156ffc79a5ff00d5b75bff00b82ea5ff0064f8abbfc79a5d397e8dd6fe5fa1752aff00d43e2ae3e7bd368
58697ad9a5053f436a009afce018aac93cfd6082a347d75e86945d1efabf8c431556f275d497f1eafa
9359ddd8c57ba834b0437f03dace635b7823e4637a300591a95eb8ab25c55d8abb116100000260
60f002220574d464301000000000001000000000000000d00000000200000083b0100089b01005
762aec55d8abb1562f7de4a83d67bcf2e6a375e5cbf965f5a76b031bdb4cdbf2f52da749213cabf13
22a484efea62aae74ff3a02047ae58150373269921627e6b78a3f0c55bfa8f9cff00eaf561ff0070d97f
ecb3156bf47f9d38ff00c776c39773fa2e4a7ddf5dc55a3a7f9d7b6bd60057fead7274ff00a4dc5577e
8ff00397fd5f6cbbffd2b1fe8ff008fcc55afd1de73ff00abf597bffb8c7ffb2cc55b1a7f9c3bebb67d7fead
adff6558aaefd1fe6dffabe5a7fdc39bfecab156fea1e6cff00abdda7fdc3dbfeca7155ada779b8a90ba
edaa93d1869c4d3efb9c552abaf235e5fc3772eb7ad5cebf70ea5acf4ebde16da4a4aa0f0125bd9ac
6d2a16fb6b3bcdb62af3efcb5ff9c9efcbdf346b373f97de6241e45fcc2d2273a6dcf96b54748a269a1
2538d9cf444917e1f80511994af1423157bae2aec55d8abb15762aec55d8abb15483ccf15f9fd1179
616526a0f637e2e26b785e2493d236f3c44afacf1a9a19176e58aadff10eb14aff0085b52f97aba7d7f
ea2f156bfc45ac7fd4aba97fc8dd3ff00ecaf156ffc43acff00d4aba97fc8dd3ffecaf156d75fd69bfe996d
407ce6d3ff00eca8e2ad9d775ba123caf7c69d07afa78aff00d3ce2aefd3bae7fd4af7bff49161ff0065
38aa06feff00cc37575a5dc47e5abb0b6372d712ab5c58f22ad6b3c345a5c115e528ef8abfffd4f7e93
4ed5f962ade2aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55d
8abb15762aec55d8abb15762aec55f1c7fce5affce256b5f9c1e77f2ef9c7c8620b7d4afda3d33cd52
cec1238eda2158af48a82e51018d957e26fdd01fb47157be7e4ae8d69e46f28d97e5a4f737926bfe5
e8b8de0d4ee5aee69d198d2e6091e9cad9cff76aa0087fb97557538abd2f1568902a49a01b9af862
ad2ba3d4a30600d0d0d687e8c55a8a686604c322c81495628c1a8ca6841a7707ae2abf15762aec5
5d8abb15762aec55d8abb15762aec55ffd5f7f62aec55d8abb15762aec55d8abb15762aec55d8abb
15762aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb1548fccbe5c5d7a08a5
b5b96d375db12d2693ab44a1e4b695850d5090248dc0a4b131e322f830565554fcbfe6392fee6e34
3d62dfea1e66b0457bab61c8c1342c78adc5abb01ea44c7afedc4dfbb968d4e4abc8f51f31f992d7f3
8ac3cc92e9da85d7e5f6bf6fa8f94afed05bddcc96a74e22782fe5b716ff000c72c86787992dea472c
2cbb2b62af0ff2b7917f379bf2bf49b4fcb9d3352f2febd6de4cd6ac7cd4b3c52e992ddea135eabd840
9eb88cbdd2c3eb7a73807d159157d45e6a3157d5bf971a779245758f2968571a34cf6167637827b

977

39f4e1c6dc33244f14ca9ca588bb0770a7af1691a9b2acff0015762aec55d8abb15762aec55d8abb1
5762aec55ffd6f7f62aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb15762ae
c55d8abb15762aec55d8abb15762aec55d8abb15762a93798bcbb69e60b7883c9259ea566febe9
ba9db1e3716d374e487bab0f8648dbe0913e070462a85d03cc17735d49e5ff31c2965e64b752ea2
327eaf7b02d07d62d8924f1a9a3c64fa90b7daaab4723aac8f15762aec55d8abb15762aec55d8abb
15762aec55d8abb157ffd7f7f62aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8a
bb15762aec55d8abb15762aec55d8abb15762aec55d8abb15762aec552ad7fcbf63e61b35b6ba2f
0dc40e27b1be8085b9b5b85af1962620d1856841055d6a8eac8ccb8aa0742d6b52178fe5df32442
3d6e15692def21465b4bfb75207ab156bc1c5409612c590eebca3656c5591e2aec55d8abb15762a
ec55d8abb15762ad0ad3e2353edb62ade2aec55ffd0f7f62aec55d8abb15762aec55d8abb15762ae
c55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55
d8ab073a3699adf9ff5d4d5ad96f23b6d334936e9355963324b7fcca8ad016e22a4780c55385f2379
4129c746b5dba7c15fd78aaeff0005794bfeacd6bff22c62adff0082fca7ff00567b5ff914b8ab7fe0cf2a
7fd59ed7fe452e2aeff067953feacf6bff0022971577f833ca8453f43dad3c3d25c5507a469961a4f9b
351b5d32dd2d6d64d3ace468621c50c9ebdcaf2e236ad0015c559462aec55d8abb15762afffd1f7e9
21454f4fbf156f15762aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb15762a
ec55d8abb15762aec55d8abb15762aec55d8abb15762ac5b4cff00c983e64ffb6668ff00f27750c559
06a17d6ba5d8dcea57d2086ced2279ee25620058e352cc4d7c00c55e73e5cfcd84d7fcab1eaf78b0
691ae5a6bb0f97b5cd3b8c9a8a5add4d76912465ed8800cd14b1347313e92195795462a9e59fe64
e8dabf96b5ef3368b6d7b3d9e851de339b8b59ad04f369ed347347119957914920746a7438ab14f
2b7e6beaf2eb0b6be6c5b48ec2ff0045d1758d296ce09a3ba6b9d76e26823b46579a50ec0c438b0
e1b1e4fc6868aa7f71f9cbe46b50df58b8b88da2648e746b770d14ada82e96e8f51b18ae5d125fe40
e927f76cad8ab34d3b508354b63776c1bd0f5258959c539186468cb2f5aa92a789fda1be2a96c3ff0
02995e7fdb32d3fea22e7154f715762aec55d8abb157fffd2f7f62aec55097baa69ba6db5c5eea3790
5a59da50dd5c5c4a9145156847a8ee405fb43af8e2aa306bfa15ce9b26b36daa5a4da3c418cba84
73c4f6c813ed169431514ef538aab69daae99abc1f5ad26f60beb60dc0cd6d224c818004a9642454
57a62a8bc55d8aa15b53d393504d21ef215d56488dc4762644170d0ab7169163af22a09a160295c
55158ab5504900ee3a8f9e2a86d4353d3b49816eb54bb86cad9a48e159ae6458a332ccc1234e4e
40e4cc42a8eedb62aeb3d474fd4207bab0ba86eada39258249a191644596ddda2950b2920323ab
2b8fd96520e2aed3f52d3f55b48350d2eee1bdb1ba8d67b6b9b691658a48a4155747424329ec462
ad5a6a9a6dfcf796b63770dcdce9f28b7bf862915de0999164092a824ab15656a37ecb038aa2f157
62aec55a5757a9460c0120d0d6847518ab78abb15762aec55d8abb15762aec55d8abb15762aec5
5d8ab15d3053f30fcc67b1d2f47fc26d47154d7cc5e5fb3f3369dfa2b507916c9a68679a28f815985b
c8b288a4122b868d8a8e6b4f897e1c558b5cfe5279625d5b55d52d26bad35b599b4cbbbeb2b1686
1b56b8d12659ada511fa468fc951646ad6445546d957154d34bf22691a5f95351f285b5d5d49a5ea
6fa8493cd23a34ea7579659ae383840055e672b553c6b8aa507f28bcae66b6b892eaf9ae34fb1d2b
4eb394cd186813429dae6ce5148c0f515ddb916aabab15642b8aabdefe52792353b7486fad649cd
7547967f5595e67d7948bc6729404b9a32d052374464e3c171565fa669d69a469b69a55827a7656
30c76d6e95a911c4a11413df61d7154b61ff94cef3fed9769ff00511738aa7b8abb15762aec55d8abf
fd3f7f62ab646288ceaa5ca82422d39311d85481538abe72d6bf2f3f32a48bf33ed20d316f6c3f32fca
d348f6eb3c6a2d7ccde94b6a90b09e761c6481e247912912fd5d7f9b15426b7f93de7dd435893cd1
636ab069f6f77e4cb8b8f2b19e24fd26be5b791ef647018c41c8951620edfbcfab8f538feee8abdab5
4d3f5bbbd03537f29d88d075dbeb98e7e524d05a492b011abcb23a5bdf286289c3789d8851f67b2a
c4fccfa47e6c8fcbfb4b0b16b8bef369d5233752596a9046c2c5b9f2669dad6c79a2d579448b1487b
4b8abcf1bcb7ff39209258ea625d527bf8edac22bdb25d5ad20824a796e6b7bda066923591b53f4a
4593d36e3bc8bf0f2055424de45fcff00d4b5cd3bcc135b496da9e9dfa7204ba92f2d8ceba56a5a869
7731da4122cf232b9b7b7b9891d98fa4fc7e31556555d67ab7e64e91f9a9a1f97bcd7ab6bafa72ded
a5c7a36463b88eded2e2f7514b4b2b9f4a659260f1496ad7971e9ceb17a0bf1f02ef8aa7baef90ff00
3a20f33f9caffcb52cf169bac6b92ea36f2c5a8aa493da3f975aced1139bd625b7d4024b227c01d38f
1e6abc31545fe6cf91bf373cd33685696f5d5f478b4ad386a36d6d7896307e9eb3d5ec6ee6b89a29
1904b1b5bc32ac43e2f4dff67e3e4aabcfe49ff343cbdf9856de5ed76e75e8b4d97509f506b5d3a582
6885adfebb7ed689c63b989e413c5244973c5666b68e2562a033362a8dd07f2dbfe720341d36798
dbdc5c6bf7fa7796ed25b887598e2585f4db3bc82f159398565f5a48a5e113441ebcbd4a878d9567
7e5af277e6f58f93bf306570b63f981afdae952e9d7af750b34da85a689676772cd245c846cd34122
abd3bac98aa175cf297e77dddcde4fe5bbabfd3acee9239f4db4bcd4d2592ca16b6d445dd9ca5256
579249e6b636f2867f49123fde2fa3f12aa1e4dfcbefcf482faca5d6b5dbb86cadef34f5bb82fb5392f7
d6d3e7d0e283542be9b93ea8d42232c1c8d17d4765e20f1c554f45fcbefcf0b99bcaf0f9af5cd55ede
2d5ee0f9b5acf534b4492c52d6e52196d9ede412b24933c0ec8fc197d3feed7f6d541f953f2cff003c7
cbd068ba6c37af6d6967757af70eba89951a69fccc9a8b5dcaacd59566d38c96cb1b0e49216e48bc
fd4555eb7f941e5bf33797bca80f9cae6fa7f345e4f712dfa5f5fbea291a0b897eaeb112eea83d13186
54a0a8df7df157a062aec55d8abb15762aec55d8abb15762aec55d8abb1562fa68a7e607988f8e99
a47e136a18ab28c55e55f985e44f3b79835eb8d47ca7a945a59bad2e7d3659ee2467452d05c2c52
c41104b04c92ca0168dda39222dea27a91c4715619acfe47f98757b3b6faa585a69927d47cc092d9
cdaadd5fac5a8eab670436b323b42aaab1cd0fab448d387f78aad2b362a9e5e7e5b7e605cf9827d6
22bdb6fd1f2dcd95f5de99732999ae1ed2e6079614b8112bac33c7112f04a248d2754f4e913c8b8a

a65e56fcacbdd33ce76de62d662b5bab1b58b527d3e2323bbd84b7ba8b5ddbc50a150bc61899a3
0e08e3c8a22fa78abd6b1548a1ff94cef3fed996bff00511738aa7b8abb15762aec55d8abffd4f7f62a
ec55d8abb15762aec55d8abb15587d2f517971f56878569ca9b569dfc2b8aafc55d8aad6f4f9a72e3
ea6fc2b4e5ef4c55762aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb15762
aec55d8ab09697598bcffad7e87b3b4bbae97a5fd63eb77525a15a4d7fc78fa76f71cabbd6bc69ef8
aa6cd77e78db8e8fa51f1aeab723feedd8ab4d79e79e27868da497fd90755b903e9ff0071d8aa89bd
fcc3e5f0e89a2f1de84eaf755a76ff00a5662ab45efe64577d1343a53feaef77d7fee198ab4b7bf993fb
5a2686373d357bb3b76ffa5662ad7d73f32e9ff1c5d0b96fff004b6bca529b7fd2b71552f2f4be6197c
d7a8b798ed6cad2e469f68204d3ee65bb468fd7b9a966960b720d7b056ff5b156618abb15762aec5
5d8abffd900000840010824000000180000000210c0db0100000003000000000000000000000000
0000001b40000040000000340000000100000002000000000000bf000000bf0000af4300006d430
30000000000008000000080fe7fe9430000008000000080ffff9d432100000008000000620000000c
00000001000000150000000c00000004000000150000000c0000000400000051000000584a0100
0000000000000000d20100003b010000000000000000000000000000000000005e010000ed000
000500000002804000078040000e0450100000000002000cc00d30100003c010000280000005e0
10000ed0000000100080000000000000000000000000000000000000100000000000000000000f
fffff00fefefe00f9f9f900a3a3a3006060600070707000646464006c6c6c0069696900686868006767
670066666600616161005f5f5f0062626200595959005e5e5e005d5d5d005b5b5b0049494900505
050005555550058585800565656004f4f4f004e4e4e005a5a5a0057575700525252004d4d4d0054
545400282828009e9e9e00fbfbfb00f1f1f100e7e7e700ebebeb00e9e9e900e4e4e400e8e8e800e6
e6e600e5e5e500e3e3e300e2e2e200fdfdfd00fcfcfc00fafafa00787878009c9c9c00d3d3d300d7d7d
700d5d5d500d8d8d800dadada00d9d9d900dddddd00e1e1e100dedede00dfdfdf00ececec00eaea
ea00ededed00efefef00f0f0f000f3f3f300f4f4f400f2f2f200848484009797970079797900adadad00a
8a8a800aaaaaa00b3b3b300acacac00ababab00a9a9a900a5a5a500a6a6a600a7a7a700a2a2a20
08f8f8f0076767600b8b8b80083838300929292006d6d6d00909090007e7e7e00bdbdbd00888888
00717171008282820094949400f8f8f8007a7a7a00bababa008989890093939300777777007b7b7
b00bbbbbb0075757500f6f6f6007c7c7c00f5f5f5008c8c8c00bcbcbc00747474006e6e6e00a1a1a1
007d7d7d006b6b6b0087878700969696008a8a8a0080808000f7f7f700eeeeee001616160009090
90095959500c5c5c500d2d2d200303030007f7f7f002e2e2e00cbcbcb00484848008e8e8e0038383
800c2c2c200c1c1c100c9c9c900d1d1d100c3c3c300aeaeae00cacaca0044444400d0d0d000bfbfb
f00cecece00c7c7c700b7b7b700c8c8c800d6d6d600b9b9b900b5b5b500b0b0b00021212100c4c4
c400e0e0e000343434009191910035353500858585003333330046464600636363009a9a9a0047
474700dbdbdb002c2c2c003737370026262600434343004242420027272700cdcdcd0032323200
c0c0c0008b8b8b004c4c4c009f9f9f00d4d4d4009d9d9d0086868600a4a4a4004141410013131300
25252500b2b2b2004b4b4b003b3b3b00363636001c1c1c0023232300b4b4b40039393900727272
00515151003a3a3a00cccccc00b6b6b6006a6a6a009b9b9b00404040003c3c3c00818181003f3f3f
00bebebe00afafaf0098989800dcdcdc00c6c6c60099999900cfcfcf0045454500656565006f6f6f005
c5c5c00b1b1b1002f2f2f00313131003e3e3e00a0a0a00053535300737373002a2a2a001f1f1f0024
2424008d8d8d00151515000808080002020200111111001818180001010100050505000303030
006060600070707003d3d3d00141414004a4a4a00222222001d1d1d00101010001b1b1b000d0d
0d00040404000e0e0e000a0a0a002d2d2d0020202000121212000b0b0b00292929000c0c0c002b
2b2b001e1e1e001a1a1a0019191900171717000f0f0f00010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
010101010101010101012d0101010201020101010101010101010101010101010101010102020
20201010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
1010203d2de65acb19cb1b1557e70705944c7755d9c5d465c645708570a09d2570c090ad1d1c37
10ad1129fc30b0b57080b9f0b6e09d1c39f0a1c0a7140012d010101010101010101010101010101
01010101010101010101010101010101010101010101010100000101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101012d01010102010201010101010101010101010101010101010
10102020202010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
1010101012e013d7e430201012d020102222f222e02222f2d01010343016a6a7643415f6a3f4323
7777414223433d77423f7741232629262325283c2939282b452a2e010201010101010101010101
01010101010101010101010101010101010101010101010101010101000001010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
010101010101010101010101010101010101012e2201010101010101010101010101010101010
10101020201010101012d01010101010101010101010101010101010101010101010101010101

979

01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
1010101010101010102013e752f01010102010101010201010101010101010101012e010102020
12d0201012d02010101012e0201022d01020101010101020101012d034d3c22020101010101010
10101010101010101010101010101010101010101010101010101010101010101000001010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101012e0101012e010202010101010101010101
01010101010101010101012d2d010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
010101010101010101010101012e0177652e022d01020101022d2d2d2d010101012d2e0201020
10101010101010101010101010101010201010101010101012d022d2d01012e01014e2c02012d0
10101010101010101010101010101010101010101010101010101010101010101010101010100
00010101010101010101010101010101010101010101010101010101010101010101010101010
1010101010101010101010101010101010101010101010101010101012e2e2c412d01010101010
10101010101010101010101012d01223e3f2e01010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
0101010101010101010101010101010101012e3d532f2d012e0101010101010101020201010101
01020201012e2e020101010101010101020102010102010101012d010202010101020122014e2
b0101010101010101010101010101010101010101010101010101010101010101010101010101
01010100000101010101010101012d0201012f2e01010201022e010101012e01012202012e0102
0122012f01010102020122010102010101022d01012e01010102012e0101020188dace6f882d220
1020102012e01010102010102012d0101437e82ae475f012e0101020101010102020201022d020
2012e0101012d01012201022d0101012d01010122010102012d012d01012e0101012e01010102
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
010101010101010101010101010101010101010101023c652e0201020101010101010101015f01
2d2d01012d01012e2e0101012d0103010201012e010101012e012d012d0101010101010101010
2014f2702010101010101010101010101010101010101010101010101010101010101010101010
10101010101000001010101010101010102010102010123432e2d6a2e4043013e5f22010101013
c39682d01010101220101012e012d7601765f2f76682d03015f01415f2d6801762f68541f665bfd77
01010201012f03022d2d2d012d2d2f012d0327fad4c19b9301010203020122010102012d0101012
d222e012f4301012d2201012e0101012f0102025f01032e015f0101012e2d01012e01012201012e
2d010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
0101010101010101010101010101010101010101010225602e02010201010101010101012d010
12d01010102010101012f2201012201012e0102012e012e2d01010102020101010101010101010
2014f2702010101010101010101010101010101010101010101010101010101010101010101010
1010101010100000101010101010101012d010122016aaf596a019c8386cdc07395692a2202756
e49489303012f43025f4323010167c6c7a7806e53b6b3d81d079f114fb366855c659337f2ecaa580
1023d1b573e585655240101350d6412636c146fbdfedc1694194b7cd94a65d3690e850595030276
c781ce685e5858427e676c9fb22d7b3f013b100bcc4b098d2f290fc4416b726177646d3d2e2f02010
20101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
101010101010101010101010101010101010101010225462e0101010101010101010101020102
3b6c3c010186885f2f2c25263c2540343203012f87af2d02292623012d0101010101010101010201
4f2702010101010101010101010101010101010101010101010101010101010101010101010101
0101010100000101010101010101012d01010201015fcb872badd52d40f2d80109a701ae798f2f22
805f013216a1b7ad4f2d0213d756bb68d069390051a804c8573ae64cb8a080f5cc6064c902222d8
400ae89f236eb9a2e0106e6ccec9c35004aa01d4c5f36e1899ffb7cec1667a32ab4d801014cee883
5ce9929c8d8121610000026060f002220574d464301000000000001000000000000000d0000000
0200000081b0100089b01009927e45901f45801eb1d332a45007c0169e786b1f832f4cc09995f010
2022d020101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101023d302d0101010101010101010101
012e85827c713408e9465627a16540bd9474b266302a0b508d6b4374173c012d01010101010101
010102014f27020101010101010101010101010101010101010101010101010101010101010101
0101010101010101000001010101010101010101022d222f2e01936bce0031013edf0422b6e78c1
ea802012f02012d02879836af7668017c495cf501a16939e07b8fb0db6036e26bea8526b452d0ca8
36101015ae77c7a792d15122201bd9e019d21a2f261ad7e187536e7549ff801cd73adb876d5d402
019c8b0101178101b7139fa72ee25e87ff062bd51521c96fe52c0170b42ea1a15ff5bc75a10101012

f012f0101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
010101010101010101010101010101010101010101010226642d01010101010101010101012d0
13f3eb0d54cbd3f01922a147201c08e392a07a6ae8b02021d5a4d6d2f2f010101010101010101010
2014f2702010101010101010101010101010101010101010101010101010101010101010101010
10101010101000001010101010101012f01010101012e0143886ffe260129fe4d016ce6b0149d2d2
e01012201a20907c3074a015f57114cdd22c817890054d329c56439f954c8216c9965f777bb70012
d8de6cf61003919732f0164a82ca3d833e749e44f09193ae461d19b01d9c46bc626aa4a2d226f812
ede59c501d7820bf82c00b07eeba980a10dda1f04e6899706df0167a303fb8a30b8ab8c010103010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
1010101010101010101010101010101010101010228532d010201010101010101010101010253
a35a338b8f86a201148201838640b7b8cf5d062e011949486001010201010101010101010102014
f27020101010101010101010101010101010101010101010101010101010101010101010101010
1010101000001010101010101010101012e2d0101012e6fbad3010127ba480104007c18a822010
2382222032c39cc374001019374752168654605672f51666987a2e066346044ab685b31136b030
163e79c2f62a0b13e0101381ac7fcaeaf148c829c06da66178fd7b4c1c45b6bd801f5950101775549
0a2adac4d24206ad301986d95b2848477ac45a89c61cd317e597cf1273757670a18b522d010201
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010224672d01020101010101010101010102371
e3d8c3a18b06da5369b5c3ac029cb0676a9d410016ac687741eaf9801010101010101010101020
14f270201010101010101010101010101010101010101010101010101010101010101010101010
1010101010000010101010101010101220201012d0101027cef97012dcce4c4ccb77101cddcbc68
841241012d0201012e012d0102015f012e01010102012d41010297e46c2f026a01010240012e010
141d15a2d2e762d01012d010123f85e3f82400142682e286324c1d33c0203230141fd9302020101
3f2f01017701015f013f010141022e430123232d6801682e88c53b01223c03014101232201010102
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
010101010101010101010101010101010101010102246d2d01020101010101010101010201424
ecabc01345170c22a059c6746012a4c4fd82db2945650426bd21bd401010101010101010101020
14f270201010101010101010101010101010101010101010101010101010101010101010101010
1010101010000010101010101010101010101010101010103c141012fcb105c64612f01018ebeb1
55044201020201010101010101010101010101010101010101025811cf01010101010101010101
01025f762d010201012e012e01919ec23ba43b0101020129d67b2d26420102010186aa882d0101
01010101010101010101010101010101010101010101010101032877010102010201010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
1010101010101010101010101010101010101010101012d25672d2d01022d010201022e010101
2d2d02430103016a5f2e2d01012d2d01012368010122232322012d012202012202012e01012d01
020101b2270101010101010101010101010101010101010101010101010101010101010101010
101010101010101000001010101010101010101010101010101220168012e012201012e010103
01012f5f2d680122020101010101010101010101010101010101010122012e68012d2201010101
0101010101012222010102012e012f0102223d010128012201022e013e0101030101022d2d2e2c
0101015f0101010101010101010101010101010101010101010101010101032e01010101020101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
010101010101010101010101010101010101010101010101010102256d2e2d010201012201020
101222d0101022e0101012e01012f01022f012d01012d03012d0101012e5f01022f02012d2d0101
012e01020101b2270101010101010101010101010101010101010101010101010101010101010
1010101010101010101010000010101010101010101010101010101012d01012d222f020102010
22e022e2e01760101012e010201010101010101010101010101010101012e01030201012f01010
101010101010101010202010102012e012e015f2d010368012e012f01010101020301012f010102
2201032d02012d010101010101010101010101010101010101010101010101010101010201010
20101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
101010101010101010101010101010101010101010101010101010101023dda2e2d0101012e01
220201030101012f012201012d010202012e0101012e012201015f02222f012e01030201012d2e0
1012d010202020101b22701010101010101010101010101010101010101010101010101010101
0101010101010101010101010100000101010101010101010101010101010102222d020101016
801010101010102012d01220101012201010101010101010101010101010101012d0101020201
2d0101010101010101010101010101010202012e010101012f01012f2d012e012d227601010101
2e012e01012201015f01220101010101010101010101010101010101010101010101012e01012d

981

2d020101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
010101010101010101010101010101010101010101010101010101010101010102265c2e020101
0202010102010122022d015f012201022d01020101010101012e01222d020101012d022d012d01
2d020101022201012e020101b2270101010101010101010101010101010101010101010101010
10101010101010101010101010101010100000101010101010101010101010101010101020102
2e020101022d02022e02010101012f2d2d02020101010101010101010101010101010101012f01
0201012e0101010101010101010101010102020202012d012d012d02010101012201030101010
12f03020101022f012e01010101010101010101010101010101010101010101010101010101010
10102020101020101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101022806
2e02010101017601012f012d012e0301027601030122222201032e01020103010101012d760101
012f012e010101030101012d01020101b227010101010101010101010101010101010101010101
01010101010101010101010101010101010101010000010101010101010101010101010101010
10201012d012d0101012d2f020102222e2e0101020201020101010101010101010101010101010
12f01012f0202012d0101010101010101010201012d2d010201010101022d012d22010101012e0
12e012e2d01010201010101022e2d012d01010101010101010101010101010101010101010101
01010101012e01010102010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10224d22d020101010101012f66673801684a13b25a066c89d1ab6a01013d9c603a8771b202bc7
3d48e5f013b610288a9010101012d2e01020101b22701010101010101010101010101010101010
10101010101010101010101010101010101010101010101000001010101010101010101010101
010101022e010101012d012f010101010101010101010101020101010101010101010101010101
010101010101012e0101012e0101010101010101010201012d02010202012d020201010101022
2220101012d012d01012d02012e030201012e2e02010101010101010101010101010101010101
01010101010101012e2d010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
1010101020224d2020101010103012e013ad2770201cee33925b93b5a20a2012e0201570d5f68d
b4acfc0293e1baf2dda1802d0726801012d2e012d020101b2270101010101010101010101010101
01010101010101010101010101010101010101010101010101010100000101010101010101010
1010101010101012d012f01022e01012d0201020201022d01012f0101010101010101010101010
101010101010101012f0101012e01010101010101010101012d01010101012d01012d010101220
1012d01022d2e01020102010201010101012d2e01010101220101010101010101010101010101
01010101010101010101010101010201010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
1010101010101020229d20201020101012e012e015e06d450edac02411e253420682d020301590
8012ea47bae1001011fc45fa6c494156e3f22220101012d020101b2270101010101010101010101
010101010101010101010101010101010101010101010101010101010101000002020101012d2
22f010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
0101010101010101010101012a6702010101010102012d2e3d57ab70e5af0141143d34dd5f2e01
030175be2d43e9abd80c0101eb4dc2bf5f837a8661012f010202010101014e29010201010101010
10101010101010101010101010101010101010101010101010101010101010101010000010101
01012e2f0301010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101012a67020101012d010101010101952a09575f0145b9439cfc
306b43012f0a1c766a9dab276e92b6163c129a39edab237377012d0101220101014e2901020101
01010101010101010101010101010101010101010101010101010101010101010101010101000
00101010101022d2d010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101

01010101010101010101010101010101010101010101010101010101010101010101010101010
1010101010101010101010101010101010101012a67020101012d010122012f012b1cd62b01023f
3b5f2b8f8fab0101430b0e3822aac20128c9c23f77612636472a2e932501010101010101014e2901
02010101010101010101010101010101010101010101010101010101010101010101010101010
10100000202020101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
1010101010101010101010101010101010101010101012a670201010101010122012e012d1315
0101224185020101012f012d2d4f642388f494022e015f0101022e0101222e01012201222e02010
1014e290102010101010101010101010101010101010101010101010101010101010101010101
01010101010100000101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
0101010101010101010101010101010101010101010101010101012a6702010101012d0101010
101017c8e2d2f018fd1432d0102012e0101267a590b1997012e2d012e012d010101010102010222
0101010101014e290102010101010101010101010101010101010101010101010101010101010
10101010101010101010100000101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
1010101010101010101010101010101010101010101010101010101010101012a670201010101
2d01012e2e2d222e01012d2f0176010201010122012d01013c01012e0202012e012f01022e2f020
12f01012e01022e0101014e2901020101010101010101010101010101010101010101010101010
1010101010101010101010101010100002d2d0201010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
101010101010101010101010101010101010101010101010101010101010101010101012a6702
010101020101012d010101012d01012f010122012d2d01010102025f0101012d2e012d01220101
012d01022201022d010102010101014e290102010101010101010101010101010101010101010
10101010101010101010101010101010101010100000101010101020202010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01012a6702010101010122020101012d01022d01015f02010102012e010202010101220101012f
01010101012e01030101020101012e022e0101014e29010201010101010101010101010101010
10101010101010101010101010101010101010101010101010000010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101012d0128670101012d020101010102010101010101010101010101010101010101010
101010101010101010101010101010101010101010101020201042a012e010101010101010101
01010101010101010101010101010101010101010101010101010101010100000101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010

983

10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101022a06012e01010101010101010101010101010101010101010101
0101010101010101010101010101010101010101010101010101010101022d04262d2e0101010
10101010101010101010101010101010101010101010101010101010101010101010101000001
01010101010101010101010101010101010101010

17.5.1 Functional requirements


The functional specification of the system (given by Burns and Wellings) is divided into four
components: pump operation, environment monitoring, operator interaction, and system monitoring.
Pump operation. The required behavior of the pump controller is that it monitors the water levels in the
sump. When the water reaches a high level (or when requested by the operator), the pump is turned
on and the sump is drained until the water reaches the low level. At this point (or when requested by
the operator), the pump is turned off. A flow of water in the pipes can be detected if required. The
pump should only be allowed to operate if the methane level in the mine is below a critical level.
Environment monitoring. The environment must be monitored to detect the level of methane in the air;
there is a level beyond which it is not safe to cut coal or operate the pump. The monitoring also
measures the level of carbon monoxide in the mine and detects whether there is an adequate flow of
air. Alarms must be signaled if gas levels or air-flow become critical.
Operator interaction. The system is controlled from the surface via an operator's console. The
operator is informed of all critical events.
System monitoring. All the system events are to be stored in an archival database, and may be
retrieved and displayed upon request.

17.5.2 Nonfunctional requirements


The nonfunctional requirements are divided (by Burns and Wellings) into three components: timing,
dependability and security. This case study is mainly concerned with timing requirements and
consequently, dependability and security will not be addressed. There are several requirements that
relate to the timeliness of system actions (Burns and Wellings, 2001).

Monitoring periods
The maximum periods for reading the environment sensors may be dictated by health and safety
legislation. For the purpose of this example, it is assumed that these periods are the same for all
sensors, namely 100 ms. In the case of methane, there may be a more stringent requirement based
on the proximity of the pump and the need to ensure that it never operates when the methane level is
critically high. This is discussed below.
The CH4 and CO sensors when polled each require 40 ms in order for a reading to become available
(via an analog-to-digital converter). Hence, they require a deadline of 60 ms. [3] The water flow object
executes periodically and has two roles. While the pump is operational, it checks that there is a water
flow; but while the pump is off (or disabled) it also checks that the water has stopped flowing. This
latter check is used as confirmation that the pump has indeed been stopped. Because of a time lag in
the flow of water, this object is given a period of 1 second, and it uses the results of two consecutive
readings to determine the actual state of the pump. To make sure that two consecutive readings are
actually one second apart (approximately), the object is given a tight deadline of 40 ms (that is, two
reading will be at least 960 ms, but no more than 1040 ms, apart).
It is assumed that the water-level detectors are event driven and that the system should respond
within 200 ms. The physics of the application indicate that there must be at least 6 seconds between
interrupts from the two water level indicators.

Shut-down deadline
To avoid explosions, there is a deadline within which the pump must be switched off once the
methane level exceeds a critical threshold. This deadline is related to the methane-sampling period, to
the rate at which methane can accumulate, and to the margin of safety between the level of methane
regarded as critical and the level at which it explodes. With a direct reading of the sensor, the
relationship can be expressed by the inequality:

where
R is the rate at which methane can accumulate
T is the sampling period
D is the shut-down deadline
M is the safety margin.
In this example, it is assumed that the presence of methane pockets may cause levels to rise rapidly,
and therefore a deadline requirement (from methane going high to the pump being disabled) of 200
ms is assumed. This can be met by setting the rate for the methane sensor at 80 ms, with a deadline
of 30 ms. Note this level will ensure that correct readings are taken from the sensor (that is, the
displacement between two readings is at least 50 ms).

Operator information deadline


The operator must be informed: within 1 second of detection of critically high methane or carbon
monoxide readings, within 2 seconds of a critically low air-flow reading and within 3 seconds of a
failure in the operation of the pump. These requirements are easily met when compared to the other
timing requirements.
In summary, Figure 17.4 defines the periods, or minimum inter-arrival times and deadlines (in
milliseconds) for the sensors.
Periodic/Sporadic

Period/Interarrival
time (ms)

Deadline (ms)

CH4 sensor

Periodic

80

CO Sensor

Periodic

100

30
60

Air flow sensor

Periodic

100

100

Water flow sensor

Periodic

1000

High water interrupt

Sporadic

6000

40
200

Low water interrupt

Sporadic

6000

200

Figure 17.4: The Attributes of Periodic and Sporadic Entities

17.5.3 Software Design


The main components of the software design are illustrated in Figure 17.5. Here, the boxes represent
instances of classes (X :Xclass is object X of class Xclass), and the arrows shows the collaboration
between the objects.
010009000003bebe02000000df38010000001610000026060f002220574d464301000000000001
00eb1500000000190000000020000008e7020008070300010000006c0000000000000000000000
d20100005a02000000000000000000006a4000000753000020454d4600000100080703000c0000
00010000000000000000000000000000000005000020030000c40100001a010000000000000000
000000000000e3e306006e4e0400460000002c00000020000000454d462b014001001c00000010
0000000210c0db01000000600000006000000046000000b0930000a4930000454d462b22400400
0c000000000000001e4009000c00000000000000244001000c0000000000000030400200100000
00040000000000803f214007000c0000000000000008400005fc920000f09200000210c0db01000
0000000000000000000000000000000000001000000ffd8ffe000104a4649460001020100480048
0000ffed0d7850686f746f73686f7020332e30003842494d03ed0000000000100048000000010001
00480000000100013842494d040d000000000004000000783842494d03f3000000000008000000
00000000003842494d040a00000000000100003842494d271000000000000a000100000000000
000013842494d03f5000000000048002f66660001006c66660006000000000001002f6666000100
a1999a0006000000000001003200000001005a00000006000000000001003500000001002d000
000060000000000013842494d03f80000000000700000ffffffffffffffffffffffffffffffffffffffffffff03e80000000

985

0ffffffffffffffffffffffffffffffffffffffffffff03e800000000ffffffffffffffffffffffffffffffffffffffffffff03e800000000ffffffffffffffffff
ffffffffffffffffffffffffff03e800003842494d040800000000001000000001000002400000024000000000
3842494d0414000000000004000000023842494d040c000000000be70000000100000057000000
70000001080000738000000bcb00180001ffd8ffe000104a46494600010201004800480000ffee000
e41646f626500648000000001ffdb0084000c08080809080c09090c110b0a0b11150f0c0c0f15181
31315131318110c0c0c0c0c0c110c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c
0c010d0b0b0d0e0d100e0e10140e0e0e14140e0e0e0e14110c0c0c0c0c11110c0c0c0c0c0c110c0
c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0cffc0001108007000570301220002
1101031101ffdd00040006ffc4013f00000105010101010101000000000000000300010204050607
08090a0b0100010501010101010100000000000000010002030405060708090a0b10000104010
30204020507060805030c33010002110304211231054151611322718132061491a1b1422324155
2c16233347282d14307259253f0e1f163733516a2b283264493546445c2a3743617d255e265f2b3
84c3d375e3f3462794a485b495c4d4e4f4a5b5c5d5e5f55666768696a6b6c6d6e6f6374757677787
97a7b7c7d7e7f71100020201020404030405060707060535010002110321311204415161712213
0532819114a1b14223c152d1f0332462e1728292435315637334f1250616a2b283072635c2d2449
354a317644555367465e2f2b384c3d375e3f34694a485b495c4d4e4f4a5b5c5d5e5f55666768696a
6b6c6d6e6f62737475767778797a7b7c7ffda000c03010002110311003f00f554924925290eff00e6
2cfea9fc8a9e666675577a74574399edf7d976d7013fa49ab6feefd0fd222e2dd919783ea5b536a7d
8d3b5acb05ad20fd07b2e686ee659f49bed494be6faf5d3bf131d97d8089ac90d91e4f77d143c0b33
2f2efb6608c46803602e63c932edd3e91735bed0c50cbc3bb26f6de2cbf1dcc6ed02a35f132677eef
a5ff7c559bd3735e19b33b31b5b258e6cd32769757bb7b7f3bf39253ad5800bc01037703e0d4450a
83bdc5c3697198e7b06f6f82a3939f98db5ccc5af1edac38377bafda411fceb1d5ec77bbf33e9a4a74
5242c5b2fb290fc8abd0b4976eac383e00716b0ef6fefb3de8a9294924924a7ffd0f5491e2876bddbe
b6b5db4389dc4413a349eeb2becd957380c4cac6a9ac6d6cf4bd36bdcd7867a8e6dbaeef731ec7e
cff43fe8ff009e44c365872836fc8c4b98585fe954c68790e23d2b2773ff0045b7f93ef494e8ec711fce
123be8dffc8a8bb735f5b5b67b5c483a3740013e082e6d45b94dac3766d0d21a0448dcd734c7f9aa
adf4e4d96becc5cac46e382ed0d61c5bb00aed0eb03f6fe8ae6d9bfdbff06929d383fe94ff00d1fee51
655b1b02d74125d276f2e25e7f37f94b368c7cd37fa6ecbc4b7d2733d6636a6fa911c3a1fec7dbff16
ae96d4e6d20069a8dae20000b622c33fba929230bcd9634d861b1b746f71f04e2b68e1f1264e8de4
ff6551c8c2ea0fb0bb1efc7ae93f41a690ed08f6cbb77d2ddfebeff00d11f0719e18f7653a9bc977b1d
55618d000008e6cf76fddf9c929b45ae1cd847f9bff9143de5b7b19bf735cd79331cb4b3c3fae854b2
b733143dad2d151804081fcd8555f81d57d47b9b918cdacb9db18681019bb757b8eeddeab59ec7b
fe87fc124a757737c424a9558d6b716c37ba87dae24d76b6b0d60040d9b99b8eef77bbf9c49253fff
d1efcf48c2b5a3ed184eb1ee83638bf42e036eefe7530e95d31edad9f62b0b5bbb635d64ed32459fe
1ff00e11eb41b9d84ec838cdbeb76434969a8386e901b6386cfe4b1ec50a5b55dba37344fa8c825a
76d837fe61ff49bd2522c6c166362d9462d3e8d51fa2ac99324b9eff76e7fd27bff007901fd23a63ec0
1f84e2f7cbb76fd64383f7177adf4bd476ff00eba9e66663625a6979b0bc33d4106f769eeff42db3fd1
bfdad56aaa2bb2baed717ee2d0643ec8f7005df4cb5dfe7a4a69bfa2f4d7eddf84f76d6ed693612436
36ed1377eeab07107d8ebc66d65b53259e9877b857b5d50687eefdd77efa9ce1ffa7ffc14ff00e4d42
a76339a775fa87bc7f3a780e207e7a4a698e8dd3dc4b1b8d70153a406dbb40711bfd8d65adfa3bd4
ace8b8563dcf7e3dc5cf7073e2ddb2441e196b3f755eae9c67171aec738920bb6dae3ac6dfdff00e4
a8666dc6a7d7971630fe925f64ed3a7b057bb73f7ec494c6fc4f5f1eaa6fabd466c0db6b691c835d80
7bb6b5ccdd57b9556f4ac565b5814e407365ed26e912032bd5a6df76e6ab183918b9a5e2a75b2c0
d76a6f668e2f6b7f9f6d5bbdd53fe82b8ca18c7ef05c5c0103739ced0c13a38ff0025253963a0e0b59
e98a2f15ccfa7eb1d9f9dfe0fd5d9b7f48ff624b612494fffd2f45f46d6f5037bb20beb69745228063735
8367da1ac2fdbedde8953bd2b352f7b5dbc922a70897efa99a37f35b63ff00aeab757bb0434e36755
6dd4d84d8ef4838c7a7e9ec6bbd2736efd258efd1fa6ab60e7745c016bb129bdacb5cd07db63c92c
601f45fbdd5b1adf67fc7fab5ff003a929da6df5b9c19ee05dc6e6b9b31e6f684d93fd1adfea3bf22a54
f55c7cccbae8ad96b5cd71702f639ad2df4e77073bf956ecd9f4ff4762bf6b4beb7b0182e6900fc424a
6a658ea2fd9fb3eca18d008b3d505c41d36c6cfe4ee4f863a88b5e332ca1ed03dada810e064fd3ddf
c8d8abbfa0e0d8e7becc3a9efb043c9b1e6419ddf9bf9dbbdff00bea47a2e196ed3874ed9248def89
3f48fd0fce494dd641c97c47d068d3c9d6232a78381561bacf46a652cb2096b0932e976e7bb706fef
2b89294924924a524924929ffd3f5035dbb9c59606871982d9ed1e2857597505a5f67b1da4b5849d
d23b349fcdf7ff23d34575fb5c5a18e76b120b40262606f7b506fbc594b88613b1d1f4ab8dc0c7a4ef
d27f84fe67fb6929a2eeb7895dfb2eca65a6973f7b58c734b4b0ba9b37ff3adf62d3192c805c1cc0ee
091223fe319bebffa690b5c00029780071edffc9a737b809353c01c9f6ffe4d253363d8f1b98e0e6f88
32155bbab61d5b757da1e1c41a58eb3e896b1cd3e9076d77bffead587d14bcee7346efde1a3bfcf6f
b942cadf583631e4bb80d700ee4fd11f41fff0082a4a63879c32fd48a6da4544366d686eed27d9ee7
7b55954dd9ceadc18faa4921821f5825e44ecd965adf77e77d3446e58792d6d6e739a61cd0eac90
603f6ba2cfa5b5ec724a6c2485eb3ff00d0bffe8ffe4d49961712d2c730800fba3bcfeeb9de09299a49
24929fffd4f41eab9182d1f65cea5f7d57b89dac6976ac0c2d0e6b3ddeeffbe2cd78e816da09c0c82e
686005cdb5b01dbdaf6b7ddb7f46dfa7fbfeaae84d4fdc4b6c2d0e324000f68ee12f4adff4cefb9bff00
91494e555d6f0716baf1e8c4ca6d15b481153ced8fa0cdbeeb1ce7ab98bd4abceaef0caadacd61dfc
e30b411bac631ccddf4b7b6bf53fb6a22dccdb739a4da6a639cc6b76873dc1d6b055ad6e6b777a4c
f7ee45c7f5f229df67ad44920d768af747fd6f7b7dc929b6a16fd0f9b7f2853517b37b4b64b4f670890

46bf9d2929c2bede9594eb2ebfa7643eff00ce22bb352c86d6ddecfeb6e4f85774cc177ab8dd3b26a
2e6868db5d8e3b4b6b76d7b1ffcdecfe6bfeb4b63d1b7fd3bfee67fe410727ed357a7e9de4973803b
c3620b9ad77d167d2f77b1253507d6005ac2ec0cc6b8901edf45ded07f3b746d76dddff57fe8d6956
fdeedf05bb98d30e1044eefa4157b0e7b729b531b63e87004de0d436925dbb731cddcedb0cfa0acd
75b984b9cf7584803dc00889fdc6b7c5252449249253fffd5f52b1c5ac25bcf69d7959b99d67ec773a
9b1af716449ae87bc10e1cb4b2cfecedfedad1bcc54e27b47e559c4fd621bc34e1c6e3b3739f3b497
100b9ac6b7d8c2d6ff0037f98929162756a9d915e2d65c6db9cedae763bc083bae973fd4f6b19bb6
7fe76b5375ecb181ee6b9af2468d20f05dfbeefdd59e3fe720006fc227680e27d43eed25cdda19ecfe
423e31ea26c6fdbcd13ea1f4851b880ddb6fd3f53f3b6ec494df492492534b2f32cc765969d6baded
af6b2b363bdc19ef86bdbf477fe6acf775cadef639cdb81613edfb358667fb7fdadaaee4fed3171380e
a43779f585e5dacb19b767a6dfcdfeba17fd9192773f0c6a23697f02264398efa7effcff00f46929b385
95666e3b722a7c56e24377d4e69306376d367d177e6ab143cd94b1ee8dce68263892150acfd61f5
6a163b0fd22e6fabb3d4dc1a3e9fa7bbdae73d5dc4fe8d57f51bf91252649249253ffd9003842494d0
4060000000000070005000000010100ffee000e41646f626500644000000001ffdb0084000403030
30303040303040604030406070504040507080606070606080a0809090909080a0a0c0c0c0c0c0
a0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c010405050807080f0a0a0f140e0e0e14140e0e
0e0e14110c0c0c0c0c11110c0c0c0c0c0c110c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0
c0c0c0c0c0cffc000110801c4015e03011100021101031101ffdd0004002cffc401a2000000070101
0101010000000000000000040503020601000708090a0b0100020203010101010100000000000
000010002030405060708090a0b10000201030302040206070304020602730102031104000521
12314151061361227181143291a10715b14223c152d1e1331662f0247282f12543345392a2b2637
3c235442793a3b33617546474c3d2e2082683090a181984944546a4b456d355281af2e3f3c4d4e4
f465758595a5b5c5d5e5f566768696a6b6c6d6e6f637475767778797a7b7c7d7e7f7384858687888
98a8b8c8d8e8f82939495969798999a9b9c9d9e9f92a3a4a5a6a7a8a9aaabacadaeafa110002020
102030505040506040803036d0100021103042112314105511361220671819132a1b1f014c1d1e
1234215526272f1332434438216925325a263b2c20773d235e2448317549308090a18192636451
a2764745537f2a3b3c32829d3e3f38494a4b4c4d4e4f465758595a5b5c5d5e5f5465666768696a6b
6c6d6e6f6475767778797a7b7c7d7e7f738485868788898a8b8c8d8e8f839495969798999a9b9c9
d9e9f92a3a4a5a6a7a8a9aaabacadaeafaffda000c03010002110311003f00f7f62aec55d8abb1576
2aec55d8abb15762aec55d8abb15762aec55d8ab1cf345bdbdddf796edeee18e781f526e514cab2
21a58dd11f0b023638aa38f967cb64d4e8f624f8fd5a1ff9a7156bfc2fe5aad7f4358d46e0fd561ebff0
38ab6de59f2e353969162686a2b6d09a1ff81c55dfe18f2dd38fe87b1a5294fab43d3fe071572f967c
b89b2e8f62bf2b6847fc6b8ab7fe1af2e6ff00ee22cb7dcffa343b9ff81c55dfe1bf2ef1e3fa22cb8f87d5
a2a7fc471570f2cf9703721a3d9061d185b435dffd8e2ae3e5af2eb5396916469d2b6d177ff638aa97
94d553cb5a52200a8b6d1aaaad00002d000076c5539c55d8abb15762aec55d8abb15762aec55d8
abb15762aec55d8abb15762aec55d8abffd0f7f62aec55d8abb15762aec55d8abb15762aec55d8ab
b15762aec55d8aa43af9ff00727e5a1e3a8bff00d40dd62a9f62aec5523f39f98bfc21e52d73cd5f546
be5d12c6e35192cd1d627952d636959559f604aa9a57156ecfcdbe5fba961b36d46d61d565b75bb
6d3de78fd748da3129aad41f855831dbecfc5d31553ff1cf933ea2fa9ff8874efd1d1cbf5796ebeb70fa
4935397066e540dc7e2a1fd9f8bece2aaf3f9b3caf6b24d15d6b5630496f02de4e25b989385bb950b
2b1660029e6b463fccbfcc3154c2c6fec753b58efb4eb98aeeca605a1b981d6589c0245559490771
db154462aec5528f2b0a79734c1ff002ef1feac5537c55d8abb15762aec55d8abb15762aec55d8abb
15762aec55d8abb15762aec55d8abfffd1f7f62aec55d8abb15762aec55d8abb15762aec55d8abb1
5762aec55d8aa41e60246abe581b50ea5257c7fde0bae98aa7f8abb1561bf9b36b7b7ff965e6dd2f4
db596f350d4b4abbd3ed6de04795ccb7b1340a78c6aec4297e4d453f0838abe7ef3a0d4ef3ca57d6
baef96f578349d3ae6eb5f6bf8f4fbd8e6226d165b292d1d921e4abea4ac1e753fef285f8397c2aab1
9baf3bcee2caf2e3c97aa379a2e6e6fe7d523338fabea56b26876da64c609d6cbeafccc71c3589e31
20fef15a8ceb8ab20d7747f326bba4f9dac60f26ea932f9892e2ef43bdbeb4d4567857534b7f52ca7b
72af027a462a7ac9cf9c491c7c14d5b157d55a35d25f69969789672d82cd12bfd4ae23f46588b6e55
9081c4838aa3f15762a94795ffe51dd33fe61e3fd58aa6f8abb15762aec55d8abb15762aec55d8abb
15762aec55d8abb15762aec55d8abb157fffd2f7f62aec55d8abb15762aec55d8abb15762aec55d8
abb15762aec55d8aa41e6134d53cb03c7527ff00a80bac553fc55d8abb15762ab7d28f884e0bc54d
5568280fb62abb15762aec55d8aa4fe55ff946f4bda9fe8f1edf462a9c62aec55d8abb15762aec55d8
abb15762aec55d8abb15762aec55d8abb15762aec55fffd3f7f62aec55d8abb15762aec55d8abb15
762aec55d8abb15762aec55d8aa43e6007f4a7964f61a93d7fe906eb154fb15633e79d6aff0047f2e
6b13e991cf1df41a56a17d6da8224724104d670f3412073d5c9f85783060af5e38abcff00cb9e76f39
68d6fe50d53ccb78de62d17cd9a10d4648eded234d46d7538ada1b964852dc22cb048aefb327389
901691918f1559159fe6cd8ea5af2e9561a5dcdcd8fe8bb8d4e4be89e090092db506d39a10164208
1246e4ca1bd3e346e5c7910aa03cb1f98571e70fcca86d747be63e4e93cbb26a0b66d145c8dfc1aa
4da7ca4ca39315530b0015b837db048c553bbffcd8f28e9925c9be96686c2d67bfb26d40c44dbb5d
e916d25dddc2b425cb4714521af1e2c6375562c3154b6e7f3c3c9f69a75dea13c17ea6ca5bc866b5
10234c469b64ba8dcba0590ab2a5bbac9f0b55ebc503362aaf3fe73f9421d4eff4948efae2eb4d8a5
92ecdbdb1923492d84265859c1e2b2289d366203fc62366646c559dd95cbdddac57325b4b69248b

987

c9adae387ab19f06f4d9d6bfeab1c5501e5614f2e6983fe5de3fd58aa6f8abb15762aec55d8abb157
62aec55d8abb15762aec55d8abb15762aec55d8abb157ffd4f7f62aec55d8abb15762aec55d8abb1
5762a97dcebda1d94d2db5e6a7696f71046d3cd0cb3c71ba42814b3b2b30214065ab1d87218aab
26a7a7493c36d1de40f737117d62de15950bc90ff00bf1141ab2ff9436c5589e8ff00997a3eb9e62d6
f40b18c32683790d95e6a06e6d8dbb09ec5afbd44225258285e0eb4f515be22bc159b15648be62f2
fbd94da926ad66da75bb04b8bb17111863660a4077e5c5490ca454fed0c551d6f7105d429716b2a
4f6f20e51cb1307461e2196a0e2aa98aa43e6007f4979688e83526afcbea3758aa7d8ab07fcc2d03
cefe62824d37cb77f656ba45ed85e69fa9437a242ce6f1550488511a8d1af2e3bf1ab9e4adf0d1579
adcfe4bfe635f6856da15f6afa6dca69fa67e84d26e8cb771496967484108914691b3b8811646951f
9c7ca3fb0eeacaab37e517e661b992ee3d57478a796dee6d2575fac10c9757e352dd0c5c289372e
2bc78346e63915d78e2a86d2ff27bf37341d51f58d0bcc7a5595f3dbddd9722924c16defafe6d49c0f
5203bacd3bf16fe5db156af3f2aff0035b49d3f519f425d02fee51af754d3b4c9e6beff008ec5ed9bd9c
d70b34fc87395247aacbca1f52467e2bcb655870f207fce44a795b44d0a2d33493a5db5e3dcda426
db4f5bdb4616c228c5dc258db4b1bb339664669450720eadc5557a0c7f95ff9b4d63aadac9ad68f0a
ebae2f752b6b71762dd75095631733c4ae18fef4a57d372d12312c88add157b5e983521616e3583
01d4f80fad1b40e203277e02425a9f3c5505e54a8f2de975ebf578ff562a9c62aec55d8aa57fe26f2d
96641ac58f34963b665facc3513cd511c6472fb6f43c57ab76c555ff4be955bb517d6fcac29f5e5f592
b072e9eaeff0569fb54c558c794bf32748f3569516b5c134cd3a5f5c7ad77756bb496f7f35871a248d
50ef0f2471f03720a1b96d8ab2193cc7e5e86d6dafa6d5aca3b2bcdacee5ee2258a6236fddb96a37f
b138aa678abb15762aec55d8abb15762aec55d8abb15762afffd5f7f62aec55d8abb15762aec55d8
abb15762af12f3d7e5b6b9ab6b5e60f3168fa25bcda97e92d1750b46f5e2b4b8d46d2c6355bab517
2a39c24f10cbcfe076440df0ee15639adfe5279e5ef748d3fca9a1d9e81a4d8d8fd42d750b6d49e69
ed12e747d4ac0094ce8d24df5492e62285596a9cb8af2fb0aa2fcb7f97be78b7d6eef57d4fca76763
05d5dd94896b6d796f3fa71daf96ee34894eea828f2ba05df918bedd38f1c558337907cc5e45f2e69
ba45fe8b6b6d7b78fe57b5d374c4bcb2860bcbdd1f45b8b7d48bfabc616aa0665f5590cb446e5c942
e2afa53f2d574f8fc83e5bb7d2ad25b1d3ad74fb7b5b6b5b8f48ca896c822f89a02636af1af38cf093e
da7c2d8ab2ac5525f31d96ad74ba7dc68ab6f25ed85d0b9115e4924313a1865848e71a48411ea54
7c3db1540fd63f31bfeadda27fd27ddff00d91e2ad7d63f31e9ff001cfd101eff00e9d767fec4f1571b8f
cc7eda7689ff0049d77ff6478ab5f58fcc8aff00c73743a76ff4fbbffb22c5523f31eb9f99fa6cda0a4567
a243f5fd522b3982de5cc81e3786672a79598e35283e21be2a9f7aff0098db7fb8fd13fcaff4ebbfc3fd
1315709ff31b91ad868817b52f6ec9ff00a8418ab667fcc5e42963a295ef5bcbb07fea17156c4ff9875
dec345a7b5edd7fd92e2a9b6836571a6e8d616176c8d756f0471ccd154c65d5472e3ca8695e95c5
530c55d8abb157806b5f947abeaa9a497f2d59cf6125d6bb6daee8ff00a41f4be70eaba82dddb5ebc
f62b597d258f8b427e31ea1f4cf25f89540de7e5a7e67c9e70d57cc10695a741649756f776f676978
2286fd34ed74ea412446889492e63959de4919e9729bf188ae2a84ff00954de7b6f2add68f71e5cb3
7b9b88e43e8c7770490fc7e6a7d61632ce89f66de43fb3c79fc2bd71549fccda149a4eb7a468bae69
51ceb6b36b5aaea1a4477f651c834bbcf34a6afa7bdb4371c51e42d0f06585bd41fdd71f8e27c55f5
7a9a80694a8ad0ec7156f15762aec55d8abb15762aec55d8abb15762aff00ffd6f7f62aec55d8abb1
5762aec55d8abb15762ac76fbce5a6e9f772d9cb63aacb244dc59edb4abfb888902bf0c9142c8c3d
d4e2aa03cfda5100fe8dd6f7db7d1353ff00b27c5546efcfb6df549cd8699ab9bd08df5713e8baa08b
d4a7c3cf8db96e35ebc4571542793fcf1a37e62fe93d2aeb46b9b7bfd1258a3d4edb50b39bea8277
5e604334f122c857f68715923fdb8d36c559caaaa80aa00502800d8003156f15762aec55d8abb157
62ac4bceff00ef4f94ff00edbd6fff0050d738ab2dc55d8abb15762aec55d8abb15637e72f3df967c87
636f7be64bd5b637b2fd574fb60419eeae3833fa51292013c54b124aaaa8e4ecab8aa16d3f33bc87
3dbc72cfe63d2ada671c9eddf50b5764af6252465afc8918aab1fcc8fcbd0687cd5a4d4f41f5eb7edfe
cf155483f307c89733456d6fe66d2e5b8998470c49790333bb1a05501ea493b62a9ecb67693cb15c
4f6f1cb3c049825745678c9ea5491515f6c555f15762aec55d8abb15762aec55d8abb15762aec55fff
d7f7f62aec55d8abb15762aec55d8abb15762aec55d8aa8dddac37d6b359dc02d6f708d14aaacd19
28e2840642186c7a835c554f4ed3ac349b2874ed32da3b4b0b75e105b40a238d16b5a051b7535c
55158abb15762aec55d8abb15762ac3fcf8fc2e3ca26b4af982d57fe0a0b818ab30c55d8abb15762a
ec55d8abb154bf58d0f48f30599b0d6ace3bdb5e41d525152922fd9746146471fb2ea432f638aab5a
d85b5adbc76ea0c8b18e2af3132c840fe677a963ee4e2aade841fefa4ff8118ab6218810446b51d36
18aafc55d8abb15762aec55d8abb15762aec55d8abb15762aff00ffd0f7f62aec55d8abb15762aec5
58c6afab6bbfe29b0f2ee8ed6904771a7ddea13dc5dc324e6b6d35bc4a8ab1cb152beb124927a62
a88fab79dbfeae5a5ff00d205c75ffa4cc55c2dbcebdf52d2fe8b0b81ff006398aae16de71efa969b5f6
b19ff00ecaf156feade6ea0ff00725a7d7bff00a0cdff006578ab7f55f36d0d352d3ebd8fd466ff00b2ac
55c6d7cdbdb53d3ffe9066ff00b2bc55afaaf9babbea7a7d3fe6066ffb2bc552992ffcdf1f9a2d7cbdf5e
d3cc77161717e6e3ea53720d6f341104a7d6a943eb56bed8aa71f54f35d0ffb94b1af6ff4197aff00d2
562ad8b5f34d37d4ec89ff0098193fecab156beabe6adbfdca58fbff00a0cbff006558abbea9e6bedaa
58ffd20cbff006558abbea9e6befaa58ffd20cbff006558aa53adf95fcc7ae3694f3eb56b09d2afe2d4a
3f4ec1fe36855d421add7421f154dfea71610000026060f002220574d46430100000000000100000
000000000190000000020000008c7020008070300e68ffabad9ff00d203ff00d9562adfd53ccfdb55b
3ff00a417ff00b2ac55a169e68efaad99ff00a3193fecab1570b4f346ff00ee56cfdbfd024ffb2ac55228
ee7cdede75b8d14eb169f538f4ab7bc58fea27fbd92e668d9bfde8e5b845ef4c553ffaa7997feaeb69f
f00482fff006538ab46d3ccbdb55b4ffa417ffb29c55bfaa7997feae96bff00482fff006538ab5f54f337fd

5d6d3fe905ff00eca7156fea9e65ff00abada57fe605ff00eca71577d53cc9ff00574b5ffa417ffb29c55
df54f327fd5d2d7fe905ffeca71577d53cc9ff574b5ff00a417ff00b29c55df54f327fd5d2d7fe909ff00ec
a71577d53cc9ff00574b5ffa427ffb29c55afa9f992a0fe95b6dabb7d49a9bff00d1c62adfd53cc9ff005
74b5ffa427ffb29c5501e5fd5f56baf30798345d4a48258f49fa9fd5e68226859beb51191b9869241b1
1414c559362aec55d8abb15762afffd1f7f62aec55d8abb15762aec5589dd01ff2b334a3dff416a43fe
9f2c3156598abb15762aec55d8abb15762ac5ae00ff00958fa69eff00a135015ffa3bb2c5594e2aec5
5d8abb15762aec55d8abb15762aec5589203ff2b3a73d8e830823bed792d31565b8abb15762aec5
5d8abb15762aec55d8abb15762aec5587f9769fe3af39d3c34baff00d23362acc315762aec55d8abb
157ffd2f7ef341d587df8ab5cd3f987df8abb9a7f30fbf1577a91ff003afde3155bebc3fefc5ff8218abbd
787fdf8bff0431563b716f2bf9ef4ed51403a7c5a4df5b4971c978acd2dcd9ba275ad4ac6e7fd8e2ac8
bd787fdf8bff00043156beb36ffefd4ff821fd7155c92c527f76ead4ebc483fab155f8aad79238e86475
407a72207ebc5567d66dbfdfc9ff00043fae2aefad5b7fbf93fe087f5c55209e22de76b0d4d4a9b18b4
bbdb6927e6b412cb716ae8bd6b522363fec7154ff00eb56bfefe8ff00e087f5c55df5ab5ff7f47ff043fa
e2aefad5affbfa3ff821fd71577d6adbfdfd1ffc10feb8abbeb56dfefe8ffe087f5c55df5ab63b09a3affac3
fae2aab8ab890054ec3c71551faddaff00bfe3ff00835feb8ab7f5ab5ff7f47ff043fae2ac6d609079fa4d
5eabfa35b474b5fac735e3ebadd3c9c3ad6bc5abd315647f5ab5ff007fc7ff0004bfd71577d6ad7fdff1
ff00c10feb8ab7f5ab5ff7f47ff043fae2ad7d6ad7fdff001ffc1aff005c55df5ab5ff007fc7ff00043fae2aef
ad5aff00bfe3ff00825feb8aaa248920e51b075f15208fc3155d8aa9bcf0c678c922a9f06600fe38aadf
ad5aff00bfe3ff00821fd7156feb56bfefe8ff00e087f5c55df5ab5ff7f47ff043fae2ac3fcbf736cbe7cf397
efe3f8934a6fb4bfef89078fb62acc3eb56bfefe8ff00e087f5c55df5ab5ff7f47ff043fae2ad7d6ad7fdff0
01ffc10feb8ab7f5ab6ff007f47ff00043fae2aefad5b7fbfa3ff00821fd7157fffd3f597e5ef90fc95a8790f
cb57b7de5fd3eeaeee74cb49ae2e26b68a492495e15667766524b126a49c553fb8f20fe5b5942f73
75e5ed22dede35fde4d2db411a2ad7bb3280057155d27e5dfe5d468659bcb5a4a46bf69ded200a2
be24ae2aa3fe09fcae177fa34685a20bffb5f54fabdb7add3957853974dfa62a8b1f973e401d3cafa57
fd2141ff003462ae3f973e406fb5e57d28f7decadcff00c698aadff956df97b5aff85749af5ff786dfaffc0
62ad9fcb8fcbe3d7cada49f9d8dbfcbf9315687e5afe5d8a53ca7a3ec283fd02db61e1f631549f4df2f6
83e5efccc862d074bb5d2e29f42b869d2ca08edd6429790052c230a091534af8e2af40c55836bfa1e
8baf7e616936dae69d6da95b45a36a12450de429708ae6eac979059030069b57154c8fe5c7e5e9e
be54d1f6ff970b6ff00aa78ab7ff2ae3f2fbfea54d236ff00970b6ffaa78ab7ff002aeff2ff00fea55d23fe9
02dbfea9e2aeff9579e40ff00a95748ff00a40b6ffaa78aa16d3ca1f95da83c91d8685a0dd490d3d548
2d6ce5295240e4154d2a548dfc31544ffcabafcbf3d7caba47fd205b7fd53c55bff9575f97e7fe995d23
fe902dbfea9e2aeff9577e40ff00a95748dffe5c2dbfea9e2a977983c83e458341d52783cb1a4c73c5
693bc522d8db865758d8a90425410462accadea6de22773c16a4fcb15631f99abcff002fbcca8770f
a7dc2303d08642083f41c555bfe55df903fea55d23fe902dbfea9e2adff00cabcf207fd4ada47fd205b
7fd53c55aff9579e40ff00a95b48ff00a40b6ffaa78aa0d7ca5f956f7a74d4d0f406d4456b682d6cccc3
880c7f761796c0d4ed8aa33fe55df903fea55d23fe902dbfea9e2aeff9579e40ff00a95748ff00a40b6ff
aa78abbfe55df903fea55d23fe902dbfea9e2aeff009579e40ffa95748ffa40b6ff00aa78abbfe55e790
3fea55d23fe902dbfea9e2a9779274bd3b47f31f9cec749b486c6c56f6cd92d6d635861566d3e02c4
2200a093d76c559b62ac0ecfcb1e5ad7bcdbe6bb9d6f47b2d4ae21b8b386392f2da2b8748c58c2fc
55a456205589a0c5537ff9579e40ff00a95748ff00a40b6ffaa78ab7ff002af3c81ff52b691ff4816dff00
54f15518bc91f96d711bcd0797744962899e391d2ced1951e2255d4909405482187ece2aa363e4ff
00cacd4bd46d3741d02eca7132b5bda59cb4e40f1e4510f5036ae2a8cff9579e40ff00a95b48ff00a4
0b6ffaa78abbfe55e7903fea56d23fe902dbfea9e2ad7fcabcf207fd4aba47fd205b7fd53c55bff9579e
41ff00a95b48ff00a40b6ffaa78aa5ba9f907c8b1dee8c89e58d29525bc7495458db80ca2cee1a868
9b8aa83f318abffd4f69fe597fe4b9f2a7fdb26cbfe4c262af11fcdcf3b4de60f26fe68e9771e60b6b1b8
d11753d32e3ca1343135c496b15bc525b5e02c566018bfabea6f03237a428ebcf155fe7ed6fcf37ba
3f98fcbd7da6df79c742d0754026d534f6d36c794a91d8dd5bdbdc46f716ff0c4d3b3831abf3e30f3fb
2e5d559a96bffe0ef396a3af6836a9e6c8359d4b5ad46d3477a2eb1a1799b4ad1a65b989bd32c65b
5b88e011d2a3d37923f4cca92c7c5557d57f323ce83ca126b1a2f9eac2fe9a7eb3addbdfd959c12a9
8ec74b82fe1b595a451192b217127a6bcc432223f1997d52aa7577f997e6f8fcc32e97219a3b2d55f
4b3697d6df559ed2dac2feee1b5b8b856e0648a6b7793d278ee5648dcba4f1b70578c2a987e5d79
abcf3e69f395d699aa6b91ae95a1472308e1b4814eaf0c7a8ea5609725cd4a2bac1131f480432255
0fa6fc7157b462aec55894b4ff959d67e3fa06ebfea32df1565b8ab16b9ff00c991a6ff00db0f50ff00a8
bb2c5593c8a5e3645628cc080eb4aa93dc56a36c55f3df973f31bcfb3eacfe55d62e6f5751d3a29e3
d4b5b36509b4371e5ab891b51758d615aadd4135898c06ff773ac5c5e3738aa4f6df9a9e61bd9a7d
423d73f495c797beb779a6594125b1fd24f3f96e1bf82da5582301cb4e65f4d62f887c512c8e62e58
aa696de7ff0032ea1a8f942da1f3d41aaf973589357d46faff004ab382579f4eb0b2b6bc169cda3552
e0bca8ed0a2ba2ba237ef90b15520d03ccf3fe5f69a3cb9a4ea569a9e936f6de5fb3d37f32e211c62
dbcb7aadd5cc36905fd1248567b628544eebc196759648d0f3e4aa7cff98fe77d3bccfa24777e69b7
d434f173e5ad3efe2b7b3861b4bc3acc37eb71709cd7d750cd6d1cd0857a75e3ce375c554d7f347c
f3369b7d6d25fbd8df58d96b57d1eaa61b6b8b3b8d474eb6b0b9b3b582444092dbdcc774f3aad12e
82ff00a3b1592077655e9df965a9f99bcc0757d6bcc1aa730b74f643cbe90c0a9a7cb10591a369507
a8eebea706e67a2a9e20d6aab2ef317fca3fab57a7d4ee3fe4d362a8eb7ff0079e2ff00517f50c558cf

989

e66ffe4bff0031d4d3fd066dff00d8e2acaf15635f983af6a1e56f246bfe63d2edcdd5fe97633ddc1084
696a6242c5b827c4dc455b88dda9c7157916b9f98be65b3b6b91e5ff0035c7ac698345d5b5ff002ef
9852d2030ea37b6535b0834b628bc253c65284c1e9c92f3f829240f55523d73cdfa9f93f59bad4ad5
6d75eb5bc935dd634c8fd32757f2b6a3696b27e90170b11637168cc64e1c951959a34a4aad1f155
13a8fe6079ca09ee21d37f30ecf50d36db44d735fb4beb1b7b39d66fd1d369ef6d0493bc4b1c9b5c4
b1cad0a25538afc13233e2a985c7e6779ae2f3bc7e5ad435268342d4b5310b798ac96de5b1b7d3d
e4be5882b3c7cadae04d0c363325c8914bfefa17f8f8aaa9f7e5a799fce1e65f3eeada66ade6313e9
5a0e9ba6dca58c36d6a82f5af9efe133bbaaf30aeb0433284e2b56fe4603157b3e2aec558a796bfe5
2cf3a7fcc6597fdd3e0c5595e2ac5fcbb5ff1479c0f6fae59d3fee1f062aca3157907e74fe62dff0091aff
cbf0e9dab476125c937335adc451fa5730c57d616f20334a4d38a5cbfeee35e7bfadea4690373558
50f36eb5e6bd7f57f29eafe6c165e4e4b5f374dacfd46dac8cf2d9e95aac568139fa6c547d5e5903ba
8e6c47a9cb962a84b4f39eb7e4c4b6f26dfebfa4854934fd21ff34ecbd1b6824b17b2bd9b4f8eed592
e2086e43c3c598f289d654e1e999968aa7ba7fe6079bd752d7db50f38d9b5be9b709a6dbb3da431
588693cae9aa9ba7014dc145b80cea81aa222eadcf6e2aae4fcc6f3e33cb6132dc586afa66982fac6
c65fabdd0d5f514d524b4b8b61711c2ab24688b088cc2b14845cabb8574e38abd03f29358d77cc3a
16a5ac6b9ac0d5643ac6af616f1a430431dbc1a6ea573691a8f4402ccd1c685998fcbae2af40c552b
d57fdefd0ffe639ffea0aeb157ffd5f69fe58ffe4b9f2a7fdb26cbfe4c262adea3f96de45d5ef6ef52d5343
b6bbbebe511de4f306779630dc823927740db84fb20ef4c55d07e5af91ed9258adf468628a76e73a
46d22ac8f4039300d46340054f862ae8bf2dbc8d0ddbdfc3a25bc77f2a9496ed39aceea4f221a40c1
882457738aa97fcaadfcbdf452dffc3b67f578c48238421f4d44c794802d68399357fe6fdac55b1f95ff
0097e16745f2fda84ba511dd28560b2a28e216400fc400da8ddb1545e99e43f2868d7d0ea7a5e910
5adfdbc7e8c3711860e9101c4460d7ec01d17ece2ac8f15762ac426ffc9a565ff6c0bbf9ff00bdb6d8a
b2fc558b5cffe4c8d37fed87a87fd45d962ac9a68a39e278251ca2914a3af8ab0a118ab1d1f97fe4e0
491a4c5535a9e52577a577e5de9be2a878ff2c3f2fe12861f2f59c6d115311442a50a02aa568762a1
8814e80918aaf4fcb4f21c5e9fa5a05a27a3cbd12a8414f52bcf8d0edcabf153ed77c55b4fcb6f21c51
4f045e5fb2482e496b985620b1ca58004ba8d98902956c55b6fcb8f223c8269340b379832b891a30
cfca31443c8d4d547d9fe5ed8ab93f2e3c8a91c70a68368b0c527ad144b1d112504b73550681aa49
e437c5532d1fcb3a0797dee24d174f86c5eed83dcb42bc4c8c3f69bc4fbf5c557799831f2e6b017ed
1b2b903e7e9362a9841fdc47fea2feac558bfe676ff97fe611e36520fbf156598aa8ddda5bdf5bc9697
51896de51c648dba11d7b62a90ff803c99c228ff42dafa7030781387c31b2d68c82b4522a7718ab5
1fe5ef92629e5ba8b43b44ba9c059e758e92c8a3a0671b903dce2aa7ff2adbc83c510f972c0a46a63
8d7d05a2a1dcaa8eca4f5036c5579fcbbf2398e684e836661b9ff7a633102b2ffae3a37fb2c5515a6f
937cada3df0d4b4bd26ded2fc2fa7f598938c852817896ee280003154f315762ac4fcb3ff296f9dbfe6
36c87fdcbadf156598ab16f2c9af99bce849e9a8da281ec34bb43fc7156538aa4fac7957cbbe60962
9b5bd360bf9605290b4ebcf8ab7502be3df154b23fcb4f20c320961f2f594728afef1220adf175dc50e
fdf155cbf96de43481ed53cbd64b6b2373920588089989079320d89a81b918ab8fe5b790cc8d2b79
7ac8cacdcda43102c588e3527a93434af862abc7e5df91c2c48342b409037381447411b78a0fd93f
eae2a99e8be5dd0fcb90cb6fa15843a7c133fa92c76e823567a539103bd3be2a99e2a956ab4fafe8
75ef7cf4ffa42bac55fffd6f5ff009435b8343fca8f2ede1e135dc5a0c3716d62d2a4325c7d5ad04aea8
5fbd06e7b77c5501e44fcecd0bcdf144754b393cb53dc689a7f9a6d86a1340d049a3eadc8412faf1b
95560c8c9246fc594f4e4bf162acab56f3b687612c365697f617bab4b716b0fe8efafdac1388ae668e
36942c8e09e0b2070807293e144f89d7154cff004f68656e9c6a56a52c8f1bc6f5e3a424b14a49f17c
3f102bbfed0e3d71562de52fcccb0f35c51de2c10d8e9ad05f4f25c4f7b6e5e3fa86a125854c41b97a
727a664597fbb1f62bcb154b3ccdf9b17fa26a1656fa5f9664d674bd57528344d275586fada282eaf6
e2de4b82139127d34f49a377ff007e82b4d9b154c3c9bf9a9a3f9986af06af1a796b56d1a7315de95
a95d40b74b0adb5bdcb4ce81be145fac046276565eb8ab28b6f337972f7d3fa9eb16571eb2492c3e
8dcc52738e12cb232f16350a558311d38b7862a91f9dff31f41f26f92356f3b2cf06a769a65b4f751db
5bdcc2ad726d979bc713b3712f41d3155dcd65fcc7d3e6a712fa05cb71f00d776c71565f8ab16b9ffc
991a6ffdb0f50ffa8bb2c558ff009d3f376dbc9fac47a7a6912eb161fa2753d7aeafec6e2dc88ad3429
238ef9423b29696332ad1037c479ad5597156596be74f2a5d69f1ea6bac5a456925b5bdf13713c70
3c76f78aad0bc8b232940e1d69c80eb8aa869fe75d12f06a1732ded8c3a45acf1c167a92dfdb4d0dc
ac96c971cc7a6e7d3a7261c5fe22a9ea7d820e2aa5aff9eb47d0eef4db259adeeae7527911516ea1
8cc689657178923f36d91d602bcfec8e5cfece2aacde6db75d16def1238a6d7eeec92f2d74086ee09
279a478bd5114522b7071b1fde2fc05417fb38abcec7e7e4d6ecd36ade51bab0d2a2d787962eb54
6bdb57b682f45ec1652348d51c514cfcd4feda23fd9a62af505f35795da48625d6ec0cb7108ba8105
d425a4b72ace2541cea538a33721f0f1563db15558fcc3a0cbf56116a968e6f0d2d02cf193290e63a
251be2f8815dbf6be1eb8ab1dd4fcdba7eaade6af2ed998e61a668e2ee5bc8a5496326efeb517a64
2125590db9ad7f9bdb1566107f731ffaabfab1562ff99bff002807987fe60e4fe18aa7fab6afa668564f
a96b177158e9f11512dd4ec12252ec157931d8549037c55ad3359d275a49a4d26fa0bd5b790c173
e848b218a65018a4814d558020f16de87154449750453c36f23859ae3908577ab701c9bee18ab57
b7b6ba759dc6a17d325bd95ac6f3dccf21e291c51a966663d8002a71551d3b56d3b5543269f70b7
11848a4e6952a52e2312c6c09142191830a62a93dc7e61792ad6edac27d72d12f15a44688c9b83
0482192b4ec9230473d158f16df154ef4ed46c757b28b51d32e12eac6704c37111e48e012a4823a
ee08c55158aa0752d674bd1c5a1d4eee2b4faf5cc56367eab05f56ea7348e24f16623618aa43e59a
ff008b3cec7b7d76c80ffb875be2acb315629e58ff00949fcefe1fa4ad3fee95678aa707cc5e5f5d4ff42

b6ad66358a85fd1e6e22173c994b01e972e55201236e98aa678aa85a5ed9dfc02e6c2e22bab62ce
82681d6442d1b1471c949155652ac3b30a62aa377ace91a7bb457fa85b5ac888b2ba4f3471308de
4112b90c4514b9080f763c7ae2adea5aae97a3db8bbd5efadec2d4b08c4f772a411976a90bca420
54d0ed8aa0f4ff0036795b579e3b5d2b5cd3efae65e46286d6ee19a46f4d4337154724d03027c01c
5538c55d8ab1fd4f55d2deef45952f6068a3d55eca4916542ab75f55b98fd1620d03f321387dae642f
5c55ffd7f4c45ac4f61f95fe52b2b6d02e7599af3cbad125c5a5acf72f6ef258ac6803430cbc7d4660a
d529f055be2a71c55e73a279660f2c7e5af94b44d3fc97ac5df9a34e86c20f365b8b6d5ecd7535b6d
3e5b074fafac0f288e3f59a58a2e3e9f1e51f05e58aa3af74ea685368fa5f91f50b478759f2d5e69d2c
5a4df9f4b4fd0db4e69556496dda5e4a2c99630cdc9fe0662bf1515491344f34d9e9fe5736fa3eb536
a5e46f4218603a55fc56fafc36fa9477a1a77f458c0fc63e7f1ac94ba63bf0f8d95432e91e768ce9b7d
6fe56d422d474b5baba10b69f7cd0ddcafe654d721b395c5a0658da3531b4bc5b84bc7e074ae2af4
1f32eb9acebb079124b4f246a9a7cba3798e2f30eb969069f74228a3e174b2889beae9eb4acd71cd
8f18c33723fb58ab0bf32e9be65d535bd7353b5f26ea9245a9dfebf711fab6172aef6daae836fa540b
27fa39a7ef61f51d6a78a71fb4db62a9bdfd9df3f9a75bd661f22de5edaea16df5ad19efb4fd53d3d3f
50fd16da63db3d8c48219629393334b556e134ea51be1c5583dc7967f3227d13cc566de5bbf9ae3c
c161aee99f559ad2f4436dfa762b261708c966056392d5a26895147a5c1a365e3c7157d3b60d24fe
7ad0ee668da0965f2d5c192070cac8c6e6d09560c0104134dc57156738ab15ba34fcc7d34ff00da8f
50ff00a8bb2c55e3be63b6b6f36fe61797b56d7fc91a9bf9434bb0d6ec6fec63d3f51e12cba95e5bcd
0bb431dbc6b323a5b729e392abea4d4e32f02d8ab19d6fcb77d7f6de71b71e50bfbdbed4ee2e1b45
d66e2cf572ef65a86a36f7ed6cf6b25b34302c3e804e49cbd4f4e2e2ab57a2a9eda1d4f46f3c6b7e6
7d3fc9da94da3ddeaff005bb5d2574abc8449692e8b0698cc41b6e08eb2415e3fb50c8fbf3f819563
9e55d1fcd3e51d262f29b796b51d6f4ab6bd6d462d5a4d3750864649b43934bfa9fa0f68e78c2ecab
1397e26de950aebc71565bf97daaebbe5c1a268faf792ef6ef4bd3acf4c953553a65fcd75677f63a62
69b2456f0fd50541e0cc93fa89fbb9a4429fccaa50907982e343bfd3aefca9aafab75f9830f9bd626d3
ef1e33a5a6a50deb2b56de9eaf18cafa7f67953e3c552797cafaede0d483795efa0ba6d1c59585cb6
9ba80e53dbebf3eaab01786dc491c534122c2f221e51d5be06a6eaa65aac3e68be9ac574cf276a1a
15932d9ddddbdbdb6a9717d0de45aa9bd984b732da33dc80aed2c403449eb9939f2fdd9c55937e5
b2f9960d1757d3f5ed066d2a3d33ca569a1c776f05dc2b76fa47d694cebf58b68828996657119769
15b9d7f9b157bfc3fdd47fea8fd58ab17fccdff9403cc1ff0030727f0c5582fe795fe956fe5ef345bb6b17
516acda669c574c74925b08d0ea5f04e88a8034acc196451272f4d17e155f8b1562be60d3dfca7e7
195dfcdf7d69aaf9e255d6135bd2eca49609f53b1faa5b4366b05bb940bf55895152e5dd25e7348cd
c93e05546dbcc5e69b6f2a0d6b44f316a3a979e355ff14c763a3dece2584dc69df5c1691c70940aa5
408b854f190f0fb55ae2a94f9abce3ad9b0d4ed0ea7ab49f95fa9a5d41a66a83d796ff00ebd2e82ac9
6b2baab4c626ba326ecbfef4ff00a3b7c0be9e2aafa7f9eaf74c8b4fb2d5355d4ed3c974d22cf53b8b2
8e7371a6c93797d4c11aa431995236bb1f1d14d26e092d11d97157a67d774787f35fcb1a6cf32726
f2aeaab7314eb1ad64b8bcd3e53eb08c7a42493d395d96bf17173db1578c687ae6a76971a4f96ecf
cd3aad9687adc3a35cdcbc570eaf6f2dd6b57b6d3a5bbb21f415a031f345a71a24bb1f8d9564d1f9b
f5eb43e637d5f5fd745dd85fc3a2ea5a4c16d33456d6dfa6a28acaf96ecf2aa4f64c3d66b54f51e369
256e13272c558d5979d7cc1e691e4183cd935fbea76bab7952e6ca210dcaace904b343a8cd72812
9ce29d78ca641fbba46c367ab2afa47cae08f35f9e2a3aea16441f6fd196a31565b8ab0cd2a411ea9
f98121ba165c2f21637ac14ac14d22ccfa8437c2427dadf6c55e3d73e565f3f7e69fe6068d1ea76d2c
76d6be47d667bb8a3492fa77d324b9bc8cdbb2b0584ca635569006e2927c23e218aa3fca5e75f3bf
9bacb4027cf5676d73e65bf81a4b7b0b3826b9d379e9b73753e9f21b84e3ea24d6f4e0c86789397a
8cd58df1541794bf32fcdfab5b5d4336b30db5d6971dc5de902deded920d6a58fcc37f612c057811f0
4505bc7c612b273b913316aae2a90ea1f9917b7935cf9cd35cb78bcc8347305f6993c76ceba6c917
996dada6b4686450c0aa1e05a5e4dc87aa9d7157abf95bccfa779b67d52f2ffcc76f7f71a60d4d6ffcb
52c1006d22eacae65b60ef20a3c548aa9fbeafadbcd190bc862af0afad1f2dfe5b7e5079c3cad776fa
5f98acbc8bac6a46f5228266b86d1f46865485c48082b506373f6d579282adbaaacef53fccbf3c26af
a87fcedb65a76857dafb6856b7d750db4767a553458354803cfc1cb3cd24a621eafc2ca9c178c8e1
b1547ebff009cda8e9773e6096cb5986e069c86daeada4812dcd93a7e8cf5ee92d9c19da3822ba9e
e4bccc03a8e3e97a7119195492d6ef4e6f26dedc26ba9f514fcd457935d12db11c0dfc6fea97e3e88
d883cb8f1fdac55fffd0f697e581afe5c794cffdaa6cbfe4c262acb315762aec55d8abb15762aec55d8
ab14b83ff00212f4d5f1d0afc8fa2f2cffae2acaf156297469f995a5af8e87a89fbaf2c7fae2acaf15762a
ec55d8abb15762aec55d8aa55e67ff946f58edfe8373bff00cf26c553287fb98ffd55fd58ab16fccd34f2
07984f859c9fc3154e2fbcb5e5cd4ee7eb9a969165797740bf58b8b68a69388e8393a93418aa1079
1bc922a0796f4a01bed52c6df7f9fc18ab67c8fe4b35af9734b35a03fe836fdba7ec62ad8f24793031
71e5cd2c31d8b7d4adeb4ff80c55dfe0af268dc79774ca8ad3fd0adfbf5fd8c55a1e47f2585283cb9a5
843b95fa95bd3eee18ab67c93e4c35af9774cdfaffa15beff00f098aadff0479297885f2de97b74a58d
bed5ebfb18aaf4f26793e370f1f97f4d575219596ce00432f42084ea29b62a81f2d53fc51e74f1fafd98
ff00b96dae2acab15621a0db5bdeebbe7bb4ba8d65b69b51b68e589c55591b4ab30411e07154745
e44f26c1335cc1a25a4572e2924d1c412461b6ccc2848d875c5567fcabff24f3493f40597a91c8d3c6
fe8a7259a4fb72034a876fda6fb4ddf156e3f2079221112c3e5eb08d6ddccb6e12de3511c8db164a0
f858f7237c55d27903c912fac65f2f69f21b960f725eda36f55c0a0692a3e220742d8aafff0003793a9

991

3afe83b2a5d53eb43d14fdf51788f536f8e8bb7c55db15526fcbcf22ba246fe5dd3da38832c48d6f19
54593ed85046c1abf101d7155a3f2ebc88b0c96cbe5db016d2b0796010208dd9482accb4a120814
246d8aab1f227934cb24eda1d9b4f37f7b2b44a5deabc3e263b9f84f1dff0067e1e98aa5da9f93bca9
0db68de5d8b46b34d02e2fdbd7d3160416afc6c6e480d1d38d0151dbb62aff00ffd1f5d79597f307cb
3e5cd27cbcde5bb2ba3a55ac3646e9355f4c4be8204e614da6c0d2b427154d8eb5f9823a794eccff
00dbe29ff6298aaefd33f981ff0052ad97fdc5ff00eccf1610000026060f002220574d4643010000000
0000100000000000000190000000020000008a7020008070300156ff4c79fff00ea56b2ff00b8b9ff0
0b23c552e5f3979d1b5e97cba7cab6ab7d1da477e8cdab7eee485e5789821faa5494651cf6db9a7
8e2a98fe97f3ff00fd4ad63ff7173ff6478aa113cd1e7993529f4a1e55b3fac5bc10dcbb1d5fe02970f2
22807ea75a8313576f0c5517fa5fcfff00f52bd8ff00dc5cff00d91e2aefd2fe7fff00a95ec7fee2e7fec8f1
552d36d3cd17de6eb7d7b5ad36d74cb3b4d36eac5560bc6bc92496ea7b7941a18220aaa213dcd7
974c559862ac575db0d7e2f33e9be60d16cadefd20b1bcb0b886e2e9ad194dccd6d2ab2910ca187
ee4823e1ea3156ff4b79f7fea59b1ff00b8bb7fd9162adfe95f3e57fe51ab1f6a6acdff006458aa02dbc
d9e72bad5afb465f2cda0bbd3e2b69e663aa9e056ecca1789faa56a3d26ad462a99fe93f3b6dff3af5
97bff00b946ff00b23c55a1a9f9dcad4f97ac43787e95723eff00a9e2ad9d4bcec0ede5fb13ff006f471
ff6278aad3a9f9e3b7976c4f8ff00b957ff00b23c55dfa53cf351ff003ae5953b9fd2adff006478aa1351
b9f3d6a3a7dde9e7cbd6310bb864b7f54eaacdc7d5529ca82cf7a56b8ab2f897846884d78a815f90c
5524f3a68f77e60f29eb1a2d818c5edf5acb05b998958bd465f879950c40af5214fcb1543a6a5e782
c049e5eb155dea46aaed4db6ff008f21df6c554ceabe7e0b51e5ad3cb787e977a7dff51c552db3f37
79daff52d534c83caf65ebe932c50dcb3eaec1499e149d4ad2c89238bd0d69be2a98aeadf98141cfc
b1a783dc0d61c8ff00a8118ab4dab7e6157e1f2c69c57c4eb120fc3ea07155dfa53cff00ff0052de9dff
0071793c3fe603156bf4a7e6077f2d69bf46b127fd9062ab5b55fcc215e3e58d34f857599057fe9c31
55bfa5ff0031b7ff009d5b4df6ff0073527fde3f1555f2969baf5bea1e61d5f5eb6b6b39f57bb82682d6
d6e1aec24705a436f5691a18772d19340bd29be2aca4e2ac28daf9cb47f306bd7ba3e9561a8d86af
7105d4725c6a125a4a8d15a436ccac8b6930eb15410fdf15451d53f3136a796b4bf7aeb32ffde3f15
68eabf987dbcb3a61ff00b7ccbff78fc55b1aafe6150f2f2ce9a0ef4a6b3211edff001e18aa47e5af33fe
656a916a6f3681a64df55d4ef6ce32754922e31dbca515682c5b9507ed77f0c553e1a9fe601009f2e
e980f71fa5e53ff006218ab7fa4fcfdff0052ee9a457feaef2f4ffa40c55bfd27e7cdff00e75dd3bdbfdcb4
9ff6438aae1a979e37af97ac3da9aac9ff006458aa16f25f3c5d5c584e343d3d0594ed7054ea9212fc
a0961e23fd0f6fef7957db157fffd2f7f62aec55d8abb15637acdbdbc1e6af2e6b0d27a770ff005cd247
401d2ea2173c4f890d68a57fd962ac931563f6dff29b6a7ff6cbd3ff00ea22f3156418abb15762aec55
d8abb15762ac534807fe560f99c9e874fd1e83fd9df62acaf15762aec55d8abb15762aec55d8abb15
762ac4bcb629e70f3a50f5b9b027e7f508862acb715762aec55d8abb15762aec55d8abb15762aec5
5d8ab12f2157eadaf7fdb7b54a7fd241c5596e2aec55d8abb15762afffd3f7f62aec55d8abb15627f98
f148be55b8d5a04e775a0cb06b5081f688d3a559e455f7789644ff658ab298a58e68d268983c5228
7475dc15615047cc62ac3b50f33681e5cf3ade7e9dd421d3feb5a6597d5cdc370127a77177cb893b
1a725afcf15576fccff00cbe5255bcc76208ebfbd18abbfe567fe5ed69fe23b1af4fef462ab97f333c82f
509e61b36a75a498ab43f337c8278d3cc168796cb473fd31571fccdf210214ebd6d53b8ddba0ff006
38ab87e66f9089a0d7adab4af56e9f762adff00caccf21f20bfa76dea6b4fb7434ebbf1c558e69df985
e4b8fcebafde3eb108b49ec74b48a7a398d9e27bce6a1b8d095e4b5ff5862ac907e64f91c8a8d6a0
3de803d7eee38ab67f323c8e37fd330fdd277ff638ab9bf31fc90b4aeb308a9a0d9fad2bfcb8aacff95
99e44a13fa6e00075a89074ff00638aae1f993e466e9adc1d69fb7ff34e2ad4bf999e4282269a6d7ad
a385377918b04503b9245062abbfe563f92295fd330d3e527fcd38ab87e63f9208a8d661f0fb327cbf
97155bff2b2fc8dbffb99876ff264ff009a3156ff00e565791bfeaf50eded27fcd38ab14f2f7e62792a3f3
879c646d6610934fa7fa66926f4b345fe4f1c55957fcacaf235397e998b8d78d424bd47fb0c55cbf995
e476fb3ac467fd84beff00e47b62ae3f993e4714aeb11eff00e44bf2fe4c55dff2b2bc8fbffb988f6153f0
4bd3a7f262ad1fcccf230aff00b998f6ebf04bff003462ae3f99be461d7588fa5768e63b7d098ab5ff00
2b37c8dcb8fe974aff00c629fbff00cf3c55b1f997e482683565ff009153ff00d53c55b3f995e48068757
4a9ff008aa6ff009a3156bfe565f91b71fa623a8a7fbae6effec3156dbf32bc8e868dac475e9b4729fd4
98abbfe5657922b4fd2e95dcff77376ff00618aa07f2c754b2d52d3cc125948d220d7350705a3922a
a4d2f3465122ad5483b30db156738abb15762aec55d8abffd4f7f62aec55d8abb15539e086e6092d
ae104904cad1cb1b0aab238a104781071563de418eeedbca7a7e9d7cdcaef4b126992bd6a5bea1
235bab13e2ca8adf4e2ac9715762aec55619621d5d47cc8c55deb43fefc5ff008218aa1ef752b5b1b
67ba90b4b1c742c90234f252b4242460b1a753418aacd2758d335db18b52d22ea3bcb296bc2688
d4725346561d5594eccac0329d8e2a8ec55d8abb15762aec55d8abb1562ff0098c48f2279848343f
519bfe238ab28c55d8abb15762aa690411c924d1c48934c419a455019ca8e23911b9a0d8571554c
55d8abb15762a97eafae691a0db2dd6b1791da42eeb145ea37c524ae68a91a8ab3b1ecaa0b62aa
b6da85adcc11cfcbd1e62be94d48e45ff5949a83ed8aaafd6ad7fdfd1ffc18feb8ab62e6d98855990b
1d800c0927efc555715762aec55d8abb15762aec55d8abb15762afffd5f7f62aec55d8abb154b742d
6adb5eb16beb5578d52e2e6d258a5a0749aca77b7901009fda8cd3db154a3cb772f07993cd3a14c
58fa3716fa9da06ff966d42100d3dbd7827c5594e2aec55d8aa4173e51f263c85eef44d39e69dc9ac
b6d0969246353f6977271563fe55b2fcb6f37e8d16b165e59b2b6867b8bcb416b79676a93fada7dc
cb6b302a9cc1a3c4dd18ed8aa3eff00c8be43b881adedf49d26d2e09545996cace475248d9564465
e441a0a83d7154c3ca1e52f2df93b4d92c3cb56b1c10dccef757b3a71325c5d3fc2f2caca00673c78f
4f869c400ab4c559062aec55d8abb15762aec55d8ab17fcc7ff00940fcc3ff30337fc47156518abb15

762aec55d8abb15762aec55d8ab1bf37f913cade79b7b48bcc9a7c5772e9d2fd674cba64533dace4
712f1330602a366520a38f85d59715637e62d17f2dfc97a10d4f55f2be9fa9adbcf676572f6da6d87a
c1efae23b68e474e31a850d2296e3fb3baae2a9ff00f823f2e0090ff87345a4478cbfe8569f09eb46f8
36fa7155f6be54fcbdb3b98aeacb44d1e0bc8192686786d6d5248d8b511d595410796ca477c5593
75c55d8abb15762aec55d8abb15762aec55d8abffd6f7079d359d53cbfe59d4757d174f3aaeab6b1
86b6d3908124cc5d4158d59939bd0929172532b5235652d5c55e5be5dfcd4f32eb7e69bf860bab2
9b46bd87cbf068a5ed6e2d8433ea915e4d2c934723ac809fab9430b717493847cbe172caa9597e7
579b750bad7922d1ac2287ca72dac3ac2b4b333dd19357bed2a636ac00551fe88258f9f2fb5e937f
3e2af75c5587f9640d2fcdfe6cd0b8858ae64b5d7ad77eab7f11b79801ed2dabb9ff8cb8aaed5d7f46
f9fbcbfaa0148756b6bbd12735a0f5500beb727e421b81fecf1565d8abb15762af24fcd7f2ff9a75ad7
34b7d03cbc75086082376d5e2b98239a1920d4acee4c1e9dcc88155d2167f56356919d163e712ee
cab0d1e4ffcc18ec7438adfcaf3896c3cc32eb1712acfa7acff00543e6a9351f4b94939e21ad25e748
be291b9452baf00922a86f337e505d5ef956da0d23c911aeb8de5cf305adc102c639bf4add3daad9
1697d6157fdd33472f2fdd281f126cb8abd8ff2f346bbd0c7992da6d38e99a7cfac4b77a4db0f4847f5
49adadf74585982d65127206879726fdaa95599e2aec554aeaeadac6da6bdbc992decedd1a5b89e
56091c71a0e4ccccd400002a49c558d0fccbfcbd22a3cd1a591e3f5b87bff00b2c55bff009597f97bff0
0534697ff004970ff00cd58abbfe565fe5eff00d4d1a5ff00d25c3ff3562aeff9597f97bff534697ff4970ff
cd58ab1bf3ffe617916efc95aedadaf98f4e9ae65b29962863b989ddd8aec15558924e2ac93fe565fe
5effd4d1a5ffd25c3ff003562aeff009597f97bff00534697ff004970ff00cd58abbfe565fe5eff00d4d1a5f
f00d25c3ff3562aeff9597f97bff534697ff4970ffcd58ab87e657e5e921479a34bab10a2b7908dc9a0f
dac5594e2aec55d8abb1571c55f3a6b3e54fcc4b96f31c50f946682daf6f627b786ceeec64865fab79
8d350fac032ceb2b34b6ecd2b7abc783f28238d1163e6aa59a9fe5cf9db56f355a5cdf792d8f979b55
d3a6bdb5171a7cb6df57b0d5efe791cc6d39924124376b21327277aca9c231c632abbce9f947ad5e
1bb4f2e793512b6be73b7b6687ea302897518a11a532fef96839c7ca334fdc1f8888ce2afa5ec8ca6
cedcceac931893d447a160dc45435091507ad0e2aaf8abb15762aec55d8abb15762aec55d8abffd7
f7a6a3a6d8eab6c6cf51816e2d8bc7288dfb490bac91b0228432baab291d08c552397c95e48b9d42
47934bb47d54436e6461b5c88ede6796de4241e40acbcda393ed72e746eb8aa496ff00967a35879
d6fbcd334766343934ed3acad74e31b20827d32eeeaec4ccdcfd37e725d73f89392c88b272e44e2a
f41c558cea969f57f3a681aca384f5e0bdd26753d64f5152ea2ff008036ef4ff5db155de788ed17468b
54ba251747bcb4d484a3f605bccbea1dbb7a6ceadfe4938ab24c55d8abb15762aec55d8abb15762
aec558b7e65b71fcbbf35b75a6937c76ff9877c5592c23f751edfb23f562aa941e18aba83c31575078
62aea0c55d41e18aba83c3157507862aea0f0c558b7e6481ff2affccbb7fd2bae7fe4d9c5594e2aec5
5d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55ffd0f6cfe60c57171e4
cd62dad67bdb5b8b880c11dde9711b8bc80ccca9eb24437711d79ba2fc4c8acabbe2af048b49d7b
4df30deea5acf976fe7bdd5747f2de9cd7fa4dbea72d898ed354bf8eee410ab7a82328d6f2fd5646f5
0472286fdd24cd8aa074bf2e798bcd1e4fd49bce163e64bbd5f4ad27cbfe8d95e7e9380bcd6b752a
5f158119639a5f4e342dc448cdf0ba6ec1b157d591106342a0aa95042b02180a7420ef5c55e71f9b
efe6bd3749b4f32796b4f9f5c9347bab7ba5d16ce30d72d2aca10c919e4a4a98a4922953e2f81fd45
fb0dc9565a34192f3ca4de5bd6ae1af66bab06b2d42e98fc52bcd11495c6c2952491e18aa9f91f54b
8d63ca5a45f5e9aea06dd61bf1dc5e5bd619c7d12a38c559062aec55d8abb15762aec55d8abb156
2df9974ff009577e6baf4fd137d5ffa477c559345fdd27faa3f562a9479c35d7f2bf94f5df32c76ed7926
8fa7dd6a0b6ab5e529b585a5082809f8b8d3a62af2d8fcf7f983a8eab75e57d3754d1e2b845b7b983
cc5259cb3dabc17da5cd7c8bc16e2350d1bc3b9e6795bc91bd036ecab1ab3fceffcc7d63caede72b
0b0d2acecd2c1c5e585e4aad25bea02d60b88f8469309e40e6472c8c91d20314aacdf172553ef347
e6279d3cbfabcfe547d674dbbd45b4dd5b9ea1676be99b5bcb1d346a30bbc32cd251c861587e34f4
bd390c8acfc31576b5f9b3e6ad2df5192cbead769a6eab71e587b67b76f50dc41a13eac9a8bf0907e
ed9d2862145f40f3f53962af50f215feb7ab793f46d63cc53db4faaea5690df4ad651341028ba412aa
2abc9293c0305e5cbe2a72a2f4c5591e2aec558b7e64ff00ca01e65ffb675cff00c9b38ab29c55d8ab
b15762aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abffd1f7f62aec55d8abb1
5762aec558bf952da5d3353f32e94f5fab0d45b51b327fdf5a946b338ff91feb62aca315762aec55d8
abb15762aec55d8ab13fccfa8fcb8f3691b9fd117dff0050ef8ab298bfba4ff547eac554750b31a8594f
64679ad84ea50cf6ce62992bdd1c5687df15797defe41796ae869d691ea5a9268d65712ddcda6b5
c728a496585e10c000155807fb455be1f83ece2a8bbafc88f255f5ddf6a17936a13dfea9025a6a575
25c2b4d736d1d38c52b98eae838ad158d3e11e18aaacdf923e51b9bdfd277375a94fa9538fd725ba
0f3f1113414f50a72fee9da3ebf618af4c55b1f929e531cbfd2f53f8ed069ae3eb540d62abc040689bc
617e10bd38fc3d315669e5ed0ad3cb5a3dae87a7bcaf63649e95b09dfd4748c7d9406828aa3e151f
b2bb62a9a62aec558b7e651a7e5ff009976affb8eb9ff009367156538abb15762aec55d8abb15762a
ec55d8abb15762aec55d8abb15762aec55d8abb157ffd2f7f62ac2ac7cbb7facc52ea52f99b58b769
ae2e4082de5b64851639e4455406dd880028ea4e2a8aff055dffd4d9aeffc8fb5ff00b26c55dfe0abbff
a9b35dff91f6bff0064d8ab47c95747fe9acd77fe47db7fd9362ad7f822eba1f366bdff004916ff00f64d
8aa92fe5f32dcc978be6ad785c4a91c523fd6a0dd222c5453eaf4d8bb6f4ae2aaa7c9172411fe2cd7
b7ff979b7ff00b27c55dfe08b9dff00e76bd7b7dffde9b7ff00b27c55c7c8d3b75f35ebdf45d423f54031
541d9e9f7de5ff003b69362bae6a5a8d96a361a8493dbea12c732092d5ed046e9c6342a4091875d

993

eb8ab39c55d8abb15762ac5bf3329ff002aebcd95eda3df9fbaddf154cb55f30e93e5cd320bfd62e3d
08a6786dadd155a4967b99e8b1c3146819e491cfd94504e2abf42f31691e64b69aeb489fd55b699e
d2f21747867b7b98a85e29a2902bc6e0303c5947c255becb038aa698aad9244891a595824680b3
bb101428152493d00c55b0430046e0f438aa41af79d341f2e5dc3a7dfc93cda8cd0bdd8b1b1b69ef
ae56d62215e778ad924758c310bcc8a16f856ad8aa67a36afa7798349b1d73489c5ce95a9411ddd
95c00ca2482750e8c0380c2aa41a100e2a8dc5529f32799347f2968d71afebd335b69569c3eb13a4
524c57d4711a92b12b353930a9a50753b62a967e6553fe55ff00996bd3f475cffc9b38ab29c55d8ab
b15762aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abfffd3f7f62a94796bfe39
23fe622f3fea2a5c5543cefa95ee8be4cf316b1a6bac5a8e9fa65eddda48ebea22cd05bbc884a9239
00ca2a31578349f9a7e7bd175db1b0d4fcd3657ba16a1a7cd78357faadb5ba43753e8b35f456dc81
64e51c9009501259e2978bf3f85b154c3cb3e7ff3df99b53b4824f3541676d7f73a4580582ced59a3f
d29e593ab3bab49cab20993f7408e1c1983249f0f15505e45fcd2f3ff009a25d3f559bcc766d125e79
6ada7d063b3807d6e1d6ad63176eae19a40c8c64b88f8515563757e49f6557d298abb15762aec55
8b6abff9303cb5ff006ced63fe4e5862aca715762aec55d8ab17fccaa7fcabbf3654547e87d436ff00a
36931579b79ff005cd021f37f9235a1aac13c1e55d75dfcc3a6cb749ce117ba44966973142ef52b6ef
2a7a8235f879ccfc792be2af3ad43cd3e5f93f38f54d6ee7ccb2699e4bf354f7301b6d3f5092d26bb3a
568d1442e9d2da45916b2fc1033712fe906fb2cb555076fe75d7dfcb5e669f5af3b6a29e7ab2b19ad
ac6dad67896d2681e0b768268a7858a3caadc94aa7ef84feb73fdde2aadf999e6ab6ba6f30e87e5b
d6aeee347b9b5d5f4f6864d427be5bb8e6d0c4f6ed1ccd29448cdc931c6bf14beb8915e455648715
4fb5af3adff00d66fdb47f33885a3d5dff463c77f485bca874025578b39fdf2de6c390fad7d638ffbaf15
4d7c9fe60f2c7937f33759f30eade608af745f327977478ec3559afbf484b6f77a7c974f75692167925
42e6e566452153edaad3871c552fbbf3a574ef3335aebc34cd5a1bebefd030c17ab14234093482d6
e91470c9e9091673c69fdfadcae2aa4be72e161a41b3f37ac977677163a8df69fa86a133c77c8da6d
b2ddc26e165124330959e482b5b7f5d24499006f8554935ff356a5aa7936fadf51d7a3bbd426d3b5a
b6f33d99bc8e68e7bf4d62d869af691872bc4dbaccc9e87c1e8ff007bf185c559158f98ff004fe9be79
96ebccb7f7dacc7a6ebb0dd68c7d23a5ac0974cd6b7313824495878085a13fddb37aebcc0c55f4be
2aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55ffd4f7f62a9479
6bfe3923fe622f3fea2a5c557799b4387ccde5cd5fcb9732c905beaf6771612cf092b2225cc4d11642
29b80d518ab0ed2ff247c85a768d65a2bdb5d4f6d662265537f7c911b8890209c44b3f0590d3ed28
ae2a8a5fc9cfcbf56675b1ba0eecb2330d475004ba29456afd63aaa92aa7b2edd3154bbcbbf919e4
af2cf9a6ff00cd3602efeb374f6b25a43f5bba0b6a2d22117046135591e95647e4bfb3f67e1c55e9b8
abb15762aec558b6abff009303cb5ff6ced63fe4e5862aca715762aec55d8ab16fccb257f2ebcdac3a
8d1b5022bed6d262a9e41636524113c96d133b22966645249a0ea48c552ebff26796752d5f4bd76
ef4f8df54d1bd7fd1b32968c47f5a5092d510857e4a00f8d5bdb154d7f4769fff002c90ff00c8b4fe98a
bbf4769ff00f2c90ffc8b4fe98abbf4769fff002c90ff00c8b4fe98abbf4769ff00f2c90ffc8b4fe98abbf476
9fff002c90ff00c8b4fe98ab5fa374ff00f96487fe45a7f4c55dfa374eed690ffc8b4fe98ab18fcc8b5b4b7
fcbef34490c11c6e34cba1c91154d3d235e83156638abb15762aec55d8abb15762aec55d8abb156
875c55bc55d8abb15762aec55d8abb157fffd5f7f62a94796bfe3923fe622f3fea2a5c558ce87f9bfe4
ed775f3e5a89aeecf526bfbdd1edcdedb490413ea3a6297b9b78a5dd1a44405f8d7e340cc9cb8b51
567b8abab8ab08f307e69f97740bad66d4dbdfea47cb96eb77e61974db66b98ec2378fd551290455
cc7fbcf4e3e722c74765556525566a8e1d15d77560181f63be2ad1963122c45c095c164427e22ab4
a903c05457e78aba693d28a4978b3f052dc10559b88ad00ee4f6c558b793bf30f40f3c151a2adca9
7d36c35a5facc5e956d35433ac3dcfc55b7903afece2abf54ff0094ff00cb47fed5dac7fc9cb1c5594e2
aec55d8abb154afcc9a3ff887cbbabe8066fabfe94b2b8b2f5f8f3f4feb31347cf8d4569cab4a8c55298
ec3f30e38d231ac68c42285afe8cbade800ff0096fc55bfa9fe637fd5e345ebff0056cbae9ff49f8ab66d
3f3169f0eafa2d7c4e9975ff0065f8ab46d3f31ea29abe8b4fda074cbaebedfe9f8aad367f9974db58d
0c1ff00b65ddffde43155df53fcc6a1aeb1a283da9a65d7fd97e2ad7d4bf31ebff1dad169dffdc5dd7fd
e431570b2fcc7dabad68a7c4fe8bbaffbc862abbea9f9894ff8ebe8d5f1fd1975ff0065f8aa5dae796fcf
9e61d1afb42d435bd263b2d46092d6e5e0d32e44a2394716285af9806a1daa0e2ace715762aec55
d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb15762afffd6f7f62ac1350d5341d27
c9c97be6469574d5d5295824785d651a9b18d8b23c678230e720e5431abf2575f84aaf04d322f26d
de95f983aceadacf2d753cc3e63d63c97a73dda430fab7b018a0bcb744284cb22bba2348ff0f23c55
3ae2a81f316b90f983cc3ad4d15edf45a15c49e669ece3fadcd0216bad234efa81f4e3987126ee29c
c6ac0719396cbcb1546e89abf96021d23cdfa85fcfa55edc5b4ed6897b79ce6b897cbcad7c4345286
35bd8c96ab7159be35a722d8aa7ff939e76b7f23e93ae68fe7cbb1ab6abaacd6baafe948648ef16f6
59f4cb5b69e09e4040596292dd919a5e11ba146573f151562faf6b5a9dde9ba818f5b75d6e44f3143
ad4f6f7d228d42296fe39345fab18dc006284d17804f491258dfed7c6aa86a575a68f2f79aa1b0bc97
f4b5bdbf9d34ef25cf1dccdf59821bf9ad66d396297d40ea8e565f4d99be1fb3b0c5597695af693a7f9
92e248f5858a0b5d634dbad06fdee659923f2f9b28febf66fcd9d8399c5c16493e37796361f65782ac
22c357fa8e87a5d9addcf05afe84f29699afdb59b46b772dad95d6a82fe08bd40559a21736f23a7fbb
62e4a9cb7c559f7e58be9d37e735b1b5d46fafed60f2f2db69726a77af797252dd2dd263271731fabf
ddfaacabf13fed33726c55f4962aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8a
bb15762aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb15762afffd7f7f62a9
3f967fe393e3fe937a3fe9ee5c5538c55d8aa0aef49d3efaf2cafeea1125e69aef258cbc98189e4431
b114206ea4a9af6c551b8abb15762aec55d8ab15d58d3cffe581d8d86ae3aff0095647f862acab157

62aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb15762a
ec55d8abb15694935a8a1a9f7dbc71571600807a9e98ab78abb15762aec55d8abb157fffd0f7f62ac
274ef34c5a2c3369b77a46b0f3c375784bc1a6dccf13092e649159248d0ab2956041071545ff8f6c7f
eacdaeffdc26f3fea9e2aeff1ed8ffd59b5dffb84de7fd53c55dfe3db2ffab36b9ff709bcff00aa78aac9bf
30f4cb78ccd3e93adc512d3948fa55e2a8a9a0a931f89c5578f3e591ff00a52eb9ff00709bcffaa78ab
bfc7b65ff00565d77fee1379ff54f154bedff0036bcaf75a84fa4dbdb6a8faadb9a4d6234eb9170a40aff
0074503529de94c5530ff1ed952bfa175dff00b84de7fd53c552f875497cc3e77d0eeed74bd4ad6cf4
fb3d445d5c5fd94b69186b86b511a86942d58f06d87f2e2acef15762aec55d8abb15762aec55d8ab
b15762aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb15
762aec55d8abb157ffd1f7f62aec55d8abb15762a85d4b4fb4d5b4fbad2efe3f56caf22782e23e9ca3
914ab0f6d8e2a92f92353bcbdd17ea5aabf3d774695f4bd558f579edc0e32f6fefa268e71ff19315649
8aa5daae83a26bb10835ad3adb50897ecadd4492f13e2bcc1a7d18aa5773e4cb42b17e89d4b51d
1a483fba36574cd16dd034171eb42c3e71e2a8609f98ba4fd8974df325b28fb3307d26f3fe0905c42
e7fd842315454de6f1a7dbc771ae68fa969ea47ef592dcdfa467bf236467217fca2a17154c346f3268
1e6188cda1ea76d7eabf6c5bcaaee87c1d01e4a71610000026060f002220574d464301000000000
0010000000000000019000000002000000887020008070300d98038aa698abb15762aec55d8abb
15762aec55d8aac8e58e6459627592271c91d486520f70475c557e2ac566fcc6f2941ab3e9125f30
922bc8f4a9af04331b18f5298294b47ba09e92cc7928e05fedb2a7db655c554e4fcc9f2ba5e4b651b
5ddc4b14cf6dcedacaea78e49219dede7113c7190fe8488cb371afa54e4df0ef8ab2ec55d8abb1576
2aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abffd2f7f62aec55d8abb15762a
ec558bc93fe87f3bc513a2a58798ed8aa4c050fe91b015e2c7a13240495f6b76c5586793adbcf7a77
9c3506bfd4ee3f436b97f7fa85a586a9fbe48a1b7bc96ddeda004ac91562105cc14e5132bcf54fb2f8
ab5f9a9f987e6af23ebc92695f539b46b6d06eb54b9b1ba8df9cb7116a3616aa44c8e3800972d41c
4efd6bb71552ed5bf363cf49af6a9a1e8ba7690e34efd3d39b9bb92e56b6fa07e8f7e3c2307e3912f4
ad79515939529f0e2ac6ff00e565f9bbce7e6af26792fcc3141a5685af5c5a5d6ab3e933cd17a96f7d
a25c6a36f60f3371752d3c24334653d68d7d3a2f270caa3a3f3af9c7ca7e64f3e7953cb0b6fa8685a0
dda1d225d5e49e65b6e7a1bea93da2c884bb849231c519eb124eaa3e1444c55ea7a7e95e58fcc2f
2f68be69d5745b7fadea9636ba845371e37707d6614942a5c47c2452bca9c959715463795efed6d
3eada2798750b375358dae99352503f958dd2bc8c3fe7a86ff002b1543b5efe60696c05d69965afda
d403369b31b0baa773f57ba2f19ff00a4918aabdaf9e3479646835186f346ba4af38b53b596dd36fe
59e8d03ffb095b154eec353d375583eb5a5de417d6d52beb5b4a934751d47242457154562aec55d
8ab09d43f33b42b3d6aef418a299ef34f9228b519ee7d3d3ed60f58060deade345ea2f1350d08954f
d9e5caa3156537ca9a86937496cfeaa5d5bc8913c2e472e68402ae8453aec41c55f367e5fcfe63d0
6d7ca7a0cd6de61b5b43a6f940885a0d49a288db41776daa8918ab2c5c5fd3f555cad7f7722a95e2
d8aa13cbabe705b1f2edeea9a879adae1bcaabaadec7713eaa6bae41a95b468b2a529cfd357e501
1c5d3933c6cb56c5534d43cbbafafe53798ff0027c69f76fe77d4fcc578d6578b6f2b5bcb06a1ad9d4
e2d50dcf131848a17e4f57e6b345e9539f0e4aa63f97be5cb4b7f307966e26b6d4e3be8f5ff0039cee
667d49220b2ea13bc123a3b7a4ab2c6cae9c87197957e235c55f4362aec55d8abb15762aec55d8a
bb15762aec55d8abb15762ad014aefd7156f15762aec55d8abffd3f7f62aec55d8abb15762aec5520
f3969526a9a14a6d5cc7a9583c7a969d285e656e6c9c4c8295150fc4c6e3ba3b0c550daeda9f34f9
7ac35af2f488da9db18759d0272691bc9e992a8cc29fbb9e27685cf6490b7518aa95d796bca3f989a
6d86b3afe8a975f59d3e6b7582f519658ed75244fac5bc8b51d782f207ecba065f88571552b5fca9fc
beb1985c5a6850433086ead99d1a505a2d4238e2b90ff1fc66558a3f519aacdc1589e4b8aaba7e5a
f9152cee2c1744b7faadcc7650ca87993c34b5e167c58b7246807f74c85593b1c55517f2efc98b611
69aba4c62ce16ba95503cbc9e5bf8da2b99257e7ca47951d95de42ce6bd7154f34bd32c745d36d3
48d2e116da6d84296d696ea4958e18942a20e449a28000c55178abb15762ac7b50f23795b52b8fa
f49a725b6a55a8d42c59ec6ef978fad6cd1b9fa49c5542d3cbde65d2a4034ff00334d796401ff0045d
62de3bb61e1c6687eaf27fc8cf54e2ab27d6fce5a54ac6ffcba9aa580ad2e746ba579c01d0b5b5d88
3ee8e694fb62aa967f981e54bab94b0b8bdfd19aa4940ba7eab1be9f70cc7b2a5c04e7ff003ccb0c5
533bad074cbed4edf599233f5d8617b62ea68935b4bb98a65dd6440df1af21f0b7d9fb4dc954a25fc
bbf2d23b4fa3453797ee9bacda2ccf600ef5f8a28ff72fbff3c6d8aa67a2e9bae69cf326a7ac9d5ad081
f56335b470dca53afa9242551ebed1262a9c62aea62aec55d8abb15762aec55d8abb15762aec55d
8abb15695b9286a115de8450e2ade2aec55d8abb15762aec55d8abfffd4f7f62aec55d8abb15762a
ec55d8ab10f291fd0baaeb1e4c94d23b593f49e8cbb01fa36f9d8fa6bff00186612c7c7f662f47c7156
5f8abb15762aec55d8abb15762aec55d8abb15762aa1776767a85bbdadf5bc7756b26cf04e8b246
df356041c5523bbf246837014da2cfa54c9fddcba55ccd6247cd616546f93a30c550874bf3f695c9b4
cd6edb5d86a385aeb500b69a83b7d6ac9557efb66c55172f98f55b0b68e7d57cbd795d84e74d68f5
058c93d42a98e675ff561e5fe4e2abf4cf3c795356bafa85aea9147a9934fd1b75cacef6bff0030f702
397fe13156418abb15762aec55d8abb15762aec55d8abb15762aec55d8abb15762aec55d8abb15
762aec55ffd5f7f62aec55d8abb15762aec55d8ab15f36dcb6897ba3799f8afd4ed6e3ea1ab4840e5
1d8ea1c53d4e5d95275819fc23e6d8ab2ac55d8abb15762aec55d8abb15762aec55d8abb15762a
ec55d8abb1540ea7a3691adc1f56d62c2df50b6ad44575124ca0f880e0d0e2a94da792b4fd2b98d0
ef750d323714f422ba927814f62915d7ac89f245518aa17d0fcc5d2a861bad3bcc76cb5fdddd23e97

995

794aedfbd844f139a7fc5310f7c555ed3ce12fabf56d6f41d4f499d579348d00bcb53feacf66661ff061
0ff938aa65a5799bcbfae3c90e93a9db5dcf0ed34114aa668cff00971d792fd23154d6a31575478e2
ad5478e2aee43c462aee4be23157725f118abaa3c71575478e2add462aea8c55d8abb15762aec5
5d8abb157ffd6f7f62ac1f4bf26e91abdbcba95f5c6a8f757173766431eafa9429f0dcc8a02c71dcaa2
800001554018aab5ef923ca3a6d9dc6a1a8df6a56b616b1b4d73733ebbaa471471460b33bb35d80
1401524e2aaa9f97be599115d2e355646019186b7aa9041dc1afd6b1540dff95fc87a5dd58d8ea5a
adf5a5e6a921834eb79f5fd4e392e6603914895aec176037a2f6c55ad23cabe41d6e39e5d1753bdd
422b599adae5edb5ed4e658ee22fb71b95bb3475afc4a771df154cbfe55df96ff009f53ff00b8ceabff0
06558aa409e56fcacf34c53e896daacda98bd86ee096da1d7b509cbc503fd56e7e1176c088dcfa6fb
7c2ff0b6f8aa7167f969e5cb5b5b7b77b9d5ae2482348dee25d6753f52528a01770b72abc9a95340
062a89ff00957de5ce9cb5223df57d53bffd1d62ae1f97de5a15a7e91debff004b7d4fbffd1ce2ae3f97
be5a2287f48d36ff00a5b6a63a7fd1ce2ad37e5e79659b911a857fedada98fc05ce2ad8fcbef2d2d38
fe91001a80356d4faffd24e2ad8f2079701247e9015ebfee5752ff00b29c550f2f96b4dd0f52d1aeb4d
7bc495ef7d2904b7f7b711b46d6f312192699d4ee01dc62acbf15762aec556c6fea22bf12bc8578b0
a30f98c55762aec55d8ab0c7f27f95fcc3afeb977ae6936da85ca4b04292dc20918462da260a2bd05
493f4e2aacdf95df976cbc1bcb5a795ad69e82f51df154bf46f24fe53f982c46a5a3687a6de587ab3d
b899201c7d5b699e0997e2037591194fb8c55057de5efc95d375b5f2d5e68da647aecb672ea4960
2ccbcaf656c6924a02a1aaa1201ff29957ed32e2aed13c83f921e75d2ad7ccfa2796b45d4f4dbe859
2cb558eca30cf03120fa52b22b8526b42a7e58aa676df953f95fa3698b6d1f966c058d9c47e29e1fac
c9e9a6e79492f391e94fda6638aa57e5ad1bf247ce4b2bf96749d1f515821b5b894c566ab482fe2f5
eddbe245a8910f25c553f1f963f976050795f4ca0da9f558a94ff81c5577fcab3fcbca53fc2da5d3c3ea
70ff00cd38ab7ff2ad7f2f6b5ff0be975f1fa9c3ff0034e2aeff00956bf97a0823cafa5d46c0fd4e1e9ff03
8aaeff9571e400283cb3a601e1f548bfe69c5569fcb5fcbe6356f2c6984f89b488f4ff638ab7ff2adfc80
6b5f2ce9a6bb9adac5d4ff00b1c552ed7fc85e4bb1d1af6f2c7cbf616f79044658278ade38dd248f756
56500820f438ab39c55d8abb15762aec55d8abfffd7f7f62a93f963fe390bff0031379ff5172e2a95fe6
882df967e72500b33687a92aa81c8926d2400002b535ed8abc51f53f3f595c6a96ba36afad6b3a5e
91ab58e94914463fac183ccba341147289044aa52d2fe4496b4e30c6d372a88d53154ead1fce57f1
7902eb58d564d33ccb7baccd142d7d6ff005b5885868973633388898a82e67579558b0fefe3eff0e2
ac7e6f3b5ef96ad9218f58b97bd8f59f305e4f3db5bcb6fa7dd4d6fabdaf2f53d1595cb082591d20afa
52466499dff007498aa013f303cf1a76a1ac4b1eb9aa6a5a6cf71ab2de068d657b1d2acbcd5159fd6
2d563814f24d3a696407e36644597a478aa8e99e60d43cbfe58bed4bcaaf75757f6b7be729a3b992
09ee2f3f46cfe64b1692ed54a2bcc45a99264e23949c792d5862acf3c81ab6bfaa7e61e93a7dc79aa
ff51f2f45a0cfa9da2884dbda5e39d4668a26633abcd20581d5433ca1a6f4d67e34fb4abddb15762a
ec55d8abb15762a946b7fef4e8bff31e3fea1e7c5537c55d8abb15762aec55d8abb1549f4aff008ebe
bdff0031307fd42438aa718abe56b983cc577e568e7f28eb32d96a6da8f9a6d27b46bf9ac228dff4ec
dab5a5d3c6af193ea242d6c081fbc4bc4fd8c5538935a9b52fcc9f2c6bb73adcfe58927f29eb1757f3
46b0df7d5a4bfbfb4bb8ac259278e6884891a37c09bf28484f869555877957cdd73a1f933f2cac60b
bd46cef6c34fd3ed3588905d0548678f50825468a35548dc4a21f54c9c9d7f70d1aa22fa98aa3b41f
38dc586a56165e63d6b59bbf28ddd868971ab4c6e6f6e275d567d2ae565f8e326654fac245eb245f
0473fa5cd579362a95f9435d7d27cb1159dd5edd69168fa5794b4cd66e6182ea5bd8161d1ee6273
1476af1cced15db40b29899bd327938e1cb157b97e5415bed5757bdbdd7b52d5b56b24b4b1f4efa
e9846d17d42cda49bea913b5bac8d32b9768b97091a48f97518abd5b15762aec55d8abb15762a9
479a7fe51dd4ebd3eaeffab154df15762aec55d8abb15762afffd0f7f62a93f963fe3903fe622f3fea2a5
c5531bcb2b4d46d65b1be852e2ce752934120e48ea7a820f518ab1d3f96de4134af972c36e9fb84d
abf462ad7fcab3fcbea11fe1ad3e87a8faba6ff00862ad7fcab1fcbc1d3cb1a6ee003fe8d1f41d074c55
c7f2cbf2f4f5f2c69bd41ff0079a3eabb0eddb1568fe587e5db7daf2be9a7a1ded633b8e9dbb62a8bd
37c89e4cd1ef63d4b4ad0ac6cefe22c63b982044914ba9562180a8a83438ab21c55d8abb15762ae
c55d8aa51adffbd3a2ff00cc78ff00a879f154df15762aec55d8abb15762aec5527d28ff00b97d7bfe6
260ff00a8587154e315491bc99e4f762cfe5fd35989a926ce02493bd7ec62ad7f82fc9dff0052f699ff0
04856ff00f3462aeff05f93bfea5ed33fe90adffe68c55c3c97e4e1b8f2f6980ffcc15bf7ff00618abbfc19
e4ff00fa97b4ddba7fa1c1dfafec62a8cd3f41d0b4991a6d2f4cb4b199d783496d0470b14ad78928a0
d2a3a62a9862aec55d8abb15762ad0208a8e98aa51e6aaff0087354a1a7fa3c9bfd18aa718abb157
62aec55d8abb157fffd1f7f62a92796e58e2d190cae1035d5daa9720559af25006fdc9e98aa43e5afc
ced3bccfab496765a75d45a3f3d461b4d765683ea934da3dcad9dcc642c86489fd42dc04a89cd119
c62acbd753d39a18ee16f20682562914a25428ce0d38ab5684d76a62ad36a7a6a33a3de40af1ed2
2995015a923715db70462ac63cdff009836be55d5b47d0e3b09354d575a17c2d60826b78b8cb616
525e8490cf2271f55632a8c7e00df6d9462a9af987ccf6fe5ff2fea3adc901b99f4db19353974c8a588
5cb4302191f8f260bb00686bc49fdac5505a079befb53bc169ace85368426821b8b29ee2e6da68a7
3396022530c8c44838d7891b8fb35a362ac81b53d391823ddc0aec8d28532a02634d9980af414dc
e2a976a5e6cd0b4e5b746bfb692f6fe496d74cb413c61eeaee185e76850934e5c10935e9df15619e
5ffce4b7f30a7e5f4b6fa05e4317e61dbdd5e69ed2cb6ffe8b6f69109cb4e1643bb46c19563e7e0d4c
55e82dac69491a4cf7d6eb14a78c7219902b306e24035a13534f9e2ac3bf307f35b49fcbe96386eac
a6d4667b0d575278ed24839c69a3d99bd746591d4869101e069c7c4f4c5598c5aad8bc6aef71144
e614b8789e450e91c94a3302761534ae2a8982e20ba852e2da449ade41ca396360e8ca7b861504
62a966b7fef4e8bff31e3fea1e7c5537c55d8abb15762aec55d8abb15492c6686db51f315c5c48b15

bc534524b2c8c111116d222cccc760001524e2ac625fccbb89fce773e57d0f471a9da69afa62ead7a
b74b1cb1c3ac02d1dd430fa6deb5ba000492075f88edb23b62aca93cd7e58923b8962d6ac248ed4
21b964ba8584625a94e74634e543c6bf6bb62ae6f35f95d5d636d6ac04af189923fad43c9a22a5c3
81caa54aa9208ec31548bcebf98fa5794f47b0d56d9edb536d42fb4db282dd2e9119e2d4efa2b2f5a
3a07e62332f2a0fb5c5be218aa6ba5f9a2d2e74ed3e6d52e74fb3d4b52678ed6d61be8ee62964591
915629689ea13415e2bb37c3db1562be57fcced4759b3b0d6b59d374dd23cbb78b72f3de1d5d649
6d16d9da30f3472dbc20233809c95cf1674afdac559d4faf6896b224573a8dac32cb2adbc6924d1a3
34ce14aa0048f88865a0ff00297c462a95ea3e7ef26e97686faeb5bb336c2e2d6cd9a19d26a4f7d71
f5581484269ca4aaeff00cadfca715609ff002bba76d305fa685119a4f3a1f22c107d7c6ec2edad3eb8
cde86ca587211f12dc7f6b157a449e69f2cc515c4d2eb36290daca2dee646b9882c7335691b92d40
c6868a77db15487cddf98ba6f9721f2fbd835b6ab2f98752d3f4fb5892ed12b06a530856e632ab27a
88a581db661fb5b62aade4bf3f69be69f2be81af5ebdbe957daedb7d661d324b94770472e6a8cc10
bf1e2770bdb15647a66ada5eb36ff005bd1efadf50b40c6333da4a93c7cd6955e4848a8af4c5507e6
aff946f54ff98693f562a9c62aec55d8abb15762aec55fffd2f7f62ac06ff54b2d1fca96777a8e92facc03
58a7d5e2b796f1a22ba8bbfd6424314cd5802faab45fb4a155958ae2af9ffcc5a8b0b9f37799bf40ea
3a1e91ad6897b1f9b7461a76a12e99ab6aeb3442caf6146b50b048624717324bc39f38d1bd468fd5
c551c74ff4b59f376a967e59d43f41f9c2d352b28bcb434abf8974b9af6dece01724ada98a93b5b34
93fa059d3f765448dcf154bb4cd0351d2bc83adf97a2f2e5edcf9a352d4b585935b3a55e45737163a
85a4d1c53999ace5203c8e04b1b832aabb94f8be20aa8f9aed7cd5e62b0b6d3cf93af1a4b74d6de5
bd92d2f4b5c36b7a1cb631c4c3ea45b9432c891bb1f80c712ba31e8aab237b8d49ecbcd76fa87942
fb52bed46ceee6f2feaefa7ea2b776b2ea1a441a6b69fc7ea84011988f29849e934542a0cbb62a87f
a95b3e8f7b07973c93ab79635db68f49d5b48d42f6d354bf8e4d774394bc09e94704a6389d1a48a6
9398e51c9fddd7962aa1a9695782fbccd6afa06b5e60b6d4ac279745d5e4b5d5ade382f65d18e98d
04b6325a7166791a59165afa616762dfbc8fe255156a2ff004dd43ca9a8e9fe4ed4638b40bf8a7b8b
14d32f22e71cde5b3a5cb24645b140639c2d41de45a3ae2ac73cafe559fcb1a7fe5c4b69e4ed4ff4d
685a26ada5f9a16e2d7589ad64b9bbb116d0f15f45ab149202d27a2a8e91b7d9afc38aa09340f335f
797f5ed3754f275f1bdbeb5d7c6981b4ebc963827d6748b1b48634e564be9ac73dbc9ba8f8578b06
7fb4554e7ce9179b7cc713d8db7953507786dbccf0aeab358dfc725c9f31e9af040854591606191d6
290b3702b109119b60aaa2b57d26f7546f384f77e57d5b51d4353b7b8fd057d3dbeaa1122d4e2b4
8e4b27b36b5f48185ad96b33332158d1a2fde6caabea6d0ce9eda459be95686c34e68d4db59b5bb
599890fec981950a53f94a8c55435bff7a745ff0098f1ff0050f3e2a9be2aec55d8abb15762aec55d8a
b1992796d8f9b2e20b33a84d1b2b4762a2a6761651523e87ed1dba62af20f32dbf99bcc9e6df2cf99
3fc23a86937be5bd46deeacf5bb38785d2691e947f5dd2e58c3aacb14ee1c0666088bc24f4c3a7c4
ab1cf2d5beb9aa5ef93ff0031b49f2bdd97d02c56ced2ce1811e3d46dcbcfc99e75702264f52b12f09
38bfa9c9b7c5538f2e68de66f2dcbe6296dbcab7cd2ead0d97d4e44b54430bc1a8de5f4b1216e7c0
2add94824f8b8bc7ea701b0c5528b7f2e79ead3cbf1f9717cb5a84b01bfd32f9ae5d199a24d1b5f7d
542286259fd789c2d59870979f2e6ad8aa63e41d27cdbe4eb9b1fae794aef50b11630d9dd412d92b
fd5a7b2d56f351866b5ac8031717614f2f4fd29618e40cff0067155fe5bf2f3da685fe1ed6bf2cae17eb
f63a9697aeeb5676f11bcb8b3d51de478f8feef91e4509691db8f0f87ed62a81d3bcb1e688756d235
5f32f96352f34ccda74363af35d5b35aa8bcb5b917115e428970e25042468f0c853e28a2903f518aa
0f4ff2af9d2c746b1b41e55d44de69cd6972a0408239a5b5f330d738121fe10d1562e454d24fd92b8
aa92791756120d5ff00c0574be685f3f1f3a0d4c58c06e0e986f0dd1b533f3e7ea713c07fbafdf8e2aa
969e5bf3d2ebf26af7de51bd2b36a1a0ea12ada5b245101a16a3a85c948a032f18c4915dc61541fef
55d9d9998b9554f40f2cf9fb48d1b41d0e5f2b6a771169b7fa26a93dc346a3d37d12ede568225f50f2
595082ac787072f556fb58aaa793fc9fe62d0a7d2a6d6fc917dabbe9fa7d85bc124d093f52bfd2a6bb
649ad904e15c4a975b33846864e6dfbc57e38abdd7f27b4fbdd1bf2d7cb5a0ea3612e9d7fa3585be
9b730cc8b19792d22589a440a4fc0e45549f8bc462ac87cd5ff0028e6a9ff0030f27eac5538c55d8ab
b15762aec55d8abffd3f7f62a92f95a87475a7fcb4deffd45cb8aa657fa7d8ea9692e9fa9db45796138
e33dadc22cb148b5ad191c104547718aab471a451ac512848d005445140140a0007b62abb15762
aec55d8abb15762aec55d8abb15762aec5528d6ffde9d17feda03fea1e7c5537c55d8abb15762aec
55d8abb1549f49ff008ebebdff0031307fd42438aa70402287707a8c556a2246a12350a83a2a8a0fb
862abb15762aec55d8abb15762aec55d8abb15762aec5527f35ff00ca37aa7fcc349fab154e315762
aec55d8abb15762aff00ffd4f7f62ac2f4fd7354d1a0934e93cadab5c186e2e889ed859342eb25c492
2b217ba46a10c3aa838aa28f9c7521d3c9dae1f92e9ffc6f71572f9bf543ff004c76b6295ebfa3bfecb7
156ffc59ac1048f26eb3ec0b6983fec771568f9b75ade9e4bd64d3a7c7a5efff004fd8ab5fe2ed6c353f
c15ad11e3ea6974ffa8ec556ff008bf5cad3fc11add3c7d4d2bfecbf15424ff9857f6da859e97379375a
5bed41667b48b9e98432db05325585f505038ebd715469f36ebc0d3fc13ac9f7f574affb2ec55dfe2d
d7bfea49d63fe46e95ff0065d8ab5fe2dd7bfea48d67fe46e95ff65d8ab879bb5eefe47d647fcf5d2bfe
cbf1570f376bbff524eb3ff2374aff00b2ec55dfe2dd76b4ff0004eb3d2b5f574afbbfdeec556fe93d6b5
9d4b4a864f2cea1a75bc175f589ef2ee4b13122ac32ad2905d4ae492c00a2e2acbb15762aec55d8a
bb15762aec55895dcfe6bd2b58d4a4d2b408f54b2bd78a68e7faf476c41485222a51e363b14ad6b8
ab86bde7a237f28203ff6d480ff00ccbc55dfa7bcf7ff0052847d7feae90f4ff9158ab5fa7bcfbff527c5ff0
07158bfea8e2aefd3de7dff00a93e2ffb8ac5ff005471577e9ef3effd49f17fdc562ffaa38ab5fa7fcfdff52

997

745ff007158bfea8e2a971f3bf9d06babe5f3e4d4fae359b5f86fd2b0f0f4d655888fee6b5ab62a8c8bc
cfe769de68e0f2a5bc8f6efe94ea9ac40c63938abf17021f85b8b2b50f66071555fd3de7eff00a93e2ff
b8ac5ff005471577e9ef3f7fd49f17fdc562ffaa38abbf4f79fbfea4f8bfee2b17fd51c55dfa7fcfdff00527
45ff7158bfea8e2aefd3de7dffa93e2ff00b8ac5ff54715436a37de7bd5aca7d324f2ac36f1dda985ae0
ea91b88d5f62fc4435341bd075c559c62aec55d8abb15762aec55ffd5f7f62aec55d8abb15762aec5
5d8abb1561baf8afe61f93bdadf5827fe45db62a947e6fc3e67d47441a668977368ba7f3b59ef35cb6
64f5c4a2fa048ade3527971624bccdfefb4f487f7a4a2ace744b8d56e74bb7975cb54b3d5a8c97704
4e248b9a314e71b0fd87a734afc415806f8ab8abcf7f373cf1ae7962eb4cd2f476b8b18ee6cb53d5af
759b7b3875330dbe911c723a0b6926899f90937e3f17d9e3fb58ab517e79f95221736f3c1a8cada7
25a4371a8bdb47696935f5edadb5dc16f1cb34c9189658ee91d54b70501f94838fc4ab3ef2cf98f4af
37797f4cf33e85299f47d5ada3bcb294a946314ca187253b822b420f438aa6b8abb15762aec55d8a
bb15762aec55d8abb15762aec55d8abb15762aec5585de8b9ff0095903ea7e9fd73fc3b71f57f5abe
9fa9f5b8f8f3e3bf1af5a62ac5ff0029bca173e58f32f9d2482ec5d25ceabc75d9e7e5f58babefd1f653
8b95a12abc9a5954c7fb29e92aed1e2af5cc55e5df9bb79e607d53c9de5cd226782c75bbcbf5d45a
daf26d3aedc59e997375124771023327c718627c5541564e58aa49a57e6e6ad6be5bd02f2df4033
e9171a4f97e549ee7519af3516baf30a886da26516ccd314907efe5e5cd97e358d9be0c55ea3e51d
6752f307972c357d63489b42d52e518dd69372434903a3b2115a0a86e3c96a15b8b2f2556db154e
f15762aec55d8abb15762aec55d8abffd6f7f62aec55d8abb15762aec55d8abb15623ae53fc7fe511
dfeafab107fd85bff005c555ff30457cad381ff002d361ff51d062ac9f15615e78f203f9ceea2b8fd286c
122d2f55d2382c0b3123598a389e5ab30dd0460aad29fcd8ab188bf23cc5a4dfd90f31483519f50d2
759d3afc5a454b5bed1ac2df4e52626665963962b70248da9f6df8b7d9e2abd3f48b07d2f4eb7b196
ea5be9615a497771c7d495c92598840aa2a4ecaaa
Consider one of the sensors, the ch4Sensor. This is a periodic activity and must, therefore, be
represented by an instance of the PeriodicThread class. The sensor needs to access a device. In
this example, the device is an analog-to-digital converter accessed through shared memory-based
device registers (an example of which is given in Section 15.3). The converter supports 64 channels.
The Ravenscar-Java code for the function to be executed each period is given below. This class is
called CoSensorFunction. The ADC converter requires time to settle. The sensor, therefore,
initiates a read on the converter just before it waits-for-next-period. The deadline of the sensor has
been set so that the time between the deadline and the earliest next release of the thread is such that
the
converter
will
have
produced
a
result.
import
javax.realtime.*;
public
class
Ch4SensorFunction
implements
Runnable
{
public
Ch4SensorFunction(PumpController
pump,
OperatorConsole operator, DataLogger logger)
{
myPump
=
pump;
myOperator
=
operator;
myLogger
=
logger;
myAdcReg
=
new
AdcControlRegister
(
csrBaseAddress, channel);
dataBuffer
=
new
RawMemoryAccess(
PhysicalMemory.IO_PAGE,
dataBaseAddress,REG_SIZE);
myAdcReg.startConversion();
}
PumpController
myPump;
OperatorConsole
myOperator;
DataLogger
myLogger;
final
long
csrBaseAddress
=
01400;
final
long
dataBaseAddress
=
01402;
final
short
channel
=
6;
final
long
REG_SIZE
=
2;
final
short
CH4_HIGH
=
01000;
AdcControlRegister
myAdcReg;
RawMemoryAccess
dataBuffer;
public
void
run()
{
if(!myAdcReg.conversionComplete())
myOperator.activateAlarm(
AlarmEvent.CH4_DEVICE_ERROR);
else
{
short
reading
=
dataBuffer.getShort(0);
if(reading
>=
CH4_HIGH)
{
myPump.stop()
;

myOperator.activateAlarm(
AlarmEvents.CH4_PRESENT);
}
else
{
myPump.start();
myLogger.ch4_log(reading);
}
}
myAdcReg.startConversion();
}

The other periodic sensors are similar in structure, although they do not involve calls to the pump.
The sensor function algorithms are very simple. However, one could imagine a more complex
algorithm that needed to create temporary objects during its processing. For example, suppose the
methane level needed to be computed from several samples in order to determine whether the level
was dangerously high. Assume that the following class implements an appropriate algorithm:
public
class
ComputeMethaneLevel
implements
Runnable
{
public
ComputeMethaneLevel(int
numberOfSamples)
{
samples
=
new
int[numberOfSamples];
methaneHigh
=
false;
}
private
int[]
samples;
public
boolean
methaneHigh;
public
void
run()
{
//
Complex
algorithm
requiring
//
temporary
objects
to
be
created.
methaneHigh
=
true;
//
or
false
}
public
void
latestReading(int
reading)
{
//
Save
latest
reading.
}
}
Now, an object of this class can be created and the run method executed from within a scoped
memory area. This will ensure that any temporary objects are reclaimed when the run method exits.
The
new
Ch4SensorFunction
would
become
public
class
Ch4SensorFunction
implements
Runnable
{
public
Ch4SensorFunction(PumpController
pump)
{
compute
=
new
ComputeMethaneLevel(1000);
scratchMemory
=
new
LTMemory(10000);
// reserve appropriate size
...
//
As
before.
}
LTMemory
scratchMemory;
ComputeMethaneLevel
compute;
...
//
As
before.
public
void
run()
{
...
//
As
before.
compute.latestReading(reading);
// Inform compute engine of the latest reading.
scratchMemory.enter(compute);
//
compute
//
As
before,
with
compute.methaneHigh.
}
}
The two interrupt handlers are identical in structure. First, a class that implements Runnable is
defined. This can then be directly associated with the Ravenscar-Java SporadicEventHandler
class
during
initialization.
import
ravenscar.*;
public
class
LWInterruptHandler
implements
Runnable
{
public
LWInterruptHandler(PumpController
pump)
{
myPump
=
pump;
}

999

public

PumpController
void

myPump;
run()
{
myPump.turnOff();
}

}
The pump controller class is illustrated next: it is a simple state machine. The motor is switched on if
the water is high and if the methane level is low. This is represented by the variables pumpOn and
pumpOperational. The variable pumpOn is true if the water is high; pumpOperational is true if
the methane level is low. The motor is on whenever both these variables are true.
public
class
PumpController
{
public
PumpController()
{
pumpOn
=
false;
pumpOperational
=
false;
myDevice=
new
DeviceRegister(csrBaseAddress);
}
public
synchronized
void
turnOn
()
{
pumpOn
=
true;
if(pumpOperational)
myDevice.setOperate();
}
public
synchronized
void
turnOff()
{
pumpOn
=
false;
myDevice.clearOperate();
}
public
synchronized
void
start()
{
pumpOperational
=
true;
if(pumpOn)
myDevice.setOperate();
}
public
synchronized
void
stop()
{
myDevice.clearOperate();
pumpOperational
=
false;
}
boolean
pumpOn;
boolean
pumpOperational;
DeviceRegister
myDevice;
final
long
csrBaseAddress
=
01300;
}
The structure of the initialization phase is shown below. The MineControl class extends the
Ravenscar-Java Initializer real-time thread class. It sets up the no-heap real-time threads and
asynchronous
event
handlers.
import
ravenscar.*;
public
class
MineControl
extends
Initializer
{
//
Priority
settings.
public
final
int
CH4_PRIORITY
=
10;
//
similarly
for
other
sensors
public
final
int
HLW_HANDLER
=
6;
public
final
int
MOTOR
=
11;
//
Arrival
times.
public
final
RelativeTime
CH4_PERIOD
=
new
RelativeTime
(800,0);
public
final
RelativeTime
HLW_ARRIVAL
=
new
RelativeTime
(6000,0);
//
Similarly
for
other
schedulable
objects.
//
Interrupt
happening.
public
final
String
HW_HAPPENING
=
"HW_INTERRUPT";
public
final
int
INIT_TIME
=
500;
//
Allow
0.5
seconds
to
initialize.
public
AbsoluteTime
epoch;
public
void
run()
{
epoch
=
new
AbsoluteTime(
Clock.getRealtimeClock().getTime());
epoch.set(epoch.getMilliseconds()
+
INIT_TIME,
0);
PumpController
pump
=
new
PumpController();
MonitorControl.setMonitorControl(pump,
PriorityCeilingEmulation.instance(MOTOR));

PriorityParameters
ch4Priority
=
new
PriorityParameters(CH4_PRIORITY);
PeriodicParameters
ch4Period
=
new
PeriodicParameters(epoch,
CH4_PERIOD);
Ch4SensorFunction
ch4Function
=
new
Ch4SensorFunction(pump);
PeriodicThread
ch4Sensor
=
new
PeriodicThread(
ch4Priority,
ch4Period,
ch4Function);
//
Similarly
for
other
sensors.
PriorityParameters
hlwPriority
=
new
PriorityParameters
(HLW_HANDLER);
LWInterruptHandler
IwHandler
=
new
LWInterruptHandler(pump);
SporadicEventHandler
Iw
=
new
SporadicEventHandler(hlwPriority,
new
SporadicParameters(HLW_ARRIVAL,1),
IwHandler);
SporadicInterrupt
IwInterrupt
=
new
SporadicInterrupt(
lw,LW_HAPPENING);
//
Similarly
for
hw
interrupt.
ch4Sensor.start
();
//
Start
other
periodic
threads.
}
public
static
void
main(String
[]
args)
{
Initializer
init
=
new
MineControl
();
init.start();
}
}
This is because the reading will be initiated at the end of one period so that data will be available at
the start of the next.
[3]

17.6 Summary
Java's combination of object-oriented programming features, its use of garbage collection and its poor
support for real-time multithreading are all seen as particular impediments to using the language for
implementing high-integrity systems. The RTSJ has introduced many new features that help address
the real-time problems. However, the expressive power of these features means that very complex
programming models can be created, necessitating complexity in the supporting real-time virtual
machine. Consequently, Java, with the real-time extensions as they stand, is too complex for
confident use in high-integrity systems.
This chapter has discussed a profile of Java (Ravenscar-Java) and the RTSJ that is in line with the
J2ME architecture. The goal of the profile is to support the construction of analyzable real-time Java
programs that can be hosted on top of a small, predictable real-time virtual machine.

1001

Chapter 18: Conclusions


Overview
Introduction and chapter structure
Although there is little doubt that the Java language has been immensely successful in a wide range
of application areas, it has yet to establish itself completely in the real-time and embedded markets.
This market is huge and growing all the time. It has been estimated that 100 time more processors
are destined for embedded systems than for the desktop (Eggermont, 2002). These systems are
mainly small (for example, mobile phones) but can sometimes be extremely large (for example, air
traffic control systems). For small embedded applications, sequential languages like C and C++ reign
supreme. For the larger real-time high integrity systems, Ada is still important.
The introduction of a Real-Time Specification for Java could dramatically alter the status quo. The
provision of real-time programming abstractions along with the promise of a predictable real-time Java
Virtual Machine has the potential to add fuel to the already raging Java fire. However, there are still
obstacles to be overcome before Java can replace its main competitors in these important application
areas. This chapter reviews some of the challenges facing the real-time Java community over the next
few years. Meeting these challenges will allow the language to compete with the currently preferred
implementation technologies. The main challenges are in the following areas:
Specification to produce a consistent and unambiguous Real-Time Specification for Java
along with well-defined profiles for particular real-time application domains;
Implementation to generate efficient implementations of real-time virtual machines (both
open source and proprietary ones) for the full specification and the profiles;
Maintaining Momentum to stimulate evolution of the specification in a controlled and
sustained manner to add new functionality and to address new architectures.
Concurrency is an integral part of most real-time embedded systems. Here, progress has been made
with the introduction of Java 1.5. The revamping of the Java Memory Model allows more precise
semantics to be given to concurrent Java programs. The provision of a full set of concurrency utilities
should ease the difficult task of constructing correct multithreaded programs.

18.1 Specification Challenges


Developing real-time extensions to the Java platform must have been a daunting task for the RealTime for Java Expert Group when it started its work in late 1998. It is a credit to the group that they
have managed to change people's expectations on the feasibility of achieving "real-time Java". Before
their work, the phrase "real-time Java" was considered by many to be an oxymoron. Now the real-time
community argues over issues such as whether no-heap real-time threads are really necessary or
whether real-time garbage collection combined with static analysis techniques can provide predictable
response times in a hard real-time environment. There is little doubt that the real-time landscape has
been irrevocably altered in the last five years.
Specification problems and inconsistencies
The Real-Time Specification for Java, however, is not without its problems. A preliminary version was
released in June 2000 in parallel with the development of a "reference implementation" (RI).
Inevitably, the completion of the RI showed up errors and inconsistencies in the specification. Many of
these have been removed in the 1.0.1 version that was released in August 2004 (Belliardi et al., 2004)
[1]
. However, some outstanding issues whose resolution may require more significant changes have
been addressed in this book and are likely to be addressed in a 1.1 version. These issues are outlined
below.
Schedulable objects. The RTSJ has made a good attempt to generalize real-time activities away from
real-time threads toward the notion of schedulable objects. In the current specification, both real-time
threads and asynchronous event handlers are considered schedulable objects. Unfortunately, the
operations that can be performed on a schedulable object are not consistently defined. For example,
a schedulable object can create and enter into one or more scoped memory areas. The methods for
manipulating the resulting scoped memory stack can be found partly in the Realtime Thread class
and partly in the Async Event Handler class. Ideally, all operations associated with schedulable
objects should be defined either in the Schedulable interface or in the class defining the associated
functionality. In this example, the methods would be better defined either in the Schedulable

interface or in the Memory Area class.


Aperiodic and sporadic real-time threads. Although the RTSJ supports Aperiodic-Parameters
and Sporadic Parameters they can only successfully be used with asynchronous event handlers.
There is no notion of a release event for an aperiodic (or sporadic) thread and consequently it is
difficult to see how an implementation can detect deadline miss or cost overrun. The resolution of this
problem is tied closely to the resolution of the following issue.
The WaitForNextPeriod method. This method is defined in the Realtime-Thread class.
However, it is only applicable to real-time threads with periodic release parameters. Ideally, the
RealtimeThread class should contain a waitForNext-Release method rather than a
waitForNextPeriod method. A release method would also be needed. For real-time threads with
periodic parameters, this method would be called by the implementation (although to be consistent
with periodic event, any schedulable object would also be able to call it). This approach would also
solve the previous problem with aperiodic threads, and provide a level of consistency between
asynchronous event handlers and real-time threads (particularly in their approach to cost enforcement
and deadline monitoring).
Profiles
Chapter 17 has already commented on the need to consider profiles of RTSJ in the context of J2ME
and, in particular, to produce a profile for use in high-integrity (and possibly safety-critical) systems.
The Ravenscar-Java profile is perhaps the first step along this road. At the time of writing (June,
2004). the Open Group is in the process of creating a Java Specification Request to address this
important application domain.
[1]

This book is conformant to that specification.

18.2 Implementation Challenges


One of the key and immediate challenges facing the real-time Java community is to produce
predictable and efficient implementations of the RTSJ. Three areas give particular cause for concern.
Memory management. The RTSJ has established a new memory management model (via the
introduction of memory areas) to facilitate more predictable memory allocation and deallocation. The
result is that there are assignment rules that must be obeyed by the programmer and that,
consequently, must be checked by the implementation. Furthermore, the ability to nest memory areas
means that illegal nestings must be prohibited. While it is clear that static analysis of programs can
eliminate many of the run-time checks, this requires special RTSJ-aware compilers or tools. The
availability of these, along with efficient run-time implementations of the overall model, may well
determine the eventual impact and take up of the RTSJ.
Asynchronous Transfer of Control. Introducing facilities for the management of ATC into Java was
always going to be controversial. However, there is an undeniable realtime application requirement for
such a facility. It is a major challenge to keep the resulting overheads in the JVM small and
predictable, and to ensure that code not using this facility suffers minimal impact.
Asynchronous Event Handling. The goal for asynchronous event handlers is to have a lightweight
concurrency mechanism. Some implementations will, however, simply map an event handler to a realtime thread, and the original motivations for event handlers will be lost. It is a major challenge to
provide effective implementations that can cope with heap-using and no-heap handlers, blocking and
nonblocking handlers, daemon and nondaemon handlers, multiple schedulers, cost enforcement and
deadline monitoring.

18.3 Maintaining Momentum


With the introduction of any new technology, there is a tension between producing a stable standard
base that users can depend on, and providing a dynamic product that continues to evolve and
address new application needs. So far, Java has caught the imagination of the user community,
produced stable releases and maintained momentum for its evolution. If the RTSJ is to survive, it is
important that it keeps pace with more general Java development and also that it develops its own
momentum. Two areas can be identified to help produce this momentum.

1003

Increased functionality. Although the RTSJ provides a framework within which implementors can
provide increased functionality, it is inevitable that there will be a need to standardize on the different
approaches. The following topics can be recognized.
New standard schedulers Currently only a fixed priority scheduler has been defined, other
schedulers such as earliest-deadline-first or value-based schedulers are needed.
Multiple schedulers While the RTSJ does not rule out multiple schedulers, there is little in
the specification that addresses the problems they introduce.
Multiple criticalities The notion of importance parameters has been introduced as a
subclass of scheduling parameters. However, there is no support for, say, executing safetycritical and non-safety-critical schedulable objects within the same real-time virtual machine
(except via the NoHeapRealtimeThread class). Better support for appropriate temporal
and spatial fire walls is needed. Some early work has now begun in this area (Cai and
Wellings, 2004), inspired by the current work on the Application Isolation API Specification
(Java Community Process, JSR 121, 2001).
Multiple clocks Currently only the real-time clock is supported. There is a need for other
clocks such as one that measures the execution time consumed by a schedulable object.
Alternative interrupt handling models currently interrupt handlers are viewed as
schedulable objects. For many systems, the overheads introduced by this model are
prohibitive. Alternative models, therefore, need to be introduced.
Real-time concurrency utilities concurrency utilities that have predictable and analyzable
timing properties are needed (probably based on the ones which have now been
incorporated in Java 1.5). For example, a reusable event with parameter class is needed,
along the lines outlined in Section 11.8. Furthermore, there is now some overlap between
the facilities proposed by Java 1.5 and the RTSJ (for example, in the area of high-resolution
time types). There is a need to remove any duplicate functionality.
Multiprocessor and distributed systems. Although the RTSJ attempts not to preclude multiprocessor
implementations, it provides no direct support. Furthermore, little, if any, consideration has been given
to the RTSJ in a distributed real-time environment. The latter is beginning to be addressed in JSR 50
(Java Community Process, JSR 50, 2000) but as yet no definitive specification has been produced
although some initial ideas have been published (Wellings, Clark, Jenson, and Wells, 2002). A similar
activity needs to be started on multiprocessor systems.

18.4 Finally
For any new technology to be accepted, it is essential to have supporting material to instruct users on
how to apply that technology. Again, this is an area in which Java has excelled. There are many
excellent books that teach all aspects of Java from basic introductions to programming through to the
application of Java to large-scale enterprises. It is hoped that this book can provide a valuable
addition to the literature on Concurrent and Real-time Programming in Java.

Appendix: Java Class and Interface Specifications


This appendix summarizes the main classes and interfaces used in this book. Only checked
exceptions are shown in the throw clauses.

A.1
package
public

AbsoluteTime
class

public
public

javax.realtime;
extends
HighResolutionTime
{
//
constructors
public
AbsoluteTime();
public
AbsoluteTime(AbsoluteTime
time);
AbsoluteTime[1](AbsoluteTime
time,
Clock
clock);
public
AbsoluteTime[1](Clock
clock);
public
AbsoluteTime(java.util.Date
date);
AbsoluteTime[1](java.util.Date
date,
Clock
clock);
AbsoluteTime

millis,
int
nanos);
int
nanos,
Clock
clock);
//
methods
public
AbsoluteTime
absolute(Clock
clock);
public AbsoluteTime absolute(Clock clock, AbsoluteTime destination);
public
AbsoluteTime
add(long
millis,
int
nanos);
public
AbsoluteTime
add(long
millis,
int
nanos,
AbsoluteTime destination);
public
AbsoluteTime
add(RelativeTime
time);
public
AbsoluteTime
add(RelativeTime
time,
AbsoluteTime destination);
public
java.util.Date
getDate();
public
RelativeTime
relative(Clock
clock);
public
RelativeTime
relative(Clock
clock,
RelativeTime destination);
public
void
set(java.util.Date
date);
public
RelativeTime
subtract(AbsoluteTime
time);
public
RelativeTime
subtract(AbsoluteTime
time,
RelativeTime destination);
public
AbsoluteTime
subtract(RelativeTime
time);
public
AbsoluteTime
subtract(RelativeTime
time,
AbsoluteTime destination);
public
String
toString();
public

}
[1]

public
AbsoluteTime(long
AbsoluteTime[1](long
millis,

Added at version 1.0.1 of the RTSJ

A.2

AperiodicParameters

package
public

javax.realtime;
extends
ReleaseParameters
{
//
fields
public
static
final
string
arrivalTimeQueueOverflowExcept[2];
public
static
final
string
arrivalTimeQueueOverflowIgnore[2];
public
static
final
string
arrivalTimeQueueOverflowReplace[2];
public
static
final
string
arrivalTimeQueueOverflowSave[2];
//
constructors
public
AperiodicParameters[1]();
public
AperiodicParameters(RelativeTime
cost,
RelativeTime deadline, AsyncEventHandler overrunHandler,
AsyncEventHandler
missHandler);
//
The
following
constructor
may
be
added
at
Version
1.1
protected
AperiodicParameters(RelativeTime
cost,
RelativeTime deadline, RelativeTime blockingTerm,
AsyncEventHandler
overrunHandler,
AsyncEventHandler
missHandler);
//
methods
public
String
getArrivalTimeQueueOverflowBehaviour[1]();
public
int
getInitialArrivalTimeQueueLength[1]();
public
void
setArrivalTimeQueueOverflowBehaviour([1]String);
public
boolean
setIfFeasible(RelativeTime
cost,
RelativeTime deadline);
public
void
setInitialArrivalTimeQueueLength[1](int
initial);
class

AperiodicParameters

These fields and methods have been moved from the SporadicParameters class at verson 1.0.1
of the RTSJ.
[2]

A.3
package
public

ArrivalTimeQueueOverflowException
javax.realtime;
ArrivalTimeQueueOverflowException
extends
RuntimeException
{
//
constructors
public
ArrivalTimeQueueOverflowException();
ArrivalTimeQueueOverflowException(String
description);

class

public

1005

A.4

AsyncEvent

package
public

javax.realtime;
class
AsyncEvent
{
//
constructors
public
AsyncEvent();
//
methods
public
void
addHandler(AsyncEventHandler
handler);
public
void
bindTo
(String
happening);
public
ReleaseParameters
createReleaseParameters();
public
void
fire();
public
boolean
handledBy(AsyncEventHandler
handler);
public
void
removeHandler(AsyncEventHandler
handler);
public
void
setHandler(AsyncEventHandler
handler);
public
void
unbindTo(String
happening);

A.5

AsyncEventHandler

package
public

javax.realtime;
Schedulable
{
//
constructors
public
AsyncEventHandler();
public
AsyncEventHandler(boolean
nonheap);
public
AsyncEventHandler(boolean
nonheap,
Runnable
logic);
public
AsyncEventHandler(Runnable
logic);
public
AsyncEventHandler(SchedulingParameters
scheduling,
ReleaseParameters release, MemoryParameters memory,
MemoryArea area, ProcessingGroupParameters group,
boolean
nonheap);
public
AsyncEventHandler(SchedulingParameters
scheduling,
ReleaseParameters release, MemoryParameters memory,
MemoryArea area, ProcessingGroupParameters group,
boolean
nonheap,
Runnable
logic);
public
AsyncEventHandler(SchedulingParameters
scheduling,
ReleaseParameters release, MemoryParameters memory,
MemoryArea area, ProcessingGroupParameters group,
Runnable
logic);
//
methods
public
boolean
addIfFeasibility();
public
boolean
addToFeasibility();
protected
int
getAndClearPendingFireCount();
protected
int
getAndDecrementPendingFireCount();
protected
int
getAndIncrementPendingFireCount();
public
MemoryArea
getMemoryArea();
public
MemoryParameters
getMemoryParameters();
protected
int
getPendingFireCount();
public
ProcessingGroupParameters
getProcessingGroupParameters();
public
ReleaseParameters
getReleaseParameters();
public
Scheduler
getScheduler();
public
SchedulingParameters
getSchedulingParameters();
public
void
handleAsyncEvent();
public
final
boolean
isDaemon[1]();
public
boolean
removeFromFeasibility();
public
final
void
run();
public
final
void
setDaemon[1](boolean
on);
public
boolean
setIfFeasible(ReleaseParameters
release,
MemoryParameters memory);
public
boolean
setIfFeasible(ReleaseParameters
release,
MemoryParameters memory, ProcessingGroupParameters group);
public
boolean
setIfFeasible(ReleaseParameters
release,
ProcessingGroupParameters group);
public
boolean
setIfFeasible(SchedulingParameters
sched,
ReleaseParameters release,
MemoryParameters memory);
public
boolean
setIfFeasible(SchedulingParameters
sched,
class

AsyncEventHandler

implements

ReleaseParameters release, MemoryParameters memory,


ProcessingGroupParameters group);
public
void
setMemoryParameters(MemoryParameters
memory);
public
boolean
setMemoryParametersIfFeasible(
MemoryParameters memory);
public
void
setProcessingGroupParameters(
ProcessingGroupParameters group);
public
boolean
setProcessingGroupParametersIfFeasible(
ProcessingGroupParameters group);
public
void
setReleaseParameters(ReleaseParameters
release);
public
boolean
setReleaseParametersIfFeasible(
ReleaseParameters release);
public
void
setScheduler(Scheduler
scheduler);
public
void
setScheduler(Scheduler
scheduler,
SchedulingParameters scheduling, ReleaseParameters release,
MemoryParameters memory, ProcessingGroupParameters group);
public
void
setSchedulingParameters(
SchedulingParameters scheduling);
public
boolean
setSchedulingParametersIfFeasible(
SchedulingParameters
scheduling);
}

A.6

AsynchronouslyInterruptedException

package
public

javax.realtime;
AsynchronouslyInterruptedException
extends InterruptedException {
//
constructors
public
AsynchronouslyInterruptedException();
//
methods
public
boolean
clear[1]();
public
boolean
disable();
public
boolean
doInterruptible
(Interruptible
logic);
public
boolean
enable();
public
boolean
fire();
public
static
AsynchronouslyInterruptedException
getGeneric();
public
boolean
happened[3](boolean
propagate);
public
boolean
isEnabled();
public
static
void
propagate[3]();
class

}
[3]

Deprecated at version 1.0.1 of the RTSJ.

A.7
package
public

BoundAsyncEventHandler
class
public

javax.realtime;
AsyncEventHandler
{
//
constructors
public
BoundAsyncEventHandler();
BoundAsyncEventHandler(SchedulingParameters
scheduling,
ReleaseParameters release, MemoryParameters memory,
MemoryArea area, ProcessingGroupParameters group,
boolean
nonheap,
Runnable
logic);
BoundAsyncEventHandler

A.8
package
public

extends

CeilingViolationException
class
public
public

javax.realtime;
CeilingViolationException[1]
extends IllegalThreadStateException {
//
methods
int
getCallerPriority();
int
getCeiling();

1007

A.9

Clock

package
public

}
[4]

javax.realtime;
abstract
class
Clock
{
//
constructors
public
Clock();
//
methods
public
abstract
RelativeTime
getEpochOffset[1]();
public
static
Clock
getRealtimeClock();
public
abstract
RelativeTime
getResolution();
public
abstract
AbsoluteTime
getTime();
public
abstract
AbsoluteTime
getTime[4](AbsoluteTime
time);
public
abstract
void
setResolution(RelativeTime
resolution);

In version 1.0. of the RTSJ, this method returned void.

A.10

DuplicateFilterException

package
public

javax.realtime;
DuplicateFilterException
extends
Exception
{
//
constructors
public
DuplicateFilterException();
DuplicateFilterException(String
description);
class

public
}

A.11
package
public

GarbageCollector
abstract

public

abstract

javax.realtime;
GarbageCollector
{
//
constructors
public
GarbageCollector[3]();
//
methods
RelativeTime
getPreemptionLatency();
class

A.12
package
public
}

HeapMemory
final

class
public

A.13
package
public

HeapMemory
static

extends
//
HeapMemory

javax.realtime;
MemoryArea
{
methods
instance();

HighResolutionTime
javax.realtime;
class
HighResolutionTime
implements
Comparable,
Cloneable
{
//
methods
public
abstract
AbsoluteTime
absolute(Clock
clock);
public
abstract
AbsoluteTime
absolute(Clock
clock,
AbsoluteTime destination);
public
Object
clone[1]();
public
int
compareTo(HighResolutionTime
time);
public
int
compareTo(Object
object);
public
boolean
equals(HighResolutionTime
time);
public
boolean
equals(Object
object);
public
Clock
getClock[1]();
public
final
long
getMilliseconds();
public
final
int
getNanoseconds();
public
int
hashCode();
public
abstract
RelativeTime
relative(Clock
clock);
public
abstract
RelativeTime
relative(Clock
clock,
abstract

RelativeTime destination);
public
void
set[5](HighResolutionTime
time);
public
void
set(long
millis);
public
void
set(long
millis,
int
nanos);
public
static
void
waitForObject(Object
target,
HighResolutionTime time) throws InterruptedException;
}
[5]

The semantics of this method has changed between versions 1.0. and 1.0.1 of the RTSJ.

A.14

IllegalAssignmentError

package
public

javax.realtime;
IllegalAssignmentError
extends
Error
{
//
constructors
public
IllegalAssignmentError();
IllegalAssignmentError(String
description);
class

public

A.15
package
public

ImmortalMemory
final

class

public

ImmortalMemory

//
ImmortalMemory

static

A.16
package
public

extends

javax.realtime;
MemoryArea
{
methods
instance();

ImmortalPhysicalMemory

javax.realtime;
ImmortalPhysicalMemory
extends
MemoryArea
{
//
constructors
public
ImmortalPhysicalMemory(Object
type,
long
size);
public ImmortalPhysicalMemory(Object type, long base, long size);
public ImmortalPhysicalMemory(Object type, long base, long size,
Runnable logic);
public
ImmortalPhysicalMemory(Object
type,
long
size,
Runnable logic);
public
ImmortalPhysicalMemory(Object
type,
long
base,
SizeEstimator size);
public
ImmortalPhysicalMemory(Object
type,
long
base,
SizeEstimator size, Runnable logic);
public
ImmortalPhysicalMemory(Object
type,
SizeEstimator
size);
public
ImmortalPhysicalMemory(Object
type,
SizeEstimator
size,
Runnable logic);
class

A.17
package
public

ImportanceParameters
javax.realtime;
extends
PriorityParameters
{
//
constructors
public
ImportanceParameters(int
priority,
int
importance);
//
methods
public
int
getImportance();
public
void
setImportance(int
importance);
public
String
toString();
class

ImportanceParameters

A.18
package
public

InaccessibleAreaException
javax.realtime;
InaccessibleAreaException
extends
RuntimeException
{
//
constructors
public
InaccessibleAreaException();
public
InaccessibleAreaException(String
description);

class

1009

A.19

Java.lang.InheritableThreadLocal

package
public

java.lang;
InheritableThreadLocal
extends
ThreadLocal
{
public
InheritableThreadLocal();
protected
Object
childValue(Object
parentValue);

class

A.20

Interruptible

package
public
public

javax.realtime;
interface
Interruptible
{
public
void
interruptAction(
AsynchronouslyInterruptedException exception);
void
run(AsynchronouslyInterruptedException
exception)
throws
AsynchronouslyInterruptedException;

A.21

LTMemory

package
public

javax.realtime;
class
LTMemory
extends
ScopedMemory
{
//
constructors
public
LTMemory(long
initial,
long
maximum);
public
LTMemory(long
initial,
long
maximum,
Runnable
logic);
public
LTMemory[1](long
size);
//
in
bytes
public
LTMemory[1](long
size,
Runnable
logic);
public
LTMemory(SizeEstimator
initial,
SizeEstimator
maximum);
public
LTMemory(SizeEstimator
initial,
SizeEstimator
maximum,
Runnable
logic);
public
LTMemory[1](SizeEstimator
size);
public
LTMemory[1](SizeEstimator
size,
Runnable
logic);
//
methods
public
String
toString();

A.22

LTPhysicalMemory

package
public

javax.realtime;
ScopedMemory
{
//
constructors
public
LTPhysicalMemory(Object
type,
long
size);
public
LTPhysicalMemory(Object
type,
long
base,
long
size);
public
LTPhysicalMemory(Object
type,
long
base,
long
size,
Runnable logic);
public
LTPhysicalMemory(Object
type,
long
size,
Runnable logic);
public
LTPhysicalMemory(Object
type,
long
base,
SizeEstimator size);
public
LTPhysicalMemory(Object
type,
long
base,
SizeEstimator size, Runnable logic);
public
LTPhysicalMemory(Object
type,
SizeEstimator
size);
public
LTPhysicalMemory(Object
type,
SizeEstimator
size,
Runnable logic);
public
String
toString();
class

LTPhysicalMemory

extends

A.23
package
public

MemoryAccessError
class
public

MemoryAccessError
//
public
MemoryAccessError

A.24
package
public

javax.realtime;
Error
{
constructors
MemoryAccessError();
(String
description);

extends

MemoryArea
abstract

class

javax.realtime;
MemoryArea
{

//
constructors
protected
MemoryArea(long
size);
protected
MemoryArea(long
size,
Runnable
logic);
protected
MemoryArea(SizeEstimator
size);
protected
MemoryArea(SizeEstimator
size,
Runnable
logic);
//
methods
public
void
enter();
public
void
enter(Runnable
logic);
public
void
executeInArea(Runnable
logic);
public
static
MemoryArea
getMemoryArea(Object
object);
public
long
memoryConsumed();
public
long
memoryRemaining();
public
Object
newArray(Class
type,
int
number);
public
Object
newInstance(Class
type)
throws IllegalAccessException, InstantiationException;
public
Object
newInstance(reflect.Constructor
c,
Object [] args)
throws IllegalAccessException, InstantiationException,
reflect.InvocationTargetException;
public
long
size();
}

A.25
package
public

MemoryInUseException
class

javax.realtime;
RuntimeException
{
//
constructors
public
MemoryInUseException();
MemoryInUseException(String
description);

MemoryInUseException

public

extends

A.26
package
public

MemoryParameters

javax.realtime;
Cloneable
{
fields
public
static
long
NO_MAX;
//
constructors
public MemoryParameters (long maxMemoryArea, long maxImmortal);
public
MemoryParameters(long
maxMemoryArea,
long
maxImmortal,
long allocationRate);
//
methods
public
Object
clone[1]();
public
long
getAllocationRate();
public
long
getMaxImmortal();
public
long
getMaxMemoryArea();
public
void
setAllocationRate(long
rate);
public
boolean
setAllocationRateIfFeasible(long
rate);
public
boolean
setMaxImmortalIfFeasible(long
maximum);
public
boolean
setMaxMemoryAreaIfFeasible(long
maximum);
class

MemoryParameters

implements
//
final

A.27
package
public

MemoryScopeException
class

javax.realtime;
RuntimeException
{
//
constructors
public
MemoryScopeException();
MemoryScopeException(String
description);

MemoryScopeException

public

extends

A.28

MemoryTypeConflictException
1011

package
public
class

javax.realtime;
MemoryTypeConflictException
extends
RuntimeException
{
//
constructors
public
MemoryTypeConflictException();
public
MemoryTypeConflictException(String
description);

A.29

MITViolationException

package
public

class

javax.realtime;
RuntimeException
{
//
constructors
public
MITViolationException();
MITViolationException(String
description);

MITViolationException

public

extends

A.30

MonitorControl

package
public

javax.realtime;
MonitorControl
{
//
constructors
protected
MonitorControl();
//
methods
static
MonitorControl
getMonitorControl();
static
MonitorControl
getMonitorControl(
Object monitor);
static
MonitorControl
setMonitorControl[4](
MonitorControl policy);
MonitorControl
setMonitorControl[4](Object
monitor,
MonitorControl policy);

abstract

public
public
public
public

static

class

A.31

NoHeapRealtimeThread

package
public

class
public
public
public

javax.realtime;
RealtimeThread
{
//
constructors
NoHeapRealtimeThread(SchedulingParameters
scheduling,
MemoryArea area);
NoHeapRealtimeThread(SchedulingParameters
scheduling,
Releaseparmeters release, MemoryArea area);
NoHeapRealtimeThread(SchedulingParameters
scheduling,
ReleaseParameters release, MemoryParameters memory,
MemoryArea area, ProcessingGroupParameters group,
Runnable
logic);
//
methods
public
void
start();
NoHeapRealtimeThread

extends

A.32

java.lang.Object

package
public

java.lang;
{
//
constructors
public
Object();
//
methods
protected
Object
clone()
throws
CloneNotSupportedException;
public
boolean
equals(Object
obj;
protected
void
finalize()
throws
Throwable;
public
int
hashCode();
public
final
Class
getClass();
public
final
void
notify();
public
final
void
notifyAll(;
public
String
toString();
public
final
void
wait()
throws
InterruptedException;
public
final
void
wait(long
timeout)
throws
InterruptedException;
public
final
void
wait(long
timeout,
int
nanos)
throws
InterruptedException;

class

Object

A.33

OffsetOutOfBoundsException

package
public

javax.realtime;
OffsetOutOfBoundsException
extends
RuntimeException
{
//
constructors
public
OffsetOutOfBoundsException();
public
OffsetOutOfBoundsException(String
description);

class

A.34

OneShotTimer

package
public

javax.realtime;
Timer
{
//
constructors
public
OneShotTimer(HighResolutionTime
fireTime,
AsyncEventHandler handler);
OneShotTimer(HighResolutionTime
fireTime,
Clock
clock,
AsyncEventHandler handler);

class

public

OneShotTimer

extends

A.35

PeriodicParameters

package
public

//

//

javax.realtime;
extends
ReleaseParameters
{
//
constructors
public
PeriodicParameters[1](HighResolutionTime
start
RelativeTime
period);
public
PeriodicParameters(HighResolutionTime
start
RelativeTime period, RelativeTime cost,
RelativeTime deadline, AsyncEventHandler overrunHandler,
AsyncEventHandler
missHandler);
public
PeriodicParameters[1]
(RelativeTime
period);
The
following
constructor
may
be
added
in
Version
1.1
public
PeriodicParameters(HighResolutionTime
start
RelativeTime period, RelativeTime cost,
RelativeTime deadline, RelativeTime blockingTerm,
AsyncEventHandler
overrunHandler,
AsyncEventHandler
missHandler);
//
methods
public
RelativeTime
getPeriod();
public
HighResolutionTime
getStart();
public
boolean
setIfFeasible(RelativeTime
period,
RelativeTime cost, RelativeTime deadline);
public
void
setPeriod(RelativeTime
period);
public
void
setStart(HighResolutionTime
start);
The
following
methods
may
be
added
at
Version
1.1
public
boolean
setIfFeasible(RelativeTime
period,
RelativeTime cost, RelativeTime deadline,
RelativeTime blockingTerm);
class

PeriodicParameters

A.36
package
public

PeriodicTimer
javax.realtime;
Timer
{
//
constructors
public
PeriodicTimer(HighResolutionTime
start,
RelativeTime interval, AsyncEventHandler handler);
public
PeriodicTimer(HighResolutionTime
start,
RelativeTime interval, Clock clock,
AsyncEventHandler
handler);
//
methods
public
ReleaseParameters
createReleaseParameters();
public
AbsoluteTime
getFireTime();
public
RelativeTime
getInterval();
public
void
setInterval(RelativeTime
interval);
class

PeriodicTimer

1013

extends

A.37

PhysicalMemoryManager

package
public

javax.realtime;
PhysicalMemoryManager
{
Example
fields
public
final
Object
ALIGNED[6];
public
final
Object
BYTESWAP[6];
public
final
Object
DMA[6];
public
final
Object
IO_PAGE[1],[6];
public
final
Object
SHARED[6];
//
methods
public
static
boolean
isRemovable(long
base,
long
size);
public
static
boolean
isRemoved(long
base,
long
size);
public
static
void
onInsertion[1](long
base,
long
size,
AsyncEvent ae);
public
static
void
onInsertion[3](long
base,
long
size,
AsyncEventHandler aeh);
public
static
void
onRemoval[1](long
base,
long
size,
AsyncEvent ae);
public
static
void
onRemoval[3](long
base,
long
size,
AsyncEventHandler aeh);
public
static
final
void
registerFilter(Object
name,
PhysicalMemoryTypeFilter filter)
throws
DuplicateFilterException;
public
static
final
void
removeFilter(Object
name);
public
static
void
unregisterInsertionEvent[1](long
base,
long size, AsyncEvent ae);
public
static
void
unregisterRemovalEvent[1](long
base,
long size, AsyncEvent ae);
final

class
//
static
static
static
static
static

}
[6]

In version 1.0. of the RTSJ, this field was of type String.

A.38

PhysicalMemoryTypeFilter

package
public

javax.realtime;
interface
PhysicalMemoryTypeFilter
{
public
boolean
contains(long
base,
long
size);
public
long
find(long
base,
long
size);
public
int
getVMAttributes();
public
int
getVMFlags();
public
void
initialize(long
base,
long
vBase,
long
size);
public
boolean
isPresent(long
base,
long
size);
public
boolean
isRemovable();
public
static
void
onInsertion[1](long
base,
long
size,
AsyncEvent aeh);
public
static
void
onInsertion[3](long
base,
long
size,
AsyncEventHandler aeh);
public
static
void
onRemoval[1](long
base,
long
size,
AsyncEvent aeh);
public
static
void
onRemoval[3](long
base,
long
size,
AsyncEventHandler aeh);
public static void unregisterInsertionEvent[1](long base, long size,
AsyncEvent aeh);
public static void unregisterRemovalEvent[1](long base, long size,
AsyncEvent aeh);
public
long
vFind(long
base,
long
size);

A.39

POSIXSignalHandler

package
public

final
public
public
public
public
public
public
public
public
public
public
public
public
public
public
public
public
public
public
public
public
public
public
public
public
public
public
public
public
public
public
public
public
public
public
public
public
public
public
public
public
public
public
public

javax.realtime;
POSIXSignalHandler
{
//
fields
static
final
int
SIGABRT;
static
final
int
SIGALRM;
static
final
int
SIGBUS;
static
final
int
SIGCANCEL[3];
static
final
int
SIGCHLD;
static
final
int
SIGCLD;
static
final
int
SIGCONT;
static
final
int
SIGEMPT;
static
final
int
SIGFPE;
static
final
int
SIGFREEZE[3];
static
final
int
SIGHUP;
static
final
int
SIGILL;
static
final
int
SIGINT;
static
final
int
SIGIO[3];
static
final
int
SIGIOT;
static
final
int
SIGKILL;
static
final
int
SIGLOST[3];
static
final
int
SIGLWP[3];
static
final
int
SIGPIPE;
static
final
int
SIGPOLL[3];
static
final
int
SIGPROF[3];
static
final
int
SIGPWR[3];
static
final
int
SIGQUIT;
static
final
int
SIGSEGV;
static
final
int
SIGSTOP;
static
final
int
SIGSYS;
static
final
int
SIGTERM;
static
final
int
SIGTHAW[3];
static
final
int
SIGTRAP;
static
final
int
SIGTSTP;
static
final
int
SIGTTIN;
static
final
int
SIGTTOU;
static
final
int
SIGURG[3];
static
final
int
SIGUSR1;
static
final
int
SIGUSR2;
static
final
int
SIGVTALRM[3];
static
final
int
SIGWAITING[3];
static
final
int
SIGWINCH[3];
static
final
int
SIGXCPU[3];
static
final
int
SIGXFSZ[3];
//
methods
static
void
addHandler(int
signal,
AsyncEventHandler handler);
static
void
removeHandler(int
signal,
AsyncEventHandler handler);
static
void
setHandler(int
signal,
AsyncEventHandler handler);
class

A.40
package
public

PriorityCeilingEmulation
javax.realtime;
MonitorControl
{
methods
public
getCeiling[1]();
public
int
getDefaultCeiling[2]();
public
static
int
getMaxCeiling[2]();
static PriorityCeilingEmulation instance[1] (int ceiling);}

class

public

PriorityCeilingEmulation

extends
//
int

A.41
package
public

PriorityInheritance
class

PriorityInheritance

1015

extends

javax.realtime;
MonitorControl
{

public

static

//
PriorityInheritance

methods
instance();

A.42

PriorityParameters

package
public

class

javax.realtime;
extends
SchedulingParameters
{
//
constructors
public
PriorityParameters(int
priority);
//
methods
public
int
getPriority();
public
void
setPriority(int
priority);
public
String
toString();
PriorityParameters

A.43

PriorityScheduler

package
public

javax.realtime;
Scheduler
{
fields
public
static
MAX_PRIORITY[3];
public
static
MIN_PRIORITY[1]
//
constructors
protected
PriorityScheduler();
//
methods
protected
boolean
addToFeasibility[1](Schedulable
schedulable);
public
void
fireSchedulable(Schedulable
schedulable);
public
int
getMaxPriority();
public
static
int
getMaxPriority(Thread
thread);
public
int
getMinPriority();
public
static
int
getMinPriority(Thread
thread);
public
int
getNormPriority();
public
static
int
getNormPriority(Thread
thread);
public
String
getPolicyName();
public
static
PriorityScheduler
instance();
public
boolean
isFeasible();
protected
boolean
removeFromFeasibility(Schedulable
schedulable);
public
boolean
setIfFeasible(Schedulable
schedulable,
ReleaseParameters release, MemoryParameters memory);
public
boolean
setIfFeasible(Schedulable
schedulable,
ReleaseParameters release, MemoryParameters memory,
ProcessingGroupParameters
group);
//
The
following
method
may
be
added
in
Version
1.1
public
boolean
setIfFeasible(Schedulable
schedulable,
PriorityParameters
priority,
ReleaseParameters release, MemoryParameters memory,
ProcessingGroupParameters
group);
class

PriorityScheduler

extends
//
int
int

A.44

Process

package
public

java.lang;
abstract
class
Process
{
//
constructors
public
Process();
//
methods
public
abstract
void
destroy
();
public
abstract
int
exitValue
();
public
abstract
java.io.InputStream
getErrorStream();
public
abstract
java.io.InputStream
getInputStream();
public
abstract
java.io.OutputStream
getOutputStream();
public
abstract
int
waitFor()
throws
InterruptedException;

A.45
package

ProcessingGroupParameters
javax.realtime;

public

class

ProcessingGroupParameters
implements
Cloneable{
//
constructors
public
ProcessingGroupParameters(HighResolutionTime
start,
RelativeTime
period,
RelativeTime
cost,
RelativeTime deadline, AsyncEventHandler overrunHandler,
AsyncEventHandler
missHandler);
//
The
following
constructor
may
be
added
in
Version
1.1
public
ProcessingGroupParameters(HighResolutionTime
start,
RelativeTime
period,
RelativeTime
cost,
RelativeTime blockingTerm, RelativeTime deadline,
AsyncEventHandler
overrunHandler,
AsyncEventHandler
missHandler);
//
methods
public
Object
clone[1]
();
public
RelativeTime
getCost();
public
AsyncEventHandler
getCostOverrunHandler();
public
RelativeTime
getDeadline();
public
AsyncEventHandler
getDeadlineMissHandler();
public
RelativeTime
getPeriod();
public
HighResolutionTime
getStart();
public
void
setCost(RelativeTime
cost);
public
void
setCostOverrunHandler(AsyncEventHandler
handler);
public
void
setDeadline(RelativeTime
deadline);
public
void
setDeadlineMissHandler(AsyncEventHandler
handler);
public
boolean
setIfFeasible(RelativeTime
period,
RelativeTime
cost,
RelativeTime
deadline,
public
void
setPeriod(RelativeTime
period);
public
void
setStart(HighResolutionTime
start);
//
The
following
methods
may
be
added
in
Version
1.1
public
RelativeTime
getBlockingTerm();
public
void
setBlockingTerm(RelativeTime
deadline);
public
boolean
setIfFeasible(RelativeTime
period,
RelativeTime
cost,
RelativeTime
blockingTerm
RelativeTime
deadline,

A.46

RationalTime

package
public
//

class
This

RationalTime
class
has
been

extends
deprecated

javax.realtime;
RelativeTime
{
at
Version
1.0.1

//
constructors
public
RationalTime
(int
frequency);
public RationalTime (int frequency, long millis, int nanos);
public
RationalTime(int
frequency,
RelativeTime
interval);
//
methods
public
AbsoluteTime
absolute(Clock
clock,
AbsoluteTime destination);
public
void
addInterarrivalTo(AbsoluteTime
destination);
public
int
getFrequency();
public
RelativeTime
getInterarrivalTime();
public
RelativeTime
getInterarrivalTime(
RelativeTime destination);
public
void
set(long
millis,
int
nanos);
public
void
setFrequency(int
frequency);

A.47

RawMemoryAccess

package
public

class

javax.realtime;
{
constructors
type,
long
size);
long
base,
long
size);

RawMemoryAccess

//
public
RawMemoryAccess(Object
public
RawMemoryAccess(Object
type,

1017

//
methods
public
byte
getByte(long
offset);
public
void
getBytes(long
offset,
byte[]
bytes,
int
low,
int number);
public
int
getInt(long
offset);
public void getInts (long offset, int[] ints, int low, int number);
public
long
getLong(long
offset);
public
void
getLongs(long
offset,
long[]
longs,
int
low,
int number);
public
long
getMappedAddress();
public
short
getShort(long
offset);
public void getShorts (long offset, short[] shorts, int low,
int number);
public
long
map();
public
long
map(long
base);
public
long
map(long
base,
long
size);
public
void
setByte(long
offset,
byte
value);
public
void
setBytes(long
offset,
byte[]
bytes,
int
low,
int number);
public
void
setInt(long
offset,
int
value);
public
void
setInts(long
offset,
int[]
ints,
int
low,
int number);
public
void
setLong(long
offset,
long
value);
public
void
setLongs(long
offset,
long[]
longs,
int
low,
int number);
public
void
setShort(long
offset,
short
value);
public
void
setShorts(long
offset,
short[]
shorts,
int
low,
int number;
public
void
unmap();

A.48

RawMemoryFloatAccess

package
public

javax.realtime;
RawMemoryAccess
{
//
constructors
public
RawMemoryFloatAccess(Object
type,
long
size);
public RawMemoryFloatAccess(Object type, long base, long size);
//
methods
public
double
getDouble(long
offset);
public
void
getDoubles(long
offset,
double[]
doubles,
int low, int number);
public
float
getFloat(long
offset);
public
void
getFloats(long
offset,
float[]
floats,
int
low,
int number);
public
void
setDouble(long
offset,
double
value);
public void setDoubles(long offset, double[] bytes, int low,
int number);
public
void
setFloat
(long
offset,
float
value);
public
void
setFloats(long
offset,
float[]
ints,
int
low,
int number);
class

RawMemoryFloatAccess

A.49

RealtimeSecurity

package
public

extends

javax.realtime;
RealtimeSecurity
{
//
constructors
public
RealtimeSecurity();
//
methods
public
void
checkAccessPhysical();
checkAccessPhysicalRange(long
base,
long
size);
public
void
checkAEHSetDaemon[1]();
public
void
checkSetFilter();
checkSetMonitorControl[1]
(MonitorControl
policy);
public
void
checkSetScheduler();
class

public

void

public

void

A.50
package
public

RealtimeSystem
javax.realtime;
RealtimeSystem
{
//
fields
public
static
final
byte
BIG_ENDIAN;
public
static
final
byte
BYTE_ORDER;
public
static
final
byte
LITTLE_ENDIAN;
//
methods
public
static
GarbageCollector
currentGC();
public
static
int
getConcurrentLocksUsed();
public
static
MonitorControl
getInitialMonitorControl[1]();
public
static
int
getMaximumConcurrentLocks();
public
static
RealtimeSecurity
getSecurityManager();
public
static
void
setMaximumConcurrentLocks(int
number);
public
static
void
setMaximumConcurrentLocks(int
number,
boolean hard);
public
static
void
setSecurityManager(
RealtimeSecurity manager);
class

A.51
package
public
{

RealtimeThread
class

RealtimeThread

extends

Thread

javax.realtime;
implements
Schedulable

//
constructors
public
RealtimeThread();
public
RealtimeThread(SchedulingParameters
scheduling);
public
RealtimeThread(SchedulingParameters
scheduling,
ReleaseParameters release);
public
RealtimeThread(SchedulingParameters
scheduling,
ReleaseParameters release, MemoryParameters memory,
MemoryArea area, ProcessingGroupParameters group,
Runnable
logic);
//
methods
public
boolean
addIfFeasibility();
public
boolean
addToFeasibility();
public
static
RealtimeThread
currentRealtimeThread();
public
void
deschedulePeriodic();
public
static
MemoryArea
getCurrentMemoryArea();
public
static
int
getInitialMemoryAreaIndex();
public
MemoryArea
getMemoryArea[1]();
public
static
int
getMemoryAreaStackDepth();
public
MemoryParameters
getMemoryParameters();
public
static
MemoryArea
getOuterMemoryArea(int
index);
public
ProcessingGroupParameters
getProcessingGroupParameters ();
public
ReleaseParameters
getReleaseParameters();
public
Scheduler
getScheduler();
public
SchedulingParameters
getSchedulingParameters();
public
void
interrupt();
public
boolean
removeFromFeasibility();
public
void
schedulePeriodic();
public
boolean
setIfFeasible(ReleaseParameters
release,
MemoryParameters memory);
public
boolean
set
IfFeasible(ReleaseParameters
release,
MemoryParameters memory,
ProcessingGroupParameters group);
public
boolean
setIfFeasible(ReleaseParameters
release,
ProcessingGroupParameters group);
public
boolean
setIfFeasible[1](SchedulingParameters
sched,
ReleaseParameters release, MemoryParameters memory);
public
boolean
setIfFeasible[1](SchedulingParameters
sched,
ReleaseParameters release, MemoryParameters memory,
ProcessingGroupParameters
group);

1019

public

void
public

setMemoryParameters(MemoryParameters
memory);
boolean
setMemoryParametersIfFeasible(
MemoryParameters memory);
public
void
setProcessingGroupParameters(
ProcessingGroupParameters group);
public
boolean
setProcessingGroupParametersIfFeasible(
ProcessingGroupParameters group);
public
void
setReleaseParameters
(ReleaseParameters
parameters);
public
boolean
setReleaseParametersIfFeasible(
ReleaseParameters release);
public
void
setScheduler
(Scheduler
scheduler);
public
void
setScheduler(Scheduler
scheduler,
SchedulingParameters scheduling, ReleaseParameters release,
MemoryParameters
memory,
ProcessingGroupParameters
group);
public
void
setSchedulingParameters(
SchedulingParameters scheduling);
public
void
setSchedulingParametersIfFeasible(
SchedulingParameters scheduling);
public static void sleep(Clock clock, HighResolutionTime time)
throws
InterruptedException;
public
static
void
sleep
(HighResolutionTime
time)
throws
InterruptedException;
public
void
start();
public
static
boolean
waitForNextPeriod[7]();
public
static
boolean
waitForNextPeriodInterruptible[1]()
throws
InterruptedException;
}
[7]

This method has been made static at version 1.0.1 of the RTSJ.

A.52

RelativeTime

package
public

javax.realtime;
class
RelativeTime
extends
HighResolutionTime
{
//
constructors
public
RelativeTime();
public
RelativeTime[1](Clock
clock);
public
RelativeTime(long
millis,
int
nanos);
public
RelativeTime[1](long
millis,
int
nanos,
Clock
clock);
public
RelativeTime(RelativeTime
time);
public
RelativeTime[1](RelativeTime
time,
Clock
clock);
//
methods
public
AbsoluteTime
absolute(Clock
clock);
public
AbsoluteTime
absolute(Clock
clock,
AbsoluteTime destination);
public
RelativeTime
add(long
millis,
int
nanos);
public
RelativeTime
add(long
millis,
int
nanos,
RelativeTime destination);
public
RelativeTime
add(RelativeTime
time);
public
RelativeTime
add(RelativeTime
time,
RelativeTime destination);
public
void
addInterarrivalTo[3]
(AbsoluteTime
destination);
public
RelativeTime
getInterarrivalTime[1]();
public
RelativeTime
getInterarrivalTime[1](
RelativeTime destination);
public
RelativeTime
relative(Clock
clock);
public
RelativeTine
relative(Clock
clock,
RelativeTime destination);
public
RelativeTime
subtract(RelativeTime
time);
public
RelativeTime
subtract(RelativeTime
time,
RelativeTime destination);
public
String
toString();

A.53
package
public

ReleaseParameters
class

ReleaseParameters
//

implements

javax.realtime;
Cloneable{
constructors

protected
ReleaseParameters();
ReleaseParameters(RelativeTime
cost,
deadline, AsyncEventHandler overrunHandler,
AsyncEventHandler
missHandler);
//
The
following
constructor
may
be
added
at
Version
1.1
protected
ReleaseParameters(RelativeTime
cost,
RelativeTime deadline, RelativeTime blockingTerm,
AsyncEventHandler
overrunHandler,
AsyncEventHandler
missHandler);
//
methods
public
Object
clone[1]();
public
RelativeTime
getCost();
public
AsyncEventHandler
getCostOverrunHandler();
public
RelativeTime
getDeadline();
public
AsyncEventHandler
getDeadlineMissHandler();
public
void
setCost(RelativeTime
cost);
public
void
setCostOverrunHandler(AsyncEventHandler
handler);
public
void
setDeadline(RelativeTime
deadline);
public
void
setDeadlineMissHandler(AsyncEventHandler
handler);
public
boolean
setIfFeasible(RelativeTime
cost,
RelativeTime deadline);
//
The
following
methods
may
be
added
at
Version
1.1
public
RelativeTime
getBlockingTerm();
public
void
setBlockingTerm(RelativeTime
deadline);
public
boolean
setIfFeasible(RelativeTime
cost,
RelativeTime deadline, RelativeTime blockingTerm);
protected
RelativeTime

A.54

ResourceLimitError

package
public

class
public

javax.realtime;
ResourceLimitError
extends
Error
{
//
constructors
public
ResourceLimitError()
ResourceLimitError(String
description)

A.55

java.lang.Runnable

package
public

interface
public

Runnable
void

java.lang;
{
run();

A.56

java.lang.Runtime

package
public

java.lang;
{
//
methods
public
void
addShutdownHook(Thread
hook);
public
int
availableProcessors();
public
Process
exec(String[]
cmdarray)
throws
IOException;
public
Process
exec(String
command)
throws
IOException;
public
Process
exec(String
command,
String[]
envp)
throws
IOException;
public
Process
exec(String[]
cmdarray,
String[]
envp)
throws
IOException;
public
Process
exec(String
cmd,
String[]
envp,
java.io.File dir) throws IOException;
public
Process
exec(String[]
command,
String[]
envp,
java.io.File dir) throws IOException;
public
void
exit(int
status);
public
long
freeMemory();
class

Runtime

1021

public
void
gc();
static
Runtime
getRuntime();
void
halt(int
status);
void
load(String
filename);
void
loadLibrary(String
libname);
public
long
maxMemory();
boolean
removeShutdownHook(Thread
hook);
public
void
runFinalizers();
public
long
totalMemory();
void
traceInstructions(boolean
on);
void
traceMethodCalls(boolean
on);

public
public
public
public
public
public
public

A.57

Schedulable

package
public

javax.realtime;
interface
Schedulable
extends
Runnable
{
public
boolean
addIfFeasibility();
public
boolean
addToFeasibility();
public
MemoryParameters
getMemoryParameters();
public
ProcessingGroupParameters
getProcessingGroupParameters();
public
ReleaseParameters
getReleaseParameters();
public
Scheduler
getScheduler();
public
SchedulingParameters
getSchedulingParameters();
public
boolean
removeFromFeasibility();
public
boolean
setIfFeasible[1](ReleaseParameters
release,
MemoryParameters memory);
public
boolean
setIfFeasible[1](ReleaseParameters
release,
MemoryParameters memory, ProcessingGroupParameters group);
public
boolean
setIfFeasible[1](ReleaseParameters
release,
ProcessingGroupParameters group);
public
boolean
setIfFeasible[1](SchedulingParameters
sched,
ReleaseParameters release, MemoryParameters memory);
public
boolean
setIfFeasible[1](SchedulingParameters
sched,
ReleaseParameters release, MemoryParameters memory,
ProcessingGroupParameters
group);
public
void
setMemoryParameters
(MemoryParameters
memory);
public
boolean
setMemoryParametersIfFeasible(
MemoryParameters memory);
public
void
setProcessingGroupParameters
(ProcessingGroupParameters parameters);
public
boolean
setProcessingGroupParametersIfFeasible(
ProcessingGroupParameters group);
public
void
setReleaseParameters(ReleaseParameters
release);
public
boolean
setReleaseParametersIfFeasible(
ReleaseParameters release);
public
void
setScheduler(Scheduler
scheduler);
public
void
setScheduler(Scheduler
scheduler,
SchedulingParameters scheduling, ReleaseParameters release,
MemoryParameters memory, ProcessingGroupParameters group);
public
void
setSchedulingParameters(
SchedulingParameters scheduling);
public
void
setSchedulingParametersIfFeasible(
SchedulingParameters scheduling);

A.58
package
public

Scheduler
javax.realtime;
abstract
class
Scheduler
{
//
constructors
protected
Scheduler();
//
methods
protected
abstract
void
addToFeasibility(
Schedulable schedulable);
public
abstract
void
fireSchedulable();
public
static
Scheduler
getDefaultScheduler();
public
abstract
String
getPolicyName();
public
abstract
boolean
isFeasible();

protected
public
public
public

abstract

void

removeFromFeasibility(
Schedulable schedulable);
static
void
setDefaultScheduler(Scheduler
scheduler);
abstract
boolean
setIfFeasible(Schedulable
schedulable,
ReleaseParameters release, MemoryParameters memory);
abstract
boolean
setIfFeasible(Schedulable
schedulable,
ReleaseParameters release, MemoryParameters memory,
ProcessingGroupParameters
group);

A.59
package
public

SchedulingParameters
abstract

class

javax.realtime;
SchedulingParameters
implements
Cloneable{
//
constructors
public
SchedulingParameters();
//
methods
public
Object
clone[1]();

A.60
package
public

ScopedCycleException
class

javax.realtime;
RuntimeException
{
//
constructors
public
ScopedCycleException();
ScopedCycleException(String
description);

ScopedCycleException

public

extends

A.61
package
public

ScopedMemory

javax.realtime;
ScopedMemory
extends
MemoryArea
{
//
constructors
public
ScopedMemory(long
size);
public
ScopedMemory(long
size,
Runnable
logic);
public
ScopedMemory(SizeEstimator
size);
public
ScopedMemory(SizeEstimator
size,
Runnable
logic);
//
methods
public
void
enter();
public
void
enter(Runnable
logic);
public
void
executeInArea(Runnable
logic);
public
long
getMaximumSize();
public
Object
getPortal();
public
int
getReferenceCount();
public
void
join()
throws
InterruptedException;
public
void
join(HighResolutionTime
time)
throws
InterruptedException;
public
void
joinAndEnter()
throws
InterruptedException;
public
void
joinAndEnter(HighResolutionTime
time)
throws
InterruptedException;
public
void
joinAndEnter(Runnable
logic)
throws
InterruptedException;
public void joinAndEnter(Runnable logic, HighResolutionTime time)
throws
InterruptedException;
public
Object
newArray(Class
type,
int
number);
public
Object
newInstance(Class
type)
throws IllegalAccessException, InstantiationException;
public
Object
newInstance(reflect.Constructor
c,
Object [] args)
throws IllegalAccessException, InstantiationException;
public
void
setPortal(Object
object);
public
String
toString();
abstract

class

1023

A.62

SizeEstimator

package
public

javax.realtime;
SizeEstimator
{
//
constructor
public
SizeEstimator();
//
methods
public
long
getEstimate();
public
void
reserve(Class
c,
int
number);
public
void
reserve
(SizeEstimator
size);
public
void
reserve(SizeEstimator
size,
int
number);
public
void
reserveArray[1](int
dimension);
[1]
public
void
reserveArray (int
dimension,
Class
type);
final

class

A.63

SizeOutOfBoundsException

package
public

javax.realtime;
SizeOutOfBoundsException
extends
RuntimeException
{
//
constructors
public
SizeOutOfBoundsException();
public
SizeOutOfBoundsException(String
description);

class

A.64

SporadicParameters

package
public

javax.realtime;
extends
AperiodicParameters
{
//
fields
public
static
final
string
mitViolationExcept;
public
static
final
string
mitViolationIgnore;
public
static
final
string
mitViolationReplace;
public
static
final
string
mitViolationSave;
//
constructors
public
SporadicParameters[1](RelativeTime
minInterarrival);
public
SporadicParameters(RelativeTime
minInterarrival,
RelativeTime
cost,
RelativeTime
deadline,
AsyncEventHandler
overrunHandler,
AsyncEventHandler
missHandler);
//
The
following
constructor
may
be
added
at
Version
1.1
protected
SporadicParameters(RelativeTime
minInterarrival,
RelativeTime
cost,
RelativeTime
deadline,
RelativeTime
blockingTerm,
AsyncEventHandler
overrunHandler,
AsyncEventHandler
missHandler);
//
methods
public
RelativeTime
getMinimumInterarrival();
public
String
getMitViolationBehaviour();
public
boolean
setIfFeasible(RelativeTime
interarrival,
RelativeTime
cost,
RelativeTime
deadline);
public
void
setMinimumInterarrival(RelativeTime
minimum);
public
void
setMitViolationBehaviour(String
behavior);
//
The
following
method
may
be
added
at
Version
1.1
public
boolean
setIfFeasible(RelativeTime
interarrival,
RelativeTime cost, RelativeTime deadline,
RelativeTime blockingTerm);
class

SporadicParameters

A.65

java.lang.Thread

package
public

class

public

Thread
static

public

java.lang;
Object
implements
Runnable
{
//nested
classes
enum
State[8]{BLOCKED,
NEW,
RUNNABLE,
TERMINATED, TIMED_WAITING, WAITING);
interface
UncaughtExceptionHandler[8]{

extends
final

static

};

public

void

uncaughtException(Thread

Throwable

e);

fields
MAX_PRIORITY;
MIN_PRIORITY;
NORM_PRIORITY;
//
constructors
public
Thread();
public
Thread(String
name);
public
Thread(Runnable
target);
public
Thread(Runnable
target,
String
name);
public
Thread(ThreadGroup
group,
String
name);
public
Thread(ThreadGroup
group,
Runnable
target);
public Thread(ThreadGroup group, Runnable target, String name);
public Thread(ThreadGroup group, Runnable target, String name,
long
stackSize)
//
methods
public
static
int
activeCount();
public
void
checkAccess();
public
int
countStackFrames();
public
static
Thread
currentThread();
public
void
destroy();
//
DEPRECATED
public
static
void
dumpStack();
public
static
int
enumerate(Thread[]
tarray);
public
static
java.util.Map<Thread,StackTraceElement[]>
getAllStackTraces [8]
();
public
ClassLoader
getContextClassLoader();
public
static
UncaughtExceptionHandler
getDefaultUncaughtExceptionHandler [1]();
public
long
getId[8]();
public
String
getName();
public
int
getPriority();
//redfined
by
RealtimeThread
public
StackTraceElement[]
getStackTrace[8]();
public
State
getState[8]();
public
ThreadGroup
getThreadGroup();
public
UncaughtExceptionHandler
getUncaughtExceptionHandler [8]();
public
static
boolean
holdsLock(Object
obj);
public
void
interrupt();
public
static
boolean
interrupted();
public
final
boolean
isAlive();
public
final
boolean
isDaemon();
public
boolean
isInterrupted();
public
final
void
join()
throws
InterruptedException;
public final void join(long millis) throws InterruptedException;
public
final
void
join(long
millis,
int
nanos)
throws
InterruptedException;
public
void
resume();
//DEPRECATED
public
void
run();
public
void
setContextClassLoader(ClassLoader
cl);
public
final
void
setDaemon();
public
static
setDefaultUncaughtExceptionHandler[1](
UncaughtExceptionHandler eh);
public
void
setName(String
name);
public
void
setPriority(int
newPriority);
//redfined by RealtimeThread
public
void
setUncaughtExceptionHandler[1](
UncaughtExceptionHandler);
public
static
void
sleep(long
millis)
throws
InterruptedException;
public
static
void
sleep(long
millis,
int
nanos)
throws
InterruptedException;
public
void
start();
public
final
void
stop();
//
DEPRECATED
public
public
public

static
static
static

1025

//

t,

int
int
int

public

final
public

void
void
public
public

stop(Throwable
o);
//
suspend();
//
String
static
void

DEPRECATED
DEPRECATED
toString();
yield();

}
[8]

This has been added at Java 1.5.

A.66

java.lang.ThreadGroup

package
public

java.lang;
implements
UncaughtExceptionHandler[9]{
//
constructors
public
ThreadGroup(String
name);
public
ThreadGroup(ThreadGroup
parent,
String
name);
//
methods
public
int
activeCount();
public
int
activeGroupCount();
public
boolean
allowThreadSuspension(boolean
b);
//
DEPRECATED
public
final
void
checkAccess();
public
final
void
destroy();
public
int
enumerate(Thread[]
list);
public
int
enumerate(Thread[]
list,
boolean
recurse);
public
int
enumerate(ThreadGroup[]
list);
public
int
enumerate(ThreadGroup[]
list,
boolean
recurse);
public
int
getMaxPriority();
public
String
getName();
public
final
ThreadGroup
getParent();
public
void
interrupt();
public
final
boolean
isDaemon();
public
synchronized
boolean
isDestroyed();
public
void
list()
public
final
boolean
parentOf(ThreadGroup
g);
public
void
resume();
//
DEPRECATED
public
final
void
setDaemon(boolean
daemon);
public
void
setMaxPriority(int
pri);
public
final
void
stop();
//
DEPRECATED
public
void
suspend();
//
DEPRECATED
public
String
toString();
public
void
uncaughtException(Thread
t,
Throwable
e)
class

ThreadGroup

}
[9]

This implementation clause has been added at Java 1.5.

A.67

java.lang.ThreadLocal

package
public

java.lang;
ThreadLocal<T>[10]
{
//
constructor
public
ThreadLocal();
//
methods
public
T
get
();
public
void
set
(T
value);
protected
T
initialValue();
public
void
remove[8]();
class

}
[10]

This class was made generic at Java 1.5.

A.68
package
public

ThrowBoundaryError
class

ThrowBoundaryError
//

extends

javax.realtime;
Error
{
constructors

public

public
ThrowBoundaryError();
ThrowBoundaryError(String
description);

A.69
package
public

Timed
javax.realtime;
class
Timed
extends
AsynchronouslyInterruptedException
{
//
constructors
public
Timed(HighResolutionTime
time);
//
methods
public
boolean
doInterruptible(Interruptible
logic);
public
void
resetTime(HighResolutionTime
time);

A.70

Timer

package
public

javax.realtime;
abstract
class
Timer
extends
AsyncEvent
{
//
constructors
protected
Timer(HighResolutionTime
time,
Clock
clock,
AsyncEventHandler handler);
//
methods
public
ReleaseParameters
createReleaseParameters();
public
void
destroy();
public
void
disable();
public
void
enable();
public void fire[1](); // Always throws UnsupportedOperationException
public
Clock
getClock();
public
AbsoluteTime
getFireTime();
public
boolean
isRunning();
public
void
reschedule(HighResolutionTime
time);
public
void
start();
public
void
start[1]
(boolean
disabled);
public
boolean
stop();

A.71
package
public

java.util.Timer

java.util;
{
//
constructors
public
Timer
();
public
Timer(boolean
isDaemon);
//
methods
public
void
cancel();
public
void
schedule(TimerTask
task,
long
delay);
public
void
schedule(TimerTask
task,
Data
time);
public
void
schedule(TimerTask
task,
Data
firstTime,
long period);
public void schedule(TimerTask task, long delay, long period);
public
void
scheduleAtFixedRate(TimerTask
task,
Date firstTime, long period);
public
void
scheduleAtFixedRate(TimerTask
task,
long
delay,
long period);
class

Timer

1027

A.72

java.util.TimerTask

package
public

abstract

java.util;
TimerTask
implements
Runnable
{
//
constructors
protected
TimerTask();
//
methods
public
boolean
cancel();
public
abstract
void
run();
public
long
scheduledExecutionTime();
class

A.73

UnknownHappeningException

package
public

javax.realtime;
UnknownHappeningException
extends
RuntimeException
{
//
constructors
public
UnknownHappeningException();
public
UnknownHappeningException(String
description);

class

A.74

UnsupportedPhysicalMemoryException

package
public

javax.realtime;
UnsupportedPhysicalMemoryException
extends
RuntimeException
{
//
constructors
public
UnsupportedPhysicalMemoryException();
UnsupportedPhysicalMemoryException(String
description);
class

public
}

A.75

VTMemory

package
public

javax.realtime;
class
VTMemory
extends
ScopedMemory
{
//
constructors
public
VTMemory(long
initial,
long
maximum);
public
VTMemory(long
initial,
long
maximum,
Runnable
logic);
public
VTMemory(long
size);
//
in
bytes
public
VTMemory(long
size,
Runnable
logic);
public
VTMemory(SizeEstimator
initial,
SizeEstimator
maximum);
public
VTMemory(SizeEstimator
initial,
SizeEstimator
maximum,
Runnable
logic);
public
VTMemory(SizeEstimator
size);
public
VTMemory(SizeEstimator
size,
Runnable
logic);
//
methods
public
String
toString();

A.76
package
public

VTPhysicalMemory

javax.realtime;
ScopedMemory
{
//
constructors
public
VTPhysicalMemory(Object
type,
long
size);
public
VTPhysicalMemory(Object
type,
long
base,
long
size);
public
VTPhysicalMemory(Object
type,
long
base,
long
size,
Runnable logic);
public VTPhysicalMemory(Object type, long size, Runnable logic);
public
VTPhysicalMemory(Object
type,
SizeEstimator
size);
public
VTPhysicalMemory(Object
type,
long
base,
SizeEstimator size);
public
VTPhysicalMemory(Object
type,
long
base,
class

VTPhysicalMemory

extends

public
}

SizeEstimator size, Runnable logic);


VTPhysicalMemory(Object
type,
SizeEstimator
size,
Runnable
logic);

A.77

WaitFreeDequeue

package
public
//

javax.realtime;
WaitFreeDequeue
{
This
has
been
deprecated
in
1.0.1.
//
constructors
public
WaitFreeDequeue(Thread
writer,
Thread
reader,
int maximum, MemoryArea memory);
//
methods
public
Object
blockingRead();
public
void
blockingWrite(Object
object)
public
boolean
force
(Object
object);
public
Object
nonBlockingRead();
public
boolean
nonBlockingWrite(Object
object);
class
class

A.78

WaitFreeReadQueue

package
public

javax.realtime;
WaitFreeReadQueue
{
//
constructors
public
WaitFreeReadQueue[1]
(int
maximum,
boolean
notify);
public
WaitFreeReadQueue[1](int
maximum,
MemoryArea
memory,
boolean notify);
public
WaitFreeReadQueue(Thread
writer,
Thread
reader,
int maximum, MemoryArea memory);
public
WaitFreeReadQueue(Thread
writer,
Thread
reader,
int maximum, MemoryArea memory,
boolean notify);
//
methods
public
void
clear();
public
boolean
isEmpty();
public
boolean
isFull();
public
Object
read();
public
int
size();
public
void
waitForData[11]()
throws
InterruptedException;
public
void
write[11],[12]
(Object
object)
throws
InterruptedException;

class

[11]

Throws InterruptedException has been added at version 1.0.1 of the RTSJ.

[12]

In version 1.0. of the RTSJ, this method returned boolean.

A.79

WaitFreeWriteQueue

package
public
{

javax.realtime;
WaitFreeWriteQueue

class

//
constructors
public
WaitFreeWriteQueue[1]
(int
maximum);
public
WaitFreeWriteQueue[1]
(int
maximum,
MemoryArea
memory);
public
WaitFreeWriteQueue(Thread
writer,
Thread
reader,
int maximum, MemoryArea memory);

1029

public
public
boolean
public
public
public
Object
read[1]()
public
public
boolean

//

methods
void
clear();
force(Object
object);
boolean
isEmpty();
boolean
isFull();
throws
InterruptedException;
int
size();
write(Object
object);

}
Footnotes
1. Added at version 1.0.1 of the RTSJ
2. These fields and methods have been moved from the SporadicParameters class at
verson 1.0.1 of the RTSJ.
3. Deprecated at version 1.0.1 of the RTSJ.
4. In version 1.0. of the RTSJ, this method returned void.
5. The semantics of this method has changed between versions 1.0. and 1.0.1 of the RTSJ.
6. In version 1.0. of the RTSJ, this field was of type String.
7. This method has been made static at version 1.0.1 of the RTSJ.
8. This has been added at Java 1.5.
9. This implementation clause has been added at Java 1.5.
10. This class was made generic at Java 1.5.
11. Throws InterruptedException has been added at version 1.0.1 of the RTSJ.
12. In version 1.0. of the RTSJ, this method returned boolean.

You might also like