[Date Prev] [Date Next] [Thread Prev] [Thread Next] Date Index Thread Index Search archive:
Date:Mon Jun 21 07:42:50 1998 
Subject:New -for- loop construct [long, request for comments] 
From:Steve Leach 
Volume-ID:980621.01 

Hi,

As part of an extensive revamp of the PLUG Source Code Library,
I decided to create a revised -for- loop construct called -lfor-.
I would very much appreciate comments on this before I start using
it indiscriminately throughout the PLUG Library.

  WARNING: This is experimental code.  Please do not incorporate
  it into any local libraries or use in your own projects.  It
  has not been properly tested (it will be) and may inadvertantly
  crash your system.  Once the overall spec is settled it will
  be publicly released on the new PopForum web site.  I expect
  this will not be a long wait.


[1] Background and Motivation
-----------------------------

The introduction of the define:for_form has allowed the
Poplog community to creatively experiment with many new
loops (see HELP * FOR_FORM).  This evolution has apparently
stablised, leaving us with the knowledge of what we require
from our -for- loop but an unattractively inconsistent set
of variants.  The -lfor- construct is an attempt to impose a
regular structure without losing the benefits.

(If you just want to give it a whirl, skip onto section 2.
The stuff immediately below explains what the
problems were and the extra features I wanted.)

[1.1] Current Inconsistent Features and Defects
-----------------------------------------------

Specifically, I believe the following features needed to
be made consistent :-

    *   Some loops allow parallel iteration and others,
        such as from_repeater, do not even though it makes
        sense.  All loops should permit parallel iteration.
        i.e.
            ;;; Not permitted but should be.
            for i, j from_repeater Ri, Rj do ...

    *   Only vector-type iteration permitted the use of
        with_index.  with_index should be available for all
        loops.

    *   Cannot mix different datatypes within parallel
        loops.  You can iterate in parallel over two lists
        or two vectors but not a list and a vector. i.e.

            for i, j in_list Li, Lj do ...          ;;; OK
            for i, j in_vector Vi, Vj do ...        ;;; OK
            for i, j in_list_vector Li, Vj do ...   ;;; Illegal!

        It should be possible to perform parallel iteration
        for more than one type.

    *   Fast loops and slow loops cannot be performed in
        parallel.  This is because the "fast" attribute
        applies to the entire loop not one argument.

            fast_for i, j in ... ;;; both i & j are "fast"

    *   Some vector types supported directly, others not.
        Should all have equal status.

    *   Some loops have "on" forms and others do not.  As
        the main purpose is being able to update the
        structure being iterated over, a more
        straightforward mechanism is provided.  (Chris
        Dollin pointed this out to me and I observed later
        that this had been anticipated in the array loops.
        Again, only there.)

    *   Some loops associated with data types needed
        multiple variables (e.g. in_property) and others
        allowed multiple parallel iterations.  But
        the same syntax was used so the two cannot be
        combined.  These should be separated. i.e.

            for k, v in_property ...
            for i, j in Li, Lj do ...
                ^^^^ same syntax


[1.2] New Features
------------------

In addition, I wanted to include features that won strong
support during the Pop9x debate.  These were automatic
variable declaration, automatic scoping, and rebinding of
loop variables.  What does all this amount to?  Here is one
(rather bizarre) comparative example that illustrates all 3
features together :-

    define foo( L );
        lvars i, j;
        for i, j in L, L.tl do
            procedure();
                i + j
            endprocedure
        endfor;
        0 -> i;
    enddefine;

    define bar( L );
        lvars i;
        lfor i, j in list L, list L.tl do
            procedure();
                i + j
            endprocedure
        endlfor;
        0 -> i;
    enddefine;

-foo- and -bar- are practically identical except for the use of
-for- and -lfor-.  What happens when we call foo( [ 1 2 4 ] )?
This is easy enough.  We iterate down [ 1 2 4 ] and [ 2 4 ]
together and push two procedures onto the stack.  When either
procedure is called it adds 0 to the last value of j which is
4.  The two procedures are identical and each return 4 when
called.

    vars ( p, q ) = foo( [ 1 2 4 ] );
    p() =>
    ** 3
    q() =>
    ** 3

When we call bar( [ 1 2 4 ] ) the -lfor- construct automatically
declares i & j in a local scope, shadowing the outer
declaration of -i-.  The final assignment is therefore
irrelevant.  The two procedure that is pushed onto the stack
are different because they capture the variables i & j and
a closure is implicitly created.  Thus the first procedure
returns 1 + 2 = 3 and the second returns 2 + 4 = 6.

    vars ( p, q ) = bar( [ 1 2 4 ] );
    p() =>
    ** 3
    q() =>
    ** 6

But why are these features attractive?  The above example
certainly does not argue the case!

The automatic declaration of loop variables is highly attractive
in terms of eliminating some dangerous programming errors.
Failure to declare a loop variable locally might be a clever bit
of programming or it might be a disaster waiting to happen.
A thorough inspection of the Poplog libraries showed
conclusively that it was the latter.  Several widely used
libraries had errors of this kind.  The other benefit is
increased program readability as largely superfluous variable
declarations are removed.

There is a small downside to this: the -lfor- construct cannot
iterate with dlocal variables or active variables.  This is a
casualty of the evolutionary design.  (I cannot see a way to
extend the system _as_it_is_ to get the best of both worlds.
Clean sheet designs are relatively easy.)  In my judgement,
automatic declaration makes the better trade-off.

The automatic scoping of loop variables also prevents some
dangerous consequences.  It is an attractive feature since it
breaks a monolithic chunk of code up into separate scopes.
(Indeed it is so attractive, it would be nice to extend it to
all Pop-11's control constructs.  And if I could work out how to
create new compile_mode flags I could do it that way.)  This
means that programmers can modify code locally with much greater
confidence.

The "rebinding of loop variables" is jargon borrowed from the
Scheme community to describe why procedures "capture" their loop
variables.  In their view, the automatic scope introduced by the
loop is entered and exited on _each_ loop trip!  Fortunately,
the Pop-11 compiler is just smart enough to generate the right
code for this complex situation.

Why should inner procedures capture loop variables?  Firstly,
because it is almost always what is meant.  Secondly, it is
awkward to get the effect unless it is provided for you.
Thirdly, it gets back to Pop-11's functional programming roots.
Lastly, the final value of a loop variable is best left
undefined.  Pop-11's current interpretation exposes the final
value and makes programs highly reliant on it.

Thus "rebinding" is an excellent and attractive choice.  The
only downside that I can think of is that it does make
explaining what goes on more challenging.  But as it is a
complex situation in the first place, I would hazard the guess
that this is a small problem.


[2] LFOR by Example
-------------------

[2.1] One Variable
------------------

The simplest form of -lfor- is

    lfor i in list [ a b c ] do i => endlfor;
    ** a
    ** b
    ** c

As can be seen, the syntax is very similar to the current
list-loop syntax.  The main difference is the mandatory "list"
keyword.  This is called the "modifier".

There are modifiers for vectors, strings, repeaters, etc.

    lfor i in string 'xyz' do i => endlfor;
    ** 120
    ** 121
    ** 122

    lfor i in vector { a b c } do i => endlfor;
    ** a
    ** b
    ** c

    lfor i in repeater 'xyz'.stringin do i => endlfor;
    ** 120
    ** 121
    ** 122

Most modifiers are associated with particular datatypes.  But
some describe different styles of iteration.  Here's one for
iterating over successive tails - similar to "on-loops".

    lfor i in tails [ a b c ] do i => endlfor;
    ** [a b c]
    ** [a b]
    ** [a]

Of course, there is no reason why iterating over tails should be
restricted to lists ...

    lfor i in tails 'foo' do i => endlfor;
    ** foo
    ** fo
    ** f


[2.2] Declaration and Scope of Loop Variables
---------------------------------------------

All loop variables are introduced in a new scope and captured by
inner procedures.  For example,

    define make_procs();
        {%
            lfor i in list [ 1 2 3 4 5 ] do
                procedure(); i endprocedure
            endlfor
        %}
    enddefine;

    make_procs()( 3 )() =>
    ** 3

If you try doing this with the ordinary -for- syntax you will
find this doesn't work.  The vector of procedures built by
make_procs all refer to the same -i- whose final value is
5.  Try it!

Because all -lfor- loops create a new lexical scope, you can
safely declare variables inside them without worrying if they
will clash with another declaration of the same name.


[2.3] More than one variable
----------------------------

Some loop modifiers, such as "property" need more than one
loop variable.  These have to be bracketed.

    lfor ( k, v ) in property [[a 1] [b 2]].newassoc do
        nprintf( '** %p -> %p', [ ^k ^v ] )
    endlfor;
    ** b -> 2
    ** a -> 1

(Note that the property-modifier does not guarantee sequential
order, exactly as before.  However, it _can_ be used in parallel
loops.  This is unlikely to be useful but I didn't think it was
worth banning.)


[2.4] Anonymous Variables
-------------------------

Sometimes you do not want to make use of a loop variable, even
though you are forced to provide one.  In this case use the fake
variable "_".  -lfor- interprets this as an variable which is
never used and arranges for the assignment to be optimised into
an erase.  e.g.

    {%
        lfor ( k, _ ) in property [[a 1][b 2]].newassoc do
            k
        endlfor
    %} =>
    ** {b a}


[2.5] Using with_index
----------------------

With any -lfor- loop you can employ -with_index-.

    vars g = [ [u] [v] [w] [x] [y] [z] ];
    lfor i with_index k in list g do
        [ ^k ] -> tl( i );
    endlfor;
    g =>
    ** [[u 1] [v 2] [w 3] [x 4] [y 5] [z 6]]

This variable is captured by inner procedures, too!

[Efficiency note: vector-modifiers avoid using this variable
but employ a hidden variable.  This is needed to avoid
deferencing overheads.  Furthermore, all vector-modifiers
share the hidden index variable and use a common termination
test.]


[2.6] Implicit vectorclass loops
--------------------------------

