diff options
author | Karl Berry <karl@freefriends.org> | 2022-08-04 20:32:19 +0000 |
---|---|---|
committer | Karl Berry <karl@freefriends.org> | 2022-08-04 20:32:19 +0000 |
commit | 43c893e3a29a2f82c7f52e7bb70461daa0b65559 (patch) | |
tree | 4f3c90e415d99f84672c5458e8f2744fc4b3ff39 /Master/texmf-dist | |
parent | 7b9b61b7a0d42b60f7f2792422223c497dce7476 (diff) |
animate (4aug22)
git-svn-id: svn://tug.org/texlive/trunk@64043 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist')
-rw-r--r-- | Master/texmf-dist/doc/latex/animate/ChangeLog | 4 | ||||
-rw-r--r-- | Master/texmf-dist/doc/latex/animate/animate.pdf | 1491 | ||||
-rw-r--r-- | Master/texmf-dist/source/latex/animate/animate.tex | 7 | ||||
-rw-r--r-- | Master/texmf-dist/tex/latex/animate/animate.sty | 1393 |
4 files changed, 1432 insertions, 1463 deletions
diff --git a/Master/texmf-dist/doc/latex/animate/ChangeLog b/Master/texmf-dist/doc/latex/animate/ChangeLog index e30e23a04f5..d9da4f0679c 100644 --- a/Master/texmf-dist/doc/latex/animate/ChangeLog +++ b/Master/texmf-dist/doc/latex/animate/ChangeLog @@ -1,3 +1,7 @@ +2022-08-04 + * fix: a few obsolete code lines removed; option processing acc. to new + LaTeX format 22-06-01 + 2022-02-21 * improvement: svg clipping code simplified diff --git a/Master/texmf-dist/doc/latex/animate/animate.pdf b/Master/texmf-dist/doc/latex/animate/animate.pdf index 6920b0466d8..33f6b8c81b2 100644 --- a/Master/texmf-dist/doc/latex/animate/animate.pdf +++ b/Master/texmf-dist/doc/latex/animate/animate.pdf @@ -1,7 +1,7 @@ %PDF-1.4 % 610 0 obj -<< /Linearized 1 /L 3751389 /H [ 3136261 524 ] /O 1884 /E 3171591 /N 29 /T 3739069 >> +<< /Linearized 1 /L 3751366 /H [ 3136261 525 ] /O 1884 /E 3171583 /N 29 /T 3739046 >> endobj xref @@ -1280,62 +1280,62 @@ xref 0003135858 00000 n 0003136096 00000 n 0003136261 00000 n -0003136785 00000 n -0003137209 00000 n -0003137340 00000 n -0003141260 00000 n -0003141515 00000 n -0003141734 00000 n -0003141914 00000 n -0003142094 00000 n -0003142274 00000 n -0003142454 00000 n -0003142634 00000 n -0003142814 00000 n -0003142999 00000 n -0003143184 00000 n -0003143364 00000 n -0003143544 00000 n -0003143729 00000 n -0003143914 00000 n -0003144094 00000 n -0003144300 00000 n -0003144512 00000 n -0003144575 00000 n -0003144627 00000 n -0003144732 00000 n -0003144857 00000 n -0003144981 00000 n -0003145352 00000 n -0003145653 00000 n -0003146132 00000 n -0003146531 00000 n -0003147076 00000 n -0003147720 00000 n -0003153969 00000 n -0003156230 00000 n -0003166505 00000 n -0003167062 00000 n -0003167187 00000 n -0003167540 00000 n -0003168280 00000 n -0003168397 00000 n -0003168478 00000 n -0003168636 00000 n -0003168809 00000 n -0003168982 00000 n -0003169175 00000 n -0003169372 00000 n -0003169598 00000 n -0003169773 00000 n -0003169980 00000 n -0003170189 00000 n -0003170387 00000 n -0003170722 00000 n -0003171093 00000 n -0003171266 00000 n -0003171412 00000 n -trailer << /Info 218 0 R /Root 611 0 R /Size 1939 /Prev 3739059 /ID [<3f5051c93ffdfa157c0ad1d1ec61c1ae><df5a354dda90328c914c6f06248b0df8>] >> +0003136786 00000 n +0003137210 00000 n +0003137341 00000 n +0003141252 00000 n +0003141507 00000 n +0003141726 00000 n +0003141906 00000 n +0003142086 00000 n +0003142266 00000 n +0003142446 00000 n +0003142626 00000 n +0003142806 00000 n +0003142991 00000 n +0003143176 00000 n +0003143356 00000 n +0003143536 00000 n +0003143721 00000 n +0003143906 00000 n +0003144086 00000 n +0003144292 00000 n +0003144504 00000 n +0003144567 00000 n +0003144619 00000 n +0003144724 00000 n +0003144849 00000 n +0003144973 00000 n +0003145344 00000 n +0003145645 00000 n +0003146124 00000 n +0003146523 00000 n +0003147068 00000 n +0003147712 00000 n +0003153961 00000 n +0003156222 00000 n +0003166497 00000 n +0003167054 00000 n +0003167179 00000 n +0003167532 00000 n +0003168272 00000 n +0003168389 00000 n +0003168470 00000 n +0003168628 00000 n +0003168801 00000 n +0003168974 00000 n +0003169167 00000 n +0003169364 00000 n +0003169590 00000 n +0003169765 00000 n +0003169972 00000 n +0003170181 00000 n +0003170379 00000 n +0003170714 00000 n +0003171085 00000 n +0003171258 00000 n +0003171404 00000 n +trailer << /Info 218 0 R /Root 611 0 R /Size 1939 /Prev 3739036 /ID [<75e8fb4f5346631caadd4dd62bc0c8cf><c56a8654f67f089b6bb008ec65f15f3a>] >> startxref 0 %%EOF @@ -1442,7 +1442,7 @@ stream xLH4/IKKS5JJS5k34b M["k4%jj NJHuqjj[Qbn5 endobj 625 0 obj -<< /AA << /PC << /JS 624 0 R /S /JavaScript >> /PI << /JS 624 0 R /S /JavaScript >> /PO << /JS 623 0 R /S /JavaScript >> /PV << /JS 623 0 R /S /JavaScript >> >> /AP << /N 616 0 R >> /BS << /W 0 >> /Contents (animation by animate, v. 2022/02/21) /F 4 /FT /Btn /Ff 65537 /H /N /MK << /I 616 0 R /IF << /FB true /S /A >> /TP 1 >> /Rect [ 333.72 629.38 347.04 638.62 ] /Subtype /Widget /T (anm0) /Type /Annot >> +<< /AA << /PC << /JS 624 0 R /S /JavaScript >> /PI << /JS 624 0 R /S /JavaScript >> /PO << /JS 623 0 R /S /JavaScript >> /PV << /JS 623 0 R /S /JavaScript >> >> /AP << /N 616 0 R >> /BS << /W 0 >> /Contents (animation by animate, v. 2022/08/04) /F 4 /FT /Btn /Ff 65537 /H /N /MK << /I 616 0 R /IF << /FB true /S /A >> /TP 1 >> /Rect [ 333.72 629.38 347.04 638.62 ] /Subtype /Widget /T (anm0) /Type /Annot >> endobj 626 0 obj << /BaseFont /DFMPLS+LinLibertineTI /Encoding 1872 0 R /FirstChar 27 /FontDescriptor 627 0 R /LastChar 246 /Subtype /Type1 /ToUnicode 1871 0 R /Type /Font /Widths [ 564 0 0 0 0 0 0 0 0 0 0 0 268 306 313 0 0 219 333 219 291 0 0 0 0 444 0 0 0 0 444 219 0 0 527 0 0 0 667 557 0 667 526 457 664 0 280 414 637 519 804 0 668 499 0 0 454 544 0 597 0 628 0 0 0 0 0 0 0 268 486 478 389 489 401 314 477 519 276 259 486 266 783 518 447 489 0 357 353 307 521 472 688 475 503 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 447 ] >> @@ -1483,7 +1483,7 @@ stream xLH4/IKKS5JJS5k34b M["k4%jj NJHuqjj[Qbn5 endobj 634 0 obj -<< /AA << /PC << /JS 633 0 R /S /JavaScript >> /PI << /JS 633 0 R /S /JavaScript >> /PO << /JS 632 0 R /S /JavaScript >> /PV << /JS 632 0 R /S /JavaScript >> >> /AP << /N 628 0 R >> /BS << /W 0 >> /Contents (animation by animate, v. 2022/02/21) /F 4 /FT /Btn /Ff 65537 /H /N /MK << /I 628 0 R /IF << /FB true /S /A >> /TP 1 >> /Rect [ 124.8 547.18 166.8 559.06 ] /Subtype /Widget /T (anm1) /Type /Annot >> +<< /AA << /PC << /JS 633 0 R /S /JavaScript >> /PI << /JS 633 0 R /S /JavaScript >> /PO << /JS 632 0 R /S /JavaScript >> /PV << /JS 632 0 R /S /JavaScript >> >> /AP << /N 628 0 R >> /BS << /W 0 >> /Contents (animation by animate, v. 2022/08/04) /F 4 /FT /Btn /Ff 65537 /H /N /MK << /I 628 0 R /IF << /FB true /S /A >> /TP 1 >> /Rect [ 124.8 547.18 166.8 559.06 ] /Subtype /Widget /T (anm1) /Type /Annot >> endobj 635 0 obj << /BaseFont /EPUAGO+LibertinusT1Math /Encoding 1882 0 R /FirstChar 11 /FontDescriptor 636 0 R /LastChar 122 /Subtype /Type1 /ToUnicode 1881 0 R /Type /Font /Widths [ 522 472 458 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 220 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 299 0 0 0 475 503 436 ] >> @@ -1715,7 +1715,7 @@ stream xLH4/IKKS5JJS5k34b M["k4%jj NJHuqjj[Qbn5 endobj 671 0 obj -<< /AA << /D << /JS (try{if\(a2_playing\){a2_pause\(\);}}catch\(e\){}) /S /JavaScript >> /PC << /JS 670 0 R /S /JavaScript >> /PI << /JS 670 0 R /S /JavaScript >> /PO << /JS 669 0 R /S /JavaScript >> /PV << /JS 669 0 R /S /JavaScript >> /U << /JS (try{if\(event.shift\)a2_playsRight=!a2_playsRight;var\ndoplay=true;if\(a2_idx==8&&a2_playsRight\){a2_stopFirst\(\);}if\(a2_idx==0&&!a2_playsRight\){a2_stopLast\(\);}if\(doplay\){if\(a2_playsRight\){a2_playRight\(\);}else{a2_playLeft\(\);}}}catch\(e\){}) /S /JavaScript >> >> /AP << /N 643 0 R >> /BS << /W 0 >> /Contents (animation by animate, v. 2022/02/21) /F 4 /FT /Btn /Ff 65536 /H /N /MK << /I 643 0 R /IF << /FB true /S /A >> /TP 1 >> /Rect [ 217.2 554.14 376.2 716.14 ] /Subtype /Widget /T (anm2) /Type /Annot >> +<< /AA << /D << /JS (try{if\(a2_playing\){a2_pause\(\);}}catch\(e\){}) /S /JavaScript >> /PC << /JS 670 0 R /S /JavaScript >> /PI << /JS 670 0 R /S /JavaScript >> /PO << /JS 669 0 R /S /JavaScript >> /PV << /JS 669 0 R /S /JavaScript >> /U << /JS (try{if\(event.shift\)a2_playsRight=!a2_playsRight;var\ndoplay=true;if\(a2_idx==8&&a2_playsRight\){a2_stopFirst\(\);}if\(a2_idx==0&&!a2_playsRight\){a2_stopLast\(\);}if\(doplay\){if\(a2_playsRight\){a2_playRight\(\);}else{a2_playLeft\(\);}}}catch\(e\){}) /S /JavaScript >> >> /AP << /N 643 0 R >> /BS << /W 0 >> /Contents (animation by animate, v. 2022/08/04) /F 4 /FT /Btn /Ff 65536 /H /N /MK << /I 643 0 R /IF << /FB true /S /A >> /TP 1 >> /Rect [ 217.2 554.14 376.2 716.14 ] /Subtype /Widget /T (anm2) /Type /Annot >> endobj 672 0 obj << /BBox [ 0 8270 150 8420 ] /Filter /FlateDecode /FormType 1 /Matrix [ 0.833333 0 0 -0.833333 0 7016.67 ] /Resources << /ProcSet [ /PDF ] >> /Subtype /Form /Type /XObject /Length 165 >> @@ -4184,7 +4184,7 @@ stream xLH4/IKKS5JJS5k34b M["k4%jj NJHuqjj[Qbn5 endobj 1170 0 obj -<< /AA << /D << /JS (try{if\(a3_playing\){a3_pause\(\);}}catch\(e\){}) /S /JavaScript >> /PC << /JS 1169 0 R /S /JavaScript >> /PI << /JS 1169 0 R /S /JavaScript >> /PO << /JS 1168 0 R /S /JavaScript >> /PV << /JS 1168 0 R /S /JavaScript >> /U << /JS (try{if\(event.shift\)a3_playsRight=!a3_playsRight;var\ndoplay=true;if\(a3_idx==100&&a3_playsRight\){a3_stopFirst\(\);}if\(a3_idx==0&&!a3_playsRight\){a3_stopLast\(\);}if\(doplay\){if\(a3_playsRight\){a3_playRight\(\);}else{a3_playLeft\(\);}}}catch\(e\){}) /S /JavaScript >> >> /AP << /N 966 0 R >> /BS << /W 0 >> /Contents (animation by animate, v. 2022/02/21) /F 4 /FT /Btn /Ff 65536 /H /N /MK << /I 966 0 R /IF << /FB true /S /A >> /TP 1 >> /Rect [ 159.12 451.78 434.16 716.14 ] /Subtype /Widget /T (anm3) /Type /Annot >> +<< /AA << /D << /JS (try{if\(a3_playing\){a3_pause\(\);}}catch\(e\){}) /S /JavaScript >> /PC << /JS 1169 0 R /S /JavaScript >> /PI << /JS 1169 0 R /S /JavaScript >> /PO << /JS 1168 0 R /S /JavaScript >> /PV << /JS 1168 0 R /S /JavaScript >> /U << /JS (try{if\(event.shift\)a3_playsRight=!a3_playsRight;var\ndoplay=true;if\(a3_idx==100&&a3_playsRight\){a3_stopFirst\(\);}if\(a3_idx==0&&!a3_playsRight\){a3_stopLast\(\);}if\(doplay\){if\(a3_playsRight\){a3_playRight\(\);}else{a3_playLeft\(\);}}}catch\(e\){}) /S /JavaScript >> >> /AP << /N 966 0 R >> /BS << /W 0 >> /Contents (animation by animate, v. 2022/08/04) /F 4 /FT /Btn /Ff 65536 /H /N /MK << /I 966 0 R /IF << /FB true /S /A >> /TP 1 >> /Rect [ 159.12 451.78 434.16 716.14 ] /Subtype /Widget /T (anm3) /Type /Annot >> endobj 1171 0 obj << /AA << /D << /JS (a3_stopFirst\(\);) /S /JavaScript >> >> /AP << /N 672 0 R >> /BS << /W 0 >> /F 0 /FT /Btn /Ff 65536 /H /I /MK << /I 672 0 R /IF << /FB true /S /A >> /TP 1 >> /Rect [ 229.92 435.94 244.32 450.34 ] /Subtype /Widget /T (3.EndLeft) /Type /Annot >> @@ -7674,7 +7674,7 @@ stream xLH4/IKKS5JJS5k34b M["k4%jj NJHyqjj[Qbno
endobj 1244 0 obj -<< /AA << /D << /JS (try{if\(a4_playing\){a4_pause\(\);}}catch\(e\){}) /S /JavaScript >> /PC << /JS 1243 0 R /S /JavaScript >> /PI << /JS 1243 0 R /S /JavaScript >> /PO << /JS 1242 0 R /S /JavaScript >> /PV << /JS 1242 0 R /S /JavaScript >> /U << /JS (try{if\(event.shift\)a4_playsRight=!a4_playsRight;if\(a4_idx==0\)a4_playsRight=true;if\(a4_idx==28\)a4_playsRight=false;if\(a4_playsRight\){a4_playRight\(\);}else{a4_playLeft\(\);}}catch\(e\){}) /S /JavaScript >> >> /AP << /N 1212 0 R >> /BS << /W 0 >> /Contents (animation by animate, v. 2022/02/21) /F 4 /FT /Btn /Ff 65536 /H /N /MK << /I 1212 0 R /IF << /FB true /S /A >> /TP 1 >> /Rect [ 174.6 584.14 418.68 716.14 ] /Subtype /Widget /T (anm4) /Type /Annot >> +<< /AA << /D << /JS (try{if\(a4_playing\){a4_pause\(\);}}catch\(e\){}) /S /JavaScript >> /PC << /JS 1243 0 R /S /JavaScript >> /PI << /JS 1243 0 R /S /JavaScript >> /PO << /JS 1242 0 R /S /JavaScript >> /PV << /JS 1242 0 R /S /JavaScript >> /U << /JS (try{if\(event.shift\)a4_playsRight=!a4_playsRight;if\(a4_idx==0\)a4_playsRight=true;if\(a4_idx==28\)a4_playsRight=false;if\(a4_playsRight\){a4_playRight\(\);}else{a4_playLeft\(\);}}catch\(e\){}) /S /JavaScript >> >> /AP << /N 1212 0 R >> /BS << /W 0 >> /Contents (animation by animate, v. 2022/08/04) /F 4 /FT /Btn /Ff 65536 /H /N /MK << /I 1212 0 R /IF << /FB true /S /A >> /TP 1 >> /Rect [ 174.6 584.14 418.68 716.14 ] /Subtype /Widget /T (anm4) /Type /Annot >> endobj 1245 0 obj << /AA << /D << /JS (a4_stopFirst\(\);) /S /JavaScript >> >> /AP << /N 672 0 R >> /BS << /W 0 >> /F 0 /FT /Btn /Ff 65536 /H /I /MK << /I 672 0 R /IF << /FB true /S /A >> /TP 1 >> /Rect [ 229.92 568.42 244.32 582.7 ] /Subtype /Widget /T (4.EndLeft) /Type /Annot >> @@ -16192,7 +16192,7 @@ stream xLH4/IKKS5JJS5k34b M["k4%jj NJH}qjj[QbnH endobj 1742 0 obj -<< /AA << /D << /JS (try{if\(a5_playing\){a5_pause\(\);}}catch\(e\){}) /S /JavaScript >> /PC << /JS 1741 0 R /S /JavaScript >> /PI << /JS 1741 0 R /S /JavaScript >> /PO << /JS 1740 0 R /S /JavaScript >> /PV << /JS 1740 0 R /S /JavaScript >> /U << /JS (try{if\(event.shift\)a5_playsRight=!a5_playsRight;var\ndoplay=true;if\(a5_idx==190&&a5_playsRight\){a5_stopFirst\(\);}if\(a5_idx==0&&!a5_playsRight\){a5_stopLast\(\);}if\(doplay\){if\(a5_playsRight\){a5_playRight\(\);}else{a5_playLeft\(\);}}}catch\(e\){}) /S /JavaScript >> >> /AP << /N 1448 0 R >> /BS << /W 0 >> /Contents (animation by animate, v. 2022/02/21) /F 4 /FT /Btn /Ff 65536 /H /N /MK << /I 1448 0 R /IF << /FB true /S /A >> /TP 1 >> /Rect [ 125.28 395.38 468 716.14 ] /Subtype /Widget /T (anm5) /Type /Annot >> +<< /AA << /D << /JS (try{if\(a5_playing\){a5_pause\(\);}}catch\(e\){}) /S /JavaScript >> /PC << /JS 1741 0 R /S /JavaScript >> /PI << /JS 1741 0 R /S /JavaScript >> /PO << /JS 1740 0 R /S /JavaScript >> /PV << /JS 1740 0 R /S /JavaScript >> /U << /JS (try{if\(event.shift\)a5_playsRight=!a5_playsRight;var\ndoplay=true;if\(a5_idx==190&&a5_playsRight\){a5_stopFirst\(\);}if\(a5_idx==0&&!a5_playsRight\){a5_stopLast\(\);}if\(doplay\){if\(a5_playsRight\){a5_playRight\(\);}else{a5_playLeft\(\);}}}catch\(e\){}) /S /JavaScript >> >> /AP << /N 1448 0 R >> /BS << /W 0 >> /Contents (animation by animate, v. 2022/08/04) /F 4 /FT /Btn /Ff 65536 /H /N /MK << /I 1448 0 R /IF << /FB true /S /A >> /TP 1 >> /Rect [ 125.28 395.38 468 716.14 ] /Subtype /Widget /T (anm5) /Type /Annot >> endobj 1743 0 obj << /AA << /D << /JS (a5_stopFirst\(\);) /S /JavaScript >> >> /AP << /N 672 0 R >> /BS << /W 0 >> /F 0 /FT /Btn /Ff 65536 /H /I /MK << /I 672 0 R /IF << /FB true /S /A >> /TP 1 >> /Rect [ 229.92 379.54 244.32 393.94 ] /Subtype /Widget /T (5.EndLeft) /Type /Annot >> @@ -16694,7 +16694,7 @@ stream xLH4/IKKS5JJS5k34b M["k4%jj NJHuqjj[Qbn5 endobj 1840 0 obj -<< /AA << /D << /JS (try{if\(a6_playing\){a6_pause\(\);}}catch\(e\){}) /S /JavaScript >> /PC << /JS 1839 0 R /S /JavaScript >> /PI << /JS 1839 0 R /S /JavaScript >> /PO << /JS 1838 0 R /S /JavaScript >> /PV << /JS 1838 0 R /S /JavaScript >> /U << /JS (try{if\(event.shift\)a6_playsRight=!a6_playsRight;if\(a6_idx==0\)a6_playsRight=true;if\(a6_idx==25\)a6_playsRight=false;if\(a6_playsRight\){a6_playRight\(\);}else{a6_playLeft\(\);}}catch\(e\){}) /S /JavaScript >> >> /AP << /N 1786 0 R >> /BS << /W 0 >> /Contents (animation by animate, v. 2022/02/21) /F 4 /FT /Btn /Ff 65536 /H /N /MK << /I 1786 0 R /IF << /FB true /S /A >> /TP 1 >> /Rect [ 176.4 165.34 417 418.66 ] /Subtype /Widget /T (anm6) /Type /Annot >> +<< /AA << /D << /JS (try{if\(a6_playing\){a6_pause\(\);}}catch\(e\){}) /S /JavaScript >> /PC << /JS 1839 0 R /S /JavaScript >> /PI << /JS 1839 0 R /S /JavaScript >> /PO << /JS 1838 0 R /S /JavaScript >> /PV << /JS 1838 0 R /S /JavaScript >> /U << /JS (try{if\(event.shift\)a6_playsRight=!a6_playsRight;if\(a6_idx==0\)a6_playsRight=true;if\(a6_idx==25\)a6_playsRight=false;if\(a6_playsRight\){a6_playRight\(\);}else{a6_playLeft\(\);}}catch\(e\){}) /S /JavaScript >> >> /AP << /N 1786 0 R >> /BS << /W 0 >> /Contents (animation by animate, v. 2022/08/04) /F 4 /FT /Btn /Ff 65536 /H /N /MK << /I 1786 0 R /IF << /FB true /S /A >> /TP 1 >> /Rect [ 176.4 165.34 417 418.66 ] /Subtype /Widget /T (anm6) /Type /Annot >> endobj 1841 0 obj << /AA << /D << /JS (a6_stopFirst\(\);) /S /JavaScript >> >> /AP << /N 672 0 R >> /BS << /W 0 >> /F 0 /FT /Btn /Ff 65536 /H /I /MK << /I 672 0 R /IF << /FB true /S /A >> /TP 1 >> /Rect [ 229.92 149.62 244.32 163.9 ] /Subtype /Widget /T (6.EndLeft) /Type /Annot >> @@ -16986,12 +16986,10 @@ endobj << /BaseEncoding /WinAnsiEncoding /Differences [ 11 /u1D6FC /u1D6FD /u1D6FE 59 /comma 116 /u1D461 120 /u1D465 /u1D466 /u1D467 ] /Type /Encoding >> endobj 1883 0 obj -<< /Filter /FlateDecode /S 425 /O 568 /Length 435 >> +<< /Filter /FlateDecode /S 425 /O 568 /Length 436 >> stream -xc```aпc -
O -4X"m+zMi1ض;oԟH꿿tftmOgn9=i7 -ӎ +xc```aпc +
L IN5,`a`udT`縚5G Su,[dWOserz w`6S A{'cjg!u؛*`j endstream endobj 1884 0 obj @@ -17001,28 +16999,25 @@ endobj << /FT /Btn /Ff 65537 /Rect [ 0.960007 837.94 3.96001 840.94 ] /Subtype /Widget /T (pbs@ARFix@1) /Type /Annot >> endobj 1886 0 obj -<< /Filter /FlateDecode /Length 3845 >> -stream -x[ms5e,NzHH8R㨃6+OKQƛu쨻կOKjqv始'D -&gG?)Кze,.+[OKu*vKǤ\>IP xt -O2:Rѩ;H% -X0!8'ɏVxv:'{ݓ`E)++Gw`{4=9aJHeu1QlOy|bel(cDw/AZikAZ2afvڹn}=iGċ>t۪^}mtUI{+f?NВ|xtu} - -
QS\^'HW=aqWQҧ'U=9u<w룏i#uA_W[.io0DmdϾºuiSl4/EŗWGm^lrS6pyv;bG5'
5<G¢2"i<CR&oU0SZ@~I -L4 9^#1BJ."{yQ:$BƗ\6wΔhD1=,1h Dw$11+ҩ{kRF9,Sh)=ꙧdJv -o@!FrJ)BLx/^m$ {oHpf(ydwM ^._JFM79%+1Ef=>ЂAͩLci) -}`U%{f~}_uDJ_0oʚKB 1(LﺓB6<BYk =Ce\x[a#~V -TyR,bm.
tQKAvp5^t7BrbBNl42Y6Ue&NvolfDI8&`Skz٤Q
c'75*|txa~ALY)9i&\)?ERF&ijrU6+sT.z]sD1$r|`AG?<2x._6Z, 6-4փeDb - )X-PUh[s^"ɷ)T"4乄U$O}@R0%rt-'QʳXt %$@9e[D]U8ܐ<K.WhԈeo`X(ŚFC;/PÕ]pqHʯ: .Zhs@Hv+B<f!(Ŷvc=NM#p嬖5p,GK6g_=s4 -<8Ah@Qf=bBRiI3qwBXsw -!o3Z0N9
EeR.ÓotCja>AǨkș
MiB)+|;nڢMii8Ѐy6P17!9E}/ߺEµ
nj|-VrVI#^ޔ4$-(Ժ`[Zp|Xd4kl˔"o :r<eȚ->39
nQ:+hW(%!q-HNf1
^l!nRcSb(\y7Z*5C^f`C-7h+H-շ-B>~h3)?JnZCu+'<Ы<W-;QۇL`(C2f}+Dq-ȁ.A?ˢh@qIQ'7l,91TA?&QZ6V:F.[Nva"Dw?xG^m{ϓ&xH\ W=)Ge>wR -;9!Y#ugi>'[\{-5?ox='MwBBP6GѨAV>%R:V7WȕH)Jޭn䵳'xX>jmڦ>&/睹af)`jbZ_sH[pƧZlтmwnXl?r:x
ej - ->tP=vg
͡@LSy$!?A*͚55宆$y|Q_nux: J^o+1j21b0]|% -oO|V>% Ң]F=PWD1Iz.fэE+|"N iT%ߨXm;s|k?r>c?mGZA:[Eſ}rkS{|_c=@!x1WW,E5w]DovH2̆WJ{q>|:\A0;l:M<LFr|RQW&-P -c4|un-<̏xaX?
E -Y )/_
5DXk]"&r9lQo5 -4\b
ubmO ;r.'<<\\
S]-=~A.taXaezC|qLj*T?ܑ >}YGax^\ O4/c"#vuerv!BOo8Yo̧uw*OL<r#&h {|0'J!q|9-"Z_UT%7Yh$AIzɯSƔ\>pZF>):|K/D +<< /Filter /FlateDecode /Length 3836 >> +stream +x[ms5e,ŎzߒpQWu +OKQ7v쨻կOK'jqz始^ZhMmou˕D%:hKǤ\>IP xeeu&t SwJBw\aBpO^};ح<jtN'1SWWN0*mrizr&y)ÔbxQ +Z>QJ=Dw@ZikAZ2afvڹnli{Ҏg{}. U)4ޓV~#%૫, +K.`rN^Ǒ谸u)9,pIUOz59k,9)e}Qn
Nl6RzUO:d>:bt8m
M֛;([g[6eo=fxŃ>bwt&&%mhE!,rF`g9SD͋)-
8[N)F̘|qSr^zH_#1B-"7ֺdRLw}s0DN^
O!2/NӒOlG[5)VXT}E|ڔ|Sm2%;b7 a#9Ŕ!&]ߣP6B&qi +Tɜ7X7KFRqe?\
W0]
%䡘A0[G@0%ձLqMlK6O$hH<A*W>LU7vrSgIG"E
ΎI8mA"xZ/62ISƶq_lNuF9+wŐq&7(Vsm8$Xll5[hˈ< pcd&|};)m!wo;x}1lfĨHAQ.2Fp0dVT+!і8z-[IZb7`ts)m&e>XC_6Na7rfҎ0Rj. Y)gS \U߸=H` UuZMP5~m1+|˝B%BcJKHZLԷ ,`- +S.GarPkm9,iFyBs< !PN?fyڝ;!x +gkg҅ +]
+`RQ-Gn"2)7U!0SA̠c~ʵ@`̆&T4!UӔUh~]Rhm;uB,u4 bf
TMnHrNmQ'7nspmksCwJvl4EMY!@O61b08AU͇EJF3_jƶL)#G#Y2<s)y@ByRWrnd.ݕdIFpƦCͻYƨT*0c܀ +(3[jXSh9嵯=u=<3eAZj#<`O^N#N.9ܱuIpnbe0Gc(I肁]/5|8qDEČ|#h؆>D㔧/rkJ=X97AD+xn<?b
(}3iD8zCy +^ +C4l64kH֔r+7ge G}||jMЧP_LPE +dxG_QQQCr#,@ +?ek+FTt۽уὙ1+zxӍ +vI';1Cw趁#\)}E$J L9݁ +ؼa}km4T컅n
zi27,1}"(lx/Q\wSJ@\Z4 iQDk|-pMu41Dʦ&> +.*op@wچ[ݟYWD?d,Y"z#{G*XRa6Tmw
GÅqæ$-.NZ|dt,8˷&%n|u*jD=m?+ҝr
x[>YDFpda+#ʰH#]oQ>~ +=Y\dYO4-ީN?1ȍآi:zFwIk~*0L3dȷh})W-SlO%%N#RvrIǽ6ͷBྐE(dySgk)":qw}$gOK+
K눤7u7{2`#VI竄en.1cA|lͻd0`BC`j ՏLދPNKHێ?2noC1*;%?;42bSڅ('>Uf#_Uh>FbsdZF u,^|u?endstream endobj 1887 0 obj << /AA << /PC << /JS 624 0 R /S /JavaScript >> /PI << /JS 624 0 R /S /JavaScript >> /PO << /JS 623 0 R /S /JavaScript >> /PV << /JS 623 0 R /S /JavaScript >> >> /F 2 /Rect [ 333.72 629.38 338.76 634.54 ] /Subtype /Screen /Type /Annot >> @@ -17589,31 +17584,41 @@ endobj << /FT /Btn /Ff 65537 /Rect [ 0.960007 837.94 3.96001 840.94 ] /Subtype /Widget /T (pbs@ARFix@9) /Type /Annot >> endobj 49 0 obj -<< /Filter /FlateDecode /Length 6053 >> -stream -x]YeGu~)Op<X)D82H1n_>nnZ5v,|طvUkT~xxz髻x87¨+;W>>^m\h-7Gi=|v䛔Z~zx|x{La^o{_HSxl3/}-7/{9wo࣌{%M;/3~_|%Y8BY|o-Y_N({9|[ΌVŅ<xe:2;x?~=MpfCr΄ՇϑιL~y|yf<;U'
b<:"V+ERԧ;WxyxM::6rzrsיL[#ؼ{$`9j?E29@Ezx;,.ư@S8{fC3XX3 8|j/ 4}C
㔆
"#"2ܤɿC2a@Q}9Y0y=FQF)7nv
Kq-eqV 1⧼dQFnd4 -*}YzXV_œ3Sʭ^̇A µyZiP^FZU(a7]upO^$zKyˣt)XDG9bS>o$UԶVo!"Ig2NH<+7gSbP4zEXP4z3$bs.s }e.0C܂>:Yaw9~+2P>?*)B4#lҝ#$OXl!k+{H=j[UAG3`w+FszWX&D,a[ǣvW;*pADhA8;=9`4fOQHk1~f -n1귃|Z^߾PήE 0j8ph0QŽҪEd5d^d]opC,($\܋W1ټL]0@@Mb䝓͎ -Rk HaòDc[ ܻwvhv!SKr~և Zi$ fҲ,xiOˌzMf5QJ(u%SmZԮi$*GNh$-Id G -pH3gPsNC$>1])??,/×BLd~,d9.qmes -F|pٽ`ke8 -KрOt5`:[$Z$NAP?ASuÞ(YKt%@%KDBc2R3}PLǯH~DM7 @EƱإմ#` i`STJe}Kn+O0&s$$S;#nr!F$yį
M_(9'h]o;yīt YPuWfeE1=flf(&Ir3cDki݃3!@2%bxPL2VD¿gUgjW*pRVel(8*x 6SQ֧ȚbfqZ#e6-v̘>bR:Uu^SJmx2l߹eHӘwfqζ+$nW3@aZAAۀX_@/d@j,,0p,Ls]tTՇ1UwOcm -ITO2)( N7˥Lj P\֦/+[\(x
& n7q8/]3?clFq1%kV.KMAN9J獤Ʈ29ӑa%ЫGCO(7A%% -,z
6Hau -jͻ)$}1Hn}¹T^֦p2'j%:X`c<%UmU:=z~,(:!Mo3q'R4_d xV3t٥O1jD°gY5t'O[*UsWVWu`AeuzSVSt6rBYtE`G`~pS0T8z -MxEHlD@m$u}11My(1mj :_2;s''xC%leZO~sk'lǚ!.(j~fSFC3Cǥ_M))] =!KWLt8v$Q^"i+
梿Ŭ)=&[=KL>X4*"Mb3B8l9]u#IWKmB@s_K -~jU7C;(V`˹x06)j ".tE/R&YPfhWXq.5*(SJ(=t_m7&T6W9KR9-nmRv|>\GPluS]U_sլB胸j"JJ
P#$JZV5>˅['ʺ -Vw.C;A"n*Xc>D?6֫?tlu껱|Ӱ%:4w&UIz%@ -+z4__&=#+p)dYCx,(&i -A珷5X/nu0a"Izt̀AA#RY;+[eux@?^a\s}nbp@6I -Fo -.S8[z\&7Z-G8=L}mzanjRrC -Xrl7bC(-,QѢVŰZĈ2I"/>>OIޯlD37=Ɓ!ŖyUNt7OW).\W3oӊexmti -DpPz'6^t)<J 2g,>mqdg]Ϙ -@8e`O˭b~
;pa(şe<NW+5-0Z -!> t`nt&9:YiZ*8zyY-f -GIݹ8|M(XZ,Q[мۆ4Ǚz/ZD.-y+vlJmlLʾvX]ʵKS8QoZ Af+(]P]7Bpxrq7D?/z{PrKk1Wխ=MuR]n|_hK_ŋg -?,8endstream +<< /Filter /FlateDecode /Length 6035 >> +stream +x]Yu~_Stoi8pY@hI#&dNsNVSgVҿ~z3ޥ>}~)w~FuY|q6wgٸ{g;ޫ6/|Rksx<åۇbs0lS>?p|yfT}<r
>x6=|qdR<9<b$s~z/`\k~Ru5 ⸖K|rf<~w40+.5>썷yVLkޏ_lYYwnr΄ՇιL~y|qf<|1nkfhw)qwg=˼x
:Ho9ݹ9Lo^Zl^vo=0ϟ5p՟"{UY}=_R cX)lf3N,a5˃ +I&0>yH(U7N8H +28*KAS +2 #D2p +e῎ +w*I, +l83R2_%)|}>>܍nJ_#8kA"1sFxJՋy?# +HŽ~DTT, M9>
LBӃDQs ړ$LHEr˦A3U+ uB"1k3p_cJa_#iQ~͎c~2A`uV᷐P5ywtQch5x}<l"5,Q'6 ,,es¯Tf<92EĭJ~0%gbW31Brep[nrsdMX@s<nOocE;%i&rG{EeQuzѺ2Ёj$?IpF@lV}ST?QORܻ0لZ2YUZ,7ྤڻ#,=\UUupoC][jĂNaI|Rm#;oݏ6f +`~X 6 V7P Xȉ +h8sF vTqRv +8i=qz,&I(-3ei-Plq15\1(6j/ +!2c]i%AP$pp*x +bxĺFd%Xz@/d>,,0pd/Hs]tTՇ~1YUOce^~)
jIc DD.`!N=|ơ40CQO23) ^/42?0<bbnq54&a)N;PH '؈ے5+`EMO0tHj*?9l:OOᎅ@}7n5CLe֩.JsMq^Zĸ cI1D1<`fh"&KU!䣯Kw
cOhsjRVra/ÐȻ+7iEY~d 7g-)biQw
%U4OqPzzpX5`ѻhoA{0ZݏJ8K]F4$:!O$mu@E!Y ڂM}b=ΑRbBt(æoڪ^WTk4[Q:\z| +;b]֗{CvWiAVcH%imxw{Iɬ3%&}VDqH7ϝJ8Vt5$<M]Ww`}b
Q{?HI1H׳'Vn~2[yeYCYzW
>./\d`} +j鿻)$}16G~UI@-զo2&j% :`c<%Um Y: +/Dgܕũt"*Xʓ aҍy݃ޔeƔ}'gUܹP |V@$DѠ.X +7!7N@R!X[IgSFd&pznT埋fi)DK}1ɖ̡8Aӓ +̀6ZxAƓԛֿ0QHT)t/z ȂB0C;NJtXQEZWBѤj~0a|5J(PWd*XEֺR9-n}_`lcy%qv]7ZߵmXD]9jV!qGV%-h_xZtAsU['L'sdb>a/;|Oa H|s`4ѕ-yT#!I= +FŁ4 +t +PPwnayCJ<k|9$_&5H__؇(xAsF>zMs}Y{ų|Ӱ$s$
di§SHjXEmu\qLNFkQ|.8i읏JM}yP~҇p9VXѣ:|Oxnng1?d
=`fKgWyvZ8Sىlx +W&d@
LH$4r+Ӻ;_Q +
5Gt&gI
$for7)v[-=9f
. +|N|&ɾ607{5i!V +/5j&b0W; +ἥIjo4ZLe-{[9Hx]ۻ-7"٥cv\v=i@NWީpləޛNiۋvDhHĢ<=X?ݺl!S +vkms,bvC>&xR\6³p9#V\m'ۍy8<r6J7Z!cXE}]|aщˁsDG+Ep}.},н_8zfn z&:C-}莛jX+C]rXyߦcڎP
%f-\ENm<Jyԕ,:@X|ڪv1qZ[u<ϰ=Uy1-c{O4v0`nt&9u㱒mTkUGO/ۨdh>61.e-pפ4 H,LJXgWe3R t9+ؼP%sMjG$?&hB˝ڽ? ځ +<>@cEYV)ϏH@8#F +b97Zsi(9\}WrhRgw.5_s +ָ"DT-4o㶡(m-q&яHԥ%/^s{$ԎMO=Xn'՚M\=f[R?YU +z?k/$_ +gת,whE/rUqiW2&|iT }opÉ +@E_B/_< endobj 50 0 obj << /R11 612 0 R /R43 1913 0 R >> @@ -17625,7 +17630,7 @@ endobj << /FT /Btn /Ff 65537 /Rect [ 0.960007 837.94 3.96001 840.94 ] /Subtype /Widget /T (pbs@ARFix@10) /Type /Annot >> endobj 53 0 obj -<< /Filter /FlateDecode /Length 5525 >> +<< /Filter /FlateDecode /Length 5528 >> stream x\[\G~߿3sKH! 5|P?}3atsɎR*)axV)TϙU.gκ9.{#oC\aqW;a4Pg,;jZ^BLۅt?<$0#">}SAM%͝\Α@#pU@(K|5RVÀuB]*at;"0#vv8p+$ PxZ/?#y>nΌwvc?wЍ1I!paI{[dVg!r:Q@_1\6Y]8qZ\˯K~8 @@ -17637,22 +17642,12 @@ x\[\G~߿3sKH! 8MOOXas`dd O` rO ƸqGhm0{jSն . RyT'RZ|瓟0 e -%%c<h|5Ă(ZɪP&WZ3a1܈g -ZZ꒞!ȟ]UKRNGHI9:)'FV sTklfoAj͡Pvz=8v]밖xm( m5yMBR&/DVez!u=$:ص[pqlӤE(oh
7^|B"X%wT\oo4v-{ ~-YˈYok!`Xg~?A$;O-JPȺixaDza< W#źK"b1pM|܉H"5wzEKES,4~[bWt%'^P+m+
l%2~e1z.lqIMZKsENTK#9YXy
Z>1U0O30=q? -VZjBZH -\@ByG)Eʦ Ϥ0/{rz:bU)*/6AV[WwdN1ͫ-o-W%p:TV7D$ c(NuB}-{85E'8n^;:VQ$%zV9>TBA3`) -TjMxzM!5V❐y|AȮ! -3A{պ9%O* -ۨ#+
)Su/
-'wו> -XQ[Z̥%IZF`h]隰 M!vDXr/ -{i>P+X4ZHJ4x?f[L(dK O͚0 6`VPJ
:2t=*xwǗʠ!gfAԧK&;8n@'J,Йq/0(
@)0[!;V*AEƻĩ*=|$dv'+)u(E:1I7x4\ֳI.xV* -tR|lCn%;`s'ߎ)\hC\.B -r̐ܧȏO~(<>MwJC;,Ͳj@+wvC;ANGqVOjaz -nY#U5E"kQs9_f i͗*ޘT,\$Ywj5.D'G} 9843' |զ'9X3& -gDn7ZwvF>G5A>F19$ լYR}uiA~ЀpuzZ!]JRSg{9-'^LOp^G6? o2nnD=JT5=ӑ`_ZdGߕ -r7+[ґ-85r:}J@KDN <XEz9˄8
pMxoYoJ|dDB^j>m@m⤠ȤZ5蠒`|pۏǡfFg**ݸ_PtPDx-y4o>=vX.\3BU"vpb~KtχD+OI/A'y-A[v;Glڇ#o<:RƥVׇ`2laB[bmULg;L` -isvwSl>uW}q"UdG\64|xHf6۸)_&L\-/mHB~dF7iB8Kx1+֜`wov;z_.Al?sVl"Ǟ`mwB.<^ze(!FAKûhrDh S8{?Y48cD\.+1+0)s/^$AUg[a.om -_GXz=BKӕkݔQVEW8ML+
Oc <|1\Tendstream +%%c<h|5Ă(ZɪP&WZ3a1܈g +z NI=j+30^\3Ihs4]).KnU~œP4t/g# +wFIlK7 +Jx[AGGeVR4,ȿzidՍ$Bs:307:Ŗf0;Vfq+DyǪ_%(wx8U'4x= +Fg:V,RZAfvE8qK:2fTNO H~ {1)Kh@o1wa m`7[lzAkCg
MtTT`5prӓy8SWExQ^*Q53o5Ϙͧ˅kq&PJ7RNo!=}y}I8(אv)0($%9h.p`Mp`䭂'TGtr5ӸԖJ,Z&y-[(|@ Vl!?-~bilqW\6u.x-Cҧ2N3!0jV+ކxcجf7EX]˄K0ó2e^ȏ(0Map5vؚlnv\O"˅;(
AyΊM]}.Wȅk[E Đר:H{U|xmSSN-|_9Aw +g'1ˁFg,ݕ˥w%fEc}{8%sŋ$4,b+Eݻm@`-}W%Ȉthbf;ޣn endobj 54 0 obj << /A << /D (section.7) /S /GoTo >> /Border [ 0 0 0 ] /C [ 0.701176 0.4 0.414118 ] /H /I /Rect [ 145.524 690.827 152.196 701.685 ] /Subtype /Link /Type /Annot >> @@ -19610,7 +19605,7 @@ endobj << /Activation << /Condition /PO /Presentation << /PassContextClick false /Style /Embedded /Transparent true >> >> /Deactivation << /Condition /PC >> >> endobj 166 0 obj -<< /AP << /N 157 0 R >> /BS << /S /S /W 0 >> /Contents (media embedded by media9 [1.23\(2021/10/18\)]) /F 4 /NM (click) /Rect [ 172.08 165.34 176.4 169.66 ] /RichMediaContent 164 0 R /RichMediaSettings 165 0 R /Subtype /RichMedia /Type /Annot >> +<< /AP << /N 157 0 R >> /BS << /S /S /W 0 >> /Contents (media embedded by media9 [1.25\(2022/08/04\)]) /F 4 /NM (click) /Rect [ 172.08 165.34 176.4 169.66 ] /RichMediaContent 164 0 R /RichMediaSettings 165 0 R /Subtype /RichMedia /Type /Annot >> endobj 167 0 obj << /AA << /PC << /JS 1839 0 R /S /JavaScript >> /PI << /JS 1839 0 R /S /JavaScript >> /PO << /JS 1838 0 R /S /JavaScript >> /PV << /JS 1838 0 R /S /JavaScript >> >> /F 2 /Rect [ 176.4 165.34 180.6 169.66 ] /Subtype /Screen /Type /Annot >> @@ -19897,7 +19892,7 @@ endobj << /Count 29 /Kids [ 1884 0 R 1 0 R 9 0 R 16 0 R 22 0 R 31 0 R 37 0 R 43 0 R 47 0 R 51 0 R 58 0 R 64 0 R 73 0 R 83 0 R 87 0 R 96 0 R 100 0 R 107 0 R 116 0 R 122 0 R 129 0 R 141 0 R 147 0 R 154 0 R 170 0 R 176 0 R 180 0 R 184 0 R 192 0 R ] /Type /Pages >> endobj 218 0 obj -<< /Author <feff0041006c006500780061006e00640065007200200047007200610068006e> /CreationDate (D:20220221150420+01'00') /Creator <feff004c006100540065005800200077006900740068002000680079007000650072007200650066> /Keywords <feff0069006e0063006c00750064006500200070006f0072007400610062006c0065002000500044004600200061006e0069006d006100740069006f006e002000530056004700200061006e0069006d006100740069006f006e00200061006e0069006d0061007400650064002000500044004600200061006e0069006d006100740065006400200053005600470020006400760069007300760067006d002000680074006d006c0020005400650058003400680074002000770065006200200061006e0069006d006100740069006e006700200065006d00620065006400200061006e0069006d00610074006500640020006700720061007000680069006300730020004c00610054006500580020007000640066004c00610054006500580020004c00750061004c00610054006500580020005000530054007200690063006b00730020007000670066002000540069006b005a0020004c0061005400650058002d00700069006300740075007200650020004d0065007400610050006f0073007400200069006e006c0069006e006500200067007200610070006800690063007300200076006500630074006f007200200067007200610070006800690063007300200061006e0069006d006100740065006400200047004900460020004c006100540065005800200064007600690070007300200070007300320070006400660020006400760069007000640066006d0078002000580065004c00610054006500580020004a0061007600610053006300720069007000740020004100630072006f00620061007400200052006500610064006500720020004b004400450020004f006b0075006c006100720020005000440046002d0058004300680061006e0067006500200046006f0078006900740020005200650061006400650072002000460069007200650066006f00780020004300680072006f006d00650020004300680072006f006d00690075006d> /ModDate (D:20220221150420+01'00') /Producer (GPL Ghostscript 9.55.0) /Subject <feff0044006f00630075006d0065006e0074006100740069006f006e> /Title <feff00540068006500200061006e0069006d0061007400650020005000610063006b006100670065> >> +<< /Author <feff0041006c006500780061006e00640065007200200047007200610068006e> /CreationDate (D:20220804170136+02'00') /Creator <feff004c006100540065005800200077006900740068002000680079007000650072007200650066> /Keywords <feff0069006e0063006c00750064006500200070006f0072007400610062006c0065002000500044004600200061006e0069006d006100740069006f006e002000530056004700200061006e0069006d006100740069006f006e00200061006e0069006d0061007400650064002000500044004600200061006e0069006d006100740065006400200053005600470020006400760069007300760067006d002000680074006d006c0020005400650058003400680074002000770065006200200061006e0069006d006100740069006e006700200065006d00620065006400200061006e0069006d00610074006500640020006700720061007000680069006300730020004c00610054006500580020007000640066004c00610054006500580020004c00750061004c00610054006500580020005000530054007200690063006b00730020007000670066002000540069006b005a0020004c0061005400650058002d00700069006300740075007200650020004d0065007400610050006f0073007400200069006e006c0069006e006500200067007200610070006800690063007300200076006500630074006f007200200067007200610070006800690063007300200061006e0069006d006100740065006400200047004900460020004c006100540065005800200064007600690070007300200070007300320070006400660020006400760069007000640066006d0078002000580065004c00610054006500580020004a0061007600610053006300720069007000740020004100630072006f00620061007400200052006500610064006500720020004b004400450020004f006b0075006c006100720020005000440046002d0058004300680061006e0067006500200046006f0078006900740020005200650061006400650072002000460069007200650066006f00780020004300680072006f006d00650020004300680072006f006d00690075006d> /ModDate (D:20220804170136+02'00') /Producer (GPL Ghostscript 9.55.0) /Subject <feff0044006f00630075006d0065006e0074006100740069006f006e> /Title <feff00540068006500200061006e0069006d0061007400650020005000610063006b006100670065> >> endobj 219 0 obj << /Limits [ (Doc-Start) (table.4) ] /Names [ (Doc-Start) 221 0 R (Hfootnote.1) 232 0 R (Item.1) 587 0 R (Item.2) 588 0 R (Item.3) 589 0 R (Item.4) 590 0 R (Item.5) 591 0 R (Item.6) 592 0 R (Item.7) 593 0 R (Item.8) 595 0 R (beginend) 242 0 R (cite.chupin) 598 0 R (cite.dvisvgm) 599 0 R (cite.gilg05) 600 0 R (cite.hol) 601 0 R (cite.luque12) 602 0 R (cite.media4svg) 603 0 R (cite.media9) 604 0 R (cite.texsx) 605 0 R (dest:mem) 586 0 R (figure.1) 323 0 R (figure.2) 341 0 R (figure.3) 412 0 R (figure.4) 424 0 R (figure.5) 508 0 R (lstlisting.-1) 255 0 R (lstlisting.-2) 265 0 R (lstlisting.-3) 284 0 R (lstlisting.-4) 324 0 R (lstlisting.-5) 370 0 R (lstlisting.-6) 413 0 R (lstlisting.-7) 480 0 R (lstlisting.-8) 556 0 R (lstlisting.-9) 578 0 R (lstnumber.-1.1) 256 0 R (lstnumber.-1.2) 257 0 R (lstnumber.-1.3) 258 0 R (lstnumber.-1.4) 259 0 R (lstnumber.-1.5) 260 0 R (lstnumber.-1.6) 261 0 R (lstnumber.-1.7) 262 0 R (lstnumber.-2.1) 266 0 R (lstnumber.-2.10) 275 0 R (lstnumber.-2.11) 276 0 R (lstnumber.-2.12) 277 0 R (lstnumber.-2.2) 267 0 R (lstnumber.-2.3) 268 0 R (lstnumber.-2.4) 269 0 R (lstnumber.-2.5) 270 0 R (lstnumber.-2.6) 271 0 R (lstnumber.-2.7) 272 0 R (lstnumber.-2.8) 273 0 R (lstnumber.-2.9) 274 0 R (lstnumber.-3.1) 285 0 R (lstnumber.-3.10) 294 0 R (lstnumber.-3.11) 295 0 R (lstnumber.-3.12) 296 0 R (lstnumber.-3.13) 297 0 R (lstnumber.-3.14) 298 0 R (lstnumber.-3.15) 299 0 R (lstnumber.-3.16) 300 0 R (lstnumber.-3.17) 301 0 R (lstnumber.-3.18) 302 0 R (lstnumber.-3.19) 303 0 R (lstnumber.-3.2) 286 0 R (lstnumber.-3.20) 304 0 R (lstnumber.-3.21) 305 0 R (lstnumber.-3.22) 306 0 R (lstnumber.-3.23) 307 0 R (lstnumber.-3.24) 308 0 R (lstnumber.-3.25) 309 0 R (lstnumber.-3.26) 310 0 R (lstnumber.-3.27) 311 0 R (lstnumber.-3.28) 312 0 R (lstnumber.-3.29) 313 0 R (lstnumber.-3.3) 287 0 R (lstnumber.-3.30) 314 0 R (lstnumber.-3.31) 315 0 R (lstnumber.-3.32) 316 0 R (lstnumber.-3.33) 317 0 R (lstnumber.-3.34) 318 0 R (lstnumber.-3.35) 319 0 R (lstnumber.-3.36) 320 0 R (lstnumber.-3.37) 321 0 R (lstnumber.-3.4) 288 0 R (lstnumber.-3.5) 289 0 R (lstnumber.-3.6) 290 0 R (lstnumber.-3.7) 291 0 R (lstnumber.-3.8) 292 0 R (lstnumber.-3.9) 293 0 R (lstnumber.-4.1) 325 0 R (lstnumber.-4.10) 334 0 R (lstnumber.-4.11) 335 0 R (lstnumber.-4.12) 336 0 R (lstnumber.-4.13) 337 0 R (lstnumber.-4.14) 338 0 R (lstnumber.-4.15) 339 0 R (lstnumber.-4.16) 342 0 R (lstnumber.-4.17) 343 0 R (lstnumber.-4.18) 344 0 R (lstnumber.-4.19) 345 0 R (lstnumber.-4.2) 326 0 R (lstnumber.-4.20) 346 0 R (lstnumber.-4.21) 347 0 R (lstnumber.-4.22) 348 0 R (lstnumber.-4.23) 349 0 R (lstnumber.-4.24) 350 0 R (lstnumber.-4.25) 351 0 R (lstnumber.-4.26) 352 0 R (lstnumber.-4.27) 353 0 R (lstnumber.-4.28) 354 0 R (lstnumber.-4.29) 355 0 R (lstnumber.-4.3) 327 0 R (lstnumber.-4.30) 356 0 R (lstnumber.-4.31) 357 0 R (lstnumber.-4.32) 358 0 R (lstnumber.-4.33) 359 0 R (lstnumber.-4.34) 360 0 R (lstnumber.-4.35) 361 0 R (lstnumber.-4.36) 362 0 R (lstnumber.-4.37) 363 0 R (lstnumber.-4.38) 364 0 R (lstnumber.-4.39) 366 0 R (lstnumber.-4.4) 328 0 R (lstnumber.-4.40) 367 0 R (lstnumber.-4.41) 368 0 R (lstnumber.-4.5) 329 0 R (lstnumber.-4.6) 330 0 R (lstnumber.-4.7) 331 0 R (lstnumber.-4.8) 332 0 R (lstnumber.-4.9) 333 0 R (lstnumber.-5.1) 371 0 R (lstnumber.-5.10) 380 0 R (lstnumber.-5.11) 381 0 R (lstnumber.-5.12) 382 0 R (lstnumber.-5.13) 383 0 R (lstnumber.-5.14) 384 0 R (lstnumber.-5.15) 385 0 R (lstnumber.-5.16) 386 0 R (lstnumber.-5.17) 387 0 R (lstnumber.-5.18) 388 0 R (lstnumber.-5.19) 389 0 R (lstnumber.-5.2) 372 0 R (lstnumber.-5.20) 390 0 R (lstnumber.-5.21) 391 0 R (lstnumber.-5.22) 392 0 R (lstnumber.-5.23) 393 0 R (lstnumber.-5.24) 394 0 R (lstnumber.-5.25) 395 0 R (lstnumber.-5.26) 396 0 R (lstnumber.-5.27) 397 0 R (lstnumber.-5.28) 398 0 R (lstnumber.-5.29) 399 0 R (lstnumber.-5.3) 373 0 R (lstnumber.-5.30) 400 0 R (lstnumber.-5.31) 401 0 R (lstnumber.-5.32) 402 0 R (lstnumber.-5.33) 403 0 R (lstnumber.-5.34) 404 0 R (lstnumber.-5.35) 405 0 R (lstnumber.-5.36) 406 0 R (lstnumber.-5.37) 407 0 R (lstnumber.-5.38) 408 0 R (lstnumber.-5.39) 409 0 R (lstnumber.-5.4) 374 0 R (lstnumber.-5.40) 410 0 R (lstnumber.-5.5) 375 0 R (lstnumber.-5.6) 376 0 R (lstnumber.-5.7) 377 0 R (lstnumber.-5.8) 378 0 R (lstnumber.-5.9) 379 0 R (lstnumber.-6.1) 414 0 R (lstnumber.-6.10) 425 0 R (lstnumber.-6.11) 426 0 R (lstnumber.-6.12) 427 0 R (lstnumber.-6.13) 428 0 R (lstnumber.-6.14) 429 0 R (lstnumber.-6.15) 430 0 R (lstnumber.-6.16) 431 0 R (lstnumber.-6.17) 432 0 R (lstnumber.-6.18) 433 0 R (lstnumber.-6.19) 434 0 R (lstnumber.-6.2) 415 0 R (lstnumber.-6.20) 435 0 R (lstnumber.-6.21) 436 0 R (lstnumber.-6.22) 437 0 R (lstnumber.-6.23) 438 0 R (lstnumber.-6.24) 439 0 R (lstnumber.-6.25) 440 0 R (lstnumber.-6.26) 441 0 R (lstnumber.-6.27) 442 0 R (lstnumber.-6.28) 444 0 R (lstnumber.-6.29) 445 0 R (lstnumber.-6.3) 416 0 R (lstnumber.-6.30) 446 0 R (lstnumber.-6.31) 447 0 R (lstnumber.-6.32) 448 0 R (lstnumber.-6.33) 449 0 R (lstnumber.-6.34) 450 0 R (lstnumber.-6.35) 451 0 R (lstnumber.-6.36) 452 0 R (lstnumber.-6.37) 453 0 R (lstnumber.-6.38) 454 0 R (lstnumber.-6.39) 455 0 R (lstnumber.-6.4) 417 0 R (lstnumber.-6.40) 456 0 R (lstnumber.-6.41) 457 0 R (lstnumber.-6.42) 458 0 R (lstnumber.-6.43) 459 0 R (lstnumber.-6.44) 460 0 R (lstnumber.-6.45) 461 0 R (lstnumber.-6.46) 462 0 R (lstnumber.-6.47) 463 0 R (lstnumber.-6.48) 464 0 R (lstnumber.-6.49) 465 0 R (lstnumber.-6.5) 418 0 R (lstnumber.-6.50) 466 0 R (lstnumber.-6.51) 467 0 R (lstnumber.-6.52) 468 0 R (lstnumber.-6.53) 469 0 R (lstnumber.-6.54) 470 0 R (lstnumber.-6.55) 471 0 R (lstnumber.-6.56) 472 0 R (lstnumber.-6.57) 473 0 R (lstnumber.-6.58) 474 0 R (lstnumber.-6.59) 475 0 R (lstnumber.-6.6) 419 0 R (lstnumber.-6.60) 476 0 R (lstnumber.-6.61) 477 0 R (lstnumber.-6.62) 478 0 R (lstnumber.-6.63) 479 0 R (lstnumber.-6.7) 420 0 R (lstnumber.-6.8) 421 0 R (lstnumber.-6.9) 422 0 R (lstnumber.-7.1) 481 0 R (lstnumber.-7.10) 491 0 R (lstnumber.-7.11) 492 0 R (lstnumber.-7.12) 493 0 R (lstnumber.-7.13) 494 0 R (lstnumber.-7.14) 495 0 R (lstnumber.-7.15) 496 0 R (lstnumber.-7.16) 497 0 R (lstnumber.-7.17) 498 0 R (lstnumber.-7.18) 499 0 R (lstnumber.-7.19) 500 0 R (lstnumber.-7.2) 482 0 R (lstnumber.-7.20) 501 0 R (lstnumber.-7.21) 502 0 R (lstnumber.-7.22) 503 0 R (lstnumber.-7.23) 504 0 R (lstnumber.-7.24) 505 0 R (lstnumber.-7.25) 506 0 R (lstnumber.-7.26) 507 0 R (lstnumber.-7.27) 510 0 R (lstnumber.-7.28) 511 0 R (lstnumber.-7.29) 512 0 R (lstnumber.-7.3) 483 0 R (lstnumber.-7.30) 513 0 R (lstnumber.-7.31) 514 0 R (lstnumber.-7.32) 515 0 R (lstnumber.-7.33) 516 0 R (lstnumber.-7.34) 517 0 R (lstnumber.-7.35) 518 0 R (lstnumber.-7.36) 519 0 R (lstnumber.-7.37) 520 0 R (lstnumber.-7.38) 521 0 R (lstnumber.-7.39) 522 0 R (lstnumber.-7.4) 485 0 R (lstnumber.-7.40) 523 0 R (lstnumber.-7.41) 524 0 R (lstnumber.-7.42) 525 0 R (lstnumber.-7.43) 526 0 R (lstnumber.-7.44) 527 0 R (lstnumber.-7.45) 528 0 R (lstnumber.-7.46) 529 0 R (lstnumber.-7.47) 530 0 R (lstnumber.-7.48) 531 0 R (lstnumber.-7.49) 532 0 R (lstnumber.-7.5) 486 0 R (lstnumber.-7.50) 533 0 R (lstnumber.-7.51) 534 0 R (lstnumber.-7.52) 535 0 R (lstnumber.-7.53) 536 0 R (lstnumber.-7.54) 537 0 R (lstnumber.-7.55) 538 0 R (lstnumber.-7.56) 539 0 R (lstnumber.-7.57) 540 0 R (lstnumber.-7.58) 541 0 R (lstnumber.-7.59) 542 0 R (lstnumber.-7.6) 487 0 R (lstnumber.-7.60) 543 0 R (lstnumber.-7.61) 544 0 R (lstnumber.-7.62) 545 0 R (lstnumber.-7.63) 546 0 R (lstnumber.-7.64) 547 0 R (lstnumber.-7.65) 548 0 R (lstnumber.-7.66) 549 0 R (lstnumber.-7.67) 550 0 R (lstnumber.-7.68) 551 0 R (lstnumber.-7.69) 552 0 R (lstnumber.-7.7) 488 0 R (lstnumber.-7.70) 553 0 R (lstnumber.-7.8) 489 0 R (lstnumber.-7.9) 490 0 R (lstnumber.-8.1) 557 0 R (lstnumber.-8.10) 566 0 R (lstnumber.-8.11) 567 0 R (lstnumber.-8.12) 568 0 R (lstnumber.-8.13) 569 0 R (lstnumber.-8.14) 570 0 R (lstnumber.-8.15) 571 0 R (lstnumber.-8.16) 572 0 R (lstnumber.-8.17) 573 0 R (lstnumber.-8.18) 574 0 R (lstnumber.-8.19) 575 0 R (lstnumber.-8.2) 558 0 R (lstnumber.-8.20) 576 0 R (lstnumber.-8.3) 559 0 R (lstnumber.-8.4) 560 0 R (lstnumber.-8.5) 561 0 R (lstnumber.-8.6) 562 0 R (lstnumber.-8.7) 563 0 R (lstnumber.-8.8) 564 0 R (lstnumber.-8.9) 565 0 R (lstnumber.-9.1) 579 0 R (lstnumber.-9.2) 580 0 R (lstnumber.-9.3) 581 0 R (lstnumber.-9.4) 582 0 R (lstnumber.-9.5) 583 0 R (page.1) 220 0 R (page.10) 241 0 R (page.11) 244 0 R (page.12) 246 0 R (page.13) 250 0 R (page.14) 252 0 R (page.15) 263 0 R (page.16) 278 0 R (page.17) 281 0 R (page.18) 322 0 R (page.19) 340 0 R (page.2) 223 0 R (page.20) 365 0 R (page.21) 411 0 R (page.22) 423 0 R (page.23) 443 0 R (page.24) 484 0 R (page.25) 509 0 R (page.26) 555 0 R (page.27) 577 0 R (page.28) 585 0 R (page.29) 594 0 R (page.3) 226 0 R (page.4) 229 0 R (page.5) 231 0 R (page.6) 233 0 R (page.7) 236 0 R (page.8) 239 0 R (page.9) 240 0 R (section*.1) 222 0 R (section*.2) 234 0 R (section*.3) 235 0 R (section*.4) 245 0 R (section*.5) 247 0 R (section*.6) 249 0 R (section*.7) 251 0 R (section*.8) 254 0 R (section*.9) 597 0 R (section.1) 224 0 R (section.10) 584 0 R (section.11) 596 0 R (section.2) 225 0 R (section.3) 227 0 R (section.4) 228 0 R (section.5) 230 0 R (section.6) 237 0 R (section.7) 264 0 R (section.8) 282 0 R (section.9) 554 0 R (subsection.6.1) 238 0 R (subsection.6.2) 243 0 R (subsection.8.1) 283 0 R (subsection.8.2) 369 0 R (table.1) 248 0 R (table.2) 253 0 R (table.3) 279 0 R (table.4) 280 0 R ] >> @@ -21079,10 +21074,10 @@ stream <rdf:Description rdf:about="" xmlns:pdf='http://ns.adobe.com/pdf/1.3/'><pdf:Producer>GPL Ghostscript 9.55.0</pdf:Producer> <pdf:Keywords>include portable PDF animation SVG animation animated PDF animated SVG dvisvgm html TeX4ht web animating embed animated graphics LaTeX pdfLaTeX LuaLaTeX PSTricks pgf TikZ LaTeX-picture MetaPost inline graphics vector graphics animated GIF LaTeX dvips ps2pdf dvipdfmx XeLaTeX JavaScript Acrobat Reader KDE Okular PDF-XChange Foxit Reader Firefox Chrome Chromium</pdf:Keywords> </rdf:Description> -<rdf:Description rdf:about="" xmlns:xmp='http://ns.adobe.com/xap/1.0/'><xmp:ModifyDate>2022-02-21T15:04:20+01:00</xmp:ModifyDate> -<xmp:CreateDate>2022-02-21T15:04:20+01:00</xmp:CreateDate> +<rdf:Description rdf:about="" xmlns:xmp='http://ns.adobe.com/xap/1.0/'><xmp:ModifyDate>2022-08-04T17:01:36+02:00</xmp:ModifyDate> +<xmp:CreateDate>2022-08-04T17:01:36+02:00</xmp:CreateDate> <xmp:CreatorTool>LaTeX with hyperref</xmp:CreatorTool></rdf:Description> -<rdf:Description rdf:about="" xmlns:xapMM='http://ns.adobe.com/xap/1.0/mm/' xapMM:DocumentID='uuid:b6d61d7a-cb3b-11f7-0000-8c242f8a5d9a'/> +<rdf:Description rdf:about="" xmlns:xapMM='http://ns.adobe.com/xap/1.0/mm/' xapMM:DocumentID='uuid:e29b451c-4c22-11f8-0000-6fab357213a8'/> <rdf:Description rdf:about="" xmlns:dc='http://purl.org/dc/elements/1.1/' dc:format='application/pdf'><dc:title><rdf:Alt><rdf:li xml:lang='x-default'>The animate Package</rdf:li></rdf:Alt></dc:title><dc:creator><rdf:Seq><rdf:li>Alexander Grahn</rdf:li></rdf:Seq></dc:creator><dc:description><rdf:Alt><rdf:li xml:lang='x-default'>Documentation</rdf:li></rdf:Alt></dc:description></rdf:Description> </rdf:RDF> </x:xmpmeta> @@ -21093,616 +21088,616 @@ endobj xref 0 610 0000000000 65535 f -0003171591 00000 n -0003171799 00000 n -0003171927 00000 n -0003177816 00000 n -0003177994 00000 n -0003178172 00000 n -0003178354 00000 n -0003178403 00000 n -0003178478 00000 n -0003178686 00000 n -0003178815 00000 n -0003181929 00000 n -0003182181 00000 n -0003182360 00000 n -0003182410 00000 n -0003182473 00000 n -0003182696 00000 n -0003182825 00000 n -0003187597 00000 n -0003187849 00000 n -0003187897 00000 n -0003187973 00000 n -0003188183 00000 n -0003188312 00000 n -0003194471 00000 n -0003194651 00000 n -0003194886 00000 n -0003195150 00000 n -0003195200 00000 n -0003195275 00000 n -0003196358 00000 n -0003196568 00000 n -0003196697 00000 n -0003204491 00000 n -0003204674 00000 n -0003204724 00000 n -0003204813 00000 n -0003205015 00000 n -0003205144 00000 n -0003209740 00000 n -0003209918 00000 n -0003209968 00000 n -0003210044 00000 n -0003210220 00000 n -0003210349 00000 n -0003214569 00000 n -0003214618 00000 n -0003214794 00000 n -0003214923 00000 n -0003221049 00000 n -0003221098 00000 n -0003221307 00000 n -0003221437 00000 n -0003227035 00000 n -0003227213 00000 n -0003227391 00000 n -0003227441 00000 n -0003227518 00000 n -0003227720 00000 n -0003227850 00000 n -0003234911 00000 n -0003235090 00000 n -0003235140 00000 n -0003235202 00000 n -0003235433 00000 n -0003235563 00000 n -0003240962 00000 n -0003241138 00000 n -0003241315 00000 n -0003241492 00000 n -0003241675 00000 n -0003241725 00000 n -0003241787 00000 n -0003242017 00000 n -0003242147 00000 n -0003248803 00000 n -0003248979 00000 n -0003249156 00000 n -0003249339 00000 n -0003249519 00000 n -0003249697 00000 n -0003249747 00000 n -0003249809 00000 n -0003249993 00000 n -0003250123 00000 n -0003253170 00000 n -0003253232 00000 n -0003253455 00000 n -0003253585 00000 n -0003257167 00000 n -0003257343 00000 n -0003257519 00000 n -0003257702 00000 n -0003257881 00000 n -0003257931 00000 n -0003257994 00000 n -0003258178 00000 n -0003258308 00000 n -0003261946 00000 n -0003261995 00000 n -0003262211 00000 n -0003262342 00000 n -0003265728 00000 n -0003265906 00000 n -0003266084 00000 n -0003266135 00000 n -0003266254 00000 n -0003266687 00000 n -0003266818 00000 n -0003270465 00000 n -0003270717 00000 n -0003270895 00000 n -0003271076 00000 n -0003271519 00000 n -0003271570 00000 n -0003271676 00000 n -0003272899 00000 n -0003273030 00000 n -0003274279 00000 n -0003274537 00000 n -0003279586 00000 n -0003279734 00000 n -0003279950 00000 n -0003280081 00000 n -0003282667 00000 n -0003282845 00000 n -0003283026 00000 n -0003283077 00000 n -0003283155 00000 n -0003283783 00000 n -0003283914 00000 n -0003287914 00000 n -0003288171 00000 n -0003288349 00000 n -0003288522 00000 n -0003288758 00000 n -0003289216 00000 n -0003289267 00000 n -0003289359 00000 n -0003290024 00000 n -0003290123 00000 n -0003292173 00000 n -0003292304 00000 n -0003293394 00000 n -0003293651 00000 n -0003298330 00000 n -0003298394 00000 n -0003298610 00000 n -0003298741 00000 n -0003303356 00000 n -0003303534 00000 n -0003303716 00000 n -0003303767 00000 n -0003303817 00000 n -0003304399 00000 n -0003304530 00000 n -0003305224 00000 n -0003305458 00000 n -0003659918 00000 n -0003659995 00000 n -0003662284 00000 n -0003662359 00000 n -0003662516 00000 n -0003662608 00000 n -0003662750 00000 n -0003662920 00000 n -0003663183 00000 n -0003663439 00000 n -0003664325 00000 n -0003664404 00000 n -0003664612 00000 n -0003664743 00000 n -0003667241 00000 n -0003667423 00000 n -0003667474 00000 n -0003667538 00000 n -0003667718 00000 n -0003667849 00000 n -0003672598 00000 n -0003672662 00000 n -0003672842 00000 n -0003672973 00000 n -0003678869 00000 n -0003678933 00000 n -0003679157 00000 n -0003679288 00000 n -0003685065 00000 n -0003685243 00000 n -0003685419 00000 n -0003685595 00000 n -0003685646 00000 n -0003685722 00000 n -0003686018 00000 n -0003686149 00000 n -0003691472 00000 n -0003691695 00000 n -0003691875 00000 n -0003692054 00000 n -0003692233 00000 n -0003692489 00000 n -0003692745 00000 n -0003692947 00000 n -0003693160 00000 n -0003693378 00000 n -0003693593 00000 n -0003693816 00000 n -0003694039 00000 n -0003694090 00000 n -0003694167 00000 n -0003694649 00000 n -0003695026 00000 n -0003695246 00000 n -0003695486 00000 n -0003696460 00000 n -0003698838 00000 n -0003699183 00000 n -0003699406 00000 n -0003699678 00000 n -0003701593 00000 n -0003711056 00000 n -0003711127 00000 n -0003711195 00000 n -0003711263 00000 n -0003711328 00000 n -0003711392 00000 n -0003711457 00000 n -0003711525 00000 n -0003711590 00000 n -0003711655 00000 n -0003711721 00000 n -0003711785 00000 n -0003711854 00000 n -0003711920 00000 n -0003711986 00000 n -0003712052 00000 n -0003712118 00000 n -0003712187 00000 n -0003712253 00000 n -0003712319 00000 n -0003712385 00000 n -0003712454 00000 n -0003712520 00000 n -0003712585 00000 n -0003712650 00000 n -0003712719 00000 n -0003712785 00000 n -0003712851 00000 n -0003712916 00000 n -0003712982 00000 n -0003713048 00000 n -0003713117 00000 n -0003713183 00000 n -0003713249 00000 n -0003713315 00000 n -0003713381 00000 n -0003713447 00000 n -0003713512 00000 n -0003713578 00000 n -0003713644 00000 n -0003713710 00000 n -0003713775 00000 n -0003713841 00000 n -0003713907 00000 n -0003713976 00000 n -0003714042 00000 n -0003714108 00000 n -0003714174 00000 n -0003714240 00000 n -0003714305 00000 n -0003714371 00000 n -0003714437 00000 n -0003714503 00000 n -0003714569 00000 n -0003714635 00000 n -0003714701 00000 n -0003714767 00000 n -0003714833 00000 n -0003714899 00000 n -0003714965 00000 n -0003715031 00000 n -0003715097 00000 n -0003715167 00000 n -0003715234 00000 n -0003715301 00000 n -0003715368 00000 n -0003715435 00000 n -0003715502 00000 n -0003715569 00000 n -0003715635 00000 n -0003715701 00000 n -0003715768 00000 n -0003715835 00000 n -0003715902 00000 n -0003715968 00000 n -0003716034 00000 n -0003716101 00000 n -0003716168 00000 n -0003716235 00000 n -0003716301 00000 n -0003716368 00000 n -0003716435 00000 n -0003716502 00000 n -0003716568 00000 n -0003716634 00000 n -0003716701 00000 n -0003716768 00000 n -0003716835 00000 n -0003716902 00000 n -0003716969 00000 n -0003717036 00000 n -0003717103 00000 n -0003717170 00000 n -0003717237 00000 n -0003717304 00000 n -0003717371 00000 n -0003717438 00000 n -0003717505 00000 n -0003717571 00000 n -0003717638 00000 n -0003717705 00000 n -0003717772 00000 n -0003717839 00000 n -0003717906 00000 n -0003717973 00000 n -0003718038 00000 n -0003718105 00000 n -0003718172 00000 n -0003718239 00000 n -0003718306 00000 n -0003718373 00000 n -0003718440 00000 n -0003718507 00000 n -0003718574 00000 n -0003718641 00000 n -0003718708 00000 n -0003718775 00000 n -0003718842 00000 n -0003718909 00000 n -0003718976 00000 n -0003719043 00000 n -0003719113 00000 n -0003719180 00000 n -0003719247 00000 n -0003719314 00000 n -0003719381 00000 n -0003719448 00000 n -0003719513 00000 n -0003719580 00000 n -0003719647 00000 n -0003719714 00000 n -0003719781 00000 n -0003719848 00000 n -0003719915 00000 n -0003719982 00000 n -0003720049 00000 n -0003720115 00000 n -0003720181 00000 n -0003720248 00000 n -0003720315 00000 n -0003720382 00000 n -0003720448 00000 n -0003720515 00000 n -0003720582 00000 n -0003720649 00000 n -0003720716 00000 n -0003720783 00000 n -0003720850 00000 n -0003720917 00000 n -0003720984 00000 n -0003721051 00000 n -0003721118 00000 n -0003721185 00000 n -0003721252 00000 n -0003721319 00000 n -0003721386 00000 n -0003721452 00000 n -0003721519 00000 n -0003721586 00000 n -0003721653 00000 n -0003721720 00000 n -0003721787 00000 n -0003721854 00000 n -0003721921 00000 n -0003721988 00000 n -0003722055 00000 n -0003722122 00000 n -0003722189 00000 n -0003722256 00000 n -0003722323 00000 n -0003722390 00000 n -0003722454 00000 n -0003722521 00000 n -0003722585 00000 n -0003722652 00000 n -0003722718 00000 n -0003722785 00000 n -0003722852 00000 n -0003722919 00000 n -0003722986 00000 n -0003723052 00000 n -0003723119 00000 n -0003723186 00000 n -0003723253 00000 n -0003723320 00000 n -0003723386 00000 n -0003723453 00000 n -0003723520 00000 n -0003723587 00000 n -0003723653 00000 n -0003723719 00000 n -0003723786 00000 n -0003723856 00000 n -0003723923 00000 n -0003723990 00000 n -0003724057 00000 n -0003724124 00000 n -0003724191 00000 n -0003724258 00000 n -0003724325 00000 n -0003724392 00000 n -0003724459 00000 n -0003724526 00000 n -0003724593 00000 n -0003724660 00000 n -0003724727 00000 n -0003724794 00000 n -0003724861 00000 n -0003724928 00000 n -0003724995 00000 n -0003725062 00000 n -0003725129 00000 n -0003725196 00000 n -0003725263 00000 n -0003725330 00000 n -0003725396 00000 n -0003725460 00000 n -0003725527 00000 n -0003725594 00000 n -0003725661 00000 n -0003725728 00000 n -0003725795 00000 n -0003725862 00000 n -0003725929 00000 n -0003725999 00000 n -0003726066 00000 n -0003726133 00000 n -0003726200 00000 n -0003726266 00000 n -0003726332 00000 n -0003726399 00000 n -0003726466 00000 n -0003726533 00000 n -0003726599 00000 n -0003726665 00000 n -0003726732 00000 n -0003726799 00000 n -0003726866 00000 n -0003726932 00000 n -0003726999 00000 n -0003727066 00000 n -0003727133 00000 n -0003727200 00000 n -0003727267 00000 n -0003727334 00000 n -0003727401 00000 n -0003727465 00000 n -0003727532 00000 n -0003727599 00000 n -0003727666 00000 n -0003727733 00000 n -0003727800 00000 n -0003727866 00000 n -0003727933 00000 n -0003728000 00000 n -0003728067 00000 n -0003728134 00000 n -0003728201 00000 n -0003728268 00000 n -0003728335 00000 n -0003728402 00000 n -0003728469 00000 n -0003728535 00000 n -0003728602 00000 n -0003728666 00000 n -0003728733 00000 n -0003728800 00000 n -0003728867 00000 n -0003728934 00000 n -0003729000 00000 n -0003729066 00000 n -0003729133 00000 n -0003729200 00000 n -0003729267 00000 n -0003729333 00000 n -0003729399 00000 n -0003729466 00000 n -0003729533 00000 n -0003729600 00000 n -0003729666 00000 n -0003729733 00000 n -0003729800 00000 n -0003729867 00000 n -0003729934 00000 n -0003730001 00000 n -0003730068 00000 n -0003730135 00000 n -0003730199 00000 n -0003730266 00000 n -0003730333 00000 n -0003730403 00000 n -0003730470 00000 n -0003730537 00000 n -0003730604 00000 n -0003730670 00000 n -0003730736 00000 n -0003730803 00000 n -0003730870 00000 n -0003730937 00000 n -0003731003 00000 n -0003731069 00000 n -0003731136 00000 n -0003731203 00000 n -0003731270 00000 n -0003731336 00000 n -0003731403 00000 n -0003731470 00000 n -0003731537 00000 n -0003731604 00000 n -0003731671 00000 n -0003731738 00000 n -0003731805 00000 n -0003731869 00000 n -0003731936 00000 n -0003732003 00000 n -0003732070 00000 n -0003732137 00000 n -0003732204 00000 n -0003732270 00000 n -0003732337 00000 n -0003732404 00000 n -0003732471 00000 n -0003732538 00000 n -0003732605 00000 n -0003732672 00000 n -0003732739 00000 n -0003732806 00000 n -0003732873 00000 n -0003732940 00000 n -0003733007 00000 n -0003733074 00000 n -0003733141 00000 n -0003733208 00000 n -0003733275 00000 n -0003733342 00000 n -0003733409 00000 n -0003733476 00000 n -0003733543 00000 n -0003733610 00000 n -0003733677 00000 n -0003733744 00000 n -0003733811 00000 n -0003733878 00000 n -0003733942 00000 n -0003734009 00000 n -0003734076 00000 n -0003734143 00000 n -0003734210 00000 n -0003734277 00000 n -0003734343 00000 n -0003734410 00000 n -0003734477 00000 n -0003734544 00000 n -0003734611 00000 n -0003734678 00000 n -0003734745 00000 n -0003734812 00000 n -0003734879 00000 n -0003734949 00000 n -0003735016 00000 n -0003735083 00000 n -0003735150 00000 n -0003735217 00000 n -0003735284 00000 n -0003735351 00000 n -0003735418 00000 n -0003735485 00000 n -0003735552 00000 n -0003735619 00000 n -0003735686 00000 n -0003735753 00000 n -0003735820 00000 n -0003735887 00000 n -0003735954 00000 n -0003736021 00000 n -0003736091 00000 n -0003736158 00000 n -0003736225 00000 n -0003736292 00000 n -0003736359 00000 n -0003736426 00000 n -0003736493 00000 n -0003736560 00000 n -0003736627 00000 n -0003736694 00000 n -0003736761 00000 n -0003736828 00000 n -0003736867 00000 n -0003736897 00000 n -0003737182 00000 n -trailer << /Size 610 /ID [<3f5051c93ffdfa157c0ad1d1ec61c1ae><df5a354dda90328c914c6f06248b0df8>] >> +0003171583 00000 n +0003171791 00000 n +0003171919 00000 n +0003177808 00000 n +0003177986 00000 n +0003178164 00000 n +0003178346 00000 n +0003178395 00000 n +0003178470 00000 n +0003178678 00000 n +0003178807 00000 n +0003181921 00000 n +0003182173 00000 n +0003182352 00000 n +0003182402 00000 n +0003182465 00000 n +0003182688 00000 n +0003182817 00000 n +0003187589 00000 n +0003187841 00000 n +0003187889 00000 n +0003187965 00000 n +0003188175 00000 n +0003188304 00000 n +0003194463 00000 n +0003194643 00000 n +0003194878 00000 n +0003195142 00000 n +0003195192 00000 n +0003195267 00000 n +0003196350 00000 n +0003196560 00000 n +0003196689 00000 n +0003204483 00000 n +0003204666 00000 n +0003204716 00000 n +0003204805 00000 n +0003205007 00000 n +0003205136 00000 n +0003209732 00000 n +0003209910 00000 n +0003209960 00000 n +0003210036 00000 n +0003210212 00000 n +0003210341 00000 n +0003214561 00000 n +0003214610 00000 n +0003214786 00000 n +0003214915 00000 n +0003221023 00000 n +0003221072 00000 n +0003221281 00000 n +0003221411 00000 n +0003227012 00000 n +0003227190 00000 n +0003227368 00000 n +0003227418 00000 n +0003227495 00000 n +0003227697 00000 n +0003227827 00000 n +0003234888 00000 n +0003235067 00000 n +0003235117 00000 n +0003235179 00000 n +0003235410 00000 n +0003235540 00000 n +0003240939 00000 n +0003241115 00000 n +0003241292 00000 n +0003241469 00000 n +0003241652 00000 n +0003241702 00000 n +0003241764 00000 n +0003241994 00000 n +0003242124 00000 n +0003248780 00000 n +0003248956 00000 n +0003249133 00000 n +0003249316 00000 n +0003249496 00000 n +0003249674 00000 n +0003249724 00000 n +0003249786 00000 n +0003249970 00000 n +0003250100 00000 n +0003253147 00000 n +0003253209 00000 n +0003253432 00000 n +0003253562 00000 n +0003257144 00000 n +0003257320 00000 n +0003257496 00000 n +0003257679 00000 n +0003257858 00000 n +0003257908 00000 n +0003257971 00000 n +0003258155 00000 n +0003258285 00000 n +0003261923 00000 n +0003261972 00000 n +0003262188 00000 n +0003262319 00000 n +0003265705 00000 n +0003265883 00000 n +0003266061 00000 n +0003266112 00000 n +0003266231 00000 n +0003266664 00000 n +0003266795 00000 n +0003270442 00000 n +0003270694 00000 n +0003270872 00000 n +0003271053 00000 n +0003271496 00000 n +0003271547 00000 n +0003271653 00000 n +0003272876 00000 n +0003273007 00000 n +0003274256 00000 n +0003274514 00000 n +0003279563 00000 n +0003279711 00000 n +0003279927 00000 n +0003280058 00000 n +0003282644 00000 n +0003282822 00000 n +0003283003 00000 n +0003283054 00000 n +0003283132 00000 n +0003283760 00000 n +0003283891 00000 n +0003287891 00000 n +0003288148 00000 n +0003288326 00000 n +0003288499 00000 n +0003288735 00000 n +0003289193 00000 n +0003289244 00000 n +0003289336 00000 n +0003290001 00000 n +0003290100 00000 n +0003292150 00000 n +0003292281 00000 n +0003293371 00000 n +0003293628 00000 n +0003298307 00000 n +0003298371 00000 n +0003298587 00000 n +0003298718 00000 n +0003303333 00000 n +0003303511 00000 n +0003303693 00000 n +0003303744 00000 n +0003303794 00000 n +0003304376 00000 n +0003304507 00000 n +0003305201 00000 n +0003305435 00000 n +0003659895 00000 n +0003659972 00000 n +0003662261 00000 n +0003662336 00000 n +0003662493 00000 n +0003662585 00000 n +0003662727 00000 n +0003662897 00000 n +0003663160 00000 n +0003663416 00000 n +0003664302 00000 n +0003664381 00000 n +0003664589 00000 n +0003664720 00000 n +0003667218 00000 n +0003667400 00000 n +0003667451 00000 n +0003667515 00000 n +0003667695 00000 n +0003667826 00000 n +0003672575 00000 n +0003672639 00000 n +0003672819 00000 n +0003672950 00000 n +0003678846 00000 n +0003678910 00000 n +0003679134 00000 n +0003679265 00000 n +0003685042 00000 n +0003685220 00000 n +0003685396 00000 n +0003685572 00000 n +0003685623 00000 n +0003685699 00000 n +0003685995 00000 n +0003686126 00000 n +0003691449 00000 n +0003691672 00000 n +0003691852 00000 n +0003692031 00000 n +0003692210 00000 n +0003692466 00000 n +0003692722 00000 n +0003692924 00000 n +0003693137 00000 n +0003693355 00000 n +0003693570 00000 n +0003693793 00000 n +0003694016 00000 n +0003694067 00000 n +0003694144 00000 n +0003694626 00000 n +0003695003 00000 n +0003695223 00000 n +0003695463 00000 n +0003696437 00000 n +0003698815 00000 n +0003699160 00000 n +0003699383 00000 n +0003699655 00000 n +0003701570 00000 n +0003711033 00000 n +0003711104 00000 n +0003711172 00000 n +0003711240 00000 n +0003711305 00000 n +0003711369 00000 n +0003711434 00000 n +0003711502 00000 n +0003711567 00000 n +0003711632 00000 n +0003711698 00000 n +0003711762 00000 n +0003711831 00000 n +0003711897 00000 n +0003711963 00000 n +0003712029 00000 n +0003712095 00000 n +0003712164 00000 n +0003712230 00000 n +0003712296 00000 n +0003712362 00000 n +0003712431 00000 n +0003712497 00000 n +0003712562 00000 n +0003712627 00000 n +0003712696 00000 n +0003712762 00000 n +0003712828 00000 n +0003712893 00000 n +0003712959 00000 n +0003713025 00000 n +0003713094 00000 n +0003713160 00000 n +0003713226 00000 n +0003713292 00000 n +0003713358 00000 n +0003713424 00000 n +0003713489 00000 n +0003713555 00000 n +0003713621 00000 n +0003713687 00000 n +0003713752 00000 n +0003713818 00000 n +0003713884 00000 n +0003713953 00000 n +0003714019 00000 n +0003714085 00000 n +0003714151 00000 n +0003714217 00000 n +0003714282 00000 n +0003714348 00000 n +0003714414 00000 n +0003714480 00000 n +0003714546 00000 n +0003714612 00000 n +0003714678 00000 n +0003714744 00000 n +0003714810 00000 n +0003714876 00000 n +0003714942 00000 n +0003715008 00000 n +0003715074 00000 n +0003715144 00000 n +0003715211 00000 n +0003715278 00000 n +0003715345 00000 n +0003715412 00000 n +0003715479 00000 n +0003715546 00000 n +0003715612 00000 n +0003715678 00000 n +0003715745 00000 n +0003715812 00000 n +0003715879 00000 n +0003715945 00000 n +0003716011 00000 n +0003716078 00000 n +0003716145 00000 n +0003716212 00000 n +0003716278 00000 n +0003716345 00000 n +0003716412 00000 n +0003716479 00000 n +0003716545 00000 n +0003716611 00000 n +0003716678 00000 n +0003716745 00000 n +0003716812 00000 n +0003716879 00000 n +0003716946 00000 n +0003717013 00000 n +0003717080 00000 n +0003717147 00000 n +0003717214 00000 n +0003717281 00000 n +0003717348 00000 n +0003717415 00000 n +0003717482 00000 n +0003717548 00000 n +0003717615 00000 n +0003717682 00000 n +0003717749 00000 n +0003717816 00000 n +0003717883 00000 n +0003717950 00000 n +0003718015 00000 n +0003718082 00000 n +0003718149 00000 n +0003718216 00000 n +0003718283 00000 n +0003718350 00000 n +0003718417 00000 n +0003718484 00000 n +0003718551 00000 n +0003718618 00000 n +0003718685 00000 n +0003718752 00000 n +0003718819 00000 n +0003718886 00000 n +0003718953 00000 n +0003719020 00000 n +0003719090 00000 n +0003719157 00000 n +0003719224 00000 n +0003719291 00000 n +0003719358 00000 n +0003719425 00000 n +0003719490 00000 n +0003719557 00000 n +0003719624 00000 n +0003719691 00000 n +0003719758 00000 n +0003719825 00000 n +0003719892 00000 n +0003719959 00000 n +0003720026 00000 n +0003720092 00000 n +0003720158 00000 n +0003720225 00000 n +0003720292 00000 n +0003720359 00000 n +0003720425 00000 n +0003720492 00000 n +0003720559 00000 n +0003720626 00000 n +0003720693 00000 n +0003720760 00000 n +0003720827 00000 n +0003720894 00000 n +0003720961 00000 n +0003721028 00000 n +0003721095 00000 n +0003721162 00000 n +0003721229 00000 n +0003721296 00000 n +0003721363 00000 n +0003721429 00000 n +0003721496 00000 n +0003721563 00000 n +0003721630 00000 n +0003721697 00000 n +0003721764 00000 n +0003721831 00000 n +0003721898 00000 n +0003721965 00000 n +0003722032 00000 n +0003722099 00000 n +0003722166 00000 n +0003722233 00000 n +0003722300 00000 n +0003722367 00000 n +0003722431 00000 n +0003722498 00000 n +0003722562 00000 n +0003722629 00000 n +0003722695 00000 n +0003722762 00000 n +0003722829 00000 n +0003722896 00000 n +0003722963 00000 n +0003723029 00000 n +0003723096 00000 n +0003723163 00000 n +0003723230 00000 n +0003723297 00000 n +0003723363 00000 n +0003723430 00000 n +0003723497 00000 n +0003723564 00000 n +0003723630 00000 n +0003723696 00000 n +0003723763 00000 n +0003723833 00000 n +0003723900 00000 n +0003723967 00000 n +0003724034 00000 n +0003724101 00000 n +0003724168 00000 n +0003724235 00000 n +0003724302 00000 n +0003724369 00000 n +0003724436 00000 n +0003724503 00000 n +0003724570 00000 n +0003724637 00000 n +0003724704 00000 n +0003724771 00000 n +0003724838 00000 n +0003724905 00000 n +0003724972 00000 n +0003725039 00000 n +0003725106 00000 n +0003725173 00000 n +0003725240 00000 n +0003725307 00000 n +0003725373 00000 n +0003725437 00000 n +0003725504 00000 n +0003725571 00000 n +0003725638 00000 n +0003725705 00000 n +0003725772 00000 n +0003725839 00000 n +0003725906 00000 n +0003725976 00000 n +0003726043 00000 n +0003726110 00000 n +0003726177 00000 n +0003726243 00000 n +0003726309 00000 n +0003726376 00000 n +0003726443 00000 n +0003726510 00000 n +0003726576 00000 n +0003726642 00000 n +0003726709 00000 n +0003726776 00000 n +0003726843 00000 n +0003726909 00000 n +0003726976 00000 n +0003727043 00000 n +0003727110 00000 n +0003727177 00000 n +0003727244 00000 n +0003727311 00000 n +0003727378 00000 n +0003727442 00000 n +0003727509 00000 n +0003727576 00000 n +0003727643 00000 n +0003727710 00000 n +0003727777 00000 n +0003727843 00000 n +0003727910 00000 n +0003727977 00000 n +0003728044 00000 n +0003728111 00000 n +0003728178 00000 n +0003728245 00000 n +0003728312 00000 n +0003728379 00000 n +0003728446 00000 n +0003728512 00000 n +0003728579 00000 n +0003728643 00000 n +0003728710 00000 n +0003728777 00000 n +0003728844 00000 n +0003728911 00000 n +0003728977 00000 n +0003729043 00000 n +0003729110 00000 n +0003729177 00000 n +0003729244 00000 n +0003729310 00000 n +0003729376 00000 n +0003729443 00000 n +0003729510 00000 n +0003729577 00000 n +0003729643 00000 n +0003729710 00000 n +0003729777 00000 n +0003729844 00000 n +0003729911 00000 n +0003729978 00000 n +0003730045 00000 n +0003730112 00000 n +0003730176 00000 n +0003730243 00000 n +0003730310 00000 n +0003730380 00000 n +0003730447 00000 n +0003730514 00000 n +0003730581 00000 n +0003730647 00000 n +0003730713 00000 n +0003730780 00000 n +0003730847 00000 n +0003730914 00000 n +0003730980 00000 n +0003731046 00000 n +0003731113 00000 n +0003731180 00000 n +0003731247 00000 n +0003731313 00000 n +0003731380 00000 n +0003731447 00000 n +0003731514 00000 n +0003731581 00000 n +0003731648 00000 n +0003731715 00000 n +0003731782 00000 n +0003731846 00000 n +0003731913 00000 n +0003731980 00000 n +0003732047 00000 n +0003732114 00000 n +0003732181 00000 n +0003732247 00000 n +0003732314 00000 n +0003732381 00000 n +0003732448 00000 n +0003732515 00000 n +0003732582 00000 n +0003732649 00000 n +0003732716 00000 n +0003732783 00000 n +0003732850 00000 n +0003732917 00000 n +0003732984 00000 n +0003733051 00000 n +0003733118 00000 n +0003733185 00000 n +0003733252 00000 n +0003733319 00000 n +0003733386 00000 n +0003733453 00000 n +0003733520 00000 n +0003733587 00000 n +0003733654 00000 n +0003733721 00000 n +0003733788 00000 n +0003733855 00000 n +0003733919 00000 n +0003733986 00000 n +0003734053 00000 n +0003734120 00000 n +0003734187 00000 n +0003734254 00000 n +0003734320 00000 n +0003734387 00000 n +0003734454 00000 n +0003734521 00000 n +0003734588 00000 n +0003734655 00000 n +0003734722 00000 n +0003734789 00000 n +0003734856 00000 n +0003734926 00000 n +0003734993 00000 n +0003735060 00000 n +0003735127 00000 n +0003735194 00000 n +0003735261 00000 n +0003735328 00000 n +0003735395 00000 n +0003735462 00000 n +0003735529 00000 n +0003735596 00000 n +0003735663 00000 n +0003735730 00000 n +0003735797 00000 n +0003735864 00000 n +0003735931 00000 n +0003735998 00000 n +0003736068 00000 n +0003736135 00000 n +0003736202 00000 n +0003736269 00000 n +0003736336 00000 n +0003736403 00000 n +0003736470 00000 n +0003736537 00000 n +0003736604 00000 n +0003736671 00000 n +0003736738 00000 n +0003736805 00000 n +0003736844 00000 n +0003736874 00000 n +0003737159 00000 n +trailer << /Size 610 /ID [<75e8fb4f5346631caadd4dd62bc0c8cf><c56a8654f67f089b6bb008ec65f15f3a>] >> startxref 216 %%EOF diff --git a/Master/texmf-dist/source/latex/animate/animate.tex b/Master/texmf-dist/source/latex/animate/animate.tex index 9c1e9223252..3c7df213ac9 100644 --- a/Master/texmf-dist/source/latex/animate/animate.tex +++ b/Master/texmf-dist/source/latex/animate/animate.tex @@ -1,5 +1,5 @@ \listfiles -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% % Copyright 2007--\today Alexander Grahn % % This material is subject to the LaTeX Project Public License. See @@ -10,8 +10,7 @@ \ifdefined\outputmode\outputmode=0\fi \ifdefined\pdfoutput\pdfoutput=0\fi %%%%%%% pdfmanagement-testphase %%%%%% -\RequirePackage{pdfmanagement-testphase} % load the package -\DeclareDocumentMetadata % activates the PDF management interface +\DocumentMetadata % activates the PDF management interface { %uncompress, } @@ -361,7 +360,7 @@ interpolate controls[=all | true | on] controls=(none | false | off) | {[play][,step][,stop][,speed]} \end{verbatim} -Inserts control buttons below the animation widget. Visibility of buttons can be fine-tuned through optional keys. By default, if setting `\verb+controls+' alone, all available buttons are shown, while any of `\verb+none+', `\verb+false+' or `\verb+off+' suppresses them altogether. A comma-separated selection from `\verb+play+', `\verb+step+', `\verb+stop+' and `\verb+speed+' enables corresponding pairs or groups of buttons. Such a comma list must be enclosed in braces, i.\,e. \verb+controls={..., ..., ...}+. If all buttons are shown, their meaning is as follows, from left to right: stop \& first frame, step backwards, play backwards, play forwards, step forwards, stop \& last frame, decrease speed, default speed, increase speed. Both `play' buttons are replaced by a large `pause' button while the animation is playing. +Inserts control buttons below the animation widget. Visibility of buttons can be fine-tuned through optional keys. By default, if setting `\verb+controls+' alone, all available buttons are shown, while any of `\verb+none+', `\verb+false+' or `\verb+off+' suppresses them altogether. A comma-separated selection from `\verb+play+', `\verb+step+', `\verb+stop+' and `\verb+speed+' enables corresponding pairs or groups of buttons. Such a comma list must be enclosed in braces, i.\,e. \verb+controls={play, stop}+. If all buttons are shown, their meaning is as follows, from left to right: stop \& first frame, step backwards, play backwards, play forwards, step forwards, stop \& last frame, decrease speed, default speed, increase speed. Both `play' buttons are replaced by a large `pause' button while the animation is playing. \begin{verbatim} controlsaligned=left[+<indent>] | center | right[+<indent>] \end{verbatim} diff --git a/Master/texmf-dist/tex/latex/animate/animate.sty b/Master/texmf-dist/tex/latex/animate/animate.sty index 6964db89a13..408cf967f3c 100644 --- a/Master/texmf-dist/tex/latex/animate/animate.sty +++ b/Master/texmf-dist/tex/latex/animate/animate.sty @@ -11,13 +11,12 @@ % Supports LaTeX->dvips->ps2pdf, (Xe)LaTeX->(x)dvipdfmx, LuaLaTeX, % pdfLaTeX and LaTeX->dvisvgm workflows. -\NeedsTeXFormat{LaTeX2e}[2020-10-01] +\NeedsTeXFormat{LaTeX2e}[2022-06-01] -\def\@anim@version{2022/02/21} +\def\@anim@version{2022/08/04} \ProvidesPackage{animate} [\@anim@version\space PDF & SVG animations from files and inline graphics] -\RequirePackage{xkeyval} \RequirePackage{ifthen} \RequirePackage{iftex} \RequirePackage{ifdraft} @@ -25,60 +24,85 @@ %driver options (the only package options we process immediately) \newboolean{@anim@dvips} -\setboolean{@anim@dvips}{false} \newboolean{@anim@dvipdfmx} -\setboolean{@anim@dvipdfmx}{false} \newboolean{@anim@dvisvgm} -\setboolean{@anim@dvisvgm}{false} -\ifpdf\else - \setboolean{@anim@dvips}{true}% default dvi mode - \setboolean{@anim@dvipdfmx}{false} - \DeclareOptionX{dvips}{% - \setboolean{@anim@dvips}{true} - \setboolean{@anim@dvipdfmx}{false} - } - \DeclareOptionX{dvipdfmx}{% - \setboolean{@anim@dvipdfmx}{true} - \setboolean{@anim@dvips}{false} +\newboolean{@anim@xetex} +\newboolean{@anim@export}%exporting animation frames + +\ExplSyntaxOn +\DeclareKeys[anim@pkg]{ + pdftex.code:n = {}, + pdftex.value_forbidden:n = true, + + luatex.code:n = {}, + luatex.value_forbidden:n = true, + + xetex.code:n = {}, + xetex.value_forbidden:n = true, + + dvips.code:n = {}, + dvips.value_forbidden:n = true, + + dvipdfmx.code:n = { \PassOptionsToPackage{dvipdfmx}{pdfbase} + \PassOptionsToPackage{dvipdfmx}{ocgbase} \PassOptionsToPackage{dvipdfmx}{graphics} - } - \DeclareOptionX{xetex}{% - \setboolean{@anim@dvipdfmx}{true} - \setboolean{@anim@dvips}{false} - \PassOptionsToPackage{xetex}{pdfbase} - } - \DeclareOptionX{dvisvgm}{% - \setboolean{@anim@dvisvgm}{true} - \setboolean{@anim@dvips}{false} + }, + dvipdfmx.value_forbidden:n = true, + + dvisvgm.code:n = { \PassOptionsToPackage{dvisvgm}{pdfbase} \PassOptionsToPackage{dvisvgm}{graphics} - } + }, + dvisvgm.value_forbidden:n = true, + + export.legacy_if_gset:n = @anim@export, + export.default:n = true, +} +\ExplSyntaxOff +\DeclareUnknownKeyHandler[anim@pkg]{} + +\ProcessKeyOptions[anim@pkg] +% remaining package options to be processed near end of this file + +\RequirePackage{pdfbase} +\@ifpackagelater{pdfbase}{2022/08/04}{}{ + \PackageError{animate}{% + Support package `pdfbase.sty' too old.% + }{% + Please install an up to date version of `pdfbase.sty'.\MessageBreak% + Aborting.% + }% +} + +\ifpdf\else + \setboolean{@anim@dvips}{true}% default dvi mode \fi -\newboolean{@anim@xetex} -\setboolean{@anim@xetex}{false} -\ifxetex - \setboolean{@anim@xetex}{true} + +\ExplSyntaxOn +\bool_if:NT\g_pbs_dvipdfmx_bool{ \setboolean{@anim@dvipdfmx}{true} \setboolean{@anim@dvips}{false} -\fi -%exporting animation frames -\newboolean{@anim@export} -\setboolean{@anim@export}{false} +} +\bool_if:NT\g_pbs_dvisvgm_bool{ + \setboolean{@anim@dvisvgm}{true} + \setboolean{@anim@dvips}{false} +} +\sys_if_engine_xetex:T{ + \bool_if:NT\g_pbs_dvipdfmx_bool{\setboolean{@anim@xetex}{true}} + \setboolean{@anim@dvips}{false} +} +\ExplSyntaxOff + +\RequirePackage{graphics}%\scalebox, \resizebox, \rotatebox +\RequirePackage{zref-abspage} + \newboolean{@anim@insideexport} -\setboolean{@anim@insideexport}{false} \newenvironment{anim@export}{% \global\@anim@insideexporttrue% }{% \global\@anim@insideexportfalse% } -\DeclareOptionX{export}{\setboolean{@anim@export}{true}} - -\DeclareOptionX*{}\ProcessOptionsX*\relax %allow anything as an option -%(remaining package options will be processed near end of this file) - -\RequirePackage{graphics}%\scalebox, \resizebox, \rotatebox -\RequirePackage{zref-abspage} % get number of pages in file given as #1 (file basename); #2 extension; % store result into macro given as #3 @@ -148,7 +172,7 @@ \if@anim@export \@ifclassloaded{standalone}{}{ \PackageError{animate}{% - Option `export' requires `standalone' document class.\MessageBreak% + Option `export' requires the `standalone' document class.\MessageBreak% Replace current document class with `standalone'% }{% Put the line\MessageBreak% @@ -162,16 +186,6 @@ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % low level PDF/SVG operations %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\RequirePackage{pdfbase} -\@ifpackagelater{pdfbase}{2017/09/29}{}{ - \PackageError{animate}{% - Support package `pdfbase.sty' too old.% - }{% - Please install an up to date version of `pdfbase.sty'.\MessageBreak% - Aborting.% - }% -} - \ExplSyntaxOn \let\@anim@literal\pbs_literal:nn @@ -193,8 +207,6 @@ \ExplSyntaxOff \if@anim@dvisvgm - \setboolean{@anim@export}{false} - \def\@anim@updatebbox#1#2#3{\special{dvisvgm:bbox #1 #2 #3 transform}} %approach similar to OCGs, that is, putting the frame content in an svg group, @@ -226,8 +238,6 @@ \pbs_pdfannot:nnnn{#1}{#2}{#3}{#4} \pbs_appendtofields:n{\pbs_pdflastann:} } - - \let\@anim@pdfcatalog\pbs_pdfcatalog:n \ExplSyntaxOff \RequirePackage{ocgbase} %OCG generating and configuration macros @@ -356,7 +366,7 @@ }% \edef\@anim@curxform{\@anim@getkeyval{xform:\@anim@fingerprint}}% \ifthenelse{\equal{\@anim@curxform}{}}{% - % new "<file chksum>.<page>.<graphicx opts>" + % new file \@anim@filebox{#3}{#4}{#5}{\@anim@box}% store file in a box \edef\@anim@natdims{{\the\wd\@anim@box}{\the\ht\@anim@box}{\the\dp\@anim@box}}% \@anim@xinline{#1}{#2}{\@anim@box}{newfile}% Form XObject creation @@ -415,7 +425,7 @@ \fi% \ifthenelse{\equal{#4}{newfile}\OR\equal{#4}{inline}}{% \@anim@xform{1}{1}{}{}{#3}% - %keep a record of XObject number, needed when timeline is built + %keep a record of XObject number \@anim@newkey{img@#2}{\@anim@lastxform}% }{% %known file @@ -496,11 +506,9 @@ \hss% }% % rotate content on lscape pages - \ifnum\@anim@method>\@ne\else% - \ifx\@anim@lscape\@anim@@lscape% + \ifnum\@anim@method>\@ne\else\ifx\@anim@lscape\@anim@@lscape% \setbox\@anim@box=\hbox{\rotatebox{90}{\box\@anim@box}}% - \fi% - \fi% + \fi\fi% \fi% \ifcase\@anim@method% icon based \if@anim@singleref\else% @@ -1577,7 +1585,7 @@ \ifcsname Ginput@path\endcsname% make use of graphic[xs] search path \let\input@path\Ginput@path% \fi% - \setkeys{anim@user}{#1}% + \SetKeys[anim@user]{#1}% \ifx\empty\@anim@bg\empty\xdef\@anim@alpha{}\fi% \xdef\@anim@btnsize{\the\dimexpr\@anim@btnsize\relax}% %correct wrong option combination; totalheight overrides height @@ -2108,7 +2116,7 @@ \ifcsname Ginput@path\endcsname% make use of graphic[xs] search path \let\input@path\Ginput@path% \fi% - \setkeys{anim@user}{#1}% + \SetKeys[anim@user]{#1}% \ifx\empty\@anim@bg\empty\xdef\@anim@alpha{}\fi% \xdef\@anim@btnsize{\the\dimexpr\@anim@btnsize\relax}% %correct wrong option combination; totalheight overrides height @@ -2848,171 +2856,27 @@ } %command options -\define@key{anim@user}{label}{% - \gdef\@anim@label{#1}% - \ifcsname @anim@#1\endcsname% - \PackageWarning{animate}{Label #1 multiply defined} - \ifdefined\@anim@multlabel\else - \gdef\@anim@multlabel{}% - \AtEndDocument{% - \PackageWarningNoLine{animate}{% - @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@\MessageBreak - @ There are multiply-defined labels! @\MessageBreak - @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@}% - }% - \fi% - \fi% - \expandafter\gdef\csname @anim@#1\endcsname{}% -} -%setting the widget size -\define@key{anim@user}{width}{% - \gdef\@anim@widtharg{#1}% - \ifdefined\@anim@usrwd\else% - \global\advance\@anim@resizeflags by 4% - \def\@anim@usrwd{}% - \fi% -} -\define@key{anim@user}{height}{% - \gdef\@anim@heightarg{#1}% - \ifdefined\@anim@usrht\else% - \global\advance\@anim@resizeflags by 2% - \def\@anim@usrht{}% - \fi% -} -\define@key{anim@user}{totalheight}{% - \gdef\@anim@totheightarg{#1}% - \ifdefined\@anim@usrtht\else% - \global\advance\@anim@resizeflags by \@ne% - \def\@anim@usrtht{}% - \fi% -} -\define@key{anim@user}{depth}{% - \PackageWarning{animate}{Ignoring obsolete `depth' option.}% -} \newboolean{@anim@iso} -\define@key{anim@user}{keepaspectratio}[true]{% - \setboolean{@anim@iso}{#1}% -} -\define@key{anim@user}{bb}{% - \xdef\@anim@bb{bb=#1}% -} -\define@key{anim@user}{viewport}{% - \xdef\@anim@viewport{viewport=#1}% -} -\define@key{anim@user}{trim}{% - \xdef\@anim@trim{trim=#1}% -} -\define@key{anim@user}{angle}{% - \xdef\@anim@angle{angle=#1}% -} -\define@key{anim@user}{clip}[true]{% - %no-op, as embedded graphics are always clipped to widget box -} \newboolean{@anim@hiresbb} -\define@key{anim@user}{hiresbb}[true]{% - \setboolean{@anim@hiresbb}{#1}% -} \newboolean{@anim@interpolate} -\define@key{anim@user}{interpolate}[true]{% - \setboolean{@anim@interpolate}{#1}% -} -\define@key{anim@user}{pagebox}{% - \xdef\@anim@pagebox{pagebox=#1}% -} -\define@key{anim@user}{scale}{% - \xdef\@anim@boxscale{#1}% -} -\define@key{anim@user}{buttonsize}{% - \gdef\@anim@btnsize{#1}% -} -\def\@anim@colours#1:#2\@nil{% helper macro to get number of colour components - \xdef\@anim@colour{\@anim@colour\space #1}% and to replace : by ` ' in the arg - \ifthenelse{\equal{#2}{}}{}{% - \global\advance\@anim@tmpcnt by \@ne% - \@anim@colours#2\@nil% - }% -} -\define@key{anim@user}{buttonbg}{%background colour of buttons - \global\@anim@tmpcnt=\@ne% - \gdef\@anim@colour{}% - \@anim@colours#1:\@nil% - \global\let\@anim@bgcolour\@anim@colour% - \ifnum\if@anim@dvips 1\else\if@anim@dvisvgm 1\else0\fi\fi=1% - \ifnum\@anim@tmpcnt=\@ne\relax% - \xdef\@anim@bg{\@anim@colour\space setgray}% - \else% - \ifnum\@anim@tmpcnt=3\relax% - \xdef\@anim@bg{\@anim@colour\space setrgbcolor}% - \else% - \ifnum\@anim@tmpcnt=4\relax% - \xdef\@anim@bg{\@anim@colour\space setcmykcolor}% - \fi% - \fi% - \fi% - \else% pdftex and dvipdfmx - \ifnum\@anim@tmpcnt=\@ne\relax% - \xdef\@anim@bg{\@anim@colour\space g}% - \else% - \ifnum\@anim@tmpcnt=3\relax% - \xdef\@anim@bg{\@anim@colour\space rg}% - \else% - \ifnum\@anim@tmpcnt=4\relax% - \xdef\@anim@bg{\@anim@colour\space k}% - \fi% - \fi% - \fi% - \fi% -} -\define@key{anim@user}{buttonfg}{%stroking colour of buttons - \global\@anim@tmpcnt=\@ne% - \gdef\@anim@colour{}% - \@anim@colours#1:\@nil% - \global\let\@anim@fgcolour\@anim@colour% - \ifnum\if@anim@dvips 1\else\if@anim@dvisvgm 1\else0\fi\fi=1% - \ifnum\@anim@tmpcnt=\@ne\relax% - \xdef\@anim@fg{\@anim@colour\space setgray}% - \else% - \ifnum\@anim@tmpcnt=3\relax% - \xdef\@anim@fg{\@anim@colour\space setrgbcolor}% - \else% - \ifnum\@anim@tmpcnt=4\relax% - \xdef\@anim@fg{\@anim@colour\space setcmykcolor}% - \fi% - \fi% - \fi% - \else% pdftex and dvipdfmx - \ifnum\@anim@tmpcnt=\@ne\relax% - \xdef\@anim@fg{\@anim@colour\space G}% - \xdef\@anim@@@fg{\@anim@colour\space g}% - \else% - \ifnum\@anim@tmpcnt=3\relax% - \xdef\@anim@fg{\@anim@colour\space RG}% - \xdef\@anim@@@fg{\@anim@colour\space rg}% - \else% - \ifnum\@anim@tmpcnt=4\relax% - \xdef\@anim@fg{\@anim@colour\space K}% - \xdef\@anim@@@fg{\@anim@colour\space k}% - \fi% - \fi% - \fi% - \fi% -} -\define@key{anim@user}{buttonalpha}{%button opacity - \xdef\@anim@alpha{#1}% -} -\define@key{anim@user}{alttext}{% - \ifthenelse{\equal{#1}{none}}{% - \gdef\@anim@alttext{}% - }{% - \xdef\@anim@alttext{/Contents (#1)}% - }% -} - \newboolean{@anim@controls} \newboolean{@anim@controls@play} \newboolean{@anim@controls@step} \newboolean{@anim@controls@stop} \newboolean{@anim@controls@speed} +\newboolean{@anim@ctrlleft} +\newboolean{@anim@ctrlright} +\newboolean{@anim@ctrlcentre} +\newboolean{@anim@loop} +\newboolean{@anim@autoplay} +\newboolean{@anim@autoresume} +\newboolean{@anim@autopause} +\newboolean{@anim@palindrome} +\newboolean{@anim@step} +\newboolean{@anim@meas} +\setboolean{@anim@nomouse}{false} +\newboolean{@anim@draft} +\def\@anim@mone{-1}\def\@anim@mtwo{-2} \def\@anim@user@controls@all{% \setboolean{@anim@controls}{true}% \setboolean{@anim@controls@play}{true}% @@ -3027,185 +2891,333 @@ \setboolean{@anim@controls@stop}{false}% \setboolean{@anim@controls@speed}{false}% } -\define@key{anim@user}{controls}[all]{% - \@anim@user@controls@none% - \setkeys{anim@user@controls}{#1}% -} -\define@key{anim@user@controls}{all}[]{\@anim@user@controls@all} -\define@key{anim@user@controls}{true}[]{\@anim@user@controls@all} -\define@key{anim@user@controls}{on}[]{\@anim@user@controls@all} -\define@key{anim@user@controls}{none}[]{\@anim@user@controls@none} -\define@key{anim@user@controls}{false}[]{\@anim@user@controls@none} -\define@key{anim@user@controls}{off}[]{\@anim@user@controls@none} -\define@key{anim@user@controls}{play}[]{% - \setboolean{@anim@controls}{true}% - \setboolean{@anim@controls@play}{true}% -} -\define@key{anim@user@controls}{step}[]{% - \setboolean{@anim@controls}{true}% - \setboolean{@anim@controls@step}{true}% -} -\define@key{anim@user@controls}{stop}[]{% - \setboolean{@anim@controls}{true}% - \setboolean{@anim@controls@stop}{true}% -} -\define@key{anim@user@controls}{speed}[]{% - \setboolean{@anim@controls}{true}% - \setboolean{@anim@controls@speed}{true}% -} - \def\@anim@parse@ctrlsalignarg#1#2#3+#4\@nil{% \ifthenelse{\equal{#3}{}}{}{\def#1{#3}}% \ifthenelse{\equal{#4}{}}{#2=\z@}{\@anim@getalignindent#2#4\@nil}% } \def\@anim@getalignindent#1#2+\@nil{#1=#2} - -\newboolean{@anim@ctrlleft} -\newboolean{@anim@ctrlright} -\newboolean{@anim@ctrlcentre} -\define@key{anim@user}{controlsaligned}{% - \@anim@parse@ctrlsalignarg\@anim@tmpvar\@anim@tmpdima#1+\@nil% - \ifthenelse{\equal{\@anim@tmpvar}{left}}{% - \setboolean{@anim@ctrlleft}{true}% - \setboolean{@anim@ctrlright}{false}% - \setboolean{@anim@ctrlcentre}{false}% - \xdef\@anim@ctrlsindent{\the\@anim@tmpdima}% - }{% - \ifthenelse{\equal{\@anim@tmpvar}{right}}{% - \setboolean{@anim@ctrlleft}{false}% - \setboolean{@anim@ctrlright}{true}% - \setboolean{@anim@ctrlcentre}{false}% - \xdef\@anim@ctrlsindent{\the\@anim@tmpdima}% - }{% - \ifthenelse{\equal{\@anim@tmpvar}{center}}{% - \setboolean{@anim@ctrlleft}{false}% - \setboolean{@anim@ctrlright}{false}% - \setboolean{@anim@ctrlcentre}{true}% - \xdef\@anim@ctrlsindent{\z@}% - }{}% - }% +% helper macro to get number of colour components +\def\@anim@colours#1{\@anim@@colours#1:\@nil} +\def\@anim@@colours#1:#2\@nil{% helper macro to get number of colour components + \xdef\@anim@colour{\@anim@colour\space #1}% and to replace : by ` ' in the arg + \ifthenelse{\equal{#2}{}}{}{% + \global\advance\@anim@tmpcnt by \@ne% + \@anim@@colours#2\@nil% }% } -\newboolean{@anim@loop} -\define@key{anim@user}{loop}[true]{% - \setboolean{@anim@loop}{#1}% -} -\newboolean{@anim@autoplay} -\define@key{anim@user}{autoplay}[true]{% - \setboolean{@anim@autoplay}{#1}% - \if@anim@autoplay% - \setboolean{@anim@autoresume}{false}% - \fi% -} -\newboolean{@anim@autoresume} -\define@key{anim@user}{autoresume}[true]{% - \setboolean{@anim@autoresume}{#1}% - \if@anim@autoresume% - \setboolean{@anim@autoplay}{false}% - \fi% -} -\newboolean{@anim@autopause} -\define@key{anim@user}{autopause}[true]{% - \setboolean{@anim@autopause}{#1}% -} -\newboolean{@anim@palindrome} -\define@key{anim@user}{palindrome}[true]{% - \setboolean{@anim@palindrome}{#1}% -} -\def\@anim@mone{-1}\def\@anim@mtwo{-2} -\define@key{anim@user}{poster}[first]{% <num> | first | last | none - \ifthenelse{% - \equal{#1}{first}% - }{% - \gdef\@anim@poster{0}% - }{% - \ifthenelse{% - \equal{#1}{last}% - }{% - \gdef\@anim@poster{-1}% - }{% - \ifthenelse{% - \equal{#1}{none}% - }{% - \gdef\@anim@poster{-2}% - }{% - \ifnum#1<\z@\relax% - \PackageError{animate}{% - Poster frame `#1' is out-of-bounds on\MessageBreak% - input line \the\inputlineno.\MessageBreak% - Try one of `poster=first' or `poster=none'% - }{}% - \fi% - \gdef\@anim@poster{#1}% - }% - }% - }% -} -\newboolean{@anim@step} -\define@key{anim@user}{step}[true]{% - \setboolean{@anim@step}{#1}% -} -\newboolean{@anim@draft} -\define@key{anim@user}{draft}[true]{% - \setboolean{@anim@draft}{#1}% -} -\define@key{anim@user}{final}[true]{% - \ifthenelse{\equal{#1}{true}}{% - \setboolean{@anim@draft}{false}% - }{% - \setboolean{@anim@draft}{true}% - }% -} -\setboolean{@anim@nomouse}{false} -\define@key{anim@user}{nomouse}[true]{% - \setboolean{@anim@nomouse}{#1}% -} -\define@key{anim@user}{timeline}{% - \IfFileExists{#1}{% - \xdef\@anim@tmlnfile{\expandafter\zap@finalspace\@filef@und\@nil}% - \setboolean{@anim@timeline}{true}% - }{% - \PackageError{animate}{timeline file `#1' cannot be opened for reading% - }{% - Make sure file `#1' exists and is readable!% - }% - }% -} -\define@key{anim@user}{begin}{% - \gdef\@anim@begin{#1}% -} -\define@key{anim@user}{end}{% - \gdef\@anim@end{#1}% -} -\define@key{anim@user}{every}{% embed every #1th frame - \ifnum#1<\@ne\relax\gdef\@anim@every{1}\else\gdef\@anim@every{#1}\fi% -} -\newboolean{@anim@meas} -\define@key{anim@user}{measure}[true]{% - \setboolean{@anim@meas}{#1}% -} -\define@key{anim@user}{method}{% - \ifthenelse{\equal{#1}{icon}}{% - \def\@anim@method{\z@}% - }{% - \ifthenelse{\equal{#1}{widget}}{% - \def\@anim@method{\@ne}% - }{% - \ifthenelse{\equal{#1}{ocg}}{% - \def\@anim@method{\tw@}% - }{}% - }% - }% -} -\define@key{anim@user}{useocg}[]{% - \PackageError{animate}{% - Option `useocg' has been removed.\MessageBreak% - Use `method=ocg' instead% - }{}% -} +\ExplSyntaxOn +\DeclareKeys[anim@user]{ + label.code:n = { + \gdef\@anim@label{#1} + \ifcsname @anim@#1\endcsname + \PackageWarning{animate}{Label~#1~multiply~defined} + \ifdefined\@anim@multlabel\else + \gdef\@anim@multlabel{} + \AtEndDocument{ + \PackageWarningNoLine{animate}{ + @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@\MessageBreak + @~There~are~multiply-defined~labels!~@\MessageBreak + @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@} + } + \fi + \fi + \expandafter\gdef\csname @anim@#1\endcsname{} + }, + label.value_required:n = true, + + width.code:n = { + \gdef\@anim@widtharg{#1} + \ifdefined\@anim@usrwd\else + \global\advance\@anim@resizeflags by 4 + \def\@anim@usrwd{} + \fi + }, + width.value_required:n = true, + + height.code:n = { + \gdef\@anim@heightarg{#1} + \ifdefined\@anim@usrht\else + \global\advance\@anim@resizeflags by 2 + \def\@anim@usrht{} + \fi + }, + height.value_required:n = true, + + totalheight.code:n = { + \gdef\@anim@totheightarg{#1} + \ifdefined\@anim@usrtht\else + \global\advance\@anim@resizeflags by \@ne + \def\@anim@usrtht{} + \fi + }, + totalheight.value_required:n = true, + + keepaspectratio.legacy_if_gset:n = @anim@iso, + keepaspectratio.default:n = true, + + bb.code:n = {\xdef\@anim@bb{bb=#1}}, + bb.value_required:n = true, + + viewport.code:n = {\xdef\@anim@viewport{viewport=#1}}, + viewport.value_required:n = true, -\define@key{anim@user}{type}{\gdef\@anim@ftype{#1}}% + trim.code:n = {\xdef\@anim@trim{trim=#1}}, + trim.value_required:n = true, + + angle.code:n = {\xdef\@anim@angle{angle=#1}}, + angle.value_required:n = true, + + pagebox.code:n = {\xdef\@anim@pagebox{pagebox=#1}}, + pagebox.value_required:n = true, + + clip.code:n = {}, % no-op, as embedded graphics are always + clip.default:n = true, % clipped to widget box + + hiresbb.legacy_if_gset:n = @anim@hiresbb, + hiresbb.default:n = true, + + interpolate.legacy_if_gset:n = @anim@interpolate, + interpolate.default:n = true, + + scale.tl_gset_x:N = \@anim@boxscale, + scale.value_required:n = true, + + buttonsize.tl_gset:N = \@anim@btnsize, + buttonsize.value_required:n = true, + + buttonbg.code:n = { + \global\@anim@tmpcnt=\@ne + \gdef\@anim@colour{} + \@anim@colours{#1} + \global\let\@anim@bgcolour\@anim@colour + \ifnum\if@anim@dvips 1\else\if@anim@dvisvgm 1\else0\fi\fi=1 + \ifnum\@anim@tmpcnt=\@ne\relax + \xdef\@anim@bg{\@anim@colour\space setgray} + \else + \ifnum\@anim@tmpcnt=3\relax + \xdef\@anim@bg{\@anim@colour\space setrgbcolor} + \else + \ifnum\@anim@tmpcnt=4\relax + \xdef\@anim@bg{\@anim@colour\space setcmykcolor} + \fi + \fi + \fi + \else% pdftex and dvipdfmx + \ifnum\@anim@tmpcnt=\@ne\relax + \xdef\@anim@bg{\@anim@colour\space g} + \else + \ifnum\@anim@tmpcnt=3\relax + \xdef\@anim@bg{\@anim@colour\space rg} + \else + \ifnum\@anim@tmpcnt=4\relax + \xdef\@anim@bg{\@anim@colour\space k} + \fi + \fi + \fi + \fi + }, + buttonbg.value_required:n = true, + + buttonfg.code:n = { + \global\@anim@tmpcnt=\@ne + \gdef\@anim@colour{} + \@anim@colours{#1} + \global\let\@anim@fgcolour\@anim@colour + \ifnum\if@anim@dvips 1\else\if@anim@dvisvgm 1\else0\fi\fi=1 + \ifnum\@anim@tmpcnt=\@ne\relax + \xdef\@anim@fg{\@anim@colour\space setgray} + \else + \ifnum\@anim@tmpcnt=3\relax + \xdef\@anim@fg{\@anim@colour\space setrgbcolor} + \else + \ifnum\@anim@tmpcnt=4\relax + \xdef\@anim@fg{\@anim@colour\space setcmykcolor} + \fi + \fi + \fi + \else% pdftex and dvipdfmx + \ifnum\@anim@tmpcnt=\@ne\relax + \xdef\@anim@fg{\@anim@colour\space G} + \xdef\@anim@@@fg{\@anim@colour\space g} + \else + \ifnum\@anim@tmpcnt=3\relax + \xdef\@anim@fg{\@anim@colour\space RG} + \xdef\@anim@@@fg{\@anim@colour\space rg} + \else + \ifnum\@anim@tmpcnt=4\relax + \xdef\@anim@fg{\@anim@colour\space K} + \xdef\@anim@@@fg{\@anim@colour\space k} + \fi + \fi + \fi + \fi + }, + buttonfg.value_required:n = true, + + buttonalpha.tl_gset_x:N = \@anim@alpha, + buttonalpha.value_required:n = true, + + alttext.code:n = { + \ifthenelse{\equal{#1}{none}}{ + \gdef\@anim@alttext{} + }{ + \xdef\@anim@alttext{/Contents~(#1)} + } + }, + alttext.value_required:n = true, + + controls.multichoice:, + controls / all.code:n = {\@anim@user@controls@all}, + controls / true.code:n = {\@anim@user@controls@all}, + controls / on.code:n = {\@anim@user@controls@all}, + controls / none.code:n = {\@anim@user@controls@none}, + controls / false.code:n = {\@anim@user@controls@none}, + controls / off.code:n = {\@anim@user@controls@none}, + controls / play.code:n = { + \setboolean{@anim@controls}{true} + \setboolean{@anim@controls@play}{true} + }, + controls / step.code:n = { + \setboolean{@anim@controls}{true} + \setboolean{@anim@controls@step}{true} + }, + controls / stop.code:n = { + \setboolean{@anim@controls}{true} + \setboolean{@anim@controls@stop}{true} + }, + controls / speed.code:n = { + \setboolean{@anim@controls}{true} + \setboolean{@anim@controls@speed}{true} + }, + controls.default:n = all, + + controlsaligned.code:n = { + \@anim@parse@ctrlsalignarg\@anim@tmpvar\@anim@tmpdima#1+\@nil + \ifthenelse{\equal{\@anim@tmpvar}{left}}{ + \setboolean{@anim@ctrlleft}{true} + \setboolean{@anim@ctrlright}{false} + \setboolean{@anim@ctrlcentre}{false} + \xdef\@anim@ctrlsindent{\the\@anim@tmpdima} + }{ + \ifthenelse{\equal{\@anim@tmpvar}{right}}{ + \setboolean{@anim@ctrlleft}{false} + \setboolean{@anim@ctrlright}{true} + \setboolean{@anim@ctrlcentre}{false} + \xdef\@anim@ctrlsindent{\the\@anim@tmpdima} + }{ + \ifthenelse{\equal{\@anim@tmpvar}{center}}{ + \setboolean{@anim@ctrlleft}{false} + \setboolean{@anim@ctrlright}{false} + \setboolean{@anim@ctrlcentre}{true} + \xdef\@anim@ctrlsindent{\z@} + }{} + } + } + }, + controlsaligned.value_required:n = true, + + loop.legacy_if_gset:n = @anim@loop, + loop.default:n = true, + + autoplay.code:n = { + \setboolean{@anim@autoplay}{#1} + \if@anim@autoplay\setboolean{@anim@autoresume}{false}\fi + }, + autoplay.default:n = true, + + autoresume.code:n = { + \setboolean{@anim@autoresume}{#1} + \if@anim@autoresume\setboolean{@anim@autoplay}{false}\fi + }, + autoresume.default:n = true, + + autopause.legacy_if_gset:n = @anim@autopause, + autopause.default:n = true, + + palindrome.legacy_if_gset:n = @anim@palindrome, + palindrome.default:n = true, + + poster.choice:, % <num> | first | last | none + poster / first.code:n = {\gdef\@anim@poster{0}}, + poster / last.code:n = {\gdef\@anim@poster{-1}}, + poster / none.code:n = {\gdef\@anim@poster{-2}}, + poster / unknown.code:n = {% frame <num> + \ifnum#1<\z@\relax + \PackageError{animate}{ + Poster~frame~`#1'~is~out-of-bounds~on\MessageBreak + input~line~\the\inputlineno.\MessageBreak + Try~one~of~`poster=first'~or~`poster=none' + }{} + \fi + \gdef\@anim@poster{#1} + }, + poster.default:n = first, + + step.legacy_if_gset:n = @anim@step, + step.default:n = true, + + draft.legacy_if_gset:n = @anim@draft, + draft.default:n = true, + + final.code:n = { + \ifthenelse{\equal{#1}{true}}{ + \setboolean{@anim@draft}{false} + }{ + \setboolean{@anim@draft}{true} + } + }, + final.default:n = true, + + nomouse.legacy_if_gset:n = @anim@nomouse, + nomouse.default:n = true, + + timeline.code:n = { + \IfFileExists{#1}{ + \xdef\@anim@tmlnfile{\expandafter\zap@finalspace\@filef@und\@nil} + \setboolean{@anim@timeline}{true} + }{ + \PackageError{animate}{timeline~file~`#1'~cannot~be~opened~for~reading + }{ + Make~sure~file~`#1'~exists~and~is~readable! + } + } + }, + timeline.value_required:n = true, + + begin.tl_gset:N = \@anim@begin, + begin.value_required:n = true, + + end.tl_gset:N = \@anim@end, + end.value_required:n = true, + + every.code:n = { + \ifnum#1<\@ne\relax\gdef\@anim@every{1}\else\gdef\@anim@every{#1}\fi + }, + every.value_required:n = true, + + measure.legacy_if_gset:n = @anim@meas, + measure.default:n = true, + + method.choices:nn = {icon,widget,ocg} { + \ifthenelse{\equal{#1}{icon}}{ + \def\@anim@method{\z@} + }{ + \ifthenelse{\equal{#1}{widget}}{ + \def\@anim@method{\@ne} + }{ + \ifthenelse{\equal{#1}{ocg}}{ + \def\@anim@method{\tw@} + }{} + } + } + }, + method.value_required:n = true, + + type.tl_gset_x:N = \@anim@ftype, + type.value_required:n = true, +} +\ExplSyntaxOff %macro to reset macros and booleans \def\@anim@reset{% @@ -3274,197 +3286,25 @@ } %package options -\define@key{anim@pkg}{dvips}[]{% - \ifthenelse{\equal{#1}{}}{}{% - \PackageError{animate}{% - Package option `dvips' does not accept arguments% - }{}% - }% -}% -\define@key{anim@pkg}{dvipdfmx}[]{ - \ifthenelse{\equal{#1}{}}{}{% - \PackageError{animate}{% - Package option `dvipdfmx' does not accept arguments% - }{}% - }% -}% -\define@key{anim@pkg}{dvisvgm}[]{ - \ifthenelse{\equal{#1}{}}{}{% - \PackageError{animate}{% - Package option `dvisvgm' does not accept arguments% - }{}% - }% -}% -\define@key{anim@pkg}{xetex}[]{ - \ifthenelse{\equal{#1}{}}{}{% - \PackageError{animate}{% - Package option `xetex' does not accept arguments% - }{}% - }% -}% -\define@key{anim@pkg}{export}[]{ - \ifthenelse{\equal{#1}{}}{}{% - \PackageError{animate}{% - Package option `export' does not accept arguments% - }{}% - }% -}% -\def\@anim@@bg{} -\def\@anim@@bgcolour{} -\define@key{anim@pkg}{buttonbg}{%background colour of buttons - \global\@anim@tmpcnt=\@ne% - \gdef\@anim@colour{}% - \@anim@colours#1:\@nil% - \global\let\@anim@@bgcolour\@anim@colour% - \ifnum\if@anim@dvips 1\else\if@anim@dvisvgm 1\else0\fi\fi=1% - \ifnum\@anim@tmpcnt=\@ne\relax% - \xdef\@anim@@bg{\@anim@colour\space setgray}% - \else% - \ifnum\@anim@tmpcnt=3\relax% - \xdef\@anim@@bg{\@anim@colour\space setrgbcolor}% - \else% - \ifnum\@anim@tmpcnt=4\relax% - \xdef\@anim@@bg{\@anim@colour\space setcmykcolor}% - \fi% - \fi% - \fi% - \else% pdftex and dvipdfmx - \ifnum\@anim@tmpcnt=\@ne\relax% - \xdef\@anim@@bg{\@anim@colour\space g}% - \else% - \ifnum\@anim@tmpcnt=3\relax% - \xdef\@anim@@bg{\@anim@colour\space rg}% - \else% - \ifnum\@anim@tmpcnt=4\relax% - \xdef\@anim@@bg{\@anim@colour\space k}% - \fi% - \fi% - \fi% - \fi% -} - -\ifnum\if@anim@dvips 1\else\if@anim@dvisvgm 1\else0\fi\fi=1 - %dvips .OR. dvisvgm - \def\@anim@@fg{0 setgray}\def\@anim@@@@fg{} -\else% pdftex and dvipdfmx - \def\@anim@@fg{0 G}\def\@anim@@@@fg{0 g} -\fi -\def\@anim@@fgcolour{} -\define@key{anim@pkg}{buttonfg}{%stroking colour of buttons - \global\@anim@tmpcnt=\@ne% - \gdef\@anim@colour{}% - \@anim@colours#1:\@nil% - \global\let\@anim@@fgcolour\@anim@colour% - \ifnum\if@anim@dvips 1\else\if@anim@dvisvgm 1\else0\fi\fi=1% - \ifnum\@anim@tmpcnt=\@ne\relax% - \xdef\@anim@@fg{\@anim@colour\space setgray}% - \else% - \ifnum\@anim@tmpcnt=3\relax% - \xdef\@anim@@fg{\@anim@colour\space setrgbcolor}% - \else% - \ifnum\@anim@tmpcnt=4\relax% - \xdef\@anim@@fg{\@anim@colour\space setcmykcolor}% - \fi% - \fi% - \fi% - \else% pdftex and dvipdfmx - \ifnum\@anim@tmpcnt=\@ne\relax% - \xdef\@anim@@fg{\@anim@colour\space G}% - \xdef\@anim@@@@fg{\@anim@colour\space g}% - \else% - \ifnum\@anim@tmpcnt=3\relax% - \xdef\@anim@@fg{\@anim@colour\space RG}% - \xdef\@anim@@@@fg{\@anim@colour\space rg}% - \else% - \ifnum\@anim@tmpcnt=4\relax% - \xdef\@anim@@fg{\@anim@colour\space K}% - \xdef\@anim@@@@fg{\@anim@colour\space k}% - \fi% - \fi% - \fi% - \fi% -} -\def\@anim@@alpha{} -\define@key{anim@pkg}{buttonalpha}{%button opacity - \xdef\@anim@@alpha{#1}% -} \newcount\@anim@@resizeflags -\def\@anim@@widtharg{\width}% -\define@key{anim@pkg}{width}{% - \def\@anim@@widtharg{#1}% - \ifdefined\@anim@pkgwd\else% - \advance\@anim@@resizeflags by 4% - \def\@anim@pkgwd{}% - \fi% -} -\def\@anim@@heightarg{\height}% -\define@key{anim@pkg}{height}{% - \def\@anim@@heightarg{#1}% - \ifdefined\@anim@pkght\else% - \advance\@anim@@resizeflags by 2% - \def\@anim@pkght{}% - \fi% -} -\def\@anim@@totheightarg{\totalheight}% -\define@key{anim@pkg}{totalheight}{% - \def\@anim@@totheightarg{#1}% - \ifdefined\@anim@pkgtht\else% - \advance\@anim@@resizeflags by \@ne% - \def\@anim@pkgtht{}% - \fi% -} +\def\@anim@@widtharg{\width} +\def\@anim@@heightarg{\height} +\def\@anim@@totheightarg{\totalheight} \newboolean{@anim@@iso} -\define@key{anim@pkg}{keepaspectratio}[true]{% - \setboolean{@anim@@iso}{#1}% -} \def\@anim@@bb{} -\define@key{anim@pkg}{bb}{% - \xdef\@anim@bb{bb=#1}% -} \def\@anim@@viewport{} -\define@key{anim@pkg}{viewport}{% - \xdef\@anim@@viewport{viewport=#1}% -} \def\@anim@@trim{} -\define@key{anim@pkg}{trim}{% - \xdef\@anim@@trim{trim=#1}% -} \def\@anim@@angle{} -\define@key{anim@pkg}{angle}{% - \xdef\@anim@@angle{angle=#1}% -} -\define@key{anim@pkg}{clip}[true]{% - %no-op, as embedded graphics are always clipped to widget box -} +\def\@anim@@pagebox{} \newboolean{@anim@@hiresbb} -\define@key{anim@pkg}{hiresbb}[true]{% - \setboolean{@anim@@hiresbb}{#1}% -} \newboolean{@anim@@interpolate} -\define@key{anim@pkg}{interpolate}[true]{% - \setboolean{@anim@@interpolate}{#1}% -} -\def\@anim@@pagebox{} -\define@key{anim@pkg}{pagebox}{% - \xdef\@anim@@pagebox{pagebox=#1}% -} -\def\@anim@@boxscale{1}% -\define@key{anim@pkg}{scale}{% - \def\@anim@@boxscale{#1}% -} -\def\@anim@@btnsize{1.44em}% -\define@key{anim@pkg}{buttonsize}{% - \gdef\@anim@@btnsize{#1}% -} +\def\@anim@@boxscale{1} +\def\@anim@@btnsize{1.44em} +\def\@anim@@bg{} +\def\@anim@@bgcolour{} +\def\@anim@@fgcolour{} +\def\@anim@@alpha{} \edef\@anim@@alttext{/Contents (animation by animate, v. \@anim@version)} -\define@key{anim@pkg}{alttext}{% - \ifthenelse{\equal{#1}{none}}{% - \gdef\@anim@@alttext{}% - }{% - \xdef\@anim@@alttext{/Contents (#1)}% - }% -} - \newboolean{@anim@@controls} \newboolean{@anim@@controls@play} \newboolean{@anim@@controls@step} @@ -3484,170 +3324,301 @@ \setboolean{@anim@@controls@stop}{false}% \setboolean{@anim@@controls@speed}{false}% } -\define@key{anim@pkg}{controls}[all]{% - \@anim@pkg@controls@none% - \setkeys{anim@pkg@controls}{#1}% -} -\define@key{anim@pkg@controls}{all}[]{\@anim@pkg@controls@all} -\define@key{anim@pkg@controls}{true}[]{\@anim@pkg@controls@all} -\define@key{anim@pkg@controls}{on}[]{\@anim@pkg@controls@all} -\define@key{anim@pkg@controls}{none}[]{\@anim@pkg@controls@none} -\define@key{anim@pkg@controls}{false}[]{\@anim@pkg@controls@none} -\define@key{anim@pkg@controls}{off}[]{\@anim@pkg@controls@none} -\define@key{anim@pkg@controls}{play}[]{% - \setboolean{@anim@@controls}{true}% - \setboolean{@anim@@controls@play}{true}% -} -\define@key{anim@pkg@controls}{step}[]{% - \setboolean{@anim@@controls}{true}% - \setboolean{@anim@@controls@step}{true}% -} -\define@key{anim@pkg@controls}{stop}[]{% - \setboolean{@anim@@controls}{true}% - \setboolean{@anim@@controls@stop}{true}% -} -\define@key{anim@pkg@controls}{speed}[]{% - \setboolean{@anim@@controls}{true}% - \setboolean{@anim@@controls@speed}{true}% -} - \newboolean{@anim@@ctrlleft} \newboolean{@anim@@ctrlright} \newboolean{@anim@@ctrlcentre} \setboolean{@anim@@ctrlcentre}{true} \def\@anim@@ctrlsindent{\z@} -\define@key{anim@pkg}{controlsaligned}{% - \@anim@parse@ctrlsalignarg\@anim@tmpvar\@anim@tmpdima#1+\@nil% - \setboolean{@anim@@ctrlcentre}{false}% - \ifthenelse{\equal{\@anim@tmpvar}{left}}{% - \setboolean{@anim@@ctrlleft}{true}% - \edef\@anim@@ctrlsindent{\the\@anim@tmpdima}% - }{% - \ifthenelse{\equal{\@anim@tmpvar}{right}}{% - \setboolean{@anim@@ctrlright}{true}% - \edef\@anim@@ctrlsindent{\the\@anim@tmpdima}% - }{\setboolean{@anim@@ctrlcentre}{true}}% - }% -} - \newboolean{@anim@@loop} -\setboolean{@anim@@loop}{false}% -\define@key{anim@pkg}{loop}[true]{% - \setboolean{@anim@@loop}{#1}% -} \newboolean{@anim@@autoplay} -\setboolean{@anim@@autoplay}{false} -\define@key{anim@pkg}{autoplay}[true]{% - \setboolean{@anim@@autoplay}{#1}% - \if@anim@@autoplay\setboolean{@anim@@autoresume}{false}\fi% -} \newboolean{@anim@@autoresume} -\setboolean{@anim@@autoresume}{false} -\define@key{anim@pkg}{autoresume}[true]{% - \setboolean{@anim@@autoresume}{#1}% - \if@anim@@autoresume\setboolean{@anim@@autoplay}{false}\fi% -} \newboolean{@anim@@autopause} -\setboolean{@anim@@autopause}{false} -\define@key{anim@pkg}{autopause}[true]{% - \setboolean{@anim@@autopause}{#1}% -} \newboolean{@anim@@palindrome} -\setboolean{@anim@@palindrome}{false} -\define@key{anim@pkg}{palindrome}[true]{% - \setboolean{@anim@@palindrome}{#1}% -} \gdef\@anim@@poster{0}% -\define@key{anim@pkg}{poster}[first]{% - \ifthenelse{% - \equal{#1}{first}% - }{% - \gdef\@anim@@poster{0}% - }{% - \ifthenelse{% - \equal{#1}{last}% - }{% - \gdef\@anim@@poster{-1}% - }{% - \ifthenelse{% - \equal{#1}{none}% - }{% - \gdef\@anim@@poster{-2}% - }{% - \ifnum#1<\z@\relax% - \PackageError{animate}{% - Poster frame `#1' is out-of-bounds on\MessageBreak% - input line \the\inputlineno.\MessageBreak% - Try one of `poster=first' or `poster=none'% - }{}% - \fi% - \gdef\@anim@@poster{#1}% - }% - }% - }% -} \newboolean{@anim@@step} -\setboolean{@anim@@step}{false} -\define@key{anim@pkg}{step}[true]{% - \setboolean{@anim@@step}{#1}% -} \newboolean{@anim@@draft} \ifdraft{%globally set by document class \setboolean{@anim@@draft}{true}% }{% \setboolean{@anim@@draft}{false}% -}% -\define@key{anim@pkg}{draft}[true]{% - \setboolean{@anim@@draft}{#1}% - \if@anim@export% - \setboolean{@anim@@draft}{false}% - \fi% -} -\define@key{anim@pkg}{final}[true]{% - \ifthenelse{\equal{#1}{true}}{% - \setboolean{@anim@@draft}{false}% - }{% - \setboolean{@anim@@draft}{true}% - }% } \newboolean{@anim@@nomouse} -\setboolean{@anim@@nomouse}{false} -\define@key{anim@pkg}{nomouse}[true]{% - \setboolean{@anim@@nomouse}{#1}% -} +\def\@anim@@method{\z@}%default animation method is `icon' +\def\@anim@@ftype{}% file type (extension) of graphics + +\ExplSyntaxOn +\DeclareKeys[anim@pkg]{ + width.code:n = { + \gdef\@anim@@widtharg{#1} + \ifdefined\@anim@pkgwd\else + \advance\@anim@@resizeflags by 4 + \def\@anim@pkgwd{}% + \fi% + }, + width.value_required:n = true, -%file type (extension) of graphics files to be embedded -\def\@anim@@ftype{}% -\define@key{anim@pkg}{type}{\def\@anim@@ftype{#1}}% + height.code:n = { + \gdef\@anim@@heightarg{#1} + \ifdefined\@anim@pkght\else + \advance\@anim@@resizeflags by 2 + \def\@anim@pkght{} + \fi + }, + height.value_required:n = true, -% animation method: icon vs. widget vs. ocg based -\define@key{anim@pkg}{method}{% - \ifthenelse{\equal{#1}{icon}}{% - \def\@anim@@method{\z@}% - }{% - \ifthenelse{\equal{#1}{widget}}{% - \def\@anim@@method{\@ne}% + totalheight.code:n = { + \gdef\@anim@@totheightarg{#1} + \ifdefined\@anim@pkgtht\else + \advance\@anim@@resizeflags by \@ne + \def\@anim@pkgtht{} + \fi + }, + totalheight.value_required:n = true, + + keepaspectratio.legacy_if_gset:n = @anim@@iso, + keepaspectratio.default:n = true, + + bb.code:n = {\xdef\@anim@@bb{bb=#1}}, + bb.value_required:n = true, + + viewport.code:n = {\xdef\@anim@@viewport{viewport=#1}}, + viewport.value_required:n = true, + + trim.code:n = {\xdef\@anim@@trim{trim=#1}}, + trim.value_required:n = true, + + angle.code:n = {\xdef\@anim@@angle{angle=#1}}, + angle.value_required:n = true, + + pagebox.code:n = {\xdef\@anim@@pagebox{pagebox=#1}}, + pagebox.value_required:n = true, + + clip.code:n = {}, % no-op, as embedded graphics are always + clip.default:n = true, % clipped to widget box + + hiresbb.legacy_if_gset:n = @anim@@hiresbb, + hiresbb.default:n = true, + + interpolate.legacy_if_gset:n = @anim@@interpolate, + interpolate.default:n = true, + + scale.tl_gset_x:N = \@anim@@boxscale, + scale.value_required:n = true, + + buttonsize.tl_gset:N = \@anim@@btnsize, + buttonsize.value_required:n = true, + + buttonbg.code:n = { + \global\@anim@tmpcnt=\@ne + \gdef\@anim@colour{} + \@anim@colours{#1} + \global\let\@anim@@bgcolour\@anim@colour + \ifnum\if@anim@dvips 1\else\if@anim@dvisvgm 1\else0\fi\fi=1 + \ifnum\@anim@tmpcnt=\@ne\relax + \xdef\@anim@@bg{\@anim@colour\space setgray} + \else + \ifnum\@anim@tmpcnt=3\relax + \xdef\@anim@@bg{\@anim@colour\space setrgbcolor} + \else + \ifnum\@anim@tmpcnt=4\relax + \xdef\@anim@@bg{\@anim@colour\space setcmykcolor} + \fi + \fi + \fi + \else% pdftex and dvipdfmx + \ifnum\@anim@tmpcnt=\@ne\relax + \xdef\@anim@@bg{\@anim@colour\space g} + \else + \ifnum\@anim@tmpcnt=3\relax + \xdef\@anim@@bg{\@anim@colour\space rg} + \else + \ifnum\@anim@tmpcnt=4\relax + \xdef\@anim@@bg{\@anim@colour\space k} + \fi + \fi + \fi + \fi + }, + buttonbg.value_required:n = true, + + buttonfg.code:n = { + \global\@anim@tmpcnt=\@ne + \gdef\@anim@colour{} + \@anim@@colours#1:\@nil + \global\let\@anim@@fgcolour\@anim@colour + \ifnum\if@anim@dvips 1\else\if@anim@dvisvgm 1\else0\fi\fi=1 + \ifnum\@anim@tmpcnt=\@ne\relax + \xdef\@anim@@fg{\@anim@colour\space setgray} + \else + \ifnum\@anim@tmpcnt=3\relax + \xdef\@anim@@fg{\@anim@colour\space setrgbcolor} + \else + \ifnum\@anim@tmpcnt=4\relax + \xdef\@anim@@fg{\@anim@colour\space setcmykcolor} + \fi + \fi + \fi + \else% pdftex and dvipdfmx + \ifnum\@anim@tmpcnt=\@ne\relax + \xdef\@anim@@fg{\@anim@colour\space G} + \xdef\@anim@@@@fg{\@anim@colour\space g} + \else + \ifnum\@anim@tmpcnt=3\relax + \xdef\@anim@@fg{\@anim@colour\space RG} + \xdef\@anim@@@@fg{\@anim@colour\space rg} + \else + \ifnum\@anim@tmpcnt=4\relax + \xdef\@anim@@fg{\@anim@colour\space K} + \xdef\@anim@@@@fg{\@anim@colour\space k} + \fi + \fi + \fi + \fi + }, + buttonfg.value_required:n = true, + + buttonalpha.tl_gset_x:N = \@anim@@alpha, + buttonalpha.value_required:n = true, + + alttext.code:n = { + \ifthenelse{\equal{#1}{none}}{ + \gdef\@anim@@alttext{} + }{ + \xdef\@anim@@alttext{/Contents~(#1)} + } + }, + alttext.value_required:n = true, + + controls.multichoice:, + controls / all.code:n = {\@anim@pkg@controls@all}, + controls / true.code:n = {\@anim@pkg@controls@all}, + controls / on.code:n = {\@anim@pkg@controls@all}, + controls / none.code:n = {\@anim@pkg@controls@none}, + controls / false.code:n = {\@anim@pkg@controls@none}, + controls / off.code:n = {\@anim@pkg@controls@none}, + controls / play.code:n = { + \setboolean{@anim@@controls}{true} + \setboolean{@anim@@controls@play}{true} + }, + controls / step.code:n = { + \setboolean{@anim@@controls}{true} + \setboolean{@anim@@controls@step}{true} + }, + controls / stop.code:n = { + \setboolean{@anim@@controls}{true} + \setboolean{@anim@@controls@stop}{true} + }, + controls / speed.code:n = { + \setboolean{@anim@@controls}{true} + \setboolean{@anim@@controls@speed}{true} + }, + controls.default:n = all, + + controlsaligned.code:n = { + \@anim@parse@ctrlsalignarg\@anim@tmpvar\@anim@tmpdima#1+\@nil + \setboolean{@anim@@ctrlcentre}{false} + \ifthenelse{\equal{\@anim@tmpvar}{left}}{ + \setboolean{@anim@@ctrlleft}{true} + \edef\@anim@@ctrlsindent{\the\@anim@tmpdima} + }{ + \ifthenelse{\equal{\@anim@tmpvar}{right}}{ + \setboolean{@anim@@ctrlright}{true} + \edef\@anim@@ctrlsindent{\the\@anim@tmpdima} + }{ + \setboolean{@anim@@ctrlcentre}{true} + \xdef\@anim@@ctrlsindent{\z@} + } + } + }, + controlsaligned.value_required:n = true, + + loop.legacy_if_gset:n = @anim@@loop, + loop.default:n = true, + + autoplay.code:n = { + \setboolean{@anim@@autoplay}{#1} + \if@anim@@autoplay\setboolean{@anim@@autoresume}{false}\fi + }, + autoplay.default:n = true, + + autoresume.code:n = { + \setboolean{@anim@@autoresume}{#1} + \if@anim@@autoresume\setboolean{@anim@@autoplay}{false}\fi + }, + autoresume.default:n = true, + + autopause.legacy_if_gset:n = @anim@@autopause, + autopause.default:n = true, + + palindrome.legacy_if_gset:n = @anim@@palindrome, + palindrome.default:n = true, + + poster.choice:, % <num> | first | last | none + poster / first.code:n = {\gdef\@anim@@poster{0}}, + poster / last.code:n = {\gdef\@anim@@poster{-1}}, + poster / none.code:n = {\gdef\@anim@@poster{-2}}, + poster / unknown.code:n = {% frame <num> + \ifnum#1<\z@\relax + \PackageError{animate}{ + Poster~frame~`#1'~is~out-of-bounds~on\MessageBreak + input~line~\the\inputlineno.\MessageBreak + Try~one~of~`poster=first'~or~`poster=none' + }{} + \fi + \gdef\@anim@@poster{#1} + }, + poster.default:n = first, + + step.legacy_if_gset:n = @anim@@step, + step.default:n = true, + + draft.code:n = { + \setboolean{@anim@@draft}{#1} + \if@anim@export\setboolean{@anim@@draft}{false}\fi + }, + draft.default:n = true, + + final.code:n = { + \ifthenelse{\equal{#1}{true}}{ + \setboolean{@anim@@draft}{false} }{% - \ifthenelse{\equal{#1}{ocg}}{% - \def\@anim@@method{\tw@}% - }{}% ignoring wrong input + \setboolean{@anim@@draft}{true} }% - }% -} -\define@key{anim@pkg}{useocg}[]{% - \PackageError{animate}{% - Package option `useocg' has been removed.\MessageBreak% - Use `method=ocg' instead% - }{}% + }, + final.default:n = true, + + nomouse.legacy_if_gset:n = @anim@@nomouse, + nomouse.default:n = true, + + method.choices:nn = {icon,widget,ocg} { + \ifthenelse{\equal{#1}{icon}}{ + \def\@anim@@method{\z@} + }{ + \ifthenelse{\equal{#1}{widget}}{ + \def\@anim@@method{\@ne} + }{ + \ifthenelse{\equal{#1}{ocg}}{ + \def\@anim@@method{\tw@} + }{}% ignoring wrong input + } + } + }, + method.value_required:n = true, + + type.tl_gset_x:N = \@anim@@ftype, + type.value_required:n = true, } +\ExplSyntaxOff -%default animation method is Icon based -\def\@anim@@method{\z@} +\ifnum\if@anim@dvips 1\else\if@anim@dvisvgm 1\else0\fi\fi=1 + %dvips .OR. dvisvgm + \def\@anim@@fg{0 setgray}\def\@anim@@@@fg{} +\else% pdftex and dvipdfmx + \def\@anim@@fg{0 G}\def\@anim@@@@fg{0 g} +\fi %process package options -\def\@anim@setpkgkeys#1{\setkeys{anim@pkg}{#1}} -\edef\@anim@pkgopts{{\@ptionlist{\@currname.\@currext}}} -\expandafter\@anim@setpkgkeys\@anim@pkgopts +\ProcessKeyOptions[anim@pkg] %%%%%%%%%%%%%%%%%%%%%%%% % JavaScript part |