Modifiers are automatically generated for vectorclasses.  Thus

    defclass bitvec : 1;

    lfor i in bitvec consbitvec(#| 1, 0, 1, 0, 1 |#) do
        i =>
    endlfor;
    ** 1
    ** 0
    ** 1
    ** 0
    ** 1


[2.7] Parallel Loops
--------------------

One of the special features of -lfor- is that all modifiers can
be used in parallel.  So it is perfectly straightforward to
iterate over a list and repeater in parallel.

    lfor i, j in repeater 'abcd'.stringin, list [ a b c d ] do
        [ ^j -> ^i ] =>
    endlfor;
    ** [a -> 97]
    ** [b -> 98]
    ** [c -> 99]
    ** [d -> 100]



[2.8] Fast Qualifiers
---------------------

Sometimes it is desirable to write unchecked loops.  With the
-lfor- syntax you can choose which of several parallel loops are
to be unchecked.  Use the "fast" qualifier.

    lfor i, j in
        fast list [ a b c ],
        list 'abc'.stringin.pdtolist
    do
        [ ^i -> ^j ] =>
    endlfor;
    ** [a -> 97]
    ** [b -> 98]
    ** [c -> 99]



[2.9] Write-back Qualifiers
---------------------------

One of the more common idioms is to want to update the elements
of a datastructure.  With the "update" qualifier, you request
that the value of the loop variable is written back to its
source.  This happens each time you get to the "endfor"
construct.  N.B. A nextloop/if/unless construct will cause
writeback but a quitloop/if/unless will not.

    vars g = [ alpha beta gamma ];
    lfor i in update list g do
        i.length -> i
    endlfor;
    g =>
    ** [5 4 5]


[3] But I HATE the "lfor" keyword
---------------------------------

Me too.  There is a handy library that takes over -for-
and arranges that when "for" is immediately followed by
"lvars" it becomes an "lfor" i.e.

    for lvars .... endfor

is equivalent to

    lfor .... endlfor

which you may prefer.  I have not included this in this release.
It is simply not germane at this time.  However, it probably
will be part of the general release.  [But I haven't quite
decided on how to do that bit yet.]



[4] Trying it out
-----------------

Included below is a uuencoded tar archive which will unpack into
a directory called "lfor".  When you have unpacked the archive,
go into the directory and type (in Poplog)

    load support.p      ;;; supplies missing PLUG lib code
    load lfor.p

Hopefully this will produce no problems and you can try the
above examples out.  Please don't incorporate it into your local
or use it in important code IT IS EXPERIMENTAL AT THIS STAGE!


Steve

begin 644 lfor.tar
M;&9O<B\`````````````````````````````````````````````````````
M````````````````````````````````````````````````````````````
M`````````````#`P-#`W-34`,#`P,#(T-0`P,#`P,#$W`#`P,#`P,#`P,#`P
M`#`V-30R-S4S,#,P`#`P,3(P,C<`-0``````````````````````````````
M````````````````````````````````````````````````````````````
M``````````````````````````````````````````!U<W1A<@`P,'-F:P``
M````````````````````````````````````=7-E<G,`````````````````
M```````````````````P,#`P,#`P`#`P,#`P,#``````````````````````
M````````````````````````````````````````````````````````````
M````````````````````````````````````````````````````````````
M````````````````````````````````````````````````````````````
M``````````````````````!L9F]R+VQF;W(N<```````````````````````
M````````````````````````````````````````````````````````````
M````````````````````````````````````,#`P,#8V-``P,#`P,C0U`#`P
M,#`P,3<`,#`P,#`P-3$U,S8`,#8U-#(W-#8W-3(`,#`Q,S$W-P`P````````
M````````````````````````````````````````````````````````````
M````````````````````````````````````````````````````````````
M`````'5S=&%R`#`P<V9K``````````````````````````````````````!U
M<V5R<P```````````````````````````````````#`P,#`P,#``,#`P,#`P
M,```````````````````````````````````````````````````````````
M````````````````````````````````````````````````````````````
M````````````````````````````````````````````````````````````
M`````````````````````````````````````````````"\J"E1H:7,@;&EB
M<F%R>2!A9&1S('1H92!0;W`Q,2`B;&9O<B(@<WEN=&%X+B`@270@86QS;R!E
M>'1E;F1S('1H90IN;W)M86P@(F9O<B(@<WEN=&%X(&EF('1H92!N97AT('=O
M<F0@:7,@(FQV87)S(BX@(%1H92!B87-I8PIU<V%G92!I<R!A<R!F;VQL;W=S
M(#HM"@H@("`@;&9O<B`\=F%R;&ES=#X@6R`\:6YD97@^(%T@:6X@/')A;F=E
M;&ES=#X@9&\@/'-T871E;65N=',^(&5N9&QF;W(*("`@(&9O<B!L=F%R<R`\
M:61L:7-T/B!;(#QI;F1E>#X@72!I;B`\<F%N9V5L:7-T/B!D;R`\<W1A=&5M
M96YT<SX@96YD9F]R"@H@("`@/'9A<FQI<W0^("`@("`Z.CT@/'9A<G,^+"`N
M+BX*("`@(#QV87)S/B`@("`@("`@.CH](#QI9#X@?"`H(#QI9#XL("XN+B`I
M"B`@("`\:6YD97@^("`@("`@(#HZ/2!W:71H7VEN9&5X(#QI9#X*("`@(#QR
M86YG96QI<W0^("`@.CH](#QM;V1I9FEE<CX@/&5X<')E<W-I;VX^(%L@+"`\
M<F%N9V5L:7-T/B!="B`@("`\;6]D:69I97(^("`@(#HZ/2!;(&9A<W0@72`\
M8V]L;&5C=&EO;CX*("`@(#QC;VQL96-T:6]N/B`@.CH](&QI<W0@?"!V96-T
M;W(@?"!S=')I;F<@?"`N+BX*"D9O<B!E>&%M<&QE+`H*("`@(&QF;W(@:2P@
M:B!W:71H7VEN9&5X(&X@:6X@=F5C=&]R('8L('-T<FEN9R!S(&1O("XN+B!E
M;F1L9F]R"@I)="!I<R!A;B!A='1E;7!T('1O(&)R:6YG('1H92!F;W(M;&]O
M<"!S>6YT87@@=7`@=&\@9&%T92!I;B`S('=A>7,N"@HH,2D@270@97AP;W-E
M<R!T:&4@=6YD97)L>6EN9R!R96=U;&%R:71Y(&]F('1H92!F;W(M;&]O<`H@
M("`@8V]N8V5P=',@=&AA="!H879E(&)E96X@8VQO=61E9"!B>2!I;F-O;G-I
M<W1E;G0@:6UP;&5M96YT871I;VYS+@H**#(I(%1H92!L9F]R(&QO;W`@:&%S
M(&ET<R!O=VX@:6UP;&EC:70@;&5X:6-A;"!S8V]P92!W:&EC:`H@("`@<')E
M=F5N=',@=F%R:6%B;&5S(&1E8VQA<F5D('=I=&AI;B!T:&4@;&]O<"!B96EN
M9R!V:7-I8FQE"B`@("!O=71S:61E+B`@1G5R=&AE<FUO<F4@=&AE(&QO;W`@
M=F%R:6%B;&5S(&%R92!R97-T<FEC=&5D"B`@("!T;R!T:&ES('-C;W!E+@H*
M("`@(%1H:7,@<V-O<&4@:7,@97AI=&5D(&%N9"!R92UE;G1E<F5D(&5A8V@@
M=&EM92!R;W5N9"!T:&4@;&]O<"X*("`@(%1H:7,@;65A;G,@=&AE(&QO;W`@
M=F%R:6%B;&5S(&%R92`H:6X@<')I;F-I<&QE*2!D:7-T:6YC=`H@("`@;VX@
M96%C:"!T:6UE(')O=6YD+B`@5&AI<R!M86ME<R!A;B!I;7!O<G1A;G0@9&EF
M9F5R96YC90H@("`@:6X@8V]N<W1R=6-T:6]N<R!S=6-H(&%S"@H@("`@("`@
M(&QF;W(@:2!I;B!,(&1O('!R;V-E9'5R92@I.R!I(&5N9'!R;V-E9'5R92!E
M;F1L9F]R"@H@("`@5&AE(&%B;W9E(&-O;G-T<G5C=',@82!D:69F97)E;F-E
M('!R;V-E9'5R92!F;W(@96%C:`H@("`@=&EM92!R;W5N9"!T:&4@;&]O<"P@
M=6YL:6ME('1H92!O;&0M<W1Y;&4@;&]O<"!S>6YT87@N"@HH,RD@3F5W(&QO
M;W`@;6]D:69I97)S(&-A;B!B92!W<FET=&5N('=I=&AO=70@:&%V:6YG('1O
M"B`@("!K;F]W('1H92!D971A:6QS(&]F('1H92!0;W!L;V<@=FER='5A;"!M
M86-H:6YE+B`@1G5R=&AE<FUO<F4L"B`@("!T:&ES(&ES(&%C8V5P=&%B;'D@
M969F:6-I96YT+@H*("`@($QO;W`@;6]D:69I97)S.@H@("`@("`@("T^(&ED
M(%L@87)G("XN+B!=(%L@87)G("XN+B!="B`@("!W:&5R90H@("`@("`@(&%R
M9R!C86X@8F4@7R!F;W(@97)A<W5R90H**B\*"F-O;7!I;&5?;6]D92`Z<&]P
M,3$@*W-T<FEC=#L*"G-E8W1I;VX@)"UB971T97)?<WEN=&%X(#T^"B`@("!L
M9F]R(&5N9&QF;W(*("`@(&%D9%]L9F]R7VUO9&EF:65R"B`@("!L9F]R7VUO
M9&EF:65R7W1A8FQE"CL*"G5S97,@:7-V96-T;W(Z='EP97-P96,*=7-E<R!I
M<W!R;V-E9'5R93IT>7!E<W!E8PIU<V5S(&ES=V]R9#IT>7!E<W!E8PIU<V5S
M(&9L86<Z='EP97-P96,*"F1E9F-L87-S(%)U;&4@>PH@("`@<G5L94ES3F5G
M871E9"`@("`@("`Z(&9L86<L"B`@("!R=6QE269#:&5C:V5D("`@("`@(#H@
M9FQA9RP*("`@(')U;&5)9E5N8VAE8VME9"`@("`@.B!F;&%G+`H@("`@<G5L
M94EF4F5A9"`@("`@("`@("`Z(&9L86<L"B`@("!R=6QE2697<FET92`@("`@
M("`@(#H@9FQA9RP*("`@(')U;&5#;V1E("`@("`@("`@("`@.B!I<W9E8W1O
M<BP*("`@(')U;&5.97AT("`@("`@("`@("`@+RH@9F%L<V4@?"!2=6QE("HO
M"GT["@ID969I;F4@;F5W4G5L92@@=B`I.PH@("`@8V]N<U)U;&4H(&9A;'-E
M+"!T<G5E+"!T<G5E+"!T<G5E+"!T<G5E+"!V+"!F86QS92`I"F5N9&1E9FEN
M93L*"F1E9FEN92!S9712=6QE*"!R+"!F:65L9"P@=F%L=64@*2`M/B!R.PH@
M("`@=F%L=64@+3X@9FEE;&0H('(@*0IE;F1D969I;F4["@ID969C;&%S<R!,
M9F]R36]D:69I97(@>PH@("`@;&9O<DUO9&EF:65R5'EP92`@("`@("`@("`@
M(#H@:7-W;W)D+`H@("`@;&9O<DUO9&EF:65R3F5E9'-);F1E>"`@("`@(#H@
M9FQA9RP*("`@(&QF;W)-;V1I9FEE<DYE961S36EN3&5N("`@("`Z(&9L86<L
M"B`@("!L9F]R36]D:69I97).=6U,;V]P5F%R<R`@("`@.B`X+`H@("`@;&9O
M<DUO9&EF:65R3G5M17AT<F%S("`@("`@(#H@."P*("`@(&QF;W)-;V1I9FEE
M<D5N<W5R92`@("`@("`@("`Z(&9U;&PL("`@("`@("`@.SL[(&9A;'-E('P@
M4G5L90H@("`@;&9O<DUO9&EF:65R26YI="`@("`@("`@("`@(#H@9G5L;"P@
M("`@("`@("`[.SL@9F%L<V4@?"!2=6QE"B`@("!L9F]R36]D:69I97)497-T
M("`@("`@("`@("`@.B!F=6QL+"`@("`@("`@(#L[.R!F86QS92!\(%)U;&4*
M("`@(&QF;W)-;V1I9FEE<E-T97`@("`@("`@("`@("`Z(&9U;&PL("`@("`@
M("`@.SL[(&9A;'-E('P@4G5L90H@("`@;&9O<DUO9&EF:65R475I="`@("`@
M("`@("`@(#H@9G5L;"P@("`@("`@("`[.SL@9F%L<V4@?"!2=6QE"GT["@ID
M969I;F4@;6%K94UA<"@@;'9S+"!I9'@L(&UI;E]L96XL(&-O;&PL(&5X=')A
M<R`I("T^(&UA<#L*("`@(&QV87)S(&UA<"`](&YE=V%S<V]C*"!;72`I.PH@
M("`@;'9A<G,@8V]U;G0@/2`P.PH@("`@;'9A<G,@=CL*("`@(&9O<B!V(&EN
M(&QV<R!D;PH@("`@("`@(&-O=6YT("L@,2`M/B!C;W5N=#L*("`@("`@("!C
M;W5N="`M/B!M87`H('8@*3L*("`@(&5N9&9O<CL*("`@(&-O=6YT("L@,2`M
M/B!C;W5N=#L*("`@(&EF(&ED>"!T:&5N"B`@("`@("`@8V]U;G0@+3X@;6%P
M*"!I9'@@*0H@("`@96YD:68["B`@("!C;W5N="`K(#$@+3X@8V]U;G0["B`@
M("!I9B!I9'@@=&AE;@H@("`@("`@(&-O=6YT("T^(&UA<"@@;6EN7VQE;B`I
M"B`@("!E;F1I9CL*("`@(&-O=6YT("L@,2`M/CX@8V]U;G0@+3X@;6%P*"!C
M;VQL("D["B`@("!L=F%R<R!V.PH@("`@9F]R('8@:6X@97AT<F%S(&1O"B`@
M("`@("`@8V]U;G0@*R`Q("T^/B!C;W5N="`M/B!M87`H('8@*0H@("`@96YD
M9F]R.PIE;F1D969I;F4["@ID969I;F4@<&%C:U)U;&5S*"!,("D["B`@("!I
M9B!,+FYU;&P@=&AE;@H@("`@("`@(&9A;'-E"B`@("!E;'-E"B`@("`@("`@
M;'9A<G,@*"!R+"!R97-T("D@/2!,+F1E<W0["B`@("`@("`@<&%C:U)U;&5S
M*"!R97-T("D@+3X@<BYR=6QE3F5X=#L*("`@("`@("!R"B`@("!E;F1I9@IE
M;F1D969I;F4["@IL=F%R<R!V87)I86)L95]V96-T;W(["FQV87)S(&UI;E]L
M96Y?<V5E;E]B969O<F4["FQV87)S('%U:71?<G5L93L*"F1E9FEN92!03U!-
M24Y,14XH(&X@*3L*("`@(&1L;V-A;"!P;W!?;F5W7VQV87)?;&ES=#L*("`@
M(&QV87)S(&UI;E]L96X@/2!V87)I86)L95]V96-T;W(H(#,@*3L*("`@(&EF
M(&UI;E]L96Y?<V5E;E]B969O<F4@=&AE;@H@("`@("`@(&QV87)S(&-A<G)Y
M7V]N(#T@<WES3D577TQ!0D5,*"D["B`@("`@("`@;'9A<G,@="`]('-Y<TY%
M5U],5D%2*"D["B`@("`@("`@<WES4$]0*"!T("D["B`@("`@("`@<WES4%53
M2"@@="`I.PH@("`@("`@('-Y<U!54T@H(&UI;E]L96X@*3L*("`@("`@("!S
M>7-#04Q,*"`B9FE?/"(@*3L*("`@("`@("!S>7-)1DY/5"@@8V%R<GE?;VX@
M*3L*("`@("`@("!S>7-055-(*"!T("D["B`@("`@("`@<WES4$]0*"!M:6Y?
M;&5N("D["B`@("`@("`@<WES3$%"14PH(&-A<G)Y7V]N("D["B`@("!E;'-E
M"B`@("`@("`@<WES4$]0*"!M:6Y?;&5N("D*("`@(&5N9&EF.PH@("`@=')U
M92`M/B!M:6Y?;&5N7W-E96Y?8F5F;W)E.PIE;F1D969I;F4["@ID969I;F4@
M5$535$U)3DQ%3B@@;B`I.PH@("`@:68@;6EN7VQE;E]S965N7V)E9F]R92!T
M:&5N"B`@("`@("`@=')U92`M/B!Q=6ET7W)U;&4*("`@(&5L<V4*("`@("`@
M("!T<G5E("T^(&UI;E]L96Y?<V5E;E]B969O<F4["B`@("`@("`@;'9A<G,@
M:61X(#T@=F%R:6%B;&5?=F5C=&]R*"`R("D["B`@("`@("`@;'9A<G,@;6EN
M7VQE;B`]('9A<FEA8FQE7W9E8W1O<B@@,R`I.PH@("`@("`@('-Y<U!54T@H
M(&UI;E]L96X@*3L*("`@("`@("!S>7-055-(*"!I9'@@*3L*("`@("`@("!S
M>7-#04Q,*"`B9FE?/"(@*3L*("`@(&5N9&EF"F5N9&1E9FEN93L*"F1E9FEN
M92!055-(5B@@;B`I.PH@("`@<WES4%532"@@=F%R:6%B;&5?=F5C=&]R*"!N
M("D@*0IE;F1D969I;F4["@ID969I;F4@4$]05B@@;B`I.PH@("`@<WES4$]0
M*"!V87)I86)L95]V96-T;W(H(&X@*2`I.PIE;F1D969I;F4["@ID969I;F4@
M0T%,3%8H(&X@*3L*("`@('-Y<T-!3$PH('9A<FEA8FQE7W9E8W1O<B@@;B`I
M("D*96YD9&5F:6YE.PH*9&5F:6YE(%5#04Q,5B@@;B`I.PH@("`@<WES54-!
M3$PH('9A<FEA8FQE7W9E8W1O<B@@;B`I("D*96YD9&5F:6YE.PH*9&5F:6YE
M(&%P<&QY4G5L92@@=F%R:6%B;&5?=F5C=&]R+"!R=6QE("D["B`@("!D;&]C
M86P@=F%R:6%B;&5?=F5C=&]R.PH@("`@;'9A<G,@:2P@8V]D92`](')U;&4N
M<G5L94-O9&4["B`@("!F;W(@:2!F<F]M(#$@8GD@,B!T;R!D871A;&5N9W1H
M*"!C;V1E("D@9&\*("`@("`@("!C;V1E*"!I("DH(&-O9&4H(&D@*R`Q("D@
M*3L*("`@(&5N9&9O<CL*96YD9&5F:6YE.PH*9&5F:6YE(&%P<&QY4G5L94-H
M86EN*"!T97-T7V-H96-K+"!T97-T7W=R:71E+"!V87)V+"!R=6QE<RP@<')O
M8V5D=7)E('`@*3L*("`@(&1L;V-A;"!Q=6ET7W)U;&4["B`@("!W:&EL92!R
M=6QE<R!D;PH@("`@("`@(&9A;'-E("T^('%U:71?<G5L93L*("`@("`@("!I
M9B!T97-T7V-H96-K*"!R=6QE<R`I(&%N9"!T97-T7W=R:71E*"!R=6QE<R`I
M('1H96X*("`@("`@("`@("`@87!P;'E2=6QE*"!V87)V+"!R=6QE<R`I.PH@
M("`@("`@("`@("!U;FQE<W,@<75I=%]R=6QE(&1O"B`@("`@("`@("`@("`@
M("!P*"!R=6QE<R`I"B`@("`@("`@("`@(&5N9'5N;&5S<PH@("`@("`@(&5N
M9&EF.PH@("`@("`@(')U;&5S+G)U;&5.97AT("T^(')U;&5S"B`@("!E;F1W
M:&EL90IE;F1D969I;F4["@IL8V]N<W1A;G0@9FQA9U]K97EW;W)D<R`](%L@
M0R!5(%(@5R!=.PH*9&5F:6YE('!A<G-E1FQA9W,H($P@*2`M/B`H(&ME>7=O
M<F0L(&EF8RP@:69U+"!I9G(L(&EF=RP@3"`I.PH@("`@9F%L<V4@+3X^(&EF
M8R`M/CX@:69U("T^/B!I9G(@+3X@:69W.PH@("`@=VAI;&4@;&UE;6)E<B@@
M3"YH9"P@9FQA9U]K97EW;W)D<R`I(&1O"B`@("`@("`@3"YD97-T("T^($P@
M+3X@;'9A<B!F.PH@("`@("`@('1R=64@+3X*("`@("`@("`@("`@:68@9B`]
M/2`B0R(@=&AE;B!I9F,*("`@("`@("`@("`@96QS96EF(&8@/3T@(E4B('1H
M96X@:69U"B`@("`@("`@("`@(&5L<V5I9B!F(#T](")2(B!T:&5N(&EF<@H@
M("`@("`@("`@("!E;'-E:68@9B`]/2`B5R(@=&AE;B!I9G<*("`@("`@("`@
M("`@96QS92`[.SL@=&AR;W<@87=A>2!T<G5E("AY=6LA*0H@("`@("`@("`@
M("!E;F1I9CL*("`@(&5N9'=H:6QE.PH@("`@=6YL97-S(&EF8R!O<B!I9G4@
M9&\@=')U92`M/CX@:69C("T^(&EF=2!E;F1U;FQE<W,["B`@("!U;FQE<W,@
M:69R(&]R(&EF=R!D;R!T<G5E("T^/B!I9G(@+3X@:69W(&5N9'5N;&5S<SL*
M("`@($PN9&5S="`M/B!,("T^(&ME>7=O<F0*96YD9&5F:6YE.PH*9&5F:6YE
M('!A<G-E*"!,("D@+3X@*"!U+"!I9"P@:6YP=71S+"!O=71P=71S+"!,("D[
M"B`@("!I9B`H($PN:&0@/3T@(BT^(B`I("T^/B!U('1H96X*("`@("`@("!,
M+G1L("T^($P["B`@("!E;F1I9CL*("`@($PN9&5S="`M/B!,("T^(&ED.PH@
M("`@3"YD97-T("T^($P@+3X@:6YP=71S.PH@("`@3"YD97-T("T^($P@+3X@
M;W5T<'5T<SL*96YD9&5F:6YE.PH*9&5F:6YE(&UA:V52=6QE<R@@3"P@;6%P
M("D["B`@("!L=F%R<R!R.PH@("`@9F]R('(@:6X@3"!D;PH@("`@("`@(&QV
M87)S("@@:V5Y=V]R9"P@:69C+"!I9G4L(&EF<BP@:69W("D@/2!R+G!A<G-E
M1FQA9W,@+3X@<CL*("`@("`@("!C;VYS4G5L92@*("`@("`@("`@("`@:V5Y
M=V]R9"`]/2`B=6YT:6PB+`H@("`@("`@("`@("!I9F,L(&EF=2P*("`@("`@
M("`@("`@:69R+"!I9G<L"B`@("`@("`@("`@('LE"B`@("`@("`@("`@("`@
M("!U;G1I;"!N=6QL*"!R("D@9&\*("`@("`@("`@("`@("`@("`@("!L=F%R
M<R`H('4L(&ED+"!I;G!U=',L(&]U='!U=',@*2`]('(N<&%R<V4@+3X@<CL*
M("`@("`@("`@("`@("`@("`@("!L=F%R<R!I.PH@("`@("`@("`@("`@("`@
M("`@(&9O<B!I(&EN(&EN<'5T<R!D;PH@("`@("`@("`@("`@("`@("`@("`@
M("!I9B!I+FES=V]R9"!T:&5N"B`@("`@("`@("`@("`@("`@("`@("`@("`@
M("!L=F%R<R!V(#T@:2YM87`["B`@("`@("`@("`@("`@("`@("`@("`@("`@
M("!I9B!V('1H96X@4%532%8L('8@96QS92!S>7-055-(+"!I(&5N9&EF"B`@
M("`@("`@("`@("`@("`@("`@("`@(&5L<V4*("`@("`@("`@("`@("`@("`@
M("`@("`@("`@('-Y<U!54TA1+"!I"B`@("`@("`@("`@("`@("`@("`@("`@
M(&5N9&EF"B`@("`@("`@("`@("`@("`@("`@96YD9F]R.PH*("`@("`@("`@
M("`@("`@("`@("!L=F%R<R`H(&-A;&QV+"!C86QL+"!C86QL<2`I(#T*("`@
M("`@("`@("`@("`@("`@("`@("`@:68@=2!T:&5N"B`@("`@("`@("`@("`@
M("`@("`@("`@("`@("!50T%,3%8L('-Y<U5#04Q,+"!S>7-50T%,3%$*("`@
M("`@("`@("`@("`@("`@("`@("`@96QS90H@("`@("`@("`@("`@("`@("`@
M("`@("`@("`@0T%,3%8L('-Y<T-!3$PL('-Y<T-!3$Q1"B`@("`@("`@("`@
M("`@("`@("`@("`@(&5N9&EF.PH*("`@("`@("`@("`@("`@("`@("!I9B!I
M9"YI<W=O<F0@=&AE;@H@("`@("`@("`@("`@("`@("`@("`@("!L=F%R<R!V
M(#T@:60N;6%P.PH@("`@("`@("`@("`@("`@("`@("`@("!I9B!V('1H96X@
M8V%L;'8L('8@96QS92!C86QL+"!I9"!E;F1I9@H@("`@("`@("`@("`@("`@
M("`@(&5L<V4*("`@("`@("`@("`@("`@("`@("`@("`@8V%L;'$L(&ED"B`@
M("`@("`@("`@("`@("`@("`@96YD:68["@H@("`@("`@("`@("`@("`@("`@
M(&QV87)S(&D["B`@("`@("`@("`@("`@("`@("`@9F]R(&D@:6X@;W5T<'5T
M<RYR978@9&\*("`@("`@("`@("`@("`@("`@("`@("`@:68@:2`]/2`B7R(@
M=&AE;@H@("`@("`@("`@("`@("`@("`@("`@("`@("`@<WES15)!4T4L(&D*
M("`@("`@("`@("`@("`@("`@("`@("`@96QS96EF(&DN:7-W;W)D('1H96X*
M("`@("`@("`@("`@("`@("`@("`@("`@("`@(&QV87)S('8@/2!I+FUA<#L*
M("`@("`@("`@("`@("`@("`@("`@("`@("`@(&EF('8@=&AE;B!03U!6+"!V
M(&5L<V4@<WES4$]0+"!I(&5N9&EF"B`@("`@("`@("`@("`@("`@("`@("`@
M(&5L<V4*("`@("`@("`@("`@("`@("`@("`@("`@("`@(&UI<VAA<"@@)U=O
M<F0@;F5E9&5D)RP@6R!>:2!=("D*("`@("`@("`@("`@("`@("`@("`@("`@
M96YD:68*("`@("`@("`@("`@("`@("`@("!E;F1F;W(["B`@("`@("`@("`@
M("`@("!E;F1U;G1I;`H@("`@("`@("`@("`E?2P*("`@("`@("`@("`@9F%L
M<V4*("`@("`@("`I"B`@("!E;F1F;W(*96YD9&5F:6YE.PH*9&5F:6YE(&UA
M:V5,9F]R36]D:69I97(H(&ME>7=O<F0L(&1A=&$@*3L*("`@(&QV87)S(&QV
M<R`](%M=+"!C;VQL(#T@9F%L<V4L(&ED>"`](&9A;'-E+"!E>'1R87,@/2!;
M73L*("`@(&QV87)S(&5L:7-T(#T@6UTL(&EL:7-T(#T@6UTL(&1L:7-T(#T@
M6UTL('1L:7-T(#T@6UTL('-L:7-T(#T@6UTL('%L:7-T(#T@6UT["B`@("!L
M=F%R<R!I.PH@("`@9F]R(&D@:6X@9&%T82!D;PH@("`@("`@(&QV87)S(&H@
M/2!I.PH@("`@("`@('=H:6QE(&QM96UB97(H(&HN:&0L(&9L86=?:V5Y=V]R
M9',@*2!D;R!J+G1L("T^(&H@96YD=VAI;&4["B`@("`@("`@;'9A<G,@*"!K
M+"!R97-T("D@/2!J+F1E<W0["B`@("`@("`@:68@:R`]/2`B;&]O<%]L=F%R
M<R(@=&AE;B!R97-T("T^(&QV<PH@("`@("`@(&5L<V5I9B!K(#T](")C;VQL
M96-T:6]N(B!T:&5N(')E<W0N:&0@+3X@8V]L;`H@("`@("`@(&5L<V5I9B!K
M(#T](")I;F1E>"(@=&AE;B!R97-T+FAD("T^(&ED>`H@("`@("`@(&5L<V5I
M9B!K(#T](")E>'1R85]L=F%R<R(@=&AE;B!R97-T("T^(&5X=')A<PH@("`@
M("`@(&5L<V5I9B!K(#T](")E;G-U<F4B('1H96X@6R!>7F5L:7-T(%YI(%T@
M+3X@96QI<W0*("`@("`@("!E;'-E:68@:R`]/2`B:6YI="(@=&AE;B!;(%Y>
M:6QI<W0@7FD@72`M/B!I;&ES=`H@("`@("`@(&5L<V5I9B!K(#T](")W:&EL
M92(@;W(@:R`]/2`B=6YT:6PB('1H96X@6R!>7G1L:7-T(%YI(%T@+3X@=&QI
M<W0*("`@("`@("!E;'-E:68@:R`]/2`B<W1E<"(@=&AE;B!;(%Y><VQI<W0@
M7FD@72`M/B!S;&ES=`H@("`@("`@(&5L<V5I9B!K(#T](")Q=6ET(B!T:&5N
M(%L@7EYQ;&ES="!>:2!=("T^('%L:7-T"B`@("`@("`@96QS92!M:7-H87`H
M("=5;FMN;W=N(&UO9&EF:65R)RP@6R!>:R!=("D*("`@("`@("!E;F1I9@H@
M("`@96YD9F]R.PH@("`@;'9A<G,@;6%P(#T@;6%K94UA<"@@;'9S+"!I9'@L
M(&9A;'-E+"!C;VQL+"!E>'1R87,@*3L*("`@(&-O;G-,9F]R36]D:69I97(H
M*`H@("`@("`@(&ME>7=O<F0L("`@("`@("`[.SL@='EP90H@("`@("`@(&ED
M>"P@("`@("`@("`@("`[.SL@;F5E9',@:6YD97@*("`@("`@("!F86QS92P@
M("`@("`@("`@.SL[(&YE961S(&QE;F=T:"`H;F\@=V%Y(&]F('5S97(@9V5T
M=&EN9R!T:&ES*0H@("`@("`@(&QV<RYL96YG=&@L("`@("`[.SL@(R!L;V]P
M('9A<G,*("`@("`@("!E>'1R87,N;&5N9W1H+"`@.SL[(",@97AT<F%S"B`@
M("`@("`@;'9A<G,@3#L*("`@("`@("!F;W(@3"!I;B!;(%YE;&ES="!>:6QI
M<W0@7G1L:7-T(%YS;&ES="!><6QI<W0@72!D;PH@("`@("`@("`@("!P86-K
M4G5L97,H(%LE(&UA:V52=6QE<R@@3"P@;6%P("D@)5T@*0H@("`@("`@(&5N
M9&9O<CL*("`@("DI.PIE;F1D969I;F4["@ID969I;F4@;&9O<E]M;V1I9FEE
M<E]T86)L92`]"B`@("!N97=A<W-O8R@@6UT@*0IE;F1D969I;F4["@ID969I
M;F4@861D7VQF;W)?;6]D:69I97(H(&1E9FX@*3L*("`@(&QV87)S("@@:V5Y
M=V]R9"P@9&%T82`I(#T@9&5F;BYD97-T.PH@("`@;6%K94QF;W)-;V1I9FEE
M<B@@:V5Y=V]R9"P@9&%T82`I("T^(&QF;W)?;6]D:69I97)?=&%B;&4H(&ME
M>7=O<F0@*0IE;F1D969I;F4["@ID969I;F4@;F5E9%]I;F1E>%]V87(H(&UO
M9&EF:65R<R`I.PH@("`@97AI<W1S*"!M;V1I9FEE<G,L(&QF;W)-;V1I9FEE
M<DYE961S26YD97@@*0IE;F1D969I;F4["@ID969C;&%S<R!,9F]R4W1A=&4@
M>PH@("`@;&9O<E-T871E36]D:69I97(@("`@("`@.B!F=6QL+"`@("`@.SL[
M($QF;W)-;V1I9FEE<@H@("`@;&9O<E-T871E27-5;F-H96-K960@("`@.B!F
M;&%G+`H@("`@;&9O<E-T871E27-7<FET94)A8VL@("`@.B!F;&%G+`H@("`@
M;&9O<E-T871E5F%R<U9E8W1O<B`@("`@.B!I<W9E8W1O<@I].PH*9&5F:6YE
M(&1O4G5L97,H('-T871E+"!P<F]C961U<F4@<"P@<')O8V5D=7)E('$@*3L*
M("`@(&%P<&QY4G5L94-H86EN*`H@("`@("`@('-T871E+FQF;W)3=&%T94ES
M56YC:&5C:V5D(&%N9"!R=6QE2695;F-H96-K960@;W(@<G5L94EF0VAE8VME
M9"P*("`@("`@("!S=&%T92YL9F]R4W1A=&5)<U=R:71E0F%C:R!A;F0@<G5L
M94EF5W)I=&4@;W(@<G5L94EF4F5A9"P*("`@("`@("!S=&%T92YL9F]R4W1A
M=&5687)S5F5C=&]R+`H@("`@("`@('-T871E+FQF;W)3=&%T94UO9&EF:65R
M+G`L"B`@("`@("`@<0H@("`@*0IE;F1D969I;F4["@ID969I;F4@8V]L;&5C
M=&EO;E9A<B@@<R`I.PH@("`@;'9A<G,@;B`](',N;&9O<E-T871E36]D:69I
M97(N;&9O<DUO9&EF:65R3G5M3&]O<%9A<G,["B`@("!S=6)S8W)V*"!N("L@
M,RP@<RYL9F]R4W1A=&5687)S5F5C=&]R("D*96YD9&5F:6YE.PH*9&5F:6YE
M(&QF;W)!<W-E<G1I;VY6:6]L871I;VXH(&-O;&QE8W1I;VXL('1Y<&4@*3L*
M("`@(&UI<VAA<"@@8V]L;&5C=&EO;BP@,2P@)U5N<W5I=&%B;&4@87)G;65N
M="!F;W(@)R`^/"!T>7!E(#P^("<@:71E<F%T:6]N)R`I"F5N9&1E9FEN93L*
M"F1E9FEN92!P97)F;W)M16YS=7)E*"!S=&%T97,@*3L*("`@(&1L;V-A;"!M
M:6Y?;&5N7W-E96Y?8F5F;W)E(#T@9F%L<V4["B`@("!L=F%R<R!T97-T(#T@
M=6YD968L(&X@/2!U;F1E9CL*"B`@("!D969I;F4@<&QA;G1?86YD*"!R("D[
M"B`@("`@("`@:68@<BYR=6QE27-.96=A=&5D('1H96X*("`@("`@("`@("`@
M<WES0T%,3"@@(FYO="(@*0H@("`@("`@(&5N9&EF.PH@("`@("`@(&X@*R`Q
M("T^(&X["B`@("`@("`@:68@;B`^/2`R('1H96X*("`@("`@("`@("`@<WES
M04Y$*"!T97-T("D*("`@("`@("!E;F1I9@H@("`@96YD9&5F:6YE.PH*("`@
M(&QV87)S(',["B`@("!F;W(@<R!I;B!S=&%T97,@9&\*("`@("`@("!S>7-.
M15=?3$%"14PH*2`M/B!T97-T.PH@("`@("`@(#`@+3X@;CL*("`@("`@("!D
M;U)U;&5S*"!S+"!L9F]R36]D:69I97)%;G-U<F4L('!L86YT7V%N9"`I.PH@
M("`@("`@(&EF(&X@/B`P('1H96X*("`@("`@("`@("`@<WES3$%"14PH('1E
M<W0@*3L*("`@("`@("`@("`@;'9A<G,@8V]N=&EN=64@/2!S>7-.15=?3$%"
M14PH*3L*("`@("`@("`@("`@<WES24933R@@8V]N=&EN=64@*3L*("`@("`@
M("`@("`@<WES4%532"@@<RYC;VQL96-T:6]N5F%R("D["B`@("`@("`@("`@
M('-Y<U!54TA1*"!S+FQF;W)3=&%T94UO9&EF:65R+FQF;W)-;V1I9FEE<E1Y
M<&4@*3L*("`@("`@("`@("`@<WES0T%,3%$H(&QF;W)!<W-E<G1I;VY6:6]L
M871I;VX@*3L*("`@("`@("`@("`@<WES3$%"14PH(&-O;G1I;G5E("D["B`@
M("`@("`@96YD:68["B`@("!E;F1F;W(["@IE;F1D969I;F4["@ID969I;F4@
M<&5R9F]R;5-K96QE=&]N*"!S=&%T97,L('!R;V-E9'5R92!P("D["B`@("!D
M;&]C86P@;6EN7VQE;E]S965N7V)E9F]R92`](&9A;'-E.PH@("`@;'9A<G,@
M<SL*("`@(&9O<B!S(&EN('-T871E<R!D;PH@("`@("`@(&1O4G5L97,H(',L
M('`L(&5R87-E("D*("`@(&5N9&9O<@IE;F1D969I;F4["@ID969I;F4@<&5R
M9F]R;4EN:70@/0H@("`@<&5R9F]R;5-K96QE=&]N*"4@;&9O<DUO9&EF:65R
M26YI="`E*0IE;F1D969I;F4["@ID969I;F4@<&5R9F]R;51E<W0H('-T871E
M<RP@97AI=%]L86(@*3L*("`@(&1L;V-A;"!M:6Y?;&5N7W-E96Y?8F5F;W)E
M(#T@9F%L<V4["B`@("`[.SL@8VAE8VL@9F]R('1E<FUI;F%T:6]N"B`@("!L
M=F%R<R!S.PH@("`@9F]R(',@:6X@<W1A=&5S(&1O"B`@("`@("`@9&]2=6QE
M<R@*("`@("`@("`@("`@<RP@;&9O<DUO9&EF:65R5&5S="P*("`@("`@("`@
M("`@<')O8V5D=7)E*"!R("D["B`@("`@("`@("`@("`@("!I9B!R+G)U;&5)
M<TYE9V%T960@=&AE;@H@("`@("`@("`@("`@("`@("`@('-Y<TE&4T\*("`@
M("`@("`@("`@("`@(&5L<V4*("`@("`@("`@("`@("`@("`@("!S>7-)1DY/
M5`H@("`@("`@("`@("`@("`@96YD:68H(&5X:71?;&%B("D*("`@("`@("`@
M("`@96YD<')O8V5D=7)E"B`@("`@("`@*0H@("`@96YD9F]R.PIE;F1D969I
M;F4["@ID969I;F4@<&5R9F]R;5-T97`@/0H@("`@<&5R9F]R;5-K96QE=&]N
M*"4@;&9O<DUO9&EF:65R4W1E<"`E*0IE;F1D969I;F4["@ID969I;F4@<&5R
M9F]R;5%U:70@/0H@("`@<&5R9F]R;5-K96QE=&]N*"4@;&9O<DUO9&EF:65R
M475I="`E*0IE;F1D969I;F4["@ID969I;F4@:6YC<F5M96YT*"!H:61D96Y?
M:6YD97A?=F%R+"!I;F1E>%]V87(@*3L*("`@(&EF(&AI9&1E;E]I;F1E>%]V
M87(@=&AE;@H@("`@("`@('-Y<U!54T@H(&AI9&1E;E]I;F1E>%]V87(@*3L*
M("`@("`@("!S>7-055-(42@@,2`I.PH@("`@("`@('-Y<T-!3$PH(")F:5\K
M(B`I.PH@("`@("`@('-Y<U!/4"@@:&ED9&5N7VEN9&5X7W9A<B`I.PH@("`@
M("`@(&EF(&EN9&5X7W9A<B!T:&5N"B`@("`@("`@("`@('-Y<U!54T@H(&AI
M9&1E;E]I;F1E>%]V87(@*3L*("`@("`@("`@("`@<WES4$]0*"!I;F1E>%]V
M87(@*0H@("`@("`@(&5N9&EF"B`@("!E;F1I9CL*96YD9&5F:6YE.PH*9&5F
M:6YE(&-H96-K7W9A<B@@=R`I("T^('<["B`@("!I9B!W+FES<')O=&5C=&5D
M('1H96X*("`@("`@("!M:7-H87`H("=,;V]P('9A<FEA8FQE(&ES('!R;W1E
M8W1E9"<L(%L@7G<@72`I"B`@("!E;F1I9CL*("`@(&QV87)S(&ED(#T@=RYI
M9&5N='!R;W!S.PH@("`@=6YL97-S(&ED(#T](")U;F1E9B(@;W(@:60N:7-I
M;G1E9V5R('1H96X*("`@("`@("!M:7-H87`H("=,;V]P('9A<FEA8FQE(&ES
M('!R92UE>&ES=&EN9R!S>6YT87@@;W(@;6%C<F\G+"!;(%YW(%T@*0H@("`@
M96YD=6YL97-S.PIE;F1D969I;F4["@ID969I;F4@9W)A8E]L;V]P7W9A<G,H
M*3L*"B`@("!D969I;F4@9W)A8B@I.PH@("`@("`@(%LE"B`@("`@("`@("`@
M(')E861I=&5M*"D@+3X@;'9A<B!T.PH@("`@("`@("`@("!I9B!T(#T]("(H
M(B!T:&5N"B`@("`@("`@("`@("`@("!R96%D:71E;2@I+F-H96-K7W9A<CL*
M("`@("`@("`@("`@("`@('=H:6QE('!O<#$Q7W1R>5]N97AT<F5A9&ET96TH
M("(L(B`I(&1O"B`@("`@("`@("`@("`@("`@("`@<F5A9&ET96TH*2YC:&5C
M:U]V87(*("`@("`@("`@("`@("`@(&5N9'=H:6QE.PH@("`@("`@("`@("`@
M("`@<&]P,3%?;F5E9%]N97AT<F5A9&ET96TH("(I(B`I+F5R87-E"B`@("`@
M("`@("`@(&5L<V4*("`@("`@("`@("`@("`@('0N8VAE8VM?=F%R"B`@("`@
M("`@("`@(&5N9&EF.PH@("`@("`@("5="B`@("!E;F1D969I;F4["@H@("`@
M6R4*("`@("`@("!G<F%B*"D["B`@("`@("`@<F5P96%T"B`@("`@("`@("`@
M('!O<#$Q7W1R>5]N97AT<F5A9&ET96TH(%L@+"!I;B!W:71H7VEN9&5X(%T@
M*2`M/B!L=F%R('1O:SL*("`@("`@("`@("`@=6YL97-S('1O:R`]/2`B+"(@
M9&\*("`@("`@("`@("`@("`@('1O:R`Z.B!P<F]G;&ES="`M/B!P<F]G;&ES
M=#L*("`@("`@("`@("`@("`@('%U:71L;V]P"B`@("`@("`@("`@(&5N9'5N
M;&5S<SL*("`@("`@("`@("`@9W)A8B@I"B`@("`@("`@96YD<F5P96%T"B`@
M("`E70IE;F1D969I;F4["@ID969I;F4@9W)A8E]I;F1E>%]V87(H*3L*("`@
M('!O<#$Q7W1R>5]N97AT:71E;2@@(G=I=&A?:6YD97@B("D@86YD(')E861I
M=&5M*"DN8VAE8VM?=F%R"F5N9&1E9FEN93L*"F1E9FEN92!N97=696-T;W)C
M;&%S<TUO9&EF:65R*"!K97D@*3L*"B`@("`[.SL@=F%R:6%B;&4@;6%P"B`@
M("`[.SL@("`@(#$N("!L;V]P('9A<FEA8FQE+"!B;W5N9"!T;R!E86-H(&5L
M96UE;G0@:6X@='5R;@H@("`@.SL[("`@("`R+B`@=&AE(&AI9&1E;B!I;F1E
M>"!V87)I86)L90H@("`@.SL[("`@("`S+B`@=&AE('-H87)E9"!M:6YI;75M
M(&QE;F=T:"!V87)I86)L90H@("`@.SL[("`@("`T+B`@=&AE(&-O;&QE8W1I
M;VX@=F%R:6%B;&4*("`@(#L[.R`@("`@-2X@(&%N(&5X=')A('9A<FEA8FQE
M(&EN:71I86QI<V5D('1O('1H92!L96YG=&@*("`@(&QC;VYS=&%N=`H@("`@
M("`@(&QV(#T@,2P@("`@("`@("`@("`@("`@(#L[.R!I"B`@("`@("`@:61X
M(#T@,BP@("`@("`@("`@("`@("`@.SL[(&X*("`@("`@("!L96X@/2`S+"`@
M("`@("`@("`@("`@("`[.SL@;6EN(&QE;@H@("`@("`@(&-O;&P@/2`T.R`@
M("`@("`@("`@("`@(#L[.R!V"@H@("`@8V]N<TQF;W)-;V1I9FEE<B@*("`@
M("`@("!K97DN8VQA<W-?9&%T87=O<F0L("`@("`[.SL@='EP90H@("`@("`@
M('1R=64L("`@("`@("`@("`@("`@("`@(#L[.R!N965D<R!I;F1E>`H@("`@
M("`@('1R=64L("`@("`@("`@("`@("`@("`@(#L[.R!S:&%R97,@;&5N9W1H
M"B`@("`@("`@,2P@("`@("`@("`@("`@("`@("`@("`@.SL[(&YU;2!L;V]P
M('9A<G,*("`@("`@("`Q+"`@("`@("`@("`@("`@("`@("`@("`[.SL@;G5M
M(&5X=')A<PH@("`@("`@(&YE=U)U;&4H('LE("`@("`@("`@("`@("`@("`@
M("`@("`@(#L[.R`M+2!%3E-54D4@+2T*("`@("`@("`@("`@4%532%8L(&-O
M;&PL"B`@("`@("`@("`@('-Y<T-!3$Q1+"!C;&%S<U]R96-O9VYI<V4H(&ME
M>2`I"B`@("`@("`@)7T@*2P@<V5T4G5L92@@*"DL(')U;&5)9E5N8VAE8VME
M9"P@9F%L<V4@*2P*("`@("`@("!N97=2=6QE*"![)2`@("`@("`@("`@("`@
M("`@("`@("`@("`[.SL@+2T@24Y)5"`M+0H@("`@("`@("`@("!055-(5BP@
M8V]L;"P*("`@("`@("`@("`@<WES0T%,3"P@(F1A=&%L96YG=&@B+`H@("`@
M("`@("`@("!03U!-24Y,14XL(&QE;@H@("`@("`@("5]("DL"B`@("`@("`@
M;F5W4G5L92@@>R4@("`@("`@("`@("`@("`@("`@("`@("`@.SL[("TM(%1%
M4U0@+2T*("`@("`@("`@("`@5$535$U)3DQ%3BP@;&5N"B`@("`@("`@)7T@
M*2P@<V5T4G5L92@@*"DL(')U;&5)<TYE9V%T960L('1R=64@*2P*("`@("`@
M("!N97=2=6QE*"![)2`@("`@("`@("`@("`@("`@("`@("`@("`[.SL@+2T@
M4U1%4"`M+0H@("`@("`@("`@("!055-(5BP@:61X+`H@("`@("`@("`@("!0
M55-(5BP@8V]L;"P*("`@("`@("`@("`@<WES0T%,3%$L(&-L87-S7V9A<W1?
M<W5B<V-R*"!K97D@*2P*("`@("`@("`@("`@4$]05BP@;'8*("`@("`@("`E
M?2`I+`H@("`@("`@(&YE=U)U;&4H('LE("`@("`@("`@("`@("`@("`@("`@
M("`@(#L[.R`M+2!154E4("TM"B`@("`@("`@("`@(%!54TA6+"!L=BP*("`@
M("`@("`@("`@4%532%8L(&ED>"P*("`@("`@("`@("`@4%532%8L(&-O;&PL
M"B`@("`@("`@("`@('-Y<U5#04Q,+"`B9F%S=%]S=6)S8W)V(@H@("`@("`@
M("5]("DL('-E=%)U;&4H("@I+"!R=6QE269296%D+"!F86QS92`I"B`@("`I
M"F5N9&1E9FEN93L*"F1E9FEN92!F971C:%]M;V1I9FEE<B@@:V5Y=V]R9"`I
M("T^(&T["B`@("!K97EW;W)D+FQF;W)?;6]D:69I97)?=&%B;&4@+3X@;3L*
M("`@('5N;&5S<R!M(&1O"B`@("`@("`@;'9A<G,@:V5Y(#T@:V5Y7V]F7V1A
M=&%W;W)D*"!K97EW;W)D("D["B`@("`@("`@:68@:V5Y+FES=F5C=&]R8VQA
M<W-K97D@=&AE;@H@("`@("`@("`@("!K97DN;F5W5F5C=&]R8VQA<W--;V1I
M9FEE<B`M/B!M"B`@("`@("`@96QS90H@("`@("`@("`@("!M:7-H87`H("=)
M;G9A;&ED(&QF;W(@;6]D:69I97(G+"!;(%YK97EW;W)D(%T@*0H@("`@("`@
M(&5N9&EF"B`@("!E;F1U;FQE<W,["F5N9&1E9FEN93L*"FQC;VYS=&%N=`H@
M("`@3D].12`@("`@("`@/2`R.C`L"B`@("!53D-(14-+140@("`](#(Z,2P*
M("`@(%=2251%7T)!0TL@(#T@,CHQ,#L*"F1E9FEN92!G<F%B7W)A;F=E<R@I
M.PH@("`@<&]P,3%?;F5E9%]N97AT<F5A9&ET96TH(")I;B(@*2YE<F%S93L*
M("`@(&QV87)S(&UO9',@/2!;72P@=&UP<R`](%M=+"!Q=6%L<R`](%M=.PH@
M("`@<F5P96%T"B`@("`@("`@;'9A<G,@<2`](#`["B`@("`@("`@<F5P96%T
M"B`@("`@("`@("`@('!O<#$Q7W1R>5]N97AT<F5A9&ET96TH(%L@9F%S="!U
M<&1A=&4@72`I("T^(&QV87(@=&]K.PH@("`@("`@("`@("!Q=6ET=6YL97-S
M*"!T;VL@*3L*("`@("`@("`@("`@:68@=&]K(#T](")F87-T(B!T:&5N(%5.
M0TA%0TM%1`H@("`@("`@("`@("!E;'-E:68@=&]K(#T](")U<&1A=&4B('1H
M96X@5U))5$5?0D%#2PH@("`@("`@("`@("!E;'-E(&UI<VAA<"@@)TEN=&5R
M;F%L(&5R<F]R.B!N;R!S=6-H('%U86QI9FEE<B<L(%L@7G1O:R!=("D*("`@
M("`@("`@("`@96YD:68@?'P@<2`M/B!Q.PH@("`@("`@(&5N9')E<&5A=#L*
M("`@("`@("!L=F%R<R!M(#T@<F5A9&ET96TH*2YF971C:%]M;V1I9FEE<CL*
M("`@("`@("!L=F%R<R!T(#T@<WES3D577TQ605(H*3L*("`@("`@("!P;W`Q
M,5]C;VUP7V5X<')?=&\H(%L@+"!D;R!=("D@+3X@;'9A<B!T;VL["B`@("`@
M("`@<WES4$]0*"!T("D["B`@("`@("`@8V]N<W!A:7(H('$L('%U86QS("D@
M+3X@<75A;',["B`@("`@("`@8V]N<W!A:7(H(&TL(&UO9',@*2`M/B!M;V1S
M.PH@("`@("`@(&-O;G-P86ER*"!T+"!T;7!S("D@+3X@=&UP<SL*("`@("`@
M("!Q=6ET:68H('1O:R`]/2`B9&\B("D["B`@("!E;F1R97!E870["B`@("!R
M971U<FXH('%U86QS+FYC<F5V+"!M;V1S+FYC<F5V+"!T;7!S+FYC<F5V("D[
M"F5N9&1E9FEN93L*"F1E9FEN92!C;VUP:6QE3&9O<B@@8VQO<VEN9U]K97EW
M;W)D("D["B`@("!D;&]C86P@<&]P7VYE=U]L=F%R7VQI<W0["B`@("!L=F%R
M<R!L;V]P7W9A<G,@/2!G<F%B7VQO;W!?=F%R<R@I.PH@("`@;'9A<G,@:6YD
M97A?=F%R(#T@9W)A8E]I;F1E>%]V87(H*3L*("`@(&QV87)S(&AI9&1E;E]I
M;F1E>%]V87(@/2!F86QS93L*("`@(&QV87)S(&UI;E]L96X@/2!F86QS93L*
M("`@(&QV87)S("@@<75A;&EF:65R<RP@;6]D:69I97)S+"!C;VQL7W9A<G,@
M*2`](&=R86)?<F%N9V5S*"D["@H@("`@.SL[($-R96%T92!T:&4@:6YV:7-I
M8FQE(&EN9&5X('9A<FEA8FQE('=H96X@96ET:&5R"B`@("`[.SL@=&AE<F4G
M<R!A;B!E>'!L:6-I="!I;F1E>"!V87)I86)L92!O<B!A(&UO9&EF:65R"B`@
M("`[.SL@<F5Q=6ER97,@;VYE+@H@("`@:68@:6YD97A?=F%R(&]R(&UO9&EF
M:65R<RYN965D7VEN9&5X7W9A<B!T:&5N"B`@("`@("`@<WES3D577TQ605(H
M*2`M/B!H:61D96Y?:6YD97A?=F%R"B`@("!E;F1I9CL*"B`@("`[.SL@0W)E
M871E('1H92!I;G9I<VEB;&4@;6EN(&QE;F=T:"!V87)I86)L92!I9@H@("`@
M.SL[(&%N>2!M;V1I9FEE<B!I<R!A('9E8W1O<F-L87-S(&UO9&EF:65R+@H@
M("`@:68@97AI<W1S*"!M;V1I9FEE<G,L(&QF;W)-;V1I9FEE<DYE961S36EN
M3&5N("D@=&AE;@H@("`@("`@('-Y<TY%5U],5D%2*"D@+3X@;6EN7VQE;@H@
M("`@96YD:68["@H@("`@;'9A<G,@<F5A;%]S=&%R=%]L86(@/2!S>7-.15=?
M3$%"14PH*3L*("`@(&QV87)S('-T87)T7VQA8B`]('-Y<TY%5U],04)%3"@I
M+F1U<"YP;W`Q,5]L;V]P7W-T87)T.PH@("`@;'9A<G,@97AI=%]L86(@/2!S
M>7-.15=?3$%"14PH*2YD=7`N<&]P,3%?;&]O<%]E;F0["@H@("`@;'9A<G,@
M;&9O<E]S=&%T97,@/0H@("`@("`@(%LE"B`@("`@("`@("`@(&QV87)S('$L
M(&TL(&-V+"!L=CL*("`@("`@("`@("`@9F]R(&QV+"!Q+"!M+"!C=B!I;B!L
M;V]P7W9A<G,L('%U86QI9FEE<G,L(&UO9&EF:65R<RP@8V]L;%]V87)S(&1O
M"B`@("`@("`@("`@("`@("!U;FQE<W,@;&5N9W1H*"!L=B`I(#T](&TN;&9O
M<DUO9&EF:65R3G5M3&]O<%9A<G,@9&\*("`@("`@("`@("`@("`@("`@("!M
M:7-H87`H("=-:7-M871C:&5D(&YU;6)E<B!O9B!L;V]P('9A<FEA8FQE<R<L
M(%M=("D*("`@("`@("`@("`@("`@(&5N9'5N;&5S<SL*("`@("`@("`@("`@
M("`@(&-O;G-,9F]R4W1A=&4H"B`@("`@("`@("`@("`@("`@("`@;2P*("`@
M("`@("`@("`@("`@("`@("`H('$@)B8@54Y#2$5#2T5$("D@+ST](#`L"B`@
M("`@("`@("`@("`@("`@("`@*"!Q("8F(%=2251%7T)!0TL@*2`O/3T@,"P*
M("`@("`@("`@("`@("`@("`@("![)0H@("`@("`@("`@("`@("`@("`@("`@
M("!L=BYD;"P*("`@("`@("`@("`@("`@("`@("`@("`@:&ED9&5N7VEN9&5X
M7W9A<BP*("`@("`@("`@("`@("`@("`@("`@("`@;6EN7VQE;BP*("`@("`@
M("`@("`@("`@("`@("`@("`@8W8L"B`@("`@("`@("`@("`@("`@("`@("`@
M(')E<&5A="!M+FQF;W)-;V1I9FEE<DYU;45X=')A<R!T:6UE<PH@("`@("`@
M("`@("`@("`@("`@("`@("`@("`@<WES3D577TQ605(H*0H@("`@("`@("`@
M("`@("`@("`@("`@("!E;F1R97!E870*("`@("`@("`@("`@("`@("`@("`E
M?0H@("`@("`@("`@("`@("`@*0H@("`@("`@("`@("!E;F1F;W(["B`@("`@
M("`@)5T["@H*("`@('!E<F9O<FU%;G-U<F4H(&QF;W)?<W1A=&5S("D["B`@
M("!P97)F;W)M26YI="@@;&9O<E]S=&%T97,@*3L*"B`@("`[.SL@26YI=&EA
M;&ES92!T:&4@:&ED9&5N(&EN9&5X+@H@("`@:68@:&ED9&5N7VEN9&5X7W9A
M<B!T:&5N('-Y<U!54TA1*"`P("D[('-Y<U!/4"@@:&ED9&5N7VEN9&5X7W9A
M<B`I(&5N9&EF.PH*("`@('-Y<TQ!0D5,*"!R96%L7W-T87)T7VQA8B`I.PH@
M("`@<WES3$),3T-+*"!F86QS92`I.PH*("`@(#L[.R!4:&4@<&]S:71I;VX@
M;V8@=&AE(&9O;&QO=VEN9R!D96-L87)A=&EO;G,@;65A;G,@=&AE>0H@("`@
M.SL[(&%R92!R96)O=6YD(&5A8V@@;&]O<"!T<FEP+@H@("`@.SL[($9I<G-T
M+"!D96-L87)E('1H92!L;V]P('9A<FEA8FQE<R`N+BX*("`@(&QV87)S('8[
M"B`@("!F;W(@=B!I;B!L;V]P7W9A<G,N9FQA='1E;B!D;R!S>7-,5D%24R@@
M=BP@,"`I(&5N9&9O<CL*("`@(#L[.R`N+BX@86YD('1H92!I;F1E>"!V87)I
M86)L92X*("`@(&EF(&EN9&5X7W9A<B!T:&5N('-Y<TQ605)3*"!I;F1E>%]V
M87(L(#`@*2!E;F1I9CL*"B`@("`[.SL@26YC<F5M96YT('1H92!H:61D96X@
M:6YD97@@86YD(&-O<'D@=&\@=&AE(&EN9&5X+@H@("`@:6YC<F5M96YT*"!H
M:61D96Y?:6YD97A?=F%R+"!I;F1E>%]V87(@*3L*"B`@("!P97)F;W)M5&5S
M="@@;&9O<E]S=&%T97,L(&5X:71?;&%B("D["B`@("!P97)F;W)M4W1E<"@@
M;&9O<E]S=&%T97,@*3L*"B`@("!P;W`Q,5]C;VUP7W-T;6YT7W-E<5]T;R@@
M8VQO<VEN9U]K97EW;W)D("DN97)A<V4["@H@("`@<WES3$%"14PH('-T87)T
M7VQA8B`I.PH@("`@<&5R9F]R;5%U:70H(&QF;W)?<W1A=&5S("D["B`@("!S
M>7-'3U1/*"!R96%L7W-T87)T7VQA8B`I.PH@("`@<WES14Y$3$),3T-+*"D[
M"B`@("!S>7-,04)%3"@@97AI=%]L86(@*3L*96YD9&5F:6YE.PH*.SL[("TM
M(%!A<G1I8W5L87(@;6]D:69I97)S("TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM
M+2TM+2TM+2TM+2TM+2TM+2TM+2T*"EL@<F5P96%T97(*("`@(%L@;&]O<%]L
M=F%R<R!I(%T*("`@(%L@8V]L;&5C=&EO;B!R(%T*("`@(%L@0R!E;G-U<F4@
M:7-P<F]C961U<F4@6R!R(%T@6UT@70H@("`@6R!U;G1I;`H@("`@("`@(&9A
M<W1?87!P;'D@6R!R(%T@6R!I(%T*("`@("`@("`]/2!;(%YT97)M:6X@:2!=
M(%M="B`@("!="ETN861D7VQF;W)?;6]D:69I97(["@I;(&QI<W0*("`@(%L@
M;&]O<%]L=F%R<R!I(%T*("`@(%L@8V]L;&5C=&EO;B!C(%T*("`@(%L@0R!U
M;G1I;"!N=6QL(%L@8R!=(%M=(%T*("`@(%L@52!U;G1I;"`]/2!;(&YI;"!C
M(%T@6UT@70H@("`@6R!2('-T97`@9F%S=%]D97-T<&%I<B!;(&,@72!;(&D@
M8R!=(%T*("`@(%L@5R!S=&5P(&9A<W1?9G)O;G0@6R!C(%T@6R!I(%T@70H@
M("`@6R!7('%U:70@+3X@9F%S=%]F<F]N="!;(&D@8R!=(%M=(&9A<W1?8F%C
M:R!;(&,@72!;(&,@72!="ETN861D7VQF;W)?;6]D:69I97(["@I;(&QI<W1?
M=&%I;',*("`@(%L@;&]O<%]L=F%R<R!T(%T*("`@(%L@8V]L;&5C=&EO;B!,
M(%T*("`@(%L@0R!U;G1I;"!N=6QL(%L@3"!=(%M=(%T*("`@(%L@52!U;G1I
M;"`]/2!;(&YI;"!,(%T@6UT@70H@("`@6R!S=&5P(&9A<W1?8F%C:R!;($P@
M3"!=(%L@="!,(%T@70I=+F%D9%]L9F]R7VUO9&EF:65R.PH*6R!T86EL<PH@
M("`@6R!L;V]P7VQV87)S('0@70H@("`@6R!C;VQL96-T:6]N($P@70H@("`@
M6R!U;G1I;"!I<VYU;&P@6R!,(%T@6UT@70H@("`@6R!S=&5P(&%L;&)U=&QA
M<W0@6R!,(#$@3"!=(%L@="!,(%T@70I=+F%D9%]L9F]R7VUO9&EF:65R.PH*
M.SL[($ED96%L;'D@=V4@=V]U;&0@;&EK92!T;R!U<V4@<WES7V=R8F=?9&5S
M='!A:7(@<F%T:&5R('1H86X@9F%S=%]D97-T<&%I<@H[.SL@8G5T('=E(&-A
M;FYO="!I;B!T:&4@<')E<V5N8V4@;V8@<')O8V5S<R!C;W!Y:6YG(2`@270@
M=V]U;&0@8F4*.SL[('!L875S:6)L92!T;R!C:&]O<V4@<WES7V=R8F=?9&5S
M='!A:7(@=VAE;B!T:&4@52!F;&%G(&ES(&]N("XN+B!B=70*.SL[(&ET(&ES
M('-I;7!L>2!T;V\@9&%N9V5R;W5S+"!I;B!M>2!V:65W+@I;('!R;W!E<G1Y
M"B`@("!;(&QO;W!?;'9A<G,@:R!V(%T*("`@(%L@8V]L;&5C=&EO;B!P(%T*
M("`@(%L@97AT<F%?;'9A<G,@3"!="B`@("!;($,@96YS=7)E(&ES<')O<&5R
M='D@6R!P(%T@6UT@70H@("`@6R!I;FET("4@<')O8V5D=7)E*"!P("D[(%LE
M(&9A<W1?87!P<')O<&5R='DH('`L(&-O;G-P86ER("D@)5T@96YD<')O8V5D
M=7)E("4@6R!P(%T@6R!,(%T@70H@("`@6R!U;G1I;"`]/2!;(&YI;"!,(%T@
M6UT@70H@("`@6R!S=&5P(&9A<W1?9&5S='!A:7(@6R!,(%T@6R!,(%T@9F%S
M=%]D97-T<&%I<B!;72!;(&L@=B!=(%T*("`@(%L@5R!Q=6ET("T^(&9A<W1?
M87!P;'D@6R!V(&L@<"!=(%M=(%T*72YA9&1?;&9O<E]M;V1I9FEE<CL*"FYE
M=U9E8W1O<F-L87-S36]D:69I97(H('9E8W1O<E]K97D@*2`M/B`B=F5C=&]R
M(BYL9F]R7VUO9&EF:65R7W1A8FQE.PIN97=696-T;W)C;&%S<TUO9&EF:65R
M*"!S=')I;F=?:V5Y("D@+3X@(G-T<FEN9R(N;&9O<E]M;V1I9FEE<E]T86)L
M93L*"B\J("!0<F5S97)V960@9F]R(&1O8W5M96YT871I;VXN"EL@=F5C=&]R
M"B`@("!;(&QO;W!?;'9A<G,@:2!="B`@("!;(&-O;&QE8W1I;VX@=B!="B`@
M("!;(&EN9&5X(&X@70H@("`@6R!E>'1R85]L=F%R<R!L96X@70H@("`@6R!E
M;G-U<F4@:7-V96-T;W(@6R!V(%T@6R`M/B!=(%T*("`@(%L@:6YI="!D871A
M;&5N9W1H(%L@=B!=(%L@;&5N(%T@70H@("`@6R!U;G1I;"!F:5\\(%L@;&5N
M(&X@72!;("T^(%T@70H@("`@6R!S=&5P(&9A<W1?<W5B<V-R=B!;(&X@=B!=
M(%L@:2!=(%T*72YA9&1?;&9O<E]M;V1I9FEE<CL**B\*"@H[.SL@+2T@0FEN
M9&EN9R!T;R!3>6YT87@@+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM
M+2TM+2TM+2TM+2TM+2TM+0H*9VQO8F%L('9A<G,@<WEN=&%X(&5N9&QF;W([
M"@ID969I;F4@9VQO8F%L('-Y;G1A>"!L9F]R.PH@("`@8V]M<&EL94QF;W(H
M(")E;F1L9F]R(B`I"F5N9&1E9FEN93L*"B-?248@1$5&('9E9`H@("`@=6YL
M97-S(&QM96UB97(H(")L9F]R(BP@=F5D;W!E;F5R<R`I(&1O"B`@("`@("`@
M6R!L9F]R(%Y>=F5D;W!E;F5R<R!=("T^('9E9&]P96YE<G,*("`@(&5N9'5N
M;&5S<SL*("`@('5N;&5S<R!L;65M8F5R*"`B96YD;&9O<B(L('9E9&-L;W-E
M<G,@*2!D;PH@("`@("`@(%L@96YD;&9O<B!>7G9E9&-L;W-E<G,@72`M/B!V
M961C;&]S97)S"B`@("!E;F1U;FQE<W,["B-?14Y$248*"F5N9'-E8W1I;VX[
M"G5N=&EL(&9I7SP@6R!L96X@;B!=(%L@+3X@72!="B`@("!;('-T97`@9F%S
M=%]S=6)S8W)V(%L@;B!V(%T@6R!I(%T@70I=+F%D9%]L9F]R7VUO9&EF:65R
M.PHJ+PH*"CL[.R`M+2!":6YD:6YG('1O(%-Y;G1A>"`M+2TM+2TM+2TM+2TM
M+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+6QF;W(O<W5P<&]R="YP````
M````````````````````````````````````````````````````````````
M```````````````````````````````````````````````````P,#`P-C0T
M`#`P,#`R-#4`,#`P,#`Q-P`P,#`P,#`P,C4R,@`P-C4T,C<T-S(U-P`P,#$S
M-S,W`#``````````````````````````````````````````````````````
M````````````````````````````````````````````````````````````
M````````````````````=7-T87(`,#!S9FL`````````````````````````
M`````````````'5S97)S````````````````````````````````````,#`P
M,#`P,``P,#`P,#`P````````````````````````````````````````````
M````````````````````````````````````````````````````````````
M````````````````````````````````````````````````````````````
M````````````````````````````````````````````````````````````
M.SL[("TM(%-U<'!O<G0@9F]R($Q&3U(@+2T@:6YC;W)P;W)A=&5D(&EN=&\@
M4$Q51R!3;W5R8V4@0V]D92!,:6)R87)Y('8R+C`*"F1E9FEN92!G;&]B86P@
M<WEN=&%X(&1E9E]T>7!E<W!E8U]P<F5D:6-A=&4["B`@("!L=F%R<R!W(#T@
M<F5A9&ET96TH*3L*("`@(&QV87)S(&YA;64@/2!W(#P^("(G.G1Y<&5S<&5C
M)R(["B`@("!I9B!P;W`Q,5]T<GE?;F5X=')E861I=&5M*"`B/2(@*2!T:&5N
M"B`@("`@("`@<&]P,3%?8V]M<%]E>'!R*"D*("`@(&5L<V4*("`@("`@("!S
M>7-055-(*"!W("D["B`@("!E;F1I9CL*("`@('!R;V-E9'5R92@@<')O8V5D
M=7)E('`@*3L*("`@("`@("!L=F%R<R!T<R`](&ED96YT9FXH)2`E*3L*("`@
M("`@("!P<F]C961U<F4H('@@*2`M/B!X.PH@("`@("`@("`@("!U;FQE<W,@
M<"@@>"`I(&1O"B`@("`@("`@("`@("`@("!M:7-H87`H('@L(#$L("=465!%
M4U!%0R!&04E,140@*"<@<WES7SX\('<@<WES7SX\("<I)R`I"B`@("`@("`@
M("`@(&5N9'5N;&5S<PH@("`@("`@(&5N9'!R;V-E9'5R92`M/B!U<&1A=&5R
M*"!T<R`I.PH@("`@("`@(&-O;G-P86ER*"!T<G5E+"!T<R@E(")F=6QL(BP@
M=')U92`E*2`I"B`@("!E;F1P<F]C961U<F4N<WES0T%,3%$["B`@("!S>7-#
M3TY35$%.5"@@;F%M92P@,"`I.PH@("`@<WES1TQ/0D%,*"!N86UE("D["B`@
M("!S>7-03U`H(&YA;64@*3L*96YD9&5F:6YE.PH*9&5F7W1Y<&5S<&5C7W!R
M961I8V%T92!I<W9E8W1O<CL*9&5F7W1Y<&5S<&5C7W!R961I8V%T92!I<W!R
M;V-E9'5R93L*9&5F7W1Y<&5S<&5C7W!R961I8V%T92!I<W=O<F0["@ID969I
M;F4@;&-O;G-T86YT(&)I='9A;%]T;U]B;V]L*"!B:70@*3L*("`@(&)I="`O
M/3T@,`IE;F1D969I;F4["@ID969I;F4@=7!D871E<F]F(&)I='9A;%]T;U]B
M;V]L*"!B;V]L("D["B`@("!U;FQE<W,@8F]O;"!D;PH@("`@("`@(#`*("`@
M(&5L<V5I9B!B;V]L(#T]('1R=64@=&AE;@H@("`@("`@(#$*("`@(&5L<V4*
M("`@("`@("!M:7-H87`H(&)O;VPL(#$L("=";V]L96%N(&YE961E9"!F;W(@
M9FQA9R!F:65L9"<@*0H@("`@96YD=6YL97-S"F5N9&1E9FEN93L*"G!?='EP
M97-P96,@9FQA9R`Z(#$@(R!B:71V86Q?=&]?8F]O;#L*"F1E9FEN92!G;&]B
M86P@:7-V96-T;W)C;&%S<VME>2@@:R`I.PH@("`@<F5T=7)N=6YL97-S*"!K
M+FES:V5Y("DH(&9A;'-E("D["B`@("!L=F%R<R!S(#T@:RYC;&%S<U]F:65L
M9%]S<&5C.PH@("`@<R!A;F0@;F]T*"!S+FES;&ES="`I"F5N9&1E9FEN93L*
M"F1E9FEN92!I<VYU;&PH('@@*3L*("`@(&EF('@N:7-V96-T;W)C;&%S<R!T
M:&5N(&1A=&%L96YG=&@H('@@*2`]/2`P(&5L<V4@;G5L;"@@>"`I(&5N9&EF
M"F5N9&1E9FEN93L*8FET("\]/2`P"F5N9&1E9FEN93L*"F1E9FEN92!U<&1A
M=&5R;V8@8FET=F%L7W1O7V)O;VPH(&)O;VP@*3L*("`@('5N;&5S<R!B;V]L
M(&1O"B`@("`@("`@,`H@("`@96QS96EF(&)O;VP@/3T@=')U92!T:&5N"B`@
M("`@("`@,0H@("`@96QS90H@("`@("`@(&UI<VAA<"@@8F]O;"P@,2P@)T)O
M;VQE86X@````````````````````````````````````````````````````
M````````````````````````````````````````````````````````````
M````````````````````````````````````````````````````````````
M````````````````````````````````````````````````````````````
M````````````````````````````````````````````````````````````
M````````````````````````````````````````````````````````````
M````````````````````````````````````````````````````````````
M````````````````````````````````````````````````````````````
M````````````````````````````````````````````````````````````
M````````````````````````````````````````````````````````````
M````````````````````````````````````````````````````````````
M````````````````````````````````````````````````````````````
M````````````````````````````````````````````````````````````
M````````````````````````````````````````````````````````````
M````````````````````````````````````````````````````````````
M````````````````````````````````````````````````````````````
M````````````````````````````````````````````````````````````
M````````````````````````````````````````````````````````````
M````````````````````````````````````````````````````````````
M````````````````````````````````````````````````````````````
M````````````````````````````````````````````````````````````
M````````````````````````````````````````````````````````````
H````````````````````````````````````````````````````````
`
